diff --git a/audio/engine.asm b/audio/engine.asm index 73ab5377..01d3228e 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -14,27 +14,27 @@ _InitSound:: push bc push af call MusicOff - ld hl, rNR50 ; channel control registers + ld hl, rAUDVOL ; channel control registers xor a - ld [hli], a ; rNR50 ; volume/vin - ld [hli], a ; rNR51 ; sfx channels + ld [hli], a ; rAUDVOL ; volume/vin + ld [hli], a ; rAUDTERM ; sfx channels ld a, $80 ; all channels on - ld [hli], a ; rNR52 ; music channels + ld [hli], a ; rAUDENA ; music channels - ld hl, rNR10 ; sound channel registers + ld hl, rAUD1SWEEP ; sound channel registers ld e, NUM_MUSIC_CHANS .clearsound ; sound channel 1 2 3 4 xor a - ld [hli], a ; rNR10, rNR20, rNR30, rNR40 ; sweep = 0 + ld [hli], a ; rAUD1SWEEP, rNR20, rAUD3ENA, rNR40 ; sweep = 0 - ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0 + ld [hli], a ; rAUD1LEN, rAUD2LEN, rAUD3LEN, rAUD4LEN ; length/wavepattern = 0 ld a, $8 - ld [hli], a ; rNR12, rNR22, rNR32, rNR42 ; envelope = 0 + ld [hli], a ; rAUD1ENV, rAUD2ENV, rAUD3LEVEL, rAUD4ENV ; envelope = 0 xor a - ld [hli], a ; rNR13, rNR23, rNR33, rNR43 ; frequency lo = 0 + ld [hli], a ; rAUD1LOW, rAUD2LOW, rAUD3LOW, rAUD4POLY ; frequency lo = 0 ld a, $80 - ld [hli], a ; rNR14, rNR24, rNR34, rNR44 ; restart sound (freq hi = 0) + ld [hli], a ; rAUD1HIGH, rAUD2HIGH, rAUD3HIGH, rAUD4GO ; restart sound (freq hi = 0) dec e jr nz, .clearsound @@ -203,10 +203,10 @@ _UpdateSound:: call FadeMusic ; write volume to hardware register ld a, [wVolume] - ldh [rNR50], a + ldh [rAUDVOL], a ; write SO on/off to hardware register ld a, [wSoundOutput] - ldh [rNR51], a + ldh [rAUDTERM], a ret UpdateChannels: @@ -250,7 +250,7 @@ UpdateChannels: jr z, .noPitchSweep ; ld a, [wPitchSweep] - ldh [rNR10], a + ldh [rAUD1SWEEP], a .noPitchSweep bit NOTE_REST, [hl] ; rest jr nz, .ch1_rest @@ -264,36 +264,36 @@ UpdateChannels: .ch1_frequency_override ld a, [wCurTrackFrequency] - ldh [rNR13], a + ldh [rAUD1LOW], a ld a, [wCurTrackFrequency + 1] - ldh [rNR14], a + ldh [rAUD1HIGH], a .ch1_check_duty_override bit NOTE_DUTY_OVERRIDE, [hl] ret z ld a, [wCurTrackDuty] ld d, a - ldh a, [rNR11] + ldh a, [rAUD1LEN] and $3f ; sound length or d - ldh [rNR11], a + ldh [rAUD1LEN], a ret .ch1_vibrato_override ld a, [wCurTrackDuty] ld d, a - ldh a, [rNR11] + ldh a, [rAUD1LEN] and $3f ; sound length or d - ldh [rNR11], a + ldh [rAUD1LEN], a ld a, [wCurTrackFrequency] - ldh [rNR13], a + ldh [rAUD1LOW], a ret .ch1_rest - ldh a, [rNR52] + ldh a, [rAUDENA] and %10001110 ; ch1 off - ldh [rNR52], a - ld hl, rNR10 + ldh [rAUDENA], a + ld hl, rAUD1SWEEP call ClearChannel ret @@ -301,14 +301,14 @@ UpdateChannels: ld hl, wCurTrackDuty ld a, $3f ; sound length or [hl] - ldh [rNR11], a + ldh [rAUD1LEN], a ld a, [wCurTrackVolumeEnvelope] - ldh [rNR12], a + ldh [rAUD1ENV], a ld a, [wCurTrackFrequency] - ldh [rNR13], a + ldh [rAUD1LOW], a ld a, [wCurTrackFrequency + 1] or $80 - ldh [rNR14], a + ldh [rAUD1HIGH], a ret .Channel2: @@ -325,35 +325,35 @@ UpdateChannels: ret z ld a, [wCurTrackDuty] ld d, a - ldh a, [rNR21] + ldh a, [rAUD2LEN] and $3f ; sound length or d - ldh [rNR21], a + ldh [rAUD2LEN], a ret .ch2_frequency_override ; unreferenced ld a, [wCurTrackFrequency] - ldh [rNR23], a + ldh [rAUD2LOW], a ld a, [wCurTrackFrequency + 1] - ldh [rNR24], a + ldh [rAUD2HIGH], a ret .ch2_vibrato_override ld a, [wCurTrackDuty] ld d, a - ldh a, [rNR21] + ldh a, [rAUD2LEN] and $3f ; sound length or d - ldh [rNR21], a + ldh [rAUD2LEN], a ld a, [wCurTrackFrequency] - ldh [rNR23], a + ldh [rAUD2LOW], a ret .ch2_rest - ldh a, [rNR52] + ldh a, [rAUDENA] and %10001101 ; ch2 off - ldh [rNR52], a - ld hl, rNR21 - 1 ; there is no rNR20 + ldh [rAUDENA], a + ld hl, rAUD2LEN - 1 ; there is no rNR20 call ClearChannel ret @@ -361,14 +361,14 @@ UpdateChannels: ld hl, wCurTrackDuty ld a, $3f ; sound length or [hl] - ldh [rNR21], a + ldh [rAUD2LEN], a ld a, [wCurTrackVolumeEnvelope] - ldh [rNR22], a + ldh [rAUD2ENV], a ld a, [wCurTrackFrequency] - ldh [rNR23], a + ldh [rAUD2LOW], a ld a, [wCurTrackFrequency + 1] or $80 ; initial (restart) - ldh [rNR24], a + ldh [rAUD2HIGH], a ret .Channel3: @@ -385,37 +385,37 @@ UpdateChannels: .ch3_frequency_override ; unreferenced ld a, [wCurTrackFrequency] - ldh [rNR33], a + ldh [rAUD3LOW], a ld a, [wCurTrackFrequency + 1] - ldh [rNR34], a + ldh [rAUD3HIGH], a ret .ch3_vibrato_override ld a, [wCurTrackFrequency] - ldh [rNR33], a + ldh [rAUD3LOW], a ret .ch3_rest - ldh a, [rNR52] + ldh a, [rAUDENA] and %10001011 ; ch3 off - ldh [rNR52], a - ld hl, rNR30 + ldh [rAUDENA], a + ld hl, rAUD3ENA call ClearChannel ret .ch3_noise_sampling ld a, $3f ; sound length - ldh [rNR31], a + ldh [rAUD3LEN], a xor a - ldh [rNR30], a + ldh [rAUD3ENA], a call .load_wave_pattern ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, [wCurTrackFrequency] - ldh [rNR33], a + ldh [rAUD3LOW], a ld a, [wCurTrackFrequency + 1] or $80 - ldh [rNR34], a + ldh [rAUD3HIGH], a ret .load_wave_pattern @@ -432,44 +432,44 @@ rept 4 endr ld de, WaveSamples add hl, de - ; load wavepattern into rWave_0-rWave_f + ; load wavepattern into rAUD3WAVE_0-rAUD3WAVE_F ld a, [hli] - ldh [rWave_0], a + ldh [rAUD3WAVE_0], a ld a, [hli] - ldh [rWave_1], a + ldh [rAUD3WAVE_1], a ld a, [hli] - ldh [rWave_2], a + ldh [rAUD3WAVE_2], a ld a, [hli] - ldh [rWave_3], a + ldh [rAUD3WAVE_3], a ld a, [hli] - ldh [rWave_4], a + ldh [rAUD3WAVE_4], a ld a, [hli] - ldh [rWave_5], a + ldh [rAUD3WAVE_5], a ld a, [hli] - ldh [rWave_6], a + ldh [rAUD3WAVE_6], a ld a, [hli] - ldh [rWave_7], a + ldh [rAUD3WAVE_7], a ld a, [hli] - ldh [rWave_8], a + ldh [rAUD3WAVE_8], a ld a, [hli] - ldh [rWave_9], a + ldh [rAUD3WAVE_9], a ld a, [hli] - ldh [rWave_a], a + ldh [rAUD3WAVE_A], a ld a, [hli] - ldh [rWave_b], a + ldh [rAUD3WAVE_B], a ld a, [hli] - ldh [rWave_c], a + ldh [rAUD3WAVE_C], a ld a, [hli] - ldh [rWave_d], a + ldh [rAUD3WAVE_D], a ld a, [hli] - ldh [rWave_e], a + ldh [rAUD3WAVE_E], a ld a, [hli] - ldh [rWave_f], a + ldh [rAUD3WAVE_F], a pop hl ld a, [wCurTrackVolumeEnvelope] and $f0 sla a - ldh [rNR32], a + ldh [rAUD3LEVEL], a ret .Channel4: @@ -484,26 +484,26 @@ endr .ch4_frequency_override ; unreferenced ld a, [wCurTrackFrequency] - ldh [rNR43], a + ldh [rAUD4POLY], a ret .ch4_rest - ldh a, [rNR52] + ldh a, [rAUDENA] and %10000111 ; ch4 off - ldh [rNR52], a - ld hl, rNR41 - 1 ; there is no rNR40 + ldh [rAUDENA], a + ld hl, rAUD4LEN - 1 ; there is no rNR40 call ClearChannel ret .ch4_noise_sampling ld a, $3f ; sound length - ldh [rNR41], a + ldh [rAUD4LEN], a ld a, [wCurTrackVolumeEnvelope] - ldh [rNR42], a + ldh [rAUD4ENV], a ld a, [wCurTrackFrequency] - ldh [rNR43], a + ldh [rAUD4POLY], a ld a, $80 - ldh [rNR44], a + ldh [rAUD4GO], a ret _CheckSFX: @@ -557,15 +557,15 @@ PlayDanger: .applychannel xor a - ldh [rNR10], a + ldh [rAUD1SWEEP], a ld a, [hli] - ldh [rNR11], a + ldh [rAUD1LEN], a ld a, [hli] - ldh [rNR12], a + ldh [rAUD1ENV], a ld a, [hli] - ldh [rNR13], a + ldh [rAUD1LOW], a ld a, [hli] - ldh [rNR14], a + ldh [rAUD1HIGH], a .increment ld a, d @@ -1227,7 +1227,7 @@ ParseMusic: jr nz, .ok ; sweep = 0 xor a - ldh [rNR10], a + ldh [rAUD1SWEEP], a .ok ; stop playing ; turn channel off @@ -2476,56 +2476,56 @@ _PlaySFX:: jr z, .ch6 res SOUND_CHANNEL_ON, [hl] ; turn it off xor a - ldh [rNR11], a ; length/wavepattern = 0 + ldh [rAUD1LEN], a ; length/wavepattern = 0 ld a, $8 - ldh [rNR12], a ; envelope = 0 + ldh [rAUD1ENV], a ; envelope = 0 xor a - ldh [rNR13], a ; frequency lo = 0 + ldh [rAUD1LOW], a ; frequency lo = 0 ld a, $80 - ldh [rNR14], a ; restart sound (freq hi = 0) + ldh [rAUD1HIGH], a ; restart sound (freq hi = 0) xor a ld [wPitchSweep], a ; pitch sweep off - ldh [rNR10], a ; pitch sweep off + ldh [rAUD1SWEEP], a ; pitch sweep off .ch6 ld hl, wChannel6Flags1 bit SOUND_CHANNEL_ON, [hl] jr z, .ch7 res SOUND_CHANNEL_ON, [hl] ; turn it off xor a - ldh [rNR21], a ; length/wavepattern = 0 + ldh [rAUD2LEN], a ; length/wavepattern = 0 ld a, $8 - ldh [rNR22], a ; envelope = 0 + ldh [rAUD2ENV], a ; envelope = 0 xor a - ldh [rNR23], a ; frequency lo = 0 + ldh [rAUD2LOW], a ; frequency lo = 0 ld a, $80 - ldh [rNR24], a ; restart sound (freq hi = 0) + ldh [rAUD2HIGH], a ; restart sound (freq hi = 0) .ch7 ld hl, wChannel7Flags1 bit SOUND_CHANNEL_ON, [hl] jr z, .ch8 res SOUND_CHANNEL_ON, [hl] ; turn it off xor a - ldh [rNR30], a ; sound mode #3 off - ldh [rNR31], a ; length/wavepattern = 0 + ldh [rAUD3ENA], a ; sound mode #3 off + ldh [rAUD3LEN], a ; length/wavepattern = 0 ld a, $8 - ldh [rNR32], a ; envelope = 0 + ldh [rAUD3LEVEL], a ; envelope = 0 xor a - ldh [rNR33], a ; frequency lo = 0 + ldh [rAUD3LOW], a ; frequency lo = 0 ld a, $80 - ldh [rNR34], a ; restart sound (freq hi = 0) + ldh [rAUD3HIGH], a ; restart sound (freq hi = 0) .ch8 ld hl, wChannel8Flags1 bit SOUND_CHANNEL_ON, [hl] jr z, .chscleared res SOUND_CHANNEL_ON, [hl] ; turn it off xor a - ldh [rNR41], a ; length/wavepattern = 0 + ldh [rAUD4LEN], a ; length/wavepattern = 0 ld a, $8 - ldh [rNR42], a ; envelope = 0 + ldh [rAUD4ENV], a ; envelope = 0 xor a - ldh [rNR43], a ; frequency lo = 0 + ldh [rAUD4POLY], a ; frequency lo = 0 ld a, $80 - ldh [rNR44], a ; restart sound (freq hi = 0) + ldh [rAUD4GO], a ; restart sound (freq hi = 0) xor a ld [wNoiseSampleAddress], a ld [wNoiseSampleAddress + 1], a @@ -2798,13 +2798,13 @@ ChannelPointers: ClearChannels:: ; runs ClearChannel for all 4 channels - ld hl, rNR50 + ld hl, rAUDVOL xor a ld [hli], a ld [hli], a ld a, $80 ld [hli], a - ld hl, rNR10 + ld hl, rAUD1SWEEP ld e, NUM_MUSIC_CHANS .loop call ClearChannel @@ -2813,20 +2813,20 @@ ClearChannels:: ret ClearChannel: -; input: hl = beginning hw sound register (rNR10, rNR20, rNR30, rNR40) +; input: hl = beginning hw sound register (rAUD1SWEEP, rNR20, rAUD3ENA, rNR40) ; output: 00 00 80 00 80 ; sound channel 1 2 3 4 xor a - ld [hli], a ; rNR10, rNR20, rNR30, rNR40 ; sweep = 0 + ld [hli], a ; rAUD1SWEEP, rNR20, rAUD3ENA, rNR40 ; sweep = 0 - ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0 + ld [hli], a ; rAUD1LEN, rAUD2LEN, rAUD3LEN, rAUD4LEN ; length/wavepattern = 0 ld a, $8 - ld [hli], a ; rNR12, rNR22, rNR32, rNR42 ; envelope = 0 + ld [hli], a ; rAUD1ENV, rAUD2ENV, rAUD3LEVEL, rAUD4ENV ; envelope = 0 xor a - ld [hli], a ; rNR13, rNR23, rNR33, rNR43 ; frequency lo = 0 + ld [hli], a ; rAUD1LOW, rAUD2LOW, rAUD3LOW, rAUD4POLY ; frequency lo = 0 ld a, $80 - ld [hli], a ; rNR14, rNR24, rNR34, rNR44 ; restart sound (freq hi = 0) + ld [hli], a ; rAUD1HIGH, rAUD2HIGH, rAUD3HIGH, rAUD4GO ; restart sound (freq hi = 0) ret PlayTrainerEncounterMusic:: diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm index 20f25bc7..7e77edde 100644 --- a/constants/gfx_constants.asm +++ b/constants/gfx_constants.asm @@ -1,21 +1,7 @@ -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 NUM_PAL_COLORS EQU 4 -DEF PAL_COLOR_SIZE EQU 2 -DEF PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE +DEF TILE_1BPP_SIZE EQU TILE_SIZE / 2 ; bytes DEF PALRGB_WHITE EQU palred 31 + palgreen 31 + palblue 31 ; $7fff -DEF SCREEN_WIDTH EQU 20 ; tiles -DEF SCREEN_HEIGHT EQU 18 ; tiles -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 METATILE_WIDTH EQU 4 ; tiles DEF SCREEN_META_WIDTH EQU 6 ; metatiles DEF SCREEN_META_HEIGHT EQU 5 ; metatiles @@ -33,15 +19,6 @@ DEF HP_GREEN EQU 0 DEF HP_YELLOW EQU 1 DEF HP_RED EQU 2 -; sprite_oam_struct members (see macros/ram.asm) -rsreset -DEF SPRITEOAMSTRUCT_YCOORD rb ; 0 -DEF SPRITEOAMSTRUCT_XCOORD rb ; 1 -DEF SPRITEOAMSTRUCT_TILE_ID rb ; 2 -DEF SPRITEOAMSTRUCT_ATTRIBUTES rb ; 3 -DEF SPRITEOAMSTRUCT_LENGTH EQU _RS -DEF NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wShadowOAM - DEF SPRITE_GFX_LIST_CAPACITY EQU 12 ; see wUsedSprites DEF OAM_YCOORD_HIDDEN EQU 160 ; hides an OAM offscreen diff --git a/constants/hardware.inc b/constants/hardware.inc new file mode 100644 index 00000000..60123261 --- /dev/null +++ b/constants/hardware.inc @@ -0,0 +1,929 @@ +;****************************************************************************** +; Game Boy hardware constant definitions +; https://github.com/gbdev/hardware.inc +;****************************************************************************** + +; To the extent possible under law, the authors of this work have +; waived all copyright and related or neighboring rights to the work. +; See https://creativecommons.org/publicdomain/zero/1.0/ for details. +; SPDX-License-Identifier: CC0-1.0 + +; If this file was already included, don't do it again +if !def(HARDWARE_INC) + +; Check for the minimum supported RGBDS version +if !def(__RGBDS_MAJOR__) || !def(__RGBDS_MINOR__) || !def(__RGBDS_PATCH__) + fail "This version of 'hardware.inc' requires RGBDS version 0.5.0 or later" +endc +if __RGBDS_MAJOR__ == 0 && __RGBDS_MINOR__ < 5 + fail "This version of 'hardware.inc' requires RGBDS version 0.5.0 or later." +endc + +; Define the include guard and the current hardware.inc version +; (do this after the RGBDS version check since the `def` syntax depends on it) +def HARDWARE_INC equ 1 +def HARDWARE_INC_VERSION equs "5.0.0" + +; Usage: rev_Check_hardware_inc +; Examples: +; rev_Check_hardware_inc 1.2.3 +; rev_Check_hardware_inc 1.2 (equivalent to 1.2.0) +; rev_Check_hardware_inc 1 (equivalent to 1.0.0) +MACRO rev_Check_hardware_inc + if _NARG == 1 ; Actual invocation by the user + def hw_inc_cur_ver\@ equs strrpl("{HARDWARE_INC_VERSION}", ".", ",") + def hw_inc_min_ver\@ equs strrpl("\1", ".", ",") + rev_Check_hardware_inc {hw_inc_cur_ver\@}, {hw_inc_min_ver\@}, 0, 0 + purge hw_inc_cur_ver\@, hw_inc_min_ver\@ + else ; Recursive invocation + if \1 != \4 || (\2 < \5 || (\2 == \5 && \3 < \6)) + fail "Version \1.\2.\3 of 'hardware.inc' is incompatible with requested version \4.\5.\6" + endc + endc +ENDM + + +;****************************************************************************** +; Memory-mapped registers ($FFxx range) +;****************************************************************************** + +; -- JOYP / P1 ($FF00) -------------------------------------------------------- +; Joypad face buttons +def rJOYP equ $FF00 + +def B_JOYP_GET_BUTTONS equ 5 ; 0 = reading buttons [r/w] +def B_JOYP_GET_CTRL_PAD equ 4 ; 0 = reading Control Pad [r/w] + def JOYP_GET equ %00_11_0000 ; select which inputs to read from the lower nybble + def JOYP_GET_BUTTONS equ %00_01_0000 ; reading A/B/Select/Start buttons + def JOYP_GET_CTRL_PAD equ %00_10_0000 ; reading Control Pad directions + def JOYP_GET_NONE equ %00_11_0000 ; reading nothing + +def B_JOYP_START equ 3 ; 0 = Start is pressed (if reading buttons) [ro] +def B_JOYP_SELECT equ 2 ; 0 = Select is pressed (if reading buttons) [ro] +def B_JOYP_B equ 1 ; 0 = B is pressed (if reading buttons) [ro] +def B_JOYP_A equ 0 ; 0 = A is pressed (if reading buttons) [ro] +def B_JOYP_DOWN equ 3 ; 0 = Down is pressed (if reading Control Pad) [ro] +def B_JOYP_UP equ 2 ; 0 = Up is pressed (if reading Control Pad) [ro] +def B_JOYP_LEFT equ 1 ; 0 = Left is pressed (if reading Control Pad) [ro] +def B_JOYP_RIGHT equ 0 ; 0 = Right is pressed (if reading Control Pad) [ro] + def JOYP_INPUTS equ %0000_1111 + def JOYP_START equ 1 << B_JOYP_START + def JOYP_SELECT equ 1 << B_JOYP_SELECT + def JOYP_B equ 1 << B_JOYP_B + def JOYP_A equ 1 << B_JOYP_A + def JOYP_DOWN equ 1 << B_JOYP_DOWN + def JOYP_UP equ 1 << B_JOYP_UP + def JOYP_LEFT equ 1 << B_JOYP_LEFT + def JOYP_RIGHT equ 1 << B_JOYP_RIGHT + +; Combined input byte, with Control Pad in high nybble (conventional order) +def B_PAD_DOWN equ 7 +def B_PAD_UP equ 6 +def B_PAD_LEFT equ 5 +def B_PAD_RIGHT equ 4 +def B_PAD_START equ 3 +def B_PAD_SELECT equ 2 +def B_PAD_B equ 1 +def B_PAD_A equ 0 + def PAD_DOWN equ 1 << B_PAD_DOWN + def PAD_UP equ 1 << B_PAD_UP + def PAD_LEFT equ 1 << B_PAD_LEFT + def PAD_RIGHT equ 1 << B_PAD_RIGHT + def PAD_START equ 1 << B_PAD_START + def PAD_SELECT equ 1 << B_PAD_SELECT + def PAD_B equ 1 << B_PAD_B + def PAD_A equ 1 << B_PAD_A + +; Combined input byte, with Control Pad in low nybble (swapped order) +def B_PAD_SWAP_START equ 7 +def B_PAD_SWAP_SELECT equ 6 +def B_PAD_SWAP_B equ 5 +def B_PAD_SWAP_A equ 4 +def B_PAD_SWAP_DOWN equ 3 +def B_PAD_SWAP_UP equ 2 +def B_PAD_SWAP_LEFT equ 1 +def B_PAD_SWAP_RIGHT equ 0 + def PAD_SWAP_START equ 1 << B_PAD_SWAP_START + def PAD_SWAP_SELECT equ 1 << B_PAD_SWAP_SELECT + def PAD_SWAP_B equ 1 << B_PAD_SWAP_B + def PAD_SWAP_A equ 1 << B_PAD_SWAP_A + def PAD_SWAP_DOWN equ 1 << B_PAD_SWAP_DOWN + def PAD_SWAP_UP equ 1 << B_PAD_SWAP_UP + def PAD_SWAP_LEFT equ 1 << B_PAD_SWAP_LEFT + def PAD_SWAP_RIGHT equ 1 << B_PAD_SWAP_RIGHT + +; -- SB ($FF01) --------------------------------------------------------------- +; Serial transfer data [r/w] +def rSB equ $FF01 + +; -- SC ($FF02) --------------------------------------------------------------- +; Serial transfer control +def rSC equ $FF02 + +def B_SC_START equ 7 ; reading 1 = transfer in progress, writing 1 = start transfer [r/w] +def B_SC_SPEED equ 1 ; (CGB only) 1 = use faster internal clock [r/w] +def B_SC_SOURCE equ 0 ; 0 = use external clock ("slave"), 1 = use internal clock ("master") [r/w] + def SC_START equ 1 << B_SC_START + def SC_SPEED equ 1 << B_SC_SPEED + def SC_SLOW equ 0 << B_SC_SPEED + def SC_FAST equ 1 << B_SC_SPEED + def SC_SOURCE equ 1 << B_SC_SOURCE + def SC_EXTERNAL equ 0 << B_SC_SOURCE + def SC_INTERNAL equ 1 << B_SC_SOURCE + +; -- $FF03 is unused ---------------------------------------------------------- + +; -- DIV ($FF04) -------------------------------------------------------------- +; Divider register [r/w] +def rDIV equ $FF04 + +; -- TIMA ($FF05) ------------------------------------------------------------- +; Timer counter [r/w] +def rTIMA equ $FF05 + +; -- TMA ($FF06) -------------------------------------------------------------- +; Timer modulo [r/w] +def rTMA equ $FF06 + +; -- TAC ($FF07) -------------------------------------------------------------- +; Timer control +def rTAC equ $FF07 + +def B_TAC_START equ 2 ; enable incrementing TIMA [r/w] + def TAC_STOP equ 0 << B_TAC_START + def TAC_START equ 1 << B_TAC_START + +def TAC_CLOCK equ %000000_11 ; the frequency at which TIMA increments [r/w] + def TAC_4KHZ equ %000000_00 ; every 256 M-cycles = ~4 KHz on DMG + def TAC_262KHZ equ %000000_01 ; every 4 M-cycles = ~262 KHz on DMG + def TAC_65KHZ equ %000000_10 ; every 16 M-cycles = ~65 KHz on DMG + def TAC_16KHZ equ %000000_11 ; every 64 M-cycles = ~16 KHz on DMG + +; -- $FF08-$FF0E are unused --------------------------------------------------- + +; -- IF ($FF0F) --------------------------------------------------------------- +; Pending interrupts +def rIF equ $FF0F + +def B_IF_JOYPAD equ 4 ; 1 = joypad interrupt is pending [r/w] +def B_IF_SERIAL equ 3 ; 1 = serial interrupt is pending [r/w] +def B_IF_TIMER equ 2 ; 1 = timer interrupt is pending [r/w] +def B_IF_STAT equ 1 ; 1 = STAT interrupt is pending [r/w] +def B_IF_VBLANK equ 0 ; 1 = VBlank interrupt is pending [r/w] + def IF_JOYPAD equ 1 << B_IF_JOYPAD + def IF_SERIAL equ 1 << B_IF_SERIAL + def IF_TIMER equ 1 << B_IF_TIMER + def IF_STAT equ 1 << B_IF_STAT + def IF_VBLANK equ 1 << B_IF_VBLANK + +; -- AUD1SWEEP / NR10 ($FF10) ------------------------------------------------- +; Audio channel 1 sweep +def rAUD1SWEEP equ $FF10 + +def AUD1SWEEP_TIME equ %0_111_0000 ; how long between sweep iterations + ; (in 128 Hz ticks, ~7.8 ms apart) [r/w] + +def B_AUD1SWEEP_DIR equ 3 ; sweep direction [r/w] + def AUD1SWEEP_DIR equ 1 << B_AUD1SWEEP_DIR + def AUD1SWEEP_UP equ 0 << B_AUD1SWEEP_DIR + def AUD1SWEEP_DOWN equ 1 << B_AUD1SWEEP_DIR + +def AUD1SWEEP_SHIFT equ %00000_111 ; how much the period increases/decreases per iteration [r/w] + +; -- AUD1LEN / NR11 ($FF11) --------------------------------------------------- +; Audio channel 1 length timer and duty cycle +def rAUD1LEN equ $FF11 + +def AUD1LEN_DUTY equ %11_000000 ; ratio of time spent high vs. time spent low [r/w] + def AUD1LEN_DUTY_12_5 equ %00_000000 ; 12.5% + def AUD1LEN_DUTY_25 equ %01_000000 ; 25% + def AUD1LEN_DUTY_50 equ %10_000000 ; 50% + def AUD1LEN_DUTY_75 equ %11_000000 ; 75% + +def AUD1LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo] + +; -- AUD1ENV / NR12 ($FF12) --------------------------------------------------- +; Audio channel 1 volume and envelope +def rAUD1ENV equ $FF12 + +def AUD1ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w] + +def B_AUD1ENV_DIR equ 3 ; direction of volume envelope [r/w] + def AUD1ENV_DIR equ 1 << B_AUD1ENV_DIR + def AUD1ENV_DOWN equ 0 << B_AUD1ENV_DIR + def AUD1ENV_UP equ 1 << B_AUD1ENV_DIR + +def AUD1ENV_PACE equ %00000_111 ; how long between envelope iterations + ; (in 64 Hz ticks, ~15.6 ms apart) [r/w] + +; -- AUD1LOW / NR13 ($FF13) --------------------------------------------------- +; Audio channel 1 period (low 8 bits) [r/w] +def rAUD1LOW equ $FF13 + +; -- AUD1HIGH / NR14 ($FF14) -------------------------------------------------- +; Audio channel 1 period (high 3 bits) and control +def rAUD1HIGH equ $FF14 + +def B_AUD1HIGH_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD1HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD1HIGH_RESTART equ 1 << B_AUD1HIGH_RESTART + def AUD1HIGH_LENGTH_OFF equ 0 << B_AUD1HIGH_LEN_ENABLE + def AUD1HIGH_LENGTH_ON equ 1 << B_AUD1HIGH_LEN_ENABLE + +def AUD1HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w] + +; -- $FF15 is unused ---------------------------------------------------------- + +; -- AUD2LEN / NR21 ($FF16) --------------------------------------------------- +; Audio channel 2 length timer and duty cycle +def rAUD2LEN equ $FF16 + +def AUD2LEN_DUTY equ %11_000000 ; ratio of time spent high vs. time spent low [r/w] + def AUD2LEN_DUTY_12_5 equ %00_000000 ; 12.5% + def AUD2LEN_DUTY_25 equ %01_000000 ; 25% + def AUD2LEN_DUTY_50 equ %10_000000 ; 50% + def AUD2LEN_DUTY_75 equ %11_000000 ; 75% + +def AUD2LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo] + +; -- AUD2ENV / NR22 ($FF17) --------------------------------------------------- +; Audio channel 2 volume and envelope +def rAUD2ENV equ $FF17 + +def AUD2ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w] + +def B_AUD2ENV_DIR equ 3 ; direction of volume envelope [r/w] + def AUD2ENV_DIR equ 1 << B_AUD2ENV_DIR + def AUD2ENV_DOWN equ 0 << B_AUD2ENV_DIR + def AUD2ENV_UP equ 1 << B_AUD2ENV_DIR + +def AUD2ENV_PACE equ %00000_111 ; how long between envelope iterations + ; (in 64 Hz ticks, ~15.6 ms apart) [r/w] + +; -- AUD2LOW / NR23 ($FF18) --------------------------------------------------- +; Audio channel 2 period (low 8 bits) [r/w] +def rAUD2LOW equ $FF18 + +; -- AUD2HIGH / NR24 ($FF19) -------------------------------------------------- +; Audio channel 2 period (high 3 bits) and control +def rAUD2HIGH equ $FF19 + +def B_AUD2HIGH_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD2HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD2HIGH_RESTART equ 1 << B_AUD2HIGH_RESTART + def AUD2HIGH_LENGTH_OFF equ 0 << B_AUD2HIGH_LEN_ENABLE + def AUD2HIGH_LENGTH_ON equ 1 << B_AUD2HIGH_LEN_ENABLE + +def AUD2HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w] + +; -- AUD3ENA / NR30 ($FF1A) --------------------------------------------------- +; Audio channel 3 enable +def rAUD3ENA equ $FF1A + +def B_AUD3ENA_ENABLE equ 7 ; 1 = channel is active [r/w] + def AUD3ENA_OFF equ 0 << B_AUD3ENA_ENABLE + def AUD3ENA_ON equ 1 << B_AUD3ENA_ENABLE + +; -- AUD3LEN / NR31 ($FF1B) --------------------------------------------------- +; Audio channel 3 length timer [wo] +def rAUD3LEN equ $FF1B + +; -- AUD3LEVEL / NR32 ($FF1C) ------------------------------------------------- +; Audio channel 3 volume +def rAUD3LEVEL equ $FF1C + +def AUD3LEVEL_VOLUME equ %0_11_00000 ; volume level [r/w] + def AUD3LEVEL_MUTE equ %0_00_00000 ; 0% (muted) + def AUD3LEVEL_100 equ %0_01_00000 ; 100% + def AUD3LEVEL_50 equ %0_10_00000 ; 50% + def AUD3LEVEL_25 equ %0_11_00000 ; 25% + +; -- AUD3LOW / NR33 ($FF1D) --------------------------------------------------- +; Audio channel 3 period (low 8 bits) [r/w] +def rAUD3LOW equ $FF1D + +; -- AUD3HIGH / NR34 ($FF1E) -------------------------------------------------- +; Audio channel 3 period (high 3 bits) and control +def rAUD3HIGH equ $FF1E + +def B_AUD3HIGH_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD3HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD3HIGH_RESTART equ 1 << B_AUD3HIGH_RESTART + def AUD3HIGH_LENGTH_OFF equ 0 << B_AUD3HIGH_LEN_ENABLE + def AUD3HIGH_LENGTH_ON equ 1 << B_AUD3HIGH_LEN_ENABLE + +def AUD3HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w] + +; -- $FF1F is unused ---------------------------------------------------------- + +; -- AUD4LEN / NR41 ($FF20) --------------------------------------------------- +; Audio channel 4 length timer +def rAUD4LEN equ $FF20 + +def AUD4LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo] + +; -- AUD4ENV / NR42 ($FF21) --------------------------------------------------- +; Audio channel 4 volume and envelope +def rAUD4ENV equ $FF21 + +def AUD4ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w] + +def B_AUD4ENV_DIR equ 3 ; direction of volume envelope [r/w] + def AUD4ENV_DIR equ 1 << B_AUD4ENV_DIR + def AUD4ENV_DOWN equ 0 << B_AUD4ENV_DIR + def AUD4ENV_UP equ 1 << B_AUD4ENV_DIR + +def AUD4ENV_PACE equ %00000_111 ; how long between envelope iterations + ; (in 64 Hz ticks, ~15.6 ms apart) [r/w] + +; -- AUD4POLY / NR43 ($FF22) -------------------------------------------------- +; Audio channel 4 period and randomness +def rAUD4POLY equ $FF22 + +def AUD4POLY_SHIFT equ %1111_0000 ; coarse control of the channel's period [r/w] + +def B_AUD4POLY_WIDTH equ 3 ; controls the noise generator (LFSR)'s step width [r/w] + def AUD4POLY_15STEP equ 0 << B_AUD4POLY_WIDTH + def AUD4POLY_7STEP equ 1 << B_AUD4POLY_WIDTH + +def AUD4POLY_DIV equ %00000_111 ; fine control of the channel's period [r/w] + +; -- AUD4GO / NR44 ($FF23) ---------------------------------------------------- +; Audio channel 4 control +def rAUD4GO equ $FF23 + +def B_AUD4GO_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD4GO_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD4GO_RESTART equ 1 << B_AUD4GO_RESTART + def AUD4GO_LENGTH_OFF equ 0 << B_AUD4GO_LEN_ENABLE + def AUD4GO_LENGTH_ON equ 1 << B_AUD4GO_LEN_ENABLE + +; -- AUDVOL / NR50 ($FF24) ---------------------------------------------------- +; Audio master volume and VIN mixer +def rAUDVOL equ $FF24 + +def B_AUDVOL_VIN_LEFT equ 7 ; 1 = output VIN to left ear (SO2, speaker 2) [r/w] + def AUDVOL_VIN_LEFT equ 1 << B_AUDVOL_VIN_LEFT + +def AUDVOL_LEFT equ %0_111_0000 ; 0 = barely audible, 7 = full volume [r/w] + +def B_AUDVOL_VIN_RIGHT equ 3 ; 1 = output VIN to right ear (SO1, speaker 1) [r/w] + def AUDVOL_VIN_RIGHT equ 1 << B_AUDVOL_VIN_RIGHT + +def AUDVOL_RIGHT equ %00000_111 ; 0 = barely audible, 7 = full volume [r/w] + +; -- AUDTERM / NR51 ($FF25) --------------------------------------------------- +; Audio channel mixer +def rAUDTERM equ $FF25 + +def B_AUDTERM_4_LEFT equ 7 ; 1 = output channel 4 to left ear [r/w] +def B_AUDTERM_3_LEFT equ 6 ; 1 = output channel 3 to left ear [r/w] +def B_AUDTERM_2_LEFT equ 5 ; 1 = output channel 2 to left ear [r/w] +def B_AUDTERM_1_LEFT equ 4 ; 1 = output channel 1 to left ear [r/w] +def B_AUDTERM_4_RIGHT equ 3 ; 1 = output channel 4 to right ear [r/w] +def B_AUDTERM_3_RIGHT equ 2 ; 1 = output channel 3 to right ear [r/w] +def B_AUDTERM_2_RIGHT equ 1 ; 1 = output channel 2 to right ear [r/w] +def B_AUDTERM_1_RIGHT equ 0 ; 1 = output channel 1 to right ear [r/w] + def AUDTERM_4_LEFT equ 1 << B_AUDTERM_4_LEFT + def AUDTERM_3_LEFT equ 1 << B_AUDTERM_3_LEFT + def AUDTERM_2_LEFT equ 1 << B_AUDTERM_2_LEFT + def AUDTERM_1_LEFT equ 1 << B_AUDTERM_1_LEFT + def AUDTERM_4_RIGHT equ 1 << B_AUDTERM_4_RIGHT + def AUDTERM_3_RIGHT equ 1 << B_AUDTERM_3_RIGHT + def AUDTERM_2_RIGHT equ 1 << B_AUDTERM_2_RIGHT + def AUDTERM_1_RIGHT equ 1 << B_AUDTERM_1_RIGHT + +; -- AUDENA / NR52 ($FF26) ---------------------------------------------------- +; Audio master enable +def rAUDENA equ $FF26 + +def B_AUDENA_ENABLE equ 7 ; 0 = disable the APU (resets all audio registers to 0!) [r/w] +def B_AUDENA_ENABLE_CH4 equ 3 ; 1 = channel 4 is running [ro] +def B_AUDENA_ENABLE_CH3 equ 2 ; 1 = channel 3 is running [ro] +def B_AUDENA_ENABLE_CH2 equ 1 ; 1 = channel 2 is running [ro] +def B_AUDENA_ENABLE_CH1 equ 0 ; 1 = channel 1 is running [ro] + def AUDENA_OFF equ 0 << B_AUDENA_ENABLE + def AUDENA_ON equ 1 << B_AUDENA_ENABLE + def AUDENA_CH4_OFF equ 0 << B_AUDENA_ENABLE_CH4 + def AUDENA_CH4_ON equ 1 << B_AUDENA_ENABLE_CH4 + def AUDENA_CH3_OFF equ 0 << B_AUDENA_ENABLE_CH3 + def AUDENA_CH3_ON equ 1 << B_AUDENA_ENABLE_CH3 + def AUDENA_CH2_OFF equ 0 << B_AUDENA_ENABLE_CH2 + def AUDENA_CH2_ON equ 1 << B_AUDENA_ENABLE_CH2 + def AUDENA_CH1_OFF equ 0 << B_AUDENA_ENABLE_CH1 + def AUDENA_CH1_ON equ 1 << B_AUDENA_ENABLE_CH1 + +; -- $FF27-$FF2F are unused --------------------------------------------------- + +; -- AUD3WAVE ($FF30-$FF3F) --------------------------------------------------- +; Audio channel 3 wave pattern RAM [r/w] +def _AUD3WAVERAM equ $FF30 ; $FF30-$FF3F + +def rAUD3WAVE_0 equ $FF30 +def rAUD3WAVE_1 equ $FF31 +def rAUD3WAVE_2 equ $FF32 +def rAUD3WAVE_3 equ $FF33 +def rAUD3WAVE_4 equ $FF34 +def rAUD3WAVE_5 equ $FF35 +def rAUD3WAVE_6 equ $FF36 +def rAUD3WAVE_7 equ $FF37 +def rAUD3WAVE_8 equ $FF38 +def rAUD3WAVE_9 equ $FF39 +def rAUD3WAVE_A equ $FF3A +def rAUD3WAVE_B equ $FF3B +def rAUD3WAVE_C equ $FF3C +def rAUD3WAVE_D equ $FF3D +def rAUD3WAVE_E equ $FF3E +def rAUD3WAVE_F equ $FF3F + +def AUD3WAVE_SIZE equ 16 + +; -- LCDC ($FF40) ------------------------------------------------------------- +; PPU graphics control +def rLCDC equ $FF40 + +def B_LCDC_ENABLE equ 7 ; whether the PPU (and LCD) are turned on [r/w] +def B_LCDC_WIN_MAP equ 6 ; which tilemap the Window reads from [r/w] +def B_LCDC_WINDOW equ 5 ; whether the Window is enabled [r/w] +def B_LCDC_BLOCKS equ 4 ; which "tile blocks" the BG and Window use [r/w] +def B_LCDC_BG_MAP equ 3 ; which tilemap the BG reads from [r/w] +def B_LCDC_OBJ_SIZE equ 2 ; how many pixels tall each OBJ is [r/w] +def B_LCDC_OBJS equ 1 ; whether OBJs are enabled [r/w] +def B_LCDC_BG equ 0 ; (DMG only) whether the BG is enabled [r/w] +def B_LCDC_PRIO equ 0 ; (CGB only) whether OBJ priority bits are enabled [r/w] + def LCDC_ENABLE equ 1 << B_LCDC_ENABLE + def LCDC_OFF equ 0 << B_LCDC_ENABLE + def LCDC_ON equ 1 << B_LCDC_ENABLE + def LCDC_WIN_MAP equ 1 << B_LCDC_WIN_MAP + def LCDC_WIN_9800 equ 0 << B_LCDC_WIN_MAP + def LCDC_WIN_9C00 equ 1 << B_LCDC_WIN_MAP + def LCDC_WINDOW equ 1 << B_LCDC_WINDOW + def LCDC_WIN_OFF equ 0 << B_LCDC_WINDOW + def LCDC_WIN_ON equ 1 << B_LCDC_WINDOW + def LCDC_BLOCKS equ 1 << B_LCDC_BLOCKS + def LCDC_BLOCK21 equ 0 << B_LCDC_BLOCKS + def LCDC_BLOCK01 equ 1 << B_LCDC_BLOCKS + def LCDC_BG_MAP equ 1 << B_LCDC_BG_MAP + def LCDC_BG_9800 equ 0 << B_LCDC_BG_MAP + def LCDC_BG_9C00 equ 1 << B_LCDC_BG_MAP + def LCDC_OBJ_SIZE equ 1 << B_LCDC_OBJ_SIZE + def LCDC_OBJ_8 equ 0 << B_LCDC_OBJ_SIZE + def LCDC_OBJ_16 equ 1 << B_LCDC_OBJ_SIZE + def LCDC_OBJS equ 1 << B_LCDC_OBJS + def LCDC_OBJ_OFF equ 0 << B_LCDC_OBJS + def LCDC_OBJ_ON equ 1 << B_LCDC_OBJS + def LCDC_BG equ 1 << B_LCDC_BG + def LCDC_BG_OFF equ 0 << B_LCDC_BG + def LCDC_BG_ON equ 1 << B_LCDC_BG + def LCDC_PRIO equ 1 << B_LCDC_PRIO + def LCDC_PRIO_OFF equ 0 << B_LCDC_PRIO + def LCDC_PRIO_ON equ 1 << B_LCDC_PRIO + +; -- STAT ($FF41) ------------------------------------------------------------- +; Graphics status and interrupt control +def rSTAT equ $FF41 + +def B_STAT_LYC equ 6 ; 1 = LY match triggers the STAT interrupt [r/w] +def B_STAT_MODE_2 equ 5 ; 1 = OAM Scan triggers the PPU interrupt [r/w] +def B_STAT_MODE_1 equ 4 ; 1 = VBlank triggers the PPU interrupt [r/w] +def B_STAT_MODE_0 equ 3 ; 1 = HBlank triggers the PPU interrupt [r/w] +def B_STAT_LYCF equ 2 ; 1 = LY is currently equal to LYC [ro] +def B_STAT_BUSY equ 1 ; 1 = the PPU is currently accessing VRAM [ro] + def STAT_LYC equ 1 << B_STAT_LYC + def STAT_MODE_2 equ 1 << B_STAT_MODE_2 + def STAT_MODE_1 equ 1 << B_STAT_MODE_1 + def STAT_MODE_0 equ 1 << B_STAT_MODE_0 + def STAT_LYCF equ 1 << B_STAT_LYCF + def STAT_BUSY equ 1 << B_STAT_BUSY + +def STAT_MODE equ %000000_11 ; PPU's current status [ro] + def STAT_HBLANK equ %000000_00 ; waiting after a line's rendering (HBlank) + def STAT_VBLANK equ %000000_01 ; waiting between frames (VBlank) + def STAT_OAM equ %000000_10 ; checking which OBJs will be rendered on this line (OAM scan) + def STAT_LCD equ %000000_11 ; pushing pixels to the LCD + +; -- SCY ($FF42) -------------------------------------------------------------- +; Background Y scroll offset (in pixels) [r/w] +def rSCY equ $FF42 + +; -- SCX ($FF43) -------------------------------------------------------------- +; Background X scroll offset (in pixels) [r/w] +def rSCX equ $FF43 + +; -- LY ($FF44) --------------------------------------------------------------- +; Y coordinate of the line currently processed by the PPU (0-153) [ro] +def rLY equ $FF44 + +def LY_VBLANK equ 144 ; 144-153 is the VBlank period + +; -- LYC ($FF45) -------------------------------------------------------------- +; Value that LY is constantly compared to [r/w] +def rLYC equ $FF45 + +; -- DMA ($FF46) -------------------------------------------------------------- +; OAM DMA start address (high 8 bits) and start [wo] +def rDMA equ $FF46 + +; -- BGP ($FF47) -------------------------------------------------------------- +; (DMG only) Background color mapping [r/w] +def rBGP equ $FF47 + +def BGP_SGB_TRANSFER equ %11_10_01_00 ; set BGP to this value before SGB VRAM transfer + +; -- OBP0 ($FF48) ------------------------------------------------------------- +; (DMG only) OBJ color mapping #0 [r/w] +def rOBP0 equ $FF48 + +; -- OBP1 ($FF49) ------------------------------------------------------------- +; (DMG only) OBJ color mapping #1 [r/w] +def rOBP1 equ $FF49 + +; -- WY ($FF4A) --------------------------------------------------------------- +; Y coordinate of the Window's top-left pixel (0-143) [r/w] +def rWY equ $FF4A + +; -- WX ($FF4B) --------------------------------------------------------------- +; X coordinate of the Window's top-left pixel, plus 7 (7-166) [r/w] +def rWX equ $FF4B + +def WX_OFS equ 7 ; subtract this to get the actual Window Y coordinate + +; -- SYS / KEY0 ($FF4C) ------------------------------------------------------- +; (CGB boot ROM only) CPU mode select +def rSYS equ $FF4C + +; This is known as the "CPU mode register" in Fig. 11 of this patent: +; https://patents.google.com/patent/US6322447B1/en?oq=US6322447bi +; "OBJ priority mode designating register" in the same patent +; Credit to @mattcurrie for this finding! + +def SYS_MODE equ %0000_11_00 ; current system mode [r/w] + def SYS_CGB equ %0000_00_00 ; CGB mode + def SYS_DMG equ %0000_01_00 ; DMG compatibility mode + def SYS_PGB1 equ %0000_10_00 ; LCD is driven externally, CPU is stopped + def SYS_PGB2 equ %0000_11_00 ; LCD is driven externally, CPU is running + +; -- SPD / KEY1 ($FF4D) ------------------------------------------------------- +; (CGB only) Double-speed mode control +def rSPD equ $FF4D + +def B_SPD_DOUBLE equ 7 ; current clock speed [ro] +def B_SPD_PREPARE equ 0 ; 1 = next `stop` instruction will switch clock speeds [r/w] + def SPD_SINGLE equ 0 << B_SPD_DOUBLE + def SPD_DOUBLE equ 1 << B_SPD_DOUBLE + def SPD_PREPARE equ 1 << B_SPD_PREPARE + +; -- $FF4E is unused ---------------------------------------------------------- + +; -- VBK ($FF4F) -------------------------------------------------------------- +; (CGB only) VRAM bank number (0 or 1) +def rVBK equ $FF4F + +def VBK_BANK equ %0000000_1 ; mapped VRAM bank [r/w] + +; -- BANK ($FF50) ------------------------------------------------------------- +; (boot ROM only) Boot ROM mapping control +def rBANK equ $FF50 + +def B_BANK_ON equ 0 ; whether the boot ROM is mapped [wo] + def BANK_ON equ 0 << B_BANK_ON + def BANK_OFF equ 1 << B_BANK_ON + +; -- VDMA_SRC_HIGH / HDMA1 ($FF51) -------------------------------------------- +; (CGB only) VRAM DMA source address (high 8 bits) [wo] +def rVDMA_SRC_HIGH equ $FF51 + +; -- VDMA_SRC_LOW / HDMA2 ($FF52) --------------------------------------------- +; (CGB only) VRAM DMA source address (low 8 bits) [wo] +def rVDMA_SRC_LOW equ $FF52 + +; -- VDMA_DEST_HIGH / HDMA3 ($FF53) ------------------------------------------- +; (CGB only) VRAM DMA destination address (high 8 bits) [wo] +def rVDMA_DEST_HIGH equ $FF53 + +; -- VDMA_DEST_LOW / HDMA3 ($FF54) -------------------------------------------- +; (CGB only) VRAM DMA destination address (low 8 bits) [wo] +def rVDMA_DEST_LOW equ $FF54 + +; -- VDMA_LEN / HDMA5 ($FF55) ------------------------------------------------- +; (CGB only) VRAM DMA length, mode, and start +def rVDMA_LEN equ $FF55 + +def B_VDMA_LEN_MODE equ 7 ; on write: VRAM DMA mode [wo] + def VDMA_LEN_MODE equ 1 << B_VDMA_LEN_MODE + def VDMA_LEN_MODE_GENERAL equ 0 << B_VDMA_LEN_MODE ; GDMA (general-purpose) + def VDMA_LEN_MODE_HBLANK equ 1 << B_VDMA_LEN_MODE ; HDMA (HBlank) + +def B_VDMA_LEN_BUSY equ 7 ; on read: is a VRAM DMA active? + def VDMA_LEN_BUSY equ 1 << B_VDMA_LEN_BUSY + def VDMA_LEN_NO equ 0 << B_VDMA_LEN_BUSY + def VDMA_LEN_YES equ 1 << B_VDMA_LEN_BUSY + +def VDMA_LEN_SIZE equ %0_1111111 ; how many 16-byte blocks (minus 1) to transfer [r/w] + +; -- RP ($FF56) --------------------------------------------------------------- +; (CGB only) Infrared communications port +def rRP equ $FF56 + +def RP_READ equ %11_000000 ; whether the IR read is enabled [r/w] + def RP_DISABLE equ %00_000000 + def RP_ENABLE equ %11_000000 + +def B_RP_DATA_IN equ 1 ; 0 = IR light is being received [ro] +def B_RP_LED_ON equ 0 ; 1 = IR light is being sent [r/w] + def RP_DATA_IN equ 1 << B_RP_DATA_IN + def RP_LED_ON equ 1 << B_RP_LED_ON + def RP_WRITE_LOW equ 0 << B_RP_LED_ON + def RP_WRITE_HIGH equ 1 << B_RP_LED_ON + +; -- $FF57-$FF67 are unused --------------------------------------------------- + +; -- BGPI / BCPS ($FF68) ------------------------------------------------------ +; (CGB only) Background palette I/O index +def rBGPI equ $FF68 + +def B_BGPI_AUTOINC equ 7 ; whether the index field is incremented after each write to BCPD [r/w] + def BGPI_AUTOINC equ 1 << B_BGPI_AUTOINC + +def BGPI_INDEX equ %00_111111 ; the index within Palette RAM accessed via BCPD [r/w] + +; -- BGPD / BCPD ($FF69) ------------------------------------------------------ +; (CGB only) Background palette I/O access [r/w] +def rBGPD equ $FF69 + +; -- OBPI / OCPS ($FF6A) ------------------------------------------------------ +; (CGB only) OBJ palette I/O index +def rOBPI equ $FF6A + +def B_OBPI_AUTOINC equ 7 ; whether the index field is incremented after each write to OBPD [r/w] + def OBPI_AUTOINC equ 1 << B_OBPI_AUTOINC + +def OBPI_INDEX equ %00_111111 ; the index within Palette RAM accessed via OBPD [r/w] + +; -- OBPD / OCPD ($FF6B) ------------------------------------------------------ +; (CGB only) OBJ palette I/O access [r/w] +def rOBPD equ $FF6B + +; -- OPRI ($FF6C) ------------------------------------------------------------- +; (CGB boot ROM only) OBJ draw priority mode +def rOPRI equ $FF6C + +def B_OPRI_PRIORITY equ 0 ; which drawing priority is used for OBJs [r/w] + def OPRI_PRIORITY equ 1 << B_OPRI_PRIORITY + def OPRI_OAM equ 0 << B_OPRI_PRIORITY ; CGB mode default: earliest OBJ in OAM wins + def OPRI_COORD equ 1 << B_OPRI_PRIORITY ; DMG mode default: leftmost OBJ wins + +; -- $FF6D-$FF6F are unused --------------------------------------------------- + +; -- WBK / SVBK ($FF70) ------------------------------------------------------- +; (CGB only) WRAM bank number +def rWBK equ $FF70 + +def WBK_BANK equ %00000_111 ; mapped WRAM bank (0-7) [r/w] + +; -- $FF71-$FF75 are unused --------------------------------------------------- + +; -- PCM12 ($FF76) ------------------------------------------------------------ +; Audio channels 1 and 2 output +def rPCM12 equ $FF76 + +def PCM12_CH2 equ %1111_0000 ; audio channel 2 output [ro] +def PCM12_CH1 equ %0000_1111 ; audio channel 1 output [ro] + +; -- PCM34 ($FF77) ------------------------------------------------------------ +; Audio channels 3 and 4 output +def rPCM34 equ $FF77 + +def PCM34_CH4 equ %1111_0000 ; audio channel 4 output [ro] +def PCM34_CH3 equ %0000_1111 ; audio channel 3 output [ro] + +; -- $FF78-$FF7F are unused --------------------------------------------------- + +; -- IE ($FFFF) --------------------------------------------------------------- +; Interrupt enable +def rIE equ $FFFF + +def B_IE_JOYPAD equ 4 ; 1 = joypad interrupt is enabled [r/w] +def B_IE_SERIAL equ 3 ; 1 = serial interrupt is enabled [r/w] +def B_IE_TIMER equ 2 ; 1 = timer interrupt is enabled [r/w] +def B_IE_STAT equ 1 ; 1 = STAT interrupt is enabled [r/w] +def B_IE_VBLANK equ 0 ; 1 = VBlank interrupt is enabled [r/w] + def IE_JOYPAD equ 1 << B_IE_JOYPAD + def IE_SERIAL equ 1 << B_IE_SERIAL + def IE_TIMER equ 1 << B_IE_TIMER + def IE_STAT equ 1 << B_IE_STAT + def IE_VBLANK equ 1 << B_IE_VBLANK + + +;****************************************************************************** +; Cartridge registers (MBC) +;****************************************************************************** + +; Note that these "registers" are each actually accessible at an entire address range; +; however, one address for each of these ranges is considered the "canonical" one, and +; these addresses are what's provided here. + +; -- RAMG ($0000-$1FFF) ------------------------------------------------------- +; Whether SRAM can be accessed [wo] +def rRAMG equ $0000 + +; Common values +def RAMG_SRAM_DISABLE equ $00 +def RAMG_SRAM_ENABLE equ $0A ; some MBCs accept any value whose low nybble is $A + +; -- ROMB0 ($2000-$3FFF) ------------------------------------------------------ +; ROM bank number (low 8 bits when applicable) [wo] +def rROMB0 equ $2000 + +; -- ROMB1 ($3000-$3FFF) ------------------------------------------------------ +; (MBC5 only) ROM bank number high bit (bit 8) [wo] +def rROMB1 equ $3000 + +; -- RAMB ($4000-$5FFF) ------------------------------------------------------- +; SRAM bank number [wo] +def rRAMB equ $4000 + +; (MBC3-only) Special RAM bank numbers that actually map values into RTCREG +def RAMB_RTC_S equ $08 ; seconds counter (0-59) +def RAMB_RTC_M equ $09 ; minutes counter (0-59) +def RAMB_RTC_H equ $0A ; hours counter (0-23) +def RAMB_RTC_DL equ $0B ; days counter, low byte (0-255) +def RAMB_RTC_DH equ $0C ; days counter, high bit and other flags + def B_RAMB_RTC_DH_CARRY equ 7 ; 1 = days counter overflowed [wo] + def B_RAMB_RTC_DH_HALT equ 6 ; 0 = run timer, 1 = stop timer [wo] + def B_RAMB_RTC_DH_HIGH equ 0 ; days counter, high bit (bit 8) [wo] + def RAMB_RTC_DH_CARRY equ 1 << B_RAMB_RTC_DH_CARRY + def RAMB_RTC_DH_HALT equ 1 << B_RAMB_RTC_DH_HALT + def RAMB_RTC_DH_HIGH equ 1 << B_RAMB_RTC_DH_HIGH + +def B_RAMB_RUMBLE equ 3 ; (MBC5 and MBC7 only) enable the rumble motor (if any) + def RAMB_RUMBLE equ 1 << B_RAMB_RUMBLE + def RAMB_RUMBLE_OFF equ 0 << B_RAMB_RUMBLE + def RAMB_RUMBLE_ON equ 1 << B_RAMB_RUMBLE + +; -- RTCLATCH ($6000-$7FFF) --------------------------------------------------- +; (MBC3 only) RTC latch clock data [wo] +def rRTCLATCH equ $6000 + +; Write $00 then $01 to latch the current time into RTCREG +def RTCLATCH_START equ $00 +def RTCLATCH_FINISH equ $01 + +; -- RTCREG ($A000-$BFFF) ----------------------------------------------------- +; (MBC3 only) RTC register [r/w] +def rRTCREG equ $A000 + + +;****************************************************************************** +; Screen-related constants +;****************************************************************************** + +def SCREEN_WIDTH_PX equ 160 ; width of screen in pixels +def SCREEN_HEIGHT_PX equ 144 ; height of screen in pixels +def SCREEN_WIDTH equ 20 ; width of screen in bytes +def SCREEN_HEIGHT equ 18 ; height of screen in bytes +def SCREEN_AREA equ SCREEN_WIDTH * SCREEN_HEIGHT ; size of screen in bytes + +def TILEMAP_WIDTH_PX equ 256 ; width of tilemap in pixels +def TILEMAP_HEIGHT_PX equ 256 ; height of tilemap in pixels +def TILEMAP_WIDTH equ 32 ; width of tilemap in bytes +def TILEMAP_HEIGHT equ 32 ; height of tilemap in bytes +def TILEMAP_AREA equ TILEMAP_WIDTH * TILEMAP_HEIGHT ; size of tilemap in bytes + +def TILE_WIDTH equ 8 ; width of tile in pixels +def TILE_HEIGHT equ 8 ; height of tile in pixels +def TILE_SIZE equ 16 ; size of tile in bytes (2 bits/pixel) + +def COLOR_SIZE equ 2 ; size of color in bytes (little-endian BGR555) + def COLOR_GREEN_LOW equ %111_00000 ; for the low byte + def COLOR_RED equ %000_11111 ; for the low byte + def COLOR_BLUE equ %0_11111_00 ; for the high byte + def COLOR_GREEN_HIGH equ %000000_11 ; for the high byte +def PAL_COLORS equ 4 ; colors per palette +def PAL_SIZE equ COLOR_SIZE * PAL_COLORS ; size of palette in bytes + +; Tilemaps the BG or Window can read from (controlled by LCDC) +def TILEMAP0 equ $9800 ; $9800-$9BFF +def TILEMAP1 equ $9C00 ; $9C00-$9FFF + +; (CGB only) BG tile attribute fields +def B_BG_PRIO equ 7 ; whether the BG tile colors 1-3 are drawn below OBJs +def B_BG_YFLIP equ 6 ; whether the whole BG tile is flipped vertically +def B_BG_XFLIP equ 5 ; whether the whole BG tile is flipped horizontally +def B_BG_BANK1 equ 3 ; which VRAM bank the BG tile is taken from +def BG_PALETTE equ %00000_111 ; which palette the BG tile uses + def BG_PRIO equ 1 << B_BG_PRIO + def BG_YFLIP equ 1 << B_BG_YFLIP + def BG_XFLIP equ 1 << B_BG_XFLIP + def BG_BANK0 equ 0 << B_BG_BANK1 + def BG_BANK1 equ 1 << B_BG_BANK1 + + +;****************************************************************************** +; OBJ-related constants +;****************************************************************************** + +; OAM attribute field offsets +rsreset +def OAMA_Y rb ; 0 + def OAM_Y_OFS equ 16 ; subtract 16 from what's written to OAM to get the real Y position +def OAMA_X rb ; 1 + def OAM_X_OFS equ 8 ; subtract 8 from what's written to OAM to get the real X position +def OAMA_TILEID rb ; 2 +def OAMA_FLAGS rb ; 3 + def B_OAM_PRIO equ 7 ; whether the OBJ is drawn above BG colors 1-3 + def B_OAM_YFLIP equ 6 ; whether the whole OBJ is flipped vertically + def B_OAM_XFLIP equ 5 ; whether the whole OBJ is flipped horizontally + def B_OAM_PAL1 equ 4 ; (DMG only) which of the two palettes the OBJ uses + def B_OAM_BANK1 equ 3 ; (CGB only) which VRAM bank the OBJ takes its tile(s) from + def OAM_PALETTE equ %00000_111 ; (CGB only) which palette the OBJ uses + def OAM_PRIO equ 1 << B_OAM_PRIO + def OAM_YFLIP equ 1 << B_OAM_YFLIP + def OAM_XFLIP equ 1 << B_OAM_XFLIP + def OAM_PAL0 equ 0 << B_OAM_PAL1 + def OAM_PAL1 equ 1 << B_OAM_PAL1 + def OAM_BANK0 equ 0 << B_OAM_BANK1 + def OAM_BANK1 equ 1 << B_OAM_BANK1 +def OBJ_SIZE rb 0 ; size of OBJ in bytes = 4 + +def OAM_COUNT equ 40 ; how many OBJs there are room for in OAM +def OAM_SIZE equ OBJ_SIZE * OAM_COUNT + + +;****************************************************************************** +; Interrupt vector addresses +;****************************************************************************** + +def INT_HANDLER_VBLANK equ $0040 ; VBlank interrupt handler address +def INT_HANDLER_STAT equ $0048 ; STAT interrupt handler address +def INT_HANDLER_TIMER equ $0050 ; timer interrupt handler address +def INT_HANDLER_SERIAL equ $0058 ; serial interrupt handler address +def INT_HANDLER_JOYPAD equ $0060 ; joypad interrupt handler address + + +;****************************************************************************** +; Boot-up register values +;****************************************************************************** + +; Register A = CPU type +def BOOTUP_A_DMG equ $01 +def BOOTUP_A_CGB equ $11 ; CGB or AGB +def BOOTUP_A_MGB equ $FF + def BOOTUP_A_SGB equ BOOTUP_A_DMG + def BOOTUP_A_SGB2 equ BOOTUP_A_MGB + +; Register B = CPU qualifier (if A is BOOTUP_A_CGB) +def B_BOOTUP_B_AGB equ 0 + def BOOTUP_B_CGB equ 0 << B_BOOTUP_B_AGB + def BOOTUP_B_AGB equ 1 << B_BOOTUP_B_AGB + + +;****************************************************************************** +; Aliases +;****************************************************************************** + +; Prefer the standard names to these aliases, which may be official but are +; less directly meaningful or human-readable. + +def rP1 equ rJOYP + +def rNR10 equ rAUD1SWEEP +def rNR11 equ rAUD1LEN +def rNR12 equ rAUD1ENV +def rNR13 equ rAUD1LOW +def rNR14 equ rAUD1HIGH +def rNR21 equ rAUD2LEN +def rNR22 equ rAUD2ENV +def rNR23 equ rAUD2LOW +def rNR24 equ rAUD2HIGH +def rNR30 equ rAUD3ENA +def rNR31 equ rAUD3LEN +def rNR32 equ rAUD3LEVEL +def rNR33 equ rAUD3LOW +def rNR34 equ rAUD3HIGH +def rNR41 equ rAUD4LEN +def rNR42 equ rAUD4ENV +def rNR43 equ rAUD4POLY +def rNR44 equ rAUD4GO +def rNR50 equ rAUDVOL +def rNR51 equ rAUDTERM +def rNR52 equ rAUDENA + +def rKEY0 equ rSYS +def rKEY1 equ rSPD + +def rHDMA1 equ rVDMA_SRC_HIGH +def rHDMA2 equ rVDMA_SRC_LOW +def rHDMA3 equ rVDMA_DEST_HIGH +def rHDMA4 equ rVDMA_DEST_LOW +def rHDMA5 equ rVDMA_LEN + +def rBCPS equ rBGPI +def rBCPD equ rBGPD + +def rOCPS equ rOBPI +def rOCPD equ rOBPD + +def rSVBK equ rWBK + +endc ; HARDWARE_INC diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm deleted file mode 100644 index 5635cd48..00000000 --- a/constants/hardware_constants.asm +++ /dev/null @@ -1,153 +0,0 @@ -; Graciously derived from: -; https://gbdev.io/pandocs/ -; https://github.com/gbdev/hardware.inc -; http://gameboy.mongenel.com/dmg/asmmemmap.html - -; MBC3 -DEF MBC3SRamEnable EQU $0000 -DEF MBC3RomBank EQU $2000 -DEF MBC3SRamBank EQU $4000 -DEF MBC3LatchClock EQU $6000 -DEF MBC3RTC EQU $a000 - -DEF SRAM_DISABLE EQU $00 -DEF SRAM_ENABLE EQU $0a - -DEF NUM_SRAM_BANKS EQU 4 - -DEF RTC_S EQU $08 ; Seconds 0-59 (0-3Bh) -DEF RTC_M EQU $09 ; Minutes 0-59 (0-3Bh) -DEF RTC_H EQU $0a ; Hours 0-23 (0-17h) -DEF RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh) -DEF RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag -DEF RTC_DH_HI EQU 0 ; Most significant bit of Day Counter (Bit 8) -DEF RTC_DH_HALT EQU 6 ; Halt (0=Active, 1=Stop Timer) -DEF RTC_DH_OVERFLOW EQU 7 ; Day Counter Carry Bit (1=Counter Overflow) - -; interrupt flags -DEF VBLANK EQU 0 -DEF LCD_STAT EQU 1 -DEF TIMER EQU 2 -DEF SERIAL EQU 3 -DEF JOYPAD EQU 4 -DEF IE_DEFAULT EQU (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - -; OAM attribute flags -DEF OAM_TILE_BANK EQU 3 -DEF OAM_OBP_NUM EQU 4 ; non CGB Mode Only -DEF OAM_X_FLIP EQU 5 -DEF OAM_Y_FLIP EQU 6 -DEF OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) - -; BG Map attribute flags -DEF PALETTE_MASK EQU %111 -DEF VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08 -DEF OBP_NUM EQU 1 << OAM_OBP_NUM ; $10 -DEF X_FLIP EQU 1 << OAM_X_FLIP ; $20 -DEF Y_FLIP EQU 1 << OAM_Y_FLIP ; $40 -DEF PRIORITY EQU 1 << OAM_PRIORITY ; $80 - -; Hardware registers -DEF rJOYP EQU $ff00 ; Joypad (R/W) -DEF rJOYP_BUTTONS EQU 4 -DEF rJOYP_DPAD EQU 5 -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 %00 -DEF rTAC_262144_HZ EQU %01 -DEF rTAC_65536_HZ EQU %10 -DEF rTAC_16384_HZ EQU %11 -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; Inital (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 ; 0=Off, 1=On -DEF rLCDC_SPRITES_ENABLE EQU 1 ; 0=Off, 1=On -DEF rLCDC_SPRITE_SIZE EQU 2 ; 0=8x8, 1=8x16 -DEF rLCDC_BG_TILEMAP EQU 3 ; 0=9800-9BFF, 1=9C00-9FFF -DEF rLCDC_TILE_DATA EQU 4 ; 0=8800-97FF, 1=8000-8FFF -DEF rLCDC_WINDOW_ENABLE EQU 5 ; 0=Off, 1=On -DEF rLCDC_WINDOW_TILEMAP EQU 6 ; 0=9800-9BFF, 1=9C00-9FFF -DEF rLCDC_ENABLE EQU 7 ; 0=Off, 1=On -DEF LCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY) -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 LY_VBLANK EQU 144 -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 rLCDMODE EQU $ff4c -DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch -DEF KEY1_PREPARE EQU 0 ; 0=No, 1=Prepare (R/W) -DEF KEY1_DBLSPEED EQU 7 ; 0=Normal Speed, 1=Double Speed (R) -DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank -DEF rBLCK EQU $ff50 -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 rRP_LED_ON EQU 0 -DEF rRP_RECEIVING EQU 1 -DEF rRP_ENABLE_READ_MASK EQU %11000000 -DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index -DEF rBGPI_AUTO_INCREMENT EQU 7 ; increment rBGPI after write to rBGPD -DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data -DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index -DEF rOBPI_AUTO_INCREMENT EQU 7 ; increment rOBPI after write to rOBPD -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 ; Channel 1 & 2 Amplitude (R) -DEF rPCM34 EQU $ff77 ; Channel 3 & 4 Amplitude (R) -DEF rIE EQU $ffff ; Interrupt Enable (R/W) diff --git a/constants/ram_constants.asm b/constants/ram_constants.asm index c411ce66..1ac7e0da 100644 --- a/constants/ram_constants.asm +++ b/constants/ram_constants.asm @@ -350,3 +350,9 @@ DEF DAYCARE_INTRO_SEEN_F EQU 7 const VBLANK_UNUSED_6 ; 6 const VBLANK_UNUSED_7 ; 7 DEF NUM_VBLANK_HANDLERS EQU const_value + +; rLCDC:: +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_OFF | LCDC_PRIO_ON + +; rIE:: +DEF IE_DEFAULT EQU IE_JOYPAD | IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK diff --git a/data/battle_anims/framesets.asm b/data/battle_anims/framesets.asm index 4457bc72..f20f8353 100644 --- a/data/battle_anims/framesets.asm +++ b/data/battle_anims/framesets.asm @@ -241,29 +241,29 @@ BattleAnimFrameData: oamdelete .Frameset_CutDownRight: - oamframe BATTLE_ANIM_OAMSET_4B, 2, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_4C, 2, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_4D, 4, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_4B, 2, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_4C, 2, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_4D, 4, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP oamdelete .Frameset_CutUpRight: - oamframe BATTLE_ANIM_OAMSET_4B, 2, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4C, 2, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4D, 4, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_4B, 2, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4C, 2, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4D, 4, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP, B_OAM_YFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP, B_OAM_YFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP, B_OAM_YFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_4E, 2, B_OAM_XFLIP, B_OAM_YFLIP oamdelete .Frameset_CutLongDownLeft: @@ -283,19 +283,19 @@ BattleAnimFrameData: oamdelete .Frameset_CutLongDownRight: - oamframe BATTLE_ANIM_OAMSET_4B, 1, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_4C, 1, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_4D, 1, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_4F, 1, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_50, 1, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_51, 1, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_4B, 1, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_4C, 1, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_4D, 1, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_4F, 1, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_50, 1, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_51, 1, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP oamdelete .Frameset_BallPoof: @@ -309,7 +309,7 @@ BattleAnimFrameData: oamframe BATTLE_ANIM_OAMSET_0A, 7 oamframe BATTLE_ANIM_OAMSET_0B, 7 oamframe BATTLE_ANIM_OAMSET_0A, 7 - oamframe BATTLE_ANIM_OAMSET_0B, 7, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_0B, 7, B_OAM_XFLIP oamrestart .Frameset_PokeBall2: @@ -328,7 +328,7 @@ BattleAnimFrameData: oamframe BATTLE_ANIM_OAMSET_0A, 7 oamframe BATTLE_ANIM_OAMSET_0B, 7 oamframe BATTLE_ANIM_OAMSET_0A, 7 - oamframe BATTLE_ANIM_OAMSET_0B, 7, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_0B, 7, B_OAM_XFLIP oamframe BATTLE_ANIM_OAMSET_0A, 7 oamend @@ -400,9 +400,9 @@ BattleAnimFrameData: oamframe BATTLE_ANIM_OAMSET_16, 8 oamframe BATTLE_ANIM_OAMSET_17, 4 oamframe BATTLE_ANIM_OAMSET_17, 4 - oamframe BATTLE_ANIM_OAMSET_16, 8, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_15, 8, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_16, 8, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_16, 8, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_15, 8, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_16, 8, B_OAM_XFLIP oamframe BATTLE_ANIM_OAMSET_17, 4 oamrestart @@ -567,10 +567,10 @@ BattleAnimFrameData: oamdelete .Frameset_ThunderRight: - oamframe BATTLE_ANIM_OAMSET_3A, 2, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_3B, 2, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_3C, 2, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_3D, 32, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_3A, 2, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_3B, 2, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_3C, 2, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_3D, 32, B_OAM_XFLIP oamdelete .Frameset_ThunderWaveDisable: @@ -617,7 +617,7 @@ BattleAnimFrameData: oamend .Frameset_ClampFlipped: - oamframe BATTLE_ANIM_OAMSET_48, 8, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_48, 8, B_OAM_XFLIP oamend .Frameset_Bite1: @@ -663,9 +663,9 @@ BattleAnimFrameData: oamwait 0 oamframe BATTLE_ANIM_OAMSET_14, 0 oamframe BATTLE_ANIM_OAMSET_15, 0 - oamframe BATTLE_ANIM_OAMSET_14, 0, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_14, 0, B_OAM_XFLIP oamwait 0 - oamframe BATTLE_ANIM_OAMSET_16, 0, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_16, 0, B_OAM_XFLIP oamframe BATTLE_ANIM_OAMSET_15, 0 oamframe BATTLE_ANIM_OAMSET_16, 0 oamrestart @@ -676,31 +676,31 @@ BattleAnimFrameData: oamdelete .Frameset_VineWhip2: - oamframe BATTLE_ANIM_OAMSET_56, 2, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_57, 4, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_56, 2, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_57, 4, B_OAM_XFLIP, B_OAM_YFLIP oamdelete .Frameset_RazorWind1: oamframe BATTLE_ANIM_OAMSET_56, 1 oamframe BATTLE_ANIM_OAMSET_57, 1 oamframe BATTLE_ANIM_OAMSET_58, 1 - oamframe BATTLE_ANIM_OAMSET_57, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_58, 1, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_57, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_58, 1, B_OAM_XFLIP, B_OAM_YFLIP oamframe BATTLE_ANIM_OAMSET_57, 2 oamdelete .Frameset_RazorWind2: - oamframe BATTLE_ANIM_OAMSET_56, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_57, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_58, 1, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_56, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_57, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_58, 1, B_OAM_XFLIP, B_OAM_YFLIP oamframe BATTLE_ANIM_OAMSET_57, 1 oamframe BATTLE_ANIM_OAMSET_58, 1 - oamframe BATTLE_ANIM_OAMSET_57, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_57, 2, B_OAM_XFLIP, B_OAM_YFLIP oamdelete .Frameset_SonicboomJP: - oamframe BATTLE_ANIM_OAMSET_57, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_58, 1, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_57, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_58, 1, B_OAM_XFLIP, B_OAM_YFLIP oamframe BATTLE_ANIM_OAMSET_57, 1 oamframe BATTLE_ANIM_OAMSET_58, 1 oamrestart @@ -714,18 +714,18 @@ BattleAnimFrameData: .Frameset_Egg: oamframe BATTLE_ANIM_OAMSET_0A, 10 - oamframe BATTLE_ANIM_OAMSET_0B, 3, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_5D, 3, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_0B, 3, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_0A, 2, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_0B, 1, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_0B, 3, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_5D, 3, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_0B, 3, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_0A, 2, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_0B, 1, B_OAM_YFLIP oamframe BATTLE_ANIM_OAMSET_5D, 1 oamframe BATTLE_ANIM_OAMSET_0B, 1 oamrestart .Frameset_EggWobble: oamframe BATTLE_ANIM_OAMSET_0A, 3 - oamframe BATTLE_ANIM_OAMSET_0B, 7, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_0B, 7, B_OAM_XFLIP oamframe BATTLE_ANIM_OAMSET_0A, 7 oamframe BATTLE_ANIM_OAMSET_0B, 7 oamframe BATTLE_ANIM_OAMSET_0A, 3 @@ -776,7 +776,7 @@ BattleAnimFrameData: oamend .Frameset_Sound3: - oamframe BATTLE_ANIM_OAMSET_6E, 8, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_6E, 8, B_OAM_YFLIP oamend .Frameset_Wave: @@ -824,12 +824,12 @@ BattleAnimFrameData: oamframe BATTLE_ANIM_OAMSET_7B, 1 oamframe BATTLE_ANIM_OAMSET_7C, 1 oamframe BATTLE_ANIM_OAMSET_7D, 1 - oamframe BATTLE_ANIM_OAMSET_7C, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_7B, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_7A, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_79, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_78, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_77, 1, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_7C, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_7B, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_7A, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_79, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_78, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_77, 1, B_OAM_XFLIP, B_OAM_YFLIP oamdelete .Frameset_Chick1: @@ -838,8 +838,8 @@ BattleAnimFrameData: oamrestart .Frameset_Chick2: - oamframe BATTLE_ANIM_OAMSET_1B, 4, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_7E, 4, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_1B, 4, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_7E, 4, B_OAM_XFLIP oamrestart .Frameset_Amnesia1: @@ -908,7 +908,7 @@ BattleAnimFrameData: oamend .Frameset_ParalyzedFlipped: - oamframe BATTLE_ANIM_OAMSET_8E, 8, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_8E, 8, B_OAM_XFLIP oamend .Frameset_Haze: @@ -948,7 +948,7 @@ BattleAnimFrameData: .Frameset_SpinningBone: oamframe BATTLE_ANIM_OAMSET_97, 1 - oamframe BATTLE_ANIM_OAMSET_97, 1, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_97, 1, B_OAM_XFLIP oamrestart .Frameset_Star: @@ -1009,8 +1009,8 @@ BattleAnimFrameData: oamframe BATTLE_ANIM_OAMSET_A5, 4 oamframe BATTLE_ANIM_OAMSET_A6, 4 oamframe BATTLE_ANIM_OAMSET_A7, 4 - oamframe BATTLE_ANIM_OAMSET_A6, 4, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_A5, 4, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_A6, 4, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_A5, 4, B_OAM_XFLIP oamrestart .Frameset_DefenseCurl: @@ -1018,8 +1018,8 @@ BattleAnimFrameData: oamframe BATTLE_ANIM_OAMSET_A9, 4 oamframe BATTLE_ANIM_OAMSET_AA, 4 oamframe BATTLE_ANIM_OAMSET_AB, 4 - oamframe BATTLE_ANIM_OAMSET_AA, 4, OAM_X_FLIP - oamframe BATTLE_ANIM_OAMSET_A9, 4, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_AA, 4, B_OAM_XFLIP + oamframe BATTLE_ANIM_OAMSET_A9, 4, B_OAM_XFLIP oamrestart .Frameset_MetronomeHand: @@ -1048,7 +1048,7 @@ BattleAnimFrameData: .Frameset_HealBell: oamframe BATTLE_ANIM_OAMSET_B1, 7 - oamframe BATTLE_ANIM_OAMSET_B1, 7, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_B1, 7, B_OAM_XFLIP oamrestart .Frameset_BatonPass: @@ -1060,15 +1060,15 @@ BattleAnimFrameData: oamend .Frameset_LockOn2: - oamframe BATTLE_ANIM_OAMSET_B3, 8, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_B3, 8, B_OAM_XFLIP oamend .Frameset_LockOn3: - oamframe BATTLE_ANIM_OAMSET_B3, 8, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_B3, 8, B_OAM_YFLIP oamend .Frameset_LockOn4: - oamframe BATTLE_ANIM_OAMSET_B3, 8, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_B3, 8, B_OAM_XFLIP, B_OAM_YFLIP oamend .Frameset_MindReader1: @@ -1076,15 +1076,15 @@ BattleAnimFrameData: oamend .Frameset_MindReader2: - oamframe BATTLE_ANIM_OAMSET_B5, 8, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_B5, 8, B_OAM_XFLIP oamend .Frameset_MindReader3: - oamframe BATTLE_ANIM_OAMSET_B5, 8, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_B5, 8, B_OAM_YFLIP oamend .Frameset_MindReader4: - oamframe BATTLE_ANIM_OAMSET_B5, 8, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_B5, 8, B_OAM_XFLIP, B_OAM_YFLIP oamend .Frameset_Safeguard: @@ -1112,7 +1112,7 @@ BattleAnimFrameData: oamend .Frameset_ImpFlipped: - oamframe BATTLE_ANIM_OAMSET_B8, 32, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_B8, 32, B_OAM_XFLIP oamend .Frameset_Cherub: @@ -1124,7 +1124,7 @@ BattleAnimFrameData: oamend .Frameset_EncoreHand: - oamframe BATTLE_ANIM_OAMSET_BB, 32, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_BB, 32, B_OAM_XFLIP oamend .Frameset_EncoreHandFlipped: @@ -1171,26 +1171,26 @@ BattleAnimFrameData: oamdelete .Frameset_CrossChop2: - oamframe BATTLE_ANIM_OAMSET_4B, 2, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4C, 2, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4D, 32, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4D, 32, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4D, 32, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_4F, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_50, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_51, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_4B, 2, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4C, 2, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4D, 32, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4D, 32, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4D, 32, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_4F, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_50, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_51, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP, B_OAM_YFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP, B_OAM_YFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP, B_OAM_YFLIP oamwait 2 - oamframe BATTLE_ANIM_OAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_52, 2, B_OAM_XFLIP, B_OAM_YFLIP oamdelete .Frameset_ZapCannon: oamframe BATTLE_ANIM_OAMSET_C3, 1 - oamframe BATTLE_ANIM_OAMSET_C3, 1, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_C3, 1, B_OAM_XFLIP, B_OAM_YFLIP oamrestart .Frameset_CurseNail: @@ -1205,7 +1205,7 @@ BattleAnimFrameData: .Frameset_RapidSpin: oamframe BATTLE_ANIM_OAMSET_C8, 1 - oamframe BATTLE_ANIM_OAMSET_C8, 1, OAM_X_FLIP + oamframe BATTLE_ANIM_OAMSET_C8, 1, B_OAM_XFLIP oamrestart .Frameset_Swagger: @@ -1221,7 +1221,7 @@ BattleAnimFrameData: oamrestart .Frameset_UpsideDownPunch: - oamframe BATTLE_ANIM_OAMSET_03, 32, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_03, 32, B_OAM_YFLIP oamend .Frameset_Rain: @@ -1238,8 +1238,8 @@ BattleAnimFrameData: .Frameset_SpiralUnused: oamframe BATTLE_ANIM_OAMSET_CD, 4 oamframe BATTLE_ANIM_OAMSET_CE, 4 - oamframe BATTLE_ANIM_OAMSET_CD, 4, OAM_X_FLIP, OAM_Y_FLIP - oamframe BATTLE_ANIM_OAMSET_CE, 4, OAM_X_FLIP, OAM_Y_FLIP + oamframe BATTLE_ANIM_OAMSET_CD, 4, B_OAM_XFLIP, B_OAM_YFLIP + oamframe BATTLE_ANIM_OAMSET_CE, 4, B_OAM_XFLIP, B_OAM_YFLIP oamrestart .Frameset_Aeroblast: diff --git a/data/battle_anims/oam.asm b/data/battle_anims/oam.asm index bd7cba48..5ed6b355 100644 --- a/data/battle_anims/oam.asm +++ b/data/battle_anims/oam.asm @@ -241,9 +241,9 @@ BattleAnimOAMData: .OAMData_02: dbsprite -1, -1, 0, 0, $00, $0 - dbsprite 0, -1, 0, 0, $00, X_FLIP - dbsprite -1, 0, 0, 0, $00, Y_FLIP - dbsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite 0, -1, 0, 0, $00, OAM_XFLIP + dbsprite -1, 0, 0, 0, $00, OAM_YFLIP + dbsprite 0, 0, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_c3: dbsprite -2, -2, 4, 4, $00, $0 @@ -259,13 +259,13 @@ BattleAnimOAMData: .OAMData_01: dbsprite -2, -2, 4, 4, $00, $0 dbsprite -1, -2, 4, 4, $01, $0 - dbsprite 0, -2, 4, 4, $00, X_FLIP + dbsprite 0, -2, 4, 4, $00, OAM_XFLIP dbsprite -2, -1, 4, 4, $02, $0 dbsprite -1, -1, 4, 4, $03, $0 - dbsprite 0, -1, 4, 4, $02, X_FLIP | Y_FLIP - dbsprite -2, 0, 4, 4, $00, Y_FLIP - dbsprite -1, 0, 4, 4, $01, X_FLIP | Y_FLIP - dbsprite 0, 0, 4, 4, $00, X_FLIP | Y_FLIP + dbsprite 0, -1, 4, 4, $02, OAM_XFLIP | OAM_YFLIP + dbsprite -2, 0, 4, 4, $00, OAM_YFLIP + dbsprite -1, 0, 4, 4, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 0, 4, 4, $00, OAM_XFLIP | OAM_YFLIP .OAMData_cf: dbsprite -2, -2, 4, 0, $00, $0 @@ -274,12 +274,12 @@ BattleAnimOAMData: dbsprite -2, -1, 4, 0, $03, $0 dbsprite -1, -1, 4, 0, $04, $0 dbsprite 0, -1, 4, 0, $05, $0 - dbsprite -2, 0, 4, 0, $05, X_FLIP | Y_FLIP - dbsprite -1, 0, 4, 0, $04, X_FLIP | Y_FLIP - dbsprite 0, 0, 4, 0, $03, X_FLIP | Y_FLIP - dbsprite -2, 1, 4, 0, $02, X_FLIP | Y_FLIP - dbsprite -1, 1, 4, 0, $01, X_FLIP | Y_FLIP - dbsprite 0, 1, 4, 0, $00, X_FLIP | Y_FLIP + dbsprite -2, 0, 4, 0, $05, OAM_XFLIP | OAM_YFLIP + dbsprite -1, 0, 4, 0, $04, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 0, 4, 0, $03, OAM_XFLIP | OAM_YFLIP + dbsprite -2, 1, 4, 0, $02, OAM_XFLIP | OAM_YFLIP + dbsprite -1, 1, 4, 0, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 4, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_1c: dbsprite -2, -2, 0, 0, $00, $0 @@ -304,56 +304,56 @@ BattleAnimOAMData: dbsprite -1, -2, 0, 0, $01, $0 dbsprite -2, -1, 0, 0, $02, $0 dbsprite -1, -1, 0, 0, $03, $0 - dbsprite 0, -2, 0, 0, $01, X_FLIP - dbsprite 1, -2, 0, 0, $00, X_FLIP - dbsprite 0, -1, 0, 0, $03, X_FLIP - dbsprite 1, -1, 0, 0, $02, X_FLIP - dbsprite -2, 0, 0, 0, $02, Y_FLIP - dbsprite -1, 0, 0, 0, $03, Y_FLIP - dbsprite -2, 1, 0, 0, $00, Y_FLIP - dbsprite -1, 1, 0, 0, $01, Y_FLIP - dbsprite 0, 0, 0, 0, $03, X_FLIP | Y_FLIP - dbsprite 1, 0, 0, 0, $02, X_FLIP | Y_FLIP - dbsprite 0, 1, 0, 0, $01, X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite 0, -2, 0, 0, $01, OAM_XFLIP + dbsprite 1, -2, 0, 0, $00, OAM_XFLIP + dbsprite 0, -1, 0, 0, $03, OAM_XFLIP + dbsprite 1, -1, 0, 0, $02, OAM_XFLIP + dbsprite -2, 0, 0, 0, $02, OAM_YFLIP + dbsprite -1, 0, 0, 0, $03, OAM_YFLIP + dbsprite -2, 1, 0, 0, $00, OAM_YFLIP + dbsprite -1, 1, 0, 0, $01, OAM_YFLIP + dbsprite 0, 0, 0, 0, $03, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 0, 0, 0, $02, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 0, 0, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_09: dbsprite -3, -3, 4, 4, $00, $0 dbsprite -2, -3, 4, 4, $01, $0 dbsprite -3, -2, 4, 4, $02, $0 dbsprite -2, -2, 4, 4, $03, $0 - dbsprite 0, -3, 4, 4, $01, X_FLIP - dbsprite 1, -3, 4, 4, $00, X_FLIP - dbsprite 0, -2, 4, 4, $03, X_FLIP - dbsprite 1, -2, 4, 4, $02, X_FLIP - dbsprite -3, 0, 4, 4, $02, Y_FLIP - dbsprite -2, 0, 4, 4, $03, Y_FLIP - dbsprite -3, 1, 4, 4, $00, Y_FLIP - dbsprite -2, 1, 4, 4, $01, Y_FLIP - dbsprite 0, 0, 4, 4, $03, X_FLIP | Y_FLIP - dbsprite 1, 0, 4, 4, $02, X_FLIP | Y_FLIP - dbsprite 0, 1, 4, 4, $01, X_FLIP | Y_FLIP - dbsprite 1, 1, 4, 4, $00, X_FLIP | Y_FLIP + dbsprite 0, -3, 4, 4, $01, OAM_XFLIP + dbsprite 1, -3, 4, 4, $00, OAM_XFLIP + dbsprite 0, -2, 4, 4, $03, OAM_XFLIP + dbsprite 1, -2, 4, 4, $02, OAM_XFLIP + dbsprite -3, 0, 4, 4, $02, OAM_YFLIP + dbsprite -2, 0, 4, 4, $03, OAM_YFLIP + dbsprite -3, 1, 4, 4, $00, OAM_YFLIP + dbsprite -2, 1, 4, 4, $01, OAM_YFLIP + dbsprite 0, 0, 4, 4, $03, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 0, 4, 4, $02, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 4, 4, $00, OAM_XFLIP | OAM_YFLIP .OAMData_0c: dbsprite -1, -1, 0, 4, $00, $0 - dbsprite 0, -1, 0, 4, $00, X_FLIP + dbsprite 0, -1, 0, 4, $00, OAM_XFLIP .OAMData_6a: dbsprite -1, 0, 0, 0, $00, $0 - dbsprite 0, 0, 0, 0, $00, X_FLIP + dbsprite 0, 0, 0, 0, $00, OAM_XFLIP .OAMData_04: dbsprite -1, -1, 0, 0, $00, $0 - dbsprite 0, -1, 0, 0, $00, X_FLIP + dbsprite 0, -1, 0, 0, $00, OAM_XFLIP dbsprite -1, 0, 0, 0, $01, $0 - dbsprite 0, 0, 0, 0, $01, X_FLIP + dbsprite 0, 0, 0, 0, $01, OAM_XFLIP .OAMData_5d: dbsprite -1, -1, 0, 0, $00, $0 dbsprite 0, -1, 0, 0, $01, $0 - dbsprite -1, 0, 0, 0, $00, Y_FLIP - dbsprite 0, 0, 0, 0, $01, Y_FLIP + dbsprite -1, 0, 0, 0, $00, OAM_YFLIP + dbsprite 0, 0, 0, 0, $01, OAM_YFLIP .OAMData_13: dbsprite -1, -1, 0, 2, $02, $0 @@ -387,33 +387,33 @@ BattleAnimOAMData: .OAMData_2a: dbsprite -1, -3, 0, 4, $00, $0 - dbsprite 0, -3, 0, 4, $00, X_FLIP + dbsprite 0, -3, 0, 4, $00, OAM_XFLIP dbsprite -1, -2, 0, 4, $01, $0 - dbsprite 0, -2, 0, 4, $01, X_FLIP + dbsprite 0, -2, 0, 4, $01, OAM_XFLIP dbsprite -1, -1, 4, 4, $02, $0 .OAMData_2b: dbsprite -1, -4, 0, 4, $00, $0 - dbsprite 0, -4, 0, 4, $00, X_FLIP + dbsprite 0, -4, 0, 4, $00, OAM_XFLIP dbsprite -1, -3, 0, 4, $01, $0 - dbsprite 0, -3, 0, 4, $01, X_FLIP + dbsprite 0, -3, 0, 4, $01, OAM_XFLIP dbsprite -1, -2, 4, 4, $02, $0 dbsprite -1, -1, 4, 4, $02, $0 .OAMData_2c: dbsprite -1, -5, 0, 4, $00, $0 - dbsprite 0, -5, 0, 4, $00, X_FLIP + dbsprite 0, -5, 0, 4, $00, OAM_XFLIP dbsprite -1, -4, 0, 4, $01, $0 - dbsprite 0, -4, 0, 4, $01, X_FLIP + dbsprite 0, -4, 0, 4, $01, OAM_XFLIP dbsprite -1, -3, 4, 4, $02, $0 dbsprite -1, -2, 4, 4, $02, $0 dbsprite -1, -1, 4, 4, $02, $0 .OAMData_2d: dbsprite -1, -6, 0, 4, $00, $0 - dbsprite 0, -6, 0, 4, $00, X_FLIP + dbsprite 0, -6, 0, 4, $00, OAM_XFLIP dbsprite -1, -5, 0, 4, $01, $0 - dbsprite 0, -5, 0, 4, $01, X_FLIP + dbsprite 0, -5, 0, 4, $01, OAM_XFLIP dbsprite -1, -4, 4, 4, $02, $0 dbsprite -1, -3, 4, 4, $02, $0 dbsprite -1, -2, 4, 4, $02, $0 @@ -421,9 +421,9 @@ BattleAnimOAMData: .OAMData_2e: dbsprite -1, -7, 0, 4, $00, $0 - dbsprite 0, -7, 0, 4, $00, X_FLIP + dbsprite 0, -7, 0, 4, $00, OAM_XFLIP dbsprite -1, -6, 0, 4, $01, $0 - dbsprite 0, -6, 0, 4, $01, X_FLIP + dbsprite 0, -6, 0, 4, $01, OAM_XFLIP dbsprite -1, -5, 4, 4, $02, $0 dbsprite -1, -4, 4, 4, $02, $0 dbsprite -1, -3, 4, 4, $02, $0 @@ -432,15 +432,15 @@ BattleAnimOAMData: .OAMData_2f: dbsprite -1, -1, 0, 0, $00, $0 - dbsprite 0, -1, 0, 0, $00, X_FLIP + dbsprite 0, -1, 0, 0, $00, OAM_XFLIP dbsprite -1, 0, 0, 0, $01, $0 - dbsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite 0, 0, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_30: dbsprite -1, -1, 0, 0, $00, $0 dbsprite 0, -1, 0, 0, $01, $0 - dbsprite -1, 0, 0, 0, $01, X_FLIP | Y_FLIP - dbsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite -1, 0, 0, 0, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 0, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_31: dbsprite -1, -2, 0, 4, $00, $0 @@ -526,28 +526,28 @@ BattleAnimOAMData: dbsprite 1, -1, 0, 4, $0b, $0 .OAMData_3e: - dbsprite -2, 1, 0, 4, $00, Y_FLIP - dbsprite -1, 1, 0, 4, $02, Y_FLIP - dbsprite 0, 1, 0, 4, $02, X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 4, $00, X_FLIP | Y_FLIP - dbsprite -3, -1, 0, 4, $09, X_FLIP - dbsprite -2, -1, 0, 4, $08, X_FLIP + dbsprite -2, 1, 0, 4, $00, OAM_YFLIP + dbsprite -1, 1, 0, 4, $02, OAM_YFLIP + dbsprite 0, 1, 0, 4, $02, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 4, $00, OAM_XFLIP | OAM_YFLIP + dbsprite -3, -1, 0, 4, $09, OAM_XFLIP + dbsprite -2, -1, 0, 4, $08, OAM_XFLIP dbsprite -1, -1, 0, 4, $06, $0 dbsprite 0, -1, 0, 4, $07, $0 dbsprite 1, -1, 0, 4, $08, $0 dbsprite 2, -1, 0, 4, $09, $0 - dbsprite -3, 0, 0, 4, $01, X_FLIP - dbsprite -2, 0, 0, 4, $00, X_FLIP + dbsprite -3, 0, 0, 4, $01, OAM_XFLIP + dbsprite -2, 0, 0, 4, $00, OAM_XFLIP dbsprite -1, 0, 0, 4, $0c, $0 dbsprite 0, 0, 0, 4, $0d, $0 dbsprite 1, 0, 0, 4, $00, $0 dbsprite 2, 0, 0, 4, $01, $0 dbsprite -2, -3, 0, 4, $00, $0 dbsprite -1, -3, 0, 4, $02, $0 - dbsprite 0, -3, 0, 4, $02, X_FLIP - dbsprite 1, -3, 0, 4, $00, X_FLIP - dbsprite -3, -2, 0, 4, $03, X_FLIP - dbsprite -2, -2, 0, 4, $02, X_FLIP + dbsprite 0, -3, 0, 4, $02, OAM_XFLIP + dbsprite 1, -3, 0, 4, $00, OAM_XFLIP + dbsprite -3, -2, 0, 4, $03, OAM_XFLIP + dbsprite -2, -2, 0, 4, $02, OAM_XFLIP dbsprite -1, -2, 0, 4, $04, $0 dbsprite 0, -2, 0, 4, $05, $0 dbsprite 1, -2, 0, 4, $02, $0 @@ -556,62 +556,62 @@ BattleAnimOAMData: .OAMData_41: dbsprite -2, -3, 0, 4, $00, $0 dbsprite -1, -3, 0, 4, $02, $0 - dbsprite 0, -3, 0, 4, $02, X_FLIP - dbsprite 1, -3, 0, 4, $00, X_FLIP + dbsprite 0, -3, 0, 4, $02, OAM_XFLIP + dbsprite 1, -3, 0, 4, $00, OAM_XFLIP dbsprite -3, -2, 4, 4, $00, $0 dbsprite -2, -2, 4, 4, $01, $0 - dbsprite -1, -2, 0, 4, $05, X_FLIP - dbsprite 0, -2, 0, 4, $04, X_FLIP - dbsprite 0, -2, 4, 4, $01, X_FLIP - dbsprite 1, -2, 4, 4, $00, X_FLIP + dbsprite -1, -2, 0, 4, $05, OAM_XFLIP + dbsprite 0, -2, 0, 4, $04, OAM_XFLIP + dbsprite 0, -2, 4, 4, $01, OAM_XFLIP + dbsprite 1, -2, 4, 4, $00, OAM_XFLIP dbsprite -3, -1, 4, 4, $02, $0 dbsprite -2, -1, 4, 4, $03, $0 - dbsprite -1, -1, 0, 4, $07, X_FLIP - dbsprite 0, -1, 0, 4, $06, X_FLIP - dbsprite 0, -1, 4, 4, $03, X_FLIP - dbsprite 1, -1, 4, 4, $02, X_FLIP + dbsprite -1, -1, 0, 4, $07, OAM_XFLIP + dbsprite 0, -1, 0, 4, $06, OAM_XFLIP + dbsprite 0, -1, 4, 4, $03, OAM_XFLIP + dbsprite 1, -1, 4, 4, $02, OAM_XFLIP dbsprite -3, 0, 4, 4, $04, $0 dbsprite -2, 0, 4, 4, $05, $0 - dbsprite -1, 0, 0, 4, $0d, X_FLIP - dbsprite 0, 0, 0, 4, $0c, X_FLIP - dbsprite 0, 0, 4, 4, $05, X_FLIP - dbsprite 1, 0, 4, 4, $04, X_FLIP - dbsprite -2, 1, 0, 4, $00, Y_FLIP - dbsprite -1, 1, 0, 4, $02, Y_FLIP - dbsprite 0, 1, 0, 4, $02, X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 4, $00, X_FLIP | Y_FLIP + dbsprite -1, 0, 0, 4, $0d, OAM_XFLIP + dbsprite 0, 0, 0, 4, $0c, OAM_XFLIP + dbsprite 0, 0, 4, 4, $05, OAM_XFLIP + dbsprite 1, 0, 4, 4, $04, OAM_XFLIP + dbsprite -2, 1, 0, 4, $00, OAM_YFLIP + dbsprite -1, 1, 0, 4, $02, OAM_YFLIP + dbsprite 0, 1, 0, 4, $02, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 4, $00, OAM_XFLIP | OAM_YFLIP .OAMData_42: dbsprite -1, -3, 4, 0, $02, $0 - dbsprite -1, 2, 4, 0, $02, X_FLIP | Y_FLIP + dbsprite -1, 2, 4, 0, $02, OAM_XFLIP | OAM_YFLIP dbsprite -3, -1, 0, 4, $01, $0 - dbsprite 2, -1, 0, 4, $01, X_FLIP | Y_FLIP + dbsprite 2, -1, 0, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -1, -4, 4, 0, $02, $0 - dbsprite -1, 3, 4, 0, $02, X_FLIP | Y_FLIP + dbsprite -1, 3, 4, 0, $02, OAM_XFLIP | OAM_YFLIP dbsprite -4, -1, 0, 4, $01, $0 - dbsprite 3, -1, 0, 4, $01, X_FLIP | Y_FLIP + dbsprite 3, -1, 0, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_44: - dbsprite -3, -3, 5, 5, $00, X_FLIP + dbsprite -3, -3, 5, 5, $00, OAM_XFLIP dbsprite 1, -3, 3, 5, $00, $0 - dbsprite -3, 1, 5, 3, $00, X_FLIP | Y_FLIP - dbsprite 1, 1, 3, 3, $00, Y_FLIP - dbsprite -4, -4, 5, 5, $00, X_FLIP + dbsprite -3, 1, 5, 3, $00, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 3, 3, $00, OAM_YFLIP + dbsprite -4, -4, 5, 5, $00, OAM_XFLIP dbsprite 2, -4, 3, 5, $00, $0 - dbsprite -4, 2, 5, 3, $00, X_FLIP | Y_FLIP - dbsprite 2, 2, 3, 3, $00, Y_FLIP + dbsprite -4, 2, 5, 3, $00, OAM_XFLIP | OAM_YFLIP + dbsprite 2, 2, 3, 3, $00, OAM_YFLIP .OAMData_46: dbsprite -1, -3, 4, 4, $02, $0 - dbsprite -1, 1, 4, 4, $02, X_FLIP | Y_FLIP + dbsprite -1, 1, 4, 4, $02, OAM_XFLIP | OAM_YFLIP dbsprite -3, -1, 4, 4, $01, $0 - dbsprite 1, -1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 1, -1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_47: - dbsprite -2, -2, 0, 0, $00, X_FLIP + dbsprite -2, -2, 0, 0, $00, OAM_XFLIP dbsprite 1, -2, 0, 0, $00, $0 - dbsprite -2, 1, 0, 0, $00, X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 0, $00, Y_FLIP + dbsprite -2, 1, 0, 0, $00, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 0, $00, OAM_YFLIP .OAMData_48: dbsprite -1, -3, 4, 0, $00, $0 @@ -622,38 +622,38 @@ BattleAnimOAMData: dbsprite -1, 2, 4, 0, $00, $0 .OAMData_49: - dbsprite -2, -1, 0, 4, $00, X_FLIP - dbsprite -1, -1, 0, 2, $00, X_FLIP + dbsprite -2, -1, 0, 4, $00, OAM_XFLIP + dbsprite -1, -1, 0, 2, $00, OAM_XFLIP dbsprite 0, -1, 0, 2, $00, $0 dbsprite 1, -1, 0, 4, $00, $0 .OAMData_4a: - dbsprite -1, -1, 0, 4, $00, X_FLIP | Y_FLIP - dbsprite 0, -1, 0, 4, $00, Y_FLIP + dbsprite -1, -1, 0, 4, $00, OAM_XFLIP | OAM_YFLIP + dbsprite 0, -1, 0, 4, $00, OAM_YFLIP .OAMData_0f: dbsprite -1, -1, 4, 4, $00, $0 dbsprite -2, -1, 4, 4, $01, $0 - dbsprite -1, -1, 4, 4, $01, X_FLIP - dbsprite -2, 0, 4, 4, $01, Y_FLIP - dbsprite -1, 0, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -1, -1, 4, 4, $01, OAM_XFLIP + dbsprite -2, 0, 4, 4, $01, OAM_YFLIP + dbsprite -1, 0, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_4c: dbsprite -1, -1, 4, 4, $00, $0 dbsprite -2, 0, 6, 2, $00, $0 dbsprite -3, 0, 6, 2, $01, $0 - dbsprite -2, 0, 6, 2, $01, X_FLIP - dbsprite -3, 1, 6, 2, $01, Y_FLIP - dbsprite -2, 1, 6, 2, $01, X_FLIP | Y_FLIP + dbsprite -2, 0, 6, 2, $01, OAM_XFLIP + dbsprite -3, 1, 6, 2, $01, OAM_YFLIP + dbsprite -2, 1, 6, 2, $01, OAM_XFLIP | OAM_YFLIP .OAMData_4d: dbsprite -1, -1, 4, 4, $00, $0 dbsprite -2, 0, 6, 2, $00, $0 dbsprite -2, 1, 0, 0, $00, $0 dbsprite -3, 1, 0, 0, $01, $0 - dbsprite -2, 1, 0, 0, $01, X_FLIP - dbsprite -3, 2, 0, 0, $01, Y_FLIP - dbsprite -2, 2, 0, 0, $01, X_FLIP | Y_FLIP + dbsprite -2, 1, 0, 0, $01, OAM_XFLIP + dbsprite -3, 2, 0, 0, $01, OAM_YFLIP + dbsprite -2, 2, 0, 0, $01, OAM_XFLIP | OAM_YFLIP .OAMData_4f: dbsprite -1, -1, 4, 4, $00, $0 @@ -661,9 +661,9 @@ BattleAnimOAMData: dbsprite -2, 1, 0, 0, $00, $0 dbsprite -3, 1, 2, 6, $00, $0 dbsprite -4, 1, 2, 6, $01, $0 - dbsprite -3, 1, 2, 6, $01, X_FLIP - dbsprite -4, 2, 2, 6, $01, Y_FLIP - dbsprite -3, 2, 2, 6, $01, X_FLIP | Y_FLIP + dbsprite -3, 1, 2, 6, $01, OAM_XFLIP + dbsprite -4, 2, 2, 6, $01, OAM_YFLIP + dbsprite -3, 2, 2, 6, $01, OAM_XFLIP | OAM_YFLIP .OAMData_50: dbsprite -1, -1, 4, 4, $00, $0 @@ -672,9 +672,9 @@ BattleAnimOAMData: dbsprite -3, 1, 2, 6, $00, $0 dbsprite -4, 2, 4, 4, $00, $0 dbsprite -5, 2, 4, 4, $01, $0 - dbsprite -4, 2, 4, 4, $01, X_FLIP - dbsprite -5, 3, 4, 4, $01, Y_FLIP - dbsprite -4, 3, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -4, 2, 4, 4, $01, OAM_XFLIP + dbsprite -5, 3, 4, 4, $01, OAM_YFLIP + dbsprite -4, 3, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_51: dbsprite -1, -1, 4, 4, $00, $0 @@ -684,21 +684,21 @@ BattleAnimOAMData: dbsprite -4, 2, 4, 4, $00, $0 dbsprite -5, 3, 6, 2, $00, $0 dbsprite -6, 3, 6, 2, $01, $0 - dbsprite -5, 3, 6, 2, $01, X_FLIP - dbsprite -6, 4, 6, 2, $01, Y_FLIP - dbsprite -5, 4, 6, 2, $01, X_FLIP | Y_FLIP + dbsprite -5, 3, 6, 2, $01, OAM_XFLIP + dbsprite -6, 4, 6, 2, $01, OAM_YFLIP + dbsprite -5, 4, 6, 2, $01, OAM_XFLIP | OAM_YFLIP .OAMData_59: dbsprite -2, -1, 0, 4, $00, $0 dbsprite -1, -1, 0, 4, $01, $0 - dbsprite 0, -1, 0, 4, $01, X_FLIP - dbsprite 1, -1, 0, 4, $00, X_FLIP + dbsprite 0, -1, 0, 4, $01, OAM_XFLIP + dbsprite 1, -1, 0, 4, $00, OAM_XFLIP .OAMData_5a: dbsprite -2, -1, 0, 4, $02, $0 dbsprite -1, -1, 0, 4, $01, $0 - dbsprite 0, -1, 0, 4, $01, X_FLIP - dbsprite 1, -1, 0, 4, $02, X_FLIP + dbsprite 0, -1, 0, 4, $01, OAM_XFLIP + dbsprite 1, -1, 0, 4, $02, OAM_XFLIP .OAMData_60: dbsprite -1, -1, 4, 0, $00, $0 @@ -718,62 +718,62 @@ BattleAnimOAMData: dbsprite 2, -2, 4, 4, $08, $0 .OAMData_65: - dbsprite -4, -2, 4, 4, $08, X_FLIP - dbsprite -3, -2, 4, 4, $07, X_FLIP - dbsprite -4, -1, 4, 4, $06, X_FLIP - dbsprite -3, -1, 4, 4, $05, X_FLIP - dbsprite -2, -1, 4, 4, $04, X_FLIP - dbsprite -1, -1, 4, 4, $03, X_FLIP - dbsprite 0, -1, 4, 4, $02, X_FLIP - dbsprite 1, -1, 4, 4, $01, X_FLIP - dbsprite 2, -1, 4, 4, $00, X_FLIP + dbsprite -4, -2, 4, 4, $08, OAM_XFLIP + dbsprite -3, -2, 4, 4, $07, OAM_XFLIP + dbsprite -4, -1, 4, 4, $06, OAM_XFLIP + dbsprite -3, -1, 4, 4, $05, OAM_XFLIP + dbsprite -2, -1, 4, 4, $04, OAM_XFLIP + dbsprite -1, -1, 4, 4, $03, OAM_XFLIP + dbsprite 0, -1, 4, 4, $02, OAM_XFLIP + dbsprite 1, -1, 4, 4, $01, OAM_XFLIP + dbsprite 2, -1, 4, 4, $00, OAM_XFLIP .OAMData_d4: - dbsprite -4, 0, 4, 0, $00, OBP_NUM - dbsprite -3, 0, 4, 0, $01, OBP_NUM - dbsprite -2, 0, 4, 0, $02, OBP_NUM - dbsprite -1, 0, 4, 0, $03, OBP_NUM - dbsprite 0, 0, 4, 0, $04, OBP_NUM - dbsprite 1, 0, 4, 0, $05, OBP_NUM - dbsprite 2, 0, 4, 0, $06, OBP_NUM + dbsprite -4, 0, 4, 0, $00, OAM_PAL1 + dbsprite -3, 0, 4, 0, $01, OAM_PAL1 + dbsprite -2, 0, 4, 0, $02, OAM_PAL1 + dbsprite -1, 0, 4, 0, $03, OAM_PAL1 + dbsprite 0, 0, 4, 0, $04, OAM_PAL1 + dbsprite 1, 0, 4, 0, $05, OAM_PAL1 + dbsprite 2, 0, 4, 0, $06, OAM_PAL1 .OAMData_d6: - dbsprite -4, -1, 4, 0, $00, OBP_NUM - dbsprite -4, 0, 4, 0, $01, OBP_NUM - dbsprite -3, -1, 4, 0, $02, OBP_NUM - dbsprite -3, 0, 4, 0, $03, OBP_NUM - dbsprite -2, -1, 4, 0, $04, OBP_NUM - dbsprite -2, 0, 4, 0, $05, OBP_NUM - dbsprite -1, -1, 4, 0, $06, OBP_NUM - dbsprite -1, 0, 4, 0, $07, OBP_NUM - dbsprite 0, -1, 4, 0, $08, OBP_NUM - dbsprite 0, 0, 4, 0, $09, OBP_NUM - dbsprite 1, -1, 4, 0, $0a, OBP_NUM - dbsprite 1, 0, 4, 0, $0b, OBP_NUM - dbsprite 2, -1, 4, 0, $0c, OBP_NUM - dbsprite 2, 0, 4, 0, $0d, OBP_NUM + dbsprite -4, -1, 4, 0, $00, OAM_PAL1 + dbsprite -4, 0, 4, 0, $01, OAM_PAL1 + dbsprite -3, -1, 4, 0, $02, OAM_PAL1 + dbsprite -3, 0, 4, 0, $03, OAM_PAL1 + dbsprite -2, -1, 4, 0, $04, OAM_PAL1 + dbsprite -2, 0, 4, 0, $05, OAM_PAL1 + dbsprite -1, -1, 4, 0, $06, OAM_PAL1 + dbsprite -1, 0, 4, 0, $07, OAM_PAL1 + dbsprite 0, -1, 4, 0, $08, OAM_PAL1 + dbsprite 0, 0, 4, 0, $09, OAM_PAL1 + dbsprite 1, -1, 4, 0, $0a, OAM_PAL1 + dbsprite 1, 0, 4, 0, $0b, OAM_PAL1 + dbsprite 2, -1, 4, 0, $0c, OAM_PAL1 + dbsprite 2, 0, 4, 0, $0d, OAM_PAL1 .OAMData_d5: - dbsprite -3, 0, 0, 0, $00, $1 | OBP_NUM - dbsprite -2, 0, 0, 0, $01, $1 | OBP_NUM - dbsprite -1, 0, 0, 0, $02, $1 | OBP_NUM - dbsprite 0, 0, 0, 0, $03, $1 | OBP_NUM - dbsprite 1, 0, 0, 0, $04, $1 | OBP_NUM - dbsprite 2, 0, 0, 0, $05, $1 | OBP_NUM + dbsprite -3, 0, 0, 0, $00, $1 | OAM_PAL1 + dbsprite -2, 0, 0, 0, $01, $1 | OAM_PAL1 + dbsprite -1, 0, 0, 0, $02, $1 | OAM_PAL1 + dbsprite 0, 0, 0, 0, $03, $1 | OAM_PAL1 + dbsprite 1, 0, 0, 0, $04, $1 | OAM_PAL1 + dbsprite 2, 0, 0, 0, $05, $1 | OAM_PAL1 .OAMData_d7: - dbsprite -3, 0, 0, 0, $00, $1 | OBP_NUM - dbsprite -3, 1, 0, 0, $01, $1 | OBP_NUM - dbsprite -2, 0, 0, 0, $02, $1 | OBP_NUM - dbsprite -2, 1, 0, 0, $03, $1 | OBP_NUM - dbsprite -1, 0, 0, 0, $04, $1 | OBP_NUM - dbsprite -1, 1, 0, 0, $05, $1 | OBP_NUM - dbsprite 0, 0, 0, 0, $06, $1 | OBP_NUM - dbsprite 0, 1, 0, 0, $07, $1 | OBP_NUM - dbsprite 1, 0, 0, 0, $08, $1 | OBP_NUM - dbsprite 1, 1, 0, 0, $09, $1 | OBP_NUM - dbsprite 2, 0, 0, 0, $0a, $1 | OBP_NUM - dbsprite 2, 1, 0, 0, $0b, $1 | OBP_NUM + dbsprite -3, 0, 0, 0, $00, $1 | OAM_PAL1 + dbsprite -3, 1, 0, 0, $01, $1 | OAM_PAL1 + dbsprite -2, 0, 0, 0, $02, $1 | OAM_PAL1 + dbsprite -2, 1, 0, 0, $03, $1 | OAM_PAL1 + dbsprite -1, 0, 0, 0, $04, $1 | OAM_PAL1 + dbsprite -1, 1, 0, 0, $05, $1 | OAM_PAL1 + dbsprite 0, 0, 0, 0, $06, $1 | OAM_PAL1 + dbsprite 0, 1, 0, 0, $07, $1 | OAM_PAL1 + dbsprite 1, 0, 0, 0, $08, $1 | OAM_PAL1 + dbsprite 1, 1, 0, 0, $09, $1 | OAM_PAL1 + dbsprite 2, 0, 0, 0, $0a, $1 | OAM_PAL1 + dbsprite 2, 1, 0, 0, $0b, $1 | OAM_PAL1 .OAMData_6e: dbsprite 0, -2, 4, 4, $00, $0 @@ -788,94 +788,94 @@ BattleAnimOAMData: dbsprite 0, -1, 4, 4, $02, $0 .OAMData_77: - dbsprite 1, -4, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 1, -4, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_78: dbsprite 1, -4, 4, 4, $00, $0 - dbsprite 0, -4, 4, 4, $01, X_FLIP | Y_FLIP - dbsprite 1, -3, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 0, -4, 4, 4, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 1, -3, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_79: dbsprite 1, -4, 4, 4, $01, $0 dbsprite 0, -4, 4, 4, $00, $0 - dbsprite -1, -4, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -1, -4, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 1, -3, 4, 4, $00, $0 - dbsprite 0, -3, 4, 4, $01, X_FLIP | Y_FLIP - dbsprite 1, -2, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 0, -3, 4, 4, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 1, -2, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_7a: - dbsprite -2, -4, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -2, -4, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -1, -4, 4, 4, $00, $0 dbsprite 0, -4, 4, 4, $01, $0 - dbsprite -1, -3, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -1, -3, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 0, -3, 4, 4, $00, $0 dbsprite 1, -3, 4, 4, $01, $0 - dbsprite 0, -2, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 0, -2, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 1, -2, 4, 4, $00, $0 - dbsprite 1, -1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 1, -1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_7b: - dbsprite -3, -4, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -3, -4, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -2, -4, 4, 4, $00, $0 dbsprite -1, -4, 4, 4, $01, $0 - dbsprite -2, -3, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -2, -3, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -1, -3, 4, 4, $00, $0 dbsprite 0, -3, 4, 4, $01, $0 - dbsprite -1, -2, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -1, -2, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 0, -2, 4, 4, $00, $0 dbsprite 1, -2, 4, 4, $01, $0 - dbsprite 0, -1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 0, -1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 1, -1, 4, 4, $00, $0 - dbsprite 1, 0, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 1, 0, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_7c: dbsprite -3, -4, 4, 4, $00, $0 dbsprite -2, -4, 4, 4, $01, $0 - dbsprite -3, -3, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -3, -3, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -2, -3, 4, 4, $00, $0 dbsprite -1, -3, 4, 4, $01, $0 - dbsprite -2, -2, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -2, -2, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -1, -2, 4, 4, $00, $0 dbsprite 0, -2, 4, 4, $01, $0 - dbsprite -1, -1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -1, -1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 0, -1, 4, 4, $00, $0 dbsprite 1, -1, 4, 4, $01, $0 - dbsprite 0, 0, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 0, 0, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 1, 0, 4, 4, $00, $0 - dbsprite 1, 1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 1, 1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_7d: dbsprite -3, -4, 4, 4, $01, $0 dbsprite -3, -3, 4, 4, $00, $0 dbsprite -2, -3, 4, 4, $01, $0 - dbsprite -3, -2, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -3, -2, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -2, -2, 4, 4, $00, $0 dbsprite -1, -2, 4, 4, $01, $0 - dbsprite -2, -1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -2, -1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite -1, -1, 4, 4, $00, $0 dbsprite 0, -1, 4, 4, $01, $0 - dbsprite -1, 0, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite -1, 0, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 0, 0, 4, 4, $00, $0 dbsprite 1, 0, 4, 4, $01, $0 - dbsprite 0, 1, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 0, 1, 4, 4, $01, OAM_XFLIP | OAM_YFLIP dbsprite 1, 1, 4, 4, $00, $0 - dbsprite 1, 2, 4, 4, $01, X_FLIP | Y_FLIP + dbsprite 1, 2, 4, 4, $01, OAM_XFLIP | OAM_YFLIP .OAMData_70: dbsprite -1, -2, 0, 0, $00, $0 dbsprite -1, -1, 0, 0, $01, $0 - dbsprite 0, -2, 0, 0, $00, X_FLIP - dbsprite 0, -1, 0, 0, $01, X_FLIP - dbsprite -1, 0, 0, 0, $01, Y_FLIP - dbsprite -1, 1, 0, 0, $00, Y_FLIP - dbsprite 0, 0, 0, 0, $01, X_FLIP | Y_FLIP - dbsprite 0, 1, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite 0, -2, 0, 0, $00, OAM_XFLIP + dbsprite 0, -1, 0, 0, $01, OAM_XFLIP + dbsprite -1, 0, 0, 0, $01, OAM_YFLIP + dbsprite -1, 1, 0, 0, $00, OAM_YFLIP + dbsprite 0, 0, 0, 0, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_81: dbsprite -1, -1, 0, 0, $00, $0 dbsprite 0, -1, 0, 0, $01, $0 - dbsprite -1, 0, 0, 0, $01, X_FLIP | Y_FLIP - dbsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite -1, 0, 0, 0, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 0, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_87: dbsprite -1, -2, 0, 4, $00, $0 @@ -923,8 +923,8 @@ BattleAnimOAMData: dbsprite -1, -3, 4, 4, $00, $0 dbsprite -1, -2, 4, 4, $01, $0 dbsprite -1, -1, 4, 4, $02, $0 - dbsprite -1, 0, 4, 4, $01, Y_FLIP - dbsprite -1, 1, 4, 4, $00, Y_FLIP + dbsprite -1, 0, 4, 4, $01, OAM_YFLIP + dbsprite -1, 1, 4, 4, $00, OAM_YFLIP .OAMData_8f: dbsprite -2, -1, 0, 4, $00, $0 @@ -988,9 +988,9 @@ BattleAnimOAMData: dbsprite -1, 0, 0, 4, $02, $0 dbsprite 0, 0, 0, 4, $03, $0 dbsprite -1, -1, 0, 4, $01, $0 - dbsprite 0, -1, 0, 4, $01, X_FLIP + dbsprite 0, -1, 0, 4, $01, OAM_XFLIP dbsprite -1, -2, 0, 4, $00, $0 - dbsprite 0, -2, 0, 4, $00, X_FLIP + dbsprite 0, -2, 0, 4, $00, OAM_XFLIP .OAMData_9f: dbsprite -2, -1, 0, 0, $00, $0 @@ -1018,49 +1018,49 @@ BattleAnimOAMData: dbsprite -2, -1, 4, 4, $03, $0 dbsprite -1, -1, 4, 4, $04, $0 dbsprite 0, -1, 4, 4, $05, $0 - dbsprite -2, 0, 4, 4, $00, Y_FLIP - dbsprite -1, 0, 4, 4, $01, Y_FLIP - dbsprite 0, 0, 4, 4, $02, Y_FLIP + dbsprite -2, 0, 4, 4, $00, OAM_YFLIP + dbsprite -1, 0, 4, 4, $01, OAM_YFLIP + dbsprite 0, 0, 4, 4, $02, OAM_YFLIP .OAMData_ac: dbsprite -2, -1, 0, 4, $00, $0 dbsprite -1, -1, 0, 4, $01, $0 - dbsprite 0, -1, 0, 4, $01, X_FLIP - dbsprite 1, -1, 0, 4, $00, X_FLIP + dbsprite 0, -1, 0, 4, $01, OAM_XFLIP + dbsprite 1, -1, 0, 4, $00, OAM_XFLIP .OAMData_bc: dbsprite -3, -1, 0, 4, $00, $0 dbsprite -2, -1, 0, 4, $01, $0 dbsprite -1, -1, 0, 4, $02, $0 - dbsprite 0, -1, 0, 4, $02, X_FLIP - dbsprite 1, -1, 0, 4, $01, X_FLIP - dbsprite 2, -1, 0, 4, $00, X_FLIP + dbsprite 0, -1, 0, 4, $02, OAM_XFLIP + dbsprite 1, -1, 0, 4, $01, OAM_XFLIP + dbsprite 2, -1, 0, 4, $00, OAM_XFLIP .OAMData_c1: dbsprite -2, -2, 0, 0, $00, $0 dbsprite -1, -2, 0, 0, $01, $0 dbsprite 0, -2, 0, 0, $02, $0 - dbsprite 1, -2, 0, 0, $00, X_FLIP + dbsprite 1, -2, 0, 0, $00, OAM_XFLIP dbsprite -2, -1, 0, 0, $03, $0 dbsprite -1, -1, 0, 0, $04, $0 - dbsprite 0, -1, 0, 0, $04, X_FLIP + dbsprite 0, -1, 0, 0, $04, OAM_XFLIP dbsprite 1, -1, 0, 0, $05, $0 - dbsprite -2, 0, 0, 0, $05, X_FLIP | Y_FLIP - dbsprite -1, 0, 0, 0, $04, Y_FLIP - dbsprite 0, 0, 0, 0, $04, X_FLIP | Y_FLIP - dbsprite 1, 0, 0, 0, $03, X_FLIP | Y_FLIP - dbsprite -2, 1, 0, 0, $00, Y_FLIP - dbsprite -1, 1, 0, 0, $02, X_FLIP | Y_FLIP - dbsprite 0, 1, 0, 0, $01, X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite -2, 0, 0, 0, $05, OAM_XFLIP | OAM_YFLIP + dbsprite -1, 0, 0, 0, $04, OAM_YFLIP + dbsprite 0, 0, 0, 0, $04, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 0, 0, 0, $03, OAM_XFLIP | OAM_YFLIP + dbsprite -2, 1, 0, 0, $00, OAM_YFLIP + dbsprite -1, 1, 0, 0, $02, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 0, 0, $01, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_c2: dbsprite -2, -1, 0, 0, $00, $0 dbsprite -1, -1, 0, 0, $01, $0 - dbsprite 0, -1, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite 0, -1, 0, 0, $00, OAM_XFLIP | OAM_YFLIP dbsprite -1, 0, 0, 0, $00, $0 dbsprite 0, 0, 0, 0, $01, $0 - dbsprite 1, 0, 0, 0, $00, X_FLIP | Y_FLIP + dbsprite 1, 0, 0, 0, $00, OAM_XFLIP | OAM_YFLIP .OAMData_c8: dbsprite 1, -1, 4, 0, $00, $0 @@ -1072,9 +1072,9 @@ BattleAnimOAMData: .OAMData_ca: dbsprite -1, -1, 0, 0, $00, $0 - dbsprite 0, -1, 0, 0, $01, X_FLIP | Y_FLIP + dbsprite 0, -1, 0, 0, $01, OAM_XFLIP | OAM_YFLIP dbsprite -1, 0, 0, 0, $01, $0 - dbsprite 0, 0, 0, 0, $01, X_FLIP + dbsprite 0, 0, 0, 0, $01, OAM_XFLIP .OAMData_cc: dbsprite -13, -2, 4, 0, $00, $0 diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm index 56278e4f..18977b0f 100644 --- a/data/battle_anims/objects.asm +++ b/data/battle_anims/objects.asm @@ -60,7 +60,7 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_ICE_BEAM battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_ICE_BEAM, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_ICE ; BATTLE_ANIM_OBJ_RAZOR_LEAF - battleanimobj RELATIVE_X | X_FLIP, $78, BATTLE_ANIM_FRAMESET_RAZOR_LEAF_1, BATTLE_ANIM_FUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_PLANT + battleanimobj RELATIVE_X | OAM_XFLIP, $78, BATTLE_ANIM_FRAMESET_RAZOR_LEAF_1, BATTLE_ANIM_FUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_PLANT ; BATTLE_ANIM_OBJ_POKE_BALL battleanimobj ABSOLUTE_X, $00, BATTLE_ANIM_FRAMESET_POKE_BALL_1, BATTLE_ANIM_FUNC_POKEBALL, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_POKE_BALL ; BATTLE_ANIM_OBJ_POKE_BALL_BLOCKED @@ -92,15 +92,15 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_SING battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_MUSIC_NOTE_1, BATTLE_ANIM_FUNC_SING, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_NOISE ; BATTLE_ANIM_OBJ_WATER_GUN - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLE_ANIM_FRAMESET_WATER_GUN_1, BATTLE_ANIM_FUNC_WATER_GUN, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_WATER + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $80, BATTLE_ANIM_FRAMESET_WATER_GUN_1, BATTLE_ANIM_FUNC_WATER_GUN, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_WATER ; BATTLE_ANIM_OBJ_HYDRO_PUMP battleanimobj RELATIVE_X, $b4, BATTLE_ANIM_FRAMESET_HYDRO_PUMP, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_WATER ; BATTLE_ANIM_OBJ_POWDER battleanimobj RELATIVE_X, $40, BATTLE_ANIM_FRAMESET_POWDER, BATTLE_ANIM_FUNC_POWDER, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_POWDER ; BATTLE_ANIM_OBJ_BEAM - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLE_ANIM_FRAMESET_BEAM, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $98, BATTLE_ANIM_FRAMESET_BEAM, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM ; BATTLE_ANIM_OBJ_BEAM_TIP - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLE_ANIM_FRAMESET_BEAM_TIP, BATTLE_ANIM_FUNC_SHAKE, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $98, BATTLE_ANIM_FRAMESET_BEAM_TIP, BATTLE_ANIM_FUNC_SHAKE, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM ; BATTLE_ANIM_OBJ_ICE_BUILDUP battleanimobj RELATIVE_X, $b8, BATTLE_ANIM_FRAMESET_ICE_BUILDUP, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_ICE ; BATTLE_ANIM_OBJ_FROZEN @@ -110,81 +110,81 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_RECOVER battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_SMALL_BUBBLE, BATTLE_ANIM_FUNC_RECOVER, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BUBBLE ; BATTLE_ANIM_OBJ_THUNDER_CENTER - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLE_ANIM_FRAMESET_THUNDER_CENTER, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $b0, BATTLE_ANIM_FRAMESET_THUNDER_CENTER, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_THUNDER_LEFT - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLE_ANIM_FRAMESET_THUNDER_LEFT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $b0, BATTLE_ANIM_FRAMESET_THUNDER_LEFT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_THUNDER_RIGHT - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLE_ANIM_FRAMESET_THUNDER_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $b0, BATTLE_ANIM_FRAMESET_THUNDER_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_THUNDER_WAVE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_THUNDER_WAVE_DISABLE, BATTLE_ANIM_FUNC_THUNDER_WAVE, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_THUNDER_WAVE_DISABLE, BATTLE_ANIM_FUNC_THUNDER_WAVE, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_THUNDERBOLT_SPARKS - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERBOLT_SPARKS, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERBOLT_SPARKS, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_THUNDERBOLT_CORE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERBOLT_CORE, BATTLE_ANIM_FUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EXPLOSION + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERBOLT_CORE, BATTLE_ANIM_FUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EXPLOSION ; BATTLE_ANIM_OBJ_THUNDERSHOCK_SPARKS - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERSHOCK_SPARKS, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERSHOCK_SPARKS, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_THUNDERSHOCK_CORE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERSHOCK_CORE, BATTLE_ANIM_FUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EXPLOSION + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_THUNDERSHOCK_CORE, BATTLE_ANIM_FUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EXPLOSION ; BATTLE_ANIM_OBJ_CLAMP - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_CLAMP, BATTLE_ANIM_FUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_CLAMP, BATTLE_ANIM_FUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_BITE battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_BITE_1, BATTLE_ANIM_FUNC_BITE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_CUT_DOWN_LEFT - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_DOWN_LEFT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_DOWN_LEFT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_CUT_DOWN_RIGHT - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_DOWN_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_DOWN_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_CUT_UP_RIGHT - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_UP_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_UP_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_CUT_LONG_DOWN_LEFT - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_LONG_DOWN_LEFT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_LONG_DOWN_LEFT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_CUT_LONG_DOWN_RIGHT - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_LONG_DOWN_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CUT_LONG_DOWN_RIGHT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_SOLAR_BEAM_CHARGE battleanimobj RELATIVE_X, $88, BATTLE_ANIM_FRAMESET_CHARGE_ORB_1, BATTLE_ANIM_FUNC_SOLAR_BEAM, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_CHARGE ; BATTLE_ANIM_OBJ_ABSORB_CENTER battleanimobj RELATIVE_X, $88, BATTLE_ANIM_FRAMESET_ABSORB_CENTER, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_CHARGE ; BATTLE_ANIM_OBJ_GUST - battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLE_ANIM_FRAMESET_GUST, BATTLE_ANIM_FUNC_GUST, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WIND + battleanimobj RELATIVE_X | OAM_XFLIP, $b8, BATTLE_ANIM_FRAMESET_GUST, BATTLE_ANIM_FUNC_GUST, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WIND ; BATTLE_ANIM_OBJ_VINE_WHIP1 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_VINE_WHIP_1, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_VINE_WHIP_1, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_VINE_WHIP2 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_VINE_WHIP_2, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_VINE_WHIP_2, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_RAZOR_WIND1 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_RAZOR_WIND_1, BATTLE_ANIM_FUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_RAZOR_WIND_1, BATTLE_ANIM_FUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_RAZOR_WIND2 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_RAZOR_WIND_2, BATTLE_ANIM_FUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_RAZOR_WIND_2, BATTLE_ANIM_FUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_SONICBOOM_JP - battleanimobj RELATIVE_X | X_FLIP, $98, BATTLE_ANIM_FRAMESET_SONICBOOM_JP, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $98, BATTLE_ANIM_FRAMESET_SONICBOOM_JP, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_WARP - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_WARP, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_WARP, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_ABSORB battleanimobj RELATIVE_X, $88, BATTLE_ANIM_FRAMESET_CHARGE_ORB_2, BATTLE_ANIM_FUNC_ABSORB, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_CHARGE ; BATTLE_ANIM_OBJ_EGG - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLE_ANIM_FRAMESET_EGG, BATTLE_ANIM_FUNC_EGG, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EGG + battleanimobj RELATIVE_X | OAM_XFLIP, $b0, BATTLE_ANIM_FRAMESET_EGG, BATTLE_ANIM_FUNC_EGG, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EGG ; BATTLE_ANIM_OBJ_FOCUS battleanimobj RELATIVE_X, $b0, BATTLE_ANIM_FRAMESET_FOCUS, BATTLE_ANIM_FUNC_MOVE_UP, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_BIND1 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_BIND_1, BATTLE_ANIM_FUNC_WRAP, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_ROPE + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_BIND_1, BATTLE_ANIM_FUNC_WRAP, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_ROPE ; BATTLE_ANIM_OBJ_BIND2 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_BIND_3, BATTLE_ANIM_FUNC_WRAP, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_ROPE + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_BIND_3, BATTLE_ANIM_FUNC_WRAP, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_ROPE ; BATTLE_ANIM_OBJ_LEECH_SEED - battleanimobj RELATIVE_X | X_FLIP, $68, BATTLE_ANIM_FRAMESET_LEECH_SEED_1, BATTLE_ANIM_FUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_PLANT + battleanimobj RELATIVE_X | OAM_XFLIP, $68, BATTLE_ANIM_FRAMESET_LEECH_SEED_1, BATTLE_ANIM_FUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_PLANT ; BATTLE_ANIM_OBJ_SOUND - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_SOUND_1, BATTLE_ANIM_FUNC_SOUND, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_NOISE + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_SOUND_1, BATTLE_ANIM_FUNC_SOUND, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_NOISE ; BATTLE_ANIM_OBJ_WAVE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_WAVE, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_PSYCHIC + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_WAVE, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_PSYCHIC ; BATTLE_ANIM_OBJ_CONFUSE_RAY battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_CONFUSE_RAY_1, BATTLE_ANIM_FUNC_CONFUSE_RAY, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_LEER - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLE_ANIM_FRAMESET_LEER, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $88, BATTLE_ANIM_FRAMESET_LEER, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM ; BATTLE_ANIM_OBJ_LEER_TIP - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLE_ANIM_FRAMESET_BEAM_TIP, BATTLE_ANIM_FUNC_SHAKE, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $88, BATTLE_ANIM_FRAMESET_BEAM_TIP, BATTLE_ANIM_FUNC_SHAKE, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_BEAM ; BATTLE_ANIM_OBJ_SCREEN - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLE_ANIM_FRAMESET_REFLECT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_REFLECT + battleanimobj RELATIVE_X | OAM_XFLIP, $88, BATTLE_ANIM_FRAMESET_REFLECT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_REFLECT ; BATTLE_ANIM_OBJ_HARDEN - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_REFLECT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_REFLECT + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_REFLECT, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_REFLECT ; BATTLE_ANIM_OBJ_CHICK - battleanimobj RELATIVE_X | X_FLIP, $50, BATTLE_ANIM_FRAMESET_CHICK_1, BATTLE_ANIM_FUNC_DIZZY, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_STATUS + battleanimobj RELATIVE_X | OAM_XFLIP, $50, BATTLE_ANIM_FRAMESET_CHICK_1, BATTLE_ANIM_FUNC_DIZZY, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_STATUS ; BATTLE_ANIM_OBJ_AMNESIA battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_AMNESIA_1, BATTLE_ANIM_FUNC_AMNESIA, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_STATUS ; BATTLE_ANIM_OBJ_ASLEEP @@ -192,27 +192,27 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_SKULL_CROSSBONE battleanimobj RELATIVE_X, $50, BATTLE_ANIM_FRAMESET_SKULL_CROSSBONE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_POISON ; BATTLE_ANIM_OBJ_DIG_SAND - battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLE_ANIM_FRAMESET_DIG_SAND, BATTLE_ANIM_FUNC_DIG, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_SAND + battleanimobj RELATIVE_X | OAM_XFLIP, $a8, BATTLE_ANIM_FRAMESET_DIG_SAND, BATTLE_ANIM_FUNC_DIG, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_SAND ; BATTLE_ANIM_OBJ_DIG_PILE - battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLE_ANIM_FRAMESET_DIG_PILE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_SAND + battleanimobj RELATIVE_X | OAM_XFLIP, $a8, BATTLE_ANIM_FRAMESET_DIG_PILE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_SAND ; BATTLE_ANIM_OBJ_SAND - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_SAND, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SAND + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_SAND, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SAND ; BATTLE_ANIM_OBJ_PARALYZED - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_PARALYZED, BATTLE_ANIM_FUNC_PARALYZED, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_STATUS + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_PARALYZED, BATTLE_ANIM_FUNC_PARALYZED, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_STATUS ; BATTLE_ANIM_OBJ_STRING_SHOT - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_STRING_SHOT_1, BATTLE_ANIM_FUNC_STRING, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WEB + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_STRING_SHOT_1, BATTLE_ANIM_FUNC_STRING, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WEB ; BATTLE_ANIM_OBJ_HAZE battleanimobj ABSOLUTE_X, $00, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE ; BATTLE_ANIM_OBJ_MIST - battleanimobj RELATIVE_X | X_FLIP, $48, BATTLE_ANIM_FRAMESET_MIST, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE + battleanimobj RELATIVE_X | OAM_XFLIP, $48, BATTLE_ANIM_FRAMESET_MIST, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE ; BATTLE_ANIM_OBJ_SMOG - battleanimobj RELATIVE_X | X_FLIP, $48, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE + battleanimobj RELATIVE_X | OAM_XFLIP, $48, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE ; BATTLE_ANIM_OBJ_POISON_GAS - battleanimobj RELATIVE_X | X_FLIP, $78, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE + battleanimobj RELATIVE_X | OAM_XFLIP, $78, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE ; BATTLE_ANIM_OBJ_HORN - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLE_ANIM_FRAMESET_HORN, BATTLE_ANIM_FUNC_HORN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HORN + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $90, BATTLE_ANIM_FRAMESET_HORN, BATTLE_ANIM_FUNC_HORN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HORN ; BATTLE_ANIM_OBJ_NEEDLE - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLE_ANIM_FRAMESET_NEEDLE, BATTLE_ANIM_FUNC_NEEDLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HORN + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $90, BATTLE_ANIM_FRAMESET_NEEDLE, BATTLE_ANIM_FUNC_NEEDLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HORN ; BATTLE_ANIM_OBJ_PETAL_DANCE battleanimobj RELATIVE_X, $48, BATTLE_ANIM_FRAMESET_FLOWER, BATTLE_ANIM_FUNC_PETAL_DANCE, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_FLOWER ; BATTLE_ANIM_OBJ_SLUDGE_BOMB @@ -220,7 +220,7 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_PAY_DAY battleanimobj RELATIVE_X, $ff, BATTLE_ANIM_FRAMESET_PAY_DAY, BATTLE_ANIM_FUNC_THIEF_PAYDAY, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_STATUS ; BATTLE_ANIM_OBJ_SONICBOOM_JP_UNUSED - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_SONICBOOM_JP, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_SONICBOOM_JP, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_MIMIC battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_CIRCLING_SPARKLE, BATTLE_ANIM_FUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_ATTRACT @@ -234,17 +234,17 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_SWIFT battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_STAR, BATTLE_ANIM_FUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_KINESIS - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_SPOON, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_SPOON, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_FLASH battleanimobj RELATIVE_X, $ff, BATTLE_ANIM_FRAMESET_SPARKLE, BATTLE_ANIM_FUNC_SHINY, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_SHINY battleanimobj RELATIVE_X, $88, BATTLE_ANIM_FRAMESET_SPARKLE, BATTLE_ANIM_FUNC_SHINY, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_SKY_ATTACK - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLE_ANIM_FRAMESET_SKY_ATTACK, BATTLE_ANIM_FUNC_SKY_ATTACK, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SKY_ATTACK + battleanimobj RELATIVE_X | OAM_XFLIP, $88, BATTLE_ANIM_FRAMESET_SKY_ATTACK, BATTLE_ANIM_FUNC_SKY_ATTACK, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SKY_ATTACK ; BATTLE_ANIM_OBJ_LICK - battleanimobj RELATIVE_X | X_FLIP, $98, BATTLE_ANIM_FRAMESET_LICK, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WATER + battleanimobj RELATIVE_X | OAM_XFLIP, $98, BATTLE_ANIM_FRAMESET_LICK, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WATER ; BATTLE_ANIM_OBJ_WITHDRAW - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_WITHDRAW_SHELL, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_REFLECT + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_WITHDRAW_SHELL, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_REFLECT ; BATTLE_ANIM_OBJ_DRAIN battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_SMALL_BUBBLE, BATTLE_ANIM_FUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_BUBBLE ; BATTLE_ANIM_OBJ_GROWTH @@ -252,11 +252,11 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_CONVERSION2 battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_CONVERSION, BATTLE_ANIM_FUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EXPLOSION ; BATTLE_ANIM_OBJ_SMOKE - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE + battleanimobj RELATIVE_X | OAM_XFLIP, $a0, BATTLE_ANIM_FRAMESET_HAZE, BATTLE_ANIM_FUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HAZE ; BATTLE_ANIM_OBJ_SMOKESCREEN - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLE_ANIM_FRAMESET_BARRAGE_BALL, BATTLE_ANIM_FUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EGG + battleanimobj RELATIVE_X | OAM_XFLIP, $a0, BATTLE_ANIM_FRAMESET_BARRAGE_BALL, BATTLE_ANIM_FUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EGG ; BATTLE_ANIM_OBJ_SWORDS_DANCE - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLE_ANIM_FRAMESET_SWORD, BATTLE_ANIM_FUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP + battleanimobj RELATIVE_X | OAM_XFLIP, $b0, BATTLE_ANIM_FRAMESET_SWORD, BATTLE_ANIM_FUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WHIP ; BATTLE_ANIM_OBJ_SPEED_LINE battleanimobj RELATIVE_X, $88, BATTLE_ANIM_FRAMESET_SPEED_LINE_1, BATTLE_ANIM_FUNC_SPEED_LINE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_SHARPEN @@ -268,9 +268,9 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_METRONOME_SPARKLE battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_CIRCLING_SPARKLE, BATTLE_ANIM_FUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_DISABLE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_THUNDER_WAVE_DISABLE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_THUNDER_WAVE_DISABLE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_AGILITY - battleanimobj RELATIVE_X | X_FLIP | PRIORITY, $88, BATTLE_ANIM_FRAMESET_AGILITY, BATTLE_ANIM_FUNC_AGILITY, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_WIND + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_PRIO, $88, BATTLE_ANIM_FRAMESET_AGILITY, BATTLE_ANIM_FUNC_AGILITY, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_WIND ; BATTLE_ANIM_OBJ_HEART battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_HEART, BATTLE_ANIM_FUNC_FLOAT_UP, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_FLAME_WHEEL @@ -278,33 +278,33 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_SACRED_FIRE battleanimobj RELATIVE_X, $a8, BATTLE_ANIM_FRAMESET_FLAMETHROWER, BATTLE_ANIM_FUNC_SACRED_FIRE, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_FIRE ; BATTLE_ANIM_OBJ_COTTON_SPORE - battleanimobj RELATIVE_X | X_FLIP, $68, BATTLE_ANIM_FRAMESET_COTTON, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $68, BATTLE_ANIM_FRAMESET_COTTON, BATTLE_ANIM_FUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_MILK_DRINK - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLE_ANIM_FRAMESET_MILK_BOTTLE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $b0, BATTLE_ANIM_FRAMESET_MILK_BOTTLE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_ANGER - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_ANGER_VEIN, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_ANGER_VEIN, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_HEAL_BELL - battleanimobj RELATIVE_X | X_FLIP, $50, BATTLE_ANIM_FRAMESET_HEAL_BELL, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $50, BATTLE_ANIM_FRAMESET_HEAL_BELL, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_HEAL_BELL_NOTE battleanimobj RELATIVE_X, $40, BATTLE_ANIM_FRAMESET_MUSIC_NOTE_1, BATTLE_ANIM_FUNC_HEAL_BELL_NOTES, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_NOISE ; BATTLE_ANIM_OBJ_BATON_PASS - battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLE_ANIM_FRAMESET_BATON_PASS, BATTLE_ANIM_FUNC_BATON_PASS, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $a8, BATTLE_ANIM_FRAMESET_BATON_PASS, BATTLE_ANIM_FUNC_BATON_PASS, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_LOCK_ON - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLE_ANIM_FRAMESET_LOCK_ON_1, BATTLE_ANIM_FUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $88, BATTLE_ANIM_FRAMESET_LOCK_ON_1, BATTLE_ANIM_FUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_MIND_READER - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLE_ANIM_FRAMESET_MIND_READER_1, BATTLE_ANIM_FUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $88, BATTLE_ANIM_FRAMESET_MIND_READER_1, BATTLE_ANIM_FUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_SAFEGUARD - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_SAFEGUARD, BATTLE_ANIM_FUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_SAFEGUARD, BATTLE_ANIM_FUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_PROTECT - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_STAR, BATTLE_ANIM_FUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_OBJECTS + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_STAR, BATTLE_ANIM_FUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_THIEF battleanimobj RELATIVE_X, $ff, BATTLE_ANIM_FRAMESET_ITEM_BAG, BATTLE_ANIM_FUNC_THIEF_PAYDAY, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_STATUS ; BATTLE_ANIM_OBJ_OCTAZOOKA - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLE_ANIM_FRAMESET_BARRAGE_BALL, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EGG + battleanimobj RELATIVE_X | OAM_XFLIP, $a0, BATTLE_ANIM_FRAMESET_BARRAGE_BALL, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_EGG ; BATTLE_ANIM_OBJ_PRESENT - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLE_ANIM_FRAMESET_ITEM_BAG, BATTLE_ANIM_FUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_STATUS + battleanimobj RELATIVE_X | OAM_XFLIP, $a0, BATTLE_ANIM_FRAMESET_ITEM_BAG, BATTLE_ANIM_FUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_STATUS ; BATTLE_ANIM_OBJ_SPIKES - battleanimobj RELATIVE_X | X_FLIP, $70, BATTLE_ANIM_FRAMESET_SPIKE, BATTLE_ANIM_FUNC_SPIKES, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC + battleanimobj RELATIVE_X | OAM_XFLIP, $70, BATTLE_ANIM_FRAMESET_SPIKE, BATTLE_ANIM_FUNC_SPIKES, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_MISC ; BATTLE_ANIM_OBJ_POWDER_SNOW battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_POWDER_SNOW, BATTLE_ANIM_FUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ICE ; BATTLE_ANIM_OBJ_DRAGONBREATH @@ -314,25 +314,25 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_SPIDER_WEB battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_SPIDER_WEB, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WEB ; BATTLE_ANIM_OBJ_CAKE_UNUSED - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLE_ANIM_FRAMESET_UNUSED_CAKE, BATTLE_ANIM_FUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_OBJECTS + battleanimobj RELATIVE_X | OAM_XFLIP, $a0, BATTLE_ANIM_FRAMESET_UNUSED_CAKE, BATTLE_ANIM_FUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_NIGHTMARE - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_IMP, BATTLE_ANIM_FUNC_DIZZY, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_IMP, BATTLE_ANIM_FUNC_DIZZY, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS ; BATTLE_ANIM_OBJ_IN_NIGHTMARE - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_IMP_FLIPPED, BATTLE_ANIM_FUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_IMP_FLIPPED, BATTLE_ANIM_FUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS ; BATTLE_ANIM_OBJ_LOVELY_KISS - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_IMP, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_IMP, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS ; BATTLE_ANIM_OBJ_SWEET_KISS - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_CHERUB, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_ANGELS + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_CHERUB, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_ANGELS ; BATTLE_ANIM_OBJ_SKETCH - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLE_ANIM_FRAMESET_PENCIL, BATTLE_ANIM_FUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_OBJECTS + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $80, BATTLE_ANIM_FRAMESET_PENCIL, BATTLE_ANIM_FUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_GREEN, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_ENCORE_HAND - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLE_ANIM_FRAMESET_ENCORE_HAND, BATTLE_ANIM_FUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_OBJECTS + battleanimobj RELATIVE_X | OAM_XFLIP, $80, BATTLE_ANIM_FRAMESET_ENCORE_HAND, BATTLE_ANIM_FUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_ENCORE_STAR - battleanimobj RELATIVE_X | X_FLIP, $70, BATTLE_ANIM_FRAMESET_STAR, BATTLE_ANIM_FUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_OBJECTS + battleanimobj RELATIVE_X | OAM_XFLIP, $70, BATTLE_ANIM_FRAMESET_STAR, BATTLE_ANIM_FUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_DESTINY_BOND - battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLE_ANIM_FRAMESET_DESTINY_BOND, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS + battleanimobj RELATIVE_X | OAM_XFLIP, $c0, BATTLE_ANIM_FRAMESET_DESTINY_BOND, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS ; BATTLE_ANIM_OBJ_MORNING_SUN - battleanimobj RELATIVE_X | X_FLIP, $40, BATTLE_ANIM_FRAMESET_MORNING_SUN, BATTLE_ANIM_FUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SHINE + battleanimobj RELATIVE_X | OAM_XFLIP, $40, BATTLE_ANIM_FRAMESET_MORNING_SUN, BATTLE_ANIM_FUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SHINE ; BATTLE_ANIM_OBJ_GLIMMER battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_GLIMMER, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SHINE ; BATTLE_ANIM_OBJ_MOONLIGHT @@ -340,25 +340,25 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_HIDDEN_POWER battleanimobj RELATIVE_X, $88, BATTLE_ANIM_FRAMESET_CHARGE_ORB_1, BATTLE_ANIM_FUNC_HIDDEN_POWER, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_CHARGE ; BATTLE_ANIM_OBJ_CROSS_CHOP1 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CROSS_CHOP_1, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CROSS_CHOP_1, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_CROSS_CHOP2 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_CROSS_CHOP_2, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_CROSS_CHOP_2, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_CUT ; BATTLE_ANIM_OBJ_SANDSTORM - battleanimobj RELATIVE_X | X_FLIP, $00, BATTLE_ANIM_FRAMESET_SANDSTORM, BATTLE_ANIM_FUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_POWDER + battleanimobj RELATIVE_X | OAM_XFLIP, $00, BATTLE_ANIM_FRAMESET_SANDSTORM, BATTLE_ANIM_FUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_POWDER ; BATTLE_ANIM_OBJ_ZAP_CANNON - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_ZAP_CANNON, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_ZAP_CANNON, BATTLE_ANIM_FUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_LIGHTNING ; BATTLE_ANIM_OBJ_SPITE - battleanimobj RELATIVE_X | X_FLIP, $40, BATTLE_ANIM_FRAMESET_IMP, BATTLE_ANIM_FUNC_POWDER, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS + battleanimobj RELATIVE_X | OAM_XFLIP, $40, BATTLE_ANIM_FRAMESET_IMP, BATTLE_ANIM_FUNC_POWDER, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_ANGELS ; BATTLE_ANIM_OBJ_CURSE - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLE_ANIM_FRAMESET_CURSE_NAIL, BATTLE_ANIM_FUNC_CURSE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_OBJECTS + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $90, BATTLE_ANIM_FRAMESET_CURSE_NAIL, BATTLE_ANIM_FUNC_CURSE, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_OBJECTS ; BATTLE_ANIM_OBJ_PERISH_SONG battleanimobj ABSOLUTE_X, $00, BATTLE_ANIM_FRAMESET_MUSIC_NOTE_1, BATTLE_ANIM_FUNC_PERISH_SONG, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_NOISE ; BATTLE_ANIM_OBJ_FORESIGHT battleanimobj RELATIVE_X, $80, BATTLE_ANIM_FRAMESET_FORESIGHT_SHINE, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_SHINE ; BATTLE_ANIM_OBJ_RAPID_SPIN - battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLE_ANIM_FRAMESET_RAPID_SPIN, BATTLE_ANIM_FUNC_RAPID_SPIN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WIND + battleanimobj RELATIVE_X | OAM_XFLIP, $b8, BATTLE_ANIM_FRAMESET_RAPID_SPIN, BATTLE_ANIM_FUNC_RAPID_SPIN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WIND ; BATTLE_ANIM_OBJ_SWAGGER - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_SWAGGER, BATTLE_ANIM_FUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WIND + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_SWAGGER, BATTLE_ANIM_FUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WIND ; BATTLE_ANIM_OBJ_BELLY_DRUM_HAND battleanimobj RELATIVE_X, $a8, BATTLE_ANIM_FRAMESET_PALM, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HIT ; BATTLE_ANIM_OBJ_BELLY_DRUM_NOTE @@ -368,9 +368,9 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_BETA_PURSUIT battleanimobj RELATIVE_X, $a8, BATTLE_ANIM_FRAMESET_UPSIDE_DOWN_PUNCH, BATTLE_ANIM_FUNC_BETA_PURSUIT, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_HIT ; BATTLE_ANIM_OBJ_SHOOTING_SPARKLE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLE_ANIM_FRAMESET_GROWING_SPARKLE, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED + battleanimobj RELATIVE_X | OAM_XFLIP, $90, BATTLE_ANIM_FRAMESET_GROWING_SPARKLE, BATTLE_ANIM_FUNC_USER_TO_TARGET, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_SPEED ; BATTLE_ANIM_OBJ_RAIN - battleanimobj RELATIVE_X | X_FLIP, $00, BATTLE_ANIM_FRAMESET_RAIN, BATTLE_ANIM_FUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WATER + battleanimobj RELATIVE_X | OAM_XFLIP, $00, BATTLE_ANIM_FRAMESET_RAIN, BATTLE_ANIM_FUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_GRAY, BATTLE_ANIM_GFX_WATER ; BATTLE_ANIM_OBJ_B0 battleanimobj ABSOLUTE_X, $00, BATTLE_ANIM_FRAMESET_MIST, BATTLE_ANIM_FUNC_BATTLE_ANIM_OBJ_B0, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_HAZE ; BATTLE_ANIM_OBJ_PSYCH_UP @@ -378,11 +378,11 @@ BattleAnimObjects: ; BATTLE_ANIM_OBJ_ANCIENTPOWER battleanimobj RELATIVE_X, $b8, BATTLE_ANIM_FRAMESET_BIG_ROCK, BATTLE_ANIM_FUNC_ANCIENT_POWER, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_ROCKS ; BATTLE_ANIM_OBJ_AEROBLAST - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLE_ANIM_FRAMESET_AEROBLAST, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_AEROBLAST + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $98, BATTLE_ANIM_FRAMESET_AEROBLAST, BATTLE_ANIM_FUNC_NULL, PAL_BATTLE_OB_YELLOW, BATTLE_ANIM_GFX_AEROBLAST ; BATTLE_ANIM_OBJ_SHADOW_BALL - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLE_ANIM_FRAMESET_BARRAGE_BALL, BATTLE_ANIM_FUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_EGG + battleanimobj RELATIVE_X | OAM_XFLIP | OAM_YFLIP, $98, BATTLE_ANIM_FRAMESET_BARRAGE_BALL, BATTLE_ANIM_FUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_BLUE, BATTLE_ANIM_GFX_EGG ; BATTLE_ANIM_OBJ_ROCK_SMASH - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLE_ANIM_FRAMESET_BIG_ROCK, BATTLE_ANIM_FUNC_ROCK_SMASH, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_ROCKS + battleanimobj RELATIVE_X | OAM_XFLIP, $ff, BATTLE_ANIM_FRAMESET_BIG_ROCK, BATTLE_ANIM_FUNC_ROCK_SMASH, PAL_BATTLE_OB_BROWN, BATTLE_ANIM_GFX_ROCKS ; BATTLE_ANIM_OBJ_FLOWER battleanimobj RELATIVE_X, $90, BATTLE_ANIM_FRAMESET_FLOWER, BATTLE_ANIM_FUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, BATTLE_ANIM_GFX_FLOWER ; BATTLE_ANIM_OBJ_COTTON diff --git a/data/maps/roofs.asm b/data/maps/roofs.asm index e344b0cb..2c195b34 100644 --- a/data/maps/roofs.asm +++ b/data/maps/roofs.asm @@ -42,7 +42,7 @@ MapGroupRoofs: Roofs: ; entries correspond to ROOF_* constants - table_width ROOF_LENGTH * LEN_2BPP_TILE + table_width ROOF_LENGTH * TILE_SIZE INCBIN "gfx/tilesets/roofs/new_bark.2bpp" INCBIN "gfx/tilesets/roofs/violet.2bpp" INCBIN "gfx/tilesets/roofs/azalea.2bpp" diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm index ff9042f4..8ad1d74c 100644 --- a/data/pokemon/palettes.asm +++ b/data/pokemon/palettes.asm @@ -7,7 +7,7 @@ PokemonPalettes: ; Shiny palettes are defined directly, not generated. ; 2 middle palettes, front and shiny, with 2 colors each - table_width PAL_COLOR_SIZE * 2 * 2 + table_width COLOR_SIZE * 2 * 2 ; 000 RGB 30, 22, 17 diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm index 0f12aaab..aeb0eb9c 100644 --- a/data/sprite_anims/framesets.asm +++ b/data/sprite_anims/framesets.asm @@ -82,7 +82,7 @@ SpriteAnimFrameData: oamframe SPRITE_ANIM_OAMSET_RED_WALK_1, 8 oamframe SPRITE_ANIM_OAMSET_RED_WALK_2, 8 oamframe SPRITE_ANIM_OAMSET_RED_WALK_1, 8 - oamframe SPRITE_ANIM_OAMSET_RED_WALK_2, 8, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_RED_WALK_2, 8, B_OAM_XFLIP oamrestart .Frameset_GSIntroBubble: @@ -96,12 +96,12 @@ SpriteAnimFrameData: oamrestart .Frameset_GSIntroMagikarp: - oamframe SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1, 1, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2, 1, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1, 1, B_OAM_XFLIP + oamframe SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2, 1, B_OAM_XFLIP oamrestart .Frameset_UnusedIntroAerodactyl: - oamframe SPRITE_ANIM_OAMSET_UNUSED_INTRO_AERODACTYL, 7, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_UNUSED_INTRO_AERODACTYL, 7, B_OAM_XFLIP oamend .Frameset_GSIntroLapras: @@ -120,7 +120,7 @@ SpriteAnimFrameData: oamend .Frameset_GSIntroJigglypuff: - oamframe SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1, 25, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1, 25, B_OAM_XFLIP oamframe SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_3, 9 oamframe SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1, 25 oamframe SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_3, 9 @@ -166,7 +166,7 @@ SpriteAnimFrameData: oamdelete .Frameset_GSIntroCyndaquil: - oamframe SPRITE_ANIM_OAMSET_GS_INTRO_CYNDAQUIL, 24, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_GS_INTRO_CYNDAQUIL, 24, B_OAM_XFLIP oamdelete .Frameset_GSIntroTotodile: @@ -205,7 +205,7 @@ ENDC .Frameset_GSGameFreakLogoStar: oamframe SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_STAR, 3 - oamframe SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_STAR, 3, OAM_Y_FLIP + oamframe SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_STAR, 3, B_OAM_YFLIP oamrestart .Frameset_GSGameFreakLogoSparkle: @@ -218,8 +218,8 @@ ENDC .Frameset_SlotsGolem: oamframe SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7 oamframe SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7 - oamframe SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7, OAM_Y_FLIP - oamframe SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7, B_OAM_YFLIP + oamframe SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7, B_OAM_XFLIP oamrestart .Frameset_SlotsChansey: @@ -253,7 +253,7 @@ ENDC oamframe SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3 oamframe SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3 oamframe SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3 - oamframe SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, B_OAM_XFLIP oamrestart .Frameset_TradePoof: @@ -290,7 +290,7 @@ ENDC oamframe SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8 oamframe SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8 oamframe SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8 - oamframe SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8, B_OAM_XFLIP oamrestart .Frameset_Unknown1: ; unreferenced @@ -310,9 +310,9 @@ ENDC .Frameset_Unknown4: ; unreferenced oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1 - oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1, OAM_X_FLIP, OAM_Y_FLIP - oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1, OAM_Y_FLIP + oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1, B_OAM_XFLIP + oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1, B_OAM_XFLIP, B_OAM_YFLIP + oamframe SPRITE_ANIM_OAMSET_UNUSED_49, 1, B_OAM_YFLIP oamrestart .Frameset_Unknown5: ; unreferenced @@ -362,15 +362,15 @@ ENDC oamend .Frameset_EggHatch2: - oamframe SPRITE_ANIM_OAMSET_EGG_HATCH, 32, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_EGG_HATCH, 32, B_OAM_XFLIP oamend .Frameset_EggHatch3: - oamframe SPRITE_ANIM_OAMSET_EGG_HATCH, 32, OAM_Y_FLIP + oamframe SPRITE_ANIM_OAMSET_EGG_HATCH, 32, B_OAM_YFLIP oamend .Frameset_EggHatch4: - oamframe SPRITE_ANIM_OAMSET_EGG_HATCH, 32, OAM_X_FLIP, OAM_Y_FLIP + oamframe SPRITE_ANIM_OAMSET_EGG_HATCH, 32, B_OAM_XFLIP, B_OAM_YFLIP oamend .Frameset_GSIntroHoOhLugia: @@ -399,5 +399,5 @@ ENDC oamframe SPRITE_ANIM_OAMSET_TREE_1, 2 oamframe SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2 oamframe SPRITE_ANIM_OAMSET_TREE_1, 2 - oamframe SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2, B_OAM_XFLIP oamrestart diff --git a/data/sprite_anims/oam.asm b/data/sprite_anims/oam.asm index 1c2b506e..1cc5cc3a 100644 --- a/data/sprite_anims/oam.asm +++ b/data/sprite_anims/oam.asm @@ -123,37 +123,37 @@ ENDC .OAMData_GSGameFreakLogoStar: db 4 dbsprite -1, -1, 0, 0, $00, 0 - dbsprite 0, -1, 0, 0, $00, 0 | X_FLIP + dbsprite 0, -1, 0, 0, $00, 0 | OAM_XFLIP dbsprite -1, 0, 0, 0, $01, 0 - dbsprite 0, 0, 0, 0, $01, 0 | X_FLIP + dbsprite 0, 0, 0, 0, $01, 0 | OAM_XFLIP .OAMData_TradePokeBall1: db 4 - dbsprite -1, -1, 0, 0, $00, 0 | PRIORITY - dbsprite 0, -1, 0, 0, $00, 0 | X_FLIP | PRIORITY - dbsprite -1, 0, 0, 0, $01, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $01, 0 | X_FLIP | PRIORITY + dbsprite -1, -1, 0, 0, $00, 0 | OAM_PRIO + dbsprite 0, -1, 0, 0, $00, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 0, 0, 0, $01, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $01, 0 | OAM_XFLIP | OAM_PRIO .OAMData_GSIntroSmallFireball: db 4 dbsprite -1, -1, 0, 0, $00, 0 - dbsprite 0, -1, 0, 0, $00, 0 | X_FLIP - dbsprite -1, 0, 0, 0, $00, 0 | Y_FLIP - dbsprite 0, 0, 0, 0, $00, 0 | X_FLIP | Y_FLIP + dbsprite 0, -1, 0, 0, $00, 0 | OAM_XFLIP + dbsprite -1, 0, 0, 0, $00, 0 | OAM_YFLIP + dbsprite 0, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP .OAMData_TradeTubeBulge: db 4 dbsprite -1, -1, 0, 0, $00, 7 - dbsprite 0, -1, 0, 0, $00, 7 | X_FLIP - dbsprite -1, 0, 0, 0, $00, 7 | Y_FLIP - dbsprite 0, 0, 0, 0, $00, 7 | X_FLIP | Y_FLIP + dbsprite 0, -1, 0, 0, $00, 7 | OAM_XFLIP + dbsprite -1, 0, 0, 0, $00, 7 | OAM_YFLIP + dbsprite 0, 0, 0, 0, $00, 7 | OAM_XFLIP | OAM_YFLIP .OAMData_Unknown1: ; unreferenced db 4 - dbsprite -1, -1, 0, 0, $00, 0 | PRIORITY - dbsprite 0, -1, 0, 0, $00, 0 | X_FLIP | PRIORITY - dbsprite -1, 0, 0, 0, $00, 0 | Y_FLIP | PRIORITY - dbsprite 0, 0, 0, 0, $00, 0 | X_FLIP | Y_FLIP | PRIORITY + dbsprite -1, -1, 0, 0, $00, 0 | OAM_PRIO + dbsprite 0, -1, 0, 0, $00, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 0, 0, 0, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 0, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP | OAM_PRIO .OAMData_TradePoofBubble: db 16 @@ -161,18 +161,18 @@ ENDC dbsprite -1, -2, 0, 0, $01, 0 dbsprite -2, -1, 0, 0, $02, 0 dbsprite -1, -1, 0, 0, $03, 0 - dbsprite 0, -2, 0, 0, $01, 0 | X_FLIP - dbsprite 1, -2, 0, 0, $00, 0 | X_FLIP - dbsprite 0, -1, 0, 0, $03, 0 | X_FLIP - dbsprite 1, -1, 0, 0, $02, 0 | X_FLIP - dbsprite -2, 0, 0, 0, $02, 0 | Y_FLIP - dbsprite -1, 0, 0, 0, $03, 0 | Y_FLIP - dbsprite -2, 1, 0, 0, $00, 0 | Y_FLIP - dbsprite -1, 1, 0, 0, $01, 0 | Y_FLIP - dbsprite 0, 0, 0, 0, $03, 0 | X_FLIP | Y_FLIP - dbsprite 1, 0, 0, 0, $02, 0 | X_FLIP | Y_FLIP - dbsprite 0, 1, 0, 0, $01, 0 | X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 0, $00, 0 | X_FLIP | Y_FLIP + dbsprite 0, -2, 0, 0, $01, 0 | OAM_XFLIP + dbsprite 1, -2, 0, 0, $00, 0 | OAM_XFLIP + dbsprite 0, -1, 0, 0, $03, 0 | OAM_XFLIP + dbsprite 1, -1, 0, 0, $02, 0 | OAM_XFLIP + dbsprite -2, 0, 0, 0, $02, 0 | OAM_YFLIP + dbsprite -1, 0, 0, 0, $03, 0 | OAM_YFLIP + dbsprite -2, 1, 0, 0, $00, 0 | OAM_YFLIP + dbsprite -1, 1, 0, 0, $01, 0 | OAM_YFLIP + dbsprite 0, 0, 0, 0, $03, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 1, 0, 0, 0, $02, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 0, 0, $01, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP .OAMData_GSIntroBigFireball: db 36 @@ -185,33 +185,33 @@ ENDC dbsprite -3, -1, 0, 0, $06, 0 dbsprite -2, -1, 0, 0, $05, 0 dbsprite -1, -1, 0, 0, $05, 0 - dbsprite 0, -3, 0, 0, $02, 0 | X_FLIP - dbsprite 1, -3, 0, 0, $01, 0 | X_FLIP - dbsprite 2, -3, 0, 0, $00, 0 | X_FLIP - dbsprite 0, -2, 0, 0, $05, 0 | X_FLIP - dbsprite 1, -2, 0, 0, $04, 0 | X_FLIP - dbsprite 2, -2, 0, 0, $03, 0 | X_FLIP - dbsprite 0, -1, 0, 0, $05, 0 | X_FLIP - dbsprite 1, -1, 0, 0, $05, 0 | X_FLIP - dbsprite 2, -1, 0, 0, $06, 0 | X_FLIP - dbsprite -3, 0, 0, 0, $06, 0 | Y_FLIP - dbsprite -2, 0, 0, 0, $05, 0 | Y_FLIP - dbsprite -1, 0, 0, 0, $05, 0 | Y_FLIP - dbsprite -3, 1, 0, 0, $03, 0 | Y_FLIP - dbsprite -2, 1, 0, 0, $04, 0 | Y_FLIP - dbsprite -1, 1, 0, 0, $05, 0 | Y_FLIP - dbsprite -3, 2, 0, 0, $00, 0 | Y_FLIP - dbsprite -2, 2, 0, 0, $01, 0 | Y_FLIP - dbsprite -1, 2, 0, 0, $02, 0 | Y_FLIP - dbsprite 0, 0, 0, 0, $05, 0 | X_FLIP | Y_FLIP - dbsprite 1, 0, 0, 0, $05, 0 | X_FLIP | Y_FLIP - dbsprite 2, 0, 0, 0, $06, 0 | X_FLIP | Y_FLIP - dbsprite 0, 1, 0, 0, $05, 0 | X_FLIP | Y_FLIP - dbsprite 1, 1, 0, 0, $04, 0 | X_FLIP | Y_FLIP - dbsprite 2, 1, 0, 0, $03, 0 | X_FLIP | Y_FLIP - dbsprite 0, 2, 0, 0, $02, 0 | X_FLIP | Y_FLIP - dbsprite 1, 2, 0, 0, $01, 0 | X_FLIP | Y_FLIP - dbsprite 2, 2, 0, 0, $00, 0 | X_FLIP | Y_FLIP + dbsprite 0, -3, 0, 0, $02, 0 | OAM_XFLIP + dbsprite 1, -3, 0, 0, $01, 0 | OAM_XFLIP + dbsprite 2, -3, 0, 0, $00, 0 | OAM_XFLIP + dbsprite 0, -2, 0, 0, $05, 0 | OAM_XFLIP + dbsprite 1, -2, 0, 0, $04, 0 | OAM_XFLIP + dbsprite 2, -2, 0, 0, $03, 0 | OAM_XFLIP + dbsprite 0, -1, 0, 0, $05, 0 | OAM_XFLIP + dbsprite 1, -1, 0, 0, $05, 0 | OAM_XFLIP + dbsprite 2, -1, 0, 0, $06, 0 | OAM_XFLIP + dbsprite -3, 0, 0, 0, $06, 0 | OAM_YFLIP + dbsprite -2, 0, 0, 0, $05, 0 | OAM_YFLIP + dbsprite -1, 0, 0, 0, $05, 0 | OAM_YFLIP + dbsprite -3, 1, 0, 0, $03, 0 | OAM_YFLIP + dbsprite -2, 1, 0, 0, $04, 0 | OAM_YFLIP + dbsprite -1, 1, 0, 0, $05, 0 | OAM_YFLIP + dbsprite -3, 2, 0, 0, $00, 0 | OAM_YFLIP + dbsprite -2, 2, 0, 0, $01, 0 | OAM_YFLIP + dbsprite -1, 2, 0, 0, $02, 0 | OAM_YFLIP + dbsprite 0, 0, 0, 0, $05, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 1, 0, 0, 0, $05, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 2, 0, 0, 0, $06, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 0, 0, $05, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 0, $04, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 2, 1, 0, 0, $03, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 0, 2, 0, 0, $02, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 1, 2, 0, 0, $01, 0 | OAM_XFLIP | OAM_YFLIP + dbsprite 2, 2, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP .OAMData_Unused43_4A: db 9 @@ -320,10 +320,10 @@ ENDC .OAMData_MagnetTrainRed: db 4 - dbsprite -1, -1, 0, 0, $00, PAL_OW_RED | PRIORITY - dbsprite 0, -1, 0, 0, $01, PAL_OW_RED | PRIORITY - dbsprite -1, 0, 0, 0, $02, PAL_OW_RED | PRIORITY - dbsprite 0, 0, 0, 0, $03, PAL_OW_RED | PRIORITY + dbsprite -1, -1, 0, 0, $00, PAL_OW_RED | OAM_PRIO + dbsprite 0, -1, 0, 0, $01, PAL_OW_RED | OAM_PRIO + dbsprite -1, 0, 0, 0, $02, PAL_OW_RED | OAM_PRIO + dbsprite 0, 0, 0, 0, $03, PAL_OW_RED | OAM_PRIO .OAMData_PartyMonWithMail1: db 4 @@ -389,23 +389,23 @@ ENDC dbsprite -2, -1, 0, 0, $21, 0 dbsprite -1, -1, 0, 0, $22, 0 dbsprite 0, -1, 0, 0, $23, 0 - dbsprite -3, 0, 0, 0, $30, 0 | PRIORITY - dbsprite -2, 0, 0, 0, $31, 0 | PRIORITY - dbsprite -1, 0, 0, 0, $32, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $33, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $34, 0 | PRIORITY - dbsprite -3, 1, 0, 0, $40, 0 | PRIORITY - dbsprite -2, 1, 0, 0, $41, 0 | PRIORITY - dbsprite -1, 1, 0, 0, $42, 0 | PRIORITY - dbsprite 0, 1, 0, 0, $43, 0 | PRIORITY - dbsprite 1, 1, 0, 0, $44, 0 | PRIORITY - dbsprite 2, 1, 0, 0, $45, 0 | PRIORITY - dbsprite -3, 2, 0, 0, $50, 0 | PRIORITY - dbsprite -2, 2, 0, 0, $51, 0 | PRIORITY - dbsprite -1, 2, 0, 0, $52, 0 | PRIORITY - dbsprite 0, 2, 0, 0, $53, 0 | PRIORITY - dbsprite 1, 2, 0, 0, $54, 0 | PRIORITY - dbsprite 2, 2, 0, 0, $55, 0 | PRIORITY + dbsprite -3, 0, 0, 0, $30, 0 | OAM_PRIO + dbsprite -2, 0, 0, 0, $31, 0 | OAM_PRIO + dbsprite -1, 0, 0, 0, $32, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $33, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $34, 0 | OAM_PRIO + dbsprite -3, 1, 0, 0, $40, 0 | OAM_PRIO + dbsprite -2, 1, 0, 0, $41, 0 | OAM_PRIO + dbsprite -1, 1, 0, 0, $42, 0 | OAM_PRIO + dbsprite 0, 1, 0, 0, $43, 0 | OAM_PRIO + dbsprite 1, 1, 0, 0, $44, 0 | OAM_PRIO + dbsprite 2, 1, 0, 0, $45, 0 | OAM_PRIO + dbsprite -3, 2, 0, 0, $50, 0 | OAM_PRIO + dbsprite -2, 2, 0, 0, $51, 0 | OAM_PRIO + dbsprite -1, 2, 0, 0, $52, 0 | OAM_PRIO + dbsprite 0, 2, 0, 0, $53, 0 | OAM_PRIO + dbsprite 1, 2, 0, 0, $54, 0 | OAM_PRIO + dbsprite 2, 2, 0, 0, $55, 0 | OAM_PRIO .OAMData_GSIntroLapras2: db 27 @@ -419,23 +419,23 @@ ENDC dbsprite -2, -1, 0, 0, $21, 0 dbsprite -1, -1, 0, 0, $22, 0 dbsprite 0, -1, 0, 0, $23, 0 - dbsprite -3, 0, 0, 0, $30, 0 | PRIORITY - dbsprite -2, 0, 0, 0, $31, 0 | PRIORITY - dbsprite -1, 0, 0, 0, $32, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $33, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $34, 0 | PRIORITY - dbsprite -3, 1, 0, 0, $40, 0 | PRIORITY - dbsprite -2, 1, 0, 0, $41, 0 | PRIORITY - dbsprite -1, 1, 0, 0, $42, 0 | PRIORITY - dbsprite 0, 1, 0, 0, $43, 0 | PRIORITY - dbsprite 1, 1, 0, 0, $44, 0 | PRIORITY - dbsprite 2, 1, 0, 0, $45, 0 | PRIORITY - dbsprite -3, 2, 0, 0, $50, 0 | PRIORITY - dbsprite -2, 2, 0, 0, $51, 0 | PRIORITY - dbsprite -1, 2, 0, 0, $52, 0 | PRIORITY - dbsprite 0, 2, 0, 0, $53, 0 | PRIORITY - dbsprite 1, 2, 0, 0, $54, 0 | PRIORITY - dbsprite 2, 2, 0, 0, $55, 0 | PRIORITY + dbsprite -3, 0, 0, 0, $30, 0 | OAM_PRIO + dbsprite -2, 0, 0, 0, $31, 0 | OAM_PRIO + dbsprite -1, 0, 0, 0, $32, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $33, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $34, 0 | OAM_PRIO + dbsprite -3, 1, 0, 0, $40, 0 | OAM_PRIO + dbsprite -2, 1, 0, 0, $41, 0 | OAM_PRIO + dbsprite -1, 1, 0, 0, $42, 0 | OAM_PRIO + dbsprite 0, 1, 0, 0, $43, 0 | OAM_PRIO + dbsprite 1, 1, 0, 0, $44, 0 | OAM_PRIO + dbsprite 2, 1, 0, 0, $45, 0 | OAM_PRIO + dbsprite -3, 2, 0, 0, $50, 0 | OAM_PRIO + dbsprite -2, 2, 0, 0, $51, 0 | OAM_PRIO + dbsprite -1, 2, 0, 0, $52, 0 | OAM_PRIO + dbsprite 0, 2, 0, 0, $53, 0 | OAM_PRIO + dbsprite 1, 2, 0, 0, $54, 0 | OAM_PRIO + dbsprite 2, 2, 0, 0, $55, 0 | OAM_PRIO .OAMData_GSIntroLapras3: db 29 @@ -452,22 +452,22 @@ ENDC dbsprite -1, -1, 0, 0, $22, 0 dbsprite 0, -1, 0, 0, $23, 0 dbsprite 1, -1, 0, 0, $24, 0 - dbsprite -3, 0, 0, 0, $30, 0 | PRIORITY - dbsprite -2, 0, 0, 0, $31, 0 | PRIORITY - dbsprite -1, 0, 0, 0, $32, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $33, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $34, 0 | PRIORITY - dbsprite -3, 1, 0, 0, $40, 0 | PRIORITY - dbsprite -2, 1, 0, 0, $41, 0 | PRIORITY - dbsprite -1, 1, 0, 0, $42, 0 | PRIORITY - dbsprite 0, 1, 0, 0, $43, 0 | PRIORITY - dbsprite 1, 1, 0, 0, $44, 0 | PRIORITY - dbsprite 2, 1, 0, 0, $45, 0 | PRIORITY - dbsprite -2, 2, 0, 0, $51, 0 | PRIORITY - dbsprite -1, 2, 0, 0, $52, 0 | PRIORITY - dbsprite 0, 2, 0, 0, $53, 0 | PRIORITY - dbsprite 1, 2, 0, 0, $54, 0 | PRIORITY - dbsprite 2, 2, 0, 0, $55, 0 | PRIORITY + dbsprite -3, 0, 0, 0, $30, 0 | OAM_PRIO + dbsprite -2, 0, 0, 0, $31, 0 | OAM_PRIO + dbsprite -1, 0, 0, 0, $32, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $33, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $34, 0 | OAM_PRIO + dbsprite -3, 1, 0, 0, $40, 0 | OAM_PRIO + dbsprite -2, 1, 0, 0, $41, 0 | OAM_PRIO + dbsprite -1, 1, 0, 0, $42, 0 | OAM_PRIO + dbsprite 0, 1, 0, 0, $43, 0 | OAM_PRIO + dbsprite 1, 1, 0, 0, $44, 0 | OAM_PRIO + dbsprite 2, 1, 0, 0, $45, 0 | OAM_PRIO + dbsprite -2, 2, 0, 0, $51, 0 | OAM_PRIO + dbsprite -1, 2, 0, 0, $52, 0 | OAM_PRIO + dbsprite 0, 2, 0, 0, $53, 0 | OAM_PRIO + dbsprite 1, 2, 0, 0, $54, 0 | OAM_PRIO + dbsprite 2, 2, 0, 0, $55, 0 | OAM_PRIO .OAMData_GSIntroNote: db 2 @@ -496,9 +496,9 @@ ENDC .OAMData_TextEntryCursor: db 4 dbsprite -1, -1, 7, 7, $00, 0 - dbsprite 0, -1, 0, 7, $00, 0 | X_FLIP - dbsprite -1, 0, 7, 0, $00, 0 | Y_FLIP - dbsprite 0, 0, 0, 0, $00, 0 | X_FLIP | Y_FLIP + dbsprite 0, -1, 0, 7, $00, 0 | OAM_XFLIP + dbsprite -1, 0, 7, 0, $00, 0 | OAM_YFLIP + dbsprite 0, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP .OAMData_TextEntryCursorBig: db 10 @@ -506,90 +506,90 @@ ENDC dbsprite 1, -1, 0, 7, $01, 0 dbsprite 2, -1, 0, 7, $01, 0 dbsprite 3, -1, 0, 7, $01, 0 - dbsprite 4, -1, 0, 7, $00, 0 | X_FLIP - dbsprite 0, 0, 0, 0, $00, 0 | Y_FLIP - dbsprite 1, 0, 0, 0, $01, 0 | Y_FLIP - dbsprite 2, 0, 0, 0, $01, 0 | Y_FLIP - dbsprite 3, 0, 0, 0, $01, 0 | Y_FLIP - dbsprite 4, 0, 0, 0, $00, 0 | X_FLIP | Y_FLIP + dbsprite 4, -1, 0, 7, $00, 0 | OAM_XFLIP + dbsprite 0, 0, 0, 0, $00, 0 | OAM_YFLIP + dbsprite 1, 0, 0, 0, $01, 0 | OAM_YFLIP + dbsprite 2, 0, 0, 0, $01, 0 | OAM_YFLIP + dbsprite 3, 0, 0, 0, $01, 0 | OAM_YFLIP + dbsprite 4, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP .OAMData_GSGameFreakLogo: db 15 - dbsprite -2, -3, 4, 4, $00, 1 | OBP_NUM - dbsprite -1, -3, 4, 4, $01, 1 | OBP_NUM - dbsprite 0, -3, 4, 4, $02, 1 | OBP_NUM - dbsprite -2, -2, 4, 4, $03, 1 | OBP_NUM - dbsprite -1, -2, 4, 4, $04, 1 | OBP_NUM - dbsprite 0, -2, 4, 4, $05, 1 | OBP_NUM - dbsprite -2, -1, 4, 4, $06, 1 | OBP_NUM - dbsprite -1, -1, 4, 4, $07, 1 | OBP_NUM - dbsprite 0, -1, 4, 4, $08, 1 | OBP_NUM - dbsprite -2, 0, 4, 4, $09, 1 | OBP_NUM - dbsprite -1, 0, 4, 4, $0a, 1 | OBP_NUM - dbsprite 0, 0, 4, 4, $0b, 1 | OBP_NUM - dbsprite -2, 1, 4, 4, $0c, 1 | OBP_NUM - dbsprite -1, 1, 4, 4, $0d, 1 | OBP_NUM - dbsprite 0, 1, 4, 4, $0e, 1 | OBP_NUM + dbsprite -2, -3, 4, 4, $00, 1 | OAM_PAL1 + dbsprite -1, -3, 4, 4, $01, 1 | OAM_PAL1 + dbsprite 0, -3, 4, 4, $02, 1 | OAM_PAL1 + dbsprite -2, -2, 4, 4, $03, 1 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $04, 1 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $05, 1 | OAM_PAL1 + dbsprite -2, -1, 4, 4, $06, 1 | OAM_PAL1 + dbsprite -1, -1, 4, 4, $07, 1 | OAM_PAL1 + dbsprite 0, -1, 4, 4, $08, 1 | OAM_PAL1 + dbsprite -2, 0, 4, 4, $09, 1 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $0a, 1 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $0b, 1 | OAM_PAL1 + dbsprite -2, 1, 4, 4, $0c, 1 | OAM_PAL1 + dbsprite -1, 1, 4, 4, $0d, 1 | OAM_PAL1 + dbsprite 0, 1, 4, 4, $0e, 1 | OAM_PAL1 .OAMData_SlotsGolem: db 6 - dbsprite -2, -2, 4, 4, $00, 5 | OBP_NUM - dbsprite -1, -2, 4, 4, $02, 5 | OBP_NUM - dbsprite 0, -2, 4, 4, $00, 5 | OBP_NUM | X_FLIP - dbsprite -2, 0, 4, 4, $04, 5 | OBP_NUM - dbsprite -1, 0, 4, 4, $06, 5 | OBP_NUM - dbsprite 0, 0, 4, 4, $04, 5 | OBP_NUM | X_FLIP + dbsprite -2, -2, 4, 4, $00, 5 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $02, 5 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $00, 5 | OAM_PAL1 | OAM_XFLIP + dbsprite -2, 0, 4, 4, $04, 5 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $06, 5 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $04, 5 | OAM_PAL1 | OAM_XFLIP .OAMData_SlotsChansey1: db 6 - dbsprite -2, -2, 4, 4, $00, 6 | OBP_NUM - dbsprite -1, -2, 4, 4, $02, 6 | OBP_NUM - dbsprite 0, -2, 4, 4, $04, 6 | OBP_NUM - dbsprite -2, 0, 4, 4, $06, 6 | OBP_NUM - dbsprite -1, 0, 4, 4, $08, 6 | OBP_NUM - dbsprite 0, 0, 4, 4, $0a, 6 | OBP_NUM + dbsprite -2, -2, 4, 4, $00, 6 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $02, 6 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $04, 6 | OAM_PAL1 + dbsprite -2, 0, 4, 4, $06, 6 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $08, 6 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $0a, 6 | OAM_PAL1 .OAMData_SlotsChansey2: db 6 - dbsprite -2, -2, 4, 4, $00, 6 | OBP_NUM - dbsprite -1, -2, 4, 4, $02, 6 | OBP_NUM - dbsprite 0, -2, 4, 4, $04, 6 | OBP_NUM - dbsprite -2, 0, 4, 4, $0c, 6 | OBP_NUM - dbsprite -1, 0, 4, 4, $0e, 6 | OBP_NUM - dbsprite 0, 0, 4, 4, $10, 6 | OBP_NUM + dbsprite -2, -2, 4, 4, $00, 6 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $02, 6 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $04, 6 | OAM_PAL1 + dbsprite -2, 0, 4, 4, $0c, 6 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $0e, 6 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $10, 6 | OAM_PAL1 .OAMData_SlotsChansey3: db 6 - dbsprite -2, -2, 4, 4, $00, 6 | OBP_NUM - dbsprite -1, -2, 4, 4, $02, 6 | OBP_NUM - dbsprite 0, -2, 4, 4, $04, 6 | OBP_NUM - dbsprite -2, 0, 4, 4, $12, 6 | OBP_NUM - dbsprite -1, 0, 4, 4, $14, 6 | OBP_NUM - dbsprite 0, 0, 4, 4, $16, 6 | OBP_NUM + dbsprite -2, -2, 4, 4, $00, 6 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $02, 6 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $04, 6 | OAM_PAL1 + dbsprite -2, 0, 4, 4, $12, 6 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $14, 6 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $16, 6 | OAM_PAL1 .OAMData_SlotsChansey4: db 6 - dbsprite -2, -2, 4, 4, $00, 6 | OBP_NUM - dbsprite -1, -2, 4, 4, $02, 6 | OBP_NUM - dbsprite 0, -2, 4, 4, $04, 6 | OBP_NUM - dbsprite -2, 0, 4, 4, $18, 6 | OBP_NUM - dbsprite -1, 0, 4, 4, $1a, 6 | OBP_NUM - dbsprite 0, 0, 4, 4, $1c, 6 | OBP_NUM + dbsprite -2, -2, 4, 4, $00, 6 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $02, 6 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $04, 6 | OAM_PAL1 + dbsprite -2, 0, 4, 4, $18, 6 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $1a, 6 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $1c, 6 | OAM_PAL1 .OAMData_SlotsChansey5: db 6 - dbsprite -2, -2, 4, 4, $1e, 6 | OBP_NUM - dbsprite -1, -2, 4, 4, $20, 6 | OBP_NUM - dbsprite 0, -2, 4, 4, $22, 6 | OBP_NUM - dbsprite -2, 0, 4, 4, $24, 6 | OBP_NUM - dbsprite -1, 0, 4, 4, $26, 6 | OBP_NUM - dbsprite 0, 0, 4, 4, $28, 6 | OBP_NUM + dbsprite -2, -2, 4, 4, $1e, 6 | OAM_PAL1 + dbsprite -1, -2, 4, 4, $20, 6 | OAM_PAL1 + dbsprite 0, -2, 4, 4, $22, 6 | OAM_PAL1 + dbsprite -2, 0, 4, 4, $24, 6 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $26, 6 | OAM_PAL1 + dbsprite 0, 0, 4, 4, $28, 6 | OAM_PAL1 .OAMData_RadioTuningKnob: db 3 - dbsprite -1, -2, 4, 4, $00, 0 | OBP_NUM - dbsprite -1, -1, 4, 4, $00, 0 | OBP_NUM - dbsprite -1, 0, 4, 4, $00, 0 | OBP_NUM + dbsprite -1, -2, 4, 4, $00, 0 | OAM_PAL1 + dbsprite -1, -1, 4, 4, $00, 0 | OAM_PAL1 + dbsprite -1, 0, 4, 4, $00, 0 | OAM_PAL1 .OAMData_Unused4B: db 6 @@ -730,7 +730,7 @@ IF DEF(_GOLD) .OAMData_GSTitleTrail: db 1 - dbsprite -1, -1, 4, 4, $00, 1 | OBP_NUM + dbsprite -1, -1, 4, 4, $00, 1 | OAM_PAL1 ELIF DEF(_SILVER) .OAMData_GSIntroLugia1: diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm index ae6d7c36..52300510 100644 --- a/data/sprites/facings.asm +++ b/data/sprites/facings.asm @@ -60,10 +60,10 @@ FacingStepDown1: ; walking down 1 FacingStepDown3: ; walking down 2 db 4 ; # - db 0, 8, X_FLIP, $80 - db 0, 0, X_FLIP, $81 - db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $82 - db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $83 + db 0, 8, OAM_XFLIP, $80 + db 0, 0, OAM_XFLIP, $81 + db 8, 8, RELATIVE_ATTRIBUTES | OAM_XFLIP, $82 + db 8, 0, RELATIVE_ATTRIBUTES | OAM_XFLIP, $83 FacingStepUp0: FacingStepUp2: ; standing up @@ -82,10 +82,10 @@ FacingStepUp1: ; walking up 1 FacingStepUp3: ; walking up 2 db 4 ; # - db 0, 8, X_FLIP, $84 - db 0, 0, X_FLIP, $85 - db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $86 - db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $87 + db 0, 8, OAM_XFLIP, $84 + db 0, 0, OAM_XFLIP, $85 + db 8, 8, RELATIVE_ATTRIBUTES | OAM_XFLIP, $86 + db 8, 0, RELATIVE_ATTRIBUTES | OAM_XFLIP, $87 FacingStepLeft0: FacingStepLeft2: ; standing left @@ -98,10 +98,10 @@ FacingStepLeft2: ; standing left FacingStepRight0: FacingStepRight2: ; standing right db 4 ; # - db 0, 8, X_FLIP, $08 - db 0, 0, X_FLIP, $09 - db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a - db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b + db 0, 8, OAM_XFLIP, $08 + db 0, 0, OAM_XFLIP, $09 + db 8, 8, RELATIVE_ATTRIBUTES | OAM_XFLIP, $0a + db 8, 0, RELATIVE_ATTRIBUTES | OAM_XFLIP, $0b FacingStepLeft1: FacingStepLeft3: ; walking left @@ -114,10 +114,10 @@ FacingStepLeft3: ; walking left FacingStepRight1: FacingStepRight3: ; walking right db 4 ; # - db 0, 8, X_FLIP, $88 - db 0, 0, X_FLIP, $89 - db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $8a - db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $8b + db 0, 8, OAM_XFLIP, $88 + db 0, 0, OAM_XFLIP, $89 + db 8, 8, RELATIVE_ATTRIBUTES | OAM_XFLIP, $8a + db 8, 0, RELATIVE_ATTRIBUTES | OAM_XFLIP, $8b FacingFishDown: ; fishing down db 5 ; # @@ -141,14 +141,14 @@ FacingFishLeft: ; fishing left db 0, 8, 0, $09 db 8, 0, RELATIVE_ATTRIBUTES, $0a db 8, 8, RELATIVE_ATTRIBUTES, $0b - db 5, -8, ABSOLUTE_TILE_ID | X_FLIP, $fd + db 5, -8, ABSOLUTE_TILE_ID | OAM_XFLIP, $fd FacingFishRight: ; fishing right db 5 ; # - db 0, 8, X_FLIP, $08 - db 0, 0, X_FLIP, $09 - db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a - db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b + db 0, 8, OAM_XFLIP, $08 + db 0, 0, OAM_XFLIP, $09 + db 8, 8, RELATIVE_ATTRIBUTES | OAM_XFLIP, $0a + db 8, 0, RELATIVE_ATTRIBUTES | OAM_XFLIP, $0b db 5, 16, ABSOLUTE_TILE_ID, $fd FacingEmote: ; emote @@ -161,7 +161,7 @@ FacingEmote: ; emote FacingShadow: ; shadow db 2 ; # db 0, 0, ABSOLUTE_TILE_ID, $fc - db 0, 8, ABSOLUTE_TILE_ID | X_FLIP, $fc + db 0, 8, ABSOLUTE_TILE_ID | OAM_XFLIP, $fc FacingBigDollSymmetric: ; big snorlax or lapras doll db 16 ; # @@ -173,14 +173,14 @@ FacingBigDollSymmetric: ; big snorlax or lapras doll db 16, 8, 0, $05 db 24, 0, 0, $06 db 24, 8, 0, $07 - db 0, 24, X_FLIP, $00 - db 0, 16, X_FLIP, $01 - db 8, 24, X_FLIP, $02 - db 8, 16, X_FLIP, $03 - db 16, 24, X_FLIP, $04 - db 16, 16, X_FLIP, $05 - db 24, 24, X_FLIP, $06 - db 24, 16, X_FLIP, $07 + db 0, 24, OAM_XFLIP, $00 + db 0, 16, OAM_XFLIP, $01 + db 8, 24, OAM_XFLIP, $02 + db 8, 16, OAM_XFLIP, $03 + db 16, 24, OAM_XFLIP, $04 + db 16, 16, OAM_XFLIP, $05 + db 24, 24, OAM_XFLIP, $06 + db 24, 16, OAM_XFLIP, $07 FacingWeirdTree1: db 4 ; # @@ -191,10 +191,10 @@ FacingWeirdTree1: FacingWeirdTree3: db 4 ; # - db 0, 8, X_FLIP, $04 - db 0, 0, X_FLIP, $05 - db 8, 8, X_FLIP, $06 - db 8, 0, X_FLIP, $07 + db 0, 8, OAM_XFLIP, $04 + db 0, 0, OAM_XFLIP, $05 + db 8, 8, OAM_XFLIP, $06 + db 8, 0, OAM_XFLIP, $07 FacingBigDollAsymmetric: ; big doll other than snorlax or lapras db 14 ; # @@ -206,11 +206,11 @@ FacingBigDollAsymmetric: ; big doll other than snorlax or lapras db 24, 8, 0, $0a db 0, 24, 0, $03 db 0, 16, 0, $02 - db 8, 24, X_FLIP, $02 + db 8, 24, OAM_XFLIP, $02 db 8, 16, 0, $06 db 16, 24, 0, $09 db 16, 16, 0, $08 - db 24, 24, X_FLIP, $04 + db 24, 24, OAM_XFLIP, $04 db 24, 16, 0, $0b FacingBoulderDust1: ; boulder dust 1 @@ -230,9 +230,9 @@ FacingBoulderDust2: ; boulder dust 2 FacingGrass1: db 2 ; # db 8, 0, 0, $00 - db 8, 8, 0 | X_FLIP, $00 + db 8, 8, 0 | OAM_XFLIP, $00 FacingGrass2: db 2 ; # db 9, -1, 0, $00 - db 9, 9, 0 | X_FLIP, $00 + db 9, 9, 0 | OAM_XFLIP, $00 diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index f34b6e41..8761ac82 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -4,7 +4,7 @@ TrainerPalettes: ; Each .gbcpal is generated from the corresponding .png, and ; only the middle two colors are included, not black or white. - table_width PAL_COLOR_SIZE * 2 + table_width COLOR_SIZE * 2 PlayerPalette: ; Chris uses the same colors as Cal INCBIN "gfx/trainers/cal.gbcpal", middle_colors diff --git a/engine/battle/battle_transition.asm b/engine/battle/battle_transition.asm index 2a471722..07e44aa8 100644 --- a/engine/battle/battle_transition.asm +++ b/engine/battle/battle_transition.asm @@ -599,7 +599,7 @@ StartTrainerBattle_LoadPokeBallGraphics: call CopyBytes hlcoord 0, 0, wAttrmap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, PAL_BG_TEXT call ByteFill diff --git a/engine/battle/core.asm b/engine/battle/core.asm index ae0d8f10..321b20f6 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -7776,7 +7776,7 @@ StartBattle: call ShowLinkBattleParticipants farcall ClearBattleRAM ld hl, rLCDC - res rLCDC_WINDOW_TILEMAP, [hl] ; select vBGMap0/vBGMap2 + res B_LCDC_WIN_MAP, [hl] ; select vBGMap0/vBGMap2 ld a, [wOtherTrainerClass] and a jr nz, .trainer @@ -7797,7 +7797,7 @@ StartBattle: xor a ldh [hBGMapMode], a ld hl, rLCDC - set rLCDC_WINDOW_TILEMAP, [hl] ; select vBGMap1/vBGMap3 + set B_LCDC_WIN_MAP, [hl] ; select vBGMap1/vBGMap3 call EmptyBattleTextbox hlcoord 9, 7 lb bc, 5, 11 @@ -8091,7 +8091,7 @@ _DisplayLinkRecord: call CloseSRAM hlcoord 0, 0, wAttrmap xor a - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call ByteFill call WaitBGMap2 ld b, SCGB_DIPLOMA @@ -8583,13 +8583,13 @@ InitBattleDisplay: call OpenSRAM ld hl, sDecompressScratch - ld bc, BG_MAP_WIDTH * BG_MAP_HEIGHT + ld bc, TILEMAP_AREA ld a, " " call ByteFill ld de, sDecompressScratch hlbgcoord 0, 0 - lb bc, BANK(@), (BG_MAP_WIDTH * BG_MAP_HEIGHT) / LEN_2BPP_TILE + lb bc, BANK(@), (TILEMAP_AREA) / TILE_SIZE call Request2bpp call CloseSRAM diff --git a/engine/battle/sliding_intro.asm b/engine/battle/sliding_intro.asm index 1f4b0447..857a8894 100644 --- a/engine/battle/sliding_intro.asm +++ b/engine/battle/sliding_intro.asm @@ -32,7 +32,7 @@ BattleIntroSlidingPics: push bc ld hl, wShadowOAMSprite00XCoord ld c, $12 ; 18 - ld de, SPRITEOAMSTRUCT_LENGTH + ld de, OBJ_SIZE .loop2 dec [hl] dec [hl] diff --git a/engine/battle/trainer_huds.asm b/engine/battle/trainer_huds.asm index 4fdb8989..535d8844 100644 --- a/engine/battle/trainer_huds.asm +++ b/engine/battle/trainer_huds.asm @@ -41,7 +41,7 @@ ShowOTTrainerMonsRemaining: ld [hl], 4 * TILE_WIDTH ld a, -TILE_WIDTH ld [wPlaceBallsDirection], a - ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH + ld hl, wShadowOAMSprite00 + PARTY_LENGTH * OBJ_SIZE jp LoadTrainerHudOAM StageBallTilesData: @@ -197,7 +197,7 @@ LinkBattle_TrainerHuds: ld a, 10 * TILE_WIDTH ld [hli], a ld [hl], 13 * TILE_WIDTH - ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH + ld hl, wShadowOAMSprite00 + PARTY_LENGTH * OBJ_SIZE jp LoadTrainerHudOAM LoadTrainerHudOAM: diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm index 1ef549fe..2f2060e3 100644 --- a/engine/battle_anims/anim_commands.asm +++ b/engine/battle_anims/anim_commands.asm @@ -195,9 +195,9 @@ PlaceWindowOverBattleTextbox: ; unreferenced xor a ldh [hBGMapMode], a ; bgcoord hBGMapAddress, 0, 20 - ld a, LOW(vBGMap0 + 20 * BG_MAP_WIDTH) + ld a, LOW(vBGMap0 + 20 * TILEMAP_WIDTH) ldh [hBGMapAddress], a - ld a, HIGH(vBGMap0 + 20 * BG_MAP_WIDTH) + ld a, HIGH(vBGMap0 + 20 * TILEMAP_WIDTH) ldh [hBGMapAddress + 1], a call WaitBGMap2 ld a, (SCREEN_HEIGHT - TEXTBOX_HEIGHT) * TILE_WIDTH @@ -217,13 +217,13 @@ BattleAnim_ClearOAM: ; Instead of deleting the sprites, make them all use PAL_BATTLE_OB_ENEMY ld hl, wShadowOAMSprite00Attributes - ld c, NUM_SPRITE_OAM_STRUCTS + ld c, OAM_COUNT .loop ld a, [hl] - and ~(PALETTE_MASK | VRAM_BANK_1) ; zeros out the palette bits + and ~(OAM_PALETTE | OAM_BANK1) ; zeros out the palette bits assert PAL_BATTLE_OB_ENEMY == 0 ld [hli], a -rept SPRITEOAMSTRUCT_LENGTH - 1 +rept OBJ_SIZE - 1 inc hl endr dec c @@ -650,7 +650,7 @@ BattleAnimCmd_5GFX: .loop vc_hook Reduce_move_anim_flashing_PRESENT ld a, [wBattleAnimGFXTempTileID] - cp (vTiles1 - vTiles0) / LEN_2BPP_TILE - BATTLEANIM_BASE_TILE + cp (vTiles1 - vTiles0) / TILE_SIZE - BATTLEANIM_BASE_TILE ret nc call GetBattleAnimByte ld [hli], a diff --git a/engine/battle_anims/core.asm b/engine/battle_anims/core.asm index 9e314681..7271ffa5 100644 --- a/engine/battle_anims/core.asm +++ b/engine/battle_anims/core.asm @@ -89,7 +89,7 @@ BattleAnimOAMUpdate: ld hl, wBattleAnimTempOAMFlags ld a, [wBattleAnimTempFrameOAMFlags] xor [hl] - and PRIORITY | Y_FLIP | X_FLIP + and OAM_PRIO | OAM_YFLIP | OAM_XFLIP ld [hl], a pop af @@ -118,7 +118,7 @@ BattleAnimOAMUpdate: push hl ld a, [hl] ld hl, wBattleAnimTempOAMFlags - bit OAM_Y_FLIP, [hl] + bit B_OAM_YFLIP, [hl] jr z, .no_yflip add $8 xor $ff @@ -139,7 +139,7 @@ BattleAnimOAMUpdate: push hl ld a, [hl] ld hl, wBattleAnimTempOAMFlags - bit OAM_X_FLIP, [hl] + bit B_OAM_XFLIP, [hl] jr z, .no_xflip add $8 xor $ff @@ -164,14 +164,14 @@ BattleAnimOAMUpdate: ld b, a ld a, [hl] xor b - and PRIORITY | Y_FLIP | X_FLIP + and OAM_PRIO | OAM_YFLIP | OAM_XFLIP ld b, a ld a, [hl] - and OBP_NUM + and OAM_PAL1 or b ld b, a ld a, [wBattleAnimTempPalette] - and PALETTE_MASK | VRAM_BANK_1 + and OAM_PALETTE | OAM_BANK1 or b ld [de], a @@ -203,7 +203,7 @@ InitBattleAnimBuffer: add hl, bc ld a, [hl] - and PRIORITY + and OAM_PRIO ld [wBattleAnimTempOAMFlags], a xor a ld [wBattleAnimTempFrameOAMFlags], a diff --git a/engine/battle_anims/functions.asm b/engine/battle_anims/functions.asm index bb71beff..ba0d1d24 100644 --- a/engine/battle_anims/functions.asm +++ b/engine/battle_anims/functions.asm @@ -938,7 +938,7 @@ BattleAnimFunction_RazorLeaf: call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_OAMFLAGS add hl, bc - res OAM_X_FLIP, [hl] + res B_OAM_XFLIP, [hl] .four .five .six @@ -2649,7 +2649,7 @@ BattleAnimFunction_String: ; Obj Param 0 flips when used by enemy ld hl, BATTLEANIMSTRUCT_OAMFLAGS add hl, bc - set OAM_Y_FLIP, [hl] + set B_OAM_YFLIP, [hl] .not_param_zero assert BATTLE_ANIM_FRAMESET_STRING_SHOT_1 + 1 == BATTLE_ANIM_FRAMESET_STRING_SHOT_2 \ && BATTLE_ANIM_FRAMESET_STRING_SHOT_2 + 1 == BATTLE_ANIM_FRAMESET_STRING_SHOT_3 diff --git a/engine/battle_anims/helpers.asm b/engine/battle_anims/helpers.asm index 90d9feab..8cdd089c 100644 --- a/engine/battle_anims/helpers.asm +++ b/engine/battle_anims/helpers.asm @@ -37,14 +37,14 @@ GetBattleAnimFrame: push af ld a, [hl] push hl - and ~(Y_FLIP << 1 | X_FLIP << 1) + and ~(OAM_YFLIP << 1 | OAM_XFLIP << 1) ld hl, BATTLEANIMSTRUCT_DURATION add hl, bc ld [hl], a pop hl .okay ld a, [hl] - and Y_FLIP << 1 | X_FLIP << 1 ; The << 1 is compensated in the "oamframe" macro + and OAM_YFLIP << 1 | OAM_XFLIP << 1 ; The << 1 is compensated in the "oamframe" macro srl a ld [wBattleAnimTempFrameOAMFlags], a pop af diff --git a/engine/debug/color_picker.asm b/engine/debug/color_picker.asm index c03f6ad0..240e86bf 100644 --- a/engine/debug/color_picker.asm +++ b/engine/debug/color_picker.asm @@ -142,12 +142,12 @@ DebugColor_InitVRAM: call ByteFill hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA xor a call ByteFill hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA xor a call ByteFill @@ -189,7 +189,7 @@ DebugColor_InitPalettes: ld bc, 16 palettes call CopyBytes - ld a, 1 << rBGPI_AUTO_INCREMENT + ld a, BGPI_AUTOINC ldh [rBGPI], a ld hl, Palette_DebugBG ld c, 8 palettes @@ -199,7 +199,7 @@ DebugColor_InitPalettes: dec c jr nz, .bg_loop - ld a, 1 << rOBPI_AUTO_INCREMENT + ld a, OBPI_AUTOINC ldh [rOBPI], a ld hl, Palette_DebugOB ld c, 8 palettes @@ -292,7 +292,7 @@ DebugColor_InitScreen: xor a ldh [hBGMapMode], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, DEBUGTEST_BLACK call ByteFill hlcoord 1, 3 @@ -1080,11 +1080,11 @@ TilesetColorPicker: ; unreferenced ld a, HIGH(vBGMap1) ldh [hBGMapAddress + 1], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, DEBUGTEST_BLACK call ByteFill hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, PAL_BG_TEXT call ByteFill decoord 1, 1, 0 @@ -1176,7 +1176,7 @@ DebugColorMain2: ; unreferenced ld hl, wDebugTilesetCurPalette ld a, [hl] inc a - and PALETTE_MASK + and OAM_PALETTE cp PAL_BG_TEXT jr nz, .palette_ok xor a ; PAL_BG_GRAY @@ -1284,7 +1284,7 @@ DebugTileset_SelectColorBox: inc a .done - maskbits NUM_PAL_COLORS + maskbits PAL_COLORS ld [wDebugTilesetCurColor], a ld e, a ld d, 0 diff --git a/engine/debug/debug_room.asm b/engine/debug/debug_room.asm index 2aefb610..2e099ccc 100644 --- a/engine/debug/debug_room.asm +++ b/engine/debug/debug_room.asm @@ -1238,18 +1238,18 @@ DebugRoom_DayHTimeString: db "DAY HTIME@" DebugRoom_GetClock: - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a xor a - ld [MBC3LatchClock], a + ld [rRTCLATCH], a inc a - ld [MBC3LatchClock], a - ld b, RTC_DH - RTC_S + 1 - ld c, RTC_S + ld [rRTCLATCH], a + ld b, RAMB_RTC_DH - RAMB_RTC_S + 1 + ld c, RAMB_RTC_S .loop ld a, c - ld [MBC3SRamBank], a - ld a, [MBC3RTC] + ld [rRAMB], a + ld a, [rRTCREG] ld [hli], a inc c dec b @@ -1258,15 +1258,15 @@ DebugRoom_GetClock: ret DebugRoom_SetClock: - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a - ld b, RTC_DH - RTC_S + 1 - ld c, RTC_S + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a + ld b, RAMB_RTC_DH - RAMB_RTC_S + 1 + ld c, RAMB_RTC_S .loop ld a, c - ld [MBC3SRamBank], a + ld [rRAMB], a ld a, [hli] - ld [MBC3RTC], a + ld [rRTCREG], a inc c dec b jr nz, .loop diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm index a7e0b152..5fa2db84 100644 --- a/engine/events/diploma.asm +++ b/engine/events/diploma.asm @@ -19,7 +19,7 @@ PlaceDiplomaOnScreen: call Decompress ld hl, DiplomaPage1Tilemap decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyBytes ld de, .Player hlcoord 2, 5 @@ -57,12 +57,12 @@ PlaceDiplomaOnScreen: PrintDiplomaPage2: hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ld hl, DiplomaPage2Tilemap decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyBytes ld de, .GameFreak hlcoord 8, 0 diff --git a/engine/events/field_moves.asm b/engine/events/field_moves.asm index 93733491..1cbdbb9d 100644 --- a/engine/events/field_moves.asm +++ b/engine/events/field_moves.asm @@ -36,7 +36,7 @@ ShakeHeadbuttTree: ld hl, SPRITEANIMSTRUCT_TILE_ID add hl, bc ld [hl], FIELDMOVE_TREE - ld a, 36 * SPRITEOAMSTRUCT_LENGTH + ld a, 36 * OBJ_SIZE ld [wCurSpriteOAMAddr], a farcall DoNextFrameForAllSprites call HideHeadbuttTree @@ -51,7 +51,7 @@ ShakeHeadbuttTree: and a jr z, .done dec [hl] - ld a, 36 * SPRITEOAMSTRUCT_LENGTH + ld a, 36 * OBJ_SIZE ld [wCurSpriteOAMAddr], a farcall DoNextFrameForAllSprites call DelayFrame @@ -122,7 +122,7 @@ OWCutAnimation: ld a, [wJumptableIndex] bit JUMPTABLE_EXIT_F, a jr nz, .finish - ld a, 36 * SPRITEOAMSTRUCT_LENGTH + ld a, 36 * OBJ_SIZE ld [wCurSpriteOAMAddr], a callfar DoNextFrameForAllSprites call OWCutJumptable @@ -319,7 +319,7 @@ FlyFromAnim: ld a, [wJumptableIndex] bit JUMPTABLE_EXIT_F, a jr nz, .exit - ld a, 0 * SPRITEOAMSTRUCT_LENGTH + ld a, 0 * OBJ_SIZE ld [wCurSpriteOAMAddr], a callfar DoNextFrameForAllSprites call FlyFunction_FrameTimer @@ -356,7 +356,7 @@ FlyToAnim: ld a, [wJumptableIndex] bit JUMPTABLE_EXIT_F, a jr nz, .exit - ld a, 0 * SPRITEOAMSTRUCT_LENGTH + ld a, 0 * OBJ_SIZE ld [wCurSpriteOAMAddr], a callfar DoNextFrameForAllSprites call FlyFunction_FrameTimer @@ -375,7 +375,7 @@ FlyToAnim: ld c, 4 .OAMloop ld [hli], a ; tile id -rept SPRITEOAMSTRUCT_LENGTH - 1 +rept OBJ_SIZE - 1 inc hl endr inc a diff --git a/engine/events/halloffame.asm b/engine/events/halloffame.asm index 8eb1ecc7..42956890 100644 --- a/engine/events/halloffame.asm +++ b/engine/events/halloffame.asm @@ -231,7 +231,7 @@ AnimateHOFMonEntrance: ld hl, wTempMonDVs predef GetUnownLetter hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ld de, vTiles2 tile $31 @@ -255,7 +255,7 @@ AnimateHOFMonEntrance: xor a ld [wBoxAlignment], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill hlcoord 6, 5 @@ -448,7 +448,7 @@ DisplayHOFMon: ld a, "@" ld [wStringBuffer2 + MON_NAME_LENGTH - 1], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill hlcoord 0, 0 @@ -520,7 +520,7 @@ HOF_AnimatePlayerPic: lb bc, BANK(FontExtra), 1 call Request2bpp hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill @@ -550,7 +550,7 @@ HOF_AnimatePlayerPic: xor a ld [wBoxAlignment], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ld a, CAL diff --git a/engine/events/heal_machine_anim.asm b/engine/events/heal_machine_anim.asm index 1c240bdb..2a6ad946 100644 --- a/engine/events/heal_machine_anim.asm +++ b/engine/events/heal_machine_anim.asm @@ -134,25 +134,25 @@ ENDM ret .PC_ElmsLab_OAM: - dbsprite 4, 4, 2, 0, $7c, PAL_OW_TREE | OBP_NUM - dbsprite 4, 4, 6, 0, $7c, PAL_OW_TREE | OBP_NUM - dbsprite 4, 4, 0, 6, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 5, 4, 0, 6, $7d, PAL_OW_TREE | OBP_NUM | X_FLIP - dbsprite 4, 5, 0, 3, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 5, 5, 0, 3, $7d, PAL_OW_TREE | OBP_NUM | X_FLIP - dbsprite 4, 6, 0, 0, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 5, 6, 0, 0, $7d, PAL_OW_TREE | OBP_NUM | X_FLIP + dbsprite 4, 4, 2, 0, $7c, PAL_OW_TREE | OAM_PAL1 + dbsprite 4, 4, 6, 0, $7c, PAL_OW_TREE | OAM_PAL1 + dbsprite 4, 4, 0, 6, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 5, 4, 0, 6, $7d, PAL_OW_TREE | OAM_PAL1 | OAM_XFLIP + dbsprite 4, 5, 0, 3, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 5, 5, 0, 3, $7d, PAL_OW_TREE | OAM_PAL1 | OAM_XFLIP + dbsprite 4, 6, 0, 0, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 5, 6, 0, 0, $7d, PAL_OW_TREE | OAM_PAL1 | OAM_XFLIP .HealMachineGFX: INCBIN "gfx/overworld/heal_machine.2bpp" .HOF_OAM: - dbsprite 10, 7, 1, 4, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 10, 7, 6, 4, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 9, 7, 5, 3, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 11, 7, 2, 3, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 9, 7, 1, 1, $7d, PAL_OW_TREE | OBP_NUM - dbsprite 11, 7, 5, 1, $7d, PAL_OW_TREE | OBP_NUM + dbsprite 10, 7, 1, 4, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 10, 7, 6, 4, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 9, 7, 5, 3, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 11, 7, 2, 3, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 9, 7, 1, 1, $7d, PAL_OW_TREE | OAM_PAL1 + dbsprite 11, 7, 5, 1, $7d, PAL_OW_TREE | OAM_PAL1 .LoadPalettes: call IsCGB diff --git a/engine/events/magnet_train.asm b/engine/events/magnet_train.asm index 325a7009..4d26311b 100644 --- a/engine/events/magnet_train.asm +++ b/engine/events/magnet_train.asm @@ -167,7 +167,7 @@ DrawMagnetTrain: xor a .loop call GetMagnetTrainBGTiles - ld b, BG_MAP_WIDTH / 2 + ld b, TILEMAP_WIDTH / 2 call .FillAlt inc a cp SCREEN_HEIGHT @@ -244,19 +244,19 @@ SetMagnetTrainPals: ; bushes hlbgcoord 0, 0 - ld bc, 4 * BG_MAP_WIDTH + ld bc, 4 * TILEMAP_WIDTH ld a, PAL_BG_GREEN call ByteFill ; train hlbgcoord 0, 4 - ld bc, 10 * BG_MAP_WIDTH + ld bc, 10 * TILEMAP_WIDTH xor a ; PAL_BG_GRAY call ByteFill ; more bushes hlbgcoord 0, 14 - ld bc, 4 * BG_MAP_WIDTH + ld bc, 4 * TILEMAP_WIDTH ld a, PAL_BG_GREEN call ByteFill diff --git a/engine/events/print_unown.asm b/engine/events/print_unown.asm index 1c261d6e..54db9037 100644 --- a/engine/events/print_unown.asm +++ b/engine/events/print_unown.asm @@ -204,7 +204,7 @@ INCBIN "gfx/printer/bold_b.1bpp" PlaceUnownPrinterFrontpic: hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill hlcoord 7, 11 diff --git a/engine/events/print_unown_2.asm b/engine/events/print_unown_2.asm index aae80b11..7d931635 100644 --- a/engine/events/print_unown_2.asm +++ b/engine/events/print_unown_2.asm @@ -22,7 +22,7 @@ RotateUnownFrontpic: ld hl, wPrintedUnownTileDest call .Copy pop hl - ld bc, LEN_2BPP_TILE + ld bc, TILE_SIZE add hl, bc pop bc inc c @@ -44,7 +44,7 @@ RotateUnownFrontpic: ret .Copy: - ld c, LEN_2BPP_TILE + ld c, TILE_SIZE .loop_copy ld a, [hli] ld [de], a diff --git a/engine/games/card_flip.asm b/engine/games/card_flip.asm index 7ab4823a..c0004016 100644 --- a/engine/games/card_flip.asm +++ b/engine/games/card_flip.asm @@ -502,7 +502,7 @@ CardFlip_InitTilemap: xor a ldh [hBGMapMode], a hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, $29 call ByteFill hlcoord 9, 0 @@ -1149,25 +1149,25 @@ PlaceOAMCardBorder: dbsprite 1, 0, 0, 0, $06, 0 dbsprite 2, 0, 0, 0, $06, 0 dbsprite 3, 0, 0, 0, $06, 0 - dbsprite 4, 0, 0, 0, $04, 0 | X_FLIP + dbsprite 4, 0, 0, 0, $04, 0 | OAM_XFLIP dbsprite 0, 1, 0, 0, $05, 0 - dbsprite 4, 1, 0, 0, $05, 0 | X_FLIP + dbsprite 4, 1, 0, 0, $05, 0 | OAM_XFLIP dbsprite 0, 2, 0, 0, $05, 0 - dbsprite 4, 2, 0, 0, $05, 0 | X_FLIP + dbsprite 4, 2, 0, 0, $05, 0 | OAM_XFLIP dbsprite 0, 3, 0, 0, $05, 0 - dbsprite 4, 3, 0, 0, $05, 0 | X_FLIP + dbsprite 4, 3, 0, 0, $05, 0 | OAM_XFLIP dbsprite 0, 4, 0, 0, $05, $00 - dbsprite 4, 4, 0, 0, $05, 0 | X_FLIP + dbsprite 4, 4, 0, 0, $05, 0 | OAM_XFLIP - dbsprite 0, 5, 0, 0, $04, 0 | Y_FLIP - dbsprite 1, 5, 0, 0, $06, 0 | Y_FLIP - dbsprite 2, 5, 0, 0, $06, 0 | Y_FLIP - dbsprite 3, 5, 0, 0, $06, 0 | Y_FLIP - dbsprite 4, 5, 0, 0, $04, 0 | X_FLIP | Y_FLIP + dbsprite 0, 5, 0, 0, $04, 0 | OAM_YFLIP + dbsprite 1, 5, 0, 0, $06, 0 | OAM_YFLIP + dbsprite 2, 5, 0, 0, $06, 0 | OAM_YFLIP + dbsprite 3, 5, 0, 0, $06, 0 | OAM_YFLIP + dbsprite 4, 5, 0, 0, $04, 0 | OAM_XFLIP | OAM_YFLIP ChooseCard_HandleJoypad: ld hl, hJoyLast @@ -1400,145 +1400,145 @@ ENDM .SingleTile: db 6 - dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 0, 7, 5, $00, 0 | Y_FLIP | PRIORITY - dbsprite 0, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY - dbsprite 1, 0, 0, 5, $03, 0 | PRIORITY + dbsprite -1, 0, 7, 0, $00, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 0, 7, 5, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 0, 0, 0, 5, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 1, 0, 0, 5, $03, 0 | OAM_PRIO .PokeGroup: db 26 - dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $00, 0 | X_FLIP | PRIORITY - dbsprite -1, 1, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 1, 0, 0, $01, 0 | X_FLIP | PRIORITY - dbsprite -1, 2, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 2, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 3, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 3, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 4, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 4, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 5, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 5, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 6, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 6, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 7, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 7, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 8, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 8, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 9, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 9, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 10, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 10, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 10, 7, 1, $00, 0 | Y_FLIP | PRIORITY - dbsprite 0, 10, 0, 1, $02, 0 | Y_FLIP | PRIORITY - dbsprite 1, 10, 0, 1, $03, 0 | PRIORITY + dbsprite -1, 0, 7, 0, $00, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 1, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 1, 0, 0, $01, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 2, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 2, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 3, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 3, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 4, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 4, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 5, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 5, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 6, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 6, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 7, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 7, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 8, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 8, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 9, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 9, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 10, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 10, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 10, 7, 1, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 0, 10, 0, 1, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 1, 10, 0, 1, $03, 0 | OAM_PRIO .NumGroup: db 20 - dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY - dbsprite 0, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 2, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 4, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 5, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 6, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 7, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 8, 0, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 0, 7, 5, $00, 0 | Y_FLIP | PRIORITY - dbsprite 0, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY - dbsprite 1, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY - dbsprite 2, 0, 0, 5, $03, 0 | PRIORITY - dbsprite 3, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY - dbsprite 4, 0, 0, 5, $03, 0 | PRIORITY - dbsprite 5, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY - dbsprite 6, 0, 0, 5, $03, 0 | PRIORITY - dbsprite 7, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY - dbsprite 8, 0, 0, 5, $03, 0 | PRIORITY + dbsprite -1, 0, 7, 0, $00, 0 | OAM_PRIO + dbsprite 0, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 2, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 4, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 5, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 6, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 7, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 8, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 0, 7, 5, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 0, 0, 0, 5, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 1, 0, 0, 5, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 2, 0, 0, 5, $03, 0 | OAM_PRIO + dbsprite 3, 0, 0, 5, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 4, 0, 0, 5, $03, 0 | OAM_PRIO + dbsprite 5, 0, 0, 5, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 6, 0, 0, 5, $03, 0 | OAM_PRIO + dbsprite 7, 0, 0, 5, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 8, 0, 0, 5, $03, 0 | OAM_PRIO .NumGroupPair: db 30 - dbsprite 0, 0, 0, 0, $00, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 2, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 3, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 4, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 5, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 6, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 7, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 8, 0, 0, 0, $02, 0 | PRIORITY - dbsprite 9, 0, 0, 0, $03, 0 | PRIORITY - dbsprite 0, 1, 0, 0, $01, 0 | PRIORITY - dbsprite 3, 1, 0, 0, $03, 0 | PRIORITY - dbsprite 5, 1, 0, 0, $03, 0 | PRIORITY - dbsprite 7, 1, 0, 0, $03, 0 | PRIORITY - dbsprite 9, 1, 0, 0, $03, 0 | PRIORITY - dbsprite 0, 2, 0, 0, $01, 0 | PRIORITY - dbsprite 3, 2, 0, 0, $03, 0 | PRIORITY - dbsprite 5, 2, 0, 0, $03, 0 | PRIORITY - dbsprite 7, 2, 0, 0, $03, 0 | PRIORITY - dbsprite 9, 2, 0, 0, $03, 0 | PRIORITY - dbsprite 0, 2, 0, 1, $00, 0 | Y_FLIP | PRIORITY - dbsprite 1, 2, 0, 1, $02, 0 | Y_FLIP | PRIORITY - dbsprite 2, 2, 0, 1, $02, 0 | Y_FLIP | PRIORITY - dbsprite 3, 2, 0, 1, $03, 0 | PRIORITY - dbsprite 4, 2, 0, 1, $03, 0 | PRIORITY - dbsprite 5, 2, 0, 1, $03, 0 | PRIORITY - dbsprite 6, 2, 0, 1, $03, 0 | PRIORITY - dbsprite 7, 2, 0, 1, $03, 0 | PRIORITY - dbsprite 8, 2, 0, 1, $03, 0 | PRIORITY - dbsprite 9, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 0, 0, 0, 0, $00, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 2, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 3, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 4, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 5, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 6, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 7, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 8, 0, 0, 0, $02, 0 | OAM_PRIO + dbsprite 9, 0, 0, 0, $03, 0 | OAM_PRIO + dbsprite 0, 1, 0, 0, $01, 0 | OAM_PRIO + dbsprite 3, 1, 0, 0, $03, 0 | OAM_PRIO + dbsprite 5, 1, 0, 0, $03, 0 | OAM_PRIO + dbsprite 7, 1, 0, 0, $03, 0 | OAM_PRIO + dbsprite 9, 1, 0, 0, $03, 0 | OAM_PRIO + dbsprite 0, 2, 0, 0, $01, 0 | OAM_PRIO + dbsprite 3, 2, 0, 0, $03, 0 | OAM_PRIO + dbsprite 5, 2, 0, 0, $03, 0 | OAM_PRIO + dbsprite 7, 2, 0, 0, $03, 0 | OAM_PRIO + dbsprite 9, 2, 0, 0, $03, 0 | OAM_PRIO + dbsprite 0, 2, 0, 1, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 1, 2, 0, 1, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 2, 2, 0, 1, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 3, 2, 0, 1, $03, 0 | OAM_PRIO + dbsprite 4, 2, 0, 1, $03, 0 | OAM_PRIO + dbsprite 5, 2, 0, 1, $03, 0 | OAM_PRIO + dbsprite 6, 2, 0, 1, $03, 0 | OAM_PRIO + dbsprite 7, 2, 0, 1, $03, 0 | OAM_PRIO + dbsprite 8, 2, 0, 1, $03, 0 | OAM_PRIO + dbsprite 9, 2, 0, 1, $03, 0 | OAM_PRIO .PokeGroupPair: db 38 - dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY - dbsprite 3, 0, 0, 0, $00, 0 | X_FLIP | PRIORITY - dbsprite -1, 1, 7, 0, $01, 0 | PRIORITY - dbsprite 3, 1, 0, 0, $01, 0 | X_FLIP | PRIORITY - dbsprite -1, 2, 7, 0, $01, 0 | PRIORITY - dbsprite 3, 2, 0, 0, $01, 0 | X_FLIP | PRIORITY - dbsprite -1, 3, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 3, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 3, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 4, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 4, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 4, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 5, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 5, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 5, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 6, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 6, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 6, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 7, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 7, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 7, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 8, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 8, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 8, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 9, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 9, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 9, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 10, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 10, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 10, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 11, 7, 0, $01, 0 | PRIORITY - dbsprite 1, 11, 0, 0, $03, 0 | PRIORITY - dbsprite 3, 11, 0, 0, $03, 0 | PRIORITY - dbsprite -1, 11, 7, 1, $00, 0 | Y_FLIP | PRIORITY - dbsprite 0, 11, 0, 1, $02, 0 | Y_FLIP | PRIORITY - dbsprite 1, 11, 0, 1, $03, 0 | Y_FLIP | PRIORITY - dbsprite 2, 11, 0, 1, $02, 0 | Y_FLIP | PRIORITY - dbsprite 3, 11, 0, 1, $03, 0 | X_FLIP | Y_FLIP | PRIORITY + dbsprite -1, 0, 7, 0, $00, 0 | OAM_PRIO + dbsprite 3, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 1, 7, 0, $01, 0 | OAM_PRIO + dbsprite 3, 1, 0, 0, $01, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 2, 7, 0, $01, 0 | OAM_PRIO + dbsprite 3, 2, 0, 0, $01, 0 | OAM_XFLIP | OAM_PRIO + dbsprite -1, 3, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 3, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 3, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 4, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 4, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 4, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 5, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 5, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 5, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 6, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 6, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 6, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 7, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 7, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 7, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 8, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 8, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 8, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 9, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 9, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 9, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 10, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 10, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 10, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 11, 7, 0, $01, 0 | OAM_PRIO + dbsprite 1, 11, 0, 0, $03, 0 | OAM_PRIO + dbsprite 3, 11, 0, 0, $03, 0 | OAM_PRIO + dbsprite -1, 11, 7, 1, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 0, 11, 0, 1, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 1, 11, 0, 1, $03, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 2, 11, 0, 1, $02, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 3, 11, 0, 1, $03, 0 | OAM_XFLIP | OAM_YFLIP | OAM_PRIO .Impossible: db 4 - dbsprite 0, 0, 0, 0, $00, 0 | PRIORITY - dbsprite 1, 0, 0, 0, $00, 0 | X_FLIP | PRIORITY - dbsprite 0, 1, 0, 0, $00, 0 | Y_FLIP | PRIORITY - dbsprite 1, 1, 0, 0, $00, 0 | X_FLIP | Y_FLIP | PRIORITY + dbsprite 0, 0, 0, 0, $00, 0 | OAM_PRIO + dbsprite 1, 0, 0, 0, $00, 0 | OAM_XFLIP | OAM_PRIO + dbsprite 0, 1, 0, 0, $00, 0 | OAM_YFLIP | OAM_PRIO + dbsprite 1, 1, 0, 0, $00, 0 | OAM_XFLIP | OAM_YFLIP | OAM_PRIO CardFlip_InitAttrPals: ldh a, [hCGB] @@ -1546,7 +1546,7 @@ CardFlip_InitAttrPals: ret z hlcoord 0, 0, wAttrmap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA xor a call ByteFill diff --git a/engine/games/memory_game.asm b/engine/games/memory_game.asm index 2652c32c..c352ba1e 100644 --- a/engine/games/memory_game.asm +++ b/engine/games/memory_game.asm @@ -24,7 +24,7 @@ _MemoryGame: ld [hli], a ld [hl], $00 hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA xor a call ByteFill xor a @@ -447,7 +447,7 @@ MemoryGame_DeleteCard: MemoryGame_InitStrings: hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, $1 call ByteFill hlcoord 0, 0 diff --git a/engine/games/slot_machine.asm b/engine/games/slot_machine.asm index 1c991f11..e8b52345 100644 --- a/engine/games/slot_machine.asm +++ b/engine/games/slot_machine.asm @@ -96,7 +96,7 @@ _SlotMachine: ld hl, wOptions res NO_TEXT_SCROLL, [hl] ld hl, rLCDC - res rLCDC_SPRITE_SIZE, [hl] ; 8x8 + res B_LCDC_OBJ_SIZE, [hl] ; 8x8 ret .InitGFX: @@ -141,7 +141,7 @@ _SlotMachine: call CopyBytes ld hl, rLCDC - set rLCDC_SPRITE_SIZE, [hl] ; 8x16 + set B_LCDC_OBJ_SIZE, [hl] ; 8x16 call EnableLCD ld hl, wSlots ld bc, wSlotsEnd - wSlots @@ -260,12 +260,12 @@ AnimateSlotReelIcons: ; unreferenced and $7 ret nz ld hl, wShadowOAMSprite16TileID - ld c, NUM_SPRITE_OAM_STRUCTS - 16 + ld c, OAM_COUNT - 16 .loop ld a, [hl] xor $20 ; alternate between $00-$1f and $20-$3f ld [hli], a ; tile id -rept SPRITEOAMSTRUCT_LENGTH - 1 +rept OBJ_SIZE - 1 inc hl endr dec c @@ -826,7 +826,7 @@ Slots_UpdateReelPositionAndOAM: ld [hli], a ; tile id srl a srl a - set OAM_PRIORITY, a + set B_OAM_PRIO, a ld [hli], a ; attributes ld a, [wCurReelYCoord] @@ -840,7 +840,7 @@ Slots_UpdateReelPositionAndOAM: ld [hli], a ; tile id srl a srl a - set OAM_PRIORITY, a + set B_OAM_PRIO, a ld [hli], a ; attributes inc de ld a, [wCurReelYCoord] diff --git a/engine/games/unown_puzzle.asm b/engine/games/unown_puzzle.asm index 56af8bb7..77054421 100644 --- a/engine/games/unown_puzzle.asm +++ b/engine/games/unown_puzzle.asm @@ -27,7 +27,7 @@ _UnownPuzzle: call Decompress call LoadUnownPuzzlePiecesGFX hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, PUZZLE_BORDER call ByteFill hlcoord 4, 3 @@ -557,13 +557,13 @@ RedrawUnownPuzzlePieces: .OAM_NotHoldingPiece: dbsprite -1, -1, -4, -4, $00, 0 dbsprite 0, -1, -4, -4, $01, 0 - dbsprite 0, -1, 4, -4, $00, 0 | X_FLIP + dbsprite 0, -1, 4, -4, $00, 0 | OAM_XFLIP dbsprite -1, 0, -4, -4, $02, 0 dbsprite 0, 0, -4, -4, $03, 0 - dbsprite 0, 0, 4, -4, $02, 0 | X_FLIP - dbsprite -1, 0, -4, 4, $00, 0 | Y_FLIP - dbsprite 0, 0, -4, 4, $01, 0 | Y_FLIP - dbsprite 0, 0, 4, 4, $00, 0 | X_FLIP | Y_FLIP + dbsprite 0, 0, 4, -4, $02, 0 | OAM_XFLIP + dbsprite -1, 0, -4, 4, $00, 0 | OAM_YFLIP + dbsprite 0, 0, -4, 4, $01, 0 | OAM_YFLIP + dbsprite 0, 0, 4, 4, $00, 0 | OAM_XFLIP | OAM_YFLIP db -1 UnownPuzzleCoordData: diff --git a/engine/gfx/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm index b9574fba..998b4f79 100644 --- a/engine/gfx/cgb_layouts.asm +++ b/engine/gfx/cgb_layouts.asm @@ -120,7 +120,7 @@ _CGB_FinishBattleScreenLayout: ld bc, 1 palettes call CopyBytes hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, PAL_BATTLE_BG_ENEMY_HP call ByteFill hlcoord 0, 4, wAttrmap @@ -615,7 +615,7 @@ _CGB_TrainerCard: ; card border hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, $1 ; falkner call ByteFill ; trainer sprite area diff --git a/engine/gfx/color.asm b/engine/gfx/color.asm index 9d6c7956..9d63ef40 100644 --- a/engine/gfx/color.asm +++ b/engine/gfx/color.asm @@ -450,7 +450,7 @@ LoadPalette_White_Col1_Col2_Black: ld [de], a inc de - ld c, 2 * PAL_COLOR_SIZE + ld c, 2 * COLOR_SIZE .loop ld a, [hli] ld [de], a @@ -509,7 +509,7 @@ ResetBGPals: WipeAttrmap: hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA xor a call ByteFill ret @@ -523,7 +523,7 @@ ApplyPals: ApplyAttrmap: ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a jr z, .UpdateVBank1 ldh a, [hBGMapMode] push af @@ -551,7 +551,7 @@ ApplyAttrmap: inc de dec c jr nz, .col - ld a, BG_MAP_WIDTH - SCREEN_WIDTH + ld a, TILEMAP_WIDTH - SCREEN_WIDTH add e jr nc, .okay inc d @@ -647,7 +647,7 @@ CGBCopyBattleObjectPals: ; unreferenced call CheckCGB ret z ld hl, BattleObjectPals - ld a, (1 << rOBPI_AUTO_INCREMENT) | $10 + ld a, OBPI_AUTOINC | $10 ldh [rOBPI], a ld c, 6 palettes .loop @@ -667,7 +667,7 @@ INCLUDE "gfx/battle_anims/battle_anims.pal" CGBCopyTwoPredefObjectPals: ; unreferenced call CheckCGB ret z - ld a, (1 << rOBPI_AUTO_INCREMENT) | $10 + ld a, OBPI_AUTOINC | $10 ldh [rOBPI], a ld a, PREDEFPAL_TRADE_TUBE call GetPredefPal @@ -807,7 +807,7 @@ InitCGBPals:: call ByteFill ld a, BANK(vTiles0) ldh [rVBK], a - ld a, 1 << rBGPI_AUTO_INCREMENT + ld a, BGPI_AUTOINC ldh [rBGPI], a ld c, 4 * TILE_WIDTH .bgpals_loop @@ -817,7 +817,7 @@ InitCGBPals:: ldh [rBGPD], a dec c jr nz, .bgpals_loop - ld a, 1 << rOBPI_AUTO_INCREMENT + ld a, OBPI_AUTOINC ldh [rOBPI], a ld c, 4 * TILE_WIDTH .obpals_loop @@ -955,7 +955,7 @@ endr SGBBorder_PushBGPals: call DisableLCD - ld a, %11100100 + ld a, BGP_SGB_TRANSFER ldh [rBGP], a ld hl, PredefPals ld de, vTiles1 @@ -972,7 +972,7 @@ SGBBorder_PushBGPals: SGBBorder_MorePalPushing: call DisableLCD - ld a, $e4 + ld a, BGP_SGB_TRANSFER ldh [rBGP], a ld de, vTiles1 ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 @@ -1006,7 +1006,7 @@ SGBBorder_MorePalPushing: SGBBorder_YetMorePalPushing: call DisableLCD - ld a, %11100100 + ld a, BGP_SGB_TRANSFER ldh [rBGP], a ld de, vTiles1 ld b, $80 @@ -1055,7 +1055,7 @@ ClearBytes: DrawDefaultTiles: ; Draw 240 tiles (2/3 of the screen) from tiles in VRAM hlbgcoord 0, 0 ; BG Map 0 - ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld de, TILEMAP_WIDTH - SCREEN_WIDTH ld a, $80 ; starting tile ld c, 12 + 1 .line @@ -1088,7 +1088,7 @@ INCLUDE "gfx/sgb/pal_packets.asm" INCLUDE "data/sgb_ctrl_packets.asm" PredefPals: - table_width PALETTE_SIZE + table_width PAL_SIZE INCLUDE "gfx/sgb/predef.pal" assert_table_length NUM_PREDEF_PALS @@ -1218,7 +1218,7 @@ MapObjectPals:: INCLUDE "gfx/overworld/npc_sprites.pal" RoofPals: - table_width PAL_COLOR_SIZE * 2 * 2 + table_width COLOR_SIZE * 2 * 2 INCLUDE "gfx/tilesets/roofs.pal" assert_table_length NUM_MAP_GROUPS + 1 diff --git a/engine/gfx/load_font.asm b/engine/gfx/load_font.asm index d6658137..34ba5dae 100644 --- a/engine/gfx/load_font.asm +++ b/engine/gfx/load_font.asm @@ -29,7 +29,7 @@ _LoadFontsBattleExtra:: LoadFrame: ld a, [wTextboxFrame] maskbits NUM_FRAMES - ld bc, TEXTBOX_FRAME_TILES * LEN_1BPP_TILE + ld bc, TEXTBOX_FRAME_TILES * TILE_1BPP_SIZE ld hl, Frames call AddNTimes ld d, h @@ -79,7 +79,7 @@ StatsScreen_LoadFont:: ld hl, vTiles2 tile $78 lb bc, BANK(HPExpBarBorderGFX), 1 call Get1bpp - ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE + ld de, HPExpBarBorderGFX + 3 * TILE_1BPP_SIZE ld hl, vTiles2 tile $76 lb bc, BANK(HPExpBarBorderGFX), 2 call Get1bpp diff --git a/engine/gfx/load_push_oam.asm b/engine/gfx/load_push_oam.asm index 7abbb515..1832cffd 100644 --- a/engine/gfx/load_push_oam.asm +++ b/engine/gfx/load_push_oam.asm @@ -19,7 +19,7 @@ hTransferShadowOAM:: ld a, HIGH(wShadowOAM) ldh [rDMA], a ; wait for DMA to finish - ld a, NUM_SPRITE_OAM_STRUCTS + ld a, OAM_COUNT .wait dec a jr nz, .wait diff --git a/engine/items/pack.asm b/engine/items/pack.asm index 7b8b361e..f6038bc0 100644 --- a/engine/items/pack.asm +++ b/engine/items/pack.asm @@ -1414,7 +1414,7 @@ Pack_GetItemName: Pack_ClearTilemap: ; unreferenced hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ret diff --git a/engine/link/link.asm b/engine/link/link.asm index 23150de6..0cbb269a 100644 --- a/engine/link/link.asm +++ b/engine/link/link.asm @@ -49,17 +49,17 @@ Gen2ToGen1LinkComms: call DelayFrames xor a ldh [hSerialSend], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a call DelayFrame xor a ldh [hSerialSend], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a .player_1 @@ -75,7 +75,7 @@ endc call DelayFrames xor a ldh [rIF], a - ld a, 1 << SERIAL + ld a, IE_SERIAL ldh [rIE], a ld hl, wLinkBattleRNPreamble @@ -102,7 +102,7 @@ endc xor a ldh [rIF], a - ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK) + ld a, IE_JOYPAD | IE_SERIAL | IE_TIMER | IE_VBLANK ldh [rIE], a call Link_CopyRandomNumbers @@ -215,17 +215,17 @@ Gen2ToGen2LinkComms: call DelayFrames xor a ldh [hSerialSend], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a call DelayFrame xor a ldh [hSerialSend], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a .player_1 @@ -241,7 +241,7 @@ endc call DelayFrames xor a ldh [rIF], a - ld a, 1 << SERIAL + ld a, IE_SERIAL ldh [rIE], a ld hl, wLinkBattleRNPreamble @@ -278,7 +278,7 @@ endc xor a ldh [rIF], a - ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK) + ld a, IE_JOYPAD | IE_SERIAL | IE_TIMER | IE_VBLANK ldh [rIE], a ld de, MUSIC_NONE call PlayMusic @@ -1493,9 +1493,9 @@ ExitLinkCommunications: xor a ldh [rSB], a ldh [hSerialSend], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a vc_hook ExitLinkCommunications_ret ret @@ -2091,18 +2091,18 @@ WaitForOtherPlayerToExit: xor a ldh [rSB], a ldh [hSerialReceive], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a ld c, 3 call DelayFrames xor a ldh [rSB], a ldh [hSerialReceive], a - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_START | SC_EXTERNAL ldh [rSC], a ld c, 3 call DelayFrames @@ -2140,9 +2140,9 @@ SetBitsForTimeCapsuleRequest: ldh [rSB], a xor a ldh [hSerialReceive], a - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_START | SC_EXTERNAL ldh [rSC], a xor a ; LINK_NULL ld [wPlayerLinkAction], a @@ -2157,9 +2157,9 @@ WaitForLinkedFriend: ldh [rSB], a xor a ldh [hSerialReceive], a - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_START | SC_EXTERNAL ldh [rSC], a call DelayFrame call DelayFrame @@ -2182,9 +2182,9 @@ WaitForLinkedFriend: ldh [rSB], a xor a ldh [hSerialReceive], a - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_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 @@ -2207,9 +2207,9 @@ WaitForLinkedFriend: .not_done ld a, USING_EXTERNAL_CLOCK ldh [rSB], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a call DelayFrame jr .loop diff --git a/engine/link/mystery_gift.asm b/engine/link/mystery_gift.asm index 147dd1dd..d2e27091 100644 --- a/engine/link/mystery_gift.asm +++ b/engine/link/mystery_gift.asm @@ -324,14 +324,14 @@ endc jr c, .wait_frame ld c, LOW(rRP) - ld a, rRP_ENABLE_READ_MASK + ld a, RP_ENABLE ldh [c], a ld b, 60 * 4 ; 4 seconds .continue push bc call MysteryGift_UpdateJoypad - ld b, 1 << rRP_RECEIVING + ld b, RP_DATA_IN ld c, LOW(rRP) .in_vblank ldh a, [c] @@ -536,7 +536,7 @@ EndOrContinueMysteryGiftIRCommunication: xor a ldh [rIF], a ldh a, [rIE] - or 1 << VBLANK + or IE_VBLANK ldh [rIE], a ei call DelayFrame @@ -580,7 +580,7 @@ TryReceivingIRDataBlock: InitializeIRCommunicationInterrupts: call StartFastIRTimer - ld a, 1 << TIMER + ld a, IE_TIMER ldh [rIE], a xor a ldh [rIF], a @@ -602,9 +602,9 @@ StartFastIRTimer: ld a, -2 ldh [rTMA], a ldh [rTIMA], a - ld a, rTAC_65536_HZ + ld a, TAC_65KHZ ldh [rTAC], a - or 1 << rTAC_ON + or TAC_START ldh [rTAC], a ret @@ -614,14 +614,14 @@ StartSlowIRTimer: ldh [rTAC], a ldh [rTMA], a ldh [rTIMA], a - ld a, rTAC_65536_HZ + ld a, TAC_65KHZ ldh [rTAC], a - or 1 << rTAC_ON + or TAC_START ldh [rTAC], a ret BeginIRCommunication: - ld a, rRP_ENABLE_READ_MASK + ld a, RP_ENABLE call ToggleIRCommunication ld a, IR_RECEIVER ldh [hMGRole], a @@ -630,7 +630,7 @@ BeginIRCommunication: EndIRCommunication: xor a call ToggleIRCommunication - ld a, rTAC_65536_HZ + ld a, TAC_65KHZ ldh [rTAC], a ret @@ -644,7 +644,7 @@ ReceiveInfraredLEDOn: halt nop ldh a, [c] - bit rRP_RECEIVING, a + bit B_RP_DATA_IN, a jr z, .recv_loop or a ret @@ -659,14 +659,14 @@ ReceiveInfraredLEDOff: halt nop ldh a, [c] - bit rRP_RECEIVING, a + bit B_RP_DATA_IN, a jr nz, .no_recv_loop or a ret SendInfraredLEDOn: ; Holds the IR LED on for d-1 interrupts. - ld a, rRP_ENABLE_READ_MASK | (1 << rRP_LED_ON) + ld a, RP_ENABLE | RP_LED_ON ldh [c], a .wait dec d @@ -679,7 +679,7 @@ SendInfraredLEDOn: SendInfraredLEDOff: ; Holds the IR LED off for d-1 interrupts. - ld a, rRP_ENABLE_READ_MASK + ld a, RP_ENABLE ldh [c], a .wait dec d @@ -698,7 +698,7 @@ InitializeIRCommunicationRoles: ldh [hMGRole], a .loop call MysteryGift_UpdateJoypad - ld b, 1 << rRP_RECEIVING + ld b, RP_DATA_IN ld c, LOW(rRP) ; Check if we've pressed the B button to cancel ldh a, [hMGJoypadReleased] @@ -885,7 +885,7 @@ SendIRDataMessage: ldh [rIF], a halt nop - ld a, rRP_ENABLE_READ_MASK | (1 << rRP_LED_ON) + ld a, RP_ENABLE | RP_LED_ON ldh [rRP], a ; Turn the LED off for longer if the bit is 1 ld d, 1 @@ -898,7 +898,7 @@ SendIRDataMessage: ldh a, [rTIMA] cp -8 jr c, .wait - ld a, rRP_ENABLE_READ_MASK + ld a, RP_ENABLE ldh [rRP], a dec d jr z, .no_halt @@ -1036,7 +1036,7 @@ ReceiveIRDataMessage: inc d jr z, .recv_done ldh a, [c] - bit rRP_RECEIVING, a + bit B_RP_DATA_IN, a jr z, .recv_loop ld d, 0 .recv_done @@ -1044,7 +1044,7 @@ ReceiveIRDataMessage: inc d jr z, .send_done ldh a, [c] - bit rRP_RECEIVING, a + bit B_RP_DATA_IN, a jr nz, .send_loop .send_done ldh a, [hMGPrevTIMA] @@ -1102,7 +1102,7 @@ ReceiveEmptyIRDataBlock: MysteryGift_UpdateJoypad: ; We can only get four inputs at a time. ; We take d-pad first for no particular reason. - ld a, 1 << rJOYP_DPAD + ld a, JOYP_GET_CTRL_PAD ldh [rJOYP], a ; Read twice to give the request time to take. ldh a, [rJOYP] @@ -1111,7 +1111,7 @@ MysteryGift_UpdateJoypad: ; The Joypad register output is in the lo nybble (inversed). ; We make the hi nybble of our new container d-pad input. cpl - and $f + and JOYP_INPUTS swap a ; We'll keep this in b for now. @@ -1119,7 +1119,7 @@ MysteryGift_UpdateJoypad: ; Buttons make 8 total inputs (A, B, Select, Start). ; We can fit this into one byte. - ld a, 1 << rJOYP_BUTTONS + ld a, JOYP_GET_BUTTONS ldh [rJOYP], a ; Wait for input to stabilize. rept 6 @@ -1127,7 +1127,7 @@ rept 6 endr ; Buttons take the lo nybble. cpl - and $f + and JOYP_INPUTS or b ld c, a ; To get the delta we xor the last frame's input with the new one. diff --git a/engine/link/mystery_gift_3.asm b/engine/link/mystery_gift_3.asm index e92b3cfb..f5dd8479 100644 --- a/engine/link/mystery_gift_3.asm +++ b/engine/link/mystery_gift_3.asm @@ -65,7 +65,7 @@ InitMysteryGiftLayout: call ByteFill hlcoord 0, 0 ld a, $3d - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA call ByteFill hlcoord 3, 7 lb bc, 9, 15 diff --git a/engine/menus/intro_menu.asm b/engine/menus/intro_menu.asm index df6d9172..6991efaf 100644 --- a/engine/menus/intro_menu.asm +++ b/engine/menus/intro_menu.asm @@ -867,7 +867,7 @@ StartTitleScreen: call ClearBGPalettes ld hl, rLCDC - res rLCDC_SPRITE_SIZE, [hl] ; 8x8 + res B_LCDC_OBJ_SIZE, [hl] ; 8x8 call ClearTilemap xor a ldh [hLCDCPointer], a diff --git a/engine/menus/menu.asm b/engine/menus/menu.asm index fab25784..f756b211 100644 --- a/engine/menus/menu.asm +++ b/engine/menus/menu.asm @@ -574,7 +574,7 @@ RestoreOverworldMapTiles: call OpenSRAM hlcoord 0, 0 ld de, sScratch - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyBytes call CloseSRAM call LoadOverworldTilemapAndAttrmapPals @@ -582,7 +582,7 @@ RestoreOverworldMapTiles: call OpenSRAM ld hl, sScratch decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA .loop ld a, [hl] cp $61 diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm index f61ba79d..1d4af1c6 100644 --- a/engine/menus/naming_screen.asm +++ b/engine/menus/naming_screen.asm @@ -240,7 +240,7 @@ NamingScreen_IsTargetBox: NamingScreen_InitText: call WaitTop hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, NAMINGSCREEN_BORDER call ByteFill hlcoord 1, 1 diff --git a/engine/menus/savemenu_copytilemapatonce.asm b/engine/menus/savemenu_copytilemapatonce.asm index 4b567a58..ff8fe9b3 100644 --- a/engine/menus/savemenu_copytilemapatonce.asm +++ b/engine/menus/savemenu_copytilemapatonce.asm @@ -51,7 +51,7 @@ SaveMenu_CopyTilemapAtOnce: ld l, 0 ld a, SCREEN_HEIGHT ldh [hTilesPerCycle], a - ld b, 1 << 1 ; not in v/hblank + ld b, STAT_BUSY ld c, LOW(rSTAT) .loop @@ -69,7 +69,7 @@ rept SCREEN_WIDTH / 2 inc l endr - ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld de, TILEMAP_WIDTH - SCREEN_WIDTH add hl, de ldh a, [hTilesPerCycle] dec a diff --git a/engine/menus/trainer_card.asm b/engine/menus/trainer_card.asm index 60224e98..8bfbd93e 100644 --- a/engine/menus/trainer_card.asm +++ b/engine/menus/trainer_card.asm @@ -564,10 +564,10 @@ TrainerCard_Page2_3_OAMUpdate: db -1 .facing2 - dbsprite 0, 0, 0, 0, $01, 0 | X_FLIP - dbsprite 1, 0, 0, 0, $00, 0 | X_FLIP - dbsprite 0, 1, 0, 0, $03, 0 | X_FLIP - dbsprite 1, 1, 0, 0, $02, 0 | X_FLIP + dbsprite 0, 0, 0, 0, $01, 0 | OAM_XFLIP + dbsprite 1, 0, 0, 0, $00, 0 | OAM_XFLIP + dbsprite 0, 1, 0, 0, $03, 0 | OAM_XFLIP + dbsprite 1, 1, 0, 0, $02, 0 | OAM_XFLIP db -1 TrainerCard_JohtoBadgesOAM: diff --git a/engine/movie/credits.asm b/engine/movie/credits.asm index c03d037e..d48365a1 100644 --- a/engine/movie/credits.asm +++ b/engine/movie/credits.asm @@ -395,7 +395,7 @@ ConstructCreditsTilemap: ld a, $28 hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA call ByteFill ld a, $7f diff --git a/engine/movie/evolution_animation.asm b/engine/movie/evolution_animation.asm index 01e0808a..551296dd 100644 --- a/engine/movie/evolution_animation.asm +++ b/engine/movie/evolution_animation.asm @@ -265,12 +265,12 @@ EvolutionAnimation: and $7 ld b, a ld hl, wShadowOAMSprite00Attributes - ld c, NUM_SPRITE_OAM_STRUCTS + ld c, OAM_COUNT .loop6 ld a, [hl] or b ld [hli], a ; attributes -rept SPRITEOAMSTRUCT_LENGTH - 1 +rept OBJ_SIZE - 1 inc hl endr dec c diff --git a/engine/movie/init_hof_credits.asm b/engine/movie/init_hof_credits.asm index 82d9c900..f92183ab 100644 --- a/engine/movie/init_hof_credits.asm +++ b/engine/movie/init_hof_credits.asm @@ -10,7 +10,7 @@ InitDisplayForHallOfFame: ld a, " " call ByteFill hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA xor a call ByteFill xor a @@ -39,7 +39,7 @@ InitDisplayForRedCredits: ld a, " " call ByteFill hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA xor a call ByteFill ld hl, wBGPals1 diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm index 9bc482de..dfa45c06 100644 --- a/engine/movie/intro.asm +++ b/engine/movie/intro.asm @@ -434,7 +434,7 @@ Intro_UpdateTilemapAndBGMap: ld e, a ld a, [wIntroTilemapPointer + 1] ld d, a - ld hl, -BG_MAP_WIDTH / 2 + ld hl, -TILEMAP_WIDTH / 2 add hl, de ld a, l ld e, l @@ -444,7 +444,7 @@ Intro_UpdateTilemapAndBGMap: ld [wIntroTilemapPointer + 1], a hlcoord 0, 0 - ld c, BG_MAP_WIDTH / 2 + ld c, TILEMAP_WIDTH / 2 .loop call Intro_Draw2x2Tiles dec c @@ -454,7 +454,7 @@ Intro_UpdateTilemapAndBGMap: ld e, a ld a, [wIntroBGMapPointer + 1] ld d, a - ld hl, -2 * BG_MAP_WIDTH + ld hl, -2 * TILEMAP_WIDTH add hl, de ld a, l ld [wIntroBGMapPointer + 0], a @@ -1171,17 +1171,17 @@ Copy128Tiles: ; unreferenced ret Intro_DrawBackground: - ld b, BG_MAP_WIDTH / 2 + ld b, TILEMAP_WIDTH / 2 .outer_loop push hl - ld c, BG_MAP_HEIGHT / 2 + ld c, TILEMAP_HEIGHT / 2 .inner_loop call Intro_Draw2x2Tiles dec c jr nz, .inner_loop pop hl push bc - ld bc, 2 * BG_MAP_WIDTH + ld bc, 2 * TILEMAP_WIDTH add hl, bc pop bc dec b @@ -1216,7 +1216,7 @@ Intro_Draw2x2Tiles: inc de ld [hli], a pop hl - ld bc, BG_MAP_WIDTH + ld bc, TILEMAP_WIDTH add hl, bc ld a, [de] inc de diff --git a/engine/movie/title.asm b/engine/movie/title.asm index f3b69f79..f0e67c91 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -57,7 +57,7 @@ TitleScreen: ld [hli], a ld [hl], a ld hl, rLCDC - set rLCDC_SPRITE_SIZE, [hl] + set B_LCDC_OBJ_SIZE, [hl] call EnableLCD ; Reset timing variables @@ -147,7 +147,7 @@ FillTitleScreenPals: ld a, 1 ldh [rVBK], a hlbgcoord 0, 0 - ld bc, 18 * BG_MAP_WIDTH + ld bc, 18 * TILEMAP_WIDTH xor a call ByteFill hlbgcoord 0, 0, vBGMap2 @@ -159,7 +159,7 @@ FillTitleScreenPals: ld a, 3 call DrawTitleGraphic hlbgcoord 0, 12, vBGMap2 - ld bc, 5 * BG_MAP_WIDTH + ld bc, 5 * TILEMAP_WIDTH ld a, 4 call ByteFill ld a, 0 @@ -175,7 +175,7 @@ DrawTitleGraphic: dec c jr nz, .col pop hl - ld bc, BG_MAP_WIDTH + ld bc, TILEMAP_WIDTH add hl, bc pop bc dec b @@ -200,7 +200,7 @@ LoadTitleScreenTilemap: and a ret nz hlbgcoord 0, 11 - ld bc, BG_MAP_WIDTH + ld bc, TILEMAP_WIDTH ld a, "@" call ByteFill ret diff --git a/engine/movie/trade_animation.asm b/engine/movie/trade_animation.asm index 80ac1418..a949b50b 100644 --- a/engine/movie/trade_animation.asm +++ b/engine/movie/trade_animation.asm @@ -1214,7 +1214,7 @@ TradeAnim_Wait80Frames: TradeAnim_BlankTilemap: hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ret diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm index 6f5b070d..5f589048 100644 --- a/engine/overworld/map_objects.asm +++ b/engine/overworld/map_objects.asm @@ -2309,7 +2309,7 @@ CheckObjectCoveredByTextbox: srl a cp SCREEN_WIDTH jr c, .ok3 - sub BG_MAP_WIDTH + sub TILEMAP_WIDTH .ok3 ldh [hCurSpriteXCoord], a @@ -2342,7 +2342,7 @@ CheckObjectCoveredByTextbox: srl a cp SCREEN_HEIGHT jr c, .ok6 - sub BG_MAP_HEIGHT + sub TILEMAP_HEIGHT .ok6 ldh [hCurSpriteYCoord], a @@ -2684,13 +2684,13 @@ _UpdateSprites:: ret .fill - ld b, NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH + ld b, OAM_SIZE ldh a, [hUsedSpriteIndex] cp b ret nc ld l, a ld h, HIGH(wShadowOAM) - ld de, SPRITEOAMSTRUCT_LENGTH + ld de, OBJ_SIZE ld a, b ld c, OAM_YCOORD_HIDDEN .loop @@ -2833,23 +2833,23 @@ InitSprites: ld e, [hl] bit OBJ_FLAGS2_7_F, e jr z, .not_priority - or PRIORITY + or OAM_PRIO .not_priority bit USE_OBP1_F, e jr z, .not_obp_num - or OBP_NUM + or OAM_PAL1 .not_obp_num ld hl, OBJECT_PALETTE add hl, bc ld d, a ld a, [hl] - and PALETTE_MASK + and OAM_PALETTE or d ld d, a xor a bit OVERHEAD_F, e jr z, .not_overhead - or PRIORITY + or OAM_PRIO .not_overhead ldh [hCurSpriteOAMFlags], a ld hl, OBJECT_SPRITE_TILE @@ -2929,7 +2929,7 @@ InitSprites: ldh a, [hCurSpriteOAMFlags] or e .nope2 - and OBP_NUM | X_FLIP | Y_FLIP | PRIORITY + and OAM_PAL1 | OAM_XFLIP | OAM_YFLIP | OAM_PRIO or d ld [bc], a ; attributes inc c diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index bf5a88dd..f4c29bb4 100644 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -68,7 +68,7 @@ WillObjectBumpIntoWater: ld e, [hl] ld hl, OBJECT_PALETTE add hl, bc - bit OAM_PRIORITY, [hl] + bit B_OAM_PRIO, [hl] jp nz, WillObjectRemainOnWater ld hl, OBJECT_TILE_COLLISION add hl, bc diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm index 6d58c4e0..7158f89d 100644 --- a/engine/overworld/player_object.asm +++ b/engine/overworld/player_object.asm @@ -190,7 +190,7 @@ CopyMapObjectToObjectStruct: and MAPOBJECT_PALETTE_MASK jr z, .skip_color_override swap a - and PALETTE_MASK + and OAM_PALETTE ld [wTempObjectCopyPalette], a .skip_color_override diff --git a/engine/overworld/player_step.asm b/engine/overworld/player_step.asm index abdd21b7..24943367 100644 --- a/engine/overworld/player_step.asm +++ b/engine/overworld/player_step.asm @@ -145,7 +145,7 @@ UpdateOverworldMap: .ScrollOverworldMapDown: ld a, [wBGMapAnchor] - add 2 * BG_MAP_WIDTH + add 2 * TILEMAP_WIDTH ld [wBGMapAnchor], a jr nc, .not_overflowed ld a, [wBGMapAnchor + 1] @@ -176,7 +176,7 @@ UpdateOverworldMap: .ScrollOverworldMapUp: ld a, [wBGMapAnchor] - sub 2 * BG_MAP_WIDTH + sub 2 * TILEMAP_WIDTH ld [wBGMapAnchor], a jr nc, .not_underflowed ld a, [wBGMapAnchor + 1] diff --git a/engine/overworld/wildmons.asm b/engine/overworld/wildmons.asm index eefa32e7..577ba23a 100644 --- a/engine/overworld/wildmons.asm +++ b/engine/overworld/wildmons.asm @@ -30,7 +30,7 @@ FindNest: ; e: 0 = Johto, 1 = Kanto ; wNamedObjectIndex: species hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA xor a call ByteFill ld a, e @@ -123,7 +123,7 @@ FindNest: call GetWorldMapLocation ld c, a hlcoord 0, 0 - ld de, SCREEN_WIDTH * SCREEN_HEIGHT + ld de, SCREEN_AREA .AppendNestLoop: ld a, [hli] cp c diff --git a/engine/phone/phonering_copytilemapatonce.asm b/engine/phone/phonering_copytilemapatonce.asm index 931bc2cb..4f3a10c9 100644 --- a/engine/phone/phonering_copytilemapatonce.asm +++ b/engine/phone/phonering_copytilemapatonce.asm @@ -54,7 +54,7 @@ PhoneRing_CopyTilemapAtOnce: ld l, 0 ld a, SCREEN_HEIGHT ldh [hTilesPerCycle], a - ld b, 1 << 1 ; not in v/hblank + ld b, STAT_BUSY ld c, LOW(rSTAT) .loop @@ -72,7 +72,7 @@ rept SCREEN_WIDTH / 2 inc l endr - ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld de, TILEMAP_WIDTH - SCREEN_WIDTH add hl, de ldh a, [hTilesPerCycle] dec a diff --git a/engine/pokedex/pokedex.asm b/engine/pokedex/pokedex.asm index 26a2b65d..babbafed 100644 --- a/engine/pokedex/pokedex.asm +++ b/engine/pokedex/pokedex.asm @@ -219,7 +219,7 @@ Pokedex_InitMainScreen: call ClearSprites xor a hlcoord 0, 0, wAttrmap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA call ByteFill farcall DrawPokedexListWindow hlcoord 0, 17 @@ -721,7 +721,7 @@ Pokedex_InitSearchResultsScreen: ldh [hBGMapMode], a xor a hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call ByteFill call Pokedex_SetBGMapMode4 call Pokedex_ResetBGMapMode @@ -1076,7 +1076,7 @@ Pokedex_DrawMainScreenBG: call Pokedex_PlaceString ld a, $32 hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call ByteFill hlcoord 0, 0 lb bc, 7, 7 @@ -1379,7 +1379,7 @@ UnownModeLetterAndCursorCoords: Pokedex_FillBackgroundColor2: hlcoord 0, 0 ld a, $32 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call ByteFill ret @@ -1995,24 +1995,24 @@ Pokedex_PutOldModeCursorOAM: dbsprite 11, 2, -1, 0, $32, 7 dbsprite 12, 2, -1, 0, $32, 7 dbsprite 13, 2, -1, 0, $33, 7 - dbsprite 16, 2, -2, 0, $33, 7 | X_FLIP - dbsprite 17, 2, -2, 0, $32, 7 | X_FLIP - dbsprite 18, 2, -2, 0, $32, 7 | X_FLIP - dbsprite 19, 2, -2, 0, $32, 7 | X_FLIP - dbsprite 20, 2, -2, 0, $31, 7 | X_FLIP - dbsprite 20, 3, -2, 0, $30, 7 | X_FLIP - dbsprite 9, 4, -1, 0, $30, 7 | Y_FLIP - dbsprite 9, 5, -1, 0, $31, 7 | Y_FLIP - dbsprite 10, 5, -1, 0, $32, 7 | Y_FLIP - dbsprite 11, 5, -1, 0, $32, 7 | Y_FLIP - dbsprite 12, 5, -1, 0, $32, 7 | Y_FLIP - dbsprite 13, 5, -1, 0, $33, 7 | Y_FLIP - dbsprite 16, 5, -2, 0, $33, 7 | X_FLIP | Y_FLIP - dbsprite 17, 5, -2, 0, $32, 7 | X_FLIP | Y_FLIP - dbsprite 18, 5, -2, 0, $32, 7 | X_FLIP | Y_FLIP - dbsprite 19, 5, -2, 0, $32, 7 | X_FLIP | Y_FLIP - dbsprite 20, 5, -2, 0, $31, 7 | X_FLIP | Y_FLIP - dbsprite 20, 4, -2, 0, $30, 7 | X_FLIP | Y_FLIP + dbsprite 16, 2, -2, 0, $33, 7 | OAM_XFLIP + dbsprite 17, 2, -2, 0, $32, 7 | OAM_XFLIP + dbsprite 18, 2, -2, 0, $32, 7 | OAM_XFLIP + dbsprite 19, 2, -2, 0, $32, 7 | OAM_XFLIP + dbsprite 20, 2, -2, 0, $31, 7 | OAM_XFLIP + dbsprite 20, 3, -2, 0, $30, 7 | OAM_XFLIP + dbsprite 9, 4, -1, 0, $30, 7 | OAM_YFLIP + dbsprite 9, 5, -1, 0, $31, 7 | OAM_YFLIP + dbsprite 10, 5, -1, 0, $32, 7 | OAM_YFLIP + dbsprite 11, 5, -1, 0, $32, 7 | OAM_YFLIP + dbsprite 12, 5, -1, 0, $32, 7 | OAM_YFLIP + dbsprite 13, 5, -1, 0, $33, 7 | OAM_YFLIP + dbsprite 16, 5, -2, 0, $33, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 17, 5, -2, 0, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 18, 5, -2, 0, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 19, 5, -2, 0, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 20, 5, -2, 0, $31, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 20, 4, -2, 0, $30, 7 | OAM_XFLIP | OAM_YFLIP db -1 .CursorAtTopOAM: @@ -2024,24 +2024,24 @@ Pokedex_PutOldModeCursorOAM: dbsprite 11, 2, -1, 0, $35, 7 dbsprite 12, 2, -1, 0, $35, 7 dbsprite 13, 2, -1, 0, $36, 7 - dbsprite 16, 2, -2, 0, $36, 7 | X_FLIP - dbsprite 17, 2, -2, 0, $35, 7 | X_FLIP - dbsprite 18, 2, -2, 0, $35, 7 | X_FLIP - dbsprite 19, 2, -2, 0, $35, 7 | X_FLIP - dbsprite 20, 2, -2, 0, $34, 7 | X_FLIP - dbsprite 20, 3, -2, 0, $30, 7 | X_FLIP - dbsprite 9, 4, -1, 0, $30, 7 | Y_FLIP - dbsprite 9, 5, -1, 0, $31, 7 | Y_FLIP - dbsprite 10, 5, -1, 0, $32, 7 | Y_FLIP - dbsprite 11, 5, -1, 0, $32, 7 | Y_FLIP - dbsprite 12, 5, -1, 0, $32, 7 | Y_FLIP - dbsprite 13, 5, -1, 0, $33, 7 | Y_FLIP - dbsprite 16, 5, -2, 0, $33, 7 | X_FLIP | Y_FLIP - dbsprite 17, 5, -2, 0, $32, 7 | X_FLIP | Y_FLIP - dbsprite 18, 5, -2, 0, $32, 7 | X_FLIP | Y_FLIP - dbsprite 19, 5, -2, 0, $32, 7 | X_FLIP | Y_FLIP - dbsprite 20, 5, -2, 0, $31, 7 | X_FLIP | Y_FLIP - dbsprite 20, 4, -2, 0, $30, 7 | X_FLIP | Y_FLIP + dbsprite 16, 2, -2, 0, $36, 7 | OAM_XFLIP + dbsprite 17, 2, -2, 0, $35, 7 | OAM_XFLIP + dbsprite 18, 2, -2, 0, $35, 7 | OAM_XFLIP + dbsprite 19, 2, -2, 0, $35, 7 | OAM_XFLIP + dbsprite 20, 2, -2, 0, $34, 7 | OAM_XFLIP + dbsprite 20, 3, -2, 0, $30, 7 | OAM_XFLIP + dbsprite 9, 4, -1, 0, $30, 7 | OAM_YFLIP + dbsprite 9, 5, -1, 0, $31, 7 | OAM_YFLIP + dbsprite 10, 5, -1, 0, $32, 7 | OAM_YFLIP + dbsprite 11, 5, -1, 0, $32, 7 | OAM_YFLIP + dbsprite 12, 5, -1, 0, $32, 7 | OAM_YFLIP + dbsprite 13, 5, -1, 0, $33, 7 | OAM_YFLIP + dbsprite 16, 5, -2, 0, $33, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 17, 5, -2, 0, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 18, 5, -2, 0, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 19, 5, -2, 0, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 20, 5, -2, 0, $31, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 20, 4, -2, 0, $30, 7 | OAM_XFLIP | OAM_YFLIP db -1 Pokedex_PutNewModeABCModeCursorOAM: @@ -2055,21 +2055,21 @@ Pokedex_PutNewModeABCModeCursorOAM: dbsprite 10, 2, -1, 3, $32, 7 dbsprite 11, 2, -1, 3, $32, 7 dbsprite 12, 2, -1, 3, $33, 7 - dbsprite 16, 2, 0, 3, $33, 7 | X_FLIP - dbsprite 17, 2, 0, 3, $32, 7 | X_FLIP - dbsprite 18, 2, 0, 3, $32, 7 | X_FLIP - dbsprite 19, 2, 0, 3, $31, 7 | X_FLIP - dbsprite 19, 3, 0, 3, $30, 7 | X_FLIP - dbsprite 9, 4, -1, 3, $30, 7 | Y_FLIP - dbsprite 9, 5, -1, 3, $31, 7 | Y_FLIP - dbsprite 10, 5, -1, 3, $32, 7 | Y_FLIP - dbsprite 11, 5, -1, 3, $32, 7 | Y_FLIP - dbsprite 12, 5, -1, 3, $33, 7 | Y_FLIP - dbsprite 16, 5, 0, 3, $33, 7 | X_FLIP | Y_FLIP - dbsprite 17, 5, 0, 3, $32, 7 | X_FLIP | Y_FLIP - dbsprite 18, 5, 0, 3, $32, 7 | X_FLIP | Y_FLIP - dbsprite 19, 5, 0, 3, $31, 7 | X_FLIP | Y_FLIP - dbsprite 19, 4, 0, 3, $30, 7 | X_FLIP | Y_FLIP + dbsprite 16, 2, 0, 3, $33, 7 | OAM_XFLIP + dbsprite 17, 2, 0, 3, $32, 7 | OAM_XFLIP + dbsprite 18, 2, 0, 3, $32, 7 | OAM_XFLIP + dbsprite 19, 2, 0, 3, $31, 7 | OAM_XFLIP + dbsprite 19, 3, 0, 3, $30, 7 | OAM_XFLIP + dbsprite 9, 4, -1, 3, $30, 7 | OAM_YFLIP + dbsprite 9, 5, -1, 3, $31, 7 | OAM_YFLIP + dbsprite 10, 5, -1, 3, $32, 7 | OAM_YFLIP + dbsprite 11, 5, -1, 3, $32, 7 | OAM_YFLIP + dbsprite 12, 5, -1, 3, $33, 7 | OAM_YFLIP + dbsprite 16, 5, 0, 3, $33, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 17, 5, 0, 3, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 18, 5, 0, 3, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 19, 5, 0, 3, $31, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 19, 4, 0, 3, $30, 7 | OAM_XFLIP | OAM_YFLIP db -1 Pokedex_UpdateSearchResultsCursorOAM: @@ -2087,24 +2087,24 @@ Pokedex_UpdateSearchResultsCursorOAM: dbsprite 11, 2, -1, 3, $32, 7 dbsprite 12, 2, -1, 3, $32, 7 dbsprite 13, 2, -1, 3, $33, 7 - dbsprite 16, 2, -2, 3, $33, 7 | X_FLIP - dbsprite 17, 2, -2, 3, $32, 7 | X_FLIP - dbsprite 18, 2, -2, 3, $32, 7 | X_FLIP - dbsprite 19, 2, -2, 3, $32, 7 | X_FLIP - dbsprite 20, 2, -2, 3, $31, 7 | X_FLIP - dbsprite 20, 3, -2, 3, $30, 7 | X_FLIP - dbsprite 9, 4, -1, 3, $30, 7 | Y_FLIP - dbsprite 9, 5, -1, 3, $31, 7 | Y_FLIP - dbsprite 10, 5, -1, 3, $32, 7 | Y_FLIP - dbsprite 11, 5, -1, 3, $32, 7 | Y_FLIP - dbsprite 12, 5, -1, 3, $32, 7 | Y_FLIP - dbsprite 13, 5, -1, 3, $33, 7 | Y_FLIP - dbsprite 16, 5, -2, 3, $33, 7 | X_FLIP | Y_FLIP - dbsprite 17, 5, -2, 3, $32, 7 | X_FLIP | Y_FLIP - dbsprite 18, 5, -2, 3, $32, 7 | X_FLIP | Y_FLIP - dbsprite 19, 5, -2, 3, $32, 7 | X_FLIP | Y_FLIP - dbsprite 20, 5, -2, 3, $31, 7 | X_FLIP | Y_FLIP - dbsprite 20, 4, -2, 3, $30, 7 | X_FLIP | Y_FLIP + dbsprite 16, 2, -2, 3, $33, 7 | OAM_XFLIP + dbsprite 17, 2, -2, 3, $32, 7 | OAM_XFLIP + dbsprite 18, 2, -2, 3, $32, 7 | OAM_XFLIP + dbsprite 19, 2, -2, 3, $32, 7 | OAM_XFLIP + dbsprite 20, 2, -2, 3, $31, 7 | OAM_XFLIP + dbsprite 20, 3, -2, 3, $30, 7 | OAM_XFLIP + dbsprite 9, 4, -1, 3, $30, 7 | OAM_YFLIP + dbsprite 9, 5, -1, 3, $31, 7 | OAM_YFLIP + dbsprite 10, 5, -1, 3, $32, 7 | OAM_YFLIP + dbsprite 11, 5, -1, 3, $32, 7 | OAM_YFLIP + dbsprite 12, 5, -1, 3, $32, 7 | OAM_YFLIP + dbsprite 13, 5, -1, 3, $33, 7 | OAM_YFLIP + dbsprite 16, 5, -2, 3, $33, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 17, 5, -2, 3, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 18, 5, -2, 3, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 19, 5, -2, 3, $32, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 20, 5, -2, 3, $31, 7 | OAM_XFLIP | OAM_YFLIP + dbsprite 20, 4, -2, 3, $30, 7 | OAM_XFLIP | OAM_YFLIP db -1 Pokedex_LoadCursorOAM: diff --git a/engine/pokegear/pokegear.asm b/engine/pokegear/pokegear.asm index 9d06a502..989d977b 100644 --- a/engine/pokegear/pokegear.asm +++ b/engine/pokegear/pokegear.asm @@ -233,7 +233,7 @@ InitPokegearTilemap: xor a ldh [hBGMapMode], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, $4f call ByteFill ld a, [wPokegearCard] @@ -2598,7 +2598,7 @@ TownMapPals: ; Assign palettes based on tile ids hlcoord 0, 0 decoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA .loop ; Current tile ld a, [hli] @@ -2618,7 +2618,7 @@ TownMapPals: adc 0 ld h, a ld a, [hl] - and PALETTE_MASK + and OAM_PALETTE jr .update .odd @@ -2630,7 +2630,7 @@ TownMapPals: ld h, a ld a, [hl] swap a - and PALETTE_MASK + and OAM_PALETTE jr .update .pal0 diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm index 83df2377..7fe2ffe1 100644 --- a/engine/pokemon/bills_pc.asm +++ b/engine/pokemon/bills_pc.asm @@ -1457,7 +1457,7 @@ BillsPC_UpdateSelectionCursor: inc hl ld [de], a ; y inc de -rept SPRITEOAMSTRUCT_LENGTH - 1 +rept OBJ_SIZE - 1 ld a, [hli] ld [de], a inc de @@ -1501,7 +1501,7 @@ BillsPC_UpdateInsertCursor: inc hl ld [de], a ; y inc de -rept SPRITEOAMSTRUCT_LENGTH - 1 +rept OBJ_SIZE - 1 ld a, [hli] ld [de], a inc de @@ -2229,7 +2229,7 @@ BillsPC_ClearTilemap: xor a ldh [hBGMapMode], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ret diff --git a/engine/pokemon/bills_pc_top.asm b/engine/pokemon/bills_pc_top.asm index 251007ff..74af33f7 100644 --- a/engine/pokemon/bills_pc_top.asm +++ b/engine/pokemon/bills_pc_top.asm @@ -235,7 +235,7 @@ ClearPCItemScreen: call ClearBGPalettes call ClearSprites hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, " " call ByteFill hlcoord 0, 0 diff --git a/engine/pokemon/breeding.asm b/engine/pokemon/breeding.asm index 53a6d0bd..3669fced 100644 --- a/engine/pokemon/breeding.asm +++ b/engine/pokemon/breeding.asm @@ -634,7 +634,7 @@ Hatch_UpdateFrontpicBGMapCenter: push hl push bc hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, " " call ByteFill pop bc diff --git a/engine/pokemon/mail_2.asm b/engine/pokemon/mail_2.asm index ba0cff17..e1eade25 100644 --- a/engine/pokemon/mail_2.asm +++ b/engine/pokemon/mail_2.asm @@ -132,13 +132,13 @@ LoadSurfMailGFX: push bc ld hl, vTiles2 tile $31 ld de, SurfMailBorderGFX - ld c, 8 * LEN_1BPP_TILE + ld c, 8 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailLaprasGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color3 ld de, SurfMailWaveGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 jr FinishLoadingSurfLiteBlueMailGFX @@ -146,25 +146,25 @@ LoadLiteBlueMailGFX: push bc ld hl, vTiles2 tile $31 ld de, LiteBlueMailBorderGFX - ld c, 8 * LEN_1BPP_TILE + ld c, 8 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailDratiniGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color3 ld de, PortraitMailUnderlineGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 FinishLoadingSurfLiteBlueMailGFX: ld de, SurfLiteBlueMailSmallShapesGFX - ld c, 2 * LEN_1BPP_TILE + ld c, 2 * TILE_1BPP_SIZE call LoadMailGFX_Color2 - ld c, 2 * LEN_1BPP_TILE + ld c, 2 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, SurfLiteBlueMailLargeShapesGFX - ld c, 8 * LEN_1BPP_TILE + ld c, 8 * TILE_1BPP_SIZE call LoadMailGFX_Color1 - ld c, 8 * LEN_1BPP_TILE + ld c, 8 * TILE_1BPP_SIZE call LoadMailGFX_Color2 call DrawMailBorder @@ -216,29 +216,29 @@ LoadEonMailGFX: push bc ld hl, vTiles2 tile $31 ld de, EonMailBorder1GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, EonMailBorder2GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, EonMailBorder2GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, EonMailBorder1GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 - ld de, SurfMailBorderGFX + 6 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, SurfMailBorderGFX + 6 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailEeveeGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color3 ld hl, vTiles2 tile $3d ld de, MailLargeCircleGFX - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, EonMailBorder2GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld a, $31 @@ -265,19 +265,19 @@ LoadLovelyMailGFX: push bc ld hl, vTiles2 tile $31 ld de, LovelyMailBorderGFX - ld c, 5 * LEN_1BPP_TILE + ld c, 5 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailPoliwagGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color3 ld de, LovelyMailUnderlineGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, LovelyMailLargeHeartGFX - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, LovelyMailSmallHeartGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 call DrawMailBorder2 @@ -325,25 +325,25 @@ LovelyEonMail_PlaceIcons: LoadMorphMailGFX: push bc ld hl, vTiles2 tile $31 - ld bc, 5 * LEN_1BPP_TILE + ld bc, 5 * TILE_1BPP_SIZE call MailGFX_GenerateMonochromeTilesColor2 - ld de, MorphMailBorderCornerGFX + 3 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, MorphMailBorderCornerGFX + 3 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MorphMailBorderCornerGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MorphMailBorderGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, EonMailBorder1GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, MorphMailDividerGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailDittoGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color3 call DrawMailBorder2 ld a, $31 @@ -401,31 +401,31 @@ LoadBlueSkyMailGFX: push bc ld hl, vTiles2 tile $31 ld de, EonMailBorder1GFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld a, $ff ld bc, 1 tiles call ByteFill ld de, BlueSkyMailGrassGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color3 ld de, MailDragoniteAndSentretGFX - ld c, 23 * LEN_1BPP_TILE + ld c, 23 * TILE_1BPP_SIZE call LoadMailGFX_Color3 ld de, MailCloudGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color1 - ld de, FlowerMailBorderGFX + 6 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, FlowerMailBorderGFX + 6 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, MailCloudGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 - ld de, MailCloudGFX + 2 * LEN_1BPP_TILE - ld c, 2 * LEN_1BPP_TILE + ld de, MailCloudGFX + 2 * TILE_1BPP_SIZE + ld c, 2 * TILE_1BPP_SIZE call LoadMailGFX_Color1 - ld de, MailCloudGFX + 5 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, MailCloudGFX + 5 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld a, $31 @@ -487,18 +487,18 @@ LoadFlowerMailGFX: push bc ld hl, vTiles2 tile $31 ld de, FlowerMailBorderGFX - ld c, 8 * LEN_1BPP_TILE + ld c, 8 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, MailOddishGFX - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color3 - ld de, FlowerMailBorderGFX + 6 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, FlowerMailBorderGFX + 6 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, FlowerMailFlowerGFX - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color1 - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color2 call DrawMailBorder @@ -541,17 +541,17 @@ LoadPortraitMailGFX: push bc ld hl, vTiles2 tile $31 ld de, PortraitMailBorderGFX - ld c, 5 * LEN_1BPP_TILE + ld c, 5 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, PortraitMailUnderlineGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld hl, vTiles2 tile $3d ld de, PortraitMailLargePokeballGFX - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, PortraitMailSmallPokeballGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 call DrawMailBorder2 @@ -571,22 +571,22 @@ LoadMusicMailGFX: push bc ld hl, vTiles2 tile $31 ld de, MusicMailBorderGFX - ld c, 4 * LEN_1BPP_TILE + ld c, 4 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MorphMailBorderGFX - ld c, 2 * LEN_1BPP_TILE + ld c, 2 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailNatuGFX - ld c, 6 * LEN_1BPP_TILE + ld c, 6 * TILE_1BPP_SIZE call LoadMailGFX_Color3 xor a ld bc, 1 tiles call ByteFill ld de, MusicMailLargeNoteGFX - ld c, 3 * LEN_1BPP_TILE + ld c, 3 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld de, MusicMailSmallNoteGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 ld a, $31 @@ -612,19 +612,19 @@ LoadMusicMailGFX: LoadMirageMailGFX: push bc ld hl, vTiles2 tile $31 - ld bc, 5 * LEN_1BPP_TILE + ld bc, 5 * TILE_1BPP_SIZE call MailGFX_GenerateMonochromeTilesColor2 ld de, BlueSkyMailGrassGFX - ld c, 1 * LEN_1BPP_TILE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color2 ld de, MailMewGFX - ld c, 18 * LEN_1BPP_TILE + ld c, 18 * TILE_1BPP_SIZE call LoadMailGFX_Color2 - ld de, LiteBlueMailBorderGFX + 1 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, LiteBlueMailBorderGFX + 1 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 - ld de, LiteBlueMailBorderGFX + 6 * LEN_1BPP_TILE - ld c, 1 * LEN_1BPP_TILE + ld de, LiteBlueMailBorderGFX + 6 * TILE_1BPP_SIZE + ld c, 1 * TILE_1BPP_SIZE call LoadMailGFX_Color1 call DrawMailBorder2 diff --git a/engine/pokemon/party_menu.asm b/engine/pokemon/party_menu.asm index 55075242..2a8f30c4 100644 --- a/engine/pokemon/party_menu.asm +++ b/engine/pokemon/party_menu.asm @@ -48,7 +48,7 @@ WritePartyMenuTilemap: xor a ldh [hBGMapMode], a hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " call ByteFill ; blank the tilemap call GetPartyMenuQualityIndexes diff --git a/engine/pokemon/switchpartymons.asm b/engine/pokemon/switchpartymons.asm index 3934f47d..a957a7af 100644 --- a/engine/pokemon/switchpartymons.asm +++ b/engine/pokemon/switchpartymons.asm @@ -26,9 +26,9 @@ _SwitchPartyMons: call ByteFill pop af ld hl, wShadowOAMSprite00 - ld bc, 4 * SPRITEOAMSTRUCT_LENGTH + ld bc, 4 * OBJ_SIZE call AddNTimes - ld de, SPRITEOAMSTRUCT_LENGTH + ld de, OBJ_SIZE ld c, 4 .gfx_loop ld [hl], OAM_YCOORD_HIDDEN diff --git a/engine/printer/printer.asm b/engine/printer/printer.asm index 61a5f2a5..11459a22 100644 --- a/engine/printer/printer.asm +++ b/engine/printer/printer.asm @@ -56,7 +56,7 @@ PrintDexEntry: push af xor a ldh [rIF], a - ld a, (1 << SERIAL) | (1 << VBLANK) + ld a, IE_SERIAL | IE_VBLANK ldh [rIE], a call Printer_StartTransmission @@ -140,7 +140,7 @@ PrintPCBox: push af xor a ldh [rIF], a - ld a, (1 << SERIAL) | (1 << VBLANK) + ld a, IE_SERIAL | IE_VBLANK ldh [rIE], a ld hl, hVBlank @@ -221,7 +221,7 @@ PrintUnownStamp: push af xor a ldh [rIF], a - ld a, (1 << SERIAL) | (1 << VBLANK) + ld a, IE_SERIAL | IE_VBLANK ldh [rIE], a ld hl, hVBlank @@ -286,7 +286,7 @@ PrintMailAndExit: push af xor a ldh [rIF], a - ld a, (1 << SERIAL) | (1 << VBLANK) + ld a, IE_SERIAL | IE_VBLANK ldh [rIE], a xor a @@ -329,7 +329,7 @@ PrintPartymon: push af xor a ldh [rIF], a - ld a, (1 << SERIAL) | (1 << VBLANK) + ld a, IE_SERIAL | IE_VBLANK ldh [rIE], a xor a @@ -393,7 +393,7 @@ _PrintDiploma: push af xor a ldh [rIF], a - ld a, (1 << SERIAL) | (1 << VBLANK) + ld a, IE_SERIAL | IE_VBLANK ldh [rIE], a ld hl, hVBlank @@ -463,9 +463,9 @@ CheckCancelPrint: ld [wPrinterOpcode], a ld a, $88 ldh [rSB], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a .loop2 ld a, [wPrinterOpcode] @@ -481,14 +481,14 @@ CheckCancelPrint: Printer_CopyTilemapToBuffer: hlcoord 0, 0 ld de, wPrinterTilemapBuffer - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyBytes ret Printer_CopyBufferToTilemap: ld hl, wPrinterTilemapBuffer decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyBytes ret @@ -630,7 +630,7 @@ PrintPCBox_Page1: xor a ld [wWhichBoxMonToPrint], a hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, " " call ByteFill call Printer_PlaceEmptyBoxSlotString @@ -667,7 +667,7 @@ PrintPCBox_Page1: PrintPCBox_Page2: hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, " " call ByteFill call Printer_PlaceEmptyBoxSlotString @@ -684,7 +684,7 @@ PrintPCBox_Page2: PrintPCBox_Page3: hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, " " call ByteFill call Printer_PlaceEmptyBoxSlotString @@ -701,7 +701,7 @@ PrintPCBox_Page3: PrintPCBox_Page4: hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA ld a, " " call ByteFill call Printer_PlaceEmptyBoxSlotString diff --git a/engine/printer/printer_serial.asm b/engine/printer/printer_serial.asm index c086df00..5f06f069 100644 --- a/engine/printer/printer_serial.asm +++ b/engine/printer/printer_serial.asm @@ -270,9 +270,9 @@ Printer_WaitHandshake: ld [wPrinterOpcode], a ld a, $88 ldh [rSB], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a ret @@ -613,9 +613,9 @@ Printer_Send0x08: Printer_SerialSend: ldh [rSB], a - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a ret diff --git a/engine/rtc/rtc.asm b/engine/rtc/rtc.asm index 5582f581..943d786f 100644 --- a/engine/rtc/rtc.asm +++ b/engine/rtc/rtc.asm @@ -1,24 +1,24 @@ StopRTC: ; unreferenced - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a call LatchClock - ld a, RTC_DH - ld [MBC3SRamBank], a - ld a, [MBC3RTC] - set RTC_DH_HALT, a - ld [MBC3RTC], a + ld a, RAMB_RTC_DH + ld [rRAMB], a + ld a, [rRTCREG] + set B_RAMB_RTC_DH_HALT, a + ld [rRTCREG], a call CloseSRAM ret StartRTC: - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a call LatchClock - ld a, RTC_DH - ld [MBC3SRamBank], a - ld a, [MBC3RTC] - res RTC_DH_HALT, a - ld [MBC3RTC], a + ld a, RAMB_RTC_DH + ld [rRAMB], a + ld a, [rRTCREG] + res B_RAMB_RTC_DH_HALT, a + ld [rRTCREG], a call CloseSRAM ret @@ -74,15 +74,15 @@ StageRTCTimeForSave: ret SaveRTC: - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a call LatchClock - ld hl, MBC3RTC - ld a, RTC_DH - ld [MBC3SRamBank], a - res RTC_DH_OVERFLOW, [hl] + ld hl, rRTCREG + ld a, RAMB_RTC_DH + ld [rRAMB], a + res B_RAMB_RTC_DH_CARRY, [hl] ld a, BANK(sRTCStatusFlags) - ld [MBC3SRamBank], a + ld [rRAMB], a xor a ld [sRTCStatusFlags], a call CloseSRAM @@ -102,9 +102,9 @@ StartClock:: _FixDays: ld hl, hRTCDayHi - bit RTC_DH_OVERFLOW, [hl] + bit B_RAMB_RTC_DH_CARRY, [hl] jr nz, .reset_rtc - bit RTC_DH_HALT, [hl] + bit B_RAMB_RTC_DH_HALT, [hl] jr nz, .reset_rtc xor a ret @@ -115,16 +115,16 @@ _FixDays: ret _GetClock: - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a call LatchClock - ld a, RTC_DH - ld [MBC3SRamBank], a - ld a, [MBC3RTC] + ld a, RAMB_RTC_DH + ld [rRAMB], a + ld a, [rRTCREG] push af call CloseSRAM pop af - bit RTC_DH_HALT, a + bit B_RAMB_RTC_DH_HALT, a ret z ld a, BANK(sRTCHaltCheckValue) diff --git a/engine/rtc/timeset.asm b/engine/rtc/timeset.asm index 5eae4d94..f8859a77 100644 --- a/engine/rtc/timeset.asm +++ b/engine/rtc/timeset.asm @@ -121,7 +121,7 @@ InitClock: xor a ldh [hBGMapMode], a hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld bc, SCREEN_AREA xor a call ByteFill ld a, $1 diff --git a/engine/sprite_anims/core.asm b/engine/sprite_anims/core.asm index bb5604c7..538f3eb0 100644 --- a/engine/sprite_anims/core.asm +++ b/engine/sprite_anims/core.asm @@ -305,7 +305,7 @@ AddOrSubtractY: push hl ld a, [hl] ld hl, wCurSpriteOAMFlags - bit OAM_Y_FLIP, [hl] + bit B_OAM_YFLIP, [hl] jr z, .ok ; -8 - a add 8 @@ -320,7 +320,7 @@ AddOrSubtractX: push hl ld a, [hl] ld hl, wCurSpriteOAMFlags - bit OAM_X_FLIP, [hl] + bit B_OAM_XFLIP, [hl] jr z, .ok ; -8 - a add 8 @@ -336,10 +336,10 @@ GetSpriteOAMAttr: ld b, a ld a, [hl] xor b - and PRIORITY | Y_FLIP | X_FLIP + and OAM_PRIO | OAM_YFLIP | OAM_XFLIP ld b, a ld a, [hl] - and ~(PRIORITY | Y_FLIP | X_FLIP) + and ~(OAM_PRIO | OAM_YFLIP | OAM_XFLIP) or b ret @@ -424,7 +424,7 @@ GetSpriteAnimFrame: push af ld a, [hl] push hl - and ~(Y_FLIP << 1 | X_FLIP << 1) + and ~(OAM_YFLIP << 1 | OAM_XFLIP << 1) ld hl, SPRITEANIMSTRUCT_DURATIONOFFSET add hl, bc add [hl] @@ -434,7 +434,7 @@ GetSpriteAnimFrame: pop hl .okay ld a, [hl] - and Y_FLIP << 1 | X_FLIP << 1 ; The << 1 is compensated in the "oamframe" macro + and OAM_YFLIP << 1 | OAM_XFLIP << 1 ; The << 1 is compensated in the "oamframe" macro srl a ld [wCurSpriteOAMFlags], a pop af diff --git a/engine/tilesets/map_palettes.asm b/engine/tilesets/map_palettes.asm index cf2fde84..54438f1d 100644 --- a/engine/tilesets/map_palettes.asm +++ b/engine/tilesets/map_palettes.asm @@ -20,7 +20,7 @@ _LoadOverworldAttrmapPals:: ld h, a ld a, [hl] and $f - bit OAM_TILE_BANK, a + bit B_OAM_BANK1, a jr z, .next jr .by_map_group @@ -34,7 +34,7 @@ _LoadOverworldAttrmapPals:: ld a, [hl] swap a and $f - bit OAM_TILE_BANK, a + bit B_OAM_BANK1, a jr z, .next .by_map_group @@ -76,7 +76,7 @@ _ScrollBGMapPalettes:: ld h, a ld a, [hl] and $f - bit OAM_TILE_BANK, a + bit B_OAM_BANK1, a jr z, .next jr .by_map_group @@ -90,7 +90,7 @@ _ScrollBGMapPalettes:: ld a, [hl] swap a and $f - bit OAM_TILE_BANK, a + bit B_OAM_BANK1, a jr z, .next .by_map_group diff --git a/engine/tilesets/tileset_anims.asm b/engine/tilesets/tileset_anims.asm index 7695c3ab..aa4af920 100644 --- a/engine/tilesets/tileset_anims.asm +++ b/engine/tilesets/tileset_anims.asm @@ -296,7 +296,7 @@ ScrollTileUpDown: ; unreferenced ScrollTileLeft: ld h, d ld l, e - ld c, LEN_2BPP_TILE / 4 + ld c, TILE_SIZE / 4 .loop rept 4 ld a, [hl] @@ -310,7 +310,7 @@ endr ScrollTileRight: ld h, d ld l, e - ld c, LEN_2BPP_TILE / 4 + ld c, TILE_SIZE / 4 .loop rept 4 ld a, [hl] @@ -327,9 +327,9 @@ ScrollTileUp: ld d, [hl] inc hl ld e, [hl] - ld bc, LEN_2BPP_TILE - 2 + ld bc, TILE_SIZE - 2 add hl, bc - ld a, LEN_2BPP_TILE / 4 + ld a, TILE_SIZE / 4 .loop ld c, [hl] ld [hl], e @@ -350,14 +350,14 @@ ScrollTileUp: ScrollTileDown: ld h, d ld l, e - ld de, LEN_2BPP_TILE - 2 + ld de, TILE_SIZE - 2 push hl add hl, de ld d, [hl] inc hl ld e, [hl] pop hl - ld a, LEN_2BPP_TILE / 4 + ld a, TILE_SIZE / 4 .loop ld b, [hl] ld [hl], d @@ -632,7 +632,7 @@ WriteTile: ld [hl], e inc hl ld [hl], d -rept (LEN_2BPP_TILE - 2) / 2 +rept (TILE_SIZE - 2) / 2 pop de inc hl ld [hl], e @@ -666,7 +666,7 @@ AnimateWaterPalette: ret nz ; Ready for BGPD input - ld a, (1 << rBGPI_AUTO_INCREMENT) palette PAL_BG_WATER color 0 + ld a, BGPI_AUTOINC palette PAL_BG_WATER color 0 ldh [rBGPI], a ; A cycle of 4 colors (0 1 2 1), updating every other tick @@ -719,7 +719,7 @@ FlickeringCaveEntrancePalette: ret nz ; Ready for BGPD input - ld a, (1 << rBGPI_AUTO_INCREMENT) palette PAL_BG_YELLOW color 0 + ld a, BGPI_AUTOINC palette PAL_BG_YELLOW color 0 ldh [rBGPI], a ; A cycle of 2 colors (0 2), updating every other vblank diff --git a/gfx/font.asm b/gfx/font.asm index 81e49cd4..9ecc7315 100644 --- a/gfx/font.asm +++ b/gfx/font.asm @@ -8,7 +8,7 @@ FontBattleExtra: INCBIN "gfx/font/font_battle_extra.2bpp" Frames: - table_width TEXTBOX_FRAME_TILES * LEN_1BPP_TILE + table_width TEXTBOX_FRAME_TILES * TILE_1BPP_SIZE INCBIN "gfx/frames/1.1bpp" INCBIN "gfx/frames/2.1bpp" INCBIN "gfx/frames/3.1bpp" diff --git a/gfx/footprints.asm b/gfx/footprints.asm index 297929b3..5d737763 100644 --- a/gfx/footprints.asm +++ b/gfx/footprints.asm @@ -4,12 +4,12 @@ ; then a row of the bottom two tiles for those eight footprints. ; These macros help extract the first and the last two tiles, respectively. -DEF footprint_top EQUS "0, 2 * LEN_1BPP_TILE" -DEF footprint_bottom EQUS "2 * LEN_1BPP_TILE, 2 * LEN_1BPP_TILE" +DEF footprint_top EQUS "0, 2 * TILE_1BPP_SIZE" +DEF footprint_bottom EQUS "2 * TILE_1BPP_SIZE, 2 * TILE_1BPP_SIZE" Footprints: ; Entries correspond to Pokémon species, two apiece, 8 tops then 8 bottoms - table_width LEN_1BPP_TILE * 4 + table_width TILE_1BPP_SIZE * 4 ; 001-008 top halves INCBIN "gfx/footprints/bulbasaur.1bpp", footprint_top diff --git a/gfx/tileset_palette_maps.asm b/gfx/tileset_palette_maps.asm index 87d9faaf..ff098862 100644 --- a/gfx/tileset_palette_maps.asm +++ b/gfx/tileset_palette_maps.asm @@ -1,7 +1,7 @@ MACRO tilepal ; used in gfx/tilesets/*_palette_map.asm ; vram bank, pals - DEF x = \1 << OAM_TILE_BANK + DEF x = OAM_BANK\1 rept (_NARG - 1) / 2 dn (x | PAL_BG_\3), (x | PAL_BG_\2) shift 2 diff --git a/home/audio.asm b/home/audio.asm index ebe15b65..427fd61c 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -10,13 +10,13 @@ InitSound:: push af ld a, BANK(_InitSound) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a call _InitSound pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a pop af pop bc @@ -34,13 +34,13 @@ UpdateSound:: push af ld a, BANK(_UpdateSound) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a call _UpdateSound pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a pop af pop bc @@ -51,14 +51,14 @@ UpdateSound:: _LoadMusicByte:: ; [wCurMusicByte] = [a:de] ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ld a, [de] ld [wCurMusicByte], a ld a, BANK(LoadMusicByte) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ret PlayMusic:: @@ -73,7 +73,7 @@ PlayMusic:: push af ld a, BANK(_PlayMusic) ; aka BANK(_InitSound) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ld a, e and a @@ -88,7 +88,7 @@ PlayMusic:: .end pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a pop af pop bc pop de @@ -107,7 +107,7 @@ PlayMusic2:: push af ld a, BANK(_PlayMusic) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a push de ld de, MUSIC_NONE @@ -118,7 +118,7 @@ PlayMusic2:: pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a pop af pop bc @@ -140,7 +140,7 @@ PlayCry:: ; Cries are stuck in one bank. ld a, BANK(PokemonCries) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ld hl, PokemonCries rept MON_CRY_LENGTH @@ -163,13 +163,13 @@ endr ld a, BANK(_PlayCry) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a call _PlayCry pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a pop af pop bc @@ -200,7 +200,7 @@ PlaySFX:: push af ld a, BANK(_PlaySFX) ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ld a, e ld [wCurSFX], a @@ -208,7 +208,7 @@ PlaySFX:: pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a .done pop af @@ -498,9 +498,9 @@ TerminateExpBarSound:: xor a ld [wChannel5Flags1], a ld [wPitchSweep], a - ldh [rNR10], a - ldh [rNR11], a - ldh [rNR12], a - ldh [rNR13], a - ldh [rNR14], a + ldh [rAUD1SWEEP], a + ldh [rAUD1LEN], a + ldh [rAUD1ENV], a + ldh [rAUD1LOW], a + ldh [rAUD1HIGH], a ret diff --git a/home/battle.asm b/home/battle.asm index e209682f..6ca1fc40 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -164,7 +164,7 @@ FarCopyRadioText:: ld d, a ld a, [hli] ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ld a, e ld l, a ld a, d @@ -174,7 +174,7 @@ FarCopyRadioText:: call CopyBytes pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ret @@ -252,6 +252,6 @@ PushLYOverrides:: ld a, HIGH(wLYOverrides) ld [wRequested2bppDest + 1], a - ld a, (wLYOverridesEnd - wLYOverrides) / LEN_2BPP_TILE + ld a, (wLYOverridesEnd - wLYOverrides) / TILE_SIZE ld [wRequested2bppSize], a ret diff --git a/home/clear_sprites.asm b/home/clear_sprites.asm index d8e25766..aac6c71a 100644 --- a/home/clear_sprites.asm +++ b/home/clear_sprites.asm @@ -12,8 +12,8 @@ ClearSprites:: HideSprites:: ; Set all OAM y-positions to 160 to hide them offscreen ld hl, wShadowOAMSprite00YCoord - ld de, SPRITEOAMSTRUCT_LENGTH - ld b, NUM_SPRITE_OAM_STRUCTS + ld de, OBJ_SIZE + ld b, OAM_COUNT ld a, OAM_YCOORD_HIDDEN .loop ld [hl], a ; y diff --git a/home/gfx.asm b/home/gfx.asm index 1596e9fb..9f45f383 100644 --- a/home/gfx.asm +++ b/home/gfx.asm @@ -206,7 +206,7 @@ Request1bpp:: Get2bpp:: ; copy c 2bpp tiles from b:de to hl ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a jp nz, Request2bpp push hl @@ -217,7 +217,7 @@ Get2bpp:: ; bank ld a, b -; bc = c * LEN_2BPP_TILE +; bc = c * TILE_SIZE push af swap c ld a, $f @@ -233,7 +233,7 @@ Get2bpp:: Get1bpp:: ; copy c 1bpp tiles from b:de to hl ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a jp nz, Request1bpp push de @@ -243,7 +243,7 @@ Get1bpp:: ; bank ld a, b -; bc = c * LEN_1BPP_TILE +; bc = c * TILE_1BPP_SIZE push af ld h, 0 ld l, c @@ -268,7 +268,7 @@ DuplicateGet2bpp:: ; unreferenced ; bank ld a, b -; bc = c * LEN_2BPP_TILE +; bc = c * TILE_SIZE ld h, 0 ld l, c add hl, hl diff --git a/home/header.asm b/home/header.asm index cb9b7b8f..940911f5 100644 --- a/home/header.asm +++ b/home/header.asm @@ -11,7 +11,7 @@ FarCall:: SECTION "rst10", ROM0[$0010] Bankswitch:: ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ret SECTION "rst18", ROM0[$0018] diff --git a/home/init.asm b/home/init.asm index 606bf5a2..dea40f76 100644 --- a/home/init.asm +++ b/home/init.asm @@ -14,7 +14,7 @@ Reset:: jr Init _Start:: - cp $11 + cp BOOTUP_A_CGB jr z, .cgb xor a ; FALSE jr .load @@ -94,14 +94,14 @@ Init:: ldh [hSCY], a ldh [rJOYP], a - ld a, $8 ; HBlank int enable + ld a, STAT_MODE_0 ldh [rSTAT], a - ld a, $90 + ld a, SCREEN_HEIGHT_PX ldh [hWY], a ldh [rWY], a - ld a, 7 + ld a, WX_OFS ldh [hWX], a ldh [rWX], a @@ -122,11 +122,11 @@ Init:: farcall StartClock - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a - ld a, SRAM_DISABLE - ld [MBC3LatchClock], a - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a + ld a, RAMG_SRAM_DISABLE + ld [rRTCLATCH], a + ld [rRAMG], a ld a, LCDC_DEFAULT ; %11100011 ; LCD on diff --git a/home/joypad.asm b/home/joypad.asm index 39e9942e..e969ce82 100644 --- a/home/joypad.asm +++ b/home/joypad.asm @@ -38,7 +38,7 @@ UpdateJoypad:: ; We can only get four inputs at a time. ; We take d-pad first for no particular reason. - ld a, 1 << rJOYP_DPAD + ld a, JOYP_GET_CTRL_PAD ldh [rJOYP], a ; Read twice to give the request time to take. ldh a, [rJOYP] @@ -47,7 +47,7 @@ UpdateJoypad:: ; The Joypad register output is in the lo nybble (inversed). ; We make the hi nybble of our new container d-pad input. cpl - and $f + and JOYP_INPUTS swap a ; We'll keep this in b for now. @@ -55,7 +55,7 @@ UpdateJoypad:: ; Buttons make 8 total inputs (A, B, Select, Start). ; We can fit this into one byte. - ld a, 1 << rJOYP_BUTTONS + ld a, JOYP_GET_BUTTONS ldh [rJOYP], a ; Wait for input to stabilize. rept 6 @@ -63,12 +63,12 @@ rept 6 endr ; Buttons take the lo nybble. cpl - and $f + and JOYP_INPUTS or b ld b, a ; Reset the joypad register since we're done with it. - ld a, (1 << rJOYP_BUTTONS) | (1 << rJOYP_DPAD) + ld a, JOYP_GET_NONE ldh [rJOYP], a ; To get the delta we xor the last frame's input with the new one. diff --git a/home/lcd.asm b/home/lcd.asm index bca40ba8..8adf3625 100644 --- a/home/lcd.asm +++ b/home/lcd.asm @@ -27,7 +27,7 @@ DisableLCD:: ; Don't need to do anything if the LCD is already off ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a ret z xor a @@ -36,7 +36,7 @@ DisableLCD:: ld b, a ; Disable VBlank - res VBLANK, a + res B_IE_VBLANK, a ldh [rIE], a .wait @@ -46,7 +46,7 @@ DisableLCD:: jr nz, .wait ldh a, [rLCDC] - and ~(1 << rLCDC_ENABLE) + and ~LCDC_ON ldh [rLCDC], a xor a @@ -57,6 +57,6 @@ DisableLCD:: EnableLCD:: ldh a, [rLCDC] - set rLCDC_ENABLE, a + set B_LCDC_ENABLE, a ldh [rLCDC], a ret diff --git a/home/map.asm b/home/map.asm index 5ed7bac6..75942db2 100644 --- a/home/map.asm +++ b/home/map.asm @@ -106,7 +106,7 @@ LoadOverworldTilemap:: ld a, "■" hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call ByteFill ld a, BANK(_LoadOverworldTilemap) @@ -276,7 +276,7 @@ LoadMapTimeOfDay:: ld [hli], a dec c jr nz, .column - ld bc, BG_MAP_WIDTH - SCREEN_WIDTH + ld bc, TILEMAP_WIDTH - SCREEN_WIDTH add hl, bc pop bc dec b @@ -1582,7 +1582,7 @@ ScrollMapDown:: ld l, a ld a, [wBGMapAnchor + 1] ld h, a - ld bc, BG_MAP_WIDTH tiles + ld bc, TILEMAP_WIDTH tiles add hl, bc ; cap d at HIGH(vBGMap0) ld a, h @@ -1667,7 +1667,7 @@ UpdateBGMapRow:: push de call .iteration pop de - ld a, BG_MAP_WIDTH + ld a, TILEMAP_WIDTH add e ld e, a @@ -1701,7 +1701,7 @@ UpdateBGMapColumn:: ld [hli], a ld a, d ld [hli], a - ld a, BG_MAP_WIDTH + ld a, TILEMAP_WIDTH add e ld e, a jr nc, .skip diff --git a/home/palettes.asm b/home/palettes.asm index 6a042728..c20d92af 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -20,7 +20,7 @@ UpdateCGBPals:: ld hl, wBGPals2 ; copy 8 pals to bgpd - ld a, 1 << rBGPI_AUTO_INCREMENT + ld a, BGPI_AUTOINC ldh [rBGPI], a ld c, 8 / 2 .bgp @@ -35,7 +35,7 @@ endr ; hl is now wOBPals2 ; copy 8 pals to obpd - ld a, 1 << rOBPI_AUTO_INCREMENT + ld a, OBPI_AUTOINC ldh [rOBPI], a ld c, 8 / 2 .obp @@ -191,14 +191,14 @@ CopyPals:: ; copy c palettes in order b from de to hl push bc - ld c, NUM_PAL_COLORS + ld c, PAL_COLORS .loop push de push hl ; get pal color ld a, b - maskbits 1 << PAL_COLOR_SIZE + maskbits 1 << COLOR_SIZE ; 2 bytes per color add a ld l, a @@ -216,7 +216,7 @@ CopyPals:: ld [hl], d inc hl ; next pal color -rept PAL_COLOR_SIZE +rept COLOR_SIZE srl b endr ; source @@ -226,7 +226,7 @@ endr jr nz, .loop ; de += 8 (next pal) - ld a, PALETTE_SIZE + ld a, PAL_SIZE add e jr nc, .ok inc d @@ -259,7 +259,7 @@ ClearVBank1:: ReloadPalettes:: hlcoord 0, 0 decoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA .loop ld a, [hli] cp "■" diff --git a/home/printer.asm b/home/printer.asm index 6fe1f4f9..c943e93f 100644 --- a/home/printer.asm +++ b/home/printer.asm @@ -31,11 +31,11 @@ AskSerial:: ldh [rSB], a ; switch to internal clock - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a ; start transfer - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a ret diff --git a/home/serial.asm b/home/serial.asm index 28195ca0..589e2980 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -24,9 +24,9 @@ Serial:: cp USING_INTERNAL_CLOCK jr z, .player2 - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_START | SC_EXTERNAL ldh [rSC], a jr .player2 @@ -57,9 +57,9 @@ Serial:: bit 7, a ; wait until rDIV has incremented from 3 to $80 or more jr nz, .delay_loop - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_START | SC_EXTERNAL ldh [rSC], a jr .player2 @@ -126,9 +126,9 @@ Serial_ExchangeByte:: ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .not_player_2 - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a .not_player_2 .loop @@ -156,8 +156,8 @@ Serial_ExchangeByte:: .not_player_1_or_timed_out ldh a, [rIE] - and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - cp 1 << SERIAL + and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK + cp IE_SERIAL jr nz, .loop ld a, [wLinkByteTimeout] dec a @@ -180,8 +180,8 @@ Serial_ExchangeByte:: xor a ldh [hSerialReceivedNewData], a ldh a, [rIE] - and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - sub 1 << SERIAL + and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK + sub IE_SERIAL jr nz, .non_serial_interrupts_enabled ; a == 0 @@ -212,8 +212,8 @@ Serial_ExchangeByte:: .timed_out ldh a, [rIE] - and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - cp 1 << SERIAL + and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK + cp IE_SERIAL ld a, SERIAL_NO_DATA_BYTE ret z ld a, [hl] @@ -362,9 +362,9 @@ LinkTransfer:: ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .player_1 - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a .player_1 @@ -392,9 +392,9 @@ LinkDataReceived:: ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ret nz - ld a, (0 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_INTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (1 << rSC_CLOCK) + ld a, SC_START | SC_INTERNAL ldh [rSC], a ret @@ -407,8 +407,8 @@ SetBitsForTimeCapsuleRequestIfNotLinked:: ; unreferenced ldh [rSB], a xor a ldh [hSerialReceive], a - ld a, (0 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_EXTERNAL ldh [rSC], a - ld a, (1 << rSC_ON) | (0 << rSC_CLOCK) + ld a, SC_START | SC_EXTERNAL ldh [rSC], a ret diff --git a/home/sram.asm b/home/sram.asm index 4d84c350..5ffc5c43 100644 --- a/home/sram.asm +++ b/home/sram.asm @@ -3,21 +3,21 @@ OpenSRAM:: push af ; latch clock data ld a, 1 - ld [MBC3LatchClock], a + ld [rRTCLATCH], a ; enable sram/clock write - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ; select sram bank pop af - ld [MBC3SRamBank], a + ld [rRAMB], a ret CloseSRAM:: push af - ld a, SRAM_DISABLE + ld a, RAMG_SRAM_DISABLE ; reset clock latch for next time - ld [MBC3LatchClock], a + ld [rRTCLATCH], a ; disable sram/clock write - ld [MBC3SRamEnable], a + ld [rRAMG], a pop af ret diff --git a/home/text.asm b/home/text.asm index 72f69ebb..fce949ea 100644 --- a/home/text.asm +++ b/home/text.asm @@ -26,14 +26,14 @@ ClearTilemap:: ; Update the BG Map. ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a ret z jp WaitBGMap ClearScreen:: ld a, PAL_BG_TEXT hlcoord 0, 0, wAttrmap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call ByteFill jr ClearTilemap @@ -678,7 +678,7 @@ TextCommand_FAR:: ld a, [hli] ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a push hl ld h, d @@ -688,7 +688,7 @@ TextCommand_FAR:: pop af ldh [hROMBank], a - ld [MBC3RomBank], a + ld [rROMB0], a ret TextCommand_BCD:: diff --git a/home/tilemap.asm b/home/tilemap.asm index f69a0660..a7ddd053 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -104,7 +104,7 @@ CopyTilemapAtOnce:: ld l, 0 ld a, SCREEN_HEIGHT ldh [hTilesPerCycle], a - ld b, 1 << 1 ; not in v/hblank + ld b, STAT_BUSY ld c, LOW(rSTAT) .loop @@ -122,7 +122,7 @@ rept SCREEN_WIDTH / 2 inc l endr - ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld de, TILEMAP_WIDTH - SCREEN_WIDTH add hl, de ldh a, [hTilesPerCycle] dec a diff --git a/home/time.asm b/home/time.asm index 5f19b7e8..786abbb3 100644 --- a/home/time.asm +++ b/home/time.asm @@ -6,9 +6,9 @@ Timer:: ; unreferenced LatchClock:: ; latch clock counter data ld a, 0 - ld [MBC3LatchClock], a + ld [rRTCLATCH], a ld a, 1 - ld [MBC3LatchClock], a + ld [rRTCLATCH], a ret UpdateTime:: @@ -22,35 +22,35 @@ GetClock:: ; store clock data in hRTCDayHi-hRTCSeconds ; enable clock r/w - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ; clock data is 'backwards' in hram call LatchClock - ld hl, MBC3SRamBank - ld de, MBC3RTC + ld hl, rRAMB + ld de, rRTCREG - ld [hl], RTC_S + ld [hl], RAMB_RTC_S ld a, [de] maskbits 60 ldh [hRTCSeconds], a - ld [hl], RTC_M + ld [hl], RAMB_RTC_M ld a, [de] maskbits 60 ldh [hRTCMinutes], a - ld [hl], RTC_H + ld [hl], RAMB_RTC_H ld a, [de] maskbits 24 ldh [hRTCHours], a - ld [hl], RTC_DL + ld [hl], RAMB_RTC_DL ld a, [de] ldh [hRTCDayLo], a - ld [hl], RTC_DH + ld [hl], RAMB_RTC_DH ld a, [de] ldh [hRTCDayHi], a @@ -64,10 +64,10 @@ FixDays:: ; check if day count > 255 (bit 8 set) ldh a, [hRTCDayHi] ; DH - bit RTC_DH_HI, a + bit B_RAMB_RTC_DH_HIGH, a jr z, .daylo ; reset dh (bit 8) - res RTC_DH_HI, a + res B_RAMB_RTC_DH_HIGH, a ldh [hRTCDayHi], a ; mod 140 @@ -206,43 +206,43 @@ SetClock:: ; set clock data from hram ; enable clock r/w - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ; set clock data ; stored 'backwards' in hram call LatchClock - ld hl, MBC3SRamBank - ld de, MBC3RTC + ld hl, rRAMB + ld de, rRTCREG ; seems to be a halt check that got partially commented out ; this block is totally pointless - ld [hl], RTC_DH + ld [hl], RAMB_RTC_DH ld a, [de] - bit RTC_DH_HALT, a + bit B_RAMB_RTC_DH_HALT, a ld [de], a ; seconds - ld [hl], RTC_S + ld [hl], RAMB_RTC_S ldh a, [hRTCSeconds] ld [de], a ; minutes - ld [hl], RTC_M + ld [hl], RAMB_RTC_M ldh a, [hRTCMinutes] ld [de], a ; hours - ld [hl], RTC_H + ld [hl], RAMB_RTC_H ldh a, [hRTCHours] ld [de], a ; day lo - ld [hl], RTC_DL + ld [hl], RAMB_RTC_DL ldh a, [hRTCDayLo] ld [de], a ; day hi - ld [hl], RTC_DH + ld [hl], RAMB_RTC_DH ldh a, [hRTCDayHi] - res RTC_DH_HALT, a ; make sure timer is active + res B_RAMB_RTC_DH_HALT, a ; make sure timer is active ld [de], a ; cleanup diff --git a/home/vblank.asm b/home/vblank.asm index fe596363..012f6c77 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -190,13 +190,13 @@ VBlank_Cutscene:: xor a ldh [rIF], a ; enable lcd stat - ld a, 1 << LCD_STAT + ld a, IE_STAT ldh [rIE], a ; rerequest serial int if applicable (still disabled) ; request lcd stat ld a, b - and 1 << SERIAL - or 1 << LCD_STAT + and IF_SERIAL + or IF_STAT ldh [rIF], a ei @@ -286,7 +286,7 @@ VBlank_Credits:: xor a ldh [rIF], a - ld a, 1 << LCD_STAT + ld a, IE_STAT ldh [rIE], a ; request lcd stat ldh [rIF], a @@ -384,9 +384,10 @@ VBlank_Unused:: xor a ldh [rIF], a ; enable lcd stat - ld a, 1 << LCD_STAT + ld a, IE_STAT ldh [rIE], a ; request lcd stat + assert IE_STAT == IF_STAT ldh [rIF], a ei diff --git a/home/video.asm b/home/video.asm index 26eb6ff3..30c26954 100644 --- a/home/video.asm +++ b/home/video.asm @@ -169,7 +169,7 @@ DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 ldh a, [hBGMapAddress] ld l, a - ld de, 2 * THIRD_HEIGHT * BG_MAP_WIDTH + ld de, 2 * THIRD_HEIGHT * TILEMAP_WIDTH add hl, de ; Next time: top third @@ -186,7 +186,7 @@ DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 ldh a, [hBGMapAddress] ld l, a - ld de, THIRD_HEIGHT * BG_MAP_WIDTH + ld de, THIRD_HEIGHT * TILEMAP_WIDTH add hl, de ; Next time: bottom third @@ -212,7 +212,7 @@ DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 ld a, THIRD_HEIGHT ; Discrepancy between wTilemap and BGMap - ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1) + ld bc, TILEMAP_WIDTH - (SCREEN_WIDTH - 1) .row ; Copy a row of 20 tiles @@ -390,7 +390,7 @@ Video_DummyFunction:: ; unreferenced EnableSpriteDisplay:: ; unreferenced ld hl, rLCDC - set rLCDC_SPRITES_ENABLE, [hl] + set B_LCDC_OBJS, [hl] ret FillBGMap0WithBlack:: @@ -405,7 +405,7 @@ FillBGMap0WithBlack:: jr z, .two ; 3 -DEF BG_THIRD_HEIGHT EQU (BG_MAP_HEIGHT - SCREEN_HEIGHT) / 2 +DEF BG_THIRD_HEIGHT EQU (TILEMAP_HEIGHT - SCREEN_HEIGHT) / 2 ; Black out the 18 BG Map rows right of the screen area ld a, 2 @@ -419,7 +419,7 @@ DEF BG_THIRD_HEIGHT EQU (BG_MAP_HEIGHT - SCREEN_HEIGHT) / 2 ld b, SCREEN_HEIGHT ld a, "■" .loop1 -rept BG_MAP_WIDTH - SCREEN_WIDTH +rept TILEMAP_WIDTH - SCREEN_WIDTH ld [hli], a endr add hl, de @@ -430,13 +430,13 @@ endr .two ; Black out the top 7 BG Map rows below the screen area ld a, 1 - ld de, BG_MAP_WIDTH * SCREEN_HEIGHT + ld de, TILEMAP_WIDTH * SCREEN_HEIGHT jr .go .one ; Black out the bottom 7 BG Map rows below the screen area xor a - ld de, BG_MAP_WIDTH * (SCREEN_HEIGHT + BG_THIRD_HEIGHT) + ld de, TILEMAP_WIDTH * (SCREEN_HEIGHT + BG_THIRD_HEIGHT) .go ldh [hBlackOutBGMapThird], a @@ -448,7 +448,7 @@ endr ld b, BG_THIRD_HEIGHT * 2 ld a, "■" .loop2 -rept BG_MAP_WIDTH / 2 +rept TILEMAP_WIDTH / 2 ld [hli], a endr dec b diff --git a/includes.asm b/includes.asm index 7c269958..a358f6d7 100644 --- a/includes.asm +++ b/includes.asm @@ -19,9 +19,8 @@ INCLUDE "macros/scripts/battle_commands.asm" INCLUDE "macros/scripts/battle_anims.asm" INCLUDE "macros/scripts/oam_anims.asm" -INCLUDE "macros/legacy.asm" +INCLUDE "constants/hardware.inc" -INCLUDE "constants/hardware_constants.asm" INCLUDE "constants/deco_constants.asm" INCLUDE "constants/ram_constants.asm" INCLUDE "constants/misc_constants.asm" @@ -73,3 +72,5 @@ ENDC IF DEF(_SILVER_VC) INCLUDE "vc/pokesilver.constants.asm" ENDC + +INCLUDE "macros/legacy.asm" diff --git a/macros/coords.asm b/macros/coords.asm index a135f7d4..2df93f3b 100644 --- a/macros/coords.asm +++ b/macros/coords.asm @@ -36,9 +36,9 @@ ENDM MACRO bgcoord ; register, x, y[, origin] if _NARG < 4 - ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0 + ld \1, (\3) * TILEMAP_WIDTH + (\2) + vBGMap0 else - ld \1, (\3) * BG_MAP_WIDTH + (\2) + \4 + ld \1, (\3) * TILEMAP_WIDTH + (\2) + \4 endc ENDM diff --git a/macros/gfx.asm b/macros/gfx.asm index 66b97a07..760101f8 100644 --- a/macros/gfx.asm +++ b/macros/gfx.asm @@ -19,18 +19,18 @@ DEF palred EQUS "(1 << 0) *" DEF palgreen EQUS "(1 << 5) *" DEF palblue EQUS "(1 << 10) *" -DEF palettes EQUS "* PALETTE_SIZE" -DEF palette EQUS "+ PALETTE_SIZE *" -DEF color EQUS "+ PAL_COLOR_SIZE *" -DEF colors EQUS "* PAL_COLOR_SIZE" +DEF palettes EQUS "* PAL_SIZE" +DEF palette EQUS "+ PAL_SIZE *" +DEF color EQUS "+ COLOR_SIZE *" +DEF colors EQUS "* COLOR_SIZE" -DEF tiles EQUS "* LEN_2BPP_TILE" -DEF tile EQUS "+ LEN_2BPP_TILE *" +DEF tiles EQUS "* TILE_SIZE" +DEF tile EQUS "+ TILE_SIZE *" ; extracts the middle two colors from a 2bpp binary palette ; example usage: ; INCBIN "foo.gbcpal", middle_colors -DEF middle_colors EQUS "PAL_COLOR_SIZE, PAL_COLOR_SIZE * 2" +DEF middle_colors EQUS "COLOR_SIZE, COLOR_SIZE * 2" MACRO dbpixel if _NARG >= 4 diff --git a/macros/legacy.asm b/macros/legacy.asm index a847c0bb..f1fd26f0 100644 --- a/macros/legacy.asm +++ b/macros/legacy.asm @@ -417,3 +417,115 @@ DEF SPRITE_BUENA EQUS "SPRITE_BEAUTY" DEF PAL_NPC_SILVER EQUS "PAL_NPC_EMOTE" DEF PAL_OW_SILVER EQUS "PAL_OW_EMOTE" + +; constants/hardware.inc (formerly constants/hardware_constants.asm) + +DEF MBC3SRamEnable EQU rRAMG +DEF MBC3RomBank EQU rROMB0 +DEF MBC3SRamBank EQU rRAMB +DEF MBC3LatchClock EQU rRTCLATCH +DEF MBC3RTC EQU rRTCREG + +DEF SRAM_DISABLE EQU RAMG_SRAM_DISABLE +DEF SRAM_ENABLE EQU RAMG_SRAM_ENABLE + +DEF RTC_S EQU RAMB_RTC_S +DEF RTC_M EQU RAMB_RTC_M +DEF RTC_H EQU RAMB_RTC_H +DEF RTC_DL EQU RAMB_RTC_DL +DEF RTC_DH EQU RAMB_RTC_DH +DEF RTC_DH_HI EQU B_RAMB_RTC_DH_HIGH +DEF RTC_DH_HALT EQU B_RAMB_RTC_DH_HALT +DEF RTC_DH_OVERFLOW EQU B_RAMB_RTC_DH_CARRY + +DEF VBLANK EQU B_IE_VBLANK +DEF LCD_STAT EQU B_IE_STAT +DEF TIMER EQU B_IE_TIMER +DEF SERIAL EQU B_IE_SERIAL +DEF JOYPAD EQU B_IE_JOYPAD + +DEF OAM_TILE_BANK EQU B_OAM_BANK1 +DEF OAM_OBP_NUM EQU B_OAM_PAL1 +DEF OAM_X_FLIP EQU B_OAM_XFLIP +DEF OAM_Y_FLIP EQU B_OAM_YFLIP +DEF OAM_PRIORITY EQU B_OAM_PRIO +DEF PALETTE_MASK EQU OAM_PALETTE +DEF VRAM_BANK_1 EQU OAM_BANK1 +DEF OBP_NUM EQU OAM_PAL1 +DEF X_FLIP EQU OAM_XFLIP +DEF Y_FLIP EQU OAM_YFLIP +DEF PRIORITY EQU OAM_PRIO + +; these bit flags are reversed in meaning +DEF rJOYP_BUTTONS EQU B_JOYP_GET_CTRL_PAD +DEF rJOYP_DPAD EQU B_JOYP_GET_BUTTONS + +DEF rSC_ON EQU B_SC_START +DEF rSC_CGB EQU B_SC_SPEED +DEF rSC_CLOCK EQU B_SC_SOURCE + +DEF rTAC_ON EQU B_TAC_START +DEF rTAC_4096_HZ EQU TAC_4KHZ +DEF rTAC_262144_HZ EQU TAC_262KHZ +DEF rTAC_65536_HZ EQU TAC_65KHZ +DEF rTAC_16384_HZ EQU TAC_16KHZ + +DEF rWave_0 EQU rAUD3WAVE_0 +DEF rWave_1 EQU rAUD3WAVE_1 +DEF rWave_2 EQU rAUD3WAVE_2 +DEF rWave_3 EQU rAUD3WAVE_3 +DEF rWave_4 EQU rAUD3WAVE_4 +DEF rWave_5 EQU rAUD3WAVE_5 +DEF rWave_6 EQU rAUD3WAVE_6 +DEF rWave_7 EQU rAUD3WAVE_7 +DEF rWave_8 EQU rAUD3WAVE_8 +DEF rWave_9 EQU rAUD3WAVE_9 +DEF rWave_a EQU rAUD3WAVE_A +DEF rWave_b EQU rAUD3WAVE_B +DEF rWave_c EQU rAUD3WAVE_C +DEF rWave_d EQU rAUD3WAVE_D +DEF rWave_e EQU rAUD3WAVE_E +DEF rWave_f EQU rAUD3WAVE_F + +DEF rLCDC_BG_PRIORITY EQU B_LCDC_PRIO +DEF rLCDC_SPRITES_ENABLE EQU B_LCDC_OBJS +DEF rLCDC_SPRITE_SIZE EQU B_LCDC_OBJ_SIZE +DEF rLCDC_BG_TILEMAP EQU B_LCDC_BG_MAP +DEF rLCDC_TILE_DATA EQU B_LCDC_BLOCKS +DEF rLCDC_WINDOW_ENABLE EQU B_LCDC_WINDOW +DEF rLCDC_WINDOW_TILEMAP EQU B_LCDC_WIN_MAP +DEF rLCDC_ENABLE EQU B_LCDC_ENABLE + +DEF rLCDMODE EQU rSYS + +DEF KEY1_PREPARE EQU B_SPD_PREPARE +DEF KEY1_DBLSPEED EQU B_SPD_DOUBLE + +DEF rBLCK EQU rBANK + +DEF rRP_LED_ON EQU B_RP_LED_ON +DEF rRP_RECEIVING EQU B_RP_DATA_IN +DEF rRP_ENABLE_READ_MASK EQU RP_ENABLE + +DEF rBGPI_AUTO_INCREMENT EQU B_BGPI_AUTOINC + +DEF rOBPI_AUTO_INCREMENT EQU B_OBPI_AUTOINC + +; constants/gfx_constants.asm + +DEF LEN_1BPP_TILE EQU TILE_1BPP_SIZE +DEF LEN_2BPP_TILE EQU TILE_SIZE + +DEF NUM_PAL_COLORS EQU PAL_COLORS +DEF PAL_COLOR_SIZE EQU COLOR_SIZE +DEF PALETTE_SIZE EQU PAL_SIZE + +DEF BG_MAP_WIDTH EQU TILEMAP_WIDTH +DEF BG_MAP_HEIGHT EQU TILEMAP_HEIGHT + +DEF SPRITEOAMSTRUCT_YCOORD EQU OAMA_Y +DEF SPRITEOAMSTRUCT_XCOORD EQU OAMA_X +DEF SPRITEOAMSTRUCT_TILE_ID EQU OAMA_TILEID +DEF SPRITEOAMSTRUCT_ATTRIBUTES EQU OAMA_FLAGS +DEF SPRITEOAMSTRUCT_LENGTH EQU OBJ_SIZE +DEF NUM_SPRITE_OAM_STRUCTS EQU OAM_COUNT diff --git a/macros/scripts/oam_anims.asm b/macros/scripts/oam_anims.asm index 2bd751cf..68071f43 100644 --- a/macros/scripts/oam_anims.asm +++ b/macros/scripts/oam_anims.asm @@ -3,7 +3,7 @@ MACRO oamframe db \1 ; duration DEF x = \2 - assert !(x & (1 << (OAM_X_FLIP + 1) | 1 << (OAM_Y_FLIP + 1))), \ + assert !(x & (1 << (B_OAM_XFLIP + 1) | 1 << (B_OAM_YFLIP + 1))), \ "oamframe duration overflows into X/Y flip bits" if _NARG > 2 rept _NARG - 2 diff --git a/ram/vram.asm b/ram/vram.asm index 7a7513eb..27f19ddf 100644 --- a/ram/vram.asm +++ b/ram/vram.asm @@ -3,8 +3,8 @@ SECTION "VRAM0", VRAM vTiles0:: ds $80 tiles vTiles1:: ds $80 tiles vTiles2:: ds $80 tiles -vBGMap0:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT -vBGMap1:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT +vBGMap0:: ds TILEMAP_AREA +vBGMap1:: ds TILEMAP_AREA SECTION "VRAM1", VRAM @@ -12,7 +12,7 @@ SECTION "VRAM1", VRAM vTiles3:: ds $80 tiles vTiles4:: ds $80 tiles vTiles5:: ds $80 tiles -vBGMap2:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT -vBGMap3:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT +vBGMap2:: ds TILEMAP_AREA +vBGMap3:: ds TILEMAP_AREA ENDSECTION diff --git a/ram/wram.asm b/ram/wram.asm index 5ff61908..2927f78f 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -20,7 +20,7 @@ wCurNoteDuration:: db ; used in MusicE0 and LoadNote wCurMusicByte:: db wCurChannel:: db wVolume:: -; corresponds to rNR50 +; corresponds to rAUDVOL ; Channel control / ON-OFF / Volume (R/W) ; bit 7 - Vin->SO2 ON/OFF ; bit 6-4 - SO2 output level (volume) (# 0-7) @@ -28,12 +28,12 @@ wVolume:: ; bit 2-0 - SO1 output level (volume) (# 0-7) db wSoundOutput:: -; corresponds to rNR51 +; corresponds to rAUDTERM ; bit 4-7: ch1-4 so2 on/off ; bit 0-3: ch1-4 so1 on/off db wPitchSweep:: -; corresponds to rNR10 +; corresponds to rAUD1SWEEP ; bit 7: unused ; bit 4-6: sweep time ; bit 3: sweep direction @@ -144,7 +144,7 @@ SECTION "Sprites", WRAM0 wShadowOAM:: ; wShadowOAMSprite00 - wShadowOAMSprite39 -for n, NUM_SPRITE_OAM_STRUCTS +for n, OAM_COUNT wShadowOAMSprite{02d:n}:: sprite_oam_struct wShadowOAMSprite{02d:n} endr wShadowOAMEnd:: @@ -154,7 +154,7 @@ SECTION "Tilemap", WRAM0 wTilemap:: ; 20x18 grid of 8x8 tiles - ds SCREEN_WIDTH * SCREEN_HEIGHT + ds SCREEN_AREA wTilemapEnd:: @@ -180,7 +180,7 @@ SECTION UNION "Miscellaneous", WRAM0 ; 20x18 grid of 8x8 tiles wTempTilemap:: - ds SCREEN_WIDTH * SCREEN_HEIGHT + ds SCREEN_AREA SECTION UNION "Miscellaneous", WRAM0 @@ -437,7 +437,7 @@ wPrinterSendByteOffset:: dw wPrinterSendByteCounter:: dw ; tilemap backup? -wPrinterTilemapBuffer:: ds SCREEN_HEIGHT * SCREEN_WIDTH +wPrinterTilemapBuffer:: ds SCREEN_AREA wPrinterStatus:: db ds 1 ; High nibble is for margin before the image, low nibble is for after. @@ -1078,7 +1078,7 @@ wAttrmap:: ; bit 4: pal # (non-cgb) ; bit 3: vram bank (cgb only) ; bit 2-0: pal # (cgb only) - ds SCREEN_WIDTH * SCREEN_HEIGHT + ds SCREEN_AREA wAttrmapEnd:: wTileAnimBuffer:: ds 1 tiles