aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2025-07-02 21:15:13 -0500
committerdannye <33dannye@gmail.com>2025-07-02 21:15:13 -0500
commitca019eac8fd96559f4d4e712f0b53e95492e5dcb (patch)
tree209a500e3bda6c2109e5acec60448e9e52f8c2af
parentUse more ldpikacry (diff)
parentRequire RGBDS 0.9.3 for its DMG palette specs (#513) (diff)
downloadpokeyellow-ca019eac8fd96559f4d4e712f0b53e95492e5dcb.tar.gz
pokeyellow-ca019eac8fd96559f4d4e712f0b53e95492e5dcb.tar.xz
pokeyellow-ca019eac8fd96559f4d4e712f0b53e95492e5dcb.zip
Merge branch 'master' of https://github.com/pret/pokered
-rw-r--r--.github/workflows/main.yml2
-rw-r--r--.rgbds-version1
-rw-r--r--INSTALL.md20
-rw-r--r--Makefile8
-rw-r--r--audio/engine_1.asm50
-rw-r--r--audio/engine_2.asm54
-rw-r--r--audio/engine_3.asm4
-rw-r--r--audio/engine_4.asm4
-rw-r--r--audio/low_health_alarm.asm2
-rw-r--r--audio/wave_samples.asm2
-rw-r--r--constants/audio_constants.asm8
-rw-r--r--constants/gfx_constants.asm17
-rw-r--r--constants/hardware.inc1065
-rw-r--r--constants/hardware_constants.asm127
-rw-r--r--constants/input_constants.asm20
-rw-r--r--constants/map_data_constants.asm9
-rw-r--r--constants/misc_constants.asm3
-rw-r--r--constants/move_constants.asm2
-rw-r--r--constants/oam_constants.asm16
-rw-r--r--data/battle_anims/frame_blocks.asm676
-rw-r--r--data/sprite_anims/surfing_pikachu_frames.asm28
-rw-r--r--data/sprites/facings.asm38
-rw-r--r--data/tilesets/ledge_tiles.asm16
-rw-r--r--engine/battle/animations.asm20
-rw-r--r--engine/battle/core.asm53
-rw-r--r--engine/battle/effects.asm2
-rw-r--r--engine/battle/ghost_marowak_anim.asm2
-rw-r--r--engine/battle/init_battle.asm4
-rw-r--r--engine/debug/debug_menu.asm114
-rw-r--r--engine/events/black_out.asm2
-rw-r--r--engine/events/cinnabar_lab.asm4
-rw-r--r--engine/events/hidden_objects/bills_house_pc.asm4
-rw-r--r--engine/events/hidden_objects/school_blackboard.asm12
-rw-r--r--engine/events/hidden_objects/vermilion_gym_trash.asm2
-rw-r--r--engine/events/pewter_guys.asm18
-rw-r--r--engine/events/prize_menu.asm4
-rw-r--r--engine/events/vending_machine.asm4
-rw-r--r--engine/gfx/animated_objects.asm10
-rw-r--r--engine/gfx/bg_map_attributes.asm26
-rw-r--r--engine/gfx/palettes.asm10
-rw-r--r--engine/gfx/sprite_oam.asm2
-rw-r--r--engine/items/item_effects.asm8
-rw-r--r--engine/items/town_map.asm26
-rw-r--r--engine/joypad.asm4
-rw-r--r--engine/link/cable_club.asm40
-rw-r--r--engine/link/cable_club_npc.asm6
-rw-r--r--engine/menus/draw_start_menu.asm2
-rw-r--r--engine/menus/league_pc.asm2
-rw-r--r--engine/menus/link_menu.asm10
-rw-r--r--engine/menus/main_menu.asm28
-rw-r--r--engine/menus/naming_screen.asm4
-rw-r--r--engine/menus/options.asm26
-rw-r--r--engine/menus/pc.asm2
-rw-r--r--engine/menus/players_pc.asm4
-rw-r--r--engine/menus/pokedex.asm24
-rw-r--r--engine/menus/save.asm52
-rw-r--r--engine/menus/start_sub_menus.asm8
-rw-r--r--engine/menus/text_box.asm10
-rw-r--r--engine/menus/unused_input.asm6
-rw-r--r--engine/minigame/surfing_pikachu.asm12
-rw-r--r--engine/movie/credits.asm4
-rw-r--r--engine/movie/evolution.asm2
-rw-r--r--engine/movie/hall_of_fame.asm4
-rw-r--r--engine/movie/intro.asm12
-rw-r--r--engine/movie/intro_yellow.asm2
-rw-r--r--engine/movie/oak_speech/clear_save.asm2
-rw-r--r--engine/movie/oak_speech/oak_speech2.asm2
-rw-r--r--engine/movie/splash.asm10
-rw-r--r--engine/movie/title.asm12
-rw-r--r--engine/movie/trade.asm40
-rw-r--r--engine/overworld/auto_movement.asm32
-rw-r--r--engine/overworld/cut.asm8
-rw-r--r--engine/overworld/healing_machine.asm14
-rw-r--r--engine/overworld/ledges.asm4
-rw-r--r--engine/overworld/movement.asm4
-rw-r--r--engine/overworld/pathfinding.asm8
-rw-r--r--engine/overworld/player_animations.asm2
-rw-r--r--engine/overworld/push_boulder.asm10
-rw-r--r--engine/overworld/update_map.asm4
-rw-r--r--engine/pikachu/pikachu_movement.asm2
-rw-r--r--engine/pikachu/pikachu_pcm.asm34
-rw-r--r--engine/pikachu/pikachu_pic_animation.asm2
-rw-r--r--engine/pokemon/bills_pc.asm10
-rw-r--r--engine/pokemon/learn_move.asm4
-rw-r--r--engine/pokemon/status_screen.asm4
-rw-r--r--engine/printer/printer.asm2
-rw-r--r--engine/slots/slot_machine.asm6
-rw-r--r--gfx/overworld/red_fish_back.pngbin114 -> 115 bytes
-rw-r--r--gfx/overworld/red_fish_front.pngbin107 -> 107 bytes
-rw-r--r--gfx/overworld/red_fish_side.pngbin111 -> 113 bytes
-rw-r--r--gfx/pics.asm2
-rw-r--r--home/audio.asm2
-rw-r--r--home/bankswitch2.asm22
-rw-r--r--home/copy.asm4
-rw-r--r--home/fade_audio.asm6
-rw-r--r--home/hidden_objects.asm2
-rw-r--r--home/init.asm12
-rw-r--r--home/item.asm4
-rw-r--r--home/joypad2.asm4
-rw-r--r--home/lcd.asm8
-rw-r--r--home/list_menu.asm18
-rw-r--r--home/load_font.asm6
-rw-r--r--home/names.asm4
-rw-r--r--home/npc_movement.asm4
-rw-r--r--home/overworld.asm34
-rw-r--r--home/pikachu_cries.asm2
-rw-r--r--home/pokemon.asm10
-rw-r--r--home/predef.asm2
-rw-r--r--home/print_text.asm4
-rw-r--r--home/printer.asm2
-rw-r--r--home/serial.asm24
-rw-r--r--home/start.asm2
-rw-r--r--home/start_menu.asm8
-rw-r--r--home/text.asm10
-rw-r--r--home/text_script.asm2
-rw-r--r--home/tilemap.asm8
-rw-r--r--home/trainers.asm6
-rw-r--r--home/uncompress.asm4
-rw-r--r--home/vblank.asm4
-rw-r--r--home/vcopy.asm12
-rw-r--r--home/window.asm8
-rw-r--r--includes.asm3
-rw-r--r--layout.link2
-rw-r--r--macros/asserts.asm2
-rw-r--r--macros/coords.asm6
-rw-r--r--macros/gfx.asm10
-rw-r--r--macros/scripts/maps.asm6
-rw-r--r--ram/vram.asm4
-rw-r--r--ram/wram.asm28
-rw-r--r--rgbdscheck.asm6
-rw-r--r--scripts/AgathasRoom.asm4
-rw-r--r--scripts/BikeShop.asm4
-rw-r--r--scripts/BillsHouse.asm8
-rw-r--r--scripts/BillsHouse_2.asm2
-rw-r--r--scripts/BrunosRoom.asm4
-rw-r--r--scripts/CeladonGym.asm2
-rw-r--r--scripts/CeladonMartRoof.asm4
-rw-r--r--scripts/CeruleanCity.asm6
-rw-r--r--scripts/CeruleanGym.asm2
-rw-r--r--scripts/ChampionsRoom.asm20
-rw-r--r--scripts/CinnabarGym.asm2
-rw-r--r--scripts/CinnabarIsland.asm2
-rw-r--r--scripts/FightingDojo.asm2
-rw-r--r--scripts/FuchsiaGym.asm2
-rw-r--r--scripts/GameCorner.asm2
-rw-r--r--scripts/HallOfFame.asm6
-rw-r--r--scripts/LancesRoom.asm10
-rw-r--r--scripts/LoreleisRoom.asm4
-rw-r--r--scripts/MtMoonB2F.asm28
-rw-r--r--scripts/Museum1F_2.asm2
-rw-r--r--scripts/OaksLab.asm28
-rw-r--r--scripts/PalletTown.asm14
-rw-r--r--scripts/PewterCity.asm2
-rw-r--r--scripts/PewterGym.asm2
-rw-r--r--scripts/PokemonTower2F.asm2
-rw-r--r--scripts/PokemonTower5F.asm2
-rw-r--r--scripts/PokemonTower6F.asm6
-rw-r--r--scripts/PokemonTower7F.asm24
-rw-r--r--scripts/RocketHideoutB2F.asm134
-rw-r--r--scripts/RocketHideoutB3F.asm46
-rw-r--r--scripts/RocketHideoutB4F.asm26
-rw-r--r--scripts/Route16Gate1F.asm6
-rw-r--r--scripts/Route18Gate1F.asm6
-rw-r--r--scripts/Route22.asm6
-rw-r--r--scripts/Route22Gate.asm2
-rw-r--r--scripts/Route23.asm2
-rw-r--r--scripts/Route24.asm4
-rw-r--r--scripts/Route5Gate.asm2
-rw-r--r--scripts/Route6Gate.asm2
-rw-r--r--scripts/Route7Gate.asm2
-rw-r--r--scripts/Route8Gate.asm2
-rw-r--r--scripts/SSAnne2F.asm4
-rw-r--r--scripts/SafariZoneGate.asm16
-rw-r--r--scripts/SafariZoneGate_2.asm4
-rw-r--r--scripts/SaffronGym.asm2
-rw-r--r--scripts/SeafoamIslandsB3F.asm20
-rw-r--r--scripts/SeafoamIslandsB4F.asm14
-rw-r--r--scripts/SilphCo11F.asm28
-rw-r--r--scripts/SilphCo7F.asm4
-rw-r--r--scripts/VermilionCity.asm6
-rw-r--r--scripts/VermilionDock.asm2
-rw-r--r--scripts/VermilionGym.asm2
-rw-r--r--scripts/ViridianCity.asm10
-rw-r--r--scripts/ViridianCity_2.asm2
-rw-r--r--scripts/ViridianGym.asm28
-rw-r--r--scripts/ViridianMart.asm4
186 files changed, 2391 insertions, 1477 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 228cbc79..a016aac7 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@master
with:
path: rgbds
- ref: v0.9.2
+ ref: v0.9.3
repository: gbdev/rgbds
- name: Install rgbds
diff --git a/.rgbds-version b/.rgbds-version
new file mode 100644
index 00000000..965065db
--- /dev/null
+++ b/.rgbds-version
@@ -0,0 +1 @@
+0.9.3
diff --git a/INSTALL.md b/INSTALL.md
index 07b01b58..52bc4270 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho
Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
-Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.9.2**.
+Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.9.3**.
-**Note:** If you already have an installed rgbds older than 0.9.2, you will need to update to 0.9.2. Ignore this if you have never installed rgbds before. If a version newer than 0.9.2 does not work, try downloading 0.9.2.
+**Note:** If you already have an installed rgbds older than 0.9.3, you will need to update to 0.9.3. Ignore this if you have never installed rgbds before. If a version newer than 0.9.3 does not work, try downloading 0.9.3.
Now open the **Cygwin terminal** and enter the following commands.
@@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions.
Open **Terminal** and prepare to enter commands.
-Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.9.2**.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.9.3**.
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
@@ -84,7 +84,7 @@ To install the software required for **pokeyellow**:
sudo apt-get install make gcc git
```
-Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source.
### OpenSUSE
@@ -94,7 +94,7 @@ To install the software required for **pokeyellow**:
sudo zypper install make gcc git
```
-Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source.
### Arch Linux
@@ -104,7 +104,7 @@ To install the software required for **pokeyellow**:
sudo pacman -S make gcc git rgbds
```
-If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source.
+If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source.
### Termux
@@ -120,7 +120,7 @@ To install **rgbds**:
pkg install rgbds
```
-If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source.
+If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source.
### Other distros
@@ -131,7 +131,7 @@ If your distro is not listed here, try to find the required software in its repo
- `git`
- `rgbds`
-If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source.
+If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source.
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
@@ -153,8 +153,8 @@ make
### Build with a local rgbds version
-If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.9.2 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-0.9.2/`. Then specify it when you run `make`:
+If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.9.3 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-0.9.3/`. Then specify it when you run `make`:
```bash
-make RGBDS=rgbds-0.9.2/
+make RGBDS=rgbds-0.9.3/
```
diff --git a/Makefile b/Makefile
index eecc1565..bd6fff9b 100644
--- a/Makefile
+++ b/Makefile
@@ -160,14 +160,14 @@ gfx/surfing_pikachu/surfing_pikachu_3.2bpp: tools/gfx += --trim-whitespace
%.png: ;
%.2bpp: %.png
- $(RGBGFX) $(rgbgfx) -o $@ $<
+ $(RGBGFX) --colors dmg=e4 $(rgbgfx) -o $@ $<
$(if $(tools/gfx),\
- tools/gfx $(tools/gfx) -o $@ $@)
+ tools/gfx $(tools/gfx) -o $@ $@ || $$($(RM) $@ && false))
%.1bpp: %.png
- $(RGBGFX) $(rgbgfx) --depth 1 -o $@ $<
+ $(RGBGFX) --colors dmg=e4 $(rgbgfx) --depth 1 -o $@ $<
$(if $(tools/gfx),\
- tools/gfx $(tools/gfx) --depth 1 -o $@ $@)
+ tools/gfx $(tools/gfx) --depth 1 -o $@ $@ || $$($(RM) $@ && false))
%.pic: %.2bpp
tools/pkmncompress $< $@
diff --git a/audio/engine_1.asm b/audio/engine_1.asm
index fc70c73d..930c085e 100644
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -20,10 +20,10 @@ Audio1_UpdateMusic::
set BIT_MUTE_AUDIO, a
ld [wMuteAudioAndPauseMusic], a
xor a ; disable all channels' output
- ldh [rNR51], a
- ldh [rNR30], a
- ld a, $80
- ldh [rNR30], a
+ ldh [rAUDTERM], a
+ ldh [rAUD3ENA], a
+ ld a, AUD3ENA_ON
+ ldh [rAUD3ENA], a
jr .nextChannel
.applyAffects
call Audio1_ApplyMusicAffects
@@ -191,10 +191,10 @@ Audio1_sound_ret:
cp CHAN7
jr nz, .skipSfxChannel3
; restart hardware channel 3 (wave channel) output
- ld a, $0
- ldh [rNR30], a
- ld a, $80
- ldh [rNR30], a
+ ld a, AUD3ENA_OFF
+ ldh [rAUD3ENA], a
+ ld a, AUD3ENA_ON
+ ldh [rAUD3ENA], a
.skipSfxChannel3
jr nz, .dontDisable
ld a, [wDisableChannelOutputWhenSfxEnds]
@@ -228,9 +228,9 @@ Audio1_sound_ret:
.disableChannelOutput
ld hl, Audio1_HWChannelDisableMasks
add hl, bc
- ldh a, [rNR51]
+ ldh a, [rAUDTERM]
and [hl]
- ldh [rNR51], a
+ ldh [rAUDTERM], a
.afterDisable
ld a, [wChannelSoundIDs + CHAN5]
cp CRY_SFX_START
@@ -250,7 +250,7 @@ Audio1_sound_ret:
ret c
.skipRewind
ld a, [wSavedVolume]
- ldh [rNR50], a
+ ldh [rAUDVOL], a
xor a
ld [wSavedVolume], a
.skipCry
@@ -558,7 +558,7 @@ Audio1_volume:
cp volume_cmd
jr nz, Audio1_execute_music
call Audio1_GetNextMusicByte
- ldh [rNR50], a ; store volume
+ ldh [rAUDVOL], a ; store volume
jp Audio1_sound_ret
Audio1_execute_music:
@@ -648,7 +648,7 @@ Audio1_pitch_sweep:
bit BIT_EXECUTE_MUSIC, [hl]
jr nz, Audio1_note ; no
call Audio1_GetNextMusicByte
- ldh [rNR10], a
+ ldh [rAUD1SWEEP], a
jp Audio1_sound_ret
Audio1_note:
@@ -780,9 +780,9 @@ Audio1_note_pitch:
ld b, 0
ld hl, Audio1_HWChannelDisableMasks
add hl, bc
- ldh a, [rNR51]
+ ldh a, [rAUDTERM]
and [hl]
- ldh [rNR51], a ; disable hardware channel 3's output
+ ldh [rAUDTERM], a ; disable hardware channel 3's output
jr .done
.notChannel3
ld b, REG_VOLUME_ENVELOPE
@@ -855,7 +855,7 @@ Audio1_EnableChannelOutput:
ld b, 0
call Audio1_ApplyMonoStereo
add hl, bc
- ldh a, [rNR51]
+ ldh a, [rAUDTERM]
or [hl] ; set this channel's bits
ld d, a
ld a, c
@@ -877,7 +877,7 @@ Audio1_EnableChannelOutput:
add hl, bc
and [hl]
ld d, a
- ldh a, [rNR51]
+ ldh a, [rAUDTERM]
ld hl, Audio1_HWChannelDisableMasks
add hl, bc
and [hl] ; reset this channel's output bits
@@ -885,7 +885,7 @@ Audio1_EnableChannelOutput:
ld d, a
.skip
ld a, d
- ldh [rNR51], a
+ ldh [rAUDTERM], a
ret
Audio1_ApplyDutyCycleAndSoundLength:
@@ -936,10 +936,10 @@ Audio1_ApplyWavePatternAndFrequency:
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, rWave_0
- ld b, $f
+ ld hl, _AUD3WAVERAM
+ ld b, AUD3WAVE_SIZE - 1
ld a, $0 ; stop hardware channel 3
- ldh [rNR30], a
+ ldh [rAUD3ENA], a
.loop
ld a, [de]
inc de
@@ -948,8 +948,8 @@ Audio1_ApplyWavePatternAndFrequency:
dec b
and a
jr nz, .loop
- ld a, $80 ; start hardware channel 3
- ldh [rNR30], a
+ ld a, AUD3ENA_ON ; start hardware channel 3
+ ldh [rAUD3ENA], a
pop de
.notChannel3
ld a, d
@@ -1546,10 +1546,10 @@ Audio1_PlaySound::
ld a, [wSavedVolume]
and a
jr nz, .done
- ldh a, [rNR50]
+ ldh a, [rAUDVOL]
ld [wSavedVolume], a
ld a, $77
- ldh [rNR50], a ; full volume
+ ldh [rAUDVOL], a ; full volume
.done
ret
diff --git a/audio/engine_2.asm b/audio/engine_2.asm
index 2b5a219c..4d925ed4 100644
--- a/audio/engine_2.asm
+++ b/audio/engine_2.asm
@@ -182,10 +182,10 @@ Audio2_PlaySound::
ld a, [wSavedVolume]
and a
jr nz, .done
- ldh a, [rNR50]
+ ldh a, [rAUDVOL]
ld [wSavedVolume], a
ld a, $77
- ldh [rNR50], a
+ ldh [rAUDVOL], a
.done
ret
@@ -256,17 +256,17 @@ Audio2_InitMusicVariables::
ld a, $ff
ld [wStereoPanning], a
xor a
- ldh [rNR50], a
- ld a, $8
- ldh [rNR10], a
+ ldh [rAUDVOL], a
+ ld a, AUD1SWEEP_DOWN
+ ldh [rAUD1SWEEP], a
ld a, 0
- ldh [rNR51], a
+ ldh [rAUDTERM], a
xor a
- ldh [rNR30], a
- ld a, $80
- ldh [rNR30], a
+ ldh [rAUD3ENA], a
+ ld a, AUD3ENA_ON
+ ldh [rAUD3ENA], a
ld a, $77
- ldh [rNR50], a
+ ldh [rAUDVOL], a
ret
Audio2_InitSFXVariables::
@@ -353,28 +353,28 @@ Audio2_InitSFXVariables::
ld a, e
cp CHAN5
ret nz
- ld a, $8
- ldh [rNR10], a ; sweep off
+ ld a, AUD1SWEEP_DOWN
+ ldh [rAUD1SWEEP], a ; sweep off
ret
Audio2_StopAllAudio::
- ld a, $80
- ldh [rNR52], a ; sound hardware on
- ldh [rNR30], a ; wave playback on
+ ld a, AUDENA_ON
+ ldh [rAUDENA], a ; sound hardware on
+ ldh [rAUD3ENA], a ; wave playback on
xor a
- ldh [rNR51], a ; no sound output
- ldh [rNR32], a ; mute channel 3 (wave channel)
- ld a, $8
- ldh [rNR10], a ; sweep off
- ldh [rNR12], a ; mute channel 1 (pulse channel 1)
- ldh [rNR22], a ; mute channel 2 (pulse channel 2)
- ldh [rNR42], a ; mute channel 4 (noise channel)
- ld a, $40
- ldh [rNR14], a ; counter mode
- ldh [rNR24], a
- ldh [rNR44], a
+ ldh [rAUDTERM], a ; no sound output
+ ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel)
+ ld a, AUD1SWEEP_DOWN
+ ldh [rAUD1SWEEP], a ; sweep off
+ ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1)
+ ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2)
+ ldh [rAUD4ENV], a ; mute channel 4 (noise channel)
+ ld a, AUD1HIGH_LENGTH_ON
+ ldh [rAUD1HIGH], a ; counter mode
+ ldh [rAUD2HIGH], a
+ ldh [rAUD4GO], a
ld a, $77
- ldh [rNR50], a ; full volume
+ ldh [rAUDVOL], a ; full volume
xor a
ld [wUnusedMusicByte], a
ld [wDisableChannelOutputWhenSfxEnds], a
diff --git a/audio/engine_3.asm b/audio/engine_3.asm
index 36de3fff..09ced4c0 100644
--- a/audio/engine_3.asm
+++ b/audio/engine_3.asm
@@ -180,10 +180,10 @@ Audio3_PlaySound::
ld a, [wSavedVolume]
and a
jr nz, .done
- ldh a, [rNR50]
+ ldh a, [rAUDVOL]
ld [wSavedVolume], a
ld a, $77
- ldh [rNR50], a ; full volume
+ ldh [rAUDVOL], a ; full volume
.done
ret
diff --git a/audio/engine_4.asm b/audio/engine_4.asm
index 12d72d08..fb6b966a 100644
--- a/audio/engine_4.asm
+++ b/audio/engine_4.asm
@@ -180,10 +180,10 @@ Audio4_PlaySound::
ld a, [wSavedVolume]
and a
jr nz, .done
- ldh a, [rNR50]
+ ldh a, [rAUDVOL]
ld [wSavedVolume], a
ld a, $77
- ldh [rNR50], a ; full volume
+ ldh [rAUDVOL], a ; full volume
.done
ret
diff --git a/audio/low_health_alarm.asm b/audio/low_health_alarm.asm
index 728f5f65..e14e21cb 100644
--- a/audio/low_health_alarm.asm
+++ b/audio/low_health_alarm.asm
@@ -49,7 +49,7 @@ Music_DoLowHealthAlarm::
;update sound channel 1 to play the alarm, overriding all other sounds.
.playTone
- ld hl, rNR10 ;channel 1 sound register
+ ld hl, rAUD1SWEEP ;channel 1 sound register
ld c, $5
xor a
diff --git a/audio/wave_samples.asm b/audio/wave_samples.asm
index d35c80bd..52d2d0fe 100644
--- a/audio/wave_samples.asm
+++ b/audio/wave_samples.asm
@@ -12,7 +12,7 @@
; these are the definitions for the channel 3 instruments
; each instrument definition is made up of 32 points (nibbles) that form
; the graph of the wave
-; the current instrument is copied to rWave_0--rWave_f
+; the current instrument is copied to _AUD3WAVERAM
.wave0
dn 0, 2, 4, 6, 8, 10, 12, 14, 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index 2932f119..5bc38015 100644
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -32,10 +32,10 @@ DEF NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
DEF NUM_CHANNELS EQU const_value
; HW sound channel register base addresses
-DEF HW_CH1_BASE EQU LOW(rNR10)
-DEF HW_CH2_BASE EQU LOW(rNR21) - 1
-DEF HW_CH3_BASE EQU LOW(rNR30)
-DEF HW_CH4_BASE EQU LOW(rNR41) - 1
+DEF HW_CH1_BASE EQU LOW(rAUD1SWEEP)
+DEF HW_CH2_BASE EQU LOW(rAUD2LEN) - 1
+DEF HW_CH3_BASE EQU LOW(rAUD3ENA)
+DEF HW_CH4_BASE EQU LOW(rAUD4LEN) - 1
; HW sound channel enable bit masks
DEF HW_CH1_ENABLE_MASK EQU %00010001
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 0f2fabd2..3418eee4 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -1,14 +1,4 @@
-DEF TILE_WIDTH EQU 8 ; pixels
-DEF LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
-DEF LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
-
-DEF SCREEN_WIDTH EQU 20
-DEF SCREEN_HEIGHT EQU 18
-DEF SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
-DEF SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
-
-DEF BG_MAP_WIDTH EQU 32 ; tiles
-DEF BG_MAP_HEIGHT EQU 32 ; tiles
+DEF TILE_1BPP_SIZE EQU TILE_SIZE / 2 ; bytes
DEF BLOCK_WIDTH EQU 4 ; tiles
DEF BLOCK_HEIGHT EQU BLOCK_WIDTH ; tiles
@@ -17,7 +7,7 @@ DEF SCREEN_BLOCK_HEIGHT EQU 5 ; blocks
DEF SURROUNDING_WIDTH EQU SCREEN_BLOCK_WIDTH * BLOCK_WIDTH ; tiles
DEF SURROUNDING_HEIGHT EQU SCREEN_BLOCK_HEIGHT * BLOCK_HEIGHT ; tiles
-DEF SPRITEBUFFERSIZE EQU 7 * 7 * LEN_1BPP_TILE
+DEF SPRITEBUFFERSIZE EQU 7 * 7 * TILE_1BPP_SIZE
; DMGPalToCGBPal
DEF CONVERT_BGP EQU 0
@@ -29,9 +19,6 @@ DEF HP_BAR_GREEN EQU 0
DEF HP_BAR_YELLOW EQU 1
DEF HP_BAR_RED EQU 2
-; wShadowOAM
-DEF NUM_SPRITE_OAM_STRUCTS EQU 40
-
; hAutoBGTransferEnabled
DEF TRANSFERTOP EQU 0
DEF TRANSFERMIDDLE EQU 1
diff --git a/constants/hardware.inc b/constants/hardware.inc
new file mode 100644
index 00000000..628b6820
--- /dev/null
+++ b/constants/hardware.inc
@@ -0,0 +1,1065 @@
+;******************************************************************************
+; Game Boy hardware constant definitions
+; https://github.com/gbdev/hardware.inc
+;******************************************************************************
+
+; To the extent possible under law, the authors of this work have
+; waived all copyright and related or neighboring rights to the work.
+; See https://creativecommons.org/publicdomain/zero/1.0/ for details.
+; SPDX-License-Identifier: CC0-1.0
+
+; If this file was already included, don't do it again
+if !def(HARDWARE_INC)
+
+; Check for the minimum supported RGBDS version
+if !def(__RGBDS_MAJOR__) || !def(__RGBDS_MINOR__) || !def(__RGBDS_PATCH__)
+ fail "This version of 'hardware.inc' requires RGBDS version 0.5.0 or later"
+endc
+if __RGBDS_MAJOR__ == 0 && __RGBDS_MINOR__ < 5
+ fail "This version of 'hardware.inc' requires RGBDS version 0.5.0 or later."
+endc
+
+; Define the include guard and the current hardware.inc version
+; (do this after the RGBDS version check since the `def` syntax depends on it)
+def HARDWARE_INC equ 1
+def HARDWARE_INC_VERSION equs "5.1.0"
+
+; Usage: rev_Check_hardware_inc <min_ver>
+; Examples:
+; rev_Check_hardware_inc 1.2.3
+; rev_Check_hardware_inc 1.2 (equivalent to 1.2.0)
+; rev_Check_hardware_inc 1 (equivalent to 1.0.0)
+MACRO rev_Check_hardware_inc
+ if _NARG == 1 ; Actual invocation by the user
+ def hw_inc_cur_ver\@ equs strrpl("{HARDWARE_INC_VERSION}", ".", ",")
+ def hw_inc_min_ver\@ equs strrpl("\1", ".", ",")
+ rev_Check_hardware_inc {hw_inc_cur_ver\@}, {hw_inc_min_ver\@}, 0, 0
+ purge hw_inc_cur_ver\@, hw_inc_min_ver\@
+ else ; Recursive invocation
+ if \1 != \4 || (\2 < \5 || (\2 == \5 && \3 < \6))
+ fail "Version \1.\2.\3 of 'hardware.inc' is incompatible with requested version \4.\5.\6"
+ endc
+ endc
+ENDM
+
+
+;******************************************************************************
+; Memory-mapped registers ($FFxx range)
+;******************************************************************************
+
+; -- JOYP / P1 ($FF00) --------------------------------------------------------
+; Joypad face buttons
+def rJOYP equ $FF00
+
+def B_JOYP_GET_BUTTONS equ 5 ; 0 = reading buttons [r/w]
+def B_JOYP_GET_CTRL_PAD equ 4 ; 0 = reading Control Pad [r/w]
+ def JOYP_GET equ %00_11_0000 ; select which inputs to read from the lower nybble
+ def JOYP_GET_BUTTONS equ %00_01_0000 ; reading A/B/Select/Start buttons
+ def JOYP_GET_CTRL_PAD equ %00_10_0000 ; reading Control Pad directions
+ def JOYP_GET_NONE equ %00_11_0000 ; reading nothing
+
+def B_JOYP_START equ 3 ; 0 = Start is pressed (if reading buttons) [ro]
+def B_JOYP_SELECT equ 2 ; 0 = Select is pressed (if reading buttons) [ro]
+def B_JOYP_B equ 1 ; 0 = B is pressed (if reading buttons) [ro]
+def B_JOYP_A equ 0 ; 0 = A is pressed (if reading buttons) [ro]
+def B_JOYP_DOWN equ 3 ; 0 = Down is pressed (if reading Control Pad) [ro]
+def B_JOYP_UP equ 2 ; 0 = Up is pressed (if reading Control Pad) [ro]
+def B_JOYP_LEFT equ 1 ; 0 = Left is pressed (if reading Control Pad) [ro]
+def B_JOYP_RIGHT equ 0 ; 0 = Right is pressed (if reading Control Pad) [ro]
+ def JOYP_INPUTS equ %0000_1111
+ def JOYP_START equ 1 << B_JOYP_START
+ def JOYP_SELECT equ 1 << B_JOYP_SELECT
+ def JOYP_B equ 1 << B_JOYP_B
+ def JOYP_A equ 1 << B_JOYP_A
+ def JOYP_DOWN equ 1 << B_JOYP_DOWN
+ def JOYP_UP equ 1 << B_JOYP_UP
+ def JOYP_LEFT equ 1 << B_JOYP_LEFT
+ def JOYP_RIGHT equ 1 << B_JOYP_RIGHT
+
+; Combined input byte, with Control Pad in high nybble (conventional order)
+def B_PAD_DOWN equ 7
+def B_PAD_UP equ 6
+def B_PAD_LEFT equ 5
+def B_PAD_RIGHT equ 4
+def B_PAD_START equ 3
+def B_PAD_SELECT equ 2
+def B_PAD_B equ 1
+def B_PAD_A equ 0
+ def PAD_CTRL_PAD equ %1111_0000
+ def PAD_BUTTONS equ %0000_1111
+ def PAD_DOWN equ 1 << B_PAD_DOWN
+ def PAD_UP equ 1 << B_PAD_UP
+ def PAD_LEFT equ 1 << B_PAD_LEFT
+ def PAD_RIGHT equ 1 << B_PAD_RIGHT
+ def PAD_START equ 1 << B_PAD_START
+ def PAD_SELECT equ 1 << B_PAD_SELECT
+ def PAD_B equ 1 << B_PAD_B
+ def PAD_A equ 1 << B_PAD_A
+
+
+; Combined input byte, with Control Pad in low nybble (swapped order)
+def B_PAD_SWAP_START equ 7
+def B_PAD_SWAP_SELECT equ 6
+def B_PAD_SWAP_B equ 5
+def B_PAD_SWAP_A equ 4
+def B_PAD_SWAP_DOWN equ 3
+def B_PAD_SWAP_UP equ 2
+def B_PAD_SWAP_LEFT equ 1
+def B_PAD_SWAP_RIGHT equ 0
+ def PAD_SWAP_CTRL_PAD equ %0000_1111
+ def PAD_SWAP_BUTTONS equ %1111_0000
+ def PAD_SWAP_START equ 1 << B_PAD_SWAP_START
+ def PAD_SWAP_SELECT equ 1 << B_PAD_SWAP_SELECT
+ def PAD_SWAP_B equ 1 << B_PAD_SWAP_B
+ def PAD_SWAP_A equ 1 << B_PAD_SWAP_A
+ def PAD_SWAP_DOWN equ 1 << B_PAD_SWAP_DOWN
+ def PAD_SWAP_UP equ 1 << B_PAD_SWAP_UP
+ def PAD_SWAP_LEFT equ 1 << B_PAD_SWAP_LEFT
+ def PAD_SWAP_RIGHT equ 1 << B_PAD_SWAP_RIGHT
+
+; -- SB ($FF01) ---------------------------------------------------------------
+; Serial transfer data [r/w]
+def rSB equ $FF01
+
+; -- SC ($FF02) ---------------------------------------------------------------
+; Serial transfer control
+def rSC equ $FF02
+
+def B_SC_START equ 7 ; reading 1 = transfer in progress, writing 1 = start transfer [r/w]
+def B_SC_SPEED equ 1 ; (CGB only) 1 = use faster internal clock [r/w]
+def B_SC_SOURCE equ 0 ; 0 = use external clock ("slave"), 1 = use internal clock ("master") [r/w]
+ def SC_START equ 1 << B_SC_START
+ def SC_SPEED equ 1 << B_SC_SPEED
+ def SC_SLOW equ 0 << B_SC_SPEED
+ def SC_FAST equ 1 << B_SC_SPEED
+ def SC_SOURCE equ 1 << B_SC_SOURCE
+ def SC_EXTERNAL equ 0 << B_SC_SOURCE
+ def SC_INTERNAL equ 1 << B_SC_SOURCE
+
+; -- $FF03 is unused ----------------------------------------------------------
+
+; -- DIV ($FF04) --------------------------------------------------------------
+; Divider register [r/w]
+def rDIV equ $FF04
+
+; -- TIMA ($FF05) -------------------------------------------------------------
+; Timer counter [r/w]
+def rTIMA equ $FF05
+
+; -- TMA ($FF06) --------------------------------------------------------------
+; Timer modulo [r/w]
+def rTMA equ $FF06
+
+; -- TAC ($FF07) --------------------------------------------------------------
+; Timer control
+def rTAC equ $FF07
+
+def B_TAC_START equ 2 ; enable incrementing TIMA [r/w]
+ def TAC_STOP equ 0 << B_TAC_START
+ def TAC_START equ 1 << B_TAC_START
+
+def TAC_CLOCK equ %000000_11 ; the frequency at which TIMA increments [r/w]
+ def TAC_4KHZ equ %000000_00 ; every 256 M-cycles = ~4 KHz on DMG
+ def TAC_262KHZ equ %000000_01 ; every 4 M-cycles = ~262 KHz on DMG
+ def TAC_65KHZ equ %000000_10 ; every 16 M-cycles = ~65 KHz on DMG
+ def TAC_16KHZ equ %000000_11 ; every 64 M-cycles = ~16 KHz on DMG
+
+; -- $FF08-$FF0E are unused ---------------------------------------------------
+
+; -- IF ($FF0F) ---------------------------------------------------------------
+; Pending interrupts
+def rIF equ $FF0F
+
+def B_IF_JOYPAD equ 4 ; 1 = joypad interrupt is pending [r/w]
+def B_IF_SERIAL equ 3 ; 1 = serial interrupt is pending [r/w]
+def B_IF_TIMER equ 2 ; 1 = timer interrupt is pending [r/w]
+def B_IF_STAT equ 1 ; 1 = STAT interrupt is pending [r/w]
+def B_IF_VBLANK equ 0 ; 1 = VBlank interrupt is pending [r/w]
+ def IF_JOYPAD equ 1 << B_IF_JOYPAD
+ def IF_SERIAL equ 1 << B_IF_SERIAL
+ def IF_TIMER equ 1 << B_IF_TIMER
+ def IF_STAT equ 1 << B_IF_STAT
+ def IF_VBLANK equ 1 << B_IF_VBLANK
+
+; -- AUD1SWEEP / NR10 ($FF10) -------------------------------------------------
+; Audio channel 1 sweep
+def rAUD1SWEEP equ $FF10
+
+def AUD1SWEEP_TIME equ %0_111_0000 ; how long between sweep iterations
+ ; (in 128 Hz ticks, ~7.8 ms apart) [r/w]
+
+def B_AUD1SWEEP_DIR equ 3 ; sweep direction [r/w]
+ def AUD1SWEEP_DIR equ 1 << B_AUD1SWEEP_DIR
+ def AUD1SWEEP_UP equ 0 << B_AUD1SWEEP_DIR
+ def AUD1SWEEP_DOWN equ 1 << B_AUD1SWEEP_DIR
+
+def AUD1SWEEP_SHIFT equ %00000_111 ; how much the period increases/decreases per iteration [r/w]
+
+; -- AUD1LEN / NR11 ($FF11) ---------------------------------------------------
+; Audio channel 1 length timer and duty cycle
+def rAUD1LEN equ $FF11
+
+def AUD1LEN_DUTY equ %11_000000 ; ratio of time spent high vs. time spent low [r/w]
+ def AUD1LEN_DUTY_12_5 equ %00_000000 ; 12.5%
+ def AUD1LEN_DUTY_25 equ %01_000000 ; 25%
+ def AUD1LEN_DUTY_50 equ %10_000000 ; 50%
+ def AUD1LEN_DUTY_75 equ %11_000000 ; 75%
+
+def AUD1LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo]
+
+; -- AUD1ENV / NR12 ($FF12) ---------------------------------------------------
+; Audio channel 1 volume and envelope
+def rAUD1ENV equ $FF12
+
+def AUD1ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w]
+
+def B_AUD1ENV_DIR equ 3 ; direction of volume envelope [r/w]
+ def AUD1ENV_DIR equ 1 << B_AUD1ENV_DIR
+ def AUD1ENV_DOWN equ 0 << B_AUD1ENV_DIR
+ def AUD1ENV_UP equ 1 << B_AUD1ENV_DIR
+
+def AUD1ENV_PACE equ %00000_111 ; how long between envelope iterations
+ ; (in 64 Hz ticks, ~15.6 ms apart) [r/w]
+
+; -- AUD1LOW / NR13 ($FF13) ---------------------------------------------------
+; Audio channel 1 period (low 8 bits) [r/w]
+def rAUD1LOW equ $FF13
+
+; -- AUD1HIGH / NR14 ($FF14) --------------------------------------------------
+; Audio channel 1 period (high 3 bits) and control
+def rAUD1HIGH equ $FF14
+
+def B_AUD1HIGH_RESTART equ 7 ; 1 = restart the channel [wo]
+def B_AUD1HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w]
+ def AUD1HIGH_RESTART equ 1 << B_AUD1HIGH_RESTART
+ def AUD1HIGH_LENGTH_OFF equ 0 << B_AUD1HIGH_LEN_ENABLE
+ def AUD1HIGH_LENGTH_ON equ 1 << B_AUD1HIGH_LEN_ENABLE
+
+def AUD1HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w]
+
+; -- $FF15 is unused ----------------------------------------------------------
+
+; -- AUD2LEN / NR21 ($FF16) ---------------------------------------------------
+; Audio channel 2 length timer and duty cycle
+def rAUD2LEN equ $FF16
+
+def AUD2LEN_DUTY equ %11_000000 ; ratio of time spent high vs. time spent low [r/w]
+ def AUD2LEN_DUTY_12_5 equ %00_000000 ; 12.5%
+ def AUD2LEN_DUTY_25 equ %01_000000 ; 25%
+ def AUD2LEN_DUTY_50 equ %10_000000 ; 50%
+ def AUD2LEN_DUTY_75 equ %11_000000 ; 75%
+
+def AUD2LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo]
+
+; -- AUD2ENV / NR22 ($FF17) ---------------------------------------------------
+; Audio channel 2 volume and envelope
+def rAUD2ENV equ $FF17
+
+def AUD2ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w]
+
+def B_AUD2ENV_DIR equ 3 ; direction of volume envelope [r/w]
+ def AUD2ENV_DIR equ 1 << B_AUD2ENV_DIR
+ def AUD2ENV_DOWN equ 0 << B_AUD2ENV_DIR
+ def AUD2ENV_UP equ 1 << B_AUD2ENV_DIR
+
+def AUD2ENV_PACE equ %00000_111 ; how long between envelope iterations
+ ; (in 64 Hz ticks, ~15.6 ms apart) [r/w]
+
+; -- AUD2LOW / NR23 ($FF18) ---------------------------------------------------
+; Audio channel 2 period (low 8 bits) [r/w]
+def rAUD2LOW equ $FF18
+
+; -- AUD2HIGH / NR24 ($FF19) --------------------------------------------------
+; Audio channel 2 period (high 3 bits) and control
+def rAUD2HIGH equ $FF19
+
+def B_AUD2HIGH_RESTART equ 7 ; 1 = restart the channel [wo]
+def B_AUD2HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w]
+ def AUD2HIGH_RESTART equ 1 << B_AUD2HIGH_RESTART
+ def AUD2HIGH_LENGTH_OFF equ 0 << B_AUD2HIGH_LEN_ENABLE
+ def AUD2HIGH_LENGTH_ON equ 1 << B_AUD2HIGH_LEN_ENABLE
+
+def AUD2HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w]
+
+; -- AUD3ENA / NR30 ($FF1A) ---------------------------------------------------
+; Audio channel 3 enable
+def rAUD3ENA equ $FF1A
+
+def B_AUD3ENA_ENABLE equ 7 ; 1 = channel is active [r/w]
+ def AUD3ENA_OFF equ 0 << B_AUD3ENA_ENABLE
+ def AUD3ENA_ON equ 1 << B_AUD3ENA_ENABLE
+
+; -- AUD3LEN / NR31 ($FF1B) ---------------------------------------------------
+; Audio channel 3 length timer [wo]
+def rAUD3LEN equ $FF1B
+
+; -- AUD3LEVEL / NR32 ($FF1C) -------------------------------------------------
+; Audio channel 3 volume
+def rAUD3LEVEL equ $FF1C
+
+def AUD3LEVEL_VOLUME equ %0_11_00000 ; volume level [r/w]
+ def AUD3LEVEL_MUTE equ %0_00_00000 ; 0% (muted)
+ def AUD3LEVEL_100 equ %0_01_00000 ; 100%
+ def AUD3LEVEL_50 equ %0_10_00000 ; 50%
+ def AUD3LEVEL_25 equ %0_11_00000 ; 25%
+
+; -- AUD3LOW / NR33 ($FF1D) ---------------------------------------------------
+; Audio channel 3 period (low 8 bits) [r/w]
+def rAUD3LOW equ $FF1D
+
+; -- AUD3HIGH / NR34 ($FF1E) --------------------------------------------------
+; Audio channel 3 period (high 3 bits) and control
+def rAUD3HIGH equ $FF1E
+
+def B_AUD3HIGH_RESTART equ 7 ; 1 = restart the channel [wo]
+def B_AUD3HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w]
+ def AUD3HIGH_RESTART equ 1 << B_AUD3HIGH_RESTART
+ def AUD3HIGH_LENGTH_OFF equ 0 << B_AUD3HIGH_LEN_ENABLE
+ def AUD3HIGH_LENGTH_ON equ 1 << B_AUD3HIGH_LEN_ENABLE
+
+def AUD3HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w]
+
+; -- $FF1F is unused ----------------------------------------------------------
+
+; -- AUD4LEN / NR41 ($FF20) ---------------------------------------------------
+; Audio channel 4 length timer
+def rAUD4LEN equ $FF20
+
+def AUD4LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo]
+
+; -- AUD4ENV / NR42 ($FF21) ---------------------------------------------------
+; Audio channel 4 volume and envelope
+def rAUD4ENV equ $FF21
+
+def AUD4ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w]
+
+def B_AUD4ENV_DIR equ 3 ; direction of volume envelope [r/w]
+ def AUD4ENV_DIR equ 1 << B_AUD4ENV_DIR
+ def AUD4ENV_DOWN equ 0 << B_AUD4ENV_DIR
+ def AUD4ENV_UP equ 1 << B_AUD4ENV_DIR
+
+def AUD4ENV_PACE equ %00000_111 ; how long between envelope iterations
+ ; (in 64 Hz ticks, ~15.6 ms apart) [r/w]
+
+; -- AUD4POLY / NR43 ($FF22) --------------------------------------------------
+; Audio channel 4 period and randomness
+def rAUD4POLY equ $FF22
+
+def AUD4POLY_SHIFT equ %1111_0000 ; coarse control of the channel's period [r/w]
+
+def B_AUD4POLY_WIDTH equ 3 ; controls the noise generator (LFSR)'s step width [r/w]
+ def AUD4POLY_15STEP equ 0 << B_AUD4POLY_WIDTH
+ def AUD4POLY_7STEP equ 1 << B_AUD4POLY_WIDTH
+
+def AUD4POLY_DIV equ %00000_111 ; fine control of the channel's period [r/w]
+
+; -- AUD4GO / NR44 ($FF23) ----------------------------------------------------
+; Audio channel 4 control
+def rAUD4GO equ $FF23
+
+def B_AUD4GO_RESTART equ 7 ; 1 = restart the channel [wo]
+def B_AUD4GO_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w]
+ def AUD4GO_RESTART equ 1 << B_AUD4GO_RESTART
+ def AUD4GO_LENGTH_OFF equ 0 << B_AUD4GO_LEN_ENABLE
+ def AUD4GO_LENGTH_ON equ 1 << B_AUD4GO_LEN_ENABLE
+
+; -- AUDVOL / NR50 ($FF24) ----------------------------------------------------
+; Audio master volume and VIN mixer
+def rAUDVOL equ $FF24
+
+def B_AUDVOL_VIN_LEFT equ 7 ; 1 = output VIN to left ear (SO2, speaker 2) [r/w]
+ def AUDVOL_VIN_LEFT equ 1 << B_AUDVOL_VIN_LEFT
+
+def AUDVOL_LEFT equ %0_111_0000 ; 0 = barely audible, 7 = full volume [r/w]
+
+def B_AUDVOL_VIN_RIGHT equ 3 ; 1 = output VIN to right ear (SO1, speaker 1) [r/w]
+ def AUDVOL_VIN_RIGHT equ 1 << B_AUDVOL_VIN_RIGHT
+
+def AUDVOL_RIGHT equ %00000_111 ; 0 = barely audible, 7 = full volume [r/w]
+
+; -- AUDTERM / NR51 ($FF25) ---------------------------------------------------
+; Audio channel mixer
+def rAUDTERM equ $FF25
+
+def B_AUDTERM_4_LEFT equ 7 ; 1 = output channel 4 to left ear [r/w]
+def B_AUDTERM_3_LEFT equ 6 ; 1 = output channel 3 to left ear [r/w]
+def B_AUDTERM_2_LEFT equ 5 ; 1 = output channel 2 to left ear [r/w]
+def B_AUDTERM_1_LEFT equ 4 ; 1 = output channel 1 to left ear [r/w]
+def B_AUDTERM_4_RIGHT equ 3 ; 1 = output channel 4 to right ear [r/w]
+def B_AUDTERM_3_RIGHT equ 2 ; 1 = output channel 3 to right ear [r/w]
+def B_AUDTERM_2_RIGHT equ 1 ; 1 = output channel 2 to right ear [r/w]
+def B_AUDTERM_1_RIGHT equ 0 ; 1 = output channel 1 to right ear [r/w]
+ def AUDTERM_4_LEFT equ 1 << B_AUDTERM_4_LEFT
+ def AUDTERM_3_LEFT equ 1 << B_AUDTERM_3_LEFT
+ def AUDTERM_2_LEFT equ 1 << B_AUDTERM_2_LEFT
+ def AUDTERM_1_LEFT equ 1 << B_AUDTERM_1_LEFT
+ def AUDTERM_4_RIGHT equ 1 << B_AUDTERM_4_RIGHT
+ def AUDTERM_3_RIGHT equ 1 << B_AUDTERM_3_RIGHT
+ def AUDTERM_2_RIGHT equ 1 << B_AUDTERM_2_RIGHT
+ def AUDTERM_1_RIGHT equ 1 << B_AUDTERM_1_RIGHT
+
+; -- AUDENA / NR52 ($FF26) ----------------------------------------------------
+; Audio master enable
+def rAUDENA equ $FF26
+
+def B_AUDENA_ENABLE equ 7 ; 0 = disable the APU (resets all audio registers to 0!) [r/w]
+def B_AUDENA_ENABLE_CH4 equ 3 ; 1 = channel 4 is running [ro]
+def B_AUDENA_ENABLE_CH3 equ 2 ; 1 = channel 3 is running [ro]
+def B_AUDENA_ENABLE_CH2 equ 1 ; 1 = channel 2 is running [ro]
+def B_AUDENA_ENABLE_CH1 equ 0 ; 1 = channel 1 is running [ro]
+ def AUDENA_OFF equ 0 << B_AUDENA_ENABLE
+ def AUDENA_ON equ 1 << B_AUDENA_ENABLE
+ def AUDENA_CH4_OFF equ 0 << B_AUDENA_ENABLE_CH4
+ def AUDENA_CH4_ON equ 1 << B_AUDENA_ENABLE_CH4
+ def AUDENA_CH3_OFF equ 0 << B_AUDENA_ENABLE_CH3
+ def AUDENA_CH3_ON equ 1 << B_AUDENA_ENABLE_CH3
+ def AUDENA_CH2_OFF equ 0 << B_AUDENA_ENABLE_CH2
+ def AUDENA_CH2_ON equ 1 << B_AUDENA_ENABLE_CH2
+ def AUDENA_CH1_OFF equ 0 << B_AUDENA_ENABLE_CH1
+ def AUDENA_CH1_ON equ 1 << B_AUDENA_ENABLE_CH1
+
+; -- $FF27-$FF2F are unused ---------------------------------------------------
+
+; -- AUD3WAVE ($FF30-$FF3F) ---------------------------------------------------
+; Audio channel 3 wave pattern RAM [r/w]
+def _AUD3WAVERAM equ $FF30 ; $FF30-$FF3F
+
+def rAUD3WAVE_0 equ $FF30
+def rAUD3WAVE_1 equ $FF31
+def rAUD3WAVE_2 equ $FF32
+def rAUD3WAVE_3 equ $FF33
+def rAUD3WAVE_4 equ $FF34
+def rAUD3WAVE_5 equ $FF35
+def rAUD3WAVE_6 equ $FF36
+def rAUD3WAVE_7 equ $FF37
+def rAUD3WAVE_8 equ $FF38
+def rAUD3WAVE_9 equ $FF39
+def rAUD3WAVE_A equ $FF3A
+def rAUD3WAVE_B equ $FF3B
+def rAUD3WAVE_C equ $FF3C
+def rAUD3WAVE_D equ $FF3D
+def rAUD3WAVE_E equ $FF3E
+def rAUD3WAVE_F equ $FF3F
+
+def AUD3WAVE_SIZE equ 16
+
+; -- LCDC ($FF40) -------------------------------------------------------------
+; PPU graphics control
+def rLCDC equ $FF40
+
+def B_LCDC_ENABLE equ 7 ; whether the PPU (and LCD) are turned on [r/w]
+def B_LCDC_WIN_MAP equ 6 ; which tilemap the Window reads from [r/w]
+def B_LCDC_WINDOW equ 5 ; whether the Window is enabled [r/w]
+def B_LCDC_BLOCKS equ 4 ; which "tile blocks" the BG and Window use [r/w]
+def B_LCDC_BG_MAP equ 3 ; which tilemap the BG reads from [r/w]
+def B_LCDC_OBJ_SIZE equ 2 ; how many pixels tall each OBJ is [r/w]
+def B_LCDC_OBJS equ 1 ; whether OBJs are enabled [r/w]
+def B_LCDC_BG equ 0 ; (DMG only) whether the BG is enabled [r/w]
+def B_LCDC_PRIO equ 0 ; (CGB only) whether OBJ priority bits are enabled [r/w]
+ def LCDC_ENABLE equ 1 << B_LCDC_ENABLE
+ def LCDC_OFF equ 0 << B_LCDC_ENABLE
+ def LCDC_ON equ 1 << B_LCDC_ENABLE
+ def LCDC_WIN_MAP equ 1 << B_LCDC_WIN_MAP
+ def LCDC_WIN_9800 equ 0 << B_LCDC_WIN_MAP
+ def LCDC_WIN_9C00 equ 1 << B_LCDC_WIN_MAP
+ def LCDC_WINDOW equ 1 << B_LCDC_WINDOW
+ def LCDC_WIN_OFF equ 0 << B_LCDC_WINDOW
+ def LCDC_WIN_ON equ 1 << B_LCDC_WINDOW
+ def LCDC_BLOCKS equ 1 << B_LCDC_BLOCKS
+ def LCDC_BLOCK21 equ 0 << B_LCDC_BLOCKS
+ def LCDC_BLOCK01 equ 1 << B_LCDC_BLOCKS
+ def LCDC_BG_MAP equ 1 << B_LCDC_BG_MAP
+ def LCDC_BG_9800 equ 0 << B_LCDC_BG_MAP
+ def LCDC_BG_9C00 equ 1 << B_LCDC_BG_MAP
+ def LCDC_OBJ_SIZE equ 1 << B_LCDC_OBJ_SIZE
+ def LCDC_OBJ_8 equ 0 << B_LCDC_OBJ_SIZE
+ def LCDC_OBJ_16 equ 1 << B_LCDC_OBJ_SIZE
+ def LCDC_OBJS equ 1 << B_LCDC_OBJS
+ def LCDC_OBJ_OFF equ 0 << B_LCDC_OBJS
+ def LCDC_OBJ_ON equ 1 << B_LCDC_OBJS
+ def LCDC_BG equ 1 << B_LCDC_BG
+ def LCDC_BG_OFF equ 0 << B_LCDC_BG
+ def LCDC_BG_ON equ 1 << B_LCDC_BG
+ def LCDC_PRIO equ 1 << B_LCDC_PRIO
+ def LCDC_PRIO_OFF equ 0 << B_LCDC_PRIO
+ def LCDC_PRIO_ON equ 1 << B_LCDC_PRIO
+
+; -- STAT ($FF41) -------------------------------------------------------------
+; Graphics status and interrupt control
+def rSTAT equ $FF41
+
+def B_STAT_LYC equ 6 ; 1 = LY match triggers the STAT interrupt [r/w]
+def B_STAT_MODE_2 equ 5 ; 1 = OAM Scan triggers the PPU interrupt [r/w]
+def B_STAT_MODE_1 equ 4 ; 1 = VBlank triggers the PPU interrupt [r/w]
+def B_STAT_MODE_0 equ 3 ; 1 = HBlank triggers the PPU interrupt [r/w]
+def B_STAT_LYCF equ 2 ; 1 = LY is currently equal to LYC [ro]
+def B_STAT_BUSY equ 1 ; 1 = the PPU is currently accessing VRAM [ro]
+ def STAT_LYC equ 1 << B_STAT_LYC
+ def STAT_MODE_2 equ 1 << B_STAT_MODE_2
+ def STAT_MODE_1 equ 1 << B_STAT_MODE_1
+ def STAT_MODE_0 equ 1 << B_STAT_MODE_0
+ def STAT_LYCF equ 1 << B_STAT_LYCF
+ def STAT_BUSY equ 1 << B_STAT_BUSY
+
+def STAT_MODE equ %000000_11 ; PPU's current status [ro]
+ def STAT_HBLANK equ %000000_00 ; waiting after a line's rendering (HBlank)
+ def STAT_VBLANK equ %000000_01 ; waiting between frames (VBlank)
+ def STAT_OAM equ %000000_10 ; checking which OBJs will be rendered on this line (OAM scan)
+ def STAT_LCD equ %000000_11 ; pushing pixels to the LCD
+
+; -- SCY ($FF42) --------------------------------------------------------------
+; Background Y scroll offset (in pixels) [r/w]
+def rSCY equ $FF42
+
+; -- SCX ($FF43) --------------------------------------------------------------
+; Background X scroll offset (in pixels) [r/w]
+def rSCX equ $FF43
+
+; -- LY ($FF44) ---------------------------------------------------------------
+; Y coordinate of the line currently processed by the PPU (0-153) [ro]
+def rLY equ $FF44
+
+def LY_VBLANK equ 144 ; 144-153 is the VBlank period
+
+; -- LYC ($FF45) --------------------------------------------------------------
+; Value that LY is constantly compared to [r/w]
+def rLYC equ $FF45
+
+; -- DMA ($FF46) --------------------------------------------------------------
+; OAM DMA start address (high 8 bits) and start [wo]
+def rDMA equ $FF46
+
+; -- BGP ($FF47) --------------------------------------------------------------
+; (DMG only) Background color mapping [r/w]
+def rBGP equ $FF47
+
+def BGP_SGB_TRANSFER equ %11_10_01_00 ; set BGP to this value before SGB VRAM transfer
+
+; -- OBP0 ($FF48) -------------------------------------------------------------
+; (DMG only) OBJ color mapping #0 [r/w]
+def rOBP0 equ $FF48
+
+; -- OBP1 ($FF49) -------------------------------------------------------------
+; (DMG only) OBJ color mapping #1 [r/w]
+def rOBP1 equ $FF49
+
+; -- WY ($FF4A) ---------------------------------------------------------------
+; Y coordinate of the Window's top-left pixel (0-143) [r/w]
+def rWY equ $FF4A
+
+; -- WX ($FF4B) ---------------------------------------------------------------
+; X coordinate of the Window's top-left pixel, plus 7 (7-166) [r/w]
+def rWX equ $FF4B
+
+def WX_OFS equ 7 ; subtract this to get the actual Window Y coordinate
+
+; -- SYS / KEY0 ($FF4C) -------------------------------------------------------
+; (CGB boot ROM only) CPU mode select
+def rSYS equ $FF4C
+
+; This is known as the "CPU mode register" in Fig. 11 of this patent:
+; https://patents.google.com/patent/US6322447B1/en?oq=US6322447bi
+; "OBJ priority mode designating register" in the same patent
+; Credit to @mattcurrie for this finding!
+
+def SYS_MODE equ %0000_11_00 ; current system mode [r/w]
+ def SYS_CGB equ %0000_00_00 ; CGB mode
+ def SYS_DMG equ %0000_01_00 ; DMG compatibility mode
+ def SYS_PGB1 equ %0000_10_00 ; LCD is driven externally, CPU is stopped
+ def SYS_PGB2 equ %0000_11_00 ; LCD is driven externally, CPU is running
+
+; -- SPD / KEY1 ($FF4D) -------------------------------------------------------
+; (CGB only) Double-speed mode control
+def rSPD equ $FF4D
+
+def B_SPD_DOUBLE equ 7 ; current clock speed [ro]
+def B_SPD_PREPARE equ 0 ; 1 = next `stop` instruction will switch clock speeds [r/w]
+ def SPD_SINGLE equ 0 << B_SPD_DOUBLE
+ def SPD_DOUBLE equ 1 << B_SPD_DOUBLE
+ def SPD_PREPARE equ 1 << B_SPD_PREPARE
+
+; -- $FF4E is unused ----------------------------------------------------------
+
+; -- VBK ($FF4F) --------------------------------------------------------------
+; (CGB only) VRAM bank number (0 or 1)
+def rVBK equ $FF4F
+
+def VBK_BANK equ %0000000_1 ; mapped VRAM bank [r/w]
+
+; -- BANK ($FF50) -------------------------------------------------------------
+; (boot ROM only) Boot ROM mapping control
+def rBANK equ $FF50
+
+def B_BANK_ON equ 0 ; whether the boot ROM is mapped [wo]
+ def BANK_ON equ 0 << B_BANK_ON
+ def BANK_OFF equ 1 << B_BANK_ON
+
+; -- VDMA_SRC_HIGH / HDMA1 ($FF51) --------------------------------------------
+; (CGB only) VRAM DMA source address (high 8 bits) [wo]
+def rVDMA_SRC_HIGH equ $FF51
+
+; -- VDMA_SRC_LOW / HDMA2 ($FF52) ---------------------------------------------
+; (CGB only) VRAM DMA source address (low 8 bits) [wo]
+def rVDMA_SRC_LOW equ $FF52
+
+; -- VDMA_DEST_HIGH / HDMA3 ($FF53) -------------------------------------------
+; (CGB only) VRAM DMA destination address (high 8 bits) [wo]
+def rVDMA_DEST_HIGH equ $FF53
+
+; -- VDMA_DEST_LOW / HDMA3 ($FF54) --------------------------------------------
+; (CGB only) VRAM DMA destination address (low 8 bits) [wo]
+def rVDMA_DEST_LOW equ $FF54
+
+; -- VDMA_LEN / HDMA5 ($FF55) -------------------------------------------------
+; (CGB only) VRAM DMA length, mode, and start
+def rVDMA_LEN equ $FF55
+
+def B_VDMA_LEN_MODE equ 7 ; on write: VRAM DMA mode [wo]
+ def VDMA_LEN_MODE equ 1 << B_VDMA_LEN_MODE
+ def VDMA_LEN_MODE_GENERAL equ 0 << B_VDMA_LEN_MODE ; GDMA (general-purpose)
+ def VDMA_LEN_MODE_HBLANK equ 1 << B_VDMA_LEN_MODE ; HDMA (HBlank)
+
+def B_VDMA_LEN_BUSY equ 7 ; on read: is a VRAM DMA active?
+ def VDMA_LEN_BUSY equ 1 << B_VDMA_LEN_BUSY
+ def VDMA_LEN_NO equ 0 << B_VDMA_LEN_BUSY
+ def VDMA_LEN_YES equ 1 << B_VDMA_LEN_BUSY
+
+def VDMA_LEN_SIZE equ %0_1111111 ; how many 16-byte blocks (minus 1) to transfer [r/w]
+
+; -- RP ($FF56) ---------------------------------------------------------------
+; (CGB only) Infrared communications port
+def rRP equ $FF56
+
+def RP_READ equ %11_000000 ; whether the IR read is enabled [r/w]
+ def RP_DISABLE equ %00_000000
+ def RP_ENABLE equ %11_000000
+
+def B_RP_DATA_IN equ 1 ; 0 = IR light is being received [ro]
+def B_RP_LED_ON equ 0 ; 1 = IR light is being sent [r/w]
+ def RP_DATA_IN equ 1 << B_RP_DATA_IN
+ def RP_LED_ON equ 1 << B_RP_LED_ON
+ def RP_WRITE_LOW equ 0 << B_RP_LED_ON
+ def RP_WRITE_HIGH equ 1 << B_RP_LED_ON
+
+; -- $FF57-$FF67 are unused ---------------------------------------------------
+
+; -- BGPI / BCPS ($FF68) ------------------------------------------------------
+; (CGB only) Background palette I/O index
+def rBGPI equ $FF68
+
+def B_BGPI_AUTOINC equ 7 ; whether the index field is incremented after each write to BCPD [r/w]
+ def BGPI_AUTOINC equ 1 << B_BGPI_AUTOINC
+
+def BGPI_INDEX equ %00_111111 ; the index within Palette RAM accessed via BCPD [r/w]
+
+; -- BGPD / BCPD ($FF69) ------------------------------------------------------
+; (CGB only) Background palette I/O access [r/w]
+def rBGPD equ $FF69
+
+; -- OBPI / OCPS ($FF6A) ------------------------------------------------------
+; (CGB only) OBJ palette I/O index
+def rOBPI equ $FF6A
+
+def B_OBPI_AUTOINC equ 7 ; whether the index field is incremented after each write to OBPD [r/w]
+ def OBPI_AUTOINC equ 1 << B_OBPI_AUTOINC
+
+def OBPI_INDEX equ %00_111111 ; the index within Palette RAM accessed via OBPD [r/w]
+
+; -- OBPD / OCPD ($FF6B) ------------------------------------------------------
+; (CGB only) OBJ palette I/O access [r/w]
+def rOBPD equ $FF6B
+
+; -- OPRI ($FF6C) -------------------------------------------------------------
+; (CGB boot ROM only) OBJ draw priority mode
+def rOPRI equ $FF6C
+
+def B_OPRI_PRIORITY equ 0 ; which drawing priority is used for OBJs [r/w]
+ def OPRI_PRIORITY equ 1 << B_OPRI_PRIORITY
+ def OPRI_OAM equ 0 << B_OPRI_PRIORITY ; CGB mode default: earliest OBJ in OAM wins
+ def OPRI_COORD equ 1 << B_OPRI_PRIORITY ; DMG mode default: leftmost OBJ wins
+
+; -- $FF6D-$FF6F are unused ---------------------------------------------------
+
+; -- WBK / SVBK ($FF70) -------------------------------------------------------
+; (CGB only) WRAM bank number
+def rWBK equ $FF70
+
+def WBK_BANK equ %00000_111 ; mapped WRAM bank (0-7) [r/w]
+
+; -- $FF71-$FF75 are unused ---------------------------------------------------
+
+; -- PCM12 ($FF76) ------------------------------------------------------------
+; Audio channels 1 and 2 output
+def rPCM12 equ $FF76
+
+def PCM12_CH2 equ %1111_0000 ; audio channel 2 output [ro]
+def PCM12_CH1 equ %0000_1111 ; audio channel 1 output [ro]
+
+; -- PCM34 ($FF77) ------------------------------------------------------------
+; Audio channels 3 and 4 output
+def rPCM34 equ $FF77
+
+def PCM34_CH4 equ %1111_0000 ; audio channel 4 output [ro]
+def PCM34_CH3 equ %0000_1111 ; audio channel 3 output [ro]
+
+; -- $FF78-$FF7F are unused ---------------------------------------------------
+
+; -- IE ($FFFF) ---------------------------------------------------------------
+; Interrupt enable
+def rIE equ $FFFF
+
+def B_IE_JOYPAD equ 4 ; 1 = joypad interrupt is enabled [r/w]
+def B_IE_SERIAL equ 3 ; 1 = serial interrupt is enabled [r/w]
+def B_IE_TIMER equ 2 ; 1 = timer interrupt is enabled [r/w]
+def B_IE_STAT equ 1 ; 1 = STAT interrupt is enabled [r/w]
+def B_IE_VBLANK equ 0 ; 1 = VBlank interrupt is enabled [r/w]
+ def IE_JOYPAD equ 1 << B_IE_JOYPAD
+ def IE_SERIAL equ 1 << B_IE_SERIAL
+ def IE_TIMER equ 1 << B_IE_TIMER
+ def IE_STAT equ 1 << B_IE_STAT
+ def IE_VBLANK equ 1 << B_IE_VBLANK
+
+
+;******************************************************************************
+; Cartridge registers (MBC)
+;******************************************************************************
+
+; Note that these "registers" are each actually accessible at an entire address range;
+; however, one address for each of these ranges is considered the "canonical" one, and
+; these addresses are what's provided here.
+
+
+; ** Common to most MBCs ******************************************************
+
+; -- RAMG ($0000-$1FFF) -------------------------------------------------------
+; Whether SRAM can be accessed [wo]
+def rRAMG equ $0000
+
+; Common values (not for HuC1 or HuC-3)
+def RAMG_SRAM_DISABLE equ $00
+def RAMG_SRAM_ENABLE equ $0A ; some MBCs accept any value whose low nybble is $A
+
+; (HuC-3 only) switch SRAM to map cartridge RAM, RTC, or IR
+def RAMG_CART_RAM_RO equ $00 ; select cartridge RAM [ro]
+def RAMG_CART_RAM equ $0A ; select cartridge RAM [r/w]
+def RAMG_RTC_IN equ $0B ; select RTC command/argument [wo]
+ def RAMG_RTC_IN_CMD equ %0_111_0000 ; command
+ def RAMG_RTC_IN_ARG equ %0_000_1111 ; argument
+def RAMG_RTC_OUT equ $0C ; select RTC command/response [ro]
+ def RAMG_RTC_OUT_CMD equ %0_111_0000 ; command
+ def RAMG_RTC_OUT_RESULT equ %0_000_1111 ; result
+def RAMG_RTC_SEMAPHORE equ $0D ; select RTC semaphore [r/w]
+def RAMG_IR equ $0E ; (HuC1 and HuC-3 only) select IR [r/w]
+
+; -- ROMB ($2000-$3FFF) -------------------------------------------------------
+; ROM bank number (not for MBC5 or MBC6) [wo]
+def rROMB equ $2000
+
+; -- RAMB ($4000-$5FFF) -------------------------------------------------------
+; SRAM bank number (not for MBC2, MBC6, or MBC7) [wo]
+def rRAMB equ $4000
+
+; (MBC3 only) Special RAM bank numbers that actually map values into RTCREG
+def RAMB_RTC_S equ $08 ; seconds counter (0-59)
+def RAMB_RTC_M equ $09 ; minutes counter (0-59)
+def RAMB_RTC_H equ $0A ; hours counter (0-23)
+def RAMB_RTC_DL equ $0B ; days counter, low byte (0-255)
+def RAMB_RTC_DH equ $0C ; days counter, high bit and other flags
+ def B_RAMB_RTC_DH_CARRY equ 7 ; 1 = days counter overflowed [wo]
+ def B_RAMB_RTC_DH_HALT equ 6 ; 0 = run timer, 1 = stop timer [wo]
+ def B_RAMB_RTC_DH_HIGH equ 0 ; days counter, high bit (bit 8) [wo]
+ def RAMB_RTC_DH_CARRY equ 1 << B_RAMB_RTC_DH_CARRY
+ def RAMB_RTC_DH_HALT equ 1 << B_RAMB_RTC_DH_HALT
+ def RAMB_RTC_DH_HIGH equ 1 << B_RAMB_RTC_DH_HIGH
+
+def B_RAMB_RUMBLE equ 3 ; (MBC5 and MBC7 only) enable the rumble motor (if any)
+ def RAMB_RUMBLE equ 1 << B_RAMB_RUMBLE
+ def RAMB_RUMBLE_OFF equ 0 << B_RAMB_RUMBLE
+ def RAMB_RUMBLE_ON equ 1 << B_RAMB_RUMBLE
+
+
+; ** MBC1 and MMM01 only ******************************************************
+
+; -- BMODE ($6000-$7FFF) ------------------------------------------------------
+; Banking mode select [wo]
+def rBMODE equ $6000
+
+def BMODE_SIMPLE equ $00 ; locks ROMB and RAMB to bank 0
+def BMODE_ADVANCED equ $01 ; allows bank-switching with RAMB
+
+
+; ** MBC2 only ****************************************************************
+
+; -- ROM2B ($0000-$3FFF with bit 8 set) ---------------------------------------
+; ROM bank number [wo]
+def rROM2B equ $2100
+
+
+; ** MBC3 only ****************************************************************
+
+; -- RTCLATCH ($6000-$7FFF) ---------------------------------------------------
+; RTC latch clock data [wo]
+def rRTCLATCH equ $6000
+
+; Write $00 then $01 to latch the current time into RTCREG
+def RTCLATCH_START equ $00
+def RTCLATCH_FINISH equ $01
+
+; -- RTCREG ($A000-$BFFF) -----------------------------------------------------
+; RTC register [r/w]
+def rRTCREG equ $A000
+
+
+; ** MBC5 only ****************************************************************
+
+; -- ROMB0 ($2000-$3FFF) ------------------------------------------------------
+; ROM bank number low byte (bits 0-7) [wo]
+def rROMB0 equ $2000
+
+; -- ROMB1 ($3000-$3FFF) ------------------------------------------------------
+; ROM bank number high bit (bit 8) [wo]
+def rROMB1 equ $3000
+
+
+; ** MBC6 only ****************************************************************
+
+; -- RAMBA ($0400-$07FF) ------------------------------------------------------
+; RAM bank A number [wo]
+def rRAMBA equ $0400
+
+; -- RAMBB ($0800-$0BFF) ------------------------------------------------------
+; RAM bank B number [wo]
+def rRAMBB equ $0800
+
+; -- FLASH ($0C00-$0FFF) ------------------------------------------------------
+; Whether the flash chip can be accessed [wo]
+def rFLASH equ $0C00
+
+; -- FMODE ($1000) ------------------------------------------------------------
+; Write mode select for the flash chip
+def rFMODE equ $1000
+
+; -- ROMBA ($2000-$27FF) ------------------------------------------------------
+; ROM/Flash bank A number [wo]
+def rROMBA equ $2000
+
+; -- FLASHA ($2800-$2FFF) -----------------------------------------------------
+; ROM/Flash bank A select [wo]
+def rFLASHA equ $2800
+
+; -- ROMBB ($3000-$37FF) ------------------------------------------------------
+; ROM/Flash bank B number [wo]
+def rROMBB equ $3000
+
+; -- FLASHB ($3800-$3FFF) -----------------------------------------------------
+; ROM/Flash bank B select [wo]
+def rFLASHB equ $3800
+
+
+; ** MBC7 only ****************************************************************
+
+; -- RAMREG ($4000-$5FFF) -----------------------------------------------------
+; Enable RAM register access [wo]
+def rRAMREG equ $4000
+
+def RAMREG_ENABLE equ $40
+
+; -- ACCLATCH0 ($Ax0x) --------------------------------------------------------
+; Latch accelerometer start [wo]
+def rACCLATCH0 equ $A000
+
+def ACCLATCH0_START equ $55
+
+; -- ACCLATCH1 ($Ax1x) --------------------------------------------------------
+; Latch accelerometer finish [wo]
+def rACCLATCH1 equ $A010
+
+def ACCLATCH1_FINISH equ $AA
+
+; -- ACCELX0 ($Ax2x) ----------------------------------------------------------
+; Accelerometer X value low byte [ro]
+def rACCELX0 equ $A020
+
+; -- ACCELX1 ($Ax3x) ----------------------------------------------------------
+; Accelerometer X value high byte [ro]
+def rACCELX1 equ $A030
+
+; -- ACCELY0 ($Ax4x) ----------------------------------------------------------
+; Accelerometer Y value low byte [ro]
+def rACCELY0 equ $A040
+
+; -- ACCELY1 ($Ax5x) ----------------------------------------------------------
+; Accelerometer Y value high byte [ro]
+def rACCELY1 equ $A050
+
+; -- EEPROM ($Ax8x) -----------------------------------------------------------
+; EEPROM access [r/w]
+def rEEPROM equ $A080
+
+
+; ** HuC1 only ****************************************************************
+
+; -- IRREG ($A000-$BFFF) ------------------------------------------------------
+; IR register [r/w]
+def rIRREG equ $A000
+
+def IR_LED_OFF equ $C0
+def IR_LED_ON equ $C1
+
+
+;******************************************************************************
+; Screen-related constants
+;******************************************************************************
+
+def SCREEN_WIDTH_PX equ 160 ; width of screen in pixels
+def SCREEN_HEIGHT_PX equ 144 ; height of screen in pixels
+def SCREEN_WIDTH equ 20 ; width of screen in bytes
+def SCREEN_HEIGHT equ 18 ; height of screen in bytes
+def SCREEN_AREA equ SCREEN_WIDTH * SCREEN_HEIGHT ; size of screen in bytes
+
+def TILEMAP_WIDTH_PX equ 256 ; width of tilemap in pixels
+def TILEMAP_HEIGHT_PX equ 256 ; height of tilemap in pixels
+def TILEMAP_WIDTH equ 32 ; width of tilemap in bytes
+def TILEMAP_HEIGHT equ 32 ; height of tilemap in bytes
+def TILEMAP_AREA equ TILEMAP_WIDTH * TILEMAP_HEIGHT ; size of tilemap in bytes
+
+def TILE_WIDTH equ 8 ; width of tile in pixels
+def TILE_HEIGHT equ 8 ; height of tile in pixels
+def TILE_SIZE equ 16 ; size of tile in bytes (2 bits/pixel)
+
+def COLOR_SIZE equ 2 ; size of color in bytes (little-endian BGR555)
+ def B_COLOR_RED equ 0 ; bits 4-0
+ def B_COLOR_GREEN equ 5 ; bits 9-5
+ def B_COLOR_BLUE equ 10 ; bits 14-10
+ def COLOR_RED equ %000_11111 ; for the low byte
+ def COLOR_GREEN_LOW equ %111_00000 ; for the low byte
+ def COLOR_GREEN_HIGH equ %0_00000_11 ; for the high byte
+ def COLOR_BLUE equ %0_11111_00 ; for the high byte
+def PAL_COLORS equ 4 ; colors per palette
+def PAL_SIZE equ COLOR_SIZE * PAL_COLORS ; size of palette in bytes
+
+; Tilemaps the BG or Window can read from (controlled by LCDC)
+def TILEMAP0 equ $9800 ; $9800-$9BFF
+def TILEMAP1 equ $9C00 ; $9C00-$9FFF
+
+; (CGB only) BG tile attribute fields
+def B_BG_PRIO equ 7 ; whether the BG tile colors 1-3 are drawn above OBJs
+def B_BG_YFLIP equ 6 ; whether the whole BG tile is flipped vertically
+def B_BG_XFLIP equ 5 ; whether the whole BG tile is flipped horizontally
+def B_BG_BANK1 equ 3 ; which VRAM bank the BG tile is taken from
+def BG_PALETTE equ %00000_111 ; which palette the BG tile uses
+ def BG_PRIO equ 1 << B_BG_PRIO
+ def BG_YFLIP equ 1 << B_BG_YFLIP
+ def BG_XFLIP equ 1 << B_BG_XFLIP
+ def BG_BANK0 equ 0 << B_BG_BANK1
+ def BG_BANK1 equ 1 << B_BG_BANK1
+
+
+;******************************************************************************
+; OBJ-related constants
+;******************************************************************************
+
+; OAM attribute field offsets
+rsreset
+def OAMA_Y rb ; 0
+ def OAM_Y_OFS equ 16 ; subtract 16 from what's written to OAM to get the real Y position
+def OAMA_X rb ; 1
+ def OAM_X_OFS equ 8 ; subtract 8 from what's written to OAM to get the real X position
+def OAMA_TILEID rb ; 2
+def OAMA_FLAGS rb ; 3
+ def B_OAM_PRIO equ 7 ; whether the OBJ is drawn below BG colors 1-3
+ def B_OAM_YFLIP equ 6 ; whether the whole OBJ is flipped vertically
+ def B_OAM_XFLIP equ 5 ; whether the whole OBJ is flipped horizontally
+ def B_OAM_PAL1 equ 4 ; (DMG only) which of the two palettes the OBJ uses
+ def B_OAM_BANK1 equ 3 ; (CGB only) which VRAM bank the OBJ takes its tile(s) from
+ def OAM_PALETTE equ %00000_111 ; (CGB only) which palette the OBJ uses
+ def OAM_PRIO equ 1 << B_OAM_PRIO
+ def OAM_YFLIP equ 1 << B_OAM_YFLIP
+ def OAM_XFLIP equ 1 << B_OAM_XFLIP
+ def OAM_PAL0 equ 0 << B_OAM_PAL1
+ def OAM_PAL1 equ 1 << B_OAM_PAL1
+ def OAM_BANK0 equ 0 << B_OAM_BANK1
+ def OAM_BANK1 equ 1 << B_OAM_BANK1
+def OBJ_SIZE rb 0 ; size of OBJ in bytes = 4
+
+def OAM_COUNT equ 40 ; how many OBJs there are room for in OAM
+def OAM_SIZE equ OBJ_SIZE * OAM_COUNT
+
+
+;******************************************************************************
+; Interrupt vector addresses
+;******************************************************************************
+
+def INT_HANDLER_VBLANK equ $0040 ; VBlank interrupt handler address
+def INT_HANDLER_STAT equ $0048 ; STAT interrupt handler address
+def INT_HANDLER_TIMER equ $0050 ; timer interrupt handler address
+def INT_HANDLER_SERIAL equ $0058 ; serial interrupt handler address
+def INT_HANDLER_JOYPAD equ $0060 ; joypad interrupt handler address
+
+
+;******************************************************************************
+; Boot-up register values
+;******************************************************************************
+
+; Register A = CPU type
+def BOOTUP_A_DMG equ $01
+def BOOTUP_A_CGB equ $11 ; CGB or AGB
+def BOOTUP_A_MGB equ $FF
+ def BOOTUP_A_SGB equ BOOTUP_A_DMG
+ def BOOTUP_A_SGB2 equ BOOTUP_A_MGB
+
+; Register B = CPU qualifier (if A is BOOTUP_A_CGB)
+def B_BOOTUP_B_AGB equ 0
+ def BOOTUP_B_CGB equ 0 << B_BOOTUP_B_AGB
+ def BOOTUP_B_AGB equ 1 << B_BOOTUP_B_AGB
+
+
+;******************************************************************************
+; Aliases
+;******************************************************************************
+
+; Prefer the standard names to these aliases, which may be official but are
+; less directly meaningful or human-readable.
+
+def rP1 equ rJOYP
+
+def rNR10 equ rAUD1SWEEP
+def rNR11 equ rAUD1LEN
+def rNR12 equ rAUD1ENV
+def rNR13 equ rAUD1LOW
+def rNR14 equ rAUD1HIGH
+def rNR21 equ rAUD2LEN
+def rNR22 equ rAUD2ENV
+def rNR23 equ rAUD2LOW
+def rNR24 equ rAUD2HIGH
+def rNR30 equ rAUD3ENA
+def rNR31 equ rAUD3LEN
+def rNR32 equ rAUD3LEVEL
+def rNR33 equ rAUD3LOW
+def rNR34 equ rAUD3HIGH
+def rNR41 equ rAUD4LEN
+def rNR42 equ rAUD4ENV
+def rNR43 equ rAUD4POLY
+def rNR44 equ rAUD4GO
+def rNR50 equ rAUDVOL
+def rNR51 equ rAUDTERM
+def rNR52 equ rAUDENA
+
+def rKEY0 equ rSYS
+def rKEY1 equ rSPD
+
+def rHDMA1 equ rVDMA_SRC_HIGH
+def rHDMA2 equ rVDMA_SRC_LOW
+def rHDMA3 equ rVDMA_DEST_HIGH
+def rHDMA4 equ rVDMA_DEST_LOW
+def rHDMA5 equ rVDMA_LEN
+
+def rBCPS equ rBGPI
+def rBCPD equ rBGPD
+
+def rOCPS equ rOBPI
+def rOCPD equ rOBPD
+
+def rSVBK equ rWBK
+
+endc ; HARDWARE_INC
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
deleted file mode 100644
index c3a224b3..00000000
--- a/constants/hardware_constants.asm
+++ /dev/null
@@ -1,127 +0,0 @@
-; Reference documents:
-; https://gbdev.io/pandocs/
-; https://github.com/gbdev/hardware.inc
-
-DEF CGB EQU $11
-
-; MBC1
-DEF MBC1SRamEnable EQU $0000
-DEF MBC1RomBank EQU $2000
-DEF MBC1SRamBank EQU $4000
-DEF MBC1SRamBankingMode EQU $6000
-
-DEF SRAM_DISABLE EQU $00
-DEF SRAM_BANKING_MODE EQU $01
-DEF SRAM_ENABLE EQU $0a
-
-DEF NUM_SRAM_BANKS EQU 4
-
-; interrupt flags
-DEF VBLANK EQU 0
-DEF LCD_STAT EQU 1
-DEF TIMER EQU 2
-DEF SERIAL EQU 3
-DEF JOYPAD EQU 4
-
-DEF LY_VBLANK EQU 145
-
-; serial
-DEF START_TRANSFER_EXTERNAL_CLOCK EQU $80
-DEF START_TRANSFER_INTERNAL_CLOCK EQU $81
-
-; Hardware registers
-DEF rJOYP EQU $ff00 ; Joypad (R/W)
-DEF rSB EQU $ff01 ; Serial transfer data (R/W)
-DEF rSC EQU $ff02 ; Serial Transfer Control (R/W)
-DEF rSC_ON EQU 7
-DEF rSC_CGB EQU 1
-DEF rSC_CLOCK EQU 0
-DEF rDIV EQU $ff04 ; Divider Register (R/W)
-DEF rTIMA EQU $ff05 ; Timer counter (R/W)
-DEF rTMA EQU $ff06 ; Timer Modulo (R/W)
-DEF rTAC EQU $ff07 ; Timer Control (R/W)
-DEF rTAC_ON EQU 2
-DEF rTAC_4096_HZ EQU 0
-DEF rTAC_262144_HZ EQU 1
-DEF rTAC_65536_HZ EQU 2
-DEF rTAC_16384_HZ EQU 3
-DEF rIF EQU $ff0f ; Interrupt Flag (R/W)
-DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
-DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
-DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
-DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
-DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
-DEF rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
-DEF rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
-DEF rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
-DEF rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
-DEF rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
-DEF rNR31 EQU $ff1b ; Channel 3 Sound Length
-DEF rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
-DEF rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
-DEF rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
-DEF rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
-DEF rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
-DEF rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
-DEF rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W)
-DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
-DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
-DEF rNR52 EQU $ff26 ; Sound on/off
-DEF rWave_0 EQU $ff30
-DEF rWave_1 EQU $ff31
-DEF rWave_2 EQU $ff32
-DEF rWave_3 EQU $ff33
-DEF rWave_4 EQU $ff34
-DEF rWave_5 EQU $ff35
-DEF rWave_6 EQU $ff36
-DEF rWave_7 EQU $ff37
-DEF rWave_8 EQU $ff38
-DEF rWave_9 EQU $ff39
-DEF rWave_a EQU $ff3a
-DEF rWave_b EQU $ff3b
-DEF rWave_c EQU $ff3c
-DEF rWave_d EQU $ff3d
-DEF rWave_e EQU $ff3e
-DEF rWave_f EQU $ff3f
-DEF rLCDC EQU $ff40 ; LCD Control (R/W)
-DEF rLCDC_BG_PRIORITY EQU 0
-DEF rLCDC_SPRITES_ENABLE EQU 1
-DEF rLCDC_SPRITE_SIZE EQU 2
-DEF rLCDC_BG_TILEMAP EQU 3
-DEF rLCDC_TILE_DATA EQU 4
-DEF rLCDC_WINDOW_ENABLE EQU 5
-DEF rLCDC_WINDOW_TILEMAP EQU 6
-DEF rLCDC_ENABLE EQU 7
-DEF rSTAT EQU $ff41 ; LCDC Status (R/W)
-DEF rSCY EQU $ff42 ; Scroll Y (R/W)
-DEF rSCX EQU $ff43 ; Scroll X (R/W)
-DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R)
-DEF rLYC EQU $ff45 ; LY Compare (R/W)
-DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
-DEF rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
-DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
-DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
-DEF rWY EQU $ff4a ; Window Y Position (R/W)
-DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W)
-DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
-DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
-DEF rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
-DEF rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
-DEF rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
-DEF rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
-DEF rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
-DEF rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
-DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
-DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
-DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
-DEF rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
-DEF rOPRI EQU $ff6c ; CGB Mode Only - Object Priority Mode
-DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
-DEF rPCM12 EQU $ff76 ; Channels 1 & 2 Amplitude (R)
-DEF rPCM34 EQU $ff77 ; Channels 3 & 4 Amplitude (R)
-DEF rIE EQU $ffff ; Interrupt Enable (R/W)
-DEF rIE_VBLANK EQU 0
-DEF rIE_LCD EQU 1
-DEF rIE_TIMER EQU 2
-DEF rIE_SERIAL EQU 3
-DEF rIE_JOYPAD EQU 4
diff --git a/constants/input_constants.asm b/constants/input_constants.asm
deleted file mode 100644
index 68233dea..00000000
--- a/constants/input_constants.asm
+++ /dev/null
@@ -1,20 +0,0 @@
-; joypad buttons
- const_def
- const BIT_A_BUTTON ; 0
- const BIT_B_BUTTON ; 1
- const BIT_SELECT ; 2
- const BIT_START ; 3
- const BIT_D_RIGHT ; 4
- const BIT_D_LEFT ; 5
- const BIT_D_UP ; 6
- const BIT_D_DOWN ; 7
-
-DEF NO_INPUT EQU 0
-DEF A_BUTTON EQU 1 << BIT_A_BUTTON
-DEF B_BUTTON EQU 1 << BIT_B_BUTTON
-DEF SELECT EQU 1 << BIT_SELECT
-DEF START EQU 1 << BIT_START
-DEF D_RIGHT EQU 1 << BIT_D_RIGHT
-DEF D_LEFT EQU 1 << BIT_D_LEFT
-DEF D_UP EQU 1 << BIT_D_UP
-DEF D_DOWN EQU 1 << BIT_D_DOWN
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
index b28b3d79..32a56518 100644
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -16,6 +16,15 @@ DEF MAP_BORDER EQU 3
shift_const SOUTH ; 4
shift_const NORTH ; 8
+; wWarpEntries
+DEF MAX_WARP_EVENTS EQU 32
+
+; wNumSigns
+DEF MAX_BG_EVENTS EQU 16
+
+; wMapSpriteData
+DEF MAX_OBJECT_EVENTS EQU 16
+
; flower and water tile animations
const_def
const TILEANIM_NONE ; 0
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 3562042b..a542b4a7 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -7,3 +7,6 @@ DEF TRUE EQU 1
const FLAG_RESET ; 0
const FLAG_SET ; 1
const FLAG_TEST ; 2
+
+; input
+DEF NO_INPUT EQU 0
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index 3376c1af..1dccabfd 100644
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -173,6 +173,8 @@
const STRUGGLE ; a5
DEF NUM_ATTACKS EQU const_value - 1
+DEF CANNOT_MOVE EQU $ff
+
; Moves do double duty as animation identifiers.
const SHOWPIC_ANIM
diff --git a/constants/oam_constants.asm b/constants/oam_constants.asm
index d0ae3157..f1ddf021 100644
--- a/constants/oam_constants.asm
+++ b/constants/oam_constants.asm
@@ -7,18 +7,4 @@
DEF FACING_END EQU 1 << BIT_END_OF_OAM_DATA
DEF UNDER_GRASS EQU 1 << BIT_SPRITE_UNDER_GRASS
-; OAM attribute flags
-DEF OAM_PALETTE EQU %111
- const_def 3
- const OAM_TILE_BANK ; 3
- const OAM_OBP_NUM ; 4 ; Non CGB Mode Only
- const OAM_X_FLIP ; 5
- const OAM_Y_FLIP ; 6
- const OAM_PRIORITY ; 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
-
-; OAM attribute masks
-DEF OAM_HIGH_PALS EQU 1 << 2 ; palettes %100-%111 are OBP1
-DEF OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1
-DEF OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip
-DEF OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip
-DEF OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0)
+DEF OAM_HIGH_PALS EQU 1 << 2 ; palettes %100-%111 are OBP1
diff --git a/data/battle_anims/frame_blocks.asm b/data/battle_anims/frame_blocks.asm
index 0e0de32f..daedfc06 100644
--- a/data/battle_anims/frame_blocks.asm
+++ b/data/battle_anims/frame_blocks.asm
@@ -128,39 +128,39 @@ FrameBlock01:
db 9 ; #
dbsprite 0, 0, 0, 0, $2c, 0
dbsprite 1, 0, 0, 0, $2d, 0
- dbsprite 2, 0, 0, 0, $2c, OAM_HFLIP
+ dbsprite 2, 0, 0, 0, $2c, OAM_XFLIP
dbsprite 0, 1, 0, 0, $3c, 0
dbsprite 1, 1, 0, 0, $3d, 0
- dbsprite 2, 1, 0, 0, $3c, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $2c, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $2d, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $2c, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 1, 0, 0, $3c, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $2c, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $2d, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $2c, OAM_XFLIP | OAM_YFLIP
FrameBlock02:
db 16 ; #
dbsprite 0, 0, 0, 0, $20, 0
dbsprite 1, 0, 0, 0, $21, 0
- dbsprite 2, 0, 0, 0, $21, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $20, OAM_HFLIP
+ dbsprite 2, 0, 0, 0, $21, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $20, OAM_XFLIP
dbsprite 0, 1, 0, 0, $30, 0
dbsprite 1, 1, 0, 0, $31, 0
- dbsprite 2, 1, 0, 0, $31, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $30, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $30, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $31, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $31, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 2, 0, 0, $30, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 3, 0, 0, $20, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $21, OAM_VFLIP
- dbsprite 2, 3, 0, 0, $21, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 3, 0, 0, $20, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 1, 0, 0, $31, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $30, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $30, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $31, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $31, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $30, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $20, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $21, OAM_YFLIP
+ dbsprite 2, 3, 0, 0, $21, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $20, OAM_XFLIP | OAM_YFLIP
FrameBlock03:
db 4 ; #
dbsprite 0, 0, 0, 0, $02, 0
- dbsprite 1, 0, 0, 0, $02, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $02, OAM_XFLIP
dbsprite 0, 1, 0, 0, $12, 0
- dbsprite 1, 1, 0, 0, $12, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $12, OAM_XFLIP
FrameBlock04:
db 4 ; #
@@ -171,25 +171,25 @@ FrameBlock04:
FrameBlock05:
db 4 ; #
- dbsprite 0, 0, 0, 0, $07, OAM_HFLIP
- dbsprite 1, 0, 0, 0, $06, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $17, OAM_HFLIP
- dbsprite 1, 1, 0, 0, $16, OAM_HFLIP
+ dbsprite 0, 0, 0, 0, $07, OAM_XFLIP
+ dbsprite 1, 0, 0, 0, $06, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $17, OAM_XFLIP
+ dbsprite 1, 1, 0, 0, $16, OAM_XFLIP
FrameBlock06:
db 12 ; #
dbsprite 1, 0, 0, 0, $23, 0
dbsprite 0, 1, 0, 0, $32, 0
dbsprite 1, 1, 0, 0, $33, 0
- dbsprite 2, 0, 0, 0, $23, OAM_HFLIP
- dbsprite 2, 1, 0, 0, $33, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $32, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $32, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $33, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $23, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $33, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP
- dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 0, 0, 0, $23, OAM_XFLIP
+ dbsprite 2, 1, 0, 0, $33, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $32, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $32, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $33, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $23, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $33, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $32, OAM_XFLIP | OAM_YFLIP
+ dbsprite 2, 3, 0, 0, $23, OAM_XFLIP | OAM_YFLIP
FrameBlock07:
db 16 ; #
@@ -197,18 +197,18 @@ FrameBlock07:
dbsprite 1, 0, 0, 0, $21, 0
dbsprite 0, 1, 0, 0, $30, 0
dbsprite 1, 1, 0, 0, $31, 0
- dbsprite 2, 0, 0, 0, $21, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $20, OAM_HFLIP
- dbsprite 2, 1, 0, 0, $31, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $30, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $30, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $31, OAM_VFLIP
- dbsprite 0, 3, 0, 0, $20, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $21, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $31, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 2, 0, 0, $30, OAM_HFLIP | OAM_VFLIP
- dbsprite 2, 3, 0, 0, $21, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 3, 0, 0, $20, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 0, 0, 0, $21, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $20, OAM_XFLIP
+ dbsprite 2, 1, 0, 0, $31, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $30, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $30, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $31, OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $20, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $21, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $31, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $30, OAM_XFLIP | OAM_YFLIP
+ dbsprite 2, 3, 0, 0, $21, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $20, OAM_XFLIP | OAM_YFLIP
FrameBlock08:
db 16 ; #
@@ -216,62 +216,62 @@ FrameBlock08:
dbsprite 1, 0, 0, 0, $21, 0
dbsprite 0, 1, 0, 0, $30, 0
dbsprite 1, 1, 0, 0, $31, 0
- dbsprite 3, 0, 0, 0, $21, OAM_HFLIP
- dbsprite 4, 0, 0, 0, $20, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $31, OAM_HFLIP
- dbsprite 4, 1, 0, 0, $30, OAM_HFLIP
- dbsprite 0, 3, 0, 0, $30, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $31, OAM_VFLIP
- dbsprite 0, 4, 0, 0, $20, OAM_VFLIP
- dbsprite 1, 4, 0, 0, $21, OAM_VFLIP
- dbsprite 3, 3, 0, 0, $31, OAM_HFLIP | OAM_VFLIP
- dbsprite 4, 3, 0, 0, $30, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 4, 0, 0, $21, OAM_HFLIP | OAM_VFLIP
- dbsprite 4, 4, 0, 0, $20, OAM_HFLIP | OAM_VFLIP
+ dbsprite 3, 0, 0, 0, $21, OAM_XFLIP
+ dbsprite 4, 0, 0, 0, $20, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $31, OAM_XFLIP
+ dbsprite 4, 1, 0, 0, $30, OAM_XFLIP
+ dbsprite 0, 3, 0, 0, $30, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $31, OAM_YFLIP
+ dbsprite 0, 4, 0, 0, $20, OAM_YFLIP
+ dbsprite 1, 4, 0, 0, $21, OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $31, OAM_XFLIP | OAM_YFLIP
+ dbsprite 4, 3, 0, 0, $30, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 4, 0, 0, $21, OAM_XFLIP | OAM_YFLIP
+ dbsprite 4, 4, 0, 0, $20, OAM_XFLIP | OAM_YFLIP
FrameBlock09:
db 12 ; #
dbsprite 0, 0, 0, 0, $24, 0
dbsprite 1, 0, 0, 0, $25, 0
dbsprite 0, 1, 0, 0, $34, 0
- dbsprite 3, 0, 0, 0, $25, OAM_HFLIP
- dbsprite 4, 0, 0, 0, $24, OAM_HFLIP
- dbsprite 4, 1, 0, 0, $34, OAM_HFLIP
- dbsprite 0, 3, 0, 0, $34, OAM_VFLIP
- dbsprite 0, 4, 0, 0, $24, OAM_VFLIP
- dbsprite 1, 4, 0, 0, $25, OAM_VFLIP
- dbsprite 4, 3, 0, 0, $34, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 4, 0, 0, $25, OAM_HFLIP | OAM_VFLIP
- dbsprite 4, 4, 0, 0, $24, OAM_HFLIP | OAM_VFLIP
+ dbsprite 3, 0, 0, 0, $25, OAM_XFLIP
+ dbsprite 4, 0, 0, 0, $24, OAM_XFLIP
+ dbsprite 4, 1, 0, 0, $34, OAM_XFLIP
+ dbsprite 0, 3, 0, 0, $34, OAM_YFLIP
+ dbsprite 0, 4, 0, 0, $24, OAM_YFLIP
+ dbsprite 1, 4, 0, 0, $25, OAM_YFLIP
+ dbsprite 4, 3, 0, 0, $34, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 4, 0, 0, $25, OAM_XFLIP | OAM_YFLIP
+ dbsprite 4, 4, 0, 0, $24, OAM_XFLIP | OAM_YFLIP
FrameBlock0a:
db 12 ; #
dbsprite 0, 0, 0, 0, $24, 0
dbsprite 1, 0, 0, 0, $25, 0
dbsprite 0, 1, 0, 0, $34, 0
- dbsprite 4, 0, 0, 0, $25, OAM_HFLIP
- dbsprite 5, 0, 0, 0, $24, OAM_HFLIP
- dbsprite 5, 1, 0, 0, $34, OAM_HFLIP
- dbsprite 0, 4, 0, 0, $34, OAM_VFLIP
- dbsprite 0, 5, 0, 0, $24, OAM_VFLIP
- dbsprite 1, 5, 0, 0, $25, OAM_VFLIP
- dbsprite 5, 4, 0, 0, $34, OAM_HFLIP | OAM_VFLIP
- dbsprite 4, 5, 0, 0, $25, OAM_HFLIP | OAM_VFLIP
- dbsprite 5, 5, 0, 0, $24, OAM_HFLIP | OAM_VFLIP
+ dbsprite 4, 0, 0, 0, $25, OAM_XFLIP
+ dbsprite 5, 0, 0, 0, $24, OAM_XFLIP
+ dbsprite 5, 1, 0, 0, $34, OAM_XFLIP
+ dbsprite 0, 4, 0, 0, $34, OAM_YFLIP
+ dbsprite 0, 5, 0, 0, $24, OAM_YFLIP
+ dbsprite 1, 5, 0, 0, $25, OAM_YFLIP
+ dbsprite 5, 4, 0, 0, $34, OAM_XFLIP | OAM_YFLIP
+ dbsprite 4, 5, 0, 0, $25, OAM_XFLIP | OAM_YFLIP
+ dbsprite 5, 5, 0, 0, $24, OAM_XFLIP | OAM_YFLIP
FrameBlock0b:
db 4 ; #
dbsprite 0, 0, 0, 0, $05, 0
- dbsprite 1, 0, 0, 0, $05, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $05, OAM_XFLIP
dbsprite 0, 1, 0, 0, $15, 0
- dbsprite 1, 1, 0, 0, $15, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $15, OAM_XFLIP
FrameBlock0c:
db 4 ; #
dbsprite 0, 0, 0, 0, $04, 0
- dbsprite 1, 0, 0, 0, $04, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $04, OAM_XFLIP
dbsprite 0, 1, 0, 0, $14, 0
- dbsprite 1, 1, 0, 0, $14, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $14, OAM_XFLIP
FrameBlock0d:
db 8 ; #
@@ -279,10 +279,10 @@ FrameBlock0d:
dbsprite 1, 0, 0, 0, $0d, 0
dbsprite 0, 1, 0, 0, $1c, 0
dbsprite 1, 1, 0, 0, $1d, 0
- dbsprite 0, 2, 0, 0, $1d, OAM_HFLIP | OAM_VFLIP
- dbsprite 1, 2, 0, 0, $1c, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 3, 0, 0, $0d, OAM_HFLIP | OAM_VFLIP
- dbsprite 1, 3, 0, 0, $0c, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 2, 0, 0, $1d, OAM_XFLIP | OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $1c, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $0d, OAM_XFLIP | OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $0c, OAM_XFLIP | OAM_YFLIP
FrameBlock0e:
db 4 ; #
@@ -293,10 +293,10 @@ FrameBlock0e:
FrameBlock0f:
db 4 ; #
- dbsprite 0, 6, 0, 0, $1d, OAM_HFLIP | OAM_VFLIP
- dbsprite 1, 6, 0, 0, $1c, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 7, 0, 0, $0d, OAM_HFLIP | OAM_VFLIP
- dbsprite 1, 7, 0, 0, $0c, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 6, 0, 0, $1d, OAM_XFLIP | OAM_YFLIP
+ dbsprite 1, 6, 0, 0, $1c, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 7, 0, 0, $0d, OAM_XFLIP | OAM_YFLIP
+ dbsprite 1, 7, 0, 0, $0c, OAM_XFLIP | OAM_YFLIP
FrameBlock10:
db 8 ; #
@@ -304,10 +304,10 @@ FrameBlock10:
dbsprite 1, 0, 0, 0, $0f, 0
dbsprite 0, 1, 0, 0, $1e, 0
dbsprite 1, 1, 0, 0, $1f, 0
- dbsprite 2, 0, 0, 0, $0f, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $0e, OAM_HFLIP
- dbsprite 2, 1, 0, 0, $1f, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $1e, OAM_HFLIP
+ dbsprite 2, 0, 0, 0, $0f, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $0e, OAM_XFLIP
+ dbsprite 2, 1, 0, 0, $1f, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $1e, OAM_XFLIP
FrameBlock11:
db 8 ; #
@@ -315,10 +315,10 @@ FrameBlock11:
dbsprite 1, 0, 0, 0, $0f, 0
dbsprite 0, 1, 0, 0, $1e, 0
dbsprite 1, 1, 0, 0, $1f, 0
- dbsprite 4, 0, 0, 0, $0f, OAM_HFLIP
- dbsprite 5, 0, 0, 0, $0e, OAM_HFLIP
- dbsprite 4, 1, 0, 0, $1f, OAM_HFLIP
- dbsprite 5, 1, 0, 0, $1e, OAM_HFLIP
+ dbsprite 4, 0, 0, 0, $0f, OAM_XFLIP
+ dbsprite 5, 0, 0, 0, $0e, OAM_XFLIP
+ dbsprite 4, 1, 0, 0, $1f, OAM_XFLIP
+ dbsprite 5, 1, 0, 0, $1e, OAM_XFLIP
FrameBlock12:
db 3 ; #
@@ -329,46 +329,46 @@ FrameBlock12:
FrameBlock13:
db 4 ; #
dbsprite 0, 0, 0, 0, $36, 0
- dbsprite 1, 0, 0, 0, $36, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $36, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $36, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $36, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $36, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $36, OAM_XFLIP | OAM_YFLIP
FrameBlock14:
db 8 ; #
dbsprite 2, 0, 0, 0, $28, 0
- dbsprite 3, 0, 0, 0, $28, OAM_HFLIP
+ dbsprite 3, 0, 0, 0, $28, OAM_XFLIP
dbsprite 2, 1, 0, 0, $38, 0
- dbsprite 3, 1, 0, 0, $38, OAM_HFLIP
+ dbsprite 3, 1, 0, 0, $38, OAM_XFLIP
dbsprite 4, 0, 0, 0, $36, 0
- dbsprite 5, 0, 0, 0, $36, OAM_HFLIP
- dbsprite 4, 1, 0, 0, $36, OAM_VFLIP
- dbsprite 5, 1, 0, 0, $36, OAM_HFLIP | OAM_VFLIP
+ dbsprite 5, 0, 0, 0, $36, OAM_XFLIP
+ dbsprite 4, 1, 0, 0, $36, OAM_YFLIP
+ dbsprite 5, 1, 0, 0, $36, OAM_XFLIP | OAM_YFLIP
FrameBlock15:
db 12 ; #
dbsprite 0, 0, 0, 0, $28, 0
- dbsprite 1, 0, 0, 0, $28, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $28, OAM_XFLIP
dbsprite 0, 1, 0, 0, $38, 0
- dbsprite 1, 1, 0, 0, $38, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $38, OAM_XFLIP
dbsprite 2, 0, 0, 0, $29, 0
- dbsprite 3, 0, 0, 0, $29, OAM_HFLIP
+ dbsprite 3, 0, 0, 0, $29, OAM_XFLIP
dbsprite 2, 1, 0, 0, $39, 0
- dbsprite 3, 1, 0, 0, $39, OAM_HFLIP
+ dbsprite 3, 1, 0, 0, $39, OAM_XFLIP
dbsprite 4, 0, 0, 0, $28, 0
- dbsprite 5, 0, 0, 0, $28, OAM_HFLIP
+ dbsprite 5, 0, 0, 0, $28, OAM_XFLIP
dbsprite 4, 1, 0, 0, $38, 0
- dbsprite 5, 1, 0, 0, $38, OAM_HFLIP
+ dbsprite 5, 1, 0, 0, $38, OAM_XFLIP
FrameBlock16:
db 8 ; #
dbsprite 0, 0, 0, 0, $29, 0
- dbsprite 1, 0, 0, 0, $29, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $29, OAM_XFLIP
dbsprite 0, 1, 0, 0, $39, 0
- dbsprite 1, 1, 0, 0, $39, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $39, OAM_XFLIP
dbsprite 4, 0, 0, 0, $29, 0
- dbsprite 5, 0, 0, 0, $29, OAM_HFLIP
+ dbsprite 5, 0, 0, 0, $29, OAM_XFLIP
dbsprite 4, 1, 0, 0, $39, 0
- dbsprite 5, 1, 0, 0, $39, OAM_HFLIP
+ dbsprite 5, 1, 0, 0, $39, OAM_XFLIP
FrameBlock17:
db 4 ; #
@@ -379,73 +379,73 @@ FrameBlock17:
FrameBlock18:
db 1 ; #
- dbsprite 0, 3, 0, 0, $45, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 3, 0, 0, $45, OAM_XFLIP | OAM_YFLIP
FrameBlock19:
db 2 ; #
dbsprite 1, 3, 0, 0, $45, 0
- dbsprite 1, 2, 0, 0, $46, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 2, 0, 0, $46, OAM_XFLIP | OAM_YFLIP
FrameBlock1a:
db 2 ; #
- dbsprite 2, 2, 0, 0, $45, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 2, 0, 0, $45, OAM_XFLIP | OAM_YFLIP
dbsprite 2, 3, 0, 0, $46, 0
FrameBlock1b:
db 2 ; #
dbsprite 3, 2, 0, 0, $45, 0
- dbsprite 3, 1, 0, 0, $46, OAM_HFLIP | OAM_VFLIP
+ dbsprite 3, 1, 0, 0, $46, OAM_XFLIP | OAM_YFLIP
FrameBlock1c:
db 2 ; #
- dbsprite 4, 1, 0, 0, $45, OAM_HFLIP | OAM_VFLIP
+ dbsprite 4, 1, 0, 0, $45, OAM_XFLIP | OAM_YFLIP
dbsprite 4, 2, 0, 0, $46, 0
FrameBlock1d:
db 2 ; #
dbsprite 5, 1, 0, 0, $45, 0
- dbsprite 5, 0, 0, 0, $46, OAM_HFLIP | OAM_VFLIP
+ dbsprite 5, 0, 0, 0, $46, OAM_XFLIP | OAM_YFLIP
FrameBlock1e:
db 2 ; #
- dbsprite 6, 0, 0, 0, $45, OAM_HFLIP | OAM_VFLIP
+ dbsprite 6, 0, 0, 0, $45, OAM_XFLIP | OAM_YFLIP
dbsprite 6, 1, 0, 0, $46, 0
FrameBlock75:
db 4 ; #
dbsprite 0, 0, 0, 0, $43, 0
- dbsprite 1, 0, 0, 0, $43, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $43, OAM_XFLIP
dbsprite 0, 1, 0, 0, $22, 0
- dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
FrameBlock1f:
db 2 ; #
dbsprite 0, 0, 0, 0, $03, 0
- dbsprite 6, 0, 0, 0, $03, OAM_HFLIP
+ dbsprite 6, 0, 0, 0, $03, OAM_XFLIP
FrameBlock20:
db 6 ; #
dbsprite 0, 0, 0, 0, $03, 0
- dbsprite 6, 0, 0, 0, $03, OAM_HFLIP
+ dbsprite 6, 0, 0, 0, $03, OAM_XFLIP
dbsprite 1, 1, 0, 0, $03, 0
- dbsprite 5, 1, 0, 0, $03, OAM_HFLIP
+ dbsprite 5, 1, 0, 0, $03, OAM_XFLIP
dbsprite 0, 1, 0, 0, $13, 0
- dbsprite 6, 1, 0, 0, $13, OAM_HFLIP
+ dbsprite 6, 1, 0, 0, $13, OAM_XFLIP
FrameBlock21:
db 12 ; #
dbsprite 0, 0, 0, 0, $03, 0
- dbsprite 6, 0, 0, 0, $03, OAM_HFLIP
+ dbsprite 6, 0, 0, 0, $03, OAM_XFLIP
dbsprite 1, 1, 0, 0, $03, 0
- dbsprite 5, 1, 0, 0, $03, OAM_HFLIP
+ dbsprite 5, 1, 0, 0, $03, OAM_XFLIP
dbsprite 0, 1, 0, 0, $13, 0
- dbsprite 6, 1, 0, 0, $13, OAM_HFLIP
+ dbsprite 6, 1, 0, 0, $13, OAM_XFLIP
dbsprite 2, 2, 0, 0, $03, 0
- dbsprite 4, 2, 0, 0, $03, OAM_HFLIP
+ dbsprite 4, 2, 0, 0, $03, OAM_XFLIP
dbsprite 1, 2, 0, 0, $13, 0
- dbsprite 5, 2, 0, 0, $13, OAM_HFLIP
+ dbsprite 5, 2, 0, 0, $13, OAM_XFLIP
dbsprite 0, 2, 0, 0, $03, 0
- dbsprite 6, 2, 0, 0, $03, OAM_HFLIP
+ dbsprite 6, 2, 0, 0, $03, OAM_XFLIP
FrameBlock22:
db 19 ; #
@@ -459,15 +459,15 @@ FrameBlock22:
dbsprite 2, 2, 0, 0, $03, 0
dbsprite 2, 3, 0, 0, $13, 0
dbsprite 3, 3, 0, 0, $03, 0
- dbsprite 4, 2, 0, 0, $03, OAM_HFLIP
- dbsprite 4, 3, 0, 0, $13, OAM_HFLIP
- dbsprite 5, 1, 0, 0, $03, OAM_HFLIP
- dbsprite 5, 2, 0, 0, $13, OAM_HFLIP
- dbsprite 5, 3, 0, 0, $03, OAM_HFLIP
- dbsprite 6, 0, 0, 0, $03, OAM_HFLIP
- dbsprite 6, 1, 0, 0, $13, OAM_HFLIP
- dbsprite 6, 2, 0, 0, $03, OAM_HFLIP
- dbsprite 6, 3, 0, 0, $13, OAM_HFLIP
+ dbsprite 4, 2, 0, 0, $03, OAM_XFLIP
+ dbsprite 4, 3, 0, 0, $13, OAM_XFLIP
+ dbsprite 5, 1, 0, 0, $03, OAM_XFLIP
+ dbsprite 5, 2, 0, 0, $13, OAM_XFLIP
+ dbsprite 5, 3, 0, 0, $03, OAM_XFLIP
+ dbsprite 6, 0, 0, 0, $03, OAM_XFLIP
+ dbsprite 6, 1, 0, 0, $13, OAM_XFLIP
+ dbsprite 6, 2, 0, 0, $03, OAM_XFLIP
+ dbsprite 6, 3, 0, 0, $13, OAM_XFLIP
FrameBlock23:
db 4 ; #
@@ -499,24 +499,24 @@ FrameBlock25:
FrameBlock26:
db 4 ; #
dbsprite 2, 0, 0, 0, $44, 0
- dbsprite 3, 0, 0, 0, $44, OAM_HFLIP
- dbsprite 2, 1, 0, 0, $44, OAM_VFLIP
- dbsprite 3, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 3, 0, 0, 0, $44, OAM_XFLIP
+ dbsprite 2, 1, 0, 0, $44, OAM_YFLIP
+ dbsprite 3, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP
FrameBlock27:
db 5 ; #
dbsprite 1, 1, 0, 0, $44, 0
- dbsprite 2, 1, 0, 0, $44, OAM_HFLIP
- dbsprite 1, 2, 0, 0, $44, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 1, 0, 0, $44, OAM_XFLIP
+ dbsprite 1, 2, 0, 0, $44, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $44, OAM_XFLIP | OAM_YFLIP
dbsprite 3, 0, 0, 0, $47, 0
FrameBlock28:
db 6 ; #
dbsprite 0, 2, 0, 0, $44, 0
- dbsprite 1, 2, 0, 0, $44, OAM_HFLIP
- dbsprite 0, 3, 0, 0, $44, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 2, 0, 0, $44, OAM_XFLIP
+ dbsprite 0, 3, 0, 0, $44, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $44, OAM_XFLIP | OAM_YFLIP
dbsprite 2, 1, 0, 0, $47, 0
dbsprite 2, 0, 6, 2, $47, 0
@@ -530,9 +530,9 @@ FrameBlock29:
FrameBlock2a:
db 4 ; #
dbsprite 0, 0, 0, 0, $44, 0
- dbsprite 1, 0, 0, 0, $44, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $44, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $44, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $44, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP
FrameBlock2b:
db 2 ; #
@@ -556,28 +556,28 @@ FrameBlock2d:
FrameBlock2e:
db 8 ; #
- dbsprite 0, 0, 0, 0, $27, OAM_HFLIP
- dbsprite 1, 0, 0, 0, $26, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $37, OAM_HFLIP
- dbsprite 1, 1, 0, 0, $36, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $29, OAM_HFLIP
- dbsprite 1, 2, 0, 0, $28, OAM_HFLIP
- dbsprite 0, 3, 0, 0, $39, OAM_HFLIP
- dbsprite 1, 3, 0, 0, $38, OAM_HFLIP
+ dbsprite 0, 0, 0, 0, $27, OAM_XFLIP
+ dbsprite 1, 0, 0, 0, $26, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $37, OAM_XFLIP
+ dbsprite 1, 1, 0, 0, $36, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $29, OAM_XFLIP
+ dbsprite 1, 2, 0, 0, $28, OAM_XFLIP
+ dbsprite 0, 3, 0, 0, $39, OAM_XFLIP
+ dbsprite 1, 3, 0, 0, $38, OAM_XFLIP
FrameBlock2f:
db 4 ; #
dbsprite 0, 0, 0, 0, $0c, 0
dbsprite 1, 0, 0, 0, $0d, 0
- dbsprite 0, 1, 0, 0, $0c, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $0d, OAM_VFLIP
+ dbsprite 0, 1, 0, 0, $0c, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $0d, OAM_YFLIP
FrameBlock30:
db 4 ; #
dbsprite 0, 0, 0, 0, $44, 0
- dbsprite 1, 0, 0, 0, $44, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $44, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $44, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $44, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP
FrameBlock31:
db 1 ; #
@@ -587,34 +587,34 @@ FrameBlock32:
db 7 ; #
dbsprite 0, 0, 0, 0, $4d, 0
dbsprite 1, 0, 0, 0, $2f, 0
- dbsprite 2, 0, 0, 0, $4d, OAM_HFLIP
+ dbsprite 2, 0, 0, 0, $4d, OAM_XFLIP
dbsprite 0, 1, 0, 0, $4e, 0
dbsprite 1, 1, 0, 0, $07, 0
- dbsprite 2, 1, 0, 0, $4e, OAM_HFLIP
+ dbsprite 2, 1, 0, 0, $4e, OAM_XFLIP
dbsprite 1, 2, 0, 0, $3f, 0
FrameBlock33:
db 7 ; #
- dbsprite 1, 0, 0, 0, $3f, OAM_VFLIP
- dbsprite 0, 1, 0, 0, $4e, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $07, OAM_VFLIP
- dbsprite 2, 1, 0, 0, $4e, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 2, 0, 0, $4d, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $2f, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $4d, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $3f, OAM_YFLIP
+ dbsprite 0, 1, 0, 0, $4e, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $07, OAM_YFLIP
+ dbsprite 2, 1, 0, 0, $4e, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 2, 0, 0, $4d, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $2f, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $4d, OAM_XFLIP | OAM_YFLIP
FrameBlock34:
db 1 ; #
- dbsprite 0, 20, 0, 0, $00, OAM_OBP1
+ dbsprite 0, 20, 0, 0, $00, OAM_PAL1
FrameBlock35:
db 6 ; #
dbsprite 0, 0, 0, 0, $2a, 0
dbsprite 1, 0, 0, 0, $2b, 0
dbsprite 0, 1, 0, 0, $3a, 0
- dbsprite 0, 2, 0, 0, $3a, OAM_VFLIP
- dbsprite 0, 3, 0, 0, $2a, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $2b, OAM_VFLIP
+ dbsprite 0, 2, 0, 0, $3a, OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $2a, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $2b, OAM_YFLIP
FrameBlock36:
db 4 ; #
@@ -625,10 +625,10 @@ FrameBlock36:
FrameBlock37:
db 4 ; #
- dbsprite 0, 0, 0, 0, $01, OAM_BEHIND_BG | OAM_HFLIP
- dbsprite 1, 0, 0, 0, $00, OAM_BEHIND_BG | OAM_HFLIP
- dbsprite 0, 1, 0, 0, $11, OAM_BEHIND_BG | OAM_HFLIP
- dbsprite 1, 1, 0, 0, $10, OAM_BEHIND_BG | OAM_HFLIP
+ dbsprite 0, 0, 0, 0, $01, OAM_PRIO | OAM_XFLIP
+ dbsprite 1, 0, 0, 0, $00, OAM_PRIO | OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $11, OAM_PRIO | OAM_XFLIP
+ dbsprite 1, 1, 0, 0, $10, OAM_PRIO | OAM_XFLIP
FrameBlock38:
db 4 ; #
@@ -639,41 +639,41 @@ FrameBlock38:
FrameBlock39:
db 4 ; #
- dbsprite 0, 0, 0, 0, $0b, OAM_HFLIP
- dbsprite 1, 0, 0, 0, $0a, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $1b, OAM_HFLIP
- dbsprite 1, 1, 0, 0, $1a, OAM_HFLIP
+ dbsprite 0, 0, 0, 0, $0b, OAM_XFLIP
+ dbsprite 1, 0, 0, 0, $0a, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $1b, OAM_XFLIP
+ dbsprite 1, 1, 0, 0, $1a, OAM_XFLIP
FrameBlock3a:
db 4 ; #
dbsprite 0, 4, 0, 0, $05, 0
- dbsprite 1, 4, 0, 0, $05, OAM_HFLIP
+ dbsprite 1, 4, 0, 0, $05, OAM_XFLIP
dbsprite 0, 5, 0, 0, $15, 0
- dbsprite 1, 5, 0, 0, $15, OAM_HFLIP
+ dbsprite 1, 5, 0, 0, $15, OAM_XFLIP
FrameBlock3b:
db 5 ; #
dbsprite 0, 3, 0, 0, $04, 0
- dbsprite 1, 3, 0, 0, $04, OAM_HFLIP
+ dbsprite 1, 3, 0, 0, $04, OAM_XFLIP
dbsprite 0, 4, 0, 0, $14, 0
- dbsprite 1, 4, 0, 0, $14, OAM_HFLIP
+ dbsprite 1, 4, 0, 0, $14, OAM_XFLIP
dbsprite 0, 5, 4, 0, $41, 0
FrameBlock3c:
db 6 ; #
dbsprite 0, 2, 0, 0, $05, 0
- dbsprite 1, 2, 0, 0, $05, OAM_HFLIP
+ dbsprite 1, 2, 0, 0, $05, OAM_XFLIP
dbsprite 0, 3, 0, 0, $15, 0
- dbsprite 1, 3, 0, 0, $15, OAM_HFLIP
+ dbsprite 1, 3, 0, 0, $15, OAM_XFLIP
dbsprite 0, 4, 4, 0, $42, 0
dbsprite 0, 5, 4, 0, $42, 0
FrameBlock3d:
db 7 ; #
dbsprite 0, 1, 0, 0, $04, 0
- dbsprite 1, 1, 0, 0, $04, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $04, OAM_XFLIP
dbsprite 0, 2, 0, 0, $14, 0
- dbsprite 1, 2, 0, 0, $14, OAM_HFLIP
+ dbsprite 1, 2, 0, 0, $14, OAM_XFLIP
dbsprite 0, 3, 4, 0, $41, 0
dbsprite 0, 4, 4, 0, $41, 0
dbsprite 0, 5, 4, 0, $41, 0
@@ -681,9 +681,9 @@ FrameBlock3d:
FrameBlock3e:
db 8 ; #
dbsprite 0, 0, 0, 0, $05, 0
- dbsprite 1, 0, 0, 0, $05, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $05, OAM_XFLIP
dbsprite 0, 1, 0, 0, $15, 0
- dbsprite 1, 1, 0, 0, $15, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $15, OAM_XFLIP
dbsprite 0, 2, 4, 0, $42, 0
dbsprite 0, 3, 4, 0, $42, 0
dbsprite 0, 4, 4, 0, $42, 0
@@ -692,9 +692,9 @@ FrameBlock3e:
FrameBlock3f:
db 8 ; #
dbsprite 0, 0, 0, 0, $04, 0
- dbsprite 1, 0, 0, 0, $04, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $04, OAM_XFLIP
dbsprite 0, 1, 0, 0, $14, 0
- dbsprite 1, 1, 0, 0, $14, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $14, OAM_XFLIP
dbsprite 0, 2, 4, 0, $41, 0
dbsprite 0, 3, 4, 0, $41, 0
dbsprite 0, 4, 4, 0, $41, 0
@@ -709,7 +709,7 @@ FrameBlock40:
FrameBlock41:
db 4 ; #
dbsprite 0, 0, 0, 0, $06, 0
- dbsprite 1, 0, 0, 0, $06, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $06, OAM_XFLIP
dbsprite 0, 1, 0, 0, $16, 0
dbsprite 1, 1, 0, 0, $17, 0
@@ -765,139 +765,139 @@ FrameBlock46:
FrameBlock47:
db 4 ; #
dbsprite 0, 0, 0, 0, $43, 0
- dbsprite 1, 0, 0, 0, $43, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $43, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $43, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $43, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
SmallBlackCircleFrameBlock:
db 4 ; #
dbsprite 1, 1, 0, 0, $33, 0
- dbsprite 2, 1, 0, 0, $33, OAM_HFLIP
- dbsprite 1, 2, 0, 0, $33, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $33, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 1, 0, 0, $33, OAM_XFLIP
+ dbsprite 1, 2, 0, 0, $33, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $33, OAM_XFLIP | OAM_YFLIP
LargeBlackCircleFrameBlock:
db 16 ; #
dbsprite 0, 0, 0, 0, $22, 0
dbsprite 1, 0, 0, 0, $23, 0
- dbsprite 2, 0, 0, 0, $23, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $22, OAM_HFLIP
+ dbsprite 2, 0, 0, 0, $23, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $22, OAM_XFLIP
dbsprite 0, 1, 0, 0, $32, 0
dbsprite 1, 1, 0, 0, $43, 0
- dbsprite 2, 1, 0, 0, $43, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $32, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $32, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $43, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 3, 0, 0, $22, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $23, OAM_VFLIP
- dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 3, 0, 0, $22, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 1, 0, 0, $43, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $32, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $32, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $43, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $32, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $22, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $23, OAM_YFLIP
+ dbsprite 2, 3, 0, 0, $23, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $22, OAM_XFLIP | OAM_YFLIP
FrameBlock71:
db 16 ; #
dbsprite 0, 0, 0, 0, $22, 0
dbsprite 1, 0, 0, 0, $3b, 0
- dbsprite 2, 0, 0, 0, $23, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $22, OAM_HFLIP
+ dbsprite 2, 0, 0, 0, $23, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $22, OAM_XFLIP
dbsprite 0, 1, 0, 0, $32, 0
dbsprite 1, 1, 0, 0, $43, 0
- dbsprite 2, 1, 0, 0, $43, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $32, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $32, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $43, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 3, 0, 0, $22, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $23, OAM_VFLIP
- dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 3, 0, 0, $22, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 1, 0, 0, $43, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $32, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $32, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $43, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $32, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $22, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $23, OAM_YFLIP
+ dbsprite 2, 3, 0, 0, $23, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $22, OAM_XFLIP | OAM_YFLIP
FrameBlock72:
db 12 ; #
dbsprite 0, 0, 0, 0, $32, 0
dbsprite 1, 0, 0, 0, $43, 0
- dbsprite 2, 0, 0, 0, $43, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $32, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $32, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $43, OAM_VFLIP
- dbsprite 2, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 1, 0, 0, $32, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 2, 0, 0, $22, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $23, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $23, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 2, 0, 0, $22, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 0, 0, 0, $43, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $32, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $32, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $43, OAM_YFLIP
+ dbsprite 2, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 1, 0, 0, $32, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 2, 0, 0, $22, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $23, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $23, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $22, OAM_XFLIP | OAM_YFLIP
FrameBlock73:
db 8 ; #
- dbsprite 0, 0, 0, 0, $32, OAM_VFLIP
- dbsprite 1, 0, 0, 0, $43, OAM_VFLIP
- dbsprite 2, 0, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 0, 0, 0, $32, OAM_HFLIP | OAM_VFLIP
- dbsprite 0, 1, 0, 0, $22, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $23, OAM_VFLIP
- dbsprite 2, 1, 0, 0, $23, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 1, 0, 0, $22, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 0, 0, 0, $32, OAM_YFLIP
+ dbsprite 1, 0, 0, 0, $43, OAM_YFLIP
+ dbsprite 2, 0, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 0, 0, 0, $32, OAM_XFLIP | OAM_YFLIP
+ dbsprite 0, 1, 0, 0, $22, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $23, OAM_YFLIP
+ dbsprite 2, 1, 0, 0, $23, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 1, 0, 0, $22, OAM_XFLIP | OAM_YFLIP
FrameBlock74:
db 4 ; #
- dbsprite 0, 0, 0, 0, $22, OAM_VFLIP
- dbsprite 1, 0, 0, 0, $23, OAM_VFLIP
- dbsprite 2, 0, 0, 0, $23, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 0, 0, 0, $22, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 0, 0, 0, $22, OAM_YFLIP
+ dbsprite 1, 0, 0, 0, $23, OAM_YFLIP
+ dbsprite 2, 0, 0, 0, $23, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 0, 0, 0, $22, OAM_XFLIP | OAM_YFLIP
FrameBlock4a:
db 4 ; #
- dbsprite 3, 1, 0, 0, $4c, OAM_HFLIP
+ dbsprite 3, 1, 0, 0, $4c, OAM_XFLIP
dbsprite 1, 4, 0, 0, $4b, 0
dbsprite 4, 6, 0, 0, $4c, 0
- dbsprite 6, 3, 0, 0, $4b, OAM_VFLIP
+ dbsprite 6, 3, 0, 0, $4b, OAM_YFLIP
FrameBlock4b:
db 4 ; #
dbsprite 3, 0, 0, 0, $4c, 0
- dbsprite 0, 4, 0, 0, $4b, OAM_VFLIP
- dbsprite 4, 7, 0, 0, $4c, OAM_HFLIP
+ dbsprite 0, 4, 0, 0, $4b, OAM_YFLIP
+ dbsprite 4, 7, 0, 0, $4c, OAM_XFLIP
dbsprite 7, 3, 0, 0, $4b, 0
FrameBlock4c:
db 4 ; #
- dbsprite 1, 2, 0, 0, $4a, OAM_VFLIP
+ dbsprite 1, 2, 0, 0, $4a, OAM_YFLIP
dbsprite 2, 6, 0, 0, $4a, 0
- dbsprite 6, 5, 0, 0, $4a, OAM_HFLIP
- dbsprite 5, 1, 0, 0, $4a, OAM_HFLIP | OAM_VFLIP
+ dbsprite 6, 5, 0, 0, $4a, OAM_XFLIP
+ dbsprite 5, 1, 0, 0, $4a, OAM_XFLIP | OAM_YFLIP
FrameBlock4d:
db 4 ; #
- dbsprite 0, 1, 0, 0, $4a, OAM_HFLIP
- dbsprite 1, 7, 0, 0, $4a, OAM_HFLIP | OAM_VFLIP
- dbsprite 7, 6, 0, 0, $4a, OAM_VFLIP
+ dbsprite 0, 1, 0, 0, $4a, OAM_XFLIP
+ dbsprite 1, 7, 0, 0, $4a, OAM_XFLIP | OAM_YFLIP
+ dbsprite 7, 6, 0, 0, $4a, OAM_YFLIP
dbsprite 6, 0, 0, 0, $4a, 0
FrameBlock4e:
db 8 ; #
dbsprite 6, 0, 0, 0, $44, 0
- dbsprite 7, 0, 0, 0, $44, OAM_HFLIP
- dbsprite 6, 1, 0, 0, $44, OAM_VFLIP
- dbsprite 7, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 7, 0, 0, 0, $44, OAM_XFLIP
+ dbsprite 6, 1, 0, 0, $44, OAM_YFLIP
+ dbsprite 7, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP
dbsprite 1, 4, 2, 6, $44, 0
- dbsprite 2, 4, 2, 6, $44, OAM_HFLIP
- dbsprite 1, 5, 2, 6, $44, OAM_VFLIP
- dbsprite 2, 5, 2, 6, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 4, 2, 6, $44, OAM_XFLIP
+ dbsprite 1, 5, 2, 6, $44, OAM_YFLIP
+ dbsprite 2, 5, 2, 6, $44, OAM_XFLIP | OAM_YFLIP
FrameBlock4f:
db 12 ; #
dbsprite 4, 1, 2, 6, $44, 0
- dbsprite 5, 1, 2, 6, $44, OAM_HFLIP
- dbsprite 4, 2, 2, 6, $44, OAM_VFLIP
- dbsprite 5, 2, 2, 6, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 5, 1, 2, 6, $44, OAM_XFLIP
+ dbsprite 4, 2, 2, 6, $44, OAM_YFLIP
+ dbsprite 5, 2, 2, 6, $44, OAM_XFLIP | OAM_YFLIP
dbsprite 6, 0, 2, 6, $47, 0
dbsprite 7, 0, 0, 0, $47, 0
dbsprite 2, 3, 6, 2, $44, 0
- dbsprite 3, 3, 6, 2, $44, OAM_HFLIP
- dbsprite 2, 4, 6, 2, $44, OAM_VFLIP
- dbsprite 3, 4, 6, 2, $44, OAM_HFLIP | OAM_VFLIP
+ dbsprite 3, 3, 6, 2, $44, OAM_XFLIP
+ dbsprite 2, 4, 6, 2, $44, OAM_YFLIP
+ dbsprite 3, 4, 6, 2, $44, OAM_XFLIP | OAM_YFLIP
dbsprite 1, 6, 0, 0, $47, 0
dbsprite 1, 5, 6, 2, $47, 0
@@ -914,14 +914,14 @@ FrameBlock50:
FrameBlock51:
db 8 ; #
- dbsprite 0, 0, 0, 0, $35, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $35, OAM_VFLIP
+ dbsprite 0, 0, 0, 0, $35, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $35, OAM_YFLIP
dbsprite 0, 2, 0, 0, $35, 0
- dbsprite 0, 3, 0, 0, $35, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 3, 0, 0, $35, OAM_XFLIP | OAM_YFLIP
dbsprite 8, 0, 0, 0, $35, 0
- dbsprite 8, 1, 0, 0, $35, OAM_HFLIP | OAM_VFLIP
- dbsprite 8, 2, 0, 0, $35, OAM_HFLIP
- dbsprite 8, 3, 0, 0, $35, OAM_VFLIP
+ dbsprite 8, 1, 0, 0, $35, OAM_XFLIP | OAM_YFLIP
+ dbsprite 8, 2, 0, 0, $35, OAM_XFLIP
+ dbsprite 8, 3, 0, 0, $35, OAM_YFLIP
FrameBlock52:
db 4 ; #
@@ -939,9 +939,9 @@ FrameBlock53:
FrameBlock54:
db 4 ; #
dbsprite 0, 0, 0, 0, $0e, 0
- dbsprite 1, 0, 0, 0, $0e, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $0e, OAM_XFLIP
dbsprite 0, 1, 0, 0, $0f, 0
- dbsprite 1, 1, 0, 0, $0f, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $0f, OAM_XFLIP
FrameBlock55:
db 3 ; #
@@ -989,22 +989,22 @@ FrameBlock5a:
dbsprite 0, 0, 0, 0, $24, 0
dbsprite 1, 0, 0, 0, $25, 0
dbsprite 0, 1, 0, 0, $34, 0
- dbsprite 2, 0, 0, 0, $25, OAM_HFLIP
- dbsprite 3, 0, 0, 0, $24, OAM_HFLIP
- dbsprite 3, 1, 0, 0, $34, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $34, OAM_VFLIP
- dbsprite 0, 3, 0, 0, $24, OAM_VFLIP
- dbsprite 1, 3, 0, 0, $25, OAM_VFLIP
- dbsprite 3, 2, 0, 0, $34, OAM_HFLIP | OAM_VFLIP
- dbsprite 2, 3, 0, 0, $25, OAM_HFLIP | OAM_VFLIP
- dbsprite 3, 3, 0, 0, $24, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 0, 0, 0, $25, OAM_XFLIP
+ dbsprite 3, 0, 0, 0, $24, OAM_XFLIP
+ dbsprite 3, 1, 0, 0, $34, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $34, OAM_YFLIP
+ dbsprite 0, 3, 0, 0, $24, OAM_YFLIP
+ dbsprite 1, 3, 0, 0, $25, OAM_YFLIP
+ dbsprite 3, 2, 0, 0, $34, OAM_XFLIP | OAM_YFLIP
+ dbsprite 2, 3, 0, 0, $25, OAM_XFLIP | OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $24, OAM_XFLIP | OAM_YFLIP
FrameBlock5b:
db 4 ; #
dbsprite 0, 0, 0, 0, $43, 0
- dbsprite 1, 0, 0, 0, $43, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $43, OAM_VFLIP
- dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $43, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $43, OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
FrameBlock5c:
db 8 ; #
@@ -1013,9 +1013,9 @@ FrameBlock5c:
dbsprite 0, 3, 0, 0, $49, 0
dbsprite 2, 2, 0, 0, $49, 0
dbsprite 0, 1, 0, 0, $43, 0
- dbsprite 1, 1, 0, 0, $43, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $43, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 1, 0, 0, $43, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $43, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
FrameBlock5d:
db 11 ; #
@@ -1023,13 +1023,13 @@ FrameBlock5d:
dbsprite 0, 3, 2, 0, $49, 0
dbsprite 2, 2, 0, 4, $49, 0
dbsprite 0, 1, 0, 0, $43, 0
- dbsprite 1, 0, 0, 0, $43, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $43, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 0, 0, 0, $43, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $43, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
dbsprite 1, 0, 0, 4, $43, 0
- dbsprite 2, 0, 0, 4, $43, OAM_HFLIP
- dbsprite 1, 1, 0, 4, $43, OAM_VFLIP
- dbsprite 2, 1, 0, 4, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 0, 0, 4, $43, OAM_XFLIP
+ dbsprite 1, 1, 0, 4, $43, OAM_YFLIP
+ dbsprite 2, 1, 0, 4, $43, OAM_XFLIP | OAM_YFLIP
FrameBlock5e:
db 15 ; #
@@ -1037,17 +1037,17 @@ FrameBlock5e:
dbsprite 2, 1, 0, 0, $49, 0
dbsprite 0, 4, 0, 0, $49, 0
dbsprite 0, 1, 0, 0, $43, 0
- dbsprite 1, 1, 0, 0, $43, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $43, OAM_VFLIP
- dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 1, 1, 0, 0, $43, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $43, OAM_YFLIP
+ dbsprite 1, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
dbsprite 2, 2, 0, 0, $43, 0
- dbsprite 3, 2, 0, 0, $43, OAM_HFLIP
- dbsprite 2, 3, 0, 0, $43, OAM_VFLIP
- dbsprite 3, 3, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 3, 2, 0, 0, $43, OAM_XFLIP
+ dbsprite 2, 3, 0, 0, $43, OAM_YFLIP
+ dbsprite 3, 3, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
dbsprite 1, 4, 0, 0, $43, 0
- dbsprite 2, 4, 0, 0, $43, OAM_HFLIP
- dbsprite 1, 5, 0, 0, $43, OAM_VFLIP
- dbsprite 2, 5, 0, 0, $43, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 4, 0, 0, $43, OAM_XFLIP
+ dbsprite 1, 5, 0, 0, $43, OAM_YFLIP
+ dbsprite 2, 5, 0, 0, $43, OAM_XFLIP | OAM_YFLIP
FrameBlock5f:
db 4 ; #
@@ -1140,9 +1140,9 @@ FrameBlock67:
FrameBlock68:
db 4 ; #
dbsprite 0, 0, 0, 0, $03, 0
- dbsprite 1, 0, 0, 0, $03, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $03, OAM_XFLIP
dbsprite 0, 1, 0, 0, $13, 0
- dbsprite 1, 1, 0, 0, $13, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $13, OAM_XFLIP
FrameBlock69:
db 1 ; #
@@ -1151,35 +1151,35 @@ FrameBlock69:
FrameBlock6a:
db 8 ; #
dbsprite 0, 0, 0, 0, $2e, 0
- dbsprite 6, 0, 0, 0, $2e, OAM_HFLIP
- dbsprite 0, 6, 0, 0, $2e, OAM_VFLIP
- dbsprite 6, 6, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP
+ dbsprite 6, 0, 0, 0, $2e, OAM_XFLIP
+ dbsprite 0, 6, 0, 0, $2e, OAM_YFLIP
+ dbsprite 6, 6, 0, 0, $2e, OAM_XFLIP | OAM_YFLIP
dbsprite 3, 0, 0, 0, $2f, 0
- dbsprite 3, 6, 0, 0, $2f, OAM_VFLIP
+ dbsprite 3, 6, 0, 0, $2f, OAM_YFLIP
dbsprite 0, 3, 0, 0, $3e, 0
- dbsprite 6, 3, 0, 0, $3e, OAM_HFLIP
+ dbsprite 6, 3, 0, 0, $3e, OAM_XFLIP
FrameBlock6b:
db 8 ; #
dbsprite 0, 0, 0, 0, $2e, 0
- dbsprite 4, 0, 0, 0, $2e, OAM_HFLIP
- dbsprite 0, 4, 0, 0, $2e, OAM_VFLIP
- dbsprite 4, 4, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP
+ dbsprite 4, 0, 0, 0, $2e, OAM_XFLIP
+ dbsprite 0, 4, 0, 0, $2e, OAM_YFLIP
+ dbsprite 4, 4, 0, 0, $2e, OAM_XFLIP | OAM_YFLIP
dbsprite 2, 0, 0, 0, $2f, 0
- dbsprite 2, 4, 0, 0, $2f, OAM_VFLIP
+ dbsprite 2, 4, 0, 0, $2f, OAM_YFLIP
dbsprite 0, 2, 0, 0, $3e, 0
- dbsprite 4, 2, 0, 0, $3e, OAM_HFLIP
+ dbsprite 4, 2, 0, 0, $3e, OAM_XFLIP
FrameBlock6c:
db 8 ; #
dbsprite 0, 0, 0, 0, $2e, 0
- dbsprite 2, 0, 0, 0, $2e, OAM_HFLIP
- dbsprite 0, 2, 0, 0, $2e, OAM_VFLIP
- dbsprite 2, 2, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP
+ dbsprite 2, 0, 0, 0, $2e, OAM_XFLIP
+ dbsprite 0, 2, 0, 0, $2e, OAM_YFLIP
+ dbsprite 2, 2, 0, 0, $2e, OAM_XFLIP | OAM_YFLIP
dbsprite 1, 0, 0, 0, $2f, 0
- dbsprite 1, 2, 0, 0, $2f, OAM_VFLIP
+ dbsprite 1, 2, 0, 0, $2f, OAM_YFLIP
dbsprite 0, 1, 0, 0, $3e, 0
- dbsprite 2, 1, 0, 0, $3e, OAM_HFLIP
+ dbsprite 2, 1, 0, 0, $3e, OAM_XFLIP
FrameBlock6d:
db 2 ; #
@@ -1189,9 +1189,9 @@ FrameBlock6d:
FrameBlock6e:
db 4 ; #
dbsprite 0, 0, 0, 0, $48, 0
- dbsprite 1, 0, 0, 0, $48, OAM_HFLIP
+ dbsprite 1, 0, 0, 0, $48, OAM_XFLIP
dbsprite 0, 1, 0, 0, $12, 0
- dbsprite 1, 1, 0, 0, $12, OAM_HFLIP
+ dbsprite 1, 1, 0, 0, $12, OAM_XFLIP
FrameBlock6f:
db 4 ; #
@@ -1202,10 +1202,10 @@ FrameBlock6f:
FrameBlock70:
db 4 ; #
- dbsprite 0, 0, 0, 0, $07, OAM_HFLIP
- dbsprite 1, 0, 0, 0, $4a, OAM_HFLIP
- dbsprite 0, 1, 0, 0, $17, OAM_HFLIP
- dbsprite 1, 1, 0, 0, $16, OAM_HFLIP
+ dbsprite 0, 0, 0, 0, $07, OAM_XFLIP
+ dbsprite 1, 0, 0, 0, $4a, OAM_XFLIP
+ dbsprite 0, 1, 0, 0, $17, OAM_XFLIP
+ dbsprite 1, 1, 0, 0, $16, OAM_XFLIP
FrameBlock76:
db 7 ; #
@@ -1213,16 +1213,16 @@ FrameBlock76:
dbsprite 1, 0, 0, 1, $2f, 0
dbsprite 3, 0, 0, 1, $2f, 0
dbsprite 0, 0, 0, 2, $2e, 0
- dbsprite 4, 0, 0, 2, $2e, OAM_HFLIP
+ dbsprite 4, 0, 0, 2, $2e, OAM_XFLIP
dbsprite 0, 1, 0, 2, $3e, 0
- dbsprite 4, 1, 0, 2, $3e, OAM_HFLIP
+ dbsprite 4, 1, 0, 2, $3e, OAM_XFLIP
FrameBlock77:
db 4 ; #
dbsprite 0, 0, 2, 0, $4b, 0
dbsprite 1, 0, 2, 0, $4c, 0
- dbsprite 0, 1, 0, 0, $4c, OAM_HFLIP | OAM_VFLIP
- dbsprite 1, 1, 0, 0, $4b, OAM_HFLIP | OAM_VFLIP
+ dbsprite 0, 1, 0, 0, $4c, OAM_XFLIP | OAM_YFLIP
+ dbsprite 1, 1, 0, 0, $4b, OAM_XFLIP | OAM_YFLIP
FrameBlock78:
db 1 ; #
diff --git a/data/sprite_anims/surfing_pikachu_frames.asm b/data/sprite_anims/surfing_pikachu_frames.asm
index cf3463a3..28381a7c 100644
--- a/data/sprite_anims/surfing_pikachu_frames.asm
+++ b/data/sprite_anims/surfing_pikachu_frames.asm
@@ -68,38 +68,38 @@ Unkn_f945e:
dorestart
Unkn_f9463:
- frame $01, 8, OAM_HFLIP, OAM_VFLIP
- frame $02, 8, OAM_HFLIP, OAM_VFLIP
+ frame $01, 8, OAM_XFLIP, OAM_YFLIP
+ frame $02, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f9468:
- frame $03, 8, OAM_HFLIP, OAM_VFLIP
- frame $04, 8, OAM_HFLIP, OAM_VFLIP
+ frame $03, 8, OAM_XFLIP, OAM_YFLIP
+ frame $04, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f946d:
- frame $05, 8, OAM_HFLIP, OAM_VFLIP
- frame $06, 8, OAM_HFLIP, OAM_VFLIP
+ frame $05, 8, OAM_XFLIP, OAM_YFLIP
+ frame $06, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f9472:
- frame $07, 8, OAM_HFLIP, OAM_VFLIP
- frame $08, 8, OAM_HFLIP, OAM_VFLIP
+ frame $07, 8, OAM_XFLIP, OAM_YFLIP
+ frame $08, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f9477:
- frame $09, 8, OAM_HFLIP, OAM_VFLIP
- frame $0a, 8, OAM_HFLIP, OAM_VFLIP
+ frame $09, 8, OAM_XFLIP, OAM_YFLIP
+ frame $0a, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f947c:
- frame $0b, 8, OAM_HFLIP, OAM_VFLIP
- frame $0c, 8, OAM_HFLIP, OAM_VFLIP
+ frame $0b, 8, OAM_XFLIP, OAM_YFLIP
+ frame $0c, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f9481:
- frame $0d, 8, OAM_HFLIP, OAM_VFLIP
- frame $0e, 8, OAM_HFLIP, OAM_VFLIP
+ frame $0d, 8, OAM_XFLIP, OAM_YFLIP
+ frame $0e, 8, OAM_XFLIP, OAM_YFLIP
dorestart
Unkn_f9486:
diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm
index 74eb2525..ce5faa59 100644
--- a/data/sprites/facings.asm
+++ b/data/sprites/facings.asm
@@ -59,10 +59,10 @@ SpriteFacingAndAnimationTable:
.WalkingDown2:
db 4 ; #
- db 0, 8, $80, OAM_HFLIP
- db 0, 0, $81, OAM_HFLIP
- db 8, 8, $82, OAM_HFLIP | UNDER_GRASS
- db 8, 0, $83, OAM_HFLIP | UNDER_GRASS | FACING_END
+ db 0, 8, $80, OAM_XFLIP
+ db 0, 0, $81, OAM_XFLIP
+ db 8, 8, $82, OAM_XFLIP | UNDER_GRASS
+ db 8, 0, $83, OAM_XFLIP | UNDER_GRASS | FACING_END
.StandingUp:
db 4 ; #
@@ -80,10 +80,10 @@ SpriteFacingAndAnimationTable:
.WalkingUp2:
db 4 ; #
- db 0, 8, $84, OAM_HFLIP
- db 0, 0, $85, OAM_HFLIP
- db 8, 8, $86, OAM_HFLIP | UNDER_GRASS
- db 8, 0, $87, OAM_HFLIP | UNDER_GRASS | FACING_END
+ db 0, 8, $84, OAM_XFLIP
+ db 0, 0, $85, OAM_XFLIP
+ db 8, 8, $86, OAM_XFLIP | UNDER_GRASS
+ db 8, 0, $87, OAM_XFLIP | UNDER_GRASS | FACING_END
.StandingLeft:
db 4 ; #
@@ -101,26 +101,26 @@ SpriteFacingAndAnimationTable:
.StandingRight:
db 4 ; #
- db 0, 8, $08, OAM_HFLIP
- db 0, 0, $09, OAM_HFLIP
- db 8, 8, $0a, OAM_HFLIP | UNDER_GRASS
- db 8, 0, $0b, OAM_HFLIP | UNDER_GRASS | FACING_END
+ db 0, 8, $08, OAM_XFLIP
+ db 0, 0, $09, OAM_XFLIP
+ db 8, 8, $0a, OAM_XFLIP | UNDER_GRASS
+ db 8, 0, $0b, OAM_XFLIP | UNDER_GRASS | FACING_END
.WalkingRight:
db 4 ; #
- db 0, 8, $88, OAM_HFLIP
- db 0, 0, $89, OAM_HFLIP
- db 8, 8, $8a, OAM_HFLIP | UNDER_GRASS
- db 8, 0, $8b, OAM_HFLIP | UNDER_GRASS | FACING_END
+ db 0, 8, $88, OAM_XFLIP
+ db 0, 0, $89, OAM_XFLIP
+ db 8, 8, $8a, OAM_XFLIP | UNDER_GRASS
+ db 8, 0, $8b, OAM_XFLIP | UNDER_GRASS | FACING_END
.SpecialCase:
db 9 ; #
db -4, -4, $00, 0
db -4, 4, $01, 0
- db -4, 12, $00, OAM_HFLIP
+ db -4, 12, $00, OAM_XFLIP
db 4, -4, $01, 0
db 4, 4, $02, 0
db 4, 12, $01, 0
- db 12, -4, $00, OAM_VFLIP | UNDER_GRASS
+ db 12, -4, $00, OAM_YFLIP | UNDER_GRASS
db 12, 4, $01, UNDER_GRASS
- db 12, 12, $00, OAM_VFLIP | OAM_HFLIP | UNDER_GRASS | FACING_END
+ db 12, 12, $00, OAM_YFLIP | OAM_XFLIP | UNDER_GRASS | FACING_END
diff --git a/data/tilesets/ledge_tiles.asm b/data/tilesets/ledge_tiles.asm
index db293800..8c5bff7f 100644
--- a/data/tilesets/ledge_tiles.asm
+++ b/data/tilesets/ledge_tiles.asm
@@ -1,11 +1,11 @@
LedgeTiles:
; player direction, tile player standing on, ledge tile, input required
- db SPRITE_FACING_DOWN, $2C, $37, D_DOWN
- db SPRITE_FACING_DOWN, $39, $36, D_DOWN
- db SPRITE_FACING_DOWN, $39, $37, D_DOWN
- db SPRITE_FACING_LEFT, $2C, $27, D_LEFT
- db SPRITE_FACING_LEFT, $39, $27, D_LEFT
- db SPRITE_FACING_RIGHT, $2C, $0D, D_RIGHT
- db SPRITE_FACING_RIGHT, $2C, $1D, D_RIGHT
- db SPRITE_FACING_RIGHT, $39, $0D, D_RIGHT
+ db SPRITE_FACING_DOWN, $2C, $37, PAD_DOWN
+ db SPRITE_FACING_DOWN, $39, $36, PAD_DOWN
+ db SPRITE_FACING_DOWN, $39, $37, PAD_DOWN
+ db SPRITE_FACING_LEFT, $2C, $27, PAD_LEFT
+ db SPRITE_FACING_LEFT, $39, $27, PAD_LEFT
+ db SPRITE_FACING_RIGHT, $2C, $0D, PAD_RIGHT
+ db SPRITE_FACING_RIGHT, $2C, $1D, PAD_RIGHT
+ db SPRITE_FACING_RIGHT, $39, $0D, PAD_RIGHT
db -1 ; end
diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm
index 08399ad4..cba2f154 100644
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -97,13 +97,13 @@ DrawFrameBlock:
; toggle horizontal and vertical flip
ld a, [hli] ; flags
and a
- ld b, OAM_VFLIP | OAM_HFLIP
+ ld b, OAM_YFLIP | OAM_XFLIP
jr z, .storeFlags1
- cp OAM_HFLIP
- ld b, OAM_VFLIP
+ cp OAM_XFLIP
+ ld b, OAM_YFLIP
jr z, .storeFlags1
- cp OAM_VFLIP
- ld b, OAM_HFLIP
+ cp OAM_YFLIP
+ ld b, OAM_XFLIP
jr z, .storeFlags1
ld b, 0
.storeFlags1
@@ -138,13 +138,13 @@ DrawFrameBlock:
ld [de], a ; store tile ID
inc de
ld a, [hli]
- bit OAM_X_FLIP, a
+ bit B_OAM_XFLIP, a
jr nz, .disableHorizontalFlip
.enableHorizontalFlip
- set OAM_X_FLIP, a
+ set B_OAM_XFLIP, a
jr .storeFlags2
.disableHorizontalFlip
- res OAM_X_FLIP, a
+ res B_OAM_XFLIP, a
.storeFlags2
ld b, a
ld a, [wdef4]
@@ -766,7 +766,7 @@ DoBallTossSpecialEffects:
dec b
jr nz, .loop
ld a, %00001000
- ldh [rNR10], a ; Channel 1 sweep register
+ ldh [rAUD1SWEEP], a ; Channel 1 sweep register
ret
.isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame
ld a, [wSubAnimCounter]
@@ -2587,7 +2587,7 @@ FallingObjects_UpdateOAMEntry:
ld [wdef4], a
.asm_79e5c
inc hl
- ld a, 1 << OAM_X_FLIP
+ ld a, OAM_XFLIP
.next2
ld b, a
ld a, [wdef4]
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 2a1134de..8024fb9e 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -18,7 +18,7 @@ SlidePlayerAndEnemySilhouettesOnScreen:
call LoadFontTilePatterns
call LoadHudAndHpBarAndStatusTilePatterns
ld hl, vBGMap0
- ld bc, BG_MAP_WIDTH * BG_MAP_HEIGHT
+ ld bc, TILEMAP_AREA
.clearBackgroundLoop
ld a, " "
ld [hli], a
@@ -326,7 +326,7 @@ MainInBattleLoop:
bit USING_TRAPPING_MOVE, a ; check if enemy is using a multi-turn attack like wrap
jr z, .selectPlayerMove ; if not, jump
; enemy is using a multi-turn attack like wrap, so player is trapped and cannot execute a move
- ld a, $ff
+ ld a, CANNOT_MOVE
ld [wPlayerSelectedMove], a
jr .selectEnemyMove
.selectPlayerMove
@@ -2172,9 +2172,9 @@ DisplayBattleMenu::
inc hl
ld a, $1
ld [hli], a ; wMaxMenuItem
- ld [hl], D_RIGHT | A_BUTTON ; wMenuWatchedKeys
+ ld [hl], PAD_RIGHT | PAD_A ; wMenuWatchedKeys
call HandleMenuInput
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr nz, .rightColumn
jr .AButtonPressed ; the A button was pressed
.rightColumn ; put cursor in right column of menu
@@ -2205,10 +2205,10 @@ DisplayBattleMenu::
inc hl
ld a, $1
ld [hli], a ; wMaxMenuItem
- ld a, D_LEFT | A_BUTTON
+ ld a, PAD_LEFT | PAD_A
ld [hli], a ; wMenuWatchedKeys
call HandleMenuInput
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr nz, .leftColumn ; if left was pressed, jump
ld a, [wCurrentMenuItem]
add $2 ; if we're in the right column, the actual id is +2
@@ -2450,12 +2450,12 @@ PartyMenuOrRockOrRun:
inc hl
ld a, $2
ld [hli], a ; wMaxMenuItem
- ld a, B_BUTTON | A_BUTTON
+ ld a, PAD_B | PAD_A
ld [hli], a ; wMenuWatchedKeys
xor a
ld [hl], a ; wLastMenuItem
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .partyMonDeselected ; if B was pressed, jump
; A was pressed
call PlaceUnfilledArrowMenuCursor
@@ -2481,10 +2481,10 @@ PartyMenuOrRockOrRun:
jr nz, .doEnemyMonAnimation
; enemy mon doesn't have substitute
ld a, [wEnemyMonMinimized]
- and a ; has the enemy mon used Minimise?
+ and a ; has the enemy mon used Minimize?
ld hl, AnimationMinimizeMon
jr nz, .doEnemyMonAnimation
-; enemy mon is not minimised
+; enemy mon is not minimized
ld a, [wEnemyMonSpecies]
ld [wCurPartySpecies], a
ld [wCurSpecies], a
@@ -2651,10 +2651,10 @@ MoveSelectionMenu:
ld [hli], a ; wMaxMenuItem
ld a, [wMoveMenuType]
dec a
- ld b, D_UP | D_DOWN | A_BUTTON
+ ld b, PAD_UP | PAD_DOWN | PAD_A
jr z, .matchedkeyspicked
dec a
- ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON
+ ld b, PAD_UP | PAD_DOWN | PAD_A | PAD_B
jr z, .matchedkeyspicked
ld a, [wLinkState]
cp LINK_STATE_BATTLING
@@ -2662,9 +2662,9 @@ MoveSelectionMenu:
; Disable left, right, and START buttons in regular battles.
ld a, [wStatusFlags7]
bit BIT_TEST_BATTLE, a
- ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT
+ ld b, ~(PAD_LEFT | PAD_RIGHT | PAD_START)
jr z, .matchedkeyspicked
- ld b, D_UP | D_DOWN | D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON | SELECT | START
+ ld b, PAD_CTRL_PAD | PAD_BUTTONS
.matchedkeyspicked
ld a, b
ld [hli], a ; wMenuWatchedKeys
@@ -2710,21 +2710,21 @@ SelectMenuItem:
call HandleMenuInput
ld hl, hUILayoutFlags
res BIT_DOUBLE_SPACED_MENU, [hl]
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, SelectMenuItem_CursorUp
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, SelectMenuItem_CursorDown
- bit BIT_SELECT, a
+ bit B_PAD_SELECT, a
jp nz, SwapMovesInMenu
IF DEF(_DEBUG)
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_3d4f5
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jp nz, Func_3d529
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jp nz, Func_3d523
ENDC
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
push af
xor a
ld [wMenuItemToSwap], a
@@ -2821,7 +2821,7 @@ SelectMenuItem_CursorDown:
Func_3d4f5:
IF DEF(_DEBUG)
- ASSERT BIT_START == BIT_TRAINER_BATTLE
+ ASSERT B_PAD_START == BIT_TRAINER_BATTLE
ENDC
bit BIT_TRAINER_BATTLE, a
ld a, $0
@@ -3165,7 +3165,7 @@ SelectEnemyMove:
pop hl
jr z, .chooseRandomMove ; move disabled, try again
and a
- jr z, .chooseRandomMove ; move non-existant, try again
+ jr z, .chooseRandomMove ; move non-existent, try again
.done
ld [wEnemySelectedMove], a
ret
@@ -3189,7 +3189,8 @@ LinkBattleExchangeData:
ld b, LINKBATTLE_STRUGGLE
jr z, .next
dec b ; LINKBATTLE_NO_ACTION
- inc a ; does move equal -1 (i.e. no action)?
+ ASSERT CANNOT_MOVE == $ff
+ inc a
jr z, .next
ld a, [wPlayerMoveListIndex]
jr .doExchange
@@ -3242,8 +3243,9 @@ ExecutePlayerMove:
xor a
ldh [hWhoseTurn], a ; set player's turn
ld a, [wPlayerSelectedMove]
+ ASSERT CANNOT_MOVE == $ff
inc a
- jp z, ExecutePlayerMoveDone ; for selected move = FF, skip most of player's turn
+ jp z, ExecutePlayerMoveDone ; if the player cannot move, skip most of their turn
xor a
ld [wMoveMissed], a
ld [wMonIsDisobedient], a
@@ -5766,6 +5768,7 @@ RandomizeDamage:
; for more detailed commentary, see equivalent function for player side (ExecutePlayerMove)
ExecuteEnemyMove:
ld a, [wEnemySelectedMove]
+ ASSERT CANNOT_MOVE == $ff
inc a
jp z, ExecuteEnemyMoveDone
call PrintGhostText
diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm
index d7c7b9cb..b2976a64 100644
--- a/engine/battle/effects.asm
+++ b/engine/battle/effects.asm
@@ -329,7 +329,7 @@ FreezeBurnParalyzeEffect:
ld hl, BurnedText
jp PrintText
.freeze2
-; hyper beam bits aren't reseted for opponent's side
+; hyper beam bits aren't reset for opponent's side
ld a, 1 << FRZ
ld [wBattleMonStatus], a
ld a, SHAKE_SCREEN_ANIM
diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm
index 1230b936..6514ccaa 100644
--- a/engine/battle/ghost_marowak_anim.asm
+++ b/engine/battle/ghost_marowak_anim.asm
@@ -77,7 +77,7 @@ CopyMonPicFromBGToSpriteVRAM:
ld [hli], a
ld a, d
ld [hli], a
- ld a, OAM_OBP1 | OAM_HIGH_PALS
+ ld a, OAM_PAL1 | OAM_HIGH_PALS
ld [hli], a
inc d
dec c
diff --git a/engine/battle/init_battle.asm b/engine/battle/init_battle.asm
index 58e18a3f..fabff3e3 100644
--- a/engine/battle/init_battle.asm
+++ b/engine/battle/init_battle.asm
@@ -14,7 +14,7 @@ DetermineWildOpponent:
bit BIT_DEBUG_MODE, a
jr z, .notDebugMode
ldh a, [hJoyHeld]
- bit BIT_B_BUTTON, a ; disable wild encounters
+ bit B_PAD_B, a ; disable wild encounters
ret nz
.notDebugMode
ld a, [wNumberOfNoRandomBattleStepsLeft]
@@ -157,7 +157,7 @@ _LoadTrainerPic:
ld d, a ; de contains pointer to trainer pic
ld a, [wLinkState]
and a
- ld a, BANK("Pics 6") ; this is where all the trainer pics are (not counting Red's)
+ ld a, BANK("Trainer Pics")
jr z, .loadSprite
ld a, BANK(RedPicFront)
.loadSprite
diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm
index 92a6853f..5cd07d53 100644
--- a/engine/debug/debug_menu.asm
+++ b/engine/debug/debug_menu.asm
@@ -30,7 +30,7 @@ IF DEF(_DEBUG)
ld a, TEXT_DELAY_MEDIUM
ld [wOptions], a
- ld a, A_BUTTON | B_BUTTON | START
+ ld a, PAD_A | PAD_B | PAD_START
ld [wMenuWatchedKeys], a
xor a
ld [wMenuJoypadPollCount], a
@@ -46,7 +46,7 @@ IF DEF(_DEBUG)
ld [wMenuWatchMovingOutOfBounds], a
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
ld hl, DisplayTitleScreen
ret nz
@@ -149,19 +149,19 @@ Func_fe7db:
pop de
pop bc
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_fe812
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_fe850
- bit BIT_SELECT, a
+ bit B_PAD_SELECT, a
jp nz, DebugMenu
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_fe97f
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jp nz, Func_fe8a1
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_fe85d
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_fe880
jr Func_fe7db
@@ -286,17 +286,17 @@ Func_fe8b0:
pop de
pop bc
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_fe8d9
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_fe902
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_fe97f
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jp nz, Func_fe7ca
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_fe912
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_fe93b
jr Func_fe8b0
@@ -543,11 +543,11 @@ Func_fea85:
call JoypadLowSensitivity
pop bc
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_fea9d
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_fec10
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_feae4
jr Func_fea85
@@ -594,15 +594,15 @@ Func_feaf1:
call JoypadLowSensitivity
pop bc
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_feb13
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_feb82
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_fec10
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jp nz, Func_febba
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_fea78
jr Func_feaf1
@@ -704,15 +704,15 @@ Func_febc4:
call JoypadLowSensitivity
pop bc
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_febe6
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_fec01
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_fec10
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jp nz, Func_feae4
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_fea78
jr Func_febc4
@@ -948,11 +948,11 @@ Func_fee23:
call DelayFrame
call JoypadLowSensitivity
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_fee49
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_fee56
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_fee96
jr .asm_fee30
@@ -1007,15 +1007,15 @@ Func_fee96:
call JoypadLowSensitivity
ld hl, wCurEnemyLevel
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_feed1
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_feedb
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_ff12c
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_fee23
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_fef60
jr .asm_feeab
@@ -1107,15 +1107,15 @@ Func_fef68:
pop bc
pop de
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_fef92
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_fef9e
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_ff12c
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_fefa8
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_fefb5
jr .asm_fef6b
@@ -1239,15 +1239,15 @@ Func_ff043:
pop bc
pop de
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_ff06d
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_ff072
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_ff12c
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jp nz, Func_ff077
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp nz, Func_ff08f
jr .asm_ff046
@@ -1469,11 +1469,11 @@ Func_ff1e7:
call DelayFrame
call JoypadLowSensitivity
ldh a, [hJoy5]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, Func_ff21b
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, Func_ff227
- bit BIT_START, a
+ bit B_PAD_START, a
jp nz, Func_ff236
jr Func_ff1e7
@@ -1603,7 +1603,7 @@ Func_ff2f3:
push hl
call DebugEnableSRAM
ld a, b
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld bc, sBox2 - sBox1
call CopyData
pop hl
@@ -1619,16 +1619,16 @@ Func_ff2f3:
ret
DebugEnableSRAM: ; duplicate of EnableSRAM
- ld a, SRAM_BANKING_MODE
- ld [MBC1SRamBankingMode], a
- ld a, SRAM_ENABLE
- ld [MBC1SRamEnable], a
+ ld a, BMODE_ADVANCED
+ ld [rBMODE], a
+ ld a, RAMG_SRAM_ENABLE
+ ld [rRAMG], a
ret
DebugDisableSRAM: ; duplicate of DisableSRAM
- ld a, SRAM_DISABLE
- ld [MBC1SRamBankingMode], a
- ld [MBC1SRamEnable], a
+ ld a, 0
+ ld [rBMODE], a
+ ld [rRAMG], a
ret
Func_ff32a:
diff --git a/engine/events/black_out.asm b/engine/events/black_out.asm
index c45c3101..f142782a 100644
--- a/engine/events/black_out.asm
+++ b/engine/events/black_out.asm
@@ -43,6 +43,6 @@ ResetStatusAndHalveMoneyOnBlackout::
set BIT_FLY_OR_DUNGEON_WARP, [hl]
res BIT_FLY_WARP, [hl]
set BIT_ESCAPE_WARP, [hl]
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
predef_jump HealParty
diff --git a/engine/events/cinnabar_lab.asm b/engine/events/cinnabar_lab.asm
index d8066fb8..23d057b3 100644
--- a/engine/events/cinnabar_lab.asm
+++ b/engine/events/cinnabar_lab.asm
@@ -3,7 +3,7 @@ GiveFossilToCinnabarLab::
set BIT_NO_TEXT_DELAY, [hl]
xor a
ld [wCurrentMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, [wFilteredBagItemsCount]
dec a
@@ -27,7 +27,7 @@ GiveFossilToCinnabarLab::
ld hl, wStatusFlags5
res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .cancelledGivingFossil
ld hl, wFilteredBagItems
ld a, [wCurrentMenuItem]
diff --git a/engine/events/hidden_objects/bills_house_pc.asm b/engine/events/hidden_objects/bills_house_pc.asm
index cd3827ea..fefb66dd 100644
--- a/engine/events/hidden_objects/bills_house_pc.asm
+++ b/engine/events/hidden_objects/bills_house_pc.asm
@@ -71,7 +71,7 @@ BillsHousePokemonList::
ld [wMenuItemOffset], a ; not used
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 4
ld [wMaxMenuItem], a
@@ -92,7 +92,7 @@ BillsHousePokemonList::
call PrintText
call SaveScreenTilesToBuffer2
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .cancel
ld a, [wCurrentMenuItem]
add EEVEE
diff --git a/engine/events/hidden_objects/school_blackboard.asm b/engine/events/hidden_objects/school_blackboard.asm
index c40530a6..75811035 100644
--- a/engine/events/hidden_objects/school_blackboard.asm
+++ b/engine/events/hidden_objects/school_blackboard.asm
@@ -15,7 +15,7 @@ LinkCableHelp::
ld [wMenuItemOffset], a ; not used
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 3
ld [wMaxMenuItem], a
@@ -35,7 +35,7 @@ LinkCableHelp::
ld hl, LinkCableHelpText2
call PrintText
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .exit
ld a, [wCurrentMenuItem]
cp 3 ; pressed a on "STOP READING"
@@ -98,7 +98,7 @@ ViridianSchoolBlackboard::
ld [wMenuItemOffset], a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON
+ ld a, PAD_LEFT | PAD_RIGHT | PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 2
ld [wMaxMenuItem], a
@@ -121,9 +121,9 @@ ViridianSchoolBlackboard::
ld hl, ViridianSchoolBlackboardText2
call PrintText
call HandleMenuInput ; pressing up and down is handled in here
- bit BIT_B_BUTTON, a ; pressed b
+ bit B_PAD_B, a ; pressed b
jr nz, .exitBlackboard
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr z, .didNotPressRight
; move cursor to right column
ld a, 2
@@ -136,7 +136,7 @@ ViridianSchoolBlackboard::
ld [wMenuItemOffset], a
jr .blackboardLoop
.didNotPressRight
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr z, .didNotPressLeftOrRight
; move cursor to left column
ld a, 2
diff --git a/engine/events/hidden_objects/vermilion_gym_trash.asm b/engine/events/hidden_objects/vermilion_gym_trash.asm
index 428746f7..5f13a0e4 100644
--- a/engine/events/hidden_objects/vermilion_gym_trash.asm
+++ b/engine/events/hidden_objects/vermilion_gym_trash.asm
@@ -107,7 +107,7 @@ VermilionGymTrashSuccessText2::
text_end
; unused
-VermilionGymTrashSuccesPlaySfx:
+VermilionGymTrashSuccessPlaySfx:
text_asm
call WaitForSoundToFinish
ld a, SFX_SWITCH
diff --git a/engine/events/pewter_guys.asm b/engine/events/pewter_guys.asm
index 06bb60fb..029157e6 100644
--- a/engine/events/pewter_guys.asm
+++ b/engine/events/pewter_guys.asm
@@ -66,13 +66,13 @@ PewterMuseumGuyCoords:
dw .right
.down
- db D_UP, D_UP, $ff
+ db PAD_UP, PAD_UP, $ff
.up
- db D_RIGHT, D_LEFT, $ff
+ db PAD_RIGHT, PAD_LEFT, $ff
.left
- db D_UP, D_RIGHT, $ff
+ db PAD_UP, PAD_RIGHT, $ff
.right
- db D_UP, D_LEFT, $ff
+ db PAD_UP, PAD_LEFT, $ff
; these are the five coordinates which trigger the gym guy and pointers to
; different movements for the player to make to get positioned before the
@@ -91,12 +91,12 @@ PewterGymGuyCoords:
dw .five
.one
- db D_LEFT, D_DOWN, D_DOWN, D_RIGHT, $ff
+ db PAD_LEFT, PAD_DOWN, PAD_DOWN, PAD_RIGHT, $ff
.two
- db D_LEFT, D_DOWN, D_RIGHT, D_LEFT, $ff
+ db PAD_LEFT, PAD_DOWN, PAD_RIGHT, PAD_LEFT, $ff
.three
- db D_LEFT, D_LEFT, D_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff
+ db PAD_LEFT, PAD_LEFT, PAD_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff
.four
- db D_LEFT, D_LEFT, D_UP, D_LEFT, $ff
+ db PAD_LEFT, PAD_LEFT, PAD_UP, PAD_LEFT, $ff
.five
- db D_LEFT, D_DOWN, D_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff
+ db PAD_LEFT, PAD_DOWN, PAD_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff
diff --git a/engine/events/prize_menu.asm b/engine/events/prize_menu.asm
index 8701e351..4285b7d6 100644
--- a/engine/events/prize_menu.asm
+++ b/engine/events/prize_menu.asm
@@ -13,7 +13,7 @@ CeladonPrizeMenu::
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, $03
ld [wMaxMenuItem], a
@@ -30,7 +30,7 @@ CeladonPrizeMenu::
ld hl, WhichPrizeTextPtr
call PrintText
call HandleMenuInput ; menu choice handler
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .noChoice
ld a, [wCurrentMenuItem]
cp 3 ; "NO,THANKS" choice
diff --git a/engine/events/vending_machine.asm b/engine/events/vending_machine.asm
index bfe32ef6..979d9d82 100644
--- a/engine/events/vending_machine.asm
+++ b/engine/events/vending_machine.asm
@@ -7,7 +7,7 @@ VendingMachineMenu::
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 3
ld [wMaxMenuItem], a
@@ -30,7 +30,7 @@ VendingMachineMenu::
ld hl, wStatusFlags5
res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .notThirsty
ld a, [wCurrentMenuItem]
cp 3 ; chose Cancel?
diff --git a/engine/gfx/animated_objects.asm b/engine/gfx/animated_objects.asm
index 0a71f59d..83d36aa9 100644
--- a/engine/gfx/animated_objects.asm
+++ b/engine/gfx/animated_objects.asm
@@ -227,7 +227,7 @@ GetCurrentAnimatedObjectTileYCoordinate:
push hl
ld a, [hl]
ld hl, wCurAnimatedObjectOAMAttributes
- bit OAM_Y_FLIP, [hl]
+ bit B_OAM_YFLIP, [hl]
jr z, .no_flip
add $8
xor $ff
@@ -240,7 +240,7 @@ GetCurrentAnimatedObjectTileXCoordinate:
push hl
ld a, [hl]
ld hl, wCurAnimatedObjectOAMAttributes
- bit OAM_X_FLIP, [hl]
+ bit B_OAM_XFLIP, [hl]
jr z, .no_flip
add $8
xor $ff
@@ -254,12 +254,12 @@ SetCurrentAnimatedObjectOAMAttributes:
ld b, a
ld a, [hl]
xor b
- and OAM_HFLIP | OAM_VFLIP | OAM_BEHIND_BG
+ and OAM_XFLIP | OAM_YFLIP | OAM_PRIO
ld b, a
ld a, [hl]
- and OAM_OBP1
+ and OAM_PAL1
or b
- bit OAM_OBP_NUM, a
+ bit B_OAM_PAL1, a
ret z
or OAM_HIGH_PALS
ret
diff --git a/engine/gfx/bg_map_attributes.asm b/engine/gfx/bg_map_attributes.asm
index 740e9994..cc550ff8 100644
--- a/engine/gfx/bg_map_attributes.asm
+++ b/engine/gfx/bg_map_attributes.asm
@@ -24,17 +24,17 @@ LoadBGMapAttributes::
ld de, $10
add hl, de
ld a, h
- ldh [rHDMA1], a
+ ldh [rVDMA_SRC_HIGH], a
ld a, l
- ldh [rHDMA2], a
+ ldh [rVDMA_SRC_LOW], a
ld de, vBGMap0
ld a, d
- ldh [rHDMA3], a
+ ldh [rVDMA_DEST_HIGH], a
ld a, e
- ldh [rHDMA4], a
+ ldh [rVDMA_DEST_LOW], a
ldh a, [rLCDC]
- and 1 << rLCDC_ENABLE ; is LCD off?
+ and LCDC_ON ; is LCD off?
jr z, .lcdOff ; if off, transfer immediately
; wait for VBlank if LCD is on
.waitForVBlankLoop1
@@ -47,7 +47,7 @@ LoadBGMapAttributes::
jr nz, .waitForAccessibleVRAMLoop1 ; loop until we're in a safe period to transfer to VRAM
.lcdOff
ld a, c ; number of BG attributes to transfer, plus 1 times 16
- ldh [rHDMA5], a ; initiate transfer
+ ldh [rVDMA_LEN], a ; initiate transfer
call Func_3082 ; update audio so it doesn't "lag"
pop hl
ld a, [hli]
@@ -58,17 +58,17 @@ LoadBGMapAttributes::
ld d, a ; offset of the attributes
add hl, de ; hl = new pointer
ld a, h
- ldh [rHDMA1], a
+ ldh [rVDMA_SRC_HIGH], a
ld a, l
- ldh [rHDMA2], a
+ ldh [rVDMA_SRC_LOW], a
ld de, vBGMap1 ; copy to vBGMap1
ld a, d
- ldh [rHDMA3], a
+ ldh [rVDMA_DEST_HIGH], a
ld a, e
- ldh [rHDMA4], a
+ ldh [rVDMA_DEST_LOW], a
; LCD check again
ldh a, [rLCDC]
- and 1 << rLCDC_ENABLE ; is LCD off?
+ and LCDC_ON ; is LCD off?
jr z, .lcdOff2 ; if off, transfer immediately
; wait for VBlank if LCD is on
.waitForVBlankLoop2
@@ -81,7 +81,7 @@ LoadBGMapAttributes::
jr nz, .waitForAccessibleVRAMLoop2 ; loop until we're in a safe period to transfer to VRAM
.lcdOff2
ld a, c
- ldh [rHDMA5], a
+ ldh [rVDMA_LEN], a
pop af
dec a
dec a
@@ -96,7 +96,7 @@ LoadBGMapAttributes::
.done
call Func_3082
ldh a, [rIF]
- res VBLANK, a
+ res B_IF_VBLANK, a
ldh [rIF], a
xor a
ldh [rVBK], a
diff --git a/engine/gfx/palettes.asm b/engine/gfx/palettes.asm
index a618fe91..16869869 100644
--- a/engine/gfx/palettes.asm
+++ b/engine/gfx/palettes.asm
@@ -226,7 +226,7 @@ SetPal_TrainerCard:
srl a
push af
jr c, .haveBadge
-; The player doens't have the badge, so zero the badge's blk data.
+; The player doesn't have the badge, so zero the badge's blk data.
push bc
ld a, [de]
ld c, a
@@ -723,7 +723,7 @@ SendSGBPackets:
pop hl
call InitCGBPalettes
ldh a, [rLCDC]
- and 1 << rLCDC_ENABLE
+ and LCDC_ON
ret z
call Delay3
ret
@@ -853,7 +853,7 @@ TransferCurBGPData::
ld hl, wCGBPal
ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode
ldh a, [rLCDC]
- and 1 << rLCDC_ENABLE
+ and LCDC_ON
jr nz, .lcdEnabled
REPT NUM_PAL_COLORS
call TransferPalColorLCDDisabled
@@ -892,7 +892,7 @@ BufferBGPPal::
TransferBGPPals::
; Transfer the buffered BG palettes.
ldh a, [rLCDC]
- and 1 << rLCDC_ENABLE
+ and LCDC_ON
jr z, .lcdDisabled
di
.waitLoop
@@ -929,7 +929,7 @@ TransferCurOBPData:
ld hl, wCGBPal
ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode
ldh a, [rLCDC]
- and 1 << rLCDC_ENABLE
+ and LCDC_ON
jr nz, .lcdEnabled
REPT NUM_PAL_COLORS
call TransferPalColorLCDDisabled
diff --git a/engine/gfx/sprite_oam.asm b/engine/gfx/sprite_oam.asm
index 506b50a7..a1549c6c 100644
--- a/engine/gfx/sprite_oam.asm
+++ b/engine/gfx/sprite_oam.asm
@@ -119,7 +119,7 @@ PrepareOAMData::
or [hl]
.skipPriority
and $f0
- bit OAM_OBP_NUM, a
+ bit B_OAM_PAL1, a
jr z, .spriteusesOBP0
or OAM_HIGH_PALS
.spriteusesOBP0
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm
index 89d51d0b..bf43293e 100644
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -758,15 +758,15 @@ ItemUseSurfboard:
.makePlayerMoveForward
ld a, [wPlayerDirection] ; direction the player is going
bit PLAYER_DIR_BIT_UP, a
- ld b, D_UP
+ ld b, PAD_UP
jr nz, .storeSimulatedButtonPress
bit PLAYER_DIR_BIT_DOWN, a
- ld b, D_DOWN
+ ld b, PAD_DOWN
jr nz, .storeSimulatedButtonPress
bit PLAYER_DIR_BIT_LEFT, a
- ld b, D_LEFT
+ ld b, PAD_LEFT
jr nz, .storeSimulatedButtonPress
- ld b, D_RIGHT
+ ld b, PAD_RIGHT
.storeSimulatedButtonPress
ld a, b
ld [wSimulatedJoypadStatesEnd], a
diff --git a/engine/items/town_map.asm b/engine/items/town_map.asm
index d5960afd..96f6769c 100644
--- a/engine/items/town_map.asm
+++ b/engine/items/town_map.asm
@@ -71,13 +71,13 @@ DisplayTownMap:
call JoypadLowSensitivity
ldh a, [hJoy5]
ld b, a
- and A_BUTTON | B_BUTTON | D_UP | D_DOWN
+ and PAD_A | PAD_B | PAD_UP | PAD_DOWN
jr z, .inputLoop
ld a, SFX_TINK
call PlaySound
- bit BIT_D_UP, b
+ bit B_PAD_UP, b
jr nz, .pressedUp
- bit BIT_D_DOWN, b
+ bit B_PAD_DOWN, b
jr nz, .pressedDown
xor a
ld [wTownMapSpriteBlinkingEnabled], a
@@ -109,7 +109,7 @@ DisplayTownMap:
Func_70f87: ; unreferenced
ldh a, [hJoy5]
- and D_DOWN | D_UP
+ and PAD_DOWN | PAD_UP
ret z
callfar PlayPikachuSoundClip
ret
@@ -204,15 +204,15 @@ LoadTownMap_Fly::
ldh a, [hJoy5]
ld b, a
pop hl
- and A_BUTTON | B_BUTTON | D_UP | D_DOWN
+ and PAD_A | PAD_B | PAD_UP | PAD_DOWN
jr z, .inputLoop
- bit BIT_A_BUTTON, b
+ bit B_PAD_A, b
jr nz, .pressedA
ld a, SFX_TINK
call PlaySound
- bit BIT_D_UP, b
+ bit B_PAD_UP, b
jr nz, .pressedUp
- bit BIT_D_DOWN, b
+ bit B_PAD_DOWN, b
jr nz, .pressedDown
jr .pressedB
.pressedA
@@ -377,7 +377,7 @@ DrawPlayerOrBirdSprite:
jr nz, .loop
ld hl, wShadowOAM
ld de, wShadowOAMBackup
- ld bc, NUM_SPRITE_OAM_STRUCTS * 4
+ ld bc, OAM_COUNT * 4
jp CopyData
DisplayWildLocations:
@@ -424,7 +424,7 @@ DisplayWildLocations:
.done
ld hl, wShadowOAM
ld de, wShadowOAMBackup
- ld bc, NUM_SPRITE_OAM_STRUCTS * 4
+ ld bc, OAM_COUNT * 4
jp CopyData
AreaUnknownText:
@@ -520,7 +520,7 @@ WriteSymmetricMonPartySpriteOAM:
ld [hli], a ; tile
ld a, [wSymmetricSpriteOAMAttributes]
ld [hli], a ; attributes
- xor 1 << OAM_X_FLIP
+ xor OAM_XFLIP
ld [wSymmetricSpriteOAMAttributes], a
inc d
ld a, 8
@@ -613,13 +613,13 @@ TownMapSpriteBlinkingAnimation::
; show sprites when the counter reaches 50
ld hl, wShadowOAMBackup
ld de, wShadowOAM
- ld bc, (NUM_SPRITE_OAM_STRUCTS - 4) * 4
+ ld bc, (OAM_COUNT - 4) * 4
call CopyData
xor a
jr .done
.hideSprites
ld hl, wShadowOAM
- ld b, NUM_SPRITE_OAM_STRUCTS - 4
+ ld b, OAM_COUNT - 4
ld de, $4
.hideSpritesLoop
ld [hl], $a0
diff --git a/engine/joypad.asm b/engine/joypad.asm
index 8b514999..7ebb88ef 100644
--- a/engine/joypad.asm
+++ b/engine/joypad.asm
@@ -37,8 +37,8 @@ _Joypad::
ldh a, [hJoyInput]
ld b, a
- and A_BUTTON + B_BUTTON + SELECT + START + D_UP
- cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
+ and PAD_BUTTONS | PAD_UP
+ cp PAD_BUTTONS ; soft reset
jp z, TrySoftReset
ldh a, [hJoyLast]
diff --git a/engine/link/cable_club.asm b/engine/link/cable_club.asm
index 691793e7..ce6c582b 100644
--- a/engine/link/cable_club.asm
+++ b/engine/link/cable_club.asm
@@ -109,17 +109,17 @@ CableClub_DoBattleOrTradeAgain:
call Delay3
xor a
ldh [hSerialSendData], a
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
call DelayFrame
xor a
ldh [hSerialSendData], a
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
.skipSendingTwoZeroBytes
call Delay3
call StopAllMusic
- ld a, 1 << SERIAL
+ ld a, IE_SERIAL
ldh [rIE], a
ld hl, wSerialRandomNumberListBlock
ld de, wSerialOtherGameboyRandomNumberListBlock
@@ -139,7 +139,7 @@ CableClub_DoBattleOrTradeAgain:
ld bc, 200
vc_hook Wireless_ExchangeBytes_patch_lists
call Serial_ExchangeBytes
- ld a, (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
+ ld a, IE_SERIAL | IE_TIMER | IE_VBLANK
ldh [rIE], a
ldh a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
@@ -339,7 +339,7 @@ TradeCenter_SelectMon:
ld [wMenuWatchMovingOutOfBounds], a
inc a
ld [wWhichTradeMonSelectionMenu], a
- ld a, D_DOWN | D_LEFT | A_BUTTON
+ ld a, PAD_DOWN | PAD_LEFT | PAD_A
ld [wMenuWatchedKeys], a
ld a, [wEnemyPartyCount]
ld [wMaxMenuItem], a
@@ -355,7 +355,7 @@ TradeCenter_SelectMon:
res BIT_DOUBLE_SPACED_MENU, [hl]
and a
jp z, .getNewInput
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr z, .enemyMonMenu_ANotPressed
; if A button pressed
ld a, [wMaxMenuItem]
@@ -374,7 +374,7 @@ TradeCenter_SelectMon:
call TradeCenter_DisplayStats
jp .getNewInput
.enemyMonMenu_ANotPressed
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr z, .enemyMonMenu_LeftNotPressed
; if Left pressed, switch back to the player mon menu
xor a ; player mon menu
@@ -394,14 +394,14 @@ TradeCenter_SelectMon:
ld [wCurrentMenuItem], a
jr .playerMonMenu
.enemyMonMenu_LeftNotPressed
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jp z, .getNewInput
jp .selectedCancelMenuItem ; jump if Down pressed
.playerMonMenu
xor a ; player mon menu
ld [wWhichTradeMonSelectionMenu], a
ld [wMenuWatchMovingOutOfBounds], a
- ld a, D_DOWN | D_RIGHT | A_BUTTON
+ ld a, PAD_DOWN | PAD_RIGHT | PAD_A
ld [wMenuWatchedKeys], a
ld a, [wPartyCount]
ld [wMaxMenuItem], a
@@ -422,7 +422,7 @@ TradeCenter_SelectMon:
jr nz, .playerMonMenu_SomethingPressed
jp .getNewInput
.playerMonMenu_SomethingPressed
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr z, .playerMonMenu_ANotPressed
jp .chosePlayerMon ; jump if A button pressed
; unreachable code
@@ -432,7 +432,7 @@ TradeCenter_SelectMon:
call TradeCenter_DisplayStats
jp .getNewInput
.playerMonMenu_ANotPressed
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr z, .playerMonMenu_RightNotPressed
; if Right pressed, switch to the enemy mon menu
ld a, $1 ; enemy mon menu
@@ -454,7 +454,7 @@ TradeCenter_SelectMon:
.notPastLastEnemyMon
jp .enemyMonMenu
.playerMonMenu_RightNotPressed
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jr z, .getNewInput
jp .selectedCancelMenuItem ; jump if Down pressed
.getNewInput
@@ -490,14 +490,14 @@ TradeCenter_SelectMon:
.selectStatsMenuItem
ld a, " "
ldcoord_a 11, 16
- ld a, D_RIGHT | B_BUTTON | A_BUTTON
+ ld a, PAD_RIGHT | PAD_B | PAD_A
ld [wMenuWatchedKeys], a
ld a, 1
ld [wTopMenuItemX], a
call HandleMenuInput
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr nz, .selectTradeMenuItem
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr z, .displayPlayerMonStats
.cancelPlayerMonChoice
pop af
@@ -507,14 +507,14 @@ TradeCenter_SelectMon:
.selectTradeMenuItem
ld a, " "
ldcoord_a 1, 16
- ld a, D_LEFT | B_BUTTON | A_BUTTON
+ ld a, PAD_LEFT | PAD_B | PAD_A
ld [wMenuWatchedKeys], a
ld a, 11
ld [wTopMenuItemX], a
call HandleMenuInput
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr nz, .selectStatsMenuItem
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .cancelPlayerMonChoice
jr .choseTrade
.displayPlayerMonStats
@@ -563,9 +563,9 @@ TradeCenter_SelectMon:
ldh a, [hJoy5]
and a ; pressed anything?
jr z, .cancelMenuItem_JoypadLoop
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr nz, .cancelMenuItem_APressed
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jr z, .cancelMenuItem_JoypadLoop
; if Up pressed
ld a, " "
diff --git a/engine/link/cable_club_npc.asm b/engine/link/cable_club_npc.asm
index 975f4e03..ba29ca06 100644
--- a/engine/link/cable_club_npc.asm
+++ b/engine/link/cable_club_npc.asm
@@ -29,7 +29,7 @@ CableClubNPC::
ldh [rSB], a
xor a
ldh [hSerialReceiveData], a
- ld a, START_TRANSFER_EXTERNAL_CLOCK
+ ld a, SC_START | SC_EXTERNAL
; This vc_hook causes the Virtual Console to set [hSerialConnectionStatus] to
; USING_INTERNAL_CLOCK, which allows the player to proceed past the link
; receptionist's "Please wait." It assumes that hSerialConnectionStatus is at
@@ -46,7 +46,7 @@ CableClubNPC::
jr z, .failedToEstablishConnection
ld a, ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK
ldh [rSB], a
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
call DelayFrame
jr .establishConnectionLoop
@@ -215,6 +215,6 @@ CloseLinkConnection:
ldh [rSB], a
xor a
ldh [hSerialReceiveData], a
- ld a, START_TRANSFER_EXTERNAL_CLOCK
+ ld a, SC_START | SC_EXTERNAL
ldh [rSC], a
ret
diff --git a/engine/menus/draw_start_menu.asm b/engine/menus/draw_start_menu.asm
index cb2e5988..a72236c3 100644
--- a/engine/menus/draw_start_menu.asm
+++ b/engine/menus/draw_start_menu.asm
@@ -10,7 +10,7 @@ DrawStartMenu::
lb bc, 12, 8
.drawTextBoxBorder
call TextBoxBorder
- ld a, D_DOWN | D_UP | START | B_BUTTON | A_BUTTON
+ ld a, PAD_DOWN | PAD_UP | PAD_START | PAD_B | PAD_A
ld [wMenuWatchedKeys], a
ld a, $02
ld [wTopMenuItemY], a ; Y position of first menu choice
diff --git a/engine/menus/league_pc.asm b/engine/menus/league_pc.asm
index b9151084..ba6ca318 100644
--- a/engine/menus/league_pc.asm
+++ b/engine/menus/league_pc.asm
@@ -57,7 +57,7 @@ LeaguePCShowTeam:
call LeaguePCShowMon
call WaitForTextScrollButtonPress
ldh a, [hJoyHeld]
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .exit
ld hl, wHallOfFame + HOF_MON
ld de, wHallOfFame
diff --git a/engine/menus/link_menu.asm b/engine/menus/link_menu.asm
index 9b151388..94384cb3 100644
--- a/engine/menus/link_menu.asm
+++ b/engine/menus/link_menu.asm
@@ -667,14 +667,14 @@ LinkMenu:
ld a, 3
ld [hli], a
ASSERT wMaxMenuItem + 1 == wMenuWatchedKeys
- ASSERT 2 == B_BUTTON
+ ASSERT 2 == PAD_B
ld [hli], a
ASSERT wMenuWatchedKeys + 1 == wLastMenuItem
xor a
ld [hl], a
.waitForInputLoop
call HandleMenuInput
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
add a
add a
ld b, a
@@ -733,7 +733,7 @@ LinkMenu:
jr nz, .skipStartingTransfer
call DelayFrame
call DelayFrame
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
.skipStartingTransfer
ld b, " "
@@ -741,7 +741,7 @@ LinkMenu:
ld d, " "
ld e, "â–·"
ld a, [wLinkMenuSelectionSendBuffer]
- and B_BUTTON << 2 ; was B button pressed?
+ and PAD_B << 2 ; was B button pressed?
jr nz, .updateCursorPosition
; A button was pressed
ld a, [wCurrentMenuItem]
@@ -762,7 +762,7 @@ LinkMenu:
call Func_f59ec
call LoadScreenTilesFromBuffer1
ld a, [wLinkMenuSelectionSendBuffer]
- and B_BUTTON << 2 ; was B button pressed?
+ and PAD_B << 2 ; was B button pressed?
jr nz, .choseCancel ; cancel if B pressed
ld a, [wCurrentMenuItem]
cp $2
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm
index a8e37ff2..d739e560 100644
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -59,12 +59,12 @@ MainMenu:
ld [wTopMenuItemX], a
inc a
ld [wTopMenuItemY], a
- ld a, A_BUTTON | B_BUTTON | START
+ ld a, PAD_A | PAD_B | PAD_START
ld [wMenuWatchedKeys], a
ld a, [wSaveFileStatus]
ld [wMaxMenuItem], a
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, DisplayTitleScreen ; if so, go back to the title screen
ld c, 20
call DelayFrames
@@ -97,9 +97,9 @@ MainMenu:
ldh [hJoyHeld], a
call Joypad
ldh a, [hJoyHeld]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr nz, .pressedA
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, .mainMenuLoop
jr .inputLoop
.pressedA
@@ -274,12 +274,12 @@ DisplayOptionMenu:
ret
CheckForPlayerNameInSRAM:
- ld a, SRAM_ENABLE
- ld [MBC1SRamEnable], a
- ld a, SRAM_BANKING_MODE
- ld [MBC1SRamBankingMode], a
- ASSERT SRAM_BANKING_MODE == BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld a, RAMG_SRAM_ENABLE
+ ld [rRAMG], a
+ ld a, BMODE_ADVANCED
+ ld [rBMODE], a
+ ASSERT BMODE_ADVANCED == BANK("Save Data")
+ ld [rRAMB], a
ld b, NAME_LENGTH
ld hl, sPlayerName
.loop
@@ -289,13 +289,13 @@ CheckForPlayerNameInSRAM:
dec b
jr nz, .loop
xor a
- ld [MBC1SRamEnable], a
- ld [MBC1SRamBankingMode], a
+ ld [rRAMG], a
+ ld [rBMODE], a
and a
ret
.found
xor a
- ld [MBC1SRamEnable], a
- ld [MBC1SRamBankingMode], a
+ ld [rRAMG], a
+ ld [rBMODE], a
scf
ret
diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm
index 9d477b34..815fa54f 100644
--- a/engine/menus/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
@@ -215,11 +215,11 @@ DisplayNamingScreen:
.didNotPressED
ld a, [wCurrentMenuItem]
cp $6 ; case switch row
- jr nz, .didNotPressCaseSwtich
+ jr nz, .didNotPressCaseSwitch
ld a, [wTopMenuItemX]
cp $1 ; case switch column
jr z, .pressedA_changedCase
-.didNotPressCaseSwtich
+.didNotPressCaseSwitch
ld hl, wMenuCursorLocation
ld a, [hli]
ld h, [hl]
diff --git a/engine/menus/options.asm b/engine/menus/options.asm
index a2a96dd6..c7e16d55 100644
--- a/engine/menus/options.asm
+++ b/engine/menus/options.asm
@@ -3,7 +3,7 @@ DisplayOptionMenu_:
.optionMenuLoop
call JoypadLowSensitivity
ldh a, [hJoy5]
- and START | B_BUTTON
+ and PAD_START | PAD_B
jr nz, .exitOptionMenu
call OptionsControl
jr c, .dpadDelay
@@ -43,9 +43,9 @@ OptionMenuJumpTable:
OptionsMenu_TextSpeed:
call GetTextSpeed
ldh a, [hJoy5]
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr nz, .pressedRight
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr nz, .pressedLeft
jr .nonePressed
.pressedRight
@@ -118,7 +118,7 @@ GetTextSpeed:
OptionsMenu_BattleAnimations:
ldh a, [hJoy5]
- and D_RIGHT | D_LEFT
+ and PAD_LEFT | PAD_RIGHT
jr nz, .asm_41d33
ld a, [wOptions]
and $80 ; mask other bits
@@ -153,7 +153,7 @@ AnimationOffText:
OptionsMenu_BattleStyle:
ldh a, [hJoy5]
- and D_LEFT | D_RIGHT
+ and PAD_LEFT | PAD_RIGHT
jr nz, .asm_41d6b
ld a, [wOptions]
and $40 ; mask other bits
@@ -193,9 +193,9 @@ OptionsMenu_SpeakerSettings:
swap a
ld c, a
ldh a, [hJoy5]
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr nz, .pressedRight
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr nz, .pressedLeft
jr .asm_41dca
.pressedRight
@@ -212,7 +212,7 @@ OptionsMenu_SpeakerSettings:
swap a
ld b, a
xor a
- ldh [rNR51], a
+ ldh [rAUDTERM], a
ld a, [wOptions]
and $cf
or b
@@ -248,9 +248,9 @@ Earphone3SoundText:
OptionsMenu_GBPrinterBrightness:
call Func_41e7b
ldh a, [hJoy5]
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr nz, .pressedRight
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr nz, .pressedLeft
jr .asm_41e32
.pressedRight
@@ -340,7 +340,7 @@ OptionsMenu_Dummy:
OptionsMenu_Cancel:
ldh a, [hJoy5]
- and A_BUTTON
+ and PAD_A
jr nz, .pressedCancel
and a
ret
@@ -351,9 +351,9 @@ OptionsMenu_Cancel:
OptionsControl:
ld hl, wOptionsCursorLocation
ldh a, [hJoy5]
- cp D_DOWN
+ cp PAD_DOWN
jr z, .pressedDown
- cp D_UP
+ cp PAD_UP
jr z, .pressedUp
and a
ret
diff --git a/engine/menus/pc.asm b/engine/menus/pc.asm
index 33dd3c2c..b4571ac3 100644
--- a/engine/menus/pc.asm
+++ b/engine/menus/pc.asm
@@ -14,7 +14,7 @@ PCMainMenu:
ld hl, wMiscFlags
set BIT_NO_MENU_BUTTON_SOUND, [hl]
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, LogOff
ld a, [wMaxMenuItem]
cp 2
diff --git a/engine/menus/players_pc.asm b/engine/menus/players_pc.asm
index 630b8f87..01d13afa 100644
--- a/engine/menus/players_pc.asm
+++ b/engine/menus/players_pc.asm
@@ -38,7 +38,7 @@ PlayerPCMenu:
inc hl
ld a, 3
ld [hli], a ; wMaxMenuItem
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; wMenuWatchedKeys
xor a
ld [hl], a
@@ -49,7 +49,7 @@ PlayerPCMenu:
ld hl, WhatDoYouWantText
call PrintText
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, ExitPlayerPC
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
diff --git a/engine/menus/pokedex.asm b/engine/menus/pokedex.asm
index 88a057df..07b24392 100644
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -28,7 +28,7 @@ ShowPokedexMenu:
inc hl
ld a, 6
ld [hli], a ; max menu item ID
- ld [hl], D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON
+ ld [hl], PAD_LEFT | PAD_RIGHT | PAD_B | PAD_A
call HandlePokedexListMenu
jr c, .goToSideMenu ; if the player chose a pokemon from the list
.exitPokedex
@@ -92,7 +92,7 @@ HandlePokedexSideMenu:
inc hl
ld a, 4
ld [hli], a ; max menu item ID
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; menu watched keys (A button and B button)
xor a
ld [hli], a ; old menu item ID
@@ -100,7 +100,7 @@ HandlePokedexSideMenu:
ldh [hJoy7], a
.handleMenuInput
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
ld b, 2
jr nz, .buttonBPressed
ld a, [wCurrentMenuItem]
@@ -191,12 +191,12 @@ HandlePokedexListMenu:
call Pokedex_PlacePokemonList
call GBPalNormal
call HandleMenuInput
- bit BIT_B_BUTTON, a ; was the B button pressed?
+ bit B_PAD_B, a ; was the B button pressed?
jp nz, .buttonBPressed
- bit BIT_A_BUTTON, a ; was the A button pressed?
+ bit B_PAD_A, a ; was the A button pressed?
jp nz, .buttonAPressed
.checkIfUpPressed
- bit BIT_D_UP, a ; was Up pressed?
+ bit B_PAD_UP, a ; was Up pressed?
jr z, .checkIfDownPressed
.upPressed ; scroll up one row
ld a, [wListScrollOffset]
@@ -207,7 +207,7 @@ HandlePokedexListMenu:
jp .loop
.checkIfDownPressed
- bit BIT_D_DOWN, a ; was Down pressed?
+ bit B_PAD_DOWN, a ; was Down pressed?
jr z, .checkIfRightPressed
.downPressed ; scroll down one row
ld a, [wDexMaxSeenMon]
@@ -223,7 +223,7 @@ HandlePokedexListMenu:
jp .loop
.checkIfRightPressed
- bit BIT_D_RIGHT, a ; was Right pressed?
+ bit B_PAD_RIGHT, a ; was Right pressed?
jr z, .checkIfLeftPressed
.rightPressed ; scroll down 7 rows
ld a, [wDexMaxSeenMon]
@@ -242,7 +242,7 @@ HandlePokedexListMenu:
jp .loop
.checkIfLeftPressed ; scroll up 7 rows
- bit BIT_D_LEFT, a ; was Left pressed?
+ bit B_PAD_LEFT, a ; was Left pressed?
jr z, .buttonAPressed
.leftPressed
ld a, [wListScrollOffset]
@@ -447,7 +447,7 @@ ShowPokedexDataInternal:
ld hl, wStatusFlags2
set BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $33 ; 3/7 volume
- ldh [rNR50], a
+ ldh [rAUDVOL], a
ldh a, [hTileAnimations]
push af
xor a
@@ -465,7 +465,7 @@ ShowPokedexDataInternal:
.waitForButtonPress
call JoypadLowSensitivity
ldh a, [hJoy5]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr z, .waitForButtonPress
pop af
ldh [hTileAnimations], a
@@ -477,7 +477,7 @@ ShowPokedexDataInternal:
ld hl, wStatusFlags2
res BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $77 ; max volume
- ldh [rNR50], a
+ ldh [rAUDVOL], a
ret
HeightWeightText:
diff --git a/engine/menus/save.asm b/engine/menus/save.asm
index a2760d0a..e660020b 100644
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -33,7 +33,7 @@ FileDataDestroyedText:
LoadSAV0:
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
; This vc_hook does not have to be in any particular location.
; It is defined here because it refers to the same labels as the two lines below.
vc_hook Unknown_save_limit
@@ -81,7 +81,7 @@ LoadSAV0:
LoadSAV1:
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld hl, sGameData
ld bc, sGameDataEnd - sGameData
call SAVCheckSum
@@ -99,7 +99,7 @@ LoadSAV1:
LoadSAV2:
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld hl, sGameData
ld bc, sGameDataEnd - sGameData
call SAVCheckSum
@@ -196,7 +196,7 @@ OlderFileWillBeErasedText:
SaveSAVtoSRAM0:
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld hl, wPlayerName
ld de, sPlayerName
ld bc, NAME_LENGTH
@@ -226,7 +226,7 @@ SaveSAVtoSRAM1:
; stored pokémon
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld hl, wBoxDataStart
ld de, sCurBoxData
ld bc, wBoxDataEnd - wBoxDataStart
@@ -241,7 +241,7 @@ SaveSAVtoSRAM1:
SaveSAVtoSRAM2:
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld hl, wPartyDataStart
ld de, sPartyData
ld bc, wPartyDataEnd - wPartyDataStart
@@ -349,7 +349,7 @@ ChangeBox::
call HandleMenuInput
ld hl, hUILayoutFlags
res BIT_DOUBLE_SPACED_MENU, [hl]
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
ret nz
ld a, $b6
call PlaySoundWaitForCurrent
@@ -387,7 +387,7 @@ CopyBoxToOrFromSRAM:
push hl
call EnableSRAM
ld a, b
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld bc, wBoxDataEnd - wBoxDataStart
call CopyData
pop hl
@@ -409,7 +409,7 @@ CopyBoxToOrFromSRAM:
DisplayChangeBoxMenu:
xor a
ldh [hAutoBGTransferEnabled], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 11
ld [wMaxMenuItem], a
@@ -501,10 +501,10 @@ EmptyAllSRAMBoxes:
; player changes the box)
call EnableSRAM
ld a, BANK("Saved Boxes 1")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
call EmptySRAMBoxesInBank
ld a, BANK("Saved Boxes 2")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
call EmptySRAMBoxesInBank
call DisableSRAM
ret
@@ -542,10 +542,10 @@ GetMonCountsForAllBoxes:
push hl
call EnableSRAM
ld a, BANK("Saved Boxes 1")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
call GetMonCountsForBoxesInBank
ld a, BANK("Saved Boxes 2")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
call GetMonCountsForBoxesInBank
call DisableSRAM
pop hl
@@ -582,7 +582,7 @@ SAVCheckRandomID:
; (which are stored at wPlayerID)s
call EnableSRAM
ld a, BANK("Save Data")
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld a, [sPlayerName]
and a
jr z, .next
@@ -603,9 +603,9 @@ SAVCheckRandomID:
ld a, [wPlayerID + 1]
cp h
.next
- ld a, SRAM_DISABLE
- ld [MBC1SRamBankingMode], a
- ld [MBC1SRamEnable], a
+ ld a, $00
+ ld [rBMODE], a
+ ld [rRAMG], a
ret
SaveHallOfFameTeams:
@@ -646,7 +646,7 @@ LoadHallOfFameTeams:
HallOfFame_Copy:
call EnableSRAM
xor a
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
call CopyData
call DisableSRAM
ret
@@ -664,21 +664,21 @@ ClearSAV:
ret
PadSRAM_FF:
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ld hl, STARTOF(SRAM)
ld bc, SIZEOF(SRAM)
ld a, $ff
jp FillMemory
EnableSRAM:
- ld a, SRAM_BANKING_MODE
- ld [MBC1SRamBankingMode], a
- ld a, SRAM_ENABLE
- ld [MBC1SRamEnable], a
+ ld a, BMODE_ADVANCED
+ ld [rBMODE], a
+ ld a, RAMG_SRAM_ENABLE
+ ld [rRAMG], a
ret
DisableSRAM:
- ld a, SRAM_DISABLE
- ld [MBC1SRamBankingMode], a
- ld [MBC1SRamEnable], a
+ ld a, 0
+ ld [rBMODE], a
+ ld [rRAMG], a
ret
diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm
index 96a7da16..9e8a181b 100644
--- a/engine/menus/start_sub_menus.asm
+++ b/engine/menus/start_sub_menus.asm
@@ -57,7 +57,7 @@ StartMenu_Pokemon::
inc hl
ld a, b
ld [hli], a ; max menu item ID
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; menu watched keys
xor a
ld [hl], a
@@ -65,7 +65,7 @@ StartMenu_Pokemon::
push af
call LoadScreenTilesFromBuffer1 ; restore saved screen
pop af
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, .loop
; if the B button wasn't pressed
ld a, [wMaxMenuItem]
@@ -371,13 +371,13 @@ StartMenu_Item::
inc hl
inc a ; a = 1
ld [hli], a ; max menu item ID
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; menu watched keys
xor a
ld [hl], a ; old menu item id
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr z, .useOrTossItem
jp ItemMenuLoop
.useOrTossItem ; if the player made the choice to use or toss the item
diff --git a/engine/menus/text_box.asm b/engine/menus/text_box.asm
index fe792274..d73df6ff 100644
--- a/engine/menus/text_box.asm
+++ b/engine/menus/text_box.asm
@@ -156,7 +156,7 @@ DoBuySellQuitMenu:
ld a, BUY_SELL_QUIT_MENU_TEMPLATE
ld [wTextBoxID], a
call DisplayTextBoxID
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, $2
ld [wMaxMenuItem], a
@@ -173,9 +173,9 @@ DoBuySellQuitMenu:
ld [wStatusFlags5], a
call HandleMenuInput
call PlaceUnfilledArrowMenuCursor
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr nz, .pressedA
- bit BIT_B_BUTTON, a ; always true since only A/B are watched
+ bit B_PAD_B, a ; always true since only A/B are watched
jr z, .pressedA
ld a, CANCELLED_MENU
ld [wMenuExitMethod], a
@@ -213,7 +213,7 @@ DisplayTwoOptionMenu:
ld [wChosenMenuItem], a
ld [wMenuExitMethod], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, $1
ld [wMaxMenuItem], a
@@ -282,7 +282,7 @@ DisplayTwoOptionMenu:
res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
pop hl
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .choseSecondMenuItem ; automatically choose the second option if B is pressed
.pressedAButton
ld a, [wCurrentMenuItem]
diff --git a/engine/menus/unused_input.asm b/engine/menus/unused_input.asm
index 15a0af34..9c868b3f 100644
--- a/engine/menus/unused_input.asm
+++ b/engine/menus/unused_input.asm
@@ -31,7 +31,7 @@ HandleMenuInputPokemonSelectionDuplicate: ; unreferenced
ld [wCheckFor180DegreeTurn], a
ldh a, [hJoy5]
ld b, a
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jr z, .checkIfDownPressed
.upPressed
ld a, [wCurrentMenuItem] ; selected menu item
@@ -42,7 +42,7 @@ HandleMenuInputPokemonSelectionDuplicate: ; unreferenced
ld [wCurrentMenuItem], a ; move selected menu item up one space
jr .checkOtherKeys
.checkIfDownPressed
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jr z, .checkOtherKeys
.downPressed
ld a, [wCurrentMenuItem]
@@ -59,7 +59,7 @@ HandleMenuInputPokemonSelectionDuplicate: ; unreferenced
jp z, .loop1
.checkIfAButtonOrBButtonPressed
ldh a, [hJoy5]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr z, .skipPlayingSound
.AButtonOrBButtonPressed
ld a, SFX_PRESS_AB
diff --git a/engine/minigame/surfing_pikachu.asm b/engine/minigame/surfing_pikachu.asm
index f30d567c..79e5bc3e 100644
--- a/engine/minigame/surfing_pikachu.asm
+++ b/engine/minigame/surfing_pikachu.asm
@@ -89,12 +89,12 @@ SurfingPikachu_CheckPressedSelect:
bit 1, [hl]
ret z
ldh a, [hJoyPressed]
- and SELECT
+ and PAD_SELECT
ret
Func_f80b7:
ldh a, [hJoyPressed]
- and START
+ and PAD_START
ret z
ld hl, wc5e2
ld a, [hl]
@@ -600,7 +600,7 @@ SurfingMinigame_WaitLast:
SurfingMinigame_ExitOnPressA:
call SurfingMinigame_UpdateLYOverrides
ldh a, [hJoyPressed]
- and A_BUTTON
+ and PAD_A
ret z
ld hl, wSurfingMinigameRoutineNumber
set 7, [hl]
@@ -621,7 +621,7 @@ SurfingMinigame_GameOver:
.wait_press_a
ldh a, [hJoyPressed]
- and A_BUTTON
+ and PAD_A
ret z
ld hl, wSurfingMinigameRoutineNumber
set 7, [hl]
@@ -846,10 +846,10 @@ Func_f8579:
SurfingMinigame_DPadAction:
ld de, hJoy5
ld a, [de]
- and D_LEFT
+ and PAD_LEFT
jr nz, .d_left
ld a, [de]
- and D_RIGHT
+ and PAD_RIGHT
jr nz, .d_right
ret
diff --git a/engine/movie/credits.asm b/engine/movie/credits.asm
index 22006e6a..f7e13aab 100644
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -65,7 +65,7 @@ DisplayCreditsMon:
xor a
ldh [hAutoBGTransferEnabled], a
ld hl, rLCDC
- set rLCDC_BG_TILEMAP, [hl]
+ set B_LCDC_BG_MAP, [hl]
call SaveScreenTilesToBuffer2
call FillMiddleOfScreenWithWhite
call GetNextCreditsMon
@@ -80,7 +80,7 @@ DisplayCreditsMon:
ldh [rBGP], a
call UpdateCGBPal_BGP
ld hl, rLCDC
- res rLCDC_BG_TILEMAP, [hl]
+ res B_LCDC_BG_MAP, [hl]
ld a, 1
ldh [hAutoBGTransferEnabled], a
ld b, 0
diff --git a/engine/movie/evolution.asm b/engine/movie/evolution.asm
index 99f14322..9d24c0d5 100644
--- a/engine/movie/evolution.asm
+++ b/engine/movie/evolution.asm
@@ -141,7 +141,7 @@ Evolution_CheckForCancel:
call JoypadLowSensitivity
ldh a, [hJoy5]
pop bc
- and B_BUTTON
+ and PAD_B
jr nz, .pressedB
.notAllowedToCancel
dec c
diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm
index defe5502..025d6a03 100644
--- a/engine/movie/hall_of_fame.asm
+++ b/engine/movie/hall_of_fame.asm
@@ -12,7 +12,7 @@ AnimateHallOfFame:
call FillMemory
call EnableLCD
ld hl, rLCDC
- set rLCDC_BG_TILEMAP, [hl]
+ set B_LCDC_BG_MAP, [hl]
xor a
ld hl, wHallOfFame
ld bc, HOF_TEAM
@@ -87,7 +87,7 @@ AnimateHallOfFame:
xor a
ldh [hWY], a
ld hl, rLCDC
- res rLCDC_BG_TILEMAP, [hl]
+ res B_LCDC_BG_MAP, [hl]
ret
HallOfFameText:
diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm
index 33a3a134..f018d860 100644
--- a/engine/movie/intro.asm
+++ b/engine/movie/intro.asm
@@ -35,7 +35,7 @@ InitIntroNidorinoOAM:
ld [hli], a ; X
ld a, d
ld [hli], a ; tile
- ld a, OAM_BEHIND_BG
+ ld a, OAM_PRIO
ld [hli], a ; attributes
inc d
dec c
@@ -50,7 +50,7 @@ InitIntroNidorinoOAM:
IntroClearScreen:
ld hl, vBGMap1
- ld bc, BG_MAP_WIDTH * SCREEN_HEIGHT
+ ld bc, TILEMAP_WIDTH * SCREEN_HEIGHT
jr IntroClearCommon
IntroClearMiddleOfScreen:
@@ -116,8 +116,8 @@ PlayShootingStar:
call EnableLCD
ld hl, rLCDC
- res rLCDC_WINDOW_ENABLE, [hl]
- set rLCDC_BG_TILEMAP, [hl]
+ res B_LCDC_WINDOW, [hl]
+ set B_LCDC_BG_MAP, [hl]
ld c, 64
call DelayFrames
farcall AnimateShootingStar
@@ -142,10 +142,10 @@ IntroDrawBlackBars:
ld c, SCREEN_WIDTH * 4
call IntroPlaceBlackTiles
ld hl, vBGMap1
- ld c, BG_MAP_WIDTH * 4
+ ld c, TILEMAP_WIDTH * 4
call IntroPlaceBlackTiles
hlbgcoord 0, 14, vBGMap1
- ld c, BG_MAP_WIDTH * 4
+ ld c, TILEMAP_WIDTH * 4
jp IntroPlaceBlackTiles
LoadPresentsGraphic: ; unreferenced
diff --git a/engine/movie/intro_yellow.asm b/engine/movie/intro_yellow.asm
index 4e8282bc..47203580 100644
--- a/engine/movie/intro_yellow.asm
+++ b/engine/movie/intro_yellow.asm
@@ -15,7 +15,7 @@ PlayIntroScene:
jr nz, .go_to_title_screen
call JoypadLowSensitivity
ldh a, [hJoyPressed]
- and A_BUTTON | B_BUTTON | START
+ and PAD_A | PAD_B | PAD_START
jr nz, .go_to_title_screen
call Func_f98fc
ld a, $0
diff --git a/engine/movie/oak_speech/clear_save.asm b/engine/movie/oak_speech/clear_save.asm
index 2dd5f4a7..4df2faa4 100644
--- a/engine/movie/oak_speech/clear_save.asm
+++ b/engine/movie/oak_speech/clear_save.asm
@@ -5,7 +5,7 @@ DoClearSaveDialogue:
call LoadTextBoxTilePatterns
ld hl, ClearSaveDataText
call PrintText
- ld a, B_BUTTON
+ ld a, PAD_B
ld [wJoyIgnore], a
hlcoord 14, 7
lb bc, 8, 15
diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm
index 39dcf001..300b5590 100644
--- a/engine/movie/oak_speech/oak_speech2.asm
+++ b/engine/movie/oak_speech/oak_speech2.asm
@@ -177,7 +177,7 @@ DisplayIntroNameTextBox:
ld [wLastMenuItem], a
inc a
ld [wTopMenuItemX], a
- ld [wMenuWatchedKeys], a ; A_BUTTON
+ ld [wMenuWatchedKeys], a ; PAD_A
inc a
ld [wTopMenuItemY], a
inc a
diff --git a/engine/movie/splash.asm b/engine/movie/splash.asm
index 6d9b9be9..5b837591 100644
--- a/engine/movie/splash.asm
+++ b/engine/movie/splash.asm
@@ -158,7 +158,7 @@ AnimateShootingStar:
ret
SmallStarsOAM:
- dbsprite 0, 0, 0, 0, $A2, OAM_BEHIND_BG | OAM_OBP1
+ dbsprite 0, 0, 0, 0, $A2, OAM_PRIO | OAM_PAL1
SmallStarsOAMEnd:
SmallStarsWaveCoordsPointerTable:
@@ -248,10 +248,10 @@ GameFreakLogoOAMData:
GameFreakLogoOAMDataEnd:
GameFreakShootingStarOAMData:
- dbsprite 20, 0, 0, 0, $a0, OAM_OBP1 | OAM_HIGH_PALS
- dbsprite 21, 0, 0, 0, $a0, OAM_OBP1 | OAM_HIGH_PALS | OAM_HFLIP
- dbsprite 20, 1, 0, 0, $a1, OAM_OBP1 | OAM_HIGH_PALS
- dbsprite 21, 1, 0, 0, $a1, OAM_OBP1 | OAM_HIGH_PALS | OAM_HFLIP
+ dbsprite 20, 0, 0, 0, $a0, OAM_PAL1 | OAM_HIGH_PALS
+ dbsprite 21, 0, 0, 0, $a0, OAM_PAL1 | OAM_HIGH_PALS | OAM_XFLIP
+ dbsprite 20, 1, 0, 0, $a1, OAM_PAL1 | OAM_HIGH_PALS
+ dbsprite 21, 1, 0, 0, $a1, OAM_PAL1 | OAM_HIGH_PALS | OAM_XFLIP
GameFreakShootingStarOAMDataEnd:
FallingStar:
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
index ec7a2aa3..7a4637ec 100644
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -165,12 +165,12 @@ DisplayTitleScreen:
call DelayFrame
call JoypadLowSensitivity
ldh a, [hJoyHeld]
- cp D_UP | SELECT | B_BUTTON
+ cp PAD_UP | PAD_SELECT | PAD_B
jr z, .go_to_main_menu
IF DEF(_DEBUG)
- and A_BUTTON | SELECT | START
+ and PAD_A | PAD_SELECT | PAD_START
ELSE
- and A_BUTTON | START
+ and PAD_A | PAD_START
ENDC
jr nz, .go_to_main_menu
call DoTitleScreenFunction
@@ -194,12 +194,12 @@ ENDC
call LoadGBPal
ldh a, [hJoyHeld]
ld b, a
- and D_UP | SELECT | B_BUTTON
- cp D_UP | SELECT | B_BUTTON
+ and PAD_UP | PAD_SELECT | PAD_B
+ cp PAD_UP | PAD_SELECT | PAD_B
jp z, .doClearSaveDialogue
IF DEF(_DEBUG)
ld a, b
- bit BIT_SELECT, a
+ bit B_PAD_SELECT, a
jp z, MainMenu
callfar DebugMenu
jp hl
diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm
index dfbe643f..2cb51d98 100644
--- a/engine/movie/trade.asm
+++ b/engine/movie/trade.asm
@@ -150,7 +150,7 @@ Trade_Delay80:
Trade_ClearTileMap:
hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld bc, SCREEN_AREA
ld a, " "
jp FillMemory
@@ -350,9 +350,9 @@ Trade_AnimateBallEnteringLinkCable:
Trade_BallInsideLinkCableOAMBlock:
db $7e, 0
- db $7e, OAM_HFLIP
- db $7e, OAM_VFLIP
- db $7e, OAM_HFLIP | OAM_VFLIP
+ db $7e, OAM_XFLIP
+ db $7e, OAM_YFLIP
+ db $7e, OAM_XFLIP | OAM_YFLIP
Trade_ShowEnemyMon:
ld a, TRADE_BALL_TILT_ANIM
@@ -716,28 +716,28 @@ Trade_CircleOAMBlocks:
trade_circle_oam_block .OAMBlock3, 24, 24
.OAMBlock0:
- db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1
- db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1
- db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1
- db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1
+ db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1
+ db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1
+ db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1
+ db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1
.OAMBlock1:
- db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_HFLIP
- db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP
- db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_HFLIP
- db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP
+ db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 | OAM_XFLIP
+ db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 | OAM_XFLIP
+ db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 | OAM_XFLIP
+ db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 | OAM_XFLIP
.OAMBlock2:
- db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_VFLIP
- db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_VFLIP
- db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_VFLIP
- db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_VFLIP
+ db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 | OAM_YFLIP
+ db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 | OAM_YFLIP
+ db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 | OAM_YFLIP
+ db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 | OAM_YFLIP
.OAMBlock3:
- db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP
- db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP
- db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP
- db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP
+ db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP
+ db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP
+ db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP
+ db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP
; a = species
Trade_LoadMonSprite:
diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm
index 8174b273..cdc7e28a 100644
--- a/engine/overworld/auto_movement.asm
+++ b/engine/overworld/auto_movement.asm
@@ -3,13 +3,13 @@ PlayerStepOutFromDoor::
res BIT_EXITING_DOOR, [hl]
call IsPlayerStandingOnDoorTile
jr nc, .notStandingOnDoor
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wMovementFlags
set BIT_EXITING_DOOR, [hl]
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpritePlayerStateData1ImageIndex], a
@@ -85,7 +85,7 @@ PalletMovementScript_OakMoveLeft:
call PlayMusic
ld hl, wStatusFlags7
set BIT_NO_MAP_MUSIC, [hl]
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ret
@@ -142,11 +142,11 @@ RLEList_ProfOakWalkToLab:
db -1 ; end
RLEList_PlayerWalkToLab:
- db D_UP, 2
- db D_RIGHT, 3
- db D_DOWN, 5
- db D_LEFT, 1
- db D_DOWN, 7 ; differs from red
+ db PAD_UP, 2
+ db PAD_RIGHT, 3
+ db PAD_DOWN, 5
+ db PAD_LEFT, 1
+ db PAD_DOWN, 7 ; differs from red
db -1 ; end
PalletMovementScript_Done:
@@ -194,9 +194,9 @@ PewterMovementScript_WalkToMuseum:
RLEList_PewterMuseumPlayer:
db NO_INPUT, 1
- db D_UP, 3
- db D_LEFT, 13
- db D_UP, 6
+ db PAD_UP, 3
+ db PAD_LEFT, 13
+ db PAD_UP, 6
db -1 ; end
RLEList_PewterMuseumGuy:
@@ -251,11 +251,11 @@ PewterMovementScript_WalkToGym:
RLEList_PewterGymPlayer:
db NO_INPUT, 1
- db D_RIGHT, 2
- db D_DOWN, 5
- db D_LEFT, 11
- db D_UP, 5
- db D_LEFT, 15
+ db PAD_RIGHT, 2
+ db PAD_DOWN, 5
+ db PAD_LEFT, 11
+ db PAD_UP, 5
+ db PAD_LEFT, 15
db -1 ; end
RLEList_PewterGymGuy:
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 76821045..1b5b85bd 100644
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -125,10 +125,10 @@ WriteCutOrBoulderDustAnimationOAMBlock:
.OAMBlock:
; tile ID, attributes
- db $fc, OAM_OBP1 | OAM_HIGH_PALS
- db $fd, OAM_OBP1 | OAM_HIGH_PALS
- db $fe, OAM_OBP1 | OAM_HIGH_PALS
- db $ff, OAM_OBP1 | OAM_HIGH_PALS
+ db $fc, OAM_PAL1 | OAM_HIGH_PALS
+ db $fd, OAM_PAL1 | OAM_HIGH_PALS
+ db $fe, OAM_PAL1 | OAM_HIGH_PALS
+ db $ff, OAM_PAL1 | OAM_HIGH_PALS
GetCutOrBoulderDustAnimationOffsets:
ld hl, wSpritePlayerStateData1YPixels
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index dfc6b97b..5cf312ac 100644
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -65,14 +65,14 @@ PokeCenterFlashingMonitorAndHealBall:
PokeCenterOAMData:
; heal machine monitor
- dbsprite 6, 4, 4, 4, $7c, OAM_OBP1 | OAM_HIGH_PALS
+ dbsprite 6, 4, 4, 4, $7c, OAM_PAL1 | OAM_HIGH_PALS
; poke balls 1-6
- dbsprite 6, 5, 0, 3, $7d, OAM_OBP1 | OAM_HIGH_PALS
- dbsprite 7, 5, 0, 3, $7d, OAM_OBP1 | OAM_HIGH_PALS | OAM_HFLIP
- dbsprite 6, 6, 0, 0, $7d, OAM_OBP1 | OAM_HIGH_PALS
- dbsprite 7, 6, 0, 0, $7d, OAM_OBP1 | OAM_HIGH_PALS | OAM_HFLIP
- dbsprite 6, 6, 0, 5, $7d, OAM_OBP1 | OAM_HIGH_PALS
- dbsprite 7, 6, 0, 5, $7d, OAM_OBP1 | OAM_HIGH_PALS | OAM_HFLIP
+ dbsprite 6, 5, 0, 3, $7d, OAM_PAL1 | OAM_HIGH_PALS
+ dbsprite 7, 5, 0, 3, $7d, OAM_PAL1 | OAM_HIGH_PALS | OAM_XFLIP
+ dbsprite 6, 6, 0, 0, $7d, OAM_PAL1 | OAM_HIGH_PALS
+ dbsprite 7, 6, 0, 0, $7d, OAM_PAL1 | OAM_HIGH_PALS | OAM_XFLIP
+ dbsprite 6, 6, 0, 5, $7d, OAM_PAL1 | OAM_HIGH_PALS
+ dbsprite 7, 6, 0, 5, $7d, OAM_PAL1 | OAM_HIGH_PALS | OAM_XFLIP
; d = value to xor with palette
FlashSprite8Times:
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index c08d9eaf..9f8de983 100644
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -39,7 +39,7 @@ HandleLedges::
ldh a, [hJoyHeld]
and e
ret z
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wMovementFlags
set BIT_LEDGE_OR_FISHING, [hl]
@@ -76,5 +76,5 @@ LedgeHoppingShadowEnd:
LedgeHoppingShadowOAM:
dbsprite 9, 11, 0, 0, $ff, 0
- dbsprite 10, 11, 0, 0, $ff, OAM_HFLIP
+ dbsprite 10, 11, 0, 0, $ff, OAM_XFLIP
LedgeHoppingShadowOAMEnd:
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index c05837eb..fbe8e5df 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -83,7 +83,7 @@ UpdatePlayerSprite:
cp c
ld a, 0
jr nz, .next2
- ld a, OAM_BEHIND_BG
+ ld a, OAM_PRIO
.next2
ld [wSpritePlayerStateData2GrassPriority], a
ret
@@ -520,7 +520,7 @@ CheckSpriteAvailability:
cp c
ld a, 0
jr nz, .notInGrass
- ld a, OAM_BEHIND_BG
+ ld a, OAM_PRIO
.notInGrass
ld [hl], a ; x#SPRITESTATEDATA2_GRASSPRIORITY
and a
diff --git a/engine/overworld/pathfinding.asm b/engine/overworld/pathfinding.asm
index 58fa1da9..878ca07d 100644
--- a/engine/overworld/pathfinding.asm
+++ b/engine/overworld/pathfinding.asm
@@ -191,10 +191,10 @@ ConvertNPCMovementDirectionToJoypadMask:
ret
NPCMovementDirectionsToJoypadMasksTable:
- db NPC_MOVEMENT_UP, D_UP
- db NPC_MOVEMENT_DOWN, D_DOWN
- db NPC_MOVEMENT_LEFT, D_LEFT
- db NPC_MOVEMENT_RIGHT, D_RIGHT
+ db NPC_MOVEMENT_UP, PAD_UP
+ db NPC_MOVEMENT_DOWN, PAD_DOWN
+ db NPC_MOVEMENT_LEFT, PAD_LEFT
+ db NPC_MOVEMENT_RIGHT, PAD_RIGHT
db $ff
; unreferenced
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index aed6954c..b63b12cc 100644
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -480,7 +480,7 @@ FishingRodOAM:
dbsprite 9, 11, 4, 3, $fd, 0 ; down
dbsprite 9, 8, 4, 4, $fd, 0 ; up
dbsprite 8, 10, 0, 0, $fe, 0 ; left
- dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right
+ dbsprite 11, 10, 0, 0, $fe, OAM_XFLIP ; right
MACRO fishing_gfx
dw \1
diff --git a/engine/overworld/push_boulder.asm b/engine/overworld/push_boulder.asm
index 1773e818..2328b07a 100644
--- a/engine/overworld/push_boulder.asm
+++ b/engine/overworld/push_boulder.asm
@@ -28,7 +28,7 @@ TryPushingBoulder::
set BIT_TRIED_PUSH_BOULDER, [hl]
ret z ; the player must try pushing twice before the boulder will move
ldh a, [hJoyHeld]
- and D_RIGHT | D_LEFT | D_UP | D_DOWN
+ and PAD_CTRL_PAD
ret z
predef CheckForCollisionWhenPushingBoulder
ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult]
@@ -44,22 +44,22 @@ TryPushingBoulder::
cp SPRITE_FACING_RIGHT
jr z, .pushBoulderRight
.pushBoulderDown
- bit BIT_D_DOWN, b
+ bit B_PAD_DOWN, b
ret z
ld de, PushBoulderDownMovementData
jr .done
.pushBoulderUp
- bit BIT_D_UP, b
+ bit B_PAD_UP, b
ret z
ld de, PushBoulderUpMovementData
jr .done
.pushBoulderLeft
- bit BIT_D_LEFT, b
+ bit B_PAD_LEFT, b
ret z
ld de, PushBoulderLeftMovementData
jr .done
.pushBoulderRight
- bit BIT_D_RIGHT, b
+ bit B_PAD_RIGHT, b
ret z
ld de, PushBoulderRightMovementData
.done
diff --git a/engine/overworld/update_map.asm b/engine/overworld/update_map.asm
index dbf28dae..d98a0941 100644
--- a/engine/overworld/update_map.asm
+++ b/engine/overworld/update_map.asm
@@ -63,7 +63,7 @@ RedrawMapView:
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, -2 * BG_MAP_WIDTH
+ ld de, -2 * TILEMAP_WIDTH
add hl, de
ld a, h
and $3
@@ -88,7 +88,7 @@ RedrawMapView:
jr nz, .calcWRAMAddrLoop
call CopyToRedrawRowOrColumnSrcTiles
pop hl
- ld de, BG_MAP_WIDTH
+ ld de, TILEMAP_WIDTH
ldh a, [hRedrawMapViewRowOffset]
ld c, a
.calcVRAMAddrLoop
diff --git a/engine/pikachu/pikachu_movement.asm b/engine/pikachu/pikachu_movement.asm
index d789f152..3643a9bc 100644
--- a/engine/pikachu/pikachu_movement.asm
+++ b/engine/pikachu/pikachu_movement.asm
@@ -883,7 +883,7 @@ LoadPikachuShadowOAMData:
.OAMData:
db 2
db $0c, $00, $ff, 0
- db $0c, $08, $ff, 1 << OAM_X_FLIP
+ db $0c, $08, $ff, OAM_XFLIP
.LoadOAMData:
ld a, e
diff --git a/engine/pikachu/pikachu_pcm.asm b/engine/pikachu/pikachu_pcm.asm
index bdfae0eb..643492ce 100644
--- a/engine/pikachu/pikachu_pcm.asm
+++ b/engine/pikachu/pikachu_pcm.asm
@@ -24,12 +24,12 @@ PlayPikachuSoundClip::
push bc
push hl
ld a, $80
- ldh [rNR52], a
+ ldh [rAUDENA], a
ld a, $77
- ldh [rNR50], a
+ ldh [rAUDVOL], a
xor a
- ldh [rNR30], a
- ld hl, rWave_0 ; wave data
+ ldh [rAUD3ENA], a
+ ld hl, _AUD3WAVERAM
ld de, wRedrawRowOrColumnSrcTiles
.saveWaveDataLoop
ld a, [hl]
@@ -47,18 +47,18 @@ ELSE
ld a, $80
ENDC
vc_patch_end
- ldh [rNR30], a
- ldh a, [rNR51]
+ ldh [rAUD3ENA], a
+ ldh a, [rAUDTERM]
or $44
- ldh [rNR51], a
+ ldh [rAUDTERM], a
ld a, $ff
- ldh [rNR31], a
+ ldh [rAUD3LEN], a
ld a, $20
- ldh [rNR32], a
+ ldh [rAUD3LEVEL], a
ld a, $ff
- ldh [rNR33], a
+ ldh [rAUD3LOW], a
ld a, $87
- ldh [rNR34], a
+ ldh [rAUD3HIGH], a
pop hl
pop bc
call PlayPikachuPCM
@@ -66,10 +66,10 @@ ENDC
ld [wc0f3], a
ld [wc0f3 + 1], a
ld a, $80
- ldh [rNR52], a
+ ldh [rAUDENA], a
xor a
- ldh [rNR30], a
- ld hl, rWave_0
+ ldh [rAUD3ENA], a
+ ld hl, _AUD3WAVERAM
ld de, wRedrawRowOrColumnSrcTiles
.reloadWaveDataLoop
ld a, [de]
@@ -79,10 +79,10 @@ ENDC
cp $40 ; end of wave data
jr nz, .reloadWaveDataLoop
ld a, $80
- ldh [rNR30], a
- ldh a, [rNR51]
+ ldh [rAUD3ENA], a
+ ldh a, [rAUDTERM]
and $bb
- ldh [rNR51], a
+ ldh [rAUDTERM], a
xor a
ld [wChannelSoundIDs + CHAN5], a
ld [wChannelSoundIDs + CHAN6], a
diff --git a/engine/pikachu/pikachu_pic_animation.asm b/engine/pikachu/pikachu_pic_animation.asm
index 56ad6436..a7fd80f3 100644
--- a/engine/pikachu/pikachu_pic_animation.asm
+++ b/engine/pikachu/pikachu_pic_animation.asm
@@ -222,7 +222,7 @@ PikaPicAnimTimerAndJoypad:
ret nz
call JoypadLowSensitivity
ldh a, [hJoyPressed]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
ret
CheckPikaPicAnimTimer:
diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm
index ea40ba04..09c04293 100644
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -69,7 +69,7 @@ DisplayPCMainMenu::
ld de, LogOffPCText
.next3
call PlaceString
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 2
ld [wTopMenuItemY], a
@@ -135,7 +135,7 @@ BillsPCMenu:
inc hl
ld a, 5
ld [hli], a ; wMaxMenuItem
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; wMenuWatchedKeys
xor a
ld [hli], a ; wLastMenuItem
@@ -168,7 +168,7 @@ BillsPCMenu:
ldh [hAutoBGTransferEnabled], a
call Delay3
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, ExitBillsPC
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
@@ -445,7 +445,7 @@ DisplayDepositWithdrawMenu:
inc hl
ld a, 2
ld [hli], a ; wMaxMenuItem
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; wMenuWatchedKeys
xor a
ld [hl], a ; wLastMenuItem
@@ -456,7 +456,7 @@ DisplayDepositWithdrawMenu:
ld [wPartyAndBillsPCSavedMenuItem], a
.loop
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .exit
ld a, [wCurrentMenuItem]
and a
diff --git a/engine/pokemon/learn_move.asm b/engine/pokemon/learn_move.asm
index e10c6bcf..e40b3573 100644
--- a/engine/pokemon/learn_move.asm
+++ b/engine/pokemon/learn_move.asm
@@ -142,7 +142,7 @@ TryingToLearn:
inc hl
ld a, [wNumMovesMinusOne]
ld [hli], a ; wMaxMenuItem
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [hli], a ; wMenuWatchedKeys
ld [hl], 0 ; wLastMenuItem
ld hl, hUILayoutFlags
@@ -154,7 +154,7 @@ TryingToLearn:
call LoadScreenTilesFromBuffer1
pop af
pop hl
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .cancel
push hl
ld a, [wCurrentMenuItem]
diff --git a/engine/pokemon/status_screen.asm b/engine/pokemon/status_screen.asm
index c810260d..d0952cb9 100644
--- a/engine/pokemon/status_screen.asm
+++ b/engine/pokemon/status_screen.asm
@@ -80,7 +80,7 @@ StatusScreen:
ld hl, wStatusFlags2
set BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $33
- ldh [rNR50], a ; Reduce the volume
+ ldh [rAUDVOL], a ; Reduce the volume
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
@@ -447,7 +447,7 @@ StatusScreen2:
ld hl, wStatusFlags2
res BIT_NO_AUDIO_FADE_OUT, [hl]
ld a, $77
- ldh [rNR50], a
+ ldh [rAUDVOL], a
call GBPalWhiteOut
jp ClearScreen
diff --git a/engine/printer/printer.asm b/engine/printer/printer.asm
index fd4002c5..f0d2cb34 100644
--- a/engine/printer/printer.asm
+++ b/engine/printer/printer.asm
@@ -432,7 +432,7 @@ PrinterDebug:
Printer_CheckPressingB:
ldh a, [hJoyHeld]
- and B_BUTTON
+ and PAD_B
jr nz, .quit
and a
ret
diff --git a/engine/slots/slot_machine.asm b/engine/slots/slot_machine.asm
index 835ba1cf..baf5c242 100644
--- a/engine/slots/slot_machine.asm
+++ b/engine/slots/slot_machine.asm
@@ -70,7 +70,7 @@ MainSlotMachineLoop:
call PrintText
call SaveScreenTilesToBuffer1
.loop
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, 2
ld [wMaxMenuItem], a
@@ -89,7 +89,7 @@ MainSlotMachineLoop:
ld de, CoinMultiplierSlotMachineText
call PlaceString
call HandleMenuInput
- and B_BUTTON
+ and PAD_B
jp nz, LoadScreenTilesFromBuffer1
ld a, [wCurrentMenuItem]
ld b, a
@@ -831,7 +831,7 @@ SlotMachine_HandleInputWhileWheelsSpin:
call DelayFrame
call JoypadLowSensitivity
ldh a, [hJoy5]
- and A_BUTTON
+ and PAD_A
ret z
ld hl, wStoppingWhichSlotMachineWheel
ld a, [hl]
diff --git a/gfx/overworld/red_fish_back.png b/gfx/overworld/red_fish_back.png
index 0972377c..fd29ddab 100644
--- a/gfx/overworld/red_fish_back.png
+++ b/gfx/overworld/red_fish_back.png
Binary files differ
diff --git a/gfx/overworld/red_fish_front.png b/gfx/overworld/red_fish_front.png
index e18a27d8..0d76b428 100644
--- a/gfx/overworld/red_fish_front.png
+++ b/gfx/overworld/red_fish_front.png
Binary files differ
diff --git a/gfx/overworld/red_fish_side.png b/gfx/overworld/red_fish_side.png
index 11f25c2a..faab5474 100644
--- a/gfx/overworld/red_fish_side.png
+++ b/gfx/overworld/red_fish_side.png
Binary files differ
diff --git a/gfx/pics.asm b/gfx/pics.asm
index e7a52a17..bea31ade 100644
--- a/gfx/pics.asm
+++ b/gfx/pics.asm
@@ -324,7 +324,7 @@ VictreebelPicFront:: INCBIN "gfx/pokemon/front/victreebel.pic"
VictreebelPicBack:: INCBIN "gfx/pokemon/back/victreebelb.pic"
-SECTION "Pics 6", ROMX
+SECTION "Trainer Pics", ROMX
YoungsterPic:: INCBIN "gfx/trainers/youngster.pic"
BugCatcherPic:: INCBIN "gfx/trainers/bugcatcher.pic"
diff --git a/home/audio.asm b/home/audio.asm
index 6e891e9a..067093d6 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -144,7 +144,7 @@ Func_2223::
ld [wChannelSoundIDs + CHAN6], a
ld [wChannelSoundIDs + CHAN7], a
ld [wChannelSoundIDs + CHAN8], a
- ldh [rNR10], a
+ ldh [rAUD1SWEEP], a
ret
StopAllMusic::
diff --git a/home/bankswitch2.asm b/home/bankswitch2.asm
index cc54a8cb..8e37388f 100644
--- a/home/bankswitch2.asm
+++ b/home/bankswitch2.asm
@@ -1,6 +1,6 @@
BankswitchCommon::
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
ret
Bankswitch::
@@ -10,30 +10,30 @@ Bankswitch::
push af
ld a, b
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
call JumpToAddress
pop bc
ld a, b
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
ret
JumpToAddress::
jp hl
OpenSRAM::
push af
- ld a, SRAM_BANKING_MODE
- ld [MBC1SRamBankingMode], a
- ld a, SRAM_ENABLE
- ld [MBC1SRamEnable], a
+ ld a, BMODE_ADVANCED
+ ld [rBMODE], a
+ ld a, RAMG_SRAM_ENABLE
+ ld [rRAMG], a
pop af
- ld [MBC1SRamBank], a
+ ld [rRAMB], a
ret
CloseSRAM::
push af
- ld a, SRAM_DISABLE
- ld [MBC1SRamBankingMode], a
- ld [MBC1SRamEnable], a
+ ld a, 0
+ ld [rBMODE], a
+ ld [rRAMG], a
pop af
ret
diff --git a/home/copy.asm b/home/copy.asm
index 2d07945c..b0d0ebac 100644
--- a/home/copy.asm
+++ b/home/copy.asm
@@ -35,7 +35,7 @@ CopyData::
CopyVideoDataAlternate::
ldh a, [rLCDC]
- bit rLCDC_ENABLE, a ; LCD enabled?
+ bit B_LCDC_ENABLE, a ; LCD enabled?
jp nz, CopyVideoData ; if yes, then copy video data
push hl
ld h, d
@@ -55,7 +55,7 @@ CopyVideoDataAlternate::
CopyVideoDataDoubleAlternate::
ldh a, [rLCDC]
- bit rLCDC_ENABLE, a ; LCD enabled?
+ bit B_LCDC_ENABLE, a ; LCD enabled?
jp nz, CopyVideoDataDouble ; if yes, then copy video data
push de
ld d, h
diff --git a/home/fade_audio.asm b/home/fade_audio.asm
index 373b9bf8..a84ff2fe 100644
--- a/home/fade_audio.asm
+++ b/home/fade_audio.asm
@@ -6,7 +6,7 @@ FadeOutAudio::
bit BIT_NO_AUDIO_FADE_OUT, a
ret nz
ld a, $77
- ldh [rNR50], a
+ ldh [rAUDVOL], a
ret
.fadingOut
ld a, [wAudioFadeOutCounter]
@@ -18,7 +18,7 @@ FadeOutAudio::
.counterReachedZero
ld a, [wAudioFadeOutCounterReloadValue]
ld [wAudioFadeOutCounter], a
- ldh a, [rNR50]
+ ldh a, [rAUDVOL]
and a ; has the volume reached 0?
jr z, .fadeOutComplete
ld b, a
@@ -31,7 +31,7 @@ FadeOutAudio::
dec a
swap a
or c
- ldh [rNR50], a
+ ldh [rAUDVOL], a
ret
.fadeOutComplete
ld a, [wAudioFadeOutControl]
diff --git a/home/hidden_objects.asm b/home/hidden_objects.asm
index 986ce38f..c1e1c9d3 100644
--- a/home/hidden_objects.asm
+++ b/home/hidden_objects.asm
@@ -6,7 +6,7 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
ldh a, [hLoadedROMBank]
push af
ldh a, [hJoyHeld]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr z, .nothingFound
; A button is pressed
ld a, BANK(CheckForHiddenObject)
diff --git a/home/init.asm b/home/init.asm
index d555e598..0e5149a0 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -16,7 +16,7 @@ Init::
; * 8x8 OBJ size
; * OBJ display enabled
; * BG display enabled
-DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
+DEF LCDC_DEFAULT EQU LCDC_ON | LCDC_WIN_9C00 | LCDC_WIN_ON | LCDC_BLOCK21 | LCDC_BG_9800 | LCDC_OBJ_8 | LCDC_OBJ_ON | LCDC_BG_ON
di
@@ -35,7 +35,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 <<
ldh [rOBP0], a
ldh [rOBP1], a
- ld a, 1 << rLCDC_ENABLE
+ ld a, LCDC_ON
ldh [rLCDC], a
call DisableLCD
@@ -61,7 +61,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 <<
ld a, BANK(WriteDMACodeToHRAM)
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
call WriteDMACodeToHRAM
xor a
@@ -72,7 +72,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 <<
ldh [rIF], a
ld [wc0f3], a
ld [wc0f3 + 1], a
- ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL
+ ld a, IE_VBLANK | IE_TIMER | IE_SERIAL
ldh [rIE], a
ld a, 144 ; move the window off-screen
@@ -89,7 +89,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 <<
ld h, HIGH(vBGMap1)
call ClearBgMap
- ld a, rLCDC_DEFAULT
+ ld a, LCDC_DEFAULT
ldh [rLCDC], a
ld a, 16
ldh [hSoftReset], a
@@ -115,7 +115,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 <<
call ClearVram
call GBPalNormal
call ClearSprites
- ld a, rLCDC_DEFAULT
+ ld a, LCDC_DEFAULT
ldh [rLCDC], a
jp PrepareTitleScreen
diff --git a/home/item.asm b/home/item.asm
index 9e7f02f9..693f041e 100644
--- a/home/item.asm
+++ b/home/item.asm
@@ -23,12 +23,12 @@ TossItem::
push af
ld a, BANK(TossItem_)
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
call TossItem_
pop de
ld a, d
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
ret
; checks if an item is a key item
diff --git a/home/joypad2.asm b/home/joypad2.asm
index 30f9f788..da824797 100644
--- a/home/joypad2.asm
+++ b/home/joypad2.asm
@@ -40,7 +40,7 @@ JoypadLowSensitivity::
.delayOver
; if [hJoy6] = 0 and A or B is pressed, report no buttons as pressed
ldh a, [hJoyHeld]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr z, .setShortDelay
ldh a, [hJoy6] ; flag
and a
@@ -78,7 +78,7 @@ WaitForTextScrollButtonPress::
call JoypadLowSensitivity
predef CableClub_Run
ldh a, [hJoy5]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr z, .loop
pop af
ldh [hDownArrowBlinkCount2], a
diff --git a/home/lcd.asm b/home/lcd.asm
index aef6d43f..1e9e8888 100644
--- a/home/lcd.asm
+++ b/home/lcd.asm
@@ -3,16 +3,16 @@ DisableLCD::
ldh [rIF], a
ldh a, [rIE]
ld b, a
- res rIE_VBLANK, a
+ res B_IE_VBLANK, a
ldh [rIE], a
.wait
ldh a, [rLY]
- cp LY_VBLANK
+ cp LY_VBLANK + 1
jr nz, .wait
ldh a, [rLCDC]
- and ~(1 << rLCDC_ENABLE)
+ and ~LCDC_ON
ldh [rLCDC], a
ld a, b
ldh [rIE], a
@@ -20,6 +20,6 @@ DisableLCD::
EnableLCD::
ldh a, [rLCDC]
- set rLCDC_ENABLE, a
+ set B_LCDC_ENABLE, a
ldh [rLCDC], a
ret
diff --git a/home/list_menu.asm b/home/list_menu.asm
index 0742521f..b09f1ebc 100644
--- a/home/list_menu.asm
+++ b/home/list_menu.asm
@@ -50,7 +50,7 @@ DisplayListMenuID::
ld [wTopMenuItemY], a
ld a, 5
ld [wTopMenuItemX], a
- ld a, A_BUTTON | B_BUTTON | SELECT
+ ld a, PAD_A | PAD_B | PAD_SELECT
ld [wMenuWatchedKeys], a
ld c, 10
call DelayFrames
@@ -84,7 +84,7 @@ DisplayListMenuIDLoop::
push af
call PlaceMenuCursor
pop af
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp z, .checkOtherKeys
.buttonAPressed
ld a, [wCurrentMenuItem]
@@ -170,12 +170,12 @@ DisplayListMenuIDLoop::
res BIT_NO_TEXT_DELAY, [hl]
jp BankswitchBack
.checkOtherKeys ; check B, SELECT, Up, and Down keys
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, ExitListMenu ; if so, exit the menu
- bit BIT_SELECT, a
+ bit B_PAD_SELECT, a
jp nz, HandleItemListSwapping ; if so, allow the player to swap menu entries
ld b, a
- bit BIT_D_DOWN, b
+ bit B_PAD_DOWN, b
ld hl, wListScrollOffset
jr z, .upPressed
.downPressed
@@ -220,13 +220,13 @@ DisplayChooseQuantityMenu::
.waitForKeyPressLoop
call JoypadLowSensitivity
ldh a, [hJoyPressed] ; newly pressed buttons
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp nz, .buttonAPressed
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jp nz, .buttonBPressed
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jr nz, .incrementQuantity
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jr nz, .decrementQuantity
jr .waitForKeyPressLoop
.incrementQuantity
diff --git a/home/load_font.asm b/home/load_font.asm
index be54a287..c9a009f7 100644
--- a/home/load_font.asm
+++ b/home/load_font.asm
@@ -1,6 +1,6 @@
LoadFontTilePatterns::
ldh a, [rLCDC]
- bit rLCDC_ENABLE, a
+ bit B_LCDC_ENABLE, a
jr nz, .on
.off
ld hl, FontGraphics
@@ -16,7 +16,7 @@ LoadFontTilePatterns::
LoadTextBoxTilePatterns::
ldh a, [rLCDC]
- bit rLCDC_ENABLE, a
+ bit B_LCDC_ENABLE, a
jr nz, .on
.off
ld hl, TextBoxGraphics
@@ -32,7 +32,7 @@ LoadTextBoxTilePatterns::
LoadHpBarAndStatusTilePatterns::
ldh a, [rLCDC]
- bit rLCDC_ENABLE, a
+ bit B_LCDC_ENABLE, a
jr nz, .on
.off
ld hl, HpBarAndStatusGraphics
diff --git a/home/names.asm b/home/names.asm
index 7330a065..5848cb19 100644
--- a/home/names.asm
+++ b/home/names.asm
@@ -4,7 +4,7 @@ GetMonName::
push af
ld a, BANK(MonsterNames)
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
ld a, [wNamedObjectIndex]
dec a
ld hl, MonsterNames
@@ -20,7 +20,7 @@ GetMonName::
pop de
pop af
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
pop hl
ret
diff --git a/home/npc_movement.asm b/home/npc_movement.asm
index 83c837a8..58fd8505 100644
--- a/home/npc_movement.asm
+++ b/home/npc_movement.asm
@@ -53,10 +53,10 @@ DebugPressedOrHeldB:: ; dummy except in _DEBUG
; Safari Game step counter, and some NPC scripts.
IF DEF(_DEBUG)
ldh a, [hJoyHeld]
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
ret nz
ldh a, [hJoyPressed]
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
ret
ENDC
ret
diff --git a/home/overworld.asm b/home/overworld.asm
index 111e7cab..473635cc 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -1,6 +1,6 @@
EnterMap::
; Load a new map.
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call LoadMapData
farcall ClearVariablesOnEnterMap
@@ -73,14 +73,14 @@ OverworldLoopLessDelay::
.notSimulating
ldh a, [hJoyPressed]
.checkIfStartIsPressed
- bit BIT_START, a
+ bit B_PAD_START, a
jr z, .startButtonNotPressed
; if START is pressed
xor a ; TEXT_START_MENU
ldh [hTextID], a
jp .displayDialogue
.startButtonNotPressed
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jp z, .checkIfDownButtonIsPressed
; if A is pressed
ld a, [wStatusFlags5]
@@ -142,7 +142,7 @@ OverworldLoopLessDelay::
.checkIfDownButtonIsPressed
ldh a, [hJoyHeld] ; current joypad state
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jr z, .checkIfUpButtonIsPressed
ld a, 1
ld [wSpritePlayerStateData1YStepVector], a
@@ -150,7 +150,7 @@ OverworldLoopLessDelay::
jr .handleDirectionButtonPress
.checkIfUpButtonIsPressed
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jr z, .checkIfLeftButtonIsPressed
ld a, -1
ld [wSpritePlayerStateData1YStepVector], a
@@ -158,7 +158,7 @@ OverworldLoopLessDelay::
jr .handleDirectionButtonPress
.checkIfLeftButtonIsPressed
- bit BIT_D_LEFT, a
+ bit B_PAD_LEFT, a
jr z, .checkIfRightButtonIsPressed
ld a, -1
ld [wSpritePlayerStateData1XStepVector], a
@@ -166,7 +166,7 @@ OverworldLoopLessDelay::
jr .handleDirectionButtonPress
.checkIfRightButtonIsPressed
- bit BIT_D_RIGHT, a
+ bit B_PAD_RIGHT, a
jr z, .noDirectionButtonsPressed
ld a, 1
ld [wSpritePlayerStateData1XStepVector], a
@@ -350,7 +350,7 @@ DoBikeSpeedup::
cp ROUTE_17 ; Cycling Road
jr nz, .goFaster
ldh a, [hJoyHeld]
- and D_UP | D_LEFT | D_RIGHT
+ and PAD_UP | PAD_LEFT | PAD_RIGHT
ret nz
.goFaster
call AdvancePlayerSprite
@@ -401,7 +401,7 @@ CheckWarpsNoCollisionLoop::
pop bc
pop de
ldh a, [hJoyHeld]
- and D_DOWN | D_UP | D_LEFT | D_RIGHT
+ and PAD_CTRL_PAD
jr z, CheckWarpsNoCollisionRetry2 ; if directional buttons aren't being pressed, do not pass through the warp
jr WarpFound1
@@ -1598,9 +1598,9 @@ ForceBikeDown::
cp ROUTE_17 ; Cycling Road
ret nz
ldh a, [hJoyHeld]
- and D_DOWN | D_UP | D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON
+ and PAD_CTRL_PAD | PAD_B | PAD_A
ret nz
- ld a, D_DOWN
+ ld a, PAD_DOWN
ldh [hJoyHeld], a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press
ret
@@ -2048,7 +2048,7 @@ CopyMapViewToVRAM2:
inc e
dec c
jr nz, .vramCopyInnerLoop
- ld a, BG_MAP_WIDTH - SCREEN_WIDTH
+ ld a, TILEMAP_WIDTH - SCREEN_WIDTH
add e
ld e, a
jr nc, .noCarry
@@ -2284,14 +2284,14 @@ CheckForUserInterruption::
pop bc
ldh a, [hJoyHeld]
- cp D_UP + SELECT + B_BUTTON
+ cp PAD_UP + PAD_SELECT + PAD_B
jr z, .input
ldh a, [hJoy5]
IF DEF(_DEBUG)
- and START | SELECT | A_BUTTON
+ and PAD_START | PAD_SELECT | PAD_A
ELSE
- and START | A_BUTTON
+ and PAD_START | PAD_A
ENDC
jr nz, .input
@@ -2314,7 +2314,7 @@ LoadDestinationWarpPosition::
push af
ld a, [wPredefParentBank]
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
ld a, b
add a
add a
@@ -2326,5 +2326,5 @@ LoadDestinationWarpPosition::
call CopyData
pop af
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
ret
diff --git a/home/pikachu_cries.asm b/home/pikachu_cries.asm
index 9d41da02..92841938 100644
--- a/home/pikachu_cries.asm
+++ b/home/pikachu_cries.asm
@@ -35,7 +35,7 @@ LoadNextSoundClipSample::
and $80
srl a
srl a
- ldh [rNR32], a
+ ldh [rAUD3LEVEL], a
sla d
ret
diff --git a/home/pokemon.asm b/home/pokemon.asm
index b66fe72d..54996092 100644
--- a/home/pokemon.asm
+++ b/home/pokemon.asm
@@ -232,11 +232,11 @@ PartyMenuInit::
ld [hli], a ; max menu item ID
ld a, [wForcePlayerToChooseMon]
and a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
jr z, .next
xor a
ld [wForcePlayerToChooseMon], a
- inc a ; a = A_BUTTON
+ inc a ; a = PAD_A
.next
ld [hli], a ; menu watched keys
pop af
@@ -250,7 +250,7 @@ HandlePartyMenuInput::
ld [wPartyMenuAnimMonEnabled], a
call HandleMenuInput_
push af ; save hJoy5 OR wMenuWrapping enabled, if no inputs were selected within a certain period of time
- bit BIT_B_BUTTON, a ; was B button pressed?
+ bit B_PAD_B, a ; was B button pressed?
ld a, $0
ld [wPartyMenuAnimMonEnabled], a
ld a, [wCurrentMenuItem]
@@ -273,7 +273,7 @@ HandlePartyMenuInput::
jp nz, .swappingPokemon
pop af
ldh [hTileAnimations], a
- bit BIT_B_BUTTON, b
+ bit B_PAD_B, b
jr nz, .noPokemonChosen
ld a, [wPartyCount]
and a
@@ -303,7 +303,7 @@ HandlePartyMenuInput::
scf
ret
.swappingPokemon
- bit BIT_B_BUTTON, b
+ bit B_PAD_B, b
jr z, .handleSwap ; if not, handle swapping the pokemon
.cancelSwap ; if the B button was pressed
farcall ErasePartyMenuCursors
diff --git a/home/predef.asm b/home/predef.asm
index 4861d5d0..ba237c66 100644
--- a/home/predef.asm
+++ b/home/predef.asm
@@ -14,7 +14,7 @@ Predef::
push af
ld a, BANK(GetPredefPointer)
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
call GetPredefPointer
diff --git a/home/print_text.asm b/home/print_text.asm
index 65d418a3..fe784350 100644
--- a/home/print_text.asm
+++ b/home/print_text.asm
@@ -25,11 +25,11 @@ PrintLetterDelay::
call Joypad
ldh a, [hJoyHeld]
.checkAButton
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr z, .checkBButton
jr .endWait
.checkBButton
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr z, .buttonsNotPressed
.endWait
call DelayFrame
diff --git a/home/printer.asm b/home/printer.asm
index 2591567b..2b083681 100644
--- a/home/printer.asm
+++ b/home/printer.asm
@@ -22,7 +22,7 @@ SerialFunction::
ldh [rSB], a
ld a, $1
ldh [rSC], a
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
ret
diff --git a/home/serial.asm b/home/serial.asm
index 258651a5..644a6e1d 100644
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -17,7 +17,7 @@ Serial::
cp USING_INTERNAL_CLOCK
jr z, .done
; using external clock
- ld a, START_TRANSFER_EXTERNAL_CLOCK
+ ld a, SC_START | SC_EXTERNAL
ldh [rSC], a
jr .done
.connectionNotYetEstablished
@@ -35,7 +35,7 @@ Serial::
ldh a, [rDIV]
bit 7, a ; wait until rDIV has incremented from $3 to $80 or more
jr nz, .waitLoop
- ld a, START_TRANSFER_EXTERNAL_CLOCK
+ ld a, SC_START | SC_EXTERNAL
ldh [rSC], a
jr .done
.usingInternalClock
@@ -95,7 +95,7 @@ Serial_ExchangeByte::
ldh a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
jr nz, .loop
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
.loop
ldh a, [hSerialReceivedNewData]
@@ -120,8 +120,8 @@ Serial_ExchangeByte::
jp SetUnknownCounterToFFFF
.doNotIncrementUnknownCounter
ldh a, [rIE]
- and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
- cp 1 << SERIAL
+ and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK
+ cp IE_SERIAL
jr nz, .loop
ld a, [wUnknownSerialCounter2]
dec a
@@ -142,8 +142,8 @@ Serial_ExchangeByte::
xor a
ldh [hSerialReceivedNewData], a
ldh a, [rIE]
- and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
- sub 1 << SERIAL
+ and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK
+ sub IE_SERIAL
jr nz, .skipReloadingUnknownCounter2
ld [wUnknownSerialCounter2], a
ld a, $50
@@ -168,8 +168,8 @@ Serial_ExchangeByte::
jr z, SetUnknownCounterToFFFF
.done
ldh a, [rIE]
- and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
- cp 1 << SERIAL
+ and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK
+ cp IE_SERIAL
ld a, SERIAL_NO_DATA_BYTE
ret z
ld a, [hl]
@@ -294,7 +294,7 @@ Serial_ExchangeNybble::
ldh a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
jr nz, .doExchange
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
.doExchange
ldh a, [hSerialReceiveData]
@@ -315,7 +315,7 @@ Serial_SendZeroByte::
ldh a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
ret nz
- ld a, START_TRANSFER_INTERNAL_CLOCK
+ ld a, SC_START | SC_INTERNAL
ldh [rSC], a
ret
@@ -324,7 +324,7 @@ Serial_TryEstablishingExternallyClockedConnection::
ldh [rSB], a
xor a
ldh [hSerialReceiveData], a
- ld a, START_TRANSFER_EXTERNAL_CLOCK
+ ld a, SC_START | SC_EXTERNAL
ldh [rSC], a
ret
diff --git a/home/start.asm b/home/start.asm
index 2b284647..3b6a9e76 100644
--- a/home/start.asm
+++ b/home/start.asm
@@ -1,5 +1,5 @@
_Start::
- cp CGB
+ cp BOOTUP_A_CGB
jr z, .cgb
xor a
jr .ok
diff --git a/home/start_menu.asm b/home/start_menu.asm
index 12c9685c..b1bc0539 100644
--- a/home/start_menu.asm
+++ b/home/start_menu.asm
@@ -15,7 +15,7 @@ RedisplayStartMenu_DoNotDrawStartMenu::
call HandleMenuInput
ld b, a
.checkIfUpPressed
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jr z, .checkIfDownPressed
ld a, [wCurrentMenuItem] ; menu selection
and a
@@ -33,7 +33,7 @@ RedisplayStartMenu_DoNotDrawStartMenu::
call EraseMenuCursor
jr .loop
.checkIfDownPressed
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jr z, .buttonPressed
; if the player pressed tried to go past the bottom item, wrap around to the top
CheckEvent EVENT_GOT_POKEDEX
@@ -54,7 +54,7 @@ RedisplayStartMenu_DoNotDrawStartMenu::
ld a, [wCurrentMenuItem]
ld [wBattleAndStartSavedMenuItem], a ; save current menu selection
ld a, b
- and B_BUTTON | START ; was the Start button or B button pressed?
+ and PAD_B | PAD_START ; was the Start button or B button pressed?
jp nz, CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
CheckEvent EVENT_GOT_POKEDEX
@@ -79,7 +79,7 @@ RedisplayStartMenu_DoNotDrawStartMenu::
CloseStartMenu::
call Joypad
ldh a, [hJoyPressed]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr nz, CloseStartMenu
call LoadTextBoxTilePatterns
jp CloseTextDisplay
diff --git a/home/text.asm b/home/text.asm
index 7c3589fd..6a7b51f4 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -285,7 +285,7 @@ _ContTextNoPause::
; move both rows of text in the normal text box up one row
; always called twice in a row
-; first time, copy the two rows of text to the "in between" rows that are usually emtpy
+; first time, copy the two rows of text to the "in between" rows that are usually empty
; second time, copy the bottom row of text into the top row of text
ScrollTextUpOneLine::
hlcoord 0, 14 ; top row of text
@@ -501,7 +501,7 @@ TextCommand_PAUSE::
push bc
call Joypad
ldh a, [hJoyHeld]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr nz, .done
ld c, 30 ; half a second
call DelayFrames
@@ -577,7 +577,7 @@ TextCommand_DOTS::
call Joypad
pop de
ldh a, [hJoyHeld] ; joypad state
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr nz, .next ; if so, skip the delay
ld c, 10
call DelayFrames
@@ -611,7 +611,7 @@ TextCommand_FAR::
ld a, [hli]
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
push hl
ld l, e
@@ -621,7 +621,7 @@ TextCommand_FAR::
pop af
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
jp NextTextCommand
TextCommandJumpTable::
diff --git a/home/text_script.asm b/home/text_script.asm
index 097c1028..3d2bd34b 100644
--- a/home/text_script.asm
+++ b/home/text_script.asm
@@ -98,7 +98,7 @@ AfterDisplayingTextID::
HoldTextDisplayOpen::
call Joypad
ldh a, [hJoyHeld]
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr nz, HoldTextDisplayOpen
CloseTextDisplay::
diff --git a/home/tilemap.asm b/home/tilemap.asm
index ea247763..e2fb4296 100644
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -9,7 +9,7 @@ UncompressSpriteFromDE::
SaveScreenTilesToBuffer2::
hlcoord 0, 0
ld de, wTileMapBackup2
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld bc, SCREEN_AREA
jp CopyData
LoadScreenTilesFromBuffer2::
@@ -24,13 +24,13 @@ LoadScreenTilesFromBuffer2DisableBGTransfer::
ldh [hAutoBGTransferEnabled], a
ld hl, wTileMapBackup2
decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld bc, SCREEN_AREA
jp CopyData
SaveScreenTilesToBuffer1::
hlcoord 0, 0
ld de, wTileMapBackup
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld bc, SCREEN_AREA
jp CopyData
LoadScreenTilesFromBuffer1::
@@ -38,7 +38,7 @@ LoadScreenTilesFromBuffer1::
ldh [hAutoBGTransferEnabled], a
ld hl, wTileMapBackup
decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld bc, SCREEN_AREA
call CopyData
ld a, 1
ldh [hAutoBGTransferEnabled], a
diff --git a/home/trainers.asm b/home/trainers.asm
index 5048a8c5..fa9167fc 100644
--- a/home/trainers.asm
+++ b/home/trainers.asm
@@ -149,7 +149,7 @@ ENDC
xor a ; EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
xor a
ldh [hJoyHeld], a
@@ -349,7 +349,7 @@ PrintEndBattleText::
push af
ld a, [wEndBattleTextRomBank]
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
push hl
farcall SaveTrainerName
ld hl, TrainerEndBattleText
@@ -357,7 +357,7 @@ PrintEndBattleText::
pop hl
pop af
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
farcall SetEnemyTrainerToStayAndFaceAnyDirection
jp WaitForSoundToFinish
diff --git a/home/uncompress.asm b/home/uncompress.asm
index 19d87f94..091cf5f8 100644
--- a/home/uncompress.asm
+++ b/home/uncompress.asm
@@ -463,7 +463,7 @@ DecodeNybble1TableFlipped::
dn $e, $6
dn $2, $a
-; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differeintial decoded beforehand.
+; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differential decoded beforehand.
XorSpriteChunks::
xor a
ld [wSpriteCurPosX], a
@@ -565,7 +565,7 @@ ResetSpriteBufferPointers::
NybbleReverseTable::
db $0, $8, $4, $c, $2, $a, $6, $e, $1, $9, $5, $d, $3, $b, $7, $f
-; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differeintial decoded beforehand.
+; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differential decoded beforehand.
UnpackSpriteMode2::
call ResetSpriteBufferPointers
ld a, [wSpriteFlipped]
diff --git a/home/vblank.asm b/home/vblank.asm
index b511dfa4..0cfbe9b1 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -34,7 +34,7 @@ VBlank::
call hDMARoutine
ld a, BANK(PrepareOAMData)
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
call PrepareOAMData
; VBlank-sensitive operations end.
@@ -70,7 +70,7 @@ VBlank::
ld a, [wVBlankSavedROMBank]
ldh [hLoadedROMBank], a
- ld [MBC1RomBank], a
+ ld [rROMB], a
pop af
ldh [rVBK], a
diff --git a/home/vcopy.asm b/home/vcopy.asm
index 904383ac..10d6ce20 100644
--- a/home/vcopy.asm
+++ b/home/vcopy.asm
@@ -23,7 +23,7 @@ ClearBgMap::
jr .next
ld a, l
.next
- ld de, BG_MAP_WIDTH * BG_MAP_HEIGHT
+ ld de, TILEMAP_AREA
ld l, e
.loop
ld [hli], a
@@ -61,7 +61,7 @@ RedrawRowOrColumn::
inc de
ld a, [hli]
ld [de], a
- ld a, BG_MAP_WIDTH - 1
+ ld a, TILEMAP_WIDTH - 1
add e
ld e, a
jr nc, .noCarry
@@ -86,7 +86,7 @@ RedrawRowOrColumn::
push de
call .DrawHalf ; draw upper half
pop de
- ld a, BG_MAP_WIDTH ; width of VRAM background map
+ ld a, TILEMAP_WIDTH ; width of VRAM background map
add e
ld e, a
; fall through and draw lower half
@@ -177,7 +177,7 @@ ENDR
inc l
ld [hl], d
- ld a, BG_MAP_WIDTH - (SCREEN_WIDTH - 1)
+ ld a, TILEMAP_WIDTH - (SCREEN_WIDTH - 1)
add l
ld l, a
jr nc, .ok
@@ -247,7 +247,7 @@ VBlankCopyDouble::
ldh [hVBlankCopyDoubleSize], a
.loop
-REPT LEN_2BPP_TILE / 4 - 1
+REPT TILE_SIZE / 4 - 1
pop de
ld [hl], e
inc l
@@ -313,7 +313,7 @@ VBlankCopy::
ldh [hVBlankCopySize], a
.loop
-REPT LEN_2BPP_TILE / 2 - 1
+REPT TILE_SIZE / 2 - 1
pop de
ld [hl], e
inc l
diff --git a/home/window.asm b/home/window.asm
index 713699e6..18c00e79 100644
--- a/home/window.asm
+++ b/home/window.asm
@@ -50,9 +50,9 @@ HandleMenuInput_::
ld [wCheckFor180DegreeTurn], a
ldh a, [hJoy5]
ld b, a
- bit BIT_A_BUTTON, a
+ bit B_PAD_A, a
jr nz, .checkOtherKeys
- bit BIT_D_UP, a
+ bit B_PAD_UP, a
jr z, .checkIfDownPressed
.upPressed
ld a, [wCurrentMenuItem] ; selected menu item
@@ -70,7 +70,7 @@ HandleMenuInput_::
ld [wCurrentMenuItem], a ; wrap to the bottom of the menu
jr .checkOtherKeys
.checkIfDownPressed
- bit BIT_D_DOWN, a
+ bit B_PAD_DOWN, a
jr z, .checkOtherKeys
.downPressed
ld a, [wCurrentMenuItem]
@@ -93,7 +93,7 @@ HandleMenuInput_::
jp z, .loop1
.checkIfAButtonOrBButtonPressed
ldh a, [hJoy5]
- and A_BUTTON | B_BUTTON
+ and PAD_A | PAD_B
jr z, .skipPlayingSound
.AButtonOrBButtonPressed
push hl
diff --git a/includes.asm b/includes.asm
index ab5b8791..71f4a9b8 100644
--- a/includes.asm
+++ b/includes.asm
@@ -15,12 +15,11 @@ INCLUDE "macros/scripts/text.asm"
INCLUDE "macros/scripts/gfx_anims.asm"
INCLUDE "constants/charmap.asm"
-INCLUDE "constants/hardware_constants.asm"
+INCLUDE "constants/hardware.inc"
INCLUDE "constants/oam_constants.asm"
INCLUDE "constants/ram_constants.asm"
INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/gfx_constants.asm"
-INCLUDE "constants/input_constants.asm"
INCLUDE "constants/serial_constants.asm"
INCLUDE "constants/script_constants.asm"
INCLUDE "constants/type_constants.asm"
diff --git a/layout.link b/layout.link
index e4c55e62..e9d737fa 100644
--- a/layout.link
+++ b/layout.link
@@ -97,7 +97,7 @@ ROMX $12
"Maps 7"
"Maps 8"
ROMX $13
- "Pics 6"
+ "Trainer Pics"
"Maps 9"
ROMX $14
"Maps 10"
diff --git a/macros/asserts.asm b/macros/asserts.asm
index 402d97dd..7ca47892 100644
--- a/macros/asserts.asm
+++ b/macros/asserts.asm
@@ -44,7 +44,7 @@ MACRO list_start
ENDM
MACRO li
- ASSERT STRFIND(\1, "@") == -1, STRCAT("String terminator \"@\" in list entry: ", \1)
+ ASSERT STRFIND(\1, "@") == -1, "String terminator \"@\" in list entry: \1"
db \1, "@"
DEF list_index += 1
ENDM
diff --git a/macros/coords.asm b/macros/coords.asm
index 984073ed..6eccdec4 100644
--- a/macros/coords.asm
+++ b/macros/coords.asm
@@ -47,11 +47,11 @@ ENDM
MACRO bgcoord
; register, x, y[, origin]
- validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT
+ validate_coords \2, \3, TILEMAP_WIDTH, TILEMAP_HEIGHT
IF _NARG >= 4
- ld \1, (\3) * BG_MAP_WIDTH + (\2) + \4
+ ld \1, (\3) * TILEMAP_WIDTH + (\2) + \4
ELSE
- ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0
+ ld \1, (\3) * TILEMAP_WIDTH + (\2) + vBGMap0
ENDC
ENDM
diff --git a/macros/gfx.asm b/macros/gfx.asm
index 944e6dd5..7b8fcf5d 100644
--- a/macros/gfx.asm
+++ b/macros/gfx.asm
@@ -5,16 +5,16 @@ MACRO RGB
ENDR
ENDM
-DEF palred EQUS "(1 << 0) *"
-DEF palgreen EQUS "(1 << 5) *"
-DEF palblue EQUS "(1 << 10) *"
+DEF palred EQUS "(1 << B_COLOR_RED) *"
+DEF palgreen EQUS "(1 << B_COLOR_GREEN) *"
+DEF palblue EQUS "(1 << B_COLOR_BLUE) *"
DEF palettes EQUS "* PALETTE_SIZE"
DEF palette EQUS "+ PALETTE_SIZE *"
DEF color EQUS "+ PAL_COLOR_SIZE *"
-DEF tiles EQUS "* LEN_2BPP_TILE"
-DEF tile EQUS "+ LEN_2BPP_TILE *"
+DEF tiles EQUS "* TILE_SIZE"
+DEF tile EQUS "+ TILE_SIZE *"
MACRO dbsprite
; x tile, y tile, x pixel, y pixel, vtile offset, attributes
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
index 2837d0c0..49150c6e 100644
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -72,6 +72,12 @@ ENDM
;\1 source map
MACRO def_warps_to
+ ASSERT {_NUM_WARP_EVENTS} <= MAX_WARP_EVENTS, \
+ "Too many warp_events (above {d:MAX_WARP_EVENTS})!"
+ ASSERT {_NUM_BG_EVENTS} <= MAX_BG_EVENTS, \
+ "Too many bg_events (above {d:MAX_BG_EVENTS})!"
+ ASSERT {_NUM_OBJECT_EVENTS} <= MAX_OBJECT_EVENTS, \
+ "Too many object_events (above {d:MAX_OBJECT_EVENTS})!"
; text ID values are significant (see DisplayTextID in home/text_scripts.asm)
FOR n, {_NUM_BG_EVENTS}
ASSERT {_BG_EVENT_{d:n}_TEXT_ID} > {_NUM_OBJECT_EVENTS}, \
diff --git a/ram/vram.asm b/ram/vram.asm
index 04556410..fafb5d8e 100644
--- a/ram/vram.asm
+++ b/ram/vram.asm
@@ -5,8 +5,8 @@ UNION
vChars0:: ds $80 tiles
vChars1:: ds $80 tiles
vChars2:: ds $80 tiles
-vBGMap0:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
-vBGMap1:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
+vBGMap0:: ds TILEMAP_AREA
+vBGMap1:: ds TILEMAP_AREA
NEXTU
; battle/menu
diff --git a/ram/wram.asm b/ram/wram.asm
index 68a04fcb..7b03c846 100644
--- a/ram/wram.asm
+++ b/ram/wram.asm
@@ -149,7 +149,7 @@ SECTION "OAM Buffer", WRAM0
; buffer for OAM data. Copied to OAM by DMA
wShadowOAM::
; wShadowOAMSprite00 - wShadowOAMSprite39
-FOR n, NUM_SPRITE_OAM_STRUCTS
+FOR n, OAM_COUNT
wShadowOAMSprite{02d:n}:: sprite_oam_struct wShadowOAMSprite{02d:n}
ENDR
wShadowOAMEnd::
@@ -158,13 +158,13 @@ wShadowOAMEnd::
SECTION "Tilemap", WRAM0
; buffer for tiles that are visible on screen (20 columns by 18 rows)
-wTileMap:: ds SCREEN_WIDTH * SCREEN_HEIGHT
+wTileMap:: ds SCREEN_AREA
; This union spans 480 bytes.
UNION
; buffer for temporarily saving and restoring current screen's tiles
; (e.g. if menus are drawn on top)
-wTileMapBackup:: ds SCREEN_WIDTH * SCREEN_HEIGHT
+wTileMapBackup:: ds SCREEN_AREA
NEXTU
; buffer for the blocks surrounding the player (6 columns by 5 rows of 4x4-tile blocks)
@@ -174,7 +174,7 @@ NEXTU
; buffer for temporarily saving and restoring shadow OAM
wShadowOAMBackup::
; wShadowOAMBackupSprite00 - wShadowOAMBackupSprite39
-FOR n, NUM_SPRITE_OAM_STRUCTS
+FOR n, OAM_COUNT
wShadowOAMBackupSprite{02d:n}:: sprite_oam_struct wShadowOAMBackupSprite{02d:n}
ENDR
wShadowOAMBackupEnd::
@@ -489,7 +489,7 @@ wNPCMovementScriptBank:: db
; This union spans 180 bytes.
UNION
-wVermilionDockTileMapBuffer:: ds 5 * BG_MAP_WIDTH + SCREEN_WIDTH
+wVermilionDockTileMapBuffer:: ds 5 * TILEMAP_WIDTH + SCREEN_WIDTH
wVermilionDockTileMapBufferEnd::
NEXTU
@@ -1095,7 +1095,7 @@ UNION
wSerialOtherGameboyRandomNumberListBlock:: ds $11
NEXTU
; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
-wTileMapBackup2:: ds SCREEN_WIDTH * SCREEN_HEIGHT
+wTileMapBackup2:: ds SCREEN_AREA
ENDU
; This union spans 30 bytes.
@@ -1990,11 +1990,11 @@ wObjectDataPointerTemp:: dw
; the tile shown outside the boundaries of the map
wMapBackgroundTile:: db
-; number of warps in current map (up to 32)
+; number of warps in current map (up to MAX_WARP_EVENTS)
wNumberOfWarps:: db
; current map warp entries
-wWarpEntries:: ds 32 * 4 ; Y, X, warp ID, map ID
+wWarpEntries:: ds MAX_WARP_EVENTS * 4 ; Y, X, warp ID, map ID
; if $ff, the player's coordinates are not updated when entering the map
wDestinationWarpID:: db
@@ -2078,13 +2078,13 @@ wd49b:: db
ds 19
-; number of signs in the current map (up to 16)
+; number of signs in the current map (up to MAX_BG_EVENTS)
wNumSigns:: db
-wSignCoords:: ds 16 * 2 ; Y, X
-wSignTextIDs:: ds 16
+wSignCoords:: ds MAX_BG_EVENTS * 2 ; Y, X
+wSignTextIDs:: ds MAX_BG_EVENTS
-; number of sprites on the current map (up to 16)
+; number of sprites on the current map (up to MAX_OBJECT_EVENTS)
wNumSprites:: db
; these two variables track the X and Y offset in blocks from the last special warp used
@@ -2092,8 +2092,8 @@ wNumSprites:: db
wYOffsetSinceLastSpecialWarp:: db
wXOffsetSinceLastSpecialWarp:: db
-wMapSpriteData:: ds 16 * 2 ; movement byte 2, text ID
-wMapSpriteExtraData:: ds 16 * 2 ; trainer class/item ID, trainer set ID
+wMapSpriteData:: ds MAX_OBJECT_EVENTS * 2 ; movement byte 2, text ID
+wMapSpriteExtraData:: ds MAX_OBJECT_EVENTS * 2 ; trainer class/item ID, trainer set ID
; map height in 2x2 meta-tiles
wCurrentMapHeight2:: db
diff --git a/rgbdscheck.asm b/rgbdscheck.asm
index 0ff10b53..ae84803e 100644
--- a/rgbdscheck.asm
+++ b/rgbdscheck.asm
@@ -1,6 +1,6 @@
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)
- fail "pokeyellow requires rgbds v0.9.2 or newer."
+ fail "pokeyellow requires rgbds v0.9.3 or newer."
ENDC
-IF __RGBDS_MAJOR__ == 0 && (__RGBDS_MINOR__ < 9 || (__RGBDS_MINOR__ == 9 && __RGBDS_PATCH__ < 2))
- fail "pokeyellow requires rgbds v0.9.2 or newer."
+IF __RGBDS_MAJOR__ == 0 && (__RGBDS_MINOR__ < 9 || (__RGBDS_MINOR__ == 9 && __RGBDS_PATCH__ < 3))
+ fail "pokeyellow requires rgbds v0.9.3 or newer."
ENDC
diff --git a/scripts/AgathasRoom.asm b/scripts/AgathasRoom.asm
index 2d0dca08..548f78bf 100644
--- a/scripts/AgathasRoom.asm
+++ b/scripts/AgathasRoom.asm
@@ -44,7 +44,7 @@ AgathasRoomNoopScript:
AgathaScriptWalkIntoRoom:
; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd
- ld a, D_UP
+ ld a, PAD_UP
ld [hli], a
ld [hli], a
ld [hli], a
@@ -77,7 +77,7 @@ AgathasRoomDefaultScript:
ld a, TEXT_AGATHASROOM_AGATHA_DONT_RUN_AWAY
ldh [hTextID], a
call DisplayTextID
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/BikeShop.asm b/scripts/BikeShop.asm
index 019fe97d..66b2a1e6 100644
--- a/scripts/BikeShop.asm
+++ b/scripts/BikeShop.asm
@@ -41,7 +41,7 @@ BikeShopClerkText:
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, $1
ld [wMaxMenuItem], a
@@ -67,7 +67,7 @@ BikeShopClerkText:
ld hl, wStatusFlags5
res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
jr nz, .cancel
ld a, [wCurrentMenuItem]
and a
diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm
index 3c1de8e4..17bea71a 100644
--- a/scripts/BillsHouse.asm
+++ b/scripts/BillsHouse.asm
@@ -56,7 +56,7 @@ BillsHouseScript1:
ret
BillsHouseScript2:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wSpritePlayerStateData1FacingDirection]
and a ; cp SPRITE_FACING_DOWN
@@ -135,7 +135,7 @@ PikachuMovementData_1e152:
BillsHouseScript4:
CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret z
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_BILLSHOUSE_SCRIPT5
ld [wBillsHouseCurScript], a
@@ -213,7 +213,7 @@ BillsHouseScript7:
ld [wPlayerMovingDirection], a
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld de, RLE_1e219
ld hl, wSimulatedJoypadStatesEnd
@@ -226,7 +226,7 @@ BillsHouseScript7:
ret
RLE_1e219:
- db D_RIGHT, $3
+ db PAD_RIGHT, $3
db $FF
BillsHouseScript8:
diff --git a/scripts/BillsHouse_2.asm b/scripts/BillsHouse_2.asm
index 763747e7..f75ab204 100644
--- a/scripts/BillsHouse_2.asm
+++ b/scripts/BillsHouse_2.asm
@@ -105,7 +105,7 @@ Func_f24ae::
ret
Func_f24d5::
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
xor a
ld [wPlayerMovingDirection], a
diff --git a/scripts/BrunosRoom.asm b/scripts/BrunosRoom.asm
index 6d7fde6e..1f8ff4cf 100644
--- a/scripts/BrunosRoom.asm
+++ b/scripts/BrunosRoom.asm
@@ -44,7 +44,7 @@ BrunosRoomNoopScript:
BrunoScriptWalkIntoRoom:
; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd
- ld a, D_UP
+ ld a, PAD_UP
ld [hli], a
ld [hli], a
ld [hli], a
@@ -77,7 +77,7 @@ BrunosRoomDefaultScript:
ld a, TEXT_BRUNOSROOM_BRUNO_DONT_RUN_AWAY
ldh [hTextID], a
call DisplayTextID ; "Don't run away!"
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/CeladonGym.asm b/scripts/CeladonGym.asm
index f95d129a..2e9e197b 100644
--- a/scripts/CeladonGym.asm
+++ b/scripts/CeladonGym.asm
@@ -40,7 +40,7 @@ CeladonGymErikaPostBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, CeladonGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
CeladonGymReceiveTM21:
diff --git a/scripts/CeladonMartRoof.asm b/scripts/CeladonMartRoof.asm
index 57eab858..4bb4d596 100644
--- a/scripts/CeladonMartRoof.asm
+++ b/scripts/CeladonMartRoof.asm
@@ -49,7 +49,7 @@ CeladonMartRoofScript_GiveDrinkToGirl:
call PrintText
xor a
ld [wCurrentMenuItem], a
- ld a, A_BUTTON | B_BUTTON
+ ld a, PAD_A | PAD_B
ld [wMenuWatchedKeys], a
ld a, [wFilteredBagItemsCount]
dec a
@@ -73,7 +73,7 @@ CeladonMartRoofScript_GiveDrinkToGirl:
ld hl, wStatusFlags5
res BIT_NO_TEXT_DELAY, [hl]
call HandleMenuInput
- bit BIT_B_BUTTON, a
+ bit B_PAD_B, a
ret nz
ld hl, wFilteredBagItems
ld a, [wCurrentMenuItem]
diff --git a/scripts/CeruleanCity.asm b/scripts/CeruleanCity.asm
index c1268a60..0bc77b42 100644
--- a/scripts/CeruleanCity.asm
+++ b/scripts/CeruleanCity.asm
@@ -24,7 +24,7 @@ CeruleanCityRocketDefeatedScript:
ld a, [wIsInBattle]
cp $ff
jp z, CeruleanCityClearScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF
ld a, TEXT_CERULEANCITY_ROCKET
@@ -76,7 +76,7 @@ ENDC
call PlayMusic
xor a
ldh [hJoyHeld], a
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wXCoord]
cp 20 ; is the player standing on the right side of the bridge?
@@ -153,7 +153,7 @@ CeruleanCityRivalDefeatedScript:
cp $ff
jp z, CeruleanCityClearScripts
call CeruleanCityFaceRivalScript
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_CERULEAN_RIVAL
ld a, TEXT_CERULEANCITY_RIVAL
diff --git a/scripts/CeruleanGym.asm b/scripts/CeruleanGym.asm
index cb4d3975..a899fcc0 100644
--- a/scripts/CeruleanGym.asm
+++ b/scripts/CeruleanGym.asm
@@ -40,7 +40,7 @@ CeruleanGymMistyPostBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, CeruleanGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
CeruleanGymReceiveTM11:
diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm
index 3188a5c0..8db95e56 100644
--- a/scripts/ChampionsRoom.asm
+++ b/scripts/ChampionsRoom.asm
@@ -29,7 +29,7 @@ ChampionsRoomDefaultScript:
ret
ChampionsRoomPlayerEntersScript:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, RivalEntrance_RLEMovement
@@ -42,9 +42,9 @@ ChampionsRoomPlayerEntersScript:
ret
RivalEntrance_RLEMovement:
- db D_UP, 1
- db D_RIGHT, 1
- db D_UP, 3
+ db PAD_UP, 1
+ db PAD_RIGHT, 1
+ db PAD_UP, 3
db -1 ; end
ChampionsRoomRivalReadyToBattleScript:
@@ -86,7 +86,7 @@ ChampionsRoomRivalDefeatedScript:
jp z, ResetRivalScript
call UpdateSprites
SetEvent EVENT_BEAT_CHAMPION_RIVAL
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_CHAMPIONSROOM_RIVAL
ldh [hTextID], a
@@ -195,7 +195,7 @@ ChampionsRoomOakExitsScript:
ret
ChampionsRoomPlayerFollowsOakScript:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, WalkToHallOfFame_RLEMovement
@@ -208,8 +208,8 @@ ChampionsRoomPlayerFollowsOakScript:
ret
WalkToHallOfFame_RLEMovement:
- db D_UP, 4
- db D_LEFT, 1
+ db PAD_UP, 4
+ db PAD_LEFT, 1
db -1 ; end
ChampionsRoomCleanupScript:
@@ -223,10 +223,10 @@ ChampionsRoomCleanupScript:
ret
ChampionsRoom_DisplayTextID_AllowABSelectStart:
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ret
diff --git a/scripts/CinnabarGym.asm b/scripts/CinnabarGym.asm
index a81e1df1..fd3ceda1 100644
--- a/scripts/CinnabarGym.asm
+++ b/scripts/CinnabarGym.asm
@@ -200,7 +200,7 @@ CinnabarGymBlainePostBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, CinnabarGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
; fallthrough
CinnabarGymReceiveTM38:
diff --git a/scripts/CinnabarIsland.asm b/scripts/CinnabarIsland.asm
index f2a36afb..ce1b683c 100644
--- a/scripts/CinnabarIsland.asm
+++ b/scripts/CinnabarIsland.asm
@@ -32,7 +32,7 @@ CinnabarIslandDefaultScript:
ldh [hJoyHeld], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
xor a
diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm
index bffa4554..04b35e82 100644
--- a/scripts/FightingDojo.asm
+++ b/scripts/FightingDojo.asm
@@ -68,7 +68,7 @@ FightingDojoKarateMasterPostBattleScript:
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
.already_facing
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
ld a, TEXT_FIGHTINGDOJO_KARATE_MASTER_I_WILL_GIVE_YOU_A_POKEMON
diff --git a/scripts/FuchsiaGym.asm b/scripts/FuchsiaGym.asm
index c983c896..79b3e4ef 100644
--- a/scripts/FuchsiaGym.asm
+++ b/scripts/FuchsiaGym.asm
@@ -42,7 +42,7 @@ FuchsiaGymKogaPostBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, FuchsiaGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
; fallthrough
FuchsiaGymReceiveTM06:
diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm
index e242381f..5aaa998c 100644
--- a/scripts/GameCorner.asm
+++ b/scripts/GameCorner.asm
@@ -55,7 +55,7 @@ GameCornerRocketBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, GameCornerReenterMapAfterPlayerLoss
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_GAMECORNER_ROCKET_AFTER_BATTLE
ldh [hTextID], a
diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm
index c6ecf4ec..eb26afaf 100644
--- a/scripts/HallOfFame.asm
+++ b/scripts/HallOfFame.asm
@@ -58,7 +58,7 @@ HallOfFameResetEventsAndSaveScript:
jp Init
HallOfFameDefaultScript:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, HallOfFameEntryMovement
@@ -71,7 +71,7 @@ HallOfFameDefaultScript:
ret
HallOfFameEntryMovement:
- db D_UP, 5
+ db PAD_UP, 5
db -1 ; end
HallOfFameOakCongratulationsScript:
@@ -94,7 +94,7 @@ HallOfFameOakCongratulationsScript:
ld a, TEXT_HALLOFFAME_OAK
ldh [hTextID], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_CERULEAN_CAVE_GUY
ld [wMissableObjectIndex], a
diff --git a/scripts/LancesRoom.asm b/scripts/LancesRoom.asm
index 772b33bf..f54a0511 100644
--- a/scripts/LancesRoom.asm
+++ b/scripts/LancesRoom.asm
@@ -95,7 +95,7 @@ LancesRoomLanceEndBattleScript:
WalkToLance:
; Moves the player down the hallway to Lance's room.
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, WalkToLance_RLEList
@@ -109,10 +109,10 @@ WalkToLance:
ret
WalkToLance_RLEList:
- db D_UP, 13
- db D_LEFT, 12
- db D_DOWN, 7
- db D_LEFT, 6
+ db PAD_UP, 13
+ db PAD_LEFT, 12
+ db PAD_DOWN, 7
+ db PAD_LEFT, 6
db -1 ; end
LancesRoomPlayerIsMovingScript:
diff --git a/scripts/LoreleisRoom.asm b/scripts/LoreleisRoom.asm
index 455561b8..ada3b583 100644
--- a/scripts/LoreleisRoom.asm
+++ b/scripts/LoreleisRoom.asm
@@ -46,7 +46,7 @@ LoreleisRoomNoopScript:
LoreleiScriptWalkIntoRoom:
; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd
- ld a, D_UP
+ ld a, PAD_UP
ld [hli], a
ld [hli], a
ld [hli], a
@@ -79,7 +79,7 @@ LoreleisRoomDefaultScript:
ld a, TEXT_LORELEISROOM_DONT_RUN_AWAY
ldh [hTextID], a
call DisplayTextID ; "Don't run away!"
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm
index 89873526..4b82ea12 100644
--- a/scripts/MtMoonB2F.asm
+++ b/scripts/MtMoonB2F.asm
@@ -200,7 +200,7 @@ MtMoonB2FSuperNerdTakesOtherFossilScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -235,7 +235,7 @@ MtMoonB2FScript_49e15:
call PlayMusic
xor a
ldh [hJoyHeld], a
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_MT_MOON_B2F_JESSIE
call MtMoonB2FScript_ShowObject
@@ -250,10 +250,10 @@ MtMoonB2FScript_49e15:
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_MTMOONB2F_SCRIPT6
call MtMoonB2FSetScript
@@ -270,7 +270,7 @@ MovementData_f9e66:
db $FF
MtMoonB2FScript6:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wSimulatedJoypadStatesIndex]
and a
@@ -280,14 +280,14 @@ MtMoonB2FScript6:
ldh [hSpriteIndex], a
ld de, MovementData_f9e65
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_MTMOONB2F_SCRIPT7
call MtMoonB2FSetScript
ret
MtMoonB2FScript7:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
@@ -302,14 +302,14 @@ MtMoonB2FScript9:
ldh [hSpriteIndex], a
ld de, MovementData_f9e66
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_MTMOONB2F_SCRIPT10
call MtMoonB2FSetScript
ret
MtMoonB2FScript10:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
@@ -320,7 +320,7 @@ MtMoonB2FScript11:
ld a, SPRITE_FACING_LEFT
ld [wSprite06StateData1FacingDirection], a
call Delay3
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_MTMOONB2F_TEXT13
ldh [hTextID], a
@@ -345,7 +345,7 @@ MtMoonB2FScript12:
ret
MtMoonB2FScript13:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
@@ -356,7 +356,7 @@ MtMoonB2FScript13:
xor a
ld [wSprite02StateData1FacingDirection], a
ld [wSprite06StateData1FacingDirection], a
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -369,14 +369,14 @@ MtMoonB2FScript13:
ld c, BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_MTMOONB2F_SCRIPT14
call MtMoonB2FSetScript
ret
MtMoonB2FScript14:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, HS_MT_MOON_B2F_JESSIE
diff --git a/scripts/Museum1F_2.asm b/scripts/Museum1F_2.asm
index 836242f4..9a848f50 100644
--- a/scripts/Museum1F_2.asm
+++ b/scripts/Museum1F_2.asm
@@ -72,7 +72,7 @@ Museum1FPrintScientist1Text::
call PrintText
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
call UpdateSprites
diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm
index 5be583d9..c7197cb9 100644
--- a/scripts/OaksLab.asm
+++ b/scripts/OaksLab.asm
@@ -107,7 +107,7 @@ OaksLabPlayerEntersLabScript:
ret
PlayerEntryMovementRLE:
- db D_UP, 8
+ db PAD_UP, 8
db -1 ; end
OaksLabFollowedOakScript:
@@ -131,7 +131,7 @@ OaksLabFollowedOakScript:
OaksLabOakChooseMonSpeechScript:
SetEvent EVENT_OAK_ASKED_TO_CHOOSE_MON
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_OAKSLAB_RIVAL_FED_UP_WITH_WAITING
ldh [hTextID], a
@@ -179,7 +179,7 @@ OaksLabPlayerDontGoAwayScript:
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld a, PLAYER_DIR_UP
@@ -232,7 +232,7 @@ OaksLabRivalTakesPokeballScript:
ld a, EEVEE
ld [wNamedObjectIndex], a
call GetMonName
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_OAKSLAB_RIVAL_RECEIVED_MON
ldh [hTextID], a
@@ -253,7 +253,7 @@ OaksLabRivalTakesPokeballScript:
ld [wPlayerMovingDirection], a
ld a, $2
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_RIGHT
+ ld a, PAD_RIGHT
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesEnd + 1], a
call StartSimulatingJoypadStates
@@ -265,7 +265,7 @@ OaksLabPlayerWalksToOakScript:
jr z, .asm_1c599
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_LEFT
+ ld a, PAD_LEFT
ld [wSimulatedJoypadStatesEnd], a
jr .asm_1c5a6
@@ -282,10 +282,10 @@ OaksLabPlayerWalksToOakScript:
ret
OaksLabRLE_PlayerWalksToOak:
- db D_UP, 2
- db D_LEFT, 3
- db D_DOWN, 1
- db D_LEFT, 1
+ db PAD_UP, 2
+ db PAD_LEFT, 3
+ db PAD_DOWN, 1
+ db PAD_LEFT, 1
db $FF
OaksLabPlayerReceivesPikachuScript:
@@ -364,7 +364,7 @@ OaksLabRivalStartBattleScript:
ret
OaksLabRivalEndBattleScript:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
; If you beat your rival here, his Eevee will evolve into
@@ -380,7 +380,7 @@ OaksLabRivalEndBattleScript:
ld a, b
ld [wRivalStarter], a
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, PLAYER_DIR_UP
ld [wPlayerMovingDirection], a
@@ -439,7 +439,7 @@ OaksLabPlayerWatchRivalExitScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
jr nz, .checkRivalPosition
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_OAKS_LAB_RIVAL
ld [wMissableObjectIndex], a
@@ -544,7 +544,7 @@ OaksLabOakGivesPokedexScript:
ret nz
call EnableAutoTextBoxDrawing
call PlayDefaultMusic
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
call OaksLabRivalFaceUpOakFaceDownScript
ld a, TEXT_OAKSLAB_RIVAL_MY_POKEMON_HAS_GROWN_STRONGER
diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm
index 5bdd774b..42e3ea3e 100644
--- a/scripts/PalletTown.asm
+++ b/scripts/PalletTown.asm
@@ -35,7 +35,7 @@ PalletTownDefaultScript:
.asm_18e40
xor a
ldh [hJoyHeld], a
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, PLAYER_DIR_UP
ld [wPlayerMovingDirection], a
@@ -52,14 +52,14 @@ PalletTownDefaultScript:
ret
PalletTownOakHeyWaitScript:
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
xor a
ld [wOakWalkedToPlayer], a
ld a, TEXT_PALLETTOWN_OAK
ldh [hTextID], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wSprite01StateData2MapY
ld a, 8
@@ -106,7 +106,7 @@ PalletTownOakGreetsPlayerScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, 1
ld [wOakWalkedToPlayer], a
@@ -118,7 +118,7 @@ PalletTownOakGreetsPlayerScript:
ldh [hTextID], a
call DisplayTextID
; oak faces the horizontally adjacent patch of grass to face pikachu
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $2
ld [wSprite01StateData1MovementStatus], a
@@ -136,7 +136,7 @@ PalletTownOakGreetsPlayerScript:
PalletTownPikachuBattleScript:
; start the pikachu battle
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
xor a
ld [wListScrollOffset], a
@@ -165,7 +165,7 @@ PalletTownAfterPikachuBattleScript:
ld a, TEXT_PALLETTOWN_OAK_COME_WITH_ME
ldh [hTextID], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
; trigger the next script
diff --git a/scripts/PewterCity.asm b/scripts/PewterCity.asm
index 6cd96acc..79c02f9a 100644
--- a/scripts/PewterCity.asm
+++ b/scripts/PewterCity.asm
@@ -34,7 +34,7 @@ ENDC
ld hl, PewterCityPlayerLeavingEastCoords
call ArePlayerCoordsInArray
ret nc
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_PEWTERCITY_YOUNGSTER
ldh [hTextID], a
diff --git a/scripts/PewterGym.asm b/scripts/PewterGym.asm
index 87b35924..4cb13fa4 100644
--- a/scripts/PewterGym.asm
+++ b/scripts/PewterGym.asm
@@ -41,7 +41,7 @@ PewterGymBrockPostBattle:
ld a, [wIsInBattle]
cp $ff
jp z, PewterGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
; fallthrough
PewterGymScriptReceiveTM34:
diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm
index 4a7abbb6..d5fbd932 100644
--- a/scripts/PokemonTower2F.asm
+++ b/scripts/PokemonTower2F.asm
@@ -65,7 +65,7 @@ PokemonTower2FDefeatedRivalScript:
ld a, [wIsInBattle]
cp $ff
jp z, PokemonTower2FResetRivalEncounter
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
ld a, TEXT_POKEMONTOWER2F_RIVAL
diff --git a/scripts/PokemonTower5F.asm b/scripts/PokemonTower5F.asm
index b35a2f0a..4c083980 100644
--- a/scripts/PokemonTower5F.asm
+++ b/scripts/PokemonTower5F.asm
@@ -26,7 +26,7 @@ PokemonTower5FDefaultScript:
ret nz
xor a
ldh [hJoyHeld], a
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld hl, wStatusFlags4
set BIT_NO_BATTLES, [hl]
diff --git a/scripts/PokemonTower6F.asm b/scripts/PokemonTower6F.asm
index 251b3759..ad71ad6d 100644
--- a/scripts/PokemonTower6F.asm
+++ b/scripts/PokemonTower6F.asm
@@ -50,13 +50,13 @@ PokemonTower6FMarowakBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, PokemonTower6FSetDefaultScript
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags3]
bit BIT_TALKED_TO_TRAINER, a
ret nz
call UpdateSprites
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wBattleResult]
and a
@@ -74,7 +74,7 @@ PokemonTower6FMarowakBattleScript:
.did_not_defeat
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_RIGHT
+ ld a, PAD_RIGHT
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpritePlayerStateData2MovementByte1], a
diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm
index 79c091b6..3e30db56 100644
--- a/scripts/PokemonTower7F.asm
+++ b/scripts/PokemonTower7F.asm
@@ -55,7 +55,7 @@ PokemonTower7FScript_60d2a:
call PlayMusic
xor a
ldh [hJoyHeld], a
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_POKEMON_TOWER_7F_JESSIE
call PokemonTower7FScript_ShowObject
@@ -66,7 +66,7 @@ PokemonTower7FScript_60d2a:
ld a, TEXT_POKEMONTOWER7F_TEXT4
ldh [hTextID], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_POKEMONTOWER7F_SCRIPT1
call PokemonTower7FSetScript
@@ -89,14 +89,14 @@ PokemonTower7FScript1:
ld a, POKEMONTOWER7F_JESSIE
ldh [hSpriteIndex], a
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_POKEMONTOWER7F_SCRIPT2
call PokemonTower7FSetScript
ret
PokemonTower7FScript2:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
@@ -120,14 +120,14 @@ PokemonTower7FScript4:
ld a, POKEMONTOWER7F_JAMES
ldh [hSpriteIndex], a
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_POKEMONTOWER7F_SCRIPT5
call PokemonTower7FSetScript
ret
PokemonTower7FScript5:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
@@ -143,7 +143,7 @@ PokemonTower7FScript6:
ld [wSprite02StateData1FacingDirection], a
.asm_60dff
call Delay3
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_POKEMONTOWER7F_TEXT5
ldh [hTextID], a
@@ -167,7 +167,7 @@ PokemonTower7FScript7:
ret
PokemonTower7FScript8:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
@@ -178,7 +178,7 @@ PokemonTower7FScript8:
xor a
ld [wSprite01StateData1FacingDirection], a
ld [wSprite02StateData1FacingDirection], a
- ld a, ~(A_BUTTON | B_BUTTON)
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -191,14 +191,14 @@ PokemonTower7FScript8:
ld c, BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_POKEMONTOWER7F_SCRIPT9
call PokemonTower7FSetScript
ret
PokemonTower7FScript9:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, HS_POKEMON_TOWER_7F_JESSIE
@@ -235,7 +235,7 @@ PokemonTower7FScript_HideObject:
ret
PokemonTower7FWarpToMrFujiHouseScript:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_POKEMON_TOWER_7F_MR_FUJI
ld [wMissableObjectIndex], a
diff --git a/scripts/RocketHideoutB2F.asm b/scripts/RocketHideoutB2F.asm
index 0df2f06a..080f1539 100644
--- a/scripts/RocketHideoutB2F.asm
+++ b/scripts/RocketHideoutB2F.asm
@@ -28,7 +28,7 @@ RocketHideoutB2FDefaultScript:
call StartSimulatingJoypadStates
ld a, SFX_ARROW_TILES
call PlaySound
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB2F_PLAYER_SPINNING
ld [wCurMapScript], a
@@ -83,177 +83,177 @@ RocketHideout2ArrowTilePlayerMovement:
;format: direction, count
;each list is read starting from the $FF and working backwards
RocketHideout2ArrowMovement1:
- db D_LEFT, 2
+ db PAD_LEFT, 2
db -1 ; end
RocketHideout2ArrowMovement2:
- db D_RIGHT, 4
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement3:
- db D_UP, 4
- db D_RIGHT, 4
+ db PAD_UP, 4
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement4:
- db D_UP, 4
- db D_RIGHT, 4
- db D_UP, 1
+ db PAD_UP, 4
+ db PAD_RIGHT, 4
+ db PAD_UP, 1
db -1 ; end
RocketHideout2ArrowMovement5:
- db D_LEFT, 2
- db D_UP, 3
+ db PAD_LEFT, 2
+ db PAD_UP, 3
db -1 ; end
RocketHideout2ArrowMovement6:
- db D_DOWN, 2
- db D_RIGHT, 4
+ db PAD_DOWN, 2
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement7:
- db D_UP, 2
+ db PAD_UP, 2
db -1 ; end
RocketHideout2ArrowMovement8:
- db D_UP, 4
+ db PAD_UP, 4
db -1 ; end
RocketHideout2ArrowMovement9:
- db D_LEFT, 6
+ db PAD_LEFT, 6
db -1 ; end
RocketHideout2ArrowMovement10:
- db D_UP, 1
+ db PAD_UP, 1
db -1 ; end
RocketHideout2ArrowMovement11:
- db D_LEFT, 6
- db D_UP, 4
+ db PAD_LEFT, 6
+ db PAD_UP, 4
db -1 ; end
RocketHideout2ArrowMovement12:
- db D_DOWN, 2
+ db PAD_DOWN, 2
db -1 ; end
RocketHideout2ArrowMovement13:
- db D_LEFT, 8
+ db PAD_LEFT, 8
db -1 ; end
RocketHideout2ArrowMovement14:
- db D_LEFT, 8
- db D_UP, 1
+ db PAD_LEFT, 8
+ db PAD_UP, 1
db -1 ; end
RocketHideout2ArrowMovement15:
- db D_LEFT, 8
- db D_UP, 6
+ db PAD_LEFT, 8
+ db PAD_UP, 6
db -1 ; end
RocketHideout2ArrowMovement16:
- db D_UP, 2
- db D_RIGHT, 4
+ db PAD_UP, 2
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement17:
- db D_UP, 2
- db D_RIGHT, 4
- db D_UP, 2
+ db PAD_UP, 2
+ db PAD_RIGHT, 4
+ db PAD_UP, 2
db -1 ; end
RocketHideout2ArrowMovement18:
- db D_DOWN, 2
- db D_RIGHT, 4
- db D_DOWN, 2
+ db PAD_DOWN, 2
+ db PAD_RIGHT, 4
+ db PAD_DOWN, 2
db -1 ; end
RocketHideout2ArrowMovement19:
- db D_DOWN, 2
- db D_RIGHT, 4
+ db PAD_DOWN, 2
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout2ArrowMovement20:
- db D_LEFT, 10
+ db PAD_LEFT, 10
db -1 ; end
RocketHideout2ArrowMovement21:
- db D_LEFT, 10
- db D_UP, 2
+ db PAD_LEFT, 10
+ db PAD_UP, 2
db -1 ; end
RocketHideout2ArrowMovement22:
- db D_LEFT, 10
- db D_UP, 4
+ db PAD_LEFT, 10
+ db PAD_UP, 4
db -1 ; end
RocketHideout2ArrowMovement23:
- db D_UP, 2
- db D_RIGHT, 2
+ db PAD_UP, 2
+ db PAD_RIGHT, 2
db -1 ; end
RocketHideout2ArrowMovement24:
- db D_RIGHT, 1
- db D_DOWN, 2
+ db PAD_RIGHT, 1
+ db PAD_DOWN, 2
db -1 ; end
RocketHideout2ArrowMovement25:
- db D_RIGHT, 1
+ db PAD_RIGHT, 1
db -1 ; end
RocketHideout2ArrowMovement26:
- db D_DOWN, 2
- db D_RIGHT, 2
+ db PAD_DOWN, 2
+ db PAD_RIGHT, 2
db -1 ; end
RocketHideout2ArrowMovement27:
- db D_DOWN, 2
- db D_LEFT, 2
+ db PAD_DOWN, 2
+ db PAD_LEFT, 2
db -1 ; end
RocketHideout2ArrowMovement28:
- db D_UP, 2
- db D_RIGHT, 4
- db D_UP, 2
- db D_LEFT, 3
+ db PAD_UP, 2
+ db PAD_RIGHT, 4
+ db PAD_UP, 2
+ db PAD_LEFT, 3
db -1 ; end
RocketHideout2ArrowMovement29:
- db D_DOWN, 2
- db D_LEFT, 4
+ db PAD_DOWN, 2
+ db PAD_LEFT, 4
db -1 ; end
RocketHideout2ArrowMovement30:
- db D_LEFT, 6
- db D_UP, 4
- db D_LEFT, 5
+ db PAD_LEFT, 6
+ db PAD_UP, 4
+ db PAD_LEFT, 5
db -1 ; end
RocketHideout2ArrowMovement31:
- db D_UP, 2
+ db PAD_UP, 2
db -1 ; end
RocketHideout2ArrowMovement32:
- db D_UP, 1
+ db PAD_UP, 1
db -1 ; end
RocketHideout2ArrowMovement33:
- db D_UP, 3
+ db PAD_UP, 3
db -1 ; end
RocketHideout2ArrowMovement34:
- db D_UP, 5
+ db PAD_UP, 5
db -1 ; end
RocketHideout2ArrowMovement35:
- db D_RIGHT, 1
- db D_DOWN, 2
- db D_LEFT, 4
+ db PAD_RIGHT, 1
+ db PAD_DOWN, 2
+ db PAD_LEFT, 4
db -1 ; end
RocketHideout2ArrowMovement36:
- db D_LEFT, 10
- db D_UP, 2
- db D_LEFT, 5
+ db PAD_LEFT, 10
+ db PAD_UP, 2
+ db PAD_LEFT, 5
db -1 ; end
RocketHideoutB2FPlayerSpinningScript:
diff --git a/scripts/RocketHideoutB3F.asm b/scripts/RocketHideoutB3F.asm
index 0c0e02ea..eb1073d4 100644
--- a/scripts/RocketHideoutB3F.asm
+++ b/scripts/RocketHideoutB3F.asm
@@ -28,7 +28,7 @@ RocketHideoutB3FDefaultScript:
call StartSimulatingJoypadStates
ld a, SFX_ARROW_TILES
call PlaySound
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB3F_PLAYER_SPINNING
ld [wCurMapScript], a
@@ -56,61 +56,61 @@ RocketHideout3ArrowTilePlayerMovement:
;format: direction, count
;each list is read starting from the $FF and working backwards
RocketHideout3ArrowMovement1:
- db D_RIGHT, 4
- db D_UP, 4
- db D_RIGHT, 4
+ db PAD_RIGHT, 4
+ db PAD_UP, 4
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout3ArrowMovement2:
- db D_DOWN, 4
- db D_RIGHT, 4
+ db PAD_DOWN, 4
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout3ArrowMovement3:
- db D_LEFT, 2
+ db PAD_LEFT, 2
db -1 ; end
RocketHideout3ArrowMovement4:
- db D_RIGHT, 4
- db D_UP, 2
- db D_RIGHT, 2
+ db PAD_RIGHT, 4
+ db PAD_UP, 2
+ db PAD_RIGHT, 2
db -1 ; end
RocketHideout3ArrowMovement5:
- db D_RIGHT, 4
- db D_UP, 2
- db D_RIGHT, 2
- db D_UP, 3
+ db PAD_RIGHT, 4
+ db PAD_UP, 2
+ db PAD_RIGHT, 2
+ db PAD_UP, 3
db -1 ; end
RocketHideout3ArrowMovement6:
- db D_RIGHT, 4
+ db PAD_RIGHT, 4
db -1 ; end
RocketHideout3ArrowMovement7:
- db D_RIGHT, 2
+ db PAD_RIGHT, 2
db -1 ; end
RocketHideout3ArrowMovement8:
- db D_RIGHT, 4
- db D_UP, 2
+ db PAD_RIGHT, 4
+ db PAD_UP, 2
db -1 ; end
RocketHideout3ArrowMovement9:
- db D_RIGHT, 4
- db D_UP, 4
+ db PAD_RIGHT, 4
+ db PAD_UP, 4
db -1 ; end
RocketHideout3ArrowMovement10:
- db D_DOWN, 4
+ db PAD_DOWN, 4
db -1 ; end
RocketHideout3ArrowMovement11:
- db D_UP, 2
+ db PAD_UP, 2
db -1 ; end
RocketHideout3ArrowMovement12:
- db D_UP, 1
+ db PAD_UP, 1
db -1 ; end
RocketHideoutB3FPlayerSpinningScript:
diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm
index bfd4a835..15a98853 100644
--- a/scripts/RocketHideoutB4F.asm
+++ b/scripts/RocketHideoutB4F.asm
@@ -45,7 +45,7 @@ RocketHideoutB4FBeatGiovanniScript:
ld a, [wIsInBattle]
cp $ff
jp z, RocketHideoutB4FResetScripts
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
ld a, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN
@@ -95,7 +95,7 @@ RocketHideoutB4FScript_455a5:
.asm_455c2
xor a
ldh [hJoyHeld], a
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
call StopAllMusic
ld c, BANK(Music_MeetJessieJames)
@@ -112,7 +112,7 @@ RocketHideoutB4FScript_455a5:
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_ShowObject
@@ -139,14 +139,14 @@ RocketHideoutB4FScript4:
ld a, ROCKETHIDEOUTB4F_JAMES
ldh [hSpriteIndex], a
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT5
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript5:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
@@ -162,7 +162,7 @@ RocketHideoutB4FScript6:
ld [wSprite02StateData1FacingDirection], a
.asm_4564a
call Delay3
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
RocketHideoutB4FScript7:
ld de, RocketHideoutB4FJessieJamesMovementData_45606
@@ -173,19 +173,19 @@ RocketHideoutB4FScript7:
ld a, ROCKETHIDEOUTB4F_JESSIE
ldh [hSpriteIndex], a
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT8
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript8:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
RocketHideoutB4FScript9:
ld a, $2
@@ -221,7 +221,7 @@ RocketHideoutB4FScript10:
ret
RocketHideoutB4FScript11:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
@@ -232,7 +232,7 @@ RocketHideoutB4FScript11:
xor a
ld [wSprite02StateData1FacingDirection], a
ld [wSprite03StateData1FacingDirection], a
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -245,14 +245,14 @@ RocketHideoutB4FScript11:
ld c, BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT12
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript12:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, HS_ROCKET_HIDEOUT_B4F_JAMES
diff --git a/scripts/Route16Gate1F.asm b/scripts/Route16Gate1F.asm
index a8bf2f0f..8f02a616 100644
--- a/scripts/Route16Gate1F.asm
+++ b/scripts/Route16Gate1F.asm
@@ -32,7 +32,7 @@ Route16Gate1FDefaultScript:
ld [wSimulatedJoypadStatesIndex], a
ld b, $0
ld c, a
- ld a, D_UP
+ ld a, PAD_UP
ld hl, wSimulatedJoypadStatesEnd
call FillMemory
call StartSimulatingJoypadStates
@@ -55,7 +55,7 @@ Route16Gate1FPlayerMovingUpScript:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
Route16Gate1FGuardScript:
@@ -64,7 +64,7 @@ Route16Gate1FGuardScript:
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_RIGHT
+ ld a, PAD_RIGHT
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld a, SCRIPT_ROUTE16GATE1F_PLAYER_MOVING_RIGHT
diff --git a/scripts/Route18Gate1F.asm b/scripts/Route18Gate1F.asm
index a2b4dcdf..3bf2f8e6 100644
--- a/scripts/Route18Gate1F.asm
+++ b/scripts/Route18Gate1F.asm
@@ -32,7 +32,7 @@ Route18Gate1FDefaultScript:
ld [wSimulatedJoypadStatesIndex], a
ld b, 0
ld c, a
- ld a, D_UP
+ ld a, PAD_UP
ld hl, wSimulatedJoypadStatesEnd
call FillMemory
call StartSimulatingJoypadStates
@@ -55,7 +55,7 @@ Route18Gate1FPlayerMovingUpScript:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
Route18Gate1FGuardScript:
@@ -64,7 +64,7 @@ Route18Gate1FGuardScript:
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_RIGHT
+ ld a, PAD_RIGHT
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld a, SCRIPT_ROUTE18GATE1F_PLAYER_MOVING_RIGHT
diff --git a/scripts/Route22.asm b/scripts/Route22.asm
index d4149252..77ad1ad0 100644
--- a/scripts/Route22.asm
+++ b/scripts/Route22.asm
@@ -66,7 +66,7 @@ Route22DefaultScript:
ld [wSavedCoordIndex], a
xor a
ldh [hJoyHeld], a
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
@@ -166,7 +166,7 @@ Route22Rival1AfterBattleScript:
ld a, ROUTE22_RIVAL1
ldh [hSpriteIndex], a
call SetSpriteFacingDirectionAndDelay
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
ld a, TEXT_ROUTE22_RIVAL1
@@ -319,7 +319,7 @@ Route22Rival2AfterBattleScript:
.set_rival_facing_direction
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE
ld a, TEXT_ROUTE22_RIVAL2
diff --git a/scripts/Route22Gate.asm b/scripts/Route22Gate.asm
index 97b4ae6a..b8ff0ed2 100644
--- a/scripts/Route22Gate.asm
+++ b/scripts/Route22Gate.asm
@@ -39,7 +39,7 @@ Route22GateScriptCoords:
Route22GateMovePlayerDownScript:
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld [wSpritePlayerStateData1FacingDirection], a
ld [wJoyIgnore], a
diff --git a/scripts/Route23.asm b/scripts/Route23.asm
index ac4853d8..e2a66c4e 100644
--- a/scripts/Route23.asm
+++ b/scripts/Route23.asm
@@ -123,7 +123,7 @@ CascadeBadgeText:
Route23MovePlayerDownScript:
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpritePlayerStateData1FacingDirection], a
diff --git a/scripts/Route24.asm b/scripts/Route24.asm
index 29c90868..24a5281a 100644
--- a/scripts/Route24.asm
+++ b/scripts/Route24.asm
@@ -35,7 +35,7 @@ Route24DefaultScript:
call DisplayTextID
CheckAndResetEvent EVENT_NUGGET_REWARD_AVAILABLE
ret z
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -64,7 +64,7 @@ Route24AfterRocketBattleScript:
cp $ff
jp z, Route24SetDefaultScript
call UpdateSprites
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROUTE24_ROCKET
ld a, TEXT_ROUTE24_COOLTRAINER_M1
diff --git a/scripts/Route5Gate.asm b/scripts/Route5Gate.asm
index 0ccf9fae..581a3da5 100644
--- a/scripts/Route5Gate.asm
+++ b/scripts/Route5Gate.asm
@@ -10,7 +10,7 @@ Route5Gate_ScriptPointers:
dw_const Route5GatePlayerMovingScript, SCRIPT_ROUTE5GATE_PLAYER_MOVING
Route5GateMovePlayerUpScript:
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/Route6Gate.asm b/scripts/Route6Gate.asm
index 48228c7d..40f7d5ca 100644
--- a/scripts/Route6Gate.asm
+++ b/scripts/Route6Gate.asm
@@ -57,7 +57,7 @@ Route6GatePlayerMovingScript:
Route6GateMovePlayerDownScript:
ld hl, wStatusFlags5
set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/Route7Gate.asm b/scripts/Route7Gate.asm
index e599e147..01f597ff 100644
--- a/scripts/Route7Gate.asm
+++ b/scripts/Route7Gate.asm
@@ -13,7 +13,7 @@ Route7Gate_ScriptPointers:
Route7GateMovePlayerLeftScript:
ld hl, wStatusFlags5
set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
- ld a, D_LEFT
+ ld a, PAD_LEFT
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/Route8Gate.asm b/scripts/Route8Gate.asm
index eb8b3957..d1204f74 100644
--- a/scripts/Route8Gate.asm
+++ b/scripts/Route8Gate.asm
@@ -12,7 +12,7 @@ Route8Gate_ScriptPointers:
Route8GateMovePlayerRightScript:
ld hl, wStatusFlags5
set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
- ld a, D_RIGHT
+ ld a, PAD_RIGHT
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm
index 8fb6f18d..2d98c513 100644
--- a/scripts/SSAnne2F.asm
+++ b/scripts/SSAnne2F.asm
@@ -40,7 +40,7 @@ SSAnne2FDefaultScript:
call SetSpriteMovementBytesToFF
xor a
ldh [hJoyHeld], a
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ldh a, [hSavedCoordIndex]
cp $2
@@ -109,7 +109,7 @@ SSAnne2FRivalAfterBattleScript:
cp $ff
jp z, SSAnne2FResetScripts
call SSAnne2FSetFacingDirectionScript
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_SSANNE2F_RIVAL_CUT_MASTER
ldh [hTextID], a
diff --git a/scripts/SafariZoneGate.asm b/scripts/SafariZoneGate.asm
index a0f4d828..0e1a05bf 100644
--- a/scripts/SafariZoneGate.asm
+++ b/scripts/SafariZoneGate.asm
@@ -23,7 +23,7 @@ SafariZoneGateDefaultScript:
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_1
ldh [hTextID], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
xor a
ldh [hJoyHeld], a
@@ -36,10 +36,10 @@ SafariZoneGateDefaultScript:
ld [wSafariZoneGateCurScript], a
ret
.player_not_next_to_worker
- ld a, D_RIGHT
+ ld a, PAD_RIGHT
ld c, 1
call SafariZoneEntranceAutoWalk
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_RIGHT
ld [wSafariZoneGateCurScript], a
@@ -61,7 +61,7 @@ SafariZoneGateWouldYouLikeToJoinScript:
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_WOULD_YOU_LIKE_TO_JOIN
ldh [hTextID], a
call DisplayTextID
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ret
@@ -81,7 +81,7 @@ SafariZoneGateLeavingSafariScript:
jr z, .leaving_early
ResetEventReuseHL EVENT_IN_SAFARI_ZONE
call UpdateSprites
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_GOOD_HAUL_COME_AGAIN
ldh [hTextID], a
@@ -90,7 +90,7 @@ SafariZoneGateLeavingSafariScript:
ld [wNumSafariBalls], a
ld [wSafariSteps], a
ld [wSafariSteps], a ; ?????
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld c, 3
call SafariZoneEntranceAutoWalk
ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_DOWN
@@ -164,7 +164,7 @@ SafariZoneGateSafariZoneWorker1LeavingEarlyText:
call PrintText
xor a
ld [wSpritePlayerStateData1FacingDirection], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld c, 3
call SafariZoneEntranceAutoWalk
ResetEvents EVENT_SAFARI_GAME_OVER, EVENT_IN_SAFARI_ZONE
@@ -176,7 +176,7 @@ SafariZoneGateSafariZoneWorker1LeavingEarlyText:
call PrintText
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
- ld a, D_UP
+ ld a, PAD_UP
ld c, 1
call SafariZoneEntranceAutoWalk
ld a, SCRIPT_SAFARIZONEGATE_LEAVING_SAFARI
diff --git a/scripts/SafariZoneGate_2.asm b/scripts/SafariZoneGate_2.asm
index d760ed83..819c2cc2 100644
--- a/scripts/SafariZoneGate_2.asm
+++ b/scripts/SafariZoneGate_2.asm
@@ -60,7 +60,7 @@ SafariZoneGatePrintSafariZoneWorker1WouldYouLikeToJoinText::
ld [wSafariSteps], a
ld a, l
ld [wSafariSteps + 1], a
- ld a, D_UP
+ ld a, PAD_UP
ld c, 3
call SafariZoneEntranceAutoWalk2
SetEvent EVENT_IN_SAFARI_ZONE
@@ -73,7 +73,7 @@ SafariZoneGatePrintSafariZoneWorker1WouldYouLikeToJoinText::
ld hl, .PleaseComeAgainText
call PrintText
.CantPayWalkDown
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld c, 1
call SafariZoneEntranceAutoWalk2
ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_DOWN
diff --git a/scripts/SaffronGym.asm b/scripts/SaffronGym.asm
index 4bfb7b2c..46ebf2c6 100644
--- a/scripts/SaffronGym.asm
+++ b/scripts/SaffronGym.asm
@@ -40,7 +40,7 @@ SaffronGymSabrinaPostBattle:
ld a, [wIsInBattle]
cp $ff
jp z, SaffronGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SaffronGymSabrinaReceiveTM46Script:
diff --git a/scripts/SeafoamIslandsB3F.asm b/scripts/SeafoamIslandsB3F.asm
index 23dfd050..671d7719 100644
--- a/scripts/SeafoamIslandsB3F.asm
+++ b/scripts/SeafoamIslandsB3F.asm
@@ -79,9 +79,9 @@ SeafoamIslandsB3FDefaultScript:
ret
RLEList_ForcedSurfingStrongCurrentNearSteps:
- db D_DOWN, 6
- db D_RIGHT, 5
- db D_DOWN, 3
+ db PAD_DOWN, 6
+ db PAD_RIGHT, 5
+ db PAD_DOWN, 3
db -1 ; end
SeafoamIslandsB3FObjectMoving1Script:
@@ -122,16 +122,16 @@ SeafoamIslandsB3FMoveObjectScript:
ret
.RLEList_StrongCurrentNearRightBoulder:
- db D_DOWN, 6
- db D_RIGHT, 2
- db D_DOWN, 4
- db D_LEFT, 1
+ db PAD_DOWN, 6
+ db PAD_RIGHT, 2
+ db PAD_DOWN, 4
+ db PAD_LEFT, 1
db -1 ; end
.RLEList_StrongCurrentNearLeftBoulder:
- db D_DOWN, 6
- db D_RIGHT, 2
- db D_DOWN, 4
+ db PAD_DOWN, 6
+ db PAD_RIGHT, 2
+ db PAD_DOWN, 4
db -1 ; end
SeafoamIslandsB3FObjectMoving2Script:
diff --git a/scripts/SeafoamIslandsB4F.asm b/scripts/SeafoamIslandsB4F.asm
index 5fe805f0..91ba9669 100644
--- a/scripts/SeafoamIslandsB4F.asm
+++ b/scripts/SeafoamIslandsB4F.asm
@@ -46,7 +46,7 @@ SeafoamIslandsB4FDefaultScript:
ld a, 1
.forcePlayerUpFromSurfExit
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld hl, wStatusFlags7
@@ -104,15 +104,15 @@ SeafoamIslandsB4FMoveObjectScript:
db -1 ; end
.RLEList_StrongCurrentNearRightBoulder:
- db D_UP, 3
- db D_RIGHT, 2
- db D_UP, 1
+ db PAD_UP, 3
+ db PAD_RIGHT, 2
+ db PAD_UP, 1
db -1 ; end
.RLEList_StrongCurrentNearLeftBoulder:
- db D_UP, 3
- db D_RIGHT, 3
- db D_UP, 1
+ db PAD_UP, 3
+ db PAD_RIGHT, 3
+ db PAD_UP, 1
db -1 ; end
SeafoamIslandsB4FObjectMoving2Script:
diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm
index 87887432..5b72e3f8 100644
--- a/scripts/SilphCo11F.asm
+++ b/scripts/SilphCo11F.asm
@@ -119,7 +119,7 @@ SilphCo11FScript_621c5:
ld [wSavedCoordIndex], a
xor a
ldh [hJoyHeld], a
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_SILPHCO11F_GIOVANNI
ldh [hTextID], a
@@ -167,7 +167,7 @@ SilphCo11FGiovanniAfterBattleScript:
ld b, SPRITE_FACING_DOWN
.continue
call SilphCo11FScript_621ff
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_SILPHCO11F_GIOVANNI_YOU_RUINED_OUR_PLANS
ldh [hTextID], a
@@ -240,7 +240,7 @@ SilphCo11FScript_6229c:
call PlayMusic
xor a
ldh [hJoyHeld], a
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -249,7 +249,7 @@ SilphCo11FScript_6229c:
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_782
ld a, SCRIPT_SILPHCO11F_SCRIPT5
@@ -316,14 +316,14 @@ SilphCo11FScript5:
ld a, SILPHCO11F_JAMES
ldh [hSpriteIndex], a
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_SILPHCO11F_SCRIPT6
call SilphCo11FSetCurScript
ret
SilphCo11FScript6:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
@@ -339,7 +339,7 @@ SilphCo11FScript7:
ld [hl], SPRITE_FACING_UP
.asm_6235e
call Delay3
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
SilphCo11FScript8:
ld de, SilphCo11FMovementData_622fb
@@ -354,19 +354,19 @@ SilphCo11FScript8:
ld a, SILPHCO11F_JESSIE
ldh [hSpriteIndex], a
call MoveSprite
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_SILPHCO11F_SCRIPT9
call SilphCo11FSetCurScript
ret
SilphCo11FScript9:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
SilphCo11FScript10:
ld a, $2
@@ -401,7 +401,7 @@ SilphCo11FScript11:
ret
SilphCo11FScript12:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
@@ -412,7 +412,7 @@ SilphCo11FScript12:
xor a
ld [wSprite04StateData1FacingDirection], a
ld [wSprite06StateData1FacingDirection], a
- ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -425,14 +425,14 @@ SilphCo11FScript12:
ld c, BANK(Music_MeetJessieJames)
ld a, MUSIC_MEET_JESSIE_JAMES
call PlayMusic
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_SILPHCO11F_SCRIPT13
call SilphCo11FSetCurScript
ret
SilphCo11FScript13:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, HS_SILPH_CO_11F_JAMES
diff --git a/scripts/SilphCo7F.asm b/scripts/SilphCo7F.asm
index f1532448..dd67a6a2 100644
--- a/scripts/SilphCo7F.asm
+++ b/scripts/SilphCo7F.asm
@@ -127,7 +127,7 @@ SilphCo7FDefaultScript:
jp nc, CheckFightingMapTrainers
xor a
ldh [hJoyHeld], a
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
@@ -195,7 +195,7 @@ SilphCo7FRivalAfterBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, SilphCo7FSetDefaultScript
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_SILPH_CO_RIVAL
ld a, PLAYER_DIR_DOWN
diff --git a/scripts/VermilionCity.asm b/scripts/VermilionCity.asm
index 647446fa..1d9d790d 100644
--- a/scripts/VermilionCity.asm
+++ b/scripts/VermilionCity.asm
@@ -74,7 +74,7 @@ VermilionCityDefaultScript:
and a
ret nz
.ship_departed
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -99,9 +99,9 @@ VermilionCityPlayerAllowedToPassScript:
ret
VermilionCityPlayerExitShipScript:
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
- ld a, D_UP
+ ld a, PAD_UP
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesEnd + 1], a
ld a, 2
diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm
index 1de518e3..6e8f6822 100644
--- a/scripts/VermilionDock.asm
+++ b/scripts/VermilionDock.asm
@@ -14,7 +14,7 @@ VermilionDock_Script:
ld hl, wStatusFlags5
set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld hl, wSimulatedJoypadStatesEnd
- ld a, D_UP
+ ld a, PAD_UP
ld [hli], a
ld [hli], a
ld [hl], a
diff --git a/scripts/VermilionGym.asm b/scripts/VermilionGym.asm
index 8d3a33b6..19b2e202 100644
--- a/scripts/VermilionGym.asm
+++ b/scripts/VermilionGym.asm
@@ -59,7 +59,7 @@ VermilionGymLTSurgeAfterBattleScript:
ld a, [wIsInBattle]
cp $ff ; did we lose?
jp z, VermilionGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
VermilionGymLTSurgeReceiveTM24Script:
diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm
index 9ffe0950..07646f1a 100644
--- a/scripts/ViridianCity.asm
+++ b/scripts/ViridianCity.asm
@@ -51,7 +51,7 @@ ViridianCityCheckGymOpenScript:
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpritePlayerStateData1FacingDirection], a
@@ -158,7 +158,7 @@ ViridianCityMovePlayerDownScript:
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpritePlayerStateData1FacingDirection], a
@@ -184,7 +184,7 @@ ViridianCityCheckWaitingOldMan:
ld a, TEXT_VIRIDIANCITY_OLD_MAN2
ldh [hTextID], a
call DisplayTextID
- ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ret
@@ -192,7 +192,7 @@ ViridianCityOldManInitialCatchTrainingScript:
call ViridianCityOldManStartCatchTrainingScript.SetupSprite
call ViridianCityOldManStartCatchTrainingScript.SetupBattle
SetEvent EVENT_INITIAL_CATCH_TRAINING
- ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_VIRIDIANCITY_OLD_MAN_END_INITIAL_CATCH_TRAINING
ld [wViridianCityCurScript], a
@@ -203,7 +203,7 @@ ViridianCityOldManEndInitialCatchTrainingScript:
call UpdateSprites
call Delay3
SetEvent EVENT_COMPLETED_CATCH_TRAINING
- ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
+ ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TEXT_VIRIDIANCITY_OLD_MAN2
ldh [hTextID], a
diff --git a/scripts/ViridianCity_2.asm b/scripts/ViridianCity_2.asm
index e81055b2..cd48e67b 100644
--- a/scripts/ViridianCity_2.asm
+++ b/scripts/ViridianCity_2.asm
@@ -75,7 +75,7 @@ ViridianCityPrintOldManSleepyText::
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, D_DOWN
+ ld a, PAD_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
ld [wViridianCityCurScript], a
diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm
index 55d849d2..6f195037 100644
--- a/scripts/ViridianGym.asm
+++ b/scripts/ViridianGym.asm
@@ -45,7 +45,7 @@ ViridianGymDefaultScript:
set BIT_SPINNING, [hl]
ld a, SFX_ARROW_TILES
call PlaySound
- ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_VIRIDIANGYM_PLAYER_SPINNING
ld [wCurMapScript], a
@@ -67,51 +67,51 @@ ViridianGymArrowTilePlayerMovement:
db -1 ; end
ViridianGymArrowMovement1:
- db D_UP, 9
+ db PAD_UP, 9
db -1 ; end
ViridianGymArrowMovement2:
- db D_LEFT, 8
+ db PAD_LEFT, 8
db -1 ; end
ViridianGymArrowMovement3:
- db D_DOWN, 9
+ db PAD_DOWN, 9
db -1 ; end
ViridianGymArrowMovement4:
- db D_RIGHT, 6
+ db PAD_RIGHT, 6
db -1 ; end
ViridianGymArrowMovement5:
- db D_DOWN, 2
+ db PAD_DOWN, 2
db -1 ; end
ViridianGymArrowMovement6:
- db D_DOWN, 7
+ db PAD_DOWN, 7
db -1 ; end
ViridianGymArrowMovement7:
- db D_RIGHT, 8
+ db PAD_RIGHT, 8
db -1 ; end
ViridianGymArrowMovement8:
- db D_RIGHT, 9
+ db PAD_RIGHT, 9
db -1 ; end
ViridianGymArrowMovement9:
- db D_UP, 8
+ db PAD_UP, 8
db -1 ; end
ViridianGymArrowMovement10:
- db D_UP, 6
+ db PAD_UP, 6
db -1 ; end
ViridianGymArrowMovement11:
- db D_LEFT, 6
+ db PAD_LEFT, 6
db -1 ; end
ViridianGymArrowMovement12:
- db D_LEFT, 12
+ db PAD_LEFT, 12
db -1 ; end
ViridianGymPlayerSpinningScript:
@@ -132,7 +132,7 @@ ViridianGymGiovanniPostBattle:
ld a, [wIsInBattle]
cp $ff
jp z, ViridianGymResetScripts
- ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
+ ld a, PAD_CTRL_PAD
ld [wJoyIgnore], a
; fallthrough
ViridianGymReceiveTM27:
diff --git a/scripts/ViridianMart.asm b/scripts/ViridianMart.asm
index d3b3eceb..f118b475 100644
--- a/scripts/ViridianMart.asm
+++ b/scripts/ViridianMart.asm
@@ -42,8 +42,8 @@ ViridianMartDefaultScript:
ret
.PlayerMovement:
- db D_LEFT, 1
- db D_UP, 2
+ db PAD_LEFT, 1
+ db PAD_UP, 2
db -1 ; end
ViridianMartOaksParcelScript: