This commit is contained in:
dannye 2025-07-02 21:15:13 -05:00
commit ca019eac8f
186 changed files with 2391 additions and 1477 deletions

View File

@ -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

1
.rgbds-version Normal file
View File

@ -0,0 +1 @@
0.9.3

View File

@ -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/
```

View File

@ -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 $< $@

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

1065
constants/hardware.inc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -107,7 +107,7 @@ VermilionGymTrashSuccessText2::
text_end
; unused
VermilionGymTrashSuccesPlaySfx:
VermilionGymTrashSuccessPlaySfx:
text_asm
call WaitForSoundToFinish
ld a, SFX_SWITCH

View File

@ -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

View File

@ -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

View File

@ -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?

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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, " "

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -222,7 +222,7 @@ PikaPicAnimTimerAndJoypad:
ret nz
call JoypadLowSensitivity
ldh a, [hJoyPressed]
and A_BUTTON | B_BUTTON
and PAD_A | PAD_B
ret
CheckPikaPicAnimTimer:

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -432,7 +432,7 @@ PrinterDebug:
Printer_CheckPressingB:
ldh a, [hJoyHeld]
and B_BUTTON
and PAD_B
jr nz, .quit
and a
ret

View File

@ -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]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 113 B

View File

@ -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"

View File

@ -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::

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More