summaryrefslogtreecommitdiff
path: root/constants
diff options
context:
space:
mode:
Diffstat (limited to 'constants')
-rwxr-xr-xconstants/collision_constants.asm129
-rwxr-xr-xconstants/hardware_constants.asm164
-rw-r--r--constants/item_constants.asm577
-rwxr-xr-xconstants/mart_constants.asm43
-rw-r--r--constants/script_constants.asm2
-rw-r--r--constants/tilemap_constants.asm6
6 files changed, 613 insertions, 308 deletions
diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm
new file mode 100755
index 00000000..f9724da6
--- /dev/null
+++ b/constants/collision_constants.asm
@@ -0,0 +1,129 @@
+; collision permissions (see data/collision_permissions.asm)
+LANDTILE EQU $00
+WATERTILE EQU $01
+WALLTILE EQU $0f
+TALK EQU $10
+
+; collision data types (see data/tilesets/*_collision.asm)
+; TileCollisionTable indexes (see data/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 ; ???
+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
+
+; 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
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
new file mode 100755
index 00000000..6205a1d7
--- /dev/null
+++ b/constants/hardware_constants.asm
@@ -0,0 +1,164 @@
+; Graciously aped from:
+; http://nocash.emubase.de/pandocs.htm
+; 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
+; hardware registers $ff00-$ff80 (see below)
+HRAM_Begin EQU $ff80
+HRAM_End EQU $ffff
+
+; MBC3
+MBC3SRamEnable EQU $0000
+MBC3RomBank EQU $2000
+MBC3SRamBank EQU $4000
+MBC3LatchClock EQU $6000
+MBC3RTC EQU $a000
+
+SRAM_DISABLE EQU $00
+SRAM_ENABLE EQU $0a
+
+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)
+
+; 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)
+
+; 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)
+
+; 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
+
+; Hardware registers
+rJOYP EQU $ff00 ; Joypad (R/W)
+rSB EQU $ff01 ; Serial transfer data (R/W)
+rSC EQU $ff02 ; Serial Transfer Control (R/W)
+rSC_ON EQU 7
+rSC_CGB EQU 1
+rSC_CLOCK EQU 0
+rDIV EQU $ff04 ; Divider Register (R/W)
+rTIMA EQU $ff05 ; Timer counter (R/W)
+rTMA EQU $ff06 ; Timer Modulo (R/W)
+rTAC EQU $ff07 ; Timer Control (R/W)
+rTAC_ON EQU 2
+rTAC_4096_HZ EQU 0
+rTAC_262144_HZ EQU 1
+rTAC_65536_HZ EQU 2
+rTAC_16384_HZ EQU 3
+rIF EQU $ff0f ; Interrupt Flag (R/W)
+rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
+rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
+rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
+rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
+rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
+rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W)
+rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
+rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
+rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
+rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
+rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
+rNR31 EQU $ff1b ; Channel 3 Sound Length
+rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
+rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
+rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
+rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W)
+rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
+rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
+rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
+rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; 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
+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)
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index f8429010..480ab577 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -5,310 +5,285 @@
; - ItemAttributes (see data/items/attributes.asm)
; - ItemEffects (see engine/items/item_effects.asm)
const_def
- const NO_ITEM ; $00
- const MASTER_BALL ; $01
- const ULTRA_BALL ; $02
- const BRIGHTPOWDER ; $03
- const GREAT_BALL ; $04
- const POKE_BALL ; $05
- const TOWN_MAP ; $06
- const BICYCLE ; $07
- const MOON_STONE ; $08
- const ANTIDOTE ; $09
- const BURN_HEAL ; $0A
- const ICE_HEAL ; $0B
- const AWAKENING ; $0C
- const PARLYZ_HEAL ; $0D
- const FULL_RESTORE ; $0E
- const MAX_POTION ; $0F
- const HYPER_POTION ; $10
- const SUPER_POTION ; $11
- const POTION ; $12
- const ESCAPE_ROPE ; $13
- const REPEL ; $14
- const MAX_ELIXER ; $15
- const FIRE_STONE ; $16
- const THUNDERSTONE ; $17
- const WATER_STONE ; $18
- const ITEM_19 ; $19
- const HP_UP ; $1A
- const PROTEIN ; $1B
- const IRON ; $1C
- const CARBOS ; $1D
- const LUCKY_PUNCH ; $1E
- const CALCIUM ; $1F
- const RARE_CANDY ; $20
- const X_ACCURACY ; $21
- const LEAF_STONE ; $22
- const METAL_POWDER ; $23
- const NUGGET ; $24
- const POKE_DOLL ; $25
- const FULL_HEAL ; $26
- const REVIVE ; $27
- const MAX_REVIVE ; $28
- const GUARD_SPEC ; $29
- const SUPER_REPEL ; $2A
- const MAX_REPEL ; $2B
- const DIRE_HIT ; $2C
- const ITEM_2D ; $2D
- const FRESH_WATER ; $2E
- const SODA_POP ; $2F
- const LEMONADE ; $30
- const X_ATTACK ; $31
- const ITEM_32 ; $32
- const X_DEFEND ; $33
- const X_SPEED ; $34
- const X_SPECIAL ; $35
- const COIN_CASE ; $36
- const ITEMFINDER ; $37
- const POKE_FLUTE ; $38
- const EXP_SHARE ; $39
- const OLD_ROD ; $3A
- const GOOD_ROD ; $3B
- const SILVER_LEAF ; $3C
- const SUPER_ROD ; $3D
- const PP_UP ; $3E
- const ETHER ; $3F
- const MAX_ETHER ; $40
- const ELIXER ; $41
- const RED_SCALE ; $42
- const SECRETPOTION ; $43
- const S_S_TICKET ; $44
- const MYSTERY_EGG ; $45
- const ITEM_46 ; $46
- const SILVER_WING ; $47
- const MOOMOO_MILK ; $48
- const QUICK_CLAW ; $49
- const PSNCUREBERRY ; $4A
- const GOLD_LEAF ; $4B
- const SOFT_SAND ; $4C
- const SHARP_BEAK ; $4D
- const PRZCUREBERRY ; $4E
- const BURNT_BERRY ; $4F
- const ICE_BERRY ; $50
- const POISON_BARB ; $51
- const KINGS_ROCK ; $52
- const BITTER_BERRY ; $53
- const MINT_BERRY ; $54
- const RED_APRICORN ; $55
- const TINYMUSHROOM ; $56
- const BIG_MUSHROOM ; $57
- const SILVERPOWDER ; $58
- const BLU_APRICORN ; $59
- const ITEM_5A ; $5A
- const AMULET_COIN ; $5B
- const YLW_APRICORN ; $5C
- const GRN_APRICORN ; $5D
- const CLEANSE_TAG ; $5E
- const MYSTIC_WATER ; $5F
- const TWISTEDSPOON ; $60
- const WHT_APRICORN ; $61
- const BLACKBELT ; $62
- const BLK_APRICORN ; $63
- const ITEM_64 ; $64
- const PNK_APRICORN ; $65
- const BLACKGLASSES ; $66
- const SLOWPOKETAIL ; $67
- const PINK_BOW ; $68
- const STICK ; $69
- const SMOKE_BALL ; $6A
- const NEVERMELTICE ; $6B
- const MAGNET ; $6C
- const MIRACLEBERRY ; $6D
- const PEARL ; $6E
- const BIG_PEARL ; $6F
- const EVERSTONE ; $70
- const SPELL_TAG ; $71
- const RAGECANDYBAR ; $72
- const ITEM_73 ; $73
- const ITEM_74 ; $74
- const MIRACLE_SEED ; $75
- const THICK_CLUB ; $76
- const FOCUS_BAND ; $77
- const ITEM_78 ; $78
- const ENERGYPOWDER ; $79
- const ENERGY_ROOT ; $7A
- const HEAL_POWDER ; $7B
- const REVIVAL_HERB ; $7C
- const HARD_STONE ; $7D
- const LUCKY_EGG ; $7E
- const CARD_KEY ; $7F
- const MACHINE_PART ; $80
- const ITEM_81 ; $81
- const LOST_ITEM ; $82
- const STARDUST ; $83
- const STAR_PIECE ; $84
- const BASEMENT_KEY ; $85
- const PASS ; $86
- const ITEM_87 ; $87
- const ITEM_88 ; $88
- const ITEM_89 ; $89
- const CHARCOAL ; $8A
- const BERRY_JUICE ; $8B
- const SCOPE_LENS ; $8C
- const ITEM_8D ; $8D
- const ITEM_8E ; $8E
- const METAL_COAT ; $8F
- const DRAGON_FANG ; $90
- const ITEM_91 ; $91
- const LEFTOVERS ; $92
- const ITEM_93 ; $93
- const ITEM_94 ; $94
- const ITEM_95 ; $95
- const MYSTERYBERRY ; $96
- const DRAGON_SCALE ; $97
- const BERSERK_GENE ; $98
- const ITEM_99 ; $99
- const ITEM_9A ; $9A
- const ITEM_9B ; $9B
- const SACRED_ASH ; $9C
- const HEAVY_BALL ; $9D
- const FLOWER_MAIL ; $9E
- const LEVEL_BALL ; $9F
- const LURE_BALL ; $A0
- const FAST_BALL ; $A1
- const ITEM_A2 ; $A2
- const LIGHT_BALL ; $A3
- const FRIEND_BALL ; $A4
- const MOON_BALL ; $A5
- const LOVE_BALL ; $A6
- const NORMAL_BOX ; $A7
- const GORGEOUS_BOX ; $A8
- const SUN_STONE ; $A9
- const POLKADOT_BOW ; $AA
- const ITEM_AB ; $AB
- const UP_GRADE ; $AC
- const BERRY ; $AD
- const GOLD_BERRY ; $AE
- const SQUIRTBOTTLE ; $AF
- const ITEM_B0 ; $B0
- const PARK_BALL ; $B1
- const RAINBOW_WING ; $B2
- const ITEM_B3 ; $B3
- const BRICK_PIECE ; $B4
- const SURF_MAIL ; $B5
- const LITEBLUEMAIL ; $B6
- const PORTRAITMAIL ; $B7
- const LOVELY_MAIL ; $B8
- const EON_MAIL ; $B9
- const MORPH_MAIL ; $BA
- const BLUESKY_MAIL ; $BB
- const MUSIC_MAIL ; $BC
- const MIRAGE_MAIL ; $BD
- const ITEM_BE ; $BE
+ const NO_ITEM ; 00
+ const MASTER_BALL ; 01
+ const ULTRA_BALL ; 02
+ const BRIGHTPOWDER ; 03
+ const GREAT_BALL ; 04
+ const POKE_BALL ; 05
+ const TOWN_MAP ; 06
+ const BICYCLE ; 07
+ const MOON_STONE ; 08
+ const ANTIDOTE ; 09
+ const BURN_HEAL ; 0a
+ const ICE_HEAL ; 0b
+ const AWAKENING ; 0c
+ const PARLYZ_HEAL ; 0d
+ const FULL_RESTORE ; 0e
+ const MAX_POTION ; 0f
+ const HYPER_POTION ; 10
+ const SUPER_POTION ; 11
+ const POTION ; 12
+ const ESCAPE_ROPE ; 13
+ const REPEL ; 14
+ const MAX_ELIXER ; 15
+ const FIRE_STONE ; 16
+ const THUNDERSTONE ; 17
+ const WATER_STONE ; 18
+ const ITEM_19 ; 19
+ const HP_UP ; 1a
+ const PROTEIN ; 1b
+ const IRON ; 1c
+ const CARBOS ; 1d
+ const LUCKY_PUNCH ; 1e
+ const CALCIUM ; 1f
+ const RARE_CANDY ; 20
+ const X_ACCURACY ; 21
+ const LEAF_STONE ; 22
+ const METAL_POWDER ; 23
+ const NUGGET ; 24
+ const POKE_DOLL ; 25
+ const FULL_HEAL ; 26
+ const REVIVE ; 27
+ const MAX_REVIVE ; 28
+ const GUARD_SPEC ; 29
+ const SUPER_REPEL ; 2a
+ const MAX_REPEL ; 2b
+ const DIRE_HIT ; 2c
+ const ITEM_2D ; 2d
+ const FRESH_WATER ; 2e
+ const SODA_POP ; 2f
+ const LEMONADE ; 30
+ const X_ATTACK ; 31
+ const ITEM_32 ; 32
+ const X_DEFEND ; 33
+ const X_SPEED ; 34
+ const X_SPECIAL ; 35
+ const COIN_CASE ; 36
+ const ITEMFINDER ; 37
+ const POKE_FLUTE ; 38
+ const EXP_SHARE ; 39
+ const OLD_ROD ; 3a
+ const GOOD_ROD ; 3b
+ const SILVER_LEAF ; 3c
+ const SUPER_ROD ; 3d
+ const PP_UP ; 3e
+ const ETHER ; 3f
+ const MAX_ETHER ; 40
+ const ELIXER ; 41
+ const RED_SCALE ; 42
+ const SECRETPOTION ; 43
+ const S_S_TICKET ; 44
+ const MYSTERY_EGG ; 45
+ const ITEM_46 ; 46
+ const SILVER_WING ; 47
+ const MOOMOO_MILK ; 48
+ const QUICK_CLAW ; 49
+ const PSNCUREBERRY ; 4a
+ const GOLD_LEAF ; 4b
+ const SOFT_SAND ; 4c
+ const SHARP_BEAK ; 4d
+ const PRZCUREBERRY ; 4e
+ const BURNT_BERRY ; 4f
+ const ICE_BERRY ; 50
+ const POISON_BARB ; 51
+ const KINGS_ROCK ; 52
+ const BITTER_BERRY ; 53
+ const MINT_BERRY ; 54
+ const RED_APRICORN ; 55
+ const TINYMUSHROOM ; 56
+ const BIG_MUSHROOM ; 57
+ const SILVERPOWDER ; 58
+ const BLU_APRICORN ; 59
+ const ITEM_5A ; 5a
+ const AMULET_COIN ; 5b
+ const YLW_APRICORN ; 5c
+ const GRN_APRICORN ; 5d
+ const CLEANSE_TAG ; 5e
+ const MYSTIC_WATER ; 5f
+ const TWISTEDSPOON ; 60
+ const WHT_APRICORN ; 61
+ const BLACKBELT ; 62
+ const BLK_APRICORN ; 63
+ const ITEM_64 ; 64
+ const PNK_APRICORN ; 65
+ const BLACKGLASSES ; 66
+ const SLOWPOKETAIL ; 67
+ const PINK_BOW ; 68
+ const STICK ; 69
+ const SMOKE_BALL ; 6a
+ const NEVERMELTICE ; 6b
+ const MAGNET ; 6c
+ const MIRACLEBERRY ; 6d
+ const PEARL ; 6e
+ const BIG_PEARL ; 6f
+ const EVERSTONE ; 70
+ const SPELL_TAG ; 71
+ const RAGECANDYBAR ; 72
+ const ITEM_73 ; 73
+ const ITEM_74 ; 74
+ const MIRACLE_SEED ; 75
+ const THICK_CLUB ; 76
+ const FOCUS_BAND ; 77
+ const ITEM_78 ; 78
+ const ENERGYPOWDER ; 79
+ const ENERGY_ROOT ; 7a
+ const HEAL_POWDER ; 7b
+ const REVIVAL_HERB ; 7c
+ const HARD_STONE ; 7d
+ const LUCKY_EGG ; 7e
+ const CARD_KEY ; 7f
+ const MACHINE_PART ; 80
+ const ITEM_81 ; 81
+ const LOST_ITEM ; 82
+ const STARDUST ; 83
+ const STAR_PIECE ; 84
+ const BASEMENT_KEY ; 85
+ const PASS ; 86
+ const ITEM_87 ; 87
+ const ITEM_88 ; 88
+ const ITEM_89 ; 89
+ const CHARCOAL ; 8a
+ const BERRY_JUICE ; 8b
+ const SCOPE_LENS ; 8c
+ const ITEM_8D ; 8d
+ const ITEM_8E ; 8e
+ const METAL_COAT ; 8f
+ const DRAGON_FANG ; 90
+ const ITEM_91 ; 91
+ const LEFTOVERS ; 92
+ const ITEM_93 ; 93
+ const ITEM_94 ; 94
+ const ITEM_95 ; 95
+ const MYSTERYBERRY ; 96
+ const DRAGON_SCALE ; 97
+ const BERSERK_GENE ; 98
+ const ITEM_99 ; 99
+ const ITEM_9A ; 9a
+ const ITEM_9B ; 9b
+ const SACRED_ASH ; 9c
+ const HEAVY_BALL ; 9d
+ const FLOWER_MAIL ; 9e
+ const LEVEL_BALL ; 9f
+ const LURE_BALL ; a0
+ const FAST_BALL ; a1
+ const ITEM_A2 ; a2
+ const LIGHT_BALL ; a3
+ const FRIEND_BALL ; a4
+ const MOON_BALL ; a5
+ const LOVE_BALL ; a6
+ const NORMAL_BOX ; a7
+ const GORGEOUS_BOX ; a8
+ const SUN_STONE ; a9
+ const POLKADOT_BOW ; aa
+ const ITEM_AB ; ab
+ const UP_GRADE ; ac
+ const BERRY ; ad
+ const GOLD_BERRY ; ae
+ const SQUIRTBOTTLE ; af
+ const ITEM_B0 ; b0
+ const PARK_BALL ; b1
+ const RAINBOW_WING ; b2
+ const ITEM_B3 ; b3
+ const BRICK_PIECE ; b4
+ const SURF_MAIL ; b5
+ const LITEBLUEMAIL ; b6
+ const PORTRAITMAIL ; b7
+ const LOVELY_MAIL ; b8
+ const EON_MAIL ; b9
+ const MORPH_MAIL ; ba
+ const BLUESKY_MAIL ; bb
+ const MUSIC_MAIL ; bc
+ const MIRAGE_MAIL ; bd
+ const ITEM_BE ; be
- add_tm DYNAMICPUNCH ; $BF
- add_tm HEADBUTT ; $C0
- add_tm CURSE ; $C1
- add_tm ROLLOUT ; $C2
- const ITEM_C3 ; $C3
- add_tm ROAR ; $C4
- add_tm TOXIC ; $C5
- add_tm ZAP_CANNON ; $C6
- add_tm ROCK_SMASH ; $C7
- add_tm PSYCH_UP ; $C8
- add_tm HIDDEN_POWER ; $C9
- add_tm SUNNY_DAY ; $CA
- add_tm SWEET_SCENT ; $CB
- add_tm SNORE ; $CC
- add_tm BLIZZARD ; $CD
- add_tm HYPER_BEAM ; $CE
- add_tm ICY_WIND ; $CF
- add_tm PROTECT ; $D0
- add_tm RAIN_DANCE ; $D1
- add_tm GIGA_DRAIN ; $D2
- add_tm ENDURE ; $D3
- add_tm FRUSTRATION ; $D4
- add_tm SOLARBEAM ; $D5
- add_tm IRON_TAIL ; $D6
- add_tm DRAGONBREATH ; $D7
- add_tm THUNDER ; $D8
- add_tm EARTHQUAKE ; $D9
- add_tm RETURN ; $DA
- add_tm DIG ; $DB
- const ITEM_DC ; $DC
- add_tm PSYCHIC_M ; $DD
- add_tm SHADOW_BALL ; $DE
- add_tm MUD_SLAP ; $DF
- add_tm DOUBLE_TEAM ; $E0
- add_tm ICE_PUNCH ; $E1
- add_tm SWAGGER ; $E2
- add_tm SLEEP_TALK ; $E3
- add_tm SLUDGE_BOMB ; $E4
- add_tm SANDSTORM ; $E5
- add_tm FIRE_BLAST ; $E6
- add_tm SWIFT ; $E7
- add_tm DEFENSE_CURL ; $E8
- add_tm THUNDERPUNCH ; $E9
- add_tm DREAM_EATER ; $EA
- add_tm DETECT ; $EB
- add_tm REST ; $EC
- add_tm ATTRACT ; $ED
- add_tm THIEF ; $EE
- add_tm STEEL_WING ; $EF
- add_tm FIRE_PUNCH ; $F0
- add_tm FURY_CUTTER ; $F1
- add_tm NIGHTMARE ; $F2
-NUM_TMS = const_value - TM01 - 2
+add_tm: MACRO
+if !DEF(TM01)
+TM01 EQU const_value
+ enum_start 1
+endc
+ define _\@_1, "TM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
- add_hm CUT ; $F3
- add_hm FLY ; $F4
- add_hm SURF ; $F5
- add_hm STRENGTH ; $F6
- add_hm FLASH ; $F7
- add_hm WHIRLPOOL ; $F8
- add_hm WATERFALL ; $F9
-NUM_HMS = const_value - HM01
- const HM_08 ; $FA
+; see data/moves/tmhm_moves.asm for moves
+ add_tm DYNAMICPUNCH ; bf
+ add_tm HEADBUTT ; c0
+ add_tm CURSE ; c1
+ add_tm ROLLOUT ; c2
+ const ITEM_C3 ; c3
+ add_tm ROAR ; c4
+ add_tm TOXIC ; c5
+ add_tm ZAP_CANNON ; c6
+ add_tm ROCK_SMASH ; c7
+ add_tm PSYCH_UP ; c8
+ add_tm HIDDEN_POWER ; c9
+ add_tm SUNNY_DAY ; ca
+ add_tm SWEET_SCENT ; cb
+ add_tm SNORE ; cc
+ add_tm BLIZZARD ; cd
+ add_tm HYPER_BEAM ; ce
+ add_tm ICY_WIND ; cf
+ add_tm PROTECT ; d0
+ add_tm RAIN_DANCE ; d1
+ add_tm GIGA_DRAIN ; d2
+ add_tm ENDURE ; d3
+ add_tm FRUSTRATION ; d4
+ add_tm SOLARBEAM ; d5
+ add_tm IRON_TAIL ; d6
+ add_tm DRAGONBREATH ; d7
+ add_tm THUNDER ; d8
+ add_tm EARTHQUAKE ; d9
+ add_tm RETURN ; da
+ add_tm DIG ; db
+ const ITEM_DC ; dc
+ add_tm PSYCHIC_M ; dd
+ add_tm SHADOW_BALL ; de
+ add_tm MUD_SLAP ; df
+ add_tm DOUBLE_TEAM ; e0
+ add_tm ICE_PUNCH ; e1
+ add_tm SWAGGER ; e2
+ add_tm SLEEP_TALK ; e3
+ add_tm SLUDGE_BOMB ; e4
+ add_tm SANDSTORM ; e5
+ add_tm FIRE_BLAST ; e6
+ add_tm SWIFT ; e7
+ add_tm DEFENSE_CURL ; e8
+ add_tm THUNDERPUNCH ; e9
+ add_tm DREAM_EATER ; ea
+ add_tm DETECT ; eb
+ add_tm REST ; ec
+ add_tm ATTRACT ; ed
+ add_tm THIEF ; ee
+ add_tm STEEL_WING ; ef
+ add_tm FIRE_PUNCH ; f0
+ add_tm FURY_CUTTER ; f1
+ add_tm NIGHTMARE ; f2
+NUM_TMS EQU const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
-ITEM_FROM_MEM EQU $ff
+add_hm: MACRO
+if !DEF(HM01)
+HM01 EQU const_value
+endc
+ define _\@_1, "HM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+ add_hm CUT ; f3
+ add_hm FLY ; f4
+ add_hm SURF ; f5
+ add_hm STRENGTH ; f6
+ add_hm FLASH ; f7
+ add_hm WHIRLPOOL ; f8
+ add_hm WATERFALL ; f9
+NUM_HMS EQU const_value - HM01
-; leftovers from red
-SAFARI_BALL EQU 8 ; MOON_STONE
-MOON_STONE_RED EQU 10 ; BURN_HEAL
-FULL_HEAL_RED EQU 52 ; X_SPEED
-MAIL_MAX_LENGTH EQU $20
-
- const_def
- const MARTTYPE_STANDARD
- const MARTTYPE_BITTER
- const MARTTYPE_BARGAIN
- const MARTTYPE_PHARMACY
- const MARTTYPE_ROOFTOP
+USE_SCRIPT_VAR EQU $00
+ITEM_FROM_MEM EQU $ff
- const_def
- const MART_CHERRYGROVE
- const MART_CHERRYGROVE_DEX
- const MART_VIOLET
- const MART_AZALEA
- const MART_CIANWOOD
- const MART_GOLDENROD_2F_1
- const MART_GOLDENROD_2F_2
- const MART_GOLDENROD_3F
- const MART_GOLDENROD_4F
- const MART_GOLDENROD_5F_1
- const MART_GOLDENROD_5F_2
- const MART_GOLDENROD_5F_3
- const MART_GOLDENROD_5F_4
- const MART_OLIVINE
- const MART_ECRUTEAK
- const MART_MAHOGANY_1
- const MART_MAHOGANY_2
- const MART_BLACKTHORN
- const MART_VIRIDIAN
- const MART_PEWTER
- const MART_CERULEAN
- const MART_LAVENDER
- const MART_VERMILION
- const MART_CELADON_2F_1
- const MART_CELADON_2F_2
- const MART_CELADON_3F
- const MART_CELADON_4F
- const MART_CELADON_5F_1
- const MART_CELADON_5F_2
- const MART_FUCHSIA
- const MART_SAFFRON
- const MART_MT_MOON
- const MART_INDIGO_PLATEAU
- const MART_UNDERGROUND
+; leftovers from red
+SAFARI_BALL EQU $08 ; MOON_STONE
+MOON_STONE_RED EQU $0a ; BURN_HEAL
+FULL_HEAL_RED EQU $34 ; X_SPEED \ No newline at end of file
diff --git a/constants/mart_constants.asm b/constants/mart_constants.asm
new file mode 100755
index 00000000..cffdfae0
--- /dev/null
+++ b/constants/mart_constants.asm
@@ -0,0 +1,43 @@
+; mart types (see engine/items/mart.asm)
+ const_def
+ const MARTTYPE_STANDARD
+ const MARTTYPE_BITTER
+ const MARTTYPE_BARGAIN
+ const MARTTYPE_PHARMACY
+
+; Marts indexes (see data/items/marts.asm)
+ const_def
+ const MART_CHERRYGROVE
+ const MART_CHERRYGROVE_DEX
+ const MART_VIOLET
+ const MART_AZALEA
+ const MART_CIANWOOD
+ const MART_GOLDENROD_2F_1
+ const MART_GOLDENROD_2F_2
+ const MART_GOLDENROD_3F
+ const MART_GOLDENROD_4F
+ const MART_GOLDENROD_5F_1
+ const MART_GOLDENROD_5F_2
+ const MART_GOLDENROD_5F_3
+ const MART_GOLDENROD_5F_4
+ const MART_OLIVINE
+ const MART_ECRUTEAK
+ const MART_MAHOGANY_1
+ const MART_MAHOGANY_2
+ const MART_BLACKTHORN
+ const MART_VIRIDIAN
+ const MART_PEWTER
+ const MART_CERULEAN
+ const MART_LAVENDER
+ const MART_VERMILION
+ const MART_CELADON_2F_1
+ const MART_CELADON_2F_2
+ const MART_CELADON_3F
+ const MART_CELADON_4F
+ const MART_CELADON_5F_1
+ const MART_CELADON_5F_2
+ const MART_FUCHSIA
+ const MART_SAFFRON
+ const MART_MT_MOON
+ const MART_INDIGO_PLATEAU
+ const MART_UNDERGROUND
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index 7870fc84..b0db4e70 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -270,4 +270,4 @@ NUM_UNOWN_PUZZLES EQU const_value
const_def 1
const MOVETUTOR_FLAMETHROWER ; 1
const MOVETUTOR_THUNDERBOLT ; 2
- const MOVETUTOR_ICE_BEAM ; 3
+ const MOVETUTOR_ICE_BEAM ; 3 \ No newline at end of file
diff --git a/constants/tilemap_constants.asm b/constants/tilemap_constants.asm
index 5fe2beb9..0ead1444 100644
--- a/constants/tilemap_constants.asm
+++ b/constants/tilemap_constants.asm
@@ -1,9 +1,3 @@
-LANDTILE EQU 0
-WALLTILE EQU 1
-WATRTILE EQU 15
-
-TALK EQU 1 << 4
-
const_value SET 1
const_def 1
const TILESET_JOHTO ; 01