This commit is contained in:
dannye 2022-12-28 17:38:38 -06:00
commit 3f691fcb21
970 changed files with 15106 additions and 11361 deletions

View file

@ -13,41 +13,41 @@
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,
; and Audio[1|2|3]_HWChannelEnableMasks indexes (see audio/engine_[1|2|3].asm)
const_def
const Ch1 ; 0
const Ch2 ; 1
const Ch3 ; 2
const Ch4 ; 3
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
const CHAN1 ; 0
const CHAN2 ; 1
const CHAN3 ; 2
const CHAN4 ; 3
DEF NUM_MUSIC_CHANS EQU const_value
const CHAN5 ; 4
const CHAN6 ; 5
const CHAN7 ; 6
const CHAN8 ; 7
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

View file

@ -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
@ -42,33 +42,33 @@ BIT_TEST_BATTLE EQU 0
const BATTLE_TYPE_SAFARI ; 2
; 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_MASK EQU %111 ; 0-7 turns
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

View file

@ -64,7 +64,7 @@
const CRED_FUKUI ; $3D
const CRED_CLUB ; $3E
const CRED_PAAD ; $3F
NUM_CRED_STRINGS EQU const_value
DEF NUM_CRED_STRINGS EQU const_value
const_def -1, -1
const CRED_TEXT_FADE_MON ; $FF

View file

@ -715,7 +715,8 @@
; Indigo Plateau events
const_next $8E0
const ELITE4_EVENTS_START
DEF INDIGO_PLATEAU_EVENTS_START EQU const_value
const_skip
const EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
const_skip 4
const EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
@ -735,7 +736,8 @@
const_skip
const EVENT_BEAT_CHAMPION_RIVAL
const_skip 5
const ELITE4_CHAMPION_EVENTS_END
const_skip
DEF INDIGO_PLATEAU_EVENTS_END EQU const_value - 1
; Victory Road 1F events
const_next $910
@ -772,4 +774,4 @@
; End of events
const_next $A00
NUM_EVENTS EQU const_value
DEF NUM_EVENTS EQU const_value

View file

@ -1,30 +1,33 @@
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
; 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
; wShadowOAM
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)
@ -37,4 +40,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

View file

@ -1,132 +1,128 @@
; 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)
rNR20 EQU $ff15 ; Channel 2 Sweep register (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)
rNR40 EQU $ff1f ; Channel 4 Sweep register (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 rNR20 EQU $ff15 ; Channel 2 Sweep register (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 rNR40 EQU $ff1f ; Channel 4 Sweep register (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 rOPRI EQU $ff6c ; CGB Mode Only - Object Priority Mode
DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
DEF rPCM12 EQU $ff76 ; Channels 1 & 2 Amplitude (R)
DEF rPCM34 EQU $ff77 ; Channels 3 & 4 Amplitude (R)
DEF rIE EQU $ffff ; Interrupt Enable (R/W)

View file

@ -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
@ -237,4 +237,4 @@ SHOW EQU $15
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
const HS_ARTICUNO ; E3 X
NUM_HS_OBJECTS EQU const_value
DEF NUM_HS_OBJECTS EQU const_value

View file

@ -12,6 +12,6 @@
const ICON_SNAKE ; $8
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

View file

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

View file

@ -3,7 +3,7 @@
; - ItemNames (see data/items/names.asm)
; - ItemPrices (see data/items/prices.asm)
; - TechnicalMachinePrices (see data/items/tm_prices.asm)
; - KeyItemBitfield (see data/items/key_items.asm)
; - KeyItemFlags (see data/items/key_items.asm)
; - ItemUsePtrTable (see engine/items/item_effects.asm)
const_def
const NO_ITEM ; $00
@ -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,68 +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
add_hm: MACRO
DEF __tmhm_value__ = NUM_TMS + 1
MACRO add_tmnum
DEF \1_TMNUM EQU __tmhm_value__
DEF __tmhm_value__ += 1
ENDM
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
; The first usage also defines HM01 as the first HM item id.
IF !DEF(HM01)
HM01 EQU const_value
__tmhm_value__ = NUM_TMS + 1
ENDC
HM_VALUE EQU __tmhm_value__ - NUM_TMS
IF HM_VALUE < 10
MOVE_FOR_HM EQUS "HM0{d:HM_VALUE}_MOVE"
ELSE
MOVE_FOR_HM EQUS "HM{d:HM_VALUE}_MOVE"
ENDC
MOVE_FOR_HM = \1
PURGE MOVE_FOR_HM
PURGE HM_VALUE
const HM_\1
\1_TMNUM EQU __tmhm_value__
__tmhm_value__ = __tmhm_value__ + 1
DEF HM_VALUE = __tmhm_value__ - NUM_TMS
DEF HM{02d:HM_VALUE}_MOVE EQU \1
add_tmnum \1
ENDM
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
add_tm: MACRO
DEF __tmhm_value__ = 1
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
; The first usage also defines TM01 as the first TM item id.
IF !DEF(TM01)
TM01 EQU const_value
__tmhm_value__ = 1
ENDC
IF __tmhm_value__ < 10
MOVE_FOR_TM EQUS "TM0{d:__tmhm_value__}_MOVE"
ELSE
MOVE_FOR_TM EQUS "TM{d:__tmhm_value__}_MOVE"
ENDC
MOVE_FOR_TM = \1
PURGE MOVE_FOR_TM
const TM_\1
\1_TMNUM EQU __tmhm_value__
__tmhm_value__ = __tmhm_value__ + 1
DEF TM{02d:__tmhm_value__}_MOVE EQU \1
add_tmnum \1
ENDM
DEF TM01 EQU const_value
add_tm MEGA_PUNCH ; $C9
add_tm RAZOR_WIND ; $CA
add_tm SWORDS_DANCE ; $CB
@ -221,11 +207,11 @@ ENDM
add_tm ROCK_SLIDE ; $F8
add_tm TRI_ATTACK ; $F9
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.
; 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__

View file

@ -1,7 +1,7 @@
mapconst: MACRO
MACRO map_const
const \1
\1_HEIGHT EQU \2
\1_WIDTH EQU \3
DEF \1_WIDTH EQU \2
DEF \1_HEIGHT EQU \3
ENDM
; map ids
@ -12,262 +12,263 @@ ENDM
; - MapHSPointers (see data/maps/hide_show_data.asm)
; - MapSpriteSets (see data/maps/sprite_sets.asm)
; - ExternalMapEntries (see data/maps/town_map_entries.asm)
; - WildDataPointers (see data/wild/grass_water.asm)
; Each map also has associated data in maps.asm.
; Order: towns/cities, then routes, then indoor/dungeon maps
const_def
mapconst PALLET_TOWN, 9, 10 ; $00
mapconst VIRIDIAN_CITY, 18, 20 ; $01
mapconst PEWTER_CITY, 18, 20 ; $02
mapconst CERULEAN_CITY, 18, 20 ; $03
mapconst LAVENDER_TOWN, 9, 10 ; $04
mapconst VERMILION_CITY, 18, 20 ; $05
mapconst CELADON_CITY, 18, 25 ; $06
mapconst FUCHSIA_CITY, 18, 20 ; $07
mapconst CINNABAR_ISLAND, 9, 10 ; $08
mapconst INDIGO_PLATEAU, 9, 10 ; $09
mapconst SAFFRON_CITY, 18, 20 ; $0A
NUM_CITY_MAPS EQU const_value
mapconst UNUSED_MAP_0B, 0, 0 ; $0B
FIRST_ROUTE_MAP EQU const_value
mapconst ROUTE_1, 18, 10 ; $0C
mapconst ROUTE_2, 36, 10 ; $0D
mapconst ROUTE_3, 9, 35 ; $0E
mapconst ROUTE_4, 9, 45 ; $0F
mapconst ROUTE_5, 18, 10 ; $10
mapconst ROUTE_6, 18, 10 ; $11
mapconst ROUTE_7, 9, 10 ; $12
mapconst ROUTE_8, 9, 30 ; $13
mapconst ROUTE_9, 9, 30 ; $14
mapconst ROUTE_10, 36, 10 ; $15
mapconst ROUTE_11, 9, 30 ; $16
mapconst ROUTE_12, 54, 10 ; $17
mapconst ROUTE_13, 9, 30 ; $18
mapconst ROUTE_14, 27, 10 ; $19
mapconst ROUTE_15, 9, 30 ; $1A
mapconst ROUTE_16, 9, 20 ; $1B
mapconst ROUTE_17, 72, 10 ; $1C
mapconst ROUTE_18, 9, 25 ; $1D
mapconst ROUTE_19, 27, 10 ; $1E
mapconst ROUTE_20, 9, 50 ; $1F
mapconst ROUTE_21, 45, 10 ; $20
mapconst ROUTE_22, 9, 20 ; $21
mapconst ROUTE_23, 72, 10 ; $22
mapconst ROUTE_24, 18, 10 ; $23
mapconst ROUTE_25, 9, 30 ; $24
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
mapconst OAKS_LAB, 6, 5 ; $28
mapconst VIRIDIAN_POKECENTER, 4, 7 ; $29
mapconst VIRIDIAN_MART, 4, 4 ; $2A
mapconst VIRIDIAN_SCHOOL_HOUSE, 4, 4 ; $2B
mapconst VIRIDIAN_NICKNAME_HOUSE, 4, 4 ; $2C
mapconst VIRIDIAN_GYM, 9, 10 ; $2D
mapconst DIGLETTS_CAVE_ROUTE_2, 4, 4 ; $2E
mapconst VIRIDIAN_FOREST_NORTH_GATE, 4, 5 ; $2F
mapconst ROUTE_2_TRADE_HOUSE, 4, 4 ; $30
mapconst ROUTE_2_GATE, 4, 5 ; $31
mapconst VIRIDIAN_FOREST_SOUTH_GATE, 4, 5 ; $32
mapconst VIRIDIAN_FOREST, 24, 17 ; $33
mapconst MUSEUM_1F, 4, 10 ; $34
mapconst MUSEUM_2F, 4, 7 ; $35
mapconst PEWTER_GYM, 7, 5 ; $36
mapconst PEWTER_NIDORAN_HOUSE, 4, 4 ; $37
mapconst PEWTER_MART, 4, 4 ; $38
mapconst PEWTER_SPEECH_HOUSE, 4, 4 ; $39
mapconst PEWTER_POKECENTER, 4, 7 ; $3A
mapconst MT_MOON_1F, 18, 20 ; $3B
mapconst MT_MOON_B1F, 14, 14 ; $3C
mapconst MT_MOON_B2F, 18, 20 ; $3D
mapconst CERULEAN_TRASHED_HOUSE, 4, 4 ; $3E
mapconst CERULEAN_TRADE_HOUSE, 4, 4 ; $3F
mapconst CERULEAN_POKECENTER, 4, 7 ; $40
mapconst CERULEAN_GYM, 7, 5 ; $41
mapconst BIKE_SHOP, 4, 4 ; $42
mapconst CERULEAN_MART, 4, 4 ; $43
mapconst MT_MOON_POKECENTER, 4, 7 ; $44
mapconst CERULEAN_TRASHED_HOUSE_COPY, 4, 4 ; $45
mapconst ROUTE_5_GATE, 3, 4 ; $46
mapconst UNDERGROUND_PATH_ROUTE_5, 4, 4 ; $47
mapconst DAYCARE, 4, 4 ; $48
mapconst ROUTE_6_GATE, 3, 4 ; $49
mapconst UNDERGROUND_PATH_ROUTE_6, 4, 4 ; $4A
mapconst UNDERGROUND_PATH_ROUTE_6_COPY, 4, 4 ; $4B
mapconst ROUTE_7_GATE, 4, 3 ; $4C
mapconst UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4D
mapconst UNDERGROUND_PATH_ROUTE_7_COPY, 4, 4 ; $4E
mapconst ROUTE_8_GATE, 4, 3 ; $4F
mapconst UNDERGROUND_PATH_ROUTE_8, 4, 4 ; $50
mapconst ROCK_TUNNEL_POKECENTER, 4, 7 ; $51
mapconst ROCK_TUNNEL_1F, 18, 20 ; $52
mapconst POWER_PLANT, 18, 20 ; $53
mapconst ROUTE_11_GATE_1F, 5, 4 ; $54
mapconst DIGLETTS_CAVE_ROUTE_11, 4, 4 ; $55
mapconst ROUTE_11_GATE_2F, 4, 4 ; $56
mapconst ROUTE_12_GATE_1F, 4, 5 ; $57
mapconst BILLS_HOUSE, 4, 4 ; $58
mapconst VERMILION_POKECENTER, 4, 7 ; $59
mapconst POKEMON_FAN_CLUB, 4, 4 ; $5A
mapconst VERMILION_MART, 4, 4 ; $5B
mapconst VERMILION_GYM, 9, 5 ; $5C
mapconst VERMILION_PIDGEY_HOUSE, 4, 4 ; $5D
mapconst VERMILION_DOCK, 6, 14 ; $5E
mapconst SS_ANNE_1F, 9, 20 ; $5F
mapconst SS_ANNE_2F, 9, 20 ; $60
mapconst SS_ANNE_3F, 3, 10 ; $61
mapconst SS_ANNE_B1F, 4, 15 ; $62
mapconst SS_ANNE_BOW, 7, 10 ; $63
mapconst SS_ANNE_KITCHEN, 8, 7 ; $64
mapconst SS_ANNE_CAPTAINS_ROOM, 4, 3 ; $65
mapconst SS_ANNE_1F_ROOMS, 8, 12 ; $66
mapconst SS_ANNE_2F_ROOMS, 8, 12 ; $67
mapconst SS_ANNE_B1F_ROOMS, 8, 12 ; $68
mapconst UNUSED_MAP_69, 0, 0 ; $69
mapconst UNUSED_MAP_6A, 0, 0 ; $6A
mapconst UNUSED_MAP_6B, 0, 0 ; $6B
mapconst VICTORY_ROAD_1F, 9, 10 ; $6C
mapconst UNUSED_MAP_6D, 0, 0 ; $6D
mapconst UNUSED_MAP_6E, 0, 0 ; $6E
mapconst UNUSED_MAP_6F, 0, 0 ; $6F
mapconst UNUSED_MAP_70, 0, 0 ; $70
mapconst LANCES_ROOM, 13, 13 ; $71
mapconst UNUSED_MAP_72, 0, 0 ; $72
mapconst UNUSED_MAP_73, 0, 0 ; $73
mapconst UNUSED_MAP_74, 0, 0 ; $74
mapconst UNUSED_MAP_75, 0, 0 ; $75
mapconst HALL_OF_FAME, 4, 5 ; $76
mapconst UNDERGROUND_PATH_NORTH_SOUTH, 24, 4 ; $77
mapconst CHAMPIONS_ROOM, 4, 4 ; $78
mapconst UNDERGROUND_PATH_WEST_EAST, 4, 25 ; $79
mapconst CELADON_MART_1F, 4, 10 ; $7A
mapconst CELADON_MART_2F, 4, 10 ; $7B
mapconst CELADON_MART_3F, 4, 10 ; $7C
mapconst CELADON_MART_4F, 4, 10 ; $7D
mapconst CELADON_MART_ROOF, 4, 10 ; $7E
mapconst CELADON_MART_ELEVATOR, 2, 2 ; $7F
mapconst CELADON_MANSION_1F, 6, 4 ; $80
mapconst CELADON_MANSION_2F, 6, 4 ; $81
mapconst CELADON_MANSION_3F, 6, 4 ; $82
mapconst CELADON_MANSION_ROOF, 6, 4 ; $83
mapconst CELADON_MANSION_ROOF_HOUSE, 4, 4 ; $84
mapconst CELADON_POKECENTER, 4, 7 ; $85
mapconst CELADON_GYM, 9, 5 ; $86
mapconst GAME_CORNER, 9, 10 ; $87
mapconst CELADON_MART_5F, 4, 10 ; $88
mapconst GAME_CORNER_PRIZE_ROOM, 4, 5 ; $89
mapconst CELADON_DINER, 4, 5 ; $8A
mapconst CELADON_CHIEF_HOUSE, 4, 4 ; $8B
mapconst CELADON_HOTEL, 4, 7 ; $8C
mapconst LAVENDER_POKECENTER, 4, 7 ; $8D
mapconst POKEMON_TOWER_1F, 9, 10 ; $8E
mapconst POKEMON_TOWER_2F, 9, 10 ; $8F
mapconst POKEMON_TOWER_3F, 9, 10 ; $90
mapconst POKEMON_TOWER_4F, 9, 10 ; $91
mapconst POKEMON_TOWER_5F, 9, 10 ; $92
mapconst POKEMON_TOWER_6F, 9, 10 ; $93
mapconst POKEMON_TOWER_7F, 9, 10 ; $94
mapconst MR_FUJIS_HOUSE, 4, 4 ; $95
mapconst LAVENDER_MART, 4, 4 ; $96
mapconst LAVENDER_CUBONE_HOUSE, 4, 4 ; $97
mapconst FUCHSIA_MART, 4, 4 ; $98
mapconst FUCHSIA_BILLS_GRANDPAS_HOUSE, 4, 4 ; $99
mapconst FUCHSIA_POKECENTER, 4, 7 ; $9A
mapconst WARDENS_HOUSE, 4, 5 ; $9B
mapconst SAFARI_ZONE_GATE, 3, 4 ; $9C
mapconst FUCHSIA_GYM, 9, 5 ; $9D
mapconst FUCHSIA_MEETING_ROOM, 4, 7 ; $9E
mapconst SEAFOAM_ISLANDS_B1F, 9, 15 ; $9F
mapconst SEAFOAM_ISLANDS_B2F, 9, 15 ; $A0
mapconst SEAFOAM_ISLANDS_B3F, 9, 15 ; $A1
mapconst SEAFOAM_ISLANDS_B4F, 9, 15 ; $A2
mapconst VERMILION_OLD_ROD_HOUSE, 4, 4 ; $A3
mapconst FUCHSIA_GOOD_ROD_HOUSE, 4, 4 ; $A4
mapconst POKEMON_MANSION_1F, 14, 15 ; $A5
mapconst CINNABAR_GYM, 9, 10 ; $A6
mapconst CINNABAR_LAB, 4, 9 ; $A7
mapconst CINNABAR_LAB_TRADE_ROOM, 4, 4 ; $A8
mapconst CINNABAR_LAB_METRONOME_ROOM, 4, 4 ; $A9
mapconst CINNABAR_LAB_FOSSIL_ROOM, 4, 4 ; $AA
mapconst CINNABAR_POKECENTER, 4, 7 ; $AB
mapconst CINNABAR_MART, 4, 4 ; $AC
mapconst CINNABAR_MART_COPY, 4, 4 ; $AD
mapconst INDIGO_PLATEAU_LOBBY, 6, 8 ; $AE
mapconst COPYCATS_HOUSE_1F, 4, 4 ; $AF
mapconst COPYCATS_HOUSE_2F, 4, 4 ; $B0
mapconst FIGHTING_DOJO, 6, 5 ; $B1
mapconst SAFFRON_GYM, 9, 10 ; $B2
mapconst SAFFRON_PIDGEY_HOUSE, 4, 4 ; $B3
mapconst SAFFRON_MART, 4, 4 ; $B4
mapconst SILPH_CO_1F, 9, 15 ; $B5
mapconst SAFFRON_POKECENTER, 4, 7 ; $B6
mapconst MR_PSYCHICS_HOUSE, 4, 4 ; $B7
mapconst ROUTE_15_GATE_1F, 5, 4 ; $B8
mapconst ROUTE_15_GATE_2F, 4, 4 ; $B9
mapconst ROUTE_16_GATE_1F, 7, 4 ; $BA
mapconst ROUTE_16_GATE_2F, 4, 4 ; $BB
mapconst ROUTE_16_FLY_HOUSE, 4, 4 ; $BC
mapconst ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; $BD
mapconst ROUTE_18_GATE_1F, 5, 4 ; $BE
mapconst ROUTE_18_GATE_2F, 4, 4 ; $BF
mapconst SEAFOAM_ISLANDS_1F, 9, 15 ; $C0
mapconst ROUTE_22_GATE, 4, 5 ; $C1
mapconst VICTORY_ROAD_2F, 9, 15 ; $C2
mapconst ROUTE_12_GATE_2F, 4, 4 ; $C3
mapconst VERMILION_TRADE_HOUSE, 4, 4 ; $C4
mapconst DIGLETTS_CAVE, 18, 20 ; $C5
mapconst VICTORY_ROAD_3F, 9, 15 ; $C6
mapconst ROCKET_HIDEOUT_B1F, 14, 15 ; $C7
mapconst ROCKET_HIDEOUT_B2F, 14, 15 ; $C8
mapconst ROCKET_HIDEOUT_B3F, 14, 15 ; $C9
mapconst ROCKET_HIDEOUT_B4F, 12, 15 ; $CA
mapconst ROCKET_HIDEOUT_ELEVATOR, 4, 3 ; $CB
mapconst UNUSED_MAP_CC, 0, 0 ; $CC
mapconst UNUSED_MAP_CD, 0, 0 ; $CD
mapconst UNUSED_MAP_CE, 0, 0 ; $CE
mapconst SILPH_CO_2F, 9, 15 ; $CF
mapconst SILPH_CO_3F, 9, 15 ; $D0
mapconst SILPH_CO_4F, 9, 15 ; $D1
mapconst SILPH_CO_5F, 9, 15 ; $D2
mapconst SILPH_CO_6F, 9, 13 ; $D3
mapconst SILPH_CO_7F, 9, 13 ; $D4
mapconst SILPH_CO_8F, 9, 13 ; $D5
mapconst POKEMON_MANSION_2F, 14, 15 ; $D6
mapconst POKEMON_MANSION_3F, 9, 15 ; $D7
mapconst POKEMON_MANSION_B1F, 14, 15 ; $D8
mapconst SAFARI_ZONE_EAST, 13, 15 ; $D9
mapconst SAFARI_ZONE_NORTH, 18, 20 ; $DA
mapconst SAFARI_ZONE_WEST, 13, 15 ; $DB
mapconst SAFARI_ZONE_CENTER, 13, 15 ; $DC
mapconst SAFARI_ZONE_CENTER_REST_HOUSE, 4, 4 ; $DD
mapconst SAFARI_ZONE_SECRET_HOUSE, 4, 4 ; $DE
mapconst SAFARI_ZONE_WEST_REST_HOUSE, 4, 4 ; $DF
mapconst SAFARI_ZONE_EAST_REST_HOUSE, 4, 4 ; $E0
mapconst SAFARI_ZONE_NORTH_REST_HOUSE, 4, 4 ; $E1
mapconst CERULEAN_CAVE_2F, 9, 15 ; $E2
mapconst CERULEAN_CAVE_B1F, 9, 15 ; $E3
mapconst CERULEAN_CAVE_1F, 9, 15 ; $E4
mapconst NAME_RATERS_HOUSE, 4, 4 ; $E5
mapconst CERULEAN_BADGE_HOUSE, 4, 4 ; $E6
mapconst UNUSED_MAP_E7, 0, 0 ; $E7
mapconst ROCK_TUNNEL_B1F, 18, 20 ; $E8
mapconst SILPH_CO_9F, 9, 13 ; $E9
mapconst SILPH_CO_10F, 9, 8 ; $EA
mapconst SILPH_CO_11F, 9, 9 ; $EB
mapconst SILPH_CO_ELEVATOR, 2, 2 ; $EC
mapconst UNUSED_MAP_ED, 0, 0 ; $ED
mapconst UNUSED_MAP_EE, 0, 0 ; $EE
mapconst TRADE_CENTER, 4, 5 ; $EF
mapconst COLOSSEUM, 4, 5 ; $F0
mapconst UNUSED_MAP_F1, 0, 0 ; $F1
mapconst UNUSED_MAP_F2, 0, 0 ; $F2
mapconst UNUSED_MAP_F3, 0, 0 ; $F3
mapconst UNUSED_MAP_F4, 0, 0 ; $F4
mapconst LORELEIS_ROOM, 6, 5 ; $F5
mapconst BRUNOS_ROOM, 6, 5 ; $F6
mapconst AGATHAS_ROOM, 6, 5 ; $F7
NUM_MAPS EQU const_value
map_const PALLET_TOWN, 10, 9 ; $00
map_const VIRIDIAN_CITY, 20, 18 ; $01
map_const PEWTER_CITY, 20, 18 ; $02
map_const CERULEAN_CITY, 20, 18 ; $03
map_const LAVENDER_TOWN, 10, 9 ; $04
map_const VERMILION_CITY, 20, 18 ; $05
map_const CELADON_CITY, 25, 18 ; $06
map_const FUCHSIA_CITY, 20, 18 ; $07
map_const CINNABAR_ISLAND, 10, 9 ; $08
map_const INDIGO_PLATEAU, 10, 9 ; $09
map_const SAFFRON_CITY, 20, 18 ; $0A
DEF NUM_CITY_MAPS EQU const_value
map_const UNUSED_MAP_0B, 0, 0 ; $0B
DEF FIRST_ROUTE_MAP EQU const_value
map_const ROUTE_1, 10, 18 ; $0C
map_const ROUTE_2, 10, 36 ; $0D
map_const ROUTE_3, 35, 9 ; $0E
map_const ROUTE_4, 45, 9 ; $0F
map_const ROUTE_5, 10, 18 ; $10
map_const ROUTE_6, 10, 18 ; $11
map_const ROUTE_7, 10, 9 ; $12
map_const ROUTE_8, 30, 9 ; $13
map_const ROUTE_9, 30, 9 ; $14
map_const ROUTE_10, 10, 36 ; $15
map_const ROUTE_11, 30, 9 ; $16
map_const ROUTE_12, 10, 54 ; $17
map_const ROUTE_13, 30, 9 ; $18
map_const ROUTE_14, 10, 27 ; $19
map_const ROUTE_15, 30, 9 ; $1A
map_const ROUTE_16, 20, 9 ; $1B
map_const ROUTE_17, 10, 72 ; $1C
map_const ROUTE_18, 25, 9 ; $1D
map_const ROUTE_19, 10, 27 ; $1E
map_const ROUTE_20, 50, 9 ; $1F
map_const ROUTE_21, 10, 45 ; $20
map_const ROUTE_22, 20, 9 ; $21
map_const ROUTE_23, 10, 72 ; $22
map_const ROUTE_24, 10, 18 ; $23
map_const ROUTE_25, 30, 9 ; $24
DEF FIRST_INDOOR_MAP EQU const_value
map_const REDS_HOUSE_1F, 4, 4 ; $25
map_const REDS_HOUSE_2F, 4, 4 ; $26
map_const BLUES_HOUSE, 4, 4 ; $27
map_const OAKS_LAB, 5, 6 ; $28
map_const VIRIDIAN_POKECENTER, 7, 4 ; $29
map_const VIRIDIAN_MART, 4, 4 ; $2A
map_const VIRIDIAN_SCHOOL_HOUSE, 4, 4 ; $2B
map_const VIRIDIAN_NICKNAME_HOUSE, 4, 4 ; $2C
map_const VIRIDIAN_GYM, 10, 9 ; $2D
map_const DIGLETTS_CAVE_ROUTE_2, 4, 4 ; $2E
map_const VIRIDIAN_FOREST_NORTH_GATE, 5, 4 ; $2F
map_const ROUTE_2_TRADE_HOUSE, 4, 4 ; $30
map_const ROUTE_2_GATE, 5, 4 ; $31
map_const VIRIDIAN_FOREST_SOUTH_GATE, 5, 4 ; $32
map_const VIRIDIAN_FOREST, 17, 24 ; $33
map_const MUSEUM_1F, 10, 4 ; $34
map_const MUSEUM_2F, 7, 4 ; $35
map_const PEWTER_GYM, 5, 7 ; $36
map_const PEWTER_NIDORAN_HOUSE, 4, 4 ; $37
map_const PEWTER_MART, 4, 4 ; $38
map_const PEWTER_SPEECH_HOUSE, 4, 4 ; $39
map_const PEWTER_POKECENTER, 7, 4 ; $3A
map_const MT_MOON_1F, 20, 18 ; $3B
map_const MT_MOON_B1F, 14, 14 ; $3C
map_const MT_MOON_B2F, 20, 18 ; $3D
map_const CERULEAN_TRASHED_HOUSE, 4, 4 ; $3E
map_const CERULEAN_TRADE_HOUSE, 4, 4 ; $3F
map_const CERULEAN_POKECENTER, 7, 4 ; $40
map_const CERULEAN_GYM, 5, 7 ; $41
map_const BIKE_SHOP, 4, 4 ; $42
map_const CERULEAN_MART, 4, 4 ; $43
map_const MT_MOON_POKECENTER, 7, 4 ; $44
map_const CERULEAN_TRASHED_HOUSE_COPY, 4, 4 ; $45
map_const ROUTE_5_GATE, 4, 3 ; $46
map_const UNDERGROUND_PATH_ROUTE_5, 4, 4 ; $47
map_const DAYCARE, 4, 4 ; $48
map_const ROUTE_6_GATE, 4, 3 ; $49
map_const UNDERGROUND_PATH_ROUTE_6, 4, 4 ; $4A
map_const UNDERGROUND_PATH_ROUTE_6_COPY, 4, 4 ; $4B
map_const ROUTE_7_GATE, 3, 4 ; $4C
map_const UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4D
map_const UNDERGROUND_PATH_ROUTE_7_COPY, 4, 4 ; $4E
map_const ROUTE_8_GATE, 3, 4 ; $4F
map_const UNDERGROUND_PATH_ROUTE_8, 4, 4 ; $50
map_const ROCK_TUNNEL_POKECENTER, 7, 4 ; $51
map_const ROCK_TUNNEL_1F, 20, 18 ; $52
map_const POWER_PLANT, 20, 18 ; $53
map_const ROUTE_11_GATE_1F, 4, 5 ; $54
map_const DIGLETTS_CAVE_ROUTE_11, 4, 4 ; $55
map_const ROUTE_11_GATE_2F, 4, 4 ; $56
map_const ROUTE_12_GATE_1F, 5, 4 ; $57
map_const BILLS_HOUSE, 4, 4 ; $58
map_const VERMILION_POKECENTER, 7, 4 ; $59
map_const POKEMON_FAN_CLUB, 4, 4 ; $5A
map_const VERMILION_MART, 4, 4 ; $5B
map_const VERMILION_GYM, 5, 9 ; $5C
map_const VERMILION_PIDGEY_HOUSE, 4, 4 ; $5D
map_const VERMILION_DOCK, 14, 6 ; $5E
map_const SS_ANNE_1F, 20, 9 ; $5F
map_const SS_ANNE_2F, 20, 9 ; $60
map_const SS_ANNE_3F, 10, 3 ; $61
map_const SS_ANNE_B1F, 15, 4 ; $62
map_const SS_ANNE_BOW, 10, 7 ; $63
map_const SS_ANNE_KITCHEN, 7, 8 ; $64
map_const SS_ANNE_CAPTAINS_ROOM, 3, 4 ; $65
map_const SS_ANNE_1F_ROOMS, 12, 8 ; $66
map_const SS_ANNE_2F_ROOMS, 12, 8 ; $67
map_const SS_ANNE_B1F_ROOMS, 12, 8 ; $68
map_const UNUSED_MAP_69, 0, 0 ; $69
map_const UNUSED_MAP_6A, 0, 0 ; $6A
map_const UNUSED_MAP_6B, 0, 0 ; $6B
map_const VICTORY_ROAD_1F, 10, 9 ; $6C
map_const UNUSED_MAP_6D, 0, 0 ; $6D
map_const UNUSED_MAP_6E, 0, 0 ; $6E
map_const UNUSED_MAP_6F, 0, 0 ; $6F
map_const UNUSED_MAP_70, 0, 0 ; $70
map_const LANCES_ROOM, 13, 13 ; $71
map_const UNUSED_MAP_72, 0, 0 ; $72
map_const UNUSED_MAP_73, 0, 0 ; $73
map_const UNUSED_MAP_74, 0, 0 ; $74
map_const UNUSED_MAP_75, 0, 0 ; $75
map_const HALL_OF_FAME, 5, 4 ; $76
map_const UNDERGROUND_PATH_NORTH_SOUTH, 4, 24 ; $77 ; UndergroundPathNorthSouth.blk is actually 4x23
map_const CHAMPIONS_ROOM, 4, 4 ; $78
map_const UNDERGROUND_PATH_WEST_EAST, 25, 4 ; $79
map_const CELADON_MART_1F, 10, 4 ; $7A
map_const CELADON_MART_2F, 10, 4 ; $7B
map_const CELADON_MART_3F, 10, 4 ; $7C
map_const CELADON_MART_4F, 10, 4 ; $7D
map_const CELADON_MART_ROOF, 10, 4 ; $7E
map_const CELADON_MART_ELEVATOR, 2, 2 ; $7F
map_const CELADON_MANSION_1F, 4, 6 ; $80
map_const CELADON_MANSION_2F, 4, 6 ; $81
map_const CELADON_MANSION_3F, 4, 6 ; $82
map_const CELADON_MANSION_ROOF, 4, 6 ; $83
map_const CELADON_MANSION_ROOF_HOUSE, 4, 4 ; $84
map_const CELADON_POKECENTER, 7, 4 ; $85
map_const CELADON_GYM, 5, 9 ; $86
map_const GAME_CORNER, 10, 9 ; $87
map_const CELADON_MART_5F, 10, 4 ; $88
map_const GAME_CORNER_PRIZE_ROOM, 5, 4 ; $89
map_const CELADON_DINER, 5, 4 ; $8A
map_const CELADON_CHIEF_HOUSE, 4, 4 ; $8B
map_const CELADON_HOTEL, 7, 4 ; $8C
map_const LAVENDER_POKECENTER, 7, 4 ; $8D
map_const POKEMON_TOWER_1F, 10, 9 ; $8E
map_const POKEMON_TOWER_2F, 10, 9 ; $8F
map_const POKEMON_TOWER_3F, 10, 9 ; $90
map_const POKEMON_TOWER_4F, 10, 9 ; $91
map_const POKEMON_TOWER_5F, 10, 9 ; $92
map_const POKEMON_TOWER_6F, 10, 9 ; $93
map_const POKEMON_TOWER_7F, 10, 9 ; $94
map_const MR_FUJIS_HOUSE, 4, 4 ; $95
map_const LAVENDER_MART, 4, 4 ; $96
map_const LAVENDER_CUBONE_HOUSE, 4, 4 ; $97
map_const FUCHSIA_MART, 4, 4 ; $98
map_const FUCHSIA_BILLS_GRANDPAS_HOUSE, 4, 4 ; $99
map_const FUCHSIA_POKECENTER, 7, 4 ; $9A
map_const WARDENS_HOUSE, 5, 4 ; $9B
map_const SAFARI_ZONE_GATE, 4, 3 ; $9C
map_const FUCHSIA_GYM, 5, 9 ; $9D
map_const FUCHSIA_MEETING_ROOM, 7, 4 ; $9E
map_const SEAFOAM_ISLANDS_B1F, 15, 9 ; $9F
map_const SEAFOAM_ISLANDS_B2F, 15, 9 ; $A0
map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A1
map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A2
map_const VERMILION_OLD_ROD_HOUSE, 4, 4 ; $A3
map_const FUCHSIA_GOOD_ROD_HOUSE, 4, 4 ; $A4
map_const POKEMON_MANSION_1F, 15, 14 ; $A5
map_const CINNABAR_GYM, 10, 9 ; $A6
map_const CINNABAR_LAB, 9, 4 ; $A7
map_const CINNABAR_LAB_TRADE_ROOM, 4, 4 ; $A8
map_const CINNABAR_LAB_METRONOME_ROOM, 4, 4 ; $A9
map_const CINNABAR_LAB_FOSSIL_ROOM, 4, 4 ; $AA
map_const CINNABAR_POKECENTER, 7, 4 ; $AB
map_const CINNABAR_MART, 4, 4 ; $AC
map_const CINNABAR_MART_COPY, 4, 4 ; $AD
map_const INDIGO_PLATEAU_LOBBY, 8, 6 ; $AE
map_const COPYCATS_HOUSE_1F, 4, 4 ; $AF
map_const COPYCATS_HOUSE_2F, 4, 4 ; $B0
map_const FIGHTING_DOJO, 5, 6 ; $B1
map_const SAFFRON_GYM, 10, 9 ; $B2
map_const SAFFRON_PIDGEY_HOUSE, 4, 4 ; $B3
map_const SAFFRON_MART, 4, 4 ; $B4
map_const SILPH_CO_1F, 15, 9 ; $B5
map_const SAFFRON_POKECENTER, 7, 4 ; $B6
map_const MR_PSYCHICS_HOUSE, 4, 4 ; $B7
map_const ROUTE_15_GATE_1F, 4, 5 ; $B8
map_const ROUTE_15_GATE_2F, 4, 4 ; $B9
map_const ROUTE_16_GATE_1F, 4, 7 ; $BA
map_const ROUTE_16_GATE_2F, 4, 4 ; $BB
map_const ROUTE_16_FLY_HOUSE, 4, 4 ; $BC
map_const ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; $BD
map_const ROUTE_18_GATE_1F, 4, 5 ; $BE
map_const ROUTE_18_GATE_2F, 4, 4 ; $BF
map_const SEAFOAM_ISLANDS_1F, 15, 9 ; $C0
map_const ROUTE_22_GATE, 5, 4 ; $C1
map_const VICTORY_ROAD_2F, 15, 9 ; $C2
map_const ROUTE_12_GATE_2F, 4, 4 ; $C3
map_const VERMILION_TRADE_HOUSE, 4, 4 ; $C4
map_const DIGLETTS_CAVE, 20, 18 ; $C5
map_const VICTORY_ROAD_3F, 15, 9 ; $C6
map_const ROCKET_HIDEOUT_B1F, 15, 14 ; $C7
map_const ROCKET_HIDEOUT_B2F, 15, 14 ; $C8
map_const ROCKET_HIDEOUT_B3F, 15, 14 ; $C9
map_const ROCKET_HIDEOUT_B4F, 15, 12 ; $CA
map_const ROCKET_HIDEOUT_ELEVATOR, 3, 4 ; $CB
map_const UNUSED_MAP_CC, 0, 0 ; $CC
map_const UNUSED_MAP_CD, 0, 0 ; $CD
map_const UNUSED_MAP_CE, 0, 0 ; $CE
map_const SILPH_CO_2F, 15, 9 ; $CF
map_const SILPH_CO_3F, 15, 9 ; $D0
map_const SILPH_CO_4F, 15, 9 ; $D1
map_const SILPH_CO_5F, 15, 9 ; $D2
map_const SILPH_CO_6F, 13, 9 ; $D3
map_const SILPH_CO_7F, 13, 9 ; $D4
map_const SILPH_CO_8F, 13, 9 ; $D5
map_const POKEMON_MANSION_2F, 15, 14 ; $D6
map_const POKEMON_MANSION_3F, 15, 9 ; $D7
map_const POKEMON_MANSION_B1F, 15, 14 ; $D8
map_const SAFARI_ZONE_EAST, 15, 13 ; $D9
map_const SAFARI_ZONE_NORTH, 20, 18 ; $DA
map_const SAFARI_ZONE_WEST, 15, 13 ; $DB
map_const SAFARI_ZONE_CENTER, 15, 13 ; $DC
map_const SAFARI_ZONE_CENTER_REST_HOUSE, 4, 4 ; $DD
map_const SAFARI_ZONE_SECRET_HOUSE, 4, 4 ; $DE
map_const SAFARI_ZONE_WEST_REST_HOUSE, 4, 4 ; $DF
map_const SAFARI_ZONE_EAST_REST_HOUSE, 4, 4 ; $E0
map_const SAFARI_ZONE_NORTH_REST_HOUSE, 4, 4 ; $E1
map_const CERULEAN_CAVE_2F, 15, 9 ; $E2
map_const CERULEAN_CAVE_B1F, 15, 9 ; $E3
map_const CERULEAN_CAVE_1F, 15, 9 ; $E4
map_const NAME_RATERS_HOUSE, 4, 4 ; $E5
map_const CERULEAN_BADGE_HOUSE, 4, 4 ; $E6
map_const UNUSED_MAP_E7, 0, 0 ; $E7
map_const ROCK_TUNNEL_B1F, 20, 18 ; $E8
map_const SILPH_CO_9F, 13, 9 ; $E9
map_const SILPH_CO_10F, 8, 9 ; $EA
map_const SILPH_CO_11F, 9, 9 ; $EB
map_const SILPH_CO_ELEVATOR, 2, 2 ; $EC
map_const UNUSED_MAP_ED, 0, 0 ; $ED
map_const UNUSED_MAP_EE, 0, 0 ; $EE
map_const TRADE_CENTER, 5, 4 ; $EF
map_const COLOSSEUM, 5, 4 ; $F0
map_const UNUSED_MAP_F1, 0, 0 ; $F1
map_const UNUSED_MAP_F2, 0, 0 ; $F2
map_const UNUSED_MAP_F3, 0, 0 ; $F3
map_const UNUSED_MAP_F4, 0, 0 ; $F4
map_const LORELEIS_ROOM, 5, 6 ; $F5
map_const BRUNOS_ROOM, 5, 6 ; $F6
map_const AGATHAS_ROOM, 5, 6 ; $F7
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

View file

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

View file

@ -1,4 +1,4 @@
; spritestatedata1 struct members (see macros/wram.asm)
; spritestatedata1 struct members (see macros/ram.asm)
const_def
const SPRITESTATEDATA1_PICTUREID ; 0
const SPRITESTATEDATA1_MOVEMENTSTATUS ; 1
@ -16,9 +16,9 @@
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)
; spritestatedata2 struct members (see macros/ram.asm)
const_def
const SPRITESTATEDATA2_WALKANIMATIONCOUNTER ; 0
const SPRITESTATEDATA2_01 ; 1
@ -36,22 +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
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

View file

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

View file

@ -1,9 +1,18 @@
; Boolean checks
FALSE EQU 0
TRUE EQU 1
DEF FALSE EQU 0
DEF TRUE EQU 1
; flag operations
const_def
const FLAG_RESET ; 0
const FLAG_SET ; 1
const FLAG_TEST ; 2
; wOptions
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
const BIT_BATTLE_ANIMATION ; 7

View file

@ -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)
@ -45,94 +45,97 @@ FIRST_SE_ID EQU const_value
; subanimations that are part of move animations
; SubanimationPointers indexes (see data/battle_anims/subanimations.asm)
; The 0 or 1 in the name of a subanim indicates whether to use tileset 0 or 1 data/moves/animations.asm.
; "Both" indicates either can be used for different images using the same animation.
const_def
const SUBANIM_00
const SUBANIM_01
const SUBANIM_02
const SUBANIM_03
const SUBANIM_04
const SUBANIM_05
const SUBANIM_06
const SUBANIM_07
const SUBANIM_08
const SUBANIM_09
const SUBANIM_0A
const SUBANIM_0B
const SUBANIM_0C
const SUBANIM_0D
const SUBANIM_0E
const SUBANIM_0F
const SUBANIM_10
const SUBANIM_11
const SUBANIM_12
const SUBANIM_13
const SUBANIM_14
const SUBANIM_15
const SUBANIM_16
const SUBANIM_17
const SUBANIM_18
const SUBANIM_19
const SUBANIM_1A
const SUBANIM_1B
const SUBANIM_1C
const SUBANIM_1D
const SUBANIM_1E
const SUBANIM_1F
const SUBANIM_20
const SUBANIM_21
const SUBANIM_22
const SUBANIM_23
const SUBANIM_24
const SUBANIM_25
const SUBANIM_26
const SUBANIM_27
const SUBANIM_28
const SUBANIM_29
const SUBANIM_2A
const SUBANIM_2B
const SUBANIM_2C
const SUBANIM_2D
const SUBANIM_2E
const SUBANIM_2F
const SUBANIM_30
const SUBANIM_31
const SUBANIM_32
const SUBANIM_33
const SUBANIM_34
const SUBANIM_35
const SUBANIM_36
const SUBANIM_37
const SUBANIM_38
const SUBANIM_39
const SUBANIM_3A
const SUBANIM_3B
const SUBANIM_3C
const SUBANIM_3D
const SUBANIM_3E
const SUBANIM_3F
const SUBANIM_40
const SUBANIM_41
const SUBANIM_42
const SUBANIM_43
const SUBANIM_44
const SUBANIM_45
const SUBANIM_46
const SUBANIM_47
const SUBANIM_48
const SUBANIM_49
const SUBANIM_4A
const SUBANIM_4B
const SUBANIM_4C
const SUBANIM_4D
const SUBANIM_4E
const SUBANIM_4F
const SUBANIM_50
const SUBANIM_51
const SUBANIM_52
const SUBANIM_53
const SUBANIM_54
const SUBANIM_55
NUM_SUBANIMS EQU const_value
const SUBANIM_0_STAR
const SUBANIM_0_STAR_TWICE
const SUBANIM_0_STAR_THRICE
const SUBANIM_0_STAR_DESCENDING
const SUBANIM_1_STAR_BIG_MOVING
const SUBANIM_1_STAR_BIG
const SUBANIM_0_BALL_TOSS_HIGH
const SUBANIM_0_BALL_TOSS_MIDDLE
const SUBANIM_0_BALL_TOSS_LOW
const SUBANIM_0_BALL_SHAKE_ENEMY
const SUBANIM_0_BALL_POOF_ENEMY
const SUBANIM_0_BALL_BLOCK
const SUBANIM_1_FLAME_COLUMN_1
const SUBANIM_1_FLAME_COLUMN_2
const SUBANIM_1_FLAME_COLUMN_3
const SUBANIM_0_SCRATCHES
const SUBANIM_1_TORNADO
const SUBANIM_1_FLAMES
const SUBANIM_0_HEART_1_MUSIC
const SUBANIM_1_BLOB_TOSS
const SUBANIM_1_BLOB_DRIP_ENEMY
const SUBANIM_1_SHOUT
const SUBANIM_0_SLICE
const SUBANIM_0_BIRDIES_CIRCLING_ENEMY
const SUBANIM_1_SWORDS_CIRCLING
const SUBANIM_1_CLOUD_TOSS
const SUBANIM_0_WATER_COLUMNS
const SUBANIM_1_SEED_TOSS
const SUBANIM_1_SEED_LAND
const SUBANIM_0_ROCKS_LIFT
const SUBANIM_0_ROCKS_TOSS
const SUBANIM_1_FLAME_BEAM
const SUBANIM_1_FLAME_STAR
const SUBANIM_0_CIRCLES_1_SQUARES_CENTERING_ENEMY
const SUBANIM_0_CIRCLE_1_SQUARE_TOSS_BACK
const SUBANIM_0_BIND
const SUBANIM_0_STATUS_PARALYZED
const SUBANIM_0_STATUS_CONFUSED
const SUBANIM_0_STATUS_CONFUSED_ENEMY
const SUBANIM_0_STATUS_POISONED
const SUBANIM_1_SAND
const SUBANIM_1_LIGHTNING_BALL
const SUBANIM_0_SLICE_BOTH_SIDES
const SUBANIM_1_LIGHTNING
const SUBANIM_0_WATER_DROPLETS
const SUBANIM_0_CIRCLES_CENTERING
const SUBANIM_0_BEAM
const SUBANIM_0_ICE_RISE
const SUBANIM_0_ROCKS_FALL_ENEMY
const SUBANIM_0_SOUND_WAVE
const SUBANIM_0_CIRCLE_1_SQUARE_HALF_TOSS ; unused
const SUBANIM_1_BARRIER
const SUBANIM_1_SELFDESTRUCT
const SUBANIM_0_WATER_BUBBLES
const SUBANIM_0_CIRCLES_FALLING
const SUBANIM_0_STRING_SHOT
const SUBANIM_0_ICE_FALL
const SUBANIM_0_CIRCLE_1_SQUARE_APPEARS ; unused
const SUBANIM_0_STATUS_SLEEP
const SUBANIM_0_STATUS_SLEEP_ENEMY
const SUBANIM_0_WATER_1_FIRE_BARRIER ; unused
const SUBANIM_0_WATER_1_FIRE_GEYSER ; unused
const SUBANIM_1_STAR_BIG_TOSS
const SUBANIM_1_STARS_SMALL_TOSS
const SUBANIM_1_MUSIC_CIRCLING_ENEMY
const SUBANIM_1_CIRCLE_BLACK_TOSS
const SUBANIM_1_EXPLOSION_SMALL_ENEMY
const SUBANIM_0_CIRCLE_1_SQUARE_CLOSING
const SUBANIM_1_LEAVES_TOSS
const SUBANIM_0_HORN_JAB_TWICE
const SUBANIM_0_HORN_JAB_THRICE
const SUBANIM_0_BALL_POOF
const SUBANIM_2_TRADE_BALL_DROP
const SUBANIM_2_TRADE_BALL_SHAKE
const SUBANIM_2_TRADE_BALL_APPEAR
const SUBANIM_2_TRADE_BALL_POOF
const SUBANIM_0_EGG_SHAKING
const SUBANIM_1_TRIANGLE_TOSS
const SUBANIM_1_SPHERE_BIG
const SUBANIM_1_SPHERE_BIG_RISE
const SUBANIM_1_SPHERE_BIG_FALL
const SUBANIM_0_SHELL
const SUBANIM_0_COIN_BOUNCE
const SUBANIM_0_SAFARI_ROCK
const SUBANIM_0_SAFARI_BAIT
const SUBANIM_0_STAR_HIGH
DEF NUM_SUBANIMS EQU const_value
; types of subanimations
const_def
@ -268,7 +271,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 +453,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

View file

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

View file

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

View file

@ -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
const_def 1
@ -219,4 +219,4 @@
const SFX_POKEFLUTE_IN_BATTLE
SFX_STOP_ALL_MUSIC EQU $ff
DEF SFX_STOP_ALL_MUSIC EQU $ff

View file

@ -1,17 +1,17 @@
; 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_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_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)

View file

@ -4,10 +4,10 @@
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
; pal/blk packets
; 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_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)
@ -70,4 +70,4 @@ SET_PAL_DEFAULT EQU $ff
const PAL_BADGE ; $22
const PAL_CAVE ; $23
const PAL_GAMEFREAK ; $24
NUM_SGB_PALS EQU const_value
DEF NUM_SGB_PALS EQU const_value

View file

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

View file

@ -198,12 +198,12 @@
const WEEPINBELL ; $BD
const VICTREEBEL ; $BE
NUM_POKEMON_INDEXES EQU const_value - 1
DEF NUM_POKEMON_INDEXES EQU const_value - 1
; starters
STARTER1 EQU CHARMANDER
STARTER2 EQU SQUIRTLE
STARTER3 EQU BULBASAUR
DEF STARTER1 EQU CHARMANDER
DEF STARTER2 EQU SQUIRTLE
DEF STARTER3 EQU BULBASAUR
; ghost Marowak in Pokémon Tower
RESTLESS_SOUL EQU MAROWAK
DEF RESTLESS_SOUL EQU MAROWAK

View file

@ -1,37 +1,68 @@
; 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_struct members (see macros/ram.asm)
rsreset
DEF MON_SPECIES rb
DEF MON_HP rw
DEF MON_BOX_LEVEL rb
DEF MON_STATUS rb
DEF MON_TYPE rw
rsset MON_TYPE
DEF MON_TYPE1 rb
DEF MON_TYPE2 rb
DEF MON_CATCH_RATE rb
DEF MON_MOVES rb NUM_MOVES
DEF MON_OTID rw
DEF MON_EXP rb 3
DEF MON_HP_EXP rw
DEF MON_ATK_EXP rw
DEF MON_DEF_EXP rw
DEF MON_SPD_EXP rw
DEF MON_SPC_EXP rw
DEF MON_DVS rw
DEF MON_PP rb NUM_MOVES
DEF BOXMON_STRUCT_LENGTH EQU _RS
DEF MON_LEVEL rb
DEF MON_STATS rw NUM_STATS
rsset MON_STATS
DEF MON_MAXHP rw
DEF MON_ATK rw
DEF MON_DEF rw
DEF MON_SPD rw
DEF MON_SPC rw
DEF PARTYMON_STRUCT_LENGTH 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 +83,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 +96,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

View file

@ -5,24 +5,24 @@
const SMILE_BUBBLE ; 2
; 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)
const_def
const TRADE_FOR_TERRY
const TRADE_FOR_MARCEL
const TRADE_FOR_CHIKUCHIKU
const TRADE_FOR_CHIKUCHIKU ; unused
const TRADE_FOR_SAILOR
const TRADE_FOR_DUX
const TRADE_FOR_MARC
@ -30,13 +30,13 @@ 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)
const_def
const TRADE_DIALOGSET_CASUAL
const TRADE_DIALOGSET_POLITE
const TRADE_DIALOGSET_EVOLUTION
const TRADE_DIALOGSET_HAPPY
; badges
@ -50,10 +50,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

View file

@ -1,27 +1,31 @@
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 SERIAL_PREAMBLE_LENGTH EQU 6
DEF SERIAL_RN_PREAMBLE_LENGTH EQU 7
DEF SERIAL_RNS_LENGTH EQU 10
LINKBATTLE_RUN EQU $F
LINKBATTLE_STRUGGLE EQU $E
LINKBATTLE_NO_ACTION EQU $D
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
DEF LINKBATTLE_RUN EQU $F
DEF LINKBATTLE_STRUGGLE EQU $E
DEF LINKBATTLE_NO_ACTION EQU $D

View file

@ -62,7 +62,7 @@
const SPRITE_BRUNO ; $3a
const SPRITE_LORELEI ; $3b
const SPRITE_SEEL ; $3c
FIRST_STILL_SPRITE EQU const_value
DEF FIRST_STILL_SPRITE EQU const_value
const SPRITE_POKE_BALL ; $3d
const SPRITE_FOSSIL ; $3e
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_2 ; $47
const SPRITE_GAMBLER_ASLEEP ; $48
NUM_SPRITES EQU const_value - 1
DEF NUM_SPRITES EQU const_value - 1

View file

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

View file

@ -0,0 +1,41 @@
; sprite set ids
; indexes for SpriteSets (see data/maps/sprite_sets.asm)
; values for MapSpriteSets and SplitMapSpriteSets (see data/maps/sprite_sets.asm)
const_def 1
const SPRITESET_PALLET_VIRIDIAN ; 01
const SPRITESET_PEWTER_CERULEAN ; 02
const SPRITESET_LAVENDER ; 03
const SPRITESET_VERMILION ; 04
const SPRITESET_CELADON ; 05
const SPRITESET_INDIGO ; 06
const SPRITESET_SAFFRON ; 07
const SPRITESET_SILENCE_BRIDGE ; 08
const SPRITESET_CYCLING_ROAD ; 09
const SPRITESET_FUCHSIA ; 0a
DEF NUM_SPRITE_SETS EQU const_value - 1
; split sprite set ids
; indexes for SplitMapSpriteSets (see data/maps/sprite_sets.asm)
; values for MapSpriteSets (see data/maps/sprite_sets.asm)
const_next $f1
DEF FIRST_SPLIT_SET EQU const_value
const SPLITSET_ROUTE_2 ; f1
const SPLITSET_ROUTE_10 ; f2
const SPLITSET_ROUTE_11 ; f3
const SPLITSET_ROUTE_12 ; f4
const SPLITSET_ROUTE_15 ; f5
const SPLITSET_ROUTE_16 ; f6
const SPLITSET_ROUTE_18 ; f7
const SPLITSET_ROUTE_20 ; f8
const SPLITSET_ROUTE_5 ; f9
const SPLITSET_ROUTE_6 ; fa
const SPLITSET_ROUTE_7 ; fb
const SPLITSET_ROUTE_8 ; fc
DEF NUM_SPLIT_SETS EQU const_value - FIRST_SPLIT_SET
; split directions
DEF EAST_WEST EQU 1
DEF NORTH_SOUTH EQU 2
; each sprite set has 9 walking sprites and 2 still sprites
DEF SPRITE_SET_LENGTH EQU 9 + 2

View file

@ -1,5 +1,6 @@
NAME_LENGTH EQU 11
ITEM_NAME_LENGTH EQU 13
DEF NAME_LENGTH EQU 11
DEF ITEM_NAME_LENGTH EQU 13
DEF NAME_BUFFER_LENGTH EQU 20
; PrintNumber
const_def 5
@ -7,9 +8,9 @@ ITEM_NAME_LENGTH EQU 13
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
@ -18,4 +19,4 @@ LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
const TEXT_REPEL_WORE_OFF ; $d2
const TEXT_SAFARI_GAME_OVER ; $d3
TEXT_START_MENU EQU $00
DEF TEXT_START_MENU EQU $00

View file

@ -25,4 +25,4 @@
const CLUB ; 21
const FACILITY ; 22
const PLATEAU ; 23
NUM_TILESETS EQU const_value
DEF NUM_TILESETS EQU const_value

View file

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

View file

@ -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
@ -12,9 +12,11 @@ PHYSICAL EQU const_value
const BUG ; $07
const GHOST ; $08
DEF UNUSED_TYPES EQU const_value
const_next 20
DEF UNUSED_TYPES_END EQU const_value
SPECIAL EQU const_value
DEF SPECIAL EQU const_value
const FIRE ; $14
const WATER ; $15
const GRASS ; $16
@ -23,4 +25,4 @@ SPECIAL EQU const_value
const ICE ; $19
const DRAGON ; $1A
NUM_TYPES EQU const_value
DEF NUM_TYPES EQU const_value