mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00:00
parent
d7808d110f
commit
6b5be9129c
101 changed files with 958 additions and 958 deletions
|
@ -61,7 +61,7 @@ Music_DoLowHealthAlarm::
|
||||||
jr nz, .copyLoop
|
jr nz, .copyLoop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
alarm_tone: MACRO
|
MACRO alarm_tone
|
||||||
db \1 ; length
|
db \1 ; length
|
||||||
db \2 ; envelope
|
db \2 ; envelope
|
||||||
dw \3 ; frequency
|
dw \3 ; frequency
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
const A_ ; 9
|
const A_ ; 9
|
||||||
const A# ; A
|
const A# ; A
|
||||||
const B_ ; B
|
const B_ ; B
|
||||||
NUM_NOTES EQU const_value
|
DEF NUM_NOTES EQU const_value
|
||||||
|
|
||||||
; channel
|
; channel
|
||||||
; Audio[1|2|3]_HWChannelBaseAddresses, Audio[1|2|3]_HWChannelDisableMasks,
|
; Audio[1|2|3]_HWChannelBaseAddresses, Audio[1|2|3]_HWChannelDisableMasks,
|
||||||
|
@ -23,31 +23,31 @@ NUM_NOTES EQU const_value
|
||||||
const Ch2 ; 1
|
const Ch2 ; 1
|
||||||
const Ch3 ; 2
|
const Ch3 ; 2
|
||||||
const Ch4 ; 3
|
const Ch4 ; 3
|
||||||
NUM_MUSIC_CHANS EQU const_value
|
DEF NUM_MUSIC_CHANS EQU const_value
|
||||||
const Ch5 ; 4
|
const Ch5 ; 4
|
||||||
const Ch6 ; 5
|
const Ch6 ; 5
|
||||||
const Ch7 ; 6
|
const Ch7 ; 6
|
||||||
const Ch8 ; 7
|
const Ch8 ; 7
|
||||||
NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
|
DEF NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
|
||||||
NUM_CHANNELS EQU const_value
|
DEF NUM_CHANNELS EQU const_value
|
||||||
|
|
||||||
; HW sound channel register base addresses
|
; HW sound channel register base addresses
|
||||||
HW_CH1_BASE EQU LOW(rNR10)
|
DEF HW_CH1_BASE EQU LOW(rNR10)
|
||||||
HW_CH2_BASE EQU LOW(rNR21) - 1
|
DEF HW_CH2_BASE EQU LOW(rNR21) - 1
|
||||||
HW_CH3_BASE EQU LOW(rNR30)
|
DEF HW_CH3_BASE EQU LOW(rNR30)
|
||||||
HW_CH4_BASE EQU LOW(rNR41) - 1
|
DEF HW_CH4_BASE EQU LOW(rNR41) - 1
|
||||||
|
|
||||||
; HW sound channel enable bit masks
|
; HW sound channel enable bit masks
|
||||||
HW_CH1_ENABLE_MASK EQU %00010001
|
DEF HW_CH1_ENABLE_MASK EQU %00010001
|
||||||
HW_CH2_ENABLE_MASK EQU %00100010
|
DEF HW_CH2_ENABLE_MASK EQU %00100010
|
||||||
HW_CH3_ENABLE_MASK EQU %01000100
|
DEF HW_CH3_ENABLE_MASK EQU %01000100
|
||||||
HW_CH4_ENABLE_MASK EQU %10001000
|
DEF HW_CH4_ENABLE_MASK EQU %10001000
|
||||||
|
|
||||||
; HW sound channel disable bit masks
|
; HW sound channel disable bit masks
|
||||||
HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
|
DEF HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
|
||||||
HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
|
DEF HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
|
||||||
HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
|
DEF HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
|
||||||
HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
|
DEF HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
|
||||||
|
|
||||||
const_def 1
|
const_def 1
|
||||||
const REG_DUTY_SOUND_LEN ; 1
|
const REG_DUTY_SOUND_LEN ; 1
|
||||||
|
@ -65,4 +65,4 @@ HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
|
||||||
const BIT_ROTATE_DUTY_CYCLE ; 6 ; if rotating duty cycle
|
const BIT_ROTATE_DUTY_CYCLE ; 6 ; if rotating duty cycle
|
||||||
|
|
||||||
; wChannelFlags2 constant (only has one flag)
|
; wChannelFlags2 constant (only has one flag)
|
||||||
BIT_EXECUTE_MUSIC EQU 0 ; if in execute music
|
DEF BIT_EXECUTE_MUSIC EQU 0 ; if in execute music
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
MAX_LEVEL EQU 100
|
DEF MAX_LEVEL EQU 100
|
||||||
|
|
||||||
NUM_MOVES EQU 4
|
DEF NUM_MOVES EQU 4
|
||||||
|
|
||||||
; VitaminStats indexes (see data/battle/stat_names.asm)
|
; VitaminStats indexes (see data/battle/stat_names.asm)
|
||||||
const_def
|
const_def
|
||||||
|
@ -9,7 +9,7 @@ NUM_MOVES EQU 4
|
||||||
const STAT_DEFENSE
|
const STAT_DEFENSE
|
||||||
const STAT_SPEED
|
const STAT_SPEED
|
||||||
const STAT_SPECIAL
|
const STAT_SPECIAL
|
||||||
NUM_STATS EQU const_value
|
DEF NUM_STATS EQU const_value
|
||||||
|
|
||||||
; StatModTextStrings indexes (see data/battle/stat_mod_names.asm)
|
; StatModTextStrings indexes (see data/battle/stat_mod_names.asm)
|
||||||
const_def
|
const_def
|
||||||
|
@ -20,20 +20,20 @@ NUM_STATS EQU const_value
|
||||||
const MOD_ACCURACY
|
const MOD_ACCURACY
|
||||||
const MOD_EVASION
|
const MOD_EVASION
|
||||||
const_skip 2
|
const_skip 2
|
||||||
NUM_STAT_MODS EQU const_value
|
DEF NUM_STAT_MODS EQU const_value
|
||||||
|
|
||||||
; Moves struct fields (see data/moves/moves.asm)
|
; Moves struct fields (see data/moves/moves.asm)
|
||||||
rsreset
|
rsreset
|
||||||
MOVE_ANIM rb
|
DEF MOVE_ANIM rb
|
||||||
MOVE_EFFECT rb
|
DEF MOVE_EFFECT rb
|
||||||
MOVE_POWER rb
|
DEF MOVE_POWER rb
|
||||||
MOVE_TYPE rb
|
DEF MOVE_TYPE rb
|
||||||
MOVE_ACC rb
|
DEF MOVE_ACC rb
|
||||||
MOVE_PP rb
|
DEF MOVE_PP rb
|
||||||
MOVE_LENGTH EQU _RS
|
DEF MOVE_LENGTH EQU _RS
|
||||||
|
|
||||||
; D733 flags
|
; D733 flags
|
||||||
BIT_TEST_BATTLE EQU 0
|
DEF BIT_TEST_BATTLE EQU 0
|
||||||
|
|
||||||
; battle type constants (wBattleType values)
|
; battle type constants (wBattleType values)
|
||||||
const_def
|
const_def
|
||||||
|
@ -42,33 +42,33 @@ BIT_TEST_BATTLE EQU 0
|
||||||
const BATTLE_TYPE_SAFARI ; 2
|
const BATTLE_TYPE_SAFARI ; 2
|
||||||
|
|
||||||
; damage limits before type effectiveness
|
; damage limits before type effectiveness
|
||||||
MIN_NEUTRAL_DAMAGE EQU 2
|
DEF MIN_NEUTRAL_DAMAGE EQU 2
|
||||||
MAX_NEUTRAL_DAMAGE EQU 999
|
DEF MAX_NEUTRAL_DAMAGE EQU 999
|
||||||
|
|
||||||
; fixed damage constants
|
; fixed damage constants
|
||||||
SONICBOOM_DAMAGE EQU 20
|
DEF SONICBOOM_DAMAGE EQU 20
|
||||||
DRAGON_RAGE_DAMAGE EQU 40
|
DEF DRAGON_RAGE_DAMAGE EQU 40
|
||||||
|
|
||||||
; type effectiveness factors, scaled by 10
|
; type effectiveness factors, scaled by 10
|
||||||
SUPER_EFFECTIVE EQU 20
|
DEF SUPER_EFFECTIVE EQU 20
|
||||||
MORE_EFFECTIVE EQU 15
|
DEF MORE_EFFECTIVE EQU 15
|
||||||
EFFECTIVE EQU 10
|
DEF EFFECTIVE EQU 10
|
||||||
NOT_VERY_EFFECTIVE EQU 05
|
DEF NOT_VERY_EFFECTIVE EQU 05
|
||||||
NO_EFFECT EQU 00
|
DEF NO_EFFECT EQU 00
|
||||||
|
|
||||||
; non-volatile statuses
|
; non-volatile statuses
|
||||||
SLP EQU %111 ; sleep counter
|
DEF SLP EQU %111 ; sleep counter
|
||||||
const_def 3
|
const_def 3
|
||||||
const PSN ; 3
|
const PSN ; 3
|
||||||
const BRN ; 4
|
const BRN ; 4
|
||||||
const FRZ ; 5
|
const FRZ ; 5
|
||||||
const PAR ; 6
|
const PAR ; 6
|
||||||
|
|
||||||
MAX_STAT_VALUE EQU 999
|
DEF MAX_STAT_VALUE EQU 999
|
||||||
|
|
||||||
; trainer dvs
|
; trainer dvs
|
||||||
ATKDEFDV_TRAINER EQU $98
|
DEF ATKDEFDV_TRAINER EQU $98
|
||||||
SPDSPCDV_TRAINER EQU $88
|
DEF SPDSPCDV_TRAINER EQU $88
|
||||||
|
|
||||||
; wPlayerBattleStatus1 or wEnemyBattleStatus1 bit flags
|
; wPlayerBattleStatus1 or wEnemyBattleStatus1 bit flags
|
||||||
const_def
|
const_def
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
const CRED_FUKUI ; $3D
|
const CRED_FUKUI ; $3D
|
||||||
const CRED_CLUB ; $3E
|
const CRED_CLUB ; $3E
|
||||||
const CRED_PAAD ; $3F
|
const CRED_PAAD ; $3F
|
||||||
NUM_CRED_STRINGS EQU const_value
|
DEF NUM_CRED_STRINGS EQU const_value
|
||||||
|
|
||||||
const_def -1, -1
|
const_def -1, -1
|
||||||
const CRED_TEXT_FADE_MON ; $FF
|
const CRED_TEXT_FADE_MON ; $FF
|
||||||
|
|
|
@ -772,4 +772,4 @@
|
||||||
|
|
||||||
; End of events
|
; End of events
|
||||||
const_next $A00
|
const_next $A00
|
||||||
NUM_EVENTS EQU const_value
|
DEF NUM_EVENTS EQU const_value
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
TILE_WIDTH EQU 8 ; pixels
|
DEF TILE_WIDTH EQU 8 ; pixels
|
||||||
LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
|
DEF LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
|
||||||
LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
|
DEF LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
|
||||||
|
|
||||||
SCREEN_WIDTH EQU 20
|
DEF SCREEN_WIDTH EQU 20
|
||||||
SCREEN_HEIGHT EQU 18
|
DEF SCREEN_HEIGHT EQU 18
|
||||||
SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
|
DEF SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
|
||||||
SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
|
DEF SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
|
||||||
|
|
||||||
BG_MAP_WIDTH EQU 32 ; tiles
|
DEF BG_MAP_WIDTH EQU 32 ; tiles
|
||||||
BG_MAP_HEIGHT EQU 32 ; tiles
|
DEF BG_MAP_HEIGHT EQU 32 ; tiles
|
||||||
|
|
||||||
SPRITEBUFFERSIZE EQU 7 * 7 * LEN_1BPP_TILE
|
DEF SPRITEBUFFERSIZE EQU 7 * 7 * LEN_1BPP_TILE
|
||||||
|
|
||||||
; HP bar
|
; HP bar
|
||||||
HP_BAR_GREEN EQU 0
|
DEF HP_BAR_GREEN EQU 0
|
||||||
HP_BAR_YELLOW EQU 1
|
DEF HP_BAR_YELLOW EQU 1
|
||||||
HP_BAR_RED EQU 2
|
DEF HP_BAR_RED EQU 2
|
||||||
|
|
||||||
; wOAMBuffer
|
; wOAMBuffer
|
||||||
NUM_SPRITE_OAM_STRUCTS EQU 40
|
DEF NUM_SPRITE_OAM_STRUCTS EQU 40
|
||||||
|
|
||||||
; hAutoBGTransferEnabled
|
; hAutoBGTransferEnabled
|
||||||
TRANSFERTOP EQU 0
|
DEF TRANSFERTOP EQU 0
|
||||||
TRANSFERMIDDLE EQU 1
|
DEF TRANSFERMIDDLE EQU 1
|
||||||
TRANSFERBOTTOM EQU 2
|
DEF TRANSFERBOTTOM EQU 2
|
||||||
|
|
||||||
; hRedrawRowOrColumnMode
|
; hRedrawRowOrColumnMode
|
||||||
REDRAW_COL EQU 1
|
DEF REDRAW_COL EQU 1
|
||||||
REDRAW_ROW EQU 2
|
DEF REDRAW_ROW EQU 2
|
||||||
|
|
||||||
; tile list ids
|
; tile list ids
|
||||||
; TileIDListPointerTable indexes (see data/tilemaps.asm)
|
; TileIDListPointerTable indexes (see data/tilemaps.asm)
|
||||||
|
@ -40,4 +40,4 @@ REDRAW_ROW EQU 2
|
||||||
const TILEMAP_GENGAR_INTRO_3
|
const TILEMAP_GENGAR_INTRO_3
|
||||||
const TILEMAP_GAME_BOY
|
const TILEMAP_GAME_BOY
|
||||||
const TILEMAP_LINK_CABLE
|
const TILEMAP_LINK_CABLE
|
||||||
NUM_TILEMAPS EQU const_value
|
DEF NUM_TILEMAPS EQU const_value
|
||||||
|
|
|
@ -1,130 +1,130 @@
|
||||||
; From http://nocash.emubase.de/pandocs.htm.
|
; From http://nocash.emubase.de/pandocs.htm.
|
||||||
|
|
||||||
GBC EQU $11
|
DEF GBC EQU $11
|
||||||
|
|
||||||
; memory map
|
; memory map
|
||||||
VRAM_Begin EQU $8000
|
DEF VRAM_Begin EQU $8000
|
||||||
VRAM_End EQU $a000
|
DEF VRAM_End EQU $a000
|
||||||
SRAM_Begin EQU $a000
|
DEF SRAM_Begin EQU $a000
|
||||||
SRAM_End EQU $c000
|
DEF SRAM_End EQU $c000
|
||||||
WRAM0_Begin EQU $c000
|
DEF WRAM0_Begin EQU $c000
|
||||||
WRAM0_End EQU $d000
|
DEF WRAM0_End EQU $d000
|
||||||
WRAM1_Begin EQU $d000
|
DEF WRAM1_Begin EQU $d000
|
||||||
WRAM1_End EQU $e000
|
DEF WRAM1_End EQU $e000
|
||||||
; hardware registers $ff00-$ff80 (see below)
|
; hardware registers $ff00-$ff80 (see below)
|
||||||
HRAM_Begin EQU $ff80
|
DEF HRAM_Begin EQU $ff80
|
||||||
HRAM_End EQU $ffff
|
DEF HRAM_End EQU $ffff
|
||||||
|
|
||||||
; MBC1
|
; MBC1
|
||||||
MBC1SRamEnable EQU $0000
|
DEF MBC1SRamEnable EQU $0000
|
||||||
MBC1RomBank EQU $2000
|
DEF MBC1RomBank EQU $2000
|
||||||
MBC1SRamBank EQU $4000
|
DEF MBC1SRamBank EQU $4000
|
||||||
MBC1SRamBankingMode EQU $6000
|
DEF MBC1SRamBankingMode EQU $6000
|
||||||
|
|
||||||
SRAM_DISABLE EQU $00
|
DEF SRAM_DISABLE EQU $00
|
||||||
SRAM_ENABLE EQU $0a
|
DEF SRAM_ENABLE EQU $0a
|
||||||
|
|
||||||
NUM_SRAM_BANKS EQU 4
|
DEF NUM_SRAM_BANKS EQU 4
|
||||||
|
|
||||||
; interrupt flags
|
; interrupt flags
|
||||||
VBLANK EQU 0
|
DEF VBLANK EQU 0
|
||||||
LCD_STAT EQU 1
|
DEF LCD_STAT EQU 1
|
||||||
TIMER EQU 2
|
DEF TIMER EQU 2
|
||||||
SERIAL EQU 3
|
DEF SERIAL EQU 3
|
||||||
JOYPAD EQU 4
|
DEF JOYPAD EQU 4
|
||||||
|
|
||||||
LY_VBLANK EQU 145
|
DEF LY_VBLANK EQU 145
|
||||||
|
|
||||||
; serial
|
; serial
|
||||||
START_TRANSFER_EXTERNAL_CLOCK EQU $80
|
DEF START_TRANSFER_EXTERNAL_CLOCK EQU $80
|
||||||
START_TRANSFER_INTERNAL_CLOCK EQU $81
|
DEF START_TRANSFER_INTERNAL_CLOCK EQU $81
|
||||||
|
|
||||||
; Hardware registers
|
; Hardware registers
|
||||||
rJOYP EQU $ff00 ; Joypad (R/W)
|
DEF rJOYP EQU $ff00 ; Joypad (R/W)
|
||||||
rSB EQU $ff01 ; Serial transfer data (R/W)
|
DEF rSB EQU $ff01 ; Serial transfer data (R/W)
|
||||||
rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
DEF rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
||||||
rSC_ON EQU 7
|
DEF rSC_ON EQU 7
|
||||||
rSC_CGB EQU 1
|
DEF rSC_CGB EQU 1
|
||||||
rSC_CLOCK EQU 0
|
DEF rSC_CLOCK EQU 0
|
||||||
rDIV EQU $ff04 ; Divider Register (R/W)
|
DEF rDIV EQU $ff04 ; Divider Register (R/W)
|
||||||
rTIMA EQU $ff05 ; Timer counter (R/W)
|
DEF rTIMA EQU $ff05 ; Timer counter (R/W)
|
||||||
rTMA EQU $ff06 ; Timer Modulo (R/W)
|
DEF rTMA EQU $ff06 ; Timer Modulo (R/W)
|
||||||
rTAC EQU $ff07 ; Timer Control (R/W)
|
DEF rTAC EQU $ff07 ; Timer Control (R/W)
|
||||||
rTAC_ON EQU 2
|
DEF rTAC_ON EQU 2
|
||||||
rTAC_4096_HZ EQU 0
|
DEF rTAC_4096_HZ EQU 0
|
||||||
rTAC_262144_HZ EQU 1
|
DEF rTAC_262144_HZ EQU 1
|
||||||
rTAC_65536_HZ EQU 2
|
DEF rTAC_65536_HZ EQU 2
|
||||||
rTAC_16384_HZ EQU 3
|
DEF rTAC_16384_HZ EQU 3
|
||||||
rIF EQU $ff0f ; Interrupt Flag (R/W)
|
DEF rIF EQU $ff0f ; Interrupt Flag (R/W)
|
||||||
rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
|
DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
|
||||||
rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
|
DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
|
||||||
rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
|
DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
|
||||||
rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
|
DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
|
||||||
rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
|
DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
|
||||||
rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
|
DEF rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
|
||||||
rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
|
DEF rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
|
||||||
rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
|
DEF rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
|
||||||
rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
|
DEF rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
|
||||||
rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
|
DEF rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
|
||||||
rNR31 EQU $ff1b ; Channel 3 Sound Length
|
DEF rNR31 EQU $ff1b ; Channel 3 Sound Length
|
||||||
rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
|
DEF rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
|
||||||
rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
|
DEF rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
|
||||||
rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
|
DEF rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
|
||||||
rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
|
DEF rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
|
||||||
rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
|
DEF rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
|
||||||
rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
|
DEF rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
|
||||||
rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W)
|
DEF rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W)
|
||||||
rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
|
DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
|
||||||
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
||||||
rNR52 EQU $ff26 ; Sound on/off
|
DEF rNR52 EQU $ff26 ; Sound on/off
|
||||||
rWave_0 EQU $ff30
|
DEF rWave_0 EQU $ff30
|
||||||
rWave_1 EQU $ff31
|
DEF rWave_1 EQU $ff31
|
||||||
rWave_2 EQU $ff32
|
DEF rWave_2 EQU $ff32
|
||||||
rWave_3 EQU $ff33
|
DEF rWave_3 EQU $ff33
|
||||||
rWave_4 EQU $ff34
|
DEF rWave_4 EQU $ff34
|
||||||
rWave_5 EQU $ff35
|
DEF rWave_5 EQU $ff35
|
||||||
rWave_6 EQU $ff36
|
DEF rWave_6 EQU $ff36
|
||||||
rWave_7 EQU $ff37
|
DEF rWave_7 EQU $ff37
|
||||||
rWave_8 EQU $ff38
|
DEF rWave_8 EQU $ff38
|
||||||
rWave_9 EQU $ff39
|
DEF rWave_9 EQU $ff39
|
||||||
rWave_a EQU $ff3a
|
DEF rWave_a EQU $ff3a
|
||||||
rWave_b EQU $ff3b
|
DEF rWave_b EQU $ff3b
|
||||||
rWave_c EQU $ff3c
|
DEF rWave_c EQU $ff3c
|
||||||
rWave_d EQU $ff3d
|
DEF rWave_d EQU $ff3d
|
||||||
rWave_e EQU $ff3e
|
DEF rWave_e EQU $ff3e
|
||||||
rWave_f EQU $ff3f
|
DEF rWave_f EQU $ff3f
|
||||||
rLCDC EQU $ff40 ; LCD Control (R/W)
|
DEF rLCDC EQU $ff40 ; LCD Control (R/W)
|
||||||
rLCDC_ENABLE EQU 7
|
DEF rLCDC_ENABLE EQU 7
|
||||||
rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
|
DEF rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
|
||||||
rSTAT EQU $ff41 ; LCDC Status (R/W)
|
DEF rSTAT EQU $ff41 ; LCDC Status (R/W)
|
||||||
rSCY EQU $ff42 ; Scroll Y (R/W)
|
DEF rSCY EQU $ff42 ; Scroll Y (R/W)
|
||||||
rSCX EQU $ff43 ; Scroll X (R/W)
|
DEF rSCX EQU $ff43 ; Scroll X (R/W)
|
||||||
rLY EQU $ff44 ; LCDC Y-Coordinate (R)
|
DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R)
|
||||||
rLYC EQU $ff45 ; LY Compare (R/W)
|
DEF rLYC EQU $ff45 ; LY Compare (R/W)
|
||||||
rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
|
DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
|
||||||
rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
|
DEF rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
|
||||||
rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
|
DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
|
||||||
rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
||||||
rWY EQU $ff4a ; Window Y Position (R/W)
|
DEF rWY EQU $ff4a ; Window Y Position (R/W)
|
||||||
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
||||||
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
||||||
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
||||||
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
DEF rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
||||||
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
DEF rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
||||||
rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
DEF rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
||||||
rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
|
DEF rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
|
||||||
rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
|
DEF rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
|
||||||
rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
|
DEF rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
|
||||||
rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
|
DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
|
||||||
rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
|
DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
|
||||||
rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
|
DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
|
||||||
rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
|
DEF rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
|
||||||
rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
|
DEF rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
|
||||||
rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
|
DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
|
||||||
rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
|
DEF rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
|
||||||
rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
|
DEF rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
|
||||||
rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
|
DEF rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
|
||||||
rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
|
DEF rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
|
||||||
rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
|
DEF rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
|
||||||
rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
|
DEF rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
|
||||||
rIE EQU $ffff ; Interrupt Enable (R/W)
|
DEF rIE EQU $ffff ; Interrupt Enable (R/W)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
HIDE EQU $11
|
DEF HIDE EQU $11
|
||||||
SHOW EQU $15
|
DEF SHOW EQU $15
|
||||||
|
|
||||||
; MissableObjects indexes (see data/maps/hide_show_data.asm)
|
; MissableObjects indexes (see data/maps/hide_show_data.asm)
|
||||||
; this is a list of the sprites that can be enabled/disabled during the game
|
; this is a list of the sprites that can be enabled/disabled during the game
|
||||||
|
@ -237,4 +237,4 @@ SHOW EQU $15
|
||||||
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
|
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
|
||||||
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
|
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
|
||||||
const HS_ARTICUNO ; E3 X
|
const HS_ARTICUNO ; E3 X
|
||||||
NUM_HS_OBJECTS EQU const_value
|
DEF NUM_HS_OBJECTS EQU const_value
|
||||||
|
|
|
@ -12,6 +12,6 @@
|
||||||
const ICON_SNAKE ; $8
|
const ICON_SNAKE ; $8
|
||||||
const ICON_QUADRUPED ; $9
|
const ICON_QUADRUPED ; $9
|
||||||
|
|
||||||
ICON_TRADEBUBBLE EQU $e
|
DEF ICON_TRADEBUBBLE EQU $e
|
||||||
|
|
||||||
ICONOFFSET EQU $40 ; difference between alternating icon frames' tile IDs
|
DEF ICONOFFSET EQU $40 ; difference between alternating icon frames' tile IDs
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
const BIT_D_UP
|
const BIT_D_UP
|
||||||
const BIT_D_DOWN
|
const BIT_D_DOWN
|
||||||
|
|
||||||
NO_INPUT EQU 0
|
DEF NO_INPUT EQU 0
|
||||||
A_BUTTON EQU 1 << BIT_A_BUTTON
|
DEF A_BUTTON EQU 1 << BIT_A_BUTTON
|
||||||
B_BUTTON EQU 1 << BIT_B_BUTTON
|
DEF B_BUTTON EQU 1 << BIT_B_BUTTON
|
||||||
SELECT EQU 1 << BIT_SELECT
|
DEF SELECT EQU 1 << BIT_SELECT
|
||||||
START EQU 1 << BIT_START
|
DEF START EQU 1 << BIT_START
|
||||||
D_RIGHT EQU 1 << BIT_D_RIGHT
|
DEF D_RIGHT EQU 1 << BIT_D_RIGHT
|
||||||
D_LEFT EQU 1 << BIT_D_LEFT
|
DEF D_LEFT EQU 1 << BIT_D_LEFT
|
||||||
D_UP EQU 1 << BIT_D_UP
|
DEF D_UP EQU 1 << BIT_D_UP
|
||||||
D_DOWN EQU 1 << BIT_D_DOWN
|
DEF D_DOWN EQU 1 << BIT_D_DOWN
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
const POTION ; $14
|
const POTION ; $14
|
||||||
const BOULDERBADGE ; $15
|
const BOULDERBADGE ; $15
|
||||||
const CASCADEBADGE ; $16
|
const CASCADEBADGE ; $16
|
||||||
SAFARI_BAIT EQU $15 ; overload
|
DEF SAFARI_BAIT EQU $15 ; overload
|
||||||
SAFARI_ROCK EQU $16 ; overload
|
DEF SAFARI_ROCK EQU $16 ; overload
|
||||||
const THUNDERBADGE ; $17
|
const THUNDERBADGE ; $17
|
||||||
const RAINBOWBADGE ; $18
|
const RAINBOWBADGE ; $18
|
||||||
const SOULBADGE ; $19
|
const SOULBADGE ; $19
|
||||||
|
@ -92,7 +92,7 @@ SAFARI_ROCK EQU $16 ; overload
|
||||||
const MAX_ETHER ; $51
|
const MAX_ETHER ; $51
|
||||||
const ELIXER ; $52
|
const ELIXER ; $52
|
||||||
const MAX_ELIXER ; $53
|
const MAX_ELIXER ; $53
|
||||||
NUM_ITEMS EQU const_value - 1
|
DEF NUM_ITEMS EQU const_value - 1
|
||||||
|
|
||||||
; elevator floors use item IDs
|
; elevator floors use item IDs
|
||||||
const FLOOR_B2F ; $54
|
const FLOOR_B2F ; $54
|
||||||
|
@ -109,54 +109,54 @@ NUM_ITEMS EQU const_value - 1
|
||||||
const FLOOR_10F ; $5F
|
const FLOOR_10F ; $5F
|
||||||
const FLOOR_11F ; $60
|
const FLOOR_11F ; $60
|
||||||
const FLOOR_B4F ; $61
|
const FLOOR_B4F ; $61
|
||||||
NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
|
DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
|
||||||
|
|
||||||
const_next $C4
|
const_next $C4
|
||||||
|
|
||||||
; HMs are defined before TMs, so the actual number of TM definitions
|
; HMs are defined before TMs, so the actual number of TM definitions
|
||||||
; is not yet available. The TM quantity is hard-coded here and must
|
; is not yet available. The TM quantity is hard-coded here and must
|
||||||
; match the actual number below.
|
; match the actual number below.
|
||||||
NUM_TMS EQU 50
|
DEF NUM_TMS EQU 50
|
||||||
|
|
||||||
__tmhm_value__ = NUM_TMS + 1
|
DEF __tmhm_value__ = NUM_TMS + 1
|
||||||
|
|
||||||
add_tmnum: MACRO
|
MACRO add_tmnum
|
||||||
\1_TMNUM EQU __tmhm_value__
|
DEF \1_TMNUM EQU __tmhm_value__
|
||||||
__tmhm_value__ += 1
|
DEF __tmhm_value__ += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
add_hm: MACRO
|
MACRO add_hm
|
||||||
; Defines three constants:
|
; Defines three constants:
|
||||||
; - HM_\1: the item id, starting at $C4
|
; - HM_\1: the item id, starting at $C4
|
||||||
; - \1_TMNUM: the learnable TM/HM flag, starting at 51
|
; - \1_TMNUM: the learnable TM/HM flag, starting at 51
|
||||||
; - HM##_MOVE: alias for the move id, equal to the value of \1
|
; - HM##_MOVE: alias for the move id, equal to the value of \1
|
||||||
const HM_\1
|
const HM_\1
|
||||||
HM_VALUE = __tmhm_value__ - NUM_TMS
|
DEF HM_VALUE = __tmhm_value__ - NUM_TMS
|
||||||
HM{02d:HM_VALUE}_MOVE EQU \1
|
DEF HM{02d:HM_VALUE}_MOVE EQU \1
|
||||||
add_tmnum \1
|
add_tmnum \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
HM01 EQU const_value
|
DEF HM01 EQU const_value
|
||||||
add_hm CUT ; $C4
|
add_hm CUT ; $C4
|
||||||
add_hm FLY ; $C5
|
add_hm FLY ; $C5
|
||||||
add_hm SURF ; $C6
|
add_hm SURF ; $C6
|
||||||
add_hm STRENGTH ; $C7
|
add_hm STRENGTH ; $C7
|
||||||
add_hm FLASH ; $C8
|
add_hm FLASH ; $C8
|
||||||
NUM_HMS EQU const_value - HM01
|
DEF NUM_HMS EQU const_value - HM01
|
||||||
|
|
||||||
__tmhm_value__ = 1
|
DEF __tmhm_value__ = 1
|
||||||
|
|
||||||
add_tm: MACRO
|
MACRO add_tm
|
||||||
; Defines three constants:
|
; Defines three constants:
|
||||||
; - TM_\1: the item id, starting at $C9
|
; - TM_\1: the item id, starting at $C9
|
||||||
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
|
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
|
||||||
; - TM##_MOVE: alias for the move id, equal to the value of \1
|
; - TM##_MOVE: alias for the move id, equal to the value of \1
|
||||||
const TM_\1
|
const TM_\1
|
||||||
TM{02d:__tmhm_value__}_MOVE EQU \1
|
DEF TM{02d:__tmhm_value__}_MOVE EQU \1
|
||||||
add_tmnum \1
|
add_tmnum \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
TM01 EQU const_value
|
DEF TM01 EQU const_value
|
||||||
add_tm MEGA_PUNCH ; $C9
|
add_tm MEGA_PUNCH ; $C9
|
||||||
add_tm RAZOR_WIND ; $CA
|
add_tm RAZOR_WIND ; $CA
|
||||||
add_tm SWORDS_DANCE ; $CB
|
add_tm SWORDS_DANCE ; $CB
|
||||||
|
@ -209,9 +209,9 @@ TM01 EQU const_value
|
||||||
add_tm SUBSTITUTE ; $FA
|
add_tm SUBSTITUTE ; $FA
|
||||||
ASSERT NUM_TMS == const_value - TM01, "NUM_TMS ({d:NUM_TMS}) does not match the number of add_tm definitions"
|
ASSERT NUM_TMS == const_value - TM01, "NUM_TMS ({d:NUM_TMS}) does not match the number of add_tm definitions"
|
||||||
|
|
||||||
NUM_TM_HM EQU NUM_TMS + NUM_HMS
|
DEF NUM_TM_HM EQU NUM_TMS + NUM_HMS
|
||||||
|
|
||||||
; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon.
|
; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon.
|
||||||
; These fit in 7 bytes, with one unused bit left over.
|
; These fit in 7 bytes, with one unused bit left over.
|
||||||
__tmhm_value__ = NUM_TM_HM + 1
|
DEF __tmhm_value__ = NUM_TM_HM + 1
|
||||||
UNUSED_TMNUM EQU __tmhm_value__
|
DEF UNUSED_TMNUM EQU __tmhm_value__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
mapconst: MACRO
|
MACRO mapconst
|
||||||
const \1
|
const \1
|
||||||
\1_HEIGHT EQU \2
|
DEF \1_HEIGHT EQU \2
|
||||||
\1_WIDTH EQU \3
|
DEF \1_WIDTH EQU \3
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; map ids
|
; map ids
|
||||||
|
@ -26,9 +26,9 @@ ENDM
|
||||||
mapconst CINNABAR_ISLAND, 9, 10 ; $08
|
mapconst CINNABAR_ISLAND, 9, 10 ; $08
|
||||||
mapconst INDIGO_PLATEAU, 9, 10 ; $09
|
mapconst INDIGO_PLATEAU, 9, 10 ; $09
|
||||||
mapconst SAFFRON_CITY, 18, 20 ; $0A
|
mapconst SAFFRON_CITY, 18, 20 ; $0A
|
||||||
NUM_CITY_MAPS EQU const_value
|
DEF NUM_CITY_MAPS EQU const_value
|
||||||
mapconst UNUSED_MAP_0B, 0, 0 ; $0B
|
mapconst UNUSED_MAP_0B, 0, 0 ; $0B
|
||||||
FIRST_ROUTE_MAP EQU const_value
|
DEF FIRST_ROUTE_MAP EQU const_value
|
||||||
mapconst ROUTE_1, 18, 10 ; $0C
|
mapconst ROUTE_1, 18, 10 ; $0C
|
||||||
mapconst ROUTE_2, 36, 10 ; $0D
|
mapconst ROUTE_2, 36, 10 ; $0D
|
||||||
mapconst ROUTE_3, 9, 35 ; $0E
|
mapconst ROUTE_3, 9, 35 ; $0E
|
||||||
|
@ -54,7 +54,7 @@ FIRST_ROUTE_MAP EQU const_value
|
||||||
mapconst ROUTE_23, 72, 10 ; $22
|
mapconst ROUTE_23, 72, 10 ; $22
|
||||||
mapconst ROUTE_24, 18, 10 ; $23
|
mapconst ROUTE_24, 18, 10 ; $23
|
||||||
mapconst ROUTE_25, 9, 30 ; $24
|
mapconst ROUTE_25, 9, 30 ; $24
|
||||||
FIRST_INDOOR_MAP EQU const_value
|
DEF FIRST_INDOOR_MAP EQU const_value
|
||||||
mapconst REDS_HOUSE_1F, 4, 4 ; $25
|
mapconst REDS_HOUSE_1F, 4, 4 ; $25
|
||||||
mapconst REDS_HOUSE_2F, 4, 4 ; $26
|
mapconst REDS_HOUSE_2F, 4, 4 ; $26
|
||||||
mapconst BLUES_HOUSE, 4, 4 ; $27
|
mapconst BLUES_HOUSE, 4, 4 ; $27
|
||||||
|
@ -266,8 +266,8 @@ FIRST_INDOOR_MAP EQU const_value
|
||||||
mapconst LORELEIS_ROOM, 6, 5 ; $F5
|
mapconst LORELEIS_ROOM, 6, 5 ; $F5
|
||||||
mapconst BRUNOS_ROOM, 6, 5 ; $F6
|
mapconst BRUNOS_ROOM, 6, 5 ; $F6
|
||||||
mapconst AGATHAS_ROOM, 6, 5 ; $F7
|
mapconst AGATHAS_ROOM, 6, 5 ; $F7
|
||||||
NUM_MAPS EQU const_value
|
DEF NUM_MAPS EQU const_value
|
||||||
|
|
||||||
; Indoor maps, such as houses, use this as the Map ID in their exit warps
|
; Indoor maps, such as houses, use this as the Map ID in their exit warps
|
||||||
; This map ID takes the player back to the last outdoor map they were on, stored in wLastMap
|
; This map ID takes the player back to the last outdoor map they were on, stored in wLastMap
|
||||||
LAST_MAP EQU -1
|
DEF LAST_MAP EQU -1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
; width of east/west connections
|
; width of east/west connections
|
||||||
; height of north/south connections
|
; height of north/south connections
|
||||||
MAP_BORDER EQU 3
|
DEF MAP_BORDER EQU 3
|
||||||
|
|
||||||
; connection directions
|
; connection directions
|
||||||
const_def
|
const_def
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
const SPRITESTATEDATA1_0D ; d
|
const SPRITESTATEDATA1_0D ; d
|
||||||
const SPRITESTATEDATA1_0E ; e
|
const SPRITESTATEDATA1_0E ; e
|
||||||
const SPRITESTATEDATA1_0F ; f
|
const SPRITESTATEDATA1_0F ; f
|
||||||
SPRITESTATEDATA1_LENGTH EQU const_value
|
DEF SPRITESTATEDATA1_LENGTH EQU const_value
|
||||||
|
|
||||||
; spritestatedata2 struct members (see macros/wram.asm)
|
; spritestatedata2 struct members (see macros/wram.asm)
|
||||||
const_def
|
const_def
|
||||||
|
@ -36,24 +36,24 @@ SPRITESTATEDATA1_LENGTH EQU const_value
|
||||||
const SPRITESTATEDATA2_PICTUREID ; d
|
const SPRITESTATEDATA2_PICTUREID ; d
|
||||||
const SPRITESTATEDATA2_IMAGEBASEOFFSET ; e
|
const SPRITESTATEDATA2_IMAGEBASEOFFSET ; e
|
||||||
const SPRITESTATEDATA2_0F ; f
|
const SPRITESTATEDATA2_0F ; f
|
||||||
SPRITESTATEDATA2_LENGTH EQU const_value
|
DEF SPRITESTATEDATA2_LENGTH EQU const_value
|
||||||
|
|
||||||
NUM_SPRITESTATEDATA_STRUCTS EQU 16
|
DEF NUM_SPRITESTATEDATA_STRUCTS EQU 16
|
||||||
|
|
||||||
; different kinds of people events
|
; different kinds of people events
|
||||||
ITEM EQU $80
|
DEF ITEM EQU $80
|
||||||
TRAINER EQU $40
|
DEF TRAINER EQU $40
|
||||||
|
|
||||||
WALK EQU $FE
|
DEF WALK EQU $FE
|
||||||
STAY EQU $FF
|
DEF STAY EQU $FF
|
||||||
|
|
||||||
ANY_DIR EQU $00
|
DEF ANY_DIR EQU $00
|
||||||
UP_DOWN EQU $01
|
DEF UP_DOWN EQU $01
|
||||||
LEFT_RIGHT EQU $02
|
DEF LEFT_RIGHT EQU $02
|
||||||
DOWN EQU $D0
|
DEF DOWN EQU $D0
|
||||||
UP EQU $D1
|
DEF UP EQU $D1
|
||||||
LEFT EQU $D2
|
DEF LEFT EQU $D2
|
||||||
RIGHT EQU $D3
|
DEF RIGHT EQU $D3
|
||||||
NONE EQU $FF
|
DEF NONE EQU $FF
|
||||||
|
|
||||||
BOULDER_MOVEMENT_BYTE_2 EQU $10
|
DEF BOULDER_MOVEMENT_BYTE_2 EQU $10
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
BAG_ITEM_CAPACITY EQU 20
|
DEF BAG_ITEM_CAPACITY EQU 20
|
||||||
PC_ITEM_CAPACITY EQU 50
|
DEF PC_ITEM_CAPACITY EQU 50
|
||||||
|
|
||||||
; text box IDs
|
; text box IDs
|
||||||
const_def 1
|
const_def 1
|
||||||
|
@ -42,15 +42,15 @@ PC_ITEM_CAPACITY EQU 50
|
||||||
const TRADE_CANCEL_MENU ; 5
|
const TRADE_CANCEL_MENU ; 5
|
||||||
const HEAL_CANCEL_MENU ; 6
|
const HEAL_CANCEL_MENU ; 6
|
||||||
const NO_YES_MENU ; 7
|
const NO_YES_MENU ; 7
|
||||||
NUM_TWO_OPTION_MENUS EQU const_value
|
DEF NUM_TWO_OPTION_MENUS EQU const_value
|
||||||
|
|
||||||
; menu exit method constants for list menus and the buy/sell/quit menu
|
; menu exit method constants for list menus and the buy/sell/quit menu
|
||||||
CHOSE_MENU_ITEM EQU 1 ; pressed A
|
DEF CHOSE_MENU_ITEM EQU 1 ; pressed A
|
||||||
CANCELLED_MENU EQU 2 ; pressed B
|
DEF CANCELLED_MENU EQU 2 ; pressed B
|
||||||
|
|
||||||
; menu exit method constants for two-option menus
|
; menu exit method constants for two-option menus
|
||||||
CHOSE_FIRST_ITEM EQU 1
|
DEF CHOSE_FIRST_ITEM EQU 1
|
||||||
CHOSE_SECOND_ITEM EQU 2
|
DEF CHOSE_SECOND_ITEM EQU 2
|
||||||
|
|
||||||
; move mon constants
|
; move mon constants
|
||||||
const_def
|
const_def
|
||||||
|
@ -71,7 +71,7 @@ CHOSE_SECOND_ITEM EQU 2
|
||||||
; party menu message IDs
|
; party menu message IDs
|
||||||
; PartyMenuItemUseMessagePointers indexes (see engine/menus/party_menu.asm)
|
; PartyMenuItemUseMessagePointers indexes (see engine/menus/party_menu.asm)
|
||||||
const_next $F0
|
const_next $F0
|
||||||
FIRST_PARTY_MENU_TEXT_ID EQU const_value
|
DEF FIRST_PARTY_MENU_TEXT_ID EQU const_value
|
||||||
const ANTIDOTE_MSG ; $F0
|
const ANTIDOTE_MSG ; $F0
|
||||||
const BURN_HEAL_MSG ; $F1
|
const BURN_HEAL_MSG ; $F1
|
||||||
const ICE_HEAL_MSG ; $F2
|
const ICE_HEAL_MSG ; $F2
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
; Boolean checks
|
; Boolean checks
|
||||||
FALSE EQU 0
|
DEF FALSE EQU 0
|
||||||
TRUE EQU 1
|
DEF TRUE EQU 1
|
||||||
|
|
||||||
; flag operations
|
; flag operations
|
||||||
const_def
|
const_def
|
||||||
|
@ -9,9 +9,9 @@ TRUE EQU 1
|
||||||
const FLAG_TEST ; 2
|
const FLAG_TEST ; 2
|
||||||
|
|
||||||
; wOptions
|
; wOptions
|
||||||
TEXT_DELAY_FAST EQU %001 ; 1
|
DEF TEXT_DELAY_FAST EQU %001 ; 1
|
||||||
TEXT_DELAY_MEDIUM EQU %011 ; 3
|
DEF TEXT_DELAY_MEDIUM EQU %011 ; 3
|
||||||
TEXT_DELAY_SLOW EQU %101 ; 5
|
DEF TEXT_DELAY_SLOW EQU %101 ; 5
|
||||||
|
|
||||||
const_def 6
|
const_def 6
|
||||||
const BIT_BATTLE_SHIFT ; 6
|
const BIT_BATTLE_SHIFT ; 6
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; special effects that are part of move animations
|
; special effects that are part of move animations
|
||||||
; SpecialEffectPointers associates them with effect routines (see data/battle_anims/special_effect_pointers.asm)
|
; SpecialEffectPointers associates them with effect routines (see data/battle_anims/special_effect_pointers.asm)
|
||||||
const_def $C0
|
const_def $C0
|
||||||
FIRST_SE_ID EQU const_value
|
DEF FIRST_SE_ID EQU const_value
|
||||||
const_skip $18
|
const_skip $18
|
||||||
const SE_WAVY_SCREEN ; $D8 used in Psywave/Night Shade/Psychic etc.
|
const SE_WAVY_SCREEN ; $D8 used in Psywave/Night Shade/Psychic etc.
|
||||||
const SE_SUBSTITUTE_MON ; $D9 used in Substitute (turns the pokemon into a mini sprite)
|
const SE_SUBSTITUTE_MON ; $D9 used in Substitute (turns the pokemon into a mini sprite)
|
||||||
|
@ -132,7 +132,7 @@ FIRST_SE_ID EQU const_value
|
||||||
const SUBANIM_53
|
const SUBANIM_53
|
||||||
const SUBANIM_54
|
const SUBANIM_54
|
||||||
const SUBANIM_55
|
const SUBANIM_55
|
||||||
NUM_SUBANIMS EQU const_value
|
DEF NUM_SUBANIMS EQU const_value
|
||||||
|
|
||||||
; types of subanimations
|
; types of subanimations
|
||||||
const_def
|
const_def
|
||||||
|
@ -268,7 +268,7 @@ NUM_SUBANIMS EQU const_value
|
||||||
const FRAMEBLOCK_77
|
const FRAMEBLOCK_77
|
||||||
const FRAMEBLOCK_78
|
const FRAMEBLOCK_78
|
||||||
const FRAMEBLOCK_79
|
const FRAMEBLOCK_79
|
||||||
NUM_FRAMEBLOCKS EQU const_value
|
DEF NUM_FRAMEBLOCKS EQU const_value
|
||||||
|
|
||||||
; base coordinates that are part of subanimations
|
; base coordinates that are part of subanimations
|
||||||
; FrameBlockBaseCoords indexes (see data/battle_anims/base_coords.asm)
|
; FrameBlockBaseCoords indexes (see data/battle_anims/base_coords.asm)
|
||||||
|
@ -450,7 +450,7 @@ NUM_FRAMEBLOCKS EQU const_value
|
||||||
const BASECOORD_AE
|
const BASECOORD_AE
|
||||||
const BASECOORD_AF
|
const BASECOORD_AF
|
||||||
const BASECOORD_B0
|
const BASECOORD_B0
|
||||||
NUM_BASECOORDS EQU const_value
|
DEF NUM_BASECOORDS EQU const_value
|
||||||
|
|
||||||
; frame block modes that are part of subanimations
|
; frame block modes that are part of subanimations
|
||||||
const_def
|
const_def
|
||||||
|
|
|
@ -171,7 +171,7 @@
|
||||||
const SLASH ; a3
|
const SLASH ; a3
|
||||||
const SUBSTITUTE ; a4
|
const SUBSTITUTE ; a4
|
||||||
const STRUGGLE ; a5
|
const STRUGGLE ; a5
|
||||||
NUM_ATTACKS EQU const_value - 1
|
DEF NUM_ATTACKS EQU const_value - 1
|
||||||
|
|
||||||
; Moves do double duty as animation identifiers.
|
; Moves do double duty as animation identifiers.
|
||||||
|
|
||||||
|
@ -213,4 +213,4 @@ NUM_ATTACKS EQU const_value - 1
|
||||||
const ROCK_ANIM ; throw rock
|
const ROCK_ANIM ; throw rock
|
||||||
const BAIT_ANIM ; throw bait
|
const BAIT_ANIM ; throw bait
|
||||||
|
|
||||||
NUM_ATTACK_ANIMS EQU const_value - 1
|
DEF NUM_ATTACK_ANIMS EQU const_value - 1
|
||||||
|
|
|
@ -91,4 +91,4 @@
|
||||||
const LEECH_SEED_EFFECT ; $54
|
const LEECH_SEED_EFFECT ; $54
|
||||||
const SPLASH_EFFECT ; $55
|
const SPLASH_EFFECT ; $55
|
||||||
const DISABLE_EFFECT ; $56
|
const DISABLE_EFFECT ; $56
|
||||||
NUM_MOVE_EFFECTS EQU const_value - 1
|
DEF NUM_MOVE_EFFECTS EQU const_value - 1
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
; Song ids are calculated by address to save space.
|
; Song ids are calculated by address to save space.
|
||||||
; SFX_Headers_(1|2|3) indexes (see audio/headers/*.asm)
|
; SFX_Headers_(1|2|3) indexes (see audio/headers/*.asm)
|
||||||
|
|
||||||
music_const: MACRO
|
MACRO music_const
|
||||||
\1 EQUS "((\2 - SFX_Headers_1) / 3)"
|
DEF \1 EQUS "((\2 - SFX_Headers_1) / 3)"
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; AUDIO_1
|
; AUDIO_1
|
||||||
|
@ -57,7 +57,7 @@ ENDM
|
||||||
music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer
|
music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer
|
||||||
|
|
||||||
; AUDIO_1 AUDIO_2 AUDIO_3
|
; AUDIO_1 AUDIO_2 AUDIO_3
|
||||||
NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01"
|
DEF NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01"
|
||||||
music_const SFX_NOISE_INSTRUMENT01, SFX_Noise_Instrument01_1
|
music_const SFX_NOISE_INSTRUMENT01, SFX_Noise_Instrument01_1
|
||||||
music_const SFX_NOISE_INSTRUMENT02, SFX_Noise_Instrument02_1
|
music_const SFX_NOISE_INSTRUMENT02, SFX_Noise_Instrument02_1
|
||||||
music_const SFX_NOISE_INSTRUMENT03, SFX_Noise_Instrument03_1
|
music_const SFX_NOISE_INSTRUMENT03, SFX_Noise_Instrument03_1
|
||||||
|
@ -77,9 +77,9 @@ NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01"
|
||||||
music_const SFX_NOISE_INSTRUMENT17, SFX_Noise_Instrument17_1
|
music_const SFX_NOISE_INSTRUMENT17, SFX_Noise_Instrument17_1
|
||||||
music_const SFX_NOISE_INSTRUMENT18, SFX_Noise_Instrument18_1
|
music_const SFX_NOISE_INSTRUMENT18, SFX_Noise_Instrument18_1
|
||||||
music_const SFX_NOISE_INSTRUMENT19, SFX_Noise_Instrument19_1
|
music_const SFX_NOISE_INSTRUMENT19, SFX_Noise_Instrument19_1
|
||||||
NOISE_INSTRUMENTS_END EQUS "SFX_NOISE_INSTRUMENT19 + 1"
|
DEF NOISE_INSTRUMENTS_END EQUS "SFX_NOISE_INSTRUMENT19 + 1"
|
||||||
|
|
||||||
CRY_SFX_START EQUS "SFX_CRY_00"
|
DEF CRY_SFX_START EQUS "SFX_CRY_00"
|
||||||
music_const SFX_CRY_00, SFX_Cry00_1
|
music_const SFX_CRY_00, SFX_Cry00_1
|
||||||
music_const SFX_CRY_01, SFX_Cry01_1
|
music_const SFX_CRY_01, SFX_Cry01_1
|
||||||
music_const SFX_CRY_02, SFX_Cry02_1
|
music_const SFX_CRY_02, SFX_Cry02_1
|
||||||
|
@ -118,7 +118,7 @@ CRY_SFX_START EQUS "SFX_CRY_00"
|
||||||
music_const SFX_CRY_23, SFX_Cry23_1
|
music_const SFX_CRY_23, SFX_Cry23_1
|
||||||
music_const SFX_CRY_24, SFX_Cry24_1
|
music_const SFX_CRY_24, SFX_Cry24_1
|
||||||
music_const SFX_CRY_25, SFX_Cry25_1
|
music_const SFX_CRY_25, SFX_Cry25_1
|
||||||
CRY_SFX_END EQUS "SFX_CRY_25 + 3"
|
DEF CRY_SFX_END EQUS "SFX_CRY_25 + 3"
|
||||||
|
|
||||||
music_const SFX_GET_ITEM_2, SFX_Get_Item2_1
|
music_const SFX_GET_ITEM_2, SFX_Get_Item2_1
|
||||||
music_const SFX_TINK, SFX_Tink_1
|
music_const SFX_TINK, SFX_Tink_1
|
||||||
|
@ -163,7 +163,7 @@ CRY_SFX_END EQUS "SFX_CRY_25 + 3"
|
||||||
; AUDIO_1
|
; AUDIO_1
|
||||||
music_const SFX_POKEFLUTE, SFX_Pokeflute
|
music_const SFX_POKEFLUTE, SFX_Pokeflute
|
||||||
music_const SFX_SAFARI_ZONE_PA, SFX_Safari_Zone_PA
|
music_const SFX_SAFARI_ZONE_PA, SFX_Safari_Zone_PA
|
||||||
MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA"
|
DEF MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA"
|
||||||
|
|
||||||
; AUDIO_2
|
; AUDIO_2
|
||||||
music_const SFX_LEVEL_UP, SFX_Level_Up
|
music_const SFX_LEVEL_UP, SFX_Level_Up
|
||||||
|
@ -175,7 +175,7 @@ MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA"
|
||||||
music_const SFX_DEX_PAGE_ADDED, SFX_Dex_Page_Added
|
music_const SFX_DEX_PAGE_ADDED, SFX_Dex_Page_Added
|
||||||
music_const SFX_CAUGHT_MON, SFX_Caught_Mon
|
music_const SFX_CAUGHT_MON, SFX_Caught_Mon
|
||||||
|
|
||||||
BATTLE_SFX_START EQUS "SFX_PECK"
|
DEF BATTLE_SFX_START EQUS "SFX_PECK"
|
||||||
music_const SFX_PECK, SFX_Peck
|
music_const SFX_PECK, SFX_Peck
|
||||||
music_const SFX_FAINT_FALL, SFX_Faint_Fall
|
music_const SFX_FAINT_FALL, SFX_Faint_Fall
|
||||||
music_const SFX_BATTLE_09, SFX_Battle_09
|
music_const SFX_BATTLE_09, SFX_Battle_09
|
||||||
|
@ -225,8 +225,8 @@ BATTLE_SFX_START EQUS "SFX_PECK"
|
||||||
music_const SFX_BATTLE_35, SFX_Battle_35
|
music_const SFX_BATTLE_35, SFX_Battle_35
|
||||||
music_const SFX_BATTLE_36, SFX_Battle_36
|
music_const SFX_BATTLE_36, SFX_Battle_36
|
||||||
music_const SFX_SILPH_SCOPE, SFX_Silph_Scope
|
music_const SFX_SILPH_SCOPE, SFX_Silph_Scope
|
||||||
BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1"
|
DEF BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1"
|
||||||
MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
|
DEF MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
|
||||||
|
|
||||||
; AUDIO_3
|
; AUDIO_3
|
||||||
music_const SFX_INTRO_LUNGE, SFX_Intro_Lunge
|
music_const SFX_INTRO_LUNGE, SFX_Intro_Lunge
|
||||||
|
@ -239,6 +239,6 @@ MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
|
||||||
music_const SFX_SLOTS_REWARD, SFX_Slots_Reward
|
music_const SFX_SLOTS_REWARD, SFX_Slots_Reward
|
||||||
music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin
|
music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin
|
||||||
music_const SFX_SHOOTING_STAR, SFX_Shooting_Star
|
music_const SFX_SHOOTING_STAR, SFX_Shooting_Star
|
||||||
MAX_SFX_ID_3 EQUS "SFX_SHOOTING_STAR"
|
DEF MAX_SFX_ID_3 EQUS "SFX_SHOOTING_STAR"
|
||||||
|
|
||||||
SFX_STOP_ALL_MUSIC EQU $ff
|
DEF SFX_STOP_ALL_MUSIC EQU $ff
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
; OAM flags used by this game
|
; OAM flags used by this game
|
||||||
OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic
|
DEF OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic
|
||||||
OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic
|
DEF OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic
|
||||||
|
|
||||||
; OAM attribute flags
|
; OAM attribute flags
|
||||||
OAM_PALETTE EQU %111
|
DEF OAM_PALETTE EQU %111
|
||||||
OAM_TILE_BANK EQU 3
|
DEF OAM_TILE_BANK EQU 3
|
||||||
OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
|
DEF OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
|
||||||
OAM_X_FLIP EQU 5
|
DEF OAM_X_FLIP EQU 5
|
||||||
OAM_Y_FLIP EQU 6
|
DEF OAM_Y_FLIP EQU 6
|
||||||
OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
|
DEF OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
|
||||||
|
|
||||||
; OAM attribute masks
|
; OAM attribute masks
|
||||||
OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1
|
DEF OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1
|
||||||
OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip
|
DEF OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip
|
||||||
OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip
|
DEF OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip
|
||||||
OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0)
|
DEF OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0)
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
const SHADE_LIGHT ; %01
|
const SHADE_LIGHT ; %01
|
||||||
const SHADE_DARK ; %10
|
const SHADE_DARK ; %10
|
||||||
const SHADE_BLACK ; %11
|
const SHADE_BLACK ; %11
|
||||||
NUM_PAL_COLORS EQU const_value
|
DEF NUM_PAL_COLORS EQU const_value
|
||||||
|
|
||||||
PAL_COLOR_SIZE EQU 2
|
DEF PAL_COLOR_SIZE EQU 2
|
||||||
PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
|
DEF PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
|
||||||
|
|
||||||
; pal/blk packets
|
; pal/blk packets
|
||||||
; SetPalFunctions indexes (see engine/gfx/palettes.asm)
|
; SetPalFunctions indexes (see engine/gfx/palettes.asm)
|
||||||
|
@ -27,8 +27,8 @@ PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
|
||||||
const SET_PAL_GAME_FREAK_INTRO ; $0C
|
const SET_PAL_GAME_FREAK_INTRO ; $0C
|
||||||
const SET_PAL_TRAINER_CARD ; $0D
|
const SET_PAL_TRAINER_CARD ; $0D
|
||||||
|
|
||||||
SET_PAL_PARTY_MENU_HP_BARS EQU $fc
|
DEF SET_PAL_PARTY_MENU_HP_BARS EQU $fc
|
||||||
SET_PAL_DEFAULT EQU $ff
|
DEF SET_PAL_DEFAULT EQU $ff
|
||||||
|
|
||||||
; sgb palettes
|
; sgb palettes
|
||||||
; SuperPalettes indexes (see data/sgb/sgb_palettes.asm)
|
; SuperPalettes indexes (see data/sgb/sgb_palettes.asm)
|
||||||
|
@ -70,4 +70,4 @@ SET_PAL_DEFAULT EQU $ff
|
||||||
const PAL_BADGE ; $22
|
const PAL_BADGE ; $22
|
||||||
const PAL_CAVE ; $23
|
const PAL_CAVE ; $23
|
||||||
const PAL_GAMEFREAK ; $24
|
const PAL_GAMEFREAK ; $24
|
||||||
NUM_SGB_PALS EQU const_value
|
DEF NUM_SGB_PALS EQU const_value
|
||||||
|
|
|
@ -156,4 +156,4 @@
|
||||||
const DEX_MEWTWO ; 150
|
const DEX_MEWTWO ; 150
|
||||||
const DEX_MEW ; 151
|
const DEX_MEW ; 151
|
||||||
|
|
||||||
NUM_POKEMON EQU const_value - 1
|
DEF NUM_POKEMON EQU const_value - 1
|
||||||
|
|
|
@ -198,12 +198,12 @@
|
||||||
const WEEPINBELL ; $BD
|
const WEEPINBELL ; $BD
|
||||||
const VICTREEBEL ; $BE
|
const VICTREEBEL ; $BE
|
||||||
|
|
||||||
NUM_POKEMON_INDEXES EQU const_value - 1
|
DEF NUM_POKEMON_INDEXES EQU const_value - 1
|
||||||
|
|
||||||
; starters
|
; starters
|
||||||
STARTER1 EQU CHARMANDER
|
DEF STARTER1 EQU CHARMANDER
|
||||||
STARTER2 EQU SQUIRTLE
|
DEF STARTER2 EQU SQUIRTLE
|
||||||
STARTER3 EQU BULBASAUR
|
DEF STARTER3 EQU BULBASAUR
|
||||||
|
|
||||||
; ghost Marowak in Pokémon Tower
|
; ghost Marowak in Pokémon Tower
|
||||||
RESTLESS_SOUL EQU MAROWAK
|
DEF RESTLESS_SOUL EQU MAROWAK
|
||||||
|
|
|
@ -1,37 +1,37 @@
|
||||||
; base data struct members (see data/pokemon/base_stats/*.asm)
|
; base data struct members (see data/pokemon/base_stats/*.asm)
|
||||||
rsreset
|
rsreset
|
||||||
BASE_DEX_NO rb
|
DEF BASE_DEX_NO rb
|
||||||
BASE_STATS rb NUM_STATS
|
DEF BASE_STATS rb NUM_STATS
|
||||||
rsset BASE_STATS
|
rsset BASE_STATS
|
||||||
BASE_HP rb
|
DEF BASE_HP rb
|
||||||
BASE_ATK rb
|
DEF BASE_ATK rb
|
||||||
BASE_DEF rb
|
DEF BASE_DEF rb
|
||||||
BASE_SPD rb
|
DEF BASE_SPD rb
|
||||||
BASE_SPC rb
|
DEF BASE_SPC rb
|
||||||
BASE_TYPES rw
|
DEF BASE_TYPES rw
|
||||||
rsset BASE_TYPES
|
rsset BASE_TYPES
|
||||||
BASE_TYPE_1 rb
|
DEF BASE_TYPE_1 rb
|
||||||
BASE_TYPE_2 rb
|
DEF BASE_TYPE_2 rb
|
||||||
BASE_CATCH_RATE rb
|
DEF BASE_CATCH_RATE rb
|
||||||
BASE_EXP rb
|
DEF BASE_EXP rb
|
||||||
BASE_PIC_SIZE rb
|
DEF BASE_PIC_SIZE rb
|
||||||
BASE_FRONTPIC rw
|
DEF BASE_FRONTPIC rw
|
||||||
BASE_BACKPIC rw
|
DEF BASE_BACKPIC rw
|
||||||
BASE_MOVES rb NUM_MOVES
|
DEF BASE_MOVES rb NUM_MOVES
|
||||||
BASE_GROWTH_RATE rb
|
DEF BASE_GROWTH_RATE rb
|
||||||
BASE_TMHM rb (NUM_TM_HM + 7) / 8
|
DEF BASE_TMHM rb (NUM_TM_HM + 7) / 8
|
||||||
rb_skip
|
rb_skip
|
||||||
BASE_DATA_SIZE EQU _RS
|
DEF BASE_DATA_SIZE EQU _RS
|
||||||
|
|
||||||
|
|
||||||
PARTY_LENGTH EQU 6
|
DEF PARTY_LENGTH EQU 6
|
||||||
|
|
||||||
MONS_PER_BOX EQU 20
|
DEF MONS_PER_BOX EQU 20
|
||||||
NUM_BOXES EQU 12
|
DEF NUM_BOXES EQU 12
|
||||||
|
|
||||||
HOF_MON EQU $10
|
DEF HOF_MON EQU $10
|
||||||
HOF_TEAM EQU PARTY_LENGTH * HOF_MON
|
DEF HOF_TEAM EQU PARTY_LENGTH * HOF_MON
|
||||||
HOF_TEAM_CAPACITY EQU 50
|
DEF HOF_TEAM_CAPACITY EQU 50
|
||||||
|
|
||||||
|
|
||||||
; mon data locations
|
; mon data locations
|
||||||
|
@ -52,8 +52,8 @@ HOF_TEAM_CAPACITY EQU 50
|
||||||
const EV_ITEM ; 2
|
const EV_ITEM ; 2
|
||||||
const EV_TRADE ; 3
|
const EV_TRADE ; 3
|
||||||
|
|
||||||
MAX_EVOLUTIONS EQU 3
|
DEF MAX_EVOLUTIONS EQU 3
|
||||||
EVOLUTION_SIZE EQU 4
|
DEF EVOLUTION_SIZE EQU 4
|
||||||
|
|
||||||
|
|
||||||
; wMonHGrowthRate values
|
; wMonHGrowthRate values
|
||||||
|
@ -65,8 +65,8 @@ EVOLUTION_SIZE EQU 4
|
||||||
const GROWTH_MEDIUM_SLOW
|
const GROWTH_MEDIUM_SLOW
|
||||||
const GROWTH_FAST
|
const GROWTH_FAST
|
||||||
const GROWTH_SLOW
|
const GROWTH_SLOW
|
||||||
NUM_GROWTH_RATES EQU const_value
|
DEF NUM_GROWTH_RATES EQU const_value
|
||||||
|
|
||||||
; wild data (see data/wild/maps/*.asm)
|
; wild data (see data/wild/maps/*.asm)
|
||||||
NUM_WILDMONS EQU 10
|
DEF NUM_WILDMONS EQU 10
|
||||||
WILDDATA_LENGTH EQU 1 + NUM_WILDMONS * 2
|
DEF WILDDATA_LENGTH EQU 1 + NUM_WILDMONS * 2
|
||||||
|
|
|
@ -5,17 +5,17 @@
|
||||||
const SMILE_BUBBLE ; 2
|
const SMILE_BUBBLE ; 2
|
||||||
|
|
||||||
; slot symbols
|
; slot symbols
|
||||||
SLOTS7 EQU $0200
|
DEF SLOTS7 EQU $0200
|
||||||
SLOTSBAR EQU $0604
|
DEF SLOTSBAR EQU $0604
|
||||||
SLOTSCHERRY EQU $0A08
|
DEF SLOTSCHERRY EQU $0A08
|
||||||
SLOTSFISH EQU $0E0C
|
DEF SLOTSFISH EQU $0E0C
|
||||||
SLOTSBIRD EQU $1210
|
DEF SLOTSBIRD EQU $1210
|
||||||
SLOTSMOUSE EQU $1614
|
DEF SLOTSMOUSE EQU $1614
|
||||||
|
|
||||||
; StartSlotMachine dialogs
|
; StartSlotMachine dialogs
|
||||||
SLOTS_OUTOFORDER EQU $fd
|
DEF SLOTS_OUTOFORDER EQU $fd
|
||||||
SLOTS_OUTTOLUNCH EQU $fe
|
DEF SLOTS_OUTTOLUNCH EQU $fe
|
||||||
SLOTS_SOMEONESKEYS EQU $ff
|
DEF SLOTS_SOMEONESKEYS EQU $ff
|
||||||
|
|
||||||
; in game trades
|
; in game trades
|
||||||
; TradeMons indexes (see data/events/trades.asm)
|
; TradeMons indexes (see data/events/trades.asm)
|
||||||
|
@ -30,7 +30,7 @@ SLOTS_SOMEONESKEYS EQU $ff
|
||||||
const TRADE_FOR_DORIS
|
const TRADE_FOR_DORIS
|
||||||
const TRADE_FOR_CRINKLES
|
const TRADE_FOR_CRINKLES
|
||||||
const TRADE_FOR_SPOT
|
const TRADE_FOR_SPOT
|
||||||
NUM_NPC_TRADES EQU const_value
|
DEF NUM_NPC_TRADES EQU const_value
|
||||||
|
|
||||||
; in game trade dialog sets
|
; in game trade dialog sets
|
||||||
; InGameTradeTextPointers indexes (see engine/events/in_game_trades.asm)
|
; InGameTradeTextPointers indexes (see engine/events/in_game_trades.asm)
|
||||||
|
@ -50,10 +50,10 @@ NUM_NPC_TRADES EQU const_value
|
||||||
const BIT_MARSHBADGE ; 5
|
const BIT_MARSHBADGE ; 5
|
||||||
const BIT_VOLCANOBADGE ; 6
|
const BIT_VOLCANOBADGE ; 6
|
||||||
const BIT_EARTHBADGE ; 7
|
const BIT_EARTHBADGE ; 7
|
||||||
NUM_BADGES EQU const_value
|
DEF NUM_BADGES EQU const_value
|
||||||
|
|
||||||
; OaksAideScript results
|
; OaksAideScript results
|
||||||
OAKS_AIDE_BAG_FULL EQU $00
|
DEF OAKS_AIDE_BAG_FULL EQU $00
|
||||||
OAKS_AIDE_GOT_ITEM EQU $01
|
DEF OAKS_AIDE_GOT_ITEM EQU $01
|
||||||
OAKS_AIDE_NOT_ENOUGH_MONS EQU $80
|
DEF OAKS_AIDE_NOT_ENOUGH_MONS EQU $80
|
||||||
OAKS_AIDE_REFUSED EQU $ff
|
DEF OAKS_AIDE_REFUSED EQU $ff
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
|
DEF ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
|
||||||
ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02
|
DEF ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02
|
||||||
|
|
||||||
USING_EXTERNAL_CLOCK EQU $01
|
DEF USING_EXTERNAL_CLOCK EQU $01
|
||||||
USING_INTERNAL_CLOCK EQU $02
|
DEF USING_INTERNAL_CLOCK EQU $02
|
||||||
CONNECTION_NOT_ESTABLISHED EQU $ff
|
DEF CONNECTION_NOT_ESTABLISHED EQU $ff
|
||||||
|
|
||||||
; signals the start of an array of bytes transferred over the link cable
|
; signals the start of an array of bytes transferred over the link cable
|
||||||
SERIAL_PREAMBLE_BYTE EQU $FD
|
DEF SERIAL_PREAMBLE_BYTE EQU $FD
|
||||||
|
|
||||||
; this byte is used when there is no data to send
|
; this byte is used when there is no data to send
|
||||||
SERIAL_NO_DATA_BYTE EQU $FE
|
DEF SERIAL_NO_DATA_BYTE EQU $FE
|
||||||
|
|
||||||
; signals the end of one part of a patch list (there are two parts) for player/enemy party data
|
; signals the end of one part of a patch list (there are two parts) for player/enemy party data
|
||||||
SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF
|
DEF SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF
|
||||||
|
|
||||||
LINK_STATE_NONE EQU $00 ; not using link
|
DEF LINK_STATE_NONE EQU $00 ; not using link
|
||||||
LINK_STATE_IN_CABLE_CLUB EQU $01 ; in a cable club room (Colosseum or Trade Centre)
|
DEF LINK_STATE_IN_CABLE_CLUB EQU $01 ; in a cable club room (Colosseum or Trade Centre)
|
||||||
LINK_STATE_START_TRADE EQU $02 ; pre-trade selection screen initialisation
|
DEF LINK_STATE_START_TRADE EQU $02 ; pre-trade selection screen initialisation
|
||||||
LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation
|
DEF LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation
|
||||||
LINK_STATE_BATTLING EQU $04 ; in a link battle
|
DEF LINK_STATE_BATTLING EQU $04 ; in a link battle
|
||||||
LINK_STATE_RESET EQU $05 ; reset game (unused)
|
DEF LINK_STATE_RESET EQU $05 ; reset game (unused)
|
||||||
LINK_STATE_TRADING EQU $32 ; in a link trade
|
DEF LINK_STATE_TRADING EQU $32 ; in a link trade
|
||||||
|
|
||||||
LINKBATTLE_RUN EQU $F
|
DEF LINKBATTLE_RUN EQU $F
|
||||||
LINKBATTLE_STRUGGLE EQU $E
|
DEF LINKBATTLE_STRUGGLE EQU $E
|
||||||
LINKBATTLE_NO_ACTION EQU $D
|
DEF LINKBATTLE_NO_ACTION EQU $D
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
const SPRITE_BRUNO ; $3a
|
const SPRITE_BRUNO ; $3a
|
||||||
const SPRITE_LORELEI ; $3b
|
const SPRITE_LORELEI ; $3b
|
||||||
const SPRITE_SEEL ; $3c
|
const SPRITE_SEEL ; $3c
|
||||||
FIRST_STILL_SPRITE EQU const_value
|
DEF FIRST_STILL_SPRITE EQU const_value
|
||||||
const SPRITE_POKE_BALL ; $3d
|
const SPRITE_POKE_BALL ; $3d
|
||||||
const SPRITE_FOSSIL ; $3e
|
const SPRITE_FOSSIL ; $3e
|
||||||
const SPRITE_BOULDER ; $3f
|
const SPRITE_BOULDER ; $3f
|
||||||
|
@ -75,4 +75,4 @@ FIRST_STILL_SPRITE EQU const_value
|
||||||
const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $46
|
const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $46
|
||||||
const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $47
|
const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $47
|
||||||
const SPRITE_GAMBLER_ASLEEP ; $48
|
const SPRITE_GAMBLER_ASLEEP ; $48
|
||||||
NUM_SPRITES EQU const_value - 1
|
DEF NUM_SPRITES EQU const_value - 1
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
const NPC_MOVEMENT_LEFT ; $80
|
const NPC_MOVEMENT_LEFT ; $80
|
||||||
const NPC_MOVEMENT_RIGHT ; $C0
|
const NPC_MOVEMENT_RIGHT ; $C0
|
||||||
|
|
||||||
NPC_CHANGE_FACING EQU $E0
|
DEF NPC_CHANGE_FACING EQU $E0
|
||||||
|
|
||||||
; player direction constants
|
; player direction constants
|
||||||
const_def
|
const_def
|
||||||
|
@ -20,7 +20,7 @@ NPC_CHANGE_FACING EQU $E0
|
||||||
const PLAYER_DIR_BIT_DOWN ; 2
|
const PLAYER_DIR_BIT_DOWN ; 2
|
||||||
const PLAYER_DIR_BIT_UP ; 3
|
const PLAYER_DIR_BIT_UP ; 3
|
||||||
|
|
||||||
PLAYER_DIR_RIGHT EQU 1 << PLAYER_DIR_BIT_RIGHT
|
DEF PLAYER_DIR_RIGHT EQU 1 << PLAYER_DIR_BIT_RIGHT
|
||||||
PLAYER_DIR_LEFT EQU 1 << PLAYER_DIR_BIT_LEFT
|
DEF PLAYER_DIR_LEFT EQU 1 << PLAYER_DIR_BIT_LEFT
|
||||||
PLAYER_DIR_DOWN EQU 1 << PLAYER_DIR_BIT_DOWN
|
DEF PLAYER_DIR_DOWN EQU 1 << PLAYER_DIR_BIT_DOWN
|
||||||
PLAYER_DIR_UP EQU 1 << PLAYER_DIR_BIT_UP
|
DEF PLAYER_DIR_UP EQU 1 << PLAYER_DIR_BIT_UP
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
NAME_LENGTH EQU 11
|
DEF NAME_LENGTH EQU 11
|
||||||
ITEM_NAME_LENGTH EQU 13
|
DEF ITEM_NAME_LENGTH EQU 13
|
||||||
NAME_BUFFER_LENGTH EQU 20
|
DEF NAME_BUFFER_LENGTH EQU 20
|
||||||
|
|
||||||
; PrintNumber
|
; PrintNumber
|
||||||
const_def 5
|
const_def 5
|
||||||
|
@ -8,9 +8,9 @@ NAME_BUFFER_LENGTH EQU 20
|
||||||
const BIT_LEFT_ALIGN ; 6
|
const BIT_LEFT_ALIGN ; 6
|
||||||
const BIT_LEADING_ZEROES ; 7
|
const BIT_LEADING_ZEROES ; 7
|
||||||
|
|
||||||
MONEY_SIGN EQU (1 << BIT_MONEY_SIGN)
|
DEF MONEY_SIGN EQU (1 << BIT_MONEY_SIGN)
|
||||||
LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
|
DEF LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
|
||||||
LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
|
DEF LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
|
||||||
|
|
||||||
; special text IDs (see home/text_script.asm)
|
; special text IDs (see home/text_script.asm)
|
||||||
const_def $d0
|
const_def $d0
|
||||||
|
@ -19,4 +19,4 @@ LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
|
||||||
const TEXT_REPEL_WORE_OFF ; $d2
|
const TEXT_REPEL_WORE_OFF ; $d2
|
||||||
const TEXT_SAFARI_GAME_OVER ; $d3
|
const TEXT_SAFARI_GAME_OVER ; $d3
|
||||||
|
|
||||||
TEXT_START_MENU EQU $00
|
DEF TEXT_START_MENU EQU $00
|
||||||
|
|
|
@ -25,4 +25,4 @@
|
||||||
const CLUB ; 21
|
const CLUB ; 21
|
||||||
const FACILITY ; 22
|
const FACILITY ; 22
|
||||||
const PLATEAU ; 23
|
const PLATEAU ; 23
|
||||||
NUM_TILESETS EQU const_value
|
DEF NUM_TILESETS EQU const_value
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
OPP_ID_OFFSET EQU 200
|
DEF OPP_ID_OFFSET EQU 200
|
||||||
|
|
||||||
trainer_const: MACRO
|
MACRO trainer_const
|
||||||
const \1
|
const \1
|
||||||
OPP_\1 EQU OPP_ID_OFFSET + \1
|
DEF OPP_\1 EQU OPP_ID_OFFSET + \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; trainer class ids
|
; trainer class ids
|
||||||
|
@ -62,4 +62,4 @@ ENDM
|
||||||
trainer_const CHANNELER ; $2D
|
trainer_const CHANNELER ; $2D
|
||||||
trainer_const AGATHA ; $2E
|
trainer_const AGATHA ; $2E
|
||||||
trainer_const LANCE ; $2F
|
trainer_const LANCE ; $2F
|
||||||
NUM_TRAINERS EQU const_value - 1
|
DEF NUM_TRAINERS EQU const_value - 1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; TypeNames indexes (see data/types/names.asm)
|
; TypeNames indexes (see data/types/names.asm)
|
||||||
const_def
|
const_def
|
||||||
|
|
||||||
PHYSICAL EQU const_value
|
DEF PHYSICAL EQU const_value
|
||||||
const NORMAL ; $00
|
const NORMAL ; $00
|
||||||
const FIGHTING ; $01
|
const FIGHTING ; $01
|
||||||
const FLYING ; $02
|
const FLYING ; $02
|
||||||
|
@ -14,7 +14,7 @@ PHYSICAL EQU const_value
|
||||||
|
|
||||||
const_next 20
|
const_next 20
|
||||||
|
|
||||||
SPECIAL EQU const_value
|
DEF SPECIAL EQU const_value
|
||||||
const FIRE ; $14
|
const FIRE ; $14
|
||||||
const WATER ; $15
|
const WATER ; $15
|
||||||
const GRASS ; $16
|
const GRASS ; $16
|
||||||
|
@ -23,4 +23,4 @@ SPECIAL EQU const_value
|
||||||
const ICE ; $19
|
const ICE ; $19
|
||||||
const DRAGON ; $1A
|
const DRAGON ; $1A
|
||||||
|
|
||||||
NUM_TYPES EQU const_value
|
DEF NUM_TYPES EQU const_value
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
special_effect: MACRO
|
MACRO special_effect
|
||||||
db \1
|
db \1
|
||||||
dw \2
|
dw \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
anim_special_effect: MACRO
|
MACRO anim_special_effect
|
||||||
db \1
|
db \1
|
||||||
dw \2
|
dw \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -94,7 +94,7 @@ SubanimationPointers:
|
||||||
; db frame block id, base coordinate id, frame block mode
|
; db frame block id, base coordinate id, frame block mode
|
||||||
; ENDR
|
; ENDR
|
||||||
|
|
||||||
subanim: MACRO
|
MACRO subanim
|
||||||
db (\1 << 5) | \2
|
db (\1 << 5) | \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
bench_guy_text: MACRO
|
MACRO bench_guy_text
|
||||||
db \1, \2
|
db \1, \2
|
||||||
db_tx_pre \3
|
db_tx_pre \3
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
hidden_coin: MACRO
|
MACRO hidden_coin
|
||||||
db \1, \3, \2
|
db \1, \3, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
hidden_item: MACRO
|
MACRO hidden_item
|
||||||
db \1, \3, \2
|
db \1, \3, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
|
@ -174,14 +174,14 @@ HiddenObjectPointers:
|
||||||
dw CeruleanCityHiddenObjects
|
dw CeruleanCityHiddenObjects
|
||||||
dw Route4HiddenObjects
|
dw Route4HiddenObjects
|
||||||
|
|
||||||
hidden_object: MACRO
|
MACRO hidden_object
|
||||||
db \2 ; y coord
|
db \2 ; y coord
|
||||||
db \1 ; x coord
|
db \1 ; x coord
|
||||||
db \3 ; item id
|
db \3 ; item id
|
||||||
dba \4 ; object routine
|
dba \4 ; object routine
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
hidden_text_predef: MACRO
|
MACRO hidden_text_predef
|
||||||
db \2 ; y coord
|
db \2 ; y coord
|
||||||
db \1 ; x coord
|
db \1 ; x coord
|
||||||
db_tx_pre \3 ; text id
|
db_tx_pre \3 ; text id
|
||||||
|
@ -191,7 +191,7 @@ ENDM
|
||||||
; Some hidden objects use SPRITE_FACING_* values,
|
; Some hidden objects use SPRITE_FACING_* values,
|
||||||
; but these do not actually prevent the player
|
; but these do not actually prevent the player
|
||||||
; from interacting with them in any direction.
|
; from interacting with them in any direction.
|
||||||
ANY_FACING EQU $d0
|
DEF ANY_FACING EQU $d0
|
||||||
|
|
||||||
TradeCenterHiddenObjects:
|
TradeCenterHiddenObjects:
|
||||||
hidden_object 5, 4, ANY_FACING, CableClubRightGameboy
|
hidden_object 5, 4, ANY_FACING, CableClubRightGameboy
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
growth_rate: MACRO
|
MACRO growth_rate
|
||||||
; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5]
|
; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5]
|
||||||
dn \1, \2
|
dn \1, \2
|
||||||
if \3 < 0
|
if \3 < 0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
mon_icon_header: MACRO
|
MACRO mon_icon_header
|
||||||
dw \1 tile \2
|
dw \1 tile \2
|
||||||
db \3
|
db \3
|
||||||
db BANK(\1)
|
db BANK(\1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
vend_item: MACRO
|
MACRO vend_item
|
||||||
db \1
|
db \1
|
||||||
bcd3 \2
|
bcd3 \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
force_bike_surf: MACRO
|
MACRO force_bike_surf
|
||||||
db \1, \3, \2
|
db \1, \3, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ DungeonWarpList:
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
|
|
||||||
fly_warp: MACRO
|
MACRO fly_warp
|
||||||
event_displacement \1_WIDTH, \2, \3
|
event_displacement \1_WIDTH, \2, \3
|
||||||
db ((\3) & $01) ;sub-block Y
|
db ((\3) & $01) ;sub-block Y
|
||||||
db ((\2) & $01) ;sub-block X
|
db ((\2) & $01) ;sub-block X
|
||||||
|
@ -38,7 +38,7 @@ DungeonWarpData:
|
||||||
fly_warp POKEMON_MANSION_2F, 18, 14
|
fly_warp POKEMON_MANSION_2F, 18, 14
|
||||||
|
|
||||||
|
|
||||||
special_warp_spec: MACRO
|
MACRO special_warp_spec
|
||||||
db \1
|
db \1
|
||||||
fly_warp \1, \2, \3
|
fly_warp \1, \2, \3
|
||||||
db \4
|
db \4
|
||||||
|
@ -56,7 +56,7 @@ ColosseumSpec2:
|
||||||
special_warp_spec COLOSSEUM, 6, 4, CLUB
|
special_warp_spec COLOSSEUM, 6, 4, CLUB
|
||||||
|
|
||||||
|
|
||||||
fly_warp_spec: MACRO
|
MACRO fly_warp_spec
|
||||||
db \1, 0
|
db \1, 0
|
||||||
dw \2
|
dw \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -39,8 +39,8 @@ MapSpriteSets:
|
||||||
db $02 ; ROUTE_25
|
db $02 ; ROUTE_25
|
||||||
assert_table_length FIRST_INDOOR_MAP
|
assert_table_length FIRST_INDOOR_MAP
|
||||||
|
|
||||||
EAST_WEST EQU 1
|
DEF EAST_WEST EQU 1
|
||||||
NORTH_SOUTH EQU 2
|
DEF NORTH_SOUTH EQU 2
|
||||||
|
|
||||||
; Format:
|
; Format:
|
||||||
; 00: determines whether the map is split EAST_WEST or NORTH_SOUTH
|
; 00: determines whether the map is split EAST_WEST or NORTH_SOUTH
|
||||||
|
@ -64,7 +64,7 @@ SplitMapSpriteSets:
|
||||||
SpriteSets:
|
SpriteSets:
|
||||||
|
|
||||||
; each sprite set has 9 walking sprites and 2 still sprites
|
; each sprite set has 9 walking sprites and 2 still sprites
|
||||||
SPRITE_SET_LENGTH EQU 9 + 2
|
DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
|
|
||||||
; sprite set $01
|
; sprite set $01
|
||||||
table_width 1
|
table_width 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
external_map: MACRO
|
MACRO external_map
|
||||||
dn \2, \1
|
dn \2, \1
|
||||||
dw \3
|
dw \3
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -47,7 +47,7 @@ ExternalMapEntries:
|
||||||
assert_table_length FIRST_INDOOR_MAP
|
assert_table_length FIRST_INDOOR_MAP
|
||||||
|
|
||||||
|
|
||||||
internal_map: MACRO
|
MACRO internal_map
|
||||||
db \1 + 1
|
db \1 + 1
|
||||||
dn \3, \2
|
dn \3, \2
|
||||||
dw \4
|
dw \4
|
||||||
|
|
|
@ -214,7 +214,7 @@ AttackAnimationPointers:
|
||||||
; if \2 is a subanimation_id:
|
; if \2 is a subanimation_id:
|
||||||
;\3: tileset_id
|
;\3: tileset_id
|
||||||
;\4: delay
|
;\4: delay
|
||||||
battle_anim: MACRO
|
MACRO battle_anim
|
||||||
IF _NARG == 4
|
IF _NARG == 4
|
||||||
db (\3 << 6) | \4
|
db (\3 << 6) | \4
|
||||||
db \1 - 1
|
db \1 - 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
move: MACRO
|
MACRO move
|
||||||
db \1 ; animation (interchangeable with move id)
|
db \1 ; animation (interchangeable with move id)
|
||||||
db \2 ; effect
|
db \2 ; effect
|
||||||
db \3 ; power
|
db \3 ; power
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
mon_cry: MACRO
|
MACRO mon_cry
|
||||||
db (\1 - CRY_SFX_START) / 3
|
db (\1 - CRY_SFX_START) / 3
|
||||||
db \2, \3
|
db \2, \3
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
add_predef: MACRO
|
MACRO add_predef
|
||||||
\1Predef::
|
\1Predef::
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
dba \1
|
dba \1
|
||||||
ELSE
|
ELSE
|
||||||
dbw \2, \1
|
dbw \2, \1
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
PredefPointers::
|
PredefPointers::
|
||||||
|
|
|
@ -1,51 +1,51 @@
|
||||||
ATTR_BLK: MACRO
|
MACRO ATTR_BLK
|
||||||
; This is a command macro.
|
; This is a command macro.
|
||||||
; Use ATTR_BLK_DATA for data sets.
|
; Use ATTR_BLK_DATA for data sets.
|
||||||
db ($4 << 3) + ((\1 * 6) / 16 + 1)
|
db ($4 << 3) + ((\1 * 6) / 16 + 1)
|
||||||
db \1
|
db \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
ATTR_BLK_DATA: MACRO
|
MACRO ATTR_BLK_DATA
|
||||||
db \1 ; which regions are affected
|
db \1 ; which regions are affected
|
||||||
db \2 + (\3 << 2) + (\4 << 4) ; palette for each region
|
db \2 + (\3 << 2) + (\4 << 4) ; palette for each region
|
||||||
db \5, \6, \7, \8 ; x1, y1, x2, y2
|
db \5, \6, \7, \8 ; x1, y1, x2, y2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
PAL_SET: MACRO
|
MACRO PAL_SET
|
||||||
db ($a << 3) + 1
|
db ($a << 3) + 1
|
||||||
dw \1, \2, \3, \4
|
dw \1, \2, \3, \4
|
||||||
ds 7, 0
|
ds 7, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
PAL_TRN: MACRO
|
MACRO PAL_TRN
|
||||||
db ($b << 3) + 1
|
db ($b << 3) + 1
|
||||||
ds 15, 0
|
ds 15, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
MLT_REQ: MACRO
|
MACRO MLT_REQ
|
||||||
db ($11 << 3) + 1
|
db ($11 << 3) + 1
|
||||||
db \1 - 1
|
db \1 - 1
|
||||||
ds 14, 0
|
ds 14, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
CHR_TRN: MACRO
|
MACRO CHR_TRN
|
||||||
db ($13 << 3) + 1
|
db ($13 << 3) + 1
|
||||||
db \1 + (\2 << 1)
|
db \1 + (\2 << 1)
|
||||||
ds 14, 0
|
ds 14, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
PCT_TRN: MACRO
|
MACRO PCT_TRN
|
||||||
db ($14 << 3) + 1
|
db ($14 << 3) + 1
|
||||||
ds 15, 0
|
ds 15, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
MASK_EN: MACRO
|
MACRO MASK_EN
|
||||||
db ($17 << 3) + 1
|
db ($17 << 3) + 1
|
||||||
db \1
|
db \1
|
||||||
ds 14, 0
|
ds 14, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
DATA_SND: MACRO
|
MACRO DATA_SND
|
||||||
db ($f << 3) + 1
|
db ($f << 3) + 1
|
||||||
dw \1 ; address
|
dw \1 ; address
|
||||||
db \2 ; bank
|
db \2 ; bank
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
overworld_sprite: MACRO
|
MACRO overworld_sprite
|
||||||
dw \1
|
dw \1
|
||||||
db \2 tiles
|
db \2 tiles
|
||||||
db BANK(\1)
|
db BANK(\1)
|
||||||
|
|
|
@ -15,7 +15,7 @@ TextBoxCoordTable:
|
||||||
db MON_SPRITE_POPUP, 6, 4, 14, 13
|
db MON_SPRITE_POPUP, 6, 4, 14, 13
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
text_box_text: MACRO
|
MACRO text_box_text
|
||||||
db \1 ; text box ID
|
db \1 ; text box ID
|
||||||
db \2, \3, \4, \5 ; text box coordinates
|
db \2, \3, \4, \5 ; text box coordinates
|
||||||
dw \6 ; text pointer
|
dw \6 ; text pointer
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
add_tx_pre: MACRO
|
MACRO add_tx_pre
|
||||||
\1_id::
|
\1_id::
|
||||||
dw \1
|
dw \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
tile_ids: MACRO
|
MACRO tile_ids
|
||||||
dw \1
|
dw \1
|
||||||
dn \3, \2
|
dn \3, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
bookshelf_tile: MACRO
|
MACRO bookshelf_tile
|
||||||
db \1, \2
|
db \1, \2
|
||||||
db_tx_pre \3
|
db_tx_pre \3
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
coll_tiles: MACRO
|
MACRO coll_tiles
|
||||||
IF _NARG
|
IF _NARG
|
||||||
db \# ; all args
|
db \# ; all args
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
@ -14,7 +14,7 @@ DoorTileIDPointers:
|
||||||
dbw PLATEAU, .PlateauDoorTileIDs
|
dbw PLATEAU, .PlateauDoorTileIDs
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
door_tiles: MACRO
|
MACRO door_tiles
|
||||||
IF _NARG
|
IF _NARG
|
||||||
db \# ; all args
|
db \# ; all args
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
spinner: MACRO
|
MACRO spinner
|
||||||
; \1: source
|
; \1: source
|
||||||
; \2: offset (BANK() chokes on literals)
|
; \2: offset (BANK() chokes on literals)
|
||||||
; \3: dest
|
; \3: dest
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
tileset: MACRO
|
MACRO tileset
|
||||||
db BANK(\1_GFX)
|
db BANK(\1_GFX)
|
||||||
dw \1_Block, \1_GFX, \1_Coll
|
dw \1_Block, \1_GFX, \1_Coll
|
||||||
db \2, \3, \4 ; counter tiles
|
db \2, \3, \4 ; counter tiles
|
||||||
|
|
|
@ -4,7 +4,7 @@ WarpTileListPointers:
|
||||||
dw .FacingLeftWarpTiles
|
dw .FacingLeftWarpTiles
|
||||||
dw .FacingRightWarpTiles
|
dw .FacingRightWarpTiles
|
||||||
|
|
||||||
warp_carpet_tiles: MACRO
|
MACRO warp_carpet_tiles
|
||||||
IF _NARG
|
IF _NARG
|
||||||
db \# ; all args
|
db \# ; all args
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
@ -26,7 +26,7 @@ WarpTileIDPointers:
|
||||||
dw .PlateauWarpTileIDs
|
dw .PlateauWarpTileIDs
|
||||||
assert_table_length NUM_TILESETS
|
assert_table_length NUM_TILESETS
|
||||||
|
|
||||||
warp_tiles: MACRO
|
MACRO warp_tiles
|
||||||
IF _NARG
|
IF _NARG
|
||||||
db \# ; all args
|
db \# ; all args
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
move_choices: MACRO
|
MACRO move_choices
|
||||||
IF _NARG
|
IF _NARG
|
||||||
db \# ; all args
|
db \# ; all args
|
||||||
ENDC
|
ENDC
|
||||||
db 0 ; end
|
db 0 ; end
|
||||||
list_index += 1
|
DEF list_index += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; move choice modification methods that are applied for each trainer class
|
; move choice modification methods that are applied for each trainer class
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
pic_money: MACRO
|
MACRO pic_money
|
||||||
dw \1
|
dw \1
|
||||||
bcd3 \2
|
bcd3 \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
two_option_menu: MACRO
|
MACRO two_option_menu
|
||||||
db \1, \2, \3
|
db \1, \2, \3
|
||||||
dw \4
|
dw \4
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -372,7 +372,7 @@ LoadAnimationTileset:
|
||||||
ld c, a ; number of tiles
|
ld c, a ; number of tiles
|
||||||
jp CopyVideoData ; load tileset
|
jp CopyVideoData ; load tileset
|
||||||
|
|
||||||
anim_tileset: MACRO
|
MACRO anim_tileset
|
||||||
db \1
|
db \1
|
||||||
dw \2
|
dw \2
|
||||||
db -1 ; padding
|
db -1 ; padding
|
||||||
|
|
|
@ -662,7 +662,7 @@ BattleTransition_Circle_Sub2:
|
||||||
const CIRCLE_LEFT
|
const CIRCLE_LEFT
|
||||||
const CIRCLE_RIGHT
|
const CIRCLE_RIGHT
|
||||||
|
|
||||||
half_circle: MACRO
|
MACRO half_circle
|
||||||
; quadrant x, circle data, target coord
|
; quadrant x, circle data, target coord
|
||||||
db \1
|
db \1
|
||||||
dw \2
|
dw \2
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
CIRCLE_TILE_ID EQU $70
|
DEF CIRCLE_TILE_ID EQU $70
|
||||||
|
|
||||||
DisplayDiploma::
|
DisplayDiploma::
|
||||||
call SaveScreenTilesToBuffer2
|
call SaveScreenTilesToBuffer2
|
||||||
|
@ -83,7 +83,7 @@ UnusedPlayerNameLengthFunc:
|
||||||
dec c
|
dec c
|
||||||
jr .loop
|
jr .loop
|
||||||
|
|
||||||
diploma_text: MACRO
|
MACRO diploma_text
|
||||||
dw \3
|
dw \3
|
||||||
dwcoord \1, \2
|
dwcoord \1, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -183,12 +183,12 @@ UpdateCinnabarGymGateTileBlocks_::
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
gym_gate_coord: MACRO
|
MACRO gym_gate_coord
|
||||||
db \1, \2, \3, 0
|
db \1, \2, \3, 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
HORIZONTAL_GATE_BLOCK EQU $54
|
DEF HORIZONTAL_GATE_BLOCK EQU $54
|
||||||
VERTICAL_GATE_BLOCK EQU $5f
|
DEF VERTICAL_GATE_BLOCK EQU $5f
|
||||||
|
|
||||||
CinnabarGymGateCoords:
|
CinnabarGymGateCoords:
|
||||||
; x coord, y coord, block id
|
; x coord, y coord, block id
|
||||||
|
|
|
@ -280,8 +280,8 @@ GetPartyMonSpriteID:
|
||||||
|
|
||||||
INCLUDE "data/pokemon/menu_icons.asm"
|
INCLUDE "data/pokemon/menu_icons.asm"
|
||||||
|
|
||||||
INC_FRAME_1 EQUS "0, $20"
|
DEF INC_FRAME_1 EQUS "0, $20"
|
||||||
INC_FRAME_2 EQUS "$20, $20"
|
DEF INC_FRAME_2 EQUS "$20, $20"
|
||||||
|
|
||||||
BugIconFrame1: INCBIN "gfx/icons/bug.2bpp", INC_FRAME_1
|
BugIconFrame1: INCBIN "gfx/icons/bug.2bpp", INC_FRAME_1
|
||||||
PlantIconFrame1: INCBIN "gfx/icons/plant.2bpp", INC_FRAME_1
|
PlantIconFrame1: INCBIN "gfx/icons/plant.2bpp", INC_FRAME_1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
NOT_VISITED EQU $fe
|
DEF NOT_VISITED EQU $fe
|
||||||
|
|
||||||
DisplayTownMap:
|
DisplayTownMap:
|
||||||
call LoadTownMap
|
call LoadTownMap
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
const MOVE_GENGAR_RIGHT
|
const MOVE_GENGAR_RIGHT
|
||||||
const MOVE_GENGAR_LEFT
|
const MOVE_GENGAR_LEFT
|
||||||
|
|
||||||
ANIMATION_END EQU 80
|
DEF ANIMATION_END EQU 80
|
||||||
|
|
||||||
PlayIntro:
|
PlayIntro:
|
||||||
xor a
|
xor a
|
||||||
|
|
|
@ -21,7 +21,7 @@ InitPlayerData2:
|
||||||
ld hl, wNumBoxItems
|
ld hl, wNumBoxItems
|
||||||
call InitializeEmptyList
|
call InitializeEmptyList
|
||||||
|
|
||||||
START_MONEY EQU $3000
|
DEF START_MONEY EQU $3000
|
||||||
ld hl, wPlayerMoney + 1
|
ld hl, wPlayerMoney + 1
|
||||||
ld a, HIGH(START_MONEY)
|
ld a, HIGH(START_MONEY)
|
||||||
ld [hld], a
|
ld [hld], a
|
||||||
|
|
|
@ -56,12 +56,12 @@ TradeAnimCommon:
|
||||||
ld [wOptions], a
|
ld [wOptions], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
addtradefunc: MACRO
|
MACRO addtradefunc
|
||||||
\1TradeFunc::
|
\1TradeFunc::
|
||||||
dw \1
|
dw \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
tradefunc: MACRO
|
MACRO tradefunc
|
||||||
db (\1TradeFunc - TradeFuncPointerTable) / 2
|
db (\1TradeFunc - TradeFuncPointerTable) / 2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -697,7 +697,7 @@ Trade_WriteCircleOAM:
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
trade_circle_oam: MACRO
|
MACRO trade_circle_oam
|
||||||
dw \1
|
dw \1
|
||||||
db \2, \3
|
db \2, \3
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -51,7 +51,7 @@ GetMoveBoulderDustFunctionPointer:
|
||||||
pop hl
|
pop hl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
boulder_dust_adjust: MACRO
|
MACRO boulder_dust_adjust
|
||||||
db \1, \2 ; coords
|
db \1, \2 ; coords
|
||||||
dw \3 ; function
|
dw \3 ; function
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
MAP_TILESET_SIZE EQU $60
|
DEF MAP_TILESET_SIZE EQU $60
|
||||||
|
|
||||||
UpdatePlayerSprite:
|
UpdatePlayerSprite:
|
||||||
ld a, [wSpritePlayerStateData2WalkAnimationCounter]
|
ld a, [wSpritePlayerStateData2WalkAnimationCounter]
|
||||||
|
|
|
@ -475,7 +475,7 @@ FishingRodOAM:
|
||||||
dbsprite 8, 10, 0, 0, $fe, 0 ; left
|
dbsprite 8, 10, 0, 0, $fe, 0 ; left
|
||||||
dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right
|
dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right
|
||||||
|
|
||||||
fishing_gfx: MACRO
|
MACRO fishing_gfx
|
||||||
dw \1
|
dw \1
|
||||||
db \2
|
db \2
|
||||||
db BANK(\1)
|
db BANK(\1)
|
||||||
|
|
|
@ -8,7 +8,7 @@ SoftReset::
|
||||||
Init::
|
Init::
|
||||||
; Program init.
|
; Program init.
|
||||||
|
|
||||||
rLCDC_DEFAULT EQU %11100011
|
DEF rLCDC_DEFAULT EQU %11100011
|
||||||
; * LCD enabled
|
; * LCD enabled
|
||||||
; * Window tile map at $9C00
|
; * Window tile map at $9C00
|
||||||
; * Window display enabled
|
; * Window display enabled
|
||||||
|
|
|
@ -59,20 +59,20 @@ PrintNumber::
|
||||||
cp 6
|
cp 6
|
||||||
jr z, .hundred_thousands
|
jr z, .hundred_thousands
|
||||||
|
|
||||||
print_digit: MACRO
|
MACRO print_digit
|
||||||
|
|
||||||
IF (\1) / $10000
|
IF (\1) / $10000
|
||||||
ld a, \1 / $10000 % $100
|
ld a, \1 / $10000 % $100
|
||||||
ELSE
|
ELSE
|
||||||
xor a
|
xor a
|
||||||
ENDC
|
ENDC
|
||||||
ldh [hPowerOf10 + 0], a
|
ldh [hPowerOf10 + 0], a
|
||||||
|
|
||||||
IF (\1) / $100
|
IF (\1) / $100
|
||||||
ld a, \1 / $100 % $100
|
ld a, \1 / $100 % $100
|
||||||
ELSE
|
ELSE
|
||||||
xor a
|
xor a
|
||||||
ENDC
|
ENDC
|
||||||
ldh [hPowerOf10 + 1], a
|
ldh [hPowerOf10 + 1], a
|
||||||
|
|
||||||
ld a, \1 / $1 % $100
|
ld a, \1 / $1 % $100
|
||||||
|
|
|
@ -123,7 +123,7 @@ TextIDErrorText:: ; "[hSpriteIndexOrTextID] ERROR."
|
||||||
text_far _TextIDErrorText
|
text_far _TextIDErrorText
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
print_name: MACRO
|
MACRO print_name
|
||||||
push de
|
push de
|
||||||
ld de, \1
|
ld de, \1
|
||||||
jr PlaceCommandCharacter
|
jr PlaceCommandCharacter
|
||||||
|
|
|
@ -66,7 +66,7 @@ DisplayTextID::
|
||||||
|
|
||||||
; check first byte of text for special cases
|
; check first byte of text for special cases
|
||||||
|
|
||||||
dict2: MACRO
|
MACRO dict2
|
||||||
cp \1
|
cp \1
|
||||||
jr nz, .not\@
|
jr nz, .not\@
|
||||||
\2
|
\2
|
||||||
|
|
|
@ -93,7 +93,7 @@ DelayFrame::
|
||||||
; Wait for the next vblank interrupt.
|
; Wait for the next vblank interrupt.
|
||||||
; As a bonus, this saves battery.
|
; As a bonus, this saves battery.
|
||||||
|
|
||||||
NOT_VBLANKED EQU 1
|
DEF NOT_VBLANKED EQU 1
|
||||||
|
|
||||||
ld a, NOT_VBLANKED
|
ld a, NOT_VBLANKED
|
||||||
ldh [hVBlankOccurred], a
|
ldh [hVBlankOccurred], a
|
||||||
|
|
|
@ -1,122 +1,122 @@
|
||||||
; Macros to verify assumptions about the data or code
|
; Macros to verify assumptions about the data or code
|
||||||
|
|
||||||
table_width: MACRO
|
MACRO table_width
|
||||||
CURRENT_TABLE_WIDTH = \1
|
DEF CURRENT_TABLE_WIDTH = \1
|
||||||
IF _NARG == 2
|
IF _NARG == 2
|
||||||
REDEF CURRENT_TABLE_START EQUS "\2"
|
REDEF CURRENT_TABLE_START EQUS "\2"
|
||||||
ELSE
|
ELSE
|
||||||
REDEF CURRENT_TABLE_START EQUS "._table_width\@"
|
REDEF CURRENT_TABLE_START EQUS "._table_width\@"
|
||||||
{CURRENT_TABLE_START}:
|
{CURRENT_TABLE_START}:
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
assert_table_length: MACRO
|
MACRO assert_table_length
|
||||||
x = \1
|
DEF x = \1
|
||||||
ASSERT x * CURRENT_TABLE_WIDTH == @ - {CURRENT_TABLE_START}, \
|
ASSERT x * CURRENT_TABLE_WIDTH == @ - {CURRENT_TABLE_START}, \
|
||||||
"{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
|
"{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
list_start: MACRO
|
MACRO list_start
|
||||||
list_index = 0
|
DEF list_index = 0
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
REDEF CURRENT_LIST_START EQUS "\1"
|
REDEF CURRENT_LIST_START EQUS "\1"
|
||||||
ELSE
|
ELSE
|
||||||
REDEF CURRENT_LIST_START EQUS "._list_start\@"
|
REDEF CURRENT_LIST_START EQUS "._list_start\@"
|
||||||
{CURRENT_LIST_START}:
|
{CURRENT_LIST_START}:
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
li: MACRO
|
MACRO li
|
||||||
ASSERT !STRIN(\1, "@"), STRCAT("String terminator \"@\" in list entry: ", \1)
|
ASSERT !STRIN(\1, "@"), STRCAT("String terminator \"@\" in list entry: ", \1)
|
||||||
db \1, "@"
|
db \1, "@"
|
||||||
list_index += 1
|
DEF list_index += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
assert_list_length: MACRO
|
MACRO assert_list_length
|
||||||
x = \1
|
DEF x = \1
|
||||||
ASSERT x == list_index, \
|
ASSERT x == list_index, \
|
||||||
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
|
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
nybble_array: MACRO
|
MACRO nybble_array
|
||||||
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
DEF CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||||
CURRENT_NYBBLE_ARRAY_LENGTH = 0
|
DEF CURRENT_NYBBLE_ARRAY_LENGTH = 0
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
|
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
|
||||||
ELSE
|
ELSE
|
||||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
|
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
|
||||||
{CURRENT_NYBBLE_ARRAY_START}:
|
{CURRENT_NYBBLE_ARRAY_START}:
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
nybble: MACRO
|
MACRO nybble
|
||||||
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
|
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
|
||||||
CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
|
DEF CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
|
||||||
CURRENT_NYBBLE_ARRAY_LENGTH += 1
|
DEF CURRENT_NYBBLE_ARRAY_LENGTH += 1
|
||||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
|
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
|
||||||
db CURRENT_NYBBLE_ARRAY_VALUE
|
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||||
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
DEF CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
end_nybble_array: MACRO
|
MACRO end_nybble_array
|
||||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
|
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
|
||||||
db CURRENT_NYBBLE_ARRAY_VALUE << 4
|
db CURRENT_NYBBLE_ARRAY_VALUE << 4
|
||||||
ENDC
|
ENDC
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
x = \1
|
DEF x = \1
|
||||||
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
|
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
|
||||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
|
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
|
||||||
x = (x + 1) / 2
|
DEF x = (x + 1) / 2
|
||||||
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
|
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
|
||||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
|
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
bit_array: MACRO
|
MACRO bit_array
|
||||||
CURRENT_BIT_ARRAY_VALUE = 0
|
DEF CURRENT_BIT_ARRAY_VALUE = 0
|
||||||
CURRENT_BIT_ARRAY_LENGTH = 0
|
DEF CURRENT_BIT_ARRAY_LENGTH = 0
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
REDEF CURRENT_BIT_ARRAY_START EQUS "\1"
|
REDEF CURRENT_BIT_ARRAY_START EQUS "\1"
|
||||||
ELSE
|
ELSE
|
||||||
REDEF CURRENT_BIT_ARRAY_START EQUS "._bit_array\@"
|
REDEF CURRENT_BIT_ARRAY_START EQUS "._bit_array\@"
|
||||||
{CURRENT_BIT_ARRAY_START}:
|
{CURRENT_BIT_ARRAY_START}:
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dbit: MACRO
|
MACRO dbit
|
||||||
ASSERT (\1) == 0 || (\1) == 1, "bits must be 0 or 1"
|
ASSERT (\1) == 0 || (\1) == 1, "bits must be 0 or 1"
|
||||||
CURRENT_BIT_ARRAY_VALUE |= (\1) << (CURRENT_BIT_ARRAY_LENGTH % 8)
|
DEF CURRENT_BIT_ARRAY_VALUE |= (\1) << (CURRENT_BIT_ARRAY_LENGTH % 8)
|
||||||
CURRENT_BIT_ARRAY_LENGTH += 1
|
DEF CURRENT_BIT_ARRAY_LENGTH += 1
|
||||||
IF CURRENT_BIT_ARRAY_LENGTH % 8 == 0
|
IF CURRENT_BIT_ARRAY_LENGTH % 8 == 0
|
||||||
db CURRENT_BIT_ARRAY_VALUE
|
db CURRENT_BIT_ARRAY_VALUE
|
||||||
CURRENT_BIT_ARRAY_VALUE = 0
|
DEF CURRENT_BIT_ARRAY_VALUE = 0
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
end_bit_array: MACRO
|
MACRO end_bit_array
|
||||||
IF CURRENT_BIT_ARRAY_LENGTH % 8
|
IF CURRENT_BIT_ARRAY_LENGTH % 8
|
||||||
db CURRENT_BIT_ARRAY_VALUE
|
db CURRENT_BIT_ARRAY_VALUE
|
||||||
ENDC
|
ENDC
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
x = \1
|
DEF x = \1
|
||||||
ASSERT x == CURRENT_BIT_ARRAY_LENGTH, \
|
ASSERT x == CURRENT_BIT_ARRAY_LENGTH, \
|
||||||
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bits, got {d:CURRENT_BIT_ARRAY_LENGTH}"
|
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bits, got {d:CURRENT_BIT_ARRAY_LENGTH}"
|
||||||
x = (x + 7) / 8
|
DEF x = (x + 7) / 8
|
||||||
ASSERT x == @ - {CURRENT_BIT_ARRAY_START}, \
|
ASSERT x == @ - {CURRENT_BIT_ARRAY_START}, \
|
||||||
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bytes"
|
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bytes"
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
def_grass_wildmons: MACRO
|
MACRO def_grass_wildmons
|
||||||
;\1: encounter rate
|
;\1: encounter rate
|
||||||
CURRENT_GRASS_WILDMONS_RATE = \1
|
DEF CURRENT_GRASS_WILDMONS_RATE = \1
|
||||||
REDEF CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1"
|
REDEF CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1"
|
||||||
{CURRENT_GRASS_WILDMONS_LABEL}:
|
{CURRENT_GRASS_WILDMONS_LABEL}:
|
||||||
db \1
|
db \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
end_grass_wildmons: MACRO
|
MACRO end_grass_wildmons
|
||||||
IF CURRENT_GRASS_WILDMONS_RATE == 0
|
IF CURRENT_GRASS_WILDMONS_RATE == 0
|
||||||
ASSERT 1 == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \
|
ASSERT 1 == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \
|
||||||
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected 1 byte"
|
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected 1 byte"
|
||||||
|
@ -126,15 +126,15 @@ end_grass_wildmons: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
def_water_wildmons: MACRO
|
MACRO def_water_wildmons
|
||||||
;\1: encounter rate
|
;\1: encounter rate
|
||||||
CURRENT_WATER_WILDMONS_RATE = \1
|
DEF CURRENT_WATER_WILDMONS_RATE = \1
|
||||||
REDEF CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1"
|
REDEF CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1"
|
||||||
{CURRENT_WATER_WILDMONS_LABEL}:
|
{CURRENT_WATER_WILDMONS_LABEL}:
|
||||||
db \1
|
db \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
end_water_wildmons: MACRO
|
MACRO end_water_wildmons
|
||||||
IF CURRENT_WATER_WILDMONS_RATE == 0
|
IF CURRENT_WATER_WILDMONS_RATE == 0
|
||||||
ASSERT 1 == @ - {CURRENT_WATER_WILDMONS_LABEL}, \
|
ASSERT 1 == @ - {CURRENT_WATER_WILDMONS_LABEL}, \
|
||||||
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected 1 byte"
|
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected 1 byte"
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
; Syntactic sugar macros
|
; Syntactic sugar macros
|
||||||
|
|
||||||
lb: MACRO ; r, hi, lo
|
MACRO lb ; r, hi, lo
|
||||||
ld \1, ((\2) & $ff) << 8 + ((\3) & $ff)
|
ld \1, ((\2) & $ff) << 8 + ((\3) & $ff)
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
ldpal: MACRO
|
MACRO ldpal
|
||||||
ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5
|
ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; Design patterns
|
; Design patterns
|
||||||
|
|
||||||
dict: MACRO
|
MACRO dict
|
||||||
IF \1 == 0
|
IF \1 == 0
|
||||||
and a
|
and a
|
||||||
ELSE
|
ELSE
|
||||||
cp \1
|
cp \1
|
||||||
ENDC
|
ENDC
|
||||||
jp z, \2
|
jp z, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,48 +1,48 @@
|
||||||
; Enumerate constants
|
; Enumerate constants
|
||||||
|
|
||||||
const_def: MACRO
|
MACRO const_def
|
||||||
IF _NARG >= 1
|
IF _NARG >= 1
|
||||||
const_value = \1
|
DEF const_value = \1
|
||||||
ELSE
|
ELSE
|
||||||
const_value = 0
|
DEF const_value = 0
|
||||||
ENDC
|
ENDC
|
||||||
IF _NARG >= 2
|
IF _NARG >= 2
|
||||||
const_inc = \2
|
DEF const_inc = \2
|
||||||
ELSE
|
ELSE
|
||||||
const_inc = 1
|
DEF const_inc = 1
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const: MACRO
|
MACRO const
|
||||||
\1 EQU const_value
|
DEF \1 EQU const_value
|
||||||
const_value += const_inc
|
DEF const_value += const_inc
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
shift_const: MACRO
|
MACRO shift_const
|
||||||
\1 EQU 1 << const_value
|
DEF \1 EQU 1 << const_value
|
||||||
const_value += const_inc
|
DEF const_value += const_inc
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const_skip: MACRO
|
MACRO const_skip
|
||||||
if _NARG >= 1
|
if _NARG >= 1
|
||||||
const_value += const_inc * (\1)
|
DEF const_value += const_inc * (\1)
|
||||||
else
|
else
|
||||||
const_value += const_inc
|
DEF const_value += const_inc
|
||||||
endc
|
endc
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const_next: MACRO
|
MACRO const_next
|
||||||
if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value)
|
if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value)
|
||||||
fail "const_next cannot go backwards from {const_value} to \1"
|
fail "const_next cannot go backwards from {const_value} to \1"
|
||||||
else
|
else
|
||||||
const_value = \1
|
DEF const_value = \1
|
||||||
endc
|
endc
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
rb_skip: MACRO
|
MACRO rb_skip
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
rsset _RS + \1
|
rsset _RS + \1
|
||||||
ELSE
|
ELSE
|
||||||
rsset _RS + 1
|
rsset _RS + 1
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
validate_coords: MACRO
|
MACRO validate_coords
|
||||||
IF _NARG >= 4
|
IF _NARG >= 4
|
||||||
IF \1 >= \3
|
IF \1 >= \3
|
||||||
fail "x coord out of range"
|
fail "x coord out of range"
|
||||||
|
@ -11,11 +11,11 @@ validate_coords: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
hlcoord EQUS "coord hl,"
|
DEF hlcoord EQUS "coord hl,"
|
||||||
bccoord EQUS "coord bc,"
|
DEF bccoord EQUS "coord bc,"
|
||||||
decoord EQUS "coord de,"
|
DEF decoord EQUS "coord de,"
|
||||||
|
|
||||||
coord: MACRO
|
MACRO coord
|
||||||
; register, x, y[, origin]
|
; register, x, y[, origin]
|
||||||
validate_coords \2, \3
|
validate_coords \2, \3
|
||||||
IF _NARG >= 4
|
IF _NARG >= 4
|
||||||
|
@ -25,11 +25,11 @@ coord: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
hlbgcoord EQUS "bgcoord hl,"
|
DEF hlbgcoord EQUS "bgcoord hl,"
|
||||||
bcbgcoord EQUS "bgcoord bc,"
|
DEF bcbgcoord EQUS "bgcoord bc,"
|
||||||
debgcoord EQUS "bgcoord de,"
|
DEF debgcoord EQUS "bgcoord de,"
|
||||||
|
|
||||||
bgcoord: MACRO
|
MACRO bgcoord
|
||||||
; register, x, y[, origin]
|
; register, x, y[, origin]
|
||||||
validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT
|
validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT
|
||||||
IF _NARG >= 4
|
IF _NARG >= 4
|
||||||
|
@ -39,22 +39,22 @@ bgcoord: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
hlowcoord EQUS "owcoord hl,"
|
DEF hlowcoord EQUS "owcoord hl,"
|
||||||
bcowcoord EQUS "owcoord bc,"
|
DEF bcowcoord EQUS "owcoord bc,"
|
||||||
deowcoord EQUS "owcoord de,"
|
DEF deowcoord EQUS "owcoord de,"
|
||||||
|
|
||||||
owcoord: MACRO
|
MACRO owcoord
|
||||||
; register, x, y, map width
|
; register, x, y, map width
|
||||||
ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
|
ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
event_displacement: MACRO
|
MACRO event_displacement
|
||||||
; map width, x blocks, y blocks
|
; map width, x blocks, y blocks
|
||||||
dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\3) >> 1) + ((\2) >> 1))
|
dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\3) >> 1) + ((\2) >> 1))
|
||||||
db \3, \2
|
db \3, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dwcoord: MACRO
|
MACRO dwcoord
|
||||||
; x, y
|
; x, y
|
||||||
validate_coords \1, \2
|
validate_coords \1, \2
|
||||||
IF _NARG >= 3
|
IF _NARG >= 3
|
||||||
|
@ -64,7 +64,7 @@ dwcoord: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
ldcoord_a: MACRO
|
MACRO ldcoord_a
|
||||||
; x, y[, origin]
|
; x, y[, origin]
|
||||||
validate_coords \1, \2
|
validate_coords \1, \2
|
||||||
IF _NARG >= 3
|
IF _NARG >= 3
|
||||||
|
@ -74,7 +74,7 @@ ldcoord_a: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
lda_coord: MACRO
|
MACRO lda_coord
|
||||||
; x, y[, origin]
|
; x, y[, origin]
|
||||||
validate_coords \1, \2
|
validate_coords \1, \2
|
||||||
IF _NARG >= 3
|
IF _NARG >= 3
|
||||||
|
@ -84,7 +84,7 @@ lda_coord: MACRO
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dbmapcoord: MACRO
|
MACRO dbmapcoord
|
||||||
; x, y
|
; x, y
|
||||||
db \2, \1
|
db \2, \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,71 +1,71 @@
|
||||||
; Value macros
|
; Value macros
|
||||||
|
|
||||||
percent EQUS "* $ff / 100"
|
DEF percent EQUS "* $ff / 100"
|
||||||
|
|
||||||
bcd2: MACRO
|
MACRO bcd2
|
||||||
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
||||||
dn ((\1) / 10) % 10, (\1) % 10
|
dn ((\1) / 10) % 10, (\1) % 10
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
bcd3: MACRO
|
MACRO bcd3
|
||||||
dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
|
dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
|
||||||
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
||||||
dn ((\1) / 10) % 10, (\1) % 10
|
dn ((\1) / 10) % 10, (\1) % 10
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; used in data/pokemon/base_stats/*.asm
|
; used in data/pokemon/base_stats/*.asm
|
||||||
tmhm: MACRO
|
MACRO tmhm
|
||||||
; initialize bytes to 0
|
; initialize bytes to 0
|
||||||
FOR n, (NUM_TM_HM + 7) / 8
|
FOR n, (NUM_TM_HM + 7) / 8
|
||||||
_tm{d:n} = 0
|
DEF _tm{d:n} = 0
|
||||||
ENDR
|
ENDR
|
||||||
; set bits of bytes
|
; set bits of bytes
|
||||||
REPT _NARG
|
REPT _NARG
|
||||||
IF DEF(\1_TMNUM)
|
IF DEF(\1_TMNUM)
|
||||||
n = (\1_TMNUM - 1) / 8
|
DEF n = (\1_TMNUM - 1) / 8
|
||||||
i = (\1_TMNUM - 1) % 8
|
DEF i = (\1_TMNUM - 1) % 8
|
||||||
_tm{d:n} |= 1 << i
|
DEF _tm{d:n} |= 1 << i
|
||||||
ELSE
|
ELSE
|
||||||
FAIL "\1 is not a TM or HM move"
|
FAIL "\1 is not a TM or HM move"
|
||||||
ENDC
|
ENDC
|
||||||
SHIFT
|
SHIFT
|
||||||
ENDR
|
ENDR
|
||||||
; output bytes
|
; output bytes
|
||||||
FOR n, (NUM_TM_HM + 7) / 8
|
FOR n, (NUM_TM_HM + 7) / 8
|
||||||
db _tm{d:n}
|
db _tm{d:n}
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
; Constant data (db, dw, dl) macros
|
; Constant data (db, dw, dl) macros
|
||||||
|
|
||||||
dbw: MACRO
|
MACRO dbw
|
||||||
db \1
|
db \1
|
||||||
dw \2
|
dw \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dwb: MACRO
|
MACRO dwb
|
||||||
dw \1
|
dw \1
|
||||||
db \2
|
db \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dn: MACRO ; nybbles
|
MACRO dn ; nybbles
|
||||||
REPT _NARG / 2
|
REPT _NARG / 2
|
||||||
db ((\1) << 4) | (\2)
|
db ((\1) << 4) | (\2)
|
||||||
SHIFT 2
|
SHIFT 2
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dba: MACRO ; dbw bank, address
|
MACRO dba ; dbw bank, address
|
||||||
REPT _NARG
|
REPT _NARG
|
||||||
dbw BANK(\1), \1
|
dbw BANK(\1), \1
|
||||||
SHIFT
|
SHIFT
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
dab: MACRO ; dwb address, bank
|
MACRO dab ; dwb address, bank
|
||||||
REPT _NARG
|
REPT _NARG
|
||||||
dwb \1, BANK(\1)
|
dwb \1, BANK(\1)
|
||||||
SHIFT
|
SHIFT
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
farcall: MACRO
|
MACRO farcall
|
||||||
ld b, BANK(\1)
|
ld b, BANK(\1)
|
||||||
ld hl, \1
|
ld hl, \1
|
||||||
call Bankswitch
|
call Bankswitch
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
callfar: MACRO
|
MACRO callfar
|
||||||
ld hl, \1
|
ld hl, \1
|
||||||
ld b, BANK(\1)
|
ld b, BANK(\1)
|
||||||
call Bankswitch
|
call Bankswitch
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
farjp: MACRO
|
MACRO farjp
|
||||||
ld b, BANK(\1)
|
ld b, BANK(\1)
|
||||||
ld hl, \1
|
ld hl, \1
|
||||||
jp Bankswitch
|
jp Bankswitch
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
jpfar: MACRO
|
MACRO jpfar
|
||||||
ld hl, \1
|
ld hl, \1
|
||||||
ld b, BANK(\1)
|
ld b, BANK(\1)
|
||||||
jp Bankswitch
|
jp Bankswitch
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
homecall: MACRO
|
MACRO homecall
|
||||||
ldh a, [hLoadedROMBank]
|
ldh a, [hLoadedROMBank]
|
||||||
push af
|
push af
|
||||||
ld a, BANK(\1)
|
ld a, BANK(\1)
|
||||||
|
@ -34,7 +34,7 @@ homecall: MACRO
|
||||||
ld [MBC1RomBank], a
|
ld [MBC1RomBank], a
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
homecall_sf: MACRO ; homecall but save flags by popping into bc instead of af
|
MACRO homecall_sf ; homecall but save flags by popping into bc instead of af
|
||||||
ldh a, [hLoadedROMBank]
|
ldh a, [hLoadedROMBank]
|
||||||
push af
|
push af
|
||||||
ld a, BANK(\1)
|
ld a, BANK(\1)
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
RGB: MACRO
|
MACRO RGB
|
||||||
REPT _NARG / 3
|
REPT _NARG / 3
|
||||||
dw palred (\1) + palgreen (\2) + palblue (\3)
|
dw palred (\1) + palgreen (\2) + palblue (\3)
|
||||||
SHIFT 3
|
SHIFT 3
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
palred EQUS "(1 << 0) *"
|
DEF palred EQUS "(1 << 0) *"
|
||||||
palgreen EQUS "(1 << 5) *"
|
DEF palgreen EQUS "(1 << 5) *"
|
||||||
palblue EQUS "(1 << 10) *"
|
DEF palblue EQUS "(1 << 10) *"
|
||||||
|
|
||||||
palettes EQUS "* PALETTE_SIZE"
|
DEF palettes EQUS "* PALETTE_SIZE"
|
||||||
palette EQUS "+ PALETTE_SIZE *"
|
DEF palette EQUS "+ PALETTE_SIZE *"
|
||||||
color EQUS "+ PAL_COLOR_SIZE *"
|
DEF color EQUS "+ PAL_COLOR_SIZE *"
|
||||||
|
|
||||||
tiles EQUS "* LEN_2BPP_TILE"
|
DEF tiles EQUS "* LEN_2BPP_TILE"
|
||||||
tile EQUS "+ LEN_2BPP_TILE *"
|
DEF tile EQUS "+ LEN_2BPP_TILE *"
|
||||||
|
|
||||||
dbsprite: MACRO
|
MACRO dbsprite
|
||||||
; x tile, y tile, x pixel, y pixel, vtile offset, attributes
|
; x tile, y tile, x pixel, y pixel, vtile offset, attributes
|
||||||
db (\2 * TILE_WIDTH) % $100 + \4, (\1 * TILE_WIDTH) % $100 + \3, \5, \6
|
db (\2 * TILE_WIDTH) % $100 + \4, (\1 * TILE_WIDTH) % $100 + \3, \5, \6
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
predef_id: MACRO
|
MACRO predef_id
|
||||||
ld a, (\1Predef - PredefPointers) / 3
|
ld a, (\1Predef - PredefPointers) / 3
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
predef: MACRO
|
MACRO predef
|
||||||
predef_id \1
|
predef_id \1
|
||||||
call Predef
|
call Predef
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
predef_jump: MACRO
|
MACRO predef_jump
|
||||||
predef_id \1
|
predef_id \1
|
||||||
jp Predef
|
jp Predef
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
tx_pre_id: MACRO
|
MACRO tx_pre_id
|
||||||
ld a, (\1_id - TextPredefs) / 2 + 1
|
ld a, (\1_id - TextPredefs) / 2 + 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
tx_pre: MACRO
|
MACRO tx_pre
|
||||||
tx_pre_id \1
|
tx_pre_id \1
|
||||||
call PrintPredefTextID
|
call PrintPredefTextID
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
tx_pre_jump: MACRO
|
MACRO tx_pre_jump
|
||||||
tx_pre_id \1
|
tx_pre_id \1
|
||||||
jp PrintPredefTextID
|
jp PrintPredefTextID
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
db_tx_pre: MACRO
|
MACRO db_tx_pre
|
||||||
db (\1_id - TextPredefs) / 2 + 1
|
db (\1_id - TextPredefs) / 2 + 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
audio_header: MACRO
|
MACRO audio_header
|
||||||
db (_NARG - 2) << 6 | \2
|
db (_NARG - 2) << 6 | \2
|
||||||
dw \1_\2
|
dw \1_\2
|
||||||
IF _NARG > 2
|
IF _NARG > 2
|
||||||
|
@ -24,7 +24,7 @@ ENDM
|
||||||
; small magnitude means quick change, large magnitude means slow change
|
; small magnitude means quick change, large magnitude means slow change
|
||||||
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
||||||
const pitch_sweep_cmd ; $10
|
const pitch_sweep_cmd ; $10
|
||||||
pitch_sweep: MACRO
|
MACRO pitch_sweep
|
||||||
db pitch_sweep_cmd
|
db pitch_sweep_cmd
|
||||||
IF \2 < 0
|
IF \2 < 0
|
||||||
db (\1 << 4) | (%1000 | (\2 * -1))
|
db (\1 << 4) | (%1000 | (\2 * -1))
|
||||||
|
@ -41,8 +41,8 @@ ENDM
|
||||||
; fade: positive value means decrease in volume, negative value means increase in volume
|
; fade: positive value means decrease in volume, negative value means increase in volume
|
||||||
; small magnitude means quick change, large magnitude means slow change
|
; small magnitude means quick change, large magnitude means slow change
|
||||||
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
||||||
square_note_cmd EQU sfx_note_cmd ; $20
|
DEF square_note_cmd EQU sfx_note_cmd ; $20
|
||||||
square_note: MACRO
|
MACRO square_note
|
||||||
db square_note_cmd | \1
|
db square_note_cmd | \1
|
||||||
IF \3 < 0
|
IF \3 < 0
|
||||||
db (\2 << 4) | (%1000 | (\3 * -1))
|
db (\2 << 4) | (%1000 | (\3 * -1))
|
||||||
|
@ -56,8 +56,8 @@ ENDM
|
||||||
; fade: positive value means decrease in volume, negative value means increase in volume
|
; fade: positive value means decrease in volume, negative value means increase in volume
|
||||||
; small magnitude means quick change, large magnitude means slow change
|
; small magnitude means quick change, large magnitude means slow change
|
||||||
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
||||||
noise_note_cmd EQU sfx_note_cmd ; $20
|
DEF noise_note_cmd EQU sfx_note_cmd ; $20
|
||||||
noise_note: MACRO
|
MACRO noise_note
|
||||||
db noise_note_cmd | \1
|
db noise_note_cmd | \1
|
||||||
IF \3 < 0
|
IF \3 < 0
|
||||||
db (\2 << 4) | (%1000 | (\3 * -1))
|
db (\2 << 4) | (%1000 | (\3 * -1))
|
||||||
|
@ -68,7 +68,7 @@ noise_note: MACRO
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; arguments: pitch, length [1, 16]
|
; arguments: pitch, length [1, 16]
|
||||||
note: MACRO
|
MACRO note
|
||||||
db (\1 << 4) | (\2 - 1)
|
db (\1 << 4) | (\2 - 1)
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ ENDM
|
||||||
|
|
||||||
; arguments: instrument [1, 19], length [1, 16]
|
; arguments: instrument [1, 19], length [1, 16]
|
||||||
const drum_note_cmd ; $b0
|
const drum_note_cmd ; $b0
|
||||||
drum_note: MACRO
|
MACRO drum_note
|
||||||
db drum_note_cmd | (\2 - 1)
|
db drum_note_cmd | (\2 - 1)
|
||||||
db \1
|
db \1
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -85,7 +85,7 @@ ENDM
|
||||||
; like drum_note but one 1 byte instead of 2
|
; like drum_note but one 1 byte instead of 2
|
||||||
; can only be used with instruments 1-10, excluding 2
|
; can only be used with instruments 1-10, excluding 2
|
||||||
; unused
|
; unused
|
||||||
drum_note_short: MACRO
|
MACRO drum_note_short
|
||||||
db (\1 << 4) | (\2 - 1)
|
db (\1 << 4) | (\2 - 1)
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ ENDM
|
||||||
|
|
||||||
; arguments: length [1, 16]
|
; arguments: length [1, 16]
|
||||||
const rest_cmd ; $c0
|
const rest_cmd ; $c0
|
||||||
rest: MACRO
|
MACRO rest
|
||||||
db rest_cmd | (\1 - 1)
|
db rest_cmd | (\1 - 1)
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ ENDM
|
||||||
; small magnitude means quick change, large magnitude means slow change
|
; small magnitude means quick change, large magnitude means slow change
|
||||||
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
; in signed magnitude representation, so a value of 8 is the same as (negative) 0
|
||||||
const note_type_cmd ; $d0
|
const note_type_cmd ; $d0
|
||||||
note_type: MACRO
|
MACRO note_type
|
||||||
db note_type_cmd | \1
|
db note_type_cmd | \1
|
||||||
IF \3 < 0
|
IF \3 < 0
|
||||||
db (\2 << 4) | (%1000 | (\3 * -1))
|
db (\2 << 4) | (%1000 | (\3 * -1))
|
||||||
|
@ -114,8 +114,8 @@ note_type: MACRO
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; arguments: speed [0, 15]
|
; arguments: speed [0, 15]
|
||||||
drum_speed_cmd EQU note_type_cmd ; $d0
|
DEF drum_speed_cmd EQU note_type_cmd ; $d0
|
||||||
drum_speed: MACRO
|
MACRO drum_speed
|
||||||
db drum_speed_cmd | \1
|
db drum_speed_cmd | \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ ENDM
|
||||||
|
|
||||||
; arguments: octave [1, 8]
|
; arguments: octave [1, 8]
|
||||||
const octave_cmd ; $e0
|
const octave_cmd ; $e0
|
||||||
octave: MACRO
|
MACRO octave
|
||||||
db octave_cmd | (8 - \1)
|
db octave_cmd | (8 - \1)
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ ENDM
|
||||||
|
|
||||||
; when enabled, effective frequency used is incremented by 1
|
; when enabled, effective frequency used is incremented by 1
|
||||||
const toggle_perfect_pitch_cmd ; $e8
|
const toggle_perfect_pitch_cmd ; $e8
|
||||||
toggle_perfect_pitch: MACRO
|
MACRO toggle_perfect_pitch
|
||||||
db toggle_perfect_pitch_cmd
|
db toggle_perfect_pitch_cmd
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ ENDM
|
||||||
; depth: amplitude of vibrato wave
|
; depth: amplitude of vibrato wave
|
||||||
; rate: frequency of vibrato wave
|
; rate: frequency of vibrato wave
|
||||||
const vibrato_cmd ; $ea
|
const vibrato_cmd ; $ea
|
||||||
vibrato: MACRO
|
MACRO vibrato
|
||||||
db vibrato_cmd
|
db vibrato_cmd
|
||||||
db \1
|
db \1
|
||||||
db (\2 << 4) | \3
|
db (\2 << 4) | \3
|
||||||
|
@ -150,7 +150,7 @@ ENDM
|
||||||
|
|
||||||
; arguments: length [1, 256], octave [1, 8], pitch
|
; arguments: length [1, 256], octave [1, 8], pitch
|
||||||
const pitch_slide_cmd ; $eb
|
const pitch_slide_cmd ; $eb
|
||||||
pitch_slide: MACRO
|
MACRO pitch_slide
|
||||||
db pitch_slide_cmd
|
db pitch_slide_cmd
|
||||||
db \1 - 1
|
db \1 - 1
|
||||||
db ((8 - \2) << 4) | \3
|
db ((8 - \2) << 4) | \3
|
||||||
|
@ -158,7 +158,7 @@ ENDM
|
||||||
|
|
||||||
; arguments: duty cycle [0, 3] (12.5%, 25%, 50%, 75%)
|
; arguments: duty cycle [0, 3] (12.5%, 25%, 50%, 75%)
|
||||||
const duty_cycle_cmd ; $ec
|
const duty_cycle_cmd ; $ec
|
||||||
duty_cycle: MACRO
|
MACRO duty_cycle
|
||||||
db duty_cycle_cmd
|
db duty_cycle_cmd
|
||||||
db \1
|
db \1
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -170,27 +170,27 @@ ENDM
|
||||||
; if larger than $100, large note speed or note length values might cause overflow
|
; if larger than $100, large note speed or note length values might cause overflow
|
||||||
; stored in big endian
|
; stored in big endian
|
||||||
const tempo_cmd ; $ed
|
const tempo_cmd ; $ed
|
||||||
tempo: MACRO
|
MACRO tempo
|
||||||
db tempo_cmd
|
db tempo_cmd
|
||||||
db HIGH(\1), LOW(\1)
|
db HIGH(\1), LOW(\1)
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; arguments: left output enable mask, right output enable mask
|
; arguments: left output enable mask, right output enable mask
|
||||||
const stereo_panning_cmd ; $ee
|
const stereo_panning_cmd ; $ee
|
||||||
stereo_panning: MACRO
|
MACRO stereo_panning
|
||||||
db stereo_panning_cmd
|
db stereo_panning_cmd
|
||||||
db (\1 << 4) | \2
|
db (\1 << 4) | \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const unknownmusic0xef_cmd ; $ef
|
const unknownmusic0xef_cmd ; $ef
|
||||||
unknownmusic0xef: MACRO
|
MACRO unknownmusic0xef
|
||||||
db unknownmusic0xef_cmd
|
db unknownmusic0xef_cmd
|
||||||
db \1
|
db \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; arguments: left master volume [0, 7], right master volume [0, 7]
|
; arguments: left master volume [0, 7], right master volume [0, 7]
|
||||||
const volume_cmd ; $f0
|
const volume_cmd ; $f0
|
||||||
volume: MACRO
|
MACRO volume
|
||||||
db volume_cmd
|
db volume_cmd
|
||||||
db (\1 << 4) | \2
|
db (\1 << 4) | \2
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -199,7 +199,7 @@ ENDM
|
||||||
|
|
||||||
; when enabled, the sfx data is interpreted as music data
|
; when enabled, the sfx data is interpreted as music data
|
||||||
const execute_music_cmd ; $f8
|
const execute_music_cmd ; $f8
|
||||||
execute_music: MACRO
|
MACRO execute_music
|
||||||
db execute_music_cmd
|
db execute_music_cmd
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -207,27 +207,27 @@ ENDM
|
||||||
|
|
||||||
; arguments: duty cycle 1, duty cycle 2, duty cycle 3, duty cycle 4
|
; arguments: duty cycle 1, duty cycle 2, duty cycle 3, duty cycle 4
|
||||||
const duty_cycle_pattern_cmd ; $fc
|
const duty_cycle_pattern_cmd ; $fc
|
||||||
duty_cycle_pattern: MACRO
|
MACRO duty_cycle_pattern
|
||||||
db duty_cycle_pattern_cmd
|
db duty_cycle_pattern_cmd
|
||||||
db \1 << 6 | \2 << 4 | \3 << 2 | \4
|
db \1 << 6 | \2 << 4 | \3 << 2 | \4
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; arguments: address
|
; arguments: address
|
||||||
const sound_call_cmd ; $fd
|
const sound_call_cmd ; $fd
|
||||||
sound_call: MACRO
|
MACRO sound_call
|
||||||
db sound_call_cmd
|
db sound_call_cmd
|
||||||
dw \1
|
dw \1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; arguments: count, address
|
; arguments: count, address
|
||||||
const sound_loop_cmd ; $fe
|
const sound_loop_cmd ; $fe
|
||||||
sound_loop: MACRO
|
MACRO sound_loop
|
||||||
db sound_loop_cmd
|
db sound_loop_cmd
|
||||||
db \1
|
db \1
|
||||||
dw \2
|
dw \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const sound_ret_cmd ; $ff
|
const sound_ret_cmd ; $ff
|
||||||
sound_ret: MACRO
|
MACRO sound_ret
|
||||||
db sound_ret_cmd
|
db sound_ret_cmd
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = return result in carry instead of zero flag
|
;\2 = return result in carry instead of zero flag
|
||||||
CheckEvent: MACRO
|
MACRO CheckEvent
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld a, [wEventFlags + event_byte]
|
ld a, [wEventFlags + event_byte]
|
||||||
|
|
||||||
IF _NARG > 1
|
IF _NARG > 1
|
||||||
|
@ -19,9 +19,9 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckEventReuseA: MACRO
|
MACRO CheckEventReuseA
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld a, [wEventFlags + event_byte]
|
ld a, [wEventFlags + event_byte]
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -31,10 +31,10 @@ ENDM
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = event index of the last event used before the branch
|
;\2 = event index of the last event used before the branch
|
||||||
CheckEventAfterBranchReuseA: MACRO
|
MACRO CheckEventAfterBranchReuseA
|
||||||
event_byte = ((\2) / 8)
|
DEF event_byte = ((\2) / 8)
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld a, [wEventFlags + event_byte]
|
ld a, [wEventFlags + event_byte]
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ ENDM
|
||||||
;\1 = reg
|
;\1 = reg
|
||||||
;\2 = event index
|
;\2 = event index
|
||||||
;\3 = event index this event is relative to (optional, this is needed when there is a fixed flag address)
|
;\3 = event index this event is relative to (optional, this is needed when there is a fixed flag address)
|
||||||
EventFlagBit: MACRO
|
MACRO EventFlagBit
|
||||||
IF _NARG > 2
|
IF _NARG > 2
|
||||||
ld \1, ((\3) % 8) + ((\2) - (\3))
|
ld \1, ((\3) % 8) + ((\2) - (\3))
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -56,24 +56,24 @@ ENDM
|
||||||
|
|
||||||
;\1 = reg
|
;\1 = reg
|
||||||
;\2 = event index
|
;\2 = event index
|
||||||
EventFlagAddress: MACRO
|
MACRO EventFlagAddress
|
||||||
event_byte = ((\2) / 8)
|
DEF event_byte = ((\2) / 8)
|
||||||
ld \1, wEventFlags + event_byte
|
ld \1, wEventFlags + event_byte
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckEventHL: MACRO
|
MACRO CheckEventHL
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
bit (\1) % 8, [hl]
|
bit (\1) % 8, [hl]
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckEventReuseHL: MACRO
|
MACRO CheckEventReuseHL
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -83,18 +83,18 @@ ENDM
|
||||||
|
|
||||||
; dangerous, only use when HL is guaranteed to be the desired value
|
; dangerous, only use when HL is guaranteed to be the desired value
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckEventForceReuseHL: MACRO
|
MACRO CheckEventForceReuseHL
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
bit (\1) % 8, [hl]
|
bit (\1) % 8, [hl]
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = event index of the last event used before the branch
|
;\2 = event index of the last event used before the branch
|
||||||
CheckEventAfterBranchReuseHL: MACRO
|
MACRO CheckEventAfterBranchReuseHL
|
||||||
event_byte = ((\2) / 8)
|
DEF event_byte = ((\2) / 8)
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -103,8 +103,8 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckAndSetEvent: MACRO
|
MACRO CheckAndSetEvent
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
bit (\1) % 8, [hl]
|
bit (\1) % 8, [hl]
|
||||||
set (\1) % 8, [hl]
|
set (\1) % 8, [hl]
|
||||||
|
@ -112,8 +112,8 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckAndResetEvent: MACRO
|
MACRO CheckAndResetEvent
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
bit (\1) % 8, [hl]
|
bit (\1) % 8, [hl]
|
||||||
res (\1) % 8, [hl]
|
res (\1) % 8, [hl]
|
||||||
|
@ -121,7 +121,7 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckAndSetEventA: MACRO
|
MACRO CheckAndSetEventA
|
||||||
ld a, [wEventFlags + ((\1) / 8)]
|
ld a, [wEventFlags + ((\1) / 8)]
|
||||||
bit (\1) % 8, a
|
bit (\1) % 8, a
|
||||||
set (\1) % 8, a
|
set (\1) % 8, a
|
||||||
|
@ -130,7 +130,7 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
CheckAndResetEventA: MACRO
|
MACRO CheckAndResetEventA
|
||||||
ld a, [wEventFlags + ((\1) / 8)]
|
ld a, [wEventFlags + ((\1) / 8)]
|
||||||
bit (\1) % 8, a
|
bit (\1) % 8, a
|
||||||
res (\1) % 8, a
|
res (\1) % 8, a
|
||||||
|
@ -139,17 +139,17 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
SetEvent: MACRO
|
MACRO SetEvent
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
set (\1) % 8, [hl]
|
set (\1) % 8, [hl]
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
SetEventReuseHL: MACRO
|
MACRO SetEventReuseHL
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -159,10 +159,10 @@ ENDM
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = event index of the last event used before the branch
|
;\2 = event index of the last event used before the branch
|
||||||
SetEventAfterBranchReuseHL: MACRO
|
MACRO SetEventAfterBranchReuseHL
|
||||||
event_byte = ((\2) / 8)
|
DEF event_byte = ((\2) / 8)
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -172,8 +172,8 @@ ENDM
|
||||||
|
|
||||||
; dangerous, only use when HL is guaranteed to be the desired value
|
; dangerous, only use when HL is guaranteed to be the desired value
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
SetEventForceReuseHL: MACRO
|
MACRO SetEventForceReuseHL
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
set (\1) % 8, [hl]
|
set (\1) % 8, [hl]
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ ENDM
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = event index
|
;\2 = event index
|
||||||
;\3, \4, ... = additional (optional) event indices
|
;\3, \4, ... = additional (optional) event indices
|
||||||
SetEvents: MACRO
|
MACRO SetEvents
|
||||||
SetEvent \1
|
SetEvent \1
|
||||||
REPT _NARG - 1
|
REPT _NARG - 1
|
||||||
SetEventReuseHL \2
|
SetEventReuseHL \2
|
||||||
|
@ -191,17 +191,17 @@ ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
ResetEvent: MACRO
|
MACRO ResetEvent
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
res (\1) % 8, [hl]
|
res (\1) % 8, [hl]
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
ResetEventReuseHL: MACRO
|
MACRO ResetEventReuseHL
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -211,10 +211,10 @@ ENDM
|
||||||
|
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = event index of the last event used before the branch
|
;\2 = event index of the last event used before the branch
|
||||||
ResetEventAfterBranchReuseHL: MACRO
|
MACRO ResetEventAfterBranchReuseHL
|
||||||
event_byte = ((\2) / 8)
|
DEF event_byte = ((\2) / 8)
|
||||||
IF event_byte != ((\1) / 8)
|
IF event_byte != ((\1) / 8)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld hl, wEventFlags + event_byte
|
ld hl, wEventFlags + event_byte
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
|
@ -224,8 +224,8 @@ ENDM
|
||||||
|
|
||||||
; dangerous, only use when HL is guaranteed to be the desired value
|
; dangerous, only use when HL is guaranteed to be the desired value
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
ResetEventForceReuseHL: MACRO
|
MACRO ResetEventForceReuseHL
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
res (\1) % 8, [hl]
|
res (\1) % 8, [hl]
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ ENDM
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = event index
|
;\2 = event index
|
||||||
;\3 = event index (optional)
|
;\3 = event index (optional)
|
||||||
ResetEvents: MACRO
|
MACRO ResetEvents
|
||||||
ResetEvent \1
|
ResetEvent \1
|
||||||
REPT _NARG - 1
|
REPT _NARG - 1
|
||||||
ResetEventReuseHL \2
|
ResetEventReuseHL \2
|
||||||
|
@ -244,9 +244,9 @@ ENDM
|
||||||
|
|
||||||
;\1 = start
|
;\1 = start
|
||||||
;\2 = end
|
;\2 = end
|
||||||
SetEventRange: MACRO
|
MACRO SetEventRange
|
||||||
event_start_byte = ((\1) / 8)
|
DEF event_start_byte = ((\1) / 8)
|
||||||
event_end_byte = ((\2) / 8)
|
DEF event_end_byte = ((\2) / 8)
|
||||||
|
|
||||||
IF event_end_byte < event_start_byte
|
IF event_end_byte < event_start_byte
|
||||||
FAIL "Incorrect argument order in SetEventRange."
|
FAIL "Incorrect argument order in SetEventRange."
|
||||||
|
@ -257,12 +257,12 @@ event_end_byte = ((\2) / 8)
|
||||||
or (1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))
|
or (1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))
|
||||||
ld [wEventFlags + event_start_byte], a
|
ld [wEventFlags + event_start_byte], a
|
||||||
ELSE
|
ELSE
|
||||||
event_fill_start = event_start_byte + 1
|
DEF event_fill_start = event_start_byte + 1
|
||||||
event_fill_count = event_end_byte - event_start_byte - 1
|
DEF event_fill_count = event_end_byte - event_start_byte - 1
|
||||||
|
|
||||||
IF ((\1) % 8) == 0
|
IF ((\1) % 8) == 0
|
||||||
event_fill_start -= 1
|
DEF event_fill_start -= 1
|
||||||
event_fill_count += 1
|
DEF event_fill_count += 1
|
||||||
ELSE
|
ELSE
|
||||||
ld a, [wEventFlags + event_start_byte]
|
ld a, [wEventFlags + event_start_byte]
|
||||||
or $ff - ((1 << ((\1) % 8)) - 1)
|
or $ff - ((1 << ((\1) % 8)) - 1)
|
||||||
|
@ -270,7 +270,7 @@ event_fill_count += 1
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
IF ((\2) % 8) == 7
|
IF ((\2) % 8) == 7
|
||||||
event_fill_count += 1
|
DEF event_fill_count += 1
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
IF event_fill_count == 1
|
IF event_fill_count == 1
|
||||||
|
@ -306,9 +306,9 @@ ENDM
|
||||||
;\1 = start
|
;\1 = start
|
||||||
;\2 = end
|
;\2 = end
|
||||||
;\3 = assume a is 0 if present
|
;\3 = assume a is 0 if present
|
||||||
ResetEventRange: MACRO
|
MACRO ResetEventRange
|
||||||
event_start_byte = ((\1) / 8)
|
DEF event_start_byte = ((\1) / 8)
|
||||||
event_end_byte = ((\2) / 8)
|
DEF event_end_byte = ((\2) / 8)
|
||||||
|
|
||||||
IF event_end_byte < event_start_byte
|
IF event_end_byte < event_start_byte
|
||||||
FAIL "Incorrect argument order in ResetEventRange."
|
FAIL "Incorrect argument order in ResetEventRange."
|
||||||
|
@ -319,12 +319,12 @@ event_end_byte = ((\2) / 8)
|
||||||
and ~((1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))) & $ff
|
and ~((1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))) & $ff
|
||||||
ld [wEventFlags + event_start_byte], a
|
ld [wEventFlags + event_start_byte], a
|
||||||
ELSE
|
ELSE
|
||||||
event_fill_start = event_start_byte + 1
|
DEF event_fill_start = event_start_byte + 1
|
||||||
event_fill_count = event_end_byte - event_start_byte - 1
|
DEF event_fill_count = event_end_byte - event_start_byte - 1
|
||||||
|
|
||||||
IF ((\1) % 8) == 0
|
IF ((\1) % 8) == 0
|
||||||
event_fill_start -= 1
|
DEF event_fill_start -= 1
|
||||||
event_fill_count += 1
|
DEF event_fill_count += 1
|
||||||
ELSE
|
ELSE
|
||||||
ld a, [wEventFlags + event_start_byte]
|
ld a, [wEventFlags + event_start_byte]
|
||||||
and ~($ff - ((1 << ((\1) % 8)) - 1)) & $ff
|
and ~($ff - ((1 << ((\1) % 8)) - 1)) & $ff
|
||||||
|
@ -332,7 +332,7 @@ event_fill_count += 1
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
IF ((\2) % 8) == 7
|
IF ((\2) % 8) == 7
|
||||||
event_fill_count += 1
|
DEF event_fill_count += 1
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
IF event_fill_count == 1
|
IF event_fill_count == 1
|
||||||
|
@ -375,10 +375,10 @@ ENDM
|
||||||
;\1 = event index 1
|
;\1 = event index 1
|
||||||
;\2 = event index 2
|
;\2 = event index 2
|
||||||
;\3 = try to reuse a (optional)
|
;\3 = try to reuse a (optional)
|
||||||
CheckBothEventsSet: MACRO
|
MACRO CheckBothEventsSet
|
||||||
IF ((\1) / 8) == ((\2) / 8)
|
IF ((\1) / 8) == ((\2) / 8)
|
||||||
IF (_NARG < 3) || (((\1) / 8) != event_byte)
|
IF (_NARG < 3) || (((\1) / 8) != event_byte)
|
||||||
event_byte = ((\1) / 8)
|
DEF event_byte = ((\1) / 8)
|
||||||
ld a, [wEventFlags + ((\1) / 8)]
|
ld a, [wEventFlags + ((\1) / 8)]
|
||||||
ENDC
|
ENDC
|
||||||
and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
|
and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
|
||||||
|
@ -411,7 +411,7 @@ ENDM
|
||||||
; returns the complement of whether either event is set in Z flag
|
; returns the complement of whether either event is set in Z flag
|
||||||
;\1 = event index 1
|
;\1 = event index 1
|
||||||
;\2 = event index 2
|
;\2 = event index 2
|
||||||
CheckEitherEventSet: MACRO
|
MACRO CheckEitherEventSet
|
||||||
IF ((\1) / 8) == ((\2) / 8)
|
IF ((\1) / 8) == ((\2) / 8)
|
||||||
ld a, [wEventFlags + ((\1) / 8)]
|
ld a, [wEventFlags + ((\1) / 8)]
|
||||||
and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
|
and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
|
||||||
|
@ -441,7 +441,7 @@ ENDM
|
||||||
; for handling fixed event bits when events are inserted/removed
|
; for handling fixed event bits when events are inserted/removed
|
||||||
;\1 = event index
|
;\1 = event index
|
||||||
;\2 = fixed flag bit
|
;\2 = fixed flag bit
|
||||||
AdjustEventBit: MACRO
|
MACRO AdjustEventBit
|
||||||
IF ((\1) % 8) != (\2)
|
IF ((\1) % 8) != (\2)
|
||||||
add ((\1) % 8) - (\2)
|
add ((\1) % 8) - (\2)
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
def_object_events: MACRO
|
MACRO def_object_events
|
||||||
REDEF _NUM_OBJECT_EVENTS EQUS "_NUM_OBJECT_EVENTS_\@"
|
REDEF _NUM_OBJECT_EVENTS EQUS "_NUM_OBJECT_EVENTS_\@"
|
||||||
db {_NUM_OBJECT_EVENTS}
|
db {_NUM_OBJECT_EVENTS}
|
||||||
{_NUM_OBJECT_EVENTS} = 0
|
DEF {_NUM_OBJECT_EVENTS} = 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 x position
|
;\1 x position
|
||||||
|
@ -13,7 +13,7 @@ ENDM
|
||||||
;\7 items only: item id
|
;\7 items only: item id
|
||||||
;\7 trainers only: trainer class/pokemon id
|
;\7 trainers only: trainer class/pokemon id
|
||||||
;\8 trainers only: trainer number/pokemon level
|
;\8 trainers only: trainer number/pokemon level
|
||||||
object_event: MACRO
|
MACRO object_event
|
||||||
db \3
|
db \3
|
||||||
db \2 + 4
|
db \2 + 4
|
||||||
db \1 + 4
|
db \1 + 4
|
||||||
|
@ -29,42 +29,42 @@ object_event: MACRO
|
||||||
ELSE
|
ELSE
|
||||||
db \6
|
db \6
|
||||||
ENDC
|
ENDC
|
||||||
{_NUM_OBJECT_EVENTS} += 1
|
DEF {_NUM_OBJECT_EVENTS} += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
def_warp_events: MACRO
|
MACRO def_warp_events
|
||||||
REDEF _NUM_WARP_EVENTS EQUS "_NUM_WARP_EVENTS_\@"
|
REDEF _NUM_WARP_EVENTS EQUS "_NUM_WARP_EVENTS_\@"
|
||||||
db {_NUM_WARP_EVENTS}
|
db {_NUM_WARP_EVENTS}
|
||||||
{_NUM_WARP_EVENTS} = 0
|
DEF {_NUM_WARP_EVENTS} = 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 x position
|
;\1 x position
|
||||||
;\2 y position
|
;\2 y position
|
||||||
;\3 destination map (-1 = wLastMap)
|
;\3 destination map (-1 = wLastMap)
|
||||||
;\4 destination warp id; starts at 1 (internally at 0)
|
;\4 destination warp id; starts at 1 (internally at 0)
|
||||||
warp_event: MACRO
|
MACRO warp_event
|
||||||
db \2, \1, \4 - 1, \3
|
db \2, \1, \4 - 1, \3
|
||||||
_WARP_{d:{_NUM_WARP_EVENTS}}_X = \1
|
DEF _WARP_{d:{_NUM_WARP_EVENTS}}_X = \1
|
||||||
_WARP_{d:{_NUM_WARP_EVENTS}}_Y = \2
|
DEF _WARP_{d:{_NUM_WARP_EVENTS}}_Y = \2
|
||||||
{_NUM_WARP_EVENTS} += 1
|
DEF {_NUM_WARP_EVENTS} += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
def_bg_events: MACRO
|
MACRO def_bg_events
|
||||||
REDEF _NUM_BG_EVENTS EQUS "_NUM_BG_EVENTS_\@"
|
REDEF _NUM_BG_EVENTS EQUS "_NUM_BG_EVENTS_\@"
|
||||||
db {_NUM_BG_EVENTS}
|
db {_NUM_BG_EVENTS}
|
||||||
{_NUM_BG_EVENTS} = 0
|
DEF {_NUM_BG_EVENTS} = 0
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 x position
|
;\1 x position
|
||||||
;\2 y position
|
;\2 y position
|
||||||
;\3 sign id
|
;\3 sign id
|
||||||
bg_event: MACRO
|
MACRO bg_event
|
||||||
db \2, \1, \3
|
db \2, \1, \3
|
||||||
{_NUM_BG_EVENTS} += 1
|
DEF {_NUM_BG_EVENTS} += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 source map
|
;\1 source map
|
||||||
def_warps_to: MACRO
|
MACRO def_warps_to
|
||||||
FOR n, _NUM_WARP_EVENTS
|
FOR n, _NUM_WARP_EVENTS
|
||||||
warp_to _WARP_{d:n}_X, _WARP_{d:n}_Y, \1_WIDTH
|
warp_to _WARP_{d:n}_X, _WARP_{d:n}_Y, \1_WIDTH
|
||||||
ENDR
|
ENDR
|
||||||
|
@ -73,18 +73,18 @@ ENDM
|
||||||
;\1 x position
|
;\1 x position
|
||||||
;\2 y position
|
;\2 y position
|
||||||
;\3 map width
|
;\3 map width
|
||||||
warp_to: MACRO
|
MACRO warp_to
|
||||||
event_displacement \3, \1, \2
|
event_displacement \3, \1, \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;\1 first bit offset / first object id
|
;\1 first bit offset / first object id
|
||||||
def_trainers: MACRO
|
MACRO def_trainers
|
||||||
IF _NARG == 1
|
IF _NARG == 1
|
||||||
CURRENT_TRAINER_BIT = \1
|
DEF CURRENT_TRAINER_BIT = \1
|
||||||
ELSE
|
ELSE
|
||||||
CURRENT_TRAINER_BIT = 1
|
DEF CURRENT_TRAINER_BIT = 1
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 event flag
|
;\1 event flag
|
||||||
|
@ -92,22 +92,22 @@ ENDM
|
||||||
;\3 TextBeforeBattle
|
;\3 TextBeforeBattle
|
||||||
;\4 TextAfterBattle
|
;\4 TextAfterBattle
|
||||||
;\5 TextEndBattle
|
;\5 TextEndBattle
|
||||||
trainer: MACRO
|
MACRO trainer
|
||||||
_ev_bit = \1 % 8
|
DEF _ev_bit = \1 % 8
|
||||||
_cur_bit = CURRENT_TRAINER_BIT % 8
|
DEF _cur_bit = CURRENT_TRAINER_BIT % 8
|
||||||
ASSERT _ev_bit == _cur_bit, \
|
ASSERT _ev_bit == _cur_bit, \
|
||||||
"Expected \1 to be bit {d:_cur_bit}, got {d:_ev_bit}"
|
"Expected \1 to be bit {d:_cur_bit}, got {d:_ev_bit}"
|
||||||
db CURRENT_TRAINER_BIT
|
db CURRENT_TRAINER_BIT
|
||||||
db \2 << 4
|
db \2 << 4
|
||||||
dw wEventFlags + (\1 - CURRENT_TRAINER_BIT) / 8
|
dw wEventFlags + (\1 - CURRENT_TRAINER_BIT) / 8
|
||||||
dw \3, \5, \4, \4
|
dw \3, \5, \4, \4
|
||||||
CURRENT_TRAINER_BIT += 1
|
DEF CURRENT_TRAINER_BIT += 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 x position
|
;\1 x position
|
||||||
;\2 y position
|
;\2 y position
|
||||||
;\3 movement data
|
;\3 movement data
|
||||||
map_coord_movement: MACRO
|
MACRO map_coord_movement
|
||||||
dbmapcoord \1, \2
|
dbmapcoord \1, \2
|
||||||
dw \3
|
dw \3
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -117,10 +117,10 @@ ENDM
|
||||||
;\2 map id
|
;\2 map id
|
||||||
;\3 tileset
|
;\3 tileset
|
||||||
;\4 connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
|
;\4 connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
|
||||||
map_header: MACRO
|
MACRO map_header
|
||||||
CURRENT_MAP_WIDTH = \2_WIDTH
|
DEF CURRENT_MAP_WIDTH = \2_WIDTH
|
||||||
CURRENT_MAP_HEIGHT = \2_HEIGHT
|
DEF CURRENT_MAP_HEIGHT = \2_HEIGHT
|
||||||
CURRENT_MAP_OBJECT EQUS "\1_Object"
|
DEF CURRENT_MAP_OBJECT EQUS "\1_Object"
|
||||||
\1_h::
|
\1_h::
|
||||||
db \3
|
db \3
|
||||||
db CURRENT_MAP_HEIGHT, CURRENT_MAP_WIDTH
|
db CURRENT_MAP_HEIGHT, CURRENT_MAP_WIDTH
|
||||||
|
@ -131,7 +131,7 @@ CURRENT_MAP_OBJECT EQUS "\1_Object"
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
; Comes after map_header and connection macros
|
; Comes after map_header and connection macros
|
||||||
end_map_header: MACRO
|
MACRO end_map_header
|
||||||
dw {CURRENT_MAP_OBJECT}
|
dw {CURRENT_MAP_OBJECT}
|
||||||
PURGE CURRENT_MAP_WIDTH, CURRENT_MAP_HEIGHT, CURRENT_MAP_OBJECT
|
PURGE CURRENT_MAP_WIDTH, CURRENT_MAP_HEIGHT, CURRENT_MAP_OBJECT
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -142,63 +142,63 @@ ENDM
|
||||||
;\3 map id
|
;\3 map id
|
||||||
;\4 offset of the target map relative to the current map
|
;\4 offset of the target map relative to the current map
|
||||||
; (x offset for east/west, y offset for north/south)
|
; (x offset for east/west, y offset for north/south)
|
||||||
connection: MACRO
|
MACRO connection
|
||||||
|
|
||||||
; Calculate tile offsets for source (current) and target maps
|
; Calculate tile offsets for source (current) and target maps
|
||||||
_src = 0
|
DEF _src = 0
|
||||||
_tgt = (\4) + 3
|
DEF _tgt = (\4) + 3
|
||||||
IF _tgt < 2
|
IF _tgt < 2
|
||||||
_src = -_tgt
|
DEF _src = -_tgt
|
||||||
_tgt = 0
|
DEF _tgt = 0
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
IF !STRCMP("\1", "north")
|
IF !STRCMP("\1", "north")
|
||||||
_blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
|
DEF _blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
|
||||||
_map = _tgt
|
DEF _map = _tgt
|
||||||
_win = (\3_WIDTH + 6) * \3_HEIGHT + 1
|
DEF _win = (\3_WIDTH + 6) * \3_HEIGHT + 1
|
||||||
_y = \3_HEIGHT * 2 - 1
|
DEF _y = \3_HEIGHT * 2 - 1
|
||||||
_x = (\4) * -2
|
DEF _x = (\4) * -2
|
||||||
_len = CURRENT_MAP_WIDTH + 3 - (\4)
|
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
|
||||||
IF _len > \3_WIDTH
|
IF _len > \3_WIDTH
|
||||||
_len = \3_WIDTH
|
DEF _len = \3_WIDTH
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
ELIF !STRCMP("\1", "south")
|
ELIF !STRCMP("\1", "south")
|
||||||
_blk = _src
|
DEF _blk = _src
|
||||||
_map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
|
DEF _map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
|
||||||
_win = \3_WIDTH + 7
|
DEF _win = \3_WIDTH + 7
|
||||||
_y = 0
|
DEF _y = 0
|
||||||
_x = (\4) * -2
|
DEF _x = (\4) * -2
|
||||||
_len = CURRENT_MAP_WIDTH + 3 - (\4)
|
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
|
||||||
IF _len > \3_WIDTH
|
IF _len > \3_WIDTH
|
||||||
_len = \3_WIDTH
|
DEF _len = \3_WIDTH
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
ELIF !STRCMP("\1", "west")
|
ELIF !STRCMP("\1", "west")
|
||||||
_blk = (\3_WIDTH * _src) + \3_WIDTH - 3
|
DEF _blk = (\3_WIDTH * _src) + \3_WIDTH - 3
|
||||||
_map = (CURRENT_MAP_WIDTH + 6) * _tgt
|
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt
|
||||||
_win = (\3_WIDTH + 6) * 2 - 6
|
DEF _win = (\3_WIDTH + 6) * 2 - 6
|
||||||
_y = (\4) * -2
|
DEF _y = (\4) * -2
|
||||||
_x = \3_WIDTH * 2 - 1
|
DEF _x = \3_WIDTH * 2 - 1
|
||||||
_len = CURRENT_MAP_HEIGHT + 3 - (\4)
|
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
|
||||||
IF _len > \3_HEIGHT
|
IF _len > \3_HEIGHT
|
||||||
_len = \3_HEIGHT
|
DEF _len = \3_HEIGHT
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
ELIF !STRCMP("\1", "east")
|
ELIF !STRCMP("\1", "east")
|
||||||
_blk = (\3_WIDTH * _src)
|
DEF _blk = (\3_WIDTH * _src)
|
||||||
_map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
|
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
|
||||||
_win = \3_WIDTH + 7
|
DEF _win = \3_WIDTH + 7
|
||||||
_y = (\4) * -2
|
DEF _y = (\4) * -2
|
||||||
_x = 0
|
DEF _x = 0
|
||||||
_len = CURRENT_MAP_HEIGHT + 3 - (\4)
|
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
|
||||||
IF _len > \3_HEIGHT
|
IF _len > \3_HEIGHT
|
||||||
_len = \3_HEIGHT
|
DEF _len = \3_HEIGHT
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
ELSE
|
ELSE
|
||||||
fail "Invalid direction for 'connection'."
|
fail "Invalid direction for 'connection'."
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
db \3
|
db \3
|
||||||
dw \2_Blocks + _blk
|
dw \2_Blocks + _blk
|
||||||
|
|
|
@ -1,44 +1,44 @@
|
||||||
text EQUS "db TX_START," ; Start writing text.
|
DEF text EQUS "db TX_START," ; Start writing text.
|
||||||
next EQUS "db \"<NEXT>\"," ; Move a line down.
|
DEF next EQUS "db \"<NEXT>\"," ; Move a line down.
|
||||||
line EQUS "db \"<LINE>\"," ; Start writing at the bottom line.
|
DEF line EQUS "db \"<LINE>\"," ; Start writing at the bottom line.
|
||||||
para EQUS "db \"<PARA>\"," ; Start a new paragraph.
|
DEF para EQUS "db \"<PARA>\"," ; Start a new paragraph.
|
||||||
cont EQUS "db \"<CONT>\"," ; Scroll to the next line.
|
DEF cont EQUS "db \"<CONT>\"," ; Scroll to the next line.
|
||||||
done EQUS "db \"<DONE>\"" ; End a text box.
|
DEF done EQUS "db \"<DONE>\"" ; End a text box.
|
||||||
prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
|
DEF prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
|
||||||
|
|
||||||
page EQUS "db \"<PAGE>\"," ; Start a new Pokédex page.
|
DEF page EQUS "db \"<PAGE>\"," ; Start a new Pokédex page.
|
||||||
dex EQUS "db \"<DEXEND>\", \"@\"" ; End a Pokédex entry.
|
DEF dex EQUS "db \"<DEXEND>\", \"@\"" ; End a Pokédex entry.
|
||||||
|
|
||||||
|
|
||||||
; TextCommandJumpTable indexes (see home/text.asm)
|
; TextCommandJumpTable indexes (see home/text.asm)
|
||||||
const_def
|
const_def
|
||||||
|
|
||||||
const TX_START ; $00
|
const TX_START ; $00
|
||||||
text_start: MACRO
|
MACRO text_start
|
||||||
db TX_START
|
db TX_START
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_RAM ; $01
|
const TX_RAM ; $01
|
||||||
text_ram: MACRO
|
MACRO text_ram
|
||||||
db TX_RAM
|
db TX_RAM
|
||||||
dw \1 ; address to read from
|
dw \1 ; address to read from
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_BCD ; $02
|
const TX_BCD ; $02
|
||||||
text_bcd: MACRO
|
MACRO text_bcd
|
||||||
db TX_BCD
|
db TX_BCD
|
||||||
dw \1 ; address to read from
|
dw \1 ; address to read from
|
||||||
db \2 ; number of bytes + print flags
|
db \2 ; number of bytes + print flags
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_MOVE ; $03
|
const TX_MOVE ; $03
|
||||||
text_move: MACRO
|
MACRO text_move
|
||||||
db TX_MOVE
|
db TX_MOVE
|
||||||
dw \1 ; address of the new location
|
dw \1 ; address of the new location
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_BOX ; $04
|
const TX_BOX ; $04
|
||||||
text_box: MACRO
|
MACRO text_box
|
||||||
; draw box
|
; draw box
|
||||||
db TX_BOX
|
db TX_BOX
|
||||||
dw \1 ; address of upper left corner
|
dw \1 ; address of upper left corner
|
||||||
|
@ -46,27 +46,27 @@ text_box: MACRO
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_LOW ; $05
|
const TX_LOW ; $05
|
||||||
text_low: MACRO
|
MACRO text_low
|
||||||
db TX_LOW
|
db TX_LOW
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_PROMPT_BUTTON ; $06
|
const TX_PROMPT_BUTTON ; $06
|
||||||
text_promptbutton: MACRO
|
MACRO text_promptbutton
|
||||||
db TX_PROMPT_BUTTON
|
db TX_PROMPT_BUTTON
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SCROLL ; $07
|
const TX_SCROLL ; $07
|
||||||
text_scroll: MACRO
|
MACRO text_scroll
|
||||||
db TX_SCROLL
|
db TX_SCROLL
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_START_ASM ; $08
|
const TX_START_ASM ; $08
|
||||||
text_asm: MACRO
|
MACRO text_asm
|
||||||
db TX_START_ASM
|
db TX_START_ASM
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_NUM ; $09
|
const TX_NUM ; $09
|
||||||
text_decimal: MACRO
|
MACRO text_decimal
|
||||||
; print a big-endian decimal number.
|
; print a big-endian decimal number.
|
||||||
db TX_NUM
|
db TX_NUM
|
||||||
dw \1 ; address to read from
|
dw \1 ; address to read from
|
||||||
|
@ -74,76 +74,76 @@ text_decimal: MACRO
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_PAUSE ; $0a
|
const TX_PAUSE ; $0a
|
||||||
text_pause: MACRO
|
MACRO text_pause
|
||||||
db TX_PAUSE
|
db TX_PAUSE
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_GET_ITEM_1 ; $0b
|
const TX_SOUND_GET_ITEM_1 ; $0b
|
||||||
sound_get_item_1: MACRO
|
MACRO sound_get_item_1
|
||||||
db TX_SOUND_GET_ITEM_1
|
db TX_SOUND_GET_ITEM_1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
TX_SOUND_LEVEL_UP EQU TX_SOUND_GET_ITEM_1
|
DEF TX_SOUND_LEVEL_UP EQU TX_SOUND_GET_ITEM_1
|
||||||
sound_level_up EQUS "sound_get_item_1"
|
DEF sound_level_up EQUS "sound_get_item_1"
|
||||||
|
|
||||||
const TX_DOTS ; $0c
|
const TX_DOTS ; $0c
|
||||||
text_dots: MACRO
|
MACRO text_dots
|
||||||
db TX_DOTS
|
db TX_DOTS
|
||||||
db \1 ; number of ellipses to draw
|
db \1 ; number of ellipses to draw
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_WAIT_BUTTON ; $0d
|
const TX_WAIT_BUTTON ; $0d
|
||||||
text_waitbutton: MACRO
|
MACRO text_waitbutton
|
||||||
db TX_WAIT_BUTTON
|
db TX_WAIT_BUTTON
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_POKEDEX_RATING ; $0e
|
const TX_SOUND_POKEDEX_RATING ; $0e
|
||||||
sound_pokedex_rating: MACRO
|
MACRO sound_pokedex_rating
|
||||||
db TX_SOUND_POKEDEX_RATING
|
db TX_SOUND_POKEDEX_RATING
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f
|
const TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f
|
||||||
sound_get_item_1_duplicate: MACRO
|
MACRO sound_get_item_1_duplicate
|
||||||
db TX_SOUND_GET_ITEM_1_DUPLICATE
|
db TX_SOUND_GET_ITEM_1_DUPLICATE
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_GET_ITEM_2 ; $10
|
const TX_SOUND_GET_ITEM_2 ; $10
|
||||||
sound_get_item_2: MACRO
|
MACRO sound_get_item_2
|
||||||
db TX_SOUND_GET_ITEM_2
|
db TX_SOUND_GET_ITEM_2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_GET_KEY_ITEM ; $11
|
const TX_SOUND_GET_KEY_ITEM ; $11
|
||||||
sound_get_key_item: MACRO
|
MACRO sound_get_key_item
|
||||||
db TX_SOUND_GET_KEY_ITEM
|
db TX_SOUND_GET_KEY_ITEM
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_CAUGHT_MON ; $12
|
const TX_SOUND_CAUGHT_MON ; $12
|
||||||
sound_caught_mon: MACRO
|
MACRO sound_caught_mon
|
||||||
db TX_SOUND_CAUGHT_MON
|
db TX_SOUND_CAUGHT_MON
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_DEX_PAGE_ADDED ; $13
|
const TX_SOUND_DEX_PAGE_ADDED ; $13
|
||||||
sound_dex_page_added: MACRO
|
MACRO sound_dex_page_added
|
||||||
db TX_SOUND_DEX_PAGE_ADDED
|
db TX_SOUND_DEX_PAGE_ADDED
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_CRY_NIDORINA ; $14
|
const TX_SOUND_CRY_NIDORINA ; $14
|
||||||
sound_cry_nidorina: MACRO
|
MACRO sound_cry_nidorina
|
||||||
db TX_SOUND_CRY_NIDORINA
|
db TX_SOUND_CRY_NIDORINA
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_CRY_PIDGEOT ; $15
|
const TX_SOUND_CRY_PIDGEOT ; $15
|
||||||
sound_cry_pidgeot: MACRO
|
MACRO sound_cry_pidgeot
|
||||||
db TX_SOUND_CRY_PIDGEOT
|
db TX_SOUND_CRY_PIDGEOT
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SOUND_CRY_DEWGONG ; $16
|
const TX_SOUND_CRY_DEWGONG ; $16
|
||||||
sound_cry_dewgong: MACRO
|
MACRO sound_cry_dewgong
|
||||||
db TX_SOUND_CRY_DEWGONG
|
db TX_SOUND_CRY_DEWGONG
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_FAR ; $17
|
const TX_FAR ; $17
|
||||||
text_far: MACRO
|
MACRO text_far
|
||||||
db TX_FAR
|
db TX_FAR
|
||||||
dab \1 ; address of text commands
|
dab \1 ; address of text commands
|
||||||
ENDM
|
ENDM
|
||||||
|
@ -152,7 +152,7 @@ ENDM
|
||||||
const_next $50
|
const_next $50
|
||||||
|
|
||||||
const TX_END ; $50
|
const TX_END ; $50
|
||||||
text_end: MACRO
|
MACRO text_end
|
||||||
db TX_END
|
db TX_END
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -161,12 +161,12 @@ ENDM
|
||||||
const_def -1, -1
|
const_def -1, -1
|
||||||
|
|
||||||
const TX_SCRIPT_POKECENTER_NURSE ; $ff
|
const TX_SCRIPT_POKECENTER_NURSE ; $ff
|
||||||
script_pokecenter_nurse: MACRO
|
MACRO script_pokecenter_nurse
|
||||||
db TX_SCRIPT_POKECENTER_NURSE
|
db TX_SCRIPT_POKECENTER_NURSE
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SCRIPT_MART ; $fe
|
const TX_SCRIPT_MART ; $fe
|
||||||
script_mart: MACRO
|
MACRO script_mart
|
||||||
db TX_SCRIPT_MART
|
db TX_SCRIPT_MART
|
||||||
db _NARG ; number of items
|
db _NARG ; number of items
|
||||||
IF _NARG
|
IF _NARG
|
||||||
|
@ -176,12 +176,12 @@ script_mart: MACRO
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SCRIPT_BILLS_PC ; $fd
|
const TX_SCRIPT_BILLS_PC ; $fd
|
||||||
script_bills_pc: MACRO
|
MACRO script_bills_pc
|
||||||
db TX_SCRIPT_BILLS_PC
|
db TX_SCRIPT_BILLS_PC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SCRIPT_PLAYERS_PC ; $fc
|
const TX_SCRIPT_PLAYERS_PC ; $fc
|
||||||
script_players_pc: MACRO
|
MACRO script_players_pc
|
||||||
db TX_SCRIPT_PLAYERS_PC
|
db TX_SCRIPT_PLAYERS_PC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
@ -190,23 +190,23 @@ ENDM
|
||||||
const_skip ; $fa
|
const_skip ; $fa
|
||||||
|
|
||||||
const TX_SCRIPT_POKECENTER_PC ; $f9
|
const TX_SCRIPT_POKECENTER_PC ; $f9
|
||||||
script_pokecenter_pc: MACRO
|
MACRO script_pokecenter_pc
|
||||||
db TX_SCRIPT_POKECENTER_PC
|
db TX_SCRIPT_POKECENTER_PC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const_skip ; $f8
|
const_skip ; $f8
|
||||||
|
|
||||||
const TX_SCRIPT_PRIZE_VENDOR ; $f7
|
const TX_SCRIPT_PRIZE_VENDOR ; $f7
|
||||||
script_prize_vendor: MACRO
|
MACRO script_prize_vendor
|
||||||
db TX_SCRIPT_PRIZE_VENDOR
|
db TX_SCRIPT_PRIZE_VENDOR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SCRIPT_CABLE_CLUB_RECEPTIONIST ; $f6
|
const TX_SCRIPT_CABLE_CLUB_RECEPTIONIST ; $f6
|
||||||
script_cable_club_receptionist: MACRO
|
MACRO script_cable_club_receptionist
|
||||||
db TX_SCRIPT_CABLE_CLUB_RECEPTIONIST
|
db TX_SCRIPT_CABLE_CLUB_RECEPTIONIST
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
const TX_SCRIPT_VENDING_MACHINE ; $f5
|
const TX_SCRIPT_VENDING_MACHINE ; $f5
|
||||||
script_vending_machine: MACRO
|
MACRO script_vending_machine
|
||||||
db TX_SCRIPT_VENDING_MACHINE
|
db TX_SCRIPT_VENDING_MACHINE
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,39 +1,39 @@
|
||||||
vc_hook: MACRO
|
MACRO vc_hook
|
||||||
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
||||||
.VC_\1::
|
.VC_\1::
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
vc_hook_red: MACRO
|
MACRO vc_hook_red
|
||||||
IF DEF(_RED_VC)
|
IF DEF(_RED_VC)
|
||||||
.VC_\1::
|
.VC_\1::
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
vc_hook_blue: MACRO
|
MACRO vc_hook_blue
|
||||||
IF DEF(_BLUE_VC)
|
IF DEF(_BLUE_VC)
|
||||||
.VC_\1::
|
.VC_\1::
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
vc_patch: MACRO
|
MACRO vc_patch
|
||||||
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
||||||
ASSERT !DEF(CURRENT_VC_PATCH), "Already started a vc_patch"
|
ASSERT !DEF(CURRENT_VC_PATCH), "Already started a vc_patch"
|
||||||
CURRENT_VC_PATCH EQUS "\1"
|
DEF CURRENT_VC_PATCH EQUS "\1"
|
||||||
.VC_{CURRENT_VC_PATCH}::
|
.VC_{CURRENT_VC_PATCH}::
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
vc_patch_end: MACRO
|
MACRO vc_patch_end
|
||||||
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
||||||
ASSERT DEF(CURRENT_VC_PATCH), "No vc_patch started"
|
ASSERT DEF(CURRENT_VC_PATCH), "No vc_patch started"
|
||||||
.VC_{CURRENT_VC_PATCH}_End::
|
.VC_{CURRENT_VC_PATCH}_End::
|
||||||
PURGE CURRENT_VC_PATCH
|
PURGE CURRENT_VC_PATCH
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
vc_assert: MACRO
|
MACRO vc_assert
|
||||||
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
IF DEF(_RED_VC) || DEF(_BLUE_VC)
|
||||||
ASSERT \#
|
ASSERT \#
|
||||||
ENDC
|
ENDC
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
; Used in wram.asm
|
; Used in wram.asm
|
||||||
|
|
||||||
flag_array: MACRO
|
MACRO flag_array
|
||||||
ds ((\1) + 7) / 8
|
ds ((\1) + 7) / 8
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
BOX_STRUCT_LENGTH EQU 25 + NUM_MOVES * 2
|
DEF BOX_STRUCT_LENGTH EQU 25 + NUM_MOVES * 2
|
||||||
|
|
||||||
box_struct: MACRO
|
MACRO box_struct
|
||||||
\1Species:: db
|
\1Species:: db
|
||||||
\1HP:: dw
|
\1HP:: dw
|
||||||
\1BoxLevel:: db
|
\1BoxLevel:: db
|
||||||
|
@ -27,7 +27,7 @@ box_struct: MACRO
|
||||||
\1PP:: ds NUM_MOVES
|
\1PP:: ds NUM_MOVES
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
party_struct: MACRO
|
MACRO party_struct
|
||||||
box_struct \1
|
box_struct \1
|
||||||
\1Level:: db
|
\1Level:: db
|
||||||
\1Stats::
|
\1Stats::
|
||||||
|
@ -38,7 +38,7 @@ party_struct: MACRO
|
||||||
\1Special:: dw
|
\1Special:: dw
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
battle_struct: MACRO
|
MACRO battle_struct
|
||||||
\1Species:: db
|
\1Species:: db
|
||||||
\1HP:: dw
|
\1HP:: dw
|
||||||
\1PartyPos::
|
\1PartyPos::
|
||||||
|
@ -60,7 +60,7 @@ battle_struct: MACRO
|
||||||
\1PP:: ds NUM_MOVES
|
\1PP:: ds NUM_MOVES
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
spritestatedata1: MACRO
|
MACRO spritestatedata1
|
||||||
\1PictureID:: db
|
\1PictureID:: db
|
||||||
\1MovementStatus:: db
|
\1MovementStatus:: db
|
||||||
\1ImageIndex:: db
|
\1ImageIndex:: db
|
||||||
|
@ -78,7 +78,7 @@ spritestatedata1: MACRO
|
||||||
\1End::
|
\1End::
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
spritestatedata2: MACRO
|
MACRO spritestatedata2
|
||||||
\1WalkAnimationCounter:: db
|
\1WalkAnimationCounter:: db
|
||||||
ds 1
|
ds 1
|
||||||
\1YDisplacement:: db
|
\1YDisplacement:: db
|
||||||
|
@ -96,14 +96,14 @@ spritestatedata2: MACRO
|
||||||
\1End::
|
\1End::
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
sprite_oam_struct: MACRO
|
MACRO sprite_oam_struct
|
||||||
\1YCoord:: db
|
\1YCoord:: db
|
||||||
\1XCoord:: db
|
\1XCoord:: db
|
||||||
\1TileID:: db
|
\1TileID:: db
|
||||||
\1Attributes:: db
|
\1Attributes:: db
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
map_connection_struct: MACRO
|
MACRO map_connection_struct
|
||||||
\1ConnectedMap:: db
|
\1ConnectedMap:: db
|
||||||
\1ConnectionStripSrc:: dw
|
\1ConnectionStripSrc:: dw
|
||||||
\1ConnectionStripDest:: dw
|
\1ConnectionStripDest:: dw
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
MAJOR EQU 0
|
DEF MAJOR EQU 0
|
||||||
MINOR EQU 5
|
DEF MINOR EQU 5
|
||||||
PATCH EQU 2
|
DEF PATCH EQU 2
|
||||||
|
|
||||||
wrong_rgbds: MACRO
|
MACRO wrong_rgbds
|
||||||
fail "pokered requires rgbds v0.5.2 or newer."
|
fail "pokered requires rgbds v0.5.2 or newer."
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
12
sram.asm
12
sram.asm
|
@ -26,12 +26,12 @@ sMainDataCheckSum:: db
|
||||||
|
|
||||||
; The PC boxes will not fit into one SRAM bank,
|
; The PC boxes will not fit into one SRAM bank,
|
||||||
; so they use multiple SECTIONs
|
; so they use multiple SECTIONs
|
||||||
box_n = 0
|
DEF box_n = 0
|
||||||
boxes: MACRO
|
MACRO boxes
|
||||||
REPT \1
|
REPT \1
|
||||||
box_n += 1
|
DEF box_n += 1
|
||||||
sBox{d:box_n}:: ds wBoxDataEnd - wBoxDataStart
|
sBox{d:box_n}:: ds wBoxDataEnd - wBoxDataStart
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
SECTION "Saved Boxes 1", SRAM
|
SECTION "Saved Boxes 1", SRAM
|
||||||
|
|
|
@ -2,8 +2,8 @@ INCLUDE "constants.asm"
|
||||||
|
|
||||||
; These are all the asm constants needed to make the blue_vc patch.
|
; These are all the asm constants needed to make the blue_vc patch.
|
||||||
|
|
||||||
vc_const: MACRO
|
MACRO vc_const
|
||||||
x = \1
|
DEF x = \1
|
||||||
PRINTLN "00:{04x:x} \1" ; same format as rgblink's .sym file
|
PRINTLN "00:{04x:x} \1" ; same format as rgblink's .sym file
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue