mirror of
https://github.com/pret/pokeyellow.git
synced 2026-03-21 17:34:31 -05:00
Merge branch 'master' of https://github.com/pret/pokered
This commit is contained in:
commit
ca019eac8f
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
|
|
@ -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
1
.rgbds-version
Normal file
|
|
@ -0,0 +1 @@
|
|||
0.9.3
|
||||
20
INSTALL.md
20
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/
|
||||
```
|
||||
|
|
|
|||
8
Makefile
8
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 $< $@
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
1065
constants/hardware.inc
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ VermilionGymTrashSuccessText2::
|
|||
text_end
|
||||
|
||||
; unused
|
||||
VermilionGymTrashSuccesPlaySfx:
|
||||
VermilionGymTrashSuccessPlaySfx:
|
||||
text_asm
|
||||
call WaitForSoundToFinish
|
||||
ld a, SFX_SWITCH
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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, " "
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ PikaPicAnimTimerAndJoypad:
|
|||
ret nz
|
||||
call JoypadLowSensitivity
|
||||
ldh a, [hJoyPressed]
|
||||
and A_BUTTON | B_BUTTON
|
||||
and PAD_A | PAD_B
|
||||
ret
|
||||
|
||||
CheckPikaPicAnimTimer:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -432,7 +432,7 @@ PrinterDebug:
|
|||
|
||||
Printer_CheckPressingB:
|
||||
ldh a, [hJoyHeld]
|
||||
and B_BUTTON
|
||||
and PAD_B
|
||||
jr nz, .quit
|
||||
and a
|
||||
ret
|
||||
|
|
|
|||
|
|
@ -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 |
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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::
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue
Block a user