ref: fb11ff7e55be56cef9234c8443614f04f2157a1e
parent: 15427f532085846ab6b51719be687951a094cb6c
parent: 9f29f21d9d43baa7124991dcf3b093fc6c615706
author: yenatch <yenatch@gmail.com>
date: Sat Jul 12 05:02:49 EDT 2014
Merge pull request #48 from yenatch/master Clean up post-split main.asm. Get rid of static wram addresses. Lay out a foundation for Yellow.
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -50,6 +50,7 @@
Select the following packages:
* make
* git
+* gettext
* python
* python-setuptools
@@ -63,8 +64,7 @@
cd pokered
git submodule init
git submodule update
- sudo easy_install pip
- sudo pip install -r extras/requirements.txt
+ easy_install git://github.com/drj11/pypng.git@master#egg=pypng
To build:
--- a/Makefile
+++ b/Makefile
@@ -1,94 +1,81 @@
PYTHON := python
+MD5 := md5sum -c --quiet
.SUFFIXES:
.SUFFIXES: .asm .tx .o .gbc
-.PHONY: all clean red blue compare pngs
+.PHONY: all clean red blue yellow compare
.PRECIOUS: %.2bpp
.SECONDEXPANSION:
-POKEMONTOOLS := extras/pokemontools
-GFX := $(PYTHON) $(POKEMONTOOLS)/gfx.py
-PIC := $(PYTHON) $(POKEMONTOOLS)/pic.py
-INCLUDES := $(PYTHON) $(POKEMONTOOLS)/scan_includes.py
-PREPROCESS := $(PYTHON) prequeue.py
+poketools := extras/pokemontools
+gfx := $(PYTHON) $(poketools)/gfx.py
+pic := $(PYTHON) $(poketools)/pic.py
+includes := $(PYTHON) $(poketools)/scan_includes.py
+pre := $(PYTHON) prequeue.py
-TEXTQUEUE :=
-RED_OBJS := \
-pokered.o \
-audio_red.o \
-wram.o \
-text.o
+versions := red blue yellow
-BLUE_OBJS := \
-pokeblue.o \
-audio_blue.o \
-wram.o \
-text.o
+$(foreach ver, $(versions), \
+ $(eval $(ver)_asm := $(shell find $(ver) -iname '*.asm')) \
+ $(eval $(ver)_obj := $($(ver)_asm:.asm=.o)) \
+ $(eval all_obj += $($(ver)_obj)) \
+)
+$(foreach obj, $(all_obj), \
+ $(eval $(obj:.o=)_dep := $(shell $(includes) $(obj:.o=.asm))) \
+)
-OBJS := $(RED_OBJS) $(BLUE_OBJS)
-OBJS := $(sort $(OBJS))
-ROMS := pokered.gbc pokeblue.gbc
+roms := pokered.gbc pokeblue.gbc
-# object dependencies
-$(shell $(foreach obj, $(OBJS), $(eval $(obj:.o=)_DEPENDENCIES := $(shell $(INCLUDES) $(obj:.o=.asm)))))
+all: $(roms)
+red: pokered.gbc
+blue: pokeblue.gbc
+yellow: pokeyellow.gbc
-all: $(ROMS)
-red: pokered.gbc
-blue: pokeblue.gbc
compare:
- @md5sum -c --quiet roms.md5
+ @$(MD5) roms.md5
clean:
- rm -f $(ROMS)
- rm -f $(OBJS)
- find . -iname '*.tx' -exec rm {} +
- find gfx -iname '*.[12]bpp' -exec rm {} +
- find pic -iname '*.pic' -exec rm {} +
- find pic -iname '*.2bpp' -exec rm {} +
- rm -f redrle
+ rm -f $(roms) $(all_obj)
+ find . \( -iname '*.tx' -o -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} +
-redrle: extras/redtools/redrle.c
- ${CC} -o $@ $<
-
-
%.asm: ;
-.asm.tx:
- $(eval TEXTQUEUE += $<)
+%.tx: %.asm
+ $(eval txq += $<)
@rm -f $@
-$(OBJS): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_DEPENDENCIES))
- @$(PREPROCESS) $(TEXTQUEUE)
- @$(eval TEXTQUEUE :=)
- @$(GFX) 2bpp $(2BPPQUEUE)
- @$(eval 2BPPQUEUE :=)
- @$(GFX) 1bpp $(1BPPQUEUE)
- @$(eval 1BPPQUEUE :=)
- @$(PIC) compress $(PICQUEUE)
- @$(eval PICQUEUE :=)
- rgbasm -o $@ $*.tx
+$(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep))
+ @$(pre) $(txq); $(eval txq :=)
+ @$(gfx) 2bpp $(2bppq); $(eval 2bppq :=)
+ @$(gfx) 1bpp $(1bppq); $(eval 1bppq :=)
+ @$(pic) compress $(picq); $(eval picq :=)
+ rgbasm -h -o $@ $*.tx
-OPTIONS = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03
+link = rgblink -n $*.sym -m $*.map
+dmg_opt := -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03
+cgb_opt := -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03
-pokered.gbc: $(RED_OBJS)
- rgblink -n $*.sym -m $*.map -o $@ $^
- rgbfix $(OPTIONS) -t "POKEMON RED" $@
+pokered.gbc: $(red_obj)
+ $(link) -o $@ $^
+ rgbfix $(dmg_opt) -t "POKEMON RED" $@
-pokeblue.gbc: $(BLUE_OBJS)
- rgblink -n $*.sym -m $*.map -o $@ $^
- rgbfix $(OPTIONS) -t "POKEMON BLUE" $@
+pokeblue.gbc: $(blue_obj)
+ $(link) -o $@ $^
+ rgbfix $(dmg_opt) -t "POKEMON BLUE" $@
+pokeyellow.gbc: $(yellow_obj)
+ $(link) -o $@ $^
+ rgbfix $(cgb_opt) -t "POKEMON YELLOW" $@
+
%.2bpp: %.png
- $(eval 2BPPQUEUE += $<)
+ $(eval 2bppq += $<)
@rm -f $@
%.1bpp: %.png
- $(eval 1BPPQUEUE += $<)
+ $(eval 1bppq += $<)
@rm -f $@
-%.pic: %.2bpp
- $(eval PICQUEUE += $<)
+%.pic: %.2bpp
+ $(eval picq += $<)
@rm -f $@
-
-
--- a/audio.asm
+++ b/audio.asm
@@ -50,7 +50,7 @@
INCLUDE "audio/sfx/sfx_02_12.asm"
INCLUDE "audio/sfx/sfx_02_13.asm"
-INCLUDE "audio/duty_1.asm"
+Music2_WavePointers: INCLUDE "audio/wave_instruments.asm"
INCLUDE "audio/sfx/sfx_02_3f.asm"
INCLUDE "audio/sfx/sfx_02_5e.asm"
@@ -149,7 +149,7 @@
INCLUDE "audio/sfx/sfx_08_12.asm"
INCLUDE "audio/sfx/sfx_08_13.asm"
-INCLUDE "audio/duty_2.asm"
+Music8_WavePointers: INCLUDE "audio/wave_instruments.asm"
INCLUDE "audio/sfx/sfx_08_40.asm"
INCLUDE "audio/sfx/sfx_08_3f.asm"
@@ -274,7 +274,7 @@
INCLUDE "audio/sfx/sfx_1f_12.asm"
INCLUDE "audio/sfx/sfx_1f_13.asm"
-INCLUDE "audio/duty_3.asm"
+Music1f_WavePointers: INCLUDE "audio/wave_instruments.asm"
INCLUDE "audio/sfx/sfx_1f_3f.asm"
INCLUDE "audio/sfx/sfx_1f_56.asm"
@@ -365,9 +365,9 @@
PlayBattleMusic:: ; 0x90c6
xor a
ld [wMusicHeaderPointer], a
- ld [$d083], a
+ ld [wd083], a
dec a
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound ; stop music
call DelayFrame
ld c, BANK(Music_GymLeaderBattle)
@@ -406,7 +406,7 @@
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld hl, $c006
+ ld hl, wc006
ld de, Music_MeetRival_branch_b1a2
call Music2_OverwriteChannelPointer
ld de, Music_MeetRival_branch_b21d
@@ -425,7 +425,7 @@
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld hl, $c006
+ ld hl, wc006
ld de, Music_MeetRival_branch_b119
jp Music2_OverwriteChannelPointer
@@ -432,7 +432,7 @@
; applies both the alternate start and alternate tempo
Music_RivalAlternateStartAndTempo:: ; 0x9b75
call Music_RivalAlternateStart
- ld hl, $c006
+ ld hl, wc006
ld de, Music_MeetRival_branch_b19b
jp Music2_OverwriteChannelPointer
@@ -439,8 +439,8 @@
; an alternate tempo for Cities1 which is used for the Hall of Fame room
Music_Cities1AlternateTempo:: ; 0x9b81
ld a, $a
- ld [$cfc8], a
- ld [$cfc9], a
+ ld [wcfc8], a
+ ld [wcfc9], a
ld a, $ff
ld [wMusicHeaderPointer], a
ld c, $64
@@ -448,7 +448,7 @@
ld c, BANK(Music_Cities1)
ld a, MUSIC_CITIES1
call PlayMusic
- ld hl, $c006
+ ld hl, wc006
ld de, Music_Cities1_branch_aa6f
jp Music2_OverwriteChannelPointer
@@ -456,7 +456,7 @@
SECTION "Audio Engine 2", ROMX, BANK[AUDIO_2]
Func_2136e:: ; 2136e (8:536e)
- ld a, [$d083]
+ ld a, [wd083]
cp $ff
jr z, .asm_2139b
bit 7, a
@@ -472,18 +472,18 @@
call Func_213ac
.asm_2138a
ld a, $86
- ld [$c02a], a
- ld a, [$d083]
+ ld [wc02a], a
+ ld a, [wd083]
and $7f
dec a
.asm_21395
set 7, a
- ld [$d083], a
+ ld [wd083], a
ret
.asm_2139b
xor a
- ld [$d083], a
- ld [$c02a], a
+ ld [wd083], a
+ ld [wc02a], a
ld de, Unknown_213c4 ; $53c4
jr asm_213af
@@ -523,7 +523,7 @@
Music_PokeFluteInBattle:: ; 22306 (8:6306)
ld a, (SFX_08_46 - SFX_Headers_08) / 3 ; PokeFlute outside of battle
call PlaySoundWaitForCurrent
- ld hl, $c00e
+ ld hl, wc00e
ld de, SFX_08_PokeFlute_Ch1
call Music8_OverwriteChannelPointer
ld de, SFX_08_PokeFlute_Ch2
@@ -553,7 +553,7 @@
.gotSfxPointer
push bc
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySoundWaitForCurrent
pop bc
ld b, $0
--- a/audio/duty_1.asm
+++ /dev/null
@@ -1,33 +1,0 @@
-Music2_Channel3DutyPointers: ; 0x8361
- dw Music2_Channel3Duty0
- dw Music2_Channel3Duty1
- dw Music2_Channel3Duty2
- dw Music2_Channel3Duty3
- dw Music2_Channel3Duty4
- dw Music2_Channel3Duty5 ; used in the Lavender Town theme
- dw Music2_Channel3Duty5 ; unused
- dw Music2_Channel3Duty5 ; unused
- dw Music2_Channel3Duty5 ; unused
-
-; these are the definitions for the channel 3 instruments
-; each instrument definition is made up of 32 points (nibbles) that form
-; the graph of the wave
-; the current instrument is copied to $FF30
-Music2_Channel3Duty0: ; 0x8373
- db $02,$46,$8A,$CE,$FF,$FE,$ED,$DC,$CB,$A9,$87,$65,$44,$33,$22,$11
-
-Music2_Channel3Duty1: ; 0x8383
- db $02,$46,$8A,$CE,$EF,$FF,$FE,$EE,$DD,$CB,$A9,$87,$65,$43,$22,$11
-
-Music2_Channel3Duty2: ; 0x8393
- db $13,$69,$BD,$EE,$EE,$FF,$FF,$ED,$DE,$FF,$FF,$EE,$EE,$DB,$96,$31
-
-Music2_Channel3Duty3: ; 0x83a3
- db $02,$46,$8A,$CD,$EF,$FE,$DE,$FF,$EE,$DC,$BA,$98,$76,$54,$32,$10
-
-Music2_Channel3Duty4: ; 0x83b3
- db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
-
-; duty 5 reads from sfx data
-Music2_Channel3Duty5: ; 0x83c3
-
--- a/audio/duty_2.asm
+++ /dev/null
@@ -1,32 +1,0 @@
-Music8_Channel3DutyPointers: ; 20361 (8:4361)
- dw Music8_Channel3Duty0
- dw Music8_Channel3Duty1
- dw Music8_Channel3Duty2
- dw Music8_Channel3Duty3
- dw Music8_Channel3Duty4
- dw Music8_Channel3Duty5 ; unused
- dw Music8_Channel3Duty5 ; unused
- dw Music8_Channel3Duty5 ; unused
- dw Music8_Channel3Duty5 ; unused
-
-; these are the definitions for the channel 3 instruments
-; each instrument definition is made up of 32 points (nibbles) that form
-; the graph of the wave
-; the current instrument is copied to $FF30
-Music8_Channel3Duty0: ; 20373 (8:4373)
- db $02,$46,$8A,$CE,$FF,$FE,$ED,$DC,$CB,$A9,$87,$65,$44,$33,$22,$11
-
-Music8_Channel3Duty1: ; 20383 (8:4383)
- db $02,$46,$8A,$CE,$EF,$FF,$FE,$EE,$DD,$CB,$A9,$87,$65,$43,$22,$11
-
-Music8_Channel3Duty2: ; 20393 (8:4393)
- db $13,$69,$BD,$EE,$EE,$FF,$FF,$ED,$DE,$FF,$FF,$EE,$EE,$DB,$96,$31
-
-Music8_Channel3Duty3: ; 203a3 (8:43a3)
- db $02,$46,$8A,$CD,$EF,$FE,$DE,$FF,$EE,$DC,$BA,$98,$76,$54,$32,$10
-
-Music8_Channel3Duty4: ; 203b3 (8:43b3)
- db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
-
-Music8_Channel3Duty5:
-
--- a/audio/duty_3.asm
+++ /dev/null
@@ -1,33 +1,0 @@
-Music1f_Channel3DutyPointers: ; 7c361 (1f:4361)
- dw Music1f_Channel3Duty0
- dw Music1f_Channel3Duty1
- dw Music1f_Channel3Duty2
- dw Music1f_Channel3Duty3
- dw Music1f_Channel3Duty4
- dw Music1f_Channel3Duty5 ; used in the Pokemon Tower theme
- dw Music1f_Channel3Duty5 ; unused
- dw Music1f_Channel3Duty5 ; unused
- dw Music1f_Channel3Duty5 ; unused
-
-; these are the definitions for the channel 3 instruments
-; each instrument definition is made up of 32 points (nibbles) that form
-; the graph of the wave
-; the current instrument is copied to $FF30
-Music1f_Channel3Duty0: ; 7c373 (1f:4373)
- db $02,$46,$8A,$CE,$FF,$FE,$ED,$DC,$CB,$A9,$87,$65,$44,$33,$22,$11
-
-Music1f_Channel3Duty1: ; 7c383 (1f:4383)
- db $02,$46,$8A,$CE,$EF,$FF,$FE,$EE,$DD,$CB,$A9,$87,$65,$43,$22,$11
-
-Music1f_Channel3Duty2: ; 7c393 (1f:4393)
- db $13,$69,$BD,$EE,$EE,$FF,$FF,$ED,$DE,$FF,$FF,$EE,$EE,$DB,$96,$31
-
-Music1f_Channel3Duty3: ; 7c3a3 (1f:43a3)
- db $02,$46,$8A,$CD,$EF,$FE,$DE,$FF,$EE,$DC,$BA,$98,$76,$54,$32,$10
-
-Music1f_Channel3Duty4: ; 7c3b3 (1f:43b3)
- db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
-
-; duty 5 reads from sfx data
-Music1f_Channel3Duty5: ; 7c3c3 (1f:43c3)
-
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -1,10 +1,10 @@
; The first of three duplicated sound engines.
-Func_9103:: ; 0x9103
+Music2_UpdateMusic:: ; 0x9103
ld c, CH0
.loop
ld b, $0
- ld hl, $c026
+ ld hl, wc026
add hl, bc
ld a, [hl]
and a
@@ -12,13 +12,13 @@
ld a, c
cp CH4
jr nc, .asm_912e ; if sfx channel
- ld a, [$c002]
+ ld a, [wc002]
and a
jr z, .asm_912e
bit 7, a
jr nz, .nextChannel
set 7, a
- ld [$c002], a
+ ld [wc002], a
xor a
ld [$ff25], a
ld [$ff1a], a
@@ -31,12 +31,13 @@
ld a, c
inc c ; inc channel number
cp CH7
- jr nz, .loop
+ jr nz, .loop
ret
; this routine checks flags for music effects currently applied
; to the channel and calls certain functions based on flags.
-; known flags for $c02e:
+; known flags for wc02e:
+; 0: toggleperfectpitch has been used
; 1: call has been used
; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag
@@ -43,7 +44,7 @@
; 6: dutycycle flag
Music2_ApplyMusicAffects: ; 0x9138
ld b, $0
- ld hl, $c0b6 ; delay unitl next note
+ ld hl, wc0b6 ; delay until next note
add hl, bc
ld a, [hl]
cp $1 ; if the delay is 1, play next note
@@ -53,7 +54,7 @@
ld a, c
cp CH4
jr nc, .startChecks ; if a sfx channel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
@@ -60,7 +61,7 @@
jr z, .startChecks
ret
.startChecks
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic
@@ -67,22 +68,22 @@
call Music2_ApplyDutyCycle
.checkForExecuteMusic
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, .checkForPitchBend
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 2, [hl]
jr nz, .disablePitchBendVibrato
.checkForPitchBend
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay
jp Music2_ApplyPitchBend
.checkVibratoDelay
- ld hl, $c04e ; vibrato delay
+ ld hl, wc04e ; vibrato delay
add hl, bc
ld a, [hl]
and a ; check if delay is over
@@ -91,7 +92,7 @@
.disablePitchBendVibrato
ret
.checkForVibrato
- ld hl, $c056 ; vibrato rate
+ ld hl, wc056 ; vibrato rate
add hl, bc
ld a, [hl]
and a
@@ -99,7 +100,7 @@
ret ; no vibrato
.vibrato
ld d, a
- ld hl, $c05e
+ ld hl, wc05e
add hl, bc
ld a, [hl]
and $f
@@ -112,10 +113,10 @@
swap [hl]
or [hl]
ld [hl], a ; reset the vibrato value and start again
- ld hl, $c066
+ ld hl, wc066
add hl, bc
ld e, [hl] ; get note pitch
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 3, [hl] ; this is the only code that sets/resets bit three so
jr z, .unset ; it continuously alternates which path it takes
@@ -148,13 +149,13 @@
; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached
Music2_PlayNextNote ; 0x91d0
- ld hl, $c06e
+ ld hl, wc06e
add hl, bc
ld a, [hl]
- ld hl, $c04e
+ ld hl, wc04e
add hl, bc
ld [hl], a
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -167,7 +168,7 @@
cp $ff ; is this command an endchannel?
jp nz, Music2_callchannel ; no
ld b, $0 ; yes
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 1, [hl]
jr nz, .returnFromCall
@@ -177,7 +178,7 @@
jr .asm_923f
.noiseOrSfxChannel
res 2, [hl]
- ld hl, $c036
+ ld hl, wc036
add hl, bc
res 0, [hl]
cp CH6
@@ -188,11 +189,11 @@
ld [$ff1a], a
.notSfxChannel3
jr nz, .asm_9222
- ld a, [$c003]
+ ld a, [wc003]
and a
jr z, .asm_9222
xor a
- ld [$c003], a
+ ld [wc003], a
jr .asm_923f
.asm_9222
jr .asm_9248
@@ -202,10 +203,10 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
push hl ; store current channel address
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld e, l
ld d, h
@@ -223,12 +224,12 @@
and [hl]
ld [$ff25], a
.asm_9248
- ld a, [$c02a]
+ ld a, [wc02a]
cp $14
jr nc, .asm_9251
jr .asm_926e
.asm_9251
- ld a, [$c02a]
+ ld a, [wc02a]
cp $86
jr z, .asm_926e
jr c, .asm_925c
@@ -240,12 +241,12 @@
call Func_96c7
ret c
.asm_9265
- ld a, [$c005]
+ ld a, [wc005]
ld [$ff24], a
xor a
- ld [$c005], a
+ ld [wc005], a
.asm_926e
- ld hl, $c026
+ ld hl, wc026
add hl, bc
ld [hl], b
ret
@@ -264,10 +265,10 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
push hl
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld e, l
ld d, h
@@ -282,7 +283,7 @@
inc hl
ld [hl], d ; overwrite current address with pointer
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 1, [hl] ; set the call flag
jp Music2_endchannel
@@ -295,7 +296,7 @@
and a
jr z, .infiniteLoop
ld b, $0
- ld hl, $c0be
+ ld hl, wc0be
add hl, bc
ld a, [hl]
cp e
@@ -318,7 +319,7 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
pop af
ld [hli], a
@@ -328,11 +329,11 @@
Music2_notetype: ; 0x92e4
and $f0
cp $d0 ; is this command a notetype?
- jp nz, Music2_togglecall ; no
+ jp nz, Music2_toggleperfectpitch ; no
ld a, d ; yes
and $f
ld b, $0
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, bc
ld [hl], a ; store low nibble as speed
ld a, c
@@ -345,10 +346,10 @@
jr z, .musicChannel3
cp CH6
jr nz, .notChannel3
- ld hl, $c0e7
+ ld hl, wc0e7
jr .sfxChannel3
.musicChannel3
- ld hl, $c0e6
+ ld hl, wc0e6
.sfxChannel3
ld a, d
and $f
@@ -363,22 +364,22 @@
; else, store volume (high nibble) and fade (low nibble)
.notChannel3
ld b, $0
- ld hl, $c0de
+ ld hl, wc0de
add hl, bc
ld [hl], d
.noiseChannel
jp Music2_endchannel
-Music2_togglecall: ; 0x9323
+Music2_toggleperfectpitch: ; 0x9323
ld a, d
- cp $e8 ; is this command an togglecall?
+ cp $e8 ; is this command a toggleperfectpitch?
jr nz, Music2_vibrato ; no
ld b, $0 ; yes
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
ld a, [hl]
xor $1
- ld [hl], a ; flip bit 0 of $c02e (toggle returning from call)
+ ld [hl], a ; flip bit 0 of wc02e
jp Music2_endchannel
Music2_vibrato: ; 0x9335
@@ -386,10 +387,10 @@
jr nz, Music2_pitchbend ; no
call Music2_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c04e
+ ld hl, wc04e
add hl, bc
- ld [hl], a ; store delay
- ld hl, $c06e
+ ld [hl], a ; store delay
+ ld hl, wc06e
add hl, bc
ld [hl], a ; store delay
call Music2_GetNextMusicByte
@@ -397,7 +398,7 @@
and $f0
swap a
ld b, $0
- ld hl, $c056
+ ld hl, wc056
add hl, bc
srl a
ld e, a
@@ -408,7 +409,7 @@
ld a, d
and $f
ld d, a
- ld hl, $c05e
+ ld hl, wc05e
add hl, bc
swap a
or d
@@ -420,7 +421,7 @@
jr nz, Music2_duty ; no
call Music2_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c076
+ ld hl, wc076
add hl, bc
ld [hl], a ; store first param
call Music2_GetNextMusicByte
@@ -432,14 +433,14 @@
and $f
call Func_9858
ld b, $0
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld [hl], d ; store unknown part of second param
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld [hl], e ; store unknown part of second param
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 4, [hl] ; set pitchbend flag
call Music2_GetNextMusicByte
@@ -454,7 +455,7 @@
rrca
and $c0
ld b, $0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld [hl], a ; store duty
jp Music2_endchannel
@@ -461,38 +462,38 @@
Music2_tempo: ; 0x93ba
cp $ed ; is this command a tempo?
- jr nz, Music2_unknownmusic0xee ; no
+ jr nz, Music2_stereopanning ; no
ld a, c ; yes
cp CH4
jr nc, .sfxChannel
call Music2_GetNextMusicByte
- ld [$c0e8], a ; store first param
+ ld [wc0e8], a ; store first param
call Music2_GetNextMusicByte
- ld [$c0e9], a ; store second param
+ ld [wc0e9], a ; store second param
xor a
- ld [$c0ce], a ; clear RAM
- ld [$c0cf], a
- ld [$c0d0], a
- ld [$c0d1], a
+ ld [wc0ce], a ; clear RAM
+ ld [wc0cf], a
+ ld [wc0d0], a
+ ld [wc0d1], a
jr .musicChannelDone
.sfxChannel
call Music2_GetNextMusicByte
- ld [$c0ea], a ; store first param
+ ld [wc0ea], a ; store first param
call Music2_GetNextMusicByte
- ld [$c0eb], a ; store second param
+ ld [wc0eb], a ; store second param
xor a
- ld [$c0d2], a ; clear RAM
- ld [$c0d3], a
- ld [$c0d4], a
- ld [$c0d5], a
+ ld [wc0d2], a ; clear RAM
+ ld [wc0d3], a
+ ld [wc0d4], a
+ ld [wc0d5], a
.musicChannelDone
jp Music2_endchannel
-Music2_unknownmusic0xee: ; 0x93fa
- cp $ee ; is this command an unknownmusic0xee?
+Music2_stereopanning: ; 0x93fa
+ cp $ee ; is this command a stereopanning?
jr nz, Music2_unknownmusic0xef ; no
call Music2_GetNextMusicByte ; yes
- ld [$c004], a ; store first param
+ ld [wc004], a ; store panning
jp Music2_endchannel
; this appears to never be used
@@ -503,38 +504,38 @@
push bc
call Func_9876
pop bc
- ld a, [$c003]
+ ld a, [wc003]
and a
jr nz, .skip
- ld a, [$c02d]
- ld [$c003], a
+ ld a, [wc02d]
+ ld [wc003], a
xor a
- ld [$c02d], a
+ ld [wc02d], a
.skip
jp Music2_endchannel
Music2_dutycycle: ; 0x9426
cp $fc ; is this command a dutycycle?
- jr nz, Music2_stereopanning ; no
+ jr nz, Music2_volume ; no
call Music2_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c046
+ ld hl, wc046
add hl, bc
ld [hl], a ; store full cycle
and $c0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld [hl], a ; store first duty
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 6, [hl] ; set dutycycle flag
jp Music2_endchannel
-Music2_stereopanning: ; 0x9444
- cp $f0 ; is this command a stereopanning?
+Music2_volume: ; 0x9444
+ cp $f0 ; is this command a volume?
jr nz, Music2_executemusic ; no
call Music2_GetNextMusicByte ; yes
- ld [$ff24], a ; store stereopanning
+ ld [$ff24], a ; store volume
jp Music2_endchannel
Music2_executemusic: ; 0x9450
@@ -541,7 +542,7 @@
cp $f8 ; is this command an executemusic?
jr nz, Music2_octave ; no
ld b, $0 ; yes
- ld hl, $c036
+ ld hl, wc036
add hl, bc
set 0, [hl]
jp Music2_endchannel
@@ -550,7 +551,7 @@
and $f0
cp $e0 ; is this command an octave?
jr nz, Music2_unknownsfx0x20 ; no
- ld hl, $c0d6 ; yes
+ ld hl, wc0d6 ; yes
ld b, $0
add hl, bc
ld a, d
@@ -565,7 +566,7 @@
cp CH3 ; is this a noise or sfx channel?
jr c, Music2_unknownsfx0x10 ; no
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music2_unknownsfx0x10 ; no
@@ -572,7 +573,7 @@
call Music2_notelength ; yes
ld d, a
ld b, $0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld a, [hl]
or d
@@ -611,7 +612,7 @@
cp $10 ; is this command a unknownsfx0x10?
jr nz, Music2_note ; no
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music2_note ; no
@@ -646,7 +647,7 @@
call Music2_GetNextMusicByte ; get dnote instrument
asm_94fd
ld d, a
- ld a, [$c003]
+ ld a, [wc003]
and a
jr nz, .asm_9508
ld a, d
@@ -663,7 +664,7 @@
ld b, $0
ld e, a ; store note length (in 16ths)
ld d, b
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, bc
ld a, [hl]
ld l, b
@@ -671,9 +672,9 @@
ld a, c
cp CH4
jr nc, .sfxChannel
- ld a, [$c0e8]
+ ld a, [wc0e8]
ld d, a
- ld a, [$c0e9]
+ ld a, [wc0e9]
ld e, a
jr .skip
.sfxChannel
@@ -682,31 +683,31 @@
cp CH7
jr z, .skip ; if noise channel
call Func_9693
- ld a, [$c0ea]
+ ld a, [wc0ea]
ld d, a
- ld a, [$c0eb]
+ ld a, [wc0eb]
ld e, a
.skip
ld a, l
ld b, $0
- ld hl, $c0ce
+ ld hl, wc0ce
add hl, bc
ld l, [hl]
call Func_9847
ld e, l
ld d, h
- ld hl, $c0ce
+ ld hl, wc0ce
add hl, bc
ld [hl], e
ld a, d
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld [hl], a
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music2_notepitch
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 2, [hl]
jr z, Music2_notepitch
@@ -721,7 +722,7 @@
ld a, c
cp CH4
jr nc, .sfxChannel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
@@ -754,12 +755,12 @@
.notRest
swap a
ld b, $0
- ld hl, $c0d6
+ ld hl, wc0d6
add hl, bc
ld b, [hl]
call Func_9858
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 4, [hl]
jr z, .asm_95b8
@@ -769,7 +770,7 @@
ld a, c
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, $c02a
+ ld hl, wc02a
ld d, $0
ld e, a
add hl, de
@@ -782,7 +783,7 @@
ret
.skip
ld b, $0
- ld hl, $c0de
+ ld hl, wc0de
add hl, bc
ld d, [hl]
ld b, $2
@@ -792,15 +793,15 @@
call Func_95f8
pop de
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
- bit 0, [hl]
- jr z, .asm_95ef
- inc e
- jr nc, .asm_95ef
+ bit 0, [hl] ; has toggleperfectpitch been used?
+ jr z, .skip2
+ inc e ; if yes, increment the pitch by 1
+ jr nc, .skip2
inc d
-.asm_95ef
- ld hl, $c066
+.skip2
+ ld hl, wc066
add hl, bc
ld [hl], e
call Func_964b
@@ -818,13 +819,13 @@
jr z, .sfxNoiseChannel
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
jr nz, .skip
.sfxNoiseChannel
- ld a, [$c004]
+ ld a, [wc004]
ld hl, Unknown_9b27
add hl, bc
and [hl]
@@ -842,7 +843,7 @@
Func_9629: ; 0x9629
ld b, $0
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld d, [hl]
ld a, c
@@ -853,7 +854,7 @@
ld a, d
and $3f
ld d, a
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld a, [hl]
or d
@@ -873,16 +874,16 @@
; fall through
.channel3
push de
- ld de, $c0e6
+ ld de, wc0e6
cp CH2
jr z, .musicChannel3
- ld de, $c0e7
+ ld de, wc0e7
.musicChannel3
ld a, [de]
add a
ld d, $0
ld e, a
- ld hl, Music2_Channel3DutyPointers
+ ld hl, Music2_WavePointers
add hl, de
ld e, [hl]
inc hl
@@ -919,20 +920,20 @@
call Func_96e5
jr nc, .asm_96ab
ld d, $0
- ld a, [$c0f2]
+ ld a, [wc0f2]
add $80
jr nc, .asm_96a2
inc d
.asm_96a2
- ld [$c0eb], a
+ ld [wc0eb], a
ld a, d
- ld [$c0ea], a
+ ld [wc0ea], a
jr .asm_96b4
.asm_96ab
xor a
- ld [$c0eb], a
+ ld [wc0eb], a
ld a, $1
- ld [$c0ea], a
+ ld [wc0ea], a
.asm_96b4
ret
@@ -939,7 +940,7 @@
Func_96b5: ; 0x96b5
call Func_96e5
jr nc, .asm_96c6
- ld a, [$c0f1]
+ ld a, [wc0f1]
add e
jr nc, .asm_96c1
inc d
@@ -955,7 +956,7 @@
Func_96c7: ; 0x96c7
call Func_96e5
jr nc, .asm_96e2
- ld hl, $c006
+ ld hl, wc006
ld e, c
ld d, $0
sla e
@@ -976,7 +977,7 @@
ret
Func_96e5: ; 0x96e5
- ld a, [$c02a]
+ ld a, [wc02a]
cp $14
jr nc, .asm_96ee
jr .asm_96f4
@@ -993,17 +994,17 @@
ret
Music2_ApplyPitchBend: ; 0x96f9
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 5, [hl]
jp nz, .asm_9740
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld e, [hl]
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld l, [hl]
ld h, b
@@ -1010,10 +1011,10 @@
add hl, de
ld d, h
ld e, l
- ld hl, $c08e
+ ld hl, wc08e
add hl, bc
push hl
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld a, [hl]
pop hl
@@ -1025,13 +1026,13 @@
ld a, $0
adc d
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, [hl]
cp d
jp c, .asm_9786
jr nz, .asm_9773
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, [hl]
cp e
@@ -1038,13 +1039,13 @@
jp c, .asm_9786
jr .asm_9773
.asm_9740
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld a, [hl]
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld e, [hl]
sub e
@@ -1052,7 +1053,7 @@
ld a, d
sbc b
ld d, a
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld a, [hl]
add a
@@ -1063,22 +1064,22 @@
ld a, d
sbc b
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, d
cp [hl]
jr c, .asm_9786
jr nz, .asm_9773
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, e
cp [hl]
jr c, .asm_9786
.asm_9773
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld [hl], e
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld [hl], d
ld b, $3
@@ -1088,7 +1089,7 @@
ld [hl], d
ret
.asm_9786
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -1095,16 +1096,16 @@
ret
Func_978f: ; 0x978f
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld [hl], d
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld [hl], e
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld a, [hl]
- ld hl, $c076
+ ld hl, wc076
add hl, bc
sub [hl]
jr nc, .asm_97a7
@@ -1111,7 +1112,7 @@
ld a, $1
.asm_97a7
ld [hl], a
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, e
sub [hl]
@@ -1118,24 +1119,24 @@
ld e, a
ld a, d
sbc b
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
sub [hl]
jr c, .asm_97c3
ld d, a
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 5, [hl]
jr .asm_97e6
.asm_97c3
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld e, [hl]
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, [hl]
sub e
@@ -1143,17 +1144,17 @@
ld a, d
sbc b
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, [hl]
sub d
ld d, a
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 5, [hl]
.asm_97e6
- ld hl, $c076
+ ld hl, wc076
add hl, bc
.asm_97ea
inc b
@@ -1172,13 +1173,13 @@
add [hl]
ld d, b
ld b, $0
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld [hl], d
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld [hl], a
- ld hl, $c08e
+ ld hl, wc08e
add hl, bc
ld [hl], a
ret
@@ -1185,7 +1186,7 @@
Music2_ApplyDutyCycle: ; 0x980d
ld b, $0
- ld hl, $c046
+ ld hl, wc046
add hl, bc
ld a, [hl]
rlca
@@ -1206,7 +1207,7 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
ld a, [hli]
ld e, a
@@ -1254,7 +1255,7 @@
add hl, hl
ld d, h
ld e, l
- ld hl, Unknown_9b2f
+ ld hl, Music2_Pitches
add hl, de
ld e, [hl]
inc hl
@@ -1274,7 +1275,7 @@
ret
Func_9876:: ; 0x9876
- ld [$c001], a
+ ld [wc001], a
cp $ff
jp z, Func_9a34
cp $b9
@@ -1285,63 +1286,63 @@
jp nc, Func_994e
.asm_988d
xor a
- ld [$c000], a
- ld [$c003], a
- ld [$c0e9], a
- ld [$c0e6], a
- ld [$c0e7], a
+ ld [wc000], a
+ ld [wc003], a
+ ld [wc0e9], a
+ ld [wc0e6], a
+ ld [wc0e7], a
ld d, $8
- ld hl, $c016
+ ld hl, wc016
call FillMusicRAM2
- ld hl, $c006
+ ld hl, wc006
call FillMusicRAM2
ld d, $4
- ld hl, $c026
+ ld hl, wc026
call FillMusicRAM2
- ld hl, $c02e
+ ld hl, wc02e
call FillMusicRAM2
- ld hl, $c03e
+ ld hl, wc03e
call FillMusicRAM2
- ld hl, $c046
+ ld hl, wc046
call FillMusicRAM2
- ld hl, $c04e
+ ld hl, wc04e
call FillMusicRAM2
- ld hl, $c056
+ ld hl, wc056
call FillMusicRAM2
- ld hl, $c05e
+ ld hl, wc05e
call FillMusicRAM2
- ld hl, $c066
+ ld hl, wc066
call FillMusicRAM2
- ld hl, $c06e
+ ld hl, wc06e
call FillMusicRAM2
- ld hl, $c036
+ ld hl, wc036
call FillMusicRAM2
- ld hl, $c076
+ ld hl, wc076
call FillMusicRAM2
- ld hl, $c07e
+ ld hl, wc07e
call FillMusicRAM2
- ld hl, $c086
+ ld hl, wc086
call FillMusicRAM2
- ld hl, $c08e
+ ld hl, wc08e
call FillMusicRAM2
- ld hl, $c096
+ ld hl, wc096
call FillMusicRAM2
- ld hl, $c09e
+ ld hl, wc09e
call FillMusicRAM2
- ld hl, $c0a6
+ ld hl, wc0a6
call FillMusicRAM2
- ld hl, $c0ae
+ ld hl, wc0ae
call FillMusicRAM2
ld a, $1
- ld hl, $c0be
+ ld hl, wc0be
call FillMusicRAM2
- ld hl, $c0b6
+ ld hl, wc0b6
call FillMusicRAM2
- ld hl, $c0c6
+ ld hl, wc0c6
call FillMusicRAM2
- ld [$c0e8], a
+ ld [wc0e8], a
ld a, $ff
- ld [$c004], a
+ ld [wc004], a
xor a
ld [$ff24], a
ld a, $8
@@ -1366,9 +1367,9 @@
ld de, SFX_Headers_02
add hl, de
ld a, h
- ld [$c0ec], a
+ ld [wc0ec], a
ld a, l
- ld [$c0ed], a
+ ld [wc0ed], a
ld a, [hl]
and $c0
rlca
@@ -1381,9 +1382,9 @@
add c
ld c, a
ld b, $0
- ld a, [$c0ec]
+ ld a, [wc0ec]
ld h, a
- ld a, [$c0ed]
+ ld a, [wc0ed]
ld l, a
add hl, bc
ld c, d
@@ -1391,7 +1392,7 @@
and $f
ld e, a
ld d, $0
- ld hl, $c026
+ ld hl, wc026
add hl, de
ld a, [hl]
and a
@@ -1399,7 +1400,7 @@
ld a, e
cp $7
jr nz, .asm_999a
- ld a, [$c001]
+ ld a, [wc001]
cp $14
jr nc, .asm_9993
ret
@@ -1409,7 +1410,7 @@
jr z, .asm_99a3
jr c, .asm_99a3
.asm_999a
- ld a, [$c001]
+ ld a, [wc001]
cp [hl]
jr z, .asm_99a3
jr c, .asm_99a3
@@ -1422,77 +1423,77 @@
add hl, hl
ld d, h
ld e, l
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld [hli], a
ld [hl], a
- ld hl, $c006
+ ld hl, wc006
add hl, de
ld [hli], a
ld [hl], a
pop de
- ld hl, $c026
+ ld hl, wc026
add hl, de
ld [hl], a
- ld hl, $c02e
+ ld hl, wc02e
add hl, de
ld [hl], a
- ld hl, $c03e
+ ld hl, wc03e
add hl, de
ld [hl], a
- ld hl, $c046
+ ld hl, wc046
add hl, de
ld [hl], a
- ld hl, $c04e
+ ld hl, wc04e
add hl, de
ld [hl], a
- ld hl, $c056
+ ld hl, wc056
add hl, de
ld [hl], a
- ld hl, $c05e
+ ld hl, wc05e
add hl, de
ld [hl], a
- ld hl, $c066
+ ld hl, wc066
add hl, de
ld [hl], a
- ld hl, $c06e
+ ld hl, wc06e
add hl, de
ld [hl], a
- ld hl, $c076
+ ld hl, wc076
add hl, de
ld [hl], a
- ld hl, $c07e
+ ld hl, wc07e
add hl, de
ld [hl], a
- ld hl, $c086
+ ld hl, wc086
add hl, de
ld [hl], a
- ld hl, $c08e
+ ld hl, wc08e
add hl, de
ld [hl], a
- ld hl, $c096
+ ld hl, wc096
add hl, de
ld [hl], a
- ld hl, $c09e
+ ld hl, wc09e
add hl, de
ld [hl], a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, de
ld [hl], a
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, de
ld [hl], a
- ld hl, $c036
+ ld hl, wc036
add hl, de
ld [hl], a
ld a, $1
- ld hl, $c0be
+ ld hl, wc0be
add hl, de
ld [hl], a
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, de
ld [hl], a
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, de
ld [hl], a
ld a, e
@@ -1526,24 +1527,24 @@
ld a, $77
ld [$ff24], a
xor a
- ld [$c000], a
- ld [$c003], a
- ld [$c002], a
- ld [$c0e9], a
- ld [$c0eb], a
- ld [$c0e6], a
- ld [$c0e7], a
+ ld [wc000], a
+ ld [wc003], a
+ ld [wc002], a
+ ld [wc0e9], a
+ ld [wc0eb], a
+ ld [wc0e6], a
+ ld [wc0e7], a
ld d, $a0
- ld hl, $c006
+ ld hl, wc006
call FillMusicRAM2
ld a, $1
ld d, $18
- ld hl, $c0b6
+ ld hl, wc0b6
call FillMusicRAM2
- ld [$c0e8], a
- ld [$c0ea], a
+ ld [wc0e8], a
+ ld [wc0ea], a
ld a, $ff
- ld [$c004], a
+ ld [wc004], a
ret
; fills d bytes at hl with a
@@ -1556,7 +1557,7 @@
ret
Func_9a8f: ; 0x9a8f
- ld a, [$c001]
+ ld a, [wc001]
ld l, a
ld e, a
ld h, $0
@@ -1567,7 +1568,7 @@
add hl, de
ld e, l
ld d, h
- ld hl, $c006
+ ld hl, wc006
ld a, [de] ; get channel number
ld b, a
rlca
@@ -1593,14 +1594,14 @@
push af
ld b, $0
ld c, a
- ld hl, $c026
+ ld hl, wc026
add hl, bc
- ld a, [$c001]
+ ld a, [wc001]
ld [hl], a
pop af
cp $3
jr c, .asm_9ad2
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 2, [hl]
.asm_9ad2
@@ -1619,32 +1620,32 @@
ld a, [de]
inc de
jr nz, .asm_9ab1
- ld a, [$c001]
+ ld a, [wc001]
cp $14
jr nc, .asm_9aeb
jr .asm_9b15
.asm_9aeb
- ld a, [$c001]
+ ld a, [wc001]
cp $86
jr z, .asm_9b15
jr c, .asm_9af6
jr .asm_9b15
.asm_9af6
- ld hl, $c02a
+ ld hl, wc02a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, $c012 ; sfx noise channel pointer
+ ld hl, wc012 ; sfx noise channel pointer
ld de, Noise2_endchannel
ld [hl], e
inc hl
ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [$c005]
+ ld a, [wc005]
and a
jr nz, .asm_9b15
ld a, [$ff24]
- ld [$c005], a
+ ld [wc005], a
ld a, $77
ld [$ff24], a
.asm_9b15
@@ -1665,18 +1666,18 @@
db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7
-Unknown_9b2f: ; 0x9b2f
- dw $F82C
- dw $F89D
- dw $F907
- dw $F96B
- dw $F9CA
- dw $FA23
- dw $FA77
- dw $FAC7
- dw $FB12
- dw $FB58
- dw $FB9B
- dw $FBDA
+Music2_Pitches: ; 0x9b2f
+ dw $F82C ; C_
+ dw $F89D ; C#
+ dw $F907 ; D_
+ dw $F96B ; D#
+ dw $F9CA ; E_
+ dw $FA23 ; F_
+ dw $FA77 ; F#
+ dw $FAC7 ; G_
+ dw $FB12 ; G#
+ dw $FB58 ; A_
+ dw $FB9B ; A#
+ dw $FBDA ; B_
--- a/audio/engine_2.asm
+++ b/audio/engine_2.asm
@@ -1,10 +1,10 @@
; The second of three duplicated sound engines.
-Func_21879:: ; 21879 (8:5879)
+Music8_UpdateMusic:: ; 21879 (8:5879)
ld c, CH0
.loop
ld b, $0
- ld hl, $c026
+ ld hl, wc026
add hl, bc
ld a, [hl]
and a
@@ -12,13 +12,13 @@
ld a, c
cp CH4
jr nc, .applyAffects ; if sfx channel
- ld a, [$c002]
+ ld a, [wc002]
and a
jr z, .applyAffects
bit 7, a
jr nz, .nextChannel
set 7, a
- ld [$c002], a
+ ld [wc002], a
xor a
ld [$ff25], a
ld [$ff1a], a
@@ -36,7 +36,8 @@
; this routine checks flags for music effects currently applied
; to the channel and calls certain functions based on flags.
-; known flags for $c02e:
+; known flags for wc02e:
+; 0: toggleperfectpitch has been used
; 1: call has been used
; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag
@@ -43,7 +44,7 @@
; 6: dutycycle flag
Music8_ApplyMusicAffects: ; 218ae (8:58ae)
ld b, $0
- ld hl, $c0b6 ; delay unitl next note
+ ld hl, wc0b6 ; delay until next note
add hl, bc
ld a, [hl]
cp $1 ; if the delay is 1, play next note
@@ -53,7 +54,7 @@
ld a, c
cp CH4
jr nc, .startChecks ; if a sfx channel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
@@ -60,7 +61,7 @@
jr z, .startChecks
ret
.startChecks
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic
@@ -67,22 +68,22 @@
call Music8_ApplyDutyCycle
.checkForExecuteMusic
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, .checkForPitchBend
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 2, [hl]
jr nz, .disablePitchBendVibrato
.checkForPitchBend
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay
jp Music8_ApplyPitchBend
.checkVibratoDelay
- ld hl, $c04e ; vibrato delay
+ ld hl, wc04e ; vibrato delay
add hl, bc
ld a, [hl]
and a ; check if delay is over
@@ -91,7 +92,7 @@
.disablePitchBendVibrato
ret
.checkForVibrato
- ld hl, $c056 ; vibrato rate
+ ld hl, wc056 ; vibrato rate
add hl, bc
ld a, [hl]
and a
@@ -99,7 +100,7 @@
ret ; no vibrato
.vibrato
ld d, a
- ld hl, $c05e
+ ld hl, wc05e
add hl, bc
ld a, [hl]
and $f
@@ -112,10 +113,10 @@
swap [hl]
or [hl]
ld [hl], a ; reset the vibrato value and start again
- ld hl, $c066
+ ld hl, wc066
add hl, bc
ld e, [hl] ; get note pitch
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 3, [hl] ; this is the only code that sets/resets bit three so
jr z, .unset ; it continuously alternates which path it takes
@@ -148,13 +149,13 @@
; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached
Music8_PlayNextNote: ; 21946 (8:5946)
- ld hl, $c06e
+ ld hl, wc06e
add hl, bc
ld a, [hl]
- ld hl, $c04e
+ ld hl, wc04e
add hl, bc
ld [hl], a
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -161,7 +162,7 @@
ld a, c
cp CH4
jr nz, .beginChecks
- ld a, [$d083]
+ ld a, [wd083]
bit 7, a
ret nz
.beginChecks
@@ -174,7 +175,7 @@
cp $ff ; is this command an endchannel?
jp nz, Music8_callchannel ; no
ld b, $0 ; yes
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 1, [hl]
jr nz, .returnFromCall
@@ -184,7 +185,7 @@
jr .asm_219c0
.noiseOrSfxChannel
res 2, [hl]
- ld hl, $c036
+ ld hl, wc036
add hl, bc
res 0, [hl]
cp CH6
@@ -195,11 +196,11 @@
ld [$ff1a], a
.notSfxChannel3
jr nz, .asm_219a3
- ld a, [$c003]
+ ld a, [wc003]
and a
jr z, .asm_219a3
xor a
- ld [$c003], a
+ ld [wc003], a
jr .asm_219c0
.asm_219a3
jr .asm_219c9
@@ -209,10 +210,10 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
push hl ; store current channel address
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld e, l
ld d, h
@@ -230,12 +231,12 @@
and [hl]
ld [$ff25], a
.asm_219c9
- ld a, [$c02a]
+ ld a, [wc02a]
cp $14
jr nc, .asm_219d2
jr .asm_219ef
.asm_219d2
- ld a, [$c02a]
+ ld a, [wc02a]
cp $86
jr z, .asm_219ef
jr c, .asm_219dd
@@ -247,12 +248,12 @@
call Func_21e6d
ret c
.asm_219e6
- ld a, [$c005]
+ ld a, [wc005]
ld [$ff24], a
xor a
- ld [$c005], a
+ ld [wc005], a
.asm_219ef
- ld hl, $c026
+ ld hl, wc026
add hl, bc
ld [hl], b
ret
@@ -271,10 +272,10 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
push hl
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld e, l
ld d, h
@@ -289,7 +290,7 @@
inc hl
ld [hl], d ; overwrite current address with pointer
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 1, [hl] ; set the call flag
jp Music8_endchannel
@@ -302,7 +303,7 @@
and a
jr z, .infiniteLoop
ld b, $0
- ld hl, $c0be
+ ld hl, wc0be
add hl, bc
ld a, [hl]
cp e
@@ -325,7 +326,7 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
pop af
ld [hli], a
@@ -335,11 +336,11 @@
Music8_notetype: ; 21a65 (8:5a65)
and $f0
cp $d0 ; is this command a notetype?
- jp nz, Music8_togglecall ; no
+ jp nz, Music8_toggleperfectpitch ; no
ld a, d ; yes
and $f
ld b, $0
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, bc
ld [hl], a ; store low nibble as speed
ld a, c
@@ -352,10 +353,10 @@
jr z, .musicChannel3
cp CH6
jr nz, .notChannel3
- ld hl, $c0e7
+ ld hl, wc0e7
jr .sfxChannel3
.musicChannel3
- ld hl, $c0e6
+ ld hl, wc0e6
.sfxChannel3
ld a, d
and $f
@@ -370,22 +371,22 @@
; else, store volume (high nibble) and fade (low nibble)
.notChannel3
ld b, $0
- ld hl, $c0de
+ ld hl, wc0de
add hl, bc
ld [hl], d
.noiseChannel
jp Music8_endchannel
-Music8_togglecall: ; 21aa4 (8:5aa4)
+Music8_toggleperfectpitch: ; 21aa4 (8:5aa4)
ld a, d
- cp $e8 ; is this command an togglecall?
+ cp $e8 ; is this command a toggleperfectpitch?
jr nz, Music8_vibrato ; no
ld b, $0 ; yes
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
ld a, [hl]
xor $1
- ld [hl], a ; flip bit 0 of $c02e (toggle returning from call)
+ ld [hl], a ; flip bit 0 of wc02e
jp Music8_endchannel
Music8_vibrato: ; 21ab6 (8:5ab6)
@@ -393,18 +394,18 @@
jr nz, Music8_pitchbend ; no
call Music8_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c04e
+ ld hl, wc04e
add hl, bc
- ld [hl], a ; store delay
- ld hl, $c06e
+ ld [hl], a ; store delay
+ ld hl, wc06e
add hl, bc
- ld [hl], a ; store delay
+ ld [hl], a ; store delay
call Music8_GetNextMusicByte
ld d, a
and $f0
swap a
ld b, $0
- ld hl, $c056
+ ld hl, wc056
add hl, bc
srl a
ld e, a
@@ -415,7 +416,7 @@
ld a, d
and $f
ld d, a
- ld hl, $c05e
+ ld hl, wc05e
add hl, bc
swap a
or d
@@ -427,7 +428,7 @@
jr nz, Music8_duty ; no
call Music8_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c076
+ ld hl, wc076
add hl, bc
ld [hl], a ; store first param
call Music8_GetNextMusicByte
@@ -439,14 +440,14 @@
and $f
call Func_22017
ld b, $0
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld [hl], d ; store unknown part of second param
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld [hl], e ; store unknown part of second param
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 4, [hl] ; set pitchbend flag
call Music8_GetNextMusicByte
@@ -461,7 +462,7 @@
rrca
and $c0
ld b, $0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld [hl], a ; store duty
jp Music8_endchannel
@@ -468,38 +469,38 @@
Music8_tempo: ; 21b3b (8:5b3b)
cp $ed ; is this command a tempo?
- jr nz, Music8_unknownmusic0xee ; no
+ jr nz, Music8_stereopanning ; no
ld a, c ; yes
cp CH4
jr nc, .sfxChannel
call Music8_GetNextMusicByte
- ld [$c0e8], a ; store first param
+ ld [wc0e8], a ; store first param
call Music8_GetNextMusicByte
- ld [$c0e9], a ; store second param
+ ld [wc0e9], a ; store second param
xor a
- ld [$c0ce], a ; clear RAM
- ld [$c0cf], a
- ld [$c0d0], a
- ld [$c0d1], a
+ ld [wc0ce], a ; clear RAM
+ ld [wc0cf], a
+ ld [wc0d0], a
+ ld [wc0d1], a
jr .musicChannelDone
.sfxChannel
call Music8_GetNextMusicByte
- ld [$c0ea], a ; store first param
+ ld [wc0ea], a ; store first param
call Music8_GetNextMusicByte
- ld [$c0eb], a ; store second param
+ ld [wc0eb], a ; store second param
xor a
- ld [$c0d2], a ; clear RAM
- ld [$c0d3], a
- ld [$c0d4], a
- ld [$c0d5], a
+ ld [wc0d2], a ; clear RAM
+ ld [wc0d3], a
+ ld [wc0d4], a
+ ld [wc0d5], a
.musicChannelDone
jp Music8_endchannel
-Music8_unknownmusic0xee: ; 21b7b (8:5b7b)
- cp $ee ; is this command an unknownmusic0xee?
+Music8_stereopanning: ; 21b7b (8:5b7b)
+ cp $ee ; is this command a stereopanning?
jr nz, Music8_unknownmusic0xef ; no
call Music8_GetNextMusicByte ; yes
- ld [$c004], a ; store first param
+ ld [wc004], a ; store panning
jp Music8_endchannel
; this appears to never be used
@@ -510,38 +511,38 @@
push bc
call Func_22035
pop bc
- ld a, [$c003]
+ ld a, [wc003]
and a
jr nz, .skip
- ld a, [$c02d]
- ld [$c003], a
+ ld a, [wc02d]
+ ld [wc003], a
xor a
- ld [$c02d], a
+ ld [wc02d], a
.skip
jp Music8_endchannel
Music8_dutycycle: ; 21ba7 (8:5ba7)
cp $fc ; is this command a dutycycle?
- jr nz, Music8_stereopanning ; no
+ jr nz, Music8_volume ; no
call Music8_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c046
+ ld hl, wc046
add hl, bc
ld [hl], a ; store full cycle
and $c0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld [hl], a ; store first duty
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 6, [hl] ; set dutycycle flag
jp Music8_endchannel
-Music8_stereopanning: ; 21bc5 (8:5bc5)
- cp $f0 ; is this command a stereopanning?
+Music8_volume: ; 21bc5 (8:5bc5)
+ cp $f0 ; is this command a volume?
jr nz, Music8_executemusic ; no
call Music8_GetNextMusicByte ; yes
- ld [$ff24], a
+ ld [$ff24], a ; store volume
jp Music8_endchannel
Music8_executemusic: ; 21bd1 (8:5bd1)
@@ -548,7 +549,7 @@
cp $f8 ; is this command an executemusic?
jr nz, Music8_octave ; no
ld b, $0 ; yes
- ld hl, $c036
+ ld hl, wc036
add hl, bc
set 0, [hl]
jp Music8_endchannel
@@ -557,7 +558,7 @@
and $f0
cp $e0 ; is this command an octave?
jr nz, Music8_unknownsfx0x20 ; no
- ld hl, $c0d6 ; yes
+ ld hl, wc0d6 ; yes
ld b, $0
add hl, bc
ld a, d
@@ -572,7 +573,7 @@
cp CH3 ; is this a noise or sfx channel?
jr c, Music8_unknownsfx0x10 ; no
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music8_unknownsfx0x10 ; no
@@ -579,7 +580,7 @@
call Music8_notelength
ld d, a
ld b, $0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld a, [hl]
or d
@@ -618,7 +619,7 @@
cp $10 ; is this command a unknownsfx0x10?
jr nz, Music8_note ; no
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music8_note ; no
@@ -653,7 +654,7 @@
call Music8_GetNextMusicByte ; get dnote instrument
asm_21c7e
ld d, a
- ld a, [$c003]
+ ld a, [wc003]
and a
jr nz, .asm_21c89
ld a, d
@@ -670,7 +671,7 @@
ld b, $0
ld e, a ; store note length (in 16ths)
ld d, b
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, bc
ld a, [hl]
ld l, b
@@ -678,9 +679,9 @@
ld a, c
cp CH4
jr nc, .sfxChannel
- ld a, [$c0e8]
+ ld a, [wc0e8]
ld d, a
- ld a, [$c0e9]
+ ld a, [wc0e9]
ld e, a
jr .skip
.sfxChannel
@@ -689,31 +690,31 @@
cp CH7
jr z, .skip ; if noise channel
call Func_21e2f
- ld a, [$c0ea]
+ ld a, [wc0ea]
ld d, a
- ld a, [$c0eb]
+ ld a, [wc0eb]
ld e, a
.skip
ld a, l
ld b, $0
- ld hl, $c0ce
+ ld hl, wc0ce
add hl, bc
ld l, [hl]
call Func_22006
ld e, l
ld d, h
- ld hl, $c0ce
+ ld hl, wc0ce
add hl, bc
ld [hl], e
ld a, d
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld [hl], a
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music8_notepitch
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 2, [hl]
jr z, Music8_notepitch
@@ -728,7 +729,7 @@
ld a, c
cp CH4
jr nc, .sfxChannel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
@@ -761,12 +762,12 @@
.notRest
swap a
ld b, $0
- ld hl, $c0d6
+ ld hl, wc0d6
add hl, bc
ld b, [hl]
call Func_22017
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 4, [hl]
jr z, .asm_21d39
@@ -776,7 +777,7 @@
ld a, c
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, $c02a
+ ld hl, wc02a
ld d, $0
ld e, a
add hl, de
@@ -789,7 +790,7 @@
ret
.skip
ld b, $0
- ld hl, $c0de
+ ld hl, wc0de
add hl, bc
ld d, [hl]
ld b, $2
@@ -799,15 +800,15 @@
call Func_21d79
pop de
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
- bit 0, [hl]
- jr z, .asm_21d70
- inc e
- jr nc, .asm_21d70
+ bit 0, [hl] ; has toggleperfectpitch been used?
+ jr z, .skip2
+ inc e ; if yes, increment the pitch by 1
+ jr nc, .skip2
inc d
-.asm_21d70
- ld hl, $c066
+.skip2
+ ld hl, wc066
add hl, bc
ld [hl], e
call Func_21dcc
@@ -825,13 +826,13 @@
jr z, .sfxNoiseChannel
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
jr nz, .skip
.sfxNoiseChannel
- ld a, [$c004]
+ ld a, [wc004]
ld hl, Unknown_222e6
add hl, bc
and [hl]
@@ -849,7 +850,7 @@
Func_21daa: ; 21daa (8:5daa)
ld b, $0
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld d, [hl]
ld a, c
@@ -860,7 +861,7 @@
ld a, d
and $3f
ld d, a
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld a, [hl]
or d
@@ -880,16 +881,16 @@
; fall through
.channel3
push de
- ld de, $c0e6
+ ld de, wc0e6
cp CH2
jr z, .musicChannel3
- ld de, $c0e7
+ ld de, wc0e7
.musicChannel3
ld a, [de]
add a
ld d, $0
ld e, a
- ld hl, Music8_Channel3DutyPointers
+ ld hl, Music8_WavePointers
add hl, de
ld e, [hl]
inc hl
@@ -930,13 +931,13 @@
ld a, c
cp CH4
jr nz, .asm_21e2e
- ld a, [$d083]
+ ld a, [wd083]
bit 7, a
jr z, .asm_21e2e
xor a
- ld [$c0f1], a
+ ld [wc0f1], a
ld a, $80
- ld [$c0f2], a
+ ld [wc0f2], a
.asm_21e2e
ret
@@ -947,20 +948,20 @@
jr nc, .asm_21e4c
.asm_21e39
ld d, $0
- ld a, [$c0f2]
+ ld a, [wc0f2]
add $80
jr nc, .asm_21e43
inc d
.asm_21e43
- ld [$c0eb], a
+ ld [wc0eb], a
ld a, d
- ld [$c0ea], a
+ ld [wc0ea], a
jr .asm_21e55
.asm_21e4c
xor a
- ld [$c0eb], a
+ ld [wc0eb], a
ld a, $1
- ld [$c0ea], a
+ ld [wc0ea], a
.asm_21e55
ret
@@ -970,7 +971,7 @@
call Func_21e9f
jr nc, .asm_21e6c
.asm_21e60
- ld a, [$c0f1]
+ ld a, [wc0f1]
add e
jr nc, .asm_21e67
inc d
@@ -986,7 +987,7 @@
Func_21e6d: ; 21e6d (8:5e6d)
call Func_21e8b
jr nc, .asm_21e88
- ld hl, $c006
+ ld hl, wc006
ld e, c
ld d, $0
sla e
@@ -1007,7 +1008,7 @@
ret
Func_21e8b: ; 21e8b (8:5e8b)
- ld a, [$c02a]
+ ld a, [wc02a]
cp $14
jr nc, .asm_21e94
jr .asm_21e9a
@@ -1024,9 +1025,9 @@
ret
Func_21e9f: ; 21e9f (8:5e9f)
- ld a, [$c02d]
+ ld a, [wc02d]
ld b, a
- ld a, [$c02a]
+ ld a, [wc02a]
or b
cp $9d
jr nc, .asm_21ead
@@ -1044,17 +1045,17 @@
ret
Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 5, [hl]
jp nz, .asm_21eff
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld e, [hl]
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld l, [hl]
ld h, b
@@ -1061,10 +1062,10 @@
add hl, de
ld d, h
ld e, l
- ld hl, $c08e
+ ld hl, wc08e
add hl, bc
push hl
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld a, [hl]
pop hl
@@ -1076,13 +1077,13 @@
ld a, $0
adc d
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, [hl]
cp d
jp c, .asm_21f45
jr nz, .asm_21f32
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, [hl]
cp e
@@ -1089,13 +1090,13 @@
jp c, .asm_21f45
jr .asm_21f32
.asm_21eff
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld a, [hl]
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld e, [hl]
sub e
@@ -1103,7 +1104,7 @@
ld a, d
sbc b
ld d, a
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld a, [hl]
add a
@@ -1114,22 +1115,22 @@
ld a, d
sbc b
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, d
cp [hl]
jr c, .asm_21f45
jr nz, .asm_21f32
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, e
cp [hl]
jr c, .asm_21f45
.asm_21f32
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld [hl], e
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld [hl], d
ld b, $3
@@ -1139,7 +1140,7 @@
ld [hl], d
ret
.asm_21f45
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -1146,16 +1147,16 @@
ret
Func_21f4e: ; 21f4e (8:5f4e)
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld [hl], d
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld [hl], e
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld a, [hl]
- ld hl, $c076
+ ld hl, wc076
add hl, bc
sub [hl]
jr nc, .asm_21f66
@@ -1162,7 +1163,7 @@
ld a, $1
.asm_21f66
ld [hl], a
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, e
sub [hl]
@@ -1169,24 +1170,24 @@
ld e, a
ld a, d
sbc b
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
sub [hl]
jr c, .asm_21f82
ld d, a
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 5, [hl]
jr .asm_21fa5
.asm_21f82
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld e, [hl]
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, [hl]
sub e
@@ -1194,17 +1195,17 @@
ld a, d
sbc b
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, [hl]
sub d
ld d, a
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 5, [hl]
.asm_21fa5
- ld hl, $c076
+ ld hl, wc076
add hl, bc
.asm_21fa9
inc b
@@ -1223,13 +1224,13 @@
add [hl]
ld d, b
ld b, $0
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld [hl], d
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld [hl], a
- ld hl, $c08e
+ ld hl, wc08e
add hl, bc
ld [hl], a
ret
@@ -1236,7 +1237,7 @@
Music8_ApplyDutyCycle: ; 21fcc (8:5fcc)
ld b, $0
- ld hl, $c046
+ ld hl, wc046
add hl, bc
ld a, [hl]
rlca
@@ -1257,7 +1258,7 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
ld a, [hli]
ld e, a
@@ -1305,7 +1306,7 @@
add hl, hl
ld d, h
ld e, l
- ld hl, Unknown_222ee
+ ld hl, Music8_Pitches
add hl, de
ld e, [hl]
inc hl
@@ -1325,7 +1326,7 @@
ret
Func_22035:: ; 22035 (8:6035)
- ld [$c001], a
+ ld [wc001], a
cp $ff
jp z, Func_221f3
cp $e9
@@ -1336,63 +1337,63 @@
jp nc, Func_2210d
.asm_2204c
xor a
- ld [$c000], a
- ld [$c003], a
- ld [$c0e9], a
- ld [$c0e6], a
- ld [$c0e7], a
+ ld [wc000], a
+ ld [wc003], a
+ ld [wc0e9], a
+ ld [wc0e6], a
+ ld [wc0e7], a
ld d, $8
- ld hl, $c016
+ ld hl, wc016
call FillMusicRAM8
- ld hl, $c006
+ ld hl, wc006
call FillMusicRAM8
ld d, $4
- ld hl, $c026
+ ld hl, wc026
call FillMusicRAM8
- ld hl, $c02e
+ ld hl, wc02e
call FillMusicRAM8
- ld hl, $c03e
+ ld hl, wc03e
call FillMusicRAM8
- ld hl, $c046
+ ld hl, wc046
call FillMusicRAM8
- ld hl, $c04e
+ ld hl, wc04e
call FillMusicRAM8
- ld hl, $c056
+ ld hl, wc056
call FillMusicRAM8
- ld hl, $c05e
+ ld hl, wc05e
call FillMusicRAM8
- ld hl, $c066
+ ld hl, wc066
call FillMusicRAM8
- ld hl, $c06e
+ ld hl, wc06e
call FillMusicRAM8
- ld hl, $c036
+ ld hl, wc036
call FillMusicRAM8
- ld hl, $c076
+ ld hl, wc076
call FillMusicRAM8
- ld hl, $c07e
+ ld hl, wc07e
call FillMusicRAM8
- ld hl, $c086
+ ld hl, wc086
call FillMusicRAM8
- ld hl, $c08e
+ ld hl, wc08e
call FillMusicRAM8
- ld hl, $c096
+ ld hl, wc096
call FillMusicRAM8
- ld hl, $c09e
+ ld hl, wc09e
call FillMusicRAM8
- ld hl, $c0a6
+ ld hl, wc0a6
call FillMusicRAM8
- ld hl, $c0ae
+ ld hl, wc0ae
call FillMusicRAM8
ld a, $1
- ld hl, $c0be
+ ld hl, wc0be
call FillMusicRAM8
- ld hl, $c0b6
+ ld hl, wc0b6
call FillMusicRAM8
- ld hl, $c0c6
+ ld hl, wc0c6
call FillMusicRAM8
- ld [$c0e8], a
+ ld [wc0e8], a
ld a, $ff
- ld [$c004], a
+ ld [wc004], a
xor a
ld [$ff24], a
ld a, $8
@@ -1417,9 +1418,9 @@
ld de, SFX_Headers_08
add hl, de
ld a, h
- ld [$c0ec], a
+ ld [wc0ec], a
ld a, l
- ld [$c0ed], a
+ ld [wc0ed], a
ld a, [hl]
and $c0
rlca
@@ -1432,9 +1433,9 @@
add c
ld c, a
ld b, $0
- ld a, [$c0ec]
+ ld a, [wc0ec]
ld h, a
- ld a, [$c0ed]
+ ld a, [wc0ed]
ld l, a
add hl, bc
ld c, d
@@ -1442,7 +1443,7 @@
and $f
ld e, a
ld d, $0
- ld hl, $c026
+ ld hl, wc026
add hl, de
ld a, [hl]
and a
@@ -1450,7 +1451,7 @@
ld a, e
cp $7
jr nz, .asm_22159
- ld a, [$c001]
+ ld a, [wc001]
cp $14
jr nc, .asm_22152
ret
@@ -1460,7 +1461,7 @@
jr z, .asm_22162
jr c, .asm_22162
.asm_22159
- ld a, [$c001]
+ ld a, [wc001]
cp [hl]
jr z, .asm_22162
jr c, .asm_22162
@@ -1473,77 +1474,77 @@
add hl, hl
ld d, h
ld e, l
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld [hli], a
ld [hl], a
- ld hl, $c006
+ ld hl, wc006
add hl, de
ld [hli], a
ld [hl], a
pop de
- ld hl, $c026
+ ld hl, wc026
add hl, de
ld [hl], a
- ld hl, $c02e
+ ld hl, wc02e
add hl, de
ld [hl], a
- ld hl, $c03e
+ ld hl, wc03e
add hl, de
ld [hl], a
- ld hl, $c046
+ ld hl, wc046
add hl, de
ld [hl], a
- ld hl, $c04e
+ ld hl, wc04e
add hl, de
ld [hl], a
- ld hl, $c056
+ ld hl, wc056
add hl, de
ld [hl], a
- ld hl, $c05e
+ ld hl, wc05e
add hl, de
ld [hl], a
- ld hl, $c066
+ ld hl, wc066
add hl, de
ld [hl], a
- ld hl, $c06e
+ ld hl, wc06e
add hl, de
ld [hl], a
- ld hl, $c076
+ ld hl, wc076
add hl, de
ld [hl], a
- ld hl, $c07e
+ ld hl, wc07e
add hl, de
ld [hl], a
- ld hl, $c086
+ ld hl, wc086
add hl, de
ld [hl], a
- ld hl, $c08e
+ ld hl, wc08e
add hl, de
ld [hl], a
- ld hl, $c096
+ ld hl, wc096
add hl, de
ld [hl], a
- ld hl, $c09e
+ ld hl, wc09e
add hl, de
ld [hl], a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, de
ld [hl], a
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, de
ld [hl], a
- ld hl, $c036
+ ld hl, wc036
add hl, de
ld [hl], a
ld a, $1
- ld hl, $c0be
+ ld hl, wc0be
add hl, de
ld [hl], a
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, de
ld [hl], a
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, de
ld [hl], a
ld a, e
@@ -1577,24 +1578,24 @@
ld a, $77
ld [$ff24], a
xor a
- ld [$c000], a
- ld [$c003], a
- ld [$c002], a
- ld [$c0e9], a
- ld [$c0eb], a
- ld [$c0e6], a
- ld [$c0e7], a
+ ld [wc000], a
+ ld [wc003], a
+ ld [wc002], a
+ ld [wc0e9], a
+ ld [wc0eb], a
+ ld [wc0e6], a
+ ld [wc0e7], a
ld d, $a0
- ld hl, $c006
+ ld hl, wc006
call FillMusicRAM8
ld a, $1
ld d, $18
- ld hl, $c0b6
+ ld hl, wc0b6
call FillMusicRAM8
- ld [$c0e8], a
- ld [$c0ea], a
+ ld [wc0e8], a
+ ld [wc0ea], a
ld a, $ff
- ld [$c004], a
+ ld [wc004], a
ret
; fills d bytes at hl with a
@@ -1607,7 +1608,7 @@
ret
Func_2224e: ; 2224e (8:624e)
- ld a, [$c001]
+ ld a, [wc001]
ld l, a
ld e, a
ld h, $0
@@ -1618,7 +1619,7 @@
add hl, de
ld e, l
ld d, h
- ld hl, $c006
+ ld hl, wc006
ld a, [de] ; get channel number
ld b, a
rlca
@@ -1644,14 +1645,14 @@
push af
ld b, $0
ld c, a
- ld hl, $c026
+ ld hl, wc026
add hl, bc
- ld a, [$c001]
+ ld a, [wc001]
ld [hl], a
pop af
cp $3
jr c, .asm_22291
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 2, [hl]
.asm_22291
@@ -1670,32 +1671,32 @@
ld a, [de]
inc de
jr nz, .asm_22270
- ld a, [$c001]
+ ld a, [wc001]
cp $14
jr nc, .asm_222aa
jr .asm_222d4
.asm_222aa
- ld a, [$c001]
+ ld a, [wc001]
cp $86
jr z, .asm_222d4
jr c, .asm_222b5
jr .asm_222d4
.asm_222b5
- ld hl, $c02a
+ ld hl, wc02a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, $c012 ; sfx noise channel pointer
+ ld hl, wc012 ; sfx noise channel pointer
ld de, Noise8_endchannel
ld [hl], e
inc hl
ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [$c005]
+ ld a, [wc005]
and a
jr nz, .asm_222d4
ld a, [$ff24]
- ld [$c005], a
+ ld [wc005], a
ld a, $77
ld [$ff24], a
.asm_222d4
@@ -1716,18 +1717,18 @@
db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7
-Unknown_222ee: ; 222ee (8:62ee)
- dw $F82C
- dw $F89D
- dw $F907
- dw $F96B
- dw $F9CA
- dw $FA23
- dw $FA77
- dw $FAC7
- dw $FB12
- dw $FB58
- dw $FB9B
- dw $FBDA
+Music8_Pitches: ; 222ee (8:62ee)
+ dw $F82C ; C_
+ dw $F89D ; C#
+ dw $F907 ; D_
+ dw $F96B ; D#
+ dw $F9CA ; E_
+ dw $FA23 ; F_
+ dw $FA77 ; F#
+ dw $FAC7 ; G_
+ dw $FB12 ; G#
+ dw $FB58 ; A_
+ dw $FB9B ; A#
+ dw $FBDA ; B_
--- a/audio/engine_3.asm
+++ b/audio/engine_3.asm
@@ -1,10 +1,10 @@
; The third of three duplicated sound engines.
-Func_7d177:: ; 7d177 (1f:5177)
+Music1f_UpdateMusic:: ; 7d177 (1f:5177)
ld c, CH0
.loop
ld b, $0
- ld hl, $c026
+ ld hl, wc026
add hl, bc
ld a, [hl]
and a
@@ -12,13 +12,13 @@
ld a, c
cp CH4
jr nc, .applyAffects ; if sfx channel
- ld a, [$c002]
+ ld a, [wc002]
and a
jr z, .applyAffects
bit 7, a
jr nz, .nextChannel
set 7, a
- ld [$c002], a
+ ld [wc002], a
xor a
ld [$ff25], a
ld [$ff1a], a
@@ -26,7 +26,7 @@
ld [$ff1a], a
jr .nextChannel
.applyAffects
- call Music1f_Music2_ApplyMusicAffects
+ call Music1f_ApplyMusicAffects
.nextChannel
ld a, c
inc c ; inc channel number
@@ -36,24 +36,25 @@
; this routine checks flags for music effects currently applied
; to the channel and calls certain functions based on flags.
-; known flags for $c02e:
+; known flags for wc02e:
+; 0: toggleperfectpitch has been used
; 1: call has been used
; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag
; 6: dutycycle flag
-Music1f_Music2_ApplyMusicAffects: ; 7d1ac (1f:51ac)
+Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
ld b, $0
- ld hl, $c0b6 ; delay until next note
+ ld hl, wc0b6 ; delay until next note
add hl, bc
ld a, [hl]
cp $1 ; if delay is 1, play next note
- jp z, Music1f_Music2_PlayNextNote
+ jp z, Music1f_PlayNextNote
dec a ; otherwise, decrease the delay timer
ld [hl], a
ld a, c
cp CH4
jr nc, .startChecks ; if a sfx channel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
@@ -60,7 +61,7 @@
jr z, .startChecks
ret
.startChecks
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic
@@ -67,22 +68,22 @@
call Music1f_ApplyDutyCycle
.checkForExecuteMusic
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, .checkForPitchBend
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 2, [hl]
jr nz, .disablePitchBendVibrato
.checkForPitchBend
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay
jp Music1f_ApplyPitchBend
.checkVibratoDelay
- ld hl, $c04e ; vibrato delay
+ ld hl, wc04e ; vibrato delay
add hl, bc
ld a, [hl]
and a ; check if delay is over
@@ -91,7 +92,7 @@
.disablePitchBendVibrato
ret
.checkForVibrato
- ld hl, $c056 ; vibrato rate
+ ld hl, wc056 ; vibrato rate
add hl, bc
ld a, [hl]
and a
@@ -99,7 +100,7 @@
ret ; no vibrato
.vibrato
ld d, a
- ld hl, $c05e
+ ld hl, wc05e
add hl, bc
ld a, [hl]
and $f
@@ -112,10 +113,10 @@
swap [hl]
or [hl]
ld [hl], a ; reset the vibrato value and start again
- ld hl, $c066
+ ld hl, wc066
add hl, bc
ld e, [hl] ; get note pitch
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 3, [hl] ; this is the only code that sets/resets bit three so
jr z, .unset ; it continuously alternates which path it takes
@@ -147,14 +148,14 @@
; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached
-Music1f_Music2_PlayNextNote: ; 7d244 (1f:5244)
- ld hl, $c06e
+Music1f_PlayNextNote: ; 7d244 (1f:5244)
+ ld hl, wc06e
add hl, bc
ld a, [hl]
- ld hl, $c04e
+ ld hl, wc04e
add hl, bc
ld [hl], a
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -167,7 +168,7 @@
cp $ff ; is this command an endchannel?
jp nz, Music1f_callchannel ; no
ld b, $0 ; yes
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 1, [hl]
jr nz, .returnFromCall
@@ -177,7 +178,7 @@
jr .asm_7d2b3
.noiseOrSfxChannel
res 2, [hl]
- ld hl, $c036
+ ld hl, wc036
add hl, bc
res 0, [hl]
cp CH6
@@ -188,11 +189,11 @@
ld [$ff1a], a
.notSfxChannel3
jr nz, .asm_7d296
- ld a, [$c003]
+ ld a, [wc003]
and a
jr z, .asm_7d296
xor a
- ld [$c003], a
+ ld [wc003], a
jr .asm_7d2b3
.asm_7d296
jr .asm_7d2bc
@@ -202,10 +203,10 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
push hl ; store current channel address
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld e, l
ld d, h
@@ -223,12 +224,12 @@
and [hl]
ld [$ff25], a
.asm_7d2bc
- ld a, [$c02a]
+ ld a, [wc02a]
cp $14
jr nc, .asm_7d2c5
jr .asm_7d2e2
.asm_7d2c5
- ld a, [$c02a]
+ ld a, [wc02a]
cp $86
jr z, .asm_7d2e2
jr c, .asm_7d2d0
@@ -240,12 +241,12 @@
call Func_7d73b
ret c
.asm_7d2d9
- ld a, [$c005]
+ ld a, [wc005]
ld [$ff24], a
xor a
- ld [$c005], a
+ ld [wc005], a
.asm_7d2e2
- ld hl, $c026
+ ld hl, wc026
add hl, bc
ld [hl], b
ret
@@ -264,10 +265,10 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
push hl
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld e, l
ld d, h
@@ -282,7 +283,7 @@
inc hl
ld [hl], d ; overwrite current address with pointer
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 1, [hl] ; set the call flag
jp Music1f_endchannel
@@ -295,7 +296,7 @@
and a
jr z, .infiniteLoop
ld b, $0
- ld hl, $c0be
+ ld hl, wc0be
add hl, bc
ld a, [hl]
cp e
@@ -318,7 +319,7 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
pop af
ld [hli], a
@@ -328,11 +329,11 @@
Music1f_notetype: ; 7d358 (1f:5358)
and $f0
cp $d0 ; is this command a notetype?
- jp nz, Music1f_togglecall ; no
+ jp nz, Music1f_toggleperfectpitch ; no
ld a, d ; yes
and $f
ld b, $0
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, bc
ld [hl], a ; store low nibble as speed
ld a, c
@@ -345,10 +346,10 @@
jr z, .musicChannel3
cp CH6
jr nz, .notChannel3
- ld hl, $c0e7
+ ld hl, wc0e7
jr .sfxChannel3
.musicChannel3
- ld hl, $c0e6
+ ld hl, wc0e6
.sfxChannel3
ld a, d
and $f
@@ -363,22 +364,22 @@
; else, store volume (high nibble) and fade (low nibble)
.notChannel3
ld b, $0
- ld hl, $c0de
+ ld hl, wc0de
add hl, bc
ld [hl], d
.noiseChannel
jp Music1f_endchannel
-Music1f_togglecall: ; 7d397 (1f:5397)
+Music1f_toggleperfectpitch: ; 7d397 (1f:5397)
ld a, d
- cp $e8 ; is this command an togglecall?
+ cp $e8 ; is this command a toggleperfectpitch?
jr nz, Music1f_vibrato ; no
ld b, $0 ; yes
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
ld a, [hl]
xor $1
- ld [hl], a ; flip bit 0 of $c02e (toggle returning from call)
+ ld [hl], a ; flip bit 0 of wc02e
jp Music1f_endchannel
Music1f_vibrato: ; 7d3a9 (1f:53a9)
@@ -386,10 +387,10 @@
jr nz, Music1f_pitchbend ; no
call Music1f_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c04e
+ ld hl, wc04e
add hl, bc
ld [hl], a ; store delay
- ld hl, $c06e
+ ld hl, wc06e
add hl, bc
ld [hl], a ; store delay
call Music1f_GetNextMusicByte
@@ -397,7 +398,7 @@
and $f0
swap a
ld b, $0
- ld hl, $c056
+ ld hl, wc056
add hl, bc
srl a
ld e, a
@@ -408,7 +409,7 @@
ld a, d
and $f
ld d, a
- ld hl, $c05e
+ ld hl, wc05e
add hl, bc
swap a
or d
@@ -420,7 +421,7 @@
jr nz, Music1f_duty ; no
call Music1f_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c076
+ ld hl, wc076
add hl, bc
ld [hl], a ; store first param
call Music1f_GetNextMusicByte
@@ -432,14 +433,14 @@
and $f
call Func_7d8cc
ld b, $0
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld [hl], d ; store unknown part of second param
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld [hl], e ; store unknown part of second param
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 4, [hl] ; set pitchbend flag
call Music1f_GetNextMusicByte
@@ -454,7 +455,7 @@
rrca
and $c0
ld b, $0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld [hl], a ; store duty
jp Music1f_endchannel
@@ -461,38 +462,38 @@
Music1f_tempo: ; 7d42e (1f:542e)
cp $ed ; is this command a tempo?
- jr nz, Music1f_unknownmusic0xee ; no
+ jr nz, Music1f_stereopanning ; no
ld a, c ; yes
cp CH4
jr nc, .sfxChannel
call Music1f_GetNextMusicByte
- ld [$c0e8], a ; store first param
+ ld [wc0e8], a ; store first param
call Music1f_GetNextMusicByte
- ld [$c0e9], a ; store second param
+ ld [wc0e9], a ; store second param
xor a
- ld [$c0ce], a ; clear RAM
- ld [$c0cf], a
- ld [$c0d0], a
- ld [$c0d1], a
+ ld [wc0ce], a ; clear RAM
+ ld [wc0cf], a
+ ld [wc0d0], a
+ ld [wc0d1], a
jr .musicChannelDone
.sfxChannel
call Music1f_GetNextMusicByte
- ld [$c0ea], a ; store first param
+ ld [wc0ea], a ; store first param
call Music1f_GetNextMusicByte
- ld [$c0eb], a ; store second param
+ ld [wc0eb], a ; store second param
xor a
- ld [$c0d2], a ; clear RAM
- ld [$c0d3], a
- ld [$c0d4], a
- ld [$c0d5], a
+ ld [wc0d2], a ; clear RAM
+ ld [wc0d3], a
+ ld [wc0d4], a
+ ld [wc0d5], a
.musicChannelDone
jp Music1f_endchannel
-Music1f_unknownmusic0xee: ; 7d46e (1f:546e)
- cp $ee ; is this command an unknownmusic0xee?
+Music1f_stereopanning: ; 7d46e (1f:546e)
+ cp $ee ; is this command a stereopanning?
jr nz, Music1f_unknownmusic0xef ; no
call Music1f_GetNextMusicByte ; yes
- ld [$c004], a ; store first param
+ ld [wc004], a ; store panning
jp Music1f_endchannel
; this appears to never be used
@@ -503,38 +504,38 @@
push bc
call Func_7d8ea
pop bc
- ld a, [$c003]
+ ld a, [wc003]
and a
jr nz, .skip
- ld a, [$c02d]
- ld [$c003], a
+ ld a, [wc02d]
+ ld [wc003], a
xor a
- ld [$c02d], a
+ ld [wc02d], a
.skip
jp Music1f_endchannel
Music1f_dutycycle: ; 7d49a (1f:549a)
cp $fc ; is this command a dutycycle?
- jr nz, Music1f_stereopanning ; no
+ jr nz, Music1f_volume ; no
call Music1f_GetNextMusicByte ; yes
ld b, $0
- ld hl, $c046
+ ld hl, wc046
add hl, bc
ld [hl], a ; store full cycle
and $c0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld [hl], a ; store first duty
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 6, [hl] ; set duty flag
jp Music1f_endchannel
-Music1f_stereopanning: ; 7d4b8 (1f:54b8)
- cp $f0 ; is this command a stereopanning?
+Music1f_volume: ; 7d4b8 (1f:54b8)
+ cp $f0 ; is this command a volume?
jr nz, Music1f_executemusic ; no
call Music1f_GetNextMusicByte ; yes
- ld [$ff24], a ; store stereopanning
+ ld [$ff24], a ; store volume
jp Music1f_endchannel
Music1f_executemusic: ; 7d4c4 (1f:54c4)
@@ -541,7 +542,7 @@
cp $f8 ; is this command an executemusic?
jr nz, Music1f_octave ; no
ld b, $0 ; yes
- ld hl, $c036
+ ld hl, wc036
add hl, bc
set 0, [hl]
jp Music1f_endchannel
@@ -550,7 +551,7 @@
and $f0
cp $e0 ; is this command an octave?
jr nz, Music1f_unknownsfx0x20 ; no
- ld hl, $c0d6 ; yes
+ ld hl, wc0d6 ; yes
ld b, $0
add hl, bc
ld a, d
@@ -565,7 +566,7 @@
cp CH3 ; is this a noise or sfx channel?
jr c, Music1f_unknownsfx0x10 ; no
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music1f_unknownsfx0x10 ; no
@@ -572,7 +573,7 @@
call Music1f_notelength ; yes
ld d, a
ld b, $0
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld a, [hl]
or d
@@ -611,7 +612,7 @@
cp $10 ; is this command an unknownsfx0x10?
jr nz, Music1f_note ; no
ld b, $0
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music1f_note ; no
@@ -646,7 +647,7 @@
call Music1f_GetNextMusicByte ; get dnote instrument
asm_7d571
ld d, a
- ld a, [$c003]
+ ld a, [wc003]
and a
jr nz, .asm_7d57c
ld a, d
@@ -663,7 +664,7 @@
ld b, $0
ld e, a ; store note length (in 16ths)
ld d, b
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, bc
ld a, [hl]
ld l, b
@@ -671,9 +672,9 @@
ld a, c
cp CH4
jr nc, .sfxChannel
- ld a, [$c0e8]
+ ld a, [wc0e8]
ld d, a
- ld a, [$c0e9]
+ ld a, [wc0e9]
ld e, a
jr .skip
.sfxChannel
@@ -682,31 +683,31 @@
cp CH7
jr z, .skip ; if noise channel
call Func_7d707
- ld a, [$c0ea]
+ ld a, [wc0ea]
ld d, a
- ld a, [$c0eb]
+ ld a, [wc0eb]
ld e, a
.skip
ld a, l
ld b, $0
- ld hl, $c0ce
+ ld hl, wc0ce
add hl, bc
ld l, [hl]
call Func_7d8bb
ld e, l
ld d, h
- ld hl, $c0ce
+ ld hl, wc0ce
add hl, bc
ld [hl], e
ld a, d
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld [hl], a
- ld hl, $c036
+ ld hl, wc036
add hl, bc
bit 0, [hl]
jr nz, Music1f_notepitch
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 2, [hl]
jr z, Music1f_notepitch
@@ -721,7 +722,7 @@
ld a, c
cp CH4
jr nc, .sfxChannel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
@@ -754,12 +755,12 @@
.notRest
swap a
ld b, $0
- ld hl, $c0d6
+ ld hl, wc0d6
add hl, bc
ld b, [hl]
call Func_7d8cc
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 4, [hl]
jr z, .asm_7d62c
@@ -769,7 +770,7 @@
ld a, c
cp CH4
jr nc, .skip ; if sfx Channel
- ld hl, $c02a
+ ld hl, wc02a
ld d, $0
ld e, a
add hl, de
@@ -782,7 +783,7 @@
ret
.skip
ld b, $0
- ld hl, $c0de
+ ld hl, wc0de
add hl, bc
ld d, [hl]
ld b, $2
@@ -792,15 +793,15 @@
call Func_7d66c
pop de
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
- bit 0, [hl]
- jr z, .asm_7d663
- inc e
- jr nc, .asm_7d663
+ bit 0, [hl] ; has toggleperfectpitch been used?
+ jr z, .skip2
+ inc e ; if yes, increment the pitch by 1
+ jr nc, .skip2
inc d
-.asm_7d663
- ld hl, $c066
+.skip2
+ ld hl, wc066
add hl, bc
ld [hl], e
call Func_7d6bf
@@ -818,13 +819,13 @@
jr z, .sfxNoiseChannel
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, $c02a
+ ld hl, wc02a
add hl, bc
ld a, [hl]
and a
jr nz, .skip
.sfxNoiseChannel
- ld a, [$c004]
+ ld a, [wc004]
ld hl, Unknown_7db9b
add hl, bc
and [hl]
@@ -842,7 +843,7 @@
Func_7d69d: ; 7d69d (1f:569d)
ld b, $0
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld d, [hl]
ld a, c
@@ -853,7 +854,7 @@
ld a, d
and $3f
ld d, a
- ld hl, $c03e
+ ld hl, wc03e
add hl, bc
ld a, [hl]
or d
@@ -873,16 +874,16 @@
; fall through
.channel3
push de
- ld de, $c0e6
+ ld de, wc0e6
cp CH2
jr z, .musicChannel3
- ld de, $c0e7
+ ld de, wc0e7
.musicChannel3
ld a, [de]
add a
ld d, $0
ld e, a
- ld hl, Music1f_Channel3DutyPointers
+ ld hl, Music1f_WavePointers
add hl, de
ld e, [hl]
inc hl
@@ -919,20 +920,20 @@
call Func_7d759
jr nc, .asm_7d71f
ld d, $0
- ld a, [$c0f2]
+ ld a, [wc0f2]
add $80
jr nc, .asm_7d716
inc d
.asm_7d716
- ld [$c0eb], a
+ ld [wc0eb], a
ld a, d
- ld [$c0ea], a
+ ld [wc0ea], a
jr .asm_7d728
.asm_7d71f
xor a
- ld [$c0eb], a
+ ld [wc0eb], a
ld a, $1
- ld [$c0ea], a
+ ld [wc0ea], a
.asm_7d728
ret
@@ -939,7 +940,7 @@
Func_7d729: ; 7d729 (1f:5729)
call Func_7d759
jr nc, .asm_7d73a
- ld a, [$c0f1]
+ ld a, [wc0f1]
add e
jr nc, .asm_7d735
inc d
@@ -955,7 +956,7 @@
Func_7d73b: ; 7d73b (1f:573b)
call Func_7d759
jr nc, .asm_7d756
- ld hl, $c006
+ ld hl, wc006
ld e, c
ld d, $0
sla e
@@ -976,7 +977,7 @@
ret
Func_7d759: ; 7d759 (1f:5759)
- ld a, [$c02a]
+ ld a, [wc02a]
cp $14
jr nc, .asm_7d762
jr .asm_7d768
@@ -993,17 +994,17 @@
ret
Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
bit 5, [hl]
jp nz, .asm_7d7b4
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld e, [hl]
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld l, [hl]
ld h, b
@@ -1010,10 +1011,10 @@
add hl, de
ld d, h
ld e, l
- ld hl, $c08e
+ ld hl, wc08e
add hl, bc
push hl
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld a, [hl]
pop hl
@@ -1025,13 +1026,13 @@
ld a, $0
adc d
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, [hl]
cp d
jp c, .asm_7d7fa
jr nz, .asm_7d7e7
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, [hl]
cp e
@@ -1038,13 +1039,13 @@
jp c, .asm_7d7fa
jr .asm_7d7e7
.asm_7d7b4
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld a, [hl]
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld e, [hl]
sub e
@@ -1052,7 +1053,7 @@
ld a, d
sbc b
ld d, a
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld a, [hl]
add a
@@ -1063,22 +1064,22 @@
ld a, d
sbc b
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, d
cp [hl]
jr c, .asm_7d7fa
jr nz, .asm_7d7e7
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, e
cp [hl]
jr c, .asm_7d7fa
.asm_7d7e7
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld [hl], e
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld [hl], d
ld b, $3
@@ -1088,7 +1089,7 @@
ld [hl], d
ret
.asm_7d7fa
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -1095,16 +1096,16 @@
ret
Func_7d803: ; 7d803 (1f:5803)
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld [hl], d
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld [hl], e
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, bc
ld a, [hl]
- ld hl, $c076
+ ld hl, wc076
add hl, bc
sub [hl]
jr nc, .asm_7d81b
@@ -1111,7 +1112,7 @@
ld a, $1
.asm_7d81b
ld [hl], a
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, e
sub [hl]
@@ -1118,24 +1119,24 @@
ld e, a
ld a, d
sbc b
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
sub [hl]
jr c, .asm_7d837
ld d, a
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 5, [hl]
jr .asm_7d85a
.asm_7d837
- ld hl, $c096
+ ld hl, wc096
add hl, bc
ld d, [hl]
- ld hl, $c09e
+ ld hl, wc09e
add hl, bc
ld e, [hl]
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, bc
ld a, [hl]
sub e
@@ -1143,17 +1144,17 @@
ld a, d
sbc b
ld d, a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, bc
ld a, [hl]
sub d
ld d, a
ld b, $0
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
res 5, [hl]
.asm_7d85a
- ld hl, $c076
+ ld hl, wc076
add hl, bc
.asm_7d85e
inc b
@@ -1172,13 +1173,13 @@
add [hl]
ld d, b
ld b, $0
- ld hl, $c07e
+ ld hl, wc07e
add hl, bc
ld [hl], d
- ld hl, $c086
+ ld hl, wc086
add hl, bc
ld [hl], a
- ld hl, $c08e
+ ld hl, wc08e
add hl, bc
ld [hl], a
ret
@@ -1185,7 +1186,7 @@
Music1f_ApplyDutyCycle: ; 7d881 (1f:5881)
ld b, $0
- ld hl, $c046
+ ld hl, wc046
add hl, bc
ld a, [hl]
rlca
@@ -1206,7 +1207,7 @@
ld a, c
add a
ld e, a
- ld hl, $c006
+ ld hl, wc006
add hl, de
ld a, [hli]
ld e, a
@@ -1254,7 +1255,7 @@
add hl, hl
ld d, h
ld e, l
- ld hl, Unknown_7dba3
+ ld hl, Music1f_Pitches
add hl, de
ld e, [hl]
inc hl
@@ -1274,7 +1275,7 @@
ret
Func_7d8ea:: ; 7d8ea (1f:58ea)
- ld [$c001], a
+ ld [wc001], a
cp $ff
jp z, Func_7daa8
cp $c2
@@ -1285,63 +1286,63 @@
jp nc, Func_7d9c2
.asm_7d901
xor a
- ld [$c000], a
- ld [$c003], a
- ld [$c0e9], a
- ld [$c0e6], a
- ld [$c0e7], a
+ ld [wc000], a
+ ld [wc003], a
+ ld [wc0e9], a
+ ld [wc0e6], a
+ ld [wc0e7], a
ld d, $8
- ld hl, $c016
+ ld hl, wc016
call FillMusicRAM1f
- ld hl, $c006
+ ld hl, wc006
call FillMusicRAM1f
ld d, $4
- ld hl, $c026
+ ld hl, wc026
call FillMusicRAM1f
- ld hl, $c02e
+ ld hl, wc02e
call FillMusicRAM1f
- ld hl, $c03e
+ ld hl, wc03e
call FillMusicRAM1f
- ld hl, $c046
+ ld hl, wc046
call FillMusicRAM1f
- ld hl, $c04e
+ ld hl, wc04e
call FillMusicRAM1f
- ld hl, $c056
+ ld hl, wc056
call FillMusicRAM1f
- ld hl, $c05e
+ ld hl, wc05e
call FillMusicRAM1f
- ld hl, $c066
+ ld hl, wc066
call FillMusicRAM1f
- ld hl, $c06e
+ ld hl, wc06e
call FillMusicRAM1f
- ld hl, $c036
+ ld hl, wc036
call FillMusicRAM1f
- ld hl, $c076
+ ld hl, wc076
call FillMusicRAM1f
- ld hl, $c07e
+ ld hl, wc07e
call FillMusicRAM1f
- ld hl, $c086
+ ld hl, wc086
call FillMusicRAM1f
- ld hl, $c08e
+ ld hl, wc08e
call FillMusicRAM1f
- ld hl, $c096
+ ld hl, wc096
call FillMusicRAM1f
- ld hl, $c09e
+ ld hl, wc09e
call FillMusicRAM1f
- ld hl, $c0a6
+ ld hl, wc0a6
call FillMusicRAM1f
- ld hl, $c0ae
+ ld hl, wc0ae
call FillMusicRAM1f
ld a, $1
- ld hl, $c0be
+ ld hl, wc0be
call FillMusicRAM1f
- ld hl, $c0b6
+ ld hl, wc0b6
call FillMusicRAM1f
- ld hl, $c0c6
+ ld hl, wc0c6
call FillMusicRAM1f
- ld [$c0e8], a
+ ld [wc0e8], a
ld a, $ff
- ld [$c004], a
+ ld [wc004], a
xor a
ld [$ff24], a
ld a, $8
@@ -1366,9 +1367,9 @@
ld de, SFX_Headers_1f
add hl, de
ld a, h
- ld [$c0ec], a
+ ld [wc0ec], a
ld a, l
- ld [$c0ed], a
+ ld [wc0ed], a
ld a, [hl]
and $c0
rlca
@@ -1381,9 +1382,9 @@
add c
ld c, a
ld b, $0
- ld a, [$c0ec]
+ ld a, [wc0ec]
ld h, a
- ld a, [$c0ed]
+ ld a, [wc0ed]
ld l, a
add hl, bc
ld c, d
@@ -1391,7 +1392,7 @@
and $f
ld e, a
ld d, $0
- ld hl, $c026
+ ld hl, wc026
add hl, de
ld a, [hl]
and a
@@ -1399,7 +1400,7 @@
ld a, e
cp $7
jr nz, .asm_7da0e
- ld a, [$c001]
+ ld a, [wc001]
cp $14
jr nc, .asm_7da07
ret
@@ -1409,7 +1410,7 @@
jr z, .asm_7da17
jr c, .asm_7da17
.asm_7da0e
- ld a, [$c001]
+ ld a, [wc001]
cp [hl]
jr z, .asm_7da17
jr c, .asm_7da17
@@ -1422,77 +1423,77 @@
add hl, hl
ld d, h
ld e, l
- ld hl, $c016
+ ld hl, wc016
add hl, de
ld [hli], a
ld [hl], a
- ld hl, $c006
+ ld hl, wc006
add hl, de
ld [hli], a
ld [hl], a
pop de
- ld hl, $c026
+ ld hl, wc026
add hl, de
ld [hl], a
- ld hl, $c02e
+ ld hl, wc02e
add hl, de
ld [hl], a
- ld hl, $c03e
+ ld hl, wc03e
add hl, de
ld [hl], a
- ld hl, $c046
+ ld hl, wc046
add hl, de
ld [hl], a
- ld hl, $c04e
+ ld hl, wc04e
add hl, de
ld [hl], a
- ld hl, $c056
+ ld hl, wc056
add hl, de
ld [hl], a
- ld hl, $c05e
+ ld hl, wc05e
add hl, de
ld [hl], a
- ld hl, $c066
+ ld hl, wc066
add hl, de
ld [hl], a
- ld hl, $c06e
+ ld hl, wc06e
add hl, de
ld [hl], a
- ld hl, $c076
+ ld hl, wc076
add hl, de
ld [hl], a
- ld hl, $c07e
+ ld hl, wc07e
add hl, de
ld [hl], a
- ld hl, $c086
+ ld hl, wc086
add hl, de
ld [hl], a
- ld hl, $c08e
+ ld hl, wc08e
add hl, de
ld [hl], a
- ld hl, $c096
+ ld hl, wc096
add hl, de
ld [hl], a
- ld hl, $c09e
+ ld hl, wc09e
add hl, de
ld [hl], a
- ld hl, $c0a6
+ ld hl, wc0a6
add hl, de
ld [hl], a
- ld hl, $c0ae
+ ld hl, wc0ae
add hl, de
ld [hl], a
- ld hl, $c036
+ ld hl, wc036
add hl, de
ld [hl], a
ld a, $1
- ld hl, $c0be
+ ld hl, wc0be
add hl, de
ld [hl], a
- ld hl, $c0b6
+ ld hl, wc0b6
add hl, de
ld [hl], a
- ld hl, $c0c6
+ ld hl, wc0c6
add hl, de
ld [hl], a
ld a, e
@@ -1526,24 +1527,24 @@
ld a, $77
ld [$ff24], a
xor a
- ld [$c000], a
- ld [$c003], a
- ld [$c002], a
- ld [$c0e9], a
- ld [$c0eb], a
- ld [$c0e6], a
- ld [$c0e7], a
+ ld [wc000], a
+ ld [wc003], a
+ ld [wc002], a
+ ld [wc0e9], a
+ ld [wc0eb], a
+ ld [wc0e6], a
+ ld [wc0e7], a
ld d, $a0
- ld hl, $c006
+ ld hl, wc006
call FillMusicRAM1f
ld a, $1
ld d, $18
- ld hl, $c0b6
+ ld hl, wc0b6
call FillMusicRAM1f
- ld [$c0e8], a
- ld [$c0ea], a
+ ld [wc0e8], a
+ ld [wc0ea], a
ld a, $ff
- ld [$c004], a
+ ld [wc004], a
ret
; fills d bytes at hl with a
@@ -1556,7 +1557,7 @@
ret
Func_7db03: ; 7db03 (1f:5b03)
- ld a, [$c001]
+ ld a, [wc001]
ld l, a
ld e, a
ld h, $0
@@ -1567,7 +1568,7 @@
add hl, de
ld e, l
ld d, h
- ld hl, $c006
+ ld hl, wc006
ld a, [de] ; get channel number
ld b, a
rlca
@@ -1593,14 +1594,14 @@
push af
ld b, $0
ld c, a
- ld hl, $c026
+ ld hl, wc026
add hl, bc
- ld a, [$c001]
+ ld a, [wc001]
ld [hl], a
pop af
cp $3
jr c, .asm_7db46
- ld hl, $c02e
+ ld hl, wc02e
add hl, bc
set 2, [hl]
.asm_7db46
@@ -1619,32 +1620,32 @@
ld a, [de]
inc de
jr nz, .asm_7db25
- ld a, [$c001]
+ ld a, [wc001]
cp $14
jr nc, .asm_7db5f
jr .asm_7db89
.asm_7db5f
- ld a, [$c001]
+ ld a, [wc001]
cp $86
jr z, .asm_7db89
jr c, .asm_7db6a
jr .asm_7db89
.asm_7db6a
- ld hl, $c02a
+ ld hl, wc02a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, $c012 ; sfx noise channel pointer
+ ld hl, wc012 ; sfx noise channel pointer
ld de, Noise1f_endchannel
ld [hl], e
inc hl
ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [$c005]
+ ld a, [wc005]
and a
jr nz, .asm_7db89
ld a, [$ff24]
- ld [$c005], a
+ ld [wc005], a
ld a, $77
ld [$ff24], a
.asm_7db89
@@ -1665,18 +1666,18 @@
db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7
-Unknown_7dba3: ; 7dba3 (1f:5ba3)
- dw $F82C
- dw $F89D
- dw $F907
- dw $F96B
- dw $F9CA
- dw $FA23
- dw $FA77
- dw $FAC7
- dw $FB12
- dw $FB58
- dw $FB9B
- dw $FBDA
+Music1f_Pitches: ; 7dba3 (1f:5ba3)
+ dw $F82C ; C_
+ dw $F89D ; C#
+ dw $F907 ; D_
+ dw $F96B ; D#
+ dw $F9CA ; E_
+ dw $FA23 ; F_
+ dw $FA77 ; F#
+ dw $FAC7 ; G_
+ dw $FB12 ; G#
+ dw $FB58 ; A_
+ dw $FB9B ; A#
+ dw $FBDA ; B_
--- a/audio/headers/musicheaders02.asm
+++ b/audio/headers/musicheaders02.asm
@@ -182,5 +182,5 @@
dw Music_IndigoPlateau_Ch3
db CH3
dw Music_IndigoPlateau_Ch4
-
+
; 0x82fd
\ No newline at end of file
--- a/audio/headers/musicheaders08.asm
+++ b/audio/headers/musicheaders08.asm
@@ -53,5 +53,5 @@
dw Music_DefeatedGymLeader_Ch2
db CH2
dw Music_DefeatedGymLeader_Ch3
-
+
; 202fd
\ No newline at end of file
--- a/audio/music/bikeriding.asm
+++ b/audio/music/bikeriding.asm
@@ -1,153 +1,153 @@
Music_BikeRiding_Ch1:: ; 7dbbb (1f:5bbb)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 3
vibrato 8, 1, 4
notetype 12, 11, 5
octave 3
- note G_, 2
+ G_ 2
Music_BikeRiding_branch_7dbc9::
octave 4
- note C_, 4
- note D_, 4
- note E_, 2
- note C_, 2
- note E_, 2
- note G_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note F_, 4
- note E_, 2
- note D_, 2
- note F_, 4
- note D_, 4
+ C_ 4
+ D_ 4
+ E_ 2
+ C_ 2
+ E_ 2
+ G_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ F_ 4
+ E_ 2
+ D_ 2
+ F_ 4
+ D_ 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F_, 4
- note D_, 4
- note E_, 2
- note F_, 2
- note G_, 2
- note C_, 2
- note E_, 2
- note C_, 2
- note D_, 2
- note E_, 2
+ F_ 4
+ D_ 4
+ E_ 2
+ F_ 2
+ G_ 2
+ C_ 2
+ E_ 2
+ C_ 2
+ D_ 2
+ E_ 2
notetype 12, 11, 6
- note F_, 10
+ F_ 10
notetype 12, 10, 6
- note F_, 2
- note E_, 2
- note F_, 2
- note G_, 10
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 6
- togglecall
+ F_ 2
+ E_ 2
+ F_ 2
+ G_ 10
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 6
+ toggleperfectpitch
notetype 12, 11, 3
- note E_, 2
- note D_, 2
- note D_, 1
- note E_, 1
- note F_, 2
- note E_, 1
- note F_, 1
- togglecall
+ E_ 2
+ D_ 2
+ D_ 1
+ E_ 1
+ F_ 2
+ E_ 1
+ F_ 1
+ toggleperfectpitch
notetype 12, 11, 5
- note G_, 6
- note G_, 6
- note A_, 2
- note F_, 2
- note G_, 6
+ G_ 6
+ G_ 6
+ A_ 2
+ F_ 2
+ G_ 6
notetype 12, 11, 4
- note G_, 2
- note F_, 4
+ G_ 2
+ F_ 4
notetype 12, 10, 4
- note E_, 2
- note D_, 2
+ E_ 2
+ D_ 2
notetype 12, 9, 3
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C_, 4
- note C_, 2
+ C_ 4
+ C_ 2
octave 3
- note B_, 2
- note A_, 1
- note B_, 1
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 1
+ B_ 1
+ A_ 2
+ B_ 2
octave 4
- note C_, 2
- note C_, 4
- note C_, 2
+ C_ 2
+ C_ 4
+ C_ 2
octave 3
- note A_, 2
- note B_, 2
- note B_, 2
- note A_, 2
+ A_ 2
+ B_ 2
+ B_ 2
+ A_ 2
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A_, 2
- note B_, 1
+ A_ 2
+ B_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 2
+ B_ 2
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C_, 4
+ C_ 4
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 1
- note D_, 1
+ C_ 1
+ D_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 4
+ C_ 4
notetype 12, 3, 13
- note C_, 4
+ C_ 4
notetype 12, 11, 4
- note F_, 6
- note G_, 4
- note F_, 1
- note G_, 1
- note F_, 4
- note E_, 6
- note F_, 2
- note E_, 2
- note D_, 1
- note E_, 1
- note D_, 2
- note C_, 2
+ F_ 6
+ G_ 4
+ F_ 1
+ G_ 1
+ F_ 4
+ E_ 6
+ F_ 2
+ E_ 2
+ D_ 1
+ E_ 1
+ D_ 2
+ C_ 2
notetype 12, 11, 5
octave 3
- note A_, 4
+ A_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
- note C_, 4
- note F_, 4
- note D_, 4
- note F#, 4
+ E_ 4
+ C_ 4
+ F_ 4
+ D_ 4
+ F# 4
vibrato 10, 2, 6
notetype 12, 8, 0
- note G_, 16
- note G_, 4
+ G_ 16
+ G_ 4
notetype 12, 8, 7
- note G_, 12
+ G_ 12
notetype 12, 11, 5
vibrato 8, 1, 4
loopchannel 0, Music_BikeRiding_branch_7dbc9
@@ -158,146 +158,146 @@
vibrato 6, 1, 5
notetype 12, 12, 3
octave 4
- note C_, 2
+ C_ 2
Music_BikeRiding_branch_7dc75::
- note E_, 4
- note F_, 4
- note G_, 4
+ E_ 4
+ F_ 4
+ G_ 4
octave 5
- note C_, 4
+ C_ 4
octave 4
- note B_, 6
- note A_, 1
- note B_, 1
- note A_, 10
- note F_, 2
- note G_, 2
- note A_, 2
+ B_ 6
+ A_ 1
+ B_ 1
+ A_ 10
+ F_ 2
+ G_ 2
+ A_ 2
octave 5
- note D_, 2
- note C_, 2
+ D_ 2
+ C_ 2
octave 4
- note B_, 2
- note A_, 1
- note B_, 1
+ B_ 2
+ A_ 1
+ B_ 1
octave 5
- note C_, 6
+ C_ 6
octave 4
- note A_, 2
- note G_, 4
+ A_ 2
+ G_ 4
duty 3
notetype 12, 8, 4
- note A#, 6
+ A# 6
duty 2
notetype 12, 12, 5
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note A_, 10
+ A_ 10
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G_, 10
+ G_ 10
notetype 12, 12, 3
octave 5
- note C_, 4
- note E_, 2
- note D_, 2
- note C_, 2
+ C_ 4
+ E_ 2
+ D_ 2
+ C_ 2
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C_, 2
+ C_ 2
notetype 12, 11, 0
- note D_, 4
+ D_ 4
notetype 12, 12, 7
- note D_, 10
- note D_, 1
- note C_, 1
+ D_ 10
+ D_ 1
+ C_ 1
notetype 12, 11, 0
octave 4
- note B_, 4
+ B_ 4
notetype 12, 12, 7
- note B_, 12
+ B_ 12
notetype 12, 12, 4
- note F_, 6
- note F_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note E_, 6
- note E_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note F_, 2
- note G_, 4
- note A_, 2
- note F_, 2
- note E_, 2
- note G_, 4
- note F_, 2
- note E_, 6
+ F_ 6
+ F_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ E_ 6
+ E_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ F_ 2
+ G_ 4
+ A_ 2
+ F_ 2
+ E_ 2
+ G_ 4
+ F_ 2
+ E_ 6
notetype 6, 12, 2
- note F_, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ F_ 1
+ G_ 1
+ A_ 1
+ B_ 1
notetype 12, 12, 3
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 4
- note A_, 4
- note G_, 2
- note A#, 4
- note A_, 2
- note G_, 4
- note F_, 2
- note E_, 2
+ B_ 4
+ A_ 4
+ G_ 2
+ A# 4
+ A_ 2
+ G_ 4
+ F_ 2
+ E_ 2
notetype 8, 12, 4
- note A_, 4
- note G_, 4
- note F_, 4
- note B_, 4
- note A_, 4
- note G_, 4
+ A_ 4
+ G_ 4
+ F_ 4
+ B_ 4
+ A_ 4
+ G_ 4
octave 5
- note C_, 4
+ C_ 4
octave 4
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
octave 5
- note D_, 4
- note E_, 4
- note C_, 4
+ D_ 4
+ E_ 4
+ C_ 4
notetype 12, 12, 7
- note D_, 12
- note C_, 4
+ D_ 12
+ C_ 4
notetype 12, 11, 0
octave 4
- note B_, 4
+ B_ 4
notetype 12, 12, 7
- note B_, 12
+ B_ 12
notetype 12, 12, 3
loopchannel 0, Music_BikeRiding_branch_7dc75
@@ -308,337 +308,337 @@
Music_BikeRiding_branch_7dd17::
octave 4
- note C_, 1
+ C_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 3
- note G_, 1
+ G_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
loopchannel 0, Music_BikeRiding_branch_7dd17
@@ -671,35 +671,35 @@
Music_BikeRiding_branch_7dea7::
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
+ triangle3 2
endchannel
Music_BikeRiding_branch_7deb4::
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
- dnote 2, triangle3
- dnote 2, triangle3
+ triangle3 2
+ triangle3 2
+ triangle3 2
endchannel
Music_BikeRiding_branch_7dec2::
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 2, triangle3
+ triangle3 2
rest 2
- dnote 1, triangle3
- dnote 1, triangle3
+ triangle3 1
+ triangle3 1
endchannel
-; 0x7ded1
\ No newline at end of file
+; 0x7ded1
--- a/audio/music/celadon.asm
+++ b/audio/music/celadon.asm
@@ -1,109 +1,109 @@
Music_Celadon_Ch1:: ; b6c7 (2:76c7)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
notetype 12, 2, 15
rest 8
octave 3
- note D_, 8
+ D_ 8
Music_Celadon_branch_b6d4::
duty 2
notetype 12, 11, 2
- note G_, 4
- note B_, 4
- note G_, 2
- note B_, 4
- note G_, 2
- note E_, 1
- note E_, 1
- note G_, 1
- note E_, 1
- note B_, 2
+ G_ 4
+ B_ 4
+ G_ 2
+ B_ 4
+ G_ 2
+ E_ 1
+ E_ 1
+ G_ 1
+ E_ 1
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A_, 8
- note F#, 4
- note A_, 4
- note F#, 2
- note A_, 6
- note A_, 1
- note B_, 1
+ A_ 8
+ F# 4
+ A_ 4
+ F# 2
+ A_ 6
+ A_ 1
+ B_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
- note A_, 2
- note B_, 2
- note G_, 4
+ B_ 1
+ A_ 2
+ B_ 2
+ G_ 4
octave 4
- note G_, 4
+ G_ 4
octave 3
- note G_, 4
- note B_, 4
- note G_, 2
- note B_, 4
- note G_, 2
- note E_, 1
- note F#, 1
- note G_, 1
- note A_, 1
- note B_, 2
+ G_ 4
+ B_ 4
+ G_ 2
+ B_ 4
+ G_ 2
+ E_ 1
+ F# 1
+ G_ 1
+ A_ 1
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A_, 8
- note A_, 2
- note B_, 2
+ A_ 8
+ A_ 2
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note G_, 2
- note F#, 4
- note D_, 1
- note E_, 1
- note F#, 1
- note G_, 1
- note A_, 8
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ G_ 2
+ F# 4
+ D_ 1
+ E_ 1
+ F# 1
+ G_ 1
+ A_ 8
notetype 12, 9, 4
- note B_, 8
- note G_, 4
- note D_, 4
- note G_, 4
- note A_, 2
+ B_ 8
+ G_ 4
+ D_ 4
+ G_ 4
+ A_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note B_, 8
- note A_, 8
- note F#, 4
- note G_, 4
- note A_, 4
- note G_, 4
- note F#, 4
- note A_, 4
- note B_, 8
- note G_, 4
- note D_, 4
- note G_, 4
- note A_, 2
+ B_ 8
+ A_ 8
+ F# 4
+ G_ 4
+ A_ 4
+ G_ 4
+ F# 4
+ A_ 4
+ B_ 8
+ G_ 4
+ D_ 4
+ G_ 4
+ A_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note B_, 8
- note A_, 8
- note F#, 4
- note G_, 4
- note A_, 4
- note G_, 4
- note F#, 4
- note A_, 4
+ B_ 8
+ A_ 8
+ F# 4
+ G_ 4
+ A_ 4
+ G_ 4
+ F# 4
+ A_ 4
loopchannel 0, Music_Celadon_branch_b6d4
@@ -111,118 +111,118 @@
duty 3
notetype 12, 12, 2
octave 4
- note D_, 1
- note C#, 1
- note D_, 1
- note E_, 1
- note F#, 1
- note E_, 1
- note F#, 1
- note G_, 1
+ D_ 1
+ C# 1
+ D_ 1
+ E_ 1
+ F# 1
+ E_ 1
+ F# 1
+ G_ 1
notetype 12, 10, 0
- note A_, 8
+ A_ 8
Music_Celadon_branch_b74a::
duty 2
notetype 12, 12, 2
octave 4
- note B_, 4
- note G_, 4
- note B_, 2
- note G_, 6
- note B_, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ B_ 4
+ G_ 4
+ B_ 2
+ G_ 6
+ B_ 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 2
- note A_, 8
- note A_, 4
- note F#, 4
- note A_, 2
- note F#, 6
- note A_, 1
- note G_, 1
- note F#, 1
- note G_, 1
- note A_, 2
- note B_, 2
- note G_, 4
- note B_, 4
- note B_, 4
- note G_, 4
- note B_, 2
- note G_, 4
+ B_ 2
+ A_ 8
+ A_ 4
+ F# 4
+ A_ 2
+ F# 6
+ A_ 1
+ G_ 1
+ F# 1
+ G_ 1
+ A_ 2
+ B_ 2
+ G_ 4
+ B_ 4
+ B_ 4
+ G_ 4
+ B_ 2
+ G_ 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note B_, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 2
- note A_, 8
- note A_, 2
- note G_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note C#, 2
- note D_, 8
+ B_ 2
+ A_ 8
+ A_ 2
+ G_ 2
+ F# 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ C# 2
+ D_ 8
octave 5
- note D_, 8
+ D_ 8
notetype 12, 11, 4
octave 4
- note D_, 8
- note C_, 2
+ D_ 8
+ C_ 2
octave 3
- note B_, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ B_ 2
octave 4
- note E_, 4
- note F#, 4
- note D_, 8
- note C_, 8
+ E_ 4
+ F# 4
+ D_ 8
+ C_ 8
octave 3
- note A_, 2
- note B_, 2
+ A_ 2
+ B_ 2
octave 4
- note C_, 2
- note D_, 2
- note E_, 2
- note C_, 2
- note D_, 2
- note E_, 2
- note D_, 8
- note D_, 8
- note C_, 2
+ C_ 2
+ D_ 2
+ E_ 2
+ C_ 2
+ D_ 2
+ E_ 2
+ D_ 8
+ D_ 8
+ C_ 2
octave 3
- note B_, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ B_ 2
octave 4
- note E_, 4
- note D_, 2
- note E_, 2
- note D_, 8
- note C_, 8
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note D_, 8
+ E_ 4
+ D_ 2
+ E_ 2
+ D_ 8
+ C_ 8
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ E_ 2
+ D_ 8
loopchannel 0, Music_Celadon_branch_b74a
@@ -230,183 +230,183 @@
notetype 12, 1, 3
rest 8
octave 5
- note D_, 1
- note C#, 1
- note D_, 1
- note E_, 1
- note F#, 1
- note E_, 1
- note F#, 1
- note G_, 1
+ D_ 1
+ C# 1
+ D_ 1
+ E_ 1
+ F# 1
+ E_ 1
+ F# 1
+ G_ 1
Music_Celadon_branch_b7c1::
octave 4
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note B_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note G_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note C#, 2
- note D_, 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ B_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ G_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ C# 2
+ D_ 2
rest 6
- note F#, 2
+ F# 2
rest 4
- note F#, 2
- note G_, 2
+ F# 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
- note B_, 2
- note G_, 2
+ G_ 2
+ B_ 2
+ G_ 2
octave 5
- note E_, 2
- note D_, 2
- note C_, 2
- note D_, 2
+ E_ 2
+ D_ 2
+ C_ 2
+ D_ 2
octave 4
- note B_, 2
- note G_, 2
+ B_ 2
+ G_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note E_, 2
- note D_, 2
- note C_, 2
- note D_, 2
+ E_ 2
+ D_ 2
+ C_ 2
+ D_ 2
octave 4
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
- note B_, 2
- note G_, 2
+ G_ 2
+ B_ 2
+ G_ 2
octave 5
- note E_, 2
- note D_, 2
- note C_, 2
- note D_, 2
+ E_ 2
+ D_ 2
+ C_ 2
+ D_ 2
octave 4
- note B_, 2
- note G_, 2
+ B_ 2
+ G_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
- note C_, 2
+ D_ 2
+ C_ 2
octave 4
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
loopchannel 0, Music_Celadon_branch_b7c1
-; 0xb86d
\ No newline at end of file
+; 0xb86d
--- a/audio/music/cinnabar.asm
+++ b/audio/music/cinnabar.asm
@@ -1,87 +1,87 @@
Music_Cinnabar_Ch1:: ; b86d (2:786d)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 3
vibrato 12, 3, 4
- togglecall
+ toggleperfectpitch
Music_Cinnabar_branch_b878::
notetype 12, 11, 5
rest 4
octave 3
- note D_, 4
- note E_, 6
- note C#, 2
+ D_ 4
+ E_ 6
+ C# 2
notetype 12, 11, 1
- note D_, 4
+ D_ 4
notetype 12, 11, 5
- note B_, 4
+ B_ 4
octave 4
- note C_, 6
+ C_ 6
octave 3
- note A_, 2
+ A_ 2
notetype 12, 11, 1
- note B_, 4
+ B_ 4
notetype 12, 11, 5
- note G_, 4
- note F#, 4
- note E_, 2
- note F#, 2
+ G_ 4
+ F# 4
+ E_ 2
+ F# 2
notetype 12, 11, 1
- note G_, 4
+ G_ 4
notetype 12, 11, 5
- note G_, 4
- note F#, 4
- note E_, 4
- note D_, 4
- note E_, 4
- note F#, 6
- note A_, 2
+ G_ 4
+ F# 4
+ E_ 4
+ D_ 4
+ E_ 4
+ F# 6
+ A_ 2
notetype 12, 11, 1
- note G_, 4
+ G_ 4
notetype 12, 11, 5
- note B_, 4
+ B_ 4
octave 4
- note C_, 6
+ C_ 6
octave 3
- note A_, 2
- note B_, 4
- note G_, 4
- note F#, 3
- note E_, 1
- note F#, 2
- note A_, 2
+ A_ 2
+ B_ 4
+ G_ 4
+ F# 3
+ E_ 1
+ F# 2
+ A_ 2
notetype 12, 10, 2
- note G_, 4
+ G_ 4
octave 4
- note D_, 1
- note E_, 1
- note D_, 4
+ D_ 1
+ E_ 1
+ D_ 4
notetype 12, 7, 2
- note D_, 1
- note E_, 1
- note D_, 4
+ D_ 1
+ E_ 1
+ D_ 4
notetype 12, 10, 7
octave 3
- note B_, 6
- note G_, 2
- note E_, 8
+ B_ 6
+ G_ 2
+ E_ 8
octave 4
- note C_, 6
+ C_ 6
octave 3
- note A_, 2
- note F#, 8
+ A_ 2
+ F# 8
octave 4
- note F#, 6
- note D_, 2
+ F# 6
+ D_ 2
octave 3
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note G_, 8
- note F#, 4
- note E_, 4
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ G_ 8
+ F# 4
+ E_ 4
loopchannel 0, Music_Cinnabar_branch_b878
@@ -92,90 +92,90 @@
Music_Cinnabar_branch_b8d9::
notetype 12, 12, 7
octave 3
- note G_, 6
- note A_, 1
- note B_, 1
+ G_ 6
+ A_ 1
+ B_ 1
octave 4
- note C_, 6
- note D_, 1
- note E_, 1
+ C_ 6
+ D_ 1
+ E_ 1
notetype 12, 12, 1
- note D_, 4
+ D_ 4
notetype 12, 12, 7
- note G_, 4
- note A_, 6
- note G_, 1
- note F#, 1
- note E_, 4
- note D_, 4
- note C_, 3
+ G_ 4
+ A_ 6
+ G_ 1
+ F# 1
+ E_ 4
+ D_ 4
+ C_ 3
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 2
- note D_, 1
- note E_, 1
+ C_ 2
+ D_ 1
+ E_ 1
notetype 12, 12, 1
- note D_, 4
+ D_ 4
notetype 12, 12, 7
octave 3
- note B_, 8
- note A_, 4
- note G_, 6
- note A_, 1
- note B_, 1
+ B_ 8
+ A_ 4
+ G_ 6
+ A_ 1
+ B_ 1
octave 4
- note C_, 6
- note D_, 1
- note E_, 1
+ C_ 6
+ D_ 1
+ E_ 1
notetype 12, 12, 1
- note D_, 4
+ D_ 4
notetype 12, 12, 7
- note G_, 4
- note A_, 6
- note G_, 1
- note F#, 1
- note E_, 4
- note D_, 4
- note C_, 3
+ G_ 4
+ A_ 6
+ G_ 1
+ F# 1
+ E_ 4
+ D_ 4
+ C_ 3
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 2
- note D_, 1
- note E_, 1
+ C_ 2
+ D_ 1
+ E_ 1
notetype 12, 12, 1
- note D_, 4
+ D_ 4
notetype 12, 12, 7
octave 3
- note A_, 4
- note G_, 4
- note F#, 4
+ A_ 4
+ G_ 4
+ F# 4
notetype 12, 11, 0
octave 4
- note D_, 6
+ D_ 6
octave 3
- note B_, 2
- note G_, 8
+ B_ 2
+ G_ 8
octave 4
- note E_, 6
- note C_, 2
+ E_ 6
+ C_ 2
octave 3
- note A_, 8
+ A_ 8
octave 4
- note A_, 6
- note F#, 2
- note D_, 2
- note C_, 2
+ A_ 6
+ F# 2
+ D_ 2
+ C_ 2
octave 3
- note B_, 2
- note A_, 2
- note B_, 4
+ B_ 2
+ A_ 2
+ B_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 2
- note A_, 6
+ B_ 2
+ A_ 6
loopchannel 0, Music_Cinnabar_branch_b8d9
@@ -184,172 +184,172 @@
Music_Cinnabar_branch_b93f::
octave 4
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 2
- note G_, 1
- note G_, 1
- note A_, 1
+ B_ 2
+ G_ 1
+ G_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note B_, 4
- note A_, 1
+ B_ 4
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C_, 4
+ C_ 4
octave 4
- note B_, 1
+ B_ 1
rest 3
octave 5
- note D_, 2
+ D_ 2
octave 4
- note B_, 1
- note B_, 1
- note B_, 1
+ B_ 1
+ B_ 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 1
+ B_ 1
rest 1
- note G_, 1
+ G_ 1
rest 3
octave 5
- note E_, 2
- note C_, 1
- note C_, 1
- note C_, 1
+ E_ 2
+ C_ 1
+ C_ 1
+ C_ 1
rest 1
- note C_, 1
+ C_ 1
rest 1
- note E_, 2
- note C_, 1
+ E_ 2
+ C_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 3
octave 5
- note A_, 2
- note F#, 1
- note F#, 1
- note D_, 1
+ A_ 2
+ F# 1
+ F# 1
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note D_, 2
- note C_, 1
+ D_ 2
+ C_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 3
octave 5
- note D_, 2
- note C_, 1
- note C_, 1
+ D_ 2
+ C_ 1
+ C_ 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note A_, 2
+ A_ 2
octave 5
- note C_, 1
+ C_ 1
rest 1
loopchannel 0, Music_Cinnabar_branch_b93f
-; 0xb9eb
\ No newline at end of file
+; 0xb9eb
--- a/audio/music/cinnabarmansion.asm
+++ b/audio/music/cinnabarmansion.asm
@@ -1,6 +1,6 @@
Music_CinnabarMansion_Ch1:: ; 7ed0f (1f:6d0f)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
vibrato 11, 2, 5
duty 2
@@ -7,23 +7,23 @@
Music_CinnabarMansion_branch_7ed19::
notetype 12, 6, 2
octave 5
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
octave 4
- note B_, 1
- note B_, 1
- note C_, 1
+ B_ 1
+ B_ 1
+ C_ 1
rest 2
octave 5
- note B_, 2
- note E_, 2
+ B_ 2
+ E_ 2
octave 4
- note C_, 2
- note B_, 2
- note E_, 2
- note C_, 1
+ C_ 2
+ B_ 2
+ E_ 2
+ C_ 1
octave 5
- note B_, 1
+ B_ 1
rest 2
loopchannel 14, Music_CinnabarMansion_branch_7ed19
notetype 12, 10, 5
@@ -31,16 +31,16 @@
rest 16
rest 15
octave 4
- note C_, 1
+ C_ 1
octave 5
- note B_, 1
- note B_, 2
+ B_ 1
+ B_ 2
loopchannel 0, Music_CinnabarMansion_branch_7ed19
Music_CinnabarMansion_Ch2:: ; 7ed40 (1f:6d40)
duty 2
- togglecall
+ toggleperfectpitch
vibrato 10, 2, 4
notetype 12, 12, 2
@@ -56,42 +56,42 @@
callchannel Music_CinnabarMansion_branch_7ed6c
loopchannel 3, Music_CinnabarMansion_branch_7ed50
octave 3
- note E_, 4
- note D#, 4
- note B_, 4
- note A#, 4
- note G_, 4
- note G#, 4
+ E_ 4
+ D# 4
+ B_ 4
+ A# 4
+ G_ 4
+ G# 4
rest 4
- note A#, 4
- note E_, 4
- note D#, 4
- note B_, 4
- note A#, 4
- note G_, 4
- note G#, 4
- note G_, 4
- note D#, 4
+ A# 4
+ E_ 4
+ D# 4
+ B_ 4
+ A# 4
+ G_ 4
+ G# 4
+ G_ 4
+ D# 4
loopchannel 0, Music_CinnabarMansion_branch_7ed4e
Music_CinnabarMansion_branch_7ed6c::
octave 3
- note E_, 4
- note D#, 4
- note B_, 4
- note A#, 4
- note G_, 4
- note G#, 4
- note A_, 4
- note A#, 4
- note E_, 4
- note D#, 4
- note B_, 4
- note A#, 4
- note G_, 4
- note G#, 4
+ E_ 4
+ D# 4
+ B_ 4
+ A# 4
+ G_ 4
+ G# 4
+ A_ 4
+ A# 4
+ E_ 4
+ D# 4
+ B_ 4
+ A# 4
+ G_ 4
+ G# 4
rest 4
- note A#, 4
+ A# 4
endchannel
@@ -100,46 +100,46 @@
Music_CinnabarMansion_branch_7ed80::
octave 2
- note B_, 2
+ B_ 2
rest 2
octave 3
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note C_, 2
+ C_ 2
rest 2
octave 3
- note D#, 2
+ D# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note D#, 2
+ D# 2
rest 2
loopchannel 8, Music_CinnabarMansion_branch_7ed80
- note E_, 16
- note D#, 16
- note G_, 16
- note G#, 8
- note D#, 8
+ E_ 16
+ D# 16
+ G_ 16
+ G# 8
+ D# 8
loopchannel 0, Music_CinnabarMansion_branch_7ed80
@@ -151,23 +151,23 @@
rest 16
Music_CinnabarMansion_branch_7edb5::
- dnote 2, cymbal1
- dnote 2, cymbal1
- dnote 4, cymbal2
- dnote 2, cymbal1
- dnote 2, cymbal1
- dnote 4, cymbal2
- dnote 2, cymbal1
- dnote 2, cymbal1
- dnote 4, cymbal2
- dnote 2, cymbal1
- dnote 2, cymbal1
- dnote 4, cymbal3
- dnote 2, cymbal1
- dnote 2, cymbal1
+ cymbal1 2
+ cymbal1 2
+ cymbal2 4
+ cymbal1 2
+ cymbal1 2
+ cymbal2 4
+ cymbal1 2
+ cymbal1 2
+ cymbal2 4
+ cymbal1 2
+ cymbal1 2
+ cymbal3 4
+ cymbal1 2
+ cymbal1 2
rest 2
rest 10
rest 8
- dnote 8, cymbal3
+ cymbal3 8
loopchannel 0, Music_CinnabarMansion_branch_7edb5
-; 0x7edda
\ No newline at end of file
+; 0x7edda
--- a/audio/music/cities1.asm
+++ b/audio/music/cities1.asm
@@ -1,12 +1,12 @@
Music_Cities1_branch_aa6f::
- tempo 0, 232
+ tempo 232
loopchannel 0, Music_Cities1_branch_aa79
Music_Cities1_Ch1:: ; aa76 (2:6a76)
- tempo 0, 144
+ tempo 144
Music_Cities1_branch_aa79::
- stereopanning 119
+ volume 7, 7
vibrato 8, 2, 4
duty 3
@@ -13,258 +13,258 @@
Music_Cities1_branch_aa80::
notetype 12, 12, 5
octave 3
- note G#, 4
- note F#, 4
- note E_, 2
- note E_, 2
- note F#, 2
- note D#, 2
- note E_, 2
- note E_, 2
- note D#, 2
- note C#, 4
- note D#, 4
- note E_, 2
- note D#, 4
- note C#, 2
- note E_, 2
- note E_, 4
+ G# 4
+ F# 4
+ E_ 2
+ E_ 2
+ F# 2
+ D# 2
+ E_ 2
+ E_ 2
+ D# 2
+ C# 4
+ D# 4
+ E_ 2
+ D# 4
+ C# 2
+ E_ 2
+ E_ 4
notetype 12, 10, 5
- note C#, 4
+ C# 4
octave 2
- note B_, 6
+ B_ 6
octave 3
- note C#, 2
- note C#, 4
+ C# 2
+ C# 4
octave 2
- note B_, 4
+ B_ 4
notetype 12, 12, 5
callchannel Music_Cities1_branch_ab7d
octave 3
- note D#, 6
- note E_, 2
+ D# 6
+ E_ 2
octave 2
- note B_, 4
+ B_ 4
notetype 12, 10, 5
octave 3
- note C#, 2
+ C# 2
octave 2
- note B_, 2
- note A_, 4
- note B_, 4
- note B_, 2
+ B_ 2
+ A_ 4
+ B_ 4
+ B_ 2
octave 3
- note C#, 2
- note D#, 2
- note E_, 2
- note D#, 2
- note C#, 2
- note D#, 2
+ C# 2
+ D# 2
+ E_ 2
+ D# 2
+ C# 2
+ D# 2
notetype 12, 12, 5
- note G#, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note E_, 4
- note F#, 2
- note D#, 2
- note E_, 4
- note D#, 2
- note C#, 4
- note D#, 4
- note E_, 2
- note D#, 2
- note C#, 2
- note C#, 2
- note E_, 2
- note E_, 4
+ G# 2
+ E_ 2
+ F# 2
+ E_ 2
+ E_ 4
+ F# 2
+ D# 2
+ E_ 4
+ D# 2
+ C# 4
+ D# 4
+ E_ 2
+ D# 2
+ C# 2
+ C# 2
+ E_ 2
+ E_ 4
notetype 12, 10, 5
- note C#, 2
+ C# 2
octave 2
- note A_, 2
- note B_, 6
+ A_ 2
+ B_ 6
octave 3
- note C#, 2
- note C#, 2
+ C# 2
+ C# 2
octave 2
- note B_, 2
- note B_, 4
+ B_ 2
+ B_ 4
notetype 12, 12, 5
callchannel Music_Cities1_branch_ab7d
octave 3
- note D#, 4
- note D#, 2
- note E_, 2
+ D# 4
+ D# 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note G#, 2
- note E_, 4
+ C# 2
+ G# 2
+ E_ 4
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
notetype 12, 10, 5
- note C#, 4
+ C# 4
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 4
- note C#, 2
- note E_, 4
+ D# 4
+ C# 2
+ E_ 4
notetype 12, 11, 3
callchannel Music_Cities1_branch_ab8a
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 4
- note F#, 4
- note G#, 2
- note E_, 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 4
+ F# 4
+ G# 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 4
- note G#, 2
+ E_ 4
+ G# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 2
+ E_ 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
+ D# 2
+ C# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
Music_Cities1_branch_ab12::
- note C#, 2
- note D#, 2
- note C#, 2
+ C# 2
+ D# 2
+ C# 2
octave 2
- note B_, 4
- note B_, 2
+ B_ 4
+ B_ 2
octave 3
- note C#, 2
- note D#, 2
+ C# 2
+ D# 2
loopchannel 2, Music_Cities1_branch_ab12
- note E_, 2
+ E_ 2
octave 2
- note B_, 4
+ B_ 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note G#, 2
- note G#, 2
+ C# 2
+ G# 2
+ G# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
callchannel Music_Cities1_branch_ab8a
- note A_, 2
- note E_, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note F#, 2
- note G#, 2
- note E_, 2
+ A_ 2
+ E_ 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ F# 2
+ G# 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note D#, 2
- note B_, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note F#, 2
- note E_, 4
- note G#, 2
- note F#, 2
- note D#, 2
+ E_ 2
+ C# 2
+ G# 2
+ C# 2
+ D# 2
+ B_ 2
+ E_ 2
+ G# 2
+ E_ 2
+ F# 2
+ E_ 4
+ G# 2
+ F# 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 4
- note F#, 2
- note D#, 2
- note D#, 2
- note F#, 2
+ D# 4
+ F# 2
+ D# 2
+ D# 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
+ D# 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D#, 2
+ D# 2
notetype 12, 11, 6
- note F#, 8
- note F#, 4
- note D#, 4
- note E_, 8
+ F# 8
+ F# 4
+ D# 4
+ E_ 8
notetype 12, 8, 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note E_, 2
- note F#, 2
+ E_ 2
+ F# 2
loopchannel 0, Music_Cities1_branch_aa80
Music_Cities1_branch_ab7d::
octave 3
- note F#, 2
- note D#, 4
- note E_, 2
- note D#, 4
- note C#, 4
+ F# 2
+ D# 4
+ E_ 2
+ D# 4
+ C# 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note C#, 2
- note D#, 2
- note C#, 2
+ C# 2
+ D# 2
+ C# 2
endchannel
Music_Cities1_branch_ab8a::
- note A_, 2
- note E_, 2
- note C#, 2
- note E_, 4
- note A_, 2
- note C#, 2
- note E_, 2
+ A_ 2
+ E_ 2
+ C# 2
+ E_ 4
+ A_ 2
+ C# 2
+ E_ 2
endchannel
@@ -272,91 +272,91 @@
vibrato 5, 1, 5
callchannel Music_Cities1_branch_ac00
octave 4
- note G#, 2
+ G# 2
notetype 12, 12, 4
- note E_, 6
+ E_ 6
notetype 12, 12, 5
duty 3
octave 3
- note C#, 4
- note D#, 4
- note E_, 6
- note F#, 6
- note G#, 4
+ C# 4
+ D# 4
+ E_ 6
+ F# 6
+ G# 4
callchannel Music_Cities1_branch_ac00
octave 4
- note G#, 2
+ G# 2
notetype 12, 12, 4
- note E_, 14
+ E_ 14
duty 3
octave 3
- note E_, 6
- note F#, 6
- note G#, 4
+ E_ 6
+ F# 6
+ G# 4
notetype 12, 11, 7
duty 2
vibrato 8, 1, 7
octave 5
- note C#, 12
+ C# 12
octave 4
- note A_, 4
+ A_ 4
octave 5
- note E_, 8
- note F#, 2
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 8
+ F# 2
+ E_ 2
+ D# 2
+ C# 2
octave 4
- note B_, 12
- note G#, 4
- note B_, 16
- note F#, 12
- note G#, 2
- note A_, 2
- note B_, 4
- note A_, 4
- note G#, 4
- note F#, 4
- note G#, 12
- note E_, 4
- note B_, 16
+ B_ 12
+ G# 4
+ B_ 16
+ F# 12
+ G# 2
+ A_ 2
+ B_ 4
+ A_ 4
+ G# 4
+ F# 4
+ G# 12
+ E_ 4
+ B_ 16
octave 5
- note C#, 12
- note D#, 2
- note E_, 2
- note F#, 4
- note E_, 4
- note D#, 4
- note C#, 4
+ C# 12
+ D# 2
+ E_ 2
+ F# 4
+ E_ 4
+ D# 4
+ C# 4
octave 4
- note B_, 12
+ B_ 12
octave 5
- note C#, 2
- note D#, 2
- note C#, 4
+ C# 2
+ D# 2
+ C# 4
octave 4
- note B_, 4
- note A_, 4
- note G#, 4
- note A_, 12
- note B_, 2
+ B_ 4
+ A_ 4
+ G# 4
+ A_ 12
+ B_ 2
octave 5
- note C_, 2
- note C_, 4
+ C_ 2
+ C_ 4
octave 4
- note B_, 4
- note A_, 4
- note F#, 4
+ B_ 4
+ A_ 4
+ F# 4
notetype 12, 11, 7
- note A_, 8
+ A_ 8
octave 5
- note C_, 8
+ C_ 8
octave 4
- note B_, 14
+ B_ 14
notetype 12, 8, 4
- note G#, 1
+ G# 1
notetype 12, 10, 4
- note A_, 1
+ A_ 1
loopchannel 0, Music_Cities1_Ch2
Music_Cities1_branch_ac00::
@@ -363,47 +363,47 @@
duty 2
notetype 12, 12, 3
octave 4
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
notetype 12, 12, 4
- note G#, 10
+ G# 10
notetype 12, 12, 3
- note G#, 2
- note A_, 2
- note B_, 4
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
+ G# 2
+ A_ 2
+ B_ 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
notetype 12, 12, 4
- note F#, 10
+ F# 10
notetype 12, 12, 5
duty 3
octave 3
- note E_, 4
- note D#, 8
- note E_, 4
- note F#, 4
+ E_ 4
+ D# 8
+ E_ 4
+ F# 4
notetype 12, 12, 3
duty 2
octave 4
- note A_, 4
- note G#, 4
+ A_ 4
+ G# 4
notetype 12, 12, 4
- note F#, 10
+ F# 10
notetype 12, 12, 3
- note F#, 2
- note G#, 2
- note A_, 4
- note A_, 2
- note G#, 2
- note F#, 2
+ F# 2
+ G# 2
+ A_ 4
+ A_ 2
+ G# 2
+ F# 2
endchannel
Music_Cities1_Ch3:: ; ac32 (2:6c32)
notetype 12, 1, 1
- togglecall
+ toggleperfectpitch
Music_Cities1_branch_ac35::
vibrato 0, 0, 0
@@ -411,171 +411,171 @@
callchannel Music_Cities1_branch_acc5
callchannel Music_Cities1_branch_acc5
callchannel Music_Cities1_branch_acce
- note G#, 2
- note E_, 2
- note F#, 2
- note G#, 2
+ G# 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
callchannel Music_Cities1_branch_acc5
- note B_, 2
- note E_, 2
- note F#, 2
- note G#, 2
+ B_ 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
callchannel Music_Cities1_branch_acc5
callchannel Music_Cities1_branch_acce
- note G#, 2
- note E_, 2
- note F#, 2
- note G#, 2
+ G# 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
- note G#, 2
- note E_, 2
- note B_, 2
+ G# 2
+ E_ 2
+ B_ 2
rest 2
- note E_, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note B_, 2
- note E_, 2
+ E_ 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ B_ 2
+ E_ 2
vibrato 8, 2, 5
- note A_, 8
- note E_, 8
- note A_, 8
- note F#, 8
- note G#, 8
- note E_, 8
- note G#, 12
- note E_, 4
- note F#, 2
- note F#, 2
- note D#, 2
- note E_, 4
- note F#, 2
- note D#, 2
- note E_, 2
- note F#, 2
- note F#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note G#, 2
- note E_, 2
- note G#, 2
+ A_ 8
+ E_ 8
+ A_ 8
+ F# 8
+ G# 8
+ E_ 8
+ G# 12
+ E_ 4
+ F# 2
+ F# 2
+ D# 2
+ E_ 4
+ F# 2
+ D# 2
+ E_ 2
+ F# 2
+ F# 2
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ G# 2
+ E_ 2
+ G# 2
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note A_, 8
- note E_, 8
- note A_, 8
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 8
- note E_, 8
- note B_, 4
- note E_, 4
- note F#, 4
- note G#, 4
+ E_ 2
+ F# 2
+ G# 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ A_ 8
+ E_ 8
+ A_ 8
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 8
+ E_ 8
+ B_ 4
+ E_ 4
+ F# 4
+ G# 4
rest 2
- note D#, 2
- note E_, 2
- note F#, 2
+ D# 2
+ E_ 2
+ F# 2
rest 2
- note F#, 2
- note B_, 2
- note A_, 2
- note A_, 4
- note G#, 4
- note F#, 2
- note D#, 2
- note A_, 2
- note F#, 2
+ F# 2
+ B_ 2
+ A_ 2
+ A_ 4
+ G# 4
+ F# 2
+ D# 2
+ A_ 2
+ F# 2
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
- note E_, 2
- note F#, 1
- note G#, 1
- note E_, 1
- note F#, 1
- note G#, 4
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
+ E_ 2
+ F# 1
+ G# 1
+ E_ 1
+ F# 1
+ G# 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ G# 2
+ F# 2
loopchannel 0, Music_Cities1_branch_ac35
Music_Cities1_branch_acc5::
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
endchannel
Music_Cities1_branch_acce::
- note A_, 2
- note F#, 2
- note G#, 2
- note A_, 2
+ A_ 2
+ F# 2
+ G# 2
+ A_ 2
rest 2
- note A_, 2
- note G#, 2
- note F#, 2
+ A_ 2
+ G# 2
+ F# 2
rest 2
- note F#, 2
- note G#, 2
- note A_, 2
+ F# 2
+ G# 2
+ A_ 2
rest 2
- note A_, 2
- note G#, 2
- note F#, 2
- note D#, 2
- note D#, 2
- note E_, 2
- note F#, 2
+ A_ 2
+ G# 2
+ F# 2
+ D# 2
+ D# 2
+ E_ 2
+ F# 2
rest 2
- note D#, 2
- note E_, 2
- note F#, 2
+ D# 2
+ E_ 2
+ F# 2
rest 2
- note D#, 2
- note E_, 2
- note F#, 2
+ D# 2
+ E_ 2
+ F# 2
rest 2
- note D#, 2
- note E_, 2
- note F#, 2
+ D# 2
+ E_ 2
+ F# 2
endchannel
@@ -591,68 +591,68 @@
callchannel Music_Cities1_branch_ad36
callchannel Music_Cities1_branch_ad5f
callchannel Music_Cities1_branch_ad52
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 4, triangle2
+ triangle1 6
+ triangle1 6
+ triangle2 4
callchannel Music_Cities1_branch_ad6e
callchannel Music_Cities1_branch_ad5f
callchannel Music_Cities1_branch_ad52
callchannel Music_Cities1_branch_ad6e
callchannel Music_Cities1_branch_ad52
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 2, triangle2
- dnote 2, triangle1
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 4, triangle1
- dnote 6, triangle1
- dnote 6, snare6
- dnote 4, snare6
+ triangle1 6
+ triangle1 6
+ triangle2 2
+ triangle1 2
+ triangle1 6
+ triangle1 6
+ triangle1 4
+ triangle1 6
+ snare6 6
+ snare6 4
loopchannel 0, Music_Cities1_Ch4
Music_Cities1_branch_ad36::
- dnote 6, snare6
- dnote 6, snare6
- dnote 4, snare6
- dnote 6, snare6
- dnote 6, snare6
- dnote 2, snare6
- dnote 2, snare6
+ snare6 6
+ snare6 6
+ snare6 4
+ snare6 6
+ snare6 6
+ snare6 2
+ snare6 2
endchannel
Music_Cities1_branch_ad45::
- dnote 6, snare6
- dnote 6, snare6
- dnote 4, snare6
- dnote 6, snare6
- dnote 6, snare6
- dnote 4, snare6
+ snare6 6
+ snare6 6
+ snare6 4
+ snare6 6
+ snare6 6
+ snare6 4
endchannel
Music_Cities1_branch_ad52::
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 4, triangle2
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 4, triangle2
+ triangle1 6
+ triangle1 6
+ triangle2 4
+ triangle1 6
+ triangle1 6
+ triangle2 4
endchannel
Music_Cities1_branch_ad5f::
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 4, triangle2
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 2, triangle2
- dnote 2, triangle1
+ triangle1 6
+ triangle1 6
+ triangle2 4
+ triangle1 6
+ triangle1 6
+ triangle2 2
+ triangle1 2
endchannel
Music_Cities1_branch_ad6e::
- dnote 6, triangle1
- dnote 6, triangle1
- dnote 2, triangle2
- dnote 2, triangle2
+ triangle1 6
+ triangle1 6
+ triangle2 2
+ triangle2 2
endchannel
-; 0xad77
\ No newline at end of file
+; 0xad77
--- a/audio/music/cities2.asm
+++ b/audio/music/cities2.asm
@@ -1,95 +1,95 @@
Music_Cities2_Ch1:: ; b504 (2:7504)
- tempo 0, 148
- stereopanning 119
+ tempo 148
+ volume 7, 7
duty 3
vibrato 8, 3, 2
- togglecall
+ toggleperfectpitch
notetype 12, 11, 6
rest 8
octave 3
- note E_, 2
- note D#, 2
- note C#, 2
- note C_, 2
+ E_ 2
+ D# 2
+ C# 2
+ C_ 2
octave 2
- note B_, 2
+ B_ 2
rest 14
Music_Cities2_branch_b51a::
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 2
- note D#, 1
- note D_, 1
- note C#, 4
+ C# 2
+ D# 1
+ D_ 1
+ C# 4
octave 3
- note B_, 4
- note G#, 8
- note E_, 8
- note A_, 4
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 2
+ B_ 4
+ G# 8
+ E_ 8
+ A_ 4
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 2
octave 4
- note C#, 2
+ C# 2
rest 16
- note C#, 4
+ C# 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 1
- note D#, 1
- note C#, 4
+ C# 1
+ D# 1
+ C# 4
octave 3
- note B_, 4
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
+ B_ 4
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 3
- note G#, 8
- note B_, 4
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 2
- note E_, 2
- note F#, 2
- note G#, 2
+ G# 8
+ B_ 4
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 2
+ E_ 2
+ F# 2
+ G# 2
rest 2
octave 4
- note E_, 4
+ E_ 4
octave 3
- note B_, 4
- note F#, 2
- note G#, 2
- note A_, 2
+ B_ 4
+ F# 2
+ G# 2
+ A_ 2
rest 2
octave 4
- note F#, 4
- note D#, 4
+ F# 4
+ D# 4
octave 3
- note E_, 2
+ E_ 2
rest 4
- note F#, 2
+ F# 2
rest 4
- note A_, 2
+ A_ 2
rest 2
- note B_, 2
+ B_ 2
rest 16
rest 16
rest 14
- note E_, 16
- note F#, 8
- note G#, 4
- note F#, 4
- note E_, 2
+ E_ 16
+ F# 8
+ G# 4
+ F# 4
+ E_ 2
rest 14
loopchannel 0, Music_Cities2_branch_b51a
@@ -99,184 +99,184 @@
vibrato 8, 2, 3
notetype 12, 12, 2
octave 4
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 2
+ D# 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note E_, 6
+ C# 2
+ D# 2
+ E_ 6
notetype 12, 12, 2
duty 2
octave 4
- note E_, 1
+ E_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 2
- note D#, 2
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ C# 2
+ D# 2
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
Music_Cities2_branch_b58b::
notetype 12, 10, 6
- note G#, 6
+ G# 6
notetype 12, 12, 2
- note A_, 1
- note G#, 1
+ A_ 1
+ G# 1
notetype 12, 12, 4
- note F#, 14
+ F# 14
notetype 12, 12, 2
- note E_, 1
+ E_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 2
- note D#, 2
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ C# 2
+ D# 2
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
notetype 12, 12, 4
- note G#, 6
+ G# 6
notetype 12, 12, 2
- note E_, 1
- note G#, 1
+ E_ 1
+ G# 1
notetype 12, 12, 5
- note B_, 14
+ B_ 14
notetype 12, 12, 2
- note E_, 1
+ E_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 2
- note D#, 2
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ C# 2
+ D# 2
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
notetype 12, 10, 6
- note G#, 6
+ G# 6
notetype 12, 12, 2
- note A_, 1
- note G#, 1
+ A_ 1
+ G# 1
notetype 12, 12, 4
- note F#, 8
+ F# 8
notetype 12, 10, 1
duty 1
octave 3
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
rest 1
notetype 12, 12, 2
duty 2
octave 4
- note E_, 1
+ E_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 2
- note D#, 2
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ C# 2
+ D# 2
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
notetype 12, 12, 4
- note G#, 6
- note E_, 1
- note G#, 1
+ G# 6
+ E_ 1
+ G# 1
notetype 12, 12, 6
- note B_, 8
+ B_ 8
notetype 12, 12, 2
- note C#, 1
+ C# 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
- note D#, 1
- note E_, 4
+ C# 1
+ D# 1
+ E_ 4
notetype 12, 12, 7
- note G#, 4
- note E_, 4
+ G# 4
+ E_ 4
notetype 12, 12, 2
- note D#, 1
- note C#, 1
- note D#, 1
- note E_, 1
- note F#, 4
+ D# 1
+ C# 1
+ D# 1
+ E_ 1
+ F# 4
notetype 12, 12, 7
- note B_, 4
- note F#, 4
+ B_ 4
+ F# 4
notetype 12, 12, 2
- note C#, 1
+ C# 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
- note D#, 1
- note E_, 2
- note E_, 1
- note D#, 1
- note E_, 1
- note F#, 1
- note G#, 2
- note G#, 1
- note A_, 1
- note G#, 1
- note A_, 1
- note B_, 1
- note F#, 1
- note D#, 1
- note C#, 1
+ C# 1
+ D# 1
+ E_ 2
+ E_ 1
+ D# 1
+ E_ 1
+ F# 1
+ G# 2
+ G# 1
+ A_ 1
+ G# 1
+ A_ 1
+ B_ 1
+ F# 1
+ D# 1
+ C# 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
- note D#, 1
- note F#, 1
+ C# 1
+ D# 1
+ F# 1
notetype 12, 12, 2
- note B_, 8
+ B_ 8
notetype 12, 11, 7
octave 3
- note E_, 8
+ E_ 8
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note G#, 4
- note A_, 4
- note B_, 8
- note B_, 8
- note G#, 4
+ F# 4
+ G# 4
+ A_ 4
+ B_ 8
+ B_ 8
+ G# 4
octave 4
- note D#, 4
- note C#, 4
- note D#, 4
- note E_, 2
- note D#, 2
- note C#, 2
- note D#, 2
+ D# 4
+ C# 4
+ D# 4
+ E_ 2
+ D# 2
+ C# 2
+ D# 2
notetype 12, 12, 2
- note E_, 6
- note E_, 1
+ E_ 6
+ E_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 2
- note D#, 2
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ C# 2
+ D# 2
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
loopchannel 0, Music_Cities2_branch_b58b
@@ -284,134 +284,134 @@
notetype 12, 1, 1
rest 16
octave 4
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
Music_Cities2_branch_b64c::
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
rest 2
- note E_, 4
- note G#, 4
- note F#, 2
- note A_, 2
- note F#, 2
+ E_ 4
+ G# 4
+ F# 2
+ A_ 2
+ F# 2
rest 2
- note F#, 4
- note A_, 4
- note C#, 2
+ F# 4
+ A_ 4
+ C# 2
rest 4
- note E_, 2
+ E_ 2
rest 4
- note G#, 2
- note A_, 2
- note B_, 2
+ G# 2
+ A_ 2
+ B_ 2
rest 8
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
loopchannel 0, Music_Cities2_branch_b64c
-; 0xb6c7
\ No newline at end of file
+; 0xb6c7
--- a/audio/music/credits.asm
+++ b/audio/music/credits.asm
@@ -1,286 +1,286 @@
Music_Credits_Ch1:: ; 7fc1f (1f:7c1f)
- tempo 0, 140
- stereopanning 119
+ tempo 140
+ volume 7, 7
duty 3
vibrato 8, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 5
octave 4
- note E_, 6
+ E_ 6
octave 3
- note A_, 1
+ A_ 1
octave 4
- note E_, 1
- note D_, 6
+ E_ 1
+ D_ 6
octave 3
- note G_, 1
+ G_ 1
octave 4
- note D_, 1
- note C#, 6
+ D_ 1
+ C# 6
octave 3
- note F#, 1
+ F# 1
octave 4
- note C#, 1
- note D_, 4
- note E_, 2
- note C#, 1
- note E_, 1
- note C#, 1
+ C# 1
+ D_ 4
+ E_ 2
+ C# 1
+ E_ 1
+ C# 1
rest 1
octave 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
- note E_, 1
- note F#, 1
- note G_, 1
+ E_ 1
+ E_ 1
+ F# 1
+ G_ 1
notetype 12, 11, 6
- note A_, 4
- note E_, 2
- note A_, 2
- note G_, 4
- note A_, 2
- note G_, 2
- note B_, 4
- note A_, 4
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note C#, 6
- note E_, 2
- note A_, 4
- note C#, 4
- note E_, 4
- note D_, 2
- note C#, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note A_, 4
- note E_, 2
- note A_, 2
- note G_, 4
- note A_, 2
- note G_, 2
- note B_, 4
- note A_, 4
- note G_, 2
- note A_, 2
- note F#, 2
- note D_, 2
- note E_, 6
- note C#, 2
- note A_, 4
- note C#, 4
- note E_, 4
- note D_, 2
- note C#, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note G_, 4
- note D_, 2
- note G_, 2
- note B_, 2
- note A_, 2
- note G_, 2
- note A_, 2
- note D_, 4
- note E_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note E_, 6
- note A_, 2
- note G_, 4
- note F#, 4
- note G_, 4
- note F#, 4
- note E_, 4
- note D_, 4
- note G_, 4
- note D_, 2
- note G_, 2
- note B_, 2
+ A_ 4
+ E_ 2
+ A_ 2
+ G_ 4
+ A_ 2
+ G_ 2
+ B_ 4
+ A_ 4
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ C# 6
+ E_ 2
+ A_ 4
+ C# 4
+ E_ 4
+ D_ 2
+ C# 2
+ E_ 2
+ F# 2
+ G_ 2
+ F# 2
+ A_ 4
+ E_ 2
+ A_ 2
+ G_ 4
+ A_ 2
+ G_ 2
+ B_ 4
+ A_ 4
+ G_ 2
+ A_ 2
+ F# 2
+ D_ 2
+ E_ 6
+ C# 2
+ A_ 4
+ C# 4
+ E_ 4
+ D_ 2
+ C# 2
+ E_ 2
+ F# 2
+ G_ 2
+ F# 2
+ G_ 4
+ D_ 2
+ G_ 2
+ B_ 2
+ A_ 2
+ G_ 2
+ A_ 2
+ D_ 4
+ E_ 2
+ F# 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ E_ 6
+ A_ 2
+ G_ 4
+ F# 4
+ G_ 4
+ F# 4
+ E_ 4
+ D_ 4
+ G_ 4
+ D_ 2
+ G_ 2
+ B_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note D_, 4
- note E_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
+ B_ 2
+ A_ 2
+ D_ 4
+ E_ 2
+ F# 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
notetype 12, 11, 7
- note E_, 6
- note A_, 2
- note G_, 4
- note F#, 4
+ E_ 6
+ A_ 2
+ G_ 4
+ F# 4
notetype 12, 12, 7
- note A_, 4
- note B_, 4
+ A_ 4
+ B_ 4
octave 4
- note C#, 4
- note D_, 4
+ C# 4
+ D_ 4
octave 3
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
notetype 12, 9, 0
- note G_, 8
- note F#, 8
- note E_, 8
- note D_, 8
+ G_ 8
+ F# 8
+ E_ 8
+ D_ 8
rest 16
rest 16
rest 8
notetype 12, 11, 6
- note E_, 6
- note D#, 1
- note D_, 1
+ E_ 6
+ D# 1
+ D_ 1
notetype 12, 10, 0
- note C#, 8
+ C# 8
notetype 12, 10, 7
- note C#, 8
+ C# 8
rest 16
rest 16
rest 8
- note E_, 6
- note C#, 1
- note E_, 1
+ E_ 6
+ C# 1
+ E_ 1
notetype 12, 10, 0
- note A_, 8
+ A_ 8
notetype 12, 10, 7
- note A_, 8
+ A_ 8
notetype 12, 11, 6
- note G_, 6
- note D_, 4
- note G_, 2
- note B_, 4
+ G_ 6
+ D_ 4
+ G_ 2
+ B_ 4
notetype 12, 11, 7
- note G_, 8
- note F#, 4
- note G#, 4
+ G_ 8
+ F# 4
+ G# 4
notetype 12, 9, 0
- note A_, 8
- note F#, 8
- note E_, 8
- note C#, 8
+ A_ 8
+ F# 8
+ E_ 8
+ C# 8
notetype 12, 11, 7
- note D_, 8
- note C#, 8
+ D_ 8
+ C# 8
octave 2
- note B_, 8
+ B_ 8
octave 3
- note D_, 8
+ D_ 8
notetype 12, 9, 0
- note E_, 8
- note D_, 8
- note F#, 8
- note E_, 8
+ E_ 8
+ D_ 8
+ F# 8
+ E_ 8
notetype 12, 10, 0
- note D_, 8
- note E_, 8
- note D_, 8
- note C_, 8
- note G_, 8
- note F_, 8
- note E_, 8
- note D_, 8
+ D_ 8
+ E_ 8
+ D_ 8
+ C_ 8
+ G_ 8
+ F_ 8
+ E_ 8
+ D_ 8
notetype 12, 10, 0
- note C#, 6
+ C# 6
notetype 12, 10, 7
- note C#, 6
+ C# 6
notetype 12, 11, 7
- note D_, 4
- note E_, 8
- note G_, 6
- note F#, 1
- note F_, 1
+ D_ 4
+ E_ 8
+ G_ 6
+ F# 1
+ F_ 1
notetype 12, 10, 0
- note E_, 6
+ E_ 6
notetype 12, 10, 7
- note E_, 6
+ E_ 6
notetype 12, 11, 7
- note D_, 4
+ D_ 4
notetype 12, 10, 0
- note C#, 8
+ C# 8
notetype 12, 10, 7
- note C#, 8
+ C# 8
notetype 12, 11, 7
- note E_, 6
- note D_, 2
- note G_, 4
- note F#, 4
- note E_, 4
- note F#, 4
- note E_, 4
- note D_, 4
- note E_, 4
- note D_, 4
- note C#, 4
- note D_, 4
- note C#, 4
- note C#, 4
- note E_, 4
- note F#, 4
+ E_ 6
+ D_ 2
+ G_ 4
+ F# 4
+ E_ 4
+ F# 4
+ E_ 4
+ D_ 4
+ E_ 4
+ D_ 4
+ C# 4
+ D_ 4
+ C# 4
+ C# 4
+ E_ 4
+ F# 4
notetype 12, 10, 0
- note E_, 6
+ E_ 6
notetype 12, 11, 7
- note D_, 2
- note G_, 4
- note F#, 4
- note E_, 4
- note F#, 4
- note A_, 4
- note B_, 4
+ D_ 2
+ G_ 4
+ F# 4
+ E_ 4
+ F# 4
+ A_ 4
+ B_ 4
notetype 12, 10, 0
octave 4
- note C#, 16
- note C#, 8
+ C# 16
+ C# 8
notetype 12, 10, 7
- note C#, 8
+ C# 8
notetype 12, 11, 5
octave 3
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
- note A_, 1
+ A_ 1
+ A_ 1
notetype 12, 11, 1
- note A_, 8
+ A_ 8
endchannel
@@ -289,288 +289,288 @@
vibrato 10, 2, 5
notetype 12, 12, 5
octave 4
- note A_, 6
- note E_, 1
- note A_, 1
- note G_, 6
- note D_, 1
- note G_, 1
+ A_ 6
+ E_ 1
+ A_ 1
+ G_ 6
+ D_ 1
+ G_ 1
notetype 12, 12, 7
- note F#, 12
- note G#, 2
- note E_, 1
- note G#, 1
+ F# 12
+ G# 2
+ E_ 1
+ G# 1
notetype 12, 12, 2
- note A_, 2
+ A_ 2
notetype 12, 12, 1
octave 3
- note A_, 4
- note A_, 1
- note A_, 1
- note A_, 2
- note A_, 2
- note A_, 4
- note A_, 2
- note A_, 4
- note A_, 1
- note A_, 1
- note A_, 2
- note A_, 2
+ A_ 4
+ A_ 1
+ A_ 1
+ A_ 2
+ A_ 2
+ A_ 4
+ A_ 2
+ A_ 4
+ A_ 1
+ A_ 1
+ A_ 2
+ A_ 2
notetype 12, 12, 4
- note A_, 1
- note F#, 1
- note A_, 1
- note B_, 1
+ A_ 1
+ F# 1
+ A_ 1
+ B_ 1
notetype 12, 12, 7
octave 4
- note C#, 6
- note C#, 1
- note D_, 1
- note E_, 4
- note C#, 4
- note G_, 4
- note F#, 4
- note E_, 4
- note D_, 4
- note C#, 6
+ C# 6
+ C# 1
+ D_ 1
+ E_ 4
+ C# 4
+ G_ 4
+ F# 4
+ E_ 4
+ D_ 4
+ C# 6
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 8
+ E_ 8
octave 3
- note A_, 6
- note E_, 2
+ A_ 6
+ E_ 2
octave 4
- note C#, 8
- note C#, 6
- note C#, 1
- note D_, 1
- note E_, 4
- note C#, 4
- note G_, 4
- note F#, 4
- note E_, 4
- note D_, 4
- note C#, 6
+ C# 8
+ C# 6
+ C# 1
+ D_ 1
+ E_ 4
+ C# 4
+ G_ 4
+ F# 4
+ E_ 4
+ D_ 4
+ C# 6
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 8
+ E_ 8
octave 3
- note A_, 6
- note E_, 2
+ A_ 6
+ E_ 2
notetype 12, 11, 0
octave 4
- note C#, 8
+ C# 8
notetype 12, 12, 7
- note D_, 6
+ D_ 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G_, 8
+ G_ 8
octave 3
- note G_, 6
- note D_, 2
- note B_, 8
+ G_ 6
+ D_ 2
+ B_ 8
notetype 12, 11, 0
octave 4
- note C#, 6
+ C# 6
notetype 12, 11, 7
- note C#, 6
- note D_, 4
+ C# 6
+ D_ 4
notetype 12, 10, 0
- note E_, 8
+ E_ 8
notetype 12, 10, 7
- note E_, 8
+ E_ 8
notetype 12, 12, 7
- note D_, 6
+ D_ 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G_, 8
+ G_ 8
octave 3
- note G_, 6
- note D_, 2
- note B_, 8
+ G_ 6
+ D_ 2
+ B_ 8
notetype 12, 11, 0
octave 4
- note E_, 7
+ E_ 7
notetype 12, 11, 7
- note E_, 7
+ E_ 7
notetype 12, 12, 3
- note E_, 1
- note G#, 1
+ E_ 1
+ G# 1
notetype 12, 11, 0
- note A_, 8
+ A_ 8
notetype 12, 11, 7
- note A_, 8
+ A_ 8
notetype 12, 12, 6
- note G_, 4
- note F#, 4
- note E_, 4
- note D_, 4
+ G_ 4
+ F# 4
+ E_ 4
+ D_ 4
notetype 12, 10, 0
- note C#, 8
+ C# 8
notetype 12, 10, 7
- note C#, 8
+ C# 8
notetype 12, 9, 0
octave 3
- note A_, 8
+ A_ 8
notetype 12, 9, 7
- note A_, 8
+ A_ 8
notetype 12, 11, 0
- note E_, 8
+ E_ 8
notetype 12, 11, 7
- note E_, 8
+ E_ 8
notetype 12, 12, 7
- note D_, 8
- note G_, 6
- note F#, 1
- note F_, 1
- note E_, 8
+ D_ 8
+ G_ 6
+ F# 1
+ F_ 1
+ E_ 8
notetype 12, 11, 7
- note G_, 6
- note F#, 1
- note F_, 1
+ G_ 6
+ F# 1
+ F_ 1
notetype 12, 11, 0
- note E_, 8
+ E_ 8
notetype 12, 11, 7
- note E_, 8
+ E_ 8
notetype 12, 11, 0
- note D_, 8
+ D_ 8
notetype 12, 11, 7
- note D_, 8
+ D_ 8
notetype 12, 12, 7
octave 2
- note B_, 8
+ B_ 8
octave 3
- note F#, 6
- note D_, 1
- note F#, 1
- note E_, 8
- note B_, 6
- note G_, 1
- note B_, 1
+ F# 6
+ D_ 1
+ F# 1
+ E_ 8
+ B_ 6
+ G_ 1
+ B_ 1
notetype 12, 11, 0
octave 4
- note C#, 8
+ C# 8
notetype 12, 11, 7
- note C#, 8
+ C# 8
notetype 12, 11, 0
- note D_, 8
+ D_ 8
notetype 12, 11, 7
- note D_, 8
+ D_ 8
notetype 12, 12, 7
octave 3
- note B_, 8
+ B_ 8
octave 4
- note D_, 6
+ D_ 6
octave 3
- note B_, 1
+ B_ 1
octave 4
- note D_, 1
+ D_ 1
notetype 12, 11, 0
- note C#, 6
+ C# 6
notetype 12, 11, 7
- note C#, 6
+ C# 6
notetype 12, 12, 7
octave 3
- note B_, 4
+ B_ 4
notetype 12, 11, 0
- note A_, 8
+ A_ 8
notetype 12, 11, 7
- note A_, 8
+ A_ 8
notetype 12, 11, 0
- note F#, 6
+ F# 6
notetype 12, 11, 7
- note F#, 6
+ F# 6
notetype 12, 12, 7
- note G#, 4
- note A_, 8
- note F#, 8
+ G# 4
+ A_ 8
+ F# 8
notetype 12, 11, 0
- note G#, 6
+ G# 6
notetype 12, 11, 7
- note G#, 6
+ G# 6
notetype 12, 12, 7
- note A_, 4
- note B_, 8
- note G#, 8
+ A_ 4
+ B_ 8
+ G# 8
notetype 12, 11, 0
- note A_, 6
+ A_ 6
notetype 12, 11, 7
- note A_, 6
+ A_ 6
notetype 12, 12, 7
- note B_, 4
+ B_ 4
octave 4
- note C_, 8
+ C_ 8
octave 3
- note A_, 8
+ A_ 8
notetype 12, 11, 0
- note B_, 6
+ B_ 6
notetype 12, 11, 7
- note B_, 6
+ B_ 6
notetype 12, 12, 7
octave 4
- note C_, 4
+ C_ 4
notetype 12, 11, 0
- note D_, 8
+ D_ 8
octave 3
- note B_, 8
+ B_ 8
notetype 12, 11, 0
octave 4
- note C#, 16
- note C#, 8
+ C# 16
+ C# 8
notetype 12, 11, 7
- note C#, 8
+ C# 8
notetype 12, 11, 0
octave 3
- note A_, 16
- note A_, 8
+ A_ 16
+ A_ 8
notetype 12, 11, 7
- note A_, 8
+ A_ 8
notetype 12, 12, 7
- note G_, 6
- note B_, 2
+ G_ 6
+ B_ 2
octave 4
- note D_, 8
+ D_ 8
octave 3
- note B_, 6
+ B_ 6
octave 4
- note D_, 2
- note G_, 6
- note F#, 1
- note F_, 1
- note E_, 8
+ D_ 2
+ G_ 6
+ F# 1
+ F_ 1
+ E_ 8
octave 3
- note G_, 6
- note F#, 1
- note F_, 1
- note E_, 8
- note C#, 4
- note D_, 4
- note G_, 6
- note B_, 2
+ G_ 6
+ F# 1
+ F_ 1
+ E_ 8
+ C# 4
+ D_ 4
+ G_ 6
+ B_ 2
octave 4
- note D_, 8
+ D_ 8
octave 3
- note B_, 6
+ B_ 6
octave 4
- note D_, 2
- note G_, 8
+ D_ 2
+ G_ 8
notetype 12, 11, 0
- note A_, 16
+ A_ 16
notetype 12, 10, 0
- note A_, 8
+ A_ 8
notetype 12, 10, 7
- note A_, 8
+ A_ 8
notetype 12, 12, 1
- note A_, 2
- note A_, 4
- note A_, 1
- note A_, 1
+ A_ 2
+ A_ 4
+ A_ 1
+ A_ 1
notetype 12, 12, 1
- note A_, 8
+ A_ 8
endchannel
@@ -577,24 +577,24 @@
Music_Credits_Ch3:: ; 7fec2 (1f:7ec2)
notetype 12, 1, 0
octave 5
- note C#, 6
+ C# 6
octave 4
- note A_, 1
+ A_ 1
octave 5
- note C#, 1
- note D_, 6
+ C# 1
+ D_ 6
octave 4
- note B_, 1
+ B_ 1
octave 5
- note D_, 1
- note F#, 6
- note D_, 1
- note F#, 1
- note A_, 4
- note G#, 2
- note E_, 1
- note G#, 1
- note A_, 1
+ D_ 1
+ F# 6
+ D_ 1
+ F# 1
+ A_ 4
+ G# 2
+ E_ 1
+ G# 1
+ A_ 1
rest 15
rest 16
callchannel Music_Credits_branch_7ffa4
@@ -601,14 +601,14 @@
callchannel Music_Credits_branch_7ffae
callchannel Music_Credits_branch_7ffa4
octave 4
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
callchannel Music_Credits_branch_7ffa4
callchannel Music_Credits_branch_7ffae
callchannel Music_Credits_branch_7ffa4
@@ -617,30 +617,30 @@
callchannel Music_Credits_branch_7ffb8
callchannel Music_Credits_branch_7ffc1
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
callchannel Music_Credits_branch_7ffb8
callchannel Music_Credits_branch_7ffb8
callchannel Music_Credits_branch_7ffc1
callchannel Music_Credits_branch_7ffc1
octave 4
- note G_, 4
- note A_, 4
- note B_, 4
+ G_ 4
+ A_ 4
+ B_ 4
octave 5
- note D_, 4
+ D_ 4
callchannel Music_Credits_branch_7ffa4
callchannel Music_Credits_branch_7ffa4
callchannel Music_Credits_branch_7ffa4
@@ -650,53 +650,53 @@
callchannel Music_Credits_branch_7ffae
callchannel Music_Credits_branch_7ffae
callchannel Music_Credits_branch_7ffa4
- note E_, 4
- note A_, 2
- note E_, 4
- note A_, 2
- note E_, 2
- note A_, 2
+ E_ 4
+ A_ 2
+ E_ 4
+ A_ 2
+ E_ 2
+ A_ 2
callchannel Music_Credits_branch_7ffae
callchannel Music_Credits_branch_7ffae
callchannel Music_Credits_branch_7ffa4
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note G#, 2
- note A_, 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ G# 2
+ A_ 2
callchannel Music_Credits_branch_7ffd2
callchannel Music_Credits_branch_7ffd2
callchannel Music_Credits_branch_7ffdb
callchannel Music_Credits_branch_7ffdb
- note F_, 2
- note A_, 2
- note F_, 2
- note A_, 2
- note F_, 2
- note A_, 2
- note F_, 2
- note A_, 2
- note F_, 2
- note A_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 2
+ F_ 2
+ A_ 2
+ F_ 2
+ A_ 2
+ F_ 2
+ A_ 2
+ F_ 2
+ A_ 2
+ F_ 2
+ A_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 2
callchannel Music_Credits_branch_7ffb8
callchannel Music_Credits_branch_7ffb8
- note E_, 4
- note A_, 4
- note E_, 4
- note A_, 4
- note E_, 4
- note A_, 4
- note E_, 4
- note A_, 4
+ E_ 4
+ A_ 4
+ E_ 4
+ A_ 4
+ E_ 4
+ A_ 4
+ E_ 4
+ A_ 4
callchannel Music_Credits_branch_7ffa4
callchannel Music_Credits_branch_7ffa4
callchannel Music_Credits_branch_7ffe4
@@ -707,115 +707,115 @@
callchannel Music_Credits_branch_7ffb8
callchannel Music_Credits_branch_7ffed
callchannel Music_Credits_branch_7ffed
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
- note A_, 1
- note A_, 1
+ A_ 1
+ A_ 1
+ A_ 1
rest 7
endchannel
Music_Credits_branch_7ffa4::
octave 4
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
endchannel
Music_Credits_branch_7ffae::
octave 4
- note D_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note D_, 2
- note G_, 2
+ D_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ D_ 2
+ G_ 2
endchannel
Music_Credits_branch_7ffb8::
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
endchannel
Music_Credits_branch_7ffc1::
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
endchannel
Music_Credits_branch_7ffd2::
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
endchannel
Music_Credits_branch_7ffdb::
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
endchannel
Music_Credits_branch_7ffe4::
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
endchannel
Music_Credits_branch_7ffed::
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
- note A_, 1
- note A_, 1
+ A_ 1
+ A_ 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
endchannel
-; 0x7fffa
\ No newline at end of file
+; 0x7fffa
--- a/audio/music/defeatedgymleader.asm
+++ b/audio/music/defeatedgymleader.asm
@@ -1,164 +1,164 @@
Music_DefeatedGymLeader_Ch1:: ; 23cad (8:7cad)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
duty 3
vibrato 18, 3, 1
- togglecall
- tempo 0, 112
+ toggleperfectpitch
+ tempo 112
notetype 12, 10, 6
octave 4
- note D_, 6
+ D_ 6
octave 3
- note A_, 1
+ A_ 1
octave 4
- note D_, 1
- note F#, 6
- note D_, 1
- note F#, 1
+ D_ 1
+ F# 6
+ D_ 1
+ F# 1
notetype 12, 10, 0
- note A_, 8
+ A_ 8
notetype 12, 10, 7
- note A_, 8
+ A_ 8
Music_DefeatedGymLeader_branch_23ccc::
notetype 12, 11, 2
octave 3
- note A_, 2
- note A_, 2
- note F#, 4
- note G_, 2
- note G_, 2
- note E_, 4
- note D_, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note D_, 4
- note D_, 4
- note A_, 2
- note A_, 2
- note F#, 4
- note G_, 2
- note G_, 2
- note E_, 4
- note D_, 2
- note E_, 2
- note D_, 2
- note C#, 2
+ A_ 2
+ A_ 2
+ F# 4
+ G_ 2
+ G_ 2
+ E_ 4
+ D_ 2
+ E_ 2
+ D_ 2
+ E_ 2
+ D_ 4
+ D_ 4
+ A_ 2
+ A_ 2
+ F# 4
+ G_ 2
+ G_ 2
+ E_ 4
+ D_ 2
+ E_ 2
+ D_ 2
+ C# 2
notetype 12, 11, 1
octave 2
- note B_, 8
+ B_ 8
notetype 12, 11, 2
octave 3
- note A_, 2
- note A_, 2
- note F#, 4
- note G_, 2
- note G_, 2
- note E_, 4
- note D_, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note D_, 4
- note D_, 4
- note A_, 2
- note A_, 2
- note F#, 4
- note G_, 2
- note G_, 2
- note E_, 4
- note D_, 2
- note E_, 2
- note D_, 2
- note C#, 2
+ A_ 2
+ A_ 2
+ F# 4
+ G_ 2
+ G_ 2
+ E_ 4
+ D_ 2
+ E_ 2
+ D_ 2
+ E_ 2
+ D_ 4
+ D_ 4
+ A_ 2
+ A_ 2
+ F# 4
+ G_ 2
+ G_ 2
+ E_ 4
+ D_ 2
+ E_ 2
+ D_ 2
+ C# 2
notetype 12, 11, 1
octave 2
- note B_, 8
+ B_ 8
notetype 12, 9, 7
octave 3
- note D_, 6
+ D_ 6
octave 2
- note A_, 1
+ A_ 1
octave 3
- note D_, 1
- note F#, 8
+ D_ 1
+ F# 8
notetype 12, 11, 0
- note F#, 6
- note E_, 1
- note F#, 1
- note A_, 8
+ F# 6
+ E_ 1
+ F# 1
+ A_ 8
notetype 12, 9, 7
- note E_, 6
- note C#, 1
- note E_, 1
- note G#, 8
+ E_ 6
+ C# 1
+ E_ 1
+ G# 8
notetype 12, 11, 0
- note G#, 6
- note E_, 1
- note G#, 1
- note B_, 8
+ G# 6
+ E_ 1
+ G# 1
+ B_ 8
notetype 12, 9, 7
- note C#, 6
+ C# 6
octave 2
- note A_, 1
+ A_ 1
octave 3
- note C#, 1
- note E_, 8
+ C# 1
+ E_ 8
notetype 12, 11, 0
- note E_, 6
- note C#, 1
- note E_, 1
- note E_, 4
- note G_, 4
+ E_ 6
+ C# 1
+ E_ 1
+ E_ 4
+ G_ 4
notetype 12, 9, 0
- note F#, 8
- note E_, 8
- note D_, 8
- note C#, 8
+ F# 8
+ E_ 8
+ D_ 8
+ C# 8
notetype 12, 9, 7
- note D_, 6
+ D_ 6
octave 2
- note A_, 1
+ A_ 1
octave 3
- note D_, 1
- note F#, 8
+ D_ 1
+ F# 8
notetype 12, 11, 0
- note F#, 6
- note E_, 1
- note F#, 1
- note A_, 8
+ F# 6
+ E_ 1
+ F# 1
+ A_ 8
notetype 12, 9, 7
- note E_, 6
- note C#, 1
- note E_, 1
- note G#, 8
+ E_ 6
+ C# 1
+ E_ 1
+ G# 8
notetype 12, 11, 0
- note G#, 6
- note E_, 1
- note G#, 1
- note B_, 8
+ G# 6
+ E_ 1
+ G# 1
+ B_ 8
notetype 12, 9, 7
- note C#, 6
+ C# 6
octave 2
- note A_, 1
+ A_ 1
octave 3
- note C#, 1
- note E_, 8
+ C# 1
+ E_ 8
notetype 12, 11, 0
- note E_, 6
- note C#, 1
- note E_, 1
- note E_, 4
- note G_, 4
+ E_ 6
+ C# 1
+ E_ 1
+ E_ 4
+ G_ 4
notetype 12, 9, 7
- note F#, 6
- note E_, 1
- note F#, 1
- note A_, 8
+ F# 6
+ E_ 1
+ F# 1
+ A_ 8
notetype 12, 10, 7
- note G_, 8
- note E_, 8
+ G_ 8
+ E_ 8
loopchannel 0, Music_DefeatedGymLeader_branch_23ccc
@@ -167,188 +167,188 @@
vibrato 24, 2, 4
notetype 12, 12, 4
octave 4
- note A_, 6
- note F#, 1
- note A_, 1
+ A_ 6
+ F# 1
+ A_ 1
octave 5
- note D_, 6
+ D_ 6
octave 4
- note A_, 1
+ A_ 1
octave 5
- note D_, 1
+ D_ 1
notetype 12, 11, 0
- note F#, 8
+ F# 8
notetype 12, 11, 7
- note F#, 8
+ F# 8
Music_DefeatedGymLeader_branch_23d84::
notetype 12, 12, 2
octave 4
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 4
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
+ B_ 2
+ A_ 4
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
notetype 12, 12, 4
- note A_, 4
- note A_, 4
+ A_ 4
+ A_ 4
notetype 12, 12, 2
octave 4
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 4
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
+ B_ 2
+ A_ 4
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
notetype 12, 12, 1
- note D_, 6
+ D_ 6
notetype 6, 12, 2
- note G_, 1
- note A_, 1
- note B_, 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 4
- note C#, 1
+ C# 1
notetype 12, 12, 2
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 4
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
+ B_ 2
+ A_ 4
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
notetype 12, 12, 4
- note A_, 4
- note A_, 3
+ A_ 4
+ A_ 3
notetype 6, 12, 2
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
+ C# 1
notetype 12, 12, 2
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 4
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
+ B_ 2
+ A_ 4
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
notetype 12, 12, 1
- note D_, 8
+ D_ 8
notetype 12, 12, 7
- note A_, 6
- note F#, 1
- note A_, 1
+ A_ 6
+ F# 1
+ A_ 1
notetype 12, 11, 0
octave 4
- note D_, 8
+ D_ 8
notetype 12, 10, 0
- note D_, 8
+ D_ 8
notetype 12, 9, 7
- note D_, 8
+ D_ 8
notetype 12, 12, 7
octave 3
- note B_, 6
- note G#, 1
- note B_, 1
+ B_ 6
+ G# 1
+ B_ 1
notetype 12, 8, 0
octave 4
- note E_, 8
+ E_ 8
notetype 12, 10, 0
- note E_, 8
+ E_ 8
notetype 12, 12, 7
- note E_, 8
+ E_ 8
octave 3
- note G_, 6
- note E_, 1
- note G_, 1
+ G_ 6
+ E_ 1
+ G_ 1
notetype 12, 6, 15
octave 4
- note C#, 8
+ C# 8
notetype 12, 12, 7
- note C#, 8
- note F#, 4
- note E_, 4
+ C# 8
+ F# 4
+ E_ 4
notetype 12, 11, 0
- note D_, 14
+ D_ 14
octave 3
- note B_, 2
+ B_ 2
notetype 12, 10, 0
- note A_, 8
+ A_ 8
notetype 12, 11, 7
- note A_, 8
+ A_ 8
notetype 12, 12, 7
- note A_, 6
- note F#, 1
- note A_, 1
+ A_ 6
+ F# 1
+ A_ 1
notetype 12, 11, 0
octave 4
- note D_, 8
+ D_ 8
notetype 12, 10, 0
- note D_, 8
+ D_ 8
notetype 12, 9, 7
- note D_, 8
+ D_ 8
notetype 12, 12, 7
octave 3
- note B_, 6
- note G#, 1
- note B_, 1
+ B_ 6
+ G# 1
+ B_ 1
notetype 12, 4, 15
octave 4
- note E_, 8
+ E_ 8
notetype 12, 11, 0
- note E_, 8
+ E_ 8
notetype 12, 12, 7
- note E_, 8
+ E_ 8
octave 3
- note G_, 6
- note E_, 1
- note G_, 1
+ G_ 6
+ E_ 1
+ G_ 1
notetype 12, 11, 0
octave 4
- note C#, 8
+ C# 8
notetype 12, 11, 7
- note C#, 8
+ C# 8
octave 3
- note A_, 4
+ A_ 4
octave 4
- note C#, 4
+ C# 4
notetype 12, 11, 0
- note D_, 14
- note E_, 2
- note D_, 12
+ D_ 14
+ E_ 2
+ D_ 12
notetype 12, 12, 2
octave 3
- note G_, 1
- note A_, 1
- note B_, 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 4
- note C#, 1
+ C# 1
loopchannel 0, Music_DefeatedGymLeader_branch_23d84
@@ -356,253 +356,253 @@
notetype 12, 1, 0
vibrato 16, 1, 2
octave 4
- note F#, 6
- note D_, 1
- note F#, 1
- note A_, 6
- note F#, 1
- note A_, 1
+ F# 6
+ D_ 1
+ F# 1
+ A_ 6
+ F# 1
+ A_ 1
octave 5
- note D_, 6
+ D_ 6
octave 4
- note A_, 1
+ A_ 1
octave 5
- note D_, 1
- note F#, 8
+ D_ 1
+ F# 8
Music_DefeatedGymLeader_branch_23e65::
octave 4
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F#, 3
+ F# 3
rest 1
- note F#, 3
+ F# 3
rest 1
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note D_, 1
+ D_ 1
rest 5
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 3
+ G_ 3
rest 1
- note D_, 3
+ D_ 3
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 7
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note E_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note G_, 2
- note A_, 2
- note G_, 2
- note E_, 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ C# 2
+ D_ 2
+ E_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ C# 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ G_ 2
+ A_ 2
+ G_ 2
+ E_ 2
loopchannel 0, Music_DefeatedGymLeader_branch_23e65
-; 0x23f52
\ No newline at end of file
+; 0x23f52
--- a/audio/music/defeatedtrainer.asm
+++ b/audio/music/defeatedtrainer.asm
@@ -1,97 +1,97 @@
Music_DefeatedTrainer_Ch1:: ; 23a53 (8:7a53)
- tempo 0, 224
- stereopanning 119
+ tempo 224
+ volume 7, 7
duty 2
- togglecall
- tempo 0, 224
+ toggleperfectpitch
+ tempo 224
notetype 4, 10, 2
octave 4
- note D_, 2
- tempo 0, 224
+ D_ 2
+ tempo 224
notetype 4, 10, 2
- note D_, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
+ D_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note D_, 2
+ D_ 2
notetype 4, 11, 3
- note F#, 12
+ F# 12
duty 1
- tempo 0, 224
+ tempo 224
Music_DefeatedTrainer_branch_23a76::
notetype 4, 6, 3
octave 3
- note A_, 6
- note F#, 3
- note A_, 3
- note B_, 6
- note G#, 3
- note B_, 3
+ A_ 6
+ F# 3
+ A_ 3
+ B_ 6
+ G# 3
+ B_ 3
octave 4
- note C#, 3
+ C# 3
octave 3
- note B_, 3
- note A_, 3
- note G_, 3
- note A_, 3
- note B_, 3
- note A_, 3
- note G_, 3
- note A_, 6
- note F#, 3
- note A_, 3
- note B_, 6
- note G#, 3
- note B_, 3
+ B_ 3
+ A_ 3
+ G_ 3
+ A_ 3
+ B_ 3
+ A_ 3
+ G_ 3
+ A_ 6
+ F# 3
+ A_ 3
+ B_ 6
+ G# 3
+ B_ 3
octave 4
- note C#, 3
- note D_, 3
- note E_, 3
- note F#, 3
- note C#, 3
+ C# 3
+ D_ 3
+ E_ 3
+ F# 3
+ C# 3
octave 3
- note B_, 3
- note A_, 3
+ B_ 3
+ A_ 3
octave 4
- note C#, 3
+ C# 3
octave 3
- note A_, 6
- note F#, 3
- note A_, 3
- note B_, 6
- note G#, 3
- note B_, 3
+ A_ 6
+ F# 3
+ A_ 3
+ B_ 6
+ G# 3
+ B_ 3
octave 4
- note C_, 6
+ C_ 6
octave 3
- note A_, 3
+ A_ 3
octave 4
- note C_, 3
- note D_, 3
+ C_ 3
+ D_ 3
octave 3
- note B_, 3
+ B_ 3
octave 4
- note D_, 6
- note C#, 3
+ D_ 6
+ C# 3
octave 3
- note B_, 3
- note A_, 3
- note G_, 3
- note F#, 3
- note G_, 3
- note A_, 3
- note B_, 3
- note A_, 3
- note G_, 3
- note F#, 3
- note E_, 3
- note F#, 3
- note G_, 3
- note A_, 3
- note B_, 3
+ B_ 3
+ A_ 3
+ G_ 3
+ F# 3
+ G_ 3
+ A_ 3
+ B_ 3
+ A_ 3
+ G_ 3
+ F# 3
+ E_ 3
+ F# 3
+ G_ 3
+ A_ 3
+ B_ 3
loopchannel 0, Music_DefeatedTrainer_branch_23a76
@@ -99,76 +99,76 @@
duty 2
notetype 4, 12, 3
octave 4
- note A_, 2
+ A_ 2
notetype 4, 12, 3
- note A_, 2
- note A_, 2
- note A_, 2
- note B_, 2
+ A_ 2
+ A_ 2
+ A_ 2
+ B_ 2
octave 5
- note C#, 2
+ C# 2
notetype 4, 12, 4
- note D_, 12
+ D_ 12
Music_DefeatedTrainer_branch_23ad2::
notetype 4, 8, 5
octave 4
- note D_, 6
+ D_ 6
octave 3
- note A_, 3
+ A_ 3
octave 4
- note D_, 3
- note E_, 6
+ D_ 3
+ E_ 6
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 3
- note F#, 3
- note G_, 3
- note A_, 6
- note E_, 3
- note F#, 3
- note G_, 6
- note D_, 6
+ E_ 3
+ F# 3
+ G_ 3
+ A_ 6
+ E_ 3
+ F# 3
+ G_ 6
+ D_ 6
octave 3
- note A_, 3
+ A_ 3
octave 4
- note D_, 3
- note E_, 6
+ D_ 3
+ E_ 6
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 3
- note F#, 3
- note G_, 3
- note A_, 6
- note F#, 3
- note G_, 3
- note A_, 6
- note D_, 6
+ E_ 3
+ F# 3
+ G_ 3
+ A_ 6
+ F# 3
+ G_ 3
+ A_ 6
+ D_ 6
octave 3
- note A_, 3
+ A_ 3
octave 4
- note D_, 3
- note E_, 6
+ D_ 3
+ E_ 6
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 3
- note F_, 6
- note C_, 3
- note F_, 3
- note G_, 3
- note D_, 3
- note G_, 6
+ E_ 3
+ F_ 6
+ C_ 3
+ F_ 3
+ G_ 3
+ D_ 3
+ G_ 6
notetype 4, 7, 0
- note F#, 12
+ F# 12
notetype 4, 7, 7
- note F#, 12
+ F# 12
notetype 4, 6, 0
- note E_, 12
+ E_ 12
notetype 4, 6, 7
- note E_, 12
+ E_ 12
loopchannel 0, Music_DefeatedTrainer_branch_23ad2
@@ -175,93 +175,93 @@
Music_DefeatedTrainer_Ch3:: ; 23b15 (8:7b15)
notetype 4, 1, 0
octave 5
- note D_, 2
+ D_ 2
notetype 4, 1, 0
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
octave 4
- note B_, 2
- note A_, 2
- note G_, 2
- note A_, 12
+ B_ 2
+ A_ 2
+ G_ 2
+ A_ 12
notetype 4, 2, 1
Music_DefeatedTrainer_branch_23b24::
- note F#, 3
+ F# 3
rest 3
- note F#, 3
+ F# 3
rest 3
- note G#, 3
+ G# 3
rest 3
- note G#, 3
+ G# 3
rest 3
- note A_, 3
+ A_ 3
rest 3
- note A_, 3
+ A_ 3
rest 3
- note B_, 3
+ B_ 3
rest 3
- note B_, 3
+ B_ 3
rest 3
- note F#, 3
+ F# 3
rest 3
- note F#, 3
+ F# 3
rest 3
- note G#, 3
+ G# 3
rest 3
- note G#, 3
+ G# 3
rest 3
- note A_, 3
+ A_ 3
rest 3
- note A_, 3
+ A_ 3
rest 3
octave 5
- note C#, 3
+ C# 3
rest 3
- note C#, 3
+ C# 3
octave 4
- note A_, 3
- note F#, 3
+ A_ 3
+ F# 3
octave 5
- note D_, 3
+ D_ 3
octave 4
- note F#, 3
+ F# 3
rest 3
- note G#, 3
+ G# 3
octave 5
- note E_, 3
+ E_ 3
octave 4
- note G#, 3
+ G# 3
rest 3
- note A_, 3
+ A_ 3
octave 5
- note F_, 3
+ F_ 3
octave 4
- note A_, 3
+ A_ 3
rest 3
- note B_, 3
+ B_ 3
octave 5
- note G_, 3
+ G_ 3
octave 4
- note B_, 3
- note A#, 3
- note A_, 3
+ B_ 3
+ A# 3
+ A_ 3
rest 3
- note A_, 3
+ A_ 3
rest 3
- note A_, 3
+ A_ 3
rest 3
- note A_, 3
+ A_ 3
octave 5
- note C_, 3
- note C#, 3
+ C_ 3
+ C# 3
rest 3
- note C#, 3
+ C# 3
rest 3
- note C#, 3
+ C# 3
rest 3
- note C#, 3
+ C# 3
octave 4
- note A_, 3
+ A_ 3
loopchannel 0, Music_DefeatedTrainer_branch_23b24
-; 0x23b74
\ No newline at end of file
+; 0x23b74
--- a/audio/music/defeatedwildmon.asm
+++ b/audio/music/defeatedwildmon.asm
@@ -1,69 +1,69 @@
Music_DefeatedWildMon_Ch1:: ; 23b74 (8:7b74)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
executemusic
duty 3
vibrato 6, 3, 4
- togglecall
- tempo 0, 112
+ toggleperfectpitch
+ tempo 112
notetype 12, 11, 7
octave 3
- note B_, 1
- note A_, 1
- note G#, 1
- note F#, 1
- note E_, 12
+ B_ 1
+ A_ 1
+ G# 1
+ F# 1
+ E_ 12
Music_DefeatedWildMon_branch_23b8b::
notetype 12, 6, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note G#, 2
- note G#, 4
- note A_, 2
- note A_, 2
- note A_, 4
- note G#, 2
- note G#, 2
- note G#, 4
- note E_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note G#, 2
- note G#, 4
- note A_, 2
- note A_, 2
- note A_, 4
- note G#, 8
- note F_, 2
- note G_, 2
- note F_, 2
- note G_, 2
- note A_, 2
- note A_, 2
- note A_, 4
- note A#, 2
- note A#, 2
- note A#, 4
- note A_, 2
- note A_, 2
- note A_, 4
- note F_, 2
- note G_, 2
- note F_, 2
- note G_, 2
- note A_, 2
- note A_, 2
- note A_, 4
- note A#, 2
- note A#, 2
- note A#, 4
- note A_, 8
+ E_ 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ G# 2
+ G# 4
+ A_ 2
+ A_ 2
+ A_ 4
+ G# 2
+ G# 2
+ G# 4
+ E_ 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ G# 2
+ G# 4
+ A_ 2
+ A_ 2
+ A_ 4
+ G# 8
+ F_ 2
+ G_ 2
+ F_ 2
+ G_ 2
+ A_ 2
+ A_ 2
+ A_ 4
+ A# 2
+ A# 2
+ A# 4
+ A_ 2
+ A_ 2
+ A_ 4
+ F_ 2
+ G_ 2
+ F_ 2
+ G_ 2
+ A_ 2
+ A_ 2
+ A_ 4
+ A# 2
+ A# 2
+ A# 4
+ A_ 8
loopchannel 0, Music_DefeatedWildMon_branch_23b8b
@@ -72,73 +72,73 @@
duty 2
notetype 12, 12, 3
octave 4
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
notetype 12, 12, 7
- note B_, 12
+ B_ 12
Music_DefeatedWildMon_branch_23bce::
notetype 12, 8, 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note B_, 2
- note B_, 2
- note B_, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ B_ 2
+ B_ 2
+ B_ 4
octave 4
- note C#, 2
- note C#, 2
- note C#, 4
+ C# 2
+ C# 2
+ C# 4
octave 3
- note B_, 2
- note B_, 2
- note B_, 4
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note B_, 2
- note B_, 2
- note B_, 4
+ B_ 2
+ B_ 2
+ B_ 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ B_ 2
+ B_ 2
+ B_ 4
octave 4
- note C#, 2
- note C#, 2
- note C#, 4
+ C# 2
+ C# 2
+ C# 4
octave 3
- note B_, 8
+ B_ 8
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A#, 2
- note A_, 2
- note A#, 2
+ A# 2
+ A_ 2
+ A# 2
octave 4
- note C_, 2
- note C_, 2
- note C_, 4
- note D_, 2
- note D_, 2
- note D_, 4
- note C_, 2
- note C_, 2
- note C_, 4
- note C_, 2
+ C_ 2
+ C_ 2
+ C_ 4
+ D_ 2
+ D_ 2
+ D_ 4
+ C_ 2
+ C_ 2
+ C_ 4
+ C_ 2
octave 3
- note A#, 2
- note A_, 2
- note A#, 2
+ A# 2
+ A_ 2
+ A# 2
octave 4
- note C_, 2
- note C_, 2
- note C_, 4
- note D_, 2
- note D_, 2
- note D_, 4
- note C_, 8
+ C_ 2
+ C_ 2
+ C_ 4
+ D_ 2
+ D_ 2
+ D_ 4
+ C_ 8
loopchannel 0, Music_DefeatedWildMon_branch_23bce
@@ -146,158 +146,158 @@
executemusic
notetype 12, 2, 0
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 6
- note C#, 1
+ C# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
rest 1
octave 6
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
Music_DefeatedWildMon_branch_23c21::
octave 4
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 3
octave 5
- note E_, 1
+ E_ 1
rest 3
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note F#, 1
+ F# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
octave 5
- note D#, 1
+ D# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 3
octave 5
- note E_, 1
+ E_ 1
rest 3
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note F#, 1
+ F# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 3
octave 5
- note E_, 1
+ E_ 1
rest 3
octave 4
- note D#, 4
+ D# 4
octave 4
- note F_, 1
+ F_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 3
octave 5
- note F_, 1
+ F_ 1
rest 3
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note G_, 1
+ G_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 3
- note F_, 1
+ F_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 1
octave 4
- note F_, 1
+ F_ 1
rest 3
octave 5
- note F_, 1
+ F_ 1
rest 3
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note G_, 1
+ G_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 3
octave 5
- note F_, 1
+ F_ 1
rest 3
octave 4
- note D#, 4
+ D# 4
loopchannel 0, Music_DefeatedWildMon_branch_23c21
-; 0x23cad
\ No newline at end of file
+; 0x23cad
--- a/audio/music/dungeon1.asm
+++ b/audio/music/dungeon1.asm
@@ -1,15 +1,15 @@
Music_Dungeon1_Ch1:: ; 7ded1 (1f:5ed1)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
vibrato 10, 1, 4
notetype 12, 4, 13
rest 8
- unknownmusic0xee 237
+ stereopanning 237
octave 4
- note F#, 8
- unknownmusic0xee 255
+ F# 8
+ stereopanning 255
Music_Dungeon1_branch_7dee5::
notetype 12, 11, 2
@@ -18,22 +18,22 @@
Music_Dungeon1_branch_7dee8::
callchannel Music_Dungeon1_branch_7dfaa
loopchannel 3, Music_Dungeon1_branch_7dee8
- note E_, 1
- note D#, 1
- note B_, 1
- note A#, 1
- note G_, 1
- note G#, 1
+ E_ 1
+ D# 1
+ B_ 1
+ A# 1
+ G_ 1
+ G# 1
rest 1
- note A#, 1
- note E_, 1
- note D#, 1
- note B_, 1
- note A#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
+ A# 1
+ E_ 1
+ D# 1
+ B_ 1
+ A# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
Music_Dungeon1_branch_7deff::
callchannel Music_Dungeon1_branch_7dfaa
@@ -40,92 +40,92 @@
loopchannel 4, Music_Dungeon1_branch_7deff
callchannel Music_Dungeon1_branch_7dfd5
octave 3
- note G_, 1
- note F#, 1
- note E_, 1
- note G_, 1
+ G_ 1
+ F# 1
+ E_ 1
+ G_ 1
callchannel Music_Dungeon1_branch_7dfd5
octave 3
- note A_, 1
- note G_, 1
- note E_, 1
- note A_, 1
+ A_ 1
+ G_ 1
+ E_ 1
+ A_ 1
callchannel Music_Dungeon1_branch_7dfd5
octave 3
- note B_, 1
- note A_, 1
- note G_, 1
- note F#, 1
+ B_ 1
+ A_ 1
+ G_ 1
+ F# 1
notetype 12, 12, 3
- note G_, 4
- note F#, 4
- note E_, 4
- note D#, 4
+ G_ 4
+ F# 4
+ E_ 4
+ D# 4
notetype 12, 12, 2
callchannel Music_Dungeon1_branch_7dfc5
octave 3
- note B_, 3
+ B_ 3
callchannel Music_Dungeon1_branch_7dfc5
- note C_, 3
+ C_ 3
callchannel Music_Dungeon1_branch_7dfc5
- note C#, 3
+ C# 3
notetype 12, 12, 3
octave 3
- note G_, 4
- note F#, 4
- note E_, 4
- note D#, 4
- note E_, 4
- note D#, 4
- note C_, 4
+ G_ 4
+ F# 4
+ E_ 4
+ D# 4
+ E_ 4
+ D# 4
+ C_ 4
octave 2
- note B_, 4
+ B_ 4
notetype 12, 12, 2
- note B_, 1
- note A#, 1
- note G_, 1
- note A#, 1
- note B_, 1
- note A#, 1
- note G_, 1
- note A#, 1
+ B_ 1
+ A# 1
+ G_ 1
+ A# 1
+ B_ 1
+ A# 1
+ G_ 1
+ A# 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note G#, 1
- note B_, 1
+ B_ 1
+ G# 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note G#, 1
- note B_, 1
+ B_ 1
+ G# 1
+ B_ 1
octave 3
- note C#, 1
- note C_, 1
+ C# 1
+ C_ 1
octave 2
- note A_, 1
+ A_ 1
octave 3
- note C_, 1
- note C#, 1
- note C_, 1
+ C_ 1
+ C# 1
+ C_ 1
octave 2
- note A_, 1
+ A_ 1
octave 3
- note C_, 1
- note D_, 1
- note C#, 1
+ C_ 1
+ D_ 1
+ C# 1
octave 2
- note A#, 1
+ A# 1
octave 3
- note C#, 1
- note D_, 1
- note C#, 1
+ C# 1
+ D_ 1
+ C# 1
octave 2
- note A#, 1
+ A# 1
octave 3
- note C#, 1
+ C# 1
Music_Dungeon1_branch_7df6e::
rest 16
@@ -132,34 +132,34 @@
loopchannel 8, Music_Dungeon1_branch_7df6e
notetype 12, 12, 3
callchannel Music_Dungeon1_branch_7dfbb
- note B_, 2
- note G_, 2
+ B_ 2
+ G_ 2
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 2
- note A_, 4
- note F#, 2
+ G_ 2
+ A_ 4
+ F# 2
callchannel Music_Dungeon1_branch_7dfbb
- note A#, 2
- note G_, 2
- note B_, 4
- note G_, 2
- note F#, 2
- note G_, 2
- note D#, 2
+ A# 2
+ G_ 2
+ B_ 4
+ G_ 2
+ F# 2
+ G_ 2
+ D# 2
notetype 12, 12, 2
callchannel Music_Dungeon1_branch_7dfc5
octave 3
- note B_, 3
+ B_ 3
callchannel Music_Dungeon1_branch_7dfc5
- note C_, 3
+ C_ 3
callchannel Music_Dungeon1_branch_7dfc5
- note C#, 3
+ C# 3
notetype 12, 12, 7
octave 3
- note F#, 8
- note D#, 8
+ F# 8
+ D# 8
notetype 12, 12, 2
callchannel Music_Dungeon1_branch_7dfaa
callchannel Music_Dungeon1_branch_7dfaa
@@ -166,62 +166,62 @@
loopchannel 0, Music_Dungeon1_branch_7dee5
Music_Dungeon1_branch_7dfaa::
- note E_, 1
- note D#, 1
- note B_, 1
- note A#, 1
- note G_, 1
- note G#, 1
+ E_ 1
+ D# 1
+ B_ 1
+ A# 1
+ G_ 1
+ G# 1
rest 1
- note A#, 1
- note E_, 1
- note D#, 1
- note B_, 1
- note A#, 1
- note G_, 1
- note G#, 1
+ A# 1
+ E_ 1
+ D# 1
+ B_ 1
+ A# 1
+ G_ 1
+ G# 1
rest 1
- note A#, 1
+ A# 1
endchannel
Music_Dungeon1_branch_7dfbb::
octave 2
- note G_, 2
- note A#, 4
- note G_, 2
+ G_ 2
+ A# 4
+ G_ 2
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 2
- note A#, 2
+ G_ 2
+ A# 2
endchannel
Music_Dungeon1_branch_7dfc5::
octave 3
- note E_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note G_, 1
- note E_, 1
- note A_, 1
- note E_, 1
- note A#, 1
- note E_, 1
- note B_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ G_ 1
+ E_ 1
+ A_ 1
+ E_ 1
+ A# 1
+ E_ 1
+ B_ 1
+ E_ 1
octave 4
- note C_, 1
+ C_ 1
endchannel
Music_Dungeon1_branch_7dfd5::
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 4
octave 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
endchannel
@@ -231,10 +231,10 @@
duty 3
notetype 12, 0, 15
octave 4
- note G#, 8
+ G# 8
notetype 12, 4, 13
octave 5
- note D_, 8
+ D_ 8
Music_Dungeon1_branch_7dfeb::
notetype 12, 12, 2
@@ -243,23 +243,23 @@
callchannel Music_Dungeon1_branch_7e097
loopchannel 3, Music_Dungeon1_branch_7dfed
octave 2
- note E_, 1
- note E_, 1
- note B_, 1
+ E_ 1
+ E_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
rest 2
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note E_, 1
- note E_, 1
- note A_, 1
- note G_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note D#, 1
+ B_ 1
+ E_ 1
+ E_ 1
+ A_ 1
+ G_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ D# 1
Music_Dungeon1_branch_7e006::
callchannel Music_Dungeon1_branch_7e097
@@ -267,52 +267,52 @@
rest 2
callchannel Music_Dungeon1_branch_7e0ab
octave 3
- note C_, 4
+ C_ 4
callchannel Music_Dungeon1_branch_7e0ab
octave 3
- note C#, 4
+ C# 4
callchannel Music_Dungeon1_branch_7e0ab
octave 3
- note D#, 4
+ D# 4
notetype 12, 13, 3
octave 4
- note E_, 4
- note D#, 4
- note C_, 4
+ E_ 4
+ D# 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
notetype 12, 13, 2
callchannel Music_Dungeon1_branch_7e0b5
octave 3
- note F#, 4
+ F# 4
callchannel Music_Dungeon1_branch_7e0b5
octave 3
- note G_, 4
+ G_ 4
callchannel Music_Dungeon1_branch_7e0b5
octave 3
- note A#, 4
+ A# 4
notetype 12, 13, 3
octave 4
- note E_, 4
- note D#, 4
- note C_, 4
+ E_ 4
+ D# 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note B_, 4
- note G_, 4
- note F#, 2
+ B_ 4
+ G_ 4
+ F# 2
notetype 12, 13, 6
- note E_, 8
- note F_, 8
- note F#, 8
- note G_, 8
+ E_ 8
+ F_ 8
+ F# 8
+ G_ 8
notetype 12, 13, 2
callchannel Music_Dungeon1_branch_7e0ba
rest 10
- note E_, 1
+ E_ 1
rest 1
callchannel Music_Dungeon1_branch_7e0ba
rest 12
@@ -322,38 +322,38 @@
rest 14
notetype 12, 13, 3
callchannel Music_Dungeon1_branch_7e0cd
- note D#, 4
+ D# 4
callchannel Music_Dungeon1_branch_7e0cd
- note D#, 2
+ D# 2
rest 2
notetype 12, 13, 2
callchannel Music_Dungeon1_branch_7e0c0
rest 2
octave 3
- note F#, 4
+ F# 4
octave 2
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C_, 1
+ C_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note D_, 1
- note C#, 1
+ D_ 1
+ C# 1
rest 2
octave 3
- note G_, 4
+ G_ 4
callchannel Music_Dungeon1_branch_7e0c0
octave 3
- note A#, 4
+ A# 4
notetype 12, 13, 6
- note B_, 8
+ B_ 8
octave 4
- note D#, 8
+ D# 8
notetype 12, 13, 2
callchannel Music_Dungeon1_branch_7e097
callchannel Music_Dungeon1_branch_7e097
@@ -361,83 +361,83 @@
Music_Dungeon1_branch_7e097::
octave 2
- note E_, 1
- note E_, 1
- note B_, 1
+ E_ 1
+ E_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
rest 2
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note E_, 1
- note E_, 1
- note B_, 1
+ B_ 1
+ E_ 1
+ E_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
rest 2
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
+ B_ 1
endchannel
Music_Dungeon1_branch_7e0ab::
octave 2
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
octave 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
endchannel
Music_Dungeon1_branch_7e0b5::
octave 2
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 10
endchannel
Music_Dungeon1_branch_7e0ba::
octave 1
- note E_, 1
- note G_, 1
- note E_, 1
- note D#, 1
+ E_ 1
+ G_ 1
+ E_ 1
+ D# 1
endchannel
Music_Dungeon1_branch_7e0c0::
octave 2
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
octave 4
- note E_, 1
+ E_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note C#, 1
- note C_, 1
+ C# 1
+ C_ 1
endchannel
Music_Dungeon1_branch_7e0cd::
octave 3
- note E_, 6
- note G_, 6
- note E_, 4
- note A_, 6
+ E_ 6
+ G_ 6
+ E_ 4
+ A_ 6
octave 4
- note C_, 6
+ C_ 6
octave 3
- note B_, 4
- note G_, 6
- note A#, 6
- note F#, 4
- note E_, 6
- note F#, 6
+ B_ 4
+ G_ 6
+ A# 6
+ F# 4
+ E_ 6
+ F# 6
endchannel
@@ -446,42 +446,42 @@
vibrato 8, 2, 6
rest 14
octave 4
- note D_, 1
- note D#, 1
+ D_ 1
+ D# 1
Music_Dungeon1_branch_7e0e5::
callchannel Music_Dungeon1_branch_7e140
callchannel Music_Dungeon1_branch_7e140
octave 5
- note E_, 2
+ E_ 2
rest 4
octave 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
octave 4
- note F#, 4
+ F# 4
callchannel Music_Dungeon1_branch_7e154
octave 4
- note G_, 4
+ G_ 4
callchannel Music_Dungeon1_branch_7e154
octave 4
- note A_, 4
- note B_, 4
- note A#, 4
- note G_, 4
- note F#, 4
+ A_ 4
+ B_ 4
+ A# 4
+ G_ 4
+ F# 4
rest 6
callchannel Music_Dungeon1_branch_7e177
- note B_, 4
- note A#, 4
- note G_, 4
- note F#, 4
- note G_, 4
- note F#, 4
- note E_, 4
- note D#, 4
+ B_ 4
+ A# 4
+ G_ 4
+ F# 4
+ G_ 4
+ F# 4
+ E_ 4
+ D# 4
callchannel Music_Dungeon1_branch_7e15e
rest 12
callchannel Music_Dungeon1_branch_7e15e
@@ -488,7 +488,7 @@
rest 12
callchannel Music_Dungeon1_branch_7e15e
rest 10
- note E_, 1
+ E_ 1
rest 1
callchannel Music_Dungeon1_branch_7e15e
rest 12
@@ -496,17 +496,17 @@
rest 12
callchannel Music_Dungeon1_branch_7e15e
rest 10
- note D_, 1
- note D#, 1
+ D_ 1
+ D# 1
callchannel Music_Dungeon1_branch_7e164
callchannel Music_Dungeon1_branch_7e164
- note E_, 2
+ E_ 2
rest 4
callchannel Music_Dungeon1_branch_7e177
- note B_, 8
- note F#, 6
- note D_, 1
- note D#, 1
+ B_ 8
+ F# 6
+ D_ 1
+ D# 1
rest 16
rest 16
loopchannel 0, Music_Dungeon1_branch_7e0e5
@@ -513,86 +513,86 @@
Music_Dungeon1_branch_7e140::
octave 5
- note E_, 4
- note B_, 4
- note A#, 4
+ E_ 4
+ B_ 4
+ A# 4
octave 6
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 5
- note G#, 4
- note G_, 4
- note B_, 4
- note A#, 4
- note E_, 4
- note D#, 4
- note A_, 4
- note G#, 4
- note E_, 4
- note F#, 4
- note D#, 4
+ G# 4
+ G_ 4
+ B_ 4
+ A# 4
+ E_ 4
+ D# 4
+ A_ 4
+ G# 4
+ E_ 4
+ F# 4
+ D# 4
endchannel
Music_Dungeon1_branch_7e154::
octave 6
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 4
octave 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
endchannel
Music_Dungeon1_branch_7e15e::
octave 3
- note E_, 1
- note G_, 1
- note E_, 1
- note D#, 1
+ E_ 1
+ G_ 1
+ E_ 1
+ D# 1
endchannel
Music_Dungeon1_branch_7e164::
- note E_, 4
- note B_, 4
- note A#, 4
+ E_ 4
+ B_ 4
+ A# 4
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note G#, 4
- note G_, 4
- note B_, 4
- note A#, 4
- note E_, 4
- note D#, 4
- note A_, 4
- note G#, 4
- note E_, 4
- note F#, 4
- note D#, 4
+ G# 4
+ G_ 4
+ B_ 4
+ A# 4
+ E_ 4
+ D# 4
+ A_ 4
+ G# 4
+ E_ 4
+ F# 4
+ D# 4
endchannel
Music_Dungeon1_branch_7e177::
octave 4
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note F#, 4
+ F# 4
rest 6
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note G_, 4
+ G_ 4
rest 6
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note A#, 4
+ E_ 1
+ E_ 1
+ A# 4
endchannel
@@ -599,25 +599,25 @@
Music_Dungeon1_Ch4:: ; 7e18a (1f:618a)
dspeed 12
rest 14
- dnote 1, cymbal1
- dnote 1, cymbal1
+ cymbal1 1
+ cymbal1 1
Music_Dungeon1_branch_7e190::
callchannel Music_Dungeon1_branch_7e1f1
loopchannel 3, Music_Dungeon1_branch_7e190
- dnote 4, cymbal2
- dnote 4, cymbal1
- dnote 4, cymbal2
- dnote 2, cymbal1
- dnote 2, cymbal1
+ cymbal2 4
+ cymbal1 4
+ cymbal2 4
+ cymbal1 2
+ cymbal1 2
Music_Dungeon1_branch_7e1a1::
callchannel Music_Dungeon1_branch_7e1f1
loopchannel 3, Music_Dungeon1_branch_7e1a1
- dnote 4, cymbal2
- dnote 4, cymbal1
- dnote 4, cymbal2
- dnote 4, cymbal2
+ cymbal2 4
+ cymbal1 4
+ cymbal2 4
+ cymbal2 4
Music_Dungeon1_branch_7e1b0::
callchannel Music_Dungeon1_branch_7e1fa
@@ -628,12 +628,12 @@
callchannel Music_Dungeon1_branch_7e1fa
loopchannel 3, Music_Dungeon1_branch_7e1ba
callchannel Music_Dungeon1_branch_7e202
- dnote 4, snare7
- dnote 4, snare8
- dnote 4, snare8
+ snare7 4
+ snare8 4
+ snare8 4
rest 2
- dnote 2, snare7
- dnote 4, cymbal2
+ snare7 2
+ cymbal2 4
Music_Dungeon1_branch_7e1cf::
rest 16
@@ -643,34 +643,34 @@
Music_Dungeon1_branch_7e1d5::
callchannel Music_Dungeon1_branch_7e1fa
loopchannel 3, Music_Dungeon1_branch_7e1d5
- dnote 4, cymbal1
- dnote 4, cymbal1
- dnote 4, cymbal1
+ cymbal1 4
+ cymbal1 4
+ cymbal1 4
rest 2
- dnote 1, cymbal1
- dnote 1, cymbal1
+ cymbal1 1
+ cymbal1 1
callchannel Music_Dungeon1_branch_7e1f1
callchannel Music_Dungeon1_branch_7e1f1
loopchannel 0, Music_Dungeon1_branch_7e190
Music_Dungeon1_branch_7e1f1::
- dnote 4, cymbal2
- dnote 4, cymbal1
- dnote 4, cymbal2
- dnote 4, cymbal1
+ cymbal2 4
+ cymbal1 4
+ cymbal2 4
+ cymbal1 4
endchannel
Music_Dungeon1_branch_7e1fa::
- dnote 1, cymbal1
- dnote 1, cymbal1
+ cymbal1 1
+ cymbal1 1
rest 10
- dnote 4, cymbal3
+ cymbal3 4
endchannel
Music_Dungeon1_branch_7e202::
- dnote 4, snare7
- dnote 4, snare8
- dnote 4, snare8
- dnote 4, snare9
+ snare7 4
+ snare8 4
+ snare8 4
+ snare9 4
endchannel
-; 0x7e20b
\ No newline at end of file
+; 0x7e20b
--- a/audio/music/dungeon2.asm
+++ b/audio/music/dungeon2.asm
@@ -1,64 +1,64 @@
Music_Dungeon2_Ch1:: ; 7e887 (1f:6887)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
vibrato 10, 1, 4
Music_Dungeon2_branch_7e892::
notetype 12, 11, 2
octave 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note A#, 4
- note A#, 4
- note A#, 4
- note A#, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ A# 4
+ A# 4
+ A# 4
+ A# 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
octave 5
- note C#, 4
- note C#, 4
- note C#, 4
- note C#, 4
+ C# 4
+ C# 4
+ C# 4
+ C# 4
octave 3
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note A#, 4
- note A#, 4
- note A#, 4
- note A#, 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ A# 4
+ A# 4
+ A# 4
+ A# 4
octave 2
- note G_, 2
- note A#, 4
- note G_, 2
+ G_ 2
+ A# 4
+ G_ 2
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 2
- note A#, 2
- note B_, 2
- note G_, 2
+ G_ 2
+ A# 2
+ B_ 2
+ G_ 2
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 2
- note A_, 4
- note F#, 2
+ G_ 2
+ A_ 4
+ F# 2
loopchannel 2, Music_Dungeon2_branch_7e892
notetype 12, 1, 15
octave 3
- note E_, 16
- note C_, 16
- note D_, 16
+ E_ 16
+ C_ 16
+ D_ 16
octave 2
- note A#, 16
+ A# 16
rest 16
rest 16
rest 16
@@ -77,77 +77,77 @@
duty 3
notetype 12, 12, 2
octave 3
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note C_, 4
- note C_, 4
- note C_, 4
- note C_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note C_, 4
- note C_, 4
- note C_, 4
- note C_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ C_ 4
+ C_ 4
+ C_ 4
+ C_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ C_ 4
+ C_ 4
+ C_ 4
+ C_ 4
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
octave 4
- note F#, 4
- note F#, 4
- note F#, 4
- note F#, 4
- note D_, 4
- note D_, 4
- note D_, 4
- note D_, 4
- note G_, 4
- note G_, 4
- note G_, 4
- note F#, 4
+ F# 4
+ F# 4
+ F# 4
+ F# 4
+ D_ 4
+ D_ 4
+ D_ 4
+ D_ 4
+ G_ 4
+ G_ 4
+ G_ 4
+ F# 4
loopchannel 2, Music_Dungeon2_branch_7e8db
octave 3
- note E_, 2
- note G_, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note E_, 2
+ E_ 2
+ G_ 2
+ E_ 2
+ D# 2
+ E_ 2
+ E_ 2
octave 5
- note E_, 2
+ E_ 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note C#, 2
- note C_, 2
+ C# 2
+ C_ 2
octave 4
- note E_, 2
- note G_, 2
+ E_ 2
+ G_ 2
octave 3
- note A#, 2
- note C#, 2
- note A#, 2
- note A_, 2
- note A#, 2
- note G_, 2
+ A# 2
+ C# 2
+ A# 2
+ A_ 2
+ A# 2
+ G_ 2
octave 5
- note G_, 2
+ G_ 2
rest 2
- note F#, 2
+ F# 2
rest 2
- note F_, 2
+ F_ 2
rest 2
- note E_, 2
- note D#, 2
- note D_, 2
- note C#, 2
+ E_ 2
+ D# 2
+ D_ 2
+ C# 2
rest 16
rest 16
rest 16
@@ -155,10 +155,10 @@
notetype 12, 12, 7
duty 1
octave 4
- note E_, 16
- note D_, 16
- note C_, 16
- note D_, 16
+ E_ 16
+ D_ 16
+ C_ 16
+ D_ 16
loopchannel 0, Music_Dungeon2_branch_7e8db
@@ -169,92 +169,92 @@
Music_Dungeon2_branch_7e940::
callchannel Music_Dungeon2_branch_7e9d1
loopchannel 16, Music_Dungeon2_branch_7e940
- note E_, 4
+ E_ 4
rest 4
rest 4
- note E_, 4
- note C_, 4
+ E_ 4
+ C_ 4
rest 4
rest 4
- note C_, 4
- note D_, 4
+ C_ 4
+ D_ 4
rest 4
rest 4
- note D_, 4
+ D_ 4
octave 3
- note A#, 4
+ A# 4
rest 4
rest 4
- note A#, 4
+ A# 4
Music_Dungeon2_branch_7e958::
octave 5
- note E_, 2
+ E_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note A#, 2
+ A# 2
rest 2
octave 6
- note D_, 2
+ D_ 2
rest 2
- note C#, 2
+ C# 2
rest 2
octave 5
- note G#, 2
+ G# 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note A#, 2
+ A# 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note A_, 2
+ A_ 2
rest 2
- note G#, 2
+ G# 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note F#, 2
+ F# 2
rest 2
- note D#, 2
+ D# 2
rest 2
loopchannel 3, Music_Dungeon2_branch_7e958
octave 4
- note E_, 4
- note B_, 4
- note A#, 4
+ E_ 4
+ B_ 4
+ A# 4
octave 5
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 4
- note G#, 4
- note G_, 4
- note B_, 4
- note A#, 4
- note E_, 4
- note D#, 4
- note A_, 4
- note G#, 4
- note E_, 4
- note F#, 4
- note D#, 4
+ G# 4
+ G_ 4
+ B_ 4
+ A# 4
+ E_ 4
+ D# 4
+ A_ 4
+ G# 4
+ E_ 4
+ F# 4
+ D# 4
octave 3
- note E_, 16
- note C_, 16
- note D_, 16
+ E_ 16
+ C_ 16
+ D_ 16
octave 2
- note A#, 16
+ A# 16
octave 3
- note E_, 16
- note F_, 16
- note G_, 16
+ E_ 16
+ F_ 16
+ G_ 16
octave 3
- note B_, 16
+ B_ 16
rest 16
rest 16
rest 16
@@ -269,36 +269,36 @@
callchannel Music_Dungeon2_branch_7e9d1
loopchannel 0, Music_Dungeon2_branch_7e940
octave 2
- note G_, 2
- note A#, 4
- note G_, 2
+ G_ 2
+ A# 4
+ G_ 2
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 2
- note A_, 2
- note A#, 2
- note G_, 2
+ G_ 2
+ A_ 2
+ A# 2
+ G_ 2
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 2
- note A#, 2
- note G_, 2
+ G_ 2
+ A# 2
+ G_ 2
rest 2
endchannel
Music_Dungeon2_branch_7e9d1::
octave 4
- note E_, 2
+ E_ 2
rest 4
octave 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
octave 4
- note F#, 4
+ F# 4
endchannel
@@ -306,13 +306,13 @@
dspeed 12
Music_Dungeon2_branch_7e9dd::
- dnote 4, cymbal1
- dnote 4, cymbal2
- dnote 4, cymbal1
- dnote 4, snare8
- dnote 4, cymbal1
- dnote 4, cymbal2
- dnote 4, snare9
- dnote 4, snare7
+ cymbal1 4
+ cymbal2 4
+ cymbal1 4
+ snare8 4
+ cymbal1 4
+ cymbal2 4
+ snare9 4
+ snare7 4
loopchannel 0, Music_Dungeon2_branch_7e9dd
-; 0x7e9f1
\ No newline at end of file
+; 0x7e9f1
--- a/audio/music/dungeon3.asm
+++ b/audio/music/dungeon3.asm
@@ -1,8 +1,8 @@
Music_Dungeon3_Ch1:: ; 7e9f1 (1f:69f1)
- tempo 0, 160
- stereopanning 119
+ tempo 160
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
vibrato 8, 1, 4
Music_Dungeon3_branch_7e9fc::
@@ -12,17 +12,17 @@
callchannel Music_Dungeon3_branch_7eab2
loopchannel 3, Music_Dungeon3_branch_7e9fe
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
- note D#, 2
- note E_, 2
+ D# 2
+ G_ 2
+ D# 2
+ E_ 2
Music_Dungeon3_branch_7ea11::
callchannel Music_Dungeon3_branch_7eac1
@@ -32,32 +32,32 @@
callchannel Music_Dungeon3_branch_7eab2
loopchannel 4, Music_Dungeon3_branch_7ea18
octave 4
- note F_, 2
- note F_, 2
+ F_ 2
+ F_ 2
rest 2
- note F_, 2
- note E_, 2
- note E_, 2
- note D#, 2
- note D#, 2
+ F_ 2
+ E_ 2
+ E_ 2
+ D# 2
+ D# 2
rest 2
- note D#, 2
- note D_, 2
- note D_, 2
+ D# 2
+ D_ 2
+ D_ 2
callchannel Music_Dungeon3_branch_7eafc
octave 4
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
rest 2
- note D_, 2
- note D#, 2
- note D#, 2
- note E_, 2
- note E_, 2
+ D_ 2
+ D# 2
+ D# 2
+ E_ 2
+ E_ 2
rest 2
- note E_, 2
- note F_, 2
- note F_, 2
+ E_ 2
+ F_ 2
+ F_ 2
Music_Dungeon3_branch_7ea3c::
callchannel Music_Dungeon3_branch_7eace
@@ -67,84 +67,84 @@
callchannel Music_Dungeon3_branch_7eadd
loopchannel 3, Music_Dungeon3_branch_7ea43
octave 3
- note C#, 2
+ C# 2
octave 2
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 3
- note C#, 2
+ C# 2
octave 2
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note F_, 2
- note G#, 2
- note E_, 2
+ A_ 2
+ F_ 2
+ G# 2
+ E_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G#, 2
- note E_, 2
+ G# 2
+ E_ 2
octave 4
- note C_, 2
+ C_ 2
callchannel Music_Dungeon3_branch_7eaea
callchannel Music_Dungeon3_branch_7eaea
octave 3
- note G#, 2
- note E_, 2
+ G# 2
+ E_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G#, 2
- note E_, 2
+ G# 2
+ E_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G#, 2
- note E_, 2
+ G# 2
+ E_ 2
rest 16
rest 8
callchannel Music_Dungeon3_branch_7eaf7
@@ -151,7 +151,7 @@
callchannel Music_Dungeon3_branch_7eaf7
callchannel Music_Dungeon3_branch_7eaf7
callchannel Music_Dungeon3_branch_7eaf7
- note D#, 2
+ D# 2
rest 16
rest 16
loopchannel 0, Music_Dungeon3_branch_7e9fc
@@ -158,180 +158,180 @@
Music_Dungeon3_branch_7eab2::
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
+ D# 2
endchannel
Music_Dungeon3_branch_7eac1::
- note E_, 2
- note G#, 2
+ E_ 2
+ G# 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note E_, 2
- note G#, 2
+ E_ 2
+ G# 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note E_, 2
- note G#, 2
+ E_ 2
+ G# 2
endchannel
Music_Dungeon3_branch_7eace::
octave 3
- note D#, 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
- note D#, 2
+ G_ 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
- note D#, 2
+ G_ 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
endchannel
Music_Dungeon3_branch_7eadd::
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 3
- note C#, 2
+ C# 2
octave 2
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
octave 3
- note C#, 2
+ C# 2
octave 2
- note A_, 2
- note F_, 2
+ A_ 2
+ F_ 2
endchannel
Music_Dungeon3_branch_7eaea::
octave 3
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G#, 2
- note E_, 2
+ G# 2
+ E_ 2
octave 4
- note C_, 2
+ C_ 2
endchannel
Music_Dungeon3_branch_7eaf7::
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
endchannel
Music_Dungeon3_branch_7eafc::
- tempo 0, 168
+ tempo 168
octave 1
- note A#, 1
- note B_, 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- tempo 0, 176
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ tempo 176
octave 1
- note A#, 1
- note B_, 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- tempo 0, 184
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ tempo 184
octave 1
- note A#, 1
- note B_, 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- tempo 0, 192
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ tempo 192
octave 1
- note A_, 1
- note A#, 1
- note B_, 1
+ A_ 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- tempo 0, 200
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ tempo 200
octave 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- tempo 0, 208
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ tempo 208
octave 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- note D_, 1
- tempo 0, 216
+ C_ 1
+ C# 1
+ D_ 1
+ tempo 216
octave 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- note C#, 1
- tempo 0, 224
+ C_ 1
+ C# 1
+ tempo 224
octave 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 2
- note C_, 1
- tempo 0, 160
+ C_ 1
+ tempo 160
endchannel
@@ -342,91 +342,91 @@
Music_Dungeon3_branch_7eb6d::
notetype 12, 13, 3
octave 4
- note D#, 6
- note C#, 6
+ D# 6
+ C# 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ C# 2
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ C# 2
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 3
- note B_, 2
- note A#, 2
- note B_, 6
+ B_ 2
+ A# 2
+ B_ 6
octave 4
- note C#, 8
+ C# 8
rest 2
- note G#, 6
- note F#, 6
- note E_, 2
- note F#, 2
- note G#, 2
+ G# 6
+ F# 6
+ E_ 2
+ F# 2
+ G# 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G#, 2
- note F#, 6
- note E_, 2
- note F#, 2
- note G#, 2
+ G# 2
+ F# 6
+ E_ 2
+ F# 2
+ G# 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G#, 2
- note F#, 6
- note E_, 2
- note D#, 2
- note E_, 6
- note F#, 6
- note E_, 4
- note D#, 6
- note C#, 6
+ G# 2
+ F# 6
+ E_ 2
+ D# 2
+ E_ 6
+ F# 6
+ E_ 4
+ D# 6
+ C# 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ C# 2
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ C# 2
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 3
- note B_, 2
- note A#, 2
- note B_, 6
+ B_ 2
+ A# 2
+ B_ 6
octave 4
- note C#, 8
+ C# 8
rest 2
- note G#, 2
- note G#, 2
+ G# 2
+ G# 2
rest 2
- note G#, 2
- note A_, 2
- note A_, 2
- note A#, 2
- note A#, 2
+ G# 2
+ A_ 2
+ A_ 2
+ A# 2
+ A# 2
rest 2
- note A#, 2
- note B_, 2
- note B_, 2
+ A# 2
+ B_ 2
+ B_ 2
rest 8
rest 8
rest 8
@@ -436,174 +436,174 @@
rest 8
rest 8
octave 4
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
rest 2
- note B_, 2
- note A#, 2
- note A#, 2
- note A_, 2
- note A_, 2
+ B_ 2
+ A# 2
+ A# 2
+ A_ 2
+ A_ 2
rest 2
- note A_, 2
- note G#, 2
- note G#, 2
- note C#, 8
+ A_ 2
+ G# 2
+ G# 2
+ C# 8
rest 2
octave 3
- note B_, 6
- note A#, 2
- note B_, 2
+ B_ 6
+ A# 2
+ B_ 2
octave 4
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ C# 2
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 6
- note G_, 6
+ C# 2
+ D# 6
+ G_ 6
octave 3
- note G_, 8
+ G_ 8
rest 2
- note F_, 6
- note E_, 2
- note F_, 2
- note A_, 2
+ F_ 6
+ E_ 2
+ F_ 2
+ A_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note G_, 6
- note F_, 2
- note G_, 2
- note A_, 2
+ A_ 2
+ G_ 6
+ F_ 2
+ G_ 2
+ A_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
- note G_, 6
- note A_, 6
+ A_ 2
+ G_ 6
+ A_ 6
octave 4
- note C#, 6
- note G_, 8
+ C# 6
+ G_ 8
rest 2
- note F_, 6
- note E_, 2
- note F_, 2
- note A_, 2
+ F_ 6
+ E_ 2
+ F_ 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
- note G_, 6
- note A_, 2
+ A_ 2
+ G_ 6
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
- note G_, 6
- note A_, 6
+ A_ 2
+ G_ 6
+ A_ 6
octave 5
- note C#, 6
+ C# 6
octave 4
- note F#, 8
+ F# 8
rest 2
- note E_, 6
- note D#, 2
- note E_, 2
- note G#, 2
+ E_ 6
+ D# 2
+ E_ 2
+ G# 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G#, 2
- note F#, 6
- note E_, 2
- note F#, 2
- note G#, 2
+ G# 2
+ F# 6
+ E_ 2
+ F# 2
+ G# 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G#, 2
- note F#, 6
- note G#, 6
+ G# 2
+ F# 6
+ G# 6
octave 5
- note C_, 6
+ C_ 6
octave 3
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
- note D#, 2
- note G_, 2
- note D#, 2
- note C#, 6
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
+ D# 2
+ G_ 2
+ D# 2
+ C# 6
octave 2
- note E_, 2
- note G#, 2
+ E_ 2
+ G# 2
octave 3
- note C_, 2
- note E_, 2
- note G#, 2
+ C_ 2
+ E_ 2
+ G# 2
octave 4
- note C_, 2
- note E_, 2
- note G#, 2
- note C_, 2
- note E_, 2
- note G#, 2
- note C_, 2
- note E_, 2
- note G#, 2
- note C_, 2
- note E_, 2
- note G#, 2
- note C_, 2
- note E_, 2
- note G#, 2
- note C_, 2
- note E_, 2
- note G#, 2
- note C_, 2
- note D#, 2
+ C_ 2
+ E_ 2
+ G# 2
+ C_ 2
+ E_ 2
+ G# 2
+ C_ 2
+ E_ 2
+ G# 2
+ C_ 2
+ E_ 2
+ G# 2
+ C_ 2
+ E_ 2
+ G# 2
+ C_ 2
+ E_ 2
+ G# 2
+ C_ 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
+ D# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
- note G_, 2
+ D# 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D#, 2
+ D# 2
loopchannel 0, Music_Dungeon3_branch_7eb6d
@@ -623,66 +623,66 @@
rest 12
notetype 6, 1, 0
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
rest 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
rest 16
rest 16
rest 10
octave 5
- note E_, 8
+ E_ 8
octave 4
- note B_, 8
+ B_ 8
octave 5
- note D#, 8
+ D# 8
octave 4
- note A#, 8
+ A# 8
octave 5
- note D_, 8
+ D_ 8
octave 4
- note A_, 8
+ A_ 8
octave 5
- note C#, 8
+ C# 8
octave 4
- note G#, 8
+ G# 8
octave 5
- note C_, 8
+ C_ 8
octave 4
- note G_, 8
- note B_, 8
- note F#, 8
- note A#, 8
- note F_, 8
- note A_, 8
- note E_, 8
+ G_ 8
+ B_ 8
+ F# 8
+ A# 8
+ F_ 8
+ A_ 8
+ E_ 8
rest 16
rest 16
rest 8
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
rest 2
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
+ B_ 1
rest 10
rest 16
notetype 12, 1, 0
@@ -754,4 +754,4 @@
rest 16
rest 10
endchannel
-; 0x7ed0f
\ No newline at end of file
+; 0x7ed0f
--- a/audio/music/finalbattle.asm
+++ b/audio/music/finalbattle.asm
@@ -1,383 +1,383 @@
Music_FinalBattle_Ch1:: ; 233a6 (8:73a6)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 2
octave 3
- note F#, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note G_, 1
+ F# 1
+ F_ 1
+ F# 1
+ G_ 1
+ F# 1
+ G_ 1
+ G# 1
+ G_ 1
notetype 12, 10, 2
- note G#, 1
- note A_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ G# 1
+ A_ 1
+ G# 1
+ A_ 1
+ A# 1
+ A_ 1
+ A# 1
+ B_ 1
notetype 12, 9, 2
- note A#, 1
- note B_, 1
+ A# 1
+ B_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note C_, 1
- note C#, 1
+ C_ 1
+ C# 1
+ C_ 1
+ C# 1
notetype 12, 8, 2
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
notetype 12, 12, 1
octave 3
- note E_, 1
- note E_, 7
- note F_, 1
- note F_, 7
- note G_, 1
- note G_, 7
- note F_, 1
- note F_, 7
- note E_, 1
- note E_, 7
- note F_, 1
- note F_, 7
- note G_, 1
- note G_, 7
- note G#, 1
- note G#, 3
- note D#, 4
+ E_ 1
+ E_ 7
+ F_ 1
+ F_ 7
+ G_ 1
+ G_ 7
+ F_ 1
+ F_ 7
+ E_ 1
+ E_ 7
+ F_ 1
+ F_ 7
+ G_ 1
+ G_ 7
+ G# 1
+ G# 3
+ D# 4
notetype 12, 12, 1
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 11, 3
- note E_, 4
+ E_ 4
notetype 12, 12, 1
- note F_, 1
- note F_, 3
+ F_ 1
+ F_ 3
notetype 12, 11, 3
- note F_, 4
+ F_ 4
notetype 12, 12, 1
- note G_, 1
- note G_, 3
+ G_ 1
+ G_ 3
notetype 12, 11, 3
- note G_, 4
+ G_ 4
notetype 12, 12, 1
- note F_, 1
- note F_, 3
+ F_ 1
+ F_ 3
notetype 12, 11, 3
- note F_, 4
+ F_ 4
notetype 12, 12, 1
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 11, 3
- note E_, 4
+ E_ 4
notetype 12, 12, 1
- note F_, 1
- note F_, 3
+ F_ 1
+ F_ 3
notetype 12, 11, 3
- note F_, 4
+ F_ 4
notetype 12, 12, 1
- note G_, 1
- note G_, 3
+ G_ 1
+ G_ 3
notetype 12, 11, 3
- note G_, 4
+ G_ 4
notetype 12, 12, 1
- note G#, 1
- note G#, 3
+ G# 1
+ G# 3
notetype 12, 11, 7
- note D#, 4
+ D# 4
Music_FinalBattle_branch_23429::
notetype 12, 11, 7
octave 3
- note E_, 4
- note B_, 4
- note D#, 4
- note A#, 4
- note D_, 4
- note A_, 4
+ E_ 4
+ B_ 4
+ D# 4
+ A# 4
+ D_ 4
+ A_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note F_, 4
- note F#, 4
+ F# 4
+ F_ 4
+ F# 4
notetype 12, 11, 1
- note F#, 2
- note F_, 1
- note F#, 1
- note A_, 1
- note F#, 2
- note F#, 1
+ F# 2
+ F_ 1
+ F# 1
+ A_ 1
+ F# 2
+ F# 1
notetype 12, 11, 7
octave 2
- note B_, 6
+ B_ 6
notetype 12, 10, 0
octave 3
- note D_, 6
+ D_ 6
notetype 12, 11, 7
- note F#, 4
- note E_, 4
- note B_, 4
- note D#, 4
- note A#, 4
- note D_, 4
- note A_, 4
+ F# 4
+ E_ 4
+ B_ 4
+ D# 4
+ A# 4
+ D_ 4
+ A_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note F_, 4
- note F#, 12
- note A#, 4
+ F# 4
+ F_ 4
+ F# 12
+ A# 4
notetype 12, 5, 14
- note B_, 12
+ B_ 12
notetype 12, 11, 2
- note E_, 3
- note E_, 3
- note E_, 2
- note E_, 1
- note F#, 1
- note E_, 1
- note B_, 1
- note F#, 1
- note E_, 1
- note F#, 1
- note B_, 1
- note F#, 1
- note E_, 1
- note F#, 1
- note B_, 1
- note F#, 1
- note E_, 1
- note F#, 1
- note B_, 1
- note F#, 1
+ E_ 3
+ E_ 3
+ E_ 2
+ E_ 1
+ F# 1
+ E_ 1
+ B_ 1
+ F# 1
+ E_ 1
+ F# 1
+ B_ 1
+ F# 1
+ E_ 1
+ F# 1
+ B_ 1
+ F# 1
+ E_ 1
+ F# 1
+ B_ 1
+ F# 1
notetype 12, 12, 2
- note E_, 1
- note F#, 1
- note B_, 1
- note F#, 1
+ E_ 1
+ F# 1
+ B_ 1
+ F# 1
notetype 12, 13, 2
- note E_, 1
- note F#, 1
- note B_, 1
+ E_ 1
+ F# 1
+ B_ 1
notetype 12, 12, 1
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 3
notetype 12, 11, 5
- note D_, 4
+ D_ 4
notetype 12, 12, 1
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 11, 5
- note F_, 4
+ F_ 4
notetype 12, 12, 1
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 11, 5
- note D_, 4
+ D_ 4
notetype 12, 12, 1
- note E_, 1
+ E_ 1
notetype 12, 11, 7
- note E_, 7
+ E_ 7
notetype 12, 12, 1
- note E_, 2
- note B_, 1
- note A_, 1
- note E_, 2
- note B_, 1
- note A_, 1
- note E_, 2
- note B_, 1
- note A_, 1
- note E_, 2
- note B_, 1
- note A_, 3
- note E_, 1
- note D_, 3
- note E_, 1
- note D_, 3
- note E_, 1
- note D_, 3
- note E_, 1
- note D_, 1
- note F_, 2
+ E_ 2
+ B_ 1
+ A_ 1
+ E_ 2
+ B_ 1
+ A_ 1
+ E_ 2
+ B_ 1
+ A_ 1
+ E_ 2
+ B_ 1
+ A_ 3
+ E_ 1
+ D_ 3
+ E_ 1
+ D_ 3
+ E_ 1
+ D_ 3
+ E_ 1
+ D_ 1
+ F_ 2
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
- note F_, 2
+ B_ 1
+ F_ 2
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
- note F_, 2
+ B_ 1
+ F_ 2
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
- note F_, 2
+ B_ 1
+ F_ 2
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 3
- note F_, 1
- note E_, 3
- note F_, 1
- note E_, 3
- note F_, 1
- note E_, 3
- note F_, 1
- note E_, 1
- note F#, 2
+ B_ 3
+ F_ 1
+ E_ 3
+ F_ 1
+ E_ 3
+ F_ 1
+ E_ 3
+ F_ 1
+ E_ 1
+ F# 2
octave 4
- note C#, 1
- note C_, 1
+ C# 1
+ C_ 1
octave 3
- note F#, 2
+ F# 2
octave 4
- note C#, 1
- note C_, 1
+ C# 1
+ C_ 1
octave 3
- note F#, 2
+ F# 2
octave 4
- note C#, 1
- note C_, 1
+ C# 1
+ C_ 1
octave 3
- note F#, 2
+ F# 2
octave 4
- note C#, 1
- note C_, 3
+ C# 1
+ C_ 3
octave 3
- note F#, 1
- note F_, 3
- note F#, 1
- note F_, 3
- note F#, 1
- note F_, 3
- note F#, 1
- note F_, 3
- note F#, 1
- note F_, 3
- note F#, 1
- note F_, 3
- note F#, 1
- note F_, 3
+ F# 1
+ F_ 3
+ F# 1
+ F_ 3
+ F# 1
+ F_ 3
+ F# 1
+ F_ 3
+ F# 1
+ F_ 3
+ F# 1
+ F_ 3
+ F# 1
+ F_ 3
notetype 12, 11, 7
octave 4
- note C_, 2
+ C_ 2
notetype 12, 11, 0
- note C#, 8
+ C# 8
notetype 12, 11, 7
- note C#, 8
+ C# 8
notetype 12, 10, 0
octave 3
- note F#, 8
- note F#, 8
+ F# 8
+ F# 8
notetype 12, 11, 0
octave 3
- note A_, 8
+ A_ 8
notetype 12, 11, 7
- note A_, 8
- note G_, 4
- note B_, 12
+ A_ 8
+ G_ 4
+ B_ 12
notetype 12, 11, 0
- note A_, 8
+ A_ 8
notetype 12, 11, 7
- note A_, 8
+ A_ 8
notetype 12, 11, 0
- note E_, 8
+ E_ 8
notetype 12, 11, 7
- note E_, 8
+ E_ 8
notetype 12, 11, 0
- note A#, 8
+ A# 8
notetype 12, 11, 7
- note A#, 8
+ A# 8
octave 4
- note F_, 8
+ F_ 8
octave 3
- note A#, 8
+ A# 8
octave 4
- note C#, 4
- note E_, 12
+ C# 4
+ E_ 12
octave 3
- note A_, 4
+ A_ 4
octave 4
- note C#, 12
+ C# 12
notetype 12, 4, 0
callchannel Music_FinalBattle_branch_23710
callchannel Music_FinalBattle_branch_23710
notetype 12, 11, 7
octave 3
- note E_, 4
- note B_, 4
- note D#, 4
- note A#, 4
- note D_, 4
- note A_, 4
+ E_ 4
+ B_ 4
+ D# 4
+ A# 4
+ D_ 4
+ A_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note F_, 4
- note F#, 12
+ F# 4
+ F_ 4
+ F# 12
notetype 12, 11, 0
- note A_, 8
- note G_, 8
+ A_ 8
+ G_ 8
notetype 12, 11, 7
- note E_, 4
- note B_, 4
- note D#, 4
- note A#, 4
- note D_, 4
- note A_, 4
+ E_ 4
+ B_ 4
+ D# 4
+ A# 4
+ D_ 4
+ A_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note F_, 4
- note F#, 12
+ F# 4
+ F_ 4
+ F# 12
notetype 12, 11, 0
- note A_, 8
+ A_ 8
notetype 12, 11, 7
octave 4
- note C_, 8
+ C_ 8
notetype 12, 11, 0
octave 3
- note B_, 8
+ B_ 8
notetype 12, 11, 7
- note B_, 8
+ B_ 8
notetype 12, 11, 0
octave 4
- note E_, 8
+ E_ 8
notetype 12, 11, 7
- note E_, 8
+ E_ 8
loopchannel 0, Music_FinalBattle_branch_23429
@@ -386,84 +386,84 @@
vibrato 8, 2, 5
notetype 12, 12, 2
octave 5
- note C_, 1
+ C_ 1
octave 4
- note G#, 1
- note B_, 1
- note F#, 1
- note A_, 1
- note E_, 1
- note G_, 1
+ G# 1
+ B_ 1
+ F# 1
+ A_ 1
+ E_ 1
+ G_ 1
octave 5
- note C_, 1
+ C_ 1
octave 4
- note F_, 1
- note C#, 1
- note E_, 1
- note C_, 1
- note D#, 1
+ F_ 1
+ C# 1
+ E_ 1
+ C_ 1
+ D# 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note D_, 1
+ D_ 1
octave 5
- note C_, 1
+ C_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note G#, 1
- note B_, 1
- note F#, 1
- note A#, 1
- note F_, 1
- note A_, 1
+ G# 1
+ B_ 1
+ F# 1
+ A# 1
+ F_ 1
+ A_ 1
octave 5
- note C_, 1
+ C_ 1
octave 3
- note G#, 1
- note D#, 1
- note G_, 1
- note D_, 1
- note F_, 1
- note C#, 1
- note E_, 1
+ G# 1
+ D# 1
+ G_ 1
+ D_ 1
+ F_ 1
+ C# 1
+ E_ 1
octave 5
- note C_, 1
+ C_ 1
notetype 12, 12, 1
octave 4
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 7
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 7
+ E_ 1
+ E_ 3
notetype 12, 12, 2
octave 5
- note E_, 4
+ E_ 4
notetype 12, 12, 1
octave 4
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 12, 2
octave 5
- note E_, 4
+ E_ 4
notetype 12, 12, 1
octave 4
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 12, 2
octave 5
- note E_, 4
+ E_ 4
notetype 12, 12, 1
octave 4
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 12, 2
- note D#, 4
+ D# 4
callchannel Music_FinalBattle_branch_23704
callchannel Music_FinalBattle_branch_23704
callchannel Music_FinalBattle_branch_23704
@@ -473,203 +473,203 @@
callchannel Music_FinalBattle_branch_23704
notetype 12, 12, 1
octave 4
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 4, 10
octave 3
- note G#, 4
+ G# 4
Music_FinalBattle_branch_235e6::
notetype 12, 13, 7
octave 4
- note E_, 8
- note D#, 8
- note D_, 8
+ E_ 8
+ D# 8
+ D_ 8
octave 3
- note B_, 8
+ B_ 8
notetype 12, 13, 7
- note A#, 4
- note B_, 12
+ A# 4
+ B_ 12
notetype 12, 11, 1
- note F_, 2
- note F#, 3
- note A_, 1
- note B_, 1
- note A_, 1
+ F_ 2
+ F# 3
+ A_ 1
+ B_ 1
+ A_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 2
- note A_, 1
- note B_, 1
- note B_, 1
- note A_, 1
- note A#, 1
+ B_ 2
+ A_ 1
+ B_ 1
+ B_ 1
+ A_ 1
+ A# 1
notetype 12, 13, 7
octave 4
- note E_, 8
- note D#, 8
- note D_, 8
+ E_ 8
+ D# 8
+ D_ 8
octave 3
- note B_, 8
+ B_ 8
notetype 12, 13, 7
- note A#, 4
- note B_, 12
+ A# 4
+ B_ 12
octave 4
- note D#, 4
- note E_, 12
+ D# 4
+ E_ 12
notetype 12, 10, 0
octave 3
- note B_, 8
+ B_ 8
octave 4
- note D_, 8
- note F_, 8
- note D_, 8
+ D_ 8
+ F_ 8
+ D_ 8
notetype 12, 13, 1
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 12, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 13, 1
octave 4
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 12, 4
octave 3
- note F_, 4
+ F_ 4
notetype 12, 13, 1
octave 4
- note E_, 1
- note E_, 3
+ E_ 1
+ E_ 3
notetype 12, 12, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 13, 1
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
notetype 12, 12, 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note D_, 2
+ D_ 2
notetype 12, 12, 2
octave 4
- note E_, 1
- note E_, 1
- note D_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D_, 1
- note F_, 1
- note E_, 1
- note E_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note F#, 1
- note E_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ D_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D_ 1
+ F_ 1
+ E_ 1
+ E_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ F# 1
+ E_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ E_ 1
notetype 12, 12, 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note D_, 2
+ D_ 2
notetype 12, 13, 7
octave 4
- note E_, 4
- note F_, 2
- note F#, 12
+ E_ 4
+ F_ 2
+ F# 12
notetype 12, 12, 2
octave 3
- note B_, 2
- note B_, 4
- note B_, 2
- note B_, 4
- note B_, 2
+ B_ 2
+ B_ 4
+ B_ 2
+ B_ 4
+ B_ 2
notetype 12, 13, 7
octave 4
- note F_, 4
- note F#, 2
- note G_, 12
+ F_ 4
+ F# 2
+ G_ 12
notetype 12, 12, 2
- note C_, 2
- note C_, 4
- note C_, 2
- note C_, 4
- note C_, 2
+ C_ 2
+ C_ 4
+ C_ 2
+ C_ 4
+ C_ 2
notetype 12, 13, 7
- note F#, 4
- note G_, 2
- note G#, 12
+ F# 4
+ G_ 2
+ G# 12
notetype 12, 8, 2
- note C#, 2
- note C#, 4
+ C# 2
+ C# 4
notetype 12, 10, 2
- note C#, 2
- note C#, 4
- note C#, 4
+ C# 2
+ C# 4
+ C# 4
notetype 12, 13, 2
- note C#, 2
- note C#, 4
+ C# 2
+ C# 4
notetype 12, 15, 2
- note C#, 2
- note C#, 4
+ C# 2
+ C# 4
notetype 12, 12, 4
- note E_, 1
- note F_, 1
+ E_ 1
+ F_ 1
notetype 12, 12, 0
- note F#, 12
+ F# 12
notetype 12, 12, 7
- note F#, 4
+ F# 4
notetype 12, 1, 15
octave 3
- note F#, 8
+ F# 8
notetype 12, 9, 0
- note F#, 8
+ F# 8
notetype 12, 12, 7
octave 4
- note C#, 4
+ C# 4
notetype 12, 12, 0
- note D_, 12
- note D_, 8
+ D_ 12
+ D_ 8
notetype 12, 12, 7
- note D_, 8
+ D_ 8
notetype 12, 12, 0
- note E_, 8
+ E_ 8
notetype 12, 12, 7
- note E_, 8
+ E_ 8
notetype 12, 12, 0
octave 3
- note A_, 8
+ A_ 8
notetype 12, 12, 7
- note A_, 8
+ A_ 8
notetype 12, 12, 0
octave 4
- note F_, 8
+ F_ 8
notetype 12, 12, 7
- note F_, 8
+ F_ 8
octave 5
- note C_, 8
+ C_ 8
octave 4
- note A#, 8
+ A# 8
notetype 12, 12, 0
- note A_, 16
- note A_, 8
+ A_ 16
+ A_ 8
notetype 12, 12, 7
- note A_, 8
+ A_ 8
notetype 12, 12, 5
callchannel Music_FinalBattle_branch_23710
notetype 12, 11, 1
@@ -676,65 +676,65 @@
callchannel Music_FinalBattle_branch_23710
notetype 12, 13, 7
octave 4
- note E_, 8
- note D#, 8
- note D_, 8
+ E_ 8
+ D# 8
+ D_ 8
octave 3
- note B_, 8
- note A#, 4
- note B_, 12
+ B_ 8
+ A# 4
+ B_ 12
notetype 12, 12, 7
octave 4
- note D_, 8
+ D_ 8
notetype 12, 4, 12
- note C_, 8
+ C_ 8
notetype 12, 13, 7
- note E_, 8
- note D#, 8
- note D_, 8
+ E_ 8
+ D# 8
+ D_ 8
octave 3
- note B_, 8
- note A#, 4
- note B_, 12
+ B_ 8
+ A# 4
+ B_ 12
notetype 12, 5, 13
octave 4
- note D_, 8
+ D_ 8
notetype 12, 12, 0
- note F_, 8
+ F_ 8
notetype 12, 12, 0
- note E_, 8
+ E_ 8
notetype 12, 12, 7
- note E_, 8
- note A#, 4
- note B_, 12
+ E_ 8
+ A# 4
+ B_ 12
loopchannel 0, Music_FinalBattle_branch_235e6
Music_FinalBattle_branch_23704::
octave 4
- note E_, 1
- note E_, 1
- note G_, 1
+ E_ 1
+ E_ 1
+ G_ 1
octave 5
- note C_, 1
- note E_, 1
- note C_, 1
+ C_ 1
+ E_ 1
+ C_ 1
octave 4
- note G_, 1
- note F_, 1
+ G_ 1
+ F_ 1
endchannel
Music_FinalBattle_branch_23710::
octave 4
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note C#, 2
- note F#, 2
- note D_, 2
+ C# 2
+ D_ 2
+ C# 2
+ F# 2
+ D_ 2
endchannel
@@ -741,605 +741,605 @@
Music_FinalBattle_Ch3:: ; 2371c (8:771c)
notetype 12, 1, 1
octave 4
- note E_, 4
+ E_ 4
octave 5
- note E_, 4
+ E_ 4
octave 4
- note F_, 4
+ F_ 4
octave 5
- note D#, 4
+ D# 4
octave 4
- note G_, 4
+ G_ 4
octave 5
- note D_, 4
+ D_ 4
octave 4
- note G#, 4
- note B_, 4
- note E_, 1
- note E_, 1
+ G# 4
+ B_ 4
+ E_ 1
+ E_ 1
rest 6
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 6
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 6
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
- note D#, 4
- note E_, 1
- note E_, 1
+ D# 4
+ E_ 1
+ E_ 1
rest 2
- note B_, 4
- note E_, 1
- note E_, 1
+ B_ 4
+ E_ 1
+ E_ 1
rest 2
octave 5
- note C_, 4
+ C_ 4
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
octave 5
- note D_, 4
+ D_ 4
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
octave 5
- note C_, 4
+ C_ 4
octave 4
- note A#, 2
- note E_, 1
- note E_, 1
+ A# 2
+ E_ 1
+ E_ 1
rest 2
- note B_, 4
- note E_, 1
- note E_, 1
+ B_ 4
+ E_ 1
+ E_ 1
rest 2
octave 5
- note C_, 4
+ C_ 4
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
octave 5
- note D_, 4
+ D_ 4
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
octave 5
- note C_, 4
- note D_, 2
+ C_ 4
+ D_ 2
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
- note B_, 4
- note E_, 1
- note E_, 1
+ B_ 4
+ E_ 1
+ E_ 1
rest 2
octave 5
- note C_, 4
+ C_ 4
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
octave 5
- note D_, 4
+ D_ 4
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
- note E_, 1
- note D#, 1
- note E_, 1
- note G_, 1
+ E_ 1
+ D# 1
+ E_ 1
+ G_ 1
Music_FinalBattle_branch_2377d::
octave 4
- note E_, 1
+ E_ 1
octave 3
- note E_, 1
+ E_ 1
rest 2
octave 4
- note F#, 4
- note D#, 1
+ F# 4
+ D# 1
octave 3
- note D#, 1
+ D# 1
rest 2
octave 4
- note F_, 4
- note D_, 1
+ F_ 4
+ D_ 1
octave 3
- note D_, 1
+ D_ 1
rest 2
octave 4
- note E_, 4
- note F#, 1
+ E_ 4
+ F# 1
octave 3
- note F#, 1
+ F# 1
rest 2
octave 4
- note F#, 4
- note F_, 4
+ F# 4
+ F_ 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
- note E_, 1
+ F# 2
+ E_ 1
octave 3
- note E_, 1
+ E_ 1
rest 2
octave 4
- note F#, 4
- note D#, 1
+ F# 4
+ D# 1
octave 3
- note D#, 1
+ D# 1
rest 2
octave 4
- note F_, 4
- note D_, 1
+ F_ 4
+ D_ 1
octave 3
- note D_, 1
+ D_ 1
rest 2
octave 4
- note E_, 4
- note F#, 1
+ E_ 4
+ F# 1
octave 3
- note F#, 1
+ F# 1
rest 2
octave 4
- note F#, 4
- note F_, 4
+ F# 4
+ F_ 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
- note E_, 1
- note D#, 1
- note E_, 1
- note F#, 1
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 1
- note E_, 1
+ F# 2
+ E_ 1
+ D# 1
+ E_ 1
+ F# 1
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 1
+ E_ 1
rest 2
- note D_, 4
- note E_, 1
- note E_, 1
+ D_ 4
+ E_ 1
+ E_ 1
rest 2
- note F_, 4
- note E_, 1
- note E_, 1
+ F_ 4
+ E_ 1
+ E_ 1
rest 2
- note D_, 4
- note E_, 1
- note E_, 1
+ D_ 4
+ E_ 1
+ E_ 1
octave 3
- note B_, 6
+ B_ 6
octave 4
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
rest 2
- note D_, 4
- note E_, 1
- note E_, 1
+ D_ 4
+ E_ 1
+ E_ 1
rest 2
- note F_, 4
- note E_, 1
- note E_, 1
+ F_ 4
+ E_ 1
+ E_ 1
rest 2
- note D_, 4
- note E_, 1
- note E_, 1
+ D_ 4
+ E_ 1
+ E_ 1
octave 3
- note B_, 6
+ B_ 6
octave 4
- note E_, 2
+ E_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note E_, 2
+ E_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note E_, 2
+ E_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note E_, 2
+ E_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note E_, 2
- note B_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note B_, 2
+ E_ 2
+ B_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ B_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note B_, 2
- note F_, 2
+ B_ 2
+ F_ 2
octave 5
- note D#, 2
+ D# 2
octave 4
- note F_, 2
+ F_ 2
octave 5
- note D#, 2
+ D# 2
octave 4
- note F_, 2
+ F_ 2
octave 5
- note D#, 2
+ D# 2
octave 4
- note F_, 2
+ F_ 2
octave 5
- note D#, 2
+ D# 2
octave 4
- note F_, 2
+ F_ 2
octave 5
- note C_, 2
- note C_, 2
+ C_ 2
+ C_ 2
octave 4
- note F_, 2
+ F_ 2
octave 5
- note C_, 2
- note C_, 2
- note D_, 2
- note C_, 2
+ C_ 2
+ C_ 2
+ D_ 2
+ C_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
- note C#, 2
+ C# 2
+ C# 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
- note C#, 2
- note E_, 2
- note C#, 2
+ C# 2
+ C# 2
+ E_ 2
+ C# 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
- note C#, 2
+ C# 2
+ C# 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
- note C#, 2
- note E_, 2
- note C#, 2
+ C# 2
+ C# 2
+ E_ 2
+ C# 2
callchannel Music_FinalBattle_branch_2395b
callchannel Music_FinalBattle_branch_2395b
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 1
- note F#, 1
- note G_, 1
- note G#, 1
+ G_ 1
+ F# 1
+ G_ 1
+ G# 1
callchannel Music_FinalBattle_branch_2396c
callchannel Music_FinalBattle_branch_2396c
octave 4
- note A#, 2
+ A# 2
octave 5
- note F_, 2
+ F_ 2
octave 4
- note A#, 2
+ A# 2
octave 5
- note F_, 2
+ F_ 2
octave 4
- note A#, 2
+ A# 2
octave 5
- note F_, 2
+ F_ 2
octave 4
- note A#, 2
+ A# 2
octave 5
- note F_, 2
+ F_ 2
octave 4
- note A#, 2
+ A# 2
octave 5
- note F_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C#, 2
+ F_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C# 2
octave 4
- note A#, 2
- note A_, 2
+ A# 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
- note G#, 2
- note G_, 2
+ A_ 2
+ G# 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note F_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note D#, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note F_, 2
- note F#, 2
- note G_, 2
- note F#, 2
+ G_ 1
+ F# 1
+ G_ 1
+ G# 1
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ F_ 2
+ F# 2
+ G_ 2
+ F# 2
+ B_ 2
+ F# 2
+ B_ 2
+ F# 2
+ B_ 2
+ F# 2
+ B_ 2
+ F# 2
+ B_ 2
+ F# 2
+ B_ 2
+ F# 2
+ B_ 2
+ F# 2
+ D# 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ F_ 2
+ F# 2
+ G_ 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note F#, 2
- note F_, 2
- note E_, 2
- note B_, 2
+ F# 2
+ F_ 2
+ E_ 2
+ B_ 2
octave 5
- note E_, 4
+ E_ 4
octave 4
- note E_, 2
- note B_, 2
+ E_ 2
+ B_ 2
octave 5
- note D#, 4
+ D# 4
octave 4
- note E_, 2
- note B_, 2
+ E_ 2
+ B_ 2
octave 5
- note D_, 4
+ D_ 4
octave 4
- note E_, 2
- note A_, 2
- note B_, 4
+ E_ 2
+ A_ 2
+ B_ 4
loopchannel 0, Music_FinalBattle_branch_2377d
Music_FinalBattle_branch_2395b::
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note F#, 2
+ F# 2
octave 5
- note C#, 2
+ C# 2
endchannel
Music_FinalBattle_branch_2396c::
octave 4
- note A_, 2
+ A_ 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note E_, 2
+ E_ 2
octave 4
- note A_, 2
+ A_ 2
octave 5
- note E_, 2
+ E_ 2
endchannel
-; 0x2397d
\ No newline at end of file
+; 0x2397d
--- a/audio/music/gamecorner.asm
+++ b/audio/music/gamecorner.asm
@@ -1,185 +1,185 @@
Music_GameCorner_Ch1:: ; 7e20b (1f:620b)
- tempo 0, 120
- stereopanning 119
+ tempo 120
+ volume 7, 7
duty 3
vibrato 12, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 5
octave 3
- note A_, 6
+ A_ 6
notetype 12, 11, 1
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note C#, 2
- note D#, 16
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ C# 2
+ D# 16
Music_GameCorner_branch_7e222::
notetype 12, 11, 5
octave 3
- note C#, 4
+ C# 4
octave 2
- note G#, 4
+ G# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note A_, 2
- note G#, 8
+ A_ 2
+ G# 8
notetype 12, 10, 7
- note G#, 2
- note A_, 2
- note B_, 2
+ G# 2
+ A_ 2
+ B_ 2
notetype 12, 11, 5
- note G#, 6
- note E_, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
+ G# 6
+ E_ 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
notetype 12, 10, 7
- note F#, 8
- note D#, 8
+ F# 8
+ D# 8
notetype 12, 11, 5
- note D#, 4
+ D# 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note D#, 4
- note B_, 2
- note A_, 8
+ F# 4
+ D# 4
+ B_ 2
+ A_ 8
notetype 12, 11, 7
octave 4
- note E_, 2
- note D#, 2
- note E_, 2
- note D#, 6
- note C#, 2
+ E_ 2
+ D# 2
+ E_ 2
+ D# 6
+ C# 2
octave 3
- note D#, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note G#, 2
+ D# 2
+ E_ 2
+ F# 2
+ G_ 2
+ G# 2
notetype 12, 9, 7
- note G#, 1
- note G_, 1
- note G#, 1
- note G_, 1
- note G#, 2
+ G# 1
+ G_ 1
+ G# 1
+ G_ 1
+ G# 2
notetype 12, 11, 7
- note F#, 8
+ F# 8
notetype 12, 11, 5
- note C#, 4
+ C# 4
octave 2
- note G#, 4
+ G# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note A_, 2
- note G#, 8
+ A_ 2
+ G# 8
notetype 12, 11, 7
- note G#, 2
- note A_, 2
- note B_, 2
- note G#, 6
- note E_, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note F#, 8
+ G# 2
+ A_ 2
+ B_ 2
+ G# 6
+ E_ 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
+ F# 8
notetype 12, 9, 7
- note D#, 4
- note C#, 4
+ D# 4
+ C# 4
notetype 12, 11, 5
- note D#, 4
+ D# 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note F#, 4
- note D#, 4
- note B_, 2
- note A_, 8
+ F# 4
+ D# 4
+ B_ 2
+ A_ 8
notetype 12, 11, 7
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 4
- note A_, 4
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 4
+ A_ 4
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
notetype 12, 12, 2
- note E_, 4
+ E_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note E_, 2
- note E_, 4
- note E_, 4
+ E_ 2
+ E_ 4
+ E_ 4
notetype 12, 11, 7
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note D_, 2
- note D#, 10
+ C# 2
+ D_ 2
+ D# 10
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note D#, 2
- note E_, 8
+ C# 2
+ D# 2
+ E_ 8
notetype 12, 11, 5
octave 4
- note D#, 4
+ D# 4
octave 3
- note B_, 4
- note F#, 4
- note D#, 4
+ B_ 4
+ F# 4
+ D# 4
notetype 12, 11, 7
- note E_, 3
- note D#, 1
+ E_ 3
+ D# 1
notetype 12, 11, 2
- note C#, 2
- note D#, 2
- note E_, 10
+ C# 2
+ D# 2
+ E_ 10
notetype 12, 11, 7
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note D_, 2
- note D#, 10
+ C# 2
+ D_ 2
+ D# 10
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note D#, 2
- note E_, 8
+ C# 2
+ D# 2
+ E_ 8
notetype 12, 11, 5
octave 4
- note D#, 4
+ D# 4
octave 3
- note B_, 4
- note F#, 4
- note A_, 4
+ B_ 4
+ F# 4
+ A_ 4
notetype 12, 11, 7
- note G#, 2
- note G#, 1
- note G_, 1
- note G#, 1
- note G_, 1
- note G#, 1
- note G_, 1
- note G#, 8
+ G# 2
+ G# 1
+ G_ 1
+ G# 1
+ G_ 1
+ G# 1
+ G_ 1
+ G# 8
loopchannel 0, Music_GameCorner_branch_7e222
@@ -188,158 +188,158 @@
vibrato 10, 2, 3
notetype 12, 12, 6
octave 4
- note C#, 6
+ C# 6
notetype 12, 12, 1
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
duty 3
- note B_, 1
- note A#, 1
- note B_, 1
- note A#, 1
- note B_, 1
- note A#, 1
- note B_, 8
+ B_ 1
+ A# 1
+ B_ 1
+ A# 1
+ B_ 1
+ A# 1
+ B_ 8
Music_GameCorner_branch_7e2fa::
duty 2
notetype 12, 12, 7
octave 3
- note E_, 4
+ E_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note G#, 4
- note E_, 4
+ G# 4
+ E_ 4
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 14
+ B_ 14
octave 4
- note E_, 6
- note D#, 2
- note C#, 2
+ E_ 6
+ D# 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 16
- note F#, 4
- note D#, 4
- note A_, 4
- note F#, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 16
+ F# 4
+ D# 4
+ A_ 4
+ F# 4
octave 4
- note D#, 2
- note C#, 14
- note F#, 6
- note E_, 2
- note D#, 2
- note C#, 2
+ D# 2
+ C# 14
+ F# 6
+ E_ 2
+ D# 2
+ C# 2
octave 3
- note B_, 2
- note A#, 2
- note B_, 16
- note E_, 4
+ B_ 2
+ A# 2
+ B_ 16
+ E_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note G#, 4
- note E_, 4
+ G# 4
+ E_ 4
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 14
+ B_ 14
octave 4
- note E_, 6
- note D#, 2
- note C#, 2
+ E_ 6
+ D# 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 16
- note F#, 4
- note D#, 4
- note A_, 4
- note F#, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 16
+ F# 4
+ D# 4
+ A_ 4
+ F# 4
octave 4
- note D#, 2
- note C#, 14
- note F#, 6
- note E_, 2
- note D#, 2
- note E_, 2
- note F#, 2
- note G#, 2
+ D# 2
+ C# 14
+ F# 6
+ E_ 2
+ D# 2
+ E_ 2
+ F# 2
+ G# 2
notetype 12, 12, 1
- note E_, 2
+ E_ 2
notetype 12, 10, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 2
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ E_ 2
notetype 12, 12, 7
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note D#, 10
+ C# 2
+ D_ 2
+ D# 10
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note E_, 10
+ C# 2
+ D# 2
+ E_ 10
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
+ C# 2
+ D# 2
notetype 12, 12, 5
- note F#, 4
- note D#, 4
+ F# 4
+ D# 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note A_, 4
- note G#, 3
- note A_, 1
+ A_ 4
+ G# 3
+ A_ 1
notetype 12, 12, 2
- note G#, 2
- note F#, 2
- note E_, 2
+ G# 2
+ F# 2
+ E_ 2
notetype 12, 12, 7
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note D#, 10
+ C# 2
+ D_ 2
+ D# 10
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note E_, 10
+ C# 2
+ D# 2
+ E_ 10
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note F#, 4
- note D#, 4
- note A_, 4
- note F#, 4
- note B_, 16
+ C# 2
+ D# 2
+ F# 4
+ D# 4
+ A_ 4
+ F# 4
+ B_ 16
loopchannel 0, Music_GameCorner_branch_7e2fa
@@ -346,28 +346,28 @@
Music_GameCorner_Ch3:: ; 7e38b (1f:638b)
notetype 12, 1, 3
octave 5
- note C#, 1
+ C# 1
rest 5
octave 4
- note F#, 1
+ F# 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note B_, 1
+ B_ 1
rest 9
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
Music_GameCorner_branch_7e3a5::
@@ -378,23 +378,23 @@
callchannel Music_GameCorner_branch_7e46c
callchannel Music_GameCorner_branch_7e481
callchannel Music_GameCorner_branch_7e496
- note D#, 1
+ D# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
callchannel Music_GameCorner_branch_7e418
callchannel Music_GameCorner_branch_7e42d
@@ -403,38 +403,38 @@
callchannel Music_GameCorner_branch_7e46c
callchannel Music_GameCorner_branch_7e481
callchannel Music_GameCorner_branch_7e496
- note E_, 1
+ E_ 1
rest 3
octave 3
- note B_, 1
+ B_ 1
rest 3
octave 4
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note B_, 1
+ B_ 1
rest 1
callchannel Music_GameCorner_branch_7e46c
callchannel Music_GameCorner_branch_7e418
callchannel Music_GameCorner_branch_7e4ab
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
callchannel Music_GameCorner_branch_7e46c
callchannel Music_GameCorner_branch_7e418
@@ -443,186 +443,186 @@
loopchannel 0, Music_GameCorner_branch_7e3a5
Music_GameCorner_branch_7e418::
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
endchannel
Music_GameCorner_branch_7e42d::
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
endchannel
Music_GameCorner_branch_7e442::
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
endchannel
Music_GameCorner_branch_7e457::
- note D#, 1
+ D# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
endchannel
Music_GameCorner_branch_7e46c::
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
endchannel
Music_GameCorner_branch_7e481::
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
endchannel
Music_GameCorner_branch_7e496::
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
endchannel
Music_GameCorner_branch_7e4ab::
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
endchannel
-; 0x7e4c0
\ No newline at end of file
+; 0x7e4c0
--- a/audio/music/gym.asm
+++ b/audio/music/gym.asm
@@ -1,167 +1,167 @@
Music_Gym_Ch1:: ; bcbb (2:7cbb)
- tempo 0, 138
- stereopanning 119
+ tempo 138
+ volume 7, 7
duty 3
vibrato 8, 2, 2
- togglecall
+ toggleperfectpitch
notetype 12, 11, 5
octave 3
- note G_, 6
- note C_, 1
- note G_, 1
- note F_, 6
+ G_ 6
+ C_ 1
+ G_ 1
+ F_ 6
octave 2
- note A#, 1
+ A# 1
octave 3
- note F_, 1
- note E_, 6
+ F_ 1
+ E_ 6
octave 2
- note A_, 1
+ A_ 1
octave 3
- note E_, 1
- note F_, 4
- note G_, 4
+ E_ 1
+ F_ 4
+ G_ 4
Music_Gym_branch_bcd8::
- note E_, 4
- note F_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C_, 2
+ E_ 4
+ F_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C_ 2
notetype 12, 11, 1
- note D_, 3
+ D_ 3
notetype 12, 11, 5
- note E_, 1
- note F_, 4
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 2
- note E_, 4
- note F_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C_, 2
- note D_, 2
- note D_, 1
- note E_, 1
- note F_, 4
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 2
+ E_ 1
+ F_ 4
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 2
+ E_ 4
+ F_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C_ 2
+ D_ 2
+ D_ 1
+ E_ 1
+ F_ 4
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 2
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A#, 2
+ A# 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A#, 2
- note A_, 2
- note G_, 2
- note F_, 2
+ A# 2
+ A_ 2
+ G_ 2
+ F_ 2
notetype 12, 11, 1
- note A#, 3
+ A# 3
notetype 12, 11, 5
- note F_, 1
- note F_, 4
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 2
+ F_ 1
+ F_ 4
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 2
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A#, 2
+ A# 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A#, 2
- note A_, 2
- note G_, 2
- note F_, 2
- note D_, 2
- note D_, 1
- note E_, 1
- note F_, 4
- note A#, 2
- note F_, 1
- note A#, 1
+ A# 2
+ A_ 2
+ G_ 2
+ F_ 2
+ D_ 2
+ D_ 1
+ E_ 1
+ F_ 4
+ A# 2
+ F_ 1
+ A# 1
octave 4
- note D_, 4
+ D_ 4
octave 3
- note E_, 2
- note C_, 2
- note E_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 2
- note D_, 2
- note E_, 2
- note C_, 2
- note D_, 2
- note E_, 2
- note C_, 2
- note D_, 2
- note C_, 2
- note C_, 1
- note D_, 1
- note E_, 4
- note C_, 2
- note E_, 2
- note D_, 2
- note C_, 2
- note E_, 2
- note C_, 1
- note E_, 1
- note F_, 4
- note E_, 2
- note D_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note E_, 2
- note C_, 2
- note D_, 2
- note C_, 2
- note D_, 2
- note C_, 2
- note C_, 1
- note D_, 1
- note E_, 4
- note D_, 2
- note E_, 2
- note F_, 2
- note F_, 2
- note G_, 2
- note E_, 1
- note G_, 1
- note A#, 2
+ E_ 2
+ C_ 2
+ E_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 2
+ D_ 2
+ E_ 2
+ C_ 2
+ D_ 2
+ E_ 2
+ C_ 2
+ D_ 2
+ C_ 2
+ C_ 1
+ D_ 1
+ E_ 4
+ C_ 2
+ E_ 2
+ D_ 2
+ C_ 2
+ E_ 2
+ C_ 1
+ E_ 1
+ F_ 4
+ E_ 2
+ D_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ E_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ E_ 2
+ C_ 2
+ D_ 2
+ C_ 2
+ D_ 2
+ C_ 2
+ C_ 1
+ D_ 1
+ E_ 4
+ D_ 2
+ E_ 2
+ F_ 2
+ F_ 2
+ G_ 2
+ E_ 1
+ G_ 1
+ A# 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A#, 2
- note A_, 2
- note G_, 2
- note A_, 2
+ A# 2
+ A_ 2
+ G_ 2
+ A_ 2
loopchannel 0, Music_Gym_branch_bcd8
@@ -170,121 +170,121 @@
vibrato 10, 2, 5
notetype 12, 12, 7
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 1
+ G_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note A#, 6
- note F_, 1
- note A#, 1
+ A# 6
+ F_ 1
+ A# 1
notetype 12, 10, 0
- note A_, 12
+ A_ 12
notetype 12, 12, 7
- note B_, 4
+ B_ 4
Music_Gym_branch_bd82::
octave 4
- note C_, 12
+ C_ 12
octave 3
- note G_, 2
+ G_ 2
octave 4
- note C_, 2
+ C_ 2
notetype 12, 12, 2
- note D_, 3
+ D_ 3
octave 3
- note A#, 1
+ A# 1
notetype 12, 12, 7
- note A#, 12
+ A# 12
octave 4
- note C_, 12
+ C_ 12
octave 3
- note G_, 2
+ G_ 2
octave 4
- note C_, 2
+ C_ 2
notetype 12, 12, 4
octave 3
- note A#, 2
+ A# 2
notetype 12, 12, 7
- note A#, 1
+ A# 1
octave 4
- note C_, 1
- note D_, 12
- note E_, 12
- note D_, 2
- note E_, 2
+ C_ 1
+ D_ 12
+ E_ 12
+ D_ 2
+ E_ 2
notetype 12, 12, 2
- note F_, 3
- note D_, 1
+ F_ 3
+ D_ 1
notetype 12, 12, 7
- note D_, 4
+ D_ 4
notetype 12, 12, 2
- note A#, 3
- note F_, 1
+ A# 3
+ F_ 1
notetype 12, 12, 7
- note F_, 4
- note E_, 12
- note D_, 2
- note E_, 2
- note F_, 2
- note D_, 1
- note F_, 1
- note A#, 12
+ F_ 4
+ E_ 12
+ D_ 2
+ E_ 2
+ F_ 2
+ D_ 1
+ F_ 1
+ A# 12
octave 3
- note G_, 6
+ G_ 6
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 4
- note A#, 4
- note A_, 4
- note G_, 4
- note F_, 4
+ G_ 4
+ A# 4
+ A_ 4
+ G_ 4
+ F_ 4
notetype 12, 12, 3
- note E_, 2
+ E_ 2
notetype 12, 12, 7
- note E_, 1
- note F_, 1
- note G_, 6
- note G_, 2
+ E_ 1
+ F_ 1
+ G_ 6
+ G_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G_, 2
- note A#, 4
- note A_, 4
- note G_, 4
- note C_, 2
- note D_, 2
- note G_, 6
+ G_ 2
+ A# 4
+ A_ 4
+ G_ 4
+ C_ 2
+ D_ 2
+ G_ 6
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 4
- note A#, 4
- note A_, 4
- note G_, 4
- note F_, 4
+ G_ 4
+ A# 4
+ A_ 4
+ G_ 4
+ F_ 4
notetype 12, 12, 3
- note E_, 2
+ E_ 2
notetype 12, 12, 7
- note E_, 1
- note F_, 1
- note G_, 4
+ E_ 1
+ F_ 1
+ G_ 4
notetype 12, 12, 3
- note G_, 2
+ G_ 2
notetype 12, 12, 7
- note G_, 1
- note A_, 1
- note A#, 4
+ G_ 1
+ A_ 1
+ A# 4
notetype 12, 12, 4
octave 4
- note C_, 2
+ C_ 2
notetype 12, 12, 7
- note C_, 1
- note D_, 1
- note E_, 12
+ C_ 1
+ D_ 1
+ E_ 12
loopchannel 0, Music_Gym_branch_bd82
@@ -293,9 +293,9 @@
rest 16
rest 10
octave 4
- note G_, 2
- note F_, 2
- note D_, 2
+ G_ 2
+ F_ 2
+ D_ 2
Music_Gym_branch_be02::
callchannel Music_Gym_branch_be3b
@@ -313,46 +313,46 @@
callchannel Music_Gym_branch_be3b
callchannel Music_Gym_branch_be4d
callchannel Music_Gym_branch_be3b
- note F_, 2
- note A#, 2
- note F_, 2
- note A#, 2
- note F_, 2
- note A#, 2
- note A_, 2
- note F_, 2
+ F_ 2
+ A# 2
+ F_ 2
+ A# 2
+ F_ 2
+ A# 2
+ A_ 2
+ F_ 2
loopchannel 0, Music_Gym_branch_be02
Music_Gym_branch_be3b::
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
endchannel
Music_Gym_branch_be44::
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
endchannel
Music_Gym_branch_be4d::
- note F_, 2
- note A#, 2
- note F_, 2
- note A#, 2
- note F_, 2
- note A#, 2
- note F_, 2
- note A#, 2
+ F_ 2
+ A# 2
+ F_ 2
+ A# 2
+ F_ 2
+ A# 2
+ F_ 2
+ A# 2
endchannel
-; 0xbe56
\ No newline at end of file
+; 0xbe56
--- a/audio/music/gymleaderbattle.asm
+++ b/audio/music/gymleaderbattle.asm
@@ -1,549 +1,549 @@
Music_GymLeaderBattle_Ch1:: ; 22370 (8:6370)
- tempo 0, 104
- stereopanning 119
+ tempo 104
+ volume 7, 7
duty 3
vibrato 8, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 3
rest 6
octave 3
- note F#, 1
- note F_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note C_, 1
- note C#, 1
- note C_, 1
+ F# 1
+ F_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ C# 1
+ C_ 1
+ C# 1
+ C_ 1
octave 2
- note B_, 1
+ B_ 1
octave 1
- note G#, 1
- note A_, 1
- note A#, 1
- note A_, 1
- note A#, 1
- note B_, 1
- note A#, 1
- note B_, 1
+ G# 1
+ A_ 1
+ A# 1
+ A_ 1
+ A# 1
+ B_ 1
+ A# 1
+ B_ 1
octave 2
- note F#, 1
+ F# 1
rest 15
- note F#, 1
+ F# 1
rest 9
- note G_, 6
- note F#, 1
+ G_ 6
+ F# 1
rest 15
- note F#, 1
+ F# 1
rest 9
- note F_, 6
- note F#, 1
+ F_ 6
+ F# 1
rest 15
- note F#, 1
+ F# 1
rest 9
- note G_, 6
- note F#, 1
+ G_ 6
+ F# 1
rest 15
- note F#, 1
+ F# 1
rest 9
- note A_, 6
+ A_ 6
Music_GymLeaderBattle_branch_223b0::
- note F#, 1
+ F# 1
octave 3
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
octave 2
- note E_, 1
- note A_, 1
+ E_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
- note F#, 1
+ B_ 1
+ A_ 1
+ F# 1
octave 3
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
- note C#, 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
+ C# 1
octave 2
- note E_, 1
- note A_, 1
+ E_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
rest 2
octave 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note D_, 4
+ D_ 4
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note E_, 4
+ E_ 4
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note D_, 4
+ D_ 4
octave 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note C#, 2
+ C# 2
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note D_, 4
+ D_ 4
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note E_, 4
+ E_ 4
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note D_, 4
+ D_ 4
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 2
- note C#, 2
+ C# 2
octave 1
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
octave 2
- note C#, 2
+ C# 2
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
rest 16
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ B_ 1
octave 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
notetype 12, 11, 5
octave 3
- note C#, 12
+ C# 12
notetype 12, 11, 3
octave 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
notetype 12, 11, 5
octave 3
- note A_, 12
+ A_ 12
notetype 12, 11, 3
- note D#, 4
- note C#, 4
- note D#, 4
- note E_, 2
- note F#, 4
+ D# 4
+ C# 4
+ D# 4
+ E_ 2
+ F# 4
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note F#, 2
- note B_, 2
- note F#, 2
- note D#, 2
- note F#, 2
+ C# 2
+ F# 2
+ B_ 2
+ F# 2
+ D# 2
+ F# 2
octave 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
notetype 12, 11, 5
octave 3
- note A_, 12
+ A_ 12
notetype 12, 11, 3
- note C#, 1
+ C# 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note C#, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note F#, 1
- note A_, 1
- note G#, 1
- note F#, 1
- note E_, 1
- note F#, 1
- note E_, 1
- note D#, 1
- note C#, 1
+ C# 1
+ D# 1
+ E_ 1
+ D# 1
+ E_ 1
+ F# 1
+ A_ 1
+ G# 1
+ F# 1
+ E_ 1
+ F# 1
+ E_ 1
+ D# 1
+ C# 1
notetype 12, 11, 5
- note D#, 4
- note E_, 4
- note C#, 2
- note D#, 6
- note F#, 4
- note E_, 2
- note D#, 4
- note C#, 6
+ D# 4
+ E_ 4
+ C# 2
+ D# 6
+ F# 4
+ E_ 2
+ D# 4
+ C# 6
rest 16
rest 10
- note E_, 6
- note D#, 4
- note E_, 4
- note C#, 2
- note D#, 6
- note E_, 4
- note D#, 2
- note C#, 4
+ E_ 6
+ D# 4
+ E_ 4
+ C# 2
+ D# 6
+ E_ 4
+ D# 2
+ C# 4
octave 2
- note B_, 6
+ B_ 6
octave 3
- note D#, 4
- note E_, 4
- note C#, 2
- note D#, 6
- note F#, 4
- note A_, 2
- note G#, 4
- note E_, 6
+ D# 4
+ E_ 4
+ C# 2
+ D# 6
+ F# 4
+ A_ 2
+ G# 4
+ E_ 6
loopchannel 0, Music_GymLeaderBattle_branch_223b0
@@ -552,299 +552,299 @@
vibrato 8, 2, 5
notetype 12, 12, 3
octave 4
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
+ B_ 1
rest 5
- note F#, 1
- note F_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note B_, 1
+ F# 1
+ F_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ C# 1
+ B_ 1
rest 15
- note B_, 1
+ B_ 1
rest 9
octave 4
- note C_, 6
+ C_ 6
octave 3
- note B_, 1
+ B_ 1
rest 15
- note B_, 1
+ B_ 1
rest 9
- note A#, 6
+ A# 6
octave 3
- note B_, 1
+ B_ 1
rest 15
- note B_, 1
+ B_ 1
rest 9
octave 4
- note C_, 6
+ C_ 6
octave 3
- note B_, 1
+ B_ 1
rest 15
- note B_, 1
+ B_ 1
rest 9
octave 4
- note C#, 6
+ C# 6
Music_GymLeaderBattle_branch_225e0::
notetype 12, 12, 5
- note D#, 4
- note C#, 4
- note D#, 4
- note E_, 2
- note F#, 4
- note E_, 4
- note D#, 2
- note C#, 2
+ D# 4
+ C# 4
+ D# 4
+ E_ 2
+ F# 4
+ E_ 4
+ D# 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
+ C# 2
+ D# 2
notetype 12, 11, 7
duty 2
octave 3
- note A_, 8
+ A_ 8
octave 4
- note C#, 8
- note E_, 8
- note C#, 8
+ C# 8
+ E_ 8
+ C# 8
notetype 12, 12, 5
duty 3
- note D#, 4
- note C#, 4
- note D#, 4
- note E_, 2
- note F#, 4
- note E_, 4
- note D#, 2
- note C#, 2
+ D# 4
+ C# 4
+ D# 4
+ E_ 2
+ F# 4
+ E_ 4
+ D# 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
+ C# 2
+ D# 2
notetype 12, 11, 7
duty 2
- note C#, 8
+ C# 8
octave 3
- note B_, 8
- note A_, 8
+ B_ 8
+ A_ 8
notetype 12, 12, 3
octave 4
- note E_, 4
- note E_, 2
- note C#, 2
+ E_ 4
+ E_ 2
+ C# 2
notetype 12, 12, 5
duty 3
octave 1
- note B_, 1
+ B_ 1
rest 3
octave 3
- note D_, 1
- note C#, 1
+ D_ 1
+ C# 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note D_, 1
+ D_ 1
rest 4
- note E_, 1
- note D_, 1
+ E_ 1
+ D_ 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note E_, 1
+ E_ 1
rest 4
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
rest 2
- note E_, 1
- note C#, 1
- note E_, 1
+ E_ 1
+ C# 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note D_, 1
- note C#, 1
+ D_ 1
+ C# 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note D_, 1
+ D_ 1
rest 4
- note E_, 1
- note D_, 1
+ E_ 1
+ D_ 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note E_, 1
+ E_ 1
rest 4
- note F#, 1
- note E_, 1
- note C#, 1
- note F#, 1
- note E_, 1
+ F# 1
+ E_ 1
+ C# 1
+ F# 1
+ E_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
notetype 12, 11, 0
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A_, 4
- note B_, 4
+ A_ 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A_, 4
- note G_, 4
+ A_ 4
+ G_ 4
notetype 12, 11, 0
- note F#, 8
+ F# 8
notetype 12, 11, 7
- note F#, 8
+ F# 8
notetype 12, 12, 3
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ B_ 1
+ A_ 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ A_ 1
+ B_ 1
notetype 12, 11, 0
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A_, 4
- note B_, 4
+ A_ 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note C_, 4
+ C_ 4
notetype 12, 11, 0
octave 3
- note B_, 16
+ B_ 16
notetype 12, 3, 15
octave 4
- note F#, 16
+ F# 16
notetype 12, 12, 3
duty 3
octave 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
notetype 12, 12, 7
octave 3
- note A_, 12
+ A_ 12
notetype 12, 12, 3
octave 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
notetype 12, 12, 7
octave 4
- note C#, 12
+ C# 12
notetype 12, 11, 0
- note D#, 16
+ D# 16
notetype 12, 11, 7
- note D#, 16
+ D# 16
notetype 12, 12, 3
octave 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
notetype 12, 12, 7
octave 4
- note C#, 12
+ C# 12
notetype 12, 12, 0
- note A_, 8
- note E_, 8
- note B_, 16
+ A_ 8
+ E_ 8
+ B_ 16
notetype 12, 12, 7
- note B_, 16
+ B_ 16
notetype 12, 12, 4
octave 3
- note D#, 4
- note E_, 4
- note C#, 2
- note D#, 6
- note F#, 4
- note A_, 2
- note G#, 4
+ D# 4
+ E_ 4
+ C# 2
+ D# 6
+ F# 4
+ A_ 2
+ G# 4
rest 2
- note B_, 1
+ B_ 1
octave 4
- note D#, 1
- note F#, 1
- note A#, 1
+ D# 1
+ F# 1
+ A# 1
notetype 12, 12, 0
- note B_, 16
- note F#, 16
- note A_, 16
+ B_ 16
+ F# 16
+ A_ 16
octave 5
- note C#, 8
+ C# 8
rest 2
notetype 12, 12, 3
octave 4
- note A_, 6
+ A_ 6
loopchannel 0, Music_GymLeaderBattle_branch_225e0
@@ -853,549 +853,549 @@
notetype 12, 1, 3
rest 12
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note C_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note F_, 1
- note F#, 1
+ C_ 1
+ C# 1
+ C_ 1
+ C# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ E_ 1
+ F_ 1
+ F# 1
+ F_ 1
+ F# 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C_, 6
+ C_ 6
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F_, 6
+ F_ 6
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C_, 6
+ C_ 6
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 6
+ C# 6
notetype 12, 1, 4
Music_GymLeaderBattle_branch_227b1::
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note E_, 4
+ E_ 4
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note E_, 4
+ E_ 4
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note D_, 4
+ D_ 4
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 13
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 4
- note C#, 12
+ C# 12
octave 3
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 4
- note E_, 12
- note D#, 16
+ E_ 12
+ D# 16
octave 3
- note B_, 16
- note A_, 1
+ B_ 16
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 4
- note E_, 12
- note C#, 8
- note E_, 8
+ E_ 12
+ C# 8
+ E_ 8
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 6
+ E_ 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G_, 6
+ G_ 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C_, 6
+ C_ 6
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note F#, 2
+ F# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G_, 6
+ G_ 6
loopchannel 0, Music_GymLeaderBattle_branch_227b1
-; 0x22919
\ No newline at end of file
+; 0x22919
--- a/audio/music/halloffame.asm
+++ b/audio/music/halloffame.asm
@@ -1,9 +1,9 @@
Music_HallOfFame_Ch1:: ; 7fbaf (1f:7baf)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
duty 3
vibrato 12, 2, 2
- togglecall
+ toggleperfectpitch
notetype 12, 11, 3
rest 16
rest 16
@@ -10,19 +10,19 @@
rest 16
rest 12
octave 3
- note D_, 1
- note E_, 1
- note F_, 1
- note F#, 1
+ D_ 1
+ E_ 1
+ F_ 1
+ F# 1
Music_HallOfFame_branch_7fbc5::
notetype 12, 8, 0
octave 4
- note C_, 16
- note E_, 16
- note F#, 16
+ C_ 16
+ E_ 16
+ F# 16
notetype 12, 6, 0
- note F_, 16
+ F_ 16
loopchannel 3, Music_HallOfFame_branch_7fbc5
rest 16
rest 16
@@ -38,28 +38,28 @@
Music_HallOfFame_branch_7fbdf::
notetype 12, 12, 4
octave 3
- note G_, 2
- note D_, 2
- note G_, 2
- note A_, 10
- note G_, 2
- note D_, 2
- note G_, 2
+ G_ 2
+ D_ 2
+ G_ 2
+ A_ 10
+ G_ 2
+ D_ 2
+ G_ 2
octave 4
- note C_, 4
+ C_ 4
octave 3
- note B_, 4
- note A_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note A_, 10
- note F_, 2
- note C_, 2
- note F_, 2
- note A#, 4
- note A_, 4
- note F_, 2
+ B_ 4
+ A_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ A_ 10
+ F_ 2
+ C_ 2
+ F_ 2
+ A# 4
+ A_ 4
+ F_ 2
loopchannel 0, Music_HallOfFame_branch_7fbdf
@@ -68,30 +68,30 @@
Music_HallOfFame_branch_7fbfe::
octave 4
- note D_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note D_, 2
- note G_, 2
+ D_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ D_ 2
+ G_ 2
loopchannel 12, Music_HallOfFame_branch_7fbfe
- note D_, 4
- note G_, 4
- note D_, 4
- note G_, 4
- note E_, 4
- note G_, 4
- note E_, 4
- note G_, 4
- note F#, 4
- note A_, 4
- note F#, 4
- note A_, 4
- note E_, 4
- note G_, 4
- note E_, 4
- note G_, 4
+ D_ 4
+ G_ 4
+ D_ 4
+ G_ 4
+ E_ 4
+ G_ 4
+ E_ 4
+ G_ 4
+ F# 4
+ A_ 4
+ F# 4
+ A_ 4
+ E_ 4
+ G_ 4
+ E_ 4
+ G_ 4
loopchannel 0, Music_HallOfFame_Ch3
-; 0x7fc1f
\ No newline at end of file
+; 0x7fc1f
--- a/audio/music/indigoplateau.asm
+++ b/audio/music/indigoplateau.asm
@@ -1,88 +1,88 @@
Music_IndigoPlateau_Ch1:: ; a5f0 (2:65f0)
- tempo 0, 132
- stereopanning 119
+ tempo 132
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 2
octave 2
- note A_, 8
- note A_, 8
- note A_, 8
- note A_, 4
+ A_ 8
+ A_ 8
+ A_ 8
+ A_ 4
notetype 12, 10, 4
- note A#, 4
+ A# 4
Music_IndigoPlateau_branch_a605::
callchannel Music_IndigoPlateau_branch_a659
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
callchannel Music_IndigoPlateau_branch_a659
notetype 12, 11, 4
octave 3
- note D#, 4
+ D# 4
callchannel Music_IndigoPlateau_branch_a659
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
callchannel Music_IndigoPlateau_branch_a659
notetype 12, 10, 0
octave 2
- note A#, 4
+ A# 4
callchannel Music_IndigoPlateau_branch_a659
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 13, 4
octave 3
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
notetype 12, 11, 4
octave 3
- note D#, 4
+ D# 4
notetype 12, 13, 4
octave 3
- note A#, 4
- note A#, 4
- note A#, 4
- note A#, 4
- note A#, 4
- note A#, 4
- note A#, 4
+ A# 4
+ A# 4
+ A# 4
+ A# 4
+ A# 4
+ A# 4
+ A# 4
notetype 12, 11, 4
octave 3
- note F_, 2
+ F_ 2
notetype 12, 11, 4
octave 3
- note G_, 2
+ G_ 2
notetype 12, 11, 0
- note A_, 8
+ A_ 8
octave 2
- note A_, 8
+ A_ 8
notetype 12, 11, 7
octave 3
- note F_, 8
+ F_ 8
notetype 12, 4, 14
octave 2
- note A#, 8
+ A# 8
loopchannel 0, Music_IndigoPlateau_branch_a605
Music_IndigoPlateau_branch_a659::
notetype 12, 11, 2
octave 2
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
- note A_, 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
+ A_ 4
endchannel
@@ -91,59 +91,59 @@
vibrato 8, 2, 5
notetype 12, 12, 2
octave 3
- note D_, 8
- note D_, 8
- note D_, 8
- note D_, 4
+ D_ 8
+ D_ 8
+ D_ 8
+ D_ 4
notetype 12, 5, 10
- note D#, 4
+ D# 4
Music_IndigoPlateau_branch_a673::
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 5
- note A_, 4
+ A_ 4
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 5
- note A#, 4
+ A# 4
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 5
- note A_, 4
+ A_ 4
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 7
- note C#, 4
+ C# 4
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 5
- note A_, 4
+ A_ 4
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 5
- note A#, 4
+ A# 4
callchannel Music_IndigoPlateau_branch_a6af
notetype 12, 12, 5
octave 4
- note C_, 2
+ C_ 2
notetype 12, 12, 7
octave 4
- note C#, 2
- note D_, 8
+ C# 2
+ D_ 8
octave 3
- note D_, 8
+ D_ 8
octave 4
- note C_, 8
+ C_ 8
notetype 12, 4, 13
octave 4
- note D#, 8
+ D# 8
loopchannel 0, Music_IndigoPlateau_branch_a673
Music_IndigoPlateau_branch_a6af::
notetype 12, 12, 2
octave 3
- note D_, 4
- note D_, 4
- note D_, 4
- note D_, 4
- note D_, 4
- note D_, 4
- note D_, 4
+ D_ 4
+ D_ 4
+ D_ 4
+ D_ 4
+ D_ 4
+ D_ 4
+ D_ 4
endchannel
@@ -150,95 +150,95 @@
Music_IndigoPlateau_Ch3:: ; a6ba (2:66ba)
notetype 12, 1, 0
octave 4
- note D_, 2
+ D_ 2
rest 6
- note D_, 2
+ D_ 2
rest 6
- note D_, 2
+ D_ 2
rest 6
- note D_, 2
+ D_ 2
rest 2
- note D#, 4
+ D# 4
Music_IndigoPlateau_branch_a6c6::
callchannel Music_IndigoPlateau_branch_a6fe
callchannel Music_IndigoPlateau_branch_a6fe
callchannel Music_IndigoPlateau_branch_a6fe
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note F#, 4
+ F# 4
callchannel Music_IndigoPlateau_branch_a6fe
callchannel Music_IndigoPlateau_branch_a6fe
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note A#, 1
+ A# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note A_, 8
- note D_, 8
- note A#, 8
- note D#, 8
+ A_ 8
+ D_ 8
+ A# 8
+ D# 8
loopchannel 0, Music_IndigoPlateau_branch_a6c6
Music_IndigoPlateau_branch_a6fe::
octave 4
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note D_, 2
+ D_ 2
rest 2
- note A_, 4
+ A_ 4
endchannel
Music_IndigoPlateau_Ch4:: ; a70f (2:670f)
dspeed 6
- dnote 16, mutedsnare2
- dnote 16, mutedsnare2
- dnote 16, mutedsnare2
- dnote 8, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare2 16
+ mutedsnare2 16
+ mutedsnare2 16
+ mutedsnare2 8
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
Music_IndigoPlateau_branch_a728::
callchannel Music_IndigoPlateau_branch_a791
@@ -255,68 +255,68 @@
callchannel Music_IndigoPlateau_branch_a7a8
callchannel Music_IndigoPlateau_branch_a77e
callchannel Music_IndigoPlateau_branch_a7a8
- dnote 16, mutedsnare2
- dnote 8, mutedsnare2
- dnote 8, mutedsnare3
- dnote 16, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
+ mutedsnare2 16
+ mutedsnare2 8
+ mutedsnare3 8
+ mutedsnare2 16
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 1
+ mutedsnare2 1
+ mutedsnare2 1
+ mutedsnare2 1
loopchannel 0, Music_IndigoPlateau_branch_a728
Music_IndigoPlateau_branch_a77e::
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare4
- dnote 4, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare4
- dnote 2, mutedsnare4
- dnote 2, mutedsnare3
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare4 4
+ mutedsnare3 4
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare4 4
+ mutedsnare4 2
+ mutedsnare3 2
endchannel
Music_IndigoPlateau_branch_a791::
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare4
- dnote 4, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare4 4
+ mutedsnare3 4
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare4 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
endchannel
Music_IndigoPlateau_branch_a7a8::
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
endchannel
-; 0xa7c5
\ No newline at end of file
+; 0xa7c5
--- a/audio/music/introbattle.asm
+++ b/audio/music/introbattle.asm
@@ -1,92 +1,92 @@
Music_IntroBattle_Ch1:: ; 7f844 (1f:7844)
- tempo 0, 98
- stereopanning 119
+ tempo 98
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 1
rest 8
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note D#, 4
+ D# 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 10, 0
- note A#, 4
+ A# 4
notetype 12, 11, 1
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 2, 9
octave 3
- note G_, 4
+ G_ 4
notetype 12, 11, 0
- note A_, 8
+ A_ 8
octave 2
- note A_, 8
+ A_ 8
notetype 12, 11, 7
octave 3
- note F_, 8
+ F_ 8
notetype 12, 4, 15
octave 2
- note F_, 8
+ F_ 8
notetype 12, 11, 1
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note D_, 4
+ D_ 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note D#, 4
+ D# 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note F_, 4
+ F_ 4
notetype 12, 11, 1
octave 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
notetype 12, 11, 4
octave 3
- note G_, 4
+ G_ 4
notetype 12, 11, 0
- note F#, 16
+ F# 16
notetype 12, 11, 1
octave 4
- note D_, 16
+ D_ 16
endchannel
@@ -96,72 +96,72 @@
notetype 12, 12, 2
rest 8
octave 3
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
- note A_, 4
+ A_ 4
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
- note A#, 4
+ A# 4
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
- note A_, 4
+ A_ 4
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 11, 7
- note C#, 4
+ C# 4
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
- note A_, 4
+ A_ 4
notetype 12, 12, 2
octave 3
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 7
octave 4
- note C#, 4
- note D_, 8
+ C# 4
+ D_ 8
octave 3
- note D_, 8
+ D_ 8
octave 4
- note C_, 8
+ C_ 8
octave 3
- note C_, 8
+ C_ 8
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
- note A_, 4
+ A_ 4
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
- note A#, 4
+ A# 4
notetype 12, 12, 2
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
octave 4
- note C_, 4
+ C_ 4
notetype 12, 12, 2
octave 3
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
notetype 12, 12, 5
octave 4
- note C#, 4
+ C# 4
notetype 12, 2, 15
- note D_, 16
+ D_ 16
notetype 12, 12, 1
octave 5
- note D_, 16
+ D_ 16
endchannel
@@ -169,62 +169,62 @@
notetype 12, 1, 0
rest 8
octave 4
- note D_, 1
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 4
- note D_, 1
+ A_ 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 4
- note D_, 1
+ A_ 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 4
- note D_, 1
+ A_ 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 4
- note D_, 1
+ F# 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 4
- note D_, 1
+ A_ 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A#, 4
- note A_, 8
- note D_, 8
- note A#, 8
- note D_, 8
- note D_, 1
+ A# 4
+ A_ 8
+ D_ 8
+ A# 8
+ D_ 8
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 4
- note D_, 1
+ A_ 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 4
- note D_, 1
+ A_ 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A#, 4
- note D_, 1
+ A# 4
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A#, 4
- note A_, 16
- note D_, 1
+ A# 4
+ A_ 16
+ D_ 1
rest 15
endchannel
@@ -231,100 +231,100 @@
Music_IntroBattle_Ch4:: ; 7f95b (1f:795b)
dspeed 6
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 16, mutedsnare2
- dnote 16, mutedsnare2
- dnote 16, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
- dnote 1, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 4, mutedsnare2
- dnote 16, mutedsnare2
- dnote 16, mutedsnare2
- dnote 2, mutedsnare2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 1
+ mutedsnare2 1
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 16
+ mutedsnare2 16
+ mutedsnare2 16
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 1
+ mutedsnare2 1
+ mutedsnare2 1
+ mutedsnare2 1
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare2 4
+ mutedsnare2 16
+ mutedsnare2 16
+ mutedsnare2 2
rest 16
rest 14
endchannel
-; 0x7fa19
\ No newline at end of file
+; 0x7fa19
--- a/audio/music/jigglypuffsong.asm
+++ b/audio/music/jigglypuffsong.asm
@@ -1,23 +1,23 @@
Music_JigglypuffSong_Ch1:: ; 7fb7d (1f:7b7d)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
vibrato 8, 2, 4
duty 2
dutycycle 165
- togglecall
+ toggleperfectpitch
notetype 13, 6, 7
octave 4
- note E_, 8
+ E_ 8
notetype 12, 6, 7
- note B_, 2
- note G#, 6
- note F#, 8
- note G#, 2
- note A_, 6
- note G#, 8
- note F#, 4
- note G#, 4
- note E_, 10
+ B_ 2
+ G# 6
+ F# 8
+ G# 2
+ A_ 6
+ G# 8
+ F# 4
+ G# 4
+ E_ 10
endchannel
@@ -27,15 +27,15 @@
dutycycle 10
notetype 12, 10, 7
octave 4
- note E_, 8
- note B_, 2
- note G#, 6
- note F#, 8
- note G#, 2
- note A_, 6
- note G#, 8
- note F#, 4
- note G#, 4
- note E_, 10
+ E_ 8
+ B_ 2
+ G# 6
+ F# 8
+ G# 2
+ A_ 6
+ G# 8
+ F# 4
+ G# 4
+ E_ 10
endchannel
-; 0x7fbaf
\ No newline at end of file
+; 0x7fbaf
--- a/audio/music/lavender.asm
+++ b/audio/music/lavender.asm
@@ -1,8 +1,8 @@
Music_Lavender_Ch1:: ; bb58 (2:7b58)
- tempo 0, 152
- stereopanning 119
+ tempo 152
+ volume 7, 7
duty 1
- togglecall
+ toggleperfectpitch
vibrato 0, 8, 8
notetype 12, 8, 7
rest 16
@@ -13,48 +13,48 @@
Music_Lavender_branch_bb6b::
octave 3
- note G_, 8
- note G_, 8
- note E_, 8
- note E_, 8
- note G_, 4
- note F#, 4
- note E_, 4
- note B_, 4
- note C#, 8
- note C#, 8
- note G_, 8
- note G_, 8
- note F#, 8
- note F#, 8
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ G_ 8
+ G_ 8
+ E_ 8
+ E_ 8
+ G_ 4
+ F# 4
+ E_ 4
+ B_ 4
+ C# 8
+ C# 8
+ G_ 8
+ G_ 8
+ F# 8
+ F# 8
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
octave 4
- note C_, 8
- note C_, 8
+ C_ 8
+ C_ 8
octave 3
- note G_, 8
- note G_, 8
- note E_, 8
- note E_, 8
- note G_, 4
- note F#, 4
- note E_, 4
- note B_, 4
- note C#, 8
- note C#, 8
- note G_, 8
- note G_, 8
- note F#, 8
- note F#, 8
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
- note C_, 8
- note C_, 8
+ G_ 8
+ G_ 8
+ E_ 8
+ E_ 8
+ G_ 4
+ F# 4
+ E_ 4
+ B_ 4
+ C# 8
+ C# 8
+ G_ 8
+ G_ 8
+ F# 8
+ F# 8
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
+ C_ 8
+ C_ 8
rest 16
rest 16
rest 16
@@ -69,10 +69,10 @@
Music_Lavender_branch_bba5::
octave 5
- note C_, 4
- note G_, 4
- note B_, 4
- note F#, 4
+ C_ 4
+ G_ 4
+ B_ 4
+ F# 4
loopchannel 0, Music_Lavender_branch_bba5
@@ -87,102 +87,102 @@
Music_Lavender_branch_bbb9::
octave 4
- note E_, 16
- note D_, 16
- note C_, 16
- note E_, 4
- note C_, 4
+ E_ 16
+ D_ 16
+ C_ 16
+ E_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
- note E_, 16
- note D_, 16
- note C_, 16
- note E_, 4
- note C_, 4
+ E_ 4
+ E_ 16
+ D_ 16
+ C_ 16
+ E_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
- note E_, 16
- note D_, 16
- note C_, 16
- note E_, 4
- note C_, 4
+ E_ 4
+ E_ 16
+ D_ 16
+ C_ 16
+ E_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
+ E_ 4
notetype 12, 3, 5
octave 6
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
notetype 12, 2, 5
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
octave 7
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
octave 4
- note E_, 4
- note G_, 4
- note F#, 4
- note B_, 4
- note E_, 16
- note D_, 16
- note C_, 16
- note E_, 4
- note C_, 4
+ E_ 4
+ G_ 4
+ F# 4
+ B_ 4
+ E_ 16
+ D_ 16
+ C_ 16
+ E_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
- note E_, 16
- note D_, 16
- note C_, 16
- note E_, 4
- note C_, 4
+ E_ 4
+ E_ 16
+ D_ 16
+ C_ 16
+ E_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
- note E_, 16
- note D_, 16
- note C_, 16
- note E_, 4
- note C_, 4
+ E_ 4
+ E_ 16
+ D_ 16
+ C_ 16
+ E_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 4
+ E_ 4
notetype 12, 2, 5
octave 6
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
octave 7
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
octave 8
- note B_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ B_ 4
octave 4
- note E_, 4
- note G_, 4
- note F#, 4
- note B_, 4
+ E_ 4
+ G_ 4
+ F# 4
+ B_ 4
loopchannel 0, Music_Lavender_branch_bbb9
@@ -194,7 +194,7 @@
rest 16
Music_Lavender_branch_bc26::
- dnote 8, triangle2
- dnote 8, triangle2
+ triangle2 8
+ triangle2 8
loopchannel 0, Music_Lavender_branch_bc26
-; 0xbc2e
\ No newline at end of file
+; 0xbc2e
--- a/audio/music/meeteviltrainer.asm
+++ b/audio/music/meeteviltrainer.asm
@@ -1,23 +1,23 @@
Music_MeetEvilTrainer_Ch1:: ; 7f69d (1f:769d)
- tempo 0, 124
- stereopanning 119
+ tempo 124
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 12, 11, 1
rest 4
octave 3
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
notetype 12, 4, 15
- note D_, 4
+ D_ 4
Music_MeetEvilTrainer_branch_7f6ae::
notetype 12, 10, 1
- note D_, 4
- note D_, 4
- note D_, 4
+ D_ 4
+ D_ 4
+ D_ 4
notetype 12, 7, 0
- note D_, 4
+ D_ 4
loopchannel 0, Music_MeetEvilTrainer_branch_7f6ae
@@ -25,37 +25,37 @@
duty 1
notetype 12, 11, 6
octave 3
- note B_, 2
- note A#, 2
- note B_, 8
+ B_ 2
+ A# 2
+ B_ 8
Music_MeetEvilTrainer_branch_7f6c2::
notetype 12, 12, 2
octave 4
- note D#, 2
- note D_, 2
- note C#, 2
- note C_, 2
+ D# 2
+ D_ 2
+ C# 2
+ C_ 2
octave 3
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
notetype 12, 4, 15
- note A#, 4
+ A# 4
notetype 12, 12, 2
- note G_, 2
- note G#, 2
- note A_, 2
- note A#, 2
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
+ G_ 2
+ G# 2
+ A_ 2
+ A# 2
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
notetype 12, 3, 15
- note A#, 4
+ A# 4
notetype 12, 12, 2
loopchannel 0, Music_MeetEvilTrainer_branch_7f6c2
@@ -64,18 +64,18 @@
notetype 12, 1, 0
rest 8
octave 4
- note F#, 1
+ F# 1
rest 1
- note F_, 1
+ F_ 1
rest 1
Music_MeetEvilTrainer_branch_7f6ee::
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note A#, 4
+ A# 4
loopchannel 0, Music_MeetEvilTrainer_branch_7f6ee
-; 0x7f6f9
\ No newline at end of file
+; 0x7f6f9
--- a/audio/music/meetfemaletrainer.asm
+++ b/audio/music/meetfemaletrainer.asm
@@ -1,28 +1,28 @@
Music_MeetFemaleTrainer_Ch1:: ; 7f6f9 (1f:76f9)
- tempo 0, 124
- stereopanning 119
+ tempo 124
+ volume 7, 7
duty 1
- togglecall
+ toggleperfectpitch
notetype 12, 11, 2
octave 3
- note G#, 6
+ G# 6
octave 4
- note E_, 2
- note D#, 2
- note C#, 2
- note C_, 2
+ E_ 2
+ D# 2
+ C# 2
+ C_ 2
notetype 12, 8, 1
Music_MeetFemaleTrainer_branch_7f70c::
octave 3
- note E_, 4
+ E_ 4
loopchannel 12, Music_MeetFemaleTrainer_branch_7f70c
- note E_, 4
+ E_ 4
octave 2
- note B_, 4
- note B_, 4
+ B_ 4
+ B_ 4
octave 3
- note E_, 4
+ E_ 4
loopchannel 0, Music_MeetFemaleTrainer_branch_7f70c
@@ -30,44 +30,44 @@
duty 2
notetype 12, 12, 2
octave 3
- note B_, 2
+ B_ 2
notetype 12, 12, 7
octave 4
- note B_, 12
+ B_ 12
Music_MeetFemaleTrainer_branch_7f726::
notetype 12, 12, 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note D#, 4
- note E_, 4
- note D#, 4
- note C#, 2
- note C_, 2
+ D# 4
+ E_ 4
+ D# 4
+ C# 2
+ C_ 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note A#, 2
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ A# 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note A_, 2
+ B_ 4
+ A_ 4
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
+ F# 2
+ G# 2
+ A_ 2
loopchannel 0, Music_MeetFemaleTrainer_branch_7f726
@@ -75,45 +75,45 @@
notetype 12, 1, 0
rest 8
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
Music_MeetFemaleTrainer_branch_7f756::
callchannel Music_MeetFemaleTrainer_branch_7f770
- note G#, 1
+ G# 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note E_, 1
+ E_ 1
rest 3
callchannel Music_MeetFemaleTrainer_branch_7f770
- note G#, 1
+ G# 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note B_, 1
+ B_ 1
rest 3
loopchannel 0, Music_MeetFemaleTrainer_branch_7f756
Music_MeetFemaleTrainer_branch_7f770::
- note G#, 1
+ G# 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
endchannel
-; 0x7f77b
\ No newline at end of file
+; 0x7f77b
--- a/audio/music/meetmaletrainer.asm
+++ b/audio/music/meetmaletrainer.asm
@@ -1,34 +1,34 @@
Music_MeetMaleTrainer_Ch1:: ; 7f77b (1f:777b)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
duty 3
vibrato 20, 3, 3
- togglecall
+ toggleperfectpitch
notetype 12, 11, 4
octave 3
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 12
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 12
rest 16
Music_MeetMaleTrainer_branch_7f78f::
octave 3
- note B_, 4
- note A_, 4
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note F#, 4
- note E_, 6
- note F_, 2
- note F#, 4
- note G_, 8
+ B_ 4
+ A_ 4
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ F# 4
+ E_ 6
+ F_ 2
+ F# 4
+ G_ 8
octave 4
- note D_, 8
- note E_, 16
+ D_ 8
+ E_ 16
loopchannel 0, Music_MeetMaleTrainer_branch_7f78f
@@ -37,41 +37,41 @@
vibrato 24, 2, 2
notetype 12, 12, 4
octave 4
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
octave 3
- note B_, 12
+ B_ 12
rest 2
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 9
Music_MeetMaleTrainer_branch_7f7b5::
notetype 12, 12, 4
octave 4
- note E_, 6
- note D#, 6
- note C#, 4
+ E_ 6
+ D# 6
+ C# 4
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 2
octave 4
- note C#, 2
+ C# 2
notetype 12, 12, 7
- note F_, 16
+ F_ 16
notetype 12, 12, 5
octave 3
- note F#, 8
+ F# 8
octave 4
- note C#, 8
+ C# 8
loopchannel 0, Music_MeetMaleTrainer_branch_7f7b5
@@ -79,113 +79,113 @@
notetype 12, 1, 0
rest 6
octave 4
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
+ B_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
Music_MeetMaleTrainer_branch_7f7ea::
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note D_, 1
+ D_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note D_, 1
+ D_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note D_, 1
+ D_ 1
rest 1
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note D_, 1
+ D_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
loopchannel 0, Music_MeetMaleTrainer_branch_7f7ea
-; 0x7f844
\ No newline at end of file
+; 0x7f844
--- a/audio/music/meetprofoak.asm
+++ b/audio/music/meetprofoak.asm
@@ -1,76 +1,76 @@
Music_MeetProfOak_Ch1:: ; af59 (2:6f59)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
notetype 12, 11, 4
octave 3
- note F#, 1
- note B_, 1
+ F# 1
+ B_ 1
octave 4
- note D#, 1
- note E_, 1
- note F#, 12
+ D# 1
+ E_ 1
+ F# 12
notetype 12, 10, 2
octave 3
- note E_, 6
- note B_, 10
- note E_, 6
- note B_, 10
- note E_, 6
- note D#, 4
- note F#, 2
- note F#, 4
- note E_, 6
- note D#, 4
- note F#, 2
- note F#, 4
- note E_, 6
- note B_, 10
- note E_, 6
- note B_, 10
- note E_, 6
- note D#, 4
- note F#, 2
- note F#, 4
- note E_, 6
- note D#, 4
- note F#, 2
- note F#, 4
+ E_ 6
+ B_ 10
+ E_ 6
+ B_ 10
+ E_ 6
+ D# 4
+ F# 2
+ F# 4
+ E_ 6
+ D# 4
+ F# 2
+ F# 4
+ E_ 6
+ B_ 10
+ E_ 6
+ B_ 10
+ E_ 6
+ D# 4
+ F# 2
+ F# 4
+ E_ 6
+ D# 4
+ F# 2
+ F# 4
Music_MeetProfOak_branch_af85::
- note F#, 6
- note E_, 4
- note A_, 2
- note A_, 4
- note F#, 6
- note E_, 4
- note A_, 2
- note A_, 4
- note F#, 6
- note E_, 4
- note G#, 2
- note G#, 4
- note F#, 6
- note E_, 4
- note G#, 2
- note G#, 4
- note E_, 6
- note D#, 4
- note F#, 2
- note F#, 4
- note E_, 6
- note D#, 4
- note F#, 2
- note F#, 4
- note F#, 6
- note E_, 4
- note G#, 2
- note G#, 4
- note F#, 6
- note E_, 4
- note G#, 2
- note G#, 4
+ F# 6
+ E_ 4
+ A_ 2
+ A_ 4
+ F# 6
+ E_ 4
+ A_ 2
+ A_ 4
+ F# 6
+ E_ 4
+ G# 2
+ G# 4
+ F# 6
+ E_ 4
+ G# 2
+ G# 4
+ E_ 6
+ D# 4
+ F# 2
+ F# 4
+ E_ 6
+ D# 4
+ F# 2
+ F# 4
+ F# 6
+ E_ 4
+ G# 2
+ G# 4
+ F# 6
+ E_ 4
+ G# 2
+ G# 4
loopchannel 0, Music_MeetProfOak_branch_af85
@@ -79,132 +79,132 @@
duty 2
notetype 12, 12, 4
octave 3
- note B_, 1
+ B_ 1
octave 4
- note D#, 1
- note F#, 1
- note A#, 1
- note B_, 12
+ D# 1
+ F# 1
+ A# 1
+ B_ 12
notetype 12, 11, 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note E_, 4
- note D#, 2
- note C#, 4
+ C# 2
+ D# 2
+ E_ 4
+ D# 2
+ C# 4
notetype 12, 6, 4
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C#, 2
- note D#, 2
- note E_, 4
- note D#, 2
- note C#, 4
+ C# 2
+ D# 2
+ E_ 4
+ D# 2
+ C# 4
notetype 12, 11, 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 4
- note B_, 2
- note B_, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 4
+ B_ 2
+ B_ 4
notetype 12, 8, 1
octave 4
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 4
- note B_, 2
- note B_, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 4
+ B_ 2
+ B_ 4
notetype 12, 11, 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note E_, 4
- note D#, 2
- note C#, 4
+ C# 2
+ D# 2
+ E_ 4
+ D# 2
+ C# 4
notetype 12, 6, 4
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C#, 2
- note D#, 2
- note E_, 4
- note D#, 2
- note C#, 4
+ C# 2
+ D# 2
+ E_ 4
+ D# 2
+ C# 4
notetype 12, 11, 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 4
- note B_, 2
- note B_, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 4
+ B_ 2
+ B_ 4
notetype 12, 8, 1
octave 4
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 4
- note B_, 2
- note B_, 4
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 4
+ B_ 2
+ B_ 4
notetype 12, 11, 5
Music_MeetProfOak_branch_b005::
octave 4
- note C#, 6
+ C# 6
octave 3
- note A_, 1
+ A_ 1
octave 4
- note C#, 1
- note E_, 6
- note C#, 1
- note E_, 1
- note F#, 4
- note E_, 4
- note D#, 4
- note C#, 4
+ C# 1
+ E_ 6
+ C# 1
+ E_ 1
+ F# 4
+ E_ 4
+ D# 4
+ C# 4
octave 3
- note B_, 6
- note G#, 1
- note B_, 1
+ B_ 6
+ G# 1
+ B_ 1
octave 4
- note E_, 8
+ E_ 8
notetype 12, 6, 5
octave 4
- note B_, 6
- note G#, 1
- note B_, 1
+ B_ 6
+ G# 1
+ B_ 1
octave 5
- note E_, 8
+ E_ 8
notetype 12, 11, 5
octave 3
- note A_, 6
- note F#, 1
- note A_, 1
+ A_ 6
+ F# 1
+ A_ 1
octave 4
- note D#, 8
- note E_, 4
- note D#, 4
- note C#, 4
- note C_, 4
+ D# 8
+ E_ 4
+ D# 4
+ C# 4
+ C_ 4
octave 3
- note B_, 6
- note G#, 1
- note B_, 1
+ B_ 6
+ G# 1
+ B_ 1
octave 4
- note E_, 6
+ E_ 6
octave 3
- note B_, 1
+ B_ 1
octave 4
- note E_, 1
+ E_ 1
notetype 12, 11, 7
- note G#, 16
+ G# 16
loopchannel 0, Music_MeetProfOak_branch_b005
@@ -212,213 +212,213 @@
notetype 12, 1, 2
rest 10
octave 4
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 5
octave 5
- note E_, 4
+ E_ 4
rest 6
octave 4
- note B_, 1
+ B_ 1
rest 5
octave 5
- note E_, 4
+ E_ 4
octave 4
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
Music_MeetProfOak_branch_b0bc::
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
loopchannel 2, Music_MeetProfOak_branch_b0bc
Music_MeetProfOak_branch_b0d8::
octave 4
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
loopchannel 2, Music_MeetProfOak_branch_b0d8
Music_MeetProfOak_branch_b0ed::
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
loopchannel 2, Music_MeetProfOak_branch_b0ed
Music_MeetProfOak_branch_b101::
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
loopchannel 2, Music_MeetProfOak_branch_b101
loopchannel 0, Music_MeetProfOak_branch_b0bc
-; 0xb119
\ No newline at end of file
+; 0xb119
--- a/audio/music/meetrival.asm
+++ b/audio/music/meetrival.asm
@@ -1,145 +1,145 @@
Music_MeetRival_branch_b119::
- tempo 0, 100
+ tempo 100
loopchannel 0, Music_MeetRival_branch_b123
Music_MeetRival_Ch1:: ; b120 (2:7120)
- tempo 0, 112
+ tempo 112
Music_MeetRival_branch_b123::
- stereopanning 119
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 3
octave 4
- note D_, 1
- note C#, 1
- note C_, 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
- note A#, 2
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 6
- note D_, 1
+ B_ 1
+ A# 2
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 6
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
rest 5
- note A_, 2
- note G_, 2
- note A_, 2
+ A_ 2
+ G_ 2
+ A_ 2
Music_MeetRival_branch_b140::
- note B_, 4
- note A#, 2
- note A_, 4
- note G_, 2
+ B_ 4
+ A# 2
+ A_ 4
+ G_ 2
octave 4
- note C_, 4
- note D_, 2
+ C_ 4
+ D_ 2
rest 4
- note D_, 4
- note C#, 2
- note C_, 2
+ D_ 4
+ C# 2
+ C_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C_, 4
- note E_, 2
- note D_, 4
- note C_, 2
+ C_ 4
+ E_ 2
+ D_ 4
+ C_ 2
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C_, 2
+ C_ 2
rest 4
- note G_, 4
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note F#, 2
+ G_ 4
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ F# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note D_, 2
- note F#, 2
+ D_ 2
+ F# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note D_, 2
+ D_ 2
octave 3
- note D_, 2
+ D_ 2
octave 4
- note D_, 2
+ D_ 2
rest 2
octave 3
- note D_, 2
+ D_ 2
octave 4
- note C_, 4
+ C_ 4
octave 3
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 4
- note C_, 2
- note F_, 2
+ C_ 2
+ F_ 2
octave 3
- note G_, 2
+ G_ 2
octave 4
- note C_, 2
- note F_, 2
- note D#, 2
- note C_, 2
+ C_ 2
+ F_ 2
+ D# 2
+ C_ 2
octave 3
- note A#, 2
- note G_, 2
+ A# 2
+ G_ 2
rest 4
- note A#, 4
+ A# 4
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note C_, 2
+ C_ 2
notetype 12, 11, 7
octave 3
- note G_, 4
- note D_, 2
- note F_, 6
- note F#, 4
- note D_, 2
+ G_ 4
+ D_ 2
+ F_ 6
+ F# 4
+ D_ 2
rest 4
- note D_, 4
+ D_ 4
notetype 12, 11, 3
- note A_, 2
- note G_, 2
- note A_, 2
+ A_ 2
+ G_ 2
+ A_ 2
loopchannel 0, Music_MeetRival_branch_b140
Music_MeetRival_branch_b19b::
- tempo 0, 100
+ tempo 100
loopchannel 0, Music_MeetRival_branch_b1a5
Music_MeetRival_branch_b1a2::
- tempo 0, 112
+ tempo 112
Music_MeetRival_branch_b1a5::
- stereopanning 119
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 3
octave 3
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
rest 5
- note A_, 2
- note G_, 2
- note A_, 2
+ A_ 2
+ G_ 2
+ A_ 2
loopchannel 0, Music_MeetRival_branch_b140
@@ -148,86 +148,86 @@
vibrato 10, 2, 6
notetype 12, 12, 7
octave 4
- note B_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note G_, 2
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 6
+ B_ 1
+ A# 1
+ A_ 1
+ G# 1
+ G_ 2
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 6
octave 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note D_, 1
+ D_ 1
rest 1
octave 4
- note D_, 2
- note F_, 2
- note F#, 2
+ D_ 2
+ F_ 2
+ F# 2
Music_MeetRival_branch_b1d8::
notetype 12, 12, 7
- note G_, 4
- note D_, 2
- note F_, 6
- note F#, 4
- note G_, 2
+ G_ 4
+ D_ 2
+ F_ 6
+ F# 4
+ G_ 2
rest 4
- note G_, 4
- note G_, 2
- note A#, 2
- note B_, 2
+ G_ 4
+ G_ 2
+ A# 2
+ B_ 2
octave 5
- note C_, 4
+ C_ 4
octave 4
- note G_, 2
- note A#, 6
- note B_, 4
+ G_ 2
+ A# 6
+ B_ 4
octave 5
- note C_, 2
+ C_ 2
rest 4
- note C_, 4
- note C_, 2
+ C_ 4
+ C_ 2
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C_, 2
+ C_ 2
notetype 12, 11, 0
- note D_, 16
+ D_ 16
notetype 12, 11, 5
- note D_, 6
+ D_ 6
notetype 12, 12, 7
- note F_, 4
- note D_, 2
- note C_, 2
- note D_, 2
+ F_ 4
+ D_ 2
+ C_ 2
+ D_ 2
notetype 12, 11, 0
- note C_, 8
+ C_ 8
notetype 12, 12, 7
- note C_, 8
+ C_ 8
octave 4
- note C_, 2
+ C_ 2
rest 4
- note A#, 4
- note G_, 2
- note F_, 2
+ A# 4
+ G_ 2
+ F_ 2
notetype 12, 11, 0
- note G_, 16
+ G_ 16
notetype 12, 11, 3
- note G_, 2
+ G_ 2
octave 3
- note G_, 2
+ G_ 2
rest 4
- note G_, 4
+ G_ 4
octave 4
- note D_, 2
- note F_, 2
- note F#, 2
+ D_ 2
+ F_ 2
+ F# 2
loopchannel 0, Music_MeetRival_branch_b1d8
Music_MeetRival_branch_b21d::
@@ -235,16 +235,16 @@
vibrato 10, 2, 6
notetype 12, 12, 7
octave 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note D_, 1
+ D_ 1
rest 1
octave 4
- note D_, 2
- note F_, 2
- note F#, 2
+ D_ 2
+ F_ 2
+ F# 2
loopchannel 0, Music_MeetRival_branch_b1d8
@@ -251,147 +251,147 @@
Music_MeetRival_Ch3:: ; b233 (2:7233)
notetype 12, 1, 4
octave 5
- note D_, 2
+ D_ 2
rest 2
- note C#, 2
+ C# 2
rest 2
- note C_, 2
+ C_ 2
rest 2
octave 4
- note B_, 2
+ B_ 2
rest 2
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
Music_MeetRival_branch_b24b::
- note G_, 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
rest 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
rest 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
rest 4
octave 5
- note D_, 4
+ D_ 4
octave 4
- note G_, 2
- note A#, 2
- note B_, 2
- note G_, 2
+ G_ 2
+ A# 2
+ B_ 2
+ G_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G_, 2
+ G_ 2
rest 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
octave 5
- note C_, 2
+ C_ 2
rest 4
- note C_, 4
- note C_, 2
+ C_ 4
+ C_ 2
octave 4
- note B_, 2
- note A_, 2
- note F#, 2
- note A_, 2
+ B_ 2
+ A_ 2
+ F# 2
+ A_ 2
rest 2
- note F#, 2
- note A_, 2
- note F#, 2
+ F# 2
+ A_ 2
+ F# 2
rest 2
- note A_, 2
- note F#, 2
- note A_, 2
+ A_ 2
+ F# 2
+ A_ 2
rest 2
- note F#, 2
- note A_, 2
- note F#, 2
+ F# 2
+ A_ 2
+ F# 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note A_, 2
- note E_, 2
+ A_ 2
+ E_ 2
octave 5
- note C_, 2
+ C_ 2
rest 2
octave 4
- note E_, 2
+ E_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note E_, 2
- note F_, 2
- note G_, 2
- note E_, 2
+ E_ 2
+ F_ 2
+ G_ 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
octave 5
- note C_, 2
+ C_ 2
octave 4
- note B_, 2
- note A#, 2
- note A_, 2
- note G_, 2
- note A#, 2
+ B_ 2
+ A# 2
+ A_ 2
+ G_ 2
+ A# 2
rest 2
- note G_, 2
- note A#, 2
- note G_, 2
+ G_ 2
+ A# 2
+ G_ 2
rest 2
- note A#, 2
- note G_, 2
+ A# 2
+ G_ 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
rest 2
octave 5
- note D_, 2
+ D_ 2
octave 4
- note G_, 2
+ G_ 2
rest 2
octave 5
- note D_, 2
+ D_ 2
loopchannel 0, Music_MeetRival_branch_b24b
Music_MeetRival_branch_b2b5::
notetype 12, 1, 4
octave 4
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
loopchannel 0, Music_MeetRival_branch_b24b
-; 0xb2c8
\ No newline at end of file
+; 0xb2c8
--- a/audio/music/museumguy.asm
+++ b/audio/music/museumguy.asm
@@ -1,56 +1,56 @@
Music_MuseumGuy_Ch1:: ; adae (2:6dae)
- tempo 0, 128
- stereopanning 119
+ tempo 128
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 12, 11, 1
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
octave 2
- note B_, 4
- note B_, 1
+ B_ 4
+ B_ 1
octave 3
- note D#, 1
- note E_, 1
- note G#, 1
- note B_, 10
+ D# 1
+ E_ 1
+ G# 1
+ B_ 10
callchannel Music_MuseumGuy_branch_ade7
callchannel Music_MuseumGuy_branch_adec
callchannel Music_MuseumGuy_branch_ade7
- note E_, 4
- note E_, 4
- note E_, 2
- note E_, 6
+ E_ 4
+ E_ 4
+ E_ 2
+ E_ 6
Music_MuseumGuy_branch_add6::
callchannel Music_MuseumGuy_branch_ade7
callchannel Music_MuseumGuy_branch_adec
callchannel Music_MuseumGuy_branch_ade7
- note E_, 4
- note E_, 4
- note E_, 2
- note E_, 6
+ E_ 4
+ E_ 4
+ E_ 2
+ E_ 6
loopchannel 0, Music_MuseumGuy_branch_add6
Music_MuseumGuy_branch_ade7::
- note E_, 2
- note E_, 6
- note F#, 2
- note F#, 6
+ E_ 2
+ E_ 6
+ F# 2
+ F# 6
endchannel
Music_MuseumGuy_branch_adec::
- note E_, 2
- note E_, 6
- note D_, 2
- note D_, 6
+ E_ 2
+ E_ 6
+ D_ 2
+ D_ 6
endchannel
@@ -58,110 +58,110 @@
duty 2
notetype 12, 12, 1
octave 4
- note E_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note C#, 2
+ E_ 2
+ D_ 2
+ C# 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note E_, 4
- note E_, 1
- note G#, 1
- note B_, 1
+ B_ 2
+ A_ 2
+ G# 2
+ E_ 4
+ E_ 1
+ G# 1
+ B_ 1
octave 4
- note D#, 1
- note E_, 8
+ D# 1
+ E_ 8
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
- note E_, 4
- note D_, 2
- note F#, 2
- note A_, 4
+ C# 2
+ E_ 4
+ D_ 2
+ F# 2
+ A_ 4
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
- note E_, 4
- note D_, 2
- note C#, 2
+ C# 2
+ E_ 4
+ D_ 2
+ C# 2
octave 3
- note B_, 4
- note A_, 2
+ B_ 4
+ A_ 2
octave 4
- note C#, 2
- note E_, 4
- note D_, 2
- note F#, 2
- note A_, 2
- note A_, 2
- note G#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note A_, 2
- note A_, 4
+ C# 2
+ E_ 4
+ D_ 2
+ F# 2
+ A_ 2
+ A_ 2
+ G# 2
+ E_ 2
+ F# 2
+ G# 2
+ A_ 2
+ A_ 2
+ A_ 4
Music_MuseumGuy_branch_ae26::
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
- note E_, 3
+ C# 2
+ E_ 3
notetype 12, 8, 1
- note E_, 1
+ E_ 1
notetype 12, 12, 1
- note D_, 2
- note F#, 2
- note A_, 3
+ D_ 2
+ F# 2
+ A_ 3
notetype 12, 9, 1
- note A_, 1
+ A_ 1
notetype 12, 12, 1
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
- note E_, 4
- note D_, 1
- note C#, 1
- note C_, 1
+ C# 2
+ E_ 4
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
- note B_, 3
+ B_ 1
+ B_ 3
notetype 12, 10, 1
- note G#, 1
+ G# 1
notetype 12, 12, 1
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
- note E_, 3
+ C# 2
+ E_ 3
notetype 12, 9, 1
- note E_, 1
+ E_ 1
notetype 12, 12, 1
- note D_, 2
- note F#, 2
- note A_, 3
+ D_ 2
+ F# 2
+ A_ 3
notetype 12, 8, 1
- note A_, 1
+ A_ 1
notetype 12, 12, 1
- note G#, 2
- note E_, 1
+ G# 2
+ E_ 1
notetype 12, 8, 1
- note E_, 1
+ E_ 1
notetype 12, 12, 1
- note F#, 2
+ F# 2
notetype 12, 8, 1
- note F#, 1
+ F# 1
notetype 12, 12, 1
- note G#, 1
- note A_, 2
- note A_, 2
- note A_, 4
+ G# 1
+ A_ 2
+ A_ 2
+ A_ 4
loopchannel 0, Music_MuseumGuy_branch_ae26
@@ -169,29 +169,29 @@
notetype 12, 1, 0
rest 16
octave 4
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 9
callchannel Music_MuseumGuy_branch_aeb8
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 5
- note G#, 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 5
callchannel Music_MuseumGuy_branch_aeb8
- note B_, 1
+ B_ 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
Music_MuseumGuy_branch_ae8e::
@@ -198,66 +198,66 @@
callchannel Music_MuseumGuy_branch_aec1
rest 3
octave 6
- note E_, 1
+ E_ 1
rest 1
octave 5
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 3
callchannel Music_MuseumGuy_branch_aec1
rest 1
octave 6
- note E_, 1
+ E_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
octave 5
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
loopchannel 0, Music_MuseumGuy_branch_ae8e
Music_MuseumGuy_branch_aeb8::
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 5
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 5
endchannel
Music_MuseumGuy_branch_aec1::
octave 6
- note C#, 1
+ C# 1
rest 1
octave 5
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
octave 6
- note F#, 1
+ F# 1
rest 1
octave 5
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
endchannel
@@ -270,69 +270,69 @@
rest 16
rest 14
dspeed 6
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
Music_MuseumGuy_branch_aee1::
- dnote 4, mutedsnare2
- dnote 6, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 6, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 4, mutedsnare2
- dnote 6, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 6, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 2, mutedsnare2
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 6, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare2 4
+ mutedsnare2 6
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 6
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 4
+ mutedsnare2 6
+ mutedsnare2 2
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 6
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 2
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 6
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
loopchannel 0, Music_MuseumGuy_branch_aee1
-; 0xaf59
\ No newline at end of file
+; 0xaf59
--- a/audio/music/oakslab.asm
+++ b/audio/music/oakslab.asm
@@ -1,71 +1,71 @@
Music_OaksLab_Ch1:: ; 7eeb9 (1f:6eb9)
- tempo 0, 140
- stereopanning 119
+ tempo 140
+ volume 7, 7
duty 3
vibrato 16, 1, 2
- togglecall
+ toggleperfectpitch
notetype 12, 11, 3
octave 2
- note B_, 1
+ B_ 1
octave 3
- note C#, 1
- note D_, 1
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
- note B_, 1
+ C# 1
+ D_ 1
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
+ B_ 1
Music_OaksLab_branch_7eed0::
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 4
- note G#, 2
- note A_, 2
- note B_, 1
+ A_ 4
+ G# 2
+ A_ 2
+ B_ 1
rest 3
- note A_, 6
- note G#, 1
- note B_, 1
+ A_ 6
+ G# 1
+ B_ 1
octave 4
- note C#, 4
+ C# 4
octave 3
- note A_, 4
- note G#, 2
- note A_, 2
- note F#, 4
- note E_, 2
- note F#, 2
- note G#, 1
+ A_ 4
+ G# 2
+ A_ 2
+ F# 4
+ E_ 2
+ F# 2
+ G# 1
rest 3
- note F#, 8
- note E_, 4
- note A_, 6
- note E_, 1
- note A_, 1
+ F# 8
+ E_ 4
+ A_ 6
+ E_ 1
+ A_ 1
octave 4
- note D_, 8
- note C#, 6
+ D_ 8
+ C# 6
octave 3
- note A_, 1
+ A_ 1
octave 4
- note C#, 1
- note E_, 8
- note D_, 4
- note C#, 4
+ C# 1
+ E_ 8
+ D_ 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
- note G#, 1
+ B_ 4
+ A_ 4
+ G# 1
rest 3
- note E_, 4
- note F#, 4
- note G#, 4
+ E_ 4
+ F# 4
+ G# 4
loopchannel 0, Music_OaksLab_branch_7eed0
@@ -74,72 +74,72 @@
vibrato 10, 2, 5
notetype 12, 12, 4
octave 3
- note G#, 1
- note A_, 1
- note B_, 1
+ G# 1
+ A_ 1
+ B_ 1
octave 4
- note C#, 1
- note D_, 1
- note E_, 1
- note F#, 1
- note G#, 1
+ C# 1
+ D_ 1
+ E_ 1
+ F# 1
+ G# 1
Music_OaksLab_branch_7ef16::
- note A_, 6
- note G#, 1
- note F#, 1
- note E_, 6
- note D#, 1
- note E_, 1
- note F#, 1
+ A_ 6
+ G# 1
+ F# 1
+ E_ 6
+ D# 1
+ E_ 1
+ F# 1
rest 3
- note E_, 8
- note E_, 4
- note F#, 6
- note E_, 1
- note D_, 1
- note C#, 6
+ E_ 8
+ E_ 4
+ F# 6
+ E_ 1
+ D_ 1
+ C# 6
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
- note D_, 1
+ C# 1
+ D_ 1
rest 3
- note C#, 8
- note C#, 4
- note D_, 6
+ C# 8
+ C# 4
+ D_ 6
octave 3
- note A_, 1
+ A_ 1
octave 4
- note D_, 1
- note F#, 8
- note E_, 6
- note C#, 1
- note E_, 1
- note A_, 8
- note G#, 4
- note A_, 2
- note G#, 2
- note F#, 4
- note G#, 2
- note F#, 2
- note E_, 1
+ D_ 1
+ F# 8
+ E_ 6
+ C# 1
+ E_ 1
+ A_ 8
+ G# 4
+ A_ 2
+ G# 2
+ F# 4
+ G# 2
+ F# 2
+ E_ 1
rest 1
octave 3
- note G#, 1
+ G# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
loopchannel 0, Music_OaksLab_branch_7ef16
@@ -148,247 +148,247 @@
notetype 12, 1, 1
rest 2
octave 4
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
Music_OaksLab_branch_7ef5c::
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
+ A_ 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 5
- note G#, 1
+ G# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 3
- note A_, 1
+ A_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note E_, 1
+ E_ 1
rest 3
loopchannel 0, Music_OaksLab_branch_7ef5c
-; 0x7f04a
\ No newline at end of file
+; 0x7f04a
--- a/audio/music/pallettown.asm
+++ b/audio/music/pallettown.asm
@@ -1,149 +1,149 @@
Music_PalletTown_Ch1:: ; a7c5 (2:67c5)
- tempo 0, 160
- stereopanning 119
+ tempo 160
+ volume 7, 7
duty 2
notetype 12, 12, 3
Music_PalletTown_branch_a7ce::
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C_, 2
- note D_, 4
- note G_, 2
- note D_, 2
- note C_, 2
+ C_ 2
+ D_ 4
+ G_ 2
+ D_ 2
+ C_ 2
octave 3
- note B_, 4
- note G_, 2
+ B_ 4
+ G_ 2
octave 4
- note D_, 4
- note D_, 2
- note C_, 2
+ D_ 4
+ D_ 2
+ C_ 2
octave 3
- note B_, 2
+ B_ 2
rest 2
- note B_, 2
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C_, 8
+ C_ 8
rest 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A_, 2
- note B_, 2
- note G_, 2
- note A_, 2
- note F#, 2
- note B_, 4
+ A_ 2
+ B_ 2
+ G_ 2
+ A_ 2
+ F# 2
+ B_ 4
octave 4
- note C_, 2
- note D_, 4
- note G_, 2
- note D_, 2
- note C_, 2
+ C_ 2
+ D_ 4
+ G_ 2
+ D_ 2
+ C_ 2
octave 3
- note B_, 4
- note G_, 2
+ B_ 4
+ G_ 2
octave 4
- note D_, 4
- note D_, 2
- note G_, 2
- note F#, 2
- note E_, 4
- note D_, 2
- note C_, 4
+ D_ 4
+ D_ 2
+ G_ 2
+ F# 2
+ E_ 4
+ D_ 2
+ C_ 4
octave 3
- note A_, 2
- note B_, 2
+ A_ 2
+ B_ 2
octave 4
- note C_, 2
- note D_, 2
- note C_, 2
+ C_ 2
+ D_ 2
+ C_ 2
octave 3
- note B_, 2
- note A_, 2
- note G_, 4
- note F#, 4
+ B_ 2
+ A_ 2
+ G_ 4
+ F# 4
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G_, 2
- note E_, 2
- note G_, 2
+ G_ 2
+ E_ 2
+ G_ 2
octave 4
- note D_, 2
+ D_ 2
octave 3
- note A_, 2
- note F#, 2
- note A_, 2
+ A_ 2
+ F# 2
+ A_ 2
notetype 12, 11, 3
- note B_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note D_, 2
- note G_, 2
+ B_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ D_ 2
+ G_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G_, 2
- note E_, 2
- note G_, 2
+ G_ 2
+ E_ 2
+ G_ 2
octave 4
- note D_, 2
+ D_ 2
octave 3
- note A_, 2
- note F#, 2
- note A_, 2
- note B_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note D_, 2
- note G_, 2
- note A_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note F#, 2
- note D_, 2
- note C_, 2
- note D_, 2
- note G_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note C_, 2
- note E_, 2
- note F#, 2
- note D_, 2
- note C_, 2
- note D_, 2
+ A_ 2
+ F# 2
+ A_ 2
+ B_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ D_ 2
+ G_ 2
+ A_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ F# 2
+ D_ 2
+ C_ 2
+ D_ 2
+ G_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ C_ 2
+ E_ 2
+ F# 2
+ D_ 2
+ C_ 2
+ D_ 2
loopchannel 0, Music_PalletTown_branch_a7ce
endchannel
@@ -154,110 +154,110 @@
Music_PalletTown_branch_a861::
notetype 12, 13, 3
octave 5
- note D_, 2
+ D_ 2
notetype 12, 10, 3
- note C_, 2
+ C_ 2
notetype 12, 13, 3
octave 4
- note B_, 2
+ B_ 2
notetype 12, 11, 3
- note A_, 2
+ A_ 2
notetype 12, 13, 3
octave 5
- note G_, 2
+ G_ 2
notetype 12, 11, 3
- note E_, 2
+ E_ 2
notetype 12, 13, 3
- note F#, 2
- note E_, 2
- note D_, 6
+ F# 2
+ E_ 2
+ D_ 6
octave 4
- note B_, 2
- note G_, 2
- note G_, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ G_ 2
+ G_ 2
+ A_ 2
+ B_ 2
octave 5
- note C_, 10
+ C_ 10
octave 4
- note F#, 2
- note G_, 2
- note A_, 2
- note B_, 6
+ F# 2
+ G_ 2
+ A_ 2
+ B_ 6
octave 5
- note C_, 1
+ C_ 1
octave 4
- note B_, 1
- note A_, 8
+ B_ 1
+ A_ 8
octave 5
- note D_, 2
+ D_ 2
notetype 12, 10, 3
- note C_, 2
+ C_ 2
notetype 12, 13, 3
octave 4
- note B_, 2
+ B_ 2
notetype 12, 11, 3
octave 5
- note D_, 2
+ D_ 2
notetype 12, 13, 3
- note G_, 2
+ G_ 2
notetype 12, 10, 3
- note F#, 2
+ F# 2
notetype 12, 11, 3
- note F#, 2
+ F# 2
notetype 12, 13, 3
- note G_, 2
- note E_, 6
- note D_, 2
- note D_, 8
- note C_, 2
+ G_ 2
+ E_ 6
+ D_ 2
+ D_ 8
+ C_ 2
octave 4
- note B_, 2
- note A_, 2
- note G_, 2
+ B_ 2
+ A_ 2
+ G_ 2
octave 5
- note D_, 2
- note C_, 2
+ D_ 2
+ C_ 2
octave 4
- note B_, 2
- note A_, 2
- note G_, 10
- note G_, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ G_ 10
+ G_ 2
+ A_ 2
+ B_ 2
octave 5
- note C_, 8
- note D_, 6
- note C_, 2
+ C_ 8
+ D_ 6
+ C_ 2
octave 4
- note B_, 8
+ B_ 8
rest 2
- note G_, 2
- note A_, 2
- note B_, 2
+ G_ 2
+ A_ 2
+ B_ 2
octave 5
- note C_, 4
- note C_, 4
- note D_, 6
- note C_, 1
- note D_, 1
+ C_ 4
+ C_ 4
+ D_ 6
+ C_ 1
+ D_ 1
octave 4
- note B_, 8
+ B_ 8
rest 2
- note B_, 2
- note A_, 2
- note G_, 2
- note A_, 8
- note E_, 4
- note B_, 4
- note A_, 8
- note G_, 4
- note E_, 4
- note F#, 8
- note G_, 4
- note B_, 4
- note B_, 8
- note A_, 8
+ B_ 2
+ A_ 2
+ G_ 2
+ A_ 8
+ E_ 4
+ B_ 4
+ A_ 8
+ G_ 4
+ E_ 4
+ F# 8
+ G_ 4
+ B_ 4
+ B_ 8
+ A_ 8
loopchannel 0, Music_PalletTown_branch_a861
endchannel
@@ -268,48 +268,48 @@
Music_PalletTown_branch_a8e3::
octave 4
- note G_, 6
- note E_, 6
- note F#, 4
- note G_, 6
- note A_, 6
- note G_, 4
- note E_, 6
- note F#, 6
- note E_, 4
- note G_, 6
- note E_, 6
- note D_, 4
- note G_, 6
- note E_, 6
- note F#, 4
- note G_, 6
- note A_, 6
- note G_, 4
- note E_, 6
- note F#, 6
- note A_, 4
- note G_, 6
- note E_, 6
- note D_, 4
- note C_, 8
- note D_, 8
- note G_, 8
- note E_, 4
- note D_, 4
- note C_, 8
- note D_, 8
- note G_, 8
- note A_, 4
- note G_, 4
- note E_, 8
- note A_, 8
- note E_, 8
- note G_, 8
- note F#, 8
- note E_, 8
- note E_, 8
- note F#, 8
+ G_ 6
+ E_ 6
+ F# 4
+ G_ 6
+ A_ 6
+ G_ 4
+ E_ 6
+ F# 6
+ E_ 4
+ G_ 6
+ E_ 6
+ D_ 4
+ G_ 6
+ E_ 6
+ F# 4
+ G_ 6
+ A_ 6
+ G_ 4
+ E_ 6
+ F# 6
+ A_ 4
+ G_ 6
+ E_ 6
+ D_ 4
+ C_ 8
+ D_ 8
+ G_ 8
+ E_ 4
+ D_ 4
+ C_ 8
+ D_ 8
+ G_ 8
+ A_ 4
+ G_ 4
+ E_ 8
+ A_ 8
+ E_ 8
+ G_ 8
+ F# 8
+ E_ 8
+ E_ 8
+ F# 8
loopchannel 0, Music_PalletTown_branch_a8e3
endchannel
-; 0xa913
\ No newline at end of file
+; 0xa913
--- a/audio/music/pkmnhealed.asm
+++ b/audio/music/pkmnhealed.asm
@@ -1,21 +1,21 @@
Music_PkmnHealed_Ch1:: ; 9ba3 (2:5ba3)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 12, 8, 1
rest 2
pitchbend 0, 75
- note B_, 2
+ B_ 2
pitchbend 0, 84
- note B_, 2
+ B_ 2
pitchbend 0, 68
- note E_, 2
+ E_ 2
rest 4
pitchbend 0, 59
- note E_, 4
+ E_ 4
pitchbend 0, 75
- note B_, 4
+ B_ 4
endchannel
@@ -23,13 +23,13 @@
duty 2
notetype 12, 12, 3
octave 4
- note B_, 4
- note B_, 4
- note B_, 2
- note G#, 2
+ B_ 4
+ B_ 4
+ B_ 2
+ G# 2
notetype 12, 12, 4
octave 5
- note E_, 8
+ E_ 8
endchannel
@@ -36,13 +36,13 @@
Music_PkmnHealed_Ch3:: ; 9bd2 (2:5bd2)
notetype 12, 1, 0
octave 4
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
- note G#, 2
- note E_, 6
+ E_ 2
+ G# 2
+ E_ 6
rest 2
endchannel
-; 0x9bde
\ No newline at end of file
+; 0x9bde
--- a/audio/music/pokecenter.asm
+++ b/audio/music/pokecenter.asm
@@ -1,151 +1,151 @@
Music_Pokecenter_Ch1:: ; be56 (2:7e56)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
duty 3
vibrato 10, 2, 2
- togglecall
+ toggleperfectpitch
Music_Pokecenter_branch_be61::
notetype 12, 10, 3
octave 3
- note F#, 2
- note F_, 2
- note F#, 2
+ F# 2
+ F_ 2
+ F# 2
notetype 12, 11, 5
octave 4
- note D_, 4
- note C#, 2
+ D_ 4
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
+ B_ 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
notetype 12, 10, 3
- note A_, 2
- note E_, 2
- note A_, 2
+ A_ 2
+ E_ 2
+ A_ 2
notetype 12, 11, 5
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ A_ 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note C#, 2
+ C# 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
notetype 12, 10, 3
- note F#, 2
- note F_, 2
- note F#, 2
+ F# 2
+ F_ 2
+ F# 2
notetype 12, 11, 5
octave 4
- note D_, 4
- note C#, 2
+ D_ 4
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
+ B_ 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
notetype 12, 10, 3
- note A_, 2
- note E_, 2
- note A_, 2
+ A_ 2
+ E_ 2
+ A_ 2
notetype 12, 11, 5
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note B_, 2
- note F#, 2
- note E_, 2
- note D_, 4
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G_, 4
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 4
- note C#, 2
- note D_, 2
- note E_, 2
- note G_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note B_, 2
- note A_, 8
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ B_ 2
+ F# 2
+ E_ 2
+ D_ 4
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G_ 4
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 4
+ C# 2
+ D_ 2
+ E_ 2
+ G_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ B_ 2
+ A_ 8
octave 4
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 4
- note A_, 2
- note B_, 2
+ B_ 4
+ A_ 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note E_, 2
- note D_, 2
- note C#, 4
+ C# 2
+ D_ 2
+ E_ 2
+ D_ 2
+ C# 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note E_, 2
- note C#, 2
+ C# 2
+ D_ 2
+ E_ 2
+ C# 2
octave 3
- note B_, 2
- note A_, 4
- note G_, 2
- note A_, 2
- note B_, 2
- note G_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note F#, 2
- note G_, 2
+ B_ 2
+ A_ 4
+ G_ 2
+ A_ 2
+ B_ 2
+ G_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ E_ 2
+ F# 2
+ G_ 2
loopchannel 0, Music_Pokecenter_branch_be61
@@ -157,62 +157,62 @@
duty 3
notetype 12, 10, 5
octave 3
- note A_, 4
- note E_, 4
+ A_ 4
+ E_ 4
callchannel Music_Pokecenter_branch_bf60
- note D_, 2
- note F#, 6
+ D_ 2
+ F# 6
duty 3
notetype 12, 10, 5
octave 3
- note A_, 4
- note E_, 4
+ A_ 4
+ E_ 4
callchannel Music_Pokecenter_branch_bf4e
duty 3
notetype 12, 10, 5
octave 3
- note A_, 4
- note E_, 4
+ A_ 4
+ E_ 4
callchannel Music_Pokecenter_branch_bf60
- note D_, 8
+ D_ 8
duty 3
notetype 12, 10, 5
octave 3
- note D_, 4
- note E_, 4
+ D_ 4
+ E_ 4
duty 2
notetype 12, 12, 6
octave 4
- note F#, 8
- note A_, 8
- note G_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 8
- note C#, 8
- note E_, 8
- note F#, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 8
- note F#, 8
- note A_, 8
- note G_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note B_, 8
- note A_, 4
- note G_, 2
- note F#, 2
- note G_, 8
- note F#, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 8
+ F# 8
+ A_ 8
+ G_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 8
+ C# 8
+ E_ 8
+ F# 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 8
+ F# 8
+ A_ 8
+ G_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ B_ 8
+ A_ 4
+ G_ 2
+ F# 2
+ G_ 8
+ F# 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 8
loopchannel 0, Music_Pokecenter_branch_befc
Music_Pokecenter_branch_bf4e::
@@ -219,17 +219,17 @@
duty 2
notetype 12, 12, 2
octave 4
- note D_, 2
+ D_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note D_, 2
+ D_ 2
notetype 12, 12, 3
- note A_, 4
- note G_, 4
- note F#, 2
- note E_, 2
- note C#, 6
+ A_ 4
+ G_ 4
+ F# 2
+ E_ 2
+ C# 6
endchannel
Music_Pokecenter_branch_bf60::
@@ -236,15 +236,15 @@
duty 2
notetype 12, 12, 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
+ C# 2
notetype 12, 12, 3
- note F#, 4
- note E_, 4
- note C#, 2
+ F# 4
+ E_ 4
+ C# 2
endchannel
@@ -253,124 +253,124 @@
Music_Pokecenter_branch_bf72::
octave 4
- note D_, 2
- note F#, 2
- note D_, 2
- note F#, 2
- note D_, 2
- note F#, 2
- note G_, 2
- note F#, 2
+ D_ 2
+ F# 2
+ D_ 2
+ F# 2
+ D_ 2
+ F# 2
+ G_ 2
+ F# 2
callchannel Music_Pokecenter_branch_bfd9
callchannel Music_Pokecenter_branch_bfe2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note G_, 2
- note A_, 2
- note D_, 2
- note F#, 2
- note D_, 2
- note F#, 2
- note D_, 2
- note F#, 2
- note G_, 2
- note F#, 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ G_ 2
+ A_ 2
+ D_ 2
+ F# 2
+ D_ 2
+ F# 2
+ D_ 2
+ F# 2
+ G_ 2
+ F# 2
callchannel Music_Pokecenter_branch_bfd9
callchannel Music_Pokecenter_branch_bfe2
- note D_, 2
- note F#, 2
- note D_, 2
- note F#, 2
- note D_, 2
- note B_, 2
- note A_, 2
- note G_, 2
+ D_ 2
+ F# 2
+ D_ 2
+ F# 2
+ D_ 2
+ B_ 2
+ A_ 2
+ G_ 2
callchannel Music_Pokecenter_branch_bfeb
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note G#, 2
- note A_, 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ G# 2
+ A_ 2
callchannel Music_Pokecenter_branch_bfeb
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note G_, 2
- note B_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note E_, 2
- note G_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note G_, 2
- note F#, 2
- note E_, 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ G_ 2
+ B_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ E_ 2
+ G_ 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ F# 2
+ G_ 2
+ F# 2
+ E_ 2
loopchannel 0, Music_Pokecenter_branch_bf72
Music_Pokecenter_branch_bfd9::
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
endchannel
Music_Pokecenter_branch_bfe2::
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note G_, 2
- note A_, 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ G_ 2
+ A_ 2
endchannel
Music_Pokecenter_branch_bfeb::
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note A_, 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
+ F# 2
+ A_ 2
endchannel
-; 0xbff4
\ No newline at end of file
+; 0xbff4
--- a/audio/music/pokemontower.asm
+++ b/audio/music/pokemontower.asm
@@ -1,142 +1,142 @@
Music_PokemonTower_Ch1:: ; 7f04a (1f:704a)
- tempo 0, 152
- stereopanning 119
+ tempo 152
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
vibrato 12, 2, 3
notetype 12, 8, 0
rest 4
octave 4
- note B_, 12
+ B_ 12
Music_PokemonTower_branch_7f05a::
notetype 12, 11, 4
octave 4
- note G_, 1
+ G_ 1
rest 7
- note G_, 1
+ G_ 1
rest 7
octave 3
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
octave 4
- note F#, 1
+ F# 1
rest 7
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
- note G_, 1
+ B_ 1
+ G_ 1
rest 5
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note G_, 1
+ G_ 1
rest 7
- note G_, 1
+ G_ 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note G_, 1
+ G_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note D_, 1
+ D_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note G_, 1
+ G_ 1
rest 7
- note G_, 1
+ G_ 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
octave 4
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note C#, 1
+ C# 1
rest 7
- note C#, 1
+ C# 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 3
notetype 12, 8, 4
- note C_, 1
+ C_ 1
rest 3
notetype 12, 11, 4
- note D_, 1
+ D_ 1
rest 7
- note D_, 1
+ D_ 1
rest 7
octave 3
- note A_, 1
+ A_ 1
rest 7
- note A_, 1
+ A_ 1
rest 7
notetype 12, 10, 7
- note B_, 8
- note B_, 8
+ B_ 8
+ B_ 8
octave 4
- note C_, 8
- note C_, 8
- note C#, 8
- note C#, 8
+ C_ 8
+ C_ 8
+ C# 8
+ C# 8
notetype 12, 10, 6
- note D_, 16
+ D_ 16
rest 16
rest 16
rest 16
rest 16
notetype 12, 9, 2
- note B_, 4
+ B_ 4
octave 5
- note E_, 4
- note D_, 4
- note C_, 4
+ E_ 4
+ D_ 4
+ C_ 4
octave 4
- note B_, 4
+ B_ 4
octave 5
- note E_, 4
- note D_, 4
- note C_, 4
+ E_ 4
+ D_ 4
+ C_ 4
octave 4
- note B_, 4
+ B_ 4
octave 5
- note E_, 4
- note D_, 4
- note C_, 4
+ E_ 4
+ D_ 4
+ C_ 4
octave 4
- note B_, 4
- note G_, 4
- note F#, 4
- note E_, 4
+ B_ 4
+ G_ 4
+ F# 4
+ E_ 4
octave 5
- note C_, 16
- note C_, 16
+ C_ 16
+ C_ 16
loopchannel 0, Music_PokemonTower_branch_7f05a
@@ -145,150 +145,150 @@
duty 3
notetype 12, 10, 0
octave 5
- note C_, 12
+ C_ 12
octave 4
- note E_, 4
+ E_ 4
Music_PokemonTower_branch_7f0ee::
notetype 12, 12, 1
octave 5
- note C_, 8
+ C_ 8
octave 4
- note B_, 4
+ B_ 4
notetype 12, 12, 4
- note G_, 1
- note F#, 1
- note E_, 1
- note D#, 1
+ G_ 1
+ F# 1
+ E_ 1
+ D# 1
notetype 12, 11, 0
- note G_, 8
+ G_ 8
octave 5
- note C_, 8
+ C_ 8
octave 4
- note B_, 4
- note G_, 4
- note E_, 4
- note G_, 4
+ B_ 4
+ G_ 4
+ E_ 4
+ G_ 4
octave 5
- note C_, 8
+ C_ 8
notetype 12, 11, 7
- note C_, 8
+ C_ 8
notetype 12, 12, 2
octave 4
- note G_, 1
- note F#, 1
- note E_, 1
+ G_ 1
+ F# 1
+ E_ 1
rest 1
notetype 12, 9, 6
octave 3
- note G_, 4
+ G_ 4
notetype 12, 12, 7
- note G_, 4
- note B_, 4
- note G_, 4
- note B_, 4
+ G_ 4
+ B_ 4
+ G_ 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
notetype 12, 11, 0
octave 4
- note C_, 16
- note E_, 8
+ C_ 16
+ E_ 8
notetype 12, 11, 7
- note E_, 12
+ E_ 12
notetype 12, 12, 5
octave 5
- note C_, 4
+ C_ 4
octave 4
- note B_, 4
- note G_, 4
- note B_, 4
- note G_, 4
- note F#, 4
- note E_, 4
+ B_ 4
+ G_ 4
+ B_ 4
+ G_ 4
+ F# 4
+ E_ 4
notetype 12, 11, 0
- note F#, 12
- note G_, 4
+ F# 12
+ G_ 4
notetype 12, 11, 0
- note F#, 8
+ F# 8
notetype 12, 11, 7
- note F#, 8
+ F# 8
notetype 12, 11, 0
- note B_, 4
- note G_, 4
- note F#, 4
- note E_, 4
- note B_, 16
+ B_ 4
+ G_ 4
+ F# 4
+ E_ 4
+ B_ 16
notetype 12, 11, 0
octave 5
- note C_, 4
+ C_ 4
octave 4
- note G_, 4
- note F#, 4
- note E_, 4
+ G_ 4
+ F# 4
+ E_ 4
notetype 12, 9, 0
octave 5
- note C_, 16
+ C_ 16
notetype 12, 11, 0
- note D_, 4
+ D_ 4
octave 4
- note A_, 4
- note G#, 4
- note F#, 4
+ A_ 4
+ G# 4
+ F# 4
notetype 12, 2, 15
octave 5
- note D_, 16
+ D_ 16
notetype 12, 12, 0
- note E_, 4
+ E_ 4
octave 4
- note B_, 4
- note A_, 4
- note G_, 4
+ B_ 4
+ A_ 4
+ G_ 4
octave 5
- note F_, 4
- note C_, 4
+ F_ 4
+ C_ 4
octave 4
- note A#, 4
- note G#, 4
+ A# 4
+ G# 4
octave 5
- note F#, 4
- note D_, 4
- note C_, 4
+ F# 4
+ D_ 4
+ C_ 4
octave 4
- note A#, 4
- note G#, 4
- note F#, 4
- note E_, 4
- note D_, 4
+ A# 4
+ G# 4
+ F# 4
+ E_ 4
+ D_ 4
notetype 12, 11, 0
- note C_, 8
+ C_ 8
notetype 12, 9, 0
- note C_, 8
+ C_ 8
notetype 12, 8, 0
- note C_, 8
+ C_ 8
notetype 12, 7, 0
- note C_, 8
+ C_ 8
notetype 12, 6, 0
- note C_, 8
+ C_ 8
notetype 12, 6, 7
- note C_, 8
+ C_ 8
rest 16
notetype 12, 10, 0
octave 5
- note G_, 16
+ G_ 16
octave 6
- note C_, 16
+ C_ 16
octave 5
- note B_, 8
- note G_, 8
- note E_, 8
- note G_, 8
+ B_ 8
+ G_ 8
+ E_ 8
+ G_ 8
octave 6
- note C_, 16
+ C_ 16
vibrato 0, 3, 4
notetype 12, 10, 7
- note C_, 16
+ C_ 16
loopchannel 0, Music_PokemonTower_branch_7f0ee
@@ -297,163 +297,163 @@
notetype 12, 1, 3
rest 8
octave 5
- note G_, 8
+ G_ 8
Music_PokemonTower_branch_7f1a2::
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note D#, 1
- note F#, 1
- note D#, 1
- note E_, 1
+ E_ 1
+ D# 1
+ F# 1
+ D# 1
+ E_ 1
rest 7
- note G_, 1
+ G_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
- note E_, 1
- note D#, 1
+ E_ 1
+ D# 1
octave 4
- note B_, 1
+ B_ 1
rest 5
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
octave 5
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
octave 4
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
- note B_, 1
+ B_ 1
rest 7
octave 5
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note C_, 1
+ C_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note F#, 1
+ F# 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note D_, 1
+ D_ 1
rest 7
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 7
- note E_, 1
+ E_ 1
rest 7
- note F_, 1
+ F_ 1
rest 7
- note F_, 1
+ F_ 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note F#, 1
+ F# 1
rest 7
- note G_, 1
+ G_ 1
rest 15
notetype 12, 1, 5
octave 4
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 15
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 7
notetype 12, 1, 3
octave 6
- note E_, 1
+ E_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 15
- note E_, 1
+ E_ 1
rest 15
- note E_, 1
+ E_ 1
rest 15
- note E_, 1
+ E_ 1
rest 15
- note E_, 1
+ E_ 1
rest 15
- note E_, 1
+ E_ 1
rest 7
octave 5
- note E_, 1
+ E_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
loopchannel 0, Music_PokemonTower_branch_7f1a2
-; 0x7f243
\ No newline at end of file
+; 0x7f243
--- a/audio/music/routes1.asm
+++ b/audio/music/routes1.asm
@@ -1,107 +1,107 @@
Music_Routes1_Ch1:: ; 9bde (2:5bde)
- tempo 0, 152
- stereopanning 119
+ tempo 152
+ volume 7, 7
vibrato 4, 2, 3
duty 2
- togglecall
+ toggleperfectpitch
Music_Routes1_branch_9be9::
notetype 12, 10, 1
rest 4
octave 4
- note D_, 2
- note D_, 6
- note D_, 2
- note D_, 6
- note D_, 2
- note D_, 1
- note C#, 1
+ D_ 2
+ D_ 6
+ D_ 2
+ D_ 6
+ D_ 2
+ D_ 1
+ C# 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
+ C# 1
octave 3
- note A_, 2
- note A_, 2
- note A_, 6
+ A_ 2
+ A_ 2
+ A_ 6
octave 4
- note C#, 2
- note C#, 6
- note C#, 2
- note C#, 4
+ C# 2
+ C# 6
+ C# 2
+ C# 4
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 4
+ C# 4
octave 3
- note A_, 2
- note A_, 6
+ A_ 2
+ A_ 6
octave 4
- note D_, 2
- note D_, 6
- note D_, 2
- note D_, 6
- note D_, 2
- note D_, 1
- note E_, 1
- note D_, 1
- note C#, 1
+ D_ 2
+ D_ 6
+ D_ 2
+ D_ 6
+ D_ 2
+ D_ 1
+ E_ 1
+ D_ 1
+ C# 1
octave 3
- note B_, 2
- note A_, 2
- note A_, 6
+ B_ 2
+ A_ 2
+ A_ 6
octave 4
- note C#, 2
- note C#, 6
+ C# 2
+ C# 6
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
notetype 12, 10, 2
octave 4
- note G_, 4
- note E_, 4
- note F#, 2
+ G_ 4
+ E_ 4
+ F# 2
notetype 12, 10, 1
octave 3
- note A_, 2
- note A_, 6
- note A_, 2
- note F#, 2
- note A_, 4
- note B_, 2
+ A_ 2
+ A_ 6
+ A_ 2
+ F# 2
+ A_ 4
+ B_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 4
- note A_, 2
- note F#, 2
- note A_, 4
- note G_, 2
- note E_, 2
- note C#, 4
- note A_, 2
+ B_ 4
+ A_ 2
+ F# 2
+ A_ 4
+ G_ 2
+ E_ 2
+ C# 4
+ A_ 2
octave 4
- note D_, 2
+ D_ 2
octave 3
- note A_, 4
- note B_, 2
- note G_, 2
- note B_, 4
+ A_ 4
+ B_ 2
+ G_ 2
+ B_ 4
octave 4
- note D_, 2
- note E_, 2
- note C#, 2
- note D_, 2
+ D_ 2
+ E_ 2
+ C# 2
+ D_ 2
octave 3
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
loopchannel 0, Music_Routes1_branch_9be9
endchannel
@@ -119,117 +119,117 @@
Music_Routes1_branch_9c65::
octave 4
- note D_, 1
- note E_, 1
- note F#, 2
- note F#, 2
- note F#, 2
- note D_, 1
- note E_, 1
- note F#, 2
- note F#, 2
- note F#, 2
- note D_, 1
- note E_, 1
- note F#, 2
- note F#, 2
- note G_, 3
- note F#, 1
- note E_, 6
+ D_ 1
+ E_ 1
+ F# 2
+ F# 2
+ F# 2
+ D_ 1
+ E_ 1
+ F# 2
+ F# 2
+ F# 2
+ D_ 1
+ E_ 1
+ F# 2
+ F# 2
+ G_ 3
+ F# 1
+ E_ 6
endchannel
Music_Routes1_branch_9c78::
- note C#, 1
- note D_, 1
- note E_, 2
- note E_, 2
- note E_, 2
- note C#, 1
- note D_, 1
- note E_, 2
- note E_, 2
- note E_, 2
- note C#, 1
- note D_, 1
- note E_, 2
- note E_, 2
- note F#, 1
- note E_, 1
- note E_, 1
- note F#, 1
- note D_, 4
- note F#, 2
+ C# 1
+ D_ 1
+ E_ 2
+ E_ 2
+ E_ 2
+ C# 1
+ D_ 1
+ E_ 2
+ E_ 2
+ E_ 2
+ C# 1
+ D_ 1
+ E_ 2
+ E_ 2
+ F# 1
+ E_ 1
+ E_ 1
+ F# 1
+ D_ 4
+ F# 2
endchannel
Music_Routes1_branch_9c8d::
- note C#, 1
- note D_, 1
- note E_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note C#, 2
+ C# 1
+ D_ 1
+ E_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
+ C# 2
notetype 12, 13, 2
- note B_, 4
+ B_ 4
notetype 6, 13, 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C#, 1
+ C# 1
notetype 12, 13, 1
octave 3
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
octave 4
- note C#, 1
- note D_, 6
+ C# 1
+ D_ 6
notetype 12, 13, 2
- note F#, 1
- note G_, 1
- note A_, 2
- note A_, 2
- note F#, 2
- note D_, 2
+ F# 1
+ G_ 1
+ A_ 2
+ A_ 2
+ F# 2
+ D_ 2
octave 5
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C#, 2
+ C# 2
octave 4
- note A_, 2
- note F#, 2
- note D_, 3
- note F#, 1
- note E_, 6
- note F#, 1
- note G_, 1
- note A_, 2
- note A_, 2
- note F#, 2
- note A_, 2
+ A_ 2
+ F# 2
+ D_ 3
+ F# 1
+ E_ 6
+ F# 1
+ G_ 1
+ A_ 2
+ A_ 2
+ F# 2
+ A_ 2
octave 5
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 4
- note B_, 3
- note G_, 1
- note A_, 2
+ B_ 3
+ G_ 1
+ A_ 2
octave 5
- note D_, 2
- note C#, 2
- note E_, 2
- note D_, 2
+ D_ 2
+ C# 2
+ E_ 2
+ D_ 2
notetype 12, 13, 1
octave 4
- note D_, 2
- note D_, 2
+ D_ 2
+ D_ 2
endchannel
endchannel
@@ -241,70 +241,70 @@
Music_Routes1_branch_9cdd::
rest 2
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note A_, 4
- note B_, 4
- note A_, 4
+ A_ 4
+ B_ 4
+ A_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note A_, 4
- note B_, 4
+ A_ 4
+ B_ 4
octave 4
- note C_, 4
- note C#, 4
+ C_ 4
+ C# 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note A_, 4
- note B_, 4
- note A_, 4
+ A_ 4
+ B_ 4
+ A_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
- note B_, 4
+ B_ 4
+ A_ 4
+ B_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note D_, 8
+ D_ 8
octave 3
- note G_, 8
- note A_, 8
+ G_ 8
+ A_ 8
octave 4
- note C#, 8
- note D_, 8
+ C# 8
+ D_ 8
octave 3
- note G_, 8
- note A_, 8
+ G_ 8
+ A_ 8
octave 4
- note D_, 6
+ D_ 6
loopchannel 0, Music_Routes1_branch_9cdd
endchannel
@@ -312,94 +312,94 @@
Music_Routes1_Ch4:: ; 9d24 (2:5d24)
dspeed 12
rest 4
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
rest 4
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
rest 4
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
rest 4
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
rest 4
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
rest 4
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
rest 4
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
+ mutedsnare1 2
rest 2
- dnote 2, mutedsnare1
- dnote 2, mutedsnare1
+ mutedsnare1 2
+ mutedsnare1 2
loopchannel 0, Music_Routes1_Ch4
endchannel
-; 0x9db9
\ No newline at end of file
+; 0x9db9
--- a/audio/music/routes2.asm
+++ b/audio/music/routes2.asm
@@ -1,6 +1,6 @@
Music_Routes2_Ch1:: ; 9db9 (2:5db9)
- tempo 0, 152
- stereopanning 119
+ tempo 152
+ volume 7, 7
vibrato 9, 2, 5
duty 1
@@ -7,137 +7,137 @@
Music_Routes2_branch_9dc3::
notetype 12, 11, 2
octave 2
- note B_, 4
+ B_ 4
octave 3
- note G#, 6
- note F#, 2
- note E_, 2
- note D#, 1
- note F#, 1
- note E_, 2
+ G# 6
+ F# 2
+ E_ 2
+ D# 1
+ F# 1
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
- note A_, 2
- note G#, 4
- note F#, 4
+ E_ 2
+ A_ 2
+ G# 4
+ F# 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note G#, 6
- note F#, 2
- note E_, 2
- note D#, 1
- note F#, 1
- note B_, 2
+ G# 6
+ F# 2
+ E_ 2
+ D# 1
+ F# 1
+ B_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
- note A_, 2
- note G#, 4
- note B_, 4
+ E_ 2
+ A_ 2
+ G# 4
+ B_ 4
notetype 8, 11, 2
octave 4
- note E_, 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note E_, 2
- note D#, 2
+ E_ 2
+ D# 2
octave 3
- note G#, 2
+ G# 2
octave 4
- note D#, 2
- note D#, 2
+ D# 2
+ D# 2
octave 3
- note G#, 2
+ G# 2
octave 4
- note D#, 2
- note C#, 2
+ D# 2
+ C# 2
octave 3
- note F#, 2
+ F# 2
octave 4
- note C#, 2
- note C#, 2
+ C# 2
+ C# 2
octave 3
- note F#, 2
+ F# 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note E_, 2
- note B_, 2
- note B_, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note A_, 2
- note F#, 2
- note A_, 2
- note G#, 2
- note E_, 2
- note B_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note A_, 2
- note B_, 2
- note A_, 2
+ B_ 2
+ E_ 2
+ B_ 2
+ B_ 2
+ E_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ A_ 2
+ F# 2
+ A_ 2
+ F# 2
+ G# 2
+ A_ 2
+ A_ 2
+ F# 2
+ A_ 2
+ G# 2
+ E_ 2
+ B_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ A_ 2
+ B_ 2
+ A_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
+ C# 2
+ D_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note D_, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
+ D_ 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 2
+ E_ 2
loopchannel 0, Music_Routes2_branch_9dc3
endchannel
@@ -149,68 +149,68 @@
Music_Routes2_branch_9e54::
notetype 12, 13, 4
octave 4
- note E_, 6
+ E_ 6
octave 3
- note B_, 1
+ B_ 1
octave 4
- note E_, 1
- note F#, 6
- note A_, 2
- note G#, 3
- note E_, 1
- note F#, 8
+ E_ 1
+ F# 6
+ A_ 2
+ G# 3
+ E_ 1
+ F# 8
octave 3
- note D#, 4
+ D# 4
octave 4
- note E_, 6
+ E_ 6
octave 3
- note B_, 1
+ B_ 1
octave 4
- note E_, 1
- note F#, 6
- note A_, 2
- note G#, 3
- note E_, 1
- note B_, 8
+ E_ 1
+ F# 6
+ A_ 2
+ G# 3
+ E_ 1
+ B_ 8
octave 3
- note G#, 4
+ G# 4
octave 5
- note C#, 6
+ C# 6
octave 4
- note B_, 1
- note A_, 1
- note B_, 6
- note A_, 1
- note G#, 1
- note A_, 6
- note G#, 1
- note F#, 1
- note G#, 4
- note F#, 2
- note E_, 2
- note D_, 2
- note D_, 1
- note E_, 1
- note F#, 8
- note A_, 4
- note G#, 3
- note F#, 1
- note E_, 8
- note F#, 2
- note E_, 2
- note D_, 2
- note D_, 1
- note E_, 1
- note F#, 2
- note F#, 1
- note G#, 1
- note A_, 4
+ B_ 1
+ A_ 1
+ B_ 6
+ A_ 1
+ G# 1
+ A_ 6
+ G# 1
+ F# 1
+ G# 4
+ F# 2
+ E_ 2
+ D_ 2
+ D_ 1
+ E_ 1
+ F# 8
+ A_ 4
+ G# 3
+ F# 1
+ E_ 8
+ F# 2
+ E_ 2
+ D_ 2
+ D_ 1
+ E_ 1
+ F# 2
+ F# 1
+ G# 1
+ A_ 4
octave 5
- note C#, 4
+ C# 4
octave 4
- note B_, 3
- note A_, 1
- note G#, 8
+ B_ 3
+ A_ 1
+ G# 8
rest 4
loopchannel 0, Music_Routes2_branch_9e54
endchannel
@@ -222,103 +222,103 @@
Music_Routes2_branch_9e9e::
notetype 12, 1, 1
octave 3
- note E_, 2
+ E_ 2
rest 2
octave 2
- note B_, 6
+ B_ 6
octave 3
- note D_, 1
- note C#, 1
- note D_, 2
- note D#, 2
- note E_, 2
+ D_ 1
+ C# 1
+ D_ 2
+ D# 2
+ E_ 2
rest 2
octave 2
- note B_, 6
+ B_ 6
octave 3
- note D_, 1
- note C#, 1
+ D_ 1
+ C# 1
octave 2
- note A_, 2
+ A_ 2
octave 3
- note C#, 2
- note E_, 2
+ C# 2
+ E_ 2
rest 2
octave 2
- note B_, 6
+ B_ 6
octave 3
- note D_, 1
- note C#, 1
- note D_, 2
- note D#, 2
- note E_, 2
+ D_ 1
+ C# 1
+ D_ 2
+ D# 2
+ E_ 2
rest 2
octave 2
- note B_, 4
+ B_ 4
octave 3
- note C#, 2
+ C# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D_, 2
- note F#, 2
- note E_, 2
+ D_ 2
+ F# 2
+ E_ 2
rest 2
octave 2
- note A_, 2
+ A_ 2
rest 2
octave 3
- note D#, 2
+ D# 2
rest 2
octave 2
- note G#, 2
+ G# 2
rest 2
octave 3
- note C#, 2
+ C# 2
rest 2
octave 2
- note F#, 2
+ F# 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note E_, 2
- note G#, 2
- note F#, 2
+ E_ 2
+ G# 2
+ F# 2
rest 2
- note A_, 2
+ A_ 2
rest 2
- note F#, 2
+ F# 2
rest 2
- note A_, 2
+ A_ 2
rest 2
- note G#, 2
+ G# 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G#, 2
+ G# 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note F#, 2
+ F# 2
rest 2
- note A_, 2
+ A_ 2
rest 2
octave 3
- note C#, 2
+ C# 2
rest 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note C#, 2
+ C# 2
octave 2
- note B_, 2
+ B_ 2
rest 2
octave 3
- note E_, 2
+ E_ 2
rest 2
- note G#, 2
+ G# 2
rest 2
- note E_, 2
+ E_ 2
rest 2
loopchannel 0, Music_Routes2_branch_9e9e
endchannel
@@ -326,101 +326,101 @@
Music_Routes2_Ch4:: ; 9f08 (2:5f08)
dspeed 12
- dnote 2, snare3
+ snare3 2
rest 2
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare3
- dnote 1, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 1
+ snare3 1
+ snare3 2
+ snare3 2
+ snare3 2
rest 2
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 3, snare3
- dnote 3, snare3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 3
+ snare3 3
dspeed 12
- dnote 1, snare3
+ snare3 1
rest 3
- dnote 2, snare3
+ snare3 2
rest 2
- dnote 2, snare3
+ snare3 2
rest 4
- dnote 1, snare3
- dnote 1, snare3
- dnote 2, snare3
+ snare3 1
+ snare3 1
+ snare3 2
rest 2
- dnote 2, snare3
+ snare3 2
rest 2
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 3, snare3
- dnote 3, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 3, snare3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 3
+ snare3 3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 3
rest 3
dspeed 12
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare3
- dnote 1, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 1
+ snare3 1
+ snare3 2
+ snare3 2
+ snare3 2
rest 2
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 3, snare3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 3
rest 3
dspeed 12
- dnote 1, snare3
+ snare3 1
rest 3
- dnote 2, snare3
+ snare3 2
rest 2
- dnote 2, snare3
+ snare3 2
rest 4
- dnote 1, snare3
- dnote 1, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 1
+ snare3 1
+ snare3 2
+ snare3 2
+ snare3 2
rest 2
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 3, snare3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 3
rest 3
- dnote 3, snare3
- dnote 3, snare3
- dnote 3, snare3
+ snare3 3
+ snare3 3
+ snare3 3
rest 3
dspeed 12
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare3
- dnote 1, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 1
+ snare3 1
+ snare3 2
+ snare3 2
+ snare3 2
rest 2
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 3, snare3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 3
rest 3
- dnote 3, snare3
+ snare3 3
rest 3
loopchannel 0, Music_Routes2_Ch4
endchannel
-; 0x9fad
\ No newline at end of file
+; 0x9fad
--- a/audio/music/routes3.asm
+++ b/audio/music/routes3.asm
@@ -1,79 +1,79 @@
Music_Routes3_Ch1:: ; 9fad (2:5fad)
- tempo 0, 148
- stereopanning 119
+ tempo 148
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 5
octave 3
- note E_, 1
- note F#, 1
- note G_, 6
- note F_, 1
- note G_, 1
- note E_, 1
+ E_ 1
+ F# 1
+ G_ 6
+ F_ 1
+ G_ 1
+ E_ 1
rest 16
rest 15
Music_Routes3_branch_9fc3::
notetype 12, 11, 5
- note E_, 6
- note D_, 1
- note E_, 1
- note C_, 4
- note E_, 4
- note C_, 6
- note D_, 1
- note E_, 1
- note F_, 2
- note G_, 2
- note G_, 2
- note A_, 2
+ E_ 6
+ D_ 1
+ E_ 1
+ C_ 4
+ E_ 4
+ C_ 6
+ D_ 1
+ E_ 1
+ F_ 2
+ G_ 2
+ G_ 2
+ A_ 2
notetype 12, 10, 7
- note A#, 8
- note F_, 8
- note D_, 8
- note F_, 8
+ A# 8
+ F_ 8
+ D_ 8
+ F_ 8
notetype 12, 11, 5
- note E_, 6
- note D_, 1
- note E_, 1
- note C_, 4
- note E_, 4
- note C_, 6
- note D_, 1
- note E_, 1
- note F_, 2
- note G_, 2
- note G_, 2
- note A_, 2
+ E_ 6
+ D_ 1
+ E_ 1
+ C_ 4
+ E_ 4
+ C_ 6
+ D_ 1
+ E_ 1
+ F_ 2
+ G_ 2
+ G_ 2
+ A_ 2
notetype 12, 10, 7
- note A#, 8
- note A#, 8
- note D_, 8
- note F_, 8
+ A# 8
+ A# 8
+ D_ 8
+ F_ 8
notetype 12, 11, 5
- note E_, 4
- note E_, 2
- note F_, 2
- note G_, 4
- note F_, 2
- note E_, 2
- note B_, 2
+ E_ 4
+ E_ 2
+ F_ 2
+ G_ 4
+ F_ 2
+ E_ 2
+ B_ 2
octave 2
- note G_, 4
+ G_ 4
octave 3
- note B_, 8
- note A_, 2
+ B_ 8
+ A_ 2
notetype 8, 12, 3
- note A_, 4
- note F_, 4
- note A_, 4
+ A_ 4
+ F_ 4
+ A_ 4
notetype 8, 4, 15
- note A_, 12
+ A_ 12
notetype 8, 9, 0
- note F_, 12
- note G_, 12
+ F_ 12
+ G_ 12
loopchannel 0, Music_Routes3_branch_9fc3
@@ -82,13 +82,13 @@
duty 2
notetype 12, 12, 7
octave 3
- note G_, 1
- note A#, 1
- note B_, 6
- note A_, 1
- note B_, 1
+ G_ 1
+ A# 1
+ B_ 6
+ A_ 1
+ B_ 1
octave 4
- note C_, 1
+ C_ 1
rest 15
rest 16
@@ -96,85 +96,85 @@
notetype 12, 12, 7
duty 2
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 1
+ G_ 1
octave 4
- note C_, 1
- note E_, 10
+ C_ 1
+ E_ 10
octave 3
- note G_, 2
+ G_ 2
octave 4
- note C_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C_, 2
- note D_, 8
- note F_, 8
+ C_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C_ 2
+ D_ 8
+ F_ 8
notetype 12, 12, 5
duty 3
octave 3
- note A#, 8
- note A_, 8
+ A# 8
+ A_ 8
notetype 12, 12, 7
duty 2
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 1
+ G_ 1
octave 4
- note C_, 1
- note E_, 10
+ C_ 1
+ E_ 10
octave 3
- note G_, 2
+ G_ 2
octave 4
- note C_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C_, 2
- note D_, 8
- note F_, 8
+ C_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C_ 2
+ D_ 8
+ F_ 8
notetype 12, 12, 5
duty 3
octave 3
- note A#, 8
+ A# 8
octave 4
- note D_, 6
+ D_ 6
notetype 12, 12, 7
duty 2
- note C_, 1
- note D_, 1
- note E_, 2
- note D_, 2
- note E_, 2
- note C_, 8
+ C_ 1
+ D_ 1
+ E_ 2
+ D_ 2
+ E_ 2
+ C_ 8
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 1
- note D_, 2
+ C_ 1
+ D_ 2
octave 3
- note G_, 4
+ G_ 4
octave 4
- note G_, 8
- note F_, 1
- note E_, 1
+ G_ 8
+ F_ 1
+ E_ 1
notetype 8, 13, 3
- note F_, 4
- note E_, 4
+ F_ 4
+ E_ 4
notetype 8, 12, 4
- note C_, 4
+ C_ 4
notetype 8, 12, 5
- note C_, 12
+ C_ 12
notetype 12, 10, 0
duty 3
octave 3
- note A_, 8
- note B_, 8
+ A_ 8
+ B_ 8
loopchannel 0, Music_Routes3_branch_a01a
@@ -182,335 +182,335 @@
vibrato 4, 1, 0
notetype 6, 1, 2
octave 4
- note G_, 2
- note A#, 2
- note B_, 8
- note A_, 8
- note G_, 2
+ G_ 2
+ A# 2
+ B_ 8
+ A_ 8
+ G_ 2
rest 2
- note G_, 7
+ G_ 7
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 2
+ G_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note G_, 8
- note G_, 2
+ G_ 8
+ G_ 2
rest 2
- note G_, 7
+ G_ 7
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note G_, 2
+ G_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note G_, 8
+ G_ 8
Music_Routes3_branch_a0a3::
notetype 12, 1, 2
- note E_, 1
+ E_ 1
rest 1
- note G_, 4
- note E_, 1
- note E_, 1
- note E_, 1
+ G_ 4
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 4
- note E_, 1
+ G_ 4
+ E_ 1
rest 1
- note G_, 4
- note E_, 1
- note E_, 1
- note E_, 1
+ G_ 4
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 2
- note A_, 2
- note F_, 1
+ G_ 2
+ A_ 2
+ F_ 1
rest 1
- note A#, 4
- note F_, 1
- note F_, 1
- note F_, 1
+ A# 4
+ F_ 1
+ F_ 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A#, 4
- note F_, 1
+ A# 4
+ F_ 1
rest 1
- note A#, 4
- note F_, 1
- note F_, 1
- note F_, 1
+ A# 4
+ F_ 1
+ F_ 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A#, 2
- note F_, 2
- note E_, 1
+ A# 2
+ F_ 2
+ E_ 1
rest 1
- note G_, 4
- note E_, 1
- note E_, 1
- note E_, 1
+ G_ 4
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 4
- note E_, 1
+ G_ 4
+ E_ 1
rest 1
- note G_, 4
- note E_, 1
- note E_, 1
- note E_, 1
+ G_ 4
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 2
- note A_, 2
- note F_, 1
+ G_ 2
+ A_ 2
+ F_ 1
rest 1
- note A#, 4
- note F_, 1
- note F_, 1
- note F_, 1
+ A# 4
+ F_ 1
+ F_ 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A#, 4
- note F_, 1
+ A# 4
+ F_ 1
rest 1
- note A#, 4
- note F_, 1
- note F_, 1
- note F_, 1
+ A# 4
+ F_ 1
+ F_ 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A#, 2
- note A_, 2
- note G_, 1
+ A# 2
+ A_ 2
+ G_ 1
rest 1
octave 5
- note C_, 4
+ C_ 4
octave 4
- note G_, 1
- note G_, 1
- note G_, 1
+ G_ 1
+ G_ 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
octave 5
- note C_, 4
+ C_ 4
octave 4
- note G_, 1
+ G_ 1
rest 1
octave 5
- note D_, 4
+ D_ 4
octave 4
- note G_, 1
- note G_, 1
- note G_, 1
+ G_ 1
+ G_ 1
+ G_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
octave 5
- note D_, 4
+ D_ 4
octave 4
- note F_, 1
+ F_ 1
rest 1
octave 5
- note C_, 4
+ C_ 4
octave 4
- note F_, 1
- note F_, 1
- note F_, 1
+ F_ 1
+ F_ 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
octave 5
- note C_, 4
+ C_ 4
octave 4
- note F_, 1
+ F_ 1
rest 1
- note A_, 4
- note F_, 1
- note F_, 1
- note F_, 1
+ A_ 4
+ F_ 1
+ F_ 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note A_, 4
+ A_ 4
loopchannel 0, Music_Routes3_branch_a0a3
Music_Routes3_Ch4:: ; a131 (2:6131)
dspeed 6
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 8, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 8
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare3 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare3 2
+ mutedsnare2 4
+ mutedsnare3 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
Music_Routes3_branch_a17a::
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare3
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare3
- dnote 4, mutedsnare2
- dnote 10, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare4
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 10, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 10, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 8, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 12, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare3 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare3 2
+ mutedsnare2 4
+ mutedsnare2 10
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare4 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 10
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 10
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 8
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 12
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
loopchannel 0, Music_Routes3_branch_a17a
-; 0xa26a
\ No newline at end of file
+; 0xa26a
--- a/audio/music/routes4.asm
+++ b/audio/music/routes4.asm
@@ -1,140 +1,140 @@
Music_Routes4_Ch1:: ; a26a (2:626a)
- tempo 0, 148
- stereopanning 119
+ tempo 148
+ volume 7, 7
duty 3
vibrato 10, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 10, 2
octave 2
- note G#, 4
- note G#, 4
- note G#, 4
+ G# 4
+ G# 4
+ G# 4
notetype 12, 7, 15
- note G#, 4
+ G# 4
notetype 12, 10, 2
- note G#, 4
- note G#, 4
- note G#, 4
+ G# 4
+ G# 4
+ G# 4
notetype 12, 11, 7
- note B_, 1
+ B_ 1
octave 3
- note E_, 1
- note F#, 1
- note B_, 1
+ E_ 1
+ F# 1
+ B_ 1
Music_Routes4_branch_a28a::
notetype 12, 11, 7
- note B_, 6
- note E_, 2
- note E_, 4
+ B_ 6
+ E_ 2
+ E_ 4
octave 4
- note E_, 4
- note D_, 4
- note C#, 4
+ E_ 4
+ D_ 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
notetype 12, 11, 1
- note G#, 3
+ G# 3
notetype 12, 11, 7
- note E_, 1
- note F#, 12
- note E_, 8
- note D#, 4
- note F#, 4
- note B_, 6
- note E_, 2
- note E_, 4
+ E_ 1
+ F# 12
+ E_ 8
+ D# 4
+ F# 4
+ B_ 6
+ E_ 2
+ E_ 4
octave 4
- note E_, 4
- note D_, 4
- note C#, 4
+ E_ 4
+ D_ 4
+ C# 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C#, 4
+ C# 4
notetype 12, 11, 1
- note E_, 3
+ E_ 3
notetype 12, 11, 7
- note D#, 1
- note E_, 12
+ D# 1
+ E_ 12
octave 3
- note B_, 3
- note A_, 1
- note G#, 8
+ B_ 3
+ A_ 1
+ G# 8
octave 4
- note E_, 4
+ E_ 4
octave 3
- note D_, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 2
+ D_ 2
+ E_ 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 2
octave 4
- note C#, 2
- note D_, 2
- note D_, 2
+ C# 2
+ D_ 2
+ D_ 2
octave 3
- note A_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note E_, 2
- note F#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 2
+ A_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ E_ 2
+ F# 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 2
octave 4
- note D#, 2
- note E_, 2
+ D# 2
+ E_ 2
octave 3
- note B_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note B_, 2
+ B_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ B_ 2
notetype 8, 11, 5
- note A_, 4
- note G#, 4
- note F#, 4
+ A_ 4
+ G# 4
+ F# 4
octave 4
- note E_, 4
- note D#, 4
- note C#, 4
- note C#, 4
+ E_ 4
+ D# 4
+ C# 4
+ C# 4
octave 3
- note B_, 4
- note A_, 4
- note B_, 4
+ B_ 4
+ A_ 4
+ B_ 4
octave 4
- note C#, 4
- note D#, 4
+ C# 4
+ D# 4
octave 3
- note E_, 3
- note F#, 3
- note G#, 3
- note A_, 3
- note B_, 4
+ E_ 3
+ F# 3
+ G# 3
+ A_ 3
+ B_ 4
octave 4
- note C#, 4
- note D#, 4
- note E_, 3
+ C# 4
+ D# 4
+ E_ 3
octave 3
- note B_, 3
- note G#, 3
- note F#, 3
- note E_, 3
- note F#, 3
- note G#, 3
- note A_, 3
+ B_ 3
+ G# 3
+ F# 3
+ E_ 3
+ F# 3
+ G# 3
+ A_ 3
loopchannel 0, Music_Routes4_branch_a28a
@@ -143,148 +143,148 @@
duty 1
notetype 12, 9, 2
octave 3
- note E_, 3
- note F#, 1
+ E_ 3
+ F# 1
notetype 12, 9, 0
- note E_, 12
+ E_ 12
notetype 12, 9, 2
octave 2
- note B_, 3
+ B_ 3
octave 3
- note C_, 1
+ C_ 1
notetype 12, 9, 0
octave 2
- note B_, 8
+ B_ 8
duty 3
notetype 12, 12, 7
octave 3
- note E_, 1
- note F#, 1
- note B_, 1
+ E_ 1
+ F# 1
+ B_ 1
octave 4
- note D#, 1
+ D# 1
Music_Routes4_branch_a325::
notetype 12, 12, 7
- note E_, 6
+ E_ 6
octave 3
- note B_, 2
- note B_, 4
+ B_ 2
+ B_ 4
octave 4
- note B_, 4
- note A_, 4
- note G#, 4
- note F#, 4
- note F#, 1
- note A_, 1
- note G#, 1
- note F#, 1
+ B_ 4
+ A_ 4
+ G# 4
+ F# 4
+ F# 1
+ A_ 1
+ G# 1
+ F# 1
notetype 12, 12, 2
- note G#, 3
- note E_, 1
+ G# 3
+ E_ 1
notetype 12, 10, 0
octave 3
- note B_, 12
+ B_ 12
duty 0
notetype 12, 12, 2
octave 2
- note B_, 3
+ B_ 3
notetype 12, 12, 7
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 8
+ B_ 8
octave 3
- note D#, 4
+ D# 4
duty 3
octave 4
- note E_, 6
+ E_ 6
octave 3
- note B_, 2
- note B_, 4
+ B_ 2
+ B_ 4
octave 4
- note B_, 4
- note A_, 4
- note G#, 4
- note F#, 4
- note A_, 1
+ B_ 4
+ A_ 4
+ G# 4
+ F# 4
+ A_ 1
octave 5
- note C#, 1
+ C# 1
octave 4
- note B_, 1
- note A_, 1
+ B_ 1
+ A_ 1
notetype 12, 12, 2
- note B_, 3
+ B_ 3
notetype 12, 12, 7
- note A_, 1
+ A_ 1
notetype 12, 11, 0
- note G#, 6
+ G# 6
notetype 12, 9, 0
- note G#, 6
+ G# 6
notetype 12, 7, 0
- note G#, 6
+ G# 6
notetype 12, 6, 15
- note G#, 6
+ G# 6
notetype 12, 12, 7
- note G#, 4
+ G# 4
notetype 8, 12, 3
- note A_, 4
- note G#, 4
- note F#, 4
+ A_ 4
+ G# 4
+ F# 4
notetype 8, 9, 0
- note F#, 6
+ F# 6
notetype 8, 7, 15
- note F#, 6
+ F# 6
duty 0
notetype 8, 9, 0
octave 3
- note F#, 4
- note E_, 4
- note F#, 4
- note A_, 6
+ F# 4
+ E_ 4
+ F# 4
+ A_ 6
duty 3
notetype 8, 12, 7
octave 4
- note F#, 6
- note G#, 4
- note F#, 4
+ F# 6
+ G# 4
+ F# 4
notetype 8, 12, 4
- note E_, 4
+ E_ 4
notetype 8, 10, 0
- note E_, 12
+ E_ 12
duty 0
notetype 8, 9, 0
octave 3
- note E_, 4
- note D#, 4
- note E_, 4
- note G#, 6
+ E_ 4
+ D# 4
+ E_ 4
+ G# 6
duty 3
notetype 8, 12, 7
octave 4
- note E_, 6
- note F#, 4
- note D#, 4
+ E_ 6
+ F# 4
+ D# 4
octave 3
- note B_, 4
+ B_ 4
notetype 8, 10, 0
octave 4
- note B_, 16
+ B_ 16
notetype 8, 10, 7
- note B_, 8
+ B_ 8
notetype 8, 11, 0
- note A_, 6
+ A_ 6
notetype 8, 11, 7
- note A_, 6
+ A_ 6
notetype 12, 10, 7
- note G#, 1
- note F#, 1
+ G# 1
+ F# 1
notetype 12, 11, 0
- note E_, 12
+ E_ 12
notetype 12, 10, 0
- note E_, 8
+ E_ 8
notetype 12, 10, 7
- note E_, 10
+ E_ 10
loopchannel 0, Music_Routes4_branch_a325
@@ -291,217 +291,217 @@
Music_Routes4_Ch3:: ; a3c4 (2:63c4)
notetype 12, 1, 0
octave 4
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note D#, 1
+ D# 1
rest 3
Music_Routes4_branch_a3d7::
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note A_, 1
+ A_ 1
rest 1
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
- note B_, 1
- note B_, 1
- note B_, 1
- note B_, 1
+ B_ 1
+ B_ 1
+ B_ 1
+ B_ 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
- note D_, 1
- note D_, 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
+ D_ 1
+ D_ 1
+ D_ 1
rest 1
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
- note F#, 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
- note B_, 1
- note B_, 1
- note B_, 1
- note B_, 1
+ B_ 1
+ B_ 1
+ B_ 1
+ B_ 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 3
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
- note G#, 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
+ G# 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
- note E_, 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
+ E_ 1
rest 1
- note E_, 1
+ E_ 1
rest 3
- note D#, 1
+ D# 1
rest 1
loopchannel 0, Music_Routes4_branch_a3d7
@@ -510,173 +510,173 @@
dspeed 12
rest 16
rest 12
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
Music_Routes4_branch_a4a8::
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 2, mutedsnare2
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 4, mutedsnare2
- dnote 1, mutedsnare4
- dnote 1, mutedsnare4
- dnote 1, mutedsnare3
- dnote 1, mutedsnare3
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
- dnote 2, mutedsnare2
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare3 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare2 2
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare2 4
+ mutedsnare4 1
+ mutedsnare4 1
+ mutedsnare3 1
+ mutedsnare3 1
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
+ mutedsnare2 2
loopchannel 0, Music_Routes4_branch_a4a8
-; 0xa5f0
\ No newline at end of file
+; 0xa5f0
--- a/audio/music/safarizone.asm
+++ b/audio/music/safarizone.asm
@@ -1,19 +1,19 @@
Music_SafariZone_Ch1:: ; bc2e (2:7c2e)
- tempo 0, 132
- stereopanning 119
+ tempo 132
+ volume 7, 7
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
duty 2
notetype 12, 9, 2
octave 3
pitchbend 0, 73
- note C_, 1
+ C_ 1
pitchbend 0, 73
- note G_, 1
+ G_ 1
pitchbend 0, 73
- note C_, 1
+ C_ 1
pitchbend 0, 73
- note G_, 1
+ G_ 1
rest 4
duty 3
@@ -20,22 +20,22 @@
Music_SafariZone_branch_bc4f::
callchannel Music_SafariZone_branch_bc5f
notetype 12, 10, 4
- note F#, 4
+ F# 4
callchannel Music_SafariZone_branch_bc5f
notetype 12, 10, 4
- note F#, 4
+ F# 4
loopchannel 0, Music_SafariZone_branch_bc4f
Music_SafariZone_branch_bc5f::
notetype 12, 10, 2
octave 3
- note C_, 4
- note G_, 4
- note C_, 4
- note G_, 4
- note C_, 4
- note G_, 4
- note C_, 4
+ C_ 4
+ G_ 4
+ C_ 4
+ G_ 4
+ C_ 4
+ G_ 4
+ C_ 4
endchannel
@@ -44,10 +44,10 @@
vibrato 8, 2, 5
notetype 12, 10, 2
octave 4
- note G_, 1
- note D_, 1
- note G_, 1
- note D_, 1
+ G_ 1
+ D_ 1
+ G_ 1
+ D_ 1
rest 4
duty 3
@@ -54,22 +54,22 @@
Music_SafariZone_branch_bc79::
callchannel Music_SafariZone_branch_bc89
notetype 12, 11, 5
- note A_, 4
+ A_ 4
callchannel Music_SafariZone_branch_bc89
notetype 12, 11, 5
- note B_, 4
+ B_ 4
loopchannel 0, Music_SafariZone_branch_bc79
Music_SafariZone_branch_bc89::
notetype 12, 11, 2
octave 3
- note G_, 4
- note D_, 4
- note G_, 4
- note D_, 4
- note G_, 4
- note D_, 4
- note G_, 4
+ G_ 4
+ D_ 4
+ G_ 4
+ D_ 4
+ G_ 4
+ D_ 4
+ G_ 4
endchannel
@@ -80,33 +80,33 @@
Music_SafariZone_branch_bc97::
callchannel Music_SafariZone_branch_bca5
octave 4
- note A_, 4
+ A_ 4
callchannel Music_SafariZone_branch_bca5
octave 4
- note B_, 4
+ B_ 4
loopchannel 0, Music_SafariZone_branch_bc97
Music_SafariZone_branch_bca5::
octave 3
- note A_, 2
+ A_ 2
rest 2
octave 4
- note D_, 2
+ D_ 2
rest 2
octave 3
- note A_, 2
+ A_ 2
rest 2
octave 4
- note D_, 2
+ D_ 2
rest 2
octave 3
- note A_, 2
+ A_ 2
rest 2
octave 4
- note D_, 2
+ D_ 2
rest 2
octave 3
- note A_, 2
+ A_ 2
rest 2
endchannel
-; 0xbcbb
\ No newline at end of file
+; 0xbcbb
--- a/audio/music/silphco.asm
+++ b/audio/music/silphco.asm
@@ -1,397 +1,397 @@
Music_SilphCo_Ch1:: ; 7f243 (1f:7243)
- tempo 0, 160
- stereopanning 119
+ tempo 160
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
vibrato 8, 2, 2
notetype 6, 11, 3
octave 2
- note E_, 1
- note F#, 1
- note G#, 1
- note A#, 1
+ E_ 1
+ F# 1
+ G# 1
+ A# 1
octave 3
- note C_, 1
+ C_ 1
notetype 6, 10, 0
- note C_, 12
+ C_ 12
notetype 6, 11, 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 1
- note A#, 1
- note G#, 1
- note F#, 1
- note E_, 1
- note E_, 2
+ B_ 1
+ A# 1
+ G# 1
+ F# 1
+ E_ 1
+ E_ 2
rest 2
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 2
Music_SilphCo_branch_7f26d::
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note A#, 2
+ A# 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 2
octave 3
- note C_, 2
+ C_ 2
rest 2
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
octave 2
- note A#, 2
+ A# 2
rest 6
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 10
- note E_, 1
- note F#, 1
- note G#, 1
- note A_, 1
+ E_ 1
+ F# 1
+ G# 1
+ A_ 1
notetype 6, 10, 0
- note B_, 12
+ B_ 12
notetype 6, 11, 3
- note B_, 1
- note A_, 1
- note G_, 1
- note F_, 1
- note E_, 1
+ B_ 1
+ A_ 1
+ G_ 1
+ F_ 1
+ E_ 1
rest 11
- note F_, 1
- note G#, 1
- note A#, 1
- note B_, 1
+ F_ 1
+ G# 1
+ A# 1
+ B_ 1
notetype 6, 10, 0
octave 3
- note C_, 12
+ C_ 12
notetype 6, 11, 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A_, 1
- note G_, 1
- note F_, 1
+ B_ 1
+ A_ 1
+ G_ 1
+ F_ 1
rest 11
- note F#, 1
- note B_, 1
+ F# 1
+ B_ 1
octave 3
- note C_, 1
- note C#, 1
+ C_ 1
+ C# 1
notetype 6, 10, 0
- note D_, 12
+ D_ 12
notetype 6, 11, 3
- note D_, 1
- note C_, 1
+ D_ 1
+ C_ 1
octave 2
- note A#, 1
- note G_, 1
- note F_, 1
+ A# 1
+ G_ 1
+ F_ 1
rest 11
- note F_, 1
- note G#, 1
- note A#, 1
- note B_, 1
+ F_ 1
+ G# 1
+ A# 1
+ B_ 1
notetype 6, 10, 0
octave 3
- note C_, 12
+ C_ 12
notetype 6, 11, 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note G#, 1
- note F_, 1
- note E_, 1
+ B_ 1
+ G# 1
+ F_ 1
+ E_ 1
rest 7
notetype 6, 8, 0
- note B_, 16
+ B_ 16
notetype 6, 11, 0
octave 3
- note E_, 8
- tempo 0, 124
+ E_ 8
+ tempo 124
notetype 6, 11, 3
octave 2
- note B_, 2
+ B_ 2
rest 10
- note B_, 2
+ B_ 2
rest 10
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 16
rest 6
- note A_, 2
+ A_ 2
rest 6
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
- note A#, 2
- note A_, 2
- note A#, 2
- note B_, 2
- note A#, 2
+ B_ 2
+ A# 2
+ B_ 2
+ A# 2
+ A_ 2
+ A# 2
+ B_ 2
+ A# 2
callchannel Music_SilphCo_branch_7f3f0
callchannel Music_SilphCo_branch_7f3f0
callchannel Music_SilphCo_branch_7f3f0
rest 4
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
octave 2
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note A#, 2
+ A# 2
rest 6
- note A_, 2
+ A_ 2
rest 6
- note A_, 2
+ A_ 2
rest 6
- note A_, 2
+ A_ 2
rest 6
- note A_, 2
+ A_ 2
rest 6
- note A_, 2
+ A_ 2
rest 6
- note A_, 2
+ A_ 2
rest 6
- note A#, 2
+ A# 2
rest 6
- note A#, 2
+ A# 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
octave 3
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
octave 2
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
octave 3
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
octave 4
- note C_, 2
+ C_ 2
rest 6
- note C_, 2
+ C_ 2
rest 6
octave 2
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
octave 4
- note E_, 2
+ E_ 2
rest 6
- note E_, 2
+ E_ 2
rest 6
- note D#, 2
+ D# 2
rest 6
- note D#, 2
+ D# 2
rest 2
octave 2
- note B_, 1
- note A#, 1
- note G#, 1
- note F#, 1
- note E_, 1
+ B_ 1
+ A# 1
+ G# 1
+ F# 1
+ E_ 1
notetype 6, 6, 0
- note E_, 16
- note E_, 11
+ E_ 16
+ E_ 11
notetype 6, 11, 3
- note E_, 1
- note F#, 1
- note G#, 1
- note A#, 1
+ E_ 1
+ F# 1
+ G# 1
+ A# 1
octave 3
- note C_, 1
+ C_ 1
notetype 6, 3, 15
- note C_, 16
+ C_ 16
notetype 6, 10, 0
- note C_, 11
+ C_ 11
notetype 6, 9, 3
octave 2
- note B_, 1
- note A#, 1
- note G#, 1
- note F#, 1
- note E_, 1
+ B_ 1
+ A# 1
+ G# 1
+ F# 1
+ E_ 1
notetype 6, 3, 15
- note E_, 16
+ E_ 16
notetype 6, 9, 0
- note E_, 11
+ E_ 11
notetype 6, 11, 3
- note F_, 1
- note G_, 1
- note A#, 1
+ F_ 1
+ G_ 1
+ A# 1
octave 3
- note C_, 1
- note D_, 1
+ C_ 1
+ D_ 1
notetype 6, 3, 15
- note D_, 16
+ D_ 16
notetype 6, 10, 7
- note D_, 11
+ D_ 11
rest 4
rest 4
- tempo 0, 128
+ tempo 128
rest 4
rest 4
- tempo 0, 136
+ tempo 136
rest 4
rest 4
- tempo 0, 144
+ tempo 144
rest 4
rest 4
- tempo 0, 160
+ tempo 160
rest 4
rest 4
- tempo 0, 192
+ tempo 192
rest 4
rest 4
- tempo 1, 32
+ tempo 288
rest 4
rest 4
- tempo 1, 160
+ tempo 416
rest 4
- tempo 4, 0
+ tempo 1024
rest 4
- tempo 0, 160
+ tempo 160
rest 4
notetype 6, 4, 3
octave 2
- note B_, 2
+ B_ 2
rest 6
notetype 6, 6, 3
- note B_, 2
+ B_ 2
rest 6
notetype 6, 8, 3
- note B_, 2
+ B_ 2
rest 6
notetype 6, 5, 0
- note B_, 8
+ B_ 8
notetype 6, 11, 3
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 2
loopchannel 0, Music_SilphCo_branch_7f26d
Music_SilphCo_branch_7f3f0::
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 3
- note C_, 2
+ C_ 2
endchannel
@@ -400,382 +400,382 @@
duty 3
notetype 6, 12, 3
octave 3
- note E_, 1
- note F#, 1
- note G#, 1
- note A#, 1
+ E_ 1
+ F# 1
+ G# 1
+ A# 1
octave 4
- note C_, 1
+ C_ 1
notetype 6, 11, 0
- note C_, 12
+ C_ 12
notetype 6, 12, 3
- note C_, 2
+ C_ 2
octave 3
- note B_, 1
- note A#, 1
- note G#, 1
- note F#, 1
- note E_, 1
- note E_, 2
+ B_ 1
+ A# 1
+ G# 1
+ F# 1
+ E_ 1
+ E_ 2
rest 2
octave 2
- note G_, 2
+ G_ 2
rest 6
- note F#, 2
+ F# 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G#, 2
+ G# 2
rest 2
Music_SilphCo_branch_7f42e::
- note E_, 2
+ E_ 2
rest 2
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note F#, 2
+ F# 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G#, 2
+ G# 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 2
notetype 6, 11, 7
duty 2
octave 4
- note E_, 8
- note D#, 8
- note E_, 8
- note F_, 8
- note E_, 8
- note D#, 8
- note D_, 8
- note D#, 8
- note E_, 8
- note F_, 8
- note F#, 8
- note G_, 8
- note G#, 8
- note D#, 8
- note D_, 8
- note D#, 8
+ E_ 8
+ D# 8
+ E_ 8
+ F_ 8
+ E_ 8
+ D# 8
+ D_ 8
+ D# 8
+ E_ 8
+ F_ 8
+ F# 8
+ G_ 8
+ G# 8
+ D# 8
+ D_ 8
+ D# 8
duty 3
notetype 6, 6, 15
- note E_, 16
+ E_ 16
notetype 6, 12, 0
- note B_, 16
+ B_ 16
notetype 6, 12, 4
octave 3
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note E_, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note D#, 4
- note D_, 4
- note D#, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ E_ 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ D# 4
+ D_ 4
+ D# 4
notetype 6, 12, 2
duty 1
octave 4
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note E_, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ E_ 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 4
notetype 6, 12, 4
duty 3
octave 3
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 4
- note D#, 4
- note E_, 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 4
+ D# 4
+ E_ 4
notetype 6, 12, 0
- note F_, 8
+ F_ 8
notetype 6, 11, 7
- note F_, 8
+ F_ 8
notetype 6, 8, 10
- note F_, 4
+ F_ 4
notetype 6, 12, 4
duty 3
- note F_, 4
- note E_, 4
- note F_, 4
+ F_ 4
+ E_ 4
+ F_ 4
notetype 6, 10, 0
- note F#, 8
+ F# 8
notetype 6, 11, 0
- note F#, 8
+ F# 8
notetype 6, 9, 9
- note F#, 4
+ F# 4
notetype 6, 12, 4
- note F#, 4
- note F_, 4
- note F#, 4
+ F# 4
+ F_ 4
+ F# 4
notetype 6, 9, 0
- note G_, 12
+ G_ 12
notetype 6, 5, 9
- note G_, 8
+ G_ 8
notetype 6, 12, 4
- note G_, 4
- note F#, 4
- note G_, 4
- note F#, 4
- note F_, 4
- note F#, 4
- note F_, 4
- note E_, 4
- note F_, 4
- note E_, 4
- note D#, 4
- note D_, 4
- note C#, 4
- note D_, 4
- note D#, 4
- note D_, 4
+ G_ 4
+ F# 4
+ G_ 4
+ F# 4
+ F_ 4
+ F# 4
+ F_ 4
+ E_ 4
+ F_ 4
+ E_ 4
+ D# 4
+ D_ 4
+ C# 4
+ D_ 4
+ D# 4
+ D_ 4
notetype 6, 12, 2
duty 1
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note A_, 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ A_ 4
notetype 6, 11, 4
duty 3
- note D#, 4
- note D_, 4
- note D#, 4
+ D# 4
+ D_ 4
+ D# 4
notetype 6, 12, 2
duty 1
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note A#, 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ A# 4
notetype 6, 11, 4
duty 3
- note D#, 4
- note D_, 4
- note D#, 4
+ D# 4
+ D_ 4
+ D# 4
notetype 6, 12, 2
duty 1
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note B_, 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ B_ 4
notetype 6, 11, 4
duty 3
- note D#, 4
- note D_, 4
- note D#, 4
+ D# 4
+ D_ 4
+ D# 4
notetype 6, 12, 2
duty 1
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
octave 4
- note C_, 4
+ C_ 4
notetype 6, 11, 4
duty 3
octave 3
- note D#, 4
- note D_, 4
- note D#, 4
+ D# 4
+ D_ 4
+ D# 4
rest 4
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 2
duty 0
octave 4
- note E_, 2
+ E_ 2
rest 2
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
- note G#, 2
+ G# 2
rest 6
duty 3
octave 3
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G_, 2
+ G_ 2
rest 2
duty 0
octave 4
- note E_, 2
+ E_ 2
rest 2
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 2
duty 3
octave 3
- note G_, 2
+ G_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
octave 4
- note C_, 2
+ C_ 2
rest 2
octave 3
- note G_, 2
+ G_ 2
rest 2
octave 4
- note C_, 2
+ C_ 2
rest 2
octave 3
- note G_, 2
+ G_ 2
rest 2
octave 4
- note C_, 2
+ C_ 2
rest 2
octave 3
- note G_, 2
+ G_ 2
rest 2
octave 4
- note C_, 2
+ C_ 2
rest 2
octave 3
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
octave 4
- note C_, 2
+ C_ 2
rest 2
octave 3
- note G_, 2
+ G_ 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
- note G_, 2
+ G_ 2
rest 2
octave 4
- note C_, 2
+ C_ 2
rest 2
octave 3
- note G_, 2
+ G_ 2
rest 2
notetype 6, 8, 7
octave 5
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note E_, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note D#, 4
- note D_, 4
- note D#, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ E_ 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ D# 4
+ D_ 4
+ D# 4
rest 4
notetype 6, 4, 3
octave 2
- note G_, 2
+ G_ 2
rest 6
notetype 6, 6, 3
- note F#, 2
+ F# 2
rest 6
notetype 6, 8, 3
- note G_, 2
+ G_ 2
rest 6
notetype 6, 4, 15
- note G#, 8
+ G# 8
notetype 6, 11, 4
- note G_, 2
+ G_ 2
rest 6
- note F#, 2
+ F# 2
rest 6
- note G_, 2
+ G_ 2
rest 6
- note G#, 2
+ G# 2
rest 2
loopchannel 0, Music_SilphCo_branch_7f42e
@@ -785,191 +785,191 @@
notetype 12, 1, 1
rest 12
octave 5
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
Music_SilphCo_branch_7f5c9::
- note E_, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 1
+ E_ 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G#, 1
+ G# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 5
- note F_, 1
+ F_ 1
rest 5
- note F_, 1
+ F_ 1
rest 3
- note E_, 1
+ E_ 1
rest 11
- note D#, 1
+ D# 1
rest 3
- note E_, 1
+ E_ 1
rest 5
- note F_, 1
+ F_ 1
rest 5
- note F_, 1
+ F_ 1
rest 3
- note E_, 1
+ E_ 1
rest 11
- note D#, 1
+ D# 1
rest 3
- note E_, 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 3
- note F_, 1
+ F_ 1
rest 3
- note F_, 1
+ F_ 1
rest 3
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F#, 1
+ F# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note F#, 1
+ F# 1
rest 3
- note F_, 1
+ F_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note F_, 1
+ F_ 1
rest 3
- note E_, 1
+ E_ 1
rest 3
- note D#, 1
+ D# 1
rest 3
- note D_, 1
+ D_ 1
rest 1
- note D_, 8
- note F_, 8
- note D_, 8
- note F#, 8
- note D_, 8
- note G_, 8
- note D_, 8
- note A_, 8
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
+ D_ 8
+ F_ 8
+ D_ 8
+ F# 8
+ D_ 8
+ G_ 8
+ D_ 8
+ A_ 8
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
octave 5
- note E_, 2
- note D#, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note D#, 2
- note D_, 2
- note D#, 2
+ E_ 2
+ D# 2
+ E_ 2
+ F_ 2
+ E_ 2
+ D# 2
+ D_ 2
+ D# 2
octave 4
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
octave 5
- note E_, 2
- note F_, 2
- note F#, 2
- note G_, 2
- note G#, 2
- note D#, 2
- note D_, 2
- note D#, 2
+ E_ 2
+ F_ 2
+ F# 2
+ G_ 2
+ G# 2
+ D# 2
+ D_ 2
+ D# 2
octave 6
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note E_, 4
- note D#, 4
- note D_, 4
- note D#, 4
- note E_, 4
- note F_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note D#, 4
- note D_, 4
- note D#, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ E_ 4
+ D# 4
+ D_ 4
+ D# 4
+ E_ 4
+ F_ 4
+ F# 4
+ G_ 4
+ G# 4
+ D# 4
+ D_ 4
+ D# 4
notetype 6, 1, 1
rest 4
rest 4
@@ -993,9 +993,9 @@
rest 4
rest 4
octave 5
- note E_, 4
- note D#, 4
- note E_, 4
- note F_, 4
+ E_ 4
+ D# 4
+ E_ 4
+ F_ 4
loopchannel 0, Music_SilphCo_branch_7f5c9
-; 0x7f69d
\ No newline at end of file
+; 0x7f69d
--- a/audio/music/ssanne.asm
+++ b/audio/music/ssanne.asm
@@ -1,109 +1,109 @@
Music_SSAnne_Ch1:: ; b3a7 (2:73a7)
- tempo 0, 128
- stereopanning 119
+ tempo 128
+ volume 7, 7
duty 1
vibrato 8, 3, 4
- togglecall
+ toggleperfectpitch
Music_SSAnne_branch_b3b2::
notetype 12, 10, 4
rest 12
octave 3
- note E_, 2
- note F#, 2
- note E_, 4
- note D_, 4
- note C#, 2
- note D_, 2
- note E_, 2
+ E_ 2
+ F# 2
+ E_ 4
+ D_ 4
+ C# 2
+ D_ 2
+ E_ 2
rest 2
- note E_, 4
- note F#, 2
- note D_, 2
- note E_, 4
- note F#, 4
- note G#, 4
+ E_ 4
+ F# 2
+ D_ 2
+ E_ 4
+ F# 4
+ G# 4
rest 4
- note E_, 4
- note G#, 4
+ E_ 4
+ G# 4
rest 4
- note C#, 2
- note E_, 2
- note F#, 4
- note D_, 4
- note E_, 4
- note D_, 4
- note C#, 2
- note D_, 2
- note E_, 2
+ C# 2
+ E_ 2
+ F# 4
+ D_ 4
+ E_ 4
+ D_ 4
+ C# 2
+ D_ 2
+ E_ 2
rest 2
- note E_, 4
- note F#, 2
- note D_, 2
- note E_, 4
- note F#, 4
- note G#, 4
- note F#, 4
- note E_, 4
- note F#, 4
+ E_ 4
+ F# 2
+ D_ 2
+ E_ 4
+ F# 4
+ G# 4
+ F# 4
+ E_ 4
+ F# 4
rest 4
- note C#, 2
- note E_, 2
- note F#, 4
- note D_, 4
- note E_, 4
- note D_, 4
- note C#, 2
- note D_, 2
- note E_, 2
+ C# 2
+ E_ 2
+ F# 4
+ D_ 4
+ E_ 4
+ D_ 4
+ C# 2
+ D_ 2
+ E_ 2
rest 2
- note E_, 4
- note F#, 2
- note D_, 2
- note E_, 4
- note F#, 4
- note G#, 4
- note F#, 8
- note G#, 4
- note E_, 4
+ E_ 4
+ F# 2
+ D_ 2
+ E_ 4
+ F# 4
+ G# 4
+ F# 8
+ G# 4
+ E_ 4
rest 4
- note E_, 4
- note F#, 2
- note E_, 2
- note D_, 4
+ E_ 4
+ F# 2
+ E_ 2
+ D_ 4
rest 4
- note D_, 4
- note E_, 4
- note C#, 4
+ D_ 4
+ E_ 4
+ C# 4
rest 4
- note C#, 4
- note D_, 2
- note C#, 2
+ C# 4
+ D_ 2
+ C# 2
octave 2
- note B_, 4
- note E_, 4
- note B_, 4
+ B_ 4
+ E_ 4
+ B_ 4
octave 3
- note D_, 2
+ D_ 2
octave 2
- note B_, 2
- note A_, 4
+ B_ 2
+ A_ 4
rest 4
- note A_, 4
- note B_, 2
- note A_, 2
- note G#, 4
+ A_ 4
+ B_ 2
+ A_ 2
+ G# 4
rest 4
- note C#, 4
- note G#, 4
- note A_, 4
+ C# 4
+ G# 4
+ A_ 4
rest 4
- note A_, 4
- note B_, 4
- note B_, 4
+ A_ 4
+ B_ 4
+ B_ 4
rest 4
octave 3
- note D_, 8
+ D_ 8
loopchannel 0, Music_SSAnne_branch_b3b2
@@ -114,171 +114,171 @@
Music_SSAnne_branch_b41e::
notetype 12, 12, 5
octave 3
- note A_, 2
- note E_, 2
- note A_, 4
- note B_, 4
+ A_ 2
+ E_ 2
+ A_ 4
+ B_ 4
octave 4
- note D_, 4
+ D_ 4
notetype 8, 12, 5
- note C#, 2
- note D_, 2
- note C#, 2
+ C# 2
+ D_ 2
+ C# 2
octave 3
- note B_, 3
- note A_, 3
- note B_, 6
- note G#, 6
- note A_, 3
- note B_, 3
+ B_ 3
+ A_ 3
+ B_ 6
+ G# 6
+ A_ 3
+ B_ 3
octave 4
- note C#, 6
- note D_, 6
- note C#, 3
+ C# 6
+ D_ 6
+ C# 3
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 6
- note D_, 3
- note C#, 3
+ E_ 6
+ D_ 3
+ C# 3
octave 3
- note B_, 6
+ B_ 6
octave 4
- note C#, 3
+ C# 3
octave 3
- note B_, 3
- note A_, 3
- note E_, 3
- note A_, 6
- note B_, 6
+ B_ 3
+ A_ 3
+ E_ 3
+ A_ 6
+ B_ 6
octave 4
- note D_, 6
- note C#, 2
- note D_, 2
- note C#, 2
+ D_ 6
+ C# 2
+ D_ 2
+ C# 2
octave 3
- note B_, 3
- note A_, 3
- note B_, 6
- note G#, 6
- note A_, 3
- note B_, 3
+ B_ 3
+ A_ 3
+ B_ 6
+ G# 6
+ A_ 3
+ B_ 3
octave 4
- note C#, 6
- note D_, 6
- note C#, 3
+ C# 6
+ D_ 6
+ C# 3
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 6
- note D_, 3
- note C#, 3
+ E_ 6
+ D_ 3
+ C# 3
octave 3
- note B_, 12
- note A_, 3
- note E_, 3
- note A_, 6
- note B_, 6
+ B_ 12
+ A_ 3
+ E_ 3
+ A_ 6
+ B_ 6
octave 4
- note D_, 6
- note C#, 2
- note D_, 2
- note C#, 2
+ D_ 6
+ C# 2
+ D_ 2
+ C# 2
octave 3
- note B_, 3
- note A_, 3
- note B_, 6
- note G#, 6
- note A_, 3
- note B_, 3
+ B_ 3
+ A_ 3
+ B_ 6
+ G# 6
+ A_ 3
+ B_ 3
octave 4
- note C#, 6
- note D_, 6
- note C#, 3
+ C# 6
+ D_ 6
+ C# 3
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 6
- note D_, 3
- note C#, 3
+ E_ 6
+ D_ 3
+ C# 3
octave 3
- note B_, 12
+ B_ 12
rest 3
octave 4
- note C#, 3
+ C# 3
octave 3
- note B_, 3
+ B_ 3
octave 4
- note C#, 3
- note C#, 3
- note D_, 3
- note C#, 3
- note D_, 3
- note E_, 3
+ C# 3
+ C# 3
+ D_ 3
+ C# 3
+ D_ 3
+ E_ 3
octave 3
- note B_, 3
- note G#, 3
- note F#, 3
- note E_, 3
- note F#, 3
- note G#, 3
- note B_, 3
+ B_ 3
+ G# 3
+ F# 3
+ E_ 3
+ F# 3
+ G# 3
+ B_ 3
rest 3
- note A_, 3
- note G#, 3
- note A_, 3
- note A_, 3
- note B_, 3
- note A_, 3
- note B_, 3
+ A_ 3
+ G# 3
+ A_ 3
+ A_ 3
+ B_ 3
+ A_ 3
+ B_ 3
octave 4
- note C#, 3
+ C# 3
octave 3
- note G#, 3
- note F#, 3
- note E_, 3
- note E_, 3
- note F#, 3
- note G#, 3
- note B_, 3
+ G# 3
+ F# 3
+ E_ 3
+ E_ 3
+ F# 3
+ G# 3
+ B_ 3
rest 3
- note F#, 3
- note E_, 3
- note F#, 3
- note F#, 3
- note G#, 3
- note F#, 3
- note G#, 3
- note A_, 3
- note E_, 3
- note C#, 3
+ F# 3
+ E_ 3
+ F# 3
+ F# 3
+ G# 3
+ F# 3
+ G# 3
+ A_ 3
+ E_ 3
+ C# 3
octave 2
- note B_, 3
- note A_, 3
- note B_, 3
+ B_ 3
+ A_ 3
+ B_ 3
octave 3
- note C#, 3
- note E_, 3
+ C# 3
+ E_ 3
rest 3
- note F#, 3
- note E_, 3
- note F#, 3
- note F#, 3
- note G#, 3
- note A_, 3
- note B_, 3
+ F# 3
+ E_ 3
+ F# 3
+ F# 3
+ G# 3
+ A_ 3
+ B_ 3
octave 4
- note C#, 3
- note D_, 3
- note C#, 3
+ C# 3
+ D_ 3
+ C# 3
octave 3
- note B_, 3
+ B_ 3
octave 4
- note E_, 3
- note D_, 3
- note C#, 3
+ E_ 3
+ D_ 3
+ C# 3
octave 3
- note B_, 3
+ B_ 3
loopchannel 0, Music_SSAnne_branch_b41e
@@ -287,53 +287,53 @@
rest 16
rest 12
octave 4
- note B_, 2
- note G#, 2
- note A_, 8
- note F#, 8
- note G#, 4
+ B_ 2
+ G# 2
+ A_ 8
+ F# 8
+ G# 4
rest 4
- note B_, 8
- note A_, 8
- note B_, 8
- note A_, 8
- note G#, 8
- note A_, 8
- note F#, 8
- note G#, 8
- note B_, 8
- note A_, 4
- note E_, 4
- note B_, 4
- note E_, 4
- note A_, 4
- note E_, 4
- note G#, 4
- note E_, 4
- note A_, 4
- note E_, 4
- note F#, 4
- note G_, 4
- note G#, 4
- note A_, 4
+ B_ 8
+ A_ 8
+ B_ 8
+ A_ 8
+ G# 8
+ A_ 8
+ F# 8
+ G# 8
+ B_ 8
+ A_ 4
+ E_ 4
+ B_ 4
+ E_ 4
+ A_ 4
+ E_ 4
+ G# 4
+ E_ 4
+ A_ 4
+ E_ 4
+ F# 4
+ G_ 4
+ G# 4
+ A_ 4
octave 5
- note D_, 8
- note C#, 8
- note C#, 8
+ D_ 8
+ C# 8
+ C# 8
octave 4
- note B_, 8
- note B_, 8
- note A_, 8
- note A_, 8
- note G#, 8
- note G#, 8
- note F#, 8
- note F#, 8
- note E_, 8
- note E_, 8
- note F#, 8
- note F#, 8
- note G#, 8
- note B_, 8
+ B_ 8
+ B_ 8
+ A_ 8
+ A_ 8
+ G# 8
+ G# 8
+ F# 8
+ F# 8
+ E_ 8
+ E_ 8
+ F# 8
+ F# 8
+ G# 8
+ B_ 8
loopchannel 0, Music_SSAnne_Ch3
-; 0xb504
\ No newline at end of file
+; 0xb504
--- a/audio/music/surfing.asm
+++ b/audio/music/surfing.asm
@@ -1,118 +1,118 @@
Music_Surfing_Ch1:: ; 7fa19 (1f:7a19)
- tempo 0, 160
- stereopanning 119
+ tempo 160
+ volume 7, 7
duty 3
vibrato 12, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 5
rest 6
octave 2
- note A_, 2
- note G#, 3
- note F#, 1
- note E_, 6
+ A_ 2
+ G# 3
+ F# 1
+ E_ 6
octave 3
- note G#, 2
- note F#, 2
- note G#, 4
+ G# 2
+ F# 2
+ G# 4
Music_Surfing_branch_7fa30::
notetype 12, 11, 2
- note E_, 2
- note E_, 4
- note E_, 2
- note E_, 4
- note D_, 2
- note D_, 4
- note D_, 2
- note D_, 4
- note D_, 2
- note D_, 4
+ E_ 2
+ E_ 4
+ E_ 2
+ E_ 4
+ D_ 2
+ D_ 4
+ D_ 2
+ D_ 4
+ D_ 2
+ D_ 4
notetype 12, 11, 1
- note F#, 3
+ F# 3
notetype 12, 11, 2
- note D_, 3
- note E_, 2
- note E_, 4
- note E_, 2
- note E_, 4
- note A_, 2
- note A_, 4
- note G#, 2
- note G#, 4
- note F#, 2
- note F#, 4
- note E_, 2
- note E_, 4
- note G#, 2
- note G#, 4
+ D_ 3
+ E_ 2
+ E_ 4
+ E_ 2
+ E_ 4
+ A_ 2
+ A_ 4
+ G# 2
+ G# 4
+ F# 2
+ F# 4
+ E_ 2
+ E_ 4
+ G# 2
+ G# 4
notetype 12, 11, 1
- note F#, 3
+ F# 3
notetype 12, 11, 2
- note G#, 1
+ G# 1
notetype 12, 11, 4
- note A_, 2
- note B_, 2
+ A_ 2
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
notetype 12, 11, 7
- note C#, 6
+ C# 6
notetype 12, 11, 3
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ B_ 2
octave 4
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note B_, 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ A_ 2
+ G# 2
+ A_ 2
+ E_ 2
+ G# 2
+ B_ 2
octave 4
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 4
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 4
loopchannel 0, Music_Surfing_branch_7fa30
@@ -121,85 +121,85 @@
vibrato 16, 2, 5
notetype 12, 12, 6
octave 3
- note A_, 2
- note G#, 3
- note F#, 1
- note E_, 6
- note G#, 6
+ A_ 2
+ G# 3
+ F# 1
+ E_ 6
+ G# 6
octave 4
- note E_, 2
- note D_, 2
+ E_ 2
+ D_ 2
octave 3
- note B_, 2
+ B_ 2
Music_Surfing_branch_7faae::
notetype 12, 12, 6
octave 4
- note E_, 6
- note C#, 5
- note E_, 1
- note D_, 6
+ E_ 6
+ C# 5
+ E_ 1
+ D_ 6
octave 3
- note B_, 6
+ B_ 6
octave 4
- note D_, 6
+ D_ 6
octave 3
- note B_, 2
+ B_ 2
notetype 12, 12, 1
octave 4
- note F#, 3
+ F# 3
notetype 12, 12, 6
- note D_, 1
- note E_, 6
- note C#, 6
- note E_, 6
- note C#, 5
- note E_, 1
- note F#, 6
- note D_, 6
- note F#, 6
- note E_, 2
+ D_ 1
+ E_ 6
+ C# 6
+ E_ 6
+ C# 5
+ E_ 1
+ F# 6
+ D_ 6
+ F# 6
+ E_ 2
notetype 12, 12, 1
- note F#, 3
+ F# 3
notetype 12, 12, 6
- note E_, 1
- note A_, 6
- note A_, 6
- note B_, 2
- note A_, 3
- note D_, 1
- note F#, 6
- note E_, 2
- note F#, 3
- note E_, 1
- note C#, 6
- note D_, 2
- note C#, 3
+ E_ 1
+ A_ 6
+ A_ 6
+ B_ 2
+ A_ 3
+ D_ 1
+ F# 6
+ E_ 2
+ F# 3
+ E_ 1
+ C# 6
+ D_ 2
+ C# 3
octave 3
- note B_, 1
+ B_ 1
octave 4
- note F#, 6
- note E_, 2
- note D#, 3
- note E_, 1
- note A_, 6
- note B_, 2
- note A_, 3
- note D_, 1
- note F#, 6
- note E_, 2
- note F#, 3
- note G#, 1
- note A_, 6
- note G#, 2
- note F#, 3
- note E_, 1
- note G#, 6
- note A_, 2
- note G#, 3
- note A_, 1
+ F# 6
+ E_ 2
+ D# 3
+ E_ 1
+ A_ 6
+ B_ 2
+ A_ 3
+ D_ 1
+ F# 6
+ E_ 2
+ F# 3
+ G# 1
+ A_ 6
+ G# 2
+ F# 3
+ E_ 1
+ G# 6
+ A_ 2
+ G# 3
+ A_ 1
octave 5
- note C#, 6
+ C# 6
loopchannel 0, Music_Surfing_branch_7faae
@@ -207,130 +207,130 @@
notetype 12, 1, 0
rest 12
octave 5
- note E_, 6
+ E_ 6
octave 4
- note E_, 2
- note F#, 2
- note G#, 2
+ E_ 2
+ F# 2
+ G# 2
Music_Surfing_branch_7fb03::
octave 3
- note A_, 2
+ A_ 2
octave 4
- note A_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ A_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G#, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note G#, 2
+ G# 2
+ G# 2
+ E_ 2
+ G# 2
+ G# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G#, 2
- note G#, 2
- note E_, 2
- note G#, 1
+ G# 2
+ G# 2
+ E_ 2
+ G# 1
rest 2
- note E_, 1
- note C#, 2
- note A_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note A_, 2
+ E_ 1
+ C# 2
+ A_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ A_ 2
+ C# 2
+ A_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ A_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G#, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note G#, 2
+ G# 2
+ G# 2
+ E_ 2
+ G# 2
+ G# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G#, 2
- note G#, 2
- note E_, 2
- note G#, 1
+ G# 2
+ G# 2
+ E_ 2
+ G# 1
rest 2
- note E_, 1
- note C#, 2
- note A_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note A_, 2
- note D_, 2
- note F#, 2
- note F#, 2
+ E_ 1
+ C# 2
+ A_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ A_ 2
+ D_ 2
+ F# 2
+ F# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note F#, 2
- note F#, 2
- note E_, 2
- note A_, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note G#, 2
+ F# 2
+ F# 2
+ E_ 2
+ A_ 2
+ A_ 2
+ C# 2
+ A_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ G# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G#, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note A_, 2
+ G# 2
+ G# 2
+ E_ 2
+ A_ 2
+ A_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note A_, 2
- note A_, 2
- note D_, 2
- note F#, 2
- note F#, 2
+ A_ 2
+ A_ 2
+ D_ 2
+ F# 2
+ F# 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note F#, 2
- note F#, 2
- note E_, 2
- note A_, 2
- note A_, 2
- note C#, 2
- note A_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note G#, 2
+ F# 2
+ F# 2
+ E_ 2
+ A_ 2
+ A_ 2
+ C# 2
+ A_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ G# 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note G#, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note A_, 2
- note C#, 2
- note D_, 2
- note E_, 2
+ G# 2
+ G# 2
+ E_ 2
+ A_ 2
+ A_ 2
+ C# 2
+ D_ 2
+ E_ 2
loopchannel 0, Music_Surfing_branch_7fb03
-; 0x7fb7d
\ No newline at end of file
+; 0x7fb7d
--- a/audio/music/titlescreen.asm
+++ b/audio/music/titlescreen.asm
@@ -1,30 +1,30 @@
Music_TitleScreen_Ch1:: ; 7e4c0 (1f:64c0)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
vibrato 9, 3, 4
duty 3
notetype 12, 12, 1
octave 2
- note E_, 1
- note G_, 1
- note B_, 1
+ E_ 1
+ G_ 1
+ B_ 1
octave 3
- note D_, 1
+ D_ 1
octave 2
- note G_, 4
- note G_, 6
- note G_, 1
- note G_, 1
- note G_, 4
- note G_, 4
- note G_, 4
+ G_ 4
+ G_ 6
+ G_ 1
+ G_ 1
+ G_ 4
+ G_ 4
+ G_ 4
notetype 8, 12, 1
- note A_, 2
- note A_, 2
- note A_, 2
- note A_, 2
- note A_, 2
- note F#, 2
+ A_ 2
+ A_ 2
+ A_ 2
+ A_ 2
+ A_ 2
+ F# 2
Music_TitleScreen_branch_7e4e2::
callchannel Music_TitleScreen_branch_7e541
@@ -31,126 +31,126 @@
callchannel Music_TitleScreen_branch_7e54a
callchannel Music_TitleScreen_branch_7e541
octave 3
- note C_, 8
+ C_ 8
notetype 8, 12, 6
- note E_, 4
- note E_, 4
- note C_, 4
+ E_ 4
+ E_ 4
+ C_ 4
notetype 12, 12, 6
octave 2
- note B_, 8
+ B_ 8
notetype 8, 14, 7
octave 3
- note F_, 4
- note E_, 4
- note C_, 4
+ F_ 4
+ E_ 4
+ C_ 4
notetype 12, 14, 7
- note D_, 10
+ D_ 10
notetype 12, 12, 6
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C_, 2
- note D_, 2
+ C_ 2
+ D_ 2
callchannel Music_TitleScreen_branch_7e541
callchannel Music_TitleScreen_branch_7e54a
callchannel Music_TitleScreen_branch_7e541
- note C_, 6
- note C_, 6
- note E_, 4
- note D_, 6
- note F_, 2
- note G_, 2
- note D_, 4
- note G_, 2
- note G_, 6
- note A_, 4
- note F_, 2
- note A_, 2
+ C_ 6
+ C_ 6
+ E_ 4
+ D_ 6
+ F_ 2
+ G_ 2
+ D_ 4
+ G_ 2
+ G_ 6
+ A_ 4
+ F_ 2
+ A_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note D_, 12
- note E_, 4
- note F_, 8
- note G_, 4
- note F_, 4
- note E_, 12
- note F_, 4
- note G_, 8
+ D_ 12
+ E_ 4
+ F_ 8
+ G_ 4
+ F_ 4
+ E_ 12
+ F_ 4
+ G_ 8
notetype 12, 11, 6
octave 4
- note C_, 4
- note C#, 4
+ C_ 4
+ C# 4
callchannel Music_TitleScreen_branch_7e55c
notetype 8, 11, 4
octave 4
- note C_, 4
- note C_, 4
- note C#, 4
+ C_ 4
+ C_ 4
+ C# 4
callchannel Music_TitleScreen_branch_7e55c
notetype 8, 11, 2
octave 3
- note E_, 4
- note E_, 4
- note C#, 4
+ E_ 4
+ E_ 4
+ C# 4
loopchannel 0, Music_TitleScreen_branch_7e4e2
Music_TitleScreen_branch_7e541::
notetype 12, 12, 6
octave 3
- note D_, 6
+ D_ 6
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D_, 8
+ D_ 8
endchannel
Music_TitleScreen_branch_7e54a::
- note C_, 6
- note F_, 6
- note C_, 4
- note D_, 8
+ C_ 6
+ F_ 6
+ C_ 4
+ D_ 8
notetype 12, 14, 7
- note F_, 6
- note E_, 1
- note D#, 1
- note D_, 8
+ F_ 6
+ E_ 1
+ D# 1
+ D_ 8
notetype 8, 12, 6
- note C_, 4
+ C_ 4
octave 2
- note B_, 4
+ B_ 4
octave 3
- note C_, 4
+ C_ 4
endchannel
Music_TitleScreen_branch_7e55c::
notetype 12, 12, 1
- note D_, 1
+ D_ 1
rest 1
octave 2
- note D_, 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
+ D_ 1
rest 1
- note D_, 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
+ D_ 1
rest 1
- note D_, 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
+ D_ 1
rest 1
- note D_, 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
+ D_ 1
rest 1
- note D_, 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
+ D_ 1
rest 1
- note D_, 1
- note D_, 1
+ D_ 1
+ D_ 1
endchannel
@@ -159,140 +159,140 @@
duty 1
notetype 12, 14, 1
octave 2
- note G_, 1
- note B_, 1
+ G_ 1
+ B_ 1
octave 3
- note D_, 1
- note F#, 1
- note G_, 4
- note G_, 6
- note G_, 1
- note G_, 1
- note G_, 4
- note G_, 4
- note G_, 4
+ D_ 1
+ F# 1
+ G_ 4
+ G_ 6
+ G_ 1
+ G_ 1
+ G_ 4
+ G_ 4
+ G_ 4
notetype 8, 14, 1
- note F_, 2
- note F_, 2
- note F_, 2
- note F_, 2
- note F_, 2
- note F#, 2
+ F_ 2
+ F_ 2
+ F_ 2
+ F_ 2
+ F_ 2
+ F# 2
Music_TitleScreen_branch_7e594::
vibrato 16, 4, 6
callchannel Music_TitleScreen_branch_7e622
octave 2
- note A_, 4
- note F_, 4
+ A_ 4
+ F_ 4
callchannel Music_TitleScreen_branch_7e62c
octave 2
- note A_, 8
- note B_, 16
+ A_ 8
+ B_ 16
callchannel Music_TitleScreen_branch_7e622
octave 2
- note A_, 6
- note F_, 2
+ A_ 6
+ F_ 2
notetype 8, 14, 7
octave 4
- note C_, 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note C_, 4
+ C_ 4
notetype 12, 14, 7
- note D_, 8
+ D_ 8
notetype 12, 9, 5
octave 2
- note D_, 6
- note D_, 1
- note F#, 1
- note G_, 16
+ D_ 6
+ D_ 1
+ F# 1
+ G_ 16
callchannel Music_TitleScreen_branch_7e622
octave 2
- note A_, 2
- note F_, 6
+ A_ 2
+ F_ 6
callchannel Music_TitleScreen_branch_7e62c
octave 3
- note C_, 2
+ C_ 2
octave 2
- note A_, 6
- note B_, 6
- note G_, 2
- note F_, 8
+ A_ 6
+ B_ 6
+ G_ 2
+ F_ 8
callchannel Music_TitleScreen_branch_7e622
notetype 8, 9, 5
octave 2
- note G_, 4
- note F_, 5
- note A_, 3
+ G_ 4
+ F_ 5
+ A_ 3
notetype 8, 14, 6
octave 4
- note F_, 4
- note E_, 4
- note F_, 4
+ F_ 4
+ E_ 4
+ F_ 4
notetype 12, 14, 7
- note G_, 6
- note A#, 2
- note G_, 8
+ G_ 6
+ A# 2
+ G_ 8
vibrato 16, 2, 6
duty 3
notetype 12, 0, 11
- note G_, 8
+ G_ 8
notetype 12, 14, 7
- note A_, 8
+ A_ 8
duty 1
notetype 12, 14, 7
- note A#, 6
- note F_, 2
- note F_, 8
+ A# 6
+ F_ 2
+ F_ 8
octave 3
- note D_, 8
+ D_ 8
octave 4
- note A#, 4
- note B_, 4
+ A# 4
+ B_ 4
octave 5
- note C_, 6
+ C_ 6
octave 4
- note G_, 2
- note G_, 8
+ G_ 2
+ G_ 8
octave 3
- note E_, 8
+ E_ 8
notetype 12, 13, 7
octave 5
- note C_, 4
- note C#, 4
+ C_ 4
+ C# 4
callchannel Music_TitleScreen_branch_7e636
rest 3
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
notetype 8, 14, 5
octave 5
- note C_, 4
- note C_, 4
- note C#, 4
+ C_ 4
+ C_ 4
+ C# 4
callchannel Music_TitleScreen_branch_7e636
- note D_, 1
+ D_ 1
rest 2
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
notetype 8, 14, 3
octave 5
- note C_, 4
- note C_, 4
+ C_ 4
+ C_ 4
octave 4
- note B_, 4
+ B_ 4
loopchannel 0, Music_TitleScreen_branch_7e594
Music_TitleScreen_branch_7e622::
notetype 12, 14, 7
octave 3
- note G_, 6
- note B_, 2
+ G_ 6
+ B_ 2
octave 4
- note D_, 8
+ D_ 8
notetype 12, 9, 5
endchannel
@@ -299,25 +299,25 @@
Music_TitleScreen_branch_7e62c::
notetype 12, 14, 7
octave 4
- note F_, 6
- note E_, 1
- note D#, 1
- note D_, 8
+ F_ 6
+ E_ 1
+ D# 1
+ D_ 8
notetype 12, 9, 5
endchannel
Music_TitleScreen_branch_7e636::
notetype 12, 14, 1
- note D_, 1
+ D_ 1
rest 2
octave 4
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
rest 3
- note D_, 1
+ D_ 1
endchannel
@@ -324,29 +324,29 @@
Music_TitleScreen_Ch3:: ; 7e643 (1f:6643)
notetype 12, 1, 0
octave 3
- note G_, 1
+ G_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 5
- note G_, 1
- note G_, 1
- note G_, 1
+ G_ 1
+ G_ 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
- note G_, 1
+ G_ 1
rest 3
notetype 8, 1, 0
- note F_, 2
- note F_, 2
- note F_, 2
- note F_, 2
- note F_, 2
- note A_, 2
+ F_ 2
+ F_ 2
+ F_ 2
+ F_ 2
+ F_ 2
+ A_ 2
Music_TitleScreen_branch_7e65e::
callchannel Music_TitleScreen_branch_7e6c9
@@ -359,102 +359,102 @@
callchannel Music_TitleScreen_branch_7e6d0
loopchannel 3, Music_TitleScreen_branch_7e664
callchannel Music_TitleScreen_branch_7e6c9
- note G_, 6
- note D_, 3
- note A_, 6
- note F_, 3
- note A_, 3
- note F_, 3
+ G_ 6
+ D_ 3
+ A_ 6
+ F_ 3
+ A_ 3
+ F_ 3
callchannel Music_TitleScreen_branch_7e6d7
- note A#, 3
- note F_, 3
+ A# 3
+ F_ 3
callchannel Music_TitleScreen_branch_7e6d7
- note B_, 3
- note G_, 3
+ B_ 3
+ G_ 3
callchannel Music_TitleScreen_branch_7e6dc
octave 4
- note C_, 3
+ C_ 3
octave 3
- note G_, 3
+ G_ 3
callchannel Music_TitleScreen_branch_7e6dc
octave 4
- note C#, 3
+ C# 3
octave 3
- note A_, 3
+ A_ 3
callchannel Music_TitleScreen_branch_7e6e5
octave 5
pitchbend 0, 66
- note D_, 4
+ D_ 4
rest 4
octave 6
pitchbend 0, 50
- note D_, 4
+ D_ 4
octave 5
pitchbend 0, 66
- note D_, 4
+ D_ 4
rest 2
notetype 8, 1, 0
octave 4
- note C_, 4
- note C_, 4
- note C#, 4
+ C_ 4
+ C_ 4
+ C# 4
callchannel Music_TitleScreen_branch_7e6e5
octave 6
pitchbend 0, 50
- note D_, 4
+ D_ 4
rest 4
octave 5
pitchbend 0, 66
- note D_, 4
+ D_ 4
rest 6
notetype 8, 1, 0
octave 4
- note C_, 4
- note C_, 4
+ C_ 4
+ C_ 4
octave 3
- note B_, 4
+ B_ 4
loopchannel 0, Music_TitleScreen_branch_7e65e
Music_TitleScreen_branch_7e6c9::
- note G_, 6
- note D_, 3
- note G_, 6
- note D_, 3
- note G_, 3
- note D_, 3
+ G_ 6
+ D_ 3
+ G_ 6
+ D_ 3
+ G_ 3
+ D_ 3
endchannel
Music_TitleScreen_branch_7e6d0::
- note F_, 6
- note C_, 3
- note F_, 6
- note C_, 3
- note F_, 3
- note C_, 3
+ F_ 6
+ C_ 3
+ F_ 6
+ C_ 3
+ F_ 3
+ C_ 3
endchannel
Music_TitleScreen_branch_7e6d7::
- note A#, 6
- note F_, 3
- note A#, 6
- note F_, 3
+ A# 6
+ F_ 3
+ A# 6
+ F_ 3
endchannel
Music_TitleScreen_branch_7e6dc::
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 3
+ G_ 3
octave 4
- note C_, 6
+ C_ 6
octave 3
- note G_, 3
+ G_ 3
endchannel
Music_TitleScreen_branch_7e6e5::
notetype 12, 1, 0
octave 4
- note D_, 1
+ D_ 1
rest 5
endchannel
@@ -462,217 +462,217 @@
Music_TitleScreen_Ch4:: ; 7e6eb (1f:66eb)
dspeed 6
rest 4
- dnote 1, snare3
- dnote 1, snare3
- dnote 1, snare4
- dnote 1, snare4
+ snare3 1
+ snare3 1
+ snare4 1
+ snare4 1
dspeed 12
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare2
- dnote 1, snare2
+ snare2 1
+ snare2 1
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 3
dspeed 8
- dnote 2, snare3
- dnote 2, snare4
- dnote 2, snare2
- dnote 2, snare3
- dnote 2, snare2
- dnote 2, snare1
+ snare3 2
+ snare4 2
+ snare2 2
+ snare3 2
+ snare2 2
+ snare1 2
Music_TitleScreen_branch_7e716::
dspeed 12
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare2
- dnote 1, snare3
+ snare2 1
+ snare2 1
+ snare3 1
rest 3
callchannel Music_TitleScreen_branch_7e834
callchannel Music_TitleScreen_branch_7e834
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare2
- dnote 1, snare3
+ snare2 1
+ snare2 1
+ snare3 1
rest 1
- dnote 1, snare3
- dnote 1, snare2
+ snare3 1
+ snare2 1
callchannel Music_TitleScreen_branch_7e842
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare2
+ snare2 1
+ snare3 1
+ snare2 1
rest 1
- dnote 1, snare2
+ snare2 1
rest 1
callchannel Music_TitleScreen_branch_7e842
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare2
+ snare2 1
+ snare3 1
+ snare2 1
rest 1
dspeed 6
- dnote 1, snare3
- dnote 1, snare3
- dnote 1, snare4
- dnote 1, snare4
+ snare3 1
+ snare3 1
+ snare4 1
+ snare4 1
dspeed 12
callchannel Music_TitleScreen_branch_7e834
callchannel Music_TitleScreen_branch_7e842
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare2
+ snare2 1
+ snare3 1
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare2
+ snare3 1
+ snare2 1
+ snare2 1
rest 1
- dnote 1, snare3
- dnote 1, snare2
+ snare3 1
+ snare2 1
callchannel Music_TitleScreen_branch_7e834
callchannel Music_TitleScreen_branch_7e842
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare2
+ snare3 1
+ snare2 1
+ snare2 1
rest 1
- dnote 1, snare4
- dnote 1, snare3
- dnote 1, snare2
+ snare4 1
+ snare3 1
+ snare2 1
rest 3
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare2
- dnote 1, snare4
- dnote 1, snare2
+ snare2 1
+ snare4 1
+ snare2 1
rest 1
dspeed 6
- dnote 1, snare3
- dnote 1, snare3
- dnote 1, snare4
- dnote 1, snare4
+ snare3 1
+ snare3 1
+ snare4 1
+ snare4 1
dspeed 12
- dnote 1, snare1
+ snare1 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare1
+ snare3 1
+ snare2 1
+ snare1 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare3
+ snare3 1
+ snare2 1
+ snare3 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare4
+ snare2 1
+ snare3 1
+ snare4 1
rest 1
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare2
+ snare3 1
+ snare2 1
+ snare2 1
rest 3
- dnote 1, snare3
+ snare3 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare2
+ snare2 1
+ snare3 1
+ snare2 1
rest 3
- dnote 1, snare5
+ snare5 1
rest 5
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare1
+ snare3 1
+ snare2 1
+ snare1 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare2
+ snare2 1
+ snare3 1
+ snare2 1
rest 1
- dnote 1, snare1
+ snare1 1
rest 1
dspeed 8
- dnote 4, snare2
- dnote 4, snare3
- dnote 4, snare1
+ snare2 4
+ snare3 4
+ snare1 4
dspeed 12
- dnote 1, snare5
+ snare5 1
rest 5
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare3
+ snare3 1
+ snare2 1
+ snare3 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare1
+ snare2 1
+ snare3 1
+ snare1 1
rest 1
- dnote 1, snare3
- dnote 1, snare2
+ snare3 1
+ snare2 1
dspeed 8
- dnote 4, snare2
- dnote 4, snare3
- dnote 4, snare2
+ snare2 4
+ snare3 4
+ snare2 4
loopchannel 0, Music_TitleScreen_branch_7e716
Music_TitleScreen_branch_7e834::
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare2
- dnote 1, snare3
- dnote 1, snare2
+ snare2 1
+ snare3 1
+ snare2 1
rest 3
endchannel
Music_TitleScreen_branch_7e842::
- dnote 1, snare2
+ snare2 1
rest 3
- dnote 1, snare2
+ snare2 1
rest 5
- dnote 1, snare3
- dnote 1, snare2
- dnote 1, snare2
+ snare3 1
+ snare2 1
+ snare2 1
rest 3
endchannel
-; 0x7e850
\ No newline at end of file
+; 0x7e850
--- a/audio/music/trainerbattle.asm
+++ b/audio/music/trainerbattle.asm
@@ -1,651 +1,651 @@
Music_TrainerBattle_Ch1:: ; 22919 (8:6919)
- tempo 0, 112
- stereopanning 119
+ tempo 112
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 2
rest 8
octave 3
- note F_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note C_, 1
- note C#, 1
- note C_, 1
+ F_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ C# 1
+ C_ 1
+ C# 1
+ C_ 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A#, 1
- note B_, 1
- note A#, 1
- note A_, 1
- note A#, 1
+ B_ 1
+ A# 1
+ B_ 1
+ A# 1
+ A_ 1
+ A# 1
octave 3
- note D_, 6
- note E_, 6
- note F_, 4
- note D_, 2
- note E_, 4
- note F_, 6
- note C_, 4
- note D_, 6
- note E_, 6
- note F_, 4
- note D_, 2
- note E_, 4
- note F_, 6
- note C_, 2
- note C#, 2
- note D_, 6
- note E_, 6
- note F_, 4
- note D_, 2
- note E_, 4
- note F_, 6
- note C_, 4
- note D_, 6
- note E_, 6
- note F_, 4
- note D_, 2
- note E_, 4
- note F_, 6
- note C_, 2
- note C#, 2
+ D_ 6
+ E_ 6
+ F_ 4
+ D_ 2
+ E_ 4
+ F_ 6
+ C_ 4
+ D_ 6
+ E_ 6
+ F_ 4
+ D_ 2
+ E_ 4
+ F_ 6
+ C_ 2
+ C# 2
+ D_ 6
+ E_ 6
+ F_ 4
+ D_ 2
+ E_ 4
+ F_ 6
+ C_ 4
+ D_ 6
+ E_ 6
+ F_ 4
+ D_ 2
+ E_ 4
+ F_ 6
+ C_ 2
+ C# 2
Music_TrainerBattle_branch_22962::
notetype 12, 11, 5
- note D_, 2
- note E_, 4
- note C#, 2
- note D_, 4
+ D_ 2
+ E_ 4
+ C# 2
+ D_ 4
octave 2
- note B_, 4
- note F#, 4
+ B_ 4
+ F# 4
octave 3
- note E_, 2
- note D_, 4
- note C#, 2
- note D_, 2
- note E_, 2
- note F_, 8
+ E_ 2
+ D_ 4
+ C# 2
+ D_ 2
+ E_ 2
+ F_ 8
notetype 12, 11, 2
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C_, 1
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C_ 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C_ 1
notetype 12, 11, 5
- note D_, 2
- note E_, 4
- note C#, 2
- note D_, 4
+ D_ 2
+ E_ 4
+ C# 2
+ D_ 4
octave 2
- note B_, 4
- note F#, 4
+ B_ 4
+ F# 4
octave 3
- note E_, 2
- note D_, 4
- note C#, 2
+ E_ 2
+ D_ 4
+ C# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
+ C# 2
notetype 12, 10, 7
- note D_, 8
- note C#, 8
+ D_ 8
+ C# 8
octave 2
- note B_, 8
+ B_ 8
octave 3
- note C#, 8
+ C# 8
notetype 12, 11, 5
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 2
- note B_, 2
- note A_, 2
- note G_, 2
+ B_ 2
+ A_ 2
+ G_ 2
rest 2
octave 3
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 2
- note B_, 2
- note A_, 2
- note G_, 2
+ B_ 2
+ A_ 2
+ G_ 2
rest 2
octave 3
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 2
- note E_, 4
+ C# 2
+ E_ 4
octave 2
- note G_, 1
- note A_, 1
- note B_, 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 3
- note C#, 1
- note D_, 4
+ C# 1
+ D_ 4
octave 2
- note F#, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ F# 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 3
- note C#, 4
+ C# 4
octave 2
- note G_, 1
- note A_, 1
- note B_, 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 3
- note C#, 1
- note D_, 4
+ C# 1
+ D_ 4
octave 2
- note F#, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ F# 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 3
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 2
- note B_, 2
- note A_, 2
- note G_, 2
+ B_ 2
+ A_ 2
+ G_ 2
rest 2
octave 3
- note D_, 2
- note C#, 2
+ D_ 2
+ C# 2
octave 2
- note B_, 2
- note A_, 2
- note B_, 2
- note G_, 2
+ B_ 2
+ A_ 2
+ B_ 2
+ G_ 2
octave 3
- note D_, 2
- note E_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G_, 2
- note A_, 2
+ D_ 2
+ E_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G_ 2
+ A_ 2
rest 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note G_, 2
- note A_, 2
- note E_, 2
- note G_, 2
- note F#, 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ G_ 2
+ A_ 2
+ E_ 2
+ G_ 2
+ F# 2
octave 2
- note B_, 1
+ B_ 1
octave 3
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 3
- note B_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ B_ 1
octave 4
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
octave 3
- note A_, 4
+ A_ 4
octave 4
- note D_, 4
+ D_ 4
octave 3
- note A_, 2
- note D_, 1
- note E_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A#, 1
- note B_, 2
+ A_ 2
+ D_ 1
+ E_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A# 1
+ B_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C_, 2
+ C_ 2
octave 3
- note G_, 2
- note B_, 2
- note F_, 2
- note G_, 2
- note A_, 2
+ G_ 2
+ B_ 2
+ F_ 2
+ G_ 2
+ A_ 2
octave 4
- note C_, 2
- note D_, 2
+ C_ 2
+ D_ 2
rest 2
octave 3
- note A_, 4
+ A_ 4
octave 4
- note C_, 4
- note D_, 2
+ C_ 4
+ D_ 2
octave 3
- note F_, 1
- note G_, 1
- note A_, 1
- note B_, 1
+ F_ 1
+ G_ 1
+ A_ 1
+ B_ 1
octave 4
- note C_, 1
- note D_, 1
- note E_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note D_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note E_, 2
+ C_ 1
+ D_ 1
+ E_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ D_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ E_ 2
octave 3
- note B_, 2
- note C_, 2
+ B_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note C_, 2
- note E_, 2
- note D_, 2
+ C_ 2
+ E_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note D_, 2
- note F_, 2
- note C_, 2
+ D_ 2
+ F_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note C_, 2
+ E_ 2
+ C_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note C_, 2
- note E_, 2
- note D_, 2
+ C_ 2
+ E_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
- note D_, 2
+ F_ 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note D_, 2
- note F_, 2
- note D_, 16
- note C_, 16
+ D_ 2
+ F_ 2
+ D_ 16
+ C_ 16
octave 2
- note A#, 16
- note G_, 12
+ A# 16
+ G_ 12
octave 3
- note D_, 1
- note E_, 1
- note G_, 1
+ D_ 1
+ E_ 1
+ G_ 1
octave 4
- note C_, 1
- note D_, 8
- note F_, 8
+ C_ 1
+ D_ 8
+ F_ 8
octave 3
- note A#, 8
+ A# 8
octave 4
- note C_, 8
- note D_, 8
- note E_, 8
- note F_, 8
- note G_, 8
- note E_, 2
+ C_ 8
+ D_ 8
+ E_ 8
+ F_ 8
+ G_ 8
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 2
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 4
- note E_, 2
+ E_ 2
rest 2
octave 3
- note C_, 2
- note D_, 4
+ C_ 2
+ D_ 4
octave 2
- note B_, 2
+ B_ 2
octave 3
- note C#, 4
+ C# 4
rest 2
- note C#, 1
- note D_, 1
- note E_, 1
+ C# 1
+ D_ 1
+ E_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
octave 2
- note B_, 1
+ B_ 1
rest 1
octave 3
- note C#, 1
+ C# 1
rest 9
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
rest 5
- note C#, 1
- note D_, 1
- note E_, 1
+ C# 1
+ D_ 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note D_, 2
- note E_, 2
- note F_, 2
- note G_, 2
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
+ D_ 2
+ E_ 2
+ F_ 2
+ G_ 2
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
rest 9
- note F#, 2
- note E_, 4
- note D#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note E_, 8
- note F#, 8
- note G_, 8
+ F# 2
+ E_ 4
+ D# 2
+ E_ 2
+ F# 2
+ G# 2
+ E_ 8
+ F# 8
+ G_ 8
octave 4
- note C_, 4
+ C_ 4
octave 3
- note G_, 1
- note G#, 1
- note A_, 1
- note A#, 1
+ G_ 1
+ G# 1
+ A_ 1
+ A# 1
loopchannel 0, Music_TrainerBattle_branch_22962
@@ -654,302 +654,302 @@
vibrato 10, 2, 5
notetype 12, 12, 2
octave 4
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note A_, 1
- note F_, 1
- note F#, 1
- note F_, 1
- note A_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note A_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note A_, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note A_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note A_, 1
- note C_, 1
- note C#, 1
- note C_, 1
- note A_, 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ A_ 1
+ F_ 1
+ F# 1
+ F_ 1
+ A_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ A_ 1
+ D# 1
+ E_ 1
+ D# 1
+ A_ 1
+ D_ 1
+ D# 1
+ D_ 1
+ A_ 1
+ C# 1
+ D_ 1
+ C# 1
+ A_ 1
+ C_ 1
+ C# 1
+ C_ 1
+ A_ 1
octave 3
- note B_, 1
+ B_ 1
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
+ B_ 1
notetype 12, 14, 1
octave 4
- note B_, 16
+ B_ 16
rest 16
notetype 12, 13, 1
- note B_, 16
+ B_ 16
rest 12
- note A_, 4
+ A_ 4
notetype 12, 12, 2
octave 3
- note B_, 6
+ B_ 6
octave 4
- note C#, 6
- note D_, 4
+ C# 6
+ D_ 4
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 4
- note D_, 6
- note A_, 2
- note A#, 2
- note B_, 6
+ C# 4
+ D_ 6
+ A_ 2
+ A# 2
+ B_ 6
octave 5
- note C#, 6
- note D_, 4
+ C# 6
+ D_ 4
octave 4
- note B_, 2
+ B_ 2
octave 5
- note C#, 4
- note D_, 6
+ C# 4
+ D_ 6
octave 4
- note A_, 4
+ A_ 4
Music_TrainerBattle_branch_22bfc::
notetype 12, 12, 7
octave 3
- note B_, 6
- note F#, 14
- note B_, 4
- note F#, 4
- note B_, 4
+ B_ 6
+ F# 14
+ B_ 4
+ F# 4
+ B_ 4
notetype 12, 5, 0
octave 4
- note C_, 8
+ C_ 8
notetype 12, 3, 0
- note C_, 8
+ C_ 8
notetype 12, 4, 14
- note C_, 8
+ C_ 8
notetype 12, 12, 7
- note C_, 8
+ C_ 8
octave 3
- note B_, 6
- note F#, 14
- note B_, 4
- note F#, 4
- note B_, 4
+ B_ 6
+ F# 14
+ B_ 4
+ F# 4
+ B_ 4
notetype 12, 9, 0
- note A_, 8
+ A_ 8
notetype 12, 5, 0
- note A_, 8
+ A_ 8
notetype 12, 4, 0
- note A_, 8
+ A_ 8
notetype 12, 3, 0
- note A_, 8
+ A_ 8
notetype 12, 12, 7
- note G_, 16
+ G_ 16
octave 4
- note D_, 8
+ D_ 8
octave 3
- note G_, 8
+ G_ 8
notetype 12, 8, 0
- note A_, 8
+ A_ 8
notetype 12, 5, 0
- note A_, 8
+ A_ 8
notetype 12, 4, 0
- note A_, 8
+ A_ 8
notetype 12, 6, 0
- note A_, 8
+ A_ 8
notetype 12, 12, 7
- note G_, 16
+ G_ 16
octave 4
- note E_, 8
- note F#, 8
- note E_, 16
+ E_ 8
+ F# 8
+ E_ 16
notetype 12, 12, 5
- note G_, 4
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note E_, 2
+ G_ 4
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ E_ 2
notetype 12, 11, 7
- note F#, 8
+ F# 8
notetype 12, 5, 0
- note F#, 8
+ F# 8
notetype 12, 6, 0
- note F#, 8
+ F# 8
notetype 12, 7, 0
- note F#, 8
+ F# 8
notetype 12, 10, 0
- note G_, 8
+ G_ 8
notetype 12, 10, 7
- note G_, 8
+ G_ 8
notetype 12, 11, 7
- note G_, 4
+ G_ 4
notetype 12, 12, 5
- note A_, 2
- note G_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note F#, 2
+ A_ 2
+ G_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ F# 2
notetype 12, 10, 0
- note G#, 8
+ G# 8
notetype 12, 7, 0
- note G#, 8
+ G# 8
notetype 12, 8, 0
- note G#, 8
+ G# 8
notetype 12, 6, 0
- note G#, 8
+ G# 8
notetype 12, 10, 0
- note A_, 16
+ A_ 16
notetype 12, 11, 0
octave 5
- note C#, 8
- note E_, 8
+ C# 8
+ E_ 8
notetype 12, 12, 0
- note D_, 4
+ D_ 4
octave 4
- note A_, 4
+ A_ 4
octave 5
- note C_, 2
+ C_ 2
notetype 12, 12, 7
octave 4
- note B_, 8
+ B_ 8
notetype 12, 6, 0
- note B_, 8
+ B_ 8
notetype 12, 6, 9
- note B_, 6
+ B_ 6
notetype 12, 9, 6
- note B_, 6
+ B_ 6
rest 2
notetype 12, 12, 0
octave 5
- note D_, 4
+ D_ 4
octave 4
- note A_, 4
- note A#, 2
+ A_ 4
+ A# 2
notetype 12, 11, 0
octave 5
- note F_, 14
+ F_ 14
notetype 12, 6, 0
- note G_, 16
+ G_ 16
notetype 12, 5, 0
- note E_, 16
+ E_ 16
notetype 12, 4, 0
- note E_, 16
+ E_ 16
notetype 12, 12, 7
octave 4
- note C_, 6
+ C_ 6
octave 3
- note A_, 14
+ A_ 14
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note C_, 4
+ C_ 4
octave 3
- note A#, 6
+ A# 6
octave 4
- note F_, 14
+ F_ 14
octave 3
- note A#, 4
+ A# 4
octave 4
- note F_, 4
- note D_, 4
- note C_, 6
+ F_ 4
+ D_ 4
+ C_ 6
octave 3
- note A_, 14
+ A_ 14
octave 4
- note C_, 4
- note E_, 2
- note D_, 2
- note C_, 2
- note E_, 2
- note D_, 2
+ C_ 4
+ E_ 2
+ D_ 2
+ C_ 2
+ E_ 2
+ D_ 2
octave 3
- note A#, 4
+ A# 4
octave 4
- note F_, 10
- note G_, 6
- note F_, 6
- note D_, 4
+ F_ 10
+ G_ 6
+ F_ 6
+ D_ 4
notetype 12, 11, 0
- note F_, 16
- note E_, 16
- note D_, 16
- note E_, 16
+ F_ 16
+ E_ 16
+ D_ 16
+ E_ 16
notetype 12, 10, 0
octave 5
- note F_, 16
- note E_, 16
- note G_, 16
- note F_, 16
+ F_ 16
+ E_ 16
+ G_ 16
+ F_ 16
notetype 12, 13, 1
octave 3
- note A#, 6
- note A#, 6
- note A#, 4
- note A_, 6
- note A_, 6
- note A_, 4
+ A# 6
+ A# 6
+ A# 4
+ A_ 6
+ A_ 6
+ A_ 4
octave 4
- note C_, 6
- note C_, 6
- note C_, 4
+ C_ 6
+ C_ 6
+ C_ 4
octave 3
- note A#, 6
- note A#, 6
- note A_, 4
+ A# 6
+ A# 6
+ A_ 4
notetype 12, 12, 7
- note A_, 4
- note B_, 4
- note G_, 2
- note A_, 10
- note B_, 2
+ A_ 4
+ B_ 4
+ G_ 2
+ A_ 10
+ B_ 2
octave 4
- note C#, 2
- note E_, 2
- note D_, 2
- note C#, 2
+ C# 2
+ E_ 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
- note A#, 16
+ B_ 2
+ A# 16
rest 2
- note A#, 2
+ A# 2
octave 4
- note C_, 2
- note F_, 2
- note E_, 2
- note D_, 2
- note C_, 2
+ C_ 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C_ 2
octave 3
- note A#, 2
- note B_, 16
+ A# 2
+ B_ 16
rest 2
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
+ C# 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C_, 16
- note E_, 8
- note G_, 8
+ C_ 16
+ E_ 8
+ G_ 8
loopchannel 0, Music_TrainerBattle_branch_22bfc
@@ -957,902 +957,902 @@
vibrato 0, 2, 0
notetype 12, 1, 4
octave 3
- note B_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
- note C#, 1
- note C_, 1
+ B_ 1
+ A# 1
+ A_ 1
+ G# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
+ C# 1
+ C_ 1
octave 2
- note B_, 1
- note A#, 1
- note B_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note A_, 2
- note A#, 2
- note B_, 2
- note B_, 2
+ B_ 1
+ A# 1
+ B_ 1
+ A# 1
+ A_ 1
+ G# 1
+ A_ 2
+ A# 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F_, 2
- note E_, 2
- note D_, 2
+ F_ 2
+ E_ 2
+ D_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F_, 2
- note E_, 2
- note D_, 2
+ F_ 2
+ E_ 2
+ D_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F_, 2
- note E_, 2
- note D_, 2
+ F_ 2
+ E_ 2
+ D_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note C_, 2
+ C_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F_, 2
- note E_, 2
- note D_, 2
+ F_ 2
+ E_ 2
+ D_ 2
octave 2
- note B_, 2
- note B_, 2
+ B_ 2
+ B_ 2
octave 3
- note D_, 2
- note E_, 2
+ D_ 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note C_, 2
+ C_ 2
Music_TrainerBattle_branch_22d9c::
octave 2
- note A#, 1
- note B_, 1
+ A# 1
+ B_ 1
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note A_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note C_, 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ A_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ C_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note C#, 2
+ E_ 2
+ D_ 2
+ C# 2
+ D_ 2
+ C# 2
octave 2
- note A_, 2
- note G#, 2
- note G_, 2
+ A_ 2
+ G# 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
- note G#, 2
- note A_, 2
+ G_ 2
+ G# 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
+ G_ 2
octave 3
- note D_, 2
+ D_ 2
octave 2
- note G_, 2
- note G#, 2
- note A_, 2
+ G_ 2
+ G# 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note D_, 2
- note C#, 2
+ E_ 2
+ D_ 2
+ C# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
- note D_, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note F#, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note D#, 2
- note F_, 2
- note G_, 2
- note F_, 2
- note D#, 2
- note G_, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note D_, 2
- note A_, 2
- note F_, 2
- note G_, 2
- note A_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note D_, 4
+ F# 2
+ D_ 2
+ E_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ F# 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ D# 2
+ F_ 2
+ G_ 2
+ F_ 2
+ D# 2
+ G_ 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ E_ 2
+ F# 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ D_ 2
+ A_ 2
+ F_ 2
+ G_ 2
+ A_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ D_ 4
octave 2
- note A_, 4
+ A_ 4
octave 3
- note C_, 2
- note G_, 2
+ C_ 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
+ G_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note G_, 2
- note D_, 4
+ G_ 2
+ D_ 4
octave 2
- note A_, 4
- note A#, 2
+ A_ 4
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 4
+ A# 4
octave 3
- note F_, 4
+ F_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note F_, 4
+ F_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note D_, 4
+ D_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note D_, 4
+ D_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note F_, 4
+ F_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note F_, 4
+ F_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note D_, 4
+ D_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note D_, 4
+ D_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A#, 4
+ A# 4
octave 3
- note E_, 4
+ E_ 4
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
octave 2
- note B_, 2
- note A_, 2
+ B_ 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note E_, 2
+ E_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note F_, 2
+ F_ 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
+ F# 2
octave 2
- note B_, 2
+ B_ 2
octave 3
- note F#, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note D_, 2
- note C_, 2
+ F# 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ F# 2
+ E_ 2
+ F# 2
+ E_ 2
+ D_ 2
+ C_ 2
loopchannel 0, Music_TrainerBattle_branch_22d9c
-; 0x23099
\ No newline at end of file
+; 0x23099
--- a/audio/music/unusedsong.asm
+++ b/audio/music/unusedsong.asm
@@ -1,182 +1,182 @@
Music_UnusedSong_Ch1:: ; a913 (2:6913)
- tempo 0, 144
- stereopanning 119
+ tempo 144
+ volume 7, 7
vibrato 5, 1, 6
Music_UnusedSong_branch_a91b::
notetype 12, 1, 0
octave 6
- note E_, 1
+ E_ 1
rest 1
octave 5
- note B_, 1
+ B_ 1
rest 1
octave 6
- note C#, 1
+ C# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
octave 6
- note E_, 1
+ E_ 1
rest 4
- note E_, 2
+ E_ 2
rest 2
- note D#, 1
+ D# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
rest 1
octave 6
- note C#, 1
+ C# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
octave 6
- note D#, 1
+ D# 1
rest 8
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note C#, 1
+ C# 1
octave 5
- note B_, 1
+ B_ 1
rest 2
octave 6
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note C#, 1
+ C# 1
octave 5
- note B_, 1
+ B_ 1
rest 2
octave 6
- note D#, 4
- note C#, 4
- note D#, 1
- note E_, 1
+ D# 4
+ C# 4
+ D# 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 5
- note B_, 2
+ B_ 2
rest 1
octave 6
- note E_, 1
+ E_ 1
rest 1
octave 5
- note B_, 1
+ B_ 1
rest 1
octave 6
- note C#, 1
+ C# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
octave 6
- note E_, 1
+ E_ 1
rest 8
- note D#, 1
+ D# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
rest 1
octave 6
- note C#, 1
+ C# 1
rest 1
octave 5
- note B_, 1
+ B_ 1
octave 6
- note D#, 1
+ D# 1
rest 4
octave 5
- note B_, 2
+ B_ 2
rest 2
octave 6
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note C#, 1
+ C# 1
octave 5
- note B_, 1
+ B_ 1
rest 2
octave 6
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
- note F#, 1
+ E_ 1
+ F# 1
rest 2
- note F#, 4
- note E_, 4
- note F#, 1
- note G#, 1
+ F# 4
+ E_ 4
+ F# 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D#, 2
+ D# 2
rest 3
octave 5
- note A_, 2
+ A_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
octave 6
- note C#, 2
+ C# 2
rest 2
- note E_, 2
- note F#, 8
+ E_ 2
+ F# 8
rest 2
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 2
+ D# 2
+ C# 2
rest 2
octave 5
- note G#, 2
+ G# 2
rest 2
- note A_, 2
+ A_ 2
rest 2
- note B_, 2
+ B_ 2
rest 2
octave 6
- note D#, 2
- note E_, 8
+ D# 2
+ E_ 8
rest 2
- note D#, 2
- note C#, 2
- note D#, 2
+ D# 2
+ C# 2
+ D# 2
octave 5
- note A_, 2
- note G#, 2
- note A_, 2
- note A#, 1
- note B_, 1
+ A_ 2
+ G# 2
+ A_ 2
+ A# 1
+ B_ 1
rest 4
- note F#, 2
+ F# 2
rest 2
- note B_, 2
- note A#, 2
- note B_, 2
+ B_ 2
+ A# 2
+ B_ 2
octave 6
- note C_, 1
- note C#, 1
+ C_ 1
+ C# 1
rest 8
octave 5
- note F#, 2
- note F_, 2
- note F#, 2
- note G#, 2
- note A_, 2
+ F# 2
+ F_ 2
+ F# 2
+ G# 2
+ A_ 2
octave 6
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 2
+ D# 2
+ C# 2
octave 5
- note B_, 2
+ B_ 2
rest 6
- note B_, 2
+ B_ 2
rest 6
loopchannel 0, Music_UnusedSong_branch_a91b
endchannel
@@ -183,157 +183,157 @@
Music_UnusedSong_Ch2:: ; a9cf (2:69cf)
- tempo 0, 144
- stereopanning 119
- togglecall
+ tempo 144
+ volume 7, 7
+ toggleperfectpitch
vibrato 6, 1, 5
Music_UnusedSong_branch_a9d8::
notetype 12, 1, 0
octave 6
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
- note G#, 1
+ A_ 1
+ G# 1
rest 8
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
- note F#, 1
+ G# 1
+ F# 1
rest 4
octave 5
- note B_, 2
+ B_ 2
rest 2
octave 6
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
- note F#, 1
+ E_ 1
+ F# 1
rest 2
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
- note F#, 1
+ E_ 1
+ F# 1
rest 2
- note F#, 4
- note E_, 4
- note F#, 1
- note G#, 1
+ F# 4
+ E_ 4
+ F# 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D#, 2
+ D# 2
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
- note G#, 1
+ A_ 1
+ G# 1
rest 4
- note E_, 2
+ E_ 2
rest 2
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
- note F#, 1
+ G# 1
+ F# 1
rest 8
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
- note F#, 1
+ E_ 1
+ F# 1
rest 2
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
- note F#, 1
+ E_ 1
+ F# 1
rest 2
- note F#, 4
- note E_, 4
- note F#, 1
- note G#, 1
+ F# 4
+ E_ 4
+ F# 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 2
+ F# 2
rest 1
- note C#, 2
+ C# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note E_, 2
+ E_ 2
rest 2
- note G#, 2
+ G# 2
rest 2
- note D#, 8
+ D# 8
rest 2
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 2
+ D# 2
+ C# 2
octave 5
- note B_, 2
+ B_ 2
rest 2
octave 6
- note C#, 2
+ C# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note F#, 2
+ F# 2
rest 2
- note C#, 8
+ C# 8
rest 2
- note D#, 2
- note C#, 2
+ D# 2
+ C# 2
octave 5
- note B_, 2
- note A_, 2
- note G#, 2
- note A_, 2
- note G#, 1
- note F#, 1
+ B_ 2
+ A_ 2
+ G# 2
+ A_ 2
+ G# 1
+ F# 1
rest 8
- note B_, 2
- note A#, 2
- note B_, 2
- note A_, 1
- note G#, 1
+ B_ 2
+ A# 2
+ B_ 2
+ A_ 1
+ G# 1
rest 4
- note G#, 2
+ G# 2
rest 2
- note F#, 2
- note F_, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note E_, 2
- note C#, 2
- note E_, 2
- note F#, 2
+ F# 2
+ F_ 2
+ F# 2
+ G# 2
+ A_ 2
+ E_ 2
+ C# 2
+ E_ 2
+ F# 2
rest 6
- note D#, 2
+ D# 2
rest 6
loopchannel 0, Music_UnusedSong_branch_a9d8
endchannel
-; 0xaa6f
\ No newline at end of file
+; 0xaa6f
--- a/audio/music/vermilion.asm
+++ b/audio/music/vermilion.asm
@@ -1,113 +1,113 @@
Music_Vermilion_Ch1:: ; b9eb (2:79eb)
- tempo 0, 156
- stereopanning 119
+ tempo 156
+ volume 7, 7
duty 3
vibrato 12, 3, 4
- togglecall
+ toggleperfectpitch
Music_Vermilion_branch_b9f6::
notetype 12, 11, 5
octave 3
- note E_, 4
- note C#, 1
- note D_, 1
- note E_, 2
- note A_, 4
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note A_, 4
- note F#, 1
- note G#, 1
- note A_, 2
- note E_, 4
- note C#, 2
- note E_, 2
- note A_, 2
- note G#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note C#, 2
- note D_, 2
- note E_, 2
- note F#, 2
- note E_, 4
- note C#, 1
- note D_, 1
- note E_, 2
- note A_, 4
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note A_, 4
- note F#, 1
- note G#, 1
- note A_, 2
- note E_, 4
- note C#, 1
- note D_, 1
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note G#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note F#, 4
- note E_, 4
- note F#, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note G#, 2
- note B_, 2
- note A_, 2
+ E_ 4
+ C# 1
+ D_ 1
+ E_ 2
+ A_ 4
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ A_ 4
+ F# 1
+ G# 1
+ A_ 2
+ E_ 4
+ C# 2
+ E_ 2
+ A_ 2
+ G# 2
+ B_ 2
+ A_ 2
+ G# 2
+ E_ 2
+ F# 2
+ G# 2
+ C# 2
+ D_ 2
+ E_ 2
+ F# 2
+ E_ 4
+ C# 1
+ D_ 1
+ E_ 2
+ A_ 4
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ A_ 4
+ F# 1
+ G# 1
+ A_ 2
+ E_ 4
+ C# 1
+ D_ 1
+ E_ 2
+ A_ 2
+ G# 2
+ F# 2
+ A_ 2
+ G# 2
+ E_ 2
+ F# 2
+ G# 2
+ F# 4
+ E_ 4
+ F# 2
+ G# 2
+ F# 2
+ A_ 2
+ G# 2
+ B_ 2
+ A_ 2
octave 4
- note C#, 2
- note D_, 2
- note C#, 2
+ C# 2
+ D_ 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 1
- note A_, 1
- note B_, 2
+ B_ 2
+ A_ 2
+ G# 1
+ A_ 1
+ B_ 2
octave 4
- note C#, 2
- note E_, 2
+ C# 2
+ E_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note D_, 2
+ D_ 2
octave 3
- note G#, 2
+ G# 2
octave 4
- note C#, 2
+ C# 2
octave 3
- note F#, 2
- note B_, 2
- note G#, 2
- note A_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note F#, 2
- note G#, 2
- note B_, 2
+ F# 2
+ B_ 2
+ G# 2
+ A_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ F# 2
+ G# 2
+ B_ 2
loopchannel 0, Music_Vermilion_branch_b9f6
@@ -118,63 +118,63 @@
Music_Vermilion_branch_ba66::
notetype 12, 12, 7
octave 3
- note A_, 8
+ A_ 8
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note B_, 6
- note A_, 1
- note B_, 1
+ B_ 6
+ A_ 1
+ B_ 1
octave 4
- note C#, 8
+ C# 8
octave 3
- note A_, 8
+ A_ 8
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note B_, 6
+ B_ 6
octave 4
- note C#, 1
+ C# 1
octave 3
- note B_, 1
- note A_, 8
- note A_, 8
+ B_ 1
+ A_ 8
+ A_ 8
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note B_, 6
- note A_, 1
- note B_, 1
+ B_ 6
+ A_ 1
+ B_ 1
octave 4
- note C#, 8
+ C# 8
octave 3
- note A_, 8
+ A_ 8
octave 4
- note D_, 4
- note C#, 4
+ D_ 4
+ C# 4
octave 3
- note B_, 6
+ B_ 6
octave 4
- note C#, 1
+ C# 1
octave 3
- note B_, 1
- note A_, 8
- note B_, 4
+ B_ 1
+ A_ 8
+ B_ 4
octave 4
- note C#, 4
- note D_, 4
- note E_, 4
- note F#, 8
- note B_, 8
- note A_, 4
- note G#, 4
- note F#, 4
- note E_, 4
- note F#, 8
- note E_, 8
+ C# 4
+ D_ 4
+ E_ 4
+ F# 8
+ B_ 8
+ A_ 4
+ G# 4
+ F# 4
+ E_ 4
+ F# 8
+ E_ 8
loopchannel 0, Music_Vermilion_branch_ba66
@@ -183,102 +183,102 @@
Music_Vermilion_branch_baa8::
octave 4
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note B_, 2
- note E_, 2
- note A_, 2
- note E_, 2
- note G#, 2
- note E_, 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ A_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ E_ 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ G# 2
+ E_ 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ F# 2
+ E_ 2
+ G# 2
+ E_ 2
+ A_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ B_ 2
+ E_ 2
+ A_ 2
+ E_ 2
+ G# 2
+ E_ 2
loopchannel 0, Music_Vermilion_branch_baa8
@@ -287,19 +287,19 @@
Music_Vermilion_branch_bb0e::
callchannel Music_Vermilion_branch_bb3f
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
+ triangle1 2
+ triangle1 1
+ triangle1 1
+ triangle1 2
+ triangle1 1
+ triangle1 1
+ triangle1 2
+ triangle1 1
+ triangle1 1
+ triangle1 1
+ triangle1 1
+ triangle1 1
+ triangle1 1
loopchannel 4, Music_Vermilion_branch_bb0e
callchannel Music_Vermilion_branch_bb3f
callchannel Music_Vermilion_branch_bb3f
@@ -308,17 +308,17 @@
loopchannel 0, Music_Vermilion_branch_bb0e
Music_Vermilion_branch_bb3f::
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
- dnote 2, triangle1
- dnote 1, triangle1
- dnote 1, triangle1
+ triangle1 2
+ triangle1 1
+ triangle1 1
+ triangle1 2
+ triangle1 1
+ triangle1 1
+ triangle1 2
+ triangle1 1
+ triangle1 1
+ triangle1 2
+ triangle1 1
+ triangle1 1
endchannel
-; 0xbb58
\ No newline at end of file
+; 0xbb58
--- a/audio/music/wildbattle.asm
+++ b/audio/music/wildbattle.asm
@@ -1,302 +1,302 @@
Music_WildBattle_Ch1:: ; 23099 (8:7099)
- tempo 0, 104
- stereopanning 119
+ tempo 104
+ volume 7, 7
duty 3
vibrato 6, 3, 4
- togglecall
+ toggleperfectpitch
notetype 12, 11, 3
octave 4
- note C_, 1
+ C_ 1
octave 3
- note B_, 1
- note A#, 1
- note A_, 1
- note A#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ B_ 1
+ A# 1
+ A_ 1
+ A# 1
+ A_ 1
+ G# 1
+ G_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note C_, 1
+ C_ 1
octave 2
- note B_, 1
- note A#, 1
- note A_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ A_ 1
+ A# 1
+ B_ 1
octave 3
- note C_, 1
- note C#, 1
+ C_ 1
+ C# 1
notetype 12, 11, 1
- note G_, 6
- note E_, 6
- note D#, 12
- note C#, 14
- note E_, 6
- note D#, 10
+ G_ 6
+ E_ 6
+ D# 12
+ C# 14
+ E_ 6
+ D# 10
notetype 12, 4, 15
- note C#, 10
+ C# 10
notetype 12, 11, 1
- note G_, 6
- note E_, 6
- note D#, 12
- note C#, 14
- note E_, 6
- note D#, 10
- note C#, 10
+ G_ 6
+ E_ 6
+ D# 12
+ C# 14
+ E_ 6
+ D# 10
+ C# 10
Music_WildBattle_branch_230e0::
notetype 12, 11, 3
- note C#, 1
- note D_, 1
- note C#, 1
- note C_, 1
- note C#, 1
- note D_, 1
- note C#, 1
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note C_, 1
+ C# 1
+ D_ 1
+ C# 1
+ C_ 1
+ C# 1
+ D_ 1
+ C# 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ C_ 1
octave 2
- note B_, 1
+ B_ 1
octave 3
- note C_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
- note A_, 1
- note G#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note D_, 1
- note C#, 1
- note D_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note F#, 1
- note F_, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note F_, 1
- note F#, 1
- note G_, 1
- note G#, 1
+ C_ 1
+ C# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
+ A_ 1
+ G# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ D_ 1
+ C# 1
+ D_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ F# 1
+ F_ 1
+ E_ 1
+ D# 1
+ E_ 1
+ F_ 1
+ F# 1
+ G_ 1
+ G# 1
notetype 12, 11, 5
- note D_, 4
- note C_, 4
- note D_, 4
- note F_, 4
- note E_, 6
- note D_, 6
- note F_, 4
+ D_ 4
+ C_ 4
+ D_ 4
+ F_ 4
+ E_ 6
+ D_ 6
+ F_ 4
notetype 12, 11, 7
- note A_, 16
- note G_, 16
+ A_ 16
+ G_ 16
notetype 12, 11, 5
- note D_, 4
- note C_, 4
- note D_, 4
- note F_, 4
- note G_, 6
- note A_, 6
- note B_, 4
+ D_ 4
+ C_ 4
+ D_ 4
+ F_ 4
+ G_ 6
+ A_ 6
+ B_ 4
notetype 12, 11, 7
octave 4
- note C_, 16
+ C_ 16
notetype 12, 3, 15
- note G_, 16
+ G_ 16
notetype 12, 11, 5
octave 3
- note C_, 12
- note C_, 2
+ C_ 12
+ C_ 2
rest 2
- note D_, 2
- note C_, 2
+ D_ 2
+ C_ 2
rest 12
- note C#, 12
- note C#, 2
+ C# 12
+ C# 2
rest 2
- note F_, 2
+ F_ 2
notetype 12, 10, 3
- note D#, 6
+ D# 6
notetype 12, 10, 7
- note C#, 8
+ C# 8
loopchannel 0, Music_WildBattle_branch_230e0
@@ -305,160 +305,160 @@
vibrato 8, 2, 5
notetype 12, 12, 3
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
octave 4
- note G_, 1
- note F#, 1
- note F_, 1
+ G_ 1
+ F# 1
+ F_ 1
octave 5
- note G_, 1
+ G_ 1
notetype 12, 12, 2
octave 4
- note G_, 6
+ G_ 6
octave 3
- note G_, 6
- note G_, 12
- note G_, 14
- note G_, 6
- note G_, 10
+ G_ 6
+ G_ 12
+ G_ 14
+ G_ 6
+ G_ 10
notetype 12, 9, 0
- note F#, 10
+ F# 10
notetype 12, 12, 2
- note G_, 6
- note G_, 6
- note G_, 12
- note G_, 14
- note G_, 6
- note G_, 10
- note G_, 10
+ G_ 6
+ G_ 6
+ G_ 12
+ G_ 14
+ G_ 6
+ G_ 10
+ G_ 10
Music_WildBattle_branch_23225::
notetype 12, 12, 5
- note G_, 6
- note F#, 6
- note E_, 4
- note G_, 6
- note A_, 6
- note G_, 4
+ G_ 6
+ F# 6
+ E_ 4
+ G_ 6
+ A_ 6
+ G_ 4
octave 4
- note G#, 12
- note G_, 2
+ G# 12
+ G_ 2
rest 2
- note G#, 2
- note G_, 2
+ G# 2
+ G_ 2
rest 4
notetype 12, 11, 7
octave 5
- note C#, 8
+ C# 8
notetype 12, 12, 5
octave 4
- note C_, 6
+ C_ 6
octave 3
- note A#, 6
- note G#, 4
+ A# 6
+ G# 4
octave 4
- note C#, 6
- note C_, 6
+ C# 6
+ C_ 6
octave 3
- note A#, 4
+ A# 4
octave 4
- note F_, 6
- note E_, 6
- note D_, 4
+ F_ 6
+ E_ 6
+ D_ 4
notetype 12, 12, 7
octave 3
- note A#, 4
+ A# 4
octave 4
- note C_, 4
- note D_, 4
- note F_, 4
+ C_ 4
+ D_ 4
+ F_ 4
notetype 12, 12, 0
- note G#, 16
+ G# 16
notetype 12, 11, 0
- note G#, 16
+ G# 16
notetype 12, 4, 14
- note G_, 16
+ G_ 16
notetype 12, 12, 7
- note G_, 16
+ G_ 16
octave 3
- note F_, 8
- note A#, 8
+ F_ 8
+ A# 8
octave 4
- note D_, 8
- note F_, 8
+ D_ 8
+ F_ 8
notetype 12, 12, 0
- note E_, 16
+ E_ 16
notetype 12, 12, 7
- note E_, 16
+ E_ 16
octave 3
- note F_, 8
- note A#, 8
+ F_ 8
+ A# 8
octave 4
- note D_, 8
- note F_, 8
+ D_ 8
+ F_ 8
notetype 12, 12, 0
- note G_, 16
+ G_ 16
notetype 12, 3, 15
octave 5
- note C_, 16
+ C_ 16
notetype 12, 12, 5
octave 4
- note E_, 12
- note E_, 2
+ E_ 12
+ E_ 2
rest 2
- note F_, 2
+ F_ 2
notetype 12, 12, 1
- note E_, 4
+ E_ 4
notetype 12, 12, 5
rest 10
- note F_, 12
- note F_, 2
+ F_ 12
+ F_ 2
rest 2
- note G#, 2
+ G# 2
notetype 12, 10, 3
- note G_, 6
+ G_ 6
notetype 12, 12, 7
- note F_, 8
+ F_ 8
loopchannel 0, Music_WildBattle_branch_23225
@@ -466,274 +466,274 @@
vibrato 0, 2, 0
notetype 12, 1, 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note C#, 1
- note C_, 1
- note D_, 1
+ C# 1
+ C_ 1
+ D_ 1
rest 1
- note D_, 1
- note C_, 1
- note D#, 1
+ D_ 1
+ C_ 1
+ D# 1
rest 1
- note D#, 1
- note C_, 1
- note E_, 1
+ D# 1
+ C_ 1
+ E_ 1
rest 1
- note E_, 1
- note C_, 1
- note F_, 1
+ E_ 1
+ C_ 1
+ F_ 1
rest 1
- note F_, 1
- note C_, 1
- note F#, 1
+ F_ 1
+ C_ 1
+ F# 1
rest 1
- note F#, 1
- note C_, 1
- note G_, 1
+ F# 1
+ C_ 1
+ G_ 1
rest 1
- note G_, 1
- note C_, 1
+ G_ 1
+ C_ 1
octave 3
- note A#, 2
- note B_, 2
+ A# 2
+ B_ 2
Music_WildBattle_branch_232b5::
octave 4
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C#, 2
- note G#, 2
- note C#, 4
- note G#, 2
- note A#, 2
- note G#, 2
- note G_, 2
- note C#, 2
- note G#, 2
- note C#, 4
- note G#, 2
- note A#, 2
- note G#, 2
- note F_, 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C# 2
+ G# 2
+ C# 4
+ G# 2
+ A# 2
+ G# 2
+ G_ 2
+ C# 2
+ G# 2
+ C# 4
+ G# 2
+ A# 2
+ G# 2
+ F_ 2
loopchannel 2, Music_WildBattle_branch_232b5
Music_WildBattle_branch_232d8::
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note G#, 12
- note G_, 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ G# 12
+ G_ 2
rest 2
- note G#, 2
- note G_, 2
+ G# 2
+ G_ 2
rest 4
- note F_, 2
- note E_, 2
- note D_, 2
- note C#, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
+ F_ 2
+ E_ 2
+ D_ 2
+ C# 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
+ F_ 2
octave 3
- note A#, 2
+ A# 2
octave 4
- note F_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note F_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C_, 2
- note G_, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
- note C#, 2
- note G#, 2
+ F_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ F_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C_ 2
+ G_ 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
+ C# 2
+ G# 2
loopchannel 0, Music_WildBattle_branch_232d8
-; 0x233a6
\ No newline at end of file
+; 0x233a6
--- a/audio/music/yellow/meetjessiejames.asm
+++ b/audio/music/yellow/meetjessiejames.asm
@@ -1,310 +1,310 @@
-Music_MeetJessieJames_Ch1: ; 8316d (20:716d)
- tempo 0, 144
- stereopanning 119
+Music_MeetJessieJames_Ch1:: ; 8316d (20:716d)
+ tempo 144
+ volume 7, 7
duty 3
vibrato 8, 1, 4
notetype 12, 11, 2
octave 3
- note G#, 1
- note G_, 1
- note F#, 2
- note F_, 2
- note E_, 2
- note D#, 2
- note D_, 2
- note C#, 2
- note C_, 2
+ G# 1
+ G_ 1
+ F# 2
+ F_ 2
+ E_ 2
+ D# 2
+ D_ 2
+ C# 2
+ C_ 2
notetype 12, 11, 6
- note D#, 12
- note C_, 4
+ D# 12
+ C_ 4
-Music_MeetJessieJames_branch_83187:
+Music_MeetJessieJames_branch_83187::
notetype 12, 11, 2
octave 4
- note D_, 16
+ D_ 16
rest 12
notetype 12, 11, 4
octave 3
- note A#, 4
+ A# 4
rest 16
rest 8
notetype 12, 11, 2
octave 2
- note A_, 2
+ A_ 2
octave 3
- note A#, 2
- note A_, 4
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note F_, 2
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
+ A# 2
+ A_ 4
+ D_ 1
+ D# 1
+ D# 2
+ D# 2
+ D_ 2
+ D# 2
+ D_ 2
+ D# 2
+ F_ 2
+ D_ 1
+ D# 1
+ D# 2
+ D# 2
+ D_ 2
octave 2
- note A#, 4
+ A# 4
notetype 12, 11, 4
octave 3
- note B_, 4
+ B_ 4
notetype 12, 11, 2
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note F_, 2
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
+ D_ 1
+ D# 1
+ D# 2
+ D# 2
+ D_ 2
+ D# 2
+ D_ 2
+ D# 2
+ F_ 2
+ D_ 1
+ D# 1
+ D# 2
+ D# 2
+ D_ 2
octave 2
- note A#, 2
+ A# 2
octave 3
- note B_, 2
+ B_ 2
notetype 12, 11, 4
- note A#, 4
+ A# 4
loopchannel 0, Music_MeetJessieJames_branch_83187
-Music_MeetJessieJames_Ch2: ; 831c8 (20:71c8)
+Music_MeetJessieJames_Ch2:: ; 831c8 (20:71c8)
duty 3
vibrato 6, 1, 5
notetype 12, 12, 2
octave 4
- note D_, 1
- note C#, 1
- note C_, 2
+ D_ 1
+ C# 1
+ C_ 2
octave 3
- note B_, 2
- note A#, 2
- note A_, 2
- note G#, 2
- note G_, 2
- note F#, 2
+ B_ 2
+ A# 2
+ A_ 2
+ G# 2
+ G_ 2
+ F# 2
notetype 12, 12, 7
- note A_, 12
+ A_ 12
octave 4
- note C#, 4
+ C# 4
-Music_MeetJessieJames_branch_831df:
+Music_MeetJessieJames_branch_831df::
notetype 12, 12, 2
octave 3
- note C#, 1
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note E_, 2
- note C#, 1
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
+ C# 1
+ D_ 1
+ D_ 2
+ D_ 2
+ C# 2
+ D_ 2
+ C# 2
+ D_ 2
+ E_ 2
+ C# 1
+ D_ 1
+ D_ 2
+ D_ 2
+ C# 2
octave 2
- note A_, 4
+ A_ 4
notetype 12, 12, 5
octave 4
- note C#, 4
+ C# 4
notetype 12, 12, 2
- note D_, 1
+ D_ 1
octave 3
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note E_, 2
- note C#, 1
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
+ D_ 1
+ D_ 2
+ D_ 2
+ C# 2
+ D_ 2
+ C# 2
+ D_ 2
+ E_ 2
+ C# 1
+ D_ 1
+ D_ 2
+ D_ 2
+ C# 2
notetype 12, 12, 6
octave 4
- note D_, 8
+ D_ 8
notetype 12, 12, 2
- note D#, 6
- note F_, 4
- note D#, 4
+ D# 6
+ F_ 4
+ D# 4
octave 3
- note A#, 2
+ A# 2
octave 4
- note D#, 6
- note F_, 4
- note D#, 2
+ D# 6
+ F_ 4
+ D# 2
notetype 12, 12, 5
- note D_, 4
+ D_ 4
notetype 12, 12, 2
- note D#, 6
- note F_, 4
- note D#, 4
+ D# 6
+ F_ 4
+ D# 4
octave 3
- note A#, 2
+ A# 2
octave 4
- note D#, 4
- note F_, 4
+ D# 4
+ F_ 4
notetype 12, 12, 5
- note D#, 8
+ D# 8
loopchannel 0, Music_MeetJessieJames_branch_831df
-Music_MeetJessieJames_Ch3: ; 8322a (20:722a)
+Music_MeetJessieJames_Ch3:: ; 8322a (20:722a)
notetype 12, 1, 0
rest 16
rest 8
octave 4
- note D_, 2
+ D_ 2
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C_, 2
- note D#, 2
+ C_ 2
+ D# 2
-Music_MeetJessieJames_branch_83235:
- note D_, 1
+Music_MeetJessieJames_branch_83235::
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A#, 2
- note A_, 2
- note D#, 2
- note D_, 1
+ A# 2
+ A_ 2
+ D# 2
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note D_, 1
+ D_ 1
rest 1
octave 3
- note A_, 2
+ A_ 2
octave 4
- note C_, 2
- note D_, 2
- note D#, 1
+ C_ 2
+ D_ 2
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
octave 3
- note A#, 1
+ A# 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note A#, 1
+ A# 1
rest 1
- note D#, 1
+ D# 1
rest 1
octave 3
- note A#, 1
+ A# 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
loopchannel 0, Music_MeetJessieJames_branch_83235
endchannel
-; 0x832ba
\ No newline at end of file
+; 0x832ba
--- a/audio/music/yellow/surfingpikachu.asm
+++ b/audio/music/yellow/surfingpikachu.asm
@@ -1,691 +1,691 @@
-Music_SurfingPikachu_Ch1: ; 82ce8 (20:6ce8)
- tempo 0, 117
- stereopanning 119
+Music_SurfingPikachu_Ch1:: ; 82ce8 (20:6ce8)
+ tempo 117
+ volume 7, 7
duty 3
vibrato 8, 1, 4
notetype 12, 11, 3
octave 3
- note E_, 6
+ E_ 6
notetype 12, 11, 2
- note F#, 2
+ F# 2
notetype 12, 11, 3
- note E_, 6
+ E_ 6
notetype 12, 11, 2
- note F#, 16
+ F# 16
rest 2
notetype 12, 11, 3
- note E_, 6
+ E_ 6
notetype 12, 11, 2
- note A_, 2
+ A_ 2
notetype 12, 11, 3
- note E_, 6
+ E_ 6
notetype 12, 11, 2
- note A_, 14
+ A_ 14
notetype 12, 11, 2
- note D#, 2
- note C#, 1
- note D#, 1
+ D# 2
+ C# 1
+ D# 1
octave 2
- note B_, 6
+ B_ 6
octave 3
- note E_, 4
- note E_, 4
- note E_, 8
- note G#, 4
- note G#, 4
- note G#, 2
+ E_ 4
+ E_ 4
+ E_ 8
+ G# 4
+ G# 4
+ G# 2
-Music_SurfingPikachu_branch_82d1a:
+Music_SurfingPikachu_branch_82d1a::
notetype 12, 11, 3
octave 3
- note G#, 4
- note E_, 4
- note F#, 4
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note D#, 2
- note C#, 6
- note F#, 2
- note A_, 8
+ G# 4
+ E_ 4
+ F# 4
+ E_ 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ E_ 2
+ D# 2
+ C# 6
+ F# 2
+ A_ 8
octave 2
- note B_, 6
+ B_ 6
octave 3
- note E_, 2
- note G#, 8
- note G#, 4
- note E_, 4
- note F#, 4
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note F#, 6
- note E_, 2
- note F#, 1
+ E_ 2
+ G# 8
+ G# 4
+ E_ 4
+ F# 4
+ E_ 2
+ A_ 2
+ G# 2
+ F# 2
+ G# 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ G# 2
+ F# 6
+ E_ 2
+ F# 1
rest 3
- note A_, 4
+ A_ 4
duty 0
notetype 12, 11, 2
- note G#, 1
- note F#, 1
- note G#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note F#, 2
- note F#, 2
- note D#, 2
- note F#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note B_, 1
- note A#, 1
- note B_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note G_, 2
- note G#, 2
- note A_, 2
+ G# 1
+ F# 1
+ G# 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ E_ 2
+ D# 2
+ F# 2
+ F# 2
+ D# 2
+ F# 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ B_ 1
+ A# 1
+ B_ 2
+ G# 2
+ E_ 2
+ G# 2
+ G_ 2
+ G# 2
+ A_ 2
octave 4
- note C#, 2
- note C_, 2
- note C#, 3
+ C# 2
+ C_ 2
+ C# 3
octave 3
- note F#, 1
- note A_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note E_, 3
- note E_, 1
- note B_, 2
- note A_, 2
- note G#, 6
- note E_, 1
- note F_, 1
- note F#, 2
- note F#, 2
- note D#, 2
- note F#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note B_, 1
- note A#, 1
- note B_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note G_, 2
- note G#, 2
- note A_, 2
+ F# 1
+ A_ 2
+ G# 2
+ F# 2
+ A_ 2
+ E_ 3
+ E_ 1
+ B_ 2
+ A_ 2
+ G# 6
+ E_ 1
+ F_ 1
+ F# 2
+ F# 2
+ D# 2
+ F# 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
+ B_ 1
+ A# 1
+ B_ 2
+ G# 2
+ E_ 2
+ G# 2
+ G_ 2
+ G# 2
+ A_ 2
octave 4
- note C#, 2
- note C_, 2
- note C#, 3
+ C# 2
+ C_ 2
+ C# 3
octave 3
- note F#, 1
- note A_, 2
- note G#, 2
- note A_, 2
+ F# 1
+ A_ 2
+ G# 2
+ A_ 2
octave 4
- note D#, 2
- note E_, 2
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 8
+ D# 2
+ E_ 2
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ E_ 1
+ D# 1
+ E_ 8
duty 3
loopchannel 0, Music_SurfingPikachu_branch_82d1a
-Music_SurfingPikachu_Ch2: ; 82d9d (20:6d9d)
+Music_SurfingPikachu_Ch2:: ; 82d9d (20:6d9d)
duty 3
vibrato 6, 1, 5
notetype 12, 12, 4
octave 3
- note B_, 6
+ B_ 6
notetype 12, 12, 2
octave 4
- note E_, 2
+ E_ 2
notetype 12, 12, 4
octave 3
- note B_, 6
+ B_ 6
notetype 12, 12, 2
octave 4
- note E_, 2
+ E_ 2
notetype 12, 11, 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note C#, 2
+ C# 2
+ D# 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
+ B_ 2
+ A_ 2
+ G# 2
+ F# 2
notetype 12, 12, 4
octave 4
- note C#, 6
+ C# 6
notetype 12, 12, 2
- note F#, 2
+ F# 2
notetype 12, 12, 4
- note C#, 6
+ C# 6
notetype 12, 12, 2
- note F#, 2
+ F# 2
notetype 12, 11, 2
- note C#, 2
- note D#, 2
- note E_, 2
- note D#, 2
- note C#, 2
+ C# 2
+ D# 2
+ E_ 2
+ D# 2
+ C# 2
octave 3
- note B_, 2
- note A_, 2
- note G#, 2
+ B_ 2
+ A_ 2
+ G# 2
notetype 12, 12, 2
- note E_, 6
- note B_, 4
- note B_, 4
- note B_, 8
- note B_, 4
- note B_, 4
- note B_, 2
+ E_ 6
+ B_ 4
+ B_ 4
+ B_ 8
+ B_ 4
+ B_ 4
+ B_ 2
-Music_SurfingPikachu_branch_82de0:
+Music_SurfingPikachu_branch_82de0::
notetype 12, 12, 6
octave 4
- note E_, 4
+ E_ 4
octave 3
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 6
- note A_, 2
- note G#, 8
- note F#, 6
- note A_, 2
+ B_ 6
+ A_ 2
+ G# 8
+ F# 6
+ A_ 2
octave 4
- note C#, 8
+ C# 8
octave 3
- note E_, 6
- note G#, 2
- note B_, 8
+ E_ 6
+ G# 2
+ B_ 8
octave 4
- note E_, 4
+ E_ 4
octave 3
- note B_, 4
- note A_, 4
+ B_ 4
+ A_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 6
+ B_ 6
octave 4
- note D#, 2
- note E_, 8
- note D#, 6
- note C#, 2
- note D#, 1
+ D# 2
+ E_ 8
+ D# 6
+ C# 2
+ D# 1
rest 3
- note F#, 4
- note E_, 10
+ F# 4
+ E_ 10
notetype 12, 12, 6
duty 2
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 2
+ D# 2
+ C# 2
octave 3
- note B_, 6
+ B_ 6
octave 4
- note C#, 2
- note D#, 4
+ C# 2
+ D# 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 6
- note F#, 2
- note G#, 8
- note A_, 6
- note G#, 2
- note A_, 4
- note F#, 4
- note G#, 10
- note E_, 2
- note D#, 2
- note C#, 2
+ E_ 6
+ F# 2
+ G# 8
+ A_ 6
+ G# 2
+ A_ 4
+ F# 4
+ G# 10
+ E_ 2
+ D# 2
+ C# 2
octave 3
- note B_, 6
+ B_ 6
octave 4
- note C#, 2
- note D#, 4
+ C# 2
+ D# 4
octave 3
- note B_, 4
+ B_ 4
octave 4
- note E_, 6
- note F#, 2
- note G#, 8
- note A_, 4
- note F#, 4
- note D#, 4
+ E_ 6
+ F# 2
+ G# 8
+ A_ 4
+ F# 4
+ D# 4
octave 5
- note C#, 4
+ C# 4
octave 4
- note B_, 8
+ B_ 8
notetype 12, 12, 2
octave 5
- note E_, 4
+ E_ 4
notetype 12, 12, 6
duty 3
octave 3
- note B_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ B_ 1
octave 4
- note C#, 1
+ C# 1
loopchannel 0, Music_SurfingPikachu_branch_82de0
-Music_SurfingPikachu_Ch3: ; 82e45 (20:6e45)
+Music_SurfingPikachu_Ch3:: ; 82e45 (20:6e45)
notetype 12, 1, 0
octave 4
- note B_, 6
+ B_ 6
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note B_, 6
+ B_ 6
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 6
+ A_ 6
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 6
+ A_ 6
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
-Music_SurfingPikachu_branch_82ea0:
- note E_, 1
+Music_SurfingPikachu_branch_82ea0::
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
- note C_, 1
- note C#, 1
+ C# 1
+ C_ 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
- note D#, 1
- note E_, 1
+ E_ 1
+ D# 1
+ E_ 1
rest 1
octave 4
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note B_, 1
- note A#, 1
- note B_, 1
+ B_ 1
+ A# 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D_, 1
+ D_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note F#, 1
+ F# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
loopchannel 0, Music_SurfingPikachu_branch_82ea0
-; 0x82fbe
\ No newline at end of file
+; 0x82fbe
--- a/audio/music/yellow/yellowintro.asm
+++ b/audio/music/yellow/yellowintro.asm
@@ -1,485 +1,485 @@
-Music_YellowIntro_Ch1: ; 7f65c (1f:765c)
- tempo 0, 116
- stereopanning 119
+Music_YellowIntro_Ch1:: ; 7f65c (1f:765c)
+ tempo 116
+ volume 7, 7
duty 3
vibrato 8, 1, 4
notetype 12, 11, 2
octave 3
- note G#, 2
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 3
- note A#, 1
- note B_, 2
- note B_, 10
+ G# 2
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 4
+ B_ 3
+ A# 1
+ B_ 2
+ B_ 10
notetype 12, 11, 6
octave 4
- note C#, 1
- note C_, 1
- note C#, 10
+ C# 1
+ C_ 1
+ C# 10
octave 3
- note G#, 1
- note G_, 1
- note G#, 4
- note B_, 4
+ G# 1
+ G_ 1
+ G# 4
+ B_ 4
octave 4
- note E_, 4
- note F#, 8
- note E_, 8
+ E_ 4
+ F# 8
+ E_ 8
octave 3
- note A_, 4
- note B_, 4
+ A_ 4
+ B_ 4
octave 4
- note C#, 4
+ C# 4
octave 3
- note B_, 4
- note G#, 6
+ B_ 4
+ G# 6
notetype 12, 11, 2
- note B_, 2
+ B_ 2
notetype 12, 11, 6
- note G#, 6
+ G# 6
notetype 12, 11, 2
- note B_, 2
+ B_ 2
notetype 12, 11, 6
octave 4
- note E_, 6
+ E_ 6
notetype 12, 11, 2
- note G#, 2
+ G# 2
notetype 12, 11, 6
- note E_, 6
+ E_ 6
notetype 12, 11, 2
- note G#, 2
+ G# 2
notetype 12, 11, 6
octave 3
- note A_, 4
- note F#, 4
- note A_, 4
- note B_, 4
- note F#, 4
- note G#, 4
- note A_, 2
- note G#, 2
- note F#, 2
- note D#, 2
+ A_ 4
+ F# 4
+ A_ 4
+ B_ 4
+ F# 4
+ G# 4
+ A_ 2
+ G# 2
+ F# 2
+ D# 2
notetype 12, 11, 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 2
- note C#, 2
- note F#, 4
- note F#, 3
- note D#, 1
- note F#, 2
- note F#, 8
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 2
+ C# 2
+ F# 4
+ F# 3
+ D# 1
+ F# 2
+ F# 8
notetype 12, 11, 6
- note F#, 1
- note F_, 1
- note F#, 8
+ F# 1
+ F_ 1
+ F# 8
octave 3
- note B_, 1
- note A#, 1
- note B_, 8
+ B_ 1
+ A# 1
+ B_ 8
octave 4
- note F#, 1
- note F_, 1
- note F#, 2
+ F# 1
+ F_ 1
+ F# 2
notetype 12, 11, 3
- note F#, 1
- note E_, 1
- note D#, 1
- note C#, 1
+ F# 1
+ E_ 1
+ D# 1
+ C# 1
notetype 12, 11, 2
octave 3
- note B_, 16
+ B_ 16
endchannel
-Music_YellowIntro_Ch2: ; 7f6d3 (1f:76d3)
+Music_YellowIntro_Ch2:: ; 7f6d3 (1f:76d3)
duty 2
vibrato 6, 1, 5
notetype 12, 12, 2
octave 3
- note B_, 2
+ B_ 2
octave 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 3
- note D#, 1
- note E_, 2
- note E_, 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 4
+ E_ 3
+ D# 1
+ E_ 2
+ E_ 4
notetype 12, 12, 5
- note G#, 1
- note G_, 1
- note G#, 10
+ G# 1
+ G_ 1
+ G# 10
octave 3
- note B_, 1
- note A#, 1
- note B_, 6
+ B_ 1
+ A# 1
+ B_ 6
notetype 12, 12, 7
octave 4
- note E_, 4
- note G#, 4
- note B_, 4
+ E_ 4
+ G# 4
+ B_ 4
octave 5
- note C#, 16
+ C# 16
octave 4
- note A_, 4
- note G#, 4
- note F#, 4
- note E_, 4
+ A_ 4
+ G# 4
+ F# 4
+ E_ 4
octave 3
- note B_, 6
+ B_ 6
notetype 12, 12, 2
octave 4
- note E_, 2
+ E_ 2
notetype 12, 12, 7
octave 3
- note B_, 6
+ B_ 6
notetype 12, 12, 2
octave 4
- note E_, 2
+ E_ 2
notetype 12, 12, 7
- note G#, 6
+ G# 6
notetype 12, 12, 2
- note B_, 2
+ B_ 2
notetype 12, 12, 7
- note G#, 6
+ G# 6
notetype 12, 12, 2
- note B_, 2
+ B_ 2
notetype 12, 12, 7
- note C#, 4
+ C# 4
octave 3
- note A_, 4
+ A_ 4
octave 4
- note C#, 4
- note D#, 4
- note E_, 2
- note D#, 2
- note C#, 2
- note D#, 4
- note D#, 2
- note C#, 2
+ C# 4
+ D# 4
+ E_ 2
+ D# 2
+ C# 2
+ D# 4
+ D# 2
+ C# 2
octave 3
- note B_, 2
+ B_ 2
notetype 12, 12, 3
octave 4
- note E_, 2
- note G#, 4
- note G#, 4
- note G#, 4
- note G#, 2
- note F#, 2
- note A_, 4
- note A_, 3
- note F#, 1
- note A_, 2
- note A_, 4
+ E_ 2
+ G# 4
+ G# 4
+ G# 4
+ G# 2
+ F# 2
+ A_ 4
+ A_ 3
+ F# 1
+ A_ 2
+ A_ 4
notetype 12, 12, 7
- note B_, 1
- note A#, 1
- note B_, 8
- note B_, 1
- note A#, 1
- note B_, 8
- note B_, 1
- note A#, 1
- note B_, 6
+ B_ 1
+ A# 1
+ B_ 8
+ B_ 1
+ A# 1
+ B_ 8
+ B_ 1
+ A# 1
+ B_ 6
notetype 12, 12, 3
- note B_, 1
- note A_, 1
- note G#, 1
- note F#, 1
+ B_ 1
+ A_ 1
+ G# 1
+ F# 1
notetype 12, 12, 2
- note E_, 16
+ E_ 16
endchannel
-Music_YellowIntro_Ch3: ; 7f749 (1f:7749)
+Music_YellowIntro_Ch3:: ; 7f749 (1f:7749)
notetype 12, 1, 0
octave 4
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 3
- note B_, 1
+ B_ 1
rest 1
octave 4
- note C#, 1
+ C# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note F#, 1
+ F# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note C#, 1
+ C# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 1
octave 4
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note G#, 1
+ G# 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note A_, 1
+ A_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note E_, 1
+ E_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note A_, 1
+ A_ 1
rest 1
octave 5
- note F#, 1
+ F# 1
rest 1
octave 4
- note F#, 1
+ F# 1
rest 1
octave 5
- note C#, 1
+ C# 1
rest 3
- note F#, 1
+ F# 1
rest 1
octave 4
- note F#, 1
- note G#, 1
- note A_, 1
+ F# 1
+ G# 1
+ A_ 1
octave 5
- note C#, 1
- note E_, 1
+ C# 1
+ E_ 1
rest 15
endchannel
-; 0x7f860
\ No newline at end of file
+; 0x7f860
--- a/audio/music/yellow/yellowunusedsong.asm
+++ b/audio/music/yellow/yellowunusedsong.asm
@@ -1,51 +1,51 @@
-Music_YellowUnusedSong_Ch1: ; 82fbe (20:6fbe)
- tempo 0, 140
- stereopanning 119
+Music_YellowUnusedSong_Ch1:: ; 82fbe (20:6fbe)
+ tempo 140
+ volume 7, 7
duty 3
vibrato 8, 1, 4
notetype 8, 11, 2
octave 3
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- note G_, 6
- note A_, 6
- note E_, 6
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note A_, 6
- note G_, 6
- note A_, 12
+ A_ 6
+ A_ 2
+ A_ 2
+ A_ 2
+ A# 6
+ A# 6
+ G_ 6
+ G_ 6
+ A_ 6
+ E_ 6
+ A_ 6
+ A_ 2
+ A_ 2
+ A_ 2
+ A# 6
+ A# 6
+ A_ 6
+ G_ 6
+ A_ 12
-Music_YellowUnusedSong_branch_82fde:
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- note G_, 6
- note A_, 6
- note E_, 6
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
+Music_YellowUnusedSong_branch_82fde::
+ A_ 6
+ A_ 2
+ A_ 2
+ A_ 2
+ A# 6
+ A# 6
+ G_ 6
+ G_ 6
+ A_ 6
+ E_ 6
+ A_ 6
+ A_ 2
+ A_ 2
+ A_ 2
+ A# 6
+ A# 6
+ G_ 6
octave 4
- note D#, 6
- note D_, 12
+ D# 6
+ D_ 12
rest 16
rest 16
rest 16
@@ -53,275 +53,275 @@
rest 16
rest 16
octave 3
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- note G_, 6
- note A_, 6
- note E_, 6
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note A_, 6
- note G_, 6
- note A_, 12
+ A_ 6
+ A_ 2
+ A_ 2
+ A_ 2
+ A# 6
+ A# 6
+ G_ 6
+ G_ 6
+ A_ 6
+ E_ 6
+ A_ 6
+ A_ 2
+ A_ 2
+ A_ 2
+ A# 6
+ A# 6
+ A_ 6
+ G_ 6
+ A_ 12
loopchannel 0, Music_YellowUnusedSong_branch_82fde
-Music_YellowUnusedSong_Ch2: ; 83010 (20:7010)
+Music_YellowUnusedSong_Ch2:: ; 83010 (20:7010)
duty 2
notetype 8, 12, 2
octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note C_, 6
- note D_, 6
+ D_ 6
+ D_ 2
+ D_ 2
+ D_ 2
+ D# 6
+ D# 6
+ C_ 6
+ C_ 6
+ D_ 6
octave 3
- note A_, 6
+ A_ 6
octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note D_, 6
- note A#, 6
- note A_, 12
+ D_ 6
+ D_ 2
+ D_ 2
+ D_ 2
+ D# 6
+ D# 6
+ D_ 6
+ A# 6
+ A_ 12
-Music_YellowUnusedSong_branch_8302a:
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note C_, 6
- note D_, 6
+Music_YellowUnusedSong_branch_8302a::
+ D_ 6
+ D_ 2
+ D_ 2
+ D_ 2
+ D# 6
+ D# 6
+ C_ 6
+ C_ 6
+ D_ 6
octave 3
- note A_, 6
+ A_ 6
octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note G#, 6
- note G_, 12
+ D_ 6
+ D_ 2
+ D_ 2
+ D_ 2
+ D# 6
+ D# 6
+ C_ 6
+ G# 6
+ G_ 12
notetype 8, 9, 0
octave 3
- note D#, 16
- note D#, 8
- note D#, 16
- note D#, 8
+ D# 16
+ D# 8
+ D# 16
+ D# 8
octave 2
- note A#, 16
- note A#, 8
+ A# 16
+ A# 8
octave 3
- note D#, 12
- note F_, 12
+ D# 12
+ F_ 12
notetype 8, 12, 2
octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note C_, 6
- note D_, 6
+ D_ 6
+ D_ 2
+ D_ 2
+ D_ 2
+ D# 6
+ D# 6
+ C_ 6
+ C_ 6
+ D_ 6
octave 3
- note A_, 6
+ A_ 6
octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note D_, 6
- note A#, 6
- note A_, 12
+ D_ 6
+ D_ 2
+ D_ 2
+ D_ 2
+ D# 6
+ D# 6
+ D_ 6
+ A# 6
+ A_ 12
loopchannel 0, Music_YellowUnusedSong_branch_8302a
-Music_YellowUnusedSong_Ch3: ; 83068 (20:7068)
+Music_YellowUnusedSong_Ch3:: ; 83068 (20:7068)
notetype 12, 1, 0
vibrato 2, 1, 5
rest 16
rest 12
octave 4
- note C_, 4
- note D_, 8
- note D#, 8
- note G_, 8
- note A#, 8
+ C_ 4
+ D_ 8
+ D# 8
+ G_ 8
+ A# 8
-Music_YellowUnusedSong_branch_83075:
- note A_, 8
- note A#, 8
- note G_, 8
- note A_, 4
- note D_, 4
- note A_, 8
- note A#, 8
+Music_YellowUnusedSong_branch_83075::
+ A_ 8
+ A# 8
+ G_ 8
+ A_ 4
+ D_ 4
+ A_ 8
+ A# 8
octave 5
- note C#, 8
- note D_, 8
- note D#, 16
- note D#, 16
+ C# 8
+ D_ 8
+ D# 16
+ D# 16
octave 4
- note A#, 16
+ A# 16
octave 5
- note D#, 8
- note F_, 8
+ D# 8
+ F_ 8
octave 4
- note D_, 16
- note D_, 16
+ D_ 16
+ D_ 16
octave 4
- note D_, 8
- note D#, 8
- note G_, 8
- note A#, 8
+ D_ 8
+ D# 8
+ G_ 8
+ A# 8
loopchannel 0, Music_YellowUnusedSong_branch_83075
-Music_YellowUnusedSong_Ch4: ; 83092 (20:7092)
+Music_YellowUnusedSong_Ch4:: ; 83092 (20:7092)
dspeed 12
- dnote 4, snare3
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 4, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 4
+ snare3 4
-Music_YellowUnusedSong_branch_830c3:
- dnote 4, snare3
+Music_YellowUnusedSong_branch_830c3::
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 4
+ snare3 4
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 4, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 4
+ snare3 2
+ snare3 2
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
+ snare3 4
dspeed 8
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
+ snare3 2
+ snare3 2
+ snare3 2
dspeed 12
- dnote 4, snare3
- dnote 4, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 2, snare3
- dnote 4, snare3
- dnote 4, snare3
+ snare3 4
+ snare3 4
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 2
+ snare3 4
+ snare3 4
loopchannel 0, Music_YellowUnusedSong_branch_830c3
-; 0x8316d
\ No newline at end of file
+; 0x8316d
--- a/audio/sfx/sfx_02_3a.asm
+++ b/audio/sfx/sfx_02_3a.asm
@@ -1,18 +1,18 @@
SFX_02_3a_Ch1: ; ad77 (2:6d77)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
vibrato 6, 2, 6
duty 2
- togglecall
+ toggleperfectpitch
notetype 4, 11, 1
octave 3
- note G#, 2
- note G#, 2
- note G#, 2
+ G# 2
+ G# 2
+ G# 2
notetype 12, 11, 3
octave 4
- note E_, 4
+ E_ 4
endchannel
@@ -22,11 +22,11 @@
duty 2
notetype 4, 12, 1
octave 4
- note E_, 2
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
+ E_ 2
notetype 12, 12, 3
- note B_, 4
+ B_ 4
endchannel
@@ -34,15 +34,15 @@
executemusic
notetype 4, 1, 0
octave 4
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
notetype 12, 1, 0
octave 4
- note B_, 2
+ B_ 2
rest 2
endchannel
; 0xadae
\ No newline at end of file
--- a/audio/sfx/sfx_02_3b.asm
+++ b/audio/sfx/sfx_02_3b.asm
@@ -1,27 +1,27 @@
SFX_02_3b_Ch1: ; b316 (2:7316)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 5, 11, 4
octave 4
- note D_, 4
- note C_, 4
+ D_ 4
+ C_ 4
octave 3
- note A_, 8
+ A_ 8
notetype 5, 11, 2
octave 4
- note D#, 2
- note D#, 2
- note D_, 2
- note C_, 2
- note C_, 2
+ D# 2
+ D# 2
+ D_ 2
+ C_ 2
+ C_ 2
octave 3
- note A#, 2
+ A# 2
notetype 5, 11, 4
octave 4
- note C_, 8
+ C_ 8
endchannel
@@ -31,18 +31,18 @@
duty 2
notetype 5, 12, 5
octave 4
- note A_, 4
- note F_, 4
- note C_, 8
+ A_ 4
+ F_ 4
+ C_ 8
notetype 5, 12, 2
- note A#, 2
- note A#, 2
- note A#, 2
- note G_, 2
- note G_, 2
- note A#, 2
+ A# 2
+ A# 2
+ A# 2
+ G_ 2
+ G_ 2
+ A# 2
notetype 5, 12, 4
- note A_, 8
+ A_ 8
endchannel
@@ -50,21 +50,21 @@
executemusic
notetype 5, 1, 0
octave 5
- note F_, 4
- note D#, 4
- note C_, 8
- note D#, 1
+ F_ 4
+ D# 4
+ C_ 8
+ D# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A_, 8
+ A_ 8
endchannel
; 0xb362
\ No newline at end of file
--- a/audio/sfx/sfx_02_41.asm
+++ b/audio/sfx/sfx_02_41.asm
@@ -1,23 +1,23 @@
SFX_02_41_Ch1: ; b2c8 (2:72c8)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
notetype 5, 11, 1
octave 3
- note A_, 2
- note A_, 2
- note G_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note A_, 2
+ A_ 2
+ A_ 2
+ G_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ A_ 2
octave 4
- note C_, 4
- note E_, 4
+ C_ 4
+ E_ 4
octave 3
- note F_, 4
+ F_ 4
endchannel
@@ -26,21 +26,21 @@
duty 2
notetype 5, 12, 2
octave 5
- note F_, 2
- note E_, 1
+ F_ 2
+ E_ 1
rest 1
- note D_, 2
- note C_, 1
+ D_ 2
+ C_ 1
rest 1
octave 4
- note A#, 2
+ A# 2
octave 5
- note C_, 2
- note D_, 2
- note E_, 2
- note F_, 4
- note G_, 4
- note F_, 4
+ C_ 2
+ D_ 2
+ E_ 2
+ F_ 4
+ G_ 4
+ F_ 4
endchannel
@@ -48,31 +48,31 @@
executemusic
notetype 5, 1, 0
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note F_, 2
+ F_ 2
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note A#, 1
+ A# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 3
- note C_, 1
+ C_ 1
rest 3
octave 4
- note F_, 2
+ F_ 2
rest 2
endchannel
; 0xb316
\ No newline at end of file
--- a/audio/sfx/sfx_02_42.asm
+++ b/audio/sfx/sfx_02_42.asm
@@ -1,25 +1,25 @@
SFX_02_42_Ch1: ; b362 (2:7362)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 5, 10, 4
octave 3
- note A#, 4
+ A# 4
notetype 5, 11, 1
octave 4
- note C_, 2
- note C_, 1
- note C_, 1
+ C_ 2
+ C_ 1
+ C_ 1
notetype 5, 10, 4
- note D#, 4
+ D# 4
notetype 5, 11, 1
- note F_, 2
- note F_, 1
- note F_, 1
+ F_ 2
+ F_ 1
+ F_ 1
notetype 5, 11, 4
- note A#, 8
+ A# 8
endchannel
@@ -29,21 +29,21 @@
duty 2
notetype 5, 13, 1
octave 4
- note G_, 2
- note G_, 1
- note G_, 1
+ G_ 2
+ G_ 1
+ G_ 1
notetype 5, 12, 4
- note D#, 4
+ D# 4
notetype 5, 13, 1
- note G#, 2
- note G#, 1
- note G#, 1
- note A#, 2
- note A#, 1
- note A#, 1
+ G# 2
+ G# 1
+ G# 1
+ A# 2
+ A# 1
+ A# 1
notetype 5, 12, 4
octave 5
- note D#, 8
+ D# 8
endchannel
@@ -51,10 +51,10 @@
executemusic
notetype 5, 1, 0
octave 4
- note D#, 4
- note G#, 4
- note G_, 4
- note F_, 4
- note D#, 8
+ D# 4
+ G# 4
+ G_ 4
+ F_ 4
+ D# 8
endchannel
; 0xb3a7
\ No newline at end of file
--- a/audio/sfx/sfx_02_5e.asm
+++ b/audio/sfx/sfx_02_5e.asm
@@ -2,21 +2,21 @@
vibrato 16, 1, 4
notetype 12, 1, 0
octave 5
- note E_, 2
- note F_, 2
- note G_, 4
- note A_, 2
- note G_, 2
+ E_ 2
+ F_ 2
+ G_ 4
+ A_ 2
+ G_ 2
octave 6
- note C_, 4
- note C_, 2
- note D_, 2
- note C_, 2
+ C_ 4
+ C_ 2
+ D_ 2
+ C_ 2
octave 5
- note G_, 2
- note A_, 2
- note F_, 2
- note G_, 8
+ G_ 2
+ A_ 2
+ F_ 2
+ G_ 8
rest 12
endchannel
; 0x83e1
\ No newline at end of file
--- a/audio/sfx/sfx_08_3a.asm
+++ b/audio/sfx/sfx_08_3a.asm
@@ -1,22 +1,22 @@
SFX_08_3a_Ch1: ; 2397d (8:797d)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 6, 11, 4
octave 4
- note F_, 4
+ F_ 4
notetype 4, 11, 2
- note C_, 2
- note F_, 2
- note C_, 2
+ C_ 2
+ F_ 2
+ C_ 2
notetype 6, 11, 3
- note D#, 2
- note D#, 2
- note E_, 2
+ D# 2
+ D# 2
+ E_ 2
notetype 6, 11, 4
- note F_, 8
+ F_ 8
endchannel
@@ -26,17 +26,17 @@
duty 2
notetype 6, 12, 4
octave 4
- note A_, 4
+ A_ 4
notetype 4, 12, 2
- note A_, 2
- note A_, 2
- note A_, 2
+ A_ 2
+ A_ 2
+ A_ 2
notetype 6, 12, 4
- note A#, 2
- note A#, 2
- note A#, 2
+ A# 2
+ A# 2
+ A# 2
notetype 6, 12, 4
- note A_, 8
+ A_ 8
endchannel
@@ -44,21 +44,21 @@
executemusic
notetype 6, 1, 0
octave 5
- note A_, 4
+ A_ 4
notetype 4, 1, 0
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
notetype 6, 1, 0
- note G_, 1
+ G_ 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A_, 8
+ A_ 8
endchannel
; 0x239c7
\ No newline at end of file
--- a/audio/sfx/sfx_08_3b.asm
+++ b/audio/sfx/sfx_08_3b.asm
@@ -1,27 +1,27 @@
SFX_08_3b_Ch1: ; 239c7 (8:79c7)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 5, 11, 4
octave 4
- note D_, 4
- note C_, 4
+ D_ 4
+ C_ 4
octave 3
- note A_, 8
+ A_ 8
notetype 5, 11, 2
octave 4
- note D#, 2
- note D#, 2
- note D_, 2
- note C_, 2
- note C_, 2
+ D# 2
+ D# 2
+ D_ 2
+ C_ 2
+ C_ 2
octave 3
- note A#, 2
+ A# 2
notetype 5, 11, 4
octave 4
- note C_, 8
+ C_ 8
endchannel
@@ -31,18 +31,18 @@
duty 2
notetype 5, 12, 5
octave 4
- note A_, 4
- note F_, 4
- note C_, 8
+ A_ 4
+ F_ 4
+ C_ 8
notetype 5, 12, 2
- note A#, 2
- note A#, 2
- note A#, 2
- note G_, 2
- note G_, 2
- note A#, 2
+ A# 2
+ A# 2
+ A# 2
+ G_ 2
+ G_ 2
+ A# 2
notetype 5, 12, 4
- note A_, 8
+ A_ 8
endchannel
@@ -50,21 +50,21 @@
executemusic
notetype 5, 1, 0
octave 5
- note F_, 4
- note D#, 4
- note C_, 8
- note D#, 1
+ F_ 4
+ D# 4
+ C_ 8
+ D# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A_, 8
+ A_ 8
endchannel
; 0x23a13
\ No newline at end of file
--- a/audio/sfx/sfx_08_46.asm
+++ b/audio/sfx/sfx_08_46.asm
@@ -1,24 +1,24 @@
SFX_08_46_Ch1: ; 23a13 (8:7a13)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 3
- togglecall
+ toggleperfectpitch
notetype 6, 11, 2
octave 3
- note E_, 2
- note F#, 2
- note G#, 2
- note G#, 1
- note G#, 1
- note B_, 2
+ E_ 2
+ F# 2
+ G# 2
+ G# 1
+ G# 1
+ B_ 2
octave 4
- note C#, 2
- note D#, 2
- note D#, 1
- note D#, 1
+ C# 2
+ D# 2
+ D# 1
+ D# 1
notetype 6, 11, 5
- note E_, 8
+ E_ 8
endchannel
@@ -27,20 +27,20 @@
duty 2
notetype 6, 12, 2
octave 4
- note G#, 2
- note G#, 1
- note G#, 1
- note E_, 2
- note E_, 1
- note E_, 1
- note B_, 2
- note B_, 1
- note B_, 1
- note A_, 2
- note A_, 1
- note A_, 1
+ G# 2
+ G# 1
+ G# 1
+ E_ 2
+ E_ 1
+ E_ 1
+ B_ 2
+ B_ 1
+ B_ 1
+ A_ 2
+ A_ 1
+ A_ 1
notetype 6, 12, 5
- note G#, 8
+ G# 8
endchannel
@@ -48,15 +48,15 @@
executemusic
notetype 6, 1, 0
octave 4
- note B_, 2
+ B_ 2
rest 2
octave 5
- note C#, 2
+ C# 2
rest 2
- note D#, 2
+ D# 2
rest 2
- note F#, 2
- note G_, 2
- note G#, 4
+ F# 2
+ G_ 2
+ G# 4
endchannel
; 0x23a53
\ No newline at end of file
--- a/audio/sfx/sfx_08_75.asm
+++ b/audio/sfx/sfx_08_75.asm
@@ -4,12 +4,12 @@
duty 2
notetype 10, 8, 7
octave 5
- note G#, 8
+ G# 8
octave 6
- note F#, 4
- note E_, 4
+ F# 4
+ E_ 4
octave 5
- note G#, 8
+ G# 8
endchannel
@@ -19,12 +19,12 @@
duty 2
notetype 11, 6, 7
octave 5
- note G#, 8
+ G# 8
notetype 10, 6, 7
octave 6
- note F#, 4
- note E_, 4
+ F# 4
+ E_ 4
octave 5
- note G#, 8
+ G# 8
endchannel
; 0x20902
\ No newline at end of file
--- a/audio/sfx/sfx_08_pokeflute.asm
+++ b/audio/sfx/sfx_08_pokeflute.asm
@@ -1,5 +1,5 @@
SFX_08_PokeFlute_Ch1: ; 22322 (8:6322)
- tempo 1, 0
+ tempo 256
SFX_08_PokeFlute_Ch2: ; 22325 (8:6325)
--- a/audio/sfx/sfx_08_pokeflute_ch3.asm
+++ b/audio/sfx/sfx_08_pokeflute_ch3.asm
@@ -3,12 +3,12 @@
vibrato 16, 1, 4
notetype 8, 1, 0
octave 5
- note E_, 3
- note F_, 3
- note G_, 7
- note A_, 3
- note G_, 3
+ E_ 3
+ F_ 3
+ G_ 7
+ A_ 3
+ G_ 3
octave 6
- note C_, 13
+ C_ 13
endchannel
; 0x204aa
\ No newline at end of file
--- a/audio/sfx/sfx_08_unused2.asm
+++ b/audio/sfx/sfx_08_unused2.asm
@@ -1,19 +1,19 @@
SFX_08_unused2_Ch1: ; 2232f (8:632f)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
vibrato 6, 2, 6
duty 2
- togglecall
+ toggleperfectpitch
notetype 6, 11, 1
octave 3
- note G#, 2
- note G#, 2
+ G# 2
+ G# 2
notetype 6, 11, 3
- note G#, 2
- note B_, 2
+ G# 2
+ B_ 2
octave 4
- note E_, 8
+ E_ 8
endchannel
@@ -23,13 +23,13 @@
duty 2
notetype 6, 12, 1
octave 4
- note E_, 2
- note E_, 1
- note E_, 1
+ E_ 2
+ E_ 1
+ E_ 1
notetype 6, 12, 3
- note E_, 2
- note G#, 2
- note B_, 8
+ E_ 2
+ G# 2
+ B_ 8
endchannel
@@ -37,21 +37,21 @@
executemusic
notetype 6, 1, 0
octave 4
- note B_, 1
+ B_ 1
rest 1
notetype 3, 1, 0
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
notetype 6, 1, 0
- note B_, 1
+ B_ 1
rest 1
octave 5
- note E_, 1
+ E_ 1
rest 1
octave 4
- note B_, 4
+ B_ 4
rest 4
endchannel
; 0x22370
\ No newline at end of file
--- a/audio/sfx/sfx_1f_3a.asm
+++ b/audio/sfx/sfx_1f_3a.asm
@@ -1,18 +1,18 @@
SFX_1f_3a_Ch1: ; 7e850 (1f:6850)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
vibrato 6, 2, 6
duty 2
- togglecall
+ toggleperfectpitch
notetype 4, 11, 1
octave 3
- note G#, 2
- note G#, 2
- note G#, 2
+ G# 2
+ G# 2
+ G# 2
notetype 12, 11, 3
octave 4
- note E_, 4
+ E_ 4
endchannel
@@ -22,11 +22,11 @@
duty 2
notetype 4, 12, 1
octave 4
- note E_, 2
- note E_, 2
- note E_, 2
+ E_ 2
+ E_ 2
+ E_ 2
notetype 12, 12, 3
- note B_, 4
+ B_ 4
endchannel
@@ -34,15 +34,15 @@
executemusic
notetype 4, 1, 0
octave 4
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
- note B_, 1
+ B_ 1
rest 1
notetype 12, 1, 0
octave 4
- note B_, 2
+ B_ 2
rest 2
endchannel
; 0x7e887
\ No newline at end of file
--- a/audio/sfx/sfx_1f_3b.asm
+++ b/audio/sfx/sfx_1f_3b.asm
@@ -1,27 +1,27 @@
SFX_1f_3b_Ch1: ; 7ee28 (1f:6e28)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 5, 11, 4
octave 4
- note D_, 4
- note C_, 4
+ D_ 4
+ C_ 4
octave 3
- note A_, 8
+ A_ 8
notetype 5, 11, 2
octave 4
- note D#, 2
- note D#, 2
- note D_, 2
- note C_, 2
- note C_, 2
+ D# 2
+ D# 2
+ D_ 2
+ C_ 2
+ C_ 2
octave 3
- note A#, 2
+ A# 2
notetype 5, 11, 4
octave 4
- note C_, 8
+ C_ 8
endchannel
@@ -31,18 +31,18 @@
duty 2
notetype 5, 12, 5
octave 4
- note A_, 4
- note F_, 4
- note C_, 8
+ A_ 4
+ F_ 4
+ C_ 8
notetype 5, 12, 2
- note A#, 2
- note A#, 2
- note A#, 2
- note G_, 2
- note G_, 2
- note A#, 2
+ A# 2
+ A# 2
+ A# 2
+ G_ 2
+ G_ 2
+ A# 2
notetype 5, 12, 4
- note A_, 8
+ A_ 8
endchannel
@@ -50,21 +50,21 @@
executemusic
notetype 5, 1, 0
octave 5
- note F_, 4
- note D#, 4
- note C_, 8
- note D#, 1
+ F_ 4
+ D# 4
+ C_ 8
+ D# 1
rest 1
- note D#, 1
+ D# 1
rest 1
- note E_, 1
+ E_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note A_, 8
+ A_ 8
endchannel
; 0x7ee74
\ No newline at end of file
--- a/audio/sfx/sfx_1f_41.asm
+++ b/audio/sfx/sfx_1f_41.asm
@@ -1,23 +1,23 @@
SFX_1f_41_Ch1: ; 7edda (1f:6dda)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
notetype 5, 11, 1
octave 3
- note A_, 2
- note A_, 2
- note G_, 2
- note G_, 2
- note F_, 2
- note E_, 2
- note F_, 2
- note A_, 2
+ A_ 2
+ A_ 2
+ G_ 2
+ G_ 2
+ F_ 2
+ E_ 2
+ F_ 2
+ A_ 2
octave 4
- note C_, 4
- note E_, 4
+ C_ 4
+ E_ 4
octave 3
- note F_, 4
+ F_ 4
endchannel
@@ -26,21 +26,21 @@
duty 2
notetype 5, 12, 2
octave 5
- note F_, 2
- note E_, 1
+ F_ 2
+ E_ 1
rest 1
- note D_, 2
- note C_, 1
+ D_ 2
+ C_ 1
rest 1
octave 4
- note A#, 2
+ A# 2
octave 5
- note C_, 2
- note D_, 2
- note E_, 2
- note F_, 4
- note G_, 4
- note F_, 4
+ C_ 2
+ D_ 2
+ E_ 2
+ F_ 4
+ G_ 4
+ F_ 4
endchannel
@@ -48,31 +48,31 @@
executemusic
notetype 5, 1, 0
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note F_, 2
+ F_ 2
octave 5
- note C_, 1
+ C_ 1
rest 1
octave 4
- note A#, 1
+ A# 1
rest 1
- note A_, 1
+ A_ 1
rest 1
- note G_, 1
+ G_ 1
rest 1
- note F_, 1
+ F_ 1
rest 1
- note E_, 1
+ E_ 1
rest 1
octave 5
- note F_, 1
+ F_ 1
rest 3
- note C_, 1
+ C_ 1
rest 3
octave 4
- note F_, 2
+ F_ 2
rest 2
endchannel
; 0x7ee28
\ No newline at end of file
--- a/audio/sfx/sfx_1f_42.asm
+++ b/audio/sfx/sfx_1f_42.asm
@@ -1,25 +1,25 @@
SFX_1f_42_Ch1: ; 7ee74 (1f:6e74)
executemusic
- tempo 1, 0
- stereopanning 119
+ tempo 256
+ volume 7, 7
duty 2
- togglecall
+ toggleperfectpitch
notetype 5, 10, 4
octave 3
- note A#, 4
+ A# 4
notetype 5, 11, 1
octave 4
- note C_, 2
- note C_, 1
- note C_, 1
+ C_ 2
+ C_ 1
+ C_ 1
notetype 5, 10, 4
- note D#, 4
+ D# 4
notetype 5, 11, 1
- note F_, 2
- note F_, 1
- note F_, 1
+ F_ 2
+ F_ 1
+ F_ 1
notetype 5, 11, 4
- note A#, 8
+ A# 8
endchannel
@@ -29,21 +29,21 @@
duty 2
notetype 5, 13, 1
octave 4
- note G_, 2
- note G_, 1
- note G_, 1
+ G_ 2
+ G_ 1
+ G_ 1
notetype 5, 12, 4
- note D#, 4
+ D# 4
notetype 5, 13, 1
- note G#, 2
- note G#, 1
- note G#, 1
- note A#, 2
- note A#, 1
- note A#, 1
+ G# 2
+ G# 1
+ G# 1
+ A# 2
+ A# 1
+ A# 1
notetype 5, 12, 4
octave 5
- note D#, 8
+ D# 8
endchannel
@@ -51,10 +51,10 @@
executemusic
notetype 5, 1, 0
octave 4
- note D#, 4
- note G#, 4
- note G_, 4
- note F_, 4
- note D#, 8
+ D# 4
+ G# 4
+ G_ 4
+ F_ 4
+ D# 8
endchannel
; 0x7eeb9
\ No newline at end of file
--- /dev/null
+++ b/audio/wave_instruments.asm
@@ -1,0 +1,32 @@
+ dw .wave0
+ dw .wave1
+ dw .wave2
+ dw .wave3
+ dw .wave4
+ dw .wave5 ; used in the Lavender Town and Pokemon Tower themes
+ dw .wave5 ; unused
+ dw .wave5 ; unused
+ dw .wave5 ; unused
+
+; these are the definitions for the channel 3 instruments
+; each instrument definition is made up of 32 points (nibbles) that form
+; the graph of the wave
+; the current instrument is copied to $FF30
+.wave0
+ db $02,$46,$8A,$CE,$FF,$FE,$ED,$DC,$CB,$A9,$87,$65,$44,$33,$22,$11
+
+.wave1
+ db $02,$46,$8A,$CE,$EF,$FF,$FE,$EE,$DD,$CB,$A9,$87,$65,$43,$22,$11
+
+.wave2
+ db $13,$69,$BD,$EE,$EE,$FF,$FF,$ED,$DE,$FF,$FF,$EE,$EE,$DB,$96,$31
+
+.wave3
+ db $02,$46,$8A,$CD,$EF,$FE,$DE,$FF,$EE,$DC,$BA,$98,$76,$54,$32,$10
+
+.wave4
+ db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
+
+; duty 5 reads from sfx data
+.wave5
+
--- a/audio_blue.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "blue.asm"
-INCLUDE "audio.asm"
--- a/audio_red.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "red.asm"
-INCLUDE "audio.asm"
--- /dev/null
+++ b/blue/audio.asm
@@ -1,0 +1,2 @@
+INCLUDE "blue.asm"
+INCLUDE "audio.asm"
--- /dev/null
+++ b/blue/main.asm
@@ -1,0 +1,2 @@
+INCLUDE "blue.asm"
+INCLUDE "main.asm"
--- /dev/null
+++ b/blue/text.asm
@@ -1,0 +1,2 @@
+INCLUDE "blue.asm"
+INCLUDE "text.asm"
--- /dev/null
+++ b/blue/wram.asm
@@ -1,0 +1,2 @@
+INCLUDE "blue.asm"
+INCLUDE "wram.asm"
--- a/constants.asm
+++ b/constants.asm
@@ -3,9 +3,11 @@
INCLUDE "macros.asm"
INCLUDE "hram.asm"
+INCLUDE "vram.asm"
INCLUDE "constants/hardware_constants.asm"
INCLUDE "constants/oam_constants.asm"
+INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/wram_constants.asm"
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -1,21 +1,117 @@
-; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm
-rJOYP EQU $FF00
-rDIV EQU $FF04
-rLCDC EQU $FF40
-rSCY EQU $FF42
-rSCX EQU $FF43
-rBGP EQU $FF47
-rOBP0 EQU $FF48
-rOBP1 EQU $FF49
-rWY EQU $FF4A
-rWX EQU $FF4B
-rIE EQU $FFFF
-
-BTN_A EQU %00000001
-BTN_B EQU %00000010
-BTN_SELECT EQU %00000100
-BTN_START EQU %00001000
-BTN_RIGHT EQU %00010000
-BTN_LEFT EQU %00100000
-BTN_UP EQU %01000000
-BTN_DOWN EQU %10000000
\ No newline at end of file
+; From http://nocash.emubase.de/pandocs.htm.
+
+GBC EQU $11
+
+; MBC3
+MBC3SRamEnable EQU $0000
+MBC3RomBank EQU $2000
+MBC3SRamBank EQU $4000
+MBC3LatchClock EQU $6000
+MBC3RTC EQU $a000
+
+SRAM_DISABLE EQU $00
+SRAM_ENABLE EQU $0a
+
+NUM_SRAM_BANKS EQU 4
+
+RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
+RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
+RTC_H EQU $0a ; Hours 0-23 (0-17h)
+RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
+RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
+ ; Bit 0 Most significant bit of Day Counter (Bit 8)
+ ; Bit 6 Halt (0=Active, 1=Stop Timer)
+ ; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
+
+; interrupt flags
+VBLANK EQU 0
+LCD_STAT EQU 1
+TIMER EQU 2
+SERIAL EQU 3
+JOYPAD EQU 4
+
+LY_VBLANK EQU 145
+
+; 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)
+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)
+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
+rLCDC EQU $ff40 ; LCD Control (R/W)
+rLCDC_ENABLE EQU 7
+rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
+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)
+rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
+rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
+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)
+
--- /dev/null
+++ b/constants/misc_constants.asm
@@ -1,0 +1,20 @@
+A_BUTTON EQU %00000001
+B_BUTTON EQU %00000010
+SELECT EQU %00000100
+START EQU %00001000
+D_RIGHT EQU %00010000
+D_LEFT EQU %00100000
+D_UP EQU %01000000
+D_DOWN EQU %10000000
+
+MAX_LEVEL EQU 100
+NUM_MOVES EQU 4
+
+PARTY_LENGTH EQU 6
+
+MONS_PER_BOX EQU 20
+NUM_BOXES EQU 12
+
+HOF_MON EQU $10
+HOF_TEAM EQU PARTY_LENGTH * HOF_MON
+NUM_HOF_TEAMS EQU 50
--- a/constants/move_animation_constants.asm
+++ b/constants/move_animation_constants.asm
@@ -1,4 +1,4 @@
-; subanimations
+; subanimations
; special effects, prefaced with "SE" for "Special Effect"
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,4 +1,4 @@
-NUM_MOVES EQU $A4
+NUM_ATTACKS EQU $A4
POUND EQU $01
KARATE_CHOP EQU $02
--- a/constants/pokedex_constants.asm
+++ b/constants/pokedex_constants.asm
@@ -148,4 +148,6 @@
DEX_DRAGONAIR EQU 148
DEX_DRAGONITE EQU 149
DEX_MEWTWO EQU 150
-DEX_MEW EQU 151
\ No newline at end of file
+DEX_MEW EQU 151
+
+NUM_POKEMON EQU 151
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -28,6 +28,8 @@
BLASTOISE EQU $1C
PINSIR EQU $1D
TANGELA EQU $1E
+
+
GROWLITHE EQU $21
ONIX EQU $22
FEAROW EQU $23
@@ -45,17 +47,26 @@
PSYDUCK EQU $2F
DROWZEE EQU $30
GOLEM EQU $31
+
MAGMAR EQU $33
+
ELECTABUZZ EQU $35
MAGNETON EQU $36
KOFFING EQU $37
+
MANKEY EQU $39
SEEL EQU $3A
DIGLETT EQU $3B
TAUROS EQU $3C
+
+
+
FARFETCH_D EQU $40
VENONAT EQU $41
DRAGONITE EQU $42
+
+
+
DODUO EQU $46
POLIWAG EQU $47
JYNX EQU $48
@@ -65,10 +76,15 @@
DITTO EQU $4C
MEOWTH EQU $4D
KRABBY EQU $4E
+
+
+
VULPIX EQU $52
NINETALES EQU $53
PIKACHU EQU $54
RAICHU EQU $55
+
+
DRATINI EQU $58
DRAGONAIR EQU $59
KABUTO EQU $5A
@@ -75,6 +91,8 @@
KABUTOPS EQU $5B
HORSEA EQU $5C
SEADRA EQU $5D
+
+
SANDSHREW EQU $60
SANDSLASH EQU $61
OMANYTE EQU $62
@@ -94,15 +112,19 @@
WEEDLE EQU $70
KAKUNA EQU $71
BEEDRILL EQU $72
+
DODRIO EQU $74
PRIMEAPE EQU $75
DUGTRIO EQU $76
VENOMOTH EQU $77
DEWGONG EQU $78
+
+
CATERPIE EQU $7B
METAPOD EQU $7C
BUTTERFREE EQU $7D
MACHAMP EQU $7E
+
GOLDUCK EQU $80
HYPNO EQU $81
GOLBAT EQU $82
@@ -109,14 +131,19 @@
MEWTWO EQU $83
SNORLAX EQU $84
MAGIKARP EQU $85
+
+
MUK EQU $88
+
KINGLER EQU $8A
CLOYSTER EQU $8B
+
ELECTRODE EQU $8D
CLEFABLE EQU $8E
WEEZING EQU $8F
PERSIAN EQU $90
MAROWAK EQU $91
+
HAUNTER EQU $93
ABRA EQU $94
ALAKAZAM EQU $95
@@ -126,8 +153,13 @@
BULBASAUR EQU $99
VENUSAUR EQU $9A
TENTACRUEL EQU $9B
+
GOLDEEN EQU $9D
SEAKING EQU $9E
+
+
+
+
PONYTA EQU $A3
RAPIDASH EQU $A4
RATTATA EQU $A5
@@ -137,12 +169,16 @@
GEODUDE EQU $A9
PORYGON EQU $AA
AERODACTYL EQU $AB
+
MAGNEMITE EQU $AD
+
+
CHARMANDER EQU $B0
SQUIRTLE EQU $B1
CHARMELEON EQU $B2
WARTORTLE EQU $B3
CHARIZARD EQU $B4
+
FOSSIL_KABUTOPS EQU $B6
FOSSIL_AERODACTYL EQU $B7
MON_GHOST EQU $B8
@@ -151,4 +187,4 @@
VILEPLUME EQU $BB
BELLSPROUT EQU $BC
WEEPINBELL EQU $BD
-VICTREEBEL EQU $BE
\ No newline at end of file
+VICTREEBEL EQU $BE
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -1,10 +1,14 @@
SPRITEBUFFERSIZE EQU 7*7 * 8 ; 7 * 7 (tiles) * 8 (bytes per tile)
+; Overload W_GRASSMONS
+wd893 EQU $d893 ; W_GRASSMONS + 11
+wd896 EQU $d896 ; W_GRASSMONS + 14
+
; Overload enemy party data
-W_WATERRATE EQU $d8a4
-W_WATERMONS EQU $d8a5
+W_WATERRATE EQU $d8a4 ; wEnemyMon1Species
+W_WATERMONS EQU $d8a5 ; wEnemyMon1Species + 1
; Overload enemy stat modifiers
-wTradeMonNick EQU $cd1e
+wTradeMonNick EQU $cd1e ; wPlayerMonAccuracyMod
--- /dev/null
+++ b/data/collision.asm
@@ -1,0 +1,24 @@
+Underground_Coll:: INCBIN "gfx/tilesets/underground.tilecoll"
+Overworld_Coll:: INCBIN "gfx/tilesets/overworld.tilecoll"
+RedsHouse1_Coll::
+RedsHouse2_Coll:: INCBIN "gfx/tilesets/reds_house.tilecoll"
+Mart_Coll::
+Pokecenter_Coll:: INCBIN "gfx/tilesets/pokecenter.tilecoll"
+Dojo_Coll::
+Gym_Coll:: INCBIN "gfx/tilesets/gym.tilecoll"
+Forest_Coll:: INCBIN "gfx/tilesets/forest.tilecoll"
+House_Coll:: INCBIN "gfx/tilesets/house.tilecoll"
+ForestGate_Coll::
+Museum_Coll::
+Gate_Coll:: INCBIN "gfx/tilesets/gate.tilecoll"
+Ship_Coll:: INCBIN "gfx/tilesets/ship.tilecoll"
+ShipPort_Coll:: INCBIN "gfx/tilesets/ship_port.tilecoll"
+Cemetery_Coll:: INCBIN "gfx/tilesets/cemetery.tilecoll"
+Interior_Coll:: INCBIN "gfx/tilesets/interior.tilecoll"
+Cavern_Coll:: INCBIN "gfx/tilesets/cavern.tilecoll"
+Lobby_Coll:: INCBIN "gfx/tilesets/lobby.tilecoll"
+Mansion_Coll:: INCBIN "gfx/tilesets/mansion.tilecoll"
+Lab_Coll:: INCBIN "gfx/tilesets/lab.tilecoll"
+Club_Coll:: INCBIN "gfx/tilesets/club.tilecoll"
+Facility_Coll:: INCBIN "gfx/tilesets/facility.tilecoll"
+Plateau_Coll:: INCBIN "gfx/tilesets/plateau.tilecoll"
--- /dev/null
+++ b/data/facing.asm
@@ -1,0 +1,57 @@
+SpriteFacingAndAnimationTable: ; 4000 (1:4000)
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; facing down, walk animation frame 0
+ dw SpriteFacingDownAndWalking, SpriteOAMParameters ; facing down, walk animation frame 1
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; facing down, walk animation frame 2
+ dw SpriteFacingDownAndWalking, SpriteOAMParametersFlipped ; facing down, walk animation frame 3
+ dw SpriteFacingUpAndStanding, SpriteOAMParameters ; facing up, walk animation frame 0
+ dw SpriteFacingUpAndWalking, SpriteOAMParameters ; facing up, walk animation frame 1
+ dw SpriteFacingUpAndStanding, SpriteOAMParameters ; facing up, walk animation frame 2
+ dw SpriteFacingUpAndWalking, SpriteOAMParametersFlipped ; facing up, walk animation frame 3
+ dw SpriteFacingLeftAndStanding, SpriteOAMParameters ; facing left, walk animation frame 0
+ dw SpriteFacingLeftAndWalking, SpriteOAMParameters ; facing left, walk animation frame 1
+ dw SpriteFacingLeftAndStanding, SpriteOAMParameters ; facing left, walk animation frame 2
+ dw SpriteFacingLeftAndWalking, SpriteOAMParameters ; facing left, walk animation frame 3
+ dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 0
+ dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped ; facing right, walk animation frame 1
+ dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 2
+ dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped ; facing right, walk animation frame 3
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; ---
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; This table is used for sprites $a and $b.
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; All orientation and animation parameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; lead to the same result. Used for immobile
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; sprites like items on the ground
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters ; ---
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+ dw SpriteFacingDownAndStanding, SpriteOAMParameters
+
+SpriteFacingDownAndStanding: ; 4080 (1:4080)
+ db $00,$01,$02,$03
+SpriteFacingDownAndWalking: ; 4084 (1:4084)
+ db $80,$81,$82,$83
+SpriteFacingUpAndStanding: ; 4088 (1:4088)
+ db $04,$05,$06,$07
+SpriteFacingUpAndWalking: ; 408c (1:408c)
+ db $84,$85,$86,$87
+SpriteFacingLeftAndStanding: ; 4090 (1:4090)
+ db $08,$09,$0a,$0b
+SpriteFacingLeftAndWalking: ; 4094 (1:4094)
+ db $88,$89,$8a,$8b
+
+SpriteOAMParameters: ; 4098 (1:4098)
+ db $00,$00, $00 ; top left
+ db $00,$08, $00 ; top right
+ db $08,$00, OAMFLAG_CANBEMASKED ; bottom left
+ db $08,$08, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right
+SpriteOAMParametersFlipped: ; 40a4 (1:40a4)
+ db $00,$08, OAMFLAG_VFLIPPED
+ db $00,$00, OAMFLAG_VFLIPPED
+ db $08,$08, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED
+ db $08,$00, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
--- a/data/hide_show_data.asm
+++ b/data/hide_show_data.asm
@@ -263,7 +263,7 @@
; a) Map_ID = $FF
; b) Map_ID ≠ currentMapID
;
-; This Data is loaded into RAM at $D5CE-$D5F?. (W_MISSABLEOBJECTLIST)
+; This Data is loaded into RAM at wd5ce-$D5F?. (W_MISSABLEOBJECTLIST)
; These constants come from the bytes for Predef functions:
Hide equ $11
--- a/data/sgb_border.asm
+++ b/data/sgb_border.asm
@@ -55,8 +55,8 @@
SGBBorderGraphics: ; 72fe8 (1c:6fe8)
IF _RED
- INCBIN "gfx/red/sgbborder.w128.2bpp"
+ INCBIN "gfx/red/sgbborder.2bpp"
ENDC
IF _BLUE
- INCBIN "gfx/blue/sgbborder.w128.2bpp"
+ INCBIN "gfx/blue/sgbborder.2bpp"
ENDC
--- a/data/sgb_packets.asm
+++ b/data/sgb_packets.asm
@@ -1,142 +1,298 @@
-BlkPacket_WholeScreen: ; 7219e (1c:619e)
- db $21,$01,$03,$00,$00,$00,$13,$11,$00,$00,$00,$00,$00,$00,$00,$00
- db $03,$00,$00,$13,$11,$00,$00
+ATTR_BLK: MACRO
+; This is a command macro.
+; Use ATTR_BLK_DATA for data sets.
+ db ($4 << 3) + ((\1 * 6) / 16 + 1)
+ db \1
+ENDM
+ATTR_BLK_DATA: MACRO
+ db \1 ; which regions are affected
+ db \2 + (\3 << 2) + (\4 << 4) ; palette for each region
+ db \5, \6, \7, \8 ; x1, y1, x2, y2
+ENDM
-BlkPacket_Battle: ; 721b5 (1c:61b5)
- db $22,$05,$07,$0a,$00,$0c,$13,$11,$03,$05,$01,$00,$0a,$03,$03,$00
- db $0a,$07,$13,$0a,$03,$0a,$00,$04,$08,$0b,$03,$0f,$0b,$00,$13,$06
- db $03,$00,$00,$13,$0b,$00,$03,$00,$0c,$13,$11,$02,$03,$01,$00,$0a
- db $03,$01,$03,$0a,$08,$13,$0a,$00,$03,$00,$04,$08,$0b,$02,$03,$0b
- db $00,$13,$07,$03,$00
+PAL_SET: MACRO
+ db ($a << 3) + 1
+ dw \1, \2, \3, \4
+ ds 7
+ENDM
-BlkPacket_StatusScreen: ; 721fa (1c:61fa)
- db $21,$01,$07,$05,$01,$00,$07,$06,$00,$00,$00,$00,$00,$00,$00,$00
- db $02,$00,$00,$11,$00,$03,$01,$00,$07,$06,$01,$03,$01,$07,$13,$11
- db $00,$03,$08,$00,$13,$06,$00,$00
+PAL_TRN: MACRO
+ db ($b<< 3) + 1
+ ds 15
+ENDM
-BlkPacket_Pokedex: ; 72222 (1c:6222)
- db $21,$01,$07,$05,$01,$01,$08,$08,$00,$00,$00,$00,$00,$00,$00,$00
- db $02,$00,$00,$11,$00,$01,$00,$01,$13,$00,$03,$01,$01,$08,$08,$01
- db $03,$01,$09,$08,$11,$00,$03,$09,$01,$13,$11,$00,$00
+MLT_REQ: MACRO
+ db ($11 << 3) + 1
+ db \1 - 1
+ ds 14
+ENDM
-BlkPacket_Slots: ; 7224f (1c:624f)
- db $22,$05,$03,$05,$00,$00,$13,$0b,$03,$0a,$00,$04,$13,$09,$02,$0f
- db $00,$06,$13,$07,$03,$00,$04,$04,$0f,$09,$03,$00,$00,$0c,$13,$11
- db $03,$00,$00,$13,$0b,$01,$03,$00,$04,$13,$09,$02,$03,$00,$06,$13
- db $07,$03,$03,$04,$04,$0f,$09,$00,$03,$00,$0c,$13,$11,$00,$00
+CHR_TRN: MACRO
+ db ($13 << 3) + 1
+ db \1 + (\2 << 1)
+ ds 14
+ENDM
-BlkPacket_Titlescreen: ; 7228e (1c:628e)
- db $22,$03,$03,$00,$00,$00,$13,$07,$02,$05,$00,$08,$13,$09,$03,$0a
- db $00,$0a,$13,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- db $03,$00,$00,$13,$07,$00,$03,$00,$08,$13,$09,$01,$03,$00,$0a,$13
- db $11,$02,$00
+PCT_TRN: MACRO
+ db ($14 << 3) + 1
+ ds 15
+ENDM
-BlkPacket_NidorinoIntro: ; 722c1 (1c:62c1)
- db $22,$03,$03,$05,$00,$00,$13,$03,$03,$00,$00,$04,$13,$0d,$03,$05
- db $00,$0e,$13,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- db $03,$00,$00,$13,$03,$01,$03,$00,$04,$13,$0d,$00,$03,$00,$0e,$13
- db $11,$01,$00
+MASK_EN: MACRO
+ db ($17 << 3) + 1
+ db \1
+ ds 14
+ENDM
-BlkPacket_PartyMenu: ; 722f4 (1c:62f4)
- db $23,$07,$06,$10,$01,$00,$02,$0c,$02,$00,$05,$01,$0b,$01,$02,$00
- db $05,$03,$0b,$03,$02,$00,$05,$05,$0b,$05,$02,$00,$05,$07,$0b,$07
- db $02,$00,$05,$09,$0b,$09,$02,$00,$05,$0b,$0b,$0b,$00,$00,$00,$00
- db $02,$00,$00,$11,$01,$03,$01,$00,$02,$0c,$00,$03,$01,$0d,$02,$11
- db $01,$03,$03,$00,$13,$11,$01,$03,$0c,$00,$12,$01,$00,$03,$0c,$02
- db $12,$03,$00,$03,$0c,$04,$12,$05,$00,$03,$0c,$06,$12,$07,$00,$03
- db $0c,$08,$12,$09,$00,$03,$0c,$0a,$12,$0b,$00,$00
+DATA_SND: MACRO
+ db ($f << 3) + 1
+ dw \1 ; address
+ db \2 ; bank
+ db \3 ; length (1-11)
+ENDM
-BlkPacket_TrainerCard: ; 72360 (1c:6360)
- db $24,$0a,$02,$00,$03,$0c,$04,$0d,$02,$05,$07,$0c,$08,$0d,$02,$0f
- db $0b,$0c,$0c,$0d,$02,$0a,$10,$0b,$11,$0c,$02,$05,$0e,$0d,$0f,$0e
- db $02,$0f,$10,$0d,$11,$0e,$02,$0a,$03,$0f,$04,$10,$02,$0f,$07,$0f
- db $08,$10,$02,$0a,$0b,$0f,$0c,$10,$02,$05,$0f,$0f,$10,$10,$00,$00
- db $03,$03,$0c,$04,$0d,$00,$03,$07,$0c,$08,$0d,$01,$03,$0b,$0c,$0c
- db $0d,$03,$03,$10,$0b,$11,$0c,$02,$03,$0e,$0d,$0f,$0e,$01,$03,$10
- db $0d,$11,$0e,$03,$03,$03,$0f,$04,$10,$02,$03,$07,$0f,$08,$10,$03
- db $03,$0b,$0f,$0c,$10,$02,$03,$0f,$0f,$10,$10,$01,$00
+BlkPacket_WholeScreen: ; 7219e (1c:619e)
+ ATTR_BLK 1
+ ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,17
+ ds 8
-BlkPacket_GameFreakIntro: ; 723dd (1c:63dd)
- db $22,$03,$07,$05,$05,$0b,$07,$0d,$02,$0a,$08,$0b,$09,$0d,$03,$0f
- db $0c,$0b,$0e,$0d,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- db $03,$00,$00,$13,$0a,$00,$03,$00,$0b,$04,$0d,$00,$03,$05,$0b,$07
- db $0d,$01,$03,$08,$0b,$13,$0d,$00,$03,$00,$0e,$13,$11,$00,$03,$08
- db $0b,$09,$0d,$02,$03,$0c,$0b,$0e,$0d,$03,$00
+ db $03,$00,$00,$13,$11,$00,$00
-PalPacket_Empty: ; 72428 (1c:6428)
- db $51,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_Battle: ; 721b5 (1c:61b5)
+ ATTR_BLK 5
+ ATTR_BLK_DATA %111, 2,2,0, 00,12, 19,17
+ ATTR_BLK_DATA %011, 1,1,0, 01,00, 10,03
+ ATTR_BLK_DATA %011, 0,0,0, 10,07, 19,10
+ ATTR_BLK_DATA %011, 2,2,0, 00,04, 08,11
+ ATTR_BLK_DATA %011, 3,3,0, 11,00, 19,06
-PalPacket_PartyMenu: ; 72438 (1c:6438)
- db $51,PAL_MEWMON,$00,PAL_GREENBAR,$00,PAL_YELLOWBAR,$00,PAL_REDBAR,$00,$00,$00,$00,$00,$00,$00,$00
+ db $03,$00,$00,$13,$0b,$00
+ db $03,$00,$0c,$13,$11,$02
+ db $03,$01,$00,$0a,$03,$01
+ db $03,$0a,$08,$13,$0a,$00
+ db $03,$00,$04,$08,$0b,$02
+ db $03,$0b,$00,$13,$07,$03
+ db $00
-PalPacket_Black: ; 72448 (1c:6448)
- db $51,PAL_BLACK,$00,PAL_BLACK,$00,PAL_BLACK,$00,PAL_BLACK,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_StatusScreen: ; 721fa (1c:61fa)
+ ATTR_BLK 1
+ ATTR_BLK_DATA %111, 1,1,0, 01,00, 07,06
+ ds 8
-PalPacket_TownMap: ; 72458 (1c:6458)
- db $51,PAL_TOWNMAP,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+ db $02,$00,$00,$11,$00,$03
+ db $01,$00,$07,$06,$01,$03
+ db $01,$07,$13,$11,$00,$03
+ db $08,$00,$13,$06,$00,$00
-PalPacket_Pokedex: ; 72468 (1c:6468)
- db $51,PAL_BROWNMON,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_Pokedex: ; 72222 (1c:6222)
+ ATTR_BLK 1
+ ATTR_BLK_DATA %111, 1,1,0, 01,01, 08,08
+ ds 8
-PalPacket_Slots: ; 72478 (1c:6478)
- db $51,PAL_SLOTS1,$00,PAL_SLOTS2,$00,PAL_SLOTS3,$00,PAL_SLOTS4,$00,$00,$00,$00,$00,$00,$00,$00
+ db $02,$00,$00,$11,$00,$01
+ db $00,$01,$13,$00,$03,$01
+ db $01,$08,$08,$01,$03,$01
+ db $09,$08,$11,$00,$03,$09
+ db $01,$13,$11,$00,$00
-PalPacket_Titlescreen: ; 72488 (1c:6488)
- db $51,PAL_LOGO2,$00,PAL_LOGO1,$00,PAL_MEWMON,$00,PAL_PURPLEMON,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_Slots: ; 7224f (1c:624f)
+ ATTR_BLK 5
+ ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,11
+ ATTR_BLK_DATA %011, 2,2,0, 00,04, 19,09
+ ATTR_BLK_DATA %010, 3,3,0, 00,06, 19,07
+ ATTR_BLK_DATA %011, 0,0,0, 04,04, 15,09
+ ATTR_BLK_DATA %011, 0,0,0, 00,12, 19,17
-PalPacket_TrainerCard: ; 72498 (1c:6498)
- db $51,PAL_MEWMON,$00,PAL_BADGE,$00,PAL_REDMON,$00,PAL_YELLOWMON,$00,$00,$00,$00,$00,$00,$00,$00
+ db $03,$00,$00,$13,$0b,$01
+ db $03,$00,$04,$13,$09,$02
+ db $03,$00,$06,$13,$07,$03
+ db $03,$04,$04,$0f,$09,$00
+ db $03,$00,$0c,$13,$11,$00
+ db $00
-PalPacket_Generic: ; 724a8 (1c:64a8)
- db $51,PAL_MEWMON,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_Titlescreen: ; 7228e (1c:628e)
+ ATTR_BLK 3
+ ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,07
+ ATTR_BLK_DATA %010, 1,1,0, 00,08, 19,09
+ ATTR_BLK_DATA %011, 2,2,0, 00,10, 19,17
+ ds 12
-PalPacket_NidorinoIntro: ; 724b8 (1c:64b8)
- db $51,PAL_PURPLEMON,$00,PAL_BLACK,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+ db $03,$00,$00,$13,$07,$00
+ db $03,$00,$08,$13,$09,$01
+ db $03,$00,$0a,$13,$11,$02
+ db $00
-PalPacket_GameFreakIntro: ; 724c8 (1c:64c8)
- db $51,PAL_GAMEFREAK,$00,PAL_REDMON,$00,PAL_VIRIDIAN,$00,PAL_BLUEMON,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_NidorinoIntro: ; 722c1 (1c:62c1)
+ ATTR_BLK 3
+ ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,03
+ ATTR_BLK_DATA %011, 0,0,0, 00,04, 19,13
+ ATTR_BLK_DATA %011, 1,1,0, 00,14, 19,17
+ ds 12
-PalPacket_724d8: ; 724d8 (1c:64d8)
- db $59,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+ db $03,$00,$00,$13,$03,$01
+ db $03,$00,$04,$13,$0d,$00
+ db $03,$00,$0e,$13,$11,$01
+ db $00
-PalPacket_724e8: ; 724e8 (1c:64e8)
- db $89,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_PartyMenu: ; 722f4 (1c:62f4)
+ ATTR_BLK 7
+ ATTR_BLK_DATA %110, 0,0,1, 01,00, 02,12
+ ATTR_BLK_DATA %010, 0,0,0, 05,01, 11,01
+ ATTR_BLK_DATA %010, 0,0,0, 05,03, 11,03
+ ATTR_BLK_DATA %010, 0,0,0, 05,05, 11,05
+ ATTR_BLK_DATA %010, 0,0,0, 05,07, 11,07
+ ATTR_BLK_DATA %010, 0,0,0, 05,09, 11,09
+ ATTR_BLK_DATA %010, 0,0,0, 05,11, 11,11
+ ds 4
-PalPacket_724f8: ; 724f8 (1c:64f8)
- db $89,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+ db $02,$00,$00,$11,$01,$03
+ db $01,$00,$02,$0c,$00,$03
+ db $01,$0d,$02,$11,$01,$03
+ db $03,$00,$13,$11,$01,$03
+ db $0c,$00,$12,$01,$00,$03
+ db $0c,$02,$12,$03,$00,$03
+ db $0c,$04,$12,$05,$00,$03
+ db $0c,$06,$12,$07,$00,$03
+ db $0c,$08,$12,$09,$00,$03
+ db $0c,$0a,$12,$0b,$00,$00
-PalPacket_72508: ; 72508 (1c:6508)
- db $99,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_TrainerCard: ; 72360 (1c:6360)
+ ATTR_BLK 10
+ ATTR_BLK_DATA %010, 0,0,0, 03,12, 04,13
+ ATTR_BLK_DATA %010, 1,1,0, 07,12, 08,13
+ ATTR_BLK_DATA %010, 3,3,0, 11,12, 12,13
+ ATTR_BLK_DATA %010, 2,2,0, 16,11, 17,12
+ ATTR_BLK_DATA %010, 1,1,0, 14,13, 15,14
+ ATTR_BLK_DATA %010, 3,3,0, 16,13, 17,14
+ ATTR_BLK_DATA %010, 2,2,0, 03,15, 04,16
+ ATTR_BLK_DATA %010, 3,3,0, 07,15, 08,16
+ ATTR_BLK_DATA %010, 2,2,0, 11,15, 12,16
+ ATTR_BLK_DATA %010, 1,1,0, 15,15, 16,16
+ ds 2
-PalPacket_72518: ; 72518 (1c:6518)
- db $A1,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+ db $03,$03,$0c,$04,$0d,$00
+ db $03,$07,$0c,$08,$0d,$01
+ db $03,$0b,$0c,$0c,$0d,$03
+ db $03,$10,$0b,$11,$0c,$02
+ db $03,$0e,$0d,$0f,$0e,$01
+ db $03,$10,$0d,$11,$0e,$03
+ db $03,$03,$0f,$04,$10,$02
+ db $03,$07,$0f,$08,$10,$03
+ db $03,$0b,$0f,$0c,$10,$02
+ db $03,$0f,$0f,$10,$10,$01
+ db $00
-PalPacket_72528: ; 72528 (1c:6528)
- db $B9,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+BlkPacket_GameFreakIntro: ; 723dd (1c:63dd)
+ ATTR_BLK 3
+ ATTR_BLK_DATA %111, 1,1,0, 05,11, 07,13
+ ATTR_BLK_DATA %010, 2,2,0, 08,11, 09,13
+ ATTR_BLK_DATA %011, 3,3,0, 12,11, 14,13
+ ds 12
-PalPacket_72538: ; 72538 (1c:6538)
- db $B9,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
+ db $03,$00,$00,$13,$0a,$00
+ db $03,$00,$0b,$04,$0d,$00
+ db $03,$05,$0b,$07,$0d,$01
+ db $03,$08,$0b,$13,$0d,$00
+ db $03,$00,$0e,$13,$11,$00
+ db $03,$08,$0b,$09,$0d,$02
+ db $03,$0c,$0b,$0e,$0d,$03
+ db $00
-PalPacket_72548: ; 72548 (1c:6548)
- db $79,$5D,$08,$00,$0B,$8C,$D0,$F4,$60,$00,$00,$00,$00,$00,$00,$00
-PalPacket_72558: ; 72558 (1c:6558)
- db $79,$52,$08,$00,$0B,$A9,$E7,$9F,$01,$C0,$7E,$E8,$E8,$E8,$E8,$E0
+PalPacket_Empty: PAL_SET 0, 0, 0, 0
+PalPacket_PartyMenu: PAL_SET PAL_MEWMON, PAL_GREENBAR, PAL_YELLOWBAR, PAL_REDBAR
+PalPacket_Black: PAL_SET PAL_BLACK, PAL_BLACK, PAL_BLACK, PAL_BLACK
+PalPacket_TownMap: PAL_SET PAL_TOWNMAP, 0, 0, 0
+PalPacket_Pokedex: PAL_SET PAL_BROWNMON, 0, 0, 0
+PalPacket_Slots: PAL_SET PAL_SLOTS1, PAL_SLOTS2, PAL_SLOTS3, PAL_SLOTS4
+PalPacket_Titlescreen: PAL_SET PAL_LOGO2, PAL_LOGO1, PAL_MEWMON, PAL_PURPLEMON
+PalPacket_TrainerCard: PAL_SET PAL_MEWMON, PAL_BADGE, PAL_REDMON, PAL_YELLOWMON
+PalPacket_Generic: PAL_SET PAL_MEWMON, 0, 0, 0
+PalPacket_NidorinoIntro: PAL_SET PAL_PURPLEMON, PAL_BLACK, 0, 0
+PalPacket_GameFreakIntro: PAL_SET PAL_GAMEFREAK, PAL_REDMON, PAL_VIRIDIAN, PAL_BLUEMON
-PalPacket_72568: ; 72568 (1c:6568)
- db $79,$47,$08,$00,$0B,$C4,$D0,$16,$A5,$CB,$C9,$05,$D0,$10,$A2,$28
+PalTrnPacket: PAL_TRN
+MltReq1Packet: MLT_REQ 1
+MltReq2Packet: MLT_REQ 2
+ChrTrnPacket: CHR_TRN 0, 0
+PctTrnPacket: PCT_TRN
-PalPacket_72578: ; 72578 (1c:6578)
- db $79,$3C,$08,$00,$0B,$F0,$12,$A5,$C9,$C9,$C8,$D0,$1C,$A5,$CA,$C9
+MaskEnFreezePacket: MASK_EN 1
+MaskEnCancelPacket: MASK_EN 0
-PalPacket_72588: ; 72588 (1c:6588)
- db $79,$31,$08,$00,$0B,$0C,$A5,$CA,$C9,$7E,$D0,$06,$A5,$CB,$C9,$7E
-PalPacket_72598: ; 72598 (1c:6598)
- db $79,$26,$08,$00,$0B,$39,$CD,$48,$0C,$D0,$34,$A5,$C9,$C9,$80,$D0
+; These are DATA_SND packets containing SNES code.
+; This set of packets is found in several Japanese SGB-compatible titles.
+; It appears to be part of NCL's SGB devkit.
-PalPacket_725a8: ; 725a8 (1c:65a8)
- db $79,$1B,$08,$00,$0B,$EA,$EA,$EA,$EA,$EA,$A9,$01,$CD,$4F,$0C,$D0
+DataSnd_72548: DATA_SND $85d, $0, 11
+ db $8C ; cpx #$8c (2)
+ db $D0, $F4 ; bne -$0c
+ db $60 ; rts
+ ds 7
-PalPacket_725b8: ; 725b8 (1c:65b8)
- db $79,$10,$08,$00,$0B,$4C,$20,$08,$EA,$EA,$EA,$EA,$EA,$60,$EA,$EA
+DataSnd_72558: DATA_SND $852, $0, 11
+ db $A9, $E7 ; lda #$e7
+ db $9F, $01, $C0, $7E ; sta $7ec001, x
+ db $E8 ; inx
+ db $E8 ; inx
+ db $E8 ; inx
+ db $E8 ; inx
+ db $E0 ; cpx #$8c (1)
+
+DataSnd_72568: DATA_SND $847, $0, 11
+ db $C4 ; cmp #$c4 (2)
+ db $D0, $16 ; bne +$16
+ db $A5 ; lda dp
+ db $CB ; wai
+ db $C9, $05 ; cmp #$05
+ db $D0, $10 ; bne +$10
+ db $A2, $28 ; ldx #$28
+
+DataSnd_72578: DATA_SND $83c, $0, 11
+ db $F0, $12 ; beq +$12
+ db $A5 ; lda dp
+ db $C9, $C9 ; cmp #$c9
+ db $C8 ; iny
+ db $D0, $1C ; bne +$1c
+ db $A5 ; lda dp
+ db $CA ; dex
+ db $C9 ; cmp #$c4 (1)
+
+DataSnd_72588: DATA_SND $831, $0, 11
+ dbw $0C, $CAA5 ; tsb $caa5
+ db $C9, $7E ; cmp #$7e
+ db $D0, $06 ; bne +$06
+ db $A5 ; lda dp
+ db $CB ; wai
+ db $C9, $7E ; cmp #$7e
+
+DataSnd_72598: DATA_SND $826, $0, 11
+ db $39 ; bne +$39 (2)
+ dbw $CD, $C48 ; cmp $c48
+ db $D0, $34 ; bne +$34
+ db $A5 ; lda dp
+ db $C9, $C9 ; cmp #$c9
+ db $80, $D0 ; bra -$30
+
+DataSnd_725a8: DATA_SND $81b, $0, 11
+ db $EA ; nop
+ db $EA ; nop
+ db $EA ; nop
+ db $EA ; nop
+ db $EA ; nop
+ ; $820:
+ db $A9,$01 ; lda #01
+ dbw $CD,$C4F ; cmp $c4f
+ db $D0 ; bne +$39 (1)
+
+DataSnd_725b8: DATA_SND $810, $0, 11
+ dbw $4C, $820 ; jmp $820
+ db $EA ; nop
+ db $EA ; nop
+ db $EA ; nop
+ db $EA ; nop
+ db $EA ; nop
+ db $60 ; rts
+ db $EA ; nop
+ db $EA ; nop
--- a/data/wildPokemon/fishinggroup1.asm
+++ /dev/null
@@ -1,4 +1,0 @@
-FishingGroup1: ; e97d (3:697d)
- db 2
- db 15,TENTACOOL
- db 15,POLIWAG
--- a/data/wildPokemon/fishinggroup10.asm
+++ /dev/null
@@ -1,6 +1,0 @@
-FishingGroup10: ; e9bc (3:69bc)
- db 4
- db 23,SEAKING
- db 15,KRABBY
- db 15,GOLDEEN
- db 15,MAGIKARP
--- a/data/wildPokemon/fishinggroup2.asm
+++ /dev/null
@@ -1,4 +1,0 @@
-FishingGroup2: ; e982 (3:6982)
- db 2
- db 15,GOLDEEN
- db 15,POLIWAG
--- a/data/wildPokemon/fishinggroup3.asm
+++ /dev/null
@@ -1,5 +1,0 @@
-FishingGroup3: ; e987 (3:6987)
- db 3
- db 15,PSYDUCK
- db 15,GOLDEEN
- db 15,KRABBY
--- a/data/wildPokemon/fishinggroup4.asm
+++ /dev/null
@@ -1,4 +1,0 @@
-FishingGroup4: ; e98e (3:698e)
- db 2
- db 15,KRABBY
- db 15,SHELLDER
--- a/data/wildPokemon/fishinggroup5.asm
+++ /dev/null
@@ -1,4 +1,0 @@
-FishingGroup5: ; e993 (3:6993)
- db 2
- db 23,POLIWHIRL
- db 15,SLOWPOKE
--- a/data/wildPokemon/fishinggroup6.asm
+++ /dev/null
@@ -1,6 +1,0 @@
-FishingGroup6: ; e998 (3:6998)
- db 4
- db 15,DRATINI
- db 15,KRABBY
- db 15,PSYDUCK
- db 15,SLOWPOKE
--- a/data/wildPokemon/fishinggroup7.asm
+++ /dev/null
@@ -1,6 +1,0 @@
-FishingGroup7: ; e9a1 (3:69a1)
- db 4
- db 5,TENTACOOL
- db 15,KRABBY
- db 15,GOLDEEN
- db 15,MAGIKARP
--- a/data/wildPokemon/fishinggroup8.asm
+++ /dev/null
@@ -1,6 +1,0 @@
-FishingGroup8: ; e9aa (3:69aa)
- db 4
- db 15,STARYU
- db 15,HORSEA
- db 15,SHELLDER
- db 15,GOLDEEN
--- a/data/wildPokemon/fishinggroup9.asm
+++ /dev/null
@@ -1,6 +1,0 @@
-FishingGroup9: ; e9b3 (3:69b3)
- db 4
- db 23,SLOWBRO
- db 23,SEAKING
- db 23,KINGLER
- db 23,SEADRA
--- a/data/wildPokemon/mansion1.asm
+++ b/data/wildPokemon/mansion1.asm
@@ -1,4 +1,4 @@
-MansionMons1:
+MansionMons1:
db $0A
IF _RED
db 32,KOFFING
@@ -12,7 +12,7 @@
db 37,WEEZING
db 39,MUK
ENDC
-
+
IF _GREEN || _BLUE
db 32,GRIMER
db 30,GRIMER
@@ -25,7 +25,7 @@
db 37,MUK
db 39,WEEZING
ENDC
-
+
IF _YELLOW
db 34,RATTATA
db 34,RATICATE
@@ -38,6 +38,6 @@
db 34,GROWLITHE
db 38,GROWLITHE
ENDC
-
+
db $00
--- a/data/wildPokemon/mansion2.asm
+++ b/data/wildPokemon/mansion2.asm
@@ -1,4 +1,4 @@
-MansionMons2:
+MansionMons2:
db $0A
IF _RED
db 32,GROWLITHE
@@ -12,7 +12,7 @@
db 39,WEEZING
db 37,MUK
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 32,VULPIX
db 34,GRIMER
@@ -25,7 +25,7 @@
db 39,MUK
db 37,WEEZING
ENDC
-
+
IF _JAPAN && _BLUE
db 32,GROWLITHE
db 34,GRIMER
@@ -38,7 +38,7 @@
db 39,MUK
db 37,WEEZING
ENDC
-
+
IF _YELLOW
db 37,RATTATA
db 37,RATICATE
@@ -51,6 +51,6 @@
db 35,MUK
db 38,MUK
ENDC
-
+
db $00
--- a/data/wildPokemon/mansion3.asm
+++ b/data/wildPokemon/mansion3.asm
@@ -1,4 +1,4 @@
-MansionMons3:
+MansionMons3:
db $0A
IF _RED
db 31,KOFFING
@@ -12,7 +12,7 @@
db 36,PONYTA
db 42,MUK
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 31,GRIMER
db 33,VULPIX
@@ -25,7 +25,7 @@
db 36,PONYTA
db 42,WEEZING
ENDC
-
+
IF _JAPAN && _BLUE
db 31,GRIMER
db 33,GROWLITHE
@@ -38,7 +38,7 @@
db 36,PONYTA
db 42,WEEZING
ENDC
-
+
IF _YELLOW
db 40,RATTATA
db 40,RATICATE
@@ -51,6 +51,6 @@
db 38,MUK
db 41,MUK
ENDC
-
+
db $00
--- a/data/wildPokemon/mansionb1.asm
+++ b/data/wildPokemon/mansionb1.asm
@@ -1,4 +1,4 @@
-MansionMonsB1:
+MansionMonsB1:
db $0A
IF _RED
db 33,KOFFING
@@ -12,7 +12,7 @@
db 42,WEEZING
db 42,MUK
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 33,GRIMER
db 31,GRIMER
@@ -25,7 +25,7 @@
db 38,MAGMAR
db 42,WEEZING
ENDC
-
+
IF _JAPAN && _BLUE
db 33,GRIMER
db 31,GRIMER
@@ -38,7 +38,7 @@
db 38,MUK
db 42,WEEZING
ENDC
-
+
IF _YELLOW
db 35,GRIMER
db 38,GRIMER
@@ -51,6 +51,6 @@
db 18,DITTO
db 12,DITTO
ENDC
-
+
db $00
--- a/data/wildPokemon/mtmoon1.asm
+++ b/data/wildPokemon/mtmoon1.asm
@@ -1,4 +1,4 @@
-MoonMons1:
+MoonMons1:
db $0A
IF !_YELLOW
db 8,ZUBAT
--- a/data/wildPokemon/mtmoonb1.asm
+++ b/data/wildPokemon/mtmoonb1.asm
@@ -1,4 +1,4 @@
-MoonMonsB1:
+MoonMonsB1:
db $0A
IF !_YELLOW
db 8,ZUBAT
--- a/data/wildPokemon/mtmoonb2.asm
+++ b/data/wildPokemon/mtmoonb2.asm
@@ -1,4 +1,4 @@
-MoonMonsB2:
+MoonMonsB2:
db $0A
IF !_YELLOW
db 9,ZUBAT
--- a/data/wildPokemon/pokemontower1.asm
+++ b/data/wildPokemon/pokemontower1.asm
@@ -1,4 +1,4 @@
-TowerMons1:
+TowerMons1:
db $00
db $00
--- a/data/wildPokemon/pokemontower2.asm
+++ b/data/wildPokemon/pokemontower2.asm
@@ -1,4 +1,4 @@
-TowerMons2:
+TowerMons2:
db $00
db $00
--- a/data/wildPokemon/pokemontower3.asm
+++ b/data/wildPokemon/pokemontower3.asm
@@ -1,6 +1,6 @@
-TowerMons3:
+TowerMons3:
db $0A
-
+
IF !_YELLOW
db 20,GASTLY
db 21,GASTLY
@@ -13,7 +13,7 @@
db 22,CUBONE
db 25,HAUNTER
ENDC
-
+
IF _YELLOW
db 20,GASTLY
db 21,GASTLY
@@ -26,6 +26,6 @@
db 20,HAUNTER
db 25,HAUNTER
ENDC
-
+
db $00
--- a/data/wildPokemon/pokemontower4.asm
+++ b/data/wildPokemon/pokemontower4.asm
@@ -1,6 +1,6 @@
-TowerMons4:
+TowerMons4:
db $0A
-
+
IF !_YELLOW
db 20,GASTLY
db 21,GASTLY
@@ -13,7 +13,7 @@
db 22,CUBONE
db 24,GASTLY
ENDC
-
+
IF _YELLOW
db 20,GASTLY
db 21,GASTLY
@@ -26,6 +26,6 @@
db 20,HAUNTER
db 25,HAUNTER
ENDC
-
+
db $00
--- a/data/wildPokemon/pokemontower5.asm
+++ b/data/wildPokemon/pokemontower5.asm
@@ -1,6 +1,6 @@
-TowerMons5:
+TowerMons5:
db $0A
-
+
IF !_YELLOW
db 20,GASTLY
db 21,GASTLY
@@ -13,7 +13,7 @@
db 22,CUBONE
db 24,GASTLY
ENDC
-
+
IF _YELLOW
db 22,GASTLY
db 23,GASTLY
@@ -26,6 +26,6 @@
db 22,HAUNTER
db 27,HAUNTER
ENDC
-
+
db $00
--- a/data/wildPokemon/pokemontower6.asm
+++ b/data/wildPokemon/pokemontower6.asm
@@ -1,6 +1,6 @@
-TowerMons6:
+TowerMons6:
db $0F
-
+
IF !_YELLOW
db 21,GASTLY
db 22,GASTLY
@@ -13,7 +13,7 @@
db 24,CUBONE
db 28,HAUNTER
ENDC
-
+
IF _YELLOW
db 22,GASTLY
db 23,GASTLY
@@ -26,6 +26,6 @@
db 22,HAUNTER
db 27,HAUNTER
ENDC
-
+
db $00
--- a/data/wildPokemon/pokemontower7.asm
+++ b/data/wildPokemon/pokemontower7.asm
@@ -1,6 +1,6 @@
-TowerMons7:
+TowerMons7:
db $0F
-
+
IF !_YELLOW
db 21,GASTLY
db 22,GASTLY
@@ -14,7 +14,7 @@
db 30,HAUNTER
ENDC
-
+
IF _YELLOW
db 24,GASTLY
db 25,GASTLY
@@ -27,6 +27,6 @@
db 24,HAUNTER
db 29,HAUNTER
ENDC
-
+
db $00
--- a/data/wildPokemon/powerplant.asm
+++ b/data/wildPokemon/powerplant.asm
@@ -1,7 +1,7 @@
-PowerPlantMons:
+PowerPlantMons:
db $0A
IF !_YELLOW
-
+
db 21,VOLTORB
db 21,MAGNEMITE
db 20,PIKACHU
@@ -19,7 +19,7 @@
db 36,RAICHU
ENDC
ENDC
-
+
IF _YELLOW
db 30,MAGNEMITE
db 35,MAGNEMITE
@@ -32,6 +32,6 @@
db 33,MUK
db 37,MUK
ENDC
-
+
db $00
--- a/data/wildPokemon/rocktunnel1.asm
+++ b/data/wildPokemon/rocktunnel1.asm
@@ -1,6 +1,6 @@
-TunnelMonsB1:
+TunnelMonsB1:
db $0F
-
+
IF !_YELLOW
db 16,ZUBAT
db 17,ZUBAT
@@ -18,7 +18,7 @@
db 13,ONIX
db 15,ONIX
ENDC
-
+
IF _YELLOW
db 15,ZUBAT
db 16,GEODUDE
@@ -31,6 +31,6 @@
db 19,MACHOP
db 21,MACHOP
ENDC
-
+
db $00
--- a/data/wildPokemon/rocktunnel2.asm
+++ b/data/wildPokemon/rocktunnel2.asm
@@ -1,4 +1,4 @@
-TunnelMonsB2:
+TunnelMonsB2:
db $0F
IF !_YELLOW
db 16,ZUBAT
@@ -17,7 +17,7 @@
db 13,ONIX
db 18,GEODUDE
ENDC
-
+
IF _YELLOW
db 20,ZUBAT
db 17,GEODUDE
@@ -30,6 +30,6 @@
db 18,ONIX
db 22,ONIX
ENDC
-
+
db $00
--- a/data/wildPokemon/route1.asm
+++ b/data/wildPokemon/route1.asm
@@ -1,4 +1,4 @@
-Route1Mons:
+Route1Mons:
db $19
IF !_YELLOW
db 3,PIDGEY
--- a/data/wildPokemon/route10.asm
+++ b/data/wildPokemon/route10.asm
@@ -1,6 +1,6 @@
-Route10Mons:
+Route10Mons:
db $0F
-
+
IF _RED
db 16,VOLTORB
db 16,SPEAROW
@@ -13,7 +13,7 @@
db 13,EKANS
db 17,EKANS
ENDC
-
+
IF !_RED
db 16,VOLTORB
db 16,SPEAROW
@@ -26,7 +26,7 @@
db 13,SANDSHREW
db 17,SANDSHREW
ENDC
-
+
IF _YELLOW
db 16,MAGNEMITE
db 18,RATTATA
@@ -39,6 +39,6 @@
db 16,MACHOP
db 18,MACHOP
ENDC
-
+
db $00
--- a/data/wildPokemon/route11.asm
+++ b/data/wildPokemon/route11.asm
@@ -1,6 +1,6 @@
-Route11Mons:
+Route11Mons:
db $0F
-
+
IF _RED
db 14,EKANS
db 15,SPEAROW
@@ -13,7 +13,7 @@
db 11,DROWZEE
db 15,DROWZEE
ENDC
-
+
IF _GREEN || _BLUE
db 14,SANDSHREW
db 15,SPEAROW
@@ -26,7 +26,7 @@
db 11,DROWZEE
db 15,DROWZEE
ENDC
-
+
IF _YELLOW
db 16,PIDGEY
db 15,RATTATA
@@ -39,6 +39,6 @@
db 19,DROWZEE
db 17,RATICATE
ENDC
-
+
db $00
--- a/data/wildPokemon/route12.asm
+++ b/data/wildPokemon/route12.asm
@@ -1,6 +1,6 @@
-Route12Mons:
+Route12Mons:
db $0F
-
+
IF _RED || (_JAPAN && _BLUE)
db 24,ODDISH
db 25,PIDGEY
@@ -14,7 +14,7 @@
db 30,GLOOM
db $00
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db 24,BELLSPROUT
db 25,PIDGEY
@@ -28,7 +28,7 @@
db 30,WEEPINBELL
db $00
ENDC
-
+
IF _YELLOW
db 25,ODDISH
db 25,BELLSPROUT
--- a/data/wildPokemon/route13.asm
+++ b/data/wildPokemon/route13.asm
@@ -1,4 +1,4 @@
-Route13Mons:
+Route13Mons:
IF _RED || (_JAPAN && _BLUE)
db $14
db 24,ODDISH
@@ -13,7 +13,7 @@
db 30,GLOOM
db $00
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db $14
db 24,BELLSPROUT
@@ -28,7 +28,7 @@
db 30,WEEPINBELL
db $00
ENDC
-
+
IF _YELLOW
db $0F
db 25,ODDISH
--- a/data/wildPokemon/route14.asm
+++ b/data/wildPokemon/route14.asm
@@ -1,4 +1,4 @@
-Route14Mons:
+Route14Mons:
db $0F
IF _RED || (_JAPAN && _BLUE)
db 24,ODDISH
@@ -12,7 +12,7 @@
db 28,PIDGEOTTO
db 30,PIDGEOTTO
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db 24,BELLSPROUT
db 26,PIDGEY
@@ -25,7 +25,7 @@
db 28,PIDGEOTTO
db 30,PIDGEOTTO
ENDC
-
+
IF _YELLOW
db 26,ODDISH
db 26,BELLSPROUT
@@ -38,6 +38,6 @@
db 27,VENONAT
db 30,VENOMOTH
ENDC
-
+
db $00
--- a/data/wildPokemon/route15.asm
+++ b/data/wildPokemon/route15.asm
@@ -1,4 +1,4 @@
-Route15Mons:
+Route15Mons:
db $0F
IF _RED || (_JAPAN && _BLUE)
db 24,ODDISH
@@ -12,7 +12,7 @@
db 28,PIDGEOTTO
db 30,PIDGEOTTO
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db 24,BELLSPROUT
db 26,DITTO
@@ -25,7 +25,7 @@
db 28,PIDGEOTTO
db 30,PIDGEOTTO
ENDC
-
+
IF _YELLOW
db 26,ODDISH
db 26,BELLSPROUT
@@ -38,6 +38,6 @@
db 27,VENONAT
db 30,VENOMOTH
ENDC
-
+
db $00
--- a/data/wildPokemon/route16.asm
+++ b/data/wildPokemon/route16.asm
@@ -1,4 +1,4 @@
-Route16Mons:
+Route16Mons:
db $19
IF !_YELLOW
db 20,SPEAROW
@@ -12,7 +12,7 @@
db 23,RATICATE
db 25,RATICATE
ENDC
-
+
IF _YELLOW
db 22,SPEAROW
db 22,DODUO
@@ -25,6 +25,6 @@
db 25,RATICATE
db 26,RATICATE
ENDC
-
+
db $00
--- a/data/wildPokemon/route17.asm
+++ b/data/wildPokemon/route17.asm
@@ -1,4 +1,4 @@
-Route17Mons:
+Route17Mons:
db $19
IF !_YELLOW
db 20,SPEAROW
@@ -12,7 +12,7 @@
db 25,FEAROW
db 27,FEAROW
ENDC
-
+
IF _YELLOW
db 26,DODUO
db 27,FEAROW
@@ -25,6 +25,6 @@
db 32,PONYTA
db 29,DODRIO
ENDC
-
+
db $00
--- a/data/wildPokemon/route18.asm
+++ b/data/wildPokemon/route18.asm
@@ -1,4 +1,4 @@
-Route18Mons:
+Route18Mons:
db $19
IF !_YELLOW
db 20,SPEAROW
@@ -12,7 +12,7 @@
db 27,FEAROW
db 29,FEAROW
ENDC
-
+
IF _YELLOW
db 22,SPEAROW
db 22,DODUO
@@ -25,6 +25,6 @@
db 25,RATICATE
db 26,RATICATE
ENDC
-
+
db $00
--- a/data/wildPokemon/route2.asm
+++ b/data/wildPokemon/route2.asm
@@ -1,6 +1,6 @@
-Route2Mons:
+Route2Mons:
db $19
-
+
IF !_YELLOW
db 3,RATTATA
db 3,PIDGEY
--- a/data/wildPokemon/route21.asm
+++ b/data/wildPokemon/route21.asm
@@ -1,4 +1,4 @@
-Route21Mons:
+Route21Mons:
db $19
IF !_YELLOW
db 21,RATTATA
@@ -12,7 +12,7 @@
db 30,TANGELA
db 32,TANGELA
ENDC
-
+
IF _YELLOW
db 15,PIDGEY
db 13,RATTATA
@@ -25,7 +25,7 @@
db 19,PIDGEOTTO
db 15,PIDGEOTTO
ENDC
-
+
db $05
db 5,TENTACOOL
db 10,TENTACOOL
--- a/data/wildPokemon/route22.asm
+++ b/data/wildPokemon/route22.asm
@@ -1,4 +1,4 @@
-Route22Mons:
+Route22Mons:
db $19
IF _RED || (_JAPAN && _BLUE)
db 3,RATTATA
--- a/data/wildPokemon/route23.asm
+++ b/data/wildPokemon/route23.asm
@@ -1,4 +1,4 @@
-Route23Mons:
+Route23Mons:
db $0A
IF !_YELLOW
IF _RED
@@ -22,7 +22,7 @@
db 41,FEAROW
db 43,FEAROW
ENDC
-
+
IF _YELLOW
db 41,NIDORINO
db 41,NIDORINA
@@ -35,6 +35,6 @@
db 41,PRIMEAPE
db 46,PRIMEAPE
ENDC
-
+
db $00
--- a/data/wildPokemon/route24.asm
+++ b/data/wildPokemon/route24.asm
@@ -1,6 +1,6 @@
-Route24Mons:
+Route24Mons:
db $19
-
+
IF _RED
db 7,WEEDLE
db 8,KAKUNA
@@ -13,7 +13,7 @@
db 8,ABRA
db 12,ABRA
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 7,CATERPIE
db 8,METAPOD
@@ -26,7 +26,7 @@
db 8,ABRA
db 12,ABRA
ENDC
-
+
IF _JAPAN && _BLUE
db 7,CATERPIE
db 8,METAPOD
@@ -39,7 +39,7 @@
db 8,ABRA
db 12,ABRA
ENDC
-
+
IF _YELLOW
db 12,ODDISH
db 12,BELLSPROUT
@@ -52,6 +52,6 @@
db 17,PIDGEY
db 17,PIDGEOTTO
ENDC
-
+
db $00
--- a/data/wildPokemon/route25.asm
+++ b/data/wildPokemon/route25.asm
@@ -1,6 +1,6 @@
-Route25Mons:
+Route25Mons:
db $0F
-
+
IF _RED
db 8,WEEDLE
db 9,KAKUNA
@@ -13,7 +13,7 @@
db 7,METAPOD
db 8,CATERPIE
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 8,CATERPIE
db 9,METAPOD
@@ -26,7 +26,7 @@
db 7,KAKUNA
db 8,WEEDLE
ENDC
-
+
IF _JAPAN && _BLUE
db 8,CATERPIE
db 9,METAPOD
@@ -39,7 +39,7 @@
db 7,KAKUNA
db 8,WEEDLE
ENDC
-
+
IF _YELLOW
db 12,ODDISH
db 12,BELLSPROUT
@@ -52,6 +52,6 @@
db 17,PIDGEY
db 17,PIDGEOTTO
ENDC
-
+
db $00
--- a/data/wildPokemon/route3.asm
+++ b/data/wildPokemon/route3.asm
@@ -1,4 +1,4 @@
-Route3Mons:
+Route3Mons:
db $14
IF !_YELLOW
db 6,PIDGEY
--- a/data/wildPokemon/route4.asm
+++ b/data/wildPokemon/route4.asm
@@ -1,6 +1,6 @@
-Route4Mons:
+Route4Mons:
db $14
-
+
IF _RED
db 10,RATTATA
db 10,SPEAROW
@@ -13,7 +13,7 @@
db 8,EKANS
db 12,EKANS
ENDC
-
+
IF !_RED
db 10,RATTATA
db 10,SPEAROW
@@ -26,7 +26,7 @@
db 8,SANDSHREW
db 12,SANDSHREW
ENDC
-
+
IF _YELLOW
db 8,SPEAROW
db 9,SPEAROW
--- a/data/wildPokemon/route5.asm
+++ b/data/wildPokemon/route5.asm
@@ -1,6 +1,6 @@
-Route5Mons:
+Route5Mons:
db $0F
-
+
IF _RED
db 13,ODDISH
db 13,PIDGEY
@@ -13,7 +13,7 @@
db 14,MANKEY
db 16,MANKEY
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 13,BELLSPROUT
db 13,PIDGEY
@@ -26,7 +26,7 @@
db 14,MEOWTH
db 16,MEOWTH
ENDC
-
+
IF _JAPAN && _BLUE
db 13,ODDISH
db 13,PIDGEY
@@ -39,7 +39,7 @@
db 14,MEOWTH
db 16,MEOWTH
ENDC
-
+
IF _YELLOW
db 15,PIDGEY
db 14,RATTATA
@@ -52,6 +52,6 @@
db 5,JIGGLYPUFF
db 7,JIGGLYPUFF
ENDC
-
+
db $00
--- a/data/wildPokemon/route6.asm
+++ b/data/wildPokemon/route6.asm
@@ -1,6 +1,6 @@
-Route6Mons:
+Route6Mons:
db $0F
-
+
IF _RED
db 13,ODDISH
db 13,PIDGEY
@@ -14,7 +14,7 @@
db 16,MANKEY
db $00
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 13,BELLSPROUT
db 13,PIDGEY
@@ -28,7 +28,7 @@
db 16,MEOWTH
db $00
ENDC
-
+
IF _JAPAN && _BLUE
db 13,ODDISH
db 13,PIDGEY
@@ -42,7 +42,7 @@
db 16,MEOWTH
db $00
ENDC
-
+
IF _YELLOW
db 15,PIDGEY
db 14,RATTATA
--- a/data/wildPokemon/route7.asm
+++ b/data/wildPokemon/route7.asm
@@ -1,6 +1,6 @@
-Route7Mons:
+Route7Mons:
db $0F
-
+
IF _RED
db 19,PIDGEY
db 19,ODDISH
@@ -13,7 +13,7 @@
db 19,MANKEY
db 20,MANKEY
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 19,PIDGEY
db 19,BELLSPROUT
@@ -26,7 +26,7 @@
db 19,MEOWTH
db 20,MEOWTH
ENDC
-
+
IF _JAPAN && _BLUE
db 19,PIDGEY
db 19,ODDISH
@@ -39,7 +39,7 @@
db 19,MEOWTH
db 20,MEOWTH
ENDC
-
+
IF _YELLOW
db 20,PIDGEY
db 22,PIDGEY
@@ -52,6 +52,6 @@
db 24,JIGGLYPUFF
db 24,JIGGLYPUFF
ENDC
-
+
db $00
--- a/data/wildPokemon/route8.asm
+++ b/data/wildPokemon/route8.asm
@@ -1,6 +1,6 @@
-Route8Mons:
+Route8Mons:
db $0F
-
+
IF _RED
db 18,PIDGEY
db 18,MANKEY
@@ -13,7 +13,7 @@
db 15,GROWLITHE
db 18,GROWLITHE
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 18,PIDGEY
db 18,MEOWTH
@@ -26,7 +26,7 @@
db 15,VULPIX
db 18,VULPIX
ENDC
-
+
IF _JAPAN && _BLUE
db 18,PIDGEY
db 18,MEOWTH
@@ -39,7 +39,7 @@
db 15,GROWLITHE
db 18,GROWLITHE
ENDC
-
+
IF _YELLOW
db 20,PIDGEY
db 22,PIDGEY
@@ -52,6 +52,6 @@
db 20,KADABRA
db 27,KADABRA
ENDC
-
+
db $00
--- a/data/wildPokemon/route9.asm
+++ b/data/wildPokemon/route9.asm
@@ -1,6 +1,6 @@
-Route9Mons:
+Route9Mons:
db $0F
-
+
IF _RED
db 16,RATTATA
db 16,SPEAROW
@@ -13,7 +13,7 @@
db 13,EKANS
db 17,EKANS
ENDC
-
+
IF !_RED && !_YELLOW
db 16,RATTATA
db 16,SPEAROW
@@ -26,7 +26,7 @@
db 13,SANDSHREW
db 17,SANDSHREW
ENDC
-
+
IF _YELLOW
db 16,NIDORAN_M
db 16,NIDORAN_F
@@ -39,6 +39,6 @@
db 20,RATICATE
db 19,FEAROW
ENDC
-
+
db $00
--- a/data/wildPokemon/safarizone1.asm
+++ b/data/wildPokemon/safarizone1.asm
@@ -1,4 +1,4 @@
-ZoneMons1:
+ZoneMons1:
db $1E
IF _RED || (_JAPAN && _BLUE)
db 24,NIDORAN_M
@@ -17,7 +17,7 @@
ENDC
db 28,SCYTHER
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db 24,NIDORAN_F
db 26,DODUO
@@ -30,7 +30,7 @@
db 25,KANGASKHAN
db 28,PINSIR
ENDC
-
+
IF _YELLOW
db 21,NIDORAN_M
db 29,NIDORAN_F
@@ -43,6 +43,6 @@
db 21,CHANSEY
db 15,SCYTHER
ENDC
-
+
db $00
--- a/data/wildPokemon/safarizone2.asm
+++ b/data/wildPokemon/safarizone2.asm
@@ -1,4 +1,4 @@
-ZoneMons2:
+ZoneMons2:
db $1E
IF !_YELLOW
IF _RED || (_JAPAN && _BLUE)
@@ -32,7 +32,7 @@
db 28,PINSIR
ENDC
ENDC
-
+
IF _YELLOW
db 36,NIDORAN_M
db 14,NIDORAN_F
@@ -45,6 +45,6 @@
db 25,SCYTHER
db 15,PINSIR
ENDC
-
+
db $00
--- a/data/wildPokemon/safarizone3.asm
+++ b/data/wildPokemon/safarizone3.asm
@@ -1,4 +1,4 @@
-ZoneMons3:
+ZoneMons3:
db $1E
IF _RED
db 25,NIDORAN_M
@@ -12,7 +12,7 @@
db 26,TAUROS
db 28,KANGASKHAN
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db 25,NIDORAN_F
db 26,DODUO
@@ -25,7 +25,7 @@
db 26,TAUROS
db 28,KANGASKHAN
ENDC
-
+
IF _JAPAN && _BLUE
db 25,NIDORAN_M
db 26,DODUO
@@ -38,7 +38,7 @@
db 26,PINSIR
db 28,LICKITUNG
ENDC
-
+
IF _YELLOW
db 29,NIDORAN_M
db 21,NIDORAN_F
@@ -51,6 +51,6 @@
db 25,PINSIR
db 27,TANGELA
ENDC
-
+
db $00
--- a/data/wildPokemon/safarizonecenter.asm
+++ b/data/wildPokemon/safarizonecenter.asm
@@ -1,4 +1,4 @@
-ZoneMonsCenter:
+ZoneMonsCenter:
db $1E
IF _RED
db 22,NIDORAN_M
@@ -12,7 +12,7 @@
db 23,SCYTHER
db 23,CHANSEY
ENDC
-
+
IF _GREEN || (!_JAPAN && _BLUE)
db 22,NIDORAN_F
db 25,RHYHORN
@@ -25,7 +25,7 @@
db 23,PINSIR
db 23,CHANSEY
ENDC
-
+
IF _JAPAN && _BLUE
db 22,NIDORAN_M
db 25,RHYHORN
@@ -38,7 +38,7 @@
db 23,SCYTHER
db 23,CHANSEY
ENDC
-
+
IF _YELLOW
db 14,NIDORAN_M
db 36,NIDORAN_F
@@ -51,6 +51,6 @@
db 22,TANGELA
db 7,CHANSEY
ENDC
-
+
db $00
--- a/data/wildPokemon/seafoamisland1.asm
+++ b/data/wildPokemon/seafoamisland1.asm
@@ -1,4 +1,4 @@
-IslandMons1:
+IslandMons1:
db $0F
IF _RED
db 30,SEEL
@@ -12,7 +12,7 @@
db 28,SHELLDER
db 38,GOLDUCK
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 30,SEEL
db 30,PSYDUCK
@@ -25,7 +25,7 @@
db 28,STARYU
db 38,SLOWBRO
ENDC
-
+
IF _JAPAN && _BLUE
db 30,SEEL
db 30,HORSEA
@@ -38,7 +38,7 @@
db 28,STARYU
db 38,SLOWBRO
ENDC
-
+
IF _YELLOW
db 18,ZUBAT
db 25,KRABBY
@@ -51,6 +51,6 @@
db 27,GOLBAT
db 36,GOLBAT
ENDC
-
+
db $00
--- a/data/wildPokemon/seafoamislandb1.asm
+++ b/data/wildPokemon/seafoamislandb1.asm
@@ -1,4 +1,4 @@
-IslandMonsB1:
+IslandMonsB1:
db $0A
IF _RED
db 30,STARYU
@@ -12,7 +12,7 @@
db 38,DEWGONG
db 37,SEADRA
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 30,SHELLDER
db 30,KRABBY
@@ -25,7 +25,7 @@
db 38,DEWGONG
db 37,KINGLER
ENDC
-
+
IF _JAPAN && _BLUE
db 30,SHELLDER
db 30,KRABBY
@@ -38,7 +38,7 @@
db 38,DEWGONG
db 37,KINGLER
ENDC
-
+
IF _YELLOW
db 27,ZUBAT
db 26,KRABBY
@@ -51,6 +51,6 @@
db 22,SEEL
db 26,SEEL
ENDC
-
+
db $00
--- a/data/wildPokemon/seafoamislandb2.asm
+++ b/data/wildPokemon/seafoamislandb2.asm
@@ -1,4 +1,4 @@
-IslandMonsB2:
+IslandMonsB2:
db $0A
IF _RED
db 30,SEEL
@@ -12,7 +12,7 @@
db 30,GOLBAT
db 37,SLOWBRO
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 30,SEEL
db 30,PSYDUCK
@@ -25,7 +25,7 @@
db 30,GOLBAT
db 37,GOLDUCK
ENDC
-
+
IF _JAPAN && _BLUE
db 30,SEEL
db 30,HORSEA
@@ -38,7 +38,7 @@
db 30,GOLBAT
db 37,JYNX
ENDC
-
+
IF _YELLOW
db 27,ZUBAT
db 27,KRABBY
@@ -51,6 +51,6 @@
db 31,SLOWPOKE
db 31,SLOWBRO
ENDC
-
+
db $00
--- a/data/wildPokemon/seafoamislandb3.asm
+++ b/data/wildPokemon/seafoamislandb3.asm
@@ -1,4 +1,4 @@
-IslandMonsB3:
+IslandMonsB3:
db $0A
IF _RED
db 31,SLOWPOKE
@@ -12,7 +12,7 @@
db 39,SEADRA
db 37,DEWGONG
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 31,PSYDUCK
db 31,SEEL
@@ -25,7 +25,7 @@
db 39,KINGLER
db 37,DEWGONG
ENDC
-
+
IF _JAPAN && _BLUE
db 31,HORSEA
db 31,SEEL
@@ -38,7 +38,7 @@
db 39,KINGLER
db 37,DEWGONG
ENDC
-
+
IF _YELLOW
db 27,GOLBAT
db 36,ZUBAT
@@ -63,6 +63,6 @@
db 30,STARYU
db 30,STARYU
ENDC
-
+
db $00
--- a/data/wildPokemon/seafoamislandb4.asm
+++ b/data/wildPokemon/seafoamislandb4.asm
@@ -1,4 +1,4 @@
-IslandMonsB4:
+IslandMonsB4:
db $0A
IF _RED
db 31,HORSEA
@@ -12,7 +12,7 @@
db 39,SLOWBRO
db 32,GOLBAT
ENDC
-
+
IF _GREEN || !_JAPAN && _BLUE
db 31,KRABBY
db 31,STARYU
@@ -25,7 +25,7 @@
db 39,GOLDUCK
db 32,GOLBAT
ENDC
-
+
IF _JAPAN && _BLUE
db 31,KRABBY
db 31,STARYU
@@ -38,7 +38,7 @@
db 39,JYNX
db 32,GOLBAT
ENDC
-
+
IF _YELLOW
db 36,GOLBAT
db 36,ZUBAT
@@ -63,6 +63,6 @@
db 30,STARYU
db 30,STARYU
ENDC
-
+
db $00
--- a/data/wildPokemon/unknowndungeon1.asm
+++ b/data/wildPokemon/unknowndungeon1.asm
@@ -1,4 +1,4 @@
-DungeonMons1:
+DungeonMons1:
db $0A
IF !_YELLOW
db 46,GOLBAT
@@ -22,7 +22,7 @@
db 53,RAICHU
db 53,DITTO
ENDC
-
+
IF _YELLOW
db 50,GOLBAT
db 55,GOLBAT
@@ -35,6 +35,6 @@
db 55,DITTO
db 60,DITTO
ENDC
-
+
db $00
--- a/data/wildPokemon/unknowndungeon2.asm
+++ b/data/wildPokemon/unknowndungeon2.asm
@@ -1,4 +1,4 @@
-DungeonMons2:
+DungeonMons2:
db $0F
IF !_YELLOW
db 51,DODRIO
@@ -17,7 +17,7 @@
db 55,DITTO
db 60,DITTO
ENDC
-
+
IF _YELLOW
db 52,GOLBAT
db 57,GOLBAT
@@ -30,6 +30,6 @@
db 60,RHYDON
db 58,RHYDON
ENDC
-
+
db $00
--- a/data/wildPokemon/unknowndungeonb1.asm
+++ b/data/wildPokemon/unknowndungeonb1.asm
@@ -1,4 +1,4 @@
-DungeonMonsB1:
+DungeonMonsB1:
db $19
IF !_YELLOW
db 55,RHYDON
@@ -17,7 +17,7 @@
db 63,DITTO
db 67,DITTO
ENDC
-
+
IF _YELLOW
db 54,GOLBAT
db 59,GOLBAT
@@ -30,6 +30,6 @@
db 55,LICKITUNG
db 50,LICKITUNG
ENDC
-
+
db $00
--- a/data/wildPokemon/victoryroad1.asm
+++ b/data/wildPokemon/victoryroad1.asm
@@ -1,4 +1,4 @@
-PlateauMons1:
+PlateauMons1:
db $0F
IF !_YELLOW
db 24,MACHOP
@@ -25,6 +25,6 @@
db 41,GRAVELER
db 47,GRAVELER
ENDC
-
+
db $00
--- a/data/wildPokemon/victoryroad2.asm
+++ b/data/wildPokemon/victoryroad2.asm
@@ -1,4 +1,4 @@
-PlateauMons2:
+PlateauMons2:
db $0A
IF !_YELLOW
db 22,MACHOP
@@ -12,7 +12,7 @@
db 40,MAROWAK
db 43,GRAVELER
ENDC
-
+
IF _YELLOW
db 31,GEODUDE
db 36,GEODUDE
@@ -25,6 +25,6 @@
db 39,MACHOKE
db 42,MACHOKE
ENDC
-
+
db $00
--- a/data/wildPokemon/victoryroad3.asm
+++ b/data/wildPokemon/victoryroad3.asm
@@ -1,4 +1,4 @@
-PlateauMons3:
+PlateauMons3:
db $0F
IF !_YELLOW
db 24,MACHOP
@@ -12,7 +12,7 @@
db 42,MACHOKE
db 45,MACHOKE
ENDC
-
+
IF _YELLOW
db 36,GEODUDE
db 44,GOLBAT
@@ -25,6 +25,6 @@
db 47,GRAVELER
db 47,GRAVELER
ENDC
-
+
db $00
--- a/data/wildPokemon/viridianforest.asm
+++ b/data/wildPokemon/viridianforest.asm
@@ -1,4 +1,4 @@
-ForestMons: ;
+ForestMons:
IF !_YELLOW
db $08
IF _RED
@@ -21,11 +21,11 @@
db 4,KAKUNA
db 3,WEEDLE
ENDC
-
+
db 3,PIKACHU
db 5,PIKACHU
ENDC
-
+
IF _YELLOW
db $19
db 3,CATERPIE
--- a/data/wildPokemon/waterpokemon.asm
+++ b/data/wildPokemon/waterpokemon.asm
@@ -1,4 +1,4 @@
-WaterMons: ;
+WaterMons:
db $00
db $05
--- a/engine/HoF_room_pc.asm
+++ b/engine/HoF_room_pc.asm
@@ -1,23 +1,22 @@
-HallOfFameComputer: ; 7405c (1d:405c)
+HallOfFamePC: ; 7405c (1d:405c)
callba AnimateHallOfFame
call ClearScreen
ld c, $64
call DelayFrames
call DisableLCD
- ld hl, $8800
- ld bc, $400
+ ld hl, vFont
+ ld bc, $800 / 2
call Func_74171
- ld hl, $9600
- ld bc, $100
+ ld hl, vChars2 + $600
+ ld bc, $200 / 2
call Func_74171
- ld hl, $97e0
+ ld hl, vChars2 + $7e0
ld bc, $10
ld a, $ff
call FillMemory
ld hl, wTileMap
call Func_7417b
- FuncCoord 0, 14 ; $c4b8
- ld hl, Coord
+ hlCoord 0, 14
call Func_7417b
ld a, $c0
ld [rBGP], a ; $ff47
@@ -30,8 +29,8 @@
ld c, $80
call DelayFrames
xor a
- ld [wWhichTrade], a ; $cd3d
- ld [$cd3e], a
+ ld [wWhichTrade], a ; wWhichTrade
+ ld [wTrainerEngageDistance], a
jp Credits
Func_740ba: ; 740ba (1d:40ba)
@@ -53,7 +52,7 @@
call FillMiddleOfScreenWithWhite
; display the next monster from CreditsMons
- ld hl,$CD3E
+ ld hl,wTrainerEngageDistance
ld c,[hl] ; how many monsters have we displayed so far?
inc [hl]
ld b,0
@@ -60,22 +59,21 @@
ld hl,CreditsMons
add hl,bc ; go that far in the list of monsters and get the next one
ld a,[hl]
- ld [$CF91],a
- ld [$D0B5],a
- FuncCoord 8, 6 ; $c420
- ld hl,Coord
+ ld [wcf91],a
+ ld [wd0b5],a
+ hlCoord 8, 6
call GetMonHeader
call LoadFrontSpriteByMonIndex
- ld hl,$980C
+ ld hl,vBGMap0 + $c
call Func_74164
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call LoadScreenTilesFromBuffer1
- ld hl,$9800
+ ld hl,vBGMap0
call Func_74164
ld a,$A7
ld [$FF4B],a
- ld hl,$9C00
+ ld hl,vBGMap1
call Func_74164
call FillMiddleOfScreenWithWhite
ld a,$FC
@@ -153,8 +151,7 @@
jp FillMemory
FillMiddleOfScreenWithWhite: ; 74183 (1d:4183)
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld bc, $c8 ; 10 rows of 20 tiles each
ld a, $7f ; blank white tile
jp FillMemory
@@ -164,8 +161,7 @@
push de
.asm_74192
pop de
- FuncCoord 9, 6 ; $c421
- ld hl, Coord
+ hlCoord 9, 6
push hl
call FillMiddleOfScreenWithWhite
pop hl
@@ -238,20 +234,19 @@
call FillMiddleOfScreenWithWhite
pop de
ld de, TheEndGfx
- ld hl, $9600
+ ld hl, vChars2 + $600
ld bc, (BANK(TheEndGfx) << 8) + $0a
call CopyVideoData
- FuncCoord 4, 8 ; $c444
- ld hl, Coord
- ld de, UnnamedText_74229 ; $4229
+ hlCoord 4, 8
+ ld de, TheEndTextString
call PlaceString
- FuncCoord 4, 9 ; $c458
- ld hl, Coord
+ hlCoord 4, 9
inc de
call PlaceString
jp Func_740ba
-UnnamedText_74229: ; 74229 (1d:4229)
+TheEndTextString: ; 74229 (1d:4229)
+; "T H E E N D"
db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@"
db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@"
@@ -260,4 +255,4 @@
INCLUDE "text/credits_text.asm"
TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue)
- INCBIN "gfx/theend.w40.interleave.2bpp"
+ INCBIN "gfx/theend.interleave.2bpp"
--- a/engine/battle/1.asm
+++ b/engine/battle/1.asm
@@ -1,5 +1,5 @@
DrainHPEffect_: ; 783f (1:783f)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hl]
srl a ; divide damage by 2
ld [hli], a
@@ -11,13 +11,13 @@
inc hl
inc [hl]
.asm_784f
- ld hl, W_PLAYERMONCURHP ; $d015
- ld de, W_PLAYERMONMAXHP ; $d023
+ ld hl, wBattleMonHP ; wd015
+ ld de, wBattleMonMaxHP ; wd023
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, Func_7861
- ld hl, W_ENEMYMONCURHP ; $cfe6
- ld de, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonHP ; wEnemyMonHP
+ ld de, wEnemyMonMaxHP ; wEnemyMonMaxHP
Func_7861: ; 7861 (1:7861)
ld bc, wHPBarOldHP+1
@@ -33,12 +33,12 @@
ld a, [de]
dec bc
ld [bc], a
- ld a, [$d0d8]
+ ld a, [wd0d8]
ld b, [hl]
add b
ld [hld], a
ld [wHPBarNewHP], a
- ld a, [W_DAMAGE] ; $d0d7
+ ld a, [W_DAMAGE] ; W_DAMAGE
ld b, [hl]
adc b
ld [hli], a
@@ -67,28 +67,23 @@
.asm_789c
ld a, [H_WHOSETURN] ; $fff3
and a
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
+ hlCoord 10, 9
ld a, $1
jr z, .asm_78aa
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
xor a
.asm_78aa
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
- ld a, $0
- call Predef ; indirect jump to Func_3cd60 (3cd60 (f:4d60))
- ld a, $49
- call Predef ; indirect jump to Func_3cdec (3cdec (f:4dec))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
+ predef Func_3cd60
+ predef Func_3cdec
callab ReadPlayerMonCurHPAndStatus
ld hl, SuckedHealthText ; $78dc
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_78d2
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_78d2
cp DREAM_EATER_EFFECT
jr nz, .asm_78d9
--- a/engine/battle/14.asm
+++ b/engine/battle/14.asm
@@ -1,25 +1,25 @@
Func_525af: ; 525af (14:65af)
ld a, [$ffd7]
- ld [$d0d4], a
+ ld [wd0d4], a
xor a
- ld [$cd6a], a
- ld [$cf0b], a
- ld hl, $cc2b
+ ld [wcd6a], a
+ ld [wcf0b], a
+ ld hl, wcc2b
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [wListScrollOffset], a ; $cc36
- ld [$d05e], a
- ld [W_PLAYERMONID], a
- ld [W_PLAYERMONSALIVEFLAGS], a
- ld [wPlayerMonNumber], a ; $cc2f
- ld [$d078], a
- ld [$d35d], a
- ld hl, $cf1d
+ ld [wListScrollOffset], a ; wcc36
+ ld [wd05e], a
+ ld [wBattleMonSpecies], a
+ ld [wPartyAliveFlags], a
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wd078], a
+ ld [wd35d], a
+ ld hl, wcf1d
ld [hli], a
ld [hl], a
- ld hl, $ccd3
+ ld hl, wccd3
ld b, $3c
.asm_525e1
ld [hli], a
@@ -26,14 +26,14 @@
dec b
jr nz, .asm_525e1
inc a
- ld [$ccd9], a
- ld a, [W_CURMAP] ; $d35e
+ ld [wccd9], a
+ ld a, [W_CURMAP] ; W_CURMAP
cp SAFARI_ZONE_EAST
jr c, .asm_525f9
cp SAFARI_ZONE_REST_HOUSE_1
jr nc, .asm_525f9
ld a, $2
- ld [W_BATTLETYPE], a ; $d05a
+ ld [W_BATTLETYPE], a ; wd05a
.asm_525f9
ld hl, PlayBattleMusic
ld b, BANK(PlayBattleMusic)
@@ -40,13 +40,13 @@
jp Bankswitch
ParalyzeEffect_: ; 52601 (14:6601)
- ld hl, W_ENEMYMONSTATUS ; $cfe9
- ld de, W_PLAYERMOVETYPE ; $cfd5
+ ld hl, wEnemyMonStatus ; wcfe9
+ ld de, W_PLAYERMOVETYPE ; wcfd5
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, .asm_52613
- ld hl, W_PLAYERMONSTATUS ; $d018
- ld de, W_ENEMYMOVETYPE ; $cfcf
+ ld hl, wBattleMonStatus ; wBattleMonStatus
+ ld de, W_ENEMYMOVETYPE ; wcfcf
.asm_52613
ld a, [hl]
@@ -69,7 +69,7 @@
push hl
callab MoveHitTest
pop hl
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_52659
set 6, [hl]
--- a/engine/battle/15.asm
+++ b/engine/battle/15.asm
@@ -1,11 +1,11 @@
GainExperience: ; 5524f (15:524f)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE]
cp $4
ret z
call Func_5546c
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMons
xor a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a
Func_5525f: ; 5525f (15:525f)
inc hl
@@ -13,12 +13,11 @@
or [hl]
jp z, Func_55436
push hl
- ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wPartyAliveFlags
+ ld a, [wWhichPokemon]
ld c, a
ld b, $2
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
ld a, c
and a
pop hl
@@ -27,7 +26,7 @@
add hl, de
ld d, h
ld e, l
- ld hl, $d002
+ ld hl, wd002
ld c, $5
.asm_55285
ld a, [hli]
@@ -56,26 +55,26 @@
jr .asm_55285
.asm_552a1
xor a
- ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld [$ff97], a
- ld a, [$d008]
- ld [$ff98], a
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+ ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND + 1], a
+ ld a, [wd008]
+ ld [H_MULTIPLICAND + 2], a
+ ld a, [wEnemyMonLevel]
+ ld [H_MULTIPLIER], a
call Multiply
- ld a, $7
- ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
- ld b, $4
+ ld a, 7
+ ld [H_DIVISOR], a
+ ld b, 4
call Divide
ld hl, $fff2
add hl, de
ld b, [hl]
inc hl
- ld a, [wPlayerID] ; $d359
+ ld a, [wPlayerID]
cp b
jr nz, .asm_552d1
ld b, [hl]
- ld a, [wPlayerID + 1] ; $d35a
+ ld a, [wPlayerID + 1]
cp b
ld a, $0
jr z, .asm_552d6
@@ -83,8 +82,8 @@
call Func_5549f
ld a, $1
.asm_552d6
- ld [$cf4d], a
- ld a, [W_ISINBATTLE] ; $d057
+ ld [wcf4d], a
+ ld a, [W_ISINBATTLE]
dec a
call nz, Func_5549f
inc hl
@@ -92,12 +91,12 @@
inc hl
ld b, [hl]
ld a, [$ff98]
- ld [$cf4c], a
+ ld [wcf4c], a
add b
ld [hld], a
ld b, [hl]
ld a, [$ff97]
- ld [$cf4b], a
+ ld [wcf4b], a
adc b
ld [hl], a
jr nc, .asm_552f8
@@ -107,17 +106,17 @@
.asm_552f8
inc hl
push hl
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon]
ld c, a
- ld b, $0
- ld hl, W_PARTYMON1 ; $d164
+ ld b, 0
+ ld hl, wPartySpecies
add hl, bc
ld a, [hl]
- ld [$d0b5], a
+ ld [wd0b5], a
call GetMonHeader
- ld d, $64
+ ld d, MAX_LEVEL
callab CalcExperience
- ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND)
+ ld a, [$ff96]
ld b, a
ld a, [$ff97]
ld c, a
@@ -140,13 +139,13 @@
dec hl
.asm_5532e
push hl
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wWhichPokemon]
+ ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, GainedText
call PrintText
xor a
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
pop hl
ld bc, $13
@@ -157,17 +156,17 @@
ld a, [hl]
cp d
jp z, Func_55436
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL]
push af
push hl
ld a, d
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a
ld [hl], a
ld bc, $ffdf
add hl, bc
ld a, [hl]
- ld [$d0b5], a
- ld [$d11e], a
+ ld [wd0b5], a
+ ld [wd11e], a
call GetMonHeader
ld bc, $23
add hl, bc
@@ -198,12 +197,12 @@
ld a, [hl]
adc b
ld [hl], a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber]
ld b, a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon]
cp b
jr nz, .asm_553f7
- ld de, W_PLAYERMONCURHP ; $d015
+ ld de, wBattleMonHP
ld a, [hli]
ld [de], a
inc de
@@ -212,19 +211,19 @@
ld bc, $1f
add hl, bc
push hl
- ld de, W_PLAYERMONLEVEL ; $d022
+ ld de, wBattleMonLevel ; wBattleMonLevel
ld bc, $b
call CopyData
pop hl
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 3, a
jr nz, .asm_553c8
- ld de, $cd0f
+ ld de, wcd0f
ld bc, $b
call CopyData
.asm_553c8
xor a
- ld [$d11e], a
+ ld [wd11e], a
callab Func_3ed99
callab Func_3ed1a
callab Func_3ee19
@@ -235,7 +234,7 @@
ld hl, GrewLevelText
call PrintText
xor a
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
ld d, $1
callab PrintStatsBox
@@ -242,52 +241,48 @@
call WaitForTextScrollButtonPress
call LoadScreenTilesFromBuffer1
xor a
- ld [$cc49], a
- ld a, [$d0b5]
- ld [$d11e], a
- ld a, $1a
- call Predef ; indirect jump to Func_3af5b (3af5b (e:6f5b))
- ld hl, $ccd3
- ld a, [wWhichPokemon] ; $cf92
+ ld [wcc49], a
+ ld a, [wd0b5]
+ ld [wd11e], a
+ predef Func_3af5b
+ ld hl, wccd3
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $1
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
pop hl
pop af
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
Func_55436: ; 55436 (15:5436)
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
ld b, a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
inc a
cp b
jr z, .asm_55450
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
ld bc, $2c
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
call AddNTimes
jp Func_5525f
.asm_55450
- ld hl, W_PLAYERMONSALIVEFLAGS
+ ld hl, wPartyAliveFlags
xor a
ld [hl], a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld c, a
ld b, $1
push bc
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, $ccf5
+ predef FlagActionPredef
+ ld hl, wccf5
xor a
ld [hl], a
pop bc
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
Func_5546c: ; 5546c (15:546c)
- ld a, [W_PLAYERMONSALIVEFLAGS]
+ ld a, [wPartyAliveFlags]
ld b, a
xor a
ld c, $8
@@ -301,8 +296,8 @@
jr nz, .asm_55475
cp $2
ret c
- ld [$d11e], a
- ld hl, $d002
+ ld [wd11e], a
+ ld hl, wd002
ld c, $7
.asm_55488
xor a
@@ -309,7 +304,7 @@
ld [H_DIVIDEND], a ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
ld a, [hl]
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld a, [$d11e]
+ ld a, [wd11e]
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
ld b, $2
call Divide
@@ -336,12 +331,12 @@
GainedText: ; 554b2 (15:54b2)
TX_FAR _GainedText
db $08 ; asm
- ld a, [$cc5b]
+ ld a, [wcc5b]
ld hl, WithExpAllText
and a
ret nz
ld hl, ExpPointsText
- ld a, [$cf4d]
+ ld a, [wcf4d]
and a
ret z
ld hl, BoostedText
--- a/engine/battle/16.asm
+++ b/engine/battle/16.asm
@@ -1,17 +1,17 @@
PrintBeginningBattleText: ; 58d99 (16:4d99)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .trainerBattle
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp POKEMONTOWER_3
jr c, .notPokemonTower
cp LAVENDER_HOUSE_1
jr c, .pokemonTower
.notPokemonTower
- ld a, [W_ENEMYMONID]
+ ld a, [wEnemyMonSpecies2]
call PlayCry
ld hl, WildMonAppearedText
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr z, .notFishing
ld hl, HookedMonAttackedText
@@ -31,8 +31,8 @@
.pokemonTower
ld b, SILPH_SCOPE
call IsItemInBag
- ld a, [W_ENEMYMONID]
- ld [$cf91], a
+ ld a, [wEnemyMonSpecies2]
+ ld [wcf91], a
cp MAROWAK
jr z, .isMarowak
ld a, b
@@ -61,9 +61,9 @@
.playSFX
xor a
- ld [$c0f1], a
+ ld [wc0f1], a
ld a, $80
- ld [$c0f2], a
+ ld [wc0f2], a
ld a, (SFX_08_77 - SFX_Headers_08) / 3
call PlaySound
jp WaitForSoundToFinish
@@ -95,7 +95,7 @@
db "@"
SendOutMon: ; 58e59 (16:4e59)
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
ld hl, GoText
@@ -102,17 +102,17 @@
jr z, .printText
xor a
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
- ld [$cce3], a
+ ld [wcce3], a
ld [$ff97], a
ld a, [hl]
- ld [$cce4], a
+ ld [wcce4], a
ld [$ff98], a
ld a, $19
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
call Multiply
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld a, [hli]
ld b, [hl]
srl a
@@ -173,8 +173,8 @@
db $08 ; asm
push de
push bc
- ld hl, $cfe7
- ld de, $cce4
+ ld hl, wEnemyMonHP + 1
+ ld de, wcce4
ld b, [hl]
dec hl
ld a, [de]
@@ -188,7 +188,7 @@
ld a, $19
ld [H_POWEROFTEN], a
call Multiply
- ld hl, W_ENEMYMONMAXHP
+ ld hl, wEnemyMonMaxHP
ld a, [hli]
ld b, [hl]
srl a
--- a/engine/battle/1a.asm
+++ b/engine/battle/1a.asm
@@ -11,10 +11,10 @@
ret nz ; if any of these statuses are true, don't decrement PP
bit 6, [hl] ; check 6th bit status flag on W_PLAYERBATTSTATUS2
ret nz ; and return if it is set
- ld hl, $D02D ; PP of first move (in battle)
+ ld hl, wBattleMonPP ; PP of first move (in battle)
call .DecrementPP
- ld a, [$D064] ; load pokemon status bits?
+ ld a, [W_PLAYERBATTSTATUS3] ; load pokemon status bits?
bit 3, a ; XXX transform status?
ret nz ; If it is, return. Pokemon Red stores the "current pokemon's" PP
; separately from the "Pokemon in your party's" PP. This is
@@ -26,12 +26,12 @@
; its opponent, which is *not* the same as its real PP as part of your
; party. So we return, and don't do that part.
- ld hl, $D188 ; PP of first move (in party)
- ld a, [$CC2F] ; which mon in party is active
+ ld hl, wPartyMon1PP ; PP of first move (in party)
+ ld a, [wPlayerMonNumber] ; which mon in party is active
ld bc, $2C ; XXX probably size of party pokemon's data structure
call AddNTimes ; calculate address of the mon to modify
.DecrementPP
- ld a, [$CC2E] ; which move (0, 1, 2, 3) did we use?
+ ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use?
ld c, a
ld b, 0
add hl ,bc ; calculate the address in memory of the PP we need to decrement
--- a/engine/battle/1c.asm
+++ b/engine/battle/1c.asm
@@ -2,8 +2,7 @@
ld a, $e4
ld [rOBP1], a ; $ff49
call Func_7092a
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
+ hlCoord 12, 0
ld bc, $707
call ClearScreenArea
call Delay3
@@ -10,7 +9,7 @@
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $91
- ld [$cee9], a
+ ld [wHPBarMaxHP], a
ld a, $1
ld [H_WHOSETURN], a ; $fff3
callab Func_79793
@@ -24,7 +23,7 @@
sla a
ld [rOBP1], a ; $ff49
jr nz, .asm_708f6
- call CleanLCD_OAM
+ call ClearSprites
call Func_7092a
ld b, $e4
.asm_7090d
@@ -42,23 +41,23 @@
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call Delay3
- jp CleanLCD_OAM
+ jp ClearSprites
Func_7092a: ; 7092a (1c:492a)
- ld de, $9000
- ld hl, $8000
- ld bc, $31
+ ld de, vFrontPic
+ ld hl, vSprites
+ ld bc, 7 * 7
call CopyVideoData
ld a, $10
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, $70
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld hl, wOAMBuffer
ld bc, $606
ld d, $8
.asm_70948
push bc
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld e, a
.asm_7094d
ld a, e
@@ -65,7 +64,7 @@
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, d
ld [hli], a
@@ -75,44 +74,44 @@
dec c
jr nz, .asm_7094d
inc d
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add $8
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
pop bc
dec b
jr nz, .asm_70948
ret
-Func_7096d: ; 7096d (1c:496d)
+BattleTransition: ; 7096d (1c:496d)
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
ld [$ffb0], a
dec a
- ld [$cfcb], a
+ ld [wcfcb], a
call DelayFrame
- ld hl, $c102
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld hl, wSpriteStateData1 + 2
+ ld a, [H_DOWNARROWBLINKCNT2]
ld c, a
ld b, $0
ld de, $10
-.asm_70989
+.loop1
ld a, [hl]
cp $ff
- jr z, .asm_7098f
+ jr z, .skip1
inc b
-.asm_7098f
+.skip1
add hl, de
dec c
- jr nz, .asm_70989
- ld hl, $c310
+ jr nz, .loop1
+ ld hl, wOAMBuffer + $10
ld c, $9
-.asm_70998
+.loop2
ld a, b
swap a
cp l
- jr z, .asm_709a9
+ jr z, .skip2
push hl
push bc
ld bc, $10
@@ -120,22 +119,22 @@
call FillMemory
pop bc
pop hl
-.asm_709a9
+.skip2
ld de, $10
add hl, de
dec c
- jr nz, .asm_70998
+ jr nz, .loop2
call Delay3
call LoadBattleTransitionTile
ld bc, $0
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE]
cp $4
- jr z, .asm_709c9
- call Func_709e2
- call Func_709ef
- call Func_70a19
-.asm_709c9
- ld hl, PointerTable_709d2 ; $49d2
+ jr z, .linkBattle
+ call GetBattleTransitionID_WildOrTrainer
+ call GetBattleTransitionID_CompareLevels
+ call GetBattleTransitionID_IsDungeonMap
+.linkBattle
+ ld hl, BattleTransitions
add hl, bc
add hl, bc
ld a, [hli]
@@ -143,86 +142,96 @@
ld l, a
jp [hl]
-PointerTable_709d2: ; 709d2 (1c:49d2)
- dw Func_70d24
- dw Func_70a72
- dw Func_70ce4
- dw Func_70a72
- dw Func_70cb4
- dw Func_70b7f
- dw Func_70c7e
- dw Func_70bca
+; the three GetBattleTransitionID functions set the first
+; three bits of c, which determines what transition animation
+; to play at the beginning of a battle
+; bit 0: set if trainer battle
+; bit 1: set if enemy is at least 3 levels higher than player
+; bit 2: set if dungeon map
+BattleTransitions: ; 709d2 (1c:49d2)
+ dw BattleTransition_DoubleCircle ; %000
+ dw BattleTransition_Spiral ; %001
+ dw BattleTransition_Circle ; %010
+ dw BattleTransition_Spiral ; %011
+ dw BattleTransition_HorizontalStripes ; %100
+ dw BattleTransition_Shrink ; %101
+ dw BattleTransition_VerticalStripes ; %110
+ dw BattleTransition_Split ; %111
-Func_709e2: ; 709e2 (1c:49e2)
- ld a, [W_CUROPPONENT] ; $d059
+GetBattleTransitionID_WildOrTrainer: ; 709e2 (1c:49e2)
+ ld a, [W_CUROPPONENT]
cp $c8
- jr nc, .asm_709ec
+ jr nc, .trainer
res 0, c
ret
-.asm_709ec
+.trainer
set 0, c
ret
-Func_709ef: ; 709ef (1c:49ef)
- ld hl, W_PARTYMON1_HP ; $d16c
-.asm_709f2
+GetBattleTransitionID_CompareLevels: ; 709ef (1c:49ef)
+ ld hl, wPartyMon1HP
+.faintedLoop
ld a, [hli]
or [hl]
- jr nz, .asm_709fc
- ld de, $2b
+ jr nz, .notFainted
+ ld de, wPartyMon2 - (wPartyMon1 + 1)
add hl, de
- jr .asm_709f2
-.asm_709fc
- ld de, $1f
+ jr .faintedLoop
+.notFainted
+ ld de, wPartyMon1Level - (wPartyMon1HP + 1)
add hl, de
ld a, [hl]
add $3
ld e, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL]
sub e
- jr nc, .asm_70a12
+ jr nc, .highLevelEnemy
res 1, c
ld a, $1
- ld [$cd47], a
+ ld [wcd47], a
ret
-.asm_70a12
+.highLevelEnemy
set 1, c
xor a
- ld [$cd47], a
+ ld [wcd47], a
ret
-Func_70a19: ; 70a19 (1c:4a19)
- ld a, [W_CURMAP] ; $d35e
+; fails to recognize VICTORY_ROAD_2, VICTORY_ROAD_3, all ROCKET_HIDEOUT maps,
+; MANSION_1, SEAFOAM_ISLANDS_[2-5], POWER_PLANT, DIGLETTS_CAVE
+; and SILPH_CO_[9-11]F as dungeon maps
+GetBattleTransitionID_IsDungeonMap: ; 70a19 (1c:4a19)
+ ld a, [W_CURMAP]
ld e, a
- ld hl, MapIDList_70a3f ; $4a3f
-.asm_70a20
+ ld hl, DungeonMaps1
+.loop1
ld a, [hli]
cp $ff
- jr z, .asm_70a2b
+ jr z, .noMatch1
cp e
- jr nz, .asm_70a20
-.asm_70a28
+ jr nz, .loop1
+.match
set 2, c
ret
-.asm_70a2b
- ld hl, MapIDList_70a44 ; $4a44
-.asm_70a2e
+.noMatch1
+ ld hl, DungeonMaps2
+.loop2
ld a, [hli]
cp $ff
- jr z, .asm_70a3c
+ jr z, .noMatch2
ld d, a
ld a, [hli]
cp e
- jr c, .asm_70a2e
+ jr c, .loop2
ld a, e
cp d
- jr nc, .asm_70a28
-.asm_70a3c
+ jr nc, .match
+.noMatch2
res 2, c
ret
-; Func_70a19 checks if W_CURMAP is equal to one of these maps
-MapIDList_70a3f: ; 70a3f (1c:4a3f)
+; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP
+; is equal to one of these maps
+DungeonMaps1: ; 70a3f (1c:4a3f)
db VIRIDIAN_FOREST
db ROCK_TUNNEL_1
db SEAFOAM_ISLANDS_1
@@ -229,8 +238,9 @@
db ROCK_TUNNEL_2
db $FF
-; Func_70a19 checks if W_CURMAP is in between or equal to each pair of maps
-MapIDList_70a44: ; 70a44 (1c:4a44)
+; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP
+; is in between or equal to each pair of maps
+DungeonMaps2: ; 70a44 (1c:4a44)
; all MT_MOON maps
db MT_MOON_1
db MT_MOON_3
@@ -243,7 +253,7 @@
db LAVENDER_POKECENTER
db LAVENDER_HOUSE_2
- ; all SILPH_CO, MANSION, SAFARI_ZONE, and UNKNOWN_DUNGEON maps,
+ ; SILPH_CO_[2-8]F, MANSION[2-4], SAFARI_ZONE, and UNKNOWN_DUNGEON maps,
; except for SILPH_CO_1F
db SILPH_CO_2F
db UNKNOWN_DUNGEON_1
@@ -250,8 +260,8 @@
db $FF
LoadBattleTransitionTile: ; 70a4d (1c:4a4d)
- ld hl, $8ff0
- ld de, BattleTransitionTile ; $4a59
+ ld hl, vChars1 + $7f0
+ ld de, BattleTransitionTile
ld bc, (BANK(BattleTransitionTile) << 8) + $01
jp CopyVideoData
@@ -258,7 +268,7 @@
BattleTransitionTile: ; 70a59 (1c:4a59)
INCBIN "gfx/battle_transition.2bpp"
-Func_70a69: ; 70a69 (1c:4a69)
+BattleTransition_BlackScreen: ; 70a69 (1c:4a69)
ld a, $ff
ld [rBGP], a ; $ff47
ld [rOBP0], a ; $ff48
@@ -265,260 +275,252 @@
ld [rOBP1], a ; $ff49
ret
-Func_70a72: ; 70a72 (1c:4a72)
- ld a, [$cd47]
+; for non-dungeon trainer battles
+; called regardless of mon levels, but does an
+; outward spiral if enemy is at least 3 levels
+; higher than player and does an inward spiral otherwise
+BattleTransition_Spiral: ; 70a72 (1c:4a72)
+ ld a, [wcd47]
and a
- jr z, .asm_70a7d
- call Func_70aaa
- jr .asm_70a9f
-.asm_70a7d
- FuncCoord 10, 10 ; $c472
- ld hl, Coord
+ jr z, .outwardSpiral
+ call BattleTransition_InwardSpiral
+ jr .done
+.outwardSpiral
+ hlCoord 10, 10
ld a, $3
- ld [$d09f], a
+ ld [wd09f], a
ld a, l
- ld [$d09b], a
+ ld [wd09b], a
ld a, h
- ld [$d09a], a
+ ld [wd09a], a
ld b, $78
-.asm_70a8f
+.loop1
ld c, $3
-.asm_70a91
+.loop2
push bc
- call Func_70af9
+ call BattleTransition_OutwardSpiral_
pop bc
dec c
- jr nz, .asm_70a91
+ jr nz, .loop2
call DelayFrame
dec b
- jr nz, .asm_70a8f
-.asm_70a9f
- call Func_70a69
+ jr nz, .loop1
+.done
+ call BattleTransition_BlackScreen
xor a
- ld [$d09b], a
- ld [$d09a], a
+ ld [wd09b], a
+ ld [wd09a], a
ret
-Func_70aaa: ; 70aaa (1c:4aaa)
+BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa)
ld a, $7
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a
ld hl, wTileMap
ld c, $11
ld de, $14
- call Func_70ae0
+ call BattleTransition_InwardSpiral_
inc c
- jr .asm_70ac3
-.asm_70abd
+ jr .skip
+.loop
ld de, $14
- call Func_70ae0
-.asm_70ac3
+ call BattleTransition_InwardSpiral_
+.skip
inc c
ld de, $1
- call Func_70ae0
+ call BattleTransition_InwardSpiral_
dec c
dec c
ld de, $ffec
- call Func_70ae0
+ call BattleTransition_InwardSpiral_
inc c
- ld de, rIE ; $ffff
- call Func_70ae0
+ ld de, rIE
+ call BattleTransition_InwardSpiral_
dec c
dec c
ld a, c
and a
- jr nz, .asm_70abd
+ jr nz, .loop
ret
-Func_70ae0: ; 70ae0 (1c:4ae0)
+BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0)
push bc
-.asm_70ae1
+.loop
ld [hl], $ff
add hl, de
push bc
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
dec a
- jr nz, .asm_70af0
- call Func_70d19
+ jr nz, .skip
+ call BattleTransition_TransferDelay3
ld a, $7
-.asm_70af0
- ld [wWhichTrade], a ; $cd3d
+.skip
+ ld [wWhichTrade], a
pop bc
dec c
- jr nz, .asm_70ae1
+ jr nz, .loop
pop bc
ret
-Func_70af9: ; 70af9 (1c:4af9)
+BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9)
ld bc, $ffec
ld de, $14
- ld a, [$d09b]
+ ld a, [wd09b]
ld l, a
- ld a, [$d09a]
+ ld a, [wd09a]
ld h, a
- ld a, [$d09f]
+ ld a, [wd09f]
cp $0
- jr z, .asm_70b25
+ jr z, .zero
cp $1
- jr z, .asm_70b2f
+ jr z, .one
cp $2
- jr z, .asm_70b39
+ jr z, .two
cp $3
- jr z, .asm_70b43
-.asm_70b1a
+ jr z, .three
+.done1
ld [hl], $ff
-.asm_70b1c
+.done2_
ld a, l
- ld [$d09b], a
+ ld [wd09b], a
ld a, h
- ld [$d09a], a
+ ld [wd09a], a
ret
-.asm_70b25
+.zero
dec hl
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
inc hl
add hl, bc
- jr .asm_70b1a
-.asm_70b2f
+ jr .done1
+.one
add hl, de
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
add hl, bc
dec hl
- jr .asm_70b1a
-.asm_70b39
+ jr .done1
+.two
inc hl
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
dec hl
add hl, de
- jr .asm_70b1a
-.asm_70b43
+ jr .done1
+.three
add hl, bc
ld a, [hl]
cp $ff
- jr nz, .asm_70b4d
+ jr nz, .done2
add hl, de
inc hl
- jr .asm_70b1a
-.asm_70b4d
+ jr .done1
+.done2
ld [hl], $ff
- ld a, [$d09f]
+ ld a, [wd09f]
inc a
cp $4
- jr nz, .asm_70b58
+ jr nz, .skip
xor a
-.asm_70b58
- ld [$d09f], a
- jr .asm_70b1c
+.skip
+ ld [wd09f], a
+ jr .done2_
-Func_70b5d: ; 70b5d (1c:4b5d)
- ld hl, DataTable_70b72 ; $4b72
-.asm_70b60
+FlashScreen:
+BattleTransition_FlashScreen_: ; 70b5d (1c:4b5d)
+ ld hl, BattleTransition_FlashScreenPalettes
+.loop
ld a, [hli]
cp $1
- jr z, .asm_70b6e
- ld [rBGP], a ; $ff47
+ jr z, .done
+ ld [rBGP], a
ld c, $2
call DelayFrames
- jr .asm_70b60
-.asm_70b6e
+ jr .loop
+.done
dec b
- jr nz, Func_70b5d
+ jr nz, BattleTransition_FlashScreen_
ret
-DataTable_70b72: ; 70b72 (1c:4b72)
+BattleTransition_FlashScreenPalettes: ; 70b72 (1c:4b72)
db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4
db $01 ; terminator
-Func_70b7f: ; 70b7f (1c:4b7f)
+; used for low level trainer dungeon battles
+BattleTransition_Shrink: ; 70b7f (1c:4b7f)
ld c, $9
-.asm_70b81
+.loop
push bc
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 0, 7 ; $c42c
- ld hl, Coord
- FuncCoord 0, 8 ; $c440
- ld de, Coord
+ ld [H_AUTOBGTRANSFERENABLED], a
+ hlCoord 0, 7
+ deCoord 0, 8
ld bc, $ffd8
- call Func_70c12
- FuncCoord 0, 10 ; $c468
- ld hl, Coord
- FuncCoord 0, 9 ; $c454
- ld de, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 0, 10
+ deCoord 0, 9
ld bc, $28
- call Func_70c12
- FuncCoord 8, 0 ; $c3a8
- ld hl, Coord
- FuncCoord 9, 0 ; $c3a9
- ld de, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 8, 0
+ deCoord 9, 0
ld bc, $fffe
- call Func_70c3f
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
- FuncCoord 10, 0 ; $c3aa
- ld de, Coord
+ call BattleTransition_CopyTiles2
+ hlCoord 11, 0
+ deCoord 10, 0
ld bc, $2
- call Func_70c3f
+ call BattleTransition_CopyTiles2
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ld c, $6
call DelayFrames
pop bc
dec c
- jr nz, .asm_70b81
- call Func_70a69
+ jr nz, .loop
+ call BattleTransition_BlackScreen
ld c, $a
jp DelayFrames
-Func_70bca: ; 70bca (1c:4bca)
+; used for high level trainer dungeon battles
+BattleTransition_Split: ; 70bca (1c:4bca)
ld c, $9
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-.asm_70bcf
+ ld [H_AUTOBGTRANSFERENABLED], a
+.loop
push bc
- FuncCoord 0, 16 ; $c4e0
- ld hl, Coord
- FuncCoord 0, 17 ; $c4f4
- ld de, Coord
+ hlCoord 0, 16
+ deCoord 0, 17
ld bc, $ffd8
- call Func_70c12
- FuncCoord 0, 1 ; $c3b4
- ld hl, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 0, 1
ld de, wTileMap
ld bc, $28
- call Func_70c12
- FuncCoord 18, 0 ; $c3b2
- ld hl, Coord
- FuncCoord 19, 0 ; $c3b3
- ld de, Coord
+ call BattleTransition_CopyTiles1
+ hlCoord 18, 0
+ deCoord 19, 0
ld bc, $fffe
- call Func_70c3f
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ call BattleTransition_CopyTiles2
+ hlCoord 1, 0
ld de, wTileMap
ld bc, $2
- call Func_70c3f
- call Func_70d19
+ call BattleTransition_CopyTiles2
+ call BattleTransition_TransferDelay3
call Delay3
pop bc
dec c
- jr nz, .asm_70bcf
- call Func_70a69
+ jr nz, .loop
+ call BattleTransition_BlackScreen
ld c, $a
jp DelayFrames
-Func_70c12: ; 70c12 (1c:4c12)
+BattleTransition_CopyTiles1: ; 70c12 (1c:4c12)
ld a, c
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a
ld a, b
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld c, $8
-.asm_70c1c
+.loop1
push bc
push hl
push de
@@ -526,89 +528,89 @@
call CopyData
pop hl
pop de
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
ld c, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld b, a
add hl, bc
pop bc
dec c
- jr nz, .asm_70c1c
+ jr nz, .loop1
ld l, e
ld h, d
ld a, $ff
ld c, $14
-.asm_70c3a
+.loop2
ld [hli], a
dec c
- jr nz, .asm_70c3a
+ jr nz, .loop2
ret
-Func_70c3f: ; 70c3f (1c:4c3f)
+BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f)
ld a, c
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a
ld a, b
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld c, $9
-.asm_70c49
+.loop1
push bc
push hl
push de
ld c, $12
-.asm_70c4e
+.loop2
ld a, [hl]
ld [de], a
ld a, e
add $14
- jr nc, .asm_70c56
+ jr nc, .noCarry1
inc d
-.asm_70c56
+.noCarry1
ld e, a
ld a, l
add $14
- jr nc, .asm_70c5d
+ jr nc, .noCarry2
inc h
-.asm_70c5d
+.noCarry2
ld l, a
dec c
- jr nz, .asm_70c4e
+ jr nz, .loop2
pop hl
pop de
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
ld c, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld b, a
add hl, bc
pop bc
dec c
- jr nz, .asm_70c49
+ jr nz, .loop1
ld l, e
ld h, d
ld de, $14
ld c, $12
-.asm_70c77
+.loop3
ld [hl], $ff
add hl, de
dec c
- jr nz, .asm_70c77
+ jr nz, .loop3
ret
-Func_70c7e: ; 70c7e (1c:4c7e)
+; used for high level wild dungeon battles
+BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e)
ld c, $12
ld hl, wTileMap
- FuncCoord 1, 17 ; $c4f5
- ld de, Coord
+ deCoord 1, 17
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-.asm_70c89
+ ld [H_AUTOBGTRANSFERENABLED], a
+.loop
push bc
push hl
push de
push de
- call Func_70caa
+ call BattleTransition_VerticalStripes_
pop hl
- call Func_70caa
- call Func_70d19
+ call BattleTransition_VerticalStripes_
+ call BattleTransition_TransferDelay3
pop hl
ld bc, $ffec
add hl, bc
@@ -619,35 +621,35 @@
add hl, bc
pop bc
dec c
- jr nz, .asm_70c89
- jp Func_70a69
+ jr nz, .loop
+ jp BattleTransition_BlackScreen
-Func_70caa: ; 70caa (1c:4caa)
+BattleTransition_VerticalStripes_: ; 70caa (1c:4caa)
ld c, $a
-.asm_70cac
+.loop
ld [hl], $ff
inc hl
inc hl
dec c
- jr nz, .asm_70cac
+ jr nz, .loop
ret
-Func_70cb4: ; 70cb4 (1c:4cb4)
+; used for low level wild dungeon battles
+BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4)
ld c, $14
ld hl, wTileMap
- FuncCoord 19, 1 ; $c3c7
- ld de, Coord
+ deCoord 19, 1
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-.asm_70cbf
+ ld [H_AUTOBGTRANSFERENABLED], a
+.loop
push bc
push hl
push de
push de
- call Func_70cd8
+ call BattleTransition_HorizontalStripes_
pop hl
- call Func_70cd8
- call Func_70d19
+ call BattleTransition_HorizontalStripes_
+ call BattleTransition_TransferDelay3
pop de
pop hl
pop bc
@@ -654,74 +656,80 @@
inc hl
dec de
dec c
- jr nz, .asm_70cbf
- jp Func_70a69
+ jr nz, .loop
+ jp BattleTransition_BlackScreen
-Func_70cd8: ; 70cd8 (1c:4cd8)
+BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8)
ld c, $9
ld de, $28
-.asm_70cdd
+.loop
ld [hl], $ff
add hl, de
dec c
- jr nz, .asm_70cdd
+ jr nz, .loop
ret
-Func_70ce4: ; 70ce4 (1c:4ce4)
- call Func_70cfd
+; used for high level wild non-dungeon battles
+; makes one full circle around the screen
+; by animating each half circle one at a time
+BattleTransition_Circle: ; 70ce4 (1c:4ce4)
+ call BattleTransition_FlashScreen
ld bc, $000a
- ld hl, Unknown_70d61
- call Func_70d06
+ ld hl, BattleTransition_HalfCircle1
+ call BattleTransition_Circle_Sub1
ld c, $a
ld b, $1
- ld hl, Unknown_70d93
- call Func_70d06
- jp Func_70a69
+ ld hl, BattleTransition_HalfCircle2
+ call BattleTransition_Circle_Sub1
+ jp BattleTransition_BlackScreen
-Func_70cfd: ; 70cfd (1c:4cfd)
+BattleTransition_FlashScreen: ; 70cfd (1c:4cfd)
ld b, $3
- call Func_70b5d
+ call BattleTransition_FlashScreen_
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
-Func_70d06: ; 70d06 (1c:4d06)
+BattleTransition_Circle_Sub1: ; 70d06 (1c:4d06)
push bc
push hl
ld a, b
- call Func_70d50
+ call BattleTransition_Circle_Sub2
pop hl
ld bc, $0005
add hl, bc
- call Func_70d19
+ call BattleTransition_TransferDelay3
pop bc
dec c
- jr nz, Func_70d06
+ jr nz, BattleTransition_Circle_Sub1
ret
-Func_70d19: ; 70d19 (1c:4d19)
+BattleTransition_TransferDelay3: ; 70d19 (1c:4d19)
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
-Func_70d24: ; 70d24 (1c:4d24)
- call Func_70cfd
+; used for low level wild non-dungeon battles
+; makes two half circles around the screen
+; by animating both half circles at the same time
+BattleTransition_DoubleCircle: ; 70d24 (1c:4d24)
+ call BattleTransition_FlashScreen
ld c, $a
- ld hl, Unknown_70d61 ; $4d61
- ld de, Unknown_70d93 ; $4d93
-.asm_70d2f
+ ld hl, BattleTransition_HalfCircle1
+ ld de, BattleTransition_HalfCircle2
+.loop
push bc
push hl
push de
push de
xor a
- call Func_70d50
+ call BattleTransition_Circle_Sub2
pop hl
ld a, $1
- call Func_70d50
+ call BattleTransition_Circle_Sub2
pop hl
ld bc, $5
add hl, bc
@@ -729,16 +737,16 @@
ld d, h
pop hl
add hl, bc
- call Func_70d19
+ call BattleTransition_TransferDelay3
pop bc
dec c
- jr nz, .asm_70d2f
- jp Func_70a69
+ jr nz, .loop
+ jp BattleTransition_BlackScreen
-Func_70d50: ; 70d50 (1c:4d50)
- ld [wWhichTrade], a ; $cd3d
+BattleTransition_Circle_Sub2: ; 70d50 (1c:4d50)
+ ld [wWhichTrade], a
ld a, [hli]
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, [hli]
ld e, a
ld a, [hli]
@@ -746,134 +754,114 @@
ld a, [hli]
ld h, [hl]
ld l, a
- jp Func_70dc5
+ jp BattleTransition_Circle_Sub3
-Unknown_70d61: ; 70d61 (1c:4d61)
+BattleTransition_HalfCircle1: ; 70d61 (1c:4d61)
db $01
- dw Unknown_70dfe
- FuncCoord 18, 6
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 18, 6
db $01
- dw Unknown_70e04
- FuncCoord 19, 3
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 19, 3
db $01
- dw Unknown_70e0e
- FuncCoord 18, 0
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 18, 0
db $01
- dw Unknown_70e20
- FuncCoord 14, 0
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 14, 0
db $01
- dw Unknown_70e2e
- FuncCoord 10, 0
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 10, 0
db $00
- dw Unknown_70e2e
- FuncCoord 9, 0
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 9, 0
db $00
- dw Unknown_70e20
- FuncCoord 5, 0
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 5, 0
db $00
- dw Unknown_70e0e
- FuncCoord 1, 0
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 1, 0
db $00
- dw Unknown_70e04
- FuncCoord 0, 3
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 0, 3
db $00
- dw Unknown_70dfe
- FuncCoord 1, 6
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 1, 6
-Unknown_70d93: ; 70d93 (1c:4d93)
+BattleTransition_HalfCircle2: ; 70d93 (1c:4d93)
db $00
- dw Unknown_70dfe
- FuncCoord 1, 11
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 1, 11
db $00
- dw Unknown_70e04
- FuncCoord 0, 14
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 0, 14
db $00
- dw Unknown_70e0e
- FuncCoord 1, 17
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 1, 17
db $00
- dw Unknown_70e20
- FuncCoord 5, 17
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 5, 17
db $00
- dw Unknown_70e2e
- FuncCoord 9, 17
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 9, 17
db $01
- dw Unknown_70e2e
- FuncCoord 10, 17
- dw Coord
+ dw BattleTransition_CircleData5
+ dwCoord 10, 17
db $01
- dw Unknown_70e20
- FuncCoord 14, 17
- dw Coord
+ dw BattleTransition_CircleData4
+ dwCoord 14, 17
db $01
- dw Unknown_70e0e
- FuncCoord 18, 17
- dw Coord
+ dw BattleTransition_CircleData3
+ dwCoord 18, 17
db $01
- dw Unknown_70e04
- FuncCoord 19, 14
- dw Coord
+ dw BattleTransition_CircleData2
+ dwCoord 19, 14
db $01
- dw Unknown_70dfe
- FuncCoord 18, 11
- dw Coord
+ dw BattleTransition_CircleData1
+ dwCoord 18, 11
-Func_70dc5: ; 70dc5 (1c:4dc5)
+BattleTransition_Circle_Sub3: ; 70dc5 (1c:4dc5)
push hl
ld a, [de]
ld c, a
inc de
-.asm_70dc9
+.loop1
ld [hl], $ff
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
and a
- jr z, .asm_70dd4
+ jr z, .skip1
inc hl
- jr .asm_70dd5
-.asm_70dd4
+ jr .skip2
+.skip1
dec hl
-.asm_70dd5
+.skip2
dec c
- jr nz, .asm_70dc9
+ jr nz, .loop1
pop hl
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade]
and a
ld bc, $14
- jr z, .asm_70de5
+ jr z, .skip3
ld bc, $ffec
-.asm_70de5
+.skip3
add hl, bc
ld a, [de]
inc de
@@ -880,32 +868,32 @@
cp $ff
ret z
and a
- jr z, Func_70dc5
+ jr z, BattleTransition_Circle_Sub3
ld c, a
-.asm_70def
- ld a, [$cd3e]
+.loop2
+ ld a, [wTrainerEngageDistance]
and a
- jr z, .asm_70df8
+ jr z, .skip4
dec hl
- jr .asm_70df9
-.asm_70df8
+ jr .skip5
+.skip4
inc hl
-.asm_70df9
+.skip5
dec c
- jr nz, .asm_70def
- jr Func_70dc5
+ jr nz, .loop2
+ jr BattleTransition_Circle_Sub3
-Unknown_70dfe: ; 70dfe (1c:4dfe)
+BattleTransition_CircleData1: ; 70dfe (1c:4dfe)
db $02,$03,$05,$04,$09,$FF
-Unknown_70e04: ; 70e04 (1c:4e04)
+BattleTransition_CircleData2: ; 70e04 (1c:4e04)
db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF
-Unknown_70e0e: ; 70e0e (1c:4e0e)
+BattleTransition_CircleData3: ; 70e0e (1c:4e0e)
db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF
-Unknown_70e20: ; 70e20 (1c:4e20)
+BattleTransition_CircleData4: ; 70e20 (1c:4e20)
db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF
-Unknown_70e2e: ; 70e2e (1c:4e2e)
+BattleTransition_CircleData5: ; 70e2e (1c:4e2e)
db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF
--- a/engine/battle/4.asm
+++ b/engine/battle/4.asm
@@ -1,12 +1,12 @@
Func_128d8: ; 128d8 (4:68d8)
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld b, a
- ld a, [W_CURMAPHEIGHT] ; $d368
+ ld a, [W_CURMAPHEIGHT] ; wd368
call Func_128ea
ret z
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld b, a
- ld a, [W_CURMAPWIDTH] ; $d369
+ ld a, [W_CURMAPWIDTH] ; wd369
Func_128ea: ; 128ea (4:68ea)
add a
@@ -15,20 +15,20 @@
inc b
ret
-Func_128ef: ; 128ef (4:68ef)
- call Load16BitRegisters
+DrawHP: ; 128ef (4:68ef)
+ call GetPredefRegisters
ld a, $1
jr asm_128fb
Func_128f6: ; 128f6 (4:68f6)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, $2
asm_128fb: ; 128fb (4:68fb)
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
push hl
- ld a, [$cf99]
+ ld a, [wcf99]
ld b, a
- ld a, [$cf9a]
+ ld a, [wcf9a]
ld c, a
or b
jr nz, .asm_12913
@@ -39,12 +39,11 @@
ld d, a
jp Func_12924
.asm_12913
- ld a, [$cfba]
+ ld a, [wcfba]
ld d, a
- ld a, [$cfbb]
+ ld a, [wcfbb]
ld e, a
- ld a, $26
- call Predef ; indirect jump to UpdateHPBar_LoadRegisters (f9dc (3:79dc))
+ predef HPBarLength
ld a, $6
ld d, a
ld c, a
@@ -65,12 +64,12 @@
ld bc, $15
.asm_1293a
add hl, bc
- ld de, $cf99
+ ld de, wcf99
ld bc, $203
call PrintNumber
ld a, "/"
ld [hli], a
- ld de, $cfba
+ ld de, wcfba
ld bc, $203
call PrintNumber
pop hl
--- a/engine/battle/4_2.asm
+++ b/engine/battle/4_2.asm
@@ -1,16 +1,16 @@
Func_137aa: ; 137aa (4:77aa)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_137eb
- ld a, [W_ENEMYMONNUMBER] ; $cfe8
- ld hl, $d8a8
- ld bc, $2c
+ ld a, [wEnemyMonPartyPos]
+ ld hl, wEnemyMon1Status
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
- ld a, [W_ENEMYMONSTATUS] ; $cfe9
+ ld a, [wEnemyMonStatus] ; wcfe9
ld [hl], a
call ClearScreen
callab Func_372d6
- ld a, [$cf0b]
+ ld a, [wcf0b]
cp $1
ld de, YouWinText
jr c, .asm_137de
@@ -18,62 +18,59 @@
jr z, .asm_137de
ld de, DrawText
.asm_137de
- FuncCoord 6, 8 ; $c446
- ld hl, Coord
+ hlCoord 6, 8
call PlaceString
ld c, $c8
call DelayFrames
jr .asm_1380a
.asm_137eb
- ld a, [$cf0b]
+ ld a, [wcf0b]
and a
jr nz, .asm_13813
- ld hl, $cce5
+ ld hl, wcce5
ld a, [hli]
or [hl]
inc hl
or [hl]
jr z, .asm_1380a
- ld de, wPlayerMoney + 2 ; $d349
+ ld de, wPlayerMoney + 2 ; wd349
ld c, $3
- ld a, $b
- call Predef ; indirect jump to Func_f81d (f81d (3:781d))
+ predef AddBCDPredef
ld hl, PickUpPayDayMoneyText
call PrintText
.asm_1380a
xor a
- ld [$ccd4], a
- ld a, $2a
- call Predef ; indirect jump to Func_3ad1c (3ad1c (e:6d1c))
+ ld [wccd4], a
+ predef Func_3ad1c
.asm_13813
xor a
- ld [$d083], a
- ld [$c02a], a
- ld [W_ISINBATTLE], a ; $d057
- ld [W_BATTLETYPE], a ; $d05a
- ld [W_MOVEMISSED], a ; $d05f
- ld [W_CUROPPONENT], a ; $d059
- ld [$d11f], a
- ld [$d120], a
- ld [$d078], a
- ld hl, $cc2b
+ ld [wd083], a
+ ld [wc02a], a
+ ld [W_ISINBATTLE], a ; W_ISINBATTLE
+ ld [W_BATTLETYPE], a ; wd05a
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
+ ld [W_CUROPPONENT], a ; wd059
+ ld [wd11f], a
+ ld [wd120], a
+ ld [wd078], a
+ ld hl, wcc2b
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [wListScrollOffset], a ; $cc36
- ld hl, $d060
+ ld [wListScrollOffset], a ; wcc36
+ ld hl, wd060
ld b, $18
.asm_1383e
ld [hli], a
dec b
jr nz, .asm_1383e
- ld hl, $d72c
+ ld hl, wd72c
set 0, [hl]
call WaitForSoundToFinish
call GBPalWhiteOut
ld a, $ff
- ld [$d42f], a
+ ld [wd42f], a
ret
YouWinText: ; 13853 (4:7853)
@@ -90,10 +87,10 @@
db "@"
Func_13870: ; 13870 (4:7870)
- ld a, [$cc57]
+ ld a, [wcc57]
and a
ret nz
- ld a, [$d736]
+ ld a, [wd736]
and a
ret nz
callab Func_c49d
@@ -105,37 +102,36 @@
.asm_13888
callab Func_128d8
jr z, .asm_13884
- ld a, [$d0db]
+ ld a, [wd0db]
and a
jr z, .asm_1389e
dec a
jr z, .asm_13905
- ld [$d0db], a
+ ld [wd0db], a
.asm_1389e
- FuncCoord 9, 9 ; $c45d
- ld hl, Coord
+ hlCoord 9, 9
ld c, [hl]
ld a, [W_GRASSTILE]
cp c
- ld a, [W_GRASSRATE] ; $d887
+ ld a, [W_GRASSRATE] ; W_GRASSRATE
jr z, .asm_138c4
ld a, $14
cp c
- ld a, [W_WATERRATE] ; $d8a4
+ ld a, [W_WATERRATE] ; wEnemyMon1Species
jr z, .asm_138c4
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp REDS_HOUSE_1F
jr c, .asm_13912
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
cp FOREST ; Viridian Forest/Safari Zone
jr z, .asm_13912
- ld a, [W_GRASSRATE] ; $d887
+ ld a, [W_GRASSRATE] ; W_GRASSRATE
.asm_138c4
ld b, a
- ld a, [H_RAND1] ; $ffd3
+ ld a, [hRandomAdd]
cp b
jr nc, .asm_13912
- ld a, [H_RAND2] ; $ffd4
+ ld a, [hRandomSub]
ld b, a
ld hl, WildMonEncounterSlotChances ; $7918
.asm_138d0
@@ -146,31 +142,30 @@
jr .asm_138d0
.asm_138d7
ld c, [hl]
- ld hl, W_GRASSMONS ; $d888
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ ld hl, W_GRASSMONS ; wd888
+ aCoord 8, 9
cp $14
jr nz, .asm_138e5
- ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP)
+ ld hl, W_WATERMONS ; wd8a5 (aliases: wEnemyMon1HP)
.asm_138e5
ld b, $0
add hl, bc
ld a, [hli]
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, [hl]
- ld [$cf91], a
- ld [W_ENEMYMONID], a
- ld a, [$d0db]
+ ld [wcf91], a
+ ld [wEnemyMonSpecies2], a
+ ld a, [wd0db]
and a
jr z, .asm_13916
- ld a, [W_PARTYMON1_LEVEL] ; $d18c
+ ld a, [wPartyMon1Level] ; wPartyMon1Level
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
jr c, .asm_13912
jr .asm_13916
.asm_13905
- ld [$d0db], a
+ ld [wd0db], a
ld a, $d2
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call EnableAutoTextBoxDrawing
@@ -202,14 +197,14 @@
RecoilEffect_: ; 1392c (4:792c)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
- ld hl, W_PLAYERMONMAXHP ; $d023
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
+ ld hl, wBattleMonMaxHP ; wd023
jr z, .asm_1393d
- ld a, [W_ENEMYMOVENUM] ; $cfcc
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
.asm_1393d
ld d, a
- ld a, [W_DAMAGE] ; $d0d7
+ ld a, [W_DAMAGE] ; W_DAMAGE
ld b, a
ld a, [W_DAMAGE + 1]
ld c, a
@@ -252,19 +247,16 @@
ld [hli], a
ld [hl], a
.asm_13982
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
+ hlCoord 10, 9
ld a, [H_WHOSETURN] ; $fff3
and a
ld a, $1
jr z, .asm_13990
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
xor a
.asm_13990
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
ld hl, HitWithRecoilText ; $799e
jp PrintText
HitWithRecoilText: ; 1399e (4:799e)
@@ -272,8 +264,8 @@
db "@"
ConversionEffect_: ; 139a3 (4:79a3)
- ld hl, W_ENEMYMONTYPE1
- ld de, W_PLAYERMONTYPE1
+ ld hl, wEnemyMonType1
+ ld de, wBattleMonType1
ld a, [H_WHOSETURN]
and a
ld a, [W_ENEMYBATTSTATUS1]
@@ -312,18 +304,18 @@
call Func_13a43
ld hl, wEnemyMonAttackMod
call Func_13a43
- ld hl, $cd12
- ld de, W_PLAYERMONATK
+ ld hl, wcd12
+ ld de, wBattleMonAttack
call Func_13a4a
- ld hl, $cd26
- ld de, W_ENEMYMONATTACK
+ ld hl, wcd26
+ ld de, wEnemyMonAttack
call Func_13a4a
- ld hl, W_ENEMYMONSTATUS
+ ld hl, wEnemyMonStatus
ld de, wEnemySelectedMove
ld a, [H_WHOSETURN]
and a
jr z, .asm_13a09
- ld hl, W_PLAYERMONSTATUS
+ ld hl, wBattleMonStatus
dec de
.asm_13a09
@@ -338,7 +330,7 @@
xor a
ld [W_PLAYERDISABLEDMOVE], a
ld [W_ENEMYDISABLEDMOVE], a
- ld hl, $ccee
+ ld hl, wccee
ld [hli], a
ld [hl], a
ld hl, W_PLAYERBATTSTATUS1
@@ -384,12 +376,12 @@
db "@"
GetTrainerName_: ; 13a58 (4:7a58)
- ld hl, W_GRASSRATE ; $d887
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld hl, W_GRASSRATE ; W_GRASSRATE
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
and a
jr nz, .rival
- ld hl, W_RIVALNAME ; $d34a
- ld a, [W_TRAINERCLASS] ; $d031
+ ld hl, W_RIVALNAME ; wd34a
+ ld a, [W_TRAINERCLASS] ; wd031
cp SONY1
jr z, .rival
cp SONY2
@@ -396,13 +388,13 @@
jr z, .rival
cp SONY3
jr z, .rival
- ld [$d0b5], a
+ ld [wd0b5], a
ld a, TRAINER_NAME
ld [W_LISTTYPE], a
ld a, $e
- ld [$d0b7], a
+ ld [wPredefBank], a
call GetName
- ld hl, $cd6d
+ ld hl, wcd6d
.rival
ld de, W_TRAINERNAME
ld bc, $d
--- a/engine/battle/5.asm
+++ b/engine/battle/5.asm
@@ -1,13 +1,13 @@
SubstituteEffectHandler: ; 17dad (5:7dad)
ld c, 50
call DelayFrames
- ld hl, W_PLAYERMONMAXHP
+ ld hl, wBattleMonMaxHP
ld de, wPlayerSubstituteHP
ld bc, W_PLAYERBATTSTATUS2
ld a, [$fff3] ;whose turn?
and a
jr z, .notEnemy
- ld hl, W_ENEMYMONMAXHP
+ ld hl, wEnemyMonMaxHP
ld de, wEnemySubstituteHP
ld bc, W_ENEMYBATTSTATUS2
.notEnemy
@@ -42,7 +42,7 @@
ld h, b
ld l, c
set 4, [hl] ;set bit 4 of flags, user now has substitute
- ld a, [$d355] ;load options
+ ld a, [W_OPTIONS] ;load options
bit 7, a ;battle animation is enabled?
ld hl, Func_3fba8 ; $7ba8 ;animation enabled: 0F:7BA8
ld b, BANK(Func_3fba8)
--- a/engine/battle/9.asm
+++ b/engine/battle/9.asm
@@ -1,5 +1,5 @@
Func_27d6b: ; 27d6b (9:7d6b)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
call GetMonHeader
pop hl
@@ -26,9 +26,9 @@
jp FillMemory
Func_27d98: ; 27d98 (9:7d98)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
- ld a, [W_PLAYERMOVETYPE] ; $cfd5
+ ld a, [W_PLAYERMOVETYPE] ; wcfd5
asm_27d9f: ; 27d9f (9:7d9f)
add a
ld hl, TypeNamePointers ; $7dae
@@ -54,7 +54,7 @@
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,$CD6D
+ ld de,wcd6d
.CopyCharacter
ld a,[hli]
ld [de],a
@@ -157,11 +157,11 @@
db "COOLTRAINER♀@"
FocusEnergyEffect_: ; 27f86 (9:7f86)
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_27f91
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_27f91
bit 2, [hl] ; is mon already using focus energy?
jr nz, .asm_27fa5
--- a/engine/battle/a.asm
+++ b/engine/battle/a.asm
@@ -1,15 +1,15 @@
LeechSeedEffect_: ; 2bea9 (a:7ea9)
callab MoveHitTest
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_2bee7
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
- ld de, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES)
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
+ ld de, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_2bec8
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
- ld de, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES)
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
+ ld de, wBattleMonType1 ; wd019 (aliases: wBattleMonType)
.asm_2bec8
ld a, [de]
cp GRASS
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -223,7 +223,7 @@
rla
sla c
rla
- ld [$D09F],a ; tile select
+ ld [wd09f],a ; tile select
ld a,[hli] ; sound
ld [wAnimSoundID],a ; store sound
ld a,[hli] ; subanimation ID
@@ -243,7 +243,7 @@
push hl
ld a,[rOBP0]
push af
- ld a,[$CC79]
+ ld a,[wcc79]
ld [rOBP0],a
call LoadAnimationTileset
call LoadSubanimation
@@ -328,7 +328,7 @@
; loads tile patterns for battle animations
LoadAnimationTileset: ; 781d2 (1e:41d2)
- ld a,[$D09F] ; tileset select
+ ld a,[wd09f] ; tileset select
add a
add a
ld hl,AnimationTilesetPointers
@@ -336,14 +336,14 @@
ld d,0
add hl,de
ld a,[hli]
- ld [$D07D],a ; number of tiles
+ ld [wd07d],a ; number of tiles
ld a,[hli]
ld e,a
ld a,[hl]
ld d,a ; de = address of tileset
- ld hl,$8310 ; destination address in VRAM
+ ld hl,vSprites + $310
ld b, BANK(AnimationTileset1) ; ROM bank
- ld a,[$D07D]
+ ld a,[wd07d]
ld c,a ; number of tiles
jp CopyVideoData ; load tileset
@@ -394,7 +394,7 @@
.MoveAnimation
; check if battle animations are disabled in the options
- ld a,[$D355]
+ ld a,[W_OPTIONS]
bit 7,a
jr nz,.AnimationsDisabled
call ShareMoveAnimations
@@ -408,11 +408,11 @@
.AnimationFinished
call WaitForSoundToFinish
xor a
- ld [$D096],a
- ld [$D09B],a
- ld [$D08B],a
+ ld [W_SUBANIMSUBENTRYADDR],a
+ ld [wd09b],a
+ ld [W_SUBANIMTRANSFORM],a
dec a
- ld [$CF07],a
+ ld [wAnimSoundID],a
pop af
pop bc
pop de
@@ -443,7 +443,7 @@
ret
Func_78dbd: ; 78dbd (1e:4dbd)
- ld a,[$CC5B]
+ ld a,[wcc5b]
and a
ret z
dec a
@@ -517,14 +517,14 @@
ret
Func_78e23: ; 78e23 (1e:4e23)
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
ld a, $e4
jr z, .asm_78e47
ld a, $f0
- ld [$cc79], a
+ ld [wcc79], a
ld b, $e4
- ld a, [W_ANIMATIONID] ; $d07c
+ ld a, [W_ANIMATIONID] ; W_ANIMATIONID
cp $aa
jr c, .asm_78e3f
cp $ae
@@ -538,7 +538,7 @@
ret
.asm_78e47
ld a, $e4
- ld [$cc79], a
+ ld [wcc79], a
ld [rOBP0], a ; $ff48
ld a, $6c
ld [rOBP1], a ; $ff49
@@ -616,7 +616,7 @@
push bc
push af
call DelayFrame
- call CleanLCD_OAM
+ call ClearSprites
pop af
pop bc
pop de
@@ -724,7 +724,7 @@
db $FF ; terminator
DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)
- ld a,[$CF91]
+ ld a,[wcf91]
cp a,3 ; is it a Master Ball or Ultra Ball?
jr nc,.skipFlashingEffect
.flashingEffect ; do a flashing effect if it's Master Ball or Ultra Ball
@@ -742,7 +742,7 @@
ld a,[W_ISINBATTLE]
cp a,02 ; is it a trainer battle?
jr z,.isTrainerBattle
- ld a,[$d11e]
+ ld a,[wd11e]
cp a,$10 ; is the enemy pokemon the Ghost Marowak?
ret nz
; if the enemy pokemon is the Ghost Marowak, make it dodge during the last 3 frames
@@ -754,8 +754,7 @@
cp a,1
ret nz
.moveGhostMarowakLeft
- FuncCoord 17,0
- ld hl,Coord
+ hlCoord 17, 0
ld de,20
ld bc,$0707 ; 7 rows and 7 columns
.loop
@@ -792,9 +791,9 @@
dec a
ret nz
; if it's the end of the ball shaking subanimation, check if more shakes are left and restart the subanimation
- ld a,[$cd3d] ; number of shakes
+ ld a,[wWhichTrade] ; number of shakes
dec a ; decrement number of shakes
- ld [$cd3d],a
+ ld [wWhichTrade],a
ret z
; if there are shakes left, restart the subanimation
ld a,[W_SUBANIMSUBENTRYADDR]
@@ -831,11 +830,9 @@
; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically
.shakeScreen
ld b,1
- ld a,$24
- call Predef ; shake horizontally
+ predef Func_48125 ; shake horizontally
ld b,1
- ld a,$21
- jp Predef ; shake vertically
+ predef_jump Func_480ff ; shake vertically
FlashScreenEveryEightFrameBlocks: ; 78ff7 (1e:4ff7)
ld a,[W_SUBANIMCOUNTER]
@@ -856,8 +853,7 @@
cp a,1 ; is it the end of the subanimation?
jr nz,FlashScreenEveryFourFrameBlocks
; if it's the end of the subanimation, make the attacking pokemon disappear
- FuncCoord 1, 5 ; $c405
- ld hl,Coord
+ hlCoord 1, 5
jp AnimationHideMonPic ; make pokemon disappear
; flashes the screen when subanimation counter is 1 modulo 4
@@ -975,7 +971,7 @@
; so that there are two musical notes flying towards the defending pokemon
DoGrowlSpecialEffects: ; 790bc (1e:50bc)
ld hl,wOAMBuffer ; OAM buffer
- ld de,$c310
+ ld de,wOAMBuffer + $10
ld bc,$10
call CopyData ; copy the musical note graphic
ld a,[W_SUBANIMCOUNTER]
@@ -1094,8 +1090,8 @@
; flashes the screen for an extended period (48 frames)
AnimationFlashScreenLong: ; 79165 (1e:5165)
ld a,3 ; cycle through the palettes 3 times
- ld [$D08A],a
- ld a,[$cf1b] ; running on SGB?
+ ld [wd08a],a
+ ld a,[wcf1b] ; running on SGB?
and a
ld hl,FlashScreenLongMonochrome
jr z,.loop
@@ -1110,9 +1106,9 @@
call FlashScreenLongDelay
jr .innerLoop
.endOfPalettes
- ld a,[$D08A]
+ ld a,[wd08a]
dec a
- ld [$D08A],a
+ ld [wd08a],a
pop hl
jr nz,.loop
ret
@@ -1152,8 +1148,8 @@
; causes a delay of 2 frames for the first cycle
; causes a delay of 1 frame for the second and third cycles
FlashScreenLongDelay: ; 791a8 (1e:51a8)
- ld a,[$D08A]
- cp a,4 ; never true since [$D08A] starts at 3
+ ld a,[wd08a]
+ cp a,4 ; never true since [wd08a] starts at 3
ld c,4
jr z,.delayFrames
cp a,3
@@ -1215,7 +1211,7 @@
ld bc, $4040
Func_791fc: ; 791fc (1e:51fc)
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
ld a, b
jr z, .asm_79204
@@ -1227,8 +1223,7 @@
ld b, $5
Func_79209: ; 79209 (1e:5209)
- ld a, $21
- jp Predef ; indirect jump to Func_480ff (480ff (12:40ff))
+ predef_jump Func_480ff
AnimationShakeScreen: ; 7920e (1e:520e)
; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations.
@@ -1235,8 +1230,7 @@
ld b, $8
Func_79210: ; 79210 (1e:5210)
- ld a, $24
- jp Predef ; indirect jump to Func_48125 (48125 (12:4125))
+ predef_jump Func_48125
AnimationWaterDropletsEverywhere: ; 79215 (1e:5215)
; Draws water droplets all over the screen and makes them
@@ -1243,23 +1237,23 @@
; scroll. It's hard to describe, but it's the main animation
; in Surf/Mist/Toxic.
xor a
- ld [$d09f], a
+ ld [wd09f], a
call LoadAnimationTileset
ld d, $20
ld a, $f0
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, $71
- ld [$d09f], a
+ ld [wd09f], a
.asm_79228
ld a, $10
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, $0
- ld [$d08a], a
+ ld [wd08a], a
call Func_79246
ld a, $18
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, $20
- ld [$d08a], a
+ ld [wd08a], a
call Func_79246
dec d
jr nz, .asm_79228
@@ -1268,24 +1262,24 @@
Func_79246: ; 79246 (1e:5246)
ld hl, wOAMBuffer
.asm_79249
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add $1b
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld [hli], a
- ld a, [$d09f]
+ ld a, [wd09f]
ld [hli], a
xor a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
cp $90
jr c, .asm_79249
sub $a8
- ld [W_BASECOORDX], a ; $d081
- ld a, [W_BASECOORDY] ; $d082
+ ld [W_BASECOORDX], a ; wd081
+ ld a, [W_BASECOORDY] ; wd082
add $10
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
cp $70
jr c, .asm_79249
call AnimationCleanOAM
@@ -1296,15 +1290,15 @@
ld c, $7
ld a, [H_WHOSETURN]
and a
- ld hl, $c419
- ld de, $c405
+ ld hl, wTileMap + $79
+ ld de, wTileMap + $65
ld a, $30
jr z, .asm_79291
- ld hl, $c3c0
- ld de, $c3ac
+ ld hl, wTileMap + $20
+ ld de, wTileMap + $c
ld a, $ff
.asm_79291
- ld [$d09f], a
+ ld [wd09f], a
jp Func_792bf
AnimationSlideMonDown: ; 79297 (1e:5297)
@@ -1328,7 +1322,7 @@
; Slides the mon's sprite out of the screen horizontally.
ld e, $8
ld a, $3
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jp Func_795f8
AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9)
@@ -1356,13 +1350,13 @@
jr nz, .asm_792c4
ld a, [H_WHOSETURN]
and a
- ld hl, $c47d
+ ld hl, wTileMap + $dd
jr z, .asm_792e2
- ld hl, $c424
+ ld hl, wTileMap + $84
.asm_792e2
- ld a, [$d09f]
+ ld a, [wd09f]
inc a
- ld [$d09f], a
+ ld [wd09f], a
ld c, $7
.asm_792eb
ld [hli], a
@@ -1409,7 +1403,7 @@
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, d
ld [hli], a
@@ -1424,7 +1418,7 @@
Func_79339: ; 79339 (1e:5339)
ld de, $4
.asm_7933c
- ld a, [$d08a]
+ ld a, [wd08a]
ld b, a
ld a, [hl]
add b
@@ -1447,7 +1441,7 @@
Func_79352: ; 79352 (1e:5352)
ld de, $4
.asm_79355
- ld a, [$d08a]
+ ld a, [wd08a]
ld b, a
ld a, [hl]
add b
@@ -1488,10 +1482,10 @@
AnimationFlashMonPic: ; 79389 (1e:5389)
; Flashes the mon's sprite on and off
- ld a, [W_PLAYERMONID]
- ld [$ceea], a
- ld a, [$cfe5]
- ld [$cee9], a
+ ld a, [wBattleMonSpecies]
+ ld [wHPBarMaxHP + 1], a
+ ld a, [wEnemyMonSpecies]
+ ld [wHPBarMaxHP], a
jp Func_79793
AnimationFlashEnemyMonPic: ; 79398 (1e:5398)
@@ -1517,11 +1511,11 @@
; The mon's sprite disappears after this animation.
ld a, [H_WHOSETURN]
and a
- ld hl, $c404
- ld de, $c406
+ ld hl, wTileMap + $64
+ ld de, wTileMap + $66
jr z, .asm_793c2
- ld hl, $c3ab
- ld de, $c3ad
+ ld hl, wTileMap + $b
+ ld de, wTileMap + $d
.asm_793c2
xor a
@@ -1565,11 +1559,9 @@
call AnimationHideMonPic
ld a, [H_WHOSETURN] ; $fff3
and a
- FuncCoord 2, 5 ; $c406
- ld hl, Coord
+ hlCoord 2, 5
jr z, .asm_79407
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
+ hlCoord 11, 0
.asm_79407
xor a
push hl
@@ -1597,14 +1589,14 @@
and a
jr z, .asm_79435
ld a, $d8
- ld [$d08a], a
+ ld [wd08a], a
ld a, $50
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jr .asm_7943c
.asm_79435
xor a
- ld [$d08a], a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [wd08a], a
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
.asm_7943c
ld d, $7a
ld c, $3
@@ -1619,12 +1611,12 @@
ld a, [hl]
cp $ff
jr z, .asm_7946f
- ld a, [$d08a]
+ ld a, [wd08a]
add [hl]
ld [de], a
inc de
inc hl
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
add [hl]
ld [de], a
inc hl
@@ -1680,24 +1672,20 @@
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_794b1
- FuncCoord 16, 0 ; $c3b0
- ld hl, Coord
- FuncCoord 14, 0 ; $c3ae
- ld de, Coord
+ hlCoord 16, 0
+ deCoord 14, 0
jr .asm_794b7
.asm_794b1
- FuncCoord 5, 5 ; $c409
- ld hl, Coord
- FuncCoord 3, 5 ; $c407
- ld de, Coord
+ hlCoord 5, 5
+ deCoord 3, 5
.asm_794b7
push de
xor a
- ld [$d09f], a
+ ld [wd09f], a
call Func_794d4
pop hl
ld a, $1
- ld [$d09f], a
+ ld [wd09f], a
call Func_794d4
pop bc
dec c
@@ -1712,7 +1700,7 @@
push bc
push hl
ld c, $3
- ld a, [$d09f]
+ ld a, [wd09f]
cp $0
jr nz, .asm_794e7
call Func_7985b
@@ -1743,9 +1731,9 @@
ld bc, $3028
.asm_79506
ld a, b
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld a, c
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld bc, $501
call Func_79517
jp AnimationCleanOAM
@@ -1753,13 +1741,13 @@
Func_79517: ; 79517 (1e:5517)
push bc
xor a
- ld [$d09f], a
+ ld [wd09f], a
call LoadAnimationTileset
pop bc
ld d, $7a
ld hl, wOAMBuffer
push bc
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld e, a
.asm_7952a
call Func_79329
@@ -1768,12 +1756,12 @@
call DelayFrame
pop bc
ld a, b
- ld [$d08a], a
+ ld [wd08a], a
.asm_79538
push bc
ld hl, wOAMBuffer
.asm_7953c
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
add $8
ld e, a
ld a, [hl]
@@ -1784,9 +1772,9 @@
jr .asm_79554
.asm_7954b
ld [hl], $0
- ld a, [$d08a]
+ ld a, [wd08a]
dec a
- ld [$d08a], a
+ ld [wd08a], a
.asm_79554
ld de, $4
add hl, de
@@ -1794,7 +1782,7 @@
jr nz, .asm_7953c
call DelayFrames
pop bc
- ld a, [$d08a]
+ ld a, [wd08a]
and a
jr nz, .asm_79538
ret
@@ -1838,7 +1826,7 @@
AnimationMinimizeMon: ; 7959f (1e:559f)
; Changes the mon's sprite to a mini black sprite. Used by the
; Minimize animation.
- ld hl, $c6e8
+ ld hl, wTempPic
push hl
xor a
ld bc, $310
@@ -1883,7 +1871,7 @@
dec c
jr nz, .asm_795cd
call AnimationHideMonPic
- ld hl, $c6e8
+ ld hl, wTempPic
ld bc, $0310
xor a
call FillMemory
@@ -1893,12 +1881,10 @@
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_79602
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
+ hlCoord 12, 0
jr .asm_79605
.asm_79602
- FuncCoord 0, 5 ; $c404
- ld hl, Coord
+ hlCoord 0, 5
.asm_79605
ld d, $8
.asm_79607
@@ -1924,7 +1910,7 @@
pop de
dec b
jr nz, .asm_7960a
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
ld c, a
call DelayFrames
pop hl
@@ -1960,17 +1946,17 @@
Func_79652: ; 79652 (1e:5652)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, $9310
+ ld hl, vBackPic
jr z, .asm_7965d
- ld hl, $9000
+ ld hl, vFrontPic
.asm_7965d
- ld de, $c6e8
- ld bc, $31
+ ld de, wTempPic
+ ld bc, 7 * 7
jp CopyVideoData
AnimationWavyScreen: ; 79666 (1e:5666)
; used in Psywave/Psychic etc.
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
call Delay3
xor a
@@ -2005,7 +1991,7 @@
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call LoadScreenTilesFromBuffer2
- ld hl, $9c00
+ ld hl, vBGMap1
call Func_79e0d
ret
@@ -2031,7 +2017,7 @@
AnimationSubstitute: ; 796e0 (1e:56e0)
; Changes the pokemon's sprite to the mini sprite
- ld hl, $c6e8
+ ld hl, wTempPic
xor a
ld bc, $0310
call FillMemory
@@ -2038,31 +2024,31 @@
ld a, [$fff3]
and a
jr z, .asm_79715 ; 0x796ed $26
- ld hl, SlowbroSprite ; $4780 ; facing down sprite
- ld de, $c808
+ ld hl, SlowbroSprite ; facing down sprite
+ ld de, wTempPic + $120
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $10 ; $4790
- ld de, $c878
+ ld hl, SlowbroSprite + $10
+ ld de, wTempPic + $120 + $70
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $20 ; $47a0
- ld de, $c818
+ ld hl, SlowbroSprite + $20
+ ld de, wTempPic + $120 + $10
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $30 ; $47b0
- ld de, $c888
+ ld hl, SlowbroSprite + $30
+ ld de, wTempPic + $120 + $10 + $70
call CopySlowbroSpriteData
- jr .asm_79739 ; 0x79713 $24
+ jr .asm_79739
.asm_79715
- ld hl, SlowbroSprite + $40 ; $47c0 ; facing up sprite
- ld de, $c878
+ ld hl, SlowbroSprite + $40 ; facing up sprite
+ ld de, wTempPic + $120 + $70
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $50 ; $47d0
- ld de, $c8e8
+ ld hl, SlowbroSprite + $50
+ ld de, wTempPic + $120 + $e0
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $60 ; $47e0
- ld de, $c888
+ ld hl, SlowbroSprite + $60
+ ld de, wTempPic + $120 + $80
call CopySlowbroSpriteData
- ld hl, SlowbroSprite + $70 ; $47f0
- ld de, $c8f8
+ ld hl, SlowbroSprite + $70
+ ld de, wTempPic + $120 + $f0
call CopySlowbroSpriteData
.asm_79739
call Func_79652
@@ -2076,11 +2062,11 @@
Func_79747: ; 79747 (1e:5747)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, $ccf7
- ld a, [W_PLAYERBATTSTATUS2] ; $d063
+ ld hl, wccf7
+ ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2
jr z, .asm_79758
- ld hl, $ccf3
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld hl, wccf3
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
.asm_79758
push hl
bit 4, a
@@ -2117,40 +2103,38 @@
AnimationTransformMon: ; 79787 (1e:5787)
; Redraws this mon's sprite as the back/front sprite of the opposing mon.
; Used in Transform.
- ld a, [$cfe5]
- ld [$ceea], a
- ld a, [W_PLAYERMONID]
- ld [$cee9], a
+ ld a, [wEnemyMonSpecies]
+ ld [wHPBarMaxHP + 1], a
+ ld a, [wBattleMonSpecies]
+ ld [wHPBarMaxHP], a
Func_79793: ; 79793 (1e:5793)
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_797b0
- ld a, [$cee9]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP]
+ ld [wcf91], a
+ ld [wd0b5], a
xor a
ld [W_SPRITEFLIPPED], a
call GetMonHeader
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
+ hlCoord 12, 0
call LoadFrontSpriteByMonIndex
jr .asm_797d3
.asm_797b0
- ld a, [$cfd9]
+ ld a, [wBattleMonSpecies2]
push af
- ld a, [$ceea]
- ld [$cfd9], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP + 1]
+ ld [wBattleMonSpecies2], a
+ ld [wd0b5], a
call GetMonHeader
- ld a, $4
- call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103))
+ predef LoadMonBackPic
xor a
call Func_79842
call Func_79820
call Func_79aae
pop af
- ld [$cfd9], a
+ ld [wBattleMonSpecies2], a
.asm_797d3
ld b, $1
jp GoPAL_SET
@@ -2168,13 +2152,13 @@
Func_797e8: ; 797e8 (1e:57e8)
push bc
push de
- ld [$d09f], a
+ ld [wd09f], a
call LoadAnimationTileset
pop de
pop bc
xor a
ld e, a
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld hl, wOAMBuffer
.asm_797fa
call Func_79329
@@ -2291,28 +2275,28 @@
ld a,[H_WHOSETURN]
and a
jr nz,.next
- ld a,[W_PLAYERMONID] ; get number of current monster
+ ld a,[wBattleMonSpecies] ; get number of current monster
jr .Continue
.next
- ld a,[$CFE5]
+ ld a,[wEnemyMonSpecies]
.Continue
push hl
call GetCryData
ld b,a
pop hl
- ld a,[$C0F1]
+ ld a,[wc0f1]
add [hl]
- ld [$C0F1],a
+ ld [wc0f1],a
inc hl
- ld a,[$C0F2]
+ ld a,[wc0f2]
add [hl]
- ld [$C0F2],a
+ ld [wc0f2],a
jr .done
.NotCryMove
ld a,[hli]
- ld [$C0F1],a
+ ld [wc0f1],a
ld a,[hli]
- ld [$C0F2],a
+ ld [wc0f2],a
.done
ld a,b
ret
@@ -2509,8 +2493,8 @@
jr asm_79acb
Func_79aba: ; 79aba (1e:5aba)
- call Load16BitRegisters
- ld a, [$cd6c]
+ call GetPredefRegisters
+ ld a, [wcd6c]
and a
jr nz, .asm_79ac8
ld de, Unknown_79b02 ; $5b02
@@ -2599,7 +2583,7 @@
; in Razor Leaf's animation.
ld a, [$ff48]
push af
- ld a, [$cc79]
+ ld a, [wcc79]
ld [$ff48], a
ld d, $37
ld a, $3
@@ -2616,7 +2600,7 @@
ld a, $14
ld [W_SUBANIMTRANSFORM], a
call Func_79c97
- jp CleanLCD_OAM
+ jp ClearSprites
Func_79c97: ; 79c97 (1e:5c97)
ld c, a
@@ -2636,7 +2620,7 @@
push hl
push de
ld a, [hl]
- ld [$d08a], a
+ ld [wd08a], a
call Func_79d16
call Func_79cdb
pop de
@@ -2645,7 +2629,7 @@
ld e, l
ld d, h
pop hl
- ld a, [$d08a]
+ ld a, [wd08a]
ld [hli], a
pop bc
dec c
@@ -2668,7 +2652,7 @@
ld a, $a0
.asm_79ce8
ld [hli], a
- ld a, [$d08a]
+ ld a, [wd08a]
ld b, a
ld de, Unknown_79d0d
and $7f
@@ -2702,7 +2686,7 @@
db $00,$01,$03,$05,$07,$09,$0B,$0D,$0F
Func_79d16: ; 79d16 (1e:5d16)
- ld a, [$d08a]
+ ld a, [wd08a]
inc a
ld b, a
and $7f
@@ -2712,11 +2696,11 @@
and $80
xor $80
.asm_79d26
- ld [$d08a], a
+ ld [wd08a], a
ret
Func_79d2a: ; 79d2a (1e:5d2a)
- ld hl, $c301
+ ld hl, wOAMBuffer + $01
ld de, Unknown_79d3e
ld a, [W_SUBANIMTRANSFORM]
ld c, a
@@ -2751,22 +2735,22 @@
db $00,$84,$06,$81,$02,$88,$01,$83,$05,$89,$09,$80,$07,$87,$03,$82,$04,$85,$08,$86
AnimationShakeEnemyHUD: ; 79d77 (1e:5d77)
- ld de, $9310
- ld hl, $8000
- ld bc, $0031
+ ld de, vBackPic
+ ld hl, vSprites
+ ld bc, 7 * 7
call CopyVideoData
xor a
ld [$ffae], a
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
ld a, $90
ld [$ffb0], a
- ld hl, $9b20
+ ld hl, vBGMap0 + $320
call Func_79e0d
ld a, $38
ld [$ffb0], a
call Func_792fd
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
call AnimationHideMonPic
call Delay3
@@ -2773,24 +2757,24 @@
ld de, $0208
call Func_79de9
call AnimationShowMonPic
- call CleanLCD_OAM
+ call ClearSprites
ld a, $90
ld [$ffb0], a
- ld hl, $9c00
+ ld hl, vBGMap1
call Func_79e0d
xor a
ld [$ffb0], a
call SaveScreenTilesToBuffer1
- ld hl, $9800
+ ld hl, vBGMap0
call Func_79e0d
call ClearScreen
call Delay3
call LoadScreenTilesFromBuffer1
- ld hl, $9c00
+ ld hl, vBGMap1
jp Func_79e0d
Func_79dda: ; 79dda (1e:5dda)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, c
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld a, b
@@ -2830,7 +2814,7 @@
ld a,[W_ISINBATTLE]
cp a,2
jr z,.BlockBall ; if in trainer battle, play different animation
- ld a,[$D11E]
+ ld a,[wd11e]
ld b,a
; upper nybble: how many animations (from PokeBallAnimations) to play
@@ -2843,11 +2827,11 @@
; store these for later
ld a,b
and a,$F
- ld [$CD3D],a
+ ld [wWhichTrade],a
ld hl,.PokeBallAnimations
; choose which toss animation to use
- ld a,[$CF91]
+ ld a,[wcf91]
cp a,POKE_BALL
ld b,TOSS_ANIM
jr z,.done
@@ -2885,7 +2869,7 @@
Func_79e6a: ; 79e6a (1e:5e6a)
call WaitForSoundToFinish
- ld a, [$d05b]
+ ld a, [wd05b]
and $7f
ret z
cp $a
@@ -2901,8 +2885,8 @@
ld b, $1
ld c, (SFX_08_51 - SFX_Headers_08) / 3
.asm_79e8b
- ld [$c0f1], a
+ ld [wc0f1], a
ld a, b
- ld [$c0f2], a
+ ld [wc0f2], a
ld a, c
jp PlaySound
--- a/engine/battle/b.asm
+++ b/engine/battle/b.asm
@@ -1,5 +1,5 @@
DisplayEffectiveness: ; 2fb7b (b:7b7b)
- ld a, [$D05B]
+ ld a, [wd05b]
and a, $7F
cp a, $0A
ret z
--- a/engine/battle/b_2.asm
+++ b/engine/battle/b_2.asm
@@ -86,13 +86,13 @@
PayDayEffect_ ; 2feb8 (b:7eb8)
xor a
- ld hl, $cd6d
+ ld hl, wcd6d
ld [hli], a
ld a, [$fff3]
and a
- ld a, [$d022]
+ ld a, [wBattleMonLevel]
jr z, .asm_2fec8 ; 0x2fec3 $3
- ld a, [$cff3]
+ ld a, [wEnemyMonLevel]
.asm_2fec8
add a
ld [$ff98], a
@@ -118,10 +118,9 @@
ld a, [$ff99]
add b
ld [hl], a
- ld de, $cce7
+ ld de, wcce7
ld c, $3
- ld a, $b
- call Predef
+ predef AddBCDPredef
ld hl, CoinsScatteredText ; $7f04
jp PrintText
--- a/engine/battle/c.asm
+++ b/engine/battle/c.asm
@@ -21,19 +21,19 @@
db "@"
OneHitKOEffect_: ; 33f57 (c:7f57)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
xor a
ld [hli], a
ld [hl], a ; set the damage output to zero
dec a
- ld [$d05e], a
- ld hl, $d02a
- ld de, $cffb
+ ld [wd05e], a
+ ld hl, wBattleMonSpeed + 1
+ ld de, wEnemyMonSpeed + 1
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_33f72
- ld hl, $cffb
- ld de, $d02a
+ ld hl, wEnemyMonSpeed + 1
+ ld de, wBattleMonSpeed + 1
.asm_33f72
ld a, [de]
dec de
@@ -45,14 +45,14 @@
ld a, [hl]
sbc b
jr c, .asm_33f8a
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, $ff
ld [hli], a
ld [hl], a
ld a, $2
- ld [$d05e], a
+ ld [wd05e], a
ret
.asm_33f8a
ld a, $1
- ld [W_MOVEMISSED], a ; $d05f
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
ret
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -94,16 +94,15 @@
Func_3c04c: ; 3c04c (f:404c)
call Func_3ec92
ld a, $1
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld bc, $307
call ClearScreenArea
call DisableLCD
call LoadFontTilePatterns
call Func_3ee58
- ld hl, $9800
+ ld hl, vBGMap0
ld bc, $400
.asm_3c06f
ld a, $7f
@@ -113,7 +112,7 @@
or c
jr nz, .asm_3c06f
ld hl, wTileMap
- ld de, $9800
+ ld de, vBGMap0
ld b, $12
.asm_3c07f
ld c, $14
@@ -139,7 +138,7 @@
ld [$ffd7], a
ld [$ffaf], a
dec a
- ld [$cfcb], a
+ ld [wcfcb], a
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -171,10 +170,8 @@
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $31
ld [$ffe1], a
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
- ld a, $1
- call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ hlCoord 1, 5
+ predef Func_3f0c6
xor a
ld [$ffb0], a
ld [rWY], a ; $ff4a
@@ -183,7 +180,7 @@
call Delay3
ld b, $1
call GoPAL_SET
- call ResetLCD_OAM
+ call HideSprites
ld hl, PrintBeginningBattleText
ld b, BANK(PrintBeginningBattleText)
jp Bankswitch
@@ -190,7 +187,7 @@
Func_3c0ff: ; 3c0ff (f:40ff)
push bc
- ld hl, $c301
+ ld hl, wOAMBuffer + $01
ld c, $15
ld de, $4
.asm_3c108
@@ -216,12 +213,12 @@
Func_3c11e: ; 3c11e (f:411e)
xor a
- ld [W_PLAYERMONSALIVEFLAGS], a
- ld [$ccf5], a
- ld [$cd6a], a
+ ld [wPartyAliveFlags], a
+ ld [wccf5], a
+ ld [wcd6a], a
inc a
- ld [$d11d], a
- ld hl, W_ENEMYMON1HP ; $d8a5
+ ld [wd11d], a
+ ld hl, wEnemyMon1HP ; wd8a5
ld bc, $2b
ld d, $3
.asm_3c134
@@ -233,8 +230,8 @@
jr .asm_3c134
.asm_3c13c
ld a, d
- ld [$cc3e], a
- ld a, [W_ISINBATTLE] ; $d057
+ ld [wcc3e], a
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
call nz, Func_3c92a
ld c, $28
@@ -241,21 +238,21 @@
call DelayFrames
call SaveScreenTilesToBuffer1
.asm_3c14f
- call AnyPlayerPokemonAliveCheck
+ call AnyPartyAlive
ld a, d
and a
jp z, HandlePlayerBlackOut
call LoadScreenTilesFromBuffer1
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
and a
jp z, Func_3c1ad
.asm_3c161
call InitBattleMenu
ret c
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jr z, .asm_3c161
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
and a
jr nz, .asm_3c17a
call LoadScreenTilesFromBuffer1
@@ -263,17 +260,17 @@
jp PrintText
.asm_3c17a
callab PrintSafariZoneBattleText
- ld a, [$cffb]
+ ld a, [wEnemyMonSpeed + 1]
add a
ld b, a
jp c, asm_3c202
- ld a, [$cce9]
+ ld a, [wcce9]
and a
jr z, .asm_3c194
srl b
srl b
.asm_3c194
- ld a, [$cce8]
+ ld a, [wcce8]
and a
jr z, .asm_3c1a0
sla b
@@ -280,7 +277,7 @@
jr nc, .asm_3c1a0
ld b, $ff
.asm_3c1a0
- call GenRandom
+ call Random
cp b
jr nc, .asm_3c14f
jr asm_3c202
@@ -291,41 +288,38 @@
Func_3c1ad: ; 3c1ad (f:41ad)
xor a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
.asm_3c1b1
call Func_3ca97
jr nz, .asm_3c1bc
- ld hl, wWhichPokemon ; $cf92
+ ld hl, wWhichPokemon ; wWhichPokemon
inc [hl]
jr .asm_3c1b1
.asm_3c1bc
- ld a, [wWhichPokemon] ; $cf92
- ld [wPlayerMonNumber], a ; $cc2f
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
inc a
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [$cf91], a
- ld [$cfd9], a
+ ld [wcf91], a
+ ld [wBattleMonSpecies2], a
call LoadScreenTilesFromBuffer1
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld a, $9
call Func_3c8df
call SaveScreenTilesToBuffer1
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $1
push bc
- ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, $ccf5
+ ld hl, wPartyAliveFlags
+ predef FlagActionPredef
+ ld hl, wccf5
pop bc
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
call Func_3cba6
call LoadScreenTilesFromBuffer1
call Func_3cc91
@@ -332,12 +326,12 @@
jr MainInBattleLoop
asm_3c202: ; 3c202 (f:4202)
call LoadScreenTilesFromBuffer1
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ld hl, WildRanText
jr nz, .asm_3c216
xor a
- ld [$cf0b], a
+ ld [wcf0b], a
ld hl, EnemyRanText
.asm_3c216
call PrintText
@@ -359,23 +353,23 @@
MainInBattleLoop: ; 3c233 (f:4233)
call ReadPlayerMonCurHPAndStatus
- ld hl, W_PLAYERMONCURHP
+ ld hl, wBattleMonHP
ld a, [hli]
or [hl]
jp z, HandlePlayerMonFainted ; test if current player mon is fainted
- ld hl, $cfe6
+ ld hl, wEnemyMonHP
ld a, [hli]
or [hl]
jp z, HandleEnemyMonFainted
call SaveScreenTilesToBuffer1
xor a
- ld [$d11d], a
- ld a, [$d063]
+ ld [wd11d], a
+ ld a, [W_PLAYERBATTSTATUS2]
and $60
jr nz, .asm_3c2a6 ; 0x3c252 $52
- ld hl, $d067
+ ld hl, W_ENEMYBATTSTATUS1
res 3, [hl]
- ld hl, $d062
+ ld hl, W_PLAYERBATTSTATUS1
res 3, [hl]
ld a, [hl]
and $12
@@ -382,30 +376,30 @@
jr nz, .asm_3c2a6 ; 0x3c261 $43
call InitBattleMenu ; show battle menu
ret c
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
- ld a, [$d018]
+ ld a, [wBattleMonStatus]
and $27
jr nz, .asm_3c2a6 ; 0x3c271 $33
- ld a, [$d062]
+ ld a, [W_PLAYERBATTSTATUS1]
and $21
jr nz, .asm_3c2a6 ; 0x3c278 $2c
- ld a, [$d067]
+ ld a, [W_ENEMYBATTSTATUS1]
bit 5, a
jr z, .asm_3c288 ; 0x3c27f $7
ld a, $ff
- ld [$ccdc], a
+ ld [wPlayerSelectedMove], a
jr .asm_3c2a6 ; 0x3c286 $1e
.asm_3c288
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jr nz, .asm_3c2a6 ; 0x3c28c $18
- ld [$ccdb], a
+ ld [wMoveMenuType], a
inc a
- ld [$d07c], a
+ ld [W_ANIMATIONID], a
xor a
- ld [$cc35], a
+ ld [wcc35], a
call MoveSelectionMenu
push af
call LoadScreenTilesFromBuffer1
@@ -417,7 +411,7 @@
ld a, [W_ISLINKBATTLE]
cp $4
jr nz, .noLinkBattle
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $f
jp z, asm_3c202
cp $e
@@ -426,11 +420,11 @@
jr z, .noLinkBattle
sub $4
jr c, .noLinkBattle
- ld a, [$d062]
+ ld a, [W_PLAYERBATTSTATUS1]
bit 5, a
jr z, .asm_3c2dd ; 0x3c2c9 $12
- ld a, [$cc2e]
- ld hl, W_PLAYERMONMOVES
+ ld a, [wPlayerMoveListIndex]
+ ld hl, wBattleMonMoves
ld c, a
ld b, $0
add hl, bc
@@ -464,8 +458,8 @@
cp COUNTER
jr z, .playerMovesFirst
.compareSpeed
- ld de, W_PLAYERMONSPEED ; player speed value
- ld hl, W_ENEMYMONSPEED ; enemy speed value
+ ld de, wBattleMonSpeed ; player speed value
+ ld hl, wEnemyMonSpeed ; enemy speed value
ld c, $2
call StringCmp ; compare speed values
jr z, .speedEqual
@@ -475,12 +469,12 @@
ld a, [$ffaa]
cp $2
jr z, .invertOutcome
- call GenRandomInBattle
+ call BattleRandom
cp $80
jr c, .playerMovesFirst
jr .enemyMovesFirst
.invertOutcome
- call GenRandomInBattle
+ call BattleRandom
cp $80
jr c, .enemyMovesFirst
jr .playerMovesFirst
@@ -490,7 +484,7 @@
callab TrainerAI
jr c, .AIActionUsedEnemyFirst
call Func_3e6bc ; execute enemy move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -501,7 +495,7 @@
jp z, HandleEnemyMonFainted
call Func_3cd5a
call Func_3d65e ; execute player move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -514,7 +508,7 @@
jp MainInBattleLoop
.playerMovesFirst
call Func_3d65e ; execute player move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -528,7 +522,7 @@
callab TrainerAI
jr c, .AIActionUsedPlayerFirst
call Func_3e6bc ; execute enemy move
- ld a, [$d078]
+ ld a, [wd078]
and a
ret nz
ld a, b
@@ -542,13 +536,13 @@
jp MainInBattleLoop
HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd)
- ld hl, W_PLAYERMONCURHP ; $d015
- ld de, W_PLAYERMONSTATUS ; $d018
+ ld hl, wBattleMonHP ; wd015
+ ld de, wBattleMonStatus ; wBattleMonStatus
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn
- ld hl, W_ENEMYMONCURHP ; $cfe6
- ld de, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonHP ; wEnemyMonHP
+ ld de, wEnemyMonStatus ; wcfe9
.playersTurn
ld a, [de]
and (1 << BRN) | (1 << PSN)
@@ -562,17 +556,17 @@
.poisoned
call PrintText
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,BURN_PSN_ANIM
call PlayMoveAnimation ; play burn/poison animation
pop hl
call HandlePoisonBurnLeechSeed_DecreaseOwnHP
.notBurnedOrPoisoned
- ld de, W_PLAYERBATTSTATUS2 ; $d063
+ ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn2
- ld de, W_ENEMYBATTSTATUS2 ; $d068
+ ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.playersTurn2
ld a, [de]
add a
@@ -583,7 +577,7 @@
xor $1
ld [H_WHOSETURN], a ; $fff3
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,ABSORB
call PlayMoveAnimation ; play leech seed animation (from opposing mon)
pop af
@@ -643,13 +637,13 @@
jr nz, .nonZeroDamage
inc c ; damage is at least 1
.nonZeroDamage
- ld hl, W_PLAYERBATTSTATUS3 ; $d064
- ld de, W_PLAYERTOXICCOUNTER ; $d06c
+ ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
+ ld de, W_PLAYERTOXICCOUNTER ; wd06c
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn
- ld hl, W_ENEMYBATTSTATUS3 ; $d069
- ld de, W_ENEMYTOXICCOUNTER ; $d071
+ ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYTOXICCOUNTER ; wd071
.playersTurn
bit 0, [hl]
jr z, .noToxic
@@ -690,11 +684,11 @@
; adds bc to enemy HP
HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3)
push hl
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .playersTurn
- ld hl, W_PLAYERMONMAXHP ; $d023
+ ld hl, wBattleMonMaxHP ; wd023
.playersTurn
ld a, [hli]
ld [wHPBarMaxHP+1], a
@@ -739,55 +733,52 @@
ret
UpdateCurMonHPBar: ; 3c4f6 (f:44f6)
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord ; tile pointer to player HP bar
+ hlCoord 10, 9 ; tile pointer to player HP bar
ld a, [H_WHOSETURN] ; $fff3
and a
ld a, $1
jr z, .playersTurn
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord ; tile pointer to enemy HP bar
+ hlCoord 2, 2 ; tile pointer to enemy HP bar
xor a
.playersTurn
push bc
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
pop bc
ret
Func_3c50f: ; 3c50f (f:450f)
- ld a, [$d06a]
+ ld a, [wd06a]
and a
jr nz, .asm_3c51a
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
res 5, [hl]
.asm_3c51a
- ld a, [$d06f]
+ ld a, [wd06f]
and a
ret nz
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 5, [hl]
ret
HandleEnemyMonFainted: ; 3c525 (f:4525)
xor a
- ld [$ccf0], a
+ ld [wccf0], a
call FaintEnemyPokemon
- call AnyPlayerPokemonAliveCheck
+ call AnyPartyAlive
ld a, d
and a
jp z, HandlePlayerBlackOut
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
call nz, Func_3cd60
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ret z
call AnyEnemyPokemonAliveCheck
jp z, TrainerBattleVictory
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
jr nz, .asm_3c555
@@ -796,20 +787,20 @@
call Func_3c7d8
.asm_3c555
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
call Func_3c664
jp z, asm_3c202
xor a
- ld [$cd6a], a
+ ld [wcd6a], a
jp MainInBattleLoop
FaintEnemyPokemon ; 0x3c567
call ReadPlayerMonCurHPAndStatus
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr z, .wild
- ld a, [W_ENEMYMONNUMBER] ; $cfe8
- ld hl, W_ENEMYMON1HP
+ ld a, [wEnemyMonPartyPos]
+ ld hl, wEnemyMon1HP
ld bc, $2c ; mon struct len
call AddNTimes
xor a
@@ -816,40 +807,38 @@
ld [hli], a
ld [hl], a
.wild
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
res 2, [hl]
xor a
- ld [W_NUMHITS], a ; $d074
- ld hl, $d065 ; enemy statuses
+ ld [W_NUMHITS], a ; wd074
+ ld hl, wd065 ; enemy statuses
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_ENEMYDISABLEDMOVE], a ; $d072
- ld [$ccef], a
- ld [$ccf3], a
- ld hl, $ccf1
+ ld [W_ENEMYDISABLEDMOVE], a ; W_ENEMYDISABLEDMOVE
+ ld [wccef], a
+ ld [wccf3], a
+ ld hl, wccf1
ld [hli], a
ld [hl], a
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
- FuncCoord 12, 6 ; $c424
- ld de, Coord
+ hlCoord 12, 5
+ deCoord 12, 6
call Func_3c893
ld hl, wTileMap
ld bc, $40b
call ClearScreenArea
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr z, .wild_win
xor a
- ld [$c0f1], a
- ld [$c0f2], a
+ ld [wc0f1], a
+ ld [wc0f2], a
ld a, (SFX_08_48 - SFX_Headers_08) / 3 ; SFX_FALL?
call PlaySoundWaitForCurrent
.sfxwait
- ld a, [$c02a]
+ ld a, [wc02a]
cp (SFX_08_48 - SFX_Headers_08) / 3
jr z, .sfxwait
ld a, (SFX_08_43 - SFX_Headers_08) / 3 ; SFX_DROP
@@ -861,16 +850,16 @@
ld a, MUSIC_DEFEATED_WILD_MON
call PlayBattleVictoryMusic
.sfxplayed
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
jr nz, .playermonnotfaint
- ld a, [$ccf0]
+ ld a, [wccf0]
and a
jr nz, .playermonnotfaint
call Func_3c741
.playermonnotfaint
- call AnyPlayerPokemonAliveCheck
+ call AnyPartyAlive
ld a, d
and a
ret z
@@ -879,12 +868,12 @@
call Func_3ee94
call SaveScreenTilesToBuffer1
xor a
- ld [$cf0b], a
+ ld [wcf0b], a
ld b, EXP__ALL
call IsItemInBag
push af
jr z, .no_exp_all
- ld hl, $d002
+ ld hl, wd002
ld b, $7
.exp_all_loop
srl [hl]
@@ -893,13 +882,13 @@
jr nz, .exp_all_loop
.no_exp_all
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
callab GainExperience
pop af
ret z
ld a, $1
- ld [$cc5b], a
- ld a, [W_NUMINPARTY] ; $d163
+ ld [wcc5b], a
+ ld a, [wPartyCount] ; wPartyCount
ld b, $0
.asm_3c62c
scf
@@ -907,7 +896,7 @@
dec a
jr nz, .asm_3c62c
ld a, b
- ld [W_PLAYERMONSALIVEFLAGS], a
+ ld [wPartyAliveFlags], a
ld hl, GainExperience
ld b, BANK(GainExperience)
jp Bankswitch
@@ -918,17 +907,17 @@
Func_3c643: ; 3c643 (f:4643)
xor a
- ld [$d083], a
- ld [$c02a], a
+ ld [wd083], a
+ ld [wc02a], a
inc a
- ld [$ccf6], a
+ ld [wccf6], a
ret
AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f)
- ld a, [wEnemyPartyCount] ; $d89c
+ ld a, [wEnemyPartyCount] ; wEnemyPartyCount
ld b, a
xor a
- ld hl, W_ENEMYMON1HP ; $d8a5
+ ld hl, wEnemyMon1HP ; wd8a5
ld de, $2c
.asm_3c65a
or [hl]
@@ -942,15 +931,15 @@
ret
Func_3c664: ; 3c664 (f:4664)
- ld hl, $cf1e
+ ld hl, wcf1e
ld e, $30
call GetBattleHealthBarColor
callab DrawEnemyPokeballs
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3c687
call Func_3d605
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $f
ret z
call LoadScreenTilesFromBuffer1
@@ -957,9 +946,9 @@
.asm_3c687
call EnemySendOut
xor a
- ld [W_ENEMYMOVENUM], a ; $cfcc
- ld [$cd6a], a
- ld [$ccd5], a
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
+ ld [wcd6a], a
+ ld [wccd5], a
inc a
ret
@@ -966,12 +955,12 @@
TrainerBattleVictory: ; 3c696 (f:4696)
call Func_3c643
ld b, MUSIC_DEFEATED_GYM_LEADER
- ld a, [W_GYMLEADERNO] ; $d05c
+ ld a, [W_GYMLEADERNO] ; W_GYMLEADERNO
and a
jr nz, .gymleader
ld b, MUSIC_DEFEATED_TRAINER
.gymleader
- ld a, [W_TRAINERCLASS] ; $d031
+ ld a, [W_TRAINERCLASS] ; wd031
cp SONY3 ; final battle against rival
jr nz, .notrival
ld b, MUSIC_DEFEATED_GYM_LEADER
@@ -978,13 +967,13 @@
ld hl, W_FLAGS_D733
set 1, [hl]
.notrival
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ld a, b
call nz, PlayBattleVictoryMusic
ld hl, TrainerDefeatedText
call PrintText
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ret z
call ScrollTrainerPicAfterBattle
@@ -993,11 +982,10 @@
call Func_3381
ld hl, MoneyForWinningText
call PrintText
- ld de, wPlayerMoney + 2 ; $d349
- ld hl, $d07b
+ ld de, wPlayerMoney + 2 ; wd349
+ ld hl, wd07b
ld c, $3
- ld a, $b
- jp Predef ; indirect jump to Func_f81d (f81d (3:781d))
+ predef_jump AddBCDPredef
MoneyForWinningText: ; 3c6e4 (f:46e4)
TX_FAR _MoneyForWinningText
@@ -1010,7 +998,7 @@
PlayBattleVictoryMusic: ; 3c6ee (f:46ee)
push af
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySoundWaitForCurrent
ld c, BANK(Music_DefeatedTrainer)
pop af
@@ -1019,18 +1007,18 @@
HandlePlayerMonFainted: ; 3c700 (f:4700)
ld a, $1
- ld [$ccf0], a
+ ld [wccf0], a
call Func_3c741
- call AnyPlayerPokemonAliveCheck ; test if any more mons are alive
+ call AnyPartyAlive ; test if any more mons are alive
ld a, d
and a
jp z, HandlePlayerBlackOut
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
jr nz, .enemyMonNotFainted
call FaintEnemyPokemon
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ret z ; if wild encounter, battle is over
call AnyEnemyPokemonAliveCheck
@@ -1041,49 +1029,45 @@
call Func_3c7d8
jp nz, MainInBattleLoop
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
call Func_3c664
jp z, asm_3c202
xor a
- ld [$cd6a], a
+ ld [wcd6a], a
jp MainInBattleLoop
Func_3c741: ; 3c741 (f:4741)
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld c, a
- ld hl, W_PLAYERMONSALIVEFLAGS ; clear fainted mon's alive flag
+ ld hl, wPartyAliveFlags ; clear fainted mon's alive flag
ld b, $0
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ predef FlagActionPredef
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 2, [hl] ; reset "attacking multiple times" flag
- ld a, [$d083]
+ ld a, [wd083]
bit 7, a ; skip sound flag (red bar (?))
jr z, .skipWaitForSound
ld a, $ff
- ld [$d083], a
+ ld [wd083], a
call WaitForSoundToFinish
.skipWaitForSound
- ld hl, $cd05
+ ld hl, wcd05
ld [hli], a
ld [hl], a
- ld [W_PLAYERMONSTATUS], a ; $d018
+ ld [wBattleMonStatus], a ; wBattleMonStatus
call ReadPlayerMonCurHPAndStatus
- FuncCoord 9, 7 ; $c435
- ld hl, Coord
+ hlCoord 9, 7
ld bc, $50b
call ClearScreenArea
- FuncCoord 1, 10 ; $c469
- ld hl, Coord
- FuncCoord 1, 11 ; $c47d
- ld de, Coord
+ hlCoord 1, 10
+ deCoord 1, 11
call Func_3c893
ld a, $1
- ld [$cf0b], a
- ld a, [$ccf0]
+ ld [wcf0b], a
+ ld a, [wccf0]
and a
ret z
- ld a, [W_PLAYERMONID]
+ ld a, [wBattleMonSpecies]
call PlayCry
ld hl, PlayerMonFaintedText
jp PrintText
@@ -1095,7 +1079,7 @@
Func_3c79b: ; 3c79b (f:479b)
call Func_3ee94
call SaveScreenTilesToBuffer1
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
dec a
ret nz
@@ -1102,23 +1086,22 @@
ld hl, UseNextMonText
call PrintText
.asm_3c7ad
- FuncCoord 13, 9 ; $c461
- ld hl, Coord
+ hlCoord 13, 9
ld bc, $a0e
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [$d12e]
+ ld a, [wd12e]
cp $2
jr z, .asm_3c7c4
and a
ret
.asm_3c7c4
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_3c7ad
- ld hl, W_PARTYMON1_SPEED ; $d193
- ld de, W_ENEMYMONSPEED
+ ld hl, wPartyMon1Speed
+ ld de, wEnemyMonSpeed
jp Func_3cab9
UseNextMonText: ; 3c7d3 (f:47d3)
@@ -1127,7 +1110,7 @@
Func_3c7d8: ; 3c7d8 (f:47d8)
ld a, $2
- ld [$d07d], a
+ ld [wd07d], a
call DisplayPartyMenu
.asm_3c7e0
jr nc, .asm_3c7e7
@@ -1137,28 +1120,26 @@
.asm_3c7e7
call Func_3ca97
jr z, .asm_3c7e2
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3c7fa
inc a
- ld [$cd6a], a
+ ld [wcd6a], a
call Func_3d605
.asm_3c7fa
xor a
- ld [$cd6a], a
- call CleanLCD_OAM
- ld a, [wWhichPokemon] ; $cf92
- ld [wPlayerMonNumber], a ; $cc2f
+ ld [wcd6a], a
+ call ClearSprites
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld c, a
- ld hl, W_PLAYERMONSALIVEFLAGS
+ ld hl, wPartyAliveFlags
ld b, $1
push bc
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
pop bc
- ld hl, $ccf5
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wccf5
+ predef FlagActionPredef
call Func_3cba6
call GBPalWhiteOut
call Func_3ee5b
@@ -1166,7 +1147,7 @@
call GoPAL_SET_CF1C
call GBPalNormal
call Func_3cc91
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
ret
@@ -1174,10 +1155,10 @@
; called when player is out of usable mons.
; prints approriate lose message, sets carry flag if player blacked out (special case for initial rival fight)
HandlePlayerBlackOut: ; 3c837 (f:4837)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr z, .notSony1Battle
- ld a, [W_CUROPPONENT] ; $d059
+ ld a, [W_CUROPPONENT] ; wd059
cp $c8 + SONY1
jr nz, .notSony1Battle
ld hl, wTileMap ; sony 1 battle
@@ -1195,15 +1176,15 @@
ld b, $0
call GoPAL_SET
ld hl, PlayerBlackedOutText2
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .noLinkBattle
ld hl, LinkBattleLostText
.noLinkBattle
call PrintText
- ld a, [$d732]
+ ld a, [wd732]
res 5, a
- ld [$d732], a
+ ld [wd732], a
call ClearScreen
scf
ret
@@ -1221,10 +1202,10 @@
db "@"
Func_3c893: ; 3c893 (f:4893)
- ld a, [$d730]
+ ld a, [wd730]
push af
set 6, a
- ld [$d730], a
+ ld [wd730], a
ld b, $7
.asm_3c89e
push bc
@@ -1263,7 +1244,7 @@
dec b
jr nz, .asm_3c89e
pop af
- ld [$d730], a
+ ld [wd730], a
ret
SevenSpacesText: ; 3c8d7 (f:48d7)
@@ -1310,33 +1291,31 @@
; XXX this needs cleaning up. it's what runs when a juggler switches pokemon
EnemySendOut: ; 3c90e (f:490e)
- ld hl,W_PLAYERMONSALIVEFLAGS
+ ld hl,wPartyAliveFlags
xor a
ld [hl],a
- ld a,[$CC2F]
+ ld a,[wPlayerMonNumber]
ld c,a
ld b,1
push bc
- ld a,$10
- call Predef
- ld hl,$CCF5
+ predef FlagActionPredef
+ ld hl,wccf5
xor a
ld [hl],a
pop bc
- ld a,$10
- call Predef
+ predef FlagActionPredef
Func_3c92a: ; 3c92a (f:492a)
xor a
- ld hl,$D065
+ ld hl,wd065
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
ld [hl],a
- ld [$D072],a
- ld [$CCEF],a
- ld [$CCF3],a
- ld hl,$CCF1
+ ld [W_ENEMYDISABLEDMOVE],a
+ ld [wccef],a
+ ld [wccf3],a
+ ld hl,wccf1
ld [hli],a
ld [hl],a
dec a
@@ -1343,16 +1322,15 @@
ld [wAICount],a
ld hl,W_PLAYERBATTSTATUS1
res 5,[hl]
- FuncCoord 18, 0 ; $c3b2
- ld hl,Coord
+ hlCoord 18, 0
ld a,8
call Func_3c8df
call Func_3ee94
call SaveScreenTilesToBuffer1
- ld a,[$D12B]
+ ld a,[W_ISLINKBATTLE]
cp 4
jr nz,.next
- ld a,[$CC3E]
+ ld a,[wcc3e]
sub 4
ld [wWhichPokemon],a
jr .next3
@@ -1360,14 +1338,14 @@
ld b,$FF
.next2
inc b
- ld a,[$CFE8]
+ ld a,[wEnemyMonPartyPos]
cp b
jr z,.next2
- ld hl,$D8A4
+ ld hl,wEnemyMon1
ld a,b
ld [wWhichPokemon],a
push bc
- ld bc,$2C
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
pop bc
inc hl
@@ -1378,59 +1356,58 @@
jr z,.next2
.next3
ld a,[wWhichPokemon]
- ld hl,$D8C5
- ld bc,$2C
+ ld hl,wEnemyMon1Level
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a,[hl]
- ld [$D127],a
+ ld [W_CURENEMYLVL],a
ld a,[wWhichPokemon]
inc a
- ld hl,$D89C
+ ld hl,wEnemyPartyCount
ld c,a
ld b,0
add hl,bc
ld a,[hl]
- ld [W_ENEMYMONID],a
- ld [$CF91],a
+ ld [wEnemyMonSpecies2],a
+ ld [wcf91],a
call Func_3eb01
- ld hl,$CFE6
+ ld hl,wEnemyMonHP
ld a,[hli]
- ld [$CCE3],a
+ ld [wcce3],a
ld a,[hl]
- ld [$CCE4],a
+ ld [wcce4],a
ld a,1
- ld [$CC26],a
- ld a,[$D11D]
+ ld [wCurrentMenuItem],a
+ ld a,[wd11d]
dec a
jr z,.next4
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
dec a
jr z,.next4
- ld a,[$D12B]
+ ld a,[W_ISLINKBATTLE]
cp 4
jr z,.next4
- ld a,[$D355]
+ ld a,[W_OPTIONS]
bit 6,a
jr nz,.next4
ld hl, TrainerAboutToUseText
call PrintText
- FuncCoord 0, 7 ; $c42c
- ld hl,Coord
+ hlCoord 0, 7
ld bc,$0801
ld a,$14
- ld [$D125],a
+ ld [wd125],a
call DisplayTextBoxID
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
and a
jr nz,.next4
ld a,2
- ld [$D07D],a
+ ld [wd07d],a
call DisplayPartyMenu
.next9
ld a,1
- ld [$CC26],a
+ ld [wCurrentMenuItem],a
jr c,.next7
- ld hl,$CC2F
+ ld hl,wPlayerMonNumber
ld a,[wWhichPokemon]
cp [hl]
jr nz,.next6
@@ -1443,13 +1420,13 @@
call Func_3ca97
jr z,.next8
xor a
- ld [$CC26],a
+ ld [wCurrentMenuItem],a
.next7
call GBPalWhiteOut
call Func_3ee5b
call LoadScreenTilesFromBuffer1
.next4
- call CleanLCD_OAM
+ call ClearSprites
ld hl,wTileMap
ld bc,$040B
call ClearScreenArea
@@ -1458,27 +1435,25 @@
call GBPalNormal
ld hl,TrainerSentOutText
call PrintText
- ld a,[W_ENEMYMONID]
- ld [$CF91],a
- ld [$D0B5],a
+ ld a,[wEnemyMonSpecies2]
+ ld [wcf91],a
+ ld [wd0b5],a
call GetMonHeader
- ld de,$9000
+ ld de,vFrontPic
call LoadMonFrontSprite
ld a,$CF
ld [$FFE1],a
- FuncCoord 15, 6 ; $c427
- ld hl,Coord
- ld a,2
- call Predef
- ld a,[W_ENEMYMONID]
+ hlCoord 15, 6
+ predef Func_3f073
+ ld a,[wEnemyMonSpecies2]
call PlayCry
call Func_3cdec
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
and a
ret nz
xor a
- ld [W_PLAYERMONSALIVEFLAGS],a
- ld [$CCF5],a
+ ld [wPartyAliveFlags],a
+ ld [wccf5],a
call SaveScreenTilesToBuffer1
jp Func_3d1ba
@@ -1492,12 +1467,12 @@
; tests if the player has any pokemon that are not fainted
; sets d = 0 if all fainted, d != 0 if some mons are still alive
-AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83)
- ld a, [W_NUMINPARTY] ; $d163
+AnyPartyAlive: ; 3ca83 (f:4a83)
+ ld a, [wPartyCount] ; wPartyCount
ld e, a
xor a
- ld hl, W_PARTYMON1_HP ; $d16c
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA - 1
+ ld hl, wPartyMon1HP ; wd16c
+ ld bc, wPartyMon2 - wPartyMon1 - 1
.partyMonsLoop
or [hl]
inc hl
@@ -1509,14 +1484,14 @@
ret
Func_3ca97: ; 3ca97 (f:4a97)
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_HP ; $d16c
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1HP ; wd16c
ld bc, $2c
call AddNTimes
ld a, [hli]
or [hl]
ret nz
- ld a, [$d11d]
+ ld a, [wd11d]
and a
jr nz, .asm_3cab2
ld hl, NoWillText
@@ -1532,18 +1507,18 @@
Func_3cab9: ; 3cab9 (f:4ab9)
call IsGhostBattle
jp z, .asm_3cb5c
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jp z, .asm_3cb5c
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jp z, .asm_3cb5c
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .asm_3cb4c
- ld a, [$d120]
+ ld a, [wd120]
inc a
- ld [$d120], a
+ ld [wd120], a
ld a, [hli]
ld [$ff97], a
ld a, [hl]
@@ -1583,7 +1558,7 @@
ld a, [$ff97]
and a
jr nz, .asm_3cb5c
- ld a, [$d120]
+ ld a, [wd120]
ld c, a
.asm_3cb2b
dec c
@@ -1595,13 +1570,13 @@
jr c, .asm_3cb5c
jr .asm_3cb2b
.asm_3cb39
- call GenRandomInBattle
+ call BattleRandom
ld b, a
ld a, [$ff98]
cp b
jr nc, .asm_3cb5c
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
ld hl, CantEscapeText
jr .asm_3cb4f
.asm_3cb4c
@@ -1609,29 +1584,29 @@
.asm_3cb4f
call PrintText
ld a, $1
- ld [$d11f], a
+ ld [wd11f], a
call SaveScreenTilesToBuffer1
and a
ret
.asm_3cb5c
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
ld a, $2
jr nz, .asm_3cb81
call SaveScreenTilesToBuffer1
xor a
- ld [$cd6a], a
+ ld [wcd6a], a
ld a, $f
- ld [wPlayerMoveListIndex], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
call Func_3d605
call LoadScreenTilesFromBuffer1
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $f
ld a, $2
jr z, .asm_3cb81
dec a
.asm_3cb81
- ld [$cf0b], a
+ ld [wcf0b], a
ld a, (SFX_08_44 - SFX_Headers_08) / 3
call PlaySoundWaitForCurrent
ld hl, GotAwayText
@@ -1654,35 +1629,35 @@
db "@"
Func_3cba6: ; 3cba6 (f:4ba6)
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $2c
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
call AddNTimes
- ld de, W_PLAYERMONID
+ ld de, wBattleMonSpecies
ld bc, $c
call CopyData
ld bc, $f
add hl, bc
- ld de, W_PLAYERMONIVS
+ ld de, wBattleMonDVs
ld bc, $2
call CopyData
- ld de, W_PLAYERMONPP ; $d02d
+ ld de, wBattleMonPP ; wBattleMonPP
ld bc, $4
call CopyData
- ld de, W_PLAYERMONLEVEL ; $d022
+ ld de, wBattleMonLevel ; wBattleMonLevel
ld bc, $b
call CopyData
- ld a, [$cfd9]
- ld [$d0b5], a
+ ld a, [wBattleMonSpecies2]
+ ld [wd0b5], a
call GetMonHeader
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
call SkipFixedLengthTextEntries
- ld de, W_PLAYERMONNAME
+ ld de, wBattleMonNick
ld bc, $b
call CopyData
- ld hl, W_PLAYERMONLEVEL ; $d022
- ld de, $cd0f
+ ld hl, wBattleMonLevel ; wBattleMonLevel
+ ld de, wcd0f
ld bc, $b
call CopyData
call Func_3ed1a
@@ -1689,7 +1664,7 @@
call Func_3ee19
ld a, $7
ld b, $8
- ld hl, wPlayerMonAttackMod ; $cd1a
+ ld hl, wPlayerMonAttackMod ; wcd1a
.asm_3cc0e
ld [hli], a
dec b
@@ -1697,40 +1672,40 @@
ret
Func_3cc13: ; 3cc13 (f:4c13)
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $2c
- ld hl, wEnemyMons ; $d8a4
+ ld hl, wEnemyMons ; wEnemyMon1Species
call AddNTimes
- ld de, $cfe5
+ ld de, wEnemyMonSpecies
ld bc, $c
call CopyData
ld bc, $f
add hl, bc
- ld de, $cff1
+ ld de, wEnemyMonDVs
ld bc, $2
call CopyData
- ld de, W_ENEMYMONPP ; $cffe
+ ld de, wEnemyMonPP ; wcffe
ld bc, $4
call CopyData
- ld de, W_ENEMYMONLEVEL ; $cff3
+ ld de, wEnemyMonLevel ; wEnemyMonLevel
ld bc, $b
call CopyData
- ld a, [$cfe5]
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies]
+ ld [wd0b5], a
call GetMonHeader
- ld hl, $d9ee
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wEnemyMonNicks
+ ld a, [wWhichPokemon] ; wWhichPokemon
call SkipFixedLengthTextEntries
- ld de, W_ENEMYMONNAME
+ ld de, wEnemyMonNick
ld bc, $b
call CopyData
- ld hl, W_ENEMYMONLEVEL ; $cff3
- ld de, $cd23
+ ld hl, wEnemyMonLevel ; wEnemyMonLevel
+ ld de, wcd23
ld bc, $b
call CopyData
call Func_3ed1e
ld hl, W_MONHBASESTATS
- ld de, $d002
+ ld de, wd002
ld b, $5
.asm_3cc79
ld a, [hli]
@@ -1740,18 +1715,18 @@
jr nz, .asm_3cc79
ld a, $7
ld b, $8
- ld hl, wEnemyMonStatMods ; $cd2e
+ ld hl, wEnemyMonStatMods ; wcd2e
.asm_3cc86
ld [hli], a
dec b
jr nz, .asm_3cc86
- ld a, [wWhichPokemon] ; $cf92
- ld [W_ENEMYMONNUMBER], a ; $cfe8
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wEnemyMonPartyPos], a
ret
Func_3cc91: ; 3cc91 (f:4c91)
callab SendOutMon
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
or [hl]
jp z, Func_3cca4
@@ -1759,91 +1734,81 @@
Func_3cca4: ; 3cca4 (f:4ca4)
call Func_3cd60
- ld a, $4
- call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103))
+ predef LoadMonBackPic
xor a
ld [$ffe1], a
- ld hl, $cc2d
+ ld hl, wcc2d
ld [hli], a
ld [hl], a
- ld [$cc5b], a
- ld [$d05b], a
- ld [W_PLAYERMOVENUM], a ; $cfd2
- ld hl, $ccf1
+ ld [wcc5b], a
+ ld [wd05b], a
+ ld [W_PLAYERMOVENUM], a ; wcfd2
+ ld hl, wccf1
ld [hli], a
ld [hl], a
- ld hl, $d060
+ ld hl, wd060
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_PLAYERDISABLEDMOVE], a ; $d06d
- ld [$ccee], a
- ld [$ccf7], a
+ ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE
+ ld [wccee], a
+ ld [wccf7], a
ld b, $1
call GoPAL_SET
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 5, [hl]
ld a, $1
ld [H_WHOSETURN], a ; $fff3
ld a, POOF_ANIM
call PlayMoveAnimation
- FuncCoord 4, 11 ; $c480
- ld hl, Coord
- ld a, $2
- call Predef ; indirect jump to Func_3f073 (3f073 (f:7073))
- ld a, [$cf91]
+ hlCoord 4, 11
+ predef Func_3f073
+ ld a, [wcf91]
call PlayCry
call Func_3ee94
jp SaveScreenTilesToBuffer1
Func_3ccfa: ; 3ccfa (f:4cfa)
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld bc, $707
call ClearScreenArea
- FuncCoord 3, 7 ; $c42f
- ld hl, Coord
+ hlCoord 3, 7
ld bc, $505
xor a
- ld [$cd6c], a
+ ld [wcd6c], a
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
ld c, $4
call DelayFrames
call Func_3cd3a
- FuncCoord 4, 9 ; $c458
- ld hl, Coord
+ hlCoord 4, 9
ld bc, $303
ld a, $1
- ld [$cd6c], a
+ ld [wcd6c], a
xor a
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
call Delay3
call Func_3cd3a
ld a, $4c
- FuncCoord 5, 11 ; $c481
- ld [Coord], a
+ Coorda 5, 11
Func_3cd3a: ; 3cd3a (f:4d3a)
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+ hlCoord 1, 5
ld bc, $707
jp ClearScreenArea
-; reads player's current mon's HP into W_PLAYERMONCURHP
+; reads player's current mon's HP into wBattleMonHP
ReadPlayerMonCurHPAndStatus: ; 3cd43 (f:4d43)
- ld a, [wPlayerMonNumber] ; $cc2f
- ld hl, W_PARTYMON1_HP ; $d16c
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
+ ld hl, wPartyMon1HP ; wd16c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld d, h
ld e, l
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld bc, $4 ; 2 bytes HP, 1 byte unknown (unused?), 1 byte status
jp CopyData
@@ -1854,67 +1819,61 @@
Func_3cd60: ; 3cd60 (f:4d60)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 9, 7 ; $c435
- ld hl, Coord
+ hlCoord 9, 7
ld bc, $50b
call ClearScreenArea
callab PlacePlayerHUDTiles
- FuncCoord 18, 9 ; $c466
- ld hl, Coord
+ hlCoord 18, 9
ld [hl], $73
- ld de, W_PLAYERMONNAME
- FuncCoord 10, 7 ; $c436
- ld hl, Coord
+ ld de, wBattleMonNick
+ hlCoord 10, 7
call Func_3ce9c
call PlaceString
- ld hl, W_PLAYERMONID
- ld de, $cf98
+ ld hl, wBattleMonSpecies
+ ld de, wcf98
ld bc, $c
call CopyData
- ld hl, W_PLAYERMONLEVEL ; $d022
- ld de, $cfb9
+ ld hl, wBattleMonLevel ; wBattleMonLevel
+ ld de, wcfb9
ld bc, $b
call CopyData
- FuncCoord 14, 8 ; $c44e
- ld hl, Coord
+ hlCoord 14, 8
push hl
inc hl
- ld de, $cf9c
+ ld de, wcf9c
call PrintStatusConditionNotFainted
pop hl
jr nz, .asm_3cdae
call PrintLevel
.asm_3cdae
- ld a, [$cf98]
- ld [$cf91], a
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
- ld a, $5f
- call Predef ; indirect jump to Func_128ef (128ef (4:68ef))
+ ld a, [wcf98]
+ ld [wcf91], a
+ hlCoord 10, 9
+ predef DrawHP
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, $cf1d
+ ld hl, wcf1d
call GetBattleHealthBarColor
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
or [hl]
jr z, .asm_3cdd9
- ld a, [$ccf6]
+ ld a, [wccf6]
and a
ret nz
- ld a, [$cf1d]
+ ld a, [wcf1d]
cp $2
jr z, .asm_3cde6
.asm_3cdd9
- ld hl, $d083
+ ld hl, wd083
bit 7, [hl]
ld [hl], $0
ret z
xor a
- ld [$c02a], a
+ ld [wc02a], a
ret
.asm_3cde6
- ld hl, $d083
+ ld hl, wd083
set 7, [hl]
ret
@@ -1925,24 +1884,22 @@
ld bc, $40c
call ClearScreenArea
callab PlaceEnemyHUDTiles
- ld de, W_ENEMYMONNAME
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ ld de, wEnemyMonNick
+ hlCoord 1, 0
call Func_3ce9c
call PlaceString
- FuncCoord 4, 1 ; $c3b8
- ld hl, Coord
+ hlCoord 4, 1
push hl
inc hl
- ld de, W_ENEMYMONSTATUS ; $cfe9
+ ld de, wEnemyMonStatus ; wcfe9
call PrintStatusConditionNotFainted
pop hl
jr nz, .asm_3ce23
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [$cfb9], a
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [wcfb9], a
call PrintLevel
.asm_3ce23
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
ld a, [hli]
ld [$ff97], a
ld a, [hld]
@@ -1959,7 +1916,7 @@
ld a, $30
ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
call Multiply
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld a, [hli]
ld b, a
ld a, [hl]
@@ -1999,13 +1956,12 @@
Func_3ce7f: ; 3ce7f (f:4e7f)
xor a
- ld [wListMenuID], a ; $cf94
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ ld [wListMenuID], a ; wListMenuID
+ hlCoord 2, 2
call DrawHPBar
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, $cf1e
+ ld hl, wcf1e
GetBattleHealthBarColor: ; 3ce90 (f:4e90)
ld b, [hl]
@@ -2039,7 +1995,7 @@
InitBattleMenu: ; 3ceb3 (f:4eb3)
call LoadScreenTilesFromBuffer1 ; restore saved screen
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
and a
jr nz, .nonstandardbattle
call Func_3cd5a ; redraw names and HP bars?
@@ -2046,20 +2002,20 @@
call Func_3ee94
call SaveScreenTilesToBuffer1
.nonstandardbattle
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2 ; safari
ld a, $b ; safari menu id
jr nz, .menuselected
ld a, $1b ; regular menu id
.menuselected
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
dec a
jp nz, RegularBattleMenu ; regular battle
; the following happens for the old man tutorial
- ld hl, W_PLAYERNAME ; $d158
- ld de, W_GRASSRATE ; $d887
+ ld hl, wPlayerName ; wd158
+ ld de, W_GRASSRATE ; W_GRASSRATE
ld bc, $b
call CopyData ; temporarily save the player name in unused space,
; which is supposed to get overwritten when entering a
@@ -2067,18 +2023,16 @@
; may not get overwritten (cinnabar) and the infamous
; missingno. glitch can show up.
ld hl, OldManName ; $4f12
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
ld bc, $b
call CopyData
; the following simulates the keystrokes by drawing menus on screen
- FuncCoord 9, 14 ; $c4c1
- ld hl, Coord
+ hlCoord 9, 14
ld [hl], "▶"
ld c, $50
call DelayFrames
ld [hl], $7f
- FuncCoord 9, 16 ; $c4e9
- ld hl, Coord
+ hlCoord 9, 16
ld [hl], "▶"
ld c, $32
call DelayFrames
@@ -2090,38 +2044,33 @@
db "OLD MAN@"
RegularBattleMenu: ; 3cf1a (f:4f1a)
- ld a, [$cc2d]
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld a, [wcc2d]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
sub $2
jr c, .leftcolumn
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
jr .rightcolumn
.leftcolumn
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
ld a, " "
jr z, .safaribattle
- FuncCoord 15, 14 ; $c4c7
- ld [Coord], a
- FuncCoord 15, 16 ; $c4ef
- ld [Coord], a
+ Coorda 15, 14
+ Coorda 15, 16
ld b, $9
jr .notsafari
.safaribattle
- FuncCoord 13, 14 ; $c4c5
- ld [Coord], a
- FuncCoord 13, 16 ; $c4ed
- ld [Coord], a
- FuncCoord 7, 14 ; $c4bf
- ld hl, Coord
- ld de, W_NUMSAFARIBALLS ; $da47
+ Coorda 13, 14
+ Coorda 13, 16
+ hlCoord 7, 14
+ ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS
ld bc, $102
call PrintNumber
ld b, $1
.notsafari
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $e
ld [hli], a
ld a, b
@@ -2136,29 +2085,24 @@
jr nz, .rightcolumn
jr .selection
.rightcolumn
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
ld a, " "
jr z, .safarirightcolumn
- FuncCoord 9, 14 ; $c4c1
- ld [Coord], a
- FuncCoord 9, 16 ; $c4e9
- ld [Coord], a
+ Coorda 9, 14
+ Coorda 9, 16
ld b, $f
jr .notsafarirightcolumn
.safarirightcolumn
- FuncCoord 1, 14 ; $c4b9
- ld [Coord], a
- FuncCoord 1, 16 ; $c4e1
- ld [Coord], a
- FuncCoord 7, 14 ; $c4bf
- ld hl, Coord
- ld de, W_NUMSAFARIBALLS ; $da47
+ Coorda 1, 14
+ Coorda 1, 16
+ hlCoord 7, 14
+ ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS
ld bc, $102
call PrintNumber
ld b, $d
.notsafarirightcolumn
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $e
ld [hli], a
ld a, b
@@ -2172,15 +2116,15 @@
call HandleMenuInput
bit 5, a
jr nz, .leftcolumn
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
add $2 ; if we're in the right column, the actual id is +2
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
.selection
call PlaceUnfilledArrowMenuCursor
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc2d], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc2d], a
jr z, .asm_3cfd0
cp $1
jr nz, .asm_3cfcb
@@ -2194,21 +2138,21 @@
and a
jr nz, Func_3cfe8
; first option was selected...
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr z, .safari1
xor a
- ld [$d120], a
+ ld [wd120], a
jp LoadScreenTilesFromBuffer1 ; restore saved screen and return??
.safari1 ; safari first option??
ld a, SAFARI_BALL
- ld [$cf91], a
+ ld [wcf91], a
jr asm_3d05f
Func_3cfe8: ; 3cfe8 (f:4fe8)
cp $2
jp nz, Func_3d0ca
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3cffd
ld hl, ItemsCantBeUsedHereText
@@ -2216,27 +2160,27 @@
jp InitBattleMenu
.asm_3cffd ; bag?
call SaveScreenTilesToBuffer2 ; copy bg?
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr nz, asm_3d00e
ld a, SAFARI_BAIT
- ld [$cf91], a
+ ld [wcf91], a
jr asm_3d05f
asm_3d00e: ; 3d00e (f:500e)
call LoadScreenTilesFromBuffer1
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
and a
jr nz, .asm_3d01a
call Func_3cd5a
.asm_3d01a
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
dec a
jr nz, Func_3d031
ld hl, OldManItemList
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
jr Func_3d03c
OldManItemList: ; 3d02d (f:502d)
@@ -2243,56 +2187,56 @@
db $01, POKE_BALL, 50, $ff
Func_3d031
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
Func_3d03c
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
- ld a, [$cc2c]
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wListMenuID], a ; wListMenuID
+ ld a, [wcc2c]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
call DisplayListMenuID
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc2c], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc2c], a
ld a, $0
- ld [$cc37], a
- ld [$cc35], a
+ ld [wcc37], a
+ ld [wcc35], a
jp c, InitBattleMenu
asm_3d05f: ; 3d05f (f:505f)
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
call GetItemName
call CopyStringToCF4B ; copy name
xor a
- ld [$d152], a
+ ld [wd152], a
call UseItem
call Func_3ee5b
- call CleanLCD_OAM
+ call ClearSprites
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld a, [W_BATTLETYPE] ; $d05a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr z, .asm_3d09c
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jp z, asm_3d00e
- ld a, [W_PLAYERBATTSTATUS1] ; $d062
+ ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
bit 5, a
jr z, .asm_3d09c
- ld hl, $d06a
+ ld hl, wd06a
dec [hl]
jr nz, .asm_3d09c
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
res 5, [hl]
.asm_3d09c
- ld a, [$d11c]
+ ld a, [wd11c]
and a
jr nz, .asm_3d0b7
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr z, .asm_3d0b2
call LoadScreenTilesFromBuffer1
@@ -2305,9 +2249,9 @@
.asm_3d0b7
call GBPalNormal
xor a
- ld [$d11c], a
+ ld [wd11c], a
ld a, $2
- ld [$cf0b], a
+ ld [wcf0b], a
scf
ret
@@ -2319,23 +2263,23 @@
dec a
jp nz, Func_3d1fa
call SaveScreenTilesToBuffer2
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
cp $2
jr nz, Func_3d0e0
ld a, SAFARI_ROCK
- ld [$cf91], a
+ ld [wcf91], a
jp asm_3d05f
Func_3d0e0: ; 3d0e0 (f:50e0)
call LoadScreenTilesFromBuffer1
xor a
- ld [$d07d], a
- ld [$cc35], a
+ ld [wd07d], a
+ ld [wcc35], a
call DisplayPartyMenu
asm_3d0ed: ; 3d0ed (f:50ed)
jp nc, Func_3d119
asm_3d0f0: ; 3d0f0 (f:50f0)
- call CleanLCD_OAM
+ call ClearSprites
call GBPalWhiteOut
call Func_3ee5b
call LoadScreenTilesFromBuffer2
@@ -2344,21 +2288,20 @@
jp InitBattleMenu
Func_3d105: ; 3d105 (f:5105)
- FuncCoord 11, 11 ; $c487
- ld hl, Coord
+ hlCoord 11, 11
ld bc, $81
ld a, $7f
call FillMemory
xor a
- ld [$d07d], a
+ ld [wd07d], a
call GoBackToPartyMenu
jr asm_3d0ed
Func_3d119: ; 3d119 (f:5119)
ld a, $c
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $c
ld [hli], a
ld [hli], a
@@ -2375,32 +2318,30 @@
bit 1, a
jr nz, Func_3d105
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $2
jr z, asm_3d0f0
and a
jr z, .asm_3d18a
xor a
- ld [$cc49], a
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- call CleanLCD_OAM
- ld a, $36
- call Predef ; indirect jump to StatusScreen (12953 (4:6953))
- ld a, $37
- call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57))
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld [wcc49], a
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
+ call ClearSprites
+ predef StatusScreen
+ predef StatusScreen2
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 4, a
ld hl, AnimationSubstitute
jr nz, .asm_3d182
- ld a, [$ccf3]
+ ld a, [wccf3]
and a
ld hl, AnimationMinimizeMon
jr nz, .asm_3d182
- ld a, [$cfe5]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies]
+ ld [wcf91], a
+ ld [wd0b5], a
call GetMonHeader
- ld de, $9000
+ ld de, vFrontPic
call LoadMonFrontSprite
jr .asm_3d187
.asm_3d182
@@ -2409,9 +2350,9 @@
.asm_3d187
jp Func_3d0e0
.asm_3d18a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld d, a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
cp d
jr nz, .asm_3d19d
ld hl, AlreadyOutText
@@ -2421,9 +2362,9 @@
call Func_3ca97
jp z, Func_3d105
ld a, $1
- ld [$cd6a], a
+ ld [wcd6a], a
call GBPalWhiteOut
- call CleanLCD_OAM
+ call ClearSprites
call Func_3ee5b
call LoadScreenTilesFromBuffer1
call GoPAL_SET_CF1C
@@ -2434,23 +2375,21 @@
ld c, $32
call DelayFrames
call Func_3ccfa
- ld a, [wWhichPokemon] ; $cf92
- ld [wPlayerMonNumber], a ; $cc2f
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld c, a
ld b, $1
push bc
- ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wPartyAliveFlags
+ predef FlagActionPredef
pop bc
- ld hl, $ccf5
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wccf5
+ predef FlagActionPredef
call Func_3cba6
call Func_3cc91
call SaveScreenTilesToBuffer1
ld a, $2
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
and a
ret
@@ -2461,14 +2400,14 @@
Func_3d1fa: ; 3d1fa (f:51fa)
call LoadScreenTilesFromBuffer1
ld a, $3
- ld [wCurrentMenuItem], a ; $cc26
- ld hl, W_PLAYERMONSPEED
- ld de, W_ENEMYMONSPEED
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld hl, wBattleMonSpeed
+ ld de, wEnemyMonSpeed
call Func_3cab9
ld a, $0
- ld [$d11f], a
+ ld [wd11f], a
ret c
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
ret nz
jp InitBattleMenu
@@ -2482,7 +2421,7 @@
jr .regularmenu
.loadmoves
- ld de, $d0dc
+ ld de, wd0dc
ld bc, $4
call CopyData
callab Func_39b87
@@ -2489,7 +2428,7 @@
ret
.writemoves
- ld de, $d0e1
+ ld de, wd0e1
ld a, [$fff6]
set 2, a
ld [$fff6], a
@@ -2502,59 +2441,51 @@
.regularmenu
call Func_3d3f5
ret z
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
call .loadmoves
- FuncCoord 4, 12 ; $c494
- ld hl, Coord
+ hlCoord 4, 12
ld b, $4
ld c, $e
di
call TextBoxBorder
- FuncCoord 4, 12 ; $c494
- ld hl, Coord
+ hlCoord 4, 12
ld [hl], $7a
- FuncCoord 10, 12 ; $c49a
- ld hl, Coord
+ hlCoord 10, 12
ld [hl], $7e
ei
- FuncCoord 6, 13 ; $c4aa
- ld hl, Coord
+ hlCoord 6, 13
call .writemoves
ld b, $5
ld a, $c
jr .menuset
.mimicmenu
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
call .loadmoves
- FuncCoord 0, 7 ; $c42c
- ld hl, Coord
+ hlCoord 0, 7
ld b, $4
ld c, $e
call TextBoxBorder
- FuncCoord 2, 8 ; $c442
- ld hl, Coord
+ hlCoord 2, 8
call .writemoves
ld b, $1
ld a, $7
jr .menuset
.relearnmenu
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_MOVE1 ; $d173
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
ld bc, $2c
call AddNTimes
call .loadmoves
- FuncCoord 4, 7 ; $c430
- ld hl, Coord
+ hlCoord 4, 7
ld b, $4
ld c, $e
call TextBoxBorder
- FuncCoord 6, 8 ; $c446
- ld hl, Coord
+ hlCoord 6, 8
call .writemoves
ld b, $5
ld a, $7
.menuset
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld [hli], a
ld a, b
ld [hli], a ; wTopMenuItemX
@@ -2563,12 +2494,12 @@
jr z, .selectedmoveknown
ld a, $1
jr nc, .selectedmoveknown
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
inc a
.selectedmoveknown
ld [hli], a ; wCurrentMenuItem
inc hl ; wTileBehindCursor untouched
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
inc a
ld [hli], a ; wMaxMenuItem
@@ -2579,7 +2510,7 @@
dec a
ld b, $c3
jr z, .matchedkeyspicked
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr z, .matchedkeyspicked
ld a, [W_FLAGS_D733]
@@ -2593,7 +2524,7 @@
ld a, [wMoveMenuType]
cp $1
jr z, .movelistindex1
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
inc a
.movelistindex1
ld [hl], a ; wLastMenuItem
@@ -2604,8 +2535,7 @@
jr z, .battleselect
dec a
jr nz, .select
- FuncCoord 1, 14 ; $c4b9
- ld hl, Coord
+ hlCoord 1, 14
ld de, WhichTechniqueString ; $53b8
call PlaceString
jr .select
@@ -2614,11 +2544,10 @@
bit 0, a
jr nz, .select
call Func_3d4b6
- ld a, [$cc35]
+ ld a, [wcc35]
and a
jr z, .select
- FuncCoord 5, 13 ; $c4a9
- ld hl, Coord
+ hlCoord 5, 13
dec a
ld bc, $14
call AddNTimes
@@ -2638,10 +2567,10 @@
bit 1, a ; B, but was it reset above?
push af
xor a
- ld [$cc35], a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld [wcc35], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
dec a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld b, a
ld a, [wMoveMenuType]
dec a ; if not mimic
@@ -2651,7 +2580,7 @@
.nob
dec a
ld a, b
- ld [wPlayerMoveListIndex], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
jr nz, .moveselected
pop af
ret
@@ -2658,8 +2587,8 @@
.moveselected
pop af
ret nz
- ld hl, W_PLAYERMONPP ; $d02d
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wBattleMonPP ; wBattleMonPP
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
@@ -2666,23 +2595,23 @@
ld a, [hl]
and $3f
jr z, .nopp
- ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
+ ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE
swap a
and $f
dec a
cp c
jr z, .disabled
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 3, a ; transformed
jr nz, .dummy ; game freak derp
.dummy
- ld a, [wCurrentMenuItem] ; $cc26
- ld hl, W_PLAYERMONMOVES
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld hl, wBattleMonMoves
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [wPlayerSelectedMove], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
xor a
ret
.disabled
@@ -2707,19 +2636,19 @@
db "WHICH TECHNIQUE?@"
Func_3d3c9: ; 3d3c9 (f:53c9)
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jp nz, Func_3d2fe
call EraseMenuCursor
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
jp Func_3d2fe
Func_3d3dd: ; 3d3dd (f:53dd)
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld b, a
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
inc a
cp b
@@ -2726,15 +2655,15 @@
jp nz, Func_3d2fe
call EraseMenuCursor
ld a, $1
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
jp Func_3d2fe
Func_3d3f5: ; 3d3f5 (f:53f5)
ld a, $a5
- ld [wPlayerSelectedMove], a ; $ccdc
- ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
+ ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE
and a
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
jr nz, .asm_3d40e
ld a, [hli]
or [hl]
@@ -2776,43 +2705,43 @@
db "@"
Func_3d435: ; 3d435 (f:5435)
- ld a, [$cc35]
+ ld a, [wcc35]
and a
jr z, asm_3d4ad
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
call Func_3d493
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
call Func_3d493
- ld hl, W_PLAYERDISABLEDMOVE ; $d06d
+ ld hl, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE
ld a, [hl]
swap a
and $f
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp b
jr nz, .asm_3d463
ld a, [hl]
and $f
ld b, a
- ld a, [$cc35]
+ ld a, [wcc35]
swap a
add b
ld [hl], a
jr .asm_3d474
.asm_3d463
- ld a, [$cc35]
+ ld a, [wcc35]
cp b
jr nz, .asm_3d474
ld a, [hl]
and $f
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
swap a
add b
ld [hl], a
.asm_3d474
- ld hl, W_PARTYMON1_MOVE1 ; $d173
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld bc, $2c
call AddNTimes
push hl
@@ -2822,12 +2751,12 @@
add hl, bc
call Func_3d493
xor a
- ld [$cc35], a
+ ld [wcc35], a
jp MoveSelectionMenu
Func_3d493: ; 3d493 (f:5493)
push hl
- ld a, [$cc35]
+ ld a, [wcc35]
dec a
ld c, a
ld b, $0
@@ -2835,7 +2764,7 @@
ld d, h
ld e, l
pop hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
dec a
ld c, a
ld b, $0
@@ -2847,83 +2776,74 @@
ld [de], a
ret
asm_3d4ad: ; 3d4ad (f:54ad)
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc35], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc35], a
jp MoveSelectionMenu
Func_3d4b6: ; 3d4b6 (f:54b6)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 0, 8 ; $c440
- ld hl, Coord
+ hlCoord 0, 8
ld b, $3
ld c, $9
call TextBoxBorder
- ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
+ ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE
and a
jr z, .asm_3d4df
swap a
and $f
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp b
jr nz, .asm_3d4df
- FuncCoord 1, 10 ; $c469
- ld hl, Coord
+ hlCoord 1, 10
ld de, DisabledText
call PlaceString
jr .asm_3d54e
.asm_3d4df
- ld hl, wCurrentMenuItem ; $cc26
+ ld hl, wCurrentMenuItem ; wCurrentMenuItem
dec [hl]
xor a
ld [H_WHOSETURN], a ; $fff3
- ld hl, W_PLAYERMONMOVES
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wBattleMonMoves
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [wPlayerSelectedMove], a ; $ccdc
- ld a, [wPlayerMonNumber] ; $cc2f
- ld [wWhichPokemon], a ; $cf92
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
+ ld [wWhichPokemon], a ; wWhichPokemon
ld a, $4
- ld [$cc49], a
+ ld [wcc49], a
callab GetMaxPP
- ld hl, wCurrentMenuItem ; $cc26
+ ld hl, wCurrentMenuItem ; wCurrentMenuItem
ld c, [hl]
inc [hl]
ld b, $0
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
add hl, bc
ld a, [hl]
and $3f
- ld [$cd6d], a
- FuncCoord 1, 9 ; $c455
- ld hl, Coord
+ ld [wcd6d], a
+ hlCoord 1, 9
ld de, TypeText
call PlaceString
- FuncCoord 7, 11 ; $c483
- ld hl, Coord
+ hlCoord 7, 11
ld [hl], "/"
- FuncCoord 5, 9 ; $c459
- ld hl, Coord
+ hlCoord 5, 9
ld [hl], "/"
- FuncCoord 5, 11 ; $c481
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 5, 11
+ ld de, wcd6d
ld bc, $102
call PrintNumber
- FuncCoord 8, 11 ; $c484
- ld hl, Coord
- ld de, $d11e
+ hlCoord 8, 11
+ ld de, wd11e
ld bc, $102
call PrintNumber
call GetCurrentMove
- FuncCoord 2, 10 ; $c46a
- ld hl, Coord
- ld a, $5d
- call Predef ; indirect jump to Func_27d98 (27d98 (9:7d98))
+ hlCoord 2, 10
+ predef Func_27d98
.asm_3d54e
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -2942,7 +2862,7 @@
call SaveScreenTilesToBuffer1
call Func_3d605
call LoadScreenTilesFromBuffer1
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $e
jp z, .asm_3d601
cp $d
@@ -2949,9 +2869,9 @@
jr z, .unableToMove
cp $4
ret nc
- ld [$cce2], a
+ ld [wEnemyMoveListIndex], a
ld c, a
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld b, $0
add hl, bc
ld a, [hl]
@@ -2964,7 +2884,7 @@
ld a, [hl]
and $12 ; using multi-turn move or bide
ret nz
- ld a, [W_ENEMYMONSTATUS]
+ ld a, [wEnemyMonStatus]
and SLP | 1 << FRZ ; sleeping or frozen
ret nz
ld a, [W_ENEMYBATTSTATUS1]
@@ -2977,7 +2897,7 @@
ld a, $ff
jr .done
.notCaughtInWrap
- ld hl, W_ENEMYMONMOVES+1 ; 2nd enemy move
+ ld hl, wEnemyMonMoves+1 ; 2nd enemy move
ld a, [hld]
and a
jr nz, .atLeastTwoMovesAvailable
@@ -2992,7 +2912,7 @@
callab AIEnemyTrainerChooseMoves
.chooseRandomMove
push hl
- call GenRandomInBattle ; get random
+ call BattleRandom
ld b, $1
cp $3f ; select move 1 in [0,3e] (63/256 chance)
jr c, .moveChosen
@@ -3028,14 +2948,14 @@
Func_3d605: ; 3d605 (f:5605)
ld a, $ff
- ld [$cc3e], a
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld [wcc3e], a
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
cp $f
jr z, .asm_3d630
- ld a, [$cd6a]
+ ld a, [wcd6a]
and a
jr nz, .asm_3d629
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
cp $a5
ld b, $e
jr z, .asm_3d62f
@@ -3042,21 +2962,21 @@
dec b
inc a
jr z, .asm_3d62f
- ld a, [wPlayerMoveListIndex] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex
jr .asm_3d630
.asm_3d629
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
add $4
ld b, a
.asm_3d62f
ld a, b
.asm_3d630
- ld [$cc42], a
+ ld [wcc42], a
callab PrintWaitingText
.asm_3d63b
call Func_22c3
call DelayFrame
- ld a, [$cc3e]
+ ld a, [wcc3e]
inc a
jr z, .asm_3d63b
ld b, $a
@@ -3076,16 +2996,16 @@
Func_3d65e: ; 3d65e (f:565e)
xor a
ld [H_WHOSETURN], a ; $fff3
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
inc a
jp z, Func_3d80a
xor a
- ld [W_MOVEMISSED], a ; $d05f
- ld [$cced], a
- ld [$ccf4], a
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
+ ld [wcced], a
+ ld [wccf4], a
ld a, $a
- ld [$d05b], a
- ld a, [$cd6a]
+ ld [wd05b], a
+ ld a, [wcd6a]
and a
jp nz, Func_3d80a
call PrintGhostText
@@ -3095,7 +3015,7 @@
jp [hl]
.asm_3d68a
call GetCurrentMove
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
bit 4, [hl]
jr nz, asm_3d6a9
call Func_3dc88
@@ -3102,7 +3022,7 @@
jp z, Func_3d80a
Func_3d69a: ; 3d69a (f:569a)
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
cp CHARGE_EFFECT
jp z, Func_3f132
cp FLY_EFFECT
@@ -3117,7 +3037,7 @@
asm_3d6b0: ; 3d6b0 (f:56b0)
call PrintMonName1Text
ld hl,DecrementPP
- ld de,$CCDC ; pointer to the move just used
+ ld de,wPlayerSelectedMove ; pointer to the move just used
ld b,BANK(DecrementPP)
call Bankswitch
ld a,[W_PLAYERMOVEEFFECT] ; effect of the move just used
@@ -3168,7 +3088,7 @@
ld b,BANK(Func_79747)
call nz,Bankswitch
pop af
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,[W_PLAYERMOVENUM]
call PlayMoveAnimation
call Func_3eed3
@@ -3190,7 +3110,7 @@
jr asm_3d766
.next5
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
asm_3d766
@@ -3200,7 +3120,7 @@
call MirrorMoveCopyMove
jp z,Func_3d80a
xor a
- ld [$CCED],a
+ ld [wcced],a
jp Func_3d69a
.next6
cp a,METRONOME_EFFECT
@@ -3226,7 +3146,7 @@
call Func_3dc5c
callab DisplayEffectiveness
ld a,1
- ld [$CCF4],a
+ ld [wccf4],a
.next9
ld a,[W_PLAYERMOVEEFFECT]
ld hl,EffectsArray4
@@ -3233,7 +3153,7 @@
ld de,1
call IsInArray
call c,Func_3f132
- ld hl,$CFE6
+ ld hl,wEnemyMonHP
ld a,[hli]
ld b,[hl]
or b
@@ -3243,9 +3163,9 @@
ld hl,W_PLAYERBATTSTATUS1
bit 2,[hl]
jr z,.next10 ; 57EF
- ld a,[$D06A]
+ ld a,[wd06a]
dec a
- ld [$D06A],a
+ ld [wd06a],a
jp nz,asm_3d714
res 2,[hl]
@@ -3269,7 +3189,7 @@
Func_3d80a: ; 3d80a (f:580a)
xor a
- ld [$CD6A],a
+ ld [wcd6a],a
ld b,1
ret
@@ -3280,7 +3200,7 @@
ld a,[H_WHOSETURN]
and a
jr nz,.Ghost
- ld a,[W_PLAYERMONSTATUS] ; player’s turn
+ ld a,[wBattleMonStatus] ; player’s turn
and a,SLP | (1 << FRZ)
ret nz
ld hl,ScaredText
@@ -3319,18 +3239,18 @@
ret
Func_3d854: ; 3d854 (f:5854)
- ld hl,W_PLAYERMONSTATUS
+ ld hl,wBattleMonStatus
ld a,[hl]
and a,SLP
jr z,.FrozenCheck ; to 5884
dec a
- ld [W_PLAYERMONSTATUS],a ; decrement sleep count
+ ld [wBattleMonStatus],a ; decrement sleep count
and a
jr z,.WakeUp ; to 5874
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,SLP_ANIM - 1
call PlayMoveAnimation
ld hl,FastAsleepText
@@ -3341,7 +3261,7 @@
call PrintText
.sleepDone
xor a
- ld [$CCF1],a
+ ld [wccf1],a
ld hl,Func_3d80a
jp Func_3da37
@@ -3351,7 +3271,7 @@
ld hl,IsFrozenText
call PrintText
xor a
- ld [$CCF1],a
+ ld [wccf1],a
ld hl,Func_3d80a
jp Func_3da37
@@ -3384,7 +3304,7 @@
ld hl,Func_3d80a ; $580a
jp Func_3da37
.next
- ld hl,$D06D
+ ld hl,W_PLAYERDISABLEDMOVE
ld a,[hl]
and a
jr z,.next2 ; 58EE
@@ -3393,7 +3313,7 @@
and a,$F
jr nz,.next2
ld [hl],a
- ld [$CCEE],a
+ ld [wccee],a
ld hl,DisabledNoMoreText
call PrintText
.next2
@@ -3400,7 +3320,7 @@
ld a,[W_PLAYERBATTSTATUS1]
add a
jr nc,.next3 ; 5929
- ld hl,$D06B
+ ld hl,wd06b
dec [hl]
jr nz,.next4 ; 5907
ld hl,W_PLAYERBATTSTATUS1
@@ -3412,10 +3332,10 @@
ld hl,IsConfusedText
call PrintText
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,CONF_ANIM - 1
call PlayMoveAnimation
- call GenRandomInBattle
+ call BattleRandom
cp a,$80
jr c,.next3
ld hl,W_PLAYERBATTSTATUS1
@@ -3425,10 +3345,10 @@
call PrintHurtItselfText
jr .next5 ; 5952
.next3
- ld a,[$CCEE]
+ ld a,[wccee]
and a
jr z,.ParalysisCheck ; 593E
- ld hl,$CCDC
+ ld hl,wPlayerSelectedMove
cp [hl]
jr nz,.ParalysisCheck
call PrintMoveIsDisabledText
@@ -3435,10 +3355,10 @@
ld hl,Func_3d80a ; $580a
jp Func_3da37
.ParalysisCheck
- ld hl,W_PLAYERMONSTATUS
+ ld hl,wBattleMonStatus
bit PAR,[hl]
jr z,.next7 ; 5975
- call GenRandomInBattle ; random number
+ call BattleRandom
cp a,$3F
jr nc,.next7
ld hl,FullyParalyzedText
@@ -3456,7 +3376,7 @@
jr .next9 ; 596F
.next8
xor a
- ld [$CC5B],a
+ ld [wcc5b],a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
.next9
@@ -3468,11 +3388,11 @@
jr z,.next10 ; 59D0
xor a
ld [W_PLAYERMOVENUM],a
- ld hl,$D0D7
+ ld hl,W_DAMAGE
ld a,[hli]
ld b,a
ld c,[hl]
- ld hl,$D075
+ ld hl,wd075
ld a,[hl]
add c
ld [hld],a
@@ -3479,7 +3399,7 @@
ld a,[hl]
adc b
ld [hl],a
- ld hl,$D06A
+ ld hl,wd06a
dec [hl]
jr z,.next11 ; 599B
ld hl,Func_3d80a ; $580a
@@ -3490,15 +3410,15 @@
ld hl,UnleashedEnergyText
call PrintText
ld a,1
- ld [$CFD4],a
- ld hl,$D075
+ ld [W_PLAYERMOVEPOWER],a
+ ld hl,wd075
ld a,[hld]
add a
ld b,a
- ld [$D0D8],a
+ ld [wd0d8],a
ld a,[hl]
rl a
- ld [$D0D7],a
+ ld [W_DAMAGE],a
or b
jr nz,.next12 ; 59C2
ld a,1
@@ -3518,7 +3438,7 @@
ld [W_PLAYERMOVENUM],a
ld hl,ThrashingAboutText
call PrintText
- ld hl,$D06A
+ ld hl,wd06a
dec [hl]
ld hl,asm_3d6dc ; $56dc
jp nz,Func_3da37
@@ -3526,11 +3446,11 @@
ld hl,W_PLAYERBATTSTATUS1
res 1,[hl]
set 7,[hl]
- call GenRandomInBattle ; random number
+ call BattleRandom
and a,3
inc a
inc a
- ld [$D06B],a
+ ld [wd06b],a
pop hl
jp Func_3da37
.next13
@@ -3538,23 +3458,23 @@
jp z,Func_3da1a
ld hl,AttackContinuesText
call PrintText
- ld a,[$D06A]
+ ld a,[wd06a]
dec a
- ld [$D06A],a
+ ld [wd06a],a
ld hl,asm_3d714 ; $5714
jp nz,Func_3da37
jp Func_3da37
Func_3da1a: ; 3da1a (f:5a1a)
- ld a, [W_PLAYERBATTSTATUS2] ; $d063
+ ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2
bit 6, a
jp z, Func_3da39
ld a, RAGE
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
xor a
- ld [W_PLAYERMOVEEFFECT], a ; $cfd3
+ ld [W_PLAYERMOVEEFFECT], a ; wcfd3
ld hl, asm_3d6b0 ; $56b0
jp Func_3da37
@@ -3628,19 +3548,19 @@
db "@"
PrintMoveIsDisabledText: ; 3da88 (f:5a88)
- ld hl, wPlayerSelectedMove ; $ccdc
- ld de, W_PLAYERBATTSTATUS1 ; $d062
+ ld hl, wPlayerSelectedMove ; wPlayerSelectedMove
+ ld de, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3da97
inc hl
- ld de, W_ENEMYBATTSTATUS1 ; $d067
+ ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
.asm_3da97
ld a, [de]
res 4, a
ld [de], a
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
ld hl, MoveIsDisabledText
jp PrintText
@@ -3652,22 +3572,22 @@
PrintHurtItselfText: ; 3daad (f:5aad)
ld hl, HurtItselfText
call PrintText
- ld hl, W_ENEMYMONDEFENSE ; $cff8
+ ld hl, wEnemyMonDefense ; wcff8
ld a, [hli]
push af
ld a, [hld]
push af
- ld a, [W_PLAYERMONDEF]
+ ld a, [wBattleMonDefense]
ld [hli], a
- ld a, [$d028]
+ ld a, [wBattleMonDefense + 1]
ld [hl], a
- ld hl, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERMOVEEFFECT ; wcfd3
push hl
ld a, [hl]
push af
xor a
ld [hli], a
- ld [$d05e], a
+ ld [wd05e], a
ld a, $28
ld [hli], a
xor a
@@ -3677,13 +3597,13 @@
pop af
pop hl
ld [hl], a
- ld hl, $cff9
+ ld hl, wEnemyMonDefense + 1
pop af
ld [hld], a
pop af
ld [hl], a
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
inc a
ld [H_WHOSETURN], a ; $fff3
call PlayMoveAnimation
@@ -3701,20 +3621,20 @@
db $08 ; asm
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
- ld hl, $ccf1
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
+ ld hl, wccf1
jr z, .asm_3db11
- ld a, [W_ENEMYMOVENUM] ; $cfcc
- ld hl, $ccf2
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld hl, wccf2
.asm_3db11
ld [hl], a
- ld [$d11e], a
+ ld [wd11e], a
call Func_3db85
- ld a, [$cced]
+ ld a, [wcced]
and a
ld hl, Used2Text
ret nz
- ld a, [$d11e]
+ ld a, [wd11e]
cp DOUBLESLAP
ld hl, Used2Text
ret c
@@ -3731,7 +3651,7 @@
db $08 ; asm
PrintInsteadText: ; 3db39 (f:5b39)
- ld a, [$cced]
+ ld a, [wcced]
and a
jr z, PrintCF4BText
ld hl, InsteadText
@@ -3749,7 +3669,7 @@
TX_FAR _CF4BText
db $08 ; asm
ld hl, ExclamationPointPointerTable
- ld a, [$d11e]
+ ld a, [wd11e]
add a
push bc
ld b, $0
@@ -3790,7 +3710,7 @@
Func_3db85: ; 3db85 (f:5b85)
push bc
- ld a, [$d11e] ; move number
+ ld a, [wd11e] ; move number
ld c, a
ld b, $0
ld hl, UnknownMovesList_3dba3 ; $5ba3
@@ -3806,7 +3726,7 @@
jr .asm_3db8f
.asm_3db9d
ld a, b
- ld [$d11e], a
+ ld [wd11e], a
pop bc
ret
@@ -3826,18 +3746,18 @@
db $FF ; terminator
PrintMoveFailureText: ; 3dbe2 (f:5be2)
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3dbed
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3dbed
ld hl, DoesntAffectMonText ; $5c57
- ld a, [$d05b]
+ ld a, [wd05b]
and $7f
jr z, .asm_3dc04
ld hl, AttackMissedText ; $5c42
- ld a, [$d05e]
+ ld a, [wd05e]
cp $ff
jr nz, .asm_3dc04
ld hl, UnaffectedText ; $5c4c
@@ -3845,7 +3765,7 @@
push de
call PrintText
xor a
- ld [$d05e], a
+ ld [wd05e], a
pop de
ld a, [de]
cp JUMP_KICK_EFFECT
@@ -3852,7 +3772,7 @@
ret nz
; if you get here, the mon used hi jump kick and missed
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hli]
ld b, [hl]
srl a
@@ -3872,8 +3792,7 @@
ld hl, KeptGoingAndCrashedText ; $5c47
call PrintText
ld b, $4
- ld a, $24
- call Predef ; indirect jump to Func_48125 (48125 (12:4125))
+ predef Func_48125
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3dc3f
@@ -3902,7 +3821,7 @@
db "@"
Func_3dc5c: ; 3dc5c (f:5c5c)
- ld a, [$d05e]
+ ld a, [wd05e]
and a
jr z, .asm_3dc75
dec a
@@ -3916,7 +3835,7 @@
ld l, a
call PrintText
xor a
- ld [$d05e], a
+ ld [wd05e], a
.asm_3dc75
ld c, $14
jp DelayFrames
@@ -3935,8 +3854,8 @@
Func_3dc88: ; 3dc88 (f:5c88)
xor a
- ld [$cced], a
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld [wcced], a
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3dc97
ld a, $1
@@ -3943,15 +3862,15 @@
and a
ret
.asm_3dc97
- ld hl, W_PARTYMON1_OTID ; $d177
+ ld hl, wPartyMon1OTID ; wPartyMon1OTID
ld bc, $2c
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
call AddNTimes
- ld a, [wPlayerID] ; $d359
+ ld a, [wPlayerID] ; wPlayerID
cp [hl]
jr nz, .asm_3dcb1
inc hl
- ld a, [wPlayerID + 1] ; $d35a
+ ld a, [wPlayerID + 1] ; wd35a
cp [hl]
jp z, Func_3ddb0
.asm_3dcb1
@@ -3973,7 +3892,7 @@
.asm_3dcce
ld b, a
ld c, a
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
ld d, a
add b
ld b, a
@@ -3984,7 +3903,7 @@
cp d
jp nc, Func_3ddb0
.asm_3dcdf
- call GenRandomInBattle
+ call BattleRandom
swap a
cp b
jr nc, .asm_3dcdf
@@ -3991,7 +3910,7 @@
cp c
jp c, Func_3ddb0
.asm_3dceb
- call GenRandomInBattle
+ call BattleRandom
cp b
jr nc, .asm_3dceb
cp c
@@ -3999,7 +3918,7 @@
ld a, d
sub c
ld b, a
- call GenRandomInBattle
+ call BattleRandom
swap a
sub b
jr c, .asm_3dd0e
@@ -4010,16 +3929,16 @@
call PrintHurtItselfText
jp Func_3ddb4
.asm_3dd0e
- call GenRandomInBattle
+ call BattleRandom
add a
swap a
and $7
jr z, .asm_3dd0e
- ld [W_PLAYERMONSTATUS], a ; $d018
+ ld [wBattleMonStatus], a ; wBattleMonStatus
ld hl, BeganToNapText
jr .asm_3dd3a
.asm_3dd20
- call GenRandomInBattle
+ call BattleRandom
and $3
ld hl, LoafingAroundText
and a
@@ -4035,16 +3954,16 @@
call PrintText
jr Func_3ddb4
.asm_3dd3f
- ld a, [$d01d]
+ ld a, [wBattleMonMoves + 1]
and a
jr z, .asm_3dd20
- ld a, [$ccee]
+ ld a, [wccee]
and a
jr nz, .asm_3dd20
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
cp $a5
jr z, .asm_3dd20
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
push hl
ld a, [hli]
and $3f
@@ -4062,7 +3981,7 @@
add b
pop hl
push af
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
@@ -4073,20 +3992,20 @@
cp b
jr z, .asm_3dd20
ld a, $1
- ld [$cced], a
- ld a, [wMaxMenuItem] ; $cc28
+ ld [wcced], a
+ ld a, [wMaxMenuItem] ; wMaxMenuItem
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
.asm_3dd86
- call GenRandomInBattle
+ call BattleRandom
and $3
cp b
jr nc, .asm_3dd86
cp c
jr z, .asm_3dd86
- ld [wCurrentMenuItem], a ; $cc26
- ld hl, W_PLAYERMONPP ; $d02d
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld hl, wBattleMonPP ; wBattleMonPP
ld e, a
ld d, $0
add hl, de
@@ -4093,13 +4012,13 @@
ld a, [hl]
and a
jr z, .asm_3dd86
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
add hl, bc
ld a, [hl]
- ld [wPlayerSelectedMove], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; wPlayerSelectedMove
call GetCurrentMove
Func_3ddb0: ; 3ddb0 (f:5db0)
@@ -4145,7 +4064,7 @@
cp a, $14 ;types >= $14 are all special
jr nc, .specialAttack
.physicalAttack
- ld hl, W_ENEMYMONDEFENSE ;opponent defense
+ ld hl, wEnemyMonDefense ;opponent defense
ld a, [hli] ;*BC = opponent defense used later
ld b, a
ld c, [hl]
@@ -4156,8 +4075,8 @@
sla c ;x2 defense if bit2 of D069 is set
rl b
.next
- ld hl, W_PLAYERMONATK ;attack pointer
- ld a, [$d05e]
+ ld hl, wBattleMonAttack ;attack pointer
+ ld a, [wd05e]
and a
jr z, .next3
ld c, 3
@@ -4167,14 +4086,14 @@
ld a, [$ff98]
ld c, a
push bc
- ld hl, $d18f
+ ld hl, wPartyMon1Attack
ld a, [wPlayerMonNumber]
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
pop bc
jr .next3
.specialAttack
- ld hl, W_ENEMYMONSPECIAL ;opponent special
+ ld hl, wEnemyMonSpecial ;opponent special
ld a, [hli] ;*BC = opponent special defense used later
ld b, a
ld c, [hl]
@@ -4185,8 +4104,8 @@
sla c ;x2 special defense if bit1 of D069 set
rl b
.next2
- ld hl, W_PLAYERMONSPECIAL
- ld a, [$d05e] ;XXX
+ ld hl, wBattleMonSpecial
+ ld a, [wd05e] ;XXX
and a
jr z, .next3 ;skip portion of code that pulls up inactive pokemon
.loadOtherPoke
@@ -4197,9 +4116,9 @@
ld a, [$ff98]
ld c, a
push bc
- ld hl, $d195
+ ld hl, wPartyMon1Special
ld a, [wPlayerMonNumber]
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
pop bc
.next3
@@ -4222,9 +4141,9 @@
inc l ;minimum HL = 1
.next4
ld b, l ;*B = attack [possibly scaled] [C contains defense]
- ld a, [$d022] ;*E = level
+ ld a, [wBattleMonLevel] ;*E = level
ld e, a
- ld a, [$d05e] ;critical hit?
+ ld a, [wd05e] ;critical hit?
and a
jr z, .next5
sla e ;double level if it was a critical hit
@@ -4234,11 +4153,11 @@
ret
Func_3de75: ; 3de75 (f:5e75)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
xor a
ld [hli], a
ld [hl], a
- ld hl, W_ENEMYMOVEPOWER ; $cfce
+ ld hl, W_ENEMYMOVEPOWER ; wcfce
ld a, [hli]
ld d, a
and a
@@ -4246,22 +4165,22 @@
ld a, [hl]
cp $14
jr nc, .asm_3debc
- ld hl, W_PLAYERMONDEF
+ ld hl, wBattleMonDefense
ld a, [hli]
ld b, a
ld c, [hl]
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 2, a
jr z, .asm_3de98
sla c
rl b
.asm_3de98
- ld hl, W_ENEMYMONATTACK
- ld a, [$d05e]
+ ld hl, wEnemyMonAttack
+ ld a, [wd05e]
and a
jr z, .asm_3deef
- ld hl, W_PARTYMON1_DEFENSE ; $d191
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMon1Defense
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld bc, $2c
call AddNTimes
ld a, [hli]
@@ -4274,22 +4193,22 @@
pop bc
jr .asm_3deef
.asm_3debc
- ld hl, W_PLAYERMONSPECIAL
+ ld hl, wBattleMonSpecial
ld a, [hli]
ld b, a
ld c, [hl]
- ld a, [W_PLAYERBATTSTATUS3] ; $d064
+ ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3
bit 1, a
jr z, .asm_3decd
sla c
rl b
.asm_3decd
- ld hl, W_ENEMYMONSPECIAL ; $cffc
- ld a, [$d05e]
+ ld hl, wEnemyMonSpecial ; wcffc
+ ld a, [wd05e]
and a
jr z, .asm_3deef
- ld hl, W_PARTYMON1_SPECIAL ; $d195
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld hl, wPartyMon1Special ; wPartyMon1Special
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
ld bc, $2c
call AddNTimes
ld a, [hli]
@@ -4320,9 +4239,9 @@
inc l
.asm_3df0a
ld b, l
- ld a, [W_ENEMYMONLEVEL] ; $cff3
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
ld e, a
- ld a, [$d05e]
+ ld a, [wd05e]
and a
jr z, .asm_3df17
sla e
@@ -4335,16 +4254,16 @@
Func_3df1c: ; 3df1c (f:5f1c)
push de
push bc
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3df40
- ld hl, $d8c6
+ ld hl, wEnemyMon1Stats
dec c
sla c
ld b, $0
add hl, bc
- ld a, [W_ENEMYMONNUMBER] ; $cfe8
- ld bc, $2c
+ ld a, [wEnemyMonPartyPos]
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [hli]
ld [$ff97], a
@@ -4354,13 +4273,13 @@
pop de
ret
.asm_3df40
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [W_CURENEMYLVL], a ; $d127
- ld a, [$cfe5]
- ld [$d0b5], a
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld a, [wEnemyMonSpecies]
+ ld [wd0b5], a
call GetMonHeader
- ld hl, $cff1
- ld de, $cfaf
+ ld hl, wEnemyMonDVs
+ ld de, wcfaf
ld a, [hli]
ld [de], a
inc de
@@ -4368,7 +4287,7 @@
ld [de], a
pop bc
ld b, $0
- ld hl, $cfa4
+ ld hl, wcfa4
call CalcStat
pop de
ret
@@ -4384,7 +4303,7 @@
and a
ld a, [W_PLAYERMOVEEFFECT]
jr z, .effect
- ld a, [$cfcd]
+ ld a, [W_ENEMYMOVEEFFECT]
.effect
; EXPLODE_EFFECT halves defense.
@@ -4534,7 +4453,7 @@
Func_3e016: ; 3e016 (f:6016)
call Func_3f132
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
dec a
ret
@@ -4552,14 +4471,14 @@
; among the most popular) tend to CH about 20 to 25% of the time."
CriticalHitTest: ; 3e023 (f:6023)
xor a
- ld [$d05e], a
+ ld [wd05e], a
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [$cfe5]
+ ld a, [wEnemyMonSpecies]
jr nz, .asm_3e032
- ld a, [W_PLAYERMONID]
+ ld a, [wBattleMonSpecies]
.asm_3e032
- ld [$d0b5], a
+ ld [wd0b5], a
call GetMonHeader
ld a, [W_MONHBASESPEED]
ld b, a
@@ -4566,11 +4485,11 @@
srl b ; (effective (base speed/2))
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_PLAYERMOVEPOWER ; $cfd4
- ld de, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERMOVEPOWER ; W_PLAYERMOVEPOWER
+ ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
jr z, .calcCriticalHitProbability
- ld hl, W_ENEMYMOVEPOWER ; $cfce
- ld de, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYMOVEPOWER ; wcfce
+ ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.calcCriticalHitProbability ; 0x3e04f
ld a, [hld] ; read base power from RAM
and a
@@ -4606,7 +4525,7 @@
jr nc, .SkipHighCritical
ld b, $ff
.SkipHighCritical
- call GenRandomInBattle ; generates a random value, in "a"
+ call BattleRandom ; generates a random value, in "a"
rlc a
rlc a
rlc a
@@ -4613,7 +4532,7 @@
cp b ; check a against calculated crit rate
ret nc ; no critical hit if no borrow
ld a, $1
- ld [$d05e], a ; set critical hit flag
+ ld [wd05e], a ; set critical hit flag
ret
; high critical hit moves
@@ -4697,7 +4616,7 @@
jr ApplyDamageToEnemyPokemon
.superFangEffect
; set the damage to half the target's HP
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld de,W_DAMAGE
ld a,[hli]
srl a
@@ -4714,7 +4633,7 @@
ld [de],a
jr ApplyDamageToEnemyPokemon
.specialDamage
- ld hl,W_PLAYERMONLEVEL
+ ld hl,wBattleMonLevel
ld a,[hl]
ld b,a
ld a,[W_PLAYERMOVENUM]
@@ -4736,7 +4655,7 @@
ld b,a ; b = level * 1.5
; loop until a random number in the range [1, b) is found
.loop
- call GenRandomInBattle ; random number
+ call BattleRandom
and a
jr z,.loop
cp b
@@ -4763,16 +4682,16 @@
; also, save the current HP at wHPBarOldHP
ld a,[hld]
ld b,a
- ld a,[W_ENEMYMONCURHP + 1]
+ ld a,[wEnemyMonHP + 1]
ld [wHPBarOldHP],a
sub b
- ld [W_ENEMYMONCURHP + 1],a
+ ld [wEnemyMonHP + 1],a
ld a,[hl]
ld b,a
- ld a,[W_ENEMYMONCURHP]
+ ld a,[wEnemyMonHP]
ld [wHPBarOldHP+1],a
sbc b
- ld [W_ENEMYMONCURHP],a
+ ld [wEnemyMonHP],a
jr nc,.animateHpBar
; if more damage was done than the current HP, zero the HP and set the damage
; equal to how much HP the pokemon had before the attack
@@ -4781,26 +4700,24 @@
ld a,[wHPBarOldHP]
ld [hl],a
xor a
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld [hli],a
ld [hl],a
.animateHpBar
- ld hl,W_ENEMYMONMAXHP
+ ld hl,wEnemyMonMaxHP
ld a,[hli]
ld [wHPBarMaxHP+1],a
ld a,[hl]
ld [wHPBarMaxHP],a
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld a,[hli]
ld [wHPBarNewHP+1],a
ld a,[hl]
ld [wHPBarNewHP],a
- FuncCoord 2, 2 ; $c3ca
- ld hl,Coord
+ hlCoord 2, 2
xor a
- ld [$cf94],a
- ld a,$48
- call Predef ; animate the HP bar shortening
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate the HP bar shortening
ApplyAttackToEnemyPokemonDone: ; 3e19d (f:619d)
jp Func_3cd5a ; redraw pokemon names and HP bars
@@ -4818,7 +4735,7 @@
jr ApplyDamageToPlayerPokemon
.superFangEffect
; set the damage to half the target's HP
- ld hl,W_PLAYERMONCURHP
+ ld hl,wBattleMonHP
ld de,W_DAMAGE
ld a,[hli]
srl a
@@ -4835,7 +4752,7 @@
ld [de],a
jr ApplyDamageToPlayerPokemon
.specialDamage
- ld hl,W_ENEMYMONLEVEL
+ ld hl,wEnemyMonLevel
ld a,[hl]
ld b,a
ld a,[W_ENEMYMOVENUM]
@@ -4859,7 +4776,7 @@
; this differs from the range when the player attacks, which is [1, b)
; it's possible for the enemy to do 0 damage with Psywave, but the player always does at least 1 damage
.loop
- call GenRandomInBattle ; random number
+ call BattleRandom
cp b
jr nc,.loop
ld b,a
@@ -4884,16 +4801,16 @@
; also, save the current HP at wHPBarOldHP and the new HP at wHPBarNewHP
ld a,[hld]
ld b,a
- ld a,[W_PLAYERMONCURHP + 1]
+ ld a,[wBattleMonHP + 1]
ld [wHPBarOldHP],a
sub b
- ld [W_PLAYERMONCURHP + 1],a
+ ld [wBattleMonHP + 1],a
ld [wHPBarNewHP],a
ld b,[hl]
- ld a,[W_PLAYERMONCURHP]
+ ld a,[wBattleMonHP]
ld [wHPBarOldHP+1],a
sbc b
- ld [W_PLAYERMONCURHP],a
+ ld [wBattleMonHP],a
ld [wHPBarNewHP+1],a
jr nc,.animateHpBar
; if more damage was done than the current HP, zero the HP and set the damage
@@ -4903,7 +4820,7 @@
ld a,[wHPBarOldHP]
ld [hl],a
xor a
- ld hl,W_PLAYERMONCURHP
+ ld hl,wBattleMonHP
ld [hli],a
ld [hl],a
ld hl,wHPBarNewHP
@@ -4910,17 +4827,15 @@
ld [hli],a
ld [hl],a
.animateHpBar
- ld hl,W_PLAYERMONMAXHP
+ ld hl,wBattleMonMaxHP
ld a,[hli]
ld [wHPBarMaxHP+1],a
ld a,[hl]
ld [wHPBarMaxHP],a
- FuncCoord 10, 9 ; $c45e
- ld hl,Coord
+ hlCoord 10, 9
ld a,$01
- ld [$cf94],a
- ld a,$48
- call Predef ; animate the HP bar shortening
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate the HP bar shortening
ApplyAttackToPlayerPokemonDone
jp Func_3cd5a ; redraw pokemon names and HP bars
@@ -5031,12 +4946,12 @@
ld a,[H_WHOSETURN]
and a
; values for player turn
- ld a,[$ccf2]
+ ld a,[wccf2]
ld hl,wPlayerSelectedMove
ld de,W_PLAYERMOVENUM
jr z,.next
; values for enemy turn
- ld a,[$ccf1]
+ ld a,[wccf1]
ld de,W_ENEMYMOVENUM
ld hl,wEnemySelectedMove
.next
@@ -5058,7 +4973,7 @@
; function used to reload move data for moves like Mirror Move and Metronome
ReloadMoveData: ; 3e329 (f:6329)
- ld [$d11e],a
+ ld [wd11e],a
dec a
ld hl,Moves
ld bc,$0006
@@ -5076,7 +4991,7 @@
; function that picks a random move for metronome
MetronomePickMove: ; 3e348 (f:6348)
xor a
- ld [$cc5b],a
+ ld [wcc5b],a
ld a,METRONOME
call PlayMoveAnimation ; play Metronome's animation
; values for player turn
@@ -5090,10 +5005,10 @@
ld hl,wEnemySelectedMove
; loop to pick a random number in the range [1, $a5) to be the move used by Metronome
.pickMoveLoop
- call GenRandomInBattle ; random number
+ call BattleRandom
and a
jr z,.pickMoveLoop
- cp a,NUM_MOVES + 1 ; max normal move number + 1 (this is Struggle's move number)
+ cp a,NUM_ATTACKS + 1 ; max normal move number + 1 (this is Struggle's move number)
jr nc,.pickMoveLoop
cp a,METRONOME
jr z,.pickMoveLoop
@@ -5107,13 +5022,13 @@
ld a,[H_WHOSETURN]
and a
; values for player turn
- ld hl,W_PLAYERMONPP
- ld de,W_PARTYMON1_MOVE1PP
+ ld hl,wBattleMonPP
+ ld de,wPartyMon1PP
ld a,[wPlayerMoveListIndex]
jr z,.next
; values for enemy turn
- ld hl,W_ENEMYMONPP
- ld de,$d8c1 ; enemy party pokemon 1 PP
+ ld hl,wEnemyMonPP
+ ld de,wEnemyMon1PP
ld a,[wEnemyMoveListIndex]
.next
ld b,$00
@@ -5127,9 +5042,9 @@
and a
ld a,[wPlayerMonNumber] ; value for player turn
jr z,.next2
- ld a,[W_ENEMYMONNUMBER] ; value for enemy turn
+ ld a,[wEnemyMonPartyPos] ; value for enemy turn
.next2
- ld bc,$002c
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
inc [hl] ; increment PP in the party memory location
ret
@@ -5137,32 +5052,32 @@
; function to adjust the base damage of an attack to account for type effectiveness
AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
; values for player turn
- ld hl,W_PLAYERMONTYPES
+ ld hl,wBattleMonType
ld a,[hli]
ld b,a ; b = type 1 of attacker
ld c,[hl] ; c = type 2 of attacker
- ld hl,W_ENEMYMONTYPES
+ ld hl,wEnemyMonType
ld a,[hli]
ld d,a ; d = type 1 of defender
ld e,[hl] ; e = type 2 of defender
ld a,[W_PLAYERMOVETYPE]
- ld [$d11e],a
+ ld [wd11e],a
ld a,[H_WHOSETURN]
and a
jr z,.next
; values for enemy turn
- ld hl,W_ENEMYMONTYPES
+ ld hl,wEnemyMonType
ld a,[hli]
ld b,a ; b = type 1 of attacker
ld c,[hl] ; c = type 2 of attacker
- ld hl,W_PLAYERMONTYPES
+ ld hl,wBattleMonType
ld a,[hli]
ld d,a ; d = type 1 of defender
ld e,[hl] ; e = type 2 of defender
ld a,[W_ENEMYMOVETYPE]
- ld [$d11e],a
+ ld [wd11e],a
.next
- ld a,[$d11e] ; move type
+ ld a,[wd11e] ; move type
cp b ; does the move type match type 1 of the attacker?
jr z,.sameTypeAttackBonus
cp c ; does the move type match type 2 of the attacker?
@@ -5184,10 +5099,10 @@
ld [W_DAMAGE],a
ld a,l
ld [W_DAMAGE + 1],a
- ld hl,$d05b
+ ld hl,wd05b
set 7,[hl]
.skipSameTypeAttackBonus
- ld a,[$d11e]
+ ld a,[wd11e]
ld b,a ; b = move type
ld hl,TypeEffects
.loop
@@ -5207,13 +5122,13 @@
push hl
push bc
inc hl
- ld a,[$d05b]
+ ld a,[wd05b]
and a,$80
ld b,a
ld a,[hl] ; a = damage multiplier
ld [H_MULTIPLIER],a
add b
- ld [$d05b],a
+ ld [wd05b],a
xor a
ld [H_MULTIPLICAND],a
ld hl,W_DAMAGE
@@ -5250,18 +5165,18 @@
; function to tell how effective the type of an enemy attack is on the player's current pokemon
; this doesn't take into account the effects that dual types can have
; (e.g. 4x weakness / resistance, weaknesses and resistances canceling)
-; the result is stored in [$D11E]
+; the result is stored in [wd11e]
; ($05 is not very effective, $10 is neutral, $14 is super effective)
; as far is can tell, this is only used once in some AI code to help decide which move to use
AIGetTypeEffectiveness: ; 3e449 (f:6449)
ld a,[W_ENEMYMOVETYPE]
ld d,a ; d = type of enemy move
- ld hl,W_PLAYERMONTYPES
+ ld hl,wBattleMonType
ld b,[hl] ; b = type 1 of player's pokemon
inc hl
ld c,[hl] ; c = type 2 of player's pokemon
ld a,$10
- ld [$d11e],a ; initialize [$D11E] to neutral effectiveness
+ ld [wd11e],a ; initialize [wd11e] to neutral effectiveness
ld hl,TypeEffects
.loop
ld a,[hli]
@@ -5282,7 +5197,7 @@
jr .loop
.done
ld a,[hl]
- ld [$d11e],a ; store damage multiplier
+ ld [wd11e],a ; store damage multiplier
ret
INCLUDE "data/type_effects.asm"
@@ -5292,7 +5207,7 @@
; player's turn
ld hl,W_ENEMYBATTSTATUS1
ld de,W_PLAYERMOVEEFFECT
- ld bc,W_ENEMYMONSTATUS
+ ld bc,wEnemyMonStatus
ld a,[H_WHOSETURN]
and a
jr z,.dreamEaterCheck
@@ -5299,7 +5214,7 @@
; enemy's turn
ld hl,W_PLAYERBATTSTATUS1
ld de,W_ENEMYMOVEEFFECT
- ld bc,W_PLAYERMONSTATUS
+ ld bc,wBattleMonStatus
.dreamEaterCheck
ld a,[de]
cp a,DREAM_EATER_EFFECT
@@ -5385,7 +5300,7 @@
.doAccuracyCheck
; if the random number generated is greater than or equal to the scaled accuracy, the move misses
; note that this means that even the highest accuracy is still just a 255/256 chance, not 100%
- call GenRandomInBattle ; random number
+ call BattleRandom
cp b
jr nc,.moveMissed
ret
@@ -5478,7 +5393,7 @@
ret
Func_3e687: ; 3e687 (f:6687)
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hli]
and a
jr nz, .asm_3e692
@@ -5494,7 +5409,7 @@
ld a, [hl]
ld [$ff98], a
.asm_3e69c
- call GenRandomInBattle
+ call BattleRandom
rrca
cp $d9
jr c, .asm_3e69c
@@ -5505,7 +5420,7 @@
ld b, $4
call Divide
ld a, [$ff97]
- ld hl, W_DAMAGE ; $d0d7
+ ld hl, W_DAMAGE ; W_DAMAGE
ld [hli], a
ld a, [$ff98]
ld [hl], a
@@ -5512,39 +5427,39 @@
ret
Func_3e6bc: ; 3e6bc (f:66bc)
- ld a, [wEnemySelectedMove] ; $ccdd
+ ld a, [wEnemySelectedMove] ; wccdd
inc a
jp z, Func_3e88c
call PrintGhostText
jp z, Func_3e88c
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3e6dc
ld b, $1
- ld a, [$cc3e]
+ ld a, [wcc3e]
cp $e
jr z, .asm_3e6dc
cp $4
ret nc
.asm_3e6dc
- ld hl, $ccd5
+ ld hl, wccd5
inc [hl]
xor a
- ld [W_MOVEMISSED], a ; $d05f
- ld [$ccf4], a
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
+ ld [wccf4], a
ld a, $a
- ld [$d05b], a
+ ld [wd05b], a
call Func_3e88f
jr nz, .asm_3e6f2
jp [hl]
.asm_3e6f2
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 4, [hl]
jr nz, asm_3e70b
call GetCurrentMove
Func_3e6fc: ; 3e6fc (f:66fc)
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp CHARGE_EFFECT
jp z, Func_3f132
cp FLY_EFFECT
@@ -5551,28 +5466,28 @@
jp z, Func_3f132
jr asm_3e72b
asm_3e70b: ; 3e70b (f:670b)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 4, [hl] ; no longer charging up for attack
res 6, [hl] ; no longer invulnerable to typcial attacks
- ld a, [W_ENEMYMOVENUM] ; $cfcc
- ld [$d0b5], a
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+ ld [wd0b5], a
ld a, $2c
- ld [$d0b7], a
+ ld [wPredefBank], a
ld a, MOVE_NAME
ld [W_LISTTYPE], a
call GetName
- ld de, $cd6d
+ ld de, wcd6d
call CopyStringToCF4B
asm_3e72b: ; 3e72b (f:672b)
xor a
- ld [$cced], a
+ ld [wcced], a
call PrintMonName1Text
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray1 ; $4000
ld de, $1
call IsInArray
jp c, Func_3f132
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray5B ; $4049
ld de, $1
call IsInArray
@@ -5579,7 +5494,7 @@
call c, Func_3f132
asm_3e750: ; 3e750 (f:6750)
call Func_3ec81
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray2 ; $4011
ld de, $1
call IsInArray
@@ -5598,10 +5513,10 @@
Func_3e77f: ; 3e77f (f:677f)
call MoveHitTest
asm_3e782: ; 3e782 (f:6782)
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr z, .asm_3e791
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp EXPLODE_EFFECT
jr z, asm_3e7a0
jr Func_3e7d1
@@ -5609,7 +5524,7 @@
call Func_3ec81
Func_3e794: ; 3e794 (f:6794)
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
and a
ld a, $1
jr z, asm_3e7a4
@@ -5620,18 +5535,18 @@
xor a
asm_3e7a4: ; 3e7a4 (f:67a4)
push af
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 4, a ; does mon have a substitute?
ld hl, Func_79747
ld b, BANK(Func_79747)
call nz, Bankswitch
pop af
- ld [$cc5b], a
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld [wcc5b], a
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
call PlayMoveAnimation
call Func_3eed3
call Func_3cdec
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 4, a ; does mon have a substitute?
ld hl, Func_79771
ld b, BANK(Func_79771)
@@ -5642,7 +5557,7 @@
call Func_3ec81
ld c, $1e
call DelayFrames
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp FLY_EFFECT
jr z, .asm_3e7e6
cp CHARGE_EFFECT
@@ -5650,11 +5565,11 @@
jr asm_3e7ef
.asm_3e7e6
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,STATUS_AFFECTED_ANIM
call PlayMoveAnimation
asm_3e7ef: ; 3e7ef (f:67ef)
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp MIRROR_MOVE_EFFECT
jr nz, .notMirrorMoveEffect
call MirrorMoveCopyMove
@@ -5666,16 +5581,16 @@
call MetronomePickMove
jp Func_3e6fc
.notMetronomeEffect
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray3 ; $4014
ld de, $1
call IsInArray
jp c, Func_3f132
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr z, .asm_3e82b
call PrintMoveFailureText
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp EXPLODE_EFFECT
jr z, .asm_3e83e
jp Func_3e88c
@@ -5684,24 +5599,24 @@
call Func_3dc5c
callab DisplayEffectiveness
ld a, $1
- ld [$ccf4], a
+ ld [wccf4], a
.asm_3e83e
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
ld hl, EffectsArray4 ; $4030
ld de, $1
call IsInArray
call c, Func_3f132
- ld hl, W_PLAYERMONCURHP ; $d015
+ ld hl, wBattleMonHP ; wd015
ld a, [hli]
ld b, [hl]
or b
ret z
call HandleBuildingRage
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 2, [hl] ; is mon hitting multiple times? (example: double kick)
jr z, .asm_3e873
push hl
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
pop hl
jp nz, Func_3e794
@@ -5709,9 +5624,9 @@
ld hl, HitXTimesText ; $6887
call PrintText
xor a
- ld [$cd05], a
+ ld [wcd05], a
.asm_3e873
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
and a
jr z, Func_3e88c
ld hl, EffectsArray5 ; $403b
@@ -5729,18 +5644,18 @@
ret
Func_3e88f: ; 3e88f (f:688f)
- ld hl, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonStatus ; wcfe9
ld a, [hl]
and $7
jr z, .asm_3e8bf
dec a
- ld [W_ENEMYMONSTATUS], a ; $cfe9
+ ld [wEnemyMonStatus], a ; wcfe9
and a
jr z, .asm_3e8af
ld hl, FastAsleepText
call PrintText
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,SLP_ANIM
call PlayMoveAnimation
jr .asm_3e8b5
@@ -5749,7 +5664,7 @@
call PrintText
.asm_3e8b5
xor a
- ld [$ccf2], a
+ ld [wccf2], a
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e8bf
@@ -5758,11 +5673,11 @@
ld hl, IsFrozenText
call PrintText
xor a
- ld [$ccf2], a
+ ld [wccf2], a
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e8d3
- ld a, [W_PLAYERBATTSTATUS1] ; $d062
+ ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
bit 5, a
jp z, Func_3e8e7
ld hl, CantMoveText
@@ -5771,7 +5686,7 @@
jp Func_3eab8
Func_3e8e7: ; 3e8e7 (f:68e7)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 3, [hl]
jp z, Func_3e8fd
res 3, [hl]
@@ -5781,7 +5696,7 @@
jp Func_3eab8
Func_3e8fd: ; 3e8fd (f:68fd)
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
bit 5, [hl]
jr z, .asm_3e912
res 5, [hl]
@@ -5790,7 +5705,7 @@
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e912
- ld hl, W_ENEMYDISABLEDMOVE ; $d072
+ ld hl, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE
ld a, [hl]
and a
jr z, .asm_3e929
@@ -5799,17 +5714,17 @@
and $f
jr nz, .asm_3e929
ld [hl], a
- ld [$ccef], a
+ ld [wccef], a
ld hl, DisabledNoMoreText
call PrintText
.asm_3e929
- ld a, [W_ENEMYBATTSTATUS1] ; $d067
+ ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
add a
jp nc, Func_3e9aa
- ld hl, $d070
+ ld hl, wd070
dec [hl]
jr nz, .asm_3e944
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 7, [hl]
ld hl, ConfusedNoMoreText
call PrintText
@@ -5818,34 +5733,34 @@
ld hl, IsConfusedText
call PrintText
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a,CONF_ANIM
call PlayMoveAnimation
- call GenRandomInBattle
+ call BattleRandom
cp $80
jr c, Func_3e9aa
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld a, [hl]
and $80
ld [hl], a
ld hl, HurtItselfText
call PrintText
- ld hl, W_PLAYERMONDEF
+ ld hl, wBattleMonDefense
ld a, [hli]
push af
ld a, [hld]
push af
- ld a, [W_ENEMYMONDEFENSE] ; $cff8
+ ld a, [wEnemyMonDefense] ; wcff8
ld [hli], a
- ld a, [$cff9]
+ ld a, [wEnemyMonDefense + 1]
ld [hl], a
- ld hl, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
push hl
ld a, [hl]
push af
xor a
ld [hli], a
- ld [$d05e], a
+ ld [wd05e], a
ld a, $28
ld [hli], a
xor a
@@ -5855,13 +5770,13 @@
pop af
pop hl
ld [hl], a
- ld hl, $d028
+ ld hl, wBattleMonDefense + 1
pop af
ld [hld], a
pop af
ld [hl], a
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld [H_WHOSETURN], a ; $fff3
ld a, POUND
call PlayMoveAnimation
@@ -5871,10 +5786,10 @@
jr asm_3e9d3
Func_3e9aa: ; 3e9aa (f:69aa)
- ld a, [$ccef]
+ ld a, [wccef]
and a
jr z, .asm_3e9bf
- ld hl, wEnemySelectedMove ; $ccdd
+ ld hl, wEnemySelectedMove ; wccdd
cp [hl]
jr nz, .asm_3e9bf
call PrintMoveIsDisabledText
@@ -5881,20 +5796,20 @@
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3e9bf
- ld hl, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonStatus ; wcfe9
bit 6, [hl]
jr z, asm_3e9f6
- call GenRandomInBattle
+ call BattleRandom
cp $3f
jr nc, asm_3e9f6
ld hl, FullyParalyzedText
call PrintText
asm_3e9d3: ; 3e9d3 (f:69d3)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld a, [hl]
and $cc
ld [hl], a
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
cp FLY_EFFECT
jr z, .asm_3e9e7
cp CHARGE_EFFECT
@@ -5902,7 +5817,7 @@
jr .asm_3e9f0
.asm_3e9e7
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, STATUS_AFFECTED_ANIM
call PlayMoveAnimation
.asm_3e9f0
@@ -5909,16 +5824,16 @@
ld hl, Func_3e88c ; $688c
jp Func_3eab8
asm_3e9f6: ; 3e9f6 (f:69f6)
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
bit 0, [hl] ; is mon using bide?
jr z, .asm_3ea54
xor a
- ld [W_ENEMYMOVENUM], a ; $cfcc
- ld hl, W_DAMAGE ; $d0d7
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
+ ld hl, W_DAMAGE ; W_DAMAGE
ld a, [hli]
ld b, a
ld c, [hl]
- ld hl, $cd06
+ ld hl, wcd06
ld a, [hl]
add c
ld [hld], a
@@ -5925,36 +5840,36 @@
ld a, [hl]
adc b
ld [hl], a
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
jr z, .asm_3ea1c
ld hl, Func_3e88c ; $688c
jp Func_3eab8
.asm_3ea1c
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 0, [hl]
ld hl, UnleashedEnergyText
call PrintText
ld a, $1
- ld [W_ENEMYMOVEPOWER], a ; $cfce
- ld hl, $cd06
+ ld [W_ENEMYMOVEPOWER], a ; wcfce
+ ld hl, wcd06
ld a, [hld]
add a
ld b, a
- ld [$d0d8], a
+ ld [wd0d8], a
ld a, [hl]
rl a
- ld [W_DAMAGE], a ; $d0d7
+ ld [W_DAMAGE], a ; W_DAMAGE
or b
jr nz, .asm_3ea43
ld a, $1
- ld [W_MOVEMISSED], a ; $d05f
+ ld [W_MOVEMISSED], a ; W_MOVEMISSED
.asm_3ea43
xor a
ld [hli], a
ld [hl], a
ld a, BIDE
- ld [W_ENEMYMOVENUM], a ; $cfcc
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
call Func_3ec81
ld hl, asm_3e782 ; $6782
jp Func_3eab8
@@ -5962,22 +5877,22 @@
bit 1, [hl] ; is mon using thrash or petal dance?
jr z, .asm_3ea83
ld a, THRASH
- ld [W_ENEMYMOVENUM], a ; $cfcc
+ ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM
ld hl, ThrashingAboutText
call PrintText
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
ld hl, asm_3e750 ; $6750
jp nz, Func_3eab8
push hl
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
res 1, [hl] ; mon is no longer using thrash or petal dance
set 7, [hl] ; mon is now confused
- call GenRandomInBattle
+ call BattleRandom
and $3
inc a
inc a
- ld [$d070], a
+ ld [wd070], a
pop hl
jp Func_3eab8
.asm_3ea83
@@ -5985,7 +5900,7 @@
jp z, Func_3ea9b
ld hl, AttackContinuesText
call PrintText
- ld hl, $d06f
+ ld hl, wd06f
dec [hl]
ld hl, Func_3e794 ; $6794
jp nz, Func_3eab8
@@ -5992,15 +5907,15 @@
jp Func_3eab8
Func_3ea9b: ; 3ea9b (f:6a9b)
- ld a, [W_ENEMYBATTSTATUS2] ; $d068
+ ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
bit 6, a ; is mon using rage?
jp z, Func_3eaba
ld a, RAGE
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
xor a
- ld [W_ENEMYMOVEEFFECT], a ; $cfcd
+ ld [W_ENEMYMOVEEFFECT], a ; W_ENEMYMOVEEFFECT
ld hl, asm_3e72b ; $672b
jp Func_3eab8
@@ -6017,18 +5932,18 @@
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, .player
- ld de, W_ENEMYMOVENUM ; $cfcc
- ld a, [wEnemySelectedMove] ; $ccdd
+ ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM
+ ld a, [wEnemySelectedMove] ; wccdd
jr .selected
.player
- ld de, W_PLAYERMOVENUM ; $cfd2
+ ld de, W_PLAYERMOVENUM ; wcfd2
ld a, [W_FLAGS_D733]
bit 0, a
- ld a, [$ccd9]
+ ld a, [wccd9]
jr nz, .selected
- ld a, [wPlayerSelectedMove] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove
.selected
- ld [$d0b5], a
+ ld [wd0b5], a
dec a
ld hl, Moves ; $4000
ld bc, $6
@@ -6036,57 +5951,57 @@
ld a, BANK(Moves)
call FarCopyData
ld a, $2c
- ld [$d0b7], a
+ ld [wPredefBank], a
ld a, $2
ld [W_LISTTYPE], a ; list type 2 = move name
call GetName
- ld de, $cd6d
+ ld de, wcd6d
jp CopyStringToCF4B
Func_3eb01: ; 3eb01 (f:6b01)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jp z, Func_3cc13
- ld a, [W_ENEMYMONID]
- ld [$cfe5], a
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies2]
+ ld [wEnemyMonSpecies], a
+ ld [wd0b5], a
call GetMonHeader
- ld a, [W_ENEMYBATTSTATUS3] ; $d069
+ ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3
bit 3, a
- ld hl, $cceb
+ ld hl, wcceb
ld a, [hli]
ld b, [hl]
jr nz, .asm_3eb33
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $2
ld a, $98
ld b, $88
jr z, .asm_3eb33
- call GenRandomInBattle
+ call BattleRandom
ld b, a
- call GenRandomInBattle
+ call BattleRandom
.asm_3eb33
- ld hl, $cff1
+ ld hl, wEnemyMonDVs
ld [hli], a
ld [hl], b
- ld de, W_ENEMYMONLEVEL ; $cff3
- ld a, [W_CURENEMYLVL] ; $d127
+ ld de, wEnemyMonLevel ; wEnemyMonLevel
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld [de], a
inc de
ld b, $0
- ld hl, W_ENEMYMONCURHP ; $cfe6
+ ld hl, wEnemyMonHP ; wEnemyMonHP
push hl
call CalcStats
pop hl
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $2
jr z, .asm_3eb65
- ld a, [W_ENEMYBATTSTATUS3] ; $d069
+ ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3
bit 3, a
jr nz, .asm_3eb86
- ld a, [W_ENEMYMONMAXHP] ; $cff4
+ ld a, [wEnemyMonMaxHP] ; wEnemyMonMaxHP
ld [hli], a
- ld a, [W_ENEMYMONMAXHP+1]
+ ld a, [wEnemyMonMaxHP+1]
ld [hli], a
xor a
inc hl
@@ -6093,23 +6008,23 @@
ld [hl], a
jr .asm_3eb86
.asm_3eb65
- ld hl, W_ENEMYMON1HP ; $d8a5 (aliases: W_WATERMONS)
- ld a, [wWhichPokemon] ; $cf92
- ld bc, $2c
+ ld hl, wEnemyMon1HP ; wd8a5 (aliases: W_WATERMONS)
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [hli]
- ld [W_ENEMYMONCURHP], a ; $cfe6
+ ld [wEnemyMonHP], a ; wEnemyMonHP
ld a, [hli]
- ld [$cfe7], a
- ld a, [wWhichPokemon] ; $cf92
- ld [W_ENEMYMONNUMBER], a ; $cfe8
+ ld [wEnemyMonHP + 1], a
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld [wEnemyMonPartyPos], a
inc hl
ld a, [hl]
- ld [W_ENEMYMONSTATUS], a ; $cfe9
+ ld [wEnemyMonStatus], a ; wcfe9
jr .asm_3eb86
.asm_3eb86
ld hl, W_MONHTYPES
- ld de, W_ENEMYMONTYPES ; $cfea
+ ld de, wEnemyMonType ; wcfea
ld a, [hli] ; copy type 1
ld [de], a
inc de
@@ -6119,14 +6034,14 @@
ld a, [hli] ; copy catch rate
ld [de], a
inc de
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $2
jr nz, .asm_3ebb0
- ld hl, $d8ac
- ld a, [wWhichPokemon] ; $cf92
- ld bc, $2c
+ ld hl, wEnemyMon1Moves
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
jr .asm_3ebca
.asm_3ebb0
@@ -6146,16 +6061,14 @@
dec de
dec de
xor a
- ld [$cee9], a
- ld a, $3e
- call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8))
+ ld [wHPBarMaxHP], a
+ predef WriteMonMoves
.asm_3ebca
- ld hl, W_ENEMYMONMOVES
- ld de, $cffd
- ld a, $5e
- call Predef ; indirect jump to LoadMovePPs (f473 (3:7473))
+ ld hl, wEnemyMonMoves
+ ld de, wEnemyMonSpecial + 1
+ predef LoadMovePPs
ld hl, W_MONHBASESTATS
- ld de, $d002
+ ld de, wd002
ld b, $5
.asm_3ebdd
ld a, [hli]
@@ -6169,31 +6082,29 @@
inc de
ld a, [hl] ; base exp
ld [de], a
- ld a, [W_ENEMYMONID]
- ld [$d11e], a
+ ld a, [wEnemyMonSpecies2]
+ ld [wd11e], a
call GetMonName
- ld hl, $cd6d
- ld de, W_ENEMYMONNAME
+ ld hl, wcd6d
+ ld de, wEnemyMonNick
ld bc, $b
call CopyData
- ld a, [W_ENEMYMONID]
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld a, [wEnemyMonSpecies2]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
- ld hl, wPokedexSeen ; $d30a
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
- ld hl, W_ENEMYMONLEVEL ; $cff3
- ld de, $cd23
+ ld hl, wPokedexSeen ; wd30a
+ predef FlagActionPredef
+ ld hl, wEnemyMonLevel ; wEnemyMonLevel
+ ld de, wcd23
ld bc, $b
call CopyData
ld a, $7
ld b, $8
- ld hl, wEnemyMonStatMods ; $cd2e
+ ld hl, wEnemyMonStatMods ; wcd2e
.asm_3ec2d
ld [hli], a
dec b
@@ -6201,25 +6112,24 @@
ret
Func_3ec32: ; 3ec32 (f:6c32)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr nz, .asm_3ec4d
xor a
- ld [wMenuJoypadPollCount], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount
callab Func_372d6
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
call ClearScreen
.asm_3ec4d
call DelayFrame
- ld a, $30
- call Predef ; indirect jump to Func_7096d (7096d (1c:496d))
+ predef BattleTransition
callab Func_3ee58
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $ff
- ld [$cfcb], a
- call CleanLCD_OAM
+ ld [wcfcb], a
+ call ClearSprites
call ClearScreen
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -6226,28 +6136,28 @@
ld [$ffb0], a
ld [rWY], a ; $ff4a
ld [$ffd7], a
- ld hl, $d060
+ ld hl, wd060
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_PLAYERDISABLEDMOVE], a ; $d06d
+ ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE
ret
Func_3ec81: ; 3ec81 (f:6c81)
push bc
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
ld b, a
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [W_PLAYERMONLEVEL], a ; $d022
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [wBattleMonLevel], a ; wBattleMonLevel
ld a, b
- ld [W_ENEMYMONLEVEL], a ; $cff3
+ ld [wEnemyMonLevel], a ; wEnemyMonLevel
pop bc
ret
Func_3ec92: ; 3ec92 (f:6c92)
- ld a, [W_BATTLETYPE] ; $d05a
+ ld a, [W_BATTLETYPE] ; wd05a
dec a
ld de, RedPicBack ; $7e0a
jr nz, .asm_3ec9e
@@ -6255,8 +6165,7 @@
.asm_3ec9e
ld a, BANK(RedPicBack)
call UncompressSpriteFromDE
- ld a, $3
- call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
+ predef ScaleSpriteByTwo
ld hl, wOAMBuffer
xor a
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
@@ -6288,26 +6197,24 @@
ld e, a
dec b
jr nz, .asm_3ecb2
- ld de, $9310
+ ld de, vBackPic
call InterlaceMergeSpriteBuffers
ld a, $a
ld [$0], a
xor a
ld [$4000], a
- ld hl, $8000
+ ld hl, vSprites
ld de, S_SPRITEBUFFER1
ld a, [H_LOADEDROMBANK]
ld b, a
- ld c, $31
+ ld c, 7 * 7
call CopyVideoData
xor a
ld [$0], a
ld a, $31
ld [$ffe1], a
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
- ld a, $1
- jp Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ hlCoord 1, 5
+ predef_jump Func_3f0c6
Func_3ed02: ; 3ed02 (f:6d02)
callab Func_39680
@@ -6335,10 +6242,10 @@
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3ed48
- ld a, [W_PLAYERMONSTATUS] ; $d018
+ ld a, [wBattleMonStatus] ; wBattleMonStatus
and $40
ret z
- ld hl, $d02a
+ ld hl, wBattleMonSpeed + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6354,10 +6261,10 @@
ld [hl], b
ret
.asm_3ed48
- ld a, [W_ENEMYMONSTATUS] ; $cfe9
+ ld a, [wEnemyMonStatus] ; wcfe9
and $40
ret z
- ld hl, $cffb
+ ld hl, wEnemyMonSpeed + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6377,10 +6284,10 @@
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3ed81
- ld a, [W_PLAYERMONSTATUS] ; $d018
+ ld a, [wBattleMonStatus] ; wBattleMonStatus
and $10
ret z
- ld hl, $d026
+ ld hl, wBattleMonAttack + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6394,10 +6301,10 @@
ld [hl], b
ret
.asm_3ed81
- ld a, [W_ENEMYMONSTATUS] ; $cfe9
+ ld a, [wEnemyMonStatus] ; wcfe9
and $10
ret z
- ld hl, $cff7
+ ld hl, wEnemyMonAttack + 1
ld a, [hld]
ld b, a
ld a, [hl]
@@ -6424,16 +6331,16 @@
Func_3eda5: ; 3eda5 (f:6da5)
push bc
push bc
- ld a, [$d11e]
+ ld a, [wd11e]
and a
ld a, c
- ld hl, W_PLAYERMONATK
- ld de, $cd12
- ld bc, wPlayerMonAttackMod ; $cd1a
+ ld hl, wBattleMonAttack
+ ld de, wcd12
+ ld bc, wPlayerMonAttackMod ; wcd1a
jr z, .asm_3edc0
- ld hl, W_ENEMYMONATTACK
- ld de, $cd26
- ld bc, wEnemyMonStatMods ; $cd2e
+ ld hl, wEnemyMonAttack
+ ld de, wcd26
+ ld bc, wEnemyMonStatMods ; wcd2e
.asm_3edc0
add c
ld c, a
@@ -6505,7 +6412,7 @@
ret z
ld a, [W_OBTAINEDBADGES]
ld b, a
- ld hl, W_PLAYERMONATK
+ ld hl, wBattleMonAttack
ld c, $4
.asm_3ee28
srl b
@@ -6552,22 +6459,22 @@
add a
jr c, .asm_3ee7c
ld hl, BattleHudTiles1 ; $6080
- ld de, $96d0
+ ld de, vChars2 + $6d0
ld bc, $18
ld a, BANK(BattleHudTiles1)
call FarCopyDataDouble
ld hl, BattleHudTiles2 ; $6098
- ld de, $9730
+ ld de, vChars2 + $730
ld bc, $30
ld a, BANK(BattleHudTiles2)
jp FarCopyDataDouble
.asm_3ee7c
ld de, BattleHudTiles1 ; $6080
- ld hl, $96d0
+ ld hl, vChars2 + $6d0
ld bc, (BANK(BattleHudTiles1) << 8) + $03
call CopyVideoDataDouble
ld de, BattleHudTiles2 ; $6098
- ld hl, $9730
+ ld hl, vChars2 + $730
ld bc, (BANK(BattleHudTiles2) << 8) + $06
jp CopyVideoDataDouble
@@ -6578,34 +6485,39 @@
TerminatorText_3ee9a: ; 3ee9a (f:6e9a)
db "@"
-; generates a random number unless in link battle
-; stores random number in A
-GenRandomInBattle: ; 3ee9b (f:6e9b)
+
+BattleRandom:
+; Link battles use a shared PRNG.
+
ld a, [W_ISLINKBATTLE]
cp $4
- jp nz, GenRandom
+ jp nz, Random
+
push hl
push bc
- ld a, [$ccde]
+ ld a, [wccde]
ld c, a
- ld b, $0
- ld hl, $d148
+ ld b, 0
+ ld hl, wd148
add hl, bc
inc a
- ld [$ccde], a
- cp $9
+ ld [wccde], a
+ cp 9
ld a, [hl]
pop bc
pop hl
ret c
+
push hl
push bc
push af
+
xor a
- ld [$ccde], a
- ld hl, $d148
- ld b, $9
-.asm_3eec5
+ ld [wccde], a
+
+ ld hl, wd148
+ ld b, 9
+.loop
ld a, [hl]
ld c, a
add a
@@ -6614,22 +6526,24 @@
inc a
ld [hli], a
dec b
- jr nz, .asm_3eec5 ; 0x3eecd $f6
+ jr nz, .loop
+
pop af
pop bc
pop hl
ret
+
Func_3eed3: ; 3eed3 (f:6ed3)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES)
- ld de, W_ENEMYBATTSTATUS1 ; $d067
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld hl, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType)
+ ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3eeea
- ld hl, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES)
- ld de, W_ENEMYBATTSTATUS1 ; $d067
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld hl, wBattleMonType1 ; wd019 (aliases: wBattleMonType)
+ ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3eeea
cp SELFDESTRUCT
jr z, .asm_3eef1
@@ -6645,77 +6559,75 @@
ld a, [hl]
cp GHOST
ret z
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
ret nz
ld a, MEGA_PUNCH
- ld [$cc5b], a
+ ld [wcc5b], a
PlayMoveAnimation: ; 3ef07 (f:6f07)
- ld [$D07C],a
+ ld [W_ANIMATIONID],a
call Delay3
- PREDEF_JUMP MoveAnimationPredef ; predef 8
+ predef_jump MoveAnimation
InitBattle: ; 3ef12 (f:6f12)
- ld a, [W_CUROPPONENT] ; $d059
+ ld a, [W_CUROPPONENT] ; wd059
and a
jr z, asm_3ef23
InitOpponent: ; 3ef18 (f:6f18)
- ld a, [W_CUROPPONENT] ; $d059
- ld [$cf91], a
- ld [W_ENEMYMONID], a
+ ld a, [W_CUROPPONENT] ; wd059
+ ld [wcf91], a
+ ld [wEnemyMonSpecies2], a
jr asm_3ef3d
asm_3ef23: ; 3ef23 (f:6f23)
- ld a, [$d732]
+ ld a, [wd732]
bit 1, a
jr z, .asm_3ef2f
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
bit 1, a
ret nz
.asm_3ef2f
- ld a, [$d13c]
+ ld a, [wd13c]
and a
ret nz
callab Func_13870
ret nz
asm_3ef3d: ; 3ef3d (f:6f3d)
- ld a, [$d35d]
+ ld a, [wd35d]
push af
- ld hl, $d358
+ ld hl, wd358
ld a, [hl]
push af
res 1, [hl]
callab Func_525af
- ld a, [W_ENEMYMONID]
+ ld a, [wEnemyMonSpecies2]
sub $c8
jp c, InitWildBattle
- ld [W_TRAINERCLASS], a ; $d031
+ ld [W_TRAINERCLASS], a ; wd031
call GetTrainerInformation
callab ReadTrainer
call Func_3ec32
call _LoadTrainerPic
xor a
- ld [W_ENEMYMONID], a
+ ld [wEnemyMonSpecies2], a
ld [$ffe1], a
dec a
- ld [wAICount], a ; $ccdf
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
- ld a, $1
- call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ ld [wAICount], a ; wccdf
+ hlCoord 12, 0
+ predef Func_3f0c6
ld a, $ff
- ld [W_ENEMYMONNUMBER], a ; $cfe8
+ ld [wEnemyMonPartyPos], a
ld a, $2
- ld [W_ISINBATTLE], a ; $d057
+ ld [W_ISINBATTLE], a ; W_ISINBATTLE
jp Func_3efeb
InitWildBattle: ; 3ef8b (f:6f8b)
ld a, $1
- ld [W_ISINBATTLE], a ; $d057
+ ld [W_ISINBATTLE], a ; W_ISINBATTLE
call Func_3eb01
call Func_3ec32
- ld a, [W_CUROPPONENT] ; $d059
+ ld a, [W_CUROPPONENT] ; wd059
cp MAROWAK
jr z, .isGhost
call IsGhostBattle
@@ -6728,7 +6640,7 @@
ld a, c
ld [hli], a ; write front sprite pointer
ld [hl], b
- ld hl, W_ENEMYMONNAME ; set name to "GHOST"
+ ld hl, wEnemyMonNick ; set name to "GHOST"
ld a, "G"
ld [hli], a
ld a, "H"
@@ -6740,26 +6652,24 @@
ld a, "T"
ld [hli], a
ld [hl], "@"
- ld a, [$cf91]
+ ld a, [wcf91]
push af
ld a, MON_GHOST
- ld [$cf91], a
- ld de, $9000
+ ld [wcf91], a
+ ld de, vFrontPic
call LoadMonFrontSprite ; load ghost sprite
pop af
- ld [$cf91], a
+ ld [wcf91], a
jr .spriteLoaded
.isNoGhost
- ld de, $9000
+ ld de, vFrontPic
call LoadMonFrontSprite ; load mon sprite
.spriteLoaded
xor a
- ld [W_TRAINERCLASS], a ; $d031
+ ld [W_TRAINERCLASS], a ; wd031
ld [$ffe1], a
- FuncCoord 12, 0 ; $c3ac
- ld hl, Coord
- ld a, $1
- call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6))
+ hlCoord 12, 0
+ predef Func_3f0c6
Func_3efeb: ; 3efeb (f:6feb)
ld b, $0
@@ -6779,25 +6689,23 @@
ld a, $9c
ld [$ffbd], a
call LoadScreenTilesFromBuffer1
- FuncCoord 9, 7 ; $c435
- ld hl, Coord
+ hlCoord 9, 7
ld bc, $50a
call ClearScreenArea
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ hlCoord 1, 0
ld bc, $40a
call ClearScreenArea
- call CleanLCD_OAM
- ld a, [W_ISINBATTLE] ; $d057
+ call ClearSprites
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
call z, Func_3cdec
call Func_3c11e
callab Func_137aa
pop af
- ld [$d358], a
+ ld [wd358], a
pop af
- ld [$d35d], a
- ld a, [$d0d4]
+ ld [wd35d], a
+ ld a, [wd0d4]
ld [$ffd7], a
scf
ret
@@ -6806,12 +6714,12 @@
db "@"
_LoadTrainerPic: ; 3f04b (f:704b)
-; $d033-$d034 contain pointer to pic
- ld a, [$d033]
+; wd033-wd034 contain pointer to pic
+ ld a, [wd033]
ld e, a
- ld a, [$d034]
+ ld a, [wd034]
ld d, a ; de contains pointer to trainer pic
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
and a
ld a, Bank(TrainerPics) ; this is where all the trainer pics are (not counting Red's)
jr z, .loadSprite
@@ -6818,7 +6726,7 @@
ld a, Bank(RedPicFront)
.loadSprite
call UncompressSpriteFromDE
- ld de, $9000
+ ld de, vFrontPic
ld a, $77
ld c, a
jp LoadUncompressedSpriteData
@@ -6825,19 +6733,19 @@
Func_3f069: ; 3f069 (f:7069)
xor a
- ld [$c0f1], a
- ld [$c0f2], a
+ ld [wc0f1], a
+ ld [wc0f2], a
jp PlaySound
Func_3f073: ; 3f073 (f:7073)
- ld a, [$cc4f]
+ ld a, [wPredefRegisters]
ld h, a
- ld a, [$cc50]
+ ld a, [wPredefRegisters + 1]
ld l, a
ld a, [$ffe1]
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld b, $4c
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jr z, .asm_3f0bc
add b
@@ -6846,19 +6754,17 @@
ld bc, $ffd7
add hl, bc
ld a, $1
- ld [$cd6c], a
+ ld [wcd6c], a
ld bc, $303
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
ld c, $4
call DelayFrames
ld bc, $ffd7
add hl, bc
xor a
- ld [$cd6c], a
+ ld [wcd6c], a
ld bc, $505
- ld a, $5
- call Predef ; indirect jump to Func_79aba (79aba (1e:5aba))
+ predef Func_79aba
ld c, $5
call DelayFrames
ld bc, $ffd7
@@ -6872,9 +6778,9 @@
jr asm_3f0d0
Func_3f0c6: ; 3f0c6 (f:70c6)
- ld a, [$cc4f]
+ ld a, [wPredefRegisters]
ld h, a
- ld a, [$cc50]
+ ld a, [wPredefRegisters + 1]
ld l, a
ld a, [$ffe1]
asm_3f0d0: ; 3f0d0 (f:70d0)
@@ -6923,24 +6829,22 @@
jr nz, .asm_3f0f4
ret
-; loads back sprite of mon to $8000
-; assumes the corresponding mon header is already loaded
-LoadMonBackSprite: ; 3f103 (f:7103)
- ld a, [$cfd9]
- ld [$cf91], a
- FuncCoord 1, 5 ; $c405
- ld hl, Coord
+LoadMonBackPic:
+; Assumes the monster's attributes have
+; been loaded with GetMonHeader.
+ ld a, [wBattleMonSpecies2]
+ ld [wcf91], a
+ hlCoord 1, 5
ld b, $7
ld c, $8
call ClearScreenArea
ld hl, W_MONHBACKSPRITE - W_MONHEADER
call UncompressMonSprite
- ld a, $3
- call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
- ld de, $9310
+ predef ScaleSpriteByTwo
+ ld de, vBackPic
call InterlaceMergeSpriteBuffers ; combine the two buffers to a single 2bpp sprite
- ld hl, $8000
- ld de, $9310
+ ld hl, vSprites
+ ld de, vBackPic
ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied
ld a, [H_LOADEDROMBANK]
ld b, a
@@ -7058,13 +6962,13 @@
dw DisableEffect ; DISABLE_EFFECT
SleepEffect: ; 3f1fc (f:71fc)
- ld de, W_ENEMYMONSTATUS ; $cfe9
- ld bc, W_ENEMYBATTSTATUS2 ; $d068
+ ld de, wEnemyMonStatus ; wcfe9
+ ld bc, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jp z, .asm_3f20e
- ld de, W_PLAYERMONSTATUS ; $d018
- ld bc, W_PLAYERBATTSTATUS2 ; $d063
+ ld de, wBattleMonStatus ; wBattleMonStatus
+ ld bc, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
.asm_3f20e
ld a, [bc]
@@ -7085,11 +6989,11 @@
push de
call MoveHitTest
pop de
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_3f242
.asm_3f231
- call GenRandomInBattle
+ call BattleRandom
and $7
jr z, .asm_3f231
ld [de], a
@@ -7108,13 +7012,13 @@
db "@"
PoisonEffect: ; 3f24f (f:724f)
- ld hl, W_ENEMYMONSTATUS ; $cfe9
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, wEnemyMonStatus ; wcfe9
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f260
- ld hl, W_PLAYERMONSTATUS ; $d018
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, wBattleMonStatus ; wBattleMonStatus
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f260
call CheckTargetSubstitute
jr nz, .asm_3f2d3
@@ -7140,12 +7044,12 @@
call MoveHitTest
pop de
pop hl
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_3f2d7
jr .asm_3f295
.asm_3f290
- call GenRandomInBattle
+ call BattleRandom
cp b
ret nc
.asm_3f295
@@ -7156,13 +7060,13 @@
ld a, [H_WHOSETURN] ; $fff3
and a
ld b, $c7
- ld hl, W_PLAYERBATTSTATUS3 ; $d064
+ ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
ld a, [de]
- ld de, W_PLAYERTOXICCOUNTER ; $d06c
+ ld de, W_PLAYERTOXICCOUNTER ; wd06c
jr nz, .asm_3f2b0
ld b, $a9
- ld hl, W_ENEMYBATTSTATUS3 ; $d069
- ld de, W_ENEMYTOXICCOUNTER ; $d071
+ ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYTOXICCOUNTER ; wd071
.asm_3f2b0
cp $5c
jr nz, .asm_3f2bd
@@ -7207,13 +7111,13 @@
jp Bankswitch
ExplodeEffect: ; 3f2f1 (f:72f1)
- ld hl, W_PLAYERMONCURHP ; $d015
- ld de, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, wBattleMonHP ; wd015
+ ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f302
- ld hl, W_ENEMYMONCURHP ; $cfe6
- ld de, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, wEnemyMonHP ; wEnemyMonHP
+ ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_3f302
xor a
ld [hli], a ; set the mon's HP to 0
@@ -7227,22 +7131,22 @@
FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
call CheckTargetSubstitute ;test bit 4 of d063/d068 flags [target has substitute flag]
ret nz ;return if they have a substitute, can't effect them
ld a, [$fff3] ;whose turn?
and a
jp nz, opponentAttacker
- ld a, [W_ENEMYMONSTATUS]
+ ld a, [wEnemyMonStatus]
and a
jp nz, CheckDefrost
;opponent has no existing status
ld a, [W_PLAYERMOVETYPE]
ld b, a
- ld a, [W_ENEMYMONTYPE1]
+ ld a, [wEnemyMonType1]
cp b
ret z ;return if they match [can't freeze an ice type etc.]
- ld a, [W_ENEMYMONTYPE2]
+ ld a, [wEnemyMonType2]
cp b
ret z ;return..
ld a, [W_PLAYERMOVEEFFECT]
@@ -7253,7 +7157,7 @@
sub a, $1e ;subtract $1E to map to equivalent 10% chance effects
.next1
push af ;push effect...
- call GenRandomInBattle ;get random 8bit value for probability test
+ call BattleRandom ;get random 8bit value for probability test
cp b ;success?
pop bc ;...pop effect into C
ret nc ;do nothing if random value is >= 1A or 4D [no status applied]
@@ -7264,7 +7168,7 @@
cp a, FREEZE_SIDE_EFFECT
jr z, .freeze
ld a, 1 << PAR
- ld [W_ENEMYMONSTATUS], a
+ ld [wEnemyMonStatus], a
call Func_3ed27 ;quarter speed of affected monster
ld a, $a9
call Func_3fbb9 ;animation
@@ -7271,7 +7175,7 @@
jp PrintMayNotAttackText ;print paralysis text
.burn
ld a, 1 << BRN
- ld [W_ENEMYMONSTATUS], a
+ ld [wEnemyMonStatus], a
call Func_3ed64
ld a, $a9
call Func_3fbb9 ;animation
@@ -7280,21 +7184,21 @@
.freeze
call Func_3f9cf ;resets bit 5 of the D063/D068 flags
ld a, 1 << FRZ
- ld [W_ENEMYMONSTATUS], a
+ ld [wEnemyMonStatus], a
ld a, $a9
call Func_3fbb9 ;animation
ld hl, FrozenText
jp PrintText
opponentAttacker: ; 3f382 (f:7382)
- ld a, [W_PLAYERMONSTATUS] ;this appears to the same as above with addresses swapped for opponent
+ ld a, [wBattleMonStatus] ;this appears to the same as above with addresses swapped for opponent
and a
jp nz, CheckDefrost
ld a, [W_ENEMYMOVETYPE]
ld b, a
- ld a, [W_PLAYERMONTYPE1]
+ ld a, [wBattleMonType1]
cp b
ret z
- ld a, [W_PLAYERMONTYPE2]
+ ld a, [wBattleMonType2]
cp b
ret z
ld a, [W_ENEMYMOVEEFFECT]
@@ -7305,7 +7209,7 @@
sub a, $1e
.next1
push af
- call GenRandomInBattle
+ call BattleRandom
cp b
pop bc
ret nc
@@ -7315,18 +7219,18 @@
cp a, FREEZE_SIDE_EFFECT
jr z, .freeze
ld a, 1 << PAR
- ld [W_PLAYERMONSTATUS], a
+ ld [wBattleMonStatus], a
call Func_3ed27
jp PrintMayNotAttackText
.burn
ld a, 1 << BRN
- ld [W_PLAYERMONSTATUS], a
+ ld [wBattleMonStatus], a
call Func_3ed64
ld hl, BurnedText
jp PrintText
.freeze
ld a, 1 << FRZ
- ld [W_PLAYERMONSTATUS], a
+ ld [wBattleMonStatus], a
ld hl, FrozenText
jp PrintText
@@ -7350,10 +7254,10 @@
sub a, FIRE
ret nz ;return if it isn't fire
;type is fire
- ld [W_ENEMYMONSTATUS], a ;set opponent status to 00 ["defrost" a frozen monster]
- ld hl, $d8a8 ;status of first opponent monster in their roster
- ld a, [W_ENEMYMONNUMBER]
- ld bc, $002c ;$2C bytes per roster entry
+ ld [wEnemyMonStatus], a ;set opponent status to 00 ["defrost" a frozen monster]
+ ld hl, wEnemyMon1Status
+ ld a, [wEnemyMonPartyPos]
+ ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
xor a
ld [hl], a ;clear status in roster
@@ -7363,10 +7267,10 @@
ld a, [W_ENEMYMOVETYPE] ;same as above with addresses swapped
sub a, FIRE
ret nz
- ld [W_PLAYERMONSTATUS], a
- ld hl, $d16f
+ ld [wBattleMonStatus], a
+ ld hl, wPartyMon1Status
ld a, [wPlayerMonNumber]
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
xor a
ld [hl], a
@@ -7379,13 +7283,13 @@
db "@"
StatModifierUpEffect: ; 3f428 (f:7428)
- ld hl, wPlayerMonStatMods ; $cd1a
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, wPlayerMonStatMods ; wcd1a
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f439
- ld hl, wEnemyMonStatMods ; $cd2e
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, wEnemyMonStatMods ; wcd2e
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f439
ld a, [de]
sub $a
@@ -7415,13 +7319,13 @@
cp $4
jr nc, asm_3f4ca
push hl
- ld hl, $d026
- ld de, $cd12
+ ld hl, wBattleMonAttack + 1
+ ld de, wcd12
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f472
- ld hl, $cff7
- ld de, $cd26
+ ld hl, wEnemyMonAttack + 1
+ ld de, wcd26
.asm_3f472
push bc
sla c
@@ -7485,15 +7389,15 @@
ld b, c
inc b
call Func_3f688
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
- ld de, W_PLAYERMOVENUM ; $cfd2
- ld bc, $ccf7
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
+ ld de, W_PLAYERMOVENUM ; wcfd2
+ ld bc, wccf7
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f4e6
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
- ld de, W_ENEMYMOVENUM ; $cfcc
- ld bc, $ccf3
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
+ ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM
+ ld bc, wccf3
.asm_3f4e6
ld a, [de]
cp MINIMIZE
@@ -7541,9 +7445,9 @@
ld hl, GreatlyRoseText
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_3f53b
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_3f53b
cp ATTACK_DOWN1_EFFECT
ret nc
@@ -7559,19 +7463,19 @@
db "@"
StatModifierDownEffect: ; 3f54c (f:754c)
- ld hl, wEnemyMonStatMods ; $cd2e
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
- ld bc, W_ENEMYBATTSTATUS1 ; $d067
+ ld hl, wEnemyMonStatMods ; wcd2e
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
+ ld bc, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f572
- ld hl, wPlayerMonStatMods ; $cd1a
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
- ld bc, W_PLAYERBATTSTATUS1 ; $d062
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld hl, wPlayerMonStatMods ; wcd1a
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
+ ld bc, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
jr z, .asm_3f572
- call GenRandomInBattle
+ call BattleRandom
cp $40
jp c, Func_3f65a
.asm_3f572
@@ -7580,7 +7484,7 @@
ld a, [de]
cp ATTACK_DOWN_SIDE_EFFECT
jr c, .asm_3f58a
- call GenRandomInBattle
+ call BattleRandom
cp SPLASH_EFFECT
jp nc, Func_3f650
ld a, [de]
@@ -7594,7 +7498,7 @@
pop bc
pop de
pop hl
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jp nz, Func_3f65a
ld a, [bc]
@@ -7627,13 +7531,13 @@
jr nc, asm_3f62c
push hl
push de
- ld hl, $cff7
- ld de, $cd26
+ ld hl, wEnemyMonAttack + 1
+ ld de, wcd26
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f5d8
- ld hl, $d026
- ld de, $cd12
+ ld hl, wBattleMonAttack + 1
+ ld de, wcd12
.asm_3f5d8
push bc
sla c
@@ -7736,9 +7640,9 @@
ld hl, FellText
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_3f674
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_3f674
cp $1a
ret c
@@ -7767,7 +7671,7 @@
jr z, .asm_3f68d
jr .asm_3f690
.asm_3f696
- ld de, $cf4b
+ ld de, wcf4b
ld bc, $a
jp CopyData
@@ -7798,13 +7702,13 @@
BideEffect: ; 3f6e5 (f:76e5)
ld hl, W_PLAYERBATTSTATUS1
ld de, W_NUMHITS
- ld bc, $d06a
+ ld bc, wd06a
ld a, [H_WHOSETURN]
and a
jr z, .asm_3f6fc
ld hl, W_ENEMYBATTSTATUS1
- ld de, $cd05
- ld bc, $d06f
+ ld de, wcd05
+ ld bc, wd06f
.asm_3f6fc
set 0, [hl] ; mon is now using bide
xor a
@@ -7813,7 +7717,7 @@
ld [de], a
ld [W_PLAYERMOVEEFFECT], a
ld [W_ENEMYMOVEEFFECT], a
- call GenRandomInBattle
+ call BattleRandom
and $1
inc a
inc a
@@ -7823,16 +7727,16 @@
jp Func_3fb96
ThrashPetalDanceEffect: ; 3f717 (f:7717)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, $d06a
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, wd06a
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f728
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, $d06f
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, wd06f
.asm_3f728
set 1, [hl] ; mon is now using thrash/petal dance
- call GenRandomInBattle
+ call BattleRandom
and $1
inc a
inc a
@@ -7845,12 +7749,12 @@
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3f791
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .asm_3f77e
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld b, a
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
cp b
jr nc, .asm_3f76e
add b
@@ -7857,7 +7761,7 @@
ld c, a
inc c
.asm_3f751
- call GenRandomInBattle
+ call BattleRandom
cp c
jr nc, .asm_3f751
srl b
@@ -7866,7 +7770,7 @@
jr nc, .asm_3f76e
ld c, $32
call DelayFrames
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
cp TELEPORT
jp nz, PrintDidntAffectText
jp PrintButItFailedText_
@@ -7873,26 +7777,26 @@
.asm_3f76e
call ReadPlayerMonCurHPAndStatus
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
inc a
- ld [$d078], a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld [wd078], a
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr .asm_3f7e4
.asm_3f77e
ld c, $32
call DelayFrames
ld hl, IsUnaffectedText
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
cp TELEPORT
jp nz, PrintText
jp PrintButItFailedText_
.asm_3f791
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .asm_3f7d1
- ld a, [W_PLAYERMONLEVEL] ; $d022
+ ld a, [wBattleMonLevel] ; wBattleMonLevel
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
jr nc, .asm_3f7c1
add b
@@ -7899,7 +7803,7 @@
ld c, a
inc c
.asm_3f7a4
- call GenRandomInBattle
+ call BattleRandom
cp c
jr nc, .asm_3f7a4
srl b
@@ -7908,7 +7812,7 @@
jr nc, .asm_3f7c1
ld c, $32
call DelayFrames
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
cp TELEPORT
jp nz, PrintDidntAffectText
jp PrintButItFailedText_
@@ -7915,16 +7819,16 @@
.asm_3f7c1
call ReadPlayerMonCurHPAndStatus
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
inc a
- ld [$d078], a
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld [wd078], a
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
jr .asm_3f7e4
.asm_3f7d1
ld c, $32
call DelayFrames
ld hl, IsUnaffectedText
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
cp TELEPORT
jp nz, PrintText
jp Func_3fb4e
@@ -7957,24 +7861,24 @@
db "@"
TwoToFiveAttacksEffect: ; 3f811 (f:7811)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, $d06a
- ld bc, W_NUMHITS ; $d074
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, wd06a
+ ld bc, W_NUMHITS ; wd074
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f828
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, $d06f
- ld bc, $cd05
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, wd06f
+ ld bc, wcd05
.asm_3f828
bit 2, [hl] ; is mon attacking multiple times?
ret nz
set 2, [hl] ; mon is now attacking multiple times
- ld hl, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f838
- ld hl, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f838
ld a, [hl]
cp TWINEEDLE_EFFECT
@@ -7982,11 +7886,11 @@
cp ATTACK_TWICE_EFFECT
ld a, $2
jr z, .asm_3f853
- call GenRandomInBattle
+ call BattleRandom
and $3
cp $2
jr c, .asm_3f851
- call GenRandomInBattle
+ call BattleRandom
and $3
.asm_3f851
inc a
@@ -8003,13 +7907,13 @@
FlichSideEffect: ; 3f85b (f:785b)
call CheckTargetSubstitute
ret nz
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f870
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3f870
ld a, [de]
cp FLINCH_SIDE_EFFECT1
@@ -8017,7 +7921,7 @@
jr z, .asm_3f879
ld b, $4d ; ~30% chance of flinch
.asm_3f879
- call GenRandomInBattle
+ call BattleRandom
cp b
ret nc
set 3, [hl] ; set mon's status to flinching
@@ -8030,14 +7934,14 @@
jp Bankswitch
ChargeEffect: ; 3f88c (f:788c)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
ld b, $ae
jr z, .asm_3f8a1
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
ld b, $af
.asm_3f8a1
set 4, [hl]
@@ -8055,11 +7959,11 @@
ld b, $c0
.asm_3f8b6
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, b
call Func_3fbb9
ld a, [de]
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld hl, ChargeMoveEffectText ; $78c8
jp PrintText
@@ -8066,7 +7970,7 @@
ChargeMoveEffectText: ; 3f8c8 (f:78c8)
TX_FAR _ChargeMoveEffectText
db $08 ; asm
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp RAZOR_WIND
ld hl, MadeWhirlwindText ; $78f9
jr z, .asm_3f8f8
@@ -8112,23 +8016,23 @@
db "@"
TrappingEffect: ; 3f917 (f:7917)
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld de, $d06a
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld de, wd06a
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f928
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld de, $d06f
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld de, wd06f
.asm_3f928
bit 5, [hl]
ret nz
call Func_3f9cf
set 5, [hl]
- call GenRandomInBattle
+ call BattleRandom
and $3
cp $2
jr c, .asm_3f93e
- call GenRandomInBattle
+ call BattleRandom
and $3
.asm_3f93e
inc a
@@ -8151,7 +8055,7 @@
jp Bankswitch
ConfusionSideEffect: ; 3f959 (f:7959)
- call GenRandomInBattle
+ call BattleRandom
cp $19
ret nc
jr Func_3f96f
@@ -8160,7 +8064,7 @@
call CheckTargetSubstitute
jr nz, Func_3f9a6
call MoveHitTest
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, Func_3f9a6
@@ -8167,19 +8071,19 @@
Func_3f96f: ; 3f96f (f:796f)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_ENEMYBATTSTATUS1 ; $d067
- ld bc, $d070
- ld a, [W_PLAYERMOVEEFFECT] ; $cfd3
+ ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
+ ld bc, wd070
+ ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
jr z, .asm_3f986
- ld hl, W_PLAYERBATTSTATUS1 ; $d062
- ld bc, $d06b
- ld a, [W_ENEMYMOVEEFFECT] ; $cfcd
+ ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1
+ ld bc, wd06b
+ ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT
.asm_3f986
bit 7, [hl] ; is mon confused?
jr nz, Func_3f9a6
set 7, [hl] ; mon is now confused
push af
- call GenRandomInBattle
+ call BattleRandom
and $3
inc a
inc a
@@ -8212,11 +8116,11 @@
jp Bankswitch
HyperBeamEffect: ; 3f9c1 (f:79c1)
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f9cc
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_3f9cc
set 5, [hl] ; mon now needs to recharge
ret
@@ -8223,11 +8127,11 @@
Func_3f9cf: ; 3f9cf (f:79cf)
push hl
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3f9db
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
.asm_3f9db
res 5, [hl] ; mon no longer needs to recharge
pop hl
@@ -8252,13 +8156,13 @@
jr nz, .asm_3fa74
ld a, [H_WHOSETURN]
and a
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
ld a, [W_PLAYERBATTSTATUS1]
jr nz, .asm_3fa13
ld a, [W_ISLINKBATTLE]
cp $4
jr nz, .asm_3fa3a
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld a, [W_ENEMYBATTSTATUS1]
.asm_3fa13
bit 6, a
@@ -8265,7 +8169,7 @@
jr nz, .asm_3fa74
.asm_3fa17
push hl
- call GenRandomInBattle
+ call BattleRandom
and $3
ld c, a
ld b, $0
@@ -8277,10 +8181,10 @@
ld d, a
ld a, [H_WHOSETURN]
and a
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
ld a, [wPlayerMoveListIndex]
jr z, .asm_3fa5f
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld a, [wEnemyMoveListIndex]
jr .asm_3fa5f
.asm_3fa3a
@@ -8293,7 +8197,7 @@
ld [wMoveMenuType], a
call MoveSelectionMenu
call LoadScreenTilesFromBuffer1
- ld hl, W_ENEMYMONMOVES
+ ld hl, wEnemyMonMoves
ld a, [wCurrentMenuItem]
ld c, a
ld b, $0
@@ -8300,7 +8204,7 @@
add hl, bc
ld d, [hl]
pop af
- ld hl, W_PLAYERMONMOVES
+ ld hl, wBattleMonMoves
.asm_3fa5f
ld c, a
ld b, $0
@@ -8307,7 +8211,7 @@
add hl, bc
ld a, d
ld [hl], a
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
call Func_3fba8
ld hl, MimicLearnedMoveText
@@ -8330,16 +8234,16 @@
DisableEffect: ; 3fa8a (f:7a8a)
call MoveHitTest
- ld a, [W_MOVEMISSED] ; $d05f
+ ld a, [W_MOVEMISSED] ; W_MOVEMISSED
and a
jr nz, .asm_3fb06
- ld de, W_ENEMYDISABLEDMOVE ; $d072
- ld hl, W_ENEMYMONMOVES
+ ld de, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE
+ ld hl, wEnemyMonMoves
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3faa4
- ld de, W_PLAYERDISABLEDMOVE ; $d06d
- ld hl, W_PLAYERMONMOVES
+ ld de, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE
+ ld hl, wBattleMonMoves
.asm_3faa4
ld a, [de]
and a
@@ -8346,7 +8250,7 @@
jr nz, .asm_3fb06
.asm_3faa8
push hl
- call GenRandomInBattle
+ call BattleRandom
and $3
ld c, a
ld b, $0
@@ -8355,18 +8259,18 @@
pop hl
and a
jr z, .asm_3faa8
- ld [$d11e], a
+ ld [wd11e], a
push hl
ld a, [H_WHOSETURN] ; $fff3
and a
- ld hl, W_PLAYERMONPP ; $d02d
+ ld hl, wBattleMonPP ; wBattleMonPP
jr nz, .asm_3facf
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $4
pop hl
jr nz, .asm_3fae1
push hl
- ld hl, W_ENEMYMONPP ; $cffe
+ ld hl, wEnemyMonPP ; wcffe
.asm_3facf
push hl
ld a, [hli]
@@ -8384,7 +8288,7 @@
and a
jr z, .asm_3faa8
.asm_3fae1
- call GenRandomInBattle
+ call BattleRandom
and $7
inc a
inc c
@@ -8392,13 +8296,13 @@
add c
ld [de], a
call Func_3fb89
- ld hl, $ccee
+ ld hl, wccee
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3faf8
inc hl
.asm_3faf8
- ld a, [$d11e]
+ ld a, [wd11e]
ld [hl], a
call GetMoveName
ld hl, MoveWasDisabledText ; $7b09
@@ -8455,7 +8359,7 @@
db "@"
Func_3fb4e: ; 3fb4e (f:7b4e)
- ld a, [$ccf4]
+ ld a, [wccf4]
and a
ret nz
@@ -8489,11 +8393,11 @@
CheckTargetSubstitute: ; 3fb79 (f:7b79)
push hl
- ld hl, $d068
+ ld hl, W_ENEMYBATTSTATUS2
ld a, [$fff3] ;whose turn?
and a
jr z, .next1
- ld hl, $d063
+ ld hl, W_PLAYERBATTSTATUS2
.next1
bit 4, [hl] ;test bit 4 in d063/d068 flags
pop hl
@@ -8502,15 +8406,15 @@
Func_3fb89: ; 3fb89 (f:7b89)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3fb94
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3fb94
and a
ret z
Func_3fb96: ; 3fb96 (f:7b96)
- ld [W_ANIMATIONID], a ; $d07c
+ ld [W_ANIMATIONID], a ; W_ANIMATIONID
ld a, [H_WHOSETURN] ; $fff3
and a
ld a, $6
@@ -8517,30 +8421,29 @@
jr z, .asm_3fba2
ld a, $3
.asm_3fba2
- ld [$cc5b], a
+ ld [wcc5b], a
jp Func_3fbbc
Func_3fba8: ; 3fba8 (f:7ba8)
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3fbb7
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3fbb7
and a
ret z
Func_3fbb9: ; 3fbb9 (f:7bb9)
- ld [W_ANIMATIONID], a ; $d07c
+ ld [W_ANIMATIONID], a ; W_ANIMATIONID
Func_3fbbc: ; 3fbbc (f:7bbc)
push hl
push de
push bc
- ld a, $8
- call Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e))
+ predef MoveAnimation
pop bc
pop de
pop hl
--- a/engine/battle/d.asm
+++ b/engine/battle/d.asm
@@ -1,25 +1,21 @@
Func_372d6: ; 372d6 (d:72d6)
call LoadTextBoxTilePatterns
- FuncCoord 3, 4 ; $c3f3
- ld hl, Coord
+ hlCoord 3, 4
ld b, $7
ld c, $c
call TextBoxBorder
- FuncCoord 4, 5 ; $c408
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 4, 5
+ ld de, wPlayerName ; wd158
call PlaceString
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
- ld de, W_GRASSRATE ; $d887
+ hlCoord 4, 10
+ ld de, W_GRASSRATE ; W_GRASSRATE
call PlaceString
- FuncCoord 9, 8 ; $c449
- ld hl, Coord
+ hlCoord 9, 8
ld a, $69
ld [hli], a
ld [hl], $6a
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
callab SetupPlayerAndEnemyPokeballs
ld c, $96
jp DelayFrames
--- a/engine/battle/e.asm
+++ b/engine/battle/e.asm
@@ -1,11 +1,11 @@
Func_39680: ; 39680 (e:5680)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [$d060]
- ld hl, $d026
+ ld a, [wd060]
+ ld hl, wBattleMonAttack + 1
jr z, .asm_39691
- ld a, [$d065]
- ld hl, $cff7
+ ld a, [wd065]
+ ld hl, wEnemyMonAttack + 1
.asm_39691
ld c, $4
ld b, a
@@ -30,11 +30,11 @@
Func_396a7: ; 396a7 (e:56a7)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld a, [$d061]
- ld hl, W_PLAYERMONATK
+ ld a, [wd061]
+ ld hl, wBattleMonAttack
jr z, .asm_396b8
- ld a, [$d066]
- ld hl, W_ENEMYMONATTACK
+ ld a, [wd066]
+ ld hl, wEnemyMonAttack
.asm_396b8
ld c, $4
ld b, a
@@ -63,12 +63,11 @@
; Load the enemy trainer's pic and scrolls it into
; the screen from the right.
xor a
- ld [W_ENEMYMONID], a
+ ld [wEnemyMonSpecies2], a
ld b, $1
call GoPAL_SET
callab _LoadTrainerPic
- FuncCoord 19, 0 ; $c3b3
- ld hl, Coord
+ hlCoord 19, 0
ld c, $0
.asm_396e9
inc c
@@ -114,7 +113,7 @@
; unused slots are filled with 0, all used slots may be chosen with equal probability
AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
ld a, $a
- ld hl, $cee9 ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
+ ld hl, wHPBarMaxHP ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
ld [hli], a ; move 1
ld [hli], a ; move 2
ld [hli], a ; move 3
@@ -123,7 +122,7 @@
swap a
and $f
jr z, .noMoveDisabled
- ld hl, $cee9
+ ld hl, wHPBarMaxHP
dec a
ld c, a
ld b, $0
@@ -165,8 +164,8 @@
push de
jp [hl] ; execute modification function
.loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero
- ld hl, $cee9 ; temp move selection array
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wHPBarMaxHP ; temp move selection array
+ ld de, wEnemyMonMoves ; enemy moves
ld c, $4
.loopDecrementEntries
ld a, [de]
@@ -187,8 +186,8 @@
inc a
cp $5
jr nz, .loopUndoPartialIteration
- ld hl, $cee9 ; temp move selection array
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wHPBarMaxHP ; temp move selection array
+ ld de, wEnemyMonMoves ; enemy moves
ld c, $4
.filterMinimalEntries ; all minimal entries now have value 1. All other slots will be disabled (move set to 0)
ld a, [de]
@@ -209,10 +208,10 @@
inc de
dec c
jr nz, .filterMinimalEntries
- ld hl, $cee9 ; use created temporary array as move set
+ ld hl, wHPBarMaxHP ; use created temporary array as move set
ret
.useOriginalMoveSet
- ld hl, W_ENEMYMONMOVES ; use original move set
+ ld hl, wEnemyMonMoves ; use original move set
ret
AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3)
@@ -223,11 +222,11 @@
; discourages moves that cause no damage but only a status ailment if player's mon already has one
AIMoveChoiceModification1: ; 397ab (e:57ab)
- ld a, [W_PLAYERMONSTATUS]
+ ld a, [wBattleMonStatus]
and a
ret z ; return if no status ailment on player's mon
- ld hl, $cee8 ; temp move selection array (-1 byte offest)
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest)
+ ld de, wEnemyMonMoves ; enemy moves
ld b, $5
.nextMove
dec b
@@ -266,11 +265,11 @@
; slightly encourage moves with specific effects
AIMoveChoiceModification2: ; 397e7 (e:57e7)
- ld a, [$ccd5]
+ ld a, [wccd5]
cp $1
ret nz
- ld hl, $cee8 ; temp move selection array (-1 byte offest)
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest)
+ ld de, wEnemyMonMoves ; enemy moves
ld b, $5
.nextMove
dec b
@@ -297,8 +296,8 @@
; encourages moves that are effective against the player's mon
AIMoveChoiceModification3: ; 39817 (e:5817)
- ld hl, $cee8 ; temp move selection array (-1 byte offest)
- ld de, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest)
+ ld de, wEnemyMonMoves ; enemy moves
ld b, $5
.nextMove
dec b
@@ -316,7 +315,7 @@
pop de
pop bc
pop hl
- ld a, [$d11e]
+ ld a, [wd11e]
cp $10
jr z, .nextMove
jr c, .notEffectiveMove
@@ -328,7 +327,7 @@
push bc
ld a, [W_ENEMYMOVETYPE]
ld d, a
- ld hl, W_ENEMYMONMOVES ; enemy moves
+ ld hl, wEnemyMonMoves ; enemy moves
ld b, $5
ld c, $0
.loopMoves
@@ -374,7 +373,7 @@
ld hl,Moves
ld bc,6
call AddNTimes
- ld de,$CFCC
+ ld de,W_ENEMYMOVENUM
call CopyData
pop bc
pop de
@@ -579,8 +578,8 @@
INCLUDE "text/trainer_names.asm"
Func_39b87: ; 39b87 (e:5b87)
- ld hl, $d0dc
- ld de, $d0e1
+ ld hl, wd0dc
+ ld de, wd0e1
ld b, $0
.asm_39b8f
ld a, [hli]
@@ -587,13 +586,13 @@
and a
jr z, .asm_39bc1
push hl
- ld [$d0b5], a
+ ld [wd0b5], a
ld a, $2c
- ld [$d0b7], a
+ ld [wPredefBank], a
ld a, MOVE_NAME
ld [W_LISTTYPE], a
call GetName
- ld hl, $cd6d
+ ld hl, wcd6d
.asm_39ba7
ld a, [hli]
cp $50
@@ -603,7 +602,7 @@
jr .asm_39ba7
.asm_39bb0
ld a, b
- ld [$cd6c], a
+ ld [wcd6c], a
inc b
ld a, $4e
ld [de], a
@@ -631,24 +630,24 @@
ret
Func_39bd5: ; 39bd5 (e:5bd5)
- ld a, [$d11b]
+ ld a, [wd11b]
cp $1
jr nz, .asm_39be6
- ld hl, wEnemyPartyCount ; $d89c
- ld de, W_ENEMYMON1OT ; $d9ac OT names of other player
+ ld hl, wEnemyPartyCount ; wEnemyPartyCount
+ ld de, wEnemyMonOT ; wd9ac OT names of other player
ld a, $6
jr .asm_39c18
.asm_39be6
cp $4
jr nz, .calcAttackStat4
- ld hl, W_NUMINPARTY ; $d163
- ld de, W_PARTYMON1OT ; $d273
+ ld hl, wPartyCount ; wPartyCount
+ ld de, wPartyMonOT ; wd273
ld a, $5
jr .asm_39c18
.calcAttackStat4
cp $5
jr nz, .asm_39c02
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld de, MonsterNames ; $421e
ld a, $1
jr .asm_39c18
@@ -655,47 +654,47 @@
.asm_39c02
cp $2
jr nz, .asm_39c10
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
ld de, ItemNames ; $472b
ld a, $4
jr .asm_39c18
.asm_39c10
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld de, ItemNames ; $472b
ld a, ITEM_NAME
.asm_39c18
ld [W_LISTTYPE], a
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
ld a, e
- ld [$cf8d], a
+ ld [wcf8d], a
ld a, d
- ld [$cf8e], a
+ ld [wcf8e], a
ld bc, ItemPrices ; $4608
ld a, c
- ld [$cf8f], a
+ ld [wcf8f], a
ld a, b
- ld [$cf90], a
+ ld [wcf90], a
ret
Func_39c37: ; 39c37 (e:5c37)
- ld hl, W_PARTYMON1 ; $d164
- ld a, [$cc49]
+ ld hl, wPartySpecies
+ ld a, [wcc49]
and a
jr z, .asm_39c4b
dec a
jr z, .asm_39c48
- ld hl, $da81
+ ld hl, wBoxSpecies
jr .asm_39c4b
.asm_39c48
- ld hl, $d89d
+ ld hl, wEnemyPartyMons
.asm_39c4b
ld d, $0
add hl, de
ld a, [hl]
- ld [$cf91], a
+ ld [wcf91], a
ret
ReadTrainer: ; 39c53 (e:5c53)
@@ -705,7 +704,7 @@
and a
ret nz
-; set [wEnemyPartyCount] to 0, [$D89D] to FF
+; set [wEnemyPartyCount] to 0, [wEnemyPartyMons] to FF
; XXX first is total enemy pokemon?
; XXX second is species of first pokemon?
ld hl,wEnemyPartyCount
@@ -754,11 +753,11 @@
ld a,[hli]
and a ; have we reached the end of the trainer data?
jr z,.FinishUp
- ld [$CF91],a ; write species somewhere (XXX why?)
+ ld [wcf91],a ; write species somewhere (XXX why?)
ld a,1
- ld [$CC49],a
+ ld [wcc49],a
push hl
- call AddPokemonToParty
+ call AddPartyMon
pop hl
jr .LoopTrainerData
.SpecialTrainer
@@ -771,11 +770,11 @@
jr z,.AddLoneMove
ld [W_CURENEMYLVL],a
ld a,[hli]
- ld [$CF91],a
+ ld [wcf91],a
ld a,1
- ld [$CC49],a
+ ld [wcc49],a
push hl
- call AddPokemonToParty
+ call AddPartyMon
pop hl
jr .SpecialTrainer
.AddLoneMove
@@ -791,8 +790,8 @@
add hl,bc
ld a,[hli]
ld d,[hl]
- ld hl,W_ENEMYMON1MOVE3
- ld bc,W_ENEMYMON2MOVE3 - W_ENEMYMON1MOVE3
+ ld hl,wEnemyMon1Moves + 2
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
ld [hl],d
jr .FinishUp
@@ -821,13 +820,13 @@
jr .FinishUp ; nope
.GiveTeamMoves
ld a,[hl]
- ld [$D95E],a
+ ld [wEnemyMon5Moves + 2],a
jr .FinishUp
.ChampionRival ; give moves to his team
; pidgeot
ld a,SKY_ATTACK
- ld [W_ENEMYMON1MOVE3],a
+ ld [wEnemyMon1Moves + 2],a
; starter
ld a,[W_RIVALSTARTER]
@@ -840,10 +839,10 @@
ld b,BLIZZARD ; must be squirtle
.GiveStarterMove
ld a,b
- ld [W_ENEMYMON6MOVE3],a
+ ld [wEnemyMon6Moves + 2],a
.FinishUp ; XXX this needs documenting
xor a ; clear D079-D07B
- ld de,$D079
+ ld de,wd079
ld [de],a
inc de
ld [de],a
@@ -852,11 +851,10 @@
ld a,[W_CURENEMYLVL]
ld b,a
.LastLoop
- ld hl,$D047
+ ld hl,wd047
ld c,2
push bc
- ld a,$B
- call Predef
+ predef AddBCDPredef
pop bc
inc de
inc de
@@ -898,7 +896,7 @@
ld a,[hli]
ld h,[hl]
ld l,a
- call GenRandom
+ call Random
jp [hl]
TrainerAIPointers: ; 3a55c (e:655c)
@@ -985,7 +983,7 @@
BrockAI: ; 3a614 (e:6614)
; if his active monster has a status condition, use a full heal
- ld a,[W_ENEMYMONSTATUS]
+ ld a,[wEnemyMonStatus]
and a
ret z
jp AIUseFullHeal
@@ -1092,9 +1090,9 @@
AIUseFullRestore: ; 3a6a0 (e:66a0)
call AICureStatus
ld a,FULL_RESTORE
- ld [$CF05],a
+ ld [wcf05],a
ld de,wHPBarOldHP
- ld hl,$CFE7
+ ld hl,wEnemyMonHP + 1
ld a,[hld]
ld [de],a
inc de
@@ -1101,16 +1099,16 @@
ld a,[hl]
ld [de],a
inc de
- ld hl,$CFF5
+ ld hl,wEnemyMonMaxHP + 1
ld a,[hld]
ld [de],a
inc de
ld [wHPBarMaxHP],a
- ld [$CFE7],a
+ ld [wEnemyMonHP + 1],a
ld a,[hl]
ld [de],a
ld [wHPBarMaxHP+1],a
- ld [W_ENEMYMONCURHP],a
+ ld [wEnemyMonHP],a
jr Func_3a718
AIUsePotion: ; 3a6ca (e:66ca)
@@ -1133,8 +1131,8 @@
AIRecoverHP: ; 3a6da (e:66da)
; heal b HP and print "trainer used $(a) on pokemon!"
- ld [$CF05],a
- ld hl,$CFE7
+ ld [wcf05],a
+ ld hl,wEnemyMonHP + 1
ld a,[hl]
ld [wHPBarOldHP],a
add b
@@ -1151,7 +1149,7 @@
inc hl
ld a,[hld]
ld b,a
- ld de,$CFF5
+ ld de,wEnemyMonMaxHP + 1
ld a,[de]
dec de
ld [wHPBarMaxHP],a
@@ -1174,18 +1172,16 @@
Func_3a718: ; 3a718 (e:6718)
call AIPrintItemUse_
- FuncCoord 2, 2 ; $c3ca
- ld hl,Coord
+ hlCoord 2, 2
xor a
- ld [$CF94],a
- ld a,$48
- call Predef
+ ld [wListMenuID],a
+ predef UpdateHPBar2
jp DecrementAICount
Func_3a72a: ; 3a72a (e:672a)
ld a,[wEnemyPartyCount]
ld c,a
- ld hl,W_ENEMYMON1HP
+ ld hl,wEnemyMon1HP
ld d,0 ; keep count of unfainted monsters
@@ -1215,13 +1211,13 @@
; prepare to withdraw the active monster: copy hp, number, and status to roster
- ld a,[W_ENEMYMONNUMBER]
- ld hl,W_ENEMYMON1HP
- ld bc,$2C
+ ld a,[wEnemyMonPartyPos]
+ ld hl,wEnemyMon1HP
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
ld d,h
ld e,l
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld bc,4
call CopyData
@@ -1229,10 +1225,10 @@
call PrintText
ld a,1
- ld [$D11D],a
+ ld [wd11d],a
callab EnemySendOut
xor a
- ld [$D11D],a
+ ld [wd11d],a
ld a,[W_ISLINKBATTLE]
cp 4
@@ -1252,20 +1248,20 @@
AICureStatus: ; 3a791 (e:6791)
; cures the status of enemy's active pokemon
- ld a,[W_ENEMYMONNUMBER]
- ld hl,$D8A8
- ld bc,$2C
+ ld a,[wEnemyMonPartyPos]
+ ld hl,wEnemyMon1Status
+ ld bc,wEnemyMon2 - wEnemyMon1
call AddNTimes
xor a
ld [hl],a ; clear status in enemy team roster
- ld [W_ENEMYMONSTATUS],a ; clear status of active enemy
- ld hl,$D069
+ ld [wEnemyMonStatus],a ; clear status of active enemy
+ ld hl,W_ENEMYBATTSTATUS3
res 0,[hl]
ret
AIUseXAccuracy: ; 0x3a7a8 unused
call Func_3a69b
- ld hl,$D068
+ ld hl,W_ENEMYBATTSTATUS2
set 0,[hl]
ld a,X_ACCURACY
jp AIPrintItemUse
@@ -1272,7 +1268,7 @@
AIUseGuardSpec: ; 3a7b5 (e:67b5)
call Func_3a69b
- ld hl,$D068
+ ld hl,W_ENEMYBATTSTATUS2
set 1,[hl]
ld a,GUARD_SPEC_
jp AIPrintItemUse
@@ -1279,7 +1275,7 @@
AIUseDireHit: ; 0x3a7c2 unused
call Func_3a69b
- ld hl,$D068
+ ld hl,W_ENEMYBATTSTATUS2
set 2,[hl]
ld a,DIRE_HIT
jp AIPrintItemUse
@@ -1286,7 +1282,7 @@
Func_3a7cf: ; 3a7cf (e:67cf)
ld [H_DIVISOR],a
- ld hl,$CFF4
+ ld hl,wEnemyMonMaxHP
ld a,[hli]
ld [H_DIVIDEND],a
ld a,[hl]
@@ -1297,7 +1293,7 @@
ld c,a
ld a,[H_QUOTIENT + 2]
ld b,a
- ld hl,$CFE7
+ ld hl,wEnemyMonHP + 1
ld a,[hld]
ld e,a
ld a,[hl]
@@ -1330,11 +1326,11 @@
; fallthrough
AIIncreaseStat: ; 3a808 (e:6808)
- ld [$CF05],a
+ ld [wcf05],a
push bc
call AIPrintItemUse_
pop bc
- ld hl,$CFCD
+ ld hl,W_ENEMYMOVEEFFECT
ld a,[hld]
push af
ld a,[hl]
@@ -1352,14 +1348,14 @@
jp DecrementAICount
AIPrintItemUse: ; 3a82c (e:682c)
- ld [$CF05],a
+ ld [wcf05],a
call AIPrintItemUse_
jp DecrementAICount
AIPrintItemUse_: ; 3a835 (e:6835)
-; print "x used [$CF05] on z!"
- ld a,[$CF05]
- ld [$D11E],a
+; print "x used [wcf05] on z!"
+ ld a,[wcf05]
+ ld [wd11e],a
call GetItemName
ld hl, AIBattleUseItemText
jp PrintText
@@ -1371,7 +1367,7 @@
DrawAllPokeballs: ; 3a849 (e:6849)
call LoadPartyPokeballGfx
call SetupOwnPartyPokeballs
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ret z ; return if wild pokémon
jp SetupEnemyPartyPokeballs
@@ -1382,21 +1378,21 @@
LoadPartyPokeballGfx: ; 3a85d (e:685d)
ld de, PokeballTileGraphics ; $697e
- ld hl, $8310
+ ld hl, vSprites + $310
ld bc, (BANK(PokeballTileGraphics) << 8) + $04
jp CopyVideoData
SetupOwnPartyPokeballs: ; 3a869 (e:6869)
call PlacePlayerHUDTiles
- ld hl, W_PARTYMON1DATA
- ld de, W_NUMINPARTY ; $d163
+ ld hl, wPartyMon1
+ ld de, wPartyCount ; wPartyCount
call SetupPokeballs
ld a, $60
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld [hli], a
ld [hl], a
ld a, $8
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer
jp Func_3a8e1
@@ -1403,15 +1399,15 @@
SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
call PlaceEnemyHUDTiles
ld hl, wEnemyMons
- ld de, wEnemyPartyCount ; $d89c
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld a, $48
ld [hli], a
ld [hl], $20
ld a, $f8
- ld [$cd3e], a
- ld hl, $c318
+ ld [wTrainerEngageDistance], a
+ ld hl, wOAMBuffer + $18
jp Func_3a8e1
SetupPokeballs: ; 0x3a8a6
@@ -1465,22 +1461,22 @@
ret
Func_3a8e1: ; 3a8e1 (e:68e1)
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld c, $6
.asm_3a8e6
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, [de]
ld [hli], a
xor a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld b, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
add b
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
inc de
dec c
jr nz, .asm_3a8e6
@@ -1488,11 +1484,10 @@
PlacePlayerHUDTiles: ; 3a902 (e:6902)
ld hl, PlayerBattleHUDGraphicsTiles ; $6916
- ld de, $cd3f
+ ld de, wTrainerFacingDirection
ld bc, $3
call CopyData
- FuncCoord 18, 10 ; $c47a
- ld hl, Coord
+ hlCoord 18, 10
ld de, rIE ; $ffff
jr PlaceHUDTiles
@@ -1504,11 +1499,10 @@
PlaceEnemyHUDTiles: ; 3a919 (e:6919)
ld hl, EnemyBattleHUDGraphicsTiles ; $692d
- ld de, $cd3f
+ ld de, wTrainerFacingDirection
ld bc, $3
call CopyData
- FuncCoord 1, 2 ; $c3c9
- ld hl, Coord
+ hlCoord 1, 2
ld de, $1
jr PlaceHUDTiles
@@ -1522,7 +1516,7 @@
ld [hl], $73
ld bc, $14
add hl, bc
- ld a, [$cd40]
+ ld a, [wTrainerScreenY]
ld [hl], a
ld a, $8
.asm_3a93c
@@ -1531,33 +1525,33 @@
dec a
jr nz, .asm_3a93c
add hl, de
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
ld [hl], a
ret
SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948)
call LoadPartyPokeballGfx
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- ld de, W_NUMINPARTY ; $d163
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
+ ld de, wPartyCount ; wPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld a, $50
ld [hli], a
ld [hl], $40
ld a, $8
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer
call Func_3a8e1
- ld hl, wEnemyMons ; $d8a4
- ld de, wEnemyPartyCount ; $d89c
+ ld hl, wEnemyMons ; wEnemyMon1Species
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; $d081
+ ld hl, W_BASECOORDX ; wd081
ld a, $50
ld [hli], a
ld [hl], $68
- ld hl, $c318
+ ld hl, wOAMBuffer + $18
jp Func_3a8e1
; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon)
PokeballTileGraphics:: ; 3a97e (e:697e)
- INCBIN "gfx/pokeball.2bpp"
\ No newline at end of file
+ INCBIN "gfx/pokeball.2bpp"
--- a/engine/battle/e_2.asm
+++ b/engine/battle/e_2.asm
@@ -1,13 +1,13 @@
HealEffect_: ; 3b9ec (e:79ec)
ld a, [H_WHOSETURN] ; $fff3
and a
- ld de, W_PLAYERMONCURHP ; $d015
- ld hl, W_PLAYERMONMAXHP ; $d023
- ld a, [W_PLAYERMOVENUM] ; $cfd2
+ ld de, wBattleMonHP ; wd015
+ ld hl, wBattleMonMaxHP ; wd023
+ ld a, [W_PLAYERMOVENUM] ; wcfd2
jr z, .asm_3ba03
- ld de, W_ENEMYMONCURHP ; $cfe6
- ld hl, W_ENEMYMONMAXHP ; $cff4
- ld a, [W_ENEMYMOVENUM] ; $cfcc
+ ld de, wEnemyMonHP ; wEnemyMonHP
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
+ ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
.asm_3ba03
ld b, a
ld a, [de]
@@ -25,11 +25,11 @@
push af
ld c, $32
call DelayFrames
- ld hl, W_PLAYERMONSTATUS ; $d018
+ ld hl, wBattleMonStatus ; wBattleMonStatus
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3ba25
- ld hl, W_ENEMYMONSTATUS ; $cfe9
+ ld hl, wEnemyMonStatus ; wcfe9
.asm_3ba25
ld a, [hl]
and a
@@ -85,17 +85,14 @@
call BankswitchEtoF
ld a, [H_WHOSETURN] ; $fff3
and a
- FuncCoord 10, 9 ; $c45e
- ld hl, Coord
+ hlCoord 10, 9
ld a, $1
jr z, .asm_3ba83
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
xor a
.asm_3ba83
- ld [wListMenuID], a ; $cf94
- ld a, $48
- call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
+ ld [wListMenuID], a ; wListMenuID
+ predef UpdateHPBar2
ld hl, Func_3cd5a ; $4d5a
call BankswitchEtoF
ld hl, RegainedHealthText ; $7aac
@@ -120,18 +117,18 @@
db "@"
TransformEffect_: ; 3bab1 (e:7ab1)
- ld hl, W_PLAYERMONID
- ld de, $cfe5
- ld bc, W_ENEMYBATTSTATUS3 ; $d069
- ld a, [W_ENEMYBATTSTATUS1] ; $d067
+ ld hl, wBattleMonSpecies
+ ld de, wEnemyMonSpecies
+ ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
ld a, [H_WHOSETURN] ; $fff3
and a
jr nz, .asm_3bad1
- ld hl, $cfe5
- ld de, W_PLAYERMONID
- ld bc, W_PLAYERBATTSTATUS3 ; $d064
- ld [wPlayerMoveListIndex], a ; $cc2e
- ld a, [W_PLAYERBATTSTATUS1] ; $d062
+ ld hl, wEnemyMonSpecies
+ ld de, wBattleMonSpecies
+ ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
+ ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
+ ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
.asm_3bad1
bit 6, a ; is mon invulnerable to typical attacks? (fly/dig)
jp nz, Func_3bb8c
@@ -138,11 +135,11 @@
push hl
push de
push bc
- ld hl, W_PLAYERBATTSTATUS2 ; $d063
+ ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3bae4
- ld hl, W_ENEMYBATTSTATUS2 ; $d068
+ ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
.asm_3bae4
bit 4, [hl]
push af
@@ -149,7 +146,7 @@
ld hl, Func_79747
ld b, BANK(Func_79747)
call nz, Bankswitch
- ld a, [W_OPTIONS] ; $d355
+ ld a, [W_OPTIONS] ; W_OPTIONS
add a
ld hl, Func_3fba8 ; $7ba8
ld b, BANK(Func_3fba8)
@@ -185,10 +182,10 @@
and a
jr z, .asm_3bb32
ld a, [de]
- ld [$cceb], a
+ ld [wcceb], a
inc de
ld a, [de]
- ld [$ccec], a
+ ld [wccec], a
dec de
.asm_3bb32
ld a, [hli]
@@ -227,13 +224,13 @@
.asm_3bb5d
pop hl
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
- ld hl, $cd26
- ld de, $cd12
+ ld hl, wcd26
+ ld de, wcd12
call Func_3bb7d
- ld hl, wEnemyMonStatMods ; $cd2e
- ld de, wPlayerMonStatMods ; $cd1a
+ ld hl, wEnemyMonStatMods ; wcd2e
+ ld de, wPlayerMonStatMods ; wcd1a
call Func_3bb7d
ld hl, TransformedText ; $7b92
jp PrintText
@@ -259,13 +256,13 @@
db "@"
ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
- ld hl, W_PLAYERBATTSTATUS3 ; $d064
- ld de, W_PLAYERMOVEEFFECT ; $cfd3
+ ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
+ ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3
and a
jr z, .asm_3bba8
- ld hl, W_ENEMYBATTSTATUS3 ; $d069
- ld de, W_ENEMYMOVEEFFECT ; $cfcd
+ ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
+ ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
.asm_3bba8
ld a, [de]
cp LIGHT_SCREEN_EFFECT
--- a/engine/battle/safari_zone.asm
+++ b/engine/battle/safari_zone.asm
@@ -1,5 +1,5 @@
PrintSafariZoneBattleText: ; 4277 (1:4277)
- ld hl, $cce9
+ ld hl, wcce9
ld a, [hl]
and a
jr z, .asm_4284
@@ -15,11 +15,11 @@
ld hl, SafariZoneAngryText
jr nz, .asm_429f
push hl
- ld a, [$cfe5]
- ld [$d0b5], a
+ ld a, [wEnemyMonSpecies]
+ ld [wd0b5], a
call GetMonHeader
ld a, [W_MONHCATCHRATE]
- ld [$d007], a
+ ld [wd007], a
pop hl
.asm_429f
push hl
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -6,22 +6,20 @@
call LoadFontTilePatterns
call LoadHpBarAndStatusTilePatterns
call LoadTrainerInfoTextBoxTiles
- FuncCoord 3, 8 ; $c443
- ld hl, Coord
+ hlCoord 3, 8
ld b, $2
ld c, $c
call Func_5ab3
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
+ hlCoord 4, 10
ld de, PleaseWaitString ; $550f
call PlaceString
- ld hl, W_NUMHITS ; $d074
+ ld hl, W_NUMHITS ; wd074
xor a
ld [hli], a
ld [hl], $50
Func_5345: ; 5345
- ld hl, $d152
+ ld hl, wd152
ld a, $fd
ld b, $6
.asm_534c
@@ -28,7 +26,7 @@
ld [hli], a
dec b
jr nz, .asm_534c
- ld hl, $d141
+ ld hl, wd141
ld a, $fd
ld b, $7
.asm_5357
@@ -37,7 +35,7 @@
jr nz, .asm_5357
ld b, $a
.asm_535d
- call GenRandom
+ call Random
cp $fd
jr nc, .asm_535d
ld [hli], a
@@ -54,7 +52,7 @@
ld [hli], a
dec b
jr nz, .asm_5373
- ld hl, W_GRASSRATE ; $d887
+ ld hl, W_GRASSRATE ; W_GRASSRATE
ld bc, $1a9
.asm_537d
xor a
@@ -63,8 +61,8 @@
ld a, b
or c
jr nz, .asm_537d
- ld hl, W_PARTYMONEND ; $d16a
- ld de, $c512
+ ld hl, wPartyMons - 1
+ ld de, wTileMapBackup + 10
ld bc, $0
.asm_538d
inc c
@@ -114,20 +112,20 @@
call Delay3
ld a, $8
ld [rIE], a ; $ffff
- ld hl, $d141
+ ld hl, wd141
ld de, wTileMapBackup2
ld bc, $11
call Func_216f
ld a, $fe
ld [de], a
- ld hl, $d152
- ld de, $d893
+ ld hl, wd152
+ ld de, wd893
ld bc, $1a8
call Func_216f
ld a, $fe
ld [de], a
ld hl, wTileMapBackup
- ld de, $c5d0
+ ld de, wTileMapBackup + 200
ld bc, $c8
call Func_216f
ld a, $d
@@ -147,7 +145,7 @@
cp $fe
jr z, .asm_5415
dec hl
- ld de, $d148
+ ld de, wd148
ld c, $a
.asm_5427
ld a, [hli]
@@ -158,7 +156,7 @@
dec c
jr nz, .asm_5427
.asm_5431
- ld hl, $d896
+ ld hl, wd896
.asm_5434
ld a, [hli]
and a
@@ -168,7 +166,7 @@
cp $fe
jr z, .asm_5434
dec hl
- ld de, W_GRASSRATE ; $d887
+ ld de, W_GRASSRATE ; W_GRASSRATE
ld c, $b
.asm_5446
ld a, [hli]
@@ -178,7 +176,7 @@
inc de
dec c
jr nz, .asm_5446
- ld de, wEnemyPartyCount ; $d89c
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
ld bc, $194
.asm_5456
ld a, [hli]
@@ -191,7 +189,7 @@
or c
jr nz, .asm_5456
ld de, wTileMapBackup
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMons
ld c, $2
.asm_546a
ld a, [de]
@@ -206,7 +204,7 @@
jr z, .asm_5489
push hl
push bc
- ld b, $0
+ ld b, 0
dec a
ld c, a
add hl, bc
@@ -216,11 +214,11 @@
pop hl
jr .asm_546a
.asm_5489
- ld hl, W_PARTYMON6DATA + W_PARTYMON1_MOVE4PP - W_PARTYMON1DATA ; $d267
+ ld hl, wPartyMons + $fc ; wd267
dec c
jr nz, .asm_546a
- ld de, $c5d0
- ld hl, W_WATERRATE ; $d8a4
+ ld de, wTileMapBackup + 200
+ ld hl, wEnemyMons
ld c, $2
.asm_5497
ld a, [de]
@@ -245,15 +243,15 @@
pop hl
jr .asm_5497
.asm_54b6
- ld hl, $d9a0
+ ld hl, wEnemyMons + $fc
dec c
jr nz, .asm_5497
ld a, $ac
- ld [$cf8d], a
+ ld [wcf8d], a
ld a, $d9
- ld [$cf8e], a
+ ld [wcf8e], a
xor a
- ld [$cc38], a
+ ld [wcc38], a
ld a, $ff
call PlaySound
ld a, [$ffaa]
@@ -260,23 +258,21 @@
cp $2
ld c, $42
call z, DelayFrames
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $3
ld a, $32
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
jr nz, .asm_5506
ld a, $4
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
ld a, SONY1 + $c8
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
call ClearScreen
call Delay3
- ld hl, W_OPTIONS ; $d355
+ ld hl, W_OPTIONS ; W_OPTIONS
res 7, [hl]
- ld a, $2c
- call Predef ; indirect jump to InitOpponent (3ef18 (f:6f18))
- ld a, $7
- call Predef ; indirect jump to HealParty (f6a5 (3:76a5))
+ predef InitOpponent
+ predef HealParty
jp Func_577d
.asm_5506
ld c, BANK(Music_GameCorner)
@@ -290,7 +286,7 @@
Func_551c:
ld hl, PointerTable_5a5b ; $5a5b
ld b, $0
- ld a, [$cc38]
+ ld a, [wcc38]
cp $ff
jp z, LoadTitlescreenGraphics
add a
@@ -307,31 +303,31 @@
call Func_57f2
call Func_57a2
xor a
- ld hl, $cc3d
+ ld hl, wcc3d
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld [$cc37], a
- ld [$cc26], a
- ld [$cc2a], a
- ld [$cc34], a
+ ld [wcc37], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ ld [wMenuJoypadPollCount], a
inc a
- ld [$cc42], a
+ ld [wcc42], a
jp .asm_55dc
.asm_5557
xor a
- ld [$cc37], a
+ ld [wcc37], a
inc a
- ld [$cc49], a
+ ld [wcc49], a
ld a, $a1
- ld [$cc29], a
- ld a, [$d89c]
- ld [$cc28], a
+ ld [wMenuWatchedKeys], a
+ ld a, [wEnemyPartyCount]
+ ld [wMaxMenuItem], a
ld a, $9
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
+ ld [wTopMenuItemX], a
.asm_5574
ld hl, $fff6
set 1, [hl]
@@ -342,17 +338,17 @@
jp z, .asm_565b
bit 0, a
jr z, .asm_55b0 ; 0x5587 $27
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
ld c, a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
cp c
jr c, .asm_559a ; 0x5591 $7
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
dec a
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
.asm_559a
ld a, $1
- ld [$d11b], a
+ ld [wd11b], a
callab Func_39bd5
ld hl, wEnemyMons
call Func_57d6
@@ -361,20 +357,20 @@
bit 5, a
jr z, .asm_55d4 ; 0x55b2 $20
xor a
- ld [$cc49], a
- ld a, [$cc30]
+ ld [wcc49], a
+ ld a, [wMenuCursorLocation]
ld l, a
- ld a, [$cc31]
+ ld a, [wMenuCursorLocation + 1]
ld h, a
- ld a, [$cc27]
+ ld a, [wTileBehindCursor]
ld [hl], a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld b, a
- ld a, [$d163]
+ ld a, [wPartyCount]
dec a
cp b
jr nc, .asm_55dc ; 0x55cd $d
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
jr .asm_55dc ; 0x55d2 $8
.asm_55d4
bit 7, a
@@ -382,17 +378,17 @@
jp .asm_572f
.asm_55dc
xor a
- ld [$cc49], a
- ld [$cc37], a
+ ld [wcc49], a
+ ld [wcc37], a
ld a, $91
- ld [$cc29], a
- ld a, [$d163]
- ld [$cc28], a
+ ld [wMenuWatchedKeys], a
+ ld a, [wPartyCount]
+ ld [wMaxMenuItem], a
ld a, $1
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
- ld hl, $c3b5
+ ld [wTopMenuItemX], a
+ ld hl, wTileMap + $15
ld bc, $0601
call ClearScreenArea
.asm_5601
@@ -409,7 +405,7 @@
jr z, .asm_562e ; 0x5616 $16
jp .asm_5665
ld a, $4
- ld [$d11b], a
+ ld [wd11b], a
callab Func_39bd5
call Func_57d6
jp .asm_565b
@@ -417,20 +413,20 @@
bit 4, a
jr z, .asm_5654 ; 0x5630 $22
ld a, $1
- ld [$cc49], a
- ld a, [$cc30]
+ ld [wcc49], a
+ ld a, [wMenuCursorLocation]
ld l, a
- ld a, [$cc31]
+ ld a, [wMenuCursorLocation + 1]
ld h, a
- ld a, [$cc27]
+ ld a, [wTileBehindCursor]
ld [hl], a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld b, a
- ld a, [$d89c]
+ ld a, [wEnemyPartyCount]
dec a
cp b
jr nc, .asm_5651 ; 0x564c $3
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
.asm_5651
jp .asm_5557
.asm_5654
@@ -438,7 +434,7 @@
jr z, .asm_565b ; 0x5656 $3
jp .asm_572f
.asm_565b
- ld a, [$cc49]
+ ld a, [wcc49]
and a
jp z, .asm_5601
jp .asm_5574
@@ -445,36 +441,36 @@
.asm_5665
call SaveScreenTilesToBuffer1
call PlaceUnfilledArrowMenuCursor
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
ld c, a
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
cp c
jr c, .asm_5679 ; 0x5673 $4
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
dec a
.asm_5679
push af
- ld hl, $c4b8
+ ld hl, wTileMap + $118
ld b, $2
ld c, $12
call Func_5ab3
- ld hl, $c4e2
+ ld hl, wTileMap + $142
ld de, .statsTrade
call PlaceString
xor a
- ld [$cc26], a
- ld [$cc2a], a
- ld [$cc34], a
- ld [$cc28], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ ld [wMenuJoypadPollCount], a
+ ld [wMaxMenuItem], a
ld a, $10
- ld [$cc24], a
+ ld [wTopMenuItemY], a
.asm_569f
ld a, $7f
- ld [$c4eb], a
+ ld [wTileMap + $14b], a
ld a, $13
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $1
- ld [$cc25], a
+ ld [wTopMenuItemX], a
call HandleMenuInput
bit 4, a
jr nz, .asm_56c3 ; 0x56b3 $e
@@ -482,16 +478,16 @@
jr z, .asm_56df ; 0x56b7 $26
.asm_56b9
pop af
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
call LoadScreenTilesFromBuffer1
jp .asm_55dc
.asm_56c3
ld a, $7f
- ld [$c4e1], a
+ ld [wTileMap + $141], a
ld a, $23
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $b
- ld [$cc25], a
+ ld [wTopMenuItemX], a
call HandleMenuInput
bit 5, a
jr nz, .asm_569f ; 0x56d7 $c6
@@ -500,9 +496,9 @@
jr .asm_56f9 ; 0x56dd $1a
.asm_56df
pop af
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
ld a, $4
- ld [$d11b], a
+ ld [wd11b], a
callab Func_39bd5
call Func_57d6
call LoadScreenTilesFromBuffer1
@@ -510,37 +506,37 @@
.asm_56f9
call PlaceUnfilledArrowMenuCursor
pop af
- ld [$cc26], a
- ld [$cd3d], a
- ld [$cc42], a
+ ld [wCurrentMenuItem], a
+ ld [wWhichTrade], a
+ ld [wcc42], a
call Func_226e
- ld a, [$cc3d]
+ ld a, [wcc3d]
cp $f
jp z, Func_551c
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
call Func_57c7
ld a, $1
- ld [$cc38], a
+ ld [wcc38], a
jp Func_551c
.statsTrade
db "STATS TRADE@"
.asm_572f
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld b, a
- ld a, [$cc28]
+ ld a, [wMaxMenuItem]
cp b
jp nz, .asm_565b
- ld a, [$cc30]
+ ld a, [wMenuCursorLocation]
ld l, a
- ld a, [$cc31]
+ ld a, [wMenuCursorLocation + 1]
ld h, a
ld a, $7f
ld [hl], a
.asm_5745
ld a, $ed
- ld [$c4e1], a
+ ld [wTileMap + $141], a
.asm_574a
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
and a
jr z, .asm_574a ; 0x5750 $f8
@@ -549,32 +545,32 @@
bit 6, a
jr z, .asm_574a ; 0x5758 $f0
ld a, $7f
- ld [$c4e1], a
- ld a, [$d163]
+ ld [wTileMap + $141], a
+ ld a, [wPartyCount]
dec a
- ld [$cc26], a
+ ld [wCurrentMenuItem], a
jp .asm_55dc
.asm_5769
ld a, $ec
- ld [$c4e1], a
+ ld [wTileMap + $141], a
ld a, $f
- ld [$cc42], a
+ ld [wcc42], a
call Func_226e
- ld a, [$cc3d]
+ ld a, [wcc3d]
cp $f
jr nz, .asm_5745 ; 0x577b $c8
Func_577d: ; 577d (1:577d)
call GBPalWhiteOutWithDelay3
- ld hl, $cfc4
+ ld hl, wcfc4
ld a, [hl]
push af
push hl
res 0, [hl]
xor a
- ld [$d72d], a
+ ld [wd72d], a
dec a
- ld [$d42f], a
+ ld [wd42f], a
call LoadMapData
callba Func_c335
pop hl
@@ -584,15 +580,15 @@
ret
Func_57a2:
- ld hl, $c4d7
+ ld hl, wTileMap + $137
ld a, $7e
ld bc, $0031
call FillMemory
- ld hl, $c4cc
+ ld hl, wTileMap + $12c
ld b, $1
ld c, $9
call Func_5ab3
- ld hl, $c4e2
+ ld hl, wTileMap + $142
ld de, CancelTextString
jp PlaceString
@@ -600,8 +596,8 @@
db "CANCEL@"
Func_57c7:
- ld a, [$cc3d]
- ld hl, $c455
+ ld a, [wcc3d]
+ ld hl, wTileMap + $b5
ld bc, $0014
call AddNTimes
ld [hl], $ec
@@ -608,12 +604,10 @@
ret
Func_57d6:
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
ld [wWhichPokemon], a
- ld a, $36
- call Predef
- ld a, $37
- call Predef
+ predef StatusScreen
+ predef StatusScreen2
call GBPalNormal
call LoadTrainerInfoTextBoxTiles
call Func_57f2
@@ -624,21 +618,21 @@
ld b, $6
ld c, $12
call Func_5ab3
- ld hl, $c440
+ ld hl, wTileMap + $a0
ld b, $6
ld c, $12
call Func_5ab3
- ld hl, $c3a5
- ld de, W_PLAYERNAME
+ ld hl, wTileMap + $5
+ ld de, wPlayerName
call PlaceString
- ld hl, $c445
- ld de, $d887
+ ld hl, wTileMap + $a5
+ ld de, W_GRASSRATE
call PlaceString
- ld hl, $c3b6
- ld de, $d164
+ ld hl, wTileMap + $16
+ ld de, wPartySpecies
call Func_5827
- ld hl, $c456
- ld de, $d89d
+ ld hl, wTileMap + $b6
+ ld de, wEnemyPartyMons
Func_5827:
ld c, $0
@@ -646,7 +640,7 @@
ld a, [de]
cp $ff
ret z
- ld [$d11e], a
+ ld [wd11e], a
push bc
push hl
push de
@@ -669,56 +663,56 @@
ld c, $64
call DelayFrames
xor a
- ld [$cc43], a
- ld [$cc3e], a
- ld [$cc37], a
- ld [$cc34], a
- ld hl, $c490
+ ld [wcc43], a
+ ld [wcc3e], a
+ ld [wcc37], a
+ ld [wMenuJoypadPollCount], a
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld a, [$cd3d]
- ld hl, $d164
+ ld a, [wWhichTrade]
+ ld hl, wPartySpecies
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
- ld hl, $cd6d
- ld de, $cd3f
+ ld hl, wcd6d
+ ld de, wTrainerFacingDirection
ld bc, $000b
call CopyData
- ld a, [$cd3e]
- ld hl, $d89d
- ld c, a
+ ld a, [wTrainerEngageDistance]
+ ld hl, wEnemyPartyMons
+ ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
ld hl, WillBeTradedText
- ld bc, $c4b9
+ ld bc, wTileMap + $119
call TextCommandProcessor
call SaveScreenTilesToBuffer1
- ld hl, $c436
+ ld hl, wTileMap + $96
ld bc, $080b
ld a, $5
- ld [$d12c], a
+ ld [wd12c], a
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call LoadScreenTilesFromBuffer1
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr z, .asm_58d9 ; 0x58b9 $1e
ld a, $1
- ld [$cc42], a
- ld hl, $c490
+ ld [wcc42], a
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld hl, $c4b9
+ ld hl, wTileMap + $119
ld de, TradeCanceled
call PlaceString
call Func_226e
@@ -725,98 +719,98 @@
jp Func_5a18
.asm_58d9
ld a, $2
- ld [$cc42], a
+ ld [wcc42], a
call Func_226e
- ld a, [$cc3d]
+ ld a, [wcc3d]
dec a
jr nz, .asm_58fd ; 0x58e5 $16
- ld hl, $c490
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld hl, $c4b9
+ ld hl, wTileMap + $119
ld de, TradeCanceled
call PlaceString
jp Func_5a18
.asm_58fd
- ld a, [$cd3d]
- ld hl, W_PARTYMON1OT ; OT names of player
+ ld a, [wWhichTrade]
+ ld hl, wPartyMonOT ; OT names of player
call SkipFixedLengthTextEntries
- ld de, $cd41
+ ld de, wTrainerScreenX
ld bc, $000b
call CopyData
- ld hl, $d16b
- ld a, [$cd3d]
+ ld hl, wPartyMon1Species
+ ld a, [wWhichTrade]
ld bc, $002c
call AddNTimes
ld bc, $000c
add hl, bc
ld a, [hli]
- ld [$cd4c], a
+ ld [wcd4c], a
ld a, [hl]
- ld [$cd4d], a
- ld a, [$cd3e]
- ld hl, W_ENEMYMON1OT ; OT names of other player
+ ld [wcd4d], a
+ ld a, [wTrainerEngageDistance]
+ ld hl, wEnemyMonOT ; OT names of other player
call SkipFixedLengthTextEntries
- ld de, $cd4e
+ ld de, wcd4e
ld bc, $000b
call CopyData
ld hl, wEnemyMons
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld bc, $002c
call AddNTimes
ld bc, $000c
add hl, bc
ld a, [hli]
- ld [$cd59], a
+ ld [wcd59], a
ld a, [hl]
- ld [$cd5a], a
- ld a, [$cd3d]
+ ld [wcd5a], a
+ ld a, [wWhichTrade]
ld [wWhichPokemon], a
- ld hl, $d164
+ ld hl, wPartySpecies
ld b, $0
ld c, a
add hl, bc
ld a, [hl]
- ld [$cd3d], a
+ ld [wWhichTrade], a
xor a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
ld c, a
ld [wWhichPokemon], a
- ld hl, $d89d
+ ld hl, wEnemyPartyMons
ld d, $0
ld e, a
add hl, de
ld a, [hl]
- ld [$cf91], a
+ ld [wcf91], a
ld hl, wEnemyMons
ld a, c
ld bc, $002c
call AddNTimes
- ld de, $cf98
+ ld de, wcf98
ld bc, $002c
call CopyData
call AddEnemyMonToPlayerParty
- ld a, [$d163]
+ ld a, [wPartyCount]
dec a
ld [wWhichPokemon], a
ld a, $1
- ld [$ccd4], a
- ld a, [$cd3e]
- ld hl, $d89d
+ ld [wccd4], a
+ ld a, [wTrainerEngageDistance]
+ ld hl, wEnemyPartyMons
ld b, $0
ld c, a
add hl, bc
ld a, [hl]
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, $a
ld [wMusicHeaderPointer], a
ld a, $2
- ld [$c0f0], a
+ ld [wc0f0], a
ld a, MUSIC_SAFARI_ZONE
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, $64
call DelayFrames
@@ -823,16 +817,14 @@
call ClearScreen
call LoadHpBarAndStatusTilePatterns
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, [$ffaa]
cp $1
jr z, .asm_59d9 ; 0x59d0 $7
- ld a, $38
- call Predef
+ predef Func_410e2
jr .asm_59de ; 0x59d7 $5
.asm_59d9
- ld a, $2f
- call Predef
+ predef Func_410f3
.asm_59de
callab Func_3ad0e
call ClearScreen
@@ -840,19 +832,18 @@
call Func_226e
ld c, $28
call DelayFrames
- ld hl, $c490
+ ld hl, wTileMap + $f0
ld b, $4
ld c, $12
call Func_5ab3
- ld hl, $c4b9
+ ld hl, wTileMap + $119
ld de, TradeCompleted
call PlaceString
- ld a, $50
- call Predef
+ predef SaveSAVtoSRAM2
ld c, $32
call DelayFrames
xor a
- ld [$cc38], a
+ ld [wcc38], a
jp Func_5345
Func_5a18:
@@ -859,7 +850,7 @@
ld c, $64
call DelayFrames
xor a
- ld [$cc38], a
+ ld [wcc38], a
jp Func_551c
WillBeTradedText: ; 5a24 (1:5a24)
@@ -878,7 +869,7 @@
dw TradeCenter_Trade
Func_5a5f: ; 5a5f (1:5a5f)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $2
jr z, .asm_5a75
cp $3
@@ -885,34 +876,33 @@
jr z, .asm_5a75
cp $5
ret nz
- ld a, $4d
- call Predef ; indirect jump to Func_5aaf (5aaf (1:5aaf))
- jp InitGame
+ predef Func_5aaf
+ jp Init
.asm_5a75
call Func_5317
ld hl, Club_GFX
ld a, h
- ld [$d52f], a
+ ld [W_TILESETGFXPTR + 1], a
ld a, l
- ld [$d52e], a
+ ld [W_TILESETGFXPTR], a
ld a, Bank(Club_GFX)
- ld [$d52b], a
+ ld [W_TILESETBANK], a
ld hl, Club_Coll
ld a, h
- ld [$d531], a
+ ld [W_TILESETCOLLISIONPTR + 1], a
ld a, l
- ld [$d530], a
+ ld [W_TILESETCOLLISIONPTR], a
xor a
- ld [W_GRASSRATE], a ; $d887
+ ld [W_GRASSRATE], a ; W_GRASSRATE
inc a
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
ld [$ffb5], a
ld a, $a
ld [wMusicHeaderPointer], a
ld a, BANK(Music_Celadon)
- ld [$c0f0], a
+ ld [wc0f0], a
ld a, MUSIC_CELADON
- ld [$c0ee], a
+ ld [wc0ee], a
jp PlaySound
Func_5aaf: ; 5aaf (1:5aaf)
@@ -919,7 +909,7 @@
ret
Func_5ab0:
- call Load16BitRegisters
+ call GetPredefRegisters
Func_5ab3: ; 5ab3 (1:5ab3)
push hl
--- a/engine/clear_save.asm
+++ b/engine/clear_save.asm
@@ -5,19 +5,18 @@
call LoadTextBoxTilePatterns
ld hl, ClearSaveDataText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $7
- ld [$d12c], a
+ ld [wd12c], a
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
- jp z, InitGame
+ jp z, Init
callba Func_73b6a
- jp InitGame
+ jp Init
ClearSaveDataText: ; 1c9c1 (7:49c1)
TX_FAR _ClearSaveDataText
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -2,15 +2,15 @@
push hl
push de
push bc
- ld a, [$cf91]
+ ld a, [wcf91]
push af
- ld a, [$d0b5]
+ ld a, [wd0b5]
push af
xor a
- ld [$d083], a
- ld [$c02a], a
+ ld [wd083], a
+ ld [wc02a], a
dec a
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -20,25 +20,25 @@
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld [$ffd7], a
- ld a, [$cee9]
- ld [$cf1d], a
+ ld a, [wHPBarMaxHP]
+ ld [wcf1d], a
ld c, $0
call Func_7beb4
- ld a, [$ceea]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP + 1]
+ ld [wcf91], a
+ ld [wd0b5], a
call Func_7beb9
- ld de, $9000
- ld hl, $9310
- ld bc, $31
+ ld de, vFrontPic
+ ld hl, vBackPic
+ ld bc, 7 * 7
call CopyVideoData
- ld a, [$cee9]
- ld [$cf91], a
- ld [$d0b5], a
+ ld a, [wHPBarMaxHP]
+ ld [wcf91], a
+ ld [wd0b5], a
call Func_7beb9
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
call PlayCry
call WaitForSoundToFinish
ld c, BANK(Music_SafariZone)
@@ -60,28 +60,28 @@
dec c
jr nz, .asm_7be63
xor a
- ld [$ceec], a
+ ld [wHPBarOldHP + 1], a
ld a, $31
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
call Func_7bed6
- ld a, [$ceea]
+ ld a, [wHPBarMaxHP + 1]
.asm_7be81
- ld [$cf1d], a
+ ld [wcf1d], a
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, [$cf1d]
+ ld a, [wcf1d]
call PlayCry
ld c, $0
call Func_7beb4
pop af
- ld [$d0b5], a
+ ld [wd0b5], a
pop af
- ld [$cf91], a
+ ld [wcf91], a
pop bc
pop de
pop hl
- ld a, [$ceec]
+ ld a, [wHPBarOldHP + 1]
and a
ret z
scf
@@ -89,8 +89,8 @@
.asm_7bea9
pop bc
ld a, $1
- ld [$ceec], a
- ld a, [$cee9]
+ ld [wHPBarOldHP + 1], a
+ ld a, [wHPBarMaxHP]
jr .asm_7be81
Func_7beb4: ; 7beb4 (1e:7eb4)
@@ -99,15 +99,14 @@
Func_7beb9: ; 7beb9 (1e:7eb9)
call GetMonHeader
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
+ hlCoord 7, 2
jp LoadFlippedFrontSpriteByMonIndex
asm_7bec2: ; 7bec2 (1e:7ec2)
ld a, $31
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
call Func_7bed6
ld a, $cf
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
call Func_7bed6
dec b
jr nz, asm_7bec2
@@ -117,14 +116,13 @@
push bc
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
+ hlCoord 7, 2
ld bc, $707
ld de, $d
.asm_7bee3
push bc
.asm_7bee4
- ld a, [$ceeb]
+ ld a, [wHPBarOldHP]
add [hl]
ld [hli], a
dec c
@@ -141,7 +139,7 @@
asm_7befa: ; 7befa (1e:7efa)
call DelayFrame
push bc
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
pop bc
and $2
@@ -152,7 +150,7 @@
and a
ret
.asm_7bf0d
- ld a, [$ccd4]
+ ld a, [wccd4]
and a
jr nz, .asm_7bf08
scf
--- a/engine/evolve_trade.asm
+++ b/engine/evolve_trade.asm
@@ -31,14 +31,14 @@
ret nz
.ok
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
dec a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
ld a, $1
- ld [$ccd4], a
+ ld [wccd4], a
ld a, $32
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
callab Func_3ad0e
xor a
- ld [W_ISLINKBATTLE], a ; $d12b
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
jp Func_2307
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -1,8 +1,8 @@
Func_3ad0e: ; 3ad0e (e:6d0e)
- ld hl, $ccd3
+ ld hl, wccd3
xor a
ld [hl], a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $1
call Func_3b057
@@ -11,16 +11,16 @@
ld a, [$ffd7]
push af
xor a
- ld [$d121], a
+ ld [wd121], a
dec a
- ld [wWhichPokemon], a ; $cf92
+ ld [wWhichPokemon], a ; wWhichPokemon
push hl
push bc
push de
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
push hl
asm_3ad2e: ; 3ad2e (e:6d2e)
- ld hl, wWhichPokemon ; $cf92
+ ld hl, wWhichPokemon ; wWhichPokemon
inc [hl]
pop hl
inc hl
@@ -27,17 +27,17 @@
ld a, [hl]
cp $ff
jp z, Func_3aede
- ld [$cee9], a
+ ld [wHPBarMaxHP], a
push hl
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
- ld hl, $ccd3
+ ld hl, wccd3
ld b, $2
call Func_3b057
ld a, c
and a
jp z, asm_3ad2e
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
dec a
ld b, $0
ld hl, EvosMovesPointerTable
@@ -49,13 +49,13 @@
ld h, [hl]
ld l, a
push hl
- ld a, [$cf91]
+ ld a, [wcf91]
push af
xor a
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
pop af
- ld [$cf91], a
+ ld [wcf91], a
pop hl
Func_3ad71: ; 3ad71 (e:6d71)
@@ -65,13 +65,13 @@
ld b, a
cp $3
jr z, .asm_3ad91
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
jr z, asm_3ad2e
ld a, b
cp $2
jr z, .asm_3ada4
- ld a, [$ccd4]
+ ld a, [wccd4]
and a
jr nz, asm_3ad2e
ld a, b
@@ -78,12 +78,12 @@
cp $1
jr z, .asm_3adad
.asm_3ad91
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
jp nz, Func_3aed9
ld a, [hli]
ld b, a
- ld a, [$cfb9]
+ ld a, [wcfb9]
cp b
jp c, asm_3ad2e
jr .asm_3adb6
@@ -90,24 +90,24 @@
.asm_3ada4
ld a, [hli]
ld b, a
- ld a, [$cf91]
+ ld a, [wcf91]
cp b
jp nz, Func_3aed9
.asm_3adad
ld a, [hli]
ld b, a
- ld a, [$cfb9]
+ ld a, [wcfb9]
cp b
jp c, Func_3aeda
.asm_3adb6
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, $1
- ld [$d121], a
+ ld [wd121], a
push hl
ld a, [hl]
- ld [$ceea], a
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld [wHPBarMaxHP + 1], a
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
call CopyStringToCF4B
ld hl, IsEvolvingText
@@ -122,8 +122,8 @@
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $ff
- ld [$cfcb], a
- call CleanLCD_OAM
+ ld [wcfcb], a
+ call ClearSprites
callab Func_7bde9
jp c, Func_3af2e
ld hl, EvolvedText
@@ -130,13 +130,13 @@
call PrintText
pop hl
ld a, [hl]
- ld [$d0b5], a
- ld [$cf98], a
- ld [$ceea], a
+ ld [wd0b5], a
+ ld [wcf98], a
+ ld [wHPBarMaxHP + 1], a
ld a, MONSTER_NAME
ld [W_LISTTYPE], a
ld a, $e
- ld [$d0b7], a
+ ld [wPredefBank], a
call GetName
push hl
ld hl, IntoText
@@ -148,29 +148,28 @@
call DelayFrames
call ClearScreen
call Func_3aef7
- ld a, [$d11e]
+ ld a, [wd11e]
push af
- ld a, [$d0b5]
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld a, [wd0b5]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
- ld hl, BulbasaurBaseStats ; $43de
+ ld hl, BaseStats
ld bc, $1c
call AddNTimes
ld de, W_MONHEADER
call CopyData
- ld a, [$d0b5]
- ld [$d0b8], a
+ ld a, [wd0b5]
+ ld [W_MONHDEXNUM], a
pop af
- ld [$d11e], a
- ld hl, $cfa8
- ld de, $cfba
+ ld [wd11e], a
+ ld hl, wcfa8
+ ld de, wcfba
ld b, $1
call CalcStats
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
ld bc, $2c
call AddNTimes
ld e, l
@@ -182,7 +181,7 @@
ld a, [hli]
ld b, a
ld c, [hl]
- ld hl, $cfbb
+ ld hl, wcfbb
ld a, [hld]
sub c
ld c, a
@@ -189,7 +188,7 @@
ld a, [hl]
sbc b
ld b, a
- ld hl, $cf9a
+ ld hl, wcf9a
ld a, [hl]
add c
ld [hld], a
@@ -199,32 +198,30 @@
dec hl
pop bc
call CopyData
- ld a, [$d0b5]
- ld [$d11e], a
+ ld a, [wd0b5]
+ ld [wd11e], a
xor a
- ld [$cc49], a
+ ld [wcc49], a
call Func_3af5b
pop hl
- ld a, $42
- call Predef ; indirect jump to SetPartyMonTypes (5db5e (17:5b5e))
- ld a, [W_ISINBATTLE] ; $d057
+ predef SetPartyMonTypes
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
call z, Func_3af52
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
push bc
call Func_3b057
pop bc
- ld hl, wPokedexSeen ; $d30a
+ ld hl, wPokedexSeen ; wd30a
call Func_3b057
pop de
pop hl
- ld a, [$cf98]
+ ld a, [wcf98]
ld [hl], a
push hl
ld l, e
@@ -244,27 +241,27 @@
pop hl
pop af
ld [$ffd7], a
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
ret z
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
ret nz
- ld a, [$d121]
+ ld a, [wd121]
and a
call nz, Func_2307
ret
Func_3aef7: ; 3aef7 (e:6ef7)
- ld a, [$d0b5]
+ ld a, [wd0b5]
push af
- ld a, [$d0b8]
- ld [$d0b5], a
+ ld a, [W_MONHDEXNUM]
+ ld [wd0b5], a
call GetName
pop af
- ld [$d0b5], a
- ld hl, $cd6d
- ld de, $cf4b
+ ld [wd0b5], a
+ ld hl, wcd6d
+ ld de, wcf4b
.asm_3af0e
ld a, [de]
inc de
@@ -273,13 +270,13 @@
ret nz
cp $50
jr nz, .asm_3af0e
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $b
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call AddNTimes
push hl
call GetName
- ld hl, $cd6d
+ ld hl, wcd6d
pop de
jp CopyData
@@ -308,7 +305,7 @@
db "@"
Func_3af52: ; 3af52 (e:6f52)
- ld a, [W_ISLINKBATTLE] ; $d12b
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
cp $32
ret z
jp ReloadTilesetTilePatterns
@@ -315,8 +312,8 @@
Func_3af5b: ; 3af5b (e:6f5b)
ld hl, EvosMovesPointerTable
- ld a, [$d11e]
- ld [$cf91], a
+ ld a, [wd11e]
+ ld [wcf91], a
dec a
ld bc, $0
ld hl, EvosMovesPointerTable
@@ -336,16 +333,16 @@
and a
jr z, .asm_3afb1
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
ld a, [hli]
jr nz, .asm_3af77
ld d, a
- ld a, [$cc49]
+ ld a, [wcc49]
and a
jr nz, .asm_3af96
- ld hl, W_PARTYMON1_MOVE1 ; $d173
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld bc, $2c
call AddNTimes
.asm_3af96
@@ -357,28 +354,27 @@
dec b
jr nz, .asm_3af98
ld a, d
- ld [$d0e0], a
- ld [$d11e], a
+ ld [wd0e0], a
+ ld [wd11e], a
call GetMoveName
call CopyStringToCF4B
- ld a, $1b
- call Predef ; indirect jump to LearnMove (6e43 (1:6e43))
+ predef LearnMove
.asm_3afb1
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
ret
; writes the moves a mon has at level [W_CURENEMYLVL] to [de]
; move slots are being filled up sequentially and shifted if all slots are full
-; [$cee9]: (?)
+; [wHPBarMaxHP]: (?)
WriteMonMoves: ; 3afb8 (e:6fb8)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
push de
push bc
ld hl, EvosMovesPointerTable
ld b, $0
- ld a, [$cf91] ; cur mon ID
+ ld a, [wcf91] ; cur mon ID
dec a
add a
rl b
@@ -401,13 +397,13 @@
and a
jp z, .done ; end of list
ld b, a
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
cp b
jp c, .done ; mon level < move level (assumption: learnset is sorted by level)
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
jr z, .skipMinLevelCheck
- ld a, [wWhichTrade] ; $cd3d (min move level)
+ ld a, [wWhichTrade] ; wWhichTrade (min move level)
cp b
jr nc, .nextMove2 ; min level >= move level
.skipMinLevelCheck
@@ -436,7 +432,7 @@
ld h, d
ld l, e
call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1)
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
jr z, .writeMoveToSlot
push de
@@ -451,7 +447,7 @@
.writeMoveToSlot2
ld a, [hl]
ld [de], a
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
jr z, .nextMove
push hl ; write move PP value
@@ -463,10 +459,10 @@
ld hl, Moves
ld bc, $6
call AddNTimes
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld a, BANK(Moves)
call FarCopyData
- ld a, [$ceee]
+ ld a, [wHPBarNewHP + 1]
pop hl
ld [hl], a
pop hl
@@ -489,7 +485,6 @@
ret
Func_3b057: ; 3b057 (e:7057)
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
INCLUDE "data/evos_moves.asm"
--- a/engine/experience.asm
+++ b/engine/experience.asm
@@ -1,6 +1,6 @@
Func_58f43: ; 58f43 (16:4f43)
- ld a, [$cf98]
- ld [$d0b5], a
+ ld a, [wcf98]
+ ld [wd0b5], a
call GetMonHeader
ld d, $1
.asm_58f4e
@@ -7,7 +7,7 @@
inc d
call CalcExperience
push hl
- ld hl, $cfa8
+ ld hl, wcfa8
ld a, [$ff98]
ld c, a
ld a, [hld]
--- a/engine/game_corner_slots.asm
+++ b/engine/game_corner_slots.asm
@@ -10,7 +10,7 @@
ld a, [wTrainerSpriteOffset]
and a
ret z
- ld a, [$cd05]
+ ld a, [wcd05]
ld b, a
ld a, [wTrainerFacingDirection]
inc a
@@ -21,9 +21,9 @@
.asm_37e58
ld a, $fa
.asm_37e5a
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, [H_LOADEDROMBANK]
- ld [$cc5e], a
+ ld [wcc5e], a
call PromptUserToPlaySlots
ret
.printOutOfOrder
--- a/engine/game_corner_slots2.asm
+++ b/engine/game_corner_slots2.asm
@@ -1,10 +1,9 @@
AbleToPlaySlotsCheck ; 2ff09 (b:7f09)
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
and $8
jr z, .done ; not able
ld b, COIN_CASE
- ld a, $1c
- call Predef ; IsItemInBag_
+ predef IsItemInBag_ ; IsItemInBag_
ld a, b
and a
ld b, $33 ; GameCornerCoinCaseText
@@ -20,7 +19,7 @@
call PrintPredefTextID
xor a
.done
- ld [$cd3d], a
+ ld [wWhichTrade], a
ret
GameCornerCoinCaseText: ; 2ff32 (b:7f32)
--- a/engine/gamefreak.asm
+++ b/engine/gamefreak.asm
@@ -4,15 +4,15 @@
ld a, $a4
ld [rOBP1], a ; $ff49
ld de, AnimationTileset2 + $30 ; $471e ; star tile (top left quadrant)
- ld hl, $8a00
+ ld hl, vChars1 + $200
ld bc, (BANK(AnimationTileset2) << 8) + $01
call CopyVideoData
ld de, AnimationTileset2 + $130 ; $481e ; star tile (bottom left quadrant)
- ld hl, $8a10
+ ld hl, vChars1 + $210
ld bc, (BANK(AnimationTileset2) << 8) + $01
call CopyVideoData
ld de, FallingStar ; $4190
- ld hl, $8a20
+ ld hl, vChars1 + $220
ld bc, (BANK(FallingStar) << 8) + $01
call CopyVideoData
ld hl, GameFreakLogoOAMData ; $4140
@@ -85,7 +85,7 @@
dec a
jr nz, .asm_70098
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld hl, PointerTable_700f2 ; $40f2
ld c, $6
.asm_700af
@@ -110,15 +110,15 @@
inc hl
dec c
jr nz, .asm_700ba
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp $18
jr z, .asm_700d5
add $6
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
.asm_700d5
call Func_7011f
push af
- ld hl, $c310
+ ld hl, wOAMBuffer + $10
ld de, wOAMBuffer
ld bc, $50
call CopyData
@@ -173,8 +173,8 @@
Func_7011f: ; 7011f (1c:411f)
ld b, $8
.asm_70121
- ld hl, $c35c
- ld a, [wWhichTrade] ; $cd3d
+ ld hl, wOAMBuffer + $5c
+ ld a, [wWhichTrade] ; wWhichTrade
ld de, $fffc
ld c, a
.asm_7012b
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -1,22 +1,22 @@
_GivePokemon: ; 4fda5 (13:7da5)
call EnableAutoTextBoxDrawing
xor a
- ld [$ccd3], a
- ld a, [W_NUMINPARTY] ; $d163
+ ld [wccd3], a
+ ld a, [wPartyCount] ; wPartyCount
cp $6
jr c, .asm_4fe01
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
cp $14
jr nc, .asm_4fdf9
xor a
- ld [W_ENEMYBATTSTATUS3], a ; $d069
- ld a, [$cf91]
- ld [W_ENEMYMONID], a
+ ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3
+ ld a, [wcf91]
+ ld [wEnemyMonSpecies2], a
callab Func_3eb01
call SetPokedexOwnedFlag
callab Func_e7a4
- ld hl, $cf4b
- ld a, [$d5a0]
+ ld hl, wcf4b
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_4fdec
@@ -41,28 +41,26 @@
ret
.asm_4fe01
call SetPokedexOwnedFlag
- call AddPokemonToParty
+ call AddPartyMon
ld a, $1
- ld [$cc3c], a
- ld [$ccd3], a
+ ld [wcc3c], a
+ ld [wccd3], a
scf
ret
SetPokedexOwnedFlag: ; 4fe11 (13:7e11)
- ld a, [$cf91]
+ ld a, [wcf91]
push af
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
ld b, $1
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
pop af
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
ld hl, GotMonText
jp PrintText
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -1,12 +1,12 @@
AnimateHallOfFame: ; 701a0 (1c:41a0)
call Func_70423
call ClearScreen
- ld c, $64
+ ld c, 100
call DelayFrames
call LoadFontTilePatterns
call LoadTextBoxTilePatterns
call DisableLCD
- ld hl, $9800
+ ld hl,vBGMap0
ld bc, $800
ld a, $7f
call FillMemory
@@ -14,18 +14,18 @@
ld hl, rLCDC ; $ff40
set 3, [hl]
xor a
- ld hl, $cc5b
- ld bc, $60
+ ld hl, wHallOfFame
+ ld bc, HOF_TEAM
call FillMemory
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
ld [$ffd7], a
ld [W_SPRITEFLIPPED], a
- ld [$d358], a
- ld [$cd40], a
+ ld [wd358], a
+ ld [wTrainerScreenY], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, $d5a2
+ ld hl, wd5a2
ld a, [hl]
inc a
jr z, .asm_701eb
@@ -36,7 +36,7 @@
ld c, BANK(Music_HallOfFame)
ld a, MUSIC_HALL_OF_FAME
call PlayMusic
- ld hl, W_PARTYMON1 ; $d164
+ ld hl, wPartySpecies
ld c, $ff
.asm_701fb
ld a, [hli]
@@ -45,28 +45,26 @@
inc c
push hl
push bc
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld a, c
- ld [$cd3e], a
- ld hl, W_PARTYMON1_LEVEL ; $d18c
- ld bc, $2c
+ ld [wTrainerEngageDistance], a
+ ld hl, wPartyMon1Level ; wPartyMon1Level
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld a, [hl]
- ld [$cd3f], a
+ ld [wTrainerFacingDirection], a
call Func_70278
call Func_702e1
ld c, $50
call DelayFrames
- FuncCoord 2, 13 ; $c4a6
- ld hl, Coord
+ hlCoord 2, 13
ld b, $3
ld c, $e
call TextBoxBorder
- FuncCoord 4, 15 ; $c4d0
- ld hl, Coord
+ hlCoord 4, 15
ld de, HallOfFameText
call PlaceString
- ld c, $b4
+ ld c, 180
call DelayFrames
call GBFadeOut2
pop bc
@@ -75,15 +73,15 @@
.asm_70241
ld a, c
inc a
- ld hl, $cc5b
- ld bc, $10
+ ld hl, wHallOfFame
+ ld bc, HOF_MON
call AddNTimes
ld [hl], $ff
- call Func_73b0d
+ call SaveHallOfFameTeams
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
inc a
- ld [$cd40], a
+ ld [wTrainerScreenY], a
call Func_70278
call Func_70377
call Func_70423
@@ -102,23 +100,21 @@
ld [$ffaf], a
ld a, $c0
ld [$ffae], a
- ld a, [wWhichTrade] ; $cd3d
- ld [$cf91], a
- ld [$d0b5], a
- ld [$cfd9], a
- ld [$cf1d], a
- ld a, [$cd40]
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcf91], a
+ ld [wd0b5], a
+ ld [wBattleMonSpecies2], a
+ ld [wcf1d], a
+ ld a, [wTrainerScreenY]
and a
jr z, .asm_7029d
call Func_7033e
jr .asm_702ab
.asm_7029d
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
+ hlCoord 12, 5
call GetMonHeader
call LoadFrontSpriteByMonIndex
- ld a, $4
- call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103))
+ predef LoadMonBackPic
.asm_702ab
ld b, $b
ld c, $0
@@ -129,7 +125,7 @@
call Func_7036d
ld d, $a0
ld e, $4
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
jr z, .asm_702c7
sla e
@@ -151,37 +147,31 @@
ret
Func_702e1: ; 702e1 (1c:42e1)
- ld a, [$cd3e]
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wTrainerEngageDistance]
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
call Func_702f0
jp Func_70404
Func_702f0: ; 702f0 (1c:42f0)
- FuncCoord 0, 2 ; $c3c8
- ld hl, Coord
+ hlCoord 0, 2
ld b, $9
ld c, $a
call TextBoxBorder
- FuncCoord 2, 6 ; $c41a
- ld hl, Coord
+ hlCoord 2, 6
ld de, HoFMonInfoText
call PlaceString
- FuncCoord 1, 4 ; $c3f1
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 1, 4
+ ld de, wcd6d
call PlaceString
- ld a, [$cd3f]
- FuncCoord 8, 7 ; $c434
- ld hl, Coord
+ ld a, [wTrainerFacingDirection]
+ hlCoord 8, 7
call PrintLevelCommon
- ld a, [wWhichTrade] ; $cd3d
- ld [$d0b5], a
- FuncCoord 3, 9 ; $c457
- ld hl, Coord
- ld a, $4b
- call Predef ; indirect jump to Func_27d6b (27d6b (9:7d6b))
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd0b5], a
+ hlCoord 3, 9
+ predef Func_27d6b
+ ld a, [wWhichTrade] ; wWhichTrade
jp PlayCry
HoFMonInfoText: ; 70329 (1c:4329)
@@ -197,64 +187,53 @@
ld de, $a000
ld bc, $310
call CopyData
- ld de, $9000
+ ld de, vFrontPic
call InterlaceMergeSpriteBuffers
ld de, RedPicBack ; $7e0a
ld a, BANK(RedPicBack)
call UncompressSpriteFromDE
- ld a, $3
- call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
- ld de, $9310
+ predef ScaleSpriteByTwo
+ ld de, vBackPic
call InterlaceMergeSpriteBuffers
ld c, $1
Func_7036d: ; 7036d (1c:436d)
ld b, $0
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
- ld a, $31
- jp Predef ; indirect jump to Func_79dda (79dda (1e:5dda))
+ hlCoord 12, 5
+ predef_jump Func_79dda
Func_70377: ; 70377 (1c:4377)
- ld hl, $d747
+ ld hl, wd747
set 3, [hl]
- ld a, $56
- call Predef ; indirect jump to DisplayDexRating (44169 (11:4169))
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ predef DisplayDexRating
+ hlCoord 0, 4
ld b, $6
ld c, $a
call TextBoxBorder
- FuncCoord 5, 0 ; $c3a5
- ld hl, Coord
+ hlCoord 5, 0
ld b, $2
ld c, $9
call TextBoxBorder
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 7, 2
+ ld de, wPlayerName ; wd158
call PlaceString
- FuncCoord 1, 6 ; $c419
- ld hl, Coord
+ hlCoord 1, 6
ld de, HoFPlayTimeText
call PlaceString
- FuncCoord 5, 7 ; $c431
- ld hl, Coord
- ld de, $da41
+ hlCoord 5, 7
+ ld de, W_PLAYTIMEHOURS + 1
ld bc, $103
call PrintNumber
ld [hl], $6d
inc hl
- ld de, $da43
+ ld de, W_PLAYTIMEMINUTES + 1
ld bc, $8102
call PrintNumber
- FuncCoord 1, 9 ; $c455
- ld hl, Coord
+ hlCoord 1, 9
ld de, HoFMoneyText
call PlaceString
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
- ld de, wPlayerMoney ; $d347
+ hlCoord 4, 10
+ ld de, wPlayerMoney ; wPlayerMoney
ld c, $a3
call PrintBCDNumber
ld hl, DexSeenOwnedText
@@ -261,7 +240,7 @@
call Func_703e2
ld hl, DexRatingText
call Func_703e2
- ld hl, $cc5d
+ ld hl, wcc5d
Func_703e2: ; 703e2 (1c:43e2)
call PrintText
@@ -283,24 +262,24 @@
db "@"
Func_70404: ; 70404 (1c:4404)
- ld hl, $cc5b
- ld bc, $10
- ld a, [$cd3e]
+ ld hl, wHallOfFame
+ ld bc, HOF_MON
+ ld a, [wTrainerEngageDistance]
call AddNTimes
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld [hli], a
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
ld [hli], a
ld e, l
ld d, h
- ld hl, $cd6d
+ ld hl, wcd6d
ld bc, $b
jp CopyData
Func_70423: ; 70423 (1c:4423)
ld a, $a
- ld [$cfc8], a
- ld [$cfc9], a
+ ld [wcfc8], a
+ ld [wcfc9], a
ld a, $ff
ld [wMusicHeaderPointer], a
jp GBFadeOut2
--- a/engine/hidden_object_functions14.asm
+++ b/engine/hidden_object_functions14.asm
@@ -1,7 +1,7 @@
PrintNotebookText: ; 52996 (14:6996)
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, [wTrainerSpriteOffset]
jp PrintPredefTextID
@@ -92,7 +92,7 @@
db "@"
PrintIndigoPlateauHQText: ; 52a2f (14:6a2f)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -16,7 +16,7 @@
db $fc ; FuncTX_ItemStoragePC
Route15GateLeftBinoculars: ; 5db8f (17:5b8f)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4 ; i
ret nz
call EnableAutoTextBoxDrawing
@@ -23,7 +23,7 @@
ld a, $a ; text id Route15UpstairsBinocularsText
call PrintPredefTextID
ld a, ARTICUNO
- ld [$cf91], a
+ ld [wcf91], a
call PlayCry
jp DisplayMonFrontSpriteInBox
@@ -33,7 +33,7 @@
AerodactylFossil: ; 5dbad (17:5bad)
ld a, FOSSIL_AERODACTYL
- ld [$cf91], a
+ ld [wcf91], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
ld a, $9
@@ -46,7 +46,7 @@
KabutopsFossil: ; 5bdc3 (17:5bc3)
ld a, FOSSIL_KABUTOPS
- ld [$cf91], a
+ ld [wcf91], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
ld a, $b
@@ -59,7 +59,7 @@
DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
; Displays a pokemon's front sprite in a pop-up window.
-; [$cf91] = pokemon interal id number
+; [wcf91] = pokemon interal id number
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call Delay3
@@ -67,20 +67,18 @@
ld [$ffb0], a
call SaveScreenTilesToBuffer1
ld a, $11
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call UpdateSprites
- ld a, [$cf91]
- ld [$d0b5], a
+ ld a, [wcf91]
+ ld [wd0b5], a
call GetMonHeader
- ld de, $8b10
+ ld de, vChars1 + $310
call LoadMonFrontSprite
ld a, $80
ld [$ffe1], a
- FuncCoord 10, 11 ; $c486
- ld hl, Coord
- ld a, $2
- call Predef ; indirect jump to Func_3f073 (3f073 (f:7073))
+ hlCoord 10, 11
+ predef Func_3f073
call WaitForTextScrollButtonPress
call LoadScreenTilesFromBuffer1
call Delay3
@@ -91,8 +89,8 @@
PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a)
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cc3c], a
- ld a, [$cd3d]
+ ld [wcc3c], a
+ ld a, [wWhichTrade]
call PrintPredefTextID
ret
@@ -114,13 +112,13 @@
ld a, $1
ld [wTopMenuItemX], a
.asm_5c51
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld b, $8
ld c, $d
call TextBoxBorder
- ld hl, $c3ca
+ ld hl, wTileMap + $2a
ld de, HowToLinkText
call PlaceString
ld hl, LinkCableHelpText2
@@ -131,7 +129,7 @@
ld a, [wCurrentMenuItem]
cp $3
jr z, .asm_5dc93 ; 0x5dc7b $16
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld hl, LinkCableInfoTexts
add a
@@ -144,7 +142,7 @@
call PrintText
jp .asm_5c51
.asm_5dc93
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
@@ -198,15 +196,15 @@
ld a, $1
ld [wTopMenuItemX], a
.asm_5dd15
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld bc, $060a
call TextBoxBorder
- ld hl, $c3c9
+ ld hl, wTileMap + $29
ld de, StatusAilmentText1
call PlaceString
- ld hl, $c3ce
+ ld hl, wTileMap + $2e
ld de, StatusAilmentText2
call PlaceString
ld hl, ViridianSchoolBlackboardText2
@@ -244,7 +242,7 @@
add b
cp $5
jr z, .exitBlackboard
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld hl, ViridianBlackboardStatusPointers
add a
@@ -257,7 +255,7 @@
call PrintText
jp .asm_5dd15
.exitBlackboard
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer1
jp TextScriptEnd
@@ -318,11 +316,11 @@
GymTrashScript: ; 5ddfc (17:5dfc)
call EnableAutoTextBoxDrawing
- ld a, [wWhichTrade] ; $cd3d
- ld [$cd5b], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcd5b], a
; Don't do the trash can puzzle if it's already been done.
- ld a, [$d773]
+ ld a, [wd773]
bit 0, a
jr z, .ok
@@ -333,9 +331,9 @@
bit 1, a
jr nz, .trySecondLock
- ld a, [$d743]
+ ld a, [wd743]
ld b, a
- ld a, [$cd5b]
+ ld a, [wcd5b]
cp b
jr z, .openFirstLock
@@ -344,11 +342,11 @@
.openFirstLock
; Next can is trying for the second switch.
- ld hl, $d773
+ ld hl, wd773
set 1, [hl]
ld hl, GymTrashCans ; $5e7d
- ld a, [$cd5b]
+ ld a, [wcd5b]
; * 5
ld b, a
add a
@@ -362,7 +360,7 @@
ld [$ffdb], a
push hl
- call GenRandom
+ call Random
swap a
ld b, a
ld a, [$ffdb]
@@ -375,25 +373,25 @@
add hl, de
ld a, [hl]
and $f
- ld [$d744], a
+ ld [wd744], a
ld a, $3b ; DisplayTextID $3b = VermilionGymTrashSuccesText1 (first lock opened!)
jr .done
.trySecondLock
- ld a, [$d744]
+ ld a, [wd744]
ld b, a
- ld a, [$cd5b]
+ ld a, [wcd5b]
cp b
jr z, .openSecondLock
; Reset the cans.
- ld hl, $d773
+ ld hl, wd773
res 1, [hl]
- call GenRandom
+ call Random
and $e
- ld [$d743], a
+ ld [wd743], a
ld a, $3e ; DisplayTextID $3e = VermilionGymTrashFailText (locks reset!)
jr .done
@@ -400,9 +398,9 @@
.openSecondLock
; Completed the trash can puzzle.
- ld hl, $d773
+ ld hl, wd773
set 0, [hl]
- ld hl, $d126
+ ld hl, wd126
set 6, [hl]
ld a, $3d ; DisplayTextID $3d = VermilionGymTrashSuccesText3 (2nd lock opened!)
--- a/engine/hidden_object_functions18.asm
+++ b/engine/hidden_object_functions18.asm
@@ -3,7 +3,7 @@
; if in a gym and don’t have the corresponding badge, a = $C and jp PrintPredefTextID
; else ret
call EnableAutoTextBoxDrawing
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
ld hl, .BadgeFlags
@@ -19,7 +19,7 @@
jr .asm_62429 ; 0x62431 $f6
.asm_62433
ld b, [hl]
- ld a, [$d72a]
+ ld a, [wd72a]
and b
cp b
ld a, $d
@@ -64,7 +64,7 @@
.asm_62472
ld a, [hli]
ld b, a
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp b
jr nz, .asm_62467
ld a, [hl]
@@ -140,7 +140,7 @@
SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4)
db $8 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ld hl, SaffronCityPokecenterBenchGuyText2
jr nz, .asm_624f2 ; 0x624ed $3
@@ -176,12 +176,12 @@
db "@"
OpenPokemonCenterPC: ; 62516 (18:6516)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4 ; check to see if player is facing up
ret nz
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
ld a, $1f ; PredefText1f
jp PrintPredefTextID
--- a/engine/hidden_object_functions3.asm
+++ b/engine/hidden_object_functions3.asm
@@ -1,12 +1,11 @@
; prints text for bookshelves in buildings without sign events
PrintBookshelfText: ; fb50 (3:7b50)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jr nz, .asm_fb7f
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld b, a
- FuncCoord 8, 7 ; $c434
- ld a, [Coord]
+ aCoord 8, 7
ld c, a
ld hl, BookshelfTileIDs ; $7b8b
.asm_fb62
@@ -90,7 +89,7 @@
ld a, [W_CURMAPTILESET]
cp MANSION ; Celadon Mansion tileset
jr nz, .asm_fbfd
- ld a, [$c420]
+ ld a, [wTileMap + $80]
cp $38
jr nz, .asm_fbfd
ld hl, DiglettSculptureText
@@ -115,8 +114,8 @@
db $06
db $08 ; asm
ld a, $1
- ld [$cc3c], a
- ld hl, $d730
+ ld [wcc3c], a
+ ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
xor a
@@ -125,7 +124,7 @@
ld [H_AUTOBGTRANSFERENABLED], a
call LoadFontTilePatterns
callba DisplayTownMap
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld de, TextScriptEnd
push de
--- a/engine/hidden_object_functions7.asm
+++ b/engine/hidden_object_functions7.asm
@@ -21,7 +21,7 @@
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$d11e]
+ ld a, [wd11e]
cp $2
ld a, $6 ; SaveOptionText
jr c, .asm_1e97b
@@ -38,29 +38,29 @@
db "@"
SafariZoneCheck: ; 1e988 (7:6988)
- ld hl, $d790
+ ld hl, wd790
bit 7, [hl]
jr z, asm_1e9ab
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
and a
jr z, asm_1e9b0
jr asm_1e9ab
SafariZoneCheckSteps: ; 1e997 (7:6997)
- ld a, [wSafariSteps] ; $d70d
+ ld a, [wSafariSteps] ; wd70d
ld b, a
- ld a, [wSafariSteps + 1] ; $d70e
+ ld a, [wSafariSteps + 1] ; wd70e
ld c, a
or b
jr z, asm_1e9b0
dec bc
ld a, b
- ld [wSafariSteps], a ; $d70d
+ ld [wSafariSteps], a ; wd70d
ld a, c
- ld [wSafariSteps + 1], a ; $d70e
+ ld [wSafariSteps + 1], a ; wd70e
asm_1e9ab: ; 1e9ab (7:69ab)
xor a
- ld [$da46], a
+ ld [wda46], a
ret
asm_1e9b0: ; 1e9b0 (7:69b0)
call EnableAutoTextBoxDrawing
@@ -72,7 +72,7 @@
ld a, (SFX_02_5f - SFX_Headers_02) / 3
call PlayMusic
.asm_1e9c2
- ld a, [$c02a]
+ ld a, [wc02a]
cp $b9
jr nz, .asm_1e9c2
ld a, $d3
@@ -79,28 +79,28 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
xor a
- ld [$d528], a
+ ld [wd528], a
ld a, $9c
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld a, $3
- ld [$d42f], a
+ ld [wd42f], a
ld a, $5
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
- ld hl, $d790
+ ld hl, wd790
set 6, [hl]
ld a, $1
- ld [$da46], a
+ ld [wda46], a
ret
PrintSafariGameOverText: ; 1e9ed (7:69ed)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld hl, SafariGameOverText
jp PrintText
SafariGameOverText: ; 1e9f7 (7:69f7)
db $08 ; asm
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
and a
jr z, .asm_1ea04
ld hl, TimesUpText
@@ -119,7 +119,7 @@
db "@"
PrintCinnabarQuiz: ; 1ea17 (7:6a17)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
@@ -129,8 +129,8 @@
CinnabarGymQuiz: ; 1ea25 (7:6a25)
db $08 ; asm
xor a
- ld [$da38], a
- ld a, [wWhichTrade] ; $cd3d
+ ld [wda38], a
+ ld a, [wWhichTrade] ; wWhichTrade
push af
and $f
ld [$ffdb], a
@@ -152,7 +152,7 @@
ld l, a
call PrintText
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
call CinnabarGymQuiz_1ea92
jp TextScriptEnd
@@ -193,18 +193,17 @@
db "@"
CinnabarGymQuiz_1ea8a: ; 1ea8a (7:6a8a)
- ld hl, $d79c
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wd79c
+ predef_jump FlagActionPredef
CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92)
call YesNoChoice
ld a, [$ffdc]
ld c, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp c
jr nz, .asm_1eab8
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
ld a, [$ffdb]
ld [$ffe0], a
@@ -226,15 +225,14 @@
add $2
ld c, a
ld b, $2
- ld hl, $d79a
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wd79a
+ predef FlagActionPredef
ld a, c
and a
ret nz
ld a, [$ffdb]
add $2
- ld [$da38], a
+ ld [wda38], a
ret
CinnabarGymQuizCorrectText: ; 1eae3 (7:6ae3)
@@ -276,7 +274,7 @@
ld c, a
inc hl
ld a, [hl]
- ld [$d12f], a
+ ld [wd12f], a
push bc
ld a, [$ffdb]
ld [$ffe0], a
@@ -286,15 +284,14 @@
ld a, c
and a
jr nz, .asm_1eb36
- ld a, [$d12f]
+ ld a, [wd12f]
jr .asm_1eb38
.asm_1eb36
ld a, $e
.asm_1eb38
pop bc
- ld [$d09f], a
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ ld [wd09f], a
+ predef Func_ee9e
ld hl, $ffdb
dec [hl]
jr nz, .asm_1eb0e
@@ -322,10 +319,10 @@
BillsHousePC: ; 1eb6e (7:6b6e)
call EnableAutoTextBoxDrawing
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
- ld a, [$d7f2]
+ ld a, [wd7f2]
bit 7, a
jr nz, .asm_1ebd2
bit 3, a
@@ -337,7 +334,7 @@
jp PrintPredefTextID
.asm_1eb8b
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, $2e
call PrintPredefTextID
ld c, $20
@@ -361,12 +358,12 @@
call PlaySound
call WaitForSoundToFinish
call Func_2307
- ld hl, $d7f2
+ ld hl, wd7f2
set 3, [hl]
ret
.asm_1ebd2
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, $2f
call PrintPredefTextID
ret
@@ -380,7 +377,7 @@
db $06
db $08 ; asm
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, $10
call DelayFrames
@@ -397,25 +394,25 @@
ld hl, BillsHousePokemonListText1
call PrintText
xor a
- ld [$d07c], a
- ld [$cc26], a
- ld [$cc2a], a
+ ld [W_ANIMATIONID], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
ld a, $3
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $4
- ld [$cc28], a
+ ld [wMaxMenuItem], a
ld a, $2
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
+ ld [wTopMenuItemX], a
.asm_1ec2d
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld b, $a
ld c, $9
call TextBoxBorder
- ld hl, $c3ca
+ ld hl, wTileMap + $2a
ld de, BillsMonListText
call PlaceString
ld hl, BillsHousePokemonListText2
@@ -424,7 +421,7 @@
call HandleMenuInput
bit 1, a
jr nz, .asm_1ec74
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
add EEVEE
cp EEVEE
jr z, .asm_1ec6c
@@ -440,7 +437,7 @@
call LoadScreenTilesFromBuffer2
jr .asm_1ec2d
.asm_1ec74
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer2
jp TextScriptEnd
@@ -461,7 +458,7 @@
db "@"
DisplayOakLabEmailText: ; 1ecaf (7:6caf)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -1,9 +1,9 @@
-UpdateHPBar_LoadRegisters: ; f9dc (3:79dc)
- call Load16BitRegisters
+HPBarLength: ; f9dc (3:79dc)
+ call GetPredefRegisters
; calculates bc * 48 / de, the number of pixels the HP bar has
; the result is always at least 1
-UpdateHPBar_CalcNumberOfHPBarPixels: ; f9df (3:79df)
+GetHPBarLength: ; f9df (3:79df)
push hl
xor a
ld hl, H_MULTIPLICAND
@@ -46,6 +46,7 @@
; predef $48
UpdateHPBar: ; fa1d (3:7a1d)
+UpdateHPBar2:
push hl
ld hl, wHPBarOldHP
ld a, [hli]
@@ -72,7 +73,7 @@
ld a, $1
.HPdecrease
ld [wHPBarDelta], a
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, [wHPBarNewHP]
ld e, a
ld a, [wHPBarNewHP+1]
@@ -202,13 +203,13 @@
UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
push af
push de
- ld a, [wListMenuID] ; $cf94
+ ld a, [wListMenuID] ; wListMenuID
and a
jr z, .asm_fb2d
ld a, [wHPBarOldHP]
- ld [$cef1], a
+ ld [wcef1], a
ld a, [wHPBarOldHP+1]
- ld [$cef0], a
+ ld [wcef0], a
push hl
ld a, [$fff6]
bit 0, a
@@ -225,7 +226,7 @@
ld [hli], a
ld [hli], a
pop hl
- ld de, $cef0
+ ld de, wcef0
ld bc, $203
call PrintNumber
call DelayFrame
@@ -254,12 +255,12 @@
ld l, a
push hl
push de
- call UpdateHPBar_CalcNumberOfHPBarPixels ; calc num pixels for old HP
+ call GetHPBarLength ; calc num pixels for old HP
ld a, e
pop de
pop bc
push af
- call UpdateHPBar_CalcNumberOfHPBarPixels ; calc num pixels for new HP
+ call GetHPBarLength ; calc num pixels for new HP
pop af
ld d, e
ld e, a
--- a/engine/in_game_trades.asm
+++ b/engine/in_game_trades.asm
@@ -11,12 +11,12 @@
ld b,$0
add hl,bc
ld a,[hli]
- ld [$cd0f],a
+ ld [wcd0f],a
ld a,[hli]
- ld [$cd34],a
+ ld [wcd34],a
ld a,[hli]
push af
- ld de,$cd29
+ ld de,wcd29
ld bc,$000b
call CopyData
pop af
@@ -26,33 +26,32 @@
add hl,hl
add hl,de
ld a,[hli]
- ld [$cd10],a
+ ld [wcd10],a
ld a,[hl]
- ld [$cd11],a
- ld a,[$cd0f]
- ld de,$cd13
+ ld [wcd11],a
+ ld a,[wcd0f]
+ ld de,wcd13
call Func_71b6a
- ld a,[$cd34]
- ld de,$cd1e
+ ld a,[wcd34]
+ ld de,wPlayerMonAccuracyMod
call Func_71b6a
- ld hl,$d737
+ ld hl,wd737
ld a,[wWhichTrade]
ld c,a
ld b,$2
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld a,c
and a
ld a,$4
- ld [$cd12],a
+ ld [wcd12],a
jr nz,.asm_99bca ; 0x71b36 $20
xor a
- ld [$cd12],a
+ ld [wcd12],a
call .asm_99bca
ld a,$1
- ld [$cd12],a
+ ld [wcd12],a
call YesNoChoice
- ld a,[$cc26]
+ ld a,[wCurrentMenuItem]
and a
jr nz,.asm_99bca ; 0x71b4b $b
call Func_71c07
@@ -60,7 +59,7 @@
ld hl, TradedForText
call PrintText
.asm_99bca ; 0x71b58
- ld hl,$cd12
+ ld hl,wcd12
ld a,[hld]
ld e,a
ld d,$0
@@ -76,9 +75,9 @@
Func_71b6a: ; 71b6a (1c:5b6a)
push de
- ld [$d11e],a
+ ld [wd11e],a
call GetMonName
- ld hl,$cd6d
+ ld hl,wcd6d
pop de
ld bc,$b
jp CopyData
@@ -87,9 +86,9 @@
Func_71c07: ; 71c07 (1c:5c07)
xor a
- ld [$d07d],a
+ ld [wd07d],a
dec a
- ld [$cfcb],a
+ ld [wcfcb],a
call DisplayPartyMenu
push af
call Func_71ca2
@@ -96,47 +95,45 @@
pop af
ld a,$1
jp c,.asm_c4bc2
- ld a,[$cd0f]
+ ld a,[wcd0f]
ld b,a
- ld a,[$cf91]
+ ld a,[wcf91]
cp b
ld a,$2
jr nz,.asm_c4bc2 ; 0x71c26 $75
ld a,[wWhichPokemon]
- ld hl,$d18c
+ ld hl,wPartyMon1Level
ld bc,$002c
call AddNTimes
ld a,[hl]
- ld [$d127],a
- ld hl,$d737
+ ld [W_CURENEMYLVL],a
+ ld hl,wd737
ld a,[wWhichTrade]
ld c,a
ld b,$1
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld hl, ConnectCableText
call PrintText
ld a,[wWhichPokemon]
push af
- ld a,[$d127]
+ ld a,[W_CURENEMYLVL]
push af
call LoadHpBarAndStatusTilePatterns
call Func_71cc1
- ld a,$38
- call Predef
+ predef Func_410e2
pop af
- ld [$d127],a
+ ld [W_CURENEMYLVL],a
pop af
ld [wWhichPokemon],a
- ld a,[$cd34]
- ld [$cf91],a
+ ld a,[wcd34]
+ ld [wcf91],a
xor a
- ld [$cc49],a
- ld [$cf95],a
+ ld [wcc49],a
+ ld [wcf95],a
call RemovePokemon
ld a,$80
- ld [$cc49],a
- call AddPokemonToParty
+ ld [wcc49],a
+ call AddPartyMon
call Func_71d19
callab EvolveTradeMon
call ClearScreen
@@ -148,7 +145,7 @@
.asm_c4bc2 ; 0x71c9d
scf
.asm_ee803 ; 0x71c9e
- ld [$cd12],a
+ ld [wcd12],a
ret
Func_71ca2: ; 71ca2 (1c:5ca2)
@@ -165,33 +162,33 @@
jp Bankswitch
Func_71cc1: ; 71cc1 (1c:5cc1)
- ld hl, wWhichTrade ; $cd3d
- ld a, [$cd0f]
+ ld hl, wWhichTrade ; wWhichTrade
+ ld a, [wcd0f]
ld [hli], a
- ld a, [$cd34]
+ ld a, [wcd34]
ld [hl], a
- ld hl, W_PARTYMON1OT ; $d273
+ ld hl, wPartyMonOT ; wd273
ld bc, $b
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
- ld de, $cd41
+ ld de, wTrainerScreenX
ld bc, $b
call Func_71d11
ld hl, String_71d59 ; $5d59
- ld de, $cd4e
+ ld de, wcd4e
call Func_71d11
- ld de, W_GRASSRATE ; $d887
+ ld de, W_GRASSRATE ; W_GRASSRATE
call Func_71d11
- ld hl, W_PARTYMON1_OTID ; $d177
+ ld hl, wPartyMon1OTID ; wPartyMon1OTID
ld bc, $2c
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
- ld de, $cd4c
+ ld de, wcd4c
ld bc, $2
call Func_71d11
- call GenRandom
- ld hl, H_RAND1 ; $ffd3
- ld de, $cd59
+ call Random
+ ld hl, hRandomAdd
+ ld de, wcd59
jp CopyData
Func_71d11: ; 71d11 (1c:5d11)
@@ -203,27 +200,27 @@
ret
Func_71d19: ; 71d19 (1c:5d19)
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
ld bc, $b
call Func_71d4f
- ld hl, $cd29
+ ld hl, wcd29
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1OT ; $d273
+ ld hl, wPartyMonOT ; wd273
ld bc, $b
call Func_71d4f
ld hl, String_71d59 ; $5d59
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1_OTID ; $d177
+ ld hl, wPartyMon1OTID ; wPartyMon1OTID
ld bc, $2c
call Func_71d4f
- ld hl, $cd59
+ ld hl, wcd59
ld bc, $2
jp CopyData
Func_71d4f: ; 71d4f (1c:5d4f)
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
dec a
call AddNTimes
ld e, l
--- a/engine/intro.asm
+++ b/engine/intro.asm
@@ -1,6 +1,6 @@
PlayIntro: ; 41682 (10:5682)
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a
call PlayShootingStar
@@ -9,7 +9,7 @@
xor a
ld [$ffae], a
ld [H_AUTOBGTRANSFERENABLED], a
- call CleanLCD_OAM
+ call ClearSprites
call DelayFrame
ret
@@ -38,7 +38,7 @@
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
call PlaySound
xor a
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation1
call AnimateIntroNidorino
; hop
@@ -86,7 +86,7 @@
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
call PlaySound
ld a, $24
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation3
call AnimateIntroNidorino
ld c, $1e
@@ -105,7 +105,7 @@
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
call PlaySound
xor a
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation4 ; $5931
call AnimateIntroNidorino
; hop
@@ -118,7 +118,7 @@
ret c
ld a, $24
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation6 ; $5947
call AnimateIntroNidorino
ld c, $1e
@@ -129,7 +129,7 @@
ld a, (SFX_1f_5e - SFX_Headers_1f) / 3
call PlaySound
ld a, $48
- ld [$d09f], a
+ ld [wd09f], a
ld de, IntroNidorinoAnimation7 ; $5950
jp AnimateIntroNidorino
@@ -137,10 +137,10 @@
ld a, [de]
cp $50
ret z
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
inc de
ld a, [de]
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
push de
ld c, $24
call Func_417ae
@@ -152,13 +152,13 @@
Func_417ae: ; 417ae (10:57ae)
ld hl, wOAMBuffer
- ld a, [$d09f]
+ ld a, [wd09f]
ld d, a
.asm_417b5
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
add [hl]
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add [hl]
ld [hli], a
ld a, d
@@ -174,7 +174,7 @@
ld d, $0
.asm_417cc
push bc
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
ld e, a
.asm_417d1
ld a, e
@@ -181,7 +181,7 @@
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
ld [hli], a
ld a, d
ld [hli], a
@@ -190,9 +190,9 @@
inc d
dec c
jr nz, .asm_417d1
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add $8
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
pop bc
dec b
jr nz, .asm_417cc
@@ -199,13 +199,12 @@
ret
Func_417f0: ; 417f0 (10:57f0)
- ld hl, $9c00
+ ld hl, vBGMap1
ld bc, $240
jr asm_417fe
Func_417f8: ; 417f8 (10:57f8)
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld bc, $c8
asm_417fe: ; 417fe (10:57fe)
ld [hl], $0
@@ -237,9 +236,9 @@
.asm_4181d
push de
ld a, $2
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
xor a
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld c, $24
call Func_417ae
pop de
@@ -259,38 +258,35 @@
ret
Func_4183f: ; 4183f (10:583f)
- FuncCoord 13, 7 ; $c439
- ld hl, Coord
+ hlCoord 13, 7
Func_41842: ; 41842 (10:5842)
ld c, $0
- ld a, $31
- jp Predef ; indirect jump to Func_79dda
+ predef_jump Func_79dda
Func_41849: ; 41849 (10:5849)
- ld a, $33
- call Predef ; indirect jump to Func_79869
+ predef Func_79869
ld a, b
jp PlaySound
LoadIntroGraphics: ; 41852 (10:5852)
ld hl, FightIntroBackMon ; $5a99
- ld de, $9000
+ ld de, vChars2
ld bc, $600
ld a, BANK(FightIntroBackMon)
call FarCopyData2
ld hl, GameFreakIntro ; $5959
- ld de, $9600
+ ld de, vChars2 + $600
ld bc, $140
ld a, BANK(GameFreakIntro)
call FarCopyData2
ld hl, GameFreakIntro ; $5959
- ld de, $8800
+ ld de, vChars1
ld bc, $140
ld a, BANK(GameFreakIntro)
call FarCopyData2
ld hl, FightIntroFrontMon ; $6099
- ld de, $8000
+ ld de, vChars0
ld bc, $6c0
ld a, BANK(FightIntroFrontMon)
jp FarCopyData2
@@ -306,7 +302,7 @@
call ClearScreen
call DisableLCD
xor a
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
call Func_418e9
call LoadIntroGraphics
call EnableLCD
@@ -322,14 +318,14 @@
ld c, $28
call DelayFrames
.asm_418d0
- ld a, Bank(Func_7d8ea)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_IntroBattle)
+ ld [wc0ef], a
+ ld [wc0f0], a
ld a, MUSIC_INTRO_BATTLE
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
call Func_417f8
- call CleanLCD_OAM
+ call ClearSprites
jp Delay3
Func_418e9: ; 418e9 (10:58e9)
@@ -337,14 +333,13 @@
ld hl, wTileMap
ld c, $50
call Func_41807
- FuncCoord 0, 14 ; $c4b8
- ld hl, Coord
+ hlCoord 0, 14
ld c, $50
call Func_41807
- ld hl, $9c00
+ ld hl, vBGMap1
ld c, $80
call Func_41807
- ld hl, $9dc0
+ ld hl, vBGMap1 + $1c0
ld c, $80
jp Func_41807
@@ -425,7 +420,7 @@
db $50 ; list terminator
GameFreakIntro: ; 41959 (10:5959)
- INCBIN "gfx/gamefreak_intro.h8.2bpp"
+ INCBIN "gfx/gamefreak_intro.2bpp"
INCBIN "gfx/gamefreak_logo.2bpp"
ds $10 ; blank tile
--- a/engine/items/itemfinder.asm
+++ b/engine/items/itemfinder.asm
@@ -4,15 +4,14 @@
.asm_74824
ld de, $0003
ld a, [W_CURMAP]
- call IsInArrayCummulativeCount
+ call IsInRestOfArray
ret nc ; return if current map has no hidden items
push bc
push hl
- ld hl, $d6f0
+ ld hl, wd6f0
ld c, b
ld b, $2
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
ld a, c
pop hl
pop bc
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -1,7 +1,7 @@
UseItem_: ; d5c7 (3:55c7)
ld a,1
- ld [$cd6a],a
- ld a,[$cf91] ;contains item_ID
+ ld [wcd6a],a
+ ld a,[wcf91] ;contains item_ID
cp a,HM_01
jp nc,ItemUseTMHM
ld hl,ItemUsePtrTable
@@ -109,7 +109,7 @@
ld a,[W_BATTLETYPE]
dec a
jr z,.UseBall
- ld a,[W_NUMINPARTY] ;is Party full?
+ ld a,[wPartyCount] ;is Party full?
cp a,6
jr nz,.UseBall
ld a,[W_NUMINBOX] ;is Box full?
@@ -118,7 +118,7 @@
.UseBall ;$56a7
;ok, you can use a ball
xor a
- ld [$d11c],a
+ ld [wd11c],a
ld a,[W_BATTLETYPE]
cp a,2 ;SafariBattle
jr nz,.skipSafariZoneCode
@@ -129,7 +129,7 @@
.skipSafariZoneCode ;$56b6
call GoPAL_SET_CF1C
ld a,$43
- ld [$d11e],a
+ ld [wd11e],a
call LoadScreenTilesFromBuffer1 ;restore screenBuffer from Backup
ld hl,ItemUseText00
call PrintText
@@ -141,7 +141,7 @@
jr nz,.notOldManBattle
.oldManBattle
ld hl,W_GRASSRATE
- ld de,W_PLAYERNAME
+ ld de,wPlayerName
ld bc,11
call CopyData ; save the player's name in the Wild Monster data (part of the Cinnabar Island Missingno glitch)
jp .BallSuccess ;$578b
@@ -149,7 +149,7 @@
ld a,[W_CURMAP]
cp a,POKEMONTOWER_6
jr nz,.loop
- ld a,[W_ENEMYMONID]
+ ld a,[wEnemyMonSpecies2]
cp a,MAROWAK
ld b,$10
jp z,.next12
@@ -156,9 +156,9 @@
; if not fighting ghost Marowak, loop until a random number in the current
; pokeball's allowed range is found
.loop ;$56fa
- call GenRandom
+ call Random
ld b,a
- ld hl,$cf91
+ ld hl,wcf91
ld a,[hl]
cp a,MASTER_BALL
jp z,.BallSuccess ;$578b
@@ -178,7 +178,7 @@
; Frozen/Asleep pokemon are relatively even easier to catch
; for Frozen/Asleep pokemon, any random number from 0-24 ensures a catch.
; for the others, a random number from 0-11 ensures a catch.
- ld a,[W_ENEMYMONSTATUS] ;status ailments
+ ld a,[wEnemyMonStatus] ;status ailments
and a
jr z,.noAilments
and a, 1 << FRZ | SLP ;is frozen and/or asleep?
@@ -194,7 +194,7 @@
push bc ;save RANDOM number
xor a
ld [H_MULTIPLICAND],a
- ld hl,W_ENEMYMONMAXHP
+ ld hl,wEnemyMonMaxHP
ld a,[hli]
ld [H_MULTIPLICAND + 1],a
ld a,[hl]
@@ -202,7 +202,7 @@
ld a,255
ld [H_MULTIPLIER],a
call Multiply ; MaxHP * 255
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,GREAT_BALL
ld a,12 ;any other BallFactor
jr nz,.next7
@@ -211,7 +211,7 @@
ld [H_DIVISOR],a
ld b,4 ; number of bytes in dividend
call Divide
- ld hl,W_ENEMYMONCURHP
+ ld hl,wEnemyMonHP
ld a,[hli]
ld b,a
ld a,[hl]
@@ -237,13 +237,13 @@
ld [H_QUOTIENT + 3],a
.next9 ;$5776
pop bc
- ld a,[$d007] ;enemy: Catch Rate
+ ld a,[wd007] ;enemy: Catch Rate
cp b
jr c,.next10
ld a,[H_QUOTIENT + 2]
and a
jr nz,.BallSuccess ; if ((MaxHP * 255) / BallFactor) / (CurHP / 4) > 0x255, automatic success
- call GenRandom
+ call Random
ld b,a
ld a,[H_QUOTIENT + 3]
cp b
@@ -252,16 +252,16 @@
jr .BallSuccess2
.next10 ;$578d
ld a,[H_QUOTIENT + 3]
- ld [$d11e],a
+ ld [wd11e],a
xor a
ld [H_MULTIPLICAND],a
ld [H_MULTIPLICAND + 1],a
- ld a,[$d007] ;enemy: Catch Rate
+ ld a,[wd007] ;enemy: Catch Rate
ld [H_MULTIPLICAND + 2],a
ld a,100
ld [H_MULTIPLIER],a
call Multiply ; CatchRate * 100
- ld a,[$cf91]
+ ld a,[wcf91]
ld b,255
cp a,POKE_BALL
jr z,.next11
@@ -280,7 +280,7 @@
and a
ld b,$63
jr nz,.next12
- ld a,[$d11e]
+ ld a,[wd11e]
ld [H_MULTIPLIER],a
call Multiply
ld a,255
@@ -287,7 +287,7 @@
ld [H_DIVISOR],a
ld b,4
call Divide
- ld a,[W_ENEMYMONSTATUS] ;status ailments
+ ld a,[wEnemyMonStatus] ;status ailments
and a
jr z,.next13
and a, 1 << FRZ | SLP
@@ -312,7 +312,7 @@
ld b,$63
.next12 ;$5801
ld a,b
- ld [$d11e],a
+ ld [wd11e],a
.BallSuccess2 ;$5805
ld c,20
call DelayFrames
@@ -320,19 +320,18 @@
ld [W_ANIMATIONID],a
xor a
ld [$fff3],a
- ld [$cc5b],a
- ld [$d05b],a
+ ld [wcc5b],a
+ ld [wd05b],a
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
- ld a,$08 ;probably animations
- call Predef
+ predef MoveAnimation
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
- ld a,[$d11e]
+ ld a,[wd11e]
cp a,$10
ld hl,ItemUseBallText00
jp z,.printText0
@@ -348,7 +347,7 @@
cp a,$63
ld hl,ItemUseBallText04
jp z,.printText0
- ld hl,$cfe6 ;current HP
+ ld hl,wEnemyMonHP ;current HP
ld a,[hli]
push af
ld a,[hli]
@@ -357,29 +356,29 @@
ld a,[hl]
push af ;...and status ailments
push hl
- ld hl,$d069
+ ld hl,W_ENEMYBATTSTATUS3
bit 3,[hl]
jr z,.next15
ld a,$4c
- ld [W_ENEMYMONID],a
+ ld [wEnemyMonSpecies2],a
jr .next16
.next15 ;$5871
set 3,[hl]
- ld hl,$cceb
- ld a,[$cff1]
+ ld hl,wcceb
+ ld a,[wEnemyMonDVs]
ld [hli],a
- ld a,[$cff2]
+ ld a,[wEnemyMonDVs + 1]
ld [hl],a
.next16 ;$587e
- ld a,[$cf91]
+ ld a,[wcf91]
push af
- ld a,[W_ENEMYMONID]
- ld [$cf91],a
- ld a,[$cff3]
- ld [$d127],a
+ ld a,[wEnemyMonSpecies2]
+ ld [wcf91],a
+ ld a,[wEnemyMonLevel]
+ ld [W_CURENEMYLVL],a
callab Func_3eb01
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop hl
pop af
ld [hld],a
@@ -388,56 +387,52 @@
ld [hld],a
pop af
ld [hl],a
- ld a,[$cfe5] ;enemy
- ld [$d11c],a
- ld [$cf91],a
- ld [$d11e],a
+ ld a,[wEnemyMonSpecies] ;enemy
+ ld [wd11c],a
+ ld [wcf91],a
+ ld [wd11e],a
ld a,[W_BATTLETYPE]
dec a
jr z,.printText1
ld hl,ItemUseBallText05
call PrintText
- ld a,$3a ;convert order: Internal->Dex
- call Predef
- ld a,[$d11e]
+ predef IndexToPokedex
+ ld a,[wd11e]
dec a
ld c,a
ld b,2
ld hl,wPokedexOwned ;Dex_own_flags (pokemon)
- ld a,$10
- call Predef ;check Dex flag (own already or not)
+ predef FlagActionPredef
ld a,c
push af
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
ld c,a
ld b,1
- ld a,$10 ;set Dex_own_flag?
- call Predef
+ predef FlagActionPredef
pop af
and a
jr nz,.checkParty
ld hl,ItemUseBallText06
call PrintText
- call CleanLCD_OAM
- ld a,[$cfe5] ;caught mon_ID
- ld [$d11e],a
- ld a,$3d
- call Predef
+ call ClearSprites
+ ld a,[wEnemyMonSpecies] ;caught mon_ID
+ ld [wd11e],a
+ predef ShowPokedexData
.checkParty ;$58f4
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
cp a,6 ;is party full?
jr z,.sendToBox
xor a
- ld [$cc49],a
- call CleanLCD_OAM
- call AddPokemonToParty ;add mon to Party
+ ld [wcc49],a
+ call ClearSprites
+ call AddPartyMon ;add mon to Party
jr .End
.sendToBox ;$5907
- call CleanLCD_OAM
+ call ClearSprites
call Func_e7a4
ld hl,ItemUseBallText07
- ld a,[$d7f1]
+ ld a,[wd7f1]
bit 0,a ;already met Bill?
jr nz,.sendToBox2
ld hl,ItemUseBallText08
@@ -448,14 +443,14 @@
ld hl,ItemUseBallText05
.printText0 ;$5922
call PrintText
- call CleanLCD_OAM
+ call ClearSprites
.End ;$5928
ld a,[W_BATTLETYPE]
and a
ret nz
- ld hl,$d31d
+ ld hl,wNumBagItems
inc a
- ld [$cf96],a
+ ld [wcf96],a
jp RemoveItemFromInventory ;remove ITEM (XXX)
ItemUseBallText00: ; d937 (3:5937)
;"It dodged the thrown ball!"
@@ -512,8 +507,8 @@
ld a,[W_ISINBATTLE]
and a
jp nz,ItemUseNotTime
- ld a,[$d700]
- ld [$d11a],a
+ ld a,[wd700]
+ ld [wd11a],a
cp a,2 ; is the player surfing?
jp z,ItemUseNotTime
dec a ; is player already bicycling?
@@ -521,7 +516,7 @@
.getOffBike
call ItemUseReloadOverworldData
xor a
- ld [$d700],a ; change player state to walking
+ ld [wd700],a ; change player state to walking
call Func_2307 ; play walking music
ld hl,GotOffBicycleText
jr .printText
@@ -530,9 +525,9 @@
jp nc,NoCyclingAllowedHere
call ItemUseReloadOverworldData
xor a ; no keys pressed
- ld [H_CURRENTPRESSEDBUTTONS],a ; current joypad state
+ ld [hJoyHeld],a ; current joypad state
inc a
- ld [$d700],a ; change player state to bicycling
+ ld [wd700],a ; change player state to bicycling
ld hl,GotOnBicycleText
call Func_2307 ; play bike riding music
.printText
@@ -540,8 +535,8 @@
; used for Surf out-of-battle effect
ItemUseSurfboard: ; d9b4 (3:59b4)
- ld a,[$d700]
- ld [$d11a],a
+ ld a,[wd700]
+ ld [wd11a],a
cp a,2 ; is the player already surfing?
jr z,.tryToStopSurfing
.tryToSurf
@@ -552,10 +547,10 @@
jp c,SurfingAttemptFailed
.surf
call .makePlayerMoveForward
- ld hl,$d730
+ ld hl,wd730
set 7,[hl]
ld a,2
- ld [$d700],a ; change player state to surfing
+ ld [wd700],a ; change player state to surfing
call Func_2307 ; play surfing music
ld hl,SurfingGotOnText
jp PrintText
@@ -571,11 +566,11 @@
ld hl,TilePairCollisionsWater
call CheckForTilePairCollisions
jr c,.cannotStopSurfing
- ld hl,$d530 ; pointer to list of passable tiles
+ ld hl,W_TILESETCOLLISIONPTR ; pointer to list of passable tiles
ld a,[hli]
ld h,[hl]
ld l,a ; hl now points to passable tiles
- ld a,[$cfc6] ; tile in front of the player
+ ld a,[wcfc6] ; tile in front of the player
ld b,a
.passableTileLoop
ld a,[hli]
@@ -588,17 +583,17 @@
jp PrintText
.stopSurfing
call .makePlayerMoveForward
- ld hl,$d730
+ ld hl,wd730
set 7,[hl]
xor a
- ld [$d700],a ; change player state to walking
+ ld [wd700],a ; change player state to walking
dec a
- ld [wJoypadForbiddenButtonsMask],a
+ ld [wJoyIgnore],a
call Func_2307 ; play walking music
jp LoadWalkingPlayerSpriteGraphics
; uses a simulated button press to make the player move forward
.makePlayerMoveForward
- ld a,[$d52a] ; direction the player is going
+ ld a,[wd52a] ; direction the player is going
bit 3,a
ld b,%01000000 ; Up key
jr nz,.storeSimulatedButtonPress
@@ -611,11 +606,11 @@
ld b,%00010000 ; Right key
.storeSimulatedButtonPress
ld a,b
- ld [$ccd3],a ; base address of simulated button presses
+ ld [wccd3],a ; base address of simulated button presses
xor a
- ld [$cd39],a
+ ld [wcd39],a
inc a
- ld [$cd38],a ; index of current simulated button press
+ ld [wcd38],a ; index of current simulated button press
ret
SurfingGotOnText: ; da4c (3:5a4c)
@@ -627,8 +622,7 @@
db "@"
ItemUsePokedex: ; da56 (3:5a56)
- ld a,$29
- jp Predef
+ predef_jump ShowPokedexMenu
ItemUseEvoStone: ; da5b (3:5a5b)
ld a,[W_ISINBATTLE]
@@ -636,25 +630,25 @@
jp nz,ItemUseNotTime
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
- ld [$d156],a
+ ld a,[wcf91]
+ ld [wd156],a
push af
ld a,$05 ; evolution stone party menu
- ld [$d07d],a
+ ld [wd07d],a
ld a,$ff
- ld [$cfcb],a
+ ld [wcfcb],a
call DisplayPartyMenu
pop bc
jr c,.canceledItemUse
ld a,b
- ld [$cf91],a
+ ld [wcf91],a
ld a,$01
- ld [$ccd4],a
+ ld [wccd4],a
ld a,(SFX_02_3e - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
call WaitForSoundToFinish ; wait for sound to end
callab Func_3ad0e ; try to evolve pokemon
- ld a,[$d121]
+ ld a,[wd121]
and a
jr z,.noEffect
pop af
@@ -661,13 +655,13 @@
ld [wWhichPokemon],a
ld hl,wNumBagItems
ld a,1 ; remove 1 stone
- ld [$cf96],a
+ ld [wcf96],a
jp RemoveItemFromInventory
.noEffect
call ItemUseNoEffect
.canceledItemUse
xor a
- ld [$cd6a],a
+ ld [wcd6a],a
pop af
ret
@@ -677,18 +671,18 @@
jp nz,ItemUseNotTime
ItemUseMedicine: ; dabb (3:5abb)
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
and a
jp z,.emptyParty
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
ld a,$01
- ld [$d07d],a ; item use party menu
+ ld [wd07d],a ; item use party menu
ld a,$ff
- ld [$cfcb],a
- ld a,[$d152]
+ ld [wcfcb],a
+ ld a,[wd152]
and a ; using Softboiled?
jr z,.notUsingSoftboiled
; if using softboiled
@@ -697,7 +691,7 @@
.emptyParty
ld hl,.emptyPartyText
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
jp PrintText
.emptyPartyText
text "You don't have"
@@ -707,21 +701,21 @@
call DisplayPartyMenu
.getPartyMonDataAddress
jp c,.canceledItemUse
- ld hl,W_PARTYMON1DATA
- ld bc,44
+ ld hl,wPartyMons
+ ld bc,wPartyMon2 - wPartyMon1
ld a,[wWhichPokemon]
call AddNTimes
ld a,[wWhichPokemon]
- ld [$cf06],a
+ ld [wcf06],a
ld d,a
- ld a,[$cf91]
+ ld a,[wcf91]
ld e,a
- ld [$d0b5],a
+ ld [wd0b5],a
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
- ld a,[$d152]
+ ld a,[wd152]
and a ; using Softboiled?
jr z,.checkItemType
; if using softboiled
@@ -729,7 +723,7 @@
cp d ; is the pokemon trying to use softboiled on itself?
jr z,ItemUseMedicine ; if so, force another choice
.checkItemType
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jr nc,.healHP ; if it's a Revive or Max Revive
cp a,FULL_HEAL
@@ -742,7 +736,7 @@
.cureStatusAilment
ld bc,4
add hl,bc ; hl now points to status
- ld a,[$cf91]
+ ld a,[wcf91]
ld bc,$f008
cp a,ANTIDOTE
jr z,.checkMonStatus
@@ -767,13 +761,13 @@
xor a
ld [hl],a ; remove the status ailment in the party data
ld a,b
- ld [$d07d],a ; the message to display for the item used
+ ld [wd07d],a ; the message to display for the item used
ld a,[wPlayerMonNumber]
cp d ; is pokemon the item was used on active in battle?
jp nz,.doneHealing
; if it is active in battle
xor a
- ld [W_PLAYERMONSTATUS],a ; remove the status ailment in the in-battle pokemon data
+ ld [wBattleMonStatus],a ; remove the status ailment in the in-battle pokemon data
push hl
ld hl,W_PLAYERBATTSTATUS3
res 0,[hl] ; heal Toxic status
@@ -780,11 +774,10 @@
pop hl
ld bc,30
add hl,bc ; hl now points to party stats
- ld de,W_PLAYERMONMAXHP
+ ld de,wBattleMonMaxHP
ld bc,10
call CopyData ; copy party stats to in-battle stat data
- ld a,$28
- call Predef
+ predef Func_3ed02
jp .doneHealing
.healHP
inc hl ; hl = address of current HP
@@ -793,11 +786,11 @@
ld [wHPBarOldHP+1],a
ld a,[hl]
ld c,a
- ld [wHPBarOldHP],a ; current HP stored at $ceeb (2 bytes, big-endian)
+ ld [wHPBarOldHP],a ; current HP stored at wHPBarOldHP (2 bytes, big-endian)
or b
jr nz,.notFainted
.fainted
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jr z,.updateInBattleFaintedData
cp a,MAX_REVIVE
@@ -810,21 +803,19 @@
push hl
push de
push bc
- ld a,[$cf06]
+ ld a,[wcf06]
ld c,a
- ld hl,$ccf5
+ ld hl,wccf5
ld b,$02
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld a,c
and a
jr z,.next
- ld a,[$cf06]
+ ld a,[wcf06]
ld c,a
- ld hl,W_PLAYERMONSALIVEFLAGS
+ ld hl,wPartyAliveFlags
ld b,$01
- ld a,$10
- call Predef
+ predef FlagActionPredef
.next
pop bc
pop de
@@ -831,7 +822,7 @@
pop hl
jr .compareCurrentHPToMaxHP
.notFainted
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jp z,.healingItemNoEffect
cp a,MAX_REVIVE
@@ -851,7 +842,7 @@
pop hl
jr nz,.notFullHP
.fullHP ; if the pokemon's current HP equals its max HP
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,FULL_RESTORE
jp nz,.healingItemNoEffect
inc hl
@@ -860,7 +851,7 @@
and a ; does the pokemon have a status ailment?
jp z,.healingItemNoEffect
ld a,FULL_HEAL
- ld [$cf91],a
+ ld [wcf91],a
dec hl
dec hl
dec hl
@@ -867,8 +858,8 @@
jp .cureStatusAilment
.notFullHP ; if the pokemon's current HP doesn't equal its max HP
xor a
- ld [$d083],a
- ld [$c02a],a
+ ld [wd083],a
+ ld [wc02a],a
push hl
push de
ld bc,32
@@ -876,8 +867,8 @@
ld a,[hli]
ld [wHPBarMaxHP+1],a
ld a,[hl]
- ld [wHPBarMaxHP],a ; max HP stored at $cee9 (2 bytes, big-endian)
- ld a,[$d152]
+ ld [wHPBarMaxHP],a ; max HP stored at wHPBarMaxHP (2 bytes, big-endian)
+ ld a,[wd152]
and a ; using Softboiled?
jp z,.notUsingSoftboiled2
; if using softboiled
@@ -890,12 +881,12 @@
push af
ld a,[hl]
push af
- ld hl,W_PARTYMON1_MAXHP
+ ld hl,wPartyMon1MaxHP
ld a,[wWhichPokemon]
- ld bc,44
+ ld bc,wPartyMon2 - wPartyMon1
call AddNTimes
ld a,[hli]
- ld [$ceea],a
+ ld [wHPBarMaxHP + 1],a
ld [H_DIVIDEND],a
ld a,[hl]
ld [wHPBarMaxHP],a
@@ -904,7 +895,7 @@
ld [H_DIVISOR],a
ld b,2 ; number of bytes
call Divide ; get 1/5 of max HP of pokemon that used Softboiled
- ld bc,-33
+ ld bc,wPartyMon1HP - wPartyMon1MaxHP
add hl,bc ; hl now points to LSB of current HP of pokemon that used Softboiled
; subtract 1/5 of max HP from current HP of pokemon that used Softboiled
ld a,[H_QUOTIENT + 3]
@@ -922,8 +913,7 @@
sbc b
ld [hl],a
ld [wHPBarNewHP+1],a
- FuncCoord 4, 1 ; $c3b8
- ld hl,Coord
+ hlCoord 4, 1
ld a,[wWhichPokemon]
ld bc,2 * 20
call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
@@ -933,15 +923,14 @@
set 0,a
ld [$fff6],a
ld a,$02
- ld [$cf94],a
- ld a,$48
- call Predef ; animate HP bar decrease of pokemon that used Softboiled
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
ld a,[$fff6]
res 0,a
ld [$fff6],a
pop af
ld b,a ; store heal amount (1/5 of max HP)
- ld hl,$ceec
+ ld hl,wHPBarOldHP + 1
pop af
ld [hld],a
pop af
@@ -952,7 +941,7 @@
ld [hl],a
jr .addHealAmount
.notUsingSoftboiled2
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,SODA_POP
ld b,60 ; Soda Pop heal amount
jr z,.addHealAmount
@@ -979,7 +968,7 @@
jr nc,.noCarry
inc [hl]
ld a,[hl]
- ld [$ceee],a
+ ld [wHPBarNewHP + 1],a
.noCarry
push de
inc hl
@@ -987,7 +976,7 @@
ld e,l ; de now points to current HP
ld hl,33
add hl,de ; hl now points to max HP
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,REVIVE
jr z,.setCurrentHPToHalfMaxHP
ld a,[hld]
@@ -999,7 +988,7 @@
ld a,[de]
sbc b
jr nc,.setCurrentHPToMaxHp ; if current HP exceeds max HP after healing
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,HYPER_POTION
jr c,.setCurrentHPToMaxHp ; if using a Full Restore or Max Potion
cp a,MAX_REVIVE
@@ -1029,7 +1018,7 @@
ld [wHPBarNewHP],a
dec de
.doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,FULL_RESTORE
jr nz,.updateInBattleData
ld bc,-31
@@ -1045,16 +1034,16 @@
jr nz,.calculateHPBarCoords
; copy party HP to in-battle HP
ld a,[hli]
- ld [W_PLAYERMONCURHP],a
+ ld [wBattleMonHP],a
ld a,[hld]
- ld [W_PLAYERMONCURHP + 1],a
- ld a,[$cf91]
+ ld [wBattleMonHP + 1],a
+ ld a,[wcf91]
cp a,FULL_RESTORE
jr nz,.calculateHPBarCoords
xor a
- ld [W_PLAYERMONSTATUS],a ; remove the status ailment in the in-battle pokemon data
+ ld [wBattleMonStatus],a ; remove the status ailment in the in-battle pokemon data
.calculateHPBarCoords
- ld hl,$c390
+ ld hl,wOAMBuffer + $90
ld bc,2 * 20
inc d
.calculateHPBarCoordsLoop
@@ -1066,7 +1055,7 @@
call ItemUseNoEffect
jp .done
.doneHealing
- ld a,[$d152]
+ ld a,[wd152]
and a ; using Softboiled?
jr nz,.skipRemovingItem ; no item to remove if using Softboiled
push hl
@@ -1073,7 +1062,7 @@
call RemoveUsedItem
pop hl
.skipRemovingItem
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,FULL_RESTORE
jr c,.playStatusAilmentCuringSound
cp a,FULL_HEAL
@@ -1084,21 +1073,20 @@
set 0,a
ld [$fff6],a
ld a,$02
- ld [$cf94],a
- ld a,$48
- call Predef ; animate the HP bar lengthening
+ ld [wListMenuID],a
+ predef UpdateHPBar2 ; animate the HP bar lengthening
ld a,[$fff6]
res 0,a
ld [$fff6],a
ld a,$f7 ; revived message
- ld [$d07d],a
- ld a,[$cf91]
+ ld [wd07d],a
+ ld a,[wcf91]
cp a,REVIVE
jr z,.showHealingItemMessage
cp a,MAX_REVIVE
jr z,.showHealingItemMessage
ld a,$f5 ; standard HP healed message
- ld [$d07d],a
+ ld [wd07d],a
jr .showHealingItemMessage
.playStatusAilmentCuringSound
ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound
@@ -1108,7 +1096,7 @@
ld [H_AUTOBGTRANSFERENABLED],a
call ClearScreen
dec a
- ld [$cfcb],a
+ ld [wcfcb],a
call RedrawPartyMenu ; redraws the party menu and displays the message
ld a,1
ld [H_AUTOBGTRANSFERENABLED],a
@@ -1118,11 +1106,11 @@
jr .done
.canceledItemUse
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
pop af
pop af
.done
- ld a,[$d152]
+ ld a,[wd152]
and a ; using Softboiled?
ret nz ; if so, return
call GBPalWhiteOut
@@ -1134,20 +1122,20 @@
.useVitamin
push hl
ld a,[hl]
- ld [$d0b5],a
- ld [$d11e],a
+ ld [wd0b5],a
+ ld [wd11e],a
ld bc,33
add hl,bc ; hl now points to level
ld a,[hl] ; a = level
- ld [$d127],a ; store level
+ ld [W_CURENEMYLVL],a ; store level
call GetMonHeader
push de
ld a,d
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop de
pop hl
- ld a,[$cf91]
+ ld a,[wcf91]
cp a,RARE_CANDY
jp z,.useRareCandy
push hl
@@ -1173,7 +1161,7 @@
pop hl
call .recalculateStats
ld hl,VitaminText
- ld a,[$cf91]
+ ld a,[wcf91]
sub a,HP_UP - 1
ld c,a
.statNameLoop ; loop to get the address of the name of the stat the vitamin increases
@@ -1187,9 +1175,9 @@
jr nz,.statNameInnerLoop
jr .statNameLoop
.gotStatName
- ld de,$cf4b
+ ld de,wcf4b
ld bc,10
- call CopyData ; copy the stat's name to $cf4b
+ call CopyData ; copy the stat's name to wcf4b
ld a,(SFX_02_3e - SFX_Headers_02) / 3
call PlaySound ; play sound
ld hl,VitaminStatRoseText
@@ -1214,11 +1202,11 @@
ld bc,33
add hl,bc ; hl now points to level
ld a,[hl] ; a = level
- cp a,100
+ cp a, MAX_LEVEL
jr z,.vitaminNoEffect ; can't raise level above 100
inc a
ld [hl],a ; store incremented level
- ld [$d127],a
+ ld [W_CURENEMYLVL],a
push hl
push de
ld d,a
@@ -1237,7 +1225,7 @@
pop hl
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
push de
push hl
@@ -1270,30 +1258,29 @@
adc b
ld [hl],a
ld a,$f8 ; level up message
- ld [$d07d],a
+ ld [wd07d],a
call RedrawPartyMenu
pop de
ld a,d
ld [wWhichPokemon],a
ld a,e
- ld [$d11e],a
+ ld [wd11e],a
xor a
- ld [$cc49],a ; load from player's party
+ ld [wcc49],a ; load from player's party
call LoadMonData
ld d,$01
callab PrintStatsBox ; display new stats text box
call WaitForTextScrollButtonPress ; wait for button press
xor a
- ld [$cc49],a
- ld a,$1a
- call Predef ; learn level up move, if any
+ ld [wcc49],a
+ predef Func_3af5b ; learn level up move, if any
xor a
- ld [$ccd4],a
+ ld [wccd4],a
callab Func_3ad0e ; evolve pokemon, if appropriate
ld a,$01
- ld [$cfcb],a
+ ld [wcfcb],a
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
jp RemoveUsedItem
@@ -1316,17 +1303,17 @@
ItemUseBait: ; df52 (3:5f52)
ld hl,ThrewBaitText
call PrintText
- ld hl,$d007 ; catch rate
+ ld hl,wd007 ; catch rate
srl [hl] ; halve catch rate
ld a,BAIT_ANIM
- ld hl,$cce9 ; bait factor
- ld de,$cce8 ; escape factor
+ ld hl,wcce9 ; bait factor
+ ld de,wcce8 ; escape factor
jr BaitRockCommon
ItemUseRock: ; df67 (3:5f67)
ld hl,ThrewRockText
call PrintText
- ld hl,$d007 ; catch rate
+ ld hl,wd007 ; catch rate
ld a,[hl]
add a ; double catch rate
jr nc,.noCarry
@@ -1334,17 +1321,17 @@
.noCarry
ld [hl],a
ld a,ROCK_ANIM
- ld hl,$cce8 ; escape factor
- ld de,$cce9 ; bait factor
+ ld hl,wcce8 ; escape factor
+ ld de,wcce9 ; bait factor
BaitRockCommon: ; df7f (3:5f7f)
ld [W_ANIMATIONID],a
xor a
- ld [$cc5b],a
+ ld [wcc5b],a
ld [H_WHOSETURN],a
ld [de],a ; zero escape factor (for bait), zero bait factor (for rock)
.randomLoop ; loop until a random number less than 5 is generated
- call GenRandom
+ call Random
and a,7
cp a,5
jr nc,.randomLoop
@@ -1356,8 +1343,7 @@
ld a,$ff
.noCarry
ld [hl],a
- ld a,$08
- call Predef ; do animation
+ predef MoveAnimation ; do animation
ld c,70
jp DelayFrames
@@ -1386,20 +1372,20 @@
jr z,.notUsable
cp b
jr nz,.loop
- ld hl,$d732
+ ld hl,wd732
set 3,[hl]
set 6,[hl]
- ld hl,$d72e
+ ld hl,wd72e
res 4,[hl]
- ld hl,$d790
+ ld hl,wd790
res 7,[hl] ; unset Safari Zone bit
xor a
- ld [$da47],a
+ ld [W_NUMSAFARIBALLS],a
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
inc a
- ld [$d078],a
- ld [$cd6a],a ; item used
- ld a,[$d152]
+ ld [wd078],a
+ ld [wcd6a],a ; item used
+ ld a,[wd152]
and a ; using Dig?
ret nz ; if so, return
call ItemUseReloadOverworldData
@@ -1421,7 +1407,7 @@
and a
jp nz,ItemUseNotTime
ld a,b
- ld [$d0db],a
+ ld [wd0db],a
jp PrintItemUseTextAndRemoveItem
; handles X Accuracy item
@@ -1437,7 +1423,7 @@
; The Card Key is handled in a different way.
ItemUseCardKey: ; e022 (3:6022)
xor a
- ld [$d71f],a
+ ld [wd71f],a
call Func_c586
ld a,[Func_c586] ; $4586
cp a,$18
@@ -1469,7 +1455,7 @@
cp e
jr nz,.nextEntry3
ld a,[hl]
- ld [$d71f],a
+ ld [wd71f],a
jr .done
.nextEntry1
inc hl
@@ -1481,7 +1467,7 @@
.done
ld hl,ItemUseText00
call PrintText
- ld hl,$d728
+ ld hl,wd728
set 7,[hl]
ret
@@ -1531,7 +1517,7 @@
dec a
jp nz,ItemUseNotTime
ld a,$01
- ld [$d078],a
+ ld [wd078],a
jp PrintItemUseTextAndRemoveItem
ItemUseGuardSpec: ; e0dc (3:60dc)
@@ -1564,7 +1550,7 @@
jr nz,.inBattle
call ItemUseNotTime
ld a,2
- ld [$cd6a],a ; item not used
+ ld [wcd6a],a ; item not used
ret
.inBattle
ld hl,W_PLAYERMOVENUM
@@ -1573,7 +1559,7 @@
ld a,[hl]
push af ; save [W_PLAYERMOVEEFFECT]
push hl
- ld a,[$cf91]
+ ld a,[wcf91]
sub a,X_ATTACK - ATTACK_UP1_EFFECT
ld [hl],a ; store player move effect
call PrintItemUseTextAndRemoveItem
@@ -1600,7 +1586,7 @@
ld a,[W_CURMAP]
cp a,ROUTE_12
jr nz,.notRoute12
- ld a,[$d7d8]
+ ld a,[wd7d8]
bit 7,a ; has the player beaten Route 12 Snorlax yet?
jr nz,.noSnorlaxToWakeUp
; if the player hasn't beaten Route 12 Snorlax
@@ -1609,13 +1595,13 @@
jr nc,.noSnorlaxToWakeUp
ld hl,PlayedFluteHadEffectText
call PrintText
- ld hl,$d7d8
+ ld hl,wd7d8
set 6,[hl] ; trigger Snorlax fight (handled by map script)
ret
.notRoute12
cp a,ROUTE_16
jr nz,.noSnorlaxToWakeUp
- ld a,[$d7e0]
+ ld a,[wd7e0]
bit 1,a ; has the player beaten Route 16 Snorlax yet?
jr nz,.noSnorlaxToWakeUp
; if the player hasn't beaten Route 16 Snorlax
@@ -1624,7 +1610,7 @@
jr nc,.noSnorlaxToWakeUp
ld hl,PlayedFluteHadEffectText
call PrintText
- ld hl,$d7e0
+ ld hl,wd7e0
set 0,[hl] ; trigger Snorlax fight (handled by map script)
ret
.noSnorlaxToWakeUp
@@ -1632,27 +1618,27 @@
jp PrintText
.inBattle
xor a
- ld [$cd3d],a ; initialize variable that indicates if any pokemon were woken up to zero
+ ld [wWhichTrade],a ; initialize variable that indicates if any pokemon were woken up to zero
ld b,~SLP & $FF
- ld hl,W_PARTYMON1_STATUS
+ ld hl,wPartyMon1Status
call WakeUpEntireParty
ld a,[W_ISINBATTLE]
dec a ; is it a trainer battle?
jr z,.skipWakingUpEnemyParty
; if it's a trainer battle
- ld hl,$d8a8 ; enemy party pokemon 1 status
+ ld hl,wEnemyMon1Status
call WakeUpEntireParty
.skipWakingUpEnemyParty
- ld hl,W_PLAYERMONSTATUS
+ ld hl,wBattleMonStatus
ld a,[hl]
and b ; remove Sleep status
ld [hl],a
- ld hl,W_ENEMYMONSTATUS
+ ld hl,wEnemyMonStatus
ld a,[hl]
and b ; remove Sleep status
ld [hl],a
call LoadScreenTilesFromBuffer2 ; restore saved screen
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
and a ; were any pokemon asleep before playing the flute?
ld hl,PlayedFluteNoEffectText
jp z,PrintText ; if no pokemon were asleep
@@ -1659,13 +1645,13 @@
; if some pokemon were asleep
ld hl,PlayedFluteHadEffectText
call PrintText
- ld a,[$d083]
+ ld a,[wd083]
and a,$80
jr nz,.skipMusic
call WaitForSoundToFinish ; wait for sound to end
callba Music_PokeFluteInBattle ; play in-battle pokeflute music
.musicWaitLoop ; wait for music to finish playing
- ld a,[$c02c]
+ ld a,[wc02c]
and a ; music off?
jr nz,.musicWaitLoop
.skipMusic
@@ -1676,9 +1662,9 @@
; INPUT:
; hl must point to status of first pokemon in party (player's or enemy's)
; b must equal ~SLP
-; [$cd3d] should be initialized to 0
+; [wWhichTrade] should be initialized to 0
; OUTPUT:
-; [$cd3d]: set to 1 if any pokemon were asleep
+; [wWhichTrade]: set to 1 if any pokemon were asleep
WakeUpEntireParty: ; e1e5 (3:61e5)
ld de,44
ld c,6
@@ -1688,7 +1674,7 @@
and a,SLP ; is pokemon asleep?
jr z,.notAsleep
ld a,1
- ld [$cd3d],a ; indicate that a pokemon had to be woken up
+ ld [wWhichTrade],a ; indicate that a pokemon had to be woken up
.notAsleep
pop af
and b ; remove Sleep status
@@ -1738,7 +1724,7 @@
ld c, BANK(SFX_02_5e)
call PlayMusic ; play music
.musicWaitLoop ; wait for music to finish playing
- ld a,[$c028]
+ ld a,[wc028]
cp a,$b8
jr z,.musicWaitLoop
call Func_2307 ; start playing normal music again
@@ -1767,7 +1753,7 @@
call FishingInit
jp c,ItemUseNotTime
.RandomLoop
- call GenRandom
+ call Random
srl a
jr c, .SetBite
and %11
@@ -1797,13 +1783,13 @@
call ReadSuperRodData ; 0xe8ea
ld a, e
RodResponse: ; e28d (3:628d)
- ld [$CD3D], a
+ ld [wWhichTrade], a
dec a ; is there a bite?
jr nz, .next
; if yes, store level and species data
ld a, 1
- ld [$D05F], a
+ ld [W_MOVEMISSED], a
ld a, b ; level
ld [W_CURENEMYLVL], a
ld a, c ; species
@@ -1810,7 +1796,7 @@
ld [W_CUROPPONENT], a
.next
- ld hl, $D700
+ ld hl, wd700
ld a, [hl] ; store the value in a
push af
push hl
@@ -1832,7 +1818,7 @@
.notInBattle
call IsNextTileShoreOrWater
ret c
- ld a,[$d700]
+ ld a,[wd700]
cp a,2 ; Surfing?
jr z,.surfing
call ItemUseReloadOverworldData
@@ -1887,24 +1873,24 @@
ItemUsePPRestore: ; e31e (3:631e)
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
- ld [$cd3d],a
+ ld a,[wcf91]
+ ld [wWhichTrade],a
.chooseMon
xor a
- ld [$cfcb],a
+ ld [wcfcb],a
ld a,$01 ; item use party menu
- ld [$d07d],a
+ ld [wd07d],a
call DisplayPartyMenu
jr nc,.chooseMove
jp .itemNotUsed
.chooseMove
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,ELIXER
jp nc,.useElixir ; if Elixir or Max Elixir
ld a,$02
ld [wMoveMenuType],a
ld hl,RaisePPWhichTechniqueText
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,ETHER ; is it a PP Up?
jr c,.printWhichTechniqueMessage ; if so, print the raise PP message
ld hl,RestorePPWhichTechniqueText ; otherwise, print the restore PP message
@@ -1911,21 +1897,21 @@
.printWhichTechniqueMessage
call PrintText
xor a
- ld [$cc2e],a
+ ld [wPlayerMoveListIndex],a
callab MoveSelectionMenu ; move selection menu
ld a,0
- ld [$cc2e],a
+ ld [wPlayerMoveListIndex],a
jr nz,.chooseMon
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
call GetSelectedMoveOffset
push hl
ld a,[hl]
- ld [$d11e],a
+ ld [wd11e],a
call GetMoveName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
pop hl
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,ETHER
jr nc,.useEther ; if Ether or Max Ether
.usePPUp
@@ -1942,7 +1928,7 @@
add a,1 << 6 ; increase PP Up count by 1
ld [hl],a
ld a,1 ; 1 PP Up used
- ld [$d11e],a
+ ld [wd11e],a
call RestoreBonusPP ; add the bonus PP to current PP
ld hl,PPIncreasedText
call PrintText
@@ -1958,10 +1944,10 @@
ld a,[wPlayerMonNumber]
cp b ; is the pokemon whose PP was restored active in battle?
jr nz,.skipUpdatingInBattleData
- ld hl,W_PARTYMON1_MOVE1PP
+ ld hl,wPartyMon1PP
ld bc,44
call AddNTimes
- ld de,W_PLAYERMONPP
+ ld de,wBattleMonPP
ld bc,4
call CopyData ; copy party data to in-battle data
.skipUpdatingInBattleData
@@ -1978,16 +1964,16 @@
; however, this is bugged for Max Ethers and Max Elixirs (see below)
.restorePP
xor a
- ld [$cc49],a ; party pokemon
+ ld [wcc49],a ; party pokemon
call GetMaxPP
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
call GetSelectedMoveOffset
ld bc,21
add hl,bc ; hl now points to move's PP
- ld a,[$d11e]
+ ld a,[wd11e]
ld b,a ; b = max PP
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,MAX_ETHER
jr z,.fullyRestorePP
ld a,[hl] ; move PP
@@ -2019,7 +2005,7 @@
jr .storeNewAmount
.useElixir
; decrement the item ID so that ELIXER becomes ETHER and MAX_ELIXER becomes MAX_ETHER
- ld hl,$cd3d
+ ld hl,wWhichTrade
dec [hl]
dec [hl]
xor a
@@ -2030,7 +2016,7 @@
; loop through each move and restore PP
.elixirLoop
push bc
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
call GetSelectedMoveOffset
ld a,[hl]
@@ -2039,7 +2025,7 @@
call .restorePP
jr z,.nextMove
; if some PP was restored
- ld hl,$cc27 ; counter for number of moves that had their PP restored
+ ld hl,wTileBehindCursor ; counter for number of moves that had their PP restored
inc [hl]
.nextMove
ld hl,wCurrentMenuItem
@@ -2047,7 +2033,7 @@
pop bc
dec b
jr nz,.elixirLoop
- ld a,[$cc27]
+ ld a,[wTileBehindCursor]
and a ; did any moves have their PP restored?
jp nz,.afterRestoringPP
.noEffect
@@ -2057,7 +2043,7 @@
call GoPAL_SET_CF1C
pop af
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
ret
RaisePPWhichTechniqueText: ; e45d (3:645d)
@@ -2088,7 +2074,7 @@
ld a,[W_ISINBATTLE]
and a
jp nz,ItemUseNotTime
- ld a,[$cf91]
+ ld a,[wcf91]
sub a,TM_01
push af
jr nc,.skipAdding
@@ -2095,13 +2081,12 @@
add a,55 ; if item is an HM, add 55
.skipAdding
inc a
- ld [$d11e],a
- ld a,$44
- call Predef ; get move ID from TM/HM ID
- ld a,[$d11e]
- ld [$d0e0],a
+ ld [wd11e],a
+ predef TMToMove ; get move ID from TM/HM ID
+ ld a,[wd11e]
+ ld [wd0e0],a
call GetMoveName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
pop af
ld hl,BootedUpTMText
jr nc,.printBootedUpMachineText
@@ -2110,36 +2095,35 @@
call PrintText
ld hl,TeachMachineMoveText
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
ld a,[wCurrentMenuItem]
and a
jr z,.useMachine
ld a,2
- ld [$cd6a],a ; item not used
+ ld [wcd6a],a ; item not used
ret
.useMachine
ld a,[wWhichPokemon]
push af
- ld a,[$cf91]
+ ld a,[wcf91]
push af
.chooseMon
- ld hl,$cf4b
- ld de,$d036
+ ld hl,wcf4b
+ ld de,wd036
ld bc,14
call CopyData
ld a,$ff
- ld [$cfcb],a
+ ld [wcfcb],a
ld a,$03 ; teach TM/HM party menu
- ld [$d07d],a
+ ld [wd07d],a
call DisplayPartyMenu
push af
- ld hl,$d036
- ld de,$cf4b
+ ld hl,wd036
+ ld de,wcf4b
ld bc,14
call CopyData
pop af
@@ -2148,15 +2132,14 @@
pop af
pop af
call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
+ call ClearSprites
call GoPAL_SET_CF1C
jp LoadScreenTilesFromBuffer1 ; restore saved screen
.checkIfAbleToLearnMove
- ld a,$43
- call Predef ; check if the pokemon can learn the move
+ predef CanLearnTM ; check if the pokemon can learn the move
push bc
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop bc
ld a,c
@@ -2171,16 +2154,15 @@
.checkIfAlreadyLearnedMove
callab CheckIfMoveIsKnown ; check if the pokemon already knows the move
jr c,.chooseMon
- ld a,$1b
- call Predef ; teach move
+ predef LearnMove ; teach move
pop af
- ld [$cf91],a
+ ld [wcf91],a
pop af
ld [wWhichPokemon],a
ld a,b
and a
ret z
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
ret c
jp RemoveUsedItem
@@ -2211,7 +2193,7 @@
RemoveUsedItem: ; e571 (3:6571)
ld hl,wNumBagItems
ld a,1 ; one item
- ld [$cf96],a ; store quantity
+ ld [wcf96],a ; store quantity
jp RemoveItemFromInventory
ItemUseNoEffect: ; e57c (3:657c)
@@ -2232,8 +2214,7 @@
call Delay3
ld a,TOSS_ANIM
ld [W_ANIMATIONID],a
- ld a,$08
- call Predef ; do animation
+ predef MoveAnimation ; do animation
ld hl,ThrowBallAtTrainerMonText1
call PrintText
ld hl,ThrowBallAtTrainerMonText2
@@ -2253,7 +2234,7 @@
ItemUseFailed: ; e5b9 (3:65b9)
xor a
- ld [$cd6a],a ; item use failed
+ ld [wcd6a],a ; item use failed
jp PrintText
ItemUseNotTimeText: ; e5c0 (3:65c0)
@@ -2310,24 +2291,23 @@
; also, when a PP Up is used, it increases the current PP by one PP Up bonus
; INPUT:
; [wWhichPokemon] = index of pokemon in party
-; [$d11e] = mode
+; [wd11e] = mode
; 0: Pokemon Center healing
; 1: using a PP Up
; [wCurrentMenuItem] = index of move (when using a PP Up)
RestoreBonusPP: ; e606 (3:6606)
- ld hl,W_PARTYMON1_MOVE1
+ ld hl,wPartyMon1Moves
ld bc,44
ld a,[wWhichPokemon]
call AddNTimes
push hl
- ld de,$cd78 - 1
- ld a,$5e
- call Predef ; loads the normal max PP of each of the pokemon's moves to $cd78
+ ld de,wcd78 - 1
+ predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wcd78
pop hl
ld c,21
ld b,0
add hl,bc ; hl now points to move 1 PP
- ld de,$cd78
+ ld de,wcd78
ld b,0 ; initialize move counter to zero
; loop through the pokemon's moves
.loop
@@ -2335,7 +2315,7 @@
ld a,b
cp a,5 ; reached the end of the pokemon's moves?
ret z ; if so, return
- ld a,[$d11e]
+ ld a,[wd11e]
dec a ; using a PP Up?
jr nz,.skipMenuItemIDCheck
; if using a PP Up, check if this is the move it's being used on
@@ -2357,7 +2337,7 @@
; INPUT:
; [de] = normal max PP
; [hl] = move PP
-; [$d11e] = max number of times to add bonus
+; [wd11e] = max number of times to add bonus
; set to 1 when using a PP Up, set to 255 otherwise
AddBonusPP: ; e642 (3:6642)
push bc
@@ -2386,7 +2366,7 @@
.addAmount
add b
ld b,a
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
jr z,.done
dec c
@@ -2399,7 +2379,7 @@
; gets max PP of a pokemon's move (including PP from PP Ups)
; INPUT:
; [wWhichPokemon] = index of pokemon within party/box
-; [$cc49] = pokemon source
+; [wcc49] = pokemon source
; 00: player's party
; 01: enemy's party
; 02: current box
@@ -2407,24 +2387,24 @@
; 04: player's in-battle pokemon
; [wCurrentMenuItem] = move index
; OUTPUT:
-; [$d11e] = max PP
+; [wd11e] = max PP
GetMaxPP: ; e677 (3:6677)
- ld a,[$cc49]
+ ld a,[wcc49]
and a
- ld hl,W_PARTYMON1_MOVE1
- ld bc,44
+ ld hl,wPartyMon1Moves
+ ld bc,wPartyMon2 - wPartyMon1
jr z,.sourceWithMultipleMon
- ld hl,$d8ac ; enemy party
+ ld hl,wEnemyMon1Moves
dec a
jr z,.sourceWithMultipleMon
- ld hl,$da9e ; current box
- ld bc,33
+ ld hl,wBoxMon1Moves
+ ld bc,wBoxMon2 - wBoxMon1
dec a
jr z,.sourceWithMultipleMon
- ld hl,$da67 ; daycare
+ ld hl,wDayCareMonMoves
dec a
jr z,.sourceWithOneMon
- ld hl,W_PLAYERMONMOVES ; player's in-battle pokemon
+ ld hl,wBattleMonMoves ; player's in-battle pokemon
.sourceWithOneMon
call GetSelectedMoveOffset2
jr .next
@@ -2437,16 +2417,16 @@
ld hl,Moves
ld bc,6
call AddNTimes
- ld de,$cd6d
+ ld de,wcd6d
ld a,BANK(Moves)
call FarCopyData
- ld de,$cd72
+ ld de,wcd72
ld a,[de]
ld b,a ; b = normal max PP
pop hl
push bc
ld bc,21 ; PP offset if not player's in-battle pokemon data
- ld a,[$cc49]
+ ld a,[wcc49]
cp a,4 ; player's in-battle pokemon?
jr nz,.addPPOffset
ld bc,17 ; PP offset if player's in-battle pokemon data
@@ -2458,14 +2438,14 @@
or b ; place normal max PP in 6 lower bits of a
ld h,d
ld l,e
- inc hl ; hl = $cd73
+ inc hl ; hl = wcd73
ld [hl],a
xor a
- ld [$d11e],a ; no limit on PP Up amount
+ ld [wd11e],a ; no limit on PP Up amount
call AddBonusPP ; add bonus PP from PP Ups
ld a,[hl]
and a,%00111111 ; mask out the PP Up count
- ld [$d11e],a ; store max PP
+ ld [wd11e],a ; store max PP
ret
GetSelectedMoveOffset: ; e6e3 (3:66e3)
@@ -2482,37 +2462,36 @@
; confirms the item toss and then tosses the item
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$cf91] = item ID
+; [wcf91] = item ID
; [wWhichPokemon] = index of item within inventory
-; [$cf96] = quantity to toss
+; [wcf96] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
TossItem_: ; e6f1 (3:66f1)
push hl
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
pop hl
jr c,.tooImportantToToss
push hl
call IsKeyItem_
- ld a,[$d124]
+ ld a,[wd124]
pop hl
and a
jr nz,.tooImportantToToss
push hl
- ld a,[$cf91]
- ld [$d11e],a
+ ld a,[wcf91]
+ ld [wd11e],a
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
ld hl,IsItOKToTossItemText
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,2
pop hl
scf
@@ -2521,10 +2500,10 @@
push hl
ld a,[wWhichPokemon]
call RemoveItemFromInventory
- ld a,[$cf91]
- ld [$d11e],a
+ ld a,[wcf91]
+ ld [wd11e],a
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
ld hl,ThrewAwayItemText
call PrintText
pop hl
@@ -2552,50 +2531,49 @@
; checks if an item is a key item
; INPUT:
-; [$cf91] = item ID
+; [wcf91] = item ID
; OUTPUT:
-; [$d124] = result
+; [wd124] = result
; 00: item is not key item
; 01: item is key item
IsKeyItem_: ; e764 (3:6764)
ld a,$01
- ld [$d124],a
- ld a,[$cf91]
+ ld [wd124],a
+ ld a,[wcf91]
cp a,HM_01 ; is the item an HM or TM?
jr nc,.checkIfItemIsHM
; if the item is not an HM or TM
push af
ld hl,KeyItemBitfield
- ld de,$cee9
+ ld de,wHPBarMaxHP
ld bc,15 ; only 11 bytes are actually used
call CopyData
pop af
dec a
ld c,a
- ld hl,$cee9
+ ld hl,wHPBarMaxHP
ld b,$02 ; test bit
- ld a,$10
- call Predef ; bitfield operation function
+ predef FlagActionPredef ; bitfield operation function
ld a,c
and a
ret nz
.checkIfItemIsHM
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
ret c
xor a
- ld [$d124],a
+ ld [wd124],a
ret
INCLUDE "data/key_items.asm"
Func_e7a4: ; e7a4 (3:67a4)
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
ld a, [de]
inc a
ld [de], a
- ld a, [$cf91]
- ld [$d0b5], a
+ ld a, [wcf91]
+ ld [wd0b5], a
ld c, a
.asm_e7b1
inc de
@@ -2607,9 +2585,9 @@
cp $ff
jr nz, .asm_e7b1
call GetMonHeader
- ld hl, W_BOXMON1OT
+ ld hl, wBoxMonOT
ld bc, $b
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
jr z, .asm_e7ee
dec a
@@ -2620,7 +2598,7 @@
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
ld b, a
.asm_e7db
@@ -2637,14 +2615,14 @@
dec b
jr nz, .asm_e7db
.asm_e7ee
- ld hl, W_PLAYERNAME ; $d158
- ld de, W_BOXMON1OT
+ ld hl, wPlayerName ; wd158
+ ld de, wBoxMonOT
ld bc, $b
call CopyData
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
jr z, .asm_e82a
- ld hl, W_BOXMON1NAME
+ ld hl, wBoxMonNicks
ld bc, $b
dec a
call AddNTimes
@@ -2654,7 +2632,7 @@
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
ld b, a
.asm_e817
@@ -2671,31 +2649,30 @@
dec b
jr nz, .asm_e817
.asm_e82a
- ld hl, W_BOXMON1NAME
+ ld hl, wBoxMonNicks
ld a, $2
- ld [$d07d], a
- ld a, $4e
- call Predef ; indirect jump to Func_64eb (64eb (1:64eb))
- ld a, [W_NUMINBOX] ; $da80
+ ld [wd07d], a
+ predef AskName
+ ld a, [W_NUMINBOX] ; wda80
dec a
jr z, .asm_e867
- ld hl, W_BOXMON1DATA
- ld bc, $21
+ ld hl, wBoxMons
+ ld bc, wBoxMon2 - wBoxMon1
dec a
call AddNTimes
push hl
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
add hl, bc
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
dec a
ld b, a
.asm_e854
push bc
push hl
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
call CopyData
pop hl
ld d, h
@@ -2706,13 +2683,13 @@
dec b
jr nz, .asm_e854
.asm_e867
- ld a, [W_ENEMYMONLEVEL] ; $cff3
- ld [W_ENEMYMONNUMBER], a ; $cfe8
- ld hl, $cfe5
- ld de, W_BOXMON1DATA
+ ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld [wEnemyMonBoxLevel], a
+ ld hl, wEnemyMon
+ ld de, wBoxMon1
ld bc, $c
call CopyData
- ld hl, wPlayerID ; $d359
+ ld hl, wPlayerID ; wPlayerID
ld a, [hli]
ld [de], a
inc de
@@ -2720,7 +2697,7 @@
ld [de], a
inc de
push de
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld d, a
callab CalcExperience
pop de
@@ -2740,13 +2717,13 @@
inc de
dec b
jr nz, .asm_e89f
- ld hl, $cff1
+ ld hl, wEnemyMonDVs
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
- ld hl, W_ENEMYMONPP ; $cffe
+ ld hl, wEnemyMonPP ; wcffe
ld b, $4
.asm_e8b1
ld a, [hli]
@@ -2767,7 +2744,7 @@
jr nc, .notShoreOrWater
ld a, [W_CURMAPTILESET]
cp SHIP_PORT ; Vermilion Dock tileset
- ld a, [$cfc6] ; tile in front of player
+ ld a, [wcfc6] ; tile in front of player
jr z, .skipShoreTiles ; if it's the Vermilion Dock tileset
cp $48 ; eastern shore tile in Safari Zone
jr z, .shoreOrWater
@@ -2814,7 +2791,7 @@
ld e, $0 ; no bite yet
.RandomLoop ; 0xe90c
- call GenRandom
+ call Random
srl a
ret c ; 50% chance of no battle
@@ -2843,7 +2820,7 @@
Func_e9cb: ; e9cb (3:69cb)
ld hl, WildDataPointers ; $4eeb
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld c, $0
.asm_e9d3
inc hl
@@ -2874,7 +2851,7 @@
inc hl
ld b, $a
.asm_e9f3
- ld a, [$d11e]
+ ld a, [wd11e]
cp [hl]
jr nz, .asm_e9fc
ld a, c
--- a/engine/items/tm_prices.asm
+++ b/engine/items/tm_prices.asm
@@ -1,5 +1,5 @@
GetMachinePrice: ; 7bf86 (1e:7f86)
- ld a, [$cf91]
+ ld a, [wcf91]
sub TM_01
ret c
ld d, a
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -1,10 +1,10 @@
-; checks if the mon in wWhichPokemon already knows the move in $d0e0
+; checks if the mon in wWhichPokemon already knows the move in wd0e0
CheckIfMoveIsKnown: ; 2fe18 (b:7e18)
ld a, [wWhichPokemon]
- ld hl, W_PARTYMON1_MOVE1
+ ld hl, wPartyMon1Moves
ld bc, $2c
call AddNTimes
- ld a, [$d0e0]
+ ld a, [wd0e0]
ld b, a
ld c, $4 ; nubmer of moves
.loop
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -1,11 +1,11 @@
-; tests if mon [$cf91] can learn move [$d0e0]
-TestMonMoveCompatibility: ; 1373e (4:773e)
- ld a, [$cf91]
- ld [$d0b5], a
+; tests if mon [wcf91] can learn move [wd0e0]
+CanLearnTM: ; 1373e (4:773e)
+ ld a, [wcf91]
+ ld [wd0b5], a
call GetMonHeader
ld hl, W_MONHLEARNSET
push hl
- ld a, [$d0e0]
+ ld a, [wd0e0]
ld b, a
ld c, $0
ld hl, TechnicalMachines
@@ -18,13 +18,12 @@
.TMfoundLoop
pop hl
ld b, $2 ; read corresponding bit from TM compatibility array
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
-; converts TM/HM number in $d11e into move number
+; converts TM/HM number in wd11e into move number
; HMs start at 51
TMToMove: ; 13763 (4:7763)
- ld a, [$d11e]
+ ld a, [wd11e]
dec a
ld hl, TechnicalMachines
ld b, $0
@@ -31,7 +30,7 @@
ld c, a
add hl, bc
ld a, [hl]
- ld [$d11e], a
+ ld [wd11e], a
ret
INCLUDE "data/tms.asm"
--- /dev/null
+++ b/engine/joypad.asm
@@ -1,0 +1,51 @@
+_Joypad::
+ ld a, [hJoyInput]
+ cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
+ jp z, TrySoftReset
+ ld b, a
+ ld a, [hJoyHeldLast]
+ ld e, a
+ xor b
+ ld d, a
+ and e
+ ld [hJoyReleased], a
+ ld a, d
+ and b
+ ld [hJoyPressed], a
+ ld a, b
+ ld [hJoyHeldLast], a
+ ld a, [wd730]
+ bit 5, a
+ jr nz, DiscardButtonPresses
+ ld a, [hJoyHeldLast]
+ ld [hJoyHeld], a
+ ld a, [wJoyIgnore]
+ and a
+ ret z
+ cpl
+ ld b, a
+ ld a, [hJoyHeld]
+ and b
+ ld [hJoyHeld], a
+ ld a, [hJoyPressed]
+ and b
+ ld [hJoyPressed], a
+ ret
+
+DiscardButtonPresses:
+ xor a
+ ld [hJoyHeld], a
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
+ ret
+
+TrySoftReset:
+ call DelayFrame
+ ; reset joypad (to make sure the
+ ; player is really trying to reset)
+ ld a, $30
+ ld [rJOYP], a
+ ld hl, hSoftReset
+ dec [hl]
+ jp z, SoftReset
+ jp Joypad
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -1,17 +1,17 @@
LearnMove: ; 6e43 (1:6e43)
call SaveScreenTilesToBuffer1
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
- ld hl, $cd6d
- ld de, $d036
+ ld hl, wcd6d
+ ld de, wd036
ld bc, $b
call CopyData
DontAbandonLearning: ; 6e5b (1:6e5b)
- ld hl, W_PARTYMON1_MOVE1 ; $d173
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
ld bc, $2c
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
ld d, h
ld e, l
@@ -29,7 +29,7 @@
jp c, AbandonLearning
push hl
push de
- ld [$d11e], a
+ ld [wd11e], a
call GetMoveName
ld hl, OneTwoAndText
call PrintText
@@ -36,7 +36,7 @@
pop de
pop hl
.asm_6e8b
- ld a, [$d0e0]
+ ld a, [wd0e0]
ld [hl], a
ld bc, $15
add hl, bc
@@ -46,29 +46,29 @@
ld hl, Moves ; $4000
ld bc, $6
call AddNTimes
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld a, BANK(Moves)
call FarCopyData
- ld a, [$ceee]
+ ld a, [wHPBarNewHP + 1]
pop de
pop hl
ld [hl], a
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jp z, PrintLearnedMove
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld b, a
- ld a, [wPlayerMonNumber] ; $cc2f
+ ld a, [wPlayerMonNumber] ; wPlayerMonNumber
cp b
jp nz, PrintLearnedMove
ld h, d
ld l, e
- ld de, W_PLAYERMONMOVES
+ ld de, wBattleMonMoves
ld bc, $4
call CopyData
ld bc, $11
add hl, bc
- ld de, W_PLAYERMONPP ; $d02d
+ ld de, wBattleMonPP ; wBattleMonPP
ld bc, $4
call CopyData
jp PrintLearnedMove
@@ -76,13 +76,12 @@
AbandonLearning: ; 6eda (1:6eda)
ld hl, AbandonLearningText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jp nz, DontAbandonLearning
ld hl, DidNotLearnText
@@ -100,20 +99,19 @@
push hl
ld hl, TryingToLearnText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
pop hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
rra
ret c
ld bc, $fffc
add hl, bc
push hl
- ld de, $d0dc
+ ld de, wd0dc
ld bc, $4
call CopyData
callab Func_39b87
@@ -122,14 +120,12 @@
push hl
ld hl, WhichMoveToForgetText
call PrintText
- FuncCoord 4, 7 ; $c430
- ld hl, Coord
+ hlCoord 4, 7
ld b, $4
ld c, $e
call TextBoxBorder
- FuncCoord 6, 8 ; $c446
- ld hl, Coord
- ld de, $d0e1
+ hlCoord 6, 8
+ ld de, wd0e1
ld a, [$fff6]
set 2, a
ld [$fff6], a
@@ -137,7 +133,7 @@
ld a, [$fff6]
res 2, a
ld [$fff6], a
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $8
ld [hli], a
ld a, $5
@@ -145,7 +141,7 @@
xor a
ld [hli], a
inc hl
- ld a, [$cd6c]
+ ld a, [wcd6c]
ld [hli], a
ld a, $3
ld [hli], a
@@ -162,7 +158,7 @@
bit 1, a
jr nz, .asm_6fab
push hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld c, a
ld b, $0
add hl, bc
--- a/engine/load_pokedex_tiles.asm
+++ b/engine/load_pokedex_tiles.asm
@@ -2,10 +2,10 @@
LoadPokedexTilePatterns: ; 17840 (5:7840)
call LoadHpBarAndStatusTilePatterns
ld de,PokedexTileGraphics ; $6488
- ld hl,$9600
+ ld hl,vChars2 + $600
ld bc,(BANK(PokedexTileGraphics) << 8) + $12
call CopyVideoData
ld de,PokeballTileGraphics ; $697e
- ld hl,$9720
+ ld hl,vChars2 + $720
ld bc,(BANK(PokeballTileGraphics) << 8) + $01
jp CopyVideoData ; load pokeball tile for marking caught mons
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -2,13 +2,13 @@
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call SaveScreenTilesToBuffer2
- ld a, [$d5a2]
+ ld a, [wd5a2]
and a
jr nz, .asm_213f3
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr z, .asm_213ea
- ld a, [$d5a2]
+ ld a, [wd5a2]
and a
jr nz, .asm_213f3
ld hl, wTileMap
@@ -28,70 +28,62 @@
call TextBoxBorder
call UpdateSprites
ld a, $3
- ld [wMaxMenuItem], a ; $cc28
- ld a, [$d7f1]
+ ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld a, [wd7f1]
bit 0, a
jr nz, .asm_21414
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, SomeonesPCText ; $548b
jr .asm_2141a
.asm_21414
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, BillsPCText ; $5497
.asm_2141a
call PlaceString
- FuncCoord 2, 4 ; $c3f2
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 2, 4
+ ld de, wPlayerName ; wd158
call PlaceString
ld l, c
ld h, b
ld de, PlayersPCText ; $54a0
call PlaceString
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr z, .asm_21462
- FuncCoord 2, 6 ; $c41a
- ld hl, Coord
+ hlCoord 2, 6
ld de, OaksPCText ; $54a5
call PlaceString
- ld a, [$d5a2]
+ ld a, [wd5a2]
and a
jr z, .asm_2145a
ld a, $4
- ld [wMaxMenuItem], a ; $cc28
- FuncCoord 2, 8 ; $c442
- ld hl, Coord
+ ld [wMaxMenuItem], a ; wMaxMenuItem
+ hlCoord 2, 8
ld de, PKMNLeaguePCText ; $54b2
call PlaceString
- FuncCoord 2, 10 ; $c46a
- ld hl, Coord
+ hlCoord 2, 10
ld de, LogOffPCText ; $54ba
jr .asm_2146d
.asm_2145a
- FuncCoord 2, 8 ; $c442
- ld hl, Coord
+ hlCoord 2, 8
ld de, LogOffPCText ; $54ba
jr .asm_2146d
.asm_21462
ld a, $2
- ld [wMaxMenuItem], a ; $cc28
- FuncCoord 2, 6 ; $c41a
- ld hl, Coord
+ ld [wMaxMenuItem], a ; wMaxMenuItem
+ hlCoord 2, 6
ld de, LogOffPCText ; $54ba
.asm_2146d
call PlaceString
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $2
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ret
@@ -116,14 +108,14 @@
Func_214c2:: ; 214c2 (8:54c2)
BillsPC_:: ; 0x214c2
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
xor a
- ld [$ccd3], a
+ ld [wccd3], a
inc a ; MONSTER_NAME
ld [W_LISTTYPE], a
call LoadHpBarAndStatusTilePatterns
- ld a, [wListScrollOffset] ; $cc36
+ ld a, [wListScrollOffset] ; wcc36
push af
ld a, [wFlags_0xcd60]
bit 3, a
@@ -135,9 +127,9 @@
Func_214e8: ; 214e8 (8:54e8)
BillsPCMenu:
- ld a, [$ccd3]
- ld [wCurrentMenuItem], a ; $cc26
- ld hl, $9780
+ ld a, [wccd3]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld hl, vChars2 + $780
ld de, PokeballTileGraphics ; $697e
ld bc, (BANK(PokeballTileGraphics) << 8) + $01
call CopyVideoData
@@ -146,11 +138,10 @@
ld b, $a
ld c, $c
call TextBoxBorder
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, BillsPCMenuText ; $56e1
call PlaceString
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $2
ld [hli], a
dec a
@@ -164,24 +155,22 @@
xor a
ld [hli], a
ld [hli], a
- ld hl, wListScrollOffset ; $cc36
+ ld hl, wListScrollOffset ; wcc36
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; $cc2f
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld hl, WhatText
call PrintText
- FuncCoord 9, 14 ; $c4c1
- ld hl, Coord
+ hlCoord 9, 14
ld b, $2
ld c, $9
call TextBoxBorder
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_2154f
sub $9
- FuncCoord 17, 16 ; $c4f1
- ld hl, Coord
+ hlCoord 17, 16
ld [hl], $f7
add $f6
jr .asm_21551
@@ -188,10 +177,8 @@
.asm_2154f
add $f7
.asm_21551
- FuncCoord 18, 16 ; $c4f2
- ld [Coord], a
- FuncCoord 10, 16 ; $c4ea
- ld hl, Coord
+ Coorda 18, 16
+ hlCoord 10, 16
ld de, BoxNoPCText ; $5713
call PlaceString
ld a, $1
@@ -201,8 +188,8 @@
bit 1, a
jp nz, Func_21588 ; b button
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$ccd3], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wccd3], a
and a
jp z, Func_21618 ; withdraw
cp $1
@@ -225,14 +212,14 @@
res 5, [hl]
call LoadScreenTilesFromBuffer2
pop af
- ld [wListScrollOffset], a ; $cc36
- ld hl, $d730
+ ld [wListScrollOffset], a ; wcc36
+ ld hl, wd730
res 6, [hl]
ret
Func_215ac: ; 215ac (8:55ac)
BillsPCDeposit:
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
dec a
jr nz, .asm_215bb
ld hl, CantDepositLastMonText
@@ -239,7 +226,7 @@
call PrintText
jp BillsPCMenu
.asm_215bb
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
cp $14
jr nz, .asm_215cb
ld hl, BoxFullText ; $5802
@@ -246,23 +233,23 @@
call PrintText
jp BillsPCMenu
.asm_215cb
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
call Func_216be
jp c, BillsPCMenu
call Func_2174b
jp nc, BillsPCMenu
- ld a, [$cf91]
+ ld a, [wcf91]
call GetCryData
call PlaySoundWaitForCurrent
ld a, $1
- ld [$cf95], a
+ ld [wcf95], a
call Func_3a68
xor a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld hl, wWhichTrade ; $cd3d
- ld a, [$d5a0]
+ ld hl, wWhichTrade ; wWhichTrade
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_2160a
@@ -281,7 +268,7 @@
jp BillsPCMenu
Func_21618: ; 21618 (8:5618)
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
and a
jr nz, .asm_21627
ld hl, NoMonText ; $580c
@@ -288,7 +275,7 @@
call PrintText
jp Func_214e8
.asm_21627
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
cp $6
jr nz, .asm_21637
ld hl, CantTakeMonText ; $5811
@@ -295,22 +282,22 @@
call PrintText
jp Func_214e8
.asm_21637
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
call Func_216be
jp c, Func_214e8
call Func_2174b
jp nc, Func_214e8
- ld a, [wWhichPokemon] ; $cf92
- ld hl, $de06
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wBoxMonNicks
call GetPartyMonName
- ld a, [$cf91]
+ ld a, [wcf91]
call GetCryData
call PlaySoundWaitForCurrent
xor a
- ld [$cf95], a
+ ld [wcf95], a
call Func_3a68
ld a, $1
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
ld hl, MonIsTakenOutText ; $5807
@@ -318,7 +305,7 @@
jp Func_214e8
Func_21673: ; 21673 (8:5673)
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
and a
jr nz, .asm_21682
ld hl, NoMonText ; $580c
@@ -325,20 +312,20 @@
call PrintText
jp Func_214e8
.asm_21682
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
call Func_216be
jp c, Func_214e8
ld hl, OnceReleasedText ; $581b
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_21682
inc a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry
ld hl, MonWasReleasedText ; $5820
call PrintText
@@ -350,19 +337,19 @@
Func_216be: ; 216be (8:56be)
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
- ld [wListMenuID], a ; $cf94
+ ld [wcf93], a
+ ld [wListMenuID], a ; wListMenuID
inc a ; MONSTER_NAME
ld [W_LISTTYPE], a
- ld a, [$cc2b]
- ld [wCurrentMenuItem], a ; $cc26
+ ld a, [wcc2b]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
call DisplayListMenuID
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$cc2b], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wcc2b], a
ret
BillsPCMenuText: ; 216e1 (8:56e1)
@@ -372,21 +359,21 @@
db "BOX No.@"
Func_2171b:: ; 2171b (8:571b)
- ld hl, $d173
- ld bc, $002c
+ ld hl, wPartyMon1Moves
+ ld bc, wPartyMon2 - wPartyMon1
jr .asm_21729 ; 0x21721 $6
- ld hl, $da9e
- ld bc, $0021
+ ld hl, wBoxMon1Moves
+ ld bc, wBoxMon2 - wBoxMon1
.asm_21729
- ld a, [$cf92]
+ ld a, [wWhichPokemon]
call AddNTimes
- ld b, $4
+ ld b, NUM_MOVES
.asm_21731
ld a, [hli]
push hl
push bc
ld hl, HMMoveArray ; $5745
- ld de, $0001
+ ld de, 1
call IsInArray
pop bc
pop hl
@@ -405,25 +392,22 @@
db $ff
Func_2174b: ; 2174b (8:574b)
- FuncCoord 9, 10 ; $c471
- ld hl, Coord
+ hlCoord 9, 10
ld b, $6
ld c, $9
call TextBoxBorder
- ld a, [$ccd3]
+ ld a, [wccd3]
and a
ld de, DepositPCText ; $57cb
jr nz, .asm_21761
ld de, WithdrawPCText ; $57d3
.asm_21761
- FuncCoord 11, 12 ; $c49b
- ld hl, Coord
+ hlCoord 11, 12
call PlaceString
- FuncCoord 11, 14 ; $c4c3
- ld hl, Coord
+ hlCoord 11, 14
ld de, StatsCancelPCText ; $57dc
call PlaceString
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $c
ld [hli], a
ld a, $a
@@ -437,16 +421,16 @@
ld [hli], a
xor a
ld [hl], a
- ld hl, wListScrollOffset ; $cc36
+ ld hl, wListScrollOffset ; wcc36
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; $cc2f
- ld [$cc2b], a
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
+ ld [wcc2b], a
.asm_2178f
call HandleMenuInput
bit 1, a
jr nz, .asm_2179f
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_217a1
dec a
@@ -459,17 +443,15 @@
ret
.asm_217a3
call SaveScreenTilesToBuffer1
- ld a, [$ccd3]
+ ld a, [wccd3]
and a
ld a, $0
jr nz, .asm_217b0
ld a, $2
.asm_217b0
- ld [$cc49], a
- ld a, $36
- call Predef ; indirect jump to StatusScreen (12953 (4:6953))
- ld a, $37
- call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57))
+ ld [wcc49], a
+ predef StatusScreen
+ predef StatusScreen2
call LoadScreenTilesFromBuffer1
call ReloadTilesetTilePatterns
call GoPAL_SET_CF1C
@@ -537,16 +519,16 @@
ld a, [$ffaa]
cp $1
ret z
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $c
ret nz
- ld a, [$d35e]
+ ld a, [W_CURMAP]
cp $ef
ld a, $2
jr z, .asm_2183a
inc a
.asm_2183a
- ld [$d12b], a
+ ld [W_ISLINKBATTLE], a
call EnableAutoTextBoxDrawing
ld a, $22
jp PrintPredefTextID
@@ -555,16 +537,16 @@
ld a, [$ffaa]
cp $2
ret z
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $8
ret nz
- ld a, [$d35e]
+ ld a, [W_CURMAP]
cp $ef
ld a, $2
jr z, .asm_2185a
inc a
.asm_2185a
- ld [$d12b], a
+ ld [W_ISLINKBATTLE], a
call EnableAutoTextBoxDrawing
ld a, $22
jp PrintPredefTextID
@@ -573,7 +555,7 @@
TX_FAR _JustAMomentText
db "@"
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
call EnableAutoTextBoxDrawing
--- a/engine/menu/diploma.asm
+++ b/engine/menu/diploma.asm
@@ -3,19 +3,18 @@
call GBPalWhiteOutWithDelay3
call ClearScreen
xor a
- ld [$cfcb], a
- ld hl, $d730
+ ld [wcfcb], a
+ ld hl, wd730
set 6, [hl]
call DisableLCD
ld hl, CircleTile ; $7d88
- ld de, $9700
+ ld de, vChars2 + $700
ld bc, $0010
ld a, BANK(CircleTile)
call FarCopyData2
ld hl, wTileMap
ld bc, $1012
- ld a, $27
- call Predef
+ predef Func_5ab0
ld hl, DiplomaTextPointersAndCoords ; $6784
ld c, $5
.asm_56715
@@ -34,12 +33,11 @@
pop bc
dec c
jr nz, .asm_56715 ; 0x56725 $ee
- FuncCoord 10, 4 ; $c3fa
- ld hl, Coord
- ld de, W_PLAYERNAME
+ hlCoord 10, 4
+ ld de, wPlayerName
call PlaceString
callba Func_44dd
- ld hl, $c301
+ ld hl, wOAMBuffer + $01
ld bc, $8028
.asm_5673e
ld a, [hl]
@@ -60,7 +58,7 @@
ld a, $90
ld [$ff48], a
call WaitForTextScrollButtonPress
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call GBPalWhiteOutWithDelay3
call Func_3dbe
@@ -68,7 +66,7 @@
jp GBPalNormal
Func_56777: ; 56777 (15:6777)
- ld hl, W_PLAYERNAME
+ ld hl, wPlayerName
ld bc, $ff00
.asm_5677d
ld a, [hli]
@@ -79,15 +77,15 @@
DiplomaTextPointersAndCoords: ; 56784 (15:6784)
dw DiplomaText
- dw $c3cd
+ dw wTileMap + $2d
dw DiplomaPlayer
- dw $c3f3
+ dw wTileMap + $53
dw DiplomaEmptyText
- dw $c3ff
+ dw wTileMap + $5f
dw DiplomaCongrats
- dw $c41a
+ dw wTileMap + $7a
dw DiplomaGameFreak
- dw $c4e9
+ dw wTileMap + $149
DiplomaText:
db $70,"Diploma",$70,"@"
--- a/engine/menu/league_pc.asm
+++ b/engine/menu/league_pc.asm
@@ -1,10 +1,10 @@
PKMNLeaguePC: ; 0x7657e
ld hl, AccessedHoFPCText
call PrintText
- ld hl, $D730
+ ld hl, wd730
set 6, [hl]
push hl
- ld a, [$CFCB]
+ ld a, [wcfcb]
push af
ld a, [$ffD7]
push af
@@ -11,27 +11,27 @@
xor a
ld [$ffD7], a
ld [W_SPRITEFLIPPED], a
- ld [$CFCB], a
- ld [$CD41], a
- ld [$CD42], a
- ld a, [$D5A2]
+ ld [wcfcb], a
+ ld [wTrainerScreenX], a
+ ld [wcd42], a
+ ld a, [wd5a2]
ld b, a
- cp a, $33
+ cp NUM_HOF_TEAMS + 1
jr c, .first
- ld b, $32
+ ld b, NUM_HOF_TEAMS
sub b
- ld [$CD42], a
+ ld [wcd42], a
.first
- ld hl, $CD42
+ ld hl, wcd42
inc [hl]
push bc
- ld a, [$CD41]
- ld [$CD3D], a
- callba Func_73b3f
+ ld a, [wTrainerScreenX]
+ ld [wWhichTrade], a
+ callba LoadHallOfFameTeams
call Func_765e5
pop bc
jr c, .second
- ld hl, $CD41
+ ld hl, wTrainerScreenX
inc [hl]
ld a, [hl]
cp b
@@ -40,7 +40,7 @@
pop af
ld [$ffD7], a
pop af
- ld [$CFCB], a
+ ld [wcfcb], a
pop hl
res 6, [hl]
call GBPalWhiteOutWithDelay3
@@ -49,28 +49,28 @@
jp GBPalNormal
Func_765e5: ; 765e5 (1d:65e5)
- ld c, 6
-.third
+ ld c, PARTY_LENGTH
+.loop
push bc
call Func_76610
call WaitForTextScrollButtonPress
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
bit 1, a
- jr nz, .fifth
- ld hl, $CC6B
- ld de, $CC5B
- ld bc, $0050
+ jr nz, .exit
+ ld hl, wHallOfFame + HOF_MON
+ ld de, wHallOfFame
+ ld bc, HOF_TEAM - HOF_MON
call CopyData
pop bc
- ld a, [$CC5B]
- cp a, $FF
- jr z, .fourth
+ ld a, [wHallOfFame + 0]
+ cp $ff
+ jr z, .done
dec c
- jr nz, .third
-.fourth
+ jr nz, .loop
+.done
and a
ret
-.fifth
+.exit
pop bc
scf
ret
@@ -78,38 +78,34 @@
Func_76610: ; 76610 (1d:6610)
call GBPalWhiteOutWithDelay3
call ClearScreen
- ld hl, $CC5B
+ ld hl, wHallOfFame
ld a, [hli]
- ld [$CD3D], a
- ld [$CF91], a
- ld [$D0B5], a
- ld [$CFD9], a
- ld [$CF1D], a
+ ld [wWhichTrade], a
+ ld [wcf91], a
+ ld [wd0b5], a
+ ld [wBattleMonSpecies2], a
+ ld [wcf1d], a
ld a, [hli]
- ld [$CD3F], a
- ld de, $CD6D
+ ld [wTrainerFacingDirection], a
+ ld de, wcd6d
ld bc, $000B
call CopyData
ld b, $0B
ld c, 0
call GoPAL_SET
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
+ hlCoord 12, 5
call GetMonHeader
call LoadFrontSpriteByMonIndex
call GBPalNormal
- FuncCoord 0, 13 ; $c4a4
- ld hl, Coord
+ hlCoord 0, 13
ld b, 2
ld c, $12
call TextBoxBorder
- FuncCoord 1, 15 ; $c4cd
- ld hl, Coord
+ hlCoord 1, 15
ld de, HallOfFameNoText
call PlaceString
- FuncCoord 16, 15 ; $c4dc
- ld hl, Coord
- ld de, $CD42
+ hlCoord 16, 15
+ ld de, wcd42
ld bc, $0103
call PrintNumber
ld b, BANK(Func_702f0)
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -2,82 +2,77 @@
; Check save file
call Func_5bff
xor a
- ld [$D08A],a
+ ld [wd08a],a
inc a
- ld [$D088],a
+ ld [wd088],a
call Func_609e
jr nc,.next0
; Predef 52 loads the save from SRAM to RAM
- ld a,$52
- call Predef
+ predef LoadSAV
.next0
ld c,20
call DelayFrames
xor a
- ld [$D12B],a
- ld hl,$CC2B
+ ld [W_ISLINKBATTLE],a
+ ld hl,wcc2b
ld [hli],a
ld [hli],a
ld [hli],a
ld [hl],a
- ld [$D07C],a
- ld hl,$D72E
+ ld [W_ANIMATIONID],a
+ ld hl,wd72e
res 6,[hl]
call ClearScreen
call GoPAL_SET_CF1C
call LoadTextBoxTilePatterns
call LoadFontTilePatterns
- ld hl,$D730
+ ld hl,wd730
set 6,[hl]
- ld a,[$D088]
+ ld a,[wd088]
cp a,1
jr z,.next1
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld b,6
ld c,13
call TextBoxBorder
- FuncCoord 2,2
- ld hl,Coord
+ hlCoord 2, 2
ld de,ContinueText
call PlaceString
jr .next2
.next1
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld b,4
ld c,13
call TextBoxBorder
- FuncCoord 2,2
- ld hl,Coord
+ hlCoord 2, 2
ld de,NewGameText
call PlaceString
.next2
- ld hl,$D730
+ ld hl,wd730
res 6,[hl]
call UpdateSprites ; OAM?
xor a
- ld [$CC26],a
- ld [$CC2A],a
- ld [$CC34],a
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
+ ld [wMenuJoypadPollCount],a
inc a
- ld [$CC25],a
+ ld [wTopMenuItemX],a
inc a
- ld [$CC24],a
+ ld [wTopMenuItemY],a
ld a,$B
- ld [$CC29],a
- ld a,[$D088]
- ld [$CC28],a
+ ld [wMenuWatchedKeys],a
+ ld a,[wd088]
+ ld [wMaxMenuItem],a
call HandleMenuInput
bit 1,a
jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement)
ld c,20
call DelayFrames
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
ld b,a
- ld a,[$D088]
+ ld a,[wd088]
cp a,2
jp z,.next3
inc b ; adjust MenuArrow_Counter
@@ -89,19 +84,19 @@
jp z,Func_5d52 ; if press_A on NewGame
call DisplayOptionMenu ; if press_a on Options
ld a,1
- ld [$D08A],a
+ ld [wd08a],a
jp .next0
.next4
call ContinueGame
- ld hl,$D126
+ ld hl,wd126
set 5,[hl]
.next6
xor a
- ld [H_NEWLYPRESSEDBUTTONS],a
- ld [H_NEWLYRELEASEDBUTTONS],a
- ld [H_CURRENTPRESSEDBUTTONS],a
- call GetJoypadState
- ld a,[H_CURRENTPRESSEDBUTTONS]
+ ld [hJoyPressed],a
+ ld [hJoyReleased],a
+ ld [hJoyHeld],a
+ call Joypad
+ ld a,[hJoyHeld]
bit 0,a
jr nz,.next5
bit 1,a
@@ -111,10 +106,10 @@
call GBPalWhiteOutWithDelay3
call ClearScreen
ld a,4
- ld [$D52A],a
+ ld [wd52a],a
ld c,10
call DelayFrames
- ld a,[$D5A2]
+ ld a,[wd5a2]
and a
jp z,Func_5d5f
ld a,[W_CURMAP] ; map ID
@@ -121,22 +116,22 @@
cp a,HALL_OF_FAME
jp nz,Func_5d5f
xor a
- ld [$D71A],a
- ld hl,$D732
+ ld [wd71a],a
+ ld hl,wd732
set 2,[hl]
call Func_62ce
jp Func_5d5f
Func_5bff: ; 5bff (1:5bff)
ld a,1
- ld [$D358],a
+ ld [wd358],a
ld a,3
- ld [$D355],a
+ ld [W_OPTIONS],a
ret
LinkMenu: ; 5c0a (1:5c0a)
xor a
- ld [$d358], a
- ld hl, $d72e
+ ld [wd358], a
+ ld hl, wd72e
set 6, [hl]
ld hl, TextTerminator_6b20 ; $6b20
call PrintText
@@ -143,20 +138,18 @@
call SaveScreenTilesToBuffer1
ld hl, WhereWouldYouLikeText
call PrintText
- FuncCoord 5, 5 ; $c409
- ld hl, Coord
+ hlCoord 5, 5
ld b, $6
ld c, $d
call TextBoxBorder
call UpdateSprites
- FuncCoord 7, 7 ; $c433
- ld hl, Coord
+ hlCoord 7, 7
ld de, TradeCenterText
call PlaceString
xor a
- ld [$cd37], a
- ld [$d72d], a
- ld hl, wTopMenuItemY ; $cc24
+ ld [wcd37], a
+ ld [wd72d], a
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $7
ld [hli], a
ld a, $6
@@ -176,19 +169,19 @@
add a
add a
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
add b
add $d0
- ld [$cc42], a
- ld [$cc43], a
+ ld [wcc42], a
+ ld [wcc43], a
.asm_5c66
call Func_2247
- ld a, [$cc3d]
+ ld a, [wcc3d]
ld b, a
and $f0
cp $d0
jr z, .asm_5c7d
- ld a, [$cc3e]
+ ld a, [wcc3e]
ld b, a
and $f0
cp $d0
@@ -197,12 +190,12 @@
ld a, b
and $c
jr nz, .asm_5c8b
- ld a, [$cc42]
+ ld a, [wcc42]
and $c
jr z, .asm_5c52
jr .asm_5ca1
.asm_5c8b
- ld a, [$cc42]
+ ld a, [wcc42]
and $c
jr z, .asm_5c98
ld a, [$ffaa]
@@ -210,9 +203,9 @@
jr z, .asm_5ca1
.asm_5c98
ld a, b
- ld [$cc42], a
+ ld [wcc42], a
and $3
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
.asm_5ca1
ld a, [$ffaa]
cp $2
@@ -225,10 +218,10 @@
ld b, $7f
ld c, $7f
ld d, $ec
- ld a, [$cc42]
+ ld a, [wcc42]
and $8
jr nz, .asm_5ccc
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $2
jr z, .asm_5ccc
ld c, d
@@ -239,58 +232,55 @@
ld c, d
.asm_5ccc
ld a, b
- FuncCoord 6, 7 ; $c432
- ld [Coord], a
+ Coorda 6, 7
ld a, c
- FuncCoord 6, 9 ; $c45a
- ld [Coord], a
+ Coorda 6, 9
ld a, d
- FuncCoord 6, 11 ; $c482
- ld [Coord], a
+ Coorda 6, 11
ld c, $28
call DelayFrames
call LoadScreenTilesFromBuffer1
- ld a, [$cc42]
+ ld a, [wcc42]
and $8
jr nz, .asm_5d2d
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $2
jr z, .asm_5d2d
xor a
- ld [$d700], a
- ld a, [wCurrentMenuItem] ; $cc26
+ ld [wd700], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
ld a, TRADE_CENTER
jr nz, .asm_5cfc
ld a, BATTLE_CENTER
.asm_5cfc
- ld [$d72d], a
+ ld [wd72d], a
ld hl, PleaseWaitText
call PrintText
ld c, $32
call DelayFrames
- ld hl, $d732
+ ld hl, wd732
res 1, [hl]
- ld a, [W_ANIMATIONID] ; $d07c
- ld [$d71a], a
+ ld a, [W_ANIMATIONID] ; W_ANIMATIONID
+ ld [wd71a], a
call Func_62ce
ld c, $14
call DelayFrames
xor a
- ld [wMenuJoypadPollCount], a ; $cc34
- ld [$cc42], a
+ ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount
+ ld [wcc42], a
inc a
- ld [W_ISLINKBATTLE], a ; $d12b
- ld [$cc47], a
+ ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
+ ld [wcc47], a
jr Func_5d5f
.asm_5d2d
xor a
- ld [wMenuJoypadPollCount], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount
call Delay3
call Func_72d7
ld hl, LinkCanceledText
call PrintText
- ld hl, $d72e
+ ld hl, wd72e
res 6, [hl]
ret
@@ -307,7 +297,7 @@
db "@"
Func_5d52: ; 5d52 (1:5d52)
- ld hl, $d732
+ ld hl, wd732
res 1, [hl]
call OakSpeech
ld c, $14
@@ -315,16 +305,16 @@
Func_5d5f: ; 5d5f (1:5d5f)
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
ld [$ffb5], a
- ld [$d72d], a
- ld hl, $d732
+ ld [wd72d], a
+ ld hl, wd732
set 0, [hl]
call ResetPlayerSpriteData
ld c, $14
call DelayFrames
- ld a, [$cc47]
+ ld a, [wcc47]
and a
ret nz
jp EnterMap
@@ -344,27 +334,21 @@
ContinueGame: ; 5db5 (1:5db5)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 4, 7 ; $c430
- ld hl, Coord
+ hlCoord 4, 7
ld b, $8
ld c, $e
call TextBoxBorder
- FuncCoord 5, 9 ; $c459
- ld hl, Coord
+ hlCoord 5, 9
ld de, SaveScreenInfoText
call PlaceString
- FuncCoord 12, 9 ; $c460
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 12, 9
+ ld de, wPlayerName ; wd158
call PlaceString
- FuncCoord 17, 11 ; $c48d
- ld hl, Coord
+ hlCoord 17, 11
call Func_5e2f
- FuncCoord 16, 13 ; $c4b4
- ld hl, Coord
+ hlCoord 16, 13
call Func_5e42
- FuncCoord 13, 15 ; $c4d9
- ld hl, Coord
+ hlCoord 13, 15
call Func_5e55
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -374,23 +358,23 @@
PrintSaveScreenText: ; 5def (1:5def)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, $c3a4
+ ld hl, wTileMap + $4
ld b, $8
ld c, $e
call TextBoxBorder
call LoadTextBoxTilePatterns
call UpdateSprites
- ld hl, $c3cd
+ ld hl, wTileMap + $2d
ld de, SaveScreenInfoText
call PlaceString
- ld hl, $c3d4
- ld de, W_PLAYERNAME
+ ld hl, wTileMap + $34
+ ld de, wPlayerName
call PlaceString
- ld hl, $c401
+ ld hl, wTileMap + $61
call Func_5e2f
- ld hl, $c428
+ ld hl, wTileMap + $88
call Func_5e42
- ld hl, $c44d
+ ld hl, wTileMap + $ad
call Func_5e55
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -403,27 +387,27 @@
ld b, $1
call CountSetBits
pop hl
- ld de, $d11e
+ ld de, wd11e
ld bc, $102
jp PrintNumber
Func_5e42: ; 5e42 (1:5e42)
push hl
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
pop hl
- ld de, $d11e
+ ld de, wd11e
ld bc, $103
jp PrintNumber
Func_5e55: ; 5e55 (1:5e55)
- ld de, $da41
+ ld de, W_PLAYTIMEHOURS + 1
ld bc, $103
call PrintNumber
ld [hl], $6d
inc hl
- ld de, $da43
+ ld de, W_PLAYTIMEMINUTES + 1
ld bc, $8102
jp PrintNumber
@@ -434,35 +418,28 @@
next "TIME@"
DisplayOptionMenu: ; 5e8a (1:5e8a)
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld b,3
ld c,18
call TextBoxBorder
- FuncCoord 0,5
- ld hl,Coord
+ hlCoord 0, 5
ld b,3
ld c,18
call TextBoxBorder
- FuncCoord 0,10
- ld hl,Coord
+ hlCoord 0, 10
ld b,3
ld c,18
call TextBoxBorder
- FuncCoord 1,1
- ld hl,Coord
+ hlCoord 1, 1
ld de,TextSpeedOptionText
call PlaceString
- FuncCoord 1,6
- ld hl,Coord
+ hlCoord 1, 6
ld de,BattleAnimationOptionText
call PlaceString
- FuncCoord 1,11
- ld hl,Coord
+ hlCoord 1, 11
ld de,BattleStyleOptionText
call PlaceString
- FuncCoord 2,16
- ld hl,Coord
+ hlCoord 2, 16
ld de,OptionMenuCancelText
call PlaceString
xor a
@@ -469,12 +446,12 @@
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
inc a
- ld [$d358],a
- ld [$cd40],a
+ ld [wd358],a
+ ld [wTrainerScreenY],a
ld a,3 ; text speed cursor Y coordinate
ld [wTopMenuItemY],a
call SetCursorPositionsFromOptions
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
ld [wTopMenuItemX],a
ld a,$01
ld [H_AUTOBGTRANSFERENABLED],a ; enable auto background transfer
@@ -483,7 +460,7 @@
call PlaceMenuCursor
call SetOptionsFromCursorPositions
.getJoypadStateLoop
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a,[$ffb5]
ld b,a
and a,%11111011 ; any key besides select pressed?
@@ -524,7 +501,7 @@
.downPressed
cp a,16
ld b,-13
- ld hl,$cd3d
+ ld hl,wWhichTrade
jr z,.updateMenuVariables
ld b,5
cp a,3
@@ -539,7 +516,7 @@
.upPressed
cp a,8
ld b,-5
- ld hl,$cd3d
+ ld hl,wWhichTrade
jr z,.updateMenuVariables
cp a,13
inc hl
@@ -558,17 +535,17 @@
call PlaceUnfilledArrowMenuCursor
jp .loop
.cursorInBattleAnimation
- ld a,[$cd3e] ; battle animation cursor X coordinate
+ ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate
xor a,$0b ; toggle between 1 and 10
- ld [$cd3e],a
+ ld [wTrainerEngageDistance],a
jp .eraseOldMenuCursor
.cursorInBattleStyle
- ld a,[$cd3f] ; battle style cursor X coordinate
+ ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate
xor a,$0b ; toggle between 1 and 10
- ld [$cd3f],a
+ ld [wTrainerFacingDirection],a
jp .eraseOldMenuCursor
.pressedLeftInTextSpeed
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
cp a,1
jr z,.updateTextSpeedXCoord
cp a,7
@@ -579,7 +556,7 @@
sub a,7
jr .updateTextSpeedXCoord
.pressedRightInTextSpeed
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
cp a,14
jr z,.updateTextSpeedXCoord
cp a,7
@@ -589,7 +566,7 @@
.fromFastToMedium
add a,6
.updateTextSpeedXCoord
- ld [$cd3d],a ; text speed cursor X coordinate
+ ld [wWhichTrade],a ; text speed cursor X coordinate
jp .eraseOldMenuCursor
TextSpeedOptionText: ; 5fc0 (1:5fc0)
@@ -610,7 +587,7 @@
; sets the options variable according to the current placement of the menu cursors in the options menu
SetOptionsFromCursorPositions: ; 601f (1:601f)
ld hl,TextSpeedOptionData
- ld a,[$cd3d] ; text speed cursor X coordinate
+ ld a,[wWhichTrade] ; text speed cursor X coordinate
ld c,a
.loop
ld a,[hli]
@@ -621,7 +598,7 @@
.textSpeedMatchFound
ld a,[hl]
ld d,a
- ld a,[$cd3e] ; battle animation cursor X coordinate
+ ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate
dec a
jr z,.battleAnimationOn
.battleAnimationOff
@@ -630,7 +607,7 @@
.battleAnimationOn
res 7,d
.checkBattleStyle
- ld a,[$cd3f] ; battle style cursor X coordinate
+ ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate
dec a
jr z,.battleStyleShift
.battleStyleSet
@@ -655,9 +632,8 @@
pop bc
dec hl
ld a,[hl]
- ld [$cd3d],a ; text speed cursor X coordinate
- FuncCoord 0,3
- ld hl,Coord
+ ld [wWhichTrade],a ; text speed cursor X coordinate
+ hlCoord 0, 3
call .placeUnfilledRightArrow
sla c
ld a,1 ; On
@@ -664,9 +640,8 @@
jr nc,.storeBattleAnimationCursorX
ld a,10 ; Off
.storeBattleAnimationCursorX
- ld [$cd3e],a ; battle animation cursor X coordinate
- FuncCoord 0,8
- ld hl,Coord
+ ld [wTrainerEngageDistance],a ; battle animation cursor X coordinate
+ hlCoord 0, 8
call .placeUnfilledRightArrow
sla c
ld a,1
@@ -673,13 +648,11 @@
jr nc,.storeBattleStyleCursorX
ld a,10
.storeBattleStyleCursorX
- ld [$cd3f],a ; battle style cursor X coordinate
- FuncCoord 0,13
- ld hl,Coord
+ ld [wTrainerFacingDirection],a ; battle style cursor X coordinate
+ hlCoord 0, 13
call .placeUnfilledRightArrow
; cursor in front of Cancel
- FuncCoord 0,16
- ld hl,Coord
+ hlCoord 0, 16
ld a,1
.placeUnfilledRightArrow
ld e,a
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -1,37 +1,36 @@
-AskForMonNickname: ; 64eb (1:64eb)
+AskName: ; 64eb (1:64eb)
call SaveScreenTilesToBuffer1
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
ld hl, wTileMap
ld b, $4
ld c, $b
call z, ClearScreenArea ; only if in wild batle
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
call GetMonName
ld hl, DoYouWantToNicknameText
call PrintText
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
+ hlCoord 14, 7
ld bc, $80f
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
pop hl
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_654c
- ld a, [$cfcb]
+ ld a, [wcfcb]
push af
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
push hl
ld a, $2
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jr nz, .asm_653e
call Func_3e08
@@ -39,14 +38,14 @@
call LoadScreenTilesFromBuffer1
pop hl
pop af
- ld [$cfcb], a
- ld a, [$cf4b]
+ ld [wcfcb], a
+ ld a, [wcf4b]
cp $50
ret nz
.asm_654c
ld d, h
ld e, l
- ld hl, $cd6d
+ ld hl, wcd6d
ld bc, $000b
jp CopyData
@@ -55,25 +54,25 @@
db "@"
Func_655c: ; 655c (1:655c)
- ld hl, $cee9
+ ld hl, wHPBarMaxHP
xor a
- ld [$cfcb], a
+ ld [wcfcb], a
ld a, $2
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
call GBPalWhiteOutWithDelay3
call Func_3dbe
call LoadGBPal
- ld a, [$cf4b]
+ ld a, [wcf4b]
cp $50
jr z, .asm_6594
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
ld bc, $b
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
ld e, l
ld d, h
- ld hl, $cee9
+ ld hl, wHPBarMaxHP
ld bc, $b
call CopyData
and a
@@ -84,7 +83,7 @@
DisplayNamingScreen: ; 6596 (1:6596)
push hl
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
call ClearScreen
@@ -94,34 +93,33 @@
call LoadHpBarAndStatusTilePatterns
call LoadEDTile
callba Func_7176c
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld b, $9
ld c, $12
call TextBoxBorder
call PrintNamingText
ld a, $3
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld [wLastMenuItem], a ; $cc2a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $ff
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $7
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $50
- ld [$cf4b], a
+ ld [wcf4b], a
xor a
- ld hl, $ceea
+ ld hl, wHPBarMaxHP + 1
ld [hli], a
ld [hli], a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
.asm_65ed
call PrintAlphabet
call GBPalNormal
.asm_65f3
- ld a, [$ceea]
+ ld a, [wHPBarMaxHP + 1]
and a
jr nz, .asm_662d
call Func_680e
@@ -128,13 +126,13 @@
.asm_65fc
call PlaceMenuCursor
.asm_65ff
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
push af
callba AnimatePartyMon_ForceSpeed1
pop af
- ld [wCurrentMenuItem], a ; $cc26
- call GetJoypadStateLowSensitivity
- ld a, [H_NEWLYPRESSEDBUTTONS]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ call JoypadLowSensitivity
+ ld a, [hJoyPressed]
and a
jr z, .asm_65ff
ld hl, .unknownPointerTable_665e ; $665e
@@ -158,19 +156,19 @@
jp [hl]
.asm_662d
pop de
- ld hl, $cf4b
+ ld hl, wcf4b
ld bc, $b
call CopyData
call GBPalWhiteOutWithDelay3
call ClearScreen
- call CleanLCD_OAM
+ call ClearSprites
call GoPAL_SET_CF1C
call GBPalNormal
xor a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
- ld hl, $d730
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+ ld hl, wd730
res 6, [hl]
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jp z, LoadTextBoxTilePatterns
ld hl, Func_3ee5b
@@ -200,38 +198,38 @@
ld de, .asm_65ed ; $65ed
push de
.asm_6683
- ld a, [$ceeb]
+ ld a, [wHPBarOldHP]
xor $1
- ld [$ceeb], a
+ ld [wHPBarOldHP], a
ret
.asm_668c
ld a, $1
- ld [$ceea], a
+ ld [wHPBarMaxHP + 1], a
ret
.asm_6692
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $5
jr nz, .asm_66a0
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
cp $11
jr z, .asm_668c
.asm_66a0
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $6
jr nz, .asm_66ae
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
cp $1
jr z, .asm_667e
.asm_66ae
- ld hl, wMenuCursorLocation ; $cc30
+ ld hl, wMenuCursorLocation ; wMenuCursorLocation
ld a, [hli]
ld h, [hl]
ld l, a
inc hl
ld a, [hl]
- ld [$ceed], a
+ ld [wHPBarNewHP], a
call CalcStringLength
- ld a, [$ceed]
+ ld a, [wHPBarNewHP]
cp $e5
ld de, Dakutens ; $6885
jr z, .asm_66e3
@@ -238,14 +236,14 @@
cp $e4
ld de, Handakutens ; $68d6
jr z, .asm_66e3
- ld a, [$d07d]
+ ld a, [wd07d]
cp $2
jr nc, .checkMonNameLength
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
cp $7 ; max length of player/rival names
jr .checkNameLength
.checkMonNameLength
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
cp $a ; max length of pokemon nicknames
.checkNameLength
jr c, .addLetter
@@ -257,7 +255,7 @@
ret nc
dec hl
.addLetter
- ld a, [$ceed]
+ ld a, [wHPBarNewHP]
ld [hli], a
ld [hl], $50
ld a, (SFX_02_40 - SFX_Headers_02) / 3
@@ -264,7 +262,7 @@
call PlaySound
ret
.deleteLetter
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
and a
ret z
call CalcStringLength
@@ -272,10 +270,10 @@
ld [hl], $50
ret
.asm_6702
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $6
ret z
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
cp $11
jp z, .asm_6714
inc a
@@ -285,10 +283,10 @@
ld a, $1
jr .asm_6755
.asm_6718
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $6
ret z
- ld a, [wTopMenuItemX] ; $cc25
+ ld a, [wTopMenuItemX] ; wTopMenuItemX
dec a
jp z, .asm_6728
dec a
@@ -297,23 +295,23 @@
ld a, $11
jr .asm_6755
.asm_672c
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
dec a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
and a
ret nz
ld a, $6
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $1
jr .asm_6755
.asm_673e
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
inc a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
cp $7
jr nz, .asm_6750
ld a, $1
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
jr .asm_6755
.asm_6750
cp $6
@@ -320,12 +318,12 @@
ret nz
ld a, $1
.asm_6755
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
jp EraseMenuCursor
LoadEDTile: ; 675b (1:675b)
ld de, ED_Tile
- ld hl, $8f00
+ ld hl, vFont + $700
ld bc, $1
jp CopyVideoDataDouble
@@ -335,14 +333,13 @@
PrintAlphabet: ; 676f (1:676f)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$ceeb]
+ ld a, [wHPBarOldHP]
and a
ld de, LowerCaseAlphabet ; $679e
jr nz, .asm_677e
ld de, UpperCaseAlphabet ; $67d6
.asm_677e
- FuncCoord 2, 5 ; $c406
- ld hl, Coord
+ hlCoord 2, 5
ld bc, $509
.asm_6784
push bc
@@ -372,18 +369,15 @@
Func_680e: ; 680e (1:680e)
call CalcStringLength
ld a, c
- ld [$cee9], a
- FuncCoord 10, 2 ; $c3d2
- ld hl, Coord
+ ld [wHPBarMaxHP], a
+ hlCoord 10, 2
ld bc, $10a
call ClearScreenArea
- FuncCoord 10, 2 ; $c3d2
- ld hl, Coord
- ld de, $cf4b
+ hlCoord 10, 2
+ ld de, wcf4b
call PlaceString
- FuncCoord 10, 3 ; $c3e6
- ld hl, Coord
- ld a, [$d07d]
+ hlCoord 10, 3
+ ld a, [wd07d]
cp $2
jr nc, .asm_6835
ld b, $7
@@ -396,9 +390,9 @@
ld [hli], a
dec b
jr nz, .asm_6839
- ld a, [$d07d]
+ ld a, [wd07d]
cp $2
- ld a, [$cee9]
+ ld a, [wHPBarMaxHP]
jr nc, .asm_684b
cp $7
jr .asm_684d
@@ -408,10 +402,10 @@
jr nz, .asm_6867
call EraseMenuCursor
ld a, $11
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
ld a, $5
- ld [wCurrentMenuItem], a ; $cc26
- ld a, [$d07d]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld a, [wd07d]
cp $2
ld a, $9
jr nc, .asm_6867
@@ -419,8 +413,7 @@
.asm_6867
ld c, a
ld b, $0
- FuncCoord 10, 3 ; $c3e6
- ld hl, Coord
+ hlCoord 10, 3
add hl, bc
ld [hl], $77
ret
@@ -436,7 +429,7 @@
ret nc
inc hl
ld a, [hl]
- ld [$ceed], a
+ ld [wHPBarNewHP], a
ret
Dakutens: ; 6885 (1:6885)
@@ -455,9 +448,9 @@
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
db $ff
-; calculates the length of the string at $cf4b and stores it in c
+; calculates the length of the string at wcf4b and stores it in c
CalcStringLength: ; 68eb (1:68eb)
- ld hl, $cf4b
+ ld hl, wcf4b
ld c, $0
.asm_68f0
ld a, [hl]
@@ -468,9 +461,8 @@
jr .asm_68f0
PrintNamingText: ; 68f8 (1:68f8)
- FuncCoord 0, 1 ; $c3b4
- ld hl, Coord
- ld a, [$d07d]
+ hlCoord 0, 1
+ ld a, [wd07d]
ld de, YourTextString ; $693f
and a
jr z, .notNickname
@@ -477,21 +469,19 @@
ld de, RivalsTextString ; $6945
dec a
jr z, .notNickname
- ld a, [$cf91]
- ld [$cd5d], a
+ ld a, [wcf91]
+ ld [wcd5d], a
push af
callba Func_71882
pop af
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
- FuncCoord 4, 1 ; $c3b8
- ld hl, Coord
+ hlCoord 4, 1
call PlaceString
ld hl, $1
add hl, bc
ld [hl], $c9
- FuncCoord 1, 3 ; $c3dd
- ld hl, Coord
+ hlCoord 1, 3
ld de, NicknameTextString ; $6953
jr .placeString
.notNickname
--- a/engine/menu/oaks_pc.asm
+++ b/engine/menu/oaks_pc.asm
@@ -5,11 +5,10 @@
ld hl, GetDexRatedText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_1e932
- ld a, $56
- call Predef ; indirect jump to DisplayDexRating (44169 (11:4169))
+ predef DisplayDexRating
.asm_1e932
ld hl, ClosedOaksPCText
call PrintText
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -1,4 +1,4 @@
-; [$D07D] = menu type / message ID
+; [wd07d] = menu type / message ID
; if less than $F0, it is a menu type
; menu types:
; 00: normal pokemon menu (e.g. Start menu)
@@ -25,18 +25,17 @@
callba Func_71791 ; load pokemon icon graphics
RedrawPartyMenu_: ; 12ce3 (4:6ce3)
- ld a,[$D07D]
+ ld a,[wd07d]
cp a,$04
jp z,.printMessage
call ErasePartyMenuCursors
- callba SendBlkPacket_PartyMenu ; loads some data to $cf2e
- FuncCoord 3,0
- ld hl,Coord
- ld de,W_PARTYMON1
+ callba SendBlkPacket_PartyMenu ; loads some data to wcf2e
+ hlCoord 3, 0
+ ld de,wPartySpecies
xor a
ld c,a
ld [$FF8C],a ; loop counter
- ld [$CF2D],a
+ ld [wcf2d],a
.loop
ld a,[de]
cp a,$FF ; reached the terminator?
@@ -46,7 +45,7 @@
push hl
ld a,c
push hl
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
call PlaceString ; print the pokemon's name
@@ -58,7 +57,7 @@
call LoadMonData
pop hl
push hl
- ld a,[$CC35]
+ ld a,[wcc35]
and a ; is the player swapping pokemon positions?
jr z,.skipUnfilledRightArrow
; if the player is swapping pokemon positions
@@ -76,7 +75,7 @@
inc hl
inc hl
.skipUnfilledRightArrow
- ld a,[$D07D] ; menu type
+ ld a,[wd07d] ; menu type
cp a,$03
jr z,.teachMoveMenu
cp a,$05
@@ -84,7 +83,7 @@
push hl
ld bc,14 ; 14 columns to the right
add hl,bc
- ld de,$CF9C
+ ld de,wcf9c
call PrintStatusCondition
pop hl
push hl
@@ -93,8 +92,7 @@
set 0,a
ld [$FFF6],a
add hl,bc
- ld a,$60
- call Predef ; draw HP bar and prints current / max HP
+ predef Func_128f6 ; draw HP bar and prints current / max HP
ld a,[$FFF6]
res 0,a
ld [$FFF6],a
@@ -103,8 +101,7 @@
jr .printLevel
.teachMoveMenu
push hl
- ld a,$43
- call Predef ; check if the pokemon can learn the move
+ predef CanLearnTM ; check if the pokemon can learn the move
pop hl
ld de,.ableToLearnMoveText
ld a,c
@@ -137,25 +134,25 @@
push hl
ld hl,EvosMovesPointerTable
ld b,0
- ld a,[$CF98] ; pokemon ID
+ ld a,[wcf98] ; pokemon ID
dec a
add a
rl b
ld c,a
add hl,bc
- ld de,$CD6D
+ ld de,wcd6d
ld a,BANK(EvosMovesPointerTable)
ld bc,2
call FarCopyData
- ld hl,$CD6D
+ ld hl,wcd6d
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,$CD6D
+ ld de,wcd6d
ld a,BANK(EvosMovesPointerTable)
ld bc,13
call FarCopyData
- ld hl,$CD6D
+ ld hl,wcd6d
ld de,.notAbleToEvolveText
; loop through the pokemon's evolution entries
.checkEvolutionsLoop
@@ -170,7 +167,7 @@
dec hl
dec hl
ld b,[hl]
- ld a,[$D156] ; evolution stone item ID
+ ld a,[wd156] ; evolution stone item ID
inc hl
inc hl
inc hl
@@ -194,12 +191,12 @@
ld b,$0A
call GoPAL_SET
.printMessage
- ld hl,$D730
+ ld hl,wd730
ld a,[hl]
push af
push hl
set 6,[hl] ; turn off letter printing delay
- ld a,[$D07D] ; message ID
+ ld a,[wd07d] ; message ID
cp a,$F0
jr nc,.printItemUseMessage
add a
@@ -230,8 +227,8 @@
ld h,[hl]
ld l,a
push hl
- ld a,[$CF06]
- ld hl,W_PARTYMON1NAME
+ ld a,[wcf06]
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
call PrintText
@@ -315,8 +312,8 @@
db "@"
SetPartyMenuHealthBarColor: ; 12ec7 (4:6ec7)
- ld hl, $cf1f
- ld a, [$cf2d]
+ ld hl, wcf1f
+ ld a, [wcf2d]
ld c, a
ld b, $0
add hl, bc
@@ -323,6 +320,6 @@
call GetHealthBarColor
ld b, $fc
call GoPAL_SET
- ld hl, $cf2d
+ ld hl, wcf2d
inc [hl]
ret
--- a/engine/menu/pc.asm
+++ b/engine/menu/pc.asm
@@ -74,7 +74,7 @@
ld a, (SFX_02_47 - SFX_Headers_02) / 3
call PlaySound ;XXX: play sound or stop music
call WaitForSoundToFinish ;XXX: wait for sound to be done
- ld a, [$D7F1] ;has to do with having met Bill
+ ld a, [wd7f1] ;has to do with having met Bill
bit 0, a
jr nz, .billsPC ;if you've met bill, use that bill's instead of someone's
ld hl, AccessedSomeonesPCText
@@ -86,7 +86,7 @@
callba BillsPC_
ReloadMainMenu: ; 17f06 (5:7f06)
xor a
- ld [$CC3C], a
+ ld [wcc3c], a
call ReloadMapData
call UpdateSprites ;XXX: moves sprites
jp PCMainMenu
@@ -117,7 +117,7 @@
; removes one of the specified item ID [$FFdb] from bag (if existent)
RemoveItemByID: ; 17f37 (5:7f37)
- ld hl, wBagItems ; $d31e
+ ld hl, wBagItems ; wd31e
ld a, [$ffdb]
ld b, a
xor a
@@ -135,8 +135,8 @@
jr .asm_17f40
.asm_17f4f
ld a, $1
- ld [$cf96], a
+ ld [wcf96], a
ld a, [$ffdc]
- ld [wWhichPokemon], a ; $cf92
- ld hl, wNumBagItems ; $d31d
+ ld [wWhichPokemon], a ; wWhichPokemon
+ ld hl, wNumBagItems ; wNumBagItems
jp RemoveItemFromInventory
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -1,12 +1,12 @@
PlayerPC: ; 78e6 (1:78e6)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld a, ITEM_NAME
ld [W_LISTTYPE], a
call SaveScreenTilesToBuffer1
xor a
- ld [$cc2c], a
- ld [$ccd3], a
+ ld [wcc2c], a
+ ld [wccd3], a
ld a, [wFlags_0xcd60]
bit 3, a
jr nz, Func_790c
@@ -16,8 +16,8 @@
call PrintText
Func_790c: ; 790c (1:790c)
- ld a, [$ccd3]
- ld [wCurrentMenuItem], a ; $cc26
+ ld a, [wccd3]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld hl, wFlags_0xcd60
set 5, [hl]
call LoadScreenTilesFromBuffer2
@@ -26,11 +26,10 @@
ld c, $e
call TextBoxBorder
call UpdateSprites
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, PlayersPCMenuEntries ; $7af5
call PlaceString
- ld hl, wTopMenuItemY ; $cc24
+ ld hl, wTopMenuItemY ; wTopMenuItemY
ld a, $2
ld [hli], a
dec a
@@ -43,10 +42,10 @@
ld [hli], a
xor a
ld [hl], a
- ld hl, wListScrollOffset ; $cc36
+ ld hl, wListScrollOffset ; wcc36
ld [hli], a
ld [hl], a
- ld [wPlayerMonNumber], a ; $cc2f
+ ld [wPlayerMonNumber], a ; wPlayerMonNumber
ld hl, WhatDoYouWantText
call PrintText
call HandleMenuInput
@@ -53,8 +52,8 @@
bit 1, a
jp nz, Func_796d
call PlaceUnfilledArrowMenuCursor
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$ccd3], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wccd3], a
and a
jp z, Func_7a12
dec a
@@ -74,19 +73,19 @@
res 5, [hl]
call LoadScreenTilesFromBuffer2
xor a
- ld [wListScrollOffset], a ; $cc36
- ld [$cc2c], a
- ld hl, $d730
+ ld [wListScrollOffset], a ; wcc36
+ ld [wcc2c], a
+ ld hl, wd730
res 6, [hl]
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ret
Func_7995: ; 7995 (1:7995)
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld a, [wNumBagItems] ; $d31d
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld a, [wNumBagItems] ; wNumBagItems
and a
jr nz, Func_79ab
ld hl, NothingToDepositText
@@ -96,21 +95,21 @@
Func_79ab: ; 79ab (1:79ab)
ld hl, WhatToDepositText
call PrintText
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
ld a, $1
- ld [$cf96], a
- ld a, [$d124]
+ ld [wcf96], a
+ ld a, [wd124]
and a
jr nz, .asm_79e7
ld hl, DepositHowManyText
@@ -119,7 +118,7 @@
cp $ff
jp z, Func_79ab
.asm_79e7
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
call AddItemToInventory
jr c, .asm_79f8
ld hl, NoRoomToStoreText
@@ -126,7 +125,7 @@
call PrintText
jp Func_79ab
.asm_79f8
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -138,9 +137,9 @@
Func_7a12: ; 7a12 (1:7a12)
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld a, [wNumBoxItems] ; $d53a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld a, [wNumBoxItems] ; wNumBoxItems
and a
jr nz, Func_7a28
ld hl, NothingStoredText
@@ -150,21 +149,21 @@
Func_7a28: ; 7a28 (1:7a28)
ld hl, WhatToWithdrawText
call PrintText
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
ld a, $1
- ld [$cf96], a
- ld a, [$d124]
+ ld [wcf96], a
+ ld a, [wd124]
and a
jr nz, .asm_7a64
ld hl, WithdrawHowManyText
@@ -173,7 +172,7 @@
cp $ff
jp z, Func_7a28
.asm_7a64
- ld hl, wNumBagItems ; $d31d
+ ld hl, wNumBagItems ; wNumBagItems
call AddItemToInventory
jr c, .asm_7a75
ld hl, CantCarryMoreText
@@ -180,7 +179,7 @@
call PrintText
jp Func_7a28
.asm_7a75
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -192,9 +191,9 @@
Func_7a8f: ; 7a8f (1:7a8f)
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld a, [wNumBoxItems] ; $d53a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld a, [wNumBoxItems] ; wNumBoxItems
and a
jr nz, Func_7aa5
ld hl, NothingStoredText
@@ -204,15 +203,15 @@
Func_7aa5: ; 7aa5 (1:7aa5)
ld hl, WhatToTossText
call PrintText
- ld hl, wNumBoxItems ; $d53a
+ ld hl, wNumBoxItems ; wNumBoxItems
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
+ ld [wcf93], a
ld a, $3
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
push hl
call DisplayListMenuID
pop hl
@@ -221,11 +220,11 @@
call IsKeyItem
pop hl
ld a, $1
- ld [$cf96], a
- ld a, [$d124]
+ ld [wcf96], a
+ ld a, [wd124]
and a
jr nz, .asm_7aef
- ld a, [$cf91]
+ ld a, [wcf91]
call IsItemHM
jr c, .asm_7aef
push hl
--- a/engine/menu/pokedex.asm
+++ b/engine/menu/pokedex.asm
@@ -1,4 +1,4 @@
-DisplayPokedexMenu_: ; 40000 (10:4000)
+ShowPokedexMenu: ; 40000 (10:4000)
call GBPalWhiteOut
call ClearScreen
call UpdateSprites ; move sprites
@@ -9,7 +9,7 @@
ld [wListScrollOffset],a
ld [wLastMenuItem],a
inc a
- ld [$d11e],a
+ ld [wd11e],a
ld [$ffb7],a
.setUpGraphics
ld b,$08
@@ -22,7 +22,7 @@
xor a
ld [hli],a ; top menu item X
inc a
- ld [$cc37],a
+ ld [wcc37],a
inc hl
inc hl
ld a,6
@@ -32,12 +32,12 @@
jr c,.goToSideMenu ; if the player chose a pokemon from the list
.exitPokedex
xor a
- ld [$cc37],a
+ ld [wcc37],a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
ld [$ffb7],a
- ld [$cd3a],a
- ld [$cd3b],a
+ ld [wcd3a],a
+ ld [wcd3b],a
pop af
ld [wListScrollOffset],a
call GBPalWhiteOutWithDelay3
@@ -68,10 +68,10 @@
push af
add b
inc a
- ld [$d11e],a
- ld a,[$d11e]
+ ld [wd11e],a
+ ld a,[wd11e]
push af
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
push af
ld hl,wPokedexSeen
call IsPokemonBitSet
@@ -91,7 +91,7 @@
ld [hli],a ; menu watched keys (A button and B button)
xor a
ld [hli],a ; old menu item ID
- ld [$cc37],a
+ ld [wcc37],a
.handleMenuInput
call HandleMenuInput
bit 1,a ; was the B button pressed?
@@ -108,9 +108,9 @@
ld b,1
.exitSideMenu
pop af
- ld [$cd3d],a
+ ld [wWhichTrade],a
pop af
- ld [$d11e],a
+ ld [wd11e],a
pop af
ld [wListScrollOffset],a
pop af
@@ -118,8 +118,7 @@
pop af
ld [wCurrentMenuItem],a
push bc
- FuncCoord 0,3
- ld hl,Coord
+ hlCoord 0, 3
ld de,20
ld bc,$7f0d ; 13 blank tiles
call DrawTileLine ; cover up the menu cursor in the pokemon list
@@ -127,8 +126,7 @@
ret
.buttonBPressed
push bc
- FuncCoord 15,10
- ld hl,Coord
+ hlCoord 15, 10
ld de,20
ld bc,$7f07 ; 7 blank tiles
call DrawTileLine ; cover up the menu cursor in the side menu
@@ -140,13 +138,12 @@
jr .exitSideMenu
; play pokemon cry
.choseCry
- ld a,[$d11e]
+ ld a,[wd11e]
call GetCryData ; get cry data
call PlaySound ; play sound
jr .handleMenuInput
.choseArea
- ld a,$4a
- call Predef ; display pokemon areas
+ predef LoadTownMap_Nest ; display pokemon areas
ld b,0
jr .exitSideMenu
@@ -156,8 +153,7 @@
xor a
ld [H_AUTOBGTRANSFERENABLED],a
; draw the horizontal line separating the seen and owned amounts from the menu
- FuncCoord 15,8
- ld hl,Coord
+ hlCoord 15, 8
ld a,$7a ; horizontal line tile
ld [hli],a
ld [hli],a
@@ -164,45 +160,36 @@
ld [hli],a
ld [hli],a
ld [hli],a
- FuncCoord 14,0
- ld hl,Coord
+ hlCoord 14, 0
ld [hl],$71 ; vertical line tile
- FuncCoord 14,1
- ld hl,Coord
+ hlCoord 14, 1
call DrawPokedexVerticalLine
- FuncCoord 14,9
- ld hl,Coord
+ hlCoord 14, 9
call DrawPokedexVerticalLine
ld hl,wPokedexSeen
ld b,wPokedexSeenEnd - wPokedexSeen
call CountSetBits
- ld de,$d11e
- FuncCoord 16,3
- ld hl,Coord
+ ld de,wd11e
+ hlCoord 16, 3
ld bc,$0103
call PrintNumber ; print number of seen pokemon
ld hl,wPokedexOwned
ld b,wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld de,$d11e
- FuncCoord 16,6
- ld hl,Coord
+ ld de,wd11e
+ hlCoord 16, 6
ld bc,$0103
call PrintNumber ; print number of owned pokemon
- FuncCoord 16,2
- ld hl,Coord
+ hlCoord 16, 2
ld de,PokedexSeenText
call PlaceString
- FuncCoord 16,5
- ld hl,Coord
+ hlCoord 16, 5
ld de,PokedexOwnText
call PlaceString
- FuncCoord 1,1
- ld hl,Coord
+ hlCoord 1, 1
ld de,PokedexContentsText
call PlaceString
- FuncCoord 16,10
- ld hl,Coord
+ hlCoord 16, 10
ld de,PokedexMenuItemsText
call PlaceString
; find the highest pokedex number among the pokemon the player has seen
@@ -220,20 +207,18 @@
jr .maxSeenPokemonLoop
.storeMaxSeenPokemon
ld a,b
- ld [$cd3d],a ; max seen pokemon
+ ld [wWhichTrade],a ; max seen pokemon
.loop
xor a
ld [H_AUTOBGTRANSFERENABLED],a
- FuncCoord 4,2
- ld hl,Coord
+ hlCoord 4, 2
ld bc,$0e0a
call ClearScreenArea
- FuncCoord 1,3
- ld hl,Coord
+ hlCoord 1, 3
ld a,[wListScrollOffset]
- ld [$d11e],a
+ ld [wd11e],a
ld d,7
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,7
jr nc,.printPokemonLoop
ld d,a
@@ -242,15 +227,15 @@
; loop to print pokemon pokedex numbers and names
; if the player has owned the pokemon, it puts a pokeball beside the name
.printPokemonLoop
- ld a,[$d11e]
+ ld a,[wd11e]
inc a
- ld [$d11e],a
+ ld [wd11e],a
push af
push de
push hl
ld de,-20
add hl,de
- ld de,$d11e
+ ld de,wd11e
ld bc,$8103
call PrintNumber ; print the pokedex number
ld de,20
@@ -285,7 +270,7 @@
add hl,bc
pop de
pop af
- ld [$d11e],a
+ ld [wd11e],a
dec d
jr nz,.printPokemonLoop
ld a,01
@@ -309,7 +294,7 @@
bit 7,a ; was Down pressed?
jr z,.checkIfRightPressed
.downPressed ; scroll down one row
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,7
jp c,.loop
sub a,7
@@ -324,7 +309,7 @@
bit 4,a ; was Right pressed?
jr z,.checkIfLeftPressed
.rightPressed ; scroll down 7 rows
- ld a,[$cd3d]
+ ld a,[wWhichTrade]
cp a,7
jp c,.loop
sub a,6
@@ -385,15 +370,14 @@
; tests if a pokemon's bit is set in the seen or owned pokemon bit fields
; INPUT:
-; [$d11e] = pokedex number
+; [wd11e] = pokedex number
; hl = address of bit field
IsPokemonBitSet: ; 402c2 (10:42c2)
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
ld c,a
ld b,2
- ld a,$10
- call Predef
+ predef FlagActionPredef
ld a,c
and a
ret
@@ -407,67 +391,56 @@
; function to display pokedex data from inside the pokedex
ShowPokedexDataInternal: ; 402e2 (10:42e2)
- ld hl,$d72c
+ ld hl,wd72c
set 1,[hl]
ld a,$33 ; 3/7 volume
ld [$ff24],a
call GBPalWhiteOut ; zero all palettes
call ClearScreen
- ld a,[$d11e] ; pokemon ID
- ld [$cf91],a
+ ld a,[wd11e] ; pokemon ID
+ ld [wcf91],a
push af
ld b,04
call GoPAL_SET
pop af
- ld [$d11e],a
+ ld [wd11e],a
ld a,[$ffd7]
push af
xor a
ld [$ffd7],a
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
ld de,1
ld bc,$6414
call DrawTileLine ; draw top border
- FuncCoord 0,17
- ld hl,Coord
+ hlCoord 0, 17
ld b,$6f
call DrawTileLine ; draw bottom border
- FuncCoord 0,1
- ld hl,Coord
+ hlCoord 0, 1
ld de,20
ld bc,$6610
call DrawTileLine ; draw left border
- FuncCoord 19,1
- ld hl,Coord
+ hlCoord 19, 1
ld b,$67
call DrawTileLine ; draw right border
- FuncCoord 0,0
ld a,$63 ; upper left corner tile
- ld [Coord],a
- FuncCoord 19,0
+ Coorda 0, 0
ld a,$65 ; upper right corner tile
- ld [Coord],a
- FuncCoord 0,17
+ Coorda 19, 0
ld a,$6c ; lower left corner tile
- ld [Coord],a
- FuncCoord 19,17
+ Coorda 0, 17
ld a,$6e ; lower right corner tile
- ld [Coord],a
- FuncCoord 0,9
- ld hl,Coord
+ Coorda 19, 17
+ hlCoord 0, 9
ld de,PokedexDataDividerLine
call PlaceString ; draw horizontal divider line
- FuncCoord 9,6
- ld hl,Coord
+ hlCoord 9, 6
ld de,HeightWeightText
call PlaceString
call GetMonName
- FuncCoord 9,2
- ld hl,Coord
+ hlCoord 9, 2
call PlaceString
ld hl,PokedexEntryPointers
- ld a,[$d11e]
+ ld a,[wd11e]
dec a
ld e,a
ld d,0
@@ -476,30 +449,28 @@
ld a,[hli]
ld e,a
ld d,[hl] ; de = address of pokedex entry
- FuncCoord 9,4
- ld hl,Coord
+ hlCoord 9, 4
call PlaceString ; print species name
ld h,b
ld l,c
push de
- ld a,[$d11e]
+ ld a,[wd11e]
push af
call IndexToPokedex
- FuncCoord 2,8
- ld hl,Coord
+ hlCoord 2, 8
ld a, "№"
ld [hli],a
ld a,$f2
ld [hli],a
- ld de,$d11e
+ ld de,wd11e
ld bc,$8103
call PrintNumber ; print pokedex number
ld hl,wPokedexOwned
call IsPokemonBitSet
pop af
- ld [$d11e],a
- ld a,[$cf91]
- ld [$d0b5],a
+ ld [wd11e],a
+ ld a,[wcf91]
+ ld [wd0b5],a
pop de
push af
push bc
@@ -508,10 +479,9 @@
call Delay3
call GBPalNormal
call GetMonHeader ; load pokemon picture location
- FuncCoord 1,1
- ld hl,Coord
+ hlCoord 1, 1
call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture
- ld a,[$cf91]
+ ld a,[wcf91]
call PlayCry ; play pokemon cry
pop hl
pop de
@@ -522,8 +492,7 @@
jp z,.waitForButtonPress ; if the pokemon has not been owned, don't print the height, weight, or description
inc de ; de = address of feet (height)
ld a,[de] ; reads feet, but a is overwritten without being used
- FuncCoord 12,6
- ld hl,Coord
+ hlCoord 12, 6
ld bc,$0102
call PrintNumber ; print feet (height)
ld a,$60 ; feet symbol tile (one tick)
@@ -530,8 +499,7 @@
ld [hl],a
inc de
inc de ; de = address of inches (height)
- FuncCoord 15,6
- ld hl,Coord
+ hlCoord 15, 6
ld bc,$8102
call PrintNumber ; print inches (height)
ld a,$61 ; inches symbol tile (two ticks)
@@ -552,13 +520,11 @@
dec de
ld a,[de] ; a = lower byte of weight
ld [hl],a ; store lower byte of weight in [$ff8c]
- FuncCoord 11,8
ld de,$ff8b
- ld hl,Coord
+ hlCoord 11, 8
ld bc,$0205 ; no leading zeroes, right-aligned, 2 bytes, 5 digits
call PrintNumber ; print weight
- FuncCoord 14,8
- ld hl,Coord
+ hlCoord 14, 8
ld a,[$ff8c]
sub a,10
ld a,[$ff8b]
@@ -576,8 +542,7 @@
ld [$ff8b],a ; restore original value of [$ff8b]
pop hl
inc hl ; hl = address of pokedex description text
- FuncCoord 1,11
- ld bc,Coord
+ bcCoord 1, 11
ld a,2
ld [$fff4],a
call TextCommandProcessor ; print pokedex description text
@@ -584,7 +549,7 @@
xor a
ld [$fff4],a
.waitForButtonPress
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a,[$ffb5]
and a,%00000011 ; A button and B button
jr z,.waitForButtonPress
@@ -595,7 +560,7 @@
call GoPAL_SET_CF1C
call LoadTextBoxTilePatterns
call GBPalNormal
- ld hl,$d72c
+ ld hl,wd72c
res 1,[hl]
ld a,$77 ; max volume
ld [$ff24],a
@@ -637,10 +602,10 @@
INCLUDE "data/pokedex_entries.asm"
PokedexToIndex: ; 40ff9 (10:4ff9)
- ; converts the Pokédex number at $D11E to an index
+ ; converts the Pokédex number at wd11e to an index
push bc
push hl
- ld a,[$D11E]
+ ld a,[wd11e]
ld b,a
ld c,0
ld hl,PokedexOrder
@@ -652,16 +617,16 @@
jr nz,.loop
ld a,c
- ld [$D11E],a
+ ld [wd11e],a
pop hl
pop bc
ret
IndexToPokedex: ; 41010 (10:5010)
- ; converts the indexédex number at $D11E to a Pokédex number
+ ; converts the indexédex number at wd11e to a Pokédex number
push bc
push hl
- ld a,[$D11E]
+ ld a,[wd11e]
dec a
ld hl,PokedexOrder
ld b,0
@@ -668,7 +633,7 @@
ld c,a
add hl,bc
ld a,[hl]
- ld [$D11E],a
+ ld [wd11e],a
pop hl
pop bc
ret
--- a/engine/menu/prize_menu.asm
+++ b/engine/menu/prize_menu.asm
@@ -5,25 +5,24 @@
ld hl,RequireCoinCaseTextPtr
jp PrintText
.havingCoinCase
- ld hl,$D730
+ ld hl,wd730
set 6,[hl]
ld hl,ExchangeCoinsForPrizesTextPtr
call PrintText
; the following are the menu settings
xor a
- ld [$CC26],a
- ld [$CC2A],a
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
ld a,$03
- ld [$CC29],a
+ ld [wMenuWatchedKeys],a
ld a,$03
- ld [$CC28],a
+ ld [wMaxMenuItem],a
ld a,$04
- ld [$CC24],a
+ ld [wTopMenuItemY],a
ld a,$01
- ld [$CC25],a
+ ld [wTopMenuItemX],a
call PrintPrizePrice ; 687A
- FuncCoord 0,2
- ld hl,Coord
+ hlCoord 0, 2
ld b,$08
ld c,$10
call TextBoxBorder
@@ -34,12 +33,12 @@
call HandleMenuInput ; menu choice handler
bit 1,a ; keypress = B (Cancel)
jr nz,.NoChoice
- ld a,[$CC26]
+ ld a,[wCurrentMenuItem]
cp a,$03 ; "NO,THANKS" choice
jr z,.NoChoice
call HandlePrizeChoice ; 14:68C6
.NoChoice
- ld hl,$D730
+ ld hl,wd730
res 6,[hl]
ret
@@ -60,14 +59,14 @@
; determine which one among the three
; prize-texts has been selected
; using the text ID (stored in [$FF8C])
-; load the three prizes at $D13D-$D13F
-; load the three prices at $D141-$D146
+; load the three prizes at wd13d-wd13f
+; load the three prices at wd141-wd146
; display the three prizes' names
; (distinguishing between Pokemon names
; and Items (specifically TMs) names)
ld a,[$FF8C]
sub a,$03 ; prize-texts' id are 3, 4 and 5
- ld [$D12F],a ; prize-texts' id (relative, i.e. 0, 1 or 2)
+ ld [wd12f],a ; prize-texts' id (relative, i.e. 0, 1 or 2)
add a
add a
ld d,$00
@@ -85,59 +84,51 @@
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,$D141
+ ld de,wd141
ld bc,$0006
call CopyData
- ld a,[$D12F]
+ ld a,[wd12f]
cp a,$02 ;is TM_menu?
jr nz,.putMonName
ld a,[W_PRIZE1]
- ld [$D11E],a
+ ld [wd11e],a
call GetItemName
- FuncCoord 2,4
- ld hl,Coord
+ hlCoord 2, 4
call PlaceString
ld a,[W_PRIZE2]
- ld [$D11E],a
+ ld [wd11e],a
call GetItemName
- FuncCoord 2,6
- ld hl,Coord
+ hlCoord 2, 6
call PlaceString
ld a,[W_PRIZE3]
- ld [$D11E],a
+ ld [wd11e],a
call GetItemName
- FuncCoord 2,8
- ld hl,Coord
+ hlCoord 2, 8
call PlaceString
jr .putNoThanksText
.putMonName ; 14:67EC
ld a,[W_PRIZE1]
- ld [$D11E],a
+ ld [wd11e],a
call GetMonName
- FuncCoord 2,4
- ld hl,Coord
+ hlCoord 2, 4
call PlaceString
ld a,[W_PRIZE2]
- ld [$D11E],a
+ ld [wd11e],a
call GetMonName
- FuncCoord 2,6
- ld hl,Coord
+ hlCoord 2, 6
call PlaceString
ld a,[W_PRIZE3]
- ld [$D11E],a
+ ld [wd11e],a
call GetMonName
- FuncCoord 2,8
- ld hl,Coord
+ hlCoord 2, 8
call PlaceString
.putNoThanksText ; 14:6819
- FuncCoord 2,10
- ld hl,Coord
+ hlCoord 2, 10
ld de,NoThanksText
call PlaceString
; put prices on the right side of the textbox
- ld de,$D141
- FuncCoord 13,5
- ld hl,Coord
+ ld de,wd141
+ hlCoord 13, 5
; reg. c:
; [low nybble] number of bytes
; [bit 765 = %100] space-padding (not zero-padding)
@@ -145,14 +136,12 @@
; Function $15CD displays BCD value (same routine
; used by text-command $02)
call PrintBCDNumber ; Print_BCD
- ld de,$D143
- FuncCoord 13,7
- ld hl,Coord
+ ld de,wd143
+ hlCoord 13, 7
ld c,(%1 << 7 | 2)
call PrintBCDNumber
- ld de,$D145
- FuncCoord 13,9
- ld hl,Coord
+ ld de,wd145
+ hlCoord 13, 9
ld c,(1 << 7 | 2)
jp PrintBCDNumber
@@ -159,22 +148,18 @@
INCLUDE "data/prizes.asm"
PrintPrizePrice: ; 5287a (14:687a)
- FuncCoord 11,0
- ld hl,Coord
+ hlCoord 11, 0
ld b,$01
ld c,$07
call TextBoxBorder
call UpdateSprites ; XXX save OAM?
- FuncCoord 12,0
- ld hl,Coord
+ hlCoord 12, 0
ld de,.CoinText
call PlaceString
- FuncCoord 13,1
- ld hl,Coord
+ hlCoord 13, 1
ld de,.SixSpacesText
call PlaceString
- FuncCoord 13,1
- ld hl,Coord
+ hlCoord 13, 1
ld de,wPlayerCoins
ld c,%10000010
call PrintBCDNumber
@@ -187,11 +172,11 @@
db " @"
LoadCoinsToSubtract: ; 528b1 (14:68b1)
- ld a,[$D139] ; backup of selected menu_entry
+ ld a,[wd139] ; backup of selected menu_entry
add a
ld d,$00
ld e,a
- ld hl,$D141 ; first prize's price
+ ld hl,wd141 ; first prize's price
add hl,de ; get selected prize's price
xor a
ld [$FF9F],a
@@ -202,15 +187,15 @@
ret
HandlePrizeChoice: ; 528c6 (14:68c6)
- ld a,[$CC26] ; selected menu_entry
- ld [$D139],a
+ ld a,[wCurrentMenuItem] ; selected menu_entry
+ ld [wd139],a
ld d,$00
ld e,a
ld hl,W_PRIZE1
add hl,de
ld a,[hl]
- ld [$D11E],a
- ld a,[$D12F]
+ ld [wd11e],a
+ ld a,[wd12f]
cp a,$02 ; is prize a TM?
jr nz,.GetMonName
call GetItemName
@@ -221,16 +206,16 @@
ld hl,SoYouWantPrizeTextPtr
call PrintText
call YesNoChoice ; yes/no textbox
- ld a,[$CC26] ; yes/no answer (Y=0, N=1)
+ ld a,[wCurrentMenuItem] ; yes/no answer (Y=0, N=1)
and a
jr nz,.PrintOhFineThen
call LoadCoinsToSubtract
call HasEnoughCoins
jr c,.NotEnoughCoins
- ld a,[$D12F]
+ ld a,[wd12f]
cp a,$02
jr nz,.GiveMon
- ld a,[$D11E]
+ ld a,[wd11e]
ld b,a
ld a,1
ld c,a
@@ -238,8 +223,8 @@
jr nc,.BagFull
jr .SubtractCoins
.GiveMon ; 14:6912
- ld a,[$D11E]
- ld [$CF91],a
+ ld a,[wd11e]
+ ld [wcf91],a
push af
call GetPrizeMonLevel ; 14:6977
ld c,a
@@ -247,7 +232,7 @@
ld b,a
call GivePokemon
push af
- ld a,[$CCD3] ; XXX is there room?
+ ld a,[wccd3] ; XXX is there room?
and a
call z,WaitForTextScrollButtonPress
pop af
@@ -257,8 +242,7 @@
ld hl,$FFA1
ld de,wPlayerCoins + 1
ld c,$02 ; how many bytes
- ld a,$0C
- call Predef ; subtract coins (BCD daa operations)
+ predef SubBCDPredef ; subtract coins (BCD daa operations)
jp PrintPrizePrice
.BagFull
ld hl,PrizeRoomBagIsFullTextPtr
@@ -299,7 +283,7 @@
db "@"
GetPrizeMonLevel: ; 52977 (14:6977)
- ld a,[$CF91]
+ ld a,[wcf91]
ld b,a
ld hl,PrizeMonLevelDictionary
.loop ; 14:697E
@@ -310,7 +294,7 @@
jr .loop
.matchFound ; 14:6985
ld a,[hl]
- ld [$D127],a
+ ld [W_CURENEMYLVL],a
ret
INCLUDE "data/prize_mon_levels.asm"
--- a/engine/menu/start_menu.asm
+++ b/engine/menu/start_menu.asm
@@ -2,8 +2,8 @@
ld a,$04 ; hardcoded Bank, not sure what's it refers to
ld [H_LOADEDROMBANK],a
ld [$2000],a ; ROM bank 4
- ld a,[$d700] ; walking/biking/surfing
- ld [$d11a],a
+ ld a,[wd700] ; walking/biking/surfing
+ ld [wd11a],a
ld a, (SFX_02_3f - SFX_Headers_02) / 3 ; Start menu sound
call PlaySound
@@ -24,7 +24,7 @@
and a
jr nz,.loop
; if the player pressed tried to go past the top item, wrap around to the bottom
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
ld a,6 ; there are 7 menu items with the pokedex, so the max index is 6
jr nz,.wrapMenuItemId
@@ -37,7 +37,7 @@
bit 7,a
jr z,.buttonPressed
; if the player pressed tried to go past the bottom item, wrap around to the top
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
ld a,[wCurrentMenuItem]
ld c,7 ; there are 7 menu items with the pokedex
@@ -54,12 +54,12 @@
.buttonPressed ; A, B, or Start button pressed
call PlaceUnfilledArrowMenuCursor
ld a,[wCurrentMenuItem]
- ld [$cc2d],a ; save current menu item ID
+ ld [wcc2d],a ; save current menu item ID
ld a,b
and a,%00001010 ; was the Start button or B button pressed?
jp nz,CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
ld a,[wCurrentMenuItem]
jr nz,.displayMenuItem
@@ -80,8 +80,8 @@
; EXIT falls through to here
CloseStartMenu:: ; 2b70 (0:2b70)
- call GetJoypadState
- ld a,[H_NEWLYPRESSEDBUTTONS]
+ call Joypad
+ ld a,[hJoyPressed]
bit 0,a ; was A button newly pressed?
jr nz,CloseStartMenu
call LoadTextBoxTilePatterns
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -1,6 +1,5 @@
StartMenu_Pokedex: ; 13095 (4:7095)
- ld a,$29
- call Predef
+ predef ShowPokedexMenu
call LoadScreenTilesFromBuffer2 ; restore saved screen
call Delay3
call LoadGBPal
@@ -8,19 +7,19 @@
jp RedisplayStartMenu
StartMenu_Pokemon: ; 130a9 (4:70a9)
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
and a
jp z,RedisplayStartMenu
xor a
- ld [$cc35],a
- ld [$d07d],a
- ld [$cfcb],a
+ ld [wcc35],a
+ ld [wd07d],a
+ ld [wcfcb],a
call DisplayPartyMenu
jr .checkIfPokemonChosen
.loop
xor a
- ld [$cc35],a
- ld [$d07d],a
+ ld [wcc35],a
+ ld [wd07d],a
call GoBackToPartyMenu
.checkIfPokemonChosen
jr nc,.chosePokemon
@@ -32,9 +31,9 @@
.chosePokemon
call SaveScreenTilesToBuffer1 ; save screen
ld a,$04
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; display pokemon menu options
- ld hl,$cd3d
+ ld hl,wWhichTrade
ld bc,$020c ; max menu item ID, top menu item Y
ld e,5
.adjustMenuVariablesLoop
@@ -82,32 +81,30 @@
jp z,.choseStats
ld c,a
ld b,0
- ld hl,$cd3d
+ ld hl,wWhichTrade
add hl,bc
jp .choseOutOfBattleMove
.choseSwitch
- ld a,[W_NUMINPARTY]
+ ld a,[wPartyCount]
cp a,2 ; is there more than one pokemon in the party?
jp c,StartMenu_Pokemon ; if not, no switching
call SwitchPartyMon_Stats
ld a,$04 ; swap pokemon positions menu
- ld [$d07d],a
+ ld [wd07d],a
call GoBackToPartyMenu
jp .checkIfPokemonChosen
.choseStats
- call CleanLCD_OAM
+ call ClearSprites
xor a
- ld [$cc49],a
- ld a,$36
- call Predef
- ld a,$37
- call Predef
+ ld [wcc49],a
+ predef StatusScreen
+ predef StatusScreen2
call ReloadMapData
jp StartMenu_Pokemon
.choseOutOfBattleMove
push hl
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
ld a,[hl]
@@ -138,7 +135,7 @@
call CheckIfInOutsideMap
jr z,.canFly
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
ld hl,.cannotFlyHereText
call PrintText
@@ -145,19 +142,18 @@
jp .loop
.canFly
call ChooseFlyDestination
- ld a,[$d732]
+ ld a,[wd732]
bit 3,a ; did the player decide to fly?
jp nz,.goBackToMap
call LoadFontTilePatterns
- ld hl,$d72e
+ ld hl,wd72e
set 1,[hl]
jp StartMenu_Pokemon
.cut
bit 1,a ; does the player have the Cascade Badge?
jp z,.newBadgeRequired
- ld a,$3c
- call Predef
- ld a,[$cd6a]
+ predef UsedCut
+ ld a,[wcd6a]
and a
jp z,.loop
jp CloseTextDisplay
@@ -165,15 +161,15 @@
bit 4,a ; does the player have the Soul Badge?
jp z,.newBadgeRequired
callba CheckForForcedBikeSurf
- ld hl,$d728
+ ld hl,wd728
bit 1,[hl]
res 1,[hl]
jp z,.loop
ld a,SURFBOARD
- ld [$cf91],a
- ld [$d152],a
+ ld [wcf91],a
+ ld [wd152],a
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -181,8 +177,7 @@
.strength
bit 3,a ; does the player have the Rainbow Badge?
jp z,.newBadgeRequired
- ld a,$5b
- call Predef
+ predef PrintStrengthTxt
call GBPalWhiteOutWithDelay3
jp .goBackToMap
.flash
@@ -189,7 +184,7 @@
bit 0,a ; does the player have the Boulder Badge?
jp z,.newBadgeRequired
xor a
- ld [$d35d],a
+ ld [wd35d],a
ld hl,.flashLightsAreaText
call PrintText
call GBPalWhiteOutWithDelay3
@@ -199,10 +194,10 @@
db "@"
.dig
ld a,ESCAPE_ROPE
- ld [$cf91],a
- ld [$d152],a
+ ld [wcf91],a
+ ld [wd152],a
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -211,7 +206,7 @@
call CheckIfInOutsideMap
jr z,.canTeleport
ld a,[wWhichPokemon]
- ld hl,W_PARTYMON1NAME
+ ld hl,wPartyMonNicks
call GetPartyMonName
ld hl,.cannotUseTeleportNowText
call PrintText
@@ -219,10 +214,10 @@
.canTeleport
ld hl,.warpToLastPokemonCenterText
call PrintText
- ld hl,$d732
+ ld hl,wd732
set 3,[hl]
set 6,[hl]
- ld hl,$d72e
+ ld hl,wd72e
set 1,[hl]
res 4,[hl]
ld c,60
@@ -239,9 +234,9 @@
TX_FAR _CannotFlyHereText
db "@"
.softboiled
- ld hl,W_PARTYMON1_MAXHP
+ ld hl,wPartyMon1MaxHP
ld a,[wWhichPokemon]
- ld bc,44
+ ld bc,wPartyMon2 - wPartyMon1
call AddNTimes
ld a,[hli]
ld [H_DIVIDEND],a
@@ -251,7 +246,7 @@
ld [H_DIVISOR],a
ld b,2 ; number of bytes
call Divide
- ld bc,-33
+ ld bc,wPartyMon1HP - wPartyMon1MaxHP
add hl,bc
ld a,[hld]
ld b,a
@@ -261,14 +256,14 @@
ld a,[H_QUOTIENT + 2]
sbc b
jp nc,.notHealthyEnough
- ld a,[$cc2b]
+ ld a,[wcc2b]
push af
ld a,POTION
- ld [$cf91],a
- ld [$d152],a
+ ld [wcf91],a
+ ld [wd152],a
call UseItem
pop af
- ld [$cc2b],a
+ ld [wcc2b],a
jp .loop
.notHealthyEnough ; if current HP is less than 1/5 of max HP
ld hl,.notHealthyEnoughText
@@ -290,8 +285,7 @@
; writes a blank tile to all possible menu cursor positions on the party menu
ErasePartyMenuCursors: ; 132ed (4:72ed)
- FuncCoord 0,1
- ld hl,Coord
+ hlCoord 0, 1
ld bc,2 * 20 ; menu cursor positions are 2 rows apart
ld a,6 ; 6 menu cursor positions
.loop
@@ -314,19 +308,19 @@
jr .exitMenu
.notInLinkBattle
ld bc,wNumBagItems
- ld hl,$cf8b
+ ld hl,wcf8b
ld a,c
ld [hli],a
- ld [hl],b ; store item bag pointer at $cf8b (for DisplayListMenuID)
+ ld [hl],b ; store item bag pointer at wcf8b (for DisplayListMenuID)
xor a
- ld [$cf93],a
+ ld [wcf93],a
ld a,ITEMLISTMENU
ld [wListMenuID],a
- ld a,[$cc2c]
+ ld a,[wcc2c]
ld [wCurrentMenuItem],a
call DisplayListMenuID
ld a,[wCurrentMenuItem]
- ld [$cc2c],a
+ ld [wcc2c],a
jr nc,.choseItem
.exitMenu
call LoadScreenTilesFromBuffer2 ; restore saved screen
@@ -336,23 +330,19 @@
.choseItem
; erase menu cursor (blank each tile in front of an item name)
ld a," "
- FuncCoord 5,4
- ld [Coord],a
- FuncCoord 5,6
- ld [Coord],a
- FuncCoord 5,8
- ld [Coord],a
- FuncCoord 5,10
- ld [Coord],a
+ Coorda 5, 4
+ Coorda 5, 6
+ Coorda 5, 8
+ Coorda 5, 10
call PlaceUnfilledArrowMenuCursor
xor a
- ld [$cc35],a
- ld a,[$cf91]
+ ld [wcc35],a
+ ld a,[wcf91]
cp a,BICYCLE
jp z,.useOrTossItem
.notBicycle1
ld a,$06 ; use/toss menu
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID
ld hl,wTopMenuItemY
ld a,11
@@ -374,14 +364,14 @@
jr z,.useOrTossItem
jp ItemMenuLoop
.useOrTossItem ; if the player made the choice to use or toss the item
- ld a,[$cf91]
- ld [$d11e],a
+ ld a,[wcf91]
+ ld [wd11e],a
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
- ld a,[$cf91]
+ call CopyStringToCF4B ; copy name to wcf4b
+ ld a,[wcf91]
cp a,BICYCLE
jr nz,.notBicycle2
- ld a,[$d732]
+ ld a,[wd732]
bit 5,a
jr z,.useItem_closeMenu
ld hl,CannotGetOffHereText
@@ -392,8 +382,8 @@
and a
jr nz,.tossItem
.useItem
- ld [$d152],a
- ld a,[$cf91]
+ ld [wd152],a
+ ld a,[wcf91]
cp a,HM_01
jr nc,.useItem_partyMenu
ld hl,UsableItems_CloseMenu
@@ -400,7 +390,7 @@
ld de,1
call IsInArray
jr c,.useItem_closeMenu
- ld a,[$cf91]
+ ld a,[wcf91]
ld hl,UsableItems_PartyMenu
ld de,1
call IsInArray
@@ -409,34 +399,34 @@
jp ItemMenuLoop
.useItem_closeMenu
xor a
- ld [$d152],a
+ ld [wd152],a
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
and a
jp z,ItemMenuLoop
jp CloseStartMenu
.useItem_partyMenu
- ld a,[$cfcb]
+ ld a,[wcfcb]
push af
call UseItem
- ld a,[$cd6a]
+ ld a,[wcd6a]
cp a,$02
jp z,.partyMenuNotDisplayed
call GBPalWhiteOutWithDelay3
call Func_3dbe
pop af
- ld [$cfcb],a
+ ld [wcfcb],a
jp StartMenu_Item
.partyMenuNotDisplayed
pop af
- ld [$cfcb],a
+ ld [wcfcb],a
jp ItemMenuLoop
.tossItem
call IsKeyItem
- ld a,[$d124]
+ ld a,[wd124]
and a
jr nz,.skipAskingQuantity
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
jr c,.skipAskingQuantity
call DisplayChooseQuantityMenu
@@ -515,8 +505,7 @@
xor a
ld [$ffd7],a
call DrawTrainerInfo
- ld a,$2e
- call Predef ; draw badges
+ predef DrawBadges ; draw badges
ld b,$0d
call GoPAL_SET
call GBPalNormal
@@ -535,35 +524,32 @@
DrawTrainerInfo: ; 1349a (4:749a)
ld de,RedPicFront
ld bc,(BANK(RedPicFront) << 8) | $01
- ld a,$3b
- call Predef
+ predef Predef3B
call DisableLCD
- FuncCoord 0,2
- ld hl,Coord
+ hlCoord 0, 2
ld a," "
call TrainerInfo_DrawVerticalLine
- FuncCoord 1,2
- ld hl,Coord
+ hlCoord 1, 2
call TrainerInfo_DrawVerticalLine
- ld hl,$9070
- ld de,$9000
- ld bc,$01c0
+ ld hl,vChars2 + $70
+ ld de,vChars2
+ ld bc,$70 * 4
call CopyData
ld hl,TrainerInfoTextBoxTileGraphics ; $7b98 ; trainer info text box tile patterns
- ld de,$9770
+ ld de,vChars2 + $770
ld bc,$0080
push bc
call TrainerInfo_FarCopyData
ld hl,BlankLeaderNames ; $7c28
- ld de,$9600
+ ld de,vChars2 + $600
ld bc,$0170
call TrainerInfo_FarCopyData
pop bc
ld hl,BadgeNumbersTileGraphics ; $7d98 ; badge number tile patterns
- ld de,$8d80
+ ld de,vChars1 + $580
call TrainerInfo_FarCopyData
ld hl,GymLeaderFaceAndBadgeTileGraphics ; $6a9e ; gym leader face and badge tile patterns
- ld de,$9200
+ ld de,vChars2 + $200
ld bc,$0400
ld a,$03
call FarCopyData2
@@ -570,7 +556,7 @@
ld hl,TextBoxGraphics ; $6288
ld de,$00d0
add hl,de ; hl = colon tile pattern
- ld de,$8d60
+ ld de,vChars1 + $560
ld bc,$0010
ld a,$04
push bc
@@ -577,59 +563,50 @@
call FarCopyData2
pop bc
ld hl,TrainerInfoTextBoxTileGraphics + $80 ; $7c18 ; background tile pattern
- ld de,$8d70
+ ld de,vChars1 + $570
call TrainerInfo_FarCopyData
call EnableLCD
- ld hl,$cd3d
+ ld hl,wWhichTrade
ld a,18 + 1
ld [hli],a
dec a
ld [hli],a
ld [hl],1
- FuncCoord 0,0
- ld hl,Coord
+ hlCoord 0, 0
call TrainerInfo_DrawTextBox
- ld hl,$cd3d
+ ld hl,wWhichTrade
ld a,16 + 1
ld [hli],a
dec a
ld [hli],a
ld [hl],3
- FuncCoord 1,10
- ld hl,Coord
+ hlCoord 1, 10
call TrainerInfo_DrawTextBox
- FuncCoord 0,10
- ld hl,Coord
+ hlCoord 0, 10
ld a,$d7
call TrainerInfo_DrawVerticalLine
- FuncCoord 19,10
- ld hl,Coord
+ hlCoord 19, 10
call TrainerInfo_DrawVerticalLine
- FuncCoord 6,9
- ld hl,Coord
+ hlCoord 6, 9
ld de,TrainerInfo_BadgesText
call PlaceString
- FuncCoord 2,2
- ld hl,Coord
+ hlCoord 2, 2
ld de,TrainerInfo_NameMoneyTimeText
call PlaceString
- FuncCoord 7,2
- ld hl,Coord
- ld de,W_PLAYERNAME
+ hlCoord 7, 2
+ ld de,wPlayerName
call PlaceString
- FuncCoord 8,4
- ld hl,Coord
+ hlCoord 8, 4
ld de,wPlayerMoney
ld c,$e3
call PrintBCDNumber
- FuncCoord 9,6
- ld hl,Coord
- ld de,$da41 ; hours
+ hlCoord 9, 6
+ ld de,W_PLAYTIMEHOURS + 1 ; hours
ld bc,$4103
call PrintNumber
ld [hl],$d6 ; colon tile ID
inc hl
- ld de,$da43 ; minutes
+ ld de,W_PLAYTIMEMINUTES + 1 ; minutes
ld bc,$8102
jp PrintNumber
@@ -650,15 +627,15 @@
; height is always 6
; INPUT:
; hl = destination address
-; [$cd3d] = width + 1
-; [$cd3e] = width
-; [$cd3f] = distance from the end of a text box row to the start of the next
+; [wWhichTrade] = width + 1
+; [wTrainerEngageDistance] = width
+; [wTrainerFacingDirection] = distance from the end of a text box row to the start of the next
TrainerInfo_DrawTextBox: ; 135a0 (4:75a0)
ld a,$79 ; upper left corner tile ID
ld de,$7a7b ; top edge and upper right corner tile ID's
call TrainerInfo_DrawHorizontalEdge ; draw top edge
call TrainerInfo_NextTextBoxRow
- ld a,[$cd3d] ; width of the text box plus one
+ ld a,[wWhichTrade] ; width of the text box plus one
ld e,a
ld d,0
ld c,6 ; height of the text box
@@ -674,7 +651,7 @@
TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3)
ld [hli],a ; place left corner tile
- ld a,[$cd3e] ; width of the text box
+ ld a,[wTrainerEngageDistance] ; width of the text box
ld c,a
ld a,d
.loop
@@ -686,7 +663,7 @@
ret
TrainerInfo_NextTextBoxRow: ; 135d0 (4:75d0)
- ld a,[$cd3f] ; distance to the start of the next row
+ ld a,[wTrainerFacingDirection] ; distance to the start of the next row
.loop
inc hl
dec a
@@ -708,11 +685,10 @@
ret
StartMenu_SaveReset: ; 135e3 (4:75e3)
- ld a,[$d72e]
+ ld a,[wd72e]
bit 6,a ; is the player using the link feature?
- jp nz,InitGame
- ld a,$3f
- call Predef ; save the game
+ jp nz,Init
+ predef SaveSAV ; save the game
call LoadScreenTilesFromBuffer2 ; restore saved screen
jp HoldTextDisplayOpen
@@ -729,9 +705,9 @@
SwitchPartyMon: ; 13613 (4:7613)
call SwitchPartyMon_Stats
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call SwitchPartyMon_OAM
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call SwitchPartyMon_OAM
jp RedrawPartyMenu_
@@ -762,42 +738,42 @@
jp PlaySound
SwitchPartyMon_Stats: ; 13653 (4:7653)
- ld a, [$cc35]
+ ld a, [wcc35]
and a
jr nz, .asm_13661
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
inc a
- ld [$cc35], a
+ ld [wcc35], a
ret
.asm_13661
xor a
- ld [$d07d], a
- ld a, [$cc35]
+ ld [wd07d], a
+ ld a, [wcc35]
dec a
ld b, a
- ld a, [wCurrentMenuItem] ; $cc26
- ld [wWhichTrade], a ; $cd3d
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wWhichTrade], a ; wWhichTrade
cp b
jr nz, .asm_1367b
xor a
- ld [$cc35], a
- ld [$d07d], a
+ ld [wcc35], a
+ ld [wd07d], a
ret
.asm_1367b
ld a, b
- ld [$cc35], a
+ ld [wcc35], a
push hl
push de
- ld hl, W_PARTYMON1 ; $d164
+ ld hl, wPartySpecies
ld d, h
ld e, l
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
add l
ld l, a
jr nc, .asm_1368e
inc h
.asm_1368e
- ld a, [$cc35]
+ ld a, [wcc35]
add e
ld e, a
jr nc, .asm_13696
@@ -809,17 +785,17 @@
ld [hl], a
ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
ld [de], a
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- ld bc, $2c
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wPartyMons
+ ld bc, wPartyMon2 - wPartyMon1
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call AddNTimes
push hl
- ld de, $cc97
+ ld de, wcc97
ld bc, $2c
call CopyData
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld hl, wPartyMons
ld bc, $2c
- ld a, [$cc35]
+ ld a, [wcc35]
call AddNTimes
pop de
push hl
@@ -826,18 +802,18 @@
ld bc, $2c
call CopyData
pop de
- ld hl, $cc97
+ ld hl, wcc97
ld bc, $2c
call CopyData
- ld hl, W_PARTYMON1OT ; $d273
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wPartyMonOT ; wd273
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call SkipFixedLengthTextEntries
push hl
- ld de, $cc97
+ ld de, wcc97
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1OT ; $d273
- ld a, [$cc35]
+ ld hl, wPartyMonOT ; wd273
+ ld a, [wcc35]
call SkipFixedLengthTextEntries
pop de
push hl
@@ -844,18 +820,18 @@
ld bc, $b
call CopyData
pop de
- ld hl, $cc97
+ ld hl, wcc97
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
call SkipFixedLengthTextEntries
push hl
- ld de, $cc97
+ ld de, wcc97
ld bc, $b
call CopyData
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [$cc35]
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wcc35]
call SkipFixedLengthTextEntries
pop de
push hl
@@ -862,14 +838,14 @@
ld bc, $b
call CopyData
pop de
- ld hl, $cc97
+ ld hl, wcc97
ld bc, $b
call CopyData
- ld a, [$cc35]
- ld [wWhichTrade], a ; $cd3d
+ ld a, [wcc35]
+ ld [wWhichTrade], a ; wWhichTrade
xor a
- ld [$cc35], a
- ld [$d07d], a
+ ld [wcc35], a
+ ld [wd07d], a
pop de
pop hl
ret
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -1,18 +1,18 @@
; Predef 0x37
StatusScreen: ; 12953 (4:6953)
call LoadMonData
- ld a, [$cc49]
+ ld a, [wcc49]
cp $2 ; 2 means we're in a PC box
jr c, .DontRecalculate ; 0x1295b $14
- ld a, [$cf9b]
- ld [$cfb9], a
- ld [$d127], a
- ld hl, $cfa8
- ld de, $cfba
+ ld a, [wcf9b]
+ ld [wcfb9], a
+ ld [W_CURENEMYLVL], a
+ ld hl, wcfa8
+ ld de, wcfba
ld b, $1
call CalcStats ; Recalculate stats
.DontRecalculate
- ld hl, $d72c
+ ld hl, wd72c
set 1, [hl]
ld a, $33
ld [$ff24], a ; Reduce the volume
@@ -21,19 +21,19 @@
call UpdateSprites ; move sprites (?)
call LoadHpBarAndStatusTilePatterns
ld de, BattleHudTiles1 ; $6080 ; source
- ld hl, $96d0 ; dest
+ ld hl, vChars2 + $6d0 ; dest
ld bc, (BANK(BattleHudTiles1) << 8) + $03 ; bank bytes/8
call CopyVideoDataDouble ; ·│ :L and halfarrow line end
ld de, BattleHudTiles2 ; $6098
- ld hl, $9780
+ ld hl, vChars2 + $780
ld bc, (BANK(BattleHudTiles2) << 8) + $01
call CopyVideoDataDouble ; │
ld de, BattleHudTiles3 ; $60b0
- ld hl, $9760
+ ld hl, vChars2 + $760
ld bc, (BANK(BattleHudTiles3) << 8) + $02
call CopyVideoDataDouble ; ─┘
ld de, PTile
- ld hl, $9720
+ ld hl, vChars2 + $720
ld bc,(BANK(PTile) << 8 | $01)
call CopyVideoDataDouble ; P (for PP), inline
ld a, [$ffd7]
@@ -40,8 +40,7 @@
push af
xor a
ld [$ffd7], a
- FuncCoord 19,1
- ld hl, Coord
+ hlCoord 19, 1
ld bc, $060a
call DrawLineBox ; Draws the box around name, HP and status
ld de, $fffa
@@ -49,69 +48,55 @@
ld [hl], $f2 ; . after No ("." is a different one)
dec hl
ld [hl], "№"
- FuncCoord 19,9
- ld hl, Coord
+ hlCoord 19, 9
ld bc, $0806
call DrawLineBox ; Draws the box around types, ID No. and OT
- FuncCoord 10,9
- ld hl, Coord
+ hlCoord 10, 9
ld de, Type1Text
call PlaceString ; "TYPE1/"
- FuncCoord 11,3
- ld hl, Coord
- PREDEF DrawHPBarPredef ; predef $5f
- ld hl, $cf25
+ hlCoord 11, 3
+ predef DrawHP ; predef $5f
+ ld hl, wcf25
call GetHealthBarColor
ld b, $3
call GoPAL_SET ; SGB palette
- FuncCoord 16,6
- ld hl, Coord
- ld de, $cf9c
+ hlCoord 16, 6
+ ld de, wcf9c
call PrintStatusCondition
jr nz, .StatusWritten ; 0x129fc $9
- FuncCoord 16,6
- ld hl, Coord
+ hlCoord 16, 6
ld de, OKText
call PlaceString ; "OK"
.StatusWritten
- FuncCoord 9,6
- ld hl, Coord
+ hlCoord 9, 6
ld de, StatusText
call PlaceString ; "STATUS/"
- FuncCoord 14,2
- ld hl, Coord
+ hlCoord 14, 2
call PrintLevel ; Pokémon level
- ld a, [$d0b8]
- ld [$d11e], a
- ld [$d0b5], a
- ld a, $3a
- call Predef
- FuncCoord 3,7
- ld hl, Coord
- ld de, $d11e
+ ld a, [W_MONHDEXNUM]
+ ld [wd11e], a
+ ld [wd0b5], a
+ predef IndexToPokedex
+ hlCoord 3, 7
+ ld de, wd11e
ld bc, $8103 ; Zero-padded, 3
call PrintNumber ; Pokémon no.
- FuncCoord 11,10
- ld hl, Coord
- ld a, $4b
- call Predef ; Prints the type (?)
+ hlCoord 11, 10
+ predef Func_27d6b ; Prints the type (?)
ld hl, NamePointers2 ; $6a9d
call .unk_12a7e
ld d, h
ld e, l
- FuncCoord 9,1
- ld hl, Coord
+ hlCoord 9, 1
call PlaceString ; Pokémon name
ld hl, OTPointers ; $6a95
call .unk_12a7e
ld d, h
ld e, l
- FuncCoord 12,16
- ld hl, Coord
+ hlCoord 12, 16
call PlaceString ; OT
- FuncCoord 12,14
- ld hl, Coord
- ld de, $cfa4
+ hlCoord 12, 14
+ ld de, wcfa4
ld bc, $8205 ; 5
call PrintNumber ; ID Number
ld d, $0
@@ -118,10 +103,9 @@
call PrintStatsBox
call Delay3
call GBPalNormal
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ hlCoord 1, 0
call LoadFlippedFrontSpriteByMonIndex ; draw Pokémon picture
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry ; play Pokémon cry
call WaitForTextScrollButtonPress ; wait for button
pop af
@@ -128,7 +112,7 @@
ld [$ffd7], a
ret
.unk_12a7e ; 0x12a7e ; I don't know what this does, iterates over pointers?
- ld a, [$cc49]
+ ld a, [wcc49]
add a
ld c, a
ld b, $0
@@ -136,7 +120,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [$cc49]
+ ld a, [wcc49]
cp $3
ret z
ld a, [wWhichPokemon]
@@ -143,15 +127,15 @@
jp SkipFixedLengthTextEntries
OTPointers: ; 12a95 (4:6a95)
- dw W_PARTYMON1OT
- dw W_ENEMYMON1OT
- dw W_BOXMON1OT
+ dw wPartyMonOT
+ dw wEnemyMonOT
+ dw wBoxMonOT
dw W_DAYCAREMONOT
NamePointers2: ; 12a9d (4:6a9d)
- dw W_PARTYMON1NAME
- dw W_ENEMYMON1NAME
- dw W_BOXMON1NAME
+ dw wPartyMonNicks
+ dw wEnemyMonNicks
+ dw wBoxMonNicks
dw W_DAYCAREMONNAME
Type1Text: ; 12aa5 (4:6aa5)
@@ -197,23 +181,19 @@
ld a, d
and a ; a is 0 from the status screen
jr nz, .DifferentBox ; 0x12ae6 $12
- FuncCoord 0,8
- ld hl, Coord
+ hlCoord 0, 8
ld b, $8
ld c, $8
call TextBoxBorder ; Draws the box
- FuncCoord 1,9 ; Start printing stats from here
- ld hl, Coord
+ hlCoord 1, 9 ; Start printing stats from here
ld bc, $0019 ; Number offset
jr .PrintStats ; 0x12af8 $10
.DifferentBox
- FuncCoord 9,2
- ld hl, Coord
+ hlCoord 9, 2
ld b, $8
ld c, $9
call TextBoxBorder
- FuncCoord 11, 3 ; $c3e7
- ld hl, Coord
+ hlCoord 11, 3
ld bc, $0018
.PrintStats
push bc
@@ -223,14 +203,14 @@
pop hl
pop bc
add hl, bc
- ld de, $cfbc
+ ld de, wcfbc
ld bc, $0203 ; three digits
call PrintStat
- ld de, $cfbe
+ ld de, wcfbe
call PrintStat
- ld de, $cfc0
+ ld de, wcfc0
call PrintStat
- ld de, $cfc2
+ ld de, wcfc2
jp PrintNumber
PrintStat
push hl
@@ -253,37 +233,32 @@
ld [$ffd7], a
ld [$ffba], a
ld bc, $0005
- ld hl, $d0dc
+ ld hl, wd0dc
call FillMemory
- ld hl, $cfa0
- ld de, $d0dc
+ ld hl, wcfa0
+ ld de, wd0dc
ld bc, $0004
call CopyData
callab Func_39b87
- FuncCoord 9,2
- ld hl, Coord
+ hlCoord 9, 2
ld bc, $050a
call ClearScreenArea ; Clear under name
- FuncCoord 19, 3 ; $c3ef
- ld hl, Coord
+ hlCoord 19, 3
ld [hl], $78
- FuncCoord 0,8
- ld hl, Coord
+ hlCoord 0, 8
ld b, $8
ld c, $12
call TextBoxBorder ; Draw move container
- FuncCoord 2,9
- ld hl, Coord
- ld de, $d0e1
+ hlCoord 2, 9
+ ld de, wd0e1
call PlaceString ; Print moves
- ld a, [$cd6c]
+ ld a, [wcd6c]
inc a
ld c, a
ld a, $4
sub c
ld b, a ; Number of moves ?
- FuncCoord 11,10
- ld hl, Coord
+ hlCoord 11, 10
ld de, $0028
ld a, $72
call Func_12ccb ; Print "PP"
@@ -294,9 +269,8 @@
ld a, "-"
call Func_12ccb ; Fill the rest with --
.InitPP ; 12bbb
- ld hl, $cfa0
- FuncCoord 14,10
- ld de, Coord
+ ld hl, wcfa0
+ deCoord 14, 10
ld b, $0
.PrintPP ; 12bc3
ld a, [hli]
@@ -322,16 +296,16 @@
add hl, bc
ld a, [hl]
and $3f
- ld [$cd71], a
+ ld [wcd71], a
ld h, d
ld l, e
push hl
- ld de, $cd71
+ ld de, wcd71
ld bc, $0102
call PrintNumber
ld a, "/"
ld [hli], a
- ld de, $d11e
+ ld de, wd11e
ld bc, $0102
call PrintNumber
pop hl
@@ -346,47 +320,40 @@
cp $4
jr nz, .PrintPP ; 0x12c0f $b2
.PPDone
- FuncCoord 9,3
- ld hl, Coord
+ hlCoord 9, 3
ld de, EXPPointsText
call PlaceString
- ld a, [$cfb9] ; level
+ ld a, [wcfb9] ; level
push af
- cp 100
+ cp MAX_LEVEL
jr z, .Level100 ; 0x12c20 $4
inc a
- ld [$cfb9], a ; Increase temporarily if not 100
+ ld [wcfb9], a ; Increase temporarily if not 100
.Level100
- FuncCoord 14,6
- ld hl, Coord
+ hlCoord 14, 6
ld [hl], $70 ; 1-tile "to"
inc hl
inc hl
call PrintLevel
pop af
- ld [$cfb9], a
- ld de, $cfa6
- FuncCoord 12,4
- ld hl, Coord
+ ld [wcfb9], a
+ ld de, wcfa6
+ hlCoord 12, 4
ld bc, $0307
call PrintNumber ; exp
call .asm_12c86
- ld de, $cfa6
- FuncCoord 7,6
- ld hl, Coord
+ ld de, wcfa6
+ hlCoord 7, 6
ld bc, $0307
call PrintNumber
- FuncCoord 9,0
- ld hl, Coord
+ hlCoord 9, 0
call Func_12cc3
- FuncCoord 9,1
- ld hl, Coord
+ hlCoord 9, 1
call Func_12cc3
- ld a, [$d0b8]
- ld [$d11e], a
+ ld a, [W_MONHDEXNUM]
+ ld [wd11e], a
call GetMonName
- FuncCoord 9,1
- ld hl, Coord
+ hlCoord 9, 1
call PlaceString
ld a, $1
ld [$ffba], a
@@ -394,7 +361,7 @@
call WaitForTextScrollButtonPress ; wait for button
pop af
ld [$ffd7], a
- ld hl, $d72c
+ ld hl, wd72c
res 1, [hl]
ld a, $77
ld [$ff24], a
@@ -401,13 +368,13 @@
call GBPalWhiteOut
jp ClearScreen
.asm_12c86 ; This does some magic with lvl/exp?
- ld a, [$cfb9] ; Load level
- cp $64
+ ld a, [wcfb9] ; Load level
+ cp MAX_LEVEL
jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100
inc a
ld d, a
callab CalcExperience
- ld hl, $cfa8
+ ld hl, wcfa8
ld a, [$ff98]
sub [hl]
ld [hld], a
@@ -419,7 +386,7 @@
ld [hld], a
ret
.asm_12ca7
- ld hl, $cfa6
+ ld hl, wcfa6
xor a
ld [hli], a
ld [hli], a
--- a/engine/menu/vending_machine.asm
+++ b/engine/menu/vending_machine.asm
@@ -2,41 +2,38 @@
ld hl, VendingMachineText1
call PrintText
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $3
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $5
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld hl, $d730
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld hl, wd730
set 6, [hl]
- FuncCoord 0, 3 ; $c3dc
- ld hl, Coord
+ hlCoord 0, 3
ld b, $8
ld c, $c
call TextBoxBorder
call UpdateSprites
- FuncCoord 2, 5 ; $c406
- ld hl, Coord
+ hlCoord 2, 5
ld de, DrinkText
call PlaceString
- FuncCoord 9, 6 ; $c421
- ld hl, Coord
+ hlCoord 9, 6
ld de, DrinkPriceText
call PlaceString
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call HandleMenuInput
bit 1, a
jr nz, .asm_74f93
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
cp $3
jr z, .asm_74f93
xor a
@@ -69,12 +66,11 @@
ld hl, VendingMachineText5
call PrintText
ld hl, $ffde
- ld de, wPlayerMoney + 2 ; $d349
+ ld de, wPlayerMoney + 2 ; wd349
ld c, $3
- ld a, $c
- call Predef ; indirect jump to Func_f836 (f836 (3:7836))
+ predef SubBCDPredef
ld a, $13
- ld [$d125], a
+ ld [wd125], a
jp DisplayTextBoxID
.BagFull
ld hl, VendingMachineText6
@@ -116,7 +112,7 @@
Func_74fe7: ; 74fe7 (1d:4fe7)
ld hl, VendingPrices
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
add a
add a
ld d, $0
--- a/engine/mon_party_sprites.asm
+++ b/engine/mon_party_sprites.asm
@@ -1,16 +1,16 @@
AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7)
xor a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld b, a
inc a
jr GetAnimationSpeed
-; $cf1f contains the party mon's health bar colors
+; wcf1f contains the party mon's health bar colors
; 0: green
; 1: yellow
; 2: red
AnimatePartyMon: ; 716ff (1c:56ff)
- ld hl, $cf1f
+ ld hl, wcf1f
ld a, [wCurrentMenuItem]
ld c, a
ld b, $0
@@ -21,13 +21,13 @@
ld c, a
ld hl, PartyMonSpeeds
add hl, bc
- ld a, [$cf1b]
+ ld a, [wcf1b]
xor $1
add [hl]
ld c, a
add a
ld b, a
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
and a
jr z, .resetSprites
cp c
@@ -38,11 +38,11 @@
jr nz, .resetTimer
xor a
.resetTimer
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jp DelayFrame
.resetSprites
push bc
- ld hl, $cc5b
+ ld hl, wcc5b
ld de, wOAMBuffer
ld bc, $60
call CopyData
@@ -51,7 +51,7 @@
jr .incTimer
.animateSprite
push bc
- ld hl, $c302 ; OAM tile id
+ ld hl, wOAMBuffer + $02 ; OAM tile id
ld bc, $10
ld a, [wCurrentMenuItem]
call AddNTimes
@@ -156,142 +156,142 @@
dw SlowbroSprite + $c0
db $40 / $10 ; 40 bytes
db BANK(SlowbroSprite)
- dw $8000
+ dw vSprites
dw BallSprite
db $80 / $10 ; $80 bytes
db BANK(BallSprite)
- dw $8040
+ dw vSprites + $40
dw ClefairySprite + $c0
db $40 / $10 ; $40 bytes
db BANK(ClefairySprite)
- dw $80C0
+ dw vSprites + $c0
dw BirdSprite + $c0
db $40 / $10 ; $40 bytes
db BANK(BirdSprite)
- dw $8100
+ dw vSprites + $100
dw SeelSprite
db $40 / $10 ; $40 bytes
db BANK(SeelSprite)
- dw $8140
+ dw vSprites + $140
dw MonPartySprites + $40
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8180
+ dw vSprites + $180
dw MonPartySprites + $50
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $81A0
+ dw vSprites + $1a0
dw MonPartySprites + $60
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $81C0
+ dw vSprites + $1c0
dw MonPartySprites + $70
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $81E0
+ dw vSprites + $1e0
dw MonPartySprites + $80
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8200
+ dw vSprites + $200
dw MonPartySprites + $90
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8220
+ dw vSprites + $220
dw MonPartySprites + $A0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8240
+ dw vSprites + $240
dw MonPartySprites + $B0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8260
+ dw vSprites + $260
dw MonPartySprites + $100
db $40 / $10 ; $40 bytes
db BANK(MonPartySprites)
- dw $8380
+ dw vSprites + $380
dw SlowbroSprite
db $40 / $10 ; $40 bytes
db BANK(SlowbroSprite)
- dw $8400
+ dw vSprites + $400
dw BallSprite
db $80 / $10 ; $80 bytes
db BANK(BallSprite)
- dw $8440
+ dw vSprites + $440
dw ClefairySprite
db $40 / $10 ; $40 bytes
db BANK(ClefairySprite)
- dw $84C0
+ dw vSprites + $4c0
dw BirdSprite
db $40 / $10 ; $40 bytes
db BANK(BirdSprite)
- dw $8500
+ dw vSprites + $500
dw SeelSprite + $C0
db $40 / $10 ; $40 bytes
db BANK(SeelSprite)
- dw $8540
+ dw vSprites + $540
dw MonPartySprites
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8580
+ dw vSprites + $580
dw MonPartySprites + $10
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $85A0
+ dw vSprites + $5a0
dw MonPartySprites + $20
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $85C0
+ dw vSprites + $5c0
dw MonPartySprites + $30
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $85E0
+ dw vSprites + $5E0
dw MonPartySprites + $C0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8600
+ dw vSprites + $600
dw MonPartySprites + $D0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8620
+ dw vSprites + $620
dw MonPartySprites + $E0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8640
+ dw vSprites + $640
dw MonPartySprites + $F0
db $10 / $10 ; $10 bytes
db BANK(MonPartySprites)
- dw $8660
+ dw vSprites + $660
dw MonPartySprites + $140
db $40 / $10 ; $40 bytes
db BANK(MonPartySprites)
- dw $8780
+ dw vSprites + $780
Func_71868: ; 71868 (1c:5868)
push hl
@@ -298,13 +298,13 @@
push de
push bc
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- ld hl, W_PARTYMON1 ; $d164
+ ld hl, wPartySpecies
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call GetPartyMonSpriteID
- ld [$cd5b], a
+ ld [wcd5b], a
call Func_718c3
pop bc
pop de
@@ -314,23 +314,23 @@
Func_71882: ; 71882 (1c:5882)
xor a
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld a, [$cd5d]
+ ld a, [wcd5d]
call GetPartyMonSpriteID
- ld [$cd5b], a
+ ld [wcd5b], a
jr Func_718c3
Func_71890: ; 71890 (1c:5890)
- ld a, [$cf91]
+ ld a, [wcf91]
call GetPartyMonSpriteID
push af
- ld hl, $8000
+ ld hl, vSprites
call Func_718ac
pop af
add $54
- ld hl, $8040
+ ld hl, vSprites + $40
call Func_718ac
xor a
- ld [$cd5d], a
+ ld [wcd5d], a
jr Func_71882
Func_718ac: ; 718ac (1c:58ac)
@@ -356,7 +356,7 @@
Func_718c3: ; 718c3 (1c:58c3)
push af
ld c, $10
- ld h, $c3
+ ld h, wOAMBuffer / $100
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
swap a
ld l, a
@@ -371,15 +371,14 @@
call Func_71281
.asm_718dd
ld hl, wOAMBuffer
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $60
jp CopyData
GetPartyMonSpriteID: ; 718e9 (1c:58e9)
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld a, [$d11e]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
ld c, a
dec a
srl a
--- a/engine/oak_speech.asm
+++ b/engine/oak_speech.asm
@@ -1,11 +1,11 @@
SetDefaultNames: ; 60ca (1:60ca)
- ld a, [$d358]
+ ld a, [wd358]
push af
- ld a, [W_OPTIONS] ; $d355
+ ld a, [W_OPTIONS] ; W_OPTIONS
push af
- ld a, [$d732]
+ ld a, [wd732]
push af
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
ld bc, $d8a
xor a
call FillMemory
@@ -14,20 +14,20 @@
xor a
call FillMemory
pop af
- ld [$d732], a
+ ld [wd732], a
pop af
- ld [W_OPTIONS], a ; $d355
+ ld [W_OPTIONS], a ; W_OPTIONS
pop af
- ld [$d358], a
- ld a, [$d08a]
+ ld [wd358], a
+ ld a, [wd08a]
and a
call z, Func_5bff
ld hl, NintenText
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
ld bc, $b
call CopyData
ld hl, SonyText
- ld de, W_RIVALNAME ; $d34a
+ ld de, W_RIVALNAME ; wd34a
ld bc, $b
jp CopyData
@@ -41,20 +41,19 @@
call ClearScreen
call LoadTextBoxTilePatterns
call SetDefaultNames
- ld a,$18
- call Predef ; indirect jump to InitializePlayerData
- ld hl,$D53A
+ predef InitPlayerData2
+ ld hl,wNumBoxItems
ld a,POTION
- ld [$CF91],a
+ ld [wcf91],a
ld a,1
- ld [$CF96],a
+ ld [wcf96],a
call AddItemToInventory ; give one potion
- ld a,[$D07C]
- ld [$D71A],a
+ ld a,[W_ANIMATIONID]
+ ld [wd71a],a
call Func_62ce
xor a
ld [$FFD7],a
- ld a,[$D732]
+ ld a,[wd732]
bit 1,a ; XXX when is bit 1 set?
jp nz,Func_61bc ; easter egg: skip the intro
ld de,ProfOakPic
@@ -66,11 +65,10 @@
call GBFadeOut2
call ClearScreen
ld a,NIDORINO
- ld [$D0B5],a ; pic displayed is stored at this location
- ld [$CF91],a
+ ld [wd0b5],a ; pic displayed is stored at this location
+ ld [wcf91],a
call GetMonHeader ; this is also related to the pic
- FuncCoord 6, 4 ; $c3f6
- ld hl,Coord ; position on tilemap the pic is displayed
+ hlCoord 6, 4 ; position on tilemap the pic is displayed
call LoadFlippedFrontSpriteByMonIndex ; displays pic?
call MovePicLeft
ld hl,OakSpeechText2
@@ -101,7 +99,7 @@
ld bc,(Bank(RedPicFront) << 8) | $00
call IntroPredef3B
call GBFadeIn2
- ld a,[$D72D]
+ ld a,[wd72d]
and a
jr nz,.next
ld hl,OakSpeechText3
@@ -117,7 +115,7 @@
ld c,4
call DelayFrames
ld de,RedSprite ; $4180
- ld hl,$8000
+ ld hl,vSprites
ld bc,(BANK(RedSprite) << 8) | $0C
call CopyVideoData
ld de,ShrinkPic1
@@ -131,13 +129,13 @@
call ResetPlayerSpriteData
ld a,[H_LOADEDROMBANK]
push af
- ld a,2
- ld [$C0EF],a
- ld [$C0F0],a
+ ld a, BANK(Music_PalletTown)
+ ld [wc0ef],a
+ ld [wc0f0],a
ld a,$A
ld [wMusicHeaderPointer],a
ld a,$FF
- ld [$C0EE],a
+ ld [wc0ee],a
call PlaySound ; stop music
pop af
ld [H_LOADEDROMBANK],a
@@ -144,14 +142,13 @@
ld [$2000],a
ld c,$14
call DelayFrames
- FuncCoord 6, 5 ; $c40a
- ld hl,Coord
+ hlCoord 6, 5
ld b,7
ld c,7
call ClearScreenArea
call LoadTextBoxTilePatterns
ld a,1
- ld [$CFCB],a
+ ld [wcfcb],a
ld c,$32
call DelayFrames
call GBFadeOut2
@@ -211,7 +208,7 @@
jr .next
Predef3B: ; 62a1 (1:62a1)
- call Load16BitRegisters
+ call GetPredefRegisters
IntroPredef3B: ; 62a4 (1:62a4)
; bank of sprite given in b
push bc
@@ -218,21 +215,18 @@
ld a,b
call UncompressSpriteFromDE
ld hl,S_SPRITEBUFFER1
- ld de,$A000
- ld bc,$0310
+ ld de,S_SPRITEBUFFER0
+ ld bc,$310
call CopyData
- ld de,$9000
+ ld de,vFrontPic
call InterlaceMergeSpriteBuffers
pop bc
ld a,c
and a
- FuncCoord 15, 1 ; $c3c3
- ld hl,Coord
+ hlCoord 15, 1
jr nz,.next
- FuncCoord 6, 4 ; $c3f6
- ld hl,Coord
+ hlCoord 6, 4
.next
xor a
ld [$FFE1],a
- ld a,1
- jp Predef
+ predef_jump Func_3f0c6
--- a/engine/oak_speech2.asm
+++ b/engine/oak_speech2.asm
@@ -2,20 +2,20 @@
call Func_6a12
ld de, DefaultNamesPlayer ; $6aa8
call DisplayIntroNameTextBox
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_697a
ld hl, DefaultNamesPlayerList ; $6af2
call Func_6ad6
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
call Func_69ec
jr .asm_6999
.asm_697a
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
xor a
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
- ld a, [$cf4b]
+ ld a, [wcf4b]
cp $50
jr z, .asm_697a
call ClearScreen
@@ -35,20 +35,20 @@
call Func_6a12 ; 0x69a4 call 0x6a12
ld de, DefaultNamesRival
call DisplayIntroNameTextBox
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr z, .asm_69c1
ld hl, DefaultNamesRivalList
call Func_6ad6
- ld de, W_RIVALNAME ; $d34a
+ ld de, W_RIVALNAME ; wd34a
call Func_69ec
jr .asm_69e1
.asm_69c1
- ld hl, W_RIVALNAME ; $d34a
+ ld hl, W_RIVALNAME ; wd34a
ld a, $1
- ld [$d07d], a
+ ld [wd07d], a
call DisplayNamingScreen
- ld a, [$cf4b]
+ ld a, [wcf4b]
cp $50
jr z, .asm_69c1
call ClearScreen
@@ -72,19 +72,17 @@
ld c, $a
call DelayFrames
pop de
- ld hl, $cd6d
+ ld hl, wcd6d
ld bc, $b
call CopyData
call Delay3
- FuncCoord 12, 4 ; $c3fc
- ld hl, Coord
+ hlCoord 12, 4
ld de, $67d
ld a, $ff
jr asm_6a19
Func_6a12: ; 6a12 (1:6a12)
- FuncCoord 5, 4 ; $c3f5
- ld hl, Coord
+ hlCoord 5, 4
ld de, $67d
xor a
asm_6a19: ; 6a19 (1:6a19)
@@ -161,25 +159,23 @@
ld b, $a
ld c, $9
call TextBoxBorder
- FuncCoord 3, 0 ; $c3a3
- ld hl, Coord
+ hlCoord 3, 0
ld de, .namestring ; $6aa3
call PlaceString
pop de
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
call PlaceString
call UpdateSprites
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
inc a
- ld [wTopMenuItemX], a ; $cc25
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
inc a
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
inc a
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
jp HandleMenuInput
.namestring ; 6aa3 (1:6aa3)
@@ -235,7 +231,7 @@
.asm_6ae7
ld h, d
ld l, e
- ld de, $cd6d
+ ld de, wcd6d
ld bc, $14
jp CopyData
IF _RED
--- /dev/null
+++ b/engine/oam_dma.asm
@@ -1,0 +1,25 @@
+WriteDMACodeToHRAM:
+; Since no other memory is available during OAM DMA,
+; DMARoutine is copied to HRAM and executed there.
+ ld c, $ff80 % $100
+ ld b, DMARoutineEnd - DMARoutine
+ ld hl, DMARoutine
+.copy
+ ld a, [hli]
+ ld [$ff00+c], a
+ inc c
+ dec b
+ jr nz, .copy
+ ret
+
+DMARoutine:
+ ; initiate DMA
+ ld a, wOAMBuffer / $100
+ ld [$ff46], a
+
+ ; wait for DMA to finish
+ ld a, $28
+.wait dec a
+ jr nz, .wait
+ ret
+DMARoutineEnd:
--- a/engine/overworld/cable_club_npc.asm
+++ b/engine/overworld/cable_club_npc.asm
@@ -1,7 +1,7 @@
CableClubNPC: ; 71c5 (1:71c5)
ld hl, CableClubNPCText1
call PrintText
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jp nz, Func_71e1
ld c, $3c
@@ -12,9 +12,9 @@
Func_71e1: ; 71e1 (1:71e1)
ld a, $1
- ld [$cc34], a
+ ld [wMenuJoypadPollCount], a
ld a, $5a
- ld [$cc47], a
+ ld [wcc47], a
.asm_71eb
ld a, [$ffaa]
cp $2
@@ -29,9 +29,9 @@
ld [$ffad], a
ld a, $80
ld [$ff02], a
- ld a, [$cc47]
+ ld a, [wcc47]
dec a
- ld [$cc47], a
+ ld [wcc47], a
jr z, .asm_7287 ; 0x720b $7a
ld a, $1
ld [$ff01], a
@@ -48,11 +48,11 @@
ld hl, CableClubNPCText2
call PrintText
xor a
- ld [$cc34], a
+ ld [wMenuJoypadPollCount], a
call YesNoChoice
ld a, $1
- ld [$cc34], a
- ld a, [$cc26]
+ ld [wMenuJoypadPollCount], a
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_728f ; 0x723e $4f
callab SaveSAVtoSRAM
@@ -61,15 +61,15 @@
call PlaySoundWaitForCurrent
ld hl, CableClubNPCText3
call PrintText
- ld hl, $cc47
+ ld hl, wcc47
ld a, $3
ld [hli], a
xor a
ld [hl], a
ld [$ffa9], a
- ld [$cc42], a
+ ld [wcc42], a
call Func_227f
- ld hl, $cc47
+ ld hl, wcc47
ld a, [hli]
inc a
jr nz, Func_72a8 ; 0x726b $3b
@@ -98,13 +98,13 @@
Func_7298: ; 7298 (1:7298)
xor a
- ld hl, $cc47
+ ld hl, wcc47
ld [hli], a
ld [hl], a
- ld hl, $d72e
+ ld hl, wd72e
res 6, [hl]
xor a
- ld [$cc34], a
+ ld [wMenuJoypadPollCount], a
ret
Func_72a8: ; 72a8 (1:72a8)
--- a/engine/overworld/card_key.asm
+++ b/engine/overworld/card_key.asm
@@ -8,9 +8,8 @@
ret z
cp b
jr nz, .asm_5267a
- ld a, $35
- call Predef ; indirect jump to Func_c586 (c586 (3:4586))
- ld a, [$cfc6]
+ predef Func_c586
+ ld a, [wcfc6]
cp $18
jr z, .asm_5269c
cp $24
@@ -35,12 +34,12 @@
srl d
ld a, d
ld b, a
- ld [$d73f], a
+ ld [wd73f], a
srl e
ld a, e
ld c, a
- ld [$d740], a
- ld a, [W_CURMAP] ; $d35e
+ ld [wd740], a
+ ld a, [W_CURMAP] ; W_CURMAP
cp SILPH_CO_11F
jr nz, .asm_526c8
ld a, $3
@@ -48,10 +47,9 @@
.asm_526c8
ld a, $e
.asm_526ca
- ld [$d09f], a
- ld a, $17
- call Predef ; indirect jump to Func_ee9e
- ld hl, $d126
+ ld [wd09f], a
+ predef Func_ee9e
+ ld hl, wd126
set 5, [hl]
ld a, (SFX_1f_57 - SFX_Headers_1f) / 3
jp PlaySound
@@ -84,11 +82,11 @@
db "@"
Func_526fd: ; 526fd (14:66fd)
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld d, a
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld e, a
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr nz, .asm_5270d
inc d
--- a/engine/overworld/cinnabar_lab.asm
+++ b/engine/overworld/cinnabar_lab.asm
@@ -1,18 +1,18 @@
GiveFossilToCinnabarLab: ; 61006 (18:5006)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
xor a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
- ld a, [$cd37]
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld a, [wcd37]
dec a
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $2
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld a, [$cd37]
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld a, [wcd37]
dec a
ld bc, $2
ld hl, $3
@@ -24,13 +24,13 @@
call TextBoxBorder
call UpdateSprites
call Func_610c2
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call HandleMenuInput
bit 1, a
jr nz, .asm_610a7
- ld hl, $cc5b
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wcc5b
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld d, $0
ld e, a
add hl, de
@@ -55,7 +55,7 @@
ld hl, LabFossil_610ae
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
jr nz, .asm_610a7
ld hl, LabFossil_610b3
@@ -65,7 +65,7 @@
callba RemoveItemByID
ld hl, LabFossil_610b8
call PrintText
- ld hl, $d7a3
+ ld hl, wd7a3
set 0, [hl]
set 1, [hl]
ret
@@ -91,7 +91,7 @@
db "@"
Func_610c2: ; 610c2 (18:50c2)
- ld hl, $cc5b
+ ld hl, wcc5b
xor a
ld [$ffdb], a
.asm_610c8
@@ -99,14 +99,13 @@
cp $ff
ret z
push hl
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld a, [$ffdb]
ld bc, $28
call AddNTimes
- ld de, $cd6d
+ ld de, wcd6d
call PlaceString
ld hl, $ffdb
inc [hl]
@@ -116,10 +115,10 @@
; loads the names of the fossil item and the resulting mon
LoadFossilItemAndMonName: ; 610eb (18:50eb)
ld a, [W_FOSSILMON]
- ld [$d11e], a
+ ld [wd11e], a
call GetMonName
call CopyStringToCF4B
ld a, [W_FOSSILITEM]
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
ret
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -1,18 +1,18 @@
UsedCut: ; ef54 (3:6f54)
xor a
- ld [$cd6a], a
- ld a, [W_CURMAPTILESET] ; $d367
+ ld [wcd6a], a
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
and a ; OVERWORLD
jr z, .asm_ef6b
cp GYM
jr nz, .asm_ef77
- ld a, [$cfc6]
+ ld a, [wcfc6]
cp $50 ; gym cut tree
jr nz, .asm_ef77
jr asm_ef82
.asm_ef6b
dec a
- ld a, [$cfc6]
+ ld a, [wcfc6]
cp $3d ; cut tree
jr z, asm_ef82
cp $52 ; grass
@@ -26,16 +26,16 @@
db "@"
asm_ef82: ; ef82 (3:6f82)
- ld [$cd4d], a
+ ld [wcd4d], a
ld a, $1
- ld [$cd6a], a
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld [wcd6a], a
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
+ call ClearSprites
call Func_3dbe
ld a, $90
ld [$ffb0], a
@@ -49,10 +49,10 @@
ld hl, UsedCutText
call PrintText
call LoadScreenTilesFromBuffer2
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ld a, $ff
- ld [$cfcb], a
+ ld [wcfcb], a
call AnimateCutTree
ld de, CutTreeBlockSwaps ; $7100
call Func_f09f
@@ -59,7 +59,7 @@
call Func_eedc
callba Func_79e96
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
ld a, (SFX_02_56 - SFX_Headers_02) / 3
call PlaySound
ld a, $90
@@ -73,32 +73,32 @@
AnimateCutTree: ; eff7 (3:6ff7)
xor a
- ld [$cd50], a
+ ld [wcd50], a
ld a, $e4
ld [rOBP1], a ; $ff49
- ld a, [$cd4d]
+ ld a, [wcd4d]
cp $52
jr z, .asm_f020
ld de, Overworld_GFX + $2d0 ; $42d0 ; cuttable tree sprite top row
- ld hl, $8fc0
+ ld hl, vChars1 + $7c0
ld bc, (BANK(Overworld_GFX) << 8) + $02
call CopyVideoData
ld de, Overworld_GFX + $3d0 ; $43d0 ; cuttable tree sprite bottom row
- ld hl, $8fe0
+ ld hl, vChars1 + $7e0
ld bc, (BANK(Overworld_GFX) << 8) + $02
call CopyVideoData
jr asm_f055
.asm_f020
- ld hl, $8fc0
+ ld hl, vChars1 + $7c0
call LoadCutTreeOAM
- ld hl, $8fd0
+ ld hl, vChars1 + $7d0
call LoadCutTreeOAM
- ld hl, $8fe0
+ ld hl, vChars1 + $7e0
call LoadCutTreeOAM
- ld hl, $8ff0
+ ld hl, vChars1 + $7f0
call LoadCutTreeOAM
call asm_f055
- ld hl, $c393
+ ld hl, wOAMBuffer + $93
ld de, $4
ld a, $30
ld c, e
@@ -125,7 +125,7 @@
db $FE,$10,$FF,$10
Func_f068: ; f068 (3:7068)
- ld hl, $c104
+ ld hl, wSpriteStateData1 + 4
ld a, [hli]
ld b, a
inc hl
@@ -137,7 +137,7 @@
srl a
ld e, a
ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right)
- ld a, [$cd50]
+ ld a, [wcd50]
and a
ld hl, CutTreeAnimationOffsets ; $708f
jr z, .asm_f084
@@ -173,17 +173,17 @@
Func_f09f: ; f09f (3:709f)
push de
- ld a, [W_CURMAPWIDTH] ; $d369
+ ld a, [W_CURMAPWIDTH] ; wd369
add $6
ld c, a
ld b, $0
ld d, $0
- ld hl, $d35f
+ ld hl, wd35f
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr z, .asm_f0c7
cp $4
@@ -190,22 +190,22 @@
jr z, .asm_f0cf
cp $8
jr z, .asm_f0d7
- ld a, [W_XBLOCKCOORD] ; $d364
+ ld a, [W_XBLOCKCOORD] ; wd364
and a
jr z, .asm_f0e0
jr .asm_f0ec
.asm_f0c7
- ld a, [W_YBLOCKCOORD] ; $d363
+ ld a, [W_YBLOCKCOORD] ; wd363
and a
jr z, .asm_f0e0
jr .asm_f0df
.asm_f0cf
- ld a, [W_YBLOCKCOORD] ; $d363
+ ld a, [W_YBLOCKCOORD] ; wd363
and a
jr z, .asm_f0e1
jr .asm_f0e0
.asm_f0d7
- ld a, [W_XBLOCKCOORD] ; $d364
+ ld a, [W_XBLOCKCOORD] ; wd364
and a
jr z, .asm_f0e6
jr .asm_f0e0
--- a/engine/overworld/cut2.asm
+++ b/engine/overworld/cut2.asm
@@ -1,18 +1,18 @@
Func_79e96: ; 79e96 (1e:5e96)
- ld a, [$cd4d]
+ ld a, [wcd4d]
cp $52
jr z, .asm_79ec8
ld c, $8
.asm_79e9f
push bc
- ld hl, $c391
+ ld hl, wOAMBuffer + $91
ld a, $1
- ld [$d08a], a
+ ld [wd08a], a
ld c, $2
call Func_79339
- ld hl, $c399
+ ld hl, wOAMBuffer + $99
ld a, $ff
- ld [$d08a], a
+ ld [wd08a], a
ld c, $2
call Func_79339
ld a, [rOBP1] ; $ff49
@@ -33,9 +33,9 @@
ld c, $8
call Func_79eed
call Func_79f30
- ld hl, $c390
+ ld hl, wOAMBuffer + $90
ld a, $2
- ld [$d08a], a
+ ld [wd08a], a
ld c, $4
call Func_79352
pop bc
@@ -45,24 +45,24 @@
Func_79eed: ; 79eed (1e:5eed)
push bc
- ld hl, $c391
+ ld hl, wOAMBuffer + $91
ld a, $1
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
- ld hl, $c395
+ ld hl, wOAMBuffer + $95
ld a, $2
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
- ld hl, $c399
+ ld hl, wOAMBuffer + $99
ld a, $fe
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
- ld hl, $c39d
+ ld hl, wOAMBuffer + $9d
ld a, $ff
- ld [$d08a], a
+ ld [wd08a], a
ld c, $1
call Func_79339
ld a, [rOBP1] ; $ff49
@@ -75,15 +75,15 @@
ret
Func_79f30: ; 79f30 (1e:5f30)
- ld hl, $c390
- ld de, $cee9
+ ld hl, wOAMBuffer + $90
+ ld de, wHPBarMaxHP
ld bc, $8
call CopyData
- ld hl, $c398
- ld de, $c390
+ ld hl, wOAMBuffer + $98
+ ld de, wOAMBuffer + $90
ld bc, $8
call CopyData
- ld hl, $cee9
- ld de, $c398
+ ld hl, wHPBarMaxHP
+ ld de, wOAMBuffer + $98
ld bc, $8
jp CopyData
--- a/engine/overworld/doors.asm
+++ b/engine/overworld/doors.asm
@@ -1,7 +1,7 @@
HandleDoors: ; 1a609 (6:6609)
push de
ld hl, DoorTileIDPointers ; $662c
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld de, $3
call IsInArray
pop de
@@ -10,8 +10,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
ld b, a
.asm_1a621
ld a, [hli]
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -34,7 +34,7 @@
ld a, (SFX_02_5f - SFX_Headers_02) / 3
call PlayMusic
.asm_7bf57
- ld a, [$c02a]
+ ld a, [wc02a]
cp $b9
jr z, .asm_7bf57
call UpdateSprites
@@ -41,7 +41,7 @@
jp Func_2307
Func_7bf64: ; 7bf64 (1e:7f64)
- ld hl, $d527
+ ld hl, wd527
ld a, [hld]
push af
ld a, [hl]
--- a/engine/overworld/emotion_bubbles.asm
+++ b/engine/overworld/emotion_bubbles.asm
@@ -1,5 +1,5 @@
-PrintEmotionBubble: ; 17c47 (5:7c47)
- ld a, [$cd50]
+EmotionBubble: ; 17c47 (5:7c47)
+ ld a, [wcd50]
ld c, a
ld b, $0
ld hl, EmotionBubblesPointerTable ; $7caf
@@ -8,20 +8,20 @@
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, $8f80
+ ld hl, vChars1 + $780
ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04
call CopyVideoData
- ld a, [$cfcb]
+ ld a, [wcfcb]
push af
ld a, $ff
- ld [$cfcb], a
- ld a, [$d736]
+ ld [wcfcb], a
+ ld a, [wd736]
bit 6, a
- ld hl, $c38f
- ld de, $c39f
+ ld hl, wOAMBuffer + $8f
+ ld de, wOAMBuffer + $9f
jr z, .asm_17c7a
- ld hl, $c37f
- ld de, $c38f
+ ld hl, wOAMBuffer + $7f
+ ld de, wOAMBuffer + $8f
.asm_17c7a
ld bc, $90
.asm_17c7d
@@ -33,8 +33,8 @@
ld a, c
or b
jr nz, .asm_17c7d
- ld hl, $c104
- ld a, [$cd4f]
+ ld hl, wSpriteStateData1 + 4
+ ld a, [wcd4f]
swap a
ld c, a
ld b, $0
@@ -51,7 +51,7 @@
ld c, $3c
call DelayFrames
pop af
- ld [$cfcb], a
+ ld [wcfcb], a
call DelayFrame
jp UpdateSprites
@@ -65,4 +65,4 @@
db $FA,$00,$FB,$00
EmotionBubbles: ; 17cbd (5:7cbd)
- INCBIN "gfx/emotion_bubbles.w16.2bpp"
+ INCBIN "gfx/emotion_bubbles.2bpp"
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -1,9 +1,9 @@
AnimateHealingMachine: ; 70433 (1c:4433)
ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7
- ld hl, $87c0
+ ld hl, vChars0 + $7c0
ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03
call CopyVideoData
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
@@ -12,19 +12,19 @@
push af
ld a, $e0
ld [rOBP1], a ; $ff49
- ld hl, $c384
+ ld hl, wOAMBuffer + $84
ld de, PokeCenterOAMData ; $44d7
call Func_70503
ld a, $4
ld [wMusicHeaderPointer], a
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
.asm_70464
ld a, [wMusicHeaderPointer]
and a
jr nz, .asm_70464
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
ld b, a
.asm_7046e
call Func_70503
@@ -34,23 +34,23 @@
call DelayFrames
dec b
jr nz, .asm_7046e
- ld a, [$c0ef]
+ ld a, [wc0ef]
cp $1f
- ld [$c0f0], a
+ ld [wc0f0], a
jr nz, .asm_70495
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, Bank(Func_9876)
- ld [$c0ef], a
+ ld a, BANK(Music_PkmnHealed)
+ ld [wc0ef], a
.asm_70495
ld a, MUSIC_PKMN_HEALED
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld d, $28
call Func_704f3
.asm_704a2
- ld a, [$c026]
+ ld a, [wc026]
cp MUSIC_PKMN_HEALED
jr z, .asm_704a2
ld c, $20
--- a/engine/overworld/hidden_items.asm
+++ b/engine/overworld/hidden_items.asm
@@ -1,21 +1,20 @@
HiddenItems: ; 76688 (1d:6688)
ld hl, HiddenItemCoords
call Func_76857
- ld [$cd41], a
- ld hl, $d6f0
- ld a, [$cd41]
+ ld [wTrainerScreenX], a
+ ld hl, wd6f0
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $2
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, c
and a
ret nz
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cc3c], a
- ld a, [$cd3d] ; item ID
- ld [$d11e], a
+ ld [wcc3c], a
+ ld a, [wWhichTrade] ; item ID
+ ld [wd11e], a
call GetItemName
ld a, $24
jp PrintPredefTextID
@@ -26,17 +25,16 @@
; XXX where is the pointer to this?
TX_FAR _FoundHiddenItemText
db $8
- ld a, [$cd3d] ; item ID
+ ld a, [wWhichTrade] ; item ID
ld b, a
ld c, 1
call GiveItem
jr nc, .BagFull
- ld hl, $d6f0
- ld a, [$cd41]
+ ld hl, wd6f0
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $1
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, (SFX_02_3b - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
call WaitForSoundToFinish ; wait for sound to finish playing
@@ -44,7 +42,7 @@
.BagFull
call WaitForTextScrollButtonPress ; wait for button press
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, HiddenItemBagFullText
call PrintText
jp TextScriptEnd
@@ -55,20 +53,18 @@
HiddenCoins: ; 76799 (1d:6799)
ld b, COIN_CASE
- ld a, $1c
- call Predef
+ predef IsItemInBag_
ld a, b
and a
ret z
ld hl, HiddenCoinCoords
call Func_76857
- ld [$cd41], a
- ld hl, $d6fe
- ld a, [$cd41]
+ ld [wTrainerScreenX], a
+ ld hl, wd6fe
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $2
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, c
and a
ret nz
@@ -76,7 +72,7 @@
ld [$ff9f], a
ld [$ffa0], a
ld [$ffa1], a
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
sub COIN
cp 10
jr z, .bcd10
@@ -101,17 +97,15 @@
ld a, $1
ld [$ffa0], a
.bcddone
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld hl, $ffa1
ld c, $2
- ld a, $b
- call Predef
- ld hl, $d6fe
- ld a, [$cd41]
+ predef AddBCDPredef
+ ld hl, wd6fe
+ ld a, [wTrainerScreenX]
ld c, a
ld b, $1
- ld a, $10
- call Predef
+ predef FlagActionPredef
call EnableAutoTextBoxDrawing
ld a, [wPlayerCoins]
cp $99
@@ -139,9 +133,9 @@
db "@"
Func_76857: ; 76857 (1d:6857)
- ld a, [$cd40]
+ ld a, [wTrainerScreenY]
ld d, a
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
ld e, a
ld a, [W_CURMAP]
ld b, a
--- a/engine/overworld/hidden_objects.asm
+++ b/engine/overworld/hidden_objects.asm
@@ -1,16 +1,16 @@
Func_46981: ; 46981 (11:6981)
xor a
- ld [$d71e], a
- ld a, [$d72d]
+ ld [wd71e], a
+ ld a, [wd72d]
bit 4, a
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade] ; $cd3d
- ld [$d71e], a
- ld hl, $d72d
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd71e], a
+ ld hl, wd72d
set 4, [hl]
- ld hl, $d732
+ ld hl, wd732
set 4, [hl]
ret
@@ -28,7 +28,7 @@
ld b, a
cp $ff
jr z, .asm_469fc
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp b
jr z, .asm_469be
inc de
@@ -41,7 +41,7 @@
ld h, [hl]
ld l, a
push hl
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
ld [hli], a
@@ -51,10 +51,10 @@
ld a, [hli]
cp $ff
jr z, .asm_469fc
- ld [$cd40], a
+ ld [wTrainerScreenY], a
ld b, a
ld a, [hli]
- ld [$cd41], a
+ ld [wTrainerScreenX], a
ld c, a
call Func_46a01
ld a, [$ffea]
@@ -65,15 +65,15 @@
inc hl
inc hl
push hl
- ld hl, $cd3f
+ ld hl, wTrainerFacingDirection
inc [hl]
pop hl
jr .asm_469ce
.asm_469f0
ld a, [hli]
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld a, [hli]
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, [hli]
ld h, [hl]
ld l, a
@@ -84,7 +84,7 @@
ret
Func_46a01: ; 46a01 (11:6a01)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jr z, .asm_46a16
cp $8
@@ -91,30 +91,30 @@
jr z, .asm_46a25
cp $c
jr z, .asm_46a2b
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
inc a
jr .asm_46a1a
.asm_46a16
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
dec a
.asm_46a1a
cp b
jr nz, .asm_46a3b
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
cp c
jr nz, .asm_46a3b
jr .asm_46a38
.asm_46a25
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
dec a
jr .asm_46a2f
.asm_46a2b
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
inc a
.asm_46a2f
cp c
jr nz, .asm_46a3b
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
cp b
jr nz, .asm_46a3b
.asm_46a38
--- /dev/null
+++ b/engine/overworld/item.asm
@@ -1,0 +1,54 @@
+PickupItem:
+ call EnableAutoTextBoxDrawing
+
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld b, a
+ ld hl, W_MISSABLEOBJECTLIST
+.missableObjectsListLoop
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp b
+ jr z, .isMissable
+ inc hl
+ jr .missableObjectsListLoop
+
+.isMissable
+ ld a, [hl]
+ ld [$ffdb], a
+
+ ld hl, W_MAPSPRITEEXTRADATA
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ dec a
+ add a
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld b, a ; item
+ ld c, 1 ; quantity
+ call GiveItem
+ jr nc, .BagFull
+
+ ld a, [$ffdb]
+ ld [wcc4d], a
+ predef HideObject
+ ld a, 1
+ ld [wcc3c], a
+ ld hl, FoundItemText
+ jr .print
+
+.BagFull
+ ld hl, NoMoreRoomForItemText
+ call PrintText
+ ret
+
+FoundItemText:
+ TX_FAR _FoundItemText
+ db $0B
+ db "@"
+
+NoMoreRoomForItemText:
+ TX_FAR _NoMoreRoomForItemText
+ db "@"
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -1,18 +1,16 @@
HandleLedges: ; 1a672 (6:6672)
- ld a, [$d736]
+ ld a, [wd736]
bit 6, a
ret nz
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
and a ; OVERWORLD
ret nz
- ld a, $35
- call Predef ; indirect jump to Func_c586 (c586 (3:4586))
- ld a, [$c109]
+ predef Func_c586
+ ld a, [wSpriteStateData1 + 9]
ld b, a
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
ld c, a
- ld a, [$cfc6]
+ ld a, [wcfc6]
ld d, a
ld hl, LedgeTiles ; $66cf
.asm_1a691
@@ -38,19 +36,19 @@
inc hl
jr .asm_1a691
.asm_1a6a9
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
and e
ret z
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
set 6, [hl]
call Func_3486
ld a, e
- ld [$ccd3], a
- ld [$ccd4], a
+ ld [wccd3], a
+ ld [wccd4], a
ld a, $2
- ld [$cd38], a
+ ld [wcd38], a
call LoadHoppingShadowOAM
ld a, (SFX_02_4e - SFX_Headers_02) / 3
call PlaySound
@@ -69,7 +67,7 @@
db $FF
LoadHoppingShadowOAM: ; 1a6f0 (6:66f0)
- ld hl, $8ff0
+ ld hl, vChars1 + $7f0
ld de, LedgeHoppingShadow ; $6708
ld bc, (BANK(LedgeHoppingShadow) << 8) + $01
call CopyVideoDataDouble
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -4,7 +4,7 @@
; This is also called after displaying text because loading
; text tile patterns overwrites half of the sprite tile pattern data.
; Note on notation:
-; $C1X* and $C2X* are used to denote $C100-$C1FF and $C200-$C2FF sprite slot
+; $C1X* and $C2X* are used to denote wSpriteStateData1-wSpriteStateData1 + $ff and wSpriteStateData2 + $00-wSpriteStateData2 + $ff sprite slot
; fields, respectively, within loops. The X is the loop index.
; If there is an inner loop, Y is the inner loop index, i.e. $C1Y* and $C2Y*
; denote fields of the sprite slots interated over in the inner loop.
@@ -13,7 +13,7 @@
ret c ; return if the map is an outside map (already handled by above call)
; if the map is an inside map (i.e. mapID >= $25)
ld hl,wSpriteStateData1
- ld de,$c20d
+ ld de,wSpriteStateData2 + $0d
; Loop to copy picture ID's from $C1X0 to $C2XD for LoadMapSpriteTilePatterns.
.copyPictureIDLoop
ld a,[hl] ; $C1X0 (picture ID)
@@ -37,7 +37,7 @@
.spritesExist
ld c,a ; c = [W_NUMSPRITES]
ld b,$10 ; number of sprite slots
- ld hl,$c20d
+ ld hl,wSpriteStateData2 + $0d
xor a
ld [$ff8e],a ; 4-tile sprite counter
.copyPictureIDLoop ; loop to copy picture ID from $C2XD to $C2XE
@@ -48,9 +48,9 @@
ld l,a
dec b
jr nz,.copyPictureIDLoop
- ld hl,$c21e
+ ld hl,wSpriteStateData2 + $1e
.loadTilePatternLoop
- ld de,$c21d
+ ld de,wSpriteStateData2 + $1d
; Check if the current picture ID has already had its tile patterns loaded.
; This done by looping through the previous sprite slots and seeing if any of
; their picture ID's match that of the current sprite slot.
@@ -70,7 +70,7 @@
ld e,a
jr .checkIfAlreadyLoadedLoop
.notAlreadyLoaded
- ld de,$c20e
+ ld de,wSpriteStateData2 + $0e
ld b,$01
; loop to find the highest tile pattern VRAM slot (among the first 10 slots) used by a previous sprite slot
; this is done in order to find the first free VRAM slot available
@@ -126,7 +126,7 @@
push af
push de
push bc
- ld hl,$8000 ; VRAM base address
+ ld hl,vNPCSprites ; VRAM base address
ld bc,$c0 ; number of bytes per VRAM slot
ld a,[$ff8d]
cp a,11 ; is it a 4-tile sprite?
@@ -141,12 +141,12 @@
jr nz,.calculateVRAMAddrLoop
jr .loadStillTilePattern
.fourTileSpriteVRAMAddr
- ld hl,$87c0 ; address for second 4-tile sprite
+ ld hl,vSprites + $7c0 ; address for second 4-tile sprite
ld a,[$ff8e] ; 4-tile sprite counter
and a ; is it the first 4-tile sprite?
jr nz,.loadStillTilePattern
; if it's the first 4-tile sprite
- ld hl,$8780 ; address for first 4-tile sprite
+ ld hl,vSprites + $780 ; address for first 4-tile sprite
inc a
ld [$ff8e],a ; 4-tile sprite counter
.loadStillTilePattern
@@ -159,7 +159,7 @@
ld l,e
pop de
ld b,a
- ld a,[$cfc4]
+ ld a,[wcfc4]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.skipFirstLoad ; if so, skip loading data into the lower half
ld a,b
@@ -180,7 +180,7 @@
jr nc,.noCarry3
inc d
.noCarry3
- ld a,[$cfc4]
+ ld a,[wcfc4]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.loadWhileLCDOn
pop af
@@ -216,7 +216,7 @@
ld l,a
dec c
jp nz,.loadTilePatternLoop
- ld hl,$c20d
+ ld hl,wSpriteStateData2 + $0d
ld b,$10
; the pictures ID's stored at $C2XD are no longer needed, so zero them
.zeroStoredPictureIDLoop
@@ -264,7 +264,7 @@
cp a,$f0 ; does the map have 2 sprite sets?
call nc,GetSplitMapSpriteSetID ; if so, choose the appropriate one
ld b,a ; b = spriteSetID
- ld a,[$cfc4]
+ ld a,[wcfc4]
bit 0,a ; reloading upper half of tile patterns after displaying text?
jr nz,.loadSpriteSet ; if so, forcibly reload the sprite set
ld a,[W_SPRITESETID]
@@ -288,7 +288,7 @@
jr nc,.noCarry2
inc d
.noCarry2
- ld hl,$c20d
+ ld hl,wSpriteStateData2 + $0d
ld a,SPRITE_RED
ld [hl],a
ld bc,W_SPRITESET
@@ -324,7 +324,7 @@
call LoadMapSpriteTilePatterns
pop af
ld [W_NUMSPRITES],a ; restore number of sprites
- ld hl,$c21e
+ ld hl,wSpriteStateData2 + $1e
ld b,$0f
; The VRAM tile pattern slots that LoadMapSpriteTilePatterns set are in the
; order of the map's sprite set, not the order of the actual sprites loaded
@@ -338,7 +338,7 @@
dec b
jr nz,.zeroVRAMSlotsLoop
.skipLoadingSpriteSet
- ld hl,$c110
+ ld hl,wSpriteStateData1 + $10
; This loop stores the correct VRAM tile pattern slots according the sprite
; data from the map's header. Since the VRAM tile pattern slots are filled in
; the order of the sprite set, in order to find the VRAM tile pattern slot
--- /dev/null
+++ b/engine/overworld/movement.asm
@@ -1,0 +1,856 @@
+UpdatePlayerSprite: ; 4e31 (1:4e31)
+ ld a, [wSpriteStateData2]
+ and a
+ jr z, .asm_4e41
+ cp $ff
+ jr z, .asm_4e4a
+ dec a
+ ld [wSpriteStateData2], a
+ jr .asm_4e4a
+.asm_4e41
+ aCoord 8, 9
+ ld [$ff93], a
+ cp $60
+ jr c, .asm_4e50
+.asm_4e4a
+ ld a, $ff
+ ld [wSpriteStateData1 + 2], a
+ ret
+.asm_4e50
+ call Func_4c70
+ ld h, $c1
+ ld a, [wWalkCounter] ; wcfc5
+ and a
+ jr nz, .asm_4e90
+ ld a, [wd528]
+ bit 2, a
+ jr z, .asm_4e65
+ xor a
+ jr .asm_4e86
+.asm_4e65
+ bit 3, a
+ jr z, .asm_4e6d
+ ld a, $4
+ jr .asm_4e86
+.asm_4e6d
+ bit 1, a
+ jr z, .asm_4e75
+ ld a, $8
+ jr .asm_4e86
+.asm_4e75
+ bit 0, a
+ jr z, .asm_4e7d
+ ld a, $c
+ jr .asm_4e86
+.asm_4e7d
+ xor a
+ ld [wSpriteStateData1 + 7], a
+ ld [wSpriteStateData1 + 8], a
+ jr .asm_4eab
+.asm_4e86
+ ld [wSpriteStateData1 + 9], a
+ ld a, [wcfc4]
+ bit 0, a
+ jr nz, .asm_4e7d
+.asm_4e90
+ ld a, [wd736]
+ bit 7, a
+ jr nz, .asm_4eb6
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ cp $4
+ jr nz, .asm_4eab
+ xor a
+ ld [hl], a
+ inc hl
+ ld a, [hl]
+ inc a
+ and $3
+ ld [hl], a
+.asm_4eab
+ ld a, [wSpriteStateData1 + 8]
+ ld b, a
+ ld a, [wSpriteStateData1 + 9]
+ add b
+ ld [wSpriteStateData1 + 2], a
+.asm_4eb6
+ ld a, [$ff93]
+ ld c, a
+ ld a, [W_GRASSTILE]
+ cp c
+ ld a, $0
+ jr nz, .asm_4ec3
+ ld a, $80
+.asm_4ec3
+ ld [wSpriteStateData2 + $07], a
+ ret
+
+Func_4ec7: ; 4ec7 (1:4ec7)
+ push bc
+ push af
+ ld a, [$ffda]
+ ld c, a
+ pop af
+ add c
+ ld l, a
+ pop bc
+ ret
+
+Func_4ed1: ; 4ed1 (1:4ed1)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ swap a
+ dec a
+ add a
+ ld hl, W_MAPSPRITEDATA ; wd4e4
+ add l
+ ld l, a
+ ld a, [hl] ; read movement byte 2
+ ld [wCurSpriteMovement2], a
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ inc l
+ ld a, [hl] ; c1x1
+ and a
+ jp z, InitializeSpriteStatus
+ call CheckSpriteAvailability
+ ret c ; if sprite is invisible, on tile >=$60, in grass or player is currently walking
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ inc l
+ ld a, [hl] ; c1x1
+ bit 7, a
+ jp nz, InitializeSpriteFacingDirection ; c1x1 >= $80
+ ld b, a
+ ld a, [wcfc4]
+ bit 0, a
+ jp nz, notYetMoving
+ ld a, b
+ cp $2
+ jp z, UpdateSpriteMovementDelay ; c1x1 == 2
+ cp $3
+ jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3
+ ld a, [wWalkCounter] ; wcfc5
+ and a
+ ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
+ call InitializeSpriteScreenPosition
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6: movement byte 1
+ inc a
+ jr z, .asm_4f59 ; value $FF
+ inc a
+ jr z, .asm_4f59 ; value $FE
+ dec a
+ ld [hl], a ; (temporarily) increment movement byte 1
+ dec a
+ push hl
+ ld hl, wcf0f
+ dec [hl] ; decrement wcf0f
+ pop hl
+ ld de, wcc5b
+ call LoadDEPlusA ; a = [wcc5b + movement byte 1]
+ cp $e0
+ jp z, ChangeFacingDirection
+ cp $ff
+ jr nz, .asm_4f4b
+ ld [hl], a ; reset movement byte 1 to initial value
+ ld hl, wd730
+ res 0, [hl]
+ xor a
+ ld [wcd38], a
+ ld [wcd3a], a
+ ret
+.asm_4f4b
+ cp $fe
+ jr nz, .asm_4f5f
+ ld [hl], $1 ; set movement byte 1 to $1
+ ld de, wcc5b
+ call LoadDEPlusA ; a = [wcc5b + $fe] (?)
+ jr .asm_4f5f
+.asm_4f59
+ call getTileSpriteStandsOn
+ call Random
+.asm_4f5f
+ ld b, a
+ ld a, [wCurSpriteMovement2]
+ cp $d0
+ jr z, .moveDown ; movement byte 2 = $d0 forces down
+ cp $d1
+ jr z, .moveUp ; movement byte 2 = $d1 forces up
+ cp $d2
+ jr z, .moveLeft ; movement byte 2 = $d2 forces left
+ cp $d3
+ jr z, .moveRight ; movement byte 2 = $d3 forces right
+ ld a, b
+ cp $40 ; a < $40: down (or left)
+ jr nc, .notDown
+ ld a, [wCurSpriteMovement2]
+ cp $2
+ jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
+.moveDown
+ ld de, 2*20
+ add hl, de ; move tile pointer two rows down
+ ld de, $100
+
+ ld bc, $400
+ jr TryWalking
+.notDown
+ cp $80 ; $40 <= a < $80: up (or right)
+ jr nc, .notUp
+ ld a, [wCurSpriteMovement2]
+ cp $2
+ jr z, .moveRight ; movement byte 2 = $2 only allows left or right
+.moveUp
+ ld de, -2*20 ; $ffd8
+ add hl, de ; move tile pointer two rows up
+ ld de, $ff00
+ ld bc, $804
+ jr TryWalking
+.notUp
+ cp $c0 ; $80 <= a < $c0: left (or up)
+ jr nc, .notLeft
+ ld a, [wCurSpriteMovement2]
+ cp $1
+ jr z, .moveUp ; movement byte 2 = $1 only allows up or down
+.moveLeft
+ dec hl
+ dec hl ; move tile pointer two columns left
+ ld de, $ff
+ ld bc, $208
+ jr TryWalking
+.notLeft ; $c0 <= a: right (or down)
+ ld a, [wCurSpriteMovement2]
+ cp $1
+ jr z, .moveDown ; movement byte 2 = $1 only allows up or down
+.moveRight
+ inc hl
+ inc hl ; move tile pointer two columns right
+ ld de, $1
+ ld bc, $10c
+ jr TryWalking
+
+; changes facing direction by zeroing the movement delta and calling TryWalking
+ChangeFacingDirection: ; 4fc8 (1:4fc8)
+ ld de, $0
+ ; fall through
+
+; b: direction (1,2,4 or 8)
+; c: new facing direction (0,4,8 or $c)
+; d: Y movement delta (-1, 0 or 1)
+; e: X movement delta (-1, 0 or 1)
+; hl: pointer to tile the sprite would wlak onto
+; set carry on failure, clears carry on success
+TryWalking: ; 4fcb (1:4fcb)
+ push hl
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld [hl], c ; c1x9 (update facing direction)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $3
+ ld l, a
+ ld [hl], d ; c1x3 (update Y movement delta)
+ inc l
+ inc l
+ ld [hl], e ; c1x5 (update X movement delta)
+ pop hl
+ push de
+ ld c, [hl] ; read tile to walk onto
+ call CanWalkOntoTile
+ pop de
+ ret c ; cannot walk there (reinitialization of delay values already done)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [hl] ; c2x4: Y position
+ add d
+ ld [hli], a ; update Y position
+ ld a, [hl] ; c2x5: X position
+ add e
+ ld [hl], a ; update X position
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ ld [hl], $10 ; c2x0=16: walk animation counter
+ dec h
+ inc l
+ ld [hl], $3 ; c1x1: set movement status to walking
+ jp UpdateSpriteImage
+
+; update the walking animation parameters for a sprite that is currently walking
+UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [hl] ; c1x7 (counter until next walk animation frame)
+ inc a
+ ld [hl], a ; c1x7 += 1
+ cp $4
+ jr nz, .noNextAnimationFrame
+ xor a
+ ld [hl], a ; c1x7 = 0
+ inc l
+ ld a, [hl] ; c1x8 (walk animation frame)
+ inc a
+ and $3
+ ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step)
+.noNextAnimationFrame
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $3
+ ld l, a
+ ld a, [hli] ; c1x3 (movement Y delta)
+ ld b, a
+ ld a, [hl] ; c1x4 (screen Y position)
+ add b
+ ld [hli], a ; update screen Y position
+ ld a, [hli] ; c1x5 (movement X delta)
+ ld b, a
+ ld a, [hl] ; c1x6 (screen X position)
+ add b
+ ld [hl], a ; update screen X position
+ ld a, [H_CURRENTSPRITEOFFSET]
+ ld l, a
+ inc h
+ ld a, [hl] ; c2x0 (walk animantion counter)
+ dec a
+ ld [hl], a ; update walk animantion counter
+ ret nz
+ ld a, $6 ; walking finished, update state
+ add l
+ ld l, a
+ ld a, [hl] ; c2x6 (movement byte 1)
+ cp $fe
+ jr nc, .initNextMovementCounter ; values $fe and $ff
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ dec h
+ ld [hl], $1 ; c1x1 = 1 (movement status ready)
+ ret
+.initNextMovementCounter
+ call Random
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ ld a, [hRandomAdd]
+ and $7f
+ ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f]
+ dec h ; note that value 0 actually makes the delay $100 (bug?)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ ld [hl], $2 ; c1x1 = 2 (movement status)
+ inc l
+ inc l
+ xor a
+ ld b, [hl] ; c1x3 (movement Y delta)
+ ld [hli], a ; reset movement Y delta
+ inc l
+ ld c, [hl] ; c1x5 (movement X delta)
+ ld [hl], a ; reset movement X delta
+ ret
+
+; update delay value (c2x8) for sprites in the delayed state (c1x1)
+UpdateSpriteMovementDelay: ; 5057 (1:5057)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6: movement byte 1
+ inc l
+ inc l
+ cp $fe
+ jr nc, .tickMoveCounter ; values $fe or $ff
+ ld [hl], $0
+ jr .moving
+.tickMoveCounter
+ dec [hl] ; c2x8: frame counter until next movement
+ jr nz, notYetMoving
+.moving
+ dec h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ ld [hl], $1 ; c1x1 = 1 (mark as ready to move)
+notYetMoving: ; 5073 (1:5073)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ ld [hl], $0 ; c1x8 = 0 (walk animation frame)
+ jp UpdateSpriteImage
+
+InitializeSpriteFacingDirection: ; 507f (1:507f)
+ ld a, [wd72d]
+ bit 5, a
+ jr nz, notYetMoving
+ res 7, [hl]
+ ld a, [wd52a]
+ bit 3, a
+ jr z, .notFacingDown
+ ld c, $0 ; make sprite face down
+ jr .facingDirectionDetermined
+.notFacingDown
+ bit 2, a
+ jr z, .notFacingUp
+ ld c, $4 ; make sprite face up
+ jr .facingDirectionDetermined
+.notFacingUp
+ bit 1, a
+ jr z, .notFacingRight
+ ld c, $c ; make sprite face right
+ jr .facingDirectionDetermined
+.notFacingRight
+ ld c, $8 ; make sprite face left
+.facingDirectionDetermined
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld [hl], c ; c1x9: set facing direction
+ jr notYetMoving
+
+InitializeSpriteStatus: ; 50ad (1:50ad)
+ ld [hl], $1 ; $c1x1: set movement status to ready
+ inc l
+ ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen)
+ inc h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld a, $8
+ ld [hli], a ; $c2x2: set Y displacement to 8
+ ld [hl], a ; $c2x3: set X displacement to 8
+ ret
+
+; calculates the spprite's scrren position form its map position and the player position
+InitializeSpriteScreenPosition: ; 50bd (1:50bd)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [W_YCOORD] ; wd361
+ ld b, a
+ ld a, [hl] ; c2x4 (Y position + 4)
+ sub b ; relative to player position
+ swap a ; * 16
+ sub $4 ; - 4
+ dec h
+ ld [hli], a ; c1x4 (screen Y position)
+ inc h
+ ld a, [W_XCOORD] ; wd362
+ ld b, a
+ ld a, [hli] ; c2x6 (X position + 4)
+ sub b ; relative to player position
+ swap a ; * 16
+ dec h
+ ld [hl], a ; c1x6 (screen X position)
+ ret
+
+; tests if sprite is off screen or otherwise unable to do anything
+CheckSpriteAvailability: ; 50dc (1:50dc)
+ predef IsObjectHidden
+ ld a, [$ffe5]
+ and a
+ jp nz, .spriteInvisible
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6: movement byte 1
+ cp $fe
+ jr c, .skipXVisibilityTest ; movement byte 1 < $fe
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld b, [hl] ; c2x4: Y pos (+4)
+ ld a, [W_YCOORD] ; wd361
+ cp b
+ jr z, .skipYVisibilityTest
+ jr nc, .spriteInvisible ; above screen region
+ add $8 ; screen is 9 tiles high
+ cp b
+ jr c, .spriteInvisible ; below screen region
+.skipYVisibilityTest
+ inc l
+ ld b, [hl] ; c2x5: X pos (+4)
+ ld a, [W_XCOORD] ; wd362
+ cp b
+ jr z, .skipXVisibilityTest
+ jr nc, .spriteInvisible ; left of screen region
+ add $9 ; screen is 10 tiles wide
+ cp b
+ jr c, .spriteInvisible ; right of screen region
+.skipXVisibilityTest
+ call getTileSpriteStandsOn
+ ld d, $60
+ ld a, [hli]
+ cp d
+ jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom left tile)
+ ld a, [hld]
+ cp d
+ jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile)
+ ld bc, -20 ; $ffec
+ add hl, bc ; go back one row of tiles
+ ld a, [hli]
+ cp d
+ jr nc, .spriteInvisible ; standing on tile with ID >=$60 (top left tile)
+ ld a, [hl]
+ cp d
+ jr c, .spriteVisible ; standing on tile with ID >=$60 (top right tile)
+.spriteInvisible
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld [hl], $ff ; c1x2
+ scf
+ jr .done
+.spriteVisible
+ ld c, a
+ ld a, [wWalkCounter] ; wcfc5
+ and a
+ jr nz, .done ; if player is currently walking, we're done
+ call UpdateSpriteImage
+ inc h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [W_GRASSTILE]
+ cp c
+ ld a, $0
+ jr nz, .notInGrass
+ ld a, $80
+.notInGrass
+ ld [hl], a ; c2x7
+ and a
+.done
+ ret
+
+UpdateSpriteImage: ; 5157 (1:5157)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ ld a, [hli] ; c1x8: walk animation frame
+ ld b, a
+ ld a, [hl] ; c1x9: facing direction
+ add b
+ ld b, a
+ ld a, [$ff93] ; current sprite offset
+ add b
+ ld b, a
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld [hl], b ; c1x2: sprite to display
+ ret
+
+; tests if sprite can walk the specified direction
+; b: direction (1,2,4 or 8)
+; c: ID of tile the sprite would walk onto
+; d: Y movement delta (-1, 0 or 1)
+; e: X movement delta (-1, 0 or 1)
+; set carry on failure, clears carry on success
+CanWalkOntoTile: ; 516e (1:516e)
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; c2x6 (movement byte 1)
+ cp $fe
+ jr nc, .canMove ; values $fe and $ff
+ and a
+ ret
+.canMove
+ ld a, [W_TILESETCOLLISIONPTR]
+ ld l, a
+ ld a, [W_TILESETCOLLISIONPTR+1]
+ ld h, a
+.tilePassableLoop
+ ld a, [hli]
+ cp $ff
+ jr z, .impassable
+ cp c
+ jr nz, .tilePassableLoop
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $6
+ ld l, a
+ ld a, [hl] ; $c2x6 (movement byte 1)
+ inc a
+ jr z, .impassable ; if $ff, no movement allowed (however, changing direction is)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [hli] ; c1x4 (screen Y pos)
+ add $4 ; align to blocks (Y pos is always 4 pixels off)
+ add d ; add Y delta
+ cp $80 ; if value is >$80, the destination is off screen (either $81 or $FF underflow)
+ jr nc, .impassable ; don't walk off screen
+ inc l
+ ld a, [hl] ; c1x6 (screen X pos)
+ add e ; add X delta
+ cp $90 ; if value is >$90, the destination is off screen (either $91 or $FF underflow)
+ jr nc, .impassable ; don't walk off screen
+ push de
+ push bc
+ call Func_4c70
+ pop bc
+ pop de
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $c
+ ld l, a
+ ld a, [hl] ; c1xc (forbidden directions flags(?))
+ and b ; check against chosen direction (1,2,4 or 8)
+ jr nz, .impassable ; direction forbidden, don't go there
+ ld h, $c2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go)
+ bit 7, d ; check if going upwards (d=$ff)
+ jr nz, .upwards
+ add d
+ cp $5
+ jr c, .impassable ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites
+ jr .checkHorizontal ; from walking out too far, but this line makes sprites get stuck
+.upwards ; whenever they walked upwards 5 steps
+ sub $1 ; on the other hand, the amount a sprite can walk out to the
+ jr c, .impassable ; if d2x2 == 0, don't go ; right of bottom is not limited (until the counter overflows)
+.checkHorizontal
+ ld d, a
+ ld a, [hl] ; c2x3 (sprite X displacement, initialized at $8, keep track of where a sprite did go)
+ bit 7, e ; check if going left (e=$ff)
+ jr nz, .left
+ add e
+ cp $5 ; compare, but no conditional jump like in the vertical check above (bug?)
+ jr .passable
+.left
+ sub $1
+ jr c, .impassable ; if d2x3 == 0, don't go
+.passable
+ ld [hld], a ; update c2x3
+ ld [hl], d ; update c2x2
+ and a ; clear carry (marking success)
+ ret
+.impassable
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ inc a
+ ld l, a
+ ld [hl], $2 ; c1x1 = 2 (set movement status to delayed)
+ inc l
+ inc l
+ xor a
+ ld [hli], a ; c1x3 = 0 (clear Y movement delta)
+ inc l
+ ld [hl], a ; c1x5 = 0 (clear X movement delta)
+ inc h
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $8
+ ld l, a
+ call Random
+ ld a, [hRandomAdd]
+ and $7f
+ ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] (again with delay $100 if value is 0)
+ scf ; set carry (marking failure to walk)
+ ret
+
+; calculates the tile pointer pointing to the tile the current sprite stancs on
+; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to
+; hl: output pointer
+getTileSpriteStandsOn: ; 5207 (1:5207)
+ ld h, $c1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $4
+ ld l, a
+ ld a, [hli] ; c1x4: screen Y position
+ add $4 ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top)
+ and $f0 ; in case object is currently moving
+ srl a ; screen Y tile * 4
+ ld c, a
+ ld b, $0
+ inc l
+ ld a, [hl] ; c1x6: screen Y position
+ srl a
+ srl a
+ srl a ; screen X tile
+ add $14 ; screen X tile + 20
+ ld d, $0
+ ld e, a
+ ld hl, wTileMap
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, de ; wTileMap + 20*(screen Y tile + 1) + screen X tile
+ ret
+
+; loads [de+a] into a
+LoadDEPlusA: ; 522f (1:522f)
+ add e
+ ld e, a
+ jr nc, .noCarry
+ inc d
+.noCarry
+ ld a, [de]
+ ret
+
+Func_5236: ; 5236 (1:5236)
+ ld a, [wd730]
+ bit 7, a
+ ret z
+ ld hl, wd72e
+ bit 7, [hl]
+ set 7, [hl]
+ jp z, Func_52a6
+ ld hl, wcc97
+ ld a, [wcd37]
+ add l
+ ld l, a
+ jr nc, .asm_5251
+ inc h
+.asm_5251
+ ld a, [hl]
+ cp $40
+ jr nz, .asm_525f
+ call Func_52b2
+ ld c, $4
+ ld a, $fe
+ jr .asm_5289
+.asm_525f
+ cp $0
+ jr nz, .asm_526c
+ call Func_52b2
+ ld c, $0
+ ld a, $2
+ jr .asm_5289
+.asm_526c
+ cp $80
+ jr nz, .asm_5279
+ call Func_52b7
+ ld c, $8
+ ld a, $fe
+ jr .asm_5289
+.asm_5279
+ cp $c0
+ jr nz, .asm_5286
+ call Func_52b7
+ ld c, $c
+ ld a, $2
+ jr .asm_5289
+.asm_5286
+ cp $ff
+ ret
+.asm_5289
+ ld b, a
+ ld a, [hl]
+ add b
+ ld [hl], a
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld a, c
+ ld [hl], a
+ call Func_52c3
+ ld hl, wcf18
+ dec [hl]
+ ret nz
+ ld a, $8
+ ld [wcf18], a
+ ld hl, wcd37
+ inc [hl]
+ ret
+
+Func_52a6: ; 52a6 (1:52a6)
+ xor a
+ ld [wcd37], a
+ ld a, $8
+ ld [wcf18], a
+ jp Func_52c3
+
+Func_52b2: ; 52b2 (1:52b2)
+ ld a, $4
+ ld b, a
+ jr asm_52ba
+
+Func_52b7: ; 52b7 (1:52b7)
+ ld a, $6
+ ld b, a
+asm_52ba: ; 52ba (1:52ba)
+ ld hl, wSpriteStateData1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add l
+ add b
+ ld l, a
+ ret
+
+Func_52c3: ; 52c3 (1:52c3)
+ ld hl, wSpriteStateData2
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $e
+ ld l, a
+ ld a, [hl]
+ dec a
+ swap a
+ ld b, a
+ ld hl, wSpriteStateData1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $9
+ ld l, a
+ ld a, [hl]
+ cp $0
+ jr z, .asm_52ea
+ cp $4
+ jr z, .asm_52ea
+ cp $8
+ jr z, .asm_52ea
+ cp $c
+ jr z, .asm_52ea
+ ret
+.asm_52ea
+ add b
+ ld b, a
+ ld [$ffe9], a
+ call Func_5301
+ ld hl, wSpriteStateData1
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $2
+ ld l, a
+ ld a, [$ffe9]
+ ld b, a
+ ld a, [$ffea]
+ add b
+ ld [hl], a
+ ret
+
+Func_5301: ; 5301 (1:5301)
+ ld a, [H_CURRENTSPRITEOFFSET]
+ add $7
+ ld l, a
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ cp $4
+ ret nz
+ xor a
+ ld [hl], a
+ inc l
+ ld a, [hl]
+ inc a
+ and $3
+ ld [hl], a
+ ld [$ffea], a
+ ret
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -1,47 +1,47 @@
Func_1a3e0: ; 1a3e0 (6:63e0)
- ld hl, $d730
+ ld hl, wd730
res 1, [hl]
call HandleDoors
jr nc, .asm_1a406
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
set 1, [hl]
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
xor a
- ld [$c102], a
+ ld [wSpriteStateData1 + 2], a
call Func_3486
ret
.asm_1a406
xor a
- ld [$cd3a], a
- ld [$cd38], a
- ld [$ccd3], a
- ld hl, $d736
+ ld [wcd3a], a
+ ld [wcd38], a
+ ld [wccd3], a
+ ld hl, wd736
res 0, [hl]
res 1, [hl]
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
ret
Func_1a41d: ; 1a41d (6:641d)
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
- ld hl, $d736
+ ld hl, wd736
res 0, [hl]
res 1, [hl]
xor a
- ld [$cf17], a
- ld [$cc57], a
- ld [$cf10], a
- ld [$cd3a], a
- ld [$cd38], a
- ld [$ccd3], a
+ ld [wcf17], a
+ ld [wcc57], a
+ ld [wcf10], a
+ ld [wcd3a], a
+ ld [wcd38], a
+ ld [wccd3], a
ret
PointerTable_1a442: ; 1a442 (6:6442)
@@ -52,74 +52,73 @@
dw Func_1a4f4
Func_1a44c: ; 1a44c (6:644c)
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
sub $a
- ld [$cca1], a
+ ld [wcca1], a
jr z, .asm_1a475
ld b, $0
ld c, a
- ld hl, $cc97
+ ld hl, wcc97
ld a, $80
call FillMemory
ld [hl], $ff
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld de, $cc97
+ ld de, wcc97
call MoveSprite
ld a, $1
- ld [$cf10], a
+ ld [wcf10], a
jr .asm_1a47a
.asm_1a475
ld a, $3
- ld [$cf10], a
+ ld [wcf10], a
.asm_1a47a
ld hl, W_FLAGS_D733
set 1, [hl]
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
Func_1a485: ; 1a485 (6:6485)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
- ld a, [$cca1]
- ld [$cd38], a
+ ld a, [wcca1]
+ ld [wcd38], a
ld [$ff95], a
- ld a, $23
- call Predef
+ predef Func_f9a0
call Func_3486
ld a, $2
- ld [$cf10], a
+ ld [wcf10], a
ret
Func_1a4a1: ; 1a4a1 (6:64a1)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
Func_1a4a6: ; 1a4a6 (6:64a6)
xor a
- ld [$cd3b], a
- ld a, [$cf13]
+ ld [wcd3b], a
+ ld a, [wcf13]
swap a
- ld [$cf17], a
+ ld [wcf17], a
xor a
- ld [$c206], a
- ld hl, $ccd3
+ ld [wSpriteStateData2 + $06], a
+ ld hl, wccd3
ld de, RLEList_1a4e9
call DecodeRLEList
dec a
- ld [$cd38], a
- ld hl, $cc97
+ ld [wcd38], a
+ ld hl, wcc97
ld de, RLEList_1a4dc
call DecodeRLEList
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $4
- ld [$cf10], a
+ ld [wcf10], a
ret
RLEList_1a4dc: ; 1a4dc (6:64dc)
@@ -140,16 +139,15 @@
db $FF
Func_1a4f4: ; 1a4f4 (6:64f4)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $0
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
- ld hl, $d730
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd730
res 7, [hl]
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
jp Func_314e
@@ -158,32 +156,31 @@
dw Func_1a56b
Func_1a514: ; 1a514 (6:6514)
- ld a, Bank(Func_9876)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_MuseumGuy)
+ ld [wc0ef], a
+ ld [wc0f0], a
ld a, MUSIC_MUSEUM_GUY
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, [$cf13]
+ ld a, [wcf13]
swap a
- ld [$cf17], a
+ ld [wcf17], a
call Func_3486
- ld hl, $ccd3
+ ld hl, wccd3
ld de, RLEList_PewterMuseumPlayer
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$d12f], a
- ld a, $4f
- call Predef
- ld hl, $cc97
+ ld [wd12f], a
+ predef PewterGuys
+ ld hl, wcc97
ld de, RLEList_PewterMuseumGuy
call DecodeRLEList
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
ld a, $1
- ld [$cf10], a
+ ld [wcf10], a
ret
RLEList_PewterMuseumPlayer: ; 1a559 (6:6559)
@@ -201,12 +198,12 @@
db $FF
Func_1a56b: ; 1a56b (6:656b)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
jp Func_314e
@@ -215,35 +212,34 @@
dw Func_1a56b
Func_1a581: ; 1a581 (6:6581)
- ld a, Bank(Func_9876)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_MuseumGuy)
+ ld [wc0ef], a
+ ld [wc0f0], a
ld a, MUSIC_MUSEUM_GUY
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
- ld a, [$cf13]
+ ld a, [wcf13]
swap a
- ld [$cf17], a
+ ld [wcf17], a
xor a
- ld [$c206], a
- ld hl, $ccd3
+ ld [wSpriteStateData2 + $06], a
+ ld hl, wccd3
ld de, RLEList_PewterGymPlayer
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
ld a, $1
- ld [$d12f], a
- ld a, $4f
- call Predef
- ld hl, $cc97
+ ld [wd12f], a
+ predef PewterGuys
+ ld hl, wcc97
ld de, RLEList_PewterGymGuy
call DecodeRLEList
- ld hl, $d72e
+ ld hl, wd72e
res 7, [hl]
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $1
- ld [$cf10], a
+ ld [wcf10], a
ret
RLEList_PewterGymPlayer: ; 1a5cd (6:65cd)
@@ -266,7 +262,7 @@
; XXX why would this function want to return on POKEMONTOWER_7?
Func_1a5e7: ; 1a5e7 (6:65e7)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp POKEMONTOWER_7
ret z
ld hl, RivalIDs ; $6605
@@ -280,7 +276,7 @@
ret z
jr .loop
.notRival
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp SetSpriteMovementBytesToFF
--- a/engine/overworld/oaks_aide.asm
+++ b/engine/overworld/oaks_aide.asm
@@ -2,13 +2,13 @@
ld hl, OaksAideHiText
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_59086 ; 0x59042 $42
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$d11e]
+ ld a, [wd11e]
ld [$ffdd], a
ld b, a
ld a, [$ffdb]
--- /dev/null
+++ b/engine/overworld/oam.asm
@@ -1,0 +1,178 @@
+PrepareOAMData:
+; Determine OAM data for currently visible
+; sprites and write it to wOAMBuffer.
+
+ ld a, [wcfcb]
+ dec a
+ jr z, .asm_4b1e
+
+ cp 0 - 1
+ ret nz
+ ld [wcfcb], a
+ jp HideSprites
+
+.asm_4b1e
+ xor a
+ ld [$ff90], a
+.asm_4b21
+ ld [$ff8f], a
+
+ ld d, wSpriteStateData1 / $100
+ ld a, [$ff8f]
+ ld e, a
+ ld a, [de] ; c1x0
+ and a
+ jp z, .asm_4bad
+
+ inc e
+ inc e
+ ld a, [de] ; c1x2 (facing/anim)
+ ld [wd5cd], a
+ cp $ff ; off-screen (don't draw)
+ jr nz, .visible
+
+ call Func_4bd1
+ jr .asm_4bad
+
+.visible
+ cp $a0
+ jr c, .usefacing
+ and $f
+ add $10
+ jr .asm_4b48
+
+.usefacing
+ and $f
+.asm_4b48
+ ld l, a
+
+ push de
+ inc d
+ ld a, e
+ add $5
+ ld e, a
+ ld a, [de] ; c2x7
+ and $80
+ ld [$ff94], a ; temp store sprite priority
+ pop de
+
+ ld h, 0
+ ld bc, SpriteFacingAndAnimationTable
+ add hl, hl
+ add hl, hl
+ add hl, bc
+
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ call Func_4bd1
+
+ ld a, [$ff90]
+ ld e, a
+ ld d, wOAMBuffer / $100
+.tile
+ ld a, [$ff92] ; temp for sprite Y position
+ add $10 ; Y=16 is top of screen (Y=0 is invisible)
+ add [hl] ; add Y offset from table
+ ld [de], a ; write new sprite OAM Y position
+ inc hl
+ ld a, [$ff91] ; temp for sprite X position
+ add $8 ; X=8 is left of screen (X=0 is invisible)
+ add [hl] ; add X offset from table
+ inc e
+ ld [de], a ; write new sprite OAM X position
+ inc e
+ ld a, [bc] ; read pattern number offset (accomodates orientation (offset 0,4 or 8) and animation (offset 0 or $80))
+ inc bc
+ push bc
+ ld b, a
+
+ ld a, [wd5cd] ; temp copy of c1x2
+ swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs)
+ and $f
+
+ ; Sprites $a and $b have one face (and therefore 4 tiles instead of 12).
+ ; As a result, sprite $b's tile offset is less than normal.
+ cp $b
+ jr nz, .offset
+ ld a, $a * 12 + 4
+ jr .gotoffset
+
+.offset
+ ; a *= 12
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+.gotoffset
+ add b ; which frame
+ pop bc
+ ld [de], a ; tile id
+ inc hl
+ inc e
+ ld a, [hl]
+ bit 1, a ; sprite priority
+ jr z, .fg
+ ld a, [$ff94] ; facing priority
+ or [hl]
+.fg
+ inc hl
+ ld [de], a
+ inc e
+ bit 0, a ; OAMFLAG_ENDOFDATA
+ jr z, .tile
+
+ ld a, e
+ ld [$ff90], a
+
+.asm_4bad
+ ld a, [$ff8f]
+ add $10
+ cp $100 % $100
+ jp nz, .asm_4b21
+
+ ; Clear unused OAM.
+ ld a, [$ff90]
+ ld l, a
+ ld h, wOAMBuffer / $100
+ ld de, $4
+ ld b, $a0
+ ld a, [wd736]
+ bit 6, a
+ ld a, $a0
+ jr z, .clear
+ ld a, $90
+.clear
+ cp l
+ ret z
+ ld [hl], b
+ add hl, de
+ jr .clear
+
+Func_4bd1: ; 4bd1 (1:4bd1)
+ inc e
+ inc e
+ ld a, [de] ; c1x4
+ ld [$ff92], a
+ inc e
+ inc e
+ ld a, [de] ; c1x6
+ ld [$ff91], a
+ ld a, $4
+ add e
+ ld e, a
+ ld a, [$ff92]
+ add $4
+ and $f0
+ ld [de], a ; c1xa (y)
+ inc e
+ ld a, [$ff91]
+ and $f0
+ ld [de], a ; c1xb (x)
+ ret
--- a/engine/overworld/pewter_guys.asm
+++ b/engine/overworld/pewter_guys.asm
@@ -1,8 +1,8 @@
PewterGuys: ; 37ca1 (d:7ca1)
- ld hl, $ccd3
- ld a, [$cd38]
+ ld hl, wccd3
+ ld a, [wcd38]
dec a
- ld [$cd38], a
+ ld [wcd38], a
ld d, 0
ld e, a
add hl, de
@@ -9,7 +9,7 @@
ld d, h
ld e, l
ld hl, PointerTable_37ce6
- ld a, [$d12f]
+ ld a, [wd12f]
add a
ld b, 0
ld c, a
@@ -37,9 +37,9 @@
ret z
ld [de], a
inc de
- ld a, [$cd38]
+ ld a, [wcd38]
inc a
- ld [$cd38], a
+ ld [wcd38], a
jr .asm_37cd2
.asm_37ce1
inc hl
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -1,7 +1,7 @@
Func_70510: ; 70510 (1c:4510)
call Func_706ef
ld a, $ec
- ld [$c104], a
+ ld [wSpriteStateData1 + 4], a
call Delay3
push hl
call GBFadeIn2
@@ -11,7 +11,7 @@
jr nz, .asm_70568
ld a, (SFX_02_4c - SFX_Headers_02) / 3
call PlaySound
- ld hl, $d732
+ ld hl, wd732
bit 4, [hl]
res 4, [hl]
pop hl
@@ -23,7 +23,7 @@
ld a, b
and a
jr nz, .asm_7055b
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
inc a
@@ -31,7 +31,7 @@
ld a, $8
ld [hli], a
ld [hl], $ff
- ld hl, $cd48
+ ld hl, wcd48
call Func_70730
.asm_70558
call Func_2307
@@ -45,13 +45,13 @@
.asm_70568
pop hl
ld de, BirdSprite ; $4d80
- ld hl, $8000
+ ld hl, vNPCSprites
ld bc, (BANK(BirdSprite) << 8) + $0c
call CopyVideoData
call Func_706d7
ld a, (SFX_02_50 - SFX_Headers_02) / 3
call PlaySound
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
ld a, $c
@@ -80,7 +80,7 @@
db $3C, $40
Func_705aa: ; 705aa (1c:45aa)
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $10
ld [hli], a
ld a, $3c
@@ -89,7 +89,7 @@
ld [hl], a
jp Func_70755
-_DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
+_LeaveMapAnim: ; 705ba (1c:45ba)
call Func_706ef
call Func_70787
ld a, b
@@ -100,7 +100,7 @@
.asm_705c8
ld a, (SFX_02_4b - SFX_Headers_02) / 3
call PlaySound
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $f0
ld [hli], a
ld a, $ec
@@ -120,10 +120,10 @@
.asm_705ef
ld a, $4
call StopMusic
- ld a, [$d732]
+ ld a, [wd732]
bit 6, a
jr z, .asm_70610
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $10
ld [hli], a
ld a, $ff
@@ -131,12 +131,12 @@
xor a
ld [hli], a
ld [hl], $a1
- ld hl, $cd48
+ ld hl, wcd48
call Func_70730
jr .asm_705c8
.asm_70610
call Func_706d7
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld a, $ff
ld [hli], a
ld a, $8
@@ -145,7 +145,7 @@
call Func_706ae
ld a, (SFX_02_50 - SFX_Headers_02) / 3
call PlaySound
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
xor a
ld [hli], a
ld a, $c
@@ -155,7 +155,7 @@
call Func_706ae
ld c, $28
call DelayFrames
- ld hl, $cd3e
+ ld hl, wTrainerEngageDistance
ld a, $b
ld [hli], a
ld [hl], $8
@@ -200,34 +200,34 @@
Func_7067d: ; 7067d (1c:467d)
ld a, $ff
- ld [$cfcb], a
- ld a, [$c302]
- ld [$c30a], a
- ld a, [$c306]
- ld [$c30e], a
+ ld [wcfcb], a
+ ld a, [wOAMBuffer + $02]
+ ld [wOAMBuffer + $0a], a
+ ld a, [wOAMBuffer + $06]
+ ld [wOAMBuffer + $0e], a
ld a, $a0
ld [wOAMBuffer], a
- ld [$c304], a
+ ld [wOAMBuffer + $04], a
ld c, $2
call DelayFrames
ld a, $a0
- ld [$c308], a
- ld [$c30c], a
+ ld [wOAMBuffer + $08], a
+ ld [wOAMBuffer + $0c], a
call GBFadeOut2
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
jp Func_70772
Func_706ae: ; 706ae (1c:46ae)
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
xor $1
- ld [$cd3f], a
- ld [$c102], a
+ ld [wTrainerFacingDirection], a
+ ld [wSpriteStateData1 + 2], a
call Delay3
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp $ff
jr z, .asm_706cd
- ld hl, $c104
+ ld hl, wSpriteStateData1 + 4
ld a, [de]
inc de
ld [hli], a
@@ -236,33 +236,33 @@
inc de
ld [hl], a
.asm_706cd
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
dec a
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
jr nz, Func_706ae
ret
Func_706d7: ; 706d7 (1c:46d7)
ld de, BirdSprite ; $4d80
- ld hl, $8000
+ ld hl, vNPCSprites
ld bc, (BANK(BirdSprite) << 8) + $0c
call CopyVideoData
ld de, BirdSprite + $c0 ; $4e40 ; moving amination sprite
- ld hl, $8800
+ ld hl, vNPCSprites2
ld bc, (BANK(BirdSprite) << 8) + $0c
jp CopyVideoData
Func_706ef: ; 706ef (1c:46ef)
- ld a, [$c102]
- ld [$cd50], a
- ld a, [$c104]
- ld [$cd4f], a
+ ld a, [wSpriteStateData1 + 2]
+ ld [wcd50], a
+ ld a, [wSpriteStateData1 + 4]
+ ld [wcd4f], a
ld hl, PlayerSpinningFacingOrder ; $4713
- ld de, $cd48
+ ld de, wcd48
ld bc, $4
call CopyData
- ld a, [$c102]
- ld hl, $cd48
+ ld a, [wSpriteStateData1 + 2]
+ ld hl, wcd48
.asm_7070d
cp [hl]
inc hl
@@ -277,32 +277,32 @@
Func_70717: ; 70717 (1c:4717)
ld a, [hl]
- ld [$c102], a
+ ld [wSpriteStateData1 + 2], a
push hl
- ld hl, $cd48
- ld de, $cd47
+ ld hl, wcd48
+ ld de, wcd47
ld bc, $4
call CopyData
- ld a, [$cd47]
- ld [$cd4b], a
+ ld a, [wcd47]
+ ld [wcd4b], a
pop hl
ret
Func_70730: ; 70730 (1c:4730)
call Func_70717
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
and $3
jr nz, .asm_70743
- ld a, [$cd40]
+ ld a, [wTrainerScreenY]
cp $ff
call nz, PlaySound
.asm_70743
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
add c
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld c, a
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
cp c
ret z
call DelayFrames
@@ -310,29 +310,29 @@
Func_70755: ; 70755 (1c:4755)
call Func_70717
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
- ld a, [$c104]
+ ld a, [wSpriteStateData1 + 4]
add c
- ld [$c104], a
+ ld [wSpriteStateData1 + 4], a
ld c, a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
cp c
ret z
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
ld c, a
call DelayFrames
jr Func_70755
Func_70772: ; 70772 (1c:4772)
- ld a, [$cd4f]
- ld [$c104], a
- ld a, [$cd50]
- ld [$c102], a
+ ld a, [wcd4f]
+ ld [wSpriteStateData1 + 4], a
+ ld a, [wcd50]
+ ld [wSpriteStateData1 + 2], a
ret
Func_7077f: ; 7077f (1c:477f)
- ld a, [$cf1b]
+ ld a, [wcf1b]
xor $1
inc a
inc a
@@ -341,7 +341,7 @@
Func_70787: ; 70787 (1c:4787)
ld b, 0
ld hl, DataTable_707a9 ; $47a9
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld c, a
.asm_70790
ld a, [hli]
@@ -349,8 +349,7 @@
jr z, .asm_707a4
cp c
jr nz, .asm_7079e
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
cp [hl]
jr z, .asm_707a2
.asm_7079e
@@ -362,10 +361,10 @@
ld b, [hl]
.asm_707a4
ld a, b
- ld [$cd5b], a
+ ld [wcd5b], a
ret
-; format: db tileset id, tile id, value to be put in $cd5b
+; format: db tileset id, tile id, value to be put in wcd5b
DataTable_707a9: ; 707a9 (1c:47a9)
db FACILITY, $20, 1 ; warp pad
db FACILITY, $11, 2 ; hole
@@ -376,26 +375,26 @@
Func_707b6: ; 707b6 (1c:47b6)
ld c, $a
call DelayFrames
- ld hl, $d736
+ ld hl, wd736
set 6, [hl]
ld de, RedSprite ; $4180
- ld hl, $8000
+ ld hl, vNPCSprites
ld bc, (BANK(RedSprite) << 8) + $0c
call CopyVideoData
ld a, $4
ld hl, RedFishingTiles ; $4866
call Func_71771
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
ld c, a
ld b, $0
ld hl, FishingRodGfxProperties ; $4856
add hl, bc
- ld de, $c39c
+ ld de, wOAMBuffer + $9c
ld bc, $4
call CopyData
ld c, $64
call DelayFrames
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
and a
ld hl, NoNibbleText
jr z, .asm_70836
@@ -404,35 +403,34 @@
jr z, .asm_70836
ld b, $a
.asm_707fe
- ld hl, $c104
+ ld hl, wSpriteStateData1 + 4
call Func_70842
- ld hl, $c39c
+ ld hl, wOAMBuffer + $9c
call Func_70842
call Delay3
dec b
jr nz, .asm_707fe
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
cp $4
jr nz, .asm_7081c
ld a, $a0
- ld [$c39c], a
+ ld [wOAMBuffer + $9c], a
.asm_7081c
- ld hl, $cd4f
+ ld hl, wcd4f
xor a
ld [hli], a
ld [hl], a
- ld a, $4c
- call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47))
- ld a, [$c102]
+ predef EmotionBubble
+ ld a, [wSpriteStateData1 + 2]
cp $4
jr nz, .asm_70833
ld a, $44
- ld [$c39c], a
+ ld [wOAMBuffer + $9c], a
.asm_70833
ld hl, ItsABiteText
.asm_70836
call PrintText
- ld hl, $d736
+ ld hl, wd736
res 6, [hl]
call LoadFontTilePatterns
ret
@@ -468,51 +466,51 @@
RedFishingTiles: ; 70866 (1c:4866)
dw RedFishingTilesFront
- db $02, $1E
- dw $8020
+ db 2, BANK(RedFishingTilesFront)
+ dw vNPCSprites + $20
dw RedFishingTilesBack
- db $02, $1E
- dw $8060
+ db 2, BANK(RedFishingTilesBack)
+ dw vNPCSprites + $60
dw RedFishingTilesSide
- db $02, $1E
- dw $80A0
+ db 2, BANK(RedFishingTilesSide)
+ dw vNPCSprites + $a0
dw RedFishingRodTiles
- db $03, $1E
- dw $8FD0
+ db 3, BANK(RedFishingRodTiles)
+ dw vNPCSprites2 + $7d0
_HandleMidJump: ; 7087e (1c:487e)
- ld a, [$d714]
+ ld a, [wd714]
ld c, a
inc a
cp $10
jr nc, .asm_70895
- ld [$d714], a
+ ld [wd714], a
ld b, $0
ld hl, PlayerJumpingYScreenCoords ; $48ba
add hl, bc
ld a, [hl]
- ld [$c104], a ; player's sprite y coordinate
+ ld [wSpriteStateData1 + 4], a ; player's sprite y coordinate
ret
.asm_70895
- ld a, [wWalkCounter] ; $cfc5
+ ld a, [wWalkCounter] ; wcfc5
cp $0
ret nz
call UpdateSprites
call Delay3
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_NEWLYRELEASEDBUTTONS], a
- ld [$d714], a
- ld hl, $d736
+ ld [hJoyHeld], a
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
+ ld [wd714], a
+ ld hl, wd736
res 6, [hl]
- ld hl, $d730
+ ld hl, wd730
res 7, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
PlayerJumpingYScreenCoords: ; 708ba (1c:48ba)
--- a/engine/overworld/pokecenter.asm
+++ b/engine/overworld/pokecenter.asm
@@ -2,7 +2,7 @@
call SaveScreenTilesToBuffer1 ; save screen
ld hl, PokemonCenterWelcomeText
call PrintText
- ld hl, $d72e
+ ld hl, wd72e
bit 2, [hl]
set 1, [hl]
set 2, [hl]
@@ -19,22 +19,22 @@
ld hl, NeedYourPokemonText
call PrintText
ld a, $18
- ld [$c112], a ; make the nurse turn to face the machine
+ ld [wSpriteStateData1 + $12], a ; make the nurse turn to face the machine
call Delay3
- PREDEF HealPartyPredef
+ predef HealParty
callba AnimateHealingMachine ; do the healing machine animation
xor a
ld [wMusicHeaderPointer], a
- ld a, [$c0f0]
- ld [$c0ef], a
- ld a, [$d35b]
- ld [$cfca], a
- ld [$c0ee], a
+ ld a, [wc0f0]
+ ld [wc0ef], a
+ ld a, [wd35b]
+ ld [wcfca], a
+ ld [wc0ee], a
call PlaySound
ld hl, PokemonFightingFitText
call PrintText
ld a, $14
- ld [$c112], a ; make the nurse bow
+ ld [wSpriteStateData1 + $12], a ; make the nurse bow
ld c, a
call DelayFrames
jr .done
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -1,30 +1,30 @@
DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld a,[wListScrollOffset]
- ld [$d07e],a
+ ld [wd07e],a
call UpdateSprites ; move sprites
xor a
- ld [$cf0a],a ; flag that is set if something is sold or bought
+ ld [wcf0a],a ; flag that is set if something is sold or bought
.loop
xor a
ld [wListScrollOffset],a
ld [wCurrentMenuItem],a
- ld [$cc2f],a
+ ld [wPlayerMonNumber],a
inc a
- ld [$cf93],a
+ ld [wcf93],a
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
ld a,$15
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; do buy/sell/quit menu
- ld hl,$d128 ; pointer to this pokemart's inventory
+ ld hl,wd128 ; pointer to this pokemart's inventory
ld a,[hli]
ld l,[hl]
ld h,a ; hl = address of inventory
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,$02
jp z,.done
- ld a,[$d12d] ; ID of the chosen menu item
+ ld a,[wd12d] ; ID of the chosen menu item
and a ; buying?
jp z,.buyMenu
dec a ; selling?
@@ -33,9 +33,9 @@
jp z,.done
.sellMenu
xor a
- ld [$cf93],a
+ ld [wcf93],a
ld a,$02
- ld [$d11b],a
+ ld [wd11b],a
callab Func_39bd5
ld a,[wNumBagItems]
and a
@@ -46,15 +46,15 @@
.sellMenuLoop
call LoadScreenTilesFromBuffer1 ; restore saved screen
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
ld hl,wNumBagItems
ld a,l
- ld [$cf8b],a
+ ld [wcf8b],a
ld a,h
- ld [$cf8c],a
+ ld [wcf8c],a
xor a
- ld [$cf93],a
+ ld [wcf93],a
ld [wCurrentMenuItem],a
ld a,ITEMLISTMENU
ld [wListMenuID],a
@@ -62,10 +62,10 @@
jp c,.returnToMainPokemartMenu ; if the player closed the menu
.confirmItemSale ; if the player is trying to sell a specific item
call IsKeyItem ; check if item is unsellable
- ld a,[$d124]
+ ld a,[wd124]
and a
jr nz,.unsellableItem
- ld a,[$cf91]
+ ld a,[wcf91]
call IsItemHM
jr c,.unsellableItem
ld a,PRICEDITEMLISTMENU
@@ -77,24 +77,23 @@
ld hl,PokemartTellSellPriceText
ld bc,$0e01
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,$02
jr z,.sellMenuLoop ; if the player pressed the B button
- ld a,[$d12d] ; ID of the chosen menu item
+ ld a,[wd12d] ; ID of the chosen menu item
dec a
jr z,.sellMenuLoop ; if the player chose No
.sellItem
- ld a,[$cf0a] ; flag that is set if something is sold or bought
+ ld a,[wcf0a] ; flag that is set if something is sold or bought
and a
jr nz,.skipSettingFlag1
inc a
- ld [$cf0a],a
+ ld [wcf0a],a
.skipSettingFlag1
call AddAmountSoldToMoney
ld hl,wNumBagItems
@@ -111,9 +110,9 @@
jp .returnToMainPokemartMenu
.buyMenu
ld a,$01
- ld [$cf93],a
+ ld [wcf93],a
ld a,$03
- ld [$d11b],a
+ ld [wd11b],a
callab Func_39bd5
ld hl,PokemartBuyingGreetingText
call PrintText
@@ -121,44 +120,43 @@
.buyMenuLoop
call LoadScreenTilesFromBuffer1 ; restore saved screen
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
- ld hl,$cf7b
+ ld hl,wStringBuffer2 + 11
ld a,l
- ld [$cf8b],a
+ ld [wcf8b],a
ld a,h
- ld [$cf8c],a
+ ld [wcf8c],a
xor a
ld [wCurrentMenuItem],a
inc a
- ld [$cf93],a
+ ld [wcf93],a
inc a ; a = 2 (PRICEDITEMLISTMENU)
ld [wListMenuID],a
call DisplayListMenuID
jr c,.returnToMainPokemartMenu ; if the player closed the menu
ld a,$63
- ld [$cf97],a
+ ld [wcf97],a
xor a
ld [$ff8e],a
call DisplayChooseQuantityMenu
inc a
jr z,.buyMenuLoop ; if the player closed the choose quantity menu with the B button
- ld a,[$cf91] ; item ID
- ld [$d11e],a ; store item ID for GetItemName
+ ld a,[wcf91] ; item ID
+ ld [wd11e],a ; store item ID for GetItemName
call GetItemName
- call CopyStringToCF4B ; copy name to $cf4b
+ call CopyStringToCF4B ; copy name to wcf4b
ld hl,PokemartTellBuyPriceText
call PrintText
- FuncCoord 14,7
- ld hl,Coord
+ hlCoord 14, 7
ld bc,$080f
ld a,$14
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[$d12e]
+ ld a,[wd12e]
cp a,$02
jp z,.buyMenuLoop ; if the player pressed the B button
- ld a,[$d12d] ; ID of the chosen menu item
+ ld a,[wd12d] ; ID of the chosen menu item
dec a
jr z,.buyMenuLoop ; if the player chose No
.buyItem
@@ -168,11 +166,11 @@
call AddItemToInventory
jr nc,.bagFull
call SubtractAmountPaidFromMoney
- ld a,[$cf0a] ; flag that is set if something is sold or bought
+ ld a,[wcf0a] ; flag that is set if something is sold or bought
and a
jr nz,.skipSettingFlag2
ld a,$01
- ld [$cf0a],a
+ ld [wcf0a],a
.skipSettingFlag2
ld a,(SFX_02_5a - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent ; play sound
@@ -183,7 +181,7 @@
.returnToMainPokemartMenu
call LoadScreenTilesFromBuffer1 ; restore save screen
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; draw money text box
ld hl,PokemartAnythingElseText
call PrintText
@@ -205,9 +203,9 @@
ld hl,PokemartThankYouText
call PrintText
ld a,$01
- ld [$cfcb],a
+ ld [wcfcb],a
call UpdateSprites ; move sprites
- ld a,[$d07e]
+ ld a,[wd07e]
ld [wListScrollOffset],a
ret
--- a/engine/overworld/ssanne.asm
+++ b/engine/overworld/ssanne.asm
@@ -1,10 +1,10 @@
Func_79f54: ; 79f54 (1e:5f54)
ld a, $1
- ld [$cd50], a
- ld a, [$cfcb]
+ ld [wcd50], a
+ ld a, [wcfcb]
push af
ld a, $ff
- ld [$cfcb], a
+ ld [wcfcb], a
ld a, $e4
ld [rOBP1], a ; $ff49
call LoadSmokeTileFourTimes
@@ -26,17 +26,17 @@
dec c
jr nz, .asm_79f73
pop af
- ld [$cfcb], a
+ ld [wcfcb], a
jp LoadPlayerSpriteGraphics
Func_79f92: ; 79f92 (1e:5f92)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
ld hl, PointerTable_79fb0 ; $5fb0
ld c, a
ld b, $0
add hl, bc
ld a, [hli]
- ld [$d08a], a
+ ld [wd08a], a
ld a, [hli]
ld e, a
ld a, [hli]
@@ -43,7 +43,7 @@
ld h, [hl]
ld l, a
push hl
- ld hl, $c390
+ ld hl, wOAMBuffer + $90
ld d, $0
add hl, de
ld e, l
@@ -65,7 +65,7 @@
dw Func_79337
LoadSmokeTileFourTimes: ; 79fc0 (1e:5fc0)
- ld hl, $8fc0
+ ld hl, vChars1 + $7c0
ld c, $4
.loop
push bc
--- a/engine/overworld/trainers.asm
+++ b/engine/overworld/trainers.asm
@@ -1,7 +1,7 @@
Func_567f9: ; 567f9 (15:67f9)
ld hl, wSpriteStateData1
ld de, $4
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
ld a, [hli]
@@ -20,26 +20,26 @@
Func_56819: ; 56819 (15:6819)
ld hl, wSpriteStateData1
ld de, $0004
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
ld a, [hli]
- ld [$d130], a
+ ld [wd130], a
inc hl
ld a, [hl]
- ld [$d131], a
+ ld [wd131], a
ld de, $00fe
add hl, de
ld a, [hli]
- ld [$d132], a
+ ld [wd132], a
ld a, [hl]
- ld [$d133], a
+ ld [wd133], a
ret
Func_5683d: ; 5683d (15:683d)
ld hl, wSpriteStateData1
ld de, $4
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
ld a, [$ffeb]
@@ -58,26 +58,26 @@
Func_5685d: ; 5685d (15:685d)
ld hl, wSpriteStateData1
ld de, $0004
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call Func_56903
- ld a, [$d130]
+ ld a, [wd130]
ld [hli], a
inc hl
- ld a, [$d131]
+ ld a, [wd131]
ld [hl], a
ld de, $00fe
add hl, de
- ld a, [$d132]
+ ld a, [wd132]
ld [hli], a
- ld a, [$d133]
+ ld a, [wd133]
ld [hl], a
ret
TrainerWalkUpToPlayer: ; 56881 (15:6881)
- ld a, [$cf13]
+ ld a, [wcf13]
swap a
- ld [wTrainerSpriteOffset], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
call ReadTrainerScreenPosition
ld a, [wTrainerFacingDirection]
and a
@@ -127,7 +127,7 @@
ld a, $c0 ; a = direction to go to
jr .writeWalkScript
.facingLeft
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
ld b, a
ld a, $40 ; (fixed) player screen X pos
call CalcDifference
@@ -139,11 +139,11 @@
ld b, $0
ld a, $80 ; a = direction to go to
.writeWalkScript
- ld hl, $cc97
- ld de, $cc97
+ ld hl, wcc97
+ ld de, wcc97
call FillMemory ; write the necessary steps to reach player
ld [hl], $ff ; write end of list sentinel
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp MoveSprite_
@@ -159,10 +159,10 @@
ret
; tests if this trainer is in the right position to engage the player and do so if she is.
-CheckEngagePlayer: ; 5690f (15:690f)
+TrainerEngage: ; 5690f (15:690f)
push hl
push de
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $2
ld d, $0
ld e, a
@@ -173,7 +173,7 @@
jr nz, .spriteOnScreen ; test if sprite is on screen
jp .noEngage
.spriteOnScreen
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $9
ld d, $0
ld e, a
@@ -180,14 +180,14 @@
ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x9: facing direction
- ld [$cd3f], a
+ ld [wTrainerFacingDirection], a
call ReadTrainerScreenPosition
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
ld b, a
ld a, $3c
cp b
jr z, .linedUpY
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
ld b, a
ld a, $40
cp b
@@ -195,7 +195,7 @@
xor a
jp .noEngage
.linedUpY
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
ld b, a
ld a, $40 ; (fixed) player X position
call CalcDifference ; calc distance
@@ -205,7 +205,7 @@
xor a
jr .noEngage
.linedUpX
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
ld b, a
ld a, $3c ; (fixed) player Y position
call CalcDifference ; calc distance
@@ -216,7 +216,7 @@
jp .noEngage
.engage
call CheckPlayerIsInFrontOfSprite
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
and a
jr z, .noEngage
ld hl, wFlags_0xcd60
@@ -224,14 +224,14 @@
call EngageMapTrainer
ld a, $ff
.noEngage: ; 56988 (15:6988)
- ld [wTrainerSpriteOffset], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
pop de
pop hl
ret
-; reads trainer's Y position to $cd40 and X position to $cd41
+; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX
ReadTrainerScreenPosition: ; 5698e (15:698e)
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $4
ld d, $0
ld e, a
@@ -238,8 +238,8 @@
ld hl, wSpriteStateData1
add hl, de
ld a, [hl]
- ld [$cd40], a
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld [wTrainerScreenY], a
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $6
ld d, $0
ld e, a
@@ -246,7 +246,7 @@
ld hl, wSpriteStateData1
add hl, de
ld a, [hl]
- ld [$cd41], a
+ ld [wTrainerScreenX], a
ret
; checks if the sprite is properly lined up with the player with respect to the direction it's looking. Also checks the distance between player and sprite
@@ -259,7 +259,7 @@
jr nc, .checkIfLinedUp
jr .notInLine ; player too far away
.checkIfLinedUp
- ld a, [$cd3f] ; sprite facing direction
+ ld a, [wTrainerFacingDirection] ; sprite facing direction
cp $0 ; down
jr z, .checkXCoord
cp $4 ; up
@@ -270,13 +270,13 @@
jr z, .checkYCoord
jr .notInLine
.checkXCoord
- ld a, [$cd41] ; sprite screen X position
+ ld a, [wTrainerScreenX] ; sprite screen X position
ld b, a
cp $40
jr z, .inLine
jr .notInLine
.checkYCoord
- ld a, [$cd40] ; sprite screen Y position
+ ld a, [wTrainerScreenY] ; sprite screen Y position
ld b, a
cp $3c
jr nz, .notInLine
@@ -289,10 +289,10 @@
; tests if the player is in front of the sprite (rather than behind it)
CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp POWER_PLANT
jp z, .engage ; XXX not sure why bypass this for power plant (maybe to get voltorb fake items to work?)
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $4
ld d, $0
ld e, a
@@ -303,8 +303,8 @@
jr nz, .notOnTopmostTile ; special case if sprite is on topmost tile (Y = $fc (-4)), make it come down a block
ld a, $c
.notOnTopmostTile
- ld [$cd40], a
- ld a, [wTrainerSpriteOffset] ; $cd3d
+ ld [wTrainerScreenY], a
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
add $6
ld d, $0
ld e, a
@@ -311,11 +311,11 @@
ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x6 (sprite screen X pos)
- ld [$cd41], a
- ld a, [$cd3f] ; facing direction
+ ld [wTrainerScreenX], a
+ ld a, [wTrainerFacingDirection] ; facing direction
cp $0
jr nz, .notFacingDown
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
cp $3c
jr c, .engage ; sprite above player
jr .noEngage ; sprite below player
@@ -322,7 +322,7 @@
.notFacingDown
cp $4
jr nz, .notFacingUp
- ld a, [$cd40] ; sprite screen Y pos
+ ld a, [wTrainerScreenY] ; sprite screen Y pos
cp $3c
jr nc, .engage ; sprite below player
jr .noEngage ; sprite above player
@@ -329,12 +329,12 @@
.notFacingUp
cp $8
jr nz, .notFacingLeft
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
cp $40
jr nc, .engage ; sprite right of player
jr .noEngage ; sprite left of player
.notFacingLeft
- ld a, [$cd41] ; sprite screen X pos
+ ld a, [wTrainerScreenX] ; sprite screen X pos
cp $40
jr nc, .noEngage ; sprite right of player
.engage
@@ -343,5 +343,5 @@
.noEngage
xor a
.done
- ld [wTrainerSpriteOffset], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
ret
--- a/engine/palettes.asm
+++ b/engine/palettes.asm
@@ -1,9 +1,9 @@
Func_71ddf: ; 71ddf (1c:5ddf)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, b
cp $ff
jr nz, .asm_71dea
- ld a, [$cf1c]
+ ld a, [wcf1c]
.asm_71dea
cp $fc
jp z, Func_71fc2
@@ -27,23 +27,23 @@
; uses PalPacket_Empty to build a packet based on mon IDs and health color
BuildBattlePalPacket: ; 71e06 (1c:5e06)
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
ld a, [W_PLAYERBATTSTATUS3]
- ld hl, W_PLAYERMONID
+ ld hl, wBattleMonSpecies
call DeterminePaletteID
ld b, a
ld a, [W_ENEMYBATTSTATUS3]
- ld hl, W_ENEMYMONID
+ ld hl, wEnemyMonSpecies2
call DeterminePaletteID
ld c, a
- ld hl, $cf2e
- ld a, [$cf1d]
+ ld hl, wcf2e
+ ld a, [wcf1d]
add PAL_GREENBAR
ld [hli], a
inc hl
- ld a, [$cf1e]
+ ld a, [wcf1e]
add PAL_GREENBAR
ld [hli], a
inc hl
@@ -52,10 +52,10 @@
inc hl
ld a, c
ld [hl], a
- ld hl, $cf2d
+ ld hl, wcf2d
ld de, BlkPacket_Battle
ld a, $1
- ld [$cf1c], a
+ ld [wcf1c], a
ret
SendPalPacket_TownMap: ; 71e48 (1c:5e48)
@@ -66,10 +66,10 @@
; uses PalPacket_Empty to build a packet based the mon ID
BuildStatusScreenPalPacket: ; 71e4f (1c:5e4f)
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
- ld a, [$cf91]
+ ld a, [wcf91]
cp VICTREEBEL + 1
jr c, .pokemon
ld a, $1 ; not pokemon
@@ -76,32 +76,32 @@
.pokemon
call DeterminePaletteIDOutOfBattle
push af
- ld hl, $cf2e
- ld a, [$cf25]
+ ld hl, wcf2e
+ ld a, [wcf25]
add $1f
ld [hli], a
inc hl
pop af
ld [hl], a
- ld hl, $cf2d
+ ld hl, wcf2d
ld de, BlkPacket_StatusScreen
ret
SendPalPacket_PartyMenu: ; 71e7b (1c:5e7b)
ld hl, PalPacket_PartyMenu
- ld de, $cf2e
+ ld de, wcf2e
ret
SendPalPacket_Pokedex: ; 71e82 (1c:5e82)
ld hl, PalPacket_Pokedex
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
- ld a, [$cf91]
+ ld a, [wcf91]
call DeterminePaletteIDOutOfBattle
- ld hl, $cf30
+ ld hl, wcf30
ld [hl], a
- ld hl, $cf2d
+ ld hl, wcf2d
ld de, BlkPacket_Pokedex
ret
@@ -130,13 +130,13 @@
ld hl, PalPacket_GameFreakIntro
ld de, BlkPacket_GameFreakIntro
ld a, $8
- ld [$cf1c], a
+ ld [wcf1c], a
ret
; uses PalPacket_Empty to build a packet based on the current map
BuildOverworldPalPacket: ; 71ec7 (1c:5ec7)
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
ld a, [W_CURMAPTILESET]
@@ -163,11 +163,11 @@
ld a, PAL_ROUTE - 1
.town
inc a ; a town's pallete ID is its map ID + 1
- ld hl, $cf2e
+ ld hl, wcf2e
ld [hld], a
ld de, BlkPacket_WholeScreen
ld a, $9
- ld [$cf1c], a
+ ld [wcf1c], a
ret
.PokemonTowerOrAgatha
ld a, PAL_GREYMON - 1
@@ -184,7 +184,7 @@
SendPokemonPalette_WholeScreen: ; 71f17 (1c:5f17)
push bc
ld hl, PalPacket_Empty
- ld de, $cf2d
+ ld de, wcf2d
ld bc, $10
call CopyData
pop bc
@@ -192,21 +192,21 @@
and a
ld a, $1e
jr nz, .asm_71f31
- ld a, [$cf1d]
+ ld a, [wcf1d]
call DeterminePaletteIDOutOfBattle
.asm_71f31
- ld [$cf2e], a
- ld hl, $cf2d
+ ld [wcf2e], a
+ ld hl, wcf2d
ld de, BlkPacket_WholeScreen
ret
BuildTrainerCardPalPacket: ; 71f3b (1c:5f3b)
ld hl, BlkPacket_TrainerCard
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $40
call CopyData
ld de, LoopCounts_71f8f
- ld hl, $cc5d
+ ld hl, wcc5d
ld a, [W_OBTAINEDBADGES]
ld c, $8
.asm_71f52
@@ -235,7 +235,7 @@
dec c
jr nz, .asm_71f52
ld hl, PalPacket_TrainerCard
- ld de, $cc5b
+ ld de, wcc5b
ret
PointerTable_71f73: ; 71f73 (1c:5f73)
@@ -264,14 +264,13 @@
ret nz
ld a, [hl]
DeterminePaletteIDOutOfBattle: ; 71f9d (1c:5f9d)
- ld [$D11E], a
+ ld [wd11e], a
and a
jr z, .idZero
push bc
- ld a, $3A
- call Predef ; turn Pokemon ID number into Pokedex number
+ predef IndexToPokedex ; turn Pokemon ID number into Pokedex number
pop bc
- ld a, [$D11E]
+ ld a, [wd11e]
.idZero
ld e, a
ld d, $00
@@ -282,13 +281,13 @@
SendBlkPacket_PartyMenu: ; 71fb6 (1c:5fb6)
ld hl, BlkPacket_PartyMenu ; $62f4
- ld de, $cf2e
+ ld de, wcf2e
ld bc, $30
jp CopyData
Func_71fc2: ; 71fc2 (1c:5fc2)
- ld hl, $cf1f
- ld a, [$cf2d]
+ ld hl, wcf1f
+ ld a, [wcf2d]
ld e, a
ld d, $0
add hl, de
@@ -304,9 +303,9 @@
ld e, $f
.asm_71fdb
push de
- ld hl, $cf37
+ ld hl, wcf37
ld bc, $6
- ld a, [$cf2d]
+ ld a, [wcf2d]
call AddNTimes
pop de
ld [hl], e
@@ -379,14 +378,14 @@
; else send 16 more bytes
jr .loop2
-LoadSGBBorderAndPalettes: ; 7202b (1c:602b)
+LoadSGB: ; 7202b (1c:602b)
xor a
- ld [$cf1b], a
+ ld [wcf1b], a
call Func_7209b
ret nc
ld a, $1
- ld [$cf1b], a
- ld a, [$cf1a]
+ ld [wcf1b], a
+ ld a, [wGBC]
and a
jr z, .asm_7203f
ret
@@ -395,22 +394,22 @@
call Func_72075
ei
ld a, $1
- ld [$cf2d], a
- ld de, PalPacket_72508
+ ld [wcf2d], a
+ ld de, ChrTrnPacket
ld hl, SGBBorderGraphics
call Func_7210b
xor a
- ld [$cf2d], a
- ld de, PalPacket_72518
+ ld [wcf2d], a
+ ld de, PctTrnPacket
ld hl, BorderPalettes
call Func_7210b
xor a
- ld [$cf2d], a
- ld de, PalPacket_724d8
+ ld [wcf2d], a
+ ld de, PalTrnPacket
ld hl, SuperPalettes
call Func_7210b
- call ZeroVram
- ld hl, PalPacket_72538
+ call ClearVram
+ ld hl, MaskEnCancelPacket
jp SendSGBPacket
Func_72075: ; 72075 (1c:6075)
@@ -431,18 +430,18 @@
ret
PointerTable_72089: ; 72089 (1c:6089)
- dw PalPacket_72528
- dw PalPacket_72548
- dw PalPacket_72558
- dw PalPacket_72568
- dw PalPacket_72578
- dw PalPacket_72588
- dw PalPacket_72598
- dw PalPacket_725a8
- dw PalPacket_725b8
+ dw MaskEnFreezePacket
+ dw DataSnd_72548
+ dw DataSnd_72558
+ dw DataSnd_72568
+ dw DataSnd_72578
+ dw DataSnd_72588
+ dw DataSnd_72598
+ dw DataSnd_725a8
+ dw DataSnd_725b8
Func_7209b: ; 7209b (1c:609b)
- ld hl, PalPacket_724f8
+ ld hl, MltReq2Packet
di
call SendSGBPacket
ld a, $1
@@ -493,7 +492,7 @@
ret
Func_72102: ; 72102 (1c:6102)
- ld hl, PalPacket_724e8
+ ld hl, MltReq1Packet
call SendSGBPacket
jp Wait7000
@@ -503,8 +502,8 @@
call DisableLCD
ld a, $e4
ld [rBGP], a ; $ff47
- ld de, $8800
- ld a, [$cf2d]
+ ld de, vChars1
+ ld a, [wcf2d]
and a
jr z, .asm_72122
call Func_72188
@@ -513,7 +512,7 @@
ld bc, $1000
call CopyData
.asm_72128
- ld hl, $9800
+ ld hl, vBGMap0
ld de, $c
ld a, $80
ld c, $d
@@ -551,7 +550,7 @@
ret
Func_72156: ; 72156 (1c:6156)
- ld a, [$cf1a]
+ ld a, [wGBC]
and a
jr z, .asm_72165
push de
--- a/engine/play_time.asm
+++ b/engine/play_time.asm
@@ -1,43 +1,43 @@
Func_18dee: ; 18dee (6:4dee)
call Func_18e36
- ld a, [$d732]
+ ld a, [wd732]
bit 0, a
ret z
- ld a, [W_PLAYTIMEMINUTES] ; $da42
+ ld a, [W_PLAYTIMEMINUTES] ; wda42
and a
ret nz
- ld a, [W_PLAYTIMEFRAMES] ; $da45
+ ld a, [W_PLAYTIMEFRAMES] ; wda45
inc a
- ld [W_PLAYTIMEFRAMES], a ; $da45
+ ld [W_PLAYTIMEFRAMES], a ; wda45
cp 60
ret nz
xor a
- ld [W_PLAYTIMEFRAMES], a ; $da45
- ld a, [W_PLAYTIMESECONDS] ; $da44
+ ld [W_PLAYTIMEFRAMES], a ; wda45
+ ld a, [W_PLAYTIMESECONDS] ; wda44
inc a
- ld [W_PLAYTIMESECONDS], a ; $da44
+ ld [W_PLAYTIMESECONDS], a ; wda44
cp 60
ret nz
xor a
- ld [W_PLAYTIMESECONDS], a ; $da44
- ld a, [$da43]
+ ld [W_PLAYTIMESECONDS], a ; wda44
+ ld a, [W_PLAYTIMEMINUTES + 1]
inc a
- ld [$da43], a
+ ld [W_PLAYTIMEMINUTES + 1], a
cp 60
ret nz
xor a
- ld [$da43], a
- ld a, [$da41]
+ ld [W_PLAYTIMEMINUTES + 1], a
+ ld a, [W_PLAYTIMEHOURS + 1]
inc a
- ld [$da41], a
+ ld [W_PLAYTIMEHOURS + 1], a
cp $ff
ret nz
ld a, $ff
- ld [W_PLAYTIMEMINUTES], a ; $da42
+ ld [W_PLAYTIMEMINUTES], a ; wda42
ret
Func_18e36: ; 18e36 (6:4e36)
- ld a, [$d13a]
+ ld a, [wd13a]
and a
jr nz, .asm_18e40
ld a, $ff
@@ -45,17 +45,17 @@
.asm_18e40
dec a
.asm_18e41
- ld [$d13a], a
+ ld [wd13a], a
and a
ret nz
- ld a, [$d730]
+ ld a, [wd730]
res 1, a
res 2, a
bit 5, a
res 5, a
- ld [$d730], a
+ ld [wd730], a
ret z
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
ret
--- a/engine/pokedex_rating.asm
+++ b/engine/pokedex_rating.asm
@@ -2,12 +2,12 @@
ld hl, wPokedexSeen
ld b, wPokedexSeenEnd - wPokedexSeen
call CountSetBits
- ld a, [$D11E] ; result of CountSetBits (seen count)
+ ld a, [wd11e] ; result of CountSetBits (seen count)
ld [$FFDB], a
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$D11E] ; result of CountSetBits (own count)
+ ld a, [wd11e] ; result of CountSetBits (own count)
ld [$FFDC], a
ld hl, DexRatingsTable
.findRating
@@ -23,10 +23,10 @@
ld a, [hli]
ld h, [hl]
ld l, a ; load text pointer into hl
- ld a, [$D747]
+ ld a, [wd747]
bit 3, a
res 3, a
- ld [$D747], a
+ ld [wd747], a
jr nz, .label3
push hl
ld hl, PokedexRatingText_441cc
@@ -36,7 +36,7 @@
callba Func_7d13b
jp WaitForTextScrollButtonPress ; wait for button press
.label3
- ld de, $CC5B
+ ld de, wcc5b
ld a, [$FFDB]
ld [de], a
inc de
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -1,25 +1,20 @@
-GetPredefPointer: ; 4fe49 (13:7e49)
-; stores hl in $CC4F,$CC50
-; stores de in $CC51,$CC52
-; stores bc in $CC53,$CC54
-; grabs a byte "n" from $CC4E,
-; and gets the nth (3-byte) pointer in PredefPointers
-; stores the bank of said pointer in [$D0B7]
-; stores the pointer in hl and returns
- ; ld $CC4F,hl
+GetPredefPointer:
+; Store the contents of the register
+; pairs (hl, de, bc) at wPredefRegisters.
+; Then put the bank and address of predef
+; wPredefID in [wPredefBank] and hl.
+
ld a,h
- ld [$CC4F],a
+ ld [wPredefRegisters],a
ld a,l
- ld [$CC50],a
+ ld [wPredefRegisters + 1],a
- ; ld $CC51,de
- ld hl,$CC51
+ ld hl,wPredefRegisters + 2
ld a,d
ld [hli],a
ld a,e
ld [hli],a
- ; ld $CC53,bc
ld a,b
ld [hli],a
ld [hl],c
@@ -27,11 +22,10 @@
ld hl,PredefPointers
ld de,0
- ; de = 3 * [$CC4E]
- ld a,[$CC4E]
+ ld a,[wPredefID]
ld e,a
- add a,a
- add a,e
+ add a
+ add e
ld e,a
jr nc,.next
inc d
@@ -43,7 +37,7 @@
; get bank of predef routine
ld a,[de]
- ld [$D0B7],a
+ ld [wPredefBank],a
; get pointer
inc de
@@ -55,129 +49,105 @@
ret
-PredefPointers: ; 4fe79 (13:7e79)
+PredefPointers:: ; 4fe79 (13:7e79)
; these are pointers to ASM routines.
; they appear to be used in overworld map scripts.
- dbw BANK(Func_3cd60),Func_3cd60
- dbw BANK(Func_3f0c6),Func_3f0c6
- dbw BANK(Func_3f073),Func_3f073
- dbw BANK(ScaleSpriteByTwo), ScaleSpriteByTwo
- db BANK(LoadMonBackSprite) ; dbw macro gives an error for some reason
- dw LoadMonBackSprite
- dbw BANK(Func_79aba),Func_79aba
- dbw BANK(Func_f132),Func_f132
-HealPartyPredef: ; 4fe8e (13:7e8e)
- dbw BANK(HealParty),HealParty
-MoveAnimationPredef: ; 4fe91 (13:7e91)
- dbw BANK(MoveAnimation),MoveAnimation; 08 play move animation
- dbw BANK(Func_f71e),Func_f71e
- dbw BANK(Func_f71e),Func_f71e
- dbw BANK(Func_f81d),Func_f81d
- dbw BANK(Func_f836),Func_f836
- dbw BANK(Func_f71e),Func_f71e
- dbw BANK(Func_f71e),Func_f71e
- db BANK(InitializePlayerData)
- dw InitializePlayerData
- dbw BANK(HandleBitArray),HandleBitArray
- db BANK(RemoveMissableObject)
- dw RemoveMissableObject
- db BANK(IsMissableObjectHidden)
- dw IsMissableObjectHidden
- dbw BANK(Func_c69c),Func_c69c
- db BANK(AnyPlayerPokemonAliveCheck)
- dw AnyPlayerPokemonAliveCheck
- db BANK(AddMissableObject)
- dw AddMissableObject
- db BANK(AddMissableObject)
- dw AddMissableObject
- dbw BANK(Func_ee9e),Func_ee9e
- db BANK(InitializePlayerData)
- dw InitializePlayerData
- dbw BANK(Func_c754),Func_c754
- dbw BANK(Func_3af5b),Func_3af5b
- dbw BANK(LearnMove),LearnMove
- dbw BANK(IsItemInBag_),IsItemInBag_; 1C, used in Pokémon Tower
+ add_predef Func_3cd60
+ add_predef Func_3f0c6
+ add_predef Func_3f073
+ add_predef ScaleSpriteByTwo
+ add_predef LoadMonBackPic
+ add_predef Func_79aba
+ add_predef Func_f132
+ add_predef HealParty
+ add_predef MoveAnimation; 08 play move animation
+ add_predef DivideBCDPredef
+ add_predef DivideBCDPredef2
+ add_predef AddBCDPredef
+ add_predef SubBCDPredef
+ add_predef DivideBCDPredef3
+ add_predef DivideBCDPredef4
+ add_predef InitPlayerData
+ add_predef FlagActionPredef
+ add_predef HideObject
+ add_predef IsObjectHidden
+ add_predef Func_c69c
+ add_predef AnyPartyAlive
+ add_predef ShowObject
+ add_predef ShowObject2
+ add_predef Func_ee9e
+ add_predef InitPlayerData2
+ add_predef Func_c754
+ add_predef Func_3af5b
+ add_predef LearnMove
+ add_predef IsItemInBag_ ; 1C, used in Pokémon Tower
dbw $03,Func_3eb5 ; for these two, the bank number is actually 0
dbw $03,GiveItem
- dbw BANK(Func_480eb),Func_480eb
- dbw BANK(Func_f8ba),Func_f8ba
- dbw BANK(Func_480ff),Func_480ff
- dbw BANK(Func_f929),Func_f929
- dbw BANK(Func_f9a0),Func_f9a0
- dbw BANK(Func_48125),Func_48125
- dbw BANK(UpdateHPBar),UpdateHPBar
- db BANK(UpdateHPBar_LoadRegisters)
- dw UpdateHPBar_LoadRegisters
- dbw BANK(Func_5ab0),Func_5ab0
- dbw BANK(Func_3ed02),Func_3ed02
- db BANK(DisplayPokedexMenu_)
- dw DisplayPokedexMenu_
- dbw BANK(Func_3ad1c),Func_3ad1c
- dbw BANK(SaveSAVtoSRAM0),SaveSAVtoSRAM0
- dbw BANK(InitOpponent),InitOpponent
- dbw BANK(Func_5a5f),Func_5a5f
- dbw BANK(DrawBadges), DrawBadges
- dbw BANK(Func_410f3),Func_410f3
- dbw BANK(Func_7096d),Func_7096d
- dbw BANK(Func_79dda),Func_79dda
- dbw BANK(PlayIntro),PlayIntro
- dbw BANK(Func_79869),Func_79869
- dbw BANK(Func_70b5d),Func_70b5d
- dbw BANK(Func_c586),Func_c586
- dbw BANK(StatusScreen),StatusScreen ; 37 0x12953
- dbw BANK(StatusScreen2),StatusScreen2 ; 38
- dbw BANK(Func_410e2),Func_410e2
- db BANK(CheckEngagePlayer)
- dw CheckEngagePlayer
- dbw BANK(IndexToPokedex),IndexToPokedex
- dbw BANK(Predef3B),Predef3B; 3B display pic?
- dbw BANK(UsedCut),UsedCut
- dbw BANK(ShowPokedexData),ShowPokedexData
- dbw BANK(WriteMonMoves),WriteMonMoves
- dbw BANK(SaveSAV),SaveSAV
- db BANK(LoadSGBBorderAndPalettes)
- dw LoadSGBBorderAndPalettes
- dbw BANK(Func_f113),Func_f113
- dbw BANK(SetPartyMonTypes),SetPartyMonTypes
- db BANK(TestMonMoveCompatibility)
- dw TestMonMoveCompatibility
- dbw BANK(TMToMove),TMToMove
- dbw BANK(Func_71ddf),Func_71ddf
- db BANK(DisplayStarterMonDex)
- dw DisplayStarterMonDex; 46 load dex screen
- db BANK(_AddPokemonToParty)
- dw _AddPokemonToParty
- dbw BANK(UpdateHPBar),UpdateHPBar
- dbw BANK(Func_3cdec),Func_3cdec
- dbw BANK(LoadTownMap_Nest),LoadTownMap_Nest
- dbw BANK(Func_27d6b),Func_27d6b
- db BANK(PrintEmotionBubble)
- dw PrintEmotionBubble; 4C player exclamation
- dbw BANK(Func_5aaf),Func_5aaf; return immediately
- db BANK(AskForMonNickname)
- dw AskForMonNickname
- dbw BANK(PewterGuys),PewterGuys
- dbw BANK(SaveSAVtoSRAM2),SaveSAVtoSRAM2
- dbw BANK(LoadSAVCheckSum2),LoadSAVCheckSum2
- dbw BANK(LoadSAV),LoadSAV
- dbw BANK(SaveSAVtoSRAM1),SaveSAVtoSRAM1
- dbw BANK(Predef54),Predef54 ; 54 initiate trade
- db BANK(HallOfFameComputer)
- dw HallOfFameComputer
- dbw BANK(DisplayDexRating),DisplayDexRating
- db $1E ; uses wrong bank number
- dw _DoFlyOrTeleportAwayGraphics
- db $1E ; uses wrong bank number
- dw Func_70510
- dbw BANK(Func_c5be),Func_c5be
- dbw BANK(Func_c60b),Func_c60b
- db BANK(PrintUsedStrengthText)
- dw PrintUsedStrengthText
- dbw BANK(PickupItem),PickupItem
- dbw BANK(Func_27d98),Func_27d98
- dbw BANK(LoadMovePPs),LoadMovePPs
-DrawHPBarPredef: ; 4ff96 (13:7f96)
- dbw BANK(Func_128ef),Func_128ef ; 5F draw HP bar
- dbw BANK(Func_128f6),Func_128f6
- dbw BANK(Func_1c9c6),Func_1c9c6
- dbw BANK(OaksAideScript),OaksAideScript
+ add_predef Func_480eb
+ add_predef Func_f8ba
+ add_predef Func_480ff
+ add_predef Func_f929
+ add_predef Func_f9a0
+ add_predef Func_48125
+ add_predef UpdateHPBar
+ add_predef HPBarLength
+ add_predef Func_5ab0
+ add_predef Func_3ed02
+ add_predef ShowPokedexMenu
+ add_predef Func_3ad1c
+ add_predef SaveSAVtoSRAM0
+ add_predef InitOpponent
+ add_predef Func_5a5f
+ add_predef DrawBadges
+ add_predef Func_410f3
+ add_predef BattleTransition
+ add_predef Func_79dda
+ add_predef PlayIntro
+ add_predef Func_79869
+ add_predef FlashScreen
+ add_predef Func_c586
+ add_predef StatusScreen
+ add_predef StatusScreen2
+ add_predef Func_410e2
+ add_predef TrainerEngage
+ add_predef IndexToPokedex
+ add_predef Predef3B; 3B display pic?
+ add_predef UsedCut
+ add_predef ShowPokedexData
+ add_predef WriteMonMoves
+ add_predef SaveSAV
+ add_predef LoadSGB
+ add_predef Func_f113
+ add_predef SetPartyMonTypes
+ add_predef CanLearnTM
+ add_predef TMToMove
+ add_predef Func_71ddf
+ add_predef StarterDex ; 46
+ add_predef _AddPartyMon
+ add_predef UpdateHPBar2
+ add_predef Func_3cdec
+ add_predef LoadTownMap_Nest
+ add_predef Func_27d6b
+ add_predef EmotionBubble; 4C player exclamation
+ add_predef Func_5aaf; return immediately
+ add_predef AskName
+ add_predef PewterGuys
+ add_predef SaveSAVtoSRAM2
+ add_predef LoadSAVCheckSum2
+ add_predef LoadSAV
+ add_predef SaveSAVtoSRAM1
+ add_predef Predef54 ; 54 initiate trade
+ add_predef HallOfFamePC
+ add_predef DisplayDexRating
+ dbw $1E, _LeaveMapAnim ; wrong bank
+ dbw $1E, Func_70510 ; wrong bank
+ add_predef Func_c5be
+ add_predef Func_c60b
+ add_predef PrintStrengthTxt
+ add_predef PickupItem
+ add_predef Func_27d98
+ add_predef LoadMovePPs
+ add_predef DrawHP ; 5F
+ add_predef Func_128f6
+ add_predef Func_1c9c6
+ add_predef OaksAideScript
--- a/engine/predefs12.asm
+++ b/engine/predefs12.asm
@@ -1,5 +1,5 @@
Func_480eb: ; 480eb (12:40eb)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, [rBGP] ; $ff47
or b
ld [rBGP], a ; $ff47
@@ -11,9 +11,9 @@
ret
Func_480ff: ; 480ff (12:40ff)
- call Load16BitRegisters
+ call GetPredefRegisters
ld a, $1
- ld [$d0a0], a
+ ld [wd0a0], a
xor a
.asm_48108
ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
@@ -23,7 +23,7 @@
ld a, b
jr nz, .asm_48108
xor a
- ld [$d0a0], a
+ ld [wd0a0], a
ret
Func_48119: ; 48119 (12:4119)
@@ -35,7 +35,7 @@
jp DelayFrames
Func_48125: ; 48125 (12:4125)
- call Load16BitRegisters
+ call GetPredefRegisters
xor a
.asm_48129
ld [$ff97], a
--- a/engine/predefs17.asm
+++ b/engine/predefs17.asm
@@ -1,10 +1,9 @@
; this function temporarily makes the starters (and Ivysaur) seen
; so that the full Pokedex information gets displayed in Oak's lab
-DisplayStarterMonDex: ; 5c0dc (17:40dc)
+StarterDex: ; 5c0dc (17:40dc)
ld a, %01001011 ; set starter flags
- ld [wPokedexOwned], a ; $d2f7
- ld a, $3d
- call Predef ; indirect jump to ShowPokedexData (402d1 (10:42d1))
+ ld [wPokedexOwned], a ; wPokedexOwned
+ predef ShowPokedexData
xor a ; unset starter flags
- ld [wPokedexOwned], a ; $d2f7
+ ld [wPokedexOwned], a ; wPokedexOwned
ret
--- a/engine/predefs17_2.asm
+++ b/engine/predefs17_2.asm
@@ -1,10 +1,10 @@
-; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in $d11e
+; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e
SetPartyMonTypes: ; 5db5e (17:5b5e)
- call Load16BitRegisters
- ld bc, W_PARTYMON1_TYPE1 - W_PARTYMON1DATA ; $5
+ call GetPredefRegisters
+ ld bc, wPartyMon1Type - wPartyMon1 ; $5
add hl, bc
- ld a, [$d11e]
- ld [$d0b5], a
+ ld a, [wd11e]
+ ld [wd0b5], a
push hl
call GetMonHeader
pop hl
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -1,28 +1,28 @@
Func_1c9c6: ; 1c9c6 (7:49c6)
ld hl, WhichFloorText
call PrintText
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
- ld a, [wListScrollOffset] ; $cc36
+ ld [wcf8c], a
+ ld a, [wListScrollOffset] ; wcc36
push af
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wListScrollOffset], a ; $cc36
- ld [$cf93], a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wListScrollOffset], a ; wcc36
+ ld [wcf93], a
ld a, $4
- ld [wListMenuID], a ; $cf94
+ ld [wListMenuID], a ; wListMenuID
call DisplayListMenuID
pop bc
ld a, b
- ld [wListScrollOffset], a ; $cc36
+ ld [wListScrollOffset], a ; wcc36
ret c
- ld hl, $d126
+ ld hl, wd126
set 7, [hl]
- ld hl, $cc5b
- ld a, [wWhichPokemon] ; $cf92
+ ld hl, wcc5b
+ ld a, [wWhichPokemon] ; wWhichPokemon
add a
ld d, $0
ld e, a
@@ -31,7 +31,7 @@
ld b, a
ld a, [hl]
ld c, a
- ld hl, $d3af
+ ld hl, wd3af
call Func_1ca0d
Func_1ca0d: ; 1ca0d (7:4a0d)
--- /dev/null
+++ b/engine/random.asm
@@ -1,0 +1,13 @@
+Random_::
+; Generate a random 16-bit value.
+ ld a, [rDIV]
+ ld b, a
+ ld a, [hRandomAdd]
+ adc b
+ ld [hRandomAdd], a
+ ld a, [rDIV]
+ ld b, a
+ ld a, [hRandomSub]
+ sbc b
+ ld [hRandomSub], a
+ ret
--- a/engine/rng.asm
+++ /dev/null
@@ -1,13 +1,0 @@
-GenRandom_: ; 13a8f (4:7a8f)
-; generate a random 16-bit integer and store it at $FFD3,$FFD4
- ld a,[rDIV]
- ld b,a
- ld a,[H_RAND1]
- adc b
- ld [H_RAND1],a
- ld a,[rDIV]
- ld b,a
- ld a,[H_RAND2]
- sbc b
- ld [H_RAND2],a
- ret
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -13,7 +13,7 @@
ld a, $2 ; good checksum
jr .goodsum
.badsum
- ld hl, $d730
+ ld hl, wd730
push hl
set 6, [hl]
ld hl, FileDataDestroyedText
@@ -24,7 +24,7 @@
res 6, [hl]
ld a, $1 ; bad checksum
.goodsum
- ld [$d088], a ; checksum flag
+ ld [wd088], a ; checksum flag
ret
FileDataDestroyedText: ; 7361e (1c:761e)
@@ -54,14 +54,14 @@
.Func_73652 ; 73652 (1c:7652)
ld hl, $a598
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
ld bc, $b
call CopyData
ld hl, $a5a3
- ld de, wPokedexOwned ; $d2f7
+ ld de, wPokedexOwned ; wPokedexOwned
ld bc, $789
call CopyData
- ld hl, W_CURMAPTILESET ; $d367
+ ld hl, W_CURMAPTILESET ; W_CURMAPTILESET
set 7, [hl]
ld hl, $ad2c
ld de, wSpriteStateData1
@@ -70,7 +70,7 @@
ld a, [$b522]
ld [$ffd7], a
ld hl, $b0c0
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
ld bc, $462
call CopyData
and a
@@ -90,7 +90,7 @@
cp c
jr nz, SAVBadCheckSum
ld hl, $b0c0
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
ld bc, $462
call CopyData
and a
@@ -110,11 +110,11 @@
cp c
jp nz, SAVBadCheckSum
ld hl, $af2c
- ld de, W_NUMINPARTY ; $d163
+ ld de, wPartyCount ; wPartyCount
ld bc, $194
call CopyData
ld hl, $a5a3
- ld de, wPokedexOwned ; $d2f7
+ ld de, wPokedexOwned ; wPokedexOwned
ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData
and a
@@ -140,7 +140,7 @@
call SaveSAVConfirm
and a ;|0 = Yes|1 = No|
ret nz
- ld a,[$d088]
+ ld a,[wd088]
dec a
jr z,.save
call SAVCheckRandomID
@@ -151,12 +151,10 @@
ret nz
.save ;$772d
call SaveSAVtoSRAM ;$7848
- FuncCoord 1,13
- ld hl,Coord
+ hlCoord 1, 13
ld bc,$0412
call ClearScreenArea ; clear area 4x12 starting at 13,1
- FuncCoord 1,14
- ld hl,Coord
+ hlCoord 1, 14
ld de,NowSavingString
call PlaceString
ld c,$78
@@ -174,13 +172,12 @@
SaveSAVConfirm: ; 73768 (1c:7768)
call PrintText
- FuncCoord 0, 7
- ld hl,Coord
+ hlCoord 0, 7
ld bc,$0801 ;arrow's coordinates |b = Y|c = X|
ld a,$14 ;one line shifting ($28 = 2 lines)
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ;handle Yes/No KeyPress
- ld a,[$cc26]
+ ld a,[wCurrentMenuItem]
ret
WouldYouLikeToSaveText: ; 0x7377d
@@ -201,11 +198,11 @@
ld a, $1
ld [$6000], a
ld [$4000], a
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
ld de, $a598
ld bc, $b
call CopyData
- ld hl, wPokedexOwned ; $d2f7
+ ld hl, wPokedexOwned ; wPokedexOwned
ld de, $a5a3
ld bc, $789
call CopyData
@@ -213,7 +210,7 @@
ld de, $ad2c
ld bc, $200
call CopyData
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
ld de, $b0c0
ld bc, $462
call CopyData
@@ -235,7 +232,7 @@
ld a, $1
ld [$6000], a
ld [$4000], a
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
ld de, $b0c0
ld bc, $462
call CopyData
@@ -254,7 +251,7 @@
ld a, $1
ld [$6000], a
ld [$4000], a
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
ld de, $af2c
ld bc, $194
call CopyData
@@ -273,7 +270,7 @@
SaveSAVtoSRAM: ; 73848 (1c:7848)
ld a, $2
- ld [$d088], a
+ ld [wd088], a
call SaveSAVtoSRAM0
call SaveSAVtoSRAM1
jp SaveSAVtoSRAM2
@@ -312,7 +309,7 @@
Func_7387b: ; 7387b (1c:787b)
ld hl, PointerTable_73895 ; $7895
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
cp $6
ld b, $2
@@ -341,10 +338,10 @@
ld hl, WhenYouChangeBoxText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
and a
ret nz
- ld hl, $d5a0
+ ld hl, wd5a0
bit 7, [hl]
call z, Func_73a29
call Func_7393f
@@ -359,16 +356,16 @@
call Func_7387b
ld e, l
ld d, h
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
call Func_7390e
- ld a, [wCurrentMenuItem] ; $cc26
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
set 7, a
- ld [$d5a0], a
+ ld [wd5a0], a
call Func_7387b
- ld de, W_NUMINBOX ; $da80
+ ld de, W_NUMINBOX ; wda80
call Func_7390e
- ld hl, W_MAPTEXTPTR ; $d36c
- ld de, wWhichTrade ; $cd3d
+ ld hl, W_MAPTEXTPTR ; wd36c
+ ld de, wWhichTrade ; wWhichTrade
ld a, [hli]
ld [de], a
inc de
@@ -376,7 +373,7 @@
ld [de], a
call Func_3f05
call SaveSAVtoSRAM
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
call Func_3f0f
ld a, (SFX_02_5d - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
@@ -416,19 +413,19 @@
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $b
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $1
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $c
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
xor a
- ld [$cc37], a
- ld a, [$d5a0]
+ ld [wcc37], a
+ ld a, [wd5a0]
and $7f
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
ld hl, wTileMap
ld b, $2
ld c, $9
@@ -435,8 +432,7 @@
call TextBoxBorder
ld hl, ChooseABoxText
call PrintText
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
+ hlCoord 11, 0
ld b, $c
ld c, $7
call TextBoxBorder
@@ -443,18 +439,16 @@
ld hl, $fff6
set 2, [hl]
ld de, BoxNames ; $79d9
- FuncCoord 13, 1 ; $c3c1
- ld hl, Coord
+ hlCoord 13, 1
call PlaceString
ld hl, $fff6
res 2, [hl]
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
cp $9
jr c, .asm_739a6
sub $9
- FuncCoord 8, 2 ; $c3d0
- ld hl, Coord
+ hlCoord 8, 2
ld [hl], $f7
add $f6
jr .asm_739a8
@@ -461,16 +455,13 @@
.asm_739a6
add $f7
.asm_739a8
- FuncCoord 9, 2 ; $c3d1
- ld [Coord], a
- FuncCoord 1, 2 ; $c3c9
- ld hl, Coord
+ Coorda 9, 2
+ hlCoord 1, 2
ld de, BoxNoText
call PlaceString
call Func_73a84
- FuncCoord 18, 1 ; $c3c6
- ld hl, Coord
- ld de, wWhichTrade ; $cd3d
+ hlCoord 18, 1
+ ld de, wWhichTrade ; wWhichTrade
ld bc, $14
ld a, $c
.asm_739c2
@@ -554,7 +545,7 @@
ret
Func_73a84: ; 73a84 (1c:7a84)
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
push hl
ld a, $a
ld [$0], a
@@ -570,12 +561,12 @@
ld [$6000], a
ld [$0], a
pop hl
- ld a, [$d5a0]
+ ld a, [wd5a0]
and $7f
ld c, a
ld b, $0
add hl, bc
- ld a, [W_NUMINBOX] ; $da80
+ ld a, [W_NUMINBOX] ; wda80
ld [hl], a
ret
@@ -597,7 +588,7 @@
SAVCheckRandomID: ;$7ad1
;checks if Sav file is the same by checking player's name 1st letter ($a598)
; and the two random numbers generated at game beginning
-;(which are stored at $d359-d35a)
+;(which are stored at wPlayerID)
ld a,$0a
ld [$0000],a
ld a,$01
@@ -617,10 +608,10 @@
ld a,[hli]
ld h,[hl]
ld l,a
- ld a,[$d359]
+ ld a,[wPlayerID]
cp l
jr nz,.next
- ld a,[$d35a]
+ ld a,[wPlayerID + 1]
cp h
.next
ld a,$00
@@ -628,38 +619,40 @@
ld [$0000],a
ret
-Func_73b0d: ; 73b0d (1c:7b0d)
- ld a, [$d5a2]
+SaveHallOfFameTeams: ; 73b0d (1c:7b0d)
+ ld a, [wd5a2]
dec a
- cp $32
+ cp NUM_HOF_TEAMS
jr nc, .asm_73b28
- ld hl, $a598
- ld bc, $60
+ ld hl, sHallOfFame
+ ld bc, HOF_TEAM
call AddNTimes
ld e, l
ld d, h
- ld hl, $cc5b
- ld bc, $60
- jr CopyToSRAM0
+ ld hl, wcc5b
+ ld bc, HOF_TEAM
+ jr HallOfFame_Copy
+
.asm_73b28
- ld hl, $a5f8
- ld de, $a598
- ld bc, $1260
- call CopyToSRAM0
- ld hl, $cc5b
- ld de, $b7f8
- ld bc, $60
- jr CopyToSRAM0
+ ld hl, sHallOfFame + HOF_TEAM
+ ld de, sHallOfFame
+ ld bc, HOF_TEAM * (NUM_HOF_TEAMS - 1)
+ call HallOfFame_Copy
+ ld hl, wcc5b
+ ld de, sHallOfFame + HOF_TEAM * (NUM_HOF_TEAMS - 1)
+ ld bc, HOF_TEAM
+ jr HallOfFame_Copy
-Func_73b3f: ; 73b3f (1c:7b3f)
- ld hl, $a598
- ld bc, $60
- ld a, [wWhichTrade] ; $cd3d
+LoadHallOfFameTeams: ; 73b3f (1c:7b3f)
+ ld hl, sHallOfFame
+ ld bc, HOF_TEAM
+ ld a, [wWhichTrade] ; wWhichTrade
call AddNTimes
- ld de, $cc5b
- ld bc, $60
+ ld de, wcc5b
+ ld bc, HOF_TEAM
; fallthrough
-CopyToSRAM0: ; 73b51 (1c:7b51)
+
+HallOfFame_Copy: ; 73b51 (1c:7b51)
ld a, $a
ld [$0], a
ld a, $1
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1,7 +1,7 @@
PromptUserToPlaySlots: ; 3730e (d:730e)
call SaveScreenTilesToBuffer2
ld a, BANK(DisplayTextIDInit)
- ld [$cf0c], a
+ ld [wcf0c], a
ld b, a
ld hl, DisplayTextIDInit
call Bankswitch
@@ -12,13 +12,12 @@
and a
jr nz, .skip
dec a
- ld [$cfcb], a
- ld hl, $cd4f
+ ld [wcfcb], a
+ ld hl, wcd4f
xor a
ld [hli], a
ld [hl], $2
- ld a, $4c
- call Predef
+ predef EmotionBubble
call GBPalWhiteOutWithDelay3
call LoadSlotMachineTiles
call LoadFontTilePatterns
@@ -27,7 +26,7 @@
call GBPalNormal
ld a, $e4
ld [$ff48], a
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
xor a
ld [W_SUBANIMSUBENTRYADDR], a
@@ -35,13 +34,13 @@
ld bc, $0014
call FillMemory
call MainSlotMachineLoop
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
xor a
ld [W_SUBANIMSUBENTRYADDR], a
call GBPalWhiteOutWithDelay3
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
call GoPAL_SET_CF1C
call Func_3e08
call ReloadTilesetTilePatterns
@@ -49,7 +48,7 @@
call LoadScreenTilesFromBuffer2
call Delay3
call GBPalNormal
- ld a, [$cc5e]
+ ld a, [wcc5e]
push af
jp CloseTextDisplay
@@ -60,7 +59,7 @@
MainSlotMachineLoop: ; 37395 (d:7395)
call SlotMachine_37754
xor a
- ld hl, $cd4a
+ ld hl, wcd4a
ld [hli], a
ld [hl], a
call SlotMachine_3775f
@@ -79,12 +78,12 @@
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld [$cc37], a
- ld hl, $c48a
+ ld [wcc37], a
+ ld hl, wTileMap + $ea
ld b, $5
ld c, $4
call TextBoxBorder
- ld hl, $c4a0
+ ld hl, wTileMap + $100
ld de, CoinMultiplierSlotMachineText
call PlaceString
call HandleMenuInput
@@ -94,7 +93,7 @@
ld b, a
ld a, $3
sub b
- ld [$cd50], a
+ ld [wcd50], a
ld hl, wPlayerCoins
ld c, a
ld a, [hli]
@@ -112,7 +111,7 @@
call SlotMachine_377d5
call SlotMachine_37480
ld a, $4
- ld hl, $cd4d
+ ld hl, wcd4d
ld [hli], a
ld [hli], a
ld [hl], a
@@ -134,12 +133,12 @@
.skip2
ld hl, OneMoreGoSlotMachineText
call PrintText
- ld hl, $c49e
+ ld hl, wTileMap + $fe
ld bc, $0d0f
xor a
- ld [$d12c], a
+ ld [wd12c], a
ld a, $14
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
ld a, [wCurrentMenuItem]
and a
@@ -173,17 +172,17 @@
db "@"
SlotMachine_37480: ; 37480 (d:7480)
- ld hl, $cd4c
+ ld hl, wcd4c
bit 7, [hl]
ret nz
ld a, [W_SUBANIMSUBENTRYADDR]
and a
jr nz, .skip1
- call GenRandom
+ call Random
and a
jr z, .skip2
ld b, a
- ld a, [$cc5b]
+ ld a, [wcc5b]
cp b
jr c, .skip3
ld a, $d2
@@ -222,7 +221,7 @@
call SlotMachine_374fb
call SlotMachine_37517
ret c
- ld a, [$cf1b]
+ ld a, [wcf1b]
xor $1
inc a
ld c, a
@@ -237,7 +236,7 @@
ld a, [de]
rra
jr nc, .skip
- ld hl, $cd4d
+ ld hl, wcd4d
ld a, [hl]
and a
ret z
@@ -255,7 +254,7 @@
ld a, [de]
rra
jr nc, .skip
- ld hl, $cd4e
+ ld hl, wcd4e
ld a, [hl]
and a
ret z
@@ -283,7 +282,7 @@
SlotMachine_3752c: ; 3752c (d:752c)
call SlotMachine_GetWheelOneTile
ld hl, wTrainerScreenX
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $80
jr nz, .skip1
inc hl
@@ -302,13 +301,13 @@
ret
.skip2
inc a
- ld hl, $cd4d
+ ld hl, wcd4d
ld [hl], $0
ret
SlotMachine_37552: ; 37552 (d:7552)
call SlotMachine_GetWheelTwoTile
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $80
jr nz, .skip1
call SlotMachine_3756e
@@ -321,12 +320,12 @@
ret nc
.skip2
xor a
- ld [$cd4e], a
+ ld [wcd4e], a
ret
SlotMachine_3756e: ; 3756e (d:756e)
ld hl, wTrainerScreenX
- ld de, $cd44
+ ld de, wcd44
ld a, [de]
cp [hl]
ret z
@@ -350,42 +349,42 @@
SlotMachine_37588: ; 37588 (d:7588)
call SlotMachine_GetWheelThreeTile
- ld a, [$cd50]
+ ld a, [wcd50]
cp $2
jr z, .skip1
cp $1
jr z, .skip2
ld hl, wTrainerScreenX
- ld de, $cd45
- ld bc, $cd49
+ ld de, wcd45
+ ld bc, wcd49
call SlotMachine_CheckForMatch
jp z, .skip5
- ld hl, $cd43
- ld de, $cd45
- ld bc, $cd47
+ ld hl, wcd43
+ ld de, wcd45
+ ld bc, wcd47
call SlotMachine_CheckForMatch
jr z, .skip5
.skip1
- ld hl, $cd43
- ld de, $cd46
- ld bc, $cd49
+ ld hl, wcd43
+ ld de, wcd46
+ ld bc, wcd49
call SlotMachine_CheckForMatch
jr z, .skip5
ld hl, wTrainerScreenX
- ld de, $cd44
- ld bc, $cd47
+ ld de, wcd44
+ ld bc, wcd47
call SlotMachine_CheckForMatch
jr z, .skip5
.skip2
- ld hl, $cd42
- ld de, $cd45
- ld bc, $cd48
+ ld hl, wcd42
+ ld de, wcd45
+ ld bc, wcd48
call SlotMachine_CheckForMatch
jr z, .skip5
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $c0
jr z, .skip3
- ld hl, $cd4f
+ ld hl, wcd4f
dec [hl]
jr nz, .skip4
.skip3
@@ -393,7 +392,7 @@
call PrintText
.loop
xor a
- ld [$c002], a
+ ld [wc002], a
ret
.skip4
call SlotMachine_37833
@@ -402,7 +401,7 @@
call DelayFrame
jp SlotMachine_37588
.skip5
- ld a, [$cd4c]
+ ld a, [wcd4c]
and $c0
jr z, .skip4
and $80
@@ -426,7 +425,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $cf4b
+ ld de, wcf4b
ld bc, $0004
call CopyData
pop hl
@@ -442,7 +441,7 @@
call DelayFrames
dec b
jr nz, .asm_37638
- ld hl, $cd4a
+ ld hl, wcd4a
ld [hl], d
inc hl
ld [hl], e
@@ -512,13 +511,13 @@
ret
SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8)
- ld de, $cd47
+ ld de, wcd47
ld hl, SlotMachineWheel3
ld a, [wTrainerScreenY]
call SlotMachine_GetWheelTile
SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4)
- ld de, $cd44
+ ld de, wcd44
ld hl, SlotMachineWheel2
ld a, [wTrainerFacingDirection]
call SlotMachine_GetWheelTile
@@ -568,7 +567,7 @@
ld a, (SFX_1f_42 - SFX_Headers_1f) / 3
call PlaySound
xor a
- ld [$cd4c], a
+ ld [wcd4c], a
ld b, $8
ld de, 100
ret
@@ -578,11 +577,11 @@
call PrintText
ld a, (SFX_1f_3b - SFX_Headers_1f) / 3
call PlaySound
- call GenRandom
+ call Random
cp $80
ld a, $0
jr c, .skip
- ld [$cd4c], a
+ ld [wcd4c], a
.skip
ld [W_SUBANIMSUBENTRYADDR], a
ld b, $14
@@ -594,7 +593,7 @@
db $0a, "@"
SlotMachine_37728: ; 37728 (d:7728)
- ld hl, $c4ba
+ ld hl, wTileMap + $11a
ld a, [wTrainerScreenX]
add $25
ld [hli], a
@@ -606,38 +605,37 @@
ld [hli], a
inc a
ld [hl], a
- ld hl, $c4f2
+ ld hl, wTileMap + $152
ld [hl], $ee
ret
SlotMachine_37741: ; 37741 (d:7741)
- ld hl, $cd4b
- ld a, [$cd50]
+ ld hl, wcd4b
+ ld a, [wcd50]
ld [hld], a
xor a
ld [hli], a
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld c, $2
- ld a, $c
- call Predef
+ predef SubBCDPredef
SlotMachine_37754: ; 37754 (d:7754)
- ld hl, $c3b9
+ ld hl, wTileMap + $19
ld de, wPlayerCoins
ld c, $2
jp PrintBCDNumber
SlotMachine_3775f: ; 3775f (d:775f)
- ld hl, $c3bf
- ld de, $cd4a
+ ld hl, wTileMap + $1f
+ ld de, wcd4a
ld bc, $8204
jp PrintNumber
SlotMachine_3776b: ; 3776b (d:776b)
ld a, $1
- ld [$c002], a
+ ld [wc002], a
call WaitForSoundToFinish
- ld hl, $cd46
+ ld hl, wcd46
xor a
ld [hli], a
inc a
@@ -645,9 +643,9 @@
ld a, $5
ld [W_SUBANIMTRANSFORM], a
.loop
- ld a, [$cd4b]
+ ld a, [wcd4b]
ld l, a
- ld a, [$cd4a]
+ ld a, [wcd4a]
ld h, a
or l
ret z
@@ -654,14 +652,13 @@
ld de, $ffff
add hl, de
ld a, l
- ld [$cd4b], a
+ ld [wcd4b], a
ld a, h
- ld [$cd4a], a
- ld hl, $cd47
- ld de, $d5a5
+ ld [wcd4a], a
+ ld hl, wcd47
+ ld de, wPlayerCoins + 1
ld c, $2
- ld a, $b
- call Predef
+ predef AddBCDPredef
call SlotMachine_37754
call SlotMachine_3775f
ld a, (SFX_1f_65 - SFX_Headers_1f) / 3
@@ -686,13 +683,13 @@
SlotMachine_377ce: ; 377ce (d:77ce)
ld a, $23
- ld [$d08a], a
+ ld [wd08a], a
jr SlotMachine_377e3
SlotMachine_377d5: ; 377d5 (d:77d5)
ld a, $14
- ld [$d08a], a
- ld a, [$cd50]
+ ld [wd08a], a
+ ld a, [wcd50]
dec a
jr z, SlotMachine_377fb
dec a
@@ -699,22 +696,22 @@
jr z, SlotMachine_377ef
SlotMachine_377e3: ; 377e3 (d:77e3)
- ld hl, $c3cb
+ ld hl, wTileMap + $2b
call SlotMachine_377fe
- ld hl, $c46b
+ ld hl, wTileMap + $cb
call SlotMachine_377fe
SlotMachine_377ef: ; 377ef (d:77ef)
- ld hl, $c3f3
+ ld hl, wTileMap + $53
call SlotMachine_377fe
- ld hl, $c443
+ ld hl, wTileMap + $a3
call SlotMachine_377fe
SlotMachine_377fb: ; 377fb (d:77fb)
- ld hl, $c41b
+ ld hl, wTileMap + $7b
SlotMachine_377fe: ; 377fe (d:77fe)
- ld a, [$d08a]
+ ld a, [wd08a]
ld [hl], a
ld bc, $000d
add hl, bc
@@ -739,7 +736,7 @@
SlotMachine_37823: ; 37823 (d:7823)
ld bc, SlotMachineWheel2
ld de, wTrainerFacingDirection
- ld hl, $c330
+ ld hl, wOAMBuffer + $30
ld a, $50
ld [W_BASECOORDX], a
jr SlotMachine_37841
@@ -747,7 +744,7 @@
SlotMachine_37833: ; 37833 (d:7833)
ld bc, SlotMachineWheel3
ld de, wTrainerScreenY
- ld hl, $c360
+ ld hl, wOAMBuffer + $60
ld a, $70
ld [W_BASECOORDX], a
@@ -799,7 +796,7 @@
SlotMachine_37882: ; 37882 (d:7882)
call DelayFrame
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
and $1
ret z
@@ -806,10 +803,10 @@
ld hl, wTrainerSpriteOffset
ld a, [hl]
dec a
- ld de, $cd4d
+ ld de, wcd4d
jr z, .skip
dec a
- ld de, $cd4e
+ ld de, wcd4e
jr z, .skip
.loop
inc [hl]
@@ -824,18 +821,18 @@
LoadSlotMachineTiles: ; 378a8 (d:78a8)
call DisableLCD
ld hl, SlotMachineTiles2
- ld de, $8000
- ld bc, $01c0
+ ld de, vChars0
+ ld bc, $1c0
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineTiles1
- ld de, $9000
- ld bc, $0250
+ ld de, vChars2
+ ld bc, $250
ld a, BANK(SlotMachineTiles1)
call FarCopyData2
ld hl, SlotMachineTiles2
- ld de, $9250
- ld bc, $01c0
+ ld de, vChars2 + $250
+ ld bc, $1c0
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineMap
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -5,21 +5,21 @@
SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7)
ld hl, NintenText
- ld de, W_PLAYERNAME ; $d158
+ ld de, wPlayerName ; wd158
call CopyFixedLengthText
ld hl, SonyText
- ld de, W_RIVALNAME ; $d34a
+ ld de, W_RIVALNAME ; wd34a
call CopyFixedLengthText
xor a
ld [$ffb0], a
- ld [$d358], a
- ld hl, $d732
+ ld [wd358], a
+ ld hl, wd732
ld [hli], a
ld [hli], a
ld [hl], a
- ld a, Bank(Func_7d8ea)
- ld [$c0ef], a
- ld [$c0f0], a
+ ld a, BANK(Music_TitleScreen)
+ ld [wc0ef], a
+ ld [wc0f0], a
LoadTitlescreenGraphics: ; 42dd (1:42dd)
call GBPalWhiteOut
@@ -36,40 +36,39 @@
call DisableLCD
call LoadFontTilePatterns
ld hl, NintendoCopyrightLogoGraphics ; $60c8
- ld de, $9410
+ ld de, vTitleLogo2 + $100
ld bc, $50
ld a, BANK(NintendoCopyrightLogoGraphics)
call FarCopyData2
ld hl, GamefreakLogoGraphics ; $61f8
- ld de, $9460
+ ld de, vTitleLogo2 + $100 + $50
ld bc, $90
ld a, BANK(GamefreakLogoGraphics)
call FarCopyData2
ld hl, PokemonLogoGraphics ; $5380
- ld de, $8800
+ ld de, vTitleLogo
ld bc, $600
ld a, BANK(PokemonLogoGraphics)
call FarCopyData2 ; first chunk
ld hl, PokemonLogoGraphics+$600 ; $5980
- ld de, $9310
+ ld de, vTitleLogo2
ld bc, $100
ld a, BANK(PokemonLogoGraphics)
call FarCopyData2 ; second chunk
ld hl, Version_GFX ; $402f
IF _RED
- ld de,$9600 ; where to put redgreenversion.2bpp in the VRAM
- ld bc,$50 ; how big that file is
+ ld de,vChars2 + $600
+ ld bc,$50
ENDC
IF _BLUE
- ld de,$9610 ; where to put blueversion.2bpp in the VRAM
- ld bc,$40 ; how big that file is
+ ld de,vChars2 + $600 + $10
+ ld bc,$50 - $10
ENDC
ld a, BANK(Version_GFX)
call FarCopyDataDouble
call Func_4519
- FuncCoord 2, 1 ; $c3b6
- ld hl, Coord
+ hlCoord 2, 1
ld a, $80
ld de, $14
ld c, $6
@@ -85,8 +84,7 @@
add hl, de
dec c
jr nz, .asm_434d
- FuncCoord 2, 7 ; $c42e
- ld hl, Coord
+ hlCoord 2, 7
ld a, $31
ld b, $10
.asm_4361
@@ -95,11 +93,10 @@
dec b
jr nz, .asm_4361
call Func_44dd
- ld hl, $c328
+ ld hl, wOAMBuffer + $28
ld a, $74
ld [hl], a
- FuncCoord 2, 17 ; $c4f6
- ld hl, Coord
+ hlCoord 2, 17
ld de, .titlescreenTilemap ; $437f
ld b, $10
.asm_4377
@@ -124,7 +121,7 @@
ld a,SQUIRTLE ; which Pokemon to show first on the title screen
ENDC
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
call Func_4524
ld a, $9b
call Func_4533
@@ -206,10 +203,10 @@
call Delay3
call WaitForSoundToFinish
ld a, MUSIC_TITLE_SCREEN
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
xor a
- ld [$cc5b], a
+ ld [wcc5b], a
.asm_443b
ld c, $c8
call CheckForUserInterruption
@@ -222,11 +219,11 @@
call Func_4496
jr .asm_443b
.asm_4459
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call PlayCry
call WaitForSoundToFinish
call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
+ call ClearSprites
xor a
ld [$ffb0], a
inc a
@@ -238,7 +235,7 @@
call Func_4533
call Delay3
call LoadGBPal
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
ld b, a
and $46
cp $46
@@ -256,7 +253,7 @@
.new
; Generate a new TitleMon.
- call GenRandom
+ call Random
and $f
ld c, a
ld b, 0
@@ -263,7 +260,7 @@
ld hl, TitleMons
add hl, bc
ld a, [hl]
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
; Can't be the same as before.
cp [hl]
@@ -275,12 +272,12 @@
ld a, $90
ld [$ffb0], a
ld d, 1 ; scroll out
- callba TitleScroll ; indirect jump to TitleScroll (37258 (d:7258))
+ callba TitleScroll
ret
Func_44c1: ; 44c1 (1:44c1)
ld d, 0 ; scroll in
- callba TitleScroll ; indirect jump to TitleScroll (37258 (d:7258))
+ callba TitleScroll
xor a
ld [$ffb0], a
ret
@@ -302,13 +299,13 @@
Func_44dd: ; 44dd (1:44dd)
ld hl, PlayerCharacterTitleGraphics ; $66a8
- ld de, $8000
+ ld de, vSprites
ld bc, $230
ld a, BANK(PlayerCharacterTitleGraphics)
call FarCopyData2
- call CleanLCD_OAM
+ call ClearSprites
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
ld hl, wOAMBuffer
ld de, $605a
ld b, $7
@@ -322,10 +319,10 @@
ld [hli], a
add $8
ld e, a
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld [hli], a
inc a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
inc hl
dec c
jr nz, .asm_44fd
@@ -338,16 +335,15 @@
ret
Func_4519: ; 4519 (1:4519)
- ld hl, $9800
+ ld hl, vBGMap0
ld bc, $800
ld a, $7f
jp FillMemory
Func_4524: ; 4524 (1:4524)
- ld [$cf91], a
- ld [$d0b5], a
- FuncCoord 5, 10 ; $c46d
- ld hl, Coord
+ ld [wcf91], a
+ ld [wd0b5], a
+ hlCoord 5, 10
call GetMonHeader
jp LoadFrontSpriteByMonIndex
@@ -363,11 +359,10 @@
LoadCopyrightTiles: ; 4541 (1:4541)
ld de, NintendoCopyrightLogoGraphics ; $60c8
- ld hl, $9600
+ ld hl, vChars2 + $600
ld bc, (BANK(NintendoCopyrightLogoGraphics) << 8) + $1c
call CopyVideoData
- FuncCoord 2, 7 ; $c42e
- ld hl, Coord
+ hlCoord 2, 7
ld de, CopyrightTextString ; $4556
jp PlaceString
@@ -381,8 +376,7 @@
; prints version text (red, blue)
PrintGameVersionOnTitleScreen: ; 4598 (1:4598)
- FuncCoord 7, 8 ; $c447
- ld hl, Coord
+ hlCoord 7, 8
ld de, VersionOnTitleScreenText
jp PlaceString
--- a/engine/titlescreen2.asm
+++ b/engine/titlescreen2.asm
@@ -89,7 +89,7 @@
Func_372ac: ; 372ac (d:72ac)
; Animate the TitleBall if a starter just got scrolled out.
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp STARTER1
jr z, .ok
cp STARTER2
@@ -115,6 +115,6 @@
pop de
and a
ret z
- ld [$c328], a
+ ld [wOAMBuffer + $28], a
inc e
ret
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -1,6 +1,6 @@
DisplayTownMap: ; 70e3e (1c:4e3e)
call LoadTownMap
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
@@ -7,24 +7,23 @@
push hl
ld a, $1
ld [$ffb7], a
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
push af
ld b, $0
call Func_711c4
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 1, 0
+ ld de, wcd6d
call PlaceString
ld hl, wOAMBuffer
ld de, wTileMapBackup
ld bc, $10
call CopyData
- ld hl, $8040
+ ld hl, vSprites + $40
ld de, TownMapCursor ; $4f40
ld bc, (BANK(TownMapCursor) << 8) + $04
call CopyVideoDataDouble
xor a
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
pop af
jr Func_70e92
@@ -33,7 +32,7 @@
ld bc, $114
call ClearScreenArea
ld hl, TownMapOrder ; $4f11
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
ld b, $0
add hl, bc
@@ -40,17 +39,17 @@
ld a, [hl]
Func_70e92: ; 70e92 (1c:4e92)
- ld de, $cee9
+ ld de, wHPBarMaxHP
call Func_712f1
ld a, [de]
push hl
call Func_71258
ld a, $4
- ld [$cd5b], a
- ld hl, $c310
+ ld [wcd5b], a
+ ld hl, wOAMBuffer + $10
call Func_71279
pop hl
- ld de, $cd6d
+ ld de, wcd6d
.asm_70eac
ld a, [hli]
ld [de], a
@@ -57,17 +56,16 @@
inc de
cp $50
jr nz, .asm_70eac
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 1, 0
+ ld de, wcd6d
call PlaceString
- ld hl, $c310
- ld de, $c518
+ ld hl, wOAMBuffer + $10
+ ld de, wTileMapBackup + 16
ld bc, $10
call CopyData
.asm_70ec8
call Func_716c6
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
ld b, a
and $c3
@@ -79,9 +77,9 @@
bit 7, b
jr nz, .asm_70f01
xor a
- ld [$d09b], a
+ ld [wd09b], a
ld [$ffb7], a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
call Func_711ab
pop hl
pop af
@@ -88,22 +86,22 @@
ld [hl], a
ret
.asm_70ef2
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
inc a
cp $2f
jr nz, .asm_70efb
xor a
.asm_70efb
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
jp Func_70e7e
.asm_70f01
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
dec a
cp $ff
jr nz, .asm_70f0b
ld a, $2e
.asm_70f0b
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
jp Func_70e7e
INCLUDE "data/town_map_order.asm"
@@ -113,7 +111,7 @@
LoadTownMap_Nest: ; 70f60 (1c:4f60)
call LoadTownMap
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
@@ -120,8 +118,7 @@
push hl
call Func_711ef
call GetMonName
- FuncCoord 1, 0 ; $c3a1
- ld hl, Coord
+ hlCoord 1, 0
call PlaceString
ld h, b
ld l, c
@@ -138,20 +135,20 @@
db "'s NEST@"
LoadTownMap_Fly: ; 70f90 (1c:4f90)
- call CleanLCD_OAM
+ call ClearSprites
call LoadTownMap
call LoadPlayerSpriteGraphics
call LoadFontTilePatterns
ld de, BirdSprite ; $4d80
- ld hl, $8040
+ ld hl, vSprites + $40
ld bc, (BANK(BirdSprite) << 8) + $0c
call CopyVideoData
ld de, TownMapUpArrow ; $5093
- ld hl, $8ed0
+ ld hl, vChars1 + $6d0
ld bc, (BANK(TownMapUpArrow) << 8) + $01
call CopyVideoDataDouble
call Func_71070
- ld hl, $cfcb
+ ld hl, wcfcb
ld a, [hl]
push af
ld [hl], $ff
@@ -159,12 +156,11 @@
ld hl, wTileMap
ld de, ToText
call PlaceString
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
ld b, $0
call Func_711c4
- ld hl, $cd3e
- FuncCoord 18, 0 ; $c3b2
- ld de, Coord
+ ld hl, wTrainerEngageDistance
+ deCoord 18, 0
.townMapFlyLoop
ld a, $7f
@@ -171,8 +167,7 @@
ld [de], a
push hl
push hl
- FuncCoord 3, 0 ; $c3a3
- ld hl, Coord
+ hlCoord 3, 0
ld bc, $10f
call ClearScreenArea
pop hl
@@ -179,23 +174,20 @@
ld a, [hl]
ld b, $4
call Func_711c4
- FuncCoord 3, 0 ; $c3a3
- ld hl, Coord
- ld de, $cd6d
+ hlCoord 3, 0
+ ld de, wcd6d
call PlaceString
ld c, $f
call DelayFrames
- FuncCoord 18, 0 ; $c3b2
- ld hl, Coord
+ hlCoord 18, 0
ld [hl], $ed
- FuncCoord 19, 0 ; $c3b3
- ld hl, Coord
+ hlCoord 19, 0
ld [hl], $ee
pop hl
.asm_71004
push hl
call DelayFrame
- call GetJoypadStateLowSensitivity
+ call JoypadLowSensitivity
ld a, [$ffb5]
ld b, a
pop hl
@@ -214,14 +206,14 @@
ld a, (SFX_02_3e - SFX_Headers_02) / 3
call PlaySound
ld a, [hl]
- ld [$d71a], a
- ld hl, $d732
+ ld [wd71a], a
+ ld hl, wd732
set 3, [hl]
inc hl
set 7, [hl]
.asm_71037
xor a
- ld [$d09b], a
+ ld [wd09b], a
call GBPalWhiteOutWithDelay3
pop hl
pop af
@@ -228,8 +220,7 @@
ld [hl], a
ret
.asm_71042
- FuncCoord 18, 0 ; $c3b2
- ld de, Coord
+ deCoord 18, 0
inc hl
ld a, [hl]
cp $ff
@@ -238,11 +229,10 @@
jr z, .asm_71042
jp .townMapFlyLoop
.asm_71052
- ld hl, $cd3e
+ ld hl, wTrainerEngageDistance
jp .townMapFlyLoop
.asm_71058
- FuncCoord 19, 0 ; $c3b3
- ld de, Coord
+ deCoord 19, 0
dec hl
ld a, [hl]
cp $ff
@@ -251,7 +241,7 @@
jr z, .asm_71058
jp .townMapFlyLoop
.asm_71068
- ld hl, $cd49
+ ld hl, wcd49
jr .asm_71058
ToText: ; 7106d (1c:506d)
@@ -258,12 +248,12 @@
db "To@"
Func_71070: ; 71070 (1c:5070)
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld [hl], $ff
inc hl
- ld a, [$d70b]
+ ld a, [W_TOWNVISITEDFLAG]
ld e, a
- ld a, [$d70c]
+ ld a, [W_TOWNVISITEDFLAG + 1]
ld d, a
ld bc, $b
.asm_71081
@@ -294,12 +284,12 @@
call TextBoxBorder
call DisableLCD
ld hl, WorldMapTileGraphics ; $65a8
- ld de, $9600
+ ld de, vChars2 + $600
ld bc, $100
ld a, BANK(WorldMapTileGraphics)
call FarCopyData2
ld hl, MonNestIcon ; $56be
- ld de, $8040
+ ld de, vSprites + $40
ld bc, $8
ld a, BANK(MonNestIcon)
call FarCopyDataDouble
@@ -329,9 +319,9 @@
call Delay3
call GBPalNormal
xor a
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
inc a
- ld [$d09b], a
+ ld [wd09b], a
ret
CompressedMap: ; 71100 (1c:5100)
@@ -340,10 +330,10 @@
Func_711ab: ; 711ab (1c:51ab)
xor a
- ld [$d09b], a
+ ld [wd09b], a
call GBPalWhiteOut
call ClearScreen
- call CleanLCD_OAM
+ call ClearSprites
call LoadPlayerSpriteGraphics
call LoadFontTilePatterns
call UpdateSprites
@@ -352,9 +342,9 @@
Func_711c4: ; 711c4 (1c:51c4)
push af
ld a, b
- ld [$cd5b], a
+ ld [wcd5b], a
pop af
- ld de, $cee9
+ ld de, wHPBarMaxHP
call Func_712f1
ld a, [de]
push hl
@@ -361,7 +351,7 @@
call Func_71258
call Func_7126d
pop hl
- ld de, $cd6d
+ ld de, wcd6d
.asm_711dc
ld a, [hli]
ld [de], a
@@ -377,7 +367,7 @@
callba Func_e9cb
call Func_712d9
ld hl, wOAMBuffer
- ld de, $cee9
+ ld de, wHPBarMaxHP
.asm_71200
ld a, [de]
cp $ff
@@ -402,18 +392,16 @@
ld a, l
and a
jr nz, .asm_71236
- FuncCoord 1, 7 ; $c42d
- ld hl, Coord
+ hlCoord 1, 7
ld b, $2
ld c, $f
call TextBoxBorder
- FuncCoord 2, 9 ; $c456
- ld hl, Coord
+ hlCoord 2, 9
ld de, AreaUnknownText
call PlaceString
jr .asm_7123e
.asm_71236
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
ld b, $0
call Func_711c4
.asm_7123e
@@ -442,11 +430,11 @@
ret
Func_7126d: ; 7126d (1c:526d)
- ld a, [$cd5b]
+ ld a, [wcd5b]
and a
- ld hl, $c390
+ ld hl, wOAMBuffer + $90
jr z, Func_71279
- ld hl, $c380
+ ld hl, wOAMBuffer + $80
Func_71279: ; 71279 (1c:5279)
push hl
@@ -466,10 +454,10 @@
ld [hli], a
ld a, c
ld [hli], a
- ld a, [$cd5b]
+ ld a, [wcd5b]
ld [hli], a
inc a
- ld [$cd5b], a
+ ld [wcd5b], a
xor a
ld [hli], a
inc d
@@ -489,7 +477,7 @@
Func_712a6: ; 712a6 (1c:52a6)
xor a
- ld [$cd5c], a
+ ld [wcd5c], a
ld de, $202
.asm_712ad
push de
@@ -499,12 +487,12 @@
ld [hli], a
ld a, c
ld [hli], a
- ld a, [$cd5b]
+ ld a, [wcd5b]
ld [hli], a
- ld a, [$cd5c]
+ ld a, [wcd5c]
ld [hli], a
xor $20
- ld [$cd5c], a
+ ld [wcd5c], a
inc d
ld a, $8
add c
@@ -514,7 +502,7 @@
pop bc
pop de
push hl
- ld hl, $cd5b
+ ld hl, wcd5b
inc [hl]
inc [hl]
pop hl
@@ -526,7 +514,7 @@
ret
Func_712d9: ; 712d9 (1c:52d9)
- ld de, $cee9
+ ld de, wHPBarMaxHP
.asm_712dc
ld a, [de]
inc de
@@ -583,7 +571,7 @@
INCBIN "gfx/mon_nest_icon.1bpp"
Func_716c6: ; 716c6 (1c:56c6)
- ld a, [W_SUBANIMTRANSFORM] ; $d08b
+ ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
inc a
cp $19
jr z, .asm_716e1
@@ -606,5 +594,5 @@
jr nz, .asm_716e9
ld a, $19
.asm_716f1
- ld [W_SUBANIMTRANSFORM], a ; $d08b
+ ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
jp DelayFrame
--- a/engine/trade.asm
+++ b/engine/trade.asm
@@ -1,20 +1,20 @@
Func_410e2: ; 410e2 (10:50e2)
- ld a, [wWhichTrade] ; $cd3d
- ld [$cd5e], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcd5e], a
ld a, [wTrainerEngageDistance]
- ld [$cd5f], a
+ ld [wcd5f], a
ld de, PointerIDs_41138 ; $5138
jr Func_41102
Func_410f3: ; 410f3 (10:50f3)
ld a, [wTrainerEngageDistance]
- ld [$cd5e], a
+ ld [wcd5e], a
ld a, [wTrainerSpriteOffset]
- ld [$cd5f], a
+ ld [wcd5f], a
ld de, PointerIDs_41149
Func_41102: ; 41102 (10:5102)
- ld a, [W_OPTIONS] ; $d355
+ ld a, [W_OPTIONS] ; W_OPTIONS
push af
ld a, [$ffaf]
push af
@@ -21,7 +21,7 @@
ld a, [$ffae]
push af
xor a
- ld [W_OPTIONS], a ; $d355
+ ld [W_OPTIONS], a ; W_OPTIONS
ld [$ffaf], a
ld [$ffae], a
push de
@@ -49,7 +49,7 @@
pop af
ld [$ffaf], a
pop af
- ld [W_OPTIONS], a ; $d355
+ ld [W_OPTIONS], a ; W_OPTIONS
ret
; these bytes refer to the $00th through $10th pointer of PointerTable_4115f
@@ -104,25 +104,25 @@
call Func_41196
call DisableLCD
ld hl, TradingAnimationGraphics ; $69be
- ld de, $9310
+ ld de, vChars2 + $310
ld bc, $310
ld a, BANK(TradingAnimationGraphics)
call FarCopyData2
ld hl, TradingAnimationGraphics2 ; $6cce
- ld de, $87c0
+ ld de, vSprites + $7c0
ld bc, $40
ld a, BANK(TradingAnimationGraphics2)
call FarCopyData2
- ld hl, $9800
+ ld hl, vBGMap0
ld bc, $800
ld a, $7f
call FillMemory
- call CleanLCD_OAM
+ call ClearSprites
ld a, $ff
- ld [$cfcb], a
- ld hl, $d730
+ ld [wcfcb], a
+ ld hl, wd730
set 6, [hl]
- ld a, [$cf1b]
+ ld a, [wcf1b]
and a
ld a, $e4
jr z, .asm_411e5
@@ -132,15 +132,15 @@
call EnableLCD
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [wWhichTrade] ; $cd3d
- ld [$d11e], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd11e], a
call GetMonName
- ld hl, $cd6d
- ld de, $cf4b
+ ld hl, wcd6d
+ ld de, wcf4b
ld bc, $b
call CopyData
- ld a, [$cd3e]
- ld [$d11e], a
+ ld a, [wTrainerEngageDistance]
+ ld [wd11e], a
jp GetMonName
Func_4120b: ; 4120b (10:520b)
@@ -151,12 +151,12 @@
jp Bankswitch
Func_41217: ; 41217 (10:5217)
- ld hl, W_PLAYERNAME
+ ld hl, wPlayerName
ld de, wHPBarMaxHP
ld bc, $000b
call CopyData
ld hl, W_GRASSRATE
- ld de, W_PLAYERNAME
+ ld de, wPlayerName
ld bc, $000b
call CopyData
ld hl, wHPBarMaxHP
@@ -167,7 +167,7 @@
Func_4123b: ; 4123b (10:523b)
xor a
call LoadGBPal
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ret
@@ -181,8 +181,7 @@
ld [$ffae], a
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- FuncCoord 4, 0 ; $c3a4
- ld hl, Coord
+ hlCoord 4, 0
ld b, $6
ld c, $a
call TextBoxBorder
@@ -190,7 +189,7 @@
ld b, $98
call CopyScreenTileBufferToVRAM
call ClearScreen
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call Func_415a4
ld a, $7e
.asm_41273
@@ -208,7 +207,7 @@
call Func_41676
ld a, $aa
call Func_41676
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
call PlayCry
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
@@ -220,7 +219,7 @@
call CopyScreenTileBufferToVRAM
ld b, $8
call GoPAL_SET
- ld hl, $9c8c
+ ld hl, vBGMap1 + $8c
call Func_414ae
ld a, $a0
ld [$ffae], a
@@ -227,8 +226,7 @@
call DelayFrame
ld a, $8b
ld [rLCDC], a ; $ff40
- FuncCoord 6, 2 ; $c3ce
- ld hl, Coord
+ hlCoord 6, 2
ld b, $7
call Func_41842
call Func_41186
@@ -251,7 +249,7 @@
ld a, $e4
ld [rOBP0], a ; $ff48
xor a
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $2060
.asm_412e7
push bc
@@ -258,11 +256,11 @@
xor a
ld de, UnknownOAM_4132e ; $532e
call WriteOAMBlock
- ld a, [$d09f]
+ ld a, [wd09f]
xor $1
- ld [$d09f], a
+ ld [wd09f], a
add $7e
- ld hl, $c302
+ ld hl, wOAMBuffer + $02
ld de, $4
ld c, e
.asm_41300
@@ -281,7 +279,7 @@
call PlaySound
jr .asm_412e7
.asm_41318
- call CleanLCD_OAM
+ call ClearSprites
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call ClearScreen
@@ -300,8 +298,7 @@
ld a, $ac
call Func_41676
call Func_415c8
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
+ hlCoord 4, 10
ld b, $6
ld c, $a
call TextBoxBorder
@@ -309,17 +306,16 @@
call Func_41186
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
call Func_415a4
ld a, $ad
call Func_41676
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
call PlayCry
call Func_41181
- FuncCoord 4, 10 ; $c46c
- ld hl, Coord
+ hlCoord 4, 10
ld bc, $80c
call ClearScreenArea
jp PrintTradeTakeCareText
@@ -327,20 +323,20 @@
Func_41376: ; 41376 (10:5376)
call Func_41411
ld a, $1
- ld [$d08a], a
+ ld [wd08a], a
ld a, $e4
ld [rOBP0], a ; $ff48
ld a, $54
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, $1c
- ld [W_BASECOORDY], a ; $d082
- ld a, [$cd5e]
- ld [$cd5d], a
+ ld [W_BASECOORDY], a ; wd082
+ ld a, [wcd5e]
+ ld [wcd5d], a
call Func_41505
call Func_4142d
call Func_41186
call Func_4149f
- ld hl, $9c8c
+ ld hl, vBGMap1 + $8c
call Func_414ae
ld b, $6
call Func_414c5
@@ -355,23 +351,23 @@
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call Func_41525
- jp CleanLCD_OAM
+ jp ClearSprites
Func_413c6: ; 413c6 (10:53c6)
call Func_41411
xor a
- ld [$d08a], a
+ ld [wd08a], a
ld a, $64
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, $44
- ld [W_BASECOORDY], a ; $d082
- ld a, [$cd5f]
- ld [$cd5d], a
+ ld [W_BASECOORDY], a ; wd082
+ ld a, [wcd5f]
+ ld [wcd5d], a
call Func_41505
call Func_4145c
call Func_41186
call Func_4149f
- ld hl, $9c94
+ ld hl, vBGMap1 + $94
call Func_414ae
call Func_41525
ld b, $6
@@ -386,7 +382,7 @@
call Func_414c5
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- jp CleanLCD_OAM
+ jp ClearSprites
Func_41411: ; 41411 (10:5411)
ld a, $1
@@ -406,8 +402,7 @@
Func_4142d: ; 4142d (10:542d)
call Func_41196
- FuncCoord 11, 4 ; $c3fb
- ld hl, Coord
+ hlCoord 11, 4
ld a, $5d
ld [hli], a
ld a, $5e
@@ -416,25 +411,21 @@
ld [hli], a
dec c
jr nz, .asm_4143a
- FuncCoord 5, 3 ; $c3e1
- ld hl, Coord
+ hlCoord 5, 3
ld b, $6
call Func_41842
- FuncCoord 4, 12 ; $c494
- ld hl, Coord
+ hlCoord 4, 12
ld b, $2
ld c, $7
call TextBoxBorder
- FuncCoord 5, 14 ; $c4bd
- ld hl, Coord
- ld de, W_PLAYERNAME ; $d158
+ hlCoord 5, 14
+ ld de, wPlayerName ; wd158
call PlaceString
jp DelayFrame
Func_4145c: ; 4145c (10:545c)
call Func_41196
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld a, $5e
ld c, $e
.asm_41466
@@ -458,25 +449,21 @@
ld [hld], a
ld a, $5d
ld [hl], a
- FuncCoord 7, 8 ; $c447
- ld hl, Coord
+ hlCoord 7, 8
ld b, $6
call Func_41842
- FuncCoord 6, 0 ; $c3a6
- ld hl, Coord
+ hlCoord 6, 0
ld b, $2
ld c, $7
call TextBoxBorder
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
- ld de, W_GRASSRATE ; $d887
+ hlCoord 7, 2
+ ld de, W_GRASSRATE ; W_GRASSRATE
call PlaceString
jp DelayFrame
Func_4149f: ; 4149f (10:549f)
call Func_41196
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
ld a, $5e
ld c, $14
.asm_414a9
@@ -487,12 +474,11 @@
Func_414ae: ; 414ae (10:54ae)
push hl
- FuncCoord 0, 4 ; $c3f0
- ld hl, Coord
+ hlCoord 0, 4
call ScheduleRowRedrawHelper
pop hl
ld a, h
- ld [$ffd2], a
+ ld [H_SCREENEDGEREDRAWADDR + 1], a
ld a, l
ld [H_SCREENEDGEREDRAWADDR], a ; $ffd1
ld a, $2
@@ -501,7 +487,7 @@
jp DelayFrames
Func_414c5: ; 414c5 (10:54c5)
- ld a, [$d08a]
+ ld a, [wd08a]
ld e, a
ld d, $8
.asm_414cb
@@ -531,7 +517,7 @@
ld a, [rBGP] ; $ff47
xor $3c
ld [rBGP], a ; $ff47
- ld hl, $c302
+ ld hl, wOAMBuffer + $02
ld de, $4
ld c, $14
.asm_414f9
@@ -554,10 +540,10 @@
ld hl, wOAMBuffer
ld c, $14
.asm_41515
- ld a, [W_BASECOORDY] ; $d082
+ ld a, [W_BASECOORDY] ; wd082
add [hl]
ld [hli], a
- ld a, [W_BASECOORDX] ; $d081
+ ld a, [W_BASECOORDX] ; wd081
add [hl]
ld [hli], a
inc hl
@@ -567,7 +553,7 @@
ret
Func_41525: ; 41525 (10:5525)
- ld a, [$d08a]
+ ld a, [wd08a]
and a
jr z, .asm_41536
ld bc, $400
@@ -580,9 +566,9 @@
ld bc, $fc00
.asm_4153f
ld a, b
- ld [W_BASECOORDX], a ; $d081
+ ld [W_BASECOORDX], a ; wd081
ld a, c
- ld [W_BASECOORDY], a ; $d082
+ ld [W_BASECOORDY], a ; wd082
ld d, $4
.asm_41549
call Func_41510
@@ -645,9 +631,9 @@
db $39,$70,$38,$70
Func_415a4: ; 415a4 (10:55a4)
- ld [$cf91], a
- ld [$d0b5], a
- ld [$cf1d], a
+ ld [wcf91], a
+ ld [wd0b5], a
+ ld [wcf1d], a
ld b, $b
ld c, $0
call GoPAL_SET
@@ -655,8 +641,7 @@
xor $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
call GetMonHeader
- FuncCoord 7, 2 ; $c3cf
- ld hl, Coord
+ hlCoord 7, 2
call LoadFlippedFrontSpriteByMonIndex
ld c, $a
jp DelayFrames
@@ -763,8 +748,7 @@
db "@"
Func_41676: ; 41676 (10:5676)
- ld [W_ANIMATIONID], a ; $d07c
+ ld [W_ANIMATIONID], a ; W_ANIMATIONID
xor a
- ld [$cc5b], a
- ld a, $8
- jp Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e))
+ ld [wcc5b], a
+ predef_jump MoveAnimation
--- a/engine/trade2.asm
+++ b/engine/trade2.asm
@@ -1,56 +1,44 @@
Func_42769: ; 42769 (10:6769)
- FuncCoord 5,0
- ld hl,Coord
+ hlCoord 5, 0
ld de,OTString67E5
call PlaceString
- ld a,[$CD3D]
- ld [$D11E],a
- ld a,$3A
- call Predef
- FuncCoord 9, 0 ; $c3a9
- ld hl,Coord
- ld de,$D11E
+ ld a,[wWhichTrade]
+ ld [wd11e],a
+ predef IndexToPokedex
+ hlCoord 9, 0
+ ld de,wd11e
ld bc,$8103
call PrintNumber
- FuncCoord 5,2
- ld hl,Coord
- ld de,$CF4B
+ hlCoord 5, 2
+ ld de,wcf4b
call PlaceString
- FuncCoord 8,4
- ld hl,Coord
- ld de,$CD41
+ hlCoord 8, 4
+ ld de,wTrainerScreenX
call PlaceString
- FuncCoord 8, 6 ; $c420
- ld hl,Coord
- ld de,$CD4C
+ hlCoord 8, 6
+ ld de,wcd4c
ld bc,$8205
jp PrintNumber
Func_427a7: ; 427a7 (10:67a7)
- FuncCoord 5,10
- ld hl,Coord
+ hlCoord 5, 10
ld de,OTString67E5
call PlaceString
- ld a,[$CD3E]
- ld [$D11E],a
- ld a,$3A
- call Predef
- FuncCoord 9, 10 ; $c471
- ld hl,Coord
- ld de,$D11E
+ ld a,[wTrainerEngageDistance]
+ ld [wd11e],a
+ predef IndexToPokedex
+ hlCoord 9, 10
+ ld de,wd11e
ld bc,$8103
call PrintNumber
- FuncCoord 5,12
- ld hl,Coord
- ld de,$CD6D
+ hlCoord 5, 12
+ ld de,wcd6d
call PlaceString
- FuncCoord 8,14
- ld hl,Coord
- ld de,$CD4E
+ hlCoord 8, 14
+ ld de,wcd4e
call PlaceString
- FuncCoord 8, 16 ; $c4e8
- ld hl,Coord
- ld de,$CD59
+ hlCoord 8, 16
+ ld de,wcd59
ld bc,$8205
jp PrintNumber
binary files /dev/null b/gfx/badges.png differ
binary files a/gfx/badges.w16.png /dev/null differ
binary files a/gfx/blue/blueversion.h8.png /dev/null differ
binary files /dev/null b/gfx/blue/blueversion.png differ
binary files /dev/null b/gfx/blue/sgbborder.png differ
binary files a/gfx/blue/sgbborder.w128.png /dev/null differ
binary files a/gfx/copyright.h8.png /dev/null differ
binary files /dev/null b/gfx/copyright.png differ
binary files /dev/null b/gfx/emotion_bubbles.png differ
binary files a/gfx/emotion_bubbles.w16.png /dev/null differ
binary files /dev/null b/gfx/font.png differ
binary files a/gfx/font.w128.png /dev/null differ
binary files a/gfx/gamefreak.h8.png /dev/null differ
binary files /dev/null b/gfx/gamefreak.png differ
binary files a/gfx/gamefreak_intro.h8.png /dev/null differ
binary files /dev/null b/gfx/gamefreak_intro.png differ
binary files a/gfx/hp_bar_and_status.w80.png /dev/null differ
binary files /dev/null b/gfx/pokemon_logo.png differ
binary files a/gfx/pokemon_logo.w128.png /dev/null differ
binary files a/gfx/red/redgreenversion.h8.png /dev/null differ
binary files /dev/null b/gfx/red/redgreenversion.png differ
binary files /dev/null b/gfx/red/sgbborder.png differ
binary files a/gfx/red/sgbborder.w128.png /dev/null differ
binary files /dev/null b/gfx/theend.interleave.png differ
binary files a/gfx/theend.w40.interleave.png /dev/null differ
binary files /dev/null b/gfx/tilesets/cavern.t14.png differ
binary files a/gfx/tilesets/cavern.w128.t14.png /dev/null differ
binary files /dev/null b/gfx/tilesets/cemetery.t4.png differ
binary files a/gfx/tilesets/cemetery.w128.t4.png /dev/null differ
binary files /dev/null b/gfx/tilesets/club.t5.png differ
binary files a/gfx/tilesets/club.w128.t5.png /dev/null differ
binary files /dev/null b/gfx/tilesets/facility.png differ
binary files a/gfx/tilesets/facility.w128.png /dev/null differ
binary files /dev/null b/gfx/tilesets/forest.png differ
binary files a/gfx/tilesets/forest.w128.png /dev/null differ
binary files /dev/null b/gfx/tilesets/gate.t1.png differ
binary files a/gfx/tilesets/gate.w128.t1.png /dev/null differ
binary files /dev/null b/gfx/tilesets/gym.png differ
binary files a/gfx/tilesets/gym.w128.png /dev/null differ
binary files /dev/null b/gfx/tilesets/house.t2.png differ
binary files a/gfx/tilesets/house.w128.t2.png /dev/null differ
binary files /dev/null b/gfx/tilesets/interior.t1.png differ
binary files a/gfx/tilesets/interior.w128.t1.png /dev/null differ
binary files /dev/null b/gfx/tilesets/lab.t4.png differ
binary files a/gfx/tilesets/lab.w128.t4.png /dev/null differ
binary files /dev/null b/gfx/tilesets/lobby.t2.png differ
binary files a/gfx/tilesets/lobby.w128.t2.png /dev/null differ
binary files /dev/null b/gfx/tilesets/mansion.t2.png differ
binary files a/gfx/tilesets/mansion.w128.t2.png /dev/null differ
binary files /dev/null b/gfx/tilesets/overworld.t2.png differ
binary files a/gfx/tilesets/overworld.w128.t2.png /dev/null differ
binary files /dev/null b/gfx/tilesets/plateau.t10.png differ
binary files a/gfx/tilesets/plateau.w128.t10.png /dev/null differ
binary files /dev/null b/gfx/tilesets/pokecenter.png differ
binary files a/gfx/tilesets/pokecenter.w128.png /dev/null differ
binary files /dev/null b/gfx/tilesets/reds_house.t7.png differ
binary files a/gfx/tilesets/reds_house.w128.t7.png /dev/null differ
binary files /dev/null b/gfx/tilesets/ship.t6.png differ
binary files a/gfx/tilesets/ship.w128.t6.png /dev/null differ
binary files /dev/null b/gfx/tilesets/ship_port.t2.png differ
binary files a/gfx/tilesets/ship_port.w128.t2.png /dev/null differ
binary files /dev/null b/gfx/tilesets/underground.t7.png differ
binary files a/gfx/tilesets/underground.w128.t7.png /dev/null differ
--- /dev/null
+++ b/home.asm
@@ -1,0 +1,5270 @@
+; The rst vectors are unused.
+SECTION "rst00", ROM0[$00]
+ rst $38
+SECTION "rst08", ROM0[$08]
+ rst $38
+SECTION "rst10", ROM0[$10]
+ rst $38
+SECTION "rst18", ROM0[$18]
+ rst $38
+SECTION "rst20", ROM0[$20]
+ rst $38
+SECTION "rst28", ROM0[$28]
+ rst $38
+SECTION "rst30", ROM0[$30]
+ rst $38
+SECTION "rst38", ROM0[$38]
+ rst $38
+
+; interrupts
+SECTION "vblank", ROM0[$40]
+ jp VBlank
+SECTION "lcdc", ROM0[$48]
+ rst $38
+SECTION "timer", ROM0[$50]
+ jp Timer
+SECTION "serial", ROM0[$58]
+ jp Serial
+SECTION "joypad", ROM0[$60]
+ reti
+
+
+SECTION "bank0",ROM0[$61]
+
+DisableLCD::
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ ld b, a
+ res 0, a
+ ld [rIE], a
+
+.wait
+ ld a, [rLY]
+ cp LY_VBLANK
+ jr nz, .wait
+
+ ld a, [rLCDC]
+ and $ff ^ rLCDC_ENABLE_MASK
+ ld [rLCDC], a
+ ld a, b
+ ld [rIE], a
+ ret
+
+EnableLCD::
+ ld a, [rLCDC]
+ set rLCDC_ENABLE, a
+ ld [rLCDC], a
+ ret
+
+ClearSprites::
+ xor a
+ ld hl, wOAMBuffer
+ ld b, 40 * 4
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+
+HideSprites::
+ ld a, 160
+ ld hl, wOAMBuffer
+ ld de, 4
+ ld b, 40
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+
+FarCopyData::
+; Copy bc bytes from a:hl to de.
+ ld [wBuffer], a
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, [wBuffer]
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ call CopyData
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ ret
+
+CopyData::
+; Copy bc bytes from hl to de.
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, CopyData
+ ret
+
+
+SECTION "Entry", ROM0[$100]
+ nop
+ jp Start
+
+
+SECTION "Start", ROM0[$150]
+
+Start::
+ cp GBC
+ jr z, .gbc
+ xor a
+ jr .ok
+.gbc
+ ld a, 0
+.ok
+ ld [wGBC], a
+ jp Init
+
+
+INCLUDE "home/joypad.asm"
+
+INCLUDE "data/map_header_pointers.asm"
+
+INCLUDE "home/overworld.asm"
+
+; this is used to check if the player wants to interrupt the opening sequence at several points
+; XXX is this used anywhere else?
+; INPUT:
+; c = number of frames to wait
+; sets carry if Up+Select+B, Start, or A is pressed within c frames
+; unsets carry otherwise
+CheckForUserInterruption:: ; 12f8 (0:12f8)
+ call DelayFrame
+ push bc
+ call JoypadLowSensitivity
+ pop bc
+ ld a,[hJoyHeld] ; currently pressed buttons
+ cp a,%01000110 ; Up, Select button, B button
+ jr z,.setCarry ; if all three keys are pressed
+ ld a,[$ffb5] ; either newly pressed buttons or currently pressed buttons at low sampling rate
+ and a,%00001001 ; Start button, A button
+ jr nz,.setCarry ; if either key is pressed
+ dec c
+ jr nz,CheckForUserInterruption
+.unsetCarry
+ and a
+ ret
+.setCarry
+ scf
+ ret
+
+; function to load position data for destination warp when switching maps
+; INPUT:
+; a = ID of destination warp within destination map
+LoadDestinationWarpPosition:: ; 1313 (0:1313)
+ ld b,a
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[wPredefParentBank]
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ld a,b
+ add a
+ add a
+ ld c,a
+ ld b,0
+ add hl,bc
+ ld bc,4
+ ld de,wd35f
+ call CopyData
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; INPUT:
+; c: if nonzero, show at least a sliver of health
+; d = number of HP bar sections (normally 6)
+; e = health (in eighths of bar sections) (normally out of 48)
+DrawHPBar:: ; 1336 (0:1336)
+ push hl
+ push de
+ push bc
+ ld a,$71 ; left of HP bar tile 1
+ ld [hli],a
+ ld a,$62 ; left of HP bar tile 2
+ ld [hli],a
+ push hl
+ ld a,$63 ; empty bar section tile
+.drawEmptyBarLoop
+ ld [hli],a
+ dec d
+ jr nz,.drawEmptyBarLoop
+ ld a,[wListMenuID]
+ dec a ; what should the right of HP bar tile be?
+ ld a,$6d ; right of HP bar tile, in status screen and battles
+ jr z,.writeTile
+ dec a ; right of HP bar tile, in pokemon menu
+.writeTile
+ ld [hl],a
+ pop hl
+ ld a,e
+ and a ; is there enough health to show up on the HP bar?
+ jr nz,.loop ; if so, draw the HP bar
+ ld a,c
+ and a ; should a sliver of health be shown no matter what?
+ jr z,.done
+ ld e,1 ; if so, fill one eighth of a bar section
+; loop to draw every full bar section
+.loop
+ ld a,e
+ sub a,8
+ jr c,.drawPartialBarSection
+ ld e,a
+ ld a,$6b ; filled bar section tile
+ ld [hli],a
+ ld a,e
+ and a
+ jr z,.done
+ jr .loop
+; draws a partial bar section at the end (if necessary)
+; there are 7 possible partial bar sections from 1/8 to 7/8 full
+.drawPartialBarSection
+ ld a,$63 ; empty bar section tile
+ add e ; add e to get the appropriate partial bar section tile
+ ld [hl],a ; write the tile
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+
+; loads pokemon data from one of multiple sources to wcf98
+; loads base stats to W_MONHDEXNUM
+; INPUT:
+; [wWhichPokemon] = index of pokemon within party/box
+; [wcc49] = source
+; 00: player's party
+; 01: enemy's party
+; 02: current box
+; 03: daycare
+; OUTPUT:
+; [wcf91] = pokemon ID
+; wcf98 = base address of pokemon data
+; W_MONHDEXNUM = base address of base stats
+LoadMonData:: ; 1372 (0:1372)
+ ld hl,LoadMonData_
+ ld b,BANK(LoadMonData_)
+ jp Bankswitch
+
+; writes c to wd0dc+b
+Func_137a:: ; 137a (0:137a)
+ ld hl, wd0dc
+ ld e, b
+ ld d, $0
+ add hl, de
+ ld a, c
+ ld [hl], a
+ ret
+
+LoadFlippedFrontSpriteByMonIndex:: ; 1384 (0:1384)
+ ld a, $1
+ ld [W_SPRITEFLIPPED], a
+
+LoadFrontSpriteByMonIndex:: ; 1389 (0:1389)
+ push hl
+ ld a, [wd11e]
+ push af
+ ld a, [wcf91]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld hl, wd11e
+ ld a, [hl]
+ pop bc
+ ld [hl], b
+ and a
+ pop hl
+ jr z, .invalidDexNumber ; dex #0 invalid
+ cp NUM_POKEMON + 1
+ jr c, .validDexNumber ; dex >#151 invalid
+.invalidDexNumber
+ ld a, RHYDON ; $1
+ ld [wcf91], a
+ ret
+.validDexNumber
+ push hl
+ ld de, vFrontPic
+ call LoadMonFrontSprite
+ pop hl
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, Bank(asm_3f0d0)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ xor a
+ ld [$ffe1], a
+ call asm_3f0d0
+ xor a
+ ld [W_SPRITEFLIPPED], a
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+; plays the cry of a pokemon
+; INPUT:
+; a = pokemon ID
+PlayCry:: ; 13d0 (0:13d0)
+ call GetCryData
+ call PlaySound ; play cry
+ jp WaitForSoundToFinish ; wait for sound to be done playing
+
+; gets a pokemon's cry data
+; INPUT:
+; a = pokemon ID
+GetCryData:: ; 13d9 (0:13d9)
+ dec a
+ ld c,a
+ ld b,0
+ ld hl,CryData
+ add hl,bc
+ add hl,bc
+ add hl,bc
+ ld a,Bank(CryData)
+ call BankswitchHome
+ ld a,[hli]
+ ld b,a
+ ld a,[hli]
+ ld [wc0f1],a
+ ld a,[hl]
+ ld [wc0f2],a
+ call BankswitchBack
+ ld a,b ; a = cryID
+ ld c,$14 ; base sound ID for pokemon cries
+ rlca
+ add b ; a = cryID * 3
+ add c ; a = $14 + cryID * 3
+ ret
+
+DisplayPartyMenu:: ; 13fc (0:13fc)
+ ld a,[$ffd7]
+ push af
+ xor a
+ ld [$ffd7],a
+ call GBPalWhiteOutWithDelay3
+ call ClearSprites
+ call PartyMenuInit
+ call DrawPartyMenu
+ jp HandlePartyMenuInput
+
+GoBackToPartyMenu:: ; 1411 (0:1411)
+ ld a,[$ffd7]
+ push af
+ xor a
+ ld [$ffd7],a
+ call PartyMenuInit
+ call RedrawPartyMenu
+ jp HandlePartyMenuInput
+
+PartyMenuInit:: ; 1420 (0:1420)
+ ld a,$01
+ call BankswitchHome
+ call LoadHpBarAndStatusTilePatterns
+ ld hl,wd730
+ set 6,[hl] ; turn off letter printing delay
+ xor a
+ ld [wcc49],a
+ ld [wcc37],a
+ ld hl,wTopMenuItemY
+ inc a
+ ld [hli],a ; top menu item Y
+ xor a
+ ld [hli],a ; top menu item X
+ ld a,[wcc2b]
+ push af
+ ld [hli],a ; current menu item ID
+ inc hl
+ ld a,[wPartyCount]
+ and a ; are there more than 0 pokemon in the party?
+ jr z,.storeMaxMenuItemID
+ dec a
+; if party is not empty, the max menu item ID is ([wPartyCount] - 1)
+; otherwise, it is 0
+.storeMaxMenuItemID
+ ld [hli],a ; max menu item ID
+ ld a,[wd11f]
+ and a
+ ld a,%00000011 ; A button and B button
+ jr z,.next
+ xor a
+ ld [wd11f],a
+ inc a
+.next
+ ld [hli],a ; menu watched keys
+ pop af
+ ld [hl],a ; old menu item ID
+ ret
+
+HandlePartyMenuInput:: ; 145a (0:145a)
+ ld a,1
+ ld [wMenuWrappingEnabled],a
+ ld a,$40
+ ld [wd09b],a
+ call HandleMenuInputPokemonSelection
+ call PlaceUnfilledArrowMenuCursor
+ ld b,a
+ xor a
+ ld [wd09b],a
+ ld a,[wCurrentMenuItem]
+ ld [wcc2b],a
+ ld hl,wd730
+ res 6,[hl] ; turn on letter printing delay
+ ld a,[wcc35]
+ and a
+ jp nz,.swappingPokemon
+ pop af
+ ld [$ffd7],a
+ bit 1,b
+ jr nz,.noPokemonChosen
+ ld a,[wPartyCount]
+ and a
+ jr z,.noPokemonChosen
+ ld a,[wCurrentMenuItem]
+ ld [wWhichPokemon],a
+ ld hl,wPartySpecies
+ ld b,0
+ ld c,a
+ add hl,bc
+ ld a,[hl]
+ ld [wcf91],a
+ ld [wBattleMonSpecies2],a
+ call BankswitchBack
+ and a
+ ret
+.noPokemonChosen
+ call BankswitchBack
+ scf
+ ret
+.swappingPokemon
+ bit 1,b ; was the B button pressed?
+ jr z,.handleSwap ; if not, handle swapping the pokemon
+.cancelSwap ; if the B button was pressed
+ callba ErasePartyMenuCursors
+ xor a
+ ld [wcc35],a
+ ld [wd07d],a
+ call RedrawPartyMenu
+ jr HandlePartyMenuInput
+.handleSwap
+ ld a,[wCurrentMenuItem]
+ ld [wWhichPokemon],a
+ callba SwitchPartyMon
+ jr HandlePartyMenuInput
+
+DrawPartyMenu:: ; 14d4 (0:14d4)
+ ld hl, DrawPartyMenu_
+ jr DrawPartyMenuCommon
+
+RedrawPartyMenu:: ; 14d9 (0:14d9)
+ ld hl, RedrawPartyMenu_
+
+DrawPartyMenuCommon:: ; 14dc (0:14dc)
+ ld b, BANK(RedrawPartyMenu_)
+ jp Bankswitch
+
+; prints a pokemon's status condition
+; INPUT:
+; de = address of status condition
+; hl = destination address
+PrintStatusCondition:: ; 14e1 (0:14e1)
+ push de
+ dec de
+ dec de ; de = address of current HP
+ ld a,[de]
+ ld b,a
+ dec de
+ ld a,[de]
+ or b ; is the pokemon's HP zero?
+ pop de
+ jr nz,PrintStatusConditionNotFainted
+; if the pokemon's HP is 0, print "FNT"
+ ld a,"F"
+ ld [hli],a
+ ld a,"N"
+ ld [hli],a
+ ld [hl],"T"
+ and a
+ ret
+PrintStatusConditionNotFainted ; 14f6
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(PrintStatusAilment)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call PrintStatusAilment ; print status condition
+ pop bc
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; function to print pokemon level, leaving off the ":L" if the level is at least 100
+; INPUT:
+; hl = destination address
+; [wcfb9] = level
+PrintLevel:: ; 150b (0:150b)
+ ld a,$6e ; ":L" tile ID
+ ld [hli],a
+ ld c,2 ; number of digits
+ ld a,[wcfb9] ; level
+ cp a,100
+ jr c,PrintLevelCommon
+; if level at least 100, write over the ":L" tile
+ dec hl
+ inc c ; increment number of digits to 3
+ jr PrintLevelCommon
+
+; prints the level without leaving off ":L" regardless of level
+; INPUT:
+; hl = destination address
+; [wcfb9] = level
+PrintLevelFull:: ; 151b (0:151b)
+ ld a,$6e ; ":L" tile ID
+ ld [hli],a
+ ld c,3 ; number of digits
+ ld a,[wcfb9] ; level
+
+PrintLevelCommon:: ; 1523 (0:1523)
+ ld [wd11e],a
+ ld de,wd11e
+ ld b,$41 ; no leading zeroes, left-aligned, one byte
+ jp PrintNumber
+
+Func_152e:: ; 152e (0:152e)
+ ld hl,wd0dc
+ ld c,a
+ ld b,0
+ add hl,bc
+ ld a,[hl]
+ ret
+
+; copies the base stat data of a pokemon to W_MONHDEXNUM (W_MONHEADER)
+; INPUT:
+; [wd0b5] = pokemon ID
+GetMonHeader:: ; 1537 (0:1537)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(BaseStats)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ push bc
+ push de
+ push hl
+ ld a,[wd11e]
+ push af
+ ld a,[wd0b5]
+ ld [wd11e],a
+ ld de,FossilKabutopsPic
+ ld b,$66 ; size of Kabutops fossil and Ghost sprites
+ cp a,FOSSIL_KABUTOPS ; Kabutops fossil
+ jr z,.specialID
+ ld de,GhostPic
+ cp a,MON_GHOST ; Ghost
+ jr z,.specialID
+ ld de,FossilAerodactylPic
+ ld b,$77 ; size of Aerodactyl fossil sprite
+ cp a,FOSSIL_AERODACTYL ; Aerodactyl fossil
+ jr z,.specialID
+ cp a,MEW
+ jr z,.mew
+ predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number
+ ld a,[wd11e]
+ dec a
+ ld bc,28
+ ld hl,BaseStats
+ call AddNTimes
+ ld de,W_MONHEADER
+ ld bc,28
+ call CopyData
+ jr .done
+.specialID
+ ld hl,W_MONHSPRITEDIM
+ ld [hl],b ; write sprite dimensions
+ inc hl
+ ld [hl],e ; write front sprite pointer
+ inc hl
+ ld [hl],d
+ jr .done
+.mew
+ ld hl,MewBaseStats
+ ld de,W_MONHEADER
+ ld bc,28
+ ld a,BANK(MewBaseStats)
+ call FarCopyData
+.done
+ ld a,[wd0b5]
+ ld [W_MONHDEXNUM],a
+ pop af
+ ld [wd11e],a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; copy party pokemon's name to wcd6d
+GetPartyMonName2:: ; 15b4 (0:15b4)
+ ld a,[wWhichPokemon] ; index within party
+ ld hl,wPartyMonNicks
+
+; this is called more often
+GetPartyMonName:: ; 15ba (0:15ba)
+ push hl
+ push bc
+ call SkipFixedLengthTextEntries ; add 11 to hl, a times
+ ld de,wcd6d
+ push de
+ ld bc,11
+ call CopyData
+ pop de
+ pop bc
+ pop hl
+ ret
+
+; function to print a BCD (Binary-coded decimal) number
+; de = address of BCD number
+; hl = destination address
+; c = flags and length
+; bit 7: if set, do not print leading zeroes
+; if unset, print leading zeroes
+; bit 6: if set, left-align the string (do not pad empty digits with spaces)
+; if unset, right-align the string
+; bit 5: if set, print currency symbol at the beginning of the string
+; if unset, do not print the currency symbol
+; bits 0-4: length of BCD number in bytes
+; Note that bits 5 and 7 are modified during execution. The above reflects
+; their meaning at the beginning of the functions's execution.
+PrintBCDNumber:: ; 15cd (0:15cd)
+ ld b,c ; save flags in b
+ res 7,c
+ res 6,c
+ res 5,c ; c now holds the length
+ bit 5,b
+ jr z,.loop
+ bit 7,b
+ jr nz,.loop
+ ld [hl],"¥"
+ inc hl
+.loop
+ ld a,[de]
+ swap a
+ call PrintBCDDigit ; print upper digit
+ ld a,[de]
+ call PrintBCDDigit ; print lower digit
+ inc de
+ dec c
+ jr nz,.loop
+ bit 7,b ; were any non-zero digits printed?
+ jr z,.done ; if so, we are done
+.numberEqualsZero ; if every digit of the BCD number is zero
+ bit 6,b ; left or right alignment?
+ jr nz,.skipRightAlignmentAdjustment
+ dec hl ; if the string is right-aligned, it needs to be moved back one space
+.skipRightAlignmentAdjustment
+ bit 5,b
+ jr z,.skipCurrencySymbol
+ ld [hl],"¥"
+ inc hl
+.skipCurrencySymbol
+ ld [hl],"0"
+ call PrintLetterDelay
+ inc hl
+.done
+ ret
+
+PrintBCDDigit:: ; 1604 (0:1604)
+ and a,%00001111
+ and a
+ jr z,.zeroDigit
+.nonzeroDigit
+ bit 7,b ; have any non-space characters been printed?
+ jr z,.outputDigit
+; if bit 7 is set, then no numbers have been printed yet
+ bit 5,b ; print the currency symbol?
+ jr z,.skipCurrencySymbol
+ ld [hl],"¥"
+ inc hl
+ res 5,b
+.skipCurrencySymbol
+ res 7,b ; unset 7 to indicate that a nonzero digit has been reached
+.outputDigit
+ add a,"0"
+ ld [hli],a
+ jp PrintLetterDelay
+.zeroDigit
+ bit 7,b ; either printing leading zeroes or already reached a nonzero digit?
+ jr z,.outputDigit ; if so, print a zero digit
+ bit 6,b ; left or right alignment?
+ ret nz
+ inc hl ; if right-aligned, "print" a space by advancing the pointer
+ ret
+
+; uncompresses the front or back sprite of the specified mon
+; assumes the corresponding mon header is already loaded
+; hl contains offset to sprite pointer ($b for front or $d for back)
+UncompressMonSprite:: ; 1627 (0:1627)
+ ld bc,W_MONHEADER
+ add hl,bc
+ ld a,[hli]
+ ld [W_SPRITEINPUTPTR],a ; fetch sprite input pointer
+ ld a,[hl]
+ ld [W_SPRITEINPUTPTR+1],a
+; define (by index number) the bank that a pokemon's image is in
+; index = Mew, bank 1
+; index = Kabutops fossil, bank $B
+; index < $1F, bank 9
+; $1F ≤ index < $4A, bank $A
+; $4A ≤ index < $74, bank $B
+; $74 ≤ index < $99, bank $C
+; $99 ≤ index, bank $D
+ ld a,[wcf91] ; XXX name for this ram location
+ ld b,a
+ cp MEW
+ ld a,BANK(MewPicFront)
+ jr z,.GotBank
+ ld a,b
+ cp FOSSIL_KABUTOPS
+ ld a,BANK(FossilKabutopsPic)
+ jr z,.GotBank
+ ld a,b
+ cp TANGELA + 1
+ ld a,BANK(TangelaPicFront)
+ jr c,.GotBank
+ ld a,b
+ cp MOLTRES + 1
+ ld a,BANK(MoltresPicFront)
+ jr c,.GotBank
+ ld a,b
+ cp BEEDRILL + 2
+ ld a,BANK(BeedrillPicFront)
+ jr c,.GotBank
+ ld a,b
+ cp STARMIE + 1
+ ld a,BANK(StarmiePicFront)
+ jr c,.GotBank
+ ld a,BANK(VictreebelPicFront)
+.GotBank
+ jp UncompressSpriteData
+
+; de: destination location
+LoadMonFrontSprite:: ; 1665 (0:1665)
+ push de
+ ld hl, W_MONHFRONTSPRITE - W_MONHEADER
+ call UncompressMonSprite
+ ld hl, W_MONHSPRITEDIM
+ ld a, [hli]
+ ld c, a
+ pop de
+ ; fall through
+
+; postprocesses uncompressed sprite chunks to a 2bpp sprite and loads it into video ram
+; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers
+; de: destination location
+; a,c: sprite dimensions (in tiles of 8x8 each)
+LoadUncompressedSpriteData:: ; 1672 (0:1672)
+ push de
+ and $f
+ ld [H_SPRITEWIDTH], a ; each byte contains 8 pixels (in 1bpp), so tiles=bytes for width
+ ld b, a
+ ld a, $7
+ sub b ; 7-w
+ inc a ; 8-w
+ srl a ; (8-w)/2 ; horizontal center (in tiles, rounded up)
+ ld b, a
+ add a
+ add a
+ add a
+ sub b ; 7*((8-w)/2) ; skip for horizontal center (in tiles)
+ ld [H_SPRITEOFFSET], a
+ ld a, c
+ swap a
+ and $f
+ ld b, a
+ add a
+ add a
+ add a ; 8*tiles is height in bytes
+ ld [H_SPRITEHEIGHT], a ; $ff8c
+ ld a, $7
+ sub b ; 7-h ; skip for vertical center (in tiles, relative to current column)
+ ld b, a
+ ld a, [H_SPRITEOFFSET]
+ add b ; 7*((8-w)/2) + 7-h ; combined overall offset (in tiles)
+ add a
+ add a
+ add a ; 8*(7*((8-w)/2) + 7-h) ; combined overall offset (in bytes)
+ ld [H_SPRITEOFFSET], a
+ xor a
+ ld [$4000], a
+ ld hl, S_SPRITEBUFFER0
+ call ZeroSpriteBuffer ; zero buffer 0
+ ld de, S_SPRITEBUFFER1
+ ld hl, S_SPRITEBUFFER0
+ call AlignSpriteDataCentered ; copy and align buffer 1 to 0 (containing the MSB of the 2bpp sprite)
+ ld hl, S_SPRITEBUFFER1
+ call ZeroSpriteBuffer ; zero buffer 1
+ ld de, S_SPRITEBUFFER2
+ ld hl, S_SPRITEBUFFER1
+ call AlignSpriteDataCentered ; copy and align buffer 2 to 1 (containing the LSB of the 2bpp sprite)
+ pop de
+ jp InterlaceMergeSpriteBuffers
+
+; copies and aligns the sprite data properly inside the sprite buffer
+; sprite buffers are 7*7 tiles in size, the loaded sprite is centered within this area
+AlignSpriteDataCentered:: ; 16c2 (0:16c2)
+ ld a, [H_SPRITEOFFSET]
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [H_SPRITEWIDTH] ; $ff8b
+.columnLoop
+ push af
+ push hl
+ ld a, [H_SPRITEHEIGHT] ; $ff8c
+ ld c, a
+.columnInnerLoop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .columnInnerLoop
+ pop hl
+ ld bc, 7*8 ; 7 tiles
+ add hl, bc ; advance one full column
+ pop af
+ dec a
+ jr nz, .columnLoop
+ ret
+
+; fills the sprite buffer (pointed to in hl) with zeros
+ZeroSpriteBuffer:: ; 16df (0:16df)
+ ld bc, SPRITEBUFFERSIZE
+.nextByteLoop
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .nextByteLoop
+ ret
+
+; combines the (7*7 tiles, 1bpp) sprite chunks in buffer 0 and 1 into a 2bpp sprite located in buffer 1 through 2
+; in the resulting sprite, the rows of the two source sprites are interlaced
+; de: output address
+InterlaceMergeSpriteBuffers:: ; 16ea (0:16ea)
+ xor a
+ ld [$4000], a
+ push de
+ ld hl, S_SPRITEBUFFER2 + (SPRITEBUFFERSIZE - 1) ; destination: end of buffer 2
+ ld de, S_SPRITEBUFFER1 + (SPRITEBUFFERSIZE - 1) ; source 2: end of buffer 1
+ ld bc, S_SPRITEBUFFER0 + (SPRITEBUFFERSIZE - 1) ; source 1: end of buffer 0
+ ld a, SPRITEBUFFERSIZE/2 ; $c4
+ ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
+.interlaceLoop
+ ld a, [de]
+ dec de
+ ld [hld], a ; write byte of source 2
+ ld a, [bc]
+ dec bc
+ ld [hld], a ; write byte of source 1
+ ld a, [de]
+ dec de
+ ld [hld], a ; write byte of source 2
+ ld a, [bc]
+ dec bc
+ ld [hld], a ; write byte of source 1
+ ld a, [H_SPRITEINTERLACECOUNTER] ; $ff8b
+ dec a
+ ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
+ jr nz, .interlaceLoop
+ ld a, [W_SPRITEFLIPPED]
+ and a
+ jr z, .notFlipped
+ ld bc, 2*SPRITEBUFFERSIZE
+ ld hl, S_SPRITEBUFFER1
+.swapLoop
+ swap [hl] ; if flipped swap nybbles in all bytes
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .swapLoop
+.notFlipped
+ pop hl
+ ld de, S_SPRITEBUFFER1
+ ld c, (2*SPRITEBUFFERSIZE)/16 ; $31, number of 16 byte chunks to be copied
+ ld a, [H_LOADEDROMBANK]
+ ld b, a
+ jp CopyVideoData
+
+
+INCLUDE "data/collision.asm"
+
+
+FarCopyData2::
+; Identical to FarCopyData, but uses $ff8b
+; as temp space instead of wBuffer.
+ ld [$ff8b],a
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[$ff8b]
+ ld [H_LOADEDROMBANK],a
+ ld [MBC3RomBank],a
+ call CopyData
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [MBC3RomBank],a
+ ret
+
+FarCopyData3::
+; Copy bc bytes from a:de to hl.
+ ld [$ff8b],a
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[$ff8b]
+ ld [H_LOADEDROMBANK],a
+ ld [MBC3RomBank],a
+ push hl
+ push de
+ push de
+ ld d,h
+ ld e,l
+ pop hl
+ call CopyData
+ pop de
+ pop hl
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [MBC3RomBank],a
+ ret
+
+FarCopyDataDouble::
+; Expand bc bytes of 1bpp image data
+; from a:hl to 2bpp data at de.
+ ld [$ff8b],a
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[$ff8b]
+ ld [H_LOADEDROMBANK],a
+ ld [MBC3RomBank],a
+.loop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld [de],a
+ inc de
+ dec bc
+ ld a,c
+ or b
+ jr nz,.loop
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [MBC3RomBank],a
+ ret
+
+CopyVideoData::
+; Wait for the next VBlank, then copy c 2bpp
+; tiles from b:de to hl, 8 tiles at a time.
+; This takes c/8 frames.
+
+ ld a, [H_AUTOBGTRANSFERENABLED]
+ push af
+ xor a ; disable auto-transfer while copying
+ ld [H_AUTOBGTRANSFERENABLED], a
+
+ ld a, [H_LOADEDROMBANK]
+ ld [$ff8b], a
+
+ ld a, b
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+
+ ld a, e
+ ld [H_VBCOPYSRC], a
+ ld a, d
+ ld [H_VBCOPYSRC + 1], a
+
+ ld a, l
+ ld [H_VBCOPYDEST], a
+ ld a, h
+ ld [H_VBCOPYDEST + 1], a
+
+.loop
+ ld a, c
+ cp 8
+ jr nc, .keepgoing
+
+.done
+ ld [H_VBCOPYSIZE], a
+ call DelayFrame
+ ld a, [$ff8b]
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ pop af
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ret
+
+.keepgoing
+ ld a, 8
+ ld [H_VBCOPYSIZE], a
+ call DelayFrame
+ ld a, c
+ sub 8
+ ld c, a
+ jr .loop
+
+CopyVideoDataDouble::
+; Wait for the next VBlank, then copy c 1bpp
+; tiles from b:de to hl, 8 tiles at a time.
+; This takes c/8 frames.
+ ld a, [H_AUTOBGTRANSFERENABLED]
+ push af
+ xor a ; disable auto-transfer while copying
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, [H_LOADEDROMBANK]
+ ld [$ff8b], a
+
+ ld a, b
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+
+ ld a, e
+ ld [H_VBCOPYDOUBLESRC], a
+ ld a, d
+ ld [H_VBCOPYDOUBLESRC + 1], a
+
+ ld a, l
+ ld [H_VBCOPYDOUBLEDEST], a
+ ld a, h
+ ld [H_VBCOPYDOUBLEDEST + 1], a
+
+.loop
+ ld a, c
+ cp 8
+ jr nc, .keepgoing
+
+.done
+ ld [H_VBCOPYDOUBLESIZE], a
+ call DelayFrame
+ ld a, [$ff8b]
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ pop af
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ret
+
+.keepgoing
+ ld a, 8
+ ld [H_VBCOPYDOUBLESIZE], a
+ call DelayFrame
+ ld a, c
+ sub 8
+ ld c, a
+ jr .loop
+
+ClearScreenArea::
+; Clear tilemap area cxb at hl.
+ ld a, $7f ; blank tile
+ ld de, 20 ; screen width
+.y
+ push hl
+ push bc
+.x
+ ld [hli], a
+ dec c
+ jr nz, .x
+ pop bc
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .y
+ ret
+
+CopyScreenTileBufferToVRAM::
+; Copy wTileMap to the BG Map starting at b * $100.
+; This is done in thirds of 6 rows, so it takes 3 frames.
+
+ ld c, 6
+
+ ld hl, $600 * 0
+ ld de, wTileMap + 20 * 6 * 0
+ call .setup
+ call DelayFrame
+
+ ld hl, $600 * 1
+ ld de, wTileMap + 20 * 6 * 1
+ call .setup
+ call DelayFrame
+
+ ld hl, $600 * 2
+ ld de, wTileMap + 20 * 6 * 2
+ call .setup
+ jp DelayFrame
+
+.setup
+ ld a, d
+ ld [H_VBCOPYBGSRC+1], a
+ call GetRowColAddressBgMap
+ ld a, l
+ ld [H_VBCOPYBGDEST], a
+ ld a, h
+ ld [H_VBCOPYBGDEST+1], a
+ ld a, c
+ ld [H_VBCOPYBGNUMROWS], a
+ ld a, e
+ ld [H_VBCOPYBGSRC], a
+ ret
+
+ClearScreen::
+; Clear wTileMap, then wait
+; for the bg map to update.
+ ld bc, 20 * 18
+ inc b
+ ld hl, wTileMap
+ ld a, $7f
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ dec b
+ jr nz, .loop
+ jp Delay3
+
+
+INCLUDE "home/text.asm"
+INCLUDE "home/vcopy.asm"
+INCLUDE "home/init.asm"
+INCLUDE "home/vblank.asm"
+INCLUDE "home/fade.asm"
+
+
+Serial:: ; 2125 (0:2125)
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [$ffaa]
+ inc a
+ jr z, .asm_2142
+ ld a, [$ff01]
+ ld [$ffad], a
+ ld a, [$ffac]
+ ld [$ff01], a
+ ld a, [$ffaa]
+ cp $2
+ jr z, .asm_2162
+ ld a, $80
+ ld [$ff02], a
+ jr .asm_2162
+.asm_2142
+ ld a, [$ff01]
+ ld [$ffad], a
+ ld [$ffaa], a
+ cp $2
+ jr z, .asm_215f
+ xor a
+ ld [$ff01], a
+ ld a, $3
+ ld [rDIV], a ; $ff04
+.asm_2153
+ ld a, [rDIV] ; $ff04
+ bit 7, a
+ jr nz, .asm_2153
+ ld a, $80
+ ld [$ff02], a
+ jr .asm_2162
+.asm_215f
+ xor a
+ ld [$ff01], a
+.asm_2162
+ ld a, $1
+ ld [$ffa9], a
+ ld a, $fe
+ ld [$ffac], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+
+Func_216f:: ; 216f (0:216f)
+ ld a, $1
+ ld [$ffab], a
+.asm_2173
+ ld a, [hl]
+ ld [$ffac], a
+ call Func_219a
+ push bc
+ ld b, a
+ inc hl
+ ld a, $30
+.asm_217e
+ dec a
+ jr nz, .asm_217e
+ ld a, [$ffab]
+ and a
+ ld a, b
+ pop bc
+ jr z, .asm_2192
+ dec hl
+ cp $fd
+ jr nz, .asm_2173
+ xor a
+ ld [$ffab], a
+ jr .asm_2173
+.asm_2192
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2173
+ ret
+
+Func_219a:: ; 219a (0:219a)
+ xor a
+ ld [$ffa9], a
+ ld a, [$ffaa]
+ cp $2
+ jr nz, .asm_21a7
+ ld a, $81
+ ld [$ff02], a
+.asm_21a7
+ ld a, [$ffa9]
+ and a
+ jr nz, .asm_21f1
+ ld a, [$ffaa]
+ cp $1
+ jr nz, .asm_21cc
+ call Func_2237
+ jr z, .asm_21cc
+ call Func_2231
+ push hl
+ ld hl, wcc48
+ inc [hl]
+ jr nz, .asm_21c3
+ dec hl
+ inc [hl]
+.asm_21c3
+ pop hl
+ call Func_2237
+ jr nz, .asm_21a7
+ jp Func_223f
+.asm_21cc
+ ld a, [rIE] ; $ffff
+ and $f
+ cp $8
+ jr nz, .asm_21a7
+ ld a, [W_NUMHITS] ; wd074
+ dec a
+ ld [W_NUMHITS], a ; wd074
+ jr nz, .asm_21a7
+ ld a, [wd075]
+ dec a
+ ld [wd075], a
+ jr nz, .asm_21a7
+ ld a, [$ffaa]
+ cp $1
+ jr z, .asm_21f1
+ ld a, $ff
+.asm_21ee
+ dec a
+ jr nz, .asm_21ee
+.asm_21f1
+ xor a
+ ld [$ffa9], a
+ ld a, [rIE] ; $ffff
+ and $f
+ sub $8
+ jr nz, .asm_2204
+ ld [W_NUMHITS], a ; wd074
+ ld a, $50
+ ld [wd075], a
+.asm_2204
+ ld a, [$ffad]
+ cp $fe
+ ret nz
+ call Func_2237
+ jr z, .asm_221f
+ push hl
+ ld hl, wcc48
+ ld a, [hl]
+ dec a
+ ld [hld], a
+ inc a
+ jr nz, .asm_2219
+ dec [hl]
+.asm_2219
+ pop hl
+ call Func_2237
+ jr z, Func_223f
+.asm_221f
+ ld a, [rIE] ; $ffff
+ and $f
+ cp $8
+ ld a, $fe
+ ret z
+ ld a, [hl]
+ ld [$ffac], a
+ call DelayFrame
+ jp Func_219a
+
+Func_2231:: ; 2231 (0:2231)
+ ld a, $f
+.asm_2233
+ dec a
+ jr nz, .asm_2233
+ ret
+
+Func_2237:: ; 2237 (0:2237)
+ push hl
+ ld hl, wcc47
+ ld a, [hli]
+ or [hl]
+ pop hl
+ ret
+
+Func_223f:: ; 223f (0:223f)
+ dec a
+ ld [wcc47], a
+ ld [wcc48], a
+ ret
+
+Func_2247:: ; 2247 (0:2247)
+ ld hl, wcc42
+ ld de, wcc3d
+ ld c, $2
+ ld a, $1
+ ld [$ffab], a
+.asm_2253
+ call DelayFrame
+ ld a, [hl]
+ ld [$ffac], a
+ call Func_219a
+ ld b, a
+ inc hl
+ ld a, [$ffab]
+ and a
+ ld a, $0
+ ld [$ffab], a
+ jr nz, .asm_2253
+ ld a, b
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_2253
+ ret
+
+Func_226e:: ; 226e (0:226e)
+ call SaveScreenTilesToBuffer1
+ callab PrintWaitingText
+ call Func_227f
+ jp LoadScreenTilesFromBuffer1
+
+Func_227f:: ; 227f (0:227f)
+ ld a, $ff
+ ld [wcc3e], a
+.asm_2284
+ call Func_22c3
+ call DelayFrame
+ call Func_2237
+ jr z, .asm_22a0
+ push hl
+ ld hl, wcc48
+ dec [hl]
+ jr nz, .asm_229f
+ dec hl
+ dec [hl]
+ jr nz, .asm_229f
+ pop hl
+ xor a
+ jp Func_223f
+.asm_229f
+ pop hl
+.asm_22a0
+ ld a, [wcc3e]
+ inc a
+ jr z, .asm_2284
+ ld b, $a
+.asm_22a8
+ call DelayFrame
+ call Func_22c3
+ dec b
+ jr nz, .asm_22a8
+ ld b, $a
+.asm_22b3
+ call DelayFrame
+ call Func_22ed
+ dec b
+ jr nz, .asm_22b3
+ ld a, [wcc3e]
+ ld [wcc3d], a
+ ret
+
+Func_22c3:: ; 22c3 (0:22c3)
+ call asm_22d7
+ ld a, [wcc42]
+ add $60
+ ld [$ffac], a
+ ld a, [$ffaa]
+ cp $2
+ jr nz, asm_22d7
+ ld a, $81
+ ld [$ff02], a
+asm_22d7:: ; 22d7 (0:22d7)
+ ld a, [$ffad]
+ ld [wcc3d], a
+ and $f0
+ cp $60
+ ret nz
+ xor a
+ ld [$ffad], a
+ ld a, [wcc3d]
+ and $f
+ ld [wcc3e], a
+ ret
+
+Func_22ed:: ; 22ed (0:22ed)
+ xor a
+ ld [$ffac], a
+ ld a, [$ffaa]
+ cp $2
+ ret nz
+ ld a, $81
+ ld [$ff02], a
+ ret
+
+Func_22fa:: ; 22fa (0:22fa)
+ ld a, $2
+ ld [$ff01], a
+ xor a
+ ld [$ffad], a
+ ld a, $80
+ ld [$ff02], a
+ ret
+
+
+; timer interrupt is apparently not invoked anyway
+Timer:: ; 2306 (0:2306)
+ reti
+
+
+INCLUDE "home/audio.asm"
+
+
+UpdateSprites:: ; 2429 (0:2429)
+ ld a, [wcfcb]
+ dec a
+ ret nz
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, Bank(_UpdateSprites)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ call _UpdateSprites
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+INCLUDE "data/mart_inventories.asm"
+
+TextScriptEndingChar:: ; 24d6 (0:24d6)
+ db "@"
+TextScriptEnd:: ; 24d7 (0:24d7)
+ ld hl,TextScriptEndingChar
+ ret
+
+ExclamationText:: ; 24db (0:24db)
+ TX_FAR _ExclamationText
+ db "@"
+
+GroundRoseText:: ; 24e0 (0:24e0)
+ TX_FAR _GroundRoseText
+ db "@"
+
+BoulderText:: ; 24e5 (0:24e5)
+ TX_FAR _BoulderText
+ db "@"
+
+MartSignText:: ; 24ea (0:24ea)
+ TX_FAR _MartSignText
+ db "@"
+
+PokeCenterSignText:: ; 24ef (0:24ef)
+ TX_FAR _PokeCenterSignText
+ db "@"
+
+Predef5CText:: ; 24f4 (0:24f4)
+; XXX better label (what does predef $5C do?)
+ db $08 ; asm
+ predef PickupItem
+ jp TextScriptEnd
+
+
+INCLUDE "home/pic.asm"
+
+
+ResetPlayerSpriteData:: ; 28a6 (0:28a6)
+ ld hl, wSpriteStateData1
+ call ResetPlayerSpriteData_ClearSpriteData
+ ld hl, wSpriteStateData2
+ call ResetPlayerSpriteData_ClearSpriteData
+ ld a, $1
+ ld [wSpriteStateData1], a
+ ld [wSpriteStateData2 + $0e], a
+ ld hl, wSpriteStateData1 + 4
+ ld [hl], $3c ; set Y screen pos
+ inc hl
+ inc hl
+ ld [hl], $40 ; set X screen pos
+ ret
+
+; overwrites sprite data with zeroes
+ResetPlayerSpriteData_ClearSpriteData:: ; 28c4 (0:28c4)
+ ld bc, $10
+ xor a
+ jp FillMemory
+
+Func_28cb:: ; 28cb (0:28cb)
+ ld a, [wMusicHeaderPointer]
+ and a
+ jr nz, .asm_28dc
+ ld a, [wd72c]
+ bit 1, a
+ ret nz
+ ld a, $77
+ ld [$ff24], a
+ ret
+.asm_28dc
+ ld a, [wcfc9]
+ and a
+ jr z, .asm_28e7
+ dec a
+ ld [wcfc9], a
+ ret
+.asm_28e7
+ ld a, [wcfc8]
+ ld [wcfc9], a
+ ld a, [$ff24]
+ and a
+ jr z, .asm_2903
+ ld b, a
+ and $f
+ dec a
+ ld c, a
+ ld a, b
+ and $f0
+ swap a
+ dec a
+ swap a
+ or c
+ ld [$ff24], a
+ ret
+.asm_2903
+ ld a, [wMusicHeaderPointer]
+ ld b, a
+ xor a
+ ld [wMusicHeaderPointer], a
+ ld a, $ff
+ ld [wc0ee], a
+ call PlaySound
+ ld a, [wc0f0]
+ ld [wc0ef], a
+ ld a, b
+ ld [wc0ee], a
+ jp PlaySound
+
+; this function is used to display sign messages, sprite dialog, etc.
+; INPUT: [$ff8c] = sprite ID or text ID
+DisplayTextID:: ; 2920 (0:2920)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ callba DisplayTextIDInit ; initialization
+ ld hl,wcf11
+ bit 0,[hl]
+ res 0,[hl]
+ jr nz,.skipSwitchToMapBank
+ ld a,[W_CURMAP]
+ call SwitchToMapRomBank
+.skipSwitchToMapBank
+ ld a,30 ; half a second
+ ld [H_FRAMECOUNTER],a ; used as joypad poll timer
+ ld hl,W_MAPTEXTPTR
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a ; hl = map text pointer
+ ld d,$00
+ ld a,[$ff8c] ; text ID
+ ld [wcf13],a
+ and a
+ jp z,DisplayStartMenu
+ cp a,$d3 ; safari game over
+ jp z,DisplaySafariGameOverText
+ cp a,$d0 ; fainted
+ jp z,DisplayPokemonFaintedText
+ cp a,$d1 ; blacked out
+ jp z,DisplayPlayerBlackedOutText
+ cp a,$d2 ; repel wore off
+ jp z,DisplayRepelWoreOffText
+ ld a,[W_NUMSPRITES] ; number of sprites
+ ld e,a
+ ld a,[$ff8c] ; sprite ID
+ cp e
+ jr z,.spriteHandling
+ jr nc,.skipSpriteHandling
+.spriteHandling
+; get the text ID of the sprite
+ push hl
+ push de
+ push bc
+ callba Func_13074 ; update the graphics of the sprite the player is talking to (to face the right direction)
+ pop bc
+ pop de
+ ld hl,W_MAPSPRITEDATA ; NPC text entries
+ ld a,[$ff8c]
+ dec a
+ add a
+ add l
+ ld l,a
+ jr nc,.noCarry
+ inc h
+.noCarry
+ inc hl
+ ld a,[hl] ; a = text ID of the sprite
+ pop hl
+.skipSpriteHandling
+; look up the address of the text in the map's text entries
+ dec a
+ ld e,a
+ sla e
+ add hl,de
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a ; hl = address of the text
+ ld a,[hl] ; a = first byte of text
+; check first byte of text for special cases
+ cp a,$fe ; Pokemart NPC
+ jp z,DisplayPokemartDialogue
+ cp a,$ff ; Pokemon Center NPC
+ jp z,DisplayPokemonCenterDialogue
+ cp a,$fc ; Item Storage PC
+ jp z,FuncTX_ItemStoragePC
+ cp a,$fd ; Bill's PC
+ jp z,FuncTX_BillsPC
+ cp a,$f9 ; Pokemon Center PC
+ jp z,FuncTX_PokemonCenterPC
+ cp a,$f5 ; Vending Machine
+ jr nz,.notVendingMachine
+ callba VendingMachineMenu ; jump banks to vending machine routine
+ jr AfterDisplayingTextID
+.notVendingMachine
+ cp a,$f7 ; slot machine
+ jp z,FuncTX_SlotMachine
+ cp a,$f6 ; cable connection NPC in Pokemon Center
+ jr nz,.notSpecialCase
+ callab CableClubNPC
+ jr AfterDisplayingTextID
+.notSpecialCase
+ call Func_3c59 ; display the text
+ ld a,[wcc3c]
+ and a
+ jr nz,HoldTextDisplayOpen
+
+AfterDisplayingTextID:: ; 29d6 (0:29d6)
+ ld a,[wcc47]
+ and a
+ jr nz,HoldTextDisplayOpen
+ call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text
+
+; loop to hold the dialogue box open as long as the player keeps holding down the A button
+HoldTextDisplayOpen:: ; 29df (0:29df)
+ call Joypad
+ ld a,[hJoyHeld]
+ bit 0,a ; is the A button being pressed?
+ jr nz,HoldTextDisplayOpen
+
+CloseTextDisplay:: ; 29e8 (0:29e8)
+ ld a,[W_CURMAP]
+ call SwitchToMapRomBank
+ ld a,$90
+ ld [$ffb0],a ; move the window off the screen
+ call DelayFrame
+ call LoadGBPal
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED],a ; disable continuous WRAM to VRAM transfer each V-blank
+; loop to make sprites face the directions they originally faced before the dialogue
+ ld hl,wSpriteStateData2 + $19
+ ld c,$0f
+ ld de,$0010
+.restoreSpriteFacingDirectionLoop
+ ld a,[hl]
+ dec h
+ ld [hl],a
+ inc h
+ add hl,de
+ dec c
+ jr nz,.restoreSpriteFacingDirectionLoop
+ ld a,BANK(InitMapSprites)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns)
+ ld hl,wcfc4
+ res 0,[hl]
+ ld a,[wd732]
+ bit 3,a
+ call z,LoadPlayerSpriteGraphics
+ call LoadCurrentMapView
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ jp UpdateSprites ; move sprites
+
+DisplayPokemartDialogue:: ; 2a2e (0:2a2e)
+ push hl
+ ld hl,PokemartGreetingText
+ call PrintText
+ pop hl
+ inc hl
+ call LoadItemList
+ ld a,$02
+ ld [wListMenuID],a ; selects between subtypes of menus
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,Bank(DisplayPokemartDialogue_)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call DisplayPokemartDialogue_
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ jp AfterDisplayingTextID
+
+PokemartGreetingText:: ; 2a55 (0:2a55)
+ TX_FAR _PokemartGreetingText
+ db "@"
+
+LoadItemList:: ; 2a5a (0:2a5a)
+ ld a,$01
+ ld [wcfcb],a
+ ld a,h
+ ld [wd128],a
+ ld a,l
+ ld [wd129],a
+ ld de,wStringBuffer2 + 11
+.loop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ cp a,$ff
+ jr nz,.loop
+ ret
+
+DisplayPokemonCenterDialogue:: ; 2a72 (0:2a72)
+ xor a
+ ld [$ff8b],a
+ ld [$ff8c],a
+ ld [$ff8d],a
+ inc hl
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,Bank(DisplayPokemonCenterDialogue_)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call DisplayPokemonCenterDialogue_
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ jp AfterDisplayingTextID
+
+DisplaySafariGameOverText:: ; 2a90 (0:2a90)
+ callab PrintSafariGameOverText
+ jp AfterDisplayingTextID
+
+DisplayPokemonFaintedText:: ; 2a9b (0:2a9b)
+ ld hl,PokemonFaintedText
+ call PrintText
+ jp AfterDisplayingTextID
+
+PokemonFaintedText:: ; 2aa4 (0:2aa4)
+ TX_FAR _PokemonFaintedText
+ db "@"
+
+DisplayPlayerBlackedOutText:: ; 2aa9 (0:2aa9)
+ ld hl,PlayerBlackedOutText
+ call PrintText
+ ld a,[wd732]
+ res 5,a
+ ld [wd732],a
+ jp HoldTextDisplayOpen
+
+PlayerBlackedOutText:: ; 2aba (0:2aba)
+ TX_FAR _PlayerBlackedOutText
+ db "@"
+
+DisplayRepelWoreOffText:: ; 2abf (0:2abf)
+ ld hl,RepelWoreOffText
+ call PrintText
+ jp AfterDisplayingTextID
+
+RepelWoreOffText:: ; 2ac8 (0:2ac8)
+ TX_FAR _RepelWoreOffText
+ db "@"
+
+INCLUDE "engine/menu/start_menu.asm"
+
+; function to count how many bits are set in a string of bytes
+; INPUT:
+; hl = address of string of bytes
+; b = length of string of bytes
+; OUTPUT:
+; [wd11e] = number of set bits
+CountSetBits:: ; 2b7f (0:2b7f)
+ ld c,0
+.loop
+ ld a,[hli]
+ ld e,a
+ ld d,8
+.innerLoop ; count how many bits are set in the current byte
+ srl e
+ ld a,0
+ adc c
+ ld c,a
+ dec d
+ jr nz,.innerLoop
+ dec b
+ jr nz,.loop
+ ld a,c
+ ld [wd11e],a ; store number of set bits
+ ret
+
+; subtracts the amount the player paid from their money
+; sets carry flag if there is enough money and unsets carry flag if not
+SubtractAmountPaidFromMoney:: ; 2b96 (0:2b96)
+ ld b,BANK(SubtractAmountPaidFromMoney_)
+ ld hl,SubtractAmountPaidFromMoney_
+ jp Bankswitch
+
+; adds the amount the player sold to their money
+AddAmountSoldToMoney:: ; 2b9e (0:2b9e)
+ ld de,wPlayerMoney + 2
+ ld hl,$ffa1 ; total price of items
+ ld c,3 ; length of money in bytes
+ predef AddBCDPredef ; add total price to money
+ ld a,$13
+ ld [wd125],a
+ call DisplayTextBoxID ; redraw money text box
+ ld a, (SFX_02_5a - SFX_Headers_02) / 3
+ call PlaySoundWaitForCurrent ; play sound
+ jp WaitForSoundToFinish ; wait until sound is done playing
+
+; function to remove an item (in varying quantities) from the player's bag or PC box
+; INPUT:
+; HL = address of inventory (either wNumBagItems or wNumBoxItems)
+; [wWhichPokemon] = index (within the inventory) of the item to remove
+; [wcf96] = quantity to remove
+RemoveItemFromInventory:: ; 2bbb (0:2bbb)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(RemoveItemFromInventory_)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call RemoveItemFromInventory_
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; function to add an item (in varying quantities) to the player's bag or PC box
+; INPUT:
+; HL = address of inventory (either wNumBagItems or wNumBoxItems)
+; [wcf91] = item ID
+; [wcf96] = item quantity
+; sets carry flag if successful, unsets carry flag if unsuccessful
+AddItemToInventory:: ; 2bcf (0:2bcf)
+ push bc
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(AddItemToInventory_)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call AddItemToInventory_
+ pop bc
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ pop bc
+ ret
+
+; INPUT:
+; [wListMenuID] = list menu ID
+; [wcf8b] = address of the list (2 bytes)
+DisplayListMenuID:: ; 2be6 (0:2be6)
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer
+ ld a,1
+ ld [$ffb7],a ; joypad state update flag
+ ld a,[W_BATTLETYPE]
+ and a ; is it the Old Man battle?
+ jr nz,.specialBattleType
+ ld a,$01 ; hardcoded bank
+ jr .bankswitch
+.specialBattleType ; Old Man battle
+ ld a, Bank(OldManItemList)
+.bankswitch
+ call BankswitchHome
+ ld hl,wd730
+ set 6,[hl] ; turn off letter printing delay
+ xor a
+ ld [wcc35],a ; 0 means no item is currently being swapped
+ ld [wd12a],a
+ ld a,[wcf8b]
+ ld l,a
+ ld a,[wcf8c]
+ ld h,a ; hl = address of the list
+ ld a,[hl]
+ ld [wd12a],a ; [wd12a] = number of list entries
+ ld a,$0d ; list menu text box ID
+ ld [wd125],a
+ call DisplayTextBoxID ; draw the menu text box
+ call UpdateSprites ; move sprites
+ hlCoord 4, 2 ; coordinates of upper left corner of menu text box
+ ld de,$090e ; height and width of menu text box
+ ld a,[wListMenuID]
+ and a ; is it a PC pokemon list?
+ jr nz,.skipMovingSprites
+ call UpdateSprites ; move sprites
+.skipMovingSprites
+ ld a,1 ; max menu item ID is 1 if the list has less than 2 entries
+ ld [wcc37],a
+ ld a,[wd12a]
+ cp a,2 ; does the list have less than 2 entries?
+ jr c,.setMenuVariables
+ ld a,2 ; max menu item ID is 2 if the list has at least 2 entries
+.setMenuVariables
+ ld [wMaxMenuItem],a
+ ld a,4
+ ld [wTopMenuItemY],a
+ ld a,5
+ ld [wTopMenuItemX],a
+ ld a,%00000111 ; A button, B button, Select button
+ ld [wMenuWatchedKeys],a
+ ld c,10
+ call DelayFrames
+
+DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED],a ; disable transfer
+ call PrintListMenuEntries
+ ld a,1
+ ld [H_AUTOBGTRANSFERENABLED],a ; enable transfer
+ call Delay3
+ ld a,[W_BATTLETYPE]
+ and a ; is it the Old Man battle?
+ jr z,.notOldManBattle
+.oldManBattle
+ ld a,"▶"
+ Coorda 5, 4 ; place menu cursor in front of first menu entry
+ ld c,80
+ call DelayFrames
+ xor a
+ ld [wCurrentMenuItem],a
+ hlCoord 5, 4
+ ld a,l
+ ld [wMenuCursorLocation],a
+ ld a,h
+ ld [wMenuCursorLocation + 1],a
+ jr .buttonAPressed
+.notOldManBattle
+ call LoadGBPal
+ call HandleMenuInput
+ push af
+ call PlaceMenuCursor
+ pop af
+ bit 0,a ; was the A button pressed?
+ jp z,.checkOtherKeys
+.buttonAPressed
+ ld a,[wCurrentMenuItem]
+ call PlaceUnfilledArrowMenuCursor
+ ld a,$01
+ ld [wd12e],a
+ ld [wd12d],a
+ xor a
+ ld [wcc37],a
+ ld a,[wCurrentMenuItem]
+ ld c,a
+ ld a,[wListScrollOffset]
+ add c
+ ld c,a
+ ld a,[wd12a] ; number of list entries
+ and a ; is the list empty?
+ jp z,ExitListMenu ; if so, exit the menu
+ dec a
+ cp c ; did the player select Cancel?
+ jp c,ExitListMenu ; if so, exit the menu
+ ld a,c
+ ld [wWhichPokemon],a
+ ld a,[wListMenuID]
+ cp a,ITEMLISTMENU
+ jr nz,.skipMultiplying
+; if it's an item menu
+ sla c ; item entries are 2 bytes long, so multiply by 2
+.skipMultiplying
+ ld a,[wcf8b]
+ ld l,a
+ ld a,[wcf8c]
+ ld h,a
+ inc hl ; hl = beginning of list entries
+ ld b,0
+ add hl,bc
+ ld a,[hl]
+ ld [wcf91],a
+ ld a,[wListMenuID]
+ and a ; is it a PC pokemon list?
+ jr z,.pokemonList
+ push hl
+ call GetItemPrice
+ pop hl
+ ld a,[wListMenuID]
+ cp a,ITEMLISTMENU
+ jr nz,.skipGettingQuantity
+; if it's an item menu
+ inc hl
+ ld a,[hl] ; a = item quantity
+ ld [wcf97],a
+.skipGettingQuantity
+ ld a,[wcf91]
+ ld [wd0b5],a
+ ld a,$01
+ ld [wPredefBank],a
+ call GetName
+ jr .storeChosenEntry
+.pokemonList
+ ld hl,wPartyCount
+ ld a,[wcf8b]
+ cp l ; is it a list of party pokemon or box pokemon?
+ ld hl,wPartyMonNicks
+ jr z,.getPokemonName
+ ld hl, wBoxMonNicks ; box pokemon names
+.getPokemonName
+ ld a,[wWhichPokemon]
+ call GetPartyMonName
+.storeChosenEntry ; store the menu entry that the player chose and return
+ ld de,wcd6d
+ call CopyStringToCF4B ; copy name to wcf4b
+ ld a,$01
+ ld [wd12e],a
+ ld a,[wCurrentMenuItem]
+ ld [wd12d],a
+ xor a
+ ld [$ffb7],a ; joypad state update flag
+ ld hl,wd730
+ res 6,[hl] ; turn on letter printing delay
+ jp BankswitchBack
+.checkOtherKeys ; check B, SELECT, Up, and Down keys
+ bit 1,a ; was the B button pressed?
+ jp nz,ExitListMenu ; if so, exit the menu
+ bit 2,a ; was the select button pressed?
+ jp nz,HandleItemListSwapping ; if so, allow the player to swap menu entries
+ ld b,a
+ bit 7,b ; was Down pressed?
+ ld hl,wListScrollOffset
+ jr z,.upPressed
+.downPressed
+ ld a,[hl]
+ add a,3
+ ld b,a
+ ld a,[wd12a] ; number of list entries
+ cp b ; will going down scroll past the Cancel button?
+ jp c,DisplayListMenuIDLoop
+ inc [hl] ; if not, go down
+ jp DisplayListMenuIDLoop
+.upPressed
+ ld a,[hl]
+ and a
+ jp z,DisplayListMenuIDLoop
+ dec [hl]
+ jp DisplayListMenuIDLoop
+
+DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
+; text box dimensions/coordinates for just quantity
+ hlCoord 15, 9
+ ld b,1 ; height
+ ld c,3 ; width
+ ld a,[wListMenuID]
+ cp a,PRICEDITEMLISTMENU
+ jr nz,.drawTextBox
+; text box dimensions/coordinates for quantity and price
+ hlCoord 7, 9
+ ld b,1 ; height
+ ld c,11 ; width
+.drawTextBox
+ call TextBoxBorder
+ hlCoord 16, 10
+ ld a,[wListMenuID]
+ cp a,PRICEDITEMLISTMENU
+ jr nz,.printInitialQuantity
+ hlCoord 8, 10
+.printInitialQuantity
+ ld de,InitialQuantityText
+ call PlaceString
+ xor a
+ ld [wcf96],a ; initialize current quantity to 0
+ jp .incrementQuantity
+.waitForKeyPressLoop
+ call JoypadLowSensitivity
+ ld a,[hJoyPressed] ; newly pressed buttons
+ bit 0,a ; was the A button pressed?
+ jp nz,.buttonAPressed
+ bit 1,a ; was the B button pressed?
+ jp nz,.buttonBPressed
+ bit 6,a ; was Up pressed?
+ jr nz,.incrementQuantity
+ bit 7,a ; was Down pressed?
+ jr nz,.decrementQuantity
+ jr .waitForKeyPressLoop
+.incrementQuantity
+ ld a,[wcf97] ; max quantity
+ inc a
+ ld b,a
+ ld hl,wcf96 ; current quantity
+ inc [hl]
+ ld a,[hl]
+ cp b
+ jr nz,.handleNewQuantity
+; wrap to 1 if the player goes above the max quantity
+ ld a,1
+ ld [hl],a
+ jr .handleNewQuantity
+.decrementQuantity
+ ld hl,wcf96 ; current quantity
+ dec [hl]
+ jr nz,.handleNewQuantity
+; wrap to the max quantity if the player goes below 1
+ ld a,[wcf97] ; max quantity
+ ld [hl],a
+.handleNewQuantity
+ hlCoord 17, 10
+ ld a,[wListMenuID]
+ cp a,PRICEDITEMLISTMENU
+ jr nz,.printQuantity
+.printPrice
+ ld c,$03
+ ld a,[wcf96]
+ ld b,a
+ ld hl,$ff9f ; total price
+; initialize total price to 0
+ xor a
+ ld [hli],a
+ ld [hli],a
+ ld [hl],a
+.addLoop ; loop to multiply the individual price by the quantity to get the total price
+ ld de,$ffa1
+ ld hl,$ff8d
+ push bc
+ predef AddBCDPredef ; add the individual price to the current sum
+ pop bc
+ dec b
+ jr nz,.addLoop
+ ld a,[$ff8e]
+ and a ; should the price be halved (for selling items)?
+ jr z,.skipHalvingPrice
+ xor a
+ ld [$ffa2],a
+ ld [$ffa3],a
+ ld a,$02
+ ld [$ffa4],a
+ predef DivideBCDPredef3 ; halves the price
+; store the halved price
+ ld a,[$ffa2]
+ ld [$ff9f],a
+ ld a,[$ffa3]
+ ld [$ffa0],a
+ ld a,[$ffa4]
+ ld [$ffa1],a
+.skipHalvingPrice
+ hlCoord 12, 10
+ ld de,SpacesBetweenQuantityAndPriceText
+ call PlaceString
+ ld de,$ff9f ; total price
+ ld c,$a3
+ call PrintBCDNumber
+ hlCoord 9, 10
+.printQuantity
+ ld de,wcf96 ; current quantity
+ ld bc,$8102 ; print leading zeroes, 1 byte, 2 digits
+ call PrintNumber
+ jp .waitForKeyPressLoop
+.buttonAPressed ; the player chose to make the transaction
+ xor a
+ ld [wcc35],a ; 0 means no item is currently being swapped
+ ret
+.buttonBPressed ; the player chose to cancel the transaction
+ xor a
+ ld [wcc35],a ; 0 means no item is currently being swapped
+ ld a,$ff
+ ret
+
+InitialQuantityText:: ; 2e30 (0:2e30)
+ db "×01@"
+
+SpacesBetweenQuantityAndPriceText:: ; 2e34 (0:2e34)
+ db " @"
+
+ExitListMenu:: ; 2e3b (0:2e3b)
+ ld a,[wCurrentMenuItem]
+ ld [wd12d],a
+ ld a,$02
+ ld [wd12e],a
+ ld [wcc37],a
+ xor a
+ ld [$ffb7],a
+ ld hl,wd730
+ res 6,[hl]
+ call BankswitchBack
+ xor a
+ ld [wcc35],a ; 0 means no item is currently being swapped
+ scf
+ ret
+
+PrintListMenuEntries:: ; 2e5a (0:2e5a)
+ hlCoord 5, 3
+ ld b,$09
+ ld c,$0e
+ call ClearScreenArea
+ ld a,[wcf8b]
+ ld e,a
+ ld a,[wcf8c]
+ ld d,a
+ inc de ; de = beginning of list entries
+ ld a,[wListScrollOffset]
+ ld c,a
+ ld a,[wListMenuID]
+ cp a,ITEMLISTMENU
+ ld a,c
+ jr nz,.skipMultiplying
+; if it's an item menu
+; item entries are 2 bytes long, so multiply by 2
+ sla a
+ sla c
+.skipMultiplying
+ add e
+ ld e,a
+ jr nc,.noCarry
+ inc d
+.noCarry
+ hlCoord 6, 4 ; coordinates of first list entry name
+ ld b,4 ; print 4 names
+.loop
+ ld a,b
+ ld [wWhichPokemon],a
+ ld a,[de]
+ ld [wd11e],a
+ cp a,$ff
+ jp z,.printCancelMenuItem
+ push bc
+ push de
+ push hl
+ push hl
+ push de
+ ld a,[wListMenuID]
+ and a
+ jr z,.pokemonPCMenu
+ cp a,$01
+ jr z,.movesMenu
+.itemMenu
+ call GetItemName
+ jr .placeNameString
+.pokemonPCMenu
+ push hl
+ ld hl,wPartyCount
+ ld a,[wcf8b]
+ cp l ; is it a list of party pokemon or box pokemon?
+ ld hl,wPartyMonNicks
+ jr z,.getPokemonName
+ ld hl, wBoxMonNicks ; box pokemon names
+.getPokemonName
+ ld a,[wWhichPokemon]
+ ld b,a
+ ld a,4
+ sub b
+ ld b,a
+ ld a,[wListScrollOffset]
+ add b
+ call GetPartyMonName
+ pop hl
+ jr .placeNameString
+.movesMenu
+ call GetMoveName
+.placeNameString
+ call PlaceString
+ pop de
+ pop hl
+ ld a,[wcf93]
+ and a ; should prices be printed?
+ jr z,.skipPrintingItemPrice
+.printItemPrice
+ push hl
+ ld a,[de]
+ ld de,ItemPrices
+ ld [wcf91],a
+ call GetItemPrice ; get price
+ pop hl
+ ld bc,20 + 5 ; 1 row down and 5 columns right
+ add hl,bc
+ ld c,$a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes
+ call PrintBCDNumber
+.skipPrintingItemPrice
+ ld a,[wListMenuID]
+ and a
+ jr nz,.skipPrintingPokemonLevel
+.printPokemonLevel
+ ld a,[wd11e]
+ push af
+ push hl
+ ld hl,wPartyCount
+ ld a,[wcf8b]
+ cp l ; is it a list of party pokemon or box pokemon?
+ ld a,$00
+ jr z,.next
+ ld a,$02
+.next
+ ld [wcc49],a
+ ld hl,wWhichPokemon
+ ld a,[hl]
+ ld b,a
+ ld a,$04
+ sub b
+ ld b,a
+ ld a,[wListScrollOffset]
+ add b
+ ld [hl],a
+ call LoadMonData ; load pokemon info
+ ld a,[wcc49]
+ and a ; is it a list of party pokemon or box pokemon?
+ jr z,.skipCopyingLevel
+.copyLevel
+ ld a,[wcf9b]
+ ld [wcfb9],a
+.skipCopyingLevel
+ pop hl
+ ld bc,$001c
+ add hl,bc
+ call PrintLevel ; print level
+ pop af
+ ld [wd11e],a
+.skipPrintingPokemonLevel
+ pop hl
+ pop de
+ inc de
+ ld a,[wListMenuID]
+ cp a,ITEMLISTMENU
+ jr nz,.nextListEntry
+.printItemQuantity
+ ld a,[wd11e]
+ ld [wcf91],a
+ call IsKeyItem ; check if item is unsellable
+ ld a,[wd124]
+ and a ; is the item unsellable?
+ jr nz,.skipPrintingItemQuantity ; if so, don't print the quantity
+ push hl
+ ld bc,20 + 8 ; 1 row down and 8 columns right
+ add hl,bc
+ ld a,"×"
+ ldi [hl],a
+ ld a,[wd11e]
+ push af
+ ld a,[de]
+ ld [wcf97],a
+ push de
+ ld de,wd11e
+ ld [de],a
+ ld bc,$0102
+ call PrintNumber
+ pop de
+ pop af
+ ld [wd11e],a
+ pop hl
+.skipPrintingItemQuantity
+ inc de
+ pop bc
+ inc c
+ push bc
+ inc c
+ ld a,[wcc35] ; ID of item chosen for swapping (counts from 1)
+ and a ; is an item being swapped?
+ jr z,.nextListEntry
+ sla a
+ cp c ; is it this item?
+ jr nz,.nextListEntry
+ dec hl
+ ld a,$ec ; unfilled right arrow menu cursor to indicate an item being swapped
+ ld [hli],a
+.nextListEntry
+ ld bc,2 * 20 ; 2 rows
+ add hl,bc
+ pop bc
+ inc c
+ dec b
+ jp nz,.loop
+ ld bc,-8
+ add hl,bc
+ ld a,$ee ; down arrow
+ ld [hl],a
+ ret
+.printCancelMenuItem
+ ld de,ListMenuCancelText
+ jp PlaceString
+
+ListMenuCancelText:: ; 2f97 (0:2f97)
+ db "CANCEL@"
+
+GetMonName:: ; 2f9e (0:2f9e)
+ push hl
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(MonsterNames) ; 07
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ld a,[wd11e]
+ dec a
+ ld hl,MonsterNames ; 421E
+ ld c,10
+ ld b,0
+ call AddNTimes
+ ld de,wcd6d
+ push de
+ ld bc,10
+ call CopyData
+ ld hl,wcd77
+ ld [hl], "@"
+ pop de
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ pop hl
+ ret
+
+GetItemName:: ; 2fcf (0:2fcf)
+; given an item ID at [wd11e], store the name of the item into a string
+; starting at wcd6d
+ push hl
+ push bc
+ ld a,[wd11e]
+ cp HM_01 ; is this a TM/HM?
+ jr nc,.Machine
+
+ ld [wd0b5],a
+ ld a,ITEM_NAME
+ ld [W_LISTTYPE],a
+ ld a,BANK(ItemNames)
+ ld [wPredefBank],a
+ call GetName
+ jr .Finish
+
+.Machine
+ call GetMachineName
+.Finish
+ ld de,wcd6d ; pointer to where item name is stored in RAM
+ pop bc
+ pop hl
+ ret
+
+GetMachineName:: ; 2ff3 (0:2ff3)
+; copies the name of the TM/HM in [wd11e] to wcd6d
+ push hl
+ push de
+ push bc
+ ld a,[wd11e]
+ push af
+ cp TM_01 ; is this a TM? [not HM]
+ jr nc,.WriteTM
+; if HM, then write "HM" and add 5 to the item ID, so we can reuse the
+; TM printing code
+ add 5
+ ld [wd11e],a
+ ld hl,HiddenPrefix ; points to "HM"
+ ld bc,2
+ jr .WriteMachinePrefix
+.WriteTM
+ ld hl,TechnicalPrefix ; points to "TM"
+ ld bc,2
+.WriteMachinePrefix
+ ld de,wcd6d
+ call CopyData
+
+; now get the machine number and convert it to text
+ ld a,[wd11e]
+ sub TM_01 - 1
+ ld b,$F6 ; "0"
+.FirstDigit
+ sub 10
+ jr c,.SecondDigit
+ inc b
+ jr .FirstDigit
+.SecondDigit
+ add 10
+ push af
+ ld a,b
+ ld [de],a
+ inc de
+ pop af
+ ld b,$F6 ; "0"
+ add b
+ ld [de],a
+ inc de
+ ld a,"@"
+ ld [de],a
+
+ pop af
+ ld [wd11e],a
+ pop bc
+ pop de
+ pop hl
+ ret
+
+TechnicalPrefix:: ; 303c (0:303c)
+ db "TM"
+HiddenPrefix:: ; 303e (0:303e)
+ db "HM"
+
+; sets carry if item is HM, clears carry if item is not HM
+; Input: a = item ID
+IsItemHM:: ; 3040 (0:3040)
+ cp a,HM_01
+ jr c,.notHM
+ cp a,TM_01
+ ret
+.notHM
+ and a
+ ret
+
+; sets carry if move is an HM, clears carry if move is not an HM
+; Input: a = move ID
+IsMoveHM:: ; 3049 (0:3049)
+ ld hl,HMMoves
+ ld de,1
+ jp IsInArray
+
+HMMoves:: ; 3052 (0:3052)
+ db CUT,FLY,SURF,STRENGTH,FLASH
+ db $ff ; terminator
+
+GetMoveName:: ; 3058 (0:3058)
+ push hl
+ ld a,MOVE_NAME
+ ld [W_LISTTYPE],a
+ ld a,[wd11e]
+ ld [wd0b5],a
+ ld a,BANK(MoveNames)
+ ld [wPredefBank],a
+ call GetName
+ ld de,wcd6d ; pointer to where move name is stored in RAM
+ pop hl
+ ret
+
+; reloads text box tile patterns, current map view, and tileset tile patterns
+ReloadMapData:: ; 3071 (0:3071)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[W_CURMAP]
+ call SwitchToMapRomBank
+ call DisableLCD
+ call LoadTextBoxTilePatterns
+ call LoadCurrentMapView
+ call LoadTilesetTilePatternData
+ call EnableLCD
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; reloads tileset tile patterns
+ReloadTilesetTilePatterns:: ; 3090 (0:3090)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[W_CURMAP]
+ call SwitchToMapRomBank
+ call DisableLCD
+ call LoadTilesetTilePatternData
+ call EnableLCD
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; shows the town map and lets the player choose a destination to fly to
+ChooseFlyDestination:: ; 30a9 (0:30a9)
+ ld hl,wd72e
+ res 4,[hl]
+ ld b, BANK(LoadTownMap_Fly)
+ ld hl, LoadTownMap_Fly
+ jp Bankswitch
+
+; causes the text box to close waithout waiting for a button press after displaying text
+DisableWaitingAfterTextDisplay:: ; 30b6 (0:30b6)
+ ld a,$01
+ ld [wcc3c],a
+ ret
+
+; uses an item
+; UseItem is used with dummy items to perform certain other functions as well
+; INPUT:
+; [wcf91] = item ID
+; OUTPUT:
+; [wcd6a] = success
+; 00: unsucessful
+; 01: successful
+; 02: not able to be used right now, no extra menu displayed (only certain items use this)
+UseItem:: ; 30bc (0:30bc)
+ ld b,BANK(UseItem_)
+ ld hl,UseItem_
+ jp Bankswitch
+
+; confirms the item toss and then tosses the item
+; INPUT:
+; hl = address of inventory (either wNumBagItems or wNumBoxItems)
+; [wcf91] = item ID
+; [wWhichPokemon] = index of item within inventory
+; [wcf96] = quantity to toss
+; OUTPUT:
+; clears carry flag if the item is tossed, sets carry flag if not
+TossItem:: ; 30c4 (0:30c4)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(TossItem_)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call TossItem_
+ pop de
+ ld a,d
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; checks if an item is a key item
+; INPUT:
+; [wcf91] = item ID
+; OUTPUT:
+; [wd124] = result
+; 00: item is not key item
+; 01: item is key item
+IsKeyItem:: ; 30d9 (0:30d9)
+ push hl
+ push de
+ push bc
+ callba IsKeyItem_
+ pop bc
+ pop de
+ pop hl
+ ret
+
+; function to draw various text boxes
+; INPUT:
+; [wd125] = text box ID
+DisplayTextBoxID:: ; 30e8 (0:30e8)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,BANK(DisplayTextBoxID_)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call DisplayTextBoxID_
+ pop bc
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+Func_30fd:: ; 30fd (0:30fd)
+ ld a, [wcc57]
+ and a
+ ret nz
+ ld a, [wd736]
+ bit 1, a
+ ret nz
+ ld a, [wd730]
+ and $80
+ ret
+
+Func_310e:: ; 310e (0:310e)
+ ld hl, wd736
+ bit 0, [hl]
+ res 0, [hl]
+ jr nz, .asm_3146
+ ld a, [wcc57]
+ and a
+ ret z
+ dec a
+ add a
+ ld d, $0
+ ld e, a
+ ld hl, .pointerTable_3140
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, [wcc58]
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ld a, [wcf10]
+ call CallFunctionInTable
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+.pointerTable_3140
+ dw PointerTable_1a442
+ dw PointerTable_1a510
+ dw PointerTable_1a57d
+.asm_3146
+ ld b, BANK(Func_1a3e0)
+ ld hl, Func_1a3e0
+ jp Bankswitch
+
+Func_314e:: ; 314e (0:314e)
+ ld b, BANK(Func_1a41d)
+ ld hl, Func_1a41d
+ jp Bankswitch
+
+Func_3156:: ; 3156 (0:3156)
+ ret
+
+; stores hl in [W_TRAINERHEADERPTR]
+StoreTrainerHeaderPointer:: ; 3157 (0:3157)
+ ld a, h
+ ld [W_TRAINERHEADERPTR], a
+ ld a, l
+ ld [W_TRAINERHEADERPTR+1], a
+ ret
+
+; executes the current map script from the function pointer array provided in hl.
+; a: map script index to execute (unless overridden by [wd733] bit 4)
+ExecuteCurMapScriptInTable:: ; 3160 (0:3160)
+ push af
+ push de
+ call StoreTrainerHeaderPointer
+ pop hl
+ pop af
+ push hl
+ ld hl, W_FLAGS_D733
+ bit 4, [hl]
+ res 4, [hl]
+ jr z, .useProvidedIndex ; test if map script index was overridden manually
+ ld a, [W_CURMAPSCRIPT]
+.useProvidedIndex
+ pop hl
+ ld [W_CURMAPSCRIPT], a
+ call CallFunctionInTable
+ ld a, [W_CURMAPSCRIPT]
+ ret
+
+LoadGymLeaderAndCityName:: ; 317f (0:317f)
+ push de
+ ld de, wGymCityName
+ ld bc, $11
+ call CopyData ; load city name
+ pop hl
+ ld de, wGymLeaderName
+ ld bc, $b
+ jp CopyData ; load gym leader name
+
+; reads specific information from trainer header (pointed to at W_TRAINERHEADERPTR)
+; a: offset in header data
+; 0 -> flag's bit (into wTrainerHeaderFlagBit)
+; 2 -> flag's byte ptr (into hl)
+; 4 -> before battle text (into hl)
+; 6 -> after battle text (into hl)
+; 8 -> end battle text (into hl)
+ReadTrainerHeaderInfo:: ; 3193 (0:3193)
+ push de
+ push af
+ ld d, $0
+ ld e, a
+ ld hl, W_TRAINERHEADERPTR
+ ld a, [hli]
+ ld l, [hl]
+ ld h, a
+ add hl, de
+ pop af
+ and a
+ jr nz, .nonZeroOffset
+ ld a, [hl]
+ ld [wTrainerHeaderFlagBit], a ; store flag's bit
+ jr .done
+.nonZeroOffset
+ cp $2
+ jr z, .readPointer ; read flag's byte ptr
+ cp $4
+ jr z, .readPointer ; read before battle text
+ cp $6
+ jr z, .readPointer ; read after battle text
+ cp $8
+ jr z, .readPointer ; read end battle text
+ cp $a
+ jr nz, .done
+ ld a, [hli] ; read end battle text (2) but override the result afterwards (XXX why, bug?)
+ ld d, [hl]
+ ld e, a
+ jr .done
+.readPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.done
+ pop de
+ ret
+
+TrainerFlagAction::
+ predef_jump FlagActionPredef
+
+; direct talking to a trainer (rather than getting seen by one)
+TalkToTrainer:: ; 31cc (0:31cc)
+ call StoreTrainerHeaderPointer
+ xor a
+ call ReadTrainerHeaderInfo ; read flag's bit
+ ld a, $2
+ call ReadTrainerHeaderInfo ; read flag's byte ptr
+ ld a, [wTrainerHeaderFlagBit]
+ ld c, a
+ ld b, $2
+ call TrainerFlagAction ; read trainer's flag
+ ld a, c
+ and a
+ jr z, .trainerNotYetFought ; test trainer's flag
+ ld a, $6
+ call ReadTrainerHeaderInfo ; print after battle text
+ jp PrintText
+.trainerNotYetFought ; 0x31ed
+ ld a, $4
+ call ReadTrainerHeaderInfo ; print before battle text
+ call PrintText
+ ld a, $a
+ call ReadTrainerHeaderInfo ; (?) does nothing apparently (maybe bug in ReadTrainerHeaderInfo)
+ push de
+ ld a, $8
+ call ReadTrainerHeaderInfo ; read end battle text
+ pop de
+ call PreBattleSaveRegisters
+ ld hl, W_FLAGS_D733
+ set 4, [hl] ; activate map script index override (index is set below)
+ ld hl, wFlags_0xcd60
+ bit 0, [hl] ; test if player is already being engaged by another trainer
+ ret nz
+ call EngageMapTrainer
+ ld hl, W_CURMAPSCRIPT
+ inc [hl] ; progress map script index (assuming it was 0 before) to start pre-battle routines
+ jp Func_325d
+
+; checks if any trainers are seeing the player and wanting to fight
+CheckFightingMapTrainers:: ; 3219 (0:3219)
+ call CheckForEngagingTrainers
+ ld a, [wcf13]
+ cp $ff
+ jr nz, .trainerEngaging
+ xor a
+ ld [wcf13], a
+ ld [wTrainerHeaderFlagBit], a
+ ret
+.trainerEngaging
+ ld hl, W_FLAGS_D733
+ set 3, [hl]
+ ld [wcd4f], a
+ xor a
+ ld [wcd50], a
+ predef EmotionBubble
+ ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld [wJoyIgnore], a
+ xor a
+ ldh [$b4], a
+ call TrainerWalkUpToPlayer_Bank0
+ ld hl, W_CURMAPSCRIPT
+ inc [hl] ; progress to battle phase 1 (engaging)
+ ret
+
+Func_324c:: ; 324c (0:324c)
+ ld a, [wd730]
+ and $1
+ ret nz
+ ld [wJoyIgnore], a
+ ld a, [wcf13]
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call DisplayTextID
+
+Func_325d:: ; 325d (0:325d)
+ xor a
+ ld [wJoyIgnore], a
+ call InitBattleEnemyParameters
+ ld hl, wd72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, wd72e
+ set 1, [hl]
+ ld hl, W_CURMAPSCRIPT
+ inc [hl] ; progress to battle phase 2 (battling)
+ ret
+
+EndTrainerBattle:: ; 3275 (0:3275)
+ ld hl, wd126
+ set 5, [hl]
+ set 6, [hl]
+ ld hl, wd72d
+ res 7, [hl]
+ ld hl, wFlags_0xcd60
+ res 0, [hl] ; player is no longer engaged by any trainer
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ cp $ff
+ jp z, ResetButtonPressedAndMapScript
+ ld a, $2
+ call ReadTrainerHeaderInfo
+ ld a, [wTrainerHeaderFlagBit]
+ ld c, a
+ ld b, $1
+ call TrainerFlagAction ; flag trainer as fought
+ ld a, [W_ENEMYMONORTRAINERCLASS]
+ cp $c8
+ jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
+ ld hl, W_MISSABLEOBJECTLIST
+ ld de, $2
+ ld a, [wcf13]
+ call IsInArray ; search for sprite ID
+ inc hl
+ ld a, [hl]
+ ld [wcc4d], a ; load corresponding missable object index and remove it
+ predef HideObject
+.skipRemoveSprite
+ ld hl, wd730
+ bit 4, [hl]
+ res 4, [hl]
+ ret nz
+
+ResetButtonPressedAndMapScript:: ; 32c1 (0:32c1)
+ xor a
+ ld [wJoyIgnore], a
+ ld [hJoyHeld], a
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
+ ld [W_CURMAPSCRIPT], a ; reset battle status
+ ret
+
+; calls TrainerWalkUpToPlayer
+TrainerWalkUpToPlayer_Bank0:: ; 32cf (0:32cf)
+ ld b, BANK(TrainerWalkUpToPlayer)
+ ld hl, TrainerWalkUpToPlayer
+ jp Bankswitch
+
+; sets opponent type and mon set/lvl based on the engaging trainer data
+InitBattleEnemyParameters:: ; 32d7 (0:32d7)
+ ld a, [wEngagedTrainerClass]
+ ld [W_CUROPPONENT], a ; wd059
+ ld [W_ENEMYMONORTRAINERCLASS], a
+ cp $c8
+ ld a, [wEngagedTrainerSet] ; wcd2e
+ jr c, .noTrainer
+ ld [W_TRAINERNO], a ; wd05d
+ ret
+.noTrainer
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ret
+
+Func_32ef:: ; 32ef (0:32ef)
+ ld hl, Func_567f9
+ jr asm_3301
+
+Func_32f4:: ; 32f4 (0:32f4)
+ ld hl, Func_56819
+ jr asm_3301 ; 0x32f7 $8
+
+Func_32f9:: ; 32f9 (0:32f9)
+ ld hl, Func_5683d
+ jr asm_3301
+
+Func_32fe:: ; 32fe (0:32fe)
+ ld hl, Func_5685d
+asm_3301:: ; 3301 (0:3301)
+ ld b, BANK(Func_567f9) ; BANK(Func_56819), BANK(Func_5683d), BANK(Func_5685d)
+ jp Bankswitch ; indirect jump to one of the four functions
+
+CheckForEngagingTrainers:: ; 3306 (0:3306)
+ xor a
+ call ReadTrainerHeaderInfo ; read trainer flag's bit (unused)
+ ld d, h ; store trainer header address in de
+ ld e, l
+.trainerLoop
+ call StoreTrainerHeaderPointer ; set trainer header pointer to current trainer
+ ld a, [de]
+ ld [wcf13], a ; store trainer flag's bit
+ ld [wTrainerHeaderFlagBit], a
+ cp $ff
+ ret z
+ ld a, $2
+ call ReadTrainerHeaderInfo ; read trainer flag's byte ptr
+ ld b, $2
+ ld a, [wTrainerHeaderFlagBit]
+ ld c, a
+ call TrainerFlagAction ; read trainer flag
+ ld a, c
+ and a
+ jr nz, .trainerAlreadyFought
+ push hl
+ push de
+ push hl
+ xor a
+ call ReadTrainerHeaderInfo ; get trainer header pointer
+ inc hl
+ ld a, [hl] ; read trainer engage distance
+ pop hl
+ ld [wTrainerEngageDistance], a
+ ld a, [wcf13]
+ swap a
+ ld [wTrainerSpriteOffset], a ; wWhichTrade
+ predef TrainerEngage
+ pop de
+ pop hl
+ ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ and a
+ ret nz ; break if the trainer is engaging
+.trainerAlreadyFought
+ ld hl, $c
+ add hl, de
+ ld d, h
+ ld e, l
+ jr .trainerLoop
+
+; saves loaded rom bank and hl as well as de registers
+PreBattleSaveRegisters:: ; 3354 (0:3354)
+ ld a, [H_LOADEDROMBANK]
+ ld [W_PBSTOREDROMBANK], a
+ ld a, h
+ ld [W_PBSTOREDREGISTERH], a
+ ld a, l
+ ld [W_PBSTOREDREGISTERL], a
+ ld a, d
+ ld [W_PBSTOREDREGISTERD], a
+ ld a, e
+ ld [W_PBSTOREDREGISTERE], a
+ ret
+
+; loads data of some trainer on the current map and plays pre-battle music
+; [wcf13]: sprite ID of trainer who is engaged
+EngageMapTrainer:: ; 336a (0:336a)
+ ld hl, W_MAPSPRITEEXTRADATA
+ ld d, $0
+ ld a, [wcf13]
+ dec a
+ add a
+ ld e, a
+ add hl, de ; seek to engaged trainer data
+ ld a, [hli] ; load trainer class
+ ld [wEngagedTrainerClass], a
+ ld a, [hl] ; load trainer mon set
+ ld [wEnemyMonAttackMod], a ; wcd2e
+ jp PlayTrainerMusic
+
+Func_3381:: ; 3381 (0:3381)
+ push hl
+ ld hl, wd72d
+ bit 7, [hl]
+ res 7, [hl]
+ pop hl
+ ret z
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, [W_PBSTOREDROMBANK]
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ push hl
+ callba SaveTrainerName
+ ld hl, TrainerNameText
+ call PrintText
+ pop hl
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ callba Func_1a5e7
+ jp WaitForSoundToFinish
+
+Func_33b7:: ; 33b7 (0:33b7)
+ ld a, [wcf0b]
+ and a
+ jr nz, .asm_33c6
+ ld a, [W_PBSTOREDREGISTERH]
+ ld h, a
+ ld a, [W_PBSTOREDREGISTERL]
+ ld l, a
+ ret
+.asm_33c6
+ ld a, [W_PBSTOREDREGISTERD]
+ ld h, a
+ ld a, [W_PBSTOREDREGISTERE]
+ ld l, a
+ ret
+
+TrainerNameText:: ; 33cf (0:33cf)
+ TX_FAR _TrainerNameText
+ db $08
+
+Func_33d4:: ; 33d4 (0:33d4)
+ call Func_33b7
+ call TextCommandProcessor
+ jp TextScriptEnd
+
+Func_33dd:: ; 33dd (0:33dd)
+ ld a, [wFlags_0xcd60]
+ bit 0, a
+ ret nz
+ call EngageMapTrainer
+ xor a
+ ret
+
+PlayTrainerMusic:: ; 33e8 (0:33e8)
+ ld a, [wEngagedTrainerClass]
+ cp $c8 + SONY1
+ ret z
+ cp $c8 + SONY2
+ ret z
+ cp $c8 + SONY3
+ ret z
+ ld a, [W_GYMLEADERNO] ; W_GYMLEADERNO
+ and a
+ ret nz
+ xor a
+ ld [wMusicHeaderPointer], a
+ ld a, $ff
+ call PlaySound ; stop music
+ ld a, BANK(Music_MeetEvilTrainer)
+ ld [wc0ef], a
+ ld [wc0f0], a
+ ld a, [wEngagedTrainerClass]
+ ld b, a
+ ld hl, EvilTrainerList
+.evilTrainerListLoop
+ ld a, [hli]
+ cp $ff
+ jr z, .noEvilTrainer
+ cp b
+ jr nz, .evilTrainerListLoop
+ ld a, MUSIC_MEET_EVIL_TRAINER
+ jr .PlaySound
+.noEvilTrainer
+ ld hl, FemaleTrainerList
+.femaleTrainerListLoop
+ ld a, [hli]
+ cp $ff
+ jr z, .maleTrainer
+ cp b
+ jr nz, .femaleTrainerListLoop
+ ld a, MUSIC_MEET_FEMALE_TRAINER
+ jr .PlaySound
+.maleTrainer
+ ld a, MUSIC_MEET_MALE_TRAINER
+.PlaySound
+ ld [wc0ee], a
+ jp PlaySound
+
+INCLUDE "data/trainer_types.asm"
+
+Func_3442:: ; 3442 (0:3442)
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp b
+ jr nz, .asm_345b
+ ld a, [hli]
+ cp c
+ jr nz, .asm_345c
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ld hl, wccd3
+ call DecodeRLEList
+ dec a
+ ld [wcd38], a
+ ret
+.asm_345b
+ inc hl
+.asm_345c
+ inc hl
+ inc hl
+ jr Func_3442
+
+FuncTX_ItemStoragePC:: ; 3460 (0:3460)
+ call SaveScreenTilesToBuffer2
+ ld b, BANK(PlayerPC)
+ ld hl, PlayerPC
+ jr bankswitchAndContinue
+
+FuncTX_BillsPC:: ; 346a (0:346a)
+ call SaveScreenTilesToBuffer2
+ ld b, BANK(Func_214c2)
+ ld hl, Func_214c2
+ jr bankswitchAndContinue
+
+FuncTX_SlotMachine:: ; 3474 (0:3474)
+; XXX find a better name for this function
+; special_F7
+ ld b,BANK(CeladonPrizeMenu)
+ ld hl,CeladonPrizeMenu
+bankswitchAndContinue:: ; 3479 (0:3479)
+ call Bankswitch
+ jp HoldTextDisplayOpen ; continue to main text-engine function
+
+FuncTX_PokemonCenterPC:: ; 347f (0:347f)
+ ld b, BANK(ActivatePC)
+ ld hl, ActivatePC
+ jr bankswitchAndContinue
+
+Func_3486:: ; 3486 (0:3486)
+ xor a
+ ld [wcd3b], a
+ ld [wSpriteStateData2 + $06], a
+ ld hl, wd730
+ set 7, [hl]
+ ret
+
+IsItemInBag:: ; 3493 (0:3493)
+; given an item_id in b
+; set zero flag if item isn't in player's bag
+; else reset zero flag
+; related to Pokémon Tower and ghosts
+ predef IsItemInBag_
+ ld a,b
+ and a
+ ret
+
+DisplayPokedex:: ; 349b (0:349b)
+ ld [wd11e], a
+ ld b, BANK(Func_7c18)
+ ld hl, Func_7c18
+ jp Bankswitch
+
+Func_34a6:: ; 34a6 (0:34a6)
+ call Func_34ae
+ ld c, $6
+ jp DelayFrames
+
+Func_34ae:: ; 34ae (0:34ae)
+ ld a, $9
+ ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ call Func_34fc
+ ld a, [$ff8d]
+ ld [hl], a
+ ret
+
+Func_34b9:: ; 34b9 (0:34b9)
+ ld de, $fff9
+ add hl, de
+ ld [hl], a
+ ret
+
+; tests if the player's coordinates are in a specified array
+; INPUT:
+; hl = address of array
+; OUTPUT:
+; [wWhichTrade] = if there is match, the matching array index
+; sets carry if the coordinates are in the array, clears carry if not
+ArePlayerCoordsInArray:: ; 34bf (0:34bf)
+ ld a,[W_YCOORD]
+ ld b,a
+ ld a,[W_XCOORD]
+ ld c,a
+ ; fallthrough
+
+CheckCoords:: ; 34c7 (0:34c7)
+ xor a
+ ld [wWhichTrade],a
+.loop
+ ld a,[hli]
+ cp a,$ff ; reached terminator?
+ jr z,.notInArray
+ push hl
+ ld hl,wWhichTrade
+ inc [hl]
+ pop hl
+.compareYCoord
+ cp b
+ jr z,.compareXCoord
+ inc hl
+ jr .loop
+.compareXCoord
+ ld a,[hli]
+ cp c
+ jr nz,.loop
+.inArray
+ scf
+ ret
+.notInArray
+ and a
+ ret
+
+; tests if a boulder's coordinates are in a specified array
+; INPUT:
+; hl = address of array
+; ff8c = which boulder to check? XXX
+; OUTPUT:
+; [wWhichTrade] = if there is match, the matching array index
+; sets carry if the coordinates are in the array, clears carry if not
+CheckBoulderCoords:: ; 34e4 (0:34e4)
+ push hl
+ ld hl, wSpriteStateData2 + $04
+ ld a, [$ff8c]
+ swap a
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld a, [hli]
+ sub $4 ; because sprite coordinates are offset by 4
+ ld b, a
+ ld a, [hl]
+ sub $4 ; because sprite coordinates are offset by 4
+ ld c, a
+ pop hl
+ jp CheckCoords
+
+Func_34fc:: ; 34fc (0:34fc)
+ ld h, $c1
+ jr asm_3502
+
+Func_3500:: ; 3500 (0:3500)
+ ld h, $c2
+asm_3502:: ; 3502 (0:3502)
+ ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
+ ld b, a
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ swap a
+ add b
+ ld l, a
+ ret
+
+; decodes a $ff-terminated RLEncoded list
+; each entry is a pair of bytes <byte value> <repetitions>
+; the final $ff will be replicated in the output list and a contains the number of bytes written
+; de: input list
+; hl: output list
+DecodeRLEList:: ; 350c (0:350c)
+ xor a
+ ld [wRLEByteCount], a ; count written bytes here
+.listLoop
+ ld a, [de]
+ cp $ff
+ jr z, .endOfList
+ ld [H_DOWNARROWBLINKCNT1], a ; store byte value to be written
+ inc de
+ ld a, [de]
+ ld b, $0
+ ld c, a ; number of bytes to be written
+ ld a, [wRLEByteCount]
+ add c
+ ld [wRLEByteCount], a ; update total number of written bytes
+ ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
+ call FillMemory ; write a c-times to output
+ inc de
+ jr .listLoop
+.endOfList
+ ld a, $ff
+ ld [hl], a ; write final $ff
+ ld a, [wRLEByteCount]
+ inc a ; include sentinel in counting
+ ret
+
+; sets movement byte 1 for sprite [$FF8C] to $FE and byte 2 to [$FF8D]
+SetSpriteMovementBytesToFE:: ; 3533 (0:3533)
+ push hl
+ call GetSpriteMovementByte1Pointer
+ ld [hl], $fe
+ call GetSpriteMovementByte2Pointer
+ ld a, [$ff8d]
+ ld [hl], a
+ pop hl
+ ret
+
+; sets both movement bytes for sprite [$FF8C] to $FF
+SetSpriteMovementBytesToFF:: ; 3541 (0:3541)
+ push hl
+ call GetSpriteMovementByte1Pointer
+ ld [hl],$FF
+ call GetSpriteMovementByte2Pointer
+ ld [hl],$FF ; prevent person from walking?
+ pop hl
+ ret
+
+; returns the sprite movement byte 1 pointer for sprite [$FF8C] in hl
+GetSpriteMovementByte1Pointer:: ; 354e (0:354e)
+ ld h,$C2
+ ld a,[$FF8C] ; the sprite to move
+ swap a
+ add a,6
+ ld l,a
+ ret
+
+; returns the sprite movement byte 2 pointer for sprite [$FF8C] in hl
+GetSpriteMovementByte2Pointer:: ; 3558 (0:3558)
+ push de
+ ld hl,W_MAPSPRITEDATA
+ ld a,[$FF8C] ; the sprite to move
+ dec a
+ add a
+ ld d,0
+ ld e,a
+ add hl,de
+ pop de
+ ret
+
+GetTrainerInformation:: ; 3566 (0:3566)
+ call GetTrainerName
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
+ and a
+ jr nz, .linkBattle
+ ld a, Bank(TrainerPicAndMoneyPointers)
+ call BankswitchHome
+ ld a, [W_TRAINERCLASS] ; wd031
+ dec a
+ ld hl, TrainerPicAndMoneyPointers
+ ld bc, $5
+ call AddNTimes
+ ld de, wd033
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld de, wd046
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ jp BankswitchBack
+.linkBattle
+ ld hl, wd033
+ ld de, RedPicFront
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+GetTrainerName:: ; 359e (0:359e)
+ ld b, BANK(GetTrainerName_)
+ ld hl, GetTrainerName_
+ jp Bankswitch
+
+
+HasEnoughMoney::
+; Check if the player has at least as much
+; money as the 3-byte BCD value at $ff9f.
+ ld de, wPlayerMoney
+ ld hl, $ff9f
+ ld c, 3
+ jp StringCmp
+
+HasEnoughCoins::
+; Check if the player has at least as many
+; coins as the 2-byte BCD value at $ffa0.
+ ld de, wPlayerCoins
+ ld hl, $ffa0
+ ld c, 2
+ jp StringCmp
+
+
+BankswitchHome:: ; 35bc (0:35bc)
+; switches to bank # in a
+; Only use this when in the home bank!
+ ld [wcf09],a
+ ld a,[H_LOADEDROMBANK]
+ ld [wcf08],a
+ ld a,[wcf09]
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+BankswitchBack:: ; 35cd (0:35cd)
+; returns from BankswitchHome
+ ld a,[wcf08]
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+Bankswitch:: ; 35d6 (0:35d6)
+; self-contained bankswitch, use this when not in the home bank
+; switches to the bank in b
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ld bc,.Return
+ push bc
+ jp [hl]
+.Return
+ pop bc
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; displays yes/no choice
+; yes -> set carry
+YesNoChoice:: ; 35ec (0:35ec)
+ call SaveScreenTilesToBuffer1
+ call InitYesNoTextBoxParameters
+ jr DisplayYesNoChoice
+
+Func_35f4:: ; 35f4 (0:35f4)
+ ld a, $14
+ ld [wd125], a
+ call InitYesNoTextBoxParameters
+ jp DisplayTextBoxID
+
+InitYesNoTextBoxParameters:: ; 35ff (0:35ff)
+ xor a
+ ld [wd12c], a
+ hlCoord 14, 7
+ ld bc, $80f
+ ret
+
+YesNoChoicePokeCenter:: ; 360a (0:360a)
+ call SaveScreenTilesToBuffer1
+ ld a, $6
+ ld [wd12c], a
+ hlCoord 11, 6
+ ld bc, $80c
+ jr DisplayYesNoChoice
+
+Func_361a:: ; 361a (0:361a)
+ call SaveScreenTilesToBuffer1
+ ld a, $3
+ ld [wd12c], a
+ hlCoord 12, 7
+ ld bc, $080d
+DisplayYesNoChoice:: ; 3628 (0:3628)
+ ld a, $14
+ ld [wd125], a
+ call DisplayTextBoxID
+ jp LoadScreenTilesFromBuffer1
+
+; calculates the difference |a-b|, setting carry flag if a<b
+CalcDifference:: ; 3633 (0:3633)
+ sub b
+ ret nc
+ cpl
+ add $1
+ scf
+ ret
+
+MoveSprite:: ; 363a (0:363a)
+; move the sprite [$FF8C] with the movement pointed to by de
+; actually only copies the movement data to wcc5b for later
+ call SetSpriteMovementBytesToFF
+MoveSprite_:: ; 363d (0:363d)
+ push hl
+ push bc
+ call GetSpriteMovementByte1Pointer
+ xor a
+ ld [hl],a
+ ld hl,wcc5b
+ ld c,0
+
+.loop
+ ld a,[de]
+ ld [hli],a
+ inc de
+ inc c
+ cp a,$FF ; have we reached the end of the movement data?
+ jr nz,.loop
+
+ ld a,c
+ ld [wcf0f],a ; number of steps taken
+
+ pop bc
+ ld hl,wd730
+ set 0,[hl]
+ pop hl
+ xor a
+ ld [wcd3b],a
+ ld [wccd3],a
+ dec a
+ ld [wJoyIgnore],a
+ ld [wcd3a],a
+ ret
+
+Func_366b:: ; 366b (0:366b)
+ push hl
+ ld hl, $ffe7
+ xor a
+ ld [hld], a
+ ld a, [hld]
+ and a
+ jr z, .asm_367e
+ ld a, [hli]
+.asm_3676
+ sub [hl]
+ jr c, .asm_367e
+ inc hl
+ inc [hl]
+ dec hl
+ jr .asm_3676
+.asm_367e
+ pop hl
+ ret
+
+; copies the tile patterns for letters and numbers into VRAM
+LoadFontTilePatterns:: ; 3680 (0:3680)
+ ld a,[rLCDC]
+ bit 7,a ; is the LCD enabled?
+ jr nz,.lcdEnabled
+.lcdDisabled
+ ld hl,FontGraphics
+ ld de,vFont
+ ld bc,$400
+ ld a,BANK(FontGraphics)
+ jp FarCopyDataDouble ; if LCD is off, transfer all at once
+.lcdEnabled
+ ld de,FontGraphics
+ ld hl,vFont
+ ld bc,(BANK(FontGraphics) << 8 | $80)
+ jp CopyVideoDataDouble ; if LCD is on, transfer during V-blank
+
+; copies the text box tile patterns into VRAM
+LoadTextBoxTilePatterns:: ; 36a0 (0:36a0)
+ ld a,[rLCDC]
+ bit 7,a ; is the LCD enabled?
+ jr nz,.lcdEnabled
+.lcdDisabled
+ ld hl,TextBoxGraphics
+ ld de,vChars2 + $600
+ ld bc,$200
+ ld a,BANK(TextBoxGraphics)
+ jp FarCopyData2 ; if LCD is off, transfer all at once
+.lcdEnabled
+ ld de,TextBoxGraphics
+ ld hl,vChars2 + $600
+ ld bc,(BANK(TextBoxGraphics) << 8 | $20)
+ jp CopyVideoData ; if LCD is on, transfer during V-blank
+
+; copies HP bar and status display tile patterns into VRAM
+LoadHpBarAndStatusTilePatterns:: ; 36c0 (0:36c0)
+ ld a,[rLCDC]
+ bit 7,a ; is the LCD enabled?
+ jr nz,.lcdEnabled
+.lcdDisabled
+ ld hl,HpBarAndStatusGraphics
+ ld de,vChars2 + $620
+ ld bc,$1e0
+ ld a,BANK(HpBarAndStatusGraphics)
+ jp FarCopyData2 ; if LCD is off, transfer all at once
+.lcdEnabled
+ ld de,HpBarAndStatusGraphics
+ ld hl,vChars2 + $620
+ ld bc,(BANK(HpBarAndStatusGraphics) << 8 | $1e)
+ jp CopyVideoData ; if LCD is on, transfer during V-blank
+
+;Fills memory range with the specified byte.
+;input registers a = fill_byte, bc = length, hl = address
+FillMemory:: ; 36e0 (0:36e0)
+ push de
+ ld d, a
+.loop
+ ld a, d
+ ldi [hl], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ pop de
+ ret
+
+; loads sprite that de points to
+; bank of sprite is given in a
+UncompressSpriteFromDE:: ; 36eb (0:36eb)
+ ld hl, W_SPRITEINPUTPTR
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ jp UncompressSpriteData
+
+SaveScreenTilesToBuffer2:: ; 36f4 (0:36f4)
+ ld hl, wTileMap
+ ld de, wTileMapBackup2
+ ld bc, $168
+ call CopyData
+ ret
+
+LoadScreenTilesFromBuffer2:: ; 3701 (0:3701)
+ call LoadScreenTilesFromBuffer2DisableBGTransfer
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ret
+
+; loads screen tiles stored in wTileMapBackup2 but leaves H_AUTOBGTRANSFERENABLED disabled
+LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709)
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld hl, wTileMapBackup2
+ ld de, wTileMap
+ ld bc, $168
+ call CopyData
+ ret
+
+SaveScreenTilesToBuffer1:: ; 3719 (0:3719)
+ ld hl, wTileMap
+ ld de, wTileMapBackup
+ ld bc, $168
+ jp CopyData
+
+LoadScreenTilesFromBuffer1:: ; 3725 (0:3725)
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld hl, wTileMapBackup
+ ld de, wTileMap
+ ld bc, $168
+ call CopyData
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ret
+
+DelayFrames:: ; 3739 (0:3739)
+; wait n frames, where n is the value in c
+ call DelayFrame
+ dec c
+ jr nz,DelayFrames
+ ret
+
+PlaySoundWaitForCurrent:: ; 3740 (0:3740)
+ push af
+ call WaitForSoundToFinish
+ pop af
+ jp PlaySound
+
+; Wait for sound to finish playing
+WaitForSoundToFinish:: ; 3748 (0:3748)
+ ld a, [wd083]
+ and $80
+ ret nz
+ push hl
+.asm_374f
+ ld hl, wc02a
+ xor a
+ or [hl]
+ inc hl
+ or [hl]
+ inc hl
+ inc hl
+ or [hl]
+ jr nz, .asm_374f
+ pop hl
+ ret
+
+NamePointers:: ; 375d (0:375d)
+ dw MonsterNames
+ dw MoveNames
+ dw UnusedNames
+ dw ItemNames
+ dw wPartyMonOT ; player's OT names list
+ dw wEnemyMonOT ; enemy's OT names list
+ dw TrainerNames
+
+GetName:: ; 376b (0:376b)
+; arguments:
+; [wd0b5] = which name
+; [wd0b6] = which list (W_LISTTYPE)
+; [wPredefBank] = bank of list
+;
+; returns pointer to name in de
+ ld a,[wd0b5]
+ ld [wd11e],a
+ cp a,$C4 ;it's TM/HM
+ jp nc,GetMachineName
+ ld a,[H_LOADEDROMBANK]
+ push af
+ push hl
+ push bc
+ push de
+ ld a,[W_LISTTYPE] ;List3759_entrySelector
+ dec a
+ jr nz,.otherEntries
+ ;1 = MON_NAMES
+ call GetMonName
+ ld hl,11
+ add hl,de
+ ld e,l
+ ld d,h
+ jr .gotPtr
+.otherEntries ; $378d
+ ;2-7 = OTHER ENTRIES
+ ld a,[wPredefBank]
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ld a,[W_LISTTYPE] ;VariousNames' entryID
+ dec a
+ add a
+ ld d,0
+ ld e,a
+ jr nc,.skip
+ inc d
+.skip ; $37a0
+ ld hl,NamePointers
+ add hl,de
+ ld a,[hli]
+ ld [$ff96],a
+ ld a,[hl]
+ ld [$ff95],a
+ ld a,[$ff95]
+ ld h,a
+ ld a,[$ff96]
+ ld l,a
+ ld a,[wd0b5]
+ ld b,a
+ ld c,0
+.nextName
+ ld d,h
+ ld e,l
+.nextChar
+ ld a,[hli]
+ cp a, "@"
+ jr nz,.nextChar
+ inc c ;entry counter
+ ld a,b ;wanted entry
+ cp c
+ jr nz,.nextName
+ ld h,d
+ ld l,e
+ ld de,wcd6d
+ ld bc,$0014
+ call CopyData
+.gotPtr ; $37cd
+ ld a,e
+ ld [wcf8d],a
+ ld a,d
+ ld [wcf8e],a
+ pop de
+ pop bc
+ pop hl
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+GetItemPrice:: ; 37df (0:37df)
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, [wListMenuID] ; wListMenuID
+ cp $1
+ ld a, $1 ; hardcoded Bank
+ jr nz, .asm_37ed
+ ld a, $f ; hardcoded Bank
+.asm_37ed
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ld hl, wcf8f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wcf91]
+ cp HM_01
+ jr nc, .asm_3812
+ ld bc, $3
+.asm_3802
+ add hl, bc
+ dec a
+ jr nz, .asm_3802
+ dec hl
+ ld a, [hld]
+ ld [$ff8d], a
+ ld a, [hld]
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld a, [hl]
+ ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ jr .asm_381c
+.asm_3812
+ ld a, Bank(GetMachinePrice)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ call GetMachinePrice
+.asm_381c
+ ld de, H_DOWNARROWBLINKCNT1 ; $ff8b
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+; copies a string from [de] to [wcf4b]
+CopyStringToCF4B:: ; 3826 (0:3826)
+ ld hl, wcf4b
+ ; fall through
+
+; copies a string from [de] to [hl]
+CopyString:: ; 3829 (0:3829)
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp "@"
+ jr nz, CopyString
+ ret
+
+; this function is used when lower button sensitivity is wanted (e.g. menus)
+; OUTPUT: [$ffb5] = pressed buttons in usual format
+; there are two flags that control its functionality, [$ffb6] and [$ffb7]
+; there are esentially three modes of operation
+; 1. Get newly pressed buttons only
+; ([$ffb7] == 0, [$ffb6] == any)
+; Just copies [hJoyPressed] to [$ffb5].
+; 2. Get currently pressed buttons at low sample rate with delay
+; ([$ffb7] == 1, [$ffb6] != 0)
+; If the user holds down buttons for more than half a second,
+; report buttons as being pressed up to 12 times per second thereafter.
+; If the user holds down buttons for less than half a second,
+; report only one button press.
+; 3. Same as 2, but report no buttons as pressed if A or B is held down.
+; ([$ffb7] == 1, [$ffb6] == 0)
+JoypadLowSensitivity:: ; 3831 (0:3831)
+ call Joypad
+ ld a,[$ffb7] ; flag
+ and a ; get all currently pressed buttons or only newly pressed buttons?
+ ld a,[hJoyPressed] ; newly pressed buttons
+ jr z,.storeButtonState
+ ld a,[hJoyHeld] ; all currently pressed buttons
+.storeButtonState
+ ld [$ffb5],a
+ ld a,[hJoyPressed] ; newly pressed buttons
+ and a ; have any buttons been newly pressed since last check?
+ jr z,.noNewlyPressedButtons
+.newlyPressedButtons
+ ld a,30 ; half a second delay
+ ld [H_FRAMECOUNTER],a
+ ret
+.noNewlyPressedButtons
+ ld a,[H_FRAMECOUNTER]
+ and a ; is the delay over?
+ jr z,.delayOver
+.delayNotOver
+ xor a
+ ld [$ffb5],a ; report no buttons as pressed
+ ret
+.delayOver
+; if [$ffb6] = 0 and A or B is pressed, report no buttons as pressed
+ ld a,[hJoyHeld]
+ and a,%00000011 ; A and B buttons
+ jr z,.setShortDelay
+ ld a,[$ffb6] ; flag
+ and a
+ jr nz,.setShortDelay
+ xor a
+ ld [$ffb5],a
+.setShortDelay
+ ld a,5 ; 1/12 of a second delay
+ ld [H_FRAMECOUNTER],a
+ ret
+
+WaitForTextScrollButtonPress:: ; 3865 (0:3865)
+ ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
+ push af
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ push af
+ xor a
+ ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ ld a, $6
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+.asm_3872
+ push hl
+ ld a, [wd09b]
+ and a
+ jr z, .asm_387c
+ call Func_716c6
+.asm_387c
+ hlCoord 18, 16
+ call HandleDownArrowBlinkTiming
+ pop hl
+ call JoypadLowSensitivity
+ predef Func_5a5f
+ ld a, [$ffb5]
+ and A_BUTTON | B_BUTTON
+ jr z, .asm_3872
+ pop af
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ pop af
+ ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ ret
+
+; (unlass in link battle) waits for A or B being pressed and outputs the scrolling sound effect
+ManualTextScroll:: ; 3898 (0:3898)
+ ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE
+ cp $4
+ jr z, .inLinkBattle
+ call WaitForTextScrollButtonPress
+ ld a, (SFX_02_40 - SFX_Headers_02) / 3
+ jp PlaySound
+.inLinkBattle
+ ld c, $41
+ jp DelayFrames
+
+; function to do multiplication
+; all values are big endian
+; INPUT
+; FF96-FF98 = multiplicand
+; FF99 = multiplier
+; OUTPUT
+; FF95-FF98 = product
+Multiply:: ; 38ac (0:38ac)
+ push hl
+ push bc
+ callab _Multiply
+ pop bc
+ pop hl
+ ret
+
+; function to do division
+; all values are big endian
+; INPUT
+; FF95-FF98 = dividend
+; FF99 = divisor
+; b = number of bytes in the dividend (starting from FF95)
+; OUTPUT
+; FF95-FF98 = quotient
+; FF99 = remainder
+Divide:: ; 38b9 (0:38b9)
+ push hl
+ push de
+ push bc
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,Bank(_Divide)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ call _Divide
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ pop bc
+ pop de
+ pop hl
+ ret
+
+; This function is used to wait a short period after printing a letter to the
+; screen unless the player presses the A/B button or the delay is turned off
+; through the [wd730] or [wd358] flags.
+PrintLetterDelay:: ; 38d3 (0:38d3)
+ ld a,[wd730]
+ bit 6,a
+ ret nz
+ ld a,[wd358]
+ bit 1,a
+ ret z
+ push hl
+ push de
+ push bc
+ ld a,[wd358]
+ bit 0,a
+ jr z,.waitOneFrame
+ ld a,[W_OPTIONS]
+ and a,$0f
+ ld [H_FRAMECOUNTER],a
+ jr .checkButtons
+.waitOneFrame
+ ld a,1
+ ld [H_FRAMECOUNTER],a
+.checkButtons
+ call Joypad
+ ld a,[hJoyHeld]
+.checkAButton
+ bit 0,a ; is the A button pressed?
+ jr z,.checkBButton
+ jr .endWait
+.checkBButton
+ bit 1,a ; is the B button pressed?
+ jr z,.buttonsNotPressed
+.endWait
+ call DelayFrame
+ jr .done
+.buttonsNotPressed ; if neither A nor B is pressed
+ ld a,[H_FRAMECOUNTER]
+ and a
+ jr nz,.checkButtons
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+
+; Copies [hl, bc) to [de, bc - hl).
+; In other words, the source data is from hl up to but not including bc,
+; and the destination is de.
+CopyDataUntil:: ; 3913 (0:3913)
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld a,h
+ cp b
+ jr nz,CopyDataUntil
+ ld a,l
+ cp c
+ jr nz,CopyDataUntil
+ ret
+
+; Function to remove a pokemon from the party or the current box.
+; wWhichPokemon determines the pokemon.
+; [wcf95] == 0 specifies the party.
+; [wcf95] != 0 specifies the current box.
+RemovePokemon:: ; 391f (0:391f)
+ ld hl, _RemovePokemon
+ ld b, BANK(_RemovePokemon)
+ jp Bankswitch
+
+AddPartyMon:: ; 3927 (0:3927)
+ push hl
+ push de
+ push bc
+ callba _AddPartyMon
+ pop bc
+ pop de
+ pop hl
+ ret
+
+; calculates all 5 stats of current mon and writes them to [de]
+CalcStats:: ; 3936 (0:3936)
+ ld c, $0
+.statsLoop
+ inc c
+ call CalcStat
+ ld a, [H_MULTIPLICAND+1]
+ ld [de], a
+ inc de
+ ld a, [H_MULTIPLICAND+2]
+ ld [de], a
+ inc de
+ ld a, c
+ cp $5
+ jr nz, .statsLoop
+ ret
+
+; calculates stat c of current mon
+; c: stat to calc (HP=1,Atk=2,Def=3,Spd=4,Spc=5)
+; b: consider stat exp?
+; hl: base ptr to stat exp values ([hl + 2*c - 1] and [hl + 2*c])
+CalcStat:: ; 394a (0:394a)
+ push hl
+ push de
+ push bc
+ ld a, b
+ ld d, a
+ push hl
+ ld hl, W_MONHEADER
+ ld b, $0
+ add hl, bc
+ ld a, [hl] ; read base value of stat
+ ld e, a
+ pop hl
+ push hl
+ sla c
+ ld a, d
+ and a
+ jr z, .statExpDone ; consider stat exp?
+ add hl, bc ; skip to corresponding stat exp value
+.statExpLoop ; calculates ceil(Sqrt(stat exp)) in b
+ xor a
+ ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND+1], a
+ inc b ; increment current stat exp bonus
+ ld a, b
+ cp $ff
+ jr z, .statExpDone
+ ld [H_MULTIPLICAND+2], a
+ ld [H_MULTIPLIER], a
+ call Multiply
+ ld a, [hld]
+ ld d, a
+ ld a, [$ff98]
+ sub d
+ ld a, [hli]
+ ld d, a
+ ld a, [$ff97]
+ sbc d ; test if (current stat exp bonus)^2 < stat exp
+ jr c, .statExpLoop
+.statExpDone
+ srl c
+ pop hl
+ push bc
+ ld bc, $b ; skip to stat IV values
+ add hl, bc
+ pop bc
+ ld a, c
+ cp $2
+ jr z, .getAttackIV
+ cp $3
+ jr z, .getDefenseIV
+ cp $4
+ jr z, .getSpeedIV
+ cp $5
+ jr z, .getSpecialIV
+.getHpIV
+ push bc
+ ld a, [hl] ; Atk IV
+ swap a
+ and $1
+ sla a
+ sla a
+ sla a
+ ld b, a
+ ld a, [hli] ; Def IV
+ and $1
+ sla a
+ sla a
+ add b
+ ld b, a
+ ld a, [hl] ; Spd IV
+ swap a
+ and $1
+ sla a
+ add b
+ ld b, a
+ ld a, [hl] ; Spc IV
+ and $1
+ add b ; HP IV: LSB of the other 4 IVs
+ pop bc
+ jr .calcStatFromIV
+.getAttackIV
+ ld a, [hl]
+ swap a
+ and $f
+ jr .calcStatFromIV
+.getDefenseIV
+ ld a, [hl]
+ and $f
+ jr .calcStatFromIV
+.getSpeedIV
+ inc hl
+ ld a, [hl]
+ swap a
+ and $f
+ jr .calcStatFromIV
+.getSpecialIV
+ inc hl
+ ld a, [hl]
+ and $f
+.calcStatFromIV
+ ld d, $0
+ add e
+ ld e, a
+ jr nc, .noCarry
+ inc d ; de = Base + IV
+.noCarry
+ sla e
+ rl d ; de = (Base + IV) * 2
+ srl b
+ srl b ; b = ceil(Sqrt(stat exp)) / 4
+ ld a, b
+ add e
+ jr nc, .noCarry2
+ inc d ; da = (Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4
+.noCarry2
+ ld [H_MULTIPLICAND+2], a
+ ld a, d
+ ld [H_MULTIPLICAND+1], a
+ xor a
+ ld [H_MULTIPLICAND], a
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld [H_MULTIPLIER], a
+ call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level
+ ld a, [H_MULTIPLICAND]
+ ld [H_DIVIDEND], a
+ ld a, [H_MULTIPLICAND+1]
+ ld [H_DIVIDEND+1], a
+ ld a, [H_MULTIPLICAND+2]
+ ld [H_DIVIDEND+2], a
+ ld a, $64
+ ld [H_DIVISOR], a
+ ld a, $3
+ ld b, a
+ call Divide ; (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100
+ ld a, c
+ cp $1
+ ld a, $5
+ jr nz, .notHPStat
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld b, a
+ ld a, [H_MULTIPLICAND+2]
+ add b
+ ld [H_MULTIPLICAND+2], a
+ jr nc, .noCarry3
+ ld a, [H_MULTIPLICAND+1]
+ inc a
+ ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level
+.noCarry3
+ ld a, $a
+.notHPStat
+ ld b, a
+ ld a, [H_MULTIPLICAND+2]
+ add b
+ ld [H_MULTIPLICAND+2], a
+ jr nc, .noCarry4
+ ld a, [H_MULTIPLICAND+1]
+ inc a ; non-HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + 5
+ ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10
+.noCarry4
+ ld a, [H_MULTIPLICAND+1] ; check for overflow (>999)
+ cp $4
+ jr nc, .overflow
+ cp $3
+ jr c, .noOverflow
+ ld a, [H_MULTIPLICAND+2]
+ cp $e8
+ jr c, .noOverflow
+.overflow
+ ld a, $3 ; overflow: cap at 999
+ ld [H_MULTIPLICAND+1], a
+ ld a, $e7
+ ld [H_MULTIPLICAND+2], a
+.noOverflow
+ pop bc
+ pop de
+ pop hl
+ ret
+
+AddEnemyMonToPlayerParty:: ; 3a53 (0:3a53)
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, BANK(_AddEnemyMonToPlayerParty)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ call _AddEnemyMonToPlayerParty
+ pop bc
+ ld a, b
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+Func_3a68:: ; 3a68 (0:3a68)
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, BANK(Func_f51e)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ call Func_f51e
+ pop bc
+ ld a, b
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+; skips a text entries, each of size $b (like trainer name, OT name, rival name, ...)
+; hl: base pointer, will be incremented by $b * a
+SkipFixedLengthTextEntries:: ; 3a7d (0:3a7d)
+ and a
+ ret z
+ ld bc, $b
+.skipLoop
+ add hl, bc
+ dec a
+ jr nz, .skipLoop
+ ret
+
+AddNTimes:: ; 3a87 (0:3a87)
+; add bc to hl a times
+ and a
+ ret z
+.loop
+ add hl,bc
+ dec a
+ jr nz,.loop
+ ret
+
+; Compare strings, c bytes in length, at de and hl.
+; Often used to compare big endian numbers in battle calculations.
+StringCmp:: ; 3a8e (0:3a8e)
+ ld a,[de]
+ cp [hl]
+ ret nz
+ inc de
+ inc hl
+ dec c
+ jr nz,StringCmp
+ ret
+
+; INPUT:
+; a = oam block index (each block is 4 oam entries)
+; b = Y coordinate of upper left corner of sprite
+; c = X coordinate of upper left corner of sprite
+; de = base address of 4 tile number and attribute pairs
+WriteOAMBlock:: ; 3a97 (0:3a97)
+ ld h,wOAMBuffer / $100
+ swap a ; multiply by 16
+ ld l,a
+ call .writeOneEntry ; upper left
+ push bc
+ ld a,8
+ add c
+ ld c,a
+ call .writeOneEntry ; upper right
+ pop bc
+ ld a,8
+ add b
+ ld b,a
+ call .writeOneEntry ; lower left
+ ld a,8
+ add c
+ ld c,a
+ ; lower right
+.writeOneEntry
+ ld [hl],b ; Y coordinate
+ inc hl
+ ld [hl],c ; X coordinate
+ inc hl
+ ld a,[de] ; tile number
+ inc de
+ ld [hli],a
+ ld a,[de] ; attribute
+ inc de
+ ld [hli],a
+ ret
+
+HandleMenuInput:: ; 3abe (0:3abe)
+ xor a
+ ld [wd09b],a
+
+HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2)
+ ld a,[H_DOWNARROWBLINKCNT1]
+ push af
+ ld a,[H_DOWNARROWBLINKCNT2]
+ push af ; save existing values on stack
+ xor a
+ ld [H_DOWNARROWBLINKCNT1],a ; blinking down arrow timing value 1
+ ld a,$06
+ ld [H_DOWNARROWBLINKCNT2],a ; blinking down arrow timing value 2
+.loop1
+ xor a
+ ld [W_SUBANIMTRANSFORM],a ; counter for pokemon shaking animation
+ call PlaceMenuCursor
+ call Delay3
+.loop2
+ push hl
+ ld a,[wd09b]
+ and a ; is it a pokemon selection menu?
+ jr z,.getJoypadState
+ callba AnimatePartyMon ; shake mini sprite of selected pokemon
+.getJoypadState
+ pop hl
+ call JoypadLowSensitivity
+ ld a,[$ffb5]
+ and a ; was a key pressed?
+ jr nz,.keyPressed
+ push hl
+ hlCoord 18, 11 ; coordinates of blinking down arrow in some menus
+ call HandleDownArrowBlinkTiming ; blink down arrow (if any)
+ pop hl
+ ld a,[wMenuJoypadPollCount]
+ dec a
+ jr z,.giveUpWaiting
+ jr .loop2
+.giveUpWaiting
+; if a key wasn't pressed within the specified number of checks
+ pop af
+ ld [H_DOWNARROWBLINKCNT2],a
+ pop af
+ ld [H_DOWNARROWBLINKCNT1],a ; restore previous values
+ xor a
+ ld [wMenuWrappingEnabled],a ; disable menu wrapping
+ ret
+.keyPressed
+ xor a
+ ld [wcc4b],a
+ ld a,[$ffb5]
+ ld b,a
+ bit 6,a ; pressed Up key?
+ jr z,.checkIfDownPressed
+.upPressed
+ ld a,[wCurrentMenuItem] ; selected menu item
+ and a ; already at the top of the menu?
+ jr z,.alreadyAtTop
+.notAtTop
+ dec a
+ ld [wCurrentMenuItem],a ; move selected menu item up one space
+ jr .checkOtherKeys
+.alreadyAtTop
+ ld a,[wMenuWrappingEnabled]
+ and a ; is wrapping around enabled?
+ jr z,.noWrappingAround
+ ld a,[wMaxMenuItem]
+ ld [wCurrentMenuItem],a ; wrap to the bottom of the menu
+ jr .checkOtherKeys
+.checkIfDownPressed
+ bit 7,a
+ jr z,.checkOtherKeys
+.downPressed
+ ld a,[wCurrentMenuItem]
+ inc a
+ ld c,a
+ ld a,[wMaxMenuItem]
+ cp c
+ jr nc,.notAtBottom
+.alreadyAtBottom
+ ld a,[wMenuWrappingEnabled]
+ and a ; is wrapping around enabled?
+ jr z,.noWrappingAround
+ ld c,$00 ; wrap from bottom to top
+.notAtBottom
+ ld a,c
+ ld [wCurrentMenuItem],a
+.checkOtherKeys
+ ld a,[wMenuWatchedKeys]
+ and b ; does the menu care about any of the pressed keys?
+ jp z,.loop1
+.checkIfAButtonOrBButtonPressed
+ ld a,[$ffb5]
+ and a,%00000011 ; pressed A button or B button?
+ jr z,.skipPlayingSound
+.AButtonOrBButtonPressed
+ push hl
+ ld hl,wFlags_0xcd60
+ bit 5,[hl]
+ pop hl
+ jr nz,.skipPlayingSound
+ ld a,(SFX_02_40 - SFX_Headers_02) / 3
+ call PlaySound ; play sound
+.skipPlayingSound
+ pop af
+ ld [H_DOWNARROWBLINKCNT2],a
+ pop af
+ ld [H_DOWNARROWBLINKCNT1],a ; restore previous values
+ xor a
+ ld [wMenuWrappingEnabled],a ; disable menu wrapping
+ ld a,[$ffb5]
+ ret
+.noWrappingAround
+ ld a,[wcc37]
+ and a ; should we return if the user tried to go past the top or bottom?
+ jr z,.checkOtherKeys
+ jr .checkIfAButtonOrBButtonPressed
+
+PlaceMenuCursor:: ; 3b7c (0:3b7c)
+ ld a,[wTopMenuItemY]
+ and a ; is the y coordinate 0?
+ jr z,.adjustForXCoord
+ ld hl,wTileMap
+ ld bc,20 ; screen width
+.topMenuItemLoop
+ add hl,bc
+ dec a
+ jr nz,.topMenuItemLoop
+.adjustForXCoord
+ ld a,[wTopMenuItemX]
+ ld b,$00
+ ld c,a
+ add hl,bc
+ push hl
+ ld a,[wLastMenuItem]
+ and a ; was the previous menu id 0?
+ jr z,.checkForArrow1
+ push af
+ ld a,[$fff6]
+ bit 1,a ; is the menu double spaced?
+ jr z,.doubleSpaced1
+ ld bc,20
+ jr .getOldMenuItemScreenPosition
+.doubleSpaced1
+ ld bc,40
+.getOldMenuItemScreenPosition
+ pop af
+.oldMenuItemLoop
+ add hl,bc
+ dec a
+ jr nz,.oldMenuItemLoop
+.checkForArrow1
+ ld a,[hl]
+ cp a,"▶" ; was an arrow next to the previously selected menu item?
+ jr nz,.skipClearingArrow
+.clearArrow
+ ld a,[wTileBehindCursor]
+ ld [hl],a
+.skipClearingArrow
+ pop hl
+ ld a,[wCurrentMenuItem]
+ and a
+ jr z,.checkForArrow2
+ push af
+ ld a,[$fff6]
+ bit 1,a ; is the menu double spaced?
+ jr z,.doubleSpaced2
+ ld bc,20
+ jr .getCurrentMenuItemScreenPosition
+.doubleSpaced2
+ ld bc,40
+.getCurrentMenuItemScreenPosition
+ pop af
+.currentMenuItemLoop
+ add hl,bc
+ dec a
+ jr nz,.currentMenuItemLoop
+.checkForArrow2
+ ld a,[hl]
+ cp a,"▶" ; has the right arrow already been placed?
+ jr z,.skipSavingTile ; if so, don't lose the saved tile
+ ld [wTileBehindCursor],a ; save tile before overwriting with right arrow
+.skipSavingTile
+ ld a,"▶" ; place right arrow
+ ld [hl],a
+ ld a,l
+ ld [wMenuCursorLocation],a
+ ld a,h
+ ld [wMenuCursorLocation + 1],a
+ ld a,[wCurrentMenuItem]
+ ld [wLastMenuItem],a
+ ret
+
+; This is used to mark a menu cursor other than the one currently being
+; manipulated. In the case of submenus, this is used to show the location of
+; the menu cursor in the parent menu. In the case of swapping items in list,
+; this is used to mark the item that was first chosen to be swapped.
+PlaceUnfilledArrowMenuCursor:: ; 3bec (0:3bec)
+ ld b,a
+ ld a,[wMenuCursorLocation]
+ ld l,a
+ ld a,[wMenuCursorLocation + 1]
+ ld h,a
+ ld [hl],$ec ; outline of right arrow
+ ld a,b
+ ret
+
+; Replaces the menu cursor with a blank space.
+EraseMenuCursor:: ; 3bf9 (0:3bf9)
+ ld a,[wMenuCursorLocation]
+ ld l,a
+ ld a,[wMenuCursorLocation + 1]
+ ld h,a
+ ld [hl]," "
+ ret
+
+; This toggles a blinking down arrow at hl on and off after a delay has passed.
+; This is often called even when no blinking is occurring.
+; The reason is that most functions that call this initialize H_DOWNARROWBLINKCNT1 to 0.
+; The effect is that if the tile at hl is initialized with a down arrow,
+; this function will toggle that down arrow on and off, but if the tile isn't
+; initliazed with a down arrow, this function does nothing.
+; That allows this to be called without worrying about if a down arrow should
+; be blinking.
+HandleDownArrowBlinkTiming:: ; 3c04 (0:3c04)
+ ld a,[hl]
+ ld b,a
+ ld a,$ee ; down arrow
+ cp b
+ jr nz,.downArrowOff
+.downArrowOn
+ ld a,[H_DOWNARROWBLINKCNT1]
+ dec a
+ ld [H_DOWNARROWBLINKCNT1],a
+ ret nz
+ ld a,[H_DOWNARROWBLINKCNT2]
+ dec a
+ ld [H_DOWNARROWBLINKCNT2],a
+ ret nz
+ ld a," "
+ ld [hl],a
+ ld a,$ff
+ ld [H_DOWNARROWBLINKCNT1],a
+ ld a,$06
+ ld [H_DOWNARROWBLINKCNT2],a
+ ret
+.downArrowOff
+ ld a,[H_DOWNARROWBLINKCNT1]
+ and a
+ ret z
+ dec a
+ ld [H_DOWNARROWBLINKCNT1],a
+ ret nz
+ dec a
+ ld [H_DOWNARROWBLINKCNT1],a
+ ld a,[H_DOWNARROWBLINKCNT2]
+ dec a
+ ld [H_DOWNARROWBLINKCNT2],a
+ ret nz
+ ld a,$06
+ ld [H_DOWNARROWBLINKCNT2],a
+ ld a,$ee ; down arrow
+ ld [hl],a
+ ret
+
+; The following code either enables or disables the automatic drawing of
+; text boxes by DisplayTextID. Both functions cause DisplayTextID to wait
+; for a button press after displaying text (unless [wcc47] is set).
+
+EnableAutoTextBoxDrawing:: ; 3c3c (0:3c3c)
+ xor a
+ jr AutoTextBoxDrawingCommon
+
+DisableAutoTextBoxDrawing:: ; 3c3f (0:3c3f)
+ ld a,$01
+
+AutoTextBoxDrawingCommon:: ; 3c41 (0:3c41)
+ ld [wcf0c],a ; control text box drawing
+ xor a
+ ld [wcc3c],a ; make DisplayTextID wait for button press
+ ret
+
+PrintText:: ; 3c49 (0:3c49)
+; given a pointer in hl, print the text there
+ push hl
+ ld a,1
+ ld [wd125],a
+ call DisplayTextBoxID
+ call UpdateSprites
+ call Delay3
+ pop hl
+Func_3c59:: ; 3c59 (0:3c59)
+ bcCoord 1, 14
+ jp TextCommandProcessor
+
+; converts a big-endian binary number into decimal and prints it
+; INPUT:
+; b = flags and number of bytes
+; bit 7: if set, print leading zeroes
+; if unset, do not print leading zeroes
+; bit 6: if set, left-align the string (do not pad empty digits with spaces)
+; if unset, right-align the string
+; bits 4-5: unused
+; bits 0-3: number of bytes (only 1 - 3 bytes supported)
+; c = number of decimal digits
+; de = address of the number (big-endian)
+PrintNumber:: ; 3c5f (0:3c5f)
+ push bc
+ xor a
+ ld [H_PASTLEADINGZEROES],a
+ ld [H_NUMTOPRINT],a
+ ld [H_NUMTOPRINT + 1],a
+ ld a,b
+ and a,%00001111
+ cp a,1
+ jr z,.oneByte
+ cp a,2
+ jr z,.twoBytes
+.threeBytes
+ ld a,[de]
+ ld [H_NUMTOPRINT],a
+ inc de
+ ld a,[de]
+ ld [H_NUMTOPRINT + 1],a
+ inc de
+ ld a,[de]
+ ld [H_NUMTOPRINT + 2],a
+ jr .checkNumDigits
+.twoBytes
+ ld a,[de]
+ ld [H_NUMTOPRINT + 1],a
+ inc de
+ ld a,[de]
+ ld [H_NUMTOPRINT + 2],a
+ jr .checkNumDigits
+.oneByte
+ ld a,[de]
+ ld [H_NUMTOPRINT + 2],a
+.checkNumDigits
+ push de
+ ld d,b
+ ld a,c
+ ld b,a
+ xor a
+ ld c,a
+ ld a,b ; a = number of decimal digits
+ cp a,2
+ jr z,.tensPlace
+ cp a,3
+ jr z,.hundredsPlace
+ cp a,4
+ jr z,.thousandsPlace
+ cp a,5
+ jr z,.tenThousandsPlace
+ cp a,6
+ jr z,.hundredThousandsPlace
+.millionsPlace
+ ld a,1000000 >> 16
+ ld [H_POWEROFTEN],a
+ ld a,(1000000 >> 8) & $FF
+ ld [H_POWEROFTEN + 1],a
+ ld a,1000000 & $FF
+ ld [H_POWEROFTEN + 2],a
+ call PrintNumber_PrintDigit
+ call PrintNumber_AdvancePointer
+.hundredThousandsPlace
+ ld a,100000 >> 16
+ ld [H_POWEROFTEN],a
+ ld a,(100000 >> 8) & $FF
+ ld [H_POWEROFTEN + 1],a
+ ld a,100000 & $FF
+ ld [H_POWEROFTEN + 2],a
+ call PrintNumber_PrintDigit
+ call PrintNumber_AdvancePointer
+.tenThousandsPlace
+ xor a
+ ld [H_POWEROFTEN],a
+ ld a,10000 >> 8
+ ld [H_POWEROFTEN + 1],a
+ ld a,10000 & $FF
+ ld [H_POWEROFTEN + 2],a
+ call PrintNumber_PrintDigit
+ call PrintNumber_AdvancePointer
+.thousandsPlace
+ xor a
+ ld [H_POWEROFTEN],a
+ ld a,1000 >> 8
+ ld [H_POWEROFTEN + 1],a
+ ld a,1000 & $FF
+ ld [H_POWEROFTEN + 2],a
+ call PrintNumber_PrintDigit
+ call PrintNumber_AdvancePointer
+.hundredsPlace
+ xor a
+ ld [H_POWEROFTEN],a
+ xor a
+ ld [H_POWEROFTEN + 1],a
+ ld a,100
+ ld [H_POWEROFTEN + 2],a
+ call PrintNumber_PrintDigit
+ call PrintNumber_AdvancePointer
+.tensPlace
+ ld c,00
+ ld a,[H_NUMTOPRINT + 2]
+.loop
+ cp a,10
+ jr c,.underflow
+ sub a,10
+ inc c
+ jr .loop
+.underflow
+ ld b,a
+ ld a,[H_PASTLEADINGZEROES]
+ or c
+ ld [H_PASTLEADINGZEROES],a
+ jr nz,.pastLeadingZeroes
+ call PrintNumber_PrintLeadingZero
+ jr .advancePointer
+.pastLeadingZeroes
+ ld a,"0"
+ add c
+ ld [hl],a
+.advancePointer
+ call PrintNumber_AdvancePointer
+.onesPlace
+ ld a,"0"
+ add b
+ ld [hli],a
+ pop de
+ dec de
+ pop bc
+ ret
+
+; prints a decimal digit
+; This works by repeatedely subtracting a power of ten until the number becomes negative.
+; The number of subtractions it took in order to make the number negative is the digit for the current number place.
+; The last value that the number had before becoming negative is kept as the new value of the number.
+; A more succinct description is that the number is divided by a power of ten
+; and the quotient becomes the digit while the remainder is stored as the new value of the number.
+PrintNumber_PrintDigit:: ; 3d25 (0:3d25)
+ ld c,0 ; counts number of loop iterations to determine the decimal digit
+.loop
+ ld a,[H_POWEROFTEN]
+ ld b,a
+ ld a,[H_NUMTOPRINT]
+ ld [H_SAVEDNUMTOPRINT],a
+ cp b
+ jr c,.underflow0
+ sub b
+ ld [H_NUMTOPRINT],a
+ ld a,[H_POWEROFTEN + 1]
+ ld b,a
+ ld a,[H_NUMTOPRINT + 1]
+ ld [H_SAVEDNUMTOPRINT + 1],a
+ cp b
+ jr nc,.noBorrowForByte1
+.byte1BorrowFromByte0
+ ld a,[H_NUMTOPRINT]
+ or a,0
+ jr z,.underflow1
+ dec a
+ ld [H_NUMTOPRINT],a
+ ld a,[H_NUMTOPRINT + 1]
+.noBorrowForByte1
+ sub b
+ ld [H_NUMTOPRINT + 1],a
+ ld a,[H_POWEROFTEN + 2]
+ ld b,a
+ ld a,[H_NUMTOPRINT + 2]
+ ld [H_SAVEDNUMTOPRINT + 2],a
+ cp b
+ jr nc,.noBorrowForByte2
+.byte2BorrowFromByte1
+ ld a,[H_NUMTOPRINT + 1]
+ and a
+ jr nz,.finishByte2BorrowFromByte1
+.byte2BorrowFromByte0
+ ld a,[H_NUMTOPRINT]
+ and a
+ jr z,.underflow2
+ dec a
+ ld [H_NUMTOPRINT],a
+ xor a
+.finishByte2BorrowFromByte1
+ dec a
+ ld [H_NUMTOPRINT + 1],a
+ ld a,[H_NUMTOPRINT + 2]
+.noBorrowForByte2
+ sub b
+ ld [H_NUMTOPRINT + 2],a
+ inc c
+ jr .loop
+.underflow2
+ ld a,[H_SAVEDNUMTOPRINT + 1]
+ ld [H_NUMTOPRINT + 1],a
+.underflow1
+ ld a,[H_SAVEDNUMTOPRINT]
+ ld [H_NUMTOPRINT],a
+.underflow0
+ ld a,[H_PASTLEADINGZEROES]
+ or c
+ jr z,PrintNumber_PrintLeadingZero
+ ld a,"0"
+ add c
+ ld [hl],a
+ ld [H_PASTLEADINGZEROES],a
+ ret
+
+; prints a leading zero unless they are turned off in the flags
+PrintNumber_PrintLeadingZero:: ; 3d83 (0:3d83)
+ bit 7,d ; print leading zeroes?
+ ret z
+ ld [hl],"0"
+ ret
+
+; increments the pointer unless leading zeroes are not being printed,
+; the number is left-aligned, and no nonzero digits have been printed yet
+PrintNumber_AdvancePointer:: ; 3d89 (0:3d89)
+ bit 7,d ; print leading zeroes?
+ jr nz,.incrementPointer
+ bit 6,d ; left alignment or right alignment?
+ jr z,.incrementPointer
+ ld a,[H_PASTLEADINGZEROES]
+ and a
+ ret z
+.incrementPointer
+ inc hl
+ ret
+
+; calls a function from a table of function pointers
+; INPUT:
+; a = index within table
+; hl = address of function pointer table
+CallFunctionInTable:: ; 3d97 (0:3d97)
+ push hl
+ push de
+ push bc
+ add a
+ ld d,0
+ ld e,a
+ add hl,de
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a
+ ld de,.returnAddress
+ push de
+ jp [hl]
+.returnAddress
+ pop bc
+ pop de
+ pop hl
+ ret
+
+
+IsInArray::
+; Search an array at hl for the value in a.
+; Entry size is de bytes.
+; Return count b and carry if found.
+ ld b, 0
+
+IsInRestOfArray::
+ ld c, a
+.loop
+ ld a, [hl]
+ cp -1
+ jr z, .notfound
+ cp c
+ jr z, .found
+ inc b
+ add hl, de
+ jr .loop
+
+.notfound
+ and a
+ ret
+
+.found
+ scf
+ ret
+
+
+Func_3dbe:: ; 3dbe (0:3dbe)
+ call ClearSprites
+ ld a, $1
+ ld [wcfcb], a
+ call Func_3e08
+ call LoadScreenTilesFromBuffer2
+ call LoadTextBoxTilePatterns
+ call GoPAL_SET_CF1C
+ jr Delay3
+
+
+GBPalWhiteOutWithDelay3::
+ call GBPalWhiteOut
+
+Delay3::
+; The bg map is updated each frame in thirds.
+; Wait three frames to let the bg map fully update.
+ ld c, 3
+ jp DelayFrames
+
+GBPalNormal::
+; Reset BGP and OBP0.
+ ld a, %11100100 ; 3210
+ ld [rBGP], a
+ ld a, %11010000 ; 3100
+ ld [rOBP0], a
+ ret
+
+GBPalWhiteOut::
+; White out all palettes.
+ xor a
+ ld [rBGP],a
+ ld [rOBP0],a
+ ld [rOBP1],a
+ ret
+
+
+GoPAL_SET_CF1C:: ; 3ded (0:3ded)
+ ld b,$ff
+GoPAL_SET:: ; 3def (0:3def)
+ ld a,[wcf1b]
+ and a
+ ret z
+ predef_jump Func_71ddf
+
+GetHealthBarColor::
+; Return at hl the palette of
+; an HP bar e pixels long.
+ ld a, e
+ cp 27
+ ld d, 0 ; green
+ jr nc, .gotColor
+ cp 10
+ inc d ; yellow
+ jr nc, .gotColor
+ inc d ; red
+.gotColor
+ ld [hl], d
+ ret
+
+Func_3e08:: ; 3e08 (0:3e08)
+ ld hl, wcfc4
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ push hl
+ xor a
+ ld [W_SPRITESETID], a ; W_SPRITESETID
+ call DisableLCD
+ callba InitMapSprites
+ call EnableLCD
+ pop hl
+ pop af
+ ld [hl], a
+ call LoadPlayerSpriteGraphics
+ call LoadFontTilePatterns
+ jp UpdateSprites
+
+
+GiveItem::
+; Give player quantity c of item b,
+; and copy the item's name to wcf4b.
+; Return carry on success.
+ ld a, b
+ ld [wd11e], a
+ ld [wcf91], a
+ ld a, c
+ ld [wcf96], a
+ ld hl,wNumBagItems
+ call AddItemToInventory
+ ret nc
+ call GetItemName
+ call CopyStringToCF4B
+ scf
+ ret
+
+GivePokemon::
+; Give the player monster b at level c.
+ ld a, b
+ ld [wcf91], a
+ ld a, c
+ ld [W_CURENEMYLVL], a
+ xor a
+ ld [wcc49], a
+ ld b, BANK(_GivePokemon)
+ ld hl, _GivePokemon
+ jp Bankswitch
+
+
+Random::
+; Return a random number in a.
+; For battles, use BattleRandom.
+ push hl
+ push de
+ push bc
+ callba Random_
+ ld a,[hRandomAdd]
+ pop bc
+ pop de
+ pop hl
+ ret
+
+
+INCLUDE "home/predef.asm"
+
+
+Func_3ead:: ; 3ead (0:3ead)
+ ld b, BANK(CinnabarGymQuiz_1eb0a)
+ ld hl, CinnabarGymQuiz_1eb0a
+ jp Bankswitch
+
+Func_3eb5:: ; 3eb5 (0:3eb5)
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, [hJoyHeld]
+ bit 0, a
+ jr z, .asm_3eea
+ ld a, Bank(Func_469a0)
+ ld [$2000], a
+ ld [H_LOADEDROMBANK], a
+ call Func_469a0
+ ld a, [$ffee]
+ and a
+ jr nz, .asm_3edd
+ ld a, [wTrainerEngageDistance]
+ ld [$2000], a
+ ld [H_LOADEDROMBANK], a
+ ld de, .asm_3eda
+ push de
+ jp [hl]
+.asm_3eda
+ xor a
+ jr .asm_3eec
+.asm_3edd
+ callba PrintBookshelfText
+ ld a, [$ffdb]
+ and a
+ jr z, .asm_3eec
+.asm_3eea
+ ld a, $ff
+.asm_3eec
+ ld [$ffeb], a
+ pop af
+ ld [$2000], a
+ ld [H_LOADEDROMBANK], a
+ ret
+
+PrintPredefTextID:: ; 3ef5 (0:3ef5)
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld hl, PointerTable_3f22
+ call Func_3f0f
+ ld hl, wcf11
+ set 0, [hl]
+ call DisplayTextID
+
+Func_3f05:: ; 3f05 (0:3f05)
+ ld hl, W_MAPTEXTPTR ; wd36c
+ ld a, [$ffec]
+ ld [hli], a
+ ld a, [$ffed]
+ ld [hl], a
+ ret
+
+Func_3f0f:: ; 3f0f (0:3f0f)
+ ld a, [W_MAPTEXTPTR] ; wd36c
+ ld [$ffec], a
+ ld a, [W_MAPTEXTPTR + 1]
+ ld [$ffed], a
+ ld a, l
+ ld [W_MAPTEXTPTR], a ; wd36c
+ ld a, h
+ ld [W_MAPTEXTPTR + 1], a
+ ret
+
+PointerTable_3f22:: ; 3f22 (0:3f22)
+ dw CardKeySuccessText ; id = 01
+ dw CardKeyFailText ; id = 02
+ dw RedBedroomPC ; id = 03
+ dw RedBedroomSNESText ; id = 04
+ dw PushStartText ; id = 05
+ dw SaveOptionText ; id = 06
+ dw StrengthsAndWeaknessesText ; id = 07
+ dw OakLabEmailText ; id = 08
+ dw AerodactylFossilText ; id = 09
+ dw Route15UpstairsBinocularsText ; id = 0A
+ dw KabutopsFossilText ; id = 0B
+ dw GymStatueText1 ; id = 0C
+ dw GymStatueText2 ; id = 0D
+ dw BookcaseText ; id = 0E
+ dw ViridianCityPokecenterBenchGuyText ; id = 0F
+ dw PewterCityPokecenterBenchGuyText ; id = 10
+ dw CeruleanCityPokecenterBenchGuyText ; id = 11
+ dw LavenderCityPokecenterBenchGuyText ; id = 12
+ dw VermilionCityPokecenterBenchGuyText ; id = 13
+ dw CeladonCityPokecenterBenchGuyText ; id = 14
+ dw CeladonCityHotelText ; id = 15
+ dw FuchsiaCityPokecenterBenchGuyText ; id = 16
+ dw CinnabarIslandPokecenterBenchGuyText ; id = 17
+ dw SaffronCityPokecenterBenchGuyText ; id = 18
+ dw MtMoonPokecenterBenchGuyText ; id = 19
+ dw RockTunnelPokecenterBenchGuyText ; id = 1A
+ dw UnusedBenchGuyText1 ; id = 1B
+ dw UnusedBenchGuyText2 ; id = 1C
+ dw UnusedBenchGuyText3 ; id = 1D
+ dw TerminatorText_62508 ; id = 1E
+ dw PredefText1f ; id = 1F
+ dw ViridianSchoolNotebook ; id = 20
+ dw ViridianSchoolBlackboard ; id = 21
+ dw JustAMomentText ; id = 22
+ dw PredefText23 ; id = 23
+ dw FoundHiddenItemText ; id = 24
+ dw HiddenItemBagFullText ; id = 25
+ dw VermilionGymTrashText ; id = 26
+ dw IndigoPlateauHQText ; id = 27
+ dw GameCornerOutOfOrderText ; id = 28
+ dw GameCornerOutToLunchText ; id = 29
+ dw GameCornerSomeonesKeysText ; id = 2A
+ dw FoundHiddenCoinsText ; id = 2B
+ dw DroppedHiddenCoinsText ; id = 2C
+ dw BillsHouseMonitorText ; id = 2D
+ dw BillsHouseInitiatedText ; id = 2E
+ dw BillsHousePokemonList ; id = 2F
+ dw MagazinesText ; id = 30
+ dw CinnabarGymQuiz ; id = 31
+ dw GameCornerNoCoinsText ; id = 32
+ dw GameCornerCoinCaseText ; id = 33
+ dw LinkCableHelp ; id = 34
+ dw TMNotebook ; id = 35
+ dw FightingDojoText ; id = 36
+ dw FightingDojoText_52a10 ; id = 37
+ dw FightingDojoText_52a1d ; id = 38
+ dw NewBicycleText ; id = 39
+ dw IndigoPlateauStatues ; id = 3A
+ dw VermilionGymTrashSuccesText1 ; id = 3B
+ dw VermilionGymTrashSuccesText2 ; id = 3C
+ dw VermilionGymTrashSuccesText3 ; id = 3D
+ dw VermilionGymTrashFailText ; id = 3E
+ dw TownMapText ; id = 3F
+ dw BookOrSculptureText ; id = 40
+ dw ElevatorText ; id = 41
+ dw PokemonStuffText ; id = 42
--- /dev/null
+++ b/home/audio.asm
@@ -1,0 +1,183 @@
+Func_2307:: ; 2307 (0:2307)
+ call WaitForSoundToFinish
+ xor a
+ ld c, a
+ ld d, a
+ ld [wcfca], a
+ jr asm_2324
+
+Func_2312:: ; 2312 (0:2312)
+ ld c, $a
+ ld d, $0
+ ld a, [wd72e]
+ bit 5, a
+ jr z, asm_2324
+ xor a
+ ld [wcfca], a
+ ld c, $8
+ ld d, c
+asm_2324:: ; 2324 (0:2324)
+ ld a, [wd700]
+ and a
+ jr z, .asm_2343
+ cp $2
+ jr z, .asm_2332
+ ld a, MUSIC_BIKE_RIDING
+ jr .asm_2334
+.asm_2332
+ ld a, MUSIC_SURFING
+.asm_2334
+ ld b, a
+ ld a, d
+ and a
+ ld a, BANK(Music_BikeRiding)
+ jr nz, .asm_233e
+ ld [wc0ef], a
+.asm_233e
+ ld [wc0f0], a
+ jr .asm_234c
+.asm_2343
+ ld a, [wd35b]
+ ld b, a
+ call Func_2385
+ jr c, .asm_2351
+.asm_234c
+ ld a, [wcfca]
+ cp b
+ ret z
+.asm_2351
+ ld a, c
+ ld [wMusicHeaderPointer], a
+ ld a, b
+ ld [wcfca], a
+ ld [wc0ee], a
+ jp PlaySound
+
+Func_235f:: ; 235f (0:235f)
+ ld a, [wc0ef]
+ ld b, a
+ cp BANK(Music2_UpdateMusic)
+ jr nz, .checkForBank08
+.bank02
+ ld hl, Music2_UpdateMusic
+ jr .asm_2378
+.checkForBank08
+ cp BANK(Music8_UpdateMusic)
+ jr nz, .bank1F
+.bank08
+ ld hl, Music8_UpdateMusic
+ jr .asm_2378
+.bank1F
+ ld hl, Music1f_UpdateMusic
+.asm_2378
+ ld c, $6
+.asm_237a
+ push bc
+ push hl
+ call Bankswitch
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_237a
+ ret
+
+Func_2385:: ; 2385 (0:2385)
+ ld a, [wd35c]
+ ld e, a
+ ld a, [wc0ef]
+ cp e
+ jr nz, .asm_2394
+ ld [wc0f0], a
+ and a
+ ret
+.asm_2394
+ ld a, c
+ and a
+ ld a, e
+ jr nz, .asm_239c
+ ld [wc0ef], a
+.asm_239c
+ ld [wc0f0], a
+ scf
+ ret
+
+PlayMusic:: ; 23a1 (0:23a1)
+ ld b, a
+ ld [wc0ee], a
+ xor a
+ ld [wMusicHeaderPointer], a
+ ld a, c
+ ld [wc0ef], a
+ ld [wc0f0], a
+ ld a, b
+
+; plays music specified by a. If value is $ff, music is stopped
+PlaySound:: ; 23b1 (0:23b1)
+ push hl
+ push de
+ push bc
+ ld b, a
+ ld a, [wc0ee]
+ and a
+ jr z, .asm_23c8
+ xor a
+ ld [wc02a], a
+ ld [wc02b], a
+ ld [wc02c], a
+ ld [wc02d], a
+.asm_23c8
+ ld a, [wMusicHeaderPointer]
+ and a
+ jr z, .asm_23e3
+ ld a, [wc0ee]
+ and a
+ jr z, .asm_2425
+ xor a
+ ld [wc0ee], a
+ ld a, [wcfca]
+ cp $ff
+ jr nz, .asm_2414
+ xor a
+ ld [wMusicHeaderPointer], a
+.asm_23e3
+ xor a
+ ld [wc0ee], a
+ ld a, [H_LOADEDROMBANK]
+ ld [$ffb9], a
+ ld a, [wc0ef]
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ cp BANK(Func_9876)
+ jr nz, .checkForBank08
+.bank02
+ ld a, b
+ call Func_9876
+ jr .asm_240b
+.checkForBank08
+ cp BANK(Func_22035)
+ jr nz, .bank1F
+.bank08
+ ld a, b
+ call Func_22035
+ jr .asm_240b
+.bank1F
+ ld a, b
+ call Func_7d8ea
+.asm_240b
+ ld a, [$ffb9]
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ jr .asm_2425
+.asm_2414
+ ld a, b
+ ld [wcfca], a
+ ld a, [wMusicHeaderPointer]
+ ld [wcfc8], a
+ ld [wcfc9], a
+ ld a, b
+ ld [wMusicHeaderPointer], a
+.asm_2425
+ pop bc
+ pop de
+ pop hl
+ ret
--- /dev/null
+++ b/home/fade.asm
@@ -1,0 +1,73 @@
+; These routines manage gradual fading
+; (e.g., entering a doorway)
+LoadGBPal::
+ ld a, [wd35d] ;tells if cur.map is dark (requires HM5_FLASH?)
+ ld b, a
+ ld hl, FadePal4
+ ld a, l
+ sub b
+ ld l, a
+ jr nc, .ok
+ dec h
+.ok
+ ld a, [hli]
+ ld [rBGP], a
+ ld a, [hli]
+ ld [rOBP0], a
+ ld a, [hli]
+ ld [rOBP1], a
+ ret
+
+GBFadeOut1::
+ ld hl, FadePal1
+ ld b, 4
+ jr GBFadeOutCommon
+
+GBFadeOut2::
+ ld hl, FadePal6
+ ld b, 3
+
+GBFadeOutCommon::
+ ld a, [hli]
+ ld [rBGP], a
+ ld a, [hli]
+ ld [rOBP0], a
+ ld a, [hli]
+ ld [rOBP1], a
+ ld c, 8
+ call DelayFrames
+ dec b
+ jr nz, GBFadeOutCommon
+ ret
+
+GBFadeIn1::
+ ld hl, FadePal4 + 2
+ ld b, 4
+ jr GBFadeInCommon
+
+GBFadeIn2::
+ ld hl, FadePal7 + 2
+ ld b, 3
+
+GBFadeInCommon::
+ ld a, [hld]
+ ld [rOBP1], a
+ ld a, [hld]
+ ld [rOBP0], a
+ ld a, [hld]
+ ld [rBGP], a
+ ld c, 8
+ call DelayFrames
+ dec b
+ jr nz, GBFadeInCommon
+ ret
+
+FadePal1:: db %11111111, %11111111, %11111111
+FadePal2:: db %11111110, %11111110, %11111000
+FadePal3:: db %11111001, %11100100, %11100100
+FadePal4:: db %11100100, %11010000, %11100000
+; rBGP rOBP0 rOBP1
+FadePal5:: db %11100100, %11010000, %11100000
+FadePal6:: db %10010000, %10000000, %10010000
+FadePal7:: db %01000000, %01000000, %01000000
+FadePal8:: db %00000000, %00000000, %00000000
--- /dev/null
+++ b/home/init.asm
@@ -1,0 +1,137 @@
+SoftReset::
+ call StopAllSounds
+ call GBPalWhiteOut
+ ld c, $20
+ call DelayFrames
+ ; fallthrough
+
+Init::
+; Program init.
+
+rLCDC_DEFAULT EQU %11100011
+; * LCD enabled
+; * Window tile map at $9C00
+; * Window display enabled
+; * BG and window tile data at $8800
+; * BG tile map at $9800
+; * 8x8 OBJ size
+; * OBJ display enabled
+; * BG display enabled
+
+ di
+
+ xor a
+ ld [rIF], a
+ ld [rIE], a
+ ld [$ff43], a
+ ld [$ff42], a
+ ld [$ff01], a
+ ld [$ff02], a
+ ld [$ff4b], a
+ ld [$ff4a], a
+ ld [$ff06], a
+ ld [$ff07], a
+ ld [$ff47], a
+ ld [$ff48], a
+ ld [$ff49], a
+
+ ld a, rLCDC_ENABLE_MASK
+ ld [rLCDC], a
+ call DisableLCD
+
+ ld sp, wStack
+
+ ld hl, $c000 ; start of WRAM
+ ld bc, $2000 ; size of WRAM
+.loop
+ ld [hl], 0
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+
+ call ClearVram
+
+ ld hl, $ff80
+ ld bc, $ffff - $ff80
+ call FillMemory
+
+ call ClearSprites
+
+ ld a, Bank(WriteDMACodeToHRAM)
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ call WriteDMACodeToHRAM
+
+ xor a
+ ld [$ffd7], a
+ ld [$ff41], a
+ ld [$ffae], a
+ ld [$ffaf], a
+ ld [$ff0f], a
+ ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL
+ ld [rIE], a
+
+ ld a, 144 ; move the window off-screen
+ ld [$ffb0], a
+ ld [rWY], a
+ ld a, 7
+ ld [rWX], a
+
+ ld a, $ff
+ ld [$ffaa], a
+
+ ld h, vBGMap0 / $100
+ call ClearBgMap
+ ld h, vBGMap1 / $100
+ call ClearBgMap
+
+ ld a, rLCDC_DEFAULT
+ ld [rLCDC], a
+ ld a, 16
+ ld [hSoftReset], a
+ call StopAllSounds
+
+ ei
+
+ predef LoadSGB
+
+ ld a, BANK(SFX_1f_67)
+ ld [wc0ef], a
+ ld [wc0f0], a
+ ld a, $9c
+ ld [$ffbd], a
+ xor a
+ ld [$ffbc], a
+ dec a
+ ld [wcfcb], a
+
+ predef PlayIntro
+
+ call DisableLCD
+ call ClearVram
+ call GBPalNormal
+ call ClearSprites
+ ld a, rLCDC_DEFAULT
+ ld [rLCDC], a
+
+ jp SetDefaultNamesBeforeTitlescreen
+
+ClearVram:
+ ld hl, $8000
+ ld bc, $2000
+ xor a
+ jp FillMemory
+
+
+StopAllSounds::
+ ld a, BANK(Music2_UpdateMusic)
+ ld [wc0ef], a
+ ld [wc0f0], a
+ xor a
+ ld [wMusicHeaderPointer], a
+ ld [wc0ee], a
+ ld [wcfca], a
+ dec a
+ jp PlaySound
--- /dev/null
+++ b/home/joypad.asm
@@ -1,0 +1,39 @@
+ReadJoypad::
+; Poll joypad input.
+; Unlike the hardware register, button
+; presses are indicated by a set bit.
+
+ ld a, 1 << 5 ; select direction keys
+ ld c, 0
+
+ ld [rJOYP], a
+ rept 6
+ ld a, [rJOYP]
+ endr
+ cpl
+ and %1111
+ swap a
+ ld b, a
+
+ ld a, 1 << 4 ; select button keys
+ ld [rJOYP], a
+ rept 10
+ ld a, [rJOYP]
+ endr
+ cpl
+ and %1111
+ or b
+
+ ld [hJoyInput], a
+
+ ld a, 1 << 4 + 1 << 5 ; deselect keys
+ ld [rJOYP], a
+ ret
+
+Joypad::
+; Update the joypad state variables:
+; [hJoyReleased] keys released since last time
+; [hJoyPressed] keys pressed since last time
+; [hJoyHeld] currently pressed keys
+ homecall _Joypad
+ ret
--- /dev/null
+++ b/home/overworld.asm
@@ -1,0 +1,2403 @@
+HandleMidJump::
+; Handle the player jumping down
+; a ledge in the overworld.
+ ld b, BANK(_HandleMidJump)
+ ld hl, _HandleMidJump
+ jp Bankswitch
+
+EnterMap::
+; Load a new map.
+ ld a, $ff
+ ld [wJoyIgnore], a
+ call LoadMapData
+ callba Func_c335 ; initialize map variables
+ ld hl, wd72c
+ bit 0, [hl]
+ jr z, .doNotCountSteps
+ ld a, 3
+ ld [wd13c], a ; some kind of step counter (counts up to 3 steps?)
+.doNotCountSteps
+ ld hl, wd72e
+ bit 5, [hl] ; did a battle happen immediately before this?
+ res 5, [hl] ; unset the "battle just happened" flag
+ call z, Func_12e7
+ call nz, MapEntryAfterBattle
+ ld hl, wd732
+ ld a, [hl]
+ and 1 << 4 | 1 << 3
+ jr z, .didNotFlyOrTeleportIn
+ res 3, [hl]
+ callba Func_70510 ; display fly/teleport in graphical effect
+ call UpdateSprites
+.didNotFlyOrTeleportIn
+ callba CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
+ ld hl, wd72d
+ res 5, [hl]
+ call UpdateSprites
+ ld hl, wd126
+ set 5, [hl]
+ set 6, [hl]
+ xor a
+ ld [wJoyIgnore], a
+
+OverworldLoop::
+ call DelayFrame
+OverworldLoopLessDelay::
+ call DelayFrame
+ call LoadGBPal
+ ld a,[wd736]
+ bit 6,a ; jumping down a ledge?
+ call nz, HandleMidJump
+ ld a,[wWalkCounter]
+ and a
+ jp nz,.moveAhead ; if the player sprite has not yet completed the walking animation
+ call JoypadOverworld ; get joypad state (which is possibly simulated)
+ callba SafariZoneCheck
+ ld a,[wda46]
+ and a
+ jp nz,WarpFound2
+ ld hl,wd72d
+ bit 3,[hl]
+ res 3,[hl]
+ jp nz,WarpFound2
+ ld a,[wd732]
+ and a,$18
+ jp nz,HandleFlyOrTeleportAway
+ ld a,[W_CUROPPONENT]
+ and a
+ jp nz,.newBattle
+ ld a,[wd730]
+ bit 7,a ; are we simulating button presses?
+ jr z,.notSimulating
+ ld a,[hJoyHeld]
+ jr .checkIfStartIsPressed
+.notSimulating
+ ld a,[hJoyPressed]
+.checkIfStartIsPressed
+ bit 3,a ; start button
+ jr z,.startButtonNotPressed
+; if START is pressed
+ xor a
+ ld [$ff8c],a ; the $2920 ID for the start menu is 0
+ jp .displayDialogue
+.startButtonNotPressed
+ bit 0,a ; A button
+ jp z,.checkIfDownButtonIsPressed
+; if A is pressed
+ ld a,[wd730]
+ bit 2,a
+ jp nz,.noDirectionButtonsPressed
+ call Func_30fd
+ jr nz,.checkForOpponent
+ call Func_3eb5 ; check for hidden items, PC's, etc.
+ ld a,[$ffeb]
+ and a
+ jp z,OverworldLoop
+ call IsSpriteOrSignInFrontOfPlayer ; check for sign or sprite in front of the player
+ ld a,[$ff8c] ; $2920 ID for NPC/sign text, if any
+ and a
+ jp z,OverworldLoop
+.displayDialogue
+ predef Func_c586 ; check what is in front of the player
+ call UpdateSprites ; move sprites
+ ld a,[wFlags_0xcd60]
+ bit 2,a
+ jr nz,.checkForOpponent
+ bit 0,a
+ jr nz,.checkForOpponent
+ aCoord 8, 9
+ ld [wcf0e],a
+ call DisplayTextID ; display either the start menu or the NPC/sign text
+ ld a,[wcc47]
+ and a
+ jr z,.checkForOpponent
+ dec a
+ ld a,$00
+ ld [wcc47],a
+ jr z,.changeMap
+ predef LoadSAV
+ ld a,[W_CURMAP]
+ ld [wd71a],a
+ call Func_62ce
+ ld a,[W_CURMAP]
+ call SwitchToMapRomBank ; switch to the ROM bank of the current map
+ ld hl,W_CURMAPTILESET
+ set 7,[hl]
+.changeMap
+ jp EnterMap
+.checkForOpponent
+ ld a,[W_CUROPPONENT]
+ and a
+ jp nz,.newBattle
+ jp OverworldLoop
+.noDirectionButtonsPressed
+ ld hl,wFlags_0xcd60
+ res 2,[hl]
+ call UpdateSprites ; move sprites
+ ld a,$01
+ ld [wcc4b],a
+ ld a,[wd528] ; the direction that was pressed last time
+ and a
+ jp z,OverworldLoop
+; if a direction was pressed last time
+ ld [wd529],a ; save the last direction
+ xor a
+ ld [wd528],a ; zero the direction
+ jp OverworldLoop
+.checkIfDownButtonIsPressed
+ ld a,[hJoyHeld] ; current joypad state
+ bit 7,a ; down button
+ jr z,.checkIfUpButtonIsPressed
+ ld a,$01
+ ld [wSpriteStateData1 + 3],a
+ ld a,$04
+ jr .handleDirectionButtonPress
+.checkIfUpButtonIsPressed
+ bit 6,a ; up button
+ jr z,.checkIfLeftButtonIsPressed
+ ld a,$ff
+ ld [wSpriteStateData1 + 3],a
+ ld a,$08
+ jr .handleDirectionButtonPress
+.checkIfLeftButtonIsPressed
+ bit 5,a ; left button
+ jr z,.checkIfRightButtonIsPressed
+ ld a,$ff
+ ld [wSpriteStateData1 + 5],a
+ ld a,$02
+ jr .handleDirectionButtonPress
+.checkIfRightButtonIsPressed
+ bit 4,a ; right button
+ jr z,.noDirectionButtonsPressed
+ ld a,$01
+ ld [wSpriteStateData1 + 5],a
+.handleDirectionButtonPress
+ ld [wd52a],a ; new direction
+ ld a,[wd730]
+ bit 7,a ; are we simulating button presses?
+ jr nz,.noDirectionChange ; ignore direction changes if we are
+ ld a,[wcc4b]
+ and a
+ jr z,.noDirectionChange
+ ld a,[wd52a] ; new direction
+ ld b,a
+ ld a,[wd529] ; old direction
+ cp b
+ jr z,.noDirectionChange
+; the code below is strange
+; it computes whether or not the player did a 180 degree turn, but then overwrites the result
+; also, it does a seemingly pointless loop afterwards
+ swap a ; put old direction in upper half
+ or b ; put new direction in lower half
+ cp a,$48 ; change dir from down to up
+ jr nz,.notDownToUp
+ ld a,$02
+ ld [wd528],a
+ jr .oddLoop
+.notDownToUp
+ cp a,$84 ; change dir from up to down
+ jr nz,.notUpToDown
+ ld a,$01
+ ld [wd528],a
+ jr .oddLoop
+.notUpToDown
+ cp a,$12 ; change dir from right to left
+ jr nz,.notRightToLeft
+ ld a,$04
+ ld [wd528],a
+ jr .oddLoop
+.notRightToLeft
+ cp a,$21 ; change dir from left to right
+ jr nz,.oddLoop
+ ld a,$08
+ ld [wd528],a
+.oddLoop
+ ld hl,wFlags_0xcd60
+ set 2,[hl]
+ ld hl,wcc4b
+ dec [hl]
+ jr nz,.oddLoop
+ ld a,[wd52a]
+ ld [wd528],a
+ call NewBattle
+ jp c,.battleOccurred
+ jp OverworldLoop
+.noDirectionChange
+ ld a,[wd52a] ; current direction
+ ld [wd528],a ; save direction
+ call UpdateSprites ; move sprites
+ ld a,[wd700]
+ cp a,$02 ; surfing
+ jr z,.surfing
+; not surfing
+ call CollisionCheckOnLand
+ jr nc,.noCollision
+ push hl
+ ld hl,wd736
+ bit 2,[hl]
+ pop hl
+ jp z,OverworldLoop
+ push hl
+ call ExtraWarpCheck ; sets carry if there is a potential to warp
+ pop hl
+ jp c,CheckWarpsCollision
+ jp OverworldLoop
+.surfing
+ call CollisionCheckOnWater
+ jp c,OverworldLoop
+.noCollision
+ ld a,$08
+ ld [wWalkCounter],a
+ jr .moveAhead2
+.moveAhead
+ ld a,[wd736]
+ bit 7,a
+ jr z,.noSpinning
+ callba LoadSpinnerArrowTiles ; spin while moving
+.noSpinning
+ call UpdateSprites ; move sprites
+.moveAhead2
+ ld hl,wFlags_0xcd60
+ res 2,[hl]
+ ld a,[wd700]
+ dec a ; riding a bike?
+ jr nz,.normalPlayerSpriteAdvancement
+ ld a,[wd736]
+ bit 6,a ; jumping a ledge?
+ jr nz,.normalPlayerSpriteAdvancement
+ call BikeSpeedup ; if riding a bike and not jumping a ledge
+.normalPlayerSpriteAdvancement
+ call AdvancePlayerSprite
+ ld a,[wWalkCounter]
+ and a
+ jp nz,CheckMapConnections ; it seems like this check will never succeed (the other place where CheckMapConnections is run works)
+; walking animation finished
+ ld a,[wd730]
+ bit 7,a
+ jr nz,.doneStepCounting ; if button presses are being simulated, don't count steps
+; step counting
+ ld hl,wd13b ; step counter
+ dec [hl]
+ ld a,[wd72c]
+ bit 0,a
+ jr z,.doneStepCounting
+ ld hl,wd13c
+ dec [hl]
+ jr nz,.doneStepCounting
+ ld hl,wd72c
+ res 0,[hl]
+.doneStepCounting
+ ld a,[wd790]
+ bit 7,a ; in the safari zone?
+ jr z,.notSafariZone
+ callba SafariZoneCheckSteps
+ ld a,[wda46]
+ and a
+ jp nz,WarpFound2
+.notSafariZone
+ ld a,[W_ISINBATTLE]
+ and a
+ jp nz,CheckWarpsNoCollision
+ predef Func_c69c ; decrement HP of poisoned pokemon
+ ld a,[wd12d]
+ and a
+ jp nz,HandleBlackOut ; if all pokemon fainted
+.newBattle
+ call NewBattle
+ ld hl,wd736
+ res 2,[hl]
+ jp nc,CheckWarpsNoCollision ; check for warps if there was no battle
+.battleOccurred
+ ld hl,wd72d
+ res 6,[hl]
+ ld hl,W_FLAGS_D733
+ res 3,[hl]
+ ld hl,wd126
+ set 5,[hl]
+ set 6,[hl]
+ xor a
+ ld [hJoyHeld],a ; clear joypad state
+ ld a,[W_CURMAP]
+ cp a,CINNABAR_GYM
+ jr nz,.notCinnabarGym
+ ld hl,wd79b
+ set 7,[hl]
+.notCinnabarGym
+ ld hl,wd72e
+ set 5,[hl]
+ ld a,[W_CURMAP]
+ cp a,OAKS_LAB
+ jp z,.noFaintCheck
+ callab AnyPartyAlive ; check if all the player's pokemon fainted
+ ld a,d
+ and a
+ jr z,.allPokemonFainted
+.noFaintCheck
+ ld c,$0a
+ call DelayFrames
+ jp EnterMap
+.allPokemonFainted
+ ld a,$ff
+ ld [W_ISINBATTLE],a
+ call RunMapScript
+ jp HandleBlackOut
+
+; function to determine if there will be a battle and execute it (either a trainer battle or wild battle)
+; sets carry if a battle occurred and unsets carry if not
+NewBattle:: ; 0683 (0:0683)
+ ld a,[wd72d]
+ bit 4,a
+ jr nz,.noBattle
+ call Func_30fd
+ jr nz,.noBattle
+ ld a,[wd72e]
+ bit 4,a
+ jr nz,.noBattle
+ ld b, BANK(InitBattle)
+ ld hl, InitBattle
+ jp Bankswitch ; determines if a battle will occur and runs the battle if so
+.noBattle
+ and a
+ ret
+
+; function to make bikes twice as fast as walking
+BikeSpeedup:: ; 06a0 (0:06a0)
+ ld a,[wcc57]
+ and a
+ ret nz
+ ld a,[W_CURMAP]
+ cp a,ROUTE_17 ; Cycling Road
+ jr nz,.goFaster
+ ld a,[hJoyHeld] ; current joypad state
+ and a,%01110000 ; bit mask for up, left, right buttons
+ ret nz
+.goFaster
+ jp AdvancePlayerSprite
+
+; check if the player has stepped onto a warp after having not collided
+CheckWarpsNoCollision:: ; 06b4 (0:06b4)
+ ld a,[wd3ae] ; number of warps
+ and a
+ jp z,CheckMapConnections
+ ld a,[wd3ae] ; number of warps
+ ld b,$00
+ ld c,a
+ ld a,[W_YCOORD]
+ ld d,a
+ ld a,[W_XCOORD]
+ ld e,a
+ ld hl,wd3af ; start of warp entries
+CheckWarpsNoCollisionLoop:: ; 06cc (0:06cc)
+ ld a,[hli] ; check if the warp's Y position matches
+ cp d
+ jr nz,CheckWarpsNoCollisionRetry1
+ ld a,[hli] ; check if the warp's X position matches
+ cp e
+ jr nz,CheckWarpsNoCollisionRetry2
+; if a match was found
+ push hl
+ push bc
+ ld hl,wd736
+ set 2,[hl]
+ callba Func_c49d ; check if the player sprite is standing on a "door" tile
+ pop bc
+ pop hl
+ jr c,WarpFound1 ; if it is, go to 0735
+ push hl
+ push bc
+ call ExtraWarpCheck ; sets carry if the warp is confirmed
+ pop bc
+ pop hl
+ jr nc,CheckWarpsNoCollisionRetry2
+; if the extra check passed
+ ld a,[W_FLAGS_D733]
+ bit 2,a
+ jr nz,WarpFound1
+ push de
+ push bc
+ call Joypad
+ pop bc
+ pop de
+ ld a,[hJoyHeld] ; current joypad state
+ and a,%11110000 ; bit mask for directional buttons
+ jr z,CheckWarpsNoCollisionRetry2 ; if directional buttons aren't being pressed, do not pass through the warp
+ jr WarpFound1
+
+; check if the player has stepped onto a warp after having collided
+CheckWarpsCollision:: ; 0706 (0:0706)
+ ld a,[wd3ae] ; number of warps
+ ld c,a
+ ld hl,wd3af ; start of warp entries
+.loop
+ ld a,[hli] ; Y coordinate of warp
+ ld b,a
+ ld a,[W_YCOORD]
+ cp b
+ jr nz,.retry1
+ ld a,[hli] ; X coordinate of warp
+ ld b,a
+ ld a,[W_XCOORD]
+ cp b
+ jr nz,.retry2
+ ld a,[hli]
+ ld [wd42f],a ; save target warp ID
+ ld a,[hl]
+ ld [$ff8b],a ; save target map
+ jr WarpFound2
+.retry1
+ inc hl
+.retry2
+ inc hl
+ inc hl
+ dec c
+ jr nz,.loop
+ jp OverworldLoop
+
+CheckWarpsNoCollisionRetry1:: ; 072f (0:072f)
+ inc hl
+CheckWarpsNoCollisionRetry2:: ; 0730 (0:0730)
+ inc hl
+ inc hl
+ jp ContinueCheckWarpsNoCollisionLoop
+
+WarpFound1:: ; 0735 (0:0735)
+ ld a,[hli]
+ ld [wd42f],a ; save target warp ID
+ ld a,[hli]
+ ld [$ff8b],a ; save target map
+
+WarpFound2:: ; 073c (0:073c)
+ ld a,[wd3ae] ; number of warps
+ sub c
+ ld [wd73b],a ; save ID of used warp
+ ld a,[W_CURMAP]
+ ld [wd73c],a
+ call CheckIfInOutsideMap
+ jr nz,.indoorMaps
+; this is for handling "outside" maps that can't have the 0xFF destination map
+ ld a,[W_CURMAP]
+ ld [wLastMap],a
+ ld a,[W_CURMAPWIDTH]
+ ld [wd366],a
+ ld a,[$ff8b] ; destination map number
+ ld [W_CURMAP],a ; change current map to destination map
+ cp a,ROCK_TUNNEL_1
+ jr nz,.notRockTunnel
+ ld a,$06
+ ld [wd35d],a
+ call GBFadeIn1
+.notRockTunnel
+ call PlayMapChangeSound
+ jr .done
+; for maps that can have the 0xFF destination map, which means to return to the outside map; not all these maps are necessarily indoors, though
+.indoorMaps
+ ld a,[$ff8b] ; destination map
+ cp a,$ff
+ jr z,.goBackOutside
+; if not going back to the previous map
+ ld [W_CURMAP],a ; current map number
+ callba Func_70787 ; check if the warp was a Silph Co. teleporter
+ ld a,[wcd5b]
+ dec a
+ jr nz,.notTeleporter
+; if it's a Silph Co. teleporter
+ ld hl,wd732
+ set 3,[hl]
+ call LeaveMapAnim
+ jr .skipMapChangeSound
+.notTeleporter
+ call PlayMapChangeSound
+.skipMapChangeSound
+ ld hl,wd736
+ res 0,[hl]
+ res 1,[hl]
+ jr .done
+.goBackOutside
+ ld a,[wLastMap]
+ ld [W_CURMAP],a
+ call PlayMapChangeSound
+ xor a
+ ld [wd35d],a
+.done
+ ld hl,wd736
+ set 0,[hl]
+ call Func_12da
+ jp EnterMap
+
+ContinueCheckWarpsNoCollisionLoop:: ; 07b5 (0:07b5)
+ inc b ; increment warp number
+ dec c ; decrement number of warps
+ jp nz,CheckWarpsNoCollisionLoop
+
+; if no matching warp was found
+CheckMapConnections:: ; 07ba (0:07ba)
+.checkWestMap
+ ld a,[W_XCOORD]
+ cp a,$ff
+ jr nz,.checkEastMap
+ ld a,[W_MAPCONN3PTR]
+ ld [W_CURMAP],a
+ ld a,[wd38f] ; new X coordinate upon entering west map
+ ld [W_XCOORD],a
+ ld a,[W_YCOORD]
+ ld c,a
+ ld a,[wd38e] ; Y adjustment upon entering west map
+ add c
+ ld c,a
+ ld [W_YCOORD],a
+ ld a,[wd390] ; pointer to upper left corner of map without adjustment for Y position
+ ld l,a
+ ld a,[wd391]
+ ld h,a
+ srl c
+ jr z,.savePointer1
+.pointerAdjustmentLoop1
+ ld a,[wd38d] ; width of connected map
+ add a,$06
+ ld e,a
+ ld d,$00
+ ld b,$00
+ add hl,de
+ dec c
+ jr nz,.pointerAdjustmentLoop1
+.savePointer1
+ ld a,l
+ ld [wd35f],a ; pointer to upper left corner of current tile block map section
+ ld a,h
+ ld [wd360],a
+ jp .loadNewMap
+.checkEastMap
+ ld b,a
+ ld a,[wd525] ; map width
+ cp b
+ jr nz,.checkNorthMap
+ ld a,[W_MAPCONN4PTR]
+ ld [W_CURMAP],a
+ ld a,[wd39a] ; new X coordinate upon entering east map
+ ld [W_XCOORD],a
+ ld a,[W_YCOORD]
+ ld c,a
+ ld a,[wd399] ; Y adjustment upon entering east map
+ add c
+ ld c,a
+ ld [W_YCOORD],a
+ ld a,[wd39b] ; pointer to upper left corner of map without adjustment for Y position
+ ld l,a
+ ld a,[wd39c]
+ ld h,a
+ srl c
+ jr z,.savePointer2
+.pointerAdjustmentLoop2
+ ld a,[wd398]
+ add a,$06
+ ld e,a
+ ld d,$00
+ ld b,$00
+ add hl,de
+ dec c
+ jr nz,.pointerAdjustmentLoop2
+.savePointer2
+ ld a,l
+ ld [wd35f],a ; pointer to upper left corner of current tile block map section
+ ld a,h
+ ld [wd360],a
+ jp .loadNewMap
+.checkNorthMap
+ ld a,[W_YCOORD]
+ cp a,$ff
+ jr nz,.checkSouthMap
+ ld a,[W_MAPCONN1PTR]
+ ld [W_CURMAP],a
+ ld a,[wd378] ; new Y coordinate upon entering north map
+ ld [W_YCOORD],a
+ ld a,[W_XCOORD]
+ ld c,a
+ ld a,[wd379] ; X adjustment upon entering north map
+ add c
+ ld c,a
+ ld [W_XCOORD],a
+ ld a,[wd37a] ; pointer to upper left corner of map without adjustment for X position
+ ld l,a
+ ld a,[wd37b]
+ ld h,a
+ ld b,$00
+ srl c
+ add hl,bc
+ ld a,l
+ ld [wd35f],a ; pointer to upper left corner of current tile block map section
+ ld a,h
+ ld [wd360],a
+ jp .loadNewMap
+.checkSouthMap
+ ld b,a
+ ld a,[wd524]
+ cp b
+ jr nz,.didNotEnterConnectedMap
+ ld a,[W_MAPCONN2PTR]
+ ld [W_CURMAP],a
+ ld a,[wd383] ; new Y coordinate upon entering south map
+ ld [W_YCOORD],a
+ ld a,[W_XCOORD]
+ ld c,a
+ ld a,[wd384] ; X adjustment upon entering south map
+ add c
+ ld c,a
+ ld [W_XCOORD],a
+ ld a,[wd385] ; pointer to upper left corner of map without adjustment for X position
+ ld l,a
+ ld a,[wd386]
+ ld h,a
+ ld b,$00
+ srl c
+ add hl,bc
+ ld a,l
+ ld [wd35f],a ; pointer to upper left corner of current tile block map section
+ ld a,h
+ ld [wd360],a
+.loadNewMap ; load the connected map that was entered
+ call LoadMapHeader
+ call Func_2312 ; music
+ ld b,$09
+ call GoPAL_SET
+; Since the sprite set shouldn't change, this will just update VRAM slots at
+; $C2XE without loading any tile patterns.
+ callba InitMapSprites
+ call LoadTileBlockMap
+ jp OverworldLoopLessDelay
+.didNotEnterConnectedMap
+ jp OverworldLoop
+
+; function to play a sound when changing maps
+PlayMapChangeSound:: ; 08c9 (0:08c9)
+ aCoord 8, 8 ; upper left tile of the 4x4 square the player's sprite is standing on
+ cp a,$0b ; door tile in tileset 0
+ jr nz,.didNotGoThroughDoor
+ ld a,(SFX_02_57 - SFX_Headers_02) / 3
+ jr .playSound
+.didNotGoThroughDoor
+ ld a,(SFX_02_5c - SFX_Headers_02) / 3
+.playSound
+ call PlaySound
+ ld a,[wd35d]
+ and a
+ ret nz
+ jp GBFadeIn1
+
+CheckIfInOutsideMap:: ; 08e1 (0:08e1)
+; If the player is in an outside map (a town or route), set the z flag
+ ld a, [W_CURMAPTILESET]
+ and a ; most towns/routes have tileset 0 (OVERWORLD)
+ ret z
+ cp PLATEAU ; Route 23 / Indigo Plateau
+ ret
+
+; this function is an extra check that sometimes has to pass in order to warp, beyond just standing on a warp
+; the "sometimes" qualification is necessary because of CheckWarpsNoCollision's behavior
+; depending on the map, either "function 1" or "function 2" is used for the check
+; "function 1" passes when the player is at the edge of the map and is facing towards the outside of the map
+; "function 2" passes when the the tile in front of the player is among a certain set
+; sets carry if the check passes, otherwise clears carry
+ExtraWarpCheck:: ; 08e9 (0:08e9)
+ ld a, [W_CURMAP]
+ cp SS_ANNE_3
+ jr z, .useFunction1
+ cp ROCKET_HIDEOUT_1
+ jr z, .useFunction2
+ cp ROCKET_HIDEOUT_2
+ jr z, .useFunction2
+ cp ROCKET_HIDEOUT_4
+ jr z, .useFunction2
+ cp ROCK_TUNNEL_1
+ jr z, .useFunction2
+ ld a, [W_CURMAPTILESET]
+ and a ; outside tileset (OVERWORLD)
+ jr z, .useFunction2
+ cp SHIP ; S.S. Anne tileset
+ jr z, .useFunction2
+ cp SHIP_PORT ; Vermilion Port tileset
+ jr z, .useFunction2
+ cp PLATEAU ; Indigo Plateau tileset
+ jr z, .useFunction2
+.useFunction1
+ ld hl, Func_c3ff
+ jr .doBankswitch
+.useFunction2
+ ld hl, Func_c44e
+.doBankswitch
+ ld b, BANK(Func_c44e)
+ jp Bankswitch
+
+MapEntryAfterBattle:: ; 091f (0:091f)
+ callba Func_c35f ; function that appears to disable warp testing after collisions if the player is standing on a warp
+ ld a,[wd35d]
+ and a
+ jp z,GBFadeIn2
+ jp LoadGBPal
+
+HandleBlackOut::
+; For when all the player's pokemon faint.
+; Does not print the "blacked out" message.
+
+ call GBFadeIn1
+ ld a, $08
+ call StopMusic
+ ld hl, wd72e
+ res 5, [hl]
+ ld a, Bank(Func_40b0) ; also Bank(Func_62ce) and Bank(Func_5d5f)
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ call Func_40b0
+ call Func_62ce
+ call Func_2312
+ jp Func_5d5f
+
+StopMusic::
+ ld [wMusicHeaderPointer], a
+ ld a, $ff
+ ld [wc0ee], a
+ call PlaySound
+.wait
+ ld a, [wMusicHeaderPointer]
+ and a
+ jr nz, .wait
+ jp StopAllSounds
+
+HandleFlyOrTeleportAway::
+ call UpdateSprites
+ call Delay3
+ xor a
+ ld [wcf0b], a
+ ld [wd700], a
+ ld [W_ISINBATTLE], a
+ ld [wd35d], a
+ ld hl, wd732
+ set 2, [hl]
+ res 5, [hl]
+ call LeaveMapAnim
+ ld a, Bank(Func_62ce)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ call Func_62ce
+ jp Func_5d5f
+
+LeaveMapAnim::
+ ld b, BANK(_LeaveMapAnim)
+ ld hl, _LeaveMapAnim
+ jp Bankswitch
+
+LoadPlayerSpriteGraphics::
+; Load sprite graphics based on whether the player is standing, biking, or surfing.
+
+ ; 0: standing
+ ; 1: biking
+ ; 2: surfing
+
+ ld a, [wd700]
+ dec a
+ jr z, .ridingBike
+
+ ld a, [$ffd7]
+ and a
+ jr nz, .determineGraphics
+ jr .startWalking
+
+.ridingBike
+ ; If the bike can't be used,
+ ; start walking instead.
+ call IsBikeRidingAllowed
+ jr c, .determineGraphics
+
+.startWalking
+ xor a
+ ld [wd700], a
+ ld [wd11a], a
+ jp LoadWalkingPlayerSpriteGraphics
+
+.determineGraphics
+ ld a, [wd700]
+ and a
+ jp z, LoadWalkingPlayerSpriteGraphics
+ dec a
+ jp z, LoadBikePlayerSpriteGraphics
+ dec a
+ jp z, LoadSurfingPlayerSpriteGraphics
+ jp LoadWalkingPlayerSpriteGraphics
+
+IsBikeRidingAllowed::
+; The bike can be used on Route 23 and Indigo Plateau,
+; or maps with tilesets in BikeRidingTilesets.
+; Return carry if biking is allowed.
+
+ ld a, [W_CURMAP]
+ cp ROUTE_23
+ jr z, .allowed
+ cp INDIGO_PLATEAU
+ jr z, .allowed
+
+ ld a, [W_CURMAPTILESET]
+ ld b, a
+ ld hl, BikeRidingTilesets
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .allowed
+ inc a
+ jr nz, .loop
+ and a
+ ret
+
+.allowed
+ scf
+ ret
+
+INCLUDE "data/bike_riding_tilesets.asm"
+
+; load the tile pattern data of the current tileset into VRAM
+LoadTilesetTilePatternData:: ; 09e8 (0:09e8)
+ ld a,[W_TILESETGFXPTR]
+ ld l,a
+ ld a,[W_TILESETGFXPTR + 1]
+ ld h,a
+ ld de,vTileset
+ ld bc,$600
+ ld a,[W_TILESETBANK]
+ jp FarCopyData2
+
+; this loads the current maps complete tile map (which references blocks, not individual tiles) to C6E8
+; it can also load partial tile maps of connected maps into a border of length 3 around the current map
+LoadTileBlockMap:: ; 09fc (0:09fc)
+; fill C6E8-CBFB with the background tile
+ ld hl,wOverworldMap
+ ld a,[wd3ad] ; background tile number
+ ld d,a
+ ld bc,$0514
+.backgroundTileLoop
+ ld a,d
+ ld [hli],a
+ dec bc
+ ld a,c
+ or b
+ jr nz,.backgroundTileLoop
+; load tile map of current map (made of tile block IDs)
+; a 3-byte border at the edges of the map is kept so that there is space for map connections
+ ld hl,wOverworldMap
+ ld a,[W_CURMAPWIDTH]
+ ld [$ff8c],a
+ add a,$06 ; border (east and west)
+ ld [$ff8b],a ; map width + border
+ ld b,$00
+ ld c,a
+; make space for north border (next 3 lines)
+ add hl,bc
+ add hl,bc
+ add hl,bc
+ ld c,$03
+ add hl,bc ; this puts us past the (west) border
+ ld a,[W_MAPDATAPTR] ; tile map pointer
+ ld e,a
+ ld a,[W_MAPDATAPTR + 1]
+ ld d,a ; de = tile map pointer
+ ld a,[W_CURMAPHEIGHT]
+ ld b,a
+.rowLoop ; copy one row each iteration
+ push hl
+ ld a,[$ff8c] ; map width (without border)
+ ld c,a
+.rowInnerLoop
+ ld a,[de]
+ inc de
+ ld [hli],a
+ dec c
+ jr nz,.rowInnerLoop
+; add the map width plus the border to the base address of the current row to get the next row's address
+ pop hl
+ ld a,[$ff8b] ; map width + border
+ add l
+ ld l,a
+ jr nc,.noCarry
+ inc h
+.noCarry
+ dec b
+ jr nz,.rowLoop
+.northConnection
+ ld a,[W_MAPCONN1PTR]
+ cp a,$ff
+ jr z,.southConnection
+ call SwitchToMapRomBank
+ ld a,[wd372]
+ ld l,a
+ ld a,[wd373]
+ ld h,a
+ ld a,[wd374]
+ ld e,a
+ ld a,[wd375]
+ ld d,a
+ ld a,[wd376]
+ ld [$ff8b],a
+ ld a,[wd377]
+ ld [$ff8c],a
+ call LoadNorthSouthConnectionsTileMap
+.southConnection
+ ld a,[W_MAPCONN2PTR]
+ cp a,$ff
+ jr z,.westConnection
+ call SwitchToMapRomBank
+ ld a,[wd37d]
+ ld l,a
+ ld a,[wd37e]
+ ld h,a
+ ld a,[wd37f]
+ ld e,a
+ ld a,[wd380]
+ ld d,a
+ ld a,[wd381]
+ ld [$ff8b],a
+ ld a,[wd382]
+ ld [$ff8c],a
+ call LoadNorthSouthConnectionsTileMap
+.westConnection
+ ld a,[W_MAPCONN3PTR]
+ cp a,$ff
+ jr z,.eastConnection
+ call SwitchToMapRomBank
+ ld a,[wd388]
+ ld l,a
+ ld a,[wd389]
+ ld h,a
+ ld a,[wd38a]
+ ld e,a
+ ld a,[wd38b]
+ ld d,a
+ ld a,[wd38c]
+ ld b,a
+ ld a,[wd38d]
+ ld [$ff8b],a
+ call LoadEastWestConnectionsTileMap
+.eastConnection
+ ld a,[W_MAPCONN4PTR]
+ cp a,$ff
+ jr z,.done
+ call SwitchToMapRomBank
+ ld a,[wd393]
+ ld l,a
+ ld a,[wd394]
+ ld h,a
+ ld a,[wd395]
+ ld e,a
+ ld a,[wd396]
+ ld d,a
+ ld a,[wd397]
+ ld b,a
+ ld a,[wd398]
+ ld [$ff8b],a
+ call LoadEastWestConnectionsTileMap
+.done
+ ret
+
+LoadNorthSouthConnectionsTileMap:: ; 0ade (0:0ade)
+ ld c,$03
+.loop
+ push de
+ push hl
+ ld a,[$ff8b] ; width of connection
+ ld b,a
+.innerLoop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec b
+ jr nz,.innerLoop
+ pop hl
+ pop de
+ ld a,[$ff8c] ; width of connected map
+ add l
+ ld l,a
+ jr nc,.noCarry1
+ inc h
+.noCarry1
+ ld a,[W_CURMAPWIDTH]
+ add a,$06
+ add e
+ ld e,a
+ jr nc,.noCarry2
+ inc d
+.noCarry2
+ dec c
+ jr nz,.loop
+ ret
+
+LoadEastWestConnectionsTileMap:: ; 0b02 (0:0b02)
+ push hl
+ push de
+ ld c,$03
+.innerLoop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec c
+ jr nz,.innerLoop
+ pop de
+ pop hl
+ ld a,[$ff8b] ; width of connected map
+ add l
+ ld l,a
+ jr nc,.noCarry1
+ inc h
+.noCarry1
+ ld a,[W_CURMAPWIDTH]
+ add a,$06
+ add e
+ ld e,a
+ jr nc,.noCarry2
+ inc d
+.noCarry2
+ dec b
+ jr nz,LoadEastWestConnectionsTileMap
+ ret
+
+; function to check if there is a sign or sprite in front of the player
+; if so, it is stored in [$FF8C]
+; if not, [$FF8C] is set to 0
+IsSpriteOrSignInFrontOfPlayer:: ; 0b23 (0:0b23)
+ xor a
+ ld [$ff8c],a
+ ld a,[wd4b0] ; number of signs in the map
+ and a
+ jr z,.extendRangeOverCounter
+; if there are signs
+ predef Func_c586 ; get the coordinates in front of the player in de
+ ld hl,wd4b1 ; start of sign coordinates
+ ld a,[wd4b0] ; number of signs in the map
+ ld b,a
+ ld c,$00
+.signLoop
+ inc c
+ ld a,[hli] ; sign Y
+ cp d
+ jr z,.yCoordMatched
+ inc hl
+ jr .retry
+.yCoordMatched
+ ld a,[hli] ; sign X
+ cp e
+ jr nz,.retry
+.xCoordMatched
+; found sign
+ push hl
+ push bc
+ ld hl,wd4d1 ; start of sign text ID's
+ ld b,$00
+ dec c
+ add hl,bc
+ ld a,[hl]
+ ld [$ff8c],a ; store sign text ID
+ pop bc
+ pop hl
+ ret
+.retry
+ dec b
+ jr nz,.signLoop
+; check if the player is front of a counter in a pokemon center, pokemart, etc. and if so, extend the range at which he can talk to the NPC
+.extendRangeOverCounter
+ predef Func_c586 ; get the tile in front of the player in c
+ ld hl,W_TILESETTALKINGOVERTILES ; list of tiles that extend talking range (counter tiles)
+ ld b,$03
+ ld d,$20 ; talking range in pixels (long range)
+.counterTilesLoop
+ ld a,[hli]
+ cp c
+ jr z,IsSpriteInFrontOfPlayer2 ; jumps if the tile in front of the player is a counter tile
+ dec b
+ jr nz,.counterTilesLoop
+
+; part of the above function, but sometimes its called on its own, when signs are irrelevant
+; the caller must zero [$FF8C]
+IsSpriteInFrontOfPlayer:: ; 0b6b (0:0b6b)
+ ld d,$10 ; talking range in pixels (normal range)
+IsSpriteInFrontOfPlayer2:: ; 0b6d (0:0b6d)
+ ld bc,$3c40 ; Y and X position of player sprite
+ ld a,[wSpriteStateData1 + 9] ; direction the player is facing
+.checkIfPlayerFacingUp
+ cp a,$04
+ jr nz,.checkIfPlayerFacingDown
+; facing up
+ ld a,b
+ sub d
+ ld b,a
+ ld a,$08
+ jr .doneCheckingDirection
+.checkIfPlayerFacingDown
+ cp a,$00
+ jr nz,.checkIfPlayerFacingRight
+; facing down
+ ld a,b
+ add d
+ ld b,a
+ ld a,$04
+ jr .doneCheckingDirection
+.checkIfPlayerFacingRight
+ cp a,$0c
+ jr nz,.playerFacingLeft
+; facing right
+ ld a,c
+ add d
+ ld c,a
+ ld a,$01
+ jr .doneCheckingDirection
+.playerFacingLeft
+; facing left
+ ld a,c
+ sub d
+ ld c,a
+ ld a,$02
+.doneCheckingDirection
+ ld [wd52a],a
+ ld a,[W_NUMSPRITES] ; number of sprites
+ and a
+ ret z
+; if there are sprites
+ ld hl,wSpriteStateData1 + $10
+ ld d,a
+ ld e,$01
+.spriteLoop
+ push hl
+ ld a,[hli] ; image (0 if no sprite)
+ and a
+ jr z,.nextSprite
+ inc l
+ ld a,[hli] ; sprite visibility
+ inc a
+ jr z,.nextSprite
+ inc l
+ ld a,[hli] ; Y location
+ cp b
+ jr nz,.nextSprite
+ inc l
+ ld a,[hl] ; X location
+ cp c
+ jr z,.foundSpriteInFrontOfPlayer
+.nextSprite
+ pop hl
+ ld a,l
+ add a,$10
+ ld l,a
+ inc e
+ dec d
+ jr nz,.spriteLoop
+ ret
+.foundSpriteInFrontOfPlayer
+ pop hl
+ ld a,l
+ and a,$f0
+ inc a
+ ld l,a
+ set 7,[hl]
+ ld a,e
+ ld [$ff8c],a ; store sprite ID
+ ret
+
+; function to check if the player will jump down a ledge and check if the tile ahead is passable (when not surfing)
+; sets the carry flag if there is a collision, and unsets it if there isn't a collision
+CollisionCheckOnLand:: ; 0bd1 (0:0bd1)
+ ld a,[wd736]
+ bit 6,a ; is the player jumping?
+ jr nz,.noCollision
+; if not jumping a ledge
+ ld a,[wcd38]
+ and a
+ jr nz,.noCollision
+ ld a,[wd52a] ; the direction that the player is trying to go in
+ ld d,a
+ ld a,[wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code)
+ and d ; check if a sprite is in the direction the player is trying to go
+ jr nz,.collision
+ xor a
+ ld [$ff8c],a
+ call IsSpriteInFrontOfPlayer ; check for sprite collisions again? when does the above check fail to detect a sprite collision?
+ ld a,[$ff8c]
+ and a ; was there a sprite collision?
+ jr nz,.collision
+; if no sprite collision
+ ld hl,TilePairCollisionsLand
+ call CheckForJumpingAndTilePairCollisions
+ jr c,.collision
+ call CheckTilePassable
+ jr nc,.noCollision
+.collision
+ ld a,[wc02a]
+ cp a,(SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing
+ jr z,.setCarry
+ ld a,(SFX_02_5b - SFX_Headers_02) / 3
+ call PlaySound ; play collision sound (if it's not already playing)
+.setCarry
+ scf
+ ret
+.noCollision
+ and a
+ ret
+
+; function that checks if the tile in front of the player is passable
+; clears carry if it is, sets carry if not
+CheckTilePassable:: ; 0c10 (0:0c10)
+ predef Func_c586 ; get tile in front of player
+ ld a,[wcfc6] ; tile in front of player
+ ld c,a
+ ld hl,W_TILESETCOLLISIONPTR ; pointer to list of passable tiles
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a ; hl now points to passable tiles
+.loop
+ ld a,[hli]
+ cp a,$ff
+ jr z,.tileNotPassable
+ cp c
+ ret z
+ jr .loop
+.tileNotPassable
+ scf
+ ret
+
+; check if the player is going to jump down a small ledge
+; and check for collisions that only occur between certain pairs of tiles
+; Input: hl - address of directional collision data
+; sets carry if there is a collision and unsets carry if not
+CheckForJumpingAndTilePairCollisions:: ; 0c2a (0:0c2a)
+ push hl
+ predef Func_c586 ; get the tile in front of the player
+ push de
+ push bc
+ callba HandleLedges ; check if the player is trying to jump a ledge
+ pop bc
+ pop de
+ pop hl
+ and a
+ ld a,[wd736]
+ bit 6,a ; is the player jumping?
+ ret nz
+; if not jumping
+
+Func_c44:: ; 0c44 (0:0c44)
+ aCoord 8, 9 ; tile the player is on
+ ld [wcf0e],a
+
+CheckForTilePairCollisions:: ; 0c4a (0:0c4a)
+ ld a,[wcfc6] ; tile in front of the player
+ ld c,a
+.tilePairCollisionLoop
+ ld a,[W_CURMAPTILESET] ; tileset number
+ ld b,a
+ ld a,[hli]
+ cp a,$ff
+ jr z,.noMatch
+ cp b
+ jr z,.tilesetMatches
+ inc hl
+.retry
+ inc hl
+ jr .tilePairCollisionLoop
+.tilesetMatches
+ ld a,[wcf0e] ; tile the player is on
+ ld b,a
+ ld a,[hl]
+ cp b
+ jr z,.currentTileMatchesFirstInPair
+ inc hl
+ ld a,[hl]
+ cp b
+ jr z,.currentTileMatchesSecondInPair
+ jr .retry
+.currentTileMatchesFirstInPair
+ inc hl
+ ld a,[hl]
+ cp c
+ jr z,.foundMatch
+ jr .tilePairCollisionLoop
+.currentTileMatchesSecondInPair
+ dec hl
+ ld a,[hli]
+ cp c
+ inc hl
+ jr nz,.tilePairCollisionLoop
+.foundMatch
+ scf
+ ret
+.noMatch
+ and a
+ ret
+
+; FORMAT: tileset number, tile 1, tile 2
+; terminated by 0xFF
+; these entries indicate that the player may not cross between tile 1 and tile 2
+; it's mainly used to simulate differences in elevation
+
+TilePairCollisionsLand:: ; 0c7e (0:0c7e)
+ db CAVERN, $20, $05
+ db CAVERN, $41, $05
+ db FOREST, $30, $2E
+ db CAVERN, $2A, $05
+ db CAVERN, $05, $21
+ db FOREST, $52, $2E
+ db FOREST, $55, $2E
+ db FOREST, $56, $2E
+ db FOREST, $20, $2E
+ db FOREST, $5E, $2E
+ db FOREST, $5F, $2E
+ db $FF
+
+TilePairCollisionsWater:: ; 0ca0 (0:0ca0)
+ db FOREST, $14, $2E
+ db FOREST, $48, $2E
+ db CAVERN, $14, $05
+ db $FF
+
+; this builds a tile map from the tile block map based on the current X/Y coordinates of the player's character
+LoadCurrentMapView:: ; 0caa (0:0caa)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[W_TILESETBANK] ; tile data ROM bank
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a ; switch to ROM bank that contains tile data
+ ld a,[wd35f] ; address of upper left corner of current map view
+ ld e,a
+ ld a,[wd360]
+ ld d,a
+ ld hl,wTileMapBackup
+ ld b,$05
+.rowLoop ; each loop iteration fills in one row of tile blocks
+ push hl
+ push de
+ ld c,$06
+.rowInnerLoop ; loop to draw each tile block of the current row
+ push bc
+ push de
+ push hl
+ ld a,[de]
+ ld c,a ; tile block number
+ call DrawTileBlock
+ pop hl
+ pop de
+ pop bc
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ inc de
+ dec c
+ jr nz,.rowInnerLoop
+; update tile block map pointer to next row's address
+ pop de
+ ld a,[W_CURMAPWIDTH]
+ add a,$06
+ add e
+ ld e,a
+ jr nc,.noCarry
+ inc d
+.noCarry
+; update tile map pointer to next row's address
+ pop hl
+ ld a,$60
+ add l
+ ld l,a
+ jr nc,.noCarry2
+ inc h
+.noCarry2
+ dec b
+ jr nz,.rowLoop
+ ld hl,wTileMapBackup
+ ld bc,$0000
+.adjustForYCoordWithinTileBlock
+ ld a,[W_YBLOCKCOORD]
+ and a
+ jr z,.adjustForXCoordWithinTileBlock
+ ld bc,$0030
+ add hl,bc
+.adjustForXCoordWithinTileBlock
+ ld a,[W_XBLOCKCOORD]
+ and a
+ jr z,.copyToVisibleAreaBuffer
+ ld bc,$0002
+ add hl,bc
+.copyToVisibleAreaBuffer
+ ld de,wTileMap ; base address for the tiles that are directly transfered to VRAM during V-blank
+ ld b,$12
+.rowLoop2
+ ld c,$14
+.rowInnerLoop2
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec c
+ jr nz,.rowInnerLoop2
+ ld a,$04
+ add l
+ ld l,a
+ jr nc,.noCarry3
+ inc h
+.noCarry3
+ dec b
+ jr nz,.rowLoop2
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a ; restore previous ROM bank
+ ret
+
+AdvancePlayerSprite:: ; 0d27 (0:0d27)
+ ld a,[wSpriteStateData1 + 3] ; delta Y
+ ld b,a
+ ld a,[wSpriteStateData1 + 5] ; delta X
+ ld c,a
+ ld hl,wWalkCounter ; walking animation counter
+ dec [hl]
+ jr nz,.afterUpdateMapCoords
+; if it's the end of the animation, update the player's map coordinates
+ ld a,[W_YCOORD]
+ add b
+ ld [W_YCOORD],a
+ ld a,[W_XCOORD]
+ add c
+ ld [W_XCOORD],a
+.afterUpdateMapCoords
+ ld a,[wWalkCounter] ; walking animation counter
+ cp a,$07
+ jp nz,.scrollBackgroundAndSprites
+; if this is the first iteration of the animation
+ ld a,c
+ cp a,$01
+ jr nz,.checkIfMovingWest
+; moving east
+ ld a,[wd526]
+ ld e,a
+ and a,$e0
+ ld d,a
+ ld a,e
+ add a,$02
+ and a,$1f
+ or d
+ ld [wd526],a
+ jr .adjustXCoordWithinBlock
+.checkIfMovingWest
+ cp a,$ff
+ jr nz,.checkIfMovingSouth
+; moving west
+ ld a,[wd526]
+ ld e,a
+ and a,$e0
+ ld d,a
+ ld a,e
+ sub a,$02
+ and a,$1f
+ or d
+ ld [wd526],a
+ jr .adjustXCoordWithinBlock
+.checkIfMovingSouth
+ ld a,b
+ cp a,$01
+ jr nz,.checkIfMovingNorth
+; moving south
+ ld a,[wd526]
+ add a,$40
+ ld [wd526],a
+ jr nc,.adjustXCoordWithinBlock
+ ld a,[wd527]
+ inc a
+ and a,$03
+ or a,$98
+ ld [wd527],a
+ jr .adjustXCoordWithinBlock
+.checkIfMovingNorth
+ cp a,$ff
+ jr nz,.adjustXCoordWithinBlock
+; moving north
+ ld a,[wd526]
+ sub a,$40
+ ld [wd526],a
+ jr nc,.adjustXCoordWithinBlock
+ ld a,[wd527]
+ dec a
+ and a,$03
+ or a,$98
+ ld [wd527],a
+.adjustXCoordWithinBlock
+ ld a,c
+ and a
+ jr z,.pointlessJump ; mistake?
+.pointlessJump
+ ld hl,W_XBLOCKCOORD
+ ld a,[hl]
+ add c
+ ld [hl],a
+ cp a,$02
+ jr nz,.checkForMoveToWestBlock
+; moved into the tile block to the east
+ xor a
+ ld [hl],a
+ ld hl,wd4e3
+ inc [hl]
+ ld de,wd35f
+ call MoveTileBlockMapPointerEast
+ jr .updateMapView
+.checkForMoveToWestBlock
+ cp a,$ff
+ jr nz,.adjustYCoordWithinBlock
+; moved into the tile block to the west
+ ld a,$01
+ ld [hl],a
+ ld hl,wd4e3
+ dec [hl]
+ ld de,wd35f
+ call MoveTileBlockMapPointerWest
+ jr .updateMapView
+.adjustYCoordWithinBlock
+ ld hl,W_YBLOCKCOORD
+ ld a,[hl]
+ add b
+ ld [hl],a
+ cp a,$02
+ jr nz,.checkForMoveToNorthBlock
+; moved into the tile block to the south
+ xor a
+ ld [hl],a
+ ld hl,wd4e2
+ inc [hl]
+ ld de,wd35f
+ ld a,[W_CURMAPWIDTH]
+ call MoveTileBlockMapPointerSouth
+ jr .updateMapView
+.checkForMoveToNorthBlock
+ cp a,$ff
+ jr nz,.updateMapView
+; moved into the tile block to the north
+ ld a,$01
+ ld [hl],a
+ ld hl,wd4e2
+ dec [hl]
+ ld de,wd35f
+ ld a,[W_CURMAPWIDTH]
+ call MoveTileBlockMapPointerNorth
+.updateMapView
+ call LoadCurrentMapView
+ ld a,[wSpriteStateData1 + 3] ; delta Y
+ cp a,$01
+ jr nz,.checkIfMovingNorth2
+; if moving south
+ call ScheduleSouthRowRedraw
+ jr .scrollBackgroundAndSprites
+.checkIfMovingNorth2
+ cp a,$ff
+ jr nz,.checkIfMovingEast2
+; if moving north
+ call ScheduleNorthRowRedraw
+ jr .scrollBackgroundAndSprites
+.checkIfMovingEast2
+ ld a,[wSpriteStateData1 + 5] ; delta X
+ cp a,$01
+ jr nz,.checkIfMovingWest2
+; if moving east
+ call ScheduleEastColumnRedraw
+ jr .scrollBackgroundAndSprites
+.checkIfMovingWest2
+ cp a,$ff
+ jr nz,.scrollBackgroundAndSprites
+; if moving west
+ call ScheduleWestColumnRedraw
+.scrollBackgroundAndSprites
+ ld a,[wSpriteStateData1 + 3] ; delta Y
+ ld b,a
+ ld a,[wSpriteStateData1 + 5] ; delta X
+ ld c,a
+ sla b
+ sla c
+ ld a,[$ffaf]
+ add b
+ ld [$ffaf],a ; update background scroll Y
+ ld a,[$ffae]
+ add c
+ ld [$ffae],a ; update background scroll X
+; shift all the sprites in the direction opposite of the player's motion
+; so that the player appears to move relative to them
+ ld hl,wSpriteStateData1 + $14
+ ld a,[W_NUMSPRITES] ; number of sprites
+ and a ; are there any sprites?
+ jr z,.done
+ ld e,a
+.spriteShiftLoop
+ ld a,[hl]
+ sub b
+ ld [hli],a
+ inc l
+ ld a,[hl]
+ sub c
+ ld [hl],a
+ ld a,$0e
+ add l
+ ld l,a
+ dec e
+ jr nz,.spriteShiftLoop
+.done
+ ret
+
+; the following four functions are used to move the pointer to the upper left
+; corner of the tile block map in the direction of motion
+
+MoveTileBlockMapPointerEast:: ; 0e65 (0:0e65)
+ ld a,[de]
+ add a,$01
+ ld [de],a
+ ret nc
+ inc de
+ ld a,[de]
+ inc a
+ ld [de],a
+ ret
+
+MoveTileBlockMapPointerWest:: ; 0e6f (0:0e6f)
+ ld a,[de]
+ sub a,$01
+ ld [de],a
+ ret nc
+ inc de
+ ld a,[de]
+ dec a
+ ld [de],a
+ ret
+
+MoveTileBlockMapPointerSouth:: ; 0e79 (0:0e79)
+ add a,$06
+ ld b,a
+ ld a,[de]
+ add b
+ ld [de],a
+ ret nc
+ inc de
+ ld a,[de]
+ inc a
+ ld [de],a
+ ret
+
+MoveTileBlockMapPointerNorth:: ; 0e85 (0:0e85)
+ add a,$06
+ ld b,a
+ ld a,[de]
+ sub b
+ ld [de],a
+ ret nc
+ inc de
+ ld a,[de]
+ dec a
+ ld [de],a
+ ret
+
+; the following 6 functions are used to tell the V-blank handler to redraw
+; the portion of the map that was newly exposed due to the player's movement
+
+ScheduleNorthRowRedraw:: ; 0e91 (0:0e91)
+ hlCoord 0, 0
+ call ScheduleRowRedrawHelper
+ ld a,[wd526]
+ ld [H_SCREENEDGEREDRAWADDR],a
+ ld a,[wd527]
+ ld [H_SCREENEDGEREDRAWADDR + 1],a
+ ld a,REDRAWROW
+ ld [H_SCREENEDGEREDRAW],a
+ ret
+
+ScheduleRowRedrawHelper:: ; 0ea6 (0:0ea6)
+ ld de,wScreenEdgeTiles
+ ld c,$28
+.loop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec c
+ jr nz,.loop
+ ret
+
+ScheduleSouthRowRedraw:: ; 0eb2 (0:0eb2)
+ hlCoord 0, 16
+ call ScheduleRowRedrawHelper
+ ld a,[wd526]
+ ld l,a
+ ld a,[wd527]
+ ld h,a
+ ld bc,$0200
+ add hl,bc
+ ld a,h
+ and a,$03
+ or a,$98
+ ld [H_SCREENEDGEREDRAWADDR + 1],a
+ ld a,l
+ ld [H_SCREENEDGEREDRAWADDR],a
+ ld a,REDRAWROW
+ ld [H_SCREENEDGEREDRAW],a
+ ret
+
+ScheduleEastColumnRedraw:: ; 0ed3 (0:0ed3)
+ hlCoord 18, 0
+ call ScheduleColumnRedrawHelper
+ ld a,[wd526]
+ ld c,a
+ and a,$e0
+ ld b,a
+ ld a,c
+ add a,18
+ and a,$1f
+ or b
+ ld [H_SCREENEDGEREDRAWADDR],a
+ ld a,[wd527]
+ ld [H_SCREENEDGEREDRAWADDR + 1],a
+ ld a,REDRAWCOL
+ ld [H_SCREENEDGEREDRAW],a
+ ret
+
+ScheduleColumnRedrawHelper:: ; 0ef2 (0:0ef2)
+ ld de,wScreenEdgeTiles
+ ld c,$12
+.loop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld a,[hl]
+ ld [de],a
+ inc de
+ ld a,19
+ add l
+ ld l,a
+ jr nc,.noCarry
+ inc h
+.noCarry
+ dec c
+ jr nz,.loop
+ ret
+
+ScheduleWestColumnRedraw:: ; 0f08 (0:0f08)
+ hlCoord 0, 0
+ call ScheduleColumnRedrawHelper
+ ld a,[wd526]
+ ld [H_SCREENEDGEREDRAWADDR],a
+ ld a,[wd527]
+ ld [H_SCREENEDGEREDRAWADDR + 1],a
+ ld a,REDRAWCOL
+ ld [H_SCREENEDGEREDRAW],a
+ ret
+
+; function to write the tiles that make up a tile block to memory
+; Input: c = tile block ID, hl = destination address
+DrawTileBlock:: ; 0f1d (0:0f1d)
+ push hl
+ ld a,[W_TILESETBLOCKSPTR] ; pointer to tiles
+ ld l,a
+ ld a,[W_TILESETBLOCKSPTR + 1]
+ ld h,a
+ ld a,c
+ swap a
+ ld b,a
+ and a,$f0
+ ld c,a
+ ld a,b
+ and a,$0f
+ ld b,a ; bc = tile block ID * 0x10
+ add hl,bc
+ ld d,h
+ ld e,l ; de = address of the tile block's tiles
+ pop hl
+ ld c,$04 ; 4 loop iterations
+.loop ; each loop iteration, write 4 tile numbers
+ 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 [hl],a
+ inc de
+ ld bc,$0015
+ add hl,bc
+ pop bc
+ dec c
+ jr nz,.loop
+ ret
+
+; function to update joypad state and simulate button presses
+JoypadOverworld:: ; 0f4d (0:0f4d)
+ xor a
+ ld [wSpriteStateData1 + 3],a
+ ld [wSpriteStateData1 + 5],a
+ call RunMapScript
+ call Joypad
+ ld a,[W_FLAGS_D733]
+ bit 3,a ; check if a trainer wants a challenge
+ jr nz,.notForcedDownwards
+ ld a,[W_CURMAP]
+ cp a,ROUTE_17 ; Cycling Road
+ jr nz,.notForcedDownwards
+ ld a,[hJoyHeld] ; current joypad state
+ and a,%11110011 ; bit mask for all directions and A/B
+ jr nz,.notForcedDownwards
+ ld a,%10000000 ; down pressed
+ ld [hJoyHeld],a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press
+.notForcedDownwards
+ ld a,[wd730]
+ bit 7,a
+ ret z
+; if simulating button presses
+ ld a,[hJoyHeld] ; current joypad state
+ ld b,a
+ ld a,[wcd3b] ; bit mask for button presses that override simulated ones
+ and b
+ ret nz ; return if the simulated button presses are overridden
+ ld hl,wcd38 ; index of current simulated button press
+ dec [hl]
+ ld a,[hl]
+ cp a,$ff
+ jr z,.doneSimulating ; if the end of the simulated button presses has been reached
+ ld hl,wccd3 ; base address of simulated button presses
+; add offset to base address
+ add l
+ ld l,a
+ jr nc,.noCarry
+ inc h
+.noCarry
+ ld a,[hl]
+ ld [hJoyHeld],a ; store simulated button press in joypad state
+ and a
+ ret nz
+ ld [hJoyPressed],a
+ ld [hJoyReleased],a
+ ret
+; if done simulating button presses
+.doneSimulating
+ xor a
+ ld [wcd3a],a
+ ld [wcd38],a
+ ld [wccd3],a
+ ld [wJoyIgnore],a
+ ld [hJoyHeld],a
+ ld hl,wd736
+ ld a,[hl]
+ and a,$f8
+ ld [hl],a
+ ld hl,wd730
+ res 7,[hl]
+ ret
+
+; function to check the tile ahead to determine if the character should get on land or keep surfing
+; sets carry if there is a collision and clears carry otherwise
+; It seems that this function has a bug in it, but due to luck, it doesn't
+; show up. After detecting a sprite collision, it jumps to the code that
+; checks if the next tile is passable instead of just directly jumping to the
+; "collision detected" code. However, it doesn't store the next tile in c,
+; so the old value of c is used. 2429 is always called before this function,
+; and 2429 always sets c to 0xF0. There is no 0xF0 background tile, so it
+; is considered impassable and it is detected as a collision.
+CollisionCheckOnWater:: ; 0fb7 (0:0fb7)
+ ld a,[wd730]
+ bit 7,a
+ jp nz,.noCollision ; return and clear carry if button presses are being simulated
+ ld a,[wd52a] ; the direction that the player is trying to go in
+ ld d,a
+ ld a,[wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code)
+ and d ; check if a sprite is in the direction the player is trying to go
+ jr nz,.checkIfNextTileIsPassable ; bug?
+ ld hl,TilePairCollisionsWater
+ call CheckForJumpingAndTilePairCollisions
+ jr c,.collision
+ predef Func_c586 ; get tile in front of player (puts it in c and [wcfc6])
+ ld a,[wcfc6] ; tile in front of player
+ cp a,$14 ; water tile
+ jr z,.noCollision ; keep surfing if it's a water tile
+ cp a,$32 ; either the left tile of the S.S. Anne boarding platform or the tile on eastern coastlines (depending on the current tileset)
+ jr z,.checkIfVermilionDockTileset
+ cp a,$48 ; tile on right on coast lines in Safari Zone
+ jr z,.noCollision ; keep surfing
+; check if the [land] tile in front of the player is passable
+.checkIfNextTileIsPassable
+ ld hl,W_TILESETCOLLISIONPTR ; pointer to list of passable tiles
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a
+.loop
+ ld a,[hli]
+ cp a,$ff
+ jr z,.collision
+ cp c
+ jr z,.stopSurfing ; stop surfing if the tile is passable
+ jr .loop
+.collision
+ ld a,[wc02a]
+ cp a,(SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing
+ jr z,.setCarry
+ ld a,(SFX_02_5b - SFX_Headers_02) / 3
+ call PlaySound ; play collision sound (if it's not already playing)
+.setCarry
+ scf
+ jr .done
+.noCollision
+ and a
+.done
+ ret
+.stopSurfing
+ xor a
+ ld [wd700],a
+ call LoadPlayerSpriteGraphics
+ call Func_2307
+ jr .noCollision
+.checkIfVermilionDockTileset
+ ld a, [W_CURMAPTILESET] ; tileset
+ cp SHIP_PORT ; Vermilion Dock tileset
+ jr nz, .noCollision ; keep surfing if it's not the boarding platform tile
+ jr .stopSurfing ; if it is the boarding platform tile, stop surfing
+
+; function to run the current map's script
+RunMapScript:: ; 101b (0:101b)
+ push hl
+ push de
+ push bc
+ callba Func_f225 ; check if the player is pushing a boulder
+ ld a,[wFlags_0xcd60]
+ bit 1,a ; is the player pushing a boulder?
+ jr z,.afterBoulderEffect
+ callba Func_f2b5 ; displays dust effect when pushing a boulder
+.afterBoulderEffect
+ pop bc
+ pop de
+ pop hl
+ call Func_310e
+ ld a,[W_CURMAP] ; current map number
+ call SwitchToMapRomBank ; change to the ROM bank the map's data is in
+ ld hl,W_MAPSCRIPTPTR
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a
+ ld de,.return
+ push de
+ jp [hl] ; jump to script
+.return
+ ret
+
+LoadWalkingPlayerSpriteGraphics:: ; 104d (0:104d)
+ ld de,RedSprite ; $4180
+ ld hl,vNPCSprites
+ jr LoadPlayerSpriteGraphicsCommon
+
+LoadSurfingPlayerSpriteGraphics:: ; 1055 (0:1055)
+ ld de,SeelSprite
+ ld hl,vNPCSprites
+ jr LoadPlayerSpriteGraphicsCommon
+
+LoadBikePlayerSpriteGraphics:: ; 105d (0:105d)
+ ld de,RedCyclingSprite
+ ld hl,vNPCSprites
+
+LoadPlayerSpriteGraphicsCommon:: ; 1063 (0:1063)
+ push de
+ push hl
+ ld bc,(BANK(RedSprite) << 8) + $0c
+ call CopyVideoData
+ pop hl
+ pop de
+ ld a,$c0
+ add e
+ ld e,a
+ jr nc,.noCarry
+ inc d
+.noCarry
+ set 3,h
+ ld bc,$050c
+ jp CopyVideoData
+
+; function to load data from the map header
+LoadMapHeader:: ; 107c (0:107c)
+ callba Func_f113
+ ld a,[W_CURMAPTILESET]
+ ld [wd119],a
+ ld a,[W_CURMAP]
+ call SwitchToMapRomBank
+ ld a,[W_CURMAPTILESET]
+ ld b,a
+ res 7,a
+ ld [W_CURMAPTILESET],a
+ ld [$ff8b],a
+ bit 7,b
+ ret nz
+ ld hl,MapHeaderPointers
+ ld a,[W_CURMAP]
+ sla a
+ jr nc,.noCarry1
+ inc h
+.noCarry1
+ add l
+ ld l,a
+ jr nc,.noCarry2
+ inc h
+.noCarry2
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a ; hl = base of map header
+; copy the first 10 bytes (the fixed area) of the map data to D367-D370
+ ld de,W_CURMAPTILESET
+ ld c,$0a
+.copyFixedHeaderLoop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec c
+ jr nz,.copyFixedHeaderLoop
+; initialize all the connected maps to disabled at first, before loading the actual values
+ ld a,$ff
+ ld [W_MAPCONN1PTR],a
+ ld [W_MAPCONN2PTR],a
+ ld [W_MAPCONN3PTR],a
+ ld [W_MAPCONN4PTR],a
+; copy connection data (if any) to WRAM
+ ld a,[W_MAPCONNECTIONS]
+ ld b,a
+.checkNorth
+ bit 3,b
+ jr z,.checkSouth
+ ld de,W_MAPCONN1PTR
+ call CopyMapConnectionHeader
+.checkSouth
+ bit 2,b
+ jr z,.checkWest
+ ld de,W_MAPCONN2PTR
+ call CopyMapConnectionHeader
+.checkWest
+ bit 1,b
+ jr z,.checkEast
+ ld de,W_MAPCONN3PTR
+ call CopyMapConnectionHeader
+.checkEast
+ bit 0,b
+ jr z,.getObjectDataPointer
+ ld de,W_MAPCONN4PTR
+ call CopyMapConnectionHeader
+.getObjectDataPointer
+ ld a,[hli]
+ ld [wd3a9],a
+ ld a,[hli]
+ ld [wd3aa],a
+ push hl
+ ld a,[wd3a9]
+ ld l,a
+ ld a,[wd3aa]
+ ld h,a ; hl = base of object data
+ ld de,wd3ad ; background tile ID
+ ld a,[hli]
+ ld [de],a ; save background tile ID
+.loadWarpData
+ ld a,[hli] ; number of warps
+ ld [wd3ae],a ; save the number of warps
+ and a ; are there any warps?
+ jr z,.loadSignData ; if not, skip this
+ ld c,a
+ ld de,wd3af ; base address of warps
+.warpLoop ; one warp per loop iteration
+ ld b,$04
+.warpInnerLoop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec b
+ jr nz,.warpInnerLoop
+ dec c
+ jr nz,.warpLoop
+.loadSignData
+ ld a,[hli] ; number of signs
+ ld [wd4b0],a ; save the number of signs
+ and a ; are there any signs?
+ jr z,.loadSpriteData ; if not, skip this
+ ld c,a
+ ld de,wd4d1 ; base address of sign text IDs
+ ld a,d
+ ld [$ff95],a
+ ld a,e
+ ld [$ff96],a
+ ld de,wd4b1 ; base address of sign coordinates
+.signLoop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld a,[hli]
+ ld [de],a
+ inc de
+ push de
+ ld a,[$ff95]
+ ld d,a
+ ld a,[$ff96]
+ ld e,a
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld a,d
+ ld [$ff95],a
+ ld a,e
+ ld [$ff96],a
+ pop de
+ dec c
+ jr nz,.signLoop
+.loadSpriteData
+ ld a,[wd72e]
+ bit 5,a ; did a battle happen immediately before this?
+ jp nz,.finishUp ; if so, skip this because battles don't destroy this data
+ ld a,[hli]
+ ld [W_NUMSPRITES],a ; save the number of sprites
+ push hl
+; zero C110-C1FF and C210-C2FF
+ ld hl,wSpriteStateData1 + $10
+ ld de,wSpriteStateData2 + $10
+ xor a
+ ld b,$f0
+.zeroSpriteDataLoop
+ ld [hli],a
+ ld [de],a
+ inc e
+ dec b
+ jr nz,.zeroSpriteDataLoop
+; initialize all C100-C1FF sprite entries to disabled (other than player's)
+ ld hl,wSpriteStateData1 + $12
+ ld de,$0010
+ ld c,$0f
+.disableSpriteEntriesLoop
+ ld [hl],$ff
+ add hl,de
+ dec c
+ jr nz,.disableSpriteEntriesLoop
+ pop hl
+ ld de,wSpriteStateData1 + $10
+ ld a,[W_NUMSPRITES] ; number of sprites
+ and a ; are there any sprites?
+ jp z,.finishUp ; if there are no sprites, skip the rest
+ ld b,a
+ ld c,$00
+.loadSpriteLoop
+ ld a,[hli]
+ ld [de],a ; store picture ID at C1X0
+ inc d
+ ld a,$04
+ add e
+ ld e,a
+ ld a,[hli]
+ ld [de],a ; store Y position at C2X4
+ inc e
+ ld a,[hli]
+ ld [de],a ; store X position at C2X5
+ inc e
+ ld a,[hli]
+ ld [de],a ; store movement byte 1 at C2X6
+ ld a,[hli]
+ ld [$ff8d],a ; save movement byte 2
+ ld a,[hli]
+ ld [$ff8e],a ; save text ID and flags byte
+ push bc
+ push hl
+ ld b,$00
+ ld hl,W_MAPSPRITEDATA
+ add hl,bc
+ ld a,[$ff8d]
+ ld [hli],a ; store movement byte 2 in byte 0 of sprite entry
+ ld a,[$ff8e]
+ ld [hl],a ; this appears pointless, since the value is overwritten immediately after
+ ld a,[$ff8e]
+ ld [$ff8d],a
+ and a,$3f
+ ld [hl],a ; store text ID in byte 1 of sprite entry
+ pop hl
+ ld a,[$ff8d]
+ bit 6,a
+ jr nz,.trainerSprite
+ bit 7,a
+ jr nz,.itemBallSprite
+ jr .regularSprite
+.trainerSprite
+ ld a,[hli]
+ ld [$ff8d],a ; save trainer class
+ ld a,[hli]
+ ld [$ff8e],a ; save trainer number (within class)
+ push hl
+ ld hl,W_MAPSPRITEEXTRADATA
+ add hl,bc
+ ld a,[$ff8d]
+ ld [hli],a ; store trainer class in byte 0 of the entry
+ ld a,[$ff8e]
+ ld [hl],a ; store trainer number in byte 1 of the entry
+ pop hl
+ jr .nextSprite
+.itemBallSprite
+ ld a,[hli]
+ ld [$ff8d],a ; save item number
+ push hl
+ ld hl,W_MAPSPRITEEXTRADATA
+ add hl,bc
+ ld a,[$ff8d]
+ ld [hli],a ; store item number in byte 0 of the entry
+ xor a
+ ld [hl],a ; zero byte 1, since it is not used
+ pop hl
+ jr .nextSprite
+.regularSprite
+ push hl
+ ld hl,W_MAPSPRITEEXTRADATA
+ add hl,bc
+; zero both bytes, since regular sprites don't use this extra space
+ xor a
+ ld [hli],a
+ ld [hl],a
+ pop hl
+.nextSprite
+ pop bc
+ dec d
+ ld a,$0a
+ add e
+ ld e,a
+ inc c
+ inc c
+ dec b
+ jp nz,.loadSpriteLoop
+.finishUp
+ predef Func_c754 ; load tileset data
+ callab LoadWildData ; load wild pokemon data
+ pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
+ ld a,[W_CURMAPHEIGHT] ; map height in 4x4 tile blocks
+ add a ; double it
+ ld [wd524],a ; store map height in 2x2 tile blocks
+ ld a,[W_CURMAPWIDTH] ; map width in 4x4 tile blocks
+ add a ; double it
+ ld [wd525],a ; map width in 2x2 tile blocks
+ ld a,[W_CURMAP]
+ ld c,a
+ ld b,$00
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a, BANK(MapSongBanks)
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ld hl, MapSongBanks
+ add hl,bc
+ add hl,bc
+ ld a,[hli]
+ ld [wd35b],a ; music 1
+ ld a,[hl]
+ ld [wd35c],a ; music 2
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; function to copy map connection data from ROM to WRAM
+; Input: hl = source, de = destination
+CopyMapConnectionHeader:: ; 1238 (0:1238)
+ ld c,$0b
+.loop
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec c
+ jr nz,.loop
+ ret
+
+; function to load map data
+LoadMapData:: ; 1241 (0:1241)
+ ld a,[H_LOADEDROMBANK]
+ push af
+ call DisableLCD
+ ld a,$98
+ ld [wd527],a
+ xor a
+ ld [wd526],a
+ ld [$ffaf],a
+ ld [$ffae],a
+ ld [wWalkCounter],a
+ ld [wd119],a
+ ld [wd11a],a
+ ld [W_SPRITESETID],a
+ call LoadTextBoxTilePatterns
+ call LoadMapHeader
+ callba InitMapSprites ; load tile pattern data for sprites
+ call LoadTileBlockMap
+ call LoadTilesetTilePatternData
+ call LoadCurrentMapView
+; copy current map view to VRAM
+ ld hl,wTileMap
+ ld de,vBGMap0
+ ld b,18
+.vramCopyLoop
+ ld c,20
+.vramCopyInnerLoop
+ ld a,[hli]
+ ld [de],a
+ inc e
+ dec c
+ jr nz,.vramCopyInnerLoop
+ ld a,32 - 20
+ add e
+ ld e,a
+ jr nc,.noCarry
+ inc d
+.noCarry
+ dec b
+ jr nz,.vramCopyLoop
+ ld a,$01
+ ld [wcfcb],a
+ call EnableLCD
+ ld b,$09
+ call GoPAL_SET
+ call LoadPlayerSpriteGraphics
+ ld a,[wd732]
+ and a,$18 ; did the player fly or teleport in?
+ jr nz,.restoreRomBank
+ ld a,[W_FLAGS_D733]
+ bit 1,a
+ jr nz,.restoreRomBank
+ call Func_235f ; music related
+ call Func_2312 ; music related
+.restoreRomBank
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ ret
+
+; function to switch to the ROM bank that a map is stored in
+; Input: a = map number
+SwitchToMapRomBank:: ; 12bc (0:12bc)
+ push hl
+ push bc
+ ld c,a
+ ld b,$00
+ ld a,Bank(MapHeaderBanks)
+ call BankswitchHome ; switch to ROM bank 3
+ ld hl,MapHeaderBanks
+ add hl,bc
+ ld a,[hl]
+ ld [$ffe8],a ; save map ROM bank
+ call BankswitchBack
+ ld a,[$ffe8]
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a ; switch to map ROM bank
+ pop bc
+ pop hl
+ ret
+
+Func_12da:: ; 12da (0:12da)
+ ld a, $1e
+ ld [wd13a], a
+ ld hl, wd730
+ ld a, [hl]
+ or $26
+ ld [hl], a
+ ret
+
+Func_12e7:: ; 12e7 (0:12e7)
+ ld hl, wd728
+ res 0, [hl]
+ ret
+
+ForceBikeOrSurf:: ; 12ed (0:12ed)
+ ld b, BANK(RedSprite)
+ ld hl, LoadPlayerSpriteGraphics
+ call Bankswitch
+ jp Func_2307 ; update map/player state?
--- /dev/null
+++ b/home/pic.asm
@@ -1,0 +1,591 @@
+; bankswitches and runs _UncompressSpriteData
+; bank is given in a, sprite input stream is pointed to in W_SPRITEINPUTPTR
+UncompressSpriteData:: ; 24fd (0:24fd)
+ ld b, a
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, b
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ld a, $a
+ ld [$0], a
+ xor a
+ ld [$4000], a
+ call _UncompressSpriteData
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+; initializes necessary data to load a sprite and runs UncompressSpriteDataLoop
+_UncompressSpriteData:: ; 251a (0:251a)
+ ld hl, S_SPRITEBUFFER1
+ ld c, (2*SPRITEBUFFERSIZE) % $100
+ ld b, (2*SPRITEBUFFERSIZE) / $100
+ xor a
+ call FillMemory ; clear sprite buffer 1 and 2
+ ld a, $1
+ ld [W_SPRITEINPUTBITCOUNTER], a
+ ld a, $3
+ ld [W_SPRITEOUTPUTBITOFFSET], a
+ xor a
+ ld [W_SPRITECURPOSX], a
+ ld [W_SPRITECURPOSY], a
+ ld [W_SPRITELOADFLAGS], a ; wd0a8
+ call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels)
+ ld b, a
+ and $f
+ add a
+ add a
+ add a
+ ld [W_SPRITEHEIGHT], a
+ ld a, b
+ swap a
+ and $f
+ add a
+ add a
+ add a
+ ld [W_SPRITEWITDH], a
+ call ReadNextInputBit
+ ld [W_SPRITELOADFLAGS], a ; initialite bit1 to 0 and bit0 to the first input bit
+ ; this will load two chunks of data to S_SPRITEBUFFER1 and S_SPRITEBUFFER2
+ ; bit 0 decides in which one the first chunk is placed
+ ; fall through
+
+; uncompresses a chunk from the sprite input data stream (pointed to at wd0da) into S_SPRITEBUFFER1 or S_SPRITEBUFFER2
+; each chunk is a 1bpp sprite. A 2bpp sprite consist of two chunks which are merged afterwards
+; note that this is an endless loop which is terminated during a call to MoveToNextBufferPosition by manipulating the stack
+UncompressSpriteDataLoop:: ; 2556 (0:2556)
+ ld hl, S_SPRITEBUFFER1
+ ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ bit 0, a
+ jr z, .useSpriteBuffer1 ; check which buffer to use
+ ld hl, S_SPRITEBUFFER2
+.useSpriteBuffer1
+ call StoreSpriteOutputPointer
+ ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ bit 1, a
+ jr z, .startDecompression ; check if last iteration
+ call ReadNextInputBit ; if last chunk, read 1-2 bit unpacking mode
+ and a
+ jr z, .unpackingMode0 ; 0 -> mode 0
+ call ReadNextInputBit ; 1 0 -> mode 1
+ inc a ; 1 1 -> mode 2
+.unpackingMode0
+ ld [W_SPRITEUNPACKMODE], a
+.startDecompression
+ call ReadNextInputBit
+ and a
+ jr z, .readRLEncodedZeros ; if first bit is 0, the input starts with zeroes, otherwise with (non-zero) input
+.readNextInput
+ call ReadNextInputBit
+ ld c, a
+ call ReadNextInputBit
+ sla c
+ or c ; read next two bits into c
+ and a
+ jr z, .readRLEncodedZeros ; 00 -> RLEncoded zeroes following
+ call WriteSpriteBitsToBuffer ; otherwise write input to output and repeat
+ call MoveToNextBufferPosition
+ jr .readNextInput
+.readRLEncodedZeros
+ ld c, $0 ; number of zeroes it length encoded, the number
+.countConsecutiveOnesLoop ; of consecutive ones determines the number of bits the number has
+ call ReadNextInputBit
+ and a
+ jr z, .countConsecutiveOnesFinished
+ inc c
+ jr .countConsecutiveOnesLoop
+.countConsecutiveOnesFinished
+ ld a, c
+ add a
+ ld hl, LengthEncodingOffsetList
+ add l
+ ld l, a
+ jr nc, .noCarry
+ inc h
+.noCarry
+ ld a, [hli] ; read offset that is added to the number later on
+ ld e, a ; adding an offset of 2^length - 1 makes every integer uniquely
+ ld d, [hl] ; representable in the length encoding and saves bits
+ push de
+ inc c
+ ld e, $0
+ ld d, e
+.readNumberOfZerosLoop ; reads the next c+1 bits of input
+ call ReadNextInputBit
+ or e
+ ld e, a
+ dec c
+ jr z, .readNumberOfZerosDone
+ sla e
+ rl d
+ jr .readNumberOfZerosLoop
+.readNumberOfZerosDone
+ pop hl ; add the offset
+ add hl, de
+ ld e, l
+ ld d, h
+.writeZerosLoop
+ ld b, e
+ xor a ; write 00 to buffer
+ call WriteSpriteBitsToBuffer
+ ld e, b
+ call MoveToNextBufferPosition
+ dec de
+ ld a, d
+ and a
+ jr nz, .continueLoop
+ ld a, e
+ and a
+.continueLoop
+ jr nz, .writeZerosLoop
+ jr .readNextInput
+
+; moves output pointer to next position
+; also cancels the calling function if the all output is done (by removing the return pointer from stack)
+; and calls postprocessing functions according to the unpack mode
+MoveToNextBufferPosition:: ; 25d8 (0:25d8)
+ ld a, [W_SPRITEHEIGHT]
+ ld b, a
+ ld a, [W_SPRITECURPOSY]
+ inc a
+ cp b
+ jr z, .curColumnDone
+ ld [W_SPRITECURPOSY], a
+ ld a, [W_SPRITEOUTPUTPTR]
+ inc a
+ ld [W_SPRITEOUTPUTPTR], a
+ ret nz
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ inc a
+ ld [W_SPRITEOUTPUTPTR+1], a
+ ret
+.curColumnDone
+ xor a
+ ld [W_SPRITECURPOSY], a
+ ld a, [W_SPRITEOUTPUTBITOFFSET]
+ and a
+ jr z, .bitOffsetsDone
+ dec a
+ ld [W_SPRITEOUTPUTBITOFFSET], a
+ ld hl, W_SPRITEOUTPUTPTRCACHED
+ ld a, [hli]
+ ld [W_SPRITEOUTPUTPTR], a
+ ld a, [hl]
+ ld [W_SPRITEOUTPUTPTR+1], a
+ ret
+.bitOffsetsDone
+ ld a, $3
+ ld [W_SPRITEOUTPUTBITOFFSET], a
+ ld a, [W_SPRITECURPOSX]
+ add $8
+ ld [W_SPRITECURPOSX], a
+ ld b, a
+ ld a, [W_SPRITEWITDH]
+ cp b
+ jr z, .allColumnsDone
+ ld a, [W_SPRITEOUTPUTPTR]
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ ld h, a
+ inc hl
+ jp StoreSpriteOutputPointer
+.allColumnsDone
+ pop hl
+ xor a
+ ld [W_SPRITECURPOSX], a
+ ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ bit 1, a
+ jr nz, .done ; test if there is one more sprite to go
+ xor $1
+ set 1, a
+ ld [W_SPRITELOADFLAGS], a ; wd0a8
+ jp UncompressSpriteDataLoop
+.done
+ jp UnpackSprite
+
+; writes 2 bits (from a) to the output buffer (pointed to from W_SPRITEOUTPUTPTR)
+WriteSpriteBitsToBuffer:: ; 2649 (0:2649)
+ ld e, a
+ ld a, [W_SPRITEOUTPUTBITOFFSET]
+ and a
+ jr z, .offset0
+ cp $2
+ jr c, .offset1
+ jr z, .offset2
+ rrc e ; offset 3
+ rrc e
+ jr .offset0
+.offset1
+ sla e
+ sla e
+ jr .offset0
+.offset2
+ swap e
+.offset0
+ ld a, [W_SPRITEOUTPUTPTR]
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ ld h, a
+ ld a, [hl]
+ or e
+ ld [hl], a
+ ret
+
+; reads next bit from input stream and returns it in a
+ReadNextInputBit:: ; 2670 (0:2670)
+ ld a, [W_SPRITEINPUTBITCOUNTER]
+ dec a
+ jr nz, .curByteHasMoreBitsToRead
+ call ReadNextInputByte
+ ld [W_SPRITEINPUTCURBYTE], a
+ ld a, $8
+.curByteHasMoreBitsToRead
+ ld [W_SPRITEINPUTBITCOUNTER], a
+ ld a, [W_SPRITEINPUTCURBYTE]
+ rlca
+ ld [W_SPRITEINPUTCURBYTE], a
+ and $1
+ ret
+
+; reads next byte from input stream and returns it in a
+ReadNextInputByte:: ; 268b (0:268b)
+ ld a, [W_SPRITEINPUTPTR]
+ ld l, a
+ ld a, [W_SPRITEINPUTPTR+1]
+ ld h, a
+ ld a, [hli]
+ ld b, a
+ ld a, l
+ ld [W_SPRITEINPUTPTR], a
+ ld a, h
+ ld [W_SPRITEINPUTPTR+1], a
+ ld a, b
+ ret
+
+; the nth item is 2^n - 1
+LengthEncodingOffsetList:: ; 269f (0:269f)
+ dw %0000000000000001
+ dw %0000000000000011
+ dw %0000000000000111
+ dw %0000000000001111
+ dw %0000000000011111
+ dw %0000000000111111
+ dw %0000000001111111
+ dw %0000000011111111
+ dw %0000000111111111
+ dw %0000001111111111
+ dw %0000011111111111
+ dw %0000111111111111
+ dw %0001111111111111
+ dw %0011111111111111
+ dw %0111111111111111
+ dw %1111111111111111
+
+; unpacks the sprite data depending on the unpack mode
+UnpackSprite:: ; 26bf (0:26bf)
+ ld a, [W_SPRITEUNPACKMODE]
+ cp $2
+ jp z, UnpackSpriteMode2
+ and a
+ jp nz, XorSpriteChunks
+ ld hl, S_SPRITEBUFFER1
+ call SpriteDifferentialDecode
+ ld hl, S_SPRITEBUFFER2
+ ; fall through
+
+; decodes differential encoded sprite data
+; input bit value 0 preserves the current bit value and input bit value 1 toggles it (starting from initial value 0).
+SpriteDifferentialDecode:: ; 26d4 (0:26d4)
+ xor a
+ ld [W_SPRITECURPOSX], a
+ ld [W_SPRITECURPOSY], a
+ call StoreSpriteOutputPointer
+ ld a, [W_SPRITEFLIPPED]
+ and a
+ jr z, .notFlipped
+ ld hl, DecodeNybble0TableFlipped
+ ld de, DecodeNybble1TableFlipped
+ jr .storeDecodeTablesPointers
+.notFlipped
+ ld hl, DecodeNybble0Table
+ ld de, DecodeNybble1Table
+.storeDecodeTablesPointers
+ ld a, l
+ ld [W_SPRITEDECODETABLE0PTR], a
+ ld a, h
+ ld [W_SPRITEDECODETABLE0PTR+1], a
+ ld a, e
+ ld [W_SPRITEDECODETABLE1PTR], a
+ ld a, d
+ ld [W_SPRITEDECODETABLE1PTR+1], a
+ ld e, $0 ; last decoded nybble, initialized to 0
+.decodeNextByteLoop
+ ld a, [W_SPRITEOUTPUTPTR]
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ ld h, a
+ ld a, [hl]
+ ld b, a
+ swap a
+ and $f
+ call DifferentialDecodeNybble ; decode high nybble
+ swap a
+ ld d, a
+ ld a, b
+ and $f
+ call DifferentialDecodeNybble ; decode low nybble
+ or d
+ ld b, a
+ ld a, [W_SPRITEOUTPUTPTR]
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ ld h, a
+ ld a, b
+ ld [hl], a ; write back decoded data
+ ld a, [W_SPRITEHEIGHT]
+ add l ; move on to next column
+ jr nc, .noCarry
+ inc h
+.noCarry
+ ld [W_SPRITEOUTPUTPTR], a
+ ld a, h
+ ld [W_SPRITEOUTPUTPTR+1], a
+ ld a, [W_SPRITECURPOSX]
+ add $8
+ ld [W_SPRITECURPOSX], a
+ ld b, a
+ ld a, [W_SPRITEWITDH]
+ cp b
+ jr nz, .decodeNextByteLoop ; test if current row is done
+ xor a
+ ld e, a
+ ld [W_SPRITECURPOSX], a
+ ld a, [W_SPRITECURPOSY] ; move on to next row
+ inc a
+ ld [W_SPRITECURPOSY], a
+ ld b, a
+ ld a, [W_SPRITEHEIGHT]
+ cp b
+ jr z, .done ; test if all rows finished
+ ld a, [W_SPRITEOUTPUTPTRCACHED]
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTRCACHED+1]
+ ld h, a
+ inc hl
+ call StoreSpriteOutputPointer
+ jr .decodeNextByteLoop
+.done
+ xor a
+ ld [W_SPRITECURPOSY], a
+ ret
+
+; decodes the nybble stored in a. Last decoded data is assumed to be in e (needed to determine if initial value is 0 or 1)
+DifferentialDecodeNybble:: ; 276d (0:276d)
+ srl a ; c=a%2, a/=2
+ ld c, $0
+ jr nc, .evenNumber
+ ld c, $1
+.evenNumber
+ ld l, a
+ ld a, [W_SPRITEFLIPPED]
+ and a
+ jr z, .notFlipped ; determine if initial value is 0 or one
+ bit 3, e ; if flipped, consider MSB of last data
+ jr .selectLookupTable
+.notFlipped
+ bit 0, e ; else consider LSB
+.selectLookupTable
+ ld e, l
+ jr nz, .initialValue1 ; load the appropriate table
+ ld a, [W_SPRITEDECODETABLE0PTR]
+ ld l, a
+ ld a, [W_SPRITEDECODETABLE0PTR+1]
+ jr .tableLookup
+.initialValue1
+ ld a, [W_SPRITEDECODETABLE1PTR]
+ ld l, a
+ ld a, [W_SPRITEDECODETABLE1PTR+1]
+.tableLookup
+ ld h, a
+ ld a, e
+ add l
+ ld l, a
+ jr nc, .noCarry
+ inc h
+.noCarry
+ ld a, [hl]
+ bit 0, c
+ jr nz, .selectLowNybble
+ swap a ; select high nybble
+.selectLowNybble
+ and $f
+ ld e, a ; update last decoded data
+ ret
+
+DecodeNybble0Table:: ; 27a7 (0:27a7)
+ dn $0, $1
+ dn $3, $2
+ dn $7, $6
+ dn $4, $5
+ dn $f, $e
+ dn $c, $d
+ dn $8, $9
+ dn $b, $a
+DecodeNybble1Table:: ; 27af (0:27af)
+ dn $f, $e
+ dn $c, $d
+ dn $8, $9
+ dn $b, $a
+ dn $0, $1
+ dn $3, $2
+ dn $7, $6
+ dn $4, $5
+DecodeNybble0TableFlipped:: ; 27b7 (0:27b7)
+ dn $0, $8
+ dn $c, $4
+ dn $e, $6
+ dn $2, $a
+ dn $f, $7
+ dn $3, $b
+ dn $1, $9
+ dn $d, $5
+DecodeNybble1TableFlipped:: ; 27bf (0:27bf)
+ dn $f, $7
+ dn $3, $b
+ dn $1, $9
+ dn $d, $5
+ dn $0, $8
+ dn $c, $4
+ dn $e, $6
+ dn $2, $a
+
+; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differeintial decoded beforehand.
+XorSpriteChunks:: ; 27c7 (0:27c7)
+ xor a
+ ld [W_SPRITECURPOSX], a
+ ld [W_SPRITECURPOSY], a
+ call ResetSpriteBufferPointers
+ ld a, [W_SPRITEOUTPUTPTR] ; points to buffer 1 or 2, depending on flags
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ ld h, a
+ call SpriteDifferentialDecode ; decode buffer 1 or 2, depending on flags
+ call ResetSpriteBufferPointers
+ ld a, [W_SPRITEOUTPUTPTR] ; source buffer, points to buffer 1 or 2, depending on flags
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTR+1]
+ ld h, a
+ ld a, [W_SPRITEOUTPUTPTRCACHED] ; destination buffer, points to buffer 2 or 1, depending on flags
+ ld e, a
+ ld a, [W_SPRITEOUTPUTPTRCACHED+1]
+ ld d, a
+.xorChunksLoop
+ ld a, [W_SPRITEFLIPPED]
+ and a
+ jr z, .notFlipped
+ push de
+ ld a, [de]
+ ld b, a
+ swap a
+ and $f
+ call ReverseNybble ; if flipped reverse the nybbles in the destination buffer
+ swap a
+ ld c, a
+ ld a, b
+ and $f
+ call ReverseNybble
+ or c
+ pop de
+ ld [de], a
+.notFlipped
+ ld a, [hli]
+ ld b, a
+ ld a, [de]
+ xor b
+ ld [de], a
+ inc de
+ ld a, [W_SPRITECURPOSY]
+ inc a
+ ld [W_SPRITECURPOSY], a ; go to next row
+ ld b, a
+ ld a, [W_SPRITEHEIGHT]
+ cp b
+ jr nz, .xorChunksLoop ; test if column finished
+ xor a
+ ld [W_SPRITECURPOSY], a
+ ld a, [W_SPRITECURPOSX]
+ add $8
+ ld [W_SPRITECURPOSX], a ; go to next column
+ ld b, a
+ ld a, [W_SPRITEWITDH]
+ cp b
+ jr nz, .xorChunksLoop ; test if all columns finished
+ xor a
+ ld [W_SPRITECURPOSX], a
+ ret
+
+; reverses the bits in the nybble given in register a
+ReverseNybble:: ; 2837 (0:2837)
+ ld de, NybbleReverseTable
+ add e
+ ld e, a
+ jr nc, .asm_283f
+ inc d
+.asm_283f
+ ld a, [de]
+ ret
+
+; resets sprite buffer pointers to buffer 1 and 2, depending on W_SPRITELOADFLAGS
+ResetSpriteBufferPointers:: ; 2841 (0:2841)
+ ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ bit 0, a
+ jr nz, .buffer2Selected
+ ld de, S_SPRITEBUFFER1
+ ld hl, S_SPRITEBUFFER2
+ jr .storeBufferPointers
+.buffer2Selected
+ ld de, S_SPRITEBUFFER2
+ ld hl, S_SPRITEBUFFER1
+.storeBufferPointers
+ ld a, l
+ ld [W_SPRITEOUTPUTPTR], a
+ ld a, h
+ ld [W_SPRITEOUTPUTPTR+1], a
+ ld a, e
+ ld [W_SPRITEOUTPUTPTRCACHED], a
+ ld a, d
+ ld [W_SPRITEOUTPUTPTRCACHED+1], a
+ ret
+
+; maps each nybble to its reverse
+NybbleReverseTable:: ; 2867 (0:2867)
+ db $0, $8, $4, $c, $2, $a, $6 ,$e, $1, $9, $5, $d, $3, $b, $7 ,$f
+
+; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differeintial decoded beforehand.
+UnpackSpriteMode2:: ; 2877 (0:2877)
+ call ResetSpriteBufferPointers
+ ld a, [W_SPRITEFLIPPED]
+ push af
+ xor a
+ ld [W_SPRITEFLIPPED], a ; temporarily clear flipped flag for decoding the destination chunk
+ ld a, [W_SPRITEOUTPUTPTRCACHED]
+ ld l, a
+ ld a, [W_SPRITEOUTPUTPTRCACHED+1]
+ ld h, a
+ call SpriteDifferentialDecode
+ call ResetSpriteBufferPointers
+ pop af
+ ld [W_SPRITEFLIPPED], a
+ jp XorSpriteChunks
+
+; stores hl into the output pointers
+StoreSpriteOutputPointer:: ; 2897 (0:2897)
+ ld a, l
+ ld [W_SPRITEOUTPUTPTR], a
+ ld [W_SPRITEOUTPUTPTRCACHED], a
+ ld a, h
+ ld [W_SPRITEOUTPUTPTR+1], a
+ ld [W_SPRITEOUTPUTPTRCACHED+1], a
+ ret
--- /dev/null
+++ b/home/predef.asm
@@ -1,0 +1,50 @@
+Predef::
+; Call predefined function a.
+; To preserve other registers, have the
+; destination call GetPredefRegisters.
+
+ ; Save the predef id for GetPredefPointer.
+ ld [wPredefID], a
+
+ ; A hack for LoadDestinationWarpPosition.
+ ; See Func_c754 (predef $19).
+ ld a, [H_LOADEDROMBANK]
+ ld [wPredefParentBank], a
+
+ push af
+ ld a, BANK(GetPredefPointer)
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+
+ call GetPredefPointer
+
+ ld a, [wPredefBank]
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+
+ ld de, .done
+ push de
+ jp [hl]
+.done
+
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [$2000], a
+ ret
+
+GetPredefRegisters::
+; Restore the contents of register pairs
+; when GetPredefPointer was called.
+ ld a, [wPredefRegisters + 0]
+ ld h, a
+ ld a, [wPredefRegisters + 1]
+ ld l, a
+ ld a, [wPredefRegisters + 2]
+ ld d, a
+ ld a, [wPredefRegisters + 3]
+ ld e, a
+ ld a, [wPredefRegisters + 4]
+ ld b, a
+ ld a, [wPredefRegisters + 5]
+ ld c, a
+ ret
--- /dev/null
+++ b/home/text.asm
@@ -1,0 +1,718 @@
+TextBoxBorder::
+; Draw a cxb text box at hl.
+
+ ; top row
+ push hl
+ ld a, "┌"
+ ld [hli], a
+ inc a ; ─
+ call NPlaceChar
+ inc a ; ┐
+ ld [hl], a
+ pop hl
+
+ ld de, 20
+ add hl, de
+
+ ; middle rows
+.next
+ push hl
+ ld a, "│"
+ ld [hli],a
+ ld a, " "
+ call NPlaceChar
+ ld [hl], "│"
+ pop hl
+
+ ld de, 20
+ add hl, de
+ dec b
+ jr nz, .next
+
+ ; bottom row
+ ld a, "└"
+ ld [hli], a
+ ld a, "─"
+ call NPlaceChar
+ ld [hl], "┘"
+ ret
+
+NPlaceChar::
+; Place char a c times.
+ ld d, c
+.loop
+ ld [hli], a
+ dec d
+ jr nz, .loop
+ ret
+
+PlaceString:: ; 1955 (0:1955)
+ push hl
+PlaceNextChar:: ; 1956 (0:1956)
+ ld a,[de]
+
+ cp "@"
+ jr nz,.PlaceText
+ ld b,h
+ ld c,l
+ pop hl
+ ret
+
+.PlaceText
+ cp $4E
+ jr nz,.next
+ ld bc,$0028
+ ld a,[$FFF6]
+ bit 2,a
+ jr z,.next2
+ ld bc,$14
+.next2
+ pop hl
+ add hl,bc
+ push hl
+ jp Next19E8
+
+.next
+ cp $4F
+ jr nz,.next3
+ pop hl
+ hlCoord 1, 16
+ push hl
+ jp Next19E8
+
+.next3 ; Check against a dictionary
+ and a
+ jp z,Char00
+ cp $4C
+ jp z,Char4C
+ cp $4B
+ jp z,Char4B
+ cp $51
+ jp z,Char51
+ cp $49
+ jp z,Char49
+ cp $52
+ jp z,Char52
+ cp $53
+ jp z,Char53
+ cp $54
+ jp z,Char54
+ cp $5B
+ jp z,Char5B
+ cp $5E
+ jp z,Char5E
+ cp $5C
+ jp z,Char5C
+ cp $5D
+ jp z,Char5D
+ cp $55
+ jp z,Char55
+ cp $56
+ jp z,Char56
+ cp $57
+ jp z,Char57
+ cp $58
+ jp z,Char58
+ cp $4A
+ jp z,Char4A
+ cp $5F
+ jp z,Char5F
+ cp $59
+ jp z,Char59
+ cp $5A
+ jp z,Char5A
+ ld [hli],a
+ call PrintLetterDelay
+Next19E8:: ; 19e8 (0:19e8)
+ inc de
+ jp PlaceNextChar
+
+Char00:: ; 19ec (0:19ec)
+ ld b,h
+ ld c,l
+ pop hl
+ ld de,Char00Text
+ dec de
+ ret
+
+Char00Text:: ; 0x19f4 “%d ERROR.”
+ TX_FAR _Char00Text
+ db "@"
+
+Char52:: ; 0x19f9 player’s name
+ push de
+ ld de,wPlayerName
+ jr FinishDTE
+
+Char53:: ; 19ff (0:19ff) ; rival’s name
+ push de
+ ld de,W_RIVALNAME
+ jr FinishDTE
+
+Char5D:: ; 1a05 (0:1a05) ; TRAINER
+ push de
+ ld de,Char5DText
+ jr FinishDTE
+
+Char5C:: ; 1a0b (0:1a0b) ; TM
+ push de
+ ld de,Char5CText
+ jr FinishDTE
+
+Char5B:: ; 1a11 (0:1a11) ; PC
+ push de
+ ld de,Char5BText
+ jr FinishDTE
+
+Char5E:: ; 1a17 (0:1a17) ; ROCKET
+ push de
+ ld de,Char5EText
+ jr FinishDTE
+
+Char54:: ; 1a1d (0:1a1d) ; POKé
+ push de
+ ld de,Char54Text
+ jr FinishDTE
+
+Char56:: ; 1a23 (0:1a23) ; ……
+ push de
+ ld de,Char56Text
+ jr FinishDTE
+
+Char4A:: ; 1a29 (0:1a29) ; PKMN
+ push de
+ ld de,Char4AText
+ jr FinishDTE
+
+Char59:: ; 1a2f (0:1a2f)
+; depending on whose turn it is, print
+; enemy active monster’s name, prefixed with “Enemy ”
+; or
+; player active monster’s name
+; (like Char5A but flipped)
+ ld a,[H_WHOSETURN]
+ xor 1
+ jr MonsterNameCharsCommon
+
+Char5A:: ; 1a35 (0:1a35)
+; depending on whose turn it is, print
+; player active monster’s name
+; or
+; enemy active monster’s name, prefixed with “Enemy ”
+ ld a,[H_WHOSETURN]
+MonsterNameCharsCommon:: ; 1a37 (0:1a37)
+ push de
+ and a
+ jr nz,.Enemy
+ ld de,wBattleMonNick ; player active monster name
+ jr FinishDTE
+
+.Enemy ; 1A40
+ ; print “Enemy ”
+ ld de,Char5AText
+ call PlaceString
+
+ ld h,b
+ ld l,c
+ ld de,wEnemyMonNick ; enemy active monster name
+
+FinishDTE:: ; 1a4b (0:1a4b)
+ call PlaceString
+ ld h,b
+ ld l,c
+ pop de
+ inc de
+ jp PlaceNextChar
+
+Char5CText:: ; 1a55 (0:1a55)
+ db "TM@"
+Char5DText:: ; 1a58 (0:1a58)
+ db "TRAINER@"
+Char5BText:: ; 1a60 (0:1a60)
+ db "PC@"
+Char5EText:: ; 1a63 (0:1a63)
+ db "ROCKET@"
+Char54Text:: ; 1a6a (0:1a6a)
+ db "POKé@"
+Char56Text:: ; 1a6f (0:1a6f)
+ db "……@"
+Char5AText:: ; 1a72 (0:1a72)
+ db "Enemy @"
+Char4AText:: ; 1a79 (0:1a79)
+ db $E1,$E2,"@" ; PKMN
+
+Char55:: ; 1a7c (0:1a7c)
+ push de
+ ld b,h
+ ld c,l
+ ld hl,Char55Text
+ call TextCommandProcessor
+ ld h,b
+ ld l,c
+ pop de
+ inc de
+ jp PlaceNextChar
+
+Char55Text:: ; 1a8c (0:1a8c)
+; equivalent to Char4B
+ TX_FAR _Char55Text
+ db "@"
+
+Char5F:: ; 1a91 (0:1a91)
+; ends a Pokédex entry
+ ld [hl],"."
+ pop hl
+ ret
+
+Char58:: ; 1a95 (0:1a95)
+ ld a,[W_ISLINKBATTLE]
+ cp 4
+ jp z,Next1AA2
+ ld a,$EE
+ Coorda 18, 16
+Next1AA2:: ; 1aa2 (0:1aa2)
+ call ProtectedDelay3
+ call ManualTextScroll
+ ld a,$7F
+ Coorda 18, 16
+Char57:: ; 1aad (0:1aad)
+ pop hl
+ ld de,Char58Text
+ dec de
+ ret
+
+Char58Text:: ; 1ab3 (0:1ab3)
+ db "@"
+
+Char51:: ; 1ab4 (0:1ab4)
+ push de
+ ld a,$EE
+ Coorda 18, 16
+ call ProtectedDelay3
+ call ManualTextScroll
+ hlCoord 1, 13
+ ld bc,$0412
+ call ClearScreenArea
+ ld c,$14
+ call DelayFrames
+ pop de
+ hlCoord 1, 14
+ jp Next19E8
+
+Char49:: ; 1ad5 (0:1ad5)
+ push de
+ ld a,$EE
+ Coorda 18, 16
+ call ProtectedDelay3
+ call ManualTextScroll
+ hlCoord 1, 10
+ ld bc,$0712
+ call ClearScreenArea
+ ld c,$14
+ call DelayFrames
+ pop de
+ pop hl
+ hlCoord 1, 11
+ push hl
+ jp Next19E8
+
+Char4B:: ; 1af8 (0:1af8)
+ ld a,$EE
+ Coorda 18, 16
+ call ProtectedDelay3
+ push de
+ call ManualTextScroll
+ pop de
+ ld a,$7F
+ Coorda 18, 16
+ ;fall through
+Char4C:: ; 1b0a (0:1b0a)
+ push de
+ call Next1B18
+ call Next1B18
+ hlCoord 1, 16
+ pop de
+ jp Next19E8
+
+Next1B18:: ; 1b18 (0:1b18)
+ hlCoord 0, 14
+ deCoord 0, 13
+ ld b,$3C
+.next
+ ld a,[hli]
+ ld [de],a
+ inc de
+ dec b
+ jr nz,.next
+ hlCoord 1, 16
+ ld a,$7F
+ ld b,$12
+.next2
+ ld [hli],a
+ dec b
+ jr nz,.next2
+
+ ; wait five frames
+ ld b,5
+.WaitFrame
+ call DelayFrame
+ dec b
+ jr nz,.WaitFrame
+
+ ret
+
+ProtectedDelay3:: ; 1b3a (0:1b3a)
+ push bc
+ call Delay3
+ pop bc
+ ret
+
+TextCommandProcessor:: ; 1b40 (0:1b40)
+ ld a,[wd358]
+ push af
+ set 1,a
+ ld e,a
+ ld a,[$fff4]
+ xor e
+ ld [wd358],a
+ ld a,c
+ ld [wcc3a],a
+ ld a,b
+ ld [wcc3b],a
+
+NextTextCommand:: ; 1b55 (0:1b55)
+ ld a,[hli]
+ cp a, "@" ; terminator
+ jr nz,.doTextCommand
+ pop af
+ ld [wd358],a
+ ret
+.doTextCommand
+ push hl
+ cp a,$17
+ jp z,TextCommand17
+ cp a,$0e
+ jp nc,TextCommand0B ; if a != 0x17 and a >= 0xE, go to command 0xB
+; if a < 0xE, use a jump table
+ ld hl,TextCommandJumpTable
+ push bc
+ add a
+ ld b,$00
+ ld c,a
+ add hl,bc
+ pop bc
+ ld a,[hli]
+ ld h,[hl]
+ ld l,a
+ jp [hl]
+
+; draw box
+; 04AAAABBCC
+; AAAA = address of upper left corner
+; BB = height
+; CC = width
+TextCommand04:: ; 1b78 (0:1b78)
+ pop hl
+ ld a,[hli]
+ ld e,a
+ ld a,[hli]
+ ld d,a
+ ld a,[hli]
+ ld b,a
+ ld a,[hli]
+ ld c,a
+ push hl
+ ld h,d
+ ld l,e
+ call TextBoxBorder
+ pop hl
+ jr NextTextCommand
+
+; place string inline
+; 00{string}
+TextCommand00:: ; 1b8a (0:1b8a)
+ pop hl
+ ld d,h
+ ld e,l
+ ld h,b
+ ld l,c
+ call PlaceString
+ ld h,d
+ ld l,e
+ inc hl
+ jr NextTextCommand
+
+; place string from RAM
+; 01AAAA
+; AAAA = address of string
+TextCommand01:: ; 1b97 (0:1b97)
+ pop hl
+ ld a,[hli]
+ ld e,a
+ ld a,[hli]
+ ld d,a
+ push hl
+ ld h,b
+ ld l,c
+ call PlaceString
+ pop hl
+ jr NextTextCommand
+
+; print BCD number
+; 02AAAABB
+; AAAA = address of BCD number
+; BB
+; bits 0-4 = length in bytes
+; bits 5-7 = unknown flags
+TextCommand02:: ; 1ba5 (0:1ba5)
+ pop hl
+ ld a,[hli]
+ ld e,a
+ ld a,[hli]
+ ld d,a
+ ld a,[hli]
+ push hl
+ ld h,b
+ ld l,c
+ ld c,a
+ call PrintBCDNumber
+ ld b,h
+ ld c,l
+ pop hl
+ jr NextTextCommand
+
+; repoint destination address
+; 03AAAA
+; AAAA = new destination address
+TextCommand03:: ; 1bb7 (0:1bb7)
+ pop hl
+ ld a,[hli]
+ ld [wcc3a],a
+ ld c,a
+ ld a,[hli]
+ ld [wcc3b],a
+ ld b,a
+ jp NextTextCommand
+
+; repoint destination to second line of dialogue text box
+; 05
+; (no arguments)
+TextCommand05:: ; 1bc5 (0:1bc5)
+ pop hl
+ bcCoord 1, 16 ; address of second line of dialogue text box
+ jp NextTextCommand
+
+; blink arrow and wait for A or B to be pressed
+; 06
+; (no arguments)
+TextCommand06:: ; 1bcc (0:1bcc)
+ ld a,[W_ISLINKBATTLE]
+ cp a,$04
+ jp z,TextCommand0D
+ ld a,$ee ; down arrow
+ Coorda 18, 16 ; place down arrow in lower right corner of dialogue text box
+ push bc
+ call ManualTextScroll ; blink arrow and wait for A or B to be pressed
+ pop bc
+ ld a," "
+ Coorda 18, 16 ; overwrite down arrow with blank space
+ pop hl
+ jp NextTextCommand
+
+; scroll text up one line
+; 07
+; (no arguments)
+TextCommand07:: ; 1be7 (0:1be7)
+ ld a," "
+ Coorda 18, 16 ; place blank space in lower right corner of dialogue text box
+ call Next1B18 ; scroll up text
+ call Next1B18
+ pop hl
+ bcCoord 1, 16 ; address of second line of dialogue text box
+ jp NextTextCommand
+
+; execute asm inline
+; 08{code}
+TextCommand08:: ; 1bf9 (0:1bf9)
+ pop hl
+ ld de,NextTextCommand
+ push de ; return address
+ jp [hl]
+
+; print decimal number (converted from binary number)
+; 09AAAABB
+; AAAA = address of number
+; BB
+; bits 0-3 = how many digits to display
+; bits 4-7 = how long the number is in bytes
+TextCommand09:: ; 1bff (0:1bff)
+ pop hl
+ ld a,[hli]
+ ld e,a
+ ld a,[hli]
+ ld d,a
+ ld a,[hli]
+ push hl
+ ld h,b
+ ld l,c
+ ld b,a
+ and a,$0f
+ ld c,a
+ ld a,b
+ and a,$f0
+ swap a
+ set 6,a
+ ld b,a
+ call PrintNumber
+ ld b,h
+ ld c,l
+ pop hl
+ jp NextTextCommand
+
+; wait half a second if the user doesn't hold A or B
+; 0A
+; (no arguments)
+TextCommand0A:: ; 1c1d (0:1c1d)
+ push bc
+ call Joypad
+ ld a,[hJoyHeld]
+ and a,%00000011 ; A and B buttons
+ jr nz,.skipDelay
+ ld c,30
+ call DelayFrames
+.skipDelay
+ pop bc
+ pop hl
+ jp NextTextCommand
+
+; plays sounds
+; this actually handles various command ID's, not just 0B
+; (no arguments)
+TextCommand0B:: ; 1c31 (0:1c31)
+ pop hl
+ push bc
+ dec hl
+ ld a,[hli]
+ ld b,a ; b = command number that got us here
+ push hl
+ ld hl,TextCommandSounds
+.loop
+ ld a,[hli]
+ cp b
+ jr z,.matchFound
+ inc hl
+ jr .loop
+.matchFound
+ cp a,$14
+ jr z,.pokemonCry
+ cp a,$15
+ jr z,.pokemonCry
+ cp a,$16
+ jr z,.pokemonCry
+ ld a,[hl]
+ call PlaySound
+ call WaitForSoundToFinish
+ pop hl
+ pop bc
+ jp NextTextCommand
+.pokemonCry
+ push de
+ ld a,[hl]
+ call PlayCry
+ pop de
+ pop hl
+ pop bc
+ jp NextTextCommand
+
+; format: text command ID, sound ID or cry ID
+TextCommandSounds:: ; 1c64 (0:1c64)
+ db $0B,(SFX_02_3a - SFX_Headers_02) / 3
+ db $12,(SFX_02_46 - SFX_Headers_02) / 3
+ db $0E,(SFX_02_41 - SFX_Headers_02) / 3
+ db $0F,(SFX_02_3a - SFX_Headers_02) / 3
+ db $10,(SFX_02_3b - SFX_Headers_02) / 3
+ db $11,(SFX_02_42 - SFX_Headers_02) / 3
+ db $13,(SFX_02_44 - SFX_Headers_02) / 3
+ db $14,NIDORINA ; used in OakSpeech
+ db $15,PIDGEOT ; used in SaffronCityText12
+ db $16,DEWGONG ; unused?
+
+; draw ellipses
+; 0CAA
+; AA = number of ellipses to draw
+TextCommand0C:: ; 1c78 (0:1c78)
+ pop hl
+ ld a,[hli]
+ ld d,a
+ push hl
+ ld h,b
+ ld l,c
+.loop
+ ld a,$75 ; ellipsis
+ ld [hli],a
+ push de
+ call Joypad
+ pop de
+ ld a,[hJoyHeld] ; joypad state
+ and a,%00000011 ; is A or B button pressed?
+ jr nz,.skipDelay ; if so, skip the delay
+ ld c,10
+ call DelayFrames
+.skipDelay
+ dec d
+ jr nz,.loop
+ ld b,h
+ ld c,l
+ pop hl
+ jp NextTextCommand
+
+; wait for A or B to be pressed
+; 0D
+; (no arguments)
+TextCommand0D:: ; 1c9a (0:1c9a)
+ push bc
+ call ManualTextScroll ; wait for A or B to be pressed
+ pop bc
+ pop hl
+ jp NextTextCommand
+
+; process text commands in another ROM bank
+; 17AAAABB
+; AAAA = address of text commands
+; BB = bank
+TextCommand17:: ; 1ca3 (0:1ca3)
+ pop hl
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,[hli]
+ ld e,a
+ ld a,[hli]
+ ld d,a
+ ld a,[hli]
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ push hl
+ ld l,e
+ ld h,d
+ call TextCommandProcessor
+ pop hl
+ pop af
+ ld [H_LOADEDROMBANK],a
+ ld [$2000],a
+ jp NextTextCommand
+
+TextCommandJumpTable:: ; 1cc1 (0:1cc1)
+ dw TextCommand00
+ dw TextCommand01
+ dw TextCommand02
+ dw TextCommand03
+ dw TextCommand04
+ dw TextCommand05
+ dw TextCommand06
+ dw TextCommand07
+ dw TextCommand08
+ dw TextCommand09
+ dw TextCommand0A
+ dw TextCommand0B
+ dw TextCommand0C
+ dw TextCommand0D
--- /dev/null
+++ b/home/vblank.asm
@@ -1,0 +1,105 @@
+VBlank::
+
+ push af
+ push bc
+ push de
+ push hl
+
+ ld a, [H_LOADEDROMBANK]
+ ld [wd122], a
+
+ ld a, [$ffae]
+ ld [rSCX], a
+ ld a, [$ffaf]
+ ld [rSCY], a
+
+ ld a, [wd0a0]
+ and a
+ jr nz, .ok
+ ld a, [$ffb0]
+ ld [rWY], a
+.ok
+
+ call AutoBgMapTransfer
+ call VBlankCopyBgMap
+ call RedrawExposedScreenEdge
+ call VBlankCopy
+ call VBlankCopyDouble
+ call UpdateMovingBgTiles
+ call $ff80 ; hOAMDMA
+ ld a, Bank(PrepareOAMData)
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ call PrepareOAMData
+
+ ; VBlank-sensitive operations end.
+
+ call Random
+
+ ld a, [H_VBLANKOCCURRED]
+ and a
+ jr z, .vblanked
+ xor a
+ ld [H_VBLANKOCCURRED], a
+.vblanked
+
+ ld a, [H_FRAMECOUNTER]
+ and a
+ jr z, .decced
+ dec a
+ ld [H_FRAMECOUNTER], a
+.decced
+
+ call Func_28cb
+
+ ld a, [wc0ef] ; music ROM bank
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+
+ cp BANK(Music2_UpdateMusic)
+ jr nz, .notbank2
+.bank2
+ call Music2_UpdateMusic
+ jr .afterMusic
+.notbank2
+ cp BANK(Music8_UpdateMusic)
+ jr nz, .bank1F
+.bank8
+ call Func_2136e
+ call Music8_UpdateMusic
+ jr .afterMusic
+.bank1F
+ call Music1f_UpdateMusic
+.afterMusic
+
+ callba Func_18dee ; keep track of time played
+
+ ld a, [$fff9]
+ and a
+ call z, ReadJoypad
+
+ ld a, [wd122]
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+
+
+DelayFrame::
+; Wait for the next vblank interrupt.
+; As a bonus, this saves battery.
+
+NOT_VBLANKED EQU 1
+
+ ld a, NOT_VBLANKED
+ ld [H_VBLANKOCCURRED], a
+.halt
+ halt
+ ld a, [H_VBLANKOCCURRED]
+ and a
+ jr nz, .halt
+ ret
--- /dev/null
+++ b/home/vcopy.asm
@@ -1,0 +1,447 @@
+; this function seems to be used only once
+; it store the address of a row and column of the VRAM background map in hl
+; INPUT: h - row, l - column, b - high byte of background tile map address in VRAM
+GetRowColAddressBgMap:: ; 1cdd (0:1cdd)
+ xor a
+ srl h
+ rr a
+ srl h
+ rr a
+ srl h
+ rr a
+ or l
+ ld l,a
+ ld a,b
+ or h
+ ld h,a
+ ret
+
+; clears a VRAM background map with blank space tiles
+; INPUT: h - high byte of background tile map address in VRAM
+ClearBgMap:: ; 1cf0 (0:1cf0)
+ ld a," "
+ jr .next
+ ld a,l
+.next
+ ld de,$400 ; size of VRAM background map
+ ld l,e
+.loop
+ ld [hli],a
+ dec e
+ jr nz,.loop
+ dec d
+ jr nz,.loop
+ ret
+
+; When the player takes a step, a row or column of 2x2 tile blocks at the edge
+; of the screen toward which they moved is exposed and has to be redrawn.
+; This function does the redrawing.
+RedrawExposedScreenEdge:: ; 1d01 (0:1d01)
+ ld a,[H_SCREENEDGEREDRAW]
+ and a
+ ret z
+ ld b,a
+ xor a
+ ld [H_SCREENEDGEREDRAW],a
+ dec b
+ jr nz,.redrawRow
+.redrawColumn
+ ld hl,wScreenEdgeTiles
+ ld a,[H_SCREENEDGEREDRAWADDR]
+ ld e,a
+ ld a,[H_SCREENEDGEREDRAWADDR + 1]
+ ld d,a
+ ld c,18 ; screen height
+.loop1
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld a,[hli]
+ ld [de],a
+ ld a,31
+ add e
+ ld e,a
+ jr nc,.noCarry
+ inc d
+.noCarry
+; the following 4 lines wrap us from bottom to top if necessary
+ ld a,d
+ and a,$03
+ or a,$98
+ ld d,a
+ dec c
+ jr nz,.loop1
+ xor a
+ ld [H_SCREENEDGEREDRAW],a
+ ret
+.redrawRow
+ ld hl,wScreenEdgeTiles
+ ld a,[H_SCREENEDGEREDRAWADDR]
+ ld e,a
+ ld a,[H_SCREENEDGEREDRAWADDR + 1]
+ ld d,a
+ push de
+ call .drawHalf ; draw upper half
+ pop de
+ ld a,32 ; width of VRAM background map
+ add e
+ ld e,a
+ ; draw lower half
+.drawHalf
+ ld c,10
+.loop2
+ ld a,[hli]
+ ld [de],a
+ inc de
+ ld a,[hli]
+ ld [de],a
+ ld a,e
+ inc a
+; the following 6 lines wrap us from the right edge to the left edge if necessary
+ and a,$1f
+ ld b,a
+ ld a,e
+ and a,$e0
+ or b
+ ld e,a
+ dec c
+ jr nz,.loop2
+ ret
+
+; This function automatically transfers tile number data from the tile map at
+; wTileMap to VRAM during V-blank. Note that it only transfers one third of the
+; background per V-blank. It cycles through which third it draws.
+; This transfer is turned off when walking around the map, but is turned
+; on when talking to sprites, battling, using menus, etc. This is because
+; the above function, RedrawExposedScreenEdge, is used when walking to
+; improve efficiency.
+AutoBgMapTransfer:: ; 1d57 (0:1d57)
+ ld a,[H_AUTOBGTRANSFERENABLED]
+ and a
+ ret z
+ ld hl,[sp + 0]
+ ld a,h
+ ld [H_SPTEMP],a
+ ld a,l
+ ld [H_SPTEMP + 1],a ; save stack pinter
+ ld a,[H_AUTOBGTRANSFERPORTION]
+ and a
+ jr z,.transferTopThird
+ dec a
+ jr z,.transferMiddleThird
+.transferBottomThird
+ hlCoord 0, 12
+ ld sp,hl
+ ld a,[H_AUTOBGTRANSFERDEST + 1]
+ ld h,a
+ ld a,[H_AUTOBGTRANSFERDEST]
+ ld l,a
+ ld de,(12 * 32)
+ add hl,de
+ xor a ; TRANSFERTOP
+ jr .doTransfer
+.transferTopThird
+ hlCoord 0, 0
+ ld sp,hl
+ ld a,[H_AUTOBGTRANSFERDEST + 1]
+ ld h,a
+ ld a,[H_AUTOBGTRANSFERDEST]
+ ld l,a
+ ld a,TRANSFERMIDDLE
+ jr .doTransfer
+.transferMiddleThird
+ hlCoord 0, 6
+ ld sp,hl
+ ld a,[H_AUTOBGTRANSFERDEST + 1]
+ ld h,a
+ ld a,[H_AUTOBGTRANSFERDEST]
+ ld l,a
+ ld de,(6 * 32)
+ add hl,de
+ ld a,TRANSFERBOTTOM
+.doTransfer
+ ld [H_AUTOBGTRANSFERPORTION],a ; store next portion
+ ld b,6
+
+TransferBgRows:: ; 1d9e (0:1d9e)
+; unrolled loop and using pop for speed
+
+ rept 20 / 2 - 1
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ endr
+
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+
+ ld a, 32 - (20 - 1)
+ add l
+ ld l, a
+ jr nc, .ok
+ inc h
+.ok
+ dec b
+ jr nz, TransferBgRows
+
+ ld a, [H_SPTEMP]
+ ld h, a
+ ld a, [H_SPTEMP + 1]
+ ld l, a
+ ld sp, hl
+ ret
+
+; Copies [H_VBCOPYBGNUMROWS] rows from H_VBCOPYBGSRC to H_VBCOPYBGDEST.
+; If H_VBCOPYBGSRC is XX00, the transfer is disabled.
+VBlankCopyBgMap:: ; 1de1 (0:1de1)
+ ld a,[H_VBCOPYBGSRC] ; doubles as enabling byte
+ and a
+ ret z
+ ld hl,[sp + 0]
+ ld a,h
+ ld [H_SPTEMP],a
+ ld a,l
+ ld [H_SPTEMP + 1],a ; save stack pointer
+ ld a,[H_VBCOPYBGSRC]
+ ld l,a
+ ld a,[H_VBCOPYBGSRC + 1]
+ ld h,a
+ ld sp,hl
+ ld a,[H_VBCOPYBGDEST]
+ ld l,a
+ ld a,[H_VBCOPYBGDEST + 1]
+ ld h,a
+ ld a,[H_VBCOPYBGNUMROWS]
+ ld b,a
+ xor a
+ ld [H_VBCOPYBGSRC],a ; disable transfer so it doesn't continue next V-blank
+ jr TransferBgRows
+
+
+VBlankCopyDouble::
+; Copy [H_VBCOPYDOUBLESIZE] 1bpp tiles
+; from H_VBCOPYDOUBLESRC to H_VBCOPYDOUBLEDEST.
+
+; While we're here, convert to 2bpp.
+; The process is straightforward:
+; copy each byte twice.
+
+ ld a, [H_VBCOPYDOUBLESIZE]
+ and a
+ ret z
+
+ ld hl, [sp + 0]
+ ld a, h
+ ld [H_SPTEMP], a
+ ld a, l
+ ld [H_SPTEMP + 1], a
+
+ ld a, [H_VBCOPYDOUBLESRC]
+ ld l, a
+ ld a, [H_VBCOPYDOUBLESRC + 1]
+ ld h, a
+ ld sp, hl
+
+ ld a, [H_VBCOPYDOUBLEDEST]
+ ld l, a
+ ld a, [H_VBCOPYDOUBLEDEST + 1]
+ ld h, a
+
+ ld a, [H_VBCOPYDOUBLESIZE]
+ ld b, a
+ xor a ; transferred
+ ld [H_VBCOPYDOUBLESIZE], a
+
+.loop
+ rept 3
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+ inc l
+ endr
+
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld [hl], d
+ inc hl
+ dec b
+ jr nz, .loop
+
+ ld a, l
+ ld [H_VBCOPYDOUBLEDEST], a
+ ld a, h
+ ld [H_VBCOPYDOUBLEDEST + 1], a
+
+ ld hl, [sp + 0]
+ ld a, l
+ ld [H_VBCOPYDOUBLESRC], a
+ ld a, h
+ ld [H_VBCOPYDOUBLESRC + 1], a
+
+ ld a, [H_SPTEMP]
+ ld h, a
+ ld a, [H_SPTEMP + 1]
+ ld l, a
+ ld sp, hl
+
+ ret
+
+
+VBlankCopy::
+; Copy [H_VBCOPYSIZE] 2bpp tiles
+; from H_VBCOPYSRC to H_VBCOPYDEST.
+
+; Source and destination addresses
+; are updated, so transfer can
+; continue in subsequent calls.
+
+ ld a, [H_VBCOPYSIZE]
+ and a
+ ret z
+
+ ld hl, [sp + 0]
+ ld a, h
+ ld [H_SPTEMP], a
+ ld a, l
+ ld [H_SPTEMP + 1], a
+
+ ld a, [H_VBCOPYSRC]
+ ld l, a
+ ld a, [H_VBCOPYSRC + 1]
+ ld h, a
+ ld sp, hl
+
+ ld a, [H_VBCOPYDEST]
+ ld l, a
+ ld a, [H_VBCOPYDEST + 1]
+ ld h, a
+
+ ld a, [H_VBCOPYSIZE]
+ ld b, a
+ xor a ; transferred
+ ld [H_VBCOPYSIZE], a
+
+.loop
+ rept 7
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ endr
+
+ pop de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc hl
+ dec b
+ jr nz, .loop
+
+ ld a, l
+ ld [H_VBCOPYDEST], a
+ ld a, h
+ ld [H_VBCOPYDEST + 1], a
+
+ ld hl, [sp + 0]
+ ld a, l
+ ld [H_VBCOPYSRC], a
+ ld a, h
+ ld [H_VBCOPYSRC + 1], a
+
+ ld a, [H_SPTEMP]
+ ld h, a
+ ld a, [H_SPTEMP + 1]
+ ld l, a
+ ld sp, hl
+
+ ret
+
+
+UpdateMovingBgTiles::
+; Animate water and flower
+; tiles in the overworld.
+
+ ld a, [$ffd7]
+ and a
+ ret z
+
+ ld a, [$ffd8]
+ inc a
+ ld [$ffd8], a
+ cp $14
+ ret c
+ cp $15
+ jr z, .flower
+
+ ld hl, vTileset + $14 * $10
+ ld c, $10
+
+ ld a, [wd085]
+ inc a
+ and 7
+ ld [wd085], a
+
+ and 4
+ jr nz, .left
+.right
+ ld a, [hl]
+ rrca
+ ld [hli], a
+ dec c
+ jr nz, .right
+ jr .done
+.left
+ ld a, [hl]
+ rlca
+ ld [hli], a
+ dec c
+ jr nz, .left
+.done
+ ld a, [$ffd7]
+ rrca
+ ret nc
+ xor a
+ ld [$ffd8], a
+ ret
+
+.flower
+ xor a
+ ld [$ffd8], a
+
+ ld a, [wd085]
+ and 3
+ cp 2
+ ld hl, FlowerTile1
+ jr c, .copy
+ ld hl, FlowerTile2
+ jr z, .copy
+ ld hl, FlowerTile3
+.copy
+ ld de, vTileset + $3 * $10
+ ld c, $10
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop
+ ret
+
+FlowerTile1: INCBIN "gfx/tilesets/flower/flower1.2bpp"
+FlowerTile2: INCBIN "gfx/tilesets/flower/flower2.2bpp"
+FlowerTile3: INCBIN "gfx/tilesets/flower/flower3.2bpp"
--- a/hram.asm
+++ b/hram.asm
@@ -4,7 +4,11 @@
H_SPRITEHEIGHT EQU $FF8C ; in bytes
H_SPRITEOFFSET EQU $FF8D
-H_SOFTRESETCOUNTER EQU $FF8A ; initialized to 16, decremented each input iteration if the user presses the reset sequence (A+B+S+s). Soft reset when 0 is reached.
+hSoftReset EQU $FF8A
+; Initialized to 16.
+; Decremented each input iteration if the player
+; presses the reset sequence (A+B+SEL+START).
+; Soft reset when 0 is reached.
; counters for blinking down arrow
H_DOWNARROWBLINKCNT1 EQU $FF8B
@@ -28,10 +32,10 @@
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction)
-H_OLDPRESSEDBUTTONS EQU $FFB1
-H_NEWLYRELEASEDBUTTONS EQU $FFB2
-H_NEWLYPRESSEDBUTTONS EQU $FFB3
-H_CURRENTPRESSEDBUTTONS EQU $FFB4
+hJoyHeldLast EQU $FFB1
+hJoyReleased EQU $FFB2
+hJoyPressed EQU $FFB3
+hJoyHeld EQU $FFB4
H_LOADEDROMBANK EQU $FFB8
@@ -98,8 +102,8 @@
H_SCREENEDGEREDRAWADDR EQU $FFD1
-H_RAND1 EQU $FFD3
-H_RAND2 EQU $FFD4
+hRandomAdd EQU $FFD3
+hRandomSub EQU $FFD4
H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays)
@@ -112,5 +116,5 @@
H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
-H_JOYPADSTATE EQU $FFF8
+hJoyInput EQU $FFF8
--- a/macros.asm
+++ b/macros.asm
@@ -11,6 +11,18 @@
dex EQUS "db $5f, $50" ; End a Pokedex entry.
+homecall: MACRO
+ ld a, [H_LOADEDROMBANK]
+ push af
+ ld a, BANK(\1)
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ call \1
+ pop af
+ ld [H_LOADEDROMBANK], a
+ ld [MBC3RomBank], a
+ ENDM
+
callba: MACRO
ld b, BANK(\1)
ld hl, \1
@@ -25,15 +37,45 @@
;\1 = X
;\2 = Y
-FuncCoord: MACRO
-Coord = $C3A0 + 20 * \2 + \1
+hlCoord: MACRO
+ ld hl, wTileMap + 20 * \2 + \1
ENDM
+;\1 = X
+;\2 = Y
+deCoord: MACRO
+ ld de, wTileMap + 20 * \2 + \1
+ ENDM
+
+;\1 = X
+;\2 = Y
+bcCoord: MACRO
+ ld bc, wTileMap + 20 * \2 + \1
+ ENDM
+
+;\1 = X
+;\2 = Y
+aCoord: MACRO
+ ld a, [wTileMap + 20 * \2 + \1]
+ ENDM
+
+;\1 = X
+;\2 = Y
+Coorda: MACRO
+ ld [wTileMap + 20 * \2 + \1], a
+ ENDM
+
+;\1 = X
+;\2 = Y
+dwCoord: MACRO
+ dw wTileMap + 20 * \2 + \1
+ ENDM
+
;\1 = Map Width
;\2 = Rows above (Y-blocks)
;\3 = X movement (X-blocks)
EVENT_DISP: MACRO
- dw ($C6EF + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp
+ dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp
db \2,\3 ;Y,X
ENDM
@@ -77,7 +119,7 @@
INDOOR EQU 0
CAVE EQU 1
OUTDOOR EQU 2
-
+
; macro for two nibbles
dn: MACRO
db (\1 << 4 | \2)
@@ -119,14 +161,30 @@
dw \1
ENDM
+TX_BCD: MACRO
+ db $2
+ dw \1
+ db \2
+ ENDM
+
; Predef macro.
-PREDEF: MACRO
- ld a, (\1 - PredefPointers) / 3
+add_predef: MACRO
+\1Predef::
+ db BANK(\1)
+ dw \1
+ ENDM
+
+predef_id: MACRO
+ ld a, (\1Predef - PredefPointers) / 3
+ ENDM
+
+predef: MACRO
+ predef_id \1
call Predef
ENDM
-
-PREDEF_JUMP: MACRO
- ld a, (\1 - PredefPointers) / 3
+
+predef_jump: MACRO
+ predef_id \1
jp Predef
ENDM
@@ -146,41 +204,6 @@
CH6 EQU 6
CH7 EQU 7
-;Note Pitch
-C_ EQU $0
-C# EQU $1
-D_ EQU $2
-D# EQU $3
-E_ EQU $4
-F_ EQU $5
-F# EQU $6
-G_ EQU $7
-G# EQU $8
-A_ EQU $9
-A# EQU $A
-B_ EQU $B
-
-;drum instruments
-snare1 EQU $01
-snare2 EQU $02
-snare3 EQU $03
-snare4 EQU $04
-snare5 EQU $05
-triangle1 EQU $06
-triangle2 EQU $07
-snare6 EQU $08
-snare7 EQU $09
-snare8 EQU $0a
-snare9 EQU $0b
-cymbal1 EQU $0c
-cymbal2 EQU $0d
-cymbal3 EQU $0e
-mutedsnare1 EQU $0f
-triangle3 EQU $10
-mutedsnare2 EQU $11
-mutedsnare3 EQU $12
-mutedsnare4 EQU $13
-
unknownsfx0x10: MACRO
db $10
db \1
@@ -199,17 +222,151 @@
db \3
ENDM
-;format: note pitch, length (in 16ths)
-note: MACRO
- db (\1 << 4) | (\2 - 1)
+;format: pitch length (in 16ths)
+C_: MACRO
+ db $00 | (\1 - 1)
ENDM
-;format: dnote length (in 16ths), instrument
-dnote: MACRO
+C#: MACRO
+ db $10 | (\1 - 1)
+ENDM
+
+D_: MACRO
+ db $20 | (\1 - 1)
+ENDM
+
+D#: MACRO
+ db $30 | (\1 - 1)
+ENDM
+
+E_: MACRO
+ db $40 | (\1 - 1)
+ENDM
+
+F_: MACRO
+ db $50 | (\1 - 1)
+ENDM
+
+F#: MACRO
+ db $60 | (\1 - 1)
+ENDM
+
+G_: MACRO
+ db $70 | (\1 - 1)
+ENDM
+
+G#: MACRO
+ db $80 | (\1 - 1)
+ENDM
+
+A_: MACRO
+ db $90 | (\1 - 1)
+ENDM
+
+A#: MACRO
+ db $A0 | (\1 - 1)
+ENDM
+
+B_: MACRO
db $B0 | (\1 - 1)
- db \2
ENDM
+;format: instrument length (in 16ths)
+snare1: MACRO
+ db $B0 | (\1 - 1)
+ db $01
+ENDM
+
+snare2: MACRO
+ db $B0 | (\1 - 1)
+ db $02
+ENDM
+
+snare3: MACRO
+ db $B0 | (\1 - 1)
+ db $03
+ENDM
+
+snare4: MACRO
+ db $B0 | (\1 - 1)
+ db $04
+ENDM
+
+snare5: MACRO
+ db $B0 | (\1 - 1)
+ db $05
+ENDM
+
+triangle1: MACRO
+ db $B0 | (\1 - 1)
+ db $06
+ENDM
+
+triangle2: MACRO
+ db $B0 | (\1 - 1)
+ db $07
+ENDM
+
+snare6: MACRO
+ db $B0 | (\1 - 1)
+ db $08
+ENDM
+
+snare7: MACRO
+ db $B0 | (\1 - 1)
+ db $09
+ENDM
+
+snare8: MACRO
+ db $B0 | (\1 - 1)
+ db $0A
+ENDM
+
+snare9: MACRO
+ db $B0 | (\1 - 1)
+ db $0B
+ENDM
+
+cymbal1: MACRO
+ db $B0 | (\1 - 1)
+ db $0C
+ENDM
+
+cymbal2: MACRO
+ db $B0 | (\1 - 1)
+ db $0D
+ENDM
+
+cymbal3: MACRO
+ db $B0 | (\1 - 1)
+ db $0E
+ENDM
+
+mutedsnare1: MACRO
+ db $B0 | (\1 - 1)
+ db $0F
+ENDM
+
+triangle3: MACRO
+ db $B0 | (\1 - 1)
+ db $10
+ENDM
+
+mutedsnare2: MACRO
+ db $B0 | (\1 - 1)
+ db $11
+ENDM
+
+mutedsnare3: MACRO
+ db $B0 | (\1 - 1)
+ db $12
+ENDM
+
+mutedsnare4: MACRO
+ db $B0 | (\1 - 1)
+ db $13
+ENDM
+
;format: rest length (in 16ths)
rest: MACRO
db $C0 | (\1 - 1)
@@ -229,7 +386,7 @@
db $E8 - \1
ENDM
-togglecall: MACRO
+toggleperfectpitch: MACRO
db $E8
ENDM
@@ -253,18 +410,18 @@
tempo: MACRO
db $ED
- db \1
- db \2
+ db \1 / $100
+ db \1 % $100
ENDM
-unknownmusic0xee: MACRO
+stereopanning: MACRO
db $EE
db \1
ENDM
-stereopanning: MACRO
+volume: MACRO
db $F0
- db \1
+ db (\1 << 4) | \2
ENDM
executemusic: MACRO
@@ -293,6 +450,7 @@
db $FF
ENDM
+
;\1 (byte) = connected map id
;\2 (byte) = connected map width
;\3 (byte) = connected map height
@@ -303,12 +461,12 @@
NORTH_MAP_CONNECTION: MACRO
db \1 ; map id
dw \7 + (\2 * (\3 - 3)) + \5; "Connection Strip" location
- dw $C6EB + \4 ; current map position
+ dw wOverworldMap + 3 + \4 ; current map position
db \6 ; width of connection strip
db \2 ; map width
db (\3 * 2) - 1 ; y alignment (y coordinate of player when entering map)
db (\4 - \5) * -2 ; x alignment (x coordinate of player when entering map)
- dw $C6E9 + (\3 * (\2 + 6)) ; window (position of the upper left block after entering the map)
+ dw wOverworldMap + 1 + (\3 * (\2 + 6)) ; window (position of the upper left block after entering the map)
ENDM
;\1 (byte) = connected map id
@@ -322,12 +480,12 @@
SOUTH_MAP_CONNECTION: MACRO
db \1 ; map id
dw \6 + \4 ; "Conection Strip" location
- dw $C6EB + (\8 + 3) * (\7 + 6) + \3 ; current map positoin
+ dw wOverworldMap + 3 + (\8 + 3) * (\7 + 6) + \3 ; current map positoin
db \5 ; width of connection strip
db \2 ; map width
db 0 ; y alignment (y coordinate of player when entering map)
db (\3 - \4) * -2 ; x alignment (x coordinate of player when entering map)
- dw $C6EF + \2 ; window (position of the upper left block after entering the map)
+ dw wOverworldMap + 7 + \2 ; window (position of the upper left block after entering the map)
ENDM
;\1 (byte) = connected map id
@@ -340,12 +498,12 @@
EAST_MAP_CONNECTION: MACRO
db \1 ; map id
dw \6 + (\2 * \4) ; "Connection Strip" location
- dw $C6E5 + (\7 + 6) * (\3 + 4) ; current map position
+ dw wOverworldMap - 3 + (\7 + 6) * (\3 + 4) ; current map position
db \5 ; height of connection strip
db \2 ; map width
db (\3 - \4) * -2 ; y alignment
db 0 ; x alignment
- dw $C6EF + \2 ; window (position of the upper left block after entering the map)
+ dw wOverworldMap + 7 + \2 ; window (position of the upper left block after entering the map)
ENDM
;\1 (byte) = connected map id
@@ -358,10 +516,10 @@
WEST_MAP_CONNECTION: MACRO
db \1 ; map id
dw \6 + (\2 * \4) + \2 - 3 ; "Connection Strip" location
- dw $C6E8 + (\7 + 6) * (\3 + 3) ; current map position
+ dw wOverworldMap + (\7 + 6) * (\3 + 3) ; current map position
db \5 ; height of connection strip
db \2 ; map width
db (\3 - \4) * -2 ; y alignment
db (\2 * 2) - 1 ; x alignment
- dw $C6EE + (2 * \2) ; window (position of the upper left block after entring the map)
+ dw wOverworldMap + 6 + (2 * \2) ; window (position of the upper left block after entring the map)
ENDM
--- a/main.asm
+++ b/main.asm
@@ -1,10243 +1,74 @@
INCLUDE "constants.asm"
-; The rst vectors are unused.
-SECTION "rst00",ROM0[$00]
- rst $38
-SECTION "rst08",ROM0[$08]
- rst $38
-SECTION "rst10",ROM0[$10]
- rst $38
-SECTION "rst18",ROM0[$18]
- rst $38
-SECTION "rst20",ROM0[$20]
- rst $38
-SECTION "rst28",ROM0[$28]
- rst $38
-SECTION "rst30",ROM0[$30]
- rst $38
-SECTION "rst38",ROM0[$38]
- rst $38
+NPC_SPRITES_1 EQU $4
+NPC_SPRITES_2 EQU $5
-; interrupts
-SECTION "vblank",ROM0[$40]
- jp VBlank
-SECTION "lcdc",ROM0[$48]
- db $FF
-SECTION "timer",ROM0[$50]
- jp Timer
-SECTION "serial",ROM0[$58]
- jp Serial
-SECTION "joypad",ROM0[$60]
- reti
+GFX EQU $4
-SECTION "bank0",ROM0[$61]
+PICS_1 EQU $9
+PICS_2 EQU $A
+PICS_3 EQU $B
+PICS_4 EQU $C
+PICS_5 EQU $D
-DisableLCD:: ; 0061 (0:0061)
- xor a
- ld [$ff0f],a
- ld a,[$ffff]
- ld b,a
- res 0,a
- ld [$ffff],a
-.waitVBlank
- ld a,[$ff44]
- cp a,$91
- jr nz,.waitVBlank
- ld a,[$ff40]
- and a,$7f ; res 7,a
- ld [$ff40],a
- ld a,b
- ld [$ffff],a
- ret
-EnableLCD:: ; 007b (0:007b)
- ld a,[$ff40]
- set 7,a
- ld [$ff40],a
- ret
+INCLUDE "home.asm"
-CleanLCD_OAM:: ; 0082 (0:0082)
- xor a
- ld hl,wOAMBuffer
- ld b,$a0
-.loop
- ld [hli],a
- dec b
- jr nz,.loop
- ret
-ResetLCD_OAM:: ; 008d (0:008d)
- ld a,$a0
- ld hl,wOAMBuffer
- ld de,$0004
- ld b,$28
-.loop
- ld [hl],a
- add hl,de
- dec b
- jr nz,.loop
- ret
-
-FarCopyData:: ; 009d (0:009d)
-; copy bc bytes of data from a:hl to de
- ld [$CEE9],a ; save future bank # for later
- ld a,[H_LOADEDROMBANK] ; get current bank #
- push af
- ld a,[$CEE9] ; get future bank #, switch
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call CopyData
- pop af ; okay, done, time to switch back
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-CopyData:: ; 00b5 (0:00b5)
-; copy bc bytes of data from hl to de
- ld a,[hli]
- ld [de],a
- inc de
- dec bc
- ld a,c
- or b
- jr nz,CopyData
- ret
-
-SECTION "romheader",ROM0[$100]
- nop
- jp Start
-
-SECTION "start",ROM0[$150]
-Start:: ; 0150 (0:0150)
- cp $11 ; value that indicates Gameboy Color
- jr z,.gbcDetected
- xor a
- jr .storeValue
-.gbcDetected
- ld a,$00
-.storeValue
- ld [$cf1a],a ; same value ($00) either way
- jp InitGame
-
-; this function directly reads the joypad I/O register
-; it reads many times in order to give the joypad a chance to stabilize
-; it saves a result in [$fff8] in the following format
-; (set bit indicates pressed button)
-; bit 0 - A button
-; bit 1 - B button
-; bit 2 - Select button
-; bit 3 - Start button
-; bit 4 - Right
-; bit 5 - Left
-; bit 6 - Up
-; bit 7 - Down
-ReadJoypadRegister:: ; 015f (0:015f)
- ld a,%00100000 ; select direction keys
- ld c,$00
- ld [rJOYP],a
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- cpl ; complement the result so that a set bit indicates a pressed key
- and a,%00001111
- swap a ; put direction keys in upper nibble
- ld b,a
- ld a,%00010000 ; select button keys
- ld [rJOYP],a
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- ld a,[rJOYP]
- cpl ; complement the result so that a set bit indicates a pressed key
- and a,%00001111
- or b ; put button keys in lower nibble
- ld [H_JOYPADSTATE],a ; save joypad state
- ld a,%00110000 ; unselect all keys
- ld [rJOYP],a
- ret
-
-; function to update the joypad state variables
-; output:
-; [H_NEWLYRELEASEDBUTTONS] = keys released since last time
-; [H_NEWLYPRESSEDBUTTONS] = keys pressed since last time
-; [H_CURRENTPRESSEDBUTTONS] = currently pressed keys
-GetJoypadState:: ; 019a (0:019a)
- ld a, [H_LOADEDROMBANK]
- push af
- ld a,Bank(_GetJoypadState)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call _GetJoypadState
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-INCLUDE "data/map_header_pointers.asm"
-
-; this function calls a function that takes necessary actions
-; at the beginning of each overworld loop iteration as the player jumps
-; down a ledge
-; it also ends the jump when it's completed
-HandleMidJump:: ; 039e (0:039e)
- ld b, BANK(_HandleMidJump)
- ld hl, _HandleMidJump
- jp Bankswitch
-
-; this is jumped to immediately after loading a save / starting a new game / loading a new map
-EnterMap:: ; 03a6 (0:03a6)
- ld a,$ff
- ld [wJoypadForbiddenButtonsMask],a
- call LoadMapData ; load map data
- callba Func_c335 ; initialize some variables
- ld hl,$d72c
- bit 0,[hl]
- jr z,.doNotCountSteps
- ld a,$03
- ld [$d13c],a ; some kind of step counter (counts up to 3 steps?)
-.doNotCountSteps
- ld hl,$d72e
- bit 5,[hl] ; did a battle happen immediately before this?
- res 5,[hl] ; unset the "battle just happened" flag
- call z,Func_12e7
- call nz,MapEntryAfterBattle
- ld hl,$d732
- ld a,[hl]
- and a,$18
- jr z,.didNotFlyOrTeleportIn
- res 3,[hl]
- callba Func_70510 ; display fly/teleport in graphical effect
- call UpdateSprites ; move sprites
-.didNotFlyOrTeleportIn
- callba CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
- ld hl,$d72d
- res 5,[hl]
- call UpdateSprites ; move sprites
- ld hl,$d126
- set 5,[hl]
- set 6,[hl]
- xor a
- ld [wJoypadForbiddenButtonsMask],a
-
-OverworldLoop:: ; 03ff (0:03ff)
- call DelayFrame
-OverworldLoopLessDelay:: ; 0402 (0:0402)
- call DelayFrame
- call LoadGBPal
- ld a,[$d736]
- bit 6,a ; jumping down a ledge?
- call nz, HandleMidJump
- ld a,[wWalkCounter]
- and a
- jp nz,.moveAhead ; if the player sprite has not yet completed the walking animation
- call GetJoypadStateOverworld ; get joypad state (which is possibly simulated)
- callba SafariZoneCheck
- ld a,[$da46]
- and a
- jp nz,WarpFound2
- ld hl,$d72d
- bit 3,[hl]
- res 3,[hl]
- jp nz,WarpFound2
- ld a,[$d732]
- and a,$18
- jp nz,HandleFlyOrTeleportAway
- ld a,[W_CUROPPONENT]
- and a
- jp nz,.newBattle
- ld a,[$d730]
- bit 7,a ; are we simulating button presses?
- jr z,.notSimulating
- ld a,[H_CURRENTPRESSEDBUTTONS]
- jr .checkIfStartIsPressed
-.notSimulating
- ld a,[H_NEWLYPRESSEDBUTTONS]
-.checkIfStartIsPressed
- bit 3,a ; start button
- jr z,.startButtonNotPressed
-; if START is pressed
- xor a
- ld [$ff8c],a ; the $2920 ID for the start menu is 0
- jp .displayDialogue
-.startButtonNotPressed
- bit 0,a ; A button
- jp z,.checkIfDownButtonIsPressed
-; if A is pressed
- ld a,[$d730]
- bit 2,a
- jp nz,.noDirectionButtonsPressed
- call Func_30fd
- jr nz,.checkForOpponent
- call Func_3eb5 ; check for hidden items, PC's, etc.
- ld a,[$ffeb]
- and a
- jp z,OverworldLoop
- call IsSpriteOrSignInFrontOfPlayer ; check for sign or sprite in front of the player
- ld a,[$ff8c] ; $2920 ID for NPC/sign text, if any
- and a
- jp z,OverworldLoop
-.displayDialogue
- ld a,$35
- call Predef ; check what is in front of the player
- call UpdateSprites ; move sprites
- ld a,[wFlags_0xcd60]
- bit 2,a
- jr nz,.checkForOpponent
- bit 0,a
- jr nz,.checkForOpponent
- FuncCoord 8, 9 ; $c45c
- ld a,[Coord]
- ld [$cf0e],a
- call DisplayTextID ; display either the start menu or the NPC/sign text
- ld a,[$cc47]
- and a
- jr z,.checkForOpponent
- dec a
- ld a,$00
- ld [$cc47],a
- jr z,.changeMap
- ld a,$52
- call Predef
- ld a,[W_CURMAP]
- ld [$d71a],a
- call Func_62ce
- ld a,[W_CURMAP]
- call SwitchToMapRomBank ; switch to the ROM bank of the current map
- ld hl,$d367
- set 7,[hl]
-.changeMap
- jp EnterMap
-.checkForOpponent
- ld a,[W_CUROPPONENT]
- and a
- jp nz,.newBattle
- jp OverworldLoop
-.noDirectionButtonsPressed
- ld hl,wFlags_0xcd60
- res 2,[hl]
- call UpdateSprites ; move sprites
- ld a,$01
- ld [$cc4b],a
- ld a,[$d528] ; the direction that was pressed last time
- and a
- jp z,OverworldLoop
-; if a direction was pressed last time
- ld [$d529],a ; save the last direction
- xor a
- ld [$d528],a ; zero the direction
- jp OverworldLoop
-.checkIfDownButtonIsPressed
- ld a,[H_CURRENTPRESSEDBUTTONS] ; current joypad state
- bit 7,a ; down button
- jr z,.checkIfUpButtonIsPressed
- ld a,$01
- ld [$c103],a
- ld a,$04
- jr .handleDirectionButtonPress
-.checkIfUpButtonIsPressed
- bit 6,a ; up button
- jr z,.checkIfLeftButtonIsPressed
- ld a,$ff
- ld [$c103],a
- ld a,$08
- jr .handleDirectionButtonPress
-.checkIfLeftButtonIsPressed
- bit 5,a ; left button
- jr z,.checkIfRightButtonIsPressed
- ld a,$ff
- ld [$c105],a
- ld a,$02
- jr .handleDirectionButtonPress
-.checkIfRightButtonIsPressed
- bit 4,a ; right button
- jr z,.noDirectionButtonsPressed
- ld a,$01
- ld [$c105],a
-.handleDirectionButtonPress
- ld [$d52a],a ; new direction
- ld a,[$d730]
- bit 7,a ; are we simulating button presses?
- jr nz,.noDirectionChange ; ignore direction changes if we are
- ld a,[$cc4b]
- and a
- jr z,.noDirectionChange
- ld a,[$d52a] ; new direction
- ld b,a
- ld a,[$d529] ; old direction
- cp b
- jr z,.noDirectionChange
-; the code below is strange
-; it computes whether or not the player did a 180 degree turn, but then overwrites the result
-; also, it does a seemingly pointless loop afterwards
- swap a ; put old direction in upper half
- or b ; put new direction in lower half
- cp a,$48 ; change dir from down to up
- jr nz,.notDownToUp
- ld a,$02
- ld [$d528],a
- jr .oddLoop
-.notDownToUp
- cp a,$84 ; change dir from up to down
- jr nz,.notUpToDown
- ld a,$01
- ld [$d528],a
- jr .oddLoop
-.notUpToDown
- cp a,$12 ; change dir from right to left
- jr nz,.notRightToLeft
- ld a,$04
- ld [$d528],a
- jr .oddLoop
-.notRightToLeft
- cp a,$21 ; change dir from left to right
- jr nz,.oddLoop
- ld a,$08
- ld [$d528],a
-.oddLoop
- ld hl,wFlags_0xcd60
- set 2,[hl]
- ld hl,$cc4b
- dec [hl]
- jr nz,.oddLoop
- ld a,[$d52a]
- ld [$d528],a
- call NewBattle
- jp c,.battleOccurred
- jp OverworldLoop
-.noDirectionChange
- ld a,[$d52a] ; current direction
- ld [$d528],a ; save direction
- call UpdateSprites ; move sprites
- ld a,[$d700]
- cp a,$02 ; surfing
- jr z,.surfing
-; not surfing
- call CollisionCheckOnLand
- jr nc,.noCollision
- push hl
- ld hl,$d736
- bit 2,[hl]
- pop hl
- jp z,OverworldLoop
- push hl
- call ExtraWarpCheck ; sets carry if there is a potential to warp
- pop hl
- jp c,CheckWarpsCollision
- jp OverworldLoop
-.surfing
- call CollisionCheckOnWater
- jp c,OverworldLoop
-.noCollision
- ld a,$08
- ld [wWalkCounter],a
- jr .moveAhead2
-.moveAhead
- ld a,[$d736]
- bit 7,a
- jr z,.noSpinning
- callba LoadSpinnerArrowTiles ; spin while moving
-.noSpinning
- call UpdateSprites ; move sprites
-.moveAhead2
- ld hl,wFlags_0xcd60
- res 2,[hl]
- ld a,[$d700]
- dec a ; riding a bike?
- jr nz,.normalPlayerSpriteAdvancement
- ld a,[$d736]
- bit 6,a ; jumping a ledge?
- jr nz,.normalPlayerSpriteAdvancement
- call BikeSpeedup ; if riding a bike and not jumping a ledge
-.normalPlayerSpriteAdvancement
- call AdvancePlayerSprite
- ld a,[wWalkCounter]
- and a
- jp nz,CheckMapConnections ; it seems like this check will never succeed (the other place where CheckMapConnections is run works)
-; walking animation finished
- ld a,[$d730]
- bit 7,a
- jr nz,.doneStepCounting ; if button presses are being simulated, don't count steps
-; step counting
- ld hl,$d13b ; step counter
- dec [hl]
- ld a,[$d72c]
- bit 0,a
- jr z,.doneStepCounting
- ld hl,$d13c
- dec [hl]
- jr nz,.doneStepCounting
- ld hl,$d72c
- res 0,[hl]
-.doneStepCounting
- ld a,[$d790]
- bit 7,a ; in the safari zone?
- jr z,.notSafariZone
- callba SafariZoneCheckSteps
- ld a,[$da46]
- and a
- jp nz,WarpFound2
-.notSafariZone
- ld a,[W_ISINBATTLE]
- and a
- jp nz,CheckWarpsNoCollision
- ld a,$13
- call Predef ; decrement HP of poisoned pokemon
- ld a,[$d12d]
- and a
- jp nz,HandleBlackOut ; if all pokemon fainted
-.newBattle
- call NewBattle
- ld hl,$d736
- res 2,[hl]
- jp nc,CheckWarpsNoCollision ; check for warps if there was no battle
-.battleOccurred
- ld hl,$d72d
- res 6,[hl]
- ld hl,W_FLAGS_D733
- res 3,[hl]
- ld hl,$d126
- set 5,[hl]
- set 6,[hl]
- xor a
- ld [H_CURRENTPRESSEDBUTTONS],a ; clear joypad state
- ld a,[W_CURMAP]
- cp a,CINNABAR_GYM
- jr nz,.notCinnabarGym
- ld hl,$d79b
- set 7,[hl]
-.notCinnabarGym
- ld hl,$d72e
- set 5,[hl]
- ld a,[W_CURMAP]
- cp a,OAKS_LAB
- jp z,.noFaintCheck
- callab AnyPlayerPokemonAliveCheck ; check if all the player's pokemon fainted
- ld a,d
- and a
- jr z,.allPokemonFainted
-.noFaintCheck
- ld c,$0a
- call DelayFrames
- jp EnterMap
-.allPokemonFainted
- ld a,$ff
- ld [$d057],a
- call RunMapScript
- jp HandleBlackOut
-
-; function to determine if there will be a battle and execute it (either a trainer battle or wild battle)
-; sets carry if a battle occurred and unsets carry if not
-NewBattle:: ; 0683 (0:0683)
- ld a,[$d72d]
- bit 4,a
- jr nz,.noBattle
- call Func_30fd
- jr nz,.noBattle
- ld a,[$d72e]
- bit 4,a
- jr nz,.noBattle
- ld b, BANK(InitBattle)
- ld hl, InitBattle
- jp Bankswitch ; determines if a battle will occur and runs the battle if so
-.noBattle
- and a
- ret
-
-; function to make bikes twice as fast as walking
-BikeSpeedup:: ; 06a0 (0:06a0)
- ld a,[$cc57]
- and a
- ret nz
- ld a,[W_CURMAP]
- cp a,ROUTE_17 ; Cycling Road
- jr nz,.goFaster
- ld a,[H_CURRENTPRESSEDBUTTONS] ; current joypad state
- and a,%01110000 ; bit mask for up, left, right buttons
- ret nz
-.goFaster
- jp AdvancePlayerSprite
-
-; check if the player has stepped onto a warp after having not collided
-CheckWarpsNoCollision:: ; 06b4 (0:06b4)
- ld a,[$d3ae] ; number of warps
- and a
- jp z,CheckMapConnections
- ld a,[$d3ae] ; number of warps
- ld b,$00
- ld c,a
- ld a,[W_YCOORD]
- ld d,a
- ld a,[W_XCOORD]
- ld e,a
- ld hl,$d3af ; start of warp entries
-CheckWarpsNoCollisionLoop:: ; 06cc (0:06cc)
- ld a,[hli] ; check if the warp's Y position matches
- cp d
- jr nz,CheckWarpsNoCollisionRetry1
- ld a,[hli] ; check if the warp's X position matches
- cp e
- jr nz,CheckWarpsNoCollisionRetry2
-; if a match was found
- push hl
- push bc
- ld hl,$d736
- set 2,[hl]
- callba Func_c49d ; check if the player sprite is standing on a "door" tile
- pop bc
- pop hl
- jr c,WarpFound1 ; if it is, go to 0735
- push hl
- push bc
- call ExtraWarpCheck ; sets carry if the warp is confirmed
- pop bc
- pop hl
- jr nc,CheckWarpsNoCollisionRetry2
-; if the extra check passed
- ld a,[W_FLAGS_D733]
- bit 2,a
- jr nz,WarpFound1
- push de
- push bc
- call GetJoypadState
- pop bc
- pop de
- ld a,[H_CURRENTPRESSEDBUTTONS] ; current joypad state
- and a,%11110000 ; bit mask for directional buttons
- jr z,CheckWarpsNoCollisionRetry2 ; if directional buttons aren't being pressed, do not pass through the warp
- jr WarpFound1
-
-; check if the player has stepped onto a warp after having collided
-CheckWarpsCollision:: ; 0706 (0:0706)
- ld a,[$d3ae] ; number of warps
- ld c,a
- ld hl,$d3af ; start of warp entries
-.loop
- ld a,[hli] ; Y coordinate of warp
- ld b,a
- ld a,[W_YCOORD]
- cp b
- jr nz,.retry1
- ld a,[hli] ; X coordinate of warp
- ld b,a
- ld a,[W_XCOORD]
- cp b
- jr nz,.retry2
- ld a,[hli]
- ld [$d42f],a ; save target warp ID
- ld a,[hl]
- ld [$ff8b],a ; save target map
- jr WarpFound2
-.retry1
- inc hl
-.retry2
- inc hl
- inc hl
- dec c
- jr nz,.loop
- jp OverworldLoop
-
-CheckWarpsNoCollisionRetry1:: ; 072f (0:072f)
- inc hl
-CheckWarpsNoCollisionRetry2:: ; 0730 (0:0730)
- inc hl
- inc hl
- jp ContinueCheckWarpsNoCollisionLoop
-
-WarpFound1:: ; 0735 (0:0735)
- ld a,[hli]
- ld [$d42f],a ; save target warp ID
- ld a,[hli]
- ld [$ff8b],a ; save target map
-
-WarpFound2:: ; 073c (0:073c)
- ld a,[$d3ae] ; number of warps
- sub c
- ld [$d73b],a ; save ID of used warp
- ld a,[W_CURMAP]
- ld [$d73c],a
- call CheckIfInOutsideMap
- jr nz,.indoorMaps
-; this is for handling "outside" maps that can't have the 0xFF destination map
- ld a,[W_CURMAP]
- ld [wLastMap],a
- ld a,[W_CURMAPWIDTH]
- ld [$d366],a
- ld a,[$ff8b] ; destination map number
- ld [W_CURMAP],a ; change current map to destination map
- cp a,ROCK_TUNNEL_1
- jr nz,.notRockTunnel
- ld a,$06
- ld [$d35d],a
- call GBFadeIn1
-.notRockTunnel
- call PlayMapChangeSound
- jr .done
-; for maps that can have the 0xFF destination map, which means to return to the outside map; not all these maps are necessarily indoors, though
-.indoorMaps
- ld a,[$ff8b] ; destination map
- cp a,$ff
- jr z,.goBackOutside
-; if not going back to the previous map
- ld [W_CURMAP],a ; current map number
- callba Func_70787 ; check if the warp was a Silph Co. teleporter
- ld a,[$cd5b]
- dec a
- jr nz,.notTeleporter
-; if it's a Silph Co. teleporter
- ld hl,$d732
- set 3,[hl]
- call DoFlyOrTeleportAwayGraphics
- jr .skipMapChangeSound
-.notTeleporter
- call PlayMapChangeSound
-.skipMapChangeSound
- ld hl,$d736
- res 0,[hl]
- res 1,[hl]
- jr .done
-.goBackOutside
- ld a,[wLastMap]
- ld [W_CURMAP],a
- call PlayMapChangeSound
- xor a
- ld [$d35d],a
-.done
- ld hl,$d736
- set 0,[hl]
- call Func_12da
- jp EnterMap
-
-ContinueCheckWarpsNoCollisionLoop:: ; 07b5 (0:07b5)
- inc b ; increment warp number
- dec c ; decrement number of warps
- jp nz,CheckWarpsNoCollisionLoop
-
-; if no matching warp was found
-CheckMapConnections:: ; 07ba (0:07ba)
-.checkWestMap
- ld a,[W_XCOORD]
- cp a,$ff
- jr nz,.checkEastMap
- ld a,[$d387]
- ld [W_CURMAP],a
- ld a,[$d38f] ; new X coordinate upon entering west map
- ld [W_XCOORD],a
- ld a,[W_YCOORD]
- ld c,a
- ld a,[$d38e] ; Y adjustment upon entering west map
- add c
- ld c,a
- ld [W_YCOORD],a
- ld a,[$d390] ; pointer to upper left corner of map without adjustment for Y position
- ld l,a
- ld a,[$d391]
- ld h,a
- srl c
- jr z,.savePointer1
-.pointerAdjustmentLoop1
- ld a,[$d38d] ; width of connected map
- add a,$06
- ld e,a
- ld d,$00
- ld b,$00
- add hl,de
- dec c
- jr nz,.pointerAdjustmentLoop1
-.savePointer1
- ld a,l
- ld [$d35f],a ; pointer to upper left corner of current tile block map section
- ld a,h
- ld [$d360],a
- jp .loadNewMap
-.checkEastMap
- ld b,a
- ld a,[$d525] ; map width
- cp b
- jr nz,.checkNorthMap
- ld a,[$d392]
- ld [W_CURMAP],a
- ld a,[$d39a] ; new X coordinate upon entering east map
- ld [W_XCOORD],a
- ld a,[W_YCOORD]
- ld c,a
- ld a,[$d399] ; Y adjustment upon entering east map
- add c
- ld c,a
- ld [W_YCOORD],a
- ld a,[$d39b] ; pointer to upper left corner of map without adjustment for Y position
- ld l,a
- ld a,[$d39c]
- ld h,a
- srl c
- jr z,.savePointer2
-.pointerAdjustmentLoop2
- ld a,[$d398]
- add a,$06
- ld e,a
- ld d,$00
- ld b,$00
- add hl,de
- dec c
- jr nz,.pointerAdjustmentLoop2
-.savePointer2
- ld a,l
- ld [$d35f],a ; pointer to upper left corner of current tile block map section
- ld a,h
- ld [$d360],a
- jp .loadNewMap
-.checkNorthMap
- ld a,[W_YCOORD]
- cp a,$ff
- jr nz,.checkSouthMap
- ld a,[$d371]
- ld [W_CURMAP],a
- ld a,[$d378] ; new Y coordinate upon entering north map
- ld [W_YCOORD],a
- ld a,[W_XCOORD]
- ld c,a
- ld a,[$d379] ; X adjustment upon entering north map
- add c
- ld c,a
- ld [W_XCOORD],a
- ld a,[$d37a] ; pointer to upper left corner of map without adjustment for X position
- ld l,a
- ld a,[$d37b]
- ld h,a
- ld b,$00
- srl c
- add hl,bc
- ld a,l
- ld [$d35f],a ; pointer to upper left corner of current tile block map section
- ld a,h
- ld [$d360],a
- jp .loadNewMap
-.checkSouthMap
- ld b,a
- ld a,[$d524]
- cp b
- jr nz,.didNotEnterConnectedMap
- ld a,[$d37c]
- ld [W_CURMAP],a
- ld a,[$d383] ; new Y coordinate upon entering south map
- ld [W_YCOORD],a
- ld a,[W_XCOORD]
- ld c,a
- ld a,[$d384] ; X adjustment upon entering south map
- add c
- ld c,a
- ld [W_XCOORD],a
- ld a,[$d385] ; pointer to upper left corner of map without adjustment for X position
- ld l,a
- ld a,[$d386]
- ld h,a
- ld b,$00
- srl c
- add hl,bc
- ld a,l
- ld [$d35f],a ; pointer to upper left corner of current tile block map section
- ld a,h
- ld [$d360],a
-.loadNewMap ; load the connected map that was entered
- call LoadMapHeader
- call Func_2312 ; music
- ld b,$09
- call GoPAL_SET
-; Since the sprite set shouldn't change, this will just update VRAM slots at
-; $C2XE without loading any tile patterns.
- callba InitMapSprites
- call LoadTileBlockMap
- jp OverworldLoopLessDelay
-.didNotEnterConnectedMap
- jp OverworldLoop
-
-; function to play a sound when changing maps
-PlayMapChangeSound:: ; 08c9 (0:08c9)
- FuncCoord 8, 8 ; $c448
- ld a,[Coord] ; upper left tile of the 4x4 square the player's sprite is standing on
- cp a,$0b ; door tile in tileset 0
- jr nz,.didNotGoThroughDoor
- ld a,(SFX_02_57 - SFX_Headers_02) / 3
- jr .playSound
-.didNotGoThroughDoor
- ld a,(SFX_02_5c - SFX_Headers_02) / 3
-.playSound
- call PlaySound
- ld a,[$d35d]
- and a
- ret nz
- jp GBFadeIn1
-
-CheckIfInOutsideMap:: ; 08e1 (0:08e1)
-; If the player is in an outside map (a town or route), set the z flag
- ld a, [W_CURMAPTILESET]
- and a ; most towns/routes have tileset 0 (OVERWORLD)
- ret z
- cp PLATEAU ; Route 23 / Indigo Plateau
- ret
-
-; this function is an extra check that sometimes has to pass in order to warp, beyond just standing on a warp
-; the "sometimes" qualification is necessary because of CheckWarpsNoCollision's behavior
-; depending on the map, either "function 1" or "function 2" is used for the check
-; "function 1" passes when the player is at the edge of the map and is facing towards the outside of the map
-; "function 2" passes when the the tile in front of the player is among a certain set
-; sets carry if the check passes, otherwise clears carry
-ExtraWarpCheck:: ; 08e9 (0:08e9)
- ld a, [W_CURMAP]
- cp SS_ANNE_3
- jr z, .useFunction1
- cp ROCKET_HIDEOUT_1
- jr z, .useFunction2
- cp ROCKET_HIDEOUT_2
- jr z, .useFunction2
- cp ROCKET_HIDEOUT_4
- jr z, .useFunction2
- cp ROCK_TUNNEL_1
- jr z, .useFunction2
- ld a, [W_CURMAPTILESET]
- and a ; outside tileset (OVERWORLD)
- jr z, .useFunction2
- cp SHIP ; S.S. Anne tileset
- jr z, .useFunction2
- cp SHIP_PORT ; Vermilion Port tileset
- jr z, .useFunction2
- cp PLATEAU ; Indigo Plateau tileset
- jr z, .useFunction2
-.useFunction1
- ld hl, Func_c3ff
- jr .doBankswitch
-.useFunction2
- ld hl, Func_c44e
-.doBankswitch
- ld b, BANK(Func_c44e)
- jp Bankswitch
-
-MapEntryAfterBattle:: ; 091f (0:091f)
- callba Func_c35f ; function that appears to disable warp testing after collisions if the player is standing on a warp
- ld a,[$d35d]
- and a
- jp z,GBFadeIn2
- jp LoadGBPal
-
-; for when all the player's pokemon faint
-; other code prints the "you blacked out" message before this is called
-HandleBlackOut:: ; 0931 (0:0931)
- call GBFadeIn1
- ld a,$08
- call StopMusic
- ld hl,$d72e
- res 5,[hl]
- ld a,Bank(Func_40b0) ; Bank(Func_40b0) and Bank(Func_62ce) need to be equal.
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call Func_40b0
- call Func_62ce
- call Func_2312
- jp Func_5d5f
-
-StopMusic:: ; 0951 (0:0951)
- ld [wMusicHeaderPointer],a
- ld a,$ff
- ld [$c0ee],a
- call PlaySound
-.waitLoop
- ld a,[wMusicHeaderPointer]
- and a
- jr nz,.waitLoop
- jp StopAllSounds
-
-HandleFlyOrTeleportAway:: ; 0965 (0:0965)
- call UpdateSprites ; move sprites
- call Delay3
- xor a
- ld [$cf0b],a
- ld [$d700],a
- ld [$d057],a
- ld [$d35d],a
- ld hl,$d732
- set 2,[hl]
- res 5,[hl]
- call DoFlyOrTeleportAwayGraphics
- ld a,Bank(Func_62ce)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call Func_62ce
- jp Func_5d5f
-
-; function that calls a function to do fly away or teleport away graphics
-DoFlyOrTeleportAwayGraphics:: ; 098f (0:098f)
- ld b, BANK(_DoFlyOrTeleportAwayGraphics)
- ld hl, _DoFlyOrTeleportAwayGraphics
- jp Bankswitch
-
-; load sprite graphics based on whether the player is standing, biking, or surfing
-LoadPlayerSpriteGraphics:: ; 0997 (0:0997)
- ld a,[$d700]
- dec a
- jr z,.ridingBike
- ld a,[$ffd7]
- and a
- jr nz,.determineGraphics
- jr .startWalking
-.ridingBike
- call IsBikeRidingAllowed
- jr c,.determineGraphics ; don't start walking if bike riding is allowed
-.startWalking
- xor a
- ld [$d700],a
- ld [$d11a],a
- jp LoadWalkingPlayerSpriteGraphics
-.determineGraphics
- ld a,[$d700]
- and a
- jp z,LoadWalkingPlayerSpriteGraphics
- dec a
- jp z,LoadBikePlayerSpriteGraphics
- dec a
- jp z,LoadSurfingPlayerSpriteGraphics
- jp LoadWalkingPlayerSpriteGraphics
-
-; function to check if bike riding is allowed on the current map
-; sets carry if bike is allowed, clears carry otherwise
-IsBikeRidingAllowed:: ; 09c5 (0:09c5)
- ld a,[W_CURMAP]
- cp a,ROUTE_23
- jr z,.allowed
- cp a,INDIGO_PLATEAU
- jr z,.allowed
- ld a,[W_CURMAPTILESET]
- ld b,a
- ld hl,BikeRidingTilesets
-.loop
- ld a,[hli]
- cp b
- jr z,.allowed
- inc a
- jr nz,.loop
- and a
- ret
-.allowed
- scf
- ret
-
-INCLUDE "data/bike_riding_tilesets.asm"
-
-; load the tile pattern data of the current tileset into VRAM
-LoadTilesetTilePatternData:: ; 09e8 (0:09e8)
- ld a,[$d52e]
- ld l,a
- ld a,[$d52f]
- ld h,a
- ld de,$9000
- ld bc,$0600
- ld a,[$d52b]
- jp FarCopyData2
-
-; this loads the current maps complete tile map (which references blocks, not individual tiles) to C6E8
-; it can also load partial tile maps of connected maps into a border of length 3 around the current map
-LoadTileBlockMap:: ; 09fc (0:09fc)
-; fill C6E8-CBFB with the background tile
- ld hl,$c6e8
- ld a,[$d3ad] ; background tile number
- ld d,a
- ld bc,$0514
-.backgroundTileLoop
- ld a,d
- ld [hli],a
- dec bc
- ld a,c
- or b
- jr nz,.backgroundTileLoop
-; load tile map of current map (made of tile block IDs)
-; a 3-byte border at the edges of the map is kept so that there is space for map connections
- ld hl,$c6e8
- ld a,[W_CURMAPWIDTH]
- ld [$ff8c],a
- add a,$06 ; border (east and west)
- ld [$ff8b],a ; map width + border
- ld b,$00
- ld c,a
-; make space for north border (next 3 lines)
- add hl,bc
- add hl,bc
- add hl,bc
- ld c,$03
- add hl,bc ; this puts us past the (west) border
- ld a,[$d36a] ; tile map pointer
- ld e,a
- ld a,[$d36b]
- ld d,a ; de = tile map pointer
- ld a,[W_CURMAPHEIGHT]
- ld b,a
-.rowLoop ; copy one row each iteration
- push hl
- ld a,[$ff8c] ; map width (without border)
- ld c,a
-.rowInnerLoop
- ld a,[de]
- inc de
- ld [hli],a
- dec c
- jr nz,.rowInnerLoop
-; add the map width plus the border to the base address of the current row to get the next row's address
- pop hl
- ld a,[$ff8b] ; map width + border
- add l
- ld l,a
- jr nc,.noCarry
- inc h
-.noCarry
- dec b
- jr nz,.rowLoop
-.northConnection
- ld a,[$d371]
- cp a,$ff
- jr z,.southConnection
- call SwitchToMapRomBank
- ld a,[$d372]
- ld l,a
- ld a,[$d373]
- ld h,a
- ld a,[$d374]
- ld e,a
- ld a,[$d375]
- ld d,a
- ld a,[$d376]
- ld [$ff8b],a
- ld a,[$d377]
- ld [$ff8c],a
- call LoadNorthSouthConnectionsTileMap
-.southConnection
- ld a,[$d37c]
- cp a,$ff
- jr z,.westConnection
- call SwitchToMapRomBank
- ld a,[$d37d]
- ld l,a
- ld a,[$d37e]
- ld h,a
- ld a,[$d37f]
- ld e,a
- ld a,[$d380]
- ld d,a
- ld a,[$d381]
- ld [$ff8b],a
- ld a,[$d382]
- ld [$ff8c],a
- call LoadNorthSouthConnectionsTileMap
-.westConnection
- ld a,[$d387]
- cp a,$ff
- jr z,.eastConnection
- call SwitchToMapRomBank
- ld a,[$d388]
- ld l,a
- ld a,[$d389]
- ld h,a
- ld a,[$d38a]
- ld e,a
- ld a,[$d38b]
- ld d,a
- ld a,[$d38c]
- ld b,a
- ld a,[$d38d]
- ld [$ff8b],a
- call LoadEastWestConnectionsTileMap
-.eastConnection
- ld a,[$d392]
- cp a,$ff
- jr z,.done
- call SwitchToMapRomBank
- ld a,[$d393]
- ld l,a
- ld a,[$d394]
- ld h,a
- ld a,[$d395]
- ld e,a
- ld a,[$d396]
- ld d,a
- ld a,[$d397]
- ld b,a
- ld a,[$d398]
- ld [$ff8b],a
- call LoadEastWestConnectionsTileMap
-.done
- ret
-
-LoadNorthSouthConnectionsTileMap:: ; 0ade (0:0ade)
- ld c,$03
-.loop
- push de
- push hl
- ld a,[$ff8b] ; width of connection
- ld b,a
-.innerLoop
- ld a,[hli]
- ld [de],a
- inc de
- dec b
- jr nz,.innerLoop
- pop hl
- pop de
- ld a,[$ff8c] ; width of connected map
- add l
- ld l,a
- jr nc,.noCarry1
- inc h
-.noCarry1
- ld a,[W_CURMAPWIDTH]
- add a,$06
- add e
- ld e,a
- jr nc,.noCarry2
- inc d
-.noCarry2
- dec c
- jr nz,.loop
- ret
-
-LoadEastWestConnectionsTileMap:: ; 0b02 (0:0b02)
- push hl
- push de
- ld c,$03
-.innerLoop
- ld a,[hli]
- ld [de],a
- inc de
- dec c
- jr nz,.innerLoop
- pop de
- pop hl
- ld a,[$ff8b] ; width of connected map
- add l
- ld l,a
- jr nc,.noCarry1
- inc h
-.noCarry1
- ld a,[W_CURMAPWIDTH]
- add a,$06
- add e
- ld e,a
- jr nc,.noCarry2
- inc d
-.noCarry2
- dec b
- jr nz,LoadEastWestConnectionsTileMap
- ret
-
-; function to check if there is a sign or sprite in front of the player
-; if so, it is stored in [$FF8C]
-; if not, [$FF8C] is set to 0
-IsSpriteOrSignInFrontOfPlayer:: ; 0b23 (0:0b23)
- xor a
- ld [$ff8c],a
- ld a,[$d4b0] ; number of signs in the map
- and a
- jr z,.extendRangeOverCounter
-; if there are signs
- ld a,$35
- call Predef ; get the coordinates in front of the player in de
- ld hl,$d4b1 ; start of sign coordinates
- ld a,[$d4b0] ; number of signs in the map
- ld b,a
- ld c,$00
-.signLoop
- inc c
- ld a,[hli] ; sign Y
- cp d
- jr z,.yCoordMatched
- inc hl
- jr .retry
-.yCoordMatched
- ld a,[hli] ; sign X
- cp e
- jr nz,.retry
-.xCoordMatched
-; found sign
- push hl
- push bc
- ld hl,$d4d1 ; start of sign text ID's
- ld b,$00
- dec c
- add hl,bc
- ld a,[hl]
- ld [$ff8c],a ; store sign text ID
- pop bc
- pop hl
- ret
-.retry
- dec b
- jr nz,.signLoop
-; check if the player is front of a counter in a pokemon center, pokemart, etc. and if so, extend the range at which he can talk to the NPC
-.extendRangeOverCounter
- ld a,$35
- call Predef ; get the tile in front of the player in c
- ld hl,$d532 ; list of tiles that extend talking range (counter tiles)
- ld b,$03
- ld d,$20 ; talking range in pixels (long range)
-.counterTilesLoop
- ld a,[hli]
- cp c
- jr z,IsSpriteInFrontOfPlayer2 ; jumps if the tile in front of the player is a counter tile
- dec b
- jr nz,.counterTilesLoop
-
-; part of the above function, but sometimes its called on its own, when signs are irrelevant
-; the caller must zero [$FF8C]
-IsSpriteInFrontOfPlayer:: ; 0b6b (0:0b6b)
- ld d,$10 ; talking range in pixels (normal range)
-IsSpriteInFrontOfPlayer2:: ; 0b6d (0:0b6d)
- ld bc,$3c40 ; Y and X position of player sprite
- ld a,[$c109] ; direction the player is facing
-.checkIfPlayerFacingUp
- cp a,$04
- jr nz,.checkIfPlayerFacingDown
-; facing up
- ld a,b
- sub d
- ld b,a
- ld a,$08
- jr .doneCheckingDirection
-.checkIfPlayerFacingDown
- cp a,$00
- jr nz,.checkIfPlayerFacingRight
-; facing down
- ld a,b
- add d
- ld b,a
- ld a,$04
- jr .doneCheckingDirection
-.checkIfPlayerFacingRight
- cp a,$0c
- jr nz,.playerFacingLeft
-; facing right
- ld a,c
- add d
- ld c,a
- ld a,$01
- jr .doneCheckingDirection
-.playerFacingLeft
-; facing left
- ld a,c
- sub d
- ld c,a
- ld a,$02
-.doneCheckingDirection
- ld [$d52a],a
- ld a,[$d4e1] ; number of sprites
- and a
- ret z
-; if there are sprites
- ld hl,$c110
- ld d,a
- ld e,$01
-.spriteLoop
- push hl
- ld a,[hli] ; image (0 if no sprite)
- and a
- jr z,.nextSprite
- inc l
- ld a,[hli] ; sprite visibility
- inc a
- jr z,.nextSprite
- inc l
- ld a,[hli] ; Y location
- cp b
- jr nz,.nextSprite
- inc l
- ld a,[hl] ; X location
- cp c
- jr z,.foundSpriteInFrontOfPlayer
-.nextSprite
- pop hl
- ld a,l
- add a,$10
- ld l,a
- inc e
- dec d
- jr nz,.spriteLoop
- ret
-.foundSpriteInFrontOfPlayer
- pop hl
- ld a,l
- and a,$f0
- inc a
- ld l,a
- set 7,[hl]
- ld a,e
- ld [$ff8c],a ; store sprite ID
- ret
-
-; function to check if the player will jump down a ledge and check if the tile ahead is passable (when not surfing)
-; sets the carry flag if there is a collision, and unsets it if there isn't a collision
-CollisionCheckOnLand:: ; 0bd1 (0:0bd1)
- ld a,[$d736]
- bit 6,a ; is the player jumping?
- jr nz,.noCollision
-; if not jumping a ledge
- ld a,[$cd38]
- and a
- jr nz,.noCollision
- ld a,[$d52a] ; the direction that the player is trying to go in
- ld d,a
- ld a,[$c10c] ; the player sprite's collision data (bit field) (set in the sprite movement code)
- and d ; check if a sprite is in the direction the player is trying to go
- jr nz,.collision
- xor a
- ld [$ff8c],a
- call IsSpriteInFrontOfPlayer ; check for sprite collisions again? when does the above check fail to detect a sprite collision?
- ld a,[$ff8c]
- and a ; was there a sprite collision?
- jr nz,.collision
-; if no sprite collision
- ld hl,TilePairCollisionsLand
- call CheckForJumpingAndTilePairCollisions
- jr c,.collision
- call CheckTilePassable
- jr nc,.noCollision
-.collision
- ld a,[$c02a]
- cp a,(SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing
- jr z,.setCarry
- ld a,(SFX_02_5b - SFX_Headers_02) / 3
- call PlaySound ; play collision sound (if it's not already playing)
-.setCarry
- scf
- ret
-.noCollision
- and a
- ret
-
-; function that checks if the tile in front of the player is passable
-; clears carry if it is, sets carry if not
-CheckTilePassable:: ; 0c10 (0:0c10)
- ld a,$35
- call Predef ; get tile in front of player
- ld a,[$cfc6] ; tile in front of player
- ld c,a
- ld hl,$d530 ; pointer to list of passable tiles
- ld a,[hli]
- ld h,[hl]
- ld l,a ; hl now points to passable tiles
-.loop
- ld a,[hli]
- cp a,$ff
- jr z,.tileNotPassable
- cp c
- ret z
- jr .loop
-.tileNotPassable
- scf
- ret
-
-; check if the player is going to jump down a small ledge
-; and check for collisions that only occur between certain pairs of tiles
-; Input: hl - address of directional collision data
-; sets carry if there is a collision and unsets carry if not
-CheckForJumpingAndTilePairCollisions:: ; 0c2a (0:0c2a)
- push hl
- ld a,$35
- call Predef ; get the tile in front of the player
- push de
- push bc
- callba HandleLedges ; check if the player is trying to jump a ledge
- pop bc
- pop de
- pop hl
- and a
- ld a,[$d736]
- bit 6,a ; is the player jumping?
- ret nz
-; if not jumping
-
-Func_c44:: ; 0c44 (0:0c44)
- FuncCoord 8, 9 ; $c45c
- ld a,[Coord] ; tile the player is on
- ld [$cf0e],a
-
-CheckForTilePairCollisions:: ; 0c4a (0:0c4a)
- ld a,[$cfc6] ; tile in front of the player
- ld c,a
-.tilePairCollisionLoop
- ld a,[W_CURMAPTILESET] ; tileset number
- ld b,a
- ld a,[hli]
- cp a,$ff
- jr z,.noMatch
- cp b
- jr z,.tilesetMatches
- inc hl
-.retry
- inc hl
- jr .tilePairCollisionLoop
-.tilesetMatches
- ld a,[$cf0e] ; tile the player is on
- ld b,a
- ld a,[hl]
- cp b
- jr z,.currentTileMatchesFirstInPair
- inc hl
- ld a,[hl]
- cp b
- jr z,.currentTileMatchesSecondInPair
- jr .retry
-.currentTileMatchesFirstInPair
- inc hl
- ld a,[hl]
- cp c
- jr z,.foundMatch
- jr .tilePairCollisionLoop
-.currentTileMatchesSecondInPair
- dec hl
- ld a,[hli]
- cp c
- inc hl
- jr nz,.tilePairCollisionLoop
-.foundMatch
- scf
- ret
-.noMatch
- and a
- ret
-
-; FORMAT: tileset number, tile 1, tile 2
-; terminated by 0xFF
-; these entries indicate that the player may not cross between tile 1 and tile 2
-; it's mainly used to simulate differences in elevation
-
-TilePairCollisionsLand:: ; 0c7e (0:0c7e)
- db CAVERN, $20, $05
- db CAVERN, $41, $05
- db FOREST, $30, $2E
- db CAVERN, $2A, $05
- db CAVERN, $05, $21
- db FOREST, $52, $2E
- db FOREST, $55, $2E
- db FOREST, $56, $2E
- db FOREST, $20, $2E
- db FOREST, $5E, $2E
- db FOREST, $5F, $2E
- db $FF
-
-TilePairCollisionsWater:: ; 0ca0 (0:0ca0)
- db FOREST, $14, $2E
- db FOREST, $48, $2E
- db CAVERN, $14, $05
- db $FF
-
-; this builds a tile map from the tile block map based on the current X/Y coordinates of the player's character
-LoadCurrentMapView:: ; 0caa (0:0caa)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[$d52b] ; tile data ROM bank
- ld [H_LOADEDROMBANK],a
- ld [$2000],a ; switch to ROM bank that contains tile data
- ld a,[$d35f] ; address of upper left corner of current map view
- ld e,a
- ld a,[$d360]
- ld d,a
- ld hl,wTileMapBackup
- ld b,$05
-.rowLoop ; each loop iteration fills in one row of tile blocks
- push hl
- push de
- ld c,$06
-.rowInnerLoop ; loop to draw each tile block of the current row
- push bc
- push de
- push hl
- ld a,[de]
- ld c,a ; tile block number
- call DrawTileBlock
- pop hl
- pop de
- pop bc
- inc hl
- inc hl
- inc hl
- inc hl
- inc de
- dec c
- jr nz,.rowInnerLoop
-; update tile block map pointer to next row's address
- pop de
- ld a,[W_CURMAPWIDTH]
- add a,$06
- add e
- ld e,a
- jr nc,.noCarry
- inc d
-.noCarry
-; update tile map pointer to next row's address
- pop hl
- ld a,$60
- add l
- ld l,a
- jr nc,.noCarry2
- inc h
-.noCarry2
- dec b
- jr nz,.rowLoop
- ld hl,wTileMapBackup
- ld bc,$0000
-.adjustForYCoordWithinTileBlock
- ld a,[W_YBLOCKCOORD]
- and a
- jr z,.adjustForXCoordWithinTileBlock
- ld bc,$0030
- add hl,bc
-.adjustForXCoordWithinTileBlock
- ld a,[W_XBLOCKCOORD]
- and a
- jr z,.copyToVisibleAreaBuffer
- ld bc,$0002
- add hl,bc
-.copyToVisibleAreaBuffer
- ld de,wTileMap ; base address for the tiles that are directly transfered to VRAM during V-blank
- ld b,$12
-.rowLoop2
- ld c,$14
-.rowInnerLoop2
- ld a,[hli]
- ld [de],a
- inc de
- dec c
- jr nz,.rowInnerLoop2
- ld a,$04
- add l
- ld l,a
- jr nc,.noCarry3
- inc h
-.noCarry3
- dec b
- jr nz,.rowLoop2
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a ; restore previous ROM bank
- ret
-
-AdvancePlayerSprite:: ; 0d27 (0:0d27)
- ld a,[$c103] ; delta Y
- ld b,a
- ld a,[$c105] ; delta X
- ld c,a
- ld hl,wWalkCounter ; walking animation counter
- dec [hl]
- jr nz,.afterUpdateMapCoords
-; if it's the end of the animation, update the player's map coordinates
- ld a,[W_YCOORD]
- add b
- ld [W_YCOORD],a
- ld a,[W_XCOORD]
- add c
- ld [W_XCOORD],a
-.afterUpdateMapCoords
- ld a,[wWalkCounter] ; walking animation counter
- cp a,$07
- jp nz,.scrollBackgroundAndSprites
-; if this is the first iteration of the animation
- ld a,c
- cp a,$01
- jr nz,.checkIfMovingWest
-; moving east
- ld a,[$d526]
- ld e,a
- and a,$e0
- ld d,a
- ld a,e
- add a,$02
- and a,$1f
- or d
- ld [$d526],a
- jr .adjustXCoordWithinBlock
-.checkIfMovingWest
- cp a,$ff
- jr nz,.checkIfMovingSouth
-; moving west
- ld a,[$d526]
- ld e,a
- and a,$e0
- ld d,a
- ld a,e
- sub a,$02
- and a,$1f
- or d
- ld [$d526],a
- jr .adjustXCoordWithinBlock
-.checkIfMovingSouth
- ld a,b
- cp a,$01
- jr nz,.checkIfMovingNorth
-; moving south
- ld a,[$d526]
- add a,$40
- ld [$d526],a
- jr nc,.adjustXCoordWithinBlock
- ld a,[$d527]
- inc a
- and a,$03
- or a,$98
- ld [$d527],a
- jr .adjustXCoordWithinBlock
-.checkIfMovingNorth
- cp a,$ff
- jr nz,.adjustXCoordWithinBlock
-; moving north
- ld a,[$d526]
- sub a,$40
- ld [$d526],a
- jr nc,.adjustXCoordWithinBlock
- ld a,[$d527]
- dec a
- and a,$03
- or a,$98
- ld [$d527],a
-.adjustXCoordWithinBlock
- ld a,c
- and a
- jr z,.pointlessJump ; mistake?
-.pointlessJump
- ld hl,W_XBLOCKCOORD
- ld a,[hl]
- add c
- ld [hl],a
- cp a,$02
- jr nz,.checkForMoveToWestBlock
-; moved into the tile block to the east
- xor a
- ld [hl],a
- ld hl,$d4e3
- inc [hl]
- ld de,$d35f
- call MoveTileBlockMapPointerEast
- jr .updateMapView
-.checkForMoveToWestBlock
- cp a,$ff
- jr nz,.adjustYCoordWithinBlock
-; moved into the tile block to the west
- ld a,$01
- ld [hl],a
- ld hl,$d4e3
- dec [hl]
- ld de,$d35f
- call MoveTileBlockMapPointerWest
- jr .updateMapView
-.adjustYCoordWithinBlock
- ld hl,W_YBLOCKCOORD
- ld a,[hl]
- add b
- ld [hl],a
- cp a,$02
- jr nz,.checkForMoveToNorthBlock
-; moved into the tile block to the south
- xor a
- ld [hl],a
- ld hl,$d4e2
- inc [hl]
- ld de,$d35f
- ld a,[W_CURMAPWIDTH]
- call MoveTileBlockMapPointerSouth
- jr .updateMapView
-.checkForMoveToNorthBlock
- cp a,$ff
- jr nz,.updateMapView
-; moved into the tile block to the north
- ld a,$01
- ld [hl],a
- ld hl,$d4e2
- dec [hl]
- ld de,$d35f
- ld a,[W_CURMAPWIDTH]
- call MoveTileBlockMapPointerNorth
-.updateMapView
- call LoadCurrentMapView
- ld a,[$c103] ; delta Y
- cp a,$01
- jr nz,.checkIfMovingNorth2
-; if moving south
- call ScheduleSouthRowRedraw
- jr .scrollBackgroundAndSprites
-.checkIfMovingNorth2
- cp a,$ff
- jr nz,.checkIfMovingEast2
-; if moving north
- call ScheduleNorthRowRedraw
- jr .scrollBackgroundAndSprites
-.checkIfMovingEast2
- ld a,[$c105] ; delta X
- cp a,$01
- jr nz,.checkIfMovingWest2
-; if moving east
- call ScheduleEastColumnRedraw
- jr .scrollBackgroundAndSprites
-.checkIfMovingWest2
- cp a,$ff
- jr nz,.scrollBackgroundAndSprites
-; if moving west
- call ScheduleWestColumnRedraw
-.scrollBackgroundAndSprites
- ld a,[$c103] ; delta Y
- ld b,a
- ld a,[$c105] ; delta X
- ld c,a
- sla b
- sla c
- ld a,[$ffaf]
- add b
- ld [$ffaf],a ; update background scroll Y
- ld a,[$ffae]
- add c
- ld [$ffae],a ; update background scroll X
-; shift all the sprites in the direction opposite of the player's motion
-; so that the player appears to move relative to them
- ld hl,$c114
- ld a,[$d4e1] ; number of sprites
- and a ; are there any sprites?
- jr z,.done
- ld e,a
-.spriteShiftLoop
- ld a,[hl]
- sub b
- ld [hli],a
- inc l
- ld a,[hl]
- sub c
- ld [hl],a
- ld a,$0e
- add l
- ld l,a
- dec e
- jr nz,.spriteShiftLoop
-.done
- ret
-
-; the following four functions are used to move the pointer to the upper left
-; corner of the tile block map in the direction of motion
-
-MoveTileBlockMapPointerEast:: ; 0e65 (0:0e65)
- ld a,[de]
- add a,$01
- ld [de],a
- ret nc
- inc de
- ld a,[de]
- inc a
- ld [de],a
- ret
-
-MoveTileBlockMapPointerWest:: ; 0e6f (0:0e6f)
- ld a,[de]
- sub a,$01
- ld [de],a
- ret nc
- inc de
- ld a,[de]
- dec a
- ld [de],a
- ret
-
-MoveTileBlockMapPointerSouth:: ; 0e79 (0:0e79)
- add a,$06
- ld b,a
- ld a,[de]
- add b
- ld [de],a
- ret nc
- inc de
- ld a,[de]
- inc a
- ld [de],a
- ret
-
-MoveTileBlockMapPointerNorth:: ; 0e85 (0:0e85)
- add a,$06
- ld b,a
- ld a,[de]
- sub b
- ld [de],a
- ret nc
- inc de
- ld a,[de]
- dec a
- ld [de],a
- ret
-
-; the following 6 functions are used to tell the V-blank handler to redraw
-; the portion of the map that was newly exposed due to the player's movement
-
-ScheduleNorthRowRedraw:: ; 0e91 (0:0e91)
- FuncCoord 0, 0
- ld hl,Coord
- call ScheduleRowRedrawHelper
- ld a,[$d526]
- ld [H_SCREENEDGEREDRAWADDR],a
- ld a,[$d527]
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,REDRAWROW
- ld [H_SCREENEDGEREDRAW],a
- ret
-
-ScheduleRowRedrawHelper:: ; 0ea6 (0:0ea6)
- ld de,wScreenEdgeTiles
- ld c,$28
-.loop
- ld a,[hli]
- ld [de],a
- inc de
- dec c
- jr nz,.loop
- ret
-
-ScheduleSouthRowRedraw:: ; 0eb2 (0:0eb2)
- FuncCoord 0,16
- ld hl,Coord
- call ScheduleRowRedrawHelper
- ld a,[$d526]
- ld l,a
- ld a,[$d527]
- ld h,a
- ld bc,$0200
- add hl,bc
- ld a,h
- and a,$03
- or a,$98
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,l
- ld [H_SCREENEDGEREDRAWADDR],a
- ld a,REDRAWROW
- ld [H_SCREENEDGEREDRAW],a
- ret
-
-ScheduleEastColumnRedraw:: ; 0ed3 (0:0ed3)
- FuncCoord 18,0
- ld hl,Coord
- call ScheduleColumnRedrawHelper
- ld a,[$d526]
- ld c,a
- and a,$e0
- ld b,a
- ld a,c
- add a,18
- and a,$1f
- or b
- ld [H_SCREENEDGEREDRAWADDR],a
- ld a,[$d527]
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,REDRAWCOL
- ld [H_SCREENEDGEREDRAW],a
- ret
-
-ScheduleColumnRedrawHelper:: ; 0ef2 (0:0ef2)
- ld de,wScreenEdgeTiles
- ld c,$12
-.loop
- ld a,[hli]
- ld [de],a
- inc de
- ld a,[hl]
- ld [de],a
- inc de
- ld a,19
- add l
- ld l,a
- jr nc,.noCarry
- inc h
-.noCarry
- dec c
- jr nz,.loop
- ret
-
-ScheduleWestColumnRedraw:: ; 0f08 (0:0f08)
- FuncCoord 0,0
- ld hl,Coord
- call ScheduleColumnRedrawHelper
- ld a,[$d526]
- ld [H_SCREENEDGEREDRAWADDR],a
- ld a,[$d527]
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,REDRAWCOL
- ld [H_SCREENEDGEREDRAW],a
- ret
-
-; function to write the tiles that make up a tile block to memory
-; Input: c = tile block ID, hl = destination address
-DrawTileBlock:: ; 0f1d (0:0f1d)
- push hl
- ld a,[$d52c] ; pointer to tiles
- ld l,a
- ld a,[$d52d]
- ld h,a
- ld a,c
- swap a
- ld b,a
- and a,$f0
- ld c,a
- ld a,b
- and a,$0f
- ld b,a ; bc = tile block ID * 0x10
- add hl,bc
- ld d,h
- ld e,l ; de = address of the tile block's tiles
- pop hl
- ld c,$04 ; 4 loop iterations
-.loop ; each loop iteration, write 4 tile numbers
- 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 [hl],a
- inc de
- ld bc,$0015
- add hl,bc
- pop bc
- dec c
- jr nz,.loop
- ret
-
-; function to update joypad state and simulate button presses
-GetJoypadStateOverworld:: ; 0f4d (0:0f4d)
- xor a
- ld [$c103],a
- ld [$c105],a
- call RunMapScript
- call GetJoypadState
- ld a,[W_FLAGS_D733]
- bit 3,a ; check if a trainer wants a challenge
- jr nz,.notForcedDownwards
- ld a,[W_CURMAP]
- cp a,ROUTE_17 ; Cycling Road
- jr nz,.notForcedDownwards
- ld a,[H_CURRENTPRESSEDBUTTONS] ; current joypad state
- and a,%11110011 ; bit mask for all directions and A/B
- jr nz,.notForcedDownwards
- ld a,%10000000 ; down pressed
- ld [H_CURRENTPRESSEDBUTTONS],a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press
-.notForcedDownwards
- ld a,[$d730]
- bit 7,a
- ret z
-; if simulating button presses
- ld a,[H_CURRENTPRESSEDBUTTONS] ; current joypad state
- ld b,a
- ld a,[$cd3b] ; bit mask for button presses that override simulated ones
- and b
- ret nz ; return if the simulated button presses are overridden
- ld hl,$cd38 ; index of current simulated button press
- dec [hl]
- ld a,[hl]
- cp a,$ff
- jr z,.doneSimulating ; if the end of the simulated button presses has been reached
- ld hl,$ccd3 ; base address of simulated button presses
-; add offset to base address
- add l
- ld l,a
- jr nc,.noCarry
- inc h
-.noCarry
- ld a,[hl]
- ld [H_CURRENTPRESSEDBUTTONS],a ; store simulated button press in joypad state
- and a
- ret nz
- ld [H_NEWLYPRESSEDBUTTONS],a
- ld [H_NEWLYRELEASEDBUTTONS],a
- ret
-; if done simulating button presses
-.doneSimulating
- xor a
- ld [$cd3a],a
- ld [$cd38],a
- ld [$ccd3],a
- ld [wJoypadForbiddenButtonsMask],a
- ld [H_CURRENTPRESSEDBUTTONS],a
- ld hl,$d736
- ld a,[hl]
- and a,$f8
- ld [hl],a
- ld hl,$d730
- res 7,[hl]
- ret
-
-; function to check the tile ahead to determine if the character should get on land or keep surfing
-; sets carry if there is a collision and clears carry otherwise
-; It seems that this function has a bug in it, but due to luck, it doesn't
-; show up. After detecting a sprite collision, it jumps to the code that
-; checks if the next tile is passable instead of just directly jumping to the
-; "collision detected" code. However, it doesn't store the next tile in c,
-; so the old value of c is used. 2429 is always called before this function,
-; and 2429 always sets c to 0xF0. There is no 0xF0 background tile, so it
-; is considered impassable and it is detected as a collision.
-CollisionCheckOnWater:: ; 0fb7 (0:0fb7)
- ld a,[$d730]
- bit 7,a
- jp nz,.noCollision ; return and clear carry if button presses are being simulated
- ld a,[$d52a] ; the direction that the player is trying to go in
- ld d,a
- ld a,[$c10c] ; the player sprite's collision data (bit field) (set in the sprite movement code)
- and d ; check if a sprite is in the direction the player is trying to go
- jr nz,.checkIfNextTileIsPassable ; bug?
- ld hl,TilePairCollisionsWater
- call CheckForJumpingAndTilePairCollisions
- jr c,.collision
- ld a,$35
- call Predef ; get tile in front of player (puts it in c and [$CFC6])
- ld a,[$cfc6] ; tile in front of player
- cp a,$14 ; water tile
- jr z,.noCollision ; keep surfing if it's a water tile
- cp a,$32 ; either the left tile of the S.S. Anne boarding platform or the tile on eastern coastlines (depending on the current tileset)
- jr z,.checkIfVermilionDockTileset
- cp a,$48 ; tile on right on coast lines in Safari Zone
- jr z,.noCollision ; keep surfing
-; check if the [land] tile in front of the player is passable
-.checkIfNextTileIsPassable
- ld hl,$d530 ; pointer to list of passable tiles
- ld a,[hli]
- ld h,[hl]
- ld l,a
-.loop
- ld a,[hli]
- cp a,$ff
- jr z,.collision
- cp c
- jr z,.stopSurfing ; stop surfing if the tile is passable
- jr .loop
-.collision
- ld a,[$c02a]
- cp a,(SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing
- jr z,.setCarry
- ld a,(SFX_02_5b - SFX_Headers_02) / 3
- call PlaySound ; play collision sound (if it's not already playing)
-.setCarry
- scf
- jr .done
-.noCollision
- and a
-.done
- ret
-.stopSurfing
- xor a
- ld [$d700],a
- call LoadPlayerSpriteGraphics
- call Func_2307
- jr .noCollision
-.checkIfVermilionDockTileset
- ld a, [W_CURMAPTILESET] ; tileset
- cp SHIP_PORT ; Vermilion Dock tileset
- jr nz, .noCollision ; keep surfing if it's not the boarding platform tile
- jr .stopSurfing ; if it is the boarding platform tile, stop surfing
-
-; function to run the current map's script
-RunMapScript:: ; 101b (0:101b)
- push hl
- push de
- push bc
- callba Func_f225 ; check if the player is pushing a boulder
- ld a,[wFlags_0xcd60]
- bit 1,a ; is the player pushing a boulder?
- jr z,.afterBoulderEffect
- callba Func_f2b5 ; displays dust effect when pushing a boulder
-.afterBoulderEffect
- pop bc
- pop de
- pop hl
- call Func_310e
- ld a,[W_CURMAP] ; current map number
- call SwitchToMapRomBank ; change to the ROM bank the map's data is in
- ld hl,W_MAPSCRIPTPTR
- ld a,[hli]
- ld h,[hl]
- ld l,a
- ld de,.return
- push de
- jp [hl] ; jump to script
-.return
- ret
-
-LoadWalkingPlayerSpriteGraphics:: ; 104d (0:104d)
- ld de,RedSprite ; $4180
- ld hl,$8000
- jr LoadPlayerSpriteGraphicsCommon
-
-LoadSurfingPlayerSpriteGraphics:: ; 1055 (0:1055)
- ld de,SeelSprite
- ld hl,$8000
- jr LoadPlayerSpriteGraphicsCommon
-
-LoadBikePlayerSpriteGraphics:: ; 105d (0:105d)
- ld de,RedCyclingSprite
- ld hl,$8000
-
-LoadPlayerSpriteGraphicsCommon:: ; 1063 (0:1063)
- push de
- push hl
- ld bc,(BANK(RedSprite) << 8) + $0c
- call CopyVideoData
- pop hl
- pop de
- ld a,$c0
- add e
- ld e,a
- jr nc,.noCarry
- inc d
-.noCarry
- set 3,h
- ld bc,$050c
- jp CopyVideoData
-
-; function to load data from the map header
-LoadMapHeader:: ; 107c (0:107c)
- callba Func_f113
- ld a,[W_CURMAPTILESET]
- ld [$d119],a
- ld a,[W_CURMAP]
- call SwitchToMapRomBank
- ld a,[W_CURMAPTILESET]
- ld b,a
- res 7,a
- ld [W_CURMAPTILESET],a
- ld [$ff8b],a
- bit 7,b
- ret nz
- ld hl,MapHeaderPointers
- ld a,[W_CURMAP]
- sla a
- jr nc,.noCarry1
- inc h
-.noCarry1
- add l
- ld l,a
- jr nc,.noCarry2
- inc h
-.noCarry2
- ld a,[hli]
- ld h,[hl]
- ld l,a ; hl = base of map header
-; copy the first 10 bytes (the fixed area) of the map data to D367-D370
- ld de,$d367
- ld c,$0a
-.copyFixedHeaderLoop
- ld a,[hli]
- ld [de],a
- inc de
- dec c
- jr nz,.copyFixedHeaderLoop
-; initialize all the connected maps to disabled at first, before loading the actual values
- ld a,$ff
- ld [$d371],a
- ld [$d37c],a
- ld [$d387],a
- ld [$d392],a
-; copy connection data (if any) to WRAM
- ld a,[W_MAPCONNECTIONS]
- ld b,a
-.checkNorth
- bit 3,b
- jr z,.checkSouth
- ld de,W_MAPCONN1PTR
- call CopyMapConnectionHeader
-.checkSouth
- bit 2,b
- jr z,.checkWest
- ld de,W_MAPCONN2PTR
- call CopyMapConnectionHeader
-.checkWest
- bit 1,b
- jr z,.checkEast
- ld de,W_MAPCONN3PTR
- call CopyMapConnectionHeader
-.checkEast
- bit 0,b
- jr z,.getObjectDataPointer
- ld de,W_MAPCONN4PTR
- call CopyMapConnectionHeader
-.getObjectDataPointer
- ld a,[hli]
- ld [$d3a9],a
- ld a,[hli]
- ld [$d3aa],a
- push hl
- ld a,[$d3a9]
- ld l,a
- ld a,[$d3aa]
- ld h,a ; hl = base of object data
- ld de,$d3ad ; background tile ID
- ld a,[hli]
- ld [de],a ; save background tile ID
-.loadWarpData
- ld a,[hli] ; number of warps
- ld [$d3ae],a ; save the number of warps
- and a ; are there any warps?
- jr z,.loadSignData ; if not, skip this
- ld c,a
- ld de,$d3af ; base address of warps
-.warpLoop ; one warp per loop iteration
- ld b,$04
-.warpInnerLoop
- ld a,[hli]
- ld [de],a
- inc de
- dec b
- jr nz,.warpInnerLoop
- dec c
- jr nz,.warpLoop
-.loadSignData
- ld a,[hli] ; number of signs
- ld [$d4b0],a ; save the number of signs
- and a ; are there any signs?
- jr z,.loadSpriteData ; if not, skip this
- ld c,a
- ld de,$d4d1 ; base address of sign text IDs
- ld a,d
- ld [$ff95],a
- ld a,e
- ld [$ff96],a
- ld de,$d4b1 ; base address of sign coordinates
-.signLoop
- ld a,[hli]
- ld [de],a
- inc de
- ld a,[hli]
- ld [de],a
- inc de
- push de
- ld a,[$ff95]
- ld d,a
- ld a,[$ff96]
- ld e,a
- ld a,[hli]
- ld [de],a
- inc de
- ld a,d
- ld [$ff95],a
- ld a,e
- ld [$ff96],a
- pop de
- dec c
- jr nz,.signLoop
-.loadSpriteData
- ld a,[$d72e]
- bit 5,a ; did a battle happen immediately before this?
- jp nz,.finishUp ; if so, skip this because battles don't destroy this data
- ld a,[hli]
- ld [$d4e1],a ; save the number of sprites
- push hl
-; zero C110-C1FF and C210-C2FF
- ld hl,$c110
- ld de,$c210
- xor a
- ld b,$f0
-.zeroSpriteDataLoop
- ld [hli],a
- ld [de],a
- inc e
- dec b
- jr nz,.zeroSpriteDataLoop
-; initialize all C100-C1FF sprite entries to disabled (other than player's)
- ld hl,$c112
- ld de,$0010
- ld c,$0f
-.disableSpriteEntriesLoop
- ld [hl],$ff
- add hl,de
- dec c
- jr nz,.disableSpriteEntriesLoop
- pop hl
- ld de,$c110
- ld a,[$d4e1] ; number of sprites
- and a ; are there any sprites?
- jp z,.finishUp ; if there are no sprites, skip the rest
- ld b,a
- ld c,$00
-.loadSpriteLoop
- ld a,[hli]
- ld [de],a ; store picture ID at C1X0
- inc d
- ld a,$04
- add e
- ld e,a
- ld a,[hli]
- ld [de],a ; store Y position at C2X4
- inc e
- ld a,[hli]
- ld [de],a ; store X position at C2X5
- inc e
- ld a,[hli]
- ld [de],a ; store movement byte 1 at C2X6
- ld a,[hli]
- ld [$ff8d],a ; save movement byte 2
- ld a,[hli]
- ld [$ff8e],a ; save text ID and flags byte
- push bc
- push hl
- ld b,$00
- ld hl,W_MAPSPRITEDATA
- add hl,bc
- ld a,[$ff8d]
- ld [hli],a ; store movement byte 2 in byte 0 of sprite entry
- ld a,[$ff8e]
- ld [hl],a ; this appears pointless, since the value is overwritten immediately after
- ld a,[$ff8e]
- ld [$ff8d],a
- and a,$3f
- ld [hl],a ; store text ID in byte 1 of sprite entry
- pop hl
- ld a,[$ff8d]
- bit 6,a
- jr nz,.trainerSprite
- bit 7,a
- jr nz,.itemBallSprite
- jr .regularSprite
-.trainerSprite
- ld a,[hli]
- ld [$ff8d],a ; save trainer class
- ld a,[hli]
- ld [$ff8e],a ; save trainer number (within class)
- push hl
- ld hl,W_MAPSPRITEEXTRADATA
- add hl,bc
- ld a,[$ff8d]
- ld [hli],a ; store trainer class in byte 0 of the entry
- ld a,[$ff8e]
- ld [hl],a ; store trainer number in byte 1 of the entry
- pop hl
- jr .nextSprite
-.itemBallSprite
- ld a,[hli]
- ld [$ff8d],a ; save item number
- push hl
- ld hl,W_MAPSPRITEEXTRADATA
- add hl,bc
- ld a,[$ff8d]
- ld [hli],a ; store item number in byte 0 of the entry
- xor a
- ld [hl],a ; zero byte 1, since it is not used
- pop hl
- jr .nextSprite
-.regularSprite
- push hl
- ld hl,W_MAPSPRITEEXTRADATA
- add hl,bc
-; zero both bytes, since regular sprites don't use this extra space
- xor a
- ld [hli],a
- ld [hl],a
- pop hl
-.nextSprite
- pop bc
- dec d
- ld a,$0a
- add e
- ld e,a
- inc c
- inc c
- dec b
- jp nz,.loadSpriteLoop
-.finishUp
- ld a,$19
- call Predef ; load tileset data
- callab LoadWildData ; load wild pokemon data
- pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
- ld a,[W_CURMAPHEIGHT] ; map height in 4x4 tile blocks
- add a ; double it
- ld [$d524],a ; store map height in 2x2 tile blocks
- ld a,[W_CURMAPWIDTH] ; map width in 4x4 tile blocks
- add a ; double it
- ld [$d525],a ; map width in 2x2 tile blocks
- ld a,[W_CURMAP]
- ld c,a
- ld b,$00
- ld a,[H_LOADEDROMBANK]
- push af
- ld a, BANK(MapSongBanks)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld hl, MapSongBanks
- add hl,bc
- add hl,bc
- ld a,[hli]
- ld [$d35b],a ; music 1
- ld a,[hl]
- ld [$d35c],a ; music 2
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; function to copy map connection data from ROM to WRAM
-; Input: hl = source, de = destination
-CopyMapConnectionHeader:: ; 1238 (0:1238)
- ld c,$0b
-.loop
- ld a,[hli]
- ld [de],a
- inc de
- dec c
- jr nz,.loop
- ret
-
-; function to load map data
-LoadMapData:: ; 1241 (0:1241)
- ld a,[H_LOADEDROMBANK]
- push af
- call DisableLCD
- ld a,$98
- ld [$d527],a
- xor a
- ld [$d526],a
- ld [$ffaf],a
- ld [$ffae],a
- ld [wWalkCounter],a
- ld [$d119],a
- ld [$d11a],a
- ld [$d3a8],a
- call LoadTextBoxTilePatterns
- call LoadMapHeader
- callba InitMapSprites ; load tile pattern data for sprites
- call LoadTileBlockMap
- call LoadTilesetTilePatternData
- call LoadCurrentMapView
-; copy current map view to VRAM
- ld hl,wTileMap
- ld de,$9800
- ld b,$12
-.vramCopyLoop
- ld c,$14
-.vramCopyInnerLoop
- ld a,[hli]
- ld [de],a
- inc e
- dec c
- jr nz,.vramCopyInnerLoop
- ld a,$0c
- add e
- ld e,a
- jr nc,.noCarry
- inc d
-.noCarry
- dec b
- jr nz,.vramCopyLoop
- ld a,$01
- ld [$cfcb],a
- call EnableLCD
- ld b,$09
- call GoPAL_SET
- call LoadPlayerSpriteGraphics
- ld a,[$d732]
- and a,$18 ; did the player fly or teleport in?
- jr nz,.restoreRomBank
- ld a,[W_FLAGS_D733]
- bit 1,a
- jr nz,.restoreRomBank
- call Func_235f ; music related
- call Func_2312 ; music related
-.restoreRomBank
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; function to switch to the ROM bank that a map is stored in
-; Input: a = map number
-SwitchToMapRomBank:: ; 12bc (0:12bc)
- push hl
- push bc
- ld c,a
- ld b,$00
- ld a,Bank(MapHeaderBanks)
- call BankswitchHome ; switch to ROM bank 3
- ld hl,MapHeaderBanks
- add hl,bc
- ld a,[hl]
- ld [$ffe8],a ; save map ROM bank
- call BankswitchBack
- ld a,[$ffe8]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a ; switch to map ROM bank
- pop bc
- pop hl
- ret
-
-Func_12da:: ; 12da (0:12da)
- ld a, $1e
- ld [$d13a], a
- ld hl, $d730
- ld a, [hl]
- or $26
- ld [hl], a
- ret
-
-Func_12e7:: ; 12e7 (0:12e7)
- ld hl, $d728
- res 0, [hl]
- ret
-
-;appears to be called twice inside function $C38B
-;if $d700,$d11a == $1 then biking
-;if $d700,$d11a == $2 then surfing
-ForceBikeOrSurf:: ; 12ed (0:12ed)
- ld b,5 ;graphics bank 5
- ld hl,LoadPlayerSpriteGraphics ;load player sprite graphics
- call Bankswitch ;loads bank 5 and then calls LoadPlayerSpriteGraphics
- jp Func_2307 ;update map/player state?
-
-; this is used to check if the player wants to interrupt the opening sequence at several points
-; XXX is this used anywhere else?
-; INPUT:
-; c = number of frames to wait
-; sets carry if Up+Select+B, Start, or A is pressed within c frames
-; unsets carry otherwise
-CheckForUserInterruption:: ; 12f8 (0:12f8)
- call DelayFrame
- push bc
- call GetJoypadStateLowSensitivity
- pop bc
- ld a,[H_CURRENTPRESSEDBUTTONS] ; currently pressed buttons
- cp a,%01000110 ; Up, Select button, B button
- jr z,.setCarry ; if all three keys are pressed
- ld a,[$ffb5] ; either newly pressed buttons or currently pressed buttons at low sampling rate
- and a,%00001001 ; Start button, A button
- jr nz,.setCarry ; if either key is pressed
- dec c
- jr nz,CheckForUserInterruption
-.unsetCarry
- and a
- ret
-.setCarry
- scf
- ret
-
-; function to load position data for destination warp when switching maps
-; INPUT:
-; a = ID of destination warp within destination map
-LoadDestinationWarpPosition:: ; 1313 (0:1313)
- ld b,a
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[$cf12]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld a,b
- add a
- add a
- ld c,a
- ld b,0
- add hl,bc
- ld bc,4
- ld de,$d35f
- call CopyData
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; INPUT:
-; c: if nonzero, show at least a sliver of health
-; d = number of HP bar sections (normally 6)
-; e = health (in eighths of bar sections) (normally out of 48)
-DrawHPBar:: ; 1336 (0:1336)
- push hl
- push de
- push bc
- ld a,$71 ; left of HP bar tile 1
- ld [hli],a
- ld a,$62 ; left of HP bar tile 2
- ld [hli],a
- push hl
- ld a,$63 ; empty bar section tile
-.drawEmptyBarLoop
- ld [hli],a
- dec d
- jr nz,.drawEmptyBarLoop
- ld a,[$cf94]
- dec a ; what should the right of HP bar tile be?
- ld a,$6d ; right of HP bar tile, in status screen and battles
- jr z,.writeTile
- dec a ; right of HP bar tile, in pokemon menu
-.writeTile
- ld [hl],a
- pop hl
- ld a,e
- and a ; is there enough health to show up on the HP bar?
- jr nz,.loop ; if so, draw the HP bar
- ld a,c
- and a ; should a sliver of health be shown no matter what?
- jr z,.done
- ld e,1 ; if so, fill one eighth of a bar section
-; loop to draw every full bar section
-.loop
- ld a,e
- sub a,8
- jr c,.drawPartialBarSection
- ld e,a
- ld a,$6b ; filled bar section tile
- ld [hli],a
- ld a,e
- and a
- jr z,.done
- jr .loop
-; draws a partial bar section at the end (if necessary)
-; there are 7 possible partial bar sections from 1/8 to 7/8 full
-.drawPartialBarSection
- ld a,$63 ; empty bar section tile
- add e ; add e to get the appropriate partial bar section tile
- ld [hl],a ; write the tile
-.done
- pop bc
- pop de
- pop hl
- ret
-
-; loads pokemon data from one of multiple sources to $cf98
-; loads base stats to $d0b8
-; INPUT:
-; [$cf92] = index of pokemon within party/box
-; [$cc49] = source
-; 00: player's party
-; 01: enemy's party
-; 02: current box
-; 03: daycare
-; OUTPUT:
-; [$cf91] = pokemon ID
-; $cf98 = base address of pokemon data
-; $d0b8 = base address of base stats
-LoadMonData:: ; 1372 (0:1372)
- ld hl,LoadMonData_
- ld b,BANK(LoadMonData_)
- jp Bankswitch
-
-; writes c to $d0dc+b
-Func_137a:: ; 137a (0:137a)
- ld hl, $d0dc
- ld e, b
- ld d, $0
- add hl, de
- ld a, c
- ld [hl], a
- ret
-
-LoadFlippedFrontSpriteByMonIndex:: ; 1384 (0:1384)
- ld a, $1
- ld [W_SPRITEFLIPPED], a
-
-LoadFrontSpriteByMonIndex:: ; 1389 (0:1389)
- push hl
- ld a, [$d11e]
- push af
- ld a, [$cf91]
- ld [$d11e], a
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
- ld hl, $d11e
- ld a, [hl]
- pop bc
- ld [hl], b
- and a
- pop hl
- jr z, .invalidDexNumber ; dex #0 invalid
- cp 151 + 1
- jr c, .validDexNumber ; dex >#151 invalid
-.invalidDexNumber
- ld a, RHYDON ; $1
- ld [$cf91], a
- ret
-.validDexNumber
- push hl
- ld de, $9000
- call LoadMonFrontSprite
- pop hl
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, Bank(asm_3f0d0)
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- xor a
- ld [$ffe1], a
- call asm_3f0d0
- xor a
- ld [W_SPRITEFLIPPED], a
- pop af
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-
-; plays the cry of a pokemon
-; INPUT:
-; a = pokemon ID
-PlayCry:: ; 13d0 (0:13d0)
- call GetCryData
- call PlaySound ; play cry
- jp WaitForSoundToFinish ; wait for sound to be done playing
-
-; gets a pokemon's cry data
-; INPUT:
-; a = pokemon ID
-GetCryData:: ; 13d9 (0:13d9)
- dec a
- ld c,a
- ld b,0
- ld hl,CryData
- add hl,bc
- add hl,bc
- add hl,bc
- ld a,Bank(CryData)
- call BankswitchHome
- ld a,[hli]
- ld b,a
- ld a,[hli]
- ld [$c0f1],a
- ld a,[hl]
- ld [$c0f2],a
- call BankswitchBack
- ld a,b ; a = cryID
- ld c,$14 ; base sound ID for pokemon cries
- rlca
- add b ; a = cryID * 3
- add c ; a = $14 + cryID * 3
- ret
-
-DisplayPartyMenu:: ; 13fc (0:13fc)
- ld a,[$ffd7]
- push af
- xor a
- ld [$ffd7],a
- call GBPalWhiteOutWithDelay3
- call CleanLCD_OAM
- call PartyMenuInit
- call DrawPartyMenu
- jp HandlePartyMenuInput
-
-GoBackToPartyMenu:: ; 1411 (0:1411)
- ld a,[$ffd7]
- push af
- xor a
- ld [$ffd7],a
- call PartyMenuInit
- call RedrawPartyMenu
- jp HandlePartyMenuInput
-
-PartyMenuInit:: ; 1420 (0:1420)
- ld a,$01
- call BankswitchHome
- call LoadHpBarAndStatusTilePatterns
- ld hl,$d730
- set 6,[hl] ; turn off letter printing delay
- xor a
- ld [$cc49],a
- ld [$cc37],a
- ld hl,wTopMenuItemY
- inc a
- ld [hli],a ; top menu item Y
- xor a
- ld [hli],a ; top menu item X
- ld a,[$cc2b]
- push af
- ld [hli],a ; current menu item ID
- inc hl
- ld a,[W_NUMINPARTY]
- and a ; are there more than 0 pokemon in the party?
- jr z,.storeMaxMenuItemID
- dec a
-; if party is not empty, the max menu item ID is ([W_NUMINPARTY] - 1)
-; otherwise, it is 0
-.storeMaxMenuItemID
- ld [hli],a ; max menu item ID
- ld a,[$d11f]
- and a
- ld a,%00000011 ; A button and B button
- jr z,.next
- xor a
- ld [$d11f],a
- inc a
-.next
- ld [hli],a ; menu watched keys
- pop af
- ld [hl],a ; old menu item ID
- ret
-
-HandlePartyMenuInput:: ; 145a (0:145a)
- ld a,1
- ld [$cc4a],a
- ld a,$40
- ld [$d09b],a
- call HandleMenuInputPokemonSelection
- call PlaceUnfilledArrowMenuCursor
- ld b,a
- xor a
- ld [$d09b],a
- ld a,[wCurrentMenuItem]
- ld [$cc2b],a
- ld hl,$d730
- res 6,[hl] ; turn on letter printing delay
- ld a,[$cc35]
- and a
- jp nz,.swappingPokemon
- pop af
- ld [$ffd7],a
- bit 1,b
- jr nz,.noPokemonChosen
- ld a,[W_NUMINPARTY]
- and a
- jr z,.noPokemonChosen
- ld a,[wCurrentMenuItem]
- ld [wWhichPokemon],a
- ld hl,W_PARTYMON1
- ld b,0
- ld c,a
- add hl,bc
- ld a,[hl]
- ld [$cf91],a
- ld [$cfd9],a
- call BankswitchBack
- and a
- ret
-.noPokemonChosen
- call BankswitchBack
- scf
- ret
-.swappingPokemon
- bit 1,b ; was the B button pressed?
- jr z,.handleSwap ; if not, handle swapping the pokemon
-.cancelSwap ; if the B button was pressed
- callba ErasePartyMenuCursors
- xor a
- ld [$cc35],a
- ld [$d07d],a
- call RedrawPartyMenu
- jr HandlePartyMenuInput
-.handleSwap
- ld a,[wCurrentMenuItem]
- ld [wWhichPokemon],a
- callba SwitchPartyMon
- jr HandlePartyMenuInput
-
-DrawPartyMenu:: ; 14d4 (0:14d4)
- ld hl, DrawPartyMenu_
- jr DrawPartyMenuCommon
-
-RedrawPartyMenu:: ; 14d9 (0:14d9)
- ld hl, RedrawPartyMenu_
-
-DrawPartyMenuCommon:: ; 14dc (0:14dc)
- ld b, BANK(RedrawPartyMenu_)
- jp Bankswitch
-
-; prints a pokemon's status condition
-; INPUT:
-; de = address of status condition
-; hl = destination address
-PrintStatusCondition:: ; 14e1 (0:14e1)
- push de
- dec de
- dec de ; de = address of current HP
- ld a,[de]
- ld b,a
- dec de
- ld a,[de]
- or b ; is the pokemon's HP zero?
- pop de
- jr nz,PrintStatusConditionNotFainted
-; if the pokemon's HP is 0, print "FNT"
- ld a,"F"
- ld [hli],a
- ld a,"N"
- ld [hli],a
- ld [hl],"T"
- and a
- ret
-PrintStatusConditionNotFainted ; 14f6
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(PrintStatusAilment)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call PrintStatusAilment ; print status condition
- pop bc
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; function to print pokemon level, leaving off the ":L" if the level is at least 100
-; INPUT:
-; hl = destination address
-; [$cfb9] = level
-PrintLevel:: ; 150b (0:150b)
- ld a,$6e ; ":L" tile ID
- ld [hli],a
- ld c,2 ; number of digits
- ld a,[$cfb9] ; level
- cp a,100
- jr c,PrintLevelCommon
-; if level at least 100, write over the ":L" tile
- dec hl
- inc c ; increment number of digits to 3
- jr PrintLevelCommon
-
-; prints the level without leaving off ":L" regardless of level
-; INPUT:
-; hl = destination address
-; [$cfb9] = level
-PrintLevelFull:: ; 151b (0:151b)
- ld a,$6e ; ":L" tile ID
- ld [hli],a
- ld c,3 ; number of digits
- ld a,[$cfb9] ; level
-
-PrintLevelCommon:: ; 1523 (0:1523)
- ld [$d11e],a
- ld de,$d11e
- ld b,$41 ; no leading zeroes, left-aligned, one byte
- jp PrintNumber
-
-Func_152e:: ; 152e (0:152e)
- ld hl,$d0dc
- ld c,a
- ld b,0
- add hl,bc
- ld a,[hl]
- ret
-
-; copies the base stat data of a pokemon to $D0B8 (W_MONHEADER)
-; INPUT:
-; [$D0B5] = pokemon ID
-GetMonHeader:: ; 1537 (0:1537)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(BulbasaurBaseStats)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- push bc
- push de
- push hl
- ld a,[$d11e]
- push af
- ld a,[$d0b5]
- ld [$d11e],a
- ld de,FossilKabutopsPic
- ld b,$66 ; size of Kabutops fossil and Ghost sprites
- cp a,FOSSIL_KABUTOPS ; Kabutops fossil
- jr z,.specialID
- ld de,GhostPic
- cp a,MON_GHOST ; Ghost
- jr z,.specialID
- ld de,FossilAerodactylPic
- ld b,$77 ; size of Aerodactyl fossil sprite
- cp a,FOSSIL_AERODACTYL ; Aerodactyl fossil
- jr z,.specialID
- cp a,MEW
- jr z,.mew
- ld a,$3a
- call Predef ; convert pokemon ID in [$D11E] to pokedex number
- ld a,[$d11e]
- dec a
- ld bc,28
- ld hl,BulbasaurBaseStats
- call AddNTimes
- ld de,W_MONHEADER
- ld bc,28
- call CopyData
- jr .done
-.specialID
- ld hl,W_MONHSPRITEDIM
- ld [hl],b ; write sprite dimensions
- inc hl
- ld [hl],e ; write front sprite pointer
- inc hl
- ld [hl],d
- jr .done
-.mew
- ld hl,MewBaseStats
- ld de,W_MONHEADER
- ld bc,28
- ld a,BANK(MewBaseStats)
- call FarCopyData
-.done
- ld a,[$d0b5]
- ld [$d0b8],a
- pop af
- ld [$d11e],a
- pop hl
- pop de
- pop bc
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; copy party pokemon's name to $CD6D
-GetPartyMonName2:: ; 15b4 (0:15b4)
- ld a,[wWhichPokemon] ; index within party
- ld hl,W_PARTYMON1NAME
-
-; this is called more often
-GetPartyMonName:: ; 15ba (0:15ba)
- push hl
- push bc
- call SkipFixedLengthTextEntries ; add 11 to hl, a times
- ld de,$cd6d
- push de
- ld bc,11
- call CopyData
- pop de
- pop bc
- pop hl
- ret
-
-; function to print a BCD (Binary-coded decimal) number
-; de = address of BCD number
-; hl = destination address
-; c = flags and length
-; bit 7: if set, do not print leading zeroes
-; if unset, print leading zeroes
-; bit 6: if set, left-align the string (do not pad empty digits with spaces)
-; if unset, right-align the string
-; bit 5: if set, print currency symbol at the beginning of the string
-; if unset, do not print the currency symbol
-; bits 0-4: length of BCD number in bytes
-; Note that bits 5 and 7 are modified during execution. The above reflects
-; their meaning at the beginning of the functions's execution.
-PrintBCDNumber:: ; 15cd (0:15cd)
- ld b,c ; save flags in b
- res 7,c
- res 6,c
- res 5,c ; c now holds the length
- bit 5,b
- jr z,.loop
- bit 7,b
- jr nz,.loop
- ld [hl],"¥"
- inc hl
-.loop
- ld a,[de]
- swap a
- call PrintBCDDigit ; print upper digit
- ld a,[de]
- call PrintBCDDigit ; print lower digit
- inc de
- dec c
- jr nz,.loop
- bit 7,b ; were any non-zero digits printed?
- jr z,.done ; if so, we are done
-.numberEqualsZero ; if every digit of the BCD number is zero
- bit 6,b ; left or right alignment?
- jr nz,.skipRightAlignmentAdjustment
- dec hl ; if the string is right-aligned, it needs to be moved back one space
-.skipRightAlignmentAdjustment
- bit 5,b
- jr z,.skipCurrencySymbol
- ld [hl],"¥"
- inc hl
-.skipCurrencySymbol
- ld [hl],"0"
- call PrintLetterDelay
- inc hl
-.done
- ret
-
-PrintBCDDigit:: ; 1604 (0:1604)
- and a,%00001111
- and a
- jr z,.zeroDigit
-.nonzeroDigit
- bit 7,b ; have any non-space characters been printed?
- jr z,.outputDigit
-; if bit 7 is set, then no numbers have been printed yet
- bit 5,b ; print the currency symbol?
- jr z,.skipCurrencySymbol
- ld [hl],"¥"
- inc hl
- res 5,b
-.skipCurrencySymbol
- res 7,b ; unset 7 to indicate that a nonzero digit has been reached
-.outputDigit
- add a,"0"
- ld [hli],a
- jp PrintLetterDelay
-.zeroDigit
- bit 7,b ; either printing leading zeroes or already reached a nonzero digit?
- jr z,.outputDigit ; if so, print a zero digit
- bit 6,b ; left or right alignment?
- ret nz
- inc hl ; if right-aligned, "print" a space by advancing the pointer
- ret
-
-; uncompresses the front or back sprite of the specified mon
-; assumes the corresponding mon header is already loaded
-; hl contains offset to sprite pointer ($b for front or $d for back)
-UncompressMonSprite:: ; 1627 (0:1627)
- ld bc,W_MONHEADER
- add hl,bc
- ld a,[hli]
- ld [W_SPRITEINPUTPTR],a ; fetch sprite input pointer
- ld a,[hl]
- ld [W_SPRITEINPUTPTR+1],a
-; define (by index number) the bank that a pokemon's image is in
-; index = Mew, bank 1
-; index = Kabutops fossil, bank $B
-; index < $1F, bank 9
-; $1F ≤ index < $4A, bank $A
-; $4A ≤ index < $74, bank $B
-; $74 ≤ index < $99, bank $C
-; $99 ≤ index, bank $D
- ld a,[$CF91] ; XXX name for this ram location
- ld b,a
- cp MEW
- ld a,BANK(MewPicFront)
- jr z,.GotBank
- ld a,b
- cp FOSSIL_KABUTOPS
- ld a,BANK(FossilKabutopsPic)
- jr z,.GotBank
- ld a,b
- cp TANGELA + 1
- ld a,BANK(TangelaPicFront)
- jr c,.GotBank
- ld a,b
- cp MOLTRES + 1
- ld a,BANK(MoltresPicFront)
- jr c,.GotBank
- ld a,b
- cp BEEDRILL + 2
- ld a,BANK(BeedrillPicFront)
- jr c,.GotBank
- ld a,b
- cp STARMIE + 1
- ld a,BANK(StarmiePicFront)
- jr c,.GotBank
- ld a,BANK(VictreebelPicFront)
-.GotBank
- jp UncompressSpriteData
-
-; de: destination location
-LoadMonFrontSprite:: ; 1665 (0:1665)
- push de
- ld hl, W_MONHFRONTSPRITE - W_MONHEADER
- call UncompressMonSprite
- ld hl, W_MONHSPRITEDIM
- ld a, [hli]
- ld c, a
- pop de
- ; fall through
-
-; postprocesses uncompressed sprite chunks to a 2bpp sprite and loads it into video ram
-; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers
-; de: destination location
-; a,c: sprite dimensions (in tiles of 8x8 each)
-LoadUncompressedSpriteData:: ; 1672 (0:1672)
- push de
- and $f
- ld [H_SPRITEWIDTH], a ; each byte contains 8 pixels (in 1bpp), so tiles=bytes for width
- ld b, a
- ld a, $7
- sub b ; 7-w
- inc a ; 8-w
- srl a ; (8-w)/2 ; horizontal center (in tiles, rounded up)
- ld b, a
- add a
- add a
- add a
- sub b ; 7*((8-w)/2) ; skip for horizontal center (in tiles)
- ld [H_SPRITEOFFSET], a
- ld a, c
- swap a
- and $f
- ld b, a
- add a
- add a
- add a ; 8*tiles is height in bytes
- ld [H_SPRITEHEIGHT], a ; $ff8c
- ld a, $7
- sub b ; 7-h ; skip for vertical center (in tiles, relative to current column)
- ld b, a
- ld a, [H_SPRITEOFFSET]
- add b ; 7*((8-w)/2) + 7-h ; combined overall offset (in tiles)
- add a
- add a
- add a ; 8*(7*((8-w)/2) + 7-h) ; combined overall offset (in bytes)
- ld [H_SPRITEOFFSET], a
- xor a
- ld [$4000], a
- ld hl, S_SPRITEBUFFER0
- call ZeroSpriteBuffer ; zero buffer 0
- ld de, S_SPRITEBUFFER1
- ld hl, S_SPRITEBUFFER0
- call AlignSpriteDataCentered ; copy and align buffer 1 to 0 (containing the MSB of the 2bpp sprite)
- ld hl, S_SPRITEBUFFER1
- call ZeroSpriteBuffer ; zero buffer 1
- ld de, S_SPRITEBUFFER2
- ld hl, S_SPRITEBUFFER1
- call AlignSpriteDataCentered ; copy and align buffer 2 to 1 (containing the LSB of the 2bpp sprite)
- pop de
- jp InterlaceMergeSpriteBuffers
-
-; copies and aligns the sprite data properly inside the sprite buffer
-; sprite buffers are 7*7 tiles in size, the loaded sprite is centered within this area
-AlignSpriteDataCentered:: ; 16c2 (0:16c2)
- ld a, [H_SPRITEOFFSET]
- ld b, $0
- ld c, a
- add hl, bc
- ld a, [H_SPRITEWIDTH] ; $ff8b
-.columnLoop
- push af
- push hl
- ld a, [H_SPRITEHEIGHT] ; $ff8c
- ld c, a
-.columnInnerLoop
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .columnInnerLoop
- pop hl
- ld bc, 7*8 ; 7 tiles
- add hl, bc ; advance one full column
- pop af
- dec a
- jr nz, .columnLoop
- ret
-
-; fills the sprite buffer (pointed to in hl) with zeros
-ZeroSpriteBuffer:: ; 16df (0:16df)
- ld bc, SPRITEBUFFERSIZE
-.nextByteLoop
- xor a
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .nextByteLoop
- ret
-
-; combines the (7*7 tiles, 1bpp) sprite chunks in buffer 0 and 1 into a 2bpp sprite located in buffer 1 through 2
-; in the resulting sprite, the rows of the two source sprites are interlaced
-; de: output address
-InterlaceMergeSpriteBuffers:: ; 16ea (0:16ea)
- xor a
- ld [$4000], a
- push de
- ld hl, S_SPRITEBUFFER2 + (SPRITEBUFFERSIZE - 1) ; destination: end of buffer 2
- ld de, S_SPRITEBUFFER1 + (SPRITEBUFFERSIZE - 1) ; source 2: end of buffer 1
- ld bc, S_SPRITEBUFFER0 + (SPRITEBUFFERSIZE - 1) ; source 1: end of buffer 0
- ld a, SPRITEBUFFERSIZE/2 ; $c4
- ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
-.interlaceLoop
- ld a, [de]
- dec de
- ld [hld], a ; write byte of source 2
- ld a, [bc]
- dec bc
- ld [hld], a ; write byte of source 1
- ld a, [de]
- dec de
- ld [hld], a ; write byte of source 2
- ld a, [bc]
- dec bc
- ld [hld], a ; write byte of source 1
- ld a, [H_SPRITEINTERLACECOUNTER] ; $ff8b
- dec a
- ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
- jr nz, .interlaceLoop
- ld a, [W_SPRITEFLIPPED]
- and a
- jr z, .notFlipped
- ld bc, 2*SPRITEBUFFERSIZE
- ld hl, S_SPRITEBUFFER1
-.swapLoop
- swap [hl] ; if flipped swap nybbles in all bytes
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .swapLoop
-.notFlipped
- pop hl
- ld de, S_SPRITEBUFFER1
- ld c, (2*SPRITEBUFFERSIZE)/16 ; $31, number of 16 byte chunks to be copied
- ld a, [H_LOADEDROMBANK]
- ld b, a
- jp CopyVideoData
-
-Underground_Coll:: ; 172f (0:172f)
- INCBIN "gfx/tilesets/underground.tilecoll"
-Overworld_Coll:: ; 1735 (0:1735)
- INCBIN "gfx/tilesets/overworld.tilecoll"
-RedsHouse1_Coll::
-RedsHouse2_Coll:: ; 1749 (0:1749)
- INCBIN "gfx/tilesets/reds_house.tilecoll"
-Mart_Coll
-Pokecenter_Coll:: ; 1753 (0:1753)
- INCBIN "gfx/tilesets/pokecenter.tilecoll"
-Dojo_Coll::
-Gym_Coll:: ; 1759 (0:1759)
- INCBIN "gfx/tilesets/gym.tilecoll"
-Forest_Coll:: ; 1765 (0:1765)
- INCBIN "gfx/tilesets/forest.tilecoll"
-House_Coll:: ; 1775 (0:1775)
- INCBIN "gfx/tilesets/house.tilecoll"
-ForestGate_Coll::
-Museum_Coll::
-Gate_Coll:: ; 177f (0:177f)
- INCBIN "gfx/tilesets/gate.tilecoll"
-Ship_Coll:: ; 178a (0:178a)
- INCBIN "gfx/tilesets/ship.tilecoll"
-ShipPort_Coll:: ; 1795 (0:1795)
- INCBIN "gfx/tilesets/ship_port.tilecoll"
-Cemetery_Coll:: ; 179a (0:179a)
- INCBIN "gfx/tilesets/cemetery.tilecoll"
-Interior_Coll:: ; 17a2 (0:17a2)
- INCBIN "gfx/tilesets/interior.tilecoll"
-Cavern_Coll:: ; 17ac (0:17ac)
- INCBIN "gfx/tilesets/cavern.tilecoll"
-Lobby_Coll:: ; 17b8 (0:17b8)
- INCBIN "gfx/tilesets/lobby.tilecoll"
-Mansion_Coll:: ; 17c0 (0:17c0)
- INCBIN "gfx/tilesets/mansion.tilecoll"
-Lab_Coll:: ; 17ca (0:17ca)
- INCBIN "gfx/tilesets/lab.tilecoll"
-Club_Coll:: ; 17d1 (0:17d1)
- INCBIN "gfx/tilesets/club.tilecoll"
-Facility_Coll:: ; 17dd (0:17dd)
- INCBIN "gfx/tilesets/facility.tilecoll"
-Plateau_Coll:: ; 17f0 (0:17f0)
- INCBIN "gfx/tilesets/plateau.tilecoll"
-
-; does the same thing as FarCopyData at 009D
-; only difference is that it uses [$ff8b] instead of [$cee9] for a temp value
-; copy bc bytes of data from a:hl to de
-FarCopyData2:: ; 17f7 (0:17f7)
- ld [$ff8b],a
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[$ff8b]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call CopyData
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; does a far copy but the source is de and the destination is hl
-; copy bc bytes of data from a:de to hl
-FarCopyData3:: ; 180d (0:180d)
- ld [$ff8b],a
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[$ff8b]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- push hl
- push de
- push de
- ld d,h
- ld e,l
- pop hl
- call CopyData
- pop de
- pop hl
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; copies each source byte to the destination twice (next to each other)
-; copy bc source bytes from a:hl to de
-FarCopyDataDouble:: ; 182b (0:182b)
- ld [$ff8b],a
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[$ff8b]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
-.loop
- ld a,[hli]
- ld [de],a
- inc de
- ld [de],a
- inc de
- dec bc
- ld a,c
- or b
- jr nz,.loop
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; copy (c * 16) bytes from b:de to hl during V-blank
-; transfers up to 128 bytes per V-blank
-CopyVideoData:: ; 1848 (0:1848)
- ld a,[H_AUTOBGTRANSFERENABLED] ; save auto-transfer enabled flag
- push af
- xor a
- ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer while copying
- ld a,[H_LOADEDROMBANK]
- ld [$ff8b],a
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld a,e
- ld [H_VBCOPYSRC],a
- ld a,d
- ld [H_VBCOPYSRC + 1],a
- ld a,l
- ld [H_VBCOPYDEST],a
- ld a,h
- ld [H_VBCOPYDEST + 1],a
-.loop
- ld a,c
- cp a,8 ; are there more than 128 bytes left to copy?
- jr nc,.copyMaxSize ; only copy up to 128 bytes at a time
-.copyRemainder
- ld [H_VBCOPYSIZE],a
- call DelayFrame ; wait for V-blank handler to perform the copy
- ld a,[$ff8b]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- pop af
- ld [H_AUTOBGTRANSFERENABLED],a ; restore original auto-transfer enabled flag
- ret
-.copyMaxSize
- ld a,8 ; 128 bytes
- ld [H_VBCOPYSIZE],a
- call DelayFrame ; wait for V-blank handler to perform the copy
- ld a,c
- sub a,8
- ld c,a
- jr .loop
-
-; copy (c * 8) source bytes from b:de to hl during V-blank
-; copies each source byte to the destination twice (next to each other)
-; transfers up to 64 source bytes per V-blank
-CopyVideoDataDouble:: ; 1886 (0:1886)
- ld a,[H_AUTOBGTRANSFERENABLED] ; save auto-transfer enabled flag
- push af
- xor a
- ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer while copying
- ld a,[H_LOADEDROMBANK]
- ld [$ff8b],a
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld a,e
- ld [H_VBCOPYDOUBLESRC],a
- ld a,d
- ld [H_VBCOPYDOUBLESRC + 1],a
- ld a,l
- ld [H_VBCOPYDOUBLEDEST],a
- ld a,h
- ld [H_VBCOPYDOUBLEDEST + 1],a
-.loop
- ld a,c
- cp a,8 ; are there more than 64 source bytes left to copy?
- jr nc,.copyMaxSize ; only copy up to 64 source bytes at a time
-.copyRemainder
- ld [H_VBCOPYDOUBLESIZE],a
- call DelayFrame ; wait for V-blank handler to perform the copy
- ld a,[$ff8b]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- pop af
- ld [H_AUTOBGTRANSFERENABLED],a ; restore original auto-transfer enabled flag
- ret
-.copyMaxSize
- ld a,8 ; 64 source bytes
- ld [H_VBCOPYDOUBLESIZE],a
- call DelayFrame ; wait for V-blank handler to perform the copy
- ld a,c
- sub a,8
- ld c,a
- jr .loop
-
-; clears an area of the screen
-; INPUT:
-; hl = address of upper left corner of the area
-; b = height
-; c = width
-ClearScreenArea:: ; 18c4 (0:18c4)
- ld a,$7F ; blank tile
- ld de,20 ; screen width
-.loop
- push hl
- push bc
-.innerLoop
- ld [hli],a
- dec c
- jr nz,.innerLoop
- pop bc
- pop hl
- add hl,de
- dec b
- jr nz,.loop
- ret
-
-; copies the screen tile buffer from WRAM to VRAM
-; copying is done in 3 chunks of 6 rows each
-; b: high byte of VRAM destination address ($98 or $9c for window tile map 0 or 1 resp.)
-CopyScreenTileBufferToVRAM:: ; 18d6 (0:18d6)
- ld c, $6
- ld hl, $0000
- ld de, wTileMap
- call InitScreenTileBufferTransferParameters
- call DelayFrame
- ld hl, $600
- ld de, wTileMap + 20 * 6 ; $c418
- call InitScreenTileBufferTransferParameters
- call DelayFrame
- ld hl, $c00
- ld de, wTileMap + 20 * 12 ; $c490
- call InitScreenTileBufferTransferParameters
- jp DelayFrame
-
-InitScreenTileBufferTransferParameters:: ; 18fc (0:18fc)
- ld a, d
- ld [H_VBCOPYBGSRC+1], a
- call GetRowColAddressBgMap
- ld a, l
- ld [H_VBCOPYBGDEST], a ; $ffc3
- ld a, h
- ld [H_VBCOPYBGDEST+1], a
- ld a, c
- ld [H_VBCOPYBGNUMROWS], a ; $ffc5
- ld a, e
- ld [H_VBCOPYBGSRC], a ; $ffc1
- ret
-
-ClearScreen:: ; 190f (0:190f)
-; clears all tiles in the tilemap,
-; then wait three frames
- ld bc,$0168 ; tilemap size
- inc b
- ld hl,wTileMap ; TILEMAP_START
- ld a,$7F ; $7F is blank tile
-.loop
- ld [hli],a
- dec c
- jr nz,.loop
- dec b
- jr nz,.loop
- jp Delay3
-
-TextBoxBorder:: ; 1922 (0:1922)
-; draw a text box
-; upper-left corner at coordinates hl
-; height b
-; width c
-
- ; first row
- push hl
- ld a,"┌"
- ld [hli],a
- inc a ; horizontal border ─
- call NPlaceChar
- inc a ; upper-right border ┐
- ld [hl],a
-
- ; middle rows
- pop hl
- ld de,20
- add hl,de ; skip the top row
-
-.PlaceRow
- push hl
- ld a,"│"
- ld [hli],a
- ld a," "
- call NPlaceChar
- ld [hl],"│"
-
- pop hl
- ld de,20
- add hl,de ; move to next row
- dec b
- jr nz,.PlaceRow
-
- ; bottom row
- ld a,"└"
- ld [hli],a
- ld a,"─"
- call NPlaceChar
- ld [hl],"┘"
- ret
-;
-NPlaceChar:: ; 194f (0:194f)
-; place a row of width c of identical characters
- ld d,c
-.loop
- ld [hli],a
- dec d
- jr nz,.loop
- ret
-
-PlaceString:: ; 1955 (0:1955)
- push hl
-PlaceNextChar:: ; 1956 (0:1956)
- ld a,[de]
-
- cp "@"
- jr nz,.PlaceText
- ld b,h
- ld c,l
- pop hl
- ret
-
-.PlaceText
- cp $4E
- jr nz,.next
- ld bc,$0028
- ld a,[$FFF6]
- bit 2,a
- jr z,.next2
- ld bc,$14
-.next2
- pop hl
- add hl,bc
- push hl
- jp Next19E8
-
-.next
- cp $4F
- jr nz,.next3
- pop hl
- FuncCoord 1, 16 ; $c4e1
- ld hl,Coord
- push hl
- jp Next19E8
-
-.next3 ; Check against a dictionary
- and a
- jp z,Char00
- cp $4C
- jp z,Char4C
- cp $4B
- jp z,Char4B
- cp $51
- jp z,Char51
- cp $49
- jp z,Char49
- cp $52
- jp z,Char52
- cp $53
- jp z,Char53
- cp $54
- jp z,Char54
- cp $5B
- jp z,Char5B
- cp $5E
- jp z,Char5E
- cp $5C
- jp z,Char5C
- cp $5D
- jp z,Char5D
- cp $55
- jp z,Char55
- cp $56
- jp z,Char56
- cp $57
- jp z,Char57
- cp $58
- jp z,Char58
- cp $4A
- jp z,Char4A
- cp $5F
- jp z,Char5F
- cp $59
- jp z,Char59
- cp $5A
- jp z,Char5A
- ld [hli],a
- call PrintLetterDelay
-Next19E8:: ; 19e8 (0:19e8)
- inc de
- jp PlaceNextChar
-
-Char00:: ; 19ec (0:19ec)
- ld b,h
- ld c,l
- pop hl
- ld de,Char00Text
- dec de
- ret
-
-Char00Text:: ; 0x19f4 “%d ERROR.”
- TX_FAR _Char00Text
- db "@"
-
-Char52:: ; 0x19f9 player’s name
- push de
- ld de,W_PLAYERNAME
- jr FinishDTE
-
-Char53:: ; 19ff (0:19ff) ; rival’s name
- push de
- ld de,W_RIVALNAME
- jr FinishDTE
-
-Char5D:: ; 1a05 (0:1a05) ; TRAINER
- push de
- ld de,Char5DText
- jr FinishDTE
-
-Char5C:: ; 1a0b (0:1a0b) ; TM
- push de
- ld de,Char5CText
- jr FinishDTE
-
-Char5B:: ; 1a11 (0:1a11) ; PC
- push de
- ld de,Char5BText
- jr FinishDTE
-
-Char5E:: ; 1a17 (0:1a17) ; ROCKET
- push de
- ld de,Char5EText
- jr FinishDTE
-
-Char54:: ; 1a1d (0:1a1d) ; POKé
- push de
- ld de,Char54Text
- jr FinishDTE
-
-Char56:: ; 1a23 (0:1a23) ; ……
- push de
- ld de,Char56Text
- jr FinishDTE
-
-Char4A:: ; 1a29 (0:1a29) ; PKMN
- push de
- ld de,Char4AText
- jr FinishDTE
-
-Char59:: ; 1a2f (0:1a2f)
-; depending on whose turn it is, print
-; enemy active monster’s name, prefixed with “Enemy ”
-; or
-; player active monster’s name
-; (like Char5A but flipped)
- ld a,[H_WHOSETURN]
- xor 1
- jr MonsterNameCharsCommon
-
-Char5A:: ; 1a35 (0:1a35)
-; depending on whose turn it is, print
-; player active monster’s name
-; or
-; enemy active monster’s name, prefixed with “Enemy ”
- ld a,[H_WHOSETURN]
-MonsterNameCharsCommon:: ; 1a37 (0:1a37)
- push de
- and a
- jr nz,.Enemy
- ld de,W_PLAYERMONNAME ; player active monster name
- jr FinishDTE
-
-.Enemy ; 1A40
- ; print “Enemy ”
- ld de,Char5AText
- call PlaceString
-
- ld h,b
- ld l,c
- ld de,W_ENEMYMONNAME ; enemy active monster name
-
-FinishDTE:: ; 1a4b (0:1a4b)
- call PlaceString
- ld h,b
- ld l,c
- pop de
- inc de
- jp PlaceNextChar
-
-Char5CText:: ; 1a55 (0:1a55)
- db "TM@"
-Char5DText:: ; 1a58 (0:1a58)
- db "TRAINER@"
-Char5BText:: ; 1a60 (0:1a60)
- db "PC@"
-Char5EText:: ; 1a63 (0:1a63)
- db "ROCKET@"
-Char54Text:: ; 1a6a (0:1a6a)
- db "POKé@"
-Char56Text:: ; 1a6f (0:1a6f)
- db "……@"
-Char5AText:: ; 1a72 (0:1a72)
- db "Enemy @"
-Char4AText:: ; 1a79 (0:1a79)
- db $E1,$E2,"@" ; PKMN
-
-Char55:: ; 1a7c (0:1a7c)
- push de
- ld b,h
- ld c,l
- ld hl,Char55Text
- call TextCommandProcessor
- ld h,b
- ld l,c
- pop de
- inc de
- jp PlaceNextChar
-
-Char55Text:: ; 1a8c (0:1a8c)
-; equivalent to Char4B
- TX_FAR _Char55Text
- db "@"
-
-Char5F:: ; 1a91 (0:1a91)
-; ends a Pokédex entry
- ld [hl],"."
- pop hl
- ret
-
-Char58:: ; 1a95 (0:1a95)
- ld a,[$D12B]
- cp 4
- jp z,Next1AA2
- ld a,$EE
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a
-Next1AA2:: ; 1aa2 (0:1aa2)
- call ProtectedDelay3
- call ManualTextScroll
- ld a,$7F
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a
-Char57:: ; 1aad (0:1aad)
- pop hl
- ld de,Char58Text
- dec de
- ret
-
-Char58Text:: ; 1ab3 (0:1ab3)
- db "@"
-
-Char51:: ; 1ab4 (0:1ab4)
- push de
- ld a,$EE
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a
- call ProtectedDelay3
- call ManualTextScroll
- FuncCoord 1, 13 ; $c4a5
- ld hl,Coord
- ld bc,$0412
- call ClearScreenArea
- ld c,$14
- call DelayFrames
- pop de
- FuncCoord 1, 14 ; $c4b9
- ld hl,Coord
- jp Next19E8
-
-Char49:: ; 1ad5 (0:1ad5)
- push de
- ld a,$EE
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a
- call ProtectedDelay3
- call ManualTextScroll
- FuncCoord 1, 10 ; $c469
- ld hl,Coord
- ld bc,$0712
- call ClearScreenArea
- ld c,$14
- call DelayFrames
- pop de
- pop hl
- FuncCoord 1, 11 ; $c47d
- ld hl,Coord
- push hl
- jp Next19E8
-
-Char4B:: ; 1af8 (0:1af8)
- ld a,$EE
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a
- call ProtectedDelay3
- push de
- call ManualTextScroll
- pop de
- ld a,$7F
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a
- ;fall through
-Char4C:: ; 1b0a (0:1b0a)
- push de
- call Next1B18
- call Next1B18
- FuncCoord 1, 16 ; $c4e1
- ld hl,Coord
- pop de
- jp Next19E8
-
-Next1B18:: ; 1b18 (0:1b18)
- FuncCoord 0, 14 ; $c4b8
- ld hl,Coord
- FuncCoord 0, 13 ; $c4a4
- ld de,Coord
- ld b,$3C
-.next
- ld a,[hli]
- ld [de],a
- inc de
- dec b
- jr nz,.next
- FuncCoord 1, 16 ; $c4e1
- ld hl,Coord
- ld a,$7F
- ld b,$12
-.next2
- ld [hli],a
- dec b
- jr nz,.next2
-
- ; wait five frames
- ld b,5
-.WaitFrame
- call DelayFrame
- dec b
- jr nz,.WaitFrame
-
- ret
-
-ProtectedDelay3:: ; 1b3a (0:1b3a)
- push bc
- call Delay3
- pop bc
- ret
-
-TextCommandProcessor:: ; 1b40 (0:1b40)
- ld a,[$d358]
- push af
- set 1,a
- ld e,a
- ld a,[$fff4]
- xor e
- ld [$d358],a
- ld a,c
- ld [$cc3a],a
- ld a,b
- ld [$cc3b],a
-
-NextTextCommand:: ; 1b55 (0:1b55)
- ld a,[hli]
- cp a, "@" ; terminator
- jr nz,.doTextCommand
- pop af
- ld [$d358],a
- ret
-.doTextCommand
- push hl
- cp a,$17
- jp z,TextCommand17
- cp a,$0e
- jp nc,TextCommand0B ; if a != 0x17 and a >= 0xE, go to command 0xB
-; if a < 0xE, use a jump table
- ld hl,TextCommandJumpTable
- push bc
- add a
- ld b,$00
- ld c,a
- add hl,bc
- pop bc
- ld a,[hli]
- ld h,[hl]
- ld l,a
- jp [hl]
-
-; draw box
-; 04AAAABBCC
-; AAAA = address of upper left corner
-; BB = height
-; CC = width
-TextCommand04:: ; 1b78 (0:1b78)
- pop hl
- ld a,[hli]
- ld e,a
- ld a,[hli]
- ld d,a
- ld a,[hli]
- ld b,a
- ld a,[hli]
- ld c,a
- push hl
- ld h,d
- ld l,e
- call TextBoxBorder
- pop hl
- jr NextTextCommand
-
-; place string inline
-; 00{string}
-TextCommand00:: ; 1b8a (0:1b8a)
- pop hl
- ld d,h
- ld e,l
- ld h,b
- ld l,c
- call PlaceString
- ld h,d
- ld l,e
- inc hl
- jr NextTextCommand
-
-; place string from RAM
-; 01AAAA
-; AAAA = address of string
-TextCommand01:: ; 1b97 (0:1b97)
- pop hl
- ld a,[hli]
- ld e,a
- ld a,[hli]
- ld d,a
- push hl
- ld h,b
- ld l,c
- call PlaceString
- pop hl
- jr NextTextCommand
-
-; print BCD number
-; 02AAAABB
-; AAAA = address of BCD number
-; BB
-; bits 0-4 = length in bytes
-; bits 5-7 = unknown flags
-TextCommand02:: ; 1ba5 (0:1ba5)
- pop hl
- ld a,[hli]
- ld e,a
- ld a,[hli]
- ld d,a
- ld a,[hli]
- push hl
- ld h,b
- ld l,c
- ld c,a
- call PrintBCDNumber
- ld b,h
- ld c,l
- pop hl
- jr NextTextCommand
-
-; repoint destination address
-; 03AAAA
-; AAAA = new destination address
-TextCommand03:: ; 1bb7 (0:1bb7)
- pop hl
- ld a,[hli]
- ld [$cc3a],a
- ld c,a
- ld a,[hli]
- ld [$cc3b],a
- ld b,a
- jp NextTextCommand
-
-; repoint destination to second line of dialogue text box
-; 05
-; (no arguments)
-TextCommand05:: ; 1bc5 (0:1bc5)
- pop hl
- FuncCoord 1, 16 ; $c4e1
- ld bc,Coord ; address of second line of dialogue text box
- jp NextTextCommand
-
-; blink arrow and wait for A or B to be pressed
-; 06
-; (no arguments)
-TextCommand06:: ; 1bcc (0:1bcc)
- ld a,[W_ISLINKBATTLE]
- cp a,$04
- jp z,TextCommand0D
- ld a,$ee ; down arrow
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a ; place down arrow in lower right corner of dialogue text box
- push bc
- call ManualTextScroll ; blink arrow and wait for A or B to be pressed
- pop bc
- ld a," "
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a ; overwrite down arrow with blank space
- pop hl
- jp NextTextCommand
-
-; scroll text up one line
-; 07
-; (no arguments)
-TextCommand07:: ; 1be7 (0:1be7)
- ld a," "
- FuncCoord 18, 16 ; $c4f2
- ld [Coord],a ; place blank space in lower right corner of dialogue text box
- call Next1B18 ; scroll up text
- call Next1B18
- pop hl
- FuncCoord 1, 16 ; $c4e1
- ld bc,Coord ; address of second line of dialogue text box
- jp NextTextCommand
-
-; execute asm inline
-; 08{code}
-TextCommand08:: ; 1bf9 (0:1bf9)
- pop hl
- ld de,NextTextCommand
- push de ; return address
- jp [hl]
-
-; print decimal number (converted from binary number)
-; 09AAAABB
-; AAAA = address of number
-; BB
-; bits 0-3 = how many digits to display
-; bits 4-7 = how long the number is in bytes
-TextCommand09:: ; 1bff (0:1bff)
- pop hl
- ld a,[hli]
- ld e,a
- ld a,[hli]
- ld d,a
- ld a,[hli]
- push hl
- ld h,b
- ld l,c
- ld b,a
- and a,$0f
- ld c,a
- ld a,b
- and a,$f0
- swap a
- set 6,a
- ld b,a
- call PrintNumber
- ld b,h
- ld c,l
- pop hl
- jp NextTextCommand
-
-; wait half a second if the user doesn't hold A or B
-; 0A
-; (no arguments)
-TextCommand0A:: ; 1c1d (0:1c1d)
- push bc
- call GetJoypadState
- ld a,[H_CURRENTPRESSEDBUTTONS]
- and a,%00000011 ; A and B buttons
- jr nz,.skipDelay
- ld c,30
- call DelayFrames
-.skipDelay
- pop bc
- pop hl
- jp NextTextCommand
-
-; plays sounds
-; this actually handles various command ID's, not just 0B
-; (no arguments)
-TextCommand0B:: ; 1c31 (0:1c31)
- pop hl
- push bc
- dec hl
- ld a,[hli]
- ld b,a ; b = command number that got us here
- push hl
- ld hl,TextCommandSounds
-.loop
- ld a,[hli]
- cp b
- jr z,.matchFound
- inc hl
- jr .loop
-.matchFound
- cp a,$14
- jr z,.pokemonCry
- cp a,$15
- jr z,.pokemonCry
- cp a,$16
- jr z,.pokemonCry
- ld a,[hl]
- call PlaySound
- call WaitForSoundToFinish
- pop hl
- pop bc
- jp NextTextCommand
-.pokemonCry
- push de
- ld a,[hl]
- call PlayCry
- pop de
- pop hl
- pop bc
- jp NextTextCommand
-
-; format: text command ID, sound ID or cry ID
-TextCommandSounds:: ; 1c64 (0:1c64)
- db $0B,(SFX_02_3a - SFX_Headers_02) / 3
- db $12,(SFX_02_46 - SFX_Headers_02) / 3
- db $0E,(SFX_02_41 - SFX_Headers_02) / 3
- db $0F,(SFX_02_3a - SFX_Headers_02) / 3
- db $10,(SFX_02_3b - SFX_Headers_02) / 3
- db $11,(SFX_02_42 - SFX_Headers_02) / 3
- db $13,(SFX_02_44 - SFX_Headers_02) / 3
- db $14,NIDORINA ; used in OakSpeech
- db $15,PIDGEOT ; used in SaffronCityText12
- db $16,DEWGONG ; unused?
-
-; draw ellipses
-; 0CAA
-; AA = number of ellipses to draw
-TextCommand0C:: ; 1c78 (0:1c78)
- pop hl
- ld a,[hli]
- ld d,a
- push hl
- ld h,b
- ld l,c
-.loop
- ld a,$75 ; ellipsis
- ld [hli],a
- push de
- call GetJoypadState
- pop de
- ld a,[H_CURRENTPRESSEDBUTTONS] ; joypad state
- and a,%00000011 ; is A or B button pressed?
- jr nz,.skipDelay ; if so, skip the delay
- ld c,10
- call DelayFrames
-.skipDelay
- dec d
- jr nz,.loop
- ld b,h
- ld c,l
- pop hl
- jp NextTextCommand
-
-; wait for A or B to be pressed
-; 0D
-; (no arguments)
-TextCommand0D:: ; 1c9a (0:1c9a)
- push bc
- call ManualTextScroll ; wait for A or B to be pressed
- pop bc
- pop hl
- jp NextTextCommand
-
-; process text commands in another ROM bank
-; 17AAAABB
-; AAAA = address of text commands
-; BB = bank
-TextCommand17:: ; 1ca3 (0:1ca3)
- pop hl
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[hli]
- ld e,a
- ld a,[hli]
- ld d,a
- ld a,[hli]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- push hl
- ld l,e
- ld h,d
- call TextCommandProcessor
- pop hl
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- jp NextTextCommand
-
-TextCommandJumpTable:: ; 1cc1 (0:1cc1)
- dw TextCommand00
- dw TextCommand01
- dw TextCommand02
- dw TextCommand03
- dw TextCommand04
- dw TextCommand05
- dw TextCommand06
- dw TextCommand07
- dw TextCommand08
- dw TextCommand09
- dw TextCommand0A
- dw TextCommand0B
- dw TextCommand0C
- dw TextCommand0D
-
-; this function seems to be used only once
-; it store the address of a row and column of the VRAM background map in hl
-; INPUT: h - row, l - column, b - high byte of background tile map address in VRAM
-GetRowColAddressBgMap:: ; 1cdd (0:1cdd)
- xor a
- srl h
- rr a
- srl h
- rr a
- srl h
- rr a
- or l
- ld l,a
- ld a,b
- or h
- ld h,a
- ret
-
-; clears a VRAM background map with blank space tiles
-; INPUT: h - high byte of background tile map address in VRAM
-ClearBgMap:: ; 1cf0 (0:1cf0)
- ld a," "
- jr .next
- ld a,l
-.next
- ld de,$400 ; size of VRAM background map
- ld l,e
-.loop
- ld [hli],a
- dec e
- jr nz,.loop
- dec d
- jr nz,.loop
- ret
-
-; When the player takes a step, a row or column of 2x2 tile blocks at the edge
-; of the screen toward which they moved is exposed and has to be redrawn.
-; This function does the redrawing.
-RedrawExposedScreenEdge:: ; 1d01 (0:1d01)
- ld a,[H_SCREENEDGEREDRAW]
- and a
- ret z
- ld b,a
- xor a
- ld [H_SCREENEDGEREDRAW],a
- dec b
- jr nz,.redrawRow
-.redrawColumn
- ld hl,wScreenEdgeTiles
- ld a,[H_SCREENEDGEREDRAWADDR]
- ld e,a
- ld a,[H_SCREENEDGEREDRAWADDR + 1]
- ld d,a
- ld c,18 ; screen height
-.loop1
- ld a,[hli]
- ld [de],a
- inc de
- ld a,[hli]
- ld [de],a
- ld a,31
- add e
- ld e,a
- jr nc,.noCarry
- inc d
-.noCarry
-; the following 4 lines wrap us from bottom to top if necessary
- ld a,d
- and a,$03
- or a,$98
- ld d,a
- dec c
- jr nz,.loop1
- xor a
- ld [H_SCREENEDGEREDRAW],a
- ret
-.redrawRow
- ld hl,wScreenEdgeTiles
- ld a,[H_SCREENEDGEREDRAWADDR]
- ld e,a
- ld a,[H_SCREENEDGEREDRAWADDR + 1]
- ld d,a
- push de
- call .drawHalf ; draw upper half
- pop de
- ld a,32 ; width of VRAM background map
- add e
- ld e,a
- ; draw lower half
-.drawHalf
- ld c,10
-.loop2
- ld a,[hli]
- ld [de],a
- inc de
- ld a,[hli]
- ld [de],a
- ld a,e
- inc a
-; the following 6 lines wrap us from the right edge to the left edge if necessary
- and a,$1f
- ld b,a
- ld a,e
- and a,$e0
- or b
- ld e,a
- dec c
- jr nz,.loop2
- ret
-
-; This function automatically transfers tile number data from the tile map at
-; wTileMap to VRAM during V-blank. Note that it only transfers one third of the
-; background per V-blank. It cycles through which third it draws.
-; This transfer is turned off when walking around the map, but is turned
-; on when talking to sprites, battling, using menus, etc. This is because
-; the above function, RedrawExposedScreenEdge, is used when walking to
-; improve efficiency.
-AutoBgMapTransfer:: ; 1d57 (0:1d57)
- ld a,[H_AUTOBGTRANSFERENABLED]
- and a
- ret z
- ld hl,[sp + 0]
- ld a,h
- ld [H_SPTEMP],a
- ld a,l
- ld [H_SPTEMP + 1],a ; save stack pinter
- ld a,[H_AUTOBGTRANSFERPORTION]
- and a
- jr z,.transferTopThird
- dec a
- jr z,.transferMiddleThird
-.transferBottomThird
- FuncCoord 0,12
- ld hl,Coord
- ld sp,hl
- ld a,[H_AUTOBGTRANSFERDEST + 1]
- ld h,a
- ld a,[H_AUTOBGTRANSFERDEST]
- ld l,a
- ld de,(12 * 32)
- add hl,de
- xor a ; TRANSFERTOP
- jr .doTransfer
-.transferTopThird
- FuncCoord 0,0
- ld hl,Coord
- ld sp,hl
- ld a,[H_AUTOBGTRANSFERDEST + 1]
- ld h,a
- ld a,[H_AUTOBGTRANSFERDEST]
- ld l,a
- ld a,TRANSFERMIDDLE
- jr .doTransfer
-.transferMiddleThird
- FuncCoord 0,6
- ld hl,Coord
- ld sp,hl
- ld a,[H_AUTOBGTRANSFERDEST + 1]
- ld h,a
- ld a,[H_AUTOBGTRANSFERDEST]
- ld l,a
- ld de,(6 * 32)
- add hl,de
- ld a,TRANSFERBOTTOM
-.doTransfer
- ld [H_AUTOBGTRANSFERPORTION],a ; store next portion
- ld b,6
-
-; unrolled loop and using pop for speed
-TransferBgRows:: ; 1d9e (0:1d9e)
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- ld a,13
- add l
- ld l,a
- jr nc,.noCarry
- inc h
-.noCarry
- dec b
- jr nz,TransferBgRows
- ld a,[H_SPTEMP]
- ld h,a
- ld a,[H_SPTEMP + 1]
- ld l,a
- ld sp,hl ; restore stack pointer
- ret
-
-; Copies [H_VBCOPYBGNUMROWS] rows from H_VBCOPYBGSRC to H_VBCOPYBGDEST.
-; If H_VBCOPYBGSRC is XX00, the transfer is disabled.
-VBlankCopyBgMap:: ; 1de1 (0:1de1)
- ld a,[H_VBCOPYBGSRC] ; doubles as enabling byte
- and a
- ret z
- ld hl,[sp + 0]
- ld a,h
- ld [H_SPTEMP],a
- ld a,l
- ld [H_SPTEMP + 1],a ; save stack pointer
- ld a,[H_VBCOPYBGSRC]
- ld l,a
- ld a,[H_VBCOPYBGSRC + 1]
- ld h,a
- ld sp,hl
- ld a,[H_VBCOPYBGDEST]
- ld l,a
- ld a,[H_VBCOPYBGDEST + 1]
- ld h,a
- ld a,[H_VBCOPYBGNUMROWS]
- ld b,a
- xor a
- ld [H_VBCOPYBGSRC],a ; disable transfer so it doesn't continue next V-blank
- jr TransferBgRows
-
-; This function copies ([H_VBCOPYDOUBLESIZE] * 8) source bytes
-; from H_VBCOPYDOUBLESRC to H_VBCOPYDOUBLEDEST.
-; It copies each source byte to the destination twice (next to each other).
-; The function updates the source and destination addresses, so the transfer
-; can be continued easily by repeatingly calling this function.
-VBlankCopyDouble:: ; 1e02 (0:1e02)
- ld a,[H_VBCOPYDOUBLESIZE]
- and a ; are there any bytes to copy?
- ret z
- ld hl,[sp + 0]
- ld a,h
- ld [H_SPTEMP],a
- ld a,l
- ld [H_SPTEMP + 1],a ; save stack pointer
- ld a,[H_VBCOPYDOUBLESRC]
- ld l,a
- ld a,[H_VBCOPYDOUBLESRC + 1]
- ld h,a
- ld sp,hl
- ld a,[H_VBCOPYDOUBLEDEST]
- ld l,a
- ld a,[H_VBCOPYDOUBLEDEST + 1]
- ld h,a
- ld a,[H_VBCOPYDOUBLESIZE]
- ld b,a
- xor a
- ld [H_VBCOPYDOUBLESIZE],a ; disable transfer so it doesn't continue next V-blank
-.loop
- pop de
- ld [hl],e
- inc l
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- ld [hl],d
- inc hl
- dec b
- jr nz,.loop
- ld a,l
- ld [H_VBCOPYDOUBLEDEST],a
- ld a,h
- ld [H_VBCOPYDOUBLEDEST + 1],a ; update destination address
- ld hl,[sp + 0]
- ld a,l
- ld [H_VBCOPYDOUBLESRC],a
- ld a,h
- ld [H_VBCOPYDOUBLESRC + 1],a ; update source address
- ld a,[H_SPTEMP]
- ld h,a
- ld a,[H_SPTEMP + 1]
- ld l,a
- ld sp,hl ; restore stack pointer
- ret
-
-; Copies ([H_VBCOPYSIZE] * 16) bytes from H_VBCOPYSRC to H_VBCOPYDEST.
-; The function updates the source and destination addresses, so the transfer
-; can be continued easily by repeatingly calling this function.
-VBlankCopy:: ; 1e5e (0:1e5e)
- ld a,[H_VBCOPYSIZE]
- and a ; are there any bytes to copy?
- ret z
- ld hl,[sp + 0]
- ld a,h
- ld [H_SPTEMP],a
- ld a,l
- ld [H_SPTEMP + 1],a ; save stack pointer
- ld a,[H_VBCOPYSRC]
- ld l,a
- ld a,[H_VBCOPYSRC + 1]
- ld h,a
- ld sp,hl
- ld a,[H_VBCOPYDEST]
- ld l,a
- ld a,[H_VBCOPYDEST + 1]
- ld h,a
- ld a,[H_VBCOPYSIZE]
- ld b,a
- xor a
- ld [H_VBCOPYSIZE],a ; disable transfer so it doesn't continue next V-blank
-.loop
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc l
- pop de
- ld [hl],e
- inc l
- ld [hl],d
- inc hl
- dec b
- jr nz,.loop
- ld a,l
- ld [H_VBCOPYDEST],a
- ld a,h
- ld [H_VBCOPYDEST + 1],a
- ld hl,[sp + 0]
- ld a,l
- ld [H_VBCOPYSRC],a
- ld a,h
- ld [H_VBCOPYSRC + 1],a
- ld a,[H_SPTEMP]
- ld h,a
- ld a,[H_SPTEMP + 1]
- ld l,a
- ld sp,hl ; restore stack pointer
- ret
-
-; This function updates the moving water and flower background tiles.
-UpdateMovingBgTiles:: ; 1ebe (0:1ebe)
- ld a,[$ffd7]
- and a
- ret z
- ld a,[$ffd8]
- inc a
- ld [$ffd8],a
- cp a,20
- ret c
- cp a,21
- jr z,.updateFlowerTile
- ld hl,$9140 ; water tile pattern VRAM location
- ld c,16 ; number of bytes in a tile pattern
- ld a,[$d085]
- inc a
- and a,$07
- ld [$d085],a
- and a,$04
- jr nz,.rotateWaterLeftLoop
-.rotateWaterRightloop
- ld a,[hl]
- rrca
- ld [hli],a
- dec c
- jr nz,.rotateWaterRightloop
- jr .done
-.rotateWaterLeftLoop
- ld a,[hl]
- rlca
- ld [hli],a
- dec c
- jr nz,.rotateWaterLeftLoop
-.done
- ld a,[$ffd7]
- rrca
- ret nc
- xor a
- ld [$ffd8],a
- ret
-.updateFlowerTile
- xor a
- ld [$ffd8],a
- ld a,[$d085]
- and a,$03
- cp a,2
- ld hl,FlowerTilePattern1
- jr c,.writeTilePatternToVram
- ld hl,FlowerTilePattern2
- jr z,.writeTilePatternToVram
- ld hl,FlowerTilePattern3
-.writeTilePatternToVram
- ld de,$9030 ; flower tile pattern VRAM location
- ld c,16 ; number of bytes in a tile pattern
-.flowerTileLoop
- ld a,[hli]
- ld [de],a
- inc de
- dec c
- jr nz,.flowerTileLoop
- ret
-
-FlowerTilePattern1:: ; 1f19 (0:1f19)
- INCBIN "gfx/tilesets/flower/flower1.2bpp"
-
-FlowerTilePattern2:: ; 1f29 (0:1f29)
- INCBIN "gfx/tilesets/flower/flower2.2bpp"
-
-FlowerTilePattern3:: ; 1f39 (0:1f39)
- INCBIN "gfx/tilesets/flower/flower3.2bpp"
-
-SoftReset:: ; 1f49 (0:1f49)
- call StopAllSounds
- call GBPalWhiteOut
- ld c, $20
- call DelayFrames
- ;fall through
-
-; initialization code
-; explanation for %11100011 (value stored in rLCDC)
-; * LCD enabled
-; * Window tile map at $9C00
-; * Window display enabled
-; * BG and window tile data at $8800
-; * BG tile map at $9800
-; * 8x8 OBJ size
-; * OBJ display enabled
-; * BG display enabled
-InitGame:: ; 1f54 (0:1f54)
- di
-; zero I/O registers
- xor a
- ld [$ff0f],a
- ld [$ffff],a
- ld [$ff43],a
- ld [$ff42],a
- ld [$ff01],a
- ld [$ff02],a
- ld [$ff4b],a
- ld [$ff4a],a
- ld [$ff06],a
- ld [$ff07],a
- ld [$ff47],a
- ld [$ff48],a
- ld [$ff49],a
- ld a,%10000000 ; enable LCD
- ld [rLCDC],a
- call DisableLCD ; why enable then disable?
- ld sp,$dfff ; initialize stack pointer
- ld hl,$c000 ; start of WRAM
- ld bc,$2000 ; size of WRAM
-.zeroWramLoop
- ld [hl],0
- inc hl
- dec bc
- ld a,b
- or c
- jr nz,.zeroWramLoop
- call ZeroVram
- ld hl,$ff80
- ld bc,$007f
- call FillMemory ; zero HRAM
- call CleanLCD_OAM ; this is unnecessary since it was already cleared above
- ld a,Bank(WriteDMACodeToHRAM)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call WriteDMACodeToHRAM ; copy DMA code to HRAM
- xor a
- ld [$ffd7],a
- ld [$ff41],a
- ld [$ffae],a
- ld [$ffaf],a
- ld [$ff0f],a
- ld a,%00001101 ; enable V-blank, timer, and serial interrupts
- ld [rIE],a
- ld a,$90 ; put the window off the screen
- ld [$ffb0],a
- ld [rWY],a
- ld a,$07
- ld [rWX],a
- ld a,$ff
- ld [$ffaa],a
- ld h,$98
- call ClearBgMap ; fill $9800-$9BFF (BG tile map) with $7F tiles
- ld h,$9c
- call ClearBgMap ; fill $9C00-$9FFF (Window tile map) with $7F tiles
- ld a,%11100011
- ld [rLCDC],a ; enabled LCD
- ld a,$10
- ld [H_SOFTRESETCOUNTER],a
- call StopAllSounds
- ei
- ld a,$40
- call Predef ; SGB border
- ld a,$1f
- ld [$c0ef],a
- ld [$c0f0],a
- ld a,$9c
- ld [$ffbd],a
- xor a
- ld [$ffbc],a
- dec a
- ld [$cfcb],a
- ld a,$32
- call Predef ; display the copyrights, GameFreak logo, and battle animation
- call DisableLCD
- call ZeroVram
- call GBPalNormal
- call CleanLCD_OAM
- ld a,%11100011
- ld [rLCDC],a ; enable LCD
- jp SetDefaultNamesBeforeTitlescreen
-
-; zeroes all VRAM
-ZeroVram:: ; 2004 (0:2004)
- ld hl,$8000
- ld bc,$2000
- xor a
- jp FillMemory
-
-; immediately stops all sounds
-StopAllSounds:: ; 200e (0:200e)
- ld a, Bank(Func_9876)
- ld [$c0ef], a
- ld [$c0f0], a
- xor a
- ld [wMusicHeaderPointer], a
- ld [$c0ee], a
- ld [$cfca], a
- dec a
- jp PlaySound
-
-VBlank:: ; 2024 (0:2024)
- push af
- push bc
- push de
- push hl
- ld a,[H_LOADEDROMBANK] ; current ROM bank
- ld [$d122],a
- ld a,[$ffae]
- ld [rSCX],a
- ld a,[$ffaf]
- ld [rSCY],a
- ld a,[$d0a0]
- and a
- jr nz,.doVramTransfers
- ld a,[$ffb0]
- ld [rWY],a
-.doVramTransfers
- call AutoBgMapTransfer
- call VBlankCopyBgMap
- call RedrawExposedScreenEdge
- call VBlankCopy
- call VBlankCopyDouble
- call UpdateMovingBgTiles
- call $ff80 ; OAM DMA
- ld a,Bank(PrepareOAMData)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call PrepareOAMData ; update OAM buffer with current sprite data
- call GenRandom
- ld a,[H_VBLANKOCCURRED]
- and a
- jr z,.next
- xor a
- ld [H_VBLANKOCCURRED],a
-.next
- ld a,[H_FRAMECOUNTER]
- and a
- jr z,.handleMusic
- dec a
- ld [H_FRAMECOUNTER],a
-.handleMusic
- call Func_28cb
- ld a,[$c0ef] ; music ROM bank
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- cp a,$02
- jr nz,.checkIfBank08
-.bank02
- call Func_9103
- jr .afterMusic
-.checkIfBank08
- cp a,$08
- jr nz,.bank1F
-.bank08
- call Func_2136e
- call Func_21879
- jr .afterMusic
-.bank1F
- call Func_7d177
-.afterMusic
- callba Func_18dee ; keep track of time played
- ld a,[$fff9]
- and a
- call z,ReadJoypadRegister
- ld a,[$d122]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- pop hl
- pop de
- pop bc
- pop af
- reti
-
-DelayFrame:: ; 20af (0:20af)
-; delay for one frame
- ld a,1
- ld [H_VBLANKOCCURRED],a
-
-; wait for the next Vblank, halting to conserve battery
-.halt
- db $76 ; XXX this is a hack--rgbasm adds a nop after this instr even when ints are enabled
- ld a,[H_VBLANKOCCURRED]
- and a
- jr nz,.halt
- ret
-
-; These routines manage gradual fading
-; (e.g., entering a doorway)
-LoadGBPal:: ; 20ba (0:20ba)
- ld a,[$d35d] ;tells if cur.map is dark (requires HM5_FLASH?)
- ld b,a
- ld hl,GBPalTable_00 ;16
- ld a,l
- sub b
- ld l,a
- jr nc,.jr0
- dec h
-.jr0
- ld a,[hli]
- ld [rBGP],a
- ld a,[hli]
- ld [rOBP0],a
- ld a,[hli]
- ld [rOBP1],a
- ret
-
-GBFadeOut1:: ; 20d1 (0:20d1)
- ld hl,IncGradGBPalTable_01 ;0d
- ld b,$04
- jr GBFadeOutCommon
-
-GBFadeOut2:: ; 20d8 (0:20d8)
- ld hl,IncGradGBPalTable_02 ;1c
- ld b,$03
-
-GBFadeOutCommon:: ; 20dd (0:20dd)
- ld a,[hli]
- ld [rBGP],a
- ld a,[hli]
- ld [rOBP0],a
- ld a,[hli]
- ld [rOBP1],a
- ld c,8
- call DelayFrames
- dec b
- jr nz,GBFadeOutCommon
- ret
-
-GBFadeIn1:: ; 20ef (0:20ef)
- ld hl,DecGradGBPalTable_01 ;18
- ld b,$04
- jr GBFadeInCommon
-
-GBFadeIn2:: ; 20f6 (0:20f6)
- ld hl,DecGradGBPalTable_02 ;21
- ld b,$03
-
-GBFadeInCommon:: ; 20fb (0:20fb)
- ld a,[hld]
- ld [rOBP1],a
- ld a,[hld]
- ld [rOBP0],a
- ld a,[hld]
- ld [rBGP],a
- ld c,8
- call DelayFrames
- dec b
- jr nz,GBFadeInCommon
- ret
-
-IncGradGBPalTable_01:: ; 210d (0:210d)
- db %11111111 ;BG Pal
- db %11111111 ;OBJ Pal 1
- db %11111111 ;OBJ Pal 2
- ;and so on...
- db %11111110
- db %11111110
- db %11111000
-
- db %11111001
- db %11100100
- db %11100100
-GBPalTable_00:: ; 2116 (0:2116)
- db %11100100
- db %11010000
-DecGradGBPalTable_01:: ; 2118 (0:2118)
- db %11100000
- ;19
- db %11100100
- db %11010000
- db %11100000
-IncGradGBPalTable_02:: ; 211c (0:211c)
- db %10010000
- db %10000000
- db %10010000
-
- db %01000000
- db %01000000
-DecGradGBPalTable_02:: ; 2121 (0:2121)
- db %01000000
-
- db %00000000
- db %00000000
- db %00000000
-
-Serial:: ; 2125 (0:2125)
- push af
- push bc
- push de
- push hl
- ld a, [$ffaa]
- inc a
- jr z, .asm_2142
- ld a, [$ff01]
- ld [$ffad], a
- ld a, [$ffac]
- ld [$ff01], a
- ld a, [$ffaa]
- cp $2
- jr z, .asm_2162
- ld a, $80
- ld [$ff02], a
- jr .asm_2162
-.asm_2142
- ld a, [$ff01]
- ld [$ffad], a
- ld [$ffaa], a
- cp $2
- jr z, .asm_215f
- xor a
- ld [$ff01], a
- ld a, $3
- ld [rDIV], a ; $ff04
-.asm_2153
- ld a, [rDIV] ; $ff04
- bit 7, a
- jr nz, .asm_2153
- ld a, $80
- ld [$ff02], a
- jr .asm_2162
-.asm_215f
- xor a
- ld [$ff01], a
-.asm_2162
- ld a, $1
- ld [$ffa9], a
- ld a, $fe
- ld [$ffac], a
- pop hl
- pop de
- pop bc
- pop af
- reti
-
-Func_216f:: ; 216f (0:216f)
- ld a, $1
- ld [$ffab], a
-.asm_2173
- ld a, [hl]
- ld [$ffac], a
- call Func_219a
- push bc
- ld b, a
- inc hl
- ld a, $30
-.asm_217e
- dec a
- jr nz, .asm_217e
- ld a, [$ffab]
- and a
- ld a, b
- pop bc
- jr z, .asm_2192
- dec hl
- cp $fd
- jr nz, .asm_2173
- xor a
- ld [$ffab], a
- jr .asm_2173
-.asm_2192
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_2173
- ret
-
-Func_219a:: ; 219a (0:219a)
- xor a
- ld [$ffa9], a
- ld a, [$ffaa]
- cp $2
- jr nz, .asm_21a7
- ld a, $81
- ld [$ff02], a
-.asm_21a7
- ld a, [$ffa9]
- and a
- jr nz, .asm_21f1
- ld a, [$ffaa]
- cp $1
- jr nz, .asm_21cc
- call Func_2237
- jr z, .asm_21cc
- call Func_2231
- push hl
- ld hl, $cc48
- inc [hl]
- jr nz, .asm_21c3
- dec hl
- inc [hl]
-.asm_21c3
- pop hl
- call Func_2237
- jr nz, .asm_21a7
- jp Func_223f
-.asm_21cc
- ld a, [rIE] ; $ffff
- and $f
- cp $8
- jr nz, .asm_21a7
- ld a, [W_NUMHITS] ; $d074
- dec a
- ld [W_NUMHITS], a ; $d074
- jr nz, .asm_21a7
- ld a, [$d075]
- dec a
- ld [$d075], a
- jr nz, .asm_21a7
- ld a, [$ffaa]
- cp $1
- jr z, .asm_21f1
- ld a, $ff
-.asm_21ee
- dec a
- jr nz, .asm_21ee
-.asm_21f1
- xor a
- ld [$ffa9], a
- ld a, [rIE] ; $ffff
- and $f
- sub $8
- jr nz, .asm_2204
- ld [W_NUMHITS], a ; $d074
- ld a, $50
- ld [$d075], a
-.asm_2204
- ld a, [$ffad]
- cp $fe
- ret nz
- call Func_2237
- jr z, .asm_221f
- push hl
- ld hl, $cc48
- ld a, [hl]
- dec a
- ld [hld], a
- inc a
- jr nz, .asm_2219
- dec [hl]
-.asm_2219
- pop hl
- call Func_2237
- jr z, Func_223f
-.asm_221f
- ld a, [rIE] ; $ffff
- and $f
- cp $8
- ld a, $fe
- ret z
- ld a, [hl]
- ld [$ffac], a
- call DelayFrame
- jp Func_219a
-
-Func_2231:: ; 2231 (0:2231)
- ld a, $f
-.asm_2233
- dec a
- jr nz, .asm_2233
- ret
-
-Func_2237:: ; 2237 (0:2237)
- push hl
- ld hl, $cc47
- ld a, [hli]
- or [hl]
- pop hl
- ret
-
-Func_223f:: ; 223f (0:223f)
- dec a
- ld [$cc47], a
- ld [$cc48], a
- ret
-
-Func_2247:: ; 2247 (0:2247)
- ld hl, $cc42
- ld de, $cc3d
- ld c, $2
- ld a, $1
- ld [$ffab], a
-.asm_2253
- call DelayFrame
- ld a, [hl]
- ld [$ffac], a
- call Func_219a
- ld b, a
- inc hl
- ld a, [$ffab]
- and a
- ld a, $0
- ld [$ffab], a
- jr nz, .asm_2253
- ld a, b
- ld [de], a
- inc de
- dec c
- jr nz, .asm_2253
- ret
-
-Func_226e:: ; 226e (0:226e)
- call SaveScreenTilesToBuffer1
- callab PrintWaitingText
- call Func_227f
- jp LoadScreenTilesFromBuffer1
-
-Func_227f:: ; 227f (0:227f)
- ld a, $ff
- ld [$cc3e], a
-.asm_2284
- call Func_22c3
- call DelayFrame
- call Func_2237
- jr z, .asm_22a0
- push hl
- ld hl, $cc48
- dec [hl]
- jr nz, .asm_229f
- dec hl
- dec [hl]
- jr nz, .asm_229f
- pop hl
- xor a
- jp Func_223f
-.asm_229f
- pop hl
-.asm_22a0
- ld a, [$cc3e]
- inc a
- jr z, .asm_2284
- ld b, $a
-.asm_22a8
- call DelayFrame
- call Func_22c3
- dec b
- jr nz, .asm_22a8
- ld b, $a
-.asm_22b3
- call DelayFrame
- call Func_22ed
- dec b
- jr nz, .asm_22b3
- ld a, [$cc3e]
- ld [$cc3d], a
- ret
-
-Func_22c3:: ; 22c3 (0:22c3)
- call asm_22d7
- ld a, [$cc42]
- add $60
- ld [$ffac], a
- ld a, [$ffaa]
- cp $2
- jr nz, asm_22d7
- ld a, $81
- ld [$ff02], a
-asm_22d7:: ; 22d7 (0:22d7)
- ld a, [$ffad]
- ld [$cc3d], a
- and $f0
- cp $60
- ret nz
- xor a
- ld [$ffad], a
- ld a, [$cc3d]
- and $f
- ld [$cc3e], a
- ret
-
-Func_22ed:: ; 22ed (0:22ed)
- xor a
- ld [$ffac], a
- ld a, [$ffaa]
- cp $2
- ret nz
- ld a, $81
- ld [$ff02], a
- ret
-
-Func_22fa:: ; 22fa (0:22fa)
- ld a, $2
- ld [$ff01], a
- xor a
- ld [$ffad], a
- ld a, $80
- ld [$ff02], a
- ret
-
-; timer interrupt is apparently not invoked anyway
-Timer:: ; 2306 (0:2306)
- reti
-
-Func_2307:: ; 2307 (0:2307)
- call WaitForSoundToFinish
- xor a
- ld c, a
- ld d, a
- ld [$cfca], a
- jr asm_2324
-
-Func_2312:: ; 2312 (0:2312)
- ld c, $a
- ld d, $0
- ld a, [$d72e]
- bit 5, a
- jr z, asm_2324
- xor a
- ld [$cfca], a
- ld c, $8
- ld d, c
-asm_2324:: ; 2324 (0:2324)
- ld a, [$d700]
- and a
- jr z, .asm_2343
- cp $2
- jr z, .asm_2332
- ld a, MUSIC_BIKE_RIDING
- jr .asm_2334
-.asm_2332
- ld a, MUSIC_SURFING
-.asm_2334
- ld b, a
- ld a, d
- and a
- ld a, Bank(Func_7d8ea)
- jr nz, .asm_233e
- ld [$c0ef], a
-.asm_233e
- ld [$c0f0], a
- jr .asm_234c
-.asm_2343
- ld a, [$d35b]
- ld b, a
- call Func_2385
- jr c, .asm_2351
-.asm_234c
- ld a, [$cfca]
- cp b
- ret z
-.asm_2351
- ld a, c
- ld [wMusicHeaderPointer], a
- ld a, b
- ld [$cfca], a
- ld [$c0ee], a
- jp PlaySound
-
-Func_235f:: ; 235f (0:235f)
- ld a, [$c0ef]
- ld b, a
- cp $2
- jr nz, .checkForBank08
-.bank02
- ld hl, Func_9103
- jr .asm_2378
-.checkForBank08
- cp $8
- jr nz, .bank1F
-.bank08
- ld hl, Func_21879
- jr .asm_2378
-.bank1F
- ld hl, Func_7d177
-.asm_2378
- ld c, $6
-.asm_237a
- push bc
- push hl
- call Bankswitch
- pop hl
- pop bc
- dec c
- jr nz, .asm_237a
- ret
-
-Func_2385:: ; 2385 (0:2385)
- ld a, [$d35c]
- ld e, a
- ld a, [$c0ef]
- cp e
- jr nz, .asm_2394
- ld [$c0f0], a
- and a
- ret
-.asm_2394
- ld a, c
- and a
- ld a, e
- jr nz, .asm_239c
- ld [$c0ef], a
-.asm_239c
- ld [$c0f0], a
- scf
- ret
-
-PlayMusic:: ; 23a1 (0:23a1)
- ld b, a
- ld [$c0ee], a
- xor a
- ld [wMusicHeaderPointer], a
- ld a, c
- ld [$c0ef], a
- ld [$c0f0], a
- ld a, b
-
-; plays music specified by a. If value is $ff, music is stopped
-PlaySound:: ; 23b1 (0:23b1)
- push hl
- push de
- push bc
- ld b, a
- ld a, [$c0ee]
- and a
- jr z, .asm_23c8
- xor a
- ld [$c02a], a
- ld [$c02b], a
- ld [$c02c], a
- ld [$c02d], a
-.asm_23c8
- ld a, [wMusicHeaderPointer]
- and a
- jr z, .asm_23e3
- ld a, [$c0ee]
- and a
- jr z, .asm_2425
- xor a
- ld [$c0ee], a
- ld a, [$cfca]
- cp $ff
- jr nz, .asm_2414
- xor a
- ld [wMusicHeaderPointer], a
-.asm_23e3
- xor a
- ld [$c0ee], a
- ld a, [H_LOADEDROMBANK]
- ld [$ffb9], a
- ld a, [$c0ef]
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- cp $2
- jr nz, .checkForBank08
-.bank02
- ld a, b
- call Func_9876
- jr .asm_240b
-.checkForBank08
- cp $8
- jr nz, .bank1F
-.bank08
- ld a, b
- call Func_22035
- jr .asm_240b
-.bank1F
- ld a, b
- call Func_7d8ea
-.asm_240b
- ld a, [$ffb9]
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- jr .asm_2425
-.asm_2414
- ld a, b
- ld [$cfca], a
- ld a, [wMusicHeaderPointer]
- ld [$cfc8], a
- ld [$cfc9], a
- ld a, b
- ld [wMusicHeaderPointer], a
-.asm_2425
- pop bc
- pop de
- pop hl
- ret
-
-UpdateSprites:: ; 2429 (0:2429)
- ld a, [$cfcb]
- dec a
- ret nz
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, Bank(_UpdateSprites)
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- call _UpdateSprites
- pop af
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-
-INCLUDE "data/mart_inventories.asm"
-
-TextScriptEndingChar:: ; 24d6 (0:24d6)
- db "@"
-TextScriptEnd:: ; 24d7 (0:24d7)
- ld hl,TextScriptEndingChar
- ret
-
-ExclamationText:: ; 24db (0:24db)
- TX_FAR _ExclamationText
- db "@"
-
-GroundRoseText:: ; 24e0 (0:24e0)
- TX_FAR _GroundRoseText
- db "@"
-
-BoulderText:: ; 24e5 (0:24e5)
- TX_FAR _BoulderText
- db "@"
-
-MartSignText:: ; 24ea (0:24ea)
- TX_FAR _MartSignText
- db "@"
-
-PokeCenterSignText:: ; 24ef (0:24ef)
- TX_FAR _PokeCenterSignText
- db "@"
-
-Predef5CText:: ; 24f4 (0:24f4)
-; XXX better label (what does predef $5C do?)
- db $08 ; asm
- ld a, $5c
- call Predef
- jp TextScriptEnd
-
-; bankswitches and runs _UncompressSpriteData
-; bank is given in a, sprite input stream is pointed to in W_SPRITEINPUTPTR
-UncompressSpriteData:: ; 24fd (0:24fd)
- ld b, a
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ld a, $a
- ld [$0], a
- xor a
- ld [$4000], a
- call _UncompressSpriteData
- pop af
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-
-; initializes necessary data to load a sprite and runs UncompressSpriteDataLoop
-_UncompressSpriteData:: ; 251a (0:251a)
- ld hl, S_SPRITEBUFFER1
- ld c, (2*SPRITEBUFFERSIZE) % $100
- ld b, (2*SPRITEBUFFERSIZE) / $100
- xor a
- call FillMemory ; clear sprite buffer 1 and 2
- ld a, $1
- ld [W_SPRITEINPUTBITCOUNTER], a
- ld a, $3
- ld [W_SPRITEOUTPUTBITOFFSET], a
- xor a
- ld [W_SPRITECURPOSX], a
- ld [W_SPRITECURPOSY], a
- ld [W_SPRITELOADFLAGS], a ; $d0a8
- call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels)
- ld b, a
- and $f
- add a
- add a
- add a
- ld [W_SPRITEHEIGHT], a
- ld a, b
- swap a
- and $f
- add a
- add a
- add a
- ld [W_SPRITEWITDH], a
- call ReadNextInputBit
- ld [W_SPRITELOADFLAGS], a ; initialite bit1 to 0 and bit0 to the first input bit
- ; this will load two chunks of data to S_SPRITEBUFFER1 and S_SPRITEBUFFER2
- ; bit 0 decides in which one the first chunk is placed
- ; fall through
-
-; uncompresses a chunk from the sprite input data stream (pointed to at $d0da) into S_SPRITEBUFFER1 or S_SPRITEBUFFER2
-; each chunk is a 1bpp sprite. A 2bpp sprite consist of two chunks which are merged afterwards
-; note that this is an endless loop which is terminated during a call to MoveToNextBufferPosition by manipulating the stack
-UncompressSpriteDataLoop:: ; 2556 (0:2556)
- ld hl, S_SPRITEBUFFER1
- ld a, [W_SPRITELOADFLAGS] ; $d0a8
- bit 0, a
- jr z, .useSpriteBuffer1 ; check which buffer to use
- ld hl, S_SPRITEBUFFER2
-.useSpriteBuffer1
- call StoreSpriteOutputPointer
- ld a, [W_SPRITELOADFLAGS] ; $d0a8
- bit 1, a
- jr z, .startDecompression ; check if last iteration
- call ReadNextInputBit ; if last chunk, read 1-2 bit unpacking mode
- and a
- jr z, .unpackingMode0 ; 0 -> mode 0
- call ReadNextInputBit ; 1 0 -> mode 1
- inc a ; 1 1 -> mode 2
-.unpackingMode0
- ld [W_SPRITEUNPACKMODE], a
-.startDecompression
- call ReadNextInputBit
- and a
- jr z, .readRLEncodedZeros ; if first bit is 0, the input starts with zeroes, otherwise with (non-zero) input
-.readNextInput
- call ReadNextInputBit
- ld c, a
- call ReadNextInputBit
- sla c
- or c ; read next two bits into c
- and a
- jr z, .readRLEncodedZeros ; 00 -> RLEncoded zeroes following
- call WriteSpriteBitsToBuffer ; otherwise write input to output and repeat
- call MoveToNextBufferPosition
- jr .readNextInput
-.readRLEncodedZeros
- ld c, $0 ; number of zeroes it length encoded, the number
-.countConsecutiveOnesLoop ; of consecutive ones determines the number of bits the number has
- call ReadNextInputBit
- and a
- jr z, .countConsecutiveOnesFinished
- inc c
- jr .countConsecutiveOnesLoop
-.countConsecutiveOnesFinished
- ld a, c
- add a
- ld hl, LengthEncodingOffsetList
- add l
- ld l, a
- jr nc, .noCarry
- inc h
-.noCarry
- ld a, [hli] ; read offset that is added to the number later on
- ld e, a ; adding an offset of 2^length - 1 makes every integer uniquely
- ld d, [hl] ; representable in the length encoding and saves bits
- push de
- inc c
- ld e, $0
- ld d, e
-.readNumberOfZerosLoop ; reads the next c+1 bits of input
- call ReadNextInputBit
- or e
- ld e, a
- dec c
- jr z, .readNumberOfZerosDone
- sla e
- rl d
- jr .readNumberOfZerosLoop
-.readNumberOfZerosDone
- pop hl ; add the offset
- add hl, de
- ld e, l
- ld d, h
-.writeZerosLoop
- ld b, e
- xor a ; write 00 to buffer
- call WriteSpriteBitsToBuffer
- ld e, b
- call MoveToNextBufferPosition
- dec de
- ld a, d
- and a
- jr nz, .continueLoop
- ld a, e
- and a
-.continueLoop
- jr nz, .writeZerosLoop
- jr .readNextInput
-
-; moves output pointer to next position
-; also cancels the calling function if the all output is done (by removing the return pointer from stack)
-; and calls postprocessing functions according to the unpack mode
-MoveToNextBufferPosition:: ; 25d8 (0:25d8)
- ld a, [W_SPRITEHEIGHT]
- ld b, a
- ld a, [W_SPRITECURPOSY]
- inc a
- cp b
- jr z, .curColumnDone
- ld [W_SPRITECURPOSY], a
- ld a, [W_SPRITEOUTPUTPTR]
- inc a
- ld [W_SPRITEOUTPUTPTR], a
- ret nz
- ld a, [W_SPRITEOUTPUTPTR+1]
- inc a
- ld [W_SPRITEOUTPUTPTR+1], a
- ret
-.curColumnDone
- xor a
- ld [W_SPRITECURPOSY], a
- ld a, [W_SPRITEOUTPUTBITOFFSET]
- and a
- jr z, .bitOffsetsDone
- dec a
- ld [W_SPRITEOUTPUTBITOFFSET], a
- ld hl, W_SPRITEOUTPUTPTRCACHED
- ld a, [hli]
- ld [W_SPRITEOUTPUTPTR], a
- ld a, [hl]
- ld [W_SPRITEOUTPUTPTR+1], a
- ret
-.bitOffsetsDone
- ld a, $3
- ld [W_SPRITEOUTPUTBITOFFSET], a
- ld a, [W_SPRITECURPOSX]
- add $8
- ld [W_SPRITECURPOSX], a
- ld b, a
- ld a, [W_SPRITEWITDH]
- cp b
- jr z, .allColumnsDone
- ld a, [W_SPRITEOUTPUTPTR]
- ld l, a
- ld a, [W_SPRITEOUTPUTPTR+1]
- ld h, a
- inc hl
- jp StoreSpriteOutputPointer
-.allColumnsDone
- pop hl
- xor a
- ld [W_SPRITECURPOSX], a
- ld a, [W_SPRITELOADFLAGS] ; $d0a8
- bit 1, a
- jr nz, .done ; test if there is one more sprite to go
- xor $1
- set 1, a
- ld [W_SPRITELOADFLAGS], a ; $d0a8
- jp UncompressSpriteDataLoop
-.done
- jp UnpackSprite
-
-; writes 2 bits (from a) to the output buffer (pointed to from W_SPRITEOUTPUTPTR)
-WriteSpriteBitsToBuffer:: ; 2649 (0:2649)
- ld e, a
- ld a, [W_SPRITEOUTPUTBITOFFSET]
- and a
- jr z, .offset0
- cp $2
- jr c, .offset1
- jr z, .offset2
- rrc e ; offset 3
- rrc e
- jr .offset0
-.offset1
- sla e
- sla e
- jr .offset0
-.offset2
- swap e
-.offset0
- ld a, [W_SPRITEOUTPUTPTR]
- ld l, a
- ld a, [W_SPRITEOUTPUTPTR+1]
- ld h, a
- ld a, [hl]
- or e
- ld [hl], a
- ret
-
-; reads next bit from input stream and returns it in a
-ReadNextInputBit:: ; 2670 (0:2670)
- ld a, [W_SPRITEINPUTBITCOUNTER]
- dec a
- jr nz, .curByteHasMoreBitsToRead
- call ReadNextInputByte
- ld [W_SPRITEINPUTCURBYTE], a
- ld a, $8
-.curByteHasMoreBitsToRead
- ld [W_SPRITEINPUTBITCOUNTER], a
- ld a, [W_SPRITEINPUTCURBYTE]
- rlca
- ld [W_SPRITEINPUTCURBYTE], a
- and $1
- ret
-
-; reads next byte from input stream and returns it in a
-ReadNextInputByte:: ; 268b (0:268b)
- ld a, [W_SPRITEINPUTPTR]
- ld l, a
- ld a, [W_SPRITEINPUTPTR+1]
- ld h, a
- ld a, [hli]
- ld b, a
- ld a, l
- ld [W_SPRITEINPUTPTR], a
- ld a, h
- ld [W_SPRITEINPUTPTR+1], a
- ld a, b
- ret
-
-; the nth item is 2^n - 1
-LengthEncodingOffsetList:: ; 269f (0:269f)
- dw %0000000000000001
- dw %0000000000000011
- dw %0000000000000111
- dw %0000000000001111
- dw %0000000000011111
- dw %0000000000111111
- dw %0000000001111111
- dw %0000000011111111
- dw %0000000111111111
- dw %0000001111111111
- dw %0000011111111111
- dw %0000111111111111
- dw %0001111111111111
- dw %0011111111111111
- dw %0111111111111111
- dw %1111111111111111
-
-; unpacks the sprite data depending on the unpack mode
-UnpackSprite:: ; 26bf (0:26bf)
- ld a, [W_SPRITEUNPACKMODE]
- cp $2
- jp z, UnpackSpriteMode2
- and a
- jp nz, XorSpriteChunks
- ld hl, S_SPRITEBUFFER1
- call SpriteDifferentialDecode
- ld hl, S_SPRITEBUFFER2
- ; fall through
-
-; decodes differential encoded sprite data
-; input bit value 0 preserves the current bit value and input bit value 1 toggles it (starting from initial value 0).
-SpriteDifferentialDecode:: ; 26d4 (0:26d4)
- xor a
- ld [W_SPRITECURPOSX], a
- ld [W_SPRITECURPOSY], a
- call StoreSpriteOutputPointer
- ld a, [W_SPRITEFLIPPED]
- and a
- jr z, .notFlipped
- ld hl, DecodeNybble0TableFlipped
- ld de, DecodeNybble1TableFlipped
- jr .storeDecodeTablesPointers
-.notFlipped
- ld hl, DecodeNybble0Table
- ld de, DecodeNybble1Table
-.storeDecodeTablesPointers
- ld a, l
- ld [W_SPRITEDECODETABLE0PTR], a
- ld a, h
- ld [W_SPRITEDECODETABLE0PTR+1], a
- ld a, e
- ld [W_SPRITEDECODETABLE1PTR], a
- ld a, d
- ld [W_SPRITEDECODETABLE1PTR+1], a
- ld e, $0 ; last decoded nybble, initialized to 0
-.decodeNextByteLoop
- ld a, [W_SPRITEOUTPUTPTR]
- ld l, a
- ld a, [W_SPRITEOUTPUTPTR+1]
- ld h, a
- ld a, [hl]
- ld b, a
- swap a
- and $f
- call DifferentialDecodeNybble ; decode high nybble
- swap a
- ld d, a
- ld a, b
- and $f
- call DifferentialDecodeNybble ; decode low nybble
- or d
- ld b, a
- ld a, [W_SPRITEOUTPUTPTR]
- ld l, a
- ld a, [W_SPRITEOUTPUTPTR+1]
- ld h, a
- ld a, b
- ld [hl], a ; write back decoded data
- ld a, [W_SPRITEHEIGHT]
- add l ; move on to next column
- jr nc, .noCarry
- inc h
-.noCarry
- ld [W_SPRITEOUTPUTPTR], a
- ld a, h
- ld [W_SPRITEOUTPUTPTR+1], a
- ld a, [W_SPRITECURPOSX]
- add $8
- ld [W_SPRITECURPOSX], a
- ld b, a
- ld a, [W_SPRITEWITDH]
- cp b
- jr nz, .decodeNextByteLoop ; test if current row is done
- xor a
- ld e, a
- ld [W_SPRITECURPOSX], a
- ld a, [W_SPRITECURPOSY] ; move on to next row
- inc a
- ld [W_SPRITECURPOSY], a
- ld b, a
- ld a, [W_SPRITEHEIGHT]
- cp b
- jr z, .done ; test if all rows finished
- ld a, [W_SPRITEOUTPUTPTRCACHED]
- ld l, a
- ld a, [W_SPRITEOUTPUTPTRCACHED+1]
- ld h, a
- inc hl
- call StoreSpriteOutputPointer
- jr .decodeNextByteLoop
-.done
- xor a
- ld [W_SPRITECURPOSY], a
- ret
-
-; decodes the nybble stored in a. Last decoded data is assumed to be in e (needed to determine if initial value is 0 or 1)
-DifferentialDecodeNybble:: ; 276d (0:276d)
- srl a ; c=a%2, a/=2
- ld c, $0
- jr nc, .evenNumber
- ld c, $1
-.evenNumber
- ld l, a
- ld a, [W_SPRITEFLIPPED]
- and a
- jr z, .notFlipped ; determine if initial value is 0 or one
- bit 3, e ; if flipped, consider MSB of last data
- jr .selectLookupTable
-.notFlipped
- bit 0, e ; else consider LSB
-.selectLookupTable
- ld e, l
- jr nz, .initialValue1 ; load the appropriate table
- ld a, [W_SPRITEDECODETABLE0PTR]
- ld l, a
- ld a, [W_SPRITEDECODETABLE0PTR+1]
- jr .tableLookup
-.initialValue1
- ld a, [W_SPRITEDECODETABLE1PTR]
- ld l, a
- ld a, [W_SPRITEDECODETABLE1PTR+1]
-.tableLookup
- ld h, a
- ld a, e
- add l
- ld l, a
- jr nc, .noCarry
- inc h
-.noCarry
- ld a, [hl]
- bit 0, c
- jr nz, .selectLowNybble
- swap a ; select high nybble
-.selectLowNybble
- and $f
- ld e, a ; update last decoded data
- ret
-
-DecodeNybble0Table:: ; 27a7 (0:27a7)
- dn $0, $1
- dn $3, $2
- dn $7, $6
- dn $4, $5
- dn $f, $e
- dn $c, $d
- dn $8, $9
- dn $b, $a
-DecodeNybble1Table:: ; 27af (0:27af)
- dn $f, $e
- dn $c, $d
- dn $8, $9
- dn $b, $a
- dn $0, $1
- dn $3, $2
- dn $7, $6
- dn $4, $5
-DecodeNybble0TableFlipped:: ; 27b7 (0:27b7)
- dn $0, $8
- dn $c, $4
- dn $e, $6
- dn $2, $a
- dn $f, $7
- dn $3, $b
- dn $1, $9
- dn $d, $5
-DecodeNybble1TableFlipped:: ; 27bf (0:27bf)
- dn $f, $7
- dn $3, $b
- dn $1, $9
- dn $d, $5
- dn $0, $8
- dn $c, $4
- dn $e, $6
- dn $2, $a
-
-; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differeintial decoded beforehand.
-XorSpriteChunks:: ; 27c7 (0:27c7)
- xor a
- ld [W_SPRITECURPOSX], a
- ld [W_SPRITECURPOSY], a
- call ResetSpriteBufferPointers
- ld a, [W_SPRITEOUTPUTPTR] ; points to buffer 1 or 2, depending on flags
- ld l, a
- ld a, [W_SPRITEOUTPUTPTR+1]
- ld h, a
- call SpriteDifferentialDecode ; decode buffer 1 or 2, depending on flags
- call ResetSpriteBufferPointers
- ld a, [W_SPRITEOUTPUTPTR] ; source buffer, points to buffer 1 or 2, depending on flags
- ld l, a
- ld a, [W_SPRITEOUTPUTPTR+1]
- ld h, a
- ld a, [W_SPRITEOUTPUTPTRCACHED] ; destination buffer, points to buffer 2 or 1, depending on flags
- ld e, a
- ld a, [W_SPRITEOUTPUTPTRCACHED+1]
- ld d, a
-.xorChunksLoop
- ld a, [W_SPRITEFLIPPED]
- and a
- jr z, .notFlipped
- push de
- ld a, [de]
- ld b, a
- swap a
- and $f
- call ReverseNybble ; if flipped reverse the nybbles in the destination buffer
- swap a
- ld c, a
- ld a, b
- and $f
- call ReverseNybble
- or c
- pop de
- ld [de], a
-.notFlipped
- ld a, [hli]
- ld b, a
- ld a, [de]
- xor b
- ld [de], a
- inc de
- ld a, [W_SPRITECURPOSY]
- inc a
- ld [W_SPRITECURPOSY], a ; go to next row
- ld b, a
- ld a, [W_SPRITEHEIGHT]
- cp b
- jr nz, .xorChunksLoop ; test if column finished
- xor a
- ld [W_SPRITECURPOSY], a
- ld a, [W_SPRITECURPOSX]
- add $8
- ld [W_SPRITECURPOSX], a ; go to next column
- ld b, a
- ld a, [W_SPRITEWITDH]
- cp b
- jr nz, .xorChunksLoop ; test if all columns finished
- xor a
- ld [W_SPRITECURPOSX], a
- ret
-
-; reverses the bits in the nybble given in register a
-ReverseNybble:: ; 2837 (0:2837)
- ld de, NybbleReverseTable
- add e
- ld e, a
- jr nc, .asm_283f
- inc d
-.asm_283f
- ld a, [de]
- ret
-
-; resets sprite buffer pointers to buffer 1 and 2, depending on W_SPRITELOADFLAGS
-ResetSpriteBufferPointers:: ; 2841 (0:2841)
- ld a, [W_SPRITELOADFLAGS] ; $d0a8
- bit 0, a
- jr nz, .buffer2Selected
- ld de, S_SPRITEBUFFER1
- ld hl, S_SPRITEBUFFER2
- jr .storeBufferPointers
-.buffer2Selected
- ld de, S_SPRITEBUFFER2
- ld hl, S_SPRITEBUFFER1
-.storeBufferPointers
- ld a, l
- ld [W_SPRITEOUTPUTPTR], a
- ld a, h
- ld [W_SPRITEOUTPUTPTR+1], a
- ld a, e
- ld [W_SPRITEOUTPUTPTRCACHED], a
- ld a, d
- ld [W_SPRITEOUTPUTPTRCACHED+1], a
- ret
-
-; maps each nybble to its reverse
-NybbleReverseTable:: ; 2867 (0:2867)
- db $0, $8, $4, $c, $2, $a, $6 ,$e, $1, $9, $5, $d, $3, $b, $7 ,$f
-
-; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differeintial decoded beforehand.
-UnpackSpriteMode2:: ; 2877 (0:2877)
- call ResetSpriteBufferPointers
- ld a, [W_SPRITEFLIPPED]
- push af
- xor a
- ld [W_SPRITEFLIPPED], a ; temporarily clear flipped flag for decoding the destination chunk
- ld a, [W_SPRITEOUTPUTPTRCACHED]
- ld l, a
- ld a, [W_SPRITEOUTPUTPTRCACHED+1]
- ld h, a
- call SpriteDifferentialDecode
- call ResetSpriteBufferPointers
- pop af
- ld [W_SPRITEFLIPPED], a
- jp XorSpriteChunks
-
-; stores hl into the output pointers
-StoreSpriteOutputPointer:: ; 2897 (0:2897)
- ld a, l
- ld [W_SPRITEOUTPUTPTR], a
- ld [W_SPRITEOUTPUTPTRCACHED], a
- ld a, h
- ld [W_SPRITEOUTPUTPTR+1], a
- ld [W_SPRITEOUTPUTPTRCACHED+1], a
- ret
-
-ResetPlayerSpriteData:: ; 28a6 (0:28a6)
- ld hl, wSpriteStateData1
- call ResetPlayerSpriteData_ClearSpriteData
- ld hl, wSpriteStateData2
- call ResetPlayerSpriteData_ClearSpriteData
- ld a, $1
- ld [wSpriteStateData1], a
- ld [$c20e], a
- ld hl, $c104
- ld [hl], $3c ; set Y screen pos
- inc hl
- inc hl
- ld [hl], $40 ; set X screen pos
- ret
-
-; overwrites sprite data with zeroes
-ResetPlayerSpriteData_ClearSpriteData:: ; 28c4 (0:28c4)
- ld bc, $10
- xor a
- jp FillMemory
-
-Func_28cb:: ; 28cb (0:28cb)
- ld a, [wMusicHeaderPointer]
- and a
- jr nz, .asm_28dc
- ld a, [$d72c]
- bit 1, a
- ret nz
- ld a, $77
- ld [$ff24], a
- ret
-.asm_28dc
- ld a, [$cfc9]
- and a
- jr z, .asm_28e7
- dec a
- ld [$cfc9], a
- ret
-.asm_28e7
- ld a, [$cfc8]
- ld [$cfc9], a
- ld a, [$ff24]
- and a
- jr z, .asm_2903
- ld b, a
- and $f
- dec a
- ld c, a
- ld a, b
- and $f0
- swap a
- dec a
- swap a
- or c
- ld [$ff24], a
- ret
-.asm_2903
- ld a, [wMusicHeaderPointer]
- ld b, a
- xor a
- ld [wMusicHeaderPointer], a
- ld a, $ff
- ld [$c0ee], a
- call PlaySound
- ld a, [$c0f0]
- ld [$c0ef], a
- ld a, b
- ld [$c0ee], a
- jp PlaySound
-
-; this function is used to display sign messages, sprite dialog, etc.
-; INPUT: [$ff8c] = sprite ID or text ID
-DisplayTextID:: ; 2920 (0:2920)
- ld a,[H_LOADEDROMBANK]
- push af
- callba DisplayTextIDInit ; initialization
- ld hl,$cf11
- bit 0,[hl]
- res 0,[hl]
- jr nz,.skipSwitchToMapBank
- ld a,[W_CURMAP]
- call SwitchToMapRomBank
-.skipSwitchToMapBank
- ld a,30 ; half a second
- ld [H_FRAMECOUNTER],a ; used as joypad poll timer
- ld hl,W_MAPTEXTPTR
- ld a,[hli]
- ld h,[hl]
- ld l,a ; hl = map text pointer
- ld d,$00
- ld a,[$ff8c] ; text ID
- ld [$cf13],a
- and a
- jp z,DisplayStartMenu
- cp a,$d3 ; safari game over
- jp z,DisplaySafariGameOverText
- cp a,$d0 ; fainted
- jp z,DisplayPokemonFaintedText
- cp a,$d1 ; blacked out
- jp z,DisplayPlayerBlackedOutText
- cp a,$d2 ; repel wore off
- jp z,DisplayRepelWoreOffText
- ld a,[$d4e1] ; number of sprites
- ld e,a
- ld a,[$ff8c] ; sprite ID
- cp e
- jr z,.spriteHandling
- jr nc,.skipSpriteHandling
-.spriteHandling
-; get the text ID of the sprite
- push hl
- push de
- push bc
- callba Func_13074 ; update the graphics of the sprite the player is talking to (to face the right direction)
- pop bc
- pop de
- ld hl,W_MAPSPRITEDATA ; NPC text entries
- ld a,[$ff8c]
- dec a
- add a
- add l
- ld l,a
- jr nc,.noCarry
- inc h
-.noCarry
- inc hl
- ld a,[hl] ; a = text ID of the sprite
- pop hl
-.skipSpriteHandling
-; look up the address of the text in the map's text entries
- dec a
- ld e,a
- sla e
- add hl,de
- ld a,[hli]
- ld h,[hl]
- ld l,a ; hl = address of the text
- ld a,[hl] ; a = first byte of text
-; check first byte of text for special cases
- cp a,$fe ; Pokemart NPC
- jp z,DisplayPokemartDialogue
- cp a,$ff ; Pokemon Center NPC
- jp z,DisplayPokemonCenterDialogue
- cp a,$fc ; Item Storage PC
- jp z,FuncTX_ItemStoragePC
- cp a,$fd ; Bill's PC
- jp z,FuncTX_BillsPC
- cp a,$f9 ; Pokemon Center PC
- jp z,FuncTX_PokemonCenterPC
- cp a,$f5 ; Vending Machine
- jr nz,.notVendingMachine
- callba VendingMachineMenu ; jump banks to vending machine routine
- jr AfterDisplayingTextID
-.notVendingMachine
- cp a,$f7 ; slot machine
- jp z,FuncTX_SlotMachine
- cp a,$f6 ; cable connection NPC in Pokemon Center
- jr nz,.notSpecialCase
- callab CableClubNPC
- jr AfterDisplayingTextID
-.notSpecialCase
- call Func_3c59 ; display the text
- ld a,[$cc3c]
- and a
- jr nz,HoldTextDisplayOpen
-
-AfterDisplayingTextID:: ; 29d6 (0:29d6)
- ld a,[$cc47]
- and a
- jr nz,HoldTextDisplayOpen
- call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text
-
-; loop to hold the dialogue box open as long as the player keeps holding down the A button
-HoldTextDisplayOpen:: ; 29df (0:29df)
- call GetJoypadState
- ld a,[H_CURRENTPRESSEDBUTTONS]
- bit 0,a ; is the A button being pressed?
- jr nz,HoldTextDisplayOpen
-
-CloseTextDisplay:: ; 29e8 (0:29e8)
- ld a,[W_CURMAP]
- call SwitchToMapRomBank
- ld a,$90
- ld [$ffb0],a ; move the window off the screen
- call DelayFrame
- call LoadGBPal
- xor a
- ld [H_AUTOBGTRANSFERENABLED],a ; disable continuous WRAM to VRAM transfer each V-blank
-; loop to make sprites face the directions they originally faced before the dialogue
- ld hl,$c219
- ld c,$0f
- ld de,$0010
-.restoreSpriteFacingDirectionLoop
- ld a,[hl]
- dec h
- ld [hl],a
- inc h
- add hl,de
- dec c
- jr nz,.restoreSpriteFacingDirectionLoop
- ld a,BANK(InitMapSprites)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns)
- ld hl,$cfc4
- res 0,[hl]
- ld a,[$d732]
- bit 3,a
- call z,LoadPlayerSpriteGraphics
- call LoadCurrentMapView
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- jp UpdateSprites ; move sprites
-
-DisplayPokemartDialogue:: ; 2a2e (0:2a2e)
- push hl
- ld hl,PokemartGreetingText
- call PrintText
- pop hl
- inc hl
- call LoadItemList
- ld a,$02
- ld [$cf94],a ; selects between subtypes of menus
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,Bank(DisplayPokemartDialogue_)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call DisplayPokemartDialogue_
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- jp AfterDisplayingTextID
-
-PokemartGreetingText:: ; 2a55 (0:2a55)
- TX_FAR _PokemartGreetingText
- db "@"
-
-LoadItemList:: ; 2a5a (0:2a5a)
- ld a,$01
- ld [$cfcb],a
- ld a,h
- ld [$d128],a
- ld a,l
- ld [$d129],a
- ld de,$cf7b
-.loop
- ld a,[hli]
- ld [de],a
- inc de
- cp a,$ff
- jr nz,.loop
- ret
-
-DisplayPokemonCenterDialogue:: ; 2a72 (0:2a72)
- xor a
- ld [$ff8b],a
- ld [$ff8c],a
- ld [$ff8d],a
- inc hl
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,Bank(DisplayPokemonCenterDialogue_)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call DisplayPokemonCenterDialogue_
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- jp AfterDisplayingTextID
-
-DisplaySafariGameOverText:: ; 2a90 (0:2a90)
- callab PrintSafariGameOverText
- jp AfterDisplayingTextID
-
-DisplayPokemonFaintedText:: ; 2a9b (0:2a9b)
- ld hl,PokemonFaintedText
- call PrintText
- jp AfterDisplayingTextID
-
-PokemonFaintedText:: ; 2aa4 (0:2aa4)
- TX_FAR _PokemonFaintedText
- db "@"
-
-DisplayPlayerBlackedOutText:: ; 2aa9 (0:2aa9)
- ld hl,PlayerBlackedOutText
- call PrintText
- ld a,[$d732]
- res 5,a
- ld [$d732],a
- jp HoldTextDisplayOpen
-
-PlayerBlackedOutText:: ; 2aba (0:2aba)
- TX_FAR _PlayerBlackedOutText
- db "@"
-
-DisplayRepelWoreOffText:: ; 2abf (0:2abf)
- ld hl,RepelWoreOffText
- call PrintText
- jp AfterDisplayingTextID
-
-RepelWoreOffText:: ; 2ac8 (0:2ac8)
- TX_FAR _RepelWoreOffText
- db "@"
-
-INCLUDE "engine/menu/start_menu.asm"
-
-; function to count how many bits are set in a string of bytes
-; INPUT:
-; hl = address of string of bytes
-; b = length of string of bytes
-; OUTPUT:
-; [$D11E] = number of set bits
-CountSetBits:: ; 2b7f (0:2b7f)
- ld c,0
-.loop
- ld a,[hli]
- ld e,a
- ld d,8
-.innerLoop ; count how many bits are set in the current byte
- srl e
- ld a,0
- adc c
- ld c,a
- dec d
- jr nz,.innerLoop
- dec b
- jr nz,.loop
- ld a,c
- ld [$d11e],a ; store number of set bits
- ret
-
-; subtracts the amount the player paid from their money
-; sets carry flag if there is enough money and unsets carry flag if not
-SubtractAmountPaidFromMoney:: ; 2b96 (0:2b96)
- ld b,BANK(SubtractAmountPaidFromMoney_)
- ld hl,SubtractAmountPaidFromMoney_
- jp Bankswitch
-
-; adds the amount the player sold to their money
-AddAmountSoldToMoney:: ; 2b9e (0:2b9e)
- ld de,wPlayerMoney + 2
- ld hl,$ffa1 ; total price of items
- ld c,3 ; length of money in bytes
- ld a,$0b
- call Predef ; add total price to money
- ld a,$13
- ld [$d125],a
- call DisplayTextBoxID ; redraw money text box
- ld a, (SFX_02_5a - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
- jp WaitForSoundToFinish ; wait until sound is done playing
-
-; function to remove an item (in varying quantities) from the player's bag or PC box
-; INPUT:
-; HL = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$CF92] = index (within the inventory) of the item to remove
-; [$CF96] = quantity to remove
-RemoveItemFromInventory:: ; 2bbb (0:2bbb)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(RemoveItemFromInventory_)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call RemoveItemFromInventory_
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; function to add an item (in varying quantities) to the player's bag or PC box
-; INPUT:
-; HL = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$CF91] = item ID
-; [$CF96] = item quantity
-; sets carry flag if successful, unsets carry flag if unsuccessful
-AddItemToInventory:: ; 2bcf (0:2bcf)
- push bc
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(AddItemToInventory_)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call AddItemToInventory_
- pop bc
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- pop bc
- ret
-
-; INPUT:
-; [wListMenuID] = list menu ID
-; [$cf8b] = address of the list (2 bytes)
-DisplayListMenuID:: ; 2be6 (0:2be6)
- xor a
- ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer
- ld a,1
- ld [$ffb7],a ; joypad state update flag
- ld a,[W_BATTLETYPE]
- and a ; is it the Old Man battle?
- jr nz,.specialBattleType
- ld a,$01 ; hardcoded bank
- jr .bankswitch
-.specialBattleType ; Old Man battle
- ld a, Bank(OldManItemList)
-.bankswitch
- call BankswitchHome
- ld hl,$d730
- set 6,[hl] ; turn off letter printing delay
- xor a
- ld [$cc35],a ; 0 means no item is currently being swapped
- ld [$d12a],a
- ld a,[$cf8b]
- ld l,a
- ld a,[$cf8c]
- ld h,a ; hl = address of the list
- ld a,[hl]
- ld [$d12a],a ; [$d12a] = number of list entries
- ld a,$0d ; list menu text box ID
- ld [$d125],a
- call DisplayTextBoxID ; draw the menu text box
- call UpdateSprites ; move sprites
- FuncCoord 4,2 ; coordinates of upper left corner of menu text box
- ld hl,Coord
- ld de,$090e ; height and width of menu text box
- ld a,[wListMenuID]
- and a ; is it a PC pokemon list?
- jr nz,.skipMovingSprites
- call UpdateSprites ; move sprites
-.skipMovingSprites
- ld a,1 ; max menu item ID is 1 if the list has less than 2 entries
- ld [$cc37],a
- ld a,[$d12a]
- cp a,2 ; does the list have less than 2 entries?
- jr c,.setMenuVariables
- ld a,2 ; max menu item ID is 2 if the list has at least 2 entries
-.setMenuVariables
- ld [wMaxMenuItem],a
- ld a,4
- ld [wTopMenuItemY],a
- ld a,5
- ld [wTopMenuItemX],a
- ld a,%00000111 ; A button, B button, Select button
- ld [wMenuWatchedKeys],a
- ld c,10
- call DelayFrames
-
-DisplayListMenuIDLoop:: ; 2c53 (0:2c53)
- xor a
- ld [H_AUTOBGTRANSFERENABLED],a ; disable transfer
- call PrintListMenuEntries
- ld a,1
- ld [H_AUTOBGTRANSFERENABLED],a ; enable transfer
- call Delay3
- ld a,[W_BATTLETYPE]
- and a ; is it the Old Man battle?
- jr z,.notOldManBattle
-.oldManBattle
- ld a,"▶"
- FuncCoord 5,4
- ld [Coord],a ; place menu cursor in front of first menu entry
- ld c,80
- call DelayFrames
- xor a
- ld [wCurrentMenuItem],a
- ld hl,Coord
- ld a,l
- ld [wMenuCursorLocation],a
- ld a,h
- ld [wMenuCursorLocation + 1],a
- jr .buttonAPressed
-.notOldManBattle
- call LoadGBPal
- call HandleMenuInput
- push af
- call PlaceMenuCursor
- pop af
- bit 0,a ; was the A button pressed?
- jp z,.checkOtherKeys
-.buttonAPressed
- ld a,[wCurrentMenuItem]
- call PlaceUnfilledArrowMenuCursor
- ld a,$01
- ld [$d12e],a
- ld [$d12d],a
- xor a
- ld [$cc37],a
- ld a,[wCurrentMenuItem]
- ld c,a
- ld a,[wListScrollOffset]
- add c
- ld c,a
- ld a,[$d12a] ; number of list entries
- and a ; is the list empty?
- jp z,ExitListMenu ; if so, exit the menu
- dec a
- cp c ; did the player select Cancel?
- jp c,ExitListMenu ; if so, exit the menu
- ld a,c
- ld [wWhichPokemon],a
- ld a,[wListMenuID]
- cp a,ITEMLISTMENU
- jr nz,.skipMultiplying
-; if it's an item menu
- sla c ; item entries are 2 bytes long, so multiply by 2
-.skipMultiplying
- ld a,[$cf8b]
- ld l,a
- ld a,[$cf8c]
- ld h,a
- inc hl ; hl = beginning of list entries
- ld b,0
- add hl,bc
- ld a,[hl]
- ld [$cf91],a
- ld a,[wListMenuID]
- and a ; is it a PC pokemon list?
- jr z,.pokemonList
- push hl
- call GetItemPrice
- pop hl
- ld a,[wListMenuID]
- cp a,ITEMLISTMENU
- jr nz,.skipGettingQuantity
-; if it's an item menu
- inc hl
- ld a,[hl] ; a = item quantity
- ld [$cf97],a
-.skipGettingQuantity
- ld a,[$cf91]
- ld [$d0b5],a
- ld a,$01
- ld [$d0b7],a
- call GetName
- jr .storeChosenEntry
-.pokemonList
- ld hl,W_NUMINPARTY
- ld a,[$cf8b]
- cp l ; is it a list of party pokemon or box pokemon?
- ld hl,W_PARTYMON1NAME
- jr z,.getPokemonName
- ld hl, W_BOXMON1NAME ; box pokemon names
-.getPokemonName
- ld a,[wWhichPokemon]
- call GetPartyMonName
-.storeChosenEntry ; store the menu entry that the player chose and return
- ld de,$cd6d
- call CopyStringToCF4B ; copy name to $cf4b
- ld a,$01
- ld [$d12e],a
- ld a,[wCurrentMenuItem]
- ld [$d12d],a
- xor a
- ld [$ffb7],a ; joypad state update flag
- ld hl,$d730
- res 6,[hl] ; turn on letter printing delay
- jp BankswitchBack
-.checkOtherKeys ; check B, SELECT, Up, and Down keys
- bit 1,a ; was the B button pressed?
- jp nz,ExitListMenu ; if so, exit the menu
- bit 2,a ; was the select button pressed?
- jp nz,HandleItemListSwapping ; if so, allow the player to swap menu entries
- ld b,a
- bit 7,b ; was Down pressed?
- ld hl,wListScrollOffset
- jr z,.upPressed
-.downPressed
- ld a,[hl]
- add a,3
- ld b,a
- ld a,[$d12a] ; number of list entries
- cp b ; will going down scroll past the Cancel button?
- jp c,DisplayListMenuIDLoop
- inc [hl] ; if not, go down
- jp DisplayListMenuIDLoop
-.upPressed
- ld a,[hl]
- and a
- jp z,DisplayListMenuIDLoop
- dec [hl]
- jp DisplayListMenuIDLoop
-
-DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
-; text box dimensions/coordinates for just quantity
- FuncCoord 15,9
- ld hl,Coord
- ld b,1 ; height
- ld c,3 ; width
- ld a,[wListMenuID]
- cp a,PRICEDITEMLISTMENU
- jr nz,.drawTextBox
-; text box dimensions/coordinates for quantity and price
- FuncCoord 7,9
- ld hl,Coord
- ld b,1 ; height
- ld c,11 ; width
-.drawTextBox
- call TextBoxBorder
- FuncCoord 16,10
- ld hl,Coord
- ld a,[wListMenuID]
- cp a,PRICEDITEMLISTMENU
- jr nz,.printInitialQuantity
- FuncCoord 8,10
- ld hl,Coord
-.printInitialQuantity
- ld de,InitialQuantityText
- call PlaceString
- xor a
- ld [$cf96],a ; initialize current quantity to 0
- jp .incrementQuantity
-.waitForKeyPressLoop
- call GetJoypadStateLowSensitivity
- ld a,[H_NEWLYPRESSEDBUTTONS] ; newly pressed buttons
- bit 0,a ; was the A button pressed?
- jp nz,.buttonAPressed
- bit 1,a ; was the B button pressed?
- jp nz,.buttonBPressed
- bit 6,a ; was Up pressed?
- jr nz,.incrementQuantity
- bit 7,a ; was Down pressed?
- jr nz,.decrementQuantity
- jr .waitForKeyPressLoop
-.incrementQuantity
- ld a,[$cf97] ; max quantity
- inc a
- ld b,a
- ld hl,$cf96 ; current quantity
- inc [hl]
- ld a,[hl]
- cp b
- jr nz,.handleNewQuantity
-; wrap to 1 if the player goes above the max quantity
- ld a,1
- ld [hl],a
- jr .handleNewQuantity
-.decrementQuantity
- ld hl,$cf96 ; current quantity
- dec [hl]
- jr nz,.handleNewQuantity
-; wrap to the max quantity if the player goes below 1
- ld a,[$cf97] ; max quantity
- ld [hl],a
-.handleNewQuantity
- FuncCoord 17,10
- ld hl,Coord
- ld a,[wListMenuID]
- cp a,PRICEDITEMLISTMENU
- jr nz,.printQuantity
-.printPrice
- ld c,$03
- ld a,[$cf96]
- ld b,a
- ld hl,$ff9f ; total price
-; initialize total price to 0
- xor a
- ld [hli],a
- ld [hli],a
- ld [hl],a
-.addLoop ; loop to multiply the individual price by the quantity to get the total price
- ld de,$ffa1
- ld hl,$ff8d
- push bc
- ld a,$0b
- call Predef ; add the individual price to the current sum
- pop bc
- dec b
- jr nz,.addLoop
- ld a,[$ff8e]
- and a ; should the price be halved (for selling items)?
- jr z,.skipHalvingPrice
- xor a
- ld [$ffa2],a
- ld [$ffa3],a
- ld a,$02
- ld [$ffa4],a
- ld a,$0d
- call Predef ; halves the price
-; store the halved price
- ld a,[$ffa2]
- ld [$ff9f],a
- ld a,[$ffa3]
- ld [$ffa0],a
- ld a,[$ffa4]
- ld [$ffa1],a
-.skipHalvingPrice
- FuncCoord 12,10
- ld hl,Coord
- ld de,SpacesBetweenQuantityAndPriceText
- call PlaceString
- ld de,$ff9f ; total price
- ld c,$a3
- call PrintBCDNumber
- FuncCoord 9,10
- ld hl,Coord
-.printQuantity
- ld de,$cf96 ; current quantity
- ld bc,$8102 ; print leading zeroes, 1 byte, 2 digits
- call PrintNumber
- jp .waitForKeyPressLoop
-.buttonAPressed ; the player chose to make the transaction
- xor a
- ld [$cc35],a ; 0 means no item is currently being swapped
- ret
-.buttonBPressed ; the player chose to cancel the transaction
- xor a
- ld [$cc35],a ; 0 means no item is currently being swapped
- ld a,$ff
- ret
-
-InitialQuantityText:: ; 2e30 (0:2e30)
- db "×01@"
-
-SpacesBetweenQuantityAndPriceText:: ; 2e34 (0:2e34)
- db " @"
-
-ExitListMenu:: ; 2e3b (0:2e3b)
- ld a,[wCurrentMenuItem]
- ld [$d12d],a
- ld a,$02
- ld [$d12e],a
- ld [$cc37],a
- xor a
- ld [$ffb7],a
- ld hl,$d730
- res 6,[hl]
- call BankswitchBack
- xor a
- ld [$cc35],a ; 0 means no item is currently being swapped
- scf
- ret
-
-PrintListMenuEntries:: ; 2e5a (0:2e5a)
- FuncCoord 5, 3 ; $c3e1
- ld hl,Coord
- ld b,$09
- ld c,$0e
- call ClearScreenArea
- ld a,[$cf8b]
- ld e,a
- ld a,[$cf8c]
- ld d,a
- inc de ; de = beginning of list entries
- ld a,[wListScrollOffset]
- ld c,a
- ld a,[wListMenuID]
- cp a,ITEMLISTMENU
- ld a,c
- jr nz,.skipMultiplying
-; if it's an item menu
-; item entries are 2 bytes long, so multiply by 2
- sla a
- sla c
-.skipMultiplying
- add e
- ld e,a
- jr nc,.noCarry
- inc d
-.noCarry
- FuncCoord 6,4 ; coordinates of first list entry name
- ld hl,Coord
- ld b,4 ; print 4 names
-.loop
- ld a,b
- ld [wWhichPokemon],a
- ld a,[de]
- ld [$d11e],a
- cp a,$ff
- jp z,.printCancelMenuItem
- push bc
- push de
- push hl
- push hl
- push de
- ld a,[wListMenuID]
- and a
- jr z,.pokemonPCMenu
- cp a,$01
- jr z,.movesMenu
-.itemMenu
- call GetItemName
- jr .placeNameString
-.pokemonPCMenu
- push hl
- ld hl,W_NUMINPARTY
- ld a,[$cf8b]
- cp l ; is it a list of party pokemon or box pokemon?
- ld hl,W_PARTYMON1NAME
- jr z,.getPokemonName
- ld hl, W_BOXMON1NAME ; box pokemon names
-.getPokemonName
- ld a,[wWhichPokemon]
- ld b,a
- ld a,4
- sub b
- ld b,a
- ld a,[wListScrollOffset]
- add b
- call GetPartyMonName
- pop hl
- jr .placeNameString
-.movesMenu
- call GetMoveName
-.placeNameString
- call PlaceString
- pop de
- pop hl
- ld a,[$cf93]
- and a ; should prices be printed?
- jr z,.skipPrintingItemPrice
-.printItemPrice
- push hl
- ld a,[de]
- ld de,ItemPrices
- ld [$cf91],a
- call GetItemPrice ; get price
- pop hl
- ld bc,20 + 5 ; 1 row down and 5 columns right
- add hl,bc
- ld c,$a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes
- call PrintBCDNumber
-.skipPrintingItemPrice
- ld a,[wListMenuID]
- and a
- jr nz,.skipPrintingPokemonLevel
-.printPokemonLevel
- ld a,[$d11e]
- push af
- push hl
- ld hl,W_NUMINPARTY
- ld a,[$cf8b]
- cp l ; is it a list of party pokemon or box pokemon?
- ld a,$00
- jr z,.next
- ld a,$02
-.next
- ld [$cc49],a
- ld hl,wWhichPokemon
- ld a,[hl]
- ld b,a
- ld a,$04
- sub b
- ld b,a
- ld a,[wListScrollOffset]
- add b
- ld [hl],a
- call LoadMonData ; load pokemon info
- ld a,[$cc49]
- and a ; is it a list of party pokemon or box pokemon?
- jr z,.skipCopyingLevel
-.copyLevel
- ld a,[$cf9b]
- ld [$cfb9],a
-.skipCopyingLevel
- pop hl
- ld bc,$001c
- add hl,bc
- call PrintLevel ; print level
- pop af
- ld [$d11e],a
-.skipPrintingPokemonLevel
- pop hl
- pop de
- inc de
- ld a,[wListMenuID]
- cp a,ITEMLISTMENU
- jr nz,.nextListEntry
-.printItemQuantity
- ld a,[$d11e]
- ld [$cf91],a
- call IsKeyItem ; check if item is unsellable
- ld a,[$d124]
- and a ; is the item unsellable?
- jr nz,.skipPrintingItemQuantity ; if so, don't print the quantity
- push hl
- ld bc,20 + 8 ; 1 row down and 8 columns right
- add hl,bc
- ld a,"×"
- ldi [hl],a
- ld a,[$d11e]
- push af
- ld a,[de]
- ld [$cf97],a
- push de
- ld de,$d11e
- ld [de],a
- ld bc,$0102
- call PrintNumber
- pop de
- pop af
- ld [$d11e],a
- pop hl
-.skipPrintingItemQuantity
- inc de
- pop bc
- inc c
- push bc
- inc c
- ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
- and a ; is an item being swapped?
- jr z,.nextListEntry
- sla a
- cp c ; is it this item?
- jr nz,.nextListEntry
- dec hl
- ld a,$ec ; unfilled right arrow menu cursor to indicate an item being swapped
- ld [hli],a
-.nextListEntry
- ld bc,2 * 20 ; 2 rows
- add hl,bc
- pop bc
- inc c
- dec b
- jp nz,.loop
- ld bc,-8
- add hl,bc
- ld a,$ee ; down arrow
- ld [hl],a
- ret
-.printCancelMenuItem
- ld de,ListMenuCancelText
- jp PlaceString
-
-ListMenuCancelText:: ; 2f97 (0:2f97)
- db "CANCEL@"
-
-GetMonName:: ; 2f9e (0:2f9e)
- push hl
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(MonsterNames) ; 07
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld a,[$d11e]
- dec a
- ld hl,MonsterNames ; 421E
- ld c,10
- ld b,0
- call AddNTimes
- ld de,$cd6d
- push de
- ld bc,10
- call CopyData
- ld hl,$cd77
- ld [hl], "@"
- pop de
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- pop hl
- ret
-
-GetItemName:: ; 2fcf (0:2fcf)
-; given an item ID at [$D11E], store the name of the item into a string
-; starting at $CD6D
- push hl
- push bc
- ld a,[$D11E]
- cp HM_01 ; is this a TM/HM?
- jr nc,.Machine
-
- ld [$D0B5],a
- ld a,ITEM_NAME
- ld [W_LISTTYPE],a
- ld a,BANK(ItemNames)
- ld [$D0B7],a
- call GetName
- jr .Finish
-
-.Machine
- call GetMachineName
-.Finish
- ld de,$CD6D ; pointer to where item name is stored in RAM
- pop bc
- pop hl
- ret
-
-GetMachineName:: ; 2ff3 (0:2ff3)
-; copies the name of the TM/HM in [$D11E] to $CD6D
- push hl
- push de
- push bc
- ld a,[$D11E]
- push af
- cp TM_01 ; is this a TM? [not HM]
- jr nc,.WriteTM
-; if HM, then write "HM" and add 5 to the item ID, so we can reuse the
-; TM printing code
- add 5
- ld [$D11E],a
- ld hl,HiddenPrefix ; points to "HM"
- ld bc,2
- jr .WriteMachinePrefix
-.WriteTM
- ld hl,TechnicalPrefix ; points to "TM"
- ld bc,2
-.WriteMachinePrefix
- ld de,$CD6D
- call CopyData
-
-; now get the machine number and convert it to text
- ld a,[$D11E]
- sub TM_01 - 1
- ld b,$F6 ; "0"
-.FirstDigit
- sub 10
- jr c,.SecondDigit
- inc b
- jr .FirstDigit
-.SecondDigit
- add 10
- push af
- ld a,b
- ld [de],a
- inc de
- pop af
- ld b,$F6 ; "0"
- add b
- ld [de],a
- inc de
- ld a,"@"
- ld [de],a
-
- pop af
- ld [$D11E],a
- pop bc
- pop de
- pop hl
- ret
-
-TechnicalPrefix:: ; 303c (0:303c)
- db "TM"
-HiddenPrefix:: ; 303e (0:303e)
- db "HM"
-
-; sets carry if item is HM, clears carry if item is not HM
-; Input: a = item ID
-IsItemHM:: ; 3040 (0:3040)
- cp a,HM_01
- jr c,.notHM
- cp a,TM_01
- ret
-.notHM
- and a
- ret
-
-; sets carry if move is an HM, clears carry if move is not an HM
-; Input: a = move ID
-IsMoveHM:: ; 3049 (0:3049)
- ld hl,HMMoves
- ld de,1
- jp IsInArray
-
-HMMoves:: ; 3052 (0:3052)
- db CUT,FLY,SURF,STRENGTH,FLASH
- db $ff ; terminator
-
-GetMoveName:: ; 3058 (0:3058)
- push hl
- ld a,MOVE_NAME
- ld [W_LISTTYPE],a
- ld a,[$d11e]
- ld [$d0b5],a
- ld a,BANK(MoveNames)
- ld [$d0b7],a
- call GetName
- ld de,$cd6d ; pointer to where move name is stored in RAM
- pop hl
- ret
-
-; reloads text box tile patterns, current map view, and tileset tile patterns
-ReloadMapData:: ; 3071 (0:3071)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[W_CURMAP]
- call SwitchToMapRomBank
- call DisableLCD
- call LoadTextBoxTilePatterns
- call LoadCurrentMapView
- call LoadTilesetTilePatternData
- call EnableLCD
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; reloads tileset tile patterns
-ReloadTilesetTilePatterns:: ; 3090 (0:3090)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,[W_CURMAP]
- call SwitchToMapRomBank
- call DisableLCD
- call LoadTilesetTilePatternData
- call EnableLCD
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; shows the town map and lets the player choose a destination to fly to
-ChooseFlyDestination:: ; 30a9 (0:30a9)
- ld hl,$d72e
- res 4,[hl]
- ld b, BANK(LoadTownMap_Fly)
- ld hl, LoadTownMap_Fly
- jp Bankswitch
-
-; causes the text box to close waithout waiting for a button press after displaying text
-DisableWaitingAfterTextDisplay:: ; 30b6 (0:30b6)
- ld a,$01
- ld [$cc3c],a
- ret
-
-; uses an item
-; UseItem is used with dummy items to perform certain other functions as well
-; INPUT:
-; [$cf91] = item ID
-; OUTPUT:
-; [$cd6a] = success
-; 00: unsucessful
-; 01: successful
-; 02: not able to be used right now, no extra menu displayed (only certain items use this)
-UseItem:: ; 30bc (0:30bc)
- ld b,BANK(UseItem_)
- ld hl,UseItem_
- jp Bankswitch
-
-; confirms the item toss and then tosses the item
-; INPUT:
-; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$cf91] = item ID
-; [$cf92] = index of item within inventory
-; [$cf96] = quantity to toss
-; OUTPUT:
-; clears carry flag if the item is tossed, sets carry flag if not
-TossItem:: ; 30c4 (0:30c4)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(TossItem_)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call TossItem_
- pop de
- ld a,d
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; checks if an item is a key item
-; INPUT:
-; [$cf91] = item ID
-; OUTPUT:
-; [$d124] = result
-; 00: item is not key item
-; 01: item is key item
-IsKeyItem:: ; 30d9 (0:30d9)
- push hl
- push de
- push bc
- callba IsKeyItem_
- pop bc
- pop de
- pop hl
- ret
-
-; function to draw various text boxes
-; INPUT:
-; [$D125] = text box ID
-DisplayTextBoxID:: ; 30e8 (0:30e8)
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,BANK(DisplayTextBoxID_)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call DisplayTextBoxID_
- pop bc
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-Func_30fd:: ; 30fd (0:30fd)
- ld a, [$cc57]
- and a
- ret nz
- ld a, [$d736]
- bit 1, a
- ret nz
- ld a, [$d730]
- and $80
- ret
-
-Func_310e:: ; 310e (0:310e)
- ld hl, $d736
- bit 0, [hl]
- res 0, [hl]
- jr nz, .asm_3146
- ld a, [$cc57]
- and a
- ret z
- dec a
- add a
- ld d, $0
- ld e, a
- ld hl, .pointerTable_3140
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, [$cc58]
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ld a, [$cf10]
- call CallFunctionInTable
- pop af
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-.pointerTable_3140
- dw PointerTable_1a442
- dw PointerTable_1a510
- dw PointerTable_1a57d
-.asm_3146
- ld b, BANK(Func_1a3e0)
- ld hl, Func_1a3e0
- jp Bankswitch
-
-Func_314e:: ; 314e (0:314e)
- ld b, BANK(Func_1a41d)
- ld hl, Func_1a41d
- jp Bankswitch
-
-Func_3156:: ; 3156 (0:3156)
- ret
-
-; stores hl in [W_TRAINERHEADERPTR]
-StoreTrainerHeaderPointer:: ; 3157 (0:3157)
- ld a, h
- ld [W_TRAINERHEADERPTR], a
- ld a, l
- ld [W_TRAINERHEADERPTR+1], a
- ret
-
-; executes the current map script from the function pointer array provided in hl.
-; a: map script index to execute (unless overridden by [$d733] bit 4)
-ExecuteCurMapScriptInTable:: ; 3160 (0:3160)
- push af
- push de
- call StoreTrainerHeaderPointer
- pop hl
- pop af
- push hl
- ld hl, W_FLAGS_D733
- bit 4, [hl]
- res 4, [hl]
- jr z, .useProvidedIndex ; test if map script index was overridden manually
- ld a, [W_CURMAPSCRIPT]
-.useProvidedIndex
- pop hl
- ld [W_CURMAPSCRIPT], a
- call CallFunctionInTable
- ld a, [W_CURMAPSCRIPT]
- ret
-
-LoadGymLeaderAndCityName:: ; 317f (0:317f)
- push de
- ld de, wGymCityName
- ld bc, $11
- call CopyData ; load city name
- pop hl
- ld de, wGymLeaderName
- ld bc, $b
- jp CopyData ; load gym leader name
-
-; reads specific information from trainer header (pointed to at W_TRAINERHEADERPTR)
-; a: offset in header data
-; 0 -> flag's bit (into wTrainerHeaderFlagBit)
-; 2 -> flag's byte ptr (into hl)
-; 4 -> before battle text (into hl)
-; 6 -> after battle text (into hl)
-; 8 -> end battle text (into hl)
-ReadTrainerHeaderInfo:: ; 3193 (0:3193)
- push de
- push af
- ld d, $0
- ld e, a
- ld hl, W_TRAINERHEADERPTR
- ld a, [hli]
- ld l, [hl]
- ld h, a
- add hl, de
- pop af
- and a
- jr nz, .nonZeroOffset
- ld a, [hl]
- ld [wTrainerHeaderFlagBit], a ; store flag's bit
- jr .done
-.nonZeroOffset
- cp $2
- jr z, .readPointer ; read flag's byte ptr
- cp $4
- jr z, .readPointer ; read before battle text
- cp $6
- jr z, .readPointer ; read after battle text
- cp $8
- jr z, .readPointer ; read end battle text
- cp $a
- jr nz, .done
- ld a, [hli] ; read end battle text (2) but override the result afterwards (XXX why, bug?)
- ld d, [hl]
- ld e, a
- jr .done
-.readPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.done
- pop de
- ret
-
-; calls HandleBitArray
-HandleBitArray_Bank0:: ; 31c7 (0:31c7)
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
-
-; direct talking to a trainer (rather than getting seen by one)
-TalkToTrainer:: ; 31cc (0:31cc)
- call StoreTrainerHeaderPointer
- xor a
- call ReadTrainerHeaderInfo ; read flag's bit
- ld a, $2
- call ReadTrainerHeaderInfo ; read flag's byte ptr
- ld a, [wTrainerHeaderFlagBit]
- ld c, a
- ld b, $2
- call HandleBitArray_Bank0 ; read trainer's flag
- ld a, c
- and a
- jr z, .trainerNotYetFought ; test trainer's flag
- ld a, $6
- call ReadTrainerHeaderInfo ; print after battle text
- jp PrintText
-.trainerNotYetFought ; 0x31ed
- ld a, $4
- call ReadTrainerHeaderInfo ; print before battle text
- call PrintText
- ld a, $a
- call ReadTrainerHeaderInfo ; (?) does nothing apparently (maybe bug in ReadTrainerHeaderInfo)
- push de
- ld a, $8
- call ReadTrainerHeaderInfo ; read end battle text
- pop de
- call PreBattleSaveRegisters
- ld hl, W_FLAGS_D733
- set 4, [hl] ; activate map script index override (index is set below)
- ld hl, wFlags_0xcd60
- bit 0, [hl] ; test if player is already being engaged by another trainer
- ret nz
- call EngageMapTrainer
- ld hl, W_CURMAPSCRIPT
- inc [hl] ; progress map script index (assuming it was 0 before) to start pre-battle routines
- jp Func_325d
-
-; checks if any trainers are seeing the player and wanting to fight
-CheckFightingMapTrainers:: ; 3219 (0:3219)
- call CheckForEngagingTrainers
- ld a, [$cf13]
- cp $ff
- jr nz, .trainerEngaging
- xor a
- ld [$cf13], a
- ld [wTrainerHeaderFlagBit], a
- ret
-.trainerEngaging
- ld hl, W_FLAGS_D733
- set 3, [hl]
- ld [$cd4f], a
- xor a
- ld [$cd50], a
- ld a, $4c
- call Predef
- ld a, BTN_RIGHT | BTN_LEFT | BTN_UP | BTN_DOWN
- ld [wJoypadForbiddenButtonsMask], a
- xor a
- ldh [$b4], a
- call TrainerWalkUpToPlayer_Bank0
- ld hl, W_CURMAPSCRIPT
- inc [hl] ; progress to battle phase 1 (engaging)
- ret
-
-Func_324c:: ; 324c (0:324c)
- ld a, [$d730]
- and $1
- ret nz
- ld [wJoypadForbiddenButtonsMask], a
- ld a, [$cf13]
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- call DisplayTextID
-
-Func_325d:: ; 325d (0:325d)
- xor a
- ld [wJoypadForbiddenButtonsMask], a
- call InitBattleEnemyParameters
- ld hl, $d72d
- set 6, [hl]
- set 7, [hl]
- ld hl, $d72e
- set 1, [hl]
- ld hl, W_CURMAPSCRIPT
- inc [hl] ; progress to battle phase 2 (battling)
- ret
-
-EndTrainerBattle:: ; 3275 (0:3275)
- ld hl, $d126
- set 5, [hl]
- set 6, [hl]
- ld hl, $d72d
- res 7, [hl]
- ld hl, wFlags_0xcd60
- res 0, [hl] ; player is no longer engaged by any trainer
- ld a, [W_ISINBATTLE] ; $d057
- cp $ff
- jp z, ResetButtonPressedAndMapScript
- ld a, $2
- call ReadTrainerHeaderInfo
- ld a, [wTrainerHeaderFlagBit]
- ld c, a
- ld b, $1
- call HandleBitArray_Bank0 ; flag trainer as fought
- ld a, [W_ENEMYMONORTRAINERCLASS]
- cp $c8
- jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
- ld hl, W_MISSABLEOBJECTLIST
- ld de, $2
- ld a, [$cf13]
- call IsInArray ; search for sprite ID
- inc hl
- ld a, [hl]
- ld [$cc4d], a ; load corresponding missable object index and remove it
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-.skipRemoveSprite
- ld hl, $d730
- bit 4, [hl]
- res 4, [hl]
- ret nz
-
-ResetButtonPressedAndMapScript:: ; 32c1 (0:32c1)
- xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_NEWLYRELEASEDBUTTONS], a
- ld [W_CURMAPSCRIPT], a ; reset battle status
- ret
-
-; calls TrainerWalkUpToPlayer
-TrainerWalkUpToPlayer_Bank0:: ; 32cf (0:32cf)
- ld b, BANK(TrainerWalkUpToPlayer)
- ld hl, TrainerWalkUpToPlayer
- jp Bankswitch
-
-; sets opponent type and mon set/lvl based on the engaging trainer data
-InitBattleEnemyParameters:: ; 32d7 (0:32d7)
- ld a, [wEngagedTrainerClass]
- ld [W_CUROPPONENT], a ; $d059
- ld [W_ENEMYMONORTRAINERCLASS], a
- cp $c8
- ld a, [wEngagedTrainerSet] ; $cd2e
- jr c, .noTrainer
- ld [W_TRAINERNO], a ; $d05d
- ret
-.noTrainer
- ld [W_CURENEMYLVL], a ; $d127
- ret
-
-Func_32ef:: ; 32ef (0:32ef)
- ld hl, Func_567f9
- jr asm_3301
-
-Func_32f4:: ; 32f4 (0:32f4)
- ld hl, Func_56819
- jr asm_3301 ; 0x32f7 $8
-
-Func_32f9:: ; 32f9 (0:32f9)
- ld hl, Func_5683d
- jr asm_3301
-
-Func_32fe:: ; 32fe (0:32fe)
- ld hl, Func_5685d
-asm_3301:: ; 3301 (0:3301)
- ld b, BANK(Func_567f9) ; BANK(Func_56819), BANK(Func_5683d), BANK(Func_5685d)
- jp Bankswitch ; indirect jump to one of the four functions
-
-CheckForEngagingTrainers:: ; 3306 (0:3306)
- xor a
- call ReadTrainerHeaderInfo ; read trainer flag's bit (unused)
- ld d, h ; store trainer header address in de
- ld e, l
-.trainerLoop
- call StoreTrainerHeaderPointer ; set trainer header pointer to current trainer
- ld a, [de]
- ld [$cf13], a ; store trainer flag's bit
- ld [wTrainerHeaderFlagBit], a
- cp $ff
- ret z
- ld a, $2
- call ReadTrainerHeaderInfo ; read trainer flag's byte ptr
- ld b, $2
- ld a, [wTrainerHeaderFlagBit]
- ld c, a
- call HandleBitArray_Bank0 ; read trainer flag
- ld a, c
- and a
- jr nz, .trainerAlreadyFought
- push hl
- push de
- push hl
- xor a
- call ReadTrainerHeaderInfo ; get trainer header pointer
- inc hl
- ld a, [hl] ; read trainer engage distance
- pop hl
- ld [wTrainerEngageDistance], a
- ld a, [$cf13]
- swap a
- ld [wTrainerSpriteOffset], a ; $cd3d
- ld a, $39
- call Predef ; indirect jump to CheckEngagePlayer (5690f (15:690f))
- pop de
- pop hl
- ld a, [wTrainerSpriteOffset] ; $cd3d
- and a
- ret nz ; break if the trainer is engaging
-.trainerAlreadyFought
- ld hl, $c
- add hl, de
- ld d, h
- ld e, l
- jr .trainerLoop
-
-; saves loaded rom bank and hl as well as de registers
-PreBattleSaveRegisters:: ; 3354 (0:3354)
- ld a, [H_LOADEDROMBANK]
- ld [W_PBSTOREDROMBANK], a
- ld a, h
- ld [W_PBSTOREDREGISTERH], a
- ld a, l
- ld [W_PBSTOREDREGISTERL], a
- ld a, d
- ld [W_PBSTOREDREGISTERD], a
- ld a, e
- ld [W_PBSTOREDREGISTERE], a
- ret
-
-; loads data of some trainer on the current map and plays pre-battle music
-; [$cf13]: sprite ID of trainer who is engaged
-EngageMapTrainer:: ; 336a (0:336a)
- ld hl, W_MAPSPRITEEXTRADATA
- ld d, $0
- ld a, [$cf13]
- dec a
- add a
- ld e, a
- add hl, de ; seek to engaged trainer data
- ld a, [hli] ; load trainer class
- ld [wEngagedTrainerClass], a
- ld a, [hl] ; load trainer mon set
- ld [wEnemyMonAttackMod], a ; $cd2e
- jp PlayTrainerMusic
-
-Func_3381:: ; 3381 (0:3381)
- push hl
- ld hl, $d72d
- bit 7, [hl]
- res 7, [hl]
- pop hl
- ret z
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, [W_PBSTOREDROMBANK]
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- push hl
- callba SaveTrainerName
- ld hl, TrainerNameText
- call PrintText
- pop hl
- pop af
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- callba Func_1a5e7
- jp WaitForSoundToFinish
-
-Func_33b7:: ; 33b7 (0:33b7)
- ld a, [$cf0b]
- and a
- jr nz, .asm_33c6
- ld a, [W_PBSTOREDREGISTERH]
- ld h, a
- ld a, [W_PBSTOREDREGISTERL]
- ld l, a
- ret
-.asm_33c6
- ld a, [W_PBSTOREDREGISTERD]
- ld h, a
- ld a, [W_PBSTOREDREGISTERE]
- ld l, a
- ret
-
-TrainerNameText:: ; 33cf (0:33cf)
- TX_FAR _TrainerNameText
- db $08
-
-Func_33d4:: ; 33d4 (0:33d4)
- call Func_33b7
- call TextCommandProcessor
- jp TextScriptEnd
-
-Func_33dd:: ; 33dd (0:33dd)
- ld a, [wFlags_0xcd60]
- bit 0, a
- ret nz
- call EngageMapTrainer
- xor a
- ret
-
-PlayTrainerMusic:: ; 33e8 (0:33e8)
- ld a, [wEngagedTrainerClass]
- cp $c8 + SONY1
- ret z
- cp $c8 + SONY2
- ret z
- cp $c8 + SONY3
- ret z
- ld a, [W_GYMLEADERNO] ; $d05c
- and a
- ret nz
- xor a
- ld [wMusicHeaderPointer], a
- ld a, $ff
- call PlaySound ; stop music
- ld a, BANK(Music_MeetEvilTrainer)
- ld [$c0ef], a
- ld [$c0f0], a
- ld a, [wEngagedTrainerClass]
- ld b, a
- ld hl, EvilTrainerList
-.evilTrainerListLoop
- ld a, [hli]
- cp $ff
- jr z, .noEvilTrainer
- cp b
- jr nz, .evilTrainerListLoop
- ld a, MUSIC_MEET_EVIL_TRAINER
- jr .PlaySound
-.noEvilTrainer
- ld hl, FemaleTrainerList
-.femaleTrainerListLoop
- ld a, [hli]
- cp $ff
- jr z, .maleTrainer
- cp b
- jr nz, .femaleTrainerListLoop
- ld a, MUSIC_MEET_FEMALE_TRAINER
- jr .PlaySound
-.maleTrainer
- ld a, MUSIC_MEET_MALE_TRAINER
-.PlaySound
- ld [$c0ee], a
- jp PlaySound
-
-INCLUDE "data/trainer_types.asm"
-
-Func_3442:: ; 3442 (0:3442)
- ld a, [hli]
- cp $ff
- ret z
- cp b
- jr nz, .asm_345b
- ld a, [hli]
- cp c
- jr nz, .asm_345c
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ld hl, $ccd3
- call DecodeRLEList
- dec a
- ld [$cd38], a
- ret
-.asm_345b
- inc hl
-.asm_345c
- inc hl
- inc hl
- jr Func_3442
-
-FuncTX_ItemStoragePC:: ; 3460 (0:3460)
- call SaveScreenTilesToBuffer2
- ld b, BANK(PlayerPC)
- ld hl, PlayerPC
- jr bankswitchAndContinue
-
-FuncTX_BillsPC:: ; 346a (0:346a)
- call SaveScreenTilesToBuffer2
- ld b, BANK(Func_214c2)
- ld hl, Func_214c2
- jr bankswitchAndContinue
-
-FuncTX_SlotMachine:: ; 3474 (0:3474)
-; XXX find a better name for this function
-; special_F7
- ld b,BANK(CeladonPrizeMenu)
- ld hl,CeladonPrizeMenu
-bankswitchAndContinue:: ; 3479 (0:3479)
- call Bankswitch
- jp HoldTextDisplayOpen ; continue to main text-engine function
-
-FuncTX_PokemonCenterPC:: ; 347f (0:347f)
- ld b, BANK(ActivatePC)
- ld hl, ActivatePC
- jr bankswitchAndContinue
-
-Func_3486:: ; 3486 (0:3486)
- xor a
- ld [$cd3b], a
- ld [$c206], a
- ld hl, $d730
- set 7, [hl]
- ret
-
-IsItemInBag:: ; 3493 (0:3493)
-; given an item_id in b
-; set zero flag if item isn't in player's bag
-; else reset zero flag
-; related to Pokémon Tower and ghosts
- ld a,$1C
- call Predef
- ld a,b
- and a
- ret
-
-DisplayPokedex:: ; 349b (0:349b)
- ld [$d11e], a
- ld b, BANK(Func_7c18)
- ld hl, Func_7c18
- jp Bankswitch
-
-Func_34a6:: ; 34a6 (0:34a6)
- call Func_34ae
- ld c, $6
- jp DelayFrames
-
-Func_34ae:: ; 34ae (0:34ae)
- ld a, $9
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- call Func_34fc
- ld a, [$ff8d]
- ld [hl], a
- ret
-
-Func_34b9:: ; 34b9 (0:34b9)
- ld de, $fff9
- add hl, de
- ld [hl], a
- ret
-
-; tests if the player's coordinates are in a specified array
-; INPUT:
-; hl = address of array
-; OUTPUT:
-; [$cd3d] = if there is match, the matching array index
-; sets carry if the coordinates are in the array, clears carry if not
-ArePlayerCoordsInArray:: ; 34bf (0:34bf)
- ld a,[W_YCOORD]
- ld b,a
- ld a,[W_XCOORD]
- ld c,a
- ; fallthrough
-
-CheckCoords:: ; 34c7 (0:34c7)
- xor a
- ld [$cd3d],a
-.loop
- ld a,[hli]
- cp a,$ff ; reached terminator?
- jr z,.notInArray
- push hl
- ld hl,$cd3d
- inc [hl]
- pop hl
-.compareYCoord
- cp b
- jr z,.compareXCoord
- inc hl
- jr .loop
-.compareXCoord
- ld a,[hli]
- cp c
- jr nz,.loop
-.inArray
- scf
- ret
-.notInArray
- and a
- ret
-
-; tests if a boulder's coordinates are in a specified array
-; INPUT:
-; hl = address of array
-; ff8c = which boulder to check? XXX
-; OUTPUT:
-; [$cd3d] = if there is match, the matching array index
-; sets carry if the coordinates are in the array, clears carry if not
-CheckBoulderCoords:: ; 34e4 (0:34e4)
- push hl
- ld hl, $c204
- ld a, [$ff8c]
- swap a
- ld d, $0
- ld e, a
- add hl, de
- ld a, [hli]
- sub $4 ; because sprite coordinates are offset by 4
- ld b, a
- ld a, [hl]
- sub $4 ; because sprite coordinates are offset by 4
- ld c, a
- pop hl
- jp CheckCoords
-
-Func_34fc:: ; 34fc (0:34fc)
- ld h, $c1
- jr asm_3502
-
-Func_3500:: ; 3500 (0:3500)
- ld h, $c2
-asm_3502:: ; 3502 (0:3502)
- ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
- ld b, a
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- swap a
- add b
- ld l, a
- ret
-
-; decodes a $ff-terminated RLEncoded list
-; each entry is a pair of bytes <byte value> <repetitions>
-; the final $ff will be replicated in the output list and a contains the number of bytes written
-; de: input list
-; hl: output list
-DecodeRLEList:: ; 350c (0:350c)
- xor a
- ld [wRLEByteCount], a ; count written bytes here
-.listLoop
- ld a, [de]
- cp $ff
- jr z, .endOfList
- ld [H_DOWNARROWBLINKCNT1], a ; store byte value to be written
- inc de
- ld a, [de]
- ld b, $0
- ld c, a ; number of bytes to be written
- ld a, [wRLEByteCount]
- add c
- ld [wRLEByteCount], a ; update total number of written bytes
- ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
- call FillMemory ; write a c-times to output
- inc de
- jr .listLoop
-.endOfList
- ld a, $ff
- ld [hl], a ; write final $ff
- ld a, [wRLEByteCount]
- inc a ; include sentinel in counting
- ret
-
-; sets movement byte 1 for sprite [$FF8C] to $FE and byte 2 to [$FF8D]
-SetSpriteMovementBytesToFE:: ; 3533 (0:3533)
- push hl
- call GetSpriteMovementByte1Pointer
- ld [hl], $fe
- call GetSpriteMovementByte2Pointer
- ld a, [$ff8d]
- ld [hl], a
- pop hl
- ret
-
-; sets both movement bytes for sprite [$FF8C] to $FF
-SetSpriteMovementBytesToFF:: ; 3541 (0:3541)
- push hl
- call GetSpriteMovementByte1Pointer
- ld [hl],$FF
- call GetSpriteMovementByte2Pointer
- ld [hl],$FF ; prevent person from walking?
- pop hl
- ret
-
-; returns the sprite movement byte 1 pointer for sprite [$FF8C] in hl
-GetSpriteMovementByte1Pointer:: ; 354e (0:354e)
- ld h,$C2
- ld a,[$FF8C] ; the sprite to move
- swap a
- add a,6
- ld l,a
- ret
-
-; returns the sprite movement byte 2 pointer for sprite [$FF8C] in hl
-GetSpriteMovementByte2Pointer:: ; 3558 (0:3558)
- push de
- ld hl,W_MAPSPRITEDATA
- ld a,[$FF8C] ; the sprite to move
- dec a
- add a
- ld d,0
- ld e,a
- add hl,de
- pop de
- ret
-
-GetTrainerInformation:: ; 3566 (0:3566)
- call GetTrainerName
- ld a, [W_ISLINKBATTLE] ; $d12b
- and a
- jr nz, .linkBattle
- ld a, Bank(TrainerPicAndMoneyPointers)
- call BankswitchHome
- ld a, [W_TRAINERCLASS] ; $d031
- dec a
- ld hl, TrainerPicAndMoneyPointers
- ld bc, $5
- call AddNTimes
- ld de, $d033
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld de, $d046
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- jp BankswitchBack
-.linkBattle
- ld hl, $d033
- ld de, RedPicFront
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-GetTrainerName:: ; 359e (0:359e)
- ld b, BANK(GetTrainerName_)
- ld hl, GetTrainerName_
- jp Bankswitch
-
-; tests if player's money are at least as much as [$ff9f]
-; sets carry flag if not enough money
-; sets zero flag if amounts match exactly
-HasEnoughMoney:: ; 35a6 (0:35a6)
- ld de, wPlayerMoney ; $d347
- ld hl, $ff9f
- ld c, $3
- jp StringCmp
-
-; tests if player's game corner coins are at least as many as [$ffa0]
-; sets carry flag if not enough coins
-; sets zero flag if amounts match exactly
-HasEnoughCoins:: ; 35b1 (0:35b1)
- ld de, wPlayerCoins
- ld hl, $ffa0
- ld c, $2
- jp StringCmp
-
-BankswitchHome:: ; 35bc (0:35bc)
-; switches to bank # in a
-; Only use this when in the home bank!
- ld [$CF09],a
- ld a,[H_LOADEDROMBANK]
- ld [$CF08],a
- ld a,[$CF09]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-BankswitchBack:: ; 35cd (0:35cd)
-; returns from BankswitchHome
- ld a,[$CF08]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-Bankswitch:: ; 35d6 (0:35d6)
-; self-contained bankswitch, use this when not in the home bank
-; switches to the bank in b
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld bc,.Return
- push bc
- jp [hl]
-.Return
- pop bc
- ld a,b
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-; displays yes/no choice
-; yes -> set carry
-YesNoChoice:: ; 35ec (0:35ec)
- call SaveScreenTilesToBuffer1
- call InitYesNoTextBoxParameters
- jr DisplayYesNoChoice
-
-Func_35f4:: ; 35f4 (0:35f4)
- ld a, $14
- ld [$d125], a
- call InitYesNoTextBoxParameters
- jp DisplayTextBoxID
-
-InitYesNoTextBoxParameters:: ; 35ff (0:35ff)
- xor a
- ld [$d12c], a
- FuncCoord 14, 7 ; $c43a
- ld hl, Coord
- ld bc, $80f
- ret
-
-YesNoChoicePokeCenter:: ; 360a (0:360a)
- call SaveScreenTilesToBuffer1
- ld a, $6
- ld [$d12c], a
- FuncCoord 11, 6 ; $c423
- ld hl, Coord
- ld bc, $80c
- jr DisplayYesNoChoice
-
-Func_361a:: ; 361a (0:361a)
- call SaveScreenTilesToBuffer1
- ld a, $3
- ld [$d12c], a
- FuncCoord 12, 7 ; $c438
- ld hl, Coord
- ld bc, $080d
-DisplayYesNoChoice:: ; 3628 (0:3628)
- ld a, $14
- ld [$d125], a
- call DisplayTextBoxID
- jp LoadScreenTilesFromBuffer1
-
-; calculates the difference |a-b|, setting carry flag if a<b
-CalcDifference:: ; 3633 (0:3633)
- sub b
- ret nc
- cpl
- add $1
- scf
- ret
-
-MoveSprite:: ; 363a (0:363a)
-; move the sprite [$FF8C] with the movement pointed to by de
-; actually only copies the movement data to $CC5B for later
- call SetSpriteMovementBytesToFF
-MoveSprite_:: ; 363d (0:363d)
- push hl
- push bc
- call GetSpriteMovementByte1Pointer
- xor a
- ld [hl],a
- ld hl,$CC5B
- ld c,0
-
-.loop
- ld a,[de]
- ld [hli],a
- inc de
- inc c
- cp a,$FF ; have we reached the end of the movement data?
- jr nz,.loop
-
- ld a,c
- ld [$CF0F],a ; number of steps taken
-
- pop bc
- ld hl,$D730
- set 0,[hl]
- pop hl
- xor a
- ld [$CD3B],a
- ld [$CCD3],a
- dec a
- ld [wJoypadForbiddenButtonsMask],a
- ld [$CD3A],a
- ret
-
-Func_366b:: ; 366b (0:366b)
- push hl
- ld hl, $ffe7
- xor a
- ld [hld], a
- ld a, [hld]
- and a
- jr z, .asm_367e
- ld a, [hli]
-.asm_3676
- sub [hl]
- jr c, .asm_367e
- inc hl
- inc [hl]
- dec hl
- jr .asm_3676
-.asm_367e
- pop hl
- ret
-
-; copies the tile patterns for letters and numbers into VRAM
-LoadFontTilePatterns:: ; 3680 (0:3680)
- ld a,[rLCDC]
- bit 7,a ; is the LCD enabled?
- jr nz,.lcdEnabled
-.lcdDisabled
- ld hl,FontGraphics
- ld de,$8800
- ld bc,$400
- ld a,BANK(FontGraphics)
- jp FarCopyDataDouble ; if LCD is off, transfer all at once
-.lcdEnabled
- ld de,FontGraphics
- ld hl,$8800
- ld bc,(BANK(FontGraphics) << 8 | $80)
- jp CopyVideoDataDouble ; if LCD is on, transfer during V-blank
-
-; copies the text box tile patterns into VRAM
-LoadTextBoxTilePatterns:: ; 36a0 (0:36a0)
- ld a,[rLCDC]
- bit 7,a ; is the LCD enabled?
- jr nz,.lcdEnabled
-.lcdDisabled
- ld hl,TextBoxGraphics
- ld de,$9600
- ld bc,$0200
- ld a,BANK(TextBoxGraphics)
- jp FarCopyData2 ; if LCD is off, transfer all at once
-.lcdEnabled
- ld de,TextBoxGraphics
- ld hl,$9600
- ld bc,(BANK(TextBoxGraphics) << 8 | $20)
- jp CopyVideoData ; if LCD is on, transfer during V-blank
-
-; copies HP bar and status display tile patterns into VRAM
-LoadHpBarAndStatusTilePatterns:: ; 36c0 (0:36c0)
- ld a,[rLCDC]
- bit 7,a ; is the LCD enabled?
- jr nz,.lcdEnabled
-.lcdDisabled
- ld hl,HpBarAndStatusGraphics
- ld de,$9620
- ld bc,$01e0
- ld a,BANK(HpBarAndStatusGraphics)
- jp FarCopyData2 ; if LCD is off, transfer all at once
-.lcdEnabled
- ld de,HpBarAndStatusGraphics
- ld hl,$9620
- ld bc,(BANK(HpBarAndStatusGraphics) << 8 | $1e)
- jp CopyVideoData ; if LCD is on, transfer during V-blank
-
-;Fills memory range with the specified byte.
-;input registers a = fill_byte, bc = length, hl = address
-FillMemory:: ; 36e0 (0:36e0)
- push de
- ld d, a
-.loop
- ld a, d
- ldi [hl], a
- dec bc
- ld a, b
- or c
- jr nz, .loop
- pop de
- ret
-
-; loads sprite that de points to
-; bank of sprite is given in a
-UncompressSpriteFromDE:: ; 36eb (0:36eb)
- ld hl, W_SPRITEINPUTPTR
- ld [hl], e
- inc hl
- ld [hl], d
- jp UncompressSpriteData
-
-SaveScreenTilesToBuffer2:: ; 36f4 (0:36f4)
- ld hl, wTileMap
- ld de, wTileMapBackup2
- ld bc, $168
- call CopyData
- ret
-
-LoadScreenTilesFromBuffer2:: ; 3701 (0:3701)
- call LoadScreenTilesFromBuffer2DisableBGTransfer
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ret
-
-; loads screen tiles stored in wTileMapBackup2 but leaves H_AUTOBGTRANSFERENABLED disabled
-LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709)
- xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, wTileMapBackup2
- ld de, wTileMap
- ld bc, $168
- call CopyData
- ret
-
-SaveScreenTilesToBuffer1:: ; 3719 (0:3719)
- ld hl, wTileMap
- ld de, wTileMapBackup
- ld bc, $168
- jp CopyData
-
-LoadScreenTilesFromBuffer1:: ; 3725 (0:3725)
- xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, wTileMapBackup
- ld de, wTileMap
- ld bc, $168
- call CopyData
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ret
-
-DelayFrames:: ; 3739 (0:3739)
-; wait n frames, where n is the value in c
- call DelayFrame
- dec c
- jr nz,DelayFrames
- ret
-
-PlaySoundWaitForCurrent:: ; 3740 (0:3740)
- push af
- call WaitForSoundToFinish
- pop af
- jp PlaySound
-
-; Wait for sound to finish playing
-WaitForSoundToFinish:: ; 3748 (0:3748)
- ld a, [$d083]
- and $80
- ret nz
- push hl
-.asm_374f
- ld hl, $c02a
- xor a
- or [hl]
- inc hl
- or [hl]
- inc hl
- inc hl
- or [hl]
- jr nz, .asm_374f
- pop hl
- ret
-
-NamePointers:: ; 375d (0:375d)
- dw MonsterNames
- dw MoveNames
- dw UnusedNames
- dw ItemNames
- dw W_PARTYMON1OT ; player's OT names list
- dw W_ENEMYMON1OT ; enemy's OT names list
- dw TrainerNames
-
-GetName:: ; 376b (0:376b)
-; arguments:
-; [$D0B5] = which name
-; [$D0B6] = which list (W_LISTTYPE)
-; [$D0B7] = bank of list
-;
-; returns pointer to name in de
- ld a,[$d0b5]
- ld [$d11e],a
- cp a,$C4 ;it's TM/HM
- jp nc,GetMachineName
- ld a,[H_LOADEDROMBANK]
- push af
- push hl
- push bc
- push de
- ld a,[W_LISTTYPE] ;List3759_entrySelector
- dec a
- jr nz,.otherEntries
- ;1 = MON_NAMES
- call GetMonName
- ld hl,11
- add hl,de
- ld e,l
- ld d,h
- jr .gotPtr
-.otherEntries ; $378d
- ;2-7 = OTHER ENTRIES
- ld a,[$d0b7]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld a,[W_LISTTYPE] ;VariousNames' entryID
- dec a
- add a
- ld d,0
- ld e,a
- jr nc,.skip
- inc d
-.skip ; $37a0
- ld hl,NamePointers
- add hl,de
- ld a,[hli]
- ld [$ff96],a
- ld a,[hl]
- ld [$ff95],a
- ld a,[$ff95]
- ld h,a
- ld a,[$ff96]
- ld l,a
- ld a,[$d0b5]
- ld b,a
- ld c,0
-.nextName
- ld d,h
- ld e,l
-.nextChar
- ld a,[hli]
- cp a, "@"
- jr nz,.nextChar
- inc c ;entry counter
- ld a,b ;wanted entry
- cp c
- jr nz,.nextName
- ld h,d
- ld l,e
- ld de,$cd6d
- ld bc,$0014
- call CopyData
-.gotPtr ; $37cd
- ld a,e
- ld [$cf8d],a
- ld a,d
- ld [$cf8e],a
- pop de
- pop bc
- pop hl
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-GetItemPrice:: ; 37df (0:37df)
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, [wListMenuID] ; $cf94
- cp $1
- ld a, $1 ; hardcoded Bank
- jr nz, .asm_37ed
- ld a, $f ; hardcoded Bank
-.asm_37ed
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ld hl, $cf8f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$cf91]
- cp HM_01
- jr nc, .asm_3812
- ld bc, $3
-.asm_3802
- add hl, bc
- dec a
- jr nz, .asm_3802
- dec hl
- ld a, [hld]
- ld [$ff8d], a
- ld a, [hld]
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld a, [hl]
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- jr .asm_381c
-.asm_3812
- ld a, Bank(GetMachinePrice)
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- call GetMachinePrice
-.asm_381c
- ld de, H_DOWNARROWBLINKCNT1 ; $ff8b
- pop af
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-
-; copies a string from [de] to [$cf4b]
-CopyStringToCF4B:: ; 3826 (0:3826)
- ld hl, $cf4b
- ; fall through
-
-; copies a string from [de] to [hl]
-CopyString:: ; 3829 (0:3829)
- ld a, [de]
- inc de
- ld [hli], a
- cp "@"
- jr nz, CopyString
- ret
-
-; this function is used when lower button sensitivity is wanted (e.g. menus)
-; OUTPUT: [$ffb5] = pressed buttons in usual format
-; there are two flags that control its functionality, [$ffb6] and [$ffb7]
-; there are esentially three modes of operation
-; 1. Get newly pressed buttons only
-; ([$ffb7] == 0, [$ffb6] == any)
-; Just copies [H_NEWLYPRESSEDBUTTONS] to [$ffb5].
-; 2. Get currently pressed buttons at low sample rate with delay
-; ([$ffb7] == 1, [$ffb6] != 0)
-; If the user holds down buttons for more than half a second,
-; report buttons as being pressed up to 12 times per second thereafter.
-; If the user holds down buttons for less than half a second,
-; report only one button press.
-; 3. Same as 2, but report no buttons as pressed if A or B is held down.
-; ([$ffb7] == 1, [$ffb6] == 0)
-GetJoypadStateLowSensitivity:: ; 3831 (0:3831)
- call GetJoypadState
- ld a,[$ffb7] ; flag
- and a ; get all currently pressed buttons or only newly pressed buttons?
- ld a,[H_NEWLYPRESSEDBUTTONS] ; newly pressed buttons
- jr z,.storeButtonState
- ld a,[H_CURRENTPRESSEDBUTTONS] ; all currently pressed buttons
-.storeButtonState
- ld [$ffb5],a
- ld a,[H_NEWLYPRESSEDBUTTONS] ; newly pressed buttons
- and a ; have any buttons been newly pressed since last check?
- jr z,.noNewlyPressedButtons
-.newlyPressedButtons
- ld a,30 ; half a second delay
- ld [H_FRAMECOUNTER],a
- ret
-.noNewlyPressedButtons
- ld a,[H_FRAMECOUNTER]
- and a ; is the delay over?
- jr z,.delayOver
-.delayNotOver
- xor a
- ld [$ffb5],a ; report no buttons as pressed
- ret
-.delayOver
-; if [$ffb6] = 0 and A or B is pressed, report no buttons as pressed
- ld a,[H_CURRENTPRESSEDBUTTONS]
- and a,%00000011 ; A and B buttons
- jr z,.setShortDelay
- ld a,[$ffb6] ; flag
- and a
- jr nz,.setShortDelay
- xor a
- ld [$ffb5],a
-.setShortDelay
- ld a,5 ; 1/12 of a second delay
- ld [H_FRAMECOUNTER],a
- ret
-
-WaitForTextScrollButtonPress:: ; 3865 (0:3865)
- ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
- push af
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- push af
- xor a
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-.asm_3872
- push hl
- ld a, [$d09b]
- and a
- jr z, .asm_387c
- call Func_716c6
-.asm_387c
- FuncCoord 18, 16 ; $c4f2
- ld hl, Coord
- call HandleDownArrowBlinkTiming
- pop hl
- call GetJoypadStateLowSensitivity
- ld a, $2d
- call Predef ; indirect jump to Func_5a5f (5a5f (1:5a5f))
- ld a, [$ffb5]
- and BTN_A | BTN_B ; $3
- jr z, .asm_3872
- pop af
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- pop af
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ret
-
-; (unlass in link battle) waits for A or B being pressed and outputs the scrolling sound effect
-ManualTextScroll:: ; 3898 (0:3898)
- ld a, [W_ISLINKBATTLE] ; $d12b
- cp $4
- jr z, .inLinkBattle
- call WaitForTextScrollButtonPress
- ld a, (SFX_02_40 - SFX_Headers_02) / 3
- jp PlaySound
-.inLinkBattle
- ld c, $41
- jp DelayFrames
-
-; function to do multiplication
-; all values are big endian
-; INPUT
-; FF96-FF98 = multiplicand
-; FF99 = multiplier
-; OUTPUT
-; FF95-FF98 = product
-Multiply:: ; 38ac (0:38ac)
- push hl
- push bc
- callab _Multiply
- pop bc
- pop hl
- ret
-
-; function to do division
-; all values are big endian
-; INPUT
-; FF95-FF98 = dividend
-; FF99 = divisor
-; b = number of bytes in the dividend (starting from FF95)
-; OUTPUT
-; FF95-FF98 = quotient
-; FF99 = remainder
-Divide:: ; 38b9 (0:38b9)
- push hl
- push de
- push bc
- ld a,[H_LOADEDROMBANK]
- push af
- ld a,Bank(_Divide)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call _Divide
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- pop bc
- pop de
- pop hl
- ret
-
-; This function is used to wait a short period after printing a letter to the
-; screen unless the player presses the A/B button or the delay is turned off
-; through the [$d730] or [$d358] flags.
-PrintLetterDelay:: ; 38d3 (0:38d3)
- ld a,[$d730]
- bit 6,a
- ret nz
- ld a,[$d358]
- bit 1,a
- ret z
- push hl
- push de
- push bc
- ld a,[$d358]
- bit 0,a
- jr z,.waitOneFrame
- ld a,[$d355]
- and a,$0f
- ld [H_FRAMECOUNTER],a
- jr .checkButtons
-.waitOneFrame
- ld a,1
- ld [H_FRAMECOUNTER],a
-.checkButtons
- call GetJoypadState
- ld a,[H_CURRENTPRESSEDBUTTONS]
-.checkAButton
- bit 0,a ; is the A button pressed?
- jr z,.checkBButton
- jr .endWait
-.checkBButton
- bit 1,a ; is the B button pressed?
- jr z,.buttonsNotPressed
-.endWait
- call DelayFrame
- jr .done
-.buttonsNotPressed ; if neither A nor B is pressed
- ld a,[H_FRAMECOUNTER]
- and a
- jr nz,.checkButtons
-.done
- pop bc
- pop de
- pop hl
- ret
-
-; Copies [hl, bc) to [de, bc - hl).
-; In other words, the source data is from hl up to but not including bc,
-; and the destination is de.
-CopyDataUntil:: ; 3913 (0:3913)
- ld a,[hli]
- ld [de],a
- inc de
- ld a,h
- cp b
- jr nz,CopyDataUntil
- ld a,l
- cp c
- jr nz,CopyDataUntil
- ret
-
-; Function to remove a pokemon from the party or the current box.
-; wWhichPokemon determines the pokemon.
-; [$cf95] == 0 specifies the party.
-; [$cf95] != 0 specifies the current box.
-RemovePokemon:: ; 391f (0:391f)
- ld hl, _RemovePokemon
- ld b, BANK(_RemovePokemon)
- jp Bankswitch
-
-AddPokemonToParty:: ; 3927 (0:3927)
- push hl
- push de
- push bc
- callba _AddPokemonToParty
- pop bc
- pop de
- pop hl
- ret
-
-; calculates all 5 stats of current mon and writes them to [de]
-CalcStats:: ; 3936 (0:3936)
- ld c, $0
-.statsLoop
- inc c
- call CalcStat
- ld a, [H_MULTIPLICAND+1]
- ld [de], a
- inc de
- ld a, [H_MULTIPLICAND+2]
- ld [de], a
- inc de
- ld a, c
- cp $5
- jr nz, .statsLoop
- ret
-
-; calculates stat c of current mon
-; c: stat to calc (HP=1,Atk=2,Def=3,Spd=4,Spc=5)
-; b: consider stat exp?
-; hl: base ptr to stat exp values ([hl + 2*c - 1] and [hl + 2*c])
-CalcStat:: ; 394a (0:394a)
- push hl
- push de
- push bc
- ld a, b
- ld d, a
- push hl
- ld hl, W_MONHEADER
- ld b, $0
- add hl, bc
- ld a, [hl] ; read base value of stat
- ld e, a
- pop hl
- push hl
- sla c
- ld a, d
- and a
- jr z, .statExpDone ; consider stat exp?
- add hl, bc ; skip to corresponding stat exp value
-.statExpLoop ; calculates ceil(Sqrt(stat exp)) in b
- xor a
- ld [H_MULTIPLICAND], a
- ld [H_MULTIPLICAND+1], a
- inc b ; increment current stat exp bonus
- ld a, b
- cp $ff
- jr z, .statExpDone
- ld [H_MULTIPLICAND+2], a
- ld [H_MULTIPLIER], a
- call Multiply
- ld a, [hld]
- ld d, a
- ld a, [$ff98]
- sub d
- ld a, [hli]
- ld d, a
- ld a, [$ff97]
- sbc d ; test if (current stat exp bonus)^2 < stat exp
- jr c, .statExpLoop
-.statExpDone
- srl c
- pop hl
- push bc
- ld bc, $b ; skip to stat IV values
- add hl, bc
- pop bc
- ld a, c
- cp $2
- jr z, .getAttackIV
- cp $3
- jr z, .getDefenseIV
- cp $4
- jr z, .getSpeedIV
- cp $5
- jr z, .getSpecialIV
-.getHpIV
- push bc
- ld a, [hl] ; Atk IV
- swap a
- and $1
- sla a
- sla a
- sla a
- ld b, a
- ld a, [hli] ; Def IV
- and $1
- sla a
- sla a
- add b
- ld b, a
- ld a, [hl] ; Spd IV
- swap a
- and $1
- sla a
- add b
- ld b, a
- ld a, [hl] ; Spc IV
- and $1
- add b ; HP IV: LSB of the other 4 IVs
- pop bc
- jr .calcStatFromIV
-.getAttackIV
- ld a, [hl]
- swap a
- and $f
- jr .calcStatFromIV
-.getDefenseIV
- ld a, [hl]
- and $f
- jr .calcStatFromIV
-.getSpeedIV
- inc hl
- ld a, [hl]
- swap a
- and $f
- jr .calcStatFromIV
-.getSpecialIV
- inc hl
- ld a, [hl]
- and $f
-.calcStatFromIV
- ld d, $0
- add e
- ld e, a
- jr nc, .noCarry
- inc d ; de = Base + IV
-.noCarry
- sla e
- rl d ; de = (Base + IV) * 2
- srl b
- srl b ; b = ceil(Sqrt(stat exp)) / 4
- ld a, b
- add e
- jr nc, .noCarry2
- inc d ; da = (Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4
-.noCarry2
- ld [H_MULTIPLICAND+2], a
- ld a, d
- ld [H_MULTIPLICAND+1], a
- xor a
- ld [H_MULTIPLICAND], a
- ld a, [W_CURENEMYLVL] ; $d127
- ld [H_MULTIPLIER], a
- call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level
- ld a, [H_MULTIPLICAND]
- ld [H_DIVIDEND], a
- ld a, [H_MULTIPLICAND+1]
- ld [H_DIVIDEND+1], a
- ld a, [H_MULTIPLICAND+2]
- ld [H_DIVIDEND+2], a
- ld a, $64
- ld [H_DIVISOR], a
- ld a, $3
- ld b, a
- call Divide ; (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100
- ld a, c
- cp $1
- ld a, $5
- jr nz, .notHPStat
- ld a, [W_CURENEMYLVL] ; $d127
- ld b, a
- ld a, [H_MULTIPLICAND+2]
- add b
- ld [H_MULTIPLICAND+2], a
- jr nc, .noCarry3
- ld a, [H_MULTIPLICAND+1]
- inc a
- ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level
-.noCarry3
- ld a, $a
-.notHPStat
- ld b, a
- ld a, [H_MULTIPLICAND+2]
- add b
- ld [H_MULTIPLICAND+2], a
- jr nc, .noCarry4
- ld a, [H_MULTIPLICAND+1]
- inc a ; non-HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + 5
- ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10
-.noCarry4
- ld a, [H_MULTIPLICAND+1] ; check for overflow (>999)
- cp $4
- jr nc, .overflow
- cp $3
- jr c, .noOverflow
- ld a, [H_MULTIPLICAND+2]
- cp $e8
- jr c, .noOverflow
-.overflow
- ld a, $3 ; overflow: cap at 999
- ld [H_MULTIPLICAND+1], a
- ld a, $e7
- ld [H_MULTIPLICAND+2], a
-.noOverflow
- pop bc
- pop de
- pop hl
- ret
-
-AddEnemyMonToPlayerParty:: ; 3a53 (0:3a53)
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, BANK(_AddEnemyMonToPlayerParty)
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- call _AddEnemyMonToPlayerParty
- pop bc
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-
-Func_3a68:: ; 3a68 (0:3a68)
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, BANK(Func_f51e)
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- call Func_f51e
- pop bc
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [$2000], a
- ret
-
-; skips a text entries, each of size $b (like trainer name, OT name, rival name, ...)
-; hl: base pointer, will be incremented by $b * a
-SkipFixedLengthTextEntries:: ; 3a7d (0:3a7d)
- and a
- ret z
- ld bc, $b
-.skipLoop
- add hl, bc
- dec a
- jr nz, .skipLoop
- ret
-
-AddNTimes:: ; 3a87 (0:3a87)
-; add bc to hl a times
- and a
- ret z
-.loop
- add hl,bc
- dec a
- jr nz,.loop
- ret
-
-; Compare strings, c bytes in length, at de and hl.
-; Often used to compare big endian numbers in battle calculations.
-StringCmp:: ; 3a8e (0:3a8e)
- ld a,[de]
- cp [hl]
- ret nz
- inc de
- inc hl
- dec c
- jr nz,StringCmp
- ret
-
-; INPUT:
-; a = oam block index (each block is 4 oam entries)
-; b = Y coordinate of upper left corner of sprite
-; c = X coordinate of upper left corner of sprite
-; de = base address of 4 tile number and attribute pairs
-WriteOAMBlock:: ; 3a97 (0:3a97)
- ld h,$c3
- swap a ; multiply by 16
- ld l,a
- call .writeOneEntry ; upper left
- push bc
- ld a,8
- add c
- ld c,a
- call .writeOneEntry ; upper right
- pop bc
- ld a,8
- add b
- ld b,a
- call .writeOneEntry ; lower left
- ld a,8
- add c
- ld c,a
- ; lower right
-.writeOneEntry
- ld [hl],b ; Y coordinate
- inc hl
- ld [hl],c ; X coordinate
- inc hl
- ld a,[de] ; tile number
- inc de
- ld [hli],a
- ld a,[de] ; attribute
- inc de
- ld [hli],a
- ret
-
-HandleMenuInput:: ; 3abe (0:3abe)
- xor a
- ld [$d09b],a
-
-HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2)
- ld a,[H_DOWNARROWBLINKCNT1]
- push af
- ld a,[H_DOWNARROWBLINKCNT2]
- push af ; save existing values on stack
- xor a
- ld [H_DOWNARROWBLINKCNT1],a ; blinking down arrow timing value 1
- ld a,$06
- ld [H_DOWNARROWBLINKCNT2],a ; blinking down arrow timing value 2
-.loop1
- xor a
- ld [$d08b],a ; counter for pokemon shaking animation
- call PlaceMenuCursor
- call Delay3
-.loop2
- push hl
- ld a,[$d09b]
- and a ; is it a pokemon selection menu?
- jr z,.getJoypadState
- callba AnimatePartyMon ; shake mini sprite of selected pokemon
-.getJoypadState
- pop hl
- call GetJoypadStateLowSensitivity
- ld a,[$ffb5]
- and a ; was a key pressed?
- jr nz,.keyPressed
- push hl
- FuncCoord 18,11 ; coordinates of blinking down arrow in some menus
- ld hl,Coord
- call HandleDownArrowBlinkTiming ; blink down arrow (if any)
- pop hl
- ld a,[wMenuJoypadPollCount]
- dec a
- jr z,.giveUpWaiting
- jr .loop2
-.giveUpWaiting
-; if a key wasn't pressed within the specified number of checks
- pop af
- ld [H_DOWNARROWBLINKCNT2],a
- pop af
- ld [H_DOWNARROWBLINKCNT1],a ; restore previous values
- xor a
- ld [wMenuWrappingEnabled],a ; disable menu wrapping
- ret
-.keyPressed
- xor a
- ld [$cc4b],a
- ld a,[$ffb5]
- ld b,a
- bit 6,a ; pressed Up key?
- jr z,.checkIfDownPressed
-.upPressed
- ld a,[wCurrentMenuItem] ; selected menu item
- and a ; already at the top of the menu?
- jr z,.alreadyAtTop
-.notAtTop
- dec a
- ld [wCurrentMenuItem],a ; move selected menu item up one space
- jr .checkOtherKeys
-.alreadyAtTop
- ld a,[wMenuWrappingEnabled]
- and a ; is wrapping around enabled?
- jr z,.noWrappingAround
- ld a,[wMaxMenuItem]
- ld [wCurrentMenuItem],a ; wrap to the bottom of the menu
- jr .checkOtherKeys
-.checkIfDownPressed
- bit 7,a
- jr z,.checkOtherKeys
-.downPressed
- ld a,[wCurrentMenuItem]
- inc a
- ld c,a
- ld a,[wMaxMenuItem]
- cp c
- jr nc,.notAtBottom
-.alreadyAtBottom
- ld a,[wMenuWrappingEnabled]
- and a ; is wrapping around enabled?
- jr z,.noWrappingAround
- ld c,$00 ; wrap from bottom to top
-.notAtBottom
- ld a,c
- ld [wCurrentMenuItem],a
-.checkOtherKeys
- ld a,[wMenuWatchedKeys]
- and b ; does the menu care about any of the pressed keys?
- jp z,.loop1
-.checkIfAButtonOrBButtonPressed
- ld a,[$ffb5]
- and a,%00000011 ; pressed A button or B button?
- jr z,.skipPlayingSound
-.AButtonOrBButtonPressed
- push hl
- ld hl,wFlags_0xcd60
- bit 5,[hl]
- pop hl
- jr nz,.skipPlayingSound
- ld a,(SFX_02_40 - SFX_Headers_02) / 3
- call PlaySound ; play sound
-.skipPlayingSound
- pop af
- ld [H_DOWNARROWBLINKCNT2],a
- pop af
- ld [H_DOWNARROWBLINKCNT1],a ; restore previous values
- xor a
- ld [wMenuWrappingEnabled],a ; disable menu wrapping
- ld a,[$ffb5]
- ret
-.noWrappingAround
- ld a,[$cc37]
- and a ; should we return if the user tried to go past the top or bottom?
- jr z,.checkOtherKeys
- jr .checkIfAButtonOrBButtonPressed
-
-PlaceMenuCursor:: ; 3b7c (0:3b7c)
- ld a,[wTopMenuItemY]
- and a ; is the y coordinate 0?
- jr z,.adjustForXCoord
- ld hl,wTileMap
- ld bc,20 ; screen width
-.topMenuItemLoop
- add hl,bc
- dec a
- jr nz,.topMenuItemLoop
-.adjustForXCoord
- ld a,[wTopMenuItemX]
- ld b,$00
- ld c,a
- add hl,bc
- push hl
- ld a,[wLastMenuItem]
- and a ; was the previous menu id 0?
- jr z,.checkForArrow1
- push af
- ld a,[$fff6]
- bit 1,a ; is the menu double spaced?
- jr z,.doubleSpaced1
- ld bc,20
- jr .getOldMenuItemScreenPosition
-.doubleSpaced1
- ld bc,40
-.getOldMenuItemScreenPosition
- pop af
-.oldMenuItemLoop
- add hl,bc
- dec a
- jr nz,.oldMenuItemLoop
-.checkForArrow1
- ld a,[hl]
- cp a,"▶" ; was an arrow next to the previously selected menu item?
- jr nz,.skipClearingArrow
-.clearArrow
- ld a,[wTileBehindCursor]
- ld [hl],a
-.skipClearingArrow
- pop hl
- ld a,[wCurrentMenuItem]
- and a
- jr z,.checkForArrow2
- push af
- ld a,[$fff6]
- bit 1,a ; is the menu double spaced?
- jr z,.doubleSpaced2
- ld bc,20
- jr .getCurrentMenuItemScreenPosition
-.doubleSpaced2
- ld bc,40
-.getCurrentMenuItemScreenPosition
- pop af
-.currentMenuItemLoop
- add hl,bc
- dec a
- jr nz,.currentMenuItemLoop
-.checkForArrow2
- ld a,[hl]
- cp a,"▶" ; has the right arrow already been placed?
- jr z,.skipSavingTile ; if so, don't lose the saved tile
- ld [wTileBehindCursor],a ; save tile before overwriting with right arrow
-.skipSavingTile
- ld a,"▶" ; place right arrow
- ld [hl],a
- ld a,l
- ld [wMenuCursorLocation],a
- ld a,h
- ld [wMenuCursorLocation + 1],a
- ld a,[wCurrentMenuItem]
- ld [wLastMenuItem],a
- ret
-
-; This is used to mark a menu cursor other than the one currently being
-; manipulated. In the case of submenus, this is used to show the location of
-; the menu cursor in the parent menu. In the case of swapping items in list,
-; this is used to mark the item that was first chosen to be swapped.
-PlaceUnfilledArrowMenuCursor:: ; 3bec (0:3bec)
- ld b,a
- ld a,[wMenuCursorLocation]
- ld l,a
- ld a,[wMenuCursorLocation + 1]
- ld h,a
- ld [hl],$ec ; outline of right arrow
- ld a,b
- ret
-
-; Replaces the menu cursor with a blank space.
-EraseMenuCursor:: ; 3bf9 (0:3bf9)
- ld a,[wMenuCursorLocation]
- ld l,a
- ld a,[wMenuCursorLocation + 1]
- ld h,a
- ld [hl]," "
- ret
-
-; This toggles a blinking down arrow at hl on and off after a delay has passed.
-; This is often called even when no blinking is occurring.
-; The reason is that most functions that call this initialize H_DOWNARROWBLINKCNT1 to 0.
-; The effect is that if the tile at hl is initialized with a down arrow,
-; this function will toggle that down arrow on and off, but if the tile isn't
-; initliazed with a down arrow, this function does nothing.
-; That allows this to be called without worrying about if a down arrow should
-; be blinking.
-HandleDownArrowBlinkTiming:: ; 3c04 (0:3c04)
- ld a,[hl]
- ld b,a
- ld a,$ee ; down arrow
- cp b
- jr nz,.downArrowOff
-.downArrowOn
- ld a,[H_DOWNARROWBLINKCNT1]
- dec a
- ld [H_DOWNARROWBLINKCNT1],a
- ret nz
- ld a,[H_DOWNARROWBLINKCNT2]
- dec a
- ld [H_DOWNARROWBLINKCNT2],a
- ret nz
- ld a," "
- ld [hl],a
- ld a,$ff
- ld [H_DOWNARROWBLINKCNT1],a
- ld a,$06
- ld [H_DOWNARROWBLINKCNT2],a
- ret
-.downArrowOff
- ld a,[H_DOWNARROWBLINKCNT1]
- and a
- ret z
- dec a
- ld [H_DOWNARROWBLINKCNT1],a
- ret nz
- dec a
- ld [H_DOWNARROWBLINKCNT1],a
- ld a,[H_DOWNARROWBLINKCNT2]
- dec a
- ld [H_DOWNARROWBLINKCNT2],a
- ret nz
- ld a,$06
- ld [H_DOWNARROWBLINKCNT2],a
- ld a,$ee ; down arrow
- ld [hl],a
- ret
-
-; The following code either enables or disables the automatic drawing of
-; text boxes by DisplayTextID. Both functions cause DisplayTextID to wait
-; for a button press after displaying text (unless [$cc47] is set).
-
-EnableAutoTextBoxDrawing:: ; 3c3c (0:3c3c)
- xor a
- jr AutoTextBoxDrawingCommon
-
-DisableAutoTextBoxDrawing:: ; 3c3f (0:3c3f)
- ld a,$01
-
-AutoTextBoxDrawingCommon:: ; 3c41 (0:3c41)
- ld [$cf0c],a ; control text box drawing
- xor a
- ld [$cc3c],a ; make DisplayTextID wait for button press
- ret
-
-PrintText:: ; 3c49 (0:3c49)
-; given a pointer in hl, print the text there
- push hl
- ld a,1
- ld [$D125],a
- call DisplayTextBoxID
- call UpdateSprites
- call Delay3
- pop hl
-Func_3c59:: ; 3c59 (0:3c59)
- FuncCoord 1,14
- ld bc,Coord ;$C4B9
- jp TextCommandProcessor
-
-; converts a big-endian binary number into decimal and prints it
-; INPUT:
-; b = flags and number of bytes
-; bit 7: if set, print leading zeroes
-; if unset, do not print leading zeroes
-; bit 6: if set, left-align the string (do not pad empty digits with spaces)
-; if unset, right-align the string
-; bits 4-5: unused
-; bits 0-3: number of bytes (only 1 - 3 bytes supported)
-; c = number of decimal digits
-; de = address of the number (big-endian)
-PrintNumber:: ; 3c5f (0:3c5f)
- push bc
- xor a
- ld [H_PASTLEADINGZEROES],a
- ld [H_NUMTOPRINT],a
- ld [H_NUMTOPRINT + 1],a
- ld a,b
- and a,%00001111
- cp a,1
- jr z,.oneByte
- cp a,2
- jr z,.twoBytes
-.threeBytes
- ld a,[de]
- ld [H_NUMTOPRINT],a
- inc de
- ld a,[de]
- ld [H_NUMTOPRINT + 1],a
- inc de
- ld a,[de]
- ld [H_NUMTOPRINT + 2],a
- jr .checkNumDigits
-.twoBytes
- ld a,[de]
- ld [H_NUMTOPRINT + 1],a
- inc de
- ld a,[de]
- ld [H_NUMTOPRINT + 2],a
- jr .checkNumDigits
-.oneByte
- ld a,[de]
- ld [H_NUMTOPRINT + 2],a
-.checkNumDigits
- push de
- ld d,b
- ld a,c
- ld b,a
- xor a
- ld c,a
- ld a,b ; a = number of decimal digits
- cp a,2
- jr z,.tensPlace
- cp a,3
- jr z,.hundredsPlace
- cp a,4
- jr z,.thousandsPlace
- cp a,5
- jr z,.tenThousandsPlace
- cp a,6
- jr z,.hundredThousandsPlace
-.millionsPlace
- ld a,1000000 >> 16
- ld [H_POWEROFTEN],a
- ld a,(1000000 >> 8) & $FF
- ld [H_POWEROFTEN + 1],a
- ld a,1000000 & $FF
- ld [H_POWEROFTEN + 2],a
- call PrintNumber_PrintDigit
- call PrintNumber_AdvancePointer
-.hundredThousandsPlace
- ld a,100000 >> 16
- ld [H_POWEROFTEN],a
- ld a,(100000 >> 8) & $FF
- ld [H_POWEROFTEN + 1],a
- ld a,100000 & $FF
- ld [H_POWEROFTEN + 2],a
- call PrintNumber_PrintDigit
- call PrintNumber_AdvancePointer
-.tenThousandsPlace
- xor a
- ld [H_POWEROFTEN],a
- ld a,10000 >> 8
- ld [H_POWEROFTEN + 1],a
- ld a,10000 & $FF
- ld [H_POWEROFTEN + 2],a
- call PrintNumber_PrintDigit
- call PrintNumber_AdvancePointer
-.thousandsPlace
- xor a
- ld [H_POWEROFTEN],a
- ld a,1000 >> 8
- ld [H_POWEROFTEN + 1],a
- ld a,1000 & $FF
- ld [H_POWEROFTEN + 2],a
- call PrintNumber_PrintDigit
- call PrintNumber_AdvancePointer
-.hundredsPlace
- xor a
- ld [H_POWEROFTEN],a
- xor a
- ld [H_POWEROFTEN + 1],a
- ld a,100
- ld [H_POWEROFTEN + 2],a
- call PrintNumber_PrintDigit
- call PrintNumber_AdvancePointer
-.tensPlace
- ld c,00
- ld a,[H_NUMTOPRINT + 2]
-.loop
- cp a,10
- jr c,.underflow
- sub a,10
- inc c
- jr .loop
-.underflow
- ld b,a
- ld a,[H_PASTLEADINGZEROES]
- or c
- ld [H_PASTLEADINGZEROES],a
- jr nz,.pastLeadingZeroes
- call PrintNumber_PrintLeadingZero
- jr .advancePointer
-.pastLeadingZeroes
- ld a,"0"
- add c
- ld [hl],a
-.advancePointer
- call PrintNumber_AdvancePointer
-.onesPlace
- ld a,"0"
- add b
- ld [hli],a
- pop de
- dec de
- pop bc
- ret
-
-; prints a decimal digit
-; This works by repeatedely subtracting a power of ten until the number becomes negative.
-; The number of subtractions it took in order to make the number negative is the digit for the current number place.
-; The last value that the number had before becoming negative is kept as the new value of the number.
-; A more succinct description is that the number is divided by a power of ten
-; and the quotient becomes the digit while the remainder is stored as the new value of the number.
-PrintNumber_PrintDigit:: ; 3d25 (0:3d25)
- ld c,0 ; counts number of loop iterations to determine the decimal digit
-.loop
- ld a,[H_POWEROFTEN]
- ld b,a
- ld a,[H_NUMTOPRINT]
- ld [H_SAVEDNUMTOPRINT],a
- cp b
- jr c,.underflow0
- sub b
- ld [H_NUMTOPRINT],a
- ld a,[H_POWEROFTEN + 1]
- ld b,a
- ld a,[H_NUMTOPRINT + 1]
- ld [H_SAVEDNUMTOPRINT + 1],a
- cp b
- jr nc,.noBorrowForByte1
-.byte1BorrowFromByte0
- ld a,[H_NUMTOPRINT]
- or a,0
- jr z,.underflow1
- dec a
- ld [H_NUMTOPRINT],a
- ld a,[H_NUMTOPRINT + 1]
-.noBorrowForByte1
- sub b
- ld [H_NUMTOPRINT + 1],a
- ld a,[H_POWEROFTEN + 2]
- ld b,a
- ld a,[H_NUMTOPRINT + 2]
- ld [H_SAVEDNUMTOPRINT + 2],a
- cp b
- jr nc,.noBorrowForByte2
-.byte2BorrowFromByte1
- ld a,[H_NUMTOPRINT + 1]
- and a
- jr nz,.finishByte2BorrowFromByte1
-.byte2BorrowFromByte0
- ld a,[H_NUMTOPRINT]
- and a
- jr z,.underflow2
- dec a
- ld [H_NUMTOPRINT],a
- xor a
-.finishByte2BorrowFromByte1
- dec a
- ld [H_NUMTOPRINT + 1],a
- ld a,[H_NUMTOPRINT + 2]
-.noBorrowForByte2
- sub b
- ld [H_NUMTOPRINT + 2],a
- inc c
- jr .loop
-.underflow2
- ld a,[H_SAVEDNUMTOPRINT + 1]
- ld [H_NUMTOPRINT + 1],a
-.underflow1
- ld a,[H_SAVEDNUMTOPRINT]
- ld [H_NUMTOPRINT],a
-.underflow0
- ld a,[H_PASTLEADINGZEROES]
- or c
- jr z,PrintNumber_PrintLeadingZero
- ld a,"0"
- add c
- ld [hl],a
- ld [H_PASTLEADINGZEROES],a
- ret
-
-; prints a leading zero unless they are turned off in the flags
-PrintNumber_PrintLeadingZero:: ; 3d83 (0:3d83)
- bit 7,d ; print leading zeroes?
- ret z
- ld [hl],"0"
- ret
-
-; increments the pointer unless leading zeroes are not being printed,
-; the number is left-aligned, and no nonzero digits have been printed yet
-PrintNumber_AdvancePointer:: ; 3d89 (0:3d89)
- bit 7,d ; print leading zeroes?
- jr nz,.incrementPointer
- bit 6,d ; left alignment or right alignment?
- jr z,.incrementPointer
- ld a,[H_PASTLEADINGZEROES]
- and a
- ret z
-.incrementPointer
- inc hl
- ret
-
-; calls a function from a table of function pointers
-; INPUT:
-; a = index within table
-; hl = address of function pointer table
-CallFunctionInTable:: ; 3d97 (0:3d97)
- push hl
- push de
- push bc
- add a
- ld d,0
- ld e,a
- add hl,de
- ld a,[hli]
- ld h,[hl]
- ld l,a
- ld de,.returnAddress
- push de
- jp [hl]
-.returnAddress
- pop bc
- pop de
- pop hl
- ret
-
-; searches an array at hl for the value in a.
-; skips (de − 1) bytes between reads, so to check every byte, de should be 1.
-; if found, returns count in b and sets carry.
-IsInArray:: ; 3dab (0:3dab)
- ld b,0
- ; fall through
-
-IsInArrayCummulativeCount:: ; 3dad (0:3dad)
- ld c,a
-.loop
- ld a,[hl]
- cp a,$FF
- jr z,.NotInArray
- cp c
- jr z,.InArray
- inc b
- add hl,de
- jr .loop
-.NotInArray
- and a
- ret
-.InArray
- scf
- ret
-
-Func_3dbe:: ; 3dbe (0:3dbe)
- call CleanLCD_OAM
- ld a, $1
- ld [$cfcb], a
- call Func_3e08
- call LoadScreenTilesFromBuffer2
- call LoadTextBoxTilePatterns
- call GoPAL_SET_CF1C
- jr Delay3
-
-; calls GBPalWhiteOut and then Delay3
-GBPalWhiteOutWithDelay3:: ; 3dd4 (0:3dd4)
- call GBPalWhiteOut
-
-Delay3:: ; 3dd7 (0:3dd7)
-; call Delay with a parameter of 3
- ld c,3
- jp DelayFrames
-
-; resets BGP and OBP0 to their usual colors
-GBPalNormal:: ; 3ddc (0:3ddc)
- ld a,%11100100
- ld [rBGP],a
- ld a,%11010000
- ld [rOBP0],a
- ret
-
-; makes all palette colors white
-GBPalWhiteOut:: ; 3de5 (0:3de5)
- xor a
- ld [rBGP],a
- ld [rOBP0],a
- ld [rOBP1],a
- ret
-
-GoPAL_SET_CF1C:: ; 3ded (0:3ded)
- ld b,$ff
-GoPAL_SET:: ; 3def (0:3def)
- ld a,[$cf1b]
- and a
- ret z
- ld a,$45
- jp Predef
-
-; hl points to where the color gets stored
-; e contains the number of pixels filled in the health bar (out of 48)
-GetHealthBarColor:: ; 3df9 (0:3df9)
- ld a, e
- cp 27
- ld d, $0 ; green
- jr nc, .gotColor
- cp 10
- inc d ; yellow
- jr nc, .gotColor
- inc d ; red
-.gotColor
- ld [hl], d
- ret
-
-Func_3e08:: ; 3e08 (0:3e08)
- ld hl, $cfc4
- ld a, [hl]
- push af
- res 0, [hl]
- push hl
- xor a
- ld [W_SPRITESETID], a ; $d3a8
- call DisableLCD
- callba InitMapSprites
- call EnableLCD
- pop hl
- pop af
- ld [hl], a
- call LoadPlayerSpriteGraphics
- call LoadFontTilePatterns
- jp UpdateSprites
-
-GiveItem:: ; 3e2e (0:3e2e)
-; Give player quantity c of item b, and copy item name to $cf4b.
-; Set carry on success. If no room in bag, reset carry.
- ld a, b
- ld [$d11e], a
- ld [$cf91], a
- ld a, c
- ld [$cf96], a
- ld hl,wNumBagItems
- call AddItemToInventory
- ret nc
- call GetItemName ; $2fcf
- call CopyStringToCF4B
- scf
- ret
-
-GivePokemon:: ; 3e48 (0:3e48)
- ld a, b
- ld [$cf91], a
- ld a, c
- ld [$d127], a
- xor a
- ld [$cc49], a
- ld b, BANK(_GivePokemon)
- ld hl, _GivePokemon
- jp Bankswitch
-
-GenRandom:: ; 3e5c (0:3e5c)
-; store a random 8-bit value in a
- push hl
- push de
- push bc
- callba GenRandom_
- ld a,[H_RAND1]
- pop bc
- pop de
- pop hl
- ret
-
-Predef:: ; 3e6d (0:3e6d)
-; runs a predefined ASM command, where the command ID is read from $D0B7
-; $3E6D grabs the ath pointer from PredefPointers and executes it
-
- ld [$CC4E],a ; save the predef routine's ID for later
-
- ld a,[H_LOADEDROMBANK]
- ld [$CF12],a
-
- ; save bank and call 13:7E49
- push af
- ld a,BANK(GetPredefPointer)
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- call GetPredefPointer
-
- ; call the predef function
- ; ($D0B7 has the bank of the predef routine)
- ld a,[$D0B7]
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld de,.Return
- push de
- jp [hl]
- ; after the predefined function finishes it returns here
-.Return
- pop af
- ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ret
-
-;loads hl from cc4f, de from cc51, and bc from cc53
-
-Load16BitRegisters:: ; 3e94 (0:3e94)
- ld a, [$cc4f]
- ld h, a
- ld a, [$cc50]
- ld l, a
- ld a, [$cc51]
- ld d, a
- ld a, [$cc52]
- ld e, a
- ld a, [$cc53]
- ld b, a
- ld a, [$cc54]
- ld c, a
- ret
-
-Func_3ead:: ; 3ead (0:3ead)
- ld b, BANK(CinnabarGymQuiz_1eb0a)
- ld hl, CinnabarGymQuiz_1eb0a
- jp Bankswitch
-
-Func_3eb5:: ; 3eb5 (0:3eb5)
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, [H_CURRENTPRESSEDBUTTONS]
- bit 0, a
- jr z, .asm_3eea
- ld a, Bank(Func_469a0)
- ld [$2000], a
- ld [H_LOADEDROMBANK], a
- call Func_469a0
- ld a, [$ffee]
- and a
- jr nz, .asm_3edd
- ld a, [$cd3e]
- ld [$2000], a
- ld [H_LOADEDROMBANK], a
- ld de, .asm_3eda
- push de
- jp [hl]
-.asm_3eda
- xor a
- jr .asm_3eec
-.asm_3edd
- callba PrintBookshelfText
- ld a, [$ffdb]
- and a
- jr z, .asm_3eec
-.asm_3eea
- ld a, $ff
-.asm_3eec
- ld [$ffeb], a
- pop af
- ld [$2000], a
- ld [H_LOADEDROMBANK], a
- ret
-
-PrintPredefTextID:: ; 3ef5 (0:3ef5)
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld hl, PointerTable_3f22
- call Func_3f0f
- ld hl, $cf11
- set 0, [hl]
- call DisplayTextID
-
-Func_3f05:: ; 3f05 (0:3f05)
- ld hl, W_MAPTEXTPTR ; $d36c
- ld a, [$ffec]
- ld [hli], a
- ld a, [$ffed]
- ld [hl], a
- ret
-
-Func_3f0f:: ; 3f0f (0:3f0f)
- ld a, [W_MAPTEXTPTR] ; $d36c
- ld [$ffec], a
- ld a, [$d36d]
- ld [$ffed], a
- ld a, l
- ld [W_MAPTEXTPTR], a ; $d36c
- ld a, h
- ld [$d36d], a
- ret
-
-PointerTable_3f22:: ; 3f22 (0:3f22)
- dw CardKeySuccessText ; id = 01
- dw CardKeyFailText ; id = 02
- dw RedBedroomPC ; id = 03
- dw RedBedroomSNESText ; id = 04
- dw PushStartText ; id = 05
- dw SaveOptionText ; id = 06
- dw StrengthsAndWeaknessesText ; id = 07
- dw OakLabEmailText ; id = 08
- dw AerodactylFossilText ; id = 09
- dw Route15UpstairsBinocularsText ; id = 0A
- dw KabutopsFossilText ; id = 0B
- dw GymStatueText1 ; id = 0C
- dw GymStatueText2 ; id = 0D
- dw BookcaseText ; id = 0E
- dw ViridianCityPokecenterBenchGuyText ; id = 0F
- dw PewterCityPokecenterBenchGuyText ; id = 10
- dw CeruleanCityPokecenterBenchGuyText ; id = 11
- dw LavenderCityPokecenterBenchGuyText ; id = 12
- dw VermilionCityPokecenterBenchGuyText ; id = 13
- dw CeladonCityPokecenterBenchGuyText ; id = 14
- dw CeladonCityHotelText ; id = 15
- dw FuchsiaCityPokecenterBenchGuyText ; id = 16
- dw CinnabarIslandPokecenterBenchGuyText ; id = 17
- dw SaffronCityPokecenterBenchGuyText ; id = 18
- dw MtMoonPokecenterBenchGuyText ; id = 19
- dw RockTunnelPokecenterBenchGuyText ; id = 1A
- dw UnusedBenchGuyText1 ; id = 1B
- dw UnusedBenchGuyText2 ; id = 1C
- dw UnusedBenchGuyText3 ; id = 1D
- dw TerminatorText_62508 ; id = 1E
- dw PredefText1f ; id = 1F
- dw ViridianSchoolNotebook ; id = 20
- dw ViridianSchoolBlackboard ; id = 21
- dw JustAMomentText ; id = 22
- dw PredefText23 ; id = 23
- dw FoundHiddenItemText ; id = 24
- dw HiddenItemBagFullText ; id = 25
- dw VermilionGymTrashText ; id = 26
- dw IndigoPlateauHQText ; id = 27
- dw GameCornerOutOfOrderText ; id = 28
- dw GameCornerOutToLunchText ; id = 29
- dw GameCornerSomeonesKeysText ; id = 2A
- dw FoundHiddenCoinsText ; id = 2B
- dw DroppedHiddenCoinsText ; id = 2C
- dw BillsHouseMonitorText ; id = 2D
- dw BillsHouseInitiatedText ; id = 2E
- dw BillsHousePokemonList ; id = 2F
- dw MagazinesText ; id = 30
- dw CinnabarGymQuiz ; id = 31
- dw GameCornerNoCoinsText ; id = 32
- dw GameCornerCoinCaseText ; id = 33
- dw LinkCableHelp ; id = 34
- dw TMNotebook ; id = 35
- dw FightingDojoText ; id = 36
- dw FightingDojoText_52a10 ; id = 37
- dw FightingDojoText_52a1d ; id = 38
- dw NewBicycleText ; id = 39
- dw IndigoPlateauStatues ; id = 3A
- dw VermilionGymTrashSuccesText1 ; id = 3B
- dw VermilionGymTrashSuccesText2 ; id = 3C
- dw VermilionGymTrashSuccesText3 ; id = 3D
- dw VermilionGymTrashFailText ; id = 3E
- dw TownMapText ; id = 3F
- dw BookOrSculptureText ; id = 40
- dw ElevatorText ; id = 41
- dw PokemonStuffText ; id = 42
-
SECTION "bank1",ROMX,BANK[$1]
-SpriteFacingAndAnimationTable: ; 4000 (1:4000)
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; facing down, walk animation frame 0
- dw SpriteFacingDownAndWalking, SpriteOAMParameters ; facing down, walk animation frame 1
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; facing down, walk animation frame 2
- dw SpriteFacingDownAndWalking, SpriteOAMParametersFlipped ; facing down, walk animation frame 3
- dw SpriteFacingUpAndStanding, SpriteOAMParameters ; facing up, walk animation frame 0
- dw SpriteFacingUpAndWalking, SpriteOAMParameters ; facing up, walk animation frame 1
- dw SpriteFacingUpAndStanding, SpriteOAMParameters ; facing up, walk animation frame 2
- dw SpriteFacingUpAndWalking, SpriteOAMParametersFlipped ; facing up, walk animation frame 3
- dw SpriteFacingLeftAndStanding, SpriteOAMParameters ; facing left, walk animation frame 0
- dw SpriteFacingLeftAndWalking, SpriteOAMParameters ; facing left, walk animation frame 1
- dw SpriteFacingLeftAndStanding, SpriteOAMParameters ; facing left, walk animation frame 2
- dw SpriteFacingLeftAndWalking, SpriteOAMParameters ; facing left, walk animation frame 3
- dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 0
- dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped ; facing right, walk animation frame 1
- dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 2
- dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped ; facing right, walk animation frame 3
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; ---
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; This table is used for sprites $a and $b.
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; All orientation and animation parameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; lead to the same result. Used for immobile
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; sprites like items on the ground
- dw SpriteFacingDownAndStanding, SpriteOAMParameters ; ---
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
- dw SpriteFacingDownAndStanding, SpriteOAMParameters
+INCLUDE "data/facing.asm"
-SpriteFacingDownAndStanding: ; 4080 (1:4080)
- db $00,$01,$02,$03
-SpriteFacingDownAndWalking: ; 4084 (1:4084)
- db $80,$81,$82,$83
-SpriteFacingUpAndStanding: ; 4088 (1:4088)
- db $04,$05,$06,$07
-SpriteFacingUpAndWalking: ; 408c (1:408c)
- db $84,$85,$86,$87
-SpriteFacingLeftAndStanding: ; 4090 (1:4090)
- db $08,$09,$0a,$0b
-SpriteFacingLeftAndWalking: ; 4094 (1:4094)
- db $88,$89,$8a,$8b
-
-SpriteOAMParameters: ; 4098 (1:4098)
- db $00,$00, $00 ; top left
- db $00,$08, $00 ; top right
- db $08,$00, OAMFLAG_CANBEMASKED ; bottom left
- db $08,$08, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right
-SpriteOAMParametersFlipped: ; 40a4 (1:40a4)
- db $00,$08, OAMFLAG_VFLIPPED
- db $00,$00, OAMFLAG_VFLIPPED
- db $08,$08, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED
- db $08,$00, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
-
-Func_40b0: ; 40b0 (1:40b0)
+Func_40b0::
+; Reset player status on blackout.
xor a
- ld [$cf0b], a
- ld [$d700], a
- ld [W_ISINBATTLE], a ; $d057
- ld [$d35d], a
- ld [$cf10], a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$cc57], a
+ ld [wcf0b], a
+ ld [wd700], a
+ ld [W_ISINBATTLE], a
+ ld [wd35d], a
+ ld [wcf10], a
+ ld [hJoyHeld], a
+ ld [wcc57], a
ld [wFlags_0xcd60], a
+
ld [$ff9f], a
- ld [$ffa0], a
- ld [$ffa1], a
+ ld [$ff9f + 1], a
+ ld [$ff9f + 2], a
call HasEnoughMoney
- jr c, .asm_40ff
- ld a, [wPlayerMoney] ; $d347
+ jr c, .lostmoney ; never happens
+
+ ; Halve the player's money.
+ ld a, [wPlayerMoney]
ld [$ff9f], a
- ld a, [wPlayerMoney + 1] ; $d348
- ld [$ffa0], a
- ld a, [wPlayerMoney + 2] ; $d349
- ld [$ffa1], a
+ ld a, [wPlayerMoney + 1]
+ ld [$ff9f + 1], a
+ ld a, [wPlayerMoney + 2]
+ ld [$ff9f + 2], a
xor a
ld [$ffa2], a
ld [$ffa3], a
- ld a, $2
+ ld a, 2
ld [$ffa4], a
- ld a, $d
- call Predef ; indirect jump to Func_f71e (f71e (3:771e))
+ predef DivideBCDPredef3
ld a, [$ffa2]
- ld [wPlayerMoney], a ; $d347
- ld a, [$ffa3]
- ld [wPlayerMoney + 1], a ; $d348
- ld a, [$ffa4]
- ld [wPlayerMoney + 2], a ; $d349
-.asm_40ff
- ld hl, $d732
+ ld [wPlayerMoney], a
+ ld a, [$ffa2 + 1]
+ ld [wPlayerMoney + 1], a
+ ld a, [$ffa2 + 2]
+ ld [wPlayerMoney + 2], a
+
+.lostmoney
+ ld hl, wd732
set 2, [hl]
res 3, [hl]
set 6, [hl]
- ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld a, $7
- jp Predef ; indirect jump to HealParty (f6a5 (3:76a5))
+ ld a, %11111111
+ ld [wJoyIgnore], a
+ predef_jump HealParty
-MewPicFront: ; 4112 (1:4112)
- INCBIN "pic/bmon/mew.pic"
-MewPicBack: ; 4205 (1:4205)
- INCBIN "pic/monback/mewb.pic"
+MewPicFront:: INCBIN "pic/bmon/mew.pic"
+MewPicBack:: INCBIN "pic/monback/mewb.pic"
INCLUDE "data/baseStats/mew.asm"
INCLUDE "engine/battle/safari_zone.asm"
@@ -10244,64 +75,65 @@
INCLUDE "engine/titlescreen.asm"
-NintenText: ; 45aa (1:45aa)
- db "NINTEN@"
+NintenText: db "NINTEN@"
+SonyText: db "SONY@"
-SonyText: ; 45b1 (1:45b1)
- db "SONY@"
-; loads pokemon data from one of multiple sources to $cf98
-; loads base stats to $d0b8
-; INPUT:
-; [$cf92] = index of pokemon within party/box
-; [$cc49] = source
-; 00: player's party
-; 01: enemy's party
-; 02: current box
-; 03: daycare
-; OUTPUT:
-; [$cf91] = pokemon ID
-; $cf98 = base address of pokemon data
-; $d0b8 = base address of base stats
-LoadMonData_: ; 45b6 (1:45b6)
- ld a,[W_DAYCAREMONDATA] ; daycare pokemon ID
- ld [$cf91],a
- ld a,[$cc49]
- cp a,$03
- jr z,.GetMonHeader
- ld a,[wWhichPokemon]
- ld e,a
+LoadMonData_:
+; Load monster [wWhichPokemon] from list [wcc49]:
+; 0: partymon
+; 1: enemymon
+; 2: boxmon
+; 3: daycaremon
+; Return monster id at wcf91 and its data at wcf98.
+; Also load base stats at W_MONHDEXNUM for convenience.
+
+ ld a, [wDayCareMonSpecies]
+ ld [wcf91], a
+ ld a, [wcc49]
+ cp 3
+ jr z, .GetMonHeader
+
+ ld a, [wWhichPokemon]
+ ld e, a
callab Func_39c37 ; get pokemon ID
+
.GetMonHeader
- ld a,[$cf91]
- ld [$d0b5],a ; input for GetMonHeader
- call GetMonHeader ; load base stats to $d0b8
- ld hl,W_PARTYMON1DATA
- ld bc,44
- ld a,[$cc49]
- cp a,$01
- jr c,.getMonEntry
- ld hl,wEnemyMons ; enemy pokemon 1 data
- jr z,.getMonEntry
- cp a,$02
- ld hl,W_BOXMON1DATA ; box pokemon 1 data
- ld bc,33
- jr z,.getMonEntry
- ld hl, W_DAYCAREMONDATA ; daycare pokemon data
+ ld a, [wcf91]
+ ld [wd0b5], a ; input for GetMonHeader
+ call GetMonHeader
+
+ ld hl, wPartyMons
+ ld bc, wPartyMon2 - wPartyMon1
+ ld a, [wcc49]
+ cp 1
+ jr c, .getMonEntry
+
+ ld hl, wEnemyMons
+ jr z, .getMonEntry
+
+ cp 2
+ ld hl, wBoxMons
+ ld bc, wBoxMon2 - wBoxMon1
+ jr z, .getMonEntry
+
+ ld hl, wDayCareMon
jr .copyMonData
-.getMonEntry ; add the product of the index and the size of each entry
- ld a,[wWhichPokemon]
+
+.getMonEntry
+ ld a, [wWhichPokemon]
call AddNTimes
+
.copyMonData
- ld de,$cf98
- ld bc,44
+ ld de, wcf98
+ ld bc, 44
jp CopyData
-INCLUDE "data/item_prices.asm"
+INCLUDE "data/item_prices.asm"
INCLUDE "text/item_names.asm"
-UnusedNames: ; 4a92 (1:4a92)
+UnusedNames:
db "かみなりバッヂ@"
db "かいがらバッヂ@"
db "おじぞうバッヂ@"
@@ -10322,190 +154,14 @@
db "マスター@"
db "エクセレント"
-; calculates the OAM data for all currently visible sprites and writes it to wOAMBuffer
-PrepareOAMData: ; 4b0f (1:4b0f)
- ld a, [$cfcb]
- dec a
- jr z, .asm_4b1e
- cp $ff
- ret nz
- ld [$cfcb], a
- jp ResetLCD_OAM
-.asm_4b1e
- xor a
- ld [$ff90], a
-.asm_4b21
- ld [$ff8f], a
- ld d, $c1
- ld a, [$ff8f]
- ld e, a
- ld a, [de] ; c1x0
- and a
- jp z, .asm_4bad
- inc e
- inc e
- ld a, [de] ; c1x2 read combined orientation and animation info
- ld [$d5cd], a
- cp $ff
- jr nz, .spriteVisible ; $ff -> offscreen, don't draw
- call Func_4bd1
- jr .asm_4bad
-.spriteVisible
- cp $a0
- jr c, .considerOrientation ; if >= $a0, ignore the sprite orientation and animation (by using a different conversion table)
- and $f
- add $10
- jr .asm_4b48
-.considerOrientation
- and $f ; the lower nybble contains orientation and animation info
-.asm_4b48
- ld l, a
- push de
- inc d
- ld a, e
- add $5
- ld e, a
- ld a, [de] ; c2x7
- and $80
- ld [$ff94], a ; temp store bit 7 for later use in OAM flags (draws sprite behind background (used for grass))
- pop de
- ld h, $0
- ld bc, SpriteFacingAndAnimationTable
- add hl, hl
- add hl, hl
- add hl, bc ; skip to the table location determined by orientation and animation
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Func_4bd1
- ld a, [$ff90]
- ld e, a
- ld d, $c3 ; wOAMBuffer+x is buffer for OAM data
-.spriteTilesLoop ; loops 4 times for the 4 tiles a sprite consists of
- ld a, [$ff92] ; temp for sprite Y position
- add $10 ; Y=16 is top of screen (Y=0 is invisible)
- add [hl] ; add Y offset from table
- ld [de], a ; write new sprite OAM Y position
- inc hl
- ld a, [$ff91] ; temp for sprite X position
- add $8 ; X=8 is left of screen (X=0 is invisible)
- add [hl] ; add X offset from table
- inc e
- ld [de], a ; write new sprite OAM X position
- inc e
- ld a, [bc] ; read pattern number offset (accomodates orientation (offset 0,4 or 8) and animation (offset 0 or $80))
- inc bc
- push bc
- ld b, a
- ld a, [$d5cd] ; temp copy of c1x2
- swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs)
- and $f
- cp $b ; sprites $a and $b have no orientation or animation and therefore only 4 tiles
- jr nz, .calcTileOffset ; (instead of 12), so tile b's offset is a special case
- ld a, $7c ; = $a * 12 + 4
- jr .doneCalcTileOffset
-.calcTileOffset
- sla a
- sla a
- ld c, a
- sla a
- add c ; a *= 12 (each sprite consists of 12 tiles)
-.doneCalcTileOffset
- add b ; add orientation and animation offset
- pop bc
- ld [de], a ; write OAM sprite pattern number
- inc hl
- inc e
- ld a, [hl]
- bit 1, a ; bit 1 is ignored for OAM, it's used here as an "always in foregroud" flag.
- jr z, .alwaysInForeground
- ld a, [$ff94] ; load bit 7 (set to $80 if sprite is in grass and should be drawn behind it)
- or [hl]
-.alwaysInForeground
- inc hl
- ld [de], a ; write OAM sprite flags
- inc e
- bit 0, a ; test for OAMFLAG_ENDOFDATA
- jr z, .spriteTilesLoop
- ld a, e
- ld [$ff90], a
-.asm_4bad
- ld a, [$ff8f]
- add $10
- cp $0
- jp nz, .asm_4b21
- ld a, [$ff90]
- ld l, a
- ld h, $c3
- ld de, $4
- ld b, $a0
- ld a, [$d736]
- bit 6, a
- ld a, $a0
- jr z, .clearUnusedOAMEntriesLoop
- ld a, $90
-.clearUnusedOAMEntriesLoop
- cp l
- ret z
- ld [hl], b
- add hl, de
- jr .clearUnusedOAMEntriesLoop
+INCLUDE "engine/overworld/oam.asm"
+INCLUDE "engine/oam_dma.asm"
-Func_4bd1: ; 4bd1 (1:4bd1)
- inc e
- inc e
- ld a, [de] ; c1x4
- ld [$ff92], a
- inc e
- inc e
- ld a, [de] ; c1x6
- ld [$ff91], a
- ld a, $4
- add e
- ld e, a
- ld a, [$ff92]
- add $4
- and $f0
- ld [de], a ; c1xa (sprite Y pos (snapped to whole steps (?))
- inc e
- ld a, [$ff91]
- and $f0
- ld [de], a ; c1xb (sprite X pos (snapped to whole steps (?))
- ret
-
-; copies DMA routine to HRAM. By GB specifications, all DMA needs to be done in HRAM (no other memory section is available during DMA)
-WriteDMACodeToHRAM: ; 4bed (1:4bed)
- ld c, $80
- ld b, $a
- ld hl, DMARoutine
-.copyLoop
- ld a, [hli]
- ld [$ff00+c], a
- inc c
- dec b
- jr nz, .copyLoop
- ret
-
-; this routine is copied to HRAM and executed there on every VBlank
-DMARoutine: ; 4bfb (1:4bfb)
- ld a, $c3
- ld [$ff46], a ; start DMA
- ld a, $28
-.waitLoop ; wait for DMA to finish
- dec a
- jr nz, .waitLoop
- ret
-
-PrintWaitingText: ; 4c05 (1:4c05)
- FuncCoord 3, 10 ; $c46b
- ld hl, Coord
+PrintWaitingText:
+ hlCoord 3, 10
ld b, $1
ld c, $b
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE]
and a
jr z, .asm_4c17
call TextBoxBorder
@@ -10513,20 +169,20 @@
.asm_4c17
call Func_5ab3
.asm_4c1a
- FuncCoord 4, 11 ; $c480
- ld hl, Coord
+ hlCoord 4, 11
ld de, WaitingText
call PlaceString
- ld c, $32
+ ld c, 50
jp DelayFrames
-WaitingText: ; 4c28 (1:4c28)
+WaitingText:
db "Waiting...!@"
+
_UpdateSprites: ; 4c34 (1:4c34)
ld h, $c1
inc h
- ld a, $e ; $c20e
+ ld a, $e ; wSpriteStateData2 + $0e
.spriteLoop
ld l, a
sub $e
@@ -10553,11 +209,11 @@
jp nz, UpdateNonPlayerSprite
jp UpdatePlayerSprite
-UpdateNonPlayerSprite: ; 4c5c (1:4c5c)
+UpdateNonPlayerSprite:
dec a
swap a
ld [$ff93], a ; $10 * sprite#
- ld a, [$cf17] ; some sprite offset?
+ ld a, [wcf17] ; some sprite offset?
ld b, a
ld a, [H_CURRENTSPRITEOFFSET]
cp b
@@ -10566,36 +222,46 @@
.unequal
jp Func_4ed1
-Func_4c70: ; 4c70 (1:4c70)
+
+Func_4c70:
nop
- ld h, $c1
+
+ ld h, wSpriteStateData1 / $100
ld a, [H_CURRENTSPRITEOFFSET]
- add $0
+ add wSpriteStateData1 % $100
ld l, a
+
ld a, [hl]
and a
ret z
+
ld a, l
- add $3
+ add 3
ld l, a
+
ld a, [hli]
call Func_4d72
+
ld a, [hli]
- add $4
+ add 4
add b
and $f0
or c
ld [$ff90], a
+
ld a, [hli]
call Func_4d72
+
ld a, [hl]
add b
and $f0
or c
ld [$ff91], a
+
ld a, l
- add $7
+ add 7
ld l, a
+
xor a
ld [hld], a
ld [hld], a
@@ -10605,31 +271,36 @@
ld [hl], a
xor a
-Func_4ca5: ; 4ca5 (1:4ca5)
+.loop
ld [$ff8f], a
swap a
ld e, a
ld a, [H_CURRENTSPRITEOFFSET]
cp e
- jp z, .asm_4d69
+ jp z, .next
+
ld d, h
ld a, [de]
and a
- jp z, .asm_4d69
+ jp z, .next
+
inc e
inc e
ld a, [de]
inc a
- jp z, .asm_4d69
+ jp z, .next
+
ld a, [H_CURRENTSPRITEOFFSET]
- add $a
+ add 10
ld l, a
inc e
+
ld a, [de]
call Func_4d72
inc e
+
ld a, [de]
- add $4
+ add 4
add b
and $f0
or c
@@ -10639,16 +310,17 @@
inc a
.asm_4cd4
ld [$ff90], a
+
push af
rl c
pop af
ccf
rl c
- ld b, $7
+ ld b, 7
ld a, [hl]
and $f
jr z, .asm_4ce6
- ld b, $9
+ ld b, 9
.asm_4ce6
ld a, [$ff90]
sub b
@@ -10656,22 +328,25 @@
ld a, b
ld [$ff90], a
jr c, .asm_4d01
- ld b, $7
+
+ ld b, 7
dec e
ld a, [de]
inc e
and a
jr z, .asm_4cfa
- ld b, $9
+ ld b, 9
.asm_4cfa
ld a, [$ff92]
sub b
jr z, .asm_4d01
- jr nc, .asm_4d69
+ jr nc, .next
+
.asm_4d01
inc e
inc l
ld a, [de]
+
push bc
call Func_4d72
inc e
@@ -10680,6 +355,7 @@
and $f0
or c
pop bc
+
sub [hl]
jr nc, .asm_4d14
cpl
@@ -10686,16 +362,17 @@
inc a
.asm_4d14
ld [$ff91], a
+
push af
rl c
pop af
ccf
rl c
- ld b, $7
+ ld b, 7
ld a, [hl]
and $f
jr z, .asm_4d26
- ld b, $9
+ ld b, 9
.asm_4d26
ld a, [$ff91]
sub b
@@ -10703,18 +380,19 @@
ld a, b
ld [$ff91], a
jr c, .asm_4d41
- ld b, $7
+ ld b, 7
dec e
ld a, [de]
inc e
and a
jr z, .asm_4d3a
- ld b, $9
+ ld b, 9
.asm_4d3a
ld a, [$ff92]
sub b
jr z, .asm_4d41
- jr nc, .asm_4d69
+ jr nc, .next
+
.asm_4d41
ld a, [$ff91]
ld b, a
@@ -10722,10 +400,10 @@
inc l
cp b
jr c, .asm_4d4e
- ld b, $c
+ ld b, 12
jr .asm_4d50
.asm_4d4e
- ld b, $3
+ ld b, 3
.asm_4d50
ld a, c
and b
@@ -10735,7 +413,7 @@
inc l
inc l
ld a, [$ff8f]
- ld de, DiagonalLines ; $4d85
+ ld de, DiagonalLines
add a
add e
ld e, a
@@ -10749,977 +427,86 @@
ld a, [de]
or [hl]
ld [hl], a
-.asm_4d69
+
+.next
ld a, [$ff8f]
inc a
cp $10
- jp nz, Func_4ca5
+ jp nz, .loop
ret
-Func_4d72: ; 4d72 (1:4d72)
+Func_4d72:
and a
- ld b, $0
- ld c, $0
- jr z, .asm_4d84
- ld c, $9
- cp $ff
- jr z, .asm_4d83
- ld c, $7
- ld a, $0
-.asm_4d83
+ ld b, 0
+ ld c, 0
+ jr z, .done
+ ld c, 9
+ cp -1
+ jr z, .ok
+ ld c, 7
+ ld a, 0
+.ok
ld b, a
-.asm_4d84
+.done
ret
-DiagonalLines: ; 4d85 (1:4d85)
- INCBIN "gfx/diagonal_lines.2bpp"
+DiagonalLines: INCBIN "gfx/diagonal_lines.2bpp"
-Func_4da5: ; 4da5 (1:4da5)
+
+TestBattle:
ret
-Func_4da6: ; 4da6 (1:4da6)
+.loop
call GBPalNormal
- ld a, $80
+
+ ; Don't mess around
+ ; with obedience.
+ ld a, %10000000 ; EARTHBADGE
ld [W_OBTAINEDBADGES], a
+
ld hl, W_FLAGS_D733
set 0, [hl]
- ld hl, W_NUMINPARTY
+
+ ; Reset the party.
+ ld hl, wPartyCount
xor a
ld [hli], a
dec a
ld [hl], a
- ld a, $1
- ld [$cf91], a
+
+ ; Give the player a
+ ; level 20 Rhydon.
+ ld a, RHYDON
+ ld [wcf91], a
ld a, 20
ld [W_CURENEMYLVL], a
xor a
- ld [$cc49], a
+ ld [wcc49], a
ld [W_CURMAP], a
- call AddPokemonToParty
+ call AddPartyMon
+
+ ; Fight against a
+ ; level 20 Rhydon.
ld a, RHYDON
ld [W_CUROPPONENT], a
- ld a, $2c
- call Predef
- ld a, $1
- ld [$cfcb], a
- ld [H_AUTOBGTRANSFERENABLED], a
- jr Func_4da6
-PickupItem: ; 4de1 (1:4de1)
- call EnableAutoTextBoxDrawing
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- ld b, a
- ld hl, W_MISSABLEOBJECTLIST
-.missableObjectsListLoop
- ld a, [hli]
- cp $ff
- ret z
- cp b
- jr z, .isMissable
- inc hl
- jr .missableObjectsListLoop
-.isMissable
- ld a, [hl]
- ld [$ffdb], a
- ld hl, W_MAPSPRITEEXTRADATA
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- dec a
- add a
- ld d, $0
- ld e, a
- add hl, de ; seek to item data of found item
- ld a, [hl] ; read Item type
- ld b, a
- ld c, 1 ; quantity is 1
- call GiveItem
- jr nc, .BagFull
- ld a, [$ffdb]
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
- ld a, $1
- ld [$cc3c], a
- ld hl, FoundItemText
- jr .printText
-.BagFull
- ld hl, NoMoreRoomForItemText
-.printText
- call PrintText
- ret
+ predef InitOpponent
-FoundItemText: ; 4e26 (1:4e26)
- TX_FAR _FoundItemText
- db $0B
- db "@"
+ ; When the battle ends,
+ ; do it all again.
+ ld a, 1
+ ld [wcfcb], a
+ ld [H_AUTOBGTRANSFERENABLED], a
+ jr .loop
-NoMoreRoomForItemText: ; 4e2c (1:4e2c)
- TX_FAR _NoMoreRoomForItemText
- db "@"
+INCLUDE "engine/overworld/item.asm"
+INCLUDE "engine/overworld/movement.asm"
-UpdatePlayerSprite: ; 4e31 (1:4e31)
- ld a, [wSpriteStateData2]
- and a
- jr z, .asm_4e41
- cp $ff
- jr z, .asm_4e4a
- dec a
- ld [wSpriteStateData2], a
- jr .asm_4e4a
-.asm_4e41
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
- ld [$ff93], a
- cp $60
- jr c, .asm_4e50
-.asm_4e4a
- ld a, $ff
- ld [$c102], a
- ret
-.asm_4e50
- call Func_4c70
- ld h, $c1
- ld a, [wWalkCounter] ; $cfc5
- and a
- jr nz, .asm_4e90
- ld a, [$d528]
- bit 2, a
- jr z, .asm_4e65
- xor a
- jr .asm_4e86
-.asm_4e65
- bit 3, a
- jr z, .asm_4e6d
- ld a, $4
- jr .asm_4e86
-.asm_4e6d
- bit 1, a
- jr z, .asm_4e75
- ld a, $8
- jr .asm_4e86
-.asm_4e75
- bit 0, a
- jr z, .asm_4e7d
- ld a, $c
- jr .asm_4e86
-.asm_4e7d
- xor a
- ld [$c107], a
- ld [$c108], a
- jr .asm_4eab
-.asm_4e86
- ld [$c109], a
- ld a, [$cfc4]
- bit 0, a
- jr nz, .asm_4e7d
-.asm_4e90
- ld a, [$d736]
- bit 7, a
- jr nz, .asm_4eb6
- ld a, [H_CURRENTSPRITEOFFSET]
- add $7
- ld l, a
- ld a, [hl]
- inc a
- ld [hl], a
- cp $4
- jr nz, .asm_4eab
- xor a
- ld [hl], a
- inc hl
- ld a, [hl]
- inc a
- and $3
- ld [hl], a
-.asm_4eab
- ld a, [$c108]
- ld b, a
- ld a, [$c109]
- add b
- ld [$c102], a
-.asm_4eb6
- ld a, [$ff93]
- ld c, a
- ld a, [W_GRASSTILE]
- cp c
- ld a, $0
- jr nz, .asm_4ec3
- ld a, $80
-.asm_4ec3
- ld [$c207], a
- ret
-
-Func_4ec7: ; 4ec7 (1:4ec7)
- push bc
- push af
- ld a, [$ffda]
- ld c, a
- pop af
- add c
- ld l, a
- pop bc
- ret
-
-Func_4ed1: ; 4ed1 (1:4ed1)
- ld a, [H_CURRENTSPRITEOFFSET]
- swap a
- dec a
- add a
- ld hl, W_MAPSPRITEDATA ; $d4e4
- add l
- ld l, a
- ld a, [hl] ; read movement byte 2
- ld [wCurSpriteMovement2], a
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- ld l, a
- inc l
- ld a, [hl] ; c1x1
- and a
- jp z, InitializeSpriteStatus
- call CheckSpriteAvailability
- ret c ; if sprite is invisible, on tile >=$60, in grass or player is currently walking
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- ld l, a
- inc l
- ld a, [hl] ; c1x1
- bit 7, a
- jp nz, InitializeSpriteFacingDirection ; c1x1 >= $80
- ld b, a
- ld a, [$cfc4]
- bit 0, a
- jp nz, notYetMoving
- ld a, b
- cp $2
- jp z, UpdateSpriteMovementDelay ; c1x1 == 2
- cp $3
- jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3
- ld a, [wWalkCounter] ; $cfc5
- and a
- ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
- call InitializeSpriteScreenPosition
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $6
- ld l, a
- ld a, [hl] ; c2x6: movement byte 1
- inc a
- jr z, .asm_4f59 ; value $FF
- inc a
- jr z, .asm_4f59 ; value $FE
- dec a
- ld [hl], a ; (temporarily) increment movement byte 1
- dec a
- push hl
- ld hl, $cf0f
- dec [hl] ; decrement $cf0f
- pop hl
- ld de, $cc5b
- call LoadDEPlusA ; a = [$cc5b + movement byte 1]
- cp $e0
- jp z, ChangeFacingDirection
- cp $ff
- jr nz, .asm_4f4b
- ld [hl], a ; reset movement byte 1 to initial value
- ld hl, $d730
- res 0, [hl]
- xor a
- ld [$cd38], a
- ld [$cd3a], a
- ret
-.asm_4f4b
- cp $fe
- jr nz, .asm_4f5f
- ld [hl], $1 ; set movement byte 1 to $1
- ld de, $cc5b
- call LoadDEPlusA ; a = [$cc5b + $fe] (?)
- jr .asm_4f5f
-.asm_4f59
- call getTileSpriteStandsOn
- call GenRandom
-.asm_4f5f
- ld b, a
- ld a, [wCurSpriteMovement2]
- cp $d0
- jr z, .moveDown ; movement byte 2 = $d0 forces down
- cp $d1
- jr z, .moveUp ; movement byte 2 = $d1 forces up
- cp $d2
- jr z, .moveLeft ; movement byte 2 = $d2 forces left
- cp $d3
- jr z, .moveRight ; movement byte 2 = $d3 forces right
- ld a, b
- cp $40 ; a < $40: down (or left)
- jr nc, .notDown
- ld a, [wCurSpriteMovement2]
- cp $2
- jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
-.moveDown
- ld de, 2*20
- add hl, de ; move tile pointer two rows down
- ld de, $100
-
- ld bc, $400
- jr TryWalking
-.notDown
- cp $80 ; $40 <= a < $80: up (or right)
- jr nc, .notUp
- ld a, [wCurSpriteMovement2]
- cp $2
- jr z, .moveRight ; movement byte 2 = $2 only allows left or right
-.moveUp
- ld de, -2*20 ; $ffd8
- add hl, de ; move tile pointer two rows up
- ld de, $ff00
- ld bc, $804
- jr TryWalking
-.notUp
- cp $c0 ; $80 <= a < $c0: left (or up)
- jr nc, .notLeft
- ld a, [wCurSpriteMovement2]
- cp $1
- jr z, .moveUp ; movement byte 2 = $1 only allows up or down
-.moveLeft
- dec hl
- dec hl ; move tile pointer two columns left
- ld de, $ff
- ld bc, $208
- jr TryWalking
-.notLeft ; $c0 <= a: right (or down)
- ld a, [wCurSpriteMovement2]
- cp $1
- jr z, .moveDown ; movement byte 2 = $1 only allows up or down
-.moveRight
- inc hl
- inc hl ; move tile pointer two columns right
- ld de, $1
- ld bc, $10c
- jr TryWalking
-
-; changes facing direction by zeroing the movement delta and calling TryWalking
-ChangeFacingDirection: ; 4fc8 (1:4fc8)
- ld de, $0
- ; fall through
-
-; b: direction (1,2,4 or 8)
-; c: new facing direction (0,4,8 or $c)
-; d: Y movement delta (-1, 0 or 1)
-; e: X movement delta (-1, 0 or 1)
-; hl: pointer to tile the sprite would wlak onto
-; set carry on failure, clears carry on success
-TryWalking: ; 4fcb (1:4fcb)
- push hl
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $9
- ld l, a
- ld [hl], c ; c1x9 (update facing direction)
- ld a, [H_CURRENTSPRITEOFFSET]
- add $3
- ld l, a
- ld [hl], d ; c1x3 (update Y movement delta)
- inc l
- inc l
- ld [hl], e ; c1x5 (update X movement delta)
- pop hl
- push de
- ld c, [hl] ; read tile to walk onto
- call CanWalkOntoTile
- pop de
- ret c ; cannot walk there (reinitialization of delay values already done)
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $4
- ld l, a
- ld a, [hl] ; c2x4: Y position
- add d
- ld [hli], a ; update Y position
- ld a, [hl] ; c2x5: X position
- add e
- ld [hl], a ; update X position
- ld a, [H_CURRENTSPRITEOFFSET]
- ld l, a
- ld [hl], $10 ; c2x0=16: walk animation counter
- dec h
- inc l
- ld [hl], $3 ; c1x1: set movement status to walking
- jp UpdateSpriteImage
-
-; update the walking animation parameters for a sprite that is currently walking
-UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe)
- ld a, [H_CURRENTSPRITEOFFSET]
- add $7
- ld l, a
- ld a, [hl] ; c1x7 (counter until next walk animation frame)
- inc a
- ld [hl], a ; c1x7 += 1
- cp $4
- jr nz, .noNextAnimationFrame
- xor a
- ld [hl], a ; c1x7 = 0
- inc l
- ld a, [hl] ; c1x8 (walk animation frame)
- inc a
- and $3
- ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step)
-.noNextAnimationFrame
- ld a, [H_CURRENTSPRITEOFFSET]
- add $3
- ld l, a
- ld a, [hli] ; c1x3 (movement Y delta)
- ld b, a
- ld a, [hl] ; c1x4 (screen Y position)
- add b
- ld [hli], a ; update screen Y position
- ld a, [hli] ; c1x5 (movement X delta)
- ld b, a
- ld a, [hl] ; c1x6 (screen X position)
- add b
- ld [hl], a ; update screen X position
- ld a, [H_CURRENTSPRITEOFFSET]
- ld l, a
- inc h
- ld a, [hl] ; c2x0 (walk animantion counter)
- dec a
- ld [hl], a ; update walk animantion counter
- ret nz
- ld a, $6 ; walking finished, update state
- add l
- ld l, a
- ld a, [hl] ; c2x6 (movement byte 1)
- cp $fe
- jr nc, .initNextMovementCounter ; values $fe and $ff
- ld a, [H_CURRENTSPRITEOFFSET]
- inc a
- ld l, a
- dec h
- ld [hl], $1 ; c1x1 = 1 (movement status ready)
- ret
-.initNextMovementCounter
- call GenRandom
- ld a, [H_CURRENTSPRITEOFFSET]
- add $8
- ld l, a
- ld a, [H_RAND1] ; $ffd3
- and $7f
- ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f]
- dec h ; note that value 0 actually makes the delay $100 (bug?)
- ld a, [H_CURRENTSPRITEOFFSET]
- inc a
- ld l, a
- ld [hl], $2 ; c1x1 = 2 (movement status)
- inc l
- inc l
- xor a
- ld b, [hl] ; c1x3 (movement Y delta)
- ld [hli], a ; reset movement Y delta
- inc l
- ld c, [hl] ; c1x5 (movement X delta)
- ld [hl], a ; reset movement X delta
- ret
-
-; update delay value (c2x8) for sprites in the delayed state (c1x1)
-UpdateSpriteMovementDelay: ; 5057 (1:5057)
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $6
- ld l, a
- ld a, [hl] ; c2x6: movement byte 1
- inc l
- inc l
- cp $fe
- jr nc, .tickMoveCounter ; values $fe or $ff
- ld [hl], $0
- jr .moving
-.tickMoveCounter
- dec [hl] ; c2x8: frame counter until next movement
- jr nz, notYetMoving
-.moving
- dec h
- ld a, [H_CURRENTSPRITEOFFSET]
- inc a
- ld l, a
- ld [hl], $1 ; c1x1 = 1 (mark as ready to move)
-notYetMoving: ; 5073 (1:5073)
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $8
- ld l, a
- ld [hl], $0 ; c1x8 = 0 (walk animation frame)
- jp UpdateSpriteImage
-
-InitializeSpriteFacingDirection: ; 507f (1:507f)
- ld a, [$d72d]
- bit 5, a
- jr nz, notYetMoving
- res 7, [hl]
- ld a, [$d52a]
- bit 3, a
- jr z, .notFacingDown
- ld c, $0 ; make sprite face down
- jr .facingDirectionDetermined
-.notFacingDown
- bit 2, a
- jr z, .notFacingUp
- ld c, $4 ; make sprite face up
- jr .facingDirectionDetermined
-.notFacingUp
- bit 1, a
- jr z, .notFacingRight
- ld c, $c ; make sprite face right
- jr .facingDirectionDetermined
-.notFacingRight
- ld c, $8 ; make sprite face left
-.facingDirectionDetermined
- ld a, [H_CURRENTSPRITEOFFSET]
- add $9
- ld l, a
- ld [hl], c ; c1x9: set facing direction
- jr notYetMoving
-
-InitializeSpriteStatus: ; 50ad (1:50ad)
- ld [hl], $1 ; $c1x1: set movement status to ready
- inc l
- ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen)
- inc h
- ld a, [H_CURRENTSPRITEOFFSET]
- add $2
- ld l, a
- ld a, $8
- ld [hli], a ; $c2x2: set Y displacement to 8
- ld [hl], a ; $c2x3: set X displacement to 8
- ret
-
-; calculates the spprite's scrren position form its map position and the player position
-InitializeSpriteScreenPosition: ; 50bd (1:50bd)
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $4
- ld l, a
- ld a, [W_YCOORD] ; $d361
- ld b, a
- ld a, [hl] ; c2x4 (Y position + 4)
- sub b ; relative to player position
- swap a ; * 16
- sub $4 ; - 4
- dec h
- ld [hli], a ; c1x4 (screen Y position)
- inc h
- ld a, [W_XCOORD] ; $d362
- ld b, a
- ld a, [hli] ; c2x6 (X position + 4)
- sub b ; relative to player position
- swap a ; * 16
- dec h
- ld [hl], a ; c1x6 (screen X position)
- ret
-
-; tests if sprite is off screen or otherwise unable to do anything
-CheckSpriteAvailability: ; 50dc (1:50dc)
- ld a, $12
- call Predef ; indirect jump to IsMissableObjectHidden (f1a6 (3:71a6))
- ld a, [$ffe5]
- and a
- jp nz, .spriteInvisible
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $6
- ld l, a
- ld a, [hl] ; c2x6: movement byte 1
- cp $fe
- jr c, .skipXVisibilityTest ; movement byte 1 < $fe
- ld a, [H_CURRENTSPRITEOFFSET]
- add $4
- ld l, a
- ld b, [hl] ; c2x4: Y pos (+4)
- ld a, [W_YCOORD] ; $d361
- cp b
- jr z, .skipYVisibilityTest
- jr nc, .spriteInvisible ; above screen region
- add $8 ; screen is 9 tiles high
- cp b
- jr c, .spriteInvisible ; below screen region
-.skipYVisibilityTest
- inc l
- ld b, [hl] ; c2x5: X pos (+4)
- ld a, [W_XCOORD] ; $d362
- cp b
- jr z, .skipXVisibilityTest
- jr nc, .spriteInvisible ; left of screen region
- add $9 ; screen is 10 tiles wide
- cp b
- jr c, .spriteInvisible ; right of screen region
-.skipXVisibilityTest
- call getTileSpriteStandsOn
- ld d, $60
- ld a, [hli]
- cp d
- jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom left tile)
- ld a, [hld]
- cp d
- jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile)
- ld bc, -20 ; $ffec
- add hl, bc ; go back one row of tiles
- ld a, [hli]
- cp d
- jr nc, .spriteInvisible ; standing on tile with ID >=$60 (top left tile)
- ld a, [hl]
- cp d
- jr c, .spriteVisible ; standing on tile with ID >=$60 (top right tile)
-.spriteInvisible
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $2
- ld l, a
- ld [hl], $ff ; c1x2
- scf
- jr .done
-.spriteVisible
- ld c, a
- ld a, [wWalkCounter] ; $cfc5
- and a
- jr nz, .done ; if player is currently walking, we're done
- call UpdateSpriteImage
- inc h
- ld a, [H_CURRENTSPRITEOFFSET]
- add $7
- ld l, a
- ld a, [W_GRASSTILE]
- cp c
- ld a, $0
- jr nz, .notInGrass
- ld a, $80
-.notInGrass
- ld [hl], a ; c2x7
- and a
-.done
- ret
-
-UpdateSpriteImage: ; 5157 (1:5157)
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $8
- ld l, a
- ld a, [hli] ; c1x8: walk animation frame
- ld b, a
- ld a, [hl] ; c1x9: facing direction
- add b
- ld b, a
- ld a, [$ff93] ; current sprite offset
- add b
- ld b, a
- ld a, [H_CURRENTSPRITEOFFSET]
- add $2
- ld l, a
- ld [hl], b ; c1x2: sprite to display
- ret
-
-; tests if sprite can walk the specified direction
-; b: direction (1,2,4 or 8)
-; c: ID of tile the sprite would walk onto
-; d: Y movement delta (-1, 0 or 1)
-; e: X movement delta (-1, 0 or 1)
-; set carry on failure, clears carry on success
-CanWalkOntoTile: ; 516e (1:516e)
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $6
- ld l, a
- ld a, [hl] ; c2x6 (movement byte 1)
- cp $fe
- jr nc, .canMove ; values $fe and $ff
- and a
- ret
-.canMove
- ld a, [W_TILESETCOLLISIONPTR]
- ld l, a
- ld a, [W_TILESETCOLLISIONPTR+1]
- ld h, a
-.tilePassableLoop
- ld a, [hli]
- cp $ff
- jr z, .impassable
- cp c
- jr nz, .tilePassableLoop
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $6
- ld l, a
- ld a, [hl] ; $c2x6 (movement byte 1)
- inc a
- jr z, .impassable ; if $ff, no movement allowed (however, changing direction is)
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $4
- ld l, a
- ld a, [hli] ; c1x4 (screen Y pos)
- add $4 ; align to blocks (Y pos is always 4 pixels off)
- add d ; add Y delta
- cp $80 ; if value is >$80, the destination is off screen (either $81 or $FF underflow)
- jr nc, .impassable ; don't walk off screen
- inc l
- ld a, [hl] ; c1x6 (screen X pos)
- add e ; add X delta
- cp $90 ; if value is >$90, the destination is off screen (either $91 or $FF underflow)
- jr nc, .impassable ; don't walk off screen
- push de
- push bc
- call Func_4c70
- pop bc
- pop de
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $c
- ld l, a
- ld a, [hl] ; c1xc (forbidden directions flags(?))
- and b ; check against chosen direction (1,2,4 or 8)
- jr nz, .impassable ; direction forbidden, don't go there
- ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $2
- ld l, a
- ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go)
- bit 7, d ; check if going upwards (d=$ff)
- jr nz, .upwards
- add d
- cp $5
- jr c, .impassable ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites
- jr .checkHorizontal ; from walking out too far, but this line makes sprites get stuck
-.upwards ; whenever they walked upwards 5 steps
- sub $1 ; on the other hand, the amount a sprite can walk out to the
- jr c, .impassable ; if d2x2 == 0, don't go ; right of bottom is not limited (until the counter overflows)
-.checkHorizontal
- ld d, a
- ld a, [hl] ; c2x3 (sprite X displacement, initialized at $8, keep track of where a sprite did go)
- bit 7, e ; check if going left (e=$ff)
- jr nz, .left
- add e
- cp $5 ; compare, but no conditional jump like in the vertical check above (bug?)
- jr .passable
-.left
- sub $1
- jr c, .impassable ; if d2x3 == 0, don't go
-.passable
- ld [hld], a ; update c2x3
- ld [hl], d ; update c2x2
- and a ; clear carry (marking success)
- ret
-.impassable
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- inc a
- ld l, a
- ld [hl], $2 ; c1x1 = 2 (set movement status to delayed)
- inc l
- inc l
- xor a
- ld [hli], a ; c1x3 = 0 (clear Y movement delta)
- inc l
- ld [hl], a ; c1x5 = 0 (clear X movement delta)
- inc h
- ld a, [H_CURRENTSPRITEOFFSET]
- add $8
- ld l, a
- call GenRandom
- ld a, [H_RAND1] ; $ffd3
- and $7f
- ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] (again with delay $100 if value is 0)
- scf ; set carry (marking failure to walk)
- ret
-
-; calculates the tile pointer pointing to the tile the current sprite stancs on
-; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to
-; hl: output pointer
-getTileSpriteStandsOn: ; 5207 (1:5207)
- ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $4
- ld l, a
- ld a, [hli] ; c1x4: screen Y position
- add $4 ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top)
- and $f0 ; in case object is currently moving
- srl a ; screen Y tile * 4
- ld c, a
- ld b, $0
- inc l
- ld a, [hl] ; c1x6: screen Y position
- srl a
- srl a
- srl a ; screen X tile
- add $14 ; screen X tile + 20
- ld d, $0
- ld e, a
- ld hl, wTileMap
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, de ; wTileMap + 20*(screen Y tile + 1) + screen X tile
- ret
-
-; loads [de+a] into a
-LoadDEPlusA: ; 522f (1:522f)
- add e
- ld e, a
- jr nc, .noCarry
- inc d
-.noCarry
- ld a, [de]
- ret
-
-Func_5236: ; 5236 (1:5236)
- ld a, [$d730]
- bit 7, a
- ret z
- ld hl, $d72e
- bit 7, [hl]
- set 7, [hl]
- jp z, Func_52a6
- ld hl, $cc97
- ld a, [$cd37]
- add l
- ld l, a
- jr nc, .asm_5251
- inc h
-.asm_5251
- ld a, [hl]
- cp $40
- jr nz, .asm_525f
- call Func_52b2
- ld c, $4
- ld a, $fe
- jr .asm_5289
-.asm_525f
- cp $0
- jr nz, .asm_526c
- call Func_52b2
- ld c, $0
- ld a, $2
- jr .asm_5289
-.asm_526c
- cp $80
- jr nz, .asm_5279
- call Func_52b7
- ld c, $8
- ld a, $fe
- jr .asm_5289
-.asm_5279
- cp $c0
- jr nz, .asm_5286
- call Func_52b7
- ld c, $c
- ld a, $2
- jr .asm_5289
-.asm_5286
- cp $ff
- ret
-.asm_5289
- ld b, a
- ld a, [hl]
- add b
- ld [hl], a
- ld a, [H_CURRENTSPRITEOFFSET]
- add $9
- ld l, a
- ld a, c
- ld [hl], a
- call Func_52c3
- ld hl, $cf18
- dec [hl]
- ret nz
- ld a, $8
- ld [$cf18], a
- ld hl, $cd37
- inc [hl]
- ret
-
-Func_52a6: ; 52a6 (1:52a6)
- xor a
- ld [$cd37], a
- ld a, $8
- ld [$cf18], a
- jp Func_52c3
-
-Func_52b2: ; 52b2 (1:52b2)
- ld a, $4
- ld b, a
- jr asm_52ba
-
-Func_52b7: ; 52b7 (1:52b7)
- ld a, $6
- ld b, a
-asm_52ba: ; 52ba (1:52ba)
- ld hl, wSpriteStateData1
- ld a, [H_CURRENTSPRITEOFFSET]
- add l
- add b
- ld l, a
- ret
-
-Func_52c3: ; 52c3 (1:52c3)
- ld hl, wSpriteStateData2
- ld a, [H_CURRENTSPRITEOFFSET]
- add $e
- ld l, a
- ld a, [hl]
- dec a
- swap a
- ld b, a
- ld hl, wSpriteStateData1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $9
- ld l, a
- ld a, [hl]
- cp $0
- jr z, .asm_52ea
- cp $4
- jr z, .asm_52ea
- cp $8
- jr z, .asm_52ea
- cp $c
- jr z, .asm_52ea
- ret
-.asm_52ea
- add b
- ld b, a
- ld [$ffe9], a
- call Func_5301
- ld hl, wSpriteStateData1
- ld a, [H_CURRENTSPRITEOFFSET]
- add $2
- ld l, a
- ld a, [$ffe9]
- ld b, a
- ld a, [$ffea]
- add b
- ld [hl], a
- ret
-
-Func_5301: ; 5301 (1:5301)
- ld a, [H_CURRENTSPRITEOFFSET]
- add $7
- ld l, a
- ld a, [hl]
- inc a
- ld [hl], a
- cp $4
- ret nz
- xor a
- ld [hl], a
- inc l
- ld a, [hl]
- inc a
- and $3
- ld [hl], a
- ld [$ffea], a
- ret
-
INCLUDE "engine/cable_club.asm"
LoadTrainerInfoTextBoxTiles: ; 5ae6 (1:5ae6)
ld de, TrainerInfoTextBoxTileGraphics ; $7b98
- ld hl, $9760
+ ld hl, vChars2 + $760
ld bc, (BANK(TrainerInfoTextBoxTileGraphics) << 8) +$09
jp CopyVideoData
@@ -11729,13 +516,12 @@
Func_62ce: ; 62ce (1:62ce)
call Func_62ff
- ld a,$19
- call Predef
- ld hl,$D732
+ predef Func_c754
+ ld hl,wd732
bit 2,[hl]
res 2,[hl]
jr z,.next
- ld a,[$D71A]
+ ld a,[wd71a]
jr .next2
.next
bit 1,[hl]
@@ -11745,12 +531,12 @@
ld a,0
.next2
ld b,a
- ld a,[$D72D]
+ ld a,[wd72d]
and a
jr nz,.next4
ld a,b
.next4
- ld hl,$D732
+ ld hl,wd732
bit 4,[hl]
ret nz
ld [wLastMap],a
@@ -11757,7 +543,7 @@
ret
Func_62ff: ; 62ff (1:62ff)
- ld a, [$d72d]
+ ld a, [wd72d]
cp BATTLE_CENTER
jr nz, .asm_6314
ld hl, BattleCenterSpec1 ; $6428
@@ -11776,7 +562,7 @@
ld hl, TradeCenterSpec2 ; $6440
jr .asm_6334
.asm_6326
- ld a, [$d732]
+ ld a, [wd732]
bit 1, a
jr nz, .asm_6346
bit 2, a
@@ -11783,7 +569,7 @@
jr nz, .asm_6346
ld hl, FirstMapSpec ; $6420
.asm_6334
- ld de, W_CURMAP ; $d35e
+ ld de, W_CURMAP ; W_CURMAP
ld c, $7
.asm_6339
ld a, [hli]
@@ -11792,12 +578,12 @@
dec c
jr nz, .asm_6339
ld a, [hli]
- ld [W_CURMAPTILESET], a ; $d367
+ ld [W_CURMAPTILESET], a ; W_CURMAPTILESET
xor a
jr .asm_63b3
.asm_6346
ld a, [wLastMap]
- ld hl, $d732
+ ld hl, wd732
bit 4, [hl]
jr nz, .asm_635b
bit 6, [hl]
@@ -11806,17 +592,17 @@
ld a, [wLastBlackoutMap]
jr .asm_6391
.asm_635b
- ld hl, $d72d
+ ld hl, wd72d
res 4, [hl]
- ld a, [$d71d]
+ ld a, [wd71d]
ld b, a
- ld [W_CURMAP], a ; $d35e
- ld a, [$d71e]
+ ld [W_CURMAP], a ; W_CURMAP
+ ld a, [wd71e]
ld c, a
ld hl, DungeonWarpList ; $63bf
ld de, $0
ld a, $6
- ld [$d12f], a
+ ld [wd12f], a
.asm_6376
ld a, [hli]
cp b
@@ -11828,7 +614,7 @@
cp c
jr z, .asm_6388
.asm_6381
- ld a, [$d12f]
+ ld a, [wd12f]
add e
ld e, a
jr .asm_6376
@@ -11837,10 +623,10 @@
add hl, de
jr .asm_63a4
.asm_638e
- ld a, [$d71a]
+ ld a, [wd71a]
.asm_6391
ld b, a
- ld [W_CURMAP], a ; $d35e
+ ld [W_CURMAP], a ; W_CURMAP
ld hl, FlyWarpDataPtr ; $6448
.asm_6398
ld a, [hli]
@@ -11855,7 +641,7 @@
ld h, [hl]
ld l, a
.asm_63a4
- ld de, $d35f
+ ld de, wd35f
ld c, $6
.asm_63a9
ld a, [hli]
@@ -11864,12 +650,12 @@
dec c
jr nz, .asm_63a9
xor a
- ld [W_CURMAPTILESET], a ; $d367
+ ld [W_CURMAPTILESET], a ; W_CURMAPTILESET
.asm_63b3
- ld [$d4e2], a
- ld [$d4e3], a
+ ld [wd4e2], a
+ ld [wd4e3], a
ld a, $ff
- ld [$d42f], a
+ ld [wd42f], a
ret
INCLUDE "data/special_warps.asm"
@@ -11889,12 +675,12 @@
ld a, [de]
cp $ff
ret z
- ld [$cf91], a
+ ld [wcf91], a
inc de
ld a, [de]
ld [W_CURENEMYLVL], a
inc de
- call AddPokemonToParty
+ call AddPartyMon
jr .loop
IshiharaTeam: ; 64df (1:64df)
@@ -11923,10 +709,9 @@
ld de,wPlayerMoney + 2
ld hl,$ffa1 ; total price of items
ld c,3 ; length of money in bytes
- ld a,$0c
- call Predef ; subtract total price from money
+ predef SubBCDPredef ; subtract total price from money
ld a,$13
- ld [$d125],a
+ ld [wd125],a
call DisplayTextBoxID ; redraw money text box
and a
ret
@@ -11936,7 +721,7 @@
cp a,ITEMLISTMENU
jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
push hl
- ld hl,$cf8b
+ ld hl,wcf8b
ld a,[hli]
ld h,[hl]
ld l,a
@@ -11953,7 +738,7 @@
pop hl
inc a
jp z,DisplayListMenuIDLoop ; ignore attempts to swap the Cancel menu item
- ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
+ ld a,[wcc35] ; ID of item chosen for swapping (counts from 1)
and a ; has the first item to swap already been chosen?
jr nz,.swapItems
; if not, set the currently selected item as the first item
@@ -11962,7 +747,7 @@
ld b,a
ld a,[wListScrollOffset] ; index of top (visible) menu item within the list
add b
- ld [$cc35],a ; ID of item chosen for swapping (counts from 1)
+ ld [wcc35],a ; ID of item chosen for swapping (counts from 1)
ld c,20
call DelayFrames
jp DisplayListMenuIDLoop
@@ -11973,16 +758,16 @@
ld a,[wListScrollOffset]
add b
ld b,a
- ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
+ ld a,[wcc35] ; ID of item chosen for swapping (counts from 1)
cp b ; is the currently selected item the same as the first item to swap?
jp z,DisplayListMenuIDLoop ; ignore attempts to swap an item with itself
dec a
- ld [$cc35],a ; ID of item chosen for swapping (counts from 1)
+ ld [wcc35],a ; ID of item chosen for swapping (counts from 1)
ld c,20
call DelayFrames
push hl
push de
- ld hl,$cf8b
+ ld hl,wcf8b
ld a,[hli]
ld h,[hl]
ld l,a
@@ -11997,7 +782,7 @@
ld c,a
ld b,0
add hl,bc ; hl = address of currently selected item entry
- ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
+ ld a,[wcc35] ; ID of item chosen for swapping (counts from 1)
add a
add e
ld e,a
@@ -12024,7 +809,7 @@
ld a,[$ff95]
ld [de],a ; put second item ID in first item slot
xor a
- ld [$cc35],a ; 0 means no item is currently being swapped
+ ld [wcc35],a ; 0 means no item is currently being swapped
pop de
pop hl
jp DisplayListMenuIDLoop
@@ -12044,13 +829,13 @@
jr .done
.combineItemSlots
ld [hl],a ; put the sum in the second item slot
- ld hl,$cf8b
+ ld hl,wcf8b
ld a,[hli]
ld h,[hl]
ld l,a
dec [hl] ; decrease the number of items
ld a,[hl]
- ld [$d12a],a ; update number of items variable
+ ld [wd12a],a ; update number of items variable
cp a,1
jr nz,.skipSettingMaxMenuItemID
ld [wMaxMenuItem],a ; if the number of items is only one now, update the max menu item ID
@@ -12076,7 +861,7 @@
ld [wCurrentMenuItem],a
.done
xor a
- ld [$cc35],a ; 0 means no item is currently being swapped
+ ld [wcc35],a ; 0 means no item is currently being swapped
pop de
pop hl
jp DisplayListMenuIDLoop
@@ -12120,8 +905,8 @@
; function that performs initialization for DisplayTextID
DisplayTextIDInit: ; 7096 (1:7096)
xor a
- ld [$cf94],a
- ld a,[$cf0c]
+ ld [wListMenuID],a
+ ld a,[wcf0c]
bit 0,a
jr nz,.skipDrawingTextBoxBorder
ld a,[$ff8c] ; text ID (or sprite ID)
@@ -12130,30 +915,27 @@
; if text ID is 0 (i.e. the start menu)
; Note that the start menu text border is also drawn in the function directly
; below this, so this seems unnecessary.
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
; start menu with pokedex
- FuncCoord 10, 0 ; $c3aa
- ld hl,Coord
+ hlCoord 10, 0
ld b,$0e
ld c,$08
jr nz,.drawTextBoxBorder
; start menu without pokedex
- FuncCoord 10, 0 ; $c3aa
- ld hl,Coord
+ hlCoord 10, 0
ld b,$0c
ld c,$08
jr .drawTextBoxBorder
; if text ID is not 0 (i.e. not the start menu) then do a standard dialogue text box
.notStartMenu
- FuncCoord 0, 12 ; $c490
- ld hl,Coord
+ hlCoord 0, 12
ld b,$04
ld c,$12
.drawTextBoxBorder
call TextBoxBorder
.skipDrawingTextBoxBorder
- ld hl,$cfc4
+ ld hl,wcfc4
set 0,[hl]
ld hl,wFlags_0xcd60
bit 4,[hl]
@@ -12164,7 +946,7 @@
; loop to copy C1X9 (direction the sprite is facing) to C2X9 for each sprite
; this is done because when you talk to an NPC, they turn to look your way
; the original direction they were facing must be restored after the dialogue is over
- ld hl,$c119
+ ld hl,wSpriteStateData1 + $19
ld c,$0f
ld de,$0010
.spriteFacingDirectionCopyLoop
@@ -12177,7 +959,7 @@
jr nz,.spriteFacingDirectionCopyLoop
; loop to force all the sprites in the middle of animation to stand still
; (so that they don't like they're frozen mid-step during the dialogue)
- ld hl,$c102
+ ld hl,wSpriteStateData1 + 2
ld de,$0010
ld c,e
.spriteStandStillLoop
@@ -12202,37 +984,34 @@
; function that displays the start menu
DrawStartMenu: ; 710b (1:710b)
- ld a,[$d74b]
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
; menu with pokedex
- FuncCoord 10, 0 ; $c3aa
- ld hl,Coord
+ hlCoord 10, 0
ld b,$0e
ld c,$08
jr nz,.drawTextBoxBorder
; shorter menu if the player doesn't have the pokedex
- FuncCoord 10, 0 ; $c3aa
- ld hl,Coord
+ hlCoord 10, 0
ld b,$0c
ld c,$08
.drawTextBoxBorder
call TextBoxBorder
ld a,%11001011 ; bit mask for down, up, start, B, and A buttons
- ld [$cc29],a
+ ld [wMenuWatchedKeys],a
ld a,$02
- ld [$cc24],a ; Y position of first menu choice
+ ld [wTopMenuItemY],a ; Y position of first menu choice
ld a,$0b
- ld [$cc25],a ; X position of first menu choice
- ld a,[$cc2d] ; remembered menu selection from last time
- ld [$cc26],a
- ld [$cc2a],a
+ ld [wTopMenuItemX],a ; X position of first menu choice
+ ld a,[wcc2d] ; remembered menu selection from last time
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
xor a
- ld [$cc37],a
- ld hl,$d730
+ ld [wcc37],a
+ ld hl,wd730
set 6,[hl] ; no pauses between printing each letter
- FuncCoord 12, 2 ; $c3d4
- ld hl,Coord
- ld a,[$d74b]
+ hlCoord 12, 2
+ ld a,[wd74b]
bit 5,a ; does the player have the pokedex?
; case for not having pokdex
ld a,$06
@@ -12242,14 +1021,14 @@
call PrintStartMenuItem
ld a,$07
.storeMenuItemCount
- ld [$cc28],a ; number of menu items
+ ld [wMaxMenuItem],a ; number of menu items
ld de,StartMenuPokemonText
call PrintStartMenuItem
ld de,StartMenuItemText
call PrintStartMenuItem
- ld de,W_PLAYERNAME ; player's name
+ ld de,wPlayerName ; player's name
call PrintStartMenuItem
- ld a,[$d72e]
+ ld a,[wd72e]
bit 6,a ; is the player using the link feature?
; case for not using link feature
ld de,StartMenuSaveText
@@ -12262,7 +1041,7 @@
call PrintStartMenuItem
ld de,StartMenuExitText
call PlaceString
- ld hl,$d730
+ ld hl,wd730
res 6,[hl] ; turn pauses between printing letters back on
ret
@@ -12299,9 +1078,9 @@
; function to draw various text boxes
; INPUT:
-; [$D125] = text box ID
+; [wd125] = text box ID
DisplayTextBoxID_: ; 72ea (1:72ea)
- ld a,[$d125] ; a = text box ID
+ ld a,[wd125] ; a = text box ID
cp a,$14
jp z,DisplayYesNoTextBox
ld c,a
@@ -12338,14 +1117,14 @@
call TextBoxBorder
pop hl
call GetTextBoxIDText
- ld a,[$d730]
+ ld a,[wd730]
push af
- ld a,[$d730]
+ ld a,[wd730]
set 6,a ; no pauses between printing each letter
- ld [$d730],a
+ ld [wd730],a
call PlaceString
pop af
- ld [$d730],a
+ ld [wd730],a
call UpdateSprites ; move sprites
ret
@@ -12568,22 +1347,20 @@
next "キャンセル@"
Func_74ba: ; 74ba (1:74ba)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld a, $f
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- FuncCoord 13, 1 ; $c3c1
- ld hl, Coord
+ hlCoord 13, 1
ld b, $1
ld c, $6
call ClearScreenArea
- FuncCoord 12, 1 ; $c3c0
- ld hl, Coord
- ld de, wPlayerMoney ; $d347
+ hlCoord 12, 1
+ ld de, wPlayerMoney ; wPlayerMoney
ld c, $a3
call PrintBCDNumber
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ret
@@ -12591,29 +1368,29 @@
db " ¥@"
Func_74ea: ; 74ea (1:74ea)
- ld a, [$d730]
+ ld a, [wd730]
set 6, a
- ld [$d730], a
+ ld [wd730], a
xor a
- ld [$d12d], a
+ ld [wd12d], a
ld a, $e
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $2
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $1
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
xor a
- ld [wCurrentMenuItem], a ; $cc26
- ld [wLastMenuItem], a ; $cc2a
- ld [$cc37], a
- ld a, [$d730]
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wcc37], a
+ ld a, [wd730]
res 6, a
- ld [$d730], a
+ ld [wd730], a
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
bit 0, a
@@ -12621,58 +1398,58 @@
bit 1, a
jr z, .asm_7539
ld a, $2
- ld [$d12e], a
+ ld [wd12e], a
jr .asm_754c
.asm_7539
ld a, $1
- ld [$d12e], a
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$d12d], a
+ ld [wd12e], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wd12d], a
ld b, a
- ld a, [wMaxMenuItem] ; $cc28
+ ld a, [wMaxMenuItem] ; wMaxMenuItem
cp b
jr z, .asm_754c
ret
.asm_754c
ld a, $2
- ld [$d12e], a
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$d12d], a
+ ld [wd12e], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wd12d], a
scf
ret
DisplayYesNoTextBox: ; 7559 (1:7559)
push hl
- ld a, [$d730]
+ ld a, [wd730]
set 6, a
- ld [$d730], a
+ ld [wd730], a
xor a
- ld [$d12d], a
- ld [$d12e], a
+ ld [wd12d], a
+ ld [wd12e], a
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
ld a, $1
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, b
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, c
- ld [wTopMenuItemX], a ; $cc25
+ ld [wTopMenuItemX], a ; wTopMenuItemX
xor a
- ld [wLastMenuItem], a ; $cc2a
- ld [$cc37], a
+ ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wcc37], a
push hl
- ld hl, $d12c
+ ld hl, wd12c
bit 7, [hl]
res 7, [hl]
jr z, .asm_758d
inc a
.asm_758d
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
pop hl
push hl
push hl
call Func_763e
- ld a, [$d12c]
+ ld a, [wd12c]
ld hl, MenuStrings ; $7671
ld e, a
ld d, $0
@@ -12689,7 +1466,7 @@
ld d, h
pop hl
push de
- ld a, [$d12c]
+ ld a, [wd12c]
cp $5
jr nz, .asm_75b9
call Func_5ab3
@@ -12712,13 +1489,13 @@
pop hl
add hl, bc
call PlaceString
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
- ld a, [$d12c]
+ ld a, [wd12c]
cp $7
jr nz, .asm_7603
xor a
- ld [$d12c], a
+ ld [wd12c], a
ld a, [wFlags_0xcd60]
push af
push hl
@@ -12738,18 +1515,18 @@
jr .asm_760f
.asm_7603
xor a
- ld [$d12c], a
+ ld [wd12c], a
call HandleMenuInput
pop hl
bit 1, a
jr nz, .asm_7627
.asm_760f
- ld a, [wCurrentMenuItem] ; $cc26
- ld [$d12d], a
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld [wd12d], a
and a
jr nz, .asm_7627
ld a, $1
- ld [$d12e], a
+ ld [wd12e], a
ld c, $f
call DelayFrames
call Func_7656
@@ -12757,10 +1534,10 @@
ret
.asm_7627
ld a, $1
- ld [wCurrentMenuItem], a ; $cc26
- ld [$d12d], a
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wd12d], a
ld a, $2
- ld [$d12e], a
+ ld [wd12e], a
ld c, $f
call DelayFrames
call Func_7656
@@ -12768,7 +1545,7 @@
ret
Func_763e: ; 763e (1:763e)
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld bc, $506
.asm_7644
ld a, [hli]
@@ -12786,7 +1563,7 @@
ret
Func_7656: ; 7656 (1:7656)
- ld de, $cee9
+ ld de, wHPBarMaxHP
ld bc, $506
.asm_765c
ld a, [de]
@@ -12839,7 +1616,7 @@
Func_76e1: ; 76e1 (1:36e1)
xor a
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld [hli], a
ld [hli], a
ld [hli], a
@@ -12847,11 +1624,10 @@
ld [hli], a
ld [hl], $c
call GetMonFieldMoves
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
and a
jr nz, .asm_770f
- FuncCoord 11, 11 ; $c487
- ld hl, Coord
+ hlCoord 11, 11
ld b, $5
ld c, $7
call TextBoxBorder
@@ -12858,15 +1634,13 @@
call UpdateSprites
ld a, $c
ld [$fff7], a
- FuncCoord 13, 12 ; $c49d
- ld hl, Coord
+ hlCoord 13, 12
ld de, PokemonMenuEntries ; $77c2
jp PlaceString
.asm_770f
push af
- FuncCoord 0, 11 ; $c47c
- ld hl, Coord
- ld a, [$cd42]
+ hlCoord 0, 11
+ ld a, [wcd42]
dec a
ld e, a
ld d, $0
@@ -12888,22 +1662,21 @@
inc b
call TextBoxBorder
call UpdateSprites
- FuncCoord 0, 12 ; $c490
- ld hl, Coord
- ld a, [$cd42]
+ hlCoord 0, 12
+ ld a, [wcd42]
inc a
ld e, a
ld d, $0
add hl, de
ld de, $ffd8
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
.asm_7747
add hl, de
dec a
jr nz, .asm_7747
xor a
- ld [$cd41], a
- ld de, wWhichTrade ; $cd3d
+ ld [wTrainerScreenX], a
+ ld de, wWhichTrade ; wWhichTrade
.asm_7752
push hl
ld hl, FieldMoveNames ; $778d
@@ -12934,11 +1707,10 @@
jr .asm_7752
.asm_7776
pop hl
- ld a, [$cd42]
+ ld a, [wcd42]
ld [$fff7], a
- FuncCoord 0, 12 ; $c490
- ld hl, Coord
- ld a, [$cd42]
+ hlCoord 0, 12
+ ld a, [wcd42]
inc a
ld e, a
ld d, $0
@@ -12963,14 +1735,14 @@
next "CANCEL@"
GetMonFieldMoves: ; 77d6 (1:77d6)
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1_MOVE1 ; $d173
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMon1Moves ; wPartyMon1Moves
ld bc, $2c
call AddNTimes
ld d, h
ld e, l
ld c, $5
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
.asm_77e9
push hl
.asm_77ea
@@ -12993,21 +1765,21 @@
jr .asm_77f6
.asm_7802
ld a, b
- ld [$cd43], a
+ ld [wcd43], a
ld a, [hli]
ld b, [hl]
pop hl
ld [hli], a
- ld a, [$cd41]
+ ld a, [wTrainerScreenX]
inc a
- ld [$cd41], a
- ld a, [$cd42]
+ ld [wTrainerScreenX], a
+ ld a, [wcd42]
cp b
jr c, .asm_781b
ld a, b
- ld [$cd42], a
+ ld [wcd42], a
.asm_781b
- ld a, [$cd43]
+ ld a, [wcd43]
ld b, a
jr .asm_77e9
.asm_7821
@@ -13038,16 +1810,16 @@
INCLUDE "engine/menu/players_pc.asm"
_RemovePokemon: ; 7b68 (1:7b68)
- ld hl, W_NUMINPARTY ; $d163
- ld a, [$cf95]
+ ld hl, wPartyCount ; wPartyCount
+ ld a, [wcf95]
and a
jr z, .asm_7b74
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
.asm_7b74
ld a, [hl]
dec a
ld [hli], a
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
ld c, a
ld b, $0
add hl, bc
@@ -13060,17 +1832,17 @@
ld [hli], a
inc a
jr nz, .asm_7b81
- ld hl, W_PARTYMON1OT ; $d273
+ ld hl, wPartyMonOT ; wd273
ld d, $5
- ld a, [$cf95]
+ ld a, [wcf95]
and a
jr z, .asm_7b97
- ld hl, W_BOXMON1OT
+ ld hl, wBoxMonOT
ld d, $13
.asm_7b97
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call SkipFixedLengthTextEntries
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
cp d
jr nz, .asm_7ba6
ld [hl], $ff
@@ -13080,136 +1852,84 @@
ld e, l
ld bc, $b
add hl, bc
- ld bc, W_PARTYMON1NAME ; $d2b5
- ld a, [$cf95]
+ ld bc, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wcf95]
and a
jr z, .asm_7bb8
- ld bc, W_BOXMON1NAME
+ ld bc, wBoxMonNicks
.asm_7bb8
call CopyDataUntil
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- ld bc, $2c
- ld a, [$cf95]
+ ld hl, wPartyMons
+ ld bc, wPartyMon2 - wPartyMon1
+ ld a, [wcf95]
and a
jr z, .asm_7bcd
- ld hl, W_BOXMON1DATA
- ld bc, $21
+ ld hl, wBoxMons
+ ld bc, wBoxMon2 - wBoxMon1
.asm_7bcd
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
ld d, h
ld e, l
- ld a, [$cf95]
+ ld a, [wcf95]
and a
jr z, .asm_7be4
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
add hl, bc
- ld bc, W_BOXMON1OT
+ ld bc, wBoxMonOT
jr .asm_7beb
.asm_7be4
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
add hl, bc
- ld bc, W_PARTYMON1OT ; $d273
+ ld bc, wPartyMonOT ; wd273
.asm_7beb
call CopyDataUntil
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [$cf95]
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wcf95]
and a
jr z, .asm_7bfa
- ld hl, W_BOXMON1NAME
+ ld hl, wBoxMonNicks
.asm_7bfa
ld bc, $b
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
ld d, h
ld e, l
ld bc, $b
add hl, bc
- ld bc, wPokedexOwned ; $d2f7
- ld a, [$cf95]
+ ld bc, wPokedexOwned ; wPokedexOwned
+ ld a, [wcf95]
and a
jr z, .asm_7c15
- ld bc, $dee2
+ ld bc, wBoxMonNicksEnd
.asm_7c15
jp CopyDataUntil
Func_7c18: ; 7c18 (1:7c18)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
- ld a, $3d
- call Predef
- ld hl, $d730
+ predef ShowPokedexData
+ ld hl, wd730
res 6, [hl]
call ReloadMapData
ld c, $a
call DelayFrames
- ld a, $3a
- call Predef
- ld a, [$d11e]
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
ld hl, wPokedexSeen
- ld a, $10
- call Predef
+ predef FlagActionPredef
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ret
SECTION "bank3",ROMX,BANK[$3]
-_GetJoypadState: ; c000 (3:4000)
- ld a, [H_JOYPADSTATE]
- cp BTN_A | BTN_B | BTN_SELECT | BTN_START ; soft reset sequence
- jp z, HandleJoypadResetButtons
- ld b, a
- ld a, [H_OLDPRESSEDBUTTONS]
- ld e, a
- xor b
- ld d, a
- and e
- ld [H_NEWLYRELEASEDBUTTONS], a
- ld a, d
- and b
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld a, b
- ld [H_OLDPRESSEDBUTTONS], a
- ld a, [$d730]
- bit 5, a
- jr nz, DiscardButtonPresses
- ld a, [H_OLDPRESSEDBUTTONS]
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [wJoypadForbiddenButtonsMask]
- and a
- ret z
- cpl
- ld b, a
- ld a, [H_CURRENTPRESSEDBUTTONS]
- and b
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [H_NEWLYPRESSEDBUTTONS]
- and b
- ld [H_NEWLYPRESSEDBUTTONS], a
- ret
+INCLUDE "engine/joypad.asm"
-; clears all button presses
-DiscardButtonPresses: ; c034 (3:4034)
- xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_NEWLYRELEASEDBUTTONS], a
- ret
-
-HandleJoypadResetButtons: ; c03c (3:403c)
- call DelayFrame
- ld a, $30
- ld [rJOYP], a ; reset joypad state (to enusre the user really intends to reset)
- ld hl, H_SOFTRESETCOUNTER
- dec [hl]
- jp z, SoftReset
- jp GetJoypadState
-
INCLUDE "data/map_songs.asm"
INCLUDE "data/map_header_banks.asm"
@@ -13220,41 +1940,41 @@
ld [rWY], a ; $ff4a
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld [$d13b], a
- ld [W_LONEATTACKNO], a ; $d05c
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_NEWLYRELEASEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$cd6a], a
- ld [$d5a3], a
- ld hl, $d73f
+ ld [wd13b], a
+ ld [W_LONEATTACKNO], a ; W_GYMLEADERNO
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
+ ld [hJoyHeld], a
+ ld [wcd6a], a
+ ld [wd5a3], a
+ ld hl, wd73f
ld [hli], a
ld [hl], a
- ld hl, wWhichTrade ; $cd3d
+ ld hl, wWhichTrade ; wWhichTrade
ld bc, $1e
call FillMemory
ret
Func_c35f: ; c35f (3:435f)
- ld a, [$d3ae]
+ ld a, [wd3ae]
and a
ret z
ld c, a
- ld hl, $d3af
+ ld hl, wd3af
.asm_c368
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
cp [hl]
jr nz, .asm_c383
inc hl
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
cp [hl]
jr nz, .asm_c384
inc hl
ld a, [hli]
- ld [$d42f], a
+ ld [wd42f], a
ld a, [hl]
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld hl, $d736
+ ld hl, wd736
set 2, [hl]
ret
.asm_c383
@@ -13268,7 +1988,7 @@
ret
CheckForceBikeOrSurf: ; c38b (3:438b)
- ld hl, $D732
+ ld hl, wd732
bit 5, [hl]
ret nz
ld hl, ForcedBikeOrSurfMaps
@@ -13301,11 +2021,11 @@
ld [W_SEAFOAMISLANDS5CURSCRIPT], a
jr z, .forceSurfing
;force bike riding
- ld hl, $d732
+ ld hl, wd732
set 5, [hl]
ld a, $1
- ld [$d700], a
- ld [$d11a], a
+ ld [wd700], a
+ ld [wd11a], a
jp ForceBikeOrSurf
.incorrectMap
inc hl
@@ -13314,8 +2034,8 @@
jr .loop
.forceSurfing
ld a, $2
- ld [$d700], a
- ld [$d11a], a
+ ld [wd700], a
+ ld [wd11a], a
jp ForceBikeOrSurf
INCLUDE "data/force_bike_surf.asm"
@@ -13324,7 +2044,7 @@
push hl
push de
push bc
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
srl a
ld c, a
ld b, $0
@@ -13333,9 +2053,9 @@
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld b, a
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld c, a
ld de, .asm_c41e ; $441e
push de
@@ -13353,7 +2073,7 @@
dw .asm_4440
.asm_c42a
- ld a, [W_CURMAPHEIGHT] ; $d368
+ ld a, [W_CURMAPHEIGHT] ; wd368
add a
dec a
cp b
@@ -13373,7 +2093,7 @@
jr .resetCarry
.asm_4440
- ld a, [W_CURMAPWIDTH] ; $d369
+ ld a, [W_CURMAPWIDTH] ; wd369
add a
dec a
cp c
@@ -13391,10 +2111,10 @@
push de
push bc
call Func_c589
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp SS_ANNE_5
jr z, .ssAnne5
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
srl a
ld c, a
ld b, $0
@@ -13403,7 +2123,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [$cfc6]
+ ld a, [wcfc6]
ld de, $1
call IsInArray
.asm_c473
@@ -13431,7 +2151,7 @@
db $0F,$4E,$FF
.ssAnne5
- ld a, [$cfc6]
+ ld a, [wcfc6]
cp $15
jr nz, .asm_c49a
scf
@@ -13446,7 +2166,7 @@
push bc
callba HandleDoors
jr c, .asm_c4c8
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
add a
ld c, a
ld b, $0
@@ -13456,11 +2176,10 @@
ld h, [hl]
ld l, a
ld de, $1
- FuncCoord 8, 9 ; $c45c
- ld a, [Coord]
+ aCoord 8, 9
call IsInArray
jr nc, .asm_c4c8
- ld hl, $d736
+ ld hl, wd736
res 2, [hl]
.asm_c4c8
pop bc
@@ -13471,7 +2190,7 @@
INCLUDE "data/warp_tile_ids.asm"
PrintSafariZoneSteps: ; c52f (3:452f)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp SAFARI_ZONE_EAST
ret c
cp UNKNOWN_DUNGEON_2
@@ -13480,30 +2199,25 @@
ld b, $3
ld c, $7
call TextBoxBorder
- FuncCoord 1, 1 ; $c3b5
- ld hl, Coord
- ld de, wSafariSteps ; $d70d
+ hlCoord 1, 1
+ ld de, wSafariSteps ; wd70d
ld bc, $203
call PrintNumber
- FuncCoord 4, 1 ; $c3b8
- ld hl, Coord
+ hlCoord 4, 1
ld de, SafariSteps ; $4579
call PlaceString
- FuncCoord 1, 3 ; $c3dd
- ld hl, Coord
+ hlCoord 1, 3
ld de, SafariBallText
call PlaceString
- ld a, [W_NUMSAFARIBALLS] ; $da47
+ ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
cp $a
jr nc, .asm_c56d
- FuncCoord 5, 3 ; $c3e1
- ld hl, Coord
+ hlCoord 5, 3
ld a, $7f
ld [hl], a
.asm_c56d
- FuncCoord 6, 3 ; $c3e2
- ld hl, Coord
- ld de, W_NUMSAFARIBALLS ; $da47
+ hlCoord 6, 3
+ ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS
ld bc, $102
jp PrintNumber
@@ -13514,59 +2228,54 @@
db "BALL×× @"
Func_c586: ; c586 (3:4586)
- call Load16BitRegisters
+ call GetPredefRegisters
Func_c589: ; c589 (3:4589)
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld d, a
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld e, a
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr nz, .asm_c59d
- FuncCoord 8, 11 ; $c484
- ld a, [Coord]
+ aCoord 8, 11
inc d
jr .asm_c5b9
.asm_c59d
cp $4
jr nz, .asm_c5a7
- FuncCoord 8, 7 ; $c434
- ld a, [Coord]
+ aCoord 8, 7
dec d
jr .asm_c5b9
.asm_c5a7
cp $8
jr nz, .asm_c5b1
- FuncCoord 6, 9 ; $c45a
- ld a, [Coord]
+ aCoord 6, 9
dec e
jr .asm_c5b9
.asm_c5b1
cp $c
jr nz, .asm_c5b9
- FuncCoord 10, 9 ; $c45e
- ld a, [Coord]
+ aCoord 10, 9
inc e
.asm_c5b9
ld c, a
- ld [$cfc6], a
+ ld [wcfc6], a
ret
Func_c5be: ; c5be (3:45be)
xor a
ld [$ffdb], a
- ld hl, W_YCOORD ; $d361
+ ld hl, W_YCOORD ; wd361
ld a, [hli]
ld d, a
ld e, [hl]
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr nz, .asm_c5d8
ld hl, $ffdb
set 0, [hl]
- FuncCoord 8, 13 ; $c4ac
- ld a, [Coord]
+ aCoord 8, 13
inc d
jr .asm_c603
.asm_c5d8
@@ -13574,8 +2283,7 @@
jr nz, .asm_c5e7
ld hl, $ffdb
set 1, [hl]
- FuncCoord 8, 5 ; $c40c
- ld a, [Coord]
+ aCoord 8, 5
dec d
jr .asm_c603
.asm_c5e7
@@ -13583,8 +2291,7 @@
jr nz, .asm_c5f6
ld hl, $ffdb
set 2, [hl]
- FuncCoord 4, 9 ; $c458
- ld a, [Coord]
+ aCoord 4, 9
dec e
jr .asm_c603
.asm_c5f6
@@ -13592,18 +2299,17 @@
jr nz, .asm_c603
ld hl, $ffdb
set 3, [hl]
- FuncCoord 12, 9 ; $c460
- ld a, [Coord]
+ aCoord 12, 9
inc e
.asm_c603
ld c, a
- ld [$d71c], a
- ld [$cfc6], a
+ ld [wd71c], a
+ ld [wcfc6], a
ret
Func_c60b: ; c60b (3:460b)
call Func_c5be
- ld hl, $d530
+ ld hl, W_TILESETCOLLISIONPTR
ld a, [hli]
ld h, [hl]
ld l, a
@@ -13617,31 +2323,31 @@
call Func_c44
ld a, $ff
jr c, .asm_c632
- ld a, [$d71c]
+ ld a, [wd71c]
cp $15
ld a, $ff
jr z, .asm_c632
call Func_c636
.asm_c632
- ld [$d71c], a
+ ld [wd71c], a
ret
Func_c636: ; c636 (3:4636)
- ld a, [$d718]
+ ld a, [wd718]
dec a
swap a
ld d, $0
ld e, a
- ld hl, $c214
+ ld hl, wSpriteStateData2 + $14
add hl, de
ld a, [hli]
ld [$ffdc], a
ld a, [hl]
ld [$ffdd], a
- ld a, [W_NUMSPRITES] ; $d4e1
+ ld a, [W_NUMSPRITES] ; W_NUMSPRITES
ld c, a
ld de, $f
- ld hl, $c214
+ ld hl, wSpriteStateData2 + $14
ld a, [$ffdb]
and $3
jr z, .asm_c678
@@ -13702,19 +2408,19 @@
ret
Func_c69c: ; c69c (3:469c)
- ld a, [$d730]
+ ld a, [wd730]
add a
jp c, .asm_c74f
- ld a, [W_NUMINPARTY] ; $d163
+ ld a, [wPartyCount] ; wPartyCount
and a
jp z, .asm_c74f
call Func_c8de
- ld a, [$d13b]
+ ld a, [wd13b]
and $3
jp nz, .asm_c74f
- ld [wWhichPokemon], a ; $cf92
- ld hl, W_PARTYMON1_STATUS ; $d16f
- ld de, W_PARTYMON1 ; $d164
+ ld [wWhichPokemon], a ; wWhichPokemon
+ ld hl, wPartyMon1Status ; wPartyMon1Status
+ ld de, wPartySpecies ; wPartySpecies
.asm_c6be
ld a, [hl]
and $8
@@ -13743,13 +2449,13 @@
inc hl
ld [hl], a
ld a, [de]
- ld [$d11e], a
+ ld [wd11e], a
push de
- ld a, [wWhichPokemon] ; $cf92
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld a, [wWhichPokemon] ; wWhichPokemon
+ ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call EnableAutoTextBoxDrawing
ld a, $d0
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
@@ -13767,13 +2473,13 @@
ld bc, $2c
add hl, bc
push hl
- ld hl, wWhichPokemon ; $cf92
+ ld hl, wWhichPokemon ; wWhichPokemon
inc [hl]
pop hl
jr .asm_c6be
.asm_c70e
- ld hl, W_PARTYMON1_STATUS ; $d16f
- ld a, [W_NUMINPARTY] ; $d163
+ ld hl, wPartyMon1Status ; wPartyMon1Status
+ ld a, [wPartyCount] ; wPartyCount
ld d, a
ld e, $0
.asm_c717
@@ -13789,13 +2495,11 @@
and a
jr z, .asm_c733
ld b, $2
- ld a, $1f
- call Predef ; indirect jump to Func_480eb (480eb (12:40eb))
+ predef Func_480eb
ld a, (SFX_02_43 - SFX_Headers_02) / 3
call PlaySound
.asm_c733
- ld a, $14
- call Predef ; indirect jump to AnyPlayerPokemonAliveCheck (3ca83 (f:4a83))
+ predef AnyPartyAlive
ld a, d
and a
jr nz, .asm_c74f
@@ -13803,7 +2507,7 @@
ld a, $d1
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d72e
+ ld hl, wd72e
set 5, [hl]
ld a, $ff
jr .asm_c750
@@ -13810,14 +2514,14 @@
.asm_c74f
xor a
.asm_c750
- ld [$d12d], a
+ ld [wd12d], a
ret
Func_c754: ; c754 (3:4754)
- call Load16BitRegisters
+ call GetPredefRegisters
push hl
ld d, $0
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
add a
add a
ld b, a
@@ -13829,7 +2533,7 @@
ld e, a
ld hl, Tilesets
add hl, de
- ld de, $d52b
+ ld de, W_TILESETBANK
ld c, $b
.asm_c76f
ld a, [hli]
@@ -13842,7 +2546,7 @@
xor a
ld [$ffd8], a
pop hl
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
push hl
push de
ld hl, DungeonTilesets ; $47b2
@@ -13851,22 +2555,22 @@
pop de
pop hl
jr c, .asm_c797
- ld a, [W_CURMAPTILESET] ; $d367
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
ld b, a
ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
cp b
jr z, .asm_c7b1
.asm_c797
- ld a, [$d42f]
+ ld a, [wd42f]
cp $ff
jr z, .asm_c7b1
call LoadDestinationWarpPosition
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
and $1
- ld [W_YBLOCKCOORD], a ; $d363
- ld a, [W_XCOORD] ; $d362
+ ld [W_YBLOCKCOORD], a ; wd363
+ ld a, [W_XCOORD] ; wd362
and $1
- ld [W_XBLOCKCOORD], a ; $d364
+ ld [W_XBLOCKCOORD], a ; wd364
.asm_c7b1
ret
@@ -13878,7 +2582,7 @@
ld a, [W_DAYCARE_IN_USE]
and a
ret z
- ld hl, $da6f
+ ld hl, wDayCareMonExp + 2
inc [hl]
ret nz
dec hl
@@ -13895,8 +2599,8 @@
INCLUDE "data/hide_show_data.asm"
-PrintUsedStrengthText: ; cd99 (3:4d99)
- ld hl, $d728
+PrintStrengthTxt: ; cd99 (3:4d99)
+ ld hl, wd728
set 0, [hl]
ld hl, UsedStrengthText
call PrintText
@@ -13906,7 +2610,7 @@
UsedStrengthText: ; cdaa (3:4daa)
TX_FAR _UsedStrengthText
db $08 ; asm
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry
call Delay3
jp TextScriptEnd
@@ -13916,15 +2620,15 @@
db "@"
CheckForForcedBikeSurf: ; cdc0 (3:4dc0)
- ld hl, $d728
+ ld hl, wd728
set 1, [hl]
- ld a, [$d732]
+ ld a, [wd732]
bit 5, a
jr nz, .asm_cdec
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp SEAFOAM_ISLANDS_5
ret nz
- ld a, [$d881]
+ ld a, [wd881]
and $3
cp $3
ret z
@@ -13931,12 +2635,12 @@
ld hl, CoordsData_cdf7 ; $4df7
call ArePlayerCoordsInArray
ret nc
- ld hl, $d728
+ ld hl, wd728
res 1, [hl]
ld hl, CurrentTooFastText
jp PrintText
.asm_cdec
- ld hl, $d728
+ ld hl, wd728
res 1, [hl]
ld hl, CyclingIsFunText
jp PrintText
@@ -13955,11 +2659,11 @@
; function to add an item (in varying quantities) to the player's bag or PC box
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$CF91] = item ID
-; [$CF96] = item quantity
+; [wcf91] = item ID
+; [wcf96] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
AddItemToInventory_: ; ce04 (3:4e04)
- ld a,[$cf96] ; a = item quantity
+ ld a,[wcf96] ; a = item quantity
push af
push bc
push de
@@ -13984,7 +2688,7 @@
.loop
ld a,[hli]
ld b,a ; b = ID of current item in table
- ld a,[$cf91] ; a = ID of item being added
+ ld a,[wcf91] ; a = ID of item being added
cp b ; does the current item in the table match the item being added?
jp z,.increaseItemQuantity ; if so, increase the item's quantity
inc hl
@@ -14004,14 +2708,14 @@
ld c,a
ld b,0
add hl,bc ; hl = address to store the item
- ld a,[$cf91]
+ ld a,[wcf91]
ld [hli],a ; store item ID
- ld a,[$cf96]
+ ld a,[wcf96]
ld [hli],a ; store item quantity
ld [hl],$ff ; store terminator
jp .success
.increaseItemQuantity ; increase the quantity of an item already in the inventory
- ld a,[$cf96]
+ ld a,[wcf96]
ld b,a ; b = quantity to add
ld a,[hl] ; a = existing item quantity
add b ; a = new item quantity
@@ -14020,7 +2724,7 @@
; if the new quantity is greater than or equal to 100,
; try to max out the current slot and add the rest in a new slot
sub a,99
- ld [$cf96],a ; a = amount left over (to put in the new slot)
+ ld [wcf96],a ; a = amount left over (to put in the new slot)
ld a,d
and a ; is there room for a new item slot?
jr z,.increaseItemQuantityFailed
@@ -14043,14 +2747,14 @@
pop bc
pop bc
ld a,b
- ld [$cf96],a ; restore the initial value from when the function was called
+ ld [wcf96],a ; restore the initial value from when the function was called
ret
; function to remove an item (in varying quantities) from the player's bag or PC box
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
-; [$CF92] = index (within the inventory) of the item to remove
-; [$CF96] = quantity to remove
+; [wWhichPokemon] = index (within the inventory) of the item to remove
+; [wcf96] = quantity to remove
RemoveItemFromInventory_: ; ce74 (3:4e74)
push hl
inc hl
@@ -14062,12 +2766,12 @@
inc h
.noCarry
inc hl
- ld a,[$cf96] ; quantity being removed
+ ld a,[wcf96] ; quantity being removed
ld e,a
ld a,[hl] ; a = current quantity
sub e
ld [hld],a ; store new quantity
- ld [$cf97],a
+ ld [wcf97],a
and a
jr nz,.skipMovingUpSlots
; if the remaining quantity is 0,
@@ -14087,13 +2791,13 @@
xor a
ld [wListScrollOffset],a
ld [wCurrentMenuItem],a
- ld [$cc2c],a
- ld [$d07e],a
+ ld [wcc2c],a
+ ld [wd07e],a
pop hl
ld a,[hl] ; a = number of items in inventory
dec a ; decrement the number of items
ld [hl],a ; store new number of items
- ld [$d12a],a
+ ld [wd12a],a
cp a,2
jr c,.done
ld [wMaxMenuItem],a
@@ -14149,20 +2853,20 @@
; Instead of removing relevant code, the name graphics were erased.
; Tile ids for face/badge graphics.
- ld de, $cd3f
+ ld de, wTrainerFacingDirection
ld hl, .FaceBadgeTiles
ld bc, 8
call CopyData
; Booleans for each badge.
- ld hl, $cd49
+ ld hl, wcd49
ld bc, 8
xor a
call FillMemory
; Alter these based on owned badges.
- ld de, $cd49
- ld hl, $cd3f
+ ld de, wcd49
+ ld hl, wTrainerFacingDirection
ld a, [W_OBTAINEDBADGES]
ld b, a
ld c, 8
@@ -14181,19 +2885,17 @@
jr nz, .CheckBadge
; Draw two rows of badges.
- ld hl, $cd3d
+ ld hl, wWhichTrade
ld a, $d8 ; [1]
ld [hli], a
ld [hl], $60 ; First name
- FuncCoord 2, 11
- ld hl, Coord
- ld de, $cd49
+ hlCoord 2, 11
+ ld de, wcd49
call .DrawBadgeRow
- FuncCoord 2, 14
- ld hl, Coord
- ld de, $cd49 + 4
+ hlCoord 2, 14
+ ld de, wcd49 + 4
; call .DrawBadgeRow
; ret
@@ -14206,15 +2908,15 @@
push hl
; Badge no.
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
ld [hli], a
inc a
- ld [$cd3d], a
+ ld [wWhichTrade], a
; Names aren't printed if the badge is owned.
ld a, [de]
and a
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
jr nz, .SkipName
call .PlaceTiles
jr .PlaceBadge
@@ -14225,10 +2927,10 @@
inc hl
.PlaceBadge
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld de, 20 - 1
add hl, de
- ld a, [$cd3f]
+ ld a, [wTrainerFacingDirection]
call .PlaceTiles
add hl, de
call .PlaceTiles
@@ -14235,8 +2937,8 @@
; Shift badge array back one byte.
push bc
- ld hl, $cd3f + 1
- ld de, $cd3f
+ ld hl, wTrainerFacingDirection + 1
+ ld de, wTrainerFacingDirection
ld bc, 8
call CopyData
pop bc
@@ -14262,12 +2964,12 @@
db $20, $28, $30, $38, $40, $48, $50, $58
GymLeaderFaceAndBadgeTileGraphics: ; ea9e (3:6a9e)
- INCBIN "gfx/badges.w16.2bpp"
+ INCBIN "gfx/badges.2bpp"
Func_ee9e: ; ee9e (3:6e9e)
- call Load16BitRegisters
- ld hl, $c6e8
- ld a, [W_CURMAPWIDTH] ; $d369
+ call GetPredefRegisters
+ ld hl, wOverworldMap
+ ld a, [W_CURMAPWIDTH] ; wd369
add $6
ld e, a
ld d, $0
@@ -14286,11 +2988,11 @@
jr nz, .asm_eeb7
.asm_eebb
add hl, bc
- ld a, [$d09f]
+ ld a, [wd09f]
ld [hl], a
- ld a, [$d35f]
+ ld a, [wd35f]
ld c, a
- ld a, [$d360]
+ ld a, [wd360]
ld b, a
call Func_ef4e
ret c
@@ -14308,7 +3010,7 @@
ret c
Func_eedc: ; eedc (3:6edc)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
inc a
ret z
ld a, [H_AUTOBGTRANSFERENABLED] ; $ffba
@@ -14320,7 +3022,7 @@
ld [$ffd7], a
call LoadCurrentMapView
call GoPAL_SET_CF1C
- ld hl, $d526
+ ld hl, wd526
ld a, [hli]
ld h, [hl]
ld l, a
@@ -14330,9 +3032,9 @@
and $3
or $98
ld a, l
- ld [$cee9], a
+ ld [wHPBarMaxHP], a
ld a, h
- ld [$ceea], a
+ ld [wHPBarMaxHP + 1], a
ld a, $2
ld [$ffbe], a
ld c, $9
@@ -14340,7 +3042,7 @@
push bc
push hl
push hl
- ld hl, $c378
+ ld hl, wOAMBuffer + $78
ld de, $14
ld a, [$ffbe]
.asm_ef1a
@@ -14389,17 +3091,16 @@
INCLUDE "engine/overworld/cut.asm"
Func_f113: ; f113 (3:7113)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
cp ROUTE_1
jr nc, .notInTown
ld c, a
ld b, $1
ld hl, W_TOWNVISITEDFLAG ; mark town as visited (for flying)
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
.notInTown
ld hl, MapHSPointers
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
ld b, $0
ld c, a
add hl, bc
@@ -14431,7 +3132,7 @@
ld [H_DIVISOR], a
ld b, $2
call Divide ; divide difference by 3, resulting in the global offset (number of missable items before ours)
- ld a, [W_CURMAP] ; $d35e
+ ld a, [W_CURMAP] ; W_CURMAP
ld b, a
ld a, [H_DIVIDEND+3]
ld c, a ; store global offset in c
@@ -14464,7 +3165,7 @@
call FillMemory ; clear missable objects flags
ld hl, MapHS00
xor a
- ld [$d048], a
+ ld [wd048], a
.missableObjectsLoop
ld a, [hli]
cp $ff ; end of list
@@ -14475,12 +3176,12 @@
cp Hide
jr nz, .asm_f19d
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [$d048]
+ ld a, [wd048]
ld c, a
ld b, $1
- call HandleBitArray2 ; set flag iff Item is hidden
+ call MissableObjectFlagAction ; set flag iff Item is hidden
.asm_f19d
- ld hl, $d048
+ ld hl, wd048
inc [hl]
pop hl
inc hl
@@ -14488,7 +3189,7 @@
jr .missableObjectsLoop
; tests if current sprite is a missable object that is hidden/has been removed
-IsMissableObjectHidden: ; f1a6 (3:71a6)
+IsObjectHidden: ; f1a6 (3:71a6)
ld a, [H_CURRENTSPRITEOFFSET]
swap a
ld b, a
@@ -14503,7 +3204,7 @@
ld c, a
ld b, $2
ld hl, W_MISSABLEOBJECTFLAGS
- call HandleBitArray2
+ call MissableObjectFlagAction
ld a, c
and a
jr nz, .hidden
@@ -14514,69 +3215,75 @@
ret
; adds missable object (items, leg. pokemon, etc.) to the map
-; [$cc4d]: index of the missable object to be added (global index)
-AddMissableObject: ; f1c8 (3:71c8)
+; [wcc4d]: index of the missable object to be added (global index)
+ShowObject: ; f1c8 (3:71c8)
+ShowObject2:
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [$cc4d]
+ ld a, [wcc4d]
ld c, a
ld b, $0
- call HandleBitArray2 ; reset "removed" flag
+ call MissableObjectFlagAction ; reset "removed" flag
jp UpdateSprites
; removes missable object (items, leg. pokemon, etc.) from the map
-; [$cc4d]: index of the missable object to be removed (global index)
-RemoveMissableObject: ; f1d7 (3:71d7)
+; [wcc4d]: index of the missable object to be removed (global index)
+HideObject: ; f1d7 (3:71d7)
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [$cc4d]
+ ld a, [wcc4d]
ld c, a
ld b, $1
- call HandleBitArray2 ; set "removed" flag
+ call MissableObjectFlagAction ; set "removed" flag
jp UpdateSprites
-; functionally identical to _HandleBitArray, but with less optimized instructions
-; executes operations on a field of bits
-; b = 0 -> reset bit
-; b = 1 -> set bit
-; b = 2 -> read bit (into c and z-flag)
-; hl: base address
-; c: bit index
-HandleBitArray2: ; f1e6 (3:71e6)
+MissableObjectFlagAction:
+; identical to FlagAction
+
push hl
push de
push bc
+
+ ; bit
ld a, c
ld d, a
- and $7
- ld e, a ; store bit offset in e
+ and 7
+ ld e, a
+
+ ; byte
ld a, d
srl a
srl a
- srl a ; calc byte offset
+ srl a
add l
ld l, a
- jr nc, .noCarry
+ jr nc, .ok
inc h
-.noCarry
+.ok
+
+ ; d = 1 << e (bitmask)
inc e
- ld d, $1
-.shiftLeftLoop ; d = 1 << e, bitmask for the used bit
+ ld d, 1
+.shift
dec e
- jr z, .operationSelect
+ jr z, .shifted
sla d
- jr .shiftLeftLoop
-.operationSelect
+ jr .shift
+.shifted
+
ld a, b
and a
- jr z, .resetBit
- cp $2
- jr z, .readBit
- ld a, [hl] ; set bit
+ jr z, .reset
+ cp 2
+ jr z, .read
+
+.set
+ ld a, [hl]
ld b, a
ld a, d
or b
ld [hl], a
jr .done
-.resetBit
+
+.reset
ld a, [hl]
ld b, a
ld a, d
@@ -14584,11 +3291,13 @@
and b
ld [hl], a
jr .done
-.readBit
+
+.read
ld a, [hl]
ld b, a
ld a, d
and b
+
.done
pop bc
pop de
@@ -14597,7 +3306,7 @@
ret
Func_f225: ; f225 (3:7225)
- ld a, [$d728]
+ ld a, [wd728]
bit 0, a
ret z
ld a, [wFlags_0xcd60]
@@ -14607,10 +3316,10 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call IsSpriteInFrontOfPlayer
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- ld [$d718], a
+ ld [wd718], a
and a
jp z, Func_f2dd
- ld hl, $c101
+ ld hl, wSpriteStateData1 + 1
ld d, $0
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
swap a
@@ -14625,17 +3334,16 @@
bit 6, [hl]
set 6, [hl]
ret z
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
and $f0
ret z
- ld a, $5a
- call Predef ; indirect jump to Func_c60b (c60b (3:460b))
- ld a, [$d71c]
+ predef Func_c60b
+ ld a, [wd71c]
and a
jp nz, Func_f2dd
- ld a, [H_CURRENTPRESSEDBUTTONS]
+ ld a, [hJoyHeld]
ld b, a
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jr z, .asm_f289
cp $8
@@ -14681,15 +3389,15 @@
db $C0,$FF
Func_f2b5: ; f2b5 (3:72b5)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
callab Func_79f54
call DiscardButtonPresses
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call Func_f2dd
set 7, [hl]
- ld a, [$d718]
+ ld a, [wd718]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call GetSpriteMovementByte2Pointer
ld [hl], $10
@@ -14702,12 +3410,12 @@
res 6, [hl]
ret
-_AddPokemonToParty: ; f2e5 (3:72e5)
- ld de, W_NUMINPARTY ; $d163
- ld a, [$cc49]
+_AddPartyMon: ; f2e5 (3:72e5)
+ ld de, wPartyCount ; wPartyCount
+ ld a, [wcc49]
and $f
jr z, .asm_f2f2
- ld de, wEnemyPartyCount ; $d89c
+ ld de, wEnemyPartyCount ; wEnemyPartyCount
.asm_f2f2
ld a, [de]
inc a
@@ -14721,16 +3429,16 @@
jr nc, .asm_f300
inc d
.asm_f300
- ld a, [$cf91]
+ ld a, [wcf91]
ld [de], a
inc de
ld a, $ff
ld [de], a
- ld hl, W_PARTYMON1OT ; $d273
- ld a, [$cc49]
+ ld hl, wPartyMonOT ; wd273
+ ld a, [wcc49]
and $f
jr z, .asm_f315
- ld hl, W_ENEMYMON1OT
+ ld hl, wEnemyMonOT
.asm_f315
ld a, [$ffe4]
dec a
@@ -14737,36 +3445,35 @@
call SkipFixedLengthTextEntries
ld d, h
ld e, l
- ld hl, W_PLAYERNAME ; $d158
+ ld hl, wPlayerName ; wd158
ld bc, $b
call CopyData
- ld a, [$cc49]
+ ld a, [wcc49]
and a
jr nz, .asm_f33f
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
ld a, [$ffe4]
dec a
call SkipFixedLengthTextEntries
ld a, $2
- ld [$d07d], a
- ld a, $4e
- call Predef ; indirect jump to Func_64eb (64eb (1:64eb))
+ ld [wd07d], a
+ predef AskName
.asm_f33f
- ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
- ld a, [$cc49]
+ ld hl, wPartyMons
+ ld a, [wcc49]
and $f
jr z, .asm_f34c
- ld hl, wEnemyMons ; $d8a4
+ ld hl, wEnemyMons
.asm_f34c
ld a, [$ffe4]
dec a
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld e, l
ld d, h
push hl
- ld a, [$cf91]
- ld [$d0b5], a
+ ld a, [wcf91]
+ ld [wd0b5], a
call GetMonHeader
ld hl, W_MONHEADER
ld a, [hli]
@@ -14774,42 +3481,41 @@
inc de
pop hl
push hl
- ld a, [$cc49]
+ ld a, [wcc49]
and $f
ld a, $98 ; set enemy trainer mon IVs to fixed average values
ld b, $88
jr nz, .writeFreshMonData
- ld a, [$cf91]
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [wd11e], a
push de
- ld a, $3a
- call Predef ; indirect jump to IndexToPokedex (41010 (10:5010))
+ predef IndexToPokedex
pop de
- ld a, [$d11e]
+ ld a, [wd11e]
dec a
ld c, a
ld b, $2
- ld hl, wPokedexOwned ; $d2f7
- call _HandleBitArray
+ ld hl, wPokedexOwned ; wPokedexOwned
+ call FlagAction
ld a, c
- ld [$d153], a
- ld a, [$d11e]
+ ld [wd153], a
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
push bc
- call _HandleBitArray
+ call FlagAction
pop bc
- ld hl, wPokedexSeen ; $d30a
- call _HandleBitArray
+ ld hl, wPokedexSeen ; wd30a
+ call FlagAction
pop hl
push hl
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
and a
jr nz, .copyEnemyMonData
- call GenRandom ; generate random IVs
+ call Random ; generate random IVs
ld b, a
- call GenRandom
+ call Random
.writeFreshMonData ; f3b3
push bc
ld bc, $1b
@@ -14839,20 +3545,20 @@
.copyEnemyMonData
ld bc, $1b
add hl, bc
- ld a, [W_ENEMYMONATKDEFIV] ; copy IVs from cur enemy mon
+ ld a, [wEnemyMonDVs] ; copy IVs from cur enemy mon
ld [hli], a
- ld a, [W_ENEMYMONSPDSPCIV]
+ ld a, [wEnemyMonDVs + 1]
ld [hl], a
- ld a, [W_ENEMYMONCURHP] ; copy HP from cur enemy mon
+ ld a, [wEnemyMonHP] ; copy HP from cur enemy mon
ld [de], a
inc de
- ld a, [W_ENEMYMONCURHP+1]
+ ld a, [wEnemyMonHP+1]
ld [de], a
inc de
xor a
ld [de], a ; level (?)
inc de
- ld a, [W_ENEMYMONSTATUS] ; copy status ailments from cur enemy mon
+ ld a, [wEnemyMonStatus] ; copy status ailments from cur enemy mon
ld [de], a
inc de
.copyMonTypesAndMoves
@@ -14884,9 +3590,8 @@
dec de
dec de
xor a
- ld [$cee9], a
- ld a, $3e
- call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8))
+ ld [wHPBarMaxHP], a
+ predef WriteMonMoves
pop de
ld a, [wPlayerID] ; set trainer ID to player ID
inc de
@@ -14918,15 +3623,15 @@
inc de
inc de
pop hl
- call AddPokemonToParty_WriteMovePP
+ call AddPartyMon_WriteMovePP
inc de
- ld a, [W_CURENEMYLVL] ; $d127
+ ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
ld [de], a
inc de
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .calcFreshStats
- ld hl, W_ENEMYMONMAXHP ; $cff4
+ ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
ld bc, $a
call CopyData ; copy stats of cur enemy mon
pop hl
@@ -14942,9 +3647,9 @@
ret
LoadMovePPs: ; f473 (3:7473)
- call Load16BitRegisters
+ call GetPredefRegisters
; fallthrough
-AddPokemonToParty_WriteMovePP: ; f476 (3:7476)
+AddPartyMon_WriteMovePP: ; f476 (3:7476)
ld b, $4
.pploop
ld a, [hli] ; read move ID
@@ -14957,13 +3662,13 @@
ld hl, Moves
ld bc, $6
call AddNTimes
- ld de, $cd6d
+ ld de, wcd6d
ld a, BANK(Moves)
call FarCopyData
pop bc
pop de
pop hl
- ld a, [$cd72] ; sixth move byte = pp
+ ld a, [wcd72] ; sixth move byte = pp
.empty
inc de
ld [de], a
@@ -14971,10 +3676,10 @@
jr nz, .pploop ; there are still moves to read
ret
-; adds enemy mon [$cf91] (at position [$cf92] in enemy list) to own party
+; adds enemy mon [wcf91] (at position [wWhichPokemon] in enemy list) to own party
; used in the cable club trade center
_AddEnemyMonToPlayerParty: ; f49d (3:749d)
- ld hl, W_NUMINPARTY
+ ld hl, wPartyCount
ld a, [hl]
cp $6
scf
@@ -14984,73 +3689,72 @@
ld c, a
ld b, $0
add hl, bc
- ld a, [$cf91]
+ ld a, [wcf91]
ld [hli], a ; add mon as last list entry
ld [hl], $ff ; write new sentinel
- ld hl, W_PARTYMON1DATA
- ld a, [W_NUMINPARTY]
+ ld hl, wPartyMons
+ ld a, [wPartyCount]
dec a
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld e, l
ld d, h
- ld hl, $cf98
- call CopyData ; write new mon's data (from $cf98)
- ld hl, W_PARTYMON1OT
- ld a, [W_NUMINPARTY]
+ ld hl, wcf98
+ call CopyData ; write new mon's data (from wcf98)
+ ld hl, wPartyMonOT
+ ld a, [wPartyCount]
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
- ld hl, W_ENEMYMON1OT
+ ld hl, wEnemyMonOT
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
ld bc, $000b
call CopyData ; write new mon's OT name (from an enemy mon)
- ld hl, W_PARTYMON1NAME
- ld a, [W_NUMINPARTY]
+ ld hl, wPartyMonNicks
+ ld a, [wPartyCount]
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
- ld hl, W_ENEMYMON1NAME
+ ld hl, wEnemyMonNicks
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
ld bc, $000b
call CopyData ; write new mon's nickname (from an enemy mon)
- ld a, [$cf91]
- ld [$d11e], a
- ld a, $3a
- call Predef
- ld a, [$d11e]
+ ld a, [wcf91]
+ ld [wd11e], a
+ predef IndexToPokedex
+ ld a, [wd11e]
dec a
ld c, a
ld b, $1
ld hl, wPokedexOwned
push bc
- call _HandleBitArray ; add to owned pokemon
+ call FlagAction ; add to owned pokemon
pop bc
ld hl, wPokedexSeen
- call _HandleBitArray ; add to seen pokemon
+ call FlagAction ; add to seen pokemon
and a
ret ; return success
Func_f51e: ; f51e (3:751e)
- ld a, [$cf95]
+ ld a, [wcf95]
and a
jr z, .checkPartyMonSlots
cp $2
jr z, .checkPartyMonSlots
cp $3
- ld hl, W_DAYCAREMONDATA
+ ld hl, wDayCareMon
jr z, .asm_f575
- ld hl, W_NUMINBOX ; $da80
+ ld hl, W_NUMINBOX ; wda80
ld a, [hl]
cp $14
jr nz, .partyOrBoxNotFull
jr .boxFull
.checkPartyMonSlots
- ld hl, W_NUMINPARTY ; $d163
+ ld hl, wPartyCount ; wPartyCount
ld a, [hl]
cp $6
jr nz, .partyOrBoxNotFull
@@ -15063,23 +3767,23 @@
ld c, a
ld b, $0
add hl, bc
- ld a, [$cf95]
+ ld a, [wcf95]
cp $2
- ld a, [W_DAYCAREMONDATA]
+ ld a, [wDayCareMon]
jr z, .asm_f556
- ld a, [$cf91]
+ ld a, [wcf91]
.asm_f556
ld [hli], a ; write new mon ID
ld [hl], $ff ; write new sentinel
- ld a, [$cf95]
+ ld a, [wcf95]
dec a
- ld hl, W_PARTYMON1DATA ; $d16b
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA ; $2c
- ld a, [W_NUMINPARTY] ; $d163
+ ld hl, wPartyMons
+ ld bc, wPartyMon2 - wPartyMon1 ; $2c
+ ld a, [wPartyCount] ; wPartyCount
jr nz, .skipToNewMonEntry
- ld hl, W_BOXMON1DATA
- ld bc, W_BOXMON2DATA - W_BOXMON1DATA ; $21
- ld a, [W_NUMINBOX] ; $da80
+ ld hl, wBoxMons
+ ld bc, wBoxMon2 - wBoxMon1 ; $21
+ ld a, [W_NUMINBOX] ; wda80
.skipToNewMonEntry
dec a
call AddNTimes
@@ -15087,32 +3791,32 @@
push hl
ld e, l
ld d, h
- ld a, [$cf95]
+ ld a, [wcf95]
and a
- ld hl, W_BOXMON1DATA
- ld bc, W_BOXMON2DATA - W_BOXMON1DATA ; $21
+ ld hl, wBoxMons
+ ld bc, wBoxMon2 - wBoxMon1 ; $21
jr z, .asm_f591
cp $2
- ld hl, W_DAYCAREMONDATA
+ ld hl, wDayCareMon
jr z, .asm_f597
- ld hl, W_PARTYMON1DATA ; $d16b
- ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA ; $2c
+ ld hl, wPartyMons
+ ld bc, wPartyMon2 - wPartyMon1 ; $2c
.asm_f591
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call AddNTimes
.asm_f597
push hl
push de
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
call CopyData
pop de
pop hl
- ld a, [$cf95]
+ ld a, [wcf95]
and a
jr z, .asm_f5b4
cp $2
jr z, .asm_f5b4
- ld bc, $21
+ ld bc, wBoxMon2 - wBoxMon1
add hl, bc
ld a, [hl]
inc de
@@ -15120,16 +3824,16 @@
inc de
ld [de], a
.asm_f5b4
- ld a, [$cf95]
+ ld a, [wcf95]
cp $3
ld de, W_DAYCAREMONOT
jr z, .asm_f5d3
dec a
- ld hl, W_PARTYMON1OT ; $d273
- ld a, [W_NUMINPARTY] ; $d163
+ ld hl, wPartyMonOT ; wd273
+ ld a, [wPartyCount] ; wPartyCount
jr nz, .asm_f5cd
- ld hl, W_BOXMON1OT
- ld a, [W_NUMINBOX] ; $da80
+ ld hl, wBoxMonOT
+ ld a, [W_NUMINBOX] ; wda80
.asm_f5cd
dec a
call SkipFixedLengthTextEntries
@@ -15136,30 +3840,30 @@
ld d, h
ld e, l
.asm_f5d3
- ld hl, W_BOXMON1OT
- ld a, [$cf95]
+ ld hl, wBoxMonOT
+ ld a, [wcf95]
and a
jr z, .asm_f5e6
ld hl, W_DAYCAREMONOT
cp $2
jr z, .asm_f5ec
- ld hl, W_PARTYMON1OT ; $d273
+ ld hl, wPartyMonOT ; wd273
.asm_f5e6
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call SkipFixedLengthTextEntries
.asm_f5ec
ld bc, $b
call CopyData
- ld a, [$cf95]
+ ld a, [wcf95]
cp $3
ld de, W_DAYCAREMONNAME
jr z, .asm_f611
dec a
- ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [W_NUMINPARTY] ; $d163
+ ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld a, [wPartyCount] ; wPartyCount
jr nz, .asm_f60b
- ld hl, W_BOXMON1NAME
- ld a, [W_NUMINBOX] ; $da80
+ ld hl, wBoxMonNicks
+ ld a, [W_NUMINBOX] ; wda80
.asm_f60b
dec a
call SkipFixedLengthTextEntries
@@ -15166,22 +3870,22 @@
ld d, h
ld e, l
.asm_f611
- ld hl, W_BOXMON1NAME
- ld a, [$cf95]
+ ld hl, wBoxMonNicks
+ ld a, [wcf95]
and a
jr z, .asm_f624
ld hl, W_DAYCAREMONNAME
cp $2
jr z, .asm_f62a
- ld hl, W_PARTYMON1NAME ; $d2b5
+ ld hl, wPartyMonNicks ; wPartyMonNicks
.asm_f624
- ld a, [wWhichPokemon] ; $cf92
+ ld a, [wWhichPokemon] ; wWhichPokemon
call SkipFixedLengthTextEntries
.asm_f62a
ld bc, $b
call CopyData
pop hl
- ld a, [$cf95]
+ ld a, [wcf95]
cp $1
jr z, .asm_f664
cp $3
@@ -15189,11 +3893,11 @@
push hl
srl a
add $2
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
callba Func_58f43
ld a, d
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
pop hl
ld bc, $21
add hl, bc
@@ -15208,52 +3912,63 @@
and a
ret
-; predef $10
-; executes operations on a field of bits
-; b = 0 -> reset bit
-; b = 1 -> set bit
-; b = 2 -> read bit (into c and z-flag)
-; hl: base address
-; c: bit index
-HandleBitArray: ; f666 (3:7666)
- call Load16BitRegisters
-_HandleBitArray: ; f669 (3:7669)
+FlagActionPredef:
+ call GetPredefRegisters
+
+FlagAction:
+; Perform action b on bit c
+; in the bitfield at hl.
+; 0: reset
+; 1: set
+; 2: read
+; Return the result in c.
+
push hl
push de
push bc
+
+ ; bit
ld a, c
ld d, a
- and $7
- ld e, a ; store bit offset in e
+ and 7
+ ld e, a
+
+ ; byte
ld a, d
srl a
srl a
- srl a ; calc byte offset
+ srl a
add l
ld l, a
- jr nc, .noCarry
+ jr nc, .ok
inc h
-.noCarry
+.ok
+
+ ; d = 1 << e (bitmask)
inc e
- ld d, $1
-.shiftLeftLoop ; d = 1 << e, bitmask for the used bit
+ ld d, 1
+.shift
dec e
- jr z, .operationSelect
+ jr z, .shifted
sla d
- jr .shiftLeftLoop
-.operationSelect
+ jr .shift
+.shifted
+
ld a, b
and a
- jr z, .resetBit
- cp $2
- jr z, .readBit
- ld b, [hl] ; set bit
+ jr z, .reset
+ cp 2
+ jr z, .read
+
+.set
+ ld b, [hl]
ld a, d
or b
ld [hl], a
jr .done
-.resetBit
+
+.reset
ld b, [hl]
ld a, d
xor $ff
@@ -15260,7 +3975,8 @@
and b
ld [hl], a
jr .done
-.readBit
+
+.read
ld b, [hl]
ld a, d
and b
@@ -15271,43 +3987,55 @@
ld c, a
ret
-HealParty: ; f6a5 (3:76a5)
- ld hl, W_PARTYMON1
- ld de, W_PARTYMON1_HP
-.HealPokemon: ; f6ab (3:76ab)
+
+HealParty:
+; Restore HP and PP.
+
+ ld hl, wPartySpecies
+ ld de, wPartyMon1HP
+.healmon
ld a, [hli]
cp $ff
- jr z, .DoneHealing ; End if there's no Pokémon
+ jr z, .done
+
push hl
push de
- ld hl, $0003 ; Status offset
+
+ ld hl, wPartyMon1Status - wPartyMon1HP
add hl, de
xor a
- ld [hl], a ; Clean status conditions
+ ld [hl], a
+
push de
- ld b, $4 ; A Pokémon has 4 moves
-.RestorePP: ; f6bb (3:76bb)
- ld hl, $0007 ; Move offset
+ ld b, NUM_MOVES ; A Pokémon has 4 moves
+.pp
+ ld hl, wPartyMon1Moves - wPartyMon1HP
add hl, de
+
ld a, [hl]
and a
- jr z, .HealNext ; Skip if there's no move here
+ jr z, .nextmove
+
dec a
- ld hl, $001c ; PP offset
+ ld hl, wPartyMon1PP - wPartyMon1HP
add hl, de
+
push hl
push de
push bc
+
ld hl, Moves
ld bc, $0006
call AddNTimes
- ld de, $cd6d
+ ld de, wcd6d
ld a, BANK(Moves)
- call FarCopyData ; copy move header to memory
- ld a, [$cd72] ; get default PP
+ call FarCopyData
+ ld a, [wcd72] ; default pp
+
pop bc
pop de
pop hl
+
inc de
push bc
ld b, a
@@ -15316,21 +4044,25 @@
add b
ld [hl], a
pop bc
-.HealNext: ; f6eb (3:76eb)
+
+.nextmove
dec b
- jr nz, .RestorePP ; Continue if there's still moves
+ jr nz, .pp
pop de
- ld hl, $0021 ; Max HP offset
+
+ ld hl, wPartyMon1MaxHP - wPartyMon1HP
add hl, de
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
- ld [de], a ; Restore full HP
+ ld [de], a
+
pop de
pop hl
+
push hl
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
ld h, d
ld l, e
add hl, bc
@@ -15337,14 +4069,16 @@
ld d, h
ld e, l
pop hl
- jr .HealPokemon ; Next Pokémon
-.DoneHealing
+ jr .healmon
+
+.done
xor a
ld [wWhichPokemon], a
- ld [$d11e], a
- ld a, [W_NUMINPARTY]
+ ld [wd11e], a
+
+ ld a, [wPartyCount]
ld b, a
-.restoreBonusPPLoop ; loop to restore bonus PP from PP Ups
+.ppup
push bc
call RestoreBonusPP
pop bc
@@ -15351,15 +4085,17 @@
ld hl, wWhichPokemon
inc [hl]
dec b
- jr nz,.restoreBonusPPLoop
+ jr nz, .ppup
ret
-; predef $9
-; predef $a
-; predef $d
-; predef $e
-Func_f71e: ; f71e (3:771e)
- call Load16BitRegisters
+
+DivideBCDPredef::
+DivideBCDPredef2::
+DivideBCDPredef3::
+DivideBCDPredef4::
+ call GetPredefRegisters
+
+DivideBCD::
xor a
ld [$ffa5], a
ld [$ffa6], a
@@ -15507,15 +4243,18 @@
ld de, $ffa1
ld hl, $ffa4
push bc
- call Func_f839
+ call SubBCD
pop bc
jr .asm_f803
-Func_f81d: ; f81d (3:781d)
- call Load16BitRegisters
+
+AddBCDPredef::
+ call GetPredefRegisters
+
+AddBCD::
and a
ld b, c
-.asm_f822
+.add
ld a, [de]
adc [hl]
daa
@@ -15523,25 +4262,26 @@
dec de
dec hl
dec c
- jr nz, .asm_f822
- jr nc, .asm_f835
+ jr nz, .add
+ jr nc, .done
ld a, $99
inc de
-.asm_f830
+.fill
ld [de], a
inc de
dec b
- jr nz, .asm_f830
-.asm_f835
+ jr nz, .fill
+.done
ret
-Func_f836: ; f836 (3:7836)
- call Load16BitRegisters
-Func_f839: ; f839 (3:7839)
+SubBCDPredef::
+ call GetPredefRegisters
+
+SubBCD::
and a
ld b, c
-.asm_f83b
+.sub
ld a, [de]
sbc [hl]
daa
@@ -15549,66 +4289,80 @@
dec de
dec hl
dec c
- jr nz, .asm_f83b
- jr nc, .asm_f84f
- ld a, $0
+ jr nz, .sub
+ jr nc, .done
+ ld a, $00
inc de
-.asm_f849
+.fill
ld [de], a
inc de
dec b
- jr nz, .asm_f849
+ jr nz, .fill
scf
-.asm_f84f
+.done
ret
-InitializePlayerData: ; f850 (3:7850)
- call GenRandom
- ld a, [H_RAND2]
- ld [wPlayerID], a ; set player trainer id
- call GenRandom
- ld a, [H_RAND1]
+
+InitPlayerData:
+InitPlayerData2:
+
+ call Random
+ ld a, [hRandomSub]
+ ld [wPlayerID], a
+
+ call Random
+ ld a, [hRandomAdd]
ld [wPlayerID + 1], a
+
ld a, $ff
- ld [$d71b], a ; XXX what's this?
- ld hl, W_NUMINPARTY ; $d163
- call InitializeEmptyList ; no party mons
- ld hl, W_NUMINBOX ; $da80
- call InitializeEmptyList ; no boxed mons
- ld hl, wNumBagItems ; $d31d
- call InitializeEmptyList ; no items
- ld hl, wNumBoxItems ; $d53a
- call InitializeEmptyList ; no boxed items
- ld hl, wPlayerMoney + 1 ; $d348
- ld a, $30
- ld [hld], a ; set money to 00 30 00 (3000)
+ ld [wd71b], a ; XXX what's this?
+
+ ld hl, wPartyCount
+ call InitializeEmptyList
+ ld hl, W_NUMINBOX
+ call InitializeEmptyList
+ ld hl, wNumBagItems
+ call InitializeEmptyList
+ ld hl, wNumBoxItems
+ call InitializeEmptyList
+
+START_MONEY EQU $3000
+ ld hl, wPlayerMoney + 1
+ ld a, START_MONEY / $100
+ ld [hld], a
xor a
ld [hli], a
inc hl
ld [hl], a
- ld [$cc49], a ; XXX what's this?
+
+ ld [wcc49], a
+
ld hl, W_OBTAINEDBADGES
- ld [hli], a ; no badges obtained
- ld [hl], a ; XXX what's this?
- ld hl, wPlayerCoins ; $d5a4
- ld [hli], a ; no coins
+ ld [hli], a
+
ld [hl], a
- ld hl, W_GAMEPROGRESSFLAGS ; $d5f0
+
+ ld hl, wPlayerCoins
+ ld [hli], a
+ ld [hl], a
+
+ ld hl, W_GAMEPROGRESSFLAGS
ld bc, $c8
- call FillMemory ; clear all game progress flags
+ call FillMemory ; clear all game progress flags
+
jp InitializeMissableObjectsFlags
-; writes two bytes $00 $ff to hl
-InitializeEmptyList: ; f8a0 (3:78a0)
- xor a
+InitializeEmptyList:
+ xor a ; count
ld [hli], a
- dec a
+ dec a ; terminator
ld [hl], a
ret
+
IsItemInBag_: ; f8a5 (3:78a5)
- call Load16BitRegisters
- ld hl, wNumBagItems ; $d31d
+ call GetPredefRegisters
+ ld hl, wNumBagItems ; wNumBagItems
.asm_f8ab
inc hl
ld a, [hli]
@@ -15630,7 +4384,7 @@
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, $cc97
+ ld hl, wcc97
ld de, $0
Func_f8c8: ; f8c8 (3:78c8)
@@ -15700,9 +4454,9 @@
Func_f929: ; f929 (3:7929)
xor a
ld [$ff9d], a
- ld a, [$c104]
+ ld a, [wSpriteStateData1 + 4]
ld d, a
- ld a, [$c106]
+ ld a, [wSpriteStateData1 + 6]
ld e, a
ld hl, wSpriteStateData1
ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
@@ -15774,10 +4528,10 @@
Func_f9a0: ; f9a0 (3:79a0)
ld a, [$ff95]
- ld [$cd37], a
+ ld [wcd37], a
dec a
- ld de, $ccd3
- ld hl, $cc97
+ ld de, wccd3
+ ld hl, wcc97
add l
ld l, a
jr nc, .asm_f9b1
@@ -15821,394 +4575,236 @@
INCLUDE "engine/hidden_object_functions3.asm"
-SECTION "bank4",ROMX,BANK[$4]
-OakAideSprite: ; 10000 (4:4000)
- INCBIN "gfx/sprites/oak_aide.2bpp"
-RockerSprite: ; 10180 (4:4180)
- INCBIN "gfx/sprites/rocker.2bpp"
-SwimmerSprite: ; 10300 (4:4300)
- INCBIN "gfx/sprites/swimmer.2bpp"
-WhitePlayerSprite: ; 10480 (4:4480)
- INCBIN "gfx/sprites/white_player.2bpp"
-GymHelperSprite: ; 10540 (4:4540)
- INCBIN "gfx/sprites/gym_helper.2bpp"
-OldPersonSprite: ; 10600 (4:4600)
- INCBIN "gfx/sprites/old_person.2bpp"
-MartGuySprite: ; 106c0 (4:46c0)
- INCBIN "gfx/sprites/mart_guy.2bpp"
-FisherSprite: ; 10780 (4:4780)
- INCBIN "gfx/sprites/fisher.2bpp"
-OldMediumWomanSprite: ; 10840 (4:4840)
- INCBIN "gfx/sprites/old_medium_woman.2bpp"
-NurseSprite: ; 10900 (4:4900)
- INCBIN "gfx/sprites/nurse.2bpp"
-CableClubWomanSprite: ; 109c0 (4:49c0)
- INCBIN "gfx/sprites/cable_club_woman.2bpp"
-MrMasterballSprite: ; 10a80 (4:4a80)
- INCBIN "gfx/sprites/mr_masterball.2bpp"
-LaprasGiverSprite: ; 10b40 (4:4b40)
- INCBIN "gfx/sprites/lapras_giver.2bpp"
-WardenSprite: ; 10c00 (4:4c00)
- INCBIN "gfx/sprites/warden.2bpp"
-SsCaptainSprite: ; 10cc0 (4:4cc0)
- INCBIN "gfx/sprites/ss_captain.2bpp"
-Fisher2Sprite: ; 10d80 (4:4d80)
- INCBIN "gfx/sprites/fisher2.2bpp"
-BlackbeltSprite: ; 10f00 (4:4f00)
- INCBIN "gfx/sprites/blackbelt.2bpp"
-GuardSprite: ; 11080 (4:5080)
- INCBIN "gfx/sprites/guard.2bpp"
-BallSprite: ; 11140 (4:5140)
- INCBIN "gfx/sprites/ball.2bpp"
-OmanyteSprite: ; 11180 (4:5180)
- INCBIN "gfx/sprites/omanyte.2bpp"
-BoulderSprite: ; 111c0 (4:51c0)
- INCBIN "gfx/sprites/boulder.2bpp"
-PaperSheetSprite: ; 11200 (4:5200)
- INCBIN "gfx/sprites/paper_sheet.2bpp"
-BookMapDexSprite: ; 11240 (4:5240)
- INCBIN "gfx/sprites/book_map_dex.2bpp"
-ClipboardSprite: ; 11280 (4:5280)
- INCBIN "gfx/sprites/clipboard.2bpp"
-SnorlaxSprite: ; 112c0 (4:52c0)
- INCBIN "gfx/sprites/snorlax.2bpp"
-OldAmberSprite: ; 11300 (4:5300)
- INCBIN "gfx/sprites/old_amber.2bpp"
-LyingOldManSprite: ; 11340 (4:5340)
- INCBIN "gfx/sprites/lying_old_man.2bpp"
+SECTION "NPC Sprites 1", ROMX, BANK[NPC_SPRITES_1]
-PokemonLogoGraphics: ; 11380 (4:5380)
- INCBIN "gfx/pokemon_logo.w128.2bpp"
+OakAideSprite: INCBIN "gfx/sprites/oak_aide.2bpp"
+RockerSprite: INCBIN "gfx/sprites/rocker.2bpp"
+SwimmerSprite: INCBIN "gfx/sprites/swimmer.2bpp"
+WhitePlayerSprite: INCBIN "gfx/sprites/white_player.2bpp"
+GymHelperSprite: INCBIN "gfx/sprites/gym_helper.2bpp"
+OldPersonSprite: INCBIN "gfx/sprites/old_person.2bpp"
+MartGuySprite: INCBIN "gfx/sprites/mart_guy.2bpp"
+FisherSprite: INCBIN "gfx/sprites/fisher.2bpp"
+OldMediumWomanSprite: INCBIN "gfx/sprites/old_medium_woman.2bpp"
+NurseSprite: INCBIN "gfx/sprites/nurse.2bpp"
+CableClubWomanSprite: INCBIN "gfx/sprites/cable_club_woman.2bpp"
+MrMasterballSprite: INCBIN "gfx/sprites/mr_masterball.2bpp"
+LaprasGiverSprite: INCBIN "gfx/sprites/lapras_giver.2bpp"
+WardenSprite: INCBIN "gfx/sprites/warden.2bpp"
+SsCaptainSprite: INCBIN "gfx/sprites/ss_captain.2bpp"
+Fisher2Sprite: INCBIN "gfx/sprites/fisher2.2bpp"
+BlackbeltSprite: INCBIN "gfx/sprites/blackbelt.2bpp"
+GuardSprite: INCBIN "gfx/sprites/guard.2bpp"
+BallSprite: INCBIN "gfx/sprites/ball.2bpp"
+OmanyteSprite: INCBIN "gfx/sprites/omanyte.2bpp"
+BoulderSprite: INCBIN "gfx/sprites/boulder.2bpp"
+PaperSheetSprite: INCBIN "gfx/sprites/paper_sheet.2bpp"
+BookMapDexSprite: INCBIN "gfx/sprites/book_map_dex.2bpp"
+ClipboardSprite: INCBIN "gfx/sprites/clipboard.2bpp"
+SnorlaxSprite: INCBIN "gfx/sprites/snorlax.2bpp"
+OldAmberSprite: INCBIN "gfx/sprites/old_amber.2bpp"
+LyingOldManSprite: INCBIN "gfx/sprites/lying_old_man.2bpp"
-FontGraphics: ; 11a80 (4:5a80)
- INCBIN "gfx/font.w128.1bpp"
-ABTiles: ; 11e80 (4:5e80)
- INCBIN "gfx/AB.2bpp"
+SECTION "Graphics", ROMX, BANK[GFX]
-HpBarAndStatusGraphics: ; 11ea0 (4:5ea0)
- INCBIN "gfx/hp_bar_and_status.2bpp"
+PokemonLogoGraphics: INCBIN "gfx/pokemon_logo.2bpp"
+FontGraphics: INCBIN "gfx/font.1bpp"
+ABTiles: INCBIN "gfx/AB.2bpp"
+HpBarAndStatusGraphics: INCBIN "gfx/hp_bar_and_status.2bpp"
+BattleHudTiles1: INCBIN "gfx/battle_hud1.1bpp"
+BattleHudTiles2: INCBIN "gfx/battle_hud2.1bpp"
+BattleHudTiles3: INCBIN "gfx/battle_hud3.1bpp"
+NintendoCopyrightLogoGraphics: INCBIN "gfx/copyright.2bpp"
+GamefreakLogoGraphics: INCBIN "gfx/gamefreak.2bpp"
+TextBoxGraphics: INCBIN "gfx/text_box.2bpp"
+PokedexTileGraphics: INCBIN "gfx/pokedex.2bpp"
+WorldMapTileGraphics: INCBIN "gfx/town_map.2bpp"
+PlayerCharacterTitleGraphics: INCBIN "gfx/player_title.2bpp"
-BattleHudTiles1: ; 12080 (4:6080)
- INCBIN "gfx/battle_hud1.1bpp"
-BattleHudTiles2: ; 12098 (4:6098)
- INCBIN "gfx/battle_hud2.1bpp"
+SECTION "Battle (bank 4)", ROMX, BANK[$4]
-BattleHudTiles3: ; 120b0 (4:60b0)
- INCBIN "gfx/battle_hud3.1bpp"
-
-NintendoCopyrightLogoGraphics: ; 120c8 (4:60c8)
- INCBIN "gfx/copyright.h8.2bpp"
-
-GamefreakLogoGraphics: ; 121f8 (4:61f8)
- INCBIN "gfx/gamefreak.h8.2bpp"
-
-TextBoxGraphics: ; 12288 (4:6288)
- INCBIN "gfx/text_box.2bpp"
-
-PokedexTileGraphics: ; 12488 (4:6488)
- INCBIN "gfx/pokedex.2bpp"
-
-WorldMapTileGraphics: ; 125a8 (4:65a8)
- INCBIN "gfx/town_map.2bpp"
-
-PlayerCharacterTitleGraphics: ; 126a8 (4:66a8)
- INCBIN "gfx/player_title.2bpp"
-
INCLUDE "engine/battle/4.asm"
-
INCLUDE "engine/menu/status_screen.asm"
-
INCLUDE "engine/menu/party_menu.asm"
-RedPicFront: ; 12ede (4:6ede)
- INCBIN "pic/trainer/red.pic"
-ShrinkPic1: ; 12fe8 (4:6fe8)
- INCBIN "pic/trainer/shrink1.pic"
-ShrinkPic2: ; 13042 (4:7042)
- INCBIN "pic/trainer/shrink2.pic"
+RedPicFront:: INCBIN "pic/trainer/red.pic"
+ShrinkPic1:: INCBIN "pic/trainer/shrink1.pic"
+ShrinkPic2:: INCBIN "pic/trainer/shrink2.pic"
INCLUDE "engine/turn_sprite.asm"
-
INCLUDE "engine/menu/start_sub_menus.asm"
-
INCLUDE "engine/items/tms.asm"
-
INCLUDE "engine/battle/4_2.asm"
+INCLUDE "engine/random.asm"
-INCLUDE "engine/rng.asm"
-SECTION "bank5",ROMX,BANK[$5]
+SECTION "NPC Sprites 2", ROMX, BANK[NPC_SPRITES_2]
-RedCyclingSprite: ; 14000 (5:4000)
- INCBIN "gfx/sprites/cycling.2bpp"
-RedSprite: ; 14180 (5:4180)
- INCBIN "gfx/sprites/red.2bpp"
-BlueSprite: ; 14300 (5:4300)
- INCBIN "gfx/sprites/blue.2bpp"
-OakSprite: ; 14480 (5:4480)
- INCBIN "gfx/sprites/oak.2bpp"
-BugCatcherSprite: ; 14600 (5:4600)
- INCBIN "gfx/sprites/bug_catcher.2bpp"
-SlowbroSprite: ; 14780 (5:4780)
- INCBIN "gfx/sprites/slowbro.2bpp"
-LassSprite: ; 14900 (5:4900)
- INCBIN "gfx/sprites/lass.2bpp"
-BlackHairBoy1Sprite: ; 14a80 (5:4a80)
- INCBIN "gfx/sprites/black_hair_boy_1.2bpp"
-LittleGirlSprite: ; 14c00 (5:4c00)
- INCBIN "gfx/sprites/little_girl.2bpp"
-BirdSprite: ; 14d80 (5:4d80)
- INCBIN "gfx/sprites/bird.2bpp"
-FatBaldGuySprite: ; 14f00 (5:4f00)
- INCBIN "gfx/sprites/fat_bald_guy.2bpp"
-GamblerSprite: ; 15080 (5:5080)
- INCBIN "gfx/sprites/gambler.2bpp"
-BlackHairBoy2Sprite: ; 15200 (5:5200)
- INCBIN "gfx/sprites/black_hair_boy_2.2bpp"
-GirlSprite: ; 15380 (5:5380)
- INCBIN "gfx/sprites/girl.2bpp"
-HikerSprite: ; 15500 (5:5500)
- INCBIN "gfx/sprites/hiker.2bpp"
-FoulardWomanSprite: ; 15680 (5:5680)
- INCBIN "gfx/sprites/foulard_woman.2bpp"
-GentlemanSprite: ; 15800 (5:5800)
- INCBIN "gfx/sprites/gentleman.2bpp"
-DaisySprite: ; 15980 (5:5980)
- INCBIN "gfx/sprites/daisy.2bpp"
-BikerSprite: ; 15b00 (5:5b00)
- INCBIN "gfx/sprites/biker.2bpp"
-SailorSprite: ; 15c80 (5:5c80)
- INCBIN "gfx/sprites/sailor.2bpp"
-CookSprite: ; 15e00 (5:5e00)
- INCBIN "gfx/sprites/cook.2bpp"
-BikeShopGuySprite: ; 15f80 (5:5f80)
- INCBIN "gfx/sprites/bike_shop_guy.2bpp"
-MrFujiSprite: ; 16040 (5:6040)
- INCBIN "gfx/sprites/mr_fuji.2bpp"
-GiovanniSprite: ; 161c0 (5:61c0)
- INCBIN "gfx/sprites/giovanni.2bpp"
-RocketSprite: ; 16340 (5:6340)
- INCBIN "gfx/sprites/rocket.2bpp"
-MediumSprite: ; 164c0 (5:64c0)
- INCBIN "gfx/sprites/medium.2bpp"
-WaiterSprite: ; 16640 (5:6640)
- INCBIN "gfx/sprites/waiter.2bpp"
-ErikaSprite: ; 167c0 (5:67c0)
- INCBIN "gfx/sprites/erika.2bpp"
-MomGeishaSprite: ; 16940 (5:6940)
- INCBIN "gfx/sprites/mom_geisha.2bpp"
-BrunetteGirlSprite: ; 16ac0 (5:6ac0)
- INCBIN "gfx/sprites/brunette_girl.2bpp"
-LanceSprite: ; 16c40 (5:6c40)
- INCBIN "gfx/sprites/lance.2bpp"
-MomSprite: ; 16dc0 (5:6dc0)
- INCBIN "gfx/sprites/mom.2bpp"
-BaldingGuySprite: ; 16e80 (5:6e80)
- INCBIN "gfx/sprites/balding_guy.2bpp"
-YoungBoySprite: ; 16f40 (5:6f40)
- INCBIN "gfx/sprites/young_boy.2bpp"
-GameboyKidSprite: ; 17000 (5:7000)
- INCBIN "gfx/sprites/gameboy_kid.2bpp"
-ClefairySprite: ; 170c0 (5:70c0)
- INCBIN "gfx/sprites/clefairy.2bpp"
-AgathaSprite: ; 17240 (5:7240)
- INCBIN "gfx/sprites/agatha.2bpp"
-BrunoSprite: ; 173c0 (5:73c0)
- INCBIN "gfx/sprites/bruno.2bpp"
-LoreleiSprite: ; 17540 (5:7540)
- INCBIN "gfx/sprites/lorelei.2bpp"
-SeelSprite: ; 176c0 (5:76c0)
- INCBIN "gfx/sprites/seel.2bpp"
+RedCyclingSprite: INCBIN "gfx/sprites/cycling.2bpp"
+RedSprite: INCBIN "gfx/sprites/red.2bpp"
+BlueSprite: INCBIN "gfx/sprites/blue.2bpp"
+OakSprite: INCBIN "gfx/sprites/oak.2bpp"
+BugCatcherSprite: INCBIN "gfx/sprites/bug_catcher.2bpp"
+SlowbroSprite: INCBIN "gfx/sprites/slowbro.2bpp"
+LassSprite: INCBIN "gfx/sprites/lass.2bpp"
+BlackHairBoy1Sprite: INCBIN "gfx/sprites/black_hair_boy_1.2bpp"
+LittleGirlSprite: INCBIN "gfx/sprites/little_girl.2bpp"
+BirdSprite: INCBIN "gfx/sprites/bird.2bpp"
+FatBaldGuySprite: INCBIN "gfx/sprites/fat_bald_guy.2bpp"
+GamblerSprite: INCBIN "gfx/sprites/gambler.2bpp"
+BlackHairBoy2Sprite: INCBIN "gfx/sprites/black_hair_boy_2.2bpp"
+GirlSprite: INCBIN "gfx/sprites/girl.2bpp"
+HikerSprite: INCBIN "gfx/sprites/hiker.2bpp"
+FoulardWomanSprite: INCBIN "gfx/sprites/foulard_woman.2bpp"
+GentlemanSprite: INCBIN "gfx/sprites/gentleman.2bpp"
+DaisySprite: INCBIN "gfx/sprites/daisy.2bpp"
+BikerSprite: INCBIN "gfx/sprites/biker.2bpp"
+SailorSprite: INCBIN "gfx/sprites/sailor.2bpp"
+CookSprite: INCBIN "gfx/sprites/cook.2bpp"
+BikeShopGuySprite: INCBIN "gfx/sprites/bike_shop_guy.2bpp"
+MrFujiSprite: INCBIN "gfx/sprites/mr_fuji.2bpp"
+GiovanniSprite: INCBIN "gfx/sprites/giovanni.2bpp"
+RocketSprite: INCBIN "gfx/sprites/rocket.2bpp"
+MediumSprite: INCBIN "gfx/sprites/medium.2bpp"
+WaiterSprite: INCBIN "gfx/sprites/waiter.2bpp"
+ErikaSprite: INCBIN "gfx/sprites/erika.2bpp"
+MomGeishaSprite: INCBIN "gfx/sprites/mom_geisha.2bpp"
+BrunetteGirlSprite: INCBIN "gfx/sprites/brunette_girl.2bpp"
+LanceSprite: INCBIN "gfx/sprites/lance.2bpp"
+MomSprite: INCBIN "gfx/sprites/mom.2bpp"
+BaldingGuySprite: INCBIN "gfx/sprites/balding_guy.2bpp"
+YoungBoySprite: INCBIN "gfx/sprites/young_boy.2bpp"
+GameboyKidSprite: INCBIN "gfx/sprites/gameboy_kid.2bpp"
+ClefairySprite: INCBIN "gfx/sprites/clefairy.2bpp"
+AgathaSprite: INCBIN "gfx/sprites/agatha.2bpp"
+BrunoSprite: INCBIN "gfx/sprites/bruno.2bpp"
+LoreleiSprite: INCBIN "gfx/sprites/lorelei.2bpp"
+SeelSprite: INCBIN "gfx/sprites/seel.2bpp"
-INCLUDE "engine/load_pokedex_tiles.asm"
-INCLUDE "engine/overworld/map_sprites.asm"
+SECTION "Battle (bank 5)", ROMX, BANK[$5]
+INCLUDE "engine/load_pokedex_tiles.asm"
+INCLUDE "engine/overworld/map_sprites.asm"
INCLUDE "engine/overworld/emotion_bubbles.asm"
-
INCLUDE "engine/evolve_trade.asm"
-
INCLUDE "engine/battle/5.asm"
-
INCLUDE "engine/menu/pc.asm"
+
SECTION "bank6",ROMX,BANK[$6]
INCLUDE "data/mapHeaders/celadoncity.asm"
-
INCLUDE "data/mapObjects/celadoncity.asm"
+CeladonCityBlocks: INCBIN "maps/celadoncity.blk"
-CeladonCityBlocks: ; 180df (6:40df)
- INCBIN "maps/celadoncity.blk"
-
INCLUDE "data/mapHeaders/pallettown.asm"
-
INCLUDE "data/mapObjects/pallettown.asm"
+PalletTownBlocks: INCBIN "maps/pallettown.blk"
-PalletTownBlocks: ; 182fd (6:42fd)
- INCBIN "maps/pallettown.blk"
-
INCLUDE "data/mapHeaders/viridiancity.asm"
-
INCLUDE "data/mapObjects/viridiancity.asm"
+ViridianCityBlocks: INCBIN "maps/viridiancity.blk"
-ViridianCityBlocks: ; 183ec (6:43ec)
- INCBIN "maps/viridiancity.blk"
-
INCLUDE "data/mapHeaders/pewtercity.asm"
-
INCLUDE "data/mapObjects/pewtercity.asm"
+PewterCityBlocks: INCBIN "maps/pewtercity.blk"
-PewterCityBlocks: ; 185e6 (6:45e6)
- INCBIN "maps/pewtercity.blk"
-
INCLUDE "data/mapHeaders/ceruleancity.asm"
-
INCLUDE "data/mapObjects/ceruleancity.asm"
+CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk"
-CeruleanCityBlocks: ; 18830 (6:4830)
- INCBIN "maps/ceruleancity.blk"
-
INCLUDE "data/mapHeaders/vermilioncity.asm"
-
INCLUDE "data/mapObjects/vermilioncity.asm"
+VermilionCityBlocks: INCBIN "maps/vermilioncity.blk"
-VermilionCityBlocks: ; 18a3f (6:4a3f)
- INCBIN "maps/vermilioncity.blk"
-
INCLUDE "data/mapHeaders/fuchsiacity.asm"
-
INCLUDE "data/mapObjects/fuchsiacity.asm"
+FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk"
-FuchsiaCityBlocks: ; 18c86 (6:4c86)
- INCBIN "maps/fuchsiacity.blk"
-
INCLUDE "engine/play_time.asm"
INCLUDE "scripts/pallettown.asm"
-
INCLUDE "scripts/viridiancity.asm"
-
INCLUDE "scripts/pewtercity.asm"
-
INCLUDE "scripts/ceruleancity.asm"
-
INCLUDE "scripts/vermilioncity.asm"
-
INCLUDE "scripts/celadoncity.asm"
-
INCLUDE "scripts/fuchsiacity.asm"
INCLUDE "data/mapHeaders/blueshouse.asm"
-
INCLUDE "scripts/blueshouse.asm"
-
INCLUDE "data/mapObjects/blueshouse.asm"
+BluesHouseBlocks: INCBIN "maps/blueshouse.blk"
-BluesHouseBlocks: ; 19bf6 (6:5bf6)
- INCBIN "maps/blueshouse.blk"
-
INCLUDE "data/mapHeaders/vermilionhouse3.asm"
-
INCLUDE "scripts/vermilionhouse3.asm"
-
INCLUDE "data/mapObjects/vermilionhouse3.asm"
+VermilionHouse3Blocks: INCBIN "maps/vermilionhouse3.blk"
-VermilionHouse3Blocks: ; 19c3f (6:5c3f)
- INCBIN "maps/vermilionhouse3.blk"
-
INCLUDE "data/mapHeaders/indigoplateaulobby.asm"
-
INCLUDE "scripts/indigoplateaulobby.asm"
-
INCLUDE "data/mapObjects/indigoplateaulobby.asm"
+IndigoPlateauLobbyBlocks: INCBIN "maps/indigoplateaulobby.blk"
-IndigoPlateauLobbyBlocks: ; 19ccf (6:5ccf)
- INCBIN "maps/indigoplateaulobby.blk"
-
INCLUDE "data/mapHeaders/silphco4.asm"
-
INCLUDE "scripts/silphco4.asm"
-
INCLUDE "data/mapObjects/silphco4.asm"
+SilphCo4Blocks: INCBIN "maps/silphco4.blk"
-SilphCo4Blocks: ; 19ea4 (6:5ea4)
- INCBIN "maps/silphco4.blk"
-
INCLUDE "data/mapHeaders/silphco5.asm"
-
INCLUDE "scripts/silphco5.asm"
-
INCLUDE "data/mapObjects/silphco5.asm"
+SilphCo5Blocks: INCBIN "maps/silphco5.blk"
-SilphCo5Blocks: ; 1a116 (6:6116)
- INCBIN "maps/silphco5.blk"
-
INCLUDE "data/mapHeaders/silphco6.asm"
-
INCLUDE "scripts/silphco6.asm"
-
INCLUDE "data/mapObjects/silphco6.asm"
+SilphCo6Blocks: INCBIN "maps/silphco6.blk"
-SilphCo6Blocks: ; 1a36b (6:636b)
- INCBIN "maps/silphco6.blk"
-
INCLUDE "engine/overworld/npc_movement.asm"
-
INCLUDE "engine/overworld/doors.asm"
-
INCLUDE "engine/overworld/ledges.asm"
+
SECTION "bank7",ROMX,BANK[$7]
INCLUDE "data/mapHeaders/cinnabarisland.asm"
-
INCLUDE "data/mapObjects/cinnabarisland.asm"
+CinnabarIslandBlocks: INCBIN "maps/cinnabarisland.blk"
-CinnabarIslandBlocks: ; 1c069 (7:4069)
- INCBIN "maps/cinnabarisland.blk"
-
INCLUDE "data/mapHeaders/route1.asm"
-
INCLUDE "data/mapObjects/route1.asm"
+Route1Blocks: INCBIN "maps/route1.blk"
-Route1Blocks: ; 1c0fc (7:40fc)
- INCBIN "maps/route1.blk"
+UndergroundPathEntranceRoute8Blocks: INCBIN "maps/undergroundpathentranceroute8.blk"
-UndergroundPathEntranceRoute8Blocks: ; 1c1b0 (7:41b0)
- INCBIN "maps/undergroundpathentranceroute8.blk"
+OaksLabBlocks: INCBIN "maps/oakslab.blk"
-OaksLabBlocks: ; 1c1c0 (7:41c0)
- INCBIN "maps/oakslab.blk"
+Route16HouseBlocks:
+Route2HouseBlocks:
+SaffronHouse1Blocks:
+SaffronHouse2Blocks:
+VermilionHouse1Blocks:
+NameRaterBlocks:
+LavenderHouse1Blocks:
+LavenderHouse2Blocks:
+CeruleanHouse1Blocks:
+PewterHouse1Blocks:
+PewterHouse2Blocks:
+ViridianHouseBlocks: INCBIN "maps/viridianhouse.blk"
-Route16HouseBlocks: ; 1c1de (7:41de)
-Route2HouseBlocks: ; 1c1de (7:41de)
-SaffronHouse1Blocks: ; 1c1de (7:41de)
-SaffronHouse2Blocks: ; 1c1de (7:41de)
-VermilionHouse1Blocks: ; 1c1de (7:41de)
-NameRaterBlocks: ; 1c1de (7:41de)
-LavenderHouse1Blocks: ; 1c1de (7:41de)
-LavenderHouse2Blocks: ; 1c1de (7:41de)
-CeruleanHouse1Blocks: ; 1c1de (7:41de)
-PewterHouse1Blocks: ; 1c1de (7:41de)
-PewterHouse2Blocks: ; 1c1de (7:41de)
-ViridianHouseBlocks: ; 0x1c1de 41DE size=16
- INCBIN "maps/viridianhouse.blk"
+CeladonMansion5Blocks:
+SchoolBlocks: INCBIN "maps/school.blk"
-CeladonMansion5Blocks: ; 1c1ee (7:41ee)
-SchoolBlocks: ; 0x1c1ee 41EE size=16
- INCBIN "maps/school.blk"
+CeruleanHouseTrashedBlocks: INCBIN "maps/ceruleanhousetrashed.blk"
-CeruleanHouseTrashedBlocks: ; 0x1c1fe size=16
- INCBIN "maps/ceruleanhousetrashed.blk"
+DiglettsCaveEntranceRoute11Blocks:
+DiglettsCaveRoute2Blocks: INCBIN "maps/diglettscaveroute2.blk"
-DiglettsCaveEntranceRoute11Blocks: ; 1c20e (7:420e)
-DiglettsCaveRoute2Blocks: ; 0x1c20e size=16
- INCBIN "maps/diglettscaveroute2.blk"
-
INCLUDE "text/monster_names.asm"
INCLUDE "engine/clear_save.asm"
@@ -16220,1692 +4816,993 @@
INCLUDE "scripts/route1.asm"
INCLUDE "data/mapHeaders/oakslab.asm"
-
INCLUDE "scripts/oakslab.asm"
-
INCLUDE "data/mapObjects/oakslab.asm"
INCLUDE "data/mapHeaders/viridianmart.asm"
-
INCLUDE "scripts/viridianmart.asm"
-
INCLUDE "data/mapObjects/viridianmart.asm"
+ViridianMartBlocks: INCBIN "maps/viridianmart.blk"
-ViridianMartBlocks: ; 1d530 (7:5530)
- INCBIN "maps/viridianmart.blk"
-
INCLUDE "data/mapHeaders/school.asm"
-
INCLUDE "scripts/school.asm"
-
INCLUDE "data/mapObjects/school.asm"
INCLUDE "data/mapHeaders/viridianhouse.asm"
-
INCLUDE "scripts/viridianhouse.asm"
-
INCLUDE "data/mapObjects/viridianhouse.asm"
INCLUDE "data/mapHeaders/pewterhouse1.asm"
-
INCLUDE "scripts/pewterhouse1.asm"
-
INCLUDE "data/mapObjects/pewterhouse1.asm"
INCLUDE "data/mapHeaders/pewterhouse2.asm"
-
INCLUDE "scripts/pewterhouse2.asm"
-
INCLUDE "data/mapObjects/pewterhouse2.asm"
INCLUDE "data/mapHeaders/ceruleanhousetrashed.asm"
-
INCLUDE "scripts/ceruleanhousetrashed.asm"
-
INCLUDE "data/mapObjects/ceruleanhousetrashed.asm"
INCLUDE "data/mapHeaders/ceruleanhouse1.asm"
-
INCLUDE "scripts/ceruleanhouse1.asm"
-
INCLUDE "data/mapObjects/ceruleanhouse1.asm"
INCLUDE "data/mapHeaders/bikeshop.asm"
-
INCLUDE "scripts/bikeshop.asm"
-
INCLUDE "data/mapObjects/bikeshop.asm"
+BikeShopBlocks: INCBIN "maps/bikeshop.blk"
-BikeShopBlocks: ; 1d88c (7:588c)
- INCBIN "maps/bikeshop.blk"
-
INCLUDE "data/mapHeaders/lavenderhouse1.asm"
-
INCLUDE "scripts/lavenderhouse1.asm"
-
INCLUDE "data/mapObjects/lavenderhouse1.asm"
INCLUDE "data/mapHeaders/lavenderhouse2.asm"
-
INCLUDE "scripts/lavenderhouse2.asm"
-
INCLUDE "data/mapObjects/lavenderhouse2.asm"
INCLUDE "data/mapHeaders/namerater.asm"
-
INCLUDE "scripts/namerater.asm"
-
INCLUDE "data/mapObjects/namerater.asm"
INCLUDE "data/mapHeaders/vermilionhouse1.asm"
-
INCLUDE "scripts/vermilionhouse1.asm"
-
INCLUDE "data/mapObjects/vermilionhouse1.asm"
INCLUDE "data/mapHeaders/vermiliondock.asm"
-
INCLUDE "scripts/vermiliondock.asm"
-
INCLUDE "data/mapObjects/vermiliondock.asm"
+VermilionDockBlocks: INCBIN "maps/vermiliondock.blk"
-VermilionDockBlocks: ; 1dcda (7:5cda)
- INCBIN "maps/vermiliondock.blk"
-
INCLUDE "data/mapHeaders/celadonmansion5.asm"
-
INCLUDE "scripts/celadonmansion5.asm"
-
INCLUDE "data/mapObjects/celadonmansion5.asm"
INCLUDE "data/mapHeaders/fuchsiamart.asm"
-
INCLUDE "scripts/fuchsiamart.asm"
-
INCLUDE "data/mapObjects/fuchsiamart.asm"
+FuchsiaMartBlocks: INCBIN "maps/fuchsiamart.blk"
-FuchsiaMartBlocks: ; 1ddc1 (7:5dc1)
- INCBIN "maps/fuchsiamart.blk"
-
INCLUDE "data/mapHeaders/saffronhouse1.asm"
-
INCLUDE "scripts/saffronhouse1.asm"
-
INCLUDE "data/mapObjects/saffronhouse1.asm"
INCLUDE "data/mapHeaders/saffronhouse2.asm"
-
INCLUDE "scripts/saffronhouse2.asm"
-
INCLUDE "data/mapObjects/saffronhouse2.asm"
INCLUDE "data/mapHeaders/diglettscaveroute2.asm"
-
INCLUDE "scripts/diglettscaveroute2.asm"
-
INCLUDE "data/mapObjects/diglettscaveroute2.asm"
INCLUDE "data/mapHeaders/route2house.asm"
-
INCLUDE "scripts/route2house.asm"
-
INCLUDE "data/mapObjects/route2house.asm"
INCLUDE "data/mapHeaders/route5gate.asm"
-
INCLUDE "scripts/route5gate.asm"
-
INCLUDE "data/mapObjects/route5gate.asm"
+Route5GateBlocks: INCBIN "maps/route5gate.blk"
-Route5GateBlocks: ; 1e025 (7:6025)
- INCBIN "maps/route5gate.blk"
-
INCLUDE "data/mapHeaders/route6gate.asm"
-
INCLUDE "scripts/route6gate.asm"
-
INCLUDE "data/mapObjects/route6gate.asm"
+Route6GateBlocks: INCBIN "maps/route6gate.blk"
-Route6GateBlocks: ; 1e0e8 (7:60e8)
- INCBIN "maps/route6gate.blk"
-
INCLUDE "data/mapHeaders/route7gate.asm"
-
INCLUDE "scripts/route7gate.asm"
-
INCLUDE "data/mapObjects/route7gate.asm"
+Route7GateBlocks: INCBIN "maps/route7gate.blk"
-Route7GateBlocks: ; 1e1af (7:61af)
- INCBIN "maps/route7gate.blk"
-
INCLUDE "data/mapHeaders/route8gate.asm"
-
INCLUDE "scripts/route8gate.asm"
-
INCLUDE "data/mapObjects/route8gate.asm"
+Route8GateBlocks: INCBIN "maps/route8gate.blk"
-Route8GateBlocks: ; 1e271 (7:6271)
- INCBIN "maps/route8gate.blk"
-
INCLUDE "data/mapHeaders/undergroundpathentranceroute8.asm"
-
INCLUDE "scripts/undergroundpathentranceroute8.asm"
-
INCLUDE "data/mapObjects/undergroundpathentranceroute8.asm"
INCLUDE "data/mapHeaders/powerplant.asm"
-
INCLUDE "scripts/powerplant.asm"
-
INCLUDE "data/mapObjects/powerplant.asm"
+PowerPlantBlocks: INCBIN "maps/powerplant.blk"
-PowerPlantBlocks: ; 1e446 (7:6446)
- INCBIN "maps/powerplant.blk"
-
INCLUDE "data/mapHeaders/diglettscaveroute11.asm"
-
INCLUDE "scripts/diglettscaveroute11.asm"
-
INCLUDE "data/mapObjects/diglettscaveroute11.asm"
INCLUDE "data/mapHeaders/route16house.asm"
-
INCLUDE "scripts/route16house.asm"
-
INCLUDE "data/mapObjects/route16house.asm"
INCLUDE "data/mapHeaders/route22gate.asm"
-
INCLUDE "scripts/route22gate.asm"
-
INCLUDE "data/mapObjects/route22gate.asm"
+Route22GateBlocks: INCBIN "maps/route22gate.blk"
-Route22GateBlocks: ; 1e74a (7:674a)
- INCBIN "maps/route22gate.blk"
-
INCLUDE "data/mapHeaders/billshouse.asm"
-
INCLUDE "scripts/billshouse.asm"
-
INCLUDE "data/mapObjects/billshouse.asm"
+BillsHouseBlocks: INCBIN "maps/billshouse.blk"
-BillsHouseBlocks: ; 1e905 (7:6905)
- INCBIN "maps/billshouse.blk"
-
INCLUDE "engine/menu/oaks_pc.asm"
INCLUDE "engine/hidden_object_functions7.asm"
-SECTION "bank9",ROMX,BANK[$9]
-RhydonPicFront: ; 24000 (9:4000)
- INCBIN "pic/bmon/rhydon.pic"
-RhydonPicBack: ; 24202 (9:4202)
- INCBIN "pic/monback/rhydonb.pic"
-KangaskhanPicFront: ; 2429a (9:429a)
- INCBIN "pic/bmon/kangaskhan.pic"
-KangaskhanPicBack: ; 244a6 (9:44a6)
- INCBIN "pic/monback/kangaskhanb.pic"
-NidoranMPicFront: ; 2453c (9:453c)
- INCBIN "pic/bmon/nidoranm.pic"
-NidoranMPicBack: ; 24623 (9:4623)
- INCBIN "pic/monback/nidoranmb.pic"
-ClefairyPicFront: ; 24682 (9:4682)
- INCBIN "pic/bmon/clefairy.pic"
-ClefairyPicBack: ; 24785 (9:4785)
- INCBIN "pic/monback/clefairyb.pic"
-SpearowPicFront: ; 247df (9:47df)
- INCBIN "pic/bmon/spearow.pic"
-SpearowPicBack: ; 248c2 (9:48c2)
- INCBIN "pic/monback/spearowb.pic"
-VoltorbPicFront: ; 24911 (9:4911)
- INCBIN "pic/bmon/voltorb.pic"
-VoltorbPicBack: ; 2499a (9:499a)
- INCBIN "pic/monback/voltorbb.pic"
-NidokingPicFront: ; 249f8 (9:49f8)
- INCBIN "pic/bmon/nidoking.pic"
-NidokingPicBack: ; 24c60 (9:4c60)
- INCBIN "pic/monback/nidokingb.pic"
-SlowbroPicFront: ; 24d0a (9:4d0a)
- INCBIN "pic/bmon/slowbro.pic"
-SlowbroPicBack: ; 24f87 (9:4f87)
- INCBIN "pic/monback/slowbrob.pic"
-IvysaurPicFront: ; 2502b (9:502b)
- INCBIN "pic/bmon/ivysaur.pic"
-IvysaurPicBack: ; 25157 (9:5157)
- INCBIN "pic/monback/ivysaurb.pic"
-ExeggutorPicFront: ; 251d6 (9:51d6)
- INCBIN "pic/bmon/exeggutor.pic"
-ExeggutorPicBack: ; 253f8 (9:53f8)
- INCBIN "pic/monback/exeggutorb.pic"
-LickitungPicFront: ; 254a7 (9:54a7)
- INCBIN "pic/bmon/lickitung.pic"
-LickitungPicBack: ; 2563e (9:563e)
- INCBIN "pic/monback/lickitungb.pic"
-ExeggcutePicFront: ; 256d7 (9:56d7)
- INCBIN "pic/bmon/exeggcute.pic"
-ExeggcutePicBack: ; 258f0 (9:58f0)
- INCBIN "pic/monback/exeggcuteb.pic"
-GrimerPicFront: ; 25973 (9:5973)
- INCBIN "pic/bmon/grimer.pic"
-GrimerPicBack: ; 25ab0 (9:5ab0)
- INCBIN "pic/monback/grimerb.pic"
-GengarPicFront: ; 25b76 (9:5b76)
- INCBIN "pic/bmon/gengar.pic"
-GengarPicBack: ; 25cc6 (9:5cc6)
- INCBIN "pic/monback/gengarb.pic"
-NidoranFPicFront: ; 25d28 (9:5d28)
- INCBIN "pic/bmon/nidoranf.pic"
-NidoranFPicBack: ; 25dc2 (9:5dc2)
- INCBIN "pic/monback/nidoranfb.pic"
-NidoqueenPicFront: ; 25e09 (9:5e09)
- INCBIN "pic/bmon/nidoqueen.pic"
-NidoqueenPicBack: ; 25fef (9:5fef)
- INCBIN "pic/monback/nidoqueenb.pic"
-CubonePicFront: ; 260a8 (9:60a8)
- INCBIN "pic/bmon/cubone.pic"
-CubonePicBack: ; 26196 (9:6196)
- INCBIN "pic/monback/cuboneb.pic"
-RhyhornPicFront: ; 26208 (9:6208)
- INCBIN "pic/bmon/rhyhorn.pic"
-RhyhornPicBack: ; 2640f (9:640f)
- INCBIN "pic/monback/rhyhornb.pic"
-LaprasPicFront: ; 264c1 (9:64c1)
- INCBIN "pic/bmon/lapras.pic"
-LaprasPicBack: ; 2667c (9:667c)
- INCBIN "pic/monback/laprasb.pic"
-ArcaninePicFront: ; 266ff (9:66ff)
- INCBIN "pic/bmon/arcanine.pic"
-ArcaninePicBack: ; 2693d (9:693d)
- INCBIN "pic/monback/arcanineb.pic"
-GyaradosPicFront: ; 269d4 (9:69d4)
- INCBIN "pic/bmon/gyarados.pic"
-GyaradosPicBack: ; 26c25 (9:6c25)
- INCBIN "pic/monback/gyaradosb.pic"
-ShellderPicFront: ; 26cb6 (9:6cb6)
- INCBIN "pic/bmon/shellder.pic"
-ShellderPicBack: ; 26dc3 (9:6dc3)
- INCBIN "pic/monback/shellderb.pic"
-TentacoolPicFront: ; 26e2a (9:6e2a)
- INCBIN "pic/bmon/tentacool.pic"
-TentacoolPicBack: ; 26f1c (9:6f1c)
- INCBIN "pic/monback/tentacoolb.pic"
-GastlyPicFront: ; 26f77 (9:6f77)
- INCBIN "pic/bmon/gastly.pic"
-GastlyPicBack: ; 27190 (9:7190)
- INCBIN "pic/monback/gastlyb.pic"
-ScytherPicFront: ; 2721c (9:721c)
- INCBIN "pic/bmon/scyther.pic"
-ScytherPicBack: ; 2743c (9:743c)
- INCBIN "pic/monback/scytherb.pic"
-StaryuPicFront: ; 274e0 (9:74e0)
- INCBIN "pic/bmon/staryu.pic"
-StaryuPicBack: ; 275ec (9:75ec)
- INCBIN "pic/monback/staryub.pic"
-BlastoisePicFront: ; 27637 (9:7637)
- INCBIN "pic/bmon/blastoise.pic"
-BlastoisePicBack: ; 27851 (9:7851)
- INCBIN "pic/monback/blastoiseb.pic"
-PinsirPicFront: ; 278da (9:78da)
- INCBIN "pic/bmon/pinsir.pic"
-PinsirPicBack: ; 27aaa (9:7aaa)
- INCBIN "pic/monback/pinsirb.pic"
-TangelaPicFront: ; 27b39 (9:7b39)
- INCBIN "pic/bmon/tangela.pic"
-TangelaPicBack: ; 27ce7 (9:7ce7)
- INCBIN "pic/monback/tangelab.pic"
+SECTION "Pics 1", ROMX, BANK[PICS_1]
+RhydonPicFront:: INCBIN "pic/bmon/rhydon.pic"
+RhydonPicBack:: INCBIN "pic/monback/rhydonb.pic"
+KangaskhanPicFront:: INCBIN "pic/bmon/kangaskhan.pic"
+KangaskhanPicBack:: INCBIN "pic/monback/kangaskhanb.pic"
+NidoranMPicFront:: INCBIN "pic/bmon/nidoranm.pic"
+NidoranMPicBack:: INCBIN "pic/monback/nidoranmb.pic"
+ClefairyPicFront:: INCBIN "pic/bmon/clefairy.pic"
+ClefairyPicBack:: INCBIN "pic/monback/clefairyb.pic"
+SpearowPicFront:: INCBIN "pic/bmon/spearow.pic"
+SpearowPicBack:: INCBIN "pic/monback/spearowb.pic"
+VoltorbPicFront:: INCBIN "pic/bmon/voltorb.pic"
+VoltorbPicBack:: INCBIN "pic/monback/voltorbb.pic"
+NidokingPicFront:: INCBIN "pic/bmon/nidoking.pic"
+NidokingPicBack:: INCBIN "pic/monback/nidokingb.pic"
+SlowbroPicFront:: INCBIN "pic/bmon/slowbro.pic"
+SlowbroPicBack:: INCBIN "pic/monback/slowbrob.pic"
+IvysaurPicFront:: INCBIN "pic/bmon/ivysaur.pic"
+IvysaurPicBack:: INCBIN "pic/monback/ivysaurb.pic"
+ExeggutorPicFront:: INCBIN "pic/bmon/exeggutor.pic"
+ExeggutorPicBack:: INCBIN "pic/monback/exeggutorb.pic"
+LickitungPicFront:: INCBIN "pic/bmon/lickitung.pic"
+LickitungPicBack:: INCBIN "pic/monback/lickitungb.pic"
+ExeggcutePicFront:: INCBIN "pic/bmon/exeggcute.pic"
+ExeggcutePicBack:: INCBIN "pic/monback/exeggcuteb.pic"
+GrimerPicFront:: INCBIN "pic/bmon/grimer.pic"
+GrimerPicBack:: INCBIN "pic/monback/grimerb.pic"
+GengarPicFront:: INCBIN "pic/bmon/gengar.pic"
+GengarPicBack:: INCBIN "pic/monback/gengarb.pic"
+NidoranFPicFront:: INCBIN "pic/bmon/nidoranf.pic"
+NidoranFPicBack:: INCBIN "pic/monback/nidoranfb.pic"
+NidoqueenPicFront:: INCBIN "pic/bmon/nidoqueen.pic"
+NidoqueenPicBack:: INCBIN "pic/monback/nidoqueenb.pic"
+CubonePicFront:: INCBIN "pic/bmon/cubone.pic"
+CubonePicBack:: INCBIN "pic/monback/cuboneb.pic"
+RhyhornPicFront:: INCBIN "pic/bmon/rhyhorn.pic"
+RhyhornPicBack:: INCBIN "pic/monback/rhyhornb.pic"
+LaprasPicFront:: INCBIN "pic/bmon/lapras.pic"
+LaprasPicBack:: INCBIN "pic/monback/laprasb.pic"
+ArcaninePicFront:: INCBIN "pic/bmon/arcanine.pic"
+ArcaninePicBack:: INCBIN "pic/monback/arcanineb.pic"
+GyaradosPicFront:: INCBIN "pic/bmon/gyarados.pic"
+GyaradosPicBack:: INCBIN "pic/monback/gyaradosb.pic"
+ShellderPicFront:: INCBIN "pic/bmon/shellder.pic"
+ShellderPicBack:: INCBIN "pic/monback/shellderb.pic"
+TentacoolPicFront:: INCBIN "pic/bmon/tentacool.pic"
+TentacoolPicBack:: INCBIN "pic/monback/tentacoolb.pic"
+GastlyPicFront:: INCBIN "pic/bmon/gastly.pic"
+GastlyPicBack:: INCBIN "pic/monback/gastlyb.pic"
+ScytherPicFront:: INCBIN "pic/bmon/scyther.pic"
+ScytherPicBack:: INCBIN "pic/monback/scytherb.pic"
+StaryuPicFront:: INCBIN "pic/bmon/staryu.pic"
+StaryuPicBack:: INCBIN "pic/monback/staryub.pic"
+BlastoisePicFront:: INCBIN "pic/bmon/blastoise.pic"
+BlastoisePicBack:: INCBIN "pic/monback/blastoiseb.pic"
+PinsirPicFront:: INCBIN "pic/bmon/pinsir.pic"
+PinsirPicBack:: INCBIN "pic/monback/pinsirb.pic"
+TangelaPicFront:: INCBIN "pic/bmon/tangela.pic"
+TangelaPicBack:: INCBIN "pic/monback/tangelab.pic"
+
+
+SECTION "Battle (bank 9)", ROMX, BANK[$9]
INCLUDE "engine/battle/9.asm"
-SECTION "bankA",ROMX,BANK[$A]
-GrowlithePicFront: ; 28000 (a:4000)
- INCBIN "pic/bmon/growlithe.pic"
-GrowlithePicBack: ; 28101 (a:4101)
- INCBIN "pic/monback/growlitheb.pic"
-OnixPicFront: ; 28164 (a:4164)
- INCBIN "pic/bmon/onix.pic"
-OnixPicBack: ; 28300 (a:4300)
- INCBIN "pic/monback/onixb.pic"
-FearowPicFront: ; 28383 (a:4383)
- INCBIN "pic/bmon/fearow.pic"
-FearowPicBack: ; 28529 (a:4529)
- INCBIN "pic/monback/fearowb.pic"
-PidgeyPicFront: ; 285a7 (a:45a7)
- INCBIN "pic/bmon/pidgey.pic"
-PidgeyPicBack: ; 2865b (a:465b)
- INCBIN "pic/monback/pidgeyb.pic"
-SlowpokePicFront: ; 286a0 (a:46a0)
- INCBIN "pic/bmon/slowpoke.pic"
-SlowpokePicBack: ; 287c2 (a:47c2)
- INCBIN "pic/monback/slowpokeb.pic"
-KadabraPicFront: ; 28830 (a:4830)
- INCBIN "pic/bmon/kadabra.pic"
-KadabraPicBack: ; 289b9 (a:49b9)
- INCBIN "pic/monback/kadabrab.pic"
-GravelerPicFront: ; 28a4c (a:4a4c)
- INCBIN "pic/bmon/graveler.pic"
-GravelerPicBack: ; 28c00 (a:4c00)
- INCBIN "pic/monback/gravelerb.pic"
-ChanseyPicFront: ; 28cae (a:4cae)
- INCBIN "pic/bmon/chansey.pic"
-ChanseyPicBack: ; 28e21 (a:4e21)
- INCBIN "pic/monback/chanseyb.pic"
-MachokePicFront: ; 28e85 (a:4e85)
- INCBIN "pic/bmon/machoke.pic"
-MachokePicBack: ; 29063 (a:5063)
- INCBIN "pic/monback/machokeb.pic"
-MrMimePicFront: ; 290f3 (a:50f3)
- INCBIN "pic/bmon/mr.mime.pic"
-MrMimePicBack: ; 29247 (a:5247)
- INCBIN "pic/monback/mr.mimeb.pic"
-HitmonleePicFront: ; 292bf (a:52bf)
- INCBIN "pic/bmon/hitmonlee.pic"
-HitmonleePicBack: ; 2945e (a:545e)
- INCBIN "pic/monback/hitmonleeb.pic"
-HitmonchanPicFront: ; 294bc (a:54bc)
- INCBIN "pic/bmon/hitmonchan.pic"
-HitmonchanPicBack: ; 29643 (a:5643)
- INCBIN "pic/monback/hitmonchanb.pic"
-ArbokPicFront: ; 296b4 (a:56b4)
- INCBIN "pic/bmon/arbok.pic"
-ArbokPicBack: ; 29911 (a:5911)
- INCBIN "pic/monback/arbokb.pic"
-ParasectPicFront: ; 299a8 (a:59a8)
- INCBIN "pic/bmon/parasect.pic"
-ParasectPicBack: ; 29b8c (a:5b8c)
- INCBIN "pic/monback/parasectb.pic"
-PsyduckPicFront: ; 29c0a (a:5c0a)
- INCBIN "pic/bmon/psyduck.pic"
-PsyduckPicBack: ; 29d3e (a:5d3e)
- INCBIN "pic/monback/psyduckb.pic"
-DrowzeePicFront: ; 29da9 (a:5da9)
- INCBIN "pic/bmon/drowzee.pic"
-DrowzeePicBack: ; 29f05 (a:5f05)
- INCBIN "pic/monback/drowzeeb.pic"
-GolemPicFront: ; 29f74 (a:5f74)
- INCBIN "pic/bmon/golem.pic"
-GolemPicBack: ; 2a0f2 (a:60f2)
- INCBIN "pic/monback/golemb.pic"
-MagmarPicFront: ; 2a161 (a:6161)
- INCBIN "pic/bmon/magmar.pic"
-MagmarPicBack: ; 2a2bf (a:62bf)
- INCBIN "pic/monback/magmarb.pic"
-ElectabuzzPicFront: ; 2a367 (a:6367)
- INCBIN "pic/bmon/electabuzz.pic"
-ElectabuzzPicBack: ; 2a4ef (a:64ef)
- INCBIN "pic/monback/electabuzzb.pic"
-MagnetonPicFront: ; 2a588 (a:6588)
- INCBIN "pic/bmon/magneton.pic"
-MagnetonPicBack: ; 2a723 (a:6723)
- INCBIN "pic/monback/magnetonb.pic"
-KoffingPicFront: ; 2a7a6 (a:67a6)
- INCBIN "pic/bmon/koffing.pic"
-KoffingPicBack: ; 2a974 (a:6974)
- INCBIN "pic/monback/koffingb.pic"
-MankeyPicFront: ; 2aa11 (a:6a11)
- INCBIN "pic/bmon/mankey.pic"
-MankeyPicBack: ; 2ab16 (a:6b16)
- INCBIN "pic/monback/mankeyb.pic"
-SeelPicFront: ; 2ab84 (a:6b84)
- INCBIN "pic/bmon/seel.pic"
-SeelPicBack: ; 2ace8 (a:6ce8)
- INCBIN "pic/monback/seelb.pic"
-DiglettPicFront: ; 2ad33 (a:6d33)
- INCBIN "pic/bmon/diglett.pic"
-DiglettPicBack: ; 2ae10 (a:6e10)
- INCBIN "pic/monback/diglettb.pic"
-TaurosPicFront: ; 2ae7e (a:6e7e)
- INCBIN "pic/bmon/tauros.pic"
-TaurosPicBack: ; 2b054 (a:7054)
- INCBIN "pic/monback/taurosb.pic"
-FarfetchdPicFront: ; 2b0e9 (a:70e9)
- INCBIN "pic/bmon/farfetchd.pic"
-FarfetchdPicBack: ; 2b2c6 (a:72c6)
- INCBIN "pic/monback/farfetchdb.pic"
-VenonatPicFront: ; 2b357 (a:7357)
- INCBIN "pic/bmon/venonat.pic"
-VenonatPicBack: ; 2b45c (a:745c)
- INCBIN "pic/monback/venonatb.pic"
-DragonitePicFront: ; 2b4aa (a:74aa)
- INCBIN "pic/bmon/dragonite.pic"
-DragonitePicBack: ; 2b67f (a:767f)
- INCBIN "pic/monback/dragoniteb.pic"
-DoduoPicFront: ; 2b72c (a:772c)
- INCBIN "pic/bmon/doduo.pic"
-DoduoPicBack: ; 2b80d (a:780d)
- INCBIN "pic/monback/doduob.pic"
-PoliwagPicFront: ; 2b875 (a:7875)
- INCBIN "pic/bmon/poliwag.pic"
-PoliwagPicBack: ; 2b947 (a:7947)
- INCBIN "pic/monback/poliwagb.pic"
-JynxPicFront: ; 2b98e (a:798e)
- INCBIN "pic/bmon/jynx.pic"
-JynxPicBack: ; 2bb42 (a:7b42)
- INCBIN "pic/monback/jynxb.pic"
-MoltresPicFront: ; 2bbac (a:7bac)
- INCBIN "pic/bmon/moltres.pic"
-MoltresPicBack: ; 2be02 (a:7e02)
- INCBIN "pic/monback/moltresb.pic"
+SECTION "Pics 2", ROMX, BANK[PICS_2]
+
+GrowlithePicFront:: INCBIN "pic/bmon/growlithe.pic"
+GrowlithePicBack:: INCBIN "pic/monback/growlitheb.pic"
+OnixPicFront:: INCBIN "pic/bmon/onix.pic"
+OnixPicBack:: INCBIN "pic/monback/onixb.pic"
+FearowPicFront:: INCBIN "pic/bmon/fearow.pic"
+FearowPicBack:: INCBIN "pic/monback/fearowb.pic"
+PidgeyPicFront:: INCBIN "pic/bmon/pidgey.pic"
+PidgeyPicBack:: INCBIN "pic/monback/pidgeyb.pic"
+SlowpokePicFront:: INCBIN "pic/bmon/slowpoke.pic"
+SlowpokePicBack:: INCBIN "pic/monback/slowpokeb.pic"
+KadabraPicFront:: INCBIN "pic/bmon/kadabra.pic"
+KadabraPicBack:: INCBIN "pic/monback/kadabrab.pic"
+GravelerPicFront:: INCBIN "pic/bmon/graveler.pic"
+GravelerPicBack:: INCBIN "pic/monback/gravelerb.pic"
+ChanseyPicFront:: INCBIN "pic/bmon/chansey.pic"
+ChanseyPicBack:: INCBIN "pic/monback/chanseyb.pic"
+MachokePicFront:: INCBIN "pic/bmon/machoke.pic"
+MachokePicBack:: INCBIN "pic/monback/machokeb.pic"
+MrMimePicFront:: INCBIN "pic/bmon/mr.mime.pic"
+MrMimePicBack:: INCBIN "pic/monback/mr.mimeb.pic"
+HitmonleePicFront:: INCBIN "pic/bmon/hitmonlee.pic"
+HitmonleePicBack:: INCBIN "pic/monback/hitmonleeb.pic"
+HitmonchanPicFront:: INCBIN "pic/bmon/hitmonchan.pic"
+HitmonchanPicBack:: INCBIN "pic/monback/hitmonchanb.pic"
+ArbokPicFront:: INCBIN "pic/bmon/arbok.pic"
+ArbokPicBack:: INCBIN "pic/monback/arbokb.pic"
+ParasectPicFront:: INCBIN "pic/bmon/parasect.pic"
+ParasectPicBack:: INCBIN "pic/monback/parasectb.pic"
+PsyduckPicFront:: INCBIN "pic/bmon/psyduck.pic"
+PsyduckPicBack:: INCBIN "pic/monback/psyduckb.pic"
+DrowzeePicFront:: INCBIN "pic/bmon/drowzee.pic"
+DrowzeePicBack:: INCBIN "pic/monback/drowzeeb.pic"
+GolemPicFront:: INCBIN "pic/bmon/golem.pic"
+GolemPicBack:: INCBIN "pic/monback/golemb.pic"
+MagmarPicFront:: INCBIN "pic/bmon/magmar.pic"
+MagmarPicBack:: INCBIN "pic/monback/magmarb.pic"
+ElectabuzzPicFront:: INCBIN "pic/bmon/electabuzz.pic"
+ElectabuzzPicBack:: INCBIN "pic/monback/electabuzzb.pic"
+MagnetonPicFront:: INCBIN "pic/bmon/magneton.pic"
+MagnetonPicBack:: INCBIN "pic/monback/magnetonb.pic"
+KoffingPicFront:: INCBIN "pic/bmon/koffing.pic"
+KoffingPicBack:: INCBIN "pic/monback/koffingb.pic"
+MankeyPicFront:: INCBIN "pic/bmon/mankey.pic"
+MankeyPicBack:: INCBIN "pic/monback/mankeyb.pic"
+SeelPicFront:: INCBIN "pic/bmon/seel.pic"
+SeelPicBack:: INCBIN "pic/monback/seelb.pic"
+DiglettPicFront:: INCBIN "pic/bmon/diglett.pic"
+DiglettPicBack:: INCBIN "pic/monback/diglettb.pic"
+TaurosPicFront:: INCBIN "pic/bmon/tauros.pic"
+TaurosPicBack:: INCBIN "pic/monback/taurosb.pic"
+FarfetchdPicFront:: INCBIN "pic/bmon/farfetchd.pic"
+FarfetchdPicBack:: INCBIN "pic/monback/farfetchdb.pic"
+VenonatPicFront:: INCBIN "pic/bmon/venonat.pic"
+VenonatPicBack:: INCBIN "pic/monback/venonatb.pic"
+DragonitePicFront:: INCBIN "pic/bmon/dragonite.pic"
+DragonitePicBack:: INCBIN "pic/monback/dragoniteb.pic"
+DoduoPicFront:: INCBIN "pic/bmon/doduo.pic"
+DoduoPicBack:: INCBIN "pic/monback/doduob.pic"
+PoliwagPicFront:: INCBIN "pic/bmon/poliwag.pic"
+PoliwagPicBack:: INCBIN "pic/monback/poliwagb.pic"
+JynxPicFront:: INCBIN "pic/bmon/jynx.pic"
+JynxPicBack:: INCBIN "pic/monback/jynxb.pic"
+MoltresPicFront:: INCBIN "pic/bmon/moltres.pic"
+MoltresPicBack:: INCBIN "pic/monback/moltresb.pic"
+
+
+SECTION "Battle (bank A)", ROMX, BANK[$A]
INCLUDE "engine/battle/a.asm"
-SECTION "bankB",ROMX,BANK[$B]
-ArticunoPicFront: ; 2c000 (b:4000)
- INCBIN "pic/bmon/articuno.pic"
-ArticunoPicBack: ; 2c238 (b:4238)
- INCBIN "pic/monback/articunob.pic"
-ZapdosPicFront: ; 2c29d (b:429d)
- INCBIN "pic/bmon/zapdos.pic"
-ZapdosPicBack: ; 2c484 (b:4484)
- INCBIN "pic/monback/zapdosb.pic"
-DittoPicFront: ; 2c514 (b:4514)
- INCBIN "pic/bmon/ditto.pic"
-DittoPicBack: ; 2c5bd (b:45bd)
- INCBIN "pic/monback/dittob.pic"
-MeowthPicFront: ; 2c609 (b:4609)
- INCBIN "pic/bmon/meowth.pic"
-MeowthPicBack: ; 2c71f (b:471f)
- INCBIN "pic/monback/meowthb.pic"
-KrabbyPicFront: ; 2c777 (b:4777)
- INCBIN "pic/bmon/krabby.pic"
-KrabbyPicBack: ; 2c8b0 (b:48b0)
- INCBIN "pic/monback/krabbyb.pic"
-VulpixPicFront: ; 2c924 (b:4924)
- INCBIN "pic/bmon/vulpix.pic"
-VulpixPicBack: ; 2ca9a (b:4a9a)
- INCBIN "pic/monback/vulpixb.pic"
-NinetalesPicFront: ; 2caff (b:4aff)
- INCBIN "pic/bmon/ninetales.pic"
-NinetalesPicBack: ; 2ccfb (b:4cfb)
- INCBIN "pic/monback/ninetalesb.pic"
-PikachuPicFront: ; 2cd7d (b:4d7d)
- INCBIN "pic/bmon/pikachu.pic"
-PikachuPicBack: ; 2ce8b (b:4e8b)
- INCBIN "pic/monback/pikachub.pic"
-RaichuPicFront: ; 2cf03 (b:4f03)
- INCBIN "pic/bmon/raichu.pic"
-RaichuPicBack: ; 2d0c3 (b:50c3)
- INCBIN "pic/monback/raichub.pic"
-DratiniPicFront: ; 2d151 (b:5151)
- INCBIN "pic/bmon/dratini.pic"
-DratiniPicBack: ; 2d234 (b:5234)
- INCBIN "pic/monback/dratinib.pic"
-DragonairPicFront: ; 2d297 (b:5297)
- INCBIN "pic/bmon/dragonair.pic"
-DragonairPicBack: ; 2d3d9 (b:53d9)
- INCBIN "pic/monback/dragonairb.pic"
-KabutoPicFront: ; 2d464 (b:5464)
- INCBIN "pic/bmon/kabuto.pic"
-KabutoPicBack: ; 2d529 (b:5529)
- INCBIN "pic/monback/kabutob.pic"
-KabutopsPicFront: ; 2d583 (b:5583)
- INCBIN "pic/bmon/kabutops.pic"
-KabutopsPicBack: ; 2d73c (b:573c)
- INCBIN "pic/monback/kabutopsb.pic"
-HorseaPicFront: ; 2d7c1 (b:57c1)
- INCBIN "pic/bmon/horsea.pic"
-HorseaPicBack: ; 2d873 (b:5873)
- INCBIN "pic/monback/horseab.pic"
-SeadraPicFront: ; 2d8c4 (b:58c4)
- INCBIN "pic/bmon/seadra.pic"
-SeadraPicBack: ; 2da2b (b:5a2b)
- INCBIN "pic/monback/seadrab.pic"
-SandshrewPicFront: ; 2dac9 (b:5ac9)
- INCBIN "pic/bmon/sandshrew.pic"
-SandshrewPicBack: ; 2dbe7 (b:5be7)
- INCBIN "pic/monback/sandshrewb.pic"
-SandslashPicFront: ; 2dc6b (b:5c6b)
- INCBIN "pic/bmon/sandslash.pic"
-SandslashPicBack: ; 2de04 (b:5e04)
- INCBIN "pic/monback/sandslashb.pic"
-OmanytePicFront: ; 2de9d (b:5e9d)
- INCBIN "pic/bmon/omanyte.pic"
-OmanytePicBack: ; 2df76 (b:5f76)
- INCBIN "pic/monback/omanyteb.pic"
-OmastarPicFront: ; 2dfd3 (b:5fd3)
- INCBIN "pic/bmon/omastar.pic"
-OmastarPicBack: ; 2e18b (b:618b)
- INCBIN "pic/monback/omastarb.pic"
-JigglypuffPicFront: ; 2e22f (b:622f)
- INCBIN "pic/bmon/jigglypuff.pic"
-JigglypuffPicBack: ; 2e30f (b:630f)
- INCBIN "pic/monback/jigglypuffb.pic"
-WigglytuffPicFront: ; 2e348 (b:6348)
- INCBIN "pic/bmon/wigglytuff.pic"
-WigglytuffPicBack: ; 2e4bf (b:64bf)
- INCBIN "pic/monback/wigglytuffb.pic"
-EeveePicFront: ; 2e531 (b:6531)
- INCBIN "pic/bmon/eevee.pic"
-EeveePicBack: ; 2e625 (b:6625)
- INCBIN "pic/monback/eeveeb.pic"
-FlareonPicFront: ; 2e68d (b:668d)
- INCBIN "pic/bmon/flareon.pic"
-FlareonPicBack: ; 2e806 (b:6806)
- INCBIN "pic/monback/flareonb.pic"
-JolteonPicFront: ; 2e88f (b:688f)
- INCBIN "pic/bmon/jolteon.pic"
-JolteonPicBack: ; 2ea0a (b:6a0a)
- INCBIN "pic/monback/jolteonb.pic"
-VaporeonPicFront: ; 2eaae (b:6aae)
- INCBIN "pic/bmon/vaporeon.pic"
-VaporeonPicBack: ; 2ec02 (b:6c02)
- INCBIN "pic/monback/vaporeonb.pic"
-MachopPicFront: ; 2ec9f (b:6c9f)
- INCBIN "pic/bmon/machop.pic"
-MachopPicBack: ; 2eda2 (b:6da2)
- INCBIN "pic/monback/machopb.pic"
-ZubatPicFront: ; 2ee0c (b:6e0c)
- INCBIN "pic/bmon/zubat.pic"
-ZubatPicBack: ; 2ef17 (b:6f17)
- INCBIN "pic/monback/zubatb.pic"
-EkansPicFront: ; 2ef6b (b:6f6b)
- INCBIN "pic/bmon/ekans.pic"
-EkansPicBack: ; 2f06d (b:706d)
- INCBIN "pic/monback/ekansb.pic"
-ParasPicFront: ; 2f0b4 (b:70b4)
- INCBIN "pic/bmon/paras.pic"
-ParasPicBack: ; 2f177 (b:7177)
- INCBIN "pic/monback/parasb.pic"
-PoliwhirlPicFront: ; 2f1ed (b:71ed)
- INCBIN "pic/bmon/poliwhirl.pic"
-PoliwhirlPicBack: ; 2f35e (b:735e)
- INCBIN "pic/monback/poliwhirlb.pic"
-PoliwrathPicFront: ; 2f3c1 (b:73c1)
- INCBIN "pic/bmon/poliwrath.pic"
-PoliwrathPicBack: ; 2f52c (b:752c)
- INCBIN "pic/monback/poliwrathb.pic"
-WeedlePicFront: ; 2f57d (b:757d)
- INCBIN "pic/bmon/weedle.pic"
-WeedlePicBack: ; 2f624 (b:7624)
- INCBIN "pic/monback/weedleb.pic"
-KakunaPicFront: ; 2f677 (b:7677)
- INCBIN "pic/bmon/kakuna.pic"
-KakunaPicBack: ; 2f736 (b:7736)
- INCBIN "pic/monback/kakunab.pic"
-BeedrillPicFront: ; 2f788 (b:7788)
- INCBIN "pic/bmon/beedrill.pic"
-BeedrillPicBack: ; 2f980 (b:7980)
- INCBIN "pic/monback/beedrillb.pic"
-FossilKabutopsPic: ; 2f9e8 (b:79e8)
- INCBIN "pic/bmon/fossilkabutops.pic"
+
+SECTION "Pics 3", ROMX, BANK[PICS_3]
+
+ArticunoPicFront:: INCBIN "pic/bmon/articuno.pic"
+ArticunoPicBack:: INCBIN "pic/monback/articunob.pic"
+ZapdosPicFront:: INCBIN "pic/bmon/zapdos.pic"
+ZapdosPicBack:: INCBIN "pic/monback/zapdosb.pic"
+DittoPicFront:: INCBIN "pic/bmon/ditto.pic"
+DittoPicBack:: INCBIN "pic/monback/dittob.pic"
+MeowthPicFront:: INCBIN "pic/bmon/meowth.pic"
+MeowthPicBack:: INCBIN "pic/monback/meowthb.pic"
+KrabbyPicFront:: INCBIN "pic/bmon/krabby.pic"
+KrabbyPicBack:: INCBIN "pic/monback/krabbyb.pic"
+VulpixPicFront:: INCBIN "pic/bmon/vulpix.pic"
+VulpixPicBack:: INCBIN "pic/monback/vulpixb.pic"
+NinetalesPicFront:: INCBIN "pic/bmon/ninetales.pic"
+NinetalesPicBack:: INCBIN "pic/monback/ninetalesb.pic"
+PikachuPicFront:: INCBIN "pic/bmon/pikachu.pic"
+PikachuPicBack:: INCBIN "pic/monback/pikachub.pic"
+RaichuPicFront:: INCBIN "pic/bmon/raichu.pic"
+RaichuPicBack:: INCBIN "pic/monback/raichub.pic"
+DratiniPicFront:: INCBIN "pic/bmon/dratini.pic"
+DratiniPicBack:: INCBIN "pic/monback/dratinib.pic"
+DragonairPicFront:: INCBIN "pic/bmon/dragonair.pic"
+DragonairPicBack:: INCBIN "pic/monback/dragonairb.pic"
+KabutoPicFront:: INCBIN "pic/bmon/kabuto.pic"
+KabutoPicBack:: INCBIN "pic/monback/kabutob.pic"
+KabutopsPicFront:: INCBIN "pic/bmon/kabutops.pic"
+KabutopsPicBack:: INCBIN "pic/monback/kabutopsb.pic"
+HorseaPicFront:: INCBIN "pic/bmon/horsea.pic"
+HorseaPicBack:: INCBIN "pic/monback/horseab.pic"
+SeadraPicFront:: INCBIN "pic/bmon/seadra.pic"
+SeadraPicBack:: INCBIN "pic/monback/seadrab.pic"
+SandshrewPicFront:: INCBIN "pic/bmon/sandshrew.pic"
+SandshrewPicBack:: INCBIN "pic/monback/sandshrewb.pic"
+SandslashPicFront:: INCBIN "pic/bmon/sandslash.pic"
+SandslashPicBack:: INCBIN "pic/monback/sandslashb.pic"
+OmanytePicFront:: INCBIN "pic/bmon/omanyte.pic"
+OmanytePicBack:: INCBIN "pic/monback/omanyteb.pic"
+OmastarPicFront:: INCBIN "pic/bmon/omastar.pic"
+OmastarPicBack:: INCBIN "pic/monback/omastarb.pic"
+JigglypuffPicFront:: INCBIN "pic/bmon/jigglypuff.pic"
+JigglypuffPicBack:: INCBIN "pic/monback/jigglypuffb.pic"
+WigglytuffPicFront:: INCBIN "pic/bmon/wigglytuff.pic"
+WigglytuffPicBack:: INCBIN "pic/monback/wigglytuffb.pic"
+EeveePicFront:: INCBIN "pic/bmon/eevee.pic"
+EeveePicBack:: INCBIN "pic/monback/eeveeb.pic"
+FlareonPicFront:: INCBIN "pic/bmon/flareon.pic"
+FlareonPicBack:: INCBIN "pic/monback/flareonb.pic"
+JolteonPicFront:: INCBIN "pic/bmon/jolteon.pic"
+JolteonPicBack:: INCBIN "pic/monback/jolteonb.pic"
+VaporeonPicFront:: INCBIN "pic/bmon/vaporeon.pic"
+VaporeonPicBack:: INCBIN "pic/monback/vaporeonb.pic"
+MachopPicFront:: INCBIN "pic/bmon/machop.pic"
+MachopPicBack:: INCBIN "pic/monback/machopb.pic"
+ZubatPicFront:: INCBIN "pic/bmon/zubat.pic"
+ZubatPicBack:: INCBIN "pic/monback/zubatb.pic"
+EkansPicFront:: INCBIN "pic/bmon/ekans.pic"
+EkansPicBack:: INCBIN "pic/monback/ekansb.pic"
+ParasPicFront:: INCBIN "pic/bmon/paras.pic"
+ParasPicBack:: INCBIN "pic/monback/parasb.pic"
+PoliwhirlPicFront:: INCBIN "pic/bmon/poliwhirl.pic"
+PoliwhirlPicBack:: INCBIN "pic/monback/poliwhirlb.pic"
+PoliwrathPicFront:: INCBIN "pic/bmon/poliwrath.pic"
+PoliwrathPicBack:: INCBIN "pic/monback/poliwrathb.pic"
+WeedlePicFront:: INCBIN "pic/bmon/weedle.pic"
+WeedlePicBack:: INCBIN "pic/monback/weedleb.pic"
+KakunaPicFront:: INCBIN "pic/bmon/kakuna.pic"
+KakunaPicBack:: INCBIN "pic/monback/kakunab.pic"
+BeedrillPicFront:: INCBIN "pic/bmon/beedrill.pic"
+BeedrillPicBack:: INCBIN "pic/monback/beedrillb.pic"
-INCLUDE "engine/battle/b.asm"
+FossilKabutopsPic:: INCBIN "pic/bmon/fossilkabutops.pic"
-TrainerInfoTextBoxTileGraphics: ; 2fb98 (b:7b98)
- INCBIN "gfx/trainer_info.2bpp"
-BlankLeaderNames: ; 2fc28 (b:7c28)
- INCBIN "gfx/blank_leader_names.2bpp"
+SECTION "Battle (bank B)", ROMX, BANK[$B]
-CircleTile: ; 2fd88 (b:7d88)
- INCBIN "gfx/circle_tile.2bpp"
+INCLUDE "engine/battle/b.asm"
-BadgeNumbersTileGraphics: ; 2fd98 (b:7d98)
- INCBIN "gfx/badge_numbers.2bpp"
+TrainerInfoTextBoxTileGraphics: INCBIN "gfx/trainer_info.2bpp"
+BlankLeaderNames: INCBIN "gfx/blank_leader_names.2bpp"
+CircleTile: INCBIN "gfx/circle_tile.2bpp"
+BadgeNumbersTileGraphics: INCBIN "gfx/badge_numbers.2bpp"
INCLUDE "engine/items/tmhm.asm"
-
INCLUDE "engine/battle/b_2.asm"
-
INCLUDE "engine/game_corner_slots2.asm"
-SECTION "bankC",ROMX,BANK[$C]
-DodrioPicFront: ; 30000 (c:4000)
- INCBIN "pic/bmon/dodrio.pic"
-DodrioPicBack: ; 301a2 (c:41a2)
- INCBIN "pic/monback/dodriob.pic"
-PrimeapePicFront: ; 30247 (c:4247)
- INCBIN "pic/bmon/primeape.pic"
-PrimeapePicBack: ; 30408 (c:4408)
- INCBIN "pic/monback/primeapeb.pic"
-DugtrioPicFront: ; 30480 (c:4480)
- INCBIN "pic/bmon/dugtrio.pic"
-DugtrioPicBack: ; 3062a (c:462a)
- INCBIN "pic/monback/dugtriob.pic"
-VenomothPicFront: ; 306a9 (c:46a9)
- INCBIN "pic/bmon/venomoth.pic"
-VenomothPicBack: ; 30841 (c:4841)
- INCBIN "pic/monback/venomothb.pic"
-DewgongPicFront: ; 30899 (c:4899)
- INCBIN "pic/bmon/dewgong.pic"
-DewgongPicBack: ; 309e2 (c:49e2)
- INCBIN "pic/monback/dewgongb.pic"
-CaterpiePicFront: ; 30a49 (c:4a49)
- INCBIN "pic/bmon/caterpie.pic"
-CaterpiePicBack: ; 30ae1 (c:4ae1)
- INCBIN "pic/monback/caterpieb.pic"
-MetapodPicFront: ; 30b3a (c:4b3a)
- INCBIN "pic/bmon/metapod.pic"
-MetapodPicBack: ; 30bc8 (c:4bc8)
- INCBIN "pic/monback/metapodb.pic"
-ButterfreePicFront: ; 30c37 (c:4c37)
- INCBIN "pic/bmon/butterfree.pic"
-ButterfreePicBack: ; 30e0e (c:4e0e)
- INCBIN "pic/monback/butterfreeb.pic"
-MachampPicFront: ; 30e93 (c:4e93)
- INCBIN "pic/bmon/machamp.pic"
-MachampPicBack: ; 3108c (c:508c)
- INCBIN "pic/monback/machampb.pic"
-GolduckPicFront: ; 31108 (c:5108)
- INCBIN "pic/bmon/golduck.pic"
-GolduckPicBack: ; 312c2 (c:52c2)
- INCBIN "pic/monback/golduckb.pic"
-HypnoPicFront: ; 3135d (c:535d)
- INCBIN "pic/bmon/hypno.pic"
-HypnoPicBack: ; 31552 (c:5552)
- INCBIN "pic/monback/hypnob.pic"
-GolbatPicFront: ; 315e0 (c:55e0)
- INCBIN "pic/bmon/golbat.pic"
-GolbatPicBack: ; 3180a (c:580a)
- INCBIN "pic/monback/golbatb.pic"
-MewtwoPicFront: ; 3187f (c:587f)
- INCBIN "pic/bmon/mewtwo.pic"
-MewtwoPicBack: ; 31a85 (c:5a85)
- INCBIN "pic/monback/mewtwob.pic"
-SnorlaxPicFront: ; 31b19 (c:5b19)
- INCBIN "pic/bmon/snorlax.pic"
-SnorlaxPicBack: ; 31ce5 (c:5ce5)
- INCBIN "pic/monback/snorlaxb.pic"
-MagikarpPicFront: ; 31d31 (c:5d31)
- INCBIN "pic/bmon/magikarp.pic"
-MagikarpPicBack: ; 31ec3 (c:5ec3)
- INCBIN "pic/monback/magikarpb.pic"
-MukPicFront: ; 31f56 (c:5f56)
- INCBIN "pic/bmon/muk.pic"
-MukPicBack: ; 3215f (c:615f)
- INCBIN "pic/monback/mukb.pic"
-KinglerPicFront: ; 321ec (c:61ec)
- INCBIN "pic/bmon/kingler.pic"
-KinglerPicBack: ; 323de (c:63de)
- INCBIN "pic/monback/kinglerb.pic"
-CloysterPicFront: ; 3247f (c:647f)
- INCBIN "pic/bmon/cloyster.pic"
-CloysterPicBack: ; 326ab (c:66ab)
- INCBIN "pic/monback/cloysterb.pic"
-ElectrodePicFront: ; 32760 (c:6760)
- INCBIN "pic/bmon/electrode.pic"
-ElectrodePicBack: ; 32827 (c:6827)
- INCBIN "pic/monback/electrodeb.pic"
-ClefablePicFront: ; 3288c (c:688c)
- INCBIN "pic/bmon/clefable.pic"
-ClefablePicBack: ; 329b8 (c:69b8)
- INCBIN "pic/monback/clefableb.pic"
-WeezingPicFront: ; 32a44 (c:6a44)
- INCBIN "pic/bmon/weezing.pic"
-WeezingPicBack: ; 32c76 (c:6c76)
- INCBIN "pic/monback/weezingb.pic"
-PersianPicFront: ; 32d1e (c:6d1e)
- INCBIN "pic/bmon/persian.pic"
-PersianPicBack: ; 32f04 (c:6f04)
- INCBIN "pic/monback/persianb.pic"
-MarowakPicFront: ; 32f8f (c:6f8f)
- INCBIN "pic/bmon/marowak.pic"
-MarowakPicBack: ; 33101 (c:7101)
- INCBIN "pic/monback/marowakb.pic"
-HaunterPicFront: ; 3318a (c:718a)
- INCBIN "pic/bmon/haunter.pic"
-HaunterPicBack: ; 33345 (c:7345)
- INCBIN "pic/monback/haunterb.pic"
-AbraPicFront: ; 333cc (c:73cc)
- INCBIN "pic/bmon/abra.pic"
-AbraPicBack: ; 334cf (c:74cf)
- INCBIN "pic/monback/abrab.pic"
-AlakazamPicFront: ; 3355a (c:755a)
- INCBIN "pic/bmon/alakazam.pic"
-AlakazamPicBack: ; 33779 (c:7779)
- INCBIN "pic/monback/alakazamb.pic"
-PidgeottoPicFront: ; 3380a (c:780a)
- INCBIN "pic/bmon/pidgeotto.pic"
-PidgeottoPicBack: ; 3395b (c:795b)
- INCBIN "pic/monback/pidgeottob.pic"
-PidgeotPicFront: ; 339c2 (c:79c2)
- INCBIN "pic/bmon/pidgeot.pic"
-PidgeotPicBack: ; 33b79 (c:7b79)
- INCBIN "pic/monback/pidgeotb.pic"
-StarmiePicFront: ; 33c1c (c:7c1c)
- INCBIN "pic/bmon/starmie.pic"
-StarmiePicBack: ; 33dac (c:7dac)
- INCBIN "pic/monback/starmieb.pic"
-RedPicBack: ; 33e0a (c:7e0a)
- INCBIN "pic/trainer/redb.pic"
-OldManPic: ; 33e9a (c:7e9a)
- INCBIN "pic/trainer/oldman.pic"
-INCLUDE "engine/battle/c.asm"
+SECTION "Pics 4", ROMX, BANK[PICS_4]
-SECTION "bankD",ROMX,BANK[$D]
-BulbasaurPicFront: ; 34000 (d:4000)
- INCBIN "pic/bmon/bulbasaur.pic"
-BulbasaurPicBack: ; 340e5 (d:40e5)
- INCBIN "pic/monback/bulbasaurb.pic"
-VenusaurPicFront: ; 34162 (d:4162)
- INCBIN "pic/bmon/venusaur.pic"
-VenusaurPicBack: ; 34397 (d:4397)
- INCBIN "pic/monback/venusaurb.pic"
-TentacruelPicFront: ; 34455 (d:4455)
- INCBIN "pic/bmon/tentacruel.pic"
-TentacruelPicBack: ; 345c3 (d:45c3)
- INCBIN "pic/monback/tentacruelb.pic"
-GoldeenPicFront: ; 3466f (d:466f)
- INCBIN "pic/bmon/goldeen.pic"
-GoldeenPicBack: ; 34796 (d:4796)
- INCBIN "pic/monback/goldeenb.pic"
-SeakingPicFront: ; 34803 (d:4803)
- INCBIN "pic/bmon/seaking.pic"
-SeakingPicBack: ; 34a03 (d:4a03)
- INCBIN "pic/monback/seakingb.pic"
-PonytaPicFront: ; 34ab1 (d:4ab1)
- INCBIN "pic/bmon/ponyta.pic"
-RapidashPicFront: ; 34c10 (d:4c10)
- INCBIN "pic/bmon/rapidash.pic"
-PonytaPicBack: ; 34e32 (d:4e32)
- INCBIN "pic/monback/ponytab.pic"
-RapidashPicBack: ; 34eba (d:4eba)
- INCBIN "pic/monback/rapidashb.pic"
-RattataPicFront: ; 34f6a (d:4f6a)
- INCBIN "pic/bmon/rattata.pic"
-RattataPicBack: ; 35041 (d:5041)
- INCBIN "pic/monback/rattatab.pic"
-RaticatePicFront: ; 3507a (d:507a)
- INCBIN "pic/bmon/raticate.pic"
-RaticatePicBack: ; 3520d (d:520d)
- INCBIN "pic/monback/raticateb.pic"
-NidorinoPicFront: ; 35282 (d:5282)
- INCBIN "pic/bmon/nidorino.pic"
-NidorinoPicBack: ; 353f0 (d:53f0)
- INCBIN "pic/monback/nidorinob.pic"
-NidorinaPicFront: ; 3548b (d:548b)
- INCBIN "pic/bmon/nidorina.pic"
-NidorinaPicBack: ; 355c8 (d:55c8)
- INCBIN "pic/monback/nidorinab.pic"
-GeodudePicFront: ; 3564f (d:564f)
- INCBIN "pic/bmon/geodude.pic"
-GeodudePicBack: ; 35729 (d:5729)
- INCBIN "pic/monback/geodudeb.pic"
-PorygonPicFront: ; 35784 (d:5784)
- INCBIN "pic/bmon/porygon.pic"
-PorygonPicBack: ; 358d1 (d:58d1)
- INCBIN "pic/monback/porygonb.pic"
-AerodactylPicFront: ; 35931 (d:5931)
- INCBIN "pic/bmon/aerodactyl.pic"
-AerodactylPicBack: ; 35aec (d:5aec)
- INCBIN "pic/monback/aerodactylb.pic"
-MagnemitePicFront: ; 35b87 (d:5b87)
- INCBIN "pic/bmon/magnemite.pic"
-MagnemitePicBack: ; 35c0d (d:5c0d)
- INCBIN "pic/monback/magnemiteb.pic"
-CharmanderPicFront: ; 35c5c (d:5c5c)
- INCBIN "pic/bmon/charmander.pic"
-CharmanderPicBack: ; 35d5c (d:5d5c)
- INCBIN "pic/monback/charmanderb.pic"
-SquirtlePicFront: ; 35db8 (d:5db8)
- INCBIN "pic/bmon/squirtle.pic"
-SquirtlePicBack: ; 35e8f (d:5e8f)
- INCBIN "pic/monback/squirtleb.pic"
-CharmeleonPicFront: ; 35f0c (d:5f0c)
- INCBIN "pic/bmon/charmeleon.pic"
-CharmeleonPicBack: ; 36048 (d:6048)
- INCBIN "pic/monback/charmeleonb.pic"
-WartortlePicFront: ; 360b1 (d:60b1)
- INCBIN "pic/bmon/wartortle.pic"
-WartortlePicBack: ; 361f1 (d:61f1)
- INCBIN "pic/monback/wartortleb.pic"
-CharizardPicFront: ; 36286 (d:6286)
- INCBIN "pic/bmon/charizard.pic"
-CharizardPicBack: ; 36495 (d:6495)
- INCBIN "pic/monback/charizardb.pic"
-FossilAerodactylPic: ; 36536 (d:6536)
- INCBIN "pic/bmon/fossilaerodactyl.pic"
-GhostPic: ; 366b5 (d:66b5)
- INCBIN "pic/other/ghost.pic"
-OddishPicFront: ; 3680b (d:680b)
- INCBIN "pic/bmon/oddish.pic"
-OddishPicBack: ; 368a9 (d:68a9)
- INCBIN "pic/monback/oddishb.pic"
-GloomPicFront: ; 36941 (d:6941)
- INCBIN "pic/bmon/gloom.pic"
-GloomPicBack: ; 36a78 (d:6a78)
- INCBIN "pic/monback/gloomb.pic"
-VileplumePicFront: ; 36b21 (d:6b21)
- INCBIN "pic/bmon/vileplume.pic"
-VileplumePicBack: ; 36c82 (d:6c82)
- INCBIN "pic/monback/vileplumeb.pic"
-BellsproutPicFront: ; 36d00 (d:6d00)
- INCBIN "pic/bmon/bellsprout.pic"
-BellsproutPicBack: ; 36dba (d:6dba)
- INCBIN "pic/monback/bellsproutb.pic"
-WeepinbellPicFront: ; 36e30 (d:6e30)
- INCBIN "pic/bmon/weepinbell.pic"
-WeepinbellPicBack: ; 36f6f (d:6f6f)
- INCBIN "pic/monback/weepinbellb.pic"
-VictreebelPicFront: ; 36fea (d:6fea)
- INCBIN "pic/bmon/victreebel.pic"
-VictreebelPicBack: ; 371b2 (d:71b2)
- INCBIN "pic/monback/victreebelb.pic"
+DodrioPicFront:: INCBIN "pic/bmon/dodrio.pic"
+DodrioPicBack:: INCBIN "pic/monback/dodriob.pic"
+PrimeapePicFront:: INCBIN "pic/bmon/primeape.pic"
+PrimeapePicBack:: INCBIN "pic/monback/primeapeb.pic"
+DugtrioPicFront:: INCBIN "pic/bmon/dugtrio.pic"
+DugtrioPicBack:: INCBIN "pic/monback/dugtriob.pic"
+VenomothPicFront:: INCBIN "pic/bmon/venomoth.pic"
+VenomothPicBack:: INCBIN "pic/monback/venomothb.pic"
+DewgongPicFront:: INCBIN "pic/bmon/dewgong.pic"
+DewgongPicBack:: INCBIN "pic/monback/dewgongb.pic"
+CaterpiePicFront:: INCBIN "pic/bmon/caterpie.pic"
+CaterpiePicBack:: INCBIN "pic/monback/caterpieb.pic"
+MetapodPicFront:: INCBIN "pic/bmon/metapod.pic"
+MetapodPicBack:: INCBIN "pic/monback/metapodb.pic"
+ButterfreePicFront:: INCBIN "pic/bmon/butterfree.pic"
+ButterfreePicBack:: INCBIN "pic/monback/butterfreeb.pic"
+MachampPicFront:: INCBIN "pic/bmon/machamp.pic"
+MachampPicBack:: INCBIN "pic/monback/machampb.pic"
+GolduckPicFront:: INCBIN "pic/bmon/golduck.pic"
+GolduckPicBack:: INCBIN "pic/monback/golduckb.pic"
+HypnoPicFront:: INCBIN "pic/bmon/hypno.pic"
+HypnoPicBack:: INCBIN "pic/monback/hypnob.pic"
+GolbatPicFront:: INCBIN "pic/bmon/golbat.pic"
+GolbatPicBack:: INCBIN "pic/monback/golbatb.pic"
+MewtwoPicFront:: INCBIN "pic/bmon/mewtwo.pic"
+MewtwoPicBack:: INCBIN "pic/monback/mewtwob.pic"
+SnorlaxPicFront:: INCBIN "pic/bmon/snorlax.pic"
+SnorlaxPicBack:: INCBIN "pic/monback/snorlaxb.pic"
+MagikarpPicFront:: INCBIN "pic/bmon/magikarp.pic"
+MagikarpPicBack:: INCBIN "pic/monback/magikarpb.pic"
+MukPicFront:: INCBIN "pic/bmon/muk.pic"
+MukPicBack:: INCBIN "pic/monback/mukb.pic"
+KinglerPicFront:: INCBIN "pic/bmon/kingler.pic"
+KinglerPicBack:: INCBIN "pic/monback/kinglerb.pic"
+CloysterPicFront:: INCBIN "pic/bmon/cloyster.pic"
+CloysterPicBack:: INCBIN "pic/monback/cloysterb.pic"
+ElectrodePicFront:: INCBIN "pic/bmon/electrode.pic"
+ElectrodePicBack:: INCBIN "pic/monback/electrodeb.pic"
+ClefablePicFront:: INCBIN "pic/bmon/clefable.pic"
+ClefablePicBack:: INCBIN "pic/monback/clefableb.pic"
+WeezingPicFront:: INCBIN "pic/bmon/weezing.pic"
+WeezingPicBack:: INCBIN "pic/monback/weezingb.pic"
+PersianPicFront:: INCBIN "pic/bmon/persian.pic"
+PersianPicBack:: INCBIN "pic/monback/persianb.pic"
+MarowakPicFront:: INCBIN "pic/bmon/marowak.pic"
+MarowakPicBack:: INCBIN "pic/monback/marowakb.pic"
+HaunterPicFront:: INCBIN "pic/bmon/haunter.pic"
+HaunterPicBack:: INCBIN "pic/monback/haunterb.pic"
+AbraPicFront:: INCBIN "pic/bmon/abra.pic"
+AbraPicBack:: INCBIN "pic/monback/abrab.pic"
+AlakazamPicFront:: INCBIN "pic/bmon/alakazam.pic"
+AlakazamPicBack:: INCBIN "pic/monback/alakazamb.pic"
+PidgeottoPicFront:: INCBIN "pic/bmon/pidgeotto.pic"
+PidgeottoPicBack:: INCBIN "pic/monback/pidgeottob.pic"
+PidgeotPicFront:: INCBIN "pic/bmon/pidgeot.pic"
+PidgeotPicBack:: INCBIN "pic/monback/pidgeotb.pic"
+StarmiePicFront:: INCBIN "pic/bmon/starmie.pic"
+StarmiePicBack:: INCBIN "pic/monback/starmieb.pic"
-INCLUDE "engine/titlescreen2.asm"
+RedPicBack:: INCBIN "pic/trainer/redb.pic"
+OldManPic:: INCBIN "pic/trainer/oldman.pic"
-INCLUDE "engine/battle/d.asm"
-INCLUDE "engine/slot_machine.asm"
+SECTION "Battle (bank C)", ROMX, BANK[$C]
+INCLUDE "engine/battle/c.asm"
-INCLUDE "engine/overworld/pewter_guys.asm"
-INCLUDE "engine/multiply_divide.asm"
+SECTION "Pics 5", ROMX, BANK[PICS_5]
+BulbasaurPicFront:: INCBIN "pic/bmon/bulbasaur.pic"
+BulbasaurPicBack:: INCBIN "pic/monback/bulbasaurb.pic"
+VenusaurPicFront:: INCBIN "pic/bmon/venusaur.pic"
+VenusaurPicBack:: INCBIN "pic/monback/venusaurb.pic"
+TentacruelPicFront:: INCBIN "pic/bmon/tentacruel.pic"
+TentacruelPicBack:: INCBIN "pic/monback/tentacruelb.pic"
+GoldeenPicFront:: INCBIN "pic/bmon/goldeen.pic"
+GoldeenPicBack:: INCBIN "pic/monback/goldeenb.pic"
+SeakingPicFront:: INCBIN "pic/bmon/seaking.pic"
+SeakingPicBack:: INCBIN "pic/monback/seakingb.pic"
+PonytaPicFront:: INCBIN "pic/bmon/ponyta.pic"
+RapidashPicFront:: INCBIN "pic/bmon/rapidash.pic"
+PonytaPicBack:: INCBIN "pic/monback/ponytab.pic"
+RapidashPicBack:: INCBIN "pic/monback/rapidashb.pic"
+RattataPicFront:: INCBIN "pic/bmon/rattata.pic"
+RattataPicBack:: INCBIN "pic/monback/rattatab.pic"
+RaticatePicFront:: INCBIN "pic/bmon/raticate.pic"
+RaticatePicBack:: INCBIN "pic/monback/raticateb.pic"
+NidorinoPicFront:: INCBIN "pic/bmon/nidorino.pic"
+NidorinoPicBack:: INCBIN "pic/monback/nidorinob.pic"
+NidorinaPicFront:: INCBIN "pic/bmon/nidorina.pic"
+NidorinaPicBack:: INCBIN "pic/monback/nidorinab.pic"
+GeodudePicFront:: INCBIN "pic/bmon/geodude.pic"
+GeodudePicBack:: INCBIN "pic/monback/geodudeb.pic"
+PorygonPicFront:: INCBIN "pic/bmon/porygon.pic"
+PorygonPicBack:: INCBIN "pic/monback/porygonb.pic"
+AerodactylPicFront:: INCBIN "pic/bmon/aerodactyl.pic"
+AerodactylPicBack:: INCBIN "pic/monback/aerodactylb.pic"
+MagnemitePicFront:: INCBIN "pic/bmon/magnemite.pic"
+MagnemitePicBack:: INCBIN "pic/monback/magnemiteb.pic"
+CharmanderPicFront:: INCBIN "pic/bmon/charmander.pic"
+CharmanderPicBack:: INCBIN "pic/monback/charmanderb.pic"
+SquirtlePicFront:: INCBIN "pic/bmon/squirtle.pic"
+SquirtlePicBack:: INCBIN "pic/monback/squirtleb.pic"
+CharmeleonPicFront:: INCBIN "pic/bmon/charmeleon.pic"
+CharmeleonPicBack:: INCBIN "pic/monback/charmeleonb.pic"
+WartortlePicFront:: INCBIN "pic/bmon/wartortle.pic"
+WartortlePicBack:: INCBIN "pic/monback/wartortleb.pic"
+CharizardPicFront:: INCBIN "pic/bmon/charizard.pic"
+CharizardPicBack:: INCBIN "pic/monback/charizardb.pic"
+FossilAerodactylPic:: INCBIN "pic/bmon/fossilaerodactyl.pic"
+GhostPic:: INCBIN "pic/other/ghost.pic"
+OddishPicFront:: INCBIN "pic/bmon/oddish.pic"
+OddishPicBack:: INCBIN "pic/monback/oddishb.pic"
+GloomPicFront:: INCBIN "pic/bmon/gloom.pic"
+GloomPicBack:: INCBIN "pic/monback/gloomb.pic"
+VileplumePicFront:: INCBIN "pic/bmon/vileplume.pic"
+VileplumePicBack:: INCBIN "pic/monback/vileplumeb.pic"
+BellsproutPicFront:: INCBIN "pic/bmon/bellsprout.pic"
+BellsproutPicBack:: INCBIN "pic/monback/bellsproutb.pic"
+WeepinbellPicFront:: INCBIN "pic/bmon/weepinbell.pic"
+WeepinbellPicBack:: INCBIN "pic/monback/weepinbellb.pic"
+VictreebelPicFront:: INCBIN "pic/bmon/victreebel.pic"
+VictreebelPicBack:: INCBIN "pic/monback/victreebelb.pic"
+
+
+SECTION "Battle (bank D)", ROMX, BANK[$D]
+
+INCLUDE "engine/titlescreen2.asm"
+INCLUDE "engine/battle/d.asm"
+INCLUDE "engine/slot_machine.asm"
+INCLUDE "engine/overworld/pewter_guys.asm"
+INCLUDE "engine/multiply_divide.asm"
INCLUDE "engine/game_corner_slots.asm"
+
SECTION "bankE",ROMX,BANK[$E]
INCLUDE "data/moves.asm"
-
-INCLUDE "data/base_stats.asm"
-
+BaseStats: INCLUDE "data/base_stats.asm"
INCLUDE "data/cries.asm"
-
INCLUDE "engine/battle/e.asm"
-; tiles for gameboy and link cable graphics used for trading sequence animation
-TradingAnimationGraphics: ; 3a9be (e:69be)
+TradingAnimationGraphics:
INCBIN "gfx/game_boy.norepeat.2bpp"
INCBIN "gfx/link_cable.2bpp"
-; 4 tiles for actual wire transfer animation (pokeball wandering inside wire)
-TradingAnimationGraphics2: ; 3acce (e:6cce)
+TradingAnimationGraphics2:
+; Pokeball traveling through the link cable.
INCBIN "gfx/trade2.2bpp"
INCLUDE "engine/evos_moves.asm"
-
INCLUDE "engine/battle/e_2.asm"
+
SECTION "bankF",ROMX,BANK[$F]
INCLUDE "engine/battle/core.asm"
+
SECTION "bank10",ROMX,BANK[$10]
INCLUDE "engine/menu/pokedex.asm"
-
INCLUDE "engine/trade.asm"
-
INCLUDE "engine/intro.asm"
-
INCLUDE "engine/trade2.asm"
+
SECTION "bank11",ROMX,BANK[$11]
INCLUDE "data/mapHeaders/lavendertown.asm"
-
INCLUDE "data/mapObjects/lavendertown.asm"
+LavenderTownBlocks: INCBIN "maps/lavendertown.blk"
-LavenderTownBlocks: ; 44085 (11:4085)
- INCBIN "maps/lavendertown.blk"
+ViridianPokecenterBlocks: INCBIN "maps/viridianpokecenter.blk"
-ViridianPokecenterBlocks: ; 440df (11:40df)
- INCBIN "maps/viridianpokecenter.blk"
+SafariZoneRestHouse1Blocks:
+SafariZoneRestHouse2Blocks:
+SafariZoneRestHouse3Blocks:
+SafariZoneRestHouse4Blocks: INCBIN "maps/safarizoneresthouse1.blk"
-SafariZoneRestHouse1Blocks: ; 440fb (11:40fb)
-SafariZoneRestHouse2Blocks: ; 440fb (11:40fb)
-SafariZoneRestHouse3Blocks: ; 440fb (11:40fb)
-SafariZoneRestHouse4Blocks: ; 440fb (11:40fb)
- INCBIN "maps/safarizoneresthouse1.blk"
-
INCLUDE "scripts/lavendertown.asm"
INCLUDE "engine/pokedex_rating.asm"
INCLUDE "data/mapHeaders/viridianpokecenter.asm"
-
INCLUDE "scripts/viridianpokecenter.asm"
-
INCLUDE "data/mapObjects/viridianpokecenter.asm"
INCLUDE "data/mapHeaders/mansion1.asm"
-
INCLUDE "scripts/mansion1.asm"
-
INCLUDE "data/mapObjects/mansion1.asm"
+Mansion1Blocks: INCBIN "maps/mansion1.blk"
-Mansion1Blocks: ; 443fe (11:43fe)
- INCBIN "maps/mansion1.blk"
-
INCLUDE "data/mapHeaders/rocktunnel1.asm"
-
INCLUDE "scripts/rocktunnel1.asm"
-
INCLUDE "data/mapObjects/rocktunnel1.asm"
+RockTunnel1Blocks: INCBIN "maps/rocktunnel1.blk"
-RockTunnel1Blocks: ; 44675 (11:4675)
- INCBIN "maps/rocktunnel1.blk"
-
INCLUDE "data/mapHeaders/seafoamislands1.asm"
-
INCLUDE "scripts/seafoamislands1.asm"
-
INCLUDE "data/mapObjects/seafoamislands1.asm"
+SeafoamIslands1Blocks: INCBIN "maps/seafoamislands1.blk"
-SeafoamIslands1Blocks: ; 4489f (11:489f)
- INCBIN "maps/seafoamislands1.blk"
-
INCLUDE "data/mapHeaders/ssanne3.asm"
-
INCLUDE "scripts/ssanne3.asm"
-
INCLUDE "data/mapObjects/ssanne3.asm"
+SSAnne3Blocks: INCBIN "maps/ssanne3.blk"
-SSAnne3Blocks: ; 44956 (11:4956)
- INCBIN "maps/ssanne3.blk"
-
INCLUDE "data/mapHeaders/victoryroad3.asm"
-
INCLUDE "scripts/victoryroad3.asm"
-
INCLUDE "data/mapObjects/victoryroad3.asm"
+VictoryRoad3Blocks: INCBIN "maps/victoryroad3.blk"
-VictoryRoad3Blocks: ; 44b37 (11:4b37)
- INCBIN "maps/victoryroad3.blk"
-
INCLUDE "data/mapHeaders/rockethideout1.asm"
-
INCLUDE "scripts/rockethideout1.asm"
-
INCLUDE "data/mapObjects/rockethideout1.asm"
+RocketHideout1Blocks: INCBIN "maps/rockethideout1.blk"
-RocketHideout1Blocks: ; 44d49 (11:4d49)
- INCBIN "maps/rockethideout1.blk"
-
INCLUDE "data/mapHeaders/rockethideout2.asm"
-
INCLUDE "scripts/rockethideout2.asm"
-
INCLUDE "data/mapObjects/rockethideout2.asm"
+RocketHideout2Blocks: INCBIN "maps/rockethideout2.blk"
-RocketHideout2Blocks: ; 45147 (11:5147)
- INCBIN "maps/rockethideout2.blk"
-
INCLUDE "data/mapHeaders/rockethideout3.asm"
-
INCLUDE "scripts/rockethideout3.asm"
-
INCLUDE "data/mapObjects/rockethideout3.asm"
+RocketHideout3Blocks: INCBIN "maps/rockethideout3.blk"
-RocketHideout3Blocks: ; 4537f (11:537f)
- INCBIN "maps/rockethideout3.blk"
-
INCLUDE "data/mapHeaders/rockethideout4.asm"
-
INCLUDE "scripts/rockethideout4.asm"
-
INCLUDE "data/mapObjects/rockethideout4.asm"
+RocketHideout4Blocks: INCBIN "maps/rockethideout4.blk"
-RocketHideout4Blocks: ; 45650 (11:5650)
- INCBIN "maps/rockethideout4.blk"
-
INCLUDE "data/mapHeaders/rockethideoutelevator.asm"
-
INCLUDE "scripts/rockethideoutelevator.asm"
-
INCLUDE "data/mapObjects/rockethideoutelevator.asm"
+RocketHideoutElevatorBlocks: INCBIN "maps/rockethideoutelevator.blk"
-RocketHideoutElevatorBlocks: ; 457a8 (11:57a8)
- INCBIN "maps/rockethideoutelevator.blk"
-
INCLUDE "data/mapHeaders/silphcoelevator.asm"
-
INCLUDE "scripts/silphcoelevator.asm"
-
INCLUDE "data/mapObjects/silphcoelevator.asm"
+SilphCoElevatorBlocks: INCBIN "maps/silphcoelevator.blk"
-SilphCoElevatorBlocks: ; 4585b (11:585b)
- INCBIN "maps/silphcoelevator.blk"
-
INCLUDE "data/mapHeaders/safarizoneeast.asm"
-
INCLUDE "scripts/safarizoneeast.asm"
-
INCLUDE "data/mapObjects/safarizoneeast.asm"
+SafariZoneEastBlocks: INCBIN "maps/safarizoneeast.blk"
-SafariZoneEastBlocks: ; 458dc (11:58dc)
- INCBIN "maps/safarizoneeast.blk"
-
INCLUDE "data/mapHeaders/safarizonenorth.asm"
-
INCLUDE "scripts/safarizonenorth.asm"
-
INCLUDE "data/mapObjects/safarizonenorth.asm"
+SafariZoneNorthBlocks: INCBIN "maps/safarizonenorth.blk"
-SafariZoneNorthBlocks: ; 45a3e (11:5a3e)
- INCBIN "maps/safarizonenorth.blk"
-
INCLUDE "data/mapHeaders/safarizonecenter.asm"
-
INCLUDE "scripts/safarizonecenter.asm"
-
INCLUDE "data/mapObjects/safarizonecenter.asm"
+SafariZoneCenterBlocks: INCBIN "maps/safarizonecenter.blk"
-SafariZoneCenterBlocks: ; 45c1e (11:5c1e)
- INCBIN "maps/safarizonecenter.blk"
-
INCLUDE "data/mapHeaders/safarizoneresthouse1.asm"
-
INCLUDE "scripts/safarizoneresthouse1.asm"
-
INCLUDE "data/mapObjects/safarizoneresthouse1.asm"
INCLUDE "data/mapHeaders/safarizoneresthouse2.asm"
-
INCLUDE "scripts/safarizoneresthouse2.asm"
-
INCLUDE "data/mapObjects/safarizoneresthouse2.asm"
INCLUDE "data/mapHeaders/safarizoneresthouse3.asm"
-
INCLUDE "scripts/safarizoneresthouse3.asm"
-
INCLUDE "data/mapObjects/safarizoneresthouse3.asm"
INCLUDE "data/mapHeaders/safarizoneresthouse4.asm"
-
INCLUDE "scripts/safarizoneresthouse4.asm"
-
INCLUDE "data/mapObjects/safarizoneresthouse4.asm"
INCLUDE "data/mapHeaders/unknowndungeon2.asm"
-
INCLUDE "scripts/unknowndungeon2.asm"
-
INCLUDE "data/mapObjects/unknowndungeon2.asm"
+UnknownDungeon2Blocks: INCBIN "maps/unknowndungeon2.blk"
-UnknownDungeon2Blocks: ; 45e5d (11:5e5d)
- INCBIN "maps/unknowndungeon2.blk"
-
INCLUDE "data/mapHeaders/unknowndungeon3.asm"
-
INCLUDE "scripts/unknowndungeon3.asm"
-
INCLUDE "data/mapObjects/unknowndungeon3.asm"
+UnknownDungeon3Blocks: INCBIN "maps/unknowndungeon3.blk"
-UnknownDungeon3Blocks: ; 45f58 (11:5f58)
- INCBIN "maps/unknowndungeon3.blk"
-
INCLUDE "data/mapHeaders/rocktunnel2.asm"
-
INCLUDE "scripts/rocktunnel2.asm"
-
INCLUDE "data/mapObjects/rocktunnel2.asm"
+RockTunnel2Blocks: INCBIN "maps/rocktunnel2.blk"
-RockTunnel2Blocks: ; 461a1 (11:61a1)
- INCBIN "maps/rocktunnel2.blk"
-
INCLUDE "data/mapHeaders/seafoamislands2.asm"
-
INCLUDE "scripts/seafoamislands2.asm"
-
INCLUDE "data/mapObjects/seafoamislands2.asm"
+SeafoamIslands2Blocks: INCBIN "maps/seafoamislands2.blk"
-SeafoamIslands2Blocks: ; 463be (11:63be)
- INCBIN "maps/seafoamislands2.blk"
-
INCLUDE "data/mapHeaders/seafoamislands3.asm"
-
INCLUDE "scripts/seafoamislands3.asm"
-
INCLUDE "data/mapObjects/seafoamislands3.asm"
+SeafoamIslands3Blocks: INCBIN "maps/seafoamislands3.blk"
-SeafoamIslands3Blocks: ; 464fa (11:64fa)
- INCBIN "maps/seafoamislands3.blk"
-
INCLUDE "data/mapHeaders/seafoamislands4.asm"
-
INCLUDE "scripts/seafoamislands4.asm"
-
INCLUDE "data/mapObjects/seafoamislands4.asm"
+SeafoamIslands4Blocks: INCBIN "maps/seafoamislands4.blk"
-SeafoamIslands4Blocks: ; 46706 (11:6706)
- INCBIN "maps/seafoamislands4.blk"
-
INCLUDE "data/mapHeaders/seafoamislands5.asm"
-
INCLUDE "scripts/seafoamislands5.asm"
-
INCLUDE "data/mapObjects/seafoamislands5.asm"
+SeafoamIslands5Blocks: INCBIN "maps/seafoamislands5.blk"
-SeafoamIslands5Blocks: ; 468fa (11:68fa)
- INCBIN "maps/seafoamislands5.blk"
-
INCLUDE "engine/overworld/hidden_objects.asm"
+
SECTION "bank12",ROMX,BANK[$12]
INCLUDE "data/mapHeaders/route7.asm"
-
INCLUDE "data/mapObjects/route7.asm"
+Route7Blocks: INCBIN "maps/route7.blk"
-Route7Blocks: ; 48051 (12:4051)
- INCBIN "maps/route7.blk"
+CeladonPokecenterBlocks:
+RockTunnelPokecenterBlocks:
+MtMoonPokecenterBlocks: INCBIN "maps/mtmoonpokecenter.blk"
-CeladonPokecenterBlocks: ; 480ab (12:40ab)
-RockTunnelPokecenterBlocks: ; 480ab (12:40ab)
-MtMoonPokecenterBlocks: ; 480ab (12:40ab)
- INCBIN "maps/mtmoonpokecenter.blk"
+Route18GateBlocks:
+Route15GateBlocks:
+Route11GateBlocks: INCBIN "maps/route11gate.blk"
-Route18GateBlocks: ; 480c7 (12:40c7)
-Route15GateBlocks: ; 480c7 (12:40c7)
-Route11GateBlocks: ; 480c7 (12:40c7)
- INCBIN "maps/route11gate.blk"
+Route18GateUpstairsBlocks:
+Route16GateUpstairsBlocks:
+Route12GateUpstairsBlocks:
+Route15GateUpstairsBlocks:
+Route11GateUpstairsBlocks: INCBIN "maps/route11gateupstairs.blk"
-Route18GateUpstairsBlocks: ; 480db (12:40db)
-Route16GateUpstairsBlocks: ; 480db (12:40db)
-Route12GateUpstairsBlocks: ; 480db (12:40db)
-Route15GateUpstairsBlocks: ; 480db (12:40db)
-Route11GateUpstairsBlocks: ; 480db (12:40db)
- INCBIN "maps/route11gateupstairs.blk"
-
INCLUDE "engine/predefs12.asm"
INCLUDE "scripts/route7.asm"
INCLUDE "data/mapHeaders/redshouse1f.asm"
-
INCLUDE "scripts/redshouse1f.asm"
-
INCLUDE "data/mapObjects/redshouse1f.asm"
+RedsHouse1FBlocks: INCBIN "maps/redshouse1f.blk"
-RedsHouse1FBlocks: ; 48209 (12:4209)
- INCBIN "maps/redshouse1f.blk"
-
INCLUDE "data/mapHeaders/celadonmart3.asm"
-
INCLUDE "scripts/celadonmart3.asm"
-
INCLUDE "data/mapObjects/celadonmart3.asm"
+CeladonMart3Blocks: INCBIN "maps/celadonmart3.blk"
-CeladonMart3Blocks: ; 48322 (12:4322)
- INCBIN "maps/celadonmart3.blk"
-
INCLUDE "data/mapHeaders/celadonmart4.asm"
-
INCLUDE "scripts/celadonmart4.asm"
-
INCLUDE "data/mapObjects/celadonmart4.asm"
+CeladonMart4Blocks: INCBIN "maps/celadonmart4.blk"
-CeladonMart4Blocks: ; 483a1 (12:43a1)
- INCBIN "maps/celadonmart4.blk"
-
INCLUDE "data/mapHeaders/celadonmartroof.asm"
-
INCLUDE "scripts/celadonmartroof.asm"
-
INCLUDE "data/mapObjects/celadonmartroof.asm"
+CeladonMartRoofBlocks: INCBIN "maps/celadonmartroof.blk"
-CeladonMartRoofBlocks: ; 485cc (12:45cc)
- INCBIN "maps/celadonmartroof.blk"
-
INCLUDE "data/mapHeaders/celadonmartelevator.asm"
-
INCLUDE "scripts/celadonmartelevator.asm"
-
INCLUDE "data/mapObjects/celadonmartelevator.asm"
+CeladonMartElevatorBlocks: INCBIN "maps/celadonmartelevator.blk"
-CeladonMartElevatorBlocks: ; 48684 (12:4684)
- INCBIN "maps/celadonmartelevator.blk"
-
INCLUDE "data/mapHeaders/celadonmansion1.asm"
-
INCLUDE "scripts/celadonmansion1.asm"
-
INCLUDE "data/mapObjects/celadonmansion1.asm"
+CeladonMansion1Blocks: INCBIN "maps/celadonmansion1.blk"
-CeladonMansion1Blocks: ; 48716 (12:4716)
- INCBIN "maps/celadonmansion1.blk"
-
INCLUDE "data/mapHeaders/celadonmansion2.asm"
-
INCLUDE "scripts/celadonmansion2.asm"
-
INCLUDE "data/mapObjects/celadonmansion2.asm"
+CeladonMansion2Blocks: INCBIN "maps/celadonmansion2.blk"
-CeladonMansion2Blocks: ; 4876c (12:476c)
- INCBIN "maps/celadonmansion2.blk"
-
INCLUDE "data/mapHeaders/celadonmansion3.asm"
-
INCLUDE "scripts/celadonmansion3.asm"
-
INCLUDE "data/mapObjects/celadonmansion3.asm"
+CeladonMansion3Blocks: INCBIN "maps/celadonmansion3.blk"
-CeladonMansion3Blocks: ; 48847 (12:4847)
- INCBIN "maps/celadonmansion3.blk"
-
INCLUDE "data/mapHeaders/celadonmansion4.asm"
-
INCLUDE "scripts/celadonmansion4.asm"
-
INCLUDE "data/mapObjects/celadonmansion4.asm"
+CeladonMansion4Blocks: INCBIN "maps/celadonmansion4.blk"
-CeladonMansion4Blocks: ; 48894 (12:4894)
- INCBIN "maps/celadonmansion4.blk"
-
INCLUDE "data/mapHeaders/celadonpokecenter.asm"
-
INCLUDE "scripts/celadonpokecenter.asm"
-
INCLUDE "data/mapObjects/celadonpokecenter.asm"
INCLUDE "data/mapHeaders/celadongym.asm"
-
INCLUDE "scripts/celadongym.asm"
-
INCLUDE "data/mapObjects/celadongym.asm"
+CeladonGymBlocks: INCBIN "maps/celadongym.blk"
-CeladonGymBlocks: ; 48b84 (12:4b84)
- INCBIN "maps/celadongym.blk"
-
INCLUDE "data/mapHeaders/celadongamecorner.asm"
-
INCLUDE "scripts/celadongamecorner.asm"
-
INCLUDE "data/mapObjects/celadongamecorner.asm"
+CeladonGameCornerBlocks: INCBIN "maps/celadongamecorner.blk"
-CeladonGameCornerBlocks: ; 49003 (12:5003)
- INCBIN "maps/celadongamecorner.blk"
-
INCLUDE "data/mapHeaders/celadonmart5.asm"
-
INCLUDE "scripts/celadonmart5.asm"
-
INCLUDE "data/mapObjects/celadonmart5.asm"
+CeladonMart5Blocks: INCBIN "maps/celadonmart5.blk"
-CeladonMart5Blocks: ; 490bc (12:50bc)
- INCBIN "maps/celadonmart5.blk"
-
INCLUDE "data/mapHeaders/celadonprizeroom.asm"
-
INCLUDE "scripts/celadonprizeroom.asm"
-
INCLUDE "data/mapObjects/celadonprizeroom.asm"
+CeladonPrizeRoomBlocks: INCBIN "maps/celadonprizeroom.blk"
-CeladonPrizeRoomBlocks: ; 49131 (12:5131)
- INCBIN "maps/celadonprizeroom.blk"
-
INCLUDE "data/mapHeaders/celadondiner.asm"
-
INCLUDE "scripts/celadondiner.asm"
-
INCLUDE "data/mapObjects/celadondiner.asm"
+CeladonDinerBlocks: INCBIN "maps/celadondiner.blk"
-CeladonDinerBlocks: ; 491ee (12:51ee)
- INCBIN "maps/celadondiner.blk"
-
INCLUDE "data/mapHeaders/celadonhouse.asm"
-
INCLUDE "scripts/celadonhouse.asm"
-
INCLUDE "data/mapObjects/celadonhouse.asm"
+CeladonHouseBlocks: INCBIN "maps/celadonhouse.blk"
-CeladonHouseBlocks: ; 4924d (12:524d)
- INCBIN "maps/celadonhouse.blk"
-
INCLUDE "data/mapHeaders/celadonhotel.asm"
-
INCLUDE "scripts/celadonhotel.asm"
-
INCLUDE "data/mapObjects/celadonhotel.asm"
+CeladonHotelBlocks: INCBIN "maps/celadonhotel.blk"
-CeladonHotelBlocks: ; 492a7 (12:52a7)
- INCBIN "maps/celadonhotel.blk"
-
INCLUDE "data/mapHeaders/mtmoonpokecenter.asm"
-
INCLUDE "scripts/mtmoonpokecenter.asm"
-
INCLUDE "data/mapObjects/mtmoonpokecenter.asm"
INCLUDE "data/mapHeaders/rocktunnelpokecenter.asm"
-
INCLUDE "scripts/rocktunnelpokecenter.asm"
-
INCLUDE "data/mapObjects/rocktunnelpokecenter.asm"
INCLUDE "data/mapHeaders/route11gate.asm"
-
INCLUDE "scripts/route11gate.asm"
-
INCLUDE "data/mapObjects/route11gate.asm"
INCLUDE "data/mapHeaders/route11gateupstairs.asm"
-
INCLUDE "scripts/route11gateupstairs.asm"
-
INCLUDE "data/mapObjects/route11gateupstairs.asm"
INCLUDE "data/mapHeaders/route12gate.asm"
-
INCLUDE "scripts/route12gate.asm"
-
INCLUDE "data/mapObjects/route12gate.asm"
+Route12GateBlocks: INCBIN "maps/route12gate.blk"
-Route12GateBlocks: ; 49540 (12:5540)
- INCBIN "maps/route12gate.blk"
-
INCLUDE "data/mapHeaders/route12gateupstairs.asm"
-
INCLUDE "scripts/route12gateupstairs.asm"
-
INCLUDE "data/mapObjects/route12gateupstairs.asm"
INCLUDE "data/mapHeaders/route15gate.asm"
-
INCLUDE "scripts/route15gate.asm"
-
INCLUDE "data/mapObjects/route15gate.asm"
INCLUDE "data/mapHeaders/route15gateupstairs.asm"
-
INCLUDE "scripts/route15gateupstairs.asm"
-
INCLUDE "data/mapObjects/route15gateupstairs.asm"
INCLUDE "data/mapHeaders/route16gate.asm"
-
INCLUDE "scripts/route16gate.asm"
-
INCLUDE "data/mapObjects/route16gate.asm"
+Route16GateBlocks: INCBIN "maps/route16gate.blk"
-Route16GateBlocks: ; 497e3 (12:57e3)
- INCBIN "maps/route16gate.blk"
-
INCLUDE "data/mapHeaders/route16gateupstairs.asm"
-
INCLUDE "scripts/route16gateupstairs.asm"
-
INCLUDE "data/mapObjects/route16gateupstairs.asm"
INCLUDE "data/mapHeaders/route18gate.asm"
-
INCLUDE "scripts/route18gate.asm"
-
INCLUDE "data/mapObjects/route18gate.asm"
INCLUDE "data/mapHeaders/route18gateupstairs.asm"
-
INCLUDE "scripts/route18gateupstairs.asm"
-
INCLUDE "data/mapObjects/route18gateupstairs.asm"
INCLUDE "data/mapHeaders/mtmoon1.asm"
-
INCLUDE "scripts/mtmoon1.asm"
-
INCLUDE "data/mapObjects/mtmoon1.asm"
+MtMoon1Blocks: INCBIN "maps/mtmoon1.blk"
-MtMoon1Blocks: ; 49b97 (12:5b97)
- INCBIN "maps/mtmoon1.blk"
-
INCLUDE "data/mapHeaders/mtmoon3.asm"
-
INCLUDE "scripts/mtmoon3.asm"
-
INCLUDE "data/mapObjects/mtmoon3.asm"
+MtMoon3Blocks: INCBIN "maps/mtmoon3.blk"
-MtMoon3Blocks: ; 4a041 (12:6041)
- INCBIN "maps/mtmoon3.blk"
-
INCLUDE "data/mapHeaders/safarizonewest.asm"
-
INCLUDE "scripts/safarizonewest.asm"
-
INCLUDE "data/mapObjects/safarizonewest.asm"
+SafariZoneWestBlocks: INCBIN "maps/safarizonewest.blk"
-SafariZoneWestBlocks: ; 4a248 (12:6248)
- INCBIN "maps/safarizonewest.blk"
-
INCLUDE "data/mapHeaders/safarizonesecrethouse.asm"
-
INCLUDE "scripts/safarizonesecrethouse.asm"
-
INCLUDE "data/mapObjects/safarizonesecrethouse.asm"
+SafariZoneSecretHouseBlocks: INCBIN "maps/safarizonesecrethouse.blk"
-SafariZoneSecretHouseBlocks: ; 4a37f (12:637f)
- INCBIN "maps/safarizonesecrethouse.blk"
SECTION "bank13",ROMX,BANK[$13]
-TrainerPics:
+TrainerPics::
+YoungsterPic:: INCBIN "pic/trainer/youngster.pic"
+BugCatcherPic:: INCBIN "pic/trainer/bugcatcher.pic"
+LassPic:: INCBIN "pic/trainer/lass.pic"
+SailorPic:: INCBIN "pic/trainer/sailor.pic"
+JrTrainerMPic:: INCBIN "pic/trainer/jr.trainerm.pic"
+JrTrainerFPic:: INCBIN "pic/trainer/jr.trainerf.pic"
+PokemaniacPic:: INCBIN "pic/trainer/pokemaniac.pic"
+SuperNerdPic:: INCBIN "pic/trainer/supernerd.pic"
+HikerPic:: INCBIN "pic/trainer/hiker.pic"
+BikerPic:: INCBIN "pic/trainer/biker.pic"
+BurglarPic:: INCBIN "pic/trainer/burglar.pic"
+EngineerPic:: INCBIN "pic/trainer/engineer.pic"
+FisherPic:: INCBIN "pic/trainer/fisher.pic"
+SwimmerPic:: INCBIN "pic/trainer/swimmer.pic"
+CueBallPic:: INCBIN "pic/trainer/cueball.pic"
+GamblerPic:: INCBIN "pic/trainer/gambler.pic"
+BeautyPic:: INCBIN "pic/trainer/beauty.pic"
+PsychicPic:: INCBIN "pic/trainer/psychic.pic"
+RockerPic:: INCBIN "pic/trainer/rocker.pic"
+JugglerPic:: INCBIN "pic/trainer/juggler.pic"
+TamerPic:: INCBIN "pic/trainer/tamer.pic"
+BirdKeeperPic:: INCBIN "pic/trainer/birdkeeper.pic"
+BlackbeltPic:: INCBIN "pic/trainer/blackbelt.pic"
+Rival1Pic:: INCBIN "pic/trainer/rival1.pic"
+ProfOakPic:: INCBIN "pic/trainer/prof.oak.pic"
+ChiefPic::
+ScientistPic:: INCBIN "pic/trainer/scientist.pic"
+GiovanniPic:: INCBIN "pic/trainer/giovanni.pic"
+RocketPic:: INCBIN "pic/trainer/rocket.pic"
+CooltrainerMPic:: INCBIN "pic/trainer/cooltrainerm.pic"
+CooltrainerFPic:: INCBIN "pic/trainer/cooltrainerf.pic"
+BrunoPic:: INCBIN "pic/trainer/bruno.pic"
+BrockPic:: INCBIN "pic/trainer/brock.pic"
+MistyPic:: INCBIN "pic/trainer/misty.pic"
+LtSurgePic:: INCBIN "pic/trainer/lt.surge.pic"
+ErikaPic:: INCBIN "pic/trainer/erika.pic"
+KogaPic:: INCBIN "pic/trainer/koga.pic"
+BlainePic:: INCBIN "pic/trainer/blaine.pic"
+SabrinaPic:: INCBIN "pic/trainer/sabrina.pic"
+GentlemanPic:: INCBIN "pic/trainer/gentleman.pic"
+Rival2Pic:: INCBIN "pic/trainer/rival2.pic"
+Rival3Pic:: INCBIN "pic/trainer/rival3.pic"
+LoreleiPic:: INCBIN "pic/trainer/lorelei.pic"
+ChannelerPic:: INCBIN "pic/trainer/channeler.pic"
+AgathaPic:: INCBIN "pic/trainer/agatha.pic"
+LancePic:: INCBIN "pic/trainer/lance.pic"
-YoungsterPic: ; 4c000 (13:4000)
- INCBIN "pic/trainer/youngster.pic"
-BugCatcherPic: ; 4c0c6 (13:40c6)
- INCBIN "pic/trainer/bugcatcher.pic"
-LassPic: ; 4c200 (13:4200)
- INCBIN "pic/trainer/lass.pic"
-SailorPic: ; 4c2db (13:42db)
- INCBIN "pic/trainer/sailor.pic"
-JrTrainerMPic: ; 4c450 (13:4450)
- INCBIN "pic/trainer/jr.trainerm.pic"
-JrTrainerFPic: ; 4c588 (13:4588)
- INCBIN "pic/trainer/jr.trainerf.pic"
-PokemaniacPic: ; 4c6c9 (13:46c9)
- INCBIN "pic/trainer/pokemaniac.pic"
-SuperNerdPic: ; 4c7f1 (13:47f1)
- INCBIN "pic/trainer/supernerd.pic"
-HikerPic: ; 4c8e7 (13:48e7)
- INCBIN "pic/trainer/hiker.pic"
-BikerPic: ; 4cabe (13:4abe)
- INCBIN "pic/trainer/biker.pic"
-BurglarPic: ; 4cc91 (13:4c91)
- INCBIN "pic/trainer/burglar.pic"
-EngineerPic: ; 4ce0a (13:4e0a)
- INCBIN "pic/trainer/engineer.pic"
-FisherPic: ; 4cf87 (13:4f87)
- INCBIN "pic/trainer/fisher.pic"
-SwimmerPic: ; 4d133 (13:5133)
- INCBIN "pic/trainer/swimmer.pic"
-CueBallPic: ; 4d24f (13:524f)
- INCBIN "pic/trainer/cueball.pic"
-GamblerPic: ; 4d421 (13:5421)
- INCBIN "pic/trainer/gambler.pic"
-BeautyPic: ; 4d5df (13:55df)
- INCBIN "pic/trainer/beauty.pic"
-PsychicPic: ; 4d728 (13:5728)
- INCBIN "pic/trainer/psychic.pic"
-RockerPic: ; 4d843 (13:5843)
- INCBIN "pic/trainer/rocker.pic"
-JugglerPic: ; 4d97d (13:597d)
- INCBIN "pic/trainer/juggler.pic"
-TamerPic: ; 4db4e (13:5b4e)
- INCBIN "pic/trainer/tamer.pic"
-BirdKeeperPic: ; 4dcdb (13:5cdb)
- INCBIN "pic/trainer/birdkeeper.pic"
-BlackbeltPic: ; 4de76 (13:5e76)
- INCBIN "pic/trainer/blackbelt.pic"
-Rival1Pic: ; 4e049 (13:6049)
- INCBIN "pic/trainer/rival1.pic"
-ProfOakPic: ; 4e15f (13:615f)
- INCBIN "pic/trainer/prof.oak.pic"
-ChiefPic: ; 4e27d (13:627d)
-ScientistPic: ; 4e27d (13:627d)
- INCBIN "pic/trainer/scientist.pic"
-GiovanniPic: ; 4e3be (13:63be)
- INCBIN "pic/trainer/giovanni.pic"
-RocketPic: ; 4e49f (13:649f)
- INCBIN "pic/trainer/rocket.pic"
-CooltrainerMPic: ; 4e635 (13:6635)
- INCBIN "pic/trainer/cooltrainerm.pic"
-CooltrainerFPic: ; 4e7be (13:67be)
- INCBIN "pic/trainer/cooltrainerf.pic"
-BrunoPic: ; 4e943 (13:6943)
- INCBIN "pic/trainer/bruno.pic"
-BrockPic: ; 4eb3e (13:6b3e)
- INCBIN "pic/trainer/brock.pic"
-MistyPic: ; 4ec40 (13:6c40)
- INCBIN "pic/trainer/misty.pic"
-LtSurgePic: ; 4ed30 (13:6d30)
- INCBIN "pic/trainer/lt.surge.pic"
-ErikaPic: ; 4eeb5 (13:6eb5)
- INCBIN "pic/trainer/erika.pic"
-KogaPic: ; 4efd6 (13:6fd6)
- INCBIN "pic/trainer/koga.pic"
-BlainePic: ; 4f150 (13:7150)
- INCBIN "pic/trainer/blaine.pic"
-SabrinaPic: ; 4f252 (13:7252)
- INCBIN "pic/trainer/sabrina.pic"
-GentlemanPic: ; 4f3d0 (13:73d0)
- INCBIN "pic/trainer/gentleman.pic"
-Rival2Pic: ; 4f4cf (13:74cf)
- INCBIN "pic/trainer/rival2.pic"
-Rival3Pic: ; 4f623 (13:7623)
- INCBIN "pic/trainer/rival3.pic"
-LoreleiPic: ; 4f779 (13:7779)
- INCBIN "pic/trainer/lorelei.pic"
-ChannelerPic: ; 4f8a4 (13:78a4)
- INCBIN "pic/trainer/channeler.pic"
-AgathaPic: ; 4fa71 (13:7a71)
- INCBIN "pic/trainer/agatha.pic"
-LancePic: ; 4fba2 (13:7ba2)
- INCBIN "pic/trainer/lance.pic"
-
INCLUDE "data/mapHeaders/battlecenterm.asm"
-
INCLUDE "scripts/battlecenterm.asm"
-
INCLUDE "data/mapObjects/battlecenterm.asm"
+BattleCenterMBlocks: INCBIN "maps/battlecenterm.blk"
-BattleCenterMBlocks: ; 4fd5d (13:7d5d)
- INCBIN "maps/battlecenterm.blk"
-
INCLUDE "data/mapHeaders/tradecenterm.asm"
-
INCLUDE "scripts/tradecenterm.asm"
-
INCLUDE "data/mapObjects/tradecenterm.asm"
+TradeCenterMBlocks: INCBIN "maps/tradecenterm.blk"
-TradeCenterMBlocks: ; 4fd91 (13:7d91)
- INCBIN "maps/tradecenterm.blk"
-
INCLUDE "engine/give_pokemon.asm"
INCLUDE "engine/predefs.asm"
+
SECTION "bank14",ROMX,BANK[$14]
INCLUDE "data/mapHeaders/route22.asm"
-
INCLUDE "data/mapObjects/route22.asm"
+Route22Blocks: INCBIN "maps/route22.blk"
-Route22Blocks: ; 5003d (14:403d)
- INCBIN "maps/route22.blk"
-
INCLUDE "data/mapHeaders/route20.asm"
-
INCLUDE "data/mapObjects/route20.asm"
+Route20Blocks: INCBIN "maps/route20.blk"
-Route20Blocks: ; 5017d (14:417d)
- INCBIN "maps/route20.blk"
-
INCLUDE "data/mapHeaders/route23.asm"
-
INCLUDE "data/mapObjects/route23.asm"
+Route23Blocks: INCBIN "maps/route23.blk"
-Route23Blocks: ; 503b2 (14:43b2)
- INCBIN "maps/route23.blk"
-
INCLUDE "data/mapHeaders/route24.asm"
-
INCLUDE "data/mapObjects/route24.asm"
+Route24Blocks: INCBIN "maps/route24.blk"
-Route24Blocks: ; 506e7 (14:46e7)
- INCBIN "maps/route24.blk"
-
INCLUDE "data/mapHeaders/route25.asm"
-
INCLUDE "data/mapObjects/route25.asm"
+Route25Blocks: INCBIN "maps/route25.blk"
-Route25Blocks: ; 50810 (14:4810)
- INCBIN "maps/route25.blk"
-
INCLUDE "data/mapHeaders/indigoplateau.asm"
-
INCLUDE "scripts/indigoplateau.asm"
-
INCLUDE "data/mapObjects/indigoplateau.asm"
+IndigoPlateauBlocks: INCBIN "maps/indigoplateau.blk"
-IndigoPlateauBlocks: ; 5094a (14:494a)
- INCBIN "maps/indigoplateau.blk"
-
INCLUDE "data/mapHeaders/saffroncity.asm"
-
INCLUDE "data/mapObjects/saffroncity.asm"
-
-SaffronCityBlocks: ; 50a98 (14:4a98)
- INCBIN "maps/saffroncity.blk"
-
+SaffronCityBlocks: INCBIN "maps/saffroncity.blk"
INCLUDE "scripts/saffroncity.asm"
INCLUDE "scripts/route20.asm"
-
INCLUDE "scripts/route22.asm"
-
INCLUDE "scripts/route23.asm"
-
INCLUDE "scripts/route24.asm"
-
INCLUDE "scripts/route25.asm"
INCLUDE "data/mapHeaders/victoryroad2.asm"
-
INCLUDE "scripts/victoryroad2.asm"
-
INCLUDE "data/mapObjects/victoryroad2.asm"
+VictoryRoad2Blocks: INCBIN "maps/victoryroad2.blk"
-VictoryRoad2Blocks: ; 519af (14:59af)
- INCBIN "maps/victoryroad2.blk"
-
INCLUDE "data/mapHeaders/mtmoon2.asm"
-
INCLUDE "scripts/mtmoon2.asm"
-
INCLUDE "data/mapObjects/mtmoon2.asm"
+MtMoon2Blocks: INCBIN "maps/mtmoon2.blk"
-MtMoon2Blocks: ; 51a91 (14:5a91)
- INCBIN "maps/mtmoon2.blk"
-
INCLUDE "data/mapHeaders/silphco7.asm"
-
INCLUDE "scripts/silphco7.asm"
-
INCLUDE "data/mapObjects/silphco7.asm"
+SilphCo7Blocks: INCBIN "maps/silphco7.blk"
-SilphCo7Blocks: ; 51f57 (14:5f57)
- INCBIN "maps/silphco7.blk"
-
INCLUDE "data/mapHeaders/mansion2.asm"
-
INCLUDE "scripts/mansion2.asm"
-
INCLUDE "data/mapObjects/mansion2.asm"
+Mansion2Blocks: INCBIN "maps/mansion2.blk"
-Mansion2Blocks: ; 52110 (14:6110)
- INCBIN "maps/mansion2.blk"
-
INCLUDE "data/mapHeaders/mansion3.asm"
-
INCLUDE "scripts/mansion3.asm"
-
INCLUDE "data/mapObjects/mansion3.asm"
+Mansion3Blocks: INCBIN "maps/mansion3.blk"
-Mansion3Blocks: ; 52326 (14:6326)
- INCBIN "maps/mansion3.blk"
-
INCLUDE "data/mapHeaders/mansion4.asm"
-
INCLUDE "scripts/mansion4.asm"
-
INCLUDE "data/mapObjects/mansion4.asm"
+Mansion4Blocks: INCBIN "maps/mansion4.blk"
-Mansion4Blocks: ; 524dd (14:64dd)
- INCBIN "maps/mansion4.blk"
-
INCLUDE "engine/battle/14.asm"
INCLUDE "engine/overworld/card_key.asm"
@@ -17914,212 +5811,133 @@
INCLUDE "engine/hidden_object_functions14.asm"
+
SECTION "bank15",ROMX,BANK[$15]
INCLUDE "data/mapHeaders/route2.asm"
-
INCLUDE "data/mapObjects/route2.asm"
+Route2Blocks: INCBIN "maps/route2.blk"
-Route2Blocks: ; 5407e (15:407e)
- INCBIN "maps/route2.blk"
-
INCLUDE "data/mapHeaders/route3.asm"
-
INCLUDE "data/mapObjects/route3.asm"
+Route3Blocks: INCBIN "maps/route3.blk"
-Route3Blocks: ; 54255 (15:4255)
- INCBIN "maps/route3.blk"
-
INCLUDE "data/mapHeaders/route4.asm"
-
INCLUDE "data/mapObjects/route4.asm"
+Route4Blocks: INCBIN "maps/route4.blk"
-Route4Blocks: ; 543ec (15:43ec)
- INCBIN "maps/route4.blk"
-
INCLUDE "data/mapHeaders/route5.asm"
-
INCLUDE "data/mapObjects/route5.asm"
+Route5Blocks: INCBIN "maps/route5.blk"
-Route5Blocks: ; 545d2 (15:45d2)
- INCBIN "maps/route5.blk"
-
INCLUDE "data/mapHeaders/route9.asm"
-
INCLUDE "data/mapObjects/route9.asm"
+Route9Blocks: INCBIN "maps/route9.blk"
-Route9Blocks: ; 546fe (15:46fe)
- INCBIN "maps/route9.blk"
-
INCLUDE "data/mapHeaders/route13.asm"
-
INCLUDE "data/mapObjects/route13.asm"
+Route13Blocks: INCBIN "maps/route13.blk"
-Route13Blocks: ; 5488b (15:488b)
- INCBIN "maps/route13.blk"
-
INCLUDE "data/mapHeaders/route14.asm"
-
INCLUDE "data/mapObjects/route14.asm"
+Route14Blocks: INCBIN "maps/route14.blk"
-Route14Blocks: ; 54a12 (15:4a12)
- INCBIN "maps/route14.blk"
-
INCLUDE "data/mapHeaders/route17.asm"
-
INCLUDE "data/mapObjects/route17.asm"
+Route17Blocks: INCBIN "maps/route17.blk"
-Route17Blocks: ; 54ba8 (15:4ba8)
- INCBIN "maps/route17.blk"
-
INCLUDE "data/mapHeaders/route19.asm"
-
INCLUDE "data/mapObjects/route19.asm"
+Route19Blocks: INCBIN "maps/route19.blk"
-Route19Blocks: ; 54ef1 (15:4ef1)
- INCBIN "maps/route19.blk"
-
INCLUDE "data/mapHeaders/route21.asm"
-
INCLUDE "data/mapObjects/route21.asm"
+Route21Blocks: INCBIN "maps/route21.blk"
-Route21Blocks: ; 5506d (15:506d)
- INCBIN "maps/route21.blk"
+VermilionHouse2Blocks:
+Route12HouseBlocks:
+DayCareMBlocks: INCBIN "maps/daycarem.blk"
-VermilionHouse2Blocks: ; 5522f (15:522f)
-Route12HouseBlocks: ; 5522f (15:522f)
-DayCareMBlocks: ; 5522f (15:522f)
- INCBIN "maps/daycarem.blk"
+FuchsiaHouse3Blocks: INCBIN "maps/fuchsiahouse3.blk"
-FuchsiaHouse3Blocks: ; 5523f (15:523f)
- INCBIN "maps/fuchsiahouse3.blk"
-
INCLUDE "engine/battle/15.asm"
INCLUDE "scripts/route2.asm"
-
INCLUDE "scripts/route3.asm"
-
INCLUDE "scripts/route4.asm"
-
INCLUDE "scripts/route5.asm"
-
INCLUDE "scripts/route9.asm"
-
INCLUDE "scripts/route13.asm"
-
INCLUDE "scripts/route14.asm"
-
INCLUDE "scripts/route17.asm"
-
INCLUDE "scripts/route19.asm"
-
INCLUDE "scripts/route21.asm"
INCLUDE "data/mapHeaders/vermilionhouse2.asm"
-
INCLUDE "scripts/vermilionhouse2.asm"
-
INCLUDE "data/mapObjects/vermilionhouse2.asm"
INCLUDE "data/mapHeaders/celadonmart2.asm"
-
INCLUDE "scripts/celadonmart2.asm"
-
INCLUDE "data/mapObjects/celadonmart2.asm"
+CeladonMart2Blocks: INCBIN "maps/celadonmart2.blk"
-CeladonMart2Blocks: ; 56148 (15:6148)
- INCBIN "maps/celadonmart2.blk"
-
INCLUDE "data/mapHeaders/fuchsiahouse3.asm"
-
INCLUDE "scripts/fuchsiahouse3.asm"
-
INCLUDE "data/mapObjects/fuchsiahouse3.asm"
INCLUDE "data/mapHeaders/daycarem.asm"
-
INCLUDE "scripts/daycarem.asm"
-
INCLUDE "data/mapObjects/daycarem.asm"
INCLUDE "data/mapHeaders/route12house.asm"
-
INCLUDE "scripts/route12house.asm"
-
INCLUDE "data/mapObjects/route12house.asm"
INCLUDE "data/mapHeaders/silphco8.asm"
-
INCLUDE "scripts/silphco8.asm"
-
INCLUDE "data/mapObjects/silphco8.asm"
+SilphCo8Blocks: INCBIN "maps/silphco8.blk"
-SilphCo8Blocks: ; 5666d (15:666d)
- INCBIN "maps/silphco8.blk"
-
INCLUDE "engine/menu/diploma.asm"
INCLUDE "engine/overworld/trainers.asm"
+
SECTION "bank16",ROMX,BANK[$16]
INCLUDE "data/mapHeaders/route6.asm"
-
INCLUDE "data/mapObjects/route6.asm"
+Route6Blocks: INCBIN "maps/route6.blk"
-Route6Blocks: ; 58079 (16:4079)
- INCBIN "maps/route6.blk"
-
INCLUDE "data/mapHeaders/route8.asm"
-
INCLUDE "data/mapObjects/route8.asm"
+Route8Blocks: INCBIN "maps/route8.blk"
-Route8Blocks: ; 581c6 (16:41c6)
- INCBIN "maps/route8.blk"
-
INCLUDE "data/mapHeaders/route10.asm"
-
INCLUDE "data/mapObjects/route10.asm"
+Route10Blocks: INCBIN "maps/route10.blk"
-Route10Blocks: ; 58356 (16:4356)
- INCBIN "maps/route10.blk"
-
INCLUDE "data/mapHeaders/route11.asm"
-
INCLUDE "data/mapObjects/route11.asm"
+Route11Blocks: INCBIN "maps/route11.blk"
-Route11Blocks: ; 5855f (16:455f)
- INCBIN "maps/route11.blk"
-
INCLUDE "data/mapHeaders/route12.asm"
-
INCLUDE "data/mapObjects/route12.asm"
+Route12Blocks: INCBIN "maps/route12.blk"
-Route12Blocks: ; 58710 (16:4710)
- INCBIN "maps/route12.blk"
-
INCLUDE "data/mapHeaders/route15.asm"
-
INCLUDE "data/mapObjects/route15.asm"
+Route15Blocks: INCBIN "maps/route15.blk"
-Route15Blocks: ; 589cc (16:49cc)
- INCBIN "maps/route15.blk"
-
INCLUDE "data/mapHeaders/route16.asm"
-
INCLUDE "data/mapObjects/route16.asm"
+Route16Blocks: INCBIN "maps/route16.blk"
-Route16Blocks: ; 58b84 (16:4b84)
- INCBIN "maps/route16.blk"
-
INCLUDE "data/mapHeaders/route18.asm"
-
INCLUDE "data/mapObjects/route18.asm"
+Route18Blocks: INCBIN "maps/route18.blk"
-Route18Blocks: ; 58c9c (16:4c9c)
- INCBIN "maps/route18.blk"
-
INCBIN "maps/unusedblocks58d7d.blk"
INCLUDE "engine/battle/16.asm"
@@ -18129,666 +5947,434 @@
INCLUDE "engine/overworld/oaks_aide.asm"
INCLUDE "scripts/route6.asm"
-
INCLUDE "scripts/route8.asm"
-
INCLUDE "scripts/route10.asm"
-
INCLUDE "scripts/route11.asm"
-
INCLUDE "scripts/route12.asm"
-
INCLUDE "scripts/route15.asm"
-
INCLUDE "scripts/route16.asm"
-
INCLUDE "scripts/route18.asm"
INCLUDE "data/mapHeaders/fanclub.asm"
-
INCLUDE "scripts/fanclub.asm"
-
INCLUDE "data/mapObjects/fanclub.asm"
-
-FanClubBlocks: ; 59cd5 (16:5cd5)
+FanClubBlocks:
INCBIN "maps/fanclub.blk"
INCLUDE "data/mapHeaders/silphco2.asm"
-
INCLUDE "scripts/silphco2.asm"
-
INCLUDE "data/mapObjects/silphco2.asm"
-
-SilphCo2Blocks: ; 59ec8 (16:5ec8)
+SilphCo2Blocks:
INCBIN "maps/silphco2.blk"
INCLUDE "data/mapHeaders/silphco3.asm"
-
INCLUDE "scripts/silphco3.asm"
-
INCLUDE "data/mapObjects/silphco3.asm"
-
-SilphCo3Blocks: ; 5a0a6 (16:60a6)
+SilphCo3Blocks:
INCBIN "maps/silphco3.blk"
INCLUDE "data/mapHeaders/silphco10.asm"
-
INCLUDE "scripts/silphco10.asm"
-
INCLUDE "data/mapObjects/silphco10.asm"
-
-SilphCo10Blocks: ; 5a25a (16:625a)
+SilphCo10Blocks:
INCBIN "maps/silphco10.blk"
INCLUDE "data/mapHeaders/lance.asm"
-
INCLUDE "scripts/lance.asm"
-
INCLUDE "data/mapObjects/lance.asm"
-
-LanceBlocks: ; 5a3e9 (16:63e9)
+LanceBlocks:
INCBIN "maps/lance.blk"
INCLUDE "data/mapHeaders/halloffameroom.asm"
-
INCLUDE "scripts/halloffameroom.asm"
-
INCLUDE "data/mapObjects/halloffameroom.asm"
-
-HallofFameRoomBlocks: ; 5a58b (16:658b)
+HallofFameRoomBlocks:
INCBIN "maps/halloffameroom.blk"
INCLUDE "engine/overworld/saffron_guards.asm"
+
SECTION "bank17",ROMX,BANK[$17]
-SaffronMartBlocks: ; 5c000 (17:4000)
-LavenderMartBlocks: ; 5c000 (17:4000)
-CeruleanMartBlocks: ; 5c000 (17:4000)
-VermilionMartBlocks: ; 5c000 (17:4000)
- INCBIN "maps/vermilionmart.blk"
+SaffronMartBlocks:
+LavenderMartBlocks:
+CeruleanMartBlocks:
+VermilionMartBlocks: INCBIN "maps/vermilionmart.blk"
-CopycatsHouse2FBlocks: ; 5c010 (17:4010)
-RedsHouse2FBlocks: ; 0x5c010 16?
- INCBIN "maps/redshouse2f.blk"
+CopycatsHouse2FBlocks:
+RedsHouse2FBlocks: INCBIN "maps/redshouse2f.blk"
-Museum1FBlocks: ; 5c020 (17:4020)
- INCBIN "maps/museum1f.blk"
+Museum1FBlocks: INCBIN "maps/museum1f.blk"
-Museum2FBlocks: ; 5c048 (17:4048)
- INCBIN "maps/museum2f.blk"
+Museum2FBlocks: INCBIN "maps/museum2f.blk"
-SaffronPokecenterBlocks: ; 5c064 (17:4064)
-VermilionPokecenterBlocks: ; 5c064 (17:4064)
-LavenderPokecenterBlocks: ; 5c064 (17:4064)
-PewterPokecenterBlocks: ; 5c064 (17:4064)
- INCBIN "maps/pewterpokecenter.blk"
+SaffronPokecenterBlocks:
+VermilionPokecenterBlocks:
+LavenderPokecenterBlocks:
+PewterPokecenterBlocks: INCBIN "maps/pewterpokecenter.blk"
-UndergroundPathEntranceRoute7Blocks: ; 5c080 (17:4080)
-UndergroundPathEntranceRoute7CopyBlocks: ; 5c080 (17:4080)
-UndergroundPathEntranceRoute6Blocks: ; 5c080 (17:4080)
-UndergroundPathEntranceRoute5Blocks: ; 5c080 (17:4080)
- INCBIN "maps/undergroundpathentranceroute5.blk"
+UndergroundPathEntranceRoute7Blocks:
+UndergroundPathEntranceRoute7CopyBlocks:
+UndergroundPathEntranceRoute6Blocks:
+UndergroundPathEntranceRoute5Blocks: INCBIN "maps/undergroundpathentranceroute5.blk"
-Route2GateBlocks: ; 5c090 (17:4090)
-ViridianForestEntranceBlocks: ; 5c090 (17:4090)
-ViridianForestExitBlocks: ; 5c090 (17:4090)
- INCBIN "maps/viridianforestexit.blk"
+Route2GateBlocks:
+ViridianForestEntranceBlocks:
+ViridianForestExitBlocks: INCBIN "maps/viridianforestexit.blk"
INCLUDE "data/mapHeaders/redshouse2f.asm"
-
INCLUDE "scripts/redshouse2f.asm"
-
INCLUDE "data/mapObjects/redshouse2f.asm"
INCLUDE "engine/predefs17.asm"
INCLUDE "data/mapHeaders/museum1f.asm"
-
INCLUDE "scripts/museum1f.asm"
-
INCLUDE "data/mapObjects/museum1f.asm"
INCLUDE "data/mapHeaders/museum2f.asm"
-
INCLUDE "scripts/museum2f.asm"
-
INCLUDE "data/mapObjects/museum2f.asm"
INCLUDE "data/mapHeaders/pewtergym.asm"
-
INCLUDE "scripts/pewtergym.asm"
-
INCLUDE "data/mapObjects/pewtergym.asm"
+PewterGymBlocks: INCBIN "maps/pewtergym.blk"
-PewterGymBlocks: ; 5c558 (17:4558)
- INCBIN "maps/pewtergym.blk"
-
INCLUDE "data/mapHeaders/pewterpokecenter.asm"
-
INCLUDE "scripts/pewterpokecenter.asm"
-
INCLUDE "data/mapObjects/pewterpokecenter.asm"
INCLUDE "data/mapHeaders/ceruleanpokecenter.asm"
-
INCLUDE "scripts/ceruleanpokecenter.asm"
-
INCLUDE "data/mapObjects/ceruleanpokecenter.asm"
+CeruleanPokecenterBlocks: INCBIN "maps/ceruleanpokecenter.blk"
-CeruleanPokecenterBlocks: ; 5c68b (17:468b)
- INCBIN "maps/ceruleanpokecenter.blk"
-
INCLUDE "data/mapHeaders/ceruleangym.asm"
-
INCLUDE "scripts/ceruleangym.asm"
-
INCLUDE "data/mapObjects/ceruleangym.asm"
+CeruleanGymBlocks: INCBIN "maps/ceruleangym.blk"
-CeruleanGymBlocks: ; 5c866 (17:4866)
- INCBIN "maps/ceruleangym.blk"
-
INCLUDE "data/mapHeaders/ceruleanmart.asm"
-
INCLUDE "scripts/ceruleanmart.asm"
-
INCLUDE "data/mapObjects/ceruleanmart.asm"
INCLUDE "data/mapHeaders/lavenderpokecenter.asm"
-
INCLUDE "scripts/lavenderpokecenter.asm"
-
INCLUDE "data/mapObjects/lavenderpokecenter.asm"
INCLUDE "data/mapHeaders/lavendermart.asm"
-
INCLUDE "scripts/lavendermart.asm"
-
INCLUDE "data/mapObjects/lavendermart.asm"
INCLUDE "data/mapHeaders/vermilionpokecenter.asm"
-
INCLUDE "scripts/vermilionpokecenter.asm"
-
INCLUDE "data/mapObjects/vermilionpokecenter.asm"
INCLUDE "data/mapHeaders/vermilionmart.asm"
-
INCLUDE "scripts/vermilionmart.asm"
-
INCLUDE "data/mapObjects/vermilionmart.asm"
INCLUDE "data/mapHeaders/vermiliongym.asm"
-
INCLUDE "scripts/vermiliongym.asm"
-
INCLUDE "data/mapObjects/vermiliongym.asm"
+VermilionGymBlocks: INCBIN "maps/vermiliongym.blk"
-VermilionGymBlocks: ; 5cc38 (17:4c38)
- INCBIN "maps/vermiliongym.blk"
-
INCLUDE "data/mapHeaders/copycatshouse2f.asm"
-
INCLUDE "scripts/copycatshouse2f.asm"
-
INCLUDE "data/mapObjects/copycatshouse2f.asm"
INCLUDE "data/mapHeaders/fightingdojo.asm"
-
INCLUDE "scripts/fightingdojo.asm"
-
INCLUDE "data/mapObjects/fightingdojo.asm"
+FightingDojoBlocks: INCBIN "maps/fightingdojo.blk"
-FightingDojoBlocks: ; 5cfe3 (17:4fe3)
- INCBIN "maps/fightingdojo.blk"
-
INCLUDE "data/mapHeaders/saffrongym.asm"
-
INCLUDE "scripts/saffrongym.asm"
-
INCLUDE "data/mapObjects/saffrongym.asm"
+SaffronGymBlocks: INCBIN "maps/saffrongym.blk"
-SaffronGymBlocks: ; 5d3a3 (17:53a3)
- INCBIN "maps/saffrongym.blk"
-
INCLUDE "data/mapHeaders/saffronmart.asm"
-
INCLUDE "scripts/saffronmart.asm"
-
INCLUDE "data/mapObjects/saffronmart.asm"
INCLUDE "data/mapHeaders/silphco1.asm"
-
INCLUDE "scripts/silphco1.asm"
-
INCLUDE "data/mapObjects/silphco1.asm"
+SilphCo1Blocks: INCBIN "maps/silphco1.blk"
-SilphCo1Blocks: ; 5d4a2 (17:54a2)
- INCBIN "maps/silphco1.blk"
-
INCLUDE "data/mapHeaders/saffronpokecenter.asm"
-
INCLUDE "scripts/saffronpokecenter.asm"
-
INCLUDE "data/mapObjects/saffronpokecenter.asm"
INCLUDE "data/mapHeaders/viridianforestexit.asm"
-
INCLUDE "scripts/viridianforestexit.asm"
-
INCLUDE "data/mapObjects/viridianforestexit.asm"
INCLUDE "data/mapHeaders/route2gate.asm"
-
INCLUDE "scripts/route2gate.asm"
-
INCLUDE "data/mapObjects/route2gate.asm"
INCLUDE "data/mapHeaders/viridianforestentrance.asm"
-
INCLUDE "scripts/viridianforestentrance.asm"
-
INCLUDE "data/mapObjects/viridianforestentrance.asm"
INCLUDE "data/mapHeaders/undergroundpathentranceroute5.asm"
-
INCLUDE "scripts/undergroundpathentranceroute5.asm"
-
INCLUDE "data/mapObjects/undergroundpathentranceroute5.asm"
INCLUDE "data/mapHeaders/undergroundpathentranceroute6.asm"
-
INCLUDE "scripts/undergroundpathentranceroute6.asm"
-
INCLUDE "data/mapObjects/undergroundpathentranceroute6.asm"
INCLUDE "data/mapHeaders/undergroundpathentranceroute7.asm"
-
INCLUDE "scripts/undergroundpathentranceroute7.asm"
-
INCLUDE "data/mapObjects/undergroundpathentranceroute7.asm"
INCLUDE "data/mapHeaders/undergroundpathentranceroute7copy.asm"
-
INCLUDE "scripts/undergroundpathentranceroute7copy.asm"
-
INCLUDE "data/mapObjects/undergroundpathentranceroute7copy.asm"
INCLUDE "data/mapHeaders/silphco9.asm"
-
INCLUDE "scripts/silphco9.asm"
-
INCLUDE "data/mapObjects/silphco9.asm"
+SilphCo9Blocks: INCBIN "maps/silphco9.blk"
-SilphCo9Blocks: ; 5d989 (17:5989)
- INCBIN "maps/silphco9.blk"
-
INCLUDE "data/mapHeaders/victoryroad1.asm"
-
INCLUDE "scripts/victoryroad1.asm"
-
INCLUDE "data/mapObjects/victoryroad1.asm"
+VictoryRoad1Blocks: INCBIN "maps/victoryroad1.blk"
-VictoryRoad1Blocks: ; 5db04 (17:5b04)
- INCBIN "maps/victoryroad1.blk"
-
INCLUDE "engine/predefs17_2.asm"
INCLUDE "engine/hidden_object_functions17.asm"
+
SECTION "bank18",ROMX,BANK[$18]
-ViridianForestBlocks: ; 60000 (18:4000)
- INCBIN "maps/viridianforest.blk"
+ViridianForestBlocks: INCBIN "maps/viridianforest.blk"
+UndergroundPathNSBlocks: INCBIN "maps/undergroundpathns.blk"
+UndergroundPathWEBlocks: INCBIN "maps/undergroundpathwe.blk"
-UndergroundPathNSBlocks: ; 60198 (18:4198)
- INCBIN "maps/undergroundpathns.blk"
-
-UndergroundPathWEBlocks: ; 601f4 (18:41f4)
- INCBIN "maps/undergroundpathwe.blk"
-
INCBIN "maps/unusedblocks60258.blk"
-SSAnne10Blocks: ; 603c0 (18:43c0)
-SSAnne9Blocks: ; 603c0 (18:43c0)
- INCBIN "maps/ssanne9.blk"
+SSAnne10Blocks:
+SSAnne9Blocks: INCBIN "maps/ssanne9.blk"
INCLUDE "data/mapHeaders/pokemontower1.asm"
-
INCLUDE "scripts/pokemontower1.asm"
-
INCLUDE "data/mapObjects/pokemontower1.asm"
+PokemonTower1Blocks: INCBIN "maps/pokemontower1.blk"
-PokemonTower1Blocks: ; 6048c (18:448c)
- INCBIN "maps/pokemontower1.blk"
-
INCLUDE "data/mapHeaders/pokemontower2.asm"
-
INCLUDE "scripts/pokemontower2.asm"
-
INCLUDE "data/mapObjects/pokemontower2.asm"
+PokemonTower2Blocks: INCBIN "maps/pokemontower2.blk"
-PokemonTower2Blocks: ; 60666 (18:4666)
- INCBIN "maps/pokemontower2.blk"
-
INCLUDE "data/mapHeaders/pokemontower3.asm"
-
INCLUDE "scripts/pokemontower3.asm"
-
INCLUDE "data/mapObjects/pokemontower3.asm"
+PokemonTower3Blocks: INCBIN "maps/pokemontower3.blk"
-PokemonTower3Blocks: ; 60790 (18:4790)
- INCBIN "maps/pokemontower3.blk"
-
INCLUDE "data/mapHeaders/pokemontower4.asm"
-
INCLUDE "scripts/pokemontower4.asm"
-
INCLUDE "data/mapObjects/pokemontower4.asm"
+PokemonTower4Blocks: INCBIN "maps/pokemontower4.blk"
-PokemonTower4Blocks: ; 608cc (18:48cc)
- INCBIN "maps/pokemontower4.blk"
-
INCLUDE "data/mapHeaders/pokemontower5.asm"
-
INCLUDE "scripts/pokemontower5.asm"
-
INCLUDE "data/mapObjects/pokemontower5.asm"
+PokemonTower5Blocks: INCBIN "maps/pokemontower5.blk"
-PokemonTower5Blocks: ; 60a89 (18:4a89)
- INCBIN "maps/pokemontower5.blk"
-
INCLUDE "data/mapHeaders/pokemontower6.asm"
-
INCLUDE "scripts/pokemontower6.asm"
-
INCLUDE "data/mapObjects/pokemontower6.asm"
+PokemonTower6Blocks: INCBIN "maps/pokemontower6.blk"
-PokemonTower6Blocks: ; 60c95 (18:4c95)
- INCBIN "maps/pokemontower6.blk"
-
INCBIN "maps/unusedblocks60cef.blk"
INCLUDE "data/mapHeaders/pokemontower7.asm"
-
INCLUDE "scripts/pokemontower7.asm"
-
INCLUDE "data/mapObjects/pokemontower7.asm"
+PokemonTower7Blocks: INCBIN "maps/pokemontower7.blk"
-PokemonTower7Blocks: ; 60f20 (18:4f20)
- INCBIN "maps/pokemontower7.blk"
-
INCLUDE "data/mapHeaders/celadonmart1.asm"
-
INCLUDE "scripts/celadonmart1.asm"
-
INCLUDE "data/mapObjects/celadonmart1.asm"
+CeladonMart1Blocks: INCBIN "maps/celadonmart1.blk"
-CeladonMart1Blocks: ; 60fde (18:4fde)
- INCBIN "maps/celadonmart1.blk"
-
INCLUDE "engine/overworld/cinnabar_lab.asm"
INCLUDE "data/mapHeaders/viridianforest.asm"
-
INCLUDE "scripts/viridianforest.asm"
-
INCLUDE "data/mapObjects/viridianforest.asm"
INCLUDE "data/mapHeaders/ssanne1.asm"
-
INCLUDE "scripts/ssanne1.asm"
-
INCLUDE "data/mapObjects/ssanne1.asm"
+SSAnne1Blocks: INCBIN "maps/ssanne1.blk"
-SSAnne1Blocks: ; 612df (18:52df)
- INCBIN "maps/ssanne1.blk"
-
INCLUDE "data/mapHeaders/ssanne2.asm"
-
INCLUDE "scripts/ssanne2.asm"
-
INCLUDE "data/mapObjects/ssanne2.asm"
+SSAnne2Blocks: INCBIN "maps/ssanne2.blk"
-SSAnne2Blocks: ; 6156e (18:556e)
- INCBIN "maps/ssanne2.blk"
-
INCLUDE "data/mapHeaders/ssanne4.asm"
-
INCLUDE "scripts/ssanne4.asm"
-
INCLUDE "data/mapObjects/ssanne4.asm"
+SSAnne4Blocks: INCBIN "maps/ssanne4.blk"
-SSAnne4Blocks: ; 61666 (18:5666)
- INCBIN "maps/ssanne4.blk"
-
INCLUDE "data/mapHeaders/ssanne5.asm"
-
INCLUDE "scripts/ssanne5.asm"
-
INCLUDE "data/mapObjects/ssanne5.asm"
+SSAnne5Blocks: INCBIN "maps/ssanne5.blk"
-SSAnne5Blocks: ; 61761 (18:5761)
- INCBIN "maps/ssanne5.blk"
-
INCLUDE "data/mapHeaders/ssanne6.asm"
-
INCLUDE "scripts/ssanne6.asm"
-
INCLUDE "data/mapObjects/ssanne6.asm"
+SSAnne6Blocks: INCBIN "maps/ssanne6.blk"
-SSAnne6Blocks: ; 61851 (18:5851)
- INCBIN "maps/ssanne6.blk"
-
INCLUDE "data/mapHeaders/ssanne7.asm"
-
INCLUDE "scripts/ssanne7.asm"
-
INCLUDE "data/mapObjects/ssanne7.asm"
+SSAnne7Blocks: INCBIN "maps/ssanne7.blk"
-SSAnne7Blocks: ; 6195e (18:595e)
- INCBIN "maps/ssanne7.blk"
-
INCLUDE "data/mapHeaders/ssanne8.asm"
-
INCLUDE "scripts/ssanne8.asm"
-
INCLUDE "data/mapObjects/ssanne8.asm"
+SSAnne8Blocks: INCBIN "maps/ssanne8.blk"
-SSAnne8Blocks: ; 61adf (18:5adf)
- INCBIN "maps/ssanne8.blk"
-
INCLUDE "data/mapHeaders/ssanne9.asm"
-
INCLUDE "scripts/ssanne9.asm"
-
INCLUDE "data/mapObjects/ssanne9.asm"
INCLUDE "data/mapHeaders/ssanne10.asm"
-
INCLUDE "scripts/ssanne10.asm"
-
INCLUDE "data/mapObjects/ssanne10.asm"
INCLUDE "data/mapHeaders/undergroundpathns.asm"
-
INCLUDE "scripts/undergroundpathns.asm"
-
INCLUDE "data/mapObjects/undergroundpathns.asm"
INCLUDE "data/mapHeaders/undergroundpathwe.asm"
-
INCLUDE "scripts/undergroundpathwe.asm"
-
INCLUDE "data/mapObjects/undergroundpathwe.asm"
INCLUDE "data/mapHeaders/diglettscave.asm"
-
INCLUDE "scripts/diglettscave.asm"
-
INCLUDE "data/mapObjects/diglettscave.asm"
+DiglettsCaveBlocks: INCBIN "maps/diglettscave.blk"
-DiglettsCaveBlocks: ; 61f86 (18:5f86)
- INCBIN "maps/diglettscave.blk"
-
INCLUDE "data/mapHeaders/silphco11.asm"
-
INCLUDE "scripts/silphco11.asm"
-
INCLUDE "data/mapObjects/silphco11.asm"
+SilphCo11Blocks: INCBIN "maps/silphco11.blk"
-SilphCo11Blocks: ; 623c8 (18:63c8)
- INCBIN "maps/silphco11.blk"
-
INCLUDE "engine/hidden_object_functions18.asm"
+
SECTION "bank19",ROMX,BANK[$19]
-Overworld_GFX: ; 64000 (19:4000)
- INCBIN "gfx/tilesets/overworld.w128.t2.2bpp"
-Overworld_Block: ; 645e0 (19:45e0)
- INCBIN "gfx/blocksets/overworld.bst"
+Overworld_GFX: INCBIN "gfx/tilesets/overworld.t2.2bpp"
+Overworld_Block: INCBIN "gfx/blocksets/overworld.bst"
+
RedsHouse1_GFX:
-RedsHouse2_GFX: ; 64de0 (19:4de0)
- INCBIN "gfx/tilesets/reds_house.w128.t7.2bpp"
+RedsHouse2_GFX: INCBIN "gfx/tilesets/reds_house.t7.2bpp"
RedsHouse1_Block:
-RedsHouse2_Block: ; 65270 (19:5270)
- INCBIN "gfx/blocksets/reds_house.bst"
-House_GFX: ; 653a0 (19:53a0)
- INCBIN "gfx/tilesets/house.w128.t2.2bpp"
-House_Block: ; 65980 (19:5980)
- INCBIN "gfx/blocksets/house.bst"
-Mansion_GFX: ; 65bb0 (19:5bb0)
- INCBIN "gfx/tilesets/mansion.w128.t2.2bpp"
-Mansion_Block: ; 66190 (19:6190)
- INCBIN "gfx/blocksets/mansion.bst"
-ShipPort_GFX: ; 66610 (19:6610)
- INCBIN "gfx/tilesets/ship_port.w128.t2.2bpp"
-ShipPort_Block: ; 66bf0 (19:6bf0)
- INCBIN "gfx/blocksets/ship_port.bst"
-Interior_GFX: ; 66d60 (19:6d60)
- INCBIN "gfx/tilesets/interior.w128.t1.2bpp"
-Interior_Block: ; 67350 (19:7350)
- INCBIN "gfx/blocksets/interior.bst"
-Plateau_GFX: ; 676f0 (19:76f0)
- INCBIN "gfx/tilesets/plateau.w128.t10.2bpp"
-Plateau_Block: ; 67b50 (19:7b50)
- INCBIN "gfx/blocksets/plateau.bst"
+RedsHouse2_Block: INCBIN "gfx/blocksets/reds_house.bst"
+House_GFX: INCBIN "gfx/tilesets/house.t2.2bpp"
+House_Block: INCBIN "gfx/blocksets/house.bst"
+Mansion_GFX: INCBIN "gfx/tilesets/mansion.t2.2bpp"
+Mansion_Block: INCBIN "gfx/blocksets/mansion.bst"
+ShipPort_GFX: INCBIN "gfx/tilesets/ship_port.t2.2bpp"
+ShipPort_Block: INCBIN "gfx/blocksets/ship_port.bst"
+Interior_GFX: INCBIN "gfx/tilesets/interior.t1.2bpp"
+Interior_Block: INCBIN "gfx/blocksets/interior.bst"
+Plateau_GFX: INCBIN "gfx/tilesets/plateau.t10.2bpp"
+Plateau_Block: INCBIN "gfx/blocksets/plateau.bst"
+
+
SECTION "bank1A",ROMX,BANK[$1A]
INCLUDE "engine/battle/1a.asm"
-Version_GFX: ; 6802f (1a:402f)
+Version_GFX:
IF _RED
- INCBIN "gfx/red/redgreenversion.h8.1bpp"
- ; 80 bytes
+ INCBIN "gfx/red/redgreenversion.1bpp" ; 10 tiles
ENDC
IF _BLUE
- INCBIN "gfx/blue/blueversion.h8.1bpp"
- ; 64 bytes
+ INCBIN "gfx/blue/blueversion.1bpp" ; 8 tiles
ENDC
Dojo_GFX:
-Gym_GFX: ; 6807f (1a:407f)
- INCBIN "gfx/tilesets/gym.w128.2bpp"
+Gym_GFX: INCBIN "gfx/tilesets/gym.2bpp"
Dojo_Block:
-Gym_Block: ; 6867f (1a:467f)
- INCBIN "gfx/blocksets/gym.bst"
+Gym_Block: INCBIN "gfx/blocksets/gym.bst"
+
Mart_GFX:
-Pokecenter_GFX: ; 68dbf (1a:4dbf)
- INCBIN "gfx/tilesets/pokecenter.w128.2bpp"
+Pokecenter_GFX: INCBIN "gfx/tilesets/pokecenter.2bpp"
Mart_Block:
-Pokecenter_Block: ; 693bf (1a:53bf)
- INCBIN "gfx/blocksets/pokecenter.bst"
+Pokecenter_Block: INCBIN "gfx/blocksets/pokecenter.bst"
+
ForestGate_GFX:
Museum_GFX:
-Gate_GFX: ; 6960f (1a:560f)
- INCBIN "gfx/tilesets/gate.w128.t1.2bpp"
+Gate_GFX: INCBIN "gfx/tilesets/gate.t1.2bpp"
ForestGate_Block:
Museum_Block:
-Gate_Block: ; 69bff (1a:5bff)
- INCBIN "gfx/blocksets/gate.bst"
-Forest_GFX: ; 6a3ff (1a:63ff)
- INCBIN "gfx/tilesets/forest.w128.2bpp"
-Forest_Block: ; 6a9ff (1a:69ff)
- INCBIN "gfx/blocksets/forest.bst"
-Facility_GFX: ; 6b1ff (1a:71ff)
- INCBIN "gfx/tilesets/facility.w128.2bpp"
-Facility_Block: ; 6b7ff (1a:77ff)
- INCBIN "gfx/blocksets/facility.bst"
+Gate_Block: INCBIN "gfx/blocksets/gate.bst"
+Forest_GFX: INCBIN "gfx/tilesets/forest.2bpp"
+Forest_Block: INCBIN "gfx/blocksets/forest.bst"
+Facility_GFX: INCBIN "gfx/tilesets/facility.2bpp"
+Facility_Block: INCBIN "gfx/blocksets/facility.bst"
+
+
SECTION "bank1B",ROMX,BANK[$1B]
-Cemetery_GFX: ; 6c000 (1b:4000)
- INCBIN "gfx/tilesets/cemetery.w128.t4.2bpp"
-Cemetery_Block: ; 6c5c0 (1b:45c0)
- INCBIN "gfx/blocksets/cemetery.bst"
-Cavern_GFX: ; 6cca0 (1b:4ca0)
- INCBIN "gfx/tilesets/cavern.w128.t14.2bpp"
-Cavern_Block: ; 6d0c0 (1b:50c0)
- INCBIN "gfx/blocksets/cavern.bst"
-Lobby_GFX: ; 6d8c0 (1b:58c0)
- INCBIN "gfx/tilesets/lobby.w128.t2.2bpp"
-Lobby_Block: ; 6dea0 (1b:5ea0)
- INCBIN "gfx/blocksets/lobby.bst"
-Ship_GFX: ; 6e390 (1b:6390)
- INCBIN "gfx/tilesets/ship.w128.t6.2bpp"
-Ship_Block: ; 6e930 (1b:6930)
- INCBIN "gfx/blocksets/ship.bst"
-Lab_GFX: ; 6ed10 (1b:6d10)
- INCBIN "gfx/tilesets/lab.w128.t4.2bpp"
-Lab_Block: ; 6f2d0 (1b:72d0)
- INCBIN "gfx/blocksets/lab.bst"
-Club_GFX: ; 6f670 (1b:7670)
- INCBIN "gfx/tilesets/club.w128.t5.2bpp"
-Club_Block: ; 6fb20 (1b:7b20)
- INCBIN "gfx/blocksets/club.bst"
-Underground_GFX: ; 6fd60 (1b:7d60)
- INCBIN "gfx/tilesets/underground.w128.t7.2bpp"
-Underground_Block: ; 6fef0 (1b:7ef0)
- INCBIN "gfx/blocksets/underground.bst"
+Cemetery_GFX: INCBIN "gfx/tilesets/cemetery.t4.2bpp"
+Cemetery_Block: INCBIN "gfx/blocksets/cemetery.bst"
+Cavern_GFX: INCBIN "gfx/tilesets/cavern.t14.2bpp"
+Cavern_Block: INCBIN "gfx/blocksets/cavern.bst"
+Lobby_GFX: INCBIN "gfx/tilesets/lobby.t2.2bpp"
+Lobby_Block: INCBIN "gfx/blocksets/lobby.bst"
+Ship_GFX: INCBIN "gfx/tilesets/ship.t6.2bpp"
+Ship_Block: INCBIN "gfx/blocksets/ship.bst"
+Lab_GFX: INCBIN "gfx/tilesets/lab.t4.2bpp"
+Lab_Block: INCBIN "gfx/blocksets/lab.bst"
+Club_GFX: INCBIN "gfx/tilesets/club.t5.2bpp"
+Club_Block: INCBIN "gfx/blocksets/club.bst"
+Underground_GFX: INCBIN "gfx/tilesets/underground.t7.2bpp"
+Underground_Block: INCBIN "gfx/blocksets/underground.bst"
+
SECTION "bank1C",ROMX,BANK[$1C]
INCLUDE "engine/gamefreak.asm"
-
INCLUDE "engine/hall_of_fame.asm"
-
INCLUDE "engine/overworld/healing_machine.asm"
-
INCLUDE "engine/overworld/player_animations.asm"
-
INCLUDE "engine/battle/1c.asm"
-
INCLUDE "engine/town_map.asm"
-
INCLUDE "engine/mon_party_sprites.asm"
-
INCLUDE "engine/in_game_trades.asm"
-
INCLUDE "engine/palettes.asm"
-
INCLUDE "engine/save.asm"
+
SECTION "bank1D",ROMX,BANK[$1D]
-CopycatsHouse1FBlocks: ; 74000 (1d:4000)
- INCBIN "maps/copycatshouse1f.blk"
+CopycatsHouse1FBlocks: INCBIN "maps/copycatshouse1f.blk"
-CinnabarMartBlocks: ; 74010 (1d:4010)
-PewterMartBlocks: ; 74010 (1d:4010)
- INCBIN "maps/pewtermart.blk"
+CinnabarMartBlocks:
+PewterMartBlocks: INCBIN "maps/pewtermart.blk"
-FuchsiaHouse1Blocks: ; 74020 (1d:4020)
- INCBIN "maps/fuchsiahouse1.blk"
+FuchsiaHouse1Blocks: INCBIN "maps/fuchsiahouse1.blk"
-CinnabarPokecenterBlocks: ; 74030 (1d:4030)
-FuchsiaPokecenterBlocks: ; 74030 (1d:4030)
- INCBIN "maps/fuchsiapokecenter.blk"
+CinnabarPokecenterBlocks:
+FuchsiaPokecenterBlocks: INCBIN "maps/fuchsiapokecenter.blk"
-CeruleanHouse2Blocks: ; 7404c (1d:404c)
- INCBIN "maps/ceruleanhouse2.blk"
+CeruleanHouse2Blocks: INCBIN "maps/ceruleanhouse2.blk"
INCLUDE "engine/HoF_room_pc.asm"
@@ -18799,188 +6385,115 @@
INCLUDE "scripts/ceruleancity2.asm"
INCLUDE "data/mapHeaders/viridiangym.asm"
-
INCLUDE "scripts/viridiangym.asm"
-
INCLUDE "data/mapObjects/viridiangym.asm"
+ViridianGymBlocks: INCBIN "maps/viridiangym.blk"
-ViridianGymBlocks: ; 74c47 (1d:4c47)
- INCBIN "maps/viridiangym.blk"
-
INCLUDE "data/mapHeaders/pewtermart.asm"
-
INCLUDE "scripts/pewtermart.asm"
-
INCLUDE "data/mapObjects/pewtermart.asm"
INCLUDE "data/mapHeaders/unknowndungeon1.asm"
-
INCLUDE "scripts/unknowndungeon1.asm"
-
INCLUDE "data/mapObjects/unknowndungeon1.asm"
+UnknownDungeon1Blocks: INCBIN "maps/unknowndungeon1.blk"
-UnknownDungeon1Blocks: ; 74d76 (1d:4d76)
- INCBIN "maps/unknowndungeon1.blk"
-
INCLUDE "data/mapHeaders/ceruleanhouse2.asm"
-
INCLUDE "scripts/ceruleanhouse2.asm"
-
INCLUDE "data/mapObjects/ceruleanhouse2.asm"
INCLUDE "engine/menu/vending_machine.asm"
INCLUDE "data/mapHeaders/fuchsiahouse1.asm"
-
INCLUDE "scripts/fuchsiahouse1.asm"
-
INCLUDE "data/mapObjects/fuchsiahouse1.asm"
INCLUDE "data/mapHeaders/fuchsiapokecenter.asm"
-
INCLUDE "scripts/fuchsiapokecenter.asm"
-
INCLUDE "data/mapObjects/fuchsiapokecenter.asm"
INCLUDE "data/mapHeaders/fuchsiahouse2.asm"
-
INCLUDE "scripts/fuchsiahouse2.asm"
-
INCLUDE "data/mapObjects/fuchsiahouse2.asm"
+FuchsiaHouse2Blocks: INCBIN "maps/fuchsiahouse2.blk"
-FuchsiaHouse2Blocks: ; 751ad (1d:51ad)
- INCBIN "maps/fuchsiahouse2.blk"
-
INCLUDE "data/mapHeaders/safarizoneentrance.asm"
-
INCLUDE "scripts/safarizoneentrance.asm"
-
INCLUDE "data/mapObjects/safarizoneentrance.asm"
+SafariZoneEntranceBlocks: INCBIN "maps/safarizoneentrance.blk"
-SafariZoneEntranceBlocks: ; 75425 (1d:5425)
- INCBIN "maps/safarizoneentrance.blk"
-
INCLUDE "data/mapHeaders/fuchsiagym.asm"
-
INCLUDE "scripts/fuchsiagym.asm"
-
INCLUDE "data/mapObjects/fuchsiagym.asm"
+FuchsiaGymBlocks: INCBIN "maps/fuchsiagym.blk"
-FuchsiaGymBlocks: ; 756aa (1d:56aa)
- INCBIN "maps/fuchsiagym.blk"
-
INCLUDE "data/mapHeaders/fuchsiameetingroom.asm"
-
INCLUDE "scripts/fuchsiameetingroom.asm"
-
INCLUDE "data/mapObjects/fuchsiameetingroom.asm"
+FuchsiaMeetingRoomBlocks: INCBIN "maps/fuchsiameetingroom.blk"
-FuchsiaMeetingRoomBlocks: ; 75722 (1d:5722)
- INCBIN "maps/fuchsiameetingroom.blk"
-
INCLUDE "data/mapHeaders/cinnabargym.asm"
-
INCLUDE "scripts/cinnabargym.asm"
-
INCLUDE "data/mapObjects/cinnabargym.asm"
+CinnabarGymBlocks: INCBIN "maps/cinnabargym.blk"
-CinnabarGymBlocks: ; 75b26 (1d:5b26)
- INCBIN "maps/cinnabargym.blk"
-
INCLUDE "data/mapHeaders/lab1.asm"
-
INCLUDE "scripts/lab1.asm"
-
INCLUDE "data/mapObjects/lab1.asm"
+Lab1Blocks: INCBIN "maps/lab1.blk"
-Lab1Blocks: ; 75bf1 (1d:5bf1)
- INCBIN "maps/lab1.blk"
-
INCLUDE "data/mapHeaders/lab2.asm"
-
INCLUDE "scripts/lab2.asm"
-
INCLUDE "data/mapObjects/lab2.asm"
+Lab2Blocks: INCBIN "maps/lab2.blk"
-Lab2Blocks: ; 75c6b (1d:5c6b)
- INCBIN "maps/lab2.blk"
-
INCLUDE "data/mapHeaders/lab3.asm"
-
INCLUDE "scripts/lab3.asm"
-
INCLUDE "data/mapObjects/lab3.asm"
+Lab3Blocks: INCBIN "maps/lab3.blk"
-Lab3Blocks: ; 75d15 (1d:5d15)
- INCBIN "maps/lab3.blk"
-
INCLUDE "data/mapHeaders/lab4.asm"
-
INCLUDE "scripts/lab4.asm"
-
INCLUDE "data/mapObjects/lab4.asm"
+Lab4Blocks: INCBIN "maps/lab4.blk"
-Lab4Blocks: ; 75e10 (1d:5e10)
- INCBIN "maps/lab4.blk"
-
INCLUDE "data/mapHeaders/cinnabarpokecenter.asm"
-
INCLUDE "scripts/cinnabarpokecenter.asm"
-
INCLUDE "data/mapObjects/cinnabarpokecenter.asm"
INCLUDE "data/mapHeaders/cinnabarmart.asm"
-
INCLUDE "scripts/cinnabarmart.asm"
-
INCLUDE "data/mapObjects/cinnabarmart.asm"
INCLUDE "data/mapHeaders/copycatshouse1f.asm"
-
INCLUDE "scripts/copycatshouse1f.asm"
-
INCLUDE "data/mapObjects/copycatshouse1f.asm"
INCLUDE "data/mapHeaders/gary.asm"
-
INCLUDE "scripts/gary.asm"
-
INCLUDE "data/mapObjects/gary.asm"
+GaryBlocks: INCBIN "maps/gary.blk"
-GaryBlocks: ; 7615f (1d:615f)
- INCBIN "maps/gary.blk"
-
INCLUDE "data/mapHeaders/lorelei.asm"
-
INCLUDE "scripts/lorelei.asm"
-
INCLUDE "data/mapObjects/lorelei.asm"
+LoreleiBlocks: INCBIN "maps/lorelei.blk"
-LoreleiBlocks: ; 762ac (1d:62ac)
- INCBIN "maps/lorelei.blk"
-
INCLUDE "data/mapHeaders/bruno.asm"
-
INCLUDE "scripts/bruno.asm"
-
INCLUDE "data/mapObjects/bruno.asm"
+BrunoBlocks: INCBIN "maps/bruno.blk"
-BrunoBlocks: ; 76403 (1d:6403)
- INCBIN "maps/bruno.blk"
-
INCLUDE "data/mapHeaders/agatha.asm"
-
INCLUDE "scripts/agatha.asm"
-
INCLUDE "data/mapObjects/agatha.asm"
+AgathaBlocks: INCBIN "maps/agatha.blk"
-AgathaBlocks: ; 76560 (1d:6560)
- INCBIN "maps/agatha.blk"
-
INCLUDE "engine/menu/league_pc.asm"
INCLUDE "engine/overworld/hidden_items.asm"
+
SECTION "bank1E",ROMX,BANK[$1E]
INCLUDE "engine/battle/animations.asm"
@@ -18989,17 +6502,10 @@
INCLUDE "engine/overworld/ssanne.asm"
-RedFishingTilesFront: ; 79fed (1e:5fed)
- INCBIN "gfx/red_fishing_tile_front.2bpp"
-
-RedFishingTilesBack: ; 7a00d (1e:600d)
- INCBIN "gfx/red_fishing_tile_back.2bpp"
-
-RedFishingTilesSide: ; 7a02d (1e:602d)
- INCBIN "gfx/red_fishing_tile_side.2bpp"
-
-RedFishingRodTiles: ; 7a04d (1e:604d)
- INCBIN "gfx/red_fishingrod_tiles.2bpp"
+RedFishingTilesFront: INCBIN "gfx/red_fishing_tile_front.2bpp"
+RedFishingTilesBack: INCBIN "gfx/red_fishing_tile_back.2bpp"
+RedFishingTilesSide: INCBIN "gfx/red_fishing_tile_side.2bpp"
+RedFishingRodTiles: INCBIN "gfx/red_fishingrod_tiles.2bpp"
INCLUDE "data/animations.asm"
--- a/pokeblue.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "blue.asm"
-INCLUDE "main.asm"
--- a/pokered.asm
+++ /dev/null
@@ -1,2 +1,0 @@
-INCLUDE "red.asm"
-INCLUDE "main.asm"
--- /dev/null
+++ b/red/audio.asm
@@ -1,0 +1,2 @@
+INCLUDE "red.asm"
+INCLUDE "audio.asm"
--- /dev/null
+++ b/red/main.asm
@@ -1,0 +1,2 @@
+INCLUDE "red.asm"
+INCLUDE "main.asm"
--- /dev/null
+++ b/red/text.asm
@@ -1,0 +1,2 @@
+INCLUDE "red.asm"
+INCLUDE "text.asm"
--- /dev/null
+++ b/red/wram.asm
@@ -1,0 +1,2 @@
+INCLUDE "red.asm"
+INCLUDE "wram.asm"
--- a/scripts/agatha.asm
+++ b/scripts/agatha.asm
@@ -9,11 +9,11 @@
ret
AgathaScript_76443: ; 76443 (1d:6443)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d865]
+ ld a, [wd865]
bit 1, a
jr z, .asm_76457
ld a, $e
@@ -22,10 +22,9 @@
ld a, $3b
AgathaScript_76459: ; 76459 (1d:6459)
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $2
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
AgathaScript_76464: ; 76464 (1d:6464)
xor a
@@ -42,7 +41,7 @@
AgathaScript4: ; 76473 (1d:6473)
ret
asm_76474: ; 76474 (1d:6474)
- ld hl, $ccd3
+ ld hl, wccd3
ld a, $40
ld [hli], a
ld [hli], a
@@ -51,7 +50,7 @@
ld [hli], a
ld [hl], a
ld a, $6
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_AGATHACURSCRIPT], a
@@ -63,14 +62,14 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$ccd3], a
- ld [$cd38], a
- ld a, [wWhichTrade] ; $cd3d
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
+ ld [wccd3], a
+ ld [wcd38], a
+ ld a, [wWhichTrade] ; wWhichTrade
cp $3
jr c, .asm_764b4
- ld hl, $d865
+ ld hl, wd865
bit 6, [hl]
set 6, [hl]
jr z, asm_76474
@@ -79,9 +78,9 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_AGATHACURSCRIPT], a
@@ -96,12 +95,12 @@
db $FF
AgathaScript3: ; 764da (1d:64da)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_AGATHACURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -108,7 +107,7 @@
AgathaScript2: ; 764ed (1d:64ed)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, AgathaScript_76464
ld a, $1
@@ -126,7 +125,7 @@
AgathaTrainerHeader0: ; 76509 (1d:6509)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d865 ; flag's byte
+ dw wd865 ; flag's byte
dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle
dw AgathaAfterBattleText ; 0x652a TextAfterBattle
dw AgathaEndBattleText ; 0x6525 TextEndBattle
--- a/scripts/battlecenterm.asm
+++ b/scripts/battlecenterm.asm
@@ -10,24 +10,24 @@
ld a, $1
ld [$ff8c], a
call Func_34ae
- ld hl, $d72d
+ ld hl, wd72d
bit 0, [hl]
set 0, [hl]
ret nz
- ld hl, $c214
+ ld hl, wSpriteStateData2 + $14
ld a, $8
ld [hli], a
ld a, $a
ld [hl], a
ld a, $8
- ld [$c119], a
+ ld [wSpriteStateData1 + $19], a
ld a, [$ffaa]
cp $2
ret z
ld a, $7
- ld [$c215], a
+ ld [wSpriteStateData2 + $15], a
ld a, $c
- ld [$c119], a
+ ld [wSpriteStateData1 + $19], a
ret
BattleCenterMTextPointers: ; 4fd4c (13:7d4c)
--- a/scripts/bikeshop.asm
+++ b/scripts/bikeshop.asm
@@ -8,7 +8,7 @@
BikeShopText1: ; 1d745 (7:5745)
db $08 ; asm
- ld a, [$d75f]
+ ld a, [wd75f]
bit 0, a
jr z, .asm_260d4 ; 0x1d74b
ld hl, BikeShopText_1d82f
@@ -26,7 +26,7 @@
ld a, BIKE_VOUCHER
ldh [$db], a
callba RemoveItemByID
- ld hl, $d75f
+ ld hl, wd75f
set 0, [hl]
ld hl, BikeShopText_1d824
call PrintText
@@ -39,17 +39,17 @@
ld hl, BikeShopText_1d810
call PrintText
xor a
- ld [$cc26], a
- ld [$cc2a], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
ld a, $3
- ld [$cc29], a
+ ld [wMenuWatchedKeys], a
ld a, $1
- ld [$cc28], a
+ ld [wMaxMenuItem], a
ld a, $2
- ld [$cc24], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [$cc25], a
- ld hl, $d730
+ ld [wTopMenuItemX], a
+ ld hl, wd730
set 6, [hl]
ld hl, wTileMap
ld b, $4
@@ -56,12 +56,10 @@
ld c, $f
call TextBoxBorder
call UpdateSprites
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld de, BikeShopMenuText
call PlaceString
- FuncCoord 8, 3 ; $c3e4
- ld hl, Coord
+ hlCoord 8, 3
ld de, BikeShopMenuPrice
call PlaceString
ld hl, BikeShopText_1d815
@@ -69,9 +67,9 @@
call HandleMenuInput
bit 1, a
jr nz, .asm_b7579 ; 0x1d7dc
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_b7579 ; 0x1d7e7
ld hl, BikeShopText_1d81a
@@ -133,7 +131,7 @@
BikeShopText3: ; 1d848 (7:5848)
db $08 ; asm
- ld a, [$d75f]
+ ld a, [wd75f]
bit 0, a
ld hl, BikeShopText_1d861
jr nz, .asm_34d2d ; 0x1d851
--- a/scripts/billshouse.asm
+++ b/scripts/billshouse.asm
@@ -16,7 +16,7 @@
ret
BillsHouseScript1: ; 1e783 (7:6783)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
ld de, MovementData_1e79c
jr nz, .asm_1e78f ; 0x1e78a $3
@@ -36,29 +36,28 @@
db $C0,$40,$40,$80,$40,$FF
BillsHouseScript2: ; 1e7a6 (7:67a6)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $61
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld hl, $d7f2
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd7f2
set 6, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $3
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript3: ; 1e7c5 (7:67c5)
- ld a, [$d7f2]
+ ld a, [wd7f2]
bit 3, a
ret z
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $2
- ld [$cf13], a
+ ld [wcf13], a
ld a, $c
ld [$ffeb], a
ld a, $40
@@ -69,9 +68,8 @@
ld [$ffee], a
call Func_32f9
ld a, $62
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld c, $8
call DelayFrames
ld a, $2
@@ -86,14 +84,14 @@
db $00,$C0,$C0,$C0,$00,$FF
BillsHouseScript4: ; 1e80d (7:680d)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d7f2
+ ld [wJoyIgnore], a
+ ld hl, wd7f2
set 5, [hl]
- ld hl, $d7f1
+ ld hl, wd7f1
set 0, [hl]
ld a, $0
ld [W_BILLSHOUSECURSCRIPT], a
@@ -121,7 +119,7 @@
ld hl, BillsHouseText_1e865
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, asm_6b196 ; 0x1e84b $d
asm_4d03c: ; 1e84d (7:684d)
@@ -151,7 +149,7 @@
BillsHouseText2: ; 1e874 (7:6874)
db $08 ; asm
- ld a, [$d7f2]
+ ld a, [wd7f2]
bit 4, a
jr nz, .asm_5491f ; 0x1e87a
ld hl, BillThankYouText
@@ -161,16 +159,14 @@
jr nc, .BagFull
ld hl, SSTicketReceivedText
call PrintText
- ld hl, $d7f2
+ ld hl, wd7f2
set 4, [hl]
ld a, $7
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $9
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
.asm_5491f ; 0x1e8a9
ld hl, BillsHouseText_1e8cb
call PrintText
--- a/scripts/blueshouse.asm
+++ b/scripts/blueshouse.asm
@@ -9,7 +9,7 @@
dw BluesHouseScript1
BluesHouseScript0: ; 19b4b (6:5b4b)
- ld hl,$D74A
+ ld hl,wd74a
set 1,[hl]
; trigger the next script
@@ -27,10 +27,10 @@
BluesHouseText1: ; 19b5d (6:5b5d)
db 8
- ld a,[$D74A]
+ ld a,[wd74a]
bit 0,a
jr nz,.GotMap
- ld a,[$D74B]
+ ld a,[wd74b]
bit 5,a
jr nz,.GiveMap
ld hl,DaisyInitialText
@@ -43,12 +43,11 @@
call GiveItem
jr nc, .BagFull
ld a,$29
- ld [$CC4D],a
- ld a,$11
- call Predef ; hide table map object
+ ld [wcc4d],a
+ predef HideObject ; hide table map object
ld hl,GotMapText
call PrintText
- ld hl,$D74A
+ ld hl,wd74a
set 0,[hl]
jr .done
.GotMap
--- a/scripts/bruno.asm
+++ b/scripts/bruno.asm
@@ -9,11 +9,11 @@
ret
BrunoScript_762ec: ; 762ec (1d:62ec)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d864]
+ ld a, [wd864]
bit 1, a
jr z, .asm_76300
ld a, $5
@@ -22,10 +22,9 @@
ld a, $24
BrunoScript_76302: ; 76302 (1d:6302)
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $2
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
BrunoScript_7630d: ; 7630d (1d:630d)
xor a
@@ -42,7 +41,7 @@
BrunoScript4: ; 7631c (1d:631c)
ret
asm_7631d: ; 7631d (1d:631d)
- ld hl, $ccd3
+ ld hl, wccd3
ld a, $40
ld [hli], a
ld [hli], a
@@ -51,7 +50,7 @@
ld [hli], a
ld [hl], a
ld a, $6
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_BRUNOCURSCRIPT], a
@@ -63,14 +62,14 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$ccd3], a
- ld [$cd38], a
- ld a, [wWhichTrade] ; $cd3d
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
+ ld [wccd3], a
+ ld [wcd38], a
+ ld a, [wWhichTrade] ; wWhichTrade
cp $3
jr c, .asm_7635d
- ld hl, $d864
+ ld hl, wd864
bit 6, [hl]
set 6, [hl]
jr z, asm_7631d
@@ -79,9 +78,9 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_BRUNOCURSCRIPT], a
@@ -96,12 +95,12 @@
db $FF
BrunoScript3: ; 76383 (1d:6383)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_BRUNOCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -108,7 +107,7 @@
BrunoScript2: ; 76396 (1d:6396)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, BrunoScript_7630d
ld a, $1
@@ -123,7 +122,7 @@
BrunoTrainerHeader0: ; 763ac (1d:63ac)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d864 ; flag's byte
+ dw wd864 ; flag's byte
dw BrunoBeforeBattleText ; 0x63c3 TextBeforeBattle
dw BrunoAfterBattleText ; 0x63cd TextAfterBattle
dw BrunoEndBattleText ; 0x63c8 TextEndBattle
--- a/scripts/celadoncity.asm
+++ b/scripts/celadoncity.asm
@@ -1,9 +1,9 @@
CeladonCityScript: ; 19956 (6:5956)
call EnableAutoTextBoxDrawing
- ld hl, $d77e
+ ld hl, wd77e
res 0, [hl]
res 7, [hl]
- ld hl, $d816
+ ld hl, wd816
res 7, [hl]
ret
@@ -45,7 +45,7 @@
CeladonCityText5: ; 1999e (6:599e)
db $08 ; asm
- ld a, [$d777]
+ ld a, [wd777]
bit 0, a
jr nz, .asm_7053f ; 0x199a4
ld hl, TM41PreText
@@ -59,7 +59,7 @@
.Success
ld hl, ReceivedTM41Text
call PrintText
- ld hl, $d777
+ ld hl, wd777
set 0, [hl]
jr .Done
.asm_7053f ; 0x199c9
--- a/scripts/celadondiner.asm
+++ b/scripts/celadondiner.asm
@@ -27,7 +27,7 @@
CeladonDinerText5: ; 49173 (12:5173)
db $08 ; asm
- ld a, [$d783]
+ ld a, [wd783]
bit 0, a
jr nz, .asm_eb14d ; 0x49179
ld hl, CeladonDinerText_491a7
@@ -35,7 +35,7 @@
ld bc, (COIN_CASE << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d783
+ ld hl, wd783
set 0, [hl]
ld hl, ReceivedCoinCaseText
call PrintText
--- a/scripts/celadongamecorner.asm
+++ b/scripts/celadongamecorner.asm
@@ -7,11 +7,11 @@
jp CallFunctionInTable
CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
ret z
- call GenRandom
+ call Random
ld a, [$ffd3]
cp $7
jr nc, .asm_48be2
@@ -20,26 +20,25 @@
srl a
srl a
srl a
- ld [$cd05], a
+ ld [wcd05], a
ret
CeladonGameCornerScript_48bec: ; 48bec (12:4bec)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d77e]
+ ld a, [wd77e]
bit 1, a
ret nz
ld a, $2a
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0208
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_CELADONGAMECORNERCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -57,7 +56,7 @@
cp $ff
jp z, CeladonGameCornerScript_48c07
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $d
ld [H_SPRITEHEIGHT], a
call DisplayTextID
@@ -90,16 +89,15 @@
db $C0,$C0,$C0,$C0,$C0,$FF
CeladonGameCornerScript2: ; 48c69 (12:4c69)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $46
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld hl, $d126
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd126
set 5, [hl]
set 6, [hl]
ld a, $0
@@ -131,7 +129,7 @@
ld hl, CeladonGameCornerText_48d22
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_c650b ; 0x48cba
ld b,COIN_CASE
@@ -155,20 +153,18 @@
ld a, $10
ldh [$a0], a
ld hl, $ffa1
- ld de, $d349
+ ld de, wPlayerMoney + 2
ld c, $3
- ld a, $c
- call Predef
+ predef SubBCDPredef
xor a
ldh [$9f], a
ldh [$a0], a
ld a, $50
ldh [$a1], a
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld hl, $ffa1
ld c, $2
- ld a, $b
- call Predef
+ predef AddBCDPredef
call CeladonGameCornerScript_48f1e
ld hl, CeladonGameCornerText_48d27
jr .asm_e2afd ; 0x48d0d
@@ -218,7 +214,7 @@
CeladonGameCornerText5: ; 48d4a (12:4d4a)
db $08 ; asm
- ld a, [$d77e]
+ ld a, [wd77e]
bit 2, a
jr nz, .asm_d0957 ; 0x48d50
ld hl, CeladonGameCornerText_48d9c
@@ -233,15 +229,14 @@
ldh [$a0], a
ld a, $10
ldh [$a1], a
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld hl, $ffa1
ld c, $2
- ld a, $b
- call Predef
- ld hl, $d77e
+ predef AddBCDPredef
+ ld hl, wd77e
set 2, [hl]
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, Received10CoinsText
jr .asm_c7d1a ; 0x48d87
.asm_d0957 ; 0x48d89
@@ -278,7 +273,7 @@
CeladonGameCornerText7: ; 48db6 (12:4db6)
db $08 ; asm
- ld a, [$d77c]
+ ld a, [wd77c]
bit 1, a
ld hl, CeladonGameCornerText_48dca ; $4dca
jr z, .asm_be3fd ; 0x48dbf
@@ -301,7 +296,7 @@
CeladonGameCornerText9: ; 48dd9 (12:4dd9)
db $08 ; asm
- ld a, [$d77e]
+ ld a, [wd77e]
bit 4, a
jr nz, .asm_ed8bc ; 0x48ddf
ld hl, CeladonGameCornerText_48e26
@@ -316,12 +311,11 @@
ldh [$a0], a
ld a, $20
ldh [$a1], a
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld hl, $ffa1
ld c, $2
- ld a, $b
- call Predef
- ld hl, $d77e
+ predef AddBCDPredef
+ ld hl, wd77e
set 4, [hl]
ld hl, Received20CoinsText
jr .asm_0ddc2 ; 0x48e11
@@ -355,7 +349,7 @@
CeladonGameCornerText10: ; 48e3b (12:4e3b)
db $08 ; asm
- ld a, [$d77e]
+ ld a, [wd77e]
bit 3, a
jr nz, .asm_ff080 ; 0x48e41
ld hl, CeladonGameCornerText_48e88 ; $4e88
@@ -370,12 +364,11 @@
ldh [$a0], a
ld a, $20
ldh [$a1], a
- ld de, $d5a5
+ ld de, wPlayerCoins + 1
ld hl, $ffa1
ld c, $2
- ld a, $b
- call Predef
- ld hl, $d77e
+ predef AddBCDPredef
+ ld hl, wd77e
set 3, [hl]
ld hl, CeladonGameCornerText_48e8d
jr .asm_78d65 ; 0x48e73
@@ -411,7 +404,7 @@
db $08 ; asm
ld hl, CeladonGameCornerText_48ece
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, CeladonGameCornerText_48ed3
@@ -418,7 +411,7 @@
ld de, CeladonGameCornerText_48ed3
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
@@ -444,7 +437,7 @@
CeladonGameCornerText12: ; 48edd (12:4edd)
db $08 ; asm
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, CeladonGameCornerText_48f09
call PrintText
call WaitForSoundToFinish
@@ -451,13 +444,12 @@
ld a, (SFX_02_57 - SFX_Headers_02) / 3
call PlaySound
call WaitForSoundToFinish
- ld hl, $d77e
+ ld hl, wd77e
set 1, [hl]
ld a, $43
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0208
- ld a, $17
- call Predef
+ predef Func_ee9e
jp TextScriptEnd
CeladonGameCornerText_48f09: ; 48f09 (12:4f09)
@@ -473,46 +465,38 @@
db "@"
CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
- FuncCoord 11, 0 ; $c3ab
- ld hl, Coord
+ hlCoord 11, 0
ld b, $5
ld c, $7
call TextBoxBorder
call UpdateSprites
- FuncCoord 12, 1 ; $c3c0
- ld hl, Coord
+ hlCoord 12, 1
ld b, $4
ld c, $7
call ClearScreenArea
- FuncCoord 12, 2 ; $c3d4
- ld hl, Coord
+ hlCoord 12, 2
ld de, GameCornerMoneyText
call PlaceString
- FuncCoord 12, 3 ; $c3e8
- ld hl, Coord
+ hlCoord 12, 3
ld de, GameCornerBlankText1
call PlaceString
- FuncCoord 12, 3 ; $c3e8
- ld hl, Coord
- ld de, $d347
+ hlCoord 12, 3
+ ld de, wPlayerMoney
ld c, $a3
call PrintBCDNumber
- FuncCoord 12, 4 ; $c3fc
- ld hl, Coord
+ hlCoord 12, 4
ld de, GameCornerCoinText
call PlaceString
- FuncCoord 12, 5 ; $c410
- ld hl, Coord
+ hlCoord 12, 5
ld de, GameCornerBlankText2
call PlaceString
- FuncCoord 15, 5 ; $c413
- ld hl, Coord
- ld de, $d5a4
+ hlCoord 15, 5
+ ld de, wPlayerCoins
ld c, $82
call PrintBCDNumber
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
ret
--- a/scripts/celadongym.asm
+++ b/scripts/celadongym.asm
@@ -1,5 +1,5 @@
CeladonGymScript: ; 4890a (12:490a)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
call nz, CeladonGymScript_48927
@@ -24,7 +24,7 @@
CeladonGymText_48943: ; 48943 (12:4943)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_CELADONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -36,17 +36,17 @@
dw CeladonGymScript3
CeladonGymScript3: ; 48956 (12:4956)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, CeladonGymText_48943
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
CeladonGymText_48963: ; 48963 (12:4963)
ld a, $9
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d77c
+ ld hl, wd77c
set 1, [hl]
ld bc, (TM_21 << 8) | 1
call GiveItem
@@ -54,7 +54,7 @@
ld a, $a
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d77c
+ ld hl, wd77c
set 0, [hl]
jr .asm_4898c
.BagFull
@@ -64,14 +64,14 @@
.asm_4898c
ld hl, W_OBTAINEDBADGES
set 3, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 3, [hl]
; deactivate gym trainers
- ld a, [$d77c]
+ ld a, [wd77c]
or %11111100
- ld [$d77c], a
- ld hl, $d77d
+ ld [wd77c], a
+ ld hl, wd77d
set 0, [hl]
jp CeladonGymText_48943
@@ -93,7 +93,7 @@
CeladonGymTrainerHeader0: ; 489bc (12:49bc)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText2 ; 0x4a8b TextBeforeBattle
dw CeladonGymAfterBattleText2 ; 0x4a95 TextAfterBattle
dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
@@ -102,7 +102,7 @@
CeladonGymTrainerHeader2: ; 489c8 (12:49c8)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText3 ; 0x4aa4 TextBeforeBattle
dw CeladonGymAfterBattleText3 ; 0x4aae TextAfterBattle
dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
@@ -111,7 +111,7 @@
CeladonGymTrainerHeader3: ; 489d4 (12:49d4)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText4 ; 0x4abd TextBeforeBattle
dw CeladonGymAfterBattleText4 ; 0x4ac7 TextAfterBattle
dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
@@ -120,7 +120,7 @@
CeladonGymTrainerHeader4: ; 489e0 (12:49e0)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText5 ; 0x4ad6 TextBeforeBattle
dw CeladonGymAfterBattleText5 ; 0x4ae0 TextAfterBattle
dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
@@ -129,7 +129,7 @@
CeladonGymTrainerHeader5: ; 489ec (12:49ec)
db $6 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText6 ; 0x4aef TextBeforeBattle
dw CeladonGymAfterBattleText6 ; 0x4af9 TextAfterBattle
dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
@@ -138,7 +138,7 @@
CeladonGymTrainerHeader6: ; 489f8 (12:49f8)
db $7 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText7 ; 0x4b08 TextBeforeBattle
dw CeladonGymAfterBattleText7 ; 0x4b12 TextAfterBattle
dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
@@ -147,7 +147,7 @@
CeladonGymTrainerHeader7: ; 48a04 (12:4a04)
db $8 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d77c ; flag's byte
+ dw wd77c ; flag's byte
dw CeladonGymBattleText8 ; 0x4b21 TextBeforeBattle
dw CeladonGymAfterBattleText8 ; 0x4b2b TextAfterBattle
dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
@@ -157,7 +157,7 @@
CeladonGymText1: ; 48a11 (12:4a11)
db $08 ; asm
- ld a, [$d77c]
+ ld a, [wd77c]
bit 1, a
jr z, .asm_16064 ; 0x48a17
bit 0, a
@@ -172,7 +172,7 @@
.asm_16064 ; 0x48a2d
ld hl, CeladonGymText_48a5e
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, CeladonGymText_48a63
@@ -179,11 +179,11 @@
ld de, CeladonGymText_48a63
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $4
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
ld a, $3
ld [W_CELADONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
--- a/scripts/celadonmansion3.asm
+++ b/scripts/celadonmansion3.asm
@@ -30,7 +30,7 @@
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [$d11e]
+ ld a, [wd11e]
cp 150
jr nc, .CompletedDex
ld hl, .GameDesigner
@@ -51,7 +51,7 @@
db $8 ; asm
callab DisplayDiploma
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
jp TextScriptEnd
GameFreakPCText1: ; 487eb (12:47eb)
--- a/scripts/celadonmansion5.asm
+++ b/scripts/celadonmansion5.asm
@@ -15,8 +15,7 @@
call GivePokemon
jr nc, .asm_24365 ; 0x1dd4d
ld a, $45
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
.asm_24365 ; 0x1dd59
jp TextScriptEnd
--- a/scripts/celadonmart3.asm
+++ b/scripts/celadonmart3.asm
@@ -22,7 +22,7 @@
CeladonMart3Text1: ; 4824a (12:424a)
db $08 ; asm
- ld a, [$d778]
+ ld a, [wd778]
bit 7, a
jr nz, .asm_a5463 ; 0x48250
ld hl, TM18PreReceiveText
@@ -30,7 +30,7 @@
ld bc, (TM_18 << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d778
+ ld hl, wd778
set 7, [hl]
ld hl, ReceivedTM18Text
jr .asm_81359 ; 0x48268
--- a/scripts/celadonmartelevator.asm
+++ b/scripts/celadonmartelevator.asm
@@ -1,5 +1,5 @@
CeladonMartElevatorScript: ; 48600 (12:4600)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
push hl
@@ -9,16 +9,16 @@
res 7, [hl]
call nz, CeladonMartElevatorScript_48654
xor a
- ld [$cf0c], a
+ ld [wcf0c], a
inc a
- ld [$cc3c], a
+ ld [wcc3c], a
ret
CeladonMartElevatorScript_4861c: ; 4861c (12:461c)
- ld hl, $d3af
- ld a, [$d73b]
+ ld hl, wd3af
+ ld a, [wd73b]
ld b, a
- ld a, [$d73c]
+ ld a, [wd73c]
ld c, a
call CeladonMartElevatorScript_4862a
@@ -35,7 +35,7 @@
ld hl, CeladonMartElavatorFloors ; $4643
call LoadItemList
ld hl, CeldaonMartElevatorWarpMaps ; $464a
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $000a
jp CopyData
@@ -66,6 +66,5 @@
db $08 ; asm
call CeladonMartElevatorScript_48631
ld hl, CeldaonMartElevatorWarpMaps ; $464a
- ld a, $61
- call Predef
+ predef Func_1c9c6
jp TextScriptEnd
--- a/scripts/celadonmartroof.asm
+++ b/scripts/celadonmartroof.asm
@@ -3,8 +3,8 @@
CeladonMartRoofScript_483d8: ; 483d8 (12:43d8)
xor a
- ld [$cd37], a
- ld de, $cc5b
+ ld [wcd37], a
+ ld de, wcc5b
ld hl, CeladonMartRoofDrinkList ; $4408
.asm_483e2
ld a, [hli]
@@ -12,20 +12,19 @@
jr z, .asm_48404
push hl
push de
- ld [$d11e], a
+ ld [wd11e], a
ld b, a
- ld a, $1c
- call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5))
+ predef IsItemInBag_
pop de
pop hl
ld a, b
and a
jr z, .asm_483e2
- ld a, [$d11e]
+ ld a, [wd11e]
ld [de], a
inc de
push hl
- ld hl, $cd37
+ ld hl, wcd37
inc [hl]
pop hl
jr .asm_483e2
@@ -41,22 +40,22 @@
db $00
CeladonMartRoofScript_4840c: ; 4840c (12:440c)
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
ld hl, CeladonMartRoofText_484ee ; $44ee
call PrintText
xor a
- ld [wCurrentMenuItem], a ; $cc26
+ ld [wCurrentMenuItem], a ; wCurrentMenuItem
ld a, $3
- ld [wMenuWatchedKeys], a ; $cc29
- ld a, [$cd37]
+ ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld a, [wcd37]
dec a
- ld [wMaxMenuItem], a ; $cc28
+ ld [wMaxMenuItem], a ; wMaxMenuItem
ld a, $2
- ld [wTopMenuItemY], a ; $cc24
+ ld [wTopMenuItemY], a ; wTopMenuItemY
ld a, $1
- ld [wTopMenuItemX], a ; $cc25
- ld a, [$cd37]
+ ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld a, [wcd37]
dec a
ld bc, $2
ld hl, $3
@@ -68,13 +67,13 @@
call TextBoxBorder
call UpdateSprites
call CeladonMartRoofScript_48532
- ld hl, $d730
+ ld hl, wd730
res 6, [hl]
call HandleMenuInput
bit 1, a
ret nz
- ld hl, $cc5b
- ld a, [wCurrentMenuItem] ; $cc26
+ ld hl, wcc5b
+ ld a, [wCurrentMenuItem] ; wCurrentMenuItem
ld d, $0
ld e, a
add hl, de
@@ -84,7 +83,7 @@
jr z, .asm_484b6
cp SODA_POP
jr z, .asm_48492
- ld a, [$d778]
+ ld a, [wd778]
bit 6, a
jr nz, .asm_484e0
ld hl, CeladonMartRoofText_48515 ; $4515
@@ -95,11 +94,11 @@
jr nc, .BagFull
ld hl, ReceivedTM49Text
call PrintText
- ld hl, $d778
+ ld hl, wd778
set 6, [hl]
ret
.asm_48492
- ld a, [$d778]
+ ld a, [wd778]
bit 5, a
jr nz, .asm_484e0
ld hl, CeladonMartRoofText_48504 ; $4504
@@ -110,11 +109,11 @@
jr nc, .BagFull
ld hl, CeladonMartRoofText_4850a ; $450a
call PrintText
- ld hl, $d778
+ ld hl, wd778
set 5, [hl]
ret
.asm_484b6
- ld a, [$d778]
+ ld a, [wd778]
bit 4, a
jr nz, .asm_484e0
ld hl, CeladonMartRoofText_484f3 ; $44f3
@@ -125,7 +124,7 @@
jr nc, .BagFull
ld hl, CeladonMartRoofText_484f9 ; $44f9
call PrintText
- ld hl, $d778
+ ld hl, wd778
set 4, [hl]
ret
.BagFull
@@ -191,7 +190,7 @@
db "@"
CeladonMartRoofScript_48532: ; 48532 (12:4532)
- ld hl, $cc5b
+ ld hl, wcc5b
xor a
ld [$ffdb], a
.asm_48538
@@ -199,14 +198,13 @@
cp $ff
ret z
push hl
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
- FuncCoord 2, 2 ; $c3ca
- ld hl, Coord
+ hlCoord 2, 2
ld a, [$ffdb]
ld bc, $28
call AddNTimes
- ld de, $cd6d
+ ld de, wcd6d
call PlaceString
ld hl, $ffdb
inc [hl]
@@ -228,15 +226,15 @@
CeladonMartRoofText2: ; 4856c (12:456c)
db $08 ; asm
call CeladonMartRoofScript_483d8
- ld a, [$cd37]
+ ld a, [wcd37]
and a
jr z, .asm_914b9 ; 0x48574
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, CeladonMartRoofText4
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_05aa4 ; 0x48588
call CeladonMartRoofScript_4840c
--- a/scripts/ceruleancity.asm
+++ b/scripts/ceruleancity.asm
@@ -6,12 +6,11 @@
CeruleanCityScript_1948c: ; 1948c (6:548c)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_CERULEANCITYCURSCRIPT], a
ld a, $5
- ld [$cc4d], a
- ld a, $11
- jp Predef
+ ld [wcc4d], a
+ predef_jump HideObject
CeruleanCityScriptPointers: ; 1949d (6:549d)
dw CeruleanCityScript0
@@ -25,25 +24,25 @@
cp $ff
jp z, CeruleanCityScript_1948c
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d75b
+ ld [wJoyIgnore], a
+ ld hl, wd75b
set 7, [hl]
ld a, $2
ld [$ff8c], a
call DisplayTextID
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_CERULEANCITYCURSCRIPT], a
ret
CeruleanCityScript0: ; 194c8 (6:54c8)
- ld a, [$d75b]
+ ld a, [wd75b]
bit 7, a
jr nz, .asm_194f7 ; 0x194cd $28
ld hl, CeruleanCityCoords1
call ArePlayerCoordsInArray
jr nc, .asm_194f7 ; 0x194d5 $20
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
cp $1
ld a, $8
ld b, $0
@@ -51,25 +50,25 @@
ld a, $4
ld b, $4
.asm_194e6
- ld [$d528], a
+ ld [wd528], a
ld a, b
- ld [$c129], a
+ ld [wSpriteStateData1 + $29], a
call Delay3
ld a, $2
ld [$ff8c], a
jp DisplayTextID
.asm_194f7
- ld a, [$d75a]
+ ld a, [wd75a]
bit 0, a
ret nz
ld hl, CeruleanCityCoords2
call ArePlayerCoordsInArray
ret nc
- ld a, [$d700]
+ ld a, [wd700]
and a
jr z, .asm_19512 ; 0x19508 $8
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
.asm_19512
ld c, BANK(Music_MeetRival)
@@ -76,9 +75,9 @@
ld a, MUSIC_MEET_RIVAL
call PlayMusic
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, [W_XCOORD]
cp $14
jr z, .asm_19535 ; 0x19526 $d
@@ -90,9 +89,8 @@
ld [hl], $19
.asm_19535
ld a, $5
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld de, CeruleanCityMovement1
ld a, $1
ld [$ff8c], a
@@ -122,15 +120,15 @@
jp Func_34a6 ; face object
CeruleanCityScript1: ; 19567 (6:5567)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $1
ld [$ff8c], a
call DisplayTextID
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, CeruleanCityText_1966d
@@ -156,7 +154,7 @@
ld [W_TRAINERNO], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
call CeruleanCityScript_1955d
ld a, $2
ld [W_CERULEANCITYCURSCRIPT], a
@@ -163,19 +161,19 @@
ret
CeruleanCityScript2: ; 195b1 (6:55b1)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, CeruleanCityScript_1948c
call CeruleanCityScript_1955d
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d75a
+ ld [wJoyIgnore], a
+ ld hl, wd75a
set 0, [hl]
ld a, $1
ld [$ff8c], a
call DisplayTextID
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
@@ -203,15 +201,14 @@
db $c0,$00,$00,$00,$00,$00,$00,$FF
CeruleanCityScript3: ; 19610 (6:5610)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $5
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call Func_2307
ld a, $0
ld [W_CERULEANCITYCURSCRIPT], a
@@ -238,7 +235,7 @@
CeruleanCityText1: ; 1964f (6:564f)
db $08 ; asm
- ld a, [$d75a] ; rival battle flag
+ ld a, [wd75a] ; rival battle flag
bit 0, a
; do pre-battle text
jr z, .PreBattleText
@@ -270,12 +267,12 @@
CeruleanCityText2: ; 1967c (6:567c)
db $8
- ld a, [$d75b]
+ ld a, [wd75b]
bit 7, a
jr nz, .asm_4ca20 ; 0x19682 $29
ld hl, CeruleanCityText_196d9
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, CeruleanCityText_196ee
@@ -282,7 +279,7 @@
ld de, CeruleanCityText_196ee
call PreBattleSaveRegisters
ld a, [$ff8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $4
@@ -291,7 +288,7 @@
.asm_4ca20 ; 0x196ad
ld hl, CeruleanCityText_196f3
call PrintText
- ld bc, $e401
+ ld bc, (TM_28 << 8) + 1
call GiveItem
jr c, .Success
ld hl, TM28NoRoomText
@@ -299,7 +296,7 @@
jr .Done
.Success
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, ReceivedTM28Text
call PrintText
callba Func_74872
--- a/scripts/ceruleancity2.asm
+++ b/scripts/ceruleancity2.asm
@@ -4,16 +4,13 @@
; the screen then fades out, he disappears, and fades back in
call GBFadeIn1
ld a, $07
- ld [$CC4D], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $09
- ld [$CC4D], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $06
- ld [$CC4D], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
call GBFadeOut1
ret
--- a/scripts/ceruleangym.asm
+++ b/scripts/ceruleangym.asm
@@ -1,5 +1,5 @@
CeruleanGymScript: ; 5c6b3 (17:46b3)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
call nz, CeruleanGymScript_5c6d0
@@ -24,7 +24,7 @@
CeruleanGymScript_5c6ed: ; 5c6ed (17:46ed)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_CERULEANGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -36,17 +36,17 @@
dw CeruleanGymScript3
CeruleanGymScript3: ; 5c700 (17:4700)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, CeruleanGymScript_5c6ed
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
CeruleanGymScript_5c70d: ; 5c70d (17:470d)
ld a, $5
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d75e
+ ld hl, wd75e
set 7, [hl]
ld bc, (TM_11 << 8) | 1
call GiveItem
@@ -54,7 +54,7 @@
ld a, $6
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d75e
+ ld hl, wd75e
set 6, [hl]
jr .asm_5c736
.BagFull
@@ -64,11 +64,11 @@
.asm_5c736
ld hl, W_OBTAINEDBADGES
set 1, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 1, [hl]
; deactivate gym trainers
- ld hl, $d75e
+ ld hl, wd75e
set 2, [hl]
set 3, [hl]
@@ -87,7 +87,7 @@
CeruleanGymTrainerHeader0: ; 5c758 (17:4758)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d75e ; flag's byte
+ dw wd75e ; flag's byte
dw CeruleanGymBattleText1 ; 0x47e9 TextBeforeBattle
dw CeruleanGymAfterBattleText1 ; 0x47f3 TextAfterBattle
dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
@@ -96,7 +96,7 @@
CeruleanGymTrainerHeader1: ; 5c764 (17:4764)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d75e ; flag's byte
+ dw wd75e ; flag's byte
dw CeruleanGymBattleText2 ; 0x4802 TextBeforeBattle
dw CeruleanGymAfterBattleText2 ; 0x480c TextAfterBattle
dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
@@ -106,7 +106,7 @@
CeruleanGymText1: ; 5c771 (17:4771)
db $08 ; asm
- ld a, [$d75e]
+ ld a, [wd75e]
bit 7, a
jr z, .asm_10854 ; 0x5c777
bit 6, a
@@ -121,7 +121,7 @@
.asm_10854 ; 0x5c78d
ld hl, CeruleanGymText_5c7be
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, CeruleanGymText_5c7d8
@@ -128,11 +128,11 @@
ld de, CeruleanGymText_5c7d8
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $2
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
xor a
ldh [$b4], a
ld a, $3
@@ -203,7 +203,7 @@
CeruleanGymText4: ; 5c811 (17:4811)
db $08 ; asm
- ld a, [$d75e]
+ ld a, [wd75e]
bit 7, a
jr nz, .asm_f80ce ; 0x5c817
ld hl, CeruleanGymText_5c82a
--- a/scripts/ceruleanhouse1.asm
+++ b/scripts/ceruleanhouse1.asm
@@ -13,6 +13,5 @@
db $08 ; asm
ld a, $6
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
jp TextScriptEnd
--- a/scripts/ceruleanhouse2.asm
+++ b/scripts/ceruleanhouse2.asm
@@ -1,8 +1,8 @@
CeruleanHouse2Script: ; 74e09 (1d:4e09)
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
dec a
- ld [$cc3c], a
+ ld [wcc3c], a
ret
CeruleanHouse2TextPointers: ; 74e13 (1d:4e13)
@@ -20,20 +20,20 @@
call PrintText
ld hl, BadgeItemList
call LoadItemList
- ld hl, $cf7b
+ ld hl, wStringBuffer2 + 11
ld a, l
- ld [$cf8b], a
+ ld [wcf8b], a
ld a, h
- ld [$cf8c], a
+ ld [wcf8c], a
xor a
- ld [$cf93], a
- ld [$cc35], a
+ ld [wcf93], a
+ ld [wcc35], a
ld a, SPECIALLISTMENU
ld [wListMenuID], a
call DisplayListMenuID
jr c, .asm_74e60 ; 0x74e49 $15
ld hl, TextPointers_74e86
- ld a, [$cf91]
+ ld a, [wcf91]
sub $15
add a
ld d, $0
--- a/scripts/ceruleanhousetrashed.asm
+++ b/scripts/ceruleanhousetrashed.asm
@@ -10,8 +10,7 @@
CeruleanHouseTrashedText1: ; 1d68f (7:568f)
db $08 ; asm
ld b, $e4
- ld a, $1c
- call Predef
+ predef IsItemInBag_
and b
jr z, .asm_f8734 ; 0x1d698
ld hl, CeruleanHouseTrashedText_1d6b0
--- a/scripts/cinnabargym.asm
+++ b/scripts/cinnabargym.asm
@@ -6,7 +6,7 @@
jp CallFunctionInTable
CinnabarGymScript_75759: ; 75759 (1d:5759)
- ld hl, $D126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
push hl
@@ -15,7 +15,7 @@
bit 5, [hl]
res 5, [hl]
call nz, Func_3ead
- ld hl, $D79B
+ ld hl, wd79b
res 7, [hl]
ret
CinnabarGymScript_75772: ; 75772 (1d:5772)
@@ -30,10 +30,10 @@
CinnabarGymScript_75792: ; 75792 (1d:5792)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_CINNABARGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
- ld [$da38], a
+ ld [wda38], a
ret
CinnabarGymScript_757a0: ; 757a0 (1d:57a0)
@@ -48,7 +48,7 @@
dw CinnabarGymScript3
CinnabarGymScript0: ; 757ae (1d:57ae)
- ld a, [$da38]
+ ld a, [wda38]
and a
ret z
ld [$ff8c], a
@@ -55,13 +55,13 @@
cp $4
jr nz, .asm_757c3 ; 0x757b7 $a
ld a, $4
- ld [$d528], a
+ ld [wd528], a
ld de, MovementData_757d7
jr .asm_757cb ; 0x757c1 $8
.asm_757c3
ld de, MovementData_757da
ld a, $1
- ld [$d528], a
+ ld [wd528], a
.asm_757cb
call MoveSprite
ld a, $1
@@ -76,22 +76,21 @@
db $80,$FF
CinnabarGymScript1: ; 757dc (1d:57dc)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld a, [$da38]
+ ld [wJoyIgnore], a
+ ld a, [wda38]
ld [wTrainerHeaderFlagBit], a
ld [$ff8c], a
jp DisplayTextID
CinnabarGymScript_757f1: ; 757f1 (1d:57f1)
- ld a, $10
- jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef_jump FlagActionPredef
CinnabarGymScript2: ; 757f6 (1d:57f6)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, CinnabarGymScript_75792
ld a, [wTrainerHeaderFlagBit]
@@ -98,7 +97,7 @@
ld [$ffdb], a
ld c, a
ld b, $2
- ld hl, $d79a
+ ld hl, wd79a
call CinnabarGymScript_757f1
ld a, c
and a
@@ -112,18 +111,18 @@
ld [$ffdb], a
ld c, a
ld b, $1
- ld hl, $d79a
+ ld hl, wd79a
call CinnabarGymScript_757f1
ld a, [wTrainerHeaderFlagBit]
sub $2
ld c, a
ld b, $1
- ld hl, $d79c
+ ld hl, wd79c
call CinnabarGymScript_757f1
call Func_3ead
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld [$da38], a
+ ld [wJoyIgnore], a
+ ld [wda38], a
ld a, $0
ld [W_CINNABARGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -130,16 +129,16 @@
ret
CinnabarGymScript3: ; 7584a (1d:584a)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, CinnabarGymScript_75792
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
CinnabarGymScript3_75857: ; 75857 (1d:5857)
ld a, $a
ld [$ff8c], a
call DisplayTextID
- ld hl, $d79a
+ ld hl, wd79a
set 1, [hl]
ld bc, (TM_38 << 8) | 1
call GiveItem
@@ -147,7 +146,7 @@
ld a, $b
ld [$ff8c], a
call DisplayTextID
- ld hl, $d79a
+ ld hl, wd79a
set 0, [hl]
jr .asm_75880 ; 0x75877 $7
.BagFull
@@ -157,17 +156,17 @@
.asm_75880
ld hl, W_OBTAINEDBADGES
set 6, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 6, [hl]
; deactivate gym trainers
- ld a, [$d79a]
+ ld a, [wd79a]
or %11111100
- ld [$d79a], a
- ld hl, $d79b
+ ld [wd79a], a
+ ld hl, wd79b
set 0, [hl]
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
jp CinnabarGymScript_75792
@@ -188,13 +187,13 @@
CinnabarGymScript_758b7: ; 758b7 (1d:58b7)
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld a, [$cf13]
+ ld a, [wcf13]
cp $1
jr z, .asm_758d4
ld a, $2
@@ -208,7 +207,7 @@
CinnabarGymText1: ; 758df (1d:58df)
db $8
- ld a, [$d79a]
+ ld a, [wd79a]
bit 1, a
jr z, .asm_d9332 ; 0x758e5 $16
bit 0, a
@@ -227,7 +226,7 @@
ld de, BlaineEndBattleText
call PreBattleSaveRegisters
ld a, $7
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
jp CinnabarGymScript_758b7
BlaineBattleText: ; 75914 (1d:5914)
@@ -261,7 +260,7 @@
CinnabarGymText2: ; 75939 (1d:5939)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79a]
+ ld a, [wd79a]
bit 2, a
jr nz, .asm_46bb4 ; 0x75942
ld hl, CinnabarGymText_7595f
@@ -290,7 +289,7 @@
CinnabarGymText3: ; 7596e (1d:596e)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79a]
+ ld a, [wd79a]
bit 3, a
jr nz, .asm_4b406 ; 0x75977
ld hl, CinnabarGymText_75994
@@ -319,7 +318,7 @@
CinnabarGymText4: ; 759a3 (1d:59a3)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79a]
+ ld a, [wd79a]
bit 4, a
jr nz, .asm_c0673 ; 0x759ac
ld hl, CinnabarGymText_759c9
@@ -348,7 +347,7 @@
CinnabarGymText5: ; 759d8 (1d:59d8)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79a]
+ ld a, [wd79a]
bit 5, a
jr nz, .asm_5cfd7 ; 0x759e1
ld hl, CinnabarGymText_759fe
@@ -377,7 +376,7 @@
CinnabarGymText6: ; 75a0d (1d:5a0d)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79a]
+ ld a, [wd79a]
bit 6, a
jr nz, .asm_776b4 ; 0x75a16
ld hl, CinnabarGymText_75a33
@@ -406,7 +405,7 @@
CinnabarGymText7: ; 75a42 (1d:5a42)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79a]
+ ld a, [wd79a]
bit 7, a
jr nz, .asm_2f755 ; 0x75a4b
ld hl, CinnabarGymText_75a68
@@ -435,7 +434,7 @@
CinnabarGymText8: ; 75a77 (1d:5a77)
db $08 ; asm
call CinnabarGymScript_757a0
- ld a, [$d79b]
+ ld a, [wd79b]
bit 0, a
jr nz, .asm_d87be ; 0x75a80
ld hl, CinnabarGymText_75a9d
@@ -463,7 +462,7 @@
CinnabarGymText9: ; 75aac (1d:5aac)
db $08 ; asm
- ld a, [$d79a]
+ ld a, [wd79a]
bit 1, a
jr nz, .asm_627d9 ; 0x75ab2
ld hl, CinnabarGymText_75ac2
--- a/scripts/cinnabarisland.asm
+++ b/scripts/cinnabarisland.asm
@@ -1,10 +1,10 @@
CinnabarIslandScript: ; 1ca19 (7:4a19)
call EnableAutoTextBoxDrawing
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
- ld hl, $d796
+ ld hl, wd796
res 0, [hl]
- ld hl, $d7a3
+ ld hl, wd7a3
res 1, [hl]
ld hl, CinnabarIslandScriptPointers
ld a, [W_CINNABARISLANDCURSCRIPT]
@@ -25,26 +25,26 @@
cp $12
ret nz
ld a, $8
- ld [$d528], a
+ ld [wd528], a
ld a, $8
ld [$ff8c], a
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
call Func_3486
xor a
- ld [$c109], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wSpriteStateData1 + 9], a
+ ld [wJoyIgnore], a
ld a, $1
ld [W_CINNABARISLANDCURSCRIPT], a
ret
CinnabarIslandScript1: ; 1ca73 (7:4a73)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
--- a/scripts/copycatshouse2f.asm
+++ b/scripts/copycatshouse2f.asm
@@ -12,11 +12,11 @@
CopycatsHouse2FText1: ; 5cc82 (17:4c82)
db $08 ; asm
- ld a, [$d7af]
+ ld a, [wd7af]
bit 0, a
jr nz, .asm_7ccf3 ; 0x5cc88
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, CopycatsHouse2FText_5ccd4
call PrintText
ld b, POKE_DOLL
@@ -32,7 +32,7 @@
ld a, POKE_DOLL
ldh [$db], a
callba RemoveItemByID
- ld hl, $d7af
+ ld hl, wd7af
set 0, [hl]
jr .asm_62ecd ; 0x5ccc1
.BagFull
@@ -84,7 +84,7 @@
CopycatsHouse2FText7: ; 5cd03 (17:4d03)
db $08 ; asm
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ld hl, CopycatsHouse2FText_5cd1c
jr nz, .asm_399a4 ; 0x5cd0c
--- a/scripts/daycarem.asm
+++ b/scripts/daycarem.asm
@@ -13,11 +13,11 @@
ld hl, DayCareMText_5640f
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
ld hl, DayCareMText_5643b
jp nz, DayCareMScript_56409
- ld a, [$d163]
+ ld a, [wPartyCount]
dec a
ld hl, DayCareMText_56445
jp z, DayCareMScript_56409
@@ -24,9 +24,9 @@
ld hl, DayCareMText_56414
call PrintText
xor a
- ld [$cfcb], a
- ld [$d07d], a
- ld [$cc35], a
+ ld [wcfcb], a
+ ld [wd07d], a
+ ld [wcc35], a
call DisplayPartyMenu
push af
call GBPalWhiteOutWithDelay3
@@ -39,9 +39,9 @@
ld hl, DayCareMText_5644a
jp c, DayCareMScript_56409
xor a
- ld [$cc2b], a
+ ld [wcc2b], a
ld a, [wWhichPokemon]
- ld hl, $d2b5
+ ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, DayCareMText_56419
call PrintText
@@ -48,12 +48,12 @@
ld a, $1
ld [W_DAYCARE_IN_USE], a
ld a, $3
- ld [$cf95], a
+ ld [wcf95], a
call Func_3a68
xor a
- ld [$cf95], a
+ ld [wcf95], a
call RemovePokemon
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry
ld hl, DayCareMText_5641e
jp DayCareMScript_56409
@@ -63,7 +63,7 @@
ld hl, W_DAYCAREMONNAME
call GetPartyMonName
ld a, $3
- ld [$cc49], a
+ ld [wcc49], a
call LoadMonData
callab Func_58f43
ld a, d
@@ -71,7 +71,7 @@
jr c, .asm_56315
ld d, $64
callab CalcExperience
- ld hl, $da6d
+ ld hl, wDayCareMonExp
ld a, [H_NUMTOPRINT]
ld [hli], a
ld a, [$ff97]
@@ -83,7 +83,7 @@
.asm_56315
xor a
ld [wTrainerEngageDistance], a
- ld hl, $da62
+ ld hl, wDayCareMonBoxLevel
ld a, [hl]
ld [wTrainerSpriteOffset], a
cp d
@@ -99,7 +99,7 @@
.asm_56333
call PrintText
- ld a, [W_NUMINPARTY]
+ ld a, [wPartyCount]
cp $6
ld hl, DayCareMText_56440
jp z, .asm_56403
@@ -120,8 +120,7 @@
push hl
push de
push bc
- ld a, $b
- call Predef
+ predef AddBCDPredef
pop bc
pop de
pop hl
@@ -130,7 +129,7 @@
ld hl, DayCareMText_56428
call PrintText
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call YesNoChoice
ld hl, DayCareMText_56437
@@ -154,38 +153,36 @@
ld hl, wTrainerEngageDistance
ld [hli], a
inc hl
- ld de, $d349
+ ld de, wPlayerMoney + 2
ld c, $3
- ld a, $c
- call Predef
+ predef SubBCDPredef
ld a, (SFX_02_5a - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
ld hl, DayCareMText_5644f
call PrintText
ld a, $2
- ld [$cf95], a
+ ld [wcf95], a
call Func_3a68
- ld a, [W_DAYCAREMONDATA]
- ld [$cf91], a
- ld a, [W_NUMINPARTY]
+ ld a, [wDayCareMonSpecies]
+ ld [wcf91], a
+ ld a, [wPartyCount]
dec a
push af
ld bc, $002c
push bc
- ld hl, W_PARTYMON1_MOVE1
+ ld hl, wPartyMon1Moves
call AddNTimes
ld d, h
ld e, l
ld a, $1
ld [wHPBarMaxHP], a
- ld a, $3e
- call Predef
+ predef WriteMonMoves
pop bc
pop af
- ld hl, W_PARTYMON1_HP
+ ld hl, wPartyMon1HP
call AddNTimes
ld d, h
ld e, l
@@ -196,7 +193,7 @@
inc de
ld a, [hl]
ld [de], a
- ld a, [$cf91]
+ ld a, [wcf91]
call PlayCry
ld hl, DayCareMText_5642d
jr DayCareMScript_56409
@@ -203,7 +200,7 @@
.asm_56403
ld a, [wTrainerSpriteOffset]
- ld [$da62], a
+ ld [wDayCareMonBoxLevel], a
DayCareMScript_56409: ; 56409 (15:6409)
call PrintText
--- a/scripts/fanclub.asm
+++ b/scripts/fanclub.asm
@@ -3,7 +3,7 @@
FanClubBikeInBag:
; check if any bike paraphernalia in bag
- ld a, [$d771]
+ ld a, [wd771]
bit 1, a ; got bike voucher?
ret nz
ld b, BICYCLE
@@ -25,18 +25,18 @@
FanClubText1:
; pikachu fan
db $08 ; asm
- ld a, [$d771]
+ ld a, [wd771]
bit 7, a
jr nz, .mineisbetter
ld hl, .normaltext
call PrintText
- ld hl, $d771
+ ld hl, wd771
set 6, [hl]
jr .done
.mineisbetter
ld hl, .bettertext
call PrintText
- ld hl, $d771
+ ld hl, wd771
res 7, [hl]
.done
jp TextScriptEnd
@@ -52,18 +52,18 @@
FanClubText2:
; seel fan
db $08 ; asm
- ld a, [$d771]
+ ld a, [wd771]
bit 6, a
jr nz, .mineisbetter
ld hl, .normaltext
call PrintText
- ld hl, $d771
+ ld hl, wd771
set 7, [hl]
jr .done
.mineisbetter
ld hl, .bettertext
call PrintText
- ld hl, $d771
+ ld hl, wd771
res 6, [hl]
.done
jp TextScriptEnd
@@ -113,7 +113,7 @@
ld hl, .meetchairtext
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .nothanks
@@ -125,7 +125,7 @@
jr nc, .BagFull
ld hl, .receivedvouchertext
call PrintText
- ld hl, $d771
+ ld hl, wd771
set 1, [hl]
jr .done
.BagFull
--- a/scripts/fightingdojo.asm
+++ b/scripts/fightingdojo.asm
@@ -9,9 +9,9 @@
FightingDojoScript_5cd70: ; 5cd70 (17:4d70)
xor a
- ld [$cd6b], a
- ld [$d642], a
- ld [$da39], a
+ ld [wJoyIgnore], a
+ ld [W_FIGHTINGDOJOCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
ret
FightingDojoScriptPointers: ; 5cd7b (17:4d7b)
@@ -21,7 +21,7 @@
dw FightingDojoScript3
FightingDojoScript1: ; 5cd83 (17:4d83)
- ld a, [$d7b1]
+ ld a, [wd7b1]
bit 0, a
ret nz
call CheckFightingMapTrainers
@@ -28,12 +28,12 @@
ld a, [wTrainerHeaderFlagBit]
and a
ret nz
- ld a, [$d7b1]
+ ld a, [wd7b1]
bit 1, a
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$cf0d], a
+ ld [hJoyHeld], a
+ ld [wcf0d], a
ld a, [W_YCOORD]
cp $3
ret nz
@@ -41,9 +41,9 @@
cp $4
ret nz
ld a, $1
- ld [$cf0d], a
+ ld [wcf0d], a
ld a, $1
- ld [$d528], a
+ ld [wd528], a
ld a, $1
ld [$ff8c], a
ld a, $8
@@ -55,14 +55,14 @@
ret
FightingDojoScript3: ; 5cdc6 (17:4dc6)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, FightingDojoScript_5cd70
- ld a, [$cf0d]
+ ld a, [wcf0d]
and a
jr z, .asm_5cde4
ld a, $1
- ld [$d528], a
+ ld [wd528], a
ld a, $1
ld [$ff8c], a
ld a, $8
@@ -71,17 +71,17 @@
.asm_5cde4
ld a, $f0
- ld [$cd6b], a
- ld a, [$d7b1]
+ ld [wJoyIgnore], a
+ ld a, [wd7b1]
or $3e
- ld [$d7b1], a
+ ld [wd7b1], a
ld a, $8
ld [$ff8c], a
call DisplayTextID
xor a
- ld [$cd6b], a
- ld [$d642], a
- ld [$da39], a
+ ld [wJoyIgnore], a
+ ld [W_FIGHTINGDOJOCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
ret
FightingDojoTextPointers: ; 5ce03 (17:4e03)
@@ -98,7 +98,7 @@
FightingDojoTrainerHeader0: ; 5ce13 (17:4e13)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7b1 ; flag's byte
+ dw wd7b1 ; flag's byte
dw FightingDojoBattleText1 ; 0x4eac TextBeforeBattle
dw FightingDojoAfterBattleText1 ; 0x4eb6 TextAfterBattle
dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
@@ -107,7 +107,7 @@
FightingDojoTrainerHeader1: ; 5ce1f (17:4e1f)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7b1 ; flag's byte
+ dw wd7b1 ; flag's byte
dw FightingDojoBattleText2 ; 0x4ec5 TextBeforeBattle
dw FightingDojoAfterBattleText2 ; 0x4ecf TextAfterBattle
dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
@@ -116,7 +116,7 @@
FightingDojoTrainerHeader2: ; 5ce2b (17:4e2b)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b1 ; flag's byte
+ dw wd7b1 ; flag's byte
dw FightingDojoBattleText3 ; 0x4ede TextBeforeBattle
dw FightingDojoAfterBattleText3 ; 0x4ee8 TextAfterBattle
dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
@@ -125,7 +125,7 @@
FightingDojoTrainerHeader3: ; 5ce37 (17:4e37)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b1 ; flag's byte
+ dw wd7b1 ; flag's byte
dw FightingDojoBattleText4 ; 0x4ef7 TextBeforeBattle
dw FightingDojoAfterBattleText4 ; 0x4f01 TextAfterBattle
dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
@@ -135,7 +135,7 @@
FightingDojoText1: ; 5ce44 (17:4e44)
db $08 ; asm
- ld a, [$d7b1]
+ ld a, [wd7b1]
bit 0, a
jp nz, .continue1
bit 1, a
@@ -142,7 +142,7 @@
jp nz, .continue2
ld hl, FightingDojoText_5ce8e
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, FightingDojoText_5ce93
@@ -149,7 +149,7 @@
ld de, FightingDojoText_5ce93
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
@@ -257,7 +257,7 @@
FightingDojoText6: ; 5cf06 (17:4f06)
; Hitmonlee Poké Ball
db $08 ; asm
- ld a, [$d7b1]
+ ld a, [wd7b1]
and %11000000
jr z, .GetMon
ld hl, OtherHitmonText
@@ -269,10 +269,10 @@
ld hl, WantHitmonleeText
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .done
- ld a, [$cf91]
+ ld a, [wcf91]
ld b, a
ld c, 30
call GivePokemon
@@ -280,10 +280,9 @@
; once Poké Ball is taken, hide sprite
ld a, $4a
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld hl, $d7b1
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd7b1
set 6, [hl]
set 0, [hl]
.done
@@ -296,7 +295,7 @@
FightingDojoText7: ; 5cf4e (17:4f4e)
; Hitmonchan Poké Ball
db $08 ; asm
- ld a, [$d7b1]
+ ld a, [wd7b1]
and %11000000
jr z, .GetMon
ld hl, OtherHitmonText
@@ -308,23 +307,22 @@
ld hl, WantHitmonchanText
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .done
- ld a, [$cf91]
+ ld a, [wcf91]
ld b, a
ld c,30
call GivePokemon
jr nc, .done
- ld hl, $d7b1
+ ld hl, wd7b1
set 7, [hl]
set 0, [hl]
; once Poké Ball is taken, hide sprite
ld a, $4b
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
.done
jp TextScriptEnd
--- a/scripts/fuchsiacity.asm
+++ b/scripts/fuchsiacity.asm
@@ -135,7 +135,7 @@
FuchsiaCityText24: ; 19af4 (6:5af4)
db $08 ; asm
- ld a, [$d7f6]
+ ld a, [wd7f6]
bit 6, a
jr nz, .asm_3b4e8 ; 0x19afa
bit 7, a
--- a/scripts/fuchsiagym.asm
+++ b/scripts/fuchsiagym.asm
@@ -9,7 +9,7 @@
ret
FuchsiaGymScript_75453: ; 75453 (1d:5453)
- ld hl, $D126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
ret z
@@ -25,7 +25,7 @@
FuchsiaGymScript_75477: ; 75477 (1d:5477)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_FUCHSIAGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -37,16 +37,16 @@
dw FuchsiaGymScript3
FuchsiaGymScript3: ; 7548a (1d:548a)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, FuchsiaGymScript_75477
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
FuchsiaGymScript3_75497: ; 75497 (1d:5497)
ld a, $9
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d792
+ ld hl, wd792
set 1, [hl]
ld bc, (TM_06 << 8) | 1
call GiveItem
@@ -54,7 +54,7 @@
ld a, $a
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d792
+ ld hl, wd792
set 0, [hl]
jr .asm_754c0
.BagFull
@@ -64,13 +64,13 @@
.asm_754c0
ld hl, W_OBTAINEDBADGES
set 4, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 4, [hl]
; deactivate gym trainers
- ld a, [$d792]
+ ld a, [wd792]
or %11111100
- ld [$d792], a
+ ld [wd792], a
jp FuchsiaGymScript_75477
@@ -91,7 +91,7 @@
FuchsiaGymTrainerHeader0: ; 754eb (1d:54eb)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d792 ; flag's byte
+ dw wd792 ; flag's byte
dw FuchsiaGymBattleText1 ; 0x55ae TextBeforeBattle
dw FuchsiaGymAfterBattleText1 ; 0x55b8 TextAfterBattle
dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
@@ -100,7 +100,7 @@
FuchsiaGymTrainerHeader2: ; 754f7 (1d:54f7)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d792 ; flag's byte
+ dw wd792 ; flag's byte
dw FuchsiaGymBattleText2 ; 0x55c7 TextBeforeBattle
dw FuchsiaGymAfterBattleText2 ; 0x55d1 TextAfterBattle
dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
@@ -109,7 +109,7 @@
FuchsiaGymTrainerHeader3: ; 75503 (1d:5503)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d792 ; flag's byte
+ dw wd792 ; flag's byte
dw FuchsiaGymBattleText3 ; 0x55e0 TextBeforeBattle
dw FuchsiaGymAfterBattleText3 ; 0x55ea TextAfterBattle
dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
@@ -118,7 +118,7 @@
FuchsiaGymTrainerHeader4: ; 7550f (1d:550f)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d792 ; flag's byte
+ dw wd792 ; flag's byte
dw FuchsiaGymBattleText4 ; 0x55f9 TextBeforeBattle
dw FuchsiaGymAfterBattleText4 ; 0x5603 TextAfterBattle
dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
@@ -127,7 +127,7 @@
FuchsiaGymTrainerHeader5: ; 7551b (1d:551b)
db $6 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d792 ; flag's byte
+ dw wd792 ; flag's byte
dw FuchsiaGymBattleText5 ; 0x5612 TextBeforeBattle
dw FuchsiaGymAfterBattleText5 ; 0x561c TextAfterBattle
dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
@@ -136,7 +136,7 @@
FuchsiaGymTrainerHeader6: ; 75527 (1d:5527)
db $7 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d792 ; flag's byte
+ dw wd792 ; flag's byte
dw FuchsiaGymBattleText6 ; 0x562b TextBeforeBattle
dw FuchsiaGymAfterBattleText6 ; 0x5635 TextAfterBattle
dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
@@ -146,7 +146,7 @@
FuchsiaGymText1: ; 75534 (1d:5534)
db $08 ; asm
- ld a, [$d792]
+ ld a, [wd792]
bit 1, a
jr z, .asm_181b6 ; 0x7553a
bit 0, a
@@ -161,7 +161,7 @@
.asm_181b6 ; 0x75550
ld hl, UnnamedText_75581
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, UnnamedText_75586
@@ -168,11 +168,11 @@
ld de, UnnamedText_75586
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $5
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
xor a
ldh [$b4], a
ld a, $3
@@ -318,7 +318,7 @@
FuchsiaGymText8: ; 7563a (1d:563a)
db $08 ; asm
- ld a, [$d792]
+ ld a, [wd792]
bit 1, a
ld hl, UnnamedText_75653
jr nz, .asm_50671 ; 0x75643
--- a/scripts/fuchsiahouse2.asm
+++ b/scripts/fuchsiahouse2.asm
@@ -10,19 +10,19 @@
FuchsiaHouse2Text1: ; 750c2 (1d:50c2)
db $08 ; asm
- ld a, [$d78e]
+ ld a, [wd78e]
bit 0, a
jr nz, .subtract ; 0x750c8
ld b,GOLD_TEETH
call IsItemInBag
jr nz, .asm_3f30f ; 0x750cf
- ld a, [$d78e]
+ ld a, [wd78e]
bit 1, a
jr nz, .asm_60cba ; 0x750d6
ld hl, WardenGibberishText1
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
ld hl, WardenGibberishText3
jr nz, .asm_61238 ; 0x750e8
@@ -36,7 +36,7 @@
ld a, GOLD_TEETH
ldh [$db], a
callba RemoveItemByID
- ld hl, $d78e
+ ld hl, wd78e
set 1, [hl]
.asm_60cba ; 0x75109
ld hl, WardenThankYouText
@@ -46,7 +46,7 @@
jr nc, .BagFull
ld hl, ReceivedHM04Text
call PrintText
- ld hl, $d78e
+ ld hl, wd78e
set 0, [hl]
jr .asm_52039 ; 0x75122
.subtract ; 0x75124
--- a/scripts/fuchsiahouse3.asm
+++ b/scripts/fuchsiahouse3.asm
@@ -6,7 +6,7 @@
FuchsiaHouse3Text1: ; 56181 (15:6181)
db $08 ; asm
- ld a, [$d728]
+ ld a, [wd728]
bit 4, a
jr nz, .after
@@ -14,7 +14,7 @@
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .refused
@@ -22,7 +22,7 @@
call GiveItem
jr nc, .full
- ld hl, $d728
+ ld hl, wd728
set 4, [hl]
ld hl, FuchsiaHouse3Text_561c2
--- a/scripts/gary.asm
+++ b/scripts/gary.asm
@@ -6,7 +6,7 @@
GaryScript_75f29: ; 75f29 (1d:5f29)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_GARYCURSCRIPT], a
ret
@@ -28,12 +28,12 @@
GaryScript1: ; 75f48 (1d:5f48)
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $ccd3
+ ld [wJoyIgnore], a
+ ld hl, wccd3
ld de, RLEMovement75f63
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $2
ld [W_GARYCURSCRIPT], a
@@ -46,19 +46,19 @@
db $ff
GaryScript2: ; 75f6a (1d:5f6a)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d355
+ ld [wJoyIgnore], a
+ ld hl, W_OPTIONS
res 7, [hl]
ld a, $1
ld [$ff8c], a
call DisplayTextID
call Delay3
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, GaryText_760f9
@@ -84,7 +84,7 @@
ld [W_TRAINERNO], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $3
ld [W_GARYCURSCRIPT], a
ret
@@ -94,10 +94,10 @@
cp $ff
jp z, GaryScript_75f29
call UpdateSprites ; move sprites
- ld hl, $d867
+ ld hl, wd867
set 1, [hl]
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $1
ld [$ff8c], a
call GaryScript_760c8
@@ -121,9 +121,8 @@
ld [$ff8c], a
call MoveSprite
ld a, $d6
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $5
ld [W_GARYCURSCRIPT], a
ret
@@ -132,11 +131,11 @@
db $40,$40,$40,$40,$40,$FF
GaryScript5: ; 7601a (1d:601a)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $2
- ld [$d528], a
+ ld [wd528], a
ld a, $1
ld [$ff8c], a
ld a, $8
@@ -188,13 +187,12 @@
db $40,$40,$FF
GaryScript8: ; 76083 (1d:6083)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $d6
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $9
ld [W_GARYCURSCRIPT], a
ret
@@ -201,12 +199,12 @@
GaryScript9: ; 76099 (1d:6099)
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $ccd3
+ ld [wJoyIgnore], a
+ ld hl, wccd3
ld de, RLEMovement760b4
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $a
ld [W_GARYCURSCRIPT], a
@@ -218,11 +216,11 @@
db $ff
GaryScript10: ; 760b9 (1d:60b9)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_GARYCURSCRIPT], a
ret
@@ -229,10 +227,10 @@
GaryScript_760c8 ; 760c8 (1d:60c8)
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call DisplayTextID
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
GaryTextPointers: ; 760d6 (1d:60d6)
@@ -244,7 +242,7 @@
GaryText1: ; 760e0 (1d:60e0)
db $08 ; asm
- ld a, [$d867]
+ ld a, [wd867]
bit 1, a
ld hl, GaryText_760f4
jr z, .asm_17e9f ; 0x760e9
@@ -275,8 +273,8 @@
GaryText3: ; 7610d (1d:610d)
db $8
- ld a, [$d717]
- ld [$d11e], a
+ ld a, [W_PLAYERSTARTER]
+ ld [wd11e], a
call GetMonName
ld hl, GaryText_76120
call PrintText
--- a/scripts/halloffameroom.asm
+++ b/scripts/halloffameroom.asm
@@ -6,7 +6,7 @@
HallofFameRoomScript_5a4aa: ; 5a4aa (16:64aa)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_HALLOFFAMEROOMCURSCRIPT], a
ret
@@ -21,14 +21,13 @@
HallofFameRoomScript2: ; 5a4bb (16:64bb)
call Delay3
- ld a, [$d358]
+ ld a, [wd358]
push af
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld a, $55
- call Predef
+ ld [wJoyIgnore], a
+ predef HallOfFamePC
pop af
- ld [$d358], a
+ ld [wd358], a
ld hl, W_FLAGS_D733
res 1, [hl]
inc hl
@@ -40,7 +39,7 @@
ld [hl], a
ld [W_LANCECURSCRIPT], a
ld [W_HALLOFFAMEROOMCURSCRIPT], a
- ld hl, $d863
+ ld hl, wd863
ld [hli], a
ld [hli], a
ld [hli], a
@@ -58,16 +57,16 @@
dec b
jr nz, .asm_5a4ff ; 0x5a505 $f8
call WaitForTextScrollButtonPress
- jp InitGame
+ jp Init
HallofFameRoomScript0: ; 5a50d (16:650d)
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $ccd3
+ ld [wJoyIgnore], a
+ ld hl, wccd3
ld de, RLEMovement5a528
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $1
ld [W_HALLOFFAMEROOMCURSCRIPT], a
@@ -78,11 +77,11 @@
db $ff
HallofFameRoomScript1: ; 5a52b (16:652b)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $1
- ld [$d528], a
+ ld [wd528], a
ld a, $1
ld [$ff8c], a
call SetSpriteMovementBytesToFF
@@ -91,18 +90,17 @@
call Func_34a6
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
inc a
- ld [$d528], a
+ ld [wd528], a
ld a, $1
ld [$ff8c], a
call DisplayTextID
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $8
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $2
ld [W_HALLOFFAMEROOMCURSCRIPT], a
ret
--- a/scripts/indigoplateaulobby.asm
+++ b/scripts/indigoplateaulobby.asm
@@ -1,17 +1,17 @@
IndigoPlateauLobbyScript: ; 19c5b (6:5c5b)
call Func_22fa
call EnableAutoTextBoxDrawing
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
ret z
- ld hl, $d869
+ ld hl, wd869
res 7, [hl]
- ld hl, $d734
+ ld hl, wd734
bit 1, [hl]
res 1, [hl]
ret z
- ld hl, $d863
+ ld hl, wd863
xor a
ld [hli], a
ld [hli], a
--- a/scripts/lab2.asm
+++ b/scripts/lab2.asm
@@ -21,6 +21,5 @@
ld a, $8
ld [wWhichTrade], a
asm_78552: ; 75c3d (1d:5c3d)
- ld a, $54
- call Predef
+ predef Predef54
jp TextScriptEnd
--- a/scripts/lab3.asm
+++ b/scripts/lab3.asm
@@ -10,7 +10,7 @@
Lab3Text1: ; 75c94 (1d:5c94)
db $08 ; asm
- ld a, [$d7a1]
+ ld a, [wd7a1]
bit 7, a
jr nz, .asm_e551a ; 0x75c9a
ld hl, TM35PreReceiveText
@@ -20,7 +20,7 @@
jr nc, .BagFull
ld hl, ReceivedTM35Text
call PrintText
- ld hl, $d7a1
+ ld hl, wd7a1
set 7, [hl]
jr .asm_eb896 ; 0x75cb5
.BagFull
--- a/scripts/lab4.asm
+++ b/scripts/lab4.asm
@@ -7,8 +7,8 @@
Lab4Script_75d38: ; 75d38 (1d:5d38)
xor a
- ld [$cd37], a
- ld de, $cc5b
+ ld [wcd37], a
+ ld de, wcc5b
ld hl, FossilsList
.asm_75d42
ld a, [hli]
@@ -16,20 +16,19 @@
jr z, .asm_75d64
push hl
push de
- ld [$d11e], a
+ ld [wd11e], a
ld b, a
- ld a, $1c
- call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5))
+ predef IsItemInBag_
pop de
pop hl
ld a, b
and a
jr z, .asm_75d42
- ld a, [$d11e]
+ ld a, [wd11e]
ld [de], a
inc de
push hl
- ld hl, $cd37
+ ld hl, wcd37
inc [hl]
pop hl
jr .asm_75d42
@@ -46,13 +45,13 @@
Lab4Text1: ; 75d6c (1d:5d6c)
db $8
- ld a, [$d7a3]
+ ld a, [wd7a3]
bit 0, a
jr nz, .asm_75d96 ; 0x75d72 $22
ld hl, Lab4Text_75dc6
call PrintText
call Lab4Script_75d38
- ld a, [$cd37]
+ ld a, [wcd37]
and a
jr z, .asm_75d8d ; 0x75d81 $a
callba GiveFossilToCinnabarLab
@@ -72,7 +71,7 @@
call LoadFossilItemAndMonNameBank1D
ld hl, Lab4Text_75dd5
call PrintText
- ld hl, $d7a3
+ ld hl, wd7a3
set 2, [hl]
ld a, [W_FOSSILMON]
ld b, a
@@ -79,7 +78,7 @@
ld c, $1e
call GivePokemon
jr nc, .asm_75d93 ; 0x75db9 $d8
- ld hl, $d7a3
+ ld hl, wd7a3
res 0, [hl]
res 1, [hl]
res 2, [hl]
@@ -105,8 +104,7 @@
db $08 ; asm
ld a, $3
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
jp TextScriptEnd
LoadFossilItemAndMonNameBank1D: ; 75de8 (1d:5de8)
--- a/scripts/lance.asm
+++ b/scripts/lance.asm
@@ -9,11 +9,11 @@
ret
LanceScript_5a2c4: ; 5a2c4 (16:62c4)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d866]
+ ld a, [wd866]
bit 7, a
jr nz, .asm_5a2da
ld a, $31
@@ -25,17 +25,16 @@
LanceScript_5a2de: ; 5a2de (16:62de)
push bc
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $602
call LanceScript_5a2f0
pop bc
ld a, b
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $603
LanceScript_5a2f0: ; 5a2f0 (16:62f0)
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
LanceScript_5a2f5: ; 5a2f5 (16:62f5)
xor a
@@ -53,7 +52,7 @@
ret
LanceScript0: ; 5a305 (16:6305)
- ld a, [$d866]
+ ld a, [wd866]
bit 6, a
ret nz
ld hl, CoordsData_5a33e
@@ -60,8 +59,8 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [wWhichTrade] ; $cd3d
+ ld [hJoyHeld], a
+ ld a, [wWhichTrade] ; wWhichTrade
cp $3
jr nc, .asm_5a325
ld a, $1
@@ -70,11 +69,11 @@
.asm_5a325
cp $5
jr z, LanceScript_5a35b
- ld hl, $d866
+ ld hl, wd866
bit 7, [hl]
set 7, [hl]
ret nz
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
ld a, (SFX_02_57 - SFX_Headers_02) / 3
call PlaySound
@@ -90,7 +89,7 @@
LanceScript2: ; 5a349 (16:6349)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, LanceScript_5a2f5
ld a, $1
@@ -99,12 +98,12 @@
LanceScript_5a35b: ; 5a35b (16:635b)
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $ccd3
+ ld [wJoyIgnore], a
+ ld hl, wccd3
ld de, RLEList_5a379
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_LANCECURSCRIPT], a
@@ -119,12 +118,12 @@
db $FF
LanceScript3: ; 5a382 (16:6382)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_LANCECURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -136,7 +135,7 @@
LanceTrainerHeader0: ; 5a397 (16:6397)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d866 ; flag's byte
+ dw wd866 ; flag's byte
dw LanceBeforeBattleText ; 0x63ae TextBeforeBattle
dw LanceAfterBattleText ; 0x63b8 TextAfterBattle
dw LanceEndBattleText ; 0x63b3 TextEndBattle
@@ -161,6 +160,6 @@
LanceAfterBattleText: ; 5a3b8 (16:63b8)
TX_FAR _LanceAfterBattleText
db $8
- ld hl, $d866
+ ld hl, wd866
set 6, [hl]
jp TextScriptEnd
--- a/scripts/lavenderhouse1.asm
+++ b/scripts/lavenderhouse1.asm
@@ -12,7 +12,7 @@
LavenderHouse1Text1: ; 1d8b8 (7:58b8)
db $08 ; asm
- ld a, [$d7e0]
+ ld a, [wd7e0]
bit 7, a
jr nz, .asm_72e5d ; 0x1d8be
ld hl, LavenderHouse1Text_1d8d1
@@ -34,7 +34,7 @@
LavenderHouse1Text2: ; 1d8db (7:58db)
db $08 ; asm
- ld a, [$d7e0]
+ ld a, [wd7e0]
bit 7, a
jr nz, .asm_06470 ; 0x1d8e1
ld hl, LavenderHouse1Text_1d8f4
@@ -70,7 +70,7 @@
LavenderHouse1Text5: ; 1d918 (7:5918)
db $08 ; asm
- ld a, [$d76c]
+ ld a, [wd76c]
bit 0, a
jr nz, .asm_15ac2 ; 0x1d91e
ld hl, LavenderHouse1Text_1d94c
@@ -80,7 +80,7 @@
jr nc, .BagFull
ld hl, ReceivedFluteText
call PrintText
- ld hl, $d76c
+ ld hl, wd76c
set 0, [hl]
jr .asm_da749 ; 0x1d939
.BagFull
--- a/scripts/lavenderhouse2.asm
+++ b/scripts/lavenderhouse2.asm
@@ -15,7 +15,7 @@
LavenderHouse2Text2: ; 1d9c3 (7:59c3)
db $08 ; asm
- ld a, [$d7e0]
+ ld a, [wd7e0]
bit 7, a
jr nz, .asm_65711 ; 0x1d9c9
ld hl, LavenderHouse2Text_1d9dc
--- a/scripts/lavendermart.asm
+++ b/scripts/lavendermart.asm
@@ -12,7 +12,7 @@
LavenderMartText3: ; 5c93a (17:493a)
db $08 ; asm
- ld a, [$d7e0]
+ ld a, [wd7e0]
bit 7, a
jr nz, .asm_c88d4 ; 0x5c940
ld hl, LavenderMart_5c953
--- a/scripts/lavendertown.asm
+++ b/scripts/lavendertown.asm
@@ -17,7 +17,7 @@
ld hl, LavenderTownText_4413c
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
ld hl, LavenderTownText_44146
jr nz, .asm_40831 ; 0x44131
--- a/scripts/lorelei.asm
+++ b/scripts/lorelei.asm
@@ -9,13 +9,13 @@
ret
LoreleiScript_76191: ; 76191 (1d:6191)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, $d734
+ ld hl, wd734
set 1, [hl]
- ld a, [$d863]
+ ld a, [wd863]
bit 1, a
jr z, .asm_761a9
ld a, $5
@@ -23,10 +23,9 @@
.asm_761a9
ld a, $24
.asm_761ab
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $2
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
LoreleiScript_761b6: ; 761b6 (1d:61b6)
xor a
@@ -43,7 +42,7 @@
LoreleiScript4: ; 761c5 (1d:61c5)
ret
asm_761c6: ; 761c6 (1d:61c6)
- ld hl, $ccd3
+ ld hl, wccd3
ld a, $40
ld [hli], a
ld [hli], a
@@ -52,7 +51,7 @@
ld [hli], a
ld [hl], a
ld a, $6
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_LORELEICURSCRIPT], a
@@ -63,14 +62,14 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_NEWLYPRESSEDBUTTONS], a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$ccd3], a
- ld [$cd38], a
- ld a, [wWhichTrade] ; $cd3d
+ ld [hJoyPressed], a
+ ld [hJoyHeld], a
+ ld [wccd3], a
+ ld [wcd38], a
+ ld a, [wWhichTrade] ; wWhichTrade
cp $3
jr c, .asm_76206
- ld hl, $d863
+ ld hl, wd863
bit 6, [hl]
set 6, [hl]
jr z, asm_761c6
@@ -79,9 +78,9 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_LORELEICURSCRIPT], a
@@ -96,18 +95,18 @@
db $FF
LoreleiScript3: ; 7622c (1d:622c)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_LORELEICURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
LoreleiScript2: ; 7623f (1d:623f)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, LoreleiScript_761b6
ld a, $1
@@ -122,7 +121,7 @@
LoreleiTrainerHeader0: ; 76255 (1d:6255)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d863 ; flag's byte
+ dw wd863 ; flag's byte
dw LoreleiBeforeBattleText ; 0x626c TextBeforeBattle
dw LoreleiAfterBattleText ; 0x6276 TextAfterBattle
dw LoreleiEndBattleText ; 0x6271 TextEndBattle
--- a/scripts/mansion1.asm
+++ b/scripts/mansion1.asm
@@ -9,11 +9,11 @@
ret
Mansion1Subscript1: ; 442c5 (11:42c5)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d796]
+ ld a, [wd796]
bit 0, a
jr nz, .asm_442ec ; 0x442d2 $18
ld bc, $060c
@@ -36,23 +36,22 @@
Mansion1Script_44304: ; 44304 (11:4304)
ld a, $2d
- ld [$d09f], a
+ ld [wd09f], a
jr asm_44310
Mansion1Script_4430b: ; 4430b (11:430b)
ld a, $e
- ld [$d09f], a
+ ld [wd09f], a
asm_44310: ; 44310 (11:4310)
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
ret
Mansion1Script_Switches: ; 44316 (11:4316)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $4
ld [H_SPRITEHEIGHT], a
jp DisplayTextID
@@ -72,7 +71,7 @@
Mansion1TrainerHeader0: ; 44334 (11:4334)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d798 ; flag's byte
+ dw wd798 ; flag's byte
dw Mansion1BattleText2 ; 0x434b TextBeforeBattle
dw Mansion1AfterBattleText2 ; 0x4355 TextAfterBattle
dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
@@ -103,18 +102,18 @@
ld hl, MansionSwitchText
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_4438c ; 0x44368 $22
ld a, $1
- ld [$cc3c], a
- ld hl, $d126
+ ld [wcc3c], a
+ ld hl, wd126
set 5, [hl]
ld hl, MansionSwitchPressedText
call PrintText
ld a, (SFX_02_57 - SFX_Headers_02) / 3
call PlaySound
- ld hl, $d796
+ ld hl, wd796
bit 0, [hl]
set 0, [hl]
jr z, .asm_44392 ; 0x44386 $a
--- a/scripts/mansion2.asm
+++ b/scripts/mansion2.asm
@@ -9,11 +9,11 @@
ret
Mansion2Script_51fee: ; 51fee (14:5fee)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d796]
+ ld a, [wd796]
bit 0, a
jr nz, .asm_52016
ld a, $e
@@ -39,16 +39,15 @@
ret
Mansion2Script_5202f: ; 5202f (14:602f)
- ld [$d09f], a
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ ld [wd09f], a
+ predef_jump Func_ee9e
Mansion2Script_Switches: ; 52037 (14:6037)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $5
ld [H_SPRITEHEIGHT], a
jp DisplayTextID
@@ -69,7 +68,7 @@
Mansion2TrainerHeader0: ; 52057 (14:6057)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d847 ; flag's byte
+ dw wd847 ; flag's byte
dw Mansion2BattleText1 ; 0x606e TextBeforeBattle
dw Mansion2AfterBattleText1 ; 0x6078 TextAfterBattle
dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
@@ -109,18 +108,18 @@
ld hl, Mansion2Text_520c2
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_520b9 ; 0x52095 $22
ld a, $1
- ld [$cc3c], a
- ld hl, $d126
+ ld [wcc3c], a
+ ld hl, wd126
set 5, [hl]
ld hl, Mansion2Text_520c7
call PrintText
ld a, (SFX_02_57 - SFX_Headers_02) / 3
call PlaySound
- ld hl, $d796
+ ld hl, wd796
bit 0, [hl]
set 0, [hl]
jr z, .asm_520bf ; 0x520b3 $a
--- a/scripts/mansion3.asm
+++ b/scripts/mansion3.asm
@@ -9,11 +9,11 @@
ret
Mansion3Script_52204: ; 52204 (14:6204)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d796]
+ ld a, [wd796]
bit 0, a
jr nz, .asm_52224
ld a, $e
@@ -40,7 +40,7 @@
Mansion3Script0: ; 5223b (14:623b)
ld hl, CoordsData_52254
call Mansion3Script_5225b
- ld a, [$d71e]
+ ld a, [wd71e]
and a
jp z, CheckFightingMapTrainers
cp $3
@@ -48,7 +48,7 @@
jr nz, .asm_52250
ld a, $d6
.asm_52250
- ld [$d71d], a
+ ld [wd71d], a
ret
CoordsData_52254: ; 52254 (14:6254)
@@ -59,26 +59,26 @@
Mansion3Script_5225b: ; 5225b (14:625b)
xor a
- ld [$d71e], a
- ld a, [$d72d]
+ ld [wd71e], a
+ ld a, [wd72d]
bit 4, a
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade] ; $cd3d
- ld [$d71e], a
- ld hl, $d72d
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wd71e], a
+ ld hl, wd72d
set 4, [hl]
- ld hl, $d732
+ ld hl, wd732
set 4, [hl]
ret
Mansion3Script_Switches: ; 5227a (14:627a)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $6
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp DisplayTextID
@@ -95,7 +95,7 @@
Mansion3TrainerHeader0: ; 52296 (14:6296)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d849 ; flag's byte
+ dw wd849 ; flag's byte
dw Mansion3BattleText1 ; 0x62c3 TextBeforeBattle
dw Mansion3AfterBattleText1 ; 0x62cd TextAfterBattle
dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
@@ -104,7 +104,7 @@
Mansion3TrainerHeader2: ; 522a2 (14:62a2)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d849 ; flag's byte
+ dw wd849 ; flag's byte
dw Mansion3BattleText2 ; 0x62d2 TextBeforeBattle
dw Mansion3AfterBattleText2 ; 0x62dc TextAfterBattle
dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
--- a/scripts/mansion4.asm
+++ b/scripts/mansion4.asm
@@ -9,11 +9,11 @@
ret
Mansion4Script_523cf: ; 523cf (14:63cf)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d796]
+ ld a, [wd796]
bit 0, a
jr nz, .asm_523ff
ld a, $e
@@ -45,11 +45,11 @@
ret
Mansion4Script_Switches: ; 52420 (14:6420)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $9
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp DisplayTextID
@@ -74,7 +74,7 @@
Mansion4TrainerHeader0: ; 52448 (14:6448)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d84b ; flag's byte
+ dw wd84b ; flag's byte
dw Mansion4BattleText1 ; 0x6475 TextBeforeBattle
dw Mansion4AfterBattleText1 ; 0x647f TextAfterBattle
dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
@@ -83,7 +83,7 @@
Mansion4TrainerHeader2: ; 52454 (14:6454)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d84b ; flag's byte
+ dw wd84b ; flag's byte
dw Mansion4BattleText2 ; 0x6484 TextBeforeBattle
dw Mansion4AfterBattleText2 ; 0x648e TextAfterBattle
dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
--- a/scripts/mtmoon1.asm
+++ b/scripts/mtmoon1.asm
@@ -32,7 +32,7 @@
MtMoon1TrainerHeader0: ; 499fd (12:59fd)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText2 ; 0x5a98 TextBeforeBattle
dw MtMoon1AfterBattleText2 ; 0x5aa2 TextAfterBattle
dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
@@ -41,7 +41,7 @@
MtMoon1TrainerHeader2: ; 49a09 (12:5a09)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText3 ; 0x5aa7 TextBeforeBattle
dw MtMoon1AfterBattleText3 ; 0x5ab1 TextAfterBattle
dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
@@ -50,7 +50,7 @@
MtMoon1TrainerHeader3: ; 49a15 (12:5a15)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText4 ; 0x5ab6 TextBeforeBattle
dw MtMoon1AfterBattleText4 ; 0x5ac0 TextAfterBattle
dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
@@ -59,7 +59,7 @@
MtMoon1TrainerHeader4: ; 49a21 (12:5a21)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText5 ; 0x5ac5 TextBeforeBattle
dw MtMoon1AfterBattleText5 ; 0x5acf TextAfterBattle
dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
@@ -68,7 +68,7 @@
MtMoon1TrainerHeader5: ; 49a2d (12:5a2d)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText6 ; 0x5ad4 TextBeforeBattle
dw MtMoon1AfterBattleText6 ; 0x5ade TextAfterBattle
dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
@@ -77,7 +77,7 @@
MtMoon1TrainerHeader6: ; 49a39 (12:5a39)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText7 ; 0x5ae3 TextBeforeBattle
dw MtMoon1AfterBattleText7 ; 0x5aed TextAfterBattle
dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
@@ -86,7 +86,7 @@
MtMoon1TrainerHeader7: ; 49a45 (12:5a45)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f5 ; flag's byte
+ dw wd7f5 ; flag's byte
dw MtMoon1BattleText8 ; 0x5af2 TextBeforeBattle
dw MtMoon1AfterBattleText8 ; 0x5afc TextAfterBattle
dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
--- a/scripts/mtmoon3.asm
+++ b/scripts/mtmoon3.asm
@@ -5,17 +5,17 @@
ld a, [W_MTMOON3CURSCRIPT]
call ExecuteCurMapScriptInTable
ld [W_MTMOON3CURSCRIPT], a
- ld a, [$d7f6]
+ ld a, [wd7f6]
bit 1, a
ret z
ld hl, CoordsData_49d37
call ArePlayerCoordsInArray
jr nc, .asm_49d31 ; 0x49d29 $6
- ld hl, $d72e
+ ld hl, wd72e
set 4, [hl]
ret
.asm_49d31
- ld hl, $d72e
+ ld hl, wd72e
res 4, [hl]
ret
@@ -40,7 +40,7 @@
MtMoon3Script_49d58: ; 49d58 (12:5d58)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -54,37 +54,37 @@
dw MtMoon3Script5
MtMoon3Script0: ; 49d6f (12:5d6f)
- ld a, [$d7f6]
+ ld a, [wd7f6]
bit 1, a
jp nz, MtMoon3Script_49d91
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
cp $8
jp nz, MtMoon3Script_49d91
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
cp $d
jp nz, MtMoon3Script_49d91
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $1
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp DisplayTextID
MtMoon3Script_49d91: ; 49d91 (12:5d91)
- ld a, [$d7f6]
+ ld a, [wd7f6]
and $c0
jp z, CheckFightingMapTrainers
ret
MtMoon3Script3: ; 49d9a (12:5d9a)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, MtMoon3Script_49d58
call UpdateSprites
call Delay3
- ld hl, $d7f6
+ ld hl, wd7f6
set 1, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -132,17 +132,17 @@
db $40,$FF
MtMoon3Script5: ; 49dfb (12:5dfb)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld a, $a
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld a, [$d7f6]
+ ld a, [wd7f6]
bit 6, a
jr z, .asm_49e1d
ld a, $6e
@@ -150,11 +150,10 @@
.asm_49e1d
ld a, $6d
.asm_49e1f
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -176,7 +175,7 @@
MtMoon3TrainerHeader0: ; 49e48 (12:5e48)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f6 ; flag's byte
+ dw wd7f6 ; flag's byte
dw MtMoon3BattleText2 ; 0x5f9f TextBeforeBattle
dw MtMoon3AfterBattleText2 ; 0x5fa9 TextAfterBattle
dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
@@ -185,7 +184,7 @@
MtMoon3TrainerHeader2: ; 49e54 (12:5e54)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f6 ; flag's byte
+ dw wd7f6 ; flag's byte
dw MtMoon3BattleText3 ; 0x5fae TextBeforeBattle
dw MtMoon3AfterBattleText3 ; 0x5fb8 TextAfterBattle
dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
@@ -194,7 +193,7 @@
MtMoon3TrainerHeader3: ; 49e60 (12:5e60)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f6 ; flag's byte
+ dw wd7f6 ; flag's byte
dw MtMoon3BattleText4 ; 0x5fbd TextBeforeBattle
dw MtMoon3AfterBattleText4 ; 0x5fc7 TextAfterBattle
dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
@@ -203,7 +202,7 @@
MtMoon3TrainerHeader4: ; 49e6c (12:5e6c)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f6 ; flag's byte
+ dw wd7f6 ; flag's byte
dw MtMoon3BattleText5 ; 0x5fcc TextBeforeBattle
dw MtMoon3AfterBattleText5 ; 0x5fd6 TextAfterBattle
dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
@@ -213,7 +212,7 @@
MtMoon3Text1: ; 49e79 (12:5e79)
db $08 ; asm
- ld a, [$d7f6]
+ ld a, [wd7f6]
bit 1, a
jr z, .asm_be1e0 ; 0x49e7f
and $c0
@@ -224,7 +223,7 @@
.asm_be1e0 ; 0x49e8d
ld hl, MtMoon3Text_49f85
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, MtMoon3Text_49f8a
@@ -231,7 +230,7 @@
ld de, MtMoon3Text_49f8a
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
@@ -271,11 +270,11 @@
MtMoon3Text6: ; 49ee9 (12:5ee9)
db $08 ; asm
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, MtMoon3Text_49f24
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_1fa5e ; 0x49efc
ld bc,(DOME_FOSSIL << 8) | 1
@@ -283,10 +282,9 @@
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, $6d
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld hl, $d7f6
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd7f6
set 6, [hl]
ld a, $4
ld [W_MTMOON3CURSCRIPT], a
@@ -301,11 +299,11 @@
MtMoon3Text7: ; 49f29 (12:5f29)
db $08 ; asm
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, MtMoon3Text_49f64
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_8e988 ; 0x49f3c
ld bc, (HELIX_FOSSIL << 8) | 1
@@ -313,10 +311,9 @@
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, $6e
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld hl, $d7f6
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd7f6
set 7, [hl]
ld a, $4
ld [W_MTMOON3CURSCRIPT], a
--- a/scripts/mtmoonpokecenter.asm
+++ b/scripts/mtmoonpokecenter.asm
@@ -23,16 +23,16 @@
MtMoonPokecenterText4: ; 492ec (12:52ec)
db $08 ; asm
- ld a, [$d7c6]
+ ld a, [wd7c6]
add a
jp c, .asm_49353
ld hl, MtMoonPokecenterText_4935c
call PrintText
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jp nz, .asm_4934e
ldh [$9f], a
@@ -49,18 +49,17 @@
jr nc, .asm_49359 ; 0x49324
xor a
ld [wWhichTrade], a
- ld [$cd3f], a
+ ld [wTrainerFacingDirection], a
ld a, $5
- ld [$cd3e], a
- ld hl, $cd3f
- ld de, $d349
+ ld [wTrainerEngageDistance], a
+ ld hl, wTrainerFacingDirection
+ ld de, wPlayerMoney + 2
ld c, $3
- ld a, $c
- call Predef
+ predef SubBCDPredef
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
- ld hl, $d7c6
+ ld hl, wd7c6
set 7, [hl]
jr .asm_49359 ; 0x4934c
.asm_4934e ; 0x4934e
--- a/scripts/museum1f.asm
+++ b/scripts/museum1f.asm
@@ -1,8 +1,8 @@
Museum1FScript: ; 5c0f7 (17:40f7)
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, Museum1FScriptPointers
ld a, [W_MUSEUM1FCURSCRIPT]
jp CallFunctionInTable
@@ -23,7 +23,7 @@
ret nz
.asm_5c120
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $1
ld [$ff8c], a
jp DisplayTextID
@@ -54,7 +54,7 @@
cp $c
jp z, Museum1FScript_5c1f9
.asm_d49e7
- ld a, [$d754]
+ ld a, [wd754]
bit 0, a
jr nz, .asm_31a16
ld hl, Museum1FText_5c23d
@@ -61,7 +61,7 @@
call PrintText
jp asm_d1145
.asm_b8709
- ld a, [$d754]
+ ld a, [wd754]
bit 0, a
jr z, .asm_3ded4
.asm_31a16
@@ -70,14 +70,14 @@
jp asm_d1145
.asm_3ded4
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld hl, Museum1FText_5c21f
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_de133
xor a
@@ -93,20 +93,19 @@
.asm_0f3e3
ld hl, Museum1FText_5c224
call PrintText
- ld hl, $d754
+ ld hl, wd754
set 0, [hl]
xor a
- ld [$cd3d], a
- ld [$cd3e], a
+ ld [wWhichTrade], a
+ ld [wTrainerEngageDistance], a
ld a, $50
- ld [$cd3f], a
- ld hl, $cd3f
- ld de, $d349
+ ld [wTrainerFacingDirection], a
+ ld hl, wTrainerFacingDirection
+ ld de, wPlayerMoney + 2
ld c, $3
- ld a, $c
- call Predef
+ predef SubBCDPredef
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
ld a, (SFX_02_5a - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
@@ -116,9 +115,9 @@
ld hl, Museum1FText_5c21a ; $421a
call PrintText
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
call Func_3486
call UpdateSprites
jr asm_d1145
@@ -131,7 +130,7 @@
ld hl, Museum1FText_5c22e
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
cp $0
jr nz, .asm_d1144
ld hl, Museum1FText_5c233
@@ -191,7 +190,7 @@
Museum1FText3: ; 5c256 (17:4256)
db $08 ; asm
- ld a, [$d754]
+ ld a, [wd754]
bit 1, a
jr nz, .asm_16599 ; 0x5c25c
ld hl, Museum1FText_5c28e
@@ -199,12 +198,11 @@
ld bc, (OLD_AMBER << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d754
+ ld hl, wd754
set 1, [hl]
ld a, $34
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld hl, ReceivedOldAmberText
jr .asm_52e0f ; 0x5c27e
.BagFull
--- a/scripts/namerater.asm
+++ b/scripts/namerater.asm
@@ -4,24 +4,24 @@
NameRaterScript_1da15: ; 1da15 (7:5a15)
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
ret
NameRaterScript_1da20: ; 1da20 (7:5a20)
- ld hl, W_PARTYMON1OT
+ ld hl, wPartyMonOT
ld bc, $000b
ld a, [wWhichPokemon]
call AddNTimes
- ld de, W_PLAYERNAME
+ ld de, wPlayerName
ld c, $b
call .asm_1da47
jr c, .asm_1da52 ; 0x1da34 $1c
- ld hl, $d177
+ ld hl, wPartyMon1OTID
ld bc, $002c
ld a, [wWhichPokemon]
call AddNTimes
- ld de, $d359
+ ld de, wPlayerID
ld c, $2
.asm_1da47
ld a, [de]
@@ -49,9 +49,9 @@
ld hl, NameRaterText_1dab8
call PrintText
xor a
- ld [$d07d], a
- ld [$cfcb], a
- ld [$cc35], a
+ ld [wd07d], a
+ ld [wcfcb], a
+ ld [wcc35], a
call DisplayPartyMenu
push af
call GBPalWhiteOutWithDelay3
--- a/scripts/oakslab.asm
+++ b/scripts/oakslab.asm
@@ -1,11 +1,11 @@
OaksLabScript: ; 1cb0e (7:4b0e)
- ld a, [$d74b]
+ ld a, [wd74b]
bit 6, a
call nz, OaksLabScript_1d076
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, OaksLabScriptPointers
ld a, [W_OAKSLABCURSCRIPT]
jp CallFunctionInTable
@@ -32,17 +32,16 @@
dw OaksLabScript18
OaksLabScript0: ; 1cb4e (7:4b4e)
- ld a, [$d74b]
+ ld a, [wd74b]
bit 7, a
ret z
- ld a, [$cf10]
+ ld a, [wcf10]
and a
ret nz
ld a, $31
- ld [$cc4d], a
- ld a, $15
- call Predef
- ld hl, $d72e
+ ld [wcc4d], a
+ predef ShowObject
+ ld hl, wd72e
res 4, [hl]
ld a, $1
@@ -63,17 +62,15 @@
db $40,$40,$40,$FF
OaksLabScript2: ; 1cb82 (7:4b82)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $31
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $2e
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $3
ld [W_OAKSLABCURSCRIPT], a
@@ -81,11 +78,11 @@
OaksLabScript3: ; 1cba2 (7:4ba2)
call Delay3
- ld hl, $ccd3
+ ld hl, wccd3
ld de, PlayerEntryMovementRLE
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $1
ld [$ff8c], a
@@ -106,12 +103,12 @@
db $40, $8, $ff
OaksLabScript4: ; 1cbd2 (7:4bd2)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
- ld hl, $d747
+ ld hl, wd747
set 0, [hl]
- ld hl, $d74b
+ ld hl, wd74b
set 0, [hl]
ld a, $1
ld [$ff8c], a
@@ -129,7 +126,7 @@
OaksLabScript5: ; 1cbfd (7:4bfd)
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $11
ld [$ff8c], a
call DisplayTextID
@@ -145,10 +142,10 @@
ld a, $14
ld [$ff8c], a
call DisplayTextID
- ld hl, $d74b
+ ld hl, wd74b
set 1, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $6
ld [W_OAKSLABCURSCRIPT], a
@@ -173,12 +170,12 @@
ld [$ff8c], a
call DisplayTextID
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
call Func_3486
ld a, $8
- ld [$d528], a
+ ld [wd528], a
ld a, $7
ld [W_OAKSLABCURSCRIPT], a
@@ -185,7 +182,7 @@
ret
OaksLabScript7: ; 1cc72 (7:4c72)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
@@ -267,11 +264,11 @@
ret
OaksLabScript9: ; 1cd00 (7:4d00)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $1
ld [$ff8c], a
ld a, $4
@@ -280,7 +277,7 @@
ld a, $d
ld [$ff8c], a
call DisplayTextID
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
cp $2
jr nz, .asm_1cd28 ; 0x1cd22 $4
ld a, $2b
@@ -293,14 +290,13 @@
.asm_1cd30
ld a, $2d
.asm_1cd32
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
call Delay3
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
ld [W_RIVALSTARTER], a
- ld [$cf91], a
- ld [$d11e], a
+ ld [wcf91], a
+ ld [wd11e], a
call GetMonName
ld a, $1
ld [$ff8c], a
@@ -310,10 +306,10 @@
ld a, $e
ld [$ff8c], a
call DisplayTextID
- ld hl, $d74b
+ ld hl, wd74b
set 2, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $a
ld [W_OAKSLABCURSCRIPT], a
@@ -329,7 +325,7 @@
ld [$ff8d], a
call Func_34a6 ; face object
ld a, $8
- ld [$d528], a
+ ld [wd528], a
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic ; play music
@@ -341,14 +337,12 @@
ld a, $1
swap a
ld [$ff95], a
- ld a, $22
- call Predef
+ predef Func_f929
ld a, [$ff95]
dec a
ld [$ff95], a
- ld a, $20
- call Predef
- ld de, $cc97
+ predef Func_f8ba
+ ld de, wcc97
ld a, $1
ld [$ff8c], a
call MoveSprite
@@ -358,7 +352,7 @@
ret
OaksLabScript11: ; 1cdb9 (7:4db9)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
@@ -380,18 +374,18 @@
.done
ld [W_TRAINERNO], a
ld a, $1
- ld [$cf13], a
+ ld [wcf13], a
call Func_32ef
ld hl, OaksLabText_1d3be
ld de, OaksLabText_1d3c3
call PreBattleSaveRegisters
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $8
- ld [$d528], a
+ ld [wd528], a
ld a, $c
ld [W_OAKSLABCURSCRIPT], a
ret
@@ -398,12 +392,12 @@
OaksLabScript12: ; 1ce03 (7:4e03)
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $8
- ld [$d528], a
+ ld [wd528], a
call UpdateSprites
ld a, $1
- ld [$cf13], a
+ ld [wcf13], a
call Func_32f9
ld a, $1
ld [$ff8c], a
@@ -410,9 +404,8 @@
xor a
ld [$ff8d], a
call Func_34a6 ; face object
- ld a, $7
- call Predef
- ld hl, $d74b
+ predef HealParty
+ ld hl, wd74b
set 3, [hl]
ld a, $d
@@ -439,7 +432,7 @@
.asm_1ce5b
ld a, $80
.asm_1ce5d
- ld [$cc5b], a
+ ld [wcc5b], a
ld a, $e
ld [W_OAKSLABCURSCRIPT], a
@@ -449,21 +442,20 @@
db $E0,$00,$00,$00,$00,$00,$FF
OaksLabScript14: ; 1ce6d (7:4e6d)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
jr nz, .asm_1ce8c ; 0x1ce72 $18
ld a, $2a
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call Func_2307 ; reset to map music
ld a, $12
ld [W_OAKSLABCURSCRIPT], a
jr .done ; 0x1ce8a $23
.asm_1ce8c
- ld a, [$cf0f]
+ ld a, [wcf0f]
cp $5
jr nz, .asm_1cea8 ; 0x1ce91 $15
ld a, [W_XCOORD]
@@ -470,26 +462,26 @@
cp $4
jr nz, .asm_1cea1 ; 0x1ce98 $7
ld a, $c
- ld [$c109], a
+ ld [wSpriteStateData1 + 9], a
jr .done ; 0x1ce9f $e
.asm_1cea1
ld a, $8
- ld [$c109], a
+ ld [wSpriteStateData1 + 9], a
jr .done ; 0x1cea6 $7
.asm_1cea8
cp $4
ret nz
xor a
- ld [$c109], a
+ ld [wSpriteStateData1 + 9], a
.done
ret
OaksLabScript15: ; 1ceb0 (7:4eb0)
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
call EnableAutoTextBoxDrawing
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $15
@@ -497,20 +489,19 @@
call DisplayTextID
call OaksLabScript_1d02b
ld a, $2a
- ld [$cc4d], a
- ld a, $15
- call Predef
- ld a, [$cd37]
- ld [$d157], a
+ ld [wcc4d], a
+ predef ShowObject
+ ld a, [wcd37]
+ ld [wd157], a
ld b, $0
ld c, a
- ld hl, $cc97
+ ld hl, wcc97
ld a, $40
call FillMemory
ld [hl], $ff
ld a, $1
ld [$ff8c], a
- ld de, $cc97
+ ld de, wcc97
call MoveSprite
ld a, $10
@@ -530,13 +521,13 @@
jp Func_34a6 ; face object
OaksLabScript16: ; 1cf12 (7:4f12)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
call EnableAutoTextBoxDrawing
call Func_2307
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call OaksLabScript_1cefd
ld a, $16
ld [$ff8c], a
@@ -557,13 +548,11 @@
call DisplayTextID
call Delay3
ld a, $2f
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $30
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
call OaksLabScript_1cefd
ld a, $1a
ld [$ff8c], a
@@ -577,32 +566,30 @@
ld a, $1b
ld [$ff8c], a
call DisplayTextID
- ld hl, $d74b
+ ld hl, wd74b
set 5, [hl]
- ld hl, $d74e
+ ld hl, wd74e
set 0, [hl]
ld a, $1
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $2
- ld [$cc4d], a
- ld a, $15
- call Predef
- ld a, [$d157]
+ ld [wcc4d], a
+ predef ShowObject
+ ld a, [wd157]
ld b, $0
ld c, a
- ld hl, $cc97
+ ld hl, wcc97
xor a
call FillMemory
ld [hl], $ff
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
ld [$ff8c], a
- ld de, $cc97
+ ld de, wcc97
call MoveSprite
ld a, $11
@@ -610,26 +597,24 @@
ret
OaksLabScript17: ; 1cfd4 (7:4fd4)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
call Func_2307
ld a, $2a
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld hl, $d7eb
+ ld [wcc4d], a
+ predef HideObject
+ ld hl, wd7eb
set 0, [hl]
res 1, [hl]
set 7, [hl]
ld a, $22
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $5
ld [W_PALLETTOWNCURSCRIPT], a
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $12
ld [W_OAKSLABCURSCRIPT], a
@@ -651,11 +636,11 @@
inc c
jr .asm_1d010 ; 0x1d01a $f4
.GotParcel
- ld hl, $d31d
+ ld hl, wNumBagItems
ld a, c
ld [wWhichPokemon], a
ld a, $1
- ld [$cf96], a
+ ld [wcf96], a
jp RemoveItemFromInventory
OaksLabScript_1d02b: ; 1d02b (7:502b)
@@ -667,7 +652,7 @@
cp $3
jr nz, .asm_1d045 ; 0x1d038 $b
ld a, $4
- ld [$cd37], a
+ ld [wcd37], a
ld a, $30
ld b, $b
jr .asm_1d068 ; 0x1d043 $23
@@ -675,13 +660,13 @@
cp $1
jr nz, .asm_1d054 ; 0x1d047 $b
ld a, $2
- ld [$cd37], a
+ ld [wcd37], a
ld a, $30
ld b, $9
jr .asm_1d068 ; 0x1d052 $14
.asm_1d054
ld a, $3
- ld [$cd37], a
+ ld [wcd37], a
ld b, $a
ld a, [W_XCOORD]
cp $4
@@ -695,7 +680,7 @@
ld a, b
ld [$ffed], a
ld a, $1
- ld [$cf13], a
+ ld [wcf13], a
call Func_32f9
ret
@@ -750,7 +735,7 @@
OaksLabText28: ; 1d0ce (7:50ce)
OaksLabText1: ; 1d0ce (7:50ce)
db $08 ; asm
- ld a, [$d74b]
+ ld a, [wd74b]
bit 0, a
jr nz, .asm_1d0de ; 0x1d0d4
ld hl, OaksLabGaryText1
@@ -784,9 +769,9 @@
OaksLabText2: ; 1d102 (7:5102)
db $8
ld a, STARTER2
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld a, $3
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, STARTER1
ld b, $2
jr OaksLabScript_1d133 ; 0x1d111 $20
@@ -795,9 +780,9 @@
OaksLabText3: ; 1d113 (7:5113)
db $8
ld a, STARTER3
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld a, $4
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, STARTER2
ld b, $3
jr OaksLabScript_1d133 ; 0x1d122 $f
@@ -806,18 +791,18 @@
OaksLabText4: ; 1d124 (7:5124)
db $8
ld a, STARTER1
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld a, $2
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, STARTER3
ld b, $4
OaksLabScript_1d133: ; 1d133 (7:5133)
- ld [$cf91], a
- ld [$d11e], a
+ ld [wcf91], a
+ ld [wd11e], a
ld a, b
- ld [$cf13], a
- ld a, [$d74b]
+ ld [wcf13], a
+ ld a, [wd74b]
bit 2, a
jp nz, OaksLabScript_1d22d
bit 1, a
@@ -844,16 +829,15 @@
ld [$ff8b], a
call Func_34fc
ld [hl], $c
- ld hl, $d730
+ ld hl, wd730
set 6, [hl]
- ld a, $46
- call Predef ; DisplayStarterMonDex
- ld hl, $d730
+ predef StarterDex ; StarterDex
+ ld hl, wd730
res 6, [hl]
call ReloadMapData
ld c, $a
call DelayFrames
- ld a, [$cf13]
+ ld a, [wcf13]
cp $2
jr z, OaksLabLookAtCharmander
cp $3
@@ -884,16 +868,16 @@
OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3)
call PrintText
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
call YesNoChoice ; yes/no menu
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, OaksLabMonChoiceEnd
- ld a, [$cf91]
- ld [$d717], a
- ld [$d11e], a
+ ld a, [wcf91]
+ ld [W_PLAYERSTARTER], a
+ ld [wd11e], a
call GetMonName
- ld a, [$cf13]
+ ld a, [wcf13]
cp $2
jr nz, asm_1d1db ; 0x1d1d5 $4
ld a, $2b
@@ -906,26 +890,25 @@
asm_1d1e3: ; 1d1e3 (7:51e3)
ld a, $2d
asm_1d1e5: ; 1d1e5 (7:51e5)
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, OaksLabMonEnergeticText
call PrintText
ld hl, OaksLabReceivedMonText
call PrintText
xor a
- ld [$cc49], a
+ ld [wcc49], a
ld a, $5
- ld [$d127], a
- ld a, [$cf91]
- ld [$d11e], a
- call AddPokemonToParty
- ld hl, $d72e
+ ld [W_CURENEMYLVL], a
+ ld a, [wcf91]
+ ld [wd11e], a
+ call AddPartyMon
+ ld hl, wd72e
set 3, [hl]
ld a, $fc
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $8
ld [W_OAKSLABCURSCRIPT], a
OaksLabMonChoiceEnd: ; 1d21f (7:521f)
@@ -957,16 +940,16 @@
OaksLabText32: ; 1d248 (7:5248)
OaksLabText5: ; 1d248 (7:5248)
db $08 ; asm
- ld a, [$d747]
+ ld a, [wd747]
bit 6, a
jr nz, .asm_50e81 ; 0x1d24e
- ld hl, $d2f7
+ ld hl, wPokedexOwned
ld b, $13
call CountSetBits
- ld a, [$d11e]
+ ld a, [wd11e]
cp $2
jr c, .asm_b28b0 ; 0x1d25d
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr z, .asm_b28b0 ; 0x1d264
.asm_50e81 ; 0x1d266
@@ -973,23 +956,22 @@
ld hl, OaksLabText_1d31d
call PrintText
ld a, $1
- ld [$cc3c], a
- ld a, $56
- call Predef
+ ld [wcc3c], a
+ predef DisplayDexRating
jp .asm_0f042
.asm_b28b0 ; 0x1d279
ld b,POKE_BALL
call IsItemInBag
jr nz, .asm_17c30 ; 0x1d27e
- ld a, [$d7eb]
+ ld a, [wd7eb]
bit 5, a
jr nz, .asm_f1adc ; 0x1d285
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr nz, .asm_333a2 ; 0x1d28c
bit 3, a
jr nz, .asm_76269 ; 0x1d290
- ld a, [$d72e]
+ ld a, [wd72e]
bit 3, a
jr nz, .asm_4a5e0 ; 0x1d297
ld hl, OaksLabText_1d2f0
@@ -1018,7 +1000,7 @@
call PrintText
jr .asm_0f042 ; 0x1d2ce
.asm_f1adc ; 0x1d2d0
- ld hl, $d74b
+ ld hl, wd74b
bit 4, [hl]
set 4, [hl]
jr nz, .asm_17c30 ; 0x1d2d7
--- a/scripts/pallettown.asm
+++ b/scripts/pallettown.asm
@@ -1,8 +1,8 @@
PalletTownScript: ; 18e5b (6:4e5b)
- ld a,[$D74B]
+ ld a,[wd74b]
bit 4,a
jr z,.next
- ld hl,$D747
+ ld hl,wd747
set 6,[hl]
.next
call EnableAutoTextBoxDrawing
@@ -20,7 +20,7 @@
dw PalletTownScript6
PalletTownScript0: ; 18e81 (6:4e81)
- ld a,[$D747]
+ ld a,[wd747]
bit 0,a
ret nz
ld a,[W_YCOORD]
@@ -27,9 +27,9 @@
cp 1 ; is player near north exit?
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS],a
+ ld [hJoyHeld],a
ld a,4
- ld [$D528],a
+ ld [wd528],a
ld a,$FF
call PlaySound ; stop music
ld a, BANK(Music_MeetProfOak)
@@ -37,8 +37,8 @@
ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music
call PlayMusic ; plays music
ld a,$FC
- ld [wJoypadForbiddenButtonsMask],a
- ld hl,$D74B
+ ld [wJoyIgnore],a
+ ld hl,wd74b
set 7,[hl]
; trigger the next script
@@ -48,16 +48,15 @@
PalletTownScript1: ; 18eb2 (6:4eb2)
xor a
- ld [$CF0D],a
+ ld [wcf0d],a
ld a,1
ld [$FF8C],a
call DisplayTextID
ld a,$FF
- ld [wJoypadForbiddenButtonsMask],a
+ ld [wJoyIgnore],a
ld a,0
- ld [$CC4D],a
- ld a,$15
- call Predef
+ ld [wcc4d],a
+ predef ShowObject
; trigger the next script
ld a,2
@@ -78,18 +77,16 @@
ld a,1
swap a
ld [$FF95],a
- ld a,$22
- call Predef
+ predef Func_f929
ld hl,$FF95
dec [hl]
- ld a,$20
- call Predef ; load Oak’s movement into $CC97
- ld de,$CC97
+ predef Func_f8ba ; load Oak’s movement into wcc97
+ ld de,wcc97
ld a,1 ; oak
ld [$FF8C],a
call MoveSprite
ld a,$FF
- ld [wJoypadForbiddenButtonsMask],a
+ ld [wJoyIgnore],a
; trigger the next script
ld a,3
@@ -97,28 +94,28 @@
ret
PalletTownScript3: ; 18f12 (6:4f12)
- ld a,[$D730]
+ ld a,[wd730]
bit 0,a
ret nz
xor a
- ld [$C109],a
+ ld [wSpriteStateData1 + 9],a
ld a,1
- ld [$CF0D],a
+ ld [wcf0d],a
ld a,$FC
- ld [wJoypadForbiddenButtonsMask],a
+ ld [wJoyIgnore],a
ld a,1
ld [$FF8C],a
call DisplayTextID
ld a,$FF
- ld [wJoypadForbiddenButtonsMask],a
+ ld [wJoyIgnore],a
ld a,1
- ld [$CF13],a
+ ld [wcf13],a
xor a
- ld [$CF10],a
+ ld [wcf10],a
ld a,1
- ld [$CC57],a
+ ld [wcc57],a
ld a,[H_LOADEDROMBANK]
- ld [$CC58],a
+ ld [wcc58],a
; trigger the next script
ld a,4
@@ -126,7 +123,7 @@
ret
PalletTownScript4: ; 18f4b (6:4f4b)
- ld a,[$CC57]
+ ld a,[wcc57]
and a
ret nz
@@ -136,27 +133,25 @@
ret
PalletTownScript5: ; 18f56 (6:4f56)
- ld a,[$D74A]
+ ld a,[wd74a]
bit 2,a
jr nz,.next
and 3
cp 3
jr nz,.next
- ld hl,$D74A
+ ld hl,wd74a
set 2,[hl]
ld a,$27
- ld [$CC4D],a
- ld a,$11
- call Predef
+ ld [wcc4d],a
+ predef HideObject
ld a,$28
- ld [$CC4D],a
- ld a,$15
- jp Predef
+ ld [wcc4d],a
+ predef_jump ShowObject
.next
- ld a,[$D74B]
+ ld a,[wd74b]
bit 4,a
ret z
- ld hl,$D74B
+ ld hl,wd74b
set 6,[hl]
PalletTownScript6: ; 18f87 (6:4f87)
ret
@@ -172,11 +167,11 @@
PalletTownText1: ; 18f96 (6:4f96)
db 8
- ld a,[$CF0D]
+ ld a,[wcf0d]
and a
jr nz,.next
ld a,1
- ld [$CC3C],a
+ ld [wcc3c],a
ld hl,OakAppearsText
jr .done
.next
@@ -191,12 +186,11 @@
ld c,10
call DelayFrames
xor a
- ld [$CD4F],a
- ld [$CD50],a
- ld a,$4C
- call Predef ; display ! over head
+ ld [wcd4f],a
+ ld [wcd50],a
+ predef EmotionBubble ; display ! over head
ld a,4
- ld [$D528],a
+ ld [wd528],a
jp TextScriptEnd
OakWalksUpText: ; 18fce (6:4fce)
--- a/scripts/pewtercity.asm
+++ b/scripts/pewtercity.asm
@@ -16,13 +16,13 @@
PewterCityScript0: ; 19251 (6:5251)
xor a
ld [W_MUSEUM1FCURSCRIPT], a
- ld hl, $d754
+ ld hl, wd754
res 0, [hl]
call PewterCityScript_1925e
ret
PewterCityScript_1925e: ; 1925e (6:525e)
- ld a, [$d755]
+ ld a, [wd755]
bit 7, a
ret nz
ld hl, CoordsData_19277
@@ -29,7 +29,7 @@
call ArePlayerCoordsInArray
ret nc
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $5
ld [$ff8c], a
jp DisplayTextID
@@ -42,7 +42,7 @@
db $ff
PewterCityScript1: ; 19280 (6:5280)
- ld a, [$cc57]
+ ld a, [wcc57]
and a
ret nz
ld a, $3
@@ -68,7 +68,7 @@
ld a, $11
ld [$ffee], a
ld a, $3
- ld [$cf13], a
+ ld [wcf13], a
call Func_32f9
ld a, $3
ld [$ff8c], a
@@ -82,13 +82,12 @@
db $00,$00,$00,$00,$FF
PewterCityScript2: ; 192d3 (6:52d3)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $3
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $3
ld [W_PEWTERCITYCURSCRIPT], a
ret
@@ -95,20 +94,19 @@
PewterCityScript3: ; 192e9 (6:52e9)
ld a, $3
- ld [$cf13], a
+ ld [wcf13], a
call Func_32fe
ld a, $3
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_PEWTERCITYCURSCRIPT], a
ret
PewterCityScript4: ; 19305 (6:5305)
- ld a, [$cc57]
+ ld a, [wcc57]
and a
ret nz
ld a, $5
@@ -134,7 +132,7 @@
ld a, $10
ld [$ffee], a
ld a, $5
- ld [$cf13], a
+ ld [wcf13], a
call Func_32f9
ld a, $5
ld [$ff8c], a
@@ -148,13 +146,12 @@
db $C0,$C0,$C0,$C0,$C0,$FF
PewterCityScript5: ; 19359 (6:5359)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $4
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $6
ld [W_PEWTERCITYCURSCRIPT], a
ret
@@ -161,14 +158,13 @@
PewterCityScript6: ; 1936f (6:536f)
ld a, $5
- ld [$cf13], a
+ ld [wcf13], a
call Func_32fe
ld a, $4
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_PEWTERCITYCURSCRIPT], a
ret
@@ -202,7 +198,7 @@
ld hl, PewterCityText_193f1
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_f46a9 ; 0x193bf
ld hl, PewterCityText_193f6
@@ -214,13 +210,13 @@
xor a
ldh [$b3], a
ldh [$b4], a
- ld [$cf10], a
+ ld [wcf10], a
ld a, $2
- ld [$cc57], a
+ ld [wcc57], a
ldh a, [$b8]
- ld [$cc58], a
+ ld [wcc58], a
ld a, $3
- ld [$cf13], a
+ ld [wcf13], a
call Func_32f4
ld a, $1
ld [W_PEWTERCITYCURSCRIPT], a
@@ -248,7 +244,7 @@
ld hl, PewterCityText_19427
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
cp $0
jr nz, .asm_e4603
ld hl, PewterCityText_1942c
@@ -278,13 +274,13 @@
call PrintText
xor a
ldh [$b4], a
- ld [$cf10], a
+ ld [wcf10], a
ld a, $3
- ld [$cc57], a
+ ld [wcc57], a
ldh a, [$b8]
- ld [$cc58], a
+ ld [wcc58], a
ld a, $5
- ld [$cf13], a
+ ld [wcf13], a
call Func_32f4
ld a, $4
ld [W_PEWTERCITYCURSCRIPT], a
--- a/scripts/pewtergym.asm
+++ b/scripts/pewtergym.asm
@@ -1,5 +1,5 @@
PewterGymScript: ; 5c387 (17:4387)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
call nz, PewterGymScript_5c3a4
@@ -24,7 +24,7 @@
PewterGymScript_5c3bf: ; 5c3bf (17:43bf)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_PEWTERGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -36,17 +36,17 @@
dw PewterGymScript3
PewterGymScript3: ; 5c3d2 (17:43d2)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, PewterGymScript_5c3bf
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
PewterGymScript_5c3df: ; 5c3df (17:43df)
ld a, $4
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d755
+ ld hl, wd755
set 7, [hl]
ld bc, (TM_34 << 8) | 1
call GiveItem
@@ -54,7 +54,7 @@
ld a, $5
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d755
+ ld hl, wd755
set 6, [hl]
jr .asm_5c408
.BagFull
@@ -64,24 +64,22 @@
.asm_5c408
ld hl, W_OBTAINEDBADGES
set 0, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 0, [hl]
ld a, $4
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
ld a, $22
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
- ld hl, $d7eb
+ ld hl, wd7eb
res 0, [hl]
res 7, [hl]
; deactivate gym trainers
- ld hl, $d755
+ ld hl, wd755
set 2, [hl]
jp PewterGymScript_5c3bf
@@ -98,7 +96,7 @@
PewterGymTrainerHeader0: ; 5c441 (17:4441)
db $2 ; flag's bit
db ($5 << 4) ; trainer's view range
- dw $d755 ; flag's byte
+ dw wd755 ; flag's byte
dw PewterGymBattleText1 ; 0x44d0 TextBeforeBattle
dw PewterGymAfterBattleText1 ; 0x44da TextAfterBattle
dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
@@ -108,7 +106,7 @@
PewterGymText1: ; 5c44e (17:444e)
db $08 ; asm
- ld a, [$d755]
+ ld a, [wd755]
bit 7, a
jr z, .asm_4a735 ; 0x5c454
bit 6, a
@@ -123,7 +121,7 @@
.asm_4a735 ; 0x5c46a
ld hl, PewterGymText_5c49e
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, PewterGymText_5c4bc
@@ -130,11 +128,11 @@
ld de, PewterGymText_5c4bc
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $1
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
xor a
ldh [$b4], a
ld a, $3
@@ -191,13 +189,13 @@
PewterGymText3: ; 5c4df (17:44df)
db $08 ; asm
- ld a, [$d72a]
+ ld a, [wd72a]
bit 0, a
jr nz, .asm_71369 ; 0x5c4e5
ld hl, PewterGymText_5c515
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_6123a ; 0x5c4f4
ld hl, PewterGymText_5c51a
--- a/scripts/pewtermart.asm
+++ b/scripts/pewtermart.asm
@@ -1,7 +1,7 @@
PewterMartScript: ; 74cad (1d:4cad)
call EnableAutoTextBoxDrawing
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
ret
PewterMartTextPointers: ; 74cb6 (1d:4cb6)
--- a/scripts/pewterpokecenter.asm
+++ b/scripts/pewterpokecenter.asm
@@ -18,7 +18,7 @@
PewterPokecenterText3: ; 5c59b (17:459b)
db $8
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, PewterPokecenterText5
call PrintText
ld a, $ff
@@ -26,11 +26,11 @@
ld c, $20
call DelayFrames
ld hl, Unknown_5c608 ; $4608
- ld de, $cd3f
+ ld de, wTrainerFacingDirection
ld bc, $0004
call CopyData
- ld a, [$c132]
- ld hl, $cd3f
+ ld a, [wSpriteStateData1 + $32]
+ ld hl, wTrainerFacingDirection
.asm_5c5c3
cp [hl]
inc hl
@@ -43,20 +43,20 @@
pop hl
.asm_5c5d1
ld a, [hl]
- ld [$c132], a
+ ld [wSpriteStateData1 + $32], a
push hl
- ld hl, $cd3f
- ld de, $cd3e
+ ld hl, wTrainerFacingDirection
+ ld de, wTrainerEngageDistance
ld bc, $0004
call CopyData
- ld a, [$cd3e]
- ld [$cd42], a
+ ld a, [wTrainerEngageDistance]
+ ld [wcd42], a
pop hl
ld c, $18
call DelayFrames
- ld a, [$c026]
+ ld a, [wc026]
ld b, a
- ld a, [$c027]
+ ld a, [wc027]
or b
jr nz, .asm_5c5d1 ; 0x5c5f6 $d9
ld c, $30
--- a/scripts/pokemontower2.asm
+++ b/scripts/pokemontower2.asm
@@ -6,7 +6,7 @@
PokemonTower2Script_604fe: ; 604fe (18:44fe)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -17,7 +17,7 @@
dw PokemonTower2Script2
PokemonTower2Script0: ; 6050f (18:450f)
- ld a, [$d764]
+ ld a, [wd764]
bit 7, a
ret nz
ld hl, CoordsData_6055e ; $455e
@@ -24,24 +24,24 @@
call ArePlayerCoordsInArray
ret nc
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld hl, $d764
+ ld hl, wd764
res 6, [hl]
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
cp $1
ld a, $8
ld b, $0
jr nz, .asm_60544 ; 0x60539 $9
- ld hl, $d764
+ ld hl, wd764
set 6, [hl]
ld a, $2
ld b, $c
.asm_60544
- ld [$d528], a
+ ld [wd528], a
ld a, $1
ld [$ff8c], a
ld a, b
@@ -51,8 +51,8 @@
ld [$ff8c], a
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [H_NEWLYPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
+ ld [hJoyPressed], a
ret
CoordsData_6055e: ; 6055e (18:455e)
@@ -61,18 +61,18 @@
db $0F ; isn't this supposed to end in $ff?
PokemonTower2Script1: ; 60563 (18:4563)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, PokemonTower2Script_604fe
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d764
+ ld [wJoyIgnore], a
+ ld hl, wd764
set 7, [hl]
ld a, $1
ld [$ff8c], a
call DisplayTextID
ld de, MovementData_605b2
- ld a, [$d764]
+ ld a, [wd764]
bit 6, a
jr nz, .asm_60589 ; 0x60584 $3
ld de, MovementData_605a9
@@ -81,7 +81,7 @@
ld [$ff8c], a
call MoveSprite
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $2
@@ -96,15 +96,14 @@
db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF
PokemonTower2Script2: ; 605bb (18:45bb)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $38
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call Func_2307
ld a, $0
ld [W_POKEMONTOWER2CURSCRIPT], a
@@ -117,7 +116,7 @@
PokemonTower2Text1: ; 605df (18:45df)
db $08 ; asm
- ld a, [$d764]
+ ld a, [wd764]
bit 7, a
jr z, .asm_16f24 ; 0x605e5
ld hl, PokemonTower2Text_6063c
@@ -126,7 +125,7 @@
.asm_16f24 ; 0x605ef
ld hl, PokemonTower2Text_6062d
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, PokemonTower2Text_60632
--- a/scripts/pokemontower3.asm
+++ b/scripts/pokemontower3.asm
@@ -22,7 +22,7 @@
PokemonTower3TrainerHeader0: ; 606ed (18:46ed)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d765 ; flag's byte
+ dw wd765 ; flag's byte
dw PokemonTower3BattleText1 ; 0x4730 TextBeforeBattle
dw PokemonTower3AfterBattleText1 ; 0x473a TextAfterBattle
dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
@@ -31,7 +31,7 @@
PokemonTower3TrainerHeader1: ; 606f9 (18:46f9)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d765 ; flag's byte
+ dw wd765 ; flag's byte
dw PokemonTower3BattleText2 ; 0x473f TextBeforeBattle
dw PokemonTower3AfterBattleText2 ; 0x4749 TextAfterBattle
dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
@@ -40,7 +40,7 @@
PokemonTower3TrainerHeader2: ; 60705 (18:4705)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d765 ; flag's byte
+ dw wd765 ; flag's byte
dw PokemonTower3BattleText3 ; 0x474e TextBeforeBattle
dw PokemonTower3AfterBattleText3 ; 0x4758 TextAfterBattle
dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
--- a/scripts/pokemontower4.asm
+++ b/scripts/pokemontower4.asm
@@ -24,7 +24,7 @@
PokemonTower4TrainerHeader0: ; 6081b (18:481b)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d766 ; flag's byte
+ dw wd766 ; flag's byte
dw PokemonTower4BattleText1 ; 0x485e TextBeforeBattle
dw PokemonTower4AfterBattleText1 ; 0x4868 TextAfterBattle
dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
@@ -33,7 +33,7 @@
PokemonTower4TrainerHeader1: ; 60827 (18:4827)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d766 ; flag's byte
+ dw wd766 ; flag's byte
dw PokemonTower4BattleText2 ; 0x486d TextBeforeBattle
dw PokemonTower4AfterBattleText2 ; 0x4877 TextAfterBattle
dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
@@ -42,7 +42,7 @@
PokemonTower4TrainerHeader2: ; 60833 (18:4833)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d766 ; flag's byte
+ dw wd766 ; flag's byte
dw PokemonTower4BattleText3 ; 0x487c TextBeforeBattle
dw PokemonTower4AfterBattleText3 ; 0x4886 TextAfterBattle
dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
--- a/scripts/pokemontower5.asm
+++ b/scripts/pokemontower5.asm
@@ -16,24 +16,23 @@
ld hl, CoordsData_60992 ; $4992
call ArePlayerCoordsInArray
jr c, .asm_60960
- ld hl, $d72e
+ ld hl, wd72e
res 4, [hl]
- ld hl, $d767
+ ld hl, wd767
res 7, [hl]
jp CheckFightingMapTrainers
.asm_60960
- ld hl, $d767
+ ld hl, wd767
bit 7, [hl]
set 7, [hl]
ret nz
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d72e
+ ld [wJoyIgnore], a
+ ld hl, wd72e
set 4, [hl]
- ld a, $7
- call Predef ; indirect jump to HealParty (f6a5 (3:76a5))
+ predef HealParty
call GBFadeOut2
call Delay3
call Delay3
@@ -42,7 +41,7 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
CoordsData_60992: ; 60992 (18:4992)
@@ -65,7 +64,7 @@
PokemonTower5TrainerHeader0: ; 609a9 (18:49a9)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d767 ; flag's byte
+ dw wd767 ; flag's byte
dw PokemonTower5BattleText1 ; 0x49e9 TextBeforeBattle
dw PokemonTower5AfterBattleText1 ; 0x49f3 TextAfterBattle
dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
@@ -74,7 +73,7 @@
PokemonTower5TrainerHeader1: ; 609b5 (18:49b5)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d767 ; flag's byte
+ dw wd767 ; flag's byte
dw PokemonTower5BattleText2 ; 0x4a02 TextBeforeBattle
dw PokemonTower5AfterBattleText2 ; 0x4a0c TextAfterBattle
dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
@@ -83,7 +82,7 @@
PokemonTower5TrainerHeader2: ; 609c1 (18:49c1)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d767 ; flag's byte
+ dw wd767 ; flag's byte
dw PokemonTower5BattleText3 ; 0x4a1b TextBeforeBattle
dw PokemonTower5AfterBattleText3 ; 0x4a25 TextAfterBattle
dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
@@ -92,7 +91,7 @@
PokemonTower5TrainerHeader3: ; 609cd (18:49cd)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d767 ; flag's byte
+ dw wd767 ; flag's byte
dw PokemonTower5BattleText4 ; 0x4a34 TextBeforeBattle
dw PokemonTower5AfterBattleText4 ; 0x4a3e TextAfterBattle
dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
--- a/scripts/pokemontower6.asm
+++ b/scripts/pokemontower6.asm
@@ -7,9 +7,9 @@
ld [W_POKEMONTOWER6CURSCRIPT], a
ret
-Func_60b02: ; 60b02 (18:4b02)
+PokemonTower6Script_60b02: ; 60b02 (18:4b02)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_POKEMONTOWER6CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -22,7 +22,7 @@
dw PokemonTower6Script4
PokemonTower6Script0: ; 60b17 (18:4b17)
- ld a, [$d768]
+ ld a, [wd768]
bit 7, a
jp nz, CheckFightingMapTrainers
ld hl, CoordsData_60b45 ; $4b45
@@ -29,14 +29,14 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $6
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, MAROWAK
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
ld a, 30
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, $4
ld [W_POKEMONTOWER6CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -46,27 +46,27 @@
db $10,$0A,$FF
PokemonTower6Script4: ; 60b48 (18:4b48)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
- jp z, Func_60b02
+ jp z, PokemonTower6Script_60b02
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld a, [$d72d]
+ ld [wJoyIgnore], a
+ ld a, [wd72d]
bit 6, a
ret nz
call UpdateSprites
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld a, [$cf0b]
+ ld [wJoyIgnore], a
+ ld a, [wcf0b]
and a
jr nz, .asm_60b82
- ld hl, $d768
+ ld hl, wd768
set 7, [hl]
ld a, $7
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_POKEMONTOWER6CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -73,13 +73,13 @@
ret
.asm_60b82
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $10
- ld [$ccd3], a
+ ld [wccd3], a
xor a
- ld [$c206], a
- ld [$cd3b], a
- ld hl, $d730
+ ld [wSpriteStateData2 + $06], a
+ ld [wcd3b], a
+ ld hl, wd730
set 7, [hl]
ld a, $3
ld [W_POKEMONTOWER6CURSCRIPT], a
@@ -87,7 +87,7 @@
ret
PokemonTower6Script3: ; 60ba1 (18:4ba1)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
@@ -109,7 +109,7 @@
PokemonTower6TrainerHeader0: ; 60bbf (18:4bbf)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d768 ; flag's byte
+ dw wd768 ; flag's byte
dw PokemonTower6BattleText1 ; 0x4c29 TextBeforeBattle
dw PokemonTower6AfterBattleText1 ; 0x4c33 TextAfterBattle
dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
@@ -118,7 +118,7 @@
PokemonTower6TrainerHeader1: ; 60bcb (18:4bcb)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d768 ; flag's byte
+ dw wd768 ; flag's byte
dw PokemonTower6BattleText2 ; 0x4c38 TextBeforeBattle
dw PokemonTower6AfterBattleText2 ; 0x4c42 TextAfterBattle
dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
@@ -127,7 +127,7 @@
PokemonTower6TrainerHeader2: ; 60bd7 (18:4bd7)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d768 ; flag's byte
+ dw wd768 ; flag's byte
dw PokemonTower6BattleText3 ; 0x4c47 TextBeforeBattle
dw PokemonTower6AfterBattleText3 ; 0x4c51 TextAfterBattle
dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
--- a/scripts/pokemontower7.asm
+++ b/scripts/pokemontower7.asm
@@ -9,7 +9,7 @@
PokemonTower7Script_60d18: ; 60d18 (18:4d18)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_POKEMONTOWER7CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -24,13 +24,13 @@
PokemonTower7Script2: ; 60d23 (18:4d23)
ld hl, wFlags_0xcd60
res 0, [hl]
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, PokemonTower7Script_60d18
call EndTrainerBattle
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld a, [$cf13]
+ ld [wJoyIgnore], a
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
call PokemonTower7Script_60db6
@@ -40,11 +40,11 @@
ret
PokemonTower7Script3: ; 60d56 (18:4d56)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld hl, W_MISSABLEOBJECTLIST
- ld a, [$cf13]
+ ld a, [wcf13]
ld b, a
.missableObjectsListLoop
ld a, [hli]
@@ -51,14 +51,13 @@
cp b ; search for sprite ID in missing objects list
ld a, [hli]
jr nz, .missableObjectsListLoop
- ld [$cc4d], a ; remove missable object
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a ; remove missable object
+ predef HideObject
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld [$cf13], a
+ ld [wJoyIgnore], a
+ ld [wcf13], a
ld [wTrainerHeaderFlagBit], a
- ld [$da38], a
+ ld [wda38], a
ld a, $0
ld [W_POKEMONTOWER7CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -66,20 +65,19 @@
PokemonTower7Script4: ; 60d86 (18:4d86)
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $43
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
ld a, $4
- ld [$c109], a
+ ld [wSpriteStateData1 + 9], a
ld a, $95
ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
ld a, $1
- ld [$d42f], a
+ ld [wd42f], a
ld a, LAVENDER_TOWN
ld [wLastMap], a
- ld hl, $d72d
+ ld hl, wd72d
set 3, [hl]
ld a, $0
ld [W_POKEMONTOWER7CURSCRIPT], a
@@ -88,15 +86,15 @@
PokemonTower7Script_60db6: ; 60db6 (18:4db6)
ld hl, CoordsData_60de3 ; $4de3
- ld a, [$cf13]
+ ld a, [wcf13]
dec a
swap a
ld d, $0
ld e, a
add hl, de
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld b, a
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld c, a
.asm_60dcb
ld a, [hli]
@@ -108,7 +106,7 @@
ld a, [hli]
ld d, [hl]
ld e, a
- ld a, [$cf13]
+ ld a, [wcf13]
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
jp MoveSprite
.asm_60dde
@@ -172,7 +170,7 @@
PokemonTower7TrainerHeader0: ; 60e47 (18:4e47)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d769 ; flag's byte
+ dw wd769 ; flag's byte
dw PokemonTower7BattleText1 ; 0x4ec9 TextBeforeBattle
dw PokemonTower7AfterBattleText1 ; 0x4ed3 TextAfterBattle
dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
@@ -181,7 +179,7 @@
PokemonTower7TrainerHeader1: ; 60e53 (18:4e53)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d769 ; flag's byte
+ dw wd769 ; flag's byte
dw PokemonTower7BattleText2 ; 0x4ed8 TextBeforeBattle
dw PokemonTower7AfterBattleText2 ; 0x4ee2 TextAfterBattle
dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
@@ -190,7 +188,7 @@
PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d769 ; flag's byte
+ dw wd769 ; flag's byte
dw PokemonTower7BattleText3 ; 0x4ee7 TextBeforeBattle
dw PokemonTower7AfterBattleText3 ; 0x4ef1 TextAfterBattle
dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
@@ -220,22 +218,19 @@
db $08 ; asm
ld hl, PokemonTower7Text_60ec4
call PrintText
- ld hl, $d7e0
+ ld hl, wd7e0
set 7, [hl]
- ld hl, $d769
+ ld hl, wd769
set 7, [hl]
ld a, $44
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $17
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $18
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
ld a, $4
ld [W_POKEMONTOWER7CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
--- a/scripts/powerplant.asm
+++ b/scripts/powerplant.asm
@@ -32,7 +32,7 @@
PowerPlantTrainerHeader0: ; 1e2fb (7:62fb)
db 1 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -41,7 +41,7 @@
PowerPlantTrainerHeader1: ; 1e307 (7:6307)
db 2 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -50,7 +50,7 @@
PowerPlantTrainerHeader2: ; 1e313 (7:6313)
db 3 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -59,7 +59,7 @@
PowerPlantTrainerHeader3: ; 1e31f (7:631f)
db 4 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -68,7 +68,7 @@
PowerPlantTrainerHeader4: ; 1e32b (7:632b)
db 5 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -77,7 +77,7 @@
PowerPlantTrainerHeader5: ; 1e337 (7:6337)
db 6 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -86,7 +86,7 @@
PowerPlantTrainerHeader6: ; 1e343 (7:6343)
db 7 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -95,7 +95,7 @@
PowerPlantTrainerHeader7: ; 1e34f (7:634f)
db 8 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
@@ -104,7 +104,7 @@
PowerPlantTrainerHeader8: ; 1e35b (7:635b)
db 9 ; flag's bit
db 0 ; view range
- dw $d7d3 ; flag's byte
+ dw wd7d3 ; flag's byte
dw ZapdosBattleText ; TextBeforeBattle
dw ZapdosBattleText ; TextAfterBattle
dw ZapdosBattleText ; TextEndBattle
--- a/scripts/redshouse1f.asm
+++ b/scripts/redshouse1f.asm
@@ -7,7 +7,7 @@
RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom
db 8
- ld a, [$D72E]
+ ld a, [wd72e]
bit 3, a
jr nz, .heal ; if player has received a Pokémon from Oak, heal team
ld hl, MomWakeUpText
@@ -27,16 +27,16 @@
call PrintText
call GBFadeOut2
call ReloadMapData
- PREDEF HealPartyPredef
+ predef HealParty
ld a, MUSIC_PKMN_HEALED
- ld [$C0EE], a
+ ld [wc0ee], a
call PlaySound ; play sound?
.next
- ld a, [$C026]
+ ld a, [wc026]
cp MUSIC_PKMN_HEALED
jr z, .next
- ld a, [$D35B]
- ld [$C0EE], a
+ ld a, [wd35b]
+ ld [wc0ee], a
call PlaySound
call GBFadeIn2
ld hl, MomHealText2
@@ -51,7 +51,7 @@
RedsHouse1FText2: ; 0x481c6 TV
db 8
- ld a,[$C109]
+ ld a,[wSpriteStateData1 + 9]
cp 4
ld hl,TVWrongSideText
jr nz,.done ; if player is not facing up
--- a/scripts/redshouse2f.asm
+++ b/scripts/redshouse2f.asm
@@ -10,9 +10,9 @@
RedsHouse2FScript0: ; 5c0c0 (17:40c0)
xor a
- ld [H_CURRENTPRESSEDBUTTONS],a
+ ld [hJoyHeld],a
ld a,8
- ld [$D528],a
+ ld [wd528],a
ld a,1
ld [W_REDSHOUSE2CURSCRIPT],a
ret
--- a/scripts/rockethideout1.asm
+++ b/scripts/rockethideout1.asm
@@ -9,11 +9,11 @@
ret
RocketHideout1Script_44be0: ; 44be0 (11:4be0)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d815]
+ ld a, [wd815]
bit 7, a
jr nz, .asm_44c01
bit 5, a
@@ -23,15 +23,14 @@
.asm_44bf7
ld a, (SFX_02_57 - SFX_Headers_02) / 3
call PlaySound
- ld hl, $d815
+ ld hl, wd815
bit 7, [hl]
.asm_44c01
ld a, $e
.asm_44c03
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $080c
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
RocketHideout1ScriptPointers: ; 44c0e (11:4c0e)
dw CheckFightingMapTrainers
@@ -51,7 +50,7 @@
RocketHideout1TrainerHeader0: ; 44c22 (11:4c22)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d815 ; flag's byte
+ dw wd815 ; flag's byte
dw RocketHideout1BattleText2 ; 0x4ca1 TextBeforeBattle
dw RocketHideout1AfterBattleTxt2 ; 0x4cab TextAfterBattle
dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
@@ -60,7 +59,7 @@
RocketHideout1TrainerHeader2: ; 44c2e (11:4c2e)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d815 ; flag's byte
+ dw wd815 ; flag's byte
dw RocketHideout1BattleText3 ; 0x4cb0 TextBeforeBattle
dw RocketHideout1AfterBattleTxt3 ; 0x4cba TextAfterBattle
dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
@@ -69,7 +68,7 @@
RocketHideout1TrainerHeader3: ; 44c3a (11:4c3a)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d815 ; flag's byte
+ dw wd815 ; flag's byte
dw RocketHideout1BattleText4 ; 0x4cbf TextBeforeBattle
dw RocketHideout1AfterBattleTxt4 ; 0x4cc9 TextAfterBattle
dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
@@ -78,7 +77,7 @@
RocketHideout1TrainerHeader4: ; 44c46 (11:4c46)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d815 ; flag's byte
+ dw wd815 ; flag's byte
dw RocketHideout1BattleText5 ; 0x4cce TextBeforeBattle
dw RocketHideout1AfterBattleTxt5 ; 0x4cd8 TextAfterBattle
dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
@@ -87,7 +86,7 @@
RocketHideout1TrainerHeader5: ; 44c52 (11:4c52)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d815 ; flag's byte
+ dw wd815 ; flag's byte
dw RocketHideout1BattleText6 ; 0x4cdd TextBeforeBattle
dw RocketHideout1AfterBattleTxt6 ; 0x4ce2 TextAfterBattle
dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
@@ -128,7 +127,7 @@
RocketHideout1EndBattleText6: ; 44c91 (11:4c91)
TX_FAR _RocketHideout1EndBattleText6
db $8
- ld hl, $d815
+ ld hl, wd815
set 5, [hl]
ld hl, RocketHideout1Text_44c9f
ret
--- a/scripts/rockethideout2.asm
+++ b/scripts/rockethideout2.asm
@@ -22,13 +22,13 @@
call Func_3442
cp $ff
jp z, CheckFightingMapTrainers
- ld hl, $d736
+ ld hl, wd736
set 7, [hl]
call Func_3486
ld a, (SFX_02_52 - SFX_Headers_02) / 3
call PlaySound
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $3
ld [W_CURMAPSCRIPT], a
ret
@@ -306,12 +306,12 @@
db $FF
RocketHideout2Script3: ; 44fc2 (11:4fc2)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
jr nz, LoadSpinnerArrowTiles
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
res 7, [hl]
ld a, $0
ld [W_CURMAPSCRIPT], a
@@ -318,7 +318,7 @@
ret
LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7)
- ld a, [$c102]
+ ld a, [wSpriteStateData1 + 2]
srl a
srl a
ld hl, SpinnerPlayerFacingDirections ; $5083
@@ -326,14 +326,14 @@
ld b, $0
add hl, bc
ld a, [hl]
- ld [$c102], a
- ld a, [W_CURMAPTILESET] ; $d367
+ ld [wSpriteStateData1 + 2], a
+ ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
cp FACILITY
- ld hl, SpinnerArrowTilePointers1 ; $5023
+ ld hl, FacilitySpinnerArrows ; $5023
jr z, .asm_44ff6
- ld hl, SpinnerArrowTilePointers2 ; $5053
+ ld hl, GymSpinnerArrows ; $5053
.asm_44ff6
- ld a, [$cd38]
+ ld a, [wcd38]
bit 0, a
jr nz, .asm_45001
ld de, $18
@@ -368,88 +368,42 @@
jr nz, .asm_45006
ret
-SpinnerArrowTilePointers1: ; 45023 (11:5023)
- dw SpinnerArrowAnimTiles ;address from within tileset graphics
- db 1 ;number of tiles to copy?
- db BANK(SpinnerArrowAnimTiles) ;bank of tileset graphics
- dw $9200 ;where to load in VRAM
+spinner: MACRO
+; \1: source
+; \2: offset (BANK() chokes on literals)
+; \3: length
+; \4: dest
+ dw \1 + \2
+ db \3, BANK(\1)
+ dw \4
+ENDM
- dw SpinnerArrowAnimTiles + $10
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $9210
+FacilitySpinnerArrows:
+FACILITY_SPINNER EQU $20 * $10
+vFacilitySpinner EQU vTileset + FACILITY_SPINNER
- dw SpinnerArrowAnimTiles + $20
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $9300
+ spinner SpinnerArrowAnimTiles, $00, 1, vFacilitySpinner
+ spinner SpinnerArrowAnimTiles, $10, 1, vFacilitySpinner + $10
+ spinner SpinnerArrowAnimTiles, $20, 1, vFacilitySpinner + $100
+ spinner SpinnerArrowAnimTiles, $30, 1, vFacilitySpinner + $110
+ spinner Facility_GFX, FACILITY_SPINNER + $000, 1, vFacilitySpinner
+ spinner Facility_GFX, FACILITY_SPINNER + $010, 1, vFacilitySpinner + $10
+ spinner Facility_GFX, FACILITY_SPINNER + $100, 1, vFacilitySpinner + $100
+ spinner Facility_GFX, FACILITY_SPINNER + $110, 1, vFacilitySpinner + $110
- dw SpinnerArrowAnimTiles + $30
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $9310
+GymSpinnerArrows:
+GYM_SPINNER EQU $3c * $10
+vGymSpinner EQU vTileset + GYM_SPINNER
- dw Facility_GFX + $200
- db 1
- db BANK(Facility_GFX)
- dw $9200
+ spinner SpinnerArrowAnimTiles, $10, 1, vGymSpinner
+ spinner SpinnerArrowAnimTiles, $30, 1, vGymSpinner + $10
+ spinner SpinnerArrowAnimTiles, $00, 1, vGymSpinner + $100
+ spinner SpinnerArrowAnimTiles, $20, 1, vGymSpinner + $110
+ spinner Gym_GFX, GYM_SPINNER + $000, 1, vGymSpinner
+ spinner Gym_GFX, GYM_SPINNER + $010, 1, vGymSpinner + $10
+ spinner Gym_GFX, GYM_SPINNER + $100, 1, vGymSpinner + $100
+ spinner Gym_GFX, GYM_SPINNER + $110, 1, vGymSpinner + $110
- dw Facility_GFX + $210
- db 1
- db BANK(Facility_GFX)
- dw $9210
-
- dw Facility_GFX + $300
- db 1
- db BANK(Facility_GFX)
- dw $9300
-
- dw Facility_GFX + $310
- db 1
- db BANK(Facility_GFX)
- dw $9310
-
-SpinnerArrowTilePointers2: ; 45053 (11:5053)
- dw SpinnerArrowAnimTiles + $10
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $93C0
-
- dw SpinnerArrowAnimTiles + $30
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $93D0
-
- dw SpinnerArrowAnimTiles
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $94C0
-
- dw SpinnerArrowAnimTiles + $20
- db 1
- db BANK(SpinnerArrowAnimTiles)
- dw $94D0
-
- dw Gym_GFX + $3C0
- db 1
- db BANK(Facility_GFX)
- dw $93C0
-
- dw Gym_GFX + $3D0
- db 1
- db BANK(Facility_GFX)
- dw $93D0
-
- dw Gym_GFX + $4C0
- db 1
- db BANK(Facility_GFX)
- dw $94C0
-
- dw Gym_GFX + $4D0
- db 1
- db BANK(Facility_GFX)
- dw $94D0
-
SpinnerPlayerFacingDirections: ; 45083 (11:5083)
; This isn't the order of the facing directions. Rather, it's a list of
; the facing directions that come next. For example, when the player is
@@ -474,7 +428,7 @@
RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d817 ; flag's byte
+ dw wd817 ; flag's byte
dw RocketHideout2BattleText2 ; 0x50e8 TextBeforeBattle
dw RocketHideout2AfterBattleTxt2 ; 0x50f2 TextAfterBattle
dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
--- a/scripts/rockethideout3.asm
+++ b/scripts/rockethideout3.asm
@@ -22,13 +22,13 @@
call Func_3442
cp $ff
jp z, CheckFightingMapTrainers
- ld hl, $d736
+ ld hl, wd736
set 7, [hl]
call Func_3486
ld a, (SFX_02_52 - SFX_Headers_02) / 3
call PlaySound
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $3
ld [W_CURMAPSCRIPT], a
ret
@@ -136,12 +136,12 @@
db $FF
RocketHideout3Script3 ; 452e4 (11:452e4)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
jp nz, LoadSpinnerArrowTiles
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
res 7, [hl]
ld a, $0
ld [W_CURMAPSCRIPT], a
@@ -157,7 +157,7 @@
RocketHideout3TrainerHeader0: ; 45302 (11:5302)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d819 ; flag's byte
+ dw wd819 ; flag's byte
dw RocketHideout3BattleText2 ; 0x5325 TextBeforeBattle
dw RocketHideout3AfterBattleTxt2 ; 0x532f TextAfterBattle
dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
@@ -166,7 +166,7 @@
RocketHideout3TrainerHeader2: ; 4530e (11:530e)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d819 ; flag's byte
+ dw wd819 ; flag's byte
dw RocketHideout3BattleTxt ; 0x533e TextBeforeBattle
dw RocketHideout3AfterBattleText3 ; 0x5348 TextAfterBattle
dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
--- a/scripts/rockethideout4.asm
+++ b/scripts/rockethideout4.asm
@@ -9,11 +9,11 @@
ret
RocketHideout4Script_45473: ; 45473 (11:5473)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [$d81b]
+ ld a, [wd81b]
bit 5, a
jr nz, .asm_45496
and $c
@@ -24,19 +24,18 @@
.asm_4548c
ld a, (SFX_02_57 - SFX_Headers_02) / 3
call PlaySound
- ld hl, $d81b
+ ld hl, wd81b
set 5, [hl]
.asm_45496
ld a, $e
.asm_45498
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $050c
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
RocketHideout4Script_454a3: ; 454a3 (11:54a3)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -53,8 +52,8 @@
jp z, RocketHideout4Script_454a3
call UpdateSprites
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d81b
+ ld [wJoyIgnore], a
+ ld hl, wd81b
set 7, [hl]
ld a, $a
ld [H_SPRITEHEIGHT], a
@@ -61,18 +60,16 @@
call DisplayTextID
call GBFadeIn1
ld a, $83
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
ld a, $87
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
call UpdateSprites
call GBFadeOut1
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d126
+ ld [wJoyIgnore], a
+ ld hl, wd126
set 5, [hl]
ld a, $0
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
@@ -95,7 +92,7 @@
RocketHideout4TrainerHeader0: ; 45515 (11:5515)
db $2 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d81b ; flag's byte
+ dw wd81b ; flag's byte
dw RocketHideout4BattleText2 ; 0x5593 TextBeforeBattle
dw RocketHideout4AfterBattleText2 ; 0x559d TextAfterBattle
dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
@@ -104,7 +101,7 @@
RocketHideout4TrainerHeader2: ; 45521 (11:5521)
db $3 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d81b ; flag's byte
+ dw wd81b ; flag's byte
dw RocketHideout4BattleText3 ; 0x55ac TextBeforeBattle
dw RocketHideout4AfterBattleText3 ; 0x55b6 TextAfterBattle
dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
@@ -113,7 +110,7 @@
RocketHideout4TrainerHeader3: ; 4552d (11:552d)
db $4 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d81b ; flag's byte
+ dw wd81b ; flag's byte
dw RocketHideout4BattleText4 ; 0x55c5 TextBeforeBattle
dw RocketHideout4AfterBattleText4 ; 0x55cf TextAfterBattle
dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
@@ -123,12 +120,12 @@
RocketHideout4Text1: ; 4553a (11:553a)
db $08 ; asm
- ld a, [$d81b]
+ ld a, [wd81b]
bit 7, a
jp nz, .asm_545571
ld hl, RocketHideout4Text_4557a
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, RocketHideout4Text_4557f
@@ -135,7 +132,7 @@
ld de, RocketHideout4Text_4557f
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
@@ -216,14 +213,13 @@
db $8
ld hl, RocketHideout4Text_455ec ; $55ec
call PrintText
- ld hl, $d81b
+ ld hl, wd81b
bit 6, [hl]
set 6, [hl]
jr nz, .asm_455e9 ; 0x455dd $a
ld a, $88
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
.asm_455e9
jp TextScriptEnd
--- a/scripts/rockethideoutelevator.asm
+++ b/scripts/rockethideoutelevator.asm
@@ -1,5 +1,5 @@
RocketHideoutElevatorScript: ; 45710 (11:5710)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
push hl
@@ -9,16 +9,16 @@
res 7, [hl]
call nz, RocketHideoutElevatorScript_4575f
xor a
- ld [$cf0c], a
+ ld [wcf0c], a
inc a
- ld [$cc3c], a
+ ld [wcc3c], a
ret
RocketHideoutElevatorScript_4572c: ; 4572c (11:572c)
- ld hl, $d3af
- ld a, [$d73b]
+ ld hl, wd3af
+ ld a, [wd73b]
ld b, a
- ld a, [$d73c]
+ ld a, [wd73c]
ld c, a
call RocketHideoutElevatorScript_4573a
@@ -35,7 +35,7 @@
ld hl, RocketHideoutElavatorFloors ; $5754
call LoadItemList
ld hl, RocketHideoutElevatorWarpMaps ; $5759
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $0006
call CopyData
ret
@@ -68,8 +68,7 @@
jr z, .asm_8d8f0 ; 0x45773
call RocketHideoutElevatorScript_45741
ld hl, RocketHideoutElevatorWarpMaps ; $5759
- ld a, $61
- call Predef
+ predef Func_1c9c6
jr .asm_46c43 ; 0x45780
.asm_8d8f0 ; 0x45782
ld hl, RocketHideoutElevatorText_4578b
--- a/scripts/rocktunnel1.asm
+++ b/scripts/rocktunnel1.asm
@@ -26,7 +26,7 @@
RockTunnel1TrainerHeader1: ; 44505 (11:4505)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText1 ; 0x4588 TextBeforeBattle
dw RockTunnel1AfterBattleText1 ; 0x4592 TextAfterBattle
dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
@@ -35,7 +35,7 @@
RockTunnel1TrainerHeader2: ; 44511 (11:4511)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText2 ; 0x4597 TextBeforeBattle
dw RockTunnel1AfterBattleText2 ; 0x45a1 TextAfterBattle
dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
@@ -44,7 +44,7 @@
RockTunnel1TrainerHeader3: ; 4451d (11:451d)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText3 ; 0x45a6 TextBeforeBattle
dw RockTunnel1AfterBattleText3 ; 0x45b0 TextAfterBattle
dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
@@ -53,7 +53,7 @@
RockTunnel1TrainerHeader4: ; 44529 (11:4529)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText4 ; 0x45b5 TextBeforeBattle
dw RockTunnel1AfterBattleText4 ; 0x45bf TextAfterBattle
dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
@@ -62,7 +62,7 @@
RockTunnel1TrainerHeader5: ; 44535 (11:4535)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText5 ; 0x45c4 TextBeforeBattle
dw RockTunnel1AfterBattleText5 ; 0x45ce TextAfterBattle
dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
@@ -71,7 +71,7 @@
RockTunnel1TrainerHeader6: ; 44541 (11:4541)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText6 ; 0x45d3 TextBeforeBattle
dw RockTunnel1AfterBattleText6 ; 0x45dd TextAfterBattle
dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
@@ -80,7 +80,7 @@
RockTunnel1TrainerHeader7: ; 4454d (11:454d)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d2 ; flag's byte
+ dw wd7d2 ; flag's byte
dw RockTunnel1BattleText7 ; 0x45e2 TextBeforeBattle
dw RockTunnel1AfterBattleText7 ; 0x45ec TextAfterBattle
dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
--- a/scripts/rocktunnel2.asm
+++ b/scripts/rocktunnel2.asm
@@ -26,7 +26,7 @@
RockTunnel2TrainerHeader0: ; 46014 (11:6014)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText2 ; 0x60c5 TextBeforeBattle
dw RockTunnel2AfterBattleText2 ; 0x60cf TextAfterBattle
dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
@@ -35,7 +35,7 @@
RockTunnel2TrainerHeader2: ; 46020 (11:6020)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText3 ; 0x60d4 TextBeforeBattle
dw RockTunnel2AfterBattleText3 ; 0x60de TextAfterBattle
dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
@@ -44,7 +44,7 @@
RockTunnel2TrainerHeader3: ; 4602c (11:602c)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText4 ; 0x60e3 TextBeforeBattle
dw RockTunnel2AfterBattleText4 ; 0x60ed TextAfterBattle
dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
@@ -53,7 +53,7 @@
RockTunnel2TrainerHeader4: ; 46038 (11:6038)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText5 ; 0x60f2 TextBeforeBattle
dw RockTunnel2AfterBattleText5 ; 0x60fc TextAfterBattle
dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
@@ -62,7 +62,7 @@
RockTunnel2TrainerHeader5: ; 46044 (11:6044)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText6 ; 0x6101 TextBeforeBattle
dw RockTunnel2AfterBattleText6 ; 0x610b TextAfterBattle
dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
@@ -71,7 +71,7 @@
RockTunnel2TrainerHeader6: ; 46050 (11:6050)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText7 ; 0x6110 TextBeforeBattle
dw RockTunnel2AfterBattleText7 ; 0x611a TextAfterBattle
dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
@@ -80,7 +80,7 @@
RockTunnel2TrainerHeader7: ; 4605c (11:605c)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText8 ; 0x611f TextBeforeBattle
dw RockTunnel2AfterBattleText8 ; 0x6129 TextAfterBattle
dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
@@ -89,7 +89,7 @@
RockTunnel2TrainerHeader8: ; 46068 (11:6068)
db $8 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d87d ; flag's byte
+ dw wd87d ; flag's byte
dw RockTunnel2BattleText9 ; 0x612e TextBeforeBattle
dw RockTunnel2AfterBattleText9 ; 0x6138 TextAfterBattle
dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
--- a/scripts/route1.asm
+++ b/scripts/route1.asm
@@ -8,7 +8,7 @@
Route1Text1: ; 1cab8 (7:4ab8)
db $08 ; asm
- ld hl, $d7bf
+ ld hl, wd7bf
bit 0, [hl]
set 0, [hl]
jr nz, .asm_02840 ; 0x1cac0
--- a/scripts/route10.asm
+++ b/scripts/route10.asm
@@ -28,7 +28,7 @@
Route10TrainerHeader0: ; 59363 (16:5363)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d1 ; flag's byte
+ dw wd7d1 ; flag's byte
dw Route10BattleText1 ; 0x53b6 TextBeforeBattle
dw Route10AfterBattleText1 ; 0x53c0 TextAfterBattle
dw Route10EndBattleText1 ; 0x53bb TextEndBattle
@@ -37,7 +37,7 @@
Route10TrainerHeader1: ; 5936f (16:536f)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d1 ; flag's byte
+ dw wd7d1 ; flag's byte
dw Route10BattleText2 ; 0x53cf TextBeforeBattle
dw Route10AfterBattleText2 ; 0x53d9 TextAfterBattle
dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
@@ -46,7 +46,7 @@
Route10TrainerHeader2: ; 5937b (16:537b)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d1 ; flag's byte
+ dw wd7d1 ; flag's byte
dw Route10BattleText3 ; 0x53e8 TextBeforeBattle
dw Route10AfterBattleText3 ; 0x53f2 TextAfterBattle
dw Route10EndBattleText3 ; 0x53ed TextEndBattle
@@ -55,7 +55,7 @@
Route10TrainerHeader3: ; 59387 (16:5387)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d1 ; flag's byte
+ dw wd7d1 ; flag's byte
dw Route10BattleText4 ; 0x5401 TextBeforeBattle
dw Route10AfterBattleText4 ; 0x540b TextAfterBattle
dw Route10EndBattleText4 ; 0x5406 TextEndBattle
@@ -64,7 +64,7 @@
Route10TrainerHeader4: ; 59393 (16:5393)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d1 ; flag's byte
+ dw wd7d1 ; flag's byte
dw Route10BattleText5 ; 0x541a TextBeforeBattle
dw Route10AfterBattleText5 ; 0x5424 TextAfterBattle
dw Route10EndBattleText5 ; 0x541f TextEndBattle
@@ -73,7 +73,7 @@
Route10TrainerHeader5: ; 5939f (16:539f)
db $6 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d1 ; flag's byte
+ dw wd7d1 ; flag's byte
dw Route10BattleText6 ; 0x5433 TextBeforeBattle
dw Route10AfterBattleText6 ; 0x543d TextAfterBattle
dw Route10EndBattleText6 ; 0x5438 TextEndBattle
--- a/scripts/route11.asm
+++ b/scripts/route11.asm
@@ -29,7 +29,7 @@
Route11TrainerHeader0: ; 5947b (16:547b)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText1 ; 0x54fe TextBeforeBattle
dw Route11AfterBattleText1 ; 0x5508 TextAfterBattle
dw Route11EndBattleText1 ; 0x5503 TextEndBattle
@@ -38,7 +38,7 @@
Route11TrainerHeader1: ; 59487 (16:5487)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText2 ; 0x5517 TextBeforeBattle
dw Route11AfterBattleText2 ; 0x5521 TextAfterBattle
dw Route11EndBattleText2 ; 0x551c TextEndBattle
@@ -47,7 +47,7 @@
Route11TrainerHeader2: ; 59493 (16:5493)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText3 ; 0x5530 TextBeforeBattle
dw Route11AfterBattleText3 ; 0x553a TextAfterBattle
dw Route11EndBattleText3 ; 0x5535 TextEndBattle
@@ -56,7 +56,7 @@
Route11TrainerHeader3: ; 5949f (16:549f)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText4 ; 0x5549 TextBeforeBattle
dw Route11AfterBattleText4 ; 0x5553 TextAfterBattle
dw Route11EndBattleText4 ; 0x554e TextEndBattle
@@ -65,7 +65,7 @@
Route11TrainerHeader4: ; 594ab (16:54ab)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText5 ; 0x5562 TextBeforeBattle
dw Route11AfterBattleText5 ; 0x556c TextAfterBattle
dw Route11EndBattleText5 ; 0x5567 TextEndBattle
@@ -74,7 +74,7 @@
Route11TrainerHeader5: ; 594b7 (16:54b7)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText6 ; 0x557b TextBeforeBattle
dw Route11AfterBattleText6 ; 0x5585 TextAfterBattle
dw Route11EndBattleText6 ; 0x5580 TextEndBattle
@@ -83,7 +83,7 @@
Route11TrainerHeader6: ; 594c3 (16:54c3)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText7 ; 0x5594 TextBeforeBattle
dw Route11AfterBattleText7 ; 0x559e TextAfterBattle
dw Route11EndBattleText7 ; 0x5599 TextEndBattle
@@ -92,7 +92,7 @@
Route11TrainerHeader7: ; 594cf (16:54cf)
db $8 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText8 ; 0x55ad TextBeforeBattle
dw Route11AfterBattleText8 ; 0x55b7 TextAfterBattle
dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
@@ -101,7 +101,7 @@
Route11TrainerHeader8: ; 594db (16:54db)
db $9 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText9 ; 0x55c6 TextBeforeBattle
dw Route11AfterBattleText9 ; 0x55d0 TextAfterBattle
dw Route11EndBattleText9 ; 0x55cb TextEndBattle
@@ -110,7 +110,7 @@
Route11TrainerHeader9: ; 594e7 (16:54e7)
db $a ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d5 ; flag's byte
+ dw wd7d5 ; flag's byte
dw Route11BattleText10 ; 0x55df TextBeforeBattle
dw Route11AfterBattleText10 ; 0x55e9 TextAfterBattle
dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
--- a/scripts/route11gateupstairs.asm
+++ b/scripts/route11gateupstairs.asm
@@ -11,14 +11,13 @@
db $08 ; asm
xor a
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
asm_49469: ; 49469 (12:5469)
jp TextScriptEnd
Route11GateUpstairsText2: ; 4946c (12:546c)
db $8
- ld a, [$d7d6]
+ ld a, [wd7d6]
add a
jr c, .asm_4949b ; 0x49471 $28
ld a, 30 ; pokemon needed
@@ -25,19 +24,18 @@
ld [$ffdb], a
ld a, ITEMFINDER ; oak's aide reward
ld [$ffdc], a
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
ld h, d
ld l, e
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $000d
call CopyData
- ld a, $62
- call Predef ; call oak's aide script
+ predef OaksAideScript ; call oak's aide script
ld a, [$ffdb]
dec a
jr nz, .asm_494a1 ; 0x49494 $b
- ld hl, $d7d6
+ ld hl, wd7d6
set 7, [hl]
.asm_4949b
ld hl, Route11GateUpstairsText_494a3
@@ -51,10 +49,10 @@
Route11GateUpstairsText3: ; 494a8 (12:54a8)
db $08 ; asm
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jp nz, Route12GateUpstairsScript_495c9
- ld a, [$d7d8]
+ ld a, [wd7d8]
bit 7, a ; fought snorlax?
ld hl, BinocularsSnorlaxText
jr z, .print
--- a/scripts/route12.asm
+++ b/scripts/route12.asm
@@ -9,7 +9,7 @@
Route12Script_59606: ; 59606 (16:5606)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE12CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -21,7 +21,7 @@
dw Route12Script3
Route12Script0: ; 59619 (16:5619)
- ld hl, $d7d8
+ ld hl, wd7d8
bit 7, [hl]
jp nz, CheckFightingMapTrainers
bit 6, [hl]
@@ -31,13 +31,12 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, SNORLAX
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
ld a, 30
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, $1d
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
ld a, $3
ld [W_ROUTE12CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -44,11 +43,11 @@
ret
Route12Script3: ; 5964c (16:564c)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jr z, Route12Script_59606
call UpdateSprites
- ld a, [$cf0b]
+ ld a, [wcf0b]
cp $2
jr z, .asm_59664
ld a, $e
@@ -55,7 +54,7 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
.asm_59664
- ld hl, $d7d8
+ ld hl, wd7d8
set 7, [hl]
call Delay3
ld a, $0
@@ -83,7 +82,7 @@
Route12TrainerHeader0: ; 59691 (16:5691)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText1 ; 0x56ff TextBeforeBattle
dw Route12AfterBattleText1 ; 0x5709 TextAfterBattle
dw Route12EndBattleText1 ; 0x5704 TextEndBattle
@@ -92,7 +91,7 @@
Route12TrainerHeader1: ; 5969d (16:569d)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText2 ; 0x5718 TextBeforeBattle
dw Route12AfterBattleText2 ; 0x5722 TextAfterBattle
dw Route12EndBattleText2 ; 0x571d TextEndBattle
@@ -101,7 +100,7 @@
Route12TrainerHeader2: ; 596a9 (16:56a9)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText3 ; 0x5731 TextBeforeBattle
dw Route12AfterBattleText3 ; 0x573b TextAfterBattle
dw Route12EndBattleText3 ; 0x5736 TextEndBattle
@@ -110,7 +109,7 @@
Route12TrainerHeader3: ; 596b5 (16:56b5)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText4 ; 0x574a TextBeforeBattle
dw Route12AfterBattleText4 ; 0x5754 TextAfterBattle
dw Route12EndBattleText4 ; 0x574f TextEndBattle
@@ -119,7 +118,7 @@
Route12TrainerHeader4: ; 596c1 (16:56c1)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText5 ; 0x5763 TextBeforeBattle
dw Route12AfterBattleText5 ; 0x576d TextAfterBattle
dw Route12EndBattleText5 ; 0x5768 TextEndBattle
@@ -128,7 +127,7 @@
Route12TrainerHeader5: ; 596cd (16:56cd)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText6 ; 0x577c TextBeforeBattle
dw Route12AfterBattleText6 ; 0x5786 TextAfterBattle
dw Route12EndBattleText6 ; 0x5781 TextEndBattle
@@ -137,7 +136,7 @@
Route12TrainerHeader6: ; 596d9 (16:56d9)
db $8 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7d7 ; flag's byte
+ dw wd7d7 ; flag's byte
dw Route12BattleText7 ; 0x5795 TextBeforeBattle
dw Route12AfterBattleText7 ; 0x579f TextAfterBattle
dw Route12EndBattleText7 ; 0x579a TextEndBattle
--- a/scripts/route12gateupstairs.asm
+++ b/scripts/route12gateupstairs.asm
@@ -8,7 +8,7 @@
Route12GateUpstairsText1: ; 49569 (12:5569)
db $08 ; asm
- ld a, [$d7d7]
+ ld a, [wd7d7]
rrca
jr c, .asm_0ad3c ; 0x4956e
ld hl, TM39PreReceiveText
@@ -18,7 +18,7 @@
jr nc, .BagFull
ld hl, ReceivedTM39Text
call PrintText
- ld hl, $d7d7
+ ld hl, wd7d7
set 0, [hl]
jr .asm_4ba56 ; 0x49589
.BagFull
@@ -66,7 +66,7 @@
db "@"
Route12GateUpstairsScript_495c9: ; 495c9 (12:55c9)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $4
jr z, .asm_495d4 ; 0x495ce $4
ld a, $1
@@ -75,5 +75,5 @@
call PrintText
xor a
.asm_495d8
- ld [$cc3c], a
+ ld [wcc3c], a
jp TextScriptEnd
--- a/scripts/route12house.asm
+++ b/scripts/route12house.asm
@@ -6,19 +6,19 @@
Route12HouseText1: ; 56484 (15:6484)
db $08 ; asm
- ld a, [$d728]
+ ld a, [wd728]
bit 5, a
jr nz, .asm_b4cad
ld hl, Route12HouseText_564c0
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_a2d76
ld bc, (SUPER_ROD << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d728
+ ld hl, wd728
set 5, [hl]
ld hl, Route12HouseText_564c5
jr .asm_df984
--- a/scripts/route13.asm
+++ b/scripts/route13.asm
@@ -31,7 +31,7 @@
Route13TrainerHeader0: ; 55851 (15:5851)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText2 ; 0x58d4 TextBeforeBattle
dw Route13AfterBattleText2 ; 0x58de TextAfterBattle
dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
@@ -40,7 +40,7 @@
Route13TrainerHeader2: ; 5585d (15:585d)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText3 ; 0x58ed TextBeforeBattle
dw Route13AfterBattleText3 ; 0x58f7 TextAfterBattle
dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
@@ -49,7 +49,7 @@
Route13TrainerHeader3: ; 55869 (15:5869)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText4 ; 0x5906 TextBeforeBattle
dw Route13AfterBattleText4 ; 0x5910 TextAfterBattle
dw Route13EndBattleText4 ; 0x590b TextEndBattle
@@ -58,7 +58,7 @@
Route13TrainerHeader4: ; 55875 (15:5875)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText5 ; 0x591f TextBeforeBattle
dw Route13AfterBattleText5 ; 0x5929 TextAfterBattle
dw Route13EndBattleText5 ; 0x5924 TextEndBattle
@@ -67,7 +67,7 @@
Route13TrainerHeader5: ; 55881 (15:5881)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText6 ; 0x5938 TextBeforeBattle
dw Route13AfterBattleText6 ; 0x5942 TextAfterBattle
dw Route13EndBattleText6 ; 0x593d TextEndBattle
@@ -76,7 +76,7 @@
Route13TrainerHeader6: ; 5588d (15:588d)
db $6 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText7 ; 0x5951 TextBeforeBattle
dw Route13AfterBattleText7 ; 0x595b TextAfterBattle
dw Route13EndBattleText7 ; 0x5956 TextEndBattle
@@ -85,7 +85,7 @@
Route13TrainerHeader7: ; 55899 (15:5899)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText8 ; 0x596a TextBeforeBattle
dw Route13AfterBattleText8 ; 0x5974 TextAfterBattle
dw Route13EndBattleText8 ; 0x596f TextEndBattle
@@ -94,7 +94,7 @@
Route13TrainerHeader8: ; 558a5 (15:58a5)
db $8 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText9 ; 0x5983 TextBeforeBattle
dw Route13AfterBattleText9 ; 0x598d TextAfterBattle
dw Route13EndBattleText9 ; 0x5988 TextEndBattle
@@ -103,7 +103,7 @@
Route13TrainerHeader9: ; 558b1 (15:58b1)
db $9 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText10 ; 0x599c TextBeforeBattle
dw Route13AfterBattleText10 ; 0x59a6 TextAfterBattle
dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
@@ -112,7 +112,7 @@
Route13TrainerHeader10: ; 558bd (15:58bd)
db $a ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7d9 ; flag's byte
+ dw wd7d9 ; flag's byte
dw Route13BattleText11 ; 0x59b5 TextBeforeBattle
dw Route13AfterBattleText11 ; 0x59bf TextAfterBattle
dw Route13EndBattleText11 ; 0x59ba TextEndBattle
--- a/scripts/route14.asm
+++ b/scripts/route14.asm
@@ -29,7 +29,7 @@
Route14TrainerHeader0: ; 55a02 (15:5a02)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText1 ; 0x5a85 TextBeforeBattle
dw Route14AfterBattleText1 ; 0x5a8f TextAfterBattle
dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
@@ -38,7 +38,7 @@
Route14TrainerHeader1: ; 55a0e (15:5a0e)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText2 ; 0x5a9e TextBeforeBattle
dw Route14AfterBattleText2 ; 0x5aa8 TextAfterBattle
dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
@@ -47,7 +47,7 @@
Route14TrainerHeader2: ; 55a1a (15:5a1a)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText3 ; 0x5ab7 TextBeforeBattle
dw Route14AfterBattleText3 ; 0x5ac1 TextAfterBattle
dw Route14EndBattleText3 ; 0x5abc TextEndBattle
@@ -56,7 +56,7 @@
Route14TrainerHeader3: ; 55a26 (15:5a26)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText4 ; 0x5ad0 TextBeforeBattle
dw Route14AfterBattleText4 ; 0x5ada TextAfterBattle
dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
@@ -65,7 +65,7 @@
Route14TrainerHeader4: ; 55a32 (15:5a32)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText5 ; 0x5ae9 TextBeforeBattle
dw Route14AfterBattleText5 ; 0x5af3 TextAfterBattle
dw Route14EndBattleText5 ; 0x5aee TextEndBattle
@@ -74,7 +74,7 @@
Route14TrainerHeader5: ; 55a3e (15:5a3e)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText6 ; 0x5b02 TextBeforeBattle
dw Route14AfterBattleText6 ; 0x5b0c TextAfterBattle
dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
@@ -83,7 +83,7 @@
Route14TrainerHeader6: ; 55a4a (15:5a4a)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText7 ; 0x5b1b TextBeforeBattle
dw Route14AfterBattleText7 ; 0x5b25 TextAfterBattle
dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
@@ -92,7 +92,7 @@
Route14TrainerHeader7: ; 55a56 (15:5a56)
db $8 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText8 ; 0x5b34 TextBeforeBattle
dw Route14AfterBattleText8 ; 0x5b3e TextAfterBattle
dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
@@ -101,7 +101,7 @@
Route14TrainerHeader8: ; 55a62 (15:5a62)
db $9 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText9 ; 0x5b4d TextBeforeBattle
dw Route14AfterBattleText9 ; 0x5b57 TextAfterBattle
dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
@@ -110,7 +110,7 @@
Route14TrainerHeader9: ; 55a6e (15:5a6e)
db $a ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7db ; flag's byte
+ dw wd7db ; flag's byte
dw Route14BattleText10 ; 0x5b66 TextBeforeBattle
dw Route14AfterBattleText10 ; 0x5b70 TextAfterBattle
dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
--- a/scripts/route15.asm
+++ b/scripts/route15.asm
@@ -30,7 +30,7 @@
Route15TrainerHeader0: ; 597df (16:57df)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText1 ; 0x5898 TextBeforeBattle
dw Route15AfterBattleText1 ; 0x58a2 TextAfterBattle
dw Route15EndBattleText1 ; 0x589d TextEndBattle
@@ -39,7 +39,7 @@
Route15TrainerHeader1: ; 597eb (16:57eb)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText2 ; 0x58a7 TextBeforeBattle
dw Route15AfterBattleText2 ; 0x58b1 TextAfterBattle
dw Route15EndBattleText2 ; 0x58ac TextEndBattle
@@ -48,7 +48,7 @@
Route15TrainerHeader2: ; 597f7 (16:57f7)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText3 ; 0x58b6 TextBeforeBattle
dw Route15AfterBattleText3 ; 0x58c0 TextAfterBattle
dw Route15EndBattleText3 ; 0x58bb TextEndBattle
@@ -57,7 +57,7 @@
Route15TrainerHeader3: ; 59803 (16:5803)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText4 ; 0x58c5 TextBeforeBattle
dw Route15AfterBattleText4 ; 0x58cf TextAfterBattle
dw Route15EndBattleText4 ; 0x58ca TextEndBattle
@@ -66,7 +66,7 @@
Route15TrainerHeader4: ; 5980f (16:580f)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText5 ; 0x58d4 TextBeforeBattle
dw Route15AfterBattleText5 ; 0x58de TextAfterBattle
dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
@@ -75,7 +75,7 @@
Route15TrainerHeader5: ; 5981b (16:581b)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText6 ; 0x58e3 TextBeforeBattle
dw Route15AfterBattleText6 ; 0x58ed TextAfterBattle
dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
@@ -84,7 +84,7 @@
Route15TrainerHeader6: ; 59827 (16:5827)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText7 ; 0x58f2 TextBeforeBattle
dw Route15AfterBattleText7 ; 0x58fc TextAfterBattle
dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
@@ -93,7 +93,7 @@
Route15TrainerHeader7: ; 59833 (16:5833)
db $8 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText8 ; 0x5901 TextBeforeBattle
dw Route15AfterBattleText8 ; 0x590b TextAfterBattle
dw Route15EndBattleText8 ; 0x5906 TextEndBattle
@@ -102,7 +102,7 @@
Route15TrainerHeader8: ; 5983f (16:583f)
db $9 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText9 ; 0x5910 TextBeforeBattle
dw Route15AfterBattleText9 ; 0x591a TextAfterBattle
dw Route15EndBattleText9 ; 0x5915 TextEndBattle
@@ -111,7 +111,7 @@
Route15TrainerHeader9: ; 5984b (16:584b)
db $a ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7dd ; flag's byte
+ dw wd7dd ; flag's byte
dw Route15BattleText10 ; 0x591f TextBeforeBattle
dw Route15AfterBattleText10 ; 0x5929 TextAfterBattle
dw Route15EndBattleText10 ; 0x5924 TextEndBattle
--- a/scripts/route15gateupstairs.asm
+++ b/scripts/route15gateupstairs.asm
@@ -7,7 +7,7 @@
Route15GateUpstairsText1: ; 49651 (12:5651)
db $8
- ld a, [$d7dd]
+ ld a, [wd7dd]
bit 0, a
jr nz, .asm_49683 ; 0x49657 $2a
ld a, 50 ; pokemon needed
@@ -14,18 +14,17 @@
ld [$ffdb], a
ld a, EXP__ALL ; oak's aide reward
ld [$ffdc], a
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName
- ld hl, $cd6d
- ld de, $cc5b
+ ld hl, wcd6d
+ ld de, wcc5b
ld bc, $000d
call CopyData
- ld a, $62
- call Predef ; call oak's aide script
+ predef OaksAideScript ; call oak's aide script
ld a, [$ffdb]
cp $1
jr nz, .asm_49689 ; 0x4967c $b
- ld hl, $d7dd
+ ld hl, wd7dd
set 0, [hl]
.asm_49683
ld hl, Route15GateUpstairsText_4968c
--- a/scripts/route16.asm
+++ b/scripts/route16.asm
@@ -7,9 +7,9 @@
ld [W_ROUTE16CURSCRIPT], a
ret
-Func_59946: ; 59946 (16:5946)
+Route16Script_59946: ; 59946 (16:5946)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE16CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -21,7 +21,7 @@
dw Route16Script3
Route16Script0: ; 59959 (16:5959)
- ld hl, $d7e0
+ ld hl, wd7e0
bit 1, [hl]
jp nz, CheckFightingMapTrainers
bit 0, [hl]
@@ -31,13 +31,12 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, SNORLAX
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
ld a, 30
- ld [W_CURENEMYLVL], a ; $d127
+ ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
ld a, $21
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
call UpdateSprites
ld a, $3
ld [W_ROUTE16CURSCRIPT], a
@@ -45,11 +44,11 @@
ret
Route16Script3: ; 5998f (16:598f)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
- jp z, Func_59946
+ jp z, Route16Script_59946
call UpdateSprites
- ld a, [$cf0b]
+ ld a, [wcf0b]
cp $2
jr z, .asm_599a8
ld a, $b
@@ -56,7 +55,7 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
.asm_599a8
- ld hl, $d7e0
+ ld hl, wd7e0
set 1, [hl]
call Delay3
ld a, $0
@@ -81,7 +80,7 @@
Route16TrainerHeader0: ; 599cf (16:59cf)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7df ; flag's byte
+ dw wd7df ; flag's byte
dw Route16BattleText1 ; 0x5a22 TextBeforeBattle
dw Route16AfterBattleText1 ; 0x5a2c TextAfterBattle
dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
@@ -90,7 +89,7 @@
Route16TrainerHeader1: ; 599db (16:59db)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7df ; flag's byte
+ dw wd7df ; flag's byte
dw Route16BattleText2 ; 0x5a3b TextBeforeBattle
dw Route16AfterBattleText2 ; 0x5a45 TextAfterBattle
dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
@@ -99,7 +98,7 @@
Route16TrainerHeader2: ; 599e7 (16:59e7)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7df ; flag's byte
+ dw wd7df ; flag's byte
dw Route16BattleText3 ; 0x5a54 TextBeforeBattle
dw Route16AfterBattleText3 ; 0x5a5e TextAfterBattle
dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
@@ -108,7 +107,7 @@
Route16TrainerHeader3: ; 599f3 (16:59f3)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7df ; flag's byte
+ dw wd7df ; flag's byte
dw Route16BattleText4 ; 0x5a6d TextBeforeBattle
dw Route16AfterBattleText4 ; 0x5a77 TextAfterBattle
dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
@@ -117,7 +116,7 @@
Route16TrainerHeader4: ; 599ff (16:59ff)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7df ; flag's byte
+ dw wd7df ; flag's byte
dw Route16BattleText5 ; 0x5a86 TextBeforeBattle
dw Route16AfterBattleText5 ; 0x5a90 TextAfterBattle
dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
@@ -126,7 +125,7 @@
Route16TrainerHeader5: ; 59a0b (16:5a0b)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7df ; flag's byte
+ dw wd7df ; flag's byte
dw Route16BattleText6 ; 0x5a9f TextBeforeBattle
dw Route16AfterBattleText6 ; 0x5aa9 TextAfterBattle
dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
--- a/scripts/route16gate.asm
+++ b/scripts/route16gate.asm
@@ -1,5 +1,5 @@
Route16GateScript: ; 496be (12:56be)
- ld hl, $d732
+ ld hl, wd732
res 5, [hl]
call EnableAutoTextBoxDrawing
ld a, [W_ROUTE16GATECURSCRIPT]
@@ -13,7 +13,7 @@
dw Route16GateScript3
Route16GateScript0: ; 496d7 (12:56d7)
- call Func_49755
+ call Route16GateScript_49755
ret nz
ld hl, CoordsData_49714
call ArePlayerCoordsInArray
@@ -22,17 +22,17 @@
ld [$ff8c], a
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [$cd3d]
+ ld [hJoyHeld], a
+ ld a, [wWhichTrade]
cp $1
jr z, .asm_4970e ; 0x496f1 $1b
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
dec a
- ld [$cd38], a
+ ld [wcd38], a
ld b, $0
ld c, a
ld a, $40
- ld hl, $ccd3
+ ld hl, wccd3
call FillMemory
call Func_3486
ld a, $1
@@ -51,11 +51,11 @@
db $FF
Route16GateScript1: ; 4971d (12:571d)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
Route16GateScript2: ; 49727 (12:5727)
ld a, $1
@@ -62,9 +62,9 @@
ld [H_SPRITEHEIGHT], a
call DisplayTextID
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $10
- ld [$ccd3], a
+ ld [wccd3], a
call Func_3486
ld a, $3
ld [W_ROUTE16GATECURSCRIPT], a
@@ -71,18 +71,18 @@
ret
Route16GateScript3: ; 49741 (12:5741)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d730
+ ld [wJoyIgnore], a
+ ld hl, wd730
res 7, [hl]
ld a, $0
ld [W_ROUTE16GATECURSCRIPT], a
ret
-Func_49755: ; 49755 (12:5755)
+Route16GateScript_49755: ; 49755 (12:5755)
ld b, BICYCLE
jp IsItemInBag
@@ -93,7 +93,7 @@
Route16GateText1: ; 49760 (12:5760)
db $08 ; asm
- call Func_49755
+ call Route16GateScript_49755
jr z, .asm_0bdf3 ; 0x49764
ld hl, Route16GateText_4977c
call PrintText
--- a/scripts/route16house.asm
+++ b/scripts/route16house.asm
@@ -7,7 +7,7 @@
Route16HouseText1: ; 1e5ff (7:65ff)
db $08 ; asm
- ld a, [$d7e0]
+ ld a, [wd7e0]
bit 6, a
ld hl, HM02ExplanationText
jr nz, .asm_13616 ; 0x1e608
@@ -16,7 +16,7 @@
ld bc, (HM_02 << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d7e0
+ ld hl, wd7e0
set 6, [hl]
ld hl, ReceivedHM02Text
jr .asm_13616 ; 0x1e620
--- a/scripts/route17.asm
+++ b/scripts/route17.asm
@@ -34,7 +34,7 @@
Route17TrainerHeader0: ; 55bb3 (15:5bb3)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText1 ; 0x5c36 TextBeforeBattle
dw Route17AfterBattleText1 ; 0x5c40 TextAfterBattle
dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
@@ -43,7 +43,7 @@
Route17TrainerHeader1: ; 55bbf (15:5bbf)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText2 ; 0x5c4f TextBeforeBattle
dw Route17AfterBattleText2 ; 0x5c59 TextAfterBattle
dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
@@ -52,7 +52,7 @@
Route17TrainerHeader2: ; 55bcb (15:5bcb)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText3 ; 0x5c68 TextBeforeBattle
dw Route17AfterBattleText3 ; 0x5c72 TextAfterBattle
dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
@@ -61,7 +61,7 @@
Route17TrainerHeader3: ; 55bd7 (15:5bd7)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText4 ; 0x5c81 TextBeforeBattle
dw Route17AfterBattleText4 ; 0x5c8b TextAfterBattle
dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
@@ -70,7 +70,7 @@
Route17TrainerHeader4: ; 55be3 (15:5be3)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText5 ; 0x5c9a TextBeforeBattle
dw Route17AfterBattleText5 ; 0x5ca4 TextAfterBattle
dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
@@ -79,7 +79,7 @@
Route17TrainerHeader5: ; 55bef (15:5bef)
db $6 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText6 ; 0x5cb3 TextBeforeBattle
dw Route17AfterBattleText6 ; 0x5cbd TextAfterBattle
dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
@@ -88,7 +88,7 @@
Route17TrainerHeader6: ; 55bfb (15:5bfb)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText7 ; 0x5ccc TextBeforeBattle
dw Route17AfterBattleText7 ; 0x5cd6 TextAfterBattle
dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
@@ -97,7 +97,7 @@
Route17TrainerHeader7: ; 55c07 (15:5c07)
db $8 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText8 ; 0x5ce5 TextBeforeBattle
dw Route17AfterBattleText8 ; 0x5cef TextAfterBattle
dw Route17EndBattleText8 ; 0x5cea TextEndBattle
@@ -106,7 +106,7 @@
Route17TrainerHeader8: ; 55c13 (15:5c13)
db $9 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText9 ; 0x5cfe TextBeforeBattle
dw Route17AfterBattleText9 ; 0x5d08 TextAfterBattle
dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
@@ -115,7 +115,7 @@
Route17TrainerHeader9: ; 55c1f (15:5c1f)
db $a ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e1 ; flag's byte
+ dw wd7e1 ; flag's byte
dw Route17BattleText10 ; 0x5d17 TextBeforeBattle
dw Route17AfterBattleText10 ; 0x5d21 TextAfterBattle
dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
--- a/scripts/route18.asm
+++ b/scripts/route18.asm
@@ -23,7 +23,7 @@
Route18TrainerHeader0: ; 59aea (16:5aea)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e3 ; flag's byte
+ dw wd7e3 ; flag's byte
dw Route18BattleText1 ; 0x5b19 TextBeforeBattle
dw Route18AfterBattleText1 ; 0x5b23 TextAfterBattle
dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
@@ -32,7 +32,7 @@
Route18TrainerHeader1: ; 59af6 (16:5af6)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e3 ; flag's byte
+ dw wd7e3 ; flag's byte
dw Route18BattleText2 ; 0x5b32 TextBeforeBattle
dw Route18AfterBattleText2 ; 0x5b3c TextAfterBattle
dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
@@ -41,7 +41,7 @@
Route18TrainerHeader2: ; 59b02 (16:5b02)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e3 ; flag's byte
+ dw wd7e3 ; flag's byte
dw Route18BattleText3 ; 0x5b4b TextBeforeBattle
dw Route18AfterBattleText3 ; 0x5b55 TextAfterBattle
dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
--- a/scripts/route18gate.asm
+++ b/scripts/route18gate.asm
@@ -1,5 +1,5 @@
Route18GateScript: ; 49876 (12:5876)
- ld hl, $d732
+ ld hl, wd732
res 5, [hl]
call EnableAutoTextBoxDrawing
ld a, [W_ROUTE18GATECURSCRIPT]
@@ -13,7 +13,7 @@
dw Route18GateScript3
Route18GateScript0: ; 4988f (12:588f)
- call Func_49755
+ call Route16GateScript_49755
ret nz
ld hl, CoordsData_498cc
call ArePlayerCoordsInArray
@@ -22,17 +22,17 @@
ld [$ff8c], a
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [$cd3d]
+ ld [hJoyHeld], a
+ ld a, [wWhichTrade]
cp $1
jr z, .asm_498c6 ; 0x498a9 $1b
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
dec a
- ld [$cd38], a
+ ld [wcd38], a
ld b, $0
ld c, a
ld a, $40
- ld hl, $ccd3
+ ld hl, wccd3
call FillMemory
call Func_3486
ld a, $1
@@ -51,11 +51,11 @@
db $FF
Route18GateScript1: ; 498d5 (12:58d5)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
Route18GateScript2: ; 498df (12:58df)
ld a, $1
@@ -62,9 +62,9 @@
ld [H_SPRITEHEIGHT], a
call DisplayTextID
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $10
- ld [$ccd3], a
+ ld [wccd3], a
call Func_3486
ld a, $3
ld [W_ROUTE18GATECURSCRIPT], a
@@ -71,12 +71,12 @@
ret
Route18GateScript3: ; 498f9 (12:58f9)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d730
+ ld [wJoyIgnore], a
+ ld hl, wd730
res 7, [hl]
ld a, $0
ld [W_ROUTE18GATECURSCRIPT], a
@@ -88,7 +88,7 @@
Route18GateText1: ; 49911 (12:5911)
db $08 ; asm
- call Func_49755
+ call Route16GateScript_49755
jr z, .asm_3c84d ; 0x49915
ld hl, Route18GateText_4992d
call PrintText
--- a/scripts/route18gateupstairs.asm
+++ b/scripts/route18gateupstairs.asm
@@ -10,8 +10,7 @@
db $08 ; asm
ld a, $5
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
jp TextScriptEnd
Route18GateUpstairsText2: ; 4998c (12:598c)
--- a/scripts/route19.asm
+++ b/scripts/route19.asm
@@ -29,7 +29,7 @@
Route19TrainerHeader0: ; 55d73 (15:5d73)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText1 ; 0x5e50 TextBeforeBattle
dw Route19AfterBattleText1 ; 0x5e5a TextAfterBattle
dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
@@ -38,7 +38,7 @@
Route19TrainerHeader1: ; 55d7f (15:5d7f)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText2 ; 0x5e5f TextBeforeBattle
dw Route19AfterBattleText2 ; 0x5e69 TextAfterBattle
dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
@@ -47,7 +47,7 @@
Route19TrainerHeader2: ; 55d8b (15:5d8b)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText3 ; 0x5e6e TextBeforeBattle
dw Route19AfterBattleText3 ; 0x5e78 TextAfterBattle
dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
@@ -56,7 +56,7 @@
Route19TrainerHeader3: ; 55d97 (15:5d97)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText4 ; 0x5e7d TextBeforeBattle
dw Route19AfterBattleText4 ; 0x5e87 TextAfterBattle
dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
@@ -65,7 +65,7 @@
Route19TrainerHeader4: ; 55da3 (15:5da3)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText5 ; 0x5e8c TextBeforeBattle
dw Route19AfterBattleText5 ; 0x5e96 TextAfterBattle
dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
@@ -74,7 +74,7 @@
Route19TrainerHeader5: ; 55daf (15:5daf)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText6 ; 0x5e9b TextBeforeBattle
dw Route19AfterBattleText6 ; 0x5ea5 TextAfterBattle
dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
@@ -83,7 +83,7 @@
Route19TrainerHeader6: ; 55dbb (15:5dbb)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText7 ; 0x5eaa TextBeforeBattle
dw Route19AfterBattleText7 ; 0x5eb4 TextAfterBattle
dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
@@ -92,7 +92,7 @@
Route19TrainerHeader7: ; 55dc7 (15:5dc7)
db $8 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText8 ; 0x5eb9 TextBeforeBattle
dw Route19AfterBattleText8 ; 0x5ec3 TextAfterBattle
dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
@@ -101,7 +101,7 @@
Route19TrainerHeader8: ; 55dd3 (15:5dd3)
db $9 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText9 ; 0x5ec8 TextBeforeBattle
dw Route19AfterBattleText9 ; 0x5ed2 TextAfterBattle
dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
@@ -110,7 +110,7 @@
Route19TrainerHeader9: ; 55ddf (15:5ddf)
db $a ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e5 ; flag's byte
+ dw wd7e5 ; flag's byte
dw Route19BattleText10 ; 0x5ed7 TextBeforeBattle
dw Route19AfterBattleText10 ; 0x5ee1 TextAfterBattle
dw Route19EndBattleText10 ; 0x5edc TextEndBattle
--- a/scripts/route20.asm
+++ b/scripts/route20.asm
@@ -1,5 +1,5 @@
Route20Script: ; 50ca9 (14:4ca9)
- ld hl, $d7e7
+ ld hl, wd7e7
bit 0, [hl]
res 0, [hl]
call nz, Route20Script_50cc6
@@ -12,7 +12,7 @@
ret
Route20Script_50cc6: ; 50cc6 (14:4cc6)
- ld a, [$d880]
+ ld a, [wd880]
and $3
cp $3
jr z, .asm_50cef
@@ -34,7 +34,7 @@
db $D9,$DA,$DB,$DC,$DF,$E0,$FF
.asm_50cef
- ld a, [$d881]
+ ld a, [wd881]
and $3
cp $3
ret z
@@ -49,14 +49,12 @@
ret
Route20Script_50d0c: ; 50d0c (14:4d0c)
- ld [$cc4d], a
- ld a, $15
- jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+ ld [wcc4d], a
+ predef_jump ShowObject
Route20Script_50d14: ; 50d14 (14:4d14)
- ld [$cc4d], a
- ld a, $11
- jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef_jump HideObject
Route20ScriptPointers: ; 50d1c (14:4d1c)
dw CheckFightingMapTrainers
@@ -81,7 +79,7 @@
Route20TrainerHeader0: ; 50d3a (14:4d3a)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText1 ; 0x4e17 TextBeforeBattle
dw Route20AfterBattleText1 ; 0x4e21 TextAfterBattle
dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
@@ -90,7 +88,7 @@
Route20TrainerHeader2: ; 50d46 (14:4d46)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText2 ; 0x4e26 TextBeforeBattle
dw Route20AfterBattleText2 ; 0x4e30 TextAfterBattle
dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
@@ -99,7 +97,7 @@
Route20TrainerHeader3: ; 50d52 (14:4d52)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText3 ; 0x4e35 TextBeforeBattle
dw Route20AfterBattleText3 ; 0x4e3f TextAfterBattle
dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
@@ -108,7 +106,7 @@
Route20TrainerHeader4: ; 50d5e (14:4d5e)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText4 ; 0x4e44 TextBeforeBattle
dw Route20AfterBattleText4 ; 0x4e4e TextAfterBattle
dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
@@ -117,7 +115,7 @@
Route20TrainerHeader5: ; 50d6a (14:4d6a)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText5 ; 0x4e53 TextBeforeBattle
dw Route20AfterBattleText5 ; 0x4e5d TextAfterBattle
dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
@@ -126,7 +124,7 @@
Route20TrainerHeader6: ; 50d76 (14:4d76)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText6 ; 0x4e62 TextBeforeBattle
dw Route20AfterBattleText6 ; 0x4e6c TextAfterBattle
dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
@@ -135,7 +133,7 @@
Route20TrainerHeader7: ; 50d82 (14:4d82)
db $7 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText7 ; 0x4e71 TextBeforeBattle
dw Route20AfterBattleText7 ; 0x4e7b TextAfterBattle
dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
@@ -144,7 +142,7 @@
Route20TrainerHeader8: ; 50d8e (14:4d8e)
db $8 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText8 ; 0x4e80 TextBeforeBattle
dw Route20AfterBattleText8 ; 0x4e8a TextAfterBattle
dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
@@ -153,7 +151,7 @@
Route20TrainerHeader9: ; 50d9a (14:4d9a)
db $9 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText9 ; 0x4e8f TextBeforeBattle
dw Route20AfterBattleText9 ; 0x4e99 TextAfterBattle
dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
@@ -162,7 +160,7 @@
Route20TrainerHeader10: ; 50da6 (14:4da6)
db $a ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e7 ; flag's byte
+ dw wd7e7 ; flag's byte
dw Route20BattleText10 ; 0x4e9e TextBeforeBattle
dw Route20AfterBattleText10 ; 0x4ea8 TextAfterBattle
dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
--- a/scripts/route21.asm
+++ b/scripts/route21.asm
@@ -27,7 +27,7 @@
Route21TrainerHeader0: ; 55f16 (15:5f16)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText1 ; 0x5fdd TextBeforeBattle
dw Route21AfterBattleText1 ; 0x5fe7 TextAfterBattle
dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
@@ -36,7 +36,7 @@
Route21TrainerHeader1: ; 55f22 (15:5f22)
db $2 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText2 ; 0x5fec TextBeforeBattle
dw Route21AfterBattleText2 ; 0x5ff6 TextAfterBattle
dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
@@ -45,7 +45,7 @@
Route21TrainerHeader2: ; 55f2e (15:5f2e)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText3 ; 0x5ffb TextBeforeBattle
dw Route21AfterBattleText3 ; 0x6005 TextAfterBattle
dw Route21EndBattleText3 ; 0x6000 TextEndBattle
@@ -54,7 +54,7 @@
Route21TrainerHeader3: ; 55f3a (15:5f3a)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText4 ; 0x600a TextBeforeBattle
dw Route21AfterBattleText4 ; 0x6014 TextAfterBattle
dw Route21EndBattleText4 ; 0x600f TextEndBattle
@@ -63,7 +63,7 @@
Route21TrainerHeader4: ; 55f46 (15:5f46)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText5 ; 0x6019 TextBeforeBattle
dw Route21AfterBattleText5 ; 0x6023 TextAfterBattle
dw Route21EndBattleText5 ; 0x601e TextEndBattle
@@ -72,7 +72,7 @@
Route21TrainerHeader5: ; 55f52 (15:5f52)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText6 ; 0x6028 TextBeforeBattle
dw Route21AfterBattleText6 ; 0x6032 TextAfterBattle
dw Route21EndBattleText6 ; 0x602d TextEndBattle
@@ -81,7 +81,7 @@
Route21TrainerHeader6: ; 55f5e (15:5f5e)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText7 ; 0x6037 TextBeforeBattle
dw Route21AfterBattleText7 ; 0x6041 TextAfterBattle
dw Route21EndBattleText7 ; 0x603c TextEndBattle
@@ -90,7 +90,7 @@
Route21TrainerHeader7: ; 55f6a (15:5f6a)
db $8 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText8 ; 0x6046 TextBeforeBattle
dw Route21AfterBattleText8 ; 0x6050 TextAfterBattle
dw Route21EndBattleText8 ; 0x604b TextEndBattle
@@ -99,7 +99,7 @@
Route21TrainerHeader8: ; 55f76 (15:5f76)
db $9 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7e9 ; flag's byte
+ dw wd7e9 ; flag's byte
dw Route21BattleText9 ; 0x6055 TextBeforeBattle
dw Route21AfterBattleText9 ; 0x605f TextAfterBattle
dw Route21EndBattleText9 ; 0x605a TextEndBattle
--- a/scripts/route22.asm
+++ b/scripts/route22.asm
@@ -16,13 +16,13 @@
Route22Script_50ece: ; 50ece (14:4ece)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE22CURSCRIPT], a
Route22Script7: ; 50ed5 (14:4ed5)
ret
Route22Script_50ed6: ; 50ed6 (14:4ed6)
- ld a, [W_RIVALSTARTER] ; $d715
+ ld a, [W_RIVALSTARTER] ; wd715
ld b, a
.asm_50eda
ld a, [hli]
@@ -32,12 +32,12 @@
jr .asm_50eda
.asm_50ee1
ld a, [hl]
- ld [W_TRAINERNO], a ; $d05d
+ ld [W_TRAINERNO], a ; wd05d
ret
Route22MoveRivalSprite: ; 50ee6 (14:4ee6)
ld de, Route22RivalMovementData ; $4efb
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr z, .asm_50ef1
inc de
@@ -51,21 +51,21 @@
db $C0,$C0,$C0,$C0,$FF ; move right 4 times
Route22Script0: ; 50f00 (14:4f00)
- ld a, [$d7eb]
+ ld a, [wd7eb]
bit 7, a
ret z
ld hl, .Route22RivalBattleCoords ; $4f2d
call ArePlayerCoordsInArray
ret nc
- ld a, [$cd3d]
- ld [$cf0d], a
+ ld a, [wWhichTrade]
+ ld [wcf0d], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $2
- ld [$d528], a
- ld a, [$d7eb]
+ ld [wd528], a
+ ld a, [wd7eb]
bit 0, a ; is this the rival battle at the beginning of the game?
jr nz, .firstRivalBattle ; 0x50f25 $b
bit 1, a ; is this the rival at the end of the game?
@@ -72,7 +72,7 @@
jp nz, Route22Script_5104e
ret
-.Route22RivalBattleCoords
+.Route22RivalBattleCoords
db $04, $1D
db $05, $1D
db $FF
@@ -79,16 +79,15 @@
.firstRivalBattle
ld a, $1
- ld [$cd4f], a
+ ld [wcd4f], a
xor a
- ld [$cd50], a
- ld a, $4c
- call Predef
- ld a, [$d700]
+ ld [wcd50], a
+ predef EmotionBubble
+ ld a, [wd700]
and a
jr z, .asm_50f4e ; 0x50f44 $8
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
.asm_50f4e
ld c, BANK(Music_MeetRival)
@@ -102,14 +101,14 @@
ret
Route22Script1: ; 50f62 (14:4f62)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr nz, .asm_50f78 ; 0x50f6d $9
ld a, $4
- ld [$d528], a
+ ld [wd528], a
ld a, $4
jr .asm_50f7a ; 0x50f76 $2
.asm_50f78
@@ -120,11 +119,11 @@
ld [$ff8c], a
call Func_34a6
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $1
ld [$ff8c], a
call DisplayTextID
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, Route22RivalDefeatedText1
@@ -145,10 +144,10 @@
db STARTER1,$06
Route22Script2: ; 50fb5 (14:4fb5)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, Route22Script_50ece
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
jr nz, .asm_50fc7 ; 0x50fc1 $4
ld a, $4
@@ -161,17 +160,17 @@
ld [$ff8c], a
call Func_34a6
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d7eb
+ ld [wJoyIgnore], a
+ ld hl, wd7eb
set 5, [hl]
ld a, $1
ld [$ff8c], a
call DisplayTextID
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr nz, .asm_50fff ; 0x50ff8 $5
call Route22Script_51008
@@ -201,17 +200,16 @@
db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF
Route22Script3: ; 5102a (14:502a)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $22
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
call Func_2307
- ld hl, $d7eb
+ ld hl, wd7eb
res 0, [hl]
res 7, [hl]
ld a, $0
@@ -220,20 +218,19 @@
Route22Script_5104e: ; 5104e (14:504e)
ld a, $2
- ld [$cd4f], a
+ ld [wcd4f], a
xor a
- ld [$cd50], a
- ld a, $4c
- call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47))
- ld a, [$d700]
+ ld [wcd50], a
+ predef EmotionBubble
+ ld a, [wd700]
and a
jr z, .skipYVisibilityTesta
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
.skipYVisibilityTesta
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateTempo
ld a, $2
@@ -244,31 +241,31 @@
ret
Route22Script4: ; 51087 (14:5087)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $2
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr nz, .asm_510a1
ld a, $4
- ld [$d528], a
+ ld [wd528], a
ld a, $4
jr .asm_510a8
.asm_510a1
ld a, $2
- ld [$d528], a
+ ld [wd528], a
ld a, $c
.asm_510a8
ld [$ff8d], a
call Func_34a6
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $2
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, Route22RivalDefeatedText2 ; $51cb
@@ -275,7 +272,7 @@
ld de, Route22Text_511d0 ; $51d0
call PreBattleSaveRegisters
ld a, SONY2 + $c8
- ld [W_CUROPPONENT], a ; $d059
+ ld [W_CUROPPONENT], a ; wd059
ld hl, StarterMons_510d9 ; $50d9
call Route22Script_50ed6
ld a, $5
@@ -288,37 +285,37 @@
db STARTER1,$0c
Route22Script5: ; 510df (14:50df)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, Route22Script_50ece
ld a, $2
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr nz, .asm_510fb
ld a, $4
- ld [$d528], a
+ ld [wd528], a
ld a, $4
jr .asm_51102
.asm_510fb
ld a, $2
- ld [$d528], a
+ ld [wd528], a
ld a, $c
.asm_51102
ld [$ff8d], a
call Func_34a6
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d7eb
+ ld [wJoyIgnore], a
+ ld hl, wd7eb
set 6, [hl]
ld a, $2
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStartAndTempo
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr nz, .asm_51134
call Route22Script_5113d
@@ -348,17 +345,16 @@
db $80,$80,$80,$FF ; left x3
Route22Script6: ; 51151 (14:5151)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $23
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
call Func_2307
- ld hl, $d7eb
+ ld hl, wd7eb
res 1, [hl]
res 7, [hl]
ld a, $7
@@ -372,7 +368,7 @@
Route22Text1: ; 5117b (14:517b)
db $08 ; asm
- ld a, [$d7eb]
+ ld a, [wd7eb]
bit 5, a
jr z, .asm_a88cf ; 0x51181
ld hl, Route22RivalAfterBattleText1
@@ -386,7 +382,7 @@
Route22Text2: ; 51194 (14:5194)
db $08 ; asm
- ld a, [$d7eb]
+ ld a, [wd7eb]
bit 6, a
jr z, .asm_58c0a ; 0x5119a
ld hl, Route22RivalAfterBattleText2
--- a/scripts/route22gate.asm
+++ b/scripts/route22gate.asm
@@ -22,7 +22,7 @@
call ArePlayerCoordsInArray
ret nc
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $1
ld [$ff8c], a
jp DisplayTextID
@@ -34,19 +34,19 @@
Route22GateScript_1e6ba: ; 1e6ba (7:66ba)
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
- ld [$c109], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wccd3], a
+ ld [wSpriteStateData1 + 9], a
+ ld [wJoyIgnore], a
jp Func_3486
Route22GateScript1: ; 1e6cd (7:66cd)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
call Delay3
ld a, $0
ld [W_ROUTE22GATECURSCRIPT], a
--- a/scripts/route23.asm
+++ b/scripts/route23.asm
@@ -6,24 +6,22 @@
jp CallFunctionInTable
Route23Script_511e9: ; 511e9 (14:51e9)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
ret z
- ld hl, $d7ee
+ ld hl, wd7ee
res 0, [hl]
res 7, [hl]
- ld hl, $d813
+ ld hl, wd813
res 0, [hl]
res 6, [hl]
ld a, $7a
- ld [$cc4d], a
- ld a, $15
- call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+ ld [wcc4d], a
+ predef ShowObject
ld a, $60
- ld [$cc4d], a
- ld a, $11
- jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef_jump HideObject
Route23ScriptPointers: ; 51213 (14:5213)
dw Route23Script0
@@ -53,11 +51,10 @@
ld a, e
ld [$ff8c], a
ld a, c
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld b, $2
- ld hl, $d7ed
- ld a, $10
- call Predef
+ ld hl, wd7ed
+ predef FlagActionPredef
ld a, c
and a
ret nz
@@ -64,7 +61,7 @@
call Route23Script_5125d
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ret
YCoordsData_51255: ; 51255 (14:5255)
@@ -72,7 +69,7 @@
Route23Script_5125d: ; 5125d (14:525d)
ld hl, BadgeTextPointers ; $5276
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
ld b, $0
add hl, bc
@@ -80,7 +77,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $cd6d
+ ld de, wcd6d
.asm_5126e
ld a, [hli]
ld [de], a
@@ -121,16 +118,16 @@
Route23Script_512d8: ; 512d8 (14:52d8)
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
xor a
- ld [$c109], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wSpriteStateData1 + 9], a
+ ld [wJoyIgnore], a
jp Func_3486
Route23Script1: ; 512ec (14:52ec)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
Route23Script2: ; 512f1 (14:52f1)
@@ -191,15 +188,14 @@
jp TextScriptEnd
Route23Script_51346: ; 51346 (14:5346)
- ld [wWhichTrade], a ; $cd3d
+ ld [wWhichTrade], a ; wWhichTrade
call Route23Script_5125d
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
inc a
ld c, a
ld b, $2
ld hl, W_OBTAINEDBADGES
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ predef FlagActionPredef
ld a, c
and a
jr nz, .asm_5136e
@@ -212,12 +208,11 @@
.asm_5136e
ld hl, VictoryRoadGuardText2
call PrintText
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
ld c, a
ld b, $1
- ld hl, $d7ed
- ld a, $10
- call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+ ld hl, wd7ed
+ predef FlagActionPredef
ld a, $2
ld [W_ROUTE23CURSCRIPT], a
ret
--- a/scripts/route24.asm
+++ b/scripts/route24.asm
@@ -9,7 +9,7 @@
Route24Script_513c0: ; 513c0 (14:53c0)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE24CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -22,7 +22,7 @@
dw Route24Script4
Route24Script0: ; 513d5 (14:53d5)
- ld a, [$d7ef]
+ ld a, [wd7ef]
bit 0, a
jp nz, CheckFightingMapTrainers
ld hl, CoordsData_5140e ; $540e
@@ -29,18 +29,18 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $1
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d7f0
+ ld hl, wd7f0
bit 1, [hl]
res 1, [hl]
ret z
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $4
ld [W_ROUTE24CURSCRIPT], a
@@ -51,7 +51,7 @@
db $0F,$0A,$FF
Route24Script4: ; 51411 (14:5411)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
@@ -61,19 +61,19 @@
ret
Route24Script3: ; 51422 (14:5422)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, Route24Script_513c0
call UpdateSprites
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d7ef
+ ld [wJoyIgnore], a
+ ld hl, wd7ef
set 1, [hl]
ld a, $1
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_ROUTE24CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -93,7 +93,7 @@
Route24TrainerHeader0: ; 5145b (14:545b)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7ef ; flag's byte
+ dw wd7ef ; flag's byte
dw Route24BattleText1 ; 0x5571 TextBeforeBattle
dw Route24AfterBattleText1 ; 0x557b TextAfterBattle
dw Route24EndBattleText1 ; 0x5576 TextEndBattle
@@ -102,7 +102,7 @@
Route24TrainerHeader2: ; 51467 (14:5467)
db $3 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7ef ; flag's byte
+ dw wd7ef ; flag's byte
dw Route24BattleText2 ; 0x5580 TextBeforeBattle
dw Route24AfterBattleText2 ; 0x558a TextAfterBattle
dw Route24EndBattleText2 ; 0x5585 TextEndBattle
@@ -111,7 +111,7 @@
Route24TrainerHeader3: ; 51473 (14:5473)
db $4 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7ef ; flag's byte
+ dw wd7ef ; flag's byte
dw Route24BattleText3 ; 0x558f TextBeforeBattle
dw Route24AfterBattleText3 ; 0x5599 TextAfterBattle
dw Route24EndBattleText3 ; 0x5594 TextEndBattle
@@ -120,7 +120,7 @@
Route24TrainerHeader4: ; 5147f (14:547f)
db $5 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7ef ; flag's byte
+ dw wd7ef ; flag's byte
dw Route24BattleText4 ; 0x559e TextBeforeBattle
dw Route24AfterBattleText4 ; 0x55a8 TextAfterBattle
dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
@@ -129,7 +129,7 @@
Route24TrainerHeader5: ; 5148b (14:548b)
db $6 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7ef ; flag's byte
+ dw wd7ef ; flag's byte
dw Route24BattleText5 ; 0x55ad TextBeforeBattle
dw Route24AfterBattleText5 ; 0x55b7 TextAfterBattle
dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
@@ -138,7 +138,7 @@
Route24TrainerHeader6: ; 51497 (14:5497)
db $7 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7ef ; flag's byte
+ dw wd7ef ; flag's byte
dw Route24BattleText6 ; 0x55bc TextBeforeBattle
dw Route24AfterBattleText6 ; 0x55c6 TextAfterBattle
dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
@@ -148,9 +148,9 @@
Route24Text1: ; 514a4 (14:54a4)
db $8
- ld hl, $d7f0
+ ld hl, wd7f0
res 1, [hl]
- ld a, [$d7ef]
+ ld a, [wd7ef]
bit 0, a
jr nz, .asm_a03f5 ; 0x514af $48
ld hl, Route24Text_51510
@@ -158,13 +158,13 @@
ld bc, (NUGGET << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d7ef
+ ld hl, wd7ef
set 0, [hl]
ld hl, Route24Text_5151a
call PrintText
ld hl, Route24Text_51526
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, Route24Text_5152b
@@ -171,11 +171,11 @@
ld de, Route24Text_5152b
call PreBattleSaveRegisters
ld a, [$ff8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $3
ld [W_ROUTE24CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -187,7 +187,7 @@
.BagFull
ld hl, Route24Text_51521
call PrintText
- ld hl, $d7f0
+ ld hl, wd7f0
set 1, [hl]
jp TextScriptEnd
--- a/scripts/route25.asm
+++ b/scripts/route25.asm
@@ -9,11 +9,11 @@
ret
Route25Script_515e1: ; 515e1 (14:55e1)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
ret z
- ld hl, $d7f2
+ ld hl, wd7f2
bit 7, [hl]
ret nz
bit 5, [hl]
@@ -20,25 +20,21 @@
jr nz, .asm_515ff
res 6, [hl]
ld a, $61
- ld [$cc4d], a
- ld a, $15
- jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+ ld [wcc4d], a
+ predef_jump ShowObject
.asm_515ff
bit 4, [hl]
ret z
set 7, [hl]
ld a, $24
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
ld a, $62
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
ld a, $63
- ld [$cc4d], a
- ld a, $15
- jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+ ld [wcc4d], a
+ predef_jump ShowObject
Route25ScriptPointers: ; 51622 (14:5622)
dw CheckFightingMapTrainers
@@ -62,7 +58,7 @@
Route25TrainerHeader0: ; 5163e (14:563e)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText1 ; 0x5705 TextBeforeBattle
dw Route25AfterBattleText1 ; 0x570f TextAfterBattle
dw Route25EndBattleText1 ; 0x570a TextEndBattle
@@ -71,7 +67,7 @@
Route25TrainerHeader2: ; 5164a (14:564a)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText2 ; 0x5714 TextBeforeBattle
dw Route25AfterBattleText2 ; 0x571e TextAfterBattle
dw Route25EndBattleText2 ; 0x5719 TextEndBattle
@@ -80,7 +76,7 @@
Route25TrainerHeader3: ; 51656 (14:5656)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText3 ; 0x5723 TextBeforeBattle
dw Route25AfterBattleText3 ; 0x572d TextAfterBattle
dw Route25EndBattleText3 ; 0x5728 TextEndBattle
@@ -89,7 +85,7 @@
Route25TrainerHeader4: ; 51662 (14:5662)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText4 ; 0x5732 TextBeforeBattle
dw Route25AfterBattleText4 ; 0x573c TextAfterBattle
dw Route25EndBattleText4 ; 0x5737 TextEndBattle
@@ -98,7 +94,7 @@
Route25TrainerHeader5: ; 5166e (14:566e)
db $5 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText5 ; 0x5741 TextBeforeBattle
dw Route25AfterBattleText5 ; 0x574b TextAfterBattle
dw Route25EndBattleText5 ; 0x5746 TextEndBattle
@@ -107,7 +103,7 @@
Route25TrainerHeader6: ; 5167a (14:567a)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText6 ; 0x5750 TextBeforeBattle
dw Route25AfterBattleText6 ; 0x575a TextAfterBattle
dw Route25EndBattleText6 ; 0x5755 TextEndBattle
@@ -116,7 +112,7 @@
Route25TrainerHeader7: ; 51686 (14:5686)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText7 ; 0x575f TextBeforeBattle
dw Route25AfterBattleText7 ; 0x5769 TextAfterBattle
dw Route25EndBattleText7 ; 0x5764 TextEndBattle
@@ -125,7 +121,7 @@
Route25TrainerHeader8: ; 51692 (14:5692)
db $8 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText8 ; 0x576e TextBeforeBattle
dw Route25AfterBattleText8 ; 0x5778 TextAfterBattle
dw Route25EndBattleText8 ; 0x5773 TextEndBattle
@@ -134,7 +130,7 @@
Route25TrainerHeader9: ; 5169e (14:569e)
db $9 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7f1 ; flag's byte
+ dw wd7f1 ; flag's byte
dw Route25BattleText9 ; 0x577d TextBeforeBattle
dw Route25AfterBattleText9 ; 0x5787 TextAfterBattle
dw Route25EndBattleText9 ; 0x5782 TextEndBattle
--- a/scripts/route2gate.asm
+++ b/scripts/route2gate.asm
@@ -7,7 +7,7 @@
Route2GateText1: ; 5d5db (17:55db)
db $08 ; asm
- ld a, [$d7c2]
+ ld a, [wd7c2]
bit 0, a
jr nz, .asm_6592c ; 0x5d5e1
ld a, 10 ; pokemon needed
@@ -14,18 +14,17 @@
ldh [$db], a
ld a, HM_05 ; oak's aide reward
ldh [$dc], a
- ld [$d11e], a
+ ld [wd11e], a
call GetItemName ; $2fcf
- ld hl, $cd6d
- ld de, $cc5b
+ ld hl, wcd6d
+ ld de, wcc5b
ld bc, $000d
call CopyData
- ld a, $62
- call Predef ; call oak's aide script
+ predef OaksAideScript ; call oak's aide script
ldh a, [$db]
cp $1
jr nz, .asm_ad646 ; 0x5d606
- ld hl, $d7c2
+ ld hl, wd7c2
set 0, [hl]
.asm_6592c ; 0x5d60d
ld hl, Route2GateText_5d616
--- a/scripts/route2house.asm
+++ b/scripts/route2house.asm
@@ -13,6 +13,5 @@
db $08 ; asm
ld a, $1
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
jp TextScriptEnd
--- a/scripts/route3.asm
+++ b/scripts/route3.asm
@@ -28,7 +28,7 @@
Route3TrainerHeader0: ; 55525 (15:5525)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText1 ; 0x5595 TextBeforeBattle
dw Route3AfterBattleText1 ; 0x559f TextAfterBattle
dw Route3EndBattleText1 ; 0x559a TextEndBattle
@@ -37,7 +37,7 @@
Route3TrainerHeader2: ; 55531 (15:5531)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText2 ; 0x55ae TextBeforeBattle
dw Route3AfterBattleText2 ; 0x55b8 TextAfterBattle
dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
@@ -46,7 +46,7 @@
Route3TrainerHeader3: ; 5553d (15:553d)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText3 ; 0x55c7 TextBeforeBattle
dw Route3AfterBattleText3 ; 0x55d1 TextAfterBattle
dw Route3EndBattleText3 ; 0x55cc TextEndBattle
@@ -55,7 +55,7 @@
Route3TrainerHeader4: ; 55549 (15:5549)
db $5 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText4 ; 0x55e0 TextBeforeBattle
dw Route3AfterBattleText4 ; 0x55ea TextAfterBattle
dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
@@ -64,7 +64,7 @@
Route3TrainerHeader5: ; 55555 (15:5555)
db $6 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText5 ; 0x55f9 TextBeforeBattle
dw Route3AfterBattleText5 ; 0x5603 TextAfterBattle
dw Route3EndBattleText5 ; 0x55fe TextEndBattle
@@ -73,7 +73,7 @@
Route3TrainerHeader6: ; 55561 (15:5561)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText6 ; 0x5612 TextBeforeBattle
dw Route3AfterBattleText6 ; 0x561c TextAfterBattle
dw Route3EndBattleText6 ; 0x5617 TextEndBattle
@@ -82,7 +82,7 @@
Route3TrainerHeader7: ; 5556d (15:556d)
db $8 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText7 ; 0x562b TextBeforeBattle
dw Route3AfterBattleText7 ; 0x5635 TextAfterBattle
dw Route3EndBattleText7 ; 0x5630 TextEndBattle
@@ -91,7 +91,7 @@
Route3TrainerHeader8: ; 55579 (15:5579)
db $9 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7c3 ; flag's byte
+ dw wd7c3 ; flag's byte
dw Route3BattleText8 ; 0x5644 TextBeforeBattle
dw Route3AfterBattleText8 ; 0x564e TextAfterBattle
dw Route3EndBattleText8 ; 0x5649 TextEndBattle
--- a/scripts/route4.asm
+++ b/scripts/route4.asm
@@ -24,7 +24,7 @@
Route4TrainerHeader0: ; 5567d (15:567d)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c5 ; flag's byte
+ dw wd7c5 ; flag's byte
dw Route4BattleText1 ; 0x5699 TextBeforeBattle
dw Route4AfterBattleText1 ; 0x56a3 TextAfterBattle
dw Route4EndBattleText1 ; 0x569e TextEndBattle
--- a/scripts/route5gate.asm
+++ b/scripts/route5gate.asm
@@ -10,13 +10,13 @@
Route5GateScript_1df43: ; 1df43 (7:5f43)
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
jp Func_3486
Route5GateScript0: ; 1df50 (7:5f50)
- ld a, [$d728]
+ ld a, [wd728]
bit 6, a
ret nz
ld hl, CoordsData_1df8f
@@ -23,9 +23,9 @@
call ArePlayerCoordsInArray
ret nc
ld a, $2
- ld [$d528], a
+ ld [wd528], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ff00+$db]
and a
@@ -41,7 +41,7 @@
ld a, $3
ld [$ff00+$8c], a
call DisplayTextID
- ld hl, $d728
+ ld hl, wd728
set 6, [hl]
ret
@@ -51,15 +51,15 @@
db $ff
Route5GateScript1: ; 1df94 (7:5f94)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE5GATECURSCRIPT], a
ret
-
+
Route5GateTextPointers: ; 1dfa4 (7:5fa4)
dw Route5GateText1
dw Route5GateText2
@@ -70,7 +70,7 @@
Route6GateText1: ; 1dfaa (7:5faa)
Route5GateText1: ; 1dfaa (7:5faa)
db $8
- ld a, [$d728]
+ ld a, [wd728]
bit 6, a
jr nz, .asm_88856 ; 0x1dfb0 $2c
callba RemoveGuardDrink
@@ -86,7 +86,7 @@
.asm_768a2 ; 0x1dfd0
ld hl, Route5GateText3
call PrintText
- ld hl, $d728
+ ld hl, wd728
set 6, [hl]
jp TextScriptEnd
.asm_88856 ; 0x1dfde
--- a/scripts/route6.asm
+++ b/scripts/route6.asm
@@ -25,7 +25,7 @@
Route6TrainerHeader0: ; 590d7 (16:50d7)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7c9 ; flag's byte
+ dw wd7c9 ; flag's byte
dw Route6BattleText1 ; 0x512a TextBeforeBattle
dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
dw Route6EndBattleText1 ; 0x512f TextEndBattle
@@ -34,7 +34,7 @@
Route6TrainerHeader1: ; 590e3 (16:50e3)
db $2 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7c9 ; flag's byte
+ dw wd7c9 ; flag's byte
dw Route6BattleText2 ; 0x5143 TextBeforeBattle
dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
dw Route6EndBattleText2 ; 0x5148 TextEndBattle
@@ -43,7 +43,7 @@
Route6TrainerHeader2: ; 590ef (16:50ef)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7c9 ; flag's byte
+ dw wd7c9 ; flag's byte
dw Route6BattleText3 ; 0x5157 TextBeforeBattle
dw Route6AfterBattleText3 ; 0x5161 TextAfterBattle
dw Route6EndBattleText3 ; 0x515c TextEndBattle
@@ -52,7 +52,7 @@
Route6TrainerHeader3: ; 590fb (16:50fb)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c9 ; flag's byte
+ dw wd7c9 ; flag's byte
dw Route6BattleText4 ; 0x5170 TextBeforeBattle
dw Route6AfterBattleText4 ; 0x517a TextAfterBattle
dw Route6EndBattleText4 ; 0x5175 TextEndBattle
@@ -61,7 +61,7 @@
Route6TrainerHeader4: ; 59107 (16:5107)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c9 ; flag's byte
+ dw wd7c9 ; flag's byte
dw Route6BattleText5 ; 0x5189 TextBeforeBattle
dw Route6AfterBattleText5 ; 0x5193 TextAfterBattle
dw Route6EndBattleText5 ; 0x518e TextEndBattle
@@ -70,7 +70,7 @@
Route6TrainerHeader5: ; 59113 (16:5113)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7c9 ; flag's byte
+ dw wd7c9 ; flag's byte
dw Route6BattleText6 ; 0x51a2 TextBeforeBattle
dw Route6AfterBattleText6 ; 0x51ac TextAfterBattle
dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
--- a/scripts/route6gate.asm
+++ b/scripts/route6gate.asm
@@ -10,7 +10,7 @@
dw Route6GateScript1
Route6GateScript0: ; 1e04e (7:604e)
- ld a, [$d728]
+ ld a, [wd728]
bit 6, a
ret nz
ld hl, CoordsData_1e08c
@@ -17,9 +17,9 @@
call ArePlayerCoordsInArray
ret nc
ld a, $1
- ld [$d528], a
+ ld [wd528], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
@@ -32,7 +32,7 @@
ld [W_ROUTE6GATECURSCRIPT], a
ret
.asm_1e080
- ld hl, $d728
+ ld hl, wd728
set 6, [hl]
ld a, $3
ld [$ff8c], a
@@ -43,25 +43,25 @@
db $02,$04,$FF
Route6GateScript1: ; 1e091 (7:6091)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE6GATECURSCRIPT], a
ret
Route6GateScript_1e0a1: ; 1e0a1 (7:60a1)
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$c206], a
- ld [$cd3b], a
+ ld [wSpriteStateData2 + $06], a
+ ld [wcd3b], a
ret
Route6GateTextPointers: ; 1e0b8 (7:60b8)
--- a/scripts/route7gate.asm
+++ b/scripts/route7gate.asm
@@ -10,19 +10,19 @@
dw Route7GateScript1
Route7GateScript_1e111: ; 1e111 (7:6111)
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $20
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$c206], a
- ld [$cd3b], a
+ ld [wSpriteStateData2 + $06], a
+ ld [wcd3b], a
ret
Route7GateScript0: ; 1e128 (7:6128)
- ld a, [$d728]
+ ld a, [wd728]
bit 6, a
ret nz
ld hl, CoordsData_1e167
@@ -29,9 +29,9 @@
call ArePlayerCoordsInArray
ret nc
ld a, $8
- ld [$d528], a
+ ld [wd528], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
@@ -47,7 +47,7 @@
ld a, $3
ld [$ff8c], a
call DisplayTextID
- ld hl, $d728
+ ld hl, wd728
set 6, [hl]
ret
@@ -57,12 +57,12 @@
db $ff
Route7GateScript1: ; 1e16c (7:616c)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE7GATECURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
--- a/scripts/route8.asm
+++ b/scripts/route8.asm
@@ -28,7 +28,7 @@
Route8TrainerHeader0: ; 591e3 (16:51e3)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText1 ; 0x525a TextBeforeBattle
dw Route8AfterBattleText1 ; 0x5264 TextAfterBattle
dw Route8EndBattleText1 ; 0x525f TextEndBattle
@@ -37,7 +37,7 @@
Route8TrainerHeader1: ; 591ef (16:51ef)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText2 ; 0x5273 TextBeforeBattle
dw Route8AfterBattleText2 ; 0x527d TextAfterBattle
dw Route8EndBattleText2 ; 0x5278 TextEndBattle
@@ -46,7 +46,7 @@
Route8TrainerHeader2: ; 591fb (16:51fb)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText3 ; 0x528c TextBeforeBattle
dw Route8AfterBattleText3 ; 0x5296 TextAfterBattle
dw Route8EndBattleText3 ; 0x5291 TextEndBattle
@@ -55,7 +55,7 @@
Route8TrainerHeader3: ; 59207 (16:5207)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText4 ; 0x52a5 TextBeforeBattle
dw Route8AfterBattleText4 ; 0x52af TextAfterBattle
dw Route8EndBattleText4 ; 0x52aa TextEndBattle
@@ -64,7 +64,7 @@
Route8TrainerHeader4: ; 59213 (16:5213)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText5 ; 0x52be TextBeforeBattle
dw Route8AfterBattleText5 ; 0x52c8 TextAfterBattle
dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
@@ -73,7 +73,7 @@
Route8TrainerHeader5: ; 5921f (16:521f)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText6 ; 0x52d7 TextBeforeBattle
dw Route8AfterBattleText6 ; 0x52e1 TextAfterBattle
dw Route8EndBattleText6 ; 0x52dc TextEndBattle
@@ -82,7 +82,7 @@
Route8TrainerHeader6: ; 5922b (16:522b)
db $7 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText7 ; 0x52f0 TextBeforeBattle
dw Route8AfterBattleText7 ; 0x52fa TextAfterBattle
dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
@@ -91,7 +91,7 @@
Route8TrainerHeader7: ; 59237 (16:5237)
db $8 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText8 ; 0x5309 TextBeforeBattle
dw Route8AfterBattleText8 ; 0x5313 TextAfterBattle
dw Route8EndBattleText8 ; 0x530e TextEndBattle
@@ -100,7 +100,7 @@
Route8TrainerHeader8: ; 59243 (16:5243)
db $9 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7cd ; flag's byte
+ dw wd7cd ; flag's byte
dw Route8BattleText9 ; 0x5322 TextBeforeBattle
dw Route8AfterBattleText9 ; 0x532c TextAfterBattle
dw Route8EndBattleText9 ; 0x5327 TextEndBattle
--- a/scripts/route8gate.asm
+++ b/scripts/route8gate.asm
@@ -9,19 +9,19 @@
dw Route8GateScript1
Route8GateScript_1e1d7: ; 1e1d7 (7:61d7)
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
ld a, $10
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$c206], a
- ld [$cd3b], a
+ ld [wSpriteStateData2 + $06], a
+ ld [wcd3b], a
ret
Route8GateScript0: ; 1e1ee (7:61ee)
- ld a, [$d728]
+ ld a, [wd728]
bit 6, a
ret nz
ld hl, CoordsData_1e22c
@@ -28,9 +28,9 @@
call ArePlayerCoordsInArray
ret nc
ld a, $2
- ld [$d528], a
+ ld [wd528], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
@@ -43,7 +43,7 @@
ld [W_ROUTE8GATECURSCRIPT], a
ret
.asm_1e220
- ld hl, $d728
+ ld hl, wd728
set 6, [hl]
ld a, $3
ld [$ff8c], a
@@ -55,12 +55,12 @@
db $ff
Route8GateScript1: ; 1e231 (7:6231)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_ROUTE8GATECURSCRIPT], a
ret
--- a/scripts/route9.asm
+++ b/scripts/route9.asm
@@ -29,7 +29,7 @@
Route9TrainerHeader0: ; 556eb (15:56eb)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText1 ; 0x5792 TextBeforeBattle
dw Route9AfterBattleText1 ; 0x579c TextAfterBattle
dw Route9EndBattleText1 ; 0x5797 TextEndBattle
@@ -38,7 +38,7 @@
Route9TrainerHeader2: ; 556f7 (15:56f7)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText2 ; 0x57a1 TextBeforeBattle
dw Route9AfterBattleText2 ; 0x57ab TextAfterBattle
dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
@@ -47,7 +47,7 @@
Route9TrainerHeader3: ; 55703 (15:5703)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText3 ; 0x57b0 TextBeforeBattle
dw Route9AfterBattleText3 ; 0x57ba TextAfterBattle
dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
@@ -56,7 +56,7 @@
Route9TrainerHeader4: ; 5570f (15:570f)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText4 ; 0x57bf TextBeforeBattle
dw Route9AfterBattleText4 ; 0x57c9 TextAfterBattle
dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
@@ -65,7 +65,7 @@
Route9TrainerHeader5: ; 5571b (15:571b)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText5 ; 0x57ce TextBeforeBattle
dw Route9AfterBattleText5 ; 0x57d8 TextAfterBattle
dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
@@ -74,7 +74,7 @@
Route9TrainerHeader6: ; 55727 (15:5727)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText6 ; 0x57dd TextBeforeBattle
dw Route9AfterBattleText6 ; 0x57e7 TextAfterBattle
dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
@@ -83,7 +83,7 @@
Route9TrainerHeader7: ; 55733 (15:5733)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText7 ; 0x57ec TextBeforeBattle
dw Route9AfterBattleText7 ; 0x57f6 TextAfterBattle
dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
@@ -92,7 +92,7 @@
Route9TrainerHeader8: ; 5573f (15:573f)
db $8 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText8 ; 0x57fb TextBeforeBattle
dw Route9AfterBattleText8 ; 0x5805 TextAfterBattle
dw Route9EndBattleText8 ; 0x5800 TextEndBattle
@@ -101,7 +101,7 @@
Route9TrainerHeader9: ; 5574b (15:574b)
db $9 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d7cf ; flag's byte
+ dw wd7cf ; flag's byte
dw Route9BattleText9 ; 0x580a TextBeforeBattle
dw Route9AfterBattleText9 ; 0x5814 TextAfterBattle
dw Route9EndBattleText9 ; 0x580f TextEndBattle
--- a/scripts/safarizoneentrance.asm
+++ b/scripts/safarizoneentrance.asm
@@ -21,12 +21,12 @@
ld [$ff8c], a
call DisplayTextID
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $c
- ld [$c109], a
- ld a, [$cd3d]
+ ld [wSpriteStateData1 + 9], a
+ ld a, [wWhichTrade]
cp $1
jr z, .asm_7520f ; 0x75207 $6
ld a, $2
@@ -37,7 +37,7 @@
ld c, $1
call SafariZoneEntranceScript_752a3
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $1
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -52,14 +52,14 @@
ret nz
SafariZoneEntranceScript2: ; 7522a (1d:522a)
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [hJoyHeld], a
+ ld [wJoyIgnore], a
call UpdateSprites
ld a, $4
ld [$ff8c], a
call DisplayTextID
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
SafariZoneEntranceScript3: ; 75240 (1d:5240)
@@ -66,7 +66,7 @@
call SafariZoneEntranceScript_752b4
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $5
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -73,8 +73,8 @@
SafariZoneEntranceScript5: ; 7524e (1d:524e)
ld a, $4
- ld [$d528], a
- ld hl, $d790
+ ld [wd528], a
+ ld hl, wd790
bit 6, [hl]
res 6, [hl]
jr z, .asm_7527f ; 0x7525a $23
@@ -81,12 +81,12 @@
res 7, [hl]
call UpdateSprites
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $6
ld [$ff8c], a
call DisplayTextID
xor a
- ld [$da47], a
+ ld [W_NUMSAFARIBALLS], a
ld a, $80
ld c, $3
call SafariZoneEntranceScript_752a3
@@ -104,7 +104,7 @@
call SafariZoneEntranceScript_752b4
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -113,7 +113,7 @@
call SafariZoneEntranceScript_752b4
ret nz
call Delay3
- ld a, [$cf0d]
+ ld a, [wcf0d]
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -121,14 +121,14 @@
push af
ld b, $0
ld a, c
- ld [$cd38], a
- ld hl, $ccd3
+ ld [wcd38], a
+ ld hl, wccd3
pop af
call FillMemory
jp Func_3486
SafariZoneEntranceScript_752b4: ; 752b4 (1d:52b4)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret
@@ -149,10 +149,10 @@
TX_FAR SafariZoneEntranceText_9e6e4 ; 0x9e6e4
db $8
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jp nz, .asm_75346
xor a
@@ -168,23 +168,22 @@
jr .asm_7534c ; 0x752f7 $53
.asm_752f9
xor a
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld a, $5
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld a, $0
- ld [$cd3f], a
- ld hl, $cd3f
- ld de, $d349
+ ld [wTrainerFacingDirection], a
+ ld hl, wTrainerFacingDirection
+ ld de, wPlayerMoney + 2
ld c, $3
- ld a, $c
- call Predef
+ predef SubBCDPredef
ld a, $13
- ld [$d125], a
+ ld [wd125], a
call DisplayTextBoxID
ld hl, SafariZoneEntranceText_7535b
call PrintText
ld a, $1e
- ld [$da47], a
+ ld [W_NUMSAFARIBALLS], a
ld a, 502 / $100
ld [wSafariSteps], a
ld a, 502 % $100
@@ -192,7 +191,7 @@
ld a, $40
ld c, $3
call SafariZoneEntranceScript_752a3
- ld hl, $d790
+ ld hl, wd790
set 7, [hl]
res 6, [hl]
ld a, $3
@@ -230,32 +229,32 @@
TX_FAR SafariZoneEntranceText_9e814 ; 0x9e814
db $8
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_7539c ; 0x7537b $1f
ld hl, SafariZoneEntranceText_753bb
call PrintText
xor a
- ld [$c109], a
+ ld [wSpriteStateData1 + 9], a
ld a, $80
ld c, $3
call SafariZoneEntranceScript_752a3
- ld hl, $d790
+ ld hl, wd790
res 6, [hl]
res 7, [hl]
ld a, $0
- ld [$cf0d], a
+ ld [wcf0d], a
jr .asm_753b3 ; 0x7539a $17
.asm_7539c
ld hl, SafariZoneEntranceText_753c0
call PrintText
ld a, $4
- ld [$c109], a
+ ld [wSpriteStateData1 + 9], a
ld a, $40
ld c, $1
call SafariZoneEntranceScript_752a3
ld a, $5
- ld [$cf0d], a
+ ld [wcf0d], a
.asm_753b3
ld a, $6
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
@@ -278,7 +277,7 @@
ld hl, SafariZoneEntranceText_753e6
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
ld hl, SafariZoneEntranceText_753f0
jr nz, .asm_278a6 ; 0x753db
--- a/scripts/safarizonesecrethouse.asm
+++ b/scripts/safarizonesecrethouse.asm
@@ -6,7 +6,7 @@
SafariZoneSecretHouseText1: ; 4a31c (12:631c)
db $08 ; asm
- ld a, [$d857]
+ ld a, [wd857]
bit 0, a
jr nz, .asm_20a9b ; 0x4a322
ld hl, SafariZoneSecretHouseText_4a350
@@ -16,7 +16,7 @@
jr nc, .BagFull
ld hl, ReceivedHM03Text
call PrintText
- ld hl, $d857
+ ld hl, wd857
set 0, [hl]
jr .asm_8f1fc ; 0x4a33d
.BagFull
--- a/scripts/saffrongym.asm
+++ b/scripts/saffrongym.asm
@@ -1,5 +1,5 @@
SaffronGymScript: ; 5d00d (17:500d)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
call nz, .extra
@@ -24,7 +24,7 @@
SaffronGymText_5d048: ; 5d048 (17:5048)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_SAFFRONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -36,17 +36,17 @@
dw SaffronGymScript3
SaffronGymScript3: ; 5d05b (17:505b)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, SaffronGymText_5d048
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
SaffronGymText_5d068: ; 5d068 (17:5068)
ld a, $a
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d7b3
+ ld hl, wd7b3
set 1, [hl]
ld bc, (TM_46 << 8) | 1
call GiveItem
@@ -54,7 +54,7 @@
ld a, $b
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d7b3
+ ld hl, wd7b3
set 0, [hl]
jr .asm_5d091
.BagFull
@@ -64,14 +64,14 @@
.asm_5d091
ld hl, W_OBTAINEDBADGES
set 5, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 5, [hl]
; deactivate gym trainers
- ld a, [$d7b3]
+ ld a, [wd7b3]
or %11111100
- ld [$d7b3], a
- ld hl, $d7b4
+ ld [wd7b3], a
+ ld hl, wd7b4
set 0, [hl]
jp SaffronGymText_5d048
@@ -94,7 +94,7 @@
SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText1 ; 0x51f0 TextBeforeBattle
dw SaffronGymAfterBattleText1 ; 0x51fa TextAfterBattle
dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
@@ -103,7 +103,7 @@
SaffronGymTrainerHeader1: ; 5d0cf (17:50cf)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText2 ; 0x51ff TextBeforeBattle
dw SaffronGymAfterBattleText2 ; 0x5209 TextAfterBattle
dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
@@ -112,7 +112,7 @@
SaffronGymTrainerHeader2: ; 5d0db (17:50db)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText3 ; 0x520e TextBeforeBattle
dw SaffronGymAfterBattleText3 ; 0x5218 TextAfterBattle
dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
@@ -121,7 +121,7 @@
SaffronGymTrainerHeader3: ; 5d0e7 (17:50e7)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText4 ; 0x521d TextBeforeBattle
dw SaffronGymAfterBattleText4 ; 0x5227 TextAfterBattle
dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
@@ -130,7 +130,7 @@
SaffronGymTrainerHeader4: ; 5d0f3 (17:50f3)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText5 ; 0x522c TextBeforeBattle
dw SaffronGymAfterBattleText5 ; 0x5236 TextAfterBattle
dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
@@ -139,7 +139,7 @@
SaffronGymTrainerHeader5: ; 5d0ff (17:50ff)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText6 ; 0x523b TextBeforeBattle
dw SaffronGymAfterBattleText6 ; 0x5245 TextAfterBattle
dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
@@ -148,7 +148,7 @@
SaffronGymTrainerHeader6: ; 5d10b (17:510b)
db $8 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7b3 ; flag's byte
+ dw wd7b3 ; flag's byte
dw SaffronGymBattleText7 ; 0x524a TextBeforeBattle
dw SaffronGymAfterBattleText7 ; 0x5254 TextAfterBattle
dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
@@ -158,7 +158,7 @@
SaffronGymText1: ; 5d118 (17:5118)
db $08 ; asm
- ld a, [$d7b3]
+ ld a, [wd7b3]
bit 1, a
jr z, .asm_e3544 ; 0x5d11e
bit 0, a
@@ -173,7 +173,7 @@
.asm_e3544 ; 0x5d134
ld hl, SaffronGymText_5d162
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, SaffronGymText_5d167
@@ -180,11 +180,11 @@
ld de, SaffronGymText_5d167
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $6
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
ld a, $3
ld [W_SAFFRONGYMCURSCRIPT], a
.asm_34c2c ; 0x5d15f
@@ -262,7 +262,7 @@
SaffronGymText9: ; 5d1cd (17:51cd)
db $08 ; asm
- ld a, [$d7b3]
+ ld a, [wd7b3]
bit 1, a
jr nz, .asm_13f3c ; 0x5d1d3
ld hl, SaffronGymText_5d1e6
--- a/scripts/saffronhouse2.asm
+++ b/scripts/saffronhouse2.asm
@@ -6,7 +6,7 @@
SaffronHouse2Text1: ; 1de41 (7:5e41)
db $08 ; asm
- ld a, [$d7bd]
+ ld a, [wd7bd]
bit 0, a
jr nz, .asm_9e72b ; 0x1de47
ld hl, TM29PreReceiveText
@@ -16,7 +16,7 @@
jr nc, .BagFull
ld hl, ReceivedTM29Text
call PrintText
- ld hl, $d7bd
+ ld hl, wd7bd
set 0, [hl]
jr .asm_fe4e1 ; 0x1de62
.BagFull
--- a/scripts/seafoamislands1.asm
+++ b/scripts/seafoamislands1.asm
@@ -1,6 +1,6 @@
SeafoamIslands1Script: ; 447e9 (11:47e9)
call EnableAutoTextBoxDrawing
- ld hl, $d7e7
+ ld hl, wd7e7
set 0, [hl]
ld hl, wFlags_0xcd60
bit 7, [hl]
@@ -9,34 +9,32 @@
ld hl, Seafoam1HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, $d7e8
- ld a, [$cd3d]
+ ld hl, wd7e8
+ ld a, [wWhichTrade]
cp $1
jr nz, .asm_44819 ; 0x44809 $e
set 6, [hl]
ld a, $d7
- ld [$d079], a
+ ld [wd079], a
ld a, $d9
- ld [$d07a], a
+ ld [wd07a], a
jr .asm_44825 ; 0x44817 $c
.asm_44819
set 7, [hl]
ld a, $d8
- ld [$d079], a
+ ld [wd079], a
ld a, $da
- ld [$d07a], a
+ ld [wd07a], a
.asm_44825
- ld a, [$d079]
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld a, [$d07a]
- ld [$cc4d], a
- ld a, $15
- jp Predef
+ ld a, [wd079]
+ ld [wcc4d], a
+ predef HideObject
+ ld a, [wd07a]
+ ld [wcc4d], a
+ predef_jump ShowObject
.asm_4483b
ld a, $9f
- ld [$d71d], a
+ ld [wd71d], a
ld hl, Seafoam1HolesCoords
jp Func_46981
--- a/scripts/seafoamislands2.asm
+++ b/scripts/seafoamislands2.asm
@@ -7,34 +7,32 @@
ld hl, Seafoam2HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, $d87f
- ld a, [$cd3d]
+ ld hl, wd87f
+ ld a, [wWhichTrade]
cp $1
jr nz, .asm_46340 ; 0x46330 $e
set 0, [hl]
ld a, $d9
- ld [$d079], a
+ ld [wd079], a
ld a, $db
- ld [$d07a], a
+ ld [wd07a], a
jr .asm_4634c ; 0x4633e $c
.asm_46340
set 1, [hl]
ld a, $da
- ld [$d079], a
+ ld [wd079], a
ld a, $dc
- ld [$d07a], a
+ ld [wd07a], a
.asm_4634c
- ld a, [$d079]
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld a, [$d07a]
- ld [$cc4d], a
- ld a, $15
- jp Predef
+ ld a, [wd079]
+ ld [wcc4d], a
+ predef HideObject
+ ld a, [wd07a]
+ ld [wcc4d], a
+ predef_jump ShowObject
.asm_46362
ld a, $a0
- ld [$d71d], a
+ ld [wd71d], a
ld hl, Seafoam2HolesCoords
jp Func_46981
--- a/scripts/seafoamislands3.asm
+++ b/scripts/seafoamislands3.asm
@@ -7,34 +7,32 @@
ld hl, Seafoam3HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, $d880
- ld a, [$cd3d]
+ ld hl, wd880
+ ld a, [wWhichTrade]
cp $1
jr nz, .asm_4647c ; 0x4646c $e
set 0, [hl]
ld a, $db
- ld [$d079], a
+ ld [wd079], a
ld a, $df
- ld [$d07a], a
+ ld [wd07a], a
jr .asm_46488 ; 0x4647a $c
.asm_4647c
set 1, [hl]
ld a, $dc
- ld [$d079], a
+ ld [wd079], a
ld a, $e0
- ld [$d07a], a
+ ld [wd07a], a
.asm_46488
- ld a, [$d079]
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld a, [$d07a]
- ld [$cc4d], a
- ld a, $15
- jp Predef
+ ld a, [wd079]
+ ld [wcc4d], a
+ predef HideObject
+ ld a, [wd07a]
+ ld [wcc4d], a
+ predef_jump ShowObject
.asm_4649e
ld a, $a1
- ld [$d71d], a
+ ld [wd71d], a
ld hl, Seafoam3HolesCoords
jp Func_46981
--- a/scripts/seafoamislands4.asm
+++ b/scripts/seafoamislands4.asm
@@ -7,38 +7,36 @@
ld hl, Seafoam4HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, $d881
- ld a, [$cd3d]
+ ld hl, wd881
+ ld a, [wWhichTrade]
cp $1
jr nz, .asm_465b8 ; 0x465a8 $e
set 0, [hl]
ld a, $dd
- ld [$d079], a
+ ld [wd079], a
ld a, $e1
- ld [$d07a], a
+ ld [wd07a], a
jr .asm_465c4 ; 0x465b6 $c
.asm_465b8
set 1, [hl]
ld a, $de
- ld [$d079], a
+ ld [wd079], a
ld a, $e2
- ld [$d07a], a
+ ld [wd07a], a
.asm_465c4
- ld a, [$d079]
- ld [$cc4d], a
- ld a, $11
- call Predef
- ld a, [$d07a]
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld a, [wd079]
+ ld [wcc4d], a
+ predef HideObject
+ ld a, [wd07a]
+ ld [wcc4d], a
+ predef ShowObject
jr .asm_465ed ; 0x465da $11
.asm_465dc
ld a, $a2
- ld [$d71d], a
+ ld [wd71d], a
ld hl, Seafoam4HolesCoords
call Func_46981
- ld a, [$d732]
+ ld a, [wd732]
bit 4, a
ret nz
.asm_465ed
@@ -58,7 +56,7 @@
dw SeafoamIslands4Script3
SeafoamIslands4Script0: ; 46603 (11:6603)
- ld a, [$d880]
+ ld a, [wd880]
and $3
cp $3
ret z
@@ -68,11 +66,11 @@
ld a, [W_XCOORD]
cp $f
ret nz
- ld hl, $ccd3
+ ld hl, wccd3
ld de, RLEMovement46632
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld hl, W_FLAGS_D733
set 2, [hl]
@@ -87,7 +85,7 @@
db $ff
SeafoamIslands4Script1: ; 46639 (11:6639)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $0
@@ -95,7 +93,7 @@
ret
SeafoamIslands4Script2: ; 46644 (11:6644)
- ld a, [$d880]
+ ld a, [wd880]
and $3
cp $3
ret z
@@ -110,13 +108,13 @@
.asm_4665e
ld de, RLEData_46688
.asm_46661
- ld hl, $ccd3
+ ld hl, wccd3
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$c206], a
- ld hl, $d730
+ ld [wSpriteStateData2 + $06], a
+ ld hl, wd730
set 7, [hl]
ld hl, W_FLAGS_D733
set 2, [hl]
@@ -132,7 +130,7 @@
db $80,$06,$10,$02,$80,$04,$FF
SeafoamIslands4Script3: ; 4668f (11:668f)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld a, $0
--- a/scripts/seafoamislands5.asm
+++ b/scripts/seafoamislands5.asm
@@ -7,7 +7,7 @@
SeafoamIslands5Script_467a5: ; 467a5 (11:67a5)
xor a
ld [W_SEAFOAMISLANDS5CURSCRIPT], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
SeafoamIslands5ScriptPointers: ; 467ad (11:67ad)
@@ -27,7 +27,7 @@
ret
SeafoamIslands5Script0: ; 467c7 (11:67c7)
- ld a, [$d880]
+ ld a, [wd880]
and $3
cp $3
ret z
@@ -34,19 +34,19 @@
ld hl, CoordsData_467fe
call ArePlayerCoordsInArray
ret nc
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
cp $3
jr nc, .asm_467e6
ld a, $40
- ld [$ccd4], a
+ ld [wccd4], a
ld a, $2
jr .asm_467e8
.asm_467e6
ld a, $1
.asm_467e8
- ld [$cd38], a
+ ld [wcd38], a
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
call Func_3486
ld hl, W_FLAGS_D733
res 2, [hl]
@@ -62,17 +62,17 @@
db $FF
SeafoamIslands5Script1: ; 46807 (11:6807)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_SEAFOAMISLANDS5CURSCRIPT], a
ret
SeafoamIslands5Script2: ; 46816 (11:6816)
- ld a, [$d881]
+ ld a, [wd881]
and $3
cp $3
ld a, $0
@@ -81,7 +81,7 @@
call ArePlayerCoordsInArray
ld a, $0
jr nc, .asm_46849
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
cp $1
jr nz, .asm_46837
ld de, RLEMovementData_46859
@@ -89,10 +89,10 @@
.asm_46837
ld de, RLEMovementData_46852
.asm_4683a
- ld hl, $ccd3
+ ld hl, wccd3
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
.asm_46849
@@ -117,7 +117,7 @@
db $FF
SeafoamIslands5Script3: ; 46860 (11:6860)
- ld a, [$cd38]
+ ld a, [wcd38]
ld b, a
cp $1
call z, SeaFoamIslands5Script_46872
@@ -130,8 +130,8 @@
SeaFoamIslands5Script_46872: ; 46872 (11:6872)
xor a
- ld [$d700], a
- ld [$d11a], a
+ ld [wd700], a
+ ld [wd11a], a
jp ForceBikeOrSurf
SeafoamIslands5TextPointers: ; 4687c (11:687c)
@@ -145,7 +145,7 @@
SeafoamIslands5TrainerHeader0: ; 46886 (11:6886)
db $2 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d882 ; flag's byte
+ dw wd882 ; flag's byte
dw SeafoamIslands5BattleText2 ; 0x68a2 TextBeforeBattle
dw SeafoamIslands5BattleText2 ; 0x68a2 TextAfterBattle
dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
--- a/scripts/silphco1.asm
+++ b/scripts/silphco1.asm
@@ -1,16 +1,15 @@
SilphCo1Script: ; 5d44e (17:544e)
call EnableAutoTextBoxDrawing
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ret z
- ld hl, $d7b9
+ ld hl, wd7b9
bit 7, [hl]
set 7, [hl]
ret nz
ld a, $4c
- ld [$cc4d], a
- ld a, $15
- jp Predef
+ ld [wcc4d], a
+ predef_jump ShowObject
SilphCo1TextPointers: ; 5d469 (17:5469)
dw SilphCo1Text1
--- a/scripts/silphco10.asm
+++ b/scripts/silphco10.asm
@@ -9,7 +9,7 @@
ret
SilphCo10Script_5a14f: ; 5a14f (16:614f)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,14 +16,13 @@
ld hl, DataTable_5a173 ; $6173
call SilphCo2Script_59d43
call SilphCo10Text_5a176
- ld a, [$d836]
+ ld a, [wd836]
bit 0, a
ret nz
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $405
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
DataTable_5a173: ; 5a173 (16:6173)
db $04,$05,$FF
@@ -32,7 +31,7 @@
ld a, [$ffe0]
and a
ret z
- ld hl, $d836
+ ld hl, wd836
set 0, [hl]
ret
@@ -53,7 +52,7 @@
SilphCo10TrainerHeader0: ; 5a192 (16:6192)
db $1 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d835 ; flag's byte
+ dw wd835 ; flag's byte
dw SilphCo10BattleText1 ; 0x61dd TextBeforeBattle
dw SilphCo10AfterBattleText1 ; 0x61e7 TextAfterBattle
dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
@@ -62,7 +61,7 @@
SilphCo10TrainerHeader1: ; 5a19e (16:619e)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d835 ; flag's byte
+ dw wd835 ; flag's byte
dw SilphCo10BattleText2 ; 0x61ec TextBeforeBattle
dw SilphCo10AfterBattleText2 ; 0x61f6 TextAfterBattle
dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
@@ -84,7 +83,7 @@
SilphCo10Text3: ; 5a1bf (16:61bf)
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ld hl, SilphCo10Text_5a1d8
jr nz, .asm_cf85f
--- a/scripts/silphco11.asm
+++ b/scripts/silphco11.asm
@@ -9,7 +9,7 @@
ret
SilphCo11Script_62110: ; 62110 (18:6110)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,14 +16,13 @@
ld hl, DataTable_62134 ; $6134
call SilphCo11Script_62137
call SilphCo11Script_62163
- ld a, [$d838]
+ ld a, [wd838]
bit 0, a
ret nz
ld a, $20
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $603
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
DataTable_62134: ; 62134 (18:6134)
db $06,$03,$FF
@@ -30,7 +29,7 @@
SilphCo11Script_62137: ; 62137 (18:6137)
push hl
- ld hl, $d73f
+ ld hl, wd73f
ld a, [hli]
ld b, a
ld a, [hl]
@@ -54,7 +53,7 @@
ld a, [hli]
cp c
jr nz, .asm_62143
- ld hl, $d73f
+ ld hl, wd73f
xor a
ld [hli], a
ld [hl], a
@@ -68,7 +67,7 @@
ld a, [$ffe0]
and a
ret z
- ld hl, $d838
+ ld hl, wd838
set 0, [hl]
ret
@@ -79,9 +78,8 @@
cp $ff
jr z, .asm_62181
push hl
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
pop hl
jr .asm_62170
.asm_62181
@@ -91,9 +89,8 @@
cp $ff
ret z
push hl
- ld [$cc4d], a
- ld a, $15
- call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+ ld [wcc4d], a
+ predef ShowObject
pop hl
jr .asm_62184
@@ -110,7 +107,7 @@
SilphCo11Script_621c4: ; 621c4 (18:61c4)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
SilphCo11Script_621c8: ; 621c8 (18:61c8)
ld [W_SILPHCO11CURSCRIPT], a
@@ -126,18 +123,18 @@
dw SilphCo11Script5
SilphCo11Script0: ; 621db (18:61db)
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ret nz
ld hl, CoordsData_62211 ; $6211
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
- ld a, [wWhichTrade] ; $cd3d
- ld [$cf0d], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcf0d], a
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $3
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
@@ -158,7 +155,7 @@
db $00,$00,$00,$FF
SilphCo11Script_6221a: ; 6221a (18:621a)
- ld [$d528], a
+ ld [wd528], a
ld a, $3
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
ld a, b
@@ -166,10 +163,10 @@
jp Func_34a6
SilphCo11Script5: ; 62227 (18:6227)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, SilphCo11Script_621c4
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr z, .asm_6223c
ld a, $2
@@ -181,7 +178,7 @@
.asm_62240
call SilphCo11Script_6221a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $6
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
@@ -190,20 +187,20 @@
call UpdateSprites
call Delay3
call GBFadeOut1
- ld hl, $d838
+ ld hl, wd838
set 7, [hl]
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
jp SilphCo11Script_621c8
SilphCo11Script3: ; 6226a (18:626a)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $3
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call SetSpriteMovementBytesToFF
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr z, .asm_62284
ld a, $2
@@ -219,7 +216,7 @@
jp SilphCo11Script_621c8
SilphCo11Script4: ; 62293 (18:6293)
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, SilphCo10Text_62330 ; $6330
@@ -226,11 +223,11 @@
ld de, SilphCo10Text_62330 ; $6330
call PreBattleSaveRegisters
ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $5
jp SilphCo11Script_621c8
@@ -246,7 +243,7 @@
SilphCo11TrainerHeader0: ; 622c3 (18:62c3)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d837 ; flag's byte
+ dw wd837 ; flag's byte
dw SilphCo11BattleText1 ; 0x6344 TextBeforeBattle
dw SilphCo11AfterBattleText1 ; 0x634e TextAfterBattle
dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
@@ -255,7 +252,7 @@
SilphCo11TrainerHeader1: ; 622cf (18:62cf)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d837 ; flag's byte
+ dw wd837 ; flag's byte
dw SilphCo11BattleText2 ; 0x635d TextBeforeBattle
dw SilphCo11AfterBattleText2 ; 0x6367 TextAfterBattle
dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
@@ -265,7 +262,7 @@
SilphCo11Text1: ; 622dc (18:62dc)
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 5, a
jp nz, .asm_62308
ld hl, SilphCoPresidentText
@@ -275,7 +272,7 @@
jr nc, .BagFull
ld hl, ReceivedSilphCoMasterBallText
call PrintText
- ld hl, $d838
+ ld hl, wd838
set 5, [hl]
jr .asm_fd405 ; 0x622fe
.BagFull
--- a/scripts/silphco2.asm
+++ b/scripts/silphco2.asm
@@ -9,7 +9,7 @@
ret
SilphCo2Script_59d07: ; 59d07 (16:5d07)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,24 +16,22 @@
ld hl, DataTable_59d3e
call SilphCo2Script_59d43
call SilphCo2Script_59d6f
- ld a, [$d826]
+ ld a, [wd826]
bit 5, a
jr nz, .asm_59d2e
push af
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0202
- ld a, $17
- call Predef
+ predef Func_ee9e
pop af
.asm_59d2e
bit 6, a
ret nz
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0502
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
DataTable_59d3e: ; 59d3e (16:5d3e)
db $02,$02,$05,$02,$FF
@@ -40,7 +38,7 @@
SilphCo2Script_59d43: ; 59d43 (16:5d43)
push hl
- ld hl, $d73f
+ ld hl, wd73f
ld a, [hli]
ld b, a
ld a, [hl]
@@ -64,7 +62,7 @@
ld a, [hli]
cp c
jr nz, .asm_59d4f
- ld hl, $d73f
+ ld hl, wd73f
xor a
ld [hli], a
ld [hl], a
@@ -75,7 +73,7 @@
ret
SilphCo2Script_59d6f: ; 59d6f (16:5d6f)
- ld hl, $d826
+ ld hl, wd826
ld a, [$ffe0]
and a
ret z
@@ -103,7 +101,7 @@
SilphCo2TrainerHeader0: ; 59d90 (16:5d90)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d825 ; flag's byte
+ dw wd825 ; flag's byte
dw SilphCo2BattleText1 ; 0x5e2a TextBeforeBattle
dw SilphCo2AfterBattleText1 ; 0x5e34 TextAfterBattle
dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
@@ -112,7 +110,7 @@
SilphCo2TrainerHeader1: ; 59d9c (16:5d9c)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d825 ; flag's byte
+ dw wd825 ; flag's byte
dw SilphCo2BattleText2 ; 0x5e39 TextBeforeBattle
dw SilphCo2AfterBattleText2 ; 0x5e43 TextAfterBattle
dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
@@ -121,7 +119,7 @@
SilphCo2TrainerHeader2: ; 59da8 (16:5da8)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d825 ; flag's byte
+ dw wd825 ; flag's byte
dw SilphCo2BattleText3 ; 0x5e48 TextBeforeBattle
dw SilphCo2AfterBattleText3 ; 0x5e52 TextAfterBattle
dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
@@ -130,7 +128,7 @@
SilphCo2TrainerHeader3: ; 59db4 (16:5db4)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d825 ; flag's byte
+ dw wd825 ; flag's byte
dw SilphCo2BattleText4 ; 0x5e57 TextBeforeBattle
dw SilphCo2AfterBattleText4 ; 0x5e61 TextAfterBattle
dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
@@ -140,7 +138,7 @@
SilphCo2Text1: ; 59dc1 (16:5dc1)
db $08 ; asm
- ld a, [$d826]
+ ld a, [wd826]
bit 7, a
jr nz, asm_b8a0d ; 0x59dc7
ld hl, SilphCo2Text_59ded
@@ -149,7 +147,7 @@
call GiveItem
ld hl, TM36NoRoomText
jr nc, asm_2c1e0 ; 0x59dd8
- ld hl, $d826
+ ld hl, wd826
set 7, [hl]
ld hl, ReceivedTM36Text
jr asm_2c1e0 ; 0x59de2
--- a/scripts/silphco3.asm
+++ b/scripts/silphco3.asm
@@ -9,7 +9,7 @@
ret
SilphCo3Script_59f71: ; 59f71 (16:5f71)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,30 +16,28 @@
ld hl, DataTable_59fa8 ; $5fa8
call SilphCo2Script_59d43
call SilphCo3Script_59fad
- ld a, [$d828]
+ ld a, [wd828]
bit 0, a
jr nz, .asm_59f98
push af
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $404
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
pop af
.asm_59f98
bit 1, a
ret nz
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $408
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
DataTable_59fa8: ; 59fa8 (16:5fa8)
db $04,$04,$04,$08,$FF
SilphCo3Script_59fad: ; 59fad (16:5fad)
- ld hl, $d828
+ ld hl, wd828
ld a, [$ffe0]
and a
ret z
@@ -66,7 +64,7 @@
SilphCo3TrainerHeader0: ; 59fcc (16:5fcc)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d827 ; flag's byte
+ dw wd827 ; flag's byte
dw SilphCo3BattleText1 ; 0x600d TextBeforeBattle
dw SilphCo3AfterBattleText1 ; 0x6017 TextAfterBattle
dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
@@ -75,7 +73,7 @@
SilphCo3TrainerHeader1: ; 59fd8 (16:5fd8)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d827 ; flag's byte
+ dw wd827 ; flag's byte
dw SilphCo3BattleText2 ; 0x6026 TextBeforeBattle
dw SilphCo3AfterBattleText2 ; 0x6030 TextAfterBattle
dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
@@ -85,7 +83,7 @@
SilphCo3Text1: ; 59fe5 (16:5fe5)
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ld hl, SilphCo3Text_59ffe
jr nz, asm_8c56f ; 0x59fee
--- a/scripts/silphco4.asm
+++ b/scripts/silphco4.asm
@@ -9,7 +9,7 @@
ret
SilphCo4Script_19d21: ; 19d21 (6:5d21)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,24 +16,22 @@
ld hl, SilphCo4Data19d58
call SilphCo4Script_19d5d
call SilphCo4Script_19d89
- ld a, [$d82a]
+ ld a, [wd82a]
bit 0, a
jr nz, .asm_19d48
push af
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0602
- ld a, $17
- call Predef
+ predef Func_ee9e
pop af
.asm_19d48
bit 1, a
ret nz
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0406
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
SilphCo4Data19d58: ; 19d58 (6:5d58)
db $06, $02, $04, $06, $ff
@@ -40,7 +38,7 @@
SilphCo4Script_19d5d: ; 19d5d (6:5d5d)
push hl
- ld hl, $d73f
+ ld hl, wd73f
ld a, [hli]
ld b, a
ld a, [hl]
@@ -64,7 +62,7 @@
ld a, [hli]
cp c
jr nz, .asm_19d69 ; 0x19d7c $eb
- ld hl, $d73f
+ ld hl, wd73f
xor a
ld [hli], a
ld [hl], a
@@ -75,7 +73,7 @@
ret
SilphCo4Script_19d89: ; 19d89 (6:5d89)
- ld hl, $d82a
+ ld hl, wd82a
ld a, [$ffe0]
and a
ret z
@@ -105,7 +103,7 @@
SilphCo4TrainerHeader0: ; 19dae (6:5dae)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d829 ; flag's byte
+ dw wd829 ; flag's byte
dw SilphCo4BattleText2 ; 0x5df4 TextBeforeBattle
dw SilphCo4AfterBattleText2 ; 0x5dfe TextAfterBattle
dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
@@ -114,7 +112,7 @@
SilphCo4TrainerHeader2: ; 19dba (6:5dba)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d829 ; flag's byte
+ dw wd829 ; flag's byte
dw SilphCo4BattleText3 ; 0x5e0d TextBeforeBattle
dw SilphCo4AfterBattleText3 ; 0x5e17 TextAfterBattle
dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
@@ -123,7 +121,7 @@
SilphCo4TrainerHeader3: ; 19dc6 (6:5dc6)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d829 ; flag's byte
+ dw wd829 ; flag's byte
dw SilphCo4BattleText4 ; 0x5e26 TextBeforeBattle
dw SilphCo4AfterBattleText4 ; 0x5e30 TextAfterBattle
dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
--- a/scripts/silphco5.asm
+++ b/scripts/silphco5.asm
@@ -9,7 +9,7 @@
ret
SilphCo5Script_19f4d: ; 19f4d (6:5f4d)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,15 +16,14 @@
ld hl, SilphCo5Coords
call SilphCo4Script_19d5d
call SilphCo5Script_19f9e
- ld a, [$d82c]
+ ld a, [wd82c]
bit 0, a
jr nz, .asm_19f74 ; 0x19f63 $f
push af
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0203
- ld a, $17
- call Predef
+ predef Func_ee9e
pop af
.asm_19f74
bit 1, a
@@ -31,25 +30,23 @@
jr nz, .asm_19f87 ; 0x19f76 $f
push af
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0603
- ld a, $17
- call Predef
+ predef Func_ee9e
pop af
.asm_19f87
bit 2, a
ret nz
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0507
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
SilphCo5Coords: ; 19f97 (6:5f97) ; coords?
db $02, $03, $06, $03, $05, $07, $ff
SilphCo5Script_19f9e: ; 19f9e (6:5f9e)
- ld hl, $d82c
+ ld hl, wd82c
ld a, [$ffe0]
and a
ret z
@@ -88,7 +85,7 @@
Silphco5TrainerHeader0: ; 19fd2 (6:5fd2)
db $2 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d82b ; flag's byte
+ dw wd82b ; flag's byte
dw SilphCo5BattleText2 ; 0x6024 TextBeforeBattle
dw SilphCo5AfterBattleText2 ; 0x602e TextAfterBattle
dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
@@ -97,7 +94,7 @@
Silphco5TrainerHeader2: ; 19fde (6:5fde)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d82b ; flag's byte
+ dw wd82b ; flag's byte
dw SilphCo5BattleText3 ; 0x603d TextBeforeBattle
dw SilphCo5AfterBattleText3 ; 0x6047 TextAfterBattle
dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
@@ -106,7 +103,7 @@
Silphco5TrainerHeader3: ; 19fea (6:5fea)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d82b ; flag's byte
+ dw wd82b ; flag's byte
dw SilphCo5BattleText4 ; 0x6056 TextBeforeBattle
dw SilphCo5AfterBattleText4 ; 0x6060 TextAfterBattle
dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
@@ -115,7 +112,7 @@
Silphco5TrainerHeader4: ; 19ff6 (6:5ff6)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d82b ; flag's byte
+ dw wd82b ; flag's byte
dw SilphCo5BattleText5 ; 0x606f TextBeforeBattle
dw SilphCo5AfterBattleText5 ; 0x6079 TextAfterBattle
dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
--- a/scripts/silphco6.asm
+++ b/scripts/silphco6.asm
@@ -9,7 +9,7 @@
ret
SilphCo6Script_1a1bf: ; 1a1bf (6:61bf)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,14 +16,13 @@
ld hl, SilphCo6Coords1
call SilphCo4Script_19d5d
call SilphCo6Script_1a1e6
- ld a, [$d82e]
+ ld a, [wd82e]
bit 7, a
ret nz
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $0602
- ld a, $17
- jp Predef
+ predef_jump Func_ee9e
SilphCo6Coords1: ; 1a1e3 (6:61e3)
db $06, $02
@@ -33,7 +32,7 @@
ld a, [$ffe0]
and a
ret z
- ld hl, $d82e
+ ld hl, wd82e
set 7, [hl]
ret
@@ -58,7 +57,7 @@
SilphCo6TrainerHeader0: ; 1a20a (6:620a)
db $6 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d82d ; flag's byte
+ dw wd82d ; flag's byte
dw SilphCo6BattleText2 ; 0x62ba TextBeforeBattle
dw SilphCo6AfterBattleText2 ; 0x62c4 TextAfterBattle
dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
@@ -67,7 +66,7 @@
SilphCo6TrainerHeader2: ; 1a216 (6:6216)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d82d ; flag's byte
+ dw wd82d ; flag's byte
dw SilphCo6BattleText3 ; 0x62d3 TextBeforeBattle
dw SilphCo6AfterBattleText3 ; 0x62dd TextAfterBattle
dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
@@ -76,7 +75,7 @@
SilphCo6TrainerHeader3: ; 1a222 (6:6222)
db $8 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d82d ; flag's byte
+ dw wd82d ; flag's byte
dw SilphCo6BattleText4 ; 0x62ec TextBeforeBattle
dw SilphCo6AfterBattleText4 ; 0x62f6 TextAfterBattle
dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
@@ -85,7 +84,7 @@
db $ff
SilphCo6Script_1a22f: ; 1a22f (6:622f)
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
jr nz, .asm_1a238 ; 0x1a234 $2
jr .asm_1a23a ; 0x1a236 $2
--- a/scripts/silphco7.asm
+++ b/scripts/silphco7.asm
@@ -9,7 +9,7 @@
ret
SilphCo7Script_51b77: ; 51b77 (14:5b77)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,15 +16,14 @@
ld hl, DataTable_51bc1 ; $5bc1
call SilphCo7Text_51bc8
call SilphCo7Text_51bf4
- ld a, [$d830]
+ ld a, [wd830]
bit 4, a
jr nz, .asm_51b9e
push af
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $305
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
pop af
.asm_51b9e
bit 5, a
@@ -31,19 +30,17 @@
jr nz, .asm_51bb1
push af
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $20a
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
pop af
.asm_51bb1
bit 6, a
ret nz
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $60a
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
DataTable_51bc1: ; 51bc1 (14:5bc1)
db $03,$05,$02,$0A,$06,$0A,$FF
@@ -50,7 +47,7 @@
SilphCo7Text_51bc8: ; 51bc8 (14:5bc8)
push hl
- ld hl, $d73f
+ ld hl, wd73f
ld a, [hli]
ld b, a
ld a, [hl]
@@ -74,7 +71,7 @@
ld a, [hli]
cp c
jr nz, .asm_51bd4
- ld hl, $d73f
+ ld hl, wd73f
xor a
ld [hli], a
ld [hl], a
@@ -85,7 +82,7 @@
ret
SilphCo7Text_51bf4: ; 51bf4 (14:5bf4)
- ld hl, $d830
+ ld hl, wd830
ld a, [$ffe0]
and a
ret z
@@ -104,7 +101,7 @@
SilphCo7Text_51c0c: ; 51c0c (14:5c0c)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
SilphCo7Text_51c10: ; 51c10 (14:5c10)
ld [W_SILPHCO7CURSCRIPT], a
@@ -120,7 +117,7 @@
dw SilphCo7Script5
SilphCo7Script0: ; 51c23 (14:5c23)
- ld a, [$d82f]
+ ld a, [wd82f]
bit 0, a
jp nz, CheckFightingMapTrainers
ld hl, CoordsData_51c78
@@ -127,13 +124,13 @@
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $4
- ld [$d528], a
+ ld [wd528], a
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
@@ -145,8 +142,8 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call SetSpriteMovementBytesToFF
ld de, MovementData_51c7d
- ld a, [wWhichTrade] ; $cd3d
- ld [$cf0d], a
+ ld a, [wWhichTrade] ; wWhichTrade
+ ld [wcf0d], a
cp $1
jr z, .asm_51c6c
inc de
@@ -166,16 +163,16 @@
db $40,$40,$40,$40,$FF
SilphCo7Script3: ; 51c82 (14:5c82)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $d
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
call Delay3
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, SilphCo7Text14 ; $5ec8
@@ -182,8 +179,8 @@
ld de, SilphCo7Text_51ecd ; $5ecd
call PreBattleSaveRegisters
ld a, SONY2 + $c8
- ld [W_CUROPPONENT], a ; $d059
- ld a, [W_RIVALSTARTER] ; $d715
+ ld [W_CUROPPONENT], a ; wd059
+ ld a, [W_RIVALSTARTER] ; wd715
cp STARTER2
jr nz, .asm_51cb6
ld a, $7
@@ -196,20 +193,20 @@
.asm_51cbe
ld a, $9
.asm_51cc0
- ld [W_TRAINERNO], a ; $d05d
+ ld [W_TRAINERNO], a ; wd05d
ld a, $4
jp SilphCo7Text_51c10
SilphCo7Script4: ; 51cc8 (14:5cc8)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, SilphCo7Text_51c0c
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d82f
+ ld [wJoyIgnore], a
+ ld hl, wd82f
set 0, [hl]
ld a, $4
- ld [$d528], a
+ ld [wd528], a
ld a, $9
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
ld a, $4
@@ -219,11 +216,11 @@
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld de, MovementData_51d1d
- ld a, [$cf0d]
+ ld a, [wcf0d]
cp $1
jr nz, .asm_51d0e
ld de, MovementData_51d1a
@@ -241,16 +238,15 @@
db $80,$40,$40,$C0,$C0,$C0,$00,$FF
SilphCo7Script5: ; 51d25 (14:5d25)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
ld a, $a7
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
call Func_2307
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
jp SilphCo7Text_51c10
SilphCo7TextPointers: ; 51d3f (14:5d3f)
@@ -274,7 +270,7 @@
SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d82f ; flag's byte
+ dw wd82f ; flag's byte
dw SilphCo7BattleText1 ; 0x5e5a TextBeforeBattle
dw SilphCo7AfterBattleText1 ; 0x5e64 TextAfterBattle
dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
@@ -283,7 +279,7 @@
SilphCo7TrainerHeader2: ; 51d69 (14:5d69)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d82f ; flag's byte
+ dw wd82f ; flag's byte
dw SilphCo7BattleText2 ; 0x5e73 TextBeforeBattle
dw SilphCo7AfterBattleText2 ; 0x5e7d TextAfterBattle
dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
@@ -292,7 +288,7 @@
SilphCo7TrainerHeader3: ; 51d75 (14:5d75)
db $7 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d82f ; flag's byte
+ dw wd82f ; flag's byte
dw SilphCo7BattleText3 ; 0x5e8c TextBeforeBattle
dw SilphCo7AfterBattleText3 ; 0x5e96 TextAfterBattle
dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
@@ -301,7 +297,7 @@
SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
db $8 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d82f ; flag's byte
+ dw wd82f ; flag's byte
dw SilphCo7BattleText4 ; 0x5ea5 TextBeforeBattle
dw SilphCo7AfterBattleText4 ; 0x5eaf TextAfterBattle
dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
@@ -312,10 +308,10 @@
SilphCo7Text1:
; lapras guy
db $08 ; asm
- ld a, [$d72e]
+ ld a, [wd72e]
bit 0, a ; got lapras?
jr z, .givelapras
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a ; saved silph?
jr nz, .savedsilph
ld hl, .LaprasGuyText
@@ -327,13 +323,13 @@
ld bc, (LAPRAS << 8) | 15
call GivePokemon
jr nc, .done
- ld a, [$ccd3]
+ ld a, [wccd3]
and a
call z, WaitForTextScrollButtonPress
call EnableAutoTextBoxDrawing
ld hl, .HeresYourLaprasText
call PrintText
- ld hl, $d72e
+ ld hl, wd72e
set 0, [hl]
jr .done
.savedsilph
@@ -360,7 +356,7 @@
SilphCo7Text2:
db $8
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a ; saved silph?
jr nz, .savedsilph
ld hl, .rockettext
@@ -382,7 +378,7 @@
SilphCo7Text3:
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a ; saved silph?
jr nz, .savedsilph
ld hl, .rockettext
@@ -404,7 +400,7 @@
SilphCo7Text4:
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a ; saved silph?
jr nz, .savedsilph
ld hl, .rockettext
--- a/scripts/silphco8.asm
+++ b/scripts/silphco8.asm
@@ -9,7 +9,7 @@
ret
SilphCo8Script_5651a: ; 5651a (15:651a)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,14 +16,13 @@
ld hl, DataTable_5653e ; $653e
call SilphCo8Script_56541
call SilphCo8Script_5656d
- ld a, [$d832]
+ ld a, [wd832]
bit 0, a
ret nz
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $403
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
DataTable_5653e: ; 5653e (15:653e)
db $04,$03,$FF
@@ -30,7 +29,7 @@
SilphCo8Script_56541: ; 56541 (15:6541)
push hl
- ld hl, $d73f
+ ld hl, wd73f
ld a, [hli]
ld b, a
ld a, [hl]
@@ -54,7 +53,7 @@
ld a, [hli]
cp c
jr nz, .asm_5654d
- ld hl, $d73f
+ ld hl, wd73f
xor a
ld [hli], a
ld [hl], a
@@ -68,7 +67,7 @@
ld a, [$ffe0]
and a
ret z
- ld hl, $d832
+ ld hl, wd832
set 0, [hl]
ret
@@ -87,7 +86,7 @@
SilphCo8TrainerHeader0: ; 56585 (15:6585)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d831 ; flag's byte
+ dw wd831 ; flag's byte
dw SilphCo8BattleText1 ; 0x65e6 TextBeforeBattle
dw SilphCo8AfterBattleText1 ; 0x65f0 TextAfterBattle
dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
@@ -96,7 +95,7 @@
SilphCo8TrainerHeader1: ; 56591 (15:6591)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d831 ; flag's byte
+ dw wd831 ; flag's byte
dw SilphCo8BattleText2 ; 0x65f5 TextBeforeBattle
dw SilphCo8AfterBattleText2 ; 0x65ff TextAfterBattle
dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
@@ -105,7 +104,7 @@
SilphCo8TrainerHeader2: ; 5659d (15:659d)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d831 ; flag's byte
+ dw wd831 ; flag's byte
dw SilphCo8BattleText3 ; 0x6604 TextBeforeBattle
dw SilphCo8AfterBattleText3 ; 0x660e TextAfterBattle
dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
@@ -115,7 +114,7 @@
SilphCo8Text1: ; 565aa (15:65aa)
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
ld hl, SilphCo8Text_565c3
jr nz, asm_a468f ; 0x565b3
--- a/scripts/silphco9.asm
+++ b/scripts/silphco9.asm
@@ -9,7 +9,7 @@
ret
SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
@@ -16,15 +16,14 @@
ld hl, DataTable_5d82e ; $582e
call SilphCo9Script_5d837
call SilphCo9Script_5d863
- ld a, [$d834]
+ ld a, [wd834]
bit 0, a
jr nz, .asm_5d7f8
push af
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $401
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
pop af
.asm_5d7f8
bit 1, a
@@ -31,10 +30,9 @@
jr nz, .asm_5d80b
push af
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $209
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
pop af
.asm_5d80b
bit 2, a
@@ -41,19 +39,17 @@
jr nz, .asm_5d81e
push af
ld a, $54
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $509
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef Func_ee9e
pop af
.asm_5d81e
bit 3, a
ret nz
ld a, $5f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $605
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
DataTable_5d82e: ; 5d82e (17:582e)
db $04,$01,$02,$09,$05,$09,$06,$05,$FF
@@ -60,7 +56,7 @@
SilphCo9Script_5d837: ; 5d837 (17:5837)
push hl
- ld hl, $d73f
+ ld hl, wd73f
ld a, [hli]
ld b, a
ld a, [hl]
@@ -84,7 +80,7 @@
ld a, [hli]
cp c
jr nz, .asm_5d843
- ld hl, $d73f
+ ld hl, wd73f
xor a
ld [hli], a
ld [hl], a
@@ -95,7 +91,7 @@
ret
SilphCo9Script_5d863: ; 5d863 (17:5863)
- ld hl, $d834
+ ld hl, wd834
ld a, [$ffe0]
and a
ret z
@@ -134,7 +130,7 @@
SilphCo9TrainerHeader0: ; 5d893 (17:5893)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d833 ; flag's byte
+ dw wd833 ; flag's byte
dw SilphCo9BattleText1 ; 0x5912 TextBeforeBattle
dw SilphCo9AfterBattleText1 ; 0x591c TextAfterBattle
dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
@@ -143,7 +139,7 @@
SilphCo9TrainerHeader1: ; 5d89f (17:589f)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d833 ; flag's byte
+ dw wd833 ; flag's byte
dw SilphCo9BattleText2 ; 0x5921 TextBeforeBattle
dw SilphCo9AfterBattleText2 ; 0x592b TextAfterBattle
dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
@@ -152,7 +148,7 @@
SilphCo9TrainerHeader2: ; 5d8ab (17:58ab)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d833 ; flag's byte
+ dw wd833 ; flag's byte
dw SilphCo9BattleText3 ; 0x5930 TextBeforeBattle
dw SilphCo9AfterBattleText3 ; 0x593a TextAfterBattle
dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
@@ -162,13 +158,12 @@
SilphCo9Text1: ; 5d8b8 (17:58b8)
db $08 ; asm
- ld a, [$d838]
+ ld a, [wd838]
bit 7, a
jr nz, .asm_a14c3 ; 0x5d8be
ld hl, SilphCo9Text_5d8e5
call PrintText
- ld a, $7
- call Predef
+ predef HealParty
call GBFadeOut2
call Delay3
call GBFadeIn2
--- a/scripts/silphcoelevator.asm
+++ b/scripts/silphcoelevator.asm
@@ -1,5 +1,5 @@
SilphCoElevatorScript: ; 457c0 (11:57c0)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
push hl
@@ -9,16 +9,16 @@
res 7, [hl]
call nz, SilphCoElevatorScript_45827
xor a
- ld [$cf0c], a
+ ld [wcf0c], a
inc a
- ld [$cc3c], a
+ ld [wcc3c], a
ret
SilphCoElevatorScript_457dc: ; 457dc (11:57dc)
- ld hl, $d3af
- ld a, [$d73b]
+ ld hl, wd3af
+ ld a, [wd73b]
ld b, a
- ld a, [$d73c]
+ ld a, [wd73c]
ld c, a
call SilphCoElevatorScript_457ea
@@ -35,7 +35,7 @@
ld hl, SilphCoElavatorFloors ; $5804
call LoadItemList
ld hl, SilphCoElevatorWarpMaps ; $5811
- ld de, $cc5b
+ ld de, wcc5b
ld bc, $16
call CopyData
ret
@@ -73,6 +73,5 @@
db $08 ; asm
call SilphCoElevatorScript_457f1
ld hl, SilphCoElevatorWarpMaps ; $5811
- ld a, $61
- call Predef
+ predef Func_1c9c6
jp TextScriptEnd
--- a/scripts/ssanne10.asm
+++ b/scripts/ssanne10.asm
@@ -29,7 +29,7 @@
SSAnne10TrainerHeader0: ; 61d84 (18:5d84)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d809 ; flag's byte
+ dw wd809 ; flag's byte
dw SSAnne10BattleText1 ; 0x5e16 TextBeforeBattle
dw SSAnne10AfterBattleText1 ; 0x5e20 TextAfterBattle
dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
@@ -38,7 +38,7 @@
SSAnne10TrainerHeader1: ; 61d90 (18:5d90)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d809 ; flag's byte
+ dw wd809 ; flag's byte
dw SSAnne10BattleText2 ; 0x5e25 TextBeforeBattle
dw SSAnne10AfterBattleText2 ; 0x5e2f TextAfterBattle
dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
@@ -47,7 +47,7 @@
SSAnne10TrainerHeader2: ; 61d9c (18:5d9c)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d809 ; flag's byte
+ dw wd809 ; flag's byte
dw SSAnne10BattleText3 ; 0x5e34 TextBeforeBattle
dw SSAnne10AfterBattleText3 ; 0x5e3e TextAfterBattle
dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
@@ -56,7 +56,7 @@
SSAnne10TrainerHeader3: ; 61da8 (18:5da8)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d809 ; flag's byte
+ dw wd809 ; flag's byte
dw SSAnne10BattleText4 ; 0x5e43 TextBeforeBattle
dw SSAnne10AfterBattleText4 ; 0x5e4d TextAfterBattle
dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
@@ -65,7 +65,7 @@
SSAnne10TrainerHeader4: ; 61db4 (18:5db4)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d809 ; flag's byte
+ dw wd809 ; flag's byte
dw SSAnne10BattleText5 ; 0x5e52 TextBeforeBattle
dw SSAnne10AfterBattleText5 ; 0x5e5c TextAfterBattle
dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
@@ -74,7 +74,7 @@
SSAnne10TrainerHeader5: ; 61dc0 (18:5dc0)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d809 ; flag's byte
+ dw wd809 ; flag's byte
dw SSAnne10BattleText6 ; 0x5e61 TextBeforeBattle
dw SSAnne10AfterBattleText6 ; 0x5e6b TextAfterBattle
dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
--- a/scripts/ssanne2.asm
+++ b/scripts/ssanne2.asm
@@ -6,7 +6,7 @@
SSAnne2Script_613ab: ; 613ab (18:53ab)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_SSANNE2CURSCRIPT], a
ret
@@ -25,25 +25,24 @@
call ArePlayerCoordsInArray
ret nc
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
ld [$ffdb], a
ld a, $71
- ld [$cc4d], a
- ld a, $15
- call Predef
+ ld [wcc4d], a
+ predef ShowObject
call Delay3
ld a, $2
ld [$ff8c], a
call SetSpriteMovementBytesToFF
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, [$ffdb]
cp $2
jr nz, .asm_61400 ; 0x613f9 $5
@@ -67,11 +66,11 @@
db $08,$24,$08,$25,$FF
SSAnne2Script_61416: ; 61416 (18:5416)
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
cp $25
jr nz, .asm_61426
ld a, $2
- ld [$d528], a
+ ld [wd528], a
ld a, $c
jr .asm_61427
.asm_61426
@@ -83,12 +82,12 @@
jp Func_34a6
SSAnne2Script1: ; 61430 (18:5430)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
call SSAnne2Script_61416
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $2
ld [$ff8c], a
call DisplayTextID
@@ -118,12 +117,12 @@
ret
SSAnne2Script2: ; 6146d (18:546d)
- ld a, [$d057]
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, SSAnne2Script_613ab
call SSAnne2Script_61416
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $3
ld [$ff8c], a
call DisplayTextID
@@ -142,7 +141,7 @@
ld [$ff8c], a
call MoveSprite
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $3
@@ -156,15 +155,14 @@
db $00,$00,$00,$00,$FF
SSAnne2Script3: ; 614be (18:54be)
- ld a, [$d730]
+ ld a, [wd730]
bit 0, a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $71
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
call Func_2307
ld a, $4
ld [W_SSANNE2CURSCRIPT], a
@@ -183,7 +181,7 @@
db $8
ld hl, SSAnneRivalBeforeBattleText
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, SSAnneRivalDefeatedText
--- a/scripts/ssanne5.asm
+++ b/scripts/ssanne5.asm
@@ -23,7 +23,7 @@
SSAnne5TrainerHeader0: ; 616d1 (18:56d1)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7ff ; flag's byte
+ dw wd7ff ; flag's byte
dw SSAnne5BattleText1 ; 0x5703 TextBeforeBattle
dw SSAnne5AfterBattleText1 ; 0x570d TextAfterBattle
dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle
@@ -32,7 +32,7 @@
SSAnne5TrainerHeader1: ; 616dd (18:56dd)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7ff ; flag's byte
+ dw wd7ff ; flag's byte
dw SSAnne5BattleText2 ; 0x571c TextBeforeBattle
dw SSAnne5AfterBattleText2 ; 0x5726 TextAfterBattle
dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle
--- a/scripts/ssanne7.asm
+++ b/scripts/ssanne7.asm
@@ -3,10 +3,10 @@
jp EnableAutoTextBoxDrawing
SSAnne7Script_6189b: ; 6189b (18:589b)
- ld a, [$d803]
+ ld a, [wd803]
bit 1, a
ret nz
- ld hl, $d72d
+ ld hl, wd72d
set 5, [hl]
ret
@@ -17,7 +17,7 @@
SSAnne7Text1: ; 618ad (18:58ad)
db $08 ; asm
- ld a, [$d803]
+ ld a, [wd803]
bit 0, a
jr nz, .asm_797c4 ; 0x618b3
ld hl, SSAnne7RubText
@@ -29,13 +29,13 @@
jr nc, .BagFull
ld hl, ReceivedHM01Text
call PrintText
- ld hl, $d803
+ ld hl, wd803
set 0, [hl]
jr .asm_0faf5 ; 0x618d4
.BagFull
ld hl, HM01NoRoomText
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 5, [hl]
jr .asm_0faf5 ; 0x618e1
.asm_797c4 ; 0x618e3
@@ -47,27 +47,27 @@
SSAnne7RubText: ; 618ec (18:58ec)
TX_FAR _SSAnne7RubText
db $8
- ld a, [$c0ef]
+ ld a, [wc0ef]
cp $1f
- ld [$c0f0], a
+ ld [wc0f0], a
jr nz, .asm_61908 ; 0x618f9 $d
ld a, $ff
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
ld a, Bank(Func_9876)
- ld [$c0ef], a
+ ld [wc0ef], a
.asm_61908
ld a, MUSIC_PKMN_HEALED
- ld [$c0ee], a
+ ld [wc0ee], a
call PlaySound
.asm_61910
- ld a, [$c026]
+ ld a, [wc026]
cp MUSIC_PKMN_HEALED
jr z, .asm_61910 ; 0x61915 $f9
call Func_2307
- ld hl, $d803
+ ld hl, wd803
set 1, [hl]
- ld hl, $d72d
+ ld hl, wd72d
res 5, [hl]
jp TextScriptEnd
--- a/scripts/ssanne8.asm
+++ b/scripts/ssanne8.asm
@@ -29,7 +29,7 @@
SSAnne8TrainerHeader0: ; 619a5 (18:59a5)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d805 ; flag's byte
+ dw wd805 ; flag's byte
dw SSAnne8BattleText1 ; 0x5a0b TextBeforeBattle
dw SSAnne8AfterBattleText1 ; 0x5a15 TextAfterBattle
dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
@@ -38,7 +38,7 @@
SSAnne8TrainerHeader1: ; 619b1 (18:59b1)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d805 ; flag's byte
+ dw wd805 ; flag's byte
dw SSAnne8BattleText2 ; 0x5a1a TextBeforeBattle
dw SSAnne8AfterBattleText2 ; 0x5a24 TextAfterBattle
dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
@@ -47,7 +47,7 @@
SSAnne8TrainerHeader2: ; 619bd (18:59bd)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d805 ; flag's byte
+ dw wd805 ; flag's byte
dw SSAnne8BattleText3 ; 0x5a29 TextBeforeBattle
dw SSAnne8AfterBattleText3 ; 0x5a33 TextAfterBattle
dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
@@ -56,7 +56,7 @@
SSAnne8TrainerHeader3: ; 619c9 (18:59c9)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d805 ; flag's byte
+ dw wd805 ; flag's byte
dw SSAnne8BattleText4 ; 0x5a38 TextBeforeBattle
dw SSAnne8AfterBattleText4 ; 0x5a42 TextAfterBattle
dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
--- a/scripts/ssanne9.asm
+++ b/scripts/ssanne9.asm
@@ -1,8 +1,8 @@
SSAnne9Script: ; 61b4b (18:5b4b)
ld a, $1
- ld [$cf0c], a
+ ld [wcf0c], a
xor a
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, SSAnne9TrainerHeaders
ld de, SSAnne9ScriptPointers
ld a, [W_SSANNE9CURSCRIPT]
@@ -34,7 +34,7 @@
SSAnne9TrainerHeader0: ; 61b84 (18:5b84)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d807 ; flag's byte
+ dw wd807 ; flag's byte
dw SSAnne9BattleText1 ; 0x5c51 TextBeforeBattle
dw SSAnne9AfterBattleText1 ; 0x5c5b TextAfterBattle
dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
@@ -43,7 +43,7 @@
SSAnne9TrainerHeader1: ; 61b90 (18:5b90)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d807 ; flag's byte
+ dw wd807 ; flag's byte
dw SSAnne9BattleText2 ; 0x5c60 TextBeforeBattle
dw SSAnne9AfterBattleText2 ; 0x5c6a TextAfterBattle
dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
@@ -52,7 +52,7 @@
SSAnne9TrainerHeader2: ; 61b9c (18:5b9c)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d807 ; flag's byte
+ dw wd807 ; flag's byte
dw SSAnne9BattleText3 ; 0x5c6f TextBeforeBattle
dw SSAnne9AfterBattleText3 ; 0x5c79 TextAfterBattle
dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
@@ -61,7 +61,7 @@
SSAnne9TrainerHeader3: ; 61ba8 (18:5ba8)
db $4 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d807 ; flag's byte
+ dw wd807 ; flag's byte
dw SSAnne9BattleText4 ; 0x5c7e TextBeforeBattle
dw SSAnne9AfterBattleText4 ; 0x5c88 TextAfterBattle
dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
--- a/scripts/undergroundpathentranceroute5.asm
+++ b/scripts/undergroundpathentranceroute5.asm
@@ -13,7 +13,6 @@
db $08 ; asm
ld a, $9
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
ld hl, UndergroundPathEntranceRoute5_5d6af
ret
--- a/scripts/unknowndungeon3.asm
+++ b/scripts/unknowndungeon3.asm
@@ -21,7 +21,7 @@
UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f)
db $1 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d85f ; flag's byte
+ dw wd85f ; flag's byte
dw UnknownDungeon3MewtwoText ; 0x5f26 TextBeforeBattle
dw UnknownDungeon3MewtwoText ; 0x5f26 TextAfterBattle
dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
--- a/scripts/vermilioncity.asm
+++ b/scripts/vermilioncity.asm
@@ -1,6 +1,6 @@
VermilionCityScript: ; 197a1 (6:57a1)
call EnableAutoTextBoxDrawing
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
push hl
@@ -14,14 +14,14 @@
jp CallFunctionInTable
VermilionCityScript_197c0: ; 197c0 (6:57c0)
- call GenRandom
+ call Random
ld a, [$ffd4]
and $e
- ld [$d743], a
+ ld [wd743], a
ret
VermilionCityScript_197cb: ; 197cb (6:57cb)
- ld hl, $d803
+ ld hl, wd803
bit 2, [hl]
ret z
bit 3, [hl]
@@ -39,7 +39,7 @@
dw VermilionCityScript4
VermilionCityScript0: ; 197e6 (6:57e6)
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
and a
ret nz
ld hl, CoordsData_19823
@@ -46,25 +46,24 @@
call ArePlayerCoordsInArray
ret nc
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
- ld [$cf0d], a
+ ld [hJoyHeld], a
+ ld [wcf0d], a
ld a, $3
ld [$ff8c], a
call DisplayTextID
- ld a, [$d803]
+ ld a, [wd803]
bit 2, a
jr nz, .asm_19810 ; 0x19804 $a
ld b, $3f
- ld a, $1c
- call Predef
+ predef IsItemInBag_
ld a, b
and a
ret nz
.asm_19810
ld a, $40
- ld [$ccd3], a
+ ld [wccd3], a
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $1
ld [W_VERMILIONCITYCURSCRIPT], a
@@ -84,12 +83,12 @@
VermilionCityScript2: ; 19833 (6:5833)
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $40
- ld [$ccd3], a
- ld [$ccd4], a
+ ld [wccd3], a
+ ld [wccd4], a
ld a, $2
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $3
ld [W_VERMILIONCITYCURSCRIPT], a
@@ -96,18 +95,18 @@
ret
VermilionCityScript3: ; 1984e (6:584e)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [wJoyIgnore], a
+ ld [hJoyHeld], a
ld a, $0
ld [W_VERMILIONCITYCURSCRIPT], a
ret
VermilionCityScript1: ; 1985f (6:585f)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
ld c, $a
@@ -137,7 +136,7 @@
VermilionCityText2: ; 1988e (6:588e)
db $08 ; asm
- ld a, [$d803]
+ ld a, [wd803]
bit 2, a
jr nz, .asm_359bd ; 0x19894
ld hl, VermilionCityText_198a7
@@ -159,10 +158,10 @@
VermilionCityText3: ; 198b1 (6:58b1)
db $08 ; asm
- ld a, [$d803]
+ ld a, [wd803]
bit 2, a
jr nz, .asm_3e0e9 ; 0x198b7
- ld a, [$c109]
+ ld a, [wSpriteStateData1 + 9]
cp $c
jr z, .asm_07af3 ; 0x198be
ld hl, VermilionCityCoords1
@@ -176,8 +175,7 @@
ld hl, SSAnneWelcomeText9
call PrintText
ld b, S_S__TICKET
- ld a, $1c
- call Predef
+ predef IsItemInBag_
ld a, b
and a
jr nz, .asm_0419b ; 0x198df
--- a/scripts/vermiliondock.asm
+++ b/scripts/vermiliondock.asm
@@ -1,11 +1,11 @@
VermilionDockScript: ; 1db52 (7:5b52)
call EnableAutoTextBoxDrawing
- ld hl, $d803
+ ld hl, wd803
bit 4, [hl]
jr nz, .asm_1db8d ; 0x1db5a $31
bit 0, [hl]
ret z
- ld a, [$d42f]
+ ld a, [wd42f]
cp $1
ret nz
bit 2, [hl]
@@ -12,28 +12,28 @@
jp z, VermilionDock_1db9b
set 4, [hl]
call Delay3
- ld hl, $d730
+ ld hl, wd730
set 7, [hl]
- ld hl, $ccd3
+ ld hl, wccd3
ld a, $40
ld [hli], a
ld [hli], a
ld [hl], a
ld a, $3
- ld [$cd38], a
+ ld [wcd38], a
xor a
- ld [$c206], a
- ld [$cd3b], a
+ ld [wSpriteStateData2 + $06], a
+ ld [wcd3b], a
dec a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ret
.asm_1db8d
bit 5, [hl]
ret nz
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
set 5, [hl]
ret
@@ -40,8 +40,8 @@
VermilionDock_1db9b: ; 1db9b (7:5b9b)
set 2, [hl]
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
- ld [$c0ee], a
+ ld [wJoyIgnore], a
+ ld [wc0ee], a
call PlaySound
ld c, BANK(Music_Surfing)
ld a, MUSIC_SURFING
@@ -48,13 +48,12 @@
call PlayMusic
callba LoadSmokeTileFourTimes
xor a
- ld [$c102], a
+ ld [wSpriteStateData1 + 2], a
ld c, $78
call DelayFrames
ld b, $9c
call CopyScreenTileBufferToVRAM
- FuncCoord 0, 10 ; $c468
- ld hl, Coord
+ hlCoord 0, 10
ld bc, $0078
ld a, $14
call FillMemory
@@ -63,11 +62,11 @@
call Delay3
xor a
ld [$ffba], a
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld [$ff49], a
ld a, $58
- ld [$cd3e], a
- ld hl, $d526
+ ld [wTrainerEngageDistance], a
+ ld hl, wd526
ld c, [hl]
inc hl
ld b, [hl]
@@ -76,7 +75,7 @@
ld a, (SFX_02_54 - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
ld a, $ff
- ld [$cfcb], a
+ ld [wcfcb], a
ld d, $0
ld e, $8
.asm_1dbfa
@@ -83,9 +82,9 @@
ld hl, $0002
add hl, bc
ld a, l
- ld [$d526], a
+ ld [wd526], a
ld a, h
- ld [$d527], a
+ ld [wd527], a
push hl
push de
call ScheduleEastColumnRedraw
@@ -112,7 +111,7 @@
ld a, $90
ld [$ffb0], a
ld a, $1
- ld [$cfcb], a
+ ld [wcfcb], a
pop hl
pop bc
ld [hl], b
@@ -119,7 +118,7 @@
dec hl
ld [hl], c
call LoadPlayerSpriteGraphics
- ld hl, $d3ae
+ ld hl, wd3ae
dec [hl]
ret
@@ -126,8 +125,8 @@
VermilionDock_1dc42: ; 1dc42 (7:5c42)
push bc
push de
- ld hl, $c311
- ld a, [$cd3d]
+ ld hl, wOAMBuffer + $11
+ ld a, [wWhichTrade]
swap a
ld c, a
ld de, $0004
@@ -142,14 +141,14 @@
ret
VermilionDock_1dc59: ; 1dc59 (7:5c59)
- ld a, [$cd3e]
+ ld a, [wTrainerEngageDistance]
sub $10
- ld [$cd3e], a
+ ld [wTrainerEngageDistance], a
ld c, a
ld b, $64
- ld a, [$cd3d]
+ ld a, [wWhichTrade]
inc a
- ld [$cd3d], a
+ ld [wWhichTrade], a
ld a, $1
ld de, VermilionDockOAMBlock
call WriteOAMBlock
@@ -180,15 +179,15 @@
ret
VermilionDock_1dc94: ; 1dc94 (7:5c94)
- ld hl, $cc5b
+ ld hl, wcc5b
ld bc, $00b4
ld a, $14
call FillMemory
- ld hl, $9940
- ld de, $cc5b
+ ld hl, vBGMap0 + 10 * 32
+ ld de, wcc5b
ld bc, $000c
call CopyVideoData
- ld hl, $c754
+ ld hl, wOverworldMap + 10 + 7 * VERMILION_DOCK_WIDTH ; 10, 7
ld a, $d
ld [hli], a
ld [hli], a
--- a/scripts/vermiliongym.asm
+++ b/scripts/vermiliongym.asm
@@ -1,5 +1,5 @@
VermilionGymScript: ; 5ca26 (17:4a26)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
push hl
@@ -28,7 +28,7 @@
db "LT.SURGE@"
VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
- ld a, [$d773]
+ ld a, [wd773]
bit 0, a
jr nz, .asm_5ca78
ld a, $24
@@ -38,14 +38,13 @@
call PlaySound
ld a, $5
.asm_5ca7f
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $202
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_VERMILIONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -57,17 +56,17 @@
dw VermilionGymScript3
VermilionGymScript3: ; 5ca9d (17:4a9d)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, VermilionGymScript_5ca8a
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
VermilionGymScript_5caaa: ; 5caaa (17:4aaa)
ld a, $6
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d773
+ ld hl, wd773
set 7, [hl]
ld bc, (TM_24 << 8) | 1
call GiveItem
@@ -75,7 +74,7 @@
ld a, $7
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d773
+ ld hl, wd773
set 6, [hl]
jr .asm_5cad3
.BagFull
@@ -85,13 +84,13 @@
.asm_5cad3
ld hl, W_OBTAINEDBADGES
set 2, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 2, [hl]
; deactivate gym trainers
- ld a, [$d773]
+ ld a, [wd773]
or %00011100
- ld [$d773], a
+ ld [wd773], a
jp VermilionGymScript_5ca8a
@@ -109,7 +108,7 @@
VermilionGymTrainerHeader0: ; 5caf8 (17:4af8)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d773 ; flag's byte
+ dw wd773 ; flag's byte
dw VermilionGymBattleText1 ; 0x4b9a TextBeforeBattle
dw VermilionGymAfterBattleText1 ; 0x4ba4 TextAfterBattle
dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
@@ -118,7 +117,7 @@
VermilionGymTrainerHeader1: ; 5cb04 (17:4b04)
db $3 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d773 ; flag's byte
+ dw wd773 ; flag's byte
dw VermilionGymBattleText2 ; 0x4bb3 TextBeforeBattle
dw VermilionGymAfterBattleText2 ; 0x4bbd TextAfterBattle
dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
@@ -127,7 +126,7 @@
VermilionGymTrainerHeader2: ; 5cb10 (17:4b10)
db $4 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d773 ; flag's byte
+ dw wd773 ; flag's byte
dw VermilionGymBattleText3 ; 0x4bcc TextBeforeBattle
dw VermilionGymAfterBattleText3 ; 0x4bd6 TextAfterBattle
dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
@@ -137,7 +136,7 @@
VermilionGymText1: ; 5cb1d (17:4b1d)
db $08 ; asm
- ld a, [$d773]
+ ld a, [wd773]
bit 7, a
jr z, .asm_7cc29 ; 0x5cb23
bit 6, a
@@ -152,7 +151,7 @@
.asm_7cc29 ; 0x5cb39
ld hl, VermilionGymText_5cb6d
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, ReceivedThunderbadgeText
@@ -159,11 +158,11 @@
ld de, ReceivedThunderbadgeText
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
xor a
ldh [$b4], a
ld a, $3
@@ -254,7 +253,7 @@
VermilionGymText5: ; 5cbdb (17:4bdb)
db $08 ; asm
- ld a, [$d72a]
+ ld a, [wd72a]
bit 2, a
jr nz, .asm_13b67 ; 0x5cbe1
ld hl, VermilionGymText_5cbf4
--- a/scripts/vermilionhouse2.asm
+++ b/scripts/vermilionhouse2.asm
@@ -6,19 +6,19 @@
VermilionHouse2Text1: ; 56075 (15:6075)
db $08 ; asm
- ld a, [$d728]
+ ld a, [wd728]
bit 3, a
jr nz, .asm_03ef5
ld hl, VermilionHouse2Text_560b1
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_eb1b7
ld bc, (OLD_ROD << 8) | 1
call GiveItem
jr nc, .BagFull
- ld hl, $d728
+ ld hl, wd728
set 3, [hl]
ld hl, VermilionHouse2Text_560b6
jr .asm_5dd95
--- a/scripts/vermilionhouse3.asm
+++ b/scripts/vermilionhouse3.asm
@@ -8,6 +8,5 @@
db $08 ; asm
ld a, $4
ld [wWhichTrade], a
- ld a, $54
- call Predef
+ predef Predef54
jp TextScriptEnd
--- a/scripts/victoryroad1.asm
+++ b/scripts/victoryroad1.asm
@@ -1,5 +1,5 @@
VictoryRoad1Script: ; 5da0a (17:5a0a)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
call nz, .next
@@ -11,14 +11,13 @@
ld [W_VICTORYROAD1CURSCRIPT], a
ret
.next
- ld a, [$d869]
+ ld a, [wd869]
bit 7, a
ret z
ld a, $1d
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $604
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a)
dw VictoryRoad1Script0
@@ -26,15 +25,15 @@
dw EndTrainerBattle
VictoryRoad1Script0: ; 5da40 (17:5a40)
- ld a, [$d869]
+ ld a, [wd869]
bit 7, a
jp nz, CheckFightingMapTrainers
ld hl, CoordsData_5da5c ; $5a5c
call CheckBoulderCoords
jp nc, CheckFightingMapTrainers
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
- ld hl, $d869
+ ld hl, wd869
set 7, [hl]
ret
@@ -54,7 +53,7 @@
VictoryRoad1TrainerHeader0: ; 5da6d (17:5a6d)
db $1 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d869 ; flag's byte
+ dw wd869 ; flag's byte
dw VictoryRoad1BattleText1 ; 0x5a9a TextBeforeBattle
dw VictoryRoad1AfterBattleText1 ; 0x5aa4 TextAfterBattle
dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
@@ -63,7 +62,7 @@
VictoryRoad1TrainerHeader1: ; 5da79 (17:5a79)
db $2 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d869 ; flag's byte
+ dw wd869 ; flag's byte
dw VictoryRoad1BattleText2 ; 0x5aa9 TextBeforeBattle
dw VictoryRoad1AfterBattleText2 ; 0x5ab3 TextAfterBattle
dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
--- a/scripts/victoryroad2.asm
+++ b/scripts/victoryroad2.asm
@@ -1,9 +1,9 @@
VictoryRoad2Script: ; 5179d (14:579d)
- ld hl, $d126
+ ld hl, wd126
bit 6, [hl]
res 6, [hl]
call nz, VictoryRoad2Script_517c4
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
call nz, VictoryRoad2Script_517c9
@@ -16,11 +16,11 @@
ret
VictoryRoad2Script_517c4: ; 517c4 (14:57c4)
- ld hl, $d869
+ ld hl, wd869
res 7, [hl]
VictoryRoad2Script_517c9: ; 517c9 (14:57c9)
- ld a, [$d7ee]
+ ld a, [wd7ee]
bit 0, a
jr z, .asm_517da
push af
@@ -35,9 +35,8 @@
ld bc, $70b
VictoryRoad2Script_517e2: ; 517e2 (14:57e2)
- ld [$d09f], a
- ld a, $17
- call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ ld [wd09f], a
+ predef Func_ee9e
ret
VictoryRoad2ScriptPointers: ; 517eb (14:57eb)
@@ -49,8 +48,8 @@
ld hl, CoordsData_51816 ; $5816
call CheckBoulderCoords
jp nc, CheckFightingMapTrainers
- ld hl, $d7ee
- ld a, [wWhichTrade] ; $cd3d
+ ld hl, wd7ee
+ ld a, [wWhichTrade] ; wWhichTrade
cp $2
jr z, .asm_5180b
bit 0, [hl]
@@ -62,7 +61,7 @@
set 7, [hl]
ret nz
.asm_51810
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
ret
@@ -90,7 +89,7 @@
VictoryRoad2TrainerHeader0: ; 51835 (14:5835)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7ee ; flag's byte
+ dw wd7ee ; flag's byte
dw VictoryRoad2BattleText1 ; 0x58ca TextBeforeBattle
dw VictoryRoad2AfterBattleText1 ; 0x58d4 TextAfterBattle
dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
@@ -99,7 +98,7 @@
VictoryRoad2TrainerHeader2: ; 51841 (14:5841)
db $2 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7ee ; flag's byte
+ dw wd7ee ; flag's byte
dw VictoryRoad2BattleText2 ; 0x58d9 TextBeforeBattle
dw VictoryRoad2AfterBattleText2 ; 0x58e3 TextAfterBattle
dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
@@ -108,7 +107,7 @@
VictoryRoad2TrainerHeader3: ; 5184d (14:584d)
db $3 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7ee ; flag's byte
+ dw wd7ee ; flag's byte
dw VictoryRoad2BattleText3 ; 0x58e8 TextBeforeBattle
dw VictoryRoad2AfterBattleText3 ; 0x58f2 TextAfterBattle
dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
@@ -117,7 +116,7 @@
VictoryRoad2TrainerHeader4: ; 51859 (14:5859)
db $4 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7ee ; flag's byte
+ dw wd7ee ; flag's byte
dw VictoryRoad2BattleText4 ; 0x58f7 TextBeforeBattle
dw VictoryRoad2AfterBattleText4 ; 0x5901 TextAfterBattle
dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
@@ -126,7 +125,7 @@
VictoryRoad2TrainerHeader5: ; 51865 (14:5865)
db $5 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d7ee ; flag's byte
+ dw wd7ee ; flag's byte
dw VictoryRoad2BattleText5 ; 0x5906 TextBeforeBattle
dw VictoryRoad2AfterBattleText5 ; 0x5910 TextAfterBattle
dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
@@ -135,7 +134,7 @@
VictoryRoad2TrainerHeader6: ; 51871 (14:5871)
db $6 ; flag's bit
db ($0 << 4) ; trainer's view range
- dw $d7ee ; flag's byte
+ dw wd7ee ; flag's byte
dw VictoryRoad2BattleText6 ; 0x58ba TextBeforeBattle
dw VictoryRoad2BattleText6 ; 0x58ba TextAfterBattle
dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
--- a/scripts/victoryroad3.asm
+++ b/scripts/victoryroad3.asm
@@ -9,18 +9,17 @@
ret
VictoryRoad3Script_44996: ; 44996 (11:4996)
- ld hl, $d126
+ ld hl, wd126
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, $d813
+ ld hl, wd813
bit 0, [hl]
ret z
ld a, $1d
- ld [$d09f], a
+ ld [wd09f], a
ld bc, $503
- ld a, $17
- jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ predef_jump Func_ee9e
VictoryRoad3ScriptPointers: ; 449b1 (11:49b1)
dw VictoryRoad3Script0
@@ -35,27 +34,25 @@
ld hl, .coordsData_449f9 ; $49f9
call CheckBoulderCoords
jp nc, .asm_449fe
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp $1
jr nz, .asm_449dc
- ld hl, $d126
+ ld hl, wd126
set 5, [hl]
- ld hl, $d813
+ ld hl, wd813
set 0, [hl]
ret
.asm_449dc
- ld hl, $d813
+ ld hl, wd813
bit 6, [hl]
set 6, [hl]
jr nz, .asm_449fe
ld a, $7a
- ld [$cc4d], a
- ld a, $11
- call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ ld [wcc4d], a
+ predef HideObject
ld a, $60
- ld [$cc4d], a
- ld a, $15
- jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+ ld [wcc4d], a
+ predef_jump ShowObject
.coordsData_449f9: ; 449f9 (11:49f9)
db $05,$03
@@ -64,19 +61,19 @@
.asm_449fe
ld a, $c2
- ld [$d71d], a
+ ld [wd71d], a
ld hl, .coordsData_449f9 ; $49f9
call Func_46981
- ld a, [wWhichTrade] ; $cd3d
+ ld a, [wWhichTrade] ; wWhichTrade
cp $1
jr nz, .asm_44a1b
- ld hl, $d72d
+ ld hl, wd72d
res 4, [hl]
- ld hl, $d732
+ ld hl, wd732
res 4, [hl]
ret
.asm_44a1b
- ld a, [$d72d]
+ ld a, [wd72d]
bit 4, a
jp z, CheckFightingMapTrainers
ret
@@ -97,7 +94,7 @@
VictoryRoad3TrainerHeader0: ; 44a38 (11:4a38)
db $1 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d813 ; flag's byte
+ dw wd813 ; flag's byte
dw VictoryRoad3BattleText2 ; 0x4a91 TextBeforeBattle
dw VictoryRoad3AfterBattleText2 ; 0x4a9b TextAfterBattle
dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
@@ -106,7 +103,7 @@
VictoryRoad3TrainerHeader2: ; 44a44 (11:4a44)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d813 ; flag's byte
+ dw wd813 ; flag's byte
dw VictoryRoad3BattleText3 ; 0x4aa0 TextBeforeBattle
dw VictoryRoad3AfterBattleText3 ; 0x4aaa TextAfterBattle
dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
@@ -115,7 +112,7 @@
VictoryRoad3TrainerHeader3: ; 44a50 (11:4a50)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d813 ; flag's byte
+ dw wd813 ; flag's byte
dw VictoryRoad3BattleText4 ; 0x4aaf TextBeforeBattle
dw VictoryRoad3AfterBattleText4 ; 0x4ab9 TextAfterBattle
dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
@@ -124,7 +121,7 @@
VictoryRoad3TrainerHeader4: ; 44a5c (11:4a5c)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d813 ; flag's byte
+ dw wd813 ; flag's byte
dw VictoryRoad3BattleText5 ; 0x4abe TextBeforeBattle
dw VictoryRoad3AfterBattleText5 ; 0x4ac8 TextAfterBattle
dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
--- a/scripts/viridiancity.asm
+++ b/scripts/viridiancity.asm
@@ -15,13 +15,13 @@
jp ViridianCityScript_1903d
ViridianCityScript_1900b: ; 1900b (6:500b)
- ld a, [$d74c]
+ ld a, [wd74c]
bit 0, a
ret nz
ld a, [W_OBTAINEDBADGES]
cp %01111111
jr nz, .asm_1901e ; 0x19016 $6
- ld hl, $d74c
+ ld hl, wd74c
set 0, [hl]
ret
.asm_1901e
@@ -35,7 +35,7 @@
ld [$ff8c], a
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
call ViridianCityScript_190cf
ld a, $3
ld [W_VIRIDIANCITYCURSCRIPT], a
@@ -42,7 +42,7 @@
ret
ViridianCityScript_1903d: ; 1903d (6:503d)
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
ret nz
ld a, [W_YCOORD]
@@ -55,7 +55,7 @@
ld [$ff8c], a
call DisplayTextID
xor a
- ld [H_CURRENTPRESSEDBUTTONS], a
+ ld [hJoyHeld], a
call ViridianCityScript_190cf
ld a, $3
ld [W_VIRIDIANCITYCURSCRIPT], a
@@ -62,13 +62,13 @@
ret
ViridianCityScript1: ; 19062 (6:5062)
- ld a, [$c134]
+ ld a, [wSpriteStateData1 + $34]
ld [$ffeb], a
- ld a, [$c136]
+ ld a, [wSpriteStateData1 + $36]
ld [$ffec], a
- ld a, [$c234]
+ ld a, [wSpriteStateData2 + $34]
ld [$ffed], a
- ld a, [$c235]
+ ld a, [wSpriteStateData2 + $35]
ld [$ffee], a
xor a
ld [wListScrollOffset], a
@@ -86,29 +86,29 @@
ViridianCityScript2: ; 1908f (6:508f)
ld a, [$ffeb]
- ld [$c134], a
+ ld [wSpriteStateData1 + $34], a
ld a, [$ffec]
- ld [$c136], a
+ ld [wSpriteStateData1 + $36], a
ld a, [$ffed]
- ld [$c234], a
+ ld [wSpriteStateData2 + $34], a
ld a, [$ffee]
- ld [$c235], a
+ ld [wSpriteStateData2 + $35], a
call UpdateSprites
call Delay3
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $f
ld [$ff8c], a
call DisplayTextID
xor a
ld [W_BATTLETYPE], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $0
ld [W_VIRIDIANCITYCURSCRIPT], a
ret
ViridianCityScript3: ; 190c1 (6:50c1)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
@@ -119,12 +119,12 @@
ViridianCityScript_190cf: ; 190cf (6:50cf)
call Func_3486
ld a, $1
- ld [$cd38], a
+ ld [wcd38], a
ld a, $80
- ld [$ccd3], a
+ ld [wccd3], a
xor a
- ld [$c109], a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wSpriteStateData1 + 9], a
+ ld [wJoyIgnore], a
ret
ViridianCityTextPointers: ; 190e4 (6:50e4)
@@ -154,7 +154,7 @@
cp %01111111
ld hl, ViridianCityText_19127
jr z, .asm_ae9fe ; 0x19110
- ld a, [$d751]
+ ld a, [wd751]
bit 1, a
jr nz, .asm_ae9fe ; 0x19117
ld hl, ViridianCityText_19122
@@ -175,7 +175,7 @@
ld hl, ViridianCityText_1914d
call PrintText
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_6dfea ; 0x1913a
ld hl, ViridianCityText_19157
@@ -201,7 +201,7 @@
ViridianCityText4: ; 1915c (6:515c)
db $08 ; asm
- ld a, [$d74b]
+ ld a, [wd74b]
bit 5, a
jr nz, .asm_83894 ; 0x19162
ld hl, ViridianCityText_19175
@@ -236,7 +236,7 @@
ViridianCityText6: ; 19196 (6:5196)
db $08 ; asm
- ld a, [$d74c]
+ ld a, [wd74c]
bit 1, a
jr nz, .asm_4e5a0 ; 0x1919c
ld hl, ViridianCityText_191ca
@@ -246,7 +246,7 @@
jr nc, .BagFull
ld hl, ReceivedTM42Text
call PrintText
- ld hl, $d74c
+ ld hl, wd74c
set 1, [hl]
jr .asm_3c73c ; 0x191b7
.BagFull
@@ -282,7 +282,7 @@
ld c, $2
call DelayFrames
call YesNoChoice
- ld a, [$cc26]
+ ld a, [wCurrentMenuItem]
and a
jr z, .asm_42f68 ; 0x191f2
ld hl, ViridianCityText_1920f
--- a/scripts/viridianforest.asm
+++ b/scripts/viridianforest.asm
@@ -32,7 +32,7 @@
ViridianForestTrainerHeader0: ; 61142 (18:5142)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f3 ; flag's byte
+ dw wd7f3 ; flag's byte
dw ViridianForestBattleText1 ; 0x518a TextBeforeBattle
dw ViridianForestAfterBattleText1 ; 0x5194 TextAfterBattle
dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
@@ -41,7 +41,7 @@
ViridianForestTrainerHeader1: ; 6114e (18:514e)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d7f3 ; flag's byte
+ dw wd7f3 ; flag's byte
dw ViridianForestBattleText2 ; 0x5199 TextBeforeBattle
dw ViridianForestAfterBattleText2 ; 0x51a3 TextAfterBattle
dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
@@ -50,7 +50,7 @@
ViridianForestTrainerHeader2: ; 6115a (18:515a)
db $4 ; flag's bit
db ($1 << 4) ; trainer's view range
- dw $d7f3 ; flag's byte
+ dw wd7f3 ; flag's byte
dw ViridianForestBattleText3 ; 0x51a8 TextBeforeBattle
dw ViridianForestAfterBattleText3 ; 0x51b2 TextAfterBattle
dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
--- a/scripts/viridiangym.asm
+++ b/scripts/viridiangym.asm
@@ -17,7 +17,7 @@
ViridianGymScript_748d6: ; 748d6 (1d:48d6)
xor a
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld [W_VIRIDIANGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -30,9 +30,9 @@
dw ViridianGymScript4
ViridianGymScript0: ; 748eb (1d:48eb)
- ld a, [W_YCOORD] ; $d361
+ ld a, [W_YCOORD] ; wd361
ld b, a
- ld a, [W_XCOORD] ; $d362
+ ld a, [W_XCOORD] ; wd362
ld c, a
ld hl, ViridianGymArrowTilePlayerMovement
call Func_3442
@@ -39,12 +39,12 @@
cp $ff
jp z, CheckFightingMapTrainers
call Func_3486
- ld hl, $d736
+ ld hl, wd736
set 7, [hl]
ld a, (SFX_02_52 - SFX_Headers_02) / 3
call PlaySound
ld a, $ff
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ld a, $4
ld [W_CURMAPSCRIPT], a
ret
@@ -121,12 +121,12 @@
db $20,$0C,$FF
ViridianGymScript4: ; 7496b (1d:496b)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
jr nz, .asm_74980
xor a
- ld [wJoypadForbiddenButtonsMask], a
- ld hl, $d736
+ ld [wJoyIgnore], a
+ ld hl, wd736
res 7, [hl]
ld a, $0
ld [W_CURMAPSCRIPT], a
@@ -137,16 +137,16 @@
jp Bankswitch
ViridianGymScript3: ; 74988 (1d:4988)
- ld a, [W_ISINBATTLE] ; $d057
+ ld a, [W_ISINBATTLE] ; W_ISINBATTLE
cp $ff
jp z, ViridianGymScript_748d6
ld a, $f0
- ld [wJoypadForbiddenButtonsMask], a
+ ld [wJoyIgnore], a
ViridianGymScript3_74995: ; 74995 (1d:4995)
ld a, $c
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d751
+ ld hl, wd751
set 1, [hl]
ld bc, (TM_27 << 8) | 1
call GiveItem
@@ -154,7 +154,7 @@
ld a, $d
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
call DisplayTextID
- ld hl, $d751
+ ld hl, wd751
set 0, [hl]
jr .asm_749be
.BagFull
@@ -164,22 +164,21 @@
.asm_749be
ld hl, W_OBTAINEDBADGES
set 7, [hl]
- ld hl, $d72a
+ ld hl, wd72a
set 7, [hl]
; deactivate gym trainers
- ld a, [$d751]
+ ld a, [wd751]
or %11111100
- ld [$d751], a
- ld a, [$d752]
+ ld [wd751], a
+ ld a, [wd752]
or %00000011
- ld [$d752], a
+ ld [wd752], a
ld a, $23
- ld [$cc4d], a
- ld a, $15
- call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
- ld hl, $d7eb
+ ld [wcc4d], a
+ predef ShowObject
+ ld hl, wd7eb
set 1, [hl]
set 7, [hl]
jp ViridianGymScript_748d6
@@ -204,7 +203,7 @@
ViridianGymTrainerHeader0: ; 74a08 (1d:4a08)
db $2 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText1 ; 0x4afd TextBeforeBattle
dw ViridianGymAfterBattleText1 ; 0x4b07 TextAfterBattle
dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
@@ -213,7 +212,7 @@
ViridianGymTrainerHeader1: ; 74a14 (1d:4a14)
db $3 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText2 ; 0x4b16 TextBeforeBattle
dw ViridianGymAfterBattleText2 ; 0x4b20 TextAfterBattle
dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
@@ -222,7 +221,7 @@
ViridianGymTrainerHeader2: ; 74a20 (1d:4a20)
db $4 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText3 ; 0x4b2f TextBeforeBattle
dw ViridianGymAfterBattleText3 ; 0x4b39 TextAfterBattle
dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
@@ -231,7 +230,7 @@
ViridianGymTrainerHeader3: ; 74a2c (1d:4a2c)
db $5 ; flag's bit
db ($2 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText4 ; 0x4b48 TextBeforeBattle
dw ViridianGymAfterBattleText4 ; 0x4b52 TextAfterBattle
dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
@@ -240,7 +239,7 @@
ViridianGymTrainerHeader4: ; 74a38 (1d:4a38)
db $6 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText5 ; 0x4b61 TextBeforeBattle
dw ViridianGymAfterBattleText5 ; 0x4b6b TextAfterBattle
dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
@@ -249,7 +248,7 @@
ViridianGymTrainerHeader5: ; 74a44 (1d:4a44)
db $7 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText6 ; 0x4b7a TextBeforeBattle
dw ViridianGymAfterBattleText6 ; 0x4b84 TextAfterBattle
dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
@@ -258,7 +257,7 @@
ViridianGymTrainerHeader6: ; 74a50 (1d:4a50)
db $8 ; flag's bit
db ($3 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText7 ; 0x4b93 TextBeforeBattle
dw ViridianGymAfterBattleText7 ; 0x4b9d TextAfterBattle
dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
@@ -267,7 +266,7 @@
ViridianGymTrainerHeader7: ; 74a5c (1d:4a5c)
db $9 ; flag's bit
db ($4 << 4) ; trainer's view range
- dw $d751 ; flag's byte
+ dw wd751 ; flag's byte
dw ViridianGymBattleText8 ; 0x4bac TextBeforeBattle
dw ViridianGymAfterBattleText8 ; 0x4bb6 TextAfterBattle
dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
@@ -277,7 +276,7 @@
ViridianGymText1: ; 74a69 (1d:4a69)
db $08 ; asm
- ld a, [$d751]
+ ld a, [wd751]
bit 1, a
jr z, .asm_6de66 ; 0x74a6f
bit 0, a
@@ -287,14 +286,13 @@
jr .asm_6dff7 ; 0x74a7b
.asm_9fc95 ; 0x74a7d
ld a, $1
- ld [$cc3c], a
+ ld [wcc3c], a
ld hl, ViridianGymText_74ad9
call PrintText
call GBFadeIn1
ld a, $32
- ld [$cc4d], a
- ld a, $11
- call Predef
+ ld [wcc4d], a
+ predef HideObject
call UpdateSprites
call Delay3
call GBFadeOut1
@@ -302,7 +300,7 @@
.asm_6de66 ; 0x74aa0
ld hl, ViridianGymText_74ace
call PrintText
- ld hl, $d72d
+ ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, ViridianGymText_74ad3
@@ -309,11 +307,11 @@
ld de, ViridianGymText_74ad3
call PreBattleSaveRegisters
ldh a, [$8c]
- ld [$cf13], a
+ ld [wcf13], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $8
- ld [$d05c], a
+ ld [W_GYMLEADERNO], a
ld a, $3
ld [W_VIRIDIANGYMCURSCRIPT], a
.asm_6dff7 ; 0x74acb
@@ -493,7 +491,7 @@
ViridianGymText10: ; 74bbb (1d:4bbb)
db $08 ; asm
- ld a, [$d751]
+ ld a, [wd751]
bit 1, a
jr nz, .asm_1abd1 ; 0x74bc1
ld hl, ViridianGymText_74bd4
--- a/scripts/viridianmart.asm
+++ b/scripts/viridianmart.asm
@@ -6,7 +6,7 @@
jp CallFunctionInTable
ViridianMartScript_1d47d: ; 1d47d (7:547d)
- ld a, [$d74e]
+ ld a, [wd74e]
bit 0, a
jr nz, .asm_1d489 ; 0x1d482 $5
ld hl, ViridianMartTextPointers ; $54e0
@@ -30,11 +30,11 @@
ld a, $4
ld [$ff8c], a
call DisplayTextID
- ld hl, $ccd3
+ ld hl, wccd3
ld de, RLEMovement1d4bb
call DecodeRLEList
dec a
- ld [$cd38], a
+ ld [wcd38], a
call Func_3486
ld a, $1
ld [W_VIRIDIANMARKETCURSCRIPT], a
@@ -46,7 +46,7 @@
db $ff
ViridianMartScript1: ; 1d4c0 (7:54c0)
- ld a, [$cd38]
+ ld a, [wcd38]
and a
ret nz
call Delay3
@@ -55,7 +55,7 @@
call DisplayTextID
ld bc, (OAKS_PARCEL << 8) + 1
call GiveItem
- ld hl, $d74e
+ ld hl, wd74e
set 1, [hl]
ld a, $2
ld [W_VIRIDIANMARKETCURSCRIPT], a
--- a/text.asm
+++ b/text.asm
@@ -35,7 +35,7 @@
done
_TrainerNameText:: ; 80045 (20:4045)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text ": @@"
_NoNibbleText:: ; 8004d (20:404d)
@@ -80,7 +80,7 @@
_FoundItemText:: ; 80119 (20:4119)
text $52, " found"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_NoMoreRoomForItemText:: ; 8012a (20:412a)
@@ -100,7 +100,7 @@
cont "I'm supposed to"
cont "give you an"
cont "@"
- TX_RAM $cc5b
+ TX_RAM wcc5b
text "!"
para "So, ", $52, "! Have"
@@ -124,7 +124,7 @@
text " kinds"
line "if you want the"
cont "@"
- TX_RAM $cc5b
+ TX_RAM wcc5b
text "."
done
@@ -136,7 +136,7 @@
db $0
line "kinds, come back"
cont "for @"
- TX_RAM $cc5b
+ TX_RAM wcc5b
text "."
done
@@ -154,7 +154,7 @@
_OaksAideGotItemText:: ; 802d9 (20:42d9)
text $52, " got the"
line "@"
- TX_RAM $cc5b
+ TX_RAM wcc5b
text "!@@"
_OaksAideNoRoomText:: ; 802ec (20:42ec)
@@ -162,7 +162,7 @@
line "don't have any"
cont "room for the"
cont "@"
- TX_RAM $cc5b
+ TX_RAM wcc5b
text "."
done
@@ -239,7 +239,7 @@
TX_RAM W_TRAINERNAME
text " with-"
line "drew @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
text "!"
prompt
@@ -247,18 +247,18 @@
TX_RAM W_TRAINERNAME
db $0
line "used @"
- TX_RAM $CD6D
+ TX_RAM wcd6d
db $0
cont "on @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
text "!"
prompt
_TradeWentToText:: ; 880ef (22:40ef)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " went"
line "to @"
- TX_RAM $d887
+ TX_RAM W_GRASSRATE
text "."
done
@@ -265,26 +265,26 @@
_TradeForText:: ; 88103 (22:4103)
text "For ", $52, "'s"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text ","
done
_TradeSendsText:: ; 88112 (22:4112)
- TX_RAM $d887
+ TX_RAM W_GRASSRATE
text " sends"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "."
done
_TradeWavesFarewellText:: ; 88124 (22:4124)
- TX_RAM $d887
+ TX_RAM W_GRASSRATE
text " waves"
line "farewell as"
done
_TradeTransferredText:: ; 8813b (22:413b)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " is"
line "transferred."
done
@@ -292,15 +292,15 @@
_TradeTakeCareText:: ; 88150 (22:4150)
text "Take good care of"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "."
done
_TradeWillTradeText:: ; 8816a (22:416a)
- TX_RAM $d887
+ TX_RAM W_GRASSRATE
text " will"
line "trade @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
done
@@ -307,7 +307,7 @@
_TradeforText:: ; 88180 (22:4180)
text "for ", $52, "'s"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "."
done
@@ -343,7 +343,7 @@
_LinedUpText:: ; 88206 (22:4206)
text " lined up!"
line "Scored @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " coins!"
done
@@ -356,10 +356,10 @@
_DexSeenOwnedText:: ; 8823e (22:423e)
text "#DEX Seen:@"
- TX_NUM $cc5b, 1, 3
+ TX_NUM wcc5b, 1, 3
db $0
line " Owned:@"
- TX_NUM $cc5c, 1, 3
+ TX_NUM wcc5c, 1, 3
db "@"
_DexRatingText:: ; 88267 (22:4267)
@@ -980,7 +980,7 @@
_FoundHiddenItemText:: ; 894d0 (22:54d0)
text $52, " found"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!@@"
_HiddenItemBagFullText:: ; 894e1 (22:54e1)
@@ -992,13 +992,13 @@
_FoundHiddenCoinsText:: ; 8950b (22:550b)
text $52, " found"
line "@"
- db $2, $a0, $ff, $c2 ; XXX $2
+ TX_BCD $ffa0, $c2
text " coins!@@"
_FoundHiddenCoins2Text:: ; 89523 (22:5523)
text $52, " found"
line "@"
- db $2, $a0, $ff, $c2 ; XXX $2 probably coins
+ TX_BCD $ffa0, $c2
text " coins!@@"
_DroppedHiddenCoinsText:: ; 8953b (22:553b)
@@ -1055,7 +1055,7 @@
_WildRanText:: ; 89666 (22:5666)
text "Wild @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "ran!"
prompt
@@ -1062,7 +1062,7 @@
_EnemyRanText:: ; 89677 (22:5677)
text "Enemy @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "ran!"
prompt
@@ -1084,7 +1084,7 @@
_EnemyMonFaintedText:: ; 0x896c7
text "Enemy @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "fainted!"
prompt
@@ -1091,8 +1091,7 @@
_MoneyForWinningText:: ; 896dd (22:56dd)
text $52, " got ¥@"
- ;XXX $2
- db $2, $79, $d0, $c3
+ TX_BCD wd079, $c3
db $0
line "for winning!"
prompt
@@ -1105,7 +1104,7 @@
prompt
_PlayerMonFaintedText:: ; 8970c (22:570c)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
db $0
line "fainted!"
prompt
@@ -1139,7 +1138,7 @@
text " is"
line "about to use"
cont"@"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
text "!"
para "Will ", $52
@@ -1150,7 +1149,7 @@
TX_RAM W_TRAINERNAME
text " sent"
line "out @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
text "!"
done
@@ -1179,7 +1178,7 @@
prompt
_AlreadyOutText:: ; 8984b (22:584b)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " is"
line "already out!"
prompt
@@ -1195,7 +1194,7 @@
prompt
_NoMovesLeftText:: ; 89892 (22:5892)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " has no"
line "moves left!"
done
@@ -1208,7 +1207,7 @@
prompt
_ScaredText:: ; 898c7 (22:58c7)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " is too"
line "scared to move!"
prompt
@@ -1296,7 +1295,7 @@
_MoveIsDisabledText:: ; 89a29 (22:5a29)
text $5a, "'s"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " is"
cont "disabled!"
prompt
@@ -1317,7 +1316,7 @@
cont "@@"
_CF4BText:: ; 89a62 (22:5a62)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "@"
_ExclamationPoint1Text:: ; 89a67 (22:5a67)
@@ -1370,31 +1369,31 @@
prompt
_LoafingAroundText:: ; 89ae5 (22:5ae5)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " is"
line "loafing around."
prompt
_BeganToNapText:: ; 89afd (22:5afd)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " began"
line "to nap!"
prompt
_WontObeyText:: ; 89b10 (22:5b10)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " won't"
line "obey!"
prompt
_TurnedAwayText:: ; 89b20 (22:5b20)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " turned"
line "away!"
prompt
_IgnoredOrdersText:: ; 89b32 (22:5b32)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
db $0
line "ignored orders!"
prompt
@@ -1422,12 +1421,12 @@
_HitXTimesText:: ; 89baf (22:5baf)
text "Hit @"
- TX_NUM $cd05, 1, 1
+ TX_NUM wcd05, 1, 1
text " times!"
prompt
_GainedText:: ; 89bc2 (22:5bc2)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " gained"
line "@@"
@@ -1439,20 +1438,20 @@
text "a boosted"
cont "@@"
_ExpPointsText:: ; 89bee (22:5bee)
- TX_NUM $cf4b, 2, 4
+ TX_NUM wcf4b, 2, 4
text " EXP. Points!"
prompt
_GrewLevelText:: ; 89c01 (22:5c01)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " grew"
line "to level @"
- TX_NUM $d127, 1, 3
+ TX_NUM W_CURENEMYLVL, 1, 3
text "!@@"
_WildMonAppearedText:: ; 89c1d (22:5c1d)
text "Wild @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "appeared!"
prompt
@@ -1460,13 +1459,13 @@
_HookedMonAttackedText:: ; 89c33 (22:5c33)
text "The hooked"
line "@"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
cont "attacked!"
prompt
_EnemyAppearedText:: ; 89c4f (22:5c4f)
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "appeared!"
prompt
@@ -1502,12 +1501,12 @@
line "Get'm! @@"
_PlayerMon1Text:: ; 89cf0 (22:5cf0)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text "!"
done
_PlayerMon2Text:: ; 89cf6 (22:5cf6)
- TX_RAM W_PLAYERMONNAME
+ TX_RAM wBattleMonNick
text " @@"
_EnoughText:: ; 89cfd (22:5cfd)
@@ -1536,7 +1535,7 @@
_SafariZoneEatingText:: ; 89d53 (22:5d53)
text "Wild @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "is eating!"
prompt
@@ -1543,18 +1542,16 @@
_SafariZoneAngryText:: ; 89d6a (22:5d6a)
text "Wild @"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
db $0
line "is angry!"
prompt
; money related
-; XXX $2 BCD macro
-; $2, pointer, byte
_PickUpPayDayMoneyText:: ; 89d80 (22:5d80)
text $52, " picked up"
line "¥@"
- db $2, $e5, $cc, $c3
+ TX_BCD wcce5, $c3
text "!"
prompt
@@ -1593,7 +1590,7 @@
done
_PotionText:: ; 89e31 (22:5e31)
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
line "recovered by @"
TX_NUM wHPBarHPDifference, 2, 3
@@ -1601,52 +1598,52 @@
done
_AntidoteText:: ; 89e4b (22:5e4b)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " was"
line "cured of poison!"
done
_ParlyzHealText:: ; 89e65 (22:5e65)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "'s"
line "rid of paralysis!"
done
_BurnHealText:: ; 89e7d (22:5e7d)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "'s"
line "burn was healed!"
done
_IceHealText:: ; 89e94 (22:5e94)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " was"
line "defrosted!"
done
_AwakeningText:: ; 89ea8 (22:5ea8)
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
line "woke up!"
done
_FullHealText:: ; 89eb6 (22:5eb6)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "'s"
line "health returned!"
done
_ReviveText:: ; 89ecd (22:5ecd)
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
line "is revitalized!"
done
_RareCandyText:: ; 89ee2 (22:5ee2)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " grew"
line "to level @"
- TX_NUM $d127, $1,$3
+ TX_NUM W_CURENEMYLVL, $1,$3
text "!@@"
_TurnedOnPC1Text:: ; 89efe (22:5efe)
@@ -1697,7 +1694,7 @@
done
_ItemWasStoredText:: ; 8a000 (22:6000)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " was"
line "stored via PC."
prompt
@@ -1724,7 +1721,7 @@
_WithdrewItemText:: ; 8a07e (22:607e)
text "Withdrew"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "."
prompt
@@ -1769,10 +1766,10 @@
done
_MonWasStoredText:: ; 0x8a159
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " was"
line "stored in Box @"
- TX_RAM $cd3d
+ TX_RAM wWhichTrade
text "."
prompt
@@ -1787,11 +1784,11 @@
prompt
_MonIsTakenOutText:: ; 0x8a1b9
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " is"
line "taken out."
cont "Got @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "."
prompt
@@ -1816,19 +1813,19 @@
_OnceReleasedText:: ; 0x8a23d
text "Once released,"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " is"
cont "gone forever. OK?"
done
_MonWasReleasedText:: ; 0x8a268
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " was"
line "released outside."
cont "Bye @"
_CF4BExclamationText:: ; 8a288 (22:6288)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
prompt
@@ -1852,7 +1849,7 @@
_SoYouWantPrizeText:: ; 8a2f6 (22:62f6)
text "So, you want"
line "@"
- TX_RAM $CD6D
+ TX_RAM wcd6d
text "?"
done
@@ -1905,7 +1902,7 @@
text "Do you want to"
line "give a nickname"
cont "to @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "?"
done
@@ -1921,10 +1918,10 @@
prompt
_WillBeTradedText:: ; 8a677 (22:6677)
- TX_RAM $cd3f
+ TX_RAM wTrainerFacingDirection
text " and"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " will"
cont "be traded."
done
@@ -2044,7 +2041,7 @@
line $4a, " BOX.@@"
_EvolvedText:: ; 946c2 (25:46c2)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " evolved"
done
@@ -2051,13 +2048,13 @@
_IntoText:: ; 946cf (25:46cf)
db $0
line "into @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
done
_StoppedEvolvingText:: ; 946dd (25:46dd)
text "Huh? @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
db $0
line "stopped evolving!"
prompt
@@ -2064,7 +2061,7 @@
_IsEvolvingText:: ; 946fb (25:46fb)
text "What? @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
db $0
line "is evolving!"
done
@@ -2107,7 +2104,7 @@
_MonsStatsRoseText:: ; 94795 (25:4795)
text $5a, "'s"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "@@"
_GreatlyRoseText:: ; 947a0 (25:47a0)
@@ -2120,7 +2117,7 @@
_MonsStatsFellText:: ; 947b3 (25:47b3)
text $59, "'s"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "@@"
_GreatlyFellText:: ; 947be (25:47be)
@@ -2187,7 +2184,7 @@
text $5a
line "learned"
cont "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
prompt
@@ -2194,7 +2191,7 @@
_MoveWasDisabledText:: ; 9489e (25:489e)
text $59, "'s"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " was"
cont "disabled!"
prompt
@@ -2297,7 +2294,7 @@
text $5a
line "transformed into"
cont "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
prompt
@@ -2441,7 +2438,7 @@
done
_PokemonFaintedText:: ; a25b7 (28:65b7)
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
line "fainted!"
done
@@ -2464,11 +2461,11 @@
done
_PokemartTellBuyPriceText:: ; a2619 (28:6619)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "?"
line "That will be"
cont "¥@"
- db $2, $9f, $ff, $c3
+ TX_BCD $ff9f, $c3
text ". OK?"
done
@@ -2495,7 +2492,7 @@
_PokemartTellSellPriceText:: ; a26ae (28:66ae)
text "I can pay you"
line "¥@"
- db $2, $9f, $ff, $c3 ; XXX
+ TX_BCD $ff9f, $c3
text " for that."
done
@@ -2519,10 +2516,10 @@
done
_LearnedMove1Text:: ; a273b (28:673b)
- TX_RAM $d036
+ TX_RAM wd036
text " learned"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_WhichMoveToForgetText:: ; a2750 (28:6750)
@@ -2533,29 +2530,29 @@
_AbandonLearningText:: ; a2771 (28:6771)
text "Abandon learning"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "?"
done
_DidNotLearnText:: ; a278a (28:678a)
- TX_RAM $d036
+ TX_RAM wd036
db $0
line "did not learn"
cont "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
prompt
_TryingToLearnText:: ; a27a4 (28:67a4)
- TX_RAM $d036
+ TX_RAM wd036
text " is"
line "trying to learn"
cont "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
para "But, @"
- TX_RAM $d036
+ TX_RAM wd036
db $0
line "can't learn more"
cont "than 4 moves!"
@@ -2563,7 +2560,7 @@
para "Delete an older"
line "move to make room"
cont "for @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "?"
done
@@ -2576,10 +2573,10 @@
_ForgotAndText:: ; a2830 (28:6830)
db $0
para "@"
- TX_RAM $d036
+ TX_RAM wd036
text " forgot"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
para "And..."
@@ -2667,12 +2664,12 @@
done
_UsedStrengthText:: ; a403c (29:403c)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " used"
line "STRENGTH.@@"
_CanMoveBouldersText:: ; a4051 (29:4051)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " can"
line "move boulders."
prompt
@@ -2698,13 +2695,13 @@
done
_CannotUseTeleportNowText:: ; a40eb (29:40eb)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " can't"
line "use TELEPORT now."
prompt
_CannotFlyHereText:: ; a4107 (29:4107)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " can't"
line "FLY here."
prompt
@@ -2732,7 +2729,7 @@
_GotMonText:: ; a4180 (29:4180)
text $52, " got"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!@@"
_SetToBoxText:: ; a418f (29:418f)
@@ -2739,11 +2736,11 @@
text "There's no more"
line "room for #MON!"
cont "@"
- TX_RAM W_BOXMON1NAME
+ TX_RAM wBoxMonNicks
text " was"
cont "sent to #MON"
cont "BOX @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " on PC!"
done
@@ -2801,12 +2798,12 @@
_ItemUseBallText05:: ; a67cf (29:67cf)
text "All right!"
line "@"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
text " was"
cont "caught!@@"
_ItemUseBallText07:: ; a67ee (29:67ee)
- TX_RAM W_BOXMON1NAME
+ TX_RAM wBoxMonNicks
text " was"
line "transferred to"
cont "BILL's PC!"
@@ -2813,7 +2810,7 @@
prompt
_ItemUseBallText08:: ; a6810 (29:6810)
- TX_RAM W_BOXMON1NAME
+ TX_RAM wBoxMonNicks
text " was"
line "transferred to"
cont "someone's PC!"
@@ -2823,13 +2820,13 @@
text "New #DEX data"
line "will be added for"
cont "@"
- TX_RAM W_ENEMYMONNAME
+ TX_RAM wEnemyMonNick
text "!@@"
_SurfingGotOnText:: ; a685e (29:685e)
text $52, " got on"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
prompt
@@ -2839,10 +2836,10 @@
prompt
_VitaminStatRoseText:: ; a688c (29:688c)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "'s"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " rose."
prompt
@@ -2881,7 +2878,7 @@
_CoinCaseNumCoinsText:: ; a6940 (29:6940)
text "Coins"
line "@"
- db $2, $a4, $d5, $c2 ; print BCD number
+ TX_BCD wPlayerCoins, $c2
text " "
prompt
@@ -2907,13 +2904,13 @@
done
_PPMaxedOutText:: ; a69e2 (29:69e2)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "'s PP"
line "is maxed out."
prompt
_PPIncreasedText:: ; a69f9 (29:69f9)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "'s PP"
line "increased."
prompt
@@ -2933,26 +2930,26 @@
_TeachMachineMoveText:: ; a6a42 (29:6a42)
text "It contained"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
para "Teach @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
db $0
line "to a #MON?"
done
_MonCannotLearnMachineMoveText:: ; a6a6e (29:6a6e)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " is not"
line "compatible with"
cont "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "."
para "It can't learn"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "."
prompt
@@ -2989,7 +2986,7 @@
_NoSurfingHereText:: ; a6b4e (29:6b4e)
text "No SURFing on"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " here!"
prompt
@@ -3006,7 +3003,7 @@
text $52," used@@"
_ItemUseText002:: ; a8009 (2a:4009)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
done
@@ -3014,7 +3011,7 @@
text $52, " got on the@@"
_GotOnBicycleText2:: ; a801e (2a:401e)
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
prompt
@@ -3023,7 +3020,7 @@
_GotOffBicycleText2:: ; a8030 (2a:4030)
text "the @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "."
prompt
@@ -3030,7 +3027,7 @@
_ThrewAwayItemText:: ; a803c (2a:403c)
text "Threw away"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "."
prompt
@@ -3037,7 +3034,7 @@
_IsItOKToTossItemText:: ; a804f (2a:404f)
text "Is it OK to toss"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "?"
prompt
@@ -3047,10 +3044,10 @@
prompt
_AlreadyKnowsText:: ; a8088 (2a:4088)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " knows"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!"
prompt
@@ -3062,21 +3059,21 @@
_TradedForText:: ; a80bc (2a:40bc)
text $52, " traded"
line "@"
- TX_RAM $cd13
+ TX_RAM wcd13
text " for"
cont "@"
- TX_RAM $cd1e
+ TX_RAM wPlayerMonAccuracyMod
text "!@@"
_WannaTrade1Text:: ; a80d8 (2a:40d8)
text "I'm looking for"
line "@"
- TX_RAM $cd13
+ TX_RAM wcd13
text "! Wanna"
para "trade one for"
line "@"
- TX_RAM $cd1e
+ TX_RAM wPlayerMonAccuracyMod
text "? "
done
@@ -3088,7 +3085,7 @@
_WrongMon1Text:: ; a811d (2a:411d)
text "What? That's not"
line "@"
- TX_RAM $cd13
+ TX_RAM wcd13
text "!"
para "If you get one,"
@@ -3102,7 +3099,7 @@
_AfterTrade1Text:: ; a8162 (2a:4162)
text "Isn't my old"
line "@"
- TX_RAM $cd1e
+ TX_RAM wPlayerMonAccuracyMod
text " great?"
done
@@ -3111,10 +3108,10 @@
line "you want to trade"
para "your @"
- TX_RAM $cd13
+ TX_RAM wcd13
db $0
line "for @"
- TX_RAM $cd1e
+ TX_RAM wPlayerMonAccuracyMod
text "?"
done
@@ -3126,7 +3123,7 @@
_WrongMon2Text:: ; a81d3 (2a:41d3)
text "Hmmm? This isn't"
line "@"
- TX_RAM $cd13
+ TX_RAM wcd13
text "."
para "Think of me when"
@@ -3139,7 +3136,7 @@
_AfterTrade2Text:: ; a8212 (2a:4212)
text "The @"
- TX_RAM $cd13
+ TX_RAM wcd13
text " you"
line "traded to me"
@@ -3149,12 +3146,12 @@
_WannaTrade3Text:: ; a8240 (2a:4240)
text "Hi! Do you have"
line "@"
- TX_RAM $cd13
+ TX_RAM wcd13
text "?"
para "Want to trade it"
line "for @"
- TX_RAM $cd1e
+ TX_RAM wPlayerMonAccuracyMod
text "?"
done
@@ -3165,7 +3162,7 @@
_WrongMon3Text:: ; a8284 (2a:4284)
text "...This is no"
line "@"
- TX_RAM $cd13
+ TX_RAM wcd13
text "."
para "If you get one,"
@@ -3179,11 +3176,11 @@
_AfterTrade3Text:: ; a82c9 (2a:42c9)
text "How is my old"
line "@"
- TX_RAM $cd1e
+ TX_RAM wPlayerMonAccuracyMod
text "?"
para "My @"
- TX_RAM $cd13
+ TX_RAM wcd13
text " is"
line "doing great!"
done
@@ -3194,7 +3191,7 @@
prompt
_UsedCutText:: ; a8315 (2a:4315)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " hacked"
line "away with CUT!"
prompt
--- a/text/maps/bills_house.asm
+++ b/text/maps/bills_house.asm
@@ -56,7 +56,7 @@
_SSTicketReceivedText:: ; 8d499 (23:5499)
text $52, " received"
line "an @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_SSTicketNoRoomText:: ; 8d4b0 (23:54b0)
--- a/text/maps/blues_house.asm
+++ b/text/maps/blues_house.asm
@@ -14,7 +14,7 @@
_GotMapText::
text $52," got a"
line "@"
- TX_RAM $CF4B
+ TX_RAM wcf4b
text "!@@"
_DaisyBagFullText::
--- a/text/maps/celadon_city.asm
+++ b/text/maps/celadon_city.asm
@@ -42,7 +42,7 @@
_ReceivedTM41Text:: ; a5b5a (29:5b5a)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM41ExplanationText:: ; a5b6e (29:5b6e)
--- a/text/maps/celadon_dept_store_3f.asm
+++ b/text/maps/celadon_dept_store_3f.asm
@@ -10,7 +10,7 @@
_ReceivedTM18Text:: ; 9c85a (27:485a)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM18ExplanationText:: ; 9c86e (27:486e)
--- a/text/maps/celadon_dept_store_roof.asm
+++ b/text/maps/celadon_dept_store_roof.asm
@@ -16,13 +16,13 @@
_CeladonMartRoofText_484f9:: ; 9cc06 (27:4c06)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_CeladonMartRoofText_484fe:: ; 9cc1a (27:4c1a)
db $0
para "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " contains"
line "ICE BEAM!"
@@ -42,13 +42,13 @@
_CeladonMartRoofText_4850a:: ; 9cc91 (27:4c91)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_CeladonMartRoofText_4850f:: ; 9cca5 (27:4ca5)
db $0
para "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text " contains"
line "ROCK SLIDE!"
@@ -123,7 +123,7 @@
done
_VendingMachineText5:: ; 9ceaf (27:4eaf)
- TX_RAM $cf4b
+ TX_RAM wcf4b
db $0
line "popped out!"
done
--- a/text/maps/celadon_diner.asm
+++ b/text/maps/celadon_diner.asm
@@ -44,7 +44,7 @@
_ReceivedCoinCaseText:: ; 9e07a (27:607a)
text $52, " received"
line "a @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_CoinCaseNoRoomText:: ; 9e090 (27:6090)
--- a/text/maps/celadon_gym.asm
+++ b/text/maps/celadon_gym.asm
@@ -64,7 +64,7 @@
_ReceivedTM21Text:: ; 9d50c (27:550c)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM21ExplanationText:: ; 9d520 (27:5520)
--- a/text/maps/champion.asm
+++ b/text/maps/champion.asm
@@ -96,7 +96,7 @@
line "much since you"
cont "first left with"
cont "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
para $52, ", you have"
--- a/text/maps/cinnabar_gym.asm
+++ b/text/maps/cinnabar_gym.asm
@@ -44,7 +44,7 @@
_ReceivedTM38Text:: ; a09a8 (28:49a8)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM38ExplanationText:: ; a09bc (28:49bc)
--- a/text/maps/cinnabar_lab_fossil_room.asm
+++ b/text/maps/cinnabar_lab_fossil_room.asm
@@ -30,7 +30,7 @@
line "back to life!"
para "It was @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
db $0
line "like I think!"
prompt
@@ -38,12 +38,12 @@
_Lab4Text_610ae:: ; a11d6 (28:51d6)
text "Oh! That is"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
para "It is fossil of"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text ", a"
cont "#MON that is"
cont "already extinct!"
@@ -60,7 +60,7 @@
para $52, " handed"
line "over @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
prompt
--- a/text/maps/cinnabar_lab_metronome_room.asm
+++ b/text/maps/cinnabar_lab_metronome_room.asm
@@ -9,7 +9,7 @@
_ReceivedTM35Text:: ; a0f48 (28:4f48)
text $52, " received "
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM35ExplanationText:: ; a0f5d (28:4f5d)
--- a/text/maps/copycats_house_2f.asm
+++ b/text/maps/copycats_house_2f.asm
@@ -29,7 +29,7 @@
_ReceivedTM31Text:: ; a1675 (28:5675)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM31ExplanationText1:: ; a1689 (28:5689)
--- a/text/maps/daycare_1.asm
+++ b/text/maps/daycare_1.asm
@@ -13,7 +13,7 @@
_DayCareMText_56419:: ; 8abf0 (22:6bf0)
text "Fine, I'll look"
line "after @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
cont "for a while."
prompt
@@ -25,7 +25,7 @@
_DayCareMText_56423:: ; 8ac32 (22:6c32)
text "Your @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
line "has grown a lot!"
@@ -33,7 +33,7 @@
line "grown by @"
DayCareMText_8ac67:: ; 8ac67 (22:6c67)
- TX_NUM $cd3e,$1,$3
+ TX_NUM wTrainerEngageDistance,$1,$3
text "!"
para "Aren't I great?"
@@ -41,7 +41,7 @@
_DayCareMText_56428:: ; 8ac7d (22:6c7d)
text "You owe me ¥@"
- db $2, $3f, $cd, $c2
+ TX_BCD wcd3f, $c2
db $0
line "for the return"
cont "of this #MON."
@@ -57,7 +57,7 @@
_DayCareMText_56432:: ; 8acc1 (22:6cc1)
text "Back already?"
line "Your @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
db $0
cont "needs some more"
cont "time with me."
--- a/text/maps/fan_club.asm
+++ b/text/maps/fan_club.asm
@@ -85,7 +85,7 @@
ReceivedBikeVoucherText::
text $52, " received"
line "a @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
ExplainBikeVoucherText::
--- a/text/maps/fuchsia_fishing_house.asm
+++ b/text/maps/fuchsia_fishing_house.asm
@@ -19,7 +19,7 @@
para $52, " received"
line "a @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_FuchsiaHouse3Text_56212:: ; a0737 (28:4737)
--- a/text/maps/fuchsia_gym_2.asm
+++ b/text/maps/fuchsia_gym_2.asm
@@ -27,7 +27,7 @@
_ReceivedTM06Text:: ; a00eb (28:40eb)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM06ExplanationText:: ; a00ff (28:40ff)
--- a/text/maps/fujis_house.asm
+++ b/text/maps/fujis_house.asm
@@ -48,7 +48,7 @@
_ReceivedFluteText:: ; 99ffb (26:5ffb)
text $52, " received"
line "a @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_FluteExplanationText:: ; 9a011 (26:6011)
--- a/text/maps/mr_psychics_house.asm
+++ b/text/maps/mr_psychics_house.asm
@@ -8,7 +8,7 @@
_ReceivedTM29Text:: ; a252a (28:652a)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM29ExplanationText:: ; a253e (28:653e)
--- a/text/maps/mt_moon_b2f.asm
+++ b/text/maps/mt_moon_b2f.asm
@@ -11,7 +11,7 @@
_MtMoon3Text_49f6f:: ; 80995 (20:4995)
text $52, " got the"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_MtMoon3Text_49f7f:: ; 809a8 (20:49a8)
--- a/text/maps/name_rater.asm
+++ b/text/maps/name_rater.asm
@@ -14,7 +14,7 @@
prompt
_NameRaterText_1dabd:: ; 9a37f (26:637f)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text ", is it?"
line "That is a decent"
cont "nickname!"
@@ -35,7 +35,7 @@
text "OK! This #MON"
line "has been renamed"
cont "@"
- TX_RAM $cee9
+ TX_RAM wHPBarMaxHP
text "!"
para "That's a better"
@@ -48,7 +48,7 @@
done
_NameRaterText_1dad1:: ; 9a46b (26:646b)
- TX_RAM $cd6d
+ TX_RAM wcd6d
text ", is it?"
line "That is a truly"
cont "impeccable name!"
@@ -55,7 +55,7 @@
para "Take good care of"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
done
--- a/text/maps/oaks_lab.asm
+++ b/text/maps/oaks_lab.asm
@@ -51,7 +51,7 @@
_OaksLabReceivedMonText:: ; 94ea0 (25:4ea0)
text $52, " received"
line "a @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!@@"
_OaksLabLastMonText:: ; 94eb6 (25:4eb6)
@@ -240,7 +240,7 @@
_OaksLabRivalReceivedMonText:: ; 95461 (25:5461)
text $53, " received"
line "a @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!@@"
_OaksLabRivalChallengeText:: ; 95477 (25:5477)
--- a/text/maps/route_1.asm
+++ b/text/maps/route_1.asm
@@ -15,7 +15,7 @@
_Route1Text_1cae8:: ; 8d643 (23:5643)
text $52, " got"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_Route1Text_1caee:: ; 8d652 (23:5652)
--- a/text/maps/route_12_house.asm
+++ b/text/maps/route_12_house.asm
@@ -18,7 +18,7 @@
para $52, " received"
line "a @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_Route12HouseText_564ca:: ; 8ca4f (23:4a4f)
--- a/text/maps/route_23.asm
+++ b/text/maps/route_23.asm
@@ -2,12 +2,12 @@
text "You can pass here"
line "only if you have"
cont "the @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
para "You don't have the"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text " yet!"
para "You have to have"
@@ -18,12 +18,12 @@
text "You can pass here"
line "only if you have"
cont "the @"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!"
para "Oh! That is the"
line "@"
- TX_RAM $cd6d
+ TX_RAM wcd6d
text "!@@"
_VictoryRoadGuardText_513a3:: ; 926dd (24:66dd)
--- a/text/maps/route_24_1.asm
+++ b/text/maps/route_24_1.asm
@@ -12,7 +12,7 @@
_Route24Text_5151a:: ; 92779 (24:6779)
text $52, " received"
line "a @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_Route24Text_51521:: ; 9278f (24:678f)
--- a/text/maps/safari_zone_secret_house.asm
+++ b/text/maps/safari_zone_secret_house.asm
@@ -17,7 +17,7 @@
_ReceivedHM03Text:: ; 85943 (21:5943)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_HM03ExplanationText:: ; 85957 (21:5957)
--- a/text/maps/silph_co_11f.asm
+++ b/text/maps/silph_co_11f.asm
@@ -22,7 +22,7 @@
_ReceivedSilphCoMasterBallText:: ; 84f63 (21:4f63)
text $52, " got a"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_SilphCo10Text_6231c:: ; 84f74 (21:4f74)
--- a/text/maps/silph_co_2f.asm
+++ b/text/maps/silph_co_2f.asm
@@ -12,7 +12,7 @@
_ReceivedTM36Text:: ; 824ba (20:64ba)
text $52, " got"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM36ExplanationText:: ; 824c9 (20:64c9)
--- a/text/maps/ss_anne_7.asm
+++ b/text/maps/ss_anne_7.asm
@@ -33,7 +33,7 @@
_ReceivedHM01Text:: ; 8140d (20:540d)
text $52, " got"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_SSAnne7Text_61932:: ; 8141c (20:541c)
--- a/text/maps/vermilion_fishing_house.asm
+++ b/text/maps/vermilion_fishing_house.asm
@@ -18,7 +18,7 @@
para $52, " received"
line "an @"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_VermilionHouse2Text_560bb:: ; 9c5a4 (27:45a4)
--- a/text/maps/vermilion_gym_2.asm
+++ b/text/maps/vermilion_gym_2.asm
@@ -26,7 +26,7 @@
_ReceivedTM24Text:: ; 9c0e0 (27:40e0)
text $52, " received "
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_TM24ExplanationText:: ; 9c0f5 (27:40f5)
--- a/text/maps/wardens_house.asm
+++ b/text/maps/wardens_house.asm
@@ -44,7 +44,7 @@
_ReceivedHM04Text:: ; 9e5a2 (27:65a2)
text $52, " received"
line "@"
- TX_RAM $cf4b
+ TX_RAM wcf4b
text "!@@"
_HM04ExplanationText:: ; 9e5b6 (27:65b6)
--- /dev/null
+++ b/vram.asm
@@ -1,0 +1,21 @@
+vChars0 EQU $8000
+vChars1 EQU $8800
+vChars2 EQU $9000
+vBGMap0 EQU $9800
+vBGMap1 EQU $9c00
+
+; Battle/Menu
+vSprites EQU vChars0
+vFont EQU vChars1
+vFrontPic EQU vChars2
+vBackPic EQU vFrontPic + 7 * 7 * $10
+
+; Overworld
+vNPCSprites EQU vChars0
+vNPCSprites2 EQU vChars1
+vTileset EQU vChars2
+
+; Title
+vTitleLogo EQU vChars1
+vTitleLogo2 EQU vFrontPic + 7 * 7 * $10
+
--- a/wram.asm
+++ b/wram.asm
@@ -1,10 +1,128 @@
-INCLUDE "constants/wram_constants.asm"
+INCLUDE "constants.asm"
+flag_array: MACRO
+ ds ((\1) + 7) / 8
+ENDM
+box_struct_length EQU 25 + NUM_MOVES * 2
+box_struct: MACRO
+\1Species:: db
+\1HP:: dw
+\1BoxLevel:: db
+\1Status:: db
+\1Type::
+\1Type1:: db
+\1Type2:: db
+\1CatchRate:: db
+\1Moves:: ds NUM_MOVES
+\1OTID:: dw
+\1Exp:: ds 3
+\1HPExp:: dw
+\1AttackExp:: dw
+\1DefenseExp:: dw
+\1SpeedExp:: dw
+\1SpecialExp:: dw
+\1DVs:: ds 2
+\1PP:: ds NUM_MOVES
+ENDM
+
+party_struct: MACRO
+ box_struct \1
+\1Level:: db
+\1Stats::
+\1MaxHP:: dw
+\1Attack:: dw
+\1Defense:: dw
+\1Speed:: dw
+\1Special:: dw
+ENDM
+
+battle_struct: MACRO
+\1Species:: db
+\1HP:: dw
+\1BoxLevel:: db
+\1Status:: db
+\1Type::
+\1Type1:: db
+\1Type2:: db
+\1CatchRate:: db
+\1Moves:: ds NUM_MOVES
+\1DVs:: ds 2
+\1Level:: db
+\1MaxHP:: dw
+\1Attack:: dw
+\1Defense:: dw
+\1Speed:: dw
+\1Special:: dw
+\1PP:: ds NUM_MOVES
+ENDM
+
+
SECTION "WRAM Bank 0", WRAM0
+wc000:: ds 1
+wc001:: ds 1
+wc002:: ds 1
+wc003:: ds 1
+wc004:: ds 1
+wc005:: ds 1
+wc006:: ds 8
+wc00e:: ds 4
+wc012:: ds 4
+wc016:: ds 16
+wc026:: ds 1
+wc027:: ds 1
+wc028:: ds 2
+wc02a:: ds 1
+wc02b:: ds 1
+wc02c:: ds 1
+wc02d:: ds 1
+wc02e:: ds 8
+wc036:: ds 8
+wc03e:: ds 8
+wc046:: ds 8
+wc04e:: ds 8
+wc056:: ds 8
+wc05e:: ds 8
+wc066:: ds 8
+wc06e:: ds 8
+wc076:: ds 8
+wc07e:: ds 8
+wc086:: ds 8
+wc08e:: ds 8
+wc096:: ds 8
+wc09e:: ds 8
+wc0a6:: ds 8
+wc0ae:: ds 8
+wc0b6:: ds 8
+wc0be:: ds 8
+wc0c6:: ds 8
+wc0ce:: ds 1
+wc0cf:: ds 1
+wc0d0:: ds 1
+wc0d1:: ds 1
+wc0d2:: ds 1
+wc0d3:: ds 1
+wc0d4:: ds 1
+wc0d5:: ds 1
+wc0d6:: ds 8
+wc0de:: ds 8
+wc0e6:: ds 1
+wc0e7:: ds 1
+wc0e8:: ds 1
+wc0e9:: ds 1
+wc0ea:: ds 1
+wc0eb:: ds 1
+wc0ec:: ds 1
+wc0ed:: ds 1
+wc0ee:: ds 1
+wc0ef:: ds 1
+wc0f0:: ds 1
+wc0f1:: ds 1
+wc0f2:: ds 14
+
SECTION "Sprite State Data", WRAM0[$c100]
wSpriteStateData1:: ; c100
@@ -29,12 +147,15 @@
; C1xF
ds $10 * $10
+
+SECTION "Sprite State Data 2", WRAM0[$c200]
+
wSpriteStateData2:: ; c200
; more data for all sprites on the current map
; holds info for 16 sprites with $10 bytes each
; player sprite is always sprite 0
; C2x0: walk animation counter (counting from $10 backwards when moving)
-; C2x1:
+; C2x1:
; C2x2: Y displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)
; C2x3: X displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)
; C2x4: Y position (in 2x2 tile grid steps, topmost 2x2 tile has value 4)
@@ -52,13 +173,12 @@
ds $10 * $10
+SECTION "OAM Buffer", WRAM0[$c300]
+
wOAMBuffer:: ; c300
; buffer for OAM data. Copied to OAM by DMA
ds 4 * 40
-
-SECTION "Tile Map", WRAM0[$c3a0]
-
wTileMap:: ; c3a0
; buffer for tiles that are visible on screen (20 columns by 18 rows)
ds 20 * 18
@@ -68,11 +188,12 @@
; (e.g. if menus are drawn on top)
ds 20 * 18
-; c670
+ ds 120
+wTempPic::
+wOverworldMap:: ; c6e8
+ ds 1300
-SECTION "Screen Edge Tiles", WRAM0[$cbfc]
-
wScreenEdgeTiles:: ; cbfc
; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
ds 20 * 2
@@ -106,10 +227,10 @@
; id of previously selected menu item
ds 1
-; cc2b
+wcc2b:: ds 1
+wcc2c:: ds 1
+wcc2d:: ds 1
- ds 3
-
wPlayerMoveListIndex:: ; cc2e
ds 1
@@ -126,7 +247,7 @@
; how many times should HandleMenuInput poll the joypad state before it returns?
ds 1
- ds 1
+wcc35:: ds 1
wListScrollOffset:: ; cc36
; offset of the current top menu item from the beginning of the list
@@ -133,7 +254,18 @@
; keeps track of what section of the list is on screen
ds 1
- ds 19
+wcc37:: ds 1
+wcc38:: ds 2
+wcc3a:: ds 1
+wcc3b:: ds 1
+wcc3c:: ds 1
+wcc3d:: ds 1
+wcc3e:: ds 4
+wcc42:: ds 1
+wcc43:: ds 4
+wcc47:: ds 1
+wcc48:: ds 1
+wcc49:: ds 1
wMenuWrappingEnabled:: ; cc4a
; set to 1 if you can go from the bottom to the top or top to bottom of a menu
@@ -140,19 +272,39 @@
; set to 0 if you can't go past the top or bottom of the menu
ds 1
- ds 10
+wcc4b:: ds 2
+wcc4d:: ds 1
+wPredefID:: ; cc4e
+ ds 1
+wPredefRegisters:: ; cc4f
+ ds 6
+
wTrainerHeaderFlagBit:: ; cc55
ds 1
-; cc56
+ ds 1
+wcc57:: ds 1
+wcc58:: ds 3
-SECTION "RLE", WRAM0[$ccd2]
+wHallOfFame:: ; cc5b
+wcc5b:: ds 1
+wcc5c:: ds 1
+wcc5d:: ds 1
+wcc5e:: ds 13
+
+wcc6b:: ds 14
+wcc79:: ds 30
+wcc97:: ds 10
+wcca1:: ds 49
+
wRLEByteCount:: ; ccd2
ds 1
- ds 4
+wccd3:: ds 1
+wccd4:: ds 1
+wccd5:: ds 2
; current HP of player and enemy substitutes
wPlayerSubstituteHP:: ; ccd7
@@ -160,7 +312,7 @@
wEnemySubstituteHP:: ; ccd8
ds 1
- ds 2
+wccd9:: ds 2
wMoveMenuType:: ; ccdb
; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..)
@@ -171,7 +323,7 @@
wEnemySelectedMove:: ; ccdd
ds 1
- ds 1
+wccde:: ds 1
wAICount:: ; ccdf
; number of times remaining that AI action can occur
@@ -182,11 +334,33 @@
wEnemyMoveListIndex:: ; cce2
ds 1
-; cce3
+wcce3:: ds 1
+wcce4:: ds 1
+wcce5:: ds 2
+wcce7:: ds 1
+wcce8:: ds 1
+wcce9:: ds 2
+wcceb:: ds 1
+wccec:: ds 1
+wcced:: ds 1
+wccee:: ds 1
+wccef:: ds 1
+wccf0:: ds 1
+wccf1:: ds 1
+wccf2:: ds 1
+wccf3:: ds 1
+wccf4:: ds 1
+wccf5:: ds 1
+wccf6:: ds 1
+wccf7:: ds 14
+wcd05:: ds 1
+wcd06:: ds 9
+wcd0f:: ds 1
+wcd10:: ds 1
+wcd11:: ds 1
+wcd12:: ds 1
+wcd13:: ds 7
-
-SECTION "Stat Modifiers", WRAM0[$cd1a]
-
; stat modifiers for the player's current pokemon
; value can range from 1 - 13 ($1 to $D)
; 7 is normal
@@ -205,8 +379,12 @@
wPlayerMonEvasionMod:: ; cd1f
ds 1
- ds 13
+ ds 3
+wcd23:: ds 3
+wcd26:: ds 3
+wcd29:: ds 4
+
wEngagedTrainerClass:: ; cd2d
ds 1
wEngagedTrainerSet:: ; cd2e
@@ -230,7 +408,12 @@
wEnemyMonEvasionMod:: ; cd33
ds 1
- ds 9
+wcd34:: ds 3
+wcd37:: ds 1
+wcd38:: ds 1
+wcd39:: ds 1
+wcd3a:: ds 1
+wcd3b:: ds 2
wWhichTrade:: ; cd3d
; which entry from TradeMons to select
@@ -241,6 +424,7 @@
wTrainerEngageDistance:: ; cd3e
ds 1
wTrainerFacingDirection:: ; cd3f
+wcd3f::
ds 1
wTrainerScreenY:: ; cd40
ds 1
@@ -247,19 +431,47 @@
wTrainerScreenX:: ; cd41
ds 1
- ds 30
+wcd42:: ds 1
+wcd43:: ds 1
+wcd44:: ds 1
+wcd45:: ds 1
+wcd46:: ds 1
+wcd47:: ds 1
+wcd48:: ds 1
+wcd49:: ds 1
+wcd4a:: ds 1
+wcd4b:: ds 1
+wcd4c:: ds 1
+wcd4d:: ds 1
+wcd4e:: ds 1
+wcd4f:: ds 1
+wcd50:: ds 9
+wcd59:: ds 1
+wcd5a:: ds 1
+wcd5b:: ds 1
+wcd5c:: ds 1
+wcd5d:: ds 1
+wcd5e:: ds 1
+wcd5f:: ds 1
wFlags_0xcd60:: ; cd60
-; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaniously)
+; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaneously)
ds 1
- ds 10
+ ds 9
-wJoypadForbiddenButtonsMask:: ; cd6b
-; bit 1 means button presses will be ignored for that button
+wcd6a:: ds 1
+
+wJoyIgnore:: ; cd6b
+; Set buttons are ignored.
ds 1
- ds 21
+wcd6c:: ds 1
+wcd6d:: ds 4
+wcd71:: ds 1
+wcd72:: ds 5
+wcd77:: ds 1
+wcd78:: ds 9
wTileMapBackup2:: ; cd81
; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
@@ -266,8 +478,7 @@
ds 20 * 18
wBuffer:: ; cee9
-; used for temporary things
-
+; Temporary storage area of 30 bytes.
wHPBarMaxHP:: ; cee9
ds 2
wHPBarOldHP:: ; ceeb
@@ -277,25 +488,62 @@
wHPBarDelta:: ; ceef
ds 1
- ds 13
+wcef0:: ds 1
+wcef1:: ds 12
wHPBarHPDifference:: ; cefd
ds 1
+ ds 7
- ds 9
+wcf05:: ds 1
+wcf06:: ds 1
wAnimSoundID:: ; cf07
; sound ID during battle animations
ds 1
- ds 12
+wcf08:: ds 1
+wcf09:: ds 1
+wcf0a:: ds 1
+wcf0b:: ds 1
+wcf0c:: ds 1
+wcf0d:: ds 1
+wcf0e:: ds 1
+wcf0f:: ds 1
+wcf10:: ds 1
+wcf11:: ds 1
+wPredefParentBank:: ; cf12
+ ds 1
+
+wcf13:: ds 1
+
wCurSpriteMovement2:: ; cf14
; movement byte 2 of current sprite
ds 1
- ds 74
+ ds 2
+wcf17:: ds 1
+wcf18:: ds 2
+
+wGBC:: ; cf1a
+ ds 1
+
+wcf1b:: ds 1
+wcf1c:: ds 1
+wcf1d:: ds 1
+wcf1e:: ds 1
+wcf1f:: ds 6
+wcf25:: ds 8
+wcf2d:: ds 1
+wcf2e:: ds 2
+wcf30:: ds 7
+wcf37:: ds 20
+wcf4b:: ds 1
+wcf4c:: ds 1
+wcf4d:: ds 18
+
wGymCityName:: ; cf5f
wStringBuffer1:: ; cf5f
ds 16 + 1
@@ -303,31 +551,62 @@
wStringBuffer2:: ; cf70
ds 16 + 1
wStringBuffer3:: ; cf81
- ds 16 + 1
+ ds 9 + 1
+wcf8b:: ds 1
+wcf8c:: ds 1
+wcf8d:: ds 1
+wcf8e:: ds 1
+wcf8f:: ds 1
+wcf90:: ds 1
+wcf91:: ds 1
+
wWhichPokemon:: ; cf92
; which pokemon you selected
ds 1
- ds 1
+wcf93:: ds 1
wListMenuID:: ; cf94
; ID used by DisplayListMenuID
ds 1
- ds 48
+wcf95:: ds 1
+wcf96:: ds 1
+wcf97:: ds 1
+wcf98:: ds 1
+wcf99:: ds 1
+wcf9a:: ds 1
+wcf9b:: ds 1
+wcf9c:: ds 4
+wcfa0:: ds 4
+wcfa4:: ds 2
+wcfa6:: ds 2
+wcfa8:: ds 7
+wcfaf:: ds 10
+wcfb9:: ds 1
+wcfba:: ds 1
+wcfbb:: ds 1
+wcfbc:: ds 2
+wcfbe:: ds 2
+wcfc0:: ds 2
+wcfc2:: ds 2
+wcfc4:: ds 1
wWalkCounter:: ; cfc5
; walk animation counter
ds 1
- ds 1
+wcfc6:: ds 1
wMusicHeaderPointer:: ; cfc7
; (the current music channel address - $4000) / 3
ds 1
- ds 4
+wcfc8:: ds 1
+wcfc9:: ds 1
+wcfca:: ds 1
+wcfcb:: ds 1
W_ENEMYMOVENUM:: ; cfcc
ds 1
@@ -354,106 +633,66 @@
W_PLAYERMOVEMAXPP:: ; cfd7
ds 1
-W_ENEMYMONID:: ; cfd8
- ds 1
+wEnemyMonSpecies2:: ; cfd8
ds 1
-
-W_ENEMYMONNAME:: ; cfda
- ds 11
-
+wBattleMonSpecies2:: ; cfd9
ds 1
-W_ENEMYMONCURHP:: ; cfe6
-; active opponent's hp (16 bits)
- ds 2
-W_ENEMYMONNUMBER:: ; cfe8
-; active opponent's position in team (0 to 5)
- ds 1
-W_ENEMYMONSTATUS:: ; cfe9
-; active opponent's status condition
- ds 1
-W_ENEMYMONTYPES:: ; cfea
-W_ENEMYMONTYPE1:: ; cfea
- ds 1
-W_ENEMYMONTYPE2:: ; cfeb
- ds 1
- ds 1
-W_ENEMYMONMOVES:: ; cfed
- ds 4
-W_ENEMYMONATKDEFIV:: ; cff1
- ds 1
-W_ENEMYMONSPDSPCIV:: ; cff2
- ds 1
-W_ENEMYMONLEVEL:: ; cff3
- ds 1
-W_ENEMYMONMAXHP:: ; cff4
- ds 2
-W_ENEMYMONATTACK:: ; cff6
- ds 2
-W_ENEMYMONDEFENSE:: ; cff8
- ds 2
-W_ENEMYMONSPEED:: ; cffa
- ds 2
-W_ENEMYMONSPECIAL:: ; cffc
- ds 2
+wEnemyMonNick:: ds 11 ; cfda
-W_ENEMYMONPP:: ; cffe
-; four moves (extends past $cfff)
- ds 2
+wEnemyMon:: ; cfe5
+; The wEnemyMon struct reaches past 0xcfff,
+; the end of wram bank 0 on cgb.
+; This has no significance on dmg, where wram
+; isn't banked (c000-dfff is contiguous).
+; However, recent versions of rgbds have replaced
+; dmg-style wram with cgb wram banks.
+; Until this is fixed, this struct will have
+; to be declared manually.
+wEnemyMonSpecies:: db
+wEnemyMonHP:: dw
+wEnemyMonPartyPos::
+wEnemyMonBoxLevel:: db
+wEnemyMonStatus:: db
+wEnemyMonType::
+wEnemyMonType1:: db
+wEnemyMonType2:: db
+wEnemyMonCatchRate:: db
+wEnemyMonMoves:: ds NUM_MOVES
+wEnemyMonDVs:: ds 2
+wEnemyMonLevel:: db
+wEnemyMonMaxHP:: dw
+wEnemyMonAttack:: dw
+wEnemyMonDefense:: dw
+wEnemyMonSpeed:: dw
+wEnemyMonSpecial:: dw
+wEnemyMonPP:: ds 2 ; NUM_MOVES - 2
SECTION "WRAM Bank 1", WRAMX, BANK[1]
+ ds 2 ; NUM_MOVES - 2
- ds 2 ; W_ENEMYMONPP
+wd002:: ds 5
+wd007:: ds 1
+wd008:: ds 1
- ds 7
+wBattleMonNick:: ds 11 ; d009
+wBattleMon:: battle_struct wBattleMon ; d014
-W_PLAYERMONNAME:: ; d009
- ds 11
-W_PLAYERMONID:: ; d014
+W_TRAINERCLASS:: ; d031
ds 1
-W_PLAYERMONCURHP:: ; d015
- ds 2
ds 1
-W_PLAYERMONSTATUS:: ; d018
-; the status of the player’s current monster
- ds 1
-W_PLAYERMONTYPES:: ; d019
-W_PLAYERMONTYPE1:: ; d019
- ds 1
-W_PLAYERMONTYPE2:: ; d01a
- ds 1
- ds 1
-W_PLAYERMONMOVES:: ; d01c
- ds 4
-W_PLAYERMONIVS:: ; d020
-; 4x 4 bit: atk, def, spd, spc
- ds 2
-W_PLAYERMONLEVEL:: ; d022
- ds 1
-W_PLAYERMONMAXHP:: ; d023
- ds 2
-W_PLAYERMONATK:: ; d025
- ds 2
-W_PLAYERMONDEF:: ; d027
- ds 2
-W_PLAYERMONSPEED:: ; d029
- ds 2
-W_PLAYERMONSPECIAL:: ; d02b
- ds 2
-W_PLAYERMONPP:: ; d02d
- ds 4
+wd033:: ds 1
+wd034:: ds 2
+wd036:: ds 16
+wd046:: ds 1
+wd047:: ds 1
+wd048:: ds 2
-
-W_TRAINERCLASS:: ; d031
- ds 1
-
- ds 24
-
W_TRAINERNAME:: ; d04a
; 13 bytes for the letters of the opposing trainer
; the name is terminated with $50 with possible
@@ -466,9 +705,8 @@
; trainer battle, this is 2
ds 1
-W_PLAYERMONSALIVEFLAGS:: ; d058
-; 6 bit array, 1 if player mon is alive
- ds 1
+wPartyAliveFlags:: ; d058
+ flag_array 6
W_CUROPPONENT:: ; d059
; in a wild battle, this is the species of pokemon
@@ -481,7 +719,7 @@
; in safari battle, this is 2
ds 1
- ds 1
+wd05b:: ds 1
W_LONEATTACKNO:: ; d05c
; which entry in LoneAttacks to use
@@ -492,12 +730,13 @@
; which instance of [youngster, lass, etc] is this?
ds 1
- ds 1
+wd05e:: ds 1
W_MOVEMISSED:: ; d05f
ds 1
- ds 2
+wd060:: ds 1
+wd061:: ds 1
W_PLAYERBATTSTATUS1:: ; d062
; bit 0 - bide
@@ -527,7 +766,8 @@
; bit 3 - tranformed
ds 1
- ds 2
+wd065:: ds 1
+wd066:: ds 1
W_ENEMYBATTSTATUS1:: ; d067
ds 1
@@ -536,7 +776,8 @@
W_ENEMYBATTSTATUS3:: ; d069
ds 1
- ds 2
+wd06a:: ds 1
+wd06b:: ds 1
W_PLAYERTOXICCOUNTER:: ; d06c
ds 1
@@ -543,8 +784,11 @@
W_PLAYERDISABLEDMOVE:: ; d06d
ds 1
- ds 3
+ ds 1
+wd06f:: ds 1
+wd070:: ds 1
+
W_ENEMYTOXICCOUNTER:: ; d071
ds 1
W_ENEMYDISABLEDMOVE:: ; d072
@@ -556,13 +800,18 @@
; number of hits in attacks like Doubleslap, etc.
ds 1
- ds 7
+wd075:: ds 3
+wd078:: ds 1
+wd079:: ds 1
+wd07a:: ds 1
+wd07b:: ds 1
W_ANIMATIONID:: ; d07c
; ID number of the current battle animation
ds 1
- ds 4
+wd07d:: ds 1
+wd07e:: ds 3
; base coordinates of frame block
W_BASECOORDX:: ; d081
@@ -570,13 +819,13 @@
W_BASECOORDY:: ; d082
ds 1
- ds 1
+wd083:: ds 1
W_FBTILECOUNTER:: ; d084
; counts how many tiles of the current frame block have been drawn
ds 1
- ds 1
+wd085:: ds 1
W_SUBANIMFRAMEDELAY:: ; d086
; duration of each frame of the current subanimation in terms of screen refreshes
@@ -585,13 +834,13 @@
; counts the number of subentries left in the current subanimation
ds 1
- ds 1
+wd088:: ds 1
W_NUMFBTILES:: ; d089
; number of tiles in current battle animation frame block
ds 1
- ds 1
+wd08a:: ds 1
W_SUBANIMTRANSFORM:: ; d08b
; controls what transformations are applied to the subanimation
@@ -624,8 +873,11 @@
; the address of the current subentry of the current subanimation
ds 2
- ds 4
+ ds 2
+wd09a:: ds 1
+wd09b:: ds 1
+
W_FBDESTADDR:: ; d09c
; current destination address in OAM for frame blocks (big endian)
ds 2
@@ -642,19 +894,9 @@
; contain the upper and lower bit of each of the 8 pixels, respectively
ds 1
+wd09f:: ds 1
+wd0a0:: ds 1
-SECTION "Sprite Buffers", SRAM
-
-S_SPRITEBUFFER0:: ; a000
- ds SPRITEBUFFERSIZE
-S_SPRITEBUFFER1:: ; a188
- ds SPRITEBUFFERSIZE
-S_SPRITEBUFFER2:: ; a310
- ds SPRITEBUFFERSIZE
-
-
-SECTION "Sprites", WRAMX[$d0a1], BANK[1]
-
W_SPRITECURPOSX:: ; d0a1
ds 1
W_SPRITECURPOSY:: ; d0a2
@@ -702,11 +944,12 @@
; pointer to differential decoding table (assuming initial value 1)
ds 2
- ds 1
+wd0b5:: ds 1
W_LISTTYPE:: ; d0b6
ds 1
+wPredefBank:: ; d0b7
ds 1
W_MONHEADER:: ; d0b8
@@ -750,9 +993,10 @@
W_MONHLEARNSET:: ; d0cc
; bit field
- ds 7
+ flag_array 50 + 5
+ ds 1
- ds 4
+wd0d4:: ds 3
W_MONHPADDING:: ; d0d7
@@ -760,17 +1004,47 @@
W_DAMAGE:: ; d0d7
ds 1
- ds 79
+wd0d8:: ds 3
+wd0db:: ds 1
+wd0dc:: ds 4
+wd0e0:: ds 1
+wd0e1:: ds 56
+wd119:: ds 1
+wd11a:: ds 1
+wd11b:: ds 1
+wd11c:: ds 1
+wd11d:: ds 1
+wd11e:: ds 1
+wd11f:: ds 1
+wd120:: ds 1
+wd121:: ds 1
+wd122:: ds 2
+wd124:: ds 1
+wd125:: ds 1
+wd126:: ds 1
W_CURENEMYLVL:: ; d127
ds 1
- ds 3
+wd128:: ds 1
+wd129:: ds 1
+wd12a:: ds 1
W_ISLINKBATTLE:: ; d12b
ds 1
- ds 17
+wd12c:: ds 1
+wd12d:: ds 1
+wd12e:: ds 1
+wd12f:: ds 1
+wd130:: ds 1
+wd131:: ds 1
+wd132:: ds 1
+wd133:: ds 6
+wd139:: ds 1
+wd13a:: ds 1
+wd13b:: ds 1
+wd13c:: ds 1
W_PRIZE1:: ; d13d
ds 1
@@ -779,134 +1053,43 @@
W_PRIZE3:: ; d13f
ds 1
- ds 24
-
-W_PLAYERNAME:: ; d158
- ds 11
-
-W_NUMINPARTY:: ; d163
ds 1
-W_PARTYMON1:: ; d164
- ds 1
-W_PARTYMON2:: ; d165
- ds 1
-W_PARTYMON3:: ; d166
- ds 1
-W_PARTYMON4:: ; d167
- ds 1
-W_PARTYMON5:: ; d168
- ds 1
-W_PARTYMON6:: ; d169
- ds 1
-W_PARTYMONEND:: ; d16a
- ds 1
-W_PARTYMON1DATA:: ; d16b
-W_PARTYMON1_NUM:: ; d16b
- ds 1
-W_PARTYMON1_HP:: ; d16c
- ds 2
-W_PARTYMON1_BOXLEVEL:: ; d16e
- ds 1
-W_PARTYMON1_STATUS:: ; d16f
- ds 1
-W_PARTYMON1_TYPE1:: ; d170
- ds 1
-W_PARTYMON1_TYPE2:: ; d171
- ds 1
-W_PARTYMON1_CRATE:: ; d172
- ds 1
-W_PARTYMON1_MOVE1:: ; d173
- ds 1
-W_PARTYMON1_MOVE2:: ; d174
- ds 1
-W_PARTYMON1_MOVE3:: ; d175
- ds 1
-W_PARTYMON1_MOVE4:: ; d176
- ds 1
-W_PARTYMON1_OTID:: ; d177
- ds 2
-W_PARTYMON1_EXP:: ; d179
- ds 3
-W_PARTYMON1_EVHP:: ; d17c
- ds 2
-W_PARTYMON1_EVATTACK:: ; d17e
- ds 2
-W_PARTYMON1_EVDEFENSE:: ; d180
- ds 2
-W_PARTYMON1_EVSPEED:: ; d182
- ds 2
-W_PARTYMON1_EVSECIAL:: ; d184
- ds 2
-W_PARTYMON1_IV:: ; d186
- ds 2
-W_PARTYMON1_MOVE1PP:: ; d188
- ds 1
-W_PARTYMON1_MOVE2PP:: ; d189
- ds 1
-W_PARTYMON1_MOVE3PP:: ; d18a
- ds 1
-W_PARTYMON1_MOVE4PP:: ; d18b
- ds 1
-W_PARTYMON1_LEVEL:: ; d18c
- ds 1
-W_PARTYMON1_MAXHP:: ; d18d
- ds 2
-W_PARTYMON1_ATACK:: ; d18f
- ds 2
-W_PARTYMON1_DEFENSE:: ; d191
- ds 2
-W_PARTYMON1_SPEED:: ; d193
- ds 2
-W_PARTYMON1_SPECIAL:: ; d195
- ds 2
+wd141:: ds 2
+wd143:: ds 2
+wd145:: ds 3
+wd148:: ds 10
+wd152:: ds 1
+wd153:: ds 3
+wd156:: ds 1
+wd157:: ds 1
-W_PARTYMON2DATA:: ; d197
- ds 44
-W_PARTYMON3DATA:: ; d1c3
- ds 44
-W_PARTYMON4DATA:: ; d1ef
- ds 44
-W_PARTYMON5DATA:: ; d21b
- ds 44
-W_PARTYMON6DATA:: ; d247
- ds 44
-W_PARTYMON1OT:: ; d273
+wPlayerName:: ; d158
ds 11
-W_PARTYMON2OT:: ; d27e
- ds 11
-W_PARTYMON3OT:: ; d289
- ds 11
-W_PARTYMON4OT:: ; d294
- ds 11
-W_PARTYMON5OT:: ; d29f
- ds 11
-W_PARTYMON6OT:: ; d2aa
- ds 11
-W_PARTYMON1NAME:: ; d2b5
- ds 11
-W_PARTYMON2NAME:: ; d2c0
- ds 11
-W_PARTYMON3NAME:: ; d2cb
- ds 11
-W_PARTYMON4NAME:: ; d2d6
- ds 11
-W_PARTYMON5NAME:: ; d2e1
- ds 11
-W_PARTYMON6NAME:: ; d2ec
- ds 11
+wPartyCount:: ds 1 ; d163
+wPartySpecies:: ds PARTY_LENGTH ; d164
+wPartyEnd:: ds 1 ; d16a
+wPartyMons::
+wPartyMon1:: party_struct wPartyMon1 ; d16b
+wPartyMon2:: party_struct wPartyMon2 ; d197
+wPartyMon3:: party_struct wPartyMon3 ; d1c3
+wPartyMon4:: party_struct wPartyMon4 ; d1ef
+wPartyMon5:: party_struct wPartyMon5 ; d21b
+wPartyMon6:: party_struct wPartyMon6 ; d247
-SECTION "Pokedex", WRAMX[$d2f7], BANK[1]
+wPartyMonOT:: ds 11 * PARTY_LENGTH ; d273
+wPartyMonNicks:: ds 11 * PARTY_LENGTH ; d2b5
+
wPokedexOwned:: ; d2f7
- ds (150 / 8) + 1
+ flag_array NUM_POKEMON
wPokedexOwnedEnd::
wPokedexSeen:: ; d30a
- ds (150 / 8) + 1
+ flag_array NUM_POKEMON
wPokedexSeenEnd::
@@ -917,9 +1100,8 @@
ds 20 * 2
ds 1 ; end
-; money is in decimal
wPlayerMoney:: ; d347
- ds 3
+ ds 3 ; BCD
W_RIVALNAME:: ; d34a
ds 11
@@ -940,17 +1122,22 @@
W_OBTAINEDBADGES:: ; d356
ds 1
- ds 2
+ ds 1
+wd358:: ds 1
+
wPlayerID:: ; d359
ds 2
- ds 3
+wd35b:: ds 1
+wd35c:: ds 1
+wd35d:: ds 1
W_CURMAP:: ; d35e
ds 1
- ds 2
+wd35f:: ds 1
+wd360:: ds 1
W_YCOORD:: ; d361
; player’s position on the current map
@@ -969,7 +1156,7 @@
wLastMap:: ; d365
ds 1
- ds 1
+wd366:: ds 1
W_CURMAPTILESET:: ; d367
ds 1
@@ -996,21 +1183,61 @@
ds 1
W_MAPCONN1PTR:: ; d371
- ds 2
- ds 9
+ ds 1
+wd372:: ds 1
+wd373:: ds 1
+wd374:: ds 1
+wd375:: ds 1
+wd376:: ds 1
+wd377:: ds 1
+wd378:: ds 1
+wd379:: ds 1
+wd37a:: ds 1
+wd37b:: ds 1
+
W_MAPCONN2PTR:: ; d37c
- ds 2
- ds 9
+ ds 1
+wd37d:: ds 1
+wd37e:: ds 1
+wd37f:: ds 1
+wd380:: ds 1
+wd381:: ds 1
+wd382:: ds 1
+wd383:: ds 1
+wd384:: ds 1
+wd385:: ds 1
+wd386:: ds 1
+
W_MAPCONN3PTR:: ; d387
- ds 2
- ds 9
+ ds 1
+wd388:: ds 1
+wd389:: ds 1
+wd38a:: ds 1
+wd38b:: ds 1
+wd38c:: ds 1
+wd38d:: ds 1
+wd38e:: ds 1
+wd38f:: ds 1
+wd390:: ds 1
+wd391:: ds 1
+
W_MAPCONN4PTR:: ; d392
- ds 2
- ds 9
+ ds 1
+wd393:: ds 1
+wd394:: ds 1
+wd395:: ds 1
+wd396:: ds 1
+wd397:: ds 1
+wd398:: ds 1
+wd399:: ds 1
+wd39a:: ds 1
+wd39b:: ds 1
+wd39c:: ds 1
+
W_SPRITESET:: ; d39d
; sprite set for the current map (11 sprite picture ID's)
ds 11
@@ -1019,20 +1246,39 @@
; sprite set ID for the current map
ds 1
- ds 312
+wd3a9:: ds 1
+wd3aa:: ds 3
+wd3ad:: ds 1
+wd3ae:: ds 1
+wd3af:: ds 128
+wd42f:: ds 129
+wd4b0:: ds 1
+wd4b1:: ds 32
+wd4d1:: ds 16
W_NUMSPRITES:: ; d4e1
; number of sprites on the current map
; two bytes per sprite (movement byte 2 , text ID)
- ds 3
+ ds 1
+wd4e2:: ds 1
+wd4e3:: ds 1
+
W_MAPSPRITEDATA:: ; d4e4
; two bytes per sprite (trainer class/item ID , trainer set ID)
ds 32
W_MAPSPRITEEXTRADATA:: ; d504
- ds 39
+ ds 32
+wd524:: ds 1
+wd525:: ds 1
+wd526:: ds 1
+wd527:: ds 1
+wd528:: ds 1
+wd529:: ds 1
+wd52a:: ds 1
+
W_TILESETBANK:: ; d52b
ds 1
@@ -1053,9 +1299,8 @@
W_GRASSTILE:: ; d535
ds 1
+ ds 4
-SECTION "Items", WRAMX[$d53a], BANK[1]
-
wNumBoxItems:: ; d53a
ds 1
wBoxItems:: ; d53b
@@ -1063,16 +1308,19 @@
ds 50 * 2
ds 1 ; end
- ds 4
+wd5a0:: ds 2
+wd5a2:: ds 1
+wd5a3:: ds 1
-; coins are in decimal
wPlayerCoins:: ; d5a4
- ds 2
+ ds 2 ; BCD
W_MISSABLEOBJECTFLAGS:: ; d5a6
; bit array of missable objects. set = removed
- ds 40
+ ds 39
+wd5cd:: ds 1
+
W_MISSABLEOBJECTLIST:: ; d5ce
; each entry consists of 2 bytes
; * the sprite ID (depending on the current map)
@@ -1294,11 +1542,14 @@
W_ROUTE18GATECURSCRIPT:: ; d669
ds 1
- ds 161
+ ds 134
+wd6f0:: ds 14
+wd6fe:: ds 2
+wd700:: ds 11
+
W_TOWNVISITEDFLAG:: ; d70b
-; 2 bytes bit array, 1 means visited
- ds 2
+ flag_array 13
wSafariSteps:: ; d70d
; starts at 502
@@ -1318,7 +1569,7 @@
; trainer classes start at $c8
ds 1
- ds 1
+wd714:: ds 1
W_RIVALSTARTER:: ; d715
ds 1
@@ -1328,18 +1579,166 @@
W_PLAYERSTARTER:: ; d717
ds 1
- ds 1
+wd718:: ds 1
wLastBlackoutMap:: ; d719
ds 1
- ds 25
+wd71a:: ds 1
+wd71b:: ds 1
+wd71c:: ds 1
+wd71d:: ds 1
+wd71e:: ds 1
+wd71f:: ds 9
+wd728:: ds 2
+wd72a:: ds 2
+wd72c:: ds 1
+wd72d:: ds 1
+wd72e:: ds 2
+wd730:: ds 2
+wd732:: ds 1
-
W_FLAGS_D733:: ; d733
; bit 4: use variable [W_CURMAPSCRIPT] instead of the provided index for next frame's map script (used to start battle when talking to trainers)
- ds 340
+ ds 1
+wd734:: ds 2
+wd736:: ds 1
+wd737:: ds 4
+wd73b:: ds 1
+wd73c:: ds 3
+wd73f:: ds 1
+wd740:: ds 3
+wd743:: ds 1
+wd744:: ds 3
+wd747:: ds 3
+wd74a:: ds 1
+wd74b:: ds 1
+wd74c:: ds 2
+wd74e:: ds 3
+wd751:: ds 1
+wd752:: ds 2
+wd754:: ds 1
+wd755:: ds 5
+wd75a:: ds 1
+wd75b:: ds 3
+wd75e:: ds 1
+wd75f:: ds 5
+wd764:: ds 1
+wd765:: ds 1
+wd766:: ds 1
+wd767:: ds 1
+wd768:: ds 1
+wd769:: ds 3
+wd76c:: ds 5
+wd771:: ds 2
+wd773:: ds 4
+wd777:: ds 1
+wd778:: ds 4
+wd77c:: ds 1
+wd77d:: ds 1
+wd77e:: ds 5
+wd783:: ds 11
+wd78e:: ds 2
+wd790:: ds 2
+wd792:: ds 4
+wd796:: ds 2
+wd798:: ds 2
+wd79a:: ds 1
+wd79b:: ds 1
+wd79c:: ds 5
+wd7a1:: ds 2
+wd7a3:: ds 12
+wd7af:: ds 2
+wd7b1:: ds 2
+wd7b3:: ds 1
+wd7b4:: ds 5
+wd7b9:: ds 4
+wd7bd:: ds 2
+wd7bf:: ds 3
+wd7c2:: ds 1
+wd7c3:: ds 2
+wd7c5:: ds 1
+wd7c6:: ds 3
+wd7c9:: ds 4
+wd7cd:: ds 2
+wd7cf:: ds 2
+wd7d1:: ds 1
+wd7d2:: ds 1
+wd7d3:: ds 2
+wd7d5:: ds 1
+wd7d6:: ds 1
+wd7d7:: ds 1
+wd7d8:: ds 1
+wd7d9:: ds 2
+wd7db:: ds 2
+wd7dd:: ds 2
+wd7df:: ds 1
+wd7e0:: ds 1
+wd7e1:: ds 2
+wd7e3:: ds 2
+wd7e5:: ds 2
+wd7e7:: ds 1
+wd7e8:: ds 1
+wd7e9:: ds 2
+wd7eb:: ds 2
+wd7ed:: ds 1
+wd7ee:: ds 1
+wd7ef:: ds 1
+wd7f0:: ds 1
+wd7f1:: ds 1
+wd7f2:: ds 1
+wd7f3:: ds 2
+wd7f5:: ds 1
+wd7f6:: ds 9
+wd7ff:: ds 4
+wd803:: ds 2
+wd805:: ds 2
+wd807:: ds 2
+wd809:: ds 10
+wd813:: ds 2
+wd815:: ds 1
+wd816:: ds 1
+wd817:: ds 2
+wd819:: ds 2
+wd81b:: ds 10
+wd825:: ds 1
+wd826:: ds 1
+wd827:: ds 1
+wd828:: ds 1
+wd829:: ds 1
+wd82a:: ds 1
+wd82b:: ds 1
+wd82c:: ds 1
+wd82d:: ds 1
+wd82e:: ds 1
+wd82f:: ds 1
+wd830:: ds 1
+wd831:: ds 1
+wd832:: ds 1
+wd833:: ds 1
+wd834:: ds 1
+wd835:: ds 1
+wd836:: ds 1
+wd837:: ds 1
+wd838:: ds 15
+wd847:: ds 2
+wd849:: ds 2
+wd84b:: ds 12
+wd857:: ds 8
+wd85f:: ds 4
+wd863:: ds 1
+wd864:: ds 1
+wd865:: ds 1
+wd866:: ds 1
+wd867:: ds 2
+wd869:: ds 20
+wd87d:: ds 2
+wd87f:: ds 1
+wd880:: ds 1
+wd881:: ds 1
+wd882:: ds 5
+
W_GRASSRATE:: ; d887
ds 1
@@ -1346,67 +1745,29 @@
W_GRASSMONS:: ; d888
ds 20
-wEnemyPartyCount:: ; d89c
- ds 1
-wEnemyPartyMons:: ; d89d
- ds 6
- ds 1 ; end
+wEnemyPartyCount:: ds 1 ; d89c
+wEnemyPartyMons:: ds PARTY_LENGTH + 1 ; d89d
-wEnemyMons::
+wEnemyMons:: ; d8a4
+wEnemyMon1:: party_struct wEnemyMon1
+wEnemyMon2:: party_struct wEnemyMon2
+wEnemyMon3:: party_struct wEnemyMon3
+wEnemyMon4:: party_struct wEnemyMon4
+wEnemyMon5:: party_struct wEnemyMon5
+wEnemyMon6:: party_struct wEnemyMon6
-wEnemyMon1:: ; d8a4
-wEnemyMon1Species:: ; d8a4
- ds 1
-W_ENEMYMON1HP:: ; d8a5
- ds 2
+wEnemyMonOT:: ds 11 * PARTY_LENGTH ; d9ac
+wEnemyMonNicks:: ds 11 * PARTY_LENGTH ; d9ee
- ds 7
-W_ENEMYMON1MOVE3:: ; d8ae
- ds 44
-W_ENEMYMON2MOVE3:: ; d8da
- ds 44
-W_ENEMYMON3MOVE3:: ; d906
- ds 44
-W_ENEMYMON4MOVE3:: ; d932
- ds 44
-W_ENEMYMON5MOVE3:: ; d95e
- ds 44
-W_ENEMYMON6MOVE3:: ; d98a
- ds 34
-
-W_ENEMYMON1OT:: ; d9ac
- ds 11
-W_ENEMYMON2OT:: ; d9b7
- ds 11
-W_ENEMYMON3OT:: ; d9c2
- ds 11
-W_ENEMYMON4OT:: ; d9cd
- ds 11
-W_ENEMYMON5OT:: ; d9d8
- ds 11
-W_ENEMYMON6OT:: ; d9e3
- ds 11
-
-W_ENEMYMON1NAME:: ; d9ee
- ds 11
-W_ENEMYMON2NAME:: ; d9f9
- ds 11
-W_ENEMYMON3NAME:: ; da04
- ds 11
-W_ENEMYMON4NAME:: ; da0f
- ds 11
-W_ENEMYMON5NAME:: ; da1a
- ds 11
-W_ENEMYMON6NAME:: ; da25
- ds 11
-
W_TRAINERHEADERPTR:: ; da30
ds 2
- ds 7
+ ds 6
+wda38:: ds 1
+
W_CURMAPSCRIPT:: ; da39
; index of current map script, mostly used as index for function pointer array
; mostly copied from map-specific map script pointer and wirtten back later
@@ -1423,42 +1784,47 @@
W_PLAYTIMEFRAMES:: ; da45
ds 1
- ds 1
+wda46:: ds 1
W_NUMSAFARIBALLS:: ; da47
ds 1
+
W_DAYCARE_IN_USE:: ; da48
; 0 if no pokemon is in the daycare
; 1 if pokemon is in the daycare
ds 1
-W_DAYCAREMONNAME:: ; da49
- ds 11
+W_DAYCAREMONNAME:: ds 11 ; da49
+W_DAYCAREMONOT:: ds 11 ; da54
-W_DAYCAREMONOT:: ; da54
- ds 11
+wDayCareMon:: box_struct wDayCareMon ; da5f
-W_DAYCAREMONDATA:: ; da5f
- ds 33
-W_NUMINBOX:: ; da80
-; number of mons in current box
- ds 22
+W_NUMINBOX:: ds 1 ; da80
+wBoxSpecies:: ds MONS_PER_BOX + 1
-W_BOXMON1DATA:: ; da96
- ds 33
-W_BOXMON2DATA:: ; dab7
- ds 33 * 19
+wBoxMons::
+wBoxMon1:: box_struct wBoxMon1 ; da96
+wBoxMon2:: ds box_struct_length * (MONS_PER_BOX + -1) ; dab7
-W_BOXMON1OT:: ; dd2a
- ds 11
-W_BOXMON2OT:: ; dd35
- ds 11 * 19
+wBoxMonOT:: ds 11 * MONS_PER_BOX ; dd2a
+wBoxMonNicks:: ds 11 * MONS_PER_BOX ; de06
+wBoxMonNicksEnd:: ; dee2
-W_BOXMON1NAME:: ; de06
- ds 11
-W_BOXMON2NAME:: ; de11
- ds 11 * 19
-; dee2
+SECTION "Stack", WRAMX[$dfff], BANK[1]
+wStack:: ; dfff
+ ds -$100
+
+
+SECTION "Sprite Buffers", SRAM, BANK[0]
+
+S_SPRITEBUFFER0:: ds SPRITEBUFFERSIZE ; a000
+S_SPRITEBUFFER1:: ds SPRITEBUFFERSIZE ; a188
+S_SPRITEBUFFER2:: ds SPRITEBUFFERSIZE ; a310
+
+ ds $100
+
+sHallOfFame:: ds HOF_TEAM * NUM_HOF_TEAMS ; a598
+
--- /dev/null
+++ b/yellow.asm
@@ -1,0 +1,1 @@
+_YELLOW EQU 1
--- /dev/null
+++ b/yellow/audio.asm
@@ -1,0 +1,2 @@
+INCLUDE "yellow.asm"
+INCLUDE "audio.asm"
--- /dev/null
+++ b/yellow/main.asm
@@ -1,0 +1,2 @@
+INCLUDE "yellow.asm"
+INCLUDE "main.asm"
--- /dev/null
+++ b/yellow/text.asm
@@ -1,0 +1,2 @@
+INCLUDE "yellow.asm"
+INCLUDE "text.asm"
--- /dev/null
+++ b/yellow/wram.asm
@@ -1,0 +1,2 @@
+INCLUDE "yellow.asm"
+INCLUDE "wram.asm"