RGBDS syntax updates (#905)

New MACRO and DEF syntax
This commit is contained in:
vulcandth 2022-06-06 16:25:42 -05:00 committed by GitHub
parent a4d346cc8c
commit 3648afda16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
179 changed files with 2546 additions and 2545 deletions

View File

@ -79,19 +79,19 @@ hPascalCase: ; hram
PascalCase: ; rom
; Some constants are also prefixed
rBGP EQU $ff47 ; hardware register
DEF rBGP EQU $ff47 ; hardware register
; Most other constants should be upper case
UPPER_CASE EQU 1
DEF UPPER_CASE EQU 1
; Long lists of constants should be aligned
SHORT_CONSTANT EQU 1
LONGER_CONSTANT EQU 2
PRETTY_LONG_CONSTANT EQU 3
TINY EQU 4
DEF SHORT_CONSTANT EQU 1
DEF LONGER_CONSTANT EQU 2
DEF PRETTY_LONG_CONSTANT EQU 3
DEF TINY EQU 4
BUT_ONLY_RELATED_CONSTANTS EQU 5
DEF BUT_ONLY_RELATED_CONSTANTS EQU 5
```
@ -103,12 +103,12 @@ BUT_ONLY_RELATED_CONSTANTS EQU 5
SECTION "section", ROMX
INCLUDE "filename"
INCBIN "filename"
my_macro: MACRO
MACRO my_macro
nop
ENDM
TEST EQUS "test"
DEF TEST EQUS "test"
PURGE TEST
TEST EQU 2
DEF TEST EQU 2
; data macros should be lowercase
db 1
@ -135,7 +135,7 @@ endr
```asm
when_in_doubt_lowercase: MACRO
MACRO when_in_doubt_lowercase
; only shift if it's required or more readable
@ -158,7 +158,7 @@ endr
ENDM
UPPER_CASE_IS_OK_SOMETIMES: MACRO
MACRO UPPER_CASE_IS_OK_SOMETIMES
; but I can't think of any examples besides ACRONYMS

View File

@ -13,7 +13,7 @@
const A_ ; a
const A# ; b
const B_ ; c
NUM_NOTES EQU const_value - 1
DEF NUM_NOTES EQU const_value - 1
; channel
; ChannelPointers indexes (see audio/engine.asm)
@ -22,60 +22,60 @@ NUM_NOTES EQU const_value - 1
const CHAN2 ; 1
const CHAN3 ; 2
const CHAN4 ; 3
NUM_MUSIC_CHANS EQU const_value
DEF NUM_MUSIC_CHANS EQU const_value
const CHAN5 ; 4
const CHAN6 ; 5
const CHAN7 ; 6
const CHAN8 ; 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
; channel_struct members (see macros/wram.asm)
rsreset
CHANNEL_MUSIC_ID rw
CHANNEL_MUSIC_BANK rb
CHANNEL_FLAGS1 rb
CHANNEL_FLAGS2 rb
CHANNEL_FLAGS3 rb
CHANNEL_MUSIC_ADDRESS rw
CHANNEL_LAST_MUSIC_ADDRESS rw
rb_skip 2
CHANNEL_NOTE_FLAGS rb
CHANNEL_CONDITION rb
CHANNEL_DUTY_CYCLE rb
CHANNEL_VOLUME_ENVELOPE rb
CHANNEL_FREQUENCY rw
CHANNEL_PITCH rb
CHANNEL_OCTAVE rb
CHANNEL_TRANSPOSITION rb
CHANNEL_NOTE_DURATION rb
CHANNEL_FIELD16 rb
rb_skip
CHANNEL_LOOP_COUNT rb
CHANNEL_TEMPO rw
CHANNEL_TRACKS rb
CHANNEL_DUTY_CYCLE_PATTERN rb
CHANNEL_VIBRATO_DELAY_COUNT rb
CHANNEL_VIBRATO_DELAY rb
CHANNEL_VIBRATO_EXTENT rb
CHANNEL_VIBRATO_RATE rb
CHANNEL_PITCH_SLIDE_TARGET rw
CHANNEL_PITCH_SLIDE_AMOUNT rb
CHANNEL_PITCH_SLIDE_AMOUNT_FRACTION rb
CHANNEL_FIELD25 rb
rb_skip
CHANNEL_PITCH_OFFSET rw
CHANNEL_FIELD29 rb
CHANNEL_FIELD2A rw
CHANNEL_FIELD2C rb
CHANNEL_NOTE_LENGTH rb
CHANNEL_FIELD2E rb
CHANNEL_FIELD2F rb
CHANNEL_FIELD30 rb
rb_skip
CHANNEL_STRUCT_LENGTH EQU _RS
DEF CHANNEL_MUSIC_ID rw
DEF CHANNEL_MUSIC_BANK rb
DEF CHANNEL_FLAGS1 rb
DEF CHANNEL_FLAGS2 rb
DEF CHANNEL_FLAGS3 rb
DEF CHANNEL_MUSIC_ADDRESS rw
DEF CHANNEL_LAST_MUSIC_ADDRESS rw
rb_skip 2
DEF CHANNEL_NOTE_FLAGS rb
DEF CHANNEL_CONDITION rb
DEF CHANNEL_DUTY_CYCLE rb
DEF CHANNEL_VOLUME_ENVELOPE rb
DEF CHANNEL_FREQUENCY rw
DEF CHANNEL_PITCH rb
DEF CHANNEL_OCTAVE rb
DEF CHANNEL_TRANSPOSITION rb
DEF CHANNEL_NOTE_DURATION rb
DEF CHANNEL_FIELD16 rb
rb_skip
DEF CHANNEL_LOOP_COUNT rb
DEF CHANNEL_TEMPO rw
DEF CHANNEL_TRACKS rb
DEF CHANNEL_DUTY_CYCLE_PATTERN rb
DEF CHANNEL_VIBRATO_DELAY_COUNT rb
DEF CHANNEL_VIBRATO_DELAY rb
DEF CHANNEL_VIBRATO_EXTENT rb
DEF CHANNEL_VIBRATO_RATE rb
DEF CHANNEL_PITCH_SLIDE_TARGET rw
DEF CHANNEL_PITCH_SLIDE_AMOUNT rb
DEF CHANNEL_PITCH_SLIDE_AMOUNT_FRACTION rb
DEF CHANNEL_FIELD25 rb
rb_skip
DEF CHANNEL_PITCH_OFFSET rw
DEF CHANNEL_FIELD29 rb
DEF CHANNEL_FIELD2A rw
DEF CHANNEL_FIELD2C rb
DEF CHANNEL_NOTE_LENGTH rb
DEF CHANNEL_FIELD2E rb
DEF CHANNEL_FIELD2F rb
DEF CHANNEL_FIELD30 rb
rb_skip
DEF CHANNEL_STRUCT_LENGTH EQU _RS
NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
DEF NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
; Flags1
const_def
@ -113,22 +113,22 @@ NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
const NOTE_VIBRATO_OVERRIDE ; 6
; wVolume
VOLUME_SO1_F EQU 3
VOLUME_SO2_F EQU 7
VOLUME_SO1_LEVEL EQU %00000111
VOLUME_SO2_LEVEL EQU %01110000
MAX_VOLUME EQU $77
DEF VOLUME_SO1_F EQU 3
DEF VOLUME_SO2_F EQU 7
DEF VOLUME_SO1_LEVEL EQU %00000111
DEF VOLUME_SO2_LEVEL EQU %01110000
DEF MAX_VOLUME EQU $77
; wSoundInput
SOUND_INPUT_CH1_F EQU 0
SOUND_INPUT_CH2_F EQU 1
SOUND_INPUT_CH3_F EQU 2
SOUND_INPUT_CH4_F EQU 3
SOUND_INPUT_GLOBAL_F EQU 7
DEF SOUND_INPUT_CH1_F EQU 0
DEF SOUND_INPUT_CH2_F EQU 1
DEF SOUND_INPUT_CH3_F EQU 2
DEF SOUND_INPUT_CH4_F EQU 3
DEF SOUND_INPUT_GLOBAL_F EQU 7
; wLowHealthAlarm
DANGER_PITCH_F EQU 4
DANGER_ON_F EQU 7
DEF DANGER_PITCH_F EQU 4
DEF DANGER_ON_F EQU 7
; wMusicFade
MUSIC_FADE_IN_F EQU 7
DEF MUSIC_FADE_IN_F EQU 7

View File

@ -1,32 +1,32 @@
; battle_anim_struct members (see macros/wram.asm)
rsreset
BATTLEANIMSTRUCT_INDEX rb
BATTLEANIMSTRUCT_OAMFLAGS rb
BATTLEANIMSTRUCT_FIX_Y rb
BATTLEANIMSTRUCT_FRAMESET_ID rb
BATTLEANIMSTRUCT_FUNCTION rb
BATTLEANIMSTRUCT_PALETTE rb
BATTLEANIMSTRUCT_TILEID rb
BATTLEANIMOBJ_LENGTH EQU _RS - 1 ; discount BATTLEANIMSTRUCT_INDEX
BATTLEANIMSTRUCT_XCOORD rb
BATTLEANIMSTRUCT_YCOORD rb
BATTLEANIMSTRUCT_XOFFSET rb
BATTLEANIMSTRUCT_YOFFSET rb
BATTLEANIMSTRUCT_PARAM rb
BATTLEANIMSTRUCT_DURATION rb
BATTLEANIMSTRUCT_FRAME rb
BATTLEANIMSTRUCT_JUMPTABLE_INDEX rb
BATTLEANIMSTRUCT_VAR1 rb
BATTLEANIMSTRUCT_VAR2 rb
rb_skip 7
BATTLEANIMSTRUCT_LENGTH EQU _RS
NUM_ANIM_OBJECTS EQU 10 ; see wActiveAnimObjects
DEF BATTLEANIMSTRUCT_INDEX rb
DEF BATTLEANIMSTRUCT_OAMFLAGS rb
DEF BATTLEANIMSTRUCT_FIX_Y rb
DEF BATTLEANIMSTRUCT_FRAMESET_ID rb
DEF BATTLEANIMSTRUCT_FUNCTION rb
DEF BATTLEANIMSTRUCT_PALETTE rb
DEF BATTLEANIMSTRUCT_TILEID rb
DEF BATTLEANIMOBJ_LENGTH EQU _RS - 1 ; discount BATTLEANIMSTRUCT_INDEX
DEF BATTLEANIMSTRUCT_XCOORD rb
DEF BATTLEANIMSTRUCT_YCOORD rb
DEF BATTLEANIMSTRUCT_XOFFSET rb
DEF BATTLEANIMSTRUCT_YOFFSET rb
DEF BATTLEANIMSTRUCT_PARAM rb
DEF BATTLEANIMSTRUCT_DURATION rb
DEF BATTLEANIMSTRUCT_FRAME rb
DEF BATTLEANIMSTRUCT_JUMPTABLE_INDEX rb
DEF BATTLEANIMSTRUCT_VAR1 rb
DEF BATTLEANIMSTRUCT_VAR2 rb
rb_skip 7
DEF BATTLEANIMSTRUCT_LENGTH EQU _RS
DEF NUM_ANIM_OBJECTS EQU 10 ; see wActiveAnimObjects
; wBattleAnimTileDict size (see wram.asm)
NUM_BATTLEANIMTILEDICT_ENTRIES EQU 5
DEF NUM_BATTLEANIMTILEDICT_ENTRIES EQU 5
; Start tile for battle animation graphics
BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
DEF BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
; BattleAnimObjects indexes (see data/battle_anims/objects.asm)
const_def
@ -218,7 +218,7 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_PLAYERHEAD_1ROW
const ANIM_OBJ_ENEMYFEET_2ROW
const ANIM_OBJ_PLAYERHEAD_2ROW
NUM_ANIM_OBJS EQU const_value
DEF NUM_ANIM_OBJS EQU const_value
; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm)
const_def
@ -302,7 +302,7 @@ NUM_ANIM_OBJS EQU const_value
const BATTLEANIMFUNC_ANCIENT_POWER
const BATTLEANIMFUNC_ROCK_SMASH
const BATTLEANIMFUNC_COTTON
NUM_BATTLEANIMFUNCS EQU const_value
DEF NUM_BATTLEANIMFUNCS EQU const_value
; BattleAnimFrameData indexes (see data/battle_anims/framesets.asm)
const_def
@ -491,7 +491,7 @@ NUM_BATTLEANIMFUNCS EQU const_value
const BATTLEANIMFRAMESET_B6
const BATTLEANIMFRAMESET_B7
const BATTLEANIMFRAMESET_B8
NUM_BATTLEANIMFRAMESETS EQU const_value
DEF NUM_BATTLEANIMFRAMESETS EQU const_value
; BattleAnimOAMData indexes (see data/battle_anims/oam.asm)
const_def
@ -711,7 +711,7 @@ NUM_BATTLEANIMFRAMESETS EQU const_value
const BATTLEANIMOAMSET_D5
const BATTLEANIMOAMSET_D6
const BATTLEANIMOAMSET_D7
NUM_BATTLEANIMOAMSETS EQU const_value
DEF NUM_BATTLEANIMOAMSETS EQU const_value
; BattleBGEffects indexes (see engine/battle_anims/bg_effects.asm)
const_def 1
@ -768,7 +768,7 @@ NUM_BATTLEANIMOAMSETS EQU const_value
const ANIM_BG_VIBRATE_MON
const ANIM_BG_WOBBLE_PLAYER
const ANIM_BG_WOBBLE_SCREEN
NUM_ANIM_BGS EQU const_value - 1
DEF NUM_ANIM_BGS EQU const_value - 1
; wBattleAnimTileDict keys (see wram.asm)
; AnimObjGFX indexes (see data/battle_anims/object_gfx.asm)
@ -814,16 +814,16 @@ NUM_ANIM_BGS EQU const_value - 1
const ANIM_GFX_AEROBLAST
const ANIM_GFX_PLAYERHEAD
const ANIM_GFX_ENEMYFEET
NUM_ANIM_GFX EQU const_value - 1
DEF NUM_ANIM_GFX EQU const_value - 1
; battle_bg_effect struct members (see macros/wram.asm)
rsreset
BG_EFFECT_STRUCT_FUNCTION rb
BG_EFFECT_STRUCT_JT_INDEX rb
BG_EFFECT_STRUCT_BATTLE_TURN rb
BG_EFFECT_STRUCT_PARAM rb
BG_EFFECT_STRUCT_LENGTH EQU _RS
NUM_BG_EFFECTS EQU 5 ; see wActiveBGEffects
DEF BG_EFFECT_STRUCT_FUNCTION rb
DEF BG_EFFECT_STRUCT_JT_INDEX rb
DEF BG_EFFECT_STRUCT_BATTLE_TURN rb
DEF BG_EFFECT_STRUCT_PARAM rb
DEF BG_EFFECT_STRUCT_LENGTH EQU _RS
DEF NUM_BG_EFFECTS EQU 5 ; see wActiveBGEffects
; anim_bgeffect battle turn values for some effects
const_def

View File

@ -1,31 +1,31 @@
; significant level values
MAX_LEVEL EQU 100
MIN_LEVEL EQU 2
EGG_LEVEL EQU 5
DEF MAX_LEVEL EQU 100
DEF MIN_LEVEL EQU 2
DEF EGG_LEVEL EQU 5
; maximum moves known per mon
NUM_MOVES EQU 4
DEF NUM_MOVES EQU 4
; significant stat values
BASE_STAT_LEVEL EQU 7
MAX_STAT_LEVEL EQU 13
DEF BASE_STAT_LEVEL EQU 7
DEF MAX_STAT_LEVEL EQU 13
; turns that sleep lasts
REST_SLEEP_TURNS EQU 2
TREEMON_SLEEP_TURNS EQU 7
DEF REST_SLEEP_TURNS EQU 2
DEF TREEMON_SLEEP_TURNS EQU 7
; default move priority
BASE_PRIORITY EQU 1
DEF BASE_PRIORITY EQU 1
; 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
; enemy AI behavior
BASE_AI_SWITCH_SCORE EQU 10
DEF BASE_AI_SWITCH_SCORE EQU 10
; wPlayerStatLevels and wEnemyStatLevels indexes (see wram.asm)
; GetStatName arguments (see data/battle/stat_names.asm)
@ -38,18 +38,18 @@ BASE_AI_SWITCH_SCORE EQU 10
const ACCURACY
const EVASION
const ABILITY ; used for BattleCommand_Curse
NUM_LEVEL_STATS EQU const_value
DEF NUM_LEVEL_STATS EQU const_value
; move struct members (see data/moves/moves.asm)
rsreset
MOVE_ANIM rb ; 0
MOVE_EFFECT rb ; 1
MOVE_POWER rb ; 2
MOVE_TYPE rb ; 3
MOVE_ACC rb ; 4
MOVE_PP rb ; 5
MOVE_CHANCE rb ; 6
MOVE_LENGTH EQU _RS
DEF MOVE_ANIM rb ; 0
DEF MOVE_EFFECT rb ; 1
DEF MOVE_POWER rb ; 2
DEF MOVE_TYPE rb ; 3
DEF MOVE_ACC rb ; 4
DEF MOVE_PP rb ; 5
DEF MOVE_CHANCE rb ; 6
DEF MOVE_LENGTH EQU _RS
; stat constants
; indexes for:
@ -61,20 +61,20 @@ MOVE_LENGTH EQU _RS
const STAT_DEF
const STAT_SPD
const STAT_SATK
NUM_EXP_STATS EQU const_value - 1
DEF NUM_EXP_STATS EQU const_value - 1
const STAT_SDEF
NUM_STATS EQU const_value - 1
NUM_BATTLE_STATS EQU NUM_STATS - 1 ; don't count HP
DEF NUM_STATS EQU const_value - 1
DEF NUM_BATTLE_STATS EQU NUM_STATS - 1 ; don't count HP
; stat formula constants
STAT_MIN_NORMAL EQU 5
STAT_MIN_HP EQU 10
DEF STAT_MIN_NORMAL EQU 5
DEF STAT_MIN_HP EQU 10
MAX_STAT_VALUE EQU 999
DEF MAX_STAT_VALUE EQU 999
; shiny dvs
ATKDEFDV_SHINY EQU $EA
SPDSPCDV_SHINY EQU $AA
DEF ATKDEFDV_SHINY EQU $EA
DEF SPDSPCDV_SHINY EQU $AA
; battle classes (wBattleMode values)
const_def 1
@ -120,7 +120,7 @@ SPDSPCDV_SHINY EQU $AA
const BATTLE_VARS_LAST_COUNTER_MOVE_OPP
const BATTLE_VARS_LAST_MOVE
const BATTLE_VARS_LAST_MOVE_OPP
NUM_BATTLE_VARS EQU const_value
DEF NUM_BATTLE_VARS EQU const_value
; BattleVarLocations indexes (see home/battle_vars.asm)
const_def
@ -151,17 +151,17 @@ NUM_BATTLE_VARS EQU const_value
const PLAYER_LAST_MOVE
const ENEMY_LAST_MOVE
assert const_value % 2 == 0
NUM_BATTLE_VAR_LOCATION_PAIRS EQU const_value / 2
DEF NUM_BATTLE_VAR_LOCATION_PAIRS EQU const_value / 2
; status condition bit flags
SLP EQU %111 ; 0-7 turns
DEF SLP EQU %111 ; 0-7 turns
const_def 3
const PSN
const BRN
const FRZ
const PAR
ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP
DEF ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP
; wPlayerSubStatus1 or wEnemySubStatus1 bit flags
const_def
@ -260,10 +260,10 @@ ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP
const LOSE
const DRAW
BATTLERESULT_CAUGHT_CELEBI EQU 6
BATTLERESULT_BOX_FULL EQU 7
BATTLERESULT_BITMASK EQU (1 << BATTLERESULT_CAUGHT_CELEBI) | (1 << BATTLERESULT_BOX_FULL)
DEF BATTLERESULT_CAUGHT_CELEBI EQU 6
DEF BATTLERESULT_BOX_FULL EQU 7
DEF BATTLERESULT_BITMASK EQU (1 << BATTLERESULT_CAUGHT_CELEBI) | (1 << BATTLERESULT_BOX_FULL)
; link_battle_record struct
LINK_BATTLE_RECORD_LENGTH EQU 2 + (NAME_LENGTH - 1) + 2 * 3
NUM_LINK_BATTLE_RECORDS EQU 5
DEF LINK_BATTLE_RECORD_LENGTH EQU 2 + (NAME_LENGTH - 1) + 2 * 3
DEF NUM_LINK_BATTLE_RECORDS EQU 5

View File

@ -1,11 +1,11 @@
BATTLETOWER_PARTY_LENGTH EQU 3
BATTLETOWER_STREAK_LENGTH EQU 7
DEF BATTLETOWER_PARTY_LENGTH EQU 3
DEF BATTLETOWER_STREAK_LENGTH EQU 7
BATTLETOWER_NUM_UNIQUE_MON EQU 21
BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70
DEF BATTLETOWER_NUM_UNIQUE_MON EQU 21
DEF BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70
BATTLETOWER_TRAINERDATALENGTH EQU 18 * 2 ; $24
BATTLE_TOWER_STRUCT_LENGTH EQU NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAMED_MON_STRUCT_LENGTH + BATTLETOWER_TRAINERDATALENGTH ; $e0
DEF BATTLETOWER_TRAINERDATALENGTH EQU 18 * 2 ; $24
DEF BATTLE_TOWER_STRUCT_LENGTH EQU NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAMED_MON_STRUCT_LENGTH + BATTLETOWER_TRAINERDATALENGTH ; $e0
; BattleTowerAction setval arguments (see engine/events/battle_tower/battle_tower.asm)
const_def
@ -44,7 +44,7 @@ BATTLE_TOWER_STRUCT_LENGTH EQU NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAME
; BattleTowerAction return values
; - from BATTLETOWERACTION_CHECKMOBILEEVENT
MOBILE_EVENT_OBJECT_GS_BALL EQU $b
DEF MOBILE_EVENT_OBJECT_GS_BALL EQU $b
; BattleTowerText arguments (see engine/events/battle_tower/trainer_text.asm)
const_def 1

View File

@ -1,129 +1,129 @@
; collision permissions (see data/collision/collision_permissions.asm)
LAND_TILE EQU $00
WATER_TILE EQU $01
WALL_TILE EQU $0f
TALK EQU $10
DEF LAND_TILE EQU $00
DEF WATER_TILE EQU $01
DEF WALL_TILE EQU $0f
DEF TALK EQU $10
; collision data types (see data/tilesets/*_collision.asm)
; TileCollisionTable indexes (see data/collision/collision_permissions.asm)
COLL_FLOOR EQU $00
COLL_01 EQU $01 ; garbage
COLL_03 EQU $03 ; garbage
COLL_04 EQU $04 ; garbage
COLL_WALL EQU $07
COLL_CUT_08 EQU $08 ; unused
COLL_TALL_GRASS_10 EQU $10 ; unused
COLL_CUT_TREE EQU $12
COLL_LONG_GRASS EQU $14
COLL_HEADBUTT_TREE EQU $15
COLL_TALL_GRASS EQU $18
COLL_CUT_TREE_1A EQU $1a ; unused
COLL_LONG_GRASS_1C EQU $1c ; unused
COLL_HEADBUTT_TREE_1D EQU $1d ; unused
COLL_WATER_21 EQU $21 ; unused
COLL_ICE EQU $23
COLL_WHIRLPOOL EQU $24
COLL_BUOY EQU $27
COLL_CUT_28 EQU $28 ; garbage
COLL_WATER EQU $29
COLL_ICE_2B EQU $2b ; unused
COLL_WHIRLPOOL_2C EQU $2c ; unused
COLL_WATERFALL_RIGHT EQU $30 ; unused
COLL_WATERFALL_LEFT EQU $31 ; unused
COLL_WATERFALL_UP EQU $32 ; unused
COLL_WATERFALL EQU $33
COLL_CURRENT_RIGHT EQU $38 ; unused
COLL_CURRENT_LEFT EQU $39 ; unused
COLL_CURRENT_UP EQU $3a ; unused
COLL_CURRENT_DOWN EQU $3b ; unused
COLL_BRAKE EQU $40 ; unused
COLL_WALK_RIGHT EQU $41 ; unused
COLL_WALK_LEFT EQU $42 ; unused
COLL_WALK_UP EQU $43 ; unused
COLL_WALK_DOWN EQU $44 ; unused
COLL_BRAKE_45 EQU $45 ; garbage
COLL_BRAKE_46 EQU $46 ; unused
COLL_BRAKE_47 EQU $47 ; unused
COLL_GRASS_48 EQU $48 ; unused
COLL_GRASS_49 EQU $49 ; unused
COLL_GRASS_4A EQU $4a ; garbage
COLL_GRASS_4B EQU $4b ; garbage
COLL_GRASS_4C EQU $4c ; unused
COLL_WALK_RIGHT_ALT EQU $50 ; unused
COLL_WALK_LEFT_ALT EQU $51 ; unused
COLL_WALK_UP_ALT EQU $52 ; unused
COLL_WALK_DOWN_ALT EQU $53 ; unused
COLL_BRAKE_ALT EQU $54 ; unused
COLL_BRAKE_55 EQU $55 ; unused
COLL_BRAKE_56 EQU $56 ; unused
COLL_BRAKE_57 EQU $57 ; unused
COLL_5B EQU $5b ; garbage
COLL_PIT EQU $60
COLL_VIRTUAL_BOY EQU $61 ; garbage
COLL_64 EQU $64 ; garbage
COLL_65 EQU $65 ; garbage
COLL_PIT_68 EQU $68 ; unused
COLL_WARP_CARPET_DOWN EQU $70
COLL_DOOR EQU $71
COLL_LADDER EQU $72
COLL_STAIRCASE_73 EQU $73 ; unused
COLL_CAVE_74 EQU $74 ; unused
COLL_DOOR_75 EQU $75 ; unused
COLL_WARP_CARPET_LEFT EQU $76
COLL_WARP_77 EQU $77 ; unused
COLL_WARP_CARPET_UP EQU $78
COLL_DOOR_79 EQU $79 ; unused
COLL_STAIRCASE EQU $7a
COLL_CAVE EQU $7b
COLL_WARP_PANEL EQU $7c
COLL_DOOR_7D EQU $7d ; unused
COLL_WARP_CARPET_RIGHT EQU $7e
COLL_WARP_7F EQU $7f ; unused
COLL_COUNTER EQU $90
COLL_BOOKSHELF EQU $91
COLL_PC EQU $93
COLL_RADIO EQU $94
COLL_TOWN_MAP EQU $95
COLL_MART_SHELF EQU $96
COLL_TV EQU $97
COLL_COUNTER_98 EQU $98 ; unused
COLL_9C EQU $9c ; garbage
COLL_WINDOW EQU $9d
COLL_INCENSE_BURNER EQU $9f
COLL_HOP_RIGHT EQU $a0
COLL_HOP_LEFT EQU $a1
COLL_HOP_UP EQU $a2 ; unused
COLL_HOP_DOWN EQU $a3
COLL_HOP_DOWN_RIGHT EQU $a4
COLL_HOP_DOWN_LEFT EQU $a5
COLL_HOP_UP_RIGHT EQU $a6 ; unused
COLL_HOP_UP_LEFT EQU $a7 ; unused
COLL_RIGHT_WALL EQU $b0
COLL_LEFT_WALL EQU $b1
COLL_UP_WALL EQU $b2
COLL_DOWN_WALL EQU $b3 ; unused
COLL_DOWN_RIGHT_WALL EQU $b4 ; unused
COLL_DOWN_LEFT_WALL EQU $b5 ; unused
COLL_UP_RIGHT_WALL EQU $b6 ; unused
COLL_UP_LEFT_WALL EQU $b7 ; unused
COLL_RIGHT_BUOY EQU $c0 ; unused
COLL_LEFT_BUOY EQU $c1 ; unused
COLL_UP_BUOY EQU $c2 ; unused
COLL_DOWN_BUOY EQU $c3 ; unused
COLL_DOWN_RIGHT_BUOY EQU $c4 ; unused
COLL_DOWN_LEFT_BUOY EQU $c5 ; unused
COLL_UP_RIGHT_BUOY EQU $c6 ; unused
COLL_UP_LEFT_BUOY EQU $c7 ; unused
COLL_FF EQU $ff ; garbage
DEF COLL_FLOOR EQU $00
DEF COLL_01 EQU $01 ; garbage
DEF COLL_03 EQU $03 ; garbage
DEF COLL_04 EQU $04 ; garbage
DEF COLL_WALL EQU $07
DEF COLL_CUT_08 EQU $08 ; unused
DEF COLL_TALL_GRASS_10 EQU $10 ; unused
DEF COLL_CUT_TREE EQU $12
DEF COLL_LONG_GRASS EQU $14
DEF COLL_HEADBUTT_TREE EQU $15
DEF COLL_TALL_GRASS EQU $18
DEF COLL_CUT_TREE_1A EQU $1a ; unused
DEF COLL_LONG_GRASS_1C EQU $1c ; unused
DEF COLL_HEADBUTT_TREE_1D EQU $1d ; unused
DEF COLL_WATER_21 EQU $21 ; unused
DEF COLL_ICE EQU $23
DEF COLL_WHIRLPOOL EQU $24
DEF COLL_BUOY EQU $27
DEF COLL_CUT_28 EQU $28 ; garbage
DEF COLL_WATER EQU $29
DEF COLL_ICE_2B EQU $2b ; unused
DEF COLL_WHIRLPOOL_2C EQU $2c ; unused
DEF COLL_WATERFALL_RIGHT EQU $30 ; unused
DEF COLL_WATERFALL_LEFT EQU $31 ; unused
DEF COLL_WATERFALL_UP EQU $32 ; unused
DEF COLL_WATERFALL EQU $33
DEF COLL_CURRENT_RIGHT EQU $38 ; unused
DEF COLL_CURRENT_LEFT EQU $39 ; unused
DEF COLL_CURRENT_UP EQU $3a ; unused
DEF COLL_CURRENT_DOWN EQU $3b ; unused
DEF COLL_BRAKE EQU $40 ; unused
DEF COLL_WALK_RIGHT EQU $41 ; unused
DEF COLL_WALK_LEFT EQU $42 ; unused
DEF COLL_WALK_UP EQU $43 ; unused
DEF COLL_WALK_DOWN EQU $44 ; unused
DEF COLL_BRAKE_45 EQU $45 ; garbage
DEF COLL_BRAKE_46 EQU $46 ; unused
DEF COLL_BRAKE_47 EQU $47 ; unused
DEF COLL_GRASS_48 EQU $48 ; unused
DEF COLL_GRASS_49 EQU $49 ; unused
DEF COLL_GRASS_4A EQU $4a ; garbage
DEF COLL_GRASS_4B EQU $4b ; garbage
DEF COLL_GRASS_4C EQU $4c ; unused
DEF COLL_WALK_RIGHT_ALT EQU $50 ; unused
DEF COLL_WALK_LEFT_ALT EQU $51 ; unused
DEF COLL_WALK_UP_ALT EQU $52 ; unused
DEF COLL_WALK_DOWN_ALT EQU $53 ; unused
DEF COLL_BRAKE_ALT EQU $54 ; unused
DEF COLL_BRAKE_55 EQU $55 ; unused
DEF COLL_BRAKE_56 EQU $56 ; unused
DEF COLL_BRAKE_57 EQU $57 ; unused
DEF COLL_5B EQU $5b ; garbage
DEF COLL_PIT EQU $60
DEF COLL_VIRTUAL_BOY EQU $61 ; garbage
DEF COLL_64 EQU $64 ; garbage
DEF COLL_65 EQU $65 ; garbage
DEF COLL_PIT_68 EQU $68 ; unused
DEF COLL_WARP_CARPET_DOWN EQU $70
DEF COLL_DOOR EQU $71
DEF COLL_LADDER EQU $72
DEF COLL_STAIRCASE_73 EQU $73 ; unused
DEF COLL_CAVE_74 EQU $74 ; unused
DEF COLL_DOOR_75 EQU $75 ; unused
DEF COLL_WARP_CARPET_LEFT EQU $76
DEF COLL_WARP_77 EQU $77 ; unused
DEF COLL_WARP_CARPET_UP EQU $78
DEF COLL_DOOR_79 EQU $79 ; unused
DEF COLL_STAIRCASE EQU $7a
DEF COLL_CAVE EQU $7b
DEF COLL_WARP_PANEL EQU $7c
DEF COLL_DOOR_7D EQU $7d ; unused
DEF COLL_WARP_CARPET_RIGHT EQU $7e
DEF COLL_WARP_7F EQU $7f ; unused
DEF COLL_COUNTER EQU $90
DEF COLL_BOOKSHELF EQU $91
DEF COLL_PC EQU $93
DEF COLL_RADIO EQU $94
DEF COLL_TOWN_MAP EQU $95
DEF COLL_MART_SHELF EQU $96
DEF COLL_TV EQU $97
DEF COLL_COUNTER_98 EQU $98 ; unused
DEF COLL_9C EQU $9c ; garbage
DEF COLL_WINDOW EQU $9d
DEF COLL_INCENSE_BURNER EQU $9f
DEF COLL_HOP_RIGHT EQU $a0
DEF COLL_HOP_LEFT EQU $a1
DEF COLL_HOP_UP EQU $a2 ; unused
DEF COLL_HOP_DOWN EQU $a3
DEF COLL_HOP_DOWN_RIGHT EQU $a4
DEF COLL_HOP_DOWN_LEFT EQU $a5
DEF COLL_HOP_UP_RIGHT EQU $a6 ; unused
DEF COLL_HOP_UP_LEFT EQU $a7 ; unused
DEF COLL_RIGHT_WALL EQU $b0
DEF COLL_LEFT_WALL EQU $b1
DEF COLL_UP_WALL EQU $b2
DEF COLL_DOWN_WALL EQU $b3 ; unused
DEF COLL_DOWN_RIGHT_WALL EQU $b4 ; unused
DEF COLL_DOWN_LEFT_WALL EQU $b5 ; unused
DEF COLL_UP_RIGHT_WALL EQU $b6 ; unused
DEF COLL_UP_LEFT_WALL EQU $b7 ; unused
DEF COLL_RIGHT_BUOY EQU $c0 ; unused
DEF COLL_LEFT_BUOY EQU $c1 ; unused
DEF COLL_UP_BUOY EQU $c2 ; unused
DEF COLL_DOWN_BUOY EQU $c3 ; unused
DEF COLL_DOWN_RIGHT_BUOY EQU $c4 ; unused
DEF COLL_DOWN_LEFT_BUOY EQU $c5 ; unused
DEF COLL_UP_RIGHT_BUOY EQU $c6 ; unused
DEF COLL_UP_LEFT_BUOY EQU $c7 ; unused
DEF COLL_FF EQU $ff ; garbage
; collision data type nybbles
LO_NYBBLE_GRASS EQU $07
HI_NYBBLE_TALL_GRASS EQU $10
HI_NYBBLE_WATER EQU $20
HI_NYBBLE_CURRENT EQU $30
HI_NYBBLE_WALK EQU $40
HI_NYBBLE_WALK_ALT EQU $50
HI_NYBBLE_WARPS EQU $70
HI_NYBBLE_LEDGES EQU $a0
HI_NYBBLE_SIDE_WALLS EQU $b0
HI_NYBBLE_SIDE_BUOYS EQU $c0
DEF LO_NYBBLE_GRASS EQU $07
DEF HI_NYBBLE_TALL_GRASS EQU $10
DEF HI_NYBBLE_WATER EQU $20
DEF HI_NYBBLE_CURRENT EQU $30
DEF HI_NYBBLE_WALK EQU $40
DEF HI_NYBBLE_WALK_ALT EQU $50
DEF HI_NYBBLE_WARPS EQU $70
DEF HI_NYBBLE_LEDGES EQU $a0
DEF HI_NYBBLE_SIDE_WALLS EQU $b0
DEF HI_NYBBLE_SIDE_BUOYS EQU $c0

View File

@ -103,7 +103,7 @@
const US_COORDINATION
const TEXT_TRANSLATION
const PAAD_TESTING
NUM_CREDITS_STRINGS EQU const_value
DEF NUM_CREDITS_STRINGS EQU const_value
; CreditsScript indexes (see data/credits_script.asm)
const_def -1, -1

View File

@ -73,4 +73,4 @@
const CRY_DUNSPARCE
const CRY_DONPHAN
NUM_CRIES EQU const_value
DEF NUM_CRIES EQU const_value

View File

@ -1,11 +1,11 @@
; decoration attributes
rsreset
DECOATTR_TYPE rb
DECOATTR_NAME rb
DECOATTR_ACTION rb
DECOATTR_EVENT_FLAG rw
DECOATTR_SPRITE rb
DECOATTR_STRUCT_LENGTH EQU _RS
DEF DECOATTR_TYPE rb
DEF DECOATTR_NAME rb
DEF DECOATTR_ACTION rb
DEF DECOATTR_EVENT_FLAG rw
DEF DECOATTR_SPRITE rb
DEF DECOATTR_STRUCT_LENGTH EQU _RS
; decoration types
const_def 1
@ -15,7 +15,7 @@ DECOATTR_STRUCT_LENGTH EQU _RS
const DECO_POSTER
const DECO_DOLL
const DECO_BIGDOLL
NUM_DECO_TYPES EQU const_value - 1
DEF NUM_DECO_TYPES EQU const_value - 1
; DecorationNames indexes (see data/decorations/names.asm)
const_def
@ -45,7 +45,7 @@ NUM_DECO_TYPES EQU const_value - 1
const BLUE_CARPET
const YELLOW_CARPET
const GREEN_CARPET
NUM_DECO_NAMES EQU const_value
DEF NUM_DECO_NAMES EQU const_value
; DoDecorationAction2.DecoActions indexes (see engine/overworld/decorations.asm)
const_def 1
@ -63,14 +63,14 @@ NUM_DECO_NAMES EQU const_value
const PUT_AWAY_BIG_DOLL
const SET_UP_DOLL
const PUT_AWAY_DOLL
NUM_DECO_ACTIONS EQU const_value - 1
DEF NUM_DECO_ACTIONS EQU const_value - 1
__deco_value__ = 0
DEF __deco_value__ = 0
deco: MACRO
MACRO deco
const DECO_\1
DECOFLAG_\1 EQU __deco_value__
__deco_value__ += 1
DEF DECOFLAG_\1 EQU __deco_value__
DEF __deco_value__ += 1
ENDM
; decorations:
@ -134,8 +134,8 @@ ENDM
deco GEODUDE_DOLL
deco MACHOP_DOLL
deco TENTACOOL_DOLL
NUM_NON_TROPHY_DECOS EQU __deco_value__
DEF NUM_NON_TROPHY_DECOS EQU __deco_value__
deco GOLD_TROPHY_DOLL
deco SILVER_TROPHY_DOLL
NUM_DECOS EQU __deco_value__
NUM_DECO_CATEGORIES EQU const_value - 1 - NUM_DECOS
DEF NUM_DECOS EQU __deco_value__
DEF NUM_DECO_CATEGORIES EQU const_value - 1 - NUM_DECOS

View File

@ -187,4 +187,4 @@
; wSwarmFlags
const ENGINE_DUNSPARCE_SWARM
const ENGINE_YANMA_SWARM
NUM_ENGINE_FLAGS EQU const_value
DEF NUM_ENGINE_FLAGS EQU const_value

View File

@ -1459,4 +1459,4 @@
; Unused: next 48 events
const_next 2048
NUM_EVENTS EQU const_value ; 800
DEF NUM_EVENTS EQU const_value ; 800

View File

@ -1,48 +1,48 @@
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
NUM_PAL_COLORS EQU 4
PAL_COLOR_SIZE EQU 2
PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
DEF NUM_PAL_COLORS EQU 4
DEF PAL_COLOR_SIZE EQU 2
DEF PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
PALRGB_WHITE EQU palred 31 + palgreen 31 + palblue 31 ; $7fff
DEF PALRGB_WHITE EQU palred 31 + palgreen 31 + palblue 31 ; $7fff
SCREEN_WIDTH EQU 20 ; tiles
SCREEN_HEIGHT EQU 18 ; tiles
SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
DEF SCREEN_WIDTH EQU 20 ; tiles
DEF SCREEN_HEIGHT EQU 18 ; tiles
DEF SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
DEF SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
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
METATILE_WIDTH EQU 4 ; tiles
SCREEN_META_WIDTH EQU 6 ; metatiles
SCREEN_META_HEIGHT EQU 5 ; metatiles
SURROUNDING_WIDTH EQU SCREEN_META_WIDTH * METATILE_WIDTH ; tiles
SURROUNDING_HEIGHT EQU SCREEN_META_HEIGHT * METATILE_WIDTH ; tiles
MAP_CONNECTION_PADDING_WIDTH EQU 3 ; metatiles
DEF METATILE_WIDTH EQU 4 ; tiles
DEF SCREEN_META_WIDTH EQU 6 ; metatiles
DEF SCREEN_META_HEIGHT EQU 5 ; metatiles
DEF SURROUNDING_WIDTH EQU SCREEN_META_WIDTH * METATILE_WIDTH ; tiles
DEF SURROUNDING_HEIGHT EQU SCREEN_META_HEIGHT * METATILE_WIDTH ; tiles
DEF MAP_CONNECTION_PADDING_WIDTH EQU 3 ; metatiles
HP_BAR_LENGTH EQU 6 ; tiles
EXP_BAR_LENGTH EQU 8 ; tiles
HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
DEF HP_BAR_LENGTH EQU 6 ; tiles
DEF EXP_BAR_LENGTH EQU 8 ; tiles
DEF HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
DEF EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
; GetHPPal return values (see home/tilemap.asm)
HP_GREEN EQU 0
HP_YELLOW EQU 1
HP_RED EQU 2
DEF HP_GREEN EQU 0
DEF HP_YELLOW EQU 1
DEF HP_RED EQU 2
; sprite_oam_struct members (see macros/wram.asm)
rsreset
SPRITEOAMSTRUCT_YCOORD rb ; 0
SPRITEOAMSTRUCT_XCOORD rb ; 1
SPRITEOAMSTRUCT_TILE_ID rb ; 2
SPRITEOAMSTRUCT_ATTRIBUTES rb ; 3
SPRITEOAMSTRUCT_LENGTH EQU _RS
NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM
DEF SPRITEOAMSTRUCT_YCOORD rb ; 0
DEF SPRITEOAMSTRUCT_XCOORD rb ; 1
DEF SPRITEOAMSTRUCT_TILE_ID rb ; 2
DEF SPRITEOAMSTRUCT_ATTRIBUTES rb ; 3
DEF SPRITEOAMSTRUCT_LENGTH EQU _RS
DEF NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM
SPRITE_GFX_LIST_CAPACITY EQU 32 ; see wUsedSprites
DEF SPRITE_GFX_LIST_CAPACITY EQU 32 ; see wUsedSprites
; PokeAnims indexes (see engine/gfx/pic_animation.asm)
const_def

View File

@ -4,165 +4,165 @@
; http://gameboy.mongenel.com/dmg/asmmemmap.html
; 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
; MBC3
MBC3SRamEnable EQU $0000
MBC3RomBank EQU $2000
MBC3SRamBank EQU $4000
MBC3LatchClock EQU $6000
MBC3RTC EQU $a000
DEF MBC3SRamEnable EQU $0000
DEF MBC3RomBank EQU $2000
DEF MBC3SRamBank EQU $4000
DEF MBC3LatchClock EQU $6000
DEF MBC3RTC EQU $a000
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
RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
RTC_H EQU $0a ; Hours 0-23 (0-17h)
RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
; Bit 0 Most significant bit of Day Counter (Bit 8)
; Bit 6 Halt (0=Active, 1=Stop Timer)
; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
DEF RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
DEF RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
DEF RTC_H EQU $0a ; Hours 0-23 (0-17h)
DEF RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
DEF RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
; Bit 0 Most significant bit of Day Counter (Bit 8)
; Bit 6 Halt (0=Active, 1=Stop Timer)
; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
; interrupt flags
VBLANK EQU 0
LCD_STAT EQU 1
TIMER EQU 2
SERIAL EQU 3
JOYPAD EQU 4
IE_DEFAULT EQU (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
DEF VBLANK EQU 0
DEF LCD_STAT EQU 1
DEF TIMER EQU 2
DEF SERIAL EQU 3
DEF JOYPAD EQU 4
DEF IE_DEFAULT EQU (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
; OAM attribute flags
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_TILE_BANK EQU 3
DEF OAM_OBP_NUM EQU 4 ; non CGB Mode Only
DEF OAM_X_FLIP EQU 5
DEF OAM_Y_FLIP EQU 6
DEF OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
; BG Map attribute flags
PALETTE_MASK EQU %111
VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
X_FLIP EQU 1 << OAM_X_FLIP ; $20
Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
PRIORITY EQU 1 << OAM_PRIORITY ; $80
DEF PALETTE_MASK EQU %111
DEF VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
DEF OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
DEF X_FLIP EQU 1 << OAM_X_FLIP ; $20
DEF Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
DEF PRIORITY EQU 1 << OAM_PRIORITY ; $80
; Hardware registers
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 %00
rTAC_262144_HZ EQU %01
rTAC_65536_HZ EQU %10
rTAC_16384_HZ EQU %11
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; Inital (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_BG_PRIORITY EQU 0 ; 0=Off, 1=On
rLCDC_SPRITES_ENABLE EQU 1 ; 0=Off, 1=On
rLCDC_SPRITE_SIZE EQU 2 ; 0=8x8, 1=8x16
rLCDC_BG_TILEMAP EQU 3 ; 0=9800-9BFF, 1=9C00-9FFF
rLCDC_TILE_DATA EQU 4 ; 0=8800-97FF, 1=8000-8FFF
rLCDC_WINDOW_ENABLE EQU 5 ; 0=Off, 1=On
rLCDC_WINDOW_TILEMAP EQU 6 ; 0=9800-9BFF, 1=9C00-9FFF
rLCDC_ENABLE EQU 7 ; 0=Off, 1=On
LCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
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)
LY_VBLANK EQU 144
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)
rLCDMODE EQU $ff4c
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
rBLCK EQU $ff50
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
rRP_LED_ON EQU 0
rRP_RECEIVING EQU 1
rRP_ENABLE_READ_MASK EQU %11000000
rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
rBGPI_AUTO_INCREMENT EQU 7 ; increment rBGPI after write to rBGPD
rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
rOBPI_AUTO_INCREMENT EQU 7 ; increment rOBPI after write to rOBPD
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 %00
DEF rTAC_262144_HZ EQU %01
DEF rTAC_65536_HZ EQU %10
DEF rTAC_16384_HZ EQU %11
DEF rIF EQU $ff0f ; Interrupt Flag (R/W)
DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
DEF 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; Inital (R/W)
DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
DEF rNR52 EQU $ff26 ; Sound on/off
DEF rWave_0 EQU $ff30
DEF rWave_1 EQU $ff31
DEF rWave_2 EQU $ff32
DEF rWave_3 EQU $ff33
DEF rWave_4 EQU $ff34
DEF rWave_5 EQU $ff35
DEF rWave_6 EQU $ff36
DEF rWave_7 EQU $ff37
DEF rWave_8 EQU $ff38
DEF rWave_9 EQU $ff39
DEF rWave_a EQU $ff3a
DEF rWave_b EQU $ff3b
DEF rWave_c EQU $ff3c
DEF rWave_d EQU $ff3d
DEF rWave_e EQU $ff3e
DEF rWave_f EQU $ff3f
DEF rLCDC EQU $ff40 ; LCD Control (R/W)
DEF rLCDC_BG_PRIORITY EQU 0 ; 0=Off, 1=On
DEF rLCDC_SPRITES_ENABLE EQU 1 ; 0=Off, 1=On
DEF rLCDC_SPRITE_SIZE EQU 2 ; 0=8x8, 1=8x16
DEF rLCDC_BG_TILEMAP EQU 3 ; 0=9800-9BFF, 1=9C00-9FFF
DEF rLCDC_TILE_DATA EQU 4 ; 0=8800-97FF, 1=8000-8FFF
DEF rLCDC_WINDOW_ENABLE EQU 5 ; 0=Off, 1=On
DEF rLCDC_WINDOW_TILEMAP EQU 6 ; 0=9800-9BFF, 1=9C00-9FFF
DEF rLCDC_ENABLE EQU 7 ; 0=Off, 1=On
DEF LCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
DEF rSTAT EQU $ff41 ; LCDC Status (R/W)
DEF rSCY EQU $ff42 ; Scroll Y (R/W)
DEF rSCX EQU $ff43 ; Scroll X (R/W)
DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R)
DEF LY_VBLANK EQU 144
DEF rLYC EQU $ff45 ; LY Compare (R/W)
DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
DEF rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
DEF rWY EQU $ff4a ; Window Y Position (R/W)
DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W)
DEF rLCDMODE EQU $ff4c
DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
DEF rBLCK EQU $ff50
DEF rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
DEF rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
DEF rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
DEF rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
DEF rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
DEF rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
DEF rRP_LED_ON EQU 0
DEF rRP_RECEIVING EQU 1
DEF rRP_ENABLE_READ_MASK EQU %11000000
DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
DEF rBGPI_AUTO_INCREMENT EQU 7 ; increment rBGPI after write to rBGPD
DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
DEF rOBPI_AUTO_INCREMENT EQU 7 ; increment rOBPI after write to rOBPD
DEF rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
DEF 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)

View File

@ -39,7 +39,7 @@
const ICON_SLOWPOKE
const ICON_SUDOWOODO
const ICON_BIGMON
NUM_ICONS EQU const_value - 1
DEF NUM_ICONS EQU const_value - 1
; LoadMenuMonIcon.Jumptable indexes (see engine/gfx/mon_icons.asm)
const_def

View File

@ -9,18 +9,18 @@
const D_UP_F ; 6
const D_DOWN_F ; 7
NO_INPUT EQU %00000000
A_BUTTON EQU 1 << A_BUTTON_F
B_BUTTON EQU 1 << B_BUTTON_F
SELECT EQU 1 << SELECT_F
START EQU 1 << START_F
D_RIGHT EQU 1 << D_RIGHT_F
D_LEFT EQU 1 << D_LEFT_F
D_UP EQU 1 << D_UP_F
D_DOWN EQU 1 << D_DOWN_F
DEF NO_INPUT EQU %00000000
DEF A_BUTTON EQU 1 << A_BUTTON_F
DEF B_BUTTON EQU 1 << B_BUTTON_F
DEF SELECT EQU 1 << SELECT_F
DEF START EQU 1 << START_F
DEF D_RIGHT EQU 1 << D_RIGHT_F
DEF D_LEFT EQU 1 << D_LEFT_F
DEF D_UP EQU 1 << D_UP_F
DEF D_DOWN EQU 1 << D_DOWN_F
BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
DEF BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
DEF D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
R_DPAD EQU %00100000
R_BUTTONS EQU %00010000
DEF R_DPAD EQU %00100000
DEF R_BUTTONS EQU %00010000

View File

@ -196,16 +196,16 @@
const MUSIC_MAIL ; bc
const MIRAGE_MAIL ; bd
const ITEM_BE ; be
NUM_ITEMS EQU const_value - 1
DEF NUM_ITEMS EQU const_value - 1
__tmhm_value__ = 1
DEF __tmhm_value__ = 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_tm: MACRO
MACRO add_tm
; Defines three constants:
; - TM_\1: the item id, starting at $bf
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
@ -216,7 +216,7 @@ TM{02d:__tmhm_value__}_MOVE = \1
ENDM
; see data/moves/tmhm_moves.asm for moves
TM01 EQU const_value
DEF TM01 EQU const_value
add_tm DYNAMICPUNCH ; bf
add_tm HEADBUTT ; c0
add_tm CURSE ; c1
@ -269,20 +269,20 @@ TM01 EQU const_value
add_tm FIRE_PUNCH ; f0
add_tm FURY_CUTTER ; f1
add_tm NIGHTMARE ; f2
NUM_TMS EQU __tmhm_value__ - 1
DEF NUM_TMS EQU __tmhm_value__ - 1
add_hm: MACRO
MACRO add_hm
; Defines three constants:
; - HM_\1: the item id, starting at $f3
; - \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 = \1
DEF HM_VALUE = __tmhm_value__ - NUM_TMS
DEF HM{02d:HM_VALUE}_MOVE = \1
add_tmnum \1
ENDM
HM01 EQU const_value
DEF HM01 EQU const_value
add_hm CUT ; f3
add_hm FLY ; f4
add_hm SURF ; f5
@ -290,31 +290,31 @@ HM01 EQU const_value
add_hm FLASH ; f7
add_hm WHIRLPOOL ; f8
add_hm WATERFALL ; f9
NUM_HMS EQU __tmhm_value__ - NUM_TMS - 1
DEF NUM_HMS EQU __tmhm_value__ - NUM_TMS - 1
add_mt: MACRO
MACRO add_mt
; Defines two constants:
; - \1_TMNUM: the learnable TM/HM flag, starting at 58
; - MT##_MOVE: alias for the move id, equal to the value of \1
MT_VALUE = __tmhm_value__ - NUM_TMS - NUM_HMS
MT{02d:MT_VALUE}_MOVE = \1
DEF MT_VALUE = __tmhm_value__ - NUM_TMS - NUM_HMS
DEF MT{02d:MT_VALUE}_MOVE = \1
add_tmnum \1
ENDM
MT01 EQU const_value
DEF MT01 EQU const_value
add_mt FLAMETHROWER
add_mt THUNDERBOLT
add_mt ICE_BEAM
NUM_TUTORS = __tmhm_value__ - NUM_TMS - NUM_HMS - 1
DEF NUM_TUTORS = __tmhm_value__ - NUM_TMS - NUM_HMS - 1
NUM_TM_HM_TUTOR EQU NUM_TMS + NUM_HMS + NUM_TUTORS
DEF NUM_TM_HM_TUTOR EQU NUM_TMS + NUM_HMS + NUM_TUTORS
const ITEM_FA ; fa
USE_SCRIPT_VAR EQU $00
ITEM_FROM_MEM EQU $ff
DEF USE_SCRIPT_VAR EQU $00
DEF ITEM_FROM_MEM EQU $ff
; leftovers from red
SAFARI_BALL EQU $08 ; MOON_STONE
MOON_STONE_RED EQU $0a ; BURN_HEAL
FULL_HEAL_RED EQU $34 ; X_SPEED
DEF SAFARI_BALL EQU $08 ; MOON_STONE
DEF MOON_STONE_RED EQU $0a ; BURN_HEAL
DEF FULL_HEAL_RED EQU $34 ; X_SPEED

View File

@ -1,15 +1,15 @@
; item_attributes struct members (see data/items/attributes.asm)
rsreset
ITEMATTR_PRICE rw
DEF ITEMATTR_PRICE rw
rsset ITEMATTR_PRICE
ITEMATTR_PRICE_LO rb
ITEMATTR_PRICE_HI rb
ITEMATTR_EFFECT rb
ITEMATTR_PARAM rb
ITEMATTR_PERMISSIONS rb
ITEMATTR_POCKET rb
ITEMATTR_HELP rb
ITEMATTR_STRUCT_LENGTH EQU _RS
DEF ITEMATTR_PRICE_LO rb
DEF ITEMATTR_PRICE_HI rb
DEF ITEMATTR_EFFECT rb
DEF ITEMATTR_PARAM rb
DEF ITEMATTR_PERMISSIONS rb
DEF ITEMATTR_POCKET rb
DEF ITEMATTR_HELP rb
DEF ITEMATTR_STRUCT_LENGTH EQU _RS
; item types
const_def 1
@ -17,7 +17,7 @@ ITEMATTR_STRUCT_LENGTH EQU _RS
const KEY_ITEM ; 2
const BALL ; 3
const TM_HM ; 4
NUM_ITEM_TYPES EQU const_value - 1
DEF NUM_ITEM_TYPES EQU const_value - 1
; item menu types
; UseItem.dw indexes (see engine/items/pack.asm)
@ -30,12 +30,12 @@ NUM_ITEM_TYPES EQU const_value - 1
const ITEMMENU_CLOSE ; 6
; item actions
CANT_SELECT_F EQU 6
CANT_TOSS_F EQU 7
DEF CANT_SELECT_F EQU 6
DEF CANT_TOSS_F EQU 7
NO_LIMITS EQU 0
CANT_SELECT EQU 1 << CANT_SELECT_F
CANT_TOSS EQU 1 << CANT_TOSS_F
DEF NO_LIMITS EQU 0
DEF CANT_SELECT EQU 1 << CANT_SELECT_F
DEF CANT_TOSS EQU 1 << CANT_TOSS_F
; pack pockets
const_def
@ -43,20 +43,20 @@ CANT_TOSS EQU 1 << CANT_TOSS_F
const BALL_POCKET ; 1
const KEY_ITEM_POCKET ; 2
const TM_HM_POCKET ; 3
NUM_POCKETS EQU const_value
DEF NUM_POCKETS EQU const_value
MAX_ITEMS EQU 20
MAX_BALLS EQU 12
MAX_KEY_ITEMS EQU 25
MAX_PC_ITEMS EQU 50
DEF MAX_ITEMS EQU 20
DEF MAX_BALLS EQU 12
DEF MAX_KEY_ITEMS EQU 25
DEF MAX_PC_ITEMS EQU 50
MAX_ITEM_STACK EQU 99
DEF MAX_ITEM_STACK EQU 99
; mail
MAIL_LINE_LENGTH EQU $10
MAIL_MSG_LENGTH EQU $20
MAILBOX_CAPACITY EQU 10
MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
DEF MAIL_LINE_LENGTH EQU $10
DEF MAIL_MSG_LENGTH EQU $20
DEF MAILBOX_CAPACITY EQU 10
DEF MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
; held item effects
const_def

View File

@ -48,7 +48,7 @@
const LANDMARK_DARK_CAVE ; 2c
const LANDMARK_ROUTE_46 ; 2d
const LANDMARK_SILVER_CAVE ; 2e
KANTO_LANDMARK EQU const_value
DEF KANTO_LANDMARK EQU const_value
const LANDMARK_PALLET_TOWN ; 2f
const LANDMARK_ROUTE_1 ; 30
const LANDMARK_VIRIDIAN_CITY ; 31
@ -98,7 +98,7 @@ KANTO_LANDMARK EQU const_value
const LANDMARK_TOHJO_FALLS ; 5d
const LANDMARK_ROUTE_28 ; 5e
const LANDMARK_FAST_SHIP ; 5f
NUM_LANDMARKS EQU const_value
DEF NUM_LANDMARKS EQU const_value
; used in CaughtData
const_def $7f, -1
@ -109,4 +109,4 @@ NUM_LANDMARKS EQU const_value
const_def
const JOHTO_REGION ; 0
const KANTO_REGION ; 1
NUM_REGIONS EQU const_value
DEF NUM_REGIONS EQU const_value

View File

@ -1,25 +1,25 @@
newgroup: MACRO
MACRO newgroup
;\1: group id
const_skip
MAPGROUP_\1 EQU const_value
CURRENT_NUM_MAPGROUP_MAPS EQUS "NUM_\1_MAPS"
__map_value__ = 1
DEF MAPGROUP_\1 EQU const_value
DEF CURRENT_NUM_MAPGROUP_MAPS EQUS "NUM_\1_MAPS"
DEF __map_value__ = 1
ENDM
map_const: MACRO
MACRO map_const
;\1: map id
;\2: width: in blocks
;\3: height: in blocks
GROUP_\1 EQU const_value
MAP_\1 EQU __map_value__
__map_value__ += 1
\1_WIDTH EQU \2
\1_HEIGHT EQU \3
DEF GROUP_\1 EQU const_value
DEF MAP_\1 EQU __map_value__
DEF __map_value__ += 1
DEF \1_WIDTH EQU \2
DEF \1_HEIGHT EQU \3
ENDM
endgroup: MACRO
{CURRENT_NUM_MAPGROUP_MAPS} EQU __map_value__ - 1
PURGE CURRENT_NUM_MAPGROUP_MAPS
MACRO endgroup
DEF {CURRENT_NUM_MAPGROUP_MAPS} EQU __map_value__ - 1
PURGE CURRENT_NUM_MAPGROUP_MAPS
ENDM
; map group ids
@ -501,4 +501,4 @@ ENDM
map_const ROUTE_31_VIOLET_GATE, 5, 4 ; 11
endgroup
NUM_MAP_GROUPS EQU const_value ; 26
DEF NUM_MAP_GROUPS EQU const_value ; 26

View File

@ -1,21 +1,21 @@
MAPGROUP_N_A EQU -1
GROUP_N_A EQU -1
MAP_N_A EQU -1
MAPGROUP_NONE EQU 0
GROUP_NONE EQU 0
MAP_NONE EQU 0
DEF MAPGROUP_N_A EQU -1
DEF GROUP_N_A EQU -1
DEF MAP_N_A EQU -1
DEF MAPGROUP_NONE EQU 0
DEF GROUP_NONE EQU 0
DEF MAP_NONE EQU 0
; map struct members (see data/maps/maps.asm)
rsreset
MAP_MAPATTRIBUTES_BANK rb ; 0
MAP_TILESET rb ; 1
MAP_ENVIRONMENT rb ; 2
MAP_MAPATTRIBUTES rw ; 3
MAP_LOCATION rb ; 5
MAP_MUSIC rb ; 6
MAP_PALETTE rb ; 7
MAP_FISHGROUP rb ; 8
MAP_LENGTH EQU _RS
DEF MAP_MAPATTRIBUTES_BANK rb ; 0
DEF MAP_TILESET rb ; 1
DEF MAP_ENVIRONMENT rb ; 2
DEF MAP_MAPATTRIBUTES rw ; 3
DEF MAP_LOCATION rb ; 5
DEF MAP_MUSIC rb ; 6
DEF MAP_PALETTE rb ; 7
DEF MAP_FISHGROUP rb ; 8
DEF MAP_LENGTH EQU _RS
; map environments (wEnvironment)
; EnvironmentColorsPointers indexes (see data/maps/environment_colors.asm)
@ -27,7 +27,7 @@ MAP_LENGTH EQU _RS
const ENVIRONMENT_5
const GATE
const DUNGEON
NUM_ENVIRONMENTS EQU const_value - 1
DEF NUM_ENVIRONMENTS EQU const_value - 1
; map palettes (wEnvironment)
const_def
@ -36,7 +36,7 @@ NUM_ENVIRONMENTS EQU const_value - 1
const PALETTE_NITE
const PALETTE_MORN
const PALETTE_DARK
NUM_MAP_PALETTES EQU const_value
DEF NUM_MAP_PALETTES EQU const_value
; FishGroups indexes (see data/wild/fish.asm)
const_def
@ -54,7 +54,7 @@ NUM_MAP_PALETTES EQU const_value
const FISHGROUP_QWILFISH
const FISHGROUP_REMORAID
const FISHGROUP_QWILFISH_NO_SWARM
NUM_FISHGROUPS EQU const_value - 1
DEF NUM_FISHGROUPS EQU const_value - 1
; connection directions (see data/maps/data.asm)
const_def
@ -102,14 +102,14 @@ NUM_FISHGROUPS EQU const_value - 1
const SPAWN_BLACKTHORN
const SPAWN_MT_SILVER
const SPAWN_FAST_SHIP
NUM_SPAWNS EQU const_value
DEF NUM_SPAWNS EQU const_value
SPAWN_N_A EQU -1
DEF SPAWN_N_A EQU -1
; Flypoints indexes (see data/maps/flypoints.asm)
const_def
; johto
JOHTO_FLYPOINT EQU const_value
DEF JOHTO_FLYPOINT EQU const_value
const FLY_NEW_BARK
const FLY_CHERRYGROVE
const FLY_VIOLET
@ -123,7 +123,7 @@ JOHTO_FLYPOINT EQU const_value
const FLY_BLACKTHORN
const FLY_MT_SILVER
; kanto
KANTO_FLYPOINT EQU const_value
DEF KANTO_FLYPOINT EQU const_value
const FLY_PALLET
const FLY_VIRIDIAN
const FLY_PEWTER
@ -136,6 +136,6 @@ KANTO_FLYPOINT EQU const_value
const FLY_FUCHSIA
const FLY_CINNABAR
const FLY_INDIGO
NUM_FLYPOINTS EQU const_value
DEF NUM_FLYPOINTS EQU const_value
MAX_OUTDOOR_SPRITES EQU 23 ; see engine/overworld/overworld.asm
DEF MAX_OUTDOOR_SPRITES EQU 23 ; see engine/overworld/overworld.asm

View File

@ -1,47 +1,47 @@
; object_struct members (see macros/wram.asm)
rsreset
OBJECT_SPRITE rb ; 00
OBJECT_MAP_OBJECT_INDEX rb ; 01
OBJECT_SPRITE_TILE rb ; 02
OBJECT_MOVEMENTTYPE rb ; 03
OBJECT_FLAGS1 rb ; 04
OBJECT_FLAGS2 rb ; 05
OBJECT_PALETTE rb ; 06
OBJECT_DIRECTION_WALKING rb ; 07
OBJECT_FACING rb ; 08
OBJECT_STEP_TYPE rb ; 09
OBJECT_STEP_DURATION rb ; 0a
OBJECT_ACTION rb ; 0b
OBJECT_STEP_FRAME rb ; 0c
OBJECT_FACING_STEP rb ; 0d
OBJECT_NEXT_TILE rb ; 0e
OBJECT_STANDING_TILE rb ; 0f
OBJECT_NEXT_MAP_X rb ; 10
OBJECT_NEXT_MAP_Y rb ; 11
OBJECT_MAP_X rb ; 12
OBJECT_MAP_Y rb ; 13
OBJECT_INIT_X rb ; 14
OBJECT_INIT_Y rb ; 15
OBJECT_RADIUS rb ; 16
OBJECT_SPRITE_X rb ; 17
OBJECT_SPRITE_Y rb ; 18
OBJECT_SPRITE_X_OFFSET rb ; 19
OBJECT_SPRITE_Y_OFFSET rb ; 1a
OBJECT_MOVEMENT_BYTE_INDEX rb ; 1b
OBJECT_1C rb ; 1c
OBJECT_1D rb ; 1d
OBJECT_1E rb ; 1e
OBJECT_1F rb ; 1f
OBJECT_RANGE rb ; 20
rb_skip 7
OBJECT_LENGTH EQU _RS
NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs
DEF OBJECT_SPRITE rb ; 00
DEF OBJECT_MAP_OBJECT_INDEX rb ; 01
DEF OBJECT_SPRITE_TILE rb ; 02
DEF OBJECT_MOVEMENTTYPE rb ; 03
DEF OBJECT_FLAGS1 rb ; 04
DEF OBJECT_FLAGS2 rb ; 05
DEF OBJECT_PALETTE rb ; 06
DEF OBJECT_DIRECTION_WALKING rb ; 07
DEF OBJECT_FACING rb ; 08
DEF OBJECT_STEP_TYPE rb ; 09
DEF OBJECT_STEP_DURATION rb ; 0a
DEF OBJECT_ACTION rb ; 0b
DEF OBJECT_STEP_FRAME rb ; 0c
DEF OBJECT_FACING_STEP rb ; 0d
DEF OBJECT_NEXT_TILE rb ; 0e
DEF OBJECT_STANDING_TILE rb ; 0f
DEF OBJECT_NEXT_MAP_X rb ; 10
DEF OBJECT_NEXT_MAP_Y rb ; 11
DEF OBJECT_MAP_X rb ; 12
DEF OBJECT_MAP_Y rb ; 13
DEF OBJECT_INIT_X rb ; 14
DEF OBJECT_INIT_Y rb ; 15
DEF OBJECT_RADIUS rb ; 16
DEF OBJECT_SPRITE_X rb ; 17
DEF OBJECT_SPRITE_Y rb ; 18
DEF OBJECT_SPRITE_X_OFFSET rb ; 19
DEF OBJECT_SPRITE_Y_OFFSET rb ; 1a
DEF OBJECT_MOVEMENT_BYTE_INDEX rb ; 1b
DEF OBJECT_1C rb ; 1c
DEF OBJECT_1D rb ; 1d
DEF OBJECT_1E rb ; 1e
DEF OBJECT_1F rb ; 1f
DEF OBJECT_RANGE rb ; 20
rb_skip 7
DEF OBJECT_LENGTH EQU _RS
DEF NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs
; object_struct OBJECT_FACING values
OW_DOWN EQU DOWN << 2
OW_UP EQU UP << 2
OW_LEFT EQU LEFT << 2
OW_RIGHT EQU RIGHT << 2
DEF OW_DOWN EQU DOWN << 2
DEF OW_UP EQU UP << 2
DEF OW_LEFT EQU LEFT << 2
DEF OW_RIGHT EQU RIGHT << 2
; object_struct OBJECT_FLAGS1 bit flags
const_def
@ -54,14 +54,14 @@ OW_RIGHT EQU RIGHT << 2
const NOCLIP_OBJS_F ; 6
const EMOTE_OBJECT_F ; 7
INVISIBLE EQU 1 << INVISIBLE_F
WONT_DELETE EQU 1 << WONT_DELETE_F
FIXED_FACING EQU 1 << FIXED_FACING_F
SLIDING EQU 1 << SLIDING_F
NOCLIP_TILES EQU 1 << NOCLIP_TILES_F
MOVE_ANYWHERE EQU 1 << MOVE_ANYWHERE_F
NOCLIP_OBJS EQU 1 << NOCLIP_OBJS_F
EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
DEF INVISIBLE EQU 1 << INVISIBLE_F
DEF WONT_DELETE EQU 1 << WONT_DELETE_F
DEF FIXED_FACING EQU 1 << FIXED_FACING_F
DEF SLIDING EQU 1 << SLIDING_F
DEF NOCLIP_TILES EQU 1 << NOCLIP_TILES_F
DEF MOVE_ANYWHERE EQU 1 << MOVE_ANYWHERE_F
DEF NOCLIP_OBJS EQU 1 << NOCLIP_OBJS_F
DEF EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
; object_struct OBJECT_FLAGS2 bit flags
const_def
@ -74,10 +74,10 @@ EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
const OBJ_FLAGS2_6 ; 6
const OBJ_FLAGS2_7 ; 7
LOW_PRIORITY EQU 1 << LOW_PRIORITY_F
HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F
OVERHEAD EQU 1 << OVERHEAD_F
USE_OBP1 EQU 1 << USE_OBP1_F
DEF LOW_PRIORITY EQU 1 << LOW_PRIORITY_F
DEF HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F
DEF OVERHEAD EQU 1 << OVERHEAD_F
DEF USE_OBP1 EQU 1 << USE_OBP1_F
; object_struct OBJECT_PALETTE bit flags
const_def 5
@ -85,48 +85,48 @@ USE_OBP1 EQU 1 << USE_OBP1_F
const STRENGTH_BOULDER_F ; 6
const BIG_OBJECT_F ; 7
SWIMMING EQU 1 << SWIMMING_F
STRENGTH_BOULDER EQU 1 << STRENGTH_BOULDER_F
BIG_OBJECT EQU 1 << BIG_OBJECT_F
DEF SWIMMING EQU 1 << SWIMMING_F
DEF STRENGTH_BOULDER EQU 1 << STRENGTH_BOULDER_F
DEF BIG_OBJECT EQU 1 << BIG_OBJECT_F
; facing attribute bit flags
RELATIVE_ATTRIBUTES_F EQU 1
ABSOLUTE_TILE_ID_F EQU 2
DEF RELATIVE_ATTRIBUTES_F EQU 1
DEF ABSOLUTE_TILE_ID_F EQU 2
RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
DEF RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
DEF ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
; map_object struct members (see macros/wram.asm)
rsreset
MAPOBJECT_OBJECT_STRUCT_ID rb ; 0
MAPOBJECT_SPRITE rb ; 1
MAPOBJECT_Y_COORD rb ; 2
MAPOBJECT_X_COORD rb ; 3
MAPOBJECT_MOVEMENT rb ; 4
MAPOBJECT_RADIUS rb ; 5
MAPOBJECT_HOUR rb ; 6
MAPOBJECT_TIMEOFDAY rb ; 7
MAPOBJECT_COLOR rb ; 8
MAPOBJECT_RANGE rb ; 9
MAPOBJECT_SCRIPT_POINTER rw ; a
MAPOBJECT_EVENT_FLAG rw ; c
rb_skip 2
MAPOBJECT_LENGTH EQU _RS
NUM_OBJECTS EQU 16
PLAYER_OBJECT EQU 0
DEF MAPOBJECT_OBJECT_STRUCT_ID rb ; 0
DEF MAPOBJECT_SPRITE rb ; 1
DEF MAPOBJECT_Y_COORD rb ; 2
DEF MAPOBJECT_X_COORD rb ; 3
DEF MAPOBJECT_MOVEMENT rb ; 4
DEF MAPOBJECT_RADIUS rb ; 5
DEF MAPOBJECT_HOUR rb ; 6
DEF MAPOBJECT_TIMEOFDAY rb ; 7
DEF MAPOBJECT_COLOR rb ; 8
DEF MAPOBJECT_RANGE rb ; 9
DEF MAPOBJECT_SCRIPT_POINTER rw ; a
DEF MAPOBJECT_EVENT_FLAG rw ; c
rb_skip 2
DEF MAPOBJECT_LENGTH EQU _RS
DEF NUM_OBJECTS EQU 16
DEF PLAYER_OBJECT EQU 0
; SpriteMovementData struct members (see data/sprites/map_objects.asm)
rsreset
SPRITEMOVEATTR_MOVEMENT rb ; 0
SPRITEMOVEATTR_FACING rb ; 1
SPRITEMOVEATTR_ACTION rb ; 2
SPRITEMOVEATTR_FLAGS1 rb ; 3
SPRITEMOVEATTR_FLAGS2 rb ; 4
SPRITEMOVEATTR_PALFLAGS rb ; 5
NUM_SPRITEMOVEDATA_FIELDS EQU _RS
DEF SPRITEMOVEATTR_MOVEMENT rb ; 0
DEF SPRITEMOVEATTR_FACING rb ; 1
DEF SPRITEMOVEATTR_ACTION rb ; 2
DEF SPRITEMOVEATTR_FLAGS1 rb ; 3
DEF SPRITEMOVEATTR_FLAGS2 rb ; 4
DEF SPRITEMOVEATTR_PALFLAGS rb ; 5
DEF NUM_SPRITEMOVEDATA_FIELDS EQU _RS
MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2
MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
DEF MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2
DEF MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
; SpriteMovementData indexes (see data/sprites/map_objects.asm)
const_def
@ -167,7 +167,7 @@ MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
const SPRITEMOVEDATA_BOULDERDUST ; 22
const SPRITEMOVEDATA_GRASS ; 23
const SPRITEMOVEDATA_SWIM_WANDER ; 24
NUM_SPRITEMOVEDATA EQU const_value
DEF NUM_SPRITEMOVEDATA EQU const_value
; StepFunction_FromMovement.Pointers indexes (see engine/overworld/map_objects.asm)
const_def
@ -199,7 +199,7 @@ NUM_SPRITEMOVEDATA EQU const_value
const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; 19
const SPRITEMOVEFN_BOULDERDUST ; 1a
const SPRITEMOVEFN_GRASS ; 1b
NUM_SPRITEMOVEFN EQU const_value
DEF NUM_SPRITEMOVEFN EQU const_value
; StepTypesJumptable indexes (see engine/overworld/map_objects.asm)
const_def
@ -229,7 +229,7 @@ NUM_SPRITEMOVEFN EQU const_value
const STEP_TYPE_17 ; 17
const STEP_TYPE_DELETE ; 18
const STEP_TYPE_SKYFALL_TOP ; 19
NUM_STEP_TYPES EQU const_value
DEF NUM_STEP_TYPES EQU const_value
; ObjectActionPairPointers indexes (see engine/overworld/map_object_action.asm)
const_def
@ -250,7 +250,7 @@ NUM_STEP_TYPES EQU const_value
const OBJECT_ACTION_BOULDER_DUST ; 0e
const OBJECT_ACTION_GRASS_SHAKE ; 0f
const OBJECT_ACTION_SKYFALL ; 10
NUM_OBJECT_ACTIONS EQU const_value
DEF NUM_OBJECT_ACTIONS EQU const_value
; Facings indexes (see data/sprites/facings.asm)
const_def
@ -286,7 +286,7 @@ NUM_OBJECT_ACTIONS EQU const_value
const FACING_BOULDER_DUST_2 ; 1d
const FACING_GRASS_1 ; 1e
const FACING_GRASS_2 ; 1f
NUM_FACINGS EQU const_value
DEF NUM_FACINGS EQU const_value
; DoPlayerMovement.DoStep arguments (see engine/overworld/player_movement.asm)
const_def
@ -298,4 +298,4 @@ NUM_FACINGS EQU const_value
const STEP_TURN ; 5
const STEP_BACK_LEDGE ; 6
const STEP_WALK_IN_PLACE ; 7
NUM_STEPS EQU const_value
DEF NUM_STEPS EQU const_value

View File

@ -13,7 +13,7 @@
const MAPSETUP_SUBMENU ; fa
const MAPSETUP_BADWARP ; fb
const MAPSETUP_FLY ; fc
NUM_MAPSETUP_SCRIPTS EQU const_value - $f1
DEF NUM_MAPSETUP_SCRIPTS EQU const_value - $f1
; callback types
const_def 1

View File

@ -42,4 +42,4 @@
const MART_MT_MOON
const MART_INDIGO_PLATEAU
const MART_UNDERGROUND
NUM_MARTS EQU const_value
DEF NUM_MARTS EQU const_value

View File

@ -63,17 +63,17 @@
const MONMENUITEM_MOVE ; 19
const MONMENUITEM_MAIL ; 20
const MONMENUITEM_ERROR ; 21
NUM_MONMENUITEMS EQU const_value - 1
DEF NUM_MONMENUITEMS EQU const_value - 1
; MonMenuOptions categories
MONMENU_FIELD_MOVE EQU 0
MONMENU_MENUOPTION EQU 1
DEF MONMENU_FIELD_MOVE EQU 0
DEF MONMENU_MENUOPTION EQU 1
NUM_MONMENU_ITEMS EQU 8
DEF NUM_MONMENU_ITEMS EQU 8
; start/select menu return values
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
DEF HMENURETURN_SCRIPT EQU %10000000
DEF HMENURETURN_ASM EQU %11111111
; PartyMenuQualityPointers indexes (see data/party_menu_qualities.asm)
const_def
@ -87,7 +87,7 @@ HMENURETURN_ASM EQU %11111111
const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
const PARTYMENUACTION_GIVE_ITEM
const PARTYMENUACTION_MOBILE ; mobile
NUM_PARTYMENUACTIONS EQU const_value
DEF NUM_PARTYMENUACTIONS EQU const_value
; PrintPartyMenuActionText arguments (see engine/pokemon/party_menu.asm)
const_next $f0
const PARTYMENUTEXT_HEAL_PSN
@ -111,4 +111,4 @@ NUM_PARTYMENUACTIONS EQU const_value
const NAME_FRIEND
const NAME_6 ; duplicate of NAME_MON
const NAME_7 ; duplicate of NAME_MON
NUM_NAME_TYPES EQU const_value
DEF NUM_NAME_TYPES EQU const_value

View File

@ -1,10 +1,10 @@
; Boolean checks
FALSE EQU 0
TRUE EQU 1
DEF FALSE EQU 0
DEF TRUE EQU 1
; genders
MALE EQU 0
FEMALE EQU 1
DEF MALE EQU 0
DEF FEMALE EQU 1
; FlagAction arguments (see home/flag.asm)
const_def
@ -14,36 +14,36 @@ FEMALE EQU 1
; G/S version ID: 0 = Gold, 1 = Silver (used by checkver)
; Mystery Gift uses incremented values 1 and 2
GS_VERSION EQU 0
DEF GS_VERSION EQU 0
; Pokémon Pikachu 2, a step counter / virtual pet device (used by Mystery Gift)
POKEMON_PIKACHU_2_VERSION EQU 3
RESERVED_GAME_VERSION EQU 4
DEF POKEMON_PIKACHU_2_VERSION EQU 3
DEF RESERVED_GAME_VERSION EQU 4
; save file corruption check values
SAVE_CHECK_VALUE_1 EQU 99
SAVE_CHECK_VALUE_2 EQU 127
DEF SAVE_CHECK_VALUE_1 EQU 99
DEF SAVE_CHECK_VALUE_2 EQU 127
; RTC halted check value
RTC_HALT_VALUE EQU $1234
DEF RTC_HALT_VALUE EQU $1234
; time of day boundaries
MORN_HOUR EQU 4 ; 4 AM
DAY_HOUR EQU 10 ; 10 AM
NITE_HOUR EQU 18 ; 6 PM
NOON_HOUR EQU 12 ; 12 PM
MAX_HOUR EQU 24 ; 12 AM
DEF MORN_HOUR EQU 4 ; 4 AM
DEF DAY_HOUR EQU 10 ; 10 AM
DEF NITE_HOUR EQU 18 ; 6 PM
DEF NOON_HOUR EQU 12 ; 12 PM
DEF MAX_HOUR EQU 24 ; 12 AM
; significant money values
START_MONEY EQU 3000
MOM_MONEY EQU 2300
MAX_MONEY EQU 999999
MAX_COINS EQU 9999
DEF START_MONEY EQU 3000
DEF MOM_MONEY EQU 2300
DEF MAX_MONEY EQU 999999
DEF MAX_COINS EQU 9999
; link record
MAX_LINK_RECORD EQU 9999
DEF MAX_LINK_RECORD EQU 9999
; day-care
MAX_DAY_CARE_EXP EQU $500000
DEF MAX_DAY_CARE_EXP EQU $500000
; hall of fame
HOF_MASTER_COUNT EQU 200
DEF HOF_MASTER_COUNT EQU 200

View File

@ -53,11 +53,11 @@
const EZCHAT_FAREWELLS
const EZCHAT_THISANDTHAT
NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
DEF NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
MOBILE_PHONE_NUMBER_LENGTH EQU 20
DEF MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
DEF MOBILE_PHONE_NUMBER_LENGTH EQU 20
; Maximum amount of time allowed for mobile battles each day
MOBILE_BATTLE_ALLOWED_SECONDS EQU 0
MOBILE_BATTLE_ALLOWED_MINUTES EQU 10
DEF MOBILE_BATTLE_ALLOWED_SECONDS EQU 0
DEF MOBILE_BATTLE_ALLOWED_MINUTES EQU 10

View File

@ -257,7 +257,7 @@
const ROCK_SMASH ; f9
const WHIRLPOOL ; fa
const BEAT_UP ; fb
NUM_ATTACKS EQU const_value - 1
DEF NUM_ATTACKS EQU const_value - 1
; Battle animations use the same constants as the moves up to this point
const_next $ff
@ -285,7 +285,7 @@ NUM_ATTACKS EQU const_value - 1
const ANIM_WOBBLE ; 113
const ANIM_SHAKE ; 114
const ANIM_HIT_CONFUSION ; 115
NUM_BATTLE_ANIMS EQU const_value - 1
DEF NUM_BATTLE_ANIMS EQU const_value - 1
; wNumHits uses offsets from ANIM_MISS
const_def

View File

@ -157,4 +157,4 @@
const EFFECT_BEAT_UP
const EFFECT_FLY
const EFFECT_DEFENSE_CURL
NUM_MOVE_EFECTS EQU const_value
DEF NUM_MOVE_EFECTS EQU const_value

View File

@ -105,15 +105,15 @@
const MUSIC_SUICUNE_BATTLE ; 64
const MUSIC_BATTLE_TOWER_LOBBY ; 65
const MUSIC_MOBILE_CENTER ; 66
NUM_MUSIC_SONGS EQU const_value
DEF NUM_MUSIC_SONGS EQU const_value
; GetMapMusic picks music for this value (see home/map.asm)
MUSIC_MAHOGANY_MART EQU $64
DEF MUSIC_MAHOGANY_MART EQU $64
; ExitPokegearRadio_HandleMusic uses these values
RESTART_MAP_MUSIC EQU $fe
ENTER_MAP_MUSIC EQU $ff
DEF RESTART_MAP_MUSIC EQU $fe
DEF ENTER_MAP_MUSIC EQU $ff
; GetMapMusic picks music for this bit flag
RADIO_TOWER_MUSIC_F EQU 7
RADIO_TOWER_MUSIC EQU 1 << RADIO_TOWER_MUSIC_F
DEF RADIO_TOWER_MUSIC_F EQU 7
DEF RADIO_TOWER_MUSIC EQU 1 << RADIO_TOWER_MUSIC_F

View File

@ -1,16 +1,16 @@
; npctrade struct members (see data/events/npc_trades.asm)
rsreset
NPCTRADE_DIALOG rb
NPCTRADE_GIVEMON rb
NPCTRADE_GETMON rb
NPCTRADE_NICKNAME rb MON_NAME_LENGTH
NPCTRADE_DVS rw
NPCTRADE_ITEM rb
NPCTRADE_OT_ID rw
NPCTRADE_OT_NAME rb NAME_LENGTH
NPCTRADE_GENDER rb
rb_skip
NPCTRADE_STRUCT_LENGTH EQU _RS
DEF NPCTRADE_DIALOG rb
DEF NPCTRADE_GIVEMON rb
DEF NPCTRADE_GETMON rb
DEF NPCTRADE_NICKNAME rb MON_NAME_LENGTH
DEF NPCTRADE_DVS rw
DEF NPCTRADE_ITEM rb
DEF NPCTRADE_OT_ID rw
DEF NPCTRADE_OT_NAME rb NAME_LENGTH
DEF NPCTRADE_GENDER rb
rb_skip
DEF NPCTRADE_STRUCT_LENGTH EQU _RS
; NPCTrades indexes (see data/events/npc_trades.asm)
const_def
@ -21,7 +21,7 @@ NPCTRADE_STRUCT_LENGTH EQU _RS
const NPC_TRADE_CHRIS ; 4
const NPC_TRADE_KIM ; 5
const NPC_TRADE_FOREST ; 6
NUM_NPC_TRADES EQU const_value
DEF NUM_NPC_TRADES EQU const_value
; trade gender limits
const_def

View File

@ -38,7 +38,7 @@
const PHONE_HIKER_PARRY
const PHONE_PICNICKER_ERIN
const PHONE_BUENA
NUM_PHONE_CONTACTS EQU const_value - 1
DEF NUM_PHONE_CONTACTS EQU const_value - 1
; SpecialPhoneCallList indexes (see data/phone/special_calls.asm)
const_def
@ -51,22 +51,22 @@ NUM_PHONE_CONTACTS EQU const_value - 1
const SPECIALCALL_BIKESHOP
const SPECIALCALL_WORRIED
const SPECIALCALL_MASTERBALL
NUM_SPECIALCALLS EQU const_value - 1
SPECIALCALL_SIZE EQU 6
DEF NUM_SPECIALCALLS EQU const_value - 1
DEF SPECIALCALL_SIZE EQU 6
; phone struct members
rsreset
PHONE_CONTACT_TRAINER_CLASS rb
PHONE_CONTACT_TRAINER_NUMBER rb
PHONE_CONTACT_MAP_GROUP rb
PHONE_CONTACT_MAP_NUMBER rb
PHONE_CONTACT_SCRIPT1_TIME rb
PHONE_CONTACT_SCRIPT1_BANK rb
PHONE_CONTACT_SCRIPT1_ADDR rw
PHONE_CONTACT_SCRIPT2_TIME rb
PHONE_CONTACT_SCRIPT2_BANK rb
PHONE_CONTACT_SCRIPT2_ADDR rw
PHONE_CONTACT_SIZE EQU _RS
DEF PHONE_CONTACT_TRAINER_CLASS rb
DEF PHONE_CONTACT_TRAINER_NUMBER rb
DEF PHONE_CONTACT_MAP_GROUP rb
DEF PHONE_CONTACT_MAP_NUMBER rb
DEF PHONE_CONTACT_SCRIPT1_TIME rb
DEF PHONE_CONTACT_SCRIPT1_BANK rb
DEF PHONE_CONTACT_SCRIPT1_ADDR rw
DEF PHONE_CONTACT_SCRIPT2_TIME rb
DEF PHONE_CONTACT_SCRIPT2_BANK rb
DEF PHONE_CONTACT_SCRIPT2_ADDR rw
DEF PHONE_CONTACT_SIZE EQU _RS
; maximum number of pokegear contacts
CONTACT_LIST_SIZE EQU 10
DEF CONTACT_LIST_SIZE EQU 10

View File

@ -170,7 +170,7 @@
const DRAGONITE ; 95
const MEWTWO ; 96
const MEW ; 97
JOHTO_POKEMON EQU const_value
DEF JOHTO_POKEMON EQU const_value
const CHIKORITA ; 98
const BAYLEEF ; 99
const MEGANIUM ; 9a
@ -271,7 +271,7 @@ JOHTO_POKEMON EQU const_value
const LUGIA ; f9
const HO_OH ; fa
const CELEBI ; fb
NUM_POKEMON EQU const_value - 1
DEF NUM_POKEMON EQU const_value - 1
const_skip ; fc
const EGG ; fd
@ -310,4 +310,4 @@ NUM_POKEMON EQU const_value - 1
const UNOWN_X ; 24
const UNOWN_Y ; 25
const UNOWN_Z ; 26
NUM_UNOWN EQU const_value - 1 ; 26
DEF NUM_UNOWN EQU const_value - 1 ; 26

View File

@ -1,44 +1,44 @@
; 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_SAT rb
BASE_SDF rb
BASE_TYPES rw
DEF BASE_HP rb
DEF BASE_ATK rb
DEF BASE_DEF rb
DEF BASE_SPD rb
DEF BASE_SAT rb
DEF BASE_SDF rb
DEF BASE_TYPES rw
rsset BASE_TYPES
BASE_TYPE_1 rb
BASE_TYPE_2 rb
BASE_CATCH_RATE rb
BASE_EXP rb
BASE_ITEMS rw
DEF BASE_TYPE_1 rb
DEF BASE_TYPE_2 rb
DEF BASE_CATCH_RATE rb
DEF BASE_EXP rb
DEF BASE_ITEMS rw
rsset BASE_ITEMS
BASE_ITEM_1 rb
BASE_ITEM_2 rb
BASE_GENDER rb
rb_skip
BASE_EGG_STEPS rb
rb_skip
BASE_PIC_SIZE rb
BASE_FRONTPIC rw
BASE_BACKPIC rw
BASE_GROWTH_RATE rb
BASE_EGG_GROUPS rb
BASE_TMHM rb (NUM_TM_HM_TUTOR + 7) / 8
BASE_DATA_SIZE EQU _RS
DEF BASE_ITEM_1 rb
DEF BASE_ITEM_2 rb
DEF BASE_GENDER rb
rb_skip
DEF BASE_EGG_STEPS rb
rb_skip
DEF BASE_PIC_SIZE rb
DEF BASE_FRONTPIC rw
DEF BASE_BACKPIC rw
DEF BASE_GROWTH_RATE rb
DEF BASE_EGG_GROUPS rb
DEF BASE_TMHM rb (NUM_TM_HM_TUTOR + 7) / 8
DEF BASE_DATA_SIZE EQU _RS
; gender ratio constants
GENDER_F0 EQU 0 percent
GENDER_F12_5 EQU 12 percent + 1
GENDER_F25 EQU 25 percent
GENDER_F50 EQU 50 percent
GENDER_F75 EQU 75 percent
GENDER_F100 EQU 100 percent - 1
GENDER_UNKNOWN EQU -1
DEF GENDER_F0 EQU 0 percent
DEF GENDER_F12_5 EQU 12 percent + 1
DEF GENDER_F25 EQU 25 percent
DEF GENDER_F50 EQU 50 percent
DEF GENDER_F75 EQU 75 percent
DEF GENDER_F100 EQU 100 percent - 1
DEF GENDER_UNKNOWN EQU -1
; wBaseGrowthRate values
; GrowthRates indexes (see data/growth_rates.asm)
@ -49,7 +49,7 @@ GENDER_UNKNOWN EQU -1
const GROWTH_MEDIUM_SLOW
const GROWTH_FAST
const GROWTH_SLOW
NUM_GROWTH_RATES EQU const_value
DEF NUM_GROWTH_RATES EQU const_value
; wBaseEggGroups values
const_def 1
@ -70,82 +70,82 @@ NUM_GROWTH_RATES EQU const_value
const EGG_NONE ; f (Undiscovered)
; pokedex entries (see data/pokemon/dex_entries.asm)
NUM_DEX_ENTRY_BANKS EQU 4
DEF NUM_DEX_ENTRY_BANKS EQU 4
; party_struct members (see macros/wram.asm)
rsreset
MON_SPECIES rb
MON_ITEM rb
MON_MOVES rb NUM_MOVES
MON_ID rw
MON_EXP rb 3
MON_STAT_EXP rw NUM_EXP_STATS
DEF MON_SPECIES rb
DEF MON_ITEM rb
DEF MON_MOVES rb NUM_MOVES
DEF MON_ID rw
DEF MON_EXP rb 3
DEF MON_STAT_EXP rw NUM_EXP_STATS
rsset MON_STAT_EXP
MON_HP_EXP rw
MON_ATK_EXP rw
MON_DEF_EXP rw
MON_SPD_EXP rw
MON_SPC_EXP rw
MON_DVS rw
MON_PP rb NUM_MOVES
MON_HAPPINESS rb
MON_POKERUS rb
MON_CAUGHTDATA rw
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 MON_HAPPINESS rb
DEF MON_POKERUS rb
DEF MON_CAUGHTDATA rw
rsset MON_CAUGHTDATA
MON_CAUGHTTIME rb
MON_CAUGHTGENDER rb
DEF MON_CAUGHTTIME rb
DEF MON_CAUGHTGENDER rb
rsset MON_CAUGHTDATA
MON_CAUGHTLEVEL rb
MON_CAUGHTLOCATION rb
MON_LEVEL rb
BOXMON_STRUCT_LENGTH EQU _RS
MON_STATUS rb
rb_skip
MON_HP rw
MON_MAXHP rw
MON_STATS rw NUM_BATTLE_STATS
DEF MON_CAUGHTLEVEL rb
DEF MON_CAUGHTLOCATION rb
DEF MON_LEVEL rb
DEF BOXMON_STRUCT_LENGTH EQU _RS
DEF MON_STATUS rb
rb_skip
DEF MON_HP rw
DEF MON_MAXHP rw
DEF MON_STATS rw NUM_BATTLE_STATS
rsset MON_STATS
MON_ATK rw
MON_DEF rw
MON_SPD rw
MON_SAT rw
MON_SDF rw
PARTYMON_STRUCT_LENGTH EQU _RS
DEF MON_ATK rw
DEF MON_DEF rw
DEF MON_SPD rw
DEF MON_SAT rw
DEF MON_SDF rw
DEF PARTYMON_STRUCT_LENGTH EQU _RS
NICKNAMED_MON_STRUCT_LENGTH EQU PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH
REDMON_STRUCT_LENGTH EQU 44
DEF NICKNAMED_MON_STRUCT_LENGTH EQU PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH
DEF REDMON_STRUCT_LENGTH EQU 44
; caught data
CAUGHT_TIME_MASK EQU %11000000
CAUGHT_LEVEL_MASK EQU %00111111
DEF CAUGHT_TIME_MASK EQU %11000000
DEF CAUGHT_LEVEL_MASK EQU %00111111
CAUGHT_GENDER_MASK EQU %10000000
CAUGHT_LOCATION_MASK EQU %01111111
DEF CAUGHT_GENDER_MASK EQU %10000000
DEF CAUGHT_LOCATION_MASK EQU %01111111
CAUGHT_BY_UNKNOWN EQU 0
CAUGHT_BY_GIRL EQU 1
CAUGHT_BY_BOY EQU 2
DEF CAUGHT_BY_UNKNOWN EQU 0
DEF CAUGHT_BY_GIRL EQU 1
DEF CAUGHT_BY_BOY EQU 2
CAUGHT_EGG_LEVEL EQU 1
DEF CAUGHT_EGG_LEVEL EQU 1
MON_CRY_LENGTH EQU 6
DEF MON_CRY_LENGTH EQU 6
; maximum number of party pokemon
PARTY_LENGTH EQU 6
DEF PARTY_LENGTH EQU 6
; boxes
MONS_PER_BOX EQU 20
DEF MONS_PER_BOX EQU 20
; box: count, species, mons, OTs, nicknames, padding
BOX_LENGTH EQU 1 + MONS_PER_BOX + 1 + (BOXMON_STRUCT_LENGTH + NAME_LENGTH + MON_NAME_LENGTH) * MONS_PER_BOX + 2 ; $450
NUM_BOXES EQU 14
DEF BOX_LENGTH EQU 1 + MONS_PER_BOX + 1 + (BOXMON_STRUCT_LENGTH + NAME_LENGTH + MON_NAME_LENGTH) * MONS_PER_BOX + 2 ; $450
DEF NUM_BOXES EQU 14
; hall of fame
; hof_mon: species, id, dvs, level, nicknames
HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; $10
DEF HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; $10
; hall_of_fame: win count, party, terminator
HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; $62
NUM_HOF_TEAMS EQU 30
DEF HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; $62
DEF NUM_HOF_TEAMS EQU 30
; evolution types (used in data/pokemon/evos_attacks.asm)
const_def 1
@ -169,14 +169,14 @@ NUM_HOF_TEAMS EQU 30
; wild data
NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
DEF NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
DEF NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
GRASS_WILDDATA_LENGTH EQU 2 + 3 + NUM_GRASSMON * 2 * 3
WATER_WILDDATA_LENGTH EQU 2 + 1 + NUM_WATERMON * 2
FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
DEF GRASS_WILDDATA_LENGTH EQU 2 + 3 + NUM_GRASSMON * 2 * 3
DEF WATER_WILDDATA_LENGTH EQU 2 + 1 + NUM_WATERMON * 2
DEF FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
DEF NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
; treemon sets
; TreeMons indexes (see data/wild/treemons.asm)
@ -189,7 +189,7 @@ NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
const TREEMON_SET_LAKE
const TREEMON_SET_FOREST
const TREEMON_SET_ROCK
NUM_TREEMON_SETS EQU const_value
DEF NUM_TREEMON_SETS EQU const_value
; treemon scores
const_def
@ -218,16 +218,16 @@ NUM_TREEMON_SETS EQU const_value
const HAPPINESS_REVIVALHERB ; 11
const HAPPINESS_GROOMING ; 12
const HAPPINESS_GAINLEVELATHOME ; 13
NUM_HAPPINESS_CHANGES EQU const_value - 1
DEF NUM_HAPPINESS_CHANGES EQU const_value - 1
; significant happiness values
BASE_HAPPINESS EQU 70
FRIEND_BALL_HAPPINESS EQU 200
HAPPINESS_TO_EVOLVE EQU 220
HAPPINESS_THRESHOLD_1 EQU 100
HAPPINESS_THRESHOLD_2 EQU 200
DEF BASE_HAPPINESS EQU 70
DEF FRIEND_BALL_HAPPINESS EQU 200
DEF HAPPINESS_TO_EVOLVE EQU 220
DEF HAPPINESS_THRESHOLD_1 EQU 100
DEF HAPPINESS_THRESHOLD_2 EQU 200
; PP
PP_UP_MASK EQU %11000000
PP_UP_ONE EQU %01000000
PP_MASK EQU %00111111
DEF PP_UP_MASK EQU %11000000
DEF PP_UP_ONE EQU %01000000
DEF PP_MASK EQU %00111111

View File

@ -15,7 +15,7 @@
const POKE_FLUTE_RADIO ; 08
const UNOWN_RADIO ; 09
const EVOLUTION_RADIO ; 0a
NUM_RADIO_CHANNELS EQU const_value
DEF NUM_RADIO_CHANNELS EQU const_value
; internal indexes for channel segments
const OAKS_POKEMON_TALK_2 ; 0b
const OAKS_POKEMON_TALK_3 ; 0c
@ -94,7 +94,7 @@ NUM_RADIO_CHANNELS EQU const_value
const POKEDEX_SHOW_6 ; 55
const POKEDEX_SHOW_7 ; 56
const POKEDEX_SHOW_8 ; 57
NUM_RADIO_SEGMENTS EQU const_value
DEF NUM_RADIO_SEGMENTS EQU const_value
; PlayRadioStationPointers indexes (see engine/pokegear/pokegear.asm)
const_def
@ -107,21 +107,21 @@ NUM_RADIO_SEGMENTS EQU const_value
const MAPRADIO_PLACES_PEOPLE
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
NUM_MAP_RADIO_STATIONS EQU const_value
DEF NUM_MAP_RADIO_STATIONS EQU const_value
; These tables in engine/pokegear/radio.asm are all sized to a power of 2
; so there's no need for a rejection sampling loop
NUM_OAKS_POKEMON_TALK_ADVERBS EQU 16 ; OaksPKMNTalk8.Adverbs
NUM_OAKS_POKEMON_TALK_ADJECTIVES EQU 16 ; OaksPKMNTalk9.Adjectives
NUM_PNP_PEOPLE_ADJECTIVES EQU 16 ; PeoplePlaces5.Adjectives
NUM_PNP_PLACES_ADJECTIVES EQU 16 ; PeoplePlaces7.Adjectives
DEF NUM_OAKS_POKEMON_TALK_ADVERBS EQU 16 ; OaksPKMNTalk8.Adverbs
DEF NUM_OAKS_POKEMON_TALK_ADJECTIVES EQU 16 ; OaksPKMNTalk9.Adjectives
DEF NUM_PNP_PEOPLE_ADJECTIVES EQU 16 ; PeoplePlaces5.Adjectives
DEF NUM_PNP_PLACES_ADJECTIVES EQU 16 ; PeoplePlaces7.Adjectives
; BuenasPasswordTable sizes (see data/radio/buenas_passwords.asm)
NUM_PASSWORD_CATEGORIES EQU 11
NUM_PASSWORDS_PER_CATEGORY EQU 3
DEF NUM_PASSWORD_CATEGORIES EQU 11
DEF NUM_PASSWORDS_PER_CATEGORY EQU 3
; BuenaPrizeItems size (see data/items/buena_prizes.asm)
NUM_BUENA_PRIZES EQU 9
DEF NUM_BUENA_PRIZES EQU 9
; GetBuenasPassword.StringFunctionJumpTable indexes (see engine/pokegear/radio.asm)
const_def
@ -129,4 +129,4 @@ NUM_BUENA_PRIZES EQU 9
const BUENA_ITEM
const BUENA_MOVE
const BUENA_STRING
NUM_BUENA_FUNCTIONS EQU const_value
DEF NUM_BUENA_FUNCTIONS EQU const_value

View File

@ -2,13 +2,13 @@
; Each scene_script and coord_event is associated with a current scene ID.
; Scene variables default to 0.
SCENE_DEFAULT EQU 0
DEF SCENE_DEFAULT EQU 0
; Often a map will have a one-time default event for scene 0, and switch to a
; do-nothing scene 1 when the event finishes.
SCENE_FINISHED EQU 1
DEF SCENE_FINISHED EQU 1
; A coord_event for scene -1 will always activate, regardless of the map's
; scene variable value.
SCENE_ALWAYS EQU -1
DEF SCENE_ALWAYS EQU -1
; wPokecenter2FSceneID
const_def 1

View File

@ -32,10 +32,10 @@
const SCGB_TRAINER_OR_MON_FRONTPIC_PALS
const SCGB_MYSTERY_GIFT
const SCGB_1E
NUM_SCGB_LAYOUTS EQU const_value
DEF NUM_SCGB_LAYOUTS EQU const_value
SCGB_PARTY_MENU_HP_BARS EQU $fc
SCGB_DEFAULT EQU $ff
DEF SCGB_PARTY_MENU_HP_BARS EQU $fc
DEF SCGB_DEFAULT EQU $ff
; GetCrystalCGBLayout arguments (see engine/gfx/crystal_layouts.asm)
const_def
@ -125,7 +125,7 @@ SCGB_DEFAULT EQU $ff
const PREDEFPAL_UNOWN_PUZZLE
const PREDEFPAL_GAMEFREAK_LOGO_OB
const PREDEFPAL_GAMEFREAK_LOGO_BG
NUM_PREDEF_PALS EQU const_value
DEF NUM_PREDEF_PALS EQU const_value
; SGB system command codes
; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_System_Command_Table
@ -156,4 +156,4 @@ NUM_PREDEF_PALS EQU const_value
const SGB_MASK_EN
const SGB_OBJ_TRN
PALPACKET_LENGTH EQU $10
DEF PALPACKET_LENGTH EQU $10

View File

@ -1,15 +1,15 @@
; object constants
PLAYER EQU 0
LAST_TALKED EQU -2
DEF PLAYER EQU 0
DEF LAST_TALKED EQU -2
; string buffer constants
const_def
const STRING_BUFFER_3 ; use wStringBuffer3
const STRING_BUFFER_4 ; use wStringBuffer4
const STRING_BUFFER_5 ; use wStringBuffer5
NUM_STRING_BUFFERS EQU const_value
DEF NUM_STRING_BUFFERS EQU const_value
STRING_BUFFER_LENGTH EQU 19
DEF STRING_BUFFER_LENGTH EQU 19
; checkmoney/takemoney accounts
const_def
@ -72,12 +72,12 @@ STRING_BUFFER_LENGTH EQU 19
const VAR_BLUECARDBALANCE ; 18
const VAR_BUENASPASSWORD ; 19
const VAR_KENJI_BREAK ; 1a
NUM_VARS EQU const_value ; 1b
DEF NUM_VARS EQU const_value
; variable action types
RETVAR_STRBUF2 EQU 0 << 6
RETVAR_ADDR_DE EQU 1 << 6
RETVAR_EXECUTE EQU 2 << 6
DEF RETVAR_STRBUF2 EQU 0 << 6
DEF RETVAR_ADDR_DE EQU 1 << 6
DEF RETVAR_EXECUTE EQU 2 << 6
; PlayerEventScriptPointers indexes (see engine/overworld/events.asm)
const_def -1
@ -92,7 +92,7 @@ RETVAR_EXECUTE EQU 2 << 6
const PLAYEREVENT_WHITEOUT
const PLAYEREVENT_HATCH
const PLAYEREVENT_JOYCHANGEFACING
NUM_PLAYER_EVENTS EQU const_value
DEF NUM_PLAYER_EVENTS EQU const_value
; PlayerMovementPointers indexes (see engine/overworld/events.asm)
const_def
@ -104,15 +104,15 @@ NUM_PLAYER_EVENTS EQU const_value
const PLAYERMOVEMENT_CONTINUE
const PLAYERMOVEMENT_EXIT_WATER
const PLAYERMOVEMENT_JUMP
NUM_PLAYER_MOVEMENTS EQU const_value
DEF NUM_PLAYER_MOVEMENTS EQU const_value
; script data sizes (see macros/scripts/maps.asm)
SCENE_SCRIPT_SIZE EQU 4 ; scene_script
CALLBACK_SIZE EQU 3 ; callback
WARP_EVENT_SIZE EQU 5 ; warp_event
COORD_EVENT_SIZE EQU 8 ; coord_event
BG_EVENT_SIZE EQU 5 ; bg_event
OBJECT_EVENT_SIZE EQU 13 ; object_event
DEF SCENE_SCRIPT_SIZE EQU 4 ; scene_script
DEF CALLBACK_SIZE EQU 3 ; callback
DEF WARP_EVENT_SIZE EQU 5 ; warp_event
DEF COORD_EVENT_SIZE EQU 8 ; coord_event
DEF BG_EVENT_SIZE EQU 5 ; bg_event
DEF OBJECT_EVENT_SIZE EQU 13 ; object_event
; bg_event types
; BGEventJumptable indexes (see engine/overworld/events.asm)
@ -126,7 +126,7 @@ OBJECT_EVENT_SIZE EQU 13 ; object_event
const BGEVENT_IFNOTSET
const BGEVENT_ITEM
const BGEVENT_COPY
NUM_BGEVENTS EQU const_value
DEF NUM_BGEVENTS EQU const_value
; object_event types
; ObjectEventTypeArray indexes (see engine/overworld/events.asm)
@ -138,17 +138,17 @@ NUM_BGEVENTS EQU const_value
const OBJECTTYPE_4
const OBJECTTYPE_5
const OBJECTTYPE_6
NUM_OBJECT_TYPES EQU const_value
DEF NUM_OBJECT_TYPES EQU const_value
; command queue members
CMDQUEUE_TYPE EQU 0
CMDQUEUE_ADDR EQU 1
CMDQUEUE_02 EQU 2
CMDQUEUE_03 EQU 3
CMDQUEUE_04 EQU 4
CMDQUEUE_05 EQU 5
CMDQUEUE_ENTRY_SIZE EQU 6
CMDQUEUE_CAPACITY EQU 4
DEF CMDQUEUE_TYPE EQU 0
DEF CMDQUEUE_ADDR EQU 1
DEF CMDQUEUE_02 EQU 2
DEF CMDQUEUE_03 EQU 3
DEF CMDQUEUE_04 EQU 4
DEF CMDQUEUE_05 EQU 5
DEF CMDQUEUE_ENTRY_SIZE EQU 6
DEF CMDQUEUE_CAPACITY EQU 4
; HandleQueuedCommand.Jumptable indexes (see engine/overworld/events.asm)
const_def
@ -157,7 +157,7 @@ CMDQUEUE_CAPACITY EQU 4
const CMDQUEUE_STONETABLE
const CMDQUEUE_TYPE3
const CMDQUEUE_TYPE4
NUM_CMDQUEUE_TYPES EQU const_value
DEF NUM_CMDQUEUE_TYPES EQU const_value
; elevfloor macro values
; ElevatorFloorNames indexes (see data/events/elevator_floors.asm)
@ -178,7 +178,7 @@ NUM_CMDQUEUE_TYPES EQU const_value
const FLOOR_10F
const FLOOR_11F
const FLOOR_ROOF
NUM_FLOORS EQU const_value
DEF NUM_FLOORS EQU const_value
; showemote arguments
; Emotes indexes (see data/sprites/emotes.asm)
@ -195,9 +195,9 @@ NUM_FLOORS EQU const_value
const EMOTE_ROD
const EMOTE_BOULDER_DUST
const EMOTE_GRASS_RUSTLE
NUM_EMOTES EQU const_value
EMOTE_FROM_MEM EQU -1
EMOTE_LENGTH EQU 6
DEF NUM_EMOTES EQU const_value
DEF EMOTE_FROM_MEM EQU -1
DEF EMOTE_LENGTH EQU 6
; fruittree arguments
; FruitTreeItems indexes (see data/items/fruit_trees.asm)
@ -232,7 +232,7 @@ EMOTE_LENGTH EQU 6
const FRUITTREE_PEWTER_CITY_1 ; 1c
const FRUITTREE_PEWTER_CITY_2 ; 1d
const FRUITTREE_FUCHSIA_CITY ; 1e
NUM_FRUIT_TREES EQU const_value - 1
DEF NUM_FRUIT_TREES EQU const_value - 1
; describedecoration arguments
; DescribeDecoration.JumpTable indexes (see engine/overworld/decorations.asm)
@ -242,7 +242,7 @@ NUM_FRUIT_TREES EQU const_value - 1
const DECODESC_RIGHT_DOLL ; 2
const DECODESC_BIG_DOLL ; 3
const DECODESC_CONSOLE ; 4
NUM_DECODESCS EQU const_value
DEF NUM_DECODESCS EQU const_value
; swarm arguments
; StoreSwarmMapIndices arguments
@ -284,12 +284,12 @@ NUM_DECODESCS EQU const_value
const BUGCONTEST_NO_CATCH ; 2
; Bug-Catching Contest values
BUG_CONTEST_BALLS EQU 20
BUG_CONTEST_MINUTES EQU 20
BUG_CONTEST_SECONDS EQU 0
BUG_CONTEST_PLAYER EQU 1
NUM_BUG_CONTESTANTS EQU 10 ; not counting the player
BUG_CONTESTANT_SIZE EQU 4
DEF BUG_CONTEST_BALLS EQU 20
DEF BUG_CONTEST_MINUTES EQU 20
DEF BUG_CONTEST_SECONDS EQU 0
DEF BUG_CONTEST_PLAYER EQU 1
DEF NUM_BUG_CONTESTANTS EQU 10 ; not counting the player
DEF BUG_CONTESTANT_SIZE EQU 4
; HealMachineAnim setval arguments
; HealMachineAnim.Pointers indexes (see engine/events/heal_machine_anim.asm)
@ -305,7 +305,7 @@ BUG_CONTESTANT_SIZE EQU 4
const UNOWNPUZZLE_OMANYTE ; 1
const UNOWNPUZZLE_AERODACTYL ; 2
const UNOWNPUZZLE_HO_OH ; 3
NUM_UNOWN_PUZZLES EQU const_value
DEF NUM_UNOWN_PUZZLES EQU const_value
; DisplayUnownWords setval arguments
; UnownWalls and MenuHeaders_UnownWalls indexes (see data/events/unown_walls.asm)

View File

@ -7,41 +7,41 @@
const LINK_MOBILE ; 4
; hSerialReceive high nybbles
SERIAL_TIMECAPSULE EQU $60
SERIAL_TRADECENTER EQU $70
SERIAL_BATTLE EQU $80
DEF SERIAL_TIMECAPSULE EQU $60
DEF SERIAL_TRADECENTER EQU $70
DEF SERIAL_BATTLE EQU $80
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
START_TRANSFER_EXTERNAL_CLOCK EQU $80 ; 1 << rSC_ON
START_TRANSFER_INTERNAL_CLOCK EQU $81 ; (1 << rSC_ON) | 1
DEF START_TRANSFER_EXTERNAL_CLOCK EQU $80 ; 1 << rSC_ON
DEF START_TRANSFER_INTERNAL_CLOCK EQU $81 ; (1 << rSC_ON) | 1
; hSerialConnectionStatus
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
; length of a patch list (less than any of the signal bytes)
SERIAL_PATCH_LIST_LENGTH EQU $fc
DEF SERIAL_PATCH_LIST_LENGTH EQU $fc
; 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
; used to replace SERIAL_NO_DATA_BYTE
SERIAL_PATCH_REPLACEMENT_BYTE EQU $ff
DEF SERIAL_PATCH_REPLACEMENT_BYTE EQU $ff
SERIAL_PREAMBLE_LENGTH EQU 6
SERIAL_RN_PREAMBLE_LENGTH EQU 7
SERIAL_RNS_LENGTH EQU 10
DEF SERIAL_PREAMBLE_LENGTH EQU 6
DEF SERIAL_RN_PREAMBLE_LENGTH EQU 7
DEF SERIAL_RNS_LENGTH EQU 10
SERIAL_MAIL_PREAMBLE_BYTE EQU $20
SERIAL_MAIL_REPLACEMENT_BYTE EQU $21
SERIAL_MAIL_PREAMBLE_LENGTH EQU 5
DEF SERIAL_MAIL_PREAMBLE_BYTE EQU $20
DEF SERIAL_MAIL_REPLACEMENT_BYTE EQU $21
DEF SERIAL_MAIL_PREAMBLE_LENGTH EQU 5
; timeout duration after exchanging a byte
SERIAL_LINK_BYTE_TIMEOUT EQU $5000
DEF SERIAL_LINK_BYTE_TIMEOUT EQU $5000
MAX_MYSTERY_GIFT_PARTNERS EQU 5
DEF MAX_MYSTERY_GIFT_PARTNERS EQU 5

View File

@ -208,4 +208,4 @@
const SFX_TWO_PC_BEEPS ; cc
const SFX_4_NOTE_DITTY ; cd
const SFX_TWINKLE ; ce
NUM_SFX EQU const_value
DEF NUM_SFX EQU const_value

View File

@ -1,23 +1,23 @@
; sprite_anim_struct members (see macros/wram.asm)
rsreset
SPRITEANIMSTRUCT_INDEX rb ; 0
SPRITEANIMSTRUCT_FRAMESET_ID rb ; 1
SPRITEANIMSTRUCT_ANIM_SEQ_ID rb ; 2
SPRITEANIMSTRUCT_TILE_ID rb ; 3
SPRITEANIMSTRUCT_XCOORD rb ; 4
SPRITEANIMSTRUCT_YCOORD rb ; 5
SPRITEANIMSTRUCT_XOFFSET rb ; 6
SPRITEANIMSTRUCT_YOFFSET rb ; 7
SPRITEANIMSTRUCT_DURATION rb ; 8
SPRITEANIMSTRUCT_DURATIONOFFSET rb ; 9
SPRITEANIMSTRUCT_FRAME rb ; a
SPRITEANIMSTRUCT_JUMPTABLE_INDEX rb ; b
SPRITEANIMSTRUCT_VAR1 rb ; c
SPRITEANIMSTRUCT_VAR2 rb ; d
SPRITEANIMSTRUCT_VAR3 rb ; e
SPRITEANIMSTRUCT_VAR4 rb ; f
SPRITEANIMSTRUCT_LENGTH EQU _RS
NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
DEF SPRITEANIMSTRUCT_INDEX rb ; 0
DEF SPRITEANIMSTRUCT_FRAMESET_ID rb ; 1
DEF SPRITEANIMSTRUCT_ANIM_SEQ_ID rb ; 2
DEF SPRITEANIMSTRUCT_TILE_ID rb ; 3
DEF SPRITEANIMSTRUCT_XCOORD rb ; 4
DEF SPRITEANIMSTRUCT_YCOORD rb ; 5
DEF SPRITEANIMSTRUCT_XOFFSET rb ; 6
DEF SPRITEANIMSTRUCT_YOFFSET rb ; 7
DEF SPRITEANIMSTRUCT_DURATION rb ; 8
DEF SPRITEANIMSTRUCT_DURATIONOFFSET rb ; 9
DEF SPRITEANIMSTRUCT_FRAME rb ; a
DEF SPRITEANIMSTRUCT_JUMPTABLE_INDEX rb ; b
DEF SPRITEANIMSTRUCT_VAR1 rb ; c
DEF SPRITEANIMSTRUCT_VAR2 rb ; d
DEF SPRITEANIMSTRUCT_VAR3 rb ; e
DEF SPRITEANIMSTRUCT_VAR4 rb ; f
DEF SPRITEANIMSTRUCT_LENGTH EQU _RS
DEF NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
; wSpriteAnimDict keys (see wram.asm)
; UnusedSpriteAnimGFX indexes (see data/sprite_anims/unused_gfx.asm)
@ -28,10 +28,10 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_DICT_GS_SPLASH ; 6
const SPRITE_ANIM_DICT_SLOTS ; 7
const SPRITE_ANIM_DICT_ARROW_CURSOR ; 8
NUM_SPRITE_ANIM_GFX EQU const_value
DEF NUM_SPRITE_ANIM_GFX EQU const_value
; wSpriteAnimDict size (see wram.asm)
NUM_SPRITEANIMDICT_ENTRIES EQU 10
DEF NUM_SPRITEANIMDICT_ENTRIES EQU 10
; SpriteAnimSeqData indexes (see data/sprite_anims/sequences.asm)
const_def
@ -80,7 +80,7 @@ NUM_SPRITEANIMDICT_ENTRIES EQU 10
const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a
const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
const SPRITE_ANIM_INDEX_CELEBI ; 2c
NUM_SPRITE_ANIM_INDEXES EQU const_value
DEF NUM_SPRITE_ANIM_INDEXES EQU const_value
; DoAnimFrame.Jumptable indexes (see engine/gfx/sprite_anims.asm)
const_def
@ -119,7 +119,7 @@ NUM_SPRITE_ANIM_INDEXES EQU const_value
const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20
const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21
const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22
NUM_SPRITE_ANIM_SEQS EQU const_value
DEF NUM_SPRITE_ANIM_SEQS EQU const_value
; SpriteAnimFrameData indexes (see data/sprite_anims/framesets.asm)
const_def
@ -189,7 +189,7 @@ NUM_SPRITE_ANIM_SEQS EQU const_value
const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
NUM_SPRITE_ANIM_FRAMESETS EQU const_value
DEF NUM_SPRITE_ANIM_FRAMESETS EQU const_value
; SpriteAnimOAMData indexes (see data/sprite_anims/oam.asm)
const_def
@ -333,4 +333,4 @@ NUM_SPRITE_ANIM_FRAMESETS EQU const_value
const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 ; 89
const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 ; 8a
const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 ; 8b
NUM_SPRITE_ANIM_OAMSETS EQU const_value
DEF NUM_SPRITE_ANIM_OAMSETS EQU const_value

View File

@ -104,11 +104,11 @@
const SPRITE_ENTEI ; 64
const SPRITE_RAIKOU ; 65
const SPRITE_STANDING_YOUNGSTER ; 66
NUM_OVERWORLD_SPRITES EQU const_value - 1
DEF NUM_OVERWORLD_SPRITES EQU const_value - 1
; SpriteMons indexes (see data/sprites/sprite_mons.asm)
const_next $80
SPRITE_POKEMON EQU const_value
DEF SPRITE_POKEMON EQU const_value
const SPRITE_UNOWN ; 80
const SPRITE_GEODUDE ; 81
const SPRITE_GROWLITHE ; 82
@ -144,7 +144,7 @@ SPRITE_POKEMON EQU const_value
const SPRITE_GYARADOS ; a0
const SPRITE_LUGIA ; a1
const SPRITE_HO_OH ; a2
NUM_POKEMON_SPRITES EQU const_value - SPRITE_POKEMON
DEF NUM_POKEMON_SPRITES EQU const_value - SPRITE_POKEMON
; special GetMonSprite values (see engine/overworld/overworld.asm)
const_next $e0
@ -153,7 +153,7 @@ NUM_POKEMON_SPRITES EQU const_value - SPRITE_POKEMON
; wVariableSprites indexes (see wram.asm)
const_next $f0
SPRITE_VARS EQU const_value
DEF SPRITE_VARS EQU const_value
const SPRITE_CONSOLE ; f0
const SPRITE_DOLL_1 ; f1
const SPRITE_DOLL_2 ; f2

View File

@ -1,11 +1,11 @@
; overworld_sprite struct members (see data/sprites/sprites.asm)
rsreset
SPRITEDATA_ADDR rw ; 0
SPRITEDATA_SIZE rb ; 2
SPRITEDATA_BANK rb ; 3
SPRITEDATA_TYPE rb ; 4
SPRITEDATA_PALETTE rb ; 5
NUM_SPRITEDATA_FIELDS EQU _RS
DEF SPRITEDATA_ADDR rw ; 0
DEF SPRITEDATA_SIZE rb ; 2
DEF SPRITEDATA_BANK rb ; 3
DEF SPRITEDATA_TYPE rb ; 4
DEF SPRITEDATA_PALETTE rb ; 5
DEF NUM_SPRITEDATA_FIELDS EQU _RS
; sprite types
const_def 1

View File

@ -1,12 +1,12 @@
; name lengths
NAME_LENGTH EQU 11
PLAYER_NAME_LENGTH EQU 8
BOX_NAME_LENGTH EQU 9
MON_NAME_LENGTH EQU 11
MOVE_NAME_LENGTH EQU 13
ITEM_NAME_LENGTH EQU 13
TRAINER_CLASS_NAME_LENGTH EQU 13
NAME_LENGTH_JAPANESE EQU 6
DEF NAME_LENGTH EQU 11
DEF PLAYER_NAME_LENGTH EQU 8
DEF BOX_NAME_LENGTH EQU 9
DEF MON_NAME_LENGTH EQU 11
DEF MOVE_NAME_LENGTH EQU 13
DEF ITEM_NAME_LENGTH EQU 13
DEF TRAINER_CLASS_NAME_LENGTH EQU 13
DEF NAME_LENGTH_JAPANESE EQU 6
; GetName types (see home/names.asm)
const_def 1
@ -20,18 +20,18 @@ NAME_LENGTH_JAPANESE EQU 6
const MOVE_DESC_NAME_BROKEN ; 8
; see home/text.asm
BORDER_WIDTH EQU 2
TEXTBOX_WIDTH EQU SCREEN_WIDTH
TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH
TEXTBOX_HEIGHT EQU 6
TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH
TEXTBOX_X EQU 0
TEXTBOX_INNERX EQU TEXTBOX_X + 1
TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
TEXTBOX_INNERY EQU TEXTBOX_Y + 2
DEF BORDER_WIDTH EQU 2
DEF TEXTBOX_WIDTH EQU SCREEN_WIDTH
DEF TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH
DEF TEXTBOX_HEIGHT EQU 6
DEF TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH
DEF TEXTBOX_X EQU 0
DEF TEXTBOX_INNERX EQU TEXTBOX_X + 1
DEF TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
DEF TEXTBOX_INNERY EQU TEXTBOX_Y + 2
; see gfx/frames/*.png
TEXTBOX_FRAME_TILES EQU 6
DEF TEXTBOX_FRAME_TILES EQU 6
; PrintNum bit flags
const_def 5
@ -40,13 +40,13 @@ TEXTBOX_FRAME_TILES EQU 6
const PRINTNUM_LEADINGZEROS_F ; 7
; PrintNum arguments (see engine/math/print_num.asm)
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_LEFTALIGN EQU 1 << PRINTNUM_LEFTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
DEF PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
DEF PRINTNUM_LEFTALIGN EQU 1 << PRINTNUM_LEFTALIGN_F
DEF PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
; character sets (see charmap.asm)
FIRST_REGULAR_TEXT_CHAR EQU $60
FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
DEF FIRST_REGULAR_TEXT_CHAR EQU $60
DEF FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
; gfx/font/unown_font.png
FIRST_UNOWN_CHAR EQU $40
DEF FIRST_UNOWN_CHAR EQU $40

View File

@ -36,13 +36,13 @@
const TILESET_KABUTO_WORD_ROOM ; 22
const TILESET_OMANYTE_WORD_ROOM ; 23
const TILESET_AERODACTYL_WORD_ROOM ; 24
NUM_TILESETS EQU const_value - 1
DEF NUM_TILESETS EQU const_value - 1
; wTileset struct size
TILESET_LENGTH EQU 15
DEF TILESET_LENGTH EQU 15
; roof length (see gfx/tilesets/roofs)
ROOF_LENGTH EQU 9
DEF ROOF_LENGTH EQU 9
; bg palette values (see gfx/tilesets/*_palette_map.asm)
; TilesetBGPalette indexes (see gfx/tilesets/bg_tiles.pal)

View File

@ -1,8 +1,8 @@
__trainer_class__ = 0
DEF __trainer_class__ = 0
trainerclass: MACRO
\1 EQU __trainer_class__
__trainer_class__ += 1
MACRO trainerclass
DEF \1 EQU __trainer_class__
DEF __trainer_class__ += 1
const_def 1
ENDM
@ -18,16 +18,16 @@ ENDM
; - BTTrainerClassSprites (see data/trainers/sprites.asm)
; - BTTrainerClassGenders (see data/trainers/genders.asm)
; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
CHRIS EQU __trainer_class__
DEF CHRIS EQU __trainer_class__
trainerclass TRAINER_NONE ; 0
const PHONECONTACT_MOM
const PHONECONTACT_BIKESHOP
const PHONECONTACT_BILL
const PHONECONTACT_ELM
const PHONECONTACT_BUENA
NUM_NONTRAINER_PHONECONTACTS EQU const_value - 1
DEF NUM_NONTRAINER_PHONECONTACTS EQU const_value - 1
KRIS EQU __trainer_class__
DEF KRIS EQU __trainer_class__
trainerclass FALKNER ; 1
const FALKNER1
@ -703,4 +703,4 @@ KRIS EQU __trainer_class__
trainerclass MYSTICALMAN ; 43
const EUSINE
NUM_TRAINER_CLASSES EQU __trainer_class__ - 1
DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1

View File

@ -1,11 +1,11 @@
; TrainerClassAttributes struct members (see data/trainers/attributes.asm)
rsreset
TRNATTR_ITEM1 rb ; 0
TRNATTR_ITEM2 rb ; 1
TRNATTR_BASEMONEY rb ; 2
TRNATTR_AI_MOVE_WEIGHTS rw ; 3
TRNATTR_AI_ITEM_SWITCH rw ; 5
NUM_TRAINER_ATTRIBUTES EQU _RS
DEF TRNATTR_ITEM1 rb ; 0
DEF TRNATTR_ITEM2 rb ; 1
DEF TRNATTR_BASEMONEY rb ; 2
DEF TRNATTR_AI_MOVE_WEIGHTS rw ; 3
DEF TRNATTR_AI_ITEM_SWITCH rw ; 5
DEF NUM_TRAINER_ATTRIBUTES EQU _RS
; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
; AIScoringPointers indexes (see engine/battle/ai/move.asm)
@ -20,7 +20,7 @@ NUM_TRAINER_ATTRIBUTES EQU _RS
shift_const AI_CAUTIOUS
shift_const AI_STATUS
shift_const AI_RISKY
NO_AI EQU 0
DEF NO_AI EQU 0
; TRNATTR_AI_ITEM_SWITCH bit flags
const_def
@ -32,12 +32,12 @@ NO_AI EQU 0
const UNKNOWN_USE_F ; 5
const CONTEXT_USE_F ; 6
SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
ALWAYS_USE EQU 1 << ALWAYS_USE_F
UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
CONTEXT_USE EQU 1 << CONTEXT_USE_F
DEF SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
DEF SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
DEF SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
DEF ALWAYS_USE EQU 1 << ALWAYS_USE_F
DEF UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
DEF CONTEXT_USE EQU 1 << CONTEXT_USE_F
; TrainerTypes indexes (see engine/battle/read_trainer_party.asm)
const_def

View File

@ -6,7 +6,7 @@
; - TypeBoostItems (see data/types/type_boost_items.asm)
const_def
PHYSICAL EQU const_value
DEF PHYSICAL EQU const_value
const NORMAL
const FIGHTING
const FLYING
@ -18,12 +18,12 @@ PHYSICAL EQU const_value
const GHOST
const STEEL
UNUSED_TYPES EQU const_value
DEF UNUSED_TYPES EQU const_value
const_next 19
const CURSE_TYPE
UNUSED_TYPES_END EQU const_value
DEF UNUSED_TYPES_END EQU const_value
SPECIAL EQU const_value
DEF SPECIAL EQU const_value
const FIRE
const WATER
const GRASS
@ -32,8 +32,8 @@ SPECIAL EQU const_value
const ICE
const DRAGON
const DARK
TYPES_END EQU const_value
DEF TYPES_END EQU const_value
NUM_TYPES EQU TYPES_END + UNUSED_TYPES - UNUSED_TYPES_END - 1 ; discount BIRD
DEF NUM_TYPES EQU TYPES_END + UNUSED_TYPES - UNUSED_TYPES_END - 1 ; discount BIRD
POKEDEX_TYPE_STRING_LENGTH EQU 9
DEF POKEDEX_TYPE_STRING_LENGTH EQU 9

View File

@ -1,5 +1,5 @@
; wInputType::
AUTO_INPUT EQU $ff
DEF AUTO_INPUT EQU $ff
; wDebugFlags::
const_def
@ -22,24 +22,24 @@ AUTO_INPUT EQU $ff
const WILDMON ; 4
; wGameTimerPaused::
GAME_TIMER_PAUSED_F EQU 0
GAME_TIMER_MOBILE_F EQU 7
DEF GAME_TIMER_PAUSED_F EQU 0
DEF GAME_TIMER_MOBILE_F EQU 7
; wJoypadDisable::
JOYPAD_DISABLE_MON_FAINT_F EQU 6
JOYPAD_DISABLE_SGB_TRANSFER_F EQU 7
DEF JOYPAD_DISABLE_MON_FAINT_F EQU 6
DEF JOYPAD_DISABLE_SGB_TRANSFER_F EQU 7
; wOptions1::
TEXT_DELAY_MASK EQU %111
DEF TEXT_DELAY_MASK EQU %111
const_def 4
const NO_TEXT_SCROLL ; 4
const STEREO ; 5
const BATTLE_SHIFT ; 6
const BATTLE_SCENE ; 7
TEXT_DELAY_FAST EQU %001 ; 1
TEXT_DELAY_MED EQU %011 ; 3
TEXT_DELAY_SLOW EQU %101 ; 5
DEF TEXT_DELAY_FAST EQU %001 ; 1
DEF TEXT_DELAY_MED EQU %011 ; 3
DEF TEXT_DELAY_SLOW EQU %101 ; 5
; wTextboxFrame::
const_def
@ -51,7 +51,7 @@ TEXT_DELAY_SLOW EQU %101 ; 5
const FRAME_6 ; 5
const FRAME_7 ; 6
const FRAME_8 ; 7
NUM_FRAMES EQU const_value
DEF NUM_FRAMES EQU const_value
; wTextboxFlags::
const_def
@ -59,11 +59,11 @@ NUM_FRAMES EQU const_value
const NO_TEXT_DELAY_F ; 1
; wGBPrinterBrightness::
GBPRINTER_LIGHTEST EQU $00
GBPRINTER_LIGHTER EQU $20
GBPRINTER_NORMAL EQU $40
GBPRINTER_DARKER EQU $60
GBPRINTER_DARKEST EQU $7f
DEF GBPRINTER_LIGHTEST EQU $00
DEF GBPRINTER_LIGHTER EQU $20
DEF GBPRINTER_NORMAL EQU $40
DEF GBPRINTER_DARKER EQU $60
DEF GBPRINTER_DARKEST EQU $7f
; wOptions2::
const_def
@ -76,12 +76,12 @@ GBPRINTER_DARKEST EQU $7f
const UP ; 1
const LEFT ; 2
const RIGHT ; 3
NUM_DIRECTIONS EQU const_value
DEF NUM_DIRECTIONS EQU const_value
DOWN_MASK EQU 1 << DOWN
UP_MASK EQU 1 << UP
LEFT_MASK EQU 1 << LEFT
RIGHT_MASK EQU 1 << RIGHT
DEF DOWN_MASK EQU 1 << DOWN
DEF UP_MASK EQU 1 << UP
DEF LEFT_MASK EQU 1 << LEFT
DEF RIGHT_MASK EQU 1 << RIGHT
; wFacingDirection::
const_def NUM_DIRECTIONS - 1, -1
@ -89,15 +89,15 @@ RIGHT_MASK EQU 1 << RIGHT
shift_const FACE_UP ; 4
shift_const FACE_LEFT ; 2
shift_const FACE_RIGHT ; 1
FACE_CURRENT EQU 0
DEF FACE_CURRENT EQU 0
; wPokemonWithdrawDepositParameter::
PC_WITHDRAW EQU 0
PC_DEPOSIT EQU 1
REMOVE_PARTY EQU 0
REMOVE_BOX EQU 1
DAY_CARE_WITHDRAW EQU 2
DAY_CARE_DEPOSIT EQU 3
DEF PC_WITHDRAW EQU 0
DEF PC_DEPOSIT EQU 1
DEF REMOVE_PARTY EQU 0
DEF REMOVE_BOX EQU 1
DEF DAY_CARE_WITHDRAW EQU 2
DEF DAY_CARE_DEPOSIT EQU 3
; wPlayerStepFlags::
const_def 4
@ -107,11 +107,11 @@ DAY_CARE_DEPOSIT EQU 3
const PLAYERSTEP_START_F ; 7
; wInitListType::
INIT_ENEMYOT_LIST EQU 1
INIT_BAG_ITEM_LIST EQU 2
INIT_OTHER_ITEM_LIST EQU 3
INIT_PLAYEROT_LIST EQU 4
INIT_MON_LIST EQU 5
DEF INIT_ENEMYOT_LIST EQU 1
DEF INIT_BAG_ITEM_LIST EQU 2
DEF INIT_OTHER_ITEM_LIST EQU 3
DEF INIT_PLAYEROT_LIST EQU 4
DEF INIT_MON_LIST EQU 5
; wTimeOfDay::
const_def
@ -119,17 +119,17 @@ INIT_MON_LIST EQU 5
const DAY_F ; 1
const NITE_F ; 2
const DARKNESS_F ; 3
NUM_DAYTIMES EQU const_value
DEF NUM_DAYTIMES EQU const_value
MORN EQU 1 << MORN_F
DAY EQU 1 << DAY_F
NITE EQU 1 << NITE_F
DARKNESS EQU 1 << DARKNESS_F
DEF MORN EQU 1 << MORN_F
DEF DAY EQU 1 << DAY_F
DEF NITE EQU 1 << NITE_F
DEF DARKNESS EQU 1 << DARKNESS_F
ANYTIME EQU MORN | DAY | NITE
DEF ANYTIME EQU MORN | DAY | NITE
; wTimeOfDayPalset::
DARKNESS_PALSET EQU (DARKNESS_F << 6) | (DARKNESS_F << 4) | (DARKNESS_F << 2) | DARKNESS_F
DEF DARKNESS_PALSET EQU (DARKNESS_F << 6) | (DARKNESS_F << 4) | (DARKNESS_F << 2) | DARKNESS_F
; wBattleAnimFlags::
const_def
@ -139,14 +139,14 @@ DARKNESS_PALSET EQU (DARKNESS_F << 6) | (DARKNESS_F << 4) | (DARKNESS_F << 2) |
const BATTLEANIM_KEEPSPRITES_F ; 3
; wPlayerSpriteSetupFlags::
PLAYERSPRITESETUP_FACING_MASK EQU %11
PLAYERSPRITESETUP_FEMALE_TO_MALE_F EQU 2
PLAYERSPRITESETUP_CUSTOM_FACING_F EQU 5
PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F EQU 6
PLAYERSPRITESETUP_RESET_ACTION_F EQU 7
DEF PLAYERSPRITESETUP_FACING_MASK EQU %11
DEF PLAYERSPRITESETUP_FEMALE_TO_MALE_F EQU 2
DEF PLAYERSPRITESETUP_CUSTOM_FACING_F EQU 5
DEF PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F EQU 6
DEF PLAYERSPRITESETUP_RESET_ACTION_F EQU 7
; wPlayerGender::
PLAYERGENDER_FEMALE_F EQU 0
DEF PLAYERGENDER_FEMALE_F EQU 0
; wMapStatus::
const_def
@ -161,7 +161,7 @@ PLAYERGENDER_FEMALE_F EQU 0
const MAPEVENTS_OFF ; 1
; wScriptFlags::
SCRIPT_RUNNING EQU 2
DEF SCRIPT_RUNNING EQU 2
; wScriptMode::
const_def
@ -171,8 +171,8 @@ SCRIPT_RUNNING EQU 2
const SCRIPT_WAIT
; wSpawnAfterChampion::
SPAWN_LANCE EQU 1
SPAWN_RED EQU 2
DEF SPAWN_LANCE EQU 1
DEF SPAWN_RED EQU 2
; wCurDay::
const_def
@ -207,12 +207,12 @@ SPAWN_RED EQU 2
const STATUSFLAGS2_ROCKETS_IN_MAHOGANY_F ; 7
; wMomSavingMoney::
MOM_SAVING_SOME_MONEY_F EQU 0
MOM_SAVING_HALF_MONEY_F EQU 1
MOM_SAVING_ALL_MONEY_F EQU 2
MOM_ACTIVE_F EQU 7
DEF MOM_SAVING_SOME_MONEY_F EQU 0
DEF MOM_SAVING_HALF_MONEY_F EQU 1
DEF MOM_SAVING_ALL_MONEY_F EQU 2
DEF MOM_ACTIVE_F EQU 7
MOM_SAVING_MONEY_MASK EQU (1 << MOM_SAVING_SOME_MONEY_F) | (1 << MOM_SAVING_HALF_MONEY_F) | (1 << MOM_SAVING_ALL_MONEY_F)
DEF MOM_SAVING_MONEY_MASK EQU (1 << MOM_SAVING_SOME_MONEY_F) | (1 << MOM_SAVING_HALF_MONEY_F) | (1 << MOM_SAVING_ALL_MONEY_F)
; wJohtoBadges::
const_def
@ -224,7 +224,7 @@ MOM_SAVING_MONEY_MASK EQU (1 << MOM_SAVING_SOME_MONEY_F) | (1 << MOM_SAVING_HALF
const STORMBADGE
const GLACIERBADGE
const RISINGBADGE
NUM_JOHTO_BADGES EQU const_value
DEF NUM_JOHTO_BADGES EQU const_value
; wKantoBadges::
const_def
@ -236,8 +236,8 @@ NUM_JOHTO_BADGES EQU const_value
const MARSHBADGE
const VOLCANOBADGE
const EARTHBADGE
NUM_KANTO_BADGES EQU const_value
NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
DEF NUM_KANTO_BADGES EQU const_value
DEF NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
; wPokegearFlags::
const_def
@ -249,18 +249,18 @@ NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
const POKEGEAR_OBTAINED_F ; 7
; wWhichRegisteredItem::
REGISTERED_POCKET EQU %11000000
REGISTERED_NUMBER EQU %00111111
DEF REGISTERED_POCKET EQU %11000000
DEF REGISTERED_NUMBER EQU %00111111
; wPlayerState::
PLAYER_NORMAL EQU 0
PLAYER_BIKE EQU 1
PLAYER_SKATE EQU 2
PLAYER_SURF EQU 4
PLAYER_SURF_PIKA EQU 8
DEF PLAYER_NORMAL EQU 0
DEF PLAYER_BIKE EQU 1
DEF PLAYER_SKATE EQU 2
DEF PLAYER_SURF EQU 4
DEF PLAYER_SURF_PIKA EQU 8
; wCelebiEvent::
CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
; wBikeFlags::
const_def
@ -299,14 +299,14 @@ CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
const SWARMFLAGS_MOBILE_4_F ; 4
; wLuckyNumberShowFlag::
LUCKYNUMBERSHOW_GAME_OVER_F EQU 0
DEF LUCKYNUMBERSHOW_GAME_OVER_F EQU 0
; wDayCareMan::
DAYCAREMAN_HAS_MON_F EQU 0
DAYCAREMAN_MONS_COMPATIBLE_F EQU 5
DAYCAREMAN_HAS_EGG_F EQU 6
DAYCAREMAN_ACTIVE_F EQU 7
DEF DAYCAREMAN_HAS_MON_F EQU 0
DEF DAYCAREMAN_MONS_COMPATIBLE_F EQU 5
DEF DAYCAREMAN_HAS_EGG_F EQU 6
DEF DAYCAREMAN_ACTIVE_F EQU 7
; wDayCareLady::
DAYCARELADY_HAS_MON_F EQU 0
DAYCARELADY_ACTIVE_F EQU 7
DEF DAYCARELADY_HAS_MON_F EQU 0
DEF DAYCARELADY_ACTIVE_F EQU 7

View File

@ -1,4 +1,4 @@
battleanimoam: MACRO
MACRO battleanimoam
; vtile offset, data length, data pointer
db \1, \2
dw \3

View File

@ -1,4 +1,4 @@
anim_obj_gfx: MACRO
MACRO anim_obj_gfx
; # tiles, gfx pointer
db \1
dba \2

View File

@ -1,7 +1,7 @@
ABSOLUTE_X EQU $00
RELATIVE_X EQU $01
DEF ABSOLUTE_X EQU $00
DEF RELATIVE_X EQU $01
battleanimobj: MACRO
MACRO battleanimobj
db \1 ; flags
; bit 7: priority
; bit 6: y flip (for enemy)

View File

@ -1,6 +1,6 @@
; std scripts associated with tile collisions
stdcoll: MACRO
MACRO stdcoll
db \1
dw (\2StdScript - StdScripts) / 3
ENDM

View File

@ -1,4 +1,4 @@
decoration: MACRO
MACRO decoration
; type, name, action, event flag, tile/sprite
db \1, \2, \3
dw \4

View File

@ -1,4 +1,4 @@
engine_flag: MACRO
MACRO engine_flag
; location, bit
; (all locations are in WRAM bank 1)
dwb \1 + (\2 / 8), 1 << (\2 % 8)

View File

@ -1,4 +1,4 @@
npctrade: MACRO
MACRO npctrade
; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested
db \1, \2, \3, \4, \5, \6, \7
dw \8

View File

@ -1,14 +1,14 @@
NUM_ODD_EGGS EQU 14
DEF NUM_ODD_EGGS EQU 14
prob: MACRO
prob_total += \1
MACRO prob
DEF prob_total += \1
dw prob_total * $ffff / 100
ENDM
OddEggProbabilities:
; entries correspond to OddEggs (below)
table_width 2, OddEggProbabilities
prob_total = 0
DEF prob_total = 0
; Pichu
prob 8
prob 1

View File

@ -1,4 +1,4 @@
rating: MACRO
MACRO rating
; count, sfx, text
db \1
dw \2, \3

View File

@ -1,7 +1,7 @@
; Special routines can be used with the "special" map script command.
; They often use wScriptVar for arguments and return values.
add_special: MACRO
MACRO add_special
\1Special::
dba \1
ENDM

View File

@ -1,18 +1,18 @@
unownwall: MACRO
for n, CHARLEN(\1)
x = CHARSUB(\1, n + 1)
if x == "-"
db $64
elif x >= "Y"
db 2 * (x - "Y") + $60
elif x >= "Q"
db 2 * (x - "Q") + $40
elif x >= "I"
db 2 * (x - "I") + $20
else
db 2 * (x - "A")
endc
endr
MACRO unownwall
for n, CHARLEN(\1)
DEF x = CHARSUB(\1, n + 1)
if x == "-"
db $64
elif x >= "Y"
db 2 * (x - "Y") + $60
elif x >= "Q"
db 2 * (x - "Q") + $40
elif x >= "I"
db 2 * (x - "I") + $20
else
db 2 * (x - "A")
endc
endr
db -1 ; end
ENDM

View File

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

View File

@ -1,4 +1,4 @@
item_attribute: MACRO
MACRO item_attribute
; price, held effect, parameter, property, pocket, field menu, battle menu
dw \1
db \2, \3, \4, \5

View File

@ -1,4 +1,4 @@
momitem: MACRO
MACRO momitem
; money to trigger, cost, kind, item
dt \1
dt \2

View File

@ -1,10 +1,10 @@
map_attributes: MACRO
MACRO map_attributes
;\1: map name
;\2: map id
;\3: border block
;\4: connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
CURRENT_MAP_WIDTH = \2_WIDTH
CURRENT_MAP_HEIGHT = \2_HEIGHT
DEF CURRENT_MAP_WIDTH = \2_WIDTH
DEF CURRENT_MAP_HEIGHT = \2_HEIGHT
\1_MapAttributes::
db \3
db CURRENT_MAP_HEIGHT, CURRENT_MAP_WIDTH
@ -17,73 +17,73 @@ CURRENT_MAP_HEIGHT = \2_HEIGHT
ENDM
; Connections go in order: north, south, west, east
connection: MACRO
MACRO connection
;\1: direction
;\2: map name
;\3: map id
;\4: offset of the target map relative to the current map
; (x offset for east/west, y offset for north/south)
; LEGACY: Support for old connection macro
if _NARG == 6
connection \1, \2, \3, (\4) - (\5)
else
; LEGACY: Support for old connection macro
if _NARG == 6
connection \1, \2, \3, (\4) - (\5)
else
; Calculate tile offsets for source (current) and target maps
_src = 0
_tgt = (\4) + 3
if _tgt < 0
_src = -_tgt
_tgt = 0
endc
; Calculate tile offsets for source (current) and target maps
DEF _src = 0
DEF _tgt = (\4) + 3
if _tgt < 0
DEF _src = -_tgt
DEF _tgt = 0
endc
if !STRCMP("\1", "north")
_blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
_map = _tgt
_win = (\3_WIDTH + 6) * \3_HEIGHT + 1
_y = \3_HEIGHT * 2 - 1
_x = (\4) * -2
_len = CURRENT_MAP_WIDTH + 3 - (\4)
if _len > \3_WIDTH
_len = \3_WIDTH
endc
if !STRCMP("\1", "north")
DEF _blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
DEF _map = _tgt
DEF _win = (\3_WIDTH + 6) * \3_HEIGHT + 1
DEF _y = \3_HEIGHT * 2 - 1
DEF _x = (\4) * -2
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
if _len > \3_WIDTH
DEF _len = \3_WIDTH
endc
elif !STRCMP("\1", "south")
_blk = _src
_map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
_win = \3_WIDTH + 7
_y = 0
_x = (\4) * -2
_len = CURRENT_MAP_WIDTH + 3 - (\4)
if _len > \3_WIDTH
_len = \3_WIDTH
endc
elif !STRCMP("\1", "south")
DEF _blk = _src
DEF _map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
DEF _win = \3_WIDTH + 7
DEF _y = 0
DEF _x = (\4) * -2
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
if _len > \3_WIDTH
DEF _len = \3_WIDTH
endc
elif !STRCMP("\1", "west")
_blk = (\3_WIDTH * _src) + \3_WIDTH - 3
_map = (CURRENT_MAP_WIDTH + 6) * _tgt
_win = (\3_WIDTH + 6) * 2 - 6
_y = (\4) * -2
_x = \3_WIDTH * 2 - 1
_len = CURRENT_MAP_HEIGHT + 3 - (\4)
if _len > \3_HEIGHT
_len = \3_HEIGHT
endc
elif !STRCMP("\1", "west")
DEF _blk = (\3_WIDTH * _src) + \3_WIDTH - 3
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt
DEF _win = (\3_WIDTH + 6) * 2 - 6
DEF _y = (\4) * -2
DEF _x = \3_WIDTH * 2 - 1
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
if _len > \3_HEIGHT
DEF _len = \3_HEIGHT
endc
elif !STRCMP("\1", "east")
_blk = (\3_WIDTH * _src)
_map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
_win = \3_WIDTH + 7
_y = (\4) * -2
_x = 0
_len = CURRENT_MAP_HEIGHT + 3 - (\4)
if _len > \3_HEIGHT
_len = \3_HEIGHT
endc
elif !STRCMP("\1", "east")
DEF _blk = (\3_WIDTH * _src)
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
DEF _win = \3_WIDTH + 7
DEF _y = (\4) * -2
DEF _x = 0
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
if _len > \3_HEIGHT
DEF _len = \3_HEIGHT
endc
else
fail "Invalid direction for 'connection'."
endc
else
fail "Invalid direction for 'connection'."
endc
map_id \3
dw \2_Blocks + _blk
@ -92,7 +92,8 @@ endc
db \3_WIDTH
db _y, _x
dw wOverworldMapBlocks + _win
endc
endc
ENDM

View File

@ -1,4 +1,4 @@
landmark: MACRO
MACRO landmark
; x, y, name
db \1 + 8, \2 + 16
dw \3

View File

@ -1,4 +1,4 @@
map: MACRO
MACRO map
;\1: map name: for the MapAttributes pointer (see data/maps/attributes.asm)
;\2: tileset: a TILESET_* constant
;\3: environment: TOWN, ROUTE, INDOOR, CAVE, ENVIRONMENT_5, GATE, or DUNGEON

View File

@ -5,7 +5,7 @@
const ROOF_AZALEA ; 2
const ROOF_OLIVINE ; 3
const ROOF_GOLDENROD ; 4
NUM_ROOFS EQU const_value
DEF NUM_ROOFS EQU const_value
MapGroupRoofs:
; entries correspond to MAPGROUP_* constants

View File

@ -1,4 +1,4 @@
scene_var: MACRO
MACRO scene_var
; map, variable
map_id \1
dw \2

View File

@ -1,4 +1,4 @@
add_mapsetup: MACRO
MACRO add_mapsetup
\1_MapSetupCmd:
dba \1
ENDM

View File

@ -16,7 +16,7 @@ MapSetupScripts:
assert_table_length NUM_MAPSETUP_SCRIPTS
; valid commands are listed in MapSetupCommands (see data/maps/setup_script_pointers.asm)
mapsetup: MACRO
MACRO mapsetup
db (\1_MapSetupCmd - MapSetupCommands) / 3
ENDM

View File

@ -1,4 +1,4 @@
spawn: MACRO
MACRO spawn
; map, x, y
map_id \1
db \2, \3

View File

@ -7,7 +7,7 @@
const MONMENUVALUE_MOVE ; 5
const MONMENUVALUE_MAIL ; 6
const MONMENUVALUE_ERROR ; 7
NUM_MONMENUVALUES EQU const_value - 1
DEF NUM_MONMENUVALUES EQU const_value - 1
MonMenuOptionStrings:
; entries correspond to MONMENUVALUE_* constants

View File

@ -1,6 +1,6 @@
; Characteristics of each move.
move: MACRO
MACRO move
db \1 ; animation
db \2 ; effect
db \3 ; power

View File

@ -18,7 +18,7 @@ endr
assert_table_length NUM_TMS + NUM_HMS
; Move tutors
n = 1
DEF n = 1
for n, 1, NUM_TUTORS + 1
db MT{02d:n}_MOVE
endr

View File

@ -10,11 +10,11 @@
const PARTYMENUQUALITY_GENDER
const PARTYMENUQUALITY_MOBILE_SELECTION
partymenuqualities: MACRO
rept _NARG
db PARTYMENUQUALITY_\1
shift
endr
MACRO partymenuqualities
rept _NARG
db PARTYMENUQUALITY_\1
shift
endr
db -1 ; end
ENDM

View File

@ -1,4 +1,4 @@
phone: MACRO
MACRO phone
; trainer class, trainer id, map, callee time, callee script, caller time, caller script
db \1, \2
map_id \3

View File

@ -1,4 +1,4 @@
specialcall: MACRO
MACRO specialcall
; condition, contact, script
dw \1
db \2

View File

@ -1,24 +1,24 @@
; used in data/pokemon/base_stats/*.asm
tmhm: MACRO
; initialize bytes to 0
for n, (NUM_TM_HM_TUTOR + 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, HM, or tutor move"
endc
shift
endr
; output bytes
for n, (NUM_TM_HM_TUTOR + 7) / 8
db _tm{d:n}
endr
MACRO tmhm
; initialize bytes to 0
for n, (NUM_TM_HM_TUTOR + 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, HM, or tutor move"
endc
shift
endr
; output bytes
for n, (NUM_TM_HM_TUTOR + 7) / 8
db _tm{d:n}
endr
ENDM
BaseData::

View File

@ -1,4 +1,4 @@
mon_cry: MACRO
MACRO mon_cry
; index, pitch, length
dw \1, \2, \3
ENDM

View File

@ -1,4 +1,4 @@
unownword: MACRO
MACRO unownword
for n, CHARLEN(\1)
db CHARSUB(\1, n + 1) - "A" + FIRST_UNOWN_CHAR
endr

View File

@ -1,7 +1,7 @@
; Predef routines can be used with the "predef" and "predef_jump" macros.
; This preserves registers bc, de, hl and f.
add_predef: MACRO
MACRO add_predef
\1Predef::
dab \1
ENDM

View File

@ -2,35 +2,35 @@
; names taken from pandocs
; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_Palette_Commands
sgb_pal_trn: MACRO
MACRO sgb_pal_trn
db (SGB_PAL_TRN << 3) + 1
ds 15
ENDM
sgb_mlt_req: MACRO
MACRO sgb_mlt_req
db (SGB_MLT_REQ << 3) + 1
db \1 - 1
ds 14
ENDM
sgb_chr_trn: MACRO
MACRO sgb_chr_trn
db (SGB_CHR_TRN << 3) + 1
db \1 + (\2 << 1)
ds 14
ENDM
sgb_pct_trn: MACRO
MACRO sgb_pct_trn
db (SGB_PCT_TRN << 3) + 1
ds 15
ENDM
sgb_mask_en: MACRO
MACRO sgb_mask_en
db (SGB_MASK_EN << 3) + 1
db \1
ds 14
ENDM
sgb_data_snd: MACRO
MACRO sgb_data_snd
db (SGB_DATA_SND << 3) + 1
dw \1 ; address
db \2 ; bank

View File

@ -1,4 +1,4 @@
sprite_anim_obj_gfx: MACRO
MACRO sprite_anim_obj_gfx
; # tiles, gfx pointer
db \1
dbw \2, \3

View File

@ -1,4 +1,4 @@
emote: MACRO
MACRO emote
; graphics pointer, length, starting tile
dw \1
db \2 tiles, BANK(\1)

View File

@ -1,4 +1,4 @@
overworld_sprite: MACRO
MACRO overworld_sprite
; pointer, length, type, palette
dw \1
db \2 tiles, BANK(\1), \3, \4

View File

@ -1,4 +1,4 @@
tileset: MACRO
MACRO tileset
dba \1GFX, \1Meta, \1Coll
dw \1Anim
dw NULL

View File

@ -1,6 +1,6 @@
time_group EQUS "0," ; use the nth TimeFishGroups entry
DEF time_group EQUS "0," ; use the nth TimeFishGroups entry
fishgroup: MACRO
MACRO fishgroup
; chance, old rod, good rod, super rod
db \1
dw \2, \3, \4

View File

@ -1,4 +1,4 @@
mon_prob: MACRO
MACRO mon_prob
; percent, index
db \1, \2 * 2
ENDM

View File

@ -1,15 +1,15 @@
; Maps that roaming monsters can be on, and possible maps they can jump to.
; Notably missing are Route 40 and Route 41, which are water routes.
roam_map: MACRO
MACRO roam_map
map_id \1
db _NARG - 1
rept _NARG - 1
map_id \2
shift
endr
rept _NARG - 1
map_id \2
shift
endr
db 0
list_index += 1
DEF list_index += 1
ENDM
RoamMaps:

View File

@ -1,4 +1,4 @@
treemon_map: MACRO
MACRO treemon_map
map_id \1
db \2 ; treemon set
ENDM

View File

@ -1,4 +1,4 @@
unown_set: MACRO
MACRO unown_set
rept _NARG
db UNOWN_\1
shift

View File

@ -20,7 +20,7 @@ These are parts of the code that do not work *incorrectly*, like [bugs and glitc
[data/pokemon/pic_pointers.asm](https://github.com/pret/pokecrystal/blob/master/data/pokemon/pic_pointers.asm), [data/pokemon/unown_pic_pointers.asm](https://github.com/pret/pokecrystal/blob/master/data/pokemon/unown_pic_pointers.asm), and [data/trainers/pic_pointers.asm](https://github.com/pret/pokecrystal/blob/master/data/trainers/pic_pointers.asm) all have to use `dba_pic` instead of `dba`. This is a macro in [macros/data.asm](https://github.com/pret/pokecrystal/blob/master/macros/data.asm) that offsets banks by `PICS_FIX`:
```asm
dba_pic: MACRO ; dbw bank, address
MACRO dba_pic ; dbw bank, address
db BANK(\1) - PICS_FIX
dw \1
ENDM
@ -32,7 +32,7 @@ The offset is translated into a correct bank by `FixPicBank` in [engine/gfx/load
FixPicBank:
; This is a thing for some reason.
PICS_FIX EQU $36
DEF PICS_FIX EQU $36
GLOBAL PICS_FIX
push hl
@ -148,8 +148,8 @@ In [gfx/footprints.asm](https://github.com/pret/pokecrystal/blob/master/gfx/foot
; then a row of the bottom two tiles for those eight footprints.
; These macros help extract the first and the last two tiles, respectively.
footprint_top EQUS "0, 2 * LEN_1BPP_TILE"
footprint_bottom EQUS "2 * LEN_1BPP_TILE, 2 * LEN_1BPP_TILE"
DEF footprint_top EQUS "0, 2 * LEN_1BPP_TILE"
DEF footprint_bottom EQUS "2 * LEN_1BPP_TILE, 2 * LEN_1BPP_TILE"
; Entries correspond to Pokémon species, two apiece, 8 tops then 8 bottoms
@ -322,7 +322,7 @@ Edit `GetMapMusic`:
add_tm PSYCHIC_M ; dd
...
add_tm NIGHTMARE ; f2
NUM_TMS EQU const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
DEF NUM_TMS EQU const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
```
`GetTMHMNumber` and `GetNumberedTMHM` in [engine/items/items.asm](https://github.com/pret/pokecrystal/blob/master/engine/items/items.asm) have to compensate for this.
@ -671,7 +671,7 @@ CelebiEvent_Cosine:
They all rely on `calc_sine_wave` in [macros/code.asm](https://github.com/pret/pokecrystal/blob/master/macros/code.asm):
```asm
calc_sine_wave: MACRO
MACRO calc_sine_wave
; input: a = a signed 6-bit value
; output: a = d * sin(a * pi/32)
and %111111
@ -722,13 +722,13 @@ ENDM
And on `sine_table` in [macros/data.asm](https://github.com/pret/pokecrystal/blob/master/macros/data.asm):
```asm
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
```

View File

@ -1,13 +1,13 @@
; BattleTransitionJumptable.Jumptable indexes
BATTLETRANSITION_CAVE EQU $01
BATTLETRANSITION_CAVE_STRONGER EQU $09
BATTLETRANSITION_NO_CAVE EQU $10
BATTLETRANSITION_NO_CAVE_STRONGER EQU $18
BATTLETRANSITION_FINISH EQU $20
BATTLETRANSITION_END EQU $80
DEF BATTLETRANSITION_CAVE EQU $01
DEF BATTLETRANSITION_CAVE_STRONGER EQU $09
DEF BATTLETRANSITION_NO_CAVE EQU $10
DEF BATTLETRANSITION_NO_CAVE_STRONGER EQU $18
DEF BATTLETRANSITION_FINISH EQU $20
DEF BATTLETRANSITION_END EQU $80
BATTLETRANSITION_SQUARE EQU "8" ; $fe
BATTLETRANSITION_BLACK EQU "9" ; $ff
DEF BATTLETRANSITION_SQUARE EQU "8" ; $fe
DEF BATTLETRANSITION_BLACK EQU "9" ; $ff
DoBattleTransition:
call .InitGFX
@ -208,8 +208,8 @@ BattleTransitionJumptable:
const TRANS_NO_CAVE_STRONGER
; transition animation bits
TRANS_STRONGER_F EQU 0 ; bit set in TRANS_CAVE_STRONGER and TRANS_NO_CAVE_STRONGER
TRANS_NO_CAVE_F EQU 1 ; bit set in TRANS_NO_CAVE and TRANS_NO_CAVE_STRONGER
DEF TRANS_STRONGER_F EQU 0 ; bit set in TRANS_CAVE_STRONGER and TRANS_NO_CAVE_STRONGER
DEF TRANS_NO_CAVE_F EQU 1 ; bit set in TRANS_NO_CAVE and TRANS_NO_CAVE_STRONGER
StartTrainerBattle_DetermineWhichAnimation:
; The screen flashes a different number of times depending on the level of
@ -422,11 +422,11 @@ endr
const LOWER_RIGHT
; quadrant bits
RIGHT_QUADRANT_F EQU 0 ; bit set in UPPER_RIGHT and LOWER_RIGHT
LOWER_QUADRANT_F EQU 1 ; bit set in LOWER_LEFT and LOWER_RIGHT
DEF RIGHT_QUADRANT_F EQU 0 ; bit set in UPPER_RIGHT and LOWER_RIGHT
DEF LOWER_QUADRANT_F EQU 1 ; bit set in LOWER_LEFT and LOWER_RIGHT
.spin_quadrants:
spin_quadrant: MACRO
MACRO spin_quadrant
db \1
dw \2
dwcoord \3, \4
@ -799,7 +799,7 @@ StartTrainerBattle_ZoomToBlack:
ret
.boxes
zoombox: MACRO
MACRO zoombox
; width, height, start y, start x
db \1, \2
dwcoord \3, \4

View File

@ -3067,9 +3067,9 @@ BattleCommand_DamageCalc:
call .CriticalMultiplier
; Update wCurDamage. Max 999 (capped at 997, then add 2).
MAX_DAMAGE EQU 999
MIN_DAMAGE EQU 2
DAMAGE_CAP EQU MAX_DAMAGE - MIN_DAMAGE
DEF MAX_DAMAGE EQU 999
DEF MIN_DAMAGE EQU 2
DEF DAMAGE_CAP EQU MAX_DAMAGE - MIN_DAMAGE
ld hl, wCurDamage
ld b, [hl]

View File

@ -1,4 +1,4 @@
MAX_ROLLOUT_COUNT EQU 5
DEF MAX_ROLLOUT_COUNT EQU 5
BattleCommand_CheckCurl:
; checkcurl

View File

@ -852,7 +852,7 @@ BattleBGEffect_RunPicResizeScript:
dwcoord 14, 4
.BGSquares:
bgsquare: MACRO
MACRO bgsquare
dn \1, \2
dw \3
ENDM

View File

@ -3,7 +3,7 @@
const DEBUGROOMMENU_PAGE_1 ; 0
const DEBUGROOMMENU_PAGE_2 ; 1
const DEBUGROOMMENU_PAGE_3 ; 2
DEBUGROOMMENU_NUM_PAGES EQU const_value
DEF DEBUGROOMMENU_NUM_PAGES EQU const_value
; _DebugRoom.Strings and _DebugRoom.Jumptable indexes
const_def
@ -538,7 +538,7 @@ DebugRoomMenu_DecorateAll:
call DebugRoom_SaveChecksum
ret
paged_value: MACRO
MACRO paged_value
dw \1 ; value address
db \2 ; min value
db \3 ; max value
@ -548,7 +548,7 @@ paged_value: MACRO
db \7 ; is hex value?
ENDM
PAGED_VALUE_SIZE EQU 10
DEF PAGED_VALUE_SIZE EQU 10
DebugRoom_EditPagedValues:
xor a

View File

@ -1,4 +1,4 @@
SPECIALCELEBIEVENT_CELEBI EQU $84
DEF SPECIALCELEBIEVENT_CELEBI EQU $84
UnusedForestTreeFrames: ; unreferenced
INCBIN "gfx/tilesets/forest-tree/1.2bpp"

View File

@ -1,6 +1,6 @@
FIELDMOVE_GRASS EQU $80
FIELDMOVE_TREE EQU $84
FIELDMOVE_FLY EQU $84
DEF FIELDMOVE_GRASS EQU $80
DEF FIELDMOVE_TREE EQU $84
DEF FIELDMOVE_FLY EQU $84
PlayWhirlpoolSound:
call WaitSFX

View File

@ -1,4 +1,4 @@
HALLOFFAME_COLON EQU $63
DEF HALLOFFAME_COLON EQU $63
HallOfFame::
call HallOfFame_FadeOutMusic

View File

@ -59,11 +59,11 @@ HealMachineAnim:
dw .ElmsLab
dw .HallOfFame
healmachineanimseq: MACRO
rept _NARG
db HEALMACHINESTATE_\1
shift
endr
MACRO healmachineanimseq
rept _NARG
db HEALMACHINESTATE_\1
shift
endr
ENDM
.Pokecenter:

Some files were not shown because too many files have changed in this diff Show More