summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore18
-rw-r--r--INSTALL.md45
-rw-r--r--Makefile67
-rw-r--r--README19
-rw-r--r--README.md18
-rw-r--r--constants.asm3439
-rw-r--r--constants/item_constants.asm140
-rw-r--r--constants/map_constants.asm250
-rw-r--r--constants/map_dimensions.asm890
-rw-r--r--constants/move_constants.asm180
-rw-r--r--constants/move_effect_constants.asm73
-rw-r--r--constants/palette_constants.asm39
-rw-r--r--constants/pokedex_constants.asm152
-rw-r--r--constants/pokemon_constants.asm155
-rw-r--r--constants/trainer_constants.asm48
m---------extras0
-rw-r--r--hram.asm116
-rwxr-xr-xinit.sh16
-rw-r--r--macros.asm265
-rwxr-xr-xmain.asm3360
-rw-r--r--pokeblue.asm1
-rw-r--r--pokered.asm1
-rw-r--r--preprocessor.py (renamed from textpre.py)32
-rw-r--r--prequeue.py40
-rw-r--r--wram.asm1432
25 files changed, 5674 insertions, 5122 deletions
diff --git a/.gitignore b/.gitignore
index aaab40fa..527dfdd0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+# global label defs are generated
+globals.asm
+
# precompiled python
*.pyc
@@ -9,6 +12,11 @@
# roms
*.gbc
+*.gb
+
+# rgbds extras
+*.map
+*.sym
# generated
*.tx
@@ -20,13 +28,9 @@
*.json
# for any of the poor souls with save game files in their working directory
-baserom.sgm
-baserom.sav
-pokered.sgm
-pokered.sav
-
-baserom.sys
-pokered.sys
+*.sgm
+*.sav
+*.sys
# for vim configuration
# url: http://www.vim.org/scripts/script.php?script_id=441
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 00000000..d687288c
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,45 @@
+# Getting Started
+
+A base rom of Pokémon Red is required to assemble **pokered.gbc**.
+
+ Pokemon Red (UE) [S][!].gb
+ (MD5: 3d45c1ee9abd5738df46d2bdda8b57dc)
+
+
+# Linux
+
+Linux dependencies. OSX users already have these after installing Xcode.
+
+ sudo apt-get install make gcc bison git python python-setuptools
+
+
+Set up the **pokered** repository:
+
+ git clone git://github.com/iimarckus/pokered.git
+ cd pokered
+
+ ./init.sh
+
+Copy the Pokémon Red rom to this directory. Name it **baserom.gbc**.
+
+Now **pokered.gbc** can be built from source.
+
+ make red
+
+This should take about 10-15 seconds. Subsequent builds are faster.
+
+
+To build Pokémon Blue:
+
+ make blue
+
+
+# OSX
+
+Download and install **Xcode**. Then follow the Linux instructions.
+
+
+# Windows
+
+Not yet.
+
diff --git a/Makefile b/Makefile
index cb0b7036..3a31e258 100644
--- a/Makefile
+++ b/Makefile
@@ -1,32 +1,65 @@
+PYTHON := python
.SUFFIXES: .asm .tx .o .gbc
+.PHONY: all clean red blue
+.SECONDEXPANSION:
-TEXTFILES := $(shell find ./ -type f -name '*.asm')
-all: pokered.gbc
+TEXTQUEUE :=
-pokered.o: pokered.tx main.tx constants.tx wram.tx ${TEXTFILES:.asm=.tx}
- rgbasm -o pokered.o pokered.tx
-
-pokeblue.o: pokeblue.tx main.tx constants.tx wram.tx ${TEXTFILES:.asm=.tx}
- rgbasm -o pokeblue.o pokeblue.tx
+RED_OBJS := pokered.o
+BLUE_OBJS := pokeblue.o
+
+OBJS := $(RED_OBJS) $(BLUE_OBJS)
+
+ROMS := pokered.gbc pokeblue.gbc
+
+# generate dependencies for each object
+$(shell $(foreach obj, $(OBJS), \
+ $(eval $(obj:.o=)_DEPENDENCIES := $(shell $(PYTHON) extras/pokemontools/scan_includes.py $(obj:.o=.asm) | sed s/globals.asm//g)) \
+))
+$(shell $(foreach obj, $(OBJS), \
+ $(eval ALL_DEPENDENCIES += $($(obj:.o=)_DEPENDENCIES)) \
+))
+
+all: $(ROMS)
+red: pokered.gbc
+blue: pokeblue.gbc
redrle: extras/redtools/redrle.c
${CC} -o $@ $>
+clean:
+ rm -f $(ROMS)
+ rm -f $(OBJS)
+ rm -f globals.asm
+ @echo "removing *.tx" && find . -iname '*.tx' -exec rm {} +
+ rm -f redrle
+
+
+baserom.gbc: ;
+ @echo "Wait! Need baserom.gbc first. Check README and INSTALL for details." && false
+
+%.asm: ;
.asm.tx:
- python textpre.py < $< > $@
+ $(eval TEXTQUEUE := $(TEXTQUEUE) $<)
+ @rm -f $@
+
+globals.asm: $(ALL_DEPENDENCIES:.asm=.tx) $(OBJS:.o=.tx)
+ @touch $@
+ @$(PYTHON) prequeue.py $(TEXTQUEUE)
+globals.tx: globals.asm
+ @cp $< $@
+
+$(OBJS): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_DEPENDENCIES))
+ rgbasm -o $@ $*.tx
-pokered.gbc: pokered.o
- rgblink -o $@ $*.o
+pokered.gbc: globals.tx $(RED_OBJS)
+ rgblink -n $*.sym -m $*.map -o $@ $(RED_OBJS)
rgbfix -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 -t "POKEMON RED" $@
cmp baserom.gbc $@
-
-pokeblue.gbc: pokeblue.o
- rgblink -o $@ $*.o
+
+pokeblue.gbc: globals.tx $(BLUE_OBJS)
+ rgblink -n $*.sym -m $*.map -o $@ $(BLUE_OBJS)
rgbfix -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 -t "POKEMON BLUE" $@
cmp blue.gbc $@
-clean:
- rm -f pokered.o pokered.gbc pokeblue.o pokeblue.gbc redrle $(TEXTFILES:.asm=.tx)
-
-more: pokered.gbc pokeblue.gbc
diff --git a/README b/README
deleted file mode 100644
index bdf5ac67..00000000
--- a/README
+++ /dev/null
@@ -1,19 +0,0 @@
-This is a disassembly of Pokémon Red.
-
-It uses the following ROM as a base:
-Pokemon Red (UE) [S][!].gb
-(MD5: 3d45c1ee9abd5738df46d2bdda8b57dc)
-
-To assemble, first install RGBDS and put it in your path.
-
-The version of RGBDS needed is rgbds-linux:
-https://github.com/bentley/rgbds/
-git://github.com/bentley/rgbds.git
-
-Then copy the Pokémon ROM to this directory as "baserom.gbc".
-Then run "make" in your shell.
-
-This will output a file named "pokered.gbc".
-
-Our IRC channel is located here:
-server nucleus.kafuka.org, channel #skeetendo
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..412b3222
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# Pokémon Red
+
+This is a disassembly of Pokémon Red.
+
+It uses the following ROM as a base:
+
+ Pokemon Red (UE) [S][!].gb
+ (MD5: 3d45c1ee9abd5738df46d2bdda8b57dc)
+
+To set up the repository, see [**INSTALL.md**](INSTALL.md).
+
+
+## See also
+
+* Disassembly of [**Pokémon Crystal**](https://github.com/kanzure/pokecrystal)
+
+* irc: **nucleus.kafuka.org** [**#skeetendo**](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)
+
diff --git a/constants.asm b/constants.asm
index fa0f3afc..c453884b 100644
--- a/constants.asm
+++ b/constants.asm
@@ -2,497 +2,17 @@ _JAPAN EQU 0
_GREEN EQU 0
_YELLOW EQU 0
-;\1 = X
-;\2 = Y
-FuncCoord: MACRO
-Coord = $C3A0 + 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
- db \2,\3 ;Y,X
- ENDM
+INCLUDE "macros.asm"
-FLYWARP_DATA: MACRO
- EVENT_DISP \1,\2,\3
- db ((\2) & $01) ;sub-block Y
- db ((\3) & $01) ;sub-block X
- ENDM
+INCLUDE "hram.asm"
-; external map entry macro
-EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer
-; the appearance of towns and routes in the town map, indexed by map id
- ; nybble: y-coordinate
- ; nybble: x-coordinate
- ; word : pointer to map name
- db (\1 + (\2 << 4))
- dw \3
- ENDM
-
-; internal map entry macro
-IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer
-; the appearance of buildings and dungeons in the town map
- ; byte : maximum map id subject to this rule
- ; nybble: y-coordinate
- ; nybble: x-coordinate
- ; word : pointer to map name
- db \1
- db \2 + \3 << 4
- dw \4
- ENDM
-
-; tilesets' headers macro
-TSETHEAD: MACRO
- db BANK(\2)
- dw \1,\2,\3
- db \4,\5,\6,\7,\8
- ENDM
-
-; macro for two nibbles
-dn: MACRO
- db (\1 << 4 | \2)
- ENDM
-
-; macro for putting a byte then a word
-dbw: MACRO
- db \1
- dw \2
- ENDM
-
-; data format macros
-RGB: MACRO
- dw (\3 << 10 | \2 << 5 | \1)
- ENDM
-
-; text macros
-TX_NUM: MACRO
-; print a big-endian decimal number.
-; \1: address to read from
-; \2: number of bytes to read
-; \3: number of digits to display
- db $09
- dw \1
- db \2 << 4 | \3
- ENDM
-
-TX_FAR: MACRO
- db $17
- dw \1
- db BANK(\1)
- ENDM
-
-; text engine command $1
-TX_RAM: MACRO
-; prints text to screen
-; \1: RAM address to read from
- db $1
- dw \1
- ENDM
-
-; Predef macro.
-PREDEF: MACRO
- ld a, (\1 - PredefPointers) / 3
- call Predef
- ENDM
-
-PREDEF_JUMP: MACRO
- ld a, (\1 - PredefPointers) / 3
- jp Predef
- ENDM
-
-; wram locations
-
-; data for all sprites on the current map
-; holds info for 16 sprites with $10 bytes each
-; player sprite is always sprite 0
-; C1x0: picture ID (fixed, loaded at map init)
-; C1x1: movement status (0: uninitialized, 1: ready, 2: delayed, 3: moving)
-; C1x2: sprite image index (changed on update, $ff if off screen, includes facing direction, progress in walking animation and a sprite-specific offset)
-; C1x3: Y screen position delta (-1,0 or 1; added to c1x4 on each walking animation update)
-; C1x4: Y screen position (in pixels, always 4 pixels above grid which makes sprites appear to be in the center of a tile)
-; C1x5: X screen position delta (-1,0 or 1; added to c1x6 on each walking animation update)
-; C1x6: X screen position (in pixels, snaps to grid if not currently walking)
-; C1x7: intra-animation-frame counter (counting upwards to 4 until c1x8 is incremented)
-; C1x8: animation frame counter (increased every 4 updates, hold four states (totalling to 16 walking frames)
-; C1x9: facing direction (0: down, 4: up, 8: left, $c: right)
-; C1xA
-; C1xB
-; C1xC
-; C1xD
-; C1xE
-; C1xF
-W_SPRITESTATEDATA1 EQU $C100 ; to $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:
-; 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)
-; C2x5: X position (in 2x2 tile grid steps, leftmost 2x2 tile has value 4)
-; C2x6: movement byte 1 (determines whether a sprite can move, $ff:not moving, $fe:random movements, others unknown)
-; C2x7: (?) (set to $80 when in grass, else $0; may be used to draw grass above the sprite)
-; C2x8: delay until next movement (counted downwards, status (c1x1) is set to ready if reached 0)
-; C2x9
-; C2xA
-; C2xB
-; C2xC
-; C2xD
-; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
-; C2xF
-W_SPRITESTATEDATA2 EQU $C200 ; to $C300
-
-; buffer for OAM data. Is copied to OAM RAM by OAM DMA
-W_OAMBUFFER EQU $C300 ; size $a0, to $C3A0
-
-; buffer for tiles that are visible on screen (20 columns by 18 rows = $168 bytes)
-W_SCREENTILESBUFFER EQU $C3A0 ; size $168, to $C508
-
-; buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
-W_SCREENTILESBACKBUFFER EQU $C508 ; size $168, to $C670
-
-; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
-W_SCREENEDGETILES EQU $CBFC
-
-; coordinates of the position of the cursor for the top menu item (id 0)
-W_TOPMENUITEMY EQU $CC24
-W_TOPMENUITEMX EQU $CC25
-
-; the id of the currently selected menu item
-; the top item has id 0, the one below that has id 1, etc.
-; note that the "top item" means the top item currently visible on the screen
-; add this value to [W_LISTSCROLLOFFSET] to get the item's position within the list
-W_CURMENUITEMID EQU $CC26
-
-; the tile that was behind the menu cursor's current location
-W_TILEBEHINDCURSOR EQU $CC27
-
-W_MAXMENUITEMID EQU $CC28 ; id of the bottom menu item
-
-W_MENUWATCHEDKEYS EQU $CC29 ; bit mask of keys that the menu will respond to
-
-W_OLDMENUITEMID EQU $CC2A ; id of previously selected menu item
-
-; how many times should HandleMenuInput poll the joypad state before it returns?
-W_MENUJOYPADPOLLCOUNT EQU $CC34
-
-W_PLAYERMOVELISTINDEX EQU $CC2E
-W_PLAYERMONNUMBER EQU $CC2F
-
-; the address of the menu cursor's current location within C3A0-C507
-W_MENUCURSORLOCATION EQU $CC30 ; 2 bytes
-
-; offset of the current top menu item from the beginning of the list
-; keeps track of what section of the list is on screen
-W_LISTSCROLLOFFSET EQU $CC36
-
-; set to 1 if you can go from the bottom to the top or top to bottom of a menu
-; set to 0 if you can't go past the top or bottom of the menu
-W_MENUWRAPPINGENABLED EQU $CC4A
-
-W_TRAINERHEADERFLAGBIT EQU $CC55
-
-W_RLEBYTECOUNTER EQU $CCD2
-
-; current HP of player and enemy substitutes
-W_PLAYERSUBSITUTEHP EQU $CCD7
-W_ENEMYSUBSITUTEHP EQU $CCD8
-
-W_MOVEMENUTYPE EQU $CCDB ; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..)
-W_PLAYERSELECTEDMOVE EQU $CCDC
-W_ENEMYSELECTEDMOVE EQU $CCDD
-
-W_ENEMYMOVELISTINDEX EQU $CCE2
-
-W_AICOUNT EQU $CCDF ; number of times remaining that AI action can occur
-
-; stat modifiers for the player's current pokemon
-; value can range from 1 - 13 ($1 to $D)
-; 7 is normal
-
-W_PLAYERMONATTACKMOD EQU $CD1A
-W_PLAYERMONDEFENSEMOD EQU $CD1B
-W_PLAYERMONSPEEDMOD EQU $CD1C
-W_PLAYERMONSPECIALMOD EQU $CD1D
-W_PLAYERMONACCURACYMOD EQU $CD1E
-W_PLAYERMONEVASIONMOD EQU $CD1F
-
-
-W_ENGAGEDTRAINERCLASS EQU $CD2D
-W_ENGAGEDTRAINERSETNUM EQU $CD2E
-
-; stat modifiers for the enemy's current pokemon
-; value can range from 1 - 13 ($1 to $D)
-; 7 is normal
-W_ENEMYMONATTACKMOD EQU $CD2E
-W_ENEMYMONDEFENSEMOD EQU $CD2F
-W_ENEMYMONSPEEDMOD EQU $CD30
-W_ENEMYMONSPECIALMOD EQU $CD31
-W_ENEMYMONACCURACYMOD EQU $CD32
-W_ENEMYMONEVASIONMOD EQU $CD33
-
-W_WHICHTRADE EQU $CD3D ; which entry from TradeMons to select
-W_TRAINERSPRITEOFFSET EQU $CD3D
-W_TRAINERENGAGEDISTANCE EQU $CD3E
-W_TRAINERFACINGDIR EQU $CD3F
-W_TRAINERSCREENYPOS EQU $CD40
-W_TRAINERSCREENXPOS EQU $CD41
-
-; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaniously)
-W_FLAGS_CD60 EQU $CD60
-
-; bit 1 means button presses will be ignored for that futton
-W_JOYPADFORBIDDENBUTTONSMASK EQU $CD6B
-
-; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
-W_SCREENTILESBACKBUFFER2 EQU $CD81 ; size $168, to $CEE9
-
-W_HPBARMAXHP EQU $CEE9
-W_HPBAROLDHP EQU $CEEB
-W_HPBARNEWHP EQU $CEED
-W_HPBARDELTA EQU $CEEF
-
-W_HPBARHPDIFFERENCE EQU $CEFD
-
-W_BUFFER EQU $CEE9 ; used for temporary things
-
-W_ANIMSOUNDID EQU $CF07 ; sound ID during battle animations
-
-; movement byte 2 of current sprite
-W_CURSPRITEMOVEMENT2 EQU $CF14
-
-W_GYMCITYNAME EQU $CF5F
-W_GYMLEADERNAME EQU $CF70
-
-W_WHICHPOKEMON EQU $CF92 ; which pokemon you selected
-
-W_LISTMENUID EQU $CF94 ; ID used by DisplayListMenuID
-
-W_WALKCOUNTER EQU $CFC5 ; walk animation counter
-
-W_CURCHANNELPOINTER EQU $CFC7 ; (the current music channel pointer - $4000) / 3
-
-W_ENEMYMOVENUM EQU $CFCC
-W_ENEMYMOVEEFFECT EQU $CFCD
-W_ENEMYMOVEPOWER EQU $CFCE
-W_ENEMYMOVETYPE EQU $CFCF
-W_ENEMYMOVEACCURACY EQU $CFD0
-W_ENEMYMOVEMAXPP EQU $CFD1
-
-W_PLAYERMOVENUM EQU $CFD2
-W_PLAYERMOVEEFFECT EQU $CFD3
-W_PLAYERMOVEPOWER EQU $CFD4
-W_PLAYERMOVETYPE EQU $CFD5
-W_PLAYERMOVEACCURACY EQU $CFD6
-W_PLAYERMOVEMAXPP EQU $CFD7
-
-W_ENEMYMONID EQU $CFD8
-
-W_ENEMYMONNAME EQU $CFDA
-
-W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits)
-W_ENEMYMONNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
-W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition
- ; bit 0 slp
- ; bit 1 slp
- ; bit 2 slp
- ; bit 3 psn
- ; bit 4 brn
- ; bit 5 frz
- ; bit 6 par
- ; unused? (XXX confirm)
-W_ENEMYMONTYPES EQU $CFEA
-W_ENEMYMONTYPE1 EQU $CFEA
-W_ENEMYMONTYPE2 EQU $CFEB
-W_ENEMYMONMOVES EQU $CFED
-W_ENEMYMONATKDEFIV EQU $CFF1
-W_ENEMYMONSPDSPCIV EQU $CFF2
-W_ENEMYMONLEVEL EQU $CFF3
-W_ENEMYMONMAXHP EQU $CFF4 ; (16 bits)
-W_ENEMYMONATTACK EQU $CFF6
-W_ENEMYMONDEFENSE EQU $CFF8
-W_ENEMYMONSPEED EQU $CFFA
-W_ENEMYMONSPECIAL EQU $CFFC
-W_ENEMYMONPP EQU $CFFE
-
-W_PLAYERMONNAME EQU $D009
-W_PLAYERMONID EQU $D014
-W_PLAYERMONCURHP EQU $D015 ; active opponent's hp (16 bits)
-W_PLAYERMONSTATUS EQU $D018 ; the status of the player’s current monster
- ; bit 0 slp
- ; bit 1 slp
- ; bit 2 slp
- ; bit 3 psn
- ; bit 4 brn
- ; bit 5 frz
- ; bit 6 par
- ; unused? (XXX confirm)
-W_PLAYERMONTYPES EQU $D019
-W_PLAYERMONTYPE1 EQU $D019
-W_PLAYERMONTYPE2 EQU $D01A
-W_PLAYERMONMOVES EQU $D01C
-W_PLAYERMONIVS EQU $D020 ; 4x 4 bit: atk, def, spd, spc
-W_PLAYERMONLEVEL EQU $D022
-W_PLAYERMONMAXHP EQU $D023 ; (16 bits)
-W_PLAYERMONATK EQU $D025
-W_PLAYERMONDEF EQU $D027
-W_PLAYERMONSPEED EQU $D029
-W_PLAYERMONSPECIAL EQU $D02B
-W_PLAYERMONPP EQU $D02D
-
-W_TRAINERCLASS EQU $D031
-
-W_ISINBATTLE EQU $D057 ; no battle, this is 0
- ; wild battle, this is 1
- ; trainer battle, this is 2
-
-W_PLAYERMONSALIVEFLAGS EQU $D058 ; 6 bit array, 1 if player mon is alive
-
-W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon
- ; in a trainer battle, this is the trainer class + $C8
-
-W_BATTLETYPE EQU $D05A ; in normal battle, this is 0
- ; in old man battle, this is 1
- ; in safari battle, this is 2
-
-W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use
-W_GYMLEADERNO EQU $D05C ; it's actually the same thing as ^
-W_TRAINERNO EQU $D05D ; which instance of [youngster, lass, etc] is this?
-
-W_MOVEMISSED EQU $D05F
-
-; not entirely sure that all these bits are 100% correct
-; Battle Status Byte 1
-; bit 0 - bide
-; bit 1 - thrash / petal dance
-; bit 2 - attacking multiple times (e.g. double kick)
-; bit 3 - flinch
-; bit 4 - charging up for attack
-; bit 5 - using multi-turn move (e.g. wrap)
-; bit 6 - invulnerable to normal attack (using fly/dig)
-; bit 7 - confusion
-
-; Battle Status Byte 2
-; bit 0 - X Accuracy effect
-; bit 1 - protected by "mist"
-; bit 2 - focus energy effect
-; bit 4 - has a substitute
-; bit 5 - need to recharge
-; bit 6 - rage
-; bit 7 - leech seeded
-
-; Battle Status Byte 3
-; bit 0 - toxic
-; bit 1 - light screen
-; bit 2 - reflect
-; bit 3 - tranformed
-
-W_PLAYERBATTSTATUS1 EQU $D062
-W_PLAYERBATTSTATUS2 EQU $D063
-W_PLAYERBATTSTATUS3 EQU $D064
-
-W_ENEMYBATTSTATUS1 EQU $D067
-W_ENEMYBATTSTATUS2 EQU $D068
-W_ENEMYBATTSTATUS3 EQU $D069
-
-W_PLAYERTOXICCOUNTER EQU $D06C
-W_PLAYERDISABLEDMOVE EQU $D06D
-
-W_ENEMYTOXICCOUNTER EQU $D071
-W_ENEMYDISABLEDMOVE EQU $D072
-
-W_NUMHITS EQU $D074 ; number of hits in attacks like Doubleslap, etc.
-
-W_ANIMATIONID EQU $D07C ; ID number of the current battle animation
-
-; base coordinates of frame block
-W_BASECOORDX EQU $D081
-W_BASECOORDY EQU $D082
-
-W_FBTILECOUNTER EQU $D084 ; counts how many tiles of the current frame block have been drawn
-
-W_SUBANIMFRAMEDELAY EQU $D086 ; duration of each frame of the current subanimation in terms of screen refreshes
-W_SUBANIMCOUNTER EQU $D087 ; counts the number of subentries left in the current subanimation
-
-W_NUMFBTILES EQU $D089 ; number of tiles in current battle animation frame block
-
-W_SUBANIMTRANSFORM EQU $D08B ; controls what transformations are applied to the subanimation
-; 01: flip horizontally and vertically
-; 02: flip horizontally and translate downwards 40 pixels
-; 03: translate base coordinates of frame blocks, but don't change their internal coordinates or flip their tiles
-; 04: reverse the subanimation
-
-W_PBSTOREDREGISTERH EQU $D08C
-W_PBSTOREDREGISTERL EQU $D08D
-W_PBSTOREDREGISTERD EQU $D08E
-W_PBSTOREDREGISTERE EQU $D08F
-W_PBSTOREDROMBANK EQU $D092
-
-W_SUBANIMADDRPTR EQU $D094 ; the address _of the address_ of the current subanimation entry (2 bytes)
-
-W_SUBANIMSUBENTRYADDR EQU $D096 ; the address of the current subentry of the current subanimation (2 bytes)
-
-W_FBDESTADDR EQU $D09C ; current destination address in OAM for frame blocks (2 bytes, big endian)
-
-W_FBMODE EQU $D09E ; controls how the frame blocks are put together to form frames
-; specifically, after finishing drawing the frame block, the frame block's mode determines what happens
-; 00: clean OAM buffer and delay
-; 02: move onto the next frame block with no delay and no cleaning OAM buffer
-; 03: delay, but don't clean OAM buffer
-; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one
-
-; sprite data is written column by column, each byte contains 8 columns (one for ech bit)
-; for 2bpp sprites, pairs of two consecutive bytes (i.e. pairs of consecutive rows of sprite data)
-; contain the upper and lower bit of each of the 8 pixels, respectively
-SPRITEBUFFERSIZE EQU $188 ; 7 * 7 (tiles) * 8 (bytes per tile)
-S_SPRITEBUFFER0 EQU $A000 + 0 * SPRITEBUFFERSIZE
-S_SPRITEBUFFER1 EQU $A000 + 1 * SPRITEBUFFERSIZE
-S_SPRITEBUFFER2 EQU $A000 + 2 * SPRITEBUFFERSIZE
-
-W_SPRITECURPOSX EQU $D0A1
-W_SPRITECURPOSY EQU $D0A2
-W_SPRITEWITDH EQU $D0A3
-W_SPRITEHEIGHT EQU $D0A4
-W_SPRITEINPUTCURBYTE EQU $D0A5 ; current input byte
-W_SPRITEINPUTBITCOUNTER EQU $D0A6 ; bit offset of last read input bit
-
-; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data)
-; 3 -> XX000000 1st column
-; 2 -> 00XX0000 2nd column
-; 1 -> 0000XX00 3rd column
-; 0 -> 000000XX 4th column
-W_SPRITEOUTPUTBITOFFSET EQU $D0A7
-
-; bit 0 determines used buffer (0 -> $a188, 1 -> $a310)
-; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation)
-W_SPRITELOADFLAGS EQU $D0A8
-W_SPRITEUNPACKMODE EQU $D0A9
-W_SPRITEFLIPPED EQU $D0AA
-
-W_SPRITEINPUTPTR EQU $D0AB ; pointer to next input byte
-W_SPRITEOUTPUTPTR EQU $D0AD ; pointer to current output byte
-W_SPRITEOUTPUTPTRCACHED EQU $D0AF ; used to revert pointer for different bit offsets
-W_SPRITEDECODETABLE0PTR EQU $D0B1 ; pointer to differential decoding table (assuming initial value 0)
-W_SPRITEDECODETABLE1PTR EQU $D0B3 ; pointer to differential decoding table (assuming initial value 1)
-
-H_SPRITEWIDTH EQU $FF8B ; in bytes
-H_SPRITEINTERLACECOUNTER EQU $FF8B
-H_SPRITEHEIGHT EQU $FF8C ; in bytes
-H_SPRITEOFFSET EQU $FF8D
; OAM flags used by this game
OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic
OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic
OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically. Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down
-; List type
-; used in $D0B6
-W_LISTTYPE EQU $D0B6
MONSTER_NAME EQU 1
MOVE_NAME EQU 2
; ???_NAME EQU 3
@@ -501,791 +21,19 @@ PLAYEROT_NAME EQU 5
ENEMYOT_NAME EQU 6
TRAINER_NAME EQU 7
-W_MONHEADER EQU $d0b8
-W_MONHDEXNUM EQU $d0b8
-W_MONHBASESTATS EQU $d0b9
-;W_MONHBASEHP EQU $d0b9
-;W_MONHBASEATTACK EQU $d0ba
-;W_MONHBASEDEFENSE EQU $d0bb
-W_MONHBASESPEED EQU $d0bc
-;W_MONHBASESPECIAL EQU $d0bd
-W_MONHTYPES EQU $d0be
-W_MONHTYPE1 EQU $d0be
-W_MONHTYPE2 EQU $d0bf
-W_MONHCATCHRATE EQU $d0c0
-;W_MONHBASEXP EQU $d0c1
-W_MONHSPRITEDIM EQU $d0c2
-W_MONHFRONTSPRITE EQU $d0c3
-W_MONHBACKSPRITE EQU $d0c5
-W_MONHMOVES EQU $d0c7
-;W_MONHMOVE1 EQU $d0c7
-;W_MONHMOVE2 EQU $d0c8
-;W_MONHMOVE3 EQU $d0c9
-;W_MONHMOVE4 EQU $d0ca
-W_MONHGROWTHRATE EQU $d0cb
-W_MONHLEARNSET EQU $d0cc ; bit field, 7 bytes
-;W_MONHPADDING EQU $d0d7
-
-
-
-W_DAMAGE EQU $D0D7
-
-
-W_CURENEMYLVL EQU $D127
-
-W_ISLINKBATTLE EQU $D12B
-
-W_PRIZE1 EQU $D13D
-W_PRIZE2 EQU $D13E
-W_PRIZE3 EQU $D13F
-
-W_PLAYERNAME EQU $D158 ; 11 characters, including null
-
-W_NUMINPARTY EQU $D163
-
-W_PARTYMON1 EQU $D164
-W_PARTYMON2 EQU $D165
-W_PARTYMON3 EQU $D166
-W_PARTYMON4 EQU $D167
-W_PARTYMON5 EQU $D168
-W_PARTYMON6 EQU $D169
-W_PARTYMONEND EQU $D16A
-
-W_PARTYMON1DATA EQU $D16B
-W_PARTYMON1_NUM EQU $D16B
-W_PARTYMON1_HP EQU $D16C
-W_PARTYMON1_BOXLEVEL EQU $D16E
-W_PARTYMON1_STATUS EQU $D16F
-W_PARTYMON1_TYPE1 EQU $D170
-W_PARTYMON1_TYPE2 EQU $D171
-W_PARTYMON1_CRATE EQU $D172
-W_PARTYMON1_MOVE1 EQU $D173
-W_PARTYMON1_MOVE2 EQU $D174
-W_PARTYMON1_MOVE3 EQU $D175
-W_PARTYMON1_MOVE4 EQU $D176
-W_PARTYMON1_OTID EQU $D177
-W_PARTYMON1_EXP EQU $D179
-W_PARTYMON1_EVHP EQU $D17C
-W_PARTYMON1_EVATTACK EQU $D17E
-W_PARTYMON1_EVDEFENSE EQU $D180
-W_PARTYMON1_EVSPEED EQU $D182
-W_PARTYMON1_EVSECIAL EQU $D184
-W_PARTYMON1_IV EQU $D186
-W_PARTYMON1_MOVE1PP EQU $D188
-W_PARTYMON1_MOVE2PP EQU $D189
-W_PARTYMON1_MOVE3PP EQU $D18A
-W_PARTYMON1_MOVE4PP EQU $D18B
-W_PARTYMON1_LEVEL EQU $D18C
-W_PARTYMON1_MAXHP EQU $D18D
-W_PARTYMON1_ATACK EQU $D18F
-W_PARTYMON1_DEFENSE EQU $D191
-W_PARTYMON1_SPEED EQU $D193
-W_PARTYMON1_SPECIAL EQU $D195
-
-W_PARTYMON2DATA EQU $D197
-W_PARTYMON2_NUM EQU $D197
-W_PARTYMON2_HP EQU $D198
-W_PARTYMON2_BOXLEVEL EQU $D19A
-W_PARTYMON2_STATUS EQU $D19B
-W_PARTYMON2_TYPE1 EQU $D19C
-W_PARTYMON2_TYPE2 EQU $D19D
-W_PARTYMON2_CRATE EQU $D19E
-W_PARTYMON2_MOVE1 EQU $D19F
-W_PARTYMON2_MOVE2 EQU $D1A0
-W_PARTYMON2_MOVE3 EQU $D1A1
-W_PARTYMON2_MOVE4 EQU $D1A2
-W_PARTYMON2_OTID EQU $D1A3
-W_PARTYMON2_EXP EQU $D1A5
-W_PARTYMON2_EVHP EQU $D1A8
-W_PARTYMON2_EVATTACK EQU $D1AA
-W_PARTYMON2_EVDEFENSE EQU $D1AC
-W_PARTYMON2_EVSPEED EQU $D1AE
-W_PARTYMON2_EVSECIAL EQU $D1B0
-W_PARTYMON2_IV EQU $D1B2
-W_PARTYMON2_MOVE1PP EQU $D1B4
-W_PARTYMON2_MOVE2PP EQU $D1B5
-W_PARTYMON2_MOVE3PP EQU $D1B6
-W_PARTYMON2_MOVE4PP EQU $D1B7
-W_PARTYMON2_LEVEL EQU $D1B8
-W_PARTYMON2_MAXHP EQU $D1B9
-W_PARTYMON2_ATACK EQU $D1BB
-W_PARTYMON2_DEFENSE EQU $D1BD
-W_PARTYMON2_SPEED EQU $D1BF
-W_PARTYMON2_SPECIAL EQU $D1C1
-
-W_PARTYMON3DATA EQU $D1C3
-W_PARTYMON3_NUM EQU $D1C3
-W_PARTYMON3_HP EQU $D1C4
-W_PARTYMON3_BOXLEVEL EQU $D1C6
-W_PARTYMON3_STATUS EQU $D1C7
-W_PARTYMON3_TYPE1 EQU $D1C8
-W_PARTYMON3_TYPE2 EQU $D1C9
-W_PARTYMON3_CRATE EQU $D1CA
-W_PARTYMON3_MOVE1 EQU $D1CB
-W_PARTYMON3_MOVE2 EQU $D1CC
-W_PARTYMON3_MOVE3 EQU $D1CD
-W_PARTYMON3_MOVE4 EQU $D1CE
-W_PARTYMON3_OTID EQU $D1CF
-W_PARTYMON3_EXP EQU $D1D1
-W_PARTYMON3_EVHP EQU $D1D4
-W_PARTYMON3_EVATTACK EQU $D1D6
-W_PARTYMON3_EVDEFENSE EQU $D1D8
-W_PARTYMON3_EVSPEED EQU $D1DA
-W_PARTYMON3_EVSECIAL EQU $D1DC
-W_PARTYMON3_IV EQU $D1DE
-W_PARTYMON3_MOVE1PP EQU $D1E0
-W_PARTYMON3_MOVE2PP EQU $D1E1
-W_PARTYMON3_MOVE3PP EQU $D1E2
-W_PARTYMON3_MOVE4PP EQU $D1E3
-W_PARTYMON3_LEVEL EQU $D1E4
-W_PARTYMON3_MAXHP EQU $D1E5
-W_PARTYMON3_ATACK EQU $D1E7
-W_PARTYMON3_DEFENSE EQU $D1E9
-W_PARTYMON3_SPEED EQU $D1EB
-W_PARTYMON3_SPECIAL EQU $D1ED
-
-W_PARTYMON4DATA EQU $D1EF
-W_PARTYMON4_NUM EQU $D1EF
-W_PARTYMON4_HP EQU $D1F0
-W_PARTYMON4_BOXLEVEL EQU $D1F2
-W_PARTYMON4_STATUS EQU $D1F3
-W_PARTYMON4_TYPE1 EQU $D1F4
-W_PARTYMON4_TYPE2 EQU $D1F5
-W_PARTYMON4_CRATE EQU $D1F6
-W_PARTYMON4_MOVE1 EQU $D1F7
-W_PARTYMON4_MOVE2 EQU $D1F8
-W_PARTYMON4_MOVE3 EQU $D1F9
-W_PARTYMON4_MOVE4 EQU $D1FA
-W_PARTYMON4_OTID EQU $D1FB
-W_PARTYMON4_EXP EQU $D1FD
-W_PARTYMON4_EVHP EQU $D200
-W_PARTYMON4_EVATTACK EQU $D202
-W_PARTYMON4_EVDEFENSE EQU $D204
-W_PARTYMON4_EVSPEED EQU $D206
-W_PARTYMON4_EVSECIAL EQU $D208
-W_PARTYMON4_IV EQU $D20A
-W_PARTYMON4_MOVE1PP EQU $D20C
-W_PARTYMON4_MOVE2PP EQU $D20D
-W_PARTYMON4_MOVE3PP EQU $D20E
-W_PARTYMON4_MOVE4PP EQU $D20F
-W_PARTYMON4_LEVEL EQU $D210
-W_PARTYMON4_MAXHP EQU $D211
-W_PARTYMON4_ATACK EQU $D213
-W_PARTYMON4_DEFENSE EQU $D215
-W_PARTYMON4_SPEED EQU $D217
-W_PARTYMON4_SPECIAL EQU $D219
-
-W_PARTYMON5DATA EQU $D21B
-W_PARTYMON5_NUM EQU $D21B
-W_PARTYMON5_HP EQU $D21C
-W_PARTYMON5_BOXLEVEL EQU $D21E
-W_PARTYMON5_STATUS EQU $D21F
-W_PARTYMON5_TYPE1 EQU $D220
-W_PARTYMON5_TYPE2 EQU $D221
-W_PARTYMON5_CRATE EQU $D222
-W_PARTYMON5_MOVE1 EQU $D223
-W_PARTYMON5_MOVE2 EQU $D224
-W_PARTYMON5_MOVE3 EQU $D225
-W_PARTYMON5_MOVE4 EQU $D226
-W_PARTYMON5_OTID EQU $D227
-W_PARTYMON5_EXP EQU $D229
-W_PARTYMON5_EVHP EQU $D22C
-W_PARTYMON5_EVATTACK EQU $D22E
-W_PARTYMON5_EVDEFENSE EQU $D230
-W_PARTYMON5_EVSPEED EQU $D232
-W_PARTYMON5_EVSECIAL EQU $D234
-W_PARTYMON5_IV EQU $D236
-W_PARTYMON5_MOVE1PP EQU $D238
-W_PARTYMON5_MOVE2PP EQU $D239
-W_PARTYMON5_MOVE3PP EQU $D23A
-W_PARTYMON5_MOVE4PP EQU $D23B
-W_PARTYMON5_LEVEL EQU $D23C
-W_PARTYMON5_MAXHP EQU $D23D
-W_PARTYMON5_ATACK EQU $D23F
-W_PARTYMON5_DEFENSE EQU $D241
-W_PARTYMON5_SPEED EQU $D243
-W_PARTYMON5_SPECIAL EQU $D245
-
-W_PARTYMON6DATA EQU $D247
-W_PARTYMON6_NUM EQU $D247
-W_PARTYMON6_HP EQU $D248
-W_PARTYMON6_BOXLEVEL EQU $D24A
-W_PARTYMON6_STATUS EQU $D24B
-W_PARTYMON6_TYPE1 EQU $D24C
-W_PARTYMON6_TYPE2 EQU $D24D
-W_PARTYMON6_CRATE EQU $D24E
-W_PARTYMON6_MOVE1 EQU $D24F
-W_PARTYMON6_MOVE2 EQU $D250
-W_PARTYMON6_MOVE3 EQU $D251
-W_PARTYMON6_MOVE4 EQU $D252
-W_PARTYMON6_OTID EQU $D253
-W_PARTYMON6_EXP EQU $D255
-W_PARTYMON6_EVHP EQU $D258
-W_PARTYMON6_EVATTACK EQU $D25A
-W_PARTYMON6_EVDEFENSE EQU $D25C
-W_PARTYMON6_EVSPEED EQU $D25E
-W_PARTYMON6_EVSECIAL EQU $D260
-W_PARTYMON6_IV EQU $D262
-W_PARTYMON6_MOVE1PP EQU $D264
-W_PARTYMON6_MOVE2PP EQU $D265
-W_PARTYMON6_MOVE3PP EQU $D266
-W_PARTYMON6_MOVE4PP EQU $D267
-W_PARTYMON6_LEVEL EQU $D268
-W_PARTYMON6_MAXHP EQU $D269
-W_PARTYMON6_ATACK EQU $D26B
-W_PARTYMON6_DEFENSE EQU $D26D
-W_PARTYMON6_SPEED EQU $D26F
-W_PARTYMON6_SPECIAL EQU $D271
-
-W_PARTYMON1OT EQU $D273
-W_PARTYMON2OT EQU $D27E
-W_PARTYMON3OT EQU $D289
-W_PARTYMON4OT EQU $D294
-W_PARTYMON5OT EQU $D29F
-W_PARTYMON6OT EQU $D2AA
-
-W_PARTYMON1NAME EQU $D2B5
-W_PARTYMON2NAME EQU $D2C0
-W_PARTYMON3NAME EQU $D2CB
-W_PARTYMON4NAME EQU $D2D6
-W_PARTYMON5NAME EQU $D2E1
-W_PARTYMON6NAME EQU $D2EC
-
-W_OWNEDPOKEMON EQU $D2F7 ; bit field, 19 bytes
-
-W_SEENPOKEMON EQU $D30A ; bit field, 19 bytes
-
-;number of items in bag
-W_NUMBAGITEMS EQU $D31D
-; BAGITEM01 is an item id
-; BAGCOUNT01 is how many of this item
-W_BAGITEM01 EQU $D31E
-W_BAGITEM01QTY EQU $D31F
-W_BAGITEM02 EQU $D320
-W_BAGITEM02QTY EQU $D321
-W_BAGITEM03 EQU $D322
-W_BAGITEM03QTY EQU $D323
-W_BAGITEM04 EQU $D324
-W_BAGITEM04QTY EQU $D325
-W_BAGITEM05 EQU $D326
-W_BAGITEM05QTY EQU $D327
-W_BAGITEM06 EQU $D328
-W_BAGITEM06QTY EQU $D329
-W_BAGITEM07 EQU $D32A
-W_BAGITEM07QTY EQU $D32B
-W_BAGITEM08 EQU $D32C
-W_BAGITEM08QTY EQU $D32D
-W_BAGITEM09 EQU $D32E
-W_BAGITEM09QTY EQU $D32F
-W_BAGITEM10 EQU $D330
-W_BAGITEM10QTY EQU $D331
-W_BAGITEM11 EQU $D332
-W_BAGITEM11QTY EQU $D333
-W_BAGITEM12 EQU $D334
-W_BAGITEM12QTY EQU $D335
-W_BAGITEM13 EQU $D336
-W_BAGITEM13QTY EQU $D337
-W_BAGITEM14 EQU $D338
-W_BAGITEM14QTY EQU $D339
-W_BAGITEM15 EQU $D33A
-W_BAGITEM15QTY EQU $D33B
-W_BAGITEM16 EQU $D33C
-W_BAGITEM16QTY EQU $D33D
-W_BAGITEM17 EQU $D33E
-W_BAGITEM17QTY EQU $D33F
-W_BAGITEM18 EQU $D340
-W_BAGITEM18QTY EQU $D341
-W_BAGITEM19 EQU $D342
-W_BAGITEM19QTY EQU $D343
-W_BAGITEM20 EQU $D344
-W_BAGITEM20QTY EQU $D345
-
-; money is in decimal
-W_PLAYERMONEY3 EQU $D347
-W_PLAYERMONEY2 EQU $D348
-W_PLAYERMONEY1 EQU $D349
-
-W_RIVALNAME EQU $D34A ; 11 characters, including null
-
-W_OPTIONS EQU $D355
-; bit 7 = battle animation
-; 0: On
-; 1: Off
-; bit 6 = battle style
-; 0: Shift
-; 1: Set
-; bits 0-3 = text speed (number of frames to delay after printing a letter)
-; 1: Fast
-; 3: Medium
-; 5: Slow
-
-W_OBTAINEDBADGES EQU $D356
-
-W_PLAYERIDHI EQU $D359
-W_PLAYERIDLO EQU $D35A
-
-W_CURMAP EQU $D35E
-
-W_YCOORD EQU $D361 ; player’s position on the current map
-W_XCOORD EQU $D362
-W_YBLOCKCOORD EQU $D363 ; player's y position (by block)
-W_XBLOCKCOORD EQU $D364
-
-W_CURMAPTILESET EQU $D367
-W_CURMAPHEIGHT EQU $D368 ; blocks
-W_CURMAPWIDTH EQU $D369 ; blocks
-
-W_MAPDATAPTR EQU $D36A
-W_MAPTEXTPTR EQU $D36C
-W_MAPSCRIPTPTR EQU $D36E
-W_MAPCONNECTIONS EQU $D370 ; connection byte
-W_MAPCONN1PTR EQU $D371
-W_MAPCONN2PTR EQU $D37C
-W_MAPCONN3PTR EQU $D387
-W_MAPCONN4PTR EQU $D392
-
-W_SPRITESET EQU $D39D ; sprite set for the current map (11 sprite picture ID's)
-W_SPRITESETID EQU $D3A8 ; sprite set ID for the current map
-
-W_NUMSPRITES EQU $D4E1 ; number of sprites on the current map
-
-; two bytes per sprite (movement byte 2 , text ID)
-W_MAPSPRITEDATA EQU $D4e4
-
-; two bytes per sprite (trainer class/item ID , trainer set ID)
-W_MAPSPRITEEXTRADATA EQU $D504
-
-W_TILESETBANK EQU $D52B
-W_TILESETBLOCKSPTR EQU $D52C ; maps blocks (4x4 tiles) to it's tiles
-W_TILESETGFXPTR EQU $D52E
-W_TILESETCOLLISIONPTR EQU $D530 ; list of all walkable tiles
-W_TILESETTALKINGOVERTILES EQU $D532 ; 3 bytes
-W_GRASSTILE EQU $D535
-
-;number of items in box
-W_NUMBOXITEMS EQU $D53A
-; BOXITEM01 is an item id
-; BOXITEM01QTY is how many of this item
-W_BOXITEM01 EQU $D53B
-W_BOXITEM01QTY EQU $D53C
-W_BOXITEM02 EQU $D53D
-W_BOXITEM02QTY EQU $D53E
-W_BOXITEM03 EQU $D53F
-W_BOXITEM03QTY EQU $D540
-W_BOXITEM04 EQU $D541
-W_BOXITEM04QTY EQU $D542
-W_BOXITEM05 EQU $D543
-W_BOXITEM05QTY EQU $D544
-W_BOXITEM06 EQU $D545
-W_BOXITEM06QTY EQU $D546
-W_BOXITEM07 EQU $D547
-W_BOXITEM07QTY EQU $D548
-W_BOXITEM08 EQU $D549
-W_BOXITEM08QTY EQU $D54A
-W_BOXITEM09 EQU $D54B
-W_BOXITEM09QTY EQU $D54C
-W_BOXITEM10 EQU $D54D
-W_BOXITEM10QTY EQU $D54E
-W_BOXITEM11 EQU $D54F
-W_BOXITEM11QTY EQU $D550
-W_BOXITEM12 EQU $D551
-W_BOXITEM12QTY EQU $D552
-W_BOXITEM13 EQU $D553
-W_BOXITEM13QTY EQU $D554
-W_BOXITEM14 EQU $D555
-W_BOXITEM14QTY EQU $D556
-W_BOXITEM15 EQU $D557
-W_BOXITEM15QTY EQU $D558
-W_BOXITEM16 EQU $D559
-W_BOXITEM16QTY EQU $D55A
-W_BOXITEM17 EQU $D55B
-W_BOXITEM17QTY EQU $D55C
-W_BOXITEM18 EQU $D55D
-W_BOXITEM18QTY EQU $D55E
-W_BOXITEM19 EQU $D55F
-W_BOXITEM19QTY EQU $D560
-W_BOXITEM20 EQU $D561
-W_BOXITEM20QTY EQU $D562
-W_BOXITEM21 EQU $D563
-W_BOXITEM21QTY EQU $D564
-W_BOXITEM22 EQU $D565
-W_BOXITEM22QTY EQU $D566
-W_BOXITEM23 EQU $D567
-W_BOXITEM23QTY EQU $D568
-W_BOXITEM24 EQU $D569
-W_BOXITEM24QTY EQU $D56A
-W_BOXITEM25 EQU $D56B
-W_BOXITEM25QTY EQU $D56C
-W_BOXITEM26 EQU $D56D
-W_BOXITEM26QTY EQU $D56E
-W_BOXITEM27 EQU $D56F
-W_BOXITEM27QTY EQU $D570
-W_BOXITEM28 EQU $D571
-W_BOXITEM28QTY EQU $D572
-W_BOXITEM29 EQU $D573
-W_BOXITEM29QTY EQU $D574
-W_BOXITEM30 EQU $D575
-W_BOXITEM30QTY EQU $D576
-W_BOXITEM31 EQU $D577
-W_BOXITEM31QTY EQU $D578
-W_BOXITEM32 EQU $D579
-W_BOXITEM32QTY EQU $D57A
-W_BOXITEM33 EQU $D57B
-W_BOXITEM33QTY EQU $D57C
-W_BOXITEM34 EQU $D57D
-W_BOXITEM34QTY EQU $D57E
-W_BOXITEM35 EQU $D57F
-W_BOXITEM35QTY EQU $D580
-W_BOXITEM36 EQU $D581
-W_BOXITEM36QTY EQU $D582
-W_BOXITEM37 EQU $D583
-W_BOXITEM37QTY EQU $D584
-W_BOXITEM38 EQU $D585
-W_BOXITEM38QTY EQU $D586
-W_BOXITEM39 EQU $D587
-W_BOXITEM39QTY EQU $D588
-W_BOXITEM40 EQU $D589
-W_BOXITEM40QTY EQU $D58A
-W_BOXITEM41 EQU $D58B
-W_BOXITEM41QTY EQU $D58C
-W_BOXITEM42 EQU $D58D
-W_BOXITEM42QTY EQU $D58E
-W_BOXITEM43 EQU $D58F
-W_BOXITEM43QTY EQU $D590
-W_BOXITEM44 EQU $D591
-W_BOXITEM44QTY EQU $D592
-W_BOXITEM45 EQU $D593
-W_BOXITEM45QTY EQU $D594
-W_BOXITEM46 EQU $D595
-W_BOXITEM46QTY EQU $D596
-W_BOXITEM47 EQU $D597
-W_BOXITEM47QTY EQU $D598
-W_BOXITEM48 EQU $D599
-W_BOXITEM48QTY EQU $D59A
-W_BOXITEM49 EQU $D59B
-W_BOXITEM49QTY EQU $D59C
-W_BOXITEM50 EQU $D59D
-W_BOXITEM50QTY EQU $D59E
-;box end of list $D59F
-
-; coins are in decimal
-W_PLAYERCOINS1 EQU $D5A4
-W_PLAYERCOINS2 EQU $D5A5
-W_MISSABLEOBJECTFLAGS EQU $D5A6 ; $20 bytes, bit array of missable objects. bit 1 = removed
-
-; each entry consists of 2 bytes
-; * the sprite ID (depending on the current map)
-; * the missable object index (global, used for W_MISSABLEOBJECTFLAGS)
-; terminated with $FF
-W_MISSABLEOBJECTLIST EQU $D5CE
-
-W_GAMEPROGRESSFLAGS EQU $D5F0 ; $c8 bytes
-W_OAKSLABCURSCRIPT EQU $D5F0
-W_PALLETTOWNCURSCRIPT EQU $D5F1
-
-W_BLUESHOUSECURSCRIPT EQU $D5F3
-W_VIRIDIANCITYCURSCRIPT EQU $D5F4
-
-W_PEWTERCITYCURSCRIPT EQU $D5F7
-W_ROUTE3CURSCRIPT EQU $D5F8
-W_ROUTE4CURSCRIPT EQU $D5F9
-
-W_VIRIDIANGYMCURSCRIPT EQU $D5FB
-W_PEWTERGYMCURSCRIPT EQU $D5FC
-W_CERULEANGYMCURSCRIPT EQU $D5FD
-W_VERMILIONGYMCURSCRIPT EQU $D5FE
-W_CELADONGYMCURSCRIPT EQU $D5FF
-W_ROUTE6CURSCRIPT EQU $D600
-W_ROUTE8CURSCRIPT EQU $D601
-W_ROUTE24CURSCRIPT EQU $D602
-W_ROUTE25CURSCRIPT EQU $D603
-W_ROUTE9CURSCRIPT EQU $D604
-W_ROUTE10CURSCRIPT EQU $D605
-W_MTMOON1CURSCRIPT EQU $D606
-W_MTMOON3CURSCRIPT EQU $D607
-W_SSANNE8CURSCRIPT EQU $D608
-W_SSANNE9CURSCRIPT EQU $D609
-W_ROUTE22CURSCRIPT EQU $D60A
-
-W_REDSHOUSE2CURSCRIPT EQU $D60C
-W_VIRIDIANMARKETCURSCRIPT EQU $D60D
-W_ROUTE22GATECURSCRIPT EQU $D60E
-W_CERULEANCITYCURSCRIPT EQU $D60F
-
-W_SSANNE5CURSCRIPT EQU $D617
-W_VIRIDIANFORESTCURSCRIPT EQU $D618
-W_MUSEUMF1CURSCRIPT EQU $D619
-W_ROUTE13CURSCRIPT EQU $D61A
-W_ROUTE14CURSCRIPT EQU $D61B
-W_ROUTE17CURSCRIPT EQU $D61C
-W_ROUTE19CURSCRIPT EQU $D61D
-W_ROUTE21CURSCRIPT EQU $D61E
-W_SAFARIZONEENTRANCECURSCRIPT EQU $D61F
-W_ROCKTUNNEL2CURSCRIPT EQU $D620
-W_ROCKTUNNEL1CURSCRIPT EQU $D621
-
-W_ROUTE11CURSCRIPT EQU $D623
-W_ROUTE12CURSCRIPT EQU $D624
-W_ROUTE15CURSCRIPT EQU $D625
-W_ROUTE16CURSCRIPT EQU $D626
-W_ROUTE18CURSCRIPT EQU $D627
-W_ROUTE20CURSCRIPT EQU $D628
-W_SSANNE10CURSCRIPT EQU $D629
-W_VERMILIONCITYCURSCRIPT EQU $D62A
-W_POKEMONTOWER2CURSCRIPT EQU $D62B
-W_POKEMONTOWER3CURSCRIPT EQU $D62C
-W_POKEMONTOWER4CURSCRIPT EQU $D62D
-W_POKEMONTOWER5CURSCRIPT EQU $D62E
-W_POKEMONTOWER6CURSCRIPT EQU $D62F
-W_POKEMONTOWER7CURSCRIPT EQU $D630
-W_ROCKETHIDEOUT1CURSCRIPT EQU $D631
-W_ROCKETHIDEOUT2CURSCRIPT EQU $D632
-W_ROCKETHIDEOUT3CURSCRIPT EQU $D633
-W_ROCKETHIDEOUT4CURSCRIPT EQU $D634
-
-W_ROUTE6GATECURSCRIPT EQU $D636
-W_ROUTE8GATECURSCRIPT EQU $D637
-
-W_CINNABARISLANDCURSCRIPT EQU $D639
-W_MANSION1CURSCRIPT EQU $D63A
-
-W_MANSION2CURSCRIPT EQU $D63C
-W_MANSION3CURSCRIPT EQU $D63D
-W_MANSION4CURSCRIPT EQU $D63E
-W_VICTORYROAD2CURSCRIPT EQU $D63F
-W_VICTORYROAD3CURSCRIPT EQU $D640
-
-W_FIGHTINGDOJOCURSCRIPT EQU $D642
-W_SILPHCO2CURSCRIPT EQU $D643
-W_SILPHCO3CURSCRIPT EQU $D644
-W_SILPHCO4CURSCRIPT EQU $D645
-W_SILPHCO5CURSCRIPT EQU $D646
-W_SILPHCO6CURSCRIPT EQU $D647
-W_SILPHCO7CURSCRIPT EQU $D648
-W_SILPHCO8CURSCRIPT EQU $D649
-W_SILPHCO9CURSCRIPT EQU $D64A
-W_HALLOFFAMEROOMCURSCRIPT EQU $D64B
-W_GARYCURSCRIPT EQU $D64C
-W_LORELEICURSCRIPT EQU $D64D
-W_BRUNOCURSCRIPT EQU $D64E
-W_AGATHACURSCRIPT EQU $D64F
-W_UNKNOWNDUNGEON3CURSCRIPT EQU $D650
-W_VICTORYROAD1CURSCRIPT EQU $D651
-
-W_LANCECURSCRIPT EQU $D653
-
-W_SILPHCO10CURSCRIPT EQU $D658
-W_SILPHCO11CURSCRIPT EQU $D659
-
-W_FUCHSIAGYMCURSCRIPT EQU $D65B
-W_SAFFRONGYMCURSCRIPT EQU $D65C
-
-W_CINNABARGYMCURSCRIPT EQU $D65E
-W_CELADONGAMECORNERCURSCRIPT EQU $D65F
-W_ROUTE16GATECURSCRIPT EQU $D660
-W_BILLSHOUSECURSCRIPT EQU $D661
-W_ROUTE5GATECURSCRIPT EQU $D662
-W_POWERPLANTCURSCRIPT EQU $D663 ; overload
-W_ROUTE7GATECURSCRIPT EQU $D663 ; overload
-
-W_SSANNE2CURSCRIPT EQU $D665
-W_SEAFOAMISLANDS4CURSCRIPT EQU $D666
-W_ROUTE23CURSCRIPT EQU $D667
-W_SEAFOAMISLANDS5CURSCRIPT EQU $D668
-W_ROUTE18GATECURSCRIPT EQU $D669
-
-W_TOWNVISITEDFLAG EQU $D70B ; 2 bytes bit array, 1 means visited
-
-W_SAFARITIMER1 EQU $D70D ; use 01 for maximum
-W_SAFARITIMER2 EQU $D70E ; use F4 for maximum
-W_FOSSILITEM EQU $D70F ; item given to cinnabar lab
-W_FOSSILMON EQU $D710 ; mon that will result from the item
-
-W_ENEMYMONORTRAINERCLASS EQU $D713 ; trainer classes start at $c8
-
-W_RIVALSTARTER EQU $D715
-
-W_PLAYERSTARTER EQU $D717
-
-; 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)
-W_FLAGS_D733 EQU $D733
-
-
-W_GRASSRATE EQU $D887
-W_GRASSMONS EQU $D888
-W_WATERRATE EQU $D8A4 ; OVERLOADED
-W_WATERMONS EQU $D8A5 ; OVERLOADED
-
-W_ENEMYMONCOUNT EQU $D89C
-
-W_ENEMYMON1HP EQU $D8A5 ; 16 bits
-
-W_ENEMYMON1MOVE3 EQU $D8AE
-
-W_ENEMYMON2MOVE3 EQU $D8DA
-
-W_ENEMYMON3MOVE3 EQU $D906
-
-W_ENEMYMON4MOVE3 EQU $D932
-
-W_ENEMYMON5MOVE3 EQU $D95E
-
-W_ENEMYMON6MOVE3 EQU $D98A
-
-W_ENEMYMON1OT EQU $D9AC
-W_ENEMYMON2OT EQU $D9B7
-W_ENEMYMON3OT EQU $D9C2
-W_ENEMYMON4OT EQU $D9CD
-W_ENEMYMON5OT EQU $D9D8
-W_ENEMYMON6OT EQU $D9E3
-
-W_ENEMYMON1NAME EQU $D9EE
-W_ENEMYMON2NAME EQU $D9F9
-W_ENEMYMON3NAME EQU $DA04
-W_ENEMYMON4NAME EQU $DA0F
-W_ENEMYMON5NAME EQU $DA1A
-W_ENEMYMON6NAME EQU $DA25 ; to $da2f
-W_TRAINERHEADERPTR EQU $DA30
-
-; 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
-W_CURMAPSCRIPT EQU $DA39
-
-W_PLAYTIMEHOURS EQU $DA40 ; two bytes
-W_PLAYTIMEMINUTES EQU $DA42 ; two bytes
-W_PLAYTIMESECONDS EQU $DA44 ; one byte
-W_PLAYTIMEFRAMES EQU $DA45 ; one byte
-
-W_NUMSAFARIBALLS EQU $DA47
-
-; number of mons in current box
-W_NUMINBOX EQU $DA80
-W_BOXMON1DATA EQU $DA96
-W_BOXMON2DATA EQU $DAB7
-
-
-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.
-
-; counters for blinking down arrow
-H_DOWNARROWBLINKCNT1 EQU $FF8B
-H_DOWNARROWBLINKCNT2 EQU $FF8C
-
-; Note: the following multiplication and division addresses are used for multiple purposes
-; and so they overlap with each other
-
-H_MULTIPLICAND EQU $FF96 ; 3 bytes, big endian order
-H_MULTIPLIER EQU $FF99 ; 1 byte
-H_PRODUCT EQU $FF95 ; 4 bytes, big endian order
-
-H_DIVIDEND EQU $FF95 ; 4 bytes, big endian order
-H_DIVISOR EQU $FF99 ; 1 byte
-H_QUOTIENT EQU $FF95 ; 4 bytes, big endian order
-H_REMAINDER EQU $FF99 ; 1 byte
-
-; used to convert numbers to decimal
-H_PASTLEADINGZEROES EQU $FF95 ; flag to indicate that a nonzero digit has been printed
-H_NUMTOPRINT EQU $FF96 ; 3 bytes, big endian order
-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
-
-H_LOADEDROMBANK EQU $FFB8
-
-; is automatic background transfer during V-blank enabled?
-; if nonzero, yes
-; if zero, no
-H_AUTOBGTRANSFERENABLED EQU $FFBA
-
-TRANSFERTOP EQU 0
-TRANSFERMIDDLE EQU 1
-TRANSFERBOTTOM EQU 2
-
-; 00 = top third of background
-; 01 = middle third of background
-; 02 = bottom third of background
-H_AUTOBGTRANSFERPORTION EQU $FFBB
-
-; the destination address of the automatic background transfer
-H_AUTOBGTRANSFERDEST EQU $FFBC ; 2 bytes
-
-; temporary storage for stack pointer during memory transfers that use pop
-; to increase speed
-H_SPTEMP EQU $FFBF ; 2 bytes
-
-; source address for VBlankCopyBgMap function
-; the first byte doubles as the byte that enabled the transfer.
-; if it is 0, the transfer is disabled
-; if it is not 0, the transfer is enabled
-; this means that XX00 is not a valid source address
-H_VBCOPYBGSRC EQU $FFC1 ; 2 bytes
-
-; destination address for VBlankCopyBgMap function
-H_VBCOPYBGDEST EQU $FFC3 ; 2 bytes
-
-; number of rows for VBlankCopyBgMap to copy
-H_VBCOPYBGNUMROWS EQU $FFC5
-
-; size of VBlankCopy transfer in 16-byte units
-H_VBCOPYSIZE EQU $FFC6
-
-; source address for VBlankCopy function
-H_VBCOPYSRC EQU $FFC7
-
-; destination address for VBlankCopy function
-H_VBCOPYDEST EQU $FFC9
-
-; size of source data for VBlankCopyDouble in 8-byte units
-H_VBCOPYDOUBLESIZE EQU $FFCB
-
-; source address for VBlankCopyDouble function
-H_VBCOPYDOUBLESRC EQU $FFCC
-
-; destination address for VBlankCopyDouble function
-H_VBCOPYDOUBLEDEST EQU $FFCE
-
-; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank
-; 00 = no redraw
-; 01 = redraw column
-; 02 = redraw row
-H_SCREENEDGEREDRAW EQU $FFD0
-
-REDRAWCOL EQU 1
-REDRAWROW EQU 2
-
-H_SCREENEDGEREDRAWADDR EQU $FFD1
-
-H_RAND1 EQU $FFD3
-H_RAND2 EQU $FFD4
-
-H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays)
-
-; V-blank sets this to 0 each time it runs.
-; So, by setting it to a nonzero value and waiting for it to become 0 again,
-; you can detect that the V-blank handler has run since then.
-H_VBLANKOCCURRED EQU $FFD6
-
-H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
-
-H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
-
-H_JOYPADSTATE EQU $FFF8
; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm
rJOYP EQU $FF00
-rDIV EQU $FF04
+rDIV EQU $FF04
rLCDC EQU $FF40
-rSCY EQU $FF42
-rSCX EQU $FF43
-rBGP EQU $FF47
+rSCY EQU $FF42
+rSCX EQU $FF43
+rBGP EQU $FF47
rOBP0 EQU $FF48
rOBP1 EQU $FF49
-rWY EQU $FF4A
-rWX EQU $FF4B
-rIE EQU $FFFF
+rWY EQU $FF4A
+rWX EQU $FF4B
+rIE EQU $FFFF
BTN_A EQU %00000001
BTN_B EQU %00000010
@@ -1307,1105 +55,72 @@ PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quanti
ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu
SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges
-; pokemon name constants
-RHYDON EQU $01
-KANGASKHAN EQU $02
-NIDORAN_M EQU $03
-CLEFAIRY EQU $04
-SPEAROW EQU $05
-VOLTORB EQU $06
-NIDOKING EQU $07
-SLOWBRO EQU $08
-IVYSAUR EQU $09
-EXEGGUTOR EQU $0A
-LICKITUNG EQU $0B
-EXEGGCUTE EQU $0C
-GRIMER EQU $0D
-GENGAR EQU $0E
-NIDORAN_F EQU $0F
-NIDOQUEEN EQU $10
-CUBONE EQU $11
-RHYHORN EQU $12
-LAPRAS EQU $13
-ARCANINE EQU $14
-MEW EQU $15
-GYARADOS EQU $16
-SHELLDER EQU $17
-TENTACOOL EQU $18
-GASTLY EQU $19
-SCYTHER EQU $1A
-STARYU EQU $1B
-BLASTOISE EQU $1C
-PINSIR EQU $1D
-TANGELA EQU $1E
-GROWLITHE EQU $21
-ONIX EQU $22
-FEAROW EQU $23
-PIDGEY EQU $24
-SLOWPOKE EQU $25
-KADABRA EQU $26
-GRAVELER EQU $27
-CHANSEY EQU $28
-MACHOKE EQU $29
-MR_MIME EQU $2A
-HITMONLEE EQU $2B
-HITMONCHAN EQU $2C
-ARBOK EQU $2D
-PARASECT EQU $2E
-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
-MOLTRES EQU $49
-ARTICUNO EQU $4A
-ZAPDOS EQU $4B
-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
-KABUTOPS EQU $5B
-HORSEA EQU $5C
-SEADRA EQU $5D
-SANDSHREW EQU $60
-SANDSLASH EQU $61
-OMANYTE EQU $62
-OMASTAR EQU $63
-JIGGLYPUFF EQU $64
-WIGGLYTUFF EQU $65
-EEVEE EQU $66
-FLAREON EQU $67
-JOLTEON EQU $68
-VAPOREON EQU $69
-MACHOP EQU $6A
-ZUBAT EQU $6B
-EKANS EQU $6C
-PARAS EQU $6D
-POLIWHIRL EQU $6E
-POLIWRATH EQU $6F
-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
-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
-PIDGEOTTO EQU $96
-PIDGEOT EQU $97
-STARMIE EQU $98
-BULBASAUR EQU $99
-VENUSAUR EQU $9A
-TENTACRUEL EQU $9B
-GOLDEEN EQU $9D
-SEAKING EQU $9E
-PONYTA EQU $A3
-RAPIDASH EQU $A4
-RATTATA EQU $A5
-RATICATE EQU $A6
-NIDORINO EQU $A7
-NIDORINA EQU $A8
-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
-ODDISH EQU $B9
-GLOOM EQU $BA
-VILEPLUME EQU $BB
-BELLSPROUT EQU $BC
-WEEPINBELL EQU $BD
-VICTREEBEL EQU $BE
+INCLUDE "constants/pokemon_constants.asm"
+INCLUDE "constants/trainer_constants.asm"
+INCLUDE "constants/pokedex_constants.asm"
+INCLUDE "constants/item_constants.asm"
-; trainer name constants
-; sometimes it's necessary to add $C8 to these values
-YOUNGSTER EQU $01
-BUG_CATCHER EQU $02
-LASS EQU $03
-SAILOR EQU $04
-JR__TRAINER_M EQU $05
-JR__TRAINER_F EQU $06
-POKEMANIAC EQU $07
-SUPER_NERD EQU $08
-HIKER EQU $09
-BIKER EQU $0A
-BURGLAR EQU $0B
-ENGINEER EQU $0C
-JUGGLER_X EQU $0D
-FISHER EQU $0E
-SWIMMER EQU $0F
-CUE_BALL EQU $10
-GAMBLER EQU $11
-BEAUTY EQU $12
-PSYCHIC_TR EQU $13
-ROCKER EQU $14
-JUGGLER EQU $15
-TAMER EQU $16
-BIRD_KEEPER EQU $17
-BLACKBELT EQU $18
-SONY1 EQU $19
-PROF_OAK EQU $1A
-CHIEF EQU $1B
-SCIENTIST EQU $1C
-GIOVANNI EQU $1D
-ROCKET EQU $1E
-COOLTRAINER_M EQU $1F
-COOLTRAINER_F EQU $20
-BRUNO EQU $21
-BROCK EQU $22
-MISTY EQU $23
-LT__SURGE EQU $24
-ERIKA EQU $25
-KOGA EQU $26
-BLAINE EQU $27
-SABRINA EQU $28
-GENTLEMAN EQU $29
-SONY2 EQU $2A
-SONY3 EQU $2B
-LORELEI EQU $2C
-CHANNELER EQU $2D
-AGATHA EQU $2E
-LANCE EQU $2F
-
-; pokemon dex numbers
-DEX_BULBASAUR EQU 1
-DEX_IVYSAUR EQU 2
-DEX_VENUSAUR EQU 3
-DEX_CHARMANDER EQU 4
-DEX_CHARMELEON EQU 5
-DEX_CHARIZARD EQU 6
-DEX_SQUIRTLE EQU 7
-DEX_WARTORTLE EQU 8
-DEX_BLASTOISE EQU 9
-DEX_CATERPIE EQU 10
-DEX_METAPOD EQU 11
-DEX_BUTTERFREE EQU 12
-DEX_WEEDLE EQU 13
-DEX_KAKUNA EQU 14
-DEX_BEEDRILL EQU 15
-DEX_PIDGEY EQU 16
-DEX_PIDGEOTTO EQU 17
-DEX_PIDGEOT EQU 18
-DEX_RATTATA EQU 19
-DEX_RATICATE EQU 20
-DEX_SPEAROW EQU 21
-DEX_FEAROW EQU 22
-DEX_EKANS EQU 23
-DEX_ARBOK EQU 24
-DEX_PIKACHU EQU 25
-DEX_RAICHU EQU 26
-DEX_SANDSHREW EQU 27
-DEX_SANDSLASH EQU 28
-DEX_NIDORAN_F EQU 29
-DEX_NIDORINA EQU 30
-DEX_NIDOQUEEN EQU 31
-DEX_NIDORAN_M EQU 32
-DEX_NIDORINO EQU 33
-DEX_NIDOKING EQU 34
-DEX_CLEFAIRY EQU 35
-DEX_CLEFABLE EQU 36
-DEX_VULPIX EQU 37
-DEX_NINETALES EQU 38
-DEX_JIGGLYPUFF EQU 39
-DEX_WIGGLYTUFF EQU 40
-DEX_ZUBAT EQU 41
-DEX_GOLBAT EQU 42
-DEX_ODDISH EQU 43
-DEX_GLOOM EQU 44
-DEX_VILEPLUME EQU 45
-DEX_PARAS EQU 46
-DEX_PARASECT EQU 47
-DEX_VENONAT EQU 48
-DEX_VENOMOTH EQU 49
-DEX_DIGLETT EQU 50
-DEX_DUGTRIO EQU 51
-DEX_MEOWTH EQU 52
-DEX_PERSIAN EQU 53
-DEX_PSYDUCK EQU 54
-DEX_GOLDUCK EQU 55
-DEX_MANKEY EQU 56
-DEX_PRIMEAPE EQU 57
-DEX_GROWLITHE EQU 58
-DEX_ARCANINE EQU 59
-DEX_POLIWAG EQU 60
-DEX_POLIWHIRL EQU 61
-DEX_POLIWRATH EQU 62
-DEX_ABRA EQU 63
-DEX_KADABRA EQU 64
-DEX_ALAKAZAM EQU 65
-DEX_MACHOP EQU 66
-DEX_MACHOKE EQU 67
-DEX_MACHAMP EQU 68
-DEX_BELLSPROUT EQU 69
-DEX_WEEPINBELL EQU 70
-DEX_VICTREEBEL EQU 71
-DEX_TENTACOOL EQU 72
-DEX_TENTACRUEL EQU 73
-DEX_GEODUDE EQU 74
-DEX_GRAVELER EQU 75
-DEX_GOLEM EQU 76
-DEX_PONYTA EQU 77
-DEX_RAPIDASH EQU 78
-DEX_SLOWPOKE EQU 79
-DEX_SLOWBRO EQU 80
-DEX_MAGNEMITE EQU 81
-DEX_MAGNETON EQU 82
-DEX_FARFETCH_D EQU 83
-DEX_DODUO EQU 84
-DEX_DODRIO EQU 85
-DEX_SEEL EQU 86
-DEX_DEWGONG EQU 87
-DEX_GRIMER EQU 88
-DEX_MUK EQU 89
-DEX_SHELLDER EQU 90
-DEX_CLOYSTER EQU 91
-DEX_GASTLY EQU 92
-DEX_HAUNTER EQU 93
-DEX_GENGAR EQU 94
-DEX_ONIX EQU 95
-DEX_DROWZEE EQU 96
-DEX_HYPNO EQU 97
-DEX_KRABBY EQU 98
-DEX_KINGLER EQU 99
-DEX_VOLTORB EQU 100
-DEX_ELECTRODE EQU 101
-DEX_EXEGGCUTE EQU 102
-DEX_EXEGGUTOR EQU 103
-DEX_CUBONE EQU 104
-DEX_MAROWAK EQU 105
-DEX_HITMONLEE EQU 106
-DEX_HITMONCHAN EQU 107
-DEX_LICKITUNG EQU 108
-DEX_KOFFING EQU 109
-DEX_WEEZING EQU 110
-DEX_RHYHORN EQU 111
-DEX_RHYDON EQU 112
-DEX_CHANSEY EQU 113
-DEX_TANGELA EQU 114
-DEX_KANGASKHAN EQU 115
-DEX_HORSEA EQU 116
-DEX_SEADRA EQU 117
-DEX_GOLDEEN EQU 118
-DEX_SEAKING EQU 119
-DEX_STARYU EQU 120
-DEX_STARMIE EQU 121
-DEX_MR_MIME EQU 122
-DEX_SCYTHER EQU 123
-DEX_JYNX EQU 124
-DEX_ELECTABUZZ EQU 125
-DEX_MAGMAR EQU 126
-DEX_PINSIR EQU 127
-DEX_TAUROS EQU 128
-DEX_MAGIKARP EQU 129
-DEX_GYARADOS EQU 130
-DEX_LAPRAS EQU 131
-DEX_DITTO EQU 132
-DEX_EEVEE EQU 133
-DEX_VAPOREON EQU 134
-DEX_JOLTEON EQU 135
-DEX_FLAREON EQU 136
-DEX_PORYGON EQU 137
-DEX_OMANYTE EQU 138
-DEX_OMASTAR EQU 139
-DEX_KABUTO EQU 140
-DEX_KABUTOPS EQU 141
-DEX_AERODACTYL EQU 142
-DEX_SNORLAX EQU 143
-DEX_ARTICUNO EQU 144
-DEX_ZAPDOS EQU 145
-DEX_MOLTRES EQU 146
-DEX_DRATINI EQU 147
-DEX_DRAGONAIR EQU 148
-DEX_DRAGONITE EQU 149
-DEX_MEWTWO EQU 150
-DEX_MEW EQU 151
-
-
-; item name constants
-MASTER_BALL EQU $01
-ULTRA_BALL EQU $02
-GREAT_BALL EQU $03
-POKE_BALL EQU $04
-TOWN_MAP EQU $05
-BICYCLE EQU $06
-SURFBOARD EQU $07 ; buggy?
-SAFARI_BALL EQU $08
-POKEDEX EQU $09
-MOON_STONE EQU $0A
-ANTIDOTE EQU $0B
-BURN_HEAL EQU $0C
-ICE_HEAL EQU $0D
-AWAKENING EQU $0E
-PARLYZ_HEAL EQU $0F
-FULL_RESTORE EQU $10
-MAX_POTION EQU $11
-HYPER_POTION EQU $12
-SUPER_POTION EQU $13
-POTION EQU $14
-BOULDERBADGE EQU $15
-CASCADEBADGE EQU $16
-THUNDERBADGE EQU $17
-RAINBOWBADGE EQU $18
-SOULBADGE EQU $19
-MARSHBADGE EQU $1A
-VOLCANOBADGE EQU $1B
-EARTHBADGE EQU $1C
-ESCAPE_ROPE EQU $1D
-REPEL EQU $1E
-OLD_AMBER EQU $1F
-FIRE_STONE EQU $20
-THUNDER_STONE EQU $21
-WATER_STONE EQU $22
-HP_UP EQU $23
-PROTEIN EQU $24
-IRON EQU $25
-CARBOS EQU $26
-CALCIUM EQU $27
-RARE_CANDY EQU $28
-DOME_FOSSIL EQU $29
-HELIX_FOSSIL EQU $2A
-SECRET_KEY EQU $2B
-; XXX ????? EQU $2C
-BIKE_VOUCHER EQU $2D
-X_ACCURACY EQU $2E
-LEAF_STONE EQU $2F
-CARD_KEY EQU $30
-NUGGET EQU $31
-;PP_UP EQU $32
-POKE_DOLL EQU $33
-FULL_HEAL EQU $34
-REVIVE EQU $35
-MAX_REVIVE EQU $36
-GUARD_SPEC_ EQU $37
-SUPER_REPEL EQU $38
-MAX_REPEL EQU $39
-DIRE_HIT EQU $3A
-COIN EQU $3B
-FRESH_WATER EQU $3C
-SODA_POP EQU $3D
-LEMONADE EQU $3E
-S_S__TICKET EQU $3F
-GOLD_TEETH EQU $40
-X_ATTACK EQU $41
-X_DEFEND EQU $42
-X_SPEED EQU $43
-X_SPECIAL EQU $44
-COIN_CASE EQU $45
-OAKS_PARCEL EQU $46
-ITEMFINDER EQU $47
-SILPH_SCOPE EQU $48
-POKE_FLUTE EQU $49
-LIFT_KEY EQU $4A
-EXP__ALL EQU $4B
-OLD_ROD EQU $4C
-GOOD_ROD EQU $4D
-SUPER_ROD EQU $4E
-; XXX todo: compare this to $32
-PP_UP EQU $4F
-ETHER EQU $50
-MAX_ETHER EQU $51
-ELIXER EQU $52
-MAX_ELIXER EQU $53
-HM_01 EQU $C4
-HM_02 EQU $C5
-HM_03 EQU $C6
-HM_04 EQU $C7
-HM_05 EQU $C8
-TM_01 EQU $C9
-TM_02 EQU $CA
-TM_03 EQU $CB
-TM_04 EQU $CC
-TM_05 EQU $CD
-TM_06 EQU $CE
-TM_07 EQU $CF
-TM_08 EQU $D0
-TM_09 EQU $D1
-TM_10 EQU $D2
-TM_11 EQU $D3
-TM_12 EQU $D4
-TM_13 EQU $D5
-TM_14 EQU $D6
-TM_15 EQU $D7
-TM_16 EQU $D8
-TM_17 EQU $D9
-TM_18 EQU $DA
-TM_19 EQU $DB
-TM_20 EQU $DC
-TM_21 EQU $DD
-TM_22 EQU $DE
-TM_23 EQU $DF
-TM_24 EQU $E0
-TM_25 EQU $E1
-TM_26 EQU $E2
-TM_27 EQU $E3
-TM_28 EQU $E4
-TM_29 EQU $E5
-TM_30 EQU $E6
-TM_31 EQU $E7
-TM_32 EQU $E8
-TM_33 EQU $E9
-TM_34 EQU $EA
-TM_35 EQU $EB
-TM_36 EQU $EC
-TM_37 EQU $ED
-TM_38 EQU $EE
-TM_39 EQU $EF
-TM_40 EQU $F0
-TM_41 EQU $F1
-TM_42 EQU $F2
-TM_43 EQU $F3
-TM_44 EQU $F4
-TM_45 EQU $F5
-TM_46 EQU $F6
-TM_47 EQU $F7
-TM_48 EQU $F8
-TM_49 EQU $F9
-TM_50 EQU $FA
-
-; tentative move effect constants
-; {stat}_(UP|DOWN)(1|2) means that the move raises the user's (or lowers the target's) corresponding stat modifier by 1 (or 2) stages
-; {status condition}_side_effect means that the move has a side chance of causing that condition
-; {status condition}_effect means that the move causes the status condition every time it hits the target
-NO_ADDITIONAL_EFFECT EQU $00
-POISON_SIDE_EFFECT1 EQU $02
-DRAIN_HP_EFFECT EQU $03
-BURN_SIDE_EFFECT1 EQU $04
-FREEZE_SIDE_EFFECT EQU $05
-PARALYZE_SIDE_EFFECT1 EQU $06
-EXPLODE_EFFECT EQU $07 ; Explosion, Self Destruct
-DREAM_EATER_EFFECT EQU $08
-MIRROR_MOVE_EFFECT EQU $09
-ATTACK_UP1_EFFECT EQU $0A
-DEFENSE_UP1_EFFECT EQU $0B
-SPECIAL_UP1_EFFECT EQU $0D
-EVASION_UP1_EFFECT EQU $0F
-PAY_DAY_EFFECT EQU $10
-SWIFT_EFFECT EQU $11
-ATTACK_DOWN1_EFFECT EQU $12
-DEFENSE_DOWN1_EFFECT EQU $13
-SPEED_DOWN1_EFFECT EQU $14
-ACCURACY_DOWN1_EFFECT EQU $16
-CONVERSION_EFFECT EQU $18
-HAZE_EFFECT EQU $19
-BIDE_EFFECT EQU $1A
-THRASH_PETAL_DANCE_EFFECT EQU $1B
-SWITCH_AND_TELEPORT_EFFECT EQU $1C
-TWO_TO_FIVE_ATTACKS_EFFECT EQU $1D
-FLINCH_SIDE_EFFECT1 EQU $1F
-SLEEP_EFFECT EQU $20
-POISON_SIDE_EFFECT2 EQU $21
-BURN_SIDE_EFFECT2 EQU $22
-PARALYZE_SIDE_EFFECT2 EQU $24
-FLINCH_SIDE_EFFECT2 EQU $25
-OHKO_EFFECT EQU $26 ; moves like Horn Drill
-CHARGE_EFFECT EQU $27 ; moves like Solar Beam
-SUPER_FANG_EFFECT EQU $28
-SPECIAL_DAMAGE_EFFECT EQU $29 ; Seismic Toss, Night Shade, Sonic Boom, Dragon Rage, Psywave
-TRAPPING_EFFECT EQU $2A ; moves like Wrap
-FLY_EFFECT EQU $2B
-ATTACK_TWICE_EFFECT EQU $2C
-JUMP_KICK_EFFECT EQU $2D ; Jump Kick and Hi Jump Kick effect
-MIST_EFFECT EQU $2E
-FOCUS_ENERGY_EFFECT EQU $2F
-RECOIL_EFFECT EQU $30 ; moves like Double Edge
-CONFUSION_EFFECT EQU $31 ; Confuse Ray, Supersonic (not the move Confusion)
-ATTACK_UP2_EFFECT EQU $32
-DEFENSE_UP2_EFFECT EQU $33
-SPEED_UP2_EFFECT EQU $34
-SPECIAL_UP2_EFFECT EQU $35
-HEAL_EFFECT EQU $38 ; Recover, Softboiled, Rest
-TRANSFORM_EFFECT EQU $39
-DEFENSE_DOWN2_EFFECT EQU $3B
-LIGHT_SCREEN_EFFECT EQU $40
-REFLECT_EFFECT EQU $41
-POISON_EFFECT EQU $42
-PARALYZE_EFFECT EQU $43
-ATTACK_DOWN_SIDE_EFFECT EQU $44
-DEFENSE_DOWN_SIDE_EFFECT EQU $45
-SPEED_DOWN_SIDE_EFFECT EQU $46
-SPECIAL_DOWN_SIDE_EFFECT EQU $47
-CONFUSION_SIDE_EFFECT EQU $4C
-TWINEEDLE_EFFECT EQU $4D
-SUBSTITUTE_EFFECT EQU $4F
-HYPER_BEAM_EFFECT EQU $50
-RAGE_EFFECT EQU $51
-MIMIC_EFFECT EQU $52
-METRONOME_EFFECT EQU $53
-LEECH_SEED_EFFECT EQU $54
-SPLASH_EFFECT EQU $55
-DISABLE_EFFECT EQU $56
+INCLUDE "constants/move_constants.asm"
+INCLUDE "constants/move_effect_constants.asm"
; fixed damage constants
SONICBOOM_DAMAGE EQU 20
DRAGON_RAGE_DAMAGE EQU 40
-; move name constants
-POUND EQU $01
-KARATE_CHOP EQU $02
-DOUBLESLAP EQU $03
-COMET_PUNCH EQU $04
-MEGA_PUNCH EQU $05
-PAY_DAY EQU $06
-FIRE_PUNCH EQU $07
-ICE_PUNCH EQU $08
-THUNDERPUNCH EQU $09
-SCRATCH EQU $0A
-VICEGRIP EQU $0B
-GUILLOTINE EQU $0C
-RAZOR_WIND EQU $0D
-SWORDS_DANCE EQU $0E
-CUT EQU $0F
-GUST EQU $10
-WING_ATTACK EQU $11
-WHIRLWIND EQU $12
-FLY EQU $13
-BIND EQU $14
-SLAM EQU $15
-VINE_WHIP EQU $16
-STOMP EQU $17
-DOUBLE_KICK EQU $18
-MEGA_KICK EQU $19
-JUMP_KICK EQU $1A
-ROLLING_KICK EQU $1B
-SAND_ATTACK EQU $1C
-HEADBUTT EQU $1D
-HORN_ATTACK EQU $1E
-FURY_ATTACK EQU $1F
-HORN_DRILL EQU $20
-TACKLE EQU $21
-BODY_SLAM EQU $22
-WRAP EQU $23
-TAKE_DOWN EQU $24
-THRASH EQU $25
-DOUBLE_EDGE EQU $26
-TAIL_WHIP EQU $27
-POISON_STING EQU $28
-TWINEEDLE EQU $29
-PIN_MISSILE EQU $2A
-LEER EQU $2B
-BITE EQU $2C
-GROWL EQU $2D
-ROAR EQU $2E
-SING EQU $2F
-SUPERSONIC EQU $30
-SONICBOOM EQU $31
-DISABLE EQU $32
-ACID EQU $33
-EMBER EQU $34
-FLAMETHROWER EQU $35
-MIST EQU $36
-WATER_GUN EQU $37
-HYDRO_PUMP EQU $38
-SURF EQU $39
-ICE_BEAM EQU $3A
-BLIZZARD EQU $3B
-PSYBEAM EQU $3C
-BUBBLEBEAM EQU $3D
-AURORA_BEAM EQU $3E
-HYPER_BEAM EQU $3F
-PECK EQU $40
-DRILL_PECK EQU $41
-SUBMISSION EQU $42
-LOW_KICK EQU $43
-COUNTER EQU $44
-SEISMIC_TOSS EQU $45
-STRENGTH EQU $46
-ABSORB EQU $47
-MEGA_DRAIN EQU $48
-LEECH_SEED EQU $49
-GROWTH EQU $4A
-RAZOR_LEAF EQU $4B
-SOLARBEAM EQU $4C
-POISONPOWDER EQU $4D
-STUN_SPORE EQU $4E
-SLEEP_POWDER EQU $4F
-PETAL_DANCE EQU $50
-STRING_SHOT EQU $51
-DRAGON_RAGE EQU $52
-FIRE_SPIN EQU $53
-THUNDERSHOCK EQU $54
-THUNDERBOLT EQU $55
-THUNDER_WAVE EQU $56
-THUNDER EQU $57
-ROCK_THROW EQU $58
-EARTHQUAKE EQU $59
-FISSURE EQU $5A
-DIG EQU $5B
-TOXIC EQU $5C
-CONFUSION EQU $5D
-PSYCHIC_M EQU $5E
-HYPNOSIS EQU $5F
-MEDITATE EQU $60
-AGILITY EQU $61
-QUICK_ATTACK EQU $62
-RAGE EQU $63
-TELEPORT EQU $64
-NIGHT_SHADE EQU $65
-MIMIC EQU $66
-SCREECH EQU $67
-DOUBLE_TEAM EQU $68
-RECOVER EQU $69
-HARDEN EQU $6A
-MINIMIZE EQU $6B
-SMOKESCREEN EQU $6C
-CONFUSE_RAY EQU $6D
-WITHDRAW EQU $6E
-DEFENSE_CURL EQU $6F
-BARRIER EQU $70
-LIGHT_SCREEN EQU $71
-HAZE EQU $72
-REFLECT EQU $73
-FOCUS_ENERGY EQU $74
-BIDE EQU $75
-METRONOME EQU $76
-MIRROR_MOVE EQU $77
-SELFDESTRUCT EQU $78
-EGG_BOMB EQU $79
-LICK EQU $7A
-SMOG EQU $7B
-SLUDGE EQU $7C
-BONE_CLUB EQU $7D
-FIRE_BLAST EQU $7E
-WATERFALL EQU $7F
-CLAMP EQU $80
-SWIFT EQU $81
-SKULL_BASH EQU $82
-SPIKE_CANNON EQU $83
-CONSTRICT EQU $84
-AMNESIA EQU $85
-KINESIS EQU $86
-SOFTBOILED EQU $87
-HI_JUMP_KICK EQU $88
-GLARE EQU $89
-DREAM_EATER EQU $8A
-POISON_GAS EQU $8B
-BARRAGE EQU $8C
-LEECH_LIFE EQU $8D
-LOVELY_KISS EQU $8E
-SKY_ATTACK EQU $8F
-TRANSFORM EQU $90
-BUBBLE EQU $91
-DIZZY_PUNCH EQU $92
-SPORE EQU $93
-FLASH EQU $94
-PSYWAVE EQU $95
-SPLASH EQU $96
-ACID_ARMOR EQU $97
-CRABHAMMER EQU $98
-EXPLOSION EQU $99
-FURY_SWIPES EQU $9A
-BONEMERANG EQU $9B
-REST EQU $9C
-ROCK_SLIDE EQU $9D
-HYPER_FANG EQU $9E
-SHARPEN EQU $9F
-CONVERSION EQU $A0
-TRI_ATTACK EQU $A1
-SUPER_FANG EQU $A2
-SLASH EQU $A3
-SUBSTITUTE EQU $A4
-STRUGGLE EQU $A5
-; these do double duty as animation identifiers
-SHOWPIC_ANIM EQU $A6 ; redraw monster pic
-XSTATITEM_ANIM EQU $AE ; use X Attack/Defense/Speed/Special
-SLP_ANIM EQU $BD ; sleeping monster
-CONF_ANIM EQU $BF ; confused monster
-TOSS_ANIM EQU $C1 ; toss Poké Ball
-SHAKE_ANIM EQU $C2 ; shaking Poké Ball when catching monster
-POOF_ANIM EQU $C3 ; puff of smoke
-BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball
-GREATTOSS_ANIM EQU $C5 ; toss Great Ball
-ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball
-HIDEPIC_ANIM EQU $C8 ; monster disappears
-ROCK_ANIM EQU $C9 ; throw rock
-BAIT_ANIM EQU $CA ; throw bait
-
-; super game boy palettes
-PAL_ROUTE EQU $00
-PAL_PALLET EQU $01
-PAL_VIRIDIAN EQU $02
-PAL_PEWTER EQU $03
-PAL_CERULEAN EQU $04
-PAL_LAVENDER EQU $05
-PAL_VERMILION EQU $06
-PAL_CELADON EQU $07
-PAL_FUCHSIA EQU $08
-PAL_CINNABAR EQU $09
-PAL_INDIGO EQU $0A
-PAL_SAFFRON EQU $0B
-PAL_TOWNMAP EQU $0C
-PAL_LOGO1 EQU $0D
-; XXX
-PAL_LOGO2 EQU $0F
-PAL_MEWMON EQU $10
-PAL_BLUEMON EQU $11
-PAL_REDMON EQU $12
-PAL_CYANMON EQU $13
-PAL_PURPLEMON EQU $14
-PAL_BROWNMON EQU $15
-PAL_GREENMON EQU $16
-PAL_PINKMON EQU $17
-PAL_YELLOWMON EQU $18
-PAL_GREYMON EQU $19
-PAL_SLOTS1 EQU $1A
-PAL_SLOTS2 EQU $1B
-PAL_SLOTS3 EQU $1C
-PAL_SLOTS4 EQU $1D
-PAL_BLACK EQU $1E
-PAL_GREENBAR EQU $1F
-PAL_YELLOWBAR EQU $20
-PAL_REDBAR EQU $21
-PAL_BADGE EQU $22
-PAL_CAVE EQU $23
-; XXX
-
-; map name constants
-PALLET_TOWN EQU $00
-VIRIDIAN_CITY EQU $01
-PEWTER_CITY EQU $02
-CERULEAN_CITY EQU $03
-LAVENDER_TOWN EQU $04
-VERMILION_CITY EQU $05
-CELADON_CITY EQU $06
-FUCHSIA_CITY EQU $07
-CINNABAR_ISLAND EQU $08
-INDIGO_PLATEAU EQU $09
-SAFFRON_CITY EQU $0A
-; unused EQU $0B
-ROUTE_1 EQU $0C
-ROUTE_2 EQU $0D
-ROUTE_3 EQU $0E
-ROUTE_4 EQU $0F
-ROUTE_5 EQU $10
-ROUTE_6 EQU $11
-ROUTE_7 EQU $12
-ROUTE_8 EQU $13
-ROUTE_9 EQU $14
-ROUTE_10 EQU $15
-ROUTE_11 EQU $16
-ROUTE_12 EQU $17
-ROUTE_13 EQU $18
-ROUTE_14 EQU $19
-ROUTE_15 EQU $1A
-ROUTE_16 EQU $1B
-ROUTE_17 EQU $1C
-ROUTE_18 EQU $1D
-ROUTE_19 EQU $1E
-ROUTE_20 EQU $1F
-ROUTE_21 EQU $20
-ROUTE_22 EQU $21
-ROUTE_23 EQU $22
-ROUTE_24 EQU $23
-ROUTE_25 EQU $24
-REDS_HOUSE_1F EQU $25
-REDS_HOUSE_2F EQU $26
-BLUES_HOUSE EQU $27
-OAKS_LAB EQU $28
-VIRIDIAN_POKECENTER EQU $29
-VIRIDIAN_MART EQU $2A
-VIRIDIAN_SCHOOL EQU $2B
-VIRIDIAN_HOUSE EQU $2C
-VIRIDIAN_GYM EQU $2D
-DIGLETTS_CAVE_EXIT EQU $2E
-VIRIDIAN_FOREST_EXIT EQU $2F
-ROUTE_2_HOUSE EQU $30
-ROUTE_2_GATE EQU $31
-VIRIDIAN_FOREST_ENTRANCE EQU $32
-VIRIDIAN_FOREST EQU $33
-MUSEUM_1F EQU $34
-MUSEUM_2F EQU $35
-PEWTER_GYM EQU $36
-PEWTER_HOUSE_1 EQU $37
-PEWTER_MART EQU $38
-PEWTER_HOUSE_2 EQU $39
-PEWTER_POKECENTER EQU $3A
-MT_MOON_1 EQU $3B
-MT_MOON_2 EQU $3C
-MT_MOON_3 EQU $3D
-TRASHED_HOUSE EQU $3E
-CERULEAN_HOUSE EQU $3F
-CERULEAN_POKECENTER EQU $40
-CERULEAN_GYM EQU $41
-BIKE_SHOP EQU $42
-CERULEAN_MART EQU $43
-MT_MOON_POKECENTER EQU $44
-;copy of TRASHED_HOUSE EQU $45
-ROUTE_5_GATE EQU $46
-PATH_ENTRANCE_ROUTE_5 EQU $47
-DAYCAREM EQU $48
-ROUTE_6_GATE EQU $49
-PATH_ENTRANCE_ROUTE_6 EQU $4A
-;copy of PATH_ENTRANCE_ROUTE_6 EQU $4B
-ROUTE_7_GATE EQU $4C
-PATH_ENTRANCE_ROUTE_7 EQU $4D
-;copy of PATH_ENTRANCE_ROUTE_7 EQU $4E
-ROUTE_8_GATE EQU $4F
-PATH_ENTRANCE_ROUTE_8 EQU $50
-ROCK_TUNNEL_POKECENTER EQU $51
-ROCK_TUNNEL_1 EQU $52
-POWER_PLANT EQU $53
-ROUTE_11_GATE_1F EQU $54
-DIGLETTS_CAVE_ENTRANCE EQU $55
-ROUTE_11_GATE_2F EQU $56
-ROUTE_12_GATE EQU $57
-BILLS_HOUSE EQU $58
-VERMILION_POKECENTER EQU $59
-POKEMON_FAN_CLUB EQU $5A
-VERMILION_MART EQU $5B
-VERMILION_GYM EQU $5C
-VERMILION_HOUSE_1 EQU $5D
-VERMILION_DOCK EQU $5E
-SS_ANNE_1 EQU $5F
-SS_ANNE_2 EQU $60
-SS_ANNE_3 EQU $61
-SS_ANNE_4 EQU $62
-SS_ANNE_5 EQU $63
-SS_ANNE_6 EQU $64
-SS_ANNE_7 EQU $65
-SS_ANNE_8 EQU $66
-SS_ANNE_9 EQU $67
-SS_ANNE_10 EQU $68
-;EQU $69
-;EQU $6A
-;EQU $6B
-VICTORY_ROAD_1 EQU $6C
-;EQU $6D
-;EQU $6E
-;EQU $6F
-;EQU $70
-LANCES_ROOM EQU $71
-;EQU $72
-;EQU $73
-;EQU $74
-;EQU $75
-HALL_OF_FAME EQU $76
-UNDERGROUND_PATH_NS EQU $77
-CHAMPIONS_ROOM EQU $78
-UNDERGROUND_PATH_WE EQU $79
-CELADON_MART_1 EQU $7A
-CELADON_MART_2 EQU $7B
-CELADON_MART_3 EQU $7C
-CELADON_MART_4 EQU $7D
-CELADON_MART_ROOF EQU $7E
-CELADON_MART_ELEVATOR EQU $7F
-CELADON_MANSION_1 EQU $80
-CELADON_MANSION_2 EQU $81
-CELADON_MANSION_3 EQU $82
-CELADON_MANSION_4 EQU $83
-CELADON_MANSION_5 EQU $84
-CELADON_POKECENTER EQU $85
-CELADON_GYM EQU $86
-GAME_CORNER EQU $87
-CELADON_MART_5 EQU $88
-CELADONPRIZE_ROOM EQU $89
-CELADON_DINER EQU $8A
-CELADON_HOUSE EQU $8B
-CELADON_HOTEL EQU $8C
-LAVENDER_POKECENTER EQU $8D
-POKEMONTOWER_1 EQU $8E
-POKEMONTOWER_2 EQU $8F
-POKEMONTOWER_3 EQU $90
-POKEMONTOWER_4 EQU $91
-POKEMONTOWER_5 EQU $92
-POKEMONTOWER_6 EQU $93
-POKEMONTOWER_7 EQU $94
-LAVENDER_HOUSE_1 EQU $95
-LAVENDER_MART EQU $96
-LAVENDER_HOUSE_2 EQU $97
-FUCHSIA_MART EQU $98
-FUCHSIA_HOUSE_1 EQU $99
-FUCHSIA_POKECENTER EQU $9A
-FUCHSIA_HOUSE_2 EQU $9B
-SAFARIZONEENTRANCE EQU $9C
-FUCHSIA_GYM EQU $9D
-FUCHSIAMEETINGROOM EQU $9E
-SEAFOAM_ISLANDS_2 EQU $9F
-SEAFOAM_ISLANDS_3 EQU $A0
-SEAFOAM_ISLANDS_4 EQU $A1
-SEAFOAM_ISLANDS_5 EQU $A2
-VERMILION_HOUSE_2 EQU $A3
-FUCHSIA_HOUSE_3 EQU $A4
-MANSION_1 EQU $A5
-CINNABAR_GYM EQU $A6
-CINNABAR_LAB_1 EQU $A7
-CINNABAR_LAB_2 EQU $A8
-CINNABAR_LAB_3 EQU $A9
-CINNABAR_LAB_4 EQU $AA
-CINNABAR_POKECENTER EQU $AB
-CINNABAR_MART EQU $AC
-;copy of CINNABAR_MART EQU $AD
-INDIGO_PLATEAU_LOBBY EQU $AE
-COPYCATS_HOUSE_1F EQU $AF
-COPYCATS_HOUSE_2F EQU $B0
-FIGHTINGDOJO EQU $B1
-SAFFRON_GYM EQU $B2
-SAFFRON_HOUSE_1 EQU $B3
-SAFFRON_MART EQU $B4
-SILPH_CO_1F EQU $B5
-SAFFRON_POKECENTER EQU $B6
-SAFFRON_HOUSE_2 EQU $B7
-ROUTE_15_GATE_1F EQU $B8
-ROUTE_15_GATE_2F EQU $B9
-ROUTE_16_GATE_1F EQU $BA
-ROUTE_16_GATE_2F EQU $BB
-ROUTE_16_HOUSE EQU $BC
-ROUTE_12_HOUSE EQU $BD
-ROUTE_18_GATE_1F EQU $BE
-ROUTE_18_GATE_2F EQU $BF
-SEAFOAM_ISLANDS_1 EQU $C0
-ROUTE_22_GATE EQU $C1
-VICTORY_ROAD_2 EQU $C2
-ROUTE_12_GATE_2F EQU $C3
-VERMILION_HOUSE_3 EQU $C4
-DIGLETTS_CAVE EQU $C5
-VICTORY_ROAD_3 EQU $C6
-ROCKET_HIDEOUT_1 EQU $C7
-ROCKET_HIDEOUT_2 EQU $C8
-ROCKET_HIDEOUT_3 EQU $C9
-ROCKET_HIDEOUT_4 EQU $CA
-ROCKET_HIDEOUT_ELEVATOR EQU $CB
-;EQU $CC
-;EQU $CD
-;EQU $CE
-SILPH_CO_2F EQU $CF
-SILPH_CO_3F EQU $D0
-SILPH_CO_4F EQU $D1
-SILPH_CO_5F EQU $D2
-SILPH_CO_6F EQU $D3
-SILPH_CO_7F EQU $D4
-SILPH_CO_8F EQU $D5
-MANSION_2 EQU $D6
-MANSION_3 EQU $D7
-MANSION_4 EQU $D8
-SAFARI_ZONE_EAST EQU $D9
-SAFARI_ZONE_NORTH EQU $DA
-SAFARI_ZONE_WEST EQU $DB
-SAFARI_ZONE_CENTER EQU $DC
-SAFARI_ZONE_REST_HOUSE_1 EQU $DD
-SAFARI_ZONE_SECRET_HOUSE EQU $DE
-SAFARI_ZONE_REST_HOUSE_2 EQU $DF
-SAFARI_ZONE_REST_HOUSE_3 EQU $E0
-SAFARI_ZONE_REST_HOUSE_4 EQU $E1
-UNKNOWN_DUNGEON_2 EQU $E2
-UNKNOWN_DUNGEON_3 EQU $E3
-UNKNOWN_DUNGEON_1 EQU $E4
-NAME_RATERS_HOUSE EQU $E5
-CERULEAN_HOUSE_3 EQU $E6
-;EQU $E7
-ROCK_TUNNEL_2 EQU $E8
-SILPH_CO_9F EQU $E9
-SILPH_CO_10F EQU $EA
-SILPH_CO_11F EQU $EB
-SILPH_CO_ELEVATOR EQU $EC
-;EQU $ED
-;EQU $EE
-BATTLE_CENTER EQU $EF
-TRADE_CENTER EQU $F0
-;EQU $F1
-;EQU $F2
-;EQU $F3
-;EQU $F4
-LORELEIS_ROOM EQU $F5
-BRUNOS_ROOM EQU $F6
-AGATHAS_ROOM EQU $F7
-BEACH_HOUSE EQU $F8 ; Yellow only
+INCLUDE "constants/palette_constants.asm"
+INCLUDE "constants/map_constants.asm"
+INCLUDE "constants/map_dimensions.asm"
; Evolution types
-EV_LEVEL EQU 1
-EV_ITEM EQU 2
-EV_TRADE EQU 3
+EV_LEVEL EQU 1
+EV_ITEM EQU 2
+EV_TRADE EQU 3
; Elemental types
-NORMAL EQU $00
+NORMAL EQU $00
FIGHTING EQU $01
-FLYING EQU $02
-POISON EQU $03
-GROUND EQU $04
-ROCK EQU $05
-BUG EQU $07
-GHOST EQU $08
-FIRE EQU $14
-WATER EQU $15
-GRASS EQU $16
+FLYING EQU $02
+POISON EQU $03
+GROUND EQU $04
+ROCK EQU $05
+BUG EQU $07
+GHOST EQU $08
+FIRE EQU $14
+WATER EQU $15
+GRASS EQU $16
ELECTRIC EQU $17
-PSYCHIC EQU $18
-ICE EQU $19
-DRAGON EQU $1A
+PSYCHIC EQU $18
+ICE EQU $19
+DRAGON EQU $1A
-EAST EQU 1
-WEST EQU 2
+EAST EQU 1
+WEST EQU 2
SOUTH EQU 4
NORTH EQU 8
; different kinds of people events
-ITEM EQU $80
+ITEM EQU $80
TRAINER EQU $40
; status ailments (masks)
-SLP EQU %00000111
-PSN EQU %00001000
-BRN EQU %00010000
-FRZ EQU %00100000
-PAR EQU %01000000
+SLP EQU %00000111
+PSN EQU %00001000
+BRN EQU %00010000
+FRZ EQU %00100000
+PAR EQU %01000000
; pokemon's overworld sprites
-SPRITE_MON EQU $0
-SPRITE_BALL_M EQU $1
-SPRITE_HELIX EQU $2
-SPRITE_FAIRY EQU $3
-SPRITE_BIRD_M EQU $4
-SPRITE_WATER EQU $5
-SPRITE_BUG EQU $6
-SPRITE_GRASS EQU $7
-SPRITE_SNAKE EQU $8
-SPRITE_QUADRUPED EQU $9
+SPRITE_MON EQU $0
+SPRITE_BALL_M EQU $1
+SPRITE_HELIX EQU $2
+SPRITE_FAIRY EQU $3
+SPRITE_BIRD_M EQU $4
+SPRITE_WATER EQU $5
+SPRITE_BUG EQU $6
+SPRITE_GRASS EQU $7
+SPRITE_SNAKE EQU $8
+SPRITE_QUADRUPED EQU $9
; overworld sprites
SPRITE_RED EQU $01
@@ -2481,1053 +196,3 @@ SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46
SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47
SPRITE_LYING_OLD_MAN EQU $48
-; Map sizes (y, x)
-
-; PalletTown_h map_id=0
-PALLET_TOWN_HEIGHT EQU $09
-PALLET_TOWN_WIDTH EQU $0a
-
-; ViridianCity_h map_id=1
-VIRIDIAN_CITY_HEIGHT EQU $12
-VIRIDIAN_CITY_WIDTH EQU $14
-
-; PewterCity_h map_id=2
-PEWTER_CITY_HEIGHT EQU $12
-PEWTER_CITY_WIDTH EQU $14
-
-; CeruleanCity_h map_id=3
-CERULEAN_CITY_HEIGHT EQU $12
-CERULEAN_CITY_WIDTH EQU $14
-
-; LavenderTown_h map_id=4
-LAVENDER_TOWN_HEIGHT EQU $09
-LAVENDER_TOWN_WIDTH EQU $0a
-
-; VermilionCity_h map_id=5
-VERMILION_CITY_HEIGHT EQU $12
-VERMILION_CITY_WIDTH EQU $14
-
-; CeladonCity_h map_id=6
-CELADON_CITY_HEIGHT EQU $12
-CELADON_CITY_WIDTH EQU $19
-
-; FuchsiaCity_h map_id=7
-FUCHSIA_CITY_HEIGHT EQU $12
-FUCHSIA_CITY_WIDTH EQU $14
-
-; CinnabarIsland_h map_id=8
-CINNABAR_ISLAND_HEIGHT EQU $09
-CINNABAR_ISLAND_WIDTH EQU $0a
-
-; IndigoPlateau_h map_id=9
-INDIGO_PLATEAU_HEIGHT EQU $09
-INDIGO_PLATEAU_WIDTH EQU $0a
-
-; SaffronCity_h map_id=10
-SAFFRON_CITY_HEIGHT EQU $12
-SAFFRON_CITY_WIDTH EQU $14
-
-; Route1_h map_id=12
-ROUTE_1_HEIGHT EQU $12
-ROUTE_1_WIDTH EQU $0a
-
-; Route2_h map_id=13
-ROUTE_2_HEIGHT EQU $24
-ROUTE_2_WIDTH EQU $0a
-
-; Route3_h map_id=14
-ROUTE_3_HEIGHT EQU $09
-ROUTE_3_WIDTH EQU $23
-
-; Route4_h map_id=15
-ROUTE_4_HEIGHT EQU $09
-ROUTE_4_WIDTH EQU $2d
-
-; Route5_h map_id=16
-ROUTE_5_HEIGHT EQU $12
-ROUTE_5_WIDTH EQU $0a
-
-; Route6_h map_id=17
-ROUTE_6_HEIGHT EQU $12
-ROUTE_6_WIDTH EQU $0a
-
-; Route7_h map_id=18
-ROUTE_7_HEIGHT EQU $09
-ROUTE_7_WIDTH EQU $0a
-
-; Route8_h map_id=19
-ROUTE_8_HEIGHT EQU $09
-ROUTE_8_WIDTH EQU $1e
-
-; Route9_h map_id=20
-ROUTE_9_HEIGHT EQU $09
-ROUTE_9_WIDTH EQU $1e
-
-; Route10_h map_id=21
-ROUTE_10_HEIGHT EQU $24
-ROUTE_10_WIDTH EQU $0a
-
-; Route11_h map_id=22
-ROUTE_11_HEIGHT EQU $09
-ROUTE_11_WIDTH EQU $1e
-
-; Route12_h map_id=23
-ROUTE_12_HEIGHT EQU $36
-ROUTE_12_WIDTH EQU $0a
-
-; Route13_h map_id=24
-ROUTE_13_HEIGHT EQU $09
-ROUTE_13_WIDTH EQU $1e
-
-; Route14_h map_id=25
-ROUTE_14_HEIGHT EQU $1b
-ROUTE_14_WIDTH EQU $0a
-
-; Route15_h map_id=26
-ROUTE_15_HEIGHT EQU $09
-ROUTE_15_WIDTH EQU $1e
-
-; Route16_h map_id=27
-ROUTE_16_HEIGHT EQU $09
-ROUTE_16_WIDTH EQU $14
-
-; Route17_h map_id=28
-ROUTE_17_HEIGHT EQU $48
-ROUTE_17_WIDTH EQU $0a
-
-; Route18_h map_id=29
-ROUTE_18_HEIGHT EQU $09
-ROUTE_18_WIDTH EQU $19
-
-; Route19_h map_id=30
-ROUTE_19_HEIGHT EQU $1b
-ROUTE_19_WIDTH EQU $0a
-
-; Route20_h map_id=31
-ROUTE_20_HEIGHT EQU $09
-ROUTE_20_WIDTH EQU $32
-
-; Route21_h map_id=32
-ROUTE_21_HEIGHT EQU $2d
-ROUTE_21_WIDTH EQU $0a
-
-; Route22_h map_id=33
-ROUTE_22_HEIGHT EQU $09
-ROUTE_22_WIDTH EQU $14
-
-; Route23_h map_id=34
-ROUTE_23_HEIGHT EQU $48
-ROUTE_23_WIDTH EQU $0a
-
-; Route24_h map_id=35
-ROUTE_24_HEIGHT EQU $12
-ROUTE_24_WIDTH EQU $0a
-
-; Route25_h map_id=36
-ROUTE_25_HEIGHT EQU $09
-ROUTE_25_WIDTH EQU $1e
-
-; RedsHouse1F_h map_id=37
-REDS_HOUSE_1F_HEIGHT EQU $04
-REDS_HOUSE_1F_WIDTH EQU $04
-
-; RedsHouse2F_h map_id=38
-REDS_HOUSE_2F_HEIGHT EQU $04
-REDS_HOUSE_2F_WIDTH EQU $04
-
-; BluesHouse_h map_id=39
-BLUES_HOUSE_HEIGHT EQU $04
-BLUES_HOUSE_WIDTH EQU $04
-
-; OaksLab_h map_id=40
-OAKS_LAB_HEIGHT EQU $06
-OAKS_LAB_WIDTH EQU $05
-
-; ViridianPokeCenter_h map_id=41
-VIRIDIAN_POKECENTER_HEIGHT EQU $04
-VIRIDIAN_POKECENTER_WIDTH EQU $07
-
-; ViridianMart_h map_id=42
-VIRIDIAN_MART_HEIGHT EQU $04
-VIRIDIAN_MART_WIDTH EQU $04
-
-; School_h map_id=43
-VIRIDIAN_SCHOOL_HEIGHT EQU $04
-VIRIDIAN_SCHOOL_WIDTH EQU $04
-
-; ViridianHouse_h map_id=44
-VIRIDIAN_HOUSE_HEIGHT EQU $04
-VIRIDIAN_HOUSE_WIDTH EQU $04
-
-; ViridianGym_h map_id=45
-VIRIDIAN_GYM_HEIGHT EQU $09
-VIRIDIAN_GYM_WIDTH EQU $0a
-
-; DiglettsCaveRoute2_h map_id=46
-DIGLETTS_CAVE_EXIT_HEIGHT EQU $04
-DIGLETTS_CAVE_EXIT_WIDTH EQU $04
-
-; ViridianForestexit_h map_id=47
-VIRIDIAN_FOREST_EXIT_HEIGHT EQU $04
-VIRIDIAN_FOREST_EXIT_WIDTH EQU $05
-
-; Route2House_h map_id=48
-ROUTE_2_HOUSE_HEIGHT EQU $04
-ROUTE_2_HOUSE_WIDTH EQU $04
-
-; Route2Gate_h map_id=49
-ROUTE_2_GATE_HEIGHT EQU $04
-ROUTE_2_GATE_WIDTH EQU $05
-
-; ViridianForestEntrance_h map_id=50
-VIRIDIAN_FOREST_ENTRANCE_HEIGHT EQU $04
-VIRIDIAN_FOREST_ENTRANCE_WIDTH EQU $05
-
-; ViridianForest_h map_id=51
-VIRIDIAN_FOREST_HEIGHT EQU $18
-VIRIDIAN_FOREST_WIDTH EQU $11
-
-; MuseumF1_h map_id=52
-MUSEUM_1F_HEIGHT EQU $04
-MUSEUM_1F_WIDTH EQU $0a
-
-; MuseumF2_h map_id=53
-MUSEUM_2F_HEIGHT EQU $04
-MUSEUM_2F_WIDTH EQU $07
-
-; PewterGym_h map_id=54
-PEWTER_GYM_HEIGHT EQU $07
-PEWTER_GYM_WIDTH EQU $05
-
-; PewterHouse1_h map_id=55
-PEWTER_HOUSE_1_HEIGHT EQU $04
-PEWTER_HOUSE_1_WIDTH EQU $04
-
-; PewterMart_h map_id=56
-PEWTER_MART_HEIGHT EQU $04
-PEWTER_MART_WIDTH EQU $04
-
-; PewterHouse2_h map_id=57
-PEWTER_HOUSE_2_HEIGHT EQU $04
-PEWTER_HOUSE_2_WIDTH EQU $04
-
-; PewterPokecenter_h map_id=58
-PEWTER_POKECENTER_HEIGHT EQU $04
-PEWTER_POKECENTER_WIDTH EQU $07
-
-; MtMoon1_h map_id=59
-MT_MOON_1_HEIGHT EQU $12
-MT_MOON_1_WIDTH EQU $14
-
-; MtMoon2_h map_id=60
-MT_MOON_2_HEIGHT EQU $0e
-MT_MOON_2_WIDTH EQU $0e
-
-; MtMoon3_h map_id=61
-MT_MOON_3_HEIGHT EQU $12
-MT_MOON_3_WIDTH EQU $14
-
-; CeruleanHouseTrashed_h map_id=62
-TRASHED_HOUSE_HEIGHT EQU $04
-TRASHED_HOUSE_WIDTH EQU $04
-
-; CeruleanHouse_h map_id=63
-CERULEAN_HOUSE_HEIGHT EQU $04
-CERULEAN_HOUSE_WIDTH EQU $04
-
-; CeruleanPokecenter_h map_id=64
-CERULEAN_POKECENTER_HEIGHT EQU $04
-CERULEAN_POKECENTER_WIDTH EQU $07
-
-; CeruleanGym_h map_id=65
-CERULEAN_GYM_HEIGHT EQU $07
-CERULEAN_GYM_WIDTH EQU $05
-
-; BikeShop_h map_id=66
-BIKE_SHOP_HEIGHT EQU $04
-BIKE_SHOP_WIDTH EQU $04
-
-; CeruleanMart_h map_id=67
-CERULEAN_MART_HEIGHT EQU $04
-CERULEAN_MART_WIDTH EQU $04
-
-; MtMoonPokecenter_h map_id=68
-MT_MOON_POKECENTER_HEIGHT EQU $04
-MT_MOON_POKECENTER_WIDTH EQU $07
-
-; Route5Gate_h map_id=70
-ROUTE_5_GATE_HEIGHT EQU $03
-ROUTE_5_GATE_WIDTH EQU $04
-
-; UndergroundTunnelEntranceRoute5_h map_id=71
-PATH_ENTRANCE_ROUTE_5_HEIGHT EQU $04
-PATH_ENTRANCE_ROUTE_5_WIDTH EQU $04
-
-; DayCareM_h map_id=72
-DAYCAREM_HEIGHT EQU $04
-DAYCAREM_WIDTH EQU $04
-
-; Route6Gate_h map_id=73
-ROUTE_6_GATE_HEIGHT EQU $03
-ROUTE_6_GATE_WIDTH EQU $04
-
-; UndergroundTunnelEntranceRoute6_h map_id=74
-PATH_ENTRANCE_ROUTE_6_HEIGHT EQU $04
-PATH_ENTRANCE_ROUTE_6_WIDTH EQU $04
-
-; Route7Gate_h map_id=76
-ROUTE_7_GATE_HEIGHT EQU $04
-ROUTE_7_GATE_WIDTH EQU $03
-
-; UndergroundPathEntranceRoute7_h map_id=77
-PATH_ENTRANCE_ROUTE_7_HEIGHT EQU $04
-PATH_ENTRANCE_ROUTE_7_WIDTH EQU $04
-
-; Route8Gate_h map_id=79
-ROUTE_8_GATE_HEIGHT EQU $04
-ROUTE_8_GATE_WIDTH EQU $03
-
-; UndergroundPathEntranceRoute8_h map_id=80
-PATH_ENTRANCE_ROUTE_8_HEIGHT EQU $04
-PATH_ENTRANCE_ROUTE_8_WIDTH EQU $04
-
-; RockTunnelPokecenter_h map_id=81
-ROCK_TUNNEL_POKECENTER_HEIGHT EQU $04
-ROCK_TUNNEL_POKECENTER_WIDTH EQU $07
-
-; RockTunnel1_h map_id=82
-ROCK_TUNNEL_1_HEIGHT EQU $12
-ROCK_TUNNEL_1_WIDTH EQU $14
-
-; PowerPlant_h map_id=83
-POWER_PLANT_HEIGHT EQU $12
-POWER_PLANT_WIDTH EQU $14
-
-; Route11Gate_h map_id=84
-ROUTE_11_GATE_1F_HEIGHT EQU $05
-ROUTE_11_GATE_1F_WIDTH EQU $04
-
-; DiglettsCaveEntranceRoute11_h map_id=85
-DIGLETTS_CAVE_ENTRANCE_HEIGHT EQU $04
-DIGLETTS_CAVE_ENTRANCE_WIDTH EQU $04
-
-; Route11GateUpstairs_h map_id=86
-ROUTE_11_GATE_2F_HEIGHT EQU $04
-ROUTE_11_GATE_2F_WIDTH EQU $04
-
-; Route12Gate_h map_id=87
-ROUTE_12_GATE_HEIGHT EQU $04
-ROUTE_12_GATE_WIDTH EQU $05
-
-; BillsHouse_h map_id=88
-BILLS_HOUSE_HEIGHT EQU $04
-BILLS_HOUSE_WIDTH EQU $04
-
-; VermilionPokecenter_h map_id=89
-VERMILION_POKECENTER_HEIGHT EQU $04
-VERMILION_POKECENTER_WIDTH EQU $07
-
-; FanClub_h map_id=90
-POKEMON_FAN_CLUB_HEIGHT EQU $04
-POKEMON_FAN_CLUB_WIDTH EQU $04
-
-; VermilionMart_h map_id=91
-VERMILION_MART_HEIGHT EQU $04
-VERMILION_MART_WIDTH EQU $04
-
-; VermilionGym_h map_id=92
-VERMILION_GYM_HEIGHT EQU $09
-VERMILION_GYM_WIDTH EQU $05
-
-; VermilionHouse1_h map_id=93
-VERMILION_HOUSE_1_HEIGHT EQU $04
-VERMILION_HOUSE_1_WIDTH EQU $04
-
-; VermilionDock_h map_id=94
-VERMILION_DOCK_HEIGHT EQU $06
-VERMILION_DOCK_WIDTH EQU $0e
-
-; SSAnne1_h map_id=95
-SS_ANNE_1_HEIGHT EQU $09
-SS_ANNE_1_WIDTH EQU $14
-
-; SSAnne2_h map_id=96
-SS_ANNE_2_HEIGHT EQU $09
-SS_ANNE_2_WIDTH EQU $14
-
-; SSAnne3_h map_id=97
-SS_ANNE_3_HEIGHT EQU $03
-SS_ANNE_3_WIDTH EQU $0a
-
-; SSAnne4_h map_id=98
-SS_ANNE_4_HEIGHT EQU $04
-SS_ANNE_4_WIDTH EQU $0f
-
-; SSAnne5_h map_id=99
-SS_ANNE_5_HEIGHT EQU $07
-SS_ANNE_5_WIDTH EQU $0a
-
-; SSAnne6_h map_id=100
-SS_ANNE_6_HEIGHT EQU $08
-SS_ANNE_6_WIDTH EQU $07
-
-; SSAnne7_h map_id=101
-SS_ANNE_7_HEIGHT EQU $04
-SS_ANNE_7_WIDTH EQU $03
-
-; SSAnne8_h map_id=102
-SS_ANNE_8_HEIGHT EQU $08
-SS_ANNE_8_WIDTH EQU $0c
-
-; SSAnne9_h map_id=103
-SS_ANNE_9_HEIGHT EQU $08
-SS_ANNE_9_WIDTH EQU $0c
-
-; SSAnne10_h map_id=104
-SS_ANNE_10_HEIGHT EQU $08
-SS_ANNE_10_WIDTH EQU $0c
-
-; VictoryRoad1_h map_id=108
-VICTORY_ROAD_1_HEIGHT EQU $09
-VICTORY_ROAD_1_WIDTH EQU $0a
-
-; Lance_h map_id=113
-LANCES_ROOM_HEIGHT EQU $0d
-LANCES_ROOM_WIDTH EQU $0d
-
-; HallofFameRoom_h map_id=118
-HALL_OF_FAME_HEIGHT EQU $04
-HALL_OF_FAME_WIDTH EQU $05
-
-; UndergroundPathNS_h map_id=119
-UNDERGROUND_PATH_NS_HEIGHT EQU $18
-UNDERGROUND_PATH_NS_WIDTH EQU $04
-
-; Gary_h map_id=120
-CHAMPIONS_ROOM_HEIGHT EQU $04
-CHAMPIONS_ROOM_WIDTH EQU $04
-
-; UndergroundPathWE_h map_id=121
-UNDERGROUND_PATH_WE_HEIGHT EQU $04
-UNDERGROUND_PATH_WE_WIDTH EQU $19
-
-; CeladonMart1_h map_id=122
-CELADON_MART_1_HEIGHT EQU $04
-CELADON_MART_1_WIDTH EQU $0a
-
-; CeladonMart2_h map_id=123
-CELADON_MART_2_HEIGHT EQU $04
-CELADON_MART_2_WIDTH EQU $0a
-
-; CeladonMart3_h map_id=124
-CELADON_MART_3_HEIGHT EQU $04
-CELADON_MART_3_WIDTH EQU $0a
-
-; CeladonMart4_h map_id=125
-CELADON_MART_4_HEIGHT EQU $04
-CELADON_MART_4_WIDTH EQU $0a
-
-; CeladonMartRoof_h map_id=126
-CELADON_MART_ROOF_HEIGHT EQU $04
-CELADON_MART_ROOF_WIDTH EQU $0a
-
-; CeladonMartElevator_h map_id=127
-CELADON_MART_ELEVATOR_HEIGHT EQU $02
-CELADON_MART_ELEVATOR_WIDTH EQU $02
-
-; CeladonMansion1_h map_id=128
-CELADON_MANSION_1_HEIGHT EQU $06
-CELADON_MANSION_1_WIDTH EQU $04
-
-; CeladonMansion2_h map_id=129
-CELADON_MANSION_2_HEIGHT EQU $06
-CELADON_MANSION_2_WIDTH EQU $04
-
-; CeladonMansion3_h map_id=130
-CELADON_MANSION_3_HEIGHT EQU $06
-CELADON_MANSION_3_WIDTH EQU $04
-
-; CeladonMansion4_h map_id=131
-CELADON_MANSION_4_HEIGHT EQU $06
-CELADON_MANSION_4_WIDTH EQU $04
-
-; CeladonMansion5_h map_id=132
-CELADON_MANSION_5_HEIGHT EQU $04
-CELADON_MANSION_5_WIDTH EQU $04
-
-; CeladonPokecenter_h map_id=133
-CELADON_POKECENTER_HEIGHT EQU $04
-CELADON_POKECENTER_WIDTH EQU $07
-
-; CeladonGym_h map_id=134
-CELADON_GYM_HEIGHT EQU $09
-CELADON_GYM_WIDTH EQU $05
-
-; CeladonGameCorner_h map_id=135
-GAME_CORNER_HEIGHT EQU $09
-GAME_CORNER_WIDTH EQU $0a
-
-; CeladonMart5_h map_id=136
-CELADON_MART_5_HEIGHT EQU $04
-CELADON_MART_5_WIDTH EQU $0a
-
-; CeladonPrizeRoom_h map_id=137
-CELADONPRIZE_ROOM_HEIGHT EQU $04
-CELADONPRIZE_ROOM_WIDTH EQU $05
-
-; CeladonDiner_h map_id=138
-CELADON_DINER_HEIGHT EQU $04
-CELADON_DINER_WIDTH EQU $05
-
-; CeladonHouse_h map_id=139
-CELADON_HOUSE_HEIGHT EQU $04
-CELADON_HOUSE_WIDTH EQU $04
-
-; CeladonHotel_h map_id=140
-CELADONHOTEL_HEIGHT EQU $04
-CELADONHOTEL_WIDTH EQU $07
-
-; LavenderPokecenter_h map_id=141
-LAVENDER_POKECENTER_HEIGHT EQU $04
-LAVENDER_POKECENTER_WIDTH EQU $07
-
-; PokemonTower1_h map_id=142
-POKEMONTOWER_1_HEIGHT EQU $09
-POKEMONTOWER_1_WIDTH EQU $0a
-
-; PokemonTower2_h map_id=143
-POKEMONTOWER_2_HEIGHT EQU $09
-POKEMONTOWER_2_WIDTH EQU $0a
-
-; PokemonTower3_h map_id=144
-POKEMONTOWER_3_HEIGHT EQU $09
-POKEMONTOWER_3_WIDTH EQU $0a
-
-; PokemonTower4_h map_id=145
-POKEMONTOWER_4_HEIGHT EQU $09
-POKEMONTOWER_4_WIDTH EQU $0a
-
-; PokemonTower5_h map_id=146
-POKEMONTOWER_5_HEIGHT EQU $09
-POKEMONTOWER_5_WIDTH EQU $0a
-
-; PokemonTower6_h map_id=147
-POKEMONTOWER_6_HEIGHT EQU $09
-POKEMONTOWER_6_WIDTH EQU $0a
-
-; PokemonTower7_h map_id=148
-POKEMONTOWER_7_HEIGHT EQU $09
-POKEMONTOWER_7_WIDTH EQU $0a
-
-; LavenderHouse1_h map_id=149
-LAVENDER_HOUSE_1_HEIGHT EQU $04
-LAVENDER_HOUSE_1_WIDTH EQU $04
-
-; LavenderMart_h map_id=150
-LAVENDER_MART_HEIGHT EQU $04
-LAVENDER_MART_WIDTH EQU $04
-
-; LavenderHouse2_h map_id=151
-LAVENDER_HOUSE_2_HEIGHT EQU $04
-LAVENDER_HOUSE_2_WIDTH EQU $04
-
-; FuchsiaMart_h map_id=152
-FUCHSIA_MART_HEIGHT EQU $04
-FUCHSIA_MART_WIDTH EQU $04
-
-; FuchsiaHouse1_h map_id=153
-FUCHSIA_HOUSE_1_HEIGHT EQU $04
-FUCHSIA_HOUSE_1_WIDTH EQU $04
-
-; FuchsiaPokecenter_h map_id=154
-FUCHSIA_POKECENTER_HEIGHT EQU $04
-FUCHSIA_POKECENTER_WIDTH EQU $07
-
-; FuchsiaHouse2_h map_id=155
-FUCHSIA_HOUSE_2_HEIGHT EQU $04
-FUCHSIA_HOUSE_2_WIDTH EQU $05
-
-; SafariZoneEntrance_h map_id=156
-SAFARIZONEENTRANCE_HEIGHT EQU $03
-SAFARIZONEENTRANCE_WIDTH EQU $04
-
-; FuchsiaGym_h map_id=157
-FUCHSIA_GYM_HEIGHT EQU $09
-FUCHSIA_GYM_WIDTH EQU $05
-
-; FuchsiaMeetingRoom_h map_id=158
-FUCHSIAMEETINGROOM_HEIGHT EQU $04
-FUCHSIAMEETINGROOM_WIDTH EQU $07
-
-; SeafoamIslands2_h map_id=159
-SEAFOAM_ISLANDS_2_HEIGHT EQU $09
-SEAFOAM_ISLANDS_2_WIDTH EQU $0f
-
-; SeafoamIslands3_h map_id=160
-SEAFOAM_ISLANDS_3_HEIGHT EQU $09
-SEAFOAM_ISLANDS_3_WIDTH EQU $0f
-
-; SeafoamIslands4_h map_id=161
-SEAFOAM_ISLANDS_4_HEIGHT EQU $09
-SEAFOAM_ISLANDS_4_WIDTH EQU $0f
-
-; SeafoamIslands5_h map_id=162
-SEAFOAM_ISLANDS_5_HEIGHT EQU $09
-SEAFOAM_ISLANDS_5_WIDTH EQU $0f
-
-; VermilionHouse2_h map_id=163
-VERMILION_HOUSE_2_HEIGHT EQU $04
-VERMILION_HOUSE_2_WIDTH EQU $04
-
-; FuchsiaHouse3_h map_id=164
-FUCHSIA_HOUSE_3_HEIGHT EQU $04
-FUCHSIA_HOUSE_3_WIDTH EQU $04
-
-; Mansion1_h map_id=165
-MANSION_1_HEIGHT EQU $0e
-MANSION_1_WIDTH EQU $0f
-
-; CinnabarGym_h map_id=166
-CINNABAR_GYM_HEIGHT EQU $09
-CINNABAR_GYM_WIDTH EQU $0a
-
-; Lab1_h map_id=167
-CINNABAR_LAB_1_HEIGHT EQU $04
-CINNABAR_LAB_1_WIDTH EQU $09
-
-; Lab2_h map_id=168
-CINNABAR_LAB_2_HEIGHT EQU $04
-CINNABAR_LAB_2_WIDTH EQU $04
-
-; Lab3_h map_id=169
-CINNABAR_LAB_3_HEIGHT EQU $04
-CINNABAR_LAB_3_WIDTH EQU $04
-
-; Lab4_h map_id=170
-CINNABAR_LAB_4_HEIGHT EQU $04
-CINNABAR_LAB_4_WIDTH EQU $04
-
-; CinnabarPokecenter_h map_id=171
-CINNABAR_POKECENTER_HEIGHT EQU $04
-CINNABAR_POKECENTER_WIDTH EQU $07
-
-; CinnabarMart_h map_id=172
-CINNABAR_MART_HEIGHT EQU $04
-CINNABAR_MART_WIDTH EQU $04
-
-; IndigoPlateauLobby_h map_id=174
-INDIGO_PLATEAU_LOBBY_HEIGHT EQU $06
-INDIGO_PLATEAU_LOBBY_WIDTH EQU $08
-
-; CopycatsHouseF1_h map_id=175
-COPYCATS_HOUSE_1F_HEIGHT EQU $04
-COPYCATS_HOUSE_1F_WIDTH EQU $04
-
-; CopycatsHouseF2_h map_id=176
-COPYCATS_HOUSE_2F_HEIGHT EQU $04
-COPYCATS_HOUSE_2F_WIDTH EQU $04
-
-; FightingDojo_h map_id=177
-FIGHTINGDOJO_HEIGHT EQU $06
-FIGHTINGDOJO_WIDTH EQU $05
-
-; SaffronGym_h map_id=178
-SAFFRON_GYM_HEIGHT EQU $09
-SAFFRON_GYM_WIDTH EQU $0a
-
-; SaffronHouse1_h map_id=179
-SAFFRON_HOUSE_1_HEIGHT EQU $04
-SAFFRON_HOUSE_1_WIDTH EQU $04
-
-; SaffronMart_h map_id=180
-SAFFRON_MART_HEIGHT EQU $04
-SAFFRON_MART_WIDTH EQU $04
-
-; SilphCo1_h map_id=181
-SILPH_CO_1F_HEIGHT EQU $09
-SILPH_CO_1F_WIDTH EQU $0f
-
-; SaffronPokecenter_h map_id=182
-SAFFRON_POKECENTER_HEIGHT EQU $04
-SAFFRON_POKECENTER_WIDTH EQU $07
-
-; SaffronHouse2_h map_id=183
-SAFFRON_HOUSE_2_HEIGHT EQU $04
-SAFFRON_HOUSE_2_WIDTH EQU $04
-
-; Route15Gate1F_h map_id=184
-ROUTE_15_GATE_1F_HEIGHT EQU $05
-ROUTE_15_GATE_1F_WIDTH EQU $04
-
-; Route15GateUpstairs_h map_id=185
-ROUTE_15_GATE_2F_HEIGHT EQU 4
-ROUTE_15_GATE_2F_WIDTH EQU 4
-
-; Route16GateMap_h map_id=186
-ROUTE_16_GATE_1F_HEIGHT EQU $07
-ROUTE_16_GATE_1F_WIDTH EQU $04
-
-; Route16GateUpstairs_h map_id=187
-ROUTE_16_GATE_2F_HEIGHT EQU $04
-ROUTE_16_GATE_2F_WIDTH EQU $04
-
-; Route16House_h map_id=188
-ROUTE_16_HOUSE_HEIGHT EQU $04
-ROUTE_16_HOUSE_WIDTH EQU $04
-
-; Route12House_h map_id=189
-ROUTE_12_HOUSE_HEIGHT EQU $04
-ROUTE_12_HOUSE_WIDTH EQU $04
-
-; Route18Gate_h map_id=190
-ROUTE_18_GATE_1F_HEIGHT EQU $05
-ROUTE_18_GATE_1F_WIDTH EQU $04
-
-; Route18GateHeader_h map_id=191
-ROUTE_18_GATE_2F_HEIGHT EQU $04
-ROUTE_18_GATE_2F_WIDTH EQU $04
-
-; SeafoamIslands1_h map_id=192
-SEAFOAM_ISLANDS_1_HEIGHT EQU $09
-SEAFOAM_ISLANDS_1_WIDTH EQU $0f
-
-; Route22Gate_h map_id=193
-ROUTE_22_GATE_HEIGHT EQU $04
-ROUTE_22_GATE_WIDTH EQU $05
-
-; VictoryRoad2_h map_id=194
-VICTORY_ROAD_2_HEIGHT EQU $09
-VICTORY_ROAD_2_WIDTH EQU $0f
-
-; Route12GateUpstairs_h map_id=195
-ROUTE_12_GATE_2F_HEIGHT EQU $04
-ROUTE_12_GATE_2F_WIDTH EQU $04
-
-; VermilionHouse3_h map_id=196
-VERMILION_HOUSE_3_HEIGHT EQU $04
-VERMILION_HOUSE_3_WIDTH EQU $04
-
-; DiglettsCave_h map_id=197
-DIGLETTS_CAVE_HEIGHT EQU $12
-DIGLETTS_CAVE_WIDTH EQU $14
-
-; VictoryRoad3_h map_id=198
-VICTORY_ROAD_3_HEIGHT EQU $09
-VICTORY_ROAD_3_WIDTH EQU $0f
-
-; RocketHideout1_h map_id=199
-ROCKET_HIDEOUT_1_HEIGHT EQU $0e
-ROCKET_HIDEOUT_1_WIDTH EQU $0f
-
-; RocketHideout2_h map_id=200
-ROCKET_HIDEOUT_2_HEIGHT EQU $0e
-ROCKET_HIDEOUT_2_WIDTH EQU $0f
-
-; RocketHideout3_h map_id=201
-ROCKET_HIDEOUT_3_HEIGHT EQU $0e
-ROCKET_HIDEOUT_3_WIDTH EQU $0f
-
-; RocketHideout4_h map_id=202
-ROCKET_HIDEOUT_4_HEIGHT EQU $0c
-ROCKET_HIDEOUT_4_WIDTH EQU $0f
-
-; RocketHideoutElevator_h map_id=203
-ROCKET_HIDEOUT_ELEVATOR_HEIGHT EQU $04
-ROCKET_HIDEOUT_ELEVATOR_WIDTH EQU $03
-
-; SilphCo2_h map_id=207
-SILPH_CO_2F_HEIGHT EQU $09
-SILPH_CO_2F_WIDTH EQU $0f
-
-; SilphCo3_h map_id=208
-SILPH_CO_3F_HEIGHT EQU $09
-SILPH_CO_3F_WIDTH EQU $0f
-
-; SilphCo4_h map_id=209
-SILPH_CO_4F_HEIGHT EQU $09
-SILPH_CO_4F_WIDTH EQU $0f
-
-; SilphCo5_h map_id=210
-SILPH_CO_5F_HEIGHT EQU $09
-SILPH_CO_5F_WIDTH EQU $0f
-
-; SilphCo6_h map_id=211
-SILPH_CO_6F_HEIGHT EQU $09
-SILPH_CO_6F_WIDTH EQU $0d
-
-; SilphCo7_h map_id=212
-SILPH_CO_7F_HEIGHT EQU $09
-SILPH_CO_7F_WIDTH EQU $0d
-
-; SilphCo8_h map_id=213
-SILPH_CO_8F_HEIGHT EQU $09
-SILPH_CO_8F_WIDTH EQU $0d
-
-; Mansion2_h map_id=214
-MANSION_2_HEIGHT EQU $0e
-MANSION_2_WIDTH EQU $0f
-
-; Mansion3_h map_id=215
-MANSION_3_HEIGHT EQU $09
-MANSION_3_WIDTH EQU $0f
-
-; Mansion4_h map_id=216
-MANSION_4_HEIGHT EQU $0e
-MANSION_4_WIDTH EQU $0f
-
-; SafariZoneEast_h map_id=217
-SAFARI_ZONE_EAST_HEIGHT EQU $0d
-SAFARI_ZONE_EAST_WIDTH EQU $0f
-
-; SafariZoneNorth_h map_id=218
-SAFARI_ZONE_NORTH_HEIGHT EQU $12
-SAFARI_ZONE_NORTH_WIDTH EQU $14
-
-; SafariZoneWest_h map_id=219
-SAFARI_ZONE_WEST_HEIGHT EQU $0d
-SAFARI_ZONE_WEST_WIDTH EQU $0f
-
-; SafariZoneCenter_h map_id=220
-SAFARI_ZONE_CENTER_HEIGHT EQU $0d
-SAFARI_ZONE_CENTER_WIDTH EQU $0f
-
-; SafariZoneRestHouse1_h map_id=221
-SAFARI_ZONE_REST_HOUSE_1_HEIGHT EQU $04
-SAFARI_ZONE_REST_HOUSE_1_WIDTH EQU $04
-
-; SafariZoneSecretHouse_h map_id=222
-SAFARI_ZONE_SECRET_HOUSE_HEIGHT EQU $04
-SAFARI_ZONE_SECRET_HOUSE_WIDTH EQU $04
-
-; SafariZoneRestHouse2_h map_id=223
-SAFARI_ZONE_REST_HOUSE_2_HEIGHT EQU $04
-SAFARI_ZONE_REST_HOUSE_2_WIDTH EQU $04
-
-; SafariZoneRestHouse3_h map_id=224
-SAFARI_ZONE_REST_HOUSE_3_HEIGHT EQU $04
-SAFARI_ZONE_REST_HOUSE_3_WIDTH EQU $04
-
-; SafariZoneRestHouse4_h map_id=225
-SAFARI_ZONE_REST_HOUSE_4_HEIGHT EQU $04
-SAFARI_ZONE_REST_HOUSE_4_WIDTH EQU $04
-
-; UnknownDungeon2_h map_id=226
-UNKNOWN_DUNGEON_2_HEIGHT EQU $09
-UNKNOWN_DUNGEON_2_WIDTH EQU $0f
-
-; UnknownDungeon3_h map_id=227
-UNKNOWN_DUNGEON_3_HEIGHT EQU $09
-UNKNOWN_DUNGEON_3_WIDTH EQU $0f
-
-; UnknownDungeon1_h map_id=228
-UNKNOWN_DUNGEON_1_HEIGHT EQU $09
-UNKNOWN_DUNGEON_1_WIDTH EQU $0f
-
-; NameRater_h map_id=229
-NAME_RATERS_HOUSE_HEIGHT EQU $04
-NAME_RATERS_HOUSE_WIDTH EQU $04
-
-; CeruleanHouse2_h map_id=230
-CERULEAN_HOUSE_2_HEIGHT EQU $04
-CERULEAN_HOUSE_2_WIDTH EQU $04
-
-; RockTunnel2_h map_id=232
-ROCK_TUNNEL_2_HEIGHT EQU $12
-ROCK_TUNNEL_2_WIDTH EQU $14
-
-; SilphCo9_h map_id=233
-SILPH_CO_9F_HEIGHT EQU $09
-SILPH_CO_9F_WIDTH EQU $0d
-
-; SilphCo10_h map_id=234
-SILPH_CO_10F_HEIGHT EQU $09
-SILPH_CO_10F_WIDTH EQU $08
-
-; SilphCo11_h map_id=235
-SILPH_CO_11F_HEIGHT EQU $09
-SILPH_CO_11F_WIDTH EQU $09
-
-; SilphCoElevator_h map_id=236
-SILPH_CO_ELEVATOR_HEIGHT EQU $02
-SILPH_CO_ELEVATOR_WIDTH EQU $02
-
-; BattleCenterM_h map_id=239
-BATTLE_CENTER_HEIGHT EQU $04
-BATTLE_CENTER_WIDTH EQU $05
-
-; TradeCenterM_h map_id=240
-TRADE_CENTER_HEIGHT EQU $04
-TRADE_CENTER_WIDTH EQU $05
-
-; Lorelei_h map_id=245
-LORELEIS_ROOM_HEIGHT EQU $06
-LORELEIS_ROOM_WIDTH EQU $05
-
-; Bruno_h map_id=246
-BRUNOS_ROOM_HEIGHT EQU $06
-BRUNOS_ROOM_WIDTH EQU $05
-
-; Agatha_h map_id=247
-AGATHAS_ROOM_HEIGHT EQU $06
-AGATHAS_ROOM_WIDTH EQU $05
-
-;1_channel EQU $00
-;2_channels EQU $40
-;3_channels EQU $80
-;4_channels EQU $C0
-
-CH0 EQU 0
-CH1 EQU 1
-CH2 EQU 2
-CH3 EQU 3
-CH4 EQU 4
-CH5 EQU 5
-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
-ENDM
-
-unknownsfx0x20: MACRO
- db $20 | \1
- db \2
- db \3
- db \4
-ENDM
-
-unknownnoise0x20: MACRO
- db $20 | \1
- db \2
- db \3
-ENDM
-
-;format: note pitch, length (in 16ths)
-note: MACRO
- db (\1 << 4) | (\2 - 1)
-ENDM
-
-;format: dnote length (in 16ths), instrument
-dnote: MACRO
- db $B0 | (\1 - 1)
- db \2
-ENDM
-
-;format: rest length (in 16ths)
-rest: MACRO
- db $C0 | (\1 - 1)
-ENDM
-
-; format: notetype speed, volume, fade
-notetype: MACRO
- db $D0 | \1
- db (\2 << 4) | \3
-ENDM
-
-dspeed: MACRO
- db $D0 | \1
-ENDM
-
-octave: MACRO
- db $E8 - \1
-ENDM
-
-togglecall: MACRO
- db $E8
-ENDM
-
-;format: vibrato delay, rate, depth
-vibrato: MACRO
- db $EA
- db \1
- db (\2 << 4) | \3
-ENDM
-
-pitchbend: MACRO
- db $EB
- db \1
- db \2
-ENDM
-
-duty: MACRO
- db $EC
- db \1
-ENDM
-
-tempo: MACRO
- db $ED
- db \1
- db \2
-ENDM
-
-unknownmusic0xee: MACRO
- db $EE
- db \1
-ENDM
-
-stereopanning: MACRO
- db $F0
- db \1
-ENDM
-
-executemusic: MACRO
- db $F8
-ENDM
-
-dutycycle: MACRO
- db $FC
- db \1
-ENDM
-
-;format: callchannel address
-;callchannel: MACRO
-; db $FD
-; dw \1
-;ENDM
-
-;format: loopchannel count, address
-;loopchannel: MACRO
-; db $FE
-; db \1
-; dw \2
-;ENDM
-
-endchannel: MACRO
- db $FF
-ENDM
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
new file mode 100644
index 00000000..e67f0d79
--- /dev/null
+++ b/constants/item_constants.asm
@@ -0,0 +1,140 @@
+MASTER_BALL EQU $01
+ULTRA_BALL EQU $02
+GREAT_BALL EQU $03
+POKE_BALL EQU $04
+TOWN_MAP EQU $05
+BICYCLE EQU $06
+SURFBOARD EQU $07 ; buggy?
+SAFARI_BALL EQU $08
+POKEDEX EQU $09
+MOON_STONE EQU $0A
+ANTIDOTE EQU $0B
+BURN_HEAL EQU $0C
+ICE_HEAL EQU $0D
+AWAKENING EQU $0E
+PARLYZ_HEAL EQU $0F
+FULL_RESTORE EQU $10
+MAX_POTION EQU $11
+HYPER_POTION EQU $12
+SUPER_POTION EQU $13
+POTION EQU $14
+BOULDERBADGE EQU $15
+CASCADEBADGE EQU $16
+THUNDERBADGE EQU $17
+RAINBOWBADGE EQU $18
+SOULBADGE EQU $19
+MARSHBADGE EQU $1A
+VOLCANOBADGE EQU $1B
+EARTHBADGE EQU $1C
+ESCAPE_ROPE EQU $1D
+REPEL EQU $1E
+OLD_AMBER EQU $1F
+FIRE_STONE EQU $20
+THUNDER_STONE EQU $21
+WATER_STONE EQU $22
+HP_UP EQU $23
+PROTEIN EQU $24
+IRON EQU $25
+CARBOS EQU $26
+CALCIUM EQU $27
+RARE_CANDY EQU $28
+DOME_FOSSIL EQU $29
+HELIX_FOSSIL EQU $2A
+SECRET_KEY EQU $2B
+; XXX ????? EQU $2C
+BIKE_VOUCHER EQU $2D
+X_ACCURACY EQU $2E
+LEAF_STONE EQU $2F
+CARD_KEY EQU $30
+NUGGET EQU $31
+;PP_UP EQU $32
+POKE_DOLL EQU $33
+FULL_HEAL EQU $34
+REVIVE EQU $35
+MAX_REVIVE EQU $36
+GUARD_SPEC_ EQU $37
+SUPER_REPEL EQU $38
+MAX_REPEL EQU $39
+DIRE_HIT EQU $3A
+COIN EQU $3B
+FRESH_WATER EQU $3C
+SODA_POP EQU $3D
+LEMONADE EQU $3E
+S_S__TICKET EQU $3F
+GOLD_TEETH EQU $40
+X_ATTACK EQU $41
+X_DEFEND EQU $42
+X_SPEED EQU $43
+X_SPECIAL EQU $44
+COIN_CASE EQU $45
+OAKS_PARCEL EQU $46
+ITEMFINDER EQU $47
+SILPH_SCOPE EQU $48
+POKE_FLUTE EQU $49
+LIFT_KEY EQU $4A
+EXP__ALL EQU $4B
+OLD_ROD EQU $4C
+GOOD_ROD EQU $4D
+SUPER_ROD EQU $4E
+; XXX todo: compare this to $32
+PP_UP EQU $4F
+ETHER EQU $50
+MAX_ETHER EQU $51
+ELIXER EQU $52
+MAX_ELIXER EQU $53
+HM_01 EQU $C4
+HM_02 EQU $C5
+HM_03 EQU $C6
+HM_04 EQU $C7
+HM_05 EQU $C8
+TM_01 EQU $C9
+TM_02 EQU $CA
+TM_03 EQU $CB
+TM_04 EQU $CC
+TM_05 EQU $CD
+TM_06 EQU $CE
+TM_07 EQU $CF
+TM_08 EQU $D0
+TM_09 EQU $D1
+TM_10 EQU $D2
+TM_11 EQU $D3
+TM_12 EQU $D4
+TM_13 EQU $D5
+TM_14 EQU $D6
+TM_15 EQU $D7
+TM_16 EQU $D8
+TM_17 EQU $D9
+TM_18 EQU $DA
+TM_19 EQU $DB
+TM_20 EQU $DC
+TM_21 EQU $DD
+TM_22 EQU $DE
+TM_23 EQU $DF
+TM_24 EQU $E0
+TM_25 EQU $E1
+TM_26 EQU $E2
+TM_27 EQU $E3
+TM_28 EQU $E4
+TM_29 EQU $E5
+TM_30 EQU $E6
+TM_31 EQU $E7
+TM_32 EQU $E8
+TM_33 EQU $E9
+TM_34 EQU $EA
+TM_35 EQU $EB
+TM_36 EQU $EC
+TM_37 EQU $ED
+TM_38 EQU $EE
+TM_39 EQU $EF
+TM_40 EQU $F0
+TM_41 EQU $F1
+TM_42 EQU $F2
+TM_43 EQU $F3
+TM_44 EQU $F4
+TM_45 EQU $F5
+TM_46 EQU $F6
+TM_47 EQU $F7
+TM_48 EQU $F8
+TM_49 EQU $F9
+TM_50 EQU $FA
+
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
new file mode 100644
index 00000000..ec1c0822
--- /dev/null
+++ b/constants/map_constants.asm
@@ -0,0 +1,250 @@
+PALLET_TOWN EQU $00
+VIRIDIAN_CITY EQU $01
+PEWTER_CITY EQU $02
+CERULEAN_CITY EQU $03
+LAVENDER_TOWN EQU $04
+VERMILION_CITY EQU $05
+CELADON_CITY EQU $06
+FUCHSIA_CITY EQU $07
+CINNABAR_ISLAND EQU $08
+INDIGO_PLATEAU EQU $09
+SAFFRON_CITY EQU $0A
+; unused EQU $0B
+ROUTE_1 EQU $0C
+ROUTE_2 EQU $0D
+ROUTE_3 EQU $0E
+ROUTE_4 EQU $0F
+ROUTE_5 EQU $10
+ROUTE_6 EQU $11
+ROUTE_7 EQU $12
+ROUTE_8 EQU $13
+ROUTE_9 EQU $14
+ROUTE_10 EQU $15
+ROUTE_11 EQU $16
+ROUTE_12 EQU $17
+ROUTE_13 EQU $18
+ROUTE_14 EQU $19
+ROUTE_15 EQU $1A
+ROUTE_16 EQU $1B
+ROUTE_17 EQU $1C
+ROUTE_18 EQU $1D
+ROUTE_19 EQU $1E
+ROUTE_20 EQU $1F
+ROUTE_21 EQU $20
+ROUTE_22 EQU $21
+ROUTE_23 EQU $22
+ROUTE_24 EQU $23
+ROUTE_25 EQU $24
+REDS_HOUSE_1F EQU $25
+REDS_HOUSE_2F EQU $26
+BLUES_HOUSE EQU $27
+OAKS_LAB EQU $28
+VIRIDIAN_POKECENTER EQU $29
+VIRIDIAN_MART EQU $2A
+VIRIDIAN_SCHOOL EQU $2B
+VIRIDIAN_HOUSE EQU $2C
+VIRIDIAN_GYM EQU $2D
+DIGLETTS_CAVE_EXIT EQU $2E
+VIRIDIAN_FOREST_EXIT EQU $2F
+ROUTE_2_HOUSE EQU $30
+ROUTE_2_GATE EQU $31
+VIRIDIAN_FOREST_ENTRANCE EQU $32
+VIRIDIAN_FOREST EQU $33
+MUSEUM_1F EQU $34
+MUSEUM_2F EQU $35
+PEWTER_GYM EQU $36
+PEWTER_HOUSE_1 EQU $37
+PEWTER_MART EQU $38
+PEWTER_HOUSE_2 EQU $39
+PEWTER_POKECENTER EQU $3A
+MT_MOON_1 EQU $3B
+MT_MOON_2 EQU $3C
+MT_MOON_3 EQU $3D
+TRASHED_HOUSE EQU $3E
+CERULEAN_HOUSE EQU $3F
+CERULEAN_POKECENTER EQU $40
+CERULEAN_GYM EQU $41
+BIKE_SHOP EQU $42
+CERULEAN_MART EQU $43
+MT_MOON_POKECENTER EQU $44
+;copy of TRASHED_HOUSE EQU $45
+ROUTE_5_GATE EQU $46
+PATH_ENTRANCE_ROUTE_5 EQU $47
+DAYCAREM EQU $48
+ROUTE_6_GATE EQU $49
+PATH_ENTRANCE_ROUTE_6 EQU $4A
+;copy of PATH_ENTRANCE_ROUTE_6 EQU $4B
+ROUTE_7_GATE EQU $4C
+PATH_ENTRANCE_ROUTE_7 EQU $4D
+;copy of PATH_ENTRANCE_ROUTE_7 EQU $4E
+ROUTE_8_GATE EQU $4F
+PATH_ENTRANCE_ROUTE_8 EQU $50
+ROCK_TUNNEL_POKECENTER EQU $51
+ROCK_TUNNEL_1 EQU $52
+POWER_PLANT EQU $53
+ROUTE_11_GATE_1F EQU $54
+DIGLETTS_CAVE_ENTRANCE EQU $55
+ROUTE_11_GATE_2F EQU $56
+ROUTE_12_GATE EQU $57
+BILLS_HOUSE EQU $58
+VERMILION_POKECENTER EQU $59
+POKEMON_FAN_CLUB EQU $5A
+VERMILION_MART EQU $5B
+VERMILION_GYM EQU $5C
+VERMILION_HOUSE_1 EQU $5D
+VERMILION_DOCK EQU $5E
+SS_ANNE_1 EQU $5F
+SS_ANNE_2 EQU $60
+SS_ANNE_3 EQU $61
+SS_ANNE_4 EQU $62
+SS_ANNE_5 EQU $63
+SS_ANNE_6 EQU $64
+SS_ANNE_7 EQU $65
+SS_ANNE_8 EQU $66
+SS_ANNE_9 EQU $67
+SS_ANNE_10 EQU $68
+;EQU $69
+;EQU $6A
+;EQU $6B
+VICTORY_ROAD_1 EQU $6C
+;EQU $6D
+;EQU $6E
+;EQU $6F
+;EQU $70
+LANCES_ROOM EQU $71
+;EQU $72
+;EQU $73
+;EQU $74
+;EQU $75
+HALL_OF_FAME EQU $76
+UNDERGROUND_PATH_NS EQU $77
+CHAMPIONS_ROOM EQU $78
+UNDERGROUND_PATH_WE EQU $79
+CELADON_MART_1 EQU $7A
+CELADON_MART_2 EQU $7B
+CELADON_MART_3 EQU $7C
+CELADON_MART_4 EQU $7D
+CELADON_MART_ROOF EQU $7E
+CELADON_MART_ELEVATOR EQU $7F
+CELADON_MANSION_1 EQU $80
+CELADON_MANSION_2 EQU $81
+CELADON_MANSION_3 EQU $82
+CELADON_MANSION_4 EQU $83
+CELADON_MANSION_5 EQU $84
+CELADON_POKECENTER EQU $85
+CELADON_GYM EQU $86
+GAME_CORNER EQU $87
+CELADON_MART_5 EQU $88
+CELADONPRIZE_ROOM EQU $89
+CELADON_DINER EQU $8A
+CELADON_HOUSE EQU $8B
+CELADON_HOTEL EQU $8C
+LAVENDER_POKECENTER EQU $8D
+POKEMONTOWER_1 EQU $8E
+POKEMONTOWER_2 EQU $8F
+POKEMONTOWER_3 EQU $90
+POKEMONTOWER_4 EQU $91
+POKEMONTOWER_5 EQU $92
+POKEMONTOWER_6 EQU $93
+POKEMONTOWER_7 EQU $94
+LAVENDER_HOUSE_1 EQU $95
+LAVENDER_MART EQU $96
+LAVENDER_HOUSE_2 EQU $97
+FUCHSIA_MART EQU $98
+FUCHSIA_HOUSE_1 EQU $99
+FUCHSIA_POKECENTER EQU $9A
+FUCHSIA_HOUSE_2 EQU $9B
+SAFARIZONEENTRANCE EQU $9C
+FUCHSIA_GYM EQU $9D
+FUCHSIAMEETINGROOM EQU $9E
+SEAFOAM_ISLANDS_2 EQU $9F
+SEAFOAM_ISLANDS_3 EQU $A0
+SEAFOAM_ISLANDS_4 EQU $A1
+SEAFOAM_ISLANDS_5 EQU $A2
+VERMILION_HOUSE_2 EQU $A3
+FUCHSIA_HOUSE_3 EQU $A4
+MANSION_1 EQU $A5
+CINNABAR_GYM EQU $A6
+CINNABAR_LAB_1 EQU $A7
+CINNABAR_LAB_2 EQU $A8
+CINNABAR_LAB_3 EQU $A9
+CINNABAR_LAB_4 EQU $AA
+CINNABAR_POKECENTER EQU $AB
+CINNABAR_MART EQU $AC
+;copy of CINNABAR_MART EQU $AD
+INDIGO_PLATEAU_LOBBY EQU $AE
+COPYCATS_HOUSE_1F EQU $AF
+COPYCATS_HOUSE_2F EQU $B0
+FIGHTINGDOJO EQU $B1
+SAFFRON_GYM EQU $B2
+SAFFRON_HOUSE_1 EQU $B3
+SAFFRON_MART EQU $B4
+SILPH_CO_1F EQU $B5
+SAFFRON_POKECENTER EQU $B6
+SAFFRON_HOUSE_2 EQU $B7
+ROUTE_15_GATE_1F EQU $B8
+ROUTE_15_GATE_2F EQU $B9
+ROUTE_16_GATE_1F EQU $BA
+ROUTE_16_GATE_2F EQU $BB
+ROUTE_16_HOUSE EQU $BC
+ROUTE_12_HOUSE EQU $BD
+ROUTE_18_GATE_1F EQU $BE
+ROUTE_18_GATE_2F EQU $BF
+SEAFOAM_ISLANDS_1 EQU $C0
+ROUTE_22_GATE EQU $C1
+VICTORY_ROAD_2 EQU $C2
+ROUTE_12_GATE_2F EQU $C3
+VERMILION_HOUSE_3 EQU $C4
+DIGLETTS_CAVE EQU $C5
+VICTORY_ROAD_3 EQU $C6
+ROCKET_HIDEOUT_1 EQU $C7
+ROCKET_HIDEOUT_2 EQU $C8
+ROCKET_HIDEOUT_3 EQU $C9
+ROCKET_HIDEOUT_4 EQU $CA
+ROCKET_HIDEOUT_ELEVATOR EQU $CB
+;EQU $CC
+;EQU $CD
+;EQU $CE
+SILPH_CO_2F EQU $CF
+SILPH_CO_3F EQU $D0
+SILPH_CO_4F EQU $D1
+SILPH_CO_5F EQU $D2
+SILPH_CO_6F EQU $D3
+SILPH_CO_7F EQU $D4
+SILPH_CO_8F EQU $D5
+MANSION_2 EQU $D6
+MANSION_3 EQU $D7
+MANSION_4 EQU $D8
+SAFARI_ZONE_EAST EQU $D9
+SAFARI_ZONE_NORTH EQU $DA
+SAFARI_ZONE_WEST EQU $DB
+SAFARI_ZONE_CENTER EQU $DC
+SAFARI_ZONE_REST_HOUSE_1 EQU $DD
+SAFARI_ZONE_SECRET_HOUSE EQU $DE
+SAFARI_ZONE_REST_HOUSE_2 EQU $DF
+SAFARI_ZONE_REST_HOUSE_3 EQU $E0
+SAFARI_ZONE_REST_HOUSE_4 EQU $E1
+UNKNOWN_DUNGEON_2 EQU $E2
+UNKNOWN_DUNGEON_3 EQU $E3
+UNKNOWN_DUNGEON_1 EQU $E4
+NAME_RATERS_HOUSE EQU $E5
+CERULEAN_HOUSE_3 EQU $E6
+;EQU $E7
+ROCK_TUNNEL_2 EQU $E8
+SILPH_CO_9F EQU $E9
+SILPH_CO_10F EQU $EA
+SILPH_CO_11F EQU $EB
+SILPH_CO_ELEVATOR EQU $EC
+;EQU $ED
+;EQU $EE
+BATTLE_CENTER EQU $EF
+TRADE_CENTER EQU $F0
+;EQU $F1
+;EQU $F2
+;EQU $F3
+;EQU $F4
+LORELEIS_ROOM EQU $F5
+BRUNOS_ROOM EQU $F6
+AGATHAS_ROOM EQU $F7
+BEACH_HOUSE EQU $F8 ; Yellow only
+
diff --git a/constants/map_dimensions.asm b/constants/map_dimensions.asm
new file mode 100644
index 00000000..30e393e4
--- /dev/null
+++ b/constants/map_dimensions.asm
@@ -0,0 +1,890 @@
+; Map sizes (y, x)
+
+; PalletTown_h map_id=0
+PALLET_TOWN_HEIGHT EQU $09
+PALLET_TOWN_WIDTH EQU $0a
+
+; ViridianCity_h map_id=1
+VIRIDIAN_CITY_HEIGHT EQU $12
+VIRIDIAN_CITY_WIDTH EQU $14
+
+; PewterCity_h map_id=2
+PEWTER_CITY_HEIGHT EQU $12
+PEWTER_CITY_WIDTH EQU $14
+
+; CeruleanCity_h map_id=3
+CERULEAN_CITY_HEIGHT EQU $12
+CERULEAN_CITY_WIDTH EQU $14
+
+; LavenderTown_h map_id=4
+LAVENDER_TOWN_HEIGHT EQU $09
+LAVENDER_TOWN_WIDTH EQU $0a
+
+; VermilionCity_h map_id=5
+VERMILION_CITY_HEIGHT EQU $12
+VERMILION_CITY_WIDTH EQU $14
+
+; CeladonCity_h map_id=6
+CELADON_CITY_HEIGHT EQU $12
+CELADON_CITY_WIDTH EQU $19
+
+; FuchsiaCity_h map_id=7
+FUCHSIA_CITY_HEIGHT EQU $12
+FUCHSIA_CITY_WIDTH EQU $14
+
+; CinnabarIsland_h map_id=8
+CINNABAR_ISLAND_HEIGHT EQU $09
+CINNABAR_ISLAND_WIDTH EQU $0a
+
+; IndigoPlateau_h map_id=9
+INDIGO_PLATEAU_HEIGHT EQU $09
+INDIGO_PLATEAU_WIDTH EQU $0a
+
+; SaffronCity_h map_id=10
+SAFFRON_CITY_HEIGHT EQU $12
+SAFFRON_CITY_WIDTH EQU $14
+
+; Route1_h map_id=12
+ROUTE_1_HEIGHT EQU $12
+ROUTE_1_WIDTH EQU $0a
+
+; Route2_h map_id=13
+ROUTE_2_HEIGHT EQU $24
+ROUTE_2_WIDTH EQU $0a
+
+; Route3_h map_id=14
+ROUTE_3_HEIGHT EQU $09
+ROUTE_3_WIDTH EQU $23
+
+; Route4_h map_id=15
+ROUTE_4_HEIGHT EQU $09
+ROUTE_4_WIDTH EQU $2d
+
+; Route5_h map_id=16
+ROUTE_5_HEIGHT EQU $12
+ROUTE_5_WIDTH EQU $0a
+
+; Route6_h map_id=17
+ROUTE_6_HEIGHT EQU $12
+ROUTE_6_WIDTH EQU $0a
+
+; Route7_h map_id=18
+ROUTE_7_HEIGHT EQU $09
+ROUTE_7_WIDTH EQU $0a
+
+; Route8_h map_id=19
+ROUTE_8_HEIGHT EQU $09
+ROUTE_8_WIDTH EQU $1e
+
+; Route9_h map_id=20
+ROUTE_9_HEIGHT EQU $09
+ROUTE_9_WIDTH EQU $1e
+
+; Route10_h map_id=21
+ROUTE_10_HEIGHT EQU $24
+ROUTE_10_WIDTH EQU $0a
+
+; Route11_h map_id=22
+ROUTE_11_HEIGHT EQU $09
+ROUTE_11_WIDTH EQU $1e
+
+; Route12_h map_id=23
+ROUTE_12_HEIGHT EQU $36
+ROUTE_12_WIDTH EQU $0a
+
+; Route13_h map_id=24
+ROUTE_13_HEIGHT EQU $09
+ROUTE_13_WIDTH EQU $1e
+
+; Route14_h map_id=25
+ROUTE_14_HEIGHT EQU $1b
+ROUTE_14_WIDTH EQU $0a
+
+; Route15_h map_id=26
+ROUTE_15_HEIGHT EQU $09
+ROUTE_15_WIDTH EQU $1e
+
+; Route16_h map_id=27
+ROUTE_16_HEIGHT EQU $09
+ROUTE_16_WIDTH EQU $14
+
+; Route17_h map_id=28
+ROUTE_17_HEIGHT EQU $48
+ROUTE_17_WIDTH EQU $0a
+
+; Route18_h map_id=29
+ROUTE_18_HEIGHT EQU $09
+ROUTE_18_WIDTH EQU $19
+
+; Route19_h map_id=30
+ROUTE_19_HEIGHT EQU $1b
+ROUTE_19_WIDTH EQU $0a
+
+; Route20_h map_id=31
+ROUTE_20_HEIGHT EQU $09
+ROUTE_20_WIDTH EQU $32
+
+; Route21_h map_id=32
+ROUTE_21_HEIGHT EQU $2d
+ROUTE_21_WIDTH EQU $0a
+
+; Route22_h map_id=33
+ROUTE_22_HEIGHT EQU $09
+ROUTE_22_WIDTH EQU $14
+
+; Route23_h map_id=34
+ROUTE_23_HEIGHT EQU $48
+ROUTE_23_WIDTH EQU $0a
+
+; Route24_h map_id=35
+ROUTE_24_HEIGHT EQU $12
+ROUTE_24_WIDTH EQU $0a
+
+; Route25_h map_id=36
+ROUTE_25_HEIGHT EQU $09
+ROUTE_25_WIDTH EQU $1e
+
+; RedsHouse1F_h map_id=37
+REDS_HOUSE_1F_HEIGHT EQU $04
+REDS_HOUSE_1F_WIDTH EQU $04
+
+; RedsHouse2F_h map_id=38
+REDS_HOUSE_2F_HEIGHT EQU $04
+REDS_HOUSE_2F_WIDTH EQU $04
+
+; BluesHouse_h map_id=39
+BLUES_HOUSE_HEIGHT EQU $04
+BLUES_HOUSE_WIDTH EQU $04
+
+; OaksLab_h map_id=40
+OAKS_LAB_HEIGHT EQU $06
+OAKS_LAB_WIDTH EQU $05
+
+; ViridianPokeCenter_h map_id=41
+VIRIDIAN_POKECENTER_HEIGHT EQU $04
+VIRIDIAN_POKECENTER_WIDTH EQU $07
+
+; ViridianMart_h map_id=42
+VIRIDIAN_MART_HEIGHT EQU $04
+VIRIDIAN_MART_WIDTH EQU $04
+
+; School_h map_id=43
+VIRIDIAN_SCHOOL_HEIGHT EQU $04
+VIRIDIAN_SCHOOL_WIDTH EQU $04
+
+; ViridianHouse_h map_id=44
+VIRIDIAN_HOUSE_HEIGHT EQU $04
+VIRIDIAN_HOUSE_WIDTH EQU $04
+
+; ViridianGym_h map_id=45
+VIRIDIAN_GYM_HEIGHT EQU $09
+VIRIDIAN_GYM_WIDTH EQU $0a
+
+; DiglettsCaveRoute2_h map_id=46
+DIGLETTS_CAVE_EXIT_HEIGHT EQU $04
+DIGLETTS_CAVE_EXIT_WIDTH EQU $04
+
+; ViridianForestexit_h map_id=47
+VIRIDIAN_FOREST_EXIT_HEIGHT EQU $04
+VIRIDIAN_FOREST_EXIT_WIDTH EQU $05
+
+; Route2House_h map_id=48
+ROUTE_2_HOUSE_HEIGHT EQU $04
+ROUTE_2_HOUSE_WIDTH EQU $04
+
+; Route2Gate_h map_id=49
+ROUTE_2_GATE_HEIGHT EQU $04
+ROUTE_2_GATE_WIDTH EQU $05
+
+; ViridianForestEntrance_h map_id=50
+VIRIDIAN_FOREST_ENTRANCE_HEIGHT EQU $04
+VIRIDIAN_FOREST_ENTRANCE_WIDTH EQU $05
+
+; ViridianForest_h map_id=51
+VIRIDIAN_FOREST_HEIGHT EQU $18
+VIRIDIAN_FOREST_WIDTH EQU $11
+
+; MuseumF1_h map_id=52
+MUSEUM_1F_HEIGHT EQU $04
+MUSEUM_1F_WIDTH EQU $0a
+
+; MuseumF2_h map_id=53
+MUSEUM_2F_HEIGHT EQU $04
+MUSEUM_2F_WIDTH EQU $07
+
+; PewterGym_h map_id=54
+PEWTER_GYM_HEIGHT EQU $07
+PEWTER_GYM_WIDTH EQU $05
+
+; PewterHouse1_h map_id=55
+PEWTER_HOUSE_1_HEIGHT EQU $04
+PEWTER_HOUSE_1_WIDTH EQU $04
+
+; PewterMart_h map_id=56
+PEWTER_MART_HEIGHT EQU $04
+PEWTER_MART_WIDTH EQU $04
+
+; PewterHouse2_h map_id=57
+PEWTER_HOUSE_2_HEIGHT EQU $04
+PEWTER_HOUSE_2_WIDTH EQU $04
+
+; PewterPokecenter_h map_id=58
+PEWTER_POKECENTER_HEIGHT EQU $04
+PEWTER_POKECENTER_WIDTH EQU $07
+
+; MtMoon1_h map_id=59
+MT_MOON_1_HEIGHT EQU $12
+MT_MOON_1_WIDTH EQU $14
+
+; MtMoon2_h map_id=60
+MT_MOON_2_HEIGHT EQU $0e
+MT_MOON_2_WIDTH EQU $0e
+
+; MtMoon3_h map_id=61
+MT_MOON_3_HEIGHT EQU $12
+MT_MOON_3_WIDTH EQU $14
+
+; CeruleanHouseTrashed_h map_id=62
+TRASHED_HOUSE_HEIGHT EQU $04
+TRASHED_HOUSE_WIDTH EQU $04
+
+; CeruleanHouse_h map_id=63
+CERULEAN_HOUSE_HEIGHT EQU $04
+CERULEAN_HOUSE_WIDTH EQU $04
+
+; CeruleanPokecenter_h map_id=64
+CERULEAN_POKECENTER_HEIGHT EQU $04
+CERULEAN_POKECENTER_WIDTH EQU $07
+
+; CeruleanGym_h map_id=65
+CERULEAN_GYM_HEIGHT EQU $07
+CERULEAN_GYM_WIDTH EQU $05
+
+; BikeShop_h map_id=66
+BIKE_SHOP_HEIGHT EQU $04
+BIKE_SHOP_WIDTH EQU $04
+
+; CeruleanMart_h map_id=67
+CERULEAN_MART_HEIGHT EQU $04
+CERULEAN_MART_WIDTH EQU $04
+
+; MtMoonPokecenter_h map_id=68
+MT_MOON_POKECENTER_HEIGHT EQU $04
+MT_MOON_POKECENTER_WIDTH EQU $07
+
+; Route5Gate_h map_id=70
+ROUTE_5_GATE_HEIGHT EQU $03
+ROUTE_5_GATE_WIDTH EQU $04
+
+; UndergroundTunnelEntranceRoute5_h map_id=71
+PATH_ENTRANCE_ROUTE_5_HEIGHT EQU $04
+PATH_ENTRANCE_ROUTE_5_WIDTH EQU $04
+
+; DayCareM_h map_id=72
+DAYCAREM_HEIGHT EQU $04
+DAYCAREM_WIDTH EQU $04
+
+; Route6Gate_h map_id=73
+ROUTE_6_GATE_HEIGHT EQU $03
+ROUTE_6_GATE_WIDTH EQU $04
+
+; UndergroundTunnelEntranceRoute6_h map_id=74
+PATH_ENTRANCE_ROUTE_6_HEIGHT EQU $04
+PATH_ENTRANCE_ROUTE_6_WIDTH EQU $04
+
+; Route7Gate_h map_id=76
+ROUTE_7_GATE_HEIGHT EQU $04
+ROUTE_7_GATE_WIDTH EQU $03
+
+; UndergroundPathEntranceRoute7_h map_id=77
+PATH_ENTRANCE_ROUTE_7_HEIGHT EQU $04
+PATH_ENTRANCE_ROUTE_7_WIDTH EQU $04
+
+; Route8Gate_h map_id=79
+ROUTE_8_GATE_HEIGHT EQU $04
+ROUTE_8_GATE_WIDTH EQU $03
+
+; UndergroundPathEntranceRoute8_h map_id=80
+PATH_ENTRANCE_ROUTE_8_HEIGHT EQU $04
+PATH_ENTRANCE_ROUTE_8_WIDTH EQU $04
+
+; RockTunnelPokecenter_h map_id=81
+ROCK_TUNNEL_POKECENTER_HEIGHT EQU $04
+ROCK_TUNNEL_POKECENTER_WIDTH EQU $07
+
+; RockTunnel1_h map_id=82
+ROCK_TUNNEL_1_HEIGHT EQU $12
+ROCK_TUNNEL_1_WIDTH EQU $14
+
+; PowerPlant_h map_id=83
+POWER_PLANT_HEIGHT EQU $12
+POWER_PLANT_WIDTH EQU $14
+
+; Route11Gate_h map_id=84
+ROUTE_11_GATE_1F_HEIGHT EQU $05
+ROUTE_11_GATE_1F_WIDTH EQU $04
+
+; DiglettsCaveEntranceRoute11_h map_id=85
+DIGLETTS_CAVE_ENTRANCE_HEIGHT EQU $04
+DIGLETTS_CAVE_ENTRANCE_WIDTH EQU $04
+
+; Route11GateUpstairs_h map_id=86
+ROUTE_11_GATE_2F_HEIGHT EQU $04
+ROUTE_11_GATE_2F_WIDTH EQU $04
+
+; Route12Gate_h map_id=87
+ROUTE_12_GATE_HEIGHT EQU $04
+ROUTE_12_GATE_WIDTH EQU $05
+
+; BillsHouse_h map_id=88
+BILLS_HOUSE_HEIGHT EQU $04
+BILLS_HOUSE_WIDTH EQU $04
+
+; VermilionPokecenter_h map_id=89
+VERMILION_POKECENTER_HEIGHT EQU $04
+VERMILION_POKECENTER_WIDTH EQU $07
+
+; FanClub_h map_id=90
+POKEMON_FAN_CLUB_HEIGHT EQU $04
+POKEMON_FAN_CLUB_WIDTH EQU $04
+
+; VermilionMart_h map_id=91
+VERMILION_MART_HEIGHT EQU $04
+VERMILION_MART_WIDTH EQU $04
+
+; VermilionGym_h map_id=92
+VERMILION_GYM_HEIGHT EQU $09
+VERMILION_GYM_WIDTH EQU $05
+
+; VermilionHouse1_h map_id=93
+VERMILION_HOUSE_1_HEIGHT EQU $04
+VERMILION_HOUSE_1_WIDTH EQU $04
+
+; VermilionDock_h map_id=94
+VERMILION_DOCK_HEIGHT EQU $06
+VERMILION_DOCK_WIDTH EQU $0e
+
+; SSAnne1_h map_id=95
+SS_ANNE_1_HEIGHT EQU $09
+SS_ANNE_1_WIDTH EQU $14
+
+; SSAnne2_h map_id=96
+SS_ANNE_2_HEIGHT EQU $09
+SS_ANNE_2_WIDTH EQU $14
+
+; SSAnne3_h map_id=97
+SS_ANNE_3_HEIGHT EQU $03
+SS_ANNE_3_WIDTH EQU $0a
+
+; SSAnne4_h map_id=98
+SS_ANNE_4_HEIGHT EQU $04
+SS_ANNE_4_WIDTH EQU $0f
+
+; SSAnne5_h map_id=99
+SS_ANNE_5_HEIGHT EQU $07
+SS_ANNE_5_WIDTH EQU $0a
+
+; SSAnne6_h map_id=100
+SS_ANNE_6_HEIGHT EQU $08
+SS_ANNE_6_WIDTH EQU $07
+
+; SSAnne7_h map_id=101
+SS_ANNE_7_HEIGHT EQU $04
+SS_ANNE_7_WIDTH EQU $03
+
+; SSAnne8_h map_id=102
+SS_ANNE_8_HEIGHT EQU $08
+SS_ANNE_8_WIDTH EQU $0c
+
+; SSAnne9_h map_id=103
+SS_ANNE_9_HEIGHT EQU $08
+SS_ANNE_9_WIDTH EQU $0c
+
+; SSAnne10_h map_id=104
+SS_ANNE_10_HEIGHT EQU $08
+SS_ANNE_10_WIDTH EQU $0c
+
+; VictoryRoad1_h map_id=108
+VICTORY_ROAD_1_HEIGHT EQU $09
+VICTORY_ROAD_1_WIDTH EQU $0a
+
+; Lance_h map_id=113
+LANCES_ROOM_HEIGHT EQU $0d
+LANCES_ROOM_WIDTH EQU $0d
+
+; HallofFameRoom_h map_id=118
+HALL_OF_FAME_HEIGHT EQU $04
+HALL_OF_FAME_WIDTH EQU $05
+
+; UndergroundPathNS_h map_id=119
+UNDERGROUND_PATH_NS_HEIGHT EQU $18
+UNDERGROUND_PATH_NS_WIDTH EQU $04
+
+; Gary_h map_id=120
+CHAMPIONS_ROOM_HEIGHT EQU $04
+CHAMPIONS_ROOM_WIDTH EQU $04
+
+; UndergroundPathWE_h map_id=121
+UNDERGROUND_PATH_WE_HEIGHT EQU $04
+UNDERGROUND_PATH_WE_WIDTH EQU $19
+
+; CeladonMart1_h map_id=122
+CELADON_MART_1_HEIGHT EQU $04
+CELADON_MART_1_WIDTH EQU $0a
+
+; CeladonMart2_h map_id=123
+CELADON_MART_2_HEIGHT EQU $04
+CELADON_MART_2_WIDTH EQU $0a
+
+; CeladonMart3_h map_id=124
+CELADON_MART_3_HEIGHT EQU $04
+CELADON_MART_3_WIDTH EQU $0a
+
+; CeladonMart4_h map_id=125
+CELADON_MART_4_HEIGHT EQU $04
+CELADON_MART_4_WIDTH EQU $0a
+
+; CeladonMartRoof_h map_id=126
+CELADON_MART_ROOF_HEIGHT EQU $04
+CELADON_MART_ROOF_WIDTH EQU $0a
+
+; CeladonMartElevator_h map_id=127
+CELADON_MART_ELEVATOR_HEIGHT EQU $02
+CELADON_MART_ELEVATOR_WIDTH EQU $02
+
+; CeladonMansion1_h map_id=128
+CELADON_MANSION_1_HEIGHT EQU $06
+CELADON_MANSION_1_WIDTH EQU $04
+
+; CeladonMansion2_h map_id=129
+CELADON_MANSION_2_HEIGHT EQU $06
+CELADON_MANSION_2_WIDTH EQU $04
+
+; CeladonMansion3_h map_id=130
+CELADON_MANSION_3_HEIGHT EQU $06
+CELADON_MANSION_3_WIDTH EQU $04
+
+; CeladonMansion4_h map_id=131
+CELADON_MANSION_4_HEIGHT EQU $06
+CELADON_MANSION_4_WIDTH EQU $04
+
+; CeladonMansion5_h map_id=132
+CELADON_MANSION_5_HEIGHT EQU $04
+CELADON_MANSION_5_WIDTH EQU $04
+
+; CeladonPokecenter_h map_id=133
+CELADON_POKECENTER_HEIGHT EQU $04
+CELADON_POKECENTER_WIDTH EQU $07
+
+; CeladonGym_h map_id=134
+CELADON_GYM_HEIGHT EQU $09
+CELADON_GYM_WIDTH EQU $05
+
+; CeladonGameCorner_h map_id=135
+GAME_CORNER_HEIGHT EQU $09
+GAME_CORNER_WIDTH EQU $0a
+
+; CeladonMart5_h map_id=136
+CELADON_MART_5_HEIGHT EQU $04
+CELADON_MART_5_WIDTH EQU $0a
+
+; CeladonPrizeRoom_h map_id=137
+CELADONPRIZE_ROOM_HEIGHT EQU $04
+CELADONPRIZE_ROOM_WIDTH EQU $05
+
+; CeladonDiner_h map_id=138
+CELADON_DINER_HEIGHT EQU $04
+CELADON_DINER_WIDTH EQU $05
+
+; CeladonHouse_h map_id=139
+CELADON_HOUSE_HEIGHT EQU $04
+CELADON_HOUSE_WIDTH EQU $04
+
+; CeladonHotel_h map_id=140
+CELADONHOTEL_HEIGHT EQU $04
+CELADONHOTEL_WIDTH EQU $07
+
+; LavenderPokecenter_h map_id=141
+LAVENDER_POKECENTER_HEIGHT EQU $04
+LAVENDER_POKECENTER_WIDTH EQU $07
+
+; PokemonTower1_h map_id=142
+POKEMONTOWER_1_HEIGHT EQU $09
+POKEMONTOWER_1_WIDTH EQU $0a
+
+; PokemonTower2_h map_id=143
+POKEMONTOWER_2_HEIGHT EQU $09
+POKEMONTOWER_2_WIDTH EQU $0a
+
+; PokemonTower3_h map_id=144
+POKEMONTOWER_3_HEIGHT EQU $09
+POKEMONTOWER_3_WIDTH EQU $0a
+
+; PokemonTower4_h map_id=145
+POKEMONTOWER_4_HEIGHT EQU $09
+POKEMONTOWER_4_WIDTH EQU $0a
+
+; PokemonTower5_h map_id=146
+POKEMONTOWER_5_HEIGHT EQU $09
+POKEMONTOWER_5_WIDTH EQU $0a
+
+; PokemonTower6_h map_id=147
+POKEMONTOWER_6_HEIGHT EQU $09
+POKEMONTOWER_6_WIDTH EQU $0a
+
+; PokemonTower7_h map_id=148
+POKEMONTOWER_7_HEIGHT EQU $09
+POKEMONTOWER_7_WIDTH EQU $0a
+
+; LavenderHouse1_h map_id=149
+LAVENDER_HOUSE_1_HEIGHT EQU $04
+LAVENDER_HOUSE_1_WIDTH EQU $04
+
+; LavenderMart_h map_id=150
+LAVENDER_MART_HEIGHT EQU $04
+LAVENDER_MART_WIDTH EQU $04
+
+; LavenderHouse2_h map_id=151
+LAVENDER_HOUSE_2_HEIGHT EQU $04
+LAVENDER_HOUSE_2_WIDTH EQU $04
+
+; FuchsiaMart_h map_id=152
+FUCHSIA_MART_HEIGHT EQU $04
+FUCHSIA_MART_WIDTH EQU $04
+
+; FuchsiaHouse1_h map_id=153
+FUCHSIA_HOUSE_1_HEIGHT EQU $04
+FUCHSIA_HOUSE_1_WIDTH EQU $04
+
+; FuchsiaPokecenter_h map_id=154
+FUCHSIA_POKECENTER_HEIGHT EQU $04
+FUCHSIA_POKECENTER_WIDTH EQU $07
+
+; FuchsiaHouse2_h map_id=155
+FUCHSIA_HOUSE_2_HEIGHT EQU $04
+FUCHSIA_HOUSE_2_WIDTH EQU $05
+
+; SafariZoneEntrance_h map_id=156
+SAFARIZONEENTRANCE_HEIGHT EQU $03
+SAFARIZONEENTRANCE_WIDTH EQU $04
+
+; FuchsiaGym_h map_id=157
+FUCHSIA_GYM_HEIGHT EQU $09
+FUCHSIA_GYM_WIDTH EQU $05
+
+; FuchsiaMeetingRoom_h map_id=158
+FUCHSIAMEETINGROOM_HEIGHT EQU $04
+FUCHSIAMEETINGROOM_WIDTH EQU $07
+
+; SeafoamIslands2_h map_id=159
+SEAFOAM_ISLANDS_2_HEIGHT EQU $09
+SEAFOAM_ISLANDS_2_WIDTH EQU $0f
+
+; SeafoamIslands3_h map_id=160
+SEAFOAM_ISLANDS_3_HEIGHT EQU $09
+SEAFOAM_ISLANDS_3_WIDTH EQU $0f
+
+; SeafoamIslands4_h map_id=161
+SEAFOAM_ISLANDS_4_HEIGHT EQU $09
+SEAFOAM_ISLANDS_4_WIDTH EQU $0f
+
+; SeafoamIslands5_h map_id=162
+SEAFOAM_ISLANDS_5_HEIGHT EQU $09
+SEAFOAM_ISLANDS_5_WIDTH EQU $0f
+
+; VermilionHouse2_h map_id=163
+VERMILION_HOUSE_2_HEIGHT EQU $04
+VERMILION_HOUSE_2_WIDTH EQU $04
+
+; FuchsiaHouse3_h map_id=164
+FUCHSIA_HOUSE_3_HEIGHT EQU $04
+FUCHSIA_HOUSE_3_WIDTH EQU $04
+
+; Mansion1_h map_id=165
+MANSION_1_HEIGHT EQU $0e
+MANSION_1_WIDTH EQU $0f
+
+; CinnabarGym_h map_id=166
+CINNABAR_GYM_HEIGHT EQU $09
+CINNABAR_GYM_WIDTH EQU $0a
+
+; Lab1_h map_id=167
+CINNABAR_LAB_1_HEIGHT EQU $04
+CINNABAR_LAB_1_WIDTH EQU $09
+
+; Lab2_h map_id=168
+CINNABAR_LAB_2_HEIGHT EQU $04
+CINNABAR_LAB_2_WIDTH EQU $04
+
+; Lab3_h map_id=169
+CINNABAR_LAB_3_HEIGHT EQU $04
+CINNABAR_LAB_3_WIDTH EQU $04
+
+; Lab4_h map_id=170
+CINNABAR_LAB_4_HEIGHT EQU $04
+CINNABAR_LAB_4_WIDTH EQU $04
+
+; CinnabarPokecenter_h map_id=171
+CINNABAR_POKECENTER_HEIGHT EQU $04
+CINNABAR_POKECENTER_WIDTH EQU $07
+
+; CinnabarMart_h map_id=172
+CINNABAR_MART_HEIGHT EQU $04
+CINNABAR_MART_WIDTH EQU $04
+
+; IndigoPlateauLobby_h map_id=174
+INDIGO_PLATEAU_LOBBY_HEIGHT EQU $06
+INDIGO_PLATEAU_LOBBY_WIDTH EQU $08
+
+; CopycatsHouseF1_h map_id=175
+COPYCATS_HOUSE_1F_HEIGHT EQU $04
+COPYCATS_HOUSE_1F_WIDTH EQU $04
+
+; CopycatsHouseF2_h map_id=176
+COPYCATS_HOUSE_2F_HEIGHT EQU $04
+COPYCATS_HOUSE_2F_WIDTH EQU $04
+
+; FightingDojo_h map_id=177
+FIGHTINGDOJO_HEIGHT EQU $06
+FIGHTINGDOJO_WIDTH EQU $05
+
+; SaffronGym_h map_id=178
+SAFFRON_GYM_HEIGHT EQU $09
+SAFFRON_GYM_WIDTH EQU $0a
+
+; SaffronHouse1_h map_id=179
+SAFFRON_HOUSE_1_HEIGHT EQU $04
+SAFFRON_HOUSE_1_WIDTH EQU $04
+
+; SaffronMart_h map_id=180
+SAFFRON_MART_HEIGHT EQU $04
+SAFFRON_MART_WIDTH EQU $04
+
+; SilphCo1_h map_id=181
+SILPH_CO_1F_HEIGHT EQU $09
+SILPH_CO_1F_WIDTH EQU $0f
+
+; SaffronPokecenter_h map_id=182
+SAFFRON_POKECENTER_HEIGHT EQU $04
+SAFFRON_POKECENTER_WIDTH EQU $07
+
+; SaffronHouse2_h map_id=183
+SAFFRON_HOUSE_2_HEIGHT EQU $04
+SAFFRON_HOUSE_2_WIDTH EQU $04
+
+; Route15Gate1F_h map_id=184
+ROUTE_15_GATE_1F_HEIGHT EQU $05
+ROUTE_15_GATE_1F_WIDTH EQU $04
+
+; Route15GateUpstairs_h map_id=185
+ROUTE_15_GATE_2F_HEIGHT EQU 4
+ROUTE_15_GATE_2F_WIDTH EQU 4
+
+; Route16GateMap_h map_id=186
+ROUTE_16_GATE_1F_HEIGHT EQU $07
+ROUTE_16_GATE_1F_WIDTH EQU $04
+
+; Route16GateUpstairs_h map_id=187
+ROUTE_16_GATE_2F_HEIGHT EQU $04
+ROUTE_16_GATE_2F_WIDTH EQU $04
+
+; Route16House_h map_id=188
+ROUTE_16_HOUSE_HEIGHT EQU $04
+ROUTE_16_HOUSE_WIDTH EQU $04
+
+; Route12House_h map_id=189
+ROUTE_12_HOUSE_HEIGHT EQU $04
+ROUTE_12_HOUSE_WIDTH EQU $04
+
+; Route18Gate_h map_id=190
+ROUTE_18_GATE_1F_HEIGHT EQU $05
+ROUTE_18_GATE_1F_WIDTH EQU $04
+
+; Route18GateHeader_h map_id=191
+ROUTE_18_GATE_2F_HEIGHT EQU $04
+ROUTE_18_GATE_2F_WIDTH EQU $04
+
+; SeafoamIslands1_h map_id=192
+SEAFOAM_ISLANDS_1_HEIGHT EQU $09
+SEAFOAM_ISLANDS_1_WIDTH EQU $0f
+
+; Route22Gate_h map_id=193
+ROUTE_22_GATE_HEIGHT EQU $04
+ROUTE_22_GATE_WIDTH EQU $05
+
+; VictoryRoad2_h map_id=194
+VICTORY_ROAD_2_HEIGHT EQU $09
+VICTORY_ROAD_2_WIDTH EQU $0f
+
+; Route12GateUpstairs_h map_id=195
+ROUTE_12_GATE_2F_HEIGHT EQU $04
+ROUTE_12_GATE_2F_WIDTH EQU $04
+
+; VermilionHouse3_h map_id=196
+VERMILION_HOUSE_3_HEIGHT EQU $04
+VERMILION_HOUSE_3_WIDTH EQU $04
+
+; DiglettsCave_h map_id=197
+DIGLETTS_CAVE_HEIGHT EQU $12
+DIGLETTS_CAVE_WIDTH EQU $14
+
+; VictoryRoad3_h map_id=198
+VICTORY_ROAD_3_HEIGHT EQU $09
+VICTORY_ROAD_3_WIDTH EQU $0f
+
+; RocketHideout1_h map_id=199
+ROCKET_HIDEOUT_1_HEIGHT EQU $0e
+ROCKET_HIDEOUT_1_WIDTH EQU $0f
+
+; RocketHideout2_h map_id=200
+ROCKET_HIDEOUT_2_HEIGHT EQU $0e
+ROCKET_HIDEOUT_2_WIDTH EQU $0f
+
+; RocketHideout3_h map_id=201
+ROCKET_HIDEOUT_3_HEIGHT EQU $0e
+ROCKET_HIDEOUT_3_WIDTH EQU $0f
+
+; RocketHideout4_h map_id=202
+ROCKET_HIDEOUT_4_HEIGHT EQU $0c
+ROCKET_HIDEOUT_4_WIDTH EQU $0f
+
+; RocketHideoutElevator_h map_id=203
+ROCKET_HIDEOUT_ELEVATOR_HEIGHT EQU $04
+ROCKET_HIDEOUT_ELEVATOR_WIDTH EQU $03
+
+; SilphCo2_h map_id=207
+SILPH_CO_2F_HEIGHT EQU $09
+SILPH_CO_2F_WIDTH EQU $0f
+
+; SilphCo3_h map_id=208
+SILPH_CO_3F_HEIGHT EQU $09
+SILPH_CO_3F_WIDTH EQU $0f
+
+; SilphCo4_h map_id=209
+SILPH_CO_4F_HEIGHT EQU $09
+SILPH_CO_4F_WIDTH EQU $0f
+
+; SilphCo5_h map_id=210
+SILPH_CO_5F_HEIGHT EQU $09
+SILPH_CO_5F_WIDTH EQU $0f
+
+; SilphCo6_h map_id=211
+SILPH_CO_6F_HEIGHT EQU $09
+SILPH_CO_6F_WIDTH EQU $0d
+
+; SilphCo7_h map_id=212
+SILPH_CO_7F_HEIGHT EQU $09
+SILPH_CO_7F_WIDTH EQU $0d
+
+; SilphCo8_h map_id=213
+SILPH_CO_8F_HEIGHT EQU $09
+SILPH_CO_8F_WIDTH EQU $0d
+
+; Mansion2_h map_id=214
+MANSION_2_HEIGHT EQU $0e
+MANSION_2_WIDTH EQU $0f
+
+; Mansion3_h map_id=215
+MANSION_3_HEIGHT EQU $09
+MANSION_3_WIDTH EQU $0f
+
+; Mansion4_h map_id=216
+MANSION_4_HEIGHT EQU $0e
+MANSION_4_WIDTH EQU $0f
+
+; SafariZoneEast_h map_id=217
+SAFARI_ZONE_EAST_HEIGHT EQU $0d
+SAFARI_ZONE_EAST_WIDTH EQU $0f
+
+; SafariZoneNorth_h map_id=218
+SAFARI_ZONE_NORTH_HEIGHT EQU $12
+SAFARI_ZONE_NORTH_WIDTH EQU $14
+
+; SafariZoneWest_h map_id=219
+SAFARI_ZONE_WEST_HEIGHT EQU $0d
+SAFARI_ZONE_WEST_WIDTH EQU $0f
+
+; SafariZoneCenter_h map_id=220
+SAFARI_ZONE_CENTER_HEIGHT EQU $0d
+SAFARI_ZONE_CENTER_WIDTH EQU $0f
+
+; SafariZoneRestHouse1_h map_id=221
+SAFARI_ZONE_REST_HOUSE_1_HEIGHT EQU $04
+SAFARI_ZONE_REST_HOUSE_1_WIDTH EQU $04
+
+; SafariZoneSecretHouse_h map_id=222
+SAFARI_ZONE_SECRET_HOUSE_HEIGHT EQU $04
+SAFARI_ZONE_SECRET_HOUSE_WIDTH EQU $04
+
+; SafariZoneRestHouse2_h map_id=223
+SAFARI_ZONE_REST_HOUSE_2_HEIGHT EQU $04
+SAFARI_ZONE_REST_HOUSE_2_WIDTH EQU $04
+
+; SafariZoneRestHouse3_h map_id=224
+SAFARI_ZONE_REST_HOUSE_3_HEIGHT EQU $04
+SAFARI_ZONE_REST_HOUSE_3_WIDTH EQU $04
+
+; SafariZoneRestHouse4_h map_id=225
+SAFARI_ZONE_REST_HOUSE_4_HEIGHT EQU $04
+SAFARI_ZONE_REST_HOUSE_4_WIDTH EQU $04
+
+; UnknownDungeon2_h map_id=226
+UNKNOWN_DUNGEON_2_HEIGHT EQU $09
+UNKNOWN_DUNGEON_2_WIDTH EQU $0f
+
+; UnknownDungeon3_h map_id=227
+UNKNOWN_DUNGEON_3_HEIGHT EQU $09
+UNKNOWN_DUNGEON_3_WIDTH EQU $0f
+
+; UnknownDungeon1_h map_id=228
+UNKNOWN_DUNGEON_1_HEIGHT EQU $09
+UNKNOWN_DUNGEON_1_WIDTH EQU $0f
+
+; NameRater_h map_id=229
+NAME_RATERS_HOUSE_HEIGHT EQU $04
+NAME_RATERS_HOUSE_WIDTH EQU $04
+
+; CeruleanHouse2_h map_id=230
+CERULEAN_HOUSE_2_HEIGHT EQU $04
+CERULEAN_HOUSE_2_WIDTH EQU $04
+
+; RockTunnel2_h map_id=232
+ROCK_TUNNEL_2_HEIGHT EQU $12
+ROCK_TUNNEL_2_WIDTH EQU $14
+
+; SilphCo9_h map_id=233
+SILPH_CO_9F_HEIGHT EQU $09
+SILPH_CO_9F_WIDTH EQU $0d
+
+; SilphCo10_h map_id=234
+SILPH_CO_10F_HEIGHT EQU $09
+SILPH_CO_10F_WIDTH EQU $08
+
+; SilphCo11_h map_id=235
+SILPH_CO_11F_HEIGHT EQU $09
+SILPH_CO_11F_WIDTH EQU $09
+
+; SilphCoElevator_h map_id=236
+SILPH_CO_ELEVATOR_HEIGHT EQU $02
+SILPH_CO_ELEVATOR_WIDTH EQU $02
+
+; BattleCenterM_h map_id=239
+BATTLE_CENTER_HEIGHT EQU $04
+BATTLE_CENTER_WIDTH EQU $05
+
+; TradeCenterM_h map_id=240
+TRADE_CENTER_HEIGHT EQU $04
+TRADE_CENTER_WIDTH EQU $05
+
+; Lorelei_h map_id=245
+LORELEIS_ROOM_HEIGHT EQU $06
+LORELEIS_ROOM_WIDTH EQU $05
+
+; Bruno_h map_id=246
+BRUNOS_ROOM_HEIGHT EQU $06
+BRUNOS_ROOM_WIDTH EQU $05
+
+; Agatha_h map_id=247
+AGATHAS_ROOM_HEIGHT EQU $06
+AGATHAS_ROOM_WIDTH EQU $05
+
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
new file mode 100644
index 00000000..a03f4063
--- /dev/null
+++ b/constants/move_constants.asm
@@ -0,0 +1,180 @@
+POUND EQU $01
+KARATE_CHOP EQU $02
+DOUBLESLAP EQU $03
+COMET_PUNCH EQU $04
+MEGA_PUNCH EQU $05
+PAY_DAY EQU $06
+FIRE_PUNCH EQU $07
+ICE_PUNCH EQU $08
+THUNDERPUNCH EQU $09
+SCRATCH EQU $0A
+VICEGRIP EQU $0B
+GUILLOTINE EQU $0C
+RAZOR_WIND EQU $0D
+SWORDS_DANCE EQU $0E
+CUT EQU $0F
+GUST EQU $10
+WING_ATTACK EQU $11
+WHIRLWIND EQU $12
+FLY EQU $13
+BIND EQU $14
+SLAM EQU $15
+VINE_WHIP EQU $16
+STOMP EQU $17
+DOUBLE_KICK EQU $18
+MEGA_KICK EQU $19
+JUMP_KICK EQU $1A
+ROLLING_KICK EQU $1B
+SAND_ATTACK EQU $1C
+HEADBUTT EQU $1D
+HORN_ATTACK EQU $1E
+FURY_ATTACK EQU $1F
+HORN_DRILL EQU $20
+TACKLE EQU $21
+BODY_SLAM EQU $22
+WRAP EQU $23
+TAKE_DOWN EQU $24
+THRASH EQU $25
+DOUBLE_EDGE EQU $26
+TAIL_WHIP EQU $27
+POISON_STING EQU $28
+TWINEEDLE EQU $29
+PIN_MISSILE EQU $2A
+LEER EQU $2B
+BITE EQU $2C
+GROWL EQU $2D
+ROAR EQU $2E
+SING EQU $2F
+SUPERSONIC EQU $30
+SONICBOOM EQU $31
+DISABLE EQU $32
+ACID EQU $33
+EMBER EQU $34
+FLAMETHROWER EQU $35
+MIST EQU $36
+WATER_GUN EQU $37
+HYDRO_PUMP EQU $38
+SURF EQU $39
+ICE_BEAM EQU $3A
+BLIZZARD EQU $3B
+PSYBEAM EQU $3C
+BUBBLEBEAM EQU $3D
+AURORA_BEAM EQU $3E
+HYPER_BEAM EQU $3F
+PECK EQU $40
+DRILL_PECK EQU $41
+SUBMISSION EQU $42
+LOW_KICK EQU $43
+COUNTER EQU $44
+SEISMIC_TOSS EQU $45
+STRENGTH EQU $46
+ABSORB EQU $47
+MEGA_DRAIN EQU $48
+LEECH_SEED EQU $49
+GROWTH EQU $4A
+RAZOR_LEAF EQU $4B
+SOLARBEAM EQU $4C
+POISONPOWDER EQU $4D
+STUN_SPORE EQU $4E
+SLEEP_POWDER EQU $4F
+PETAL_DANCE EQU $50
+STRING_SHOT EQU $51
+DRAGON_RAGE EQU $52
+FIRE_SPIN EQU $53
+THUNDERSHOCK EQU $54
+THUNDERBOLT EQU $55
+THUNDER_WAVE EQU $56
+THUNDER EQU $57
+ROCK_THROW EQU $58
+EARTHQUAKE EQU $59
+FISSURE EQU $5A
+DIG EQU $5B
+TOXIC EQU $5C
+CONFUSION EQU $5D
+PSYCHIC_M EQU $5E
+HYPNOSIS EQU $5F
+MEDITATE EQU $60
+AGILITY EQU $61
+QUICK_ATTACK EQU $62
+RAGE EQU $63
+TELEPORT EQU $64
+NIGHT_SHADE EQU $65
+MIMIC EQU $66
+SCREECH EQU $67
+DOUBLE_TEAM EQU $68
+RECOVER EQU $69
+HARDEN EQU $6A
+MINIMIZE EQU $6B
+SMOKESCREEN EQU $6C
+CONFUSE_RAY EQU $6D
+WITHDRAW EQU $6E
+DEFENSE_CURL EQU $6F
+BARRIER EQU $70
+LIGHT_SCREEN EQU $71
+HAZE EQU $72
+REFLECT EQU $73
+FOCUS_ENERGY EQU $74
+BIDE EQU $75
+METRONOME EQU $76
+MIRROR_MOVE EQU $77
+SELFDESTRUCT EQU $78
+EGG_BOMB EQU $79
+LICK EQU $7A
+SMOG EQU $7B
+SLUDGE EQU $7C
+BONE_CLUB EQU $7D
+FIRE_BLAST EQU $7E
+WATERFALL EQU $7F
+CLAMP EQU $80
+SWIFT EQU $81
+SKULL_BASH EQU $82
+SPIKE_CANNON EQU $83
+CONSTRICT EQU $84
+AMNESIA EQU $85
+KINESIS EQU $86
+SOFTBOILED EQU $87
+HI_JUMP_KICK EQU $88
+GLARE EQU $89
+DREAM_EATER EQU $8A
+POISON_GAS EQU $8B
+BARRAGE EQU $8C
+LEECH_LIFE EQU $8D
+LOVELY_KISS EQU $8E
+SKY_ATTACK EQU $8F
+TRANSFORM EQU $90
+BUBBLE EQU $91
+DIZZY_PUNCH EQU $92
+SPORE EQU $93
+FLASH EQU $94
+PSYWAVE EQU $95
+SPLASH EQU $96
+ACID_ARMOR EQU $97
+CRABHAMMER EQU $98
+EXPLOSION EQU $99
+FURY_SWIPES EQU $9A
+BONEMERANG EQU $9B
+REST EQU $9C
+ROCK_SLIDE EQU $9D
+HYPER_FANG EQU $9E
+SHARPEN EQU $9F
+CONVERSION EQU $A0
+TRI_ATTACK EQU $A1
+SUPER_FANG EQU $A2
+SLASH EQU $A3
+SUBSTITUTE EQU $A4
+STRUGGLE EQU $A5
+; these do double duty as animation identifiers
+SHOWPIC_ANIM EQU $A6 ; redraw monster pic
+XSTATITEM_ANIM EQU $AE ; use X Attack/Defense/Speed/Special
+SLP_ANIM EQU $BD ; sleeping monster
+CONF_ANIM EQU $BF ; confused monster
+TOSS_ANIM EQU $C1 ; toss Poké Ball
+SHAKE_ANIM EQU $C2 ; shaking Poké Ball when catching monster
+POOF_ANIM EQU $C3 ; puff of smoke
+BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball
+GREATTOSS_ANIM EQU $C5 ; toss Great Ball
+ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball
+HIDEPIC_ANIM EQU $C8 ; monster disappears
+ROCK_ANIM EQU $C9 ; throw rock
+BAIT_ANIM EQU $CA ; throw bait
+
diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm
new file mode 100644
index 00000000..2e4c7a49
--- /dev/null
+++ b/constants/move_effect_constants.asm
@@ -0,0 +1,73 @@
+; tentative move effect constants
+; {stat}_(UP|DOWN)(1|2) means that the move raises the user's (or lowers the target's) corresponding stat modifier by 1 (or 2) stages
+; {status condition}_side_effect means that the move has a side chance of causing that condition
+; {status condition}_effect means that the move causes the status condition every time it hits the target
+NO_ADDITIONAL_EFFECT EQU $00
+POISON_SIDE_EFFECT1 EQU $02
+DRAIN_HP_EFFECT EQU $03
+BURN_SIDE_EFFECT1 EQU $04
+FREEZE_SIDE_EFFECT EQU $05
+PARALYZE_SIDE_EFFECT1 EQU $06
+EXPLODE_EFFECT EQU $07 ; Explosion, Self Destruct
+DREAM_EATER_EFFECT EQU $08
+MIRROR_MOVE_EFFECT EQU $09
+ATTACK_UP1_EFFECT EQU $0A
+DEFENSE_UP1_EFFECT EQU $0B
+SPECIAL_UP1_EFFECT EQU $0D
+EVASION_UP1_EFFECT EQU $0F
+PAY_DAY_EFFECT EQU $10
+SWIFT_EFFECT EQU $11
+ATTACK_DOWN1_EFFECT EQU $12
+DEFENSE_DOWN1_EFFECT EQU $13
+SPEED_DOWN1_EFFECT EQU $14
+ACCURACY_DOWN1_EFFECT EQU $16
+CONVERSION_EFFECT EQU $18
+HAZE_EFFECT EQU $19
+BIDE_EFFECT EQU $1A
+THRASH_PETAL_DANCE_EFFECT EQU $1B
+SWITCH_AND_TELEPORT_EFFECT EQU $1C
+TWO_TO_FIVE_ATTACKS_EFFECT EQU $1D
+FLINCH_SIDE_EFFECT1 EQU $1F
+SLEEP_EFFECT EQU $20
+POISON_SIDE_EFFECT2 EQU $21
+BURN_SIDE_EFFECT2 EQU $22
+PARALYZE_SIDE_EFFECT2 EQU $24
+FLINCH_SIDE_EFFECT2 EQU $25
+OHKO_EFFECT EQU $26 ; moves like Horn Drill
+CHARGE_EFFECT EQU $27 ; moves like Solar Beam
+SUPER_FANG_EFFECT EQU $28
+SPECIAL_DAMAGE_EFFECT EQU $29 ; Seismic Toss, Night Shade, Sonic Boom, Dragon Rage, Psywave
+TRAPPING_EFFECT EQU $2A ; moves like Wrap
+FLY_EFFECT EQU $2B
+ATTACK_TWICE_EFFECT EQU $2C
+JUMP_KICK_EFFECT EQU $2D ; Jump Kick and Hi Jump Kick effect
+MIST_EFFECT EQU $2E
+FOCUS_ENERGY_EFFECT EQU $2F
+RECOIL_EFFECT EQU $30 ; moves like Double Edge
+CONFUSION_EFFECT EQU $31 ; Confuse Ray, Supersonic (not the move Confusion)
+ATTACK_UP2_EFFECT EQU $32
+DEFENSE_UP2_EFFECT EQU $33
+SPEED_UP2_EFFECT EQU $34
+SPECIAL_UP2_EFFECT EQU $35
+HEAL_EFFECT EQU $38 ; Recover, Softboiled, Rest
+TRANSFORM_EFFECT EQU $39
+DEFENSE_DOWN2_EFFECT EQU $3B
+LIGHT_SCREEN_EFFECT EQU $40
+REFLECT_EFFECT EQU $41
+POISON_EFFECT EQU $42
+PARALYZE_EFFECT EQU $43
+ATTACK_DOWN_SIDE_EFFECT EQU $44
+DEFENSE_DOWN_SIDE_EFFECT EQU $45
+SPEED_DOWN_SIDE_EFFECT EQU $46
+SPECIAL_DOWN_SIDE_EFFECT EQU $47
+CONFUSION_SIDE_EFFECT EQU $4C
+TWINEEDLE_EFFECT EQU $4D
+SUBSTITUTE_EFFECT EQU $4F
+HYPER_BEAM_EFFECT EQU $50
+RAGE_EFFECT EQU $51
+MIMIC_EFFECT EQU $52
+METRONOME_EFFECT EQU $53
+LEECH_SEED_EFFECT EQU $54
+SPLASH_EFFECT EQU $55
+DISABLE_EFFECT EQU $56
+
diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm
new file mode 100644
index 00000000..99cde354
--- /dev/null
+++ b/constants/palette_constants.asm
@@ -0,0 +1,39 @@
+; super game boy palettes
+PAL_ROUTE EQU $00
+PAL_PALLET EQU $01
+PAL_VIRIDIAN EQU $02
+PAL_PEWTER EQU $03
+PAL_CERULEAN EQU $04
+PAL_LAVENDER EQU $05
+PAL_VERMILION EQU $06
+PAL_CELADON EQU $07
+PAL_FUCHSIA EQU $08
+PAL_CINNABAR EQU $09
+PAL_INDIGO EQU $0A
+PAL_SAFFRON EQU $0B
+PAL_TOWNMAP EQU $0C
+PAL_LOGO1 EQU $0D
+; XXX
+PAL_LOGO2 EQU $0F
+PAL_MEWMON EQU $10
+PAL_BLUEMON EQU $11
+PAL_REDMON EQU $12
+PAL_CYANMON EQU $13
+PAL_PURPLEMON EQU $14
+PAL_BROWNMON EQU $15
+PAL_GREENMON EQU $16
+PAL_PINKMON EQU $17
+PAL_YELLOWMON EQU $18
+PAL_GREYMON EQU $19
+PAL_SLOTS1 EQU $1A
+PAL_SLOTS2 EQU $1B
+PAL_SLOTS3 EQU $1C
+PAL_SLOTS4 EQU $1D
+PAL_BLACK EQU $1E
+PAL_GREENBAR EQU $1F
+PAL_YELLOWBAR EQU $20
+PAL_REDBAR EQU $21
+PAL_BADGE EQU $22
+PAL_CAVE EQU $23
+; XXX
+
diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm
new file mode 100644
index 00000000..bc95f8bd
--- /dev/null
+++ b/constants/pokedex_constants.asm
@@ -0,0 +1,152 @@
+DEX_BULBASAUR EQU 1
+DEX_IVYSAUR EQU 2
+DEX_VENUSAUR EQU 3
+DEX_CHARMANDER EQU 4
+DEX_CHARMELEON EQU 5
+DEX_CHARIZARD EQU 6
+DEX_SQUIRTLE EQU 7
+DEX_WARTORTLE EQU 8
+DEX_BLASTOISE EQU 9
+DEX_CATERPIE EQU 10
+DEX_METAPOD EQU 11
+DEX_BUTTERFREE EQU 12
+DEX_WEEDLE EQU 13
+DEX_KAKUNA EQU 14
+DEX_BEEDRILL EQU 15
+DEX_PIDGEY EQU 16
+DEX_PIDGEOTTO EQU 17
+DEX_PIDGEOT EQU 18
+DEX_RATTATA EQU 19
+DEX_RATICATE EQU 20
+DEX_SPEAROW EQU 21
+DEX_FEAROW EQU 22
+DEX_EKANS EQU 23
+DEX_ARBOK EQU 24
+DEX_PIKACHU EQU 25
+DEX_RAICHU EQU 26
+DEX_SANDSHREW EQU 27
+DEX_SANDSLASH EQU 28
+DEX_NIDORAN_F EQU 29
+DEX_NIDORINA EQU 30
+DEX_NIDOQUEEN EQU 31
+DEX_NIDORAN_M EQU 32
+DEX_NIDORINO EQU 33
+DEX_NIDOKING EQU 34
+DEX_CLEFAIRY EQU 35
+DEX_CLEFABLE EQU 36
+DEX_VULPIX EQU 37
+DEX_NINETALES EQU 38
+DEX_JIGGLYPUFF EQU 39
+DEX_WIGGLYTUFF EQU 40
+DEX_ZUBAT EQU 41
+DEX_GOLBAT EQU 42
+DEX_ODDISH EQU 43
+DEX_GLOOM EQU 44
+DEX_VILEPLUME EQU 45
+DEX_PARAS EQU 46
+DEX_PARASECT EQU 47
+DEX_VENONAT EQU 48
+DEX_VENOMOTH EQU 49
+DEX_DIGLETT EQU 50
+DEX_DUGTRIO EQU 51
+DEX_MEOWTH EQU 52
+DEX_PERSIAN EQU 53
+DEX_PSYDUCK EQU 54
+DEX_GOLDUCK EQU 55
+DEX_MANKEY EQU 56
+DEX_PRIMEAPE EQU 57
+DEX_GROWLITHE EQU 58
+DEX_ARCANINE EQU 59
+DEX_POLIWAG EQU 60
+DEX_POLIWHIRL EQU 61
+DEX_POLIWRATH EQU 62
+DEX_ABRA EQU 63
+DEX_KADABRA EQU 64
+DEX_ALAKAZAM EQU 65
+DEX_MACHOP EQU 66
+DEX_MACHOKE EQU 67
+DEX_MACHAMP EQU 68
+DEX_BELLSPROUT EQU 69
+DEX_WEEPINBELL EQU 70
+DEX_VICTREEBEL EQU 71
+DEX_TENTACOOL EQU 72
+DEX_TENTACRUEL EQU 73
+DEX_GEODUDE EQU 74
+DEX_GRAVELER EQU 75
+DEX_GOLEM EQU 76
+DEX_PONYTA EQU 77
+DEX_RAPIDASH EQU 78
+DEX_SLOWPOKE EQU 79
+DEX_SLOWBRO EQU 80
+DEX_MAGNEMITE EQU 81
+DEX_MAGNETON EQU 82
+DEX_FARFETCH_D EQU 83
+DEX_DODUO EQU 84
+DEX_DODRIO EQU 85
+DEX_SEEL EQU 86
+DEX_DEWGONG EQU 87
+DEX_GRIMER EQU 88
+DEX_MUK EQU 89
+DEX_SHELLDER EQU 90
+DEX_CLOYSTER EQU 91
+DEX_GASTLY EQU 92
+DEX_HAUNTER EQU 93
+DEX_GENGAR EQU 94
+DEX_ONIX EQU 95
+DEX_DROWZEE EQU 96
+DEX_HYPNO EQU 97
+DEX_KRABBY EQU 98
+DEX_KINGLER EQU 99
+DEX_VOLTORB EQU 100
+DEX_ELECTRODE EQU 101
+DEX_EXEGGCUTE EQU 102
+DEX_EXEGGUTOR EQU 103
+DEX_CUBONE EQU 104
+DEX_MAROWAK EQU 105
+DEX_HITMONLEE EQU 106
+DEX_HITMONCHAN EQU 107
+DEX_LICKITUNG EQU 108
+DEX_KOFFING EQU 109
+DEX_WEEZING EQU 110
+DEX_RHYHORN EQU 111
+DEX_RHYDON EQU 112
+DEX_CHANSEY EQU 113
+DEX_TANGELA EQU 114
+DEX_KANGASKHAN EQU 115
+DEX_HORSEA EQU 116
+DEX_SEADRA EQU 117
+DEX_GOLDEEN EQU 118
+DEX_SEAKING EQU 119
+DEX_STARYU EQU 120
+DEX_STARMIE EQU 121
+DEX_MR_MIME EQU 122
+DEX_SCYTHER EQU 123
+DEX_JYNX EQU 124
+DEX_ELECTABUZZ EQU 125
+DEX_MAGMAR EQU 126
+DEX_PINSIR EQU 127
+DEX_TAUROS EQU 128
+DEX_MAGIKARP EQU 129
+DEX_GYARADOS EQU 130
+DEX_LAPRAS EQU 131
+DEX_DITTO EQU 132
+DEX_EEVEE EQU 133
+DEX_VAPOREON EQU 134
+DEX_JOLTEON EQU 135
+DEX_FLAREON EQU 136
+DEX_PORYGON EQU 137
+DEX_OMANYTE EQU 138
+DEX_OMASTAR EQU 139
+DEX_KABUTO EQU 140
+DEX_KABUTOPS EQU 141
+DEX_AERODACTYL EQU 142
+DEX_SNORLAX EQU 143
+DEX_ARTICUNO EQU 144
+DEX_ZAPDOS EQU 145
+DEX_MOLTRES EQU 146
+DEX_DRATINI EQU 147
+DEX_DRAGONAIR EQU 148
+DEX_DRAGONITE EQU 149
+DEX_MEWTWO EQU 150
+DEX_MEW EQU 151
+
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
new file mode 100644
index 00000000..ed4681e1
--- /dev/null
+++ b/constants/pokemon_constants.asm
@@ -0,0 +1,155 @@
+RHYDON EQU $01
+KANGASKHAN EQU $02
+NIDORAN_M EQU $03
+CLEFAIRY EQU $04
+SPEAROW EQU $05
+VOLTORB EQU $06
+NIDOKING EQU $07
+SLOWBRO EQU $08
+IVYSAUR EQU $09
+EXEGGUTOR EQU $0A
+LICKITUNG EQU $0B
+EXEGGCUTE EQU $0C
+GRIMER EQU $0D
+GENGAR EQU $0E
+NIDORAN_F EQU $0F
+NIDOQUEEN EQU $10
+CUBONE EQU $11
+RHYHORN EQU $12
+LAPRAS EQU $13
+ARCANINE EQU $14
+MEW EQU $15
+GYARADOS EQU $16
+SHELLDER EQU $17
+TENTACOOL EQU $18
+GASTLY EQU $19
+SCYTHER EQU $1A
+STARYU EQU $1B
+BLASTOISE EQU $1C
+PINSIR EQU $1D
+TANGELA EQU $1E
+GROWLITHE EQU $21
+ONIX EQU $22
+FEAROW EQU $23
+PIDGEY EQU $24
+SLOWPOKE EQU $25
+KADABRA EQU $26
+GRAVELER EQU $27
+CHANSEY EQU $28
+MACHOKE EQU $29
+MR_MIME EQU $2A
+HITMONLEE EQU $2B
+HITMONCHAN EQU $2C
+ARBOK EQU $2D
+PARASECT EQU $2E
+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
+MOLTRES EQU $49
+ARTICUNO EQU $4A
+ZAPDOS EQU $4B
+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
+KABUTOPS EQU $5B
+HORSEA EQU $5C
+SEADRA EQU $5D
+SANDSHREW EQU $60
+SANDSLASH EQU $61
+OMANYTE EQU $62
+OMASTAR EQU $63
+JIGGLYPUFF EQU $64
+WIGGLYTUFF EQU $65
+EEVEE EQU $66
+FLAREON EQU $67
+JOLTEON EQU $68
+VAPOREON EQU $69
+MACHOP EQU $6A
+ZUBAT EQU $6B
+EKANS EQU $6C
+PARAS EQU $6D
+POLIWHIRL EQU $6E
+POLIWRATH EQU $6F
+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
+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
+PIDGEOTTO EQU $96
+PIDGEOT EQU $97
+STARMIE EQU $98
+BULBASAUR EQU $99
+VENUSAUR EQU $9A
+TENTACRUEL EQU $9B
+GOLDEEN EQU $9D
+SEAKING EQU $9E
+PONYTA EQU $A3
+RAPIDASH EQU $A4
+RATTATA EQU $A5
+RATICATE EQU $A6
+NIDORINO EQU $A7
+NIDORINA EQU $A8
+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
+ODDISH EQU $B9
+GLOOM EQU $BA
+VILEPLUME EQU $BB
+BELLSPROUT EQU $BC
+WEEPINBELL EQU $BD
+VICTREEBEL EQU $BE
+
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
new file mode 100644
index 00000000..f98352f9
--- /dev/null
+++ b/constants/trainer_constants.asm
@@ -0,0 +1,48 @@
+; sometimes it's necessary to add $C8 to these values
+YOUNGSTER EQU $01
+BUG_CATCHER EQU $02
+LASS EQU $03
+SAILOR EQU $04
+JR__TRAINER_M EQU $05
+JR__TRAINER_F EQU $06
+POKEMANIAC EQU $07
+SUPER_NERD EQU $08
+HIKER EQU $09
+BIKER EQU $0A
+BURGLAR EQU $0B
+ENGINEER EQU $0C
+JUGGLER_X EQU $0D
+FISHER EQU $0E
+SWIMMER EQU $0F
+CUE_BALL EQU $10
+GAMBLER EQU $11
+BEAUTY EQU $12
+PSYCHIC_TR EQU $13
+ROCKER EQU $14
+JUGGLER EQU $15
+TAMER EQU $16
+BIRD_KEEPER EQU $17
+BLACKBELT EQU $18
+SONY1 EQU $19
+PROF_OAK EQU $1A
+CHIEF EQU $1B
+SCIENTIST EQU $1C
+GIOVANNI EQU $1D
+ROCKET EQU $1E
+COOLTRAINER_M EQU $1F
+COOLTRAINER_F EQU $20
+BRUNO EQU $21
+BROCK EQU $22
+MISTY EQU $23
+LT__SURGE EQU $24
+ERIKA EQU $25
+KOGA EQU $26
+BLAINE EQU $27
+SABRINA EQU $28
+GENTLEMAN EQU $29
+SONY2 EQU $2A
+SONY3 EQU $2B
+LORELEI EQU $2C
+CHANNELER EQU $2D
+AGATHA EQU $2E
+LANCE EQU $2F
diff --git a/extras b/extras
-Subproject c57e0f0706608a4acba89182945bec975a43acf
+Subproject f35bb2c5cc390ec0008cede2721104592dbcb29
diff --git a/hram.asm b/hram.asm
new file mode 100644
index 00000000..6f807c90
--- /dev/null
+++ b/hram.asm
@@ -0,0 +1,116 @@
+
+H_SPRITEWIDTH EQU $FF8B ; in bytes
+H_SPRITEINTERLACECOUNTER EQU $FF8B
+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.
+
+; counters for blinking down arrow
+H_DOWNARROWBLINKCNT1 EQU $FF8B
+H_DOWNARROWBLINKCNT2 EQU $FF8C
+
+; Note: the following multiplication and division addresses are used for multiple purposes
+; and so they overlap with each other
+
+H_MULTIPLICAND EQU $FF96 ; 3 bytes, big endian order
+H_MULTIPLIER EQU $FF99 ; 1 byte
+H_PRODUCT EQU $FF95 ; 4 bytes, big endian order
+
+H_DIVIDEND EQU $FF95 ; 4 bytes, big endian order
+H_DIVISOR EQU $FF99 ; 1 byte
+H_QUOTIENT EQU $FF95 ; 4 bytes, big endian order
+H_REMAINDER EQU $FF99 ; 1 byte
+
+; used to convert numbers to decimal
+H_PASTLEADINGZEROES EQU $FF95 ; flag to indicate that a nonzero digit has been printed
+H_NUMTOPRINT EQU $FF96 ; 3 bytes, big endian order
+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
+
+H_LOADEDROMBANK EQU $FFB8
+
+; is automatic background transfer during V-blank enabled?
+; if nonzero, yes
+; if zero, no
+H_AUTOBGTRANSFERENABLED EQU $FFBA
+
+TRANSFERTOP EQU 0
+TRANSFERMIDDLE EQU 1
+TRANSFERBOTTOM EQU 2
+
+; 00 = top third of background
+; 01 = middle third of background
+; 02 = bottom third of background
+H_AUTOBGTRANSFERPORTION EQU $FFBB
+
+; the destination address of the automatic background transfer
+H_AUTOBGTRANSFERDEST EQU $FFBC ; 2 bytes
+
+; temporary storage for stack pointer during memory transfers that use pop
+; to increase speed
+H_SPTEMP EQU $FFBF ; 2 bytes
+
+; source address for VBlankCopyBgMap function
+; the first byte doubles as the byte that enabled the transfer.
+; if it is 0, the transfer is disabled
+; if it is not 0, the transfer is enabled
+; this means that XX00 is not a valid source address
+H_VBCOPYBGSRC EQU $FFC1 ; 2 bytes
+
+; destination address for VBlankCopyBgMap function
+H_VBCOPYBGDEST EQU $FFC3 ; 2 bytes
+
+; number of rows for VBlankCopyBgMap to copy
+H_VBCOPYBGNUMROWS EQU $FFC5
+
+; size of VBlankCopy transfer in 16-byte units
+H_VBCOPYSIZE EQU $FFC6
+
+; source address for VBlankCopy function
+H_VBCOPYSRC EQU $FFC7
+
+; destination address for VBlankCopy function
+H_VBCOPYDEST EQU $FFC9
+
+; size of source data for VBlankCopyDouble in 8-byte units
+H_VBCOPYDOUBLESIZE EQU $FFCB
+
+; source address for VBlankCopyDouble function
+H_VBCOPYDOUBLESRC EQU $FFCC
+
+; destination address for VBlankCopyDouble function
+H_VBCOPYDOUBLEDEST EQU $FFCE
+
+; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank
+; 00 = no redraw
+; 01 = redraw column
+; 02 = redraw row
+H_SCREENEDGEREDRAW EQU $FFD0
+
+REDRAWCOL EQU 1
+REDRAWROW EQU 2
+
+H_SCREENEDGEREDRAWADDR EQU $FFD1
+
+H_RAND1 EQU $FFD3
+H_RAND2 EQU $FFD4
+
+H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays)
+
+; V-blank sets this to 0 each time it runs.
+; So, by setting it to a nonzero value and waiting for it to become 0 again,
+; you can detect that the V-blank handler has run since then.
+H_VBLANKOCCURRED EQU $FFD6
+
+H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
+
+H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
+
+H_JOYPADSTATE EQU $FFF8
+
diff --git a/init.sh b/init.sh
new file mode 100755
index 00000000..a0cc1ccd
--- /dev/null
+++ b/init.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# install rgbds
+git clone git://github.com/bentley/rgbds.git && \
+cd rgbds && \
+make && \
+sudo make install && \
+cd .. && \
+rm -rf rgbds
+
+# set up the submodule (extras/)
+git submodule init && \
+git submodule update && \
+sudo easy_install pip && \
+pip install -r extras/requirements.txt
+
diff --git a/macros.asm b/macros.asm
new file mode 100644
index 00000000..7a5660a4
--- /dev/null
+++ b/macros.asm
@@ -0,0 +1,265 @@
+
+;\1 = X
+;\2 = Y
+FuncCoord: MACRO
+Coord = $C3A0 + 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
+ db \2,\3 ;Y,X
+ ENDM
+
+FLYWARP_DATA: MACRO
+ EVENT_DISP \1,\2,\3
+ db ((\2) & $01) ;sub-block Y
+ db ((\3) & $01) ;sub-block X
+ ENDM
+
+; external map entry macro
+EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer
+; the appearance of towns and routes in the town map, indexed by map id
+ ; nybble: y-coordinate
+ ; nybble: x-coordinate
+ ; word : pointer to map name
+ db (\1 + (\2 << 4))
+ dw \3
+ ENDM
+
+; internal map entry macro
+IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer
+; the appearance of buildings and dungeons in the town map
+ ; byte : maximum map id subject to this rule
+ ; nybble: y-coordinate
+ ; nybble: x-coordinate
+ ; word : pointer to map name
+ db \1
+ db \2 + \3 << 4
+ dw \4
+ ENDM
+
+; tilesets' headers macro
+TSETHEAD: MACRO
+ db BANK(\2)
+ dw \1,\2,\3
+ db \4,\5,\6,\7,\8
+ ENDM
+
+; macro for two nibbles
+dn: MACRO
+ db (\1 << 4 | \2)
+ ENDM
+
+; macro for putting a byte then a word
+dbw: MACRO
+ db \1
+ dw \2
+ ENDM
+
+; data format macros
+RGB: MACRO
+ dw (\3 << 10 | \2 << 5 | \1)
+ ENDM
+
+; text macros
+TX_NUM: MACRO
+; print a big-endian decimal number.
+; \1: address to read from
+; \2: number of bytes to read
+; \3: number of digits to display
+ db $09
+ dw \1
+ db \2 << 4 | \3
+ ENDM
+
+TX_FAR: MACRO
+ db $17
+ dw \1
+ db BANK(\1)
+ ENDM
+
+; text engine command $1
+TX_RAM: MACRO
+; prints text to screen
+; \1: RAM address to read from
+ db $1
+ dw \1
+ ENDM
+
+; Predef macro.
+PREDEF: MACRO
+ ld a, (\1 - PredefPointers) / 3
+ call Predef
+ ENDM
+
+PREDEF_JUMP: MACRO
+ ld a, (\1 - PredefPointers) / 3
+ jp Predef
+ ENDM
+
+
+
+;1_channel EQU $00
+;2_channels EQU $40
+;3_channels EQU $80
+;4_channels EQU $C0
+
+CH0 EQU 0
+CH1 EQU 1
+CH2 EQU 2
+CH3 EQU 3
+CH4 EQU 4
+CH5 EQU 5
+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
+ENDM
+
+unknownsfx0x20: MACRO
+ db $20 | \1
+ db \2
+ db \3
+ db \4
+ENDM
+
+unknownnoise0x20: MACRO
+ db $20 | \1
+ db \2
+ db \3
+ENDM
+
+;format: note pitch, length (in 16ths)
+note: MACRO
+ db (\1 << 4) | (\2 - 1)
+ENDM
+
+;format: dnote length (in 16ths), instrument
+dnote: MACRO
+ db $B0 | (\1 - 1)
+ db \2
+ENDM
+
+;format: rest length (in 16ths)
+rest: MACRO
+ db $C0 | (\1 - 1)
+ENDM
+
+; format: notetype speed, volume, fade
+notetype: MACRO
+ db $D0 | \1
+ db (\2 << 4) | \3
+ENDM
+
+dspeed: MACRO
+ db $D0 | \1
+ENDM
+
+octave: MACRO
+ db $E8 - \1
+ENDM
+
+togglecall: MACRO
+ db $E8
+ENDM
+
+;format: vibrato delay, rate, depth
+vibrato: MACRO
+ db $EA
+ db \1
+ db (\2 << 4) | \3
+ENDM
+
+pitchbend: MACRO
+ db $EB
+ db \1
+ db \2
+ENDM
+
+duty: MACRO
+ db $EC
+ db \1
+ENDM
+
+tempo: MACRO
+ db $ED
+ db \1
+ db \2
+ENDM
+
+unknownmusic0xee: MACRO
+ db $EE
+ db \1
+ENDM
+
+stereopanning: MACRO
+ db $F0
+ db \1
+ENDM
+
+executemusic: MACRO
+ db $F8
+ENDM
+
+dutycycle: MACRO
+ db $FC
+ db \1
+ENDM
+
+;format: callchannel address
+;callchannel: MACRO
+; db $FD
+; dw \1
+;ENDM
+
+;format: loopchannel count, address
+;loopchannel: MACRO
+; db $FE
+; db \1
+; dw \2
+;ENDM
+
+endchannel: MACRO
+ db $FF
+ENDM
+
diff --git a/main.asm b/main.asm
index 933a00ce..80d27687 100755
--- a/main.asm
+++ b/main.asm
@@ -58,7 +58,7 @@ EnableLCD: ; 007b (0:007b)
CleanLCD_OAM: ; 0082 (0:0082)
xor a
- ld hl,W_OAMBUFFER
+ ld hl,wOAMBuffer
ld b,$a0
.loop
ld [hli],a
@@ -68,7 +68,7 @@ CleanLCD_OAM: ; 0082 (0:0082)
ResetLCD_OAM: ; 008d (0:008d)
ld a,$a0
- ld hl,W_OAMBUFFER
+ ld hl,wOAMBuffer
ld de,$0004
ld b,$28
.loop
@@ -444,7 +444,7 @@ HandleMidJump: ; 039e (0:039e)
; 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 [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
call LoadMapData ; load map data
ld b,BANK(Func_c335)
ld hl,Func_c335
@@ -480,7 +480,7 @@ EnterMap: ; 03a6 (0:03a6)
set 5,[hl]
set 6,[hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
OverworldLoop: ; 03ff (0:03ff)
call DelayFrame
@@ -490,7 +490,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
ld a,[$d736]
bit 6,a ; jumping down a ledge?
call nz, HandleMidJump
- ld a,[W_WALKCOUNTER]
+ 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)
@@ -545,7 +545,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
ld a,$35
call Predef ; check what is in front of the player
call UpdateSprites ; move sprites
- ld a,[W_FLAGS_CD60]
+ ld a,[wFlags_0xcd60]
bit 2,a
jr nz,.checkForOpponent
bit 0,a
@@ -578,7 +578,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
jp nz,.newBattle
jp OverworldLoop
.noDirectionButtonsPressed
- ld hl,W_FLAGS_CD60
+ ld hl,wFlags_0xcd60
res 2,[hl]
call UpdateSprites ; move sprites
ld a,$01
@@ -659,7 +659,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
ld a,$08
ld [$d528],a
.oddLoop
- ld hl,W_FLAGS_CD60
+ ld hl,wFlags_0xcd60
set 2,[hl]
ld hl,$cc4b
dec [hl]
@@ -694,7 +694,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
jp c,OverworldLoop
.noCollision
ld a,$08
- ld [W_WALKCOUNTER],a
+ ld [wWalkCounter],a
jr .moveAhead2
.moveAhead
ld a,[$d736]
@@ -706,7 +706,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
.noSpinning
call UpdateSprites ; move sprites
.moveAhead2
- ld hl,W_FLAGS_CD60
+ ld hl,wFlags_0xcd60
res 2,[hl]
ld a,[$d700]
dec a ; riding a bike?
@@ -717,7 +717,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402)
call BikeSpeedup ; if riding a bike and not jumping a ledge
.normalPlayerSpriteAdvancement
call AdvancePlayerSprite
- ld a,[W_WALKCOUNTER]
+ 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
@@ -1214,12 +1214,12 @@ HandleBlackOut: ; 0931 (0:0931)
jp Func_5d5f
StopMusic: ; 0951 (0:0951)
- ld [W_CURCHANNELPOINTER],a
+ ld [wMusicChannelPointer],a
ld a,$ff
ld [$c0ee],a
call PlaySound
.waitLoop
- ld a,[W_CURCHANNELPOINTER]
+ ld a,[wMusicChannelPointer]
and a
jr nz,.waitLoop
jp StopAllSounds
@@ -1817,7 +1817,7 @@ LoadCurrentMapView: ; 0caa (0:0caa)
ld e,a
ld a,[$d360]
ld d,a
- ld hl,W_SCREENTILESBACKBUFFER
+ ld hl,wTileMapBackup
ld b,$05
.rowLoop ; each loop iteration fills in one row of tile blocks
push hl
@@ -1859,7 +1859,7 @@ LoadCurrentMapView: ; 0caa (0:0caa)
.noCarry2
dec b
jr nz,.rowLoop
- ld hl,W_SCREENTILESBACKBUFFER
+ ld hl,wTileMapBackup
ld bc,$0000
.adjustForYCoordWithinTileBlock
ld a,[W_YBLOCKCOORD]
@@ -1874,7 +1874,7 @@ LoadCurrentMapView: ; 0caa (0:0caa)
ld bc,$0002
add hl,bc
.copyToVisibleAreaBuffer
- ld de,W_SCREENTILESBUFFER ; base address for the tiles that are directly transfered to VRAM during V-blank
+ ld de,wTileMap ; base address for the tiles that are directly transfered to VRAM during V-blank
ld b,$12
.rowLoop2
ld c,$14
@@ -1902,7 +1902,7 @@ AdvancePlayerSprite: ; 0d27 (0:0d27)
ld b,a
ld a,[$c105] ; delta X
ld c,a
- ld hl,W_WALKCOUNTER ; walking animation counter
+ 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
@@ -1913,7 +1913,7 @@ AdvancePlayerSprite: ; 0d27 (0:0d27)
add c
ld [W_XCOORD],a
.afterUpdateMapCoords
- ld a,[W_WALKCOUNTER] ; walking animation counter
+ ld a,[wWalkCounter] ; walking animation counter
cp a,$07
jp nz,.scrollBackgroundAndSprites
; if this is the first iteration of the animation
@@ -2159,7 +2159,7 @@ ScheduleNorthRowRedraw: ; 0e91 (0:0e91)
ret
ScheduleRowRedrawHelper: ; 0ea6 (0:0ea6)
- ld de,W_SCREENEDGETILES
+ ld de,wScreenEdgeTiles
ld c,$28
.loop
ld a,[hli]
@@ -2209,7 +2209,7 @@ ScheduleEastColumnRedraw: ; 0ed3 (0:0ed3)
ret
ScheduleColumnRedrawHelper: ; 0ef2 (0:0ef2)
- ld de,W_SCREENEDGETILES
+ ld de,wScreenEdgeTiles
ld c,$12
.loop
ld a,[hli]
@@ -2335,7 +2335,7 @@ GetJoypadStateOverworld: ; 0f4d (0:0f4d)
ld [$cd3a],a
ld [$cd38],a
ld [$ccd3],a
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
ld [H_CURRENTPRESSEDBUTTONS],a
ld hl,$d736
ld a,[hl]
@@ -2421,7 +2421,7 @@ RunMapScript: ; 101b (0:101b)
ld b, BANK(Func_f225)
ld hl, Func_f225
call Bankswitch ; check if the player is pushing a boulder
- ld a,[W_FLAGS_CD60]
+ ld a,[wFlags_0xcd60]
bit 1,a ; is the player pushing a boulder?
jr z,.afterBoulderEffect
ld b, BANK(Func_f2b5)
@@ -2781,7 +2781,7 @@ LoadMapData: ; 1241 (0:1241)
ld [$d526],a
ld [$ffaf],a
ld [$ffae],a
- ld [W_WALKCOUNTER],a
+ ld [wWalkCounter],a
ld [$d119],a
ld [$d11a],a
ld [$d3a8],a
@@ -2794,7 +2794,7 @@ LoadMapData: ; 1241 (0:1241)
call LoadTilesetTilePatternData
call LoadCurrentMapView
; copy current map view to VRAM
- ld hl,W_SCREENTILESBUFFER
+ ld hl,wTileMap
ld de,$9800
ld b,$12
.vramCopyLoop
@@ -3121,7 +3121,7 @@ PartyMenuInit: ; 1420 (0:1420)
xor a
ld [$cc49],a
ld [$cc37],a
- ld hl,W_TOPMENUITEMY
+ ld hl,wTopMenuItemY
inc a
ld [hli],a ; top menu item Y
xor a
@@ -3161,7 +3161,7 @@ HandlePartyMenuInput: ; 145a (0:145a)
ld b,a
xor a
ld [$d09b],a
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$cc2b],a
ld hl,$d730
res 6,[hl] ; turn on letter printing delay
@@ -3175,7 +3175,7 @@ HandlePartyMenuInput: ; 145a (0:145a)
ld a,[W_NUMINPARTY]
and a
jr z,.noPokemonChosen
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$cf92],a
ld hl,W_PARTYMON1
ld b,0
@@ -3204,7 +3204,7 @@ HandlePartyMenuInput: ; 145a (0:145a)
call RedrawPartyMenu
jr HandlePartyMenuInput
.handleSwap
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$cf92],a
ld b, BANK(Func_13613)
ld hl, Func_13613
@@ -3876,15 +3876,15 @@ ClearScreenArea: ; 18c4 (0:18c4)
CopyScreenTileBufferToVRAM: ; 18d6 (0:18d6)
ld c, $6
ld hl, $0000
- ld de, W_SCREENTILESBUFFER
+ ld de, wTileMap
call InitScreenTileBufferTransferParameters
call DelayFrame
ld hl, $600
- ld de, W_SCREENTILESBUFFER + 20 * 6 ; $c418
+ ld de, wTileMap + 20 * 6 ; $c418
call InitScreenTileBufferTransferParameters
call DelayFrame
ld hl, $c00
- ld de, W_SCREENTILESBUFFER + 20 * 12 ; $c490
+ ld de, wTileMap + 20 * 12 ; $c490
call InitScreenTileBufferTransferParameters
jp DelayFrame
@@ -3907,7 +3907,7 @@ ClearScreen: ; 190f (0:190f)
; then wait three frames
ld bc,$0168 ; tilemap size
inc b
- ld hl,W_SCREENTILESBUFFER ; TILEMAP_START
+ ld hl,wTileMap ; TILEMAP_START
ld a,$7F ; $7F is blank tile
.loop
ld [hli],a
@@ -4707,7 +4707,7 @@ RedrawExposedScreenEdge: ; 1d01 (0:1d01)
dec b
jr nz,.redrawRow
.redrawColumn
- ld hl,W_SCREENEDGETILES
+ ld hl,wScreenEdgeTiles
ld a,[H_SCREENEDGEREDRAWADDR]
ld e,a
ld a,[H_SCREENEDGEREDRAWADDR + 1]
@@ -4736,7 +4736,7 @@ RedrawExposedScreenEdge: ; 1d01 (0:1d01)
ld [H_SCREENEDGEREDRAW],a
ret
.redrawRow
- ld hl,W_SCREENEDGETILES
+ ld hl,wScreenEdgeTiles
ld a,[H_SCREENEDGEREDRAWADDR]
ld e,a
ld a,[H_SCREENEDGEREDRAWADDR + 1]
@@ -4770,7 +4770,7 @@ RedrawExposedScreenEdge: ; 1d01 (0:1d01)
ret
; This function automatically transfers tile number data from the tile map at
-; C3A0 to VRAM during V-blank. Note that it only transfers one third of the
+; 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
@@ -5271,7 +5271,7 @@ StopAllSounds: ; 200e (0:200e)
ld [$c0ef], a
ld [$c0f0], a
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld [$c0ee], a
ld [$cfca], a
dec a
@@ -5825,7 +5825,7 @@ asm_2324: ; 2324 (0:2324)
ret z
.asm_2351
ld a, c
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, b
ld [$cfca], a
ld [$c0ee], a
@@ -5883,7 +5883,7 @@ PlayMusic: ; 23a1 (0:23a1)
ld b, a
ld [$c0ee], a
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, c
ld [$c0ef], a
ld [$c0f0], a
@@ -5904,7 +5904,7 @@ PlaySound: ; 23b1 (0:23b1)
ld [$c02c], a
ld [$c02d], a
.asm_23c8
- ld a, [W_CURCHANNELPOINTER]
+ ld a, [wMusicChannelPointer]
and a
jr z, .asm_23e3
ld a, [$c0ee]
@@ -5916,7 +5916,7 @@ PlaySound: ; 23b1 (0:23b1)
cp $ff
jr nz, .asm_2414
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
.asm_23e3
xor a
ld [$c0ee], a
@@ -5949,11 +5949,11 @@ PlaySound: ; 23b1 (0:23b1)
.asm_2414
ld a, b
ld [$cfca], a
- ld a, [W_CURCHANNELPOINTER]
+ ld a, [wMusicChannelPointer]
ld [$cfc8], a
ld [$cfc9], a
ld a, b
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
.asm_2425
pop bc
pop de
@@ -6677,12 +6677,12 @@ StoreSpriteOutputPointer: ; 2897 (0:2897)
ret
ResetPlayerSpriteData: ; 28a6 (0:28a6)
- ld hl, $c100
+ ld hl, wSpriteStateData1
call ResetPlayerSpriteData_ClearSpriteData
- ld hl, $c200
+ ld hl, wSpriteStateData2
call ResetPlayerSpriteData_ClearSpriteData
ld a, $1
- ld [$c100], a
+ ld [wSpriteStateData1], a
ld [$c20e], a
ld hl, $c104
ld [hl], $3c ; set Y screen pos
@@ -6698,7 +6698,7 @@ ResetPlayerSpriteData_ClearSpriteData: ; 28c4 (0:28c4)
jp FillMemory
Func_28cb: ; 28cb (0:28cb)
- ld a, [W_CURCHANNELPOINTER]
+ ld a, [wMusicChannelPointer]
and a
jr nz, .asm_28dc
ld a, [$d72c]
@@ -6733,10 +6733,10 @@ Func_28cb: ; 28cb (0:28cb)
ld [$FF00+$24], a
ret
.asm_2903
- ld a, [W_CURCHANNELPOINTER]
+ ld a, [wMusicChannelPointer]
ld b, a
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, $ff
ld [$c0ee], a
call PlaySound
@@ -7015,10 +7015,10 @@ RedisplayStartMenu: ; 2adf (0:2adf)
.checkIfUpPressed
bit 6,a ; was Up pressed?
jr z,.checkIfDownPressed
- ld a,[W_CURMENUITEMID] ; menu selection
+ ld a,[wCurrentMenuItem] ; menu selection
and a
jr nz,.loop
- ld a,[W_OLDMENUITEMID]
+ ld a,[wLastMenuItem]
and a
jr nz,.loop
; if the player pressed tried to go past the top item, wrap around to the bottom
@@ -7028,7 +7028,7 @@ RedisplayStartMenu: ; 2adf (0:2adf)
jr nz,.wrapMenuItemId
dec a ; there are only 6 menu items without the pokedex
.wrapMenuItemId
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
call EraseMenuCursor
jr .loop
.checkIfDownPressed
@@ -7037,7 +7037,7 @@ RedisplayStartMenu: ; 2adf (0:2adf)
; if the player pressed tried to go past the bottom item, wrap around to the top
ld a,[$d74b]
bit 5,a ; does the player have the pokedex?
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld c,7 ; there are 7 menu items with the pokedex
jr nz,.checkIfPastBottom
dec c ; there are only 6 menu items without the pokedex
@@ -7046,20 +7046,20 @@ RedisplayStartMenu: ; 2adf (0:2adf)
jr nz,.loop
; the player went past the bottom, so wrap to the top
xor a
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
call EraseMenuCursor
jr .loop
.buttonPressed ; A, B, or Start button pressed
call PlaceUnfilledArrowMenuCursor
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$cc2d],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 W_SCREENTILESBUFFER to W_SCREENTILESBACKBUFFER2
+ call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
ld a,[$d74b]
bit 5,a ; does the player have the pokedex?
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
jr nz,.displayMenuItem
inc a ; adjust position to account for missing pokedex menu item
.displayMenuItem
@@ -7119,7 +7119,7 @@ SubtractAmountPaidFromMoney: ; 2b96 (0:2b96)
; adds the amount the player sold to their money
AddAmountSoldToMoney: ; 2b9e (0:2b9e)
- ld de,W_PLAYERMONEY1
+ ld de,wPlayerMoney + 2
ld hl,$ffa1 ; total price of items
ld c,3 ; length of money in bytes
ld a,$0b
@@ -7133,7 +7133,7 @@ AddAmountSoldToMoney: ; 2b9e (0:2b9e)
; function to remove an item (in varying quantities) from the player's bag or PC box
; INPUT:
-; HL = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
+; 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)
@@ -7150,7 +7150,7 @@ RemoveItemFromInventory: ; 2bbb (0:2bbb)
; function to add an item (in varying quantities) to the player's bag or PC box
; INPUT:
-; HL = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
+; HL = address of inventory (either wNumBagItems or wNumBoxItems)
; [$CF91] = item ID
; [$CF96] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
@@ -7170,7 +7170,7 @@ AddItemToInventory: ; 2bcf (0:2bcf)
ret
; INPUT:
-; [W_LISTMENUID] = list menu ID
+; [wListMenuID] = list menu ID
; [$cf8b] = address of the list (2 bytes)
DisplayListMenuID: ; 2be6 (0:2be6)
xor a
@@ -7204,7 +7204,7 @@ DisplayListMenuID: ; 2be6 (0:2be6)
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,[W_LISTMENUID]
+ ld a,[wListMenuID]
and a ; is it a PC pokemon list?
jr nz,.skipMovingSprites
call UpdateSprites ; move sprites
@@ -7216,13 +7216,13 @@ DisplayListMenuID: ; 2be6 (0:2be6)
jr c,.setMenuVariables
ld a,2 ; max menu item ID is 2 if the list has at least 2 entries
.setMenuVariables
- ld [W_MAXMENUITEMID],a
+ ld [wMaxMenuItem],a
ld a,4
- ld [W_TOPMENUITEMY],a
+ ld [wTopMenuItemY],a
ld a,5
- ld [W_TOPMENUITEMX],a
+ ld [wTopMenuItemX],a
ld a,%00000111 ; A button, B button, Select button
- ld [W_MENUWATCHEDKEYS],a
+ ld [wMenuWatchedKeys],a
ld c,10
call DelayFrames
@@ -7243,12 +7243,12 @@ DisplayListMenuIDLoop: ; 2c53 (0:2c53)
ld c,80
call DelayFrames
xor a
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
ld hl,Coord
ld a,l
- ld [W_MENUCURSORLOCATION],a
+ ld [wMenuCursorLocation],a
ld a,h
- ld [W_MENUCURSORLOCATION + 1],a
+ ld [wMenuCursorLocation + 1],a
jr .buttonAPressed
.notOldManBattle
call LoadGBPal
@@ -7259,16 +7259,16 @@ DisplayListMenuIDLoop: ; 2c53 (0:2c53)
bit 0,a ; was the A button pressed?
jp z,.checkOtherKeys
.buttonAPressed
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
call PlaceUnfilledArrowMenuCursor
ld a,$01
ld [$d12e],a
ld [$d12d],a
xor a
ld [$cc37],a
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld c,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add c
ld c,a
ld a,[$d12a] ; number of list entries
@@ -7279,7 +7279,7 @@ DisplayListMenuIDLoop: ; 2c53 (0:2c53)
jp c,ExitListMenu ; if so, exit the menu
ld a,c
ld [$cf92],a
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,ITEMLISTMENU
jr nz,.skipMultiplying
; if it's an item menu
@@ -7294,13 +7294,13 @@ DisplayListMenuIDLoop: ; 2c53 (0:2c53)
add hl,bc
ld a,[hl]
ld [$cf91],a
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
and a ; is it a PC pokemon list?
jr z,.pokemonList
push hl
call GetItemPrice
pop hl
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,ITEMLISTMENU
jr nz,.skipGettingQuantity
; if it's an item menu
@@ -7329,7 +7329,7 @@ DisplayListMenuIDLoop: ; 2c53 (0:2c53)
call CopyStringToCF4B ; copy name to $cf4b
ld a,$01
ld [$d12e],a
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$d12d],a
xor a
ld [$ffb7],a ; joypad state update flag
@@ -7343,7 +7343,7 @@ DisplayListMenuIDLoop: ; 2c53 (0:2c53)
jp nz,HandleItemListSwapping ; if so, allow the player to swap menu entries
ld b,a
bit 7,b ; was Down pressed?
- ld hl,W_LISTSCROLLOFFSET
+ ld hl,wListScrollOffset
jr z,.upPressed
.downPressed
ld a,[hl]
@@ -7367,7 +7367,7 @@ DisplayChooseQuantityMenu: ; 2d57 (0:2d57)
ld hl,Coord
ld b,1 ; height
ld c,3 ; width
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,PRICEDITEMLISTMENU
jr nz,.drawTextBox
; text box dimensions/coordinates for quantity and price
@@ -7379,7 +7379,7 @@ DisplayChooseQuantityMenu: ; 2d57 (0:2d57)
call TextBoxBorder
FuncCoord 16,10
ld hl,Coord
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,PRICEDITEMLISTMENU
jr nz,.printInitialQuantity
FuncCoord 8,10
@@ -7425,7 +7425,7 @@ DisplayChooseQuantityMenu: ; 2d57 (0:2d57)
.handleNewQuantity
FuncCoord 17,10
ld hl,Coord
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,PRICEDITEMLISTMENU
jr nz,.printQuantity
.printPrice
@@ -7496,7 +7496,7 @@ SpacesBetweenQuantityAndPriceText: ; 2e34 (0:2e34)
db " @"
ExitListMenu: ; 2e3b (0:2e3b)
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$d12d],a
ld a,$02
ld [$d12e],a
@@ -7522,9 +7522,9 @@ PrintListMenuEntries: ; 2e5a (0:2e5a)
ld a,[$cf8c]
ld d,a
inc de ; de = beginning of list entries
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
ld c,a
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,ITEMLISTMENU
ld a,c
jr nz,.skipMultiplying
@@ -7553,7 +7553,7 @@ PrintListMenuEntries: ; 2e5a (0:2e5a)
push hl
push hl
push de
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
and a
jr z,.pokemonPCMenu
cp a,$01
@@ -7575,7 +7575,7 @@ PrintListMenuEntries: ; 2e5a (0:2e5a)
ld a,4
sub b
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add b
call GetPartyMonName
pop hl
@@ -7601,7 +7601,7 @@ PrintListMenuEntries: ; 2e5a (0:2e5a)
ld c,$a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes
call PrintBCDNumber
.skipPrintingItemPrice
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
and a
jr nz,.skipPrintingPokemonLevel
.printPokemonLevel
@@ -7622,7 +7622,7 @@ PrintListMenuEntries: ; 2e5a (0:2e5a)
ld a,$04
sub b
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add b
ld [hl],a
call LoadMonData ; load pokemon info
@@ -7643,7 +7643,7 @@ PrintListMenuEntries: ; 2e5a (0:2e5a)
pop hl
pop de
inc de
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,ITEMLISTMENU
jr nz,.nextListEntry
.printItemQuantity
@@ -7909,7 +7909,7 @@ UseItem: ; 30bc (0:30bc)
; confirms the item toss and then tosses the item
; INPUT:
-; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
+; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [$cf91] = item ID
; [$cf92] = index of item within inventory
; [$cf96] = quantity to toss
@@ -8050,17 +8050,17 @@ ExecuteCurMapScriptInTable: ; 3160 (0:3160)
LoadGymLeaderAndCityName: ; 317f (0:317f)
push de
- ld de, W_GYMCITYNAME
+ ld de, wGymCityName
ld bc, $11
call CopyData ; load city name
pop hl
- ld de, W_GYMLEADERNAME
+ 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 W_TRAINERHEADERFLAGBIT)
+; 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)
@@ -8079,7 +8079,7 @@ ReadTrainerHeaderInfo: ; 3193 (0:3193)
and a
jr nz, .nonZeroOffset
ld a, [hl]
- ld [W_TRAINERHEADERFLAGBIT], a ; store flag's bit
+ ld [wTrainerHeaderFlagBit], a ; store flag's bit
jr .done
.nonZeroOffset
cp $2
@@ -8116,7 +8116,7 @@ TalkToTrainer: ; 31cc (0:31cc)
call ReadTrainerHeaderInfo ; read flag's bit
ld a, $2
call ReadTrainerHeaderInfo ; read flag's byte ptr
- ld a, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
ld c, a
ld b, $2
call HandleBitArray_Bank0 ; read trainer's flag
@@ -8139,7 +8139,7 @@ TalkToTrainer: ; 31cc (0:31cc)
call PreBattleSaveRegisters
ld hl, W_FLAGS_D733
set 4, [hl] ; activate map script index override (index is set below)
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 0, [hl] ; test if player is already being engaged by another trainer
ret nz
call EngageMapTrainer
@@ -8155,7 +8155,7 @@ CheckFightingMapTrainers: ; 3219 (0:3219)
jr nz, .trainerEngaging
xor a
ld [$cf13], a
- ld [W_TRAINERHEADERFLAGBIT], a
+ ld [wTrainerHeaderFlagBit], a
ret
.trainerEngaging
ld hl, W_FLAGS_D733
@@ -8166,7 +8166,7 @@ CheckFightingMapTrainers: ; 3219 (0:3219)
ld a, $4c
call Predef
ld a, BTN_RIGHT | BTN_LEFT | BTN_UP | BTN_DOWN
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
xor a
ldh [$b4], a
call TrainerWalkUpToPlayer_Bank0
@@ -8178,14 +8178,14 @@ Func_324c: ; 324c (0:324c)
ld a, [$d730]
and $1
ret nz
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$cf13]
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
Func_325d: ; 325d (0:325d)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call InitBattleEnemyParameters
ld hl, $d72d
set 6, [hl]
@@ -8202,14 +8202,14 @@ EndTrainerBattle: ; 3275 (0:3275)
set 6, [hl]
ld hl, $d72d
res 7, [hl]
- ld hl, W_FLAGS_CD60
+ 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, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
ld c, a
ld b, $1
call HandleBitArray_Bank0 ; flag trainer as fought
@@ -8233,7 +8233,7 @@ EndTrainerBattle: ; 3275 (0:3275)
ResetButtonPressedAndMapScript: ; 32c1 (0:32c1)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [H_CURRENTPRESSEDBUTTONS], a
ld [H_NEWLYPRESSEDBUTTONS], a
ld [H_NEWLYRELEASEDBUTTONS], a
@@ -8248,11 +8248,11 @@ TrainerWalkUpToPlayer_Bank0: ; 32cf (0:32cf)
; sets opponent type and mon set/lvl based on the engaging trainer data
InitBattleEnemyParameters: ; 32d7 (0:32d7)
- ld a, [W_ENGAGEDTRAINERCLASS]
+ ld a, [wEngagedTrainerClass]
ld [W_CUROPPONENT], a ; $d059
ld [W_ENEMYMONORTRAINERCLASS], a
cp $c8
- ld a, [W_ENGAGEDTRAINERSETNUM] ; $cd2e
+ ld a, [wEngagedTrainerSet] ; $cd2e
jr c, .noTrainer
ld [W_TRAINERNO], a ; $d05d
ret
@@ -8287,13 +8287,13 @@ CheckForEngagingTrainers: ; 3306 (0:3306)
call StoreTrainerHeaderPointer ; set trainer header pointer to current trainer
ld a, [de]
ld [$cf13], a ; store trainer flag's bit
- ld [W_TRAINERHEADERFLAGBIT], a
+ ld [wTrainerHeaderFlagBit], a
cp $ff
ret z
ld a, $2
call ReadTrainerHeaderInfo ; read trainer flag's byte ptr
ld b, $2
- ld a, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
ld c, a
call HandleBitArray_Bank0 ; read trainer flag
ld a, c
@@ -8307,15 +8307,15 @@ CheckForEngagingTrainers: ; 3306 (0:3306)
inc hl
ld a, [hl] ; read trainer engage distance
pop hl
- ld [W_TRAINERENGAGEDISTANCE], a
+ ld [wTrainerEngageDistance], a
ld a, [$cf13]
swap a
- ld [W_TRAINERSPRITEOFFSET], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; $cd3d
ld a, $39
call Predef ; indirect jump to CheckEngagePlayer (5690f (15:690f))
pop de
pop hl
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
and a
ret nz ; break if the trainer is engaging
.trainerAlreadyFought
@@ -8350,9 +8350,9 @@ EngageMapTrainer: ; 336a (0:336a)
ld e, a
add hl, de ; seek to engaged trainer data
ld a, [hli] ; load trainer class
- ld [W_ENGAGEDTRAINERCLASS], a
+ ld [wEngagedTrainerClass], a
ld a, [hl] ; load trainer mon set
- ld [W_ENEMYMONATTACKMOD], a ; $cd2e
+ ld [wEnemyMonAttackMod], a ; $cd2e
jp PlayTrainerMusic
Func_3381: ; 3381 (0:3381)
@@ -8408,7 +8408,7 @@ Func_33d4: ; 33d4 (0:33d4)
jp TextScriptEnd
Func_33dd: ; 33dd (0:33dd)
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
bit 0, a
ret nz
call EngageMapTrainer
@@ -8416,7 +8416,7 @@ Func_33dd: ; 33dd (0:33dd)
ret
PlayTrainerMusic: ; 33e8 (0:33e8)
- ld a, [W_ENGAGEDTRAINERCLASS]
+ ld a, [wEngagedTrainerClass]
cp $c8 + SONY1
ret z
cp $c8 + SONY2
@@ -8427,13 +8427,13 @@ PlayTrainerMusic: ; 33e8 (0:33e8)
and a
ret nz
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, $ff
call PlaySound ; stop music
ld a, BANK(Music_MeetEvilTrainer)
ld [$c0ef], a
ld [$c0f0], a
- ld a, [W_ENGAGEDTRAINERCLASS]
+ ld a, [wEngagedTrainerClass]
ld b, a
ld hl, EvilTrainerList
.evilTrainerListLoop
@@ -8658,7 +8658,7 @@ asm_3502: ; 3502 (0:3502)
; hl: output list
DecodeRLEList: ; 350c (0:350c)
xor a
- ld [W_RLEBYTECOUNTER], a ; count written bytes here
+ ld [wRLEByteCount], a ; count written bytes here
.listLoop
ld a, [de]
cp $ff
@@ -8668,9 +8668,9 @@ DecodeRLEList: ; 350c (0:350c)
ld a, [de]
ld b, $0
ld c, a ; number of bytes to be written
- ld a, [W_RLEBYTECOUNTER]
+ ld a, [wRLEByteCount]
add c
- ld [W_RLEBYTECOUNTER], a ; update total number of written bytes
+ ld [wRLEByteCount], a ; update total number of written bytes
ld a, [H_DOWNARROWBLINKCNT1] ; $FF00+$8b
call FillMemory ; write a c-times to output
inc de
@@ -8678,7 +8678,7 @@ DecodeRLEList: ; 350c (0:350c)
.endOfList
ld a, $ff
ld [hl], a ; write final $ff
- ld a, [W_RLEBYTECOUNTER]
+ ld a, [wRLEByteCount]
inc a ; include sentinel in counting
ret
@@ -8767,7 +8767,7 @@ Func_359e: ; 359e (0:359e)
; sets carry flag if not enough money
; sets zero flag if amounts match exactly
HasEnoughMoney: ; 35a6 (0:35a6)
- ld de, W_PLAYERMONEY3 ; $d347
+ ld de, wPlayerMoney ; $d347
ld hl, $ff9f
ld c, $3
jp StringCmp
@@ -8776,7 +8776,7 @@ HasEnoughMoney: ; 35a6 (0:35a6)
; sets carry flag if not enough coins
; sets zero flag if amounts match exactly
HasEnoughCoins: ; 35b1 (0:35b1)
- ld de, W_PLAYERCOINS1
+ ld de, wPlayerCoins
ld hl, $ffa0
ld c, $2
jp StringCmp
@@ -8901,7 +8901,7 @@ MoveSprite_: ; 363d (0:363d)
ld [$CD3B],a
ld [$CCD3],a
dec a
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
ld [$CD3A],a
ret
@@ -9000,8 +9000,8 @@ UncompressSpriteFromDE: ; 36eb (0:36eb)
jp UncompressSpriteData
SaveScreenTilesToBuffer2: ; 36f4 (0:36f4)
- ld hl, W_SCREENTILESBUFFER
- ld de, W_SCREENTILESBACKBUFFER2
+ ld hl, wTileMap
+ ld de, wTileMapBackup2
ld bc, $168
call CopyData
ret
@@ -9012,27 +9012,27 @@ LoadScreenTilesFromBuffer2: ; 3701 (0:3701)
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
ret
-; loads screen tiles stored in W_SCREENTILESBACKBUFFER2 but leaves H_AUTOBGTRANSFERENABLED disabled
+; loads screen tiles stored in wTileMapBackup2 but leaves H_AUTOBGTRANSFERENABLED disabled
LoadScreenTilesFromBuffer2DisableBGTransfer: ; 3709 (0:3709)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
- ld hl, W_SCREENTILESBACKBUFFER2
- ld de, W_SCREENTILESBUFFER
+ ld hl, wTileMapBackup2
+ ld de, wTileMap
ld bc, $168
call CopyData
ret
SaveScreenTilesToBuffer1: ; 3719 (0:3719)
- ld hl, W_SCREENTILESBUFFER
- ld de, W_SCREENTILESBACKBUFFER
+ ld hl, wTileMap
+ ld de, wTileMapBackup
ld bc, $168
jp CopyData
LoadScreenTilesFromBuffer1: ; 3725 (0:3725)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
- ld hl, W_SCREENTILESBACKBUFFER
- ld de, W_SCREENTILESBUFFER
+ ld hl, wTileMapBackup
+ ld de, wTileMap
ld bc, $168
call CopyData
ld a, $1
@@ -9164,7 +9164,7 @@ GetName: ; 376b (0:376b)
GetItemPrice: ; 37df (0:37df)
ld a, [H_LOADEDROMBANK]
push af
- ld a, [W_LISTMENUID] ; $cf94
+ ld a, [wListMenuID] ; $cf94
cp $1
ld a, $1
jr nz, .asm_37ed
@@ -9422,7 +9422,7 @@ CopyDataUntil: ; 3913 (0:3913)
ret
; Function to remove a pokemon from the party or the current box.
-; W_WHICHPOKEMON determines the pokemon.
+; wWhichPokemon determines the pokemon.
; [$cf95] == 0 specifies the party.
; [$cf95] != 0 specifies the current box.
RemovePokemon: ; 391f (0:391f)
@@ -9776,7 +9776,7 @@ HandleMenuInputPokemonSelection: ; 3ac2 (0:3ac2)
ld hl,Coord
call HandleDownArrowBlinkTiming ; blink down arrow (if any)
pop hl
- ld a,[W_MENUJOYPADPOLLCOUNT]
+ ld a,[wMenuJoypadPollCount]
dec a
jr z,.giveUpWaiting
jr .loop2
@@ -9787,7 +9787,7 @@ HandleMenuInputPokemonSelection: ; 3ac2 (0:3ac2)
pop af
ld [H_DOWNARROWBLINKCNT1],a ; restore previous values
xor a
- ld [W_MENUWRAPPINGENABLED],a ; disable menu wrapping
+ ld [wMenuWrappingEnabled],a ; disable menu wrapping
ret
.keyPressed
xor a
@@ -9797,40 +9797,40 @@ HandleMenuInputPokemonSelection: ; 3ac2 (0:3ac2)
bit 6,a ; pressed Up key?
jr z,.checkIfDownPressed
.upPressed
- ld a,[W_CURMENUITEMID] ; selected menu item
+ ld a,[wCurrentMenuItem] ; selected menu item
and a ; already at the top of the menu?
jr z,.alreadyAtTop
.notAtTop
dec a
- ld [W_CURMENUITEMID],a ; move selected menu item up one space
+ ld [wCurrentMenuItem],a ; move selected menu item up one space
jr .checkOtherKeys
.alreadyAtTop
- ld a,[W_MENUWRAPPINGENABLED]
+ ld a,[wMenuWrappingEnabled]
and a ; is wrapping around enabled?
jr z,.noWrappingAround
- ld a,[W_MAXMENUITEMID]
- ld [W_CURMENUITEMID],a ; wrap to the bottom of the menu
+ 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,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
inc a
ld c,a
- ld a,[W_MAXMENUITEMID]
+ ld a,[wMaxMenuItem]
cp c
jr nc,.notAtBottom
.alreadyAtBottom
- ld a,[W_MENUWRAPPINGENABLED]
+ 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 [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
.checkOtherKeys
- ld a,[W_MENUWATCHEDKEYS]
+ ld a,[wMenuWatchedKeys]
and b ; does the menu care about any of the pressed keys?
jp z,.loop1
.checkIfAButtonOrBButtonPressed
@@ -9839,7 +9839,7 @@ HandleMenuInputPokemonSelection: ; 3ac2 (0:3ac2)
jr z,.skipPlayingSound
.AButtonOrBButtonPressed
push hl
- ld hl,W_FLAGS_CD60
+ ld hl,wFlags_0xcd60
bit 5,[hl]
pop hl
jr nz,.skipPlayingSound
@@ -9851,7 +9851,7 @@ HandleMenuInputPokemonSelection: ; 3ac2 (0:3ac2)
pop af
ld [H_DOWNARROWBLINKCNT1],a ; restore previous values
xor a
- ld [W_MENUWRAPPINGENABLED],a ; disable menu wrapping
+ ld [wMenuWrappingEnabled],a ; disable menu wrapping
ld a,[$ffb5]
ret
.noWrappingAround
@@ -9861,22 +9861,22 @@ HandleMenuInputPokemonSelection: ; 3ac2 (0:3ac2)
jr .checkIfAButtonOrBButtonPressed
PlaceMenuCursor: ; 3b7c (0:3b7c)
- ld a,[W_TOPMENUITEMY]
+ ld a,[wTopMenuItemY]
and a ; is the y coordinate 0?
jr z,.adjustForXCoord
- ld hl,W_SCREENTILESBUFFER
+ ld hl,wTileMap
ld bc,20 ; screen width
.topMenuItemLoop
add hl,bc
dec a
jr nz,.topMenuItemLoop
.adjustForXCoord
- ld a,[W_TOPMENUITEMX]
+ ld a,[wTopMenuItemX]
ld b,$00
ld c,a
add hl,bc
push hl
- ld a,[W_OLDMENUITEMID]
+ ld a,[wLastMenuItem]
and a ; was the previous menu id 0?
jr z,.checkForArrow1
push af
@@ -9898,11 +9898,11 @@ PlaceMenuCursor: ; 3b7c (0:3b7c)
cp a,"▶" ; was an arrow next to the previously selected menu item?
jr nz,.skipClearingArrow
.clearArrow
- ld a,[W_TILEBEHINDCURSOR]
+ ld a,[wTileBehindCursor]
ld [hl],a
.skipClearingArrow
pop hl
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
and a
jr z,.checkForArrow2
push af
@@ -9923,16 +9923,16 @@ PlaceMenuCursor: ; 3b7c (0:3b7c)
ld a,[hl]
cp a,"▶" ; has the right arrow already been placed?
jr z,.skipSavingTile ; if so, don't lose the saved tile
- ld [W_TILEBEHINDCURSOR],a ; save tile before overwriting with right arrow
+ ld [wTileBehindCursor],a ; save tile before overwriting with right arrow
.skipSavingTile
ld a,"▶" ; place right arrow
ld [hl],a
ld a,l
- ld [W_MENUCURSORLOCATION],a
+ ld [wMenuCursorLocation],a
ld a,h
- ld [W_MENUCURSORLOCATION + 1],a
- ld a,[W_CURMENUITEMID]
- ld [W_OLDMENUITEMID],a
+ 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
@@ -9941,9 +9941,9 @@ PlaceMenuCursor: ; 3b7c (0:3b7c)
; this is used to mark the item that was first chosen to be swapped.
PlaceUnfilledArrowMenuCursor: ; 3bec (0:3bec)
ld b,a
- ld a,[W_MENUCURSORLOCATION]
+ ld a,[wMenuCursorLocation]
ld l,a
- ld a,[W_MENUCURSORLOCATION + 1]
+ ld a,[wMenuCursorLocation + 1]
ld h,a
ld [hl],$ec ; outline of right arrow
ld a,b
@@ -9951,9 +9951,9 @@ PlaceUnfilledArrowMenuCursor: ; 3bec (0:3bec)
; Replaces the menu cursor with a blank space.
EraseMenuCursor: ; 3bf9 (0:3bf9)
- ld a,[W_MENUCURSORLOCATION]
+ ld a,[wMenuCursorLocation]
ld l,a
- ld a,[W_MENUCURSORLOCATION + 1]
+ ld a,[wMenuCursorLocation + 1]
ld h,a
ld [hl]," "
ret
@@ -10406,7 +10406,7 @@ GiveItem: ; 3e2e (0:3e2e)
ld [$cf91], a
ld a, c
ld [$cf96], a
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
call AddItemToInventory
ret nc
call GetItemName ; $2fcf
@@ -10692,17 +10692,17 @@ Func_40b0: ; 40b0 (1:40b0)
ld [$cf10], a
ld [H_CURRENTPRESSEDBUTTONS], a
ld [$cc57], a
- ld [W_FLAGS_CD60], a
+ ld [wFlags_0xcd60], a
ld [$FF00+$9f], a
ld [$FF00+$a0], a
ld [$FF00+$a1], a
call HasEnoughMoney
jr c, .asm_40ff
- ld a, [W_PLAYERMONEY3] ; $d347
+ ld a, [wPlayerMoney] ; $d347
ld [$FF00+$9f], a
- ld a, [W_PLAYERMONEY2] ; $d348
+ ld a, [wPlayerMoney + 1] ; $d348
ld [$FF00+$a0], a
- ld a, [W_PLAYERMONEY1] ; $d349
+ ld a, [wPlayerMoney + 2] ; $d349
ld [$FF00+$a1], a
xor a
ld [$FF00+$a2], a
@@ -10712,18 +10712,18 @@ Func_40b0: ; 40b0 (1:40b0)
ld a, $d
call Predef ; indirect jump to Func_f71e (f71e (3:771e))
ld a, [$FF00+$a2]
- ld [W_PLAYERMONEY3], a ; $d347
+ ld [wPlayerMoney], a ; $d347
ld a, [$FF00+$a3]
- ld [W_PLAYERMONEY2], a ; $d348
+ ld [wPlayerMoney + 1], a ; $d348
ld a, [$FF00+$a4]
- ld [W_PLAYERMONEY1], a ; $d349
+ ld [wPlayerMoney + 2], a ; $d349
.asm_40ff
ld hl, $d732
set 2, [hl]
res 3, [hl]
set 6, [hl]
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $7
jp Predef ; indirect jump to HealParty (f6a5 (3:76a5))
@@ -10931,7 +10931,7 @@ IF _BLUE
ld a,SQUIRTLE ; which Pokemon to show first on the title screen
ENDC
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
call Func_4524
ld a, $9b
call Func_4533
@@ -11021,7 +11021,7 @@ INCBIN "baserom.gbc",$43db,$43ea - $43db
call Func_4496
jr .asm_443b
.asm_4459
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
call PlayCry
call WaitForSoundToFinish
call GBPalWhiteOutWithDelay3
@@ -11060,7 +11060,7 @@ Func_4496: ; 4496 (1:4496)
ld hl, TitleMons ; $4588
add hl, bc
ld a, [hl]
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
cp [hl]
jr z, .asm_449b
ld [hl], a
@@ -11102,8 +11102,8 @@ Func_44dd: ; 44dd (1:44dd)
call FarCopyData2
call CleanLCD_OAM
xor a
- ld [W_WHICHTRADE], a ; $cd3d
- ld hl, W_OAMBUFFER
+ ld [wWhichTrade], a ; $cd3d
+ ld hl, wOAMBuffer
ld de, $605a
ld b, $7
.asm_44fa
@@ -11116,10 +11116,10 @@ Func_44dd: ; 44dd (1:44dd)
ld [hli], a
add $8
ld e, a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [hli], a
inc a
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
inc hl
dec c
jr nz, .asm_44fd
@@ -11282,7 +11282,7 @@ LoadMonData_: ; 45b6 (1:45b6)
ld a,[$cc49]
cp a,$01
jr c,.getMonEntry
- ld hl,$d8a4 ; enemy pokemon 1 data
+ ld hl,wEnemyMons ; enemy pokemon 1 data
jr z,.getMonEntry
cp a,$02
ld hl,W_BOXMON1DATA ; box pokemon 1 data
@@ -11517,7 +11517,7 @@ UnusedNames: ; 4a92 (1:4a92)
db "マスター@"
db "エクセレント"
-; calculates the OAM data for all currently visible sprites and writes it to W_OAMBUFFER
+; calculates the OAM data for all currently visible sprites and writes it to wOAMBuffer
PrepareOAMData: ; 4b0f (1:4b0f)
ld a, [$cfcb]
dec a
@@ -11579,7 +11579,7 @@ PrepareOAMData: ; 4b0f (1:4b0f)
call Func_4bd1
ld a, [$FF00+$90]
ld e, a
- ld d, $c3 ; W_OAMBUFFER+x is buffer for OAM data
+ ld d, $c3 ; wOAMBuffer+x is buffer for OAM data
.spriteTilesLoop ; loops 4 times for the 4 tiles a sprite consists of
ld a, [$FF00+$92] ; temp for sprite Y position
add $10 ; Y=16 is top of screen (Y=0 is invisible)
@@ -12052,13 +12052,13 @@ NoMoreRoomForItemText: ; 4e2c (1:4e2c)
db "@"
UpdatePlayerSprite: ; 4e31 (1:4e31)
- ld a, [$c200]
+ ld a, [wSpriteStateData2]
and a
jr z, .asm_4e41
cp $ff
jr z, .asm_4e4a
dec a
- ld [$c200], a
+ ld [wSpriteStateData2], a
jr .asm_4e4a
.asm_4e41
FuncCoord 8, 9 ; $c45c
@@ -12073,7 +12073,7 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)
.asm_4e50
call Func_4c70
ld h, $c1
- ld a, [W_WALKCOUNTER] ; $cfc5
+ ld a, [wWalkCounter] ; $cfc5
and a
jr nz, .asm_4e90
ld a, [$d528]
@@ -12163,7 +12163,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
add l
ld l, a
ld a, [hl] ; read movement byte 2
- ld [W_CURSPRITEMOVEMENT2], a
+ ld [wCurSpriteMovement2], a
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
ld l, a
@@ -12189,7 +12189,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
jp z, UpdateSpriteMovementDelay ; c1x1 == 2
cp $3
jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3
- ld a, [W_WALKCOUNTER] ; $cfc5
+ 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
@@ -12234,7 +12234,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
call GenRandom
.asm_4f5f
ld b, a
- ld a, [W_CURSPRITEMOVEMENT2]
+ ld a, [wCurSpriteMovement2]
cp $d0
jr z, .moveDown ; movement byte 2 = $d0 forces down
cp $d1
@@ -12246,7 +12246,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
ld a, b
cp $40 ; a < $40: down (or left)
jr nc, .notDown
- ld a, [W_CURSPRITEMOVEMENT2]
+ ld a, [wCurSpriteMovement2]
cp $2
jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
.moveDown
@@ -12259,7 +12259,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
.notDown
cp $80 ; $40 <= a < $80: up (or right)
jr nc, .notUp
- ld a, [W_CURSPRITEMOVEMENT2]
+ ld a, [wCurSpriteMovement2]
cp $2
jr z, .moveRight ; movement byte 2 = $2 only allows left or right
.moveUp
@@ -12271,7 +12271,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
.notUp
cp $c0 ; $80 <= a < $c0: left (or up)
jr nc, .notLeft
- ld a, [W_CURSPRITEMOVEMENT2]
+ ld a, [wCurSpriteMovement2]
cp $1
jr z, .moveUp ; movement byte 2 = $1 only allows up or down
.moveLeft
@@ -12281,7 +12281,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
ld bc, $208
jr TryWalking
.notLeft ; $c0 <= a: right (or down)
- ld a, [W_CURSPRITEMOVEMENT2]
+ ld a, [wCurSpriteMovement2]
cp $1
jr z, .moveDown ; movement byte 2 = $1 only allows up or down
.moveRight
@@ -12571,7 +12571,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
jr .done
.spriteVisible
ld c, a
- ld a, [W_WALKCOUNTER] ; $cfc5
+ ld a, [wWalkCounter] ; $cfc5
and a
jr nz, .done ; if player is currently walking, we're done
call UpdateSpriteImage
@@ -12744,13 +12744,13 @@ getTileSpriteStandsOn: ; 5207 (1:5207)
add $14 ; screen X tile + 20
ld d, $0
ld e, a
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
add hl, bc
add hl, bc
add hl, bc
add hl, bc
add hl, bc
- add hl, de ; W_SCREENTILESBUFFER + 20*(screen Y tile + 1) + screen X tile
+ add hl, de ; wTileMap + 20*(screen Y tile + 1) + screen X tile
ret
; loads [de+a] into a
@@ -12845,7 +12845,7 @@ Func_52b7: ; 52b7 (1:52b7)
ld a, $6
ld b, a
asm_52ba: ; 52ba (1:52ba)
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add l
add b
@@ -12853,7 +12853,7 @@ asm_52ba: ; 52ba (1:52ba)
ret
Func_52c3: ; 52c3 (1:52c3)
- ld hl, $c200
+ ld hl, wSpriteStateData2
ld a, [H_CURRENTSPRITEOFFSET]
add $e
ld l, a
@@ -12861,7 +12861,7 @@ Func_52c3: ; 52c3 (1:52c3)
dec a
swap a
ld b, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
@@ -12880,7 +12880,7 @@ Func_52c3: ; 52c3 (1:52c3)
ld b, a
ld [$FF00+$e9], a
call Func_5301
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
@@ -12953,7 +12953,7 @@ Func_5317: ; 5317 (1:5317)
ld [hli], a
dec b
jr nz, .asm_535d
- ld hl, W_SCREENTILESBACKBUFFER
+ ld hl, wTileMapBackup
ld a, $fd
ld [hli], a
ld [hli], a
@@ -13025,7 +13025,7 @@ Func_5317: ; 5317 (1:5317)
ld a, $8
ld [rIE], a ; $FF00+$ff
ld hl, $d141
- ld de, W_SCREENTILESBACKBUFFER2
+ ld de, wTileMapBackup2
ld bc, $11
call Func_216f
ld a, $fe
@@ -13036,7 +13036,7 @@ Func_5317: ; 5317 (1:5317)
call Func_216f
ld a, $fe
ld [de], a
- ld hl, W_SCREENTILESBACKBUFFER
+ ld hl, wTileMapBackup
ld de, $c5d0
ld bc, $c8
call Func_216f
@@ -13047,7 +13047,7 @@ Func_5317: ; 5317 (1:5317)
ld a, [$FF00+$aa]
cp $2
jr z, .asm_5431
- ld hl, W_SCREENTILESBACKBUFFER2
+ ld hl, wTileMapBackup2
.asm_5415
ld a, [hli]
and a
@@ -13088,7 +13088,7 @@ Func_5317: ; 5317 (1:5317)
inc de
dec c
jr nz, .asm_5446
- ld de, W_ENEMYMONCOUNT ; $d89c
+ ld de, wEnemyPartyCount ; $d89c
ld bc, $194
.asm_5456
ld a, [hli]
@@ -13100,7 +13100,7 @@ Func_5317: ; 5317 (1:5317)
ld a, b
or c
jr nz, .asm_5456
- ld de, W_SCREENTILESBACKBUFFER
+ ld de, wTileMapBackup
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
ld c, $2
.asm_546a
@@ -13126,7 +13126,7 @@ Func_5317: ; 5317 (1:5317)
pop hl
jr .asm_546a
.asm_5489
- ld hl, W_PARTYMON6_MOVE4PP ; $d267
+ ld hl, W_PARTYMON6DATA + W_PARTYMON1_MOVE4PP - W_PARTYMON1DATA ; $d267
dec c
jr nz, .asm_546a
ld de, $c5d0
@@ -13266,7 +13266,7 @@ Func_5530
ld hl, Func_39bd5
ld b, $e
call Bankswitch
- ld hl, $d8a4
+ ld hl, wEnemyMons
call Func_57d6
jp .asm_565b
.asm_55b0
@@ -13538,7 +13538,7 @@ Func_57d6:
jp Func_57a2
Func_57f2:
- ld hl, $c3a0
+ ld hl, wTileMap
ld b, $6
ld c, $12
call Func_5ab3
@@ -13677,7 +13677,7 @@ Func_5849:
ld de, $cd4e
ld bc, $000b
call CopyData
- ld hl, $d8a4
+ ld hl, wEnemyMons
ld a, [$cd3e]
ld bc, $002c
call AddNTimes
@@ -13707,7 +13707,7 @@ Func_5849:
add hl, de
ld a, [hl]
ld [$cf91], a
- ld hl, $d8a4
+ ld hl, wEnemyMons
ld a, c
ld bc, $002c
call AddNTimes
@@ -13728,7 +13728,7 @@ Func_5849:
ld a, [hl]
ld [$cd3e], a
ld a, $a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, $2
ld [$c0f0], a
ld a, $e5
@@ -13825,7 +13825,7 @@ Func_5a5f: ; 5a5f (1:5a5f)
ld [W_ISLINKBATTLE], a ; $d12b
ld [$FF00+$b5], a
ld a, $a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, BANK(Music_Celadon)
ld [$c0f0], a
ld a, (Music_Celadon - $4000) / 3
@@ -14040,7 +14040,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
xor a
ld [$cd37], a
ld [$d72d], a
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $7
ld [hli], a
ld a, $6
@@ -14060,7 +14060,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
add a
add a
ld b, a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
add b
add $d0
ld [$cc42], a
@@ -14096,7 +14096,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
ld a, b
ld [$cc42], a
and $3
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
.asm_5ca1
ld a, [$FF00+$aa]
cp $2
@@ -14112,7 +14112,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
ld a, [$cc42]
and $8
jr nz, .asm_5ccc
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $2
jr z, .asm_5ccc
ld c, d
@@ -14137,12 +14137,12 @@ Func_5c0a: ; 5c0a (1:5c0a)
ld a, [$cc42]
and $8
jr nz, .asm_5d2d
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $2
jr z, .asm_5d2d
xor a
ld [$d700], a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
ld a, $f0
jr nz, .asm_5cfc
@@ -14161,7 +14161,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
ld c, $14
call DelayFrames
xor a
- ld [W_MENUJOYPADPOLLCOUNT], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; $cc34
ld [$cc42], a
inc a
ld [W_ISLINKBATTLE], a ; $d12b
@@ -14169,7 +14169,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
jr Func_5d5f
.asm_5d2d
xor a
- ld [W_MENUJOYPADPOLLCOUNT], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; $cc34
call Delay3
call Func_72d7
ld hl, UnnamedText_5d4d ; $5d4d
@@ -14290,7 +14290,7 @@ Func_5e2f: ; 5e2f (1:5e2f)
Func_5e42: ; 5e42 (1:5e42)
push hl
- ld hl, W_OWNEDPOKEMON ; $d2f7
+ ld hl, wPokedexOwned ; $d2f7
ld b, $13
call CountSetBits
pop hl
@@ -14347,16 +14347,16 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
ld de,OptionMenuCancelText
call PlaceString
xor a
- ld [W_CURMENUITEMID],a
- ld [W_OLDMENUITEMID],a
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
inc a
ld [$d358],a
ld [$cd40],a
ld a,3 ; text speed cursor Y coordinate
- ld [W_TOPMENUITEMY],a
+ ld [wTopMenuItemY],a
call SetCursorPositionsFromOptions
ld a,[$cd3d] ; text speed cursor X coordinate
- ld [W_TOPMENUITEMX],a
+ ld [wTopMenuItemX],a
ld a,$01
ld [H_AUTOBGTRANSFERENABLED],a ; enable auto background transfer
call Delay3
@@ -14375,7 +14375,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
jr nz,.exitMenu
bit 0,b ; A button pressed?
jr z,.checkDirectionKeys
- ld a,[W_TOPMENUITEMY]
+ ld a,[wTopMenuItemY]
cp a,16 ; is the cursor on Cancel?
jr nz,.loop
.exitMenu
@@ -14383,11 +14383,11 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
call PlaySound ; play sound
ret
.eraseOldMenuCursor
- ld [W_TOPMENUITEMX],a
+ ld [wTopMenuItemX],a
call EraseMenuCursor
jp .loop
.checkDirectionKeys
- ld a,[W_TOPMENUITEMY]
+ ld a,[wTopMenuItemY]
bit 7,b ; Down pressed?
jr nz,.downPressed
bit 6,b ; Up pressed?
@@ -14433,9 +14433,9 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
inc hl
.updateMenuVariables
add b
- ld [W_TOPMENUITEMY],a
+ ld [wTopMenuItemY],a
ld a,[hl]
- ld [W_TOPMENUITEMX],a
+ ld [wTopMenuItemX],a
call PlaceUnfilledArrowMenuCursor
jp .loop
.cursorInBattleAnimation
@@ -14617,7 +14617,7 @@ Func_60ca: ; 60ca (1:60ca)
ld bc, $d8a
xor a
call FillMemory
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld bc, $200
xor a
call FillMemory
@@ -14741,7 +14741,7 @@ Function61BC: ; 61bc (1:61bc)
ld [$C0EF],a
ld [$C0F0],a
ld a,$A
- ld [W_CURCHANNELPOINTER],a
+ ld [wMusicChannelPointer],a
ld a,$FF
ld [$C0EE],a
call PlaySound ; stop music
@@ -15144,7 +15144,7 @@ AskForMonNickname: ; 64eb (1:64eb)
push hl
ld a, [W_ISINBATTLE] ; $d057
dec a
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $4
ld c, $b
call z, ClearScreenArea ; only if in wild batle
@@ -15160,7 +15160,7 @@ AskForMonNickname: ; 64eb (1:64eb)
ld [$d125], a
call DisplayTextBoxID
pop hl
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr nz, .asm_654c
ld a, [$cfcb]
@@ -15209,7 +15209,7 @@ Func_655c: ; 655c (1:655c)
jr z, .asm_6594
ld hl, W_PARTYMON1NAME ; $d2b5
ld bc, $b
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld e, l
ld d, h
@@ -15243,15 +15243,15 @@ Func_6596: ; 6596 (1:6596)
call TextBoxBorder
call Func_68f8
ld a, $3
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $1
- ld [W_TOPMENUITEMX], a ; $cc25
- ld [W_OLDMENUITEMID], a ; $cc2a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wTopMenuItemX], a ; $cc25
+ ld [wLastMenuItem], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
ld a, $ff
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, $7
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, $50
ld [$cf4b], a
xor a
@@ -15270,13 +15270,13 @@ Func_6596: ; 6596 (1:6596)
.asm_65fc
call PlaceMenuCursor
.asm_65ff
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
push af
ld b, BANK(Func_716f7)
ld hl, Func_716f7
call Bankswitch ; indirect jump to Func_716f7 (716f7 (1c:56f7))
pop af
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
call GetJoypadStateLowSensitivity
ld a, [H_NEWLYPRESSEDBUTTONS]
and a
@@ -15353,21 +15353,21 @@ Func_6596: ; 6596 (1:6596)
ld [$ceea], a
ret
.asm_6692
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $5
jr nz, .asm_66a0
- ld a, [W_TOPMENUITEMX] ; $cc25
+ ld a, [wTopMenuItemX] ; $cc25
cp $11
jr z, .asm_668c
.asm_66a0
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $6
jr nz, .asm_66ae
- ld a, [W_TOPMENUITEMX] ; $cc25
+ ld a, [wTopMenuItemX] ; $cc25
cp $1
jr z, .asm_667e
.asm_66ae
- ld hl, W_MENUCURSORLOCATION ; $cc30
+ ld hl, wMenuCursorLocation ; $cc30
ld a, [hli]
ld h, [hl]
ld l, a
@@ -15416,10 +15416,10 @@ Func_6596: ; 6596 (1:6596)
ld [hl], $50
ret
.asm_6702
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $6
ret z
- ld a, [W_TOPMENUITEMX] ; $cc25
+ ld a, [wTopMenuItemX] ; $cc25
cp $11
jp z, .asm_6714
inc a
@@ -15429,10 +15429,10 @@ Func_6596: ; 6596 (1:6596)
ld a, $1
jr .asm_6755
.asm_6718
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $6
ret z
- ld a, [W_TOPMENUITEMX] ; $cc25
+ ld a, [wTopMenuItemX] ; $cc25
dec a
jp z, .asm_6728
dec a
@@ -15441,30 +15441,30 @@ Func_6596: ; 6596 (1:6596)
ld a, $11
jr .asm_6755
.asm_672c
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
dec a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
and a
ret nz
ld a, $6
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld a, $1
jr .asm_6755
.asm_673e
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
inc a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
cp $7
jr nz, .asm_6750
ld a, $1
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
jr .asm_6755
.asm_6750
cp $6
ret nz
ld a, $1
.asm_6755
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
jp EraseMenuCursor
Func_675b: ; 675b (1:675b)
@@ -15552,9 +15552,9 @@ Func_680e: ; 680e (1:680e)
jr nz, .asm_6867
call EraseMenuCursor
ld a, $11
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
ld a, $5
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld a, [$d07d]
cp $2
ld a, $9
@@ -15653,7 +15653,7 @@ Func_695d: ; 695d (1:695d)
call Unnamed_6a12
ld de, DefaultNamesPlayer ; $6aa8
call Func_6a6c
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr z, .asm_697a
ld hl, DefaultNamesPlayerList ; $6af2
@@ -15686,7 +15686,7 @@ Func_69a4: ; 69a4 (1:69a4)
call Unnamed_6a12 ; 0x69a4 call 0x6a12
ld de, DefaultNamesRival
call Func_6a6c
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr z, .asm_69c1
ld hl, DefaultNamesRivalList
@@ -15717,7 +15717,7 @@ UnnamedText_69e7: ; 69e7 (1:69e7)
Func_69ec: ; 69ec (1:69ec)
push de
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $c0b
call ClearScreenArea
ld c, $a
@@ -15808,7 +15808,7 @@ asm_6a19: ; 6a19 (1:6a19)
Func_6a6c: ; 6a6c (1:6a6c)
push de
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $a
ld c, $9
call TextBoxBorder
@@ -15822,15 +15822,15 @@ Func_6a6c: ; 6a6c (1:6a6c)
call PlaceString
call UpdateSprites
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
inc a
- ld [W_TOPMENUITEMX], a ; $cc25
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wTopMenuItemX], a ; $cc25
+ ld [wMenuWatchedKeys], a ; $cc29
inc a
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
inc a
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
jp HandleMenuInput
.namestring ; 6aa3 (1:6aa3)
@@ -15889,12 +15889,12 @@ TextTerminator_6b20: ; 6b20 (1:6b20)
; subtracts the amount the player paid from their money
; sets carry flag if there is enough money and unsets carry flag if not
SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
- ld de,W_PLAYERMONEY3
+ ld de,wPlayerMoney
ld hl,$ff9f ; total price of items
ld c,3 ; length of money in bytes
call StringCmp
ret c
- ld de,W_PLAYERMONEY1
+ ld de,wPlayerMoney + 2
ld hl,$ffa1 ; total price of items
ld c,3 ; length of money in bytes
ld a,$0c
@@ -15906,7 +15906,7 @@ SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
ret
HandleItemListSwapping: ; 6b44 (1:6b44)
- ld a,[W_LISTMENUID]
+ ld a,[wListMenuID]
cp a,ITEMLISTMENU
jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
push hl
@@ -15915,9 +15915,9 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
ld h,[hl]
ld l,a
inc hl ; hl = beginning of list entries
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add b
add a
ld c,a
@@ -15931,20 +15931,20 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
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
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
inc a
ld b,a
- ld a,[W_LISTSCROLLOFFSET] ; index of top (visible) menu item within the list
+ 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 c,20
call DelayFrames
jp DisplayListMenuIDLoop
.swapItems
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
inc a
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add b
ld b,a
ld a,[$cc35] ; ID of item chosen for swapping (counts from 1)
@@ -15963,9 +15963,9 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
inc hl ; hl = beginning of list entries
ld d,h
ld e,l ; de = beginning of list entries
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add b
add a
ld c,a
@@ -16027,7 +16027,7 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
ld [$d12a],a ; update number of items variable
cp a,1
jr nz,.skipSettingMaxMenuItemID
- ld [W_MAXMENUITEMID],a ; if the number of items is only one now, update the max menu item ID
+ ld [wMaxMenuItem],a ; if the number of items is only one now, update the max menu item ID
.skipSettingMaxMenuItemID
dec de
ld h,d
@@ -16046,8 +16046,8 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
jr .moveItemsUpLoop
.afterMovingItemsUp
xor a
- ld [W_LISTSCROLLOFFSET],a
- ld [W_CURMENUITEMID],a
+ ld [wListScrollOffset],a
+ ld [wCurrentMenuItem],a
.done
xor a
ld [$cc35],a ; 0 means no item is currently being swapped
@@ -16056,15 +16056,15 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
jp DisplayListMenuIDLoop
DisplayPokemartDialogue_: ; 6c20 (1:6c20)
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
ld [$d07e],a
call UpdateSprites ; move sprites
xor a
ld [$cf0a],a ; flag that is set if something is sold or bought
.loop
xor a
- ld [W_LISTSCROLLOFFSET],a
- ld [W_CURMENUITEMID],a
+ ld [wListScrollOffset],a
+ ld [wCurrentMenuItem],a
ld [$cc2f],a
inc a
ld [$cf93],a
@@ -16096,7 +16096,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld hl, Func_39bd5
ld b, BANK(Func_39bd5)
call Bankswitch
- ld a,[W_NUMBAGITEMS]
+ ld a,[wNumBagItems]
and a
jp z,.bagEmpty
ld hl,PokemonSellingGreetingText
@@ -16107,16 +16107,16 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld a,$13
ld [$d125],a
call DisplayTextBoxID ; draw money text box
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
ld a,l
ld [$cf8b],a
ld a,h
ld [$cf8c],a
xor a
ld [$cf93],a
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
ld a,ITEMLISTMENU
- ld [W_LISTMENUID],a
+ ld [wListMenuID],a
call DisplayListMenuID
jp c,.returnToMainPokemartMenu ; if the player closed the menu
.confirmItemSale ; if the player is trying to sell a specific item
@@ -16128,7 +16128,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call IsItemHM
jr c,.unsellableItem
ld a,PRICEDITEMLISTMENU
- ld [W_LISTMENUID],a
+ ld [wListMenuID],a
ld [$ff8e],a ; halve prices when selling
call DisplayChooseQuantityMenu
inc a
@@ -16156,7 +16156,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld [$cf0a],a
.skipSettingFlag1
call AddAmountSoldToMoney
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
call RemoveItemFromInventory
jp .sellMenuLoop
.unsellableItem
@@ -16190,11 +16190,11 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld a,h
ld [$cf8c],a
xor a
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
inc a
ld [$cf93],a
inc a ; a = 2 (PRICEDITEMLISTMENU)
- ld [W_LISTMENUID],a
+ ld [wListMenuID],a
call DisplayListMenuID
jr c,.returnToMainPokemartMenu ; if the player closed the menu
ld a,$63
@@ -16225,7 +16225,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
.buyItem
call .isThereEnoughMoney
jr c,.notEnoughMoney
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
call AddItemToInventory
jr nc,.bagFull
call SubtractAmountPaidFromMoney
@@ -16250,7 +16250,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call PrintText
jp .loop
.isThereEnoughMoney
- ld de,W_PLAYERMONEY3
+ ld de,wPlayerMoney
ld hl,$ff9f ; item price
ld c,3 ; length of money in bytes
jp StringCmp
@@ -16269,7 +16269,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld [$cfcb],a
call UpdateSprites ; move sprites
ld a,[$d07e]
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
ret
PokemartBuyingGreetingText: ; 6e0c (1:6e0c)
@@ -16318,7 +16318,7 @@ PokemartAnythingElseText: ; 6e3e (1:6e3e)
Func_6e43: ; 6e43 (1:6e43)
call SaveScreenTilesToBuffer1
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1NAME ; $d2b5
call GetPartyMonName
ld hl, $cd6d
@@ -16329,7 +16329,7 @@ Func_6e43: ; 6e43 (1:6e43)
Func_6e5b: ; 6e5b (1:6e5b)
ld hl, W_PARTYMON1_MOVE1 ; $d173
ld bc, $2c
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld d, h
ld e, l
@@ -16374,9 +16374,9 @@ Func_6e5b: ; 6e5b (1:6e5b)
ld a, [W_ISINBATTLE] ; $d057
and a
jp z, Func_6efe
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld b, a
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
cp b
jp nz, Func_6efe
ld h, d
@@ -16400,7 +16400,7 @@ Func_6eda: ; 6eda (1:6eda)
ld a, $14
ld [$d125], a
call DisplayTextBoxID
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jp nz, Func_6e5b
ld hl, UnnamedText_6fbe ; $6fbe
@@ -16425,7 +16425,7 @@ Func_6f07: ; 6f07 (1:6f07)
ld [$d125], a
call DisplayTextBoxID
pop hl
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
rra
ret c
ld bc, $fffc
@@ -16457,7 +16457,7 @@ Func_6f07: ; 6f07 (1:6f07)
ld a, [$FF00+$f6]
res 2, a
ld [$FF00+$f6], a
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $8
ld [hli], a
ld a, $5
@@ -16482,7 +16482,7 @@ Func_6f07: ; 6f07 (1:6f07)
bit 1, a
jr nz, .asm_6fab
push hl
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
ld b, $0
add hl, bc
@@ -16560,7 +16560,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6)
call PrintText
.skipShallWeHealYourPokemon
call YesNoChoicePokeCenter ; yes/no menu
- ld a, [W_CURMENUITEMID]
+ ld a, [wCurrentMenuItem]
and a
jr nz, .declinedHealing ; if the player chose No
call Func_7078
@@ -16575,7 +16575,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6)
ld hl, Func_70433
call Bankswitch ; do the healing machine animation
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, [$c0f0]
ld [$c0ef], a
ld a, [$d35b]
@@ -16681,7 +16681,7 @@ DisplayTextIDInit: ; 7096 (1:7096)
.skipDrawingTextBoxBorder
ld hl,$cfc4
set 0,[hl]
- ld hl,W_FLAGS_CD60
+ ld hl,wFlags_0xcd60
bit 4,[hl]
res 4,[hl]
jr nz,.skipMovingSprites
@@ -17095,7 +17095,7 @@ GetTextBoxIDText: ; 7367 (1:7367)
; hl = address of upper left corner of text box
GetAddressOfScreenCoords: ; 7375 (1:7375)
push bc
- ld hl,W_SCREENTILESBUFFER
+ ld hl,wTileMap
ld bc,20
.loop ; loop to add d rows to the base address
ld a,d
@@ -17268,7 +17268,7 @@ JapanesePokedexMenu: ; 74a1 (1:74a1)
call ClearScreenArea
FuncCoord 12, 1 ; $c3c0
ld hl, Coord
- ld de, W_PLAYERMONEY3 ; $d347
+ ld de, wPlayerMoney ; $d347
ld c, $a3
call PrintBCDNumber
ld hl, $d730
@@ -17288,16 +17288,16 @@ Function_74ea: ; 0x74ea, 1:34ea
ld [$d125], a
call DisplayTextBoxID
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, $2
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, $1
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $1
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
ld [$cc37], a
ld a, [$d730]
res 6, a
@@ -17314,17 +17314,17 @@ Function_74ea: ; 0x74ea, 1:34ea
.asm_7539
ld a, $1
ld [$d12e], a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$d12d], a
ld b, a
- ld a, [W_MAXMENUITEMID] ; $cc28
+ ld a, [wMaxMenuItem] ; $cc28
cp b
jr z, .asm_754c
ret
.asm_754c
ld a, $2
ld [$d12e], a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$d12d], a
scf
ret
@@ -17338,15 +17338,15 @@ DisplayYesNoTextBox: ; 7559 (1:7559)
ld [$d12d], a
ld [$d12e], a
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, $1
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, b
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, c
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
xor a
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wLastMenuItem], a ; $cc2a
ld [$cc37], a
push hl
ld hl, $d12c
@@ -17355,7 +17355,7 @@ DisplayYesNoTextBox: ; 7559 (1:7559)
jr z, .asm_758d
inc a
.asm_758d
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
pop hl
push hl
push hl
@@ -17407,10 +17407,10 @@ DisplayYesNoTextBox: ; 7559 (1:7559)
jr nz, .asm_7603
xor a
ld [$d12c], a
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
push af
push hl
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 5, [hl]
set 5, [hl]
pop hl
@@ -17420,7 +17420,7 @@ DisplayYesNoTextBox: ; 7559 (1:7559)
jr nz, .asm_75f0
pop af
pop hl
- ld [W_FLAGS_CD60], a
+ ld [wFlags_0xcd60], a
ld a, $90
call PlaySound
jr .asm_760f
@@ -17432,7 +17432,7 @@ DisplayYesNoTextBox: ; 7559 (1:7559)
bit 1, a
jr nz, .asm_7627
.asm_760f
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$d12d], a
and a
jr nz, .asm_7627
@@ -17445,7 +17445,7 @@ DisplayYesNoTextBox: ; 7559 (1:7559)
ret
.asm_7627
ld a, $1
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld [$d12d], a
ld a, $2
ld [$d12e], a
@@ -17527,7 +17527,7 @@ MenuStrings: ; 7671 (1:7671)
Function_76e1: ; 0x76e1, 1:36e1
xor a
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld [hli], a
ld [hli], a
ld [hli], a
@@ -17591,7 +17591,7 @@ Function_76e1: ; 0x76e1, 1:36e1
jr nz, .asm_7747
xor a
ld [$cd41], a
- ld de, W_WHICHTRADE ; $cd3d
+ ld de, wWhichTrade ; $cd3d
.asm_7752
push hl
ld hl, FieldMoveNames ; $778d
@@ -17651,14 +17651,14 @@ PokemonMenuEntries: ; 77c2 (1:77c2)
db "CANCEL@"
Func_77d6: ; 77d6 (1:77d6)
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1_MOVE1 ; $d173
ld bc, $2c
call AddNTimes
ld d, h
ld e, l
ld c, $5
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
.asm_77e9
push hl
.asm_77ea
@@ -17727,7 +17727,7 @@ Func_783f: ; 783f (1:783f)
ld de, W_ENEMYMONMAXHP ; $cff4
Func_7861: ; 7861 (1:7861)
- ld bc, W_HPBAROLDHP+1
+ ld bc, wHPBarOldHP+1
ld a, [hli]
ld [bc], a
ld a, [hl]
@@ -17744,12 +17744,12 @@ Func_7861: ; 7861 (1:7861)
ld b, [hl]
add b
ld [hld], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
ld a, [W_DAMAGE] ; $d0d7
ld b, [hl]
adc b
ld [hli], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
jr c, .asm_7890
ld a, [hld]
ld b, a
@@ -17765,11 +17765,11 @@ Func_7861: ; 7861 (1:7861)
.asm_7890
ld a, [de]
ld [hld], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
dec de
ld a, [de]
ld [hli], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
inc de
.asm_789c
ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -17782,7 +17782,7 @@ Func_7861: ; 7861 (1:7861)
ld hl, Coord
xor a
.asm_78aa
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
ld a, $48
call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
ld a, $0
@@ -17822,7 +17822,7 @@ Func_78e6: ; 78e6 (1:78e6)
xor a
ld [$cc2c], a
ld [$ccd3], a
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
bit 3, a
jr nz, Func_790c
ld a, $99
@@ -17832,11 +17832,11 @@ Func_78e6: ; 78e6 (1:78e6)
Func_790c: ; 790c (1:790c)
ld a, [$ccd3]
- ld [W_CURMENUITEMID], a ; $cc26
- ld hl, W_FLAGS_CD60
+ ld [wCurrentMenuItem], a ; $cc26
+ ld hl, wFlags_0xcd60
set 5, [hl]
call LoadScreenTilesFromBuffer2
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $8
ld c, $e
call TextBoxBorder
@@ -17845,7 +17845,7 @@ Func_790c: ; 790c (1:790c)
ld hl, Coord
ld de, PlayersPCMenuEntries ; $7af5
call PlaceString
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $2
ld [hli], a
dec a
@@ -17858,17 +17858,17 @@ Func_790c: ; 790c (1:790c)
ld [hli], a
xor a
ld [hl], a
- ld hl, W_LISTSCROLLOFFSET ; $cc36
+ ld hl, wListScrollOffset ; $cc36
ld [hli], a
ld [hl], a
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld [wPlayerMonNumber], a ; $cc2f
ld hl, UnnamedText_7b27 ; $7b27
call PrintText
call HandleMenuInput
bit 1, a
jp nz, Func_796d
call PlaceUnfilledArrowMenuCursor
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$ccd3], a
and a
jp z, Func_7a12
@@ -17878,18 +17878,18 @@ Func_790c: ; 790c (1:790c)
jp z, Func_7a8f
Func_796d: ; 796d (1:796d)
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
bit 3, a
jr nz, .asm_797c
ld a, $9a
call PlaySound
call WaitForSoundToFinish
.asm_797c
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
res 5, [hl]
call LoadScreenTilesFromBuffer2
xor a
- ld [W_LISTSCROLLOFFSET], a ; $cc36
+ ld [wListScrollOffset], a ; $cc36
ld [$cc2c], a
ld hl, $d730
res 6, [hl]
@@ -17899,9 +17899,9 @@ Func_796d: ; 796d (1:796d)
Func_7995: ; 7995 (1:7995)
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_LISTSCROLLOFFSET], a ; $cc36
- ld a, [W_NUMBAGITEMS] ; $d31d
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wListScrollOffset], a ; $cc36
+ ld a, [wNumBagItems] ; $d31d
and a
jr nz, Func_79ab
ld hl, UnnamedText_7b3b ; $7b3b
@@ -17911,7 +17911,7 @@ Func_7995: ; 7995 (1:7995)
Func_79ab: ; 79ab (1:79ab)
ld hl, UnnamedText_7b2c ; $7b2c
call PrintText
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
ld a, l
ld [$cf8b], a
ld a, h
@@ -17919,7 +17919,7 @@ Func_79ab: ; 79ab (1:79ab)
xor a
ld [$cf93], a
ld a, $3
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
@@ -17934,14 +17934,14 @@ Func_79ab: ; 79ab (1:79ab)
cp $ff
jp z, Func_79ab
.asm_79e7
- ld hl, W_NUMBOXITEMS ; $d53a
+ ld hl, wNumBoxItems ; $d53a
call AddItemToInventory
jr c, .asm_79f8
ld hl, UnnamedText_7b40 ; $7b40
call PrintText
jp Func_79ab
.asm_79f8
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, $ab
@@ -17953,9 +17953,9 @@ Func_79ab: ; 79ab (1:79ab)
Func_7a12: ; 7a12 (1:7a12)
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_LISTSCROLLOFFSET], a ; $cc36
- ld a, [W_NUMBOXITEMS] ; $d53a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wListScrollOffset], a ; $cc36
+ ld a, [wNumBoxItems] ; $d53a
and a
jr nz, Func_7a28
ld hl, UnnamedText_7b54 ; $7b54
@@ -17965,7 +17965,7 @@ Func_7a12: ; 7a12 (1:7a12)
Func_7a28: ; 7a28 (1:7a28)
ld hl, UnnamedText_7b45 ; $7b45
call PrintText
- ld hl, W_NUMBOXITEMS ; $d53a
+ ld hl, wNumBoxItems ; $d53a
ld a, l
ld [$cf8b], a
ld a, h
@@ -17973,7 +17973,7 @@ Func_7a28: ; 7a28 (1:7a28)
xor a
ld [$cf93], a
ld a, $3
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
call DisplayListMenuID
jp c, Func_790c
call IsKeyItem
@@ -17988,14 +17988,14 @@ Func_7a28: ; 7a28 (1:7a28)
cp $ff
jp z, Func_7a28
.asm_7a64
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
call AddItemToInventory
jr c, .asm_7a75
ld hl, UnnamedText_7b59 ; $7b59
call PrintText
jp Func_7a28
.asm_7a75
- ld hl, W_NUMBOXITEMS ; $d53a
+ ld hl, wNumBoxItems ; $d53a
call RemoveItemFromInventory
call WaitForSoundToFinish
ld a, $ab
@@ -18007,9 +18007,9 @@ Func_7a28: ; 7a28 (1:7a28)
Func_7a8f: ; 7a8f (1:7a8f)
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_LISTSCROLLOFFSET], a ; $cc36
- ld a, [W_NUMBOXITEMS] ; $d53a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wListScrollOffset], a ; $cc36
+ ld a, [wNumBoxItems] ; $d53a
and a
jr nz, Func_7aa5
ld hl, UnnamedText_7b54 ; $7b54
@@ -18019,7 +18019,7 @@ Func_7a8f: ; 7a8f (1:7a8f)
Func_7aa5: ; 7aa5 (1:7aa5)
ld hl, UnnamedText_7b5e ; $7b5e
call PrintText
- ld hl, W_NUMBOXITEMS ; $d53a
+ ld hl, wNumBoxItems ; $d53a
ld a, l
ld [$cf8b], a
ld a, h
@@ -18027,7 +18027,7 @@ Func_7aa5: ; 7aa5 (1:7aa5)
xor a
ld [$cf93], a
ld a, $3
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
push hl
call DisplayListMenuID
pop hl
@@ -18126,7 +18126,7 @@ _RemovePokemon: ; 7b68 (1:7b68)
ld a, [hl]
dec a
ld [hli], a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $0
add hl, bc
@@ -18147,9 +18147,9 @@ _RemovePokemon: ; 7b68 (1:7b68)
ld hl, $dd2a
ld d, $13
.asm_7b97
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
cp d
jr nz, .asm_7ba6
ld [hl], $ff
@@ -18174,7 +18174,7 @@ _RemovePokemon: ; 7b68 (1:7b68)
ld hl, W_BOXMON1DATA
ld bc, $21
.asm_7bcd
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld d, h
ld e, l
@@ -18198,13 +18198,13 @@ _RemovePokemon: ; 7b68 (1:7b68)
ld hl, $de06
.asm_7bfa
ld bc, $b
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld d, h
ld e, l
ld bc, $b
add hl, bc
- ld bc, W_OWNEDPOKEMON ; $d2f7
+ ld bc, wPokedexOwned ; $d2f7
ld a, [$cf95]
and a
jr z, .asm_7c15
@@ -18237,28 +18237,28 @@ Func_7c18: ; 7c18 (1:7c18)
SECTION "bank2",ROMX,BANK[$2]
-INCLUDE "music/headers/sfxheaders02.tx"
-INCLUDE "music/headers/musicheaders02.tx"
-
-INCLUDE "music/sfx/sfx_02_01.tx"
-INCLUDE "music/sfx/sfx_02_02.tx"
-INCLUDE "music/sfx/sfx_02_03.tx"
-INCLUDE "music/sfx/sfx_02_04.tx"
-INCLUDE "music/sfx/sfx_02_05.tx"
-INCLUDE "music/sfx/sfx_02_06.tx"
-INCLUDE "music/sfx/sfx_02_07.tx"
-INCLUDE "music/sfx/sfx_02_08.tx"
-INCLUDE "music/sfx/sfx_02_09.tx"
-INCLUDE "music/sfx/sfx_02_0a.tx"
-INCLUDE "music/sfx/sfx_02_0b.tx"
-INCLUDE "music/sfx/sfx_02_0c.tx"
-INCLUDE "music/sfx/sfx_02_0d.tx"
-INCLUDE "music/sfx/sfx_02_0e.tx"
-INCLUDE "music/sfx/sfx_02_0f.tx"
-INCLUDE "music/sfx/sfx_02_10.tx"
-INCLUDE "music/sfx/sfx_02_11.tx"
-INCLUDE "music/sfx/sfx_02_12.tx"
-INCLUDE "music/sfx/sfx_02_13.tx"
+INCLUDE "music/headers/sfxheaders02.asm"
+INCLUDE "music/headers/musicheaders02.asm"
+
+INCLUDE "music/sfx/sfx_02_01.asm"
+INCLUDE "music/sfx/sfx_02_02.asm"
+INCLUDE "music/sfx/sfx_02_03.asm"
+INCLUDE "music/sfx/sfx_02_04.asm"
+INCLUDE "music/sfx/sfx_02_05.asm"
+INCLUDE "music/sfx/sfx_02_06.asm"
+INCLUDE "music/sfx/sfx_02_07.asm"
+INCLUDE "music/sfx/sfx_02_08.asm"
+INCLUDE "music/sfx/sfx_02_09.asm"
+INCLUDE "music/sfx/sfx_02_0a.asm"
+INCLUDE "music/sfx/sfx_02_0b.asm"
+INCLUDE "music/sfx/sfx_02_0c.asm"
+INCLUDE "music/sfx/sfx_02_0d.asm"
+INCLUDE "music/sfx/sfx_02_0e.asm"
+INCLUDE "music/sfx/sfx_02_0f.asm"
+INCLUDE "music/sfx/sfx_02_10.asm"
+INCLUDE "music/sfx/sfx_02_11.asm"
+INCLUDE "music/sfx/sfx_02_12.asm"
+INCLUDE "music/sfx/sfx_02_13.asm"
Music2_Channel3DutyPointers: ; 0x8361
dw Music2_Channel3Duty1
@@ -18286,83 +18286,83 @@ Music2_Channel3Duty4: ; 0x83a3
Music2_Channel3Duty5: ; 0x83b3
db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
-INCLUDE "music/sfx/sfx_02_3f.tx"
-INCLUDE "music/sfx/sfx_02_5e.tx"
-INCLUDE "music/sfx/sfx_02_56.tx"
-INCLUDE "music/sfx/sfx_02_57.tx"
-INCLUDE "music/sfx/sfx_02_58.tx"
-INCLUDE "music/sfx/sfx_02_3c.tx"
-INCLUDE "music/sfx/sfx_02_59.tx"
-INCLUDE "music/sfx/sfx_02_5a.tx"
-INCLUDE "music/sfx/sfx_02_5b.tx"
-INCLUDE "music/sfx/sfx_02_5c.tx"
-INCLUDE "music/sfx/sfx_02_40.tx"
-INCLUDE "music/sfx/sfx_02_5d.tx"
-INCLUDE "music/sfx/sfx_02_3d.tx"
-INCLUDE "music/sfx/sfx_02_43.tx"
-INCLUDE "music/sfx/sfx_02_3e.tx"
-INCLUDE "music/sfx/sfx_02_44.tx"
-INCLUDE "music/sfx/sfx_02_45.tx"
-INCLUDE "music/sfx/sfx_02_46.tx"
-INCLUDE "music/sfx/sfx_02_47.tx"
-INCLUDE "music/sfx/sfx_02_48.tx"
-INCLUDE "music/sfx/sfx_02_49.tx"
-INCLUDE "music/sfx/sfx_02_4a.tx"
-INCLUDE "music/sfx/sfx_02_4b.tx"
-INCLUDE "music/sfx/sfx_02_4c.tx"
-INCLUDE "music/sfx/sfx_02_4d.tx"
-INCLUDE "music/sfx/sfx_02_4e.tx"
-INCLUDE "music/sfx/sfx_02_4f.tx"
-INCLUDE "music/sfx/sfx_02_50.tx"
-INCLUDE "music/sfx/sfx_02_51.tx"
-INCLUDE "music/sfx/sfx_02_52.tx"
-INCLUDE "music/sfx/sfx_02_53.tx"
-INCLUDE "music/sfx/sfx_02_54.tx"
-INCLUDE "music/sfx/sfx_02_55.tx"
-INCLUDE "music/sfx/sfx_02_5f.tx"
-INCLUDE "music/sfx/sfx_02_unused.tx"
-INCLUDE "music/sfx/sfx_02_1d.tx"
-INCLUDE "music/sfx/sfx_02_37.tx"
-INCLUDE "music/sfx/sfx_02_38.tx"
-INCLUDE "music/sfx/sfx_02_25.tx"
-INCLUDE "music/sfx/sfx_02_39.tx"
-INCLUDE "music/sfx/sfx_02_17.tx"
-INCLUDE "music/sfx/sfx_02_23.tx"
-INCLUDE "music/sfx/sfx_02_24.tx"
-INCLUDE "music/sfx/sfx_02_14.tx"
-INCLUDE "music/sfx/sfx_02_22.tx"
-INCLUDE "music/sfx/sfx_02_1a.tx"
-INCLUDE "music/sfx/sfx_02_1b.tx"
-INCLUDE "music/sfx/sfx_02_19.tx"
-INCLUDE "music/sfx/sfx_02_1f.tx"
-INCLUDE "music/sfx/sfx_02_20.tx"
-INCLUDE "music/sfx/sfx_02_16.tx"
-INCLUDE "music/sfx/sfx_02_21.tx"
-INCLUDE "music/sfx/sfx_02_15.tx"
-INCLUDE "music/sfx/sfx_02_1e.tx"
-INCLUDE "music/sfx/sfx_02_1c.tx"
-INCLUDE "music/sfx/sfx_02_18.tx"
-INCLUDE "music/sfx/sfx_02_2d.tx"
-INCLUDE "music/sfx/sfx_02_2a.tx"
-INCLUDE "music/sfx/sfx_02_2f.tx"
-INCLUDE "music/sfx/sfx_02_26.tx"
-INCLUDE "music/sfx/sfx_02_27.tx"
-INCLUDE "music/sfx/sfx_02_28.tx"
-INCLUDE "music/sfx/sfx_02_32.tx"
-INCLUDE "music/sfx/sfx_02_29.tx"
-INCLUDE "music/sfx/sfx_02_2b.tx"
-INCLUDE "music/sfx/sfx_02_30.tx"
-INCLUDE "music/sfx/sfx_02_2e.tx"
-INCLUDE "music/sfx/sfx_02_31.tx"
-INCLUDE "music/sfx/sfx_02_2c.tx"
-INCLUDE "music/sfx/sfx_02_33.tx"
-INCLUDE "music/sfx/sfx_02_34.tx"
-INCLUDE "music/sfx/sfx_02_35.tx"
-INCLUDE "music/sfx/sfx_02_36.tx"
+INCLUDE "music/sfx/sfx_02_3f.asm"
+INCLUDE "music/sfx/sfx_02_5e.asm"
+INCLUDE "music/sfx/sfx_02_56.asm"
+INCLUDE "music/sfx/sfx_02_57.asm"
+INCLUDE "music/sfx/sfx_02_58.asm"
+INCLUDE "music/sfx/sfx_02_3c.asm"
+INCLUDE "music/sfx/sfx_02_59.asm"
+INCLUDE "music/sfx/sfx_02_5a.asm"
+INCLUDE "music/sfx/sfx_02_5b.asm"
+INCLUDE "music/sfx/sfx_02_5c.asm"
+INCLUDE "music/sfx/sfx_02_40.asm"
+INCLUDE "music/sfx/sfx_02_5d.asm"
+INCLUDE "music/sfx/sfx_02_3d.asm"
+INCLUDE "music/sfx/sfx_02_43.asm"
+INCLUDE "music/sfx/sfx_02_3e.asm"
+INCLUDE "music/sfx/sfx_02_44.asm"
+INCLUDE "music/sfx/sfx_02_45.asm"
+INCLUDE "music/sfx/sfx_02_46.asm"
+INCLUDE "music/sfx/sfx_02_47.asm"
+INCLUDE "music/sfx/sfx_02_48.asm"
+INCLUDE "music/sfx/sfx_02_49.asm"
+INCLUDE "music/sfx/sfx_02_4a.asm"
+INCLUDE "music/sfx/sfx_02_4b.asm"
+INCLUDE "music/sfx/sfx_02_4c.asm"
+INCLUDE "music/sfx/sfx_02_4d.asm"
+INCLUDE "music/sfx/sfx_02_4e.asm"
+INCLUDE "music/sfx/sfx_02_4f.asm"
+INCLUDE "music/sfx/sfx_02_50.asm"
+INCLUDE "music/sfx/sfx_02_51.asm"
+INCLUDE "music/sfx/sfx_02_52.asm"
+INCLUDE "music/sfx/sfx_02_53.asm"
+INCLUDE "music/sfx/sfx_02_54.asm"
+INCLUDE "music/sfx/sfx_02_55.asm"
+INCLUDE "music/sfx/sfx_02_5f.asm"
+INCLUDE "music/sfx/sfx_02_unused.asm"
+INCLUDE "music/sfx/sfx_02_1d.asm"
+INCLUDE "music/sfx/sfx_02_37.asm"
+INCLUDE "music/sfx/sfx_02_38.asm"
+INCLUDE "music/sfx/sfx_02_25.asm"
+INCLUDE "music/sfx/sfx_02_39.asm"
+INCLUDE "music/sfx/sfx_02_17.asm"
+INCLUDE "music/sfx/sfx_02_23.asm"
+INCLUDE "music/sfx/sfx_02_24.asm"
+INCLUDE "music/sfx/sfx_02_14.asm"
+INCLUDE "music/sfx/sfx_02_22.asm"
+INCLUDE "music/sfx/sfx_02_1a.asm"
+INCLUDE "music/sfx/sfx_02_1b.asm"
+INCLUDE "music/sfx/sfx_02_19.asm"
+INCLUDE "music/sfx/sfx_02_1f.asm"
+INCLUDE "music/sfx/sfx_02_20.asm"
+INCLUDE "music/sfx/sfx_02_16.asm"
+INCLUDE "music/sfx/sfx_02_21.asm"
+INCLUDE "music/sfx/sfx_02_15.asm"
+INCLUDE "music/sfx/sfx_02_1e.asm"
+INCLUDE "music/sfx/sfx_02_1c.asm"
+INCLUDE "music/sfx/sfx_02_18.asm"
+INCLUDE "music/sfx/sfx_02_2d.asm"
+INCLUDE "music/sfx/sfx_02_2a.asm"
+INCLUDE "music/sfx/sfx_02_2f.asm"
+INCLUDE "music/sfx/sfx_02_26.asm"
+INCLUDE "music/sfx/sfx_02_27.asm"
+INCLUDE "music/sfx/sfx_02_28.asm"
+INCLUDE "music/sfx/sfx_02_32.asm"
+INCLUDE "music/sfx/sfx_02_29.asm"
+INCLUDE "music/sfx/sfx_02_2b.asm"
+INCLUDE "music/sfx/sfx_02_30.asm"
+INCLUDE "music/sfx/sfx_02_2e.asm"
+INCLUDE "music/sfx/sfx_02_31.asm"
+INCLUDE "music/sfx/sfx_02_2c.asm"
+INCLUDE "music/sfx/sfx_02_33.asm"
+INCLUDE "music/sfx/sfx_02_34.asm"
+INCLUDE "music/sfx/sfx_02_35.asm"
+INCLUDE "music/sfx/sfx_02_36.asm"
PlayBattleMusic: ; 0x90c6
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld [$d083], a
dec a
ld [$c0ee], a
@@ -20115,7 +20115,7 @@ Music_Cities1AlternateTempo: ; 0x9b81
ld [$cfc8], a
ld [$cfc9], a
ld a, $ff
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld c, $64
call DelayFrames
ld c, BANK(Music_Cities1)
@@ -20125,31 +20125,31 @@ Music_Cities1AlternateTempo: ; 0x9b81
ld de, Music_Cities1_branch_aa6f
jp Music2_OverwriteChannelPointer
-INCLUDE "music/pkmnhealed.tx"
-INCLUDE "music/routes1.tx"
-INCLUDE "music/routes2.tx"
-INCLUDE "music/routes3.tx"
-INCLUDE "music/routes4.tx"
-INCLUDE "music/indigoplateau.tx"
-INCLUDE "music/pallettown.tx"
-INCLUDE "music/unusedsong.tx"
-INCLUDE "music/cities1.tx"
-INCLUDE "music/sfx/sfx_02_3a.tx"
-INCLUDE "music/museumguy.tx"
-INCLUDE "music/meetprofoak.tx"
-INCLUDE "music/meetrival.tx"
-INCLUDE "music/sfx/sfx_02_41.tx"
-INCLUDE "music/sfx/sfx_02_3b.tx"
-INCLUDE "music/sfx/sfx_02_42.tx"
-INCLUDE "music/ssanne.tx"
-INCLUDE "music/cities2.tx"
-INCLUDE "music/celadon.tx"
-INCLUDE "music/cinnabar.tx"
-INCLUDE "music/vermilion.tx"
-INCLUDE "music/lavender.tx"
-INCLUDE "music/safarizone.tx"
-INCLUDE "music/gym.tx"
-INCLUDE "music/pokecenter.tx"
+INCLUDE "music/pkmnhealed.asm"
+INCLUDE "music/routes1.asm"
+INCLUDE "music/routes2.asm"
+INCLUDE "music/routes3.asm"
+INCLUDE "music/routes4.asm"
+INCLUDE "music/indigoplateau.asm"
+INCLUDE "music/pallettown.asm"
+INCLUDE "music/unusedsong.asm"
+INCLUDE "music/cities1.asm"
+INCLUDE "music/sfx/sfx_02_3a.asm"
+INCLUDE "music/museumguy.asm"
+INCLUDE "music/meetprofoak.asm"
+INCLUDE "music/meetrival.asm"
+INCLUDE "music/sfx/sfx_02_41.asm"
+INCLUDE "music/sfx/sfx_02_3b.asm"
+INCLUDE "music/sfx/sfx_02_42.asm"
+INCLUDE "music/ssanne.asm"
+INCLUDE "music/cities2.asm"
+INCLUDE "music/celadon.asm"
+INCLUDE "music/cinnabar.asm"
+INCLUDE "music/vermilion.asm"
+INCLUDE "music/lavender.asm"
+INCLUDE "music/safarizone.asm"
+INCLUDE "music/gym.asm"
+INCLUDE "music/pokecenter.asm"
SECTION "bank3",ROMX,BANK[$3]
@@ -20174,7 +20174,7 @@ _GetJoypadState: ; c000 (3:4000)
jr nz, DiscardButtonPresses
ld a, [H_OLDPRESSEDBUTTONS]
ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [W_JOYPADFORBIDDENBUTTONSMASK]
+ ld a, [wJoypadForbiddenButtonsMask]
and a
ret z
cpl
@@ -20969,7 +20969,7 @@ Func_c335: ; c335 (3:4335)
ld hl, $d73f
ld [hli], a
ld [hl], a
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld bc, $1e
call FillMemory
ret
@@ -21204,13 +21204,13 @@ Func_c52f: ; c52f (3:452f)
ret c
cp $e2
ret nc
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $3
ld c, $7
call TextBoxBorder
FuncCoord 1, 1 ; $c3b5
ld hl, Coord
- ld de, W_SAFARITIMER1 ; $d70d
+ ld de, wSafariSteps ; $d70d
ld bc, $203
call PrintNumber
FuncCoord 4, 1 ; $c3b8
@@ -21440,7 +21440,7 @@ Func_c69c: ; c69c (3:469c)
ld a, [$d13b]
and $3
jp nz, .asm_c74f
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wWhichPokemon], a ; $cf92
ld hl, W_PARTYMON1_STATUS ; $d16f
ld de, W_PARTYMON1 ; $d164
.asm_c6be
@@ -21473,11 +21473,11 @@ Func_c69c: ; c69c (3:469c)
ld a, [de]
ld [$d11e], a
push de
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1NAME ; $d2b5
call GetPartyMonName
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call EnableAutoTextBoxDrawing
ld a, $d0
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -21495,7 +21495,7 @@ Func_c69c: ; c69c (3:469c)
ld bc, $2c
add hl, bc
push hl
- ld hl, W_WHICHPOKEMON ; $cf92
+ ld hl, wWhichPokemon ; $cf92
inc [hl]
pop hl
jr .asm_c6be
@@ -22282,7 +22282,7 @@ UnnamedText_cdff: ; cdff (3:4dff)
; function to add an item (in varying quantities) to the player's bag or PC box
; INPUT:
-; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
+; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [$CF91] = item ID
; [$CF96] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
@@ -22294,10 +22294,10 @@ AddItemToInventory_: ; ce04 (3:4e04)
push hl
push hl
ld d,50 ; PC box can hold 50 items
- ld a,W_NUMBAGITEMS & $FF
+ ld a,wNumBagItems & $FF
cp l
jr nz,.checkIfInventoryFull
- ld a,W_NUMBAGITEMS >> 8
+ ld a,wNumBagItems >> 8
cp h
jr nz,.checkIfInventoryFull
; if the destination is the bag
@@ -22376,7 +22376,7 @@ AddItemToInventory_: ; ce04 (3:4e04)
; function to remove an item (in varying quantities) from the player's bag or PC box
; INPUT:
-; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
+; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [$CF92] = index (within the inventory) of the item to remove
; [$CF96] = quantity to remove
RemoveItemFromInventory_: ; ce74 (3:4e74)
@@ -22413,8 +22413,8 @@ RemoveItemFromInventory_: ; ce74 (3:4e74)
jr nz,.loop
; update menu info
xor a
- ld [W_LISTSCROLLOFFSET],a
- ld [W_CURMENUITEMID],a
+ ld [wListScrollOffset],a
+ ld [wCurrentMenuItem],a
ld [$cc2c],a
ld [$d07e],a
pop hl
@@ -22424,7 +22424,7 @@ RemoveItemFromInventory_: ; ce74 (3:4e74)
ld [$d12a],a
cp a,2
jr c,.done
- ld [W_MAXMENUITEMID],a
+ ld [wMaxMenuItem],a
jr .done
.skipMovingUpSlots
pop hl
@@ -26875,7 +26875,7 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
xor a
ld [$d700],a ; change player state to walking
dec a
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
call Func_2307 ; play walking music
jp LoadWalkingPlayerSpriteGraphics
; uses a simulated button press to make the player move forward
@@ -26943,7 +26943,7 @@ ItemUseEvoStone: ; da5b (3:5a5b)
jr z,.noEffect
pop af
ld [$cf92],a
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
ld a,1 ; remove 1 stone
ld [$cf96],a
jp RemoveItemFromInventory
@@ -27051,7 +27051,7 @@ ItemUseMedicine: ; dabb (3:5abb)
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 a,[W_PLAYERMONNUMBER]
+ ld a,[wPlayerMonNumber]
cp d ; is pokemon the item was used on active in battle?
jp nz,.doneHealing
; if it is active in battle
@@ -27073,10 +27073,10 @@ ItemUseMedicine: ; dabb (3:5abb)
inc hl ; hl = address of current HP
ld a,[hli]
ld b,a
- ld [W_HPBAROLDHP+1],a
+ ld [wHPBarOldHP+1],a
ld a,[hl]
ld c,a
- ld [W_HPBAROLDHP],a ; current HP stored at $ceeb (2 bytes, big-endian)
+ ld [wHPBarOldHP],a ; current HP stored at $ceeb (2 bytes, big-endian)
or b
jr nz,.notFainted
.fainted
@@ -27157,14 +27157,14 @@ ItemUseMedicine: ; dabb (3:5abb)
ld bc,32
add hl,bc ; hl now points to max HP
ld a,[hli]
- ld [W_HPBARMAXHP+1],a
+ ld [wHPBarMaxHP+1],a
ld a,[hl]
- ld [W_HPBARMAXHP],a ; max HP stored at $cee9 (2 bytes, big-endian)
+ ld [wHPBarMaxHP],a ; max HP stored at $cee9 (2 bytes, big-endian)
ld a,[$d152]
and a ; using Softboiled?
jp z,.notUsingSoftboiled2
; if using softboiled
- ld hl,W_HPBARMAXHP
+ ld hl,wHPBarMaxHP
ld a,[hli]
push af
ld a,[hli]
@@ -27181,7 +27181,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [$ceea],a
ld [H_DIVIDEND],a
ld a,[hl]
- ld [W_HPBARMAXHP],a
+ ld [wHPBarMaxHP],a
ld [H_DIVIDEND + 1],a
ld a,5
ld [H_DIVISOR],a
@@ -27194,17 +27194,17 @@ ItemUseMedicine: ; dabb (3:5abb)
push af
ld b,a
ld a,[hl]
- ld [W_HPBAROLDHP],a
+ ld [wHPBarOldHP],a
sub b
ld [hld],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
ld a,[H_QUOTIENT + 2]
ld b,a
ld a,[hl]
- ld [W_HPBAROLDHP+1],a
+ ld [wHPBarOldHP+1],a
sbc b
ld [hl],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
FuncCoord 4, 1 ; $c3b8
ld hl,Coord
ld a,[$cf92]
@@ -27256,9 +27256,9 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[hl]
add b
ld [hld],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
ld a,[hl]
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
jr nc,.noCarry
inc [hl]
ld a,[hl]
@@ -27294,22 +27294,22 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[hli]
srl a
ld [de],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
ld a,[hl]
rr a
inc de
ld [de],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
dec de
jr .doneHealingPartyHP
.setCurrentHPToMaxHp
ld a,[hli]
ld [de],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
inc de
ld a,[hl]
ld [de],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
dec de
.doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure
ld a,[$cf91]
@@ -27323,7 +27323,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld h,d
ld l,e
pop de
- ld a,[W_PLAYERMONNUMBER]
+ ld a,[wPlayerMonNumber]
cp d ; is pokemon the item was used on active in battle?
jr nz,.calculateHPBarCoords
; copy party HP to in-battle HP
@@ -28201,7 +28201,7 @@ ItemUsePPRestore: ; e31e (3:631e)
cp a,ELIXER
jp nc,.useElixir ; if Elixir or Max Elixir
ld a,$02
- ld [W_MOVEMENUTYPE],a
+ ld [wMoveMenuType],a
ld hl,RaisePPWhichTechniqueText
ld a,[$cd3d]
cp a,ETHER ; is it a PP Up?
@@ -28256,7 +28256,7 @@ ItemUsePPRestore: ; e31e (3:631e)
.afterRestoringPP ; after using a (Max) Ether/Elixir
ld a,[$cf92]
ld b,a
- ld a,[W_PLAYERMONNUMBER]
+ ld a,[wPlayerMonNumber]
cp b ; is the pokemon whose PP was restored active in battle?
jr nz,.skipUpdatingInBattleData
ld hl,W_PARTYMON1_MOVE1PP
@@ -28324,7 +28324,7 @@ ItemUsePPRestore: ; e31e (3:631e)
dec [hl]
dec [hl]
xor a
- ld hl,W_CURMENUITEMID
+ ld hl,wCurrentMenuItem
ld [hli],a
ld [hl],a ; zero the counter for number of moves that had their PP restored
ld b,4
@@ -28343,7 +28343,7 @@ ItemUsePPRestore: ; e31e (3:631e)
ld hl,$cc27 ; counter for number of moves that had their PP restored
inc [hl]
.nextMove
- ld hl,W_CURMENUITEMID
+ ld hl,wCurrentMenuItem
inc [hl]
pop bc
dec b
@@ -28417,7 +28417,7 @@ ItemUseTMHM: ; e479 (3:6479)
ld a,$14
ld [$d125],a
call DisplayTextBoxID ; yes/no menu
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
and a
jr z,.useMachine
ld a,2
@@ -28512,7 +28512,7 @@ PrintItemUseTextAndRemoveItem: ; e563 (3:6563)
call WaitForTextScrollButtonPress ; wait for button press
RemoveUsedItem: ; e571 (3:6571)
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
ld a,1 ; one item
ld [$cf96],a ; store quantity
jp RemoveItemFromInventory
@@ -28616,7 +28616,7 @@ GotOffBicycleText: ; e5fc (3:65fc)
; [$d11e] = mode
; 0: Pokemon Center healing
; 1: using a PP Up
-; [CURMENUITEMID] = index of move (when using a PP Up)
+; [wCurrentMenuItem] = index of move (when using a PP Up)
RestoreBonusPP: ; e606 (3:6606)
ld hl,W_PARTYMON1_MOVE1
ld bc,44
@@ -28642,7 +28642,7 @@ RestoreBonusPP: ; e606 (3:6606)
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
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
inc a
cp b
jr nz,.nextMove
@@ -28708,7 +28708,7 @@ AddBonusPP: ; e642 (3:6642)
; 02: current box
; 03: daycare
; 04: player's in-battle pokemon
-; [W_CURMENUITEMID] = move index
+; [wCurrentMenuItem] = move index
; OUTPUT:
; [$d11e] = max PP
GetMaxPP: ; e677 (3:6677)
@@ -28776,7 +28776,7 @@ GetSelectedMoveOffset: ; e6e3 (3:66e3)
call AddNTimes
GetSelectedMoveOffset2: ; e6e9 (3:66e9)
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld c,a
ld b,0
add hl,bc
@@ -28784,7 +28784,7 @@ GetSelectedMoveOffset2: ; e6e9 (3:66e9)
; confirms the item toss and then tosses the item
; INPUT:
-; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
+; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [$cf91] = item ID
; [$cf92] = index of item within inventory
; [$cf96] = quantity to toss
@@ -29026,7 +29026,7 @@ Func_e7a4: ; e7a4 (3:67a4)
ld de, W_BOXMON1DATA
ld bc, $c
call CopyData
- ld hl, W_PLAYERIDHI ; $d359
+ ld hl, wPlayerID ; $d359
ld a, [hli]
ld [de], a
inc de
@@ -29580,7 +29580,7 @@ asm_ef82: ; ef82 (3:6f82)
ld [$cd4d], a
ld a, $1
ld [$cd6a], a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1NAME ; $d2b5
call GetPartyMonName
ld hl, $d730
@@ -30000,7 +30000,7 @@ Func_f225: ; f225 (3:7225)
ld a, [$d728]
bit 0, a
ret z
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
bit 1, a
ret nz
xor a
@@ -30021,7 +30021,7 @@ Func_f225: ; f225 (3:7225)
ld a, [hl]
cp $10
jp nz, Func_f2dd
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 6, [hl]
set 6, [hl]
ret z
@@ -30064,7 +30064,7 @@ Func_f225: ; f225 (3:7225)
call MoveSprite
ld a, $a8
call PlaySound
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
set 1, [hl]
ret
@@ -30088,7 +30088,7 @@ Func_f2b5: ; f2b5 (3:72b5)
ld b, BANK(Func_79f54)
call Bankswitch ; indirect jump to Func_79f54 (79f54 (1e:5f54))
call DiscardButtonPresses
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call Func_f2dd
set 7, [hl]
ld a, [$d718]
@@ -30099,7 +30099,7 @@ Func_f2b5: ; f2b5 (3:72b5)
jp PlaySound
Func_f2dd: ; f2dd (3:72dd)
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
res 1, [hl]
res 6, [hl]
ret
@@ -30109,7 +30109,7 @@ _AddPokemonToParty: ; f2e5 (3:72e5)
ld a, [$cc49]
and $f
jr z, .asm_f2f2
- ld de, W_ENEMYMONCOUNT ; $d89c
+ ld de, wEnemyPartyCount ; $d89c
.asm_f2f2
ld a, [de]
inc a
@@ -30158,7 +30158,7 @@ _AddPokemonToParty: ; f2e5 (3:72e5)
ld a, [$cc49]
and $f
jr z, .asm_f34c
- ld hl, W_WATERRATE ; $d8a4
+ ld hl, wEnemyMons ; $d8a4
.asm_f34c
ld a, [$FF00+$e4]
dec a
@@ -30191,7 +30191,7 @@ _AddPokemonToParty: ; f2e5 (3:72e5)
dec a
ld c, a
ld b, $2
- ld hl, W_OWNEDPOKEMON ; $d2f7
+ ld hl, wPokedexOwned ; $d2f7
call _HandleBitArray
ld a, c
ld [$d153], a
@@ -30202,7 +30202,7 @@ _AddPokemonToParty: ; f2e5 (3:72e5)
push bc
call _HandleBitArray
pop bc
- ld hl, W_SEENPOKEMON ; $d30a
+ ld hl, wPokedexSeen ; $d30a
call _HandleBitArray
pop hl
push hl
@@ -30290,10 +30290,10 @@ _AddPokemonToParty: ; f2e5 (3:72e5)
ld a, $3e
call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8))
pop de
- ld a, [W_PLAYERIDHI] ; set trainer ID to player ID
+ ld a, [wPlayerID] ; set trainer ID to player ID
inc de
ld [de], a
- ld a, [W_PLAYERIDLO]
+ ld a, [wPlayerID + 1]
inc de
ld [de], a
push de
@@ -30430,11 +30430,11 @@ _AddEnemyMonToPlayerParty: ; f49d (3:749d)
dec a
ld c, a
ld b, $1
- ld hl, W_OWNEDPOKEMON
+ ld hl, wPokedexOwned
push bc
call _HandleBitArray ; add to owned pokemon
pop bc
- ld hl, W_SEENPOKEMON
+ ld hl, wPokedexSeen
call _HandleBitArray ; add to seen pokemon
and a
ret ; return success
@@ -30502,7 +30502,7 @@ Func_f51e: ; f51e (3:751e)
ld hl, W_PARTYMON1DATA ; $d16b
ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA ; $2c
.asm_f591
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
.asm_f597
push hl
@@ -30549,7 +30549,7 @@ Func_f51e: ; f51e (3:751e)
jr z, .asm_f5ec
ld hl, W_PARTYMON1OT ; $d273
.asm_f5e6
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
.asm_f5ec
ld bc, $b
@@ -30579,7 +30579,7 @@ Func_f51e: ; f51e (3:751e)
jr z, .asm_f62a
ld hl, W_PARTYMON1NAME ; $d2b5
.asm_f624
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
.asm_f62a
ld bc, $b
@@ -30971,21 +30971,21 @@ Func_f839: ; f839 (3:7839)
InitializePlayerData: ; f850 (3:7850)
call GenRandom
ld a, [H_RAND2]
- ld [W_PLAYERIDHI], a ; set player trainer id
+ ld [wPlayerID], a ; set player trainer id
call GenRandom
ld a, [H_RAND1]
- ld [W_PLAYERIDLO], a
+ 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, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
call InitializeEmptyList ; no items
- ld hl, W_NUMBOXITEMS ; $d53a
+ ld hl, wNumBoxItems ; $d53a
call InitializeEmptyList ; no boxed items
- ld hl, W_PLAYERMONEY2 ; $d348
+ ld hl, wPlayerMoney + 1 ; $d348
ld a, $30
ld [hld], a ; set money to 00 30 00 (3000)
xor a
@@ -30996,7 +30996,7 @@ InitializePlayerData: ; f850 (3:7850)
ld hl, W_OBTAINEDBADGES ; $d356
ld [hli], a ; no badges obtained
ld [hl], a ; XXX what's this?
- ld hl, W_PLAYERCOINS1 ; $d5a4
+ ld hl, wPlayerCoins ; $d5a4
ld [hli], a ; no coins
ld [hl], a
ld hl, W_GAMEPROGRESSFLAGS ; $d5f0
@@ -31014,7 +31014,7 @@ InitializeEmptyList: ; f8a0 (3:78a0)
Func_f8a5: ; f8a5 (3:78a5)
call Load16BitRegisters
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
.asm_f8ab
inc hl
ld a, [hli]
@@ -31110,7 +31110,7 @@ Func_f929: ; f929 (3:7929)
ld d, a
ld a, [$c106]
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld a, [H_DIVIDEND] ; $FF00+$95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
add l
add $4
@@ -31270,7 +31270,7 @@ UpdateHPBar_CalcNumberOfHPBarPixels: ; f9df (3:79df)
; predef $48
UpdateHPBar: ; fa1d (3:7a1d)
push hl
- ld hl, W_HPBAROLDHP
+ ld hl, wHPBarOldHP
ld a, [hli]
ld c, a ; old HP into bc
ld a, [hli]
@@ -31283,9 +31283,9 @@ UpdateHPBar: ; fa1d (3:7a1d)
push bc
call UpdateHPBar_CalcHPDifference
ld a, e
- ld [W_HPBARHPDIFFERENCE+1], a
+ ld [wHPBarHPDifference+1], a
ld a, d
- ld [W_HPBARHPDIFFERENCE], a
+ ld [wHPBarHPDifference], a
pop bc
pop de
call UpdateHPBar_CompareNewHPToOldHP
@@ -31294,26 +31294,26 @@ UpdateHPBar: ; fa1d (3:7a1d)
jr c, .HPdecrease
ld a, $1
.HPdecrease
- ld [W_HPBARDELTA], a
+ ld [wHPBarDelta], a
call Load16BitRegisters
- ld a, [W_HPBARNEWHP]
+ ld a, [wHPBarNewHP]
ld e, a
- ld a, [W_HPBARNEWHP+1]
+ ld a, [wHPBarNewHP+1]
ld d, a
.animateHPBarLoop
push de
- ld a, [W_HPBAROLDHP]
+ ld a, [wHPBarOldHP]
ld c, a
- ld a, [W_HPBAROLDHP+1]
+ ld a, [wHPBarOldHP+1]
ld b, a
call UpdateHPBar_CompareNewHPToOldHP
jr z, .animateHPBarDone
jr nc, .HPIncrease
dec bc ; subtract 1 HP
ld a, c
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
ld a, b
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
call UpdateHPBar_CalcOldNewHPBarPixels
ld a, e
sub d ; calc pixel difference
@@ -31321,9 +31321,9 @@ UpdateHPBar: ; fa1d (3:7a1d)
.HPIncrease
inc bc ; add 1 HP
ld a, c
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
ld a, b
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
call UpdateHPBar_CalcOldNewHPBarPixels
ld a, d
sub e ; calc pixel difference
@@ -31333,18 +31333,18 @@ UpdateHPBar: ; fa1d (3:7a1d)
jr z, .noPixelDifference
call UpdateHPBar_AnimateHPBar
.noPixelDifference
- ld a, [W_HPBARNEWHP]
- ld [W_HPBAROLDHP], a
- ld a, [W_HPBARNEWHP+1]
- ld [W_HPBAROLDHP+1], a
+ ld a, [wHPBarNewHP]
+ ld [wHPBarOldHP], a
+ ld a, [wHPBarNewHP+1]
+ ld [wHPBarOldHP+1], a
pop de
jr .animateHPBarLoop
.animateHPBarDone
pop de
ld a, e
- ld [W_HPBAROLDHP], a
+ ld [wHPBarOldHP], a
ld a, d
- ld [W_HPBAROLDHP+1], a
+ ld [wHPBarOldHP+1], a
or e
jr z, .monFainted
call UpdateHPBar_CalcOldNewHPBarPixels
@@ -31368,7 +31368,7 @@ UpdateHPBar_AnimateHPBar: ; fab1 (3:7ab1)
ld c, $2
call DelayFrames
pop de
- ld a, [W_HPBARDELTA] ; +1 or -1
+ ld a, [wHPBarDelta] ; +1 or -1
add e
cp $31
jr nc, .barFilledUp
@@ -31425,12 +31425,12 @@ UpdateHPBar_CalcHPDifference: ; fad7 (3:7ad7)
UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
push af
push de
- ld a, [W_LISTMENUID] ; $cf94
+ ld a, [wListMenuID] ; $cf94
and a
jr z, .asm_fb2d
- ld a, [W_HPBAROLDHP]
+ ld a, [wHPBarOldHP]
ld [$cef1], a
- ld a, [W_HPBAROLDHP+1]
+ ld a, [wHPBarOldHP+1]
ld [$cef0], a
push hl
ld a, [$FF00+$f6]
@@ -31463,7 +31463,7 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
; e: old pixels
UpdateHPBar_CalcOldNewHPBarPixels: ; fb30 (3:7b30)
push hl
- ld hl, W_HPBARMAXHP
+ ld hl, wHPBarMaxHP
ld a, [hli] ; max HP into de
ld e, a
ld a, [hli]
@@ -31684,7 +31684,7 @@ Func_128f6: ; 128f6 (4:68f6)
call Load16BitRegisters
ld a, $2
asm_128fb: ; 128fb (4:68fb)
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
push hl
ld a, [$cf99]
ld b, a
@@ -31878,7 +31878,7 @@ StatusScreen: ; 12953 (4:6953)
ld a, [$cc49]
cp $3
ret z
- ld a, [W_WHICHPOKEMON]
+ ld a, [wWhichPokemon]
jp SkipFixedLengthTextEntries
Unknown_12a95: ; 12a95 (4:6a95)
@@ -32040,7 +32040,7 @@ StatusScreen2: ; 12b57 (4:6b57)
push bc
push hl
push de
- ld hl, W_CURMENUITEMID
+ ld hl, wCurrentMenuItem
ld a, [hl]
push af
ld a, b
@@ -32602,7 +32602,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
dec c
jr .adjustMenuVariablesLoop
.storeMenuVariables
- ld hl,W_TOPMENUITEMY
+ ld hl,wTopMenuItemY
ld a,c
ld [hli],a ; top menu item Y
ld a,[$fff7]
@@ -32623,9 +32623,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
bit 1,a ; was the B button pressed?
jp nz,.loop
; if the B button wasn't pressed
- ld a,[W_MAXMENUITEMID]
+ ld a,[wMaxMenuItem]
ld b,a
- ld a,[W_CURMENUITEMID] ; menu selection
+ ld a,[wCurrentMenuItem] ; menu selection
cp b
jp z,.exitMenu ; if the player chose Cancel
dec b
@@ -32869,7 +32869,7 @@ StartMenu_Item: ; 13302 (4:7302)
call PrintText
jr .exitMenu
.notInLinkBattle
- ld bc,W_NUMBAGITEMS
+ ld bc,wNumBagItems
ld hl,$cf8b
ld a,c
ld [hli],a
@@ -32877,11 +32877,11 @@ StartMenu_Item: ; 13302 (4:7302)
xor a
ld [$cf93],a
ld a,ITEMLISTMENU
- ld [W_LISTMENUID],a
+ ld [wListMenuID],a
ld a,[$cc2c]
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
call DisplayListMenuID
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
ld [$cc2c],a
jr nc,.choseItem
.exitMenu
@@ -32910,7 +32910,7 @@ StartMenu_Item: ; 13302 (4:7302)
ld a,$06 ; use/toss menu
ld [$d125],a
call DisplayTextBoxID
- ld hl,W_TOPMENUITEMY
+ ld hl,wTopMenuItemY
ld a,11
ld [hli],a ; top menu item Y
ld a,14
@@ -32944,7 +32944,7 @@ StartMenu_Item: ; 13302 (4:7302)
call PrintText
jp ItemMenuLoop
.notBicycle2
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
and a
jr nz,.tossItem
.useItem
@@ -32999,7 +32999,7 @@ StartMenu_Item: ; 13302 (4:7302)
inc a
jr z,.tossZeroItems
.skipAskingQuantity
- ld hl,W_NUMBAGITEMS
+ ld hl,wNumBagItems
call TossItem
.tossZeroItems
jp ItemMenuLoop
@@ -33175,7 +33175,7 @@ DrawTrainerInfo: ; 1349a (4:749a)
call PlaceString
FuncCoord 8,4
ld hl,Coord
- ld de,W_PLAYERMONEY3
+ ld de,wPlayerMoney
ld c,$e3
call PrintBCDNumber
FuncCoord 9,6
@@ -33287,15 +33287,15 @@ StartMenu_Option: ; 135f6 (4:75f6)
Func_13613: ; 13613 (4:7613)
call Func_13653
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
call Func_13625
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
call Func_13625
jp RedrawPartyMenu_
Func_13625: ; 13625 (4:7625)
push af
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $28
call AddNTimes
ld c, $28
@@ -33305,7 +33305,7 @@ Func_13625: ; 13625 (4:7625)
dec c
jr nz, .asm_13633
pop af
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld bc, $10
call AddNTimes
ld de, $4
@@ -33323,7 +33323,7 @@ Func_13653: ; 13653 (4:7653)
ld a, [$cc35]
and a
jr nz, .asm_13661
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
inc a
ld [$cc35], a
ret
@@ -33333,8 +33333,8 @@ Func_13653: ; 13653 (4:7653)
ld a, [$cc35]
dec a
ld b, a
- ld a, [W_CURMENUITEMID] ; $cc26
- ld [W_WHICHTRADE], a ; $cd3d
+ ld a, [wCurrentMenuItem] ; $cc26
+ ld [wWhichTrade], a ; $cd3d
cp b
jr nz, .asm_1367b
xor a
@@ -33349,7 +33349,7 @@ Func_13653: ; 13653 (4:7653)
ld hl, W_PARTYMON1 ; $d164
ld d, h
ld e, l
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
add l
ld l, a
jr nc, .asm_1368e
@@ -33369,7 +33369,7 @@ Func_13653: ; 13653 (4:7653)
ld [de], a
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
ld bc, $2c
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
call AddNTimes
push hl
ld de, $cc97
@@ -33388,7 +33388,7 @@ Func_13653: ; 13653 (4:7653)
ld bc, $2c
call CopyData
ld hl, W_PARTYMON1OT ; $d273
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
call SkipFixedLengthTextEntries
push hl
ld de, $cc97
@@ -33406,7 +33406,7 @@ Func_13653: ; 13653 (4:7653)
ld bc, $b
call CopyData
ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
call SkipFixedLengthTextEntries
push hl
ld de, $cc97
@@ -33424,7 +33424,7 @@ Func_13653: ; 13653 (4:7653)
ld bc, $b
call CopyData
ld a, [$cc35]
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
xor a
ld [$cc35], a
ld [$d07d], a
@@ -33563,7 +33563,7 @@ Func_137aa: ; 137aa (4:77aa)
inc hl
or [hl]
jr z, .asm_1380a
- ld de, W_PLAYERMONEY1 ; $d349
+ ld de, wPlayerMoney + 2 ; $d349
ld c, $3
ld a, $b
call Predef ; indirect jump to Func_f81d (f81d (3:781d))
@@ -33590,7 +33590,7 @@ Func_137aa: ; 137aa (4:77aa)
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_LISTSCROLLOFFSET], a ; $cc36
+ ld [wListScrollOffset], a ; $cc36
ld hl, $d060
ld b, $18
.asm_1383e
@@ -33747,28 +33747,28 @@ Func_1392c: ; 1392c (4:792c)
inc c
.asm_13958
ld a, [hli]
- ld [W_HPBARMAXHP+1], a
+ ld [wHPBarMaxHP+1], a
ld a, [hl]
- ld [W_HPBARMAXHP], a
+ ld [wHPBarMaxHP], a
push bc
ld bc, $fff2
add hl, bc
pop bc
ld a, [hl]
- ld [W_HPBAROLDHP], a
+ ld [wHPBarOldHP], a
sub c
ld [hld], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
ld a, [hl]
- ld [W_HPBAROLDHP+1], a
+ ld [wHPBarOldHP+1], a
sbc b
ld [hl], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
jr nc, .asm_13982
xor a
ld [hli], a
ld [hl], a
- ld hl, W_HPBARNEWHP
+ ld hl, wHPBarNewHP
ld [hli], a
ld [hl], a
.asm_13982
@@ -33782,7 +33782,7 @@ Func_1392c: ; 1392c (4:792c)
ld hl, Coord
xor a
.asm_13990
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
ld a, $48
call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
ld hl, UnnamedText_1399e ; $799e
@@ -33951,7 +33951,7 @@ InitMapSprites: ; 1785b (5:785b)
call InitOutsideMapSprites
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,$c100
+ ld hl,wSpriteStateData1
ld de,$c20d
; Loop to copy picture ID's from $C1X0 to $C2XD for LoadMapSpriteTilePatterns.
.copyPictureIDLoop
@@ -33996,12 +33996,12 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
.checkIfAlreadyLoadedLoop
ld a,e
and a,$f0
- ld b,a ; b = offset of the $c200 sprite slot being checked against
+ ld b,a ; b = offset of the wSpriteStateData2 sprite slot being checked against
ld a,l
- and a,$f0 ; a = offset of current $c200 sprite slot
+ and a,$f0 ; a = offset of current wSpriteStateData2 sprite slot
cp b ; done checking all previous sprite slots?
jr z,.notAlreadyLoaded
- ld a,[de] ; picture ID of the $c200 sprite slot being checked against
+ ld a,[de] ; picture ID of the wSpriteStateData2 sprite slot being checked against
cp [hl] ; do the picture ID's match?
jp z,.alreadyLoaded
ld a,e
@@ -34148,7 +34148,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
.alreadyLoaded ; if the current picture ID has already had its tile patterns loaded
inc de
ld a,[de] ; a = VRAM slot for the current picture ID (from $C2YE)
- ld [hl],a ; store VRAM slot in current $c200 sprite slot (at $C2XE)
+ ld [hl],a ; store VRAM slot in current wSpriteStateData2 sprite slot (at $C2XE)
.nextSpriteSlot
ld a,l
add a,$10
@@ -34998,18 +34998,18 @@ EmotionBubbles: ; 17cbd (5:7cbd)
INCBIN "gfx/emotion_bubbles.2bpp"
Func_17d7d: ; 17d7d (5:7d7d)
- ld a, [W_PLAYERMONACCURACYMOD] ; $cd1e
+ ld a, [wPlayerMonAccuracyMod] ; $cd1e
cp $86
jr z, .asm_17d8d
cp $92
ret nz
- ld a, [W_PLAYERMONEVASIONMOD] ; $cd1f
+ ld a, [wPlayerMonEvasionMod] ; $cd1f
cp $8f
ret nz
.asm_17d8d
ld a, [W_NUMINPARTY] ; $d163
dec a
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wWhichPokemon], a ; $cf92
ld a, $1
ld [$ccd4], a
ld a, $32
@@ -35025,13 +35025,13 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
ld c, 50
call DelayFrames
ld hl, W_PLAYERMONMAXHP
- ld de, W_PLAYERSUBSITUTEHP
+ ld de, wPlayerSubstituteHP
ld bc, W_PLAYERBATTSTATUS2
ld a, [$ff00+$f3] ;whose turn?
and a
jr z, .notEnemy
ld hl, W_ENEMYMONMAXHP
- ld de, W_ENEMYSUBSITUTEHP
+ ld de, wEnemySubstituteHP
ld bc, W_ENEMYBATTSTATUS2
.notEnemy
ld a, [bc] ;load flags
@@ -35100,13 +35100,13 @@ UnnamedText_17e27: ; 17e27 (5:7e27)
db "@"
ActivatePC: ; 17e2c (5:7e2c)
- call SaveScreenTilesToBuffer2 ;XXX: copy background from W_SCREENTILESBUFFER to W_SCREENTILESBACKBUFFER2
+ call SaveScreenTilesToBuffer2 ;XXX: copy background from wTileMap to wTileMapBackup2
ld a, $99
call PlaySound ;XXX: play sound or stop music
ld hl, UnnamedText_17f23 ;player turned on PC
call PrintText
call WaitForSoundToFinish ;XXX: wait for sound to be done
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
set 3, [hl]
call LoadScreenTilesFromBuffer2 ;XXX: restore saved screen
call Delay3
@@ -35114,15 +35114,15 @@ PCMainMenu: ; 17e48 (5:7e48)
ld b, BANK(Func_213c8)
ld hl, Func_213c8
call Bankswitch
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
set 5, [hl]
call HandleMenuInput
bit 1, a ;if player pressed B
jp nz, LogOff
- ld a, [W_MAXMENUITEMID]
+ ld a, [wMaxMenuItem]
cp a, 2
jr nz, .next ;if not 2 menu items (not counting log off) (2 occurs before you get the pokedex)
- ld a, [W_CURMENUITEMID]
+ ld a, [wCurrentMenuItem]
and a
jp z, BillsPC ;if current menu item id is 0, it's bills pc
cp a, 1
@@ -35131,7 +35131,7 @@ PCMainMenu: ; 17e48 (5:7e48)
.next
cp a, 3
jr nz, .next2 ;if not 3 menu items (not counting log off) (3 occurs after you get the pokedex, before you beat the pokemon league)
- ld a, [W_CURMENUITEMID]
+ ld a, [wCurrentMenuItem]
and a
jp z, BillsPC ;if current menu item id is 0, it's bills pc
cp a, 1
@@ -35140,7 +35140,7 @@ PCMainMenu: ; 17e48 (5:7e48)
jp z, OaksPC ;if current menu item id is 2, it's oaks pc
jp LogOff ;otherwise, it's 3, and you're logging off
.next2
- ld a, [W_CURMENUITEMID]
+ ld a, [wCurrentMenuItem]
and a
jp z, BillsPC ;if current menu item id is 0, it's bills pc
cp a, 1
@@ -35151,7 +35151,7 @@ PCMainMenu: ; 17e48 (5:7e48)
jp z, PKMNLeague ;if current menu item id is 3, it's pkmnleague
jp LogOff ;otherwise, it's 4, and you're logging off
.playersPC
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
res 5, [hl]
set 3, [hl]
ld a, $9B
@@ -35205,7 +35205,7 @@ LogOff: ; 17f13 (5:7f13)
ld a, $9A
call PlaySound ;XXX: play sound or stop music
call WaitForSoundToFinish ;XXX: wait for sound to be done
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
res 3, [hl]
res 5, [hl]
ret
@@ -35228,7 +35228,7 @@ UnnamedText_17f32: ; 17f32 (5:7f32)
; removes one of the specified item ID [$FFdb] from bag (if existent)
RemoveItemByID: ; 17f37 (5:7f37)
- ld hl, W_BAGITEM01 ; $d31e
+ ld hl, wBagItems ; $d31e
ld a, [$FF00+$db]
ld b, a
xor a
@@ -35248,8 +35248,8 @@ RemoveItemByID: ; 17f37 (5:7f37)
ld a, $1
ld [$cf96], a
ld a, [$FF00+$dc]
- ld [W_WHICHPOKEMON], a ; $cf92
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld [wWhichPokemon], a ; $cf92
+ ld hl, wNumBagItems ; $d31d
jp RemoveItemFromInventory
SECTION "bank6",ROMX,BANK[$6]
@@ -35876,7 +35876,7 @@ PalletTownScript0: ; 18e81 (6:4e81)
ld a, (Music_MeetProfOak - $4000) / 3 ; “oak appears” music
call PlayMusic ; plays music
ld a,$FC
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
ld hl,$D74B
set 7,[hl]
@@ -35892,7 +35892,7 @@ PalletTownScript1: ; 18eb2 (6:4eb2)
ld [$FF8C],a
call DisplayTextID
ld a,$FF
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
ld a,0
ld [$CC4D],a
ld a,$15
@@ -35928,7 +35928,7 @@ PalletTownScript2: ; 18ed2 (6:4ed2)
ld [$FF8C],a
call MoveSprite
ld a,$FF
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
; trigger the next script
ld a,3
@@ -35944,12 +35944,12 @@ PalletTownScript3: ; 18f12 (6:4f12)
ld a,1
ld [$CF0D],a
ld a,$FC
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
ld a,1
ld [$FF8C],a
call DisplayTextID
ld a,$FF
- ld [W_JOYPADFORBIDDENBUTTONSMASK],a
+ ld [wJoypadForbiddenButtonsMask],a
ld a,1
ld [$CF13],a
xor a
@@ -36139,7 +36139,7 @@ ViridianCityScript1: ; 19062 (6:5062)
ld a, [$c235]
ld [$ff00+$ee], a
xor a
- ld [W_LISTSCROLLOFFSET], a
+ ld [wListScrollOffset], a
; set up battle for Old Man
ld a, $1
@@ -36164,13 +36164,13 @@ ViridianCityScript2: ; 1908f (6:508f)
call UpdateSprites
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $f
ld [$ff00+$8c], a
call DisplayTextID
xor a
ld [W_BATTLETYPE], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_VIRIDIANCITYCURSCRIPT], a
ret
@@ -36192,7 +36192,7 @@ ViridianCityScript_190cf: ; 190cf (6:50cf)
ld [$ccd3], a
xor a
ld [$c109], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
ViridianCityTextPointers: ; 190e4 (6:50e4)
@@ -36431,7 +36431,7 @@ PewterCityScript_1925e: ; 1925e (6:525e)
call ArePlayerCoordsInArray
ret nc
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $5
ld [$ff00+$8c], a
jp DisplayTextID
@@ -36456,7 +36456,7 @@ PewterCityScript1: ; 19280 (6:5280)
ld [$ff00+$8d], a
call Func_34b9
call Func_2307
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
set 4, [hl]
ld a, $d
ld [$ff00+$8c], a
@@ -36504,7 +36504,7 @@ PewterCityScript3: ; 192e9 (6:52e9)
ld a, $15
call Predef
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_PEWTERCITYCURSCRIPT], a
ret
@@ -36522,7 +36522,7 @@ PewterCityScript4: ; 19305 (6:5305)
ld [$ff00+$8d], a
call Func_34b9
call Func_2307
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
set 4, [hl]
ld a, $e
ld [$ff00+$8c], a
@@ -36570,7 +36570,7 @@ PewterCityScript6: ; 1936f (6:536f)
ld a, $15
call Predef
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_PEWTERCITYCURSCRIPT], a
ret
@@ -36730,7 +36730,7 @@ CeruleanCityScript: ; 19480 (6:5480)
CeruleanCityScript_1948c: ; 1948c (6:548c)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_CERULEANCITYCURSCRIPT], a
ld a, $5
ld [$cc4d], a
@@ -36749,14 +36749,14 @@ CeruleanCityScript4: ; 194a7 (6:54a7)
cp $ff
jp z, CeruleanCityScript_1948c
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d75b
set 7, [hl]
ld a, $2
ld [$ff00+$8c], a
call DisplayTextID
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_CERULEANCITYCURSCRIPT], a
ret
@@ -36802,7 +36802,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8)
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$d362]
cp $14
jr z, .asm_19535 ; 0x19526 $d
@@ -36850,7 +36850,7 @@ CeruleanCityScript1: ; 19567 (6:5567)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [$ff00+$8c], a
call DisplayTextID
@@ -36892,7 +36892,7 @@ CeruleanCityScript2: ; 195b1 (6:55b1)
jp z, CeruleanCityScript_1948c
call CeruleanCityScript_1955d
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d75a
set 0, [hl]
ld a, $1
@@ -36937,7 +36937,7 @@ CeruleanCityScript3: ; 19610 (6:5610)
ld a, $11
call Predef
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call Func_2307
ld a, $0
ld [W_CERULEANCITYCURSCRIPT], a
@@ -37257,7 +37257,7 @@ VermilionCityScript4: ; 19826 (6:5826)
VermilionCityScript2: ; 19833 (6:5833)
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $40
ld [$ccd3], a
ld [$ccd4], a
@@ -37273,7 +37273,7 @@ VermilionCityScript3: ; 1984e (6:584e)
and a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $0
ld [W_VERMILIONCITYCURSCRIPT], a
@@ -37882,7 +37882,7 @@ VermilionHouse3TextPointers: ; 19c15 (6:5c15)
VermilionHouse3Text1: ; 19c17 (6:5c17)
db $08 ; asm
ld a, $4
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
jp TextScriptEnd
@@ -38771,7 +38771,7 @@ Func_1a3e0: ; 1a3e0 (6:63e0)
call Func_1a609
jr nc, .asm_1a406
ld a, $fc
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d736
set 1, [hl]
ld a, $1
@@ -38843,7 +38843,7 @@ Func_1a44c: ; 1a44c (6:644c)
ld hl, W_FLAGS_D733
set 1, [hl]
ld a, $fc
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
Func_1a485: ; 1a485 (6:6485)
@@ -39037,7 +39037,7 @@ Func_1a5e7: ; 1a5e7 (6:65e7)
cp POKEMONTOWER_7
ret z
ld hl, RivalIDs ; $6605
- ld a, [W_ENGAGEDTRAINERCLASS]
+ ld a, [wEngagedTrainerClass]
ld b, a
.loop
ld a, [hli]
@@ -39190,7 +39190,7 @@ Func_1a672: ; 1a672 (6:6672)
and e
ret z
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d736
set 6, [hl]
call Func_3486
@@ -39573,7 +39573,7 @@ Func_1c98a: ; 1c98a (7:498a)
ld a, $14
ld [$d125], a
call DisplayTextBoxID
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jp z, InitGame
ld b, BANK(Func_73b6a)
@@ -39593,23 +39593,23 @@ Func_1c9c6: ; 1c9c6 (7:49c6)
ld [$cf8b], a
ld a, h
ld [$cf8c], a
- ld a, [W_LISTSCROLLOFFSET] ; $cc36
+ ld a, [wListScrollOffset] ; $cc36
push af
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_LISTSCROLLOFFSET], a ; $cc36
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wListScrollOffset], a ; $cc36
ld [$cf93], a
ld a, $4
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
call DisplayListMenuID
pop bc
ld a, b
- ld [W_LISTSCROLLOFFSET], a ; $cc36
+ ld [wListScrollOffset], a ; $cc36
ret c
ld hl, $d126
set 7, [hl]
ld hl, $cc5b
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
add a
ld d, $0
ld e, a
@@ -39674,7 +39674,7 @@ CinnabarIslandScript0: ; 1ca38 (7:4a38)
call Func_3486
xor a
ld [$c109], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [W_CINNABARISLANDCURSCRIPT], a
ret
@@ -39915,7 +39915,7 @@ OaksLabScript4: ; 1cbd2 (7:4bd2)
OaksLabScript5: ; 1cbfd (7:4bfd)
ld a, $fc
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $11
ld [$ff00+$8c], a
call DisplayTextID
@@ -39934,7 +39934,7 @@ OaksLabScript5: ; 1cbfd (7:4bfd)
ld hl, $d74b
set 1, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $6
ld [W_OAKSLABCURSCRIPT], a
@@ -40057,7 +40057,7 @@ OaksLabScript9: ; 1cd00 (7:4d00)
bit 0, a
ret nz
ld a, $fc
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [$ff00+$8c], a
ld a, $4
@@ -40099,7 +40099,7 @@ OaksLabScript9: ; 1cd00 (7:4d00)
ld hl, $d74b
set 2, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $a
ld [W_OAKSLABCURSCRIPT], a
@@ -40175,7 +40175,7 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
set 6, [hl]
set 7, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $8
ld [$d528], a
@@ -40185,7 +40185,7 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
OaksLabScript12: ; 1ce03 (7:4e03)
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $8
ld [$d528], a
call UpdateSprites
@@ -40246,7 +40246,7 @@ OaksLabScript14: ; 1ce6d (7:4e6d)
ld a, $11
call Predef
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call Func_2307 ; reset to map music
ld a, $12
ld [W_OAKSLABCURSCRIPT], a
@@ -40327,7 +40327,7 @@ OaksLabScript16: ; 1cf12 (7:4f12)
call EnableAutoTextBoxDrawing
call Func_2307
ld a, $fc
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call Function1CEFD
ld a, $16
ld [$ff00+$8c], a
@@ -40422,7 +40422,7 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
ld a, $5
ld [W_PALLETTOWNCURSCRIPT], a
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $12
ld [W_OAKSLABCURSCRIPT], a
@@ -40432,7 +40432,7 @@ OaksLabScript18: ; 1d009 (7:5009)
ret
Function1D00A: ; 1d00a (7:500a)
- ld hl, W_BAGITEM01
+ ld hl, wBagItems
ld bc, $0000
.asm_1d010
ld a, [hli]
@@ -40718,7 +40718,7 @@ asm_1d1e5: ; 1d1e5 (7:51e5)
ld hl, $d72e
set 3, [hl]
ld a, $fc
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $8
ld [W_OAKSLABCURSCRIPT], a
OaksLabMonChoiceEnd: ; 1d21f (7:521f)
@@ -41465,7 +41465,7 @@ CeruleanHouseText1: ; 1d6fd (7:56fd)
CeruleanHouseText2: ; 1d702 (7:5702)
db $08 ; asm
ld a, $6
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
jp TextScriptEnd
@@ -41550,7 +41550,7 @@ BikeShopText1: ; 1d745 (7:5745)
ld [$cc25], a
ld hl, $d730
set 6, [hl]
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $4
ld c, $f
call TextBoxBorder
@@ -42098,7 +42098,7 @@ VermilionDockScript: ; 1db52 (7:5b52)
ld [$c206], a
ld [$cd3b], a
dec a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
.asm_1db8d
bit 5, [hl]
@@ -42106,14 +42106,14 @@ VermilionDockScript: ; 1db52 (7:5b52)
ld a, [$cd38]
and a
ret nz
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
set 5, [hl]
ret
VermilionDock_1db9b: ; 1db9b (7:5b9b)
set 2, [hl]
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [$c0ee], a
call PlaySound
ld c, BANK(Music_Surfing)
@@ -42579,7 +42579,7 @@ Route2HouseText1: ; 1def4 (7:5ef4)
Route2HouseText2: ; 1def9 (7:5ef9)
db $08 ; asm
ld a, $1
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
jp TextScriptEnd
@@ -42669,7 +42669,7 @@ Route5GateScript1: ; 1df94 (7:5f94)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE5GATECURSCRIPT], a
ret
@@ -42814,7 +42814,7 @@ Route6GateScript1: ; 1e091 (7:6091)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE6GATECURSCRIPT], a
ret
@@ -42932,7 +42932,7 @@ Route7GateScript1: ; 1e16c (7:616c)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE7GATECURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -43037,7 +43037,7 @@ Route8GateScript1: ; 1e231 (7:6231)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE8GATECURSCRIPT], a
ret
@@ -43499,7 +43499,7 @@ Func_1e6ba: ; 1e6ba (7:66ba)
ld a, $80
ld [$ccd3], a
ld [$c109], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
jp Func_3486
Route22GateScript1: ; 1e6cd (7:66cd)
@@ -43507,7 +43507,7 @@ Route22GateScript1: ; 1e6cd (7:66cd)
and a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call Delay3
ld a, $0
ld [W_ROUTE22GATECURSCRIPT], a
@@ -43631,7 +43631,7 @@ BillsHouseScript2: ; 1e7a6 (7:67a6)
ld hl, $d7f2
set 6, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $3
ld [W_BILLSHOUSECURSCRIPT], a
ret
@@ -43641,7 +43641,7 @@ BillsHouseScript3: ; 1e7c5 (7:67c5)
bit 3, a
ret z
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $2
ld [$cf13], a
ld a, $c
@@ -43675,7 +43675,7 @@ BillsHouseScript4: ; 1e80d (7:680d)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d7f2
set 5, [hl]
ld hl, $d7f1
@@ -43820,7 +43820,7 @@ Func_1e915: ; 1e915 (7:6915)
ld hl, UnnamedText_1e93b ; $693b
call PrintText
call YesNoChoice
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr nz, .asm_1e932
ld a, $56
@@ -43888,17 +43888,17 @@ Func_1e988: ; 1e988 (7:6988)
jr asm_1e9ab
Func_1e997: ; 1e997 (7:6997)
- ld a, [W_SAFARITIMER1] ; $d70d
+ ld a, [wSafariSteps] ; $d70d
ld b, a
- ld a, [W_SAFARITIMER2] ; $d70e
+ ld a, [wSafariSteps + 1] ; $d70e
ld c, a
or b
jr z, asm_1e9b0
dec bc
ld a, b
- ld [W_SAFARITIMER1], a ; $d70d
+ ld [wSafariSteps], a ; $d70d
ld a, c
- ld [W_SAFARITIMER2], a ; $d70e
+ ld [wSafariSteps + 1], a ; $d70e
asm_1e9ab: ; 1e9ab (7:69ab)
xor a
ld [$da46], a
@@ -43906,7 +43906,7 @@ asm_1e9ab: ; 1e9ab (7:69ab)
asm_1e9b0: ; 1e9b0 (7:69b0)
call EnableAutoTextBoxDrawing
xor a
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
dec a
call PlaySound
ld c, BANK(SFX_02_5f)
@@ -43935,7 +43935,7 @@ asm_1e9b0: ; 1e9b0 (7:69b0)
Func_1e9ed: ; 1e9ed (7:69ed)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, Unknown_1e9f7 ; $69f7
jp PrintText
@@ -43969,7 +43969,7 @@ UnnamedText_1ea12: ; 1ea12 (7:6a12)
INCBIN "baserom.gbc",$1ea25,$1ea26 - $1ea25
xor a
ld [$da38], a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
push af
and $f
ld [$FF00+$db], a
@@ -44040,7 +44040,7 @@ Func_1ea92: ; 1ea92 (7:6a92)
call YesNoChoice
ld a, [$FF00+$dc]
ld c, a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp c
jr nz, .asm_1eab8
ld hl, $d126
@@ -44248,7 +44248,7 @@ INCBIN "baserom.gbc",$1ec05,$1ec06 - $1ec05
.asm_1ec2d
ld hl, $d730
set 6, [hl]
- ld hl, $c3a0
+ ld hl, wTileMap
ld b, $a
ld c, $9
call TextBoxBorder
@@ -44307,28 +44307,28 @@ UnnamedText_1ecbd: ; 1ecbd (7:6cbd)
SECTION "bank8",ROMX,BANK[$8]
-INCLUDE "music/headers/sfxheaders08.tx"
-INCLUDE "music/headers/musicheaders08.tx"
-
-INCLUDE "music/sfx/sfx_08_01.tx"
-INCLUDE "music/sfx/sfx_08_02.tx"
-INCLUDE "music/sfx/sfx_08_03.tx"
-INCLUDE "music/sfx/sfx_08_04.tx"
-INCLUDE "music/sfx/sfx_08_05.tx"
-INCLUDE "music/sfx/sfx_08_06.tx"
-INCLUDE "music/sfx/sfx_08_07.tx"
-INCLUDE "music/sfx/sfx_08_08.tx"
-INCLUDE "music/sfx/sfx_08_09.tx"
-INCLUDE "music/sfx/sfx_08_0a.tx"
-INCLUDE "music/sfx/sfx_08_0b.tx"
-INCLUDE "music/sfx/sfx_08_0c.tx"
-INCLUDE "music/sfx/sfx_08_0d.tx"
-INCLUDE "music/sfx/sfx_08_0e.tx"
-INCLUDE "music/sfx/sfx_08_0f.tx"
-INCLUDE "music/sfx/sfx_08_10.tx"
-INCLUDE "music/sfx/sfx_08_11.tx"
-INCLUDE "music/sfx/sfx_08_12.tx"
-INCLUDE "music/sfx/sfx_08_13.tx"
+INCLUDE "music/headers/sfxheaders08.asm"
+INCLUDE "music/headers/musicheaders08.asm"
+
+INCLUDE "music/sfx/sfx_08_01.asm"
+INCLUDE "music/sfx/sfx_08_02.asm"
+INCLUDE "music/sfx/sfx_08_03.asm"
+INCLUDE "music/sfx/sfx_08_04.asm"
+INCLUDE "music/sfx/sfx_08_05.asm"
+INCLUDE "music/sfx/sfx_08_06.asm"
+INCLUDE "music/sfx/sfx_08_07.asm"
+INCLUDE "music/sfx/sfx_08_08.asm"
+INCLUDE "music/sfx/sfx_08_09.asm"
+INCLUDE "music/sfx/sfx_08_0a.asm"
+INCLUDE "music/sfx/sfx_08_0b.asm"
+INCLUDE "music/sfx/sfx_08_0c.asm"
+INCLUDE "music/sfx/sfx_08_0d.asm"
+INCLUDE "music/sfx/sfx_08_0e.asm"
+INCLUDE "music/sfx/sfx_08_0f.asm"
+INCLUDE "music/sfx/sfx_08_10.asm"
+INCLUDE "music/sfx/sfx_08_11.asm"
+INCLUDE "music/sfx/sfx_08_12.asm"
+INCLUDE "music/sfx/sfx_08_13.asm"
Music8_Channel3DutyPointers: ; 20361 (1f:4361)
dw Music8_Channel3Duty1
@@ -44356,105 +44356,105 @@ Music8_Channel3Duty4: ; 203a3 (8:43a3)
Music8_Channel3Duty5: ; 203b3 (8:43b3)
db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
-INCLUDE "music/sfx/sfx_08_40.tx"
-INCLUDE "music/sfx/sfx_08_3f.tx"
-INCLUDE "music/sfx/sfx_08_3c.tx"
-INCLUDE "music/sfx/sfx_08_3d.tx"
-INCLUDE "music/sfx/sfx_08_3e.tx"
-INCLUDE "music/sfx/sfx_08_77.tx"
-INCLUDE "music/sfx/sfx_08_41.tx"
-INCLUDE "music/sfx/sfx_08_42.tx"
-INCLUDE "music/sfx/sfx_08_43.tx"
-INCLUDE "music/sfx/sfx_08_44.tx"
-INCLUDE "music/sfx/sfx_08_45.tx"
-INCLUDE "music/sfx/sfx_08_pokeflute_ch3.tx"
-INCLUDE "music/sfx/sfx_08_47.tx"
-INCLUDE "music/sfx/sfx_08_48.tx"
-INCLUDE "music/sfx/sfx_08_49.tx"
-INCLUDE "music/sfx/sfx_08_4a.tx"
-INCLUDE "music/sfx/sfx_08_4b.tx"
-INCLUDE "music/sfx/sfx_08_4c.tx"
-INCLUDE "music/sfx/sfx_08_4d.tx"
-INCLUDE "music/sfx/sfx_08_4e.tx"
-INCLUDE "music/sfx/sfx_08_4f.tx"
-INCLUDE "music/sfx/sfx_08_50.tx"
-INCLUDE "music/sfx/sfx_08_51.tx"
-INCLUDE "music/sfx/sfx_08_52.tx"
-INCLUDE "music/sfx/sfx_08_53.tx"
-INCLUDE "music/sfx/sfx_08_54.tx"
-INCLUDE "music/sfx/sfx_08_55.tx"
-INCLUDE "music/sfx/sfx_08_56.tx"
-INCLUDE "music/sfx/sfx_08_57.tx"
-INCLUDE "music/sfx/sfx_08_58.tx"
-INCLUDE "music/sfx/sfx_08_59.tx"
-INCLUDE "music/sfx/sfx_08_5a.tx"
-INCLUDE "music/sfx/sfx_08_5b.tx"
-INCLUDE "music/sfx/sfx_08_5c.tx"
-INCLUDE "music/sfx/sfx_08_5d.tx"
-INCLUDE "music/sfx/sfx_08_5e.tx"
-INCLUDE "music/sfx/sfx_08_5f.tx"
-INCLUDE "music/sfx/sfx_08_60.tx"
-INCLUDE "music/sfx/sfx_08_61.tx"
-INCLUDE "music/sfx/sfx_08_62.tx"
-INCLUDE "music/sfx/sfx_08_63.tx"
-INCLUDE "music/sfx/sfx_08_64.tx"
-INCLUDE "music/sfx/sfx_08_65.tx"
-INCLUDE "music/sfx/sfx_08_66.tx"
-INCLUDE "music/sfx/sfx_08_67.tx"
-INCLUDE "music/sfx/sfx_08_68.tx"
-INCLUDE "music/sfx/sfx_08_69.tx"
-INCLUDE "music/sfx/sfx_08_6a.tx"
-INCLUDE "music/sfx/sfx_08_6b.tx"
-INCLUDE "music/sfx/sfx_08_6c.tx"
-INCLUDE "music/sfx/sfx_08_6d.tx"
-INCLUDE "music/sfx/sfx_08_6e.tx"
-INCLUDE "music/sfx/sfx_08_6f.tx"
-INCLUDE "music/sfx/sfx_08_70.tx"
-INCLUDE "music/sfx/sfx_08_71.tx"
-INCLUDE "music/sfx/sfx_08_72.tx"
-INCLUDE "music/sfx/sfx_08_73.tx"
-INCLUDE "music/sfx/sfx_08_74.tx"
-INCLUDE "music/sfx/sfx_08_75.tx"
-INCLUDE "music/sfx/sfx_08_76.tx"
-INCLUDE "music/sfx/sfx_08_unused.tx"
-INCLUDE "music/sfx/sfx_08_1d.tx"
-INCLUDE "music/sfx/sfx_08_37.tx"
-INCLUDE "music/sfx/sfx_08_38.tx"
-INCLUDE "music/sfx/sfx_08_25.tx"
-INCLUDE "music/sfx/sfx_08_39.tx"
-INCLUDE "music/sfx/sfx_08_17.tx"
-INCLUDE "music/sfx/sfx_08_23.tx"
-INCLUDE "music/sfx/sfx_08_24.tx"
-INCLUDE "music/sfx/sfx_08_14.tx"
-INCLUDE "music/sfx/sfx_08_22.tx"
-INCLUDE "music/sfx/sfx_08_1a.tx"
-INCLUDE "music/sfx/sfx_08_1b.tx"
-INCLUDE "music/sfx/sfx_08_19.tx"
-INCLUDE "music/sfx/sfx_08_1f.tx"
-INCLUDE "music/sfx/sfx_08_20.tx"
-INCLUDE "music/sfx/sfx_08_16.tx"
-INCLUDE "music/sfx/sfx_08_21.tx"
-INCLUDE "music/sfx/sfx_08_15.tx"
-INCLUDE "music/sfx/sfx_08_1e.tx"
-INCLUDE "music/sfx/sfx_08_1c.tx"
-INCLUDE "music/sfx/sfx_08_18.tx"
-INCLUDE "music/sfx/sfx_08_2d.tx"
-INCLUDE "music/sfx/sfx_08_2a.tx"
-INCLUDE "music/sfx/sfx_08_2f.tx"
-INCLUDE "music/sfx/sfx_08_26.tx"
-INCLUDE "music/sfx/sfx_08_27.tx"
-INCLUDE "music/sfx/sfx_08_28.tx"
-INCLUDE "music/sfx/sfx_08_32.tx"
-INCLUDE "music/sfx/sfx_08_29.tx"
-INCLUDE "music/sfx/sfx_08_2b.tx"
-INCLUDE "music/sfx/sfx_08_30.tx"
-INCLUDE "music/sfx/sfx_08_2e.tx"
-INCLUDE "music/sfx/sfx_08_31.tx"
-INCLUDE "music/sfx/sfx_08_2c.tx"
-INCLUDE "music/sfx/sfx_08_33.tx"
-INCLUDE "music/sfx/sfx_08_34.tx"
-INCLUDE "music/sfx/sfx_08_35.tx"
-INCLUDE "music/sfx/sfx_08_36.tx"
+INCLUDE "music/sfx/sfx_08_40.asm"
+INCLUDE "music/sfx/sfx_08_3f.asm"
+INCLUDE "music/sfx/sfx_08_3c.asm"
+INCLUDE "music/sfx/sfx_08_3d.asm"
+INCLUDE "music/sfx/sfx_08_3e.asm"
+INCLUDE "music/sfx/sfx_08_77.asm"
+INCLUDE "music/sfx/sfx_08_41.asm"
+INCLUDE "music/sfx/sfx_08_42.asm"
+INCLUDE "music/sfx/sfx_08_43.asm"
+INCLUDE "music/sfx/sfx_08_44.asm"
+INCLUDE "music/sfx/sfx_08_45.asm"
+INCLUDE "music/sfx/sfx_08_pokeflute_ch3.asm"
+INCLUDE "music/sfx/sfx_08_47.asm"
+INCLUDE "music/sfx/sfx_08_48.asm"
+INCLUDE "music/sfx/sfx_08_49.asm"
+INCLUDE "music/sfx/sfx_08_4a.asm"
+INCLUDE "music/sfx/sfx_08_4b.asm"
+INCLUDE "music/sfx/sfx_08_4c.asm"
+INCLUDE "music/sfx/sfx_08_4d.asm"
+INCLUDE "music/sfx/sfx_08_4e.asm"
+INCLUDE "music/sfx/sfx_08_4f.asm"
+INCLUDE "music/sfx/sfx_08_50.asm"
+INCLUDE "music/sfx/sfx_08_51.asm"
+INCLUDE "music/sfx/sfx_08_52.asm"
+INCLUDE "music/sfx/sfx_08_53.asm"
+INCLUDE "music/sfx/sfx_08_54.asm"
+INCLUDE "music/sfx/sfx_08_55.asm"
+INCLUDE "music/sfx/sfx_08_56.asm"
+INCLUDE "music/sfx/sfx_08_57.asm"
+INCLUDE "music/sfx/sfx_08_58.asm"
+INCLUDE "music/sfx/sfx_08_59.asm"
+INCLUDE "music/sfx/sfx_08_5a.asm"
+INCLUDE "music/sfx/sfx_08_5b.asm"
+INCLUDE "music/sfx/sfx_08_5c.asm"
+INCLUDE "music/sfx/sfx_08_5d.asm"
+INCLUDE "music/sfx/sfx_08_5e.asm"
+INCLUDE "music/sfx/sfx_08_5f.asm"
+INCLUDE "music/sfx/sfx_08_60.asm"
+INCLUDE "music/sfx/sfx_08_61.asm"
+INCLUDE "music/sfx/sfx_08_62.asm"
+INCLUDE "music/sfx/sfx_08_63.asm"
+INCLUDE "music/sfx/sfx_08_64.asm"
+INCLUDE "music/sfx/sfx_08_65.asm"
+INCLUDE "music/sfx/sfx_08_66.asm"
+INCLUDE "music/sfx/sfx_08_67.asm"
+INCLUDE "music/sfx/sfx_08_68.asm"
+INCLUDE "music/sfx/sfx_08_69.asm"
+INCLUDE "music/sfx/sfx_08_6a.asm"
+INCLUDE "music/sfx/sfx_08_6b.asm"
+INCLUDE "music/sfx/sfx_08_6c.asm"
+INCLUDE "music/sfx/sfx_08_6d.asm"
+INCLUDE "music/sfx/sfx_08_6e.asm"
+INCLUDE "music/sfx/sfx_08_6f.asm"
+INCLUDE "music/sfx/sfx_08_70.asm"
+INCLUDE "music/sfx/sfx_08_71.asm"
+INCLUDE "music/sfx/sfx_08_72.asm"
+INCLUDE "music/sfx/sfx_08_73.asm"
+INCLUDE "music/sfx/sfx_08_74.asm"
+INCLUDE "music/sfx/sfx_08_75.asm"
+INCLUDE "music/sfx/sfx_08_76.asm"
+INCLUDE "music/sfx/sfx_08_unused.asm"
+INCLUDE "music/sfx/sfx_08_1d.asm"
+INCLUDE "music/sfx/sfx_08_37.asm"
+INCLUDE "music/sfx/sfx_08_38.asm"
+INCLUDE "music/sfx/sfx_08_25.asm"
+INCLUDE "music/sfx/sfx_08_39.asm"
+INCLUDE "music/sfx/sfx_08_17.asm"
+INCLUDE "music/sfx/sfx_08_23.asm"
+INCLUDE "music/sfx/sfx_08_24.asm"
+INCLUDE "music/sfx/sfx_08_14.asm"
+INCLUDE "music/sfx/sfx_08_22.asm"
+INCLUDE "music/sfx/sfx_08_1a.asm"
+INCLUDE "music/sfx/sfx_08_1b.asm"
+INCLUDE "music/sfx/sfx_08_19.asm"
+INCLUDE "music/sfx/sfx_08_1f.asm"
+INCLUDE "music/sfx/sfx_08_20.asm"
+INCLUDE "music/sfx/sfx_08_16.asm"
+INCLUDE "music/sfx/sfx_08_21.asm"
+INCLUDE "music/sfx/sfx_08_15.asm"
+INCLUDE "music/sfx/sfx_08_1e.asm"
+INCLUDE "music/sfx/sfx_08_1c.asm"
+INCLUDE "music/sfx/sfx_08_18.asm"
+INCLUDE "music/sfx/sfx_08_2d.asm"
+INCLUDE "music/sfx/sfx_08_2a.asm"
+INCLUDE "music/sfx/sfx_08_2f.asm"
+INCLUDE "music/sfx/sfx_08_26.asm"
+INCLUDE "music/sfx/sfx_08_27.asm"
+INCLUDE "music/sfx/sfx_08_28.asm"
+INCLUDE "music/sfx/sfx_08_32.asm"
+INCLUDE "music/sfx/sfx_08_29.asm"
+INCLUDE "music/sfx/sfx_08_2b.asm"
+INCLUDE "music/sfx/sfx_08_30.asm"
+INCLUDE "music/sfx/sfx_08_2e.asm"
+INCLUDE "music/sfx/sfx_08_31.asm"
+INCLUDE "music/sfx/sfx_08_2c.asm"
+INCLUDE "music/sfx/sfx_08_33.asm"
+INCLUDE "music/sfx/sfx_08_34.asm"
+INCLUDE "music/sfx/sfx_08_35.asm"
+INCLUDE "music/sfx/sfx_08_36.asm"
Func_2136e: ; 2136e (8:536e)
ld a, [$d083]
@@ -44528,24 +44528,24 @@ Func_213c8: ; 213c8 (8:53c8)
ld a, [$d5a2]
and a
jr nz, .asm_213f3
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $8
ld c, $e
jr .asm_213fa
.asm_213ea
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $6
ld c, $e
jr .asm_213fa
.asm_213f3
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $a
ld c, $e
.asm_213fa
call TextBoxBorder
call UpdateSprites
ld a, $3
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, [$d7f1]
bit 0, a
jr nz, .asm_21414
@@ -44578,7 +44578,7 @@ Func_213c8: ; 213c8 (8:53c8)
and a
jr z, .asm_2145a
ld a, $4
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
FuncCoord 2, 8 ; $c442
ld hl, Coord
ld de, PKMNLeaguePCText ; $54b2
@@ -44594,21 +44594,21 @@ Func_213c8: ; 213c8 (8:53c8)
jr .asm_2146d
.asm_21462
ld a, $2
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
FuncCoord 2, 6 ; $c41a
ld hl, Coord
ld de, LogOffPCText ; $54ba
.asm_2146d
call PlaceString
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, $2
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $1
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
ret
@@ -44640,9 +44640,9 @@ BillsPC_: ; 0x214c2
inc a ; MONSTER_NAME
ld [W_LISTTYPE], a
call LoadHpBarAndStatusTilePatterns
- ld a, [W_LISTSCROLLOFFSET] ; $cc36
+ ld a, [wListScrollOffset] ; $cc36
push af
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
bit 3, a
jr nz, BillsPCMenu
ld a, $99
@@ -44653,13 +44653,13 @@ BillsPC_: ; 0x214c2
Func_214e8: ; 214e8 (8:54e8)
BillsPCMenu:
ld a, [$ccd3]
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld hl, $9780
ld de, PokeballTileGraphics ; $697e
ld bc, (BANK(PokeballTileGraphics) << 8) + $01
call CopyVideoData
call LoadScreenTilesFromBuffer2DisableBGTransfer
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $a
ld c, $c
call TextBoxBorder
@@ -44667,7 +44667,7 @@ BillsPCMenu:
ld hl, Coord
ld de, BillsPCMenuText ; $56e1
call PlaceString
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $2
ld [hli], a
dec a
@@ -44681,10 +44681,10 @@ BillsPCMenu:
xor a
ld [hli], a
ld [hli], a
- ld hl, W_LISTSCROLLOFFSET ; $cc36
+ ld hl, wListScrollOffset ; $cc36
ld [hli], a
ld [hl], a
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld [wPlayerMonNumber], a ; $cc2f
ld hl, WhatText
call PrintText
FuncCoord 9, 14 ; $c4c1
@@ -44718,7 +44718,7 @@ BillsPCMenu:
bit 1, a
jp nz, Func_21588 ; b button
call PlaceUnfilledArrowMenuCursor
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$ccd3], a
and a
jp z, Func_21618 ; withdraw
@@ -44730,7 +44730,7 @@ BillsPCMenu:
jp z, Func_216b3 ; change box
Func_21588: ; 21588 (8:5588)
- ld a, [W_FLAGS_CD60]
+ ld a, [wFlags_0xcd60]
bit 3, a
jr nz, .asm_2159a
call LoadTextBoxTilePatterns
@@ -44738,11 +44738,11 @@ Func_21588: ; 21588 (8:5588)
call PlaySound
call WaitForSoundToFinish
.asm_2159a
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
res 5, [hl]
call LoadScreenTilesFromBuffer2
pop af
- ld [W_LISTSCROLLOFFSET], a ; $cc36
+ ld [wListScrollOffset], a ; $cc36
ld hl, $d730
res 6, [hl]
ret
@@ -44778,7 +44778,7 @@ BillsPCDeposit:
ld [$cf95], a
call RemovePokemon
call WaitForSoundToFinish
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld a, [$d5a0]
and $7f
cp $9
@@ -44817,7 +44817,7 @@ Func_21618: ; 21618 (8:5618)
jp c, Func_214e8
call Func_2174b
jp nc, Func_214e8
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, $de06
call GetPartyMonName
ld a, [$cf91]
@@ -44848,7 +44848,7 @@ Func_21673: ; 21673 (8:5673)
ld hl, OnceReleasedText ; $581b
call PrintText
call YesNoChoice
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr nz, .asm_21682
inc a
@@ -44874,13 +44874,13 @@ Func_216be: ; 216be (8:56be)
ld [$cf8c], a
xor a
ld [$cf93], a
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
inc a ; MONSTER_NAME
ld [W_LISTTYPE], a
ld a, [$cc2b]
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
call DisplayListMenuID
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$cc2b], a
ret
@@ -44942,7 +44942,7 @@ Func_2174b: ; 2174b (8:574b)
ld hl, Coord
ld de, StatsCancelPCText ; $57dc
call PlaceString
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $c
ld [hli], a
ld a, $a
@@ -44956,16 +44956,16 @@ Func_2174b: ; 2174b (8:574b)
ld [hli], a
xor a
ld [hl], a
- ld hl, W_LISTSCROLLOFFSET ; $cc36
+ ld hl, wListScrollOffset ; $cc36
ld [hli], a
ld [hl], a
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld [wPlayerMonNumber], a ; $cc2f
ld [$cc2b], a
.asm_2178f
call HandleMenuInput
bit 1, a
jr nz, .asm_2179f
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr z, .asm_217a1
dec a
@@ -46846,18 +46846,18 @@ Music8_OverwriteChannelPointer: ; 2231d (8:631d)
ld [hli], a
ret
-INCLUDE "music/sfx/sfx_08_pokeflute.tx"
-INCLUDE "music/sfx/sfx_08_unused2.tx"
-INCLUDE "music/gymleaderbattle.tx"
-INCLUDE "music/trainerbattle.tx"
-INCLUDE "music/wildbattle.tx"
-INCLUDE "music/finalbattle.tx"
-INCLUDE "music/sfx/sfx_08_3a.tx"
-INCLUDE "music/sfx/sfx_08_3b.tx"
-INCLUDE "music/sfx/sfx_08_46.tx"
-INCLUDE "music/defeatedtrainer.tx"
-INCLUDE "music/defeatedwildmon.tx"
-INCLUDE "music/defeatedgymleader.tx"
+INCLUDE "music/sfx/sfx_08_pokeflute.asm"
+INCLUDE "music/sfx/sfx_08_unused2.asm"
+INCLUDE "music/gymleaderbattle.asm"
+INCLUDE "music/trainerbattle.asm"
+INCLUDE "music/wildbattle.asm"
+INCLUDE "music/finalbattle.asm"
+INCLUDE "music/sfx/sfx_08_3a.asm"
+INCLUDE "music/sfx/sfx_08_3b.asm"
+INCLUDE "music/sfx/sfx_08_46.asm"
+INCLUDE "music/defeatedtrainer.asm"
+INCLUDE "music/defeatedwildmon.asm"
+INCLUDE "music/defeatedgymleader.asm"
SECTION "bank9",ROMX,BANK[$9]
@@ -47569,7 +47569,7 @@ BadgeNumbersTileGraphics: ; 2fd98 (b:7d98)
INCBIN "gfx/badge_numbers.2bpp"
Func_2fe18: ; 2fe18 (b:7e18)
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1_MOVE1 ; $d173
ld bc, $2c
call AddNTimes
@@ -48114,7 +48114,7 @@ Unknown_372a0: ; 372a0 (d:72a0)
INCBIN "baserom.gbc",$372a0,$372ac - $372a0
Func_372ac: ; 372ac (d:72ac)
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $b0
jr z, .asm_372ba
cp $b1
@@ -55038,7 +55038,7 @@ Func_39bd5: ; 39bd5 (e:5bd5)
ld a, [$d11b]
cp $1
jr nz, .asm_39be6
- ld hl, W_ENEMYMONCOUNT ; $d89c
+ ld hl, wEnemyPartyCount ; $d89c
ld de, $d9ac
ld a, $6
jr .asm_39c18
@@ -55059,7 +55059,7 @@ Func_39bd5: ; 39bd5 (e:5bd5)
.asm_39c02
cp $2
jr nz, .asm_39c10
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
ld de, ItemNames ; $472b
ld a, $4
jr .asm_39c18
@@ -55109,10 +55109,10 @@ ReadTrainer: ; 39c53 (e:5c53)
and a
ret nz
-; set [W_ENEMYMONCOUNT] to 0, [$D89D] to FF
+; set [wEnemyPartyCount] to 0, [$D89D] to FF
; XXX first is total enemy pokemon?
; XXX second is species of first pokemon?
- ld hl,W_ENEMYMONCOUNT
+ ld hl,wEnemyPartyCount
xor a
ld [hli],a
dec a
@@ -56073,7 +56073,7 @@ TrainerAI: ; 3a52e (e:652e)
add hl,bc
add hl,bc
add hl,bc
- ld a,[W_AICOUNT]
+ ld a,[wAICount]
and a
ret z ; if no AI uses left, we're done here
inc hl
@@ -56081,7 +56081,7 @@ TrainerAI: ; 3a52e (e:652e)
jr nz,.getpointer
dec hl
ld a,[hli]
- ld [W_AICOUNT],a
+ ld [wAICount],a
.getpointer
ld a,[hli]
ld h,[hl]
@@ -56268,7 +56268,7 @@ GenericAI: ; 3a693 (e:6693)
; end of individual trainer AI routines
DecrementAICount: ; 3a695 (e:6695)
- ld hl,W_AICOUNT
+ ld hl,wAICount
dec [hl]
scf
ret
@@ -56282,7 +56282,7 @@ AIUseFullRestore: ; 3a6a0 (e:66a0)
call AICureStatus
ld a,FULL_RESTORE
ld [$CF05],a
- ld de,W_HPBAROLDHP
+ ld de,wHPBarOldHP
ld hl,$CFE7
ld a,[hld]
ld [de],a
@@ -56294,11 +56294,11 @@ AIUseFullRestore: ; 3a6a0 (e:66a0)
ld a,[hld]
ld [de],a
inc de
- ld [W_HPBARMAXHP],a
+ ld [wHPBarMaxHP],a
ld [$CFE7],a
ld a,[hl]
ld [de],a
- ld [W_HPBARMAXHP+1],a
+ ld [wHPBarMaxHP+1],a
ld [W_ENEMYMONCURHP],a
jr Function6718
@@ -56325,17 +56325,17 @@ AIRecoverHP: ; 3a6da (e:66da)
ld [$CF05],a
ld hl,$CFE7
ld a,[hl]
- ld [W_HPBAROLDHP],a
+ ld [wHPBarOldHP],a
add b
ld [hld],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
ld a,[hl]
- ld [W_HPBAROLDHP+1],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarOldHP+1],a
+ ld [wHPBarNewHP+1],a
jr nc,.next
inc a
ld [hl],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
.next
inc hl
ld a,[hld]
@@ -56343,22 +56343,22 @@ AIRecoverHP: ; 3a6da (e:66da)
ld de,$CFF5
ld a,[de]
dec de
- ld [W_HPBARMAXHP],a
+ ld [wHPBarMaxHP],a
sub b
ld a,[hli]
ld b,a
ld a,[de]
- ld [W_HPBARMAXHP+1],a
+ ld [wHPBarMaxHP+1],a
sbc b
jr nc,Function6718
inc de
ld a,[de]
dec de
ld [hld],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
ld a,[de]
ld [hl],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
; fallthrough
Function6718: ; 3a718 (e:6718)
@@ -56372,7 +56372,7 @@ Function6718: ; 3a718 (e:6718)
jp DecrementAICount
Function672A: ; 3a72a (e:672a)
- ld a,[W_ENEMYMONCOUNT]
+ ld a,[wEnemyPartyCount]
ld c,a
ld hl,W_ENEMYMON1HP
@@ -56591,13 +56591,13 @@ SetupOwnPartyPokeballs: ; 3a869 (e:6869)
ld [hl], a
ld a, $8
ld [$cd3e], a
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
jp Func_3a8e1
SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
call Func_3a919
- ld hl, $d8a4
- ld de, W_ENEMYMONCOUNT ; $d89c
+ ld hl, wEnemyMons
+ ld de, wEnemyPartyCount ; $d89c
call SetupPokeballs
ld hl, W_BASECOORDX ; $d081
ld a, $48
@@ -56611,7 +56611,7 @@ SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
SetupPokeballs: ; 0x3a8a6
ld a, [de]
push af
- ld de, W_BUFFER
+ ld de, wBuffer
ld c, $6 ; max num of partymons
ld a, $34 ; empty pokeball
.emptyloop
@@ -56620,7 +56620,7 @@ SetupPokeballs: ; 0x3a8a6
dec c
jr nz, .emptyloop ; 0x3a8b2 $fb
pop af
- ld de, W_BUFFER
+ ld de, wBuffer
.monloop
push af
call PickPokeball
@@ -56733,10 +56733,10 @@ Func_3a948: ; 3a948 (e:6948)
ld [hl], $40
ld a, $8
ld [$cd3e], a
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
call Func_3a8e1
- ld hl, W_WATERRATE ; $d8a4
- ld de, W_ENEMYMONCOUNT ; $d89c
+ ld hl, wEnemyMons ; $d8a4
+ ld de, wEnemyPartyCount ; $d89c
call SetupPokeballs
ld hl, W_BASECOORDX ; $d081
ld a, $50
@@ -56761,7 +56761,7 @@ Func_3ad0e: ; 3ad0e (e:6d0e)
ld hl, $ccd3
xor a
ld [hl], a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $1
call Func_3b057
@@ -56772,14 +56772,14 @@ Func_3ad1c: ; 3ad1c (e:6d1c)
xor a
ld [$d121], a
dec a
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wWhichPokemon], a ; $cf92
push hl
push bc
push de
ld hl, W_NUMINPARTY ; $d163
push hl
asm_3ad2e: ; 3ad2e (e:6d2e)
- ld hl, W_WHICHPOKEMON ; $cf92
+ ld hl, wWhichPokemon ; $cf92
inc [hl]
pop hl
inc hl
@@ -56788,7 +56788,7 @@ asm_3ad2e: ; 3ad2e (e:6d2e)
jp z, Func_3aede
ld [$cee9], a
push hl
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld hl, $ccd3
ld b, $2
@@ -56865,7 +56865,7 @@ Func_3ad71: ; 3ad71 (e:6d71)
push hl
ld a, [hl]
ld [$ceea], a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1NAME ; $d2b5
call GetPartyMonName
call CopyStringToCF4B
@@ -56875,7 +56875,7 @@ Func_3ad71: ; 3ad71 (e:6d71)
call DelayFrames
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $c14
call ClearScreenArea
ld a, $1
@@ -56930,7 +56930,7 @@ Func_3ad71: ; 3ad71 (e:6d71)
ld de, $cfba
ld b, $1
call CalcStats
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
ld bc, $2c
call AddNTimes
@@ -56977,11 +56977,11 @@ Func_3ad71: ; 3ad71 (e:6d71)
dec a
ld c, a
ld b, $1
- ld hl, W_OWNEDPOKEMON ; $d2f7
+ ld hl, wPokedexOwned ; $d2f7
push bc
call Func_3b057
pop bc
- ld hl, W_SEENPOKEMON ; $d30a
+ ld hl, wPokedexSeen ; $d30a
call Func_3b057
pop de
pop hl
@@ -57034,7 +57034,7 @@ Func_3aef7: ; 3aef7 (e:6ef7)
ret nz
cp $50
jr nz, .asm_3af0e
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld bc, $b
ld hl, W_PARTYMON1NAME ; $d2b5
call AddNTimes
@@ -57106,7 +57106,7 @@ Func_3af5b: ; 3af5b (e:6f5b)
and a
jr nz, .asm_3af96
ld hl, W_PARTYMON1_MOVE1 ; $d173
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld bc, $2c
call AddNTimes
.asm_3af96
@@ -57168,7 +57168,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
ld a, [$cee9]
and a
jr z, .skipMinLevelCheck
- ld a, [W_WHICHTRADE] ; $cd3d (min move level)
+ ld a, [wWhichTrade] ; $cd3d (min move level)
cp b
jr nc, .nextMove2 ; min level >= move level
.skipMinLevelCheck
@@ -59471,26 +59471,26 @@ Func_3b9ec: ; 3b9ec (e:79ec)
pop hl
.asm_3ba37
ld a, [hld]
- ld [W_HPBARMAXHP], a
+ ld [wHPBarMaxHP], a
ld c, a
ld a, [hl]
- ld [W_HPBARMAXHP+1], a
+ ld [wHPBarMaxHP+1], a
ld b, a
jr z, .asm_3ba47
srl b
rr c
.asm_3ba47
ld a, [de]
- ld [W_HPBAROLDHP], a
+ ld [wHPBarOldHP], a
add c
ld [de], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
dec de
ld a, [de]
- ld [W_HPBAROLDHP+1], a
+ ld [wHPBarOldHP+1], a
adc b
ld [de], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
inc hl
inc de
ld a, [de]
@@ -59502,11 +59502,11 @@ Func_3b9ec: ; 3b9ec (e:79ec)
jr c, .asm_3ba6f
ld a, [hli]
ld [de], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
inc de
ld a, [hl]
ld [de], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
.asm_3ba6f
ld hl, Func_3fba8 ; $7ba8
call BankswitchEtoF
@@ -59520,7 +59520,7 @@ Func_3b9ec: ; 3b9ec (e:79ec)
ld hl, Coord
xor a
.asm_3ba83
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
ld a, $48
call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
ld hl, Func_3cd5a ; $4d5a
@@ -59557,7 +59557,7 @@ Func_3bab1: ; 3bab1 (e:7ab1)
ld hl, $cfe5
ld de, W_PLAYERMONID
ld bc, W_PLAYERBATTSTATUS3 ; $d064
- ld [W_PLAYERMOVELISTINDEX], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; $cc2e
ld a, [W_PLAYERBATTSTATUS1] ; $d062
.asm_3bad1
bit 6, a
@@ -59659,8 +59659,8 @@ Func_3bab1: ; 3bab1 (e:7ab1)
ld hl, $cd26
ld de, $cd12
call Func_3bb7d
- ld hl, W_ENEMYMONATTACKMOD ; $cd2e
- ld de, W_PLAYERMONATTACKMOD ; $cd1a
+ ld hl, wEnemyMonStatMods ; $cd2e
+ ld de, wPlayerMonStatMods ; $cd1a
call Func_3bb7d
ld hl, UnnamedText_3bb92 ; $7b92
jp PrintText
@@ -59773,7 +59773,7 @@ Func_3c04c: ; 3c04c (f:404c)
ld a, b
or c
jr nz, .asm_3c06f
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld de, $9800
ld b, $12
.asm_3c07f
@@ -59882,7 +59882,7 @@ Func_3c11e: ; 3c11e (f:411e)
ld [$cd6a], a
inc a
ld [$d11d], a
- ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP)
+ ld hl, W_ENEMYMON1HP ; $d8a5
ld bc, $2b
ld d, $3
.asm_3c134
@@ -59954,16 +59954,16 @@ UnnamedText_3c1a8: ; 3c1a8 (f:41a8)
Func_3c1ad: ; 3c1ad (f:41ad)
xor a
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wWhichPokemon], a ; $cf92
.asm_3c1b1
call Func_3ca97
jr nz, .asm_3c1bc
- ld hl, W_WHICHPOKEMON ; $cf92
+ ld hl, wWhichPokemon ; $cf92
inc [hl]
jr .asm_3c1b1
.asm_3c1bc
- ld a, [W_WHICHPOKEMON] ; $cf92
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld a, [wWhichPokemon] ; $cf92
+ ld [wPlayerMonNumber], a ; $cc2f
inc a
ld hl, W_NUMINPARTY ; $d163
ld c, a
@@ -59978,7 +59978,7 @@ Func_3c1ad: ; 3c1ad (f:41ad)
ld a, $9
call Func_3c8df
call SaveScreenTilesToBuffer1
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $1
push bc
@@ -60100,32 +60100,32 @@ MainInBattleLoop: ; 3c233 (f:4233)
ld a, [hl]
cp $76
jr nz, .asm_3c2dd ; 0x3c2d8 $3
- ld [W_PLAYERSELECTEDMOVE], a
+ ld [wPlayerSelectedMove], a
.asm_3c2dd
ld hl, Function674B
ld b, BANK(Function674B)
call Bankswitch
.noLinkBattle
- ld a, [W_PLAYERSELECTEDMOVE]
+ ld a, [wPlayerSelectedMove]
cp QUICK_ATTACK
jr nz, .playerDidNotUseQuickAttack
- ld a, [W_ENEMYSELECTEDMOVE]
+ ld a, [wEnemySelectedMove]
cp QUICK_ATTACK
jr z, .compareSpeed ; both used Quick Attack
jp .playerMovesFirst ; player used Quick Attack
.playerDidNotUseQuickAttack
- ld a, [W_ENEMYSELECTEDMOVE]
+ ld a, [wEnemySelectedMove]
cp QUICK_ATTACK
jr z, .enemyMovesFirst
- ld a, [W_PLAYERSELECTEDMOVE]
+ ld a, [wPlayerSelectedMove]
cp COUNTER
jr nz, .playerDidNotUseCounter
- ld a, [W_ENEMYSELECTEDMOVE]
+ ld a, [wEnemySelectedMove]
cp COUNTER
jr z, .compareSpeed ; both used Counter
jr .enemyMovesFirst ; player used Counter
.playerDidNotUseCounter
- ld a, [W_ENEMYSELECTEDMOVE]
+ ld a, [wEnemySelectedMove]
cp COUNTER
jr z, .playerMovesFirst
.compareSpeed
@@ -60296,10 +60296,10 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d)
ld bc, $e ; skip to max HP
add hl, bc
ld a, [hli] ; load max HP
- ld [W_HPBARMAXHP+1], a
+ ld [wHPBarMaxHP+1], a
ld b, a
ld a, [hl]
- ld [W_HPBARMAXHP], a
+ ld [wHPBarMaxHP], a
ld c, a
srl b
rr c
@@ -60336,21 +60336,21 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d)
pop hl
inc hl
ld a, [hl] ; subtract total damage from current HP
- ld [W_HPBAROLDHP], a
+ ld [wHPBarOldHP], a
sub c
ld [hld], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
ld a, [hl]
- ld [W_HPBAROLDHP+1], a
+ ld [wHPBarOldHP+1], a
sbc b
ld [hl], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
jr nc, .noOverkill
xor a ; overkill: zero HP
ld [hli], a
ld [hl], a
- ld [W_HPBARNEWHP], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP], a
+ ld [wHPBarNewHP+1], a
.noOverkill
call UpdateCurMonHPBar
pop hl
@@ -60366,36 +60366,36 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3)
ld hl, W_PLAYERMONMAXHP ; $d023
.playersTurn
ld a, [hli]
- ld [W_HPBARMAXHP+1], a
+ ld [wHPBarMaxHP+1], a
ld a, [hl]
- ld [W_HPBARMAXHP], a
+ ld [wHPBarMaxHP], a
ld de, $fff2
add hl, de ; skip back fomr max hp to current hp
ld a, [hl]
- ld [W_HPBAROLDHP], a ; add bc to current HP
+ ld [wHPBarOldHP], a ; add bc to current HP
add c
ld [hld], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
ld a, [hl]
- ld [W_HPBAROLDHP+1], a
+ ld [wHPBarOldHP+1], a
adc b
ld [hli], a
- ld [W_HPBARNEWHP+1], a
- ld a, [W_HPBARMAXHP]
+ ld [wHPBarNewHP+1], a
+ ld a, [wHPBarMaxHP]
ld c, a
ld a, [hld]
sub c
- ld a, [W_HPBARMAXHP+1]
+ ld a, [wHPBarMaxHP+1]
ld b, a
ld a, [hl]
sbc b
jr c, .noOverfullHeal
ld a, b ; overfull heal, set HP to max HP
ld [hli], a
- ld [W_HPBARNEWHP+1], a
+ ld [wHPBarNewHP+1], a
ld a, c
ld [hl], a
- ld [W_HPBARNEWHP], a
+ ld [wHPBarNewHP], a
.noOverfullHeal
ld a, [H_WHOSETURN] ; $FF00+$f3
xor $1
@@ -60419,7 +60419,7 @@ UpdateCurMonHPBar: ; 3c4f6 (f:44f6)
xor a
.playersTurn
push bc
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
ld a, $48
call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d))
pop bc
@@ -60506,7 +60506,7 @@ FaintEnemyPokemon ; 0x3c567
FuncCoord 12, 6 ; $c424
ld de, Coord
call Func_3c893
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $40b
call ClearScreenArea
ld a, [W_ISINBATTLE] ; $d057
@@ -60596,10 +60596,10 @@ Func_3c643: ; 3c643 (f:4643)
ret
Func_3c64f: ; 3c64f (f:464f)
- ld a, [W_ENEMYMONCOUNT] ; $d89c
+ ld a, [wEnemyPartyCount] ; $d89c
ld b, a
xor a
- ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP)
+ ld hl, W_ENEMYMON1HP ; $d8a5
ld de, $2c
.asm_3c65a
or [hl]
@@ -60666,7 +60666,7 @@ TrainerBattleVictory: ; 3c696 (f:4696)
call Func_3381
ld hl, MoneyForWinningText ; $46e4
call PrintText
- ld de, W_PLAYERMONEY1 ; $d349
+ ld de, wPlayerMoney + 2 ; $d349
ld hl, $d07b
ld c, $3
ld a, $b
@@ -60722,7 +60722,7 @@ HandlePlayerMonFainted: ; 3c700 (f:4700)
jp MainInBattleLoop
Func_3c741: ; 3c741 (f:4741)
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld c, a
ld hl, W_PLAYERMONSALIVEFLAGS ; clear fainted mon's alive flag
ld b, $0
@@ -60787,7 +60787,7 @@ Func_3c79b: ; 3c79b (f:479b)
and a
ret
.asm_3c7c4
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr z, .asm_3c7ad
ld hl, W_PARTYMON1_SPEED ; $d193
@@ -60820,8 +60820,8 @@ Func_3c7d8: ; 3c7d8 (f:47d8)
xor a
ld [$cd6a], a
call CleanLCD_OAM
- ld a, [W_WHICHPOKEMON] ; $cf92
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld a, [wWhichPokemon] ; $cf92
+ ld [wPlayerMonNumber], a ; $cc2f
ld c, a
ld hl, W_PLAYERMONSALIVEFLAGS
ld b, $1
@@ -60853,7 +60853,7 @@ HandlePlayerBlackOut: ; 3c837 (f:4837)
ld a, [W_CUROPPONENT] ; $d059
cp $c8 + SONY1
jr nz, .notSony1Battle
- ld hl, W_SCREENTILESBUFFER ; sony 1 battle
+ ld hl, wTileMap ; sony 1 battle
ld bc, $815
call ClearScreenArea
call Func_3ed12
@@ -61013,7 +61013,7 @@ Func_3c92a: ; 3c92a (f:492a)
ld [hli],a
ld [hl],a
dec a
- ld [W_AICOUNT],a
+ ld [wAICount],a
ld hl,W_PLAYERBATTSTATUS1
res 5,[hl]
FuncCoord 18, 0 ; $c3b2
@@ -61123,7 +61123,7 @@ Func_3c92a: ; 3c92a (f:492a)
call LoadScreenTilesFromBuffer1
.next4
call CleanLCD_OAM
- ld hl,W_SCREENTILESBUFFER
+ ld hl,wTileMap
ld bc,$040B
call ClearScreenArea
ld b,1
@@ -61170,7 +61170,7 @@ AnyPokemonAliveCheck: ; 3ca83 (f:4a83)
ld e, a
xor a
ld hl, W_PARTYMON1_HP ; $d16c
- ld bc, W_PARTYMON2_HP - W_PARTYMON1_HP - 1 ; $2b
+ ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA - 1
.partyMonsLoop
or [hl]
inc hl
@@ -61182,7 +61182,7 @@ AnyPokemonAliveCheck: ; 3ca83 (f:4a83)
ret
Func_3ca97: ; 3ca97 (f:4a97)
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1_HP ; $d16c
ld bc, $2c
call AddNTimes
@@ -61295,7 +61295,7 @@ Func_3cab9: ; 3cab9 (f:4ab9)
xor a
ld [$cd6a], a
ld a, $f
- ld [W_PLAYERMOVELISTINDEX], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; $cc2e
call Func_3d605
call LoadScreenTilesFromBuffer1
ld a, [$cc3e]
@@ -61327,7 +61327,7 @@ UnnamedText_3cba1: ; 3cba1 (f:4ba1)
db "@"
Func_3cba6: ; 3cba6 (f:4ba6)
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld bc, $2c
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
call AddNTimes
@@ -61349,7 +61349,7 @@ Func_3cba6: ; 3cba6 (f:4ba6)
ld [$d0b5], a
call GetMonHeader
ld hl, W_PARTYMON1NAME ; $d2b5
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
call SkipFixedLengthTextEntries
ld de, W_PLAYERMONNAME
ld bc, $b
@@ -61362,7 +61362,7 @@ Func_3cba6: ; 3cba6 (f:4ba6)
call Func_3ee19
ld a, $7
ld b, $8
- ld hl, W_PLAYERMONATTACKMOD ; $cd1a
+ ld hl, wPlayerMonAttackMod ; $cd1a
.asm_3cc0e
ld [hli], a
dec b
@@ -61370,9 +61370,9 @@ Func_3cba6: ; 3cba6 (f:4ba6)
ret
Func_3cc13: ; 3cc13 (f:4c13)
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld bc, $2c
- ld hl, W_WATERRATE ; $d8a4
+ ld hl, wEnemyMons ; $d8a4
call AddNTimes
ld de, $cfe5
ld bc, $c
@@ -61392,7 +61392,7 @@ Func_3cc13: ; 3cc13 (f:4c13)
ld [$d0b5], a
call GetMonHeader
ld hl, $d9ee
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call SkipFixedLengthTextEntries
ld de, W_ENEMYMONNAME
ld bc, $b
@@ -61413,12 +61413,12 @@ Func_3cc13: ; 3cc13 (f:4c13)
jr nz, .asm_3cc79
ld a, $7
ld b, $8
- ld hl, W_ENEMYMONATTACKMOD ; $cd2e
+ ld hl, wEnemyMonStatMods ; $cd2e
.asm_3cc86
ld [hli], a
dec b
jr nz, .asm_3cc86
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld [W_ENEMYMONNUMBER], a ; $cfe8
ret
@@ -61512,9 +61512,9 @@ Func_3cd3a: ; 3cd3a (f:4d3a)
; reads player's current mon's HP into W_PLAYERMONCURHP
ReadPlayerMonCurHPAndStatus: ; 3cd43 (f:4d43)
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld hl, W_PARTYMON1_HP ; $d16c
- ld bc, W_PARTYMON2_HP - W_PARTYMON1_HP ; $2c
+ ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA
call AddNTimes
ld d, h
ld e, l
@@ -61598,7 +61598,7 @@ Func_3cd60: ; 3cd60 (f:4d60)
Func_3cdec: ; 3cdec (f:4dec)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $40c
call ClearScreenArea
ld hl, Func_3a919
@@ -61678,7 +61678,7 @@ Func_3cdec: ; 3cdec (f:4dec)
Func_3ce7f: ; 3ce7f (f:4e7f)
xor a
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
FuncCoord 2, 2 ; $c3ca
ld hl, Coord
call DrawHPBar
@@ -61770,12 +61770,12 @@ OldManName: ; 3cf12 (f:4f12)
RegularBattleMenu: ; 3cf1a (f:4f1a)
ld a, [$cc2d]
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
sub $2
jr c, .leftcolumn
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
jr .rightcolumn
.leftcolumn
ld a, [W_BATTLETYPE] ; $d05a
@@ -61800,7 +61800,7 @@ RegularBattleMenu: ; 3cf1a (f:4f1a)
call PrintNumber
ld b, $1
.notsafari
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $e
ld [hli], a
ld a, b
@@ -61837,7 +61837,7 @@ RegularBattleMenu: ; 3cf1a (f:4f1a)
call PrintNumber
ld b, $d
.notsafarirightcolumn
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $e
ld [hli], a
ld a, b
@@ -61851,14 +61851,14 @@ RegularBattleMenu: ; 3cf1a (f:4f1a)
call HandleMenuInput
bit 5, a
jr nz, .leftcolumn
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
add $2 ; if we're in the right column, the actual id is +2
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
.selection
call PlaceUnfilledArrowMenuCursor
ld a, [W_BATTLETYPE] ; $d05a
cp $2
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$cc2d], a
jr z, .asm_3cfd0
cp $1
@@ -61922,7 +61922,7 @@ asm_3d00e: ; 3d00e (f:500e)
db $01, $04, $32, $ff
.asm_3d031
- ld hl, W_NUMBAGITEMS ; $d31d
+ ld hl, wNumBagItems ; $d31d
ld a, l
ld [$cf8b], a
ld a, h
@@ -61931,11 +61931,11 @@ asm_3d00e: ; 3d00e (f:500e)
xor a
ld [$cf93], a
ld a, $3
- ld [W_LISTMENUID], a ; $cf94
+ ld [wListMenuID], a ; $cf94
ld a, [$cc2c]
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
call DisplayListMenuID
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$cc2c], a
ld a, $0
ld [$cc37], a
@@ -61952,7 +61952,7 @@ asm_3d05f: ; 3d05f (f:505f)
call Func_3ee5b
call CleanLCD_OAM
xor a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld a, [W_BATTLETYPE] ; $d05a
cp $2
jr z, .asm_3d09c
@@ -62037,7 +62037,7 @@ Func_3d119: ; 3d119 (f:5119)
ld a, $c
ld [$d125], a
call DisplayTextBoxID
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld a, $c
ld [hli], a
ld [hli], a
@@ -62054,7 +62054,7 @@ Func_3d119: ; 3d119 (f:5119)
bit 1, a
jr nz, Func_3d105
call PlaceUnfilledArrowMenuCursor
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $2
jr z, asm_3d0f0
and a
@@ -62088,9 +62088,9 @@ Func_3d119: ; 3d119 (f:5119)
.asm_3d187
jp Func_3d0e0
.asm_3d18a
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld d, a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
cp d
jr nz, .asm_3d19d
ld hl, UnnamedText_3d1f5 ; $51f5
@@ -62115,8 +62115,8 @@ Func_3d1ba: ; 3d1ba (f:51ba)
ld c, $32
call DelayFrames
call Func_3ccfa
- ld a, [W_WHICHPOKEMON] ; $cf92
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld a, [wWhichPokemon] ; $cf92
+ ld [wPlayerMonNumber], a ; $cc2f
ld c, a
ld b, $1
push bc
@@ -62131,7 +62131,7 @@ Func_3d1ba: ; 3d1ba (f:51ba)
call Func_3cc91
call SaveScreenTilesToBuffer1
ld a, $2
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
and a
ret
@@ -62142,7 +62142,7 @@ UnnamedText_3d1f5: ; 3d1f5 (f:51f5)
Func_3d1fa: ; 3d1fa (f:51fa)
call LoadScreenTilesFromBuffer1
ld a, $3
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld hl, W_PLAYERMONSPEED
ld de, W_ENEMYMONSPEED
call Func_3cab9
@@ -62155,7 +62155,7 @@ Func_3d1fa: ; 3d1fa (f:51fa)
jp InitBattleMenu
MoveSelectionMenu: ; 3d219 (f:5219)
- ld a, [W_MOVEMENUTYPE]
+ ld a, [wMoveMenuType]
dec a
jr z, .mimicmenu
dec a
@@ -62221,7 +62221,7 @@ MoveSelectionMenu: ; 3d219 (f:5219)
ld a, $7
jr .menuset
.relearnmenu
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1_MOVE1 ; $d173
ld bc, $2c
call AddNTimes
@@ -62237,25 +62237,25 @@ MoveSelectionMenu: ; 3d219 (f:5219)
ld b, $5
ld a, $7
.menuset
- ld hl, W_TOPMENUITEMY ; $cc24
+ ld hl, wTopMenuItemY ; $cc24
ld [hli], a
ld a, b
- ld [hli], a ; W_TOPMENUITEMX
- ld a, [W_MOVEMENUTYPE]
+ ld [hli], a ; wTopMenuItemX
+ ld a, [wMoveMenuType]
cp $1
jr z, .selectedmoveknown
ld a, $1
jr nc, .selectedmoveknown
- ld a, [W_PLAYERMOVELISTINDEX] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; $cc2e
inc a
.selectedmoveknown
- ld [hli], a ; W_CURMENUITEMID
- inc hl ; W_TILEBEHINDCURSOR untouched
+ ld [hli], a ; wCurrentMenuItem
+ inc hl ; wTileBehindCursor untouched
ld a, [$cd6c]
inc a
inc a
- ld [hli], a ; W_MAXMENUITEMID
- ld a, [W_MOVEMENUTYPE]
+ ld [hli], a ; wMaxMenuItem
+ ld a, [wMoveMenuType]
dec a
ld b, $c1 ; can't use B
jr z, .matchedkeyspicked
@@ -62272,17 +62272,17 @@ MoveSelectionMenu: ; 3d219 (f:5219)
ld b, $ff
.matchedkeyspicked
ld a, b
- ld [hli], a ; W_MENUWATCHEDKEYS
- ld a, [W_MOVEMENUTYPE]
+ ld [hli], a ; wMenuWatchedKeys
+ ld a, [wMoveMenuType]
cp $1
jr z, .movelistindex1
- ld a, [W_PLAYERMOVELISTINDEX] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; $cc2e
inc a
.movelistindex1
- ld [hl], a ; W_OLDMENUITEMID
+ ld [hl], a ; wLastMenuItem
Func_3d2fe: ; 3d2fe (f:52fe)
- ld a, [W_MOVEMENUTYPE]
+ ld a, [wMoveMenuType]
and a
jr z, .battleselect
dec a
@@ -62322,11 +62322,11 @@ Func_3d2fe: ; 3d2fe (f:52fe)
push af
xor a
ld [$cc35], a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
dec a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld b, a
- ld a, [W_MOVEMENUTYPE]
+ ld a, [wMoveMenuType]
dec a ; if not mimic
jr nz, .nob
pop af
@@ -62334,7 +62334,7 @@ Func_3d2fe: ; 3d2fe (f:52fe)
.nob
dec a
ld a, b
- ld [W_PLAYERMOVELISTINDEX], a ; $cc2e
+ ld [wPlayerMoveListIndex], a ; $cc2e
jr nz, .moveselected
pop af
ret
@@ -62342,7 +62342,7 @@ Func_3d2fe: ; 3d2fe (f:52fe)
pop af
ret nz
ld hl, W_PLAYERMONPP ; $d02d
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
ld b, $0
add hl, bc
@@ -62359,13 +62359,13 @@ Func_3d2fe: ; 3d2fe (f:52fe)
bit 3, a ; transformed
jr nz, .dummy ; game freak derp
.dummy
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld hl, W_PLAYERMONMOVES
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [W_PLAYERSELECTEDMOVE], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; $ccdc
xor a
ret
.disabled
@@ -62390,17 +62390,17 @@ WhichTechniqueString: ; 3d3b8 (f:53b8)
db "WHICH TECHNIQUE?@"
Func_3d3c9: ; 3d3c9 (f:53c9)
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jp nz, Func_3d2fe
call EraseMenuCursor
ld a, [$cd6c]
inc a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
jp Func_3d2fe
Func_3d3dd: ; 3d3dd (f:53dd)
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld b, a
ld a, [$cd6c]
inc a
@@ -62409,12 +62409,12 @@ Func_3d3dd: ; 3d3dd (f:53dd)
jp nz, Func_3d2fe
call EraseMenuCursor
ld a, $1
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
jp Func_3d2fe
Func_3d3f5: ; 3d3f5 (f:53f5)
ld a, $a5
- ld [W_PLAYERSELECTEDMOVE], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; $ccdc
ld a, [W_PLAYERDISABLEDMOVE] ; $d06d
and a
ld hl, W_PLAYERMONPP ; $d02d
@@ -62471,7 +62471,7 @@ Func_3d435: ; 3d435 (f:5435)
swap a
and $f
ld b, a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp b
jr nz, .asm_3d463
ld a, [hl]
@@ -62489,13 +62489,13 @@ Func_3d435: ; 3d435 (f:5435)
ld a, [hl]
and $f
ld b, a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
swap a
add b
ld [hl], a
.asm_3d474
ld hl, W_PARTYMON1_MOVE1 ; $d173
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld bc, $2c
call AddNTimes
push hl
@@ -62518,7 +62518,7 @@ Func_3d493: ; 3d493 (f:5493)
ld d, h
ld e, l
pop hl
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
dec a
ld c, a
ld b, $0
@@ -62530,7 +62530,7 @@ Func_3d493: ; 3d493 (f:5493)
ld [de], a
ret
asm_3d4ad: ; 3d4ad (f:54ad)
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld [$cc35], a
jp MoveSelectionMenu
@@ -62548,7 +62548,7 @@ Func_3d4b6: ; 3d4b6 (f:54b6)
swap a
and $f
ld b, a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp b
jr nz, .asm_3d4df
FuncCoord 1, 10 ; $c469
@@ -62557,25 +62557,25 @@ Func_3d4b6: ; 3d4b6 (f:54b6)
call PlaceString
jr .asm_3d54e
.asm_3d4df
- ld hl, W_CURMENUITEMID ; $cc26
+ ld hl, wCurrentMenuItem ; $cc26
dec [hl]
xor a
ld [H_WHOSETURN], a ; $FF00+$f3
ld hl, W_PLAYERMONMOVES
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
- ld [W_PLAYERSELECTEDMOVE], a ; $ccdc
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wPlayerSelectedMove], a ; $ccdc
+ ld a, [wPlayerMonNumber] ; $cc2f
+ ld [wWhichPokemon], a ; $cf92
ld a, $4
ld [$cc49], a
ld hl, GetMaxPP
ld b, BANK(GetMaxPP)
call Bankswitch ; indirect jump to GetMaxPP (e677 (3:6677))
- ld hl, W_CURMENUITEMID ; $cc26
+ ld hl, wCurrentMenuItem ; $cc26
ld c, [hl]
inc [hl]
ld b, $0
@@ -62696,7 +62696,7 @@ SelectEnemyMove: ; 3d564 (f:5564)
.moveChosen
ld a, b
dec a
- ld [W_ENEMYMOVELISTINDEX], a
+ ld [wEnemyMoveListIndex], a
ld a, [W_ENEMYDISABLEDMOVE]
swap a
and $f
@@ -62707,7 +62707,7 @@ SelectEnemyMove: ; 3d564 (f:5564)
and a
jr z, .chooseRandomMove ; move non-existant, try again
.done
- ld [W_ENEMYSELECTEDMOVE], a
+ ld [wEnemySelectedMove], a
ret
.asm_3d601
ld a, $a5
@@ -62716,23 +62716,23 @@ SelectEnemyMove: ; 3d564 (f:5564)
Func_3d605: ; 3d605 (f:5605)
ld a, $ff
ld [$cc3e], a
- ld a, [W_PLAYERMOVELISTINDEX] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; $cc2e
cp $f
jr z, .asm_3d630
ld a, [$cd6a]
and a
jr nz, .asm_3d629
- ld a, [W_PLAYERSELECTEDMOVE] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; $ccdc
cp $a5
ld b, $e
jr z, .asm_3d62f
dec b
inc a
jr z, .asm_3d62f
- ld a, [W_PLAYERMOVELISTINDEX] ; $cc2e
+ ld a, [wPlayerMoveListIndex] ; $cc2e
jr .asm_3d630
.asm_3d629
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
add $4
ld b, a
.asm_3d62f
@@ -62765,7 +62765,7 @@ Func_3d605: ; 3d605 (f:5605)
Func_3d65e: ; 3d65e (f:565e)
xor a
ld [H_WHOSETURN], a ; $FF00+$f3
- ld a, [W_PLAYERSELECTEDMOVE] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; $ccdc
inc a
jp z, Function580A
xor a
@@ -63319,7 +63319,7 @@ CantMoveText: ; 3da83 (f:5a83)
db "@"
Func_3da88: ; 3da88 (f:5a88)
- ld hl, W_PLAYERSELECTEDMOVE ; $ccdc
+ ld hl, wPlayerSelectedMove ; $ccdc
ld de, W_PLAYERBATTSTATUS1 ; $d062
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
@@ -63612,13 +63612,13 @@ Func_3dc88: ; 3dc88 (f:5c88)
.asm_3dc97
ld hl, W_PARTYMON1_OTID ; $d177
ld bc, $2c
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
call AddNTimes
- ld a, [W_PLAYERIDHI] ; $d359
+ ld a, [wPlayerID] ; $d359
cp [hl]
jr nz, .asm_3dcb1
inc hl
- ld a, [W_PLAYERIDLO] ; $d35a
+ ld a, [wPlayerID + 1] ; $d35a
cp [hl]
jp z, Func_3ddb0
.asm_3dcb1
@@ -63707,7 +63707,7 @@ Func_3dc88: ; 3dc88 (f:5c88)
ld a, [$ccee]
and a
jr nz, .asm_3dd20
- ld a, [W_PLAYERSELECTEDMOVE] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; $ccdc
cp $a5
jr z, .asm_3dd20
ld hl, W_PLAYERMONPP ; $d02d
@@ -63728,7 +63728,7 @@ Func_3dc88: ; 3dc88 (f:5c88)
add b
pop hl
push af
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
ld b, $0
add hl, bc
@@ -63740,9 +63740,9 @@ Func_3dc88: ; 3dc88 (f:5c88)
jr z, .asm_3dd20
ld a, $1
ld [$cced], a
- ld a, [W_MAXMENUITEMID] ; $cc28
+ ld a, [wMaxMenuItem] ; $cc28
ld b, a
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
.asm_3dd86
call GenRandomInBattle
@@ -63751,7 +63751,7 @@ Func_3dc88: ; 3dc88 (f:5c88)
jr nc, .asm_3dd86
cp c
jr z, .asm_3dd86
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld hl, W_PLAYERMONPP ; $d02d
ld e, a
ld d, $0
@@ -63759,13 +63759,13 @@ Func_3dc88: ; 3dc88 (f:5c88)
ld a, [hl]
and a
jr z, .asm_3dd86
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
ld b, $0
ld hl, W_PLAYERMONMOVES
add hl, bc
ld a, [hl]
- ld [W_PLAYERSELECTEDMOVE], a ; $ccdc
+ ld [wPlayerSelectedMove], a ; $ccdc
call GetCurrentMove
Func_3ddb0: ; 3ddb0 (f:5db0)
@@ -63834,7 +63834,7 @@ CalculateDamage: ; 3ddcf (f:5dcf)
ld c, a
push bc
ld hl, $d18f
- ld a, [W_PLAYERMONNUMBER]
+ ld a, [wPlayerMonNumber]
ld bc, $002c
call AddNTimes
pop bc
@@ -63864,7 +63864,7 @@ CalculateDamage: ; 3ddcf (f:5dcf)
ld c, a
push bc
ld hl, $d195
- ld a, [W_PLAYERMONNUMBER]
+ ld a, [wPlayerMonNumber]
ld bc, $002c
call AddNTimes
pop bc
@@ -63927,7 +63927,7 @@ Func_3de75: ; 3de75 (f:5e75)
and a
jr z, .asm_3deef
ld hl, W_PARTYMON1_DEFENSE ; $d191
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld bc, $2c
call AddNTimes
ld a, [hli]
@@ -63955,7 +63955,7 @@ Func_3de75: ; 3de75 (f:5e75)
and a
jr z, .asm_3deef
ld hl, W_PARTYMON1_SPECIAL ; $d195
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld bc, $2c
call AddNTimes
ld a, [hli]
@@ -64251,14 +64251,14 @@ HandleCounterMove: ; 3e093 (f:6093)
ld a,[H_WHOSETURN] ; whose turn
and a
; player's turn
- ld hl,W_ENEMYSELECTEDMOVE
+ ld hl,wEnemySelectedMove
ld de,W_ENEMYMOVEPOWER
- ld a,[W_PLAYERSELECTEDMOVE]
+ ld a,[wPlayerSelectedMove]
jr z,.next
; enemy's turn
- ld hl,W_PLAYERSELECTEDMOVE
+ ld hl,wPlayerSelectedMove
ld de,W_PLAYERMOVEPOWER
- ld a,[W_ENEMYSELECTEDMOVE]
+ ld a,[wEnemySelectedMove]
.next
cp a,COUNTER
ret nz ; return if not using Counter
@@ -64381,25 +64381,25 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)
bit 4,a ; does the enemy have a substitute?
jp nz,AttackSubstitute
; subtract the damage from the pokemon's current HP
-; also, save the current HP at W_HPBAROLDHP
+; also, save the current HP at wHPBarOldHP
ld a,[hld]
ld b,a
ld a,[W_ENEMYMONCURHP + 1]
- ld [W_HPBAROLDHP],a
+ ld [wHPBarOldHP],a
sub b
ld [W_ENEMYMONCURHP + 1],a
ld a,[hl]
ld b,a
ld a,[W_ENEMYMONCURHP]
- ld [W_HPBAROLDHP+1],a
+ ld [wHPBarOldHP+1],a
sbc b
ld [W_ENEMYMONCURHP],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
- ld a,[W_HPBAROLDHP+1]
+ ld a,[wHPBarOldHP+1]
ld [hli],a
- ld a,[W_HPBAROLDHP]
+ ld a,[wHPBarOldHP]
ld [hl],a
xor a
ld hl,W_ENEMYMONCURHP
@@ -64408,14 +64408,14 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)
.animateHpBar
ld hl,W_ENEMYMONMAXHP
ld a,[hli]
- ld [W_HPBARMAXHP+1],a
+ ld [wHPBarMaxHP+1],a
ld a,[hl]
- ld [W_HPBARMAXHP],a
+ ld [wHPBarMaxHP],a
ld hl,W_ENEMYMONCURHP
ld a,[hli]
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],a
ld a,[hl]
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
FuncCoord 2, 2 ; $c3ca
ld hl,Coord
xor a
@@ -64502,40 +64502,40 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200)
bit 4,a ; does the player have a substitute?
jp nz,AttackSubstitute
; subtract the damage from the pokemon's current HP
-; also, save the current HP at W_HPBAROLDHP and the new HP at W_HPBARNEWHP
+; 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 [W_HPBAROLDHP],a
+ ld [wHPBarOldHP],a
sub b
ld [W_PLAYERMONCURHP + 1],a
- ld [W_HPBARNEWHP],a
+ ld [wHPBarNewHP],a
ld b,[hl]
ld a,[W_PLAYERMONCURHP]
- ld [W_HPBAROLDHP+1],a
+ ld [wHPBarOldHP+1],a
sbc b
ld [W_PLAYERMONCURHP],a
- ld [W_HPBARNEWHP+1],a
+ ld [wHPBarNewHP+1],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
- ld a,[W_HPBAROLDHP+1]
+ ld a,[wHPBarOldHP+1]
ld [hli],a
- ld a,[W_HPBAROLDHP]
+ ld a,[wHPBarOldHP]
ld [hl],a
xor a
ld hl,W_PLAYERMONCURHP
ld [hli],a
ld [hl],a
- ld hl,W_HPBARNEWHP
+ ld hl,wHPBarNewHP
ld [hli],a
ld [hl],a
.animateHpBar
ld hl,W_PLAYERMONMAXHP
ld a,[hli]
- ld [W_HPBARMAXHP+1],a
+ ld [wHPBarMaxHP+1],a
ld a,[hl]
- ld [W_HPBARMAXHP],a
+ ld [wHPBarMaxHP],a
FuncCoord 10, 9 ; $c45e
ld hl,Coord
ld a,$01
@@ -64549,13 +64549,13 @@ AttackSubstitute: ; 3e25e (f:625e)
ld hl,SubstituteTookDamageText
call PrintText
; values for player turn
- ld de,W_ENEMYSUBSITUTEHP
+ ld de,wEnemySubstituteHP
ld bc,W_ENEMYBATTSTATUS2
ld a,[H_WHOSETURN]
and a
jr z,.applyDamageToSubstitute
; values for enemy turn
- ld de,W_PLAYERSUBSITUTEHP
+ ld de,wPlayerSubstituteHP
ld bc,W_PLAYERBATTSTATUS2
.applyDamageToSubstitute
ld hl,W_DAMAGE
@@ -64605,14 +64605,14 @@ SubstituteBrokeText: ; 3e2b1 (f:62b1)
HandleBuildingRage: ; 3e2b6 (f:62b6)
; values for the player turn
ld hl,W_ENEMYBATTSTATUS2
- ld de,W_ENEMYMONATTACKMOD
+ ld de,wEnemyMonStatMods
ld bc,W_ENEMYMOVENUM
ld a,[H_WHOSETURN]
and a
jr z,.next
; values for the enemy turn
ld hl,W_PLAYERBATTSTATUS2
- ld de,W_PLAYERMONATTACKMOD
+ ld de,wPlayerMonStatMods
ld bc,W_PLAYERMOVENUM
.next
bit 6,[hl] ; is the pokemon being attacked under the effect of Rage?
@@ -64655,13 +64655,13 @@ MirrorMoveCopyMove: ; 3e2fd (f:62fd)
and a
; values for player turn
ld a,[$ccf2]
- ld hl,W_PLAYERSELECTEDMOVE
+ ld hl,wPlayerSelectedMove
ld de,W_PLAYERMOVENUM
jr z,.next
; values for enemy turn
ld a,[$ccf1]
ld de,W_ENEMYMOVENUM
- ld hl,W_ENEMYSELECTEDMOVE
+ ld hl,wEnemySelectedMove
.next
ld [hl],a
cp a,MIRROR_MOVE ; did the target pokemon also use Mirror Move?
@@ -64704,13 +64704,13 @@ MetronomePickMove: ; 3e348 (f:6348)
call PlayMoveAnimation ; play Metronome's animation
; values for player turn
ld de,W_PLAYERMOVENUM
- ld hl,W_PLAYERSELECTEDMOVE
+ ld hl,wPlayerSelectedMove
ld a,[H_WHOSETURN]
and a
jr z,.pickMoveLoop
; values for enemy turn
ld de,W_ENEMYMOVENUM
- ld hl,W_ENEMYSELECTEDMOVE
+ 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
@@ -64732,12 +64732,12 @@ IncrementMovePP: ; 3e373 (f:6373)
; values for player turn
ld hl,W_PLAYERMONPP
ld de,W_PARTYMON1_MOVE1PP
- ld a,[W_PLAYERMOVELISTINDEX]
+ ld a,[wPlayerMoveListIndex]
jr z,.next
; values for enemy turn
ld hl,W_ENEMYMONPP
ld de,$d8c1 ; enemy party pokemon 1 PP
- ld a,[W_ENEMYMOVELISTINDEX]
+ ld a,[wEnemyMoveListIndex]
.next
ld b,$00
ld c,a
@@ -64748,7 +64748,7 @@ IncrementMovePP: ; 3e373 (f:6373)
add hl,bc
ld a,[H_WHOSETURN]
and a
- ld a,[W_PLAYERMONNUMBER] ; value for player turn
+ ld a,[wPlayerMonNumber] ; value for player turn
jr z,.next2
ld a,[W_ENEMYMONNUMBER] ; value for enemy turn
.next2
@@ -65124,16 +65124,16 @@ CalcHitChance: ; 3e624 (f:6624)
ld hl,W_PLAYERMOVEACCURACY
ld a,[H_WHOSETURN]
and a
- ld a,[W_PLAYERMONACCURACYMOD]
+ ld a,[wPlayerMonAccuracyMod]
ld b,a
- ld a,[W_ENEMYMONEVASIONMOD]
+ ld a,[wEnemyMonEvasionMod]
ld c,a
jr z,.next
; values for enemy turn
ld hl,W_ENEMYMOVEACCURACY
- ld a,[W_ENEMYMONACCURACYMOD]
+ ld a,[wEnemyMonAccuracyMod]
ld b,a
- ld a,[W_PLAYERMONEVASIONMOD]
+ ld a,[wPlayerMonEvasionMod]
ld c,a
.next
ld a,$0e
@@ -65223,7 +65223,7 @@ Func_3e687: ; 3e687 (f:6687)
ret
Func_3e6bc: ; 3e6bc (f:66bc)
- ld a, [W_ENEMYSELECTEDMOVE] ; $ccdd
+ ld a, [wEnemySelectedMove] ; $ccdd
inc a
jp z, Func_3e88c
call Function5811
@@ -65587,7 +65587,7 @@ Func_3e9aa: ; 3e9aa (f:69aa)
ld a, [$ccef]
and a
jr z, .asm_3e9bf
- ld hl, W_ENEMYSELECTEDMOVE ; $ccdd
+ ld hl, wEnemySelectedMove ; $ccdd
cp [hl]
jr nz, .asm_3e9bf
call Func_3da88
@@ -65731,7 +65731,7 @@ GetCurrentMove: ; 3eabe (f:6abe)
and a
jp z, .player
ld de, W_ENEMYMOVENUM ; $cfcc
- ld a, [W_ENEMYSELECTEDMOVE] ; $ccdd
+ ld a, [wEnemySelectedMove] ; $ccdd
jr .selected
.player
ld de, W_PLAYERMOVENUM ; $cfd2
@@ -65739,7 +65739,7 @@ GetCurrentMove: ; 3eabe (f:6abe)
bit 0, a
ld a, [$ccd9]
jr nz, .selected
- ld a, [W_PLAYERSELECTEDMOVE] ; $ccdc
+ ld a, [wPlayerSelectedMove] ; $ccdc
.selected
ld [$d0b5], a
dec a
@@ -65807,14 +65807,14 @@ Func_3eb01: ; 3eb01 (f:6b01)
jr .asm_3eb86
.asm_3eb65
ld hl, W_ENEMYMON1HP ; $d8a5 (aliases: W_WATERMONS)
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld bc, $2c
call AddNTimes
ld a, [hli]
ld [W_ENEMYMONCURHP], a ; $cfe6
ld a, [hli]
ld [$cfe7], a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld [W_ENEMYMONNUMBER], a ; $cfe8
inc hl
ld a, [hl]
@@ -65836,7 +65836,7 @@ Func_3eb01: ; 3eb01 (f:6b01)
cp $2
jr nz, .asm_3ebb0
ld hl, $d8ac
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld bc, $2c
call AddNTimes
ld bc, $4
@@ -65897,7 +65897,7 @@ Func_3eb01: ; 3eb01 (f:6b01)
dec a
ld c, a
ld b, $1
- ld hl, W_SEENPOKEMON ; $d30a
+ ld hl, wPokedexSeen ; $d30a
ld a, $10
call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
ld hl, W_ENEMYMONLEVEL ; $cff3
@@ -65906,7 +65906,7 @@ Func_3eb01: ; 3eb01 (f:6b01)
call CopyData
ld a, $7
ld b, $8
- ld hl, W_ENEMYMONATTACKMOD ; $cd2e
+ ld hl, wEnemyMonStatMods ; $cd2e
.asm_3ec2d
ld [hli], a
dec b
@@ -65918,7 +65918,7 @@ Func_3ec32: ; 3ec32 (f:6c32)
cp $4
jr nz, .asm_3ec4d
xor a
- ld [W_MENUJOYPADPOLLCOUNT], a ; $cc34
+ ld [wMenuJoypadPollCount], a ; $cc34
ld hl, Func_372d6
ld b, BANK(Func_372d6)
call Bankswitch ; indirect jump to Func_372d6 (372d6 (d:72d6))
@@ -65974,7 +65974,7 @@ Func_3ec92: ; 3ec92 (f:6c92)
call UncompressSpriteFromDE
ld a, $3
call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40))
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
xor a
ld [H_DOWNARROWBLINKCNT1], a ; $FF00+$8b
ld b, $7
@@ -66148,11 +66148,11 @@ Func_3eda5: ; 3eda5 (f:6da5)
ld a, c
ld hl, W_PLAYERMONATK
ld de, $cd12
- ld bc, W_PLAYERMONATTACKMOD ; $cd1a
+ ld bc, wPlayerMonAttackMod ; $cd1a
jr z, .asm_3edc0
ld hl, W_ENEMYMONATTACK
ld de, $cd26
- ld bc, W_ENEMYMONATTACKMOD ; $cd2e
+ ld bc, wEnemyMonStatMods ; $cd2e
.asm_3edc0
add c
ld c, a
@@ -66424,7 +66424,7 @@ asm_3ef3d: ; 3ef3d (f:6f3d)
ld [W_ENEMYMONID], a
ld [$FF00+$e1], a
dec a
- ld [W_AICOUNT], a ; $ccdf
+ ld [wAICount], a ; $ccdf
FuncCoord 12, 0 ; $c3ac
ld hl, Coord
ld a, $1
@@ -66996,7 +66996,7 @@ CheckDefrost: ; 3f3e2 (f:73e2)
ret nz
ld [W_PLAYERMONSTATUS], a
ld hl, $d16f
- ld a, [W_PLAYERMONNUMBER]
+ ld a, [wPlayerMonNumber]
ld bc, $002c
call AddNTimes
xor a
@@ -67010,12 +67010,12 @@ UnnamedText_3f423: ; 3f423 (f:7423)
db "@"
Func_3f428: ; 3f428 (f:7428)
- ld hl, W_PLAYERMONATTACKMOD ; $cd1a
+ ld hl, wPlayerMonStatMods ; $cd1a
ld de, W_PLAYERMOVEEFFECT ; $cfd3
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
jr z, .asm_3f439
- ld hl, W_ENEMYMONATTACKMOD ; $cd2e
+ ld hl, wEnemyMonStatMods ; $cd2e
ld de, W_ENEMYMOVEEFFECT ; $cfcd
.asm_3f439
ld a, [de]
@@ -67187,13 +67187,13 @@ UnnamedText_3f547: ; 3f547 (f:7547)
TX_FAR _UnnamedText_3f547
db "@"
- ld hl, W_ENEMYMONATTACKMOD ; $cd2e
+ ld hl, wEnemyMonStatMods ; $cd2e
ld de, W_PLAYERMOVEEFFECT ; $cfd3
ld bc, W_ENEMYBATTSTATUS1 ; $d067
ld a, [H_WHOSETURN] ; $FF00+$f3
and a
jr z, .asm_3f572
- ld hl, W_PLAYERMONATTACKMOD ; $cd1a
+ ld hl, wPlayerMonStatMods ; $cd1a
ld de, W_ENEMYMOVEEFFECT ; $cfcd
ld bc, W_PLAYERBATTSTATUS1 ; $d062
ld a, [W_ISLINKBATTLE] ; $d12b
@@ -67634,13 +67634,13 @@ UnnamedText_3f80c: ; 3f80c (f:780c)
ld a, b
call Func_3fbb9
ld a, [de]
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld hl, Unknown_3f8c8 ; $78c8
jp PrintText
Unknown_3f8c8: ; 3f8c8 (f:78c8)
INCBIN "baserom.gbc",$3f8c8,$3f8cd - $3f8c8
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $d
ld hl, UnnamedText_3f8f9 ; $78f9
jr z, .asm_3f8f8
@@ -68000,12 +68000,12 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
call GBPalWhiteOut
call ClearScreen
call UpdateSprites ; move sprites
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
push af
xor a
- ld [W_CURMENUITEMID],a
- ld [W_LISTSCROLLOFFSET],a
- ld [W_OLDMENUITEMID],a
+ ld [wCurrentMenuItem],a
+ ld [wListScrollOffset],a
+ ld [wLastMenuItem],a
inc a
ld [$d11e],a
ld [$ffb7],a
@@ -68016,7 +68016,7 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
ld b,BANK(LoadPokedexTilePatterns)
call Bankswitch
.doPokemonListMenu
- ld hl,W_TOPMENUITEMY
+ ld hl,wTopMenuItemY
ld a,3
ld [hli],a ; top menu item Y
xor a
@@ -68033,13 +68033,13 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
.exitPokedex
xor a
ld [$cc37],a
- ld [W_CURMENUITEMID],a
- ld [W_OLDMENUITEMID],a
+ ld [wCurrentMenuItem],a
+ ld [wLastMenuItem],a
ld [$ffb7],a
ld [$cd3a],a
ld [$cd3b],a
pop af
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
call GBPalWhiteOutWithDelay3
call GoPAL_SET_CF1C
jp ReloadMapData
@@ -68059,12 +68059,12 @@ DisplayPokedexMenu_: ; 40000 (10:4000)
; 02: the pokemon has not been seen yet or the player pressed the B button
HandlePokedexSideMenu: ; 4006d (10:406d)
call PlaceUnfilledArrowMenuCursor
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
push af
ld b,a
- ld a,[W_OLDMENUITEMID]
+ ld a,[wLastMenuItem]
push af
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
push af
add b
inc a
@@ -68073,12 +68073,12 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
push af
ld a,[$cd3d]
push af
- ld hl,W_SEENPOKEMON
+ ld hl,wPokedexSeen
call IsPokemonBitSet
ld b,2
jr z,.exitSideMenu
call PokedexToIndex
- ld hl,W_TOPMENUITEMY
+ ld hl,wTopMenuItemY
ld a,10
ld [hli],a ; top menu item Y
ld a,15
@@ -68097,7 +68097,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
bit 1,a ; was the B button pressed?
ld b,2
jr nz,.buttonBPressed
- ld a,[W_CURMENUITEMID]
+ ld a,[wCurrentMenuItem]
and a
jr z,.choseData
dec a
@@ -68112,11 +68112,11 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
pop af
ld [$d11e],a
pop af
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
pop af
- ld [W_OLDMENUITEMID],a
+ ld [wLastMenuItem],a
pop af
- ld [W_CURMENUITEMID],a
+ ld [wCurrentMenuItem],a
push bc
FuncCoord 0,3
ld hl,Coord
@@ -68173,7 +68173,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
FuncCoord 14,9
ld hl,Coord
call DrawPokedexVerticalLine
- ld hl,W_SEENPOKEMON
+ ld hl,wPokedexSeen
ld b,19
call CountSetBits
ld de,$d11e
@@ -68181,7 +68181,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
ld hl,Coord
ld bc,$0103
call PrintNumber ; print number of seen pokemon
- ld hl,W_OWNEDPOKEMON
+ ld hl,wPokedexOwned
ld b,19
call CountSetBits
ld de,$d11e
@@ -68206,7 +68206,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
ld de,PokedexMenuItemsText
call PlaceString
; find the highest pokedex number among the pokemon the player has seen
- ld hl,W_SEENPOKEMON + 18
+ ld hl,wPokedexSeen + 18
ld b,153
.maxSeenPokemonLoop
ld a,[hld]
@@ -68230,7 +68230,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
call ClearScreenArea
FuncCoord 1,3
ld hl,Coord
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
ld [$d11e],a
ld d,7
ld a,[$cd3d]
@@ -68238,7 +68238,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
jr nc,.printPokemonLoop
ld d,a
dec a
- ld [W_MAXMENUITEMID],a
+ ld [wMaxMenuItem],a
; loop to print pokemon pokedex numbers and names
; if the player has owned the pokemon, it puts a pokeball beside the name
.printPokemonLoop
@@ -68257,7 +68257,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
add hl,de
dec hl
push hl
- ld hl,W_OWNEDPOKEMON
+ ld hl,wPokedexOwned
call IsPokemonBitSet
pop hl
ld a," "
@@ -68266,7 +68266,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
.writeTile
ld [hl],a ; put a pokeball next to pokemon that the player has owned
push hl
- ld hl,W_SEENPOKEMON
+ ld hl,wPokedexSeen
call IsPokemonBitSet
jr nz,.getPokemonName ; if the player has seen the pokemon
ld de,.dashedLine ; print a dashed line in place of the name if the player hasn't seen the pokemon
@@ -68299,11 +68299,11 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 6,a ; was Up pressed?
jr z,.checkIfDownPressed
.upPressed ; scroll up one row
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
and a
jp z,.loop
dec a
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
jp .loop
.checkIfDownPressed
bit 7,a ; was Down pressed?
@@ -68314,11 +68314,11 @@ HandlePokedexListMenu: ; 40111 (10:4111)
jp c,.loop
sub a,7
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
cp b
jp z,.loop
inc a
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
jp .loop
.checkIfRightPressed
bit 4,a ; was Right pressed?
@@ -68329,25 +68329,25 @@ HandlePokedexListMenu: ; 40111 (10:4111)
jp c,.loop
sub a,6
ld b,a
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
add a,7
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
cp b
jp c,.loop
dec b
ld a,b
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
jp .loop
.checkIfLeftPressed ; scroll up 7 rows
bit 5,a ; was Left pressed?
jr z,.buttonAPressed
.leftPressed
- ld a,[W_LISTSCROLLOFFSET]
+ ld a,[wListScrollOffset]
sub a,7
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
jp nc,.loop
xor a
- ld [W_LISTSCROLLOFFSET],a
+ ld [wListScrollOffset],a
jp .loop
.buttonAPressed
scf
@@ -68496,7 +68496,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld de,$d11e
ld bc,$8103
call PrintNumber ; print pokedex number
- ld hl,W_OWNEDPOKEMON
+ ld hl,wPokedexOwned
call IsPokemonBitSet
pop af
ld [$d11e],a
@@ -70126,17 +70126,17 @@ PokedexOrder: ; 41024 (10:5024)
db DEX_VICTREEBEL
Func_410e2: ; 410e2 (10:50e2)
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$cd5e], a
- ld a, [W_TRAINERENGAGEDISTANCE]
+ ld a, [wTrainerEngageDistance]
ld [$cd5f], a
ld de, Unknown_41138 ; $5138
jr Func_41102
Func_410f3: ; 410f3 (10:50f3)
- ld a, [W_TRAINERENGAGEDISTANCE]
+ ld a, [wTrainerEngageDistance]
ld [$cd5e], a
- ld a, [W_TRAINERSPRITEOFFSET]
+ ld a, [wTrainerSpriteOffset]
ld [$cd5f], a
ld de, Unknown_41149
@@ -70205,7 +70205,7 @@ Func_41191: ; 41191 (10:5191)
jp DelayFrames
Func_41196: ; 41196 (10:5196)
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $168
ld a, $7f
jp FillMemory
@@ -70240,7 +70240,7 @@ Func_41196: ; 41196 (10:5196)
call EnableLCD
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$d11e], a
call GetMonName
ld hl, $cd6d
@@ -70282,7 +70282,7 @@ INCBIN "baserom.gbc",$41217,$4123b - $41217
ld b, $98
call CopyScreenTileBufferToVRAM
call ClearScreen
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
call Func_415a4
ld a, $7e
.asm_41273
@@ -70300,7 +70300,7 @@ INCBIN "baserom.gbc",$41217,$4123b - $41217
call Func_41676
ld a, $aa
call Func_41676
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
call PlayCry
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
@@ -70637,7 +70637,7 @@ Func_41505: ; 41505 (10:5505)
call Func_41558
Func_41510: ; 41510 (10:5510)
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld c, $14
.asm_41515
ld a, [W_BASECOORDY] ; $d082
@@ -70998,7 +70998,7 @@ AnimateIntroNidorino: ; 41793 (10:5793)
jr AnimateIntroNidorino
Func_417ae: ; 417ae (10:57ae)
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld a, [$d09f]
ld d, a
.asm_417b5
@@ -71017,7 +71017,7 @@ Func_417ae: ; 417ae (10:57ae)
ret
Func_417c7: ; 417c7 (10:57c7)
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld d, $0
.asm_417cc
push bc
@@ -71181,7 +71181,7 @@ Func_4188a: ; 4188a (10:588a)
Func_418e9: ; 418e9 (10:58e9)
call Func_417f0
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld c, $50
call Func_41807
FuncCoord 0, 14 ; $c4b8
@@ -71437,12 +71437,12 @@ LavenderTownText9: ; 44164 (11:4164)
db "@"
DisplayDexRating: ; 44169 (11:4169)
- ld hl, W_SEENPOKEMON
+ ld hl, wPokedexSeen
ld b, $13
call CountSetBits
ld a, [$D11E] ; result of CountSetBits (seen count)
ld [$FFDB], a
- ld hl, W_OWNEDPOKEMON
+ ld hl, wPokedexOwned
ld b, $13
call CountSetBits
ld a, [$D11E] ; result of CountSetBits (own count)
@@ -72101,7 +72101,7 @@ SeafoamIslands1Script: ; 447e9 (11:47e9)
call EnableAutoTextBoxDrawing
ld hl, $d7e7
set 0, [hl]
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
jr z, .asm_4483b ; 0x447f8 $41
@@ -72255,14 +72255,14 @@ VictoryRoad3ScriptPointers: ; 449b1 (11:49b1)
dw EndTrainerBattle
VictoryRoad3Script0: ; 449b7 (11:49b7)
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
jp z, .asm_449fe
ld hl, .coordsData_449f9 ; $49f9
call CheckBoulderCoords
jp nc, .asm_449fe
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $1
jr nz, .asm_449dc
ld hl, $d126
@@ -72294,7 +72294,7 @@ VictoryRoad3Script0: ; 449b7 (11:49b7)
ld [$d71d], a
ld hl, .coordsData_449f9 ; $49f9
call Func_46981
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $1
jr nz, .asm_44a1b
ld hl, $d72d
@@ -72734,7 +72734,7 @@ RocketHideout2Script0: ; 44e42 (11:4e42)
ld a, $a7
call PlaySound
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $3
ld [W_CURMAPSCRIPT], a
ret
@@ -73016,7 +73016,7 @@ RocketHideout2Script3: ; 44fc2 (11:4fc2)
and a
jr nz, Func_44fd7
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d736
res 7, [hl]
ld a, $0
@@ -73268,7 +73268,7 @@ RocketHideout3Script0: ; 45240 (11:5240)
ld a, $a7
call PlaySound
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $3
ld [W_CURMAPSCRIPT], a
ret
@@ -73380,7 +73380,7 @@ RocketHideout3Script3 ; 452e4 (11:452e4)
and a
jp nz, Func_44fd7
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d736
res 7, [hl]
ld a, $0
@@ -73521,7 +73521,7 @@ Func_45473: ; 45473 (11:5473)
Func_454a3: ; 454a3 (11:54a3)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -73538,7 +73538,7 @@ RocketHideout4Script3: ; 454b6 (11:54b6)
jp z, Func_454a3
call UpdateSprites
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d81b
set 7, [hl]
ld a, $a
@@ -73556,7 +73556,7 @@ RocketHideout4Script3: ; 454b6 (11:54b6)
call UpdateSprites
call GBFadeOut1
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d126
set 5, [hl]
ld a, $0
@@ -74725,7 +74725,7 @@ SeafoamIslands2_h: ; 0x46309 to 0x46315 (12 bytes) (bank=11) (id=159)
SeafoamIslands2Script: ; 46315 (11:6315)
call EnableAutoTextBoxDrawing
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
jr z, .asm_46362 ; 0x4631f $41
@@ -74812,7 +74812,7 @@ SeafoamIslands3_h: ; 0x46445 to 0x46451 (12 bytes) (bank=11) (id=160)
SeafoamIslands3Script: ; 46451 (11:6451)
call EnableAutoTextBoxDrawing
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
jr z, .asm_4649e ; 0x4645b $41
@@ -74899,7 +74899,7 @@ SeafoamIslands4_h: ; 0x46581 to 0x4658d (12 bytes) (bank=11) (id=161)
SeafoamIslands4Script: ; 4658d (11:658d)
call EnableAutoTextBoxDrawing
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
jr z, .asm_465dc ; 0x46597 $43
@@ -75063,7 +75063,7 @@ SeafoamIslands5Script: ; 46799 (11:6799)
SeafoamIslands5Script_467a5: ; 467a5 (11:67a5)
xor a
ld [W_SEAFOAMISLANDS5CURSCRIPT], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
SeafoamIslands5ScriptPointers: ; 467ad (11:67ad)
@@ -75122,7 +75122,7 @@ SeafoamIslands5Script1: ; 46807 (11:6807)
and a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_SEAFOAMISLANDS5CURSCRIPT], a
ret
@@ -75268,7 +75268,7 @@ Func_46981: ; 46981 (11:6981)
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$d71e], a
ld hl, $d72d
set 4, [hl]
@@ -75303,7 +75303,7 @@ Func_469a0: ; 469a0 (11:69a0)
ld h, [hl]
ld l, a
push hl
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
xor a
ld [hli], a
ld [hli], a
@@ -75333,7 +75333,7 @@ Func_469a0: ; 469a0 (11:69a0)
jr .asm_469ce
.asm_469f0
ld a, [hli]
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld a, [hli]
ld [$cd3e], a
ld a, [hli]
@@ -76680,16 +76680,16 @@ Func_4840c: ; 4840c (12:440c)
ld hl, UnnamedText_484ee ; $44ee
call PrintText
xor a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, [$cd37]
dec a
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, $2
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $1
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
ld a, [$cd37]
dec a
ld bc, $2
@@ -76698,7 +76698,7 @@ Func_4840c: ; 4840c (12:440c)
dec l
ld b, l
ld c, $c
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
call TextBoxBorder
call UpdateSprites
call Func_48532
@@ -76708,7 +76708,7 @@ Func_4840c: ; 4840c (12:440c)
bit 1, a
ret nz
ld hl, $cc5b
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld d, $0
ld e, a
add hl, de
@@ -77129,8 +77129,8 @@ DirectorText: ; 487b2 (12:47b2)
db $08 ; asm
; check pokédex
- ld hl, WPokedexOwned
- ld b, WPokedexOwnedEnd-WPokedexOwned
+ ld hl, wPokedexOwned
+ ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
ld a, [$d11e]
cp 150
@@ -77328,7 +77328,7 @@ Gym4LeaderName: ; 4893d (12:493d)
Func_48943: ; 48943 (12:4943)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_CELADONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -77344,7 +77344,7 @@ CeladonGymScript3: ; 48956 (12:4956)
cp $ff
jp z, Func_48943
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_48963: ; 48963 (12:4963)
ld a, $9
@@ -77719,7 +77719,7 @@ Func_48bec: ; 48bec (12:4bec)
CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_CELADONGAMECORNERCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -77737,7 +77737,7 @@ CeladonGameCornerScript1: ; 48c19 (12:4c19)
cp $ff
jp z, CeladonGameCornerScript_48c07
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $d
ld [H_SPRITEHEIGHT], a
call DisplayTextID
@@ -77774,7 +77774,7 @@ CeladonGameCornerScript2: ; 48c69 (12:4c69)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $46
ld [$cc4d], a
ld a, $11
@@ -78610,7 +78610,7 @@ MtMoonPokecenterText4: ; 492ec (12:52ec)
call GivePokemon
jr nc, .asm_49359 ; 0x49324
xor a
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld [$cd3f], a
ld a, $5
ld [$cd3e], a
@@ -78790,7 +78790,7 @@ Route11GateUpstairsTextPointers: ; 49457 (12:5457)
Route11GateUpstairsText1: ; 4945f (12:545f)
db $08 ; asm
xor a
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
asm_49469: ; 49469 (12:5469)
@@ -79200,7 +79200,7 @@ Route16GateMapScript1: ; 4971d (12:571d)
and a
ret nz
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Route16GateMapScript2: ; 49727 (12:5727)
ld a, $1
@@ -79220,7 +79220,7 @@ Route16GateMapScript3: ; 49741 (12:5741)
and a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d730
res 7, [hl]
ld a, $0
@@ -79436,7 +79436,7 @@ Route18GateScript1: ; 498d5 (12:58d5)
and a
ret nz
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Route18GateScript2: ; 498df (12:58df)
ld a, $1
@@ -79456,7 +79456,7 @@ Route18GateScript3: ; 498f9 (12:58f9)
and a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d730
res 7, [hl]
ld a, $0
@@ -79533,7 +79533,7 @@ Route18GateUpstairsTextPointers: ; 49978 (12:5978)
Route18GateUpstairsText1: ; 4997e (12:597e)
db $08 ; asm
ld a, $5
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
jp TextScriptEnd
@@ -79894,7 +79894,7 @@ CoordsData_49d37: ; 49d37 (12:5d37)
Func_49d58: ; 49d58 (12:5d58)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -79938,7 +79938,7 @@ MtMoon3Script3: ; 49d9a (12:5d9a)
ld hl, $d7f6
set 1, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -79990,7 +79990,7 @@ MtMoon3Script5: ; 49dfb (12:5dfb)
bit 0, a
ret nz
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [$cc3c], a
ld a, $a
@@ -80008,7 +80008,7 @@ MtMoon3Script5: ; 49dfb (12:5dfb)
ld a, $11
call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -80694,7 +80694,7 @@ Func_4fe11: ; 4fe11 (13:7e11)
ld a, [$d11e]
dec a
ld c, a
- ld hl, W_OWNEDPOKEMON ; $d2f7
+ ld hl, wPokedexOwned ; $d2f7
ld b, $1
ld a, $10
call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
@@ -81777,7 +81777,7 @@ Route22ScriptPointers: ; 50ebe (14:4ebe)
Func_50ece: ; 50ece (14:4ece)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE22CURSCRIPT], a
Route22Script7: ; 50ed5 (14:4ed5)
ret
@@ -81823,7 +81823,7 @@ Route22Script0: ; 50f00 (14:4f00)
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $2
ld [$d528], a
ld a, [$d7eb]
@@ -81881,7 +81881,7 @@ Route22Script1: ; 50f62 (14:4f62)
ld [$ff00+$8c], a
call Func_34a6
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [$ff00+$8c], a
call DisplayTextID
@@ -81921,7 +81921,7 @@ Route22Script2: ; 50fb5 (14:4fb5)
ld [$ff00+$8c], a
call Func_34a6
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d7eb
set 5, [hl]
ld a, $1
@@ -81967,7 +81967,7 @@ Route22Script3: ; 5102a (14:502a)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $22
ld [$cc4d], a
ld a, $11
@@ -82028,7 +82028,7 @@ Route22Script4: ; 51087 (14:5087)
ld [$FF00+$8d], a
call Func_34a6
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $2
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
@@ -82072,7 +82072,7 @@ Route22Script5: ; 510df (14:50df)
ld [$FF00+$8d], a
call Func_34a6
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d7eb
set 6, [hl]
ld a, $2
@@ -82118,7 +82118,7 @@ Route22Script6: ; 51151 (14:5151)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $23
ld [$cc4d], a
ld a, $11
@@ -82274,7 +82274,7 @@ YCoordsData_51255: ; 51255 (14:5255)
Func_5125d: ; 5125d (14:525d)
ld hl, BadgeTextPointers ; $5276
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
ld b, $0
add hl, bc
@@ -82328,7 +82328,7 @@ Func_512d8: ; 512d8 (14:52d8)
ld [$ccd3], a
xor a
ld [$c109], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
jp Func_3486
Route23Script1: ; 512ec (14:52ec)
@@ -82393,9 +82393,9 @@ Route23Text7: ; 5133d (14:533d)
jp TextScriptEnd
Func_51346: ; 51346 (14:5346)
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
call Func_5125d
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
inc a
ld c, a
ld b, $2
@@ -82414,7 +82414,7 @@ Func_51346: ; 51346 (14:5346)
.asm_5136e
ld hl, VictoryRoadGuardText2 ; $539e
call PrintText
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
ld b, $1
ld hl, $d7ed
@@ -82457,7 +82457,7 @@ Route24Script: ; 513ad (14:53ad)
Func_513c0: ; 513c0 (14:53c0)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE24CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -82514,14 +82514,14 @@ Route24Script3: ; 51422 (14:5422)
jp z, Func_513c0
call UpdateSprites
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d7ef
set 1, [hl]
ld a, $1
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_ROUTE24CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -83143,7 +83143,7 @@ VictoryRoad2Script0: ; 517f1 (14:57f1)
call CheckBoulderCoords
jp nc, CheckFightingMapTrainers
ld hl, $d7ee
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $2
jr z, .asm_5180b
bit 0, [hl]
@@ -83544,7 +83544,7 @@ Func_51bf4: ; 51bf4 (14:5bf4)
Func_51c0c: ; 51c0c (14:5c0c)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_51c10: ; 51c10 (14:5c10)
ld [W_SILPHCO7CURSCRIPT], a
@@ -83569,7 +83569,7 @@ SilphCo7Script0: ; 51c23 (14:5c23)
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $4
ld [$d528], a
ld a, $ff
@@ -83585,7 +83585,7 @@ SilphCo7Script0: ; 51c23 (14:5c23)
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call SetSpriteMovementBytesToFF
ld de, MovementData_51c7d
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$cf0d], a
cp $1
jr z, .asm_51c6c
@@ -83610,7 +83610,7 @@ SilphCo7Script3: ; 51c82 (14:5c82)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $d
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
@@ -83645,7 +83645,7 @@ SilphCo7Script4: ; 51cc8 (14:5cc8)
cp $ff
jp z, Func_51c0c
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d82f
set 0, [hl]
ld a, $4
@@ -83692,7 +83692,7 @@ SilphCo7Script5: ; 51d25 (14:5d25)
call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
call Func_2307
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
jp Func_51c10
SilphCo7TextPointers: ; 51d3f (14:5d3f)
@@ -84255,7 +84255,7 @@ Func_5225b: ; 5225b (14:625b)
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$d71e], a
ld hl, $d72d
set 4, [hl]
@@ -84539,11 +84539,11 @@ Func_525af: ; 525af (14:65af)
ld [hli], a
ld [hli], a
ld [hl], a
- ld [W_LISTSCROLLOFFSET], a ; $cc36
+ ld [wListScrollOffset], a ; $cc36
ld [$d05e], a
ld [W_PLAYERMONID], a
ld [W_PLAYERMONSALIVEFLAGS], a
- ld [W_PLAYERMONNUMBER], a ; $cc2f
+ ld [wPlayerMonNumber], a ; $cc2f
ld [$d078], a
ld [$d35d], a
ld hl, $cf1d
@@ -84971,7 +84971,7 @@ PrintPrizePrice: ; 5287a (14:687a)
call PlaceString
FuncCoord 13,1
ld hl,Coord
- ld de,W_PLAYERCOINS1
+ ld de,wPlayerCoins
ld c,%10000010
call PrintBCDNumber
ret
@@ -85051,7 +85051,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
.SubtractCoins ; 14:692C
call LoadCoinsToSubtract
ld hl,$FFA1
- ld de,W_PLAYERCOINS2
+ ld de,wPlayerCoins + 1
ld c,$02 ; how many bytes
ld a,$0C
call Predef ; subtract coins (BCD daa operations)
@@ -85705,7 +85705,7 @@ Func_5524f: ; 5524f (15:524f)
call Func_5546c
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
xor a
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wWhichPokemon], a ; $cf92
Func_5525f: ; 5525f (15:525f)
inc hl
@@ -85714,7 +85714,7 @@ Func_5525f: ; 5525f (15:525f)
jp z, Func_55436
push hl
ld hl, W_PLAYERMONSALIVEFLAGS
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $2
ld a, $10
@@ -85771,11 +85771,11 @@ Func_5525f: ; 5525f (15:525f)
add hl, de
ld b, [hl]
inc hl
- ld a, [W_PLAYERIDHI] ; $d359
+ ld a, [wPlayerID] ; $d359
cp b
jr nz, .asm_552d1
ld b, [hl]
- ld a, [W_PLAYERIDLO] ; $d35a
+ ld a, [wPlayerID + 1] ; $d35a
cp b
ld a, $0
jr z, .asm_552d6
@@ -85807,7 +85807,7 @@ Func_5525f: ; 5525f (15:525f)
.asm_552f8
inc hl
push hl
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $0
ld hl, W_PARTYMON1 ; $d164
@@ -85842,7 +85842,7 @@ Func_5525f: ; 5525f (15:525f)
dec hl
.asm_5532e
push hl
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld hl, W_PARTYMON1NAME ; $d2b5
call GetPartyMonName
ld hl, Unknown_554b2 ; $54b2
@@ -85902,9 +85902,9 @@ Func_5525f: ; 5525f (15:525f)
ld a, [hl]
adc b
ld [hl], a
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld b, a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
cp b
jr nz, .asm_553f7
ld de, W_PLAYERMONCURHP ; $d015
@@ -85964,7 +85964,7 @@ Func_5525f: ; 5525f (15:525f)
ld a, $1a
call Predef ; indirect jump to Func_3af5b (3af5b (e:6f5b))
ld hl, $ccd3
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
ld c, a
ld b, $1
ld a, $10
@@ -85976,11 +85976,11 @@ Func_5525f: ; 5525f (15:525f)
Func_55436: ; 55436 (15:5436)
ld a, [W_NUMINPARTY] ; $d163
ld b, a
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
inc a
cp b
jr z, .asm_55450
- ld [W_WHICHPOKEMON], a ; $cf92
+ ld [wWhichPokemon], a ; $cf92
ld bc, $2c
ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
call AddNTimes
@@ -85989,7 +85989,7 @@ Func_55436: ; 55436 (15:5436)
ld hl, W_PLAYERMONSALIVEFLAGS
xor a
ld [hl], a
- ld a, [W_PLAYERMONNUMBER] ; $cc2f
+ ld a, [wPlayerMonNumber] ; $cc2f
ld c, a
ld b, $1
push bc
@@ -88907,7 +88907,7 @@ DisplayDiploma: ; 566e2 (15:66e2)
ld bc, $0010
ld a, BANK(CircleTile)
call FarCopyData2
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $1012
ld a, $27
call Predef
@@ -89004,7 +89004,7 @@ DiplomaGameFreak:
db "GAME FREAK@"
Func_567f9: ; 567f9 (15:67f9)
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld de, $4
ld a, [$cf13]
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -89023,7 +89023,7 @@ Func_567f9: ; 567f9 (15:67f9)
ret
Func_56819: ; 56819 (15:6819)
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld de, $0004
ld a, [$cf13]
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -89042,7 +89042,7 @@ Func_56819: ; 56819 (15:6819)
ret
Func_5683d: ; 5683d (15:683d)
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld de, $4
ld a, [$cf13]
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -89061,7 +89061,7 @@ Func_5683d: ; 5683d (15:683d)
ret
Func_5685d: ; 5685d (15:685d)
- ld hl, $c100
+ ld hl, wSpriteStateData1
ld de, $0004
ld a, [$cf13]
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -89082,9 +89082,9 @@ Func_5685d: ; 5685d (15:685d)
TrainerWalkUpToPlayer: ; 56881 (15:6881)
ld a, [$cf13]
swap a
- ld [W_TRAINERSPRITEOFFSET], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; $cd3d
call ReadTrainerScreenPosition
- ld a, [W_TRAINERFACINGDIR]
+ ld a, [wTrainerFacingDirection]
and a
jr z, .facingDown
cp $4
@@ -89093,7 +89093,7 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881)
jr z, .facingLeft
jr .facingRight
.facingDown
- ld a, [W_TRAINERSCREENYPOS]
+ ld a, [wTrainerScreenY]
ld b, a
ld a, $3c ; (fixed) player screen Y pos
call CalcDifference
@@ -89106,7 +89106,7 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881)
ld b, a ; a = direction to go to
jr .writeWalkScript
.facingUp
- ld a, [W_TRAINERSCREENYPOS]
+ ld a, [wTrainerScreenY]
ld b, a
ld a, $3c ; (fixed) player screen Y pos
call CalcDifference
@@ -89119,7 +89119,7 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881)
ld a, $40 ; a = direction to go to
jr .writeWalkScript
.facingRight
- ld a, [W_TRAINERSCREENXPOS]
+ ld a, [wTrainerScreenX]
ld b, a
ld a, $40 ; (fixed) player screen X pos
call CalcDifference
@@ -89167,22 +89167,22 @@ Func_56903: ; 56903 (15:6903)
CheckEngagePlayer: ; 5690f (15:690f)
push hl
push de
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
add $2
ld d, $0
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x2: sprite image index
sub $ff
jr nz, .spriteOnScreen ; test if sprite is on screen
jp .noEngage
.spriteOnScreen
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
add $9
ld d, $0
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x9: facing direction
ld [$cd3f], a
@@ -89221,34 +89221,34 @@ CheckEngagePlayer: ; 5690f (15:690f)
jp .noEngage
.engage
call CheckPlayerIsInFrontOfSprite
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
and a
jr z, .noEngage
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
set 0, [hl]
call EngageMapTrainer
ld a, $ff
.noEngage: ; 56988 (15:6988)
- ld [W_TRAINERSPRITEOFFSET], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; $cd3d
pop de
pop hl
ret
; reads trainer's Y position to $cd40 and X position to $cd41
ReadTrainerScreenPosition: ; 5698e (15:698e)
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
add $4
ld d, $0
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
add hl, de
ld a, [hl]
ld [$cd40], a
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
add $6
ld d, $0
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
add hl, de
ld a, [hl]
ld [$cd41], a
@@ -89259,7 +89259,7 @@ ReadTrainerScreenPosition: ; 5698e (15:698e)
; a: distance player to sprite
CheckSpriteCanSeePlayer: ; 569af (15:69af)
ld b, a
- ld a, [W_TRAINERENGAGEDISTANCE] ; sprite line of sight (engage distance)
+ ld a, [wTrainerEngageDistance] ; sprite line of sight (engage distance)
cp b
jr nc, .checkIfLinedUp
jr .notInLine ; player too far away
@@ -89297,11 +89297,11 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
ld a, [W_CURMAP] ; $d35e
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, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
add $4
ld d, $0
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x4 (sprite screen Y pos)
cp $fc
@@ -89309,11 +89309,11 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
ld a, $c
.notOnTopmostTile
ld [$cd40], a
- ld a, [W_TRAINERSPRITEOFFSET] ; $cd3d
+ ld a, [wTrainerSpriteOffset] ; $cd3d
add $6
ld d, $0
ld e, a
- ld hl, $c100
+ ld hl, wSpriteStateData1
add hl, de
ld a, [hl] ; c1x6 (sprite screen X pos)
ld [$cd41], a
@@ -89348,7 +89348,7 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
.noEngage
xor a
.done
- ld [W_TRAINERSPRITEOFFSET], a ; $cd3d
+ ld [wTrainerSpriteOffset], a ; $cd3d
ret
SECTION "bank16",ROMX,BANK[$16]
@@ -91222,7 +91222,7 @@ Route12Script: ; 595f3 (16:55f3)
Route12Script_59606: ; 59606 (16:5606)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE12CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -91814,7 +91814,7 @@ Route16Script: ; 59933 (16:5933)
Func_59946: ; 59946 (16:5946)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_ROUTE16CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -93101,7 +93101,7 @@ LanceScript0: ; 5a305 (16:6305)
jp nc, CheckFightingMapTrainers
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $3
jr nc, .asm_5a325
ld a, $1
@@ -93134,7 +93134,7 @@ LanceScript2: ; 5a349 (16:6349)
Func_5a35b: ; 5a35b (16:635b)
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $ccd3
ld de, RLEList_5a379
call DecodeRLEList
@@ -93159,7 +93159,7 @@ LanceScript3: ; 5a382 (16:6382)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_LANCECURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -93251,7 +93251,7 @@ HallofFameRoomScript2: ; 5a4bb (16:64bb)
ld a, [$d358]
push af
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $55
call Predef
pop af
@@ -93291,7 +93291,7 @@ HallofFameRoomScript2: ; 5a4bb (16:64bb)
HallofFameRoomScript0: ; 5a50d (16:650d)
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $ccd3
ld de, RLEMovement5a528
call DecodeRLEList
@@ -93320,14 +93320,14 @@ HallofFameRoomScript1: ; 5a52b (16:652b)
call Func_34a6
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
inc a
ld [$d528], a
ld a, $1
ld [$ff00+$8c], a
call DisplayTextID
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $8
ld [$cc4d], a
ld a, $11
@@ -93463,11 +93463,11 @@ RedsHouse2FObject: ; 0x5c0d0 ?
Func_5c0dc: ; 5c0dc (17:40dc)
ld a, $4b
- ld [W_OWNEDPOKEMON], a ; $d2f7
+ ld [wPokedexOwned], a ; $d2f7
ld a, $3d
call Predef ; indirect jump to ShowPokedexData (402d1 (10:42d1))
xor a
- ld [W_OWNEDPOKEMON], a ; $d2f7
+ ld [wPokedexOwned], a ; $d2f7
ret
MuseumF1_h: ; 0x5c0eb to 0x5c0f7 (12 bytes) (id=52)
@@ -93860,7 +93860,7 @@ Gym1LeaderName: ; 5c3b9 (17:43b9)
Func_5c3bf: ; 5c3bf (17:43bf)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_PEWTERGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -93876,7 +93876,7 @@ PewterGymScript3: ; 5c3d2 (17:43d2)
cp $ff
jp z, Func_5c3bf
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_5c3df: ; 5c3df (17:43df)
ld a, $4
@@ -94279,7 +94279,7 @@ Gym2LeaderName: ; 5c6e7 (17:46e7)
Func_5c6ed: ; 5c6ed (17:46ed)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_CERULEANGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -94295,7 +94295,7 @@ CeruleanGymScript3: ; 5c700 (17:4700)
cp $ff
jp z, Func_5c6ed
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_5c70d: ; 5c70d (17:470d)
ld a, $5
@@ -94798,7 +94798,7 @@ VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_VERMILIONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -94814,7 +94814,7 @@ VermilionGymScript3: ; 5ca9d (17:4a9d)
cp $ff
jp z, VermilionGymScript_5ca8a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_5caaa: ; 5caaa (17:4aaa)
ld a, $6
@@ -95215,7 +95215,7 @@ FightingDojoScript1: ; 5cd83 (17:4d83)
bit 0, a
ret nz
call CheckFightingMapTrainers
- ld a, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
and a
ret nz
ld a, [$d7b1]
@@ -95585,7 +95585,7 @@ Gym6LeaderName: ; 5d040 (17:5040)
Func_5d048: ; 5d048 (17:5048)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_SAFFRONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -95601,7 +95601,7 @@ SaffronGymScript3: ; 5d05b (17:505b)
cp $ff
jp z, Func_5d048
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_5d068: ; 5d068 (17:5068)
ld a, $a
@@ -96340,7 +96340,7 @@ UndergroundTunnelEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
UndergroundTunnelEntranceRoute5Text1: ; 5d6b2 (17:56b2)
db $08 ; asm
ld a, $9
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
ld hl, UndergroundTunnelEntranceRoute5_5d6af
@@ -97040,20 +97040,20 @@ Unknown_5dc2a: ; 5dc2a (17:5c2a)
call PrintText
xor a
ld [W_ANIMATIONID], a
- ld [W_CURMENUITEMID], a
- ld [W_OLDMENUITEMID], a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
ld a, $3
- ld [W_MENUWATCHEDKEYS], a
+ ld [wMenuWatchedKeys], a
ld a, $3
- ld [W_MAXMENUITEMID], a
+ ld [wMaxMenuItem], a
ld a, $2
- ld [W_TOPMENUITEMY], a
+ ld [wTopMenuItemY], a
ld a, $1
- ld [W_TOPMENUITEMX], a
+ ld [wTopMenuItemX], a
.asm_5c51
ld hl, $d730
set 6, [hl]
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $8
ld c, $d
call TextBoxBorder
@@ -97065,7 +97065,7 @@ Unknown_5dc2a: ; 5dc2a (17:5c2a)
call HandleMenuInput
bit 1, a
jr nz, .asm_5dc93 ; 0x5dc74 $1d
- ld a, [W_CURMENUITEMID]
+ ld a, [wCurrentMenuItem]
cp $3
jr z, .asm_5dc93 ; 0x5dc7b $16
ld hl, $d730
@@ -97169,7 +97169,7 @@ UnnamedText_5ddf7: ; 5ddf7 (17:5df7)
db "@"
call EnableAutoTextBoxDrawing
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$cd5b], a
ld a, [$d773]
bit 0, a
@@ -97357,7 +97357,7 @@ PokemonTower2Script: ; 604f2 (18:44f2)
Func_604fe: ; 604fe (18:44fe)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -97416,7 +97416,7 @@ PokemonTower2Script1: ; 60563 (18:4563)
cp $ff
jp z, Func_604fe
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d764
set 7, [hl]
ld a, $1
@@ -97457,7 +97457,7 @@ PokemonTower2Script2: ; 605bb (18:45bb)
ld a, $11
call Predef
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call Func_2307
ld a, $0
ld [W_POKEMONTOWER2CURSCRIPT], a
@@ -97860,7 +97860,7 @@ PokemonTower5Script0: ; 6094b (18:494b)
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d72e
set 4, [hl]
ld a, $7
@@ -97873,7 +97873,7 @@ PokemonTower5Script0: ; 6094b (18:494b)
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
CoordsData_60992: ; 60992 (18:4992)
@@ -98054,7 +98054,7 @@ PokemonTower6Script: ; 60aef (18:4aef)
Func_60b02: ; 60b02 (18:4b02)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_POKEMONTOWER6CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -98095,13 +98095,13 @@ PokemonTower6Script4: ; 60b48 (18:4b48)
cp $ff
jp z, Func_60b02
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$d72d]
bit 6, a
ret nz
call UpdateSprites
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$cf0b]
and a
jr nz, .asm_60b82
@@ -98111,7 +98111,7 @@ PokemonTower6Script4: ; 60b48 (18:4b48)
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_POKEMONTOWER6CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -98303,7 +98303,7 @@ PokemonTower7Script: ; 60d05 (18:4d05)
Func_60d18: ; 60d18 (18:4d18)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_POKEMONTOWER7CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -98316,14 +98316,14 @@ PokemonTower7ScriptPointers: ; 60d23 (18:4d23)
dw PokemonTower7Script4
PokemonTower7Script2: ; 60d23 (18:4d23)
- ld hl, W_FLAGS_CD60
+ ld hl, wFlags_0xcd60
res 0, [hl]
ld a, [W_ISINBATTLE] ; $d057
cp $ff
jp z, Func_60d18
call EndTrainerBattle
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$cf13]
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
@@ -98349,9 +98349,9 @@ PokemonTower7Script3: ; 60d56 (18:4d56)
ld a, $11
call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [$cf13], a
- ld [W_TRAINERHEADERFLAGBIT], a
+ ld [wTrainerHeaderFlagBit], a
ld [$da38], a
ld a, $0
ld [W_POKEMONTOWER7CURSCRIPT], a
@@ -98360,7 +98360,7 @@ PokemonTower7Script3: ; 60d56 (18:4d56)
PokemonTower7Script4: ; 60d86 (18:4d86)
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $43
ld [$cc4d], a
ld a, $11
@@ -98656,16 +98656,16 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
ld hl, $d730
set 6, [hl]
xor a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, [$cd37]
dec a
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, $2
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $1
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
ld a, [$cd37]
dec a
ld bc, $2
@@ -98674,7 +98674,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
dec l
ld b, l
ld c, $d
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
call TextBoxBorder
call UpdateSprites
call Func_610c2
@@ -98684,7 +98684,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
bit 1, a
jr nz, .asm_610a7
ld hl, $cc5b
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld d, $0
ld e, a
add hl, de
@@ -98709,7 +98709,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
ld hl, UnnamedText_610ae
call PrintText
call YesNoChoice
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
jr nz, .asm_610a7
ld hl, UnnamedText_610b3
@@ -99058,7 +99058,7 @@ SSAnne2Script: ; 6139f (18:539f)
Func_613ab: ; 613ab (18:53ab)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_SSANNE2CURSCRIPT], a
ret
@@ -99095,7 +99095,7 @@ SSAnne2Script0: ; 613be (18:53be)
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$ff00+$db]
cp $2
jr nz, .asm_61400 ; 0x613f9 $5
@@ -99140,7 +99140,7 @@ SSAnne2Script1: ; 61430 (18:5430)
ret nz
call Func_61416
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $2
ld [$ff00+$8c], a
call DisplayTextID
@@ -99175,7 +99175,7 @@ SSAnne2Script2: ; 6146d (18:546d)
jp z, Func_613ab
call Func_61416
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $3
ld [$ff00+$8c], a
call DisplayTextID
@@ -99214,7 +99214,7 @@ SSAnne2Script3: ; 614be (18:54be)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $71
ld [$cc4d], a
ld a, $11
@@ -100625,7 +100625,7 @@ INCBIN "baserom.gbc",$6219b,$621c4 - $6219b
Func_621c4: ; 621c4 (18:61c4)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Func_621c8: ; 621c8 (18:61c8)
ld [W_SILPHCO11CURSCRIPT], a
@@ -100647,12 +100647,12 @@ SilphCo11Script0: ; 621db (18:61db)
ld hl, CoordsData_62211 ; $6211
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$cf0d], a
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $3
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
@@ -100696,7 +100696,7 @@ SilphCo11Script5: ; 62227 (18:6227)
.asm_62240
call Func_6221a
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $6
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
call DisplayTextID
@@ -100708,7 +100708,7 @@ SilphCo11Script5: ; 62227 (18:6227)
ld hl, $d838
set 7, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
jp Func_621c8
SilphCo11Script3: ; 6226a (18:626a)
@@ -100745,7 +100745,7 @@ SilphCo11Script4: ; 62293 (18:6293)
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $5
jp Func_621c8
@@ -101218,7 +101218,7 @@ Func_70000: ; 70000 (1c:4000)
ld bc, $40
call CopyData
ld hl, GameFreakShootingStarOAMData ; $4180
- ld de, W_OAMBUFFER
+ ld de, wOAMBuffer
ld bc, $10
jp CopyData
@@ -101226,7 +101226,7 @@ Func_70044: ; 70044 (1c:4044)
call Func_70000
ld a, $c2
call PlaySound
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld bc, $a004
.asm_70052
push hl
@@ -101254,7 +101254,7 @@ Func_70044: ; 70044 (1c:4044)
.asm_70070
cp b
jr nz, .asm_70052
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld c, $4
ld de, $4
.asm_7007b
@@ -101272,7 +101272,7 @@ Func_70044: ; 70044 (1c:4044)
ret c
dec b
jr nz, .asm_70083
- ld de, W_OAMBUFFER
+ ld de, wOAMBuffer
ld a, $18
.asm_70098
push af
@@ -101283,7 +101283,7 @@ Func_70044: ; 70044 (1c:4044)
dec a
jr nz, .asm_70098
xor a
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld hl, Unknown_700f2 ; $40f2
ld c, $6
.asm_700af
@@ -101308,16 +101308,16 @@ Func_70044: ; 70044 (1c:4044)
inc hl
dec c
jr nz, .asm_700ba
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $18
jr z, .asm_700d5
add $6
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
.asm_700d5
call Func_7011f
push af
ld hl, $c310
- ld de, W_OAMBUFFER
+ ld de, wOAMBuffer
ld bc, $50
call CopyData
pop af
@@ -101339,7 +101339,7 @@ Func_7011f: ; 7011f (1c:411f)
ld b, $8
.asm_70121
ld hl, $c35c
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld de, $fffc
ld c, a
.asm_7012b
@@ -101431,7 +101431,7 @@ Func_701a0: ; 701a0 (1c:41a0)
inc c
push hl
push bc
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld a, c
ld [$cd3e], a
ld hl, W_PARTYMON1_LEVEL ; $d18c
@@ -101467,7 +101467,7 @@ Func_701a0: ; 701a0 (1c:41a0)
ld [hl], $ff
call Func_73b0d
xor a
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
inc a
ld [$cd40], a
call Func_70278
@@ -101488,7 +101488,7 @@ Func_70278: ; 70278 (1c:4278)
ld [$FF00+$af], a
ld a, $c0
ld [$FF00+$ae], a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [$cf91], a
ld [$d0b5], a
ld [$cfd9], a
@@ -101561,13 +101561,13 @@ Func_702f0: ; 702f0 (1c:42f0)
FuncCoord 8, 7 ; $c434
ld hl, Coord
call PrintLevelCommon
- ld a, [W_WHICHTRADE] ; $cd3d
+ 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, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
jp PlayCry
HoFMonInfoText: ; 70329 (1c:4329)
@@ -101638,7 +101638,7 @@ Func_70377: ; 70377 (1c:4377)
call PlaceString
FuncCoord 4, 10 ; $c46c
ld hl, Coord
- ld de, W_PLAYERMONEY3 ; $d347
+ ld de, wPlayerMoney ; $d347
ld c, $a3
call PrintBCDNumber
ld hl, UnnamedText_703fa ; $43fa
@@ -101671,7 +101671,7 @@ Func_70404: ; 70404 (1c:4404)
ld bc, $10
ld a, [$cd3e]
call AddNTimes
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld [hli], a
ld a, [$cd3f]
ld [hli], a
@@ -101686,7 +101686,7 @@ Func_70423: ; 70423 (1c:4423)
ld [$cfc8], a
ld [$cfc9], a
ld a, $ff
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
jp GBFadeOut2
Func_70433: ; 70433 (1c:4433)
@@ -101707,12 +101707,12 @@ Func_70433: ; 70433 (1c:4433)
ld de, Unknown_704d7 ; $44d7
call Func_70503
ld a, $4
- ld [W_CURCHANNELPOINTER], a
+ ld [wMusicChannelPointer], a
ld a, $ff
ld [$c0ee], a
call PlaySound
.asm_70464
- ld a, [W_CURCHANNELPOINTER]
+ ld a, [wMusicChannelPointer]
and a
jr nz, .asm_70464
ld a, [W_NUMINPARTY] ; $d163
@@ -101811,7 +101811,7 @@ Func_70510: ; 70510 (1c:4510)
ld a, b
and a
jr nz, .asm_7055b
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
xor a
ld [hli], a
inc a
@@ -101839,7 +101839,7 @@ Func_70510: ; 70510 (1c:4510)
call Func_706d7
ld a, $a4
call PlaySound
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
xor a
ld [hli], a
ld a, $c
@@ -101854,7 +101854,7 @@ Unknown_70592: ; 70592 (1c:4592)
INCBIN "baserom.gbc",$70592,$705aa - $70592
Func_705aa: ; 705aa (1c:45aa)
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld a, $10
ld [hli], a
ld a, $3c
@@ -101874,7 +101874,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
.asm_705c8
ld a, $9f
call PlaySound
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld a, $f0
ld [hli], a
ld a, $ec
@@ -101897,7 +101897,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
ld a, [$d732]
bit 6, a
jr z, .asm_70610
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld a, $10
ld [hli], a
ld a, $ff
@@ -101910,7 +101910,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
jr .asm_705c8
.asm_70610
call Func_706d7
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld a, $ff
ld [hli], a
ld a, $8
@@ -101919,7 +101919,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
call Func_706ae
ld a, $a4
call PlaySound
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
xor a
ld [hli], a
ld a, $c
@@ -101952,7 +101952,7 @@ Func_7067d: ; 7067d (1c:467d)
ld a, [$c306]
ld [$c30e], a
ld a, $a0
- ld [W_OAMBUFFER], a
+ ld [wOAMBuffer], a
ld [$c304], a
ld c, $2
call DelayFrames
@@ -101970,7 +101970,7 @@ Func_706ae: ; 706ae (1c:46ae)
ld [$cd3f], a
ld [$c102], a
call Delay3
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $ff
jr z, .asm_706cd
ld hl, $c104
@@ -102034,7 +102034,7 @@ Func_70717: ; 70717 (1c:4717)
Func_70730: ; 70730 (1c:4730)
call Func_70717
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
and $3
jr nz, .asm_70743
@@ -102044,7 +102044,7 @@ Func_70730: ; 70730 (1c:4730)
.asm_70743
ld a, [$cd3e]
add c
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld c, a
ld a, [$cd3f]
cp c
@@ -102054,7 +102054,7 @@ Func_70730: ; 70730 (1c:4730)
Func_70755: ; 70755 (1c:4755)
call Func_70717
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
ld a, [$c104]
add c
@@ -102134,7 +102134,7 @@ Func_707b6: ; 707b6 (1c:47b6)
call CopyData
ld c, $64
call DelayFrames
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
and a
ld hl, UnnamedText_70847 ; $4847
jr z, .asm_70836
@@ -102214,7 +102214,7 @@ _HandleMidJump: ; 7087e (1c:487e)
ld [$c104], a
ret
.asm_70895
- ld a, [W_WALKCOUNTER] ; $cfc5
+ ld a, [wWalkCounter] ; $cfc5
cp $0
ret nz
call UpdateSprites
@@ -102229,7 +102229,7 @@ _HandleMidJump: ; 7087e (1c:487e)
ld hl, $d730
res 7, [hl]
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
Unknown_708ba: ; 708ba (1c:48ba)
@@ -102292,7 +102292,7 @@ Func_7092a: ; 7092a (1c:492a)
ld [W_BASECOORDY], a ; $d082
ld a, $70
ld [W_BASECOORDX], a ; $d081
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld bc, $606
ld d, $8
.asm_70948
@@ -102509,8 +102509,8 @@ Func_70a69: ; 70a69 (1c:4a69)
Func_70aaa: ; 70aaa (1c:4aaa)
ld a, $7
- ld [W_WHICHTRADE], a ; $cd3d
- ld hl, W_SCREENTILESBUFFER
+ ld [wWhichTrade], a ; $cd3d
+ ld hl, wTileMap
ld c, $11
ld de, $14
call Func_70ae0
@@ -102543,13 +102543,13 @@ Func_70ae0: ; 70ae0 (1c:4ae0)
ld [hl], $ff
add hl, de
push bc
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
dec a
jr nz, .asm_70af0
call Func_70d19
ld a, $7
.asm_70af0
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
pop bc
dec c
jr nz, .asm_70ae1
@@ -102692,7 +102692,7 @@ INCBIN "baserom.gbc",$70b72,$70b7f - $70b72
call Func_70c12
FuncCoord 0, 1 ; $c3b4
ld hl, Coord
- ld de, W_SCREENTILESBUFFER
+ ld de, wTileMap
ld bc, $28
call Func_70c12
FuncCoord 18, 0 ; $c3b2
@@ -102703,7 +102703,7 @@ INCBIN "baserom.gbc",$70b72,$70b7f - $70b72
call Func_70c3f
FuncCoord 1, 0 ; $c3a1
ld hl, Coord
- ld de, W_SCREENTILESBUFFER
+ ld de, wTileMap
ld bc, $2
call Func_70c3f
call Func_70d19
@@ -102717,7 +102717,7 @@ INCBIN "baserom.gbc",$70b72,$70b7f - $70b72
Func_70c12: ; 70c12 (1c:4c12)
ld a, c
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld a, b
ld [$cd3e], a
ld c, $8
@@ -102729,7 +102729,7 @@ Func_70c12: ; 70c12 (1c:4c12)
call CopyData
pop hl
pop de
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
ld a, [$cd3e]
ld b, a
@@ -102749,7 +102749,7 @@ Func_70c12: ; 70c12 (1c:4c12)
Func_70c3f: ; 70c3f (1c:4c3f)
ld a, c
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld a, b
ld [$cd3e], a
ld c, $9
@@ -102777,7 +102777,7 @@ Func_70c3f: ; 70c3f (1c:4c3f)
jr nz, .asm_70c4e
pop hl
pop de
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
ld a, [$cd3e]
ld b, a
@@ -102796,7 +102796,7 @@ Func_70c3f: ; 70c3f (1c:4c3f)
jr nz, .asm_70c77
ret
ld c, $12
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
FuncCoord 1, 17 ; $c4f5
ld de, Coord
xor a
@@ -102833,7 +102833,7 @@ Func_70caa: ; 70caa (1c:4caa)
jr nz, .asm_70cac
ret
ld c, $14
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
FuncCoord 19, 1 ; $c3c7
ld de, Coord
xor a
@@ -102912,7 +102912,7 @@ Func_70d19: ; 70d19 (1c:4d19)
jp Func_70a69
Func_70d50: ; 70d50 (1c:4d50)
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld a, [hli]
ld [$cd3e], a
ld a, [hli]
@@ -102948,7 +102948,7 @@ asm_70dc5
dec c
jr nz, .asm_70dc9
pop hl
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
and a
ld bc, $14
jr z, .asm_70de5
@@ -102994,8 +102994,8 @@ Func_70e3e: ; 70e3e (1c:4e3e)
ld hl, Coord
ld de, $cd6d
call PlaceString
- ld hl, W_OAMBUFFER
- ld de, W_SCREENTILESBACKBUFFER
+ ld hl, wOAMBuffer
+ ld de, wTileMapBackup
ld bc, $10
call CopyData
ld hl, $8040
@@ -103003,16 +103003,16 @@ Func_70e3e: ; 70e3e (1c:4e3e)
ld bc, (BANK(TownMapCursor) << 8) + $04
call CopyVideoDataDouble
xor a
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
pop af
jr asm_70e92
Func_70e7e: ; 70e7e (1c:4e7e)
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld bc, $114
call ClearScreenArea
ld hl, TownMapOrder ; $4f11
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
ld c, a
ld b, $0
add hl, bc
@@ -103066,22 +103066,22 @@ asm_70e92: ; 70e92 (1c:4e92)
ld [hl], a
ret
.asm_70ef2
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
inc a
cp $2f
jr nz, .asm_70efb
xor a
.asm_70efb
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
jp Func_70e7e
.asm_70f01
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
dec a
cp $ff
jr nz, .asm_70f0b
ld a, $2e
.asm_70f0b
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
jp Func_70e7e
TownMapOrder: ; 70f11 (1c:4f11)
@@ -103181,7 +103181,7 @@ Func_70f90: ; 70f90 (1c:4f90)
push af
ld [hl], $ff
push hl
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld de, ToText ; $506d
call PlaceString
ld a, [W_CURMAP] ; $d35e
@@ -103283,7 +103283,7 @@ ToText: ; 7106d (1c:506d)
db "To@"
Func_71070: ; 71070 (1c:5070)
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld [hl], $ff
inc hl
ld a, [$d70b]
@@ -103313,7 +103313,7 @@ Func_7109b: ; 7109b (1c:509b)
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld b, $12
ld c, $12
call TextBoxBorder
@@ -103328,7 +103328,7 @@ Func_7109b: ; 7109b (1c:509b)
ld bc, $8
ld a, BANK(MonNestIcon)
call FarCopyDataDouble
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld de, CompressedMap ; $5100
.asm_710d3
ld a, [de]
@@ -103393,8 +103393,8 @@ Func_711c4: ; 711c4 (1c:51c4)
inc de
cp $50
jr nz, .asm_711dc
- ld hl, W_OAMBUFFER
- ld de, W_SCREENTILESBACKBUFFER
+ ld hl, wOAMBuffer
+ ld de, wTileMapBackup
ld bc, $a0
jp CopyData
@@ -103403,7 +103403,7 @@ Func_711ef: ; 711ef (1c:51ef)
ld hl, Func_e9cb
call Bankswitch ; indirect jump to Func_e9cb (e9cb (3:69cb))
call Func_712d9
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld de, $cee9
.asm_71200
ld a, [de]
@@ -103444,8 +103444,8 @@ Func_711ef: ; 711ef (1c:51ef)
ld b, $0
call Func_711c4
.asm_7123e
- ld hl, W_OAMBUFFER
- ld de, W_SCREENTILESBACKBUFFER
+ ld hl, wOAMBuffer
+ ld de, wTileMapBackup
ld bc, $a0
jp CopyData
@@ -103822,14 +103822,14 @@ Func_716c6: ; 716c6 (1c:56c6)
jr z, .asm_716e1
cp $32
jr nz, .asm_716f1
- ld hl, W_SCREENTILESBACKBUFFER
- ld de, W_OAMBUFFER
+ ld hl, wTileMapBackup
+ ld de, wOAMBuffer
ld bc, $90
call CopyData
xor a
jr .asm_716f1
.asm_716e1
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld b, $24
ld de, $4
.asm_716e9
@@ -103844,14 +103844,14 @@ Func_716c6: ; 716c6 (1c:56c6)
Func_716f7: ; 716f7 (1c:56f7)
xor a
- ld [W_CURMENUITEMID], a ; $cc26
+ ld [wCurrentMenuItem], a ; $cc26
ld b, a
inc a
jr asm_7170a
Func_716ff: ; 716ff (1c:56ff)
ld hl, $cf1f
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
ld c, a
ld b, $0
add hl, bc
@@ -103882,7 +103882,7 @@ asm_7170a: ; 7170a (1c:570a)
.asm_7172c
push bc
ld hl, $cc5b
- ld de, W_OAMBUFFER
+ ld de, wOAMBuffer
ld bc, $60
call CopyData
pop bc
@@ -103892,7 +103892,7 @@ asm_7170a: ; 7170a (1c:570a)
push bc
ld hl, $c302
ld bc, $10
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
call AddNTimes
ld c, $40
ld a, [hl]
@@ -104036,7 +104036,7 @@ asm_718c3: ; 718c3 (1c:58c3)
.asm_718da
call Func_71281
.asm_718dd
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
ld de, $cc5b
ld bc, $60
jp CopyData
@@ -104145,10 +104145,10 @@ MonOverworldSprites:
INCBIN "gfx/mon_ow_sprites.2bpp"
Predef54: ; 71ad9 (1c:5ad9)
-; trigger the trade offer/action specified by W_WHICHTRADE
+; trigger the trade offer/action specified by wWhichTrade
call SaveScreenTilesToBuffer2
ld hl,TradeMons
- ld a,[W_WHICHTRADE]
+ ld a,[wWhichTrade]
ld b,a
swap a
sub b
@@ -104182,7 +104182,7 @@ Predef54: ; 71ad9 (1c:5ad9)
ld de,$cd1e
call Function71b6a
ld hl,$d737
- ld a,[W_WHICHTRADE]
+ ld a,[wWhichTrade]
ld c,a
ld b,$2
ld a,$10
@@ -104266,7 +104266,7 @@ Function71c07: ; 71c07 (1c:5c07)
ld a,[hl]
ld [$d127],a
ld hl,$d737
- ld a,[W_WHICHTRADE]
+ ld a,[wWhichTrade]
ld c,a
ld b,$1
ld a,$10
@@ -104326,14 +104326,14 @@ Func_71ca2: ; 71ca2 (1c:5ca2)
jp Bankswitch ; indirect jump to LoadWildData (ceb8 (3:4eb8))
Func_71cc1: ; 71cc1 (1c:5cc1)
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
ld a, [$cd0f]
ld [hli], a
ld a, [$cd34]
ld [hl], a
ld hl, W_PARTYMON1OT ; $d273
ld bc, $b
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld de, $cd41
ld bc, $b
@@ -104345,7 +104345,7 @@ Func_71cc1: ; 71cc1 (1c:5cc1)
call Func_71d11
ld hl, W_PARTYMON1_OTID ; $d177
ld bc, $2c
- ld a, [W_WHICHPOKEMON] ; $cf92
+ ld a, [wWhichPokemon] ; $cf92
call AddNTimes
ld de, $cd4c
ld bc, $2
@@ -105559,13 +105559,13 @@ LoadSAVCheckSum: ; 73623 (1c:7623)
ld bc, $b
call CopyData
ld hl, $a5a3
- ld de, W_OWNEDPOKEMON ; $d2f7
+ ld de, wPokedexOwned ; $d2f7
ld bc, $789
call CopyData
ld hl, W_CURMAPTILESET ; $d367
set 7, [hl]
ld hl, $ad2c
- ld de, $c100
+ ld de, wSpriteStateData1
ld bc, $200
call CopyData
ld a, [$b522]
@@ -105615,7 +105615,7 @@ LoadSAVCheckSum2: ; 736bd (1c:76bd)
ld bc, $194
call CopyData
ld hl, $a5a3
- ld de, W_OWNEDPOKEMON ; $d2f7
+ ld de, wPokedexOwned ; $d2f7
ld bc, $26
call CopyData
and a
@@ -105708,11 +105708,11 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c)
ld de, $a598
ld bc, $b
call CopyData
- ld hl, W_OWNEDPOKEMON ; $d2f7
+ ld hl, wPokedexOwned ; $d2f7
ld de, $a5a3
ld bc, $789
call CopyData
- ld hl, $c100 ; OAM?
+ ld hl, wSpriteStateData1 ; OAM?
ld de, $ad2c
ld bc, $200
call CopyData
@@ -105761,7 +105761,7 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
ld de, $af2c
ld bc, $194
call CopyData
- ld hl, W_OWNEDPOKEMON ; pokédex only
+ ld hl, wPokedexOwned ; pokédex only
ld de, $a5a3
ld bc, $26
call CopyData
@@ -105839,7 +105839,7 @@ Func_738a1: ; 738a1 (1c:78a1)
ld hl, UnnamedText_73909 ; $7909
call PrintText
call YesNoChoice
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
and a
ret nz
ld hl, $d5a0
@@ -105859,14 +105859,14 @@ Func_738a1: ; 738a1 (1c:78a1)
ld d, h
ld hl, W_NUMINBOX ; $da80
call Func_7390e
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
set 7, a
ld [$d5a0], a
call Func_7387b
ld de, W_NUMINBOX ; $da80
call Func_7390e
ld hl, W_MAPTEXTPTR ; $d36c
- ld de, W_WHICHTRADE ; $cd3d
+ ld de, wWhichTrade ; $cd3d
ld a, [hli]
ld [de], a
inc de
@@ -105874,7 +105874,7 @@ Func_738a1: ; 738a1 (1c:78a1)
ld [de], a
call Func_3f05
call SaveSAVtoSRAM
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
call Func_3f0f
ld a, $b6
call PlaySoundWaitForCurrent
@@ -105914,20 +105914,20 @@ Func_7393f: ; 7393f (1c:793f)
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, $b
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, $1
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $c
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
xor a
ld [$cc37], a
ld a, [$d5a0]
and $7f
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
- ld hl, W_SCREENTILESBUFFER
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
+ ld hl, wTileMap
ld b, $2
ld c, $9
call TextBoxBorder
@@ -105968,7 +105968,7 @@ Func_7393f: ; 7393f (1c:793f)
call Func_73a84
FuncCoord 18, 1 ; $c3c6
ld hl, Coord
- ld de, W_WHICHTRADE ; $cd3d
+ ld de, wWhichTrade ; $cd3d
ld bc, $14
ld a, $c
.asm_739c2
@@ -106052,7 +106052,7 @@ Func_73a7f: ; 73a7f (1c:7a7f)
ret
Func_73a84: ; 73a84 (1c:7a84)
- ld hl, W_WHICHTRADE ; $cd3d
+ ld hl, wWhichTrade ; $cd3d
push hl
ld a, $a
ld [$0], a
@@ -106152,7 +106152,7 @@ Func_73b0d: ; 73b0d (1c:7b0d)
Func_73b3f: ; 73b3f (1c:7b3f)
ld hl, $a598
ld bc, $60
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
call AddNTimes
ld de, $cc5b
ld bc, $60
@@ -106232,7 +106232,7 @@ Func_7405c: ; 7405c (1d:405c)
ld bc, $10
ld a, $ff
call FillMemory
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
call Func_7417b
FuncCoord 0, 14 ; $c4b8
ld hl, Coord
@@ -106248,7 +106248,7 @@ Func_7405c: ; 7405c (1d:405c)
ld c, $80
call DelayFrames
xor a
- ld [W_WHICHTRADE], a ; $cd3d
+ ld [wWhichTrade], a ; $cd3d
ld [$cd3e], a
jp Func_7418e
@@ -106843,7 +106843,7 @@ Gym8LeaderName: ; 748cd (1d:48cd)
Func_748d6: ; 748d6 (1d:48d6)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_VIRIDIANGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -106870,7 +106870,7 @@ ViridianGymScript0: ; 748eb (1d:48eb)
ld a, $a7
call PlaySound
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $4
ld [W_CURMAPSCRIPT], a
ret
@@ -106951,7 +106951,7 @@ ViridianGymScript4: ; 7496b (1d:496b)
and a
jr nz, .asm_74980
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d736
res 7, [hl]
ld a, $0
@@ -106967,7 +106967,7 @@ ViridianGymScript3: ; 74988 (1d:4988)
cp $ff
jp z, Func_748d6
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Unknown_74995: ; 74995 (1d:4995)
ld a, $c
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -107496,8 +107496,8 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15)
ld hl, UnnamedText_74e77
call PrintText
xor a
- ld [W_CURMENUITEMID], a
- ld [W_LISTSCROLLOFFSET], a
+ ld [wCurrentMenuItem], a
+ ld [wListScrollOffset], a
.asm_74e23
ld hl, UnnamedText_74e7c
call PrintText
@@ -107512,7 +107512,7 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15)
ld [$cf93], a
ld [$cc35], a
ld a, SPECIALLISTMENU
- ld [W_LISTMENUID], a
+ ld [wListMenuID], a
call DisplayListMenuID
jr c, .asm_74e60 ; 0x74e49 $15
ld hl, Unknown_74e86
@@ -107529,7 +107529,7 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15)
jr .asm_74e23 ; 0x74e5e $c3
.asm_74e60
xor a
- ld [W_LISTSCROLLOFFSET], a
+ ld [wListScrollOffset], a
ld hl, UnnamedText_74e81
call PrintText
jp TextScriptEnd
@@ -107616,16 +107616,16 @@ Func_74ee0: ; 74ee0 (1d:4ee0)
ld [$d125], a
call DisplayTextBoxID
xor a
- ld [W_CURMENUITEMID], a ; $cc26
- ld [W_OLDMENUITEMID], a ; $cc2a
+ ld [wCurrentMenuItem], a ; $cc26
+ ld [wLastMenuItem], a ; $cc2a
ld a, $3
- ld [W_MENUWATCHEDKEYS], a ; $cc29
+ ld [wMenuWatchedKeys], a ; $cc29
ld a, $3
- ld [W_MAXMENUITEMID], a ; $cc28
+ ld [wMaxMenuItem], a ; $cc28
ld a, $5
- ld [W_TOPMENUITEMY], a ; $cc24
+ ld [wTopMenuItemY], a ; $cc24
ld a, $1
- ld [W_TOPMENUITEMX], a ; $cc25
+ ld [wTopMenuItemX], a ; $cc25
ld hl, $d730
set 6, [hl]
FuncCoord 0, 3 ; $c3dc
@@ -107647,7 +107647,7 @@ Func_74ee0: ; 74ee0 (1d:4ee0)
call HandleMenuInput
bit 1, a
jr nz, .asm_74f93
- ld a, [W_CURMENUITEMID] ; $cc26
+ ld a, [wCurrentMenuItem] ; $cc26
cp $3
jr z, .asm_74f93
xor a
@@ -107679,7 +107679,7 @@ Func_74ee0: ; 74ee0 (1d:4ee0)
ld hl, UnnamedText_74fd8
call PrintText
ld hl, $ffde
- ld de, W_PLAYERMONEY1 ; $d349
+ ld de, wPlayerMoney + 2 ; $d349
ld c, $3
ld a, $c
call Predef ; indirect jump to Func_f836 (f836 (3:7836))
@@ -108025,7 +108025,7 @@ SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
ld [$ff00+$8c], a
call DisplayTextID
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
ld a, $c
@@ -108041,7 +108041,7 @@ SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
ld c, $1
call Func_752a3
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -108057,20 +108057,20 @@ SafariZoneEntranceScript1: ; 75226 (1d:5226)
SafariZoneEntranceScript2: ; 7522a (1d:522a)
xor a
ld [H_CURRENTPRESSEDBUTTONS], a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call UpdateSprites
ld a, $4
ld [$ff00+$8c], a
call DisplayTextID
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
SafariZoneEntranceScript3: ; 75240 (1d:5240)
call Func_752b4
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $5
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -108085,7 +108085,7 @@ SafariZoneEntranceScript5: ; 7524e (1d:524e)
res 7, [hl]
call UpdateSprites
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $6
ld [$ff00+$8c], a
call DisplayTextID
@@ -108108,7 +108108,7 @@ SafariZoneEntranceScript4: ; 75287 (1d:5287)
call Func_752b4
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
@@ -108189,10 +108189,10 @@ SafariZoneEntranceText4: ; 752ca (1d:52ca)
call PrintText
ld a, $1e
ld [$da47], a
- ld a, $1
- ld [$d70d], a
- ld a, $f6
- ld [$d70e], a
+ ld a, 502 / $100
+ ld [wSafariSteps], a
+ ld a, 502 % $100
+ ld [wSafariSteps + 1], a
ld a, $40
ld c, $3
call Func_752a3
@@ -108362,7 +108362,7 @@ Gym5LeaderName: ; 75472 (1d:5472)
Func_75477: ; 75477 (1d:5477)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_FUCHSIAGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -108378,7 +108378,7 @@ FuchsiaGymScript3: ; 7548a (1d:548a)
cp $ff
jp z, Func_75477
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Unknown_75497: ; 75497 (1d:5497)
ld a, $9
ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -108785,7 +108785,7 @@ Gym7LeaderName: ; 7578b (1d:578b)
CinnabarGymScript_75792: ; 75792 (1d:5792)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_CINNABARGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ld [$da38], a
@@ -108793,7 +108793,7 @@ CinnabarGymScript_75792: ; 75792 (1d:5792)
CinnabarGymScript_757a0: ; 757a0 (1d:57a0)
ld a, [H_DOWNARROWBLINKCNT2] ; $FF00+$8c
- ld [W_TRAINERHEADERFLAGBIT], a
+ ld [wTrainerHeaderFlagBit], a
ret
CinnabarGymScriptPointers: ; 757a6 (1d:57a6)
@@ -108835,9 +108835,9 @@ CinnabarGymScript1: ; 757dc (1d:57dc)
bit 0, a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, [$da38]
- ld [W_TRAINERHEADERFLAGBIT], a
+ ld [wTrainerHeaderFlagBit], a
ld [$ff00+$8c], a
jp DisplayTextID
@@ -108849,7 +108849,7 @@ CinnabarGymScript2: ; 757f6 (1d:57f6)
ld a, [$d057]
cp $ff
jp z, CinnabarGymScript_75792
- ld a, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
ld [$ff00+$db], a
ld c, a
ld b, $2
@@ -108863,13 +108863,13 @@ CinnabarGymScript2: ; 757f6 (1d:57f6)
call PlaySound
call WaitForSoundToFinish
.asm_7581b
- ld a, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
ld [$ff00+$db], a
ld c, a
ld b, $1
ld hl, $d79a
call Func_757f1
- ld a, [W_TRAINERHEADERFLAGBIT]
+ ld a, [wTrainerHeaderFlagBit]
sub $2
ld c, a
ld b, $1
@@ -108877,7 +108877,7 @@ CinnabarGymScript2: ; 757f6 (1d:57f6)
call Func_757f1
call Func_3ead
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [$da38], a
ld a, $0
ld [W_CINNABARGYMCURSCRIPT], a
@@ -108889,7 +108889,7 @@ CinnabarGymScript3: ; 7584a (1d:584a)
cp $ff
jp z, CinnabarGymScript_75792
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
Unknown_75857: ; 75857 (1d:5857)
ld a, $a
ld [$ff00+$8c], a
@@ -109351,13 +109351,13 @@ Lab2Text1: ; 75c2a (1d:5c2a)
Lab2Text2: ; 75c2f (1d:5c2f)
db $8
ld a, $7
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
jr asm_78552 ; 0x75c35 $6
Lab2Text3: ; 75c37 (1d:5c37)
db $8
ld a, $8
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
asm_78552: ; 75c3d (1d:5c3d)
ld a, $54
call Predef
@@ -109592,7 +109592,7 @@ UnnamedText_75dd5: ; 75dd5 (1d:5dd5)
Lab4Text2: ; 75dda (1d:5dda)
db $08 ; asm
ld a, $3
- ld [W_WHICHTRADE], a
+ ld [wWhichTrade], a
ld a, $54
call Predef
jp TextScriptEnd
@@ -109782,7 +109782,7 @@ GaryScript: ; 75f1d (1d:5f1d)
Function75f29: ; 75f29 (1d:5f29)
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_GARYCURSCRIPT], a
ret
@@ -109804,7 +109804,7 @@ GaryScript0: ; 75f47 (1d:5f47)
GaryScript1: ; 75f48 (1d:5f48)
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $ccd3
ld de, RLEMovement75f63
call DecodeRLEList
@@ -109827,7 +109827,7 @@ GaryScript2: ; 75f6a (1d:5f6a)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $d355
res 7, [hl]
ld a, $1
@@ -109873,7 +109873,7 @@ GaryScript3: ; 75fbb (1d:5fbb)
ld hl, $d867
set 1, [hl]
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $1
ld [$ff00+$8c], a
call Function760c8
@@ -109979,7 +109979,7 @@ GaryScript8: ; 76083 (1d:6083)
GaryScript9: ; 76099 (1d:6099)
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld hl, $ccd3
ld de, RLEMovement760b4
call DecodeRLEList
@@ -110000,17 +110000,17 @@ GaryScript10: ; 760b9 (1d:60b9)
and a
ret nz
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld a, $0
ld [W_GARYCURSCRIPT], a
ret
Function760c8; 0x760c8
ld a, $f0
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
call DisplayTextID
ld a, $ff
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ret
GaryTextPointers: ; 760d6 (1d:60d6)
@@ -110173,7 +110173,7 @@ LoreleiScript0: ; 761e2 (1d:61e2)
ld [H_CURRENTPRESSEDBUTTONS], a
ld [$ccd3], a
ld [$cd38], a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $3
jr c, .asm_76206
ld hl, $d863
@@ -110207,7 +110207,7 @@ LoreleiScript3: ; 7622c (1d:622c)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_LORELEICURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -110358,7 +110358,7 @@ BrunoScript0: ; 76339 (1d:6339)
ld [H_CURRENTPRESSEDBUTTONS], a
ld [$ccd3], a
ld [$cd38], a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $3
jr c, .asm_7635d
ld hl, $d864
@@ -110392,7 +110392,7 @@ BrunoScript3: ; 76383 (1d:6383)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_BRUNOCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -110544,7 +110544,7 @@ AgathaScript0: ; 76490 (1d:6490)
ld [H_CURRENTPRESSEDBUTTONS], a
ld [$ccd3], a
ld [$cd38], a
- ld a, [W_WHICHTRADE] ; $cd3d
+ ld a, [wWhichTrade] ; $cd3d
cp $3
jr c, .asm_764b4
ld hl, $d865
@@ -110578,7 +110578,7 @@ AgathaScript3: ; 764da (1d:64da)
ret nz
call Delay3
xor a
- ld [W_JOYPADFORBIDDENBUTTONSMASK], a
+ ld [wJoypadForbiddenButtonsMask], a
ld [W_AGATHACURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
@@ -110954,10 +110954,10 @@ HiddenCoins: ; 76799 (1d:6799)
ld a, $10
call Predef
call EnableAutoTextBoxDrawing
- ld a, [W_PLAYERCOINS1]
+ ld a, [wPlayerCoins]
cp $99
jr nz, .RoomInCoinCase
- ld a, [W_PLAYERCOINS2]
+ ld a, [wPlayerCoins + 1]
cp $99
jr nz, .RoomInCoinCase
ld a, $2c
@@ -111172,7 +111172,7 @@ DrawFrameBlock: ; 78000 (1e:4000)
jr z,.resetFrameBlockDestAddr
call AnimationCleanOAM
.resetFrameBlockDestAddr
- ld hl,W_OAMBUFFER ; OAM buffer
+ ld hl,wOAMBuffer ; OAM buffer
ld a,l
ld [W_FBDESTADDR + 1],a
ld a,h
@@ -111221,7 +111221,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
ld a,[hli]
cp a,$FF ; is there a sound to play?
jr z,.skipPlayingSound
- ld [W_ANIMSOUNDID],a ; store sound
+ ld [wAnimSoundID],a ; store sound
push hl
push de
call Func586F
@@ -111250,7 +111250,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
rla
ld [$D09F],a ; tile select
ld a,[hli] ; sound
- ld [W_ANIMSOUNDID],a ; store sound
+ ld [wAnimSoundID],a ; store sound
ld a,[hli] ; subanimation ID
ld c,l
ld b,h
@@ -111552,13 +111552,13 @@ Func_78e23: ; 78e23 (1e:4e23)
ret
PlaySubanimation: ; 78e53 (1e:4e53)
- ld a,[W_ANIMSOUNDID]
+ ld a,[wAnimSoundID]
cp a,$FF
jr z,.skipPlayingSound
call Func586F
call PlaySound ; play sound effect
.skipPlayingSound
- ld hl,W_OAMBUFFER ; base address of OAM buffer
+ ld hl,wOAMBuffer ; base address of OAM buffer
ld a,l
ld [W_FBDESTADDR + 1],a
ld a,h
@@ -111910,7 +111910,7 @@ Func504C: ; 7904c (1e:504c)
; if it's the end of the animation, make the ball jump up
ld de,BallMoveDistances1
.loop
- ld hl,W_OAMBUFFER ; OAM buffer
+ ld hl,wOAMBuffer ; OAM buffer
ld bc,4
.innerLoop
ld a,[de]
@@ -111941,7 +111941,7 @@ BallMoveDistances1: ; 79078 (1e:5078)
Func507C ; 507C
ld de,BallMoveDistances2
.loop
- ld hl,W_OAMBUFFER ; OAM buffer
+ ld hl,wOAMBuffer ; OAM buffer
ld bc,4
.innerLoop
ld a,[de]
@@ -111981,7 +111981,7 @@ BallMoveDistances2: ; 790b3 (1e:50b3)
; this function copies the current musical note graphic
; so that there are two musical notes flying towards the defending pokemon
DoGrowlSpecialEffects: ; 790bc (1e:50bc)
- ld hl,W_OAMBUFFER ; OAM buffer
+ ld hl,wOAMBuffer ; OAM buffer
ld de,$c310
ld bc,$10
call CopyData ; copy the musical note graphic
@@ -112243,7 +112243,7 @@ Func_79210: ; 79210 (1e:5210)
ret
Func_79246: ; 79246 (1e:5246)
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
.asm_79249
ld a, [W_BASECOORDY] ; $d082
ld [hli], a
@@ -112438,7 +112438,7 @@ INCBIN "baserom.gbc",$793b1,$793f9 - $793b1
.asm_79447
push hl
ld c, $3
- ld de, W_OAMBUFFER
+ ld de, wOAMBuffer
.asm_7944d
ld a, [hl]
cp $ff
@@ -112549,7 +112549,7 @@ Func_79517: ; 79517 (1e:5517)
call LoadAnimationTileset
pop bc
ld d, $7a
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
push bc
ld a, [W_BASECOORDY] ; $d082
ld e, a
@@ -112563,7 +112563,7 @@ Func_79517: ; 79517 (1e:5517)
ld [$d08a], a
.asm_79538
push bc
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
.asm_7953c
ld a, [W_BASECOORDY] ; $d082
add $8
@@ -112831,7 +112831,7 @@ Func_797e8: ; 797e8 (1e:57e8)
xor a
ld e, a
ld [W_BASECOORDX], a ; $d081
- ld hl, W_OAMBUFFER
+ ld hl, wOAMBuffer
.asm_797fa
call Func_79329
dec c
@@ -112853,7 +112853,7 @@ Func_7980c: ; 7980c (1e:580c)
push bc
ld e, a
ld d, $0
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
add hl, de
ld bc, $707
call ClearScreenArea
@@ -112872,7 +112872,7 @@ Func_79820: ; 79820 (1e:5820)
.asm_7982a
ld a, $c
.asm_7982c
- ld hl, W_SCREENTILESBUFFER
+ ld hl, wTileMap
ld e, a
ld d, $0
add hl, de
@@ -113870,28 +113870,28 @@ TechnicalMachinePrices: ; 7bfa7 (1e:7fa7)
SECTION "bank1F",ROMX,BANK[$1F]
-INCLUDE "music/headers/sfxheaders1f.tx"
-INCLUDE "music/headers/musicheaders1f.tx"
-
-INCLUDE "music/sfx/sfx_1f_01.tx"
-INCLUDE "music/sfx/sfx_1f_02.tx"
-INCLUDE "music/sfx/sfx_1f_03.tx"
-INCLUDE "music/sfx/sfx_1f_04.tx"
-INCLUDE "music/sfx/sfx_1f_05.tx"
-INCLUDE "music/sfx/sfx_1f_06.tx"
-INCLUDE "music/sfx/sfx_1f_07.tx"
-INCLUDE "music/sfx/sfx_1f_08.tx"
-INCLUDE "music/sfx/sfx_1f_09.tx"
-INCLUDE "music/sfx/sfx_1f_0a.tx"
-INCLUDE "music/sfx/sfx_1f_0b.tx"
-INCLUDE "music/sfx/sfx_1f_0c.tx"
-INCLUDE "music/sfx/sfx_1f_0d.tx"
-INCLUDE "music/sfx/sfx_1f_0e.tx"
-INCLUDE "music/sfx/sfx_1f_0f.tx"
-INCLUDE "music/sfx/sfx_1f_10.tx"
-INCLUDE "music/sfx/sfx_1f_11.tx"
-INCLUDE "music/sfx/sfx_1f_12.tx"
-INCLUDE "music/sfx/sfx_1f_13.tx"
+INCLUDE "music/headers/sfxheaders1f.asm"
+INCLUDE "music/headers/musicheaders1f.asm"
+
+INCLUDE "music/sfx/sfx_1f_01.asm"
+INCLUDE "music/sfx/sfx_1f_02.asm"
+INCLUDE "music/sfx/sfx_1f_03.asm"
+INCLUDE "music/sfx/sfx_1f_04.asm"
+INCLUDE "music/sfx/sfx_1f_05.asm"
+INCLUDE "music/sfx/sfx_1f_06.asm"
+INCLUDE "music/sfx/sfx_1f_07.asm"
+INCLUDE "music/sfx/sfx_1f_08.asm"
+INCLUDE "music/sfx/sfx_1f_09.asm"
+INCLUDE "music/sfx/sfx_1f_0a.asm"
+INCLUDE "music/sfx/sfx_1f_0b.asm"
+INCLUDE "music/sfx/sfx_1f_0c.asm"
+INCLUDE "music/sfx/sfx_1f_0d.asm"
+INCLUDE "music/sfx/sfx_1f_0e.asm"
+INCLUDE "music/sfx/sfx_1f_0f.asm"
+INCLUDE "music/sfx/sfx_1f_10.asm"
+INCLUDE "music/sfx/sfx_1f_11.asm"
+INCLUDE "music/sfx/sfx_1f_12.asm"
+INCLUDE "music/sfx/sfx_1f_13.asm"
Music1f_Channel3DutyPointers: ; 7c361 (1f:4361)
dw Music1f_Channel3Duty1
@@ -113919,92 +113919,92 @@ Music1f_Channel3Duty4: ; 7c3a3 (1f:43a3)
Music1f_Channel3Duty5: ; 7c3b3 (1f:43b3)
db $01,$23,$45,$67,$8A,$CD,$EE,$F7,$7F,$EE,$DC,$A8,$76,$54,$32,$10
-INCLUDE "music/sfx/sfx_1f_3f.tx"
-INCLUDE "music/sfx/sfx_1f_56.tx"
-INCLUDE "music/sfx/sfx_1f_57.tx"
-INCLUDE "music/sfx/sfx_1f_58.tx"
-INCLUDE "music/sfx/sfx_1f_3c.tx"
-INCLUDE "music/sfx/sfx_1f_59.tx"
-INCLUDE "music/sfx/sfx_1f_5a.tx"
-INCLUDE "music/sfx/sfx_1f_5b.tx"
-INCLUDE "music/sfx/sfx_1f_5c.tx"
-INCLUDE "music/sfx/sfx_1f_40.tx"
+INCLUDE "music/sfx/sfx_1f_3f.asm"
+INCLUDE "music/sfx/sfx_1f_56.asm"
+INCLUDE "music/sfx/sfx_1f_57.asm"
+INCLUDE "music/sfx/sfx_1f_58.asm"
+INCLUDE "music/sfx/sfx_1f_3c.asm"
+INCLUDE "music/sfx/sfx_1f_59.asm"
+INCLUDE "music/sfx/sfx_1f_5a.asm"
+INCLUDE "music/sfx/sfx_1f_5b.asm"
+INCLUDE "music/sfx/sfx_1f_5c.asm"
+INCLUDE "music/sfx/sfx_1f_40.asm"
IF _RED
- INCLUDE "music/sfx/sfx_1f_5d.tx"
+ INCLUDE "music/sfx/sfx_1f_5d.asm"
ENDC
IF _BLUE
- INCLUDE "music/blue/sfx_1f_5d.tx"
+ INCLUDE "music/blue/sfx_1f_5d.asm"
ENDC
-INCLUDE "music/sfx/sfx_1f_3d.tx"
-INCLUDE "music/sfx/sfx_1f_43.tx"
-INCLUDE "music/sfx/sfx_1f_3e.tx"
-INCLUDE "music/sfx/sfx_1f_44.tx"
-INCLUDE "music/sfx/sfx_1f_45.tx"
-INCLUDE "music/sfx/sfx_1f_46.tx"
-INCLUDE "music/sfx/sfx_1f_47.tx"
-INCLUDE "music/sfx/sfx_1f_48.tx"
-INCLUDE "music/sfx/sfx_1f_49.tx"
-INCLUDE "music/sfx/sfx_1f_4a.tx"
-INCLUDE "music/sfx/sfx_1f_4b.tx"
-INCLUDE "music/sfx/sfx_1f_4c.tx"
-INCLUDE "music/sfx/sfx_1f_4d.tx"
-INCLUDE "music/sfx/sfx_1f_4e.tx"
-INCLUDE "music/sfx/sfx_1f_4f.tx"
-INCLUDE "music/sfx/sfx_1f_50.tx"
-INCLUDE "music/sfx/sfx_1f_51.tx"
-INCLUDE "music/sfx/sfx_1f_52.tx"
-INCLUDE "music/sfx/sfx_1f_53.tx"
-INCLUDE "music/sfx/sfx_1f_54.tx"
-INCLUDE "music/sfx/sfx_1f_55.tx"
-INCLUDE "music/sfx/sfx_1f_5e.tx"
-INCLUDE "music/sfx/sfx_1f_5f.tx"
-INCLUDE "music/sfx/sfx_1f_60.tx"
-INCLUDE "music/sfx/sfx_1f_61.tx"
-INCLUDE "music/sfx/sfx_1f_62.tx"
-INCLUDE "music/sfx/sfx_1f_63.tx"
-INCLUDE "music/sfx/sfx_1f_64.tx"
-INCLUDE "music/sfx/sfx_1f_65.tx"
-INCLUDE "music/sfx/sfx_1f_66.tx"
-INCLUDE "music/sfx/sfx_1f_67.tx"
-INCLUDE "music/sfx/sfx_1f_unused.tx"
-INCLUDE "music/sfx/sfx_1f_1d.tx"
-INCLUDE "music/sfx/sfx_1f_37.tx"
-INCLUDE "music/sfx/sfx_1f_38.tx"
-INCLUDE "music/sfx/sfx_1f_25.tx"
-INCLUDE "music/sfx/sfx_1f_39.tx"
-INCLUDE "music/sfx/sfx_1f_17.tx"
-INCLUDE "music/sfx/sfx_1f_23.tx"
-INCLUDE "music/sfx/sfx_1f_24.tx"
-INCLUDE "music/sfx/sfx_1f_14.tx"
-INCLUDE "music/sfx/sfx_1f_22.tx"
-INCLUDE "music/sfx/sfx_1f_1a.tx"
-INCLUDE "music/sfx/sfx_1f_1b.tx"
-INCLUDE "music/sfx/sfx_1f_19.tx"
-INCLUDE "music/sfx/sfx_1f_1f.tx"
-INCLUDE "music/sfx/sfx_1f_20.tx"
-INCLUDE "music/sfx/sfx_1f_16.tx"
-INCLUDE "music/sfx/sfx_1f_21.tx"
-INCLUDE "music/sfx/sfx_1f_15.tx"
-INCLUDE "music/sfx/sfx_1f_1e.tx"
-INCLUDE "music/sfx/sfx_1f_1c.tx"
-INCLUDE "music/sfx/sfx_1f_18.tx"
-INCLUDE "music/sfx/sfx_1f_2d.tx"
-INCLUDE "music/sfx/sfx_1f_2a.tx"
-INCLUDE "music/sfx/sfx_1f_2f.tx"
-INCLUDE "music/sfx/sfx_1f_26.tx"
-INCLUDE "music/sfx/sfx_1f_27.tx"
-INCLUDE "music/sfx/sfx_1f_28.tx"
-INCLUDE "music/sfx/sfx_1f_32.tx"
-INCLUDE "music/sfx/sfx_1f_29.tx"
-INCLUDE "music/sfx/sfx_1f_2b.tx"
-INCLUDE "music/sfx/sfx_1f_30.tx"
-INCLUDE "music/sfx/sfx_1f_2e.tx"
-INCLUDE "music/sfx/sfx_1f_31.tx"
-INCLUDE "music/sfx/sfx_1f_2c.tx"
-INCLUDE "music/sfx/sfx_1f_33.tx"
-INCLUDE "music/sfx/sfx_1f_34.tx"
-INCLUDE "music/sfx/sfx_1f_35.tx"
-INCLUDE "music/sfx/sfx_1f_36.tx"
+INCLUDE "music/sfx/sfx_1f_3d.asm"
+INCLUDE "music/sfx/sfx_1f_43.asm"
+INCLUDE "music/sfx/sfx_1f_3e.asm"
+INCLUDE "music/sfx/sfx_1f_44.asm"
+INCLUDE "music/sfx/sfx_1f_45.asm"
+INCLUDE "music/sfx/sfx_1f_46.asm"
+INCLUDE "music/sfx/sfx_1f_47.asm"
+INCLUDE "music/sfx/sfx_1f_48.asm"
+INCLUDE "music/sfx/sfx_1f_49.asm"
+INCLUDE "music/sfx/sfx_1f_4a.asm"
+INCLUDE "music/sfx/sfx_1f_4b.asm"
+INCLUDE "music/sfx/sfx_1f_4c.asm"
+INCLUDE "music/sfx/sfx_1f_4d.asm"
+INCLUDE "music/sfx/sfx_1f_4e.asm"
+INCLUDE "music/sfx/sfx_1f_4f.asm"
+INCLUDE "music/sfx/sfx_1f_50.asm"
+INCLUDE "music/sfx/sfx_1f_51.asm"
+INCLUDE "music/sfx/sfx_1f_52.asm"
+INCLUDE "music/sfx/sfx_1f_53.asm"
+INCLUDE "music/sfx/sfx_1f_54.asm"
+INCLUDE "music/sfx/sfx_1f_55.asm"
+INCLUDE "music/sfx/sfx_1f_5e.asm"
+INCLUDE "music/sfx/sfx_1f_5f.asm"
+INCLUDE "music/sfx/sfx_1f_60.asm"
+INCLUDE "music/sfx/sfx_1f_61.asm"
+INCLUDE "music/sfx/sfx_1f_62.asm"
+INCLUDE "music/sfx/sfx_1f_63.asm"
+INCLUDE "music/sfx/sfx_1f_64.asm"
+INCLUDE "music/sfx/sfx_1f_65.asm"
+INCLUDE "music/sfx/sfx_1f_66.asm"
+INCLUDE "music/sfx/sfx_1f_67.asm"
+INCLUDE "music/sfx/sfx_1f_unused.asm"
+INCLUDE "music/sfx/sfx_1f_1d.asm"
+INCLUDE "music/sfx/sfx_1f_37.asm"
+INCLUDE "music/sfx/sfx_1f_38.asm"
+INCLUDE "music/sfx/sfx_1f_25.asm"
+INCLUDE "music/sfx/sfx_1f_39.asm"
+INCLUDE "music/sfx/sfx_1f_17.asm"
+INCLUDE "music/sfx/sfx_1f_23.asm"
+INCLUDE "music/sfx/sfx_1f_24.asm"
+INCLUDE "music/sfx/sfx_1f_14.asm"
+INCLUDE "music/sfx/sfx_1f_22.asm"
+INCLUDE "music/sfx/sfx_1f_1a.asm"
+INCLUDE "music/sfx/sfx_1f_1b.asm"
+INCLUDE "music/sfx/sfx_1f_19.asm"
+INCLUDE "music/sfx/sfx_1f_1f.asm"
+INCLUDE "music/sfx/sfx_1f_20.asm"
+INCLUDE "music/sfx/sfx_1f_16.asm"
+INCLUDE "music/sfx/sfx_1f_21.asm"
+INCLUDE "music/sfx/sfx_1f_15.asm"
+INCLUDE "music/sfx/sfx_1f_1e.asm"
+INCLUDE "music/sfx/sfx_1f_1c.asm"
+INCLUDE "music/sfx/sfx_1f_18.asm"
+INCLUDE "music/sfx/sfx_1f_2d.asm"
+INCLUDE "music/sfx/sfx_1f_2a.asm"
+INCLUDE "music/sfx/sfx_1f_2f.asm"
+INCLUDE "music/sfx/sfx_1f_26.asm"
+INCLUDE "music/sfx/sfx_1f_27.asm"
+INCLUDE "music/sfx/sfx_1f_28.asm"
+INCLUDE "music/sfx/sfx_1f_32.asm"
+INCLUDE "music/sfx/sfx_1f_29.asm"
+INCLUDE "music/sfx/sfx_1f_2b.asm"
+INCLUDE "music/sfx/sfx_1f_30.asm"
+INCLUDE "music/sfx/sfx_1f_2e.asm"
+INCLUDE "music/sfx/sfx_1f_31.asm"
+INCLUDE "music/sfx/sfx_1f_2c.asm"
+INCLUDE "music/sfx/sfx_1f_33.asm"
+INCLUDE "music/sfx/sfx_1f_34.asm"
+INCLUDE "music/sfx/sfx_1f_35.asm"
+INCLUDE "music/sfx/sfx_1f_36.asm"
Func_7d13b: ; 7d13b (1f:513b)
ld a, [$FF00+$dc]
@@ -115729,28 +115729,28 @@ Unknown_7dba3: ; 7dba3 (1f:5ba3)
dw $FB9B
dw $FBDA
-INCLUDE "music/bikeriding.tx"
-INCLUDE "music/dungeon1.tx"
-INCLUDE "music/gamecorner.tx"
-INCLUDE "music/titlescreen.tx"
-INCLUDE "music/sfx/sfx_1f_3a.tx"
-INCLUDE "music/dungeon2.tx"
-INCLUDE "music/dungeon3.tx"
-INCLUDE "music/cinnabarmansion.tx"
-INCLUDE "music/sfx/sfx_1f_41.tx"
-INCLUDE "music/sfx/sfx_1f_3b.tx"
-INCLUDE "music/sfx/sfx_1f_42.tx"
-INCLUDE "music/oakslab.tx"
-INCLUDE "music/pokemontower.tx"
-INCLUDE "music/silphco.tx"
-INCLUDE "music/meeteviltrainer.tx"
-INCLUDE "music/meetfemaletrainer.tx"
-INCLUDE "music/meetmaletrainer.tx"
-INCLUDE "music/introbattle.tx"
-INCLUDE "music/surfing.tx"
-INCLUDE "music/jigglypuffsong.tx"
-INCLUDE "music/halloffame.tx"
-INCLUDE "music/credits.tx"
+INCLUDE "music/bikeriding.asm"
+INCLUDE "music/dungeon1.asm"
+INCLUDE "music/gamecorner.asm"
+INCLUDE "music/titlescreen.asm"
+INCLUDE "music/sfx/sfx_1f_3a.asm"
+INCLUDE "music/dungeon2.asm"
+INCLUDE "music/dungeon3.asm"
+INCLUDE "music/cinnabarmansion.asm"
+INCLUDE "music/sfx/sfx_1f_41.asm"
+INCLUDE "music/sfx/sfx_1f_3b.asm"
+INCLUDE "music/sfx/sfx_1f_42.asm"
+INCLUDE "music/oakslab.asm"
+INCLUDE "music/pokemontower.asm"
+INCLUDE "music/silphco.asm"
+INCLUDE "music/meeteviltrainer.asm"
+INCLUDE "music/meetfemaletrainer.asm"
+INCLUDE "music/meetmaletrainer.asm"
+INCLUDE "music/introbattle.asm"
+INCLUDE "music/surfing.asm"
+INCLUDE "music/jigglypuffsong.asm"
+INCLUDE "music/halloffame.asm"
+INCLUDE "music/credits.asm"
SECTION "bank20",ROMX,BANK[$20]
@@ -118468,25 +118468,25 @@ _UnnamedText_703ff: ; 88267 (22:4267)
db $0, "#DEX Rating", $6d, $57
_UnnamedText_62453: ; 88275 (22:4275)
- TX_RAM W_GYMCITYNAME
+ TX_RAM wGymCityName
db $0, $4f
db "#MON GYM", $55
db "LEADER: @"
UnnamedText_8828c: ; 8828c (22:428c)
- TX_RAM W_GYMLEADERNAME
+ TX_RAM wGymLeaderName
db $0, $51
db "WINNING TRAINERS:", $4f
db $53, $57
_UnnamedText_62458: ; 882a5 (22:42a5)
- TX_RAM W_GYMCITYNAME
+ TX_RAM wGymCityName
db $0, $4f
db "#MON GYM", $55
db "LEADER: @"
UnnamedText_882bc: ; 882bc (22:42bc)
- TX_RAM W_GYMLEADERNAME
+ TX_RAM wGymLeaderName
db $0, $51
db "WINNING TRAINERS:", $4f
db $53, $55
@@ -119475,7 +119475,7 @@ _PotionText: ; 89e31 (22:5e31)
TX_RAM $cd6d
db $0, $4f
db "recovered by @"
- TX_NUM W_HPBARHPDIFFERENCE, 2, 3
+ TX_NUM wHPBarHPDifference, 2, 3
db $0, "!", $57
_AntidoteText: ; 89e4b (22:5e4b)
@@ -119729,7 +119729,7 @@ _UnnamedText_5d4d: ; 8a40d (22:640d)
db $0, "The link was", $4f
db "canceled.", $57
-INCLUDE "text/oakspeech.tx"
+INCLUDE "text/oakspeech.asm"
_DoYouWantToNicknameText: ; 0x8a605
db $0, "Do you want to", $4f
@@ -123197,8 +123197,8 @@ _BattleCenterMText1: ; 94b01 (25:4b01)
_TradeCenterMText1: ; 94b04 (25:4b04)
db $0, "!", $57
-INCLUDE "text/mapRedsHouse1F.tx"
-INCLUDE "text/mapBluesHouse.tx"
+INCLUDE "text/mapRedsHouse1F.asm"
+INCLUDE "text/mapBluesHouse.asm"
_OaksLabGaryText1: ; 94d5b (25:4d5b)
db $0, $53, ": Yo", $4f
@@ -127680,7 +127680,7 @@ _UnnamedText_4fe44: ; a41d6 (29:41d6)
db "Change the BOX at", $4f
db "a #MON CENTER!", $57
-INCLUDE "text/mapPalletTown.tx"
+INCLUDE "text/mapPalletTown.asm"
_ViridianCityText1: ; a43cc (29:43cc)
db $0, "Those # BALLs", $4f
@@ -128988,7 +128988,7 @@ _UnnamedText_ef7d ; a82f8 (2a:42f8)
SECTION "bank2B",ROMX,BANK[$2B]
-INCLUDE "text/pokedex.tx"
+INCLUDE "text/pokedex.asm"
SECTION "bank2C",ROMX,BANK[$2C]
diff --git a/pokeblue.asm b/pokeblue.asm
index 33ae260c..dd621ca4 100644
--- a/pokeblue.asm
+++ b/pokeblue.asm
@@ -1,4 +1,5 @@
_RED EQU 0
_BLUE EQU 1
+INCLUDE "globals.asm"
INCLUDE "wram.asm"
INCLUDE "main.asm"
diff --git a/pokered.asm b/pokered.asm
index 8a814544..bcc826c8 100644
--- a/pokered.asm
+++ b/pokered.asm
@@ -1,4 +1,5 @@
_RED EQU 1
_BLUE EQU 0
+INCLUDE "globals.asm"
INCLUDE "wram.asm"
INCLUDE "main.asm"
diff --git a/textpre.py b/preprocessor.py
index 294e9ccb..cb9353af 100644
--- a/textpre.py
+++ b/preprocessor.py
@@ -1,10 +1,17 @@
# -*- coding: utf-8 -*-
import extras.pokemontools.preprocessor as preprocessor
+
import extras.pokemontools.configuration as configuration
+config = configuration.Config()
import sys
+from extras.pokemontools.crystal import (
+ callchannel,
+ loopchannel,
+)
+
chars = {
"ガ": 0x05,
"ギ": 0x06,
@@ -260,14 +267,21 @@ chars = {
"9": 0xFF,
}
-preprocessor.chars = chars
+def load_pokered_macros():
+ macros = [callchannel, loopchannel]
+ return macros
-from extras.pokemontools.crystal import (
- callchannel,
- loopchannel,
-)
+def setup_processor():
+ preprocessor.chars = chars
+ macros = load_pokered_macros()
+ processor = preprocessor.Preprocessor(config, macros)
+ return processor
-config = configuration.Config()
-macros = [callchannel, loopchannel]
-processor = preprocessor.Preprocessor(config, macros)
-processor.preprocess()
+def main():
+ processor = setup_processor()
+ output = processor.preprocess()
+ processor.update_globals()
+ return output
+
+if __name__ == '__main__':
+ main()
diff --git a/prequeue.py b/prequeue.py
new file mode 100644
index 00000000..d9b37e03
--- /dev/null
+++ b/prequeue.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+"""
+Starting a new python process to preprocess each source file creates too much
+overhead. Instead, a list of files to preprocess is fed into a script run from
+a single process.
+"""
+
+import os
+import sys
+
+import preprocessor
+
+def preprocess_queue(filenames=sys.argv[1:]):
+
+ stdin = sys.stdin
+ stdout = sys.stdout
+
+ processor = preprocessor.setup_processor()
+
+ for source in filenames:
+ dest = os.path.splitext(source)[0] + '.tx'
+ sys.stdin = open(source, 'r')
+ sys.stdout = open(dest, 'w')
+ processor.preprocess()
+
+ processor.update_globals()
+
+ sys.stdin = stdin
+ sys.stdout = stdout
+
+def main():
+ filenames = list(set(sys.argv[1:]))
+ if filenames:
+ num_files = len(filenames)
+ s = '' if num_files == 1 else 's'
+ sys.stdout.write('Preprocessing {0} file{1}...\n'.format(num_files, s))
+ preprocess_queue(filenames)
+
+if __name__ == '__main__':
+ main()
diff --git a/wram.asm b/wram.asm
index ead23b85..1605a6f0 100644
--- a/wram.asm
+++ b/wram.asm
@@ -1,4 +1,1430 @@
-SECTION "pokedex",WRAMX[$d2f7],BANK[1]
-WPokedexOwned:
+
+
+SECTION "WRAM Bank 0", WRAM0
+
+
+SECTION "Sprite State Data", WRAM0[$c100]
+
+wSpriteStateData1: ; c100
+; data for all sprites on the current map
+; holds info for 16 sprites with $10 bytes each
+; player sprite is always sprite 0
+; C1x0: picture ID (fixed, loaded at map init)
+; C1x1: movement status (0: uninitialized, 1: ready, 2: delayed, 3: moving)
+; C1x2: sprite image index (changed on update, $ff if off screen, includes facing direction, progress in walking animation and a sprite-specific offset)
+; C1x3: Y screen position delta (-1,0 or 1; added to c1x4 on each walking animation update)
+; C1x4: Y screen position (in pixels, always 4 pixels above grid which makes sprites appear to be in the center of a tile)
+; C1x5: X screen position delta (-1,0 or 1; added to c1x6 on each walking animation update)
+; C1x6: X screen position (in pixels, snaps to grid if not currently walking)
+; C1x7: intra-animation-frame counter (counting upwards to 4 until c1x8 is incremented)
+; C1x8: animation frame counter (increased every 4 updates, hold four states (totalling to 16 walking frames)
+; C1x9: facing direction (0: down, 4: up, 8: left, $c: right)
+; C1xA
+; C1xB
+; C1xC
+; C1xD
+; C1xE
+; C1xF
+ ds $10 * $10
+
+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:
+; 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)
+; C2x5: X position (in 2x2 tile grid steps, leftmost 2x2 tile has value 4)
+; C2x6: movement byte 1 (determines whether a sprite can move, $ff:not moving, $fe:random movements, others unknown)
+; C2x7: (?) (set to $80 when in grass, else $0; may be used to draw grass above the sprite)
+; C2x8: delay until next movement (counted downwards, status (c1x1) is set to ready if reached 0)
+; C2x9
+; C2xA
+; C2xB
+; C2xC
+; C2xD
+; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
+; C2xF
+ ds $10 * $10
+
+
+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
+
+wTileMapBackup: ; c508
+; buffer for temporarily saving and restoring current screen's tiles
+; (e.g. if menus are drawn on top)
+ ds 20 * 18
+
+; c670
+
+
+SECTION "Screen Edge Tiles", WRAM0[$cbfc]
+
+wScreenEdgeTiles: ; cbfc
+; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
+ ds 20 * 2
+
+; coordinates of the position of the cursor for the top menu item (id 0)
+wTopMenuItemY: ; cc24
+ ds 1
+wTopMenuItemX: ; cc25
+ ds 1
+
+wCurrentMenuItem: ; cc26
+; the id of the currently selected menu item
+; the top item has id 0, the one below that has id 1, etc.
+; note that the "top item" means the top item currently visible on the screen
+; add this value to [wListScrollOffset] to get the item's position within the list
+ ds 1
+
+wTileBehindCursor: ; cc27
+; the tile that was behind the menu cursor's current location
+ ds 1
+
+wMaxMenuItem: ; cc28
+; id of the bottom menu item
+ ds 1
+
+wMenuWatchedKeys: ; cc29
+; bit mask of keys that the menu will respond to
+ ds 1
+
+wLastMenuItem: ; cc2a
+; id of previously selected menu item
+ ds 1
+
+; cc2b
+
+ ds 3
+
+wPlayerMoveListIndex: ; cc2e
+ ds 1
+
+wPlayerMonNumber: ; cc2f
+ ds 1
+
+wMenuCursorLocation: ; cc30
+; the address of the menu cursor's current location within wTileMap
+ ds 2
+
+ ds 2
+
+wMenuJoypadPollCount: ; cc34
+; how many times should HandleMenuInput poll the joypad state before it returns?
+ ds 1
+
+ ds 1
+
+wListScrollOffset: ; cc36
+; offset of the current top menu item from the beginning of the list
+; keeps track of what section of the list is on screen
+ ds 1
+
+ ds 19
+
+wMenuWrappingEnabled: ; cc4a
+; set to 1 if you can go from the bottom to the top or top to bottom of a menu
+; set to 0 if you can't go past the top or bottom of the menu
+ ds 1
+
+ ds 10
+
+wTrainerHeaderFlagBit: ; cc55
+ ds 1
+
+; cc56
+
+
+SECTION "RLE", WRAM0[$ccd2]
+wRLEByteCount: ; ccd2
+ ds 1
+
+ ds 4
+
+; current HP of player and enemy substitutes
+wPlayerSubstituteHP: ; ccd7
+ ds 1
+wEnemySubstituteHP: ; ccd8
+ ds 1
+
+ ds 2
+
+wMoveMenuType: ; ccdb
+; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..)
+ ds 1
+
+wPlayerSelectedMove: ; ccdc
+ ds 1
+wEnemySelectedMove: ; ccdd
+ ds 1
+
+ ds 1
+
+wAICount: ; ccdf
+; number of times remaining that AI action can occur
+ ds 1
+
+ ds 2
+
+wEnemyMoveListIndex: ; cce2
+ ds 1
+
+; cce3
+
+
+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
+
+wPlayerMonStatMods:
+wPlayerMonAttackMod: ; cd1a
+ ds 1
+wPlayerMonDefenseMod: ; cd1b
+ ds 1
+wPlayerMonSpeedMod: ; cd1c
+ ds 1
+wPlayerMonSpecialMod: ; cd1d
+ ds 1
+wPlayerMonAccuracyMod: ; cd1e
+ ds 1
+wPlayerMonEvasionMod: ; cd1f
+ ds 1
+
+ ds 13
+
+wEngagedTrainerClass: ; cd2d
+ ds 1
+wEngagedTrainerSet: ; cd2e
+; ds 1
+
+; stat modifiers for the enemy's current pokemon
+; value can range from 1 - 13 ($1 to $D)
+; 7 is normal
+
+wEnemyMonStatMods:
+wEnemyMonAttackMod: ; cd2e
+ ds 1
+wEnemyMonDefenseMod: ; cd2f
+ ds 1
+wEnemyMonSpeedMod: ; cd30
+ ds 1
+wEnemyMonSpecialMod: ; cd31
+ ds 1
+wEnemyMonAccuracyMod: ; cd32
+ ds 1
+wEnemyMonEvasionMod: ; cd33
+ ds 1
+
+ ds 9
+
+wWhichTrade: ; cd3d
+; which entry from TradeMons to select
+; ds 1
+
+wTrainerSpriteOffset: ; cd3d
+ ds 1
+wTrainerEngageDistance: ; cd3e
+ ds 1
+wTrainerFacingDirection: ; cd3f
+ ds 1
+wTrainerScreenY: ; cd40
+ ds 1
+wTrainerScreenX: ; cd41
+ ds 1
+
+ ds 30
+
+wFlags_0xcd60: ; cd60
+; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaniously)
+ ds 1
+
+ ds 10
+
+wJoypadForbiddenButtonsMask: ; cd6b
+; bit 1 means button presses will be ignored for that button
+ ds 1
+
+ ds 21
+
+wTileMapBackup2: ; cd81
+; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
+ ds 20 * 18
+
+wBuffer: ; cee9
+; used for temporary things
+
+wHPBarMaxHP: ; cee9
+ ds 2
+wHPBarOldHP: ; ceeb
+ ds 2
+wHPBarNewHP: ; ceed
+ ds 2
+wHPBarDelta: ; ceef
+ ds 1
+
+ ds 13
+
+wHPBarHPDifference: ; cefd
+ ds 1
+
+ ds 9
+
+wAnimSoundID: ; cf07
+; sound ID during battle animations
+ ds 1
+
+ ds 12
+
+wCurSpriteMovement2: ; cf14
+; movement byte 2 of current sprite
+ ds 1
+
+ ds 74
+
+wGymCityName: ; cf5f
+wStringBuffer1: ; cf5f
+ ds 16 + 1
+wGymLeaderName: ; cf70
+wStringBuffer2: ; cf70
+ ds 16 + 1
+wStringBuffer3: ; cf81
+ ds 16 + 1
+
+wWhichPokemon: ; cf92
+; which pokemon you selected
+ ds 1
+
+ ds 1
+
+wListMenuID: ; cf94
+; ID used by DisplayListMenuID
+ ds 1
+
+ ds 48
+
+wWalkCounter: ; cfc5
+; walk animation counter
+ ds 1
+
+ ds 1
+
+wMusicChannelPointer: ; cfc7
+; (the current music channel address - $4000) / 3
+ ds 1
+
+ ds 4
+
+W_ENEMYMOVENUM: ; cfcc
+ ds 1
+W_ENEMYMOVEEFFECT: ; cfcd
+ ds 1
+W_ENEMYMOVEPOWER: ; cfce
+ ds 1
+W_ENEMYMOVETYPE: ; cfcf
+ ds 1
+W_ENEMYMOVEACCURACY: ; cfd0
+ ds 1
+W_ENEMYMOVEMAXPP: ; cfd1
+ ds 1
+W_PLAYERMOVENUM: ; cfd2
+ ds 1
+W_PLAYERMOVEEFFECT: ; cfd3
+ ds 1
+W_PLAYERMOVEPOWER: ; cfd4
+ ds 1
+W_PLAYERMOVETYPE: ; cfd5
+ ds 1
+W_PLAYERMOVEACCURACY: ; cfd6
+ ds 1
+W_PLAYERMOVEMAXPP: ; cfd7
+ ds 1
+
+W_ENEMYMONID: ; cfd8
+ ds 1
+
+ ds 1
+
+W_ENEMYMONNAME: ; cfda
+ ds 11
+
+ 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
+
+W_ENEMYMONPP: ; cffe
+; four moves (extends past $cfff)
+ ds 2
+
+
+SECTION "WRAM Bank 1", WRAMX, BANK[1]
+
+ ds 2 ; W_ENEMYMONPP
+
+ ds 7
+
+W_PLAYERMONNAME: ; d009
+ ds 11
+
+W_PLAYERMONID: ; d014
+ 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
+
+
+
+W_TRAINERCLASS: ; d031
+ ds 1
+
+ ds 37
+
+W_ISINBATTLE: ; d057
+; no battle, this is 0
+; wild battle, this is 1
+; trainer battle, this is 2
+ ds 1
+
+W_PLAYERMONSALIVEFLAGS: ; d058
+; 6 bit array, 1 if player mon is alive
+ ds 1
+
+W_CUROPPONENT: ; d059
+; in a wild battle, this is the species of pokemon
+; in a trainer battle, this is the trainer class + $C8
+ ds 1
+
+W_BATTLETYPE: ; d05a
+; in normal battle, this is 0
+; in old man battle, this is 1
+; in safari battle, this is 2
+ ds 1
+
+ ds 1
+
+W_LONEATTACKNO: ; d05c
+; which entry in LoneAttacks to use
+W_GYMLEADERNO: ; d05c
+; it's actually the same thing as ^
+ ds 1
+W_TRAINERNO: ; d05d
+; which instance of [youngster, lass, etc] is this?
+ ds 1
+
+ ds 1
+
+W_MOVEMISSED: ; d05f
+ ds 1
+
+ ds 2
+
+W_PLAYERBATTSTATUS1: ; d062
+; bit 0 - bide
+; bit 1 - thrash / petal dance
+; bit 2 - attacking multiple times (e.g. double kick)
+; bit 3 - flinch
+; bit 4 - charging up for attack
+; bit 5 - using multi-turn move (e.g. wrap)
+; bit 6 - invulnerable to normal attack (using fly/dig)
+; bit 7 - confusion
+ ds 1
+
+W_PLAYERBATTSTATUS2: ; d063
+; bit 0 - X Accuracy effect
+; bit 1 - protected by "mist"
+; bit 2 - focus energy effect
+; bit 4 - has a substitute
+; bit 5 - need to recharge
+; bit 6 - rage
+; bit 7 - leech seeded
+ ds 1
+
+W_PLAYERBATTSTATUS3: ; d064
+; bit 0 - toxic
+; bit 1 - light screen
+; bit 2 - reflect
+; bit 3 - tranformed
+ ds 1
+
+ ds 2
+
+W_ENEMYBATTSTATUS1: ; d067
+ ds 1
+W_ENEMYBATTSTATUS2: ; d068
+ ds 1
+W_ENEMYBATTSTATUS3: ; d069
+ ds 1
+
+ ds 2
+
+W_PLAYERTOXICCOUNTER: ; d06c
+ ds 1
+W_PLAYERDISABLEDMOVE: ; d06d
+ ds 1
+
+ ds 3
+
+W_ENEMYTOXICCOUNTER: ; d071
+ ds 1
+W_ENEMYDISABLEDMOVE: ; d072
+ ds 1
+
+ ds 1
+
+W_NUMHITS: ; d074
+; number of hits in attacks like Doubleslap, etc.
+ ds 1
+
+ ds 7
+
+W_ANIMATIONID: ; d07c
+; ID number of the current battle animation
+ ds 1
+
+ ds 4
+
+; base coordinates of frame block
+W_BASECOORDX: ; d081
+ ds 1
+W_BASECOORDY: ; d082
+ ds 1
+
+ ds 1
+
+W_FBTILECOUNTER: ; d084
+; counts how many tiles of the current frame block have been drawn
+ ds 1
+
+ ds 1
+
+W_SUBANIMFRAMEDELAY: ; d086
+; duration of each frame of the current subanimation in terms of screen refreshes
+ ds 1
+W_SUBANIMCOUNTER: ; d087
+; counts the number of subentries left in the current subanimation
+ ds 1
+
+ ds 1
+
+W_NUMFBTILES: ; d089
+; number of tiles in current battle animation frame block
+ ds 1
+
+ ds 1
+
+W_SUBANIMTRANSFORM: ; d08b
+; controls what transformations are applied to the subanimation
+; 01: flip horizontally and vertically
+; 02: flip horizontally and translate downwards 40 pixels
+; 03: translate base coordinates of frame blocks, but don't change their internal coordinates or flip their tiles
+; 04: reverse the subanimation
+ ds 1
+
+W_PBSTOREDREGISTERH: ; d08c
+ ds 1
+W_PBSTOREDREGISTERL: ; d08d
+ ds 1
+W_PBSTOREDREGISTERD: ; d08e
+ ds 1
+W_PBSTOREDREGISTERE: ; d08f
+ ds 1
+
+ ds 2
+
+W_PBSTOREDROMBANK: ; d092
+ ds 1
+
+ ds 1
+
+W_SUBANIMADDRPTR: ; d094
+; the address _of the address_ of the current subanimation entry
+ ds 2
+W_SUBANIMSUBENTRYADDR: ; d096
+; the address of the current subentry of the current subanimation
+ ds 2
+
+ ds 4
+
+W_FBDESTADDR: ; d09c
+; current destination address in OAM for frame blocks (big endian)
+ ds 2
+
+W_FBMODE: ; d09e
+; controls how the frame blocks are put together to form frames
+; specifically, after finishing drawing the frame block, the frame block's mode determines what happens
+; 00: clean OAM buffer and delay
+; 02: move onto the next frame block with no delay and no cleaning OAM buffer
+; 03: delay, but don't clean OAM buffer
+; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one
+; sprite data is written column by column, each byte contains 8 columns (one for ech bit)
+; for 2bpp sprites, pairs of two consecutive bytes (i.e. pairs of consecutive rows of sprite data)
+; contain the upper and lower bit of each of the 8 pixels, respectively
+ ds 1
+
+
+SECTION "Sprite Buffers", SRAM
+
+SPRITEBUFFERSIZE EQU 7*7 * 8 ; 7 * 7 (tiles) * 8 (bytes per tile)
+
+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
+ ds 1
+W_SPRITEWITDH: ; d0a3
+ ds 1
+W_SPRITEHEIGHT: ; d0a4
+ ds 1
+W_SPRITEINPUTCURBYTE: ; d0a5
+; current input byte
+ ds 1
+W_SPRITEINPUTBITCOUNTER: ; d0a6
+; bit offset of last read input bit
+ ds 1
+
+W_SPRITEOUTPUTBITOFFSET: ; d0a7; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data)
+; 3 -> XX000000 1st column
+; 2 -> 00XX0000 2nd column
+; 1 -> 0000XX00 3rd column
+; 0 -> 000000XX 4th column
+ ds 1
+
+W_SPRITELOADFLAGS: ; d0a8
+; bit 0 determines used buffer (0 -> $a188, 1 -> $a310)
+; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation)
+ ds 1
+W_SPRITEUNPACKMODE: ; d0a9
+ ds 1
+W_SPRITEFLIPPED: ; d0aa
+ ds 1
+
+W_SPRITEINPUTPTR: ; d0ab
+; pointer to next input byte
+ ds 2
+W_SPRITEOUTPUTPTR: ; d0ad
+; pointer to current output byte
+ ds 2
+W_SPRITEOUTPUTPTRCACHED: ; d0af
+; used to revert pointer for different bit offsets
+ ds 2
+W_SPRITEDECODETABLE0PTR: ; d0b1
+; pointer to differential decoding table (assuming initial value 0)
+ ds 2
+W_SPRITEDECODETABLE1PTR: ; d0b3
+; pointer to differential decoding table (assuming initial value 1)
+ ds 2
+
+ ds 1
+
+W_LISTTYPE: ; d0b6
+ ds 1
+
+ ds 1
+
+W_MONHEADER: ; d0b8
+W_MONHDEXNUM: ; d0b8
+ ds 1
+
+W_MONHBASESTATS: ; d0b9
+W_MONHBASEHP: ; d0b9
+ ds 1
+W_MONHBASEATTACK: ; d0ba
+ ds 1
+W_MONHBASEDEFENSE: ; d0bb
+ ds 1
+W_MONHBASESPEED: ; d0bc
+ ds 1
+W_MONHBASESPECIAL: ; d0bd
+ ds 1
+
+W_MONHTYPES: ; d0be
+W_MONHTYPE1: ; d0be
+ ds 1
+W_MONHTYPE2: ; d0bf
+ ds 1
+
+W_MONHCATCHRATE: ; d0c0
+ ds 1
+W_MONHBASEXP: ; d0c1
+ ds 1
+W_MONHSPRITEDIM: ; d0c2
+ ds 1
+W_MONHFRONTSPRITE: ; d0c3
+ ds 2
+W_MONHBACKSPRITE: ; d0c5
+ ds 2
+
+W_MONHMOVES: ; d0c7
+ ds 4
+
+W_MONHGROWTHRATE: ; d0cb
+ ds 1
+
+W_MONHLEARNSET: ; d0cc
+; bit field
+ ds 7
+
+ ds 4
+
+W_MONHPADDING: ; d0d7
+
+
+W_DAMAGE: ; d0d7
+ ds 1
+
+ ds 79
+
+W_CURENEMYLVL: ; d127
+ ds 1
+
+ ds 3
+
+W_ISLINKBATTLE: ; d12b
+ ds 1
+
+ ds 17
+
+W_PRIZE1: ; d13d
+ ds 1
+W_PRIZE2: ; d13e
+ ds 1
+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
+
+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
+ 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
+
+
+SECTION "Pokedex", WRAMX[$d2f7], BANK[1]
+
+wPokedexOwned: ; d2f7
ds (150 / 8) + 1
-WPokedexOwnedEnd:
+wPokedexOwnedEnd:
+
+wPokedexSeen: ; d30a
+ ds (150 / 8) + 1
+wPokedexSeenEnd:
+
+
+wNumBagItems: ; d31d
+ ds 1
+wBagItems: ; d31e
+; item, quantity
+ ds 20 * 2
+ ds 1 ; end
+
+; money is in decimal
+wPlayerMoney: ; d347
+ ds 3
+
+W_RIVALNAME: ; d34a
+ ds 11
+
+W_OPTIONS: ; d355
+; bit 7 = battle animation
+; 0: On
+; 1: Off
+; bit 6 = battle style
+; 0: Shift
+; 1: Set
+; bits 0-3 = text speed (number of frames to delay after printing a letter)
+; 1: Fast
+; 3: Medium
+; 5: Slow
+ ds 1
+
+W_OBTAINEDBADGES: ; d356
+ ds 1
+
+ ds 2
+
+wPlayerID: ; d359
+ ds 2
+
+ ds 3
+
+W_CURMAP: ; d35e
+ ds 1
+
+ ds 2
+
+W_YCOORD: ; d361
+; player’s position on the current map
+ ds 1
+
+W_XCOORD: ; d362
+ ds 1
+
+W_YBLOCKCOORD: ; d363
+; player's y position (by block)
+ ds 1
+
+W_XBLOCKCOORD: ; d364
+ ds 3
+
+W_CURMAPTILESET: ; d367
+ ds 1
+
+W_CURMAPHEIGHT: ; d368
+; blocks
+ ds 1
+
+W_CURMAPWIDTH: ; d369
+; blocks
+ ds 1
+
+W_MAPDATAPTR: ; d36a
+ ds 2
+
+W_MAPTEXTPTR: ; d36c
+ ds 2
+
+W_MAPSCRIPTPTR: ; d36e
+ ds 2
+
+W_MAPCONNECTIONS: ; d370
+; connection byte
+ ds 1
+
+W_MAPCONN1PTR: ; d371
+ ds 2
+ ds 9
+
+W_MAPCONN2PTR: ; d37c
+ ds 2
+ ds 9
+
+W_MAPCONN3PTR: ; d387
+ ds 2
+ ds 9
+
+W_MAPCONN4PTR: ; d392
+ ds 2
+ ds 9
+
+W_SPRITESET: ; d39d
+; sprite set for the current map (11 sprite picture ID's)
+ ds 11
+
+W_SPRITESETID: ; d3a8
+; sprite set ID for the current map
+ ds 1
+
+ ds 312
+
+W_NUMSPRITES: ; d4e1
+; number of sprites on the current map
+; two bytes per sprite (movement byte 2 , text ID)
+ ds 3
+
+W_MAPSPRITEDATA: ; d4e4
+; two bytes per sprite (trainer class/item ID , trainer set ID)
+ ds 32
+
+W_MAPSPRITEEXTRADATA: ; d504
+ ds 39
+
+W_TILESETBANK: ; d52b
+ ds 1
+
+W_TILESETBLOCKSPTR: ; d52c
+; maps blocks (4x4 tiles) to tiles
+ ds 2
+
+W_TILESETGFXPTR: ; d52e
+ ds 2
+
+W_TILESETCOLLISIONPTR: ; d530
+; list of all walkable tiles
+ ds 2
+
+W_TILESETTALKINGOVERTILES: ; d532
+ ds 3
+
+W_GRASSTILE: ; d535
+ ds 1
+
+
+SECTION "Items", WRAMX[$d53a], BANK[1]
+
+wNumBoxItems: ; d53a
+ ds 1
+wBoxItems: ; d53b
+; item, quantity
+ ds 50 * 2
+ ds 1 ; end
+
+ ds 4
+
+; coins are in decimal
+wPlayerCoins: ; d5a4
+ ds 2
+
+W_MISSABLEOBJECTFLAGS: ; d5a6
+; bit array of missable objects. set = removed
+ ds 40
+
+W_MISSABLEOBJECTLIST: ; d5ce
+; each entry consists of 2 bytes
+; * the sprite ID (depending on the current map)
+; * the missable object index (global, used for W_MISSABLEOBJECTFLAGS)
+; terminated with $FF
+ ds 17 * 2
+
+W_GAMEPROGRESSFLAGS: ; d5f0
+; $c8 bytes
+ ds 0
+
+W_OAKSLABCURSCRIPT: ; d5f0
+ ds 1
+W_PALLETTOWNCURSCRIPT: ; d5f1
+ ds 1
+ ds 1
+W_BLUESHOUSECURSCRIPT: ; d5f3
+ ds 1
+W_VIRIDIANCITYCURSCRIPT: ; d5f4
+ ds 1
+ ds 2
+W_PEWTERCITYCURSCRIPT: ; d5f7
+ ds 1
+W_ROUTE3CURSCRIPT: ; d5f8
+ ds 1
+W_ROUTE4CURSCRIPT: ; d5f9
+ ds 1
+ ds 1
+W_VIRIDIANGYMCURSCRIPT: ; d5fb
+ ds 1
+W_PEWTERGYMCURSCRIPT: ; d5fc
+ ds 1
+W_CERULEANGYMCURSCRIPT: ; d5fd
+ ds 1
+W_VERMILIONGYMCURSCRIPT: ; d5fe
+ ds 1
+W_CELADONGYMCURSCRIPT: ; d5ff
+ ds 1
+W_ROUTE6CURSCRIPT: ; d600
+ ds 1
+W_ROUTE8CURSCRIPT: ; d601
+ ds 1
+W_ROUTE24CURSCRIPT: ; d602
+ ds 1
+W_ROUTE25CURSCRIPT: ; d603
+ ds 1
+W_ROUTE9CURSCRIPT: ; d604
+ ds 1
+W_ROUTE10CURSCRIPT: ; d605
+ ds 1
+W_MTMOON1CURSCRIPT: ; d606
+ ds 1
+W_MTMOON3CURSCRIPT: ; d607
+ ds 1
+W_SSANNE8CURSCRIPT: ; d608
+ ds 1
+W_SSANNE9CURSCRIPT: ; d609
+ ds 1
+W_ROUTE22CURSCRIPT: ; d60a
+ ds 1
+ ds 1
+W_REDSHOUSE2CURSCRIPT: ; d60c
+ ds 1
+W_VIRIDIANMARKETCURSCRIPT: ; d60d
+ ds 1
+W_ROUTE22GATECURSCRIPT: ; d60e
+ ds 1
+W_CERULEANCITYCURSCRIPT: ; d60f
+ ds 1
+ ds 7
+W_SSANNE5CURSCRIPT: ; d617
+ ds 1
+W_VIRIDIANFORESTCURSCRIPT: ; d618
+ ds 1
+W_MUSEUMF1CURSCRIPT: ; d619
+ ds 1
+W_ROUTE13CURSCRIPT: ; d61a
+ ds 1
+W_ROUTE14CURSCRIPT: ; d61b
+ ds 1
+W_ROUTE17CURSCRIPT: ; d61c
+ ds 1
+W_ROUTE19CURSCRIPT: ; d61d
+ ds 1
+W_ROUTE21CURSCRIPT: ; d61e
+ ds 1
+W_SAFARIZONEENTRANCECURSCRIPT: ; d61f
+ ds 1
+W_ROCKTUNNEL2CURSCRIPT: ; d620
+ ds 1
+W_ROCKTUNNEL1CURSCRIPT: ; d621
+ ds 1
+ ds 1
+W_ROUTE11CURSCRIPT: ; d623
+ ds 1
+W_ROUTE12CURSCRIPT: ; d624
+ ds 1
+W_ROUTE15CURSCRIPT: ; d625
+ ds 1
+W_ROUTE16CURSCRIPT: ; d626
+ ds 1
+W_ROUTE18CURSCRIPT: ; d627
+ ds 1
+W_ROUTE20CURSCRIPT: ; d628
+ ds 1
+W_SSANNE10CURSCRIPT: ; d629
+ ds 1
+W_VERMILIONCITYCURSCRIPT: ; d62a
+ ds 1
+W_POKEMONTOWER2CURSCRIPT: ; d62b
+ ds 1
+W_POKEMONTOWER3CURSCRIPT: ; d62c
+ ds 1
+W_POKEMONTOWER4CURSCRIPT: ; d62d
+ ds 1
+W_POKEMONTOWER5CURSCRIPT: ; d62e
+ ds 1
+W_POKEMONTOWER6CURSCRIPT: ; d62f
+ ds 1
+W_POKEMONTOWER7CURSCRIPT: ; d630
+ ds 1
+W_ROCKETHIDEOUT1CURSCRIPT: ; d631
+ ds 1
+W_ROCKETHIDEOUT2CURSCRIPT: ; d632
+ ds 1
+W_ROCKETHIDEOUT3CURSCRIPT: ; d633
+ ds 1
+W_ROCKETHIDEOUT4CURSCRIPT: ; d634
+ ds 2
+W_ROUTE6GATECURSCRIPT: ; d636
+ ds 1
+W_ROUTE8GATECURSCRIPT: ; d637
+ ds 2
+W_CINNABARISLANDCURSCRIPT: ; d639
+ ds 1
+W_MANSION1CURSCRIPT: ; d63a
+ ds 2
+W_MANSION2CURSCRIPT: ; d63c
+ ds 1
+W_MANSION3CURSCRIPT: ; d63d
+ ds 1
+W_MANSION4CURSCRIPT: ; d63e
+ ds 1
+W_VICTORYROAD2CURSCRIPT: ; d63f
+ ds 1
+W_VICTORYROAD3CURSCRIPT: ; d640
+ ds 2
+W_FIGHTINGDOJOCURSCRIPT: ; d642
+ ds 1
+W_SILPHCO2CURSCRIPT: ; d643
+ ds 1
+W_SILPHCO3CURSCRIPT: ; d644
+ ds 1
+W_SILPHCO4CURSCRIPT: ; d645
+ ds 1
+W_SILPHCO5CURSCRIPT: ; d646
+ ds 1
+W_SILPHCO6CURSCRIPT: ; d647
+ ds 1
+W_SILPHCO7CURSCRIPT: ; d648
+ ds 1
+W_SILPHCO8CURSCRIPT: ; d649
+ ds 1
+W_SILPHCO9CURSCRIPT: ; d64a
+ ds 1
+W_HALLOFFAMEROOMCURSCRIPT: ; d64b
+ ds 1
+W_GARYCURSCRIPT: ; d64c
+ ds 1
+W_LORELEICURSCRIPT: ; d64d
+ ds 1
+W_BRUNOCURSCRIPT: ; d64e
+ ds 1
+W_AGATHACURSCRIPT: ; d64f
+ ds 1
+W_UNKNOWNDUNGEON3CURSCRIPT: ; d650
+ ds 1
+W_VICTORYROAD1CURSCRIPT: ; d651
+ ds 1
+ ds 1
+W_LANCECURSCRIPT: ; d653
+ ds 1
+ ds 4
+W_SILPHCO10CURSCRIPT: ; d658
+ ds 1
+W_SILPHCO11CURSCRIPT: ; d659
+ ds 1
+ ds 1
+W_FUCHSIAGYMCURSCRIPT: ; d65b
+ ds 1
+W_SAFFRONGYMCURSCRIPT: ; d65c
+ ds 1
+ ds 1
+W_CINNABARGYMCURSCRIPT: ; d65e
+ ds 1
+W_CELADONGAMECORNERCURSCRIPT: ; d65f
+ ds 1
+W_ROUTE16GATECURSCRIPT: ; d660
+ ds 1
+W_BILLSHOUSECURSCRIPT: ; d661
+ ds 1
+W_ROUTE5GATECURSCRIPT: ; d662
+ ds 1
+W_POWERPLANTCURSCRIPT: ; d663
+; overload
+ ds 0
+W_ROUTE7GATECURSCRIPT: ; d663
+; overload
+ ds 1
+ ds 1
+W_SSANNE2CURSCRIPT: ; d665
+ ds 1
+W_SEAFOAMISLANDS4CURSCRIPT: ; d666
+ ds 1
+W_ROUTE23CURSCRIPT: ; d667
+ ds 1
+W_SEAFOAMISLANDS5CURSCRIPT: ; d668
+ ds 1
+W_ROUTE18GATECURSCRIPT: ; d669
+ ds 1
+
+ ds 161
+
+W_TOWNVISITEDFLAG: ; d70b
+; 2 bytes bit array, 1 means visited
+ ds 2
+
+wSafariSteps: ; d70d
+; starts at 502
+ ds 2
+
+W_FOSSILITEM: ; d70f
+; item given to cinnabar lab
+ ds 1
+
+W_FOSSILMON: ; d710
+; mon that will result from the item
+ ds 1
+
+ ds 2
+
+W_ENEMYMONORTRAINERCLASS: ; d713
+; trainer classes start at $c8
+ ds 1
+
+ ds 1
+
+W_RIVALSTARTER: ; d715
+ ds 1
+
+ ds 1
+
+W_PLAYERSTARTER: ; d717
+ ds 1
+
+ ds 27
+
+
+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
+
+W_GRASSRATE: ; d887
+ ds 1
+
+W_GRASSMONS: ; d888
+ ds 20
+
+wEnemyPartyCount: ; d89c
+ ds 1
+wEnemyPartyMons: ; d89d
+ ds 6
+ ds 1 ; end
+
+; Overload enemy party data
+W_WATERRATE EQU $d8a4
+W_WATERMONS EQU $d8a5
+
+wEnemyMons:
+
+wEnemyMon1: ; d8a4
+wEnemyMon1Species: ; d8a4
+ ds 1
+W_ENEMYMON1HP: ; d8a5
+ ds 2
+
+ 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
+
+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
+ ds 1
+
+ ds 6
+
+W_PLAYTIMEHOURS: ; da40
+ ds 2
+W_PLAYTIMEMINUTES: ; da42
+ ds 2
+W_PLAYTIMESECONDS: ; da44
+ ds 1
+W_PLAYTIMEFRAMES: ; da45
+ ds 1
+
+ ds 1
+
+W_NUMSAFARIBALLS: ; da47
+ ds 1
+
+ ds 56
+
+W_NUMINBOX: ; da80
+; number of mons in current box
+ ds 22
+
+W_BOXMON1DATA: ; da96
+ ds 33
+W_BOXMON2DATA: ; dab7
+ ds 33 * 19
+
+; dd2a
+