Merge branch 'math_etc' into 'master'

This commit is contained in:
ISSOtm 2018-06-10 14:20:59 +02:00
parent b136e995a3
commit d89bd1ac8b
26 changed files with 2651 additions and 77 deletions

View File

@ -33,3 +33,5 @@ INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/battle_anim_constants.asm"
INCLUDE "constants/menu_constants.asm"
INCLUDE "constants/wram_constants.asm"
INCLUDE "constants/sgb_constants.asm"
INCLUDE "constants/map_object_constants.asm"

View File

@ -42,4 +42,88 @@ NUM_POCKETS EQU const_value
MAX_ITEMS EQU 20
MAX_KEY_ITEMS EQU 20
MAX_PC_ITEMS EQU 50
MAX_PC_ITEMS EQU 50
; held item effects
const_def
const HELD_NONE
const HELD_BERRY
const HELD_2
const HELD_LEFTOVERS
const HELD_4
const HELD_5
const HELD_RESTORE_PP
const HELD_RESTORE_ALL_PP
const HELD_CLEANSE_TAG
const_def 10
const HELD_HEAL_POISON
const HELD_HEAL_FREEZE
const HELD_HEAL_BURN
const HELD_HEAL_SLEEP
const HELD_HEAL_PARALYZE
const HELD_HEAL_STATUS
const HELD_HEAL_CONFUSION
const_def 20
const HELD_PREVENT_POISON
const HELD_PREVENT_BURN
const HELD_PREVENT_FREEZE
const HELD_PREVENT_SLEEP
const HELD_PREVENT_PARALYZE
const HELD_PREVENT_CONFUSE
const_def 30
const HELD_30
const HELD_ATTACK_UP
const HELD_DEFENSE_UP
const HELD_SPEED_UP
const HELD_SP_ATTACK_UP
const HELD_SP_DEFENSE_UP
const HELD_ACCURACY_UP
const HELD_EVASION_UP
const HELD_38
const_def 40
const HELD_40
const HELD_41
const HELD_METAL_POWDER
const HELD_43
const HELD_44
const HELD_45
const HELD_46
const HELD_47
const HELD_48
const_def 50
const HELD_NORMAL_BOOST
const HELD_FIGHTING_BOOST
const HELD_FLYING_BOOST
const HELD_POISON_BOOST
const HELD_GROUND_BOOST
const HELD_ROCK_BOOST
const HELD_BUG_BOOST
const HELD_GHOST_BOOST
const HELD_FIRE_BOOST
const HELD_WATER_BOOST
const HELD_GRASS_BOOST
const HELD_ELECTRIC_BOOST
const HELD_PSYCHIC_BOOST
const HELD_ICE_BOOST
const HELD_DRAGON_BOOST
const HELD_DARK_BOOST
const HELD_STEEL_BOOST
const_def 70
const HELD_CATCH_CHANCE
const HELD_71
const HELD_ESCAPE
const HELD_CRITICAL_UP
const HELD_QUICK_CLAW
const HELD_FLINCH
const HELD_AMULET_COIN
const HELD_BRIGHTPOWDER
const HELD_78
const HELD_FOCUS_BAND

View File

@ -0,0 +1,72 @@
rsreset
OBJECT_SPRITE rb 1 ; 00
OBJECT_MAP_OBJECT_INDEX rb 1 ; 01
OBJECT_SPRITE_TILE rb 1 ; 02
OBJECT_MOVEMENTTYPE rb 1 ; 03
OBJECT_FLAGS rw 1 ; 04
OBJECT_PALETTE rb 1 ; 06
OBJECT_DIRECTION_WALKING rb 1 ; 07
OBJECT_FACING rb 1 ; 08
OBJECT_STEP_TYPE rb 1 ; 09
OBJECT_STEP_DURATION rb 1 ; 0a
OBJECT_ACTION rb 1 ; 0b
OBJECT_STEP_FRAME rb 1 ; 0c
OBJECT_FACING_STEP rb 1 ; 0d
OBJECT_NEXT_TILE rb 1 ; 0e
OBJECT_STANDING_TILE rb 1 ; 0f
OBJECT_NEXT_MAP_X rb 1 ; 10
OBJECT_NEXT_MAP_Y rb 1 ; 11
OBJECT_MAP_X rb 1 ; 12
OBJECT_MAP_Y rb 1 ; 13
OBJECT_INIT_X rb 1 ; 14
OBJECT_INIT_Y rb 1 ; 15
OBJECT_RADIUS rb 1 ; 16
OBJECT_SPRITE_X rb 1 ; 17
OBJECT_SPRITE_Y rb 1 ; 18
OBJECT_SPRITE_X_OFFSET rb 1 ; 19
OBJECT_SPRITE_Y_OFFSET rb 1 ; 1a
OBJECT_MOVEMENT_BYTE_INDEX rb 1 ; 1b
OBJECT_1C rb 1 ; 1c
OBJECT_1D rb 1 ; 1d
OBJECT_1E rb 1 ; 1e
OBJECT_1F rb 1 ; 1f
OBJECT_RANGE rb 1 ; 20
OBJECT_DATA rb 7 ; 21
OBJECT_LENGTH SET _RS
rsreset
CMDQUEUE_UNK0 rb 16
CMDQUEUE_ENTRY_SIZE SET _RS
rsreset
MAPOBJECT_OBJECT_STRUCT_ID rb 1 ; 0
MAPOBJECT_SPRITE rb 1 ; 1
MAPOBJECT_Y_COORD rb 1 ; 2
MAPOBJECT_X_COORD rb 1 ; 3
MAPOBJECT_MOVEMENT rb 1 ; 4
MAPOBJECT_RADIUS rb 1 ; 5
MAPOBJECT_HOUR rb 1 ; 6
MAPOBJECT_TIMEOFDAY rb 1 ; 7
MAPOBJECT_COLOR rb 1 ; 8
MAPOBJECT_RANGE rb 1 ; 9
MAPOBJECT_SCRIPT_POINTER rb 1 ; a
MAPOBJECT_POINTER_HI rb 1 ; b
MAPOBJECT_EVENT_FLAG rw 1
MAPOBJECT_E rb 1 ; unused
MAPOBJECT_F rb 1 ; unused
MAP_OBJECT_LENGTH SET _RS
rsreset
MAPOBJECTTEMPLATE_SPRITE rb 1 ; 0
MAPOBJECTTEMPLATE_Y_COORD rb 1 ; 1
MAPOBJECTTEMPLATE_X_COORD rb 1 ; 2
MAPOBJECTTEMPLATE_MOVEMENT rb 1 ; 3
MAPOBJECTTEMPLATE_RADIUS rb 1 ; 4
MAPOBJECTTEMPLATE_HOUR rb 1 ; 5
MAPOBJECTTEMPLATE_TIMEOFDAY rb 1 ; 6
MAPOBJECTTEMPLATE_COLOR rb 1 ; 7
MAPOBJECTTEMPLATE_RANGE rb 1 ; 8
MAPOBJECTTEMPLATE_SCRIPT_POINTER rb 1 ; 9
MAPOBJECTTEMPLATE_POINTER_HI rb 1 ; a
MAPOBJECTTEMPLATE_EVENT_FLAG rw 1 ; b
MAP_OBJECT_TEMPLATE_LENGTH SET _RS

150
constants/sgb_constants.asm Normal file
View File

@ -0,0 +1,150 @@
; GetSGBLayout arguments (see engine/gfx/cgb_layouts.asm and engine/gfx/sgb_layouts.asm)
const_def
const SGB_BATTLE_GRAYSCALE
const SGB_BATTLE_COLORS
const SGB_POKEGEAR_PALS
const SGB_STATS_SCREEN_HP_PALS
const SGB_POKEDEX
const SGB_SLOT_MACHINE
const SGB_06
const SGB_GS_INTRO
const SGB_DIPLOMA
const SGB_MAPPALS
const SGB_PARTY_MENU
const SGB_EVOLUTION
const SGB_GS_TITLE_SCREEN
const SGB_0D
const SGB_MOVE_LIST
const SGB_BETA_PIKACHU_MINIGAME
const SGB_POKEDEX_SEARCH_OPTION
const SGB_BETA_POKER
const SGB_POKEPIC
const SGB_13
const SGB_PACKPALS
const SGB_TRAINER_CARD
const SGB_POKEDEX_UNOWN_MODE
const SGB_BILLS_PC
const SGB_UNOWN_PUZZLE
const SGB_GAMEFREAK_LOGO
const SGB_PLAYER_OR_MON_FRONTPIC_PALS
const SGB_TRADE_TUBE
const SGB_TRAINER_OR_MON_FRONTPIC_PALS
const SGB_MYSTERY_GIFT
const SGB_1E
SGB_PARTY_MENU_HP_PALS EQU -4
SGB_RAM EQU -1
; PredefPals indexes (see gfx/sgb/predef.pal)
; GetPredefPal arguments (see engine/gfx/color.asm)
const_def
const PREDEFPAL_00
const PREDEFPAL_PALLET
const PREDEFPAL_VIRIDIAN
const PREDEFPAL_PEWTER
const PREDEFPAL_CERULEAN
const PREDEFPAL_LAVENDER
const PREDEFPAL_VERMILION
const PREDEFPAL_CELADON
const PREDEFPAL_FUCHSIA
const PREDEFPAL_CINNABAR
const PREDEFPAL_SAFFRON
const PREDEFPAL_INDIGO
const PREDEFPAL_NEW_BARK
const PREDEFPAL_CHERRYGROVE
const PREDEFPAL_VIOLET
const PREDEFPAL_AZALEA
const PREDEFPAL_GOLDENROD
const PREDEFPAL_ECRUTEAK
const PREDEFPAL_OLIVINE
const PREDEFPAL_CIANWOOD
const PREDEFPAL_MAHOGANY
const PREDEFPAL_BLACKTHORN
const PREDEFPAL_LAKE_OF_RAGE
const PREDEFPAL_SILVER_CAVE
const PREDEFPAL_DUNGEONS
const PREDEFPAL_NITE
const PREDEFPAL_BLACKOUT
const PREDEFPAL_DIPLOMA ; RB_MEWMON
const PREDEFPAL_TRADE_TUBE ; RB_BLUEMON
const PREDEFPAL_POKEDEX ; RB_REDMON
const PREDEFPAL_RB_CYANMON
const PREDEFPAL_RB_PURPLEMON
const PREDEFPAL_RB_BROWNMON
const PREDEFPAL_RB_GREENMON
const PREDEFPAL_RB_PINKMON
const PREDEFPAL_RB_YELLOWMON
const PREDEFPAL_CGB_BADGE ; RB_GREYMON
const PREDEFPAL_BETA_SHINY_MEWMON
const PREDEFPAL_BETA_SHINY_BLUEMON
const PREDEFPAL_BETA_SHINY_REDMON
const PREDEFPAL_BETA_SHINY_CYANMON
const PREDEFPAL_BETA_SHINY_PURPLEMON
const PREDEFPAL_BETA_SHINY_BROWNMON
const PREDEFPAL_BETA_SHINY_GREENMON
const PREDEFPAL_BETA_SHINY_PINKMON
const PREDEFPAL_BETA_SHINY_YELLOWMON
const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GREYMON
const PREDEFPAL_HP_GREEN
const PREDEFPAL_HP_YELLOW
const PREDEFPAL_HP_RED
const PREDEFPAL_POKEGEAR
const PREDEFPAL_BETA_LOGO_1
const PREDEFPAL_BETA_LOGO_2
const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO
const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS
const PREDEFPAL_BETA_INTRO_LAPRAS
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
const PREDEFPAL_BETA_INTRO_VENUSAUR
const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD
const PREDEFPAL_SLOT_MACHINE_0
const PREDEFPAL_SLOT_MACHINE_1
const PREDEFPAL_SLOT_MACHINE_2
const PREDEFPAL_SLOT_MACHINE_3
const PREDEFPAL_BETA_POKER_0
const PREDEFPAL_BETA_POKER_1
const PREDEFPAL_BETA_POKER_2
const PREDEFPAL_BETA_POKER_3
const PREDEFPAL_BETA_RADIO
const PREDEFPAL_BETA_POKEGEAR
const PREDEFPAL_47
const PREDEFPAL_GS_TITLE_SCREEN_0
const PREDEFPAL_GS_TITLE_SCREEN_1
const PREDEFPAL_GS_TITLE_SCREEN_2
const PREDEFPAL_GS_TITLE_SCREEN_3
const PREDEFPAL_UNOWN_PUZZLE
const PREDEFPAL_4D
const PREDEFPAL_GAMEFREAK_LOGO
; SGB system command codes
; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_System_Command_Table
const_def
const SGB_PAL01
const SGB_PAL23
const SGB_PAL03
const SGB_PAL12
const SGB_ATTR_BLK
const SGB_ATTR_LIN
const SGB_ATTR_DIV
const SGB_ATTR_CHR
const SGB_SOUND
const SGB_SOU_TRN
const SGB_PAL_SET
const SGB_PAL_TRN
const SGB_ATRC_EN
const SGB_TEST_EN
const SGB_ICON_EN
const SGB_DATA_SND
const SGB_DATA_TRN
const SGB_MLT_REG
const SGB_JUMP
const SGB_CHR_TRN
const SGB_PCT_TRN
const SGB_ATTR_TRN
const SGB_ATTR_SET
const SGB_MASK_EN
const SGB_OBJ_TRN
PALPACKET_LENGTH EQU $10

520
data/items/attributes.asm Normal file
View File

@ -0,0 +1,520 @@
include "constants.asm"
item_attribute: MACRO
; price, held effect, parameter, property, pocket, field menu, battle menu
dw \1
db \2, \3, \4, \5
dn \6, \7
ENDM
SECTION "Item Attributes", ROMX [$68f3], BANK [$01]
ItemAttributes:: ; 68f3
; ITEM_MASTER_BALL
item_attribute 0, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_ULTRA_BALL
item_attribute 1200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_03
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_GREAT_BALL
item_attribute 600, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_POKE_BALL
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_TOWN_MAP
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_BICYCLE
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_MOON_STONE
item_attribute 0, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_ANTIDOTE
item_attribute 100, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_BURN_HEAL
item_attribute 250, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_ICE_HEAL
item_attribute 250, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_AWAKENING
item_attribute 250, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_PARLYZ_HEAL
item_attribute 200, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_FULL_RESTORE
item_attribute 3000, HELD_2, 255, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_MAX_POTION
item_attribute 2500, HELD_BERRY, 255, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HYPER_POTION
item_attribute 1200, HELD_BERRY, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_SUPER_POTION
item_attribute 700, HELD_BERRY, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_POTION
item_attribute 300, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_ESCAPE_ROPE
item_attribute 550, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_REPEL
item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; ITEM_MAX_ELIXER
item_attribute 4800, HELD_RESTORE_ALL_PP, 255, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_FIRE_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_THUNDERSTONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_WATER_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_19
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_HP_UP
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_PROTEIN
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_IRON
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_CARBOS
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_1E
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_CALCIUM
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_RARE_CANDY
item_attribute 4800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_X_ACCURACY
item_attribute 950, HELD_ACCURACY_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_LEAF_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_23
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_NUGGET
item_attribute 10000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_POKE_DOLL
item_attribute 1000, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_FULL_HEAL
item_attribute 600, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_REVIVE
item_attribute 1500, HELD_5, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_MAX_REVIVE
item_attribute 4000, HELD_5, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_GUARD_SPEC
item_attribute 700, HELD_SP_DEFENSE_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_SUPER_REPEL
item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; ITEM_MAX_REPEL
item_attribute 700, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; ITEM_DIRE_HIT
item_attribute 650, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_2D
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FRESH_WATER
item_attribute 200, HELD_BERRY, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_SODA_POP
item_attribute 300, HELD_BERRY, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_LEMONADE
item_attribute 350, HELD_BERRY, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_X_ATTACK
item_attribute 500, HELD_ATTACK_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_32
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_X_DEFEND
item_attribute 550, HELD_DEFENSE_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_X_SPEED
item_attribute 350, HELD_SPEED_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_X_SPECIAL
item_attribute 350, HELD_SP_ATTACK_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_COIN_CASE
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; ITEM_ITEMFINDER
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_POKE_FLUTE
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_CURRENT
; ITEM_EXP_SHARE
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_OLD_ROD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_GOOD_ROD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_3C
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SUPER_ROD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_PP_UP
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_ETHER
item_attribute 1200, HELD_RESTORE_PP, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_MAX_ETHER
item_attribute 2400, HELD_RESTORE_PP, 255, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_ELIXER
item_attribute 2400, HELD_RESTORE_ALL_PP, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_MYSTIC_PETAL
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_WHITE_FEATHER
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_CONFUSE_CLAW
item_attribute 10, HELD_78, 15, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_WISDOM_ORB
item_attribute 10, HELD_45, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_STEEL_SHELL
item_attribute 10, HELD_METAL_POWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_UP_GRADE
item_attribute 10, HELD_48, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_STRANGE_THREAD
item_attribute 10, HELD_BRIGHTPOWDER, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BIG_LEAF
item_attribute 10, HELD_GRASS_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_QUICK_NEEDLE
item_attribute 10, HELD_QUICK_CLAW, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_4B
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SHARP_STONE
item_attribute 10, HELD_ROCK_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BLACK_FEATHER
item_attribute 10, HELD_FLYING_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SHARP_FANG
item_attribute 10, HELD_NORMAL_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SNAKESKIN
item_attribute 10, HELD_PREVENT_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_ELECTRIC_POUCH
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TOXIC_NEEDLE
item_attribute 10, HELD_POISON_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_KINGS_ROCK
item_attribute 10, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_STRANGE_POWER
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_LIFE_TAG
item_attribute 10, HELD_4, 1, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_POISON_FANG
item_attribute 10, HELD_POISON_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_CORDYCEPS
item_attribute 10000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_DRAGON_FANG
item_attribute 10, HELD_DRAGON_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SILVERPOWDER
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_DIGGING_CLAW
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_5A
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AMULET_COIN
item_attribute 10, HELD_AMULET_COIN, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_MIGRAINE_SEED
item_attribute 10, HELD_PSYCHIC_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_COUNTER_CUFF
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TALISMAN_TAG
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_STRANGE_WATER
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TWISTEDSPOON
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_ATTACK_NEEDLE
item_attribute 10, HELD_BUG_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_POWER_BRACER
item_attribute 10, HELD_FIGHTING_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_HARD_STONE
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_64
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_JIGGLING_BALLOON
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FIRE_MANE
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SLOWPOKETAIL
item_attribute 10000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_EARTH
item_attribute 10, HELD_PREVENT_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_STICK
item_attribute 10, HELD_NORMAL_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FLEE_FEATHER
item_attribute 10, HELD_71, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_ICE_FANG
item_attribute 10, HELD_ICE_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FOSSIL_SHARD
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_GROSS_GARBAGE
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BIG_PEARL
item_attribute 15000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_CHAMPION_BELT
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TAG
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SPELL_TAG
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_5_YEN_COIN
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_GUARD_THREAD
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_STIMULUS_ORB
item_attribute 10, HELD_PREVENT_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_CALM_BERRY
item_attribute 10, HELD_PREVENT_CONFUSE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_THICK_CLUB
item_attribute 10, HELD_GROUND_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FOCUS_ORB
item_attribute 10, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_78
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_DETECT_ORB
item_attribute 10, HELD_EVASION_UP, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_LONG_TONGUE
item_attribute 10, HELD_CATCH_CHANCE, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_LOTTO_TICKET
item_attribute 10, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_EVERSTONE
item_attribute 0, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SHARP_HORN
item_attribute 10, HELD_41, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_LUCKY_EGG
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_LONG_VINE
item_attribute 10, HELD_CATCH_CHANCE, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_MOMS_LOVE
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SMOKESCREEN
item_attribute 10, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_WET_HORN
item_attribute 10, HELD_WATER_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SKATEBOARD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_CRIMSON_JEWEL
item_attribute 12000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_INVISIBLE_WALL
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SHARP_SCYTHE
item_attribute 10, HELD_CRITICAL_UP, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_87
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_ICE_BIKINI
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_THUNDER_FANG
item_attribute 10, HELD_ELECTRIC_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FIRE_CLAW
item_attribute 10, HELD_FIRE_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TWIN_HORNS
item_attribute 10, HELD_41, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SPIKE
item_attribute 10, HELD_GHOST_BOOST, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BERRY
item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_APPLE
item_attribute 300, HELD_BERRY, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_METAL_COAT
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_PRETTY_TAIL
item_attribute 10, HELD_PREVENT_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_WATER_TAIL
item_attribute 10, HELD_PREVENT_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_LEFTOVERS
item_attribute 10, HELD_LEFTOVERS, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_ICE_WING
item_attribute 10, HELD_45, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_THUNDER_WING
item_attribute 10, HELD_43, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FIRE_WING
item_attribute 10, HELD_SP_ATTACK_UP, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_96
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_DRAGON_SCALE
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BERSERK_GENE
item_attribute 10, HELD_48, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_HEART_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_FIRE_TAIL
item_attribute 10, HELD_PREVENT_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_THUNDER_TAIL
item_attribute 10, HELD_PREVENT_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_SACRED_ASH
item_attribute 10, HELD_5, 255, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_CLOSE
; ITEM_TM_HOLDER
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, ITEM, 1, 1
; ITEM_MAIL
item_attribute 0, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BALL_HOLDER
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, ITEM, 2, 2
; ITEM_BAG
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, 3, 3
; ITEM_IMPORTANT_BAG
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, ITEM, 3, 3
; ITEM_POISON_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_A3
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_A4
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_A5
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_A6
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_A7
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_A8
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_A9
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AA
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AB
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AC
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AD
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AE
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AF
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B0
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B1
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B2
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B3
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B4
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B5
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B6
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B7
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B8
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B9
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BA
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BB
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BC
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BD
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BE
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BF
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_C0
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_C1
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_C2
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_C3
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TM01
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM02
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM03
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM04
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_C8
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TM05
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM06
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM07
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM08
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM09
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM10
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM11
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM12
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM13
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM14
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM15
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM16
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM17
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM18
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM19
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM20
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM21
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM22
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM23
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM24
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM25
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM26
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM27
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM28
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_E1
item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_TM29
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM30
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM31
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM32
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM33
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM34
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM35
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM36
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM37
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM38
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM39
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM40
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM41
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM42
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM43
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM44
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM45
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM46
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM47
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM48
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM49
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_TM50
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM01
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM02
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM03
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM04
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM05
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM06
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM07
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY

View File

@ -43,7 +43,7 @@ GiveItemPredef::
add_predef LinkTextboxAtHL
add_predef Function2d663
add_predef Function3d5ce
add_predef Function3f019
add_predef PlaceGraphic
add_predef Function3f068 ; 20
add_predef Function3f04a
add_predef Function3d08c

View File

@ -2357,7 +2357,7 @@ BGEffect_CheckFlyDigStatus: ; c8ccc (32:4ccc)
ret
BattleBGEffects_CheckSGB: ; c8ce3 (32:4ce3)
ld a, [wcccf]
ld a, [wSGB]
and a
ret

200
engine/math/math.asm Normal file
View File

@ -0,0 +1,200 @@
include "constants.asm"
SECTION "Multiply and Divide Engine", ROMX [$6810], BANK [$1]
_Multiply:: ; 6810
; hMultiplier is one byte.
ld a, 8
ld b, a
xor a
ldh [hProduct], a
ldh [hMathBuffer + 1], a
ldh [hMathBuffer + 2], a
ldh [hMathBuffer + 3], a
ldh [hMathBuffer + 4], a
.loop
ldh a, [hMultiplier]
srl a
ldh [hMultiplier], a
jr nc, .next
ldh a, [hMathBuffer + 4]
ld c, a
ldh a, [hMultiplicand + 2]
add c
ldh [hMathBuffer + 4], a
ldh a, [hMathBuffer + 3]
ld c, a
ldh a, [hMultiplicand + 1]
adc c
ldh [hMathBuffer + 3], a
ldh a, [hMathBuffer + 2]
ld c, a
ldh a, [hMultiplicand + 0]
adc c
ldh [hMathBuffer + 2], a
ldh a, [hMathBuffer + 1]
ld c, a
ldh a, [hProduct]
adc c
ldh [hMathBuffer + 1], a
.next
dec b
jr z, .done
; hMultiplicand <<= 1
ldh a, [hMultiplicand + 2]
add a
ldh [hMultiplicand + 2], a
ldh a, [hMultiplicand + 1]
rla
ldh [hMultiplicand + 1], a
ldh a, [hMultiplicand + 0]
rla
ldh [hMultiplicand + 0], a
ldh a, [hProduct]
rla
ldh [hProduct], a
jr .loop
.done
ldh a, [hMathBuffer + 4]
ldh [hProduct + 3], a
ldh a, [hMathBuffer + 3]
ldh [hProduct + 2], a
ldh a, [hMathBuffer + 2]
ldh [hProduct + 1], a
ldh a, [hMathBuffer + 1]
ldh [hProduct + 0], a
ret
; 6870
_Divide:: ; 6870
xor a
ldh [hMathBuffer + 0], a
ldh [hMathBuffer + 1], a
ldh [hMathBuffer + 2], a
ldh [hMathBuffer + 3], a
ldh [hMathBuffer + 4], a
ld a, 9
ld e, a
.loop
ldh a, [hMathBuffer + 0]
ld c, a
ldh a, [hDividend + 1]
sub c
ld d, a
ldh a, [hDivisor]
ld c, a
ldh a, [hDividend + 0]
sbc c
jr c, .next
ldh [hDividend + 0], a
ld a, d
ldh [hDividend + 1], a
ldh a, [hMathBuffer + 4]
inc a
ldh [hMathBuffer + 4], a
jr .loop
.next
ld a, b
cp 1
jr z, .done
ldh a, [hMathBuffer + 4]
add a
ldh [hMathBuffer + 4], a
ldh a, [hMathBuffer + 3]
rla
ldh [hMathBuffer + 3], a
ldh a, [hMathBuffer + 2]
rla
ldh [hMathBuffer + 2], a
ldh a, [hMathBuffer + 1]
rla
ldh [hMathBuffer + 1], a
dec e
jr nz, .next2
ld e, 8
ldh a, [hMathBuffer + 0]
ldh [hDivisor], a
xor a
ldh [hMathBuffer + 0], a
ldh a, [hDividend + 1]
ldh [hDividend + 0], a
ldh a, [hDividend + 2]
ldh [hDividend + 1], a
ldh a, [hDividend + 3]
ldh [hDividend + 2], a
.next2
ld a, e
cp 1
jr nz, .okay
dec b
.okay
ldh a, [hDivisor]
srl a
ldh [hDivisor], a
ldh a, [hMathBuffer + 0]
rr a
ldh [hMathBuffer + 0], a
jr .loop
.done
ldh a, [hDividend + 1]
ldh [hDivisor], a
ldh a, [hMathBuffer + 4]
ldh [hDividend + 3], a
ldh a, [hMathBuffer + 3]
ldh [hDividend + 2], a
ldh a, [hMathBuffer + 2]
ldh [hDividend + 1], a
ldh a, [hMathBuffer + 1]
ldh [hDividend + 0], a
ret
; 68f3

View File

@ -24,7 +24,7 @@ TitleSequenceStart::
call TitleScreenMain
jr nc, .loop
call ClearPalettesAndWait
call ClearBGPalettes
call ClearSprites
ld a, $01
ldh [hBGMapMode], a

View File

@ -888,8 +888,8 @@ ReadObjectEvents:: ; 268f
ClearObjectStructs:: ; 26cf
xor a
ld [$CE7F], a ; TODO
ld hl, wObject1Struct
ld [wUnkObjectStruct], a ; TODO
ld hl, wObject2Struct
ld de, wObject2Struct - wObject1Struct
ld c, 7
.clear_struct

676
home/map_objects.asm Normal file
View File

@ -0,0 +1,676 @@
include "constants.asm"
SECTION "Map Object Related Functions", ROM0 [$15b5]
Function15b5:: ; 15b5
callab Function8000
ret
GetMapObject:: ; 00:15be
ld hl, wMapObjects
ld bc, MAP_OBJECT_LENGTH
call AddNTimes
ld b, h
ld c, l
ret
GetMapObjectAttrPtr:: ; 15ca
call GetMapObject
ld d, $0
add hl, de
ret
Function15d1:: ; 15d1
ldh [hMapObjectIndexBuffer], a
call GetMapObject
call Function40eb
ret
Function15da::
ldh [hMapObjectIndexBuffer], a
callab Function8131
ldh a, [hMapObjectIndexBuffer]
call GetMapObject
call Function40eb
ret
Function15ed::
ldh [hMapObjectIndexBuffer], a
call GetMapObject
ld a, $0
ldh [hObjectStructIndexBuffer], a
ld de, wObjectStructs
callab Function813d
ret
Function1602::
ldh [hMapObjectIndexBuffer], a
call GetMapObject
ld a, $2
ldh [hObjectStructIndexBuffer], a
ld de, wObject1Struct
callab Function813d
ret
Function1617:: ; 00:1617
ldh [hMapObjectIndexBuffer], a
call GetMapObject
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
cp $ff
ret z
ld [hl], $ff
push af
ld d, a
ld a, [wObjectFollow_Leader]
cp d
jr nz, .asm_1633
ld a, $ff
ld [wObjectFollow_Leader], a
.asm_1633: ; 00:1633
ld a, [wObjectFollow_Follower]
cp d
jr nz, .asm_163e
ld a, $0
ld [wObjectFollow_Follower], a
.asm_163e: ; 00:163e
pop af
call GetObjectStruct
ld bc, OBJECT_LENGTH
xor a
call ByteFill
ret
Function164a::
call Function1617
callab Function8125
ret
Function1656::
push hl
call GetMapObject
ld d, b
ld e, c
ld a, $ff
ld [de], a
inc de
pop hl
ld bc, MAP_OBJECT_TEMPLATE_LENGTH
call CopyBytes
ret
Function1668::
call GetMapObject
ld a, [wXCoord]
add $4
ld hl, MAPOBJECT_X_COORD
add hl, bc
ld [hl], a
ld a, [wYCoord]
add $4
ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld [hl], a
ret
Function1680::
call CheckObjectVisibility
ret c
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
ldh a, [hMapObjectIndexBuffer]
call GetMapObject
ld hl, MAPOBJECT_X_COORD
add hl, bc
ld [hl], d
ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld [hl], e
and a
ret
Function169f::
call GetMapObject
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
push af
ld [hl], $ff
inc hl
ld bc, MAP_OBJECT_LENGTH - 1
xor a
call ByteFill
pop af
cp $ff
ret z
cp $a
ret nc
ld b, a
ld a, [wObjectFollow_Leader]
cp b
jr nz, .asm_16c5
ld a, $ff
ld [wObjectFollow_Leader], a
.asm_16c5: ; 00:16c5
ld a, b
call GetObjectStruct
ld bc, OBJECT_LENGTH
xor a
call ByteFill
ret
LoadMovementDataPointer::
ld [wMovementObject], a
ldh a, [hROMBank]
ld [wMovementDataBank], a
ld a, l
ld [wMovementDataAddr], a
ld a, h
ld [wMovementDataAddr + 1], a
ld a, [wMovementObject]
call CheckObjectVisibility
ret c
ld hl, $3
add hl, bc
ld [hl], $19
ld hl, $8
add hl, bc
ld [hl], $0
ld hl, wVramState
set 7, [hl]
and a
ret
Function16fb::
ld [wMovementObject], a
ldh a, [hROMBank]
ld [wMovementDataBank], a
ld a, l
ld [wMovementDataAddr], a
ld a, h
ld [wMovementDataAddr + 1], a
ld a, [wMovementObject]
call CheckObjectVisibility
jr c, .asm_171f
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], $19
ld hl, OBJECT_FACING
add hl, bc
ld [hl], $0
.asm_171f: ; 00:171f
ret
CheckObjectVisibility:: ; 00:1720
ldh [hMapObjectIndexBuffer], a
call GetMapObject
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
cp $ff
jr z, .asm_1735
ldh [hObjectStructIndexBuffer], a
call GetObjectStruct
and a
ret
.asm_1735: ; 00:1735
scf
ret
PushToCmdQueue:: ; 1737
push de
call GetCmdQueueEmptySlot
pop de
ret c
ld b, h
ld c, l
ld a, [de]
inc de
ld hl, $1
add hl, bc
ld [hl], a
ld a, [de]
inc de
ld hl, $2
add hl, bc
ld [hl], a
ld a, [de]
inc de
ld hl, $3
add hl, bc
ld [hl], a
ld a, [de]
inc de
ld hl, $d
add hl, bc
ld [hl], a
ld a, [de]
inc de
ld hl, $e
add hl, bc
ld [hl], a
ld a, [de]
inc de
ld hl, $f
add hl, bc
ld [hl], a
ldh a, [hMapObjectIndexBuffer]
inc a
ld hl, $0
add hl, bc
ld [hl], a
push bc
dec a
call GetObjectStruct
ld d, b
ld e, c
pop bc
ld hl, $18
add hl, de
ld a, [hl]
ld hl, $4
add hl, bc
ld [hl], a
ld hl, $19
add hl, de
ld a, [hl]
ld hl, $5
add hl, bc
ld [hl], a
ret
GetCmdQueueEmptySlot:: ; 00:178e
ld hl, wCmdQueue
ld de, CMDQUEUE_ENTRY_SIZE
ld a, 1
.asm_1796: ; 00:1796
ldh [hObjectStructIndexBuffer], a
ld a, [hl]
and a
jr z, .asm_17a6
add hl, de
ldh a, [hObjectStructIndexBuffer]
inc a
cp 4 + 1
jr nz, .asm_1796
scf
ret
.asm_17a6: ; 00:17a6
xor a
ret
UpdateSprites:: ; 00:17a8
ld a, [wVramState]
bit 0, a
ret z
callab Function5007
callab Function5190
ret
GetObjectStruct:: ; 00:17bf
ld bc, $28
ld hl, wObjectStructs
call AddNTimes
ld b, h
ld c, l
ret
Function17cb::
add $10
ld e, a
ldh a, [hROMBank]
push af
ld a, BANK(Function862e)
call Bankswitch
call Function862e
pop af
call Bankswitch
ret
Function17de::
push hl
push bc
ld c, a
ld b, $ff
ld hl, .Data
.asm_17e6: ; 00:17e6
ld a, [hli]
cp b
jr z, .asm_17ee
cp c
jr nz, .asm_17e6
scf
.asm_17ee: ; 00:17ee
pop bc
pop hl
ret
.Data: ; 00:17f1
db $51, $55, $56, $57, $58, $5a, $5b, $ff
Function17f9::
call GetMapObject
ld hl, $0
add hl, bc
ld a, [hl]
cp $ff
ret z
call GetObjectStruct
push bc
call Function1828
pop bc
ld hl, $5
add hl, bc
res 5, [hl]
ret
Function1813::
call GetMapObject
ld hl, $0
add hl, bc
ld a, [hl]
cp $ff
ret z
call GetObjectStruct
ld hl, $5
add hl, bc
set 5, [hl]
ret
Function1828:: ; 00:1828
ld bc, wObjectStructs
xor a
.asm_182c: ; 00:182c
push af
ld hl, OBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
jr z, .asm_183b
ld hl, OBJECT_FLAGS + 1
add hl, bc
set 5, [hl]
.asm_183b: ; 00:183b
ld hl, OBJECT_LENGTH
add hl, bc
ld b, h
ld c, l
pop af
inc a
cp 10
jr nz, .asm_182c
ret
Function1848::
push bc
ld bc, wObjectStructs
xor a
.asm_184d: ; 00:184d
push af
ld hl, OBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
jr z, .asm_185c
ld hl, OBJECT_FLAGS + 1
add hl, bc
res 5, [hl]
.asm_185c: ; 00:185c
ld hl, OBJECT_LENGTH
add hl, bc
ld b, h
ld c, l
pop af
inc a
cp 10
jr nz, .asm_184d
pop bc
ret
Function186a::
call GetMapObject
ld hl, $0
add hl, bc
ld a, [hl]
cp $ff
ret z
call GetObjectStruct
ld hl, OBJECT_FLAGS + 1
add hl, bc
res 5, [hl]
ret
Function187f::
xor a
.asm_1880: ; 00:1880
push af
push hl
ld b, a
ldh a, [hROMBank]
push af
ld c, [hl]
inc hl
ld a, [hli]
ld h, [hl]
ld l, a
ld a, c
call Bankswitch
ld a, b
call ._hl_
pop af
call Bankswitch
pop hl
pop af
inc a
cp 16
jr nz, .asm_1880
ret
._hl_: ; 00:189f
jp hl
Function18a0::
ld a, [wcb70]
and a
ret z
ldh a, [hROMBank]
push af
ld a, BANK(Function83e8)
call Bankswitch
call Function83e8
pop af
call Bankswitch
ret
Function18b4::
ld bc, wPlayerStruct
ld hl, OBJECT_FLAGS
add hl, bc
set 3, [hl]
set 2, [hl]
set 1, [hl]
ld hl, OBJECT_FLAGS + 1
add hl, bc
set 5, [hl]
call Function18e5
ret
Function18cc::
ld hl, wPlayerFlags
res 3, [hl]
res 2, [hl]
res 1, [hl]
ld hl, wPlayerFlags + 1
res 5, [hl]
ld hl, wPlayerMovementType
ld [hl], $10
ld hl, wPlayerDirection
ld [hl], $0
ret
Function18e5:: ; 00:18e5
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld a, [hl]
srl a
srl a
and $3
ld e, a
ld d, $0
ld hl, .Data
add hl, de
ld a, [hl]
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
ld hl, OBJECT_FACING
add hl, bc
ld [hl], $0
ret
.Data:
db $05, $06, $07, $08
Function1908::
call CheckObjectVisibility
ret c
push bc
call Function191d
pop bc
ld hl, OBJECT_FLAGS
add hl, bc
set 7, [hl]
ldh a, [hObjectStructIndexBuffer]
ld [wCenteredObject], a
ret
Function191d:: ; 00:191d
ld a, [wCenteredObject]
cp $ff
ret z
call GetObjectStruct
ld hl, OBJECT_FLAGS
add hl, bc
res 7, [hl]
ld a, $ff
ld [wCenteredObject], a
ret
; 1932
StartFollow::
push bc
ld a, b
call SetLeaderIfVisible
pop bc
ld a, c
call SetFollowerIfVisible
callab QueueFollowerFirstStep
ret
SetLeaderIfVisible:: ; 00:1945
call CheckObjectVisibility
ret c
ldh a, [hObjectStructIndexBuffer]
ld [wObjectFollow_Leader], a
ret
ResetLeader::
xor a
ld [wObjectFollow_Leader], a
ret
SetFollowerIfVisible:: ; 00:1954
push af
call ResetFollower
pop af
call CheckObjectVisibility
ret c
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], $18
ld hl, OBJECT_FACING
add hl, bc
ld [hl], $0
ldh a, [hObjectStructIndexBuffer]
ld [wObjectFollow_Follower], a
ret
ResetFollower:: ; 00:196f
ld a, [wObjectFollow_Follower]
and a
ret z
cp $ff
ret z
call GetObjectStruct
call Function18e5
ret
Function197e::
call CheckObjectVisibility
ret c
ld hl, OBJECT_FLAGS + 1
add hl, bc
res 0, [hl]
ret
Function1989::
call CheckObjectVisibility
ret c
ld hl, OBJECT_FLAGS + 1
add hl, bc
set 0, [hl]
ret
Function1994::
call CheckObjectVisibility
ret c
ld hl, OBJECT_FLAGS + 1
add hl, bc
res 4, [hl]
ret
Function199f::
call CheckObjectVisibility
ret c
ld hl, OBJECT_FLAGS + 1
add hl, bc
set 4, [hl]
ret
Function19aa::
call CheckObjectVisibility
ret c
ld hl, OBJECT_FLAGS + 1
add hl, bc
set 7, [hl]
ret
Function19b5::
call CheckObjectVisibility
ret c
ld hl, OBJECT_FLAGS + 1
add hl, bc
res 7, [hl]
ret
Function19c0::
push de
call CheckObjectVisibility
pop de
ret c
ld a, d
add a
add a
and $c
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], a
ret

25
home/math.asm Normal file
View File

@ -0,0 +1,25 @@
include "constants.asm"
if DEBUG
SECTION "Math utility functions", ROM0 [$3380]
else
SECTION "Math utility functions", ROM0 [$3344]
endc
Multiply::
push hl
push bc
callab _Multiply
pop bc
pop hl
ret
Divide::
push hl
push de
push bc
homecall _Divide
pop bc
pop de
pop hl
ret

View File

@ -210,15 +210,15 @@ Function1e8a:: ; 00:1e8a
ldh [hBGMapMode], a
xor a
call OpenSRAM
call Function1cae
call GetWindowStackTop
ld a, l
ld [wWindowStackPointer], a
ld a, h
ld [wWindowStackPointer + 1], a
call Function1c7a
call PopWindow
ld d, h
ld e, l
call Function1c60
call RestoreTileBackup
call CloseSRAM
ld hl, wWindowStackSize
dec [hl]
@ -271,7 +271,7 @@ GetMenuIndexSet:: ; 00:1ec3
Function1ee9:: ; 1ee9
call MenuBoxCoord2Tile
call Function1c86
call GetMenuBoxDims
ld a, [wMenuDataItems]
add a
cp b

246
home/menu_window.asm Normal file
View File

@ -0,0 +1,246 @@
include "constants.asm"
SECTION "Menu Window Functions", ROM0 [$1bf4]
PushWindow:: ; 00:1bf4
ld hl, PlaceWaitingText
ld a, $9
jp FarCall_hl
ExitMenu:: ; 00:1bfc
push af
callab _ExitMenu
call Function1c0a
pop af
ret
Function1c0a:: ; 00:1c0a
ld a, [wVramState]
bit 0, a
ret z
xor a
call OpenSRAM
hlcoord 0, 0
ld de, sSpriteBuffer0
ld bc, $168
call CopyBytes
call CloseSRAM
call LoadMapPart
xor a
call OpenSRAM
ld hl, sSpriteBuffer0
decoord 0, 0
ld bc, $168
.asm_1c33: ; 00:1c33
ld a, [hl]
cp $61
jr c, .asm_1c39
ld [de], a
.asm_1c39: ; 00:1c39
inc hl
inc de
dec bc
ld a, c
or b
jr nz, .asm_1c33
call CloseSRAM
ret
InitVerticalMenuCursor:: ; 00:1c44
jpab _InitVerticalMenuCursor
CloseWindow:: ; 00:1c4c
push af
call ExitMenu
call WaitBGMap
call UpdateSprites
pop af
ret
Function1c58::
jpab Function24185
RestoreTileBackup:: ; 00:1c60
call MenuBoxCoord2Tile
call GetMenuBoxDims
inc b
inc c
.asm_1c68: ; 00:1c68
push bc
push hl
.asm_1c6a: ; 00:1c6a
ld a, [de]
ld [hli], a
dec de
dec c
jr nz, .asm_1c6a
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
jr nz, .asm_1c68
ret
PopWindow:: ; 00:1c7a
ld b, $10
ld de, wMenuDataHeader
.asm_1c7f: ; 00:1c7f
ld a, [hld]
ld [de], a
inc de
dec b
jr nz, .asm_1c7f
ret
GetMenuBoxDims:: ; 00:1c86
push hl
ld hl, wMenuBorderTopCoord
ld a, [hli]
ld b, a
ld a, [hli]
ld c, a
ld a, [hli]
sub b
ld b, a
ld a, [hli]
sub c
ld c, a
pop hl
ret
CopyMenuData:: ; 00:1c96
push hl
push de
push bc
push af
ld hl, wMenuDataPointer
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wMenuDataFlags
ld bc, $10
call CopyBytes
pop af
pop bc
pop de
pop hl
ret
GetWindowStackTop:: ; 00:1cae
ld hl, wWindowStackPointer
ld a, [hli]
ld h, [hl]
ld l, a
inc hl
ld a, [hli]
ld h, [hl]
ld l, a
ret
PlaceVerticalMenuItems:: ; 00:1cb9
call CopyMenuData
ld hl, wMenuDataPointer
ld e, [hl]
inc hl
ld d, [hl]
call GetMenuTextStartCoord
call Coord2Tile ; hl now contains the tilemap address where we will start printing text.
inc de
ld a, [de]
inc de
ld b, a
.asm_1ccc: ; 00:1ccc
push bc
call PlaceString
inc de
ld bc, 2 * SCREEN_WIDTH
add hl, bc
pop bc
dec b
jr nz, .asm_1ccc
ld a, [wMenuDataFlags]
bit 4, a
ret z
call MenuBoxCoord2Tile
ld a, [de]
ld c, a
inc de
ld b, $0
add hl, bc
jp PlaceString
MenuBox:: ; 00:1ceb
call MenuBoxCoord2Tile
call GetMenuBoxDims
dec b
dec c
jp DrawTextBox
GetMenuTextStartCoord:: ; 00:1cf6
ld a, [wMenuBorderTopCoord]
ld b, a
inc b
ld a, [wMenuBorderLeftCoord]
ld c, a
inc c
ld a, [wMenuDataFlags]
bit 6, a
jr nz, .asm_1d08
inc b
.asm_1d08: ; 00:1d08
ld a, [wMenuDataFlags]
bit 7, a
jr z, .asm_1d10
inc c
.asm_1d10: ; 00:1d10
ret
ClearMenuBoxInterior::
call MenuBoxCoord2Tile
ld bc, SCREEN_WIDTH + 1
add hl, bc
call GetMenuBoxDims
dec b
dec c
call ClearBox
ret
ClearWholeMenuBox::
call MenuBoxCoord2Tile
call GetMenuBoxDims
inc c
inc b
call ClearBox
ret
MenuBoxCoord2Tile:: ; 00:1d2d
ld a, [wMenuBorderLeftCoord]
ld c, a
ld a, [wMenuBorderTopCoord]
ld b, a
Coord2Tile:: ; 00:1d35
xor a
ld h, a
ld l, b
ld a, c
ld b, h
ld c, l
add hl, hl
add hl, hl
add hl, bc
add hl, hl
add hl, hl
ld c, a
xor a
ld b, a
add hl, bc
bccoord 0, 0
add hl, bc
ret

98
home/misc_32c8.asm Normal file
View File

@ -0,0 +1,98 @@
include "constants.asm"
if DEBUG
SECTION "Unknown 32c8", ROM0[$32c8]
else
SECTION "Unknown 32c8", ROM0[$328c]
endc
Function32c8::
predef Functionce10
ld a, b
and a
ret
Function32d0::
ld hl, .Data
ret
.Data: ; 00:32d4
db "@"
SubtractSigned::
sub b
ret nc
cpl
add $1
scf
ret
if DEBUG
SECTION "Unknown 3686", ROM0[$3686]
else
SECTION "Unknown 3686", ROM0[$364a]
endc
GiveMonToPlayer:: ; 3686
; Give to the player Pokemon of species b at level c.
ld a, b
ld [wMonDexIndex], a
ld a, c
ld [wCurPartyLevel], a
xor a
ld [wMonType], a
jpba Function1130a
WaitPressedAny:: ; 369a
; Waits for one of the buttons in d to be pressed.
; If bc is negative, waits forever.
; Otherwise, times out after bc frames then returns z.
; Reset hJoypadSum to clear button history
xor a
ldh [hJoypadSum], a
.loop: ; 00:369d
; Wait for joypad polling.
call DelayFrame
; If any of the buttons in d were pressed, return nz.
ldh a, [hJoypadSum]
and a
jr z, .not_pressed
and d
ret nz
.not_pressed: ; 00:36a7
; If bc < 0, don't check timeout.
bit 7, b
jr nz, .loop
; Count down to timeout.
dec bc
ld a, b
or c
jr nz, .loop
; Return z, signifying that the request timed out.
ret
CountSetBits:: ; 36b1
; Count the number of bits set in b bytes at hl.
; Return to a, c, and wce37.
ld c, $0
.asm_36b3: ; 00:36b3
ld a, [hli]
ld e, a
ld d, $8
.asm_36b7: ; 00:36b7
srl e
ld a, $0
adc c
ld c, a
dec d
jr nz, .asm_36b7
dec b
jr nz, .asm_36b3
ld a, c
ld [wce37], a
ret

82
home/mon_stats.asm Normal file
View File

@ -0,0 +1,82 @@
include "constants.asm"
if DEBUG
SECTION "Mon Stats", ROM0 [$394b]
else
SECTION "Mon Stats", ROM0 [$390f]
endc
DrawBattleHPBar::
push hl
push de
push bc
ld a, $60
ld [hli], a
ld a, $61
ld [hli], a
push hl
ld a, $62
.asm_3957: ; 00:3957
ld [hli], a
dec d
jr nz, .asm_3957
ld a, $6b
add b
ld [hl], a
pop hl
ld a, e
and a
jr nz, .asm_396a
ld a, c
and a
jr z, .asm_397d
ld e, $1
.asm_396a: ; 00:396a
ld a, e
sub $8
jr c, .asm_3979
ld e, a
ld a, $6a
ld [hli], a
ld a, e
and a
jr z, .asm_397d
jr .asm_396a
.asm_3979: ; 00:3979
ld a, $62
add e
ld [hl], a
.asm_397d: ; 00:397d
pop bc
pop de
pop hl
ret
PrepMonFrontpic::
ld a, $1
ld [wSpriteFlipped], a
_PrepMonFrontpic::
ld a, [wMonDexIndex]
and a
jr z, .asm_39a8
cp 252
jr nc, .asm_39a8
push hl
ld de, vFrontPic
call LoadMonFrontSprite
pop hl
xor a
ldh [hGraphicStartTile], a
lb bc, 7, 7
predef PlaceGraphic
xor a
ld [wSpriteFlipped], a
ret
.asm_39a8: ; 00:39a8
xor a
ld [wSpriteFlipped], a
inc a
ld [wMonDexIndex], a
ret

View File

@ -48,4 +48,23 @@ PrintLetterDelay:: ; 33a3 (0:33a3)
pop de
pop hl
ret
; 0x33e3
; 0x33e3
CopyDataUntil:: ; 33e3
; Copy [hl .. bc) to de.
; In other words, the source data is
; from hl up to but not including bc,
; and the destination is de.
.asm_33e3: ; 00:33e3
ld a, [hli]
ld [de], a
inc de
ld a, h
cp b
jr nz, .asm_33e3
ld a, l
cp c
jr nz, .asm_33e3
ret

93
home/scrolling_menu.asm Normal file
View File

@ -0,0 +1,93 @@
include "constants.asm"
if DEBUG
SECTION "Scrolling Menu", ROM0 [$3810]
else
SECTION "Scrolling Menu", ROM0 [$37D4]
endc
Function3810::
ld e, [hl]
inc hl
ld d, [hl]
inc hl
push hl
ld h, d
ld l, e
call CopyMenuHeader
pop hl
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld a, [de]
ld [wMenuCursorBuffer], a
push de
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld a, [de]
ld [wMenuScrollPosition], a
push de
call ScrollingMenu
pop de
ld a, [wMenuScrollPosition]
ld [de], a
pop de
ld a, [wMenuCursorY]
ld [de], a
ld a, [wMenuJoypad]
ret
ScrollingMenu:: ; 00:383e
call CopyMenuData
ldh a, [hROMBank]
push af
ld a, BANK(_InitScrollingMenu) ; and BANK(_ScrollingMenu)
call Bankswitch
call _InitScrollingMenu
call SetPalettes
call _ScrollingMenu
pop af
call Bankswitch
ld a, [wMenuJoypad]
ret
Function385a::
push hl
jr asm_3865
Function385d::
callab Function_8f1cb
asm_3865: ; 00:3865
pop hl
call MenuTextBox
ld c, $0
call Function3872
call CloseWindow
ret
Function3872:: ; 00:3872
push bc
jr asm_387d
Function3875::
callab Function8cd0c
asm_387d: ; 00:387d
pop bc
call GetJoypad
ldh a, [hJoyDown]
and A_BUTTON | B_BUTTON
jr nz, .asm_388e
ld a, c
and a
jr z, Function3872
dec c
jr z, Function3872
.asm_388e: ; 00:388e
ret

70
home/tilemap.asm Normal file
View File

@ -0,0 +1,70 @@
include "constants.asm"
if DEBUG
SECTION "Tilemap Functions", ROM0 [$360B]
else
SECTION "Tilemap Functions", ROM0 [$35CF]
endc
Function360b::
call ClearSprites
ld hl, wVramState
set 0, [hl]
call Function3657
call LoadFontExtra
call GetMemSGBLayout
jr WaitBGMap
ClearBGPalettes:: ; 361e
call ClearPalettes
WaitBGMap:: ; 00:3621
; Tell VBlank to update BG Map
ld a, $1
ldh [hBGMapMode], a
; Wait for it to do its magic
ld c, 3
call DelayFrames
ret
SetPalettes:: ; 00:362b
ld a, %11100100
ldh [rBGP], a
ld a, %11010000
ldh [rOBP0], a
ret
ClearPalettes:: ; 00:3634
xor a
ldh [rBGP], a
ldh [rOBP0], a
ldh [rOBP1], a
ret
GetMemSGBLayout:: ; 00:363c
ld b, SGB_RAM
GetSGBLayout:: ; 00:363e
ld a, [wSGB]
and a
ret z
predef_jump Function928b
SetHPPal:: ; 00:3648
ld a, e
cp 27 ; 56.25%
ld d, $0
jr nc, .done
cp 10 ; 20.83%
inc d
jr nc, .done
inc d
.done: ; 00:3655
ld [hl], d
ret
Function3657:: ; 00:3657
call DisableLCD
callab Function140d9
call LoadFont
call UpdateSprites
call EnableLCD
ret

101
home/unknown_388f.asm Normal file
View File

@ -0,0 +1,101 @@
include "constants.asm"
if DEBUG
SECTION "Unknown 388F", ROM0 [$388F]
else
SECTION "Unknown 388F", ROM0 [$3853]
endc
Function388f::
ret
Function3890::
callba Function14cac
ret
Function3899::
callba Function14dac
ret
Function38a2::
callba Function14dc4
ret
Function38ab::
callba Function14ddd
ret
Function38b4::
callba Function14e00
ret
Function38bd::
callba Function14e5f
ret
Function38c6::
callba Function14e27
ret
Function38cf::
callba Function14e4a
ret
Function38d8::
ld hl, wc5ed
set 7, [hl]
ld a, $8
ld [wd637], a
ret
Function38e3::
ldh a, [hJoyState]
and $f0
ret z
call Function3233
jp nz, Function323e
callab Function3ee3e
ld a, [wBattleMode]
and a
ret z
ld a, $3
call WriteIntod637
call Function3240
ret
Function3904::
predef Function3ef19
ld a, $f3
ldh [hMapEntryMethod], a
ld hl, wd4a9
set 5, [hl]
ld hl, wJoypadFlags
set 4, [hl]
set 6, [hl]
ld a, $b
call WriteIntod637
ret
Function391f::
ret
Function3910::
ld a, [wcd5d]
cp $1
jr z, .asm_392d
ld a, $4
call WriteIntod637
ret
.asm_392d: ; 00:392d
ld hl, wJoypadFlags
res 4, [hl]
ld hl, .text
call Function3111
call RotateFourPalettesLeft
jp Init
.text:
text "つぎは がんばるぞ!!"
done

View File

@ -1,12 +1,59 @@
INCLUDE "constants.asm"
if DEBUG
SECTION "Misc Utility Functions", ROM0[$341F]
SECTION "Misc Utility Functions", ROM0[$33EF]
else
SECTION "Misc Utility Functions", ROM0[$33E3]
SECTION "Misc Utility Functions", ROM0[$33B3]
endc
_341F:: ; 341f
Function33ef::
; hl = src
; de = dest
; b = y
; c = x
push hl
push de
push bc
ld a, b
dec a
dec a
ld b, $0
.asm_33f7: ; 00:33f7
add hl, bc
dec a
jr nz, .asm_33f7
pop bc
dec b
ld a, b
push hl
add hl, bc
ld d, h
ld e, l
pop hl
.asm_3403: ; 00:3403
push af
push bc
call CopyBytes
pop bc
push bc
ld a, c
xor $ff
ld c, a
ld b, $ff
inc bc
add hl, bc
ld d, h
ld e, l
add hl, bc
pop bc
pop af
dec a
jr nz, .asm_3403
pop hl
pop de
jp CopyBytes
SkipNames:: ; 341f
; Returns hl + a * 6
and a
ret z
@ -39,3 +86,35 @@ memcmp:: ; 3430
dec c
jr nz, .loop
ret
Function3439:: ; 3439
; Place 2x2 sprite from *de into OAM at slot a
ld h, HIGH(wVirtualOAM)
swap a
ld l, a
call .Load
push bc
ld a, $8
add c
ld c, a
call .Load
pop bc
ld a, $8
add b
ld b, a
call .Load
ld a, $8
add c
ld c, a
.Load: ; 00:3455
ld [hl], b
inc hl
ld [hl], c
inc hl
ld a, [de]
inc de
ld [hli], a
ld a, [de]
inc de
ld [hli], a
ret

View File

@ -57,7 +57,9 @@ hJoyDebounceSrc:: db ; ffa5
hJoypadState2:: db ; ffa6
ds 8 ; TODO
ds 6 ; TODO
hGraphicStartTile:: db ; ffad
hMoveMon:: db
UNION
@ -96,11 +98,37 @@ hSpriteOffset:: ; ffb1
db ; TODO
UNION
; ffb3
hProduct::
hDividend::
; ds 4
db
; ffb4
hMultiplicand::
hQuotient::
ds 3
; ffb7
hMultiplier::
hDivisor::
hRemainder::
db
; ffb8
hMathBuffer::
ds 5
NEXTU
hPrintNumLeadingDigit:: db ; ffb3 digit one place-value up
hPrintNumDividend:: ds 3 ; ffb4 big-endian
hPrintNumDivisor:: ds 3 ; ffb7 big-endian
hPrintNumTemp:: ds 3 ; ffba big-endian
ENDU
ds 19 ; TODO

View File

@ -12,7 +12,7 @@ callab: MACRO ; address, bank
ENDM
homecall: MACRO
ld a, [hROMBank]
ldh a, [hROMBank]
push af
ld a, BANK(\1)
call Bankswitch

View File

@ -372,3 +372,13 @@ warp_struct: MACRO
\1MapGroup:: ds 1
\1MapNumber:: ds 1
ENDM
ptrba: MACRO
\1Bank:: db
\1Addr:: dw
ENDM
ptrab: MACRO
\1Addr:: dw
\1Bank:: db
ENDM

View File

@ -1,33 +1,12 @@
; ROM0
00:15BE GetMapObject
00:1720 CheckObjectVisibility
00:17A8 UpdateSprites
00:17BF GetObjectStruct
00:1A7C Function1a7c
00:1BF4 PushWindow
00:1BFC ExitMenu
00:1C44 InitVerticalMenuCursor
00:1C4C CloseWindow
00:1C60 Function1c60 ; PopWindow?
00:1C7A Function1c7a ; HandleWindow?
00:1C86 Function1c86
00:1C96 CopyMenuData
00:1CAE Function1cae ; PushWindow?
00:1CB9 PlaceVerticalMenuItems
00:1CEB MenuBox
00:1D2D MenuBoxCoord2Tile
00:202C Function202c
00:2C05 StartMenuCheck
00:3111 Function3111
00:3171 Function3171
00:361E ClearPalettesAndWait
00:3621 WaitBGMap
00:362B SetPalettes
00:3634 ClearPalettes
00:363C GetMemSGBLayout
00:363E GetSGBLayout
00:3648 SetHPPal
00:3655 SetHPPal.done
00:3233 Function3233
00:323E Function323e
00:3240 Function3240
00:39BA PlayCry
00:3CA8 InitSpriteAnimStruct
00:3D86 WaitSFX
@ -47,10 +26,12 @@
00:3E2E GetMapMusic.unk_3E2E
00:3E32 Unk_3E32
01:4031 Function4031
01:4031 DebugMenu
01:40EB Function40eb
01:5007 Function5007
01:5190 _UpdateSprites
01:5190 Function5190
01:53CC MainMenu
01:5D27 Function5d27
01:63D8 ReanchorBGMap_NoOAMUpdate
@ -58,10 +39,15 @@
01:6445 Function6445
01:66B1 Function66b1
01:6713 Function6713
01:68F3 ItemAttributes
02:4000 Function8000
02:4098 _InitializeVisibleSprites
02:4125 Function8125
02:4131 Function8131
02:413D Function813d
02:43E8 Function83e8
02:45DF QueueFollowerFirstStep
02:462E Function862e
02:4786 Function8786
02:4856 DecompTownMapTilemap
02:48DA DecompTownMapTilemap.tilemap
@ -98,6 +84,7 @@
04:528F Function1128f
04:52C1 Function112c1
04:530A Function1130a
04:5677 DoPlayerMovement
04:5DBE DisplayStartMenu
04:640B Function1240b
@ -109,6 +96,7 @@
05:404C CheckInteriorMap
05:405B AddIndoorSprites
05:40AA AddOutdoorSprites
05:40D9 Function140d9
05:40FB LoadUsedSpritesGfx ; TODO: maybe there's a better name
05:43B6 InitAllSRAMBanks
05:43E0 Function143e0
@ -123,6 +111,20 @@
; ptr Copied to c5eb
; word Unknown (2 bytes)
05:470E UnknownMapBufferPointers
05:4CAC Function14cac
05:4DAC Function14dac
05:4DC4 Function14dc4
05:4DDD Function14ddd
05:4E00 Function14e00
05:4E5F Function14e5f
05:4E27 Function14e27
05:4E4A Function14e4a
09:412C _ExitMenu
09:4185 Function24185
09:4199 _InitVerticalMenuCursor
09:426A _InitScrollingMenu
09:4287 _ScrollingMenu
0A:4C98 LinkTextboxAtHL
0A:4D6E Function28d6e
@ -144,8 +146,9 @@
0F:691E Function3e91e
0F:6963 Function3e963
0F:69A9 _LoadWildMons
0F:6E3E Function3ee3e
0F:6F19 Function3ef19
0F:7019 Function3f019
0F:7019 PlaceGraphic
0F:704A Function3f04a
0F:7068 Function3f068
@ -185,8 +188,10 @@
23:4940 Function8c940
23:49C6 Function8c9c6
23:4CFD InitEffectObject
23:4D0C Function8cd0c
23:4d13 EffectObjectJumpNoDelay
23:60cc MenuMonIconGfx
23:71CB Function_8f1cb
24:4000 SetClockDialog
24:4239 SlotMachineGame

View File

@ -100,7 +100,8 @@ wMapBuffer::
wMapScriptNumber:: db ; c5e8
wMapScriptNumberLocation:: dw ; c5e9
wUnknownMapPointer:: dw ; c5eb ; TODO
ds 19 ; TODO
wc5ed:: db ; c5ed
ds 18 ; TODO
wMapBufferEnd:: ; c600
@ -215,8 +216,7 @@ wPlayerLinkAction:: db ; cb51
wLinkTimeoutFrames:: dw ; cb56
wcb58:: ds 2 ; cb58
; cb5a
ds 1 ; TODO
wMonType:: db ; cb5a
wCurSpecies:: db ; cb5b
wNamedObjectTypeBuffer:: db ; cb5c
@ -232,12 +232,18 @@ wVBCopyDoubleSize:: ds 1 ; cb67
wVBCopyDoubleSrc:: ds 2 ; cb68
wVBCopyDoubleDst:: ds 2 ; cb6a
SECTION "CB71", WRAM0[$CB71]
SECTION "CB71", WRAM0[$CB70]
wcb70:: db
wVBCopyFarSize:: ds 1 ; cb71
wVBCopyFarSrc:: ds 2 ; cb72
wVBCopyFarDst:: ds 2 ; cb74
wVBCopyFarSrcBank:: ds 1 ; cb76
db
wMovementObject:: db ; cb78
ptrba wMovementData ; cb79
SECTION "Collision buffer", WRAM0[$CB90]
@ -280,7 +286,7 @@ wMenuCursorBuffer:: db ; cc09
ds 8 ; TODO
wMenuData2::
db ; cc12
wMenuDataFlags:: db ; cc12
wMenuDataItems:: db ; cc13
wMenuDataIndicesPointer:: dw ; cc14
wMenuDataDisplayFunctionPointer:: dw ; cc16
@ -308,7 +314,7 @@ wDebugWarpSelection:: ; cc39
ds 6
wSGB:: ; cc40
wcc40:: ; cc40
db
SECTION "CC9C", WRAM0[$CC9C]
@ -349,7 +355,7 @@ wOBP1:: db ; cccc
SECTION "CCCE", WRAM0[$CCCE]
wDisableVBlankWYUpdate:: db ; ccce
wcccf:: db
wSGB:: db
SECTION "CD26", WRAM0[$CD26]
@ -393,7 +399,10 @@ wFarCallBCBuffer:: ; cd54
dw
ds 3 ; TODO
wVramState:: db
wVramState:: db ; cd59
ds 3 ; TODO
wcd5d:: db ; cd5d
SECTION "CD72", WRAM0[$CD72]
wcd72:: dw ; cd72
@ -412,6 +421,7 @@ wItemQuantityBuffer:: db ; cd7e
SECTION "CDBA", WRAM0[$CDBA]
wItemAttributeParamBuffer:: db ; cdba
wCurPartyLevel:: db ; cdbb
SECTION "CDBD", WRAM0[$CDBD]
@ -547,33 +557,33 @@ wObjectFollow_Leader:: ; ce76
db
wObjectFollow_Follower:: ; ce77
db
wCenteredObject:: ; ce78
db
wFollowerMovementQueueLength:: ; ce79
db
wFollowMovementQueue:: ; ce7a
ds 5
SECTION "Object structs", WRAM0[$CEA7]
wObjectStructs:: ; cea7
wPlayerStruct:: object_struct wPlayer
wObject0Struct:: object_struct wObject0
wObject1Struct:: object_struct wObject1
wObject2Struct:: object_struct wObject2
wObject3Struct:: object_struct wObject3
wObject4Struct:: object_struct wObject4
wObject5Struct:: object_struct wObject5
wObject6Struct:: object_struct wObject6
wObject7Struct:: object_struct wObject7
wObjectStructs:: ; ce7f
; Note: this might actually not be an object. TODO: Investigate (if indexing starts at 1, then this isn't an object)
; It might just be unused/a leftover.
wUnkObjectStruct:: object_struct wUnkObject ; ce7f
wPlayerStruct:: object_struct wPlayer ; cea7
wObject1Struct:: object_struct wObject1 ; cecf
wObject2Struct:: object_struct wObject2 ; cef7
wObject3Struct:: object_struct wObject3 ; cf1f
wObject4Struct:: object_struct wObject4 ; cf47
wObject5Struct:: object_struct wObject5 ; cf6f
wObject6Struct:: object_struct wObject6 ; cf97
wObject7Struct:: object_struct wObject7 ; cfbf
wObject8Struct:: object_struct wObject8 ; cfe7
wObjectStructsEnd:: ; d00f
; TODO: there are 4 structs of 16 bytes here,
; cleared by ClearObjectStructs.
; What are they?
; d00f
ds 16
; d01f
ds 16
; d02f
ds 16
; d03f
ds 16
wCmdQueue:: ; d00f
wCmdQueueEntry1:: ds 16
wCmdQueueEntry2:: ds 16
wCmdQueueEntry3:: ds 16
wCmdQueueEntry4:: ds 16
wMapObjects:: ; d04f
wPlayerObject:: map_object wPlayer
@ -639,8 +649,10 @@ wBallQuantities:: db ; d1df
SECTION "Rival's Name", WRAM0[$D258]
wRivalsName:: ds 6 ; d258
SECTION "D4AB", WRAM0[$D4AB]
SECTION "D4AB", WRAM0[$D4A9]
wd4a9:: db ; d4a9
ds 1 ; TODO
wJoypadFlags:: db ; d4ab
; 76543210
; ||||\__/
@ -673,6 +685,8 @@ ENDR
wCurrMapObjectCount:: ; d5f6
db
SECTION "D637", WRAM0[$D637]
wd637:: db ; d637
SECTION "Used sprites", WRAM0[$D643]