mirror of
https://github.com/pret/pokeyellow.git
synced 2026-08-23 10:54:29 -05:00
@@ -61,7 +61,7 @@ Music_DoLowHealthAlarm::
|
||||
jr nz, .copyLoop
|
||||
ret
|
||||
|
||||
alarm_tone: MACRO
|
||||
MACRO alarm_tone
|
||||
db \1 ; length
|
||||
db \2 ; envelope
|
||||
dw \3 ; frequency
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
pcm: MACRO
|
||||
MACRO pcm
|
||||
; All of the pcm data has one trailing byte that is never processed.
|
||||
dw .End - .Start - 1
|
||||
.Start
|
||||
\1
|
||||
\1
|
||||
.End
|
||||
ENDM
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
const A_ ; 9
|
||||
const A# ; A
|
||||
const B_ ; B
|
||||
NUM_NOTES EQU const_value
|
||||
DEF NUM_NOTES EQU const_value
|
||||
|
||||
; channel
|
||||
; Audio[1|2|3]_HWChannelBaseAddresses, Audio[1|2|3]_HWChannelDisableMasks,
|
||||
@@ -23,31 +23,31 @@ NUM_NOTES EQU const_value
|
||||
const Ch2 ; 1
|
||||
const Ch3 ; 2
|
||||
const Ch4 ; 3
|
||||
NUM_MUSIC_CHANS EQU const_value
|
||||
DEF NUM_MUSIC_CHANS EQU const_value
|
||||
const Ch5 ; 4
|
||||
const Ch6 ; 5
|
||||
const Ch7 ; 6
|
||||
const Ch8 ; 7
|
||||
NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
|
||||
NUM_CHANNELS EQU const_value
|
||||
DEF NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
|
||||
DEF NUM_CHANNELS EQU const_value
|
||||
|
||||
; HW sound channel register base addresses
|
||||
HW_CH1_BASE EQU LOW(rNR10)
|
||||
HW_CH2_BASE EQU LOW(rNR21) - 1
|
||||
HW_CH3_BASE EQU LOW(rNR30)
|
||||
HW_CH4_BASE EQU LOW(rNR41) - 1
|
||||
DEF HW_CH1_BASE EQU LOW(rNR10)
|
||||
DEF HW_CH2_BASE EQU LOW(rNR21) - 1
|
||||
DEF HW_CH3_BASE EQU LOW(rNR30)
|
||||
DEF HW_CH4_BASE EQU LOW(rNR41) - 1
|
||||
|
||||
; HW sound channel enable bit masks
|
||||
HW_CH1_ENABLE_MASK EQU %00010001
|
||||
HW_CH2_ENABLE_MASK EQU %00100010
|
||||
HW_CH3_ENABLE_MASK EQU %01000100
|
||||
HW_CH4_ENABLE_MASK EQU %10001000
|
||||
DEF HW_CH1_ENABLE_MASK EQU %00010001
|
||||
DEF HW_CH2_ENABLE_MASK EQU %00100010
|
||||
DEF HW_CH3_ENABLE_MASK EQU %01000100
|
||||
DEF HW_CH4_ENABLE_MASK EQU %10001000
|
||||
|
||||
; HW sound channel disable bit masks
|
||||
HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
|
||||
HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
|
||||
HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
|
||||
HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
|
||||
DEF HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
|
||||
DEF HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
|
||||
DEF HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
|
||||
DEF HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
|
||||
|
||||
const_def 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
|
||||
|
||||
; 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)
|
||||
const_def
|
||||
@@ -9,7 +9,7 @@ NUM_MOVES EQU 4
|
||||
const STAT_DEFENSE
|
||||
const STAT_SPEED
|
||||
const STAT_SPECIAL
|
||||
NUM_STATS EQU const_value
|
||||
DEF NUM_STATS EQU const_value
|
||||
|
||||
; StatModTextStrings indexes (see data/battle/stat_mod_names.asm)
|
||||
const_def
|
||||
@@ -20,20 +20,20 @@ NUM_STATS EQU const_value
|
||||
const MOD_ACCURACY
|
||||
const MOD_EVASION
|
||||
const_skip 2
|
||||
NUM_STAT_MODS EQU const_value
|
||||
DEF NUM_STAT_MODS EQU const_value
|
||||
|
||||
; Moves struct fields (see data/moves/moves.asm)
|
||||
rsreset
|
||||
MOVE_ANIM rb
|
||||
MOVE_EFFECT rb
|
||||
MOVE_POWER rb
|
||||
MOVE_TYPE rb
|
||||
MOVE_ACC rb
|
||||
MOVE_PP rb
|
||||
MOVE_LENGTH EQU _RS
|
||||
DEF MOVE_ANIM rb
|
||||
DEF MOVE_EFFECT rb
|
||||
DEF MOVE_POWER rb
|
||||
DEF MOVE_TYPE rb
|
||||
DEF MOVE_ACC rb
|
||||
DEF MOVE_PP rb
|
||||
DEF MOVE_LENGTH EQU _RS
|
||||
|
||||
; D733 flags
|
||||
BIT_TEST_BATTLE EQU 0
|
||||
DEF BIT_TEST_BATTLE EQU 0
|
||||
|
||||
; battle type constants (wBattleType values)
|
||||
const_def
|
||||
@@ -44,33 +44,33 @@ BIT_TEST_BATTLE EQU 0
|
||||
const BATTLE_TYPE_PIKACHU ; 4
|
||||
|
||||
; damage limits before type effectiveness
|
||||
MIN_NEUTRAL_DAMAGE EQU 2
|
||||
MAX_NEUTRAL_DAMAGE EQU 999
|
||||
DEF MIN_NEUTRAL_DAMAGE EQU 2
|
||||
DEF MAX_NEUTRAL_DAMAGE EQU 999
|
||||
|
||||
; fixed damage constants
|
||||
SONICBOOM_DAMAGE EQU 20
|
||||
DRAGON_RAGE_DAMAGE EQU 40
|
||||
DEF SONICBOOM_DAMAGE EQU 20
|
||||
DEF DRAGON_RAGE_DAMAGE EQU 40
|
||||
|
||||
; type effectiveness factors, scaled by 10
|
||||
SUPER_EFFECTIVE EQU 20
|
||||
MORE_EFFECTIVE EQU 15
|
||||
EFFECTIVE EQU 10
|
||||
NOT_VERY_EFFECTIVE EQU 05
|
||||
NO_EFFECT EQU 00
|
||||
DEF SUPER_EFFECTIVE EQU 20
|
||||
DEF MORE_EFFECTIVE EQU 15
|
||||
DEF EFFECTIVE EQU 10
|
||||
DEF NOT_VERY_EFFECTIVE EQU 05
|
||||
DEF NO_EFFECT EQU 00
|
||||
|
||||
; non-volatile statuses
|
||||
SLP EQU %111 ; sleep counter
|
||||
DEF SLP EQU %111 ; sleep counter
|
||||
const_def 3
|
||||
const PSN ; 3
|
||||
const BRN ; 4
|
||||
const FRZ ; 5
|
||||
const PAR ; 6
|
||||
|
||||
MAX_STAT_VALUE EQU 999
|
||||
DEF MAX_STAT_VALUE EQU 999
|
||||
|
||||
; trainer dvs
|
||||
ATKDEFDV_TRAINER EQU $98
|
||||
SPDSPCDV_TRAINER EQU $88
|
||||
DEF ATKDEFDV_TRAINER EQU $98
|
||||
DEF SPDSPCDV_TRAINER EQU $88
|
||||
|
||||
; wPlayerBattleStatus1 or wEnemyBattleStatus1 bit flags
|
||||
const_def
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
const CRED_NAKAMICHI ; 53
|
||||
const CRED_YOSHIMURA ; 54
|
||||
const CRED_YAMAZAKI ; 55
|
||||
NUM_CRED_STRINGS EQU const_value
|
||||
DEF NUM_CRED_STRINGS EQU const_value
|
||||
|
||||
const_def -1, -1
|
||||
const CRED_TEXT_FADE_MON ; $FF
|
||||
|
||||
@@ -791,4 +791,4 @@
|
||||
|
||||
; End of events
|
||||
const_next $A00
|
||||
NUM_EVENTS EQU const_value
|
||||
DEF NUM_EVENTS EQU const_value
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
TILE_WIDTH EQU 8 ; pixels
|
||||
LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
|
||||
LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
|
||||
DEF TILE_WIDTH EQU 8 ; pixels
|
||||
DEF LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
|
||||
DEF LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
|
||||
|
||||
SCREEN_WIDTH EQU 20
|
||||
SCREEN_HEIGHT EQU 18
|
||||
SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
|
||||
SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
|
||||
DEF SCREEN_WIDTH EQU 20
|
||||
DEF SCREEN_HEIGHT EQU 18
|
||||
DEF SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
|
||||
DEF SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
|
||||
|
||||
BG_MAP_WIDTH EQU 32 ; tiles
|
||||
BG_MAP_HEIGHT EQU 32 ; tiles
|
||||
DEF BG_MAP_WIDTH 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
|
||||
|
||||
; DMGPalToGBCPal
|
||||
CONVERT_BGP EQU 0
|
||||
CONVERT_OBP0 EQU 1
|
||||
CONVERT_OBP1 EQU 2
|
||||
DEF CONVERT_BGP EQU 0
|
||||
DEF CONVERT_OBP0 EQU 1
|
||||
DEF CONVERT_OBP1 EQU 2
|
||||
|
||||
; HP bar
|
||||
HP_BAR_GREEN EQU 0
|
||||
HP_BAR_YELLOW EQU 1
|
||||
HP_BAR_RED EQU 2
|
||||
DEF HP_BAR_GREEN EQU 0
|
||||
DEF HP_BAR_YELLOW EQU 1
|
||||
DEF HP_BAR_RED EQU 2
|
||||
|
||||
; wOAMBuffer
|
||||
NUM_SPRITE_OAM_STRUCTS EQU 40
|
||||
DEF NUM_SPRITE_OAM_STRUCTS EQU 40
|
||||
|
||||
; hAutoBGTransferEnabled
|
||||
TRANSFERTOP EQU 0
|
||||
TRANSFERMIDDLE EQU 1
|
||||
TRANSFERBOTTOM EQU 2
|
||||
DEF TRANSFERTOP EQU 0
|
||||
DEF TRANSFERMIDDLE EQU 1
|
||||
DEF TRANSFERBOTTOM EQU 2
|
||||
|
||||
; hRedrawRowOrColumnMode
|
||||
REDRAW_COL EQU 1
|
||||
REDRAW_ROW EQU 2
|
||||
DEF REDRAW_COL EQU 1
|
||||
DEF REDRAW_ROW EQU 2
|
||||
|
||||
; tile list ids
|
||||
; TileIDListPointerTable indexes (see data/tilemaps.asm)
|
||||
@@ -45,4 +45,4 @@ REDRAW_ROW EQU 2
|
||||
const TILEMAP_GENGAR_INTRO_3
|
||||
const TILEMAP_GAME_BOY
|
||||
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.
|
||||
|
||||
GBC EQU $11
|
||||
DEF GBC EQU $11
|
||||
|
||||
; memory map
|
||||
VRAM_Begin EQU $8000
|
||||
VRAM_End EQU $a000
|
||||
SRAM_Begin EQU $a000
|
||||
SRAM_End EQU $c000
|
||||
WRAM0_Begin EQU $c000
|
||||
WRAM0_End EQU $d000
|
||||
WRAM1_Begin EQU $d000
|
||||
WRAM1_End EQU $e000
|
||||
DEF VRAM_Begin EQU $8000
|
||||
DEF VRAM_End EQU $a000
|
||||
DEF SRAM_Begin EQU $a000
|
||||
DEF SRAM_End EQU $c000
|
||||
DEF WRAM0_Begin EQU $c000
|
||||
DEF WRAM0_End EQU $d000
|
||||
DEF WRAM1_Begin EQU $d000
|
||||
DEF WRAM1_End EQU $e000
|
||||
; hardware registers $ff00-$ff80 (see below)
|
||||
HRAM_Begin EQU $ff80
|
||||
HRAM_End EQU $ffff
|
||||
DEF HRAM_Begin EQU $ff80
|
||||
DEF HRAM_End EQU $ffff
|
||||
|
||||
; MBC1
|
||||
MBC1SRamEnable EQU $0000
|
||||
MBC1RomBank EQU $2000
|
||||
MBC1SRamBank EQU $4000
|
||||
MBC1SRamBankingMode EQU $6000
|
||||
DEF MBC1SRamEnable EQU $0000
|
||||
DEF MBC1RomBank EQU $2000
|
||||
DEF MBC1SRamBank EQU $4000
|
||||
DEF MBC1SRamBankingMode EQU $6000
|
||||
|
||||
SRAM_DISABLE EQU $00
|
||||
SRAM_ENABLE EQU $0a
|
||||
DEF SRAM_DISABLE EQU $00
|
||||
DEF SRAM_ENABLE EQU $0a
|
||||
|
||||
NUM_SRAM_BANKS EQU 4
|
||||
DEF NUM_SRAM_BANKS EQU 4
|
||||
|
||||
; interrupt flags
|
||||
VBLANK EQU 0
|
||||
LCD_STAT EQU 1
|
||||
TIMER EQU 2
|
||||
SERIAL EQU 3
|
||||
JOYPAD EQU 4
|
||||
DEF VBLANK EQU 0
|
||||
DEF LCD_STAT EQU 1
|
||||
DEF TIMER EQU 2
|
||||
DEF SERIAL EQU 3
|
||||
DEF JOYPAD EQU 4
|
||||
|
||||
LY_VBLANK EQU 145
|
||||
DEF LY_VBLANK EQU 145
|
||||
|
||||
; serial
|
||||
START_TRANSFER_EXTERNAL_CLOCK EQU $80
|
||||
START_TRANSFER_INTERNAL_CLOCK EQU $81
|
||||
DEF START_TRANSFER_EXTERNAL_CLOCK EQU $80
|
||||
DEF START_TRANSFER_INTERNAL_CLOCK EQU $81
|
||||
|
||||
; Hardware registers
|
||||
rJOYP EQU $ff00 ; Joypad (R/W)
|
||||
rSB EQU $ff01 ; Serial transfer data (R/W)
|
||||
rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
||||
rSC_ON EQU 7
|
||||
rSC_CGB EQU 1
|
||||
rSC_CLOCK EQU 0
|
||||
rDIV EQU $ff04 ; Divider Register (R/W)
|
||||
rTIMA EQU $ff05 ; Timer counter (R/W)
|
||||
rTMA EQU $ff06 ; Timer Modulo (R/W)
|
||||
rTAC EQU $ff07 ; Timer Control (R/W)
|
||||
rTAC_ON EQU 2
|
||||
rTAC_4096_HZ EQU 0
|
||||
rTAC_262144_HZ EQU 1
|
||||
rTAC_65536_HZ EQU 2
|
||||
rTAC_16384_HZ EQU 3
|
||||
rIF EQU $ff0f ; Interrupt Flag (R/W)
|
||||
rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
|
||||
rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
|
||||
rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
|
||||
rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
|
||||
rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
|
||||
rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
|
||||
rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
|
||||
rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
|
||||
rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
|
||||
rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
|
||||
rNR31 EQU $ff1b ; Channel 3 Sound Length
|
||||
rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
|
||||
rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
|
||||
rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
|
||||
rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
|
||||
rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
|
||||
rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
|
||||
rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W)
|
||||
rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
|
||||
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
||||
rNR52 EQU $ff26 ; Sound on/off
|
||||
rWave_0 EQU $ff30
|
||||
rWave_1 EQU $ff31
|
||||
rWave_2 EQU $ff32
|
||||
rWave_3 EQU $ff33
|
||||
rWave_4 EQU $ff34
|
||||
rWave_5 EQU $ff35
|
||||
rWave_6 EQU $ff36
|
||||
rWave_7 EQU $ff37
|
||||
rWave_8 EQU $ff38
|
||||
rWave_9 EQU $ff39
|
||||
rWave_a EQU $ff3a
|
||||
rWave_b EQU $ff3b
|
||||
rWave_c EQU $ff3c
|
||||
rWave_d EQU $ff3d
|
||||
rWave_e EQU $ff3e
|
||||
rWave_f EQU $ff3f
|
||||
rLCDC EQU $ff40 ; LCD Control (R/W)
|
||||
rLCDC_ENABLE EQU 7
|
||||
rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
|
||||
rSTAT EQU $ff41 ; LCDC Status (R/W)
|
||||
rSCY EQU $ff42 ; Scroll Y (R/W)
|
||||
rSCX EQU $ff43 ; Scroll X (R/W)
|
||||
rLY EQU $ff44 ; LCDC Y-Coordinate (R)
|
||||
rLYC EQU $ff45 ; LY Compare (R/W)
|
||||
rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
|
||||
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
|
||||
rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
||||
rWY EQU $ff4a ; Window Y Position (R/W)
|
||||
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
||||
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
||||
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
||||
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
||||
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
||||
rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
||||
rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
|
||||
rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
|
||||
rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
|
||||
rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
|
||||
rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
|
||||
rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
|
||||
rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
|
||||
rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
|
||||
rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
|
||||
rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
|
||||
rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
|
||||
rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
|
||||
rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
|
||||
rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
|
||||
rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
|
||||
rIE EQU $ffff ; Interrupt Enable (R/W)
|
||||
DEF rJOYP EQU $ff00 ; Joypad (R/W)
|
||||
DEF rSB EQU $ff01 ; Serial transfer data (R/W)
|
||||
DEF rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
||||
DEF rSC_ON EQU 7
|
||||
DEF rSC_CGB EQU 1
|
||||
DEF rSC_CLOCK EQU 0
|
||||
DEF rDIV EQU $ff04 ; Divider Register (R/W)
|
||||
DEF rTIMA EQU $ff05 ; Timer counter (R/W)
|
||||
DEF rTMA EQU $ff06 ; Timer Modulo (R/W)
|
||||
DEF rTAC EQU $ff07 ; Timer Control (R/W)
|
||||
DEF rTAC_ON EQU 2
|
||||
DEF rTAC_4096_HZ EQU 0
|
||||
DEF rTAC_262144_HZ EQU 1
|
||||
DEF rTAC_65536_HZ EQU 2
|
||||
DEF rTAC_16384_HZ EQU 3
|
||||
DEF rIF EQU $ff0f ; Interrupt Flag (R/W)
|
||||
DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
|
||||
DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
|
||||
DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
|
||||
DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
|
||||
DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
|
||||
DEF rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
|
||||
DEF rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
|
||||
DEF rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
|
||||
DEF rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
|
||||
DEF rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
|
||||
DEF rNR31 EQU $ff1b ; Channel 3 Sound Length
|
||||
DEF rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
|
||||
DEF rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
|
||||
DEF rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
|
||||
DEF rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
|
||||
DEF rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
|
||||
DEF rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
|
||||
DEF rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W)
|
||||
DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
|
||||
DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
||||
DEF rNR52 EQU $ff26 ; Sound on/off
|
||||
DEF rWave_0 EQU $ff30
|
||||
DEF rWave_1 EQU $ff31
|
||||
DEF rWave_2 EQU $ff32
|
||||
DEF rWave_3 EQU $ff33
|
||||
DEF rWave_4 EQU $ff34
|
||||
DEF rWave_5 EQU $ff35
|
||||
DEF rWave_6 EQU $ff36
|
||||
DEF rWave_7 EQU $ff37
|
||||
DEF rWave_8 EQU $ff38
|
||||
DEF rWave_9 EQU $ff39
|
||||
DEF rWave_a EQU $ff3a
|
||||
DEF rWave_b EQU $ff3b
|
||||
DEF rWave_c EQU $ff3c
|
||||
DEF rWave_d EQU $ff3d
|
||||
DEF rWave_e EQU $ff3e
|
||||
DEF rWave_f EQU $ff3f
|
||||
DEF rLCDC EQU $ff40 ; LCD Control (R/W)
|
||||
DEF rLCDC_ENABLE EQU 7
|
||||
DEF rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE
|
||||
DEF rSTAT EQU $ff41 ; LCDC Status (R/W)
|
||||
DEF rSCY EQU $ff42 ; Scroll Y (R/W)
|
||||
DEF rSCX EQU $ff43 ; Scroll X (R/W)
|
||||
DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R)
|
||||
DEF rLYC EQU $ff45 ; LY Compare (R/W)
|
||||
DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
|
||||
DEF rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
|
||||
DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
|
||||
DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
||||
DEF rWY EQU $ff4a ; Window Y Position (R/W)
|
||||
DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
||||
DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
||||
DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
||||
DEF rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
||||
DEF rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
||||
DEF rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
||||
DEF rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
|
||||
DEF rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
|
||||
DEF rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
|
||||
DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
|
||||
DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
|
||||
DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
|
||||
DEF rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
|
||||
DEF rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
|
||||
DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
|
||||
DEF rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
|
||||
DEF rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
|
||||
DEF rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
|
||||
DEF rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
|
||||
DEF rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
|
||||
DEF rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
|
||||
DEF rIE EQU $ffff ; Interrupt Enable (R/W)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
HIDE EQU $11
|
||||
SHOW EQU $15
|
||||
DEF HIDE EQU $11
|
||||
DEF SHOW EQU $15
|
||||
|
||||
; MissableObjects indexes (see data/maps/hide_show_data.asm)
|
||||
; this is a list of the sprites that can be enabled/disabled during the game
|
||||
@@ -245,4 +245,4 @@ SHOW EQU $15
|
||||
const HS_DAISY_SITTING_COPY ; EC
|
||||
const HS_DAISY_WALKING_COPY ; ED
|
||||
const HS_TOWN_MAP_COPY ; EE
|
||||
NUM_HS_OBJECTS EQU const_value
|
||||
DEF NUM_HS_OBJECTS EQU const_value
|
||||
|
||||
@@ -13,6 +13,6 @@
|
||||
const ICON_QUADRUPED ; $9
|
||||
const ICON_PIKACHU ; $A
|
||||
|
||||
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_DOWN
|
||||
|
||||
NO_INPUT EQU 0
|
||||
A_BUTTON EQU 1 << BIT_A_BUTTON
|
||||
B_BUTTON EQU 1 << BIT_B_BUTTON
|
||||
SELECT EQU 1 << BIT_SELECT
|
||||
START EQU 1 << BIT_START
|
||||
D_RIGHT EQU 1 << BIT_D_RIGHT
|
||||
D_LEFT EQU 1 << BIT_D_LEFT
|
||||
D_UP EQU 1 << BIT_D_UP
|
||||
D_DOWN EQU 1 << BIT_D_DOWN
|
||||
DEF NO_INPUT EQU 0
|
||||
DEF A_BUTTON EQU 1 << BIT_A_BUTTON
|
||||
DEF B_BUTTON EQU 1 << BIT_B_BUTTON
|
||||
DEF SELECT EQU 1 << BIT_SELECT
|
||||
DEF START EQU 1 << BIT_START
|
||||
DEF D_RIGHT EQU 1 << BIT_D_RIGHT
|
||||
DEF D_LEFT EQU 1 << BIT_D_LEFT
|
||||
DEF D_UP EQU 1 << BIT_D_UP
|
||||
DEF D_DOWN EQU 1 << BIT_D_DOWN
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
const POTION ; $14
|
||||
const BOULDERBADGE ; $15
|
||||
const CASCADEBADGE ; $16
|
||||
SAFARI_BAIT EQU $15 ; overload
|
||||
SAFARI_ROCK EQU $16 ; overload
|
||||
DEF SAFARI_BAIT EQU $15 ; overload
|
||||
DEF SAFARI_ROCK EQU $16 ; overload
|
||||
const THUNDERBADGE ; $17
|
||||
const RAINBOWBADGE ; $18
|
||||
const SOULBADGE ; $19
|
||||
@@ -92,7 +92,7 @@ SAFARI_ROCK EQU $16 ; overload
|
||||
const MAX_ETHER ; $51
|
||||
const ELIXER ; $52
|
||||
const MAX_ELIXER ; $53
|
||||
NUM_ITEMS EQU const_value - 1
|
||||
DEF NUM_ITEMS EQU const_value - 1
|
||||
|
||||
; elevator floors use item IDs
|
||||
const FLOOR_B2F ; $54
|
||||
@@ -109,54 +109,54 @@ NUM_ITEMS EQU const_value - 1
|
||||
const FLOOR_10F ; $5F
|
||||
const FLOOR_11F ; $60
|
||||
const FLOOR_B4F ; $61
|
||||
NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
|
||||
DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
|
||||
|
||||
const_next $C4
|
||||
|
||||
; 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
|
||||
; 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
|
||||
\1_TMNUM EQU __tmhm_value__
|
||||
__tmhm_value__ += 1
|
||||
MACRO add_tmnum
|
||||
DEF \1_TMNUM EQU __tmhm_value__
|
||||
DEF __tmhm_value__ += 1
|
||||
ENDM
|
||||
|
||||
add_hm: MACRO
|
||||
MACRO add_hm
|
||||
; Defines three constants:
|
||||
; - HM_\1: the item id, starting at $C4
|
||||
; - \1_TMNUM: the learnable TM/HM flag, starting at 51
|
||||
; - HM##_MOVE: alias for the move id, equal to the value of \1
|
||||
const HM_\1
|
||||
HM_VALUE = __tmhm_value__ - NUM_TMS
|
||||
HM{02d:HM_VALUE}_MOVE EQU \1
|
||||
DEF HM_VALUE = __tmhm_value__ - NUM_TMS
|
||||
DEF HM{02d:HM_VALUE}_MOVE EQU \1
|
||||
add_tmnum \1
|
||||
ENDM
|
||||
|
||||
HM01 EQU const_value
|
||||
DEF HM01 EQU const_value
|
||||
add_hm CUT ; $C4
|
||||
add_hm FLY ; $C5
|
||||
add_hm SURF ; $C6
|
||||
add_hm STRENGTH ; $C7
|
||||
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:
|
||||
; - TM_\1: the item id, starting at $C9
|
||||
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
|
||||
; - TM##_MOVE: alias for the move id, equal to the value of \1
|
||||
const TM_\1
|
||||
TM{02d:__tmhm_value__}_MOVE EQU \1
|
||||
DEF TM{02d:__tmhm_value__}_MOVE EQU \1
|
||||
add_tmnum \1
|
||||
ENDM
|
||||
|
||||
TM01 EQU const_value
|
||||
DEF TM01 EQU const_value
|
||||
add_tm MEGA_PUNCH ; $C9
|
||||
add_tm RAZOR_WIND ; $CA
|
||||
add_tm SWORDS_DANCE ; $CB
|
||||
@@ -209,13 +209,13 @@ TM01 EQU const_value
|
||||
add_tm SUBSTITUTE ; $FA
|
||||
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.
|
||||
; These fit in 7 bytes, with one unused bit left over.
|
||||
__tmhm_value__ = NUM_TM_HM + 1
|
||||
UNUSED_TMNUM EQU __tmhm_value__
|
||||
DEF __tmhm_value__ = NUM_TM_HM + 1
|
||||
DEF UNUSED_TMNUM EQU __tmhm_value__
|
||||
|
||||
; used for Time Capsule held item compatibility
|
||||
TWISTEDSPOON_GSC EQU $60
|
||||
LIGHT_BALL_GSC EQU $a3
|
||||
DEF TWISTEDSPOON_GSC EQU $60
|
||||
DEF LIGHT_BALL_GSC EQU $a3
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
mapconst: MACRO
|
||||
MACRO mapconst
|
||||
const \1
|
||||
\1_HEIGHT EQU \2
|
||||
\1_WIDTH EQU \3
|
||||
DEF \1_HEIGHT EQU \2
|
||||
DEF \1_WIDTH EQU \3
|
||||
ENDM
|
||||
|
||||
; map ids
|
||||
@@ -26,9 +26,9 @@ ENDM
|
||||
mapconst CINNABAR_ISLAND, 9, 10 ; $08
|
||||
mapconst INDIGO_PLATEAU, 9, 10 ; $09
|
||||
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
|
||||
FIRST_ROUTE_MAP EQU const_value
|
||||
DEF FIRST_ROUTE_MAP EQU const_value
|
||||
mapconst ROUTE_1, 18, 10 ; $0C
|
||||
mapconst ROUTE_2, 36, 10 ; $0D
|
||||
mapconst ROUTE_3, 9, 35 ; $0E
|
||||
@@ -54,7 +54,7 @@ FIRST_ROUTE_MAP EQU const_value
|
||||
mapconst ROUTE_23, 72, 10 ; $22
|
||||
mapconst ROUTE_24, 18, 10 ; $23
|
||||
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_2F, 4, 4 ; $26
|
||||
mapconst BLUES_HOUSE, 4, 4 ; $27
|
||||
@@ -267,8 +267,8 @@ FIRST_INDOOR_MAP EQU const_value
|
||||
mapconst BRUNOS_ROOM, 6, 5 ; $F6
|
||||
mapconst AGATHAS_ROOM, 6, 5 ; $F7
|
||||
mapconst SUMMER_BEACH_HOUSE, 4, 7 ; $F8
|
||||
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
|
||||
; 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
|
||||
; height of north/south connections
|
||||
MAP_BORDER EQU 3
|
||||
DEF MAP_BORDER EQU 3
|
||||
|
||||
; connection directions
|
||||
const_def
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
const SPRITESTATEDATA1_0D ; d
|
||||
const SPRITESTATEDATA1_0E ; e
|
||||
const SPRITESTATEDATA1_0F ; f
|
||||
SPRITESTATEDATA1_LENGTH EQU const_value
|
||||
DEF SPRITESTATEDATA1_LENGTH EQU const_value
|
||||
|
||||
; spritestatedata2 struct members (see macros/wram.asm)
|
||||
const_def
|
||||
@@ -36,24 +36,24 @@ SPRITESTATEDATA1_LENGTH EQU const_value
|
||||
const SPRITESTATEDATA2_PICTUREID ; d
|
||||
const SPRITESTATEDATA2_IMAGEBASEOFFSET ; e
|
||||
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
|
||||
ITEM EQU $80
|
||||
TRAINER EQU $40
|
||||
DEF ITEM EQU $80
|
||||
DEF TRAINER EQU $40
|
||||
|
||||
WALK EQU $FE
|
||||
STAY EQU $FF
|
||||
DEF WALK EQU $FE
|
||||
DEF STAY EQU $FF
|
||||
|
||||
ANY_DIR EQU $00
|
||||
UP_DOWN EQU $01
|
||||
LEFT_RIGHT EQU $02
|
||||
DOWN EQU $D0
|
||||
UP EQU $D1
|
||||
LEFT EQU $D2
|
||||
RIGHT EQU $D3
|
||||
NONE EQU $FF
|
||||
DEF ANY_DIR EQU $00
|
||||
DEF UP_DOWN EQU $01
|
||||
DEF LEFT_RIGHT EQU $02
|
||||
DEF DOWN EQU $D0
|
||||
DEF UP EQU $D1
|
||||
DEF LEFT EQU $D2
|
||||
DEF RIGHT EQU $D3
|
||||
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
|
||||
PC_ITEM_CAPACITY EQU 50
|
||||
DEF BAG_ITEM_CAPACITY EQU 20
|
||||
DEF PC_ITEM_CAPACITY EQU 50
|
||||
|
||||
; text box IDs
|
||||
const_def 1
|
||||
@@ -42,15 +42,15 @@ PC_ITEM_CAPACITY EQU 50
|
||||
const TRADE_CANCEL_MENU ; 5
|
||||
const HEAL_CANCEL_MENU ; 6
|
||||
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
|
||||
CHOSE_MENU_ITEM EQU 1 ; pressed A
|
||||
CANCELLED_MENU EQU 2 ; pressed B
|
||||
DEF CHOSE_MENU_ITEM EQU 1 ; pressed A
|
||||
DEF CANCELLED_MENU EQU 2 ; pressed B
|
||||
|
||||
; menu exit method constants for two-option menus
|
||||
CHOSE_FIRST_ITEM EQU 1
|
||||
CHOSE_SECOND_ITEM EQU 2
|
||||
DEF CHOSE_FIRST_ITEM EQU 1
|
||||
DEF CHOSE_SECOND_ITEM EQU 2
|
||||
|
||||
; move mon constants
|
||||
const_def
|
||||
@@ -71,7 +71,7 @@ CHOSE_SECOND_ITEM EQU 2
|
||||
; party menu message IDs
|
||||
; PartyMenuItemUseMessagePointers indexes (see engine/menus/party_menu.asm)
|
||||
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 BURN_HEAL_MSG ; $F1
|
||||
const ICE_HEAL_MSG ; $F2
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Boolean checks
|
||||
FALSE EQU 0
|
||||
TRUE EQU 1
|
||||
DEF FALSE EQU 0
|
||||
DEF TRUE EQU 1
|
||||
|
||||
; flag operations
|
||||
const_def
|
||||
@@ -9,9 +9,9 @@ TRUE EQU 1
|
||||
const FLAG_TEST ; 2
|
||||
|
||||
; wOptions
|
||||
TEXT_DELAY_FAST EQU %001 ; 1
|
||||
TEXT_DELAY_MEDIUM EQU %011 ; 3
|
||||
TEXT_DELAY_SLOW EQU %101 ; 5
|
||||
DEF TEXT_DELAY_FAST EQU %001 ; 1
|
||||
DEF TEXT_DELAY_MEDIUM EQU %011 ; 3
|
||||
DEF TEXT_DELAY_SLOW EQU %101 ; 5
|
||||
|
||||
const_def 6
|
||||
const BIT_BATTLE_SHIFT ; 6
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; special effects that are part of move animations
|
||||
; SpecialEffectPointers associates them with effect routines (see data/battle_anims/special_effect_pointers.asm)
|
||||
const_def $C0
|
||||
FIRST_SE_ID EQU const_value
|
||||
DEF FIRST_SE_ID EQU const_value
|
||||
const_skip $18
|
||||
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)
|
||||
@@ -132,7 +132,7 @@ FIRST_SE_ID EQU const_value
|
||||
const SUBANIM_53
|
||||
const SUBANIM_54
|
||||
const SUBANIM_55
|
||||
NUM_SUBANIMS EQU const_value
|
||||
DEF NUM_SUBANIMS EQU const_value
|
||||
|
||||
; types of subanimations
|
||||
const_def
|
||||
@@ -268,7 +268,7 @@ NUM_SUBANIMS EQU const_value
|
||||
const FRAMEBLOCK_77
|
||||
const FRAMEBLOCK_78
|
||||
const FRAMEBLOCK_79
|
||||
NUM_FRAMEBLOCKS EQU const_value
|
||||
DEF NUM_FRAMEBLOCKS EQU const_value
|
||||
|
||||
; base coordinates that are part of subanimations
|
||||
; FrameBlockBaseCoords indexes (see data/battle_anims/base_coords.asm)
|
||||
@@ -450,7 +450,7 @@ NUM_FRAMEBLOCKS EQU const_value
|
||||
const BASECOORD_AE
|
||||
const BASECOORD_AF
|
||||
const BASECOORD_B0
|
||||
NUM_BASECOORDS EQU const_value
|
||||
DEF NUM_BASECOORDS EQU const_value
|
||||
|
||||
; frame block modes that are part of subanimations
|
||||
const_def
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
const SLASH ; a3
|
||||
const SUBSTITUTE ; a4
|
||||
const STRUGGLE ; a5
|
||||
NUM_ATTACKS EQU const_value - 1
|
||||
DEF NUM_ATTACKS EQU const_value - 1
|
||||
|
||||
; Moves do double duty as animation identifiers.
|
||||
|
||||
@@ -213,4 +213,4 @@ NUM_ATTACKS EQU const_value - 1
|
||||
const ROCK_ANIM ; throw rock
|
||||
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 SPLASH_EFFECT ; $55
|
||||
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.
|
||||
; SFX_Headers_(1|2|3) indexes (see audio/headers/*.asm)
|
||||
|
||||
music_const: MACRO
|
||||
\1 EQUS "((\2 - SFX_Headers_1) / 3)"
|
||||
MACRO music_const
|
||||
DEF \1 EQUS "((\2 - SFX_Headers_1) / 3)"
|
||||
ENDM
|
||||
|
||||
; AUDIO_1
|
||||
@@ -63,7 +63,7 @@ ENDM
|
||||
music_const MUSIC_GB_PRINTER, Music_GBPrinter
|
||||
|
||||
; AUDIO_1 AUDIO_2 AUDIO_3 AUDIO_4
|
||||
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_INSTRUMENT02, SFX_Noise_Instrument02_1
|
||||
music_const SFX_NOISE_INSTRUMENT03, SFX_Noise_Instrument03_1
|
||||
@@ -83,9 +83,9 @@ NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01"
|
||||
music_const SFX_NOISE_INSTRUMENT17, SFX_Noise_Instrument17_1
|
||||
music_const SFX_NOISE_INSTRUMENT18, SFX_Noise_Instrument18_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_01, SFX_Cry01_1
|
||||
music_const SFX_CRY_02, SFX_Cry02_1
|
||||
@@ -124,7 +124,7 @@ CRY_SFX_START EQUS "SFX_CRY_00"
|
||||
music_const SFX_CRY_23, SFX_Cry23_1
|
||||
music_const SFX_CRY_24, SFX_Cry24_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_TINK, SFX_Tink_1
|
||||
@@ -170,7 +170,7 @@ CRY_SFX_END EQUS "SFX_CRY_25 + 3"
|
||||
; AUDIO_1
|
||||
music_const SFX_POKEFLUTE, SFX_Pokeflute
|
||||
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
|
||||
music_const SFX_LEVEL_UP, SFX_Level_Up
|
||||
@@ -182,7 +182,7 @@ MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA"
|
||||
music_const SFX_DEX_PAGE_ADDED, SFX_Dex_Page_Added
|
||||
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_FAINT_FALL, SFX_Faint_Fall
|
||||
music_const SFX_BATTLE_09, SFX_Battle_09
|
||||
@@ -232,8 +232,8 @@ BATTLE_SFX_START EQUS "SFX_PECK"
|
||||
music_const SFX_BATTLE_35, SFX_Battle_35
|
||||
music_const SFX_BATTLE_36, SFX_Battle_36
|
||||
music_const SFX_SILPH_SCOPE, SFX_Silph_Scope
|
||||
BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1"
|
||||
MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
|
||||
DEF BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1"
|
||||
DEF MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
|
||||
|
||||
; AUDIO_3
|
||||
music_const SFX_INTRO_LUNGE, SFX_Intro_Lunge
|
||||
@@ -246,7 +246,7 @@ MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
|
||||
music_const SFX_SLOTS_REWARD, SFX_Slots_Reward
|
||||
music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin
|
||||
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"
|
||||
|
||||
; AUDIO_4
|
||||
music_const SFX_SURFING_JUMP, SFX_Surfing_Jump
|
||||
@@ -255,6 +255,6 @@ MAX_SFX_ID_3 EQUS "SFX_SHOOTING_STAR"
|
||||
music_const SFX_UNKNOWN_802CC_4, SFX_802cc_4
|
||||
music_const SFX_SURFING_LAND, SFX_Surfing_Land
|
||||
music_const SFX_GET_ITEM2_4_2, SFX_Get_Item2_4_2
|
||||
MAX_SFX_ID_4 EQUS "SFX_GET_ITEM2_4_2 + 2"
|
||||
DEF MAX_SFX_ID_4 EQUS "SFX_GET_ITEM2_4_2 + 2"
|
||||
|
||||
SFX_STOP_ALL_MUSIC EQU $ff
|
||||
DEF SFX_STOP_ALL_MUSIC EQU $ff
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
; OAM flags used by this game
|
||||
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_ENDOFDATA EQU %00000001 ; 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_PALETTE EQU %111
|
||||
OAM_TILE_BANK EQU 3
|
||||
OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
|
||||
OAM_X_FLIP EQU 5
|
||||
OAM_Y_FLIP EQU 6
|
||||
OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
|
||||
DEF OAM_PALETTE EQU %111
|
||||
DEF OAM_TILE_BANK EQU 3
|
||||
DEF OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
|
||||
DEF OAM_X_FLIP EQU 5
|
||||
DEF OAM_Y_FLIP EQU 6
|
||||
DEF OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
|
||||
|
||||
; OAM attribute masks
|
||||
OAM_HIGH_PALS EQU 1 << 2 ; palettes %100-%111 are OBP1
|
||||
OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1
|
||||
OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip
|
||||
OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip
|
||||
OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0)
|
||||
DEF OAM_HIGH_PALS EQU 1 << 2 ; palettes %100-%111 are OBP1
|
||||
DEF OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1
|
||||
DEF OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip
|
||||
DEF OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip
|
||||
DEF OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0)
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
const SHADE_LIGHT ; %01
|
||||
const SHADE_DARK ; %10
|
||||
const SHADE_BLACK ; %11
|
||||
NUM_PAL_COLORS EQU const_value
|
||||
DEF NUM_PAL_COLORS EQU const_value
|
||||
|
||||
PAL_COLOR_SIZE EQU 2
|
||||
PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
|
||||
DEF PAL_COLOR_SIZE EQU 2
|
||||
DEF PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
|
||||
|
||||
NUM_ACTIVE_PALS EQU 4
|
||||
DEF NUM_ACTIVE_PALS EQU 4
|
||||
|
||||
; pal/blk packets
|
||||
; SetPalFunctions indexes (see engine/gfx/palettes.asm)
|
||||
@@ -29,8 +29,8 @@ NUM_ACTIVE_PALS EQU 4
|
||||
const SET_PAL_GAME_FREAK_INTRO ; $0C
|
||||
const SET_PAL_TRAINER_CARD ; $0D
|
||||
|
||||
SET_PAL_PARTY_MENU_HP_BARS EQU $fc
|
||||
SET_PAL_DEFAULT EQU $ff
|
||||
DEF SET_PAL_PARTY_MENU_HP_BARS EQU $fc
|
||||
DEF SET_PAL_DEFAULT EQU $ff
|
||||
|
||||
; sgb palettes
|
||||
; SuperPalettes indexes (see data/sgb/sgb_palettes.asm)
|
||||
@@ -75,4 +75,4 @@ SET_PAL_DEFAULT EQU $ff
|
||||
const PAL_25 ; $25
|
||||
const PAL_26 ; $26
|
||||
const PAL_27 ; $27
|
||||
NUM_SGB_PALS EQU const_value
|
||||
DEF NUM_SGB_PALS EQU const_value
|
||||
|
||||
@@ -12,15 +12,15 @@
|
||||
const PIKAHAPPY_CARELESSTRAINER
|
||||
const PIKAHAPPY_TRADE
|
||||
|
||||
dpikapic: MACRO
|
||||
MACRO dpikapic
|
||||
db (\1_id - PikaPicAnimPointers) / 2
|
||||
ENDM
|
||||
|
||||
dpikaemotion: MACRO
|
||||
MACRO dpikaemotion
|
||||
db (\1_id - PikachuEmotionTable) / 2
|
||||
ENDM
|
||||
|
||||
ldpikaemotion: MACRO
|
||||
MACRO ldpikaemotion
|
||||
ld \1, (\2_id - PikachuEmotionTable) / 2
|
||||
ENDM
|
||||
|
||||
@@ -60,99 +60,99 @@ ENDM
|
||||
|
||||
|
||||
; MACROs for commands
|
||||
pikaemotion_dummy1: MACRO
|
||||
MACRO pikaemotion_dummy1
|
||||
db PIKAEMOTION_DUMMY1
|
||||
ENDM
|
||||
|
||||
pikaemotion_printtext: MACRO
|
||||
MACRO pikaemotion_printtext
|
||||
db PIKAEMOTION_PRINTTEXT
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
pikaemotion_pcm: MACRO
|
||||
MACRO pikaemotion_pcm
|
||||
db PIKAEMOTION_PLAYPCMSOUNDCLIP
|
||||
IF _NARG > 0
|
||||
dpikacry \1
|
||||
ELSE
|
||||
db $ff
|
||||
ENDC
|
||||
IF _NARG > 0
|
||||
dpikacry \1
|
||||
ELSE
|
||||
db $ff
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
pikaemotion_emotebubble: MACRO
|
||||
MACRO pikaemotion_emotebubble
|
||||
db PIKAEMOTION_DOEMOTIONBUBBLE
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
pikaemotion_movement: MACRO
|
||||
MACRO pikaemotion_movement
|
||||
db PIKAEMOTION_4
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
pikaemotion_pikapic: MACRO
|
||||
MACRO pikaemotion_pikapic
|
||||
db PIKAEMOTION_5
|
||||
dpikapic \1
|
||||
ENDM
|
||||
|
||||
pikaemotion_subcmd: MACRO
|
||||
MACRO pikaemotion_subcmd
|
||||
db PIKAEMOTION_SUBCMD
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
pikaemotion_delay: MACRO
|
||||
MACRO pikaemotion_delay
|
||||
db PIKAEMOTION_DELAYFRAMES
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
pikaemotion_dummy2: MACRO
|
||||
MACRO pikaemotion_dummy2
|
||||
db PIKAEMOTION_DUMMY2
|
||||
ENDM
|
||||
|
||||
pikaemotion_9: MACRO
|
||||
MACRO pikaemotion_9
|
||||
db PIKAEMOTION_9
|
||||
ENDM
|
||||
|
||||
pikaemotion_dummy3: MACRO
|
||||
MACRO pikaemotion_dummy3
|
||||
db PIKAEMOTION_DUMMY3
|
||||
ENDM
|
||||
|
||||
pikacry_def: MACRO
|
||||
MACRO pikacry_def
|
||||
\1_id::
|
||||
dba \1
|
||||
ENDM
|
||||
|
||||
dpikacry: MACRO
|
||||
MACRO dpikacry
|
||||
db (\1_id - PikachuCriesPointerTable) / 3
|
||||
ENDM
|
||||
|
||||
ldpikacry: MACRO
|
||||
MACRO ldpikacry
|
||||
ld \1, (\2_id - PikachuCriesPointerTable) / 3
|
||||
ENDM
|
||||
|
||||
pikacry: MACRO
|
||||
MACRO pikacry
|
||||
ldpikacry a, \1
|
||||
ENDM
|
||||
|
||||
|
||||
const_def
|
||||
const pikapic_nop_command
|
||||
pikapic_nop: MACRO
|
||||
MACRO pikapic_nop
|
||||
db pikapic_nop_command
|
||||
ENDM
|
||||
|
||||
const pikapic_writebyte_command
|
||||
pikapic_writebyte: MACRO
|
||||
MACRO pikapic_writebyte
|
||||
db pikapic_writebyte_command
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
const pikapic_loadgfx_command
|
||||
pikapic_loadgfx: MACRO
|
||||
MACRO pikapic_loadgfx
|
||||
db pikapic_loadgfx_command
|
||||
db (\1_id - PikaPicAnimGFXHeaders) / 4
|
||||
ENDM
|
||||
|
||||
const pikapic_animation_command
|
||||
pikapic_animation: MACRO
|
||||
MACRO pikapic_animation
|
||||
; frameset pointer, starting vtile, y offset, x offset
|
||||
db pikapic_animation_command
|
||||
db (\1_id - PikaPicAnimBGFramesPointers) / 2
|
||||
@@ -160,69 +160,69 @@ pikapic_animation: MACRO
|
||||
ENDM
|
||||
|
||||
const pikapic_nop4_command
|
||||
pikapic_nop4: MACRO
|
||||
MACRO pikapic_nop4
|
||||
db pikapic_nop4_command
|
||||
ENDM
|
||||
|
||||
const pikapic_nop5_command
|
||||
pikapic_nop5: MACRO
|
||||
MACRO pikapic_nop5
|
||||
db pikapic_nop5_command
|
||||
ENDM
|
||||
|
||||
const pikapic_waitbgmapeleteobject_command
|
||||
pikapic_waitbgmapeleteobject: MACRO
|
||||
MACRO pikapic_waitbgmapeleteobject
|
||||
db pikapic_waitbgmapeleteobject_command
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
const pikapic_nop7_command
|
||||
pikapic_nop7: MACRO
|
||||
MACRO pikapic_nop7
|
||||
db pikapic_nop7_command
|
||||
ENDM
|
||||
|
||||
const pikapic_nop8_command
|
||||
pikapic_nop8: MACRO
|
||||
MACRO pikapic_nop8
|
||||
db pikapic_nop8_command
|
||||
ENDM
|
||||
|
||||
const pikapic_jump_command
|
||||
pikapic_jump: MACRO ; 9
|
||||
MACRO pikapic_jump ; 9
|
||||
db pikapic_jump_command
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
const pikapic_setduration_command
|
||||
pikapic_setduration: MACRO ; a
|
||||
MACRO pikapic_setduration ; a
|
||||
db pikapic_setduration_command
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
const pikapic_cry_command
|
||||
pikapic_cry: MACRO ; b
|
||||
MACRO pikapic_cry ; b
|
||||
db pikapic_cry_command
|
||||
IF _NARG == 0
|
||||
db $ff
|
||||
else
|
||||
dpikacry \1
|
||||
IF _NARG == 0
|
||||
db $ff
|
||||
else
|
||||
dpikacry \1
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const pikapic_thunderbolt_command
|
||||
pikapic_thunderbolt: MACRO ; c
|
||||
MACRO pikapic_thunderbolt ; c
|
||||
db pikapic_thunderbolt_command
|
||||
ENDM
|
||||
|
||||
const pikapic_waitbgmap_command
|
||||
pikapic_waitbgmap: MACRO ; d
|
||||
MACRO pikapic_waitbgmap ; d
|
||||
db pikapic_waitbgmap_command
|
||||
ENDM
|
||||
|
||||
const pikapic_ret_command
|
||||
pikapic_ret: MACRO ; e
|
||||
MACRO pikapic_ret ; e
|
||||
db pikapic_ret_command
|
||||
ENDM
|
||||
|
||||
pikapic_looptofinish: MACRO
|
||||
MACRO pikapic_looptofinish
|
||||
.loop\@
|
||||
pikapic_waitbgmap
|
||||
pikapic_jump .loop\@
|
||||
|
||||
@@ -156,4 +156,4 @@
|
||||
const DEX_MEWTWO ; 150
|
||||
const DEX_MEW ; 151
|
||||
|
||||
NUM_POKEMON EQU const_value - 1
|
||||
DEF NUM_POKEMON EQU const_value - 1
|
||||
|
||||
@@ -198,15 +198,15 @@
|
||||
const WEEPINBELL ; $BD
|
||||
const VICTREEBEL ; $BE
|
||||
|
||||
NUM_POKEMON_INDEXES EQU const_value - 1
|
||||
DEF NUM_POKEMON_INDEXES EQU const_value - 1
|
||||
|
||||
; player starter
|
||||
STARTER_PIKACHU EQU PIKACHU
|
||||
DEF STARTER_PIKACHU EQU PIKACHU
|
||||
|
||||
; rival starters
|
||||
RIVAL_STARTER_JOLTEON EQU 1
|
||||
RIVAL_STARTER_FLAREON EQU 2
|
||||
RIVAL_STARTER_VAPOREON EQU 3
|
||||
DEF RIVAL_STARTER_JOLTEON EQU 1
|
||||
DEF RIVAL_STARTER_FLAREON EQU 2
|
||||
DEF RIVAL_STARTER_VAPOREON EQU 3
|
||||
|
||||
; 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)
|
||||
rsreset
|
||||
BASE_DEX_NO rb
|
||||
BASE_STATS rb NUM_STATS
|
||||
DEF BASE_DEX_NO rb
|
||||
DEF BASE_STATS rb NUM_STATS
|
||||
rsset BASE_STATS
|
||||
BASE_HP rb
|
||||
BASE_ATK rb
|
||||
BASE_DEF rb
|
||||
BASE_SPD rb
|
||||
BASE_SPC rb
|
||||
BASE_TYPES rw
|
||||
DEF BASE_HP rb
|
||||
DEF BASE_ATK rb
|
||||
DEF BASE_DEF rb
|
||||
DEF BASE_SPD rb
|
||||
DEF BASE_SPC rb
|
||||
DEF BASE_TYPES rw
|
||||
rsset BASE_TYPES
|
||||
BASE_TYPE_1 rb
|
||||
BASE_TYPE_2 rb
|
||||
BASE_CATCH_RATE rb
|
||||
BASE_EXP rb
|
||||
BASE_PIC_SIZE rb
|
||||
BASE_FRONTPIC rw
|
||||
BASE_BACKPIC rw
|
||||
BASE_MOVES rb NUM_MOVES
|
||||
BASE_GROWTH_RATE rb
|
||||
BASE_TMHM rb (NUM_TM_HM + 7) / 8
|
||||
rb_skip
|
||||
BASE_DATA_SIZE EQU _RS
|
||||
DEF BASE_TYPE_1 rb
|
||||
DEF BASE_TYPE_2 rb
|
||||
DEF BASE_CATCH_RATE rb
|
||||
DEF BASE_EXP rb
|
||||
DEF BASE_PIC_SIZE rb
|
||||
DEF BASE_FRONTPIC rw
|
||||
DEF BASE_BACKPIC rw
|
||||
DEF BASE_MOVES rb NUM_MOVES
|
||||
DEF BASE_GROWTH_RATE rb
|
||||
DEF BASE_TMHM rb (NUM_TM_HM + 7) / 8
|
||||
rb_skip
|
||||
DEF BASE_DATA_SIZE EQU _RS
|
||||
|
||||
|
||||
PARTY_LENGTH EQU 6
|
||||
DEF PARTY_LENGTH EQU 6
|
||||
|
||||
MONS_PER_BOX EQU 20
|
||||
NUM_BOXES EQU 12
|
||||
DEF MONS_PER_BOX EQU 20
|
||||
DEF NUM_BOXES EQU 12
|
||||
|
||||
HOF_MON EQU $10
|
||||
HOF_TEAM EQU PARTY_LENGTH * HOF_MON
|
||||
HOF_TEAM_CAPACITY EQU 50
|
||||
DEF HOF_MON EQU $10
|
||||
DEF HOF_TEAM EQU PARTY_LENGTH * HOF_MON
|
||||
DEF HOF_TEAM_CAPACITY EQU 50
|
||||
|
||||
|
||||
; mon data locations
|
||||
@@ -52,8 +52,8 @@ HOF_TEAM_CAPACITY EQU 50
|
||||
const EV_ITEM ; 2
|
||||
const EV_TRADE ; 3
|
||||
|
||||
MAX_EVOLUTIONS EQU 3
|
||||
EVOLUTION_SIZE EQU 4
|
||||
DEF MAX_EVOLUTIONS EQU 3
|
||||
DEF EVOLUTION_SIZE EQU 4
|
||||
|
||||
|
||||
; wMonHGrowthRate values
|
||||
@@ -65,8 +65,8 @@ EVOLUTION_SIZE EQU 4
|
||||
const GROWTH_MEDIUM_SLOW
|
||||
const GROWTH_FAST
|
||||
const GROWTH_SLOW
|
||||
NUM_GROWTH_RATES EQU const_value
|
||||
DEF NUM_GROWTH_RATES EQU const_value
|
||||
|
||||
; wild data (see data/wild/maps/*.asm)
|
||||
NUM_WILDMONS EQU 10
|
||||
WILDDATA_LENGTH EQU 1 + NUM_WILDMONS * 2
|
||||
DEF NUM_WILDMONS EQU 10
|
||||
DEF WILDDATA_LENGTH EQU 1 + NUM_WILDMONS * 2
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
const FISH_BUBBLE ; 7
|
||||
|
||||
; slot symbols
|
||||
SLOTS7 EQU $0200
|
||||
SLOTSBAR EQU $0604
|
||||
SLOTSCHERRY EQU $0A08
|
||||
SLOTSFISH EQU $0E0C
|
||||
SLOTSBIRD EQU $1210
|
||||
SLOTSMOUSE EQU $1614
|
||||
DEF SLOTS7 EQU $0200
|
||||
DEF SLOTSBAR EQU $0604
|
||||
DEF SLOTSCHERRY EQU $0A08
|
||||
DEF SLOTSFISH EQU $0E0C
|
||||
DEF SLOTSBIRD EQU $1210
|
||||
DEF SLOTSMOUSE EQU $1614
|
||||
|
||||
; StartSlotMachine dialogs
|
||||
SLOTS_OUTOFORDER EQU $fd
|
||||
SLOTS_OUTTOLUNCH EQU $fe
|
||||
SLOTS_SOMEONESKEYS EQU $ff
|
||||
DEF SLOTS_OUTOFORDER EQU $fd
|
||||
DEF SLOTS_OUTTOLUNCH EQU $fe
|
||||
DEF SLOTS_SOMEONESKEYS EQU $ff
|
||||
|
||||
; in game trades
|
||||
; TradeMons indexes (see data/events/trades.asm)
|
||||
@@ -35,7 +35,7 @@ SLOTS_SOMEONESKEYS EQU $ff
|
||||
const TRADE_FOR_DORIS
|
||||
const TRADE_FOR_CRINKLES
|
||||
const TRADE_FOR_SPOT
|
||||
NUM_NPC_TRADES EQU const_value
|
||||
DEF NUM_NPC_TRADES EQU const_value
|
||||
|
||||
; in game trade dialog sets
|
||||
; InGameTradeTextPointers indexes (see engine/events/in_game_trades.asm)
|
||||
@@ -55,10 +55,10 @@ NUM_NPC_TRADES EQU const_value
|
||||
const BIT_MARSHBADGE ; 5
|
||||
const BIT_VOLCANOBADGE ; 6
|
||||
const BIT_EARTHBADGE ; 7
|
||||
NUM_BADGES EQU const_value
|
||||
DEF NUM_BADGES EQU const_value
|
||||
|
||||
; OaksAideScript results
|
||||
OAKS_AIDE_BAG_FULL EQU $00
|
||||
OAKS_AIDE_GOT_ITEM EQU $01
|
||||
OAKS_AIDE_NOT_ENOUGH_MONS EQU $80
|
||||
OAKS_AIDE_REFUSED EQU $ff
|
||||
DEF OAKS_AIDE_BAG_FULL EQU $00
|
||||
DEF OAKS_AIDE_GOT_ITEM EQU $01
|
||||
DEF OAKS_AIDE_NOT_ENOUGH_MONS EQU $80
|
||||
DEF OAKS_AIDE_REFUSED EQU $ff
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
|
||||
ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02
|
||||
DEF ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
|
||||
DEF ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02
|
||||
|
||||
USING_EXTERNAL_CLOCK EQU $01
|
||||
USING_INTERNAL_CLOCK EQU $02
|
||||
CONNECTION_NOT_ESTABLISHED EQU $ff
|
||||
DEF USING_EXTERNAL_CLOCK EQU $01
|
||||
DEF USING_INTERNAL_CLOCK EQU $02
|
||||
DEF CONNECTION_NOT_ESTABLISHED EQU $ff
|
||||
|
||||
; 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
|
||||
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
|
||||
SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF
|
||||
DEF SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF
|
||||
|
||||
LINK_STATE_NONE EQU $00 ; not using link
|
||||
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
|
||||
LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation
|
||||
LINK_STATE_BATTLING EQU $04 ; in a link battle
|
||||
LINK_STATE_RESET EQU $05 ; reset game (unused)
|
||||
LINK_STATE_TRADING EQU $32 ; in a link trade
|
||||
DEF LINK_STATE_NONE EQU $00 ; not using link
|
||||
DEF LINK_STATE_IN_CABLE_CLUB EQU $01 ; in a cable club room (Colosseum or Trade Centre)
|
||||
DEF LINK_STATE_START_TRADE EQU $02 ; pre-trade selection screen initialisation
|
||||
DEF LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation
|
||||
DEF LINK_STATE_BATTLING EQU $04 ; in a link battle
|
||||
DEF LINK_STATE_RESET EQU $05 ; reset game (unused)
|
||||
DEF LINK_STATE_TRADING EQU $32 ; in a link trade
|
||||
|
||||
LINKBATTLE_RUN EQU $F
|
||||
LINKBATTLE_STRUGGLE EQU $E
|
||||
LINKBATTLE_NO_ACTION EQU $D
|
||||
DEF LINKBATTLE_RUN EQU $F
|
||||
DEF LINKBATTLE_STRUGGLE EQU $E
|
||||
DEF LINKBATTLE_NO_ACTION EQU $D
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
; animated_object struct members (see macros/wram.asm)
|
||||
ANIM_OBJ_INDEX EQUS "wAnimatedObject0Index - wAnimatedObject0"
|
||||
ANIM_OBJ_FRAME_SET EQUS "wAnimatedObject0FramesetID - wAnimatedObject0"
|
||||
ANIM_OBJ_CALLBACK EQUS "wAnimatedObject0AnimSeqID - wAnimatedObject0"
|
||||
ANIM_OBJ_TILE EQUS "wAnimatedObject0TileID - wAnimatedObject0"
|
||||
ANIM_OBJ_X_COORD EQUS "wAnimatedObject0XCoord - wAnimatedObject0"
|
||||
ANIM_OBJ_Y_COORD EQUS "wAnimatedObject0YCoord - wAnimatedObject0"
|
||||
ANIM_OBJ_X_OFFSET EQUS "wAnimatedObject0XOffset - wAnimatedObject0"
|
||||
ANIM_OBJ_Y_OFFSET EQUS "wAnimatedObject0YOffset - wAnimatedObject0"
|
||||
ANIM_OBJ_DURATION EQUS "wAnimatedObject0Duration - wAnimatedObject0"
|
||||
ANIM_OBJ_DURATION_OFFSET EQUS "wAnimatedObject0DurationOffset - wAnimatedObject0"
|
||||
ANIM_OBJ_FRAME_IDX EQUS "wAnimatedObject0FrameIndex - wAnimatedObject0"
|
||||
ANIM_OBJ_FIELD_B EQUS "wAnimatedObject0FieldB - wAnimatedObject0"
|
||||
ANIM_OBJ_FIELD_C EQUS "wAnimatedObject0FieldC - wAnimatedObject0"
|
||||
ANIM_OBJ_FIELD_D EQUS "wAnimatedObject0FieldD - wAnimatedObject0"
|
||||
ANIM_OBJ_FIELD_E EQUS "wAnimatedObject0FieldE - wAnimatedObject0"
|
||||
ANIM_OBJ_FIELD_F EQUS "wAnimatedObject0FieldF - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_INDEX EQUS "wAnimatedObject0Index - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FRAME_SET EQUS "wAnimatedObject0FramesetID - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_CALLBACK EQUS "wAnimatedObject0AnimSeqID - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_TILE EQUS "wAnimatedObject0TileID - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_X_COORD EQUS "wAnimatedObject0XCoord - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_Y_COORD EQUS "wAnimatedObject0YCoord - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_X_OFFSET EQUS "wAnimatedObject0XOffset - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_Y_OFFSET EQUS "wAnimatedObject0YOffset - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_DURATION EQUS "wAnimatedObject0Duration - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_DURATION_OFFSET EQUS "wAnimatedObject0DurationOffset - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FRAME_IDX EQUS "wAnimatedObject0FrameIndex - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FIELD_B EQUS "wAnimatedObject0FieldB - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FIELD_C EQUS "wAnimatedObject0FieldC - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FIELD_D EQUS "wAnimatedObject0FieldD - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FIELD_E EQUS "wAnimatedObject0FieldE - wAnimatedObject0"
|
||||
DEF ANIM_OBJ_FIELD_F EQUS "wAnimatedObject0FieldF - wAnimatedObject0"
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
const SPRITE_CHANSEY ; $44
|
||||
const SPRITE_JESSIE ; $45
|
||||
const SPRITE_JAMES ; $46
|
||||
FIRST_STILL_SPRITE EQU const_value
|
||||
DEF FIRST_STILL_SPRITE EQU const_value
|
||||
const SPRITE_POKE_BALL ; $47
|
||||
const SPRITE_FOSSIL ; $48
|
||||
const SPRITE_BOULDER ; $49
|
||||
@@ -85,4 +85,4 @@ FIRST_STILL_SPRITE EQU const_value
|
||||
const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $50
|
||||
const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $51
|
||||
const SPRITE_GAMBLER_ASLEEP ; $52
|
||||
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_RIGHT ; $C0
|
||||
|
||||
NPC_CHANGE_FACING EQU $E0
|
||||
DEF NPC_CHANGE_FACING EQU $E0
|
||||
|
||||
; player direction constants
|
||||
const_def
|
||||
@@ -20,7 +20,7 @@ NPC_CHANGE_FACING EQU $E0
|
||||
const PLAYER_DIR_BIT_DOWN ; 2
|
||||
const PLAYER_DIR_BIT_UP ; 3
|
||||
|
||||
PLAYER_DIR_RIGHT EQU 1 << PLAYER_DIR_BIT_RIGHT
|
||||
PLAYER_DIR_LEFT EQU 1 << PLAYER_DIR_BIT_LEFT
|
||||
PLAYER_DIR_DOWN EQU 1 << PLAYER_DIR_BIT_DOWN
|
||||
PLAYER_DIR_UP EQU 1 << PLAYER_DIR_BIT_UP
|
||||
DEF PLAYER_DIR_RIGHT EQU 1 << PLAYER_DIR_BIT_RIGHT
|
||||
DEF PLAYER_DIR_LEFT EQU 1 << PLAYER_DIR_BIT_LEFT
|
||||
DEF PLAYER_DIR_DOWN EQU 1 << PLAYER_DIR_BIT_DOWN
|
||||
DEF PLAYER_DIR_UP EQU 1 << PLAYER_DIR_BIT_UP
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
NAME_LENGTH EQU 11
|
||||
ITEM_NAME_LENGTH EQU 13
|
||||
NAME_BUFFER_LENGTH EQU 20
|
||||
DEF NAME_LENGTH EQU 11
|
||||
DEF ITEM_NAME_LENGTH EQU 13
|
||||
DEF NAME_BUFFER_LENGTH EQU 20
|
||||
|
||||
; PrintNumber
|
||||
const_def 5
|
||||
@@ -8,9 +8,9 @@ NAME_BUFFER_LENGTH EQU 20
|
||||
const BIT_LEFT_ALIGN ; 6
|
||||
const BIT_LEADING_ZEROES ; 7
|
||||
|
||||
MONEY_SIGN EQU (1 << BIT_MONEY_SIGN)
|
||||
LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
|
||||
LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
|
||||
DEF MONEY_SIGN EQU (1 << BIT_MONEY_SIGN)
|
||||
DEF LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
|
||||
DEF LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
|
||||
|
||||
; special text IDs (see home/text_script.asm)
|
||||
const_def $d0
|
||||
@@ -20,4 +20,4 @@ LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
|
||||
const TEXT_SAFARI_GAME_OVER ; $d3
|
||||
const TEXT_PIKACHU_ANIM ; $d4
|
||||
|
||||
TEXT_START_MENU EQU $00
|
||||
DEF TEXT_START_MENU EQU $00
|
||||
|
||||
@@ -26,4 +26,4 @@
|
||||
const FACILITY ; 22
|
||||
const PLATEAU ; 23
|
||||
const BEACH_HOUSE ; 24
|
||||
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
|
||||
OPP_\1 EQU OPP_ID_OFFSET + \1
|
||||
DEF OPP_\1 EQU OPP_ID_OFFSET + \1
|
||||
ENDM
|
||||
|
||||
; trainer class ids
|
||||
@@ -62,4 +62,4 @@ ENDM
|
||||
trainer_const CHANNELER ; $2D
|
||||
trainer_const AGATHA ; $2E
|
||||
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)
|
||||
const_def
|
||||
|
||||
PHYSICAL EQU const_value
|
||||
DEF PHYSICAL EQU const_value
|
||||
const NORMAL ; $00
|
||||
const FIGHTING ; $01
|
||||
const FLYING ; $02
|
||||
@@ -14,7 +14,7 @@ PHYSICAL EQU const_value
|
||||
|
||||
const_next 20
|
||||
|
||||
SPECIAL EQU const_value
|
||||
DEF SPECIAL EQU const_value
|
||||
const FIRE ; $14
|
||||
const WATER ; $15
|
||||
const GRASS ; $16
|
||||
@@ -23,4 +23,4 @@ SPECIAL EQU const_value
|
||||
const ICE ; $19
|
||||
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
|
||||
dw \2
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
anim_special_effect: MACRO
|
||||
MACRO anim_special_effect
|
||||
db \1
|
||||
dw \2
|
||||
ENDM
|
||||
|
||||
@@ -94,7 +94,7 @@ SubanimationPointers:
|
||||
; db frame block id, base coordinate id, frame block mode
|
||||
; ENDR
|
||||
|
||||
subanim: MACRO
|
||||
MACRO subanim
|
||||
db (\1 << 5) | \2
|
||||
ENDM
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
bench_guy_text: MACRO
|
||||
MACRO bench_guy_text
|
||||
db \1, \2
|
||||
db_tx_pre \3
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
hidden_coin: MACRO
|
||||
MACRO hidden_coin
|
||||
db \1, \3, \2
|
||||
ENDM
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
hidden_item: MACRO
|
||||
MACRO hidden_item
|
||||
db \1, \3, \2
|
||||
ENDM
|
||||
|
||||
|
||||
@@ -82,14 +82,14 @@ HiddenObjectMaps:
|
||||
dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects
|
||||
db -1 ; end
|
||||
|
||||
hidden_object: MACRO
|
||||
MACRO hidden_object
|
||||
db \2 ; y coord
|
||||
db \1 ; x coord
|
||||
db \3 ; item id
|
||||
dba \4 ; object routine
|
||||
ENDM
|
||||
|
||||
hidden_text_predef: MACRO
|
||||
MACRO hidden_text_predef
|
||||
db \2 ; y coord
|
||||
db \1 ; x coord
|
||||
db_tx_pre \3 ; text id
|
||||
@@ -99,7 +99,7 @@ ENDM
|
||||
; Some hidden objects use SPRITE_FACING_* values,
|
||||
; but these do not actually prevent the player
|
||||
; from interacting with them in any direction.
|
||||
ANY_FACING EQU $d0
|
||||
DEF ANY_FACING EQU $d0
|
||||
|
||||
SilphCo11FHiddenObjects:
|
||||
hidden_object 10, 12, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
growth_rate: MACRO
|
||||
MACRO growth_rate
|
||||
; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5]
|
||||
dn \1, \2
|
||||
if \3 < 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
mon_icon_header: MACRO
|
||||
MACRO mon_icon_header
|
||||
dw \1 tile \2
|
||||
db \3
|
||||
db BANK(\1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
vend_item: MACRO
|
||||
MACRO vend_item
|
||||
db \1
|
||||
bcd3 \2
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
force_bike_surf: MACRO
|
||||
MACRO force_bike_surf
|
||||
db \1, \3, \2
|
||||
ENDM
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ DungeonWarpList:
|
||||
db -1 ; end
|
||||
|
||||
|
||||
fly_warp: MACRO
|
||||
MACRO fly_warp
|
||||
event_displacement \1_WIDTH, \2, \3
|
||||
db ((\3) & $01) ;sub-block Y
|
||||
db ((\2) & $01) ;sub-block X
|
||||
@@ -38,7 +38,7 @@ DungeonWarpData:
|
||||
fly_warp POKEMON_MANSION_2F, 18, 14
|
||||
|
||||
|
||||
special_warp_spec: MACRO
|
||||
MACRO special_warp_spec
|
||||
db \1
|
||||
fly_warp \1, \2, \3
|
||||
db \4
|
||||
@@ -56,7 +56,7 @@ ColosseumSpec2:
|
||||
special_warp_spec COLOSSEUM, 6, 4, CLUB
|
||||
|
||||
|
||||
fly_warp_spec: MACRO
|
||||
MACRO fly_warp_spec
|
||||
db \1, 0
|
||||
dw \2
|
||||
ENDM
|
||||
|
||||
@@ -39,8 +39,8 @@ MapSpriteSets:
|
||||
db $02 ; ROUTE_25
|
||||
assert_table_length FIRST_INDOOR_MAP
|
||||
|
||||
EAST_WEST EQU 1
|
||||
NORTH_SOUTH EQU 2
|
||||
DEF EAST_WEST EQU 1
|
||||
DEF NORTH_SOUTH EQU 2
|
||||
|
||||
; Format:
|
||||
; 00: determines whether the map is split EAST_WEST or NORTH_SOUTH
|
||||
@@ -64,7 +64,7 @@ SplitMapSpriteSets:
|
||||
SpriteSets:
|
||||
|
||||
; 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
|
||||
table_width 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
external_map: MACRO
|
||||
MACRO external_map
|
||||
dn \2, \1
|
||||
dw \3
|
||||
ENDM
|
||||
@@ -47,7 +47,7 @@ ExternalMapEntries:
|
||||
assert_table_length FIRST_INDOOR_MAP
|
||||
|
||||
|
||||
internal_map: MACRO
|
||||
MACRO internal_map
|
||||
db \1 + 1
|
||||
dn \3, \2
|
||||
dw \4
|
||||
|
||||
@@ -213,7 +213,7 @@ AttackAnimationPointers:
|
||||
; if \2 is a subanimation_id:
|
||||
;\3: tileset_id
|
||||
;\4: delay
|
||||
battle_anim: MACRO
|
||||
MACRO battle_anim
|
||||
IF _NARG == 4
|
||||
db (\3 << 6) | \4
|
||||
db \1 - 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
move: MACRO
|
||||
MACRO move
|
||||
db \1 ; animation (interchangeable with move id)
|
||||
db \2 ; effect
|
||||
db \3 ; power
|
||||
|
||||
@@ -326,15 +326,15 @@ PikaPicAnimScript28:
|
||||
pikapic_cry
|
||||
pikapic_looptofinish
|
||||
|
||||
pikapicanimgfx: MACRO
|
||||
IF _NARG == 2
|
||||
\2_id::
|
||||
db \1 ; size (-1 if compressed)
|
||||
dba \2 ; pointer
|
||||
ELSE
|
||||
db \1 ; size
|
||||
dbw \2, \3 ; bank, address
|
||||
ENDC
|
||||
MACRO pikapicanimgfx
|
||||
IF _NARG == 2
|
||||
\2_id::
|
||||
db \1 ; size (-1 if compressed)
|
||||
dba \2 ; pointer
|
||||
ELSE
|
||||
db \1 ; size
|
||||
dbw \2, \3 ; bank, address
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
PikaPicAnimGFXHeaders:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
pikaanim_def: MACRO
|
||||
MACRO pikaanim_def
|
||||
\1_id:
|
||||
dw \1
|
||||
ENDM
|
||||
@@ -41,12 +41,12 @@ PikaPicAnimBGFramesPointers:
|
||||
pikaanim_def PikaPicAnimBGFrames_34 ; 22
|
||||
pikaanim_def PikaPicAnimBGFrames_35 ; 23
|
||||
|
||||
pikaframe: MACRO
|
||||
MACRO pikaframe
|
||||
db (\1_id - PikaPicTilemapPointers) / 2, \2
|
||||
ENDM
|
||||
|
||||
pikaframedelay EQUS "db 0,"
|
||||
pikaframeend EQUS "db $e0"
|
||||
DEF pikaframedelay EQUS "db 0,"
|
||||
DEF pikaframeend EQUS "db $e0"
|
||||
|
||||
PikaPicAnimBGFrames_0:
|
||||
PikaPicAnimBGFrames_1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
pikatilemap_def: MACRO
|
||||
MACRO pikatilemap_def
|
||||
\1_id:
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
mon_cry: MACRO
|
||||
MACRO mon_cry
|
||||
db (\1 - CRY_SFX_START) / 3
|
||||
db \2, \3
|
||||
ENDM
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
add_predef: MACRO
|
||||
MACRO add_predef
|
||||
\1Predef::
|
||||
IF _NARG == 1
|
||||
dba \1
|
||||
ELSE
|
||||
dbw \2, \1
|
||||
ENDC
|
||||
IF _NARG == 1
|
||||
dba \1
|
||||
ELSE
|
||||
dbw \2, \1
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
PredefPointers::
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
ATTR_BLK: MACRO
|
||||
MACRO ATTR_BLK
|
||||
; This is a command macro.
|
||||
; Use ATTR_BLK_DATA for data sets.
|
||||
db ($4 << 3) + ((\1 * 6) / 16 + 1)
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
ATTR_BLK_DATA: MACRO
|
||||
MACRO ATTR_BLK_DATA
|
||||
db \1 ; which regions are affected
|
||||
db \2 + (\3 << 2) + (\4 << 4) ; palette for each region
|
||||
db \5, \6, \7, \8 ; x1, y1, x2, y2
|
||||
ENDM
|
||||
|
||||
PAL_SET: MACRO
|
||||
MACRO PAL_SET
|
||||
db ($a << 3) + 1
|
||||
dw \1, \2, \3, \4
|
||||
ds 7, 0
|
||||
ENDM
|
||||
|
||||
PAL_TRN: MACRO
|
||||
MACRO PAL_TRN
|
||||
db ($b << 3) + 1
|
||||
ds 15, 0
|
||||
ENDM
|
||||
|
||||
MLT_REQ: MACRO
|
||||
MACRO MLT_REQ
|
||||
db ($11 << 3) + 1
|
||||
db \1 - 1
|
||||
ds 14, 0
|
||||
ENDM
|
||||
|
||||
CHR_TRN: MACRO
|
||||
MACRO CHR_TRN
|
||||
db ($13 << 3) + 1
|
||||
db \1 + (\2 << 1)
|
||||
ds 14, 0
|
||||
ENDM
|
||||
|
||||
PCT_TRN: MACRO
|
||||
MACRO PCT_TRN
|
||||
db ($14 << 3) + 1
|
||||
ds 15, 0
|
||||
ENDM
|
||||
|
||||
MASK_EN: MACRO
|
||||
MACRO MASK_EN
|
||||
db ($17 << 3) + 1
|
||||
db \1
|
||||
ds 14, 0
|
||||
ENDM
|
||||
|
||||
DATA_SND: MACRO
|
||||
MACRO DATA_SND
|
||||
db ($f << 3) + 1
|
||||
dw \1 ; address
|
||||
db \2 ; bank
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
overworld_sprite: MACRO
|
||||
MACRO overworld_sprite
|
||||
dw \1
|
||||
db \2 tiles
|
||||
db BANK(\1)
|
||||
|
||||
@@ -15,7 +15,7 @@ TextBoxCoordTable:
|
||||
db MON_SPRITE_POPUP, 6, 4, 14, 13
|
||||
db -1 ; end
|
||||
|
||||
text_box_text: MACRO
|
||||
MACRO text_box_text
|
||||
db \1 ; text box ID
|
||||
db \2, \3, \4, \5 ; text box coordinates
|
||||
dw \6 ; text pointer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
add_tx_pre: MACRO
|
||||
MACRO add_tx_pre
|
||||
\1_id::
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
tile_ids: MACRO
|
||||
MACRO tile_ids
|
||||
dw \1
|
||||
dn \3, \2
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
bookshelf_tile: MACRO
|
||||
MACRO bookshelf_tile
|
||||
db \1, \2
|
||||
db_tx_pre \3
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
coll_tiles: MACRO
|
||||
MACRO coll_tiles
|
||||
IF _NARG
|
||||
db \# ; all args
|
||||
ENDC
|
||||
|
||||
@@ -15,7 +15,7 @@ DoorTileIDPointers:
|
||||
dbw INTERIOR, .InteriorDoorTileIDs
|
||||
db -1 ; end
|
||||
|
||||
door_tiles: MACRO
|
||||
MACRO door_tiles
|
||||
IF _NARG
|
||||
db \# ; all args
|
||||
ENDC
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
spinner: MACRO
|
||||
MACRO spinner
|
||||
; \1: source
|
||||
; \2: offset (BANK() chokes on literals)
|
||||
; \3: dest
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
tileset: MACRO
|
||||
MACRO tileset
|
||||
db BANK(\1_GFX)
|
||||
dw \1_Block, \1_GFX, \1_Coll
|
||||
db \2, \3, \4 ; counter tiles
|
||||
|
||||
@@ -4,7 +4,7 @@ WarpTileListPointers:
|
||||
dw .FacingLeftWarpTiles
|
||||
dw .FacingRightWarpTiles
|
||||
|
||||
warp_carpet_tiles: MACRO
|
||||
MACRO warp_carpet_tiles
|
||||
IF _NARG
|
||||
db \# ; all args
|
||||
ENDC
|
||||
|
||||
@@ -27,7 +27,7 @@ WarpTileIDPointers:
|
||||
dw .BeachHouseWarpTileIDs
|
||||
assert_table_length NUM_TILESETS
|
||||
|
||||
warp_tiles: MACRO
|
||||
MACRO warp_tiles
|
||||
IF _NARG
|
||||
db \# ; all args
|
||||
ENDC
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
move_choices: MACRO
|
||||
MACRO move_choices
|
||||
IF _NARG
|
||||
db \# ; all args
|
||||
ENDC
|
||||
db 0 ; end
|
||||
list_index += 1
|
||||
DEF list_index += 1
|
||||
ENDM
|
||||
|
||||
; move choice modification methods that are applied for each trainer class
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
pic_money: MACRO
|
||||
MACRO pic_money
|
||||
dw \1
|
||||
bcd3 \2
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
two_option_menu: MACRO
|
||||
MACRO two_option_menu
|
||||
db \1, \2, \3
|
||||
dw \4
|
||||
ENDM
|
||||
|
||||
@@ -392,7 +392,7 @@ LoadAnimationTileset:
|
||||
ld c, a ; number of tiles
|
||||
jp CopyVideoData ; load tileset
|
||||
|
||||
anim_tileset: MACRO
|
||||
MACRO anim_tileset
|
||||
db \1
|
||||
dw \2
|
||||
db -1 ; padding
|
||||
|
||||
@@ -666,7 +666,7 @@ BattleTransition_Circle_Sub2:
|
||||
const CIRCLE_LEFT
|
||||
const CIRCLE_RIGHT
|
||||
|
||||
half_circle: MACRO
|
||||
MACRO half_circle
|
||||
; quadrant x, circle data, target coord
|
||||
db \1
|
||||
dw \2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
CIRCLE_TILE_ID EQU $10
|
||||
DEF CIRCLE_TILE_ID EQU $10
|
||||
|
||||
_DisplayDiploma:
|
||||
call GBPalWhiteOutWithDelay3
|
||||
|
||||
@@ -201,12 +201,12 @@ UpdateCinnabarGymGateTileBlocks_::
|
||||
callfar RedrawMapView
|
||||
ret
|
||||
|
||||
gym_gate_coord: MACRO
|
||||
MACRO gym_gate_coord
|
||||
db \1, \2, \3, 0
|
||||
ENDM
|
||||
|
||||
HORIZONTAL_GATE_BLOCK EQU $54
|
||||
VERTICAL_GATE_BLOCK EQU $5f
|
||||
DEF HORIZONTAL_GATE_BLOCK EQU $54
|
||||
DEF VERTICAL_GATE_BLOCK EQU $5f
|
||||
|
||||
CinnabarGymGateCoords:
|
||||
; x coord, y coord, block id
|
||||
|
||||
@@ -292,8 +292,8 @@ GetPartyMonSpriteID:
|
||||
|
||||
INCLUDE "data/pokemon/menu_icons.asm"
|
||||
|
||||
INC_FRAME_1 EQUS "0, $20"
|
||||
INC_FRAME_2 EQUS "$20, $20"
|
||||
DEF INC_FRAME_1 EQUS "0, $20"
|
||||
DEF INC_FRAME_2 EQUS "$20, $20"
|
||||
|
||||
BugIconFrame1: INCBIN "gfx/icons/bug.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:
|
||||
call LoadTownMap
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
const MOVE_GENGAR_RIGHT
|
||||
const MOVE_GENGAR_LEFT
|
||||
|
||||
ANIMATION_END EQU 80
|
||||
DEF ANIMATION_END EQU 80
|
||||
|
||||
PlayIntro:
|
||||
xor a
|
||||
|
||||
@@ -26,7 +26,7 @@ InitPlayerData2:
|
||||
ld hl, wNumBoxItems
|
||||
call InitializeEmptyList
|
||||
|
||||
START_MONEY EQU $3000
|
||||
DEF START_MONEY EQU $3000
|
||||
ld hl, wPlayerMoney + 1
|
||||
ld a, HIGH(START_MONEY)
|
||||
ld [hld], a
|
||||
|
||||
@@ -57,12 +57,12 @@ TradeAnimCommon:
|
||||
ld [wOptions], a
|
||||
ret
|
||||
|
||||
addtradefunc: MACRO
|
||||
MACRO addtradefunc
|
||||
\1TradeFunc::
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
tradefunc: MACRO
|
||||
MACRO tradefunc
|
||||
db (\1TradeFunc - TradeFuncPointerTable) / 2
|
||||
ENDM
|
||||
|
||||
@@ -701,7 +701,7 @@ Trade_WriteCircleOAM:
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
trade_circle_oam: MACRO
|
||||
MACRO trade_circle_oam
|
||||
dw \1
|
||||
db \2, \3
|
||||
ENDM
|
||||
|
||||
@@ -53,7 +53,7 @@ GetMoveBoulderDustFunctionPointer:
|
||||
pop hl
|
||||
ret
|
||||
|
||||
boulder_dust_adjust: MACRO
|
||||
MACRO boulder_dust_adjust
|
||||
db \1, \2 ; coords
|
||||
dw \3 ; function
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MAP_TILESET_SIZE EQU $60
|
||||
DEF MAP_TILESET_SIZE EQU $60
|
||||
|
||||
UpdatePlayerSprite:
|
||||
ld a, [wSpritePlayerStateData2WalkAnimationCounter]
|
||||
|
||||
@@ -483,7 +483,7 @@ FishingRodOAM:
|
||||
dbsprite 8, 10, 0, 0, $fe, 0 ; left
|
||||
dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right
|
||||
|
||||
fishing_gfx: MACRO
|
||||
MACRO fishing_gfx
|
||||
dw \1
|
||||
db \2
|
||||
db BANK(\1)
|
||||
|
||||
@@ -28,7 +28,7 @@ LoadMissableObjectData::
|
||||
call CopyData
|
||||
ret
|
||||
|
||||
missable_object_map: MACRO
|
||||
MACRO missable_object_map
|
||||
db \1
|
||||
db \3 - \2
|
||||
dw \2
|
||||
|
||||
@@ -256,7 +256,7 @@ load_expression:
|
||||
call DoStarterPikachuEmotions
|
||||
ret
|
||||
|
||||
pikaemotion_def: MACRO
|
||||
MACRO pikaemotion_def
|
||||
\1_id:
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
@@ -163,7 +163,7 @@ LoadCurrentPikaPicAnimScriptPointer:
|
||||
call UpdatePikaPicAnimPointer
|
||||
ret
|
||||
|
||||
pikapic_def: MACRO
|
||||
MACRO pikapic_def
|
||||
\1_id:
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
@@ -8,7 +8,7 @@ SoftReset::
|
||||
Init::
|
||||
; Program init.
|
||||
|
||||
rLCDC_DEFAULT EQU %11100011
|
||||
DEF rLCDC_DEFAULT EQU %11100011
|
||||
; * LCD enabled
|
||||
; * Window tile map at $9C00
|
||||
; * Window display enabled
|
||||
|
||||
@@ -70,20 +70,20 @@ PrintNumber::
|
||||
cp 6
|
||||
jr z, .hundred_thousands
|
||||
|
||||
print_digit: MACRO
|
||||
MACRO print_digit
|
||||
|
||||
IF (\1) / $10000
|
||||
ld a, \1 / $10000 % $100
|
||||
ELSE
|
||||
xor a
|
||||
ENDC
|
||||
IF (\1) / $10000
|
||||
ld a, \1 / $10000 % $100
|
||||
ELSE
|
||||
xor a
|
||||
ENDC
|
||||
ldh [hPowerOf10 + 0], a
|
||||
|
||||
IF (\1) / $100
|
||||
ld a, \1 / $100 % $100
|
||||
ELSE
|
||||
xor a
|
||||
ENDC
|
||||
IF (\1) / $100
|
||||
ld a, \1 / $100 % $100
|
||||
ELSE
|
||||
xor a
|
||||
ENDC
|
||||
ldh [hPowerOf10 + 1], a
|
||||
|
||||
ld a, \1 / $1 % $100
|
||||
|
||||
@@ -123,7 +123,7 @@ TextIDErrorText:: ; "[hSpriteIndexOrTextID] ERROR."
|
||||
text_far _TextIDErrorText
|
||||
text_end
|
||||
|
||||
print_name: MACRO
|
||||
MACRO print_name
|
||||
push de
|
||||
ld de, \1
|
||||
jr PlaceCommandCharacter
|
||||
|
||||
@@ -65,7 +65,7 @@ DisplayTextID::
|
||||
|
||||
; check first byte of text for special cases
|
||||
|
||||
dict2: MACRO
|
||||
MACRO dict2
|
||||
cp \1
|
||||
jr nz, .not\@
|
||||
\2
|
||||
|
||||
@@ -86,7 +86,7 @@ DelayFrame::
|
||||
; Wait for the next vblank interrupt.
|
||||
; As a bonus, this saves battery.
|
||||
|
||||
NOT_VBLANKED EQU 1
|
||||
DEF NOT_VBLANKED EQU 1
|
||||
|
||||
ld a, NOT_VBLANKED
|
||||
ldh [hVBlankOccurred], a
|
||||
|
||||
@@ -1,122 +1,122 @@
|
||||
; Macros to verify assumptions about the data or code
|
||||
|
||||
table_width: MACRO
|
||||
CURRENT_TABLE_WIDTH = \1
|
||||
IF _NARG == 2
|
||||
REDEF CURRENT_TABLE_START EQUS "\2"
|
||||
ELSE
|
||||
REDEF CURRENT_TABLE_START EQUS "._table_width\@"
|
||||
{CURRENT_TABLE_START}:
|
||||
ENDC
|
||||
MACRO table_width
|
||||
DEF CURRENT_TABLE_WIDTH = \1
|
||||
IF _NARG == 2
|
||||
REDEF CURRENT_TABLE_START EQUS "\2"
|
||||
ELSE
|
||||
REDEF CURRENT_TABLE_START EQUS "._table_width\@"
|
||||
{CURRENT_TABLE_START}:
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
assert_table_length: MACRO
|
||||
x = \1
|
||||
MACRO assert_table_length
|
||||
DEF x = \1
|
||||
ASSERT x * CURRENT_TABLE_WIDTH == @ - {CURRENT_TABLE_START}, \
|
||||
"{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
|
||||
ENDM
|
||||
|
||||
list_start: MACRO
|
||||
list_index = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_LIST_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_LIST_START EQUS "._list_start\@"
|
||||
{CURRENT_LIST_START}:
|
||||
ENDC
|
||||
MACRO list_start
|
||||
DEF list_index = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_LIST_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_LIST_START EQUS "._list_start\@"
|
||||
{CURRENT_LIST_START}:
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
li: MACRO
|
||||
MACRO li
|
||||
ASSERT !STRIN(\1, "@"), STRCAT("String terminator \"@\" in list entry: ", \1)
|
||||
db \1, "@"
|
||||
list_index += 1
|
||||
DEF list_index += 1
|
||||
ENDM
|
||||
|
||||
assert_list_length: MACRO
|
||||
x = \1
|
||||
MACRO assert_list_length
|
||||
DEF x = \1
|
||||
ASSERT x == list_index, \
|
||||
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
|
||||
ENDM
|
||||
|
||||
nybble_array: MACRO
|
||||
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||
CURRENT_NYBBLE_ARRAY_LENGTH = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
|
||||
{CURRENT_NYBBLE_ARRAY_START}:
|
||||
ENDC
|
||||
MACRO nybble_array
|
||||
DEF CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||
DEF CURRENT_NYBBLE_ARRAY_LENGTH = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
|
||||
{CURRENT_NYBBLE_ARRAY_START}:
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
nybble: MACRO
|
||||
MACRO nybble
|
||||
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
|
||||
CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
|
||||
CURRENT_NYBBLE_ARRAY_LENGTH += 1
|
||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
|
||||
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||
ENDC
|
||||
DEF CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
|
||||
DEF CURRENT_NYBBLE_ARRAY_LENGTH += 1
|
||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
|
||||
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||
DEF CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
end_nybble_array: MACRO
|
||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
|
||||
db CURRENT_NYBBLE_ARRAY_VALUE << 4
|
||||
ENDC
|
||||
IF _NARG == 1
|
||||
x = \1
|
||||
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
|
||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
|
||||
x = (x + 1) / 2
|
||||
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
|
||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
|
||||
ENDC
|
||||
MACRO end_nybble_array
|
||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
|
||||
db CURRENT_NYBBLE_ARRAY_VALUE << 4
|
||||
ENDC
|
||||
IF _NARG == 1
|
||||
DEF x = \1
|
||||
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
|
||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
|
||||
DEF x = (x + 1) / 2
|
||||
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
|
||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
bit_array: MACRO
|
||||
CURRENT_BIT_ARRAY_VALUE = 0
|
||||
CURRENT_BIT_ARRAY_LENGTH = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_BIT_ARRAY_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_BIT_ARRAY_START EQUS "._bit_array\@"
|
||||
{CURRENT_BIT_ARRAY_START}:
|
||||
ENDC
|
||||
MACRO bit_array
|
||||
DEF CURRENT_BIT_ARRAY_VALUE = 0
|
||||
DEF CURRENT_BIT_ARRAY_LENGTH = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_BIT_ARRAY_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_BIT_ARRAY_START EQUS "._bit_array\@"
|
||||
{CURRENT_BIT_ARRAY_START}:
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
dbit: MACRO
|
||||
MACRO dbit
|
||||
ASSERT (\1) == 0 || (\1) == 1, "bits must be 0 or 1"
|
||||
CURRENT_BIT_ARRAY_VALUE |= (\1) << (CURRENT_BIT_ARRAY_LENGTH % 8)
|
||||
CURRENT_BIT_ARRAY_LENGTH += 1
|
||||
IF CURRENT_BIT_ARRAY_LENGTH % 8 == 0
|
||||
db CURRENT_BIT_ARRAY_VALUE
|
||||
CURRENT_BIT_ARRAY_VALUE = 0
|
||||
ENDC
|
||||
DEF CURRENT_BIT_ARRAY_VALUE |= (\1) << (CURRENT_BIT_ARRAY_LENGTH % 8)
|
||||
DEF CURRENT_BIT_ARRAY_LENGTH += 1
|
||||
IF CURRENT_BIT_ARRAY_LENGTH % 8 == 0
|
||||
db CURRENT_BIT_ARRAY_VALUE
|
||||
DEF CURRENT_BIT_ARRAY_VALUE = 0
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
end_bit_array: MACRO
|
||||
IF CURRENT_BIT_ARRAY_LENGTH % 8
|
||||
db CURRENT_BIT_ARRAY_VALUE
|
||||
ENDC
|
||||
IF _NARG == 1
|
||||
x = \1
|
||||
ASSERT x == CURRENT_BIT_ARRAY_LENGTH, \
|
||||
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bits, got {d:CURRENT_BIT_ARRAY_LENGTH}"
|
||||
x = (x + 7) / 8
|
||||
ASSERT x == @ - {CURRENT_BIT_ARRAY_START}, \
|
||||
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bytes"
|
||||
ENDC
|
||||
MACRO end_bit_array
|
||||
IF CURRENT_BIT_ARRAY_LENGTH % 8
|
||||
db CURRENT_BIT_ARRAY_VALUE
|
||||
ENDC
|
||||
IF _NARG == 1
|
||||
DEF x = \1
|
||||
ASSERT x == CURRENT_BIT_ARRAY_LENGTH, \
|
||||
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bits, got {d:CURRENT_BIT_ARRAY_LENGTH}"
|
||||
DEF x = (x + 7) / 8
|
||||
ASSERT x == @ - {CURRENT_BIT_ARRAY_START}, \
|
||||
"{CURRENT_BIT_ARRAY_START}: expected {d:x} bytes"
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
def_grass_wildmons: MACRO
|
||||
MACRO def_grass_wildmons
|
||||
;\1: encounter rate
|
||||
CURRENT_GRASS_WILDMONS_RATE = \1
|
||||
REDEF CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1"
|
||||
DEF CURRENT_GRASS_WILDMONS_RATE = \1
|
||||
REDEF CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1"
|
||||
{CURRENT_GRASS_WILDMONS_LABEL}:
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
end_grass_wildmons: MACRO
|
||||
MACRO end_grass_wildmons
|
||||
IF CURRENT_GRASS_WILDMONS_RATE == 0
|
||||
ASSERT 1 == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \
|
||||
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected 1 byte"
|
||||
@@ -126,15 +126,15 @@ end_grass_wildmons: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
def_water_wildmons: MACRO
|
||||
MACRO def_water_wildmons
|
||||
;\1: encounter rate
|
||||
CURRENT_WATER_WILDMONS_RATE = \1
|
||||
REDEF CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1"
|
||||
DEF CURRENT_WATER_WILDMONS_RATE = \1
|
||||
REDEF CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1"
|
||||
{CURRENT_WATER_WILDMONS_LABEL}:
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
end_water_wildmons: MACRO
|
||||
MACRO end_water_wildmons
|
||||
IF CURRENT_WATER_WILDMONS_RATE == 0
|
||||
ASSERT 1 == @ - {CURRENT_WATER_WILDMONS_LABEL}, \
|
||||
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected 1 byte"
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
; Syntactic sugar macros
|
||||
|
||||
lb: MACRO ; r, hi, lo
|
||||
MACRO lb ; r, hi, lo
|
||||
ld \1, ((\2) & $ff) << 8 + ((\3) & $ff)
|
||||
ENDM
|
||||
|
||||
ldpal: MACRO
|
||||
MACRO ldpal
|
||||
ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5
|
||||
ENDM
|
||||
|
||||
; Design patterns
|
||||
|
||||
dict: MACRO
|
||||
IF \1 == 0
|
||||
and a
|
||||
ELSE
|
||||
cp \1
|
||||
ENDC
|
||||
MACRO dict
|
||||
IF \1 == 0
|
||||
and a
|
||||
ELSE
|
||||
cp \1
|
||||
ENDC
|
||||
jp z, \2
|
||||
ENDM
|
||||
|
||||
@@ -1,48 +1,48 @@
|
||||
; Enumerate constants
|
||||
|
||||
const_def: MACRO
|
||||
IF _NARG >= 1
|
||||
const_value = \1
|
||||
ELSE
|
||||
const_value = 0
|
||||
ENDC
|
||||
IF _NARG >= 2
|
||||
const_inc = \2
|
||||
ELSE
|
||||
const_inc = 1
|
||||
ENDC
|
||||
MACRO const_def
|
||||
IF _NARG >= 1
|
||||
DEF const_value = \1
|
||||
ELSE
|
||||
DEF const_value = 0
|
||||
ENDC
|
||||
IF _NARG >= 2
|
||||
DEF const_inc = \2
|
||||
ELSE
|
||||
DEF const_inc = 1
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
const: MACRO
|
||||
\1 EQU const_value
|
||||
const_value += const_inc
|
||||
MACRO const
|
||||
DEF \1 EQU const_value
|
||||
DEF const_value += const_inc
|
||||
ENDM
|
||||
|
||||
shift_const: MACRO
|
||||
\1 EQU 1 << const_value
|
||||
const_value += const_inc
|
||||
MACRO shift_const
|
||||
DEF \1 EQU 1 << const_value
|
||||
DEF const_value += const_inc
|
||||
ENDM
|
||||
|
||||
const_skip: MACRO
|
||||
if _NARG >= 1
|
||||
const_value += const_inc * (\1)
|
||||
else
|
||||
const_value += const_inc
|
||||
endc
|
||||
MACRO const_skip
|
||||
if _NARG >= 1
|
||||
DEF const_value += const_inc * (\1)
|
||||
else
|
||||
DEF const_value += const_inc
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const_next: MACRO
|
||||
if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value)
|
||||
fail "const_next cannot go backwards from {const_value} to \1"
|
||||
else
|
||||
const_value = \1
|
||||
endc
|
||||
MACRO const_next
|
||||
if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value)
|
||||
fail "const_next cannot go backwards from {const_value} to \1"
|
||||
else
|
||||
DEF const_value = \1
|
||||
endc
|
||||
ENDM
|
||||
|
||||
rb_skip: MACRO
|
||||
IF _NARG == 1
|
||||
rsset _RS + \1
|
||||
ELSE
|
||||
rsset _RS + 1
|
||||
ENDC
|
||||
MACRO rb_skip
|
||||
IF _NARG == 1
|
||||
rsset _RS + \1
|
||||
ELSE
|
||||
rsset _RS + 1
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
validate_coords: MACRO
|
||||
MACRO validate_coords
|
||||
IF _NARG >= 4
|
||||
IF \1 >= \3
|
||||
fail "x coord out of range"
|
||||
@@ -11,11 +11,11 @@ validate_coords: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
hlcoord EQUS "coord hl,"
|
||||
bccoord EQUS "coord bc,"
|
||||
decoord EQUS "coord de,"
|
||||
DEF hlcoord EQUS "coord hl,"
|
||||
DEF bccoord EQUS "coord bc,"
|
||||
DEF decoord EQUS "coord de,"
|
||||
|
||||
coord: MACRO
|
||||
MACRO coord
|
||||
; register, x, y[, origin]
|
||||
validate_coords \2, \3
|
||||
IF _NARG >= 4
|
||||
@@ -25,11 +25,11 @@ coord: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
hlbgcoord EQUS "bgcoord hl,"
|
||||
bcbgcoord EQUS "bgcoord bc,"
|
||||
debgcoord EQUS "bgcoord de,"
|
||||
DEF hlbgcoord EQUS "bgcoord hl,"
|
||||
DEF bcbgcoord EQUS "bgcoord bc,"
|
||||
DEF debgcoord EQUS "bgcoord de,"
|
||||
|
||||
bgcoord: MACRO
|
||||
MACRO bgcoord
|
||||
; register, x, y[, origin]
|
||||
validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT
|
||||
IF _NARG >= 4
|
||||
@@ -39,22 +39,22 @@ bgcoord: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
hlowcoord EQUS "owcoord hl,"
|
||||
bcowcoord EQUS "owcoord bc,"
|
||||
deowcoord EQUS "owcoord de,"
|
||||
DEF hlowcoord EQUS "owcoord hl,"
|
||||
DEF bcowcoord EQUS "owcoord bc,"
|
||||
DEF deowcoord EQUS "owcoord de,"
|
||||
|
||||
owcoord: MACRO
|
||||
MACRO owcoord
|
||||
; register, x, y, map width
|
||||
ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
|
||||
ENDM
|
||||
|
||||
event_displacement: MACRO
|
||||
MACRO event_displacement
|
||||
; map width, x blocks, y blocks
|
||||
dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\3) >> 1) + ((\2) >> 1))
|
||||
db \3, \2
|
||||
ENDM
|
||||
|
||||
dwcoord: MACRO
|
||||
MACRO dwcoord
|
||||
; x, y
|
||||
validate_coords \1, \2
|
||||
IF _NARG >= 3
|
||||
@@ -64,7 +64,7 @@ dwcoord: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
ldcoord_a: MACRO
|
||||
MACRO ldcoord_a
|
||||
; x, y[, origin]
|
||||
validate_coords \1, \2
|
||||
IF _NARG >= 3
|
||||
@@ -74,7 +74,7 @@ ldcoord_a: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
lda_coord: MACRO
|
||||
MACRO lda_coord
|
||||
; x, y[, origin]
|
||||
validate_coords \1, \2
|
||||
IF _NARG >= 3
|
||||
@@ -84,7 +84,7 @@ lda_coord: MACRO
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
dbmapcoord: MACRO
|
||||
MACRO dbmapcoord
|
||||
; x, y
|
||||
db \2, \1
|
||||
ENDM
|
||||
|
||||
@@ -1,80 +1,80 @@
|
||||
; Value macros
|
||||
|
||||
percent EQUS "* $ff / 100"
|
||||
DEF percent EQUS "* $ff / 100"
|
||||
|
||||
bcd2: MACRO
|
||||
MACRO bcd2
|
||||
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
||||
dn ((\1) / 10) % 10, (\1) % 10
|
||||
ENDM
|
||||
|
||||
bcd3: MACRO
|
||||
MACRO bcd3
|
||||
dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
|
||||
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
|
||||
dn ((\1) / 10) % 10, (\1) % 10
|
||||
ENDM
|
||||
|
||||
; used in data/pokemon/base_stats/*.asm
|
||||
tmhm: MACRO
|
||||
MACRO tmhm
|
||||
; initialize bytes to 0
|
||||
FOR n, (NUM_TM_HM + 7) / 8
|
||||
_tm{d:n} = 0
|
||||
ENDR
|
||||
; set bits of bytes
|
||||
REPT _NARG
|
||||
IF DEF(\1_TMNUM)
|
||||
n = (\1_TMNUM - 1) / 8
|
||||
i = (\1_TMNUM - 1) % 8
|
||||
_tm{d:n} |= 1 << i
|
||||
ELSE
|
||||
FAIL "\1 is not a TM or HM move"
|
||||
ENDC
|
||||
SHIFT
|
||||
ENDR
|
||||
; output bytes
|
||||
FOR n, (NUM_TM_HM + 7) / 8
|
||||
db _tm{d:n}
|
||||
ENDR
|
||||
FOR n, (NUM_TM_HM + 7) / 8
|
||||
DEF _tm{d:n} = 0
|
||||
ENDR
|
||||
; set bits of bytes
|
||||
REPT _NARG
|
||||
IF DEF(\1_TMNUM)
|
||||
DEF n = (\1_TMNUM - 1) / 8
|
||||
DEF i = (\1_TMNUM - 1) % 8
|
||||
DEF _tm{d:n} |= 1 << i
|
||||
ELSE
|
||||
FAIL "\1 is not a TM or HM move"
|
||||
ENDC
|
||||
SHIFT
|
||||
ENDR
|
||||
; output bytes
|
||||
FOR n, (NUM_TM_HM + 7) / 8
|
||||
db _tm{d:n}
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
|
||||
; Constant data (db, dw, dl) macros
|
||||
|
||||
dbw: MACRO
|
||||
MACRO dbw
|
||||
db \1
|
||||
dw \2
|
||||
ENDM
|
||||
|
||||
dwb: MACRO
|
||||
MACRO dwb
|
||||
dw \1
|
||||
db \2
|
||||
ENDM
|
||||
|
||||
dn: MACRO ; nybbles
|
||||
REPT _NARG / 2
|
||||
db ((\1) << 4) | (\2)
|
||||
SHIFT 2
|
||||
ENDR
|
||||
MACRO dn ; nybbles
|
||||
REPT _NARG / 2
|
||||
db ((\1) << 4) | (\2)
|
||||
SHIFT 2
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
dba: MACRO ; dbw bank, address
|
||||
REPT _NARG
|
||||
dbw BANK(\1), \1
|
||||
SHIFT
|
||||
ENDR
|
||||
MACRO dba ; dbw bank, address
|
||||
REPT _NARG
|
||||
dbw BANK(\1), \1
|
||||
SHIFT
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
dab: MACRO ; dwb address, bank
|
||||
REPT _NARG
|
||||
dwb \1, BANK(\1)
|
||||
SHIFT
|
||||
ENDR
|
||||
MACRO dab ; dwb address, bank
|
||||
REPT _NARG
|
||||
dwb \1, BANK(\1)
|
||||
SHIFT
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
sine_table: MACRO
|
||||
MACRO sine_table
|
||||
; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
|
||||
x = 0
|
||||
REPT \1
|
||||
dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
|
||||
x += DIV(32768, \1) ; a circle has 65536 "degrees"
|
||||
ENDR
|
||||
DEF x = 0
|
||||
REPT \1
|
||||
dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
|
||||
DEF x += DIV(32768, \1) ; a circle has 65536 "degrees"
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
farcall: MACRO
|
||||
MACRO farcall
|
||||
ld b, BANK(\1)
|
||||
ld hl, \1
|
||||
call Bankswitch
|
||||
ENDM
|
||||
|
||||
callfar: MACRO
|
||||
MACRO callfar
|
||||
ld hl, \1
|
||||
ld b, BANK(\1)
|
||||
call Bankswitch
|
||||
ENDM
|
||||
|
||||
farjp: MACRO
|
||||
MACRO farjp
|
||||
ld b, BANK(\1)
|
||||
ld hl, \1
|
||||
jp Bankswitch
|
||||
ENDM
|
||||
|
||||
jpfar: MACRO
|
||||
MACRO jpfar
|
||||
ld hl, \1
|
||||
ld b, BANK(\1)
|
||||
jp Bankswitch
|
||||
ENDM
|
||||
|
||||
homecall: MACRO
|
||||
MACRO homecall
|
||||
ldh a, [hLoadedROMBank]
|
||||
push af
|
||||
ld a, BANK(\1)
|
||||
@@ -32,7 +32,7 @@ homecall: MACRO
|
||||
call BankswitchCommon
|
||||
ENDM
|
||||
|
||||
homejp: MACRO
|
||||
MACRO homejp
|
||||
ldh a, [hLoadedROMBank]
|
||||
push af
|
||||
ld a, BANK(\1)
|
||||
@@ -42,7 +42,7 @@ homejp: MACRO
|
||||
jp BankswitchCommon
|
||||
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]
|
||||
push af
|
||||
ld a, BANK(\1)
|
||||
@@ -53,7 +53,7 @@ homecall_sf: MACRO ; homecall but save flags by popping into bc instead of af
|
||||
call BankswitchCommon
|
||||
ENDM
|
||||
|
||||
homejp_sf: MACRO ; homejp but save flags by popping into bc instead of af
|
||||
MACRO homejp_sf ; homejp but save flags by popping into bc instead of af
|
||||
ldh a, [hLoadedROMBank]
|
||||
push af
|
||||
ld a, BANK(\1)
|
||||
@@ -64,14 +64,14 @@ homejp_sf: MACRO ; homejp but save flags by popping into bc instead of af
|
||||
jp BankswitchCommon
|
||||
ENDM
|
||||
|
||||
calladb_ModifyPikachuHappiness: MACRO
|
||||
MACRO calladb_ModifyPikachuHappiness
|
||||
ld hl, ModifyPikachuHappiness
|
||||
ld d, \1
|
||||
ld b, BANK(ModifyPikachuHappiness)
|
||||
call Bankswitch
|
||||
ENDM
|
||||
|
||||
callabd_ModifyPikachuHappiness: MACRO
|
||||
MACRO callabd_ModifyPikachuHappiness
|
||||
ld hl, ModifyPikachuHappiness
|
||||
ld b, BANK(ModifyPikachuHappiness)
|
||||
ld d, \1
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
RGB: MACRO
|
||||
REPT _NARG / 3
|
||||
dw palred (\1) + palgreen (\2) + palblue (\3)
|
||||
SHIFT 3
|
||||
ENDR
|
||||
MACRO RGB
|
||||
REPT _NARG / 3
|
||||
dw palred (\1) + palgreen (\2) + palblue (\3)
|
||||
SHIFT 3
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
palred EQUS "(1 << 0) *"
|
||||
palgreen EQUS "(1 << 5) *"
|
||||
palblue EQUS "(1 << 10) *"
|
||||
DEF palred EQUS "(1 << 0) *"
|
||||
DEF palgreen EQUS "(1 << 5) *"
|
||||
DEF palblue EQUS "(1 << 10) *"
|
||||
|
||||
palettes EQUS "* PALETTE_SIZE"
|
||||
palette EQUS "+ PALETTE_SIZE *"
|
||||
color EQUS "+ PAL_COLOR_SIZE *"
|
||||
DEF palettes EQUS "* PALETTE_SIZE"
|
||||
DEF palette EQUS "+ PALETTE_SIZE *"
|
||||
DEF color EQUS "+ PAL_COLOR_SIZE *"
|
||||
|
||||
tiles EQUS "* LEN_2BPP_TILE"
|
||||
tile EQUS "+ LEN_2BPP_TILE *"
|
||||
DEF tiles 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
|
||||
db (\2 * TILE_WIDTH) % $100 + \4, (\1 * TILE_WIDTH) % $100 + \3, \5, \6
|
||||
ENDM
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
predef_id: MACRO
|
||||
MACRO predef_id
|
||||
ld a, (\1Predef - PredefPointers) / 3
|
||||
ENDM
|
||||
|
||||
predef: MACRO
|
||||
MACRO predef
|
||||
predef_id \1
|
||||
call Predef
|
||||
ENDM
|
||||
|
||||
predef_jump: MACRO
|
||||
MACRO predef_jump
|
||||
predef_id \1
|
||||
jp Predef
|
||||
ENDM
|
||||
|
||||
|
||||
tx_pre_id: MACRO
|
||||
MACRO tx_pre_id
|
||||
ld a, (\1_id - TextPredefs) / 2 + 1
|
||||
ENDM
|
||||
|
||||
tx_pre: MACRO
|
||||
MACRO tx_pre
|
||||
tx_pre_id \1
|
||||
call PrintPredefTextID
|
||||
ENDM
|
||||
|
||||
tx_pre_jump: MACRO
|
||||
MACRO tx_pre_jump
|
||||
tx_pre_id \1
|
||||
jp PrintPredefTextID
|
||||
ENDM
|
||||
|
||||
db_tx_pre: MACRO
|
||||
MACRO db_tx_pre
|
||||
db (\1_id - TextPredefs) / 2 + 1
|
||||
ENDM
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user