summaryrefslogtreecommitdiff
path: root/constants
diff options
context:
space:
mode:
Diffstat (limited to 'constants')
-rw-r--r--constants/credits_constants.asm160
-rw-r--r--[-rwxr-xr-x]constants/event_constants.asm16
-rw-r--r--[-rwxr-xr-x]constants/event_macros.asm61
-rwxr-xr-xconstants/hide_show_constants.asm449
-rw-r--r--constants/map_constants.asm1
-rw-r--r--constants/misc_constants.asm54
-rw-r--r--constants/music_constants.asm26
-rwxr-xr-xconstants/oam_constants.asm15
-rw-r--r--constants/pikachu_emotion_constants.asm224
-rwxr-xr-xconstants/sprite_constants.asm66
-rwxr-xr-xconstants/text_constants.asm15
-rw-r--r--constants/tilesets.asm1
-rwxr-xr-xconstants/trainer_constants.asm94
13 files changed, 796 insertions, 386 deletions
diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm
index f5715072..013ceceb 100644
--- a/constants/credits_constants.asm
+++ b/constants/credits_constants.asm
@@ -1,67 +1,95 @@
-const_value = 0
-
- const CRED_VERSION ; $00
- const CRED_TAJIRI ; $01
- const CRED_TA_OOTA ; $02
- const CRED_MORIMOTO ; $03
- const CRED_WATANABE ; $04
- const CRED_MASUDE ; $05
- const CRED_NISINO ; $06
- const CRED_SUGIMORI ; $07
- const CRED_NISHIDA ; $08
- const CRED_MIYAMOTO ; $09
- const CRED_KAWAGUCHI ; $0A
- const CRED_ISHIHARA ; $0B
- const CRED_YAMAUCHI ; $0C
- const CRED_ZINNAI ; $0D
- const CRED_HISHIDA ; $0E
- const CRED_SAKAI ; $0F
- const CRED_YAMAGUCHI ; $10
- const CRED_YAMAMOTO ; $11
- const CRED_TANIGUCHI ; $12
- const CRED_NONOMURA ; $13
- const CRED_FUZIWARA ; $14
- const CRED_MATSUSIMA ; $15
- const CRED_TOMISAWA ; $16
- const CRED_KAWAMOTO ; $17
- const CRED_KAKEI ; $18
- const CRED_TSUCHIYA ; $19
- const CRED_TA_NAKAMURA ; $1A
- const CRED_YUDA ; $1B
- const CRED_MON ; $1C
- const CRED_DIRECTOR ; $1D
- const CRED_PROGRAMMERS ; $1E
- const CRED_CHAR_DESIGN ; $1F
- const CRED_MUSIC ; $20
- const CRED_SOUND_EFFECTS ; $21
- const CRED_GAME_DESIGN ; $22
- const CRED_MONSTER_DESIGN ; $23
- const CRED_GAME_SCENE ; $24
- const CRED_PARAM ; $25
- const CRED_MAP ; $26
- const CRED_TEST ; $27
- const CRED_SPECIAL ; $28
- const CRED_PRODUCERS ; $29
- const CRED_PRODUCER ; $2A
- const CRED_EXECUTIVE ; $2B
- const CRED_TAMADA ; $2C
- const CRED_SA_OOTA ; $2D
- const CRED_YOSHIKAWA ; $2E
- const CRED_TO_OOTA ; $2F
- const CRED_US_STAFF ; $30
- const CRED_US_COORD ; $31
- const CRED_TILDEN ; $32
- const CRED_KAWAKAMI ; $33
- const CRED_HI_NAKAMURA ; $34
- const CRED_GIESE ; $35
- const CRED_OSBORNE ; $36
- const CRED_TRANS ; $37
- const CRED_OGASAWARA ; $38
- const CRED_IWATA ; $39
- const CRED_IZUSHI ; $3A
- const CRED_HARADA ; $3B
- const CRED_MURAKAWA ; $3C
- const CRED_FUKUI ; $3D
- const CRED_CLUB ; $3E
- const CRED_PAAD ; $3F
+ const_def
+ const CRED_VERSION ; 00
+ const CRED_TAJIRI ; 01
+ const CRED_OOTA ; 02
+ const CRED_MORIMOTO ; 03
+ const CRED_WATANABE ; 04
+ const CRED_MASUDA ; 05
+ const CRED_NISHINO ; 06
+ const CRED_SUGIMORI ; 07
+ const CRED_NISHIDA ; 08
+ const CRED_MIYAMOTO ; 09
+ const CRED_KAWAGUCHI ; 0a
+ const CRED_ISHIHARA ; 0b
+ const CRED_YAMAUCHI ; 0c
+ const CRED_ZINNAI ; 0d
+ const CRED_HISHIDA ; 0e
+ const CRED_SAKAI ; 0f
+ const CRED_YAMAGUCHI ; 10
+ const CRED_YAMAMOTO ; 11
+ const CRED_TANIGUCHI ; 12
+ const CRED_NONOMURA ; 13
+ const CRED_FUZIWARA ; 14
+ const CRED_MATSUSIMA ; 15
+ const CRED_TOMISAWA ; 16
+ const CRED_KAWAMOTO ; 17
+ const CRED_KAKEI ; 18
+ const CRED_TSUCHIYA ; 19
+ const CRED_NAKAMURA ; 1a
+ const CRED_YUDA ; 1b
+ const CRED_POKEMON ; 1c
+ const CRED_DIRECTOR ; 1d
+ const CRED_PROGRAMMERS ; 1e
+ const CRED_CHARACTER_DESIGN ; 1f
+ const CRED_MUSIC ; 20
+ const CRED_SOUND_EFFECTS ; 21
+ const CRED_GAME_DESIGN ; 22
+ const CRED_MONSTER_DESIGN ; 23
+ const CRED_GAME_SCENARIO ; 24
+ const CRED_PARAMETRIC_DESIGN ; 25
+ const CRED_MAP_DESIGN ; 26
+ const CRED_TESTING ; 27
+ const CRED_SPECIAL_THANKS ; 28
+ const CRED_PRODUCER ; 29
+ const CRED_EXECUTIVE_PRODUCER ; 2a
+ const CRED_TAMADA ; 2b
+ const CRED_OOTA2 ; 2c
+ const CRED_YOSHIKAWA ; 2d
+ const CRED_OOTA23 ; 2e
+ const CRED_YOSHIDA ; 2f
+ const CRED_MATSUMITA ; 30
+ const CRED_SEYA ; 31
+ const CRED_SEKINE ; 32
+ const CRED_SHIMAMURA ; 33
+ const CRED_SHIMOYAMADA ; 34
+ const CRED_SUPER_MARIO_CLUB ; 35
+ const CRED_IZUSHI ; 36
+ const CRED_NOMURA ; 37
+ const CRED_HARADA ; 38
+ const CRED_YAMAGAMI ; 39
+ const CRED_NISHIMURA ; 3a
+ const CRED_SAEKI ; 3b
+ const CRED_FUZII ; 3c
+ const CRED_SHOGAKUKAN ; 3d
+ const CRED_OOTANI ; 3e
+ const CRED_PIKACHU_VOICE ; 3f
+ const CRED_U_S_STAFF ; 40
+ const CRED_U_S_COORD ; 41
+ const CRED_TILDEN ; 42
+ const CRED_KAWAKAMI ; 43
+ const CRED_NAKAMURA2 ; 44
+ const CRED_SHOEMAKE ; 45
+ const CRED_OSBORNE ; 46
+ const CRED_TRANSLATION ; 47
+ const CRED_OGASAWARA ; 48
+ const CRED_IWATA ; 49
+ const CRED_IZUSHI2 ; 4a
+ const CRED_HARADA2 ; 4b
+ const CRED_MURAKAWA ; 4c
+ const CRED_FUKUI ; 4d
+ const CRED_SUPER_MARIO_CLUB2 ; 4e
+ const CRED_PAAD ; 4f
+ const CRED_PRODUCERS ; 50
+ const CRED_HOSOKAWA ; 51
+ const CRED_OKUBO ; 52
+ const CRED_NAKAMICHI ; 53
+ const CRED_YOSHIMURA ; 54
+ const CRED_YAMAZAKI ; 55
+const_value SET $fa
+ const CRED_THE_END
+ const CRED_COPYRIGHT
+ const CRED_TEXT
+ const CRED_TEXT_FADE
+ const CRED_TEXT_MON
+ const CRED_TEXT_FADE_MON
diff --git a/constants/event_constants.asm b/constants/event_constants.asm
index 47448d09..d2bf1123 100755..100644
--- a/constants/event_constants.asm
+++ b/constants/event_constants.asm
@@ -5,7 +5,7 @@ const_value = 0
const EVENT_002 ; 002, (D747, bit 2)
const EVENT_HALL_OF_FAME_DEX_RATING ; 003, (D747, bit 3)
const EVENT_004 ; 004, (D747, bit 4)
- const EVENT_005 ; 005, (D747, bit 5)
+ const EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ; 005, (D747, bit 5)
const EVENT_PALLET_AFTER_GETTING_POKEBALLS ; 006, (D747, bit 6)
const EVENT_007 ; 007, (D747, bit 7)
const EVENT_008 ; 008, (D748, bit 0)
@@ -168,7 +168,7 @@ const_value = 0
const EVENT_0A5 ; 0A5, (D75B, bit 5)
const EVENT_0A6 ; 0A6, (D75B, bit 6)
const EVENT_BEAT_CERULEAN_ROCKET_THIEF ; 0A7, (D75B, bit 7)
- const EVENT_0A8 ; 0A8, (D75C, bit 0)
+ const EVENT_GOT_BULBASAUR_IN_CERULEAN ; 0A8, (D75C, bit 0)
const EVENT_0A9 ; 0A9, (D75C, bit 1)
const EVENT_0AA ; 0AA, (D75C, bit 2)
const EVENT_0AB ; 0AB, (D75C, bit 3)
@@ -327,7 +327,7 @@ const_value = 0
const EVENT_144 ; 144, (D76F, bit 4)
const EVENT_145 ; 145, (D76F, bit 5)
const EVENT_146 ; 146, (D76F, bit 6)
- const EVENT_147 ; 147, (D76F, bit 7)
+ const EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY ; 147, (D76F, bit 7)
const EVENT_148 ; 148, (D770, bit 0)
const EVENT_149 ; 149, (D770, bit 1)
const EVENT_14A ; 14A, (D770, bit 2)
@@ -1381,8 +1381,8 @@ const_value = 0
const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 ; 562, (D7F3, bit 2)
const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 ; 563, (D7F3, bit 3)
const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 ; 564, (D7F3, bit 4)
- const EVENT_565 ; 565, (D7F3, bit 5)
- const EVENT_566 ; 566, (D7F3, bit 6)
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 ; 565, (D7F3, bit 5)
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 ; 566, (D7F3, bit 6)
const EVENT_567 ; 567, (D7F3, bit 7)
const EVENT_568 ; 568, (D7F4, bit 0)
const EVENT_569 ; 569, (D7F4, bit 1)
@@ -1400,13 +1400,13 @@ const_value = 0
const EVENT_BEAT_MT_MOON_1_TRAINER_5 ; 575, (D7F5, bit 5)
const EVENT_BEAT_MT_MOON_1_TRAINER_6 ; 576, (D7F5, bit 6)
const EVENT_BEAT_MT_MOON_1_TRAINER_7 ; 577, (D7F5, bit 7)
- const EVENT_578 ; 578, (D7F6, bit 0)
+ const EVENT_GOT_DOME_FOSSIL ; 578, (D7F6, bit 0)
const EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD ; 579, (D7F6, bit 1)
const EVENT_BEAT_MT_MOON_3_TRAINER_0 ; 57A, (D7F6, bit 2)
const EVENT_BEAT_MT_MOON_3_TRAINER_2 ; 57B, (D7F6, bit 3)
const EVENT_BEAT_MT_MOON_3_TRAINER_3 ; 57C, (D7F6, bit 4)
const EVENT_BEAT_MT_MOON_3_TRAINER_4 ; 57D, (D7F6, bit 5)
- const EVENT_GOT_DOME_FOSSIL ; 57E, (D7F6, bit 6)
+ const EVENT_57E ; 57E, (D7F6, bit 6)
const EVENT_GOT_HELIX_FOSSIL ; 57F, (D7F6, bit 7)
const EVENT_580 ; 580, (D7F7, bit 0)
const EVENT_581 ; 581, (D7F7, bit 1)
@@ -2560,3 +2560,5 @@ const_value = 0
const EVENT_9FD ; 9FD, (D886, bit 5)
const EVENT_9FE ; 9FE, (D886, bit 6)
const EVENT_9FF ; 9FF, (D886, bit 7)
+
+NUM_EVENT_FLAGS EQU const_value
diff --git a/constants/event_macros.asm b/constants/event_macros.asm
index 20027209..a3ce9746 100755..100644
--- a/constants/event_macros.asm
+++ b/constants/event_macros.asm
@@ -57,6 +57,16 @@ event_byte = ((\2) / 8)
ld \1, wEventFlags + event_byte
ENDM
+EventFlagAddressa: MACRO
+event_byte = ((\1) / 8)
+ ld [wEventFlags + event_byte], a
+ ENDM
+
+aEventFlagAddress: MACRO
+event_byte = ((\1) / 8)
+ ld a, [wEventFlags + event_byte]
+ ENDM
+
;\1 = event index
CheckEventHL: MACRO
event_byte = ((\1) / 8)
@@ -125,6 +135,27 @@ CheckAndResetEventA: MACRO
ld [wEventFlags + ((\1) / 8)], a
ENDM
+CheckAndSetEventReuseHL: MACRO
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ bit (\1) % 8, [hl]
+ set (\1) % 8, [hl]
+ ENDM
+
+CheckAndResetEventReuseHL: MACRO
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ bit (\1) % 8, [hl]
+ res (\1) % 8, [hl]
+ ENDM
+
+
;\1 = event index
SetEvent: MACRO
event_byte = ((\1) / 8)
@@ -431,6 +462,36 @@ CheckEitherEventSet: MACRO
ENDC
ENDM
+CheckEitherEventSetReuseA: MACRO
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld a, [wEventFlags + event_byte]
+ ENDC
+ IF ((\1) / 8) == ((\2) / 8)
+ ld a, [wEventFlags + ((\1) / 8)]
+ and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
+ ELSE
+ ; This case doesn't happen in the original ROM.
+ IF ((\1) % 8) == ((\2) % 8)
+ push hl
+ ld a, [wEventFlags + ((\1) / 8)]
+ ld hl, wEventFlags + ((\2) / 8)
+ or [hl]
+ bit ((\1) % 8), a
+ pop hl
+ ELSE
+ push bc
+ ld a, [wEventFlags + ((\1) / 8)]
+ and (1 << ((\1) % 8))
+ ld b, a
+ ld a, [wEventFlags + ((\2) / 8)]
+ and (1 << ((\2) % 8))
+ or b
+ pop bc
+ ENDC
+ ENDC
+ ENDM
+
; for handling fixed event bits when events are inserted/removed
;\1 = event index
;\2 = fixed flag bit
diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm
index 1a44b1e7..fb4116d7 100755
--- a/constants/hide_show_constants.asm
+++ b/constants/hide_show_constants.asm
@@ -1,236 +1,245 @@
; this is a list of the sprites that can be enabled/disabled during the game
-; sprites marked with an X are constants that are never used
-; because those sprites are not (de)activated in a map's script
-; (they are either items or sprites that deactivate after battle
-; and are detected in wMissableObjectList)
+; there may be unused sprites, but these will remain unmarked until
+; the disassembly is complete
-const_value = 0
+ const_def
const HS_PALLET_TOWN_OAK ; 00
const HS_LYING_OLD_MAN ; 01
- const HS_OLD_MAN ; 02
- const HS_MUSEUM_GUY ; 03
- const HS_GYM_GUY ; 04
- const HS_CERULEAN_RIVAL ; 05
- const HS_CERULEAN_ROCKET ; 06
- const HS_CERULEAN_GUARD_1 ; 07
- const HS_UNKNOWN_DUNGEON_GUY ; 08
- const HS_CERULEAN_GUARD_2 ; 09
- const HS_SAFFRON_CITY_1 ; 0A
- const HS_SAFFRON_CITY_2 ; 0B
- const HS_SAFFRON_CITY_3 ; 0C
- const HS_SAFFRON_CITY_4 ; 0D
- const HS_SAFFRON_CITY_5 ; 0E
- const HS_SAFFRON_CITY_6 ; 0F
- const HS_SAFFRON_CITY_7 ; 10
- const HS_SAFFRON_CITY_8 ; 11
- const HS_SAFFRON_CITY_9 ; 12
- const HS_SAFFRON_CITY_A ; 13
- const HS_SAFFRON_CITY_B ; 14
- const HS_SAFFRON_CITY_C ; 15
- const HS_SAFFRON_CITY_D ; 16
- const HS_SAFFRON_CITY_E ; 17
- const HS_SAFFRON_CITY_F ; 18
- const HS_ROUTE_2_ITEM_1 ; 19 X
- const HS_ROUTE_2_ITEM_2 ; 1A X
- const HS_ROUTE_4_ITEM ; 1B X
- const HS_ROUTE_9_ITEM ; 1C X
- const HS_ROUTE_12_SNORLAX ; 1D
- const HS_ROUTE_12_ITEM_1 ; 1E X
- const HS_ROUTE_12_ITEM_2 ; 1F X
- const HS_ROUTE_15_ITEM ; 20 X
- const HS_ROUTE_16_SNORLAX ; 21
- const HS_ROUTE_22_RIVAL_1 ; 22
- const HS_ROUTE_22_RIVAL_2 ; 23
- const HS_NUGGET_BRIDGE_GUY ; 24
- const HS_ROUTE_24_ITEM ; 25 X
- const HS_ROUTE_25_ITEM ; 26 X
- const HS_DAISY_SITTING ; 27
- const HS_DAISY_WALKING ; 28
- const HS_TOWN_MAP ; 29
- const HS_OAKS_LAB_RIVAL ; 2A
- const HS_STARTER_BALL_1 ; 2B
- const HS_STARTER_BALL_2 ; 2C
- const HS_STARTER_BALL_3 ; 2D
- const HS_OAKS_LAB_OAK_1 ; 2E
- const HS_POKEDEX_1 ; 2F
- const HS_POKEDEX_2 ; 30
- const HS_OAKS_LAB_OAK_2 ; 31
- const HS_VIRIDIAN_GYM_GIOVANNI ; 32
- const HS_VIRIDIAN_GYM_ITEM ; 33 X
- const HS_OLD_AMBER ; 34
- const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 35 X
- const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 36 X
- const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 37 X
- const HS_POKEMONTOWER_2_RIVAL ; 38
- const HS_POKEMONTOWER_3_ITEM ; 39 X
- const HS_POKEMONTOWER_4_ITEM_1 ; 3A X
- const HS_POKEMONTOWER_4_ITEM_2 ; 3B X
- const HS_POKEMONTOWER_4_ITEM_3 ; 3C X
- const HS_POKEMONTOWER_5_ITEM ; 3D X
- const HS_POKEMONTOWER_6_ITEM_1 ; 3E X
- const HS_POKEMONTOWER_6_ITEM_2 ; 3F X
- const HS_POKEMONTOWER_7_ROCKET_1 ; 40 X
- const HS_POKEMONTOWER_7_ROCKET_2 ; 41 X
- const HS_POKEMONTOWER_7_ROCKET_3 ; 42 X
+ const HS_OLD_MAN_1 ; 02
+ const HS_OLD_MAN ; 03
+ const HS_MUSEUM_GUY ; 04
+ const HS_GYM_GUY ; 05
+ const HS_CERULEAN_RIVAL ; 06
+ const HS_CERULEAN_ROCKET ; 07
+ const HS_CERULEAN_GUARD_1 ; 08
+ const HS_UNKNOWN_DUNGEON_GUY ; 09
+ const HS_CERULEAN_GUARD_2 ; 0A
+ const HS_SAFFRON_CITY_1 ; 0B
+ const HS_SAFFRON_CITY_2 ; 0C
+ const HS_SAFFRON_CITY_3 ; 0D
+ const HS_SAFFRON_CITY_4 ; 0E
+ const HS_SAFFRON_CITY_5 ; 0F
+ const HS_SAFFRON_CITY_6 ; 10
+ const HS_SAFFRON_CITY_7 ; 11
+ const HS_SAFFRON_CITY_8 ; 12
+ const HS_SAFFRON_CITY_9 ; 13
+ const HS_SAFFRON_CITY_A ; 14
+ const HS_SAFFRON_CITY_B ; 15
+ const HS_SAFFRON_CITY_C ; 16
+ const HS_SAFFRON_CITY_D ; 17
+ const HS_SAFFRON_CITY_E ; 18
+ const HS_SAFFRON_CITY_F ; 19
+ const HS_ROUTE_2_ITEM_1 ; 1A
+ const HS_ROUTE_2_ITEM_2 ; 1B
+ const HS_ROUTE_4_ITEM ; 1C
+ const HS_ROUTE_9_ITEM ; 1D
+ const HS_ROUTE_12_SNORLAX ; 1E
+ const HS_ROUTE_12_ITEM_1 ; 1F
+ const HS_ROUTE_12_ITEM_2 ; 20
+ const HS_ROUTE_15_ITEM ; 21
+ const HS_ROUTE_16_SNORLAX ; 22
+ const HS_ROUTE_22_RIVAL_1 ; 23
+ const HS_ROUTE_22_RIVAL_2 ; 24
+ const HS_NUGGET_BRIDGE_GUY ; 25
+ const HS_ROUTE_24_ITEM ; 26
+ const HS_ROUTE_25_ITEM ; 27
+ const HS_DAISY_SITTING ; 28
+ const HS_DAISY_WALKING ; 29
+ const HS_TOWN_MAP ; 2A
+ const HS_OAKS_LAB_RIVAL ; 2B
+ const HS_STARTER_BALL_1 ; 2C
+ const HS_OAKS_LAB_OAK_1 ; 2D
+ const HS_POKEDEX_1 ; 2E
+ const HS_POKEDEX_2 ; 2F
+ const HS_OAKS_LAB_OAK_2 ; 30
+ const HS_VIRIDIAN_GYM_GIOVANNI ; 31
+ const HS_VIRIDIAN_GYM_ITEM ; 32
+ const HS_OLD_AMBER ; 33
+ const HS_CERULEAN_BULBASAUR ; 34
+ const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 35
+ const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 36
+ const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 37
+ const HS_UNKNOWN_DUNGEON_1_ITEM_4 ; 38
+ const HS_POKEMONTOWER_2_RIVAL ; 39
+ const HS_POKEMONTOWER_3_ITEM ; 3A
+ const HS_POKEMONTOWER_4_ITEM_1 ; 3B
+ const HS_POKEMONTOWER_4_ITEM_2 ; 3C
+ const HS_POKEMONTOWER_4_ITEM_3 ; 3D
+ const HS_POKEMONTOWER_5_ITEM ; 3E
+ const HS_POKEMONTOWER_6_ITEM_1 ; 3F
+ const HS_POKEMONTOWER_6_ITEM_2 ; 40
+ const HS_POKEMONTOWER_7_JESSIE ; 41
+ const HS_POKEMONTOWER_7_JAMES ; 42
const HS_POKEMONTOWER_7_MR_FUJI ; 43
const HS_LAVENDER_HOUSE_1_MR_FUJI ; 44
const HS_CELADON_MANSION_5_GIFT ; 45
const HS_GAME_CORNER_ROCKET ; 46
- const HS_FUCHSIA_HOUSE_2_ITEM ; 47 X
- const HS_MANSION_1_ITEM_1 ; 48 X
- const HS_MANSION_1_ITEM_2 ; 49 X
+ const HS_FUCHSIA_HOUSE_2_ITEM ; 47
+ const HS_MANSION_1_ITEM_1 ; 48
+ const HS_MANSION_1_ITEM_2 ; 49
const HS_FIGHTING_DOJO_GIFT_1 ; 4A
const HS_FIGHTING_DOJO_GIFT_2 ; 4B
const HS_SILPH_CO_1F_RECEPTIONIST ; 4C
- const HS_VOLTORB_1 ; 4D X
- const HS_VOLTORB_2 ; 4E X
- const HS_VOLTORB_3 ; 4F X
- const HS_ELECTRODE_1 ; 50 X
- const HS_VOLTORB_4 ; 51 X
- const HS_VOLTORB_5 ; 52 X
- const HS_ELECTRODE_2 ; 53 X
- const HS_VOLTORB_6 ; 54 X
- const HS_ZAPDOS ; 55 X
- const HS_POWER_PLANT_ITEM_1 ; 56 X
- const HS_POWER_PLANT_ITEM_2 ; 57 X
- const HS_POWER_PLANT_ITEM_3 ; 58 X
- const HS_POWER_PLANT_ITEM_4 ; 59 X
- const HS_POWER_PLANT_ITEM_5 ; 5A X
- const HS_MOLTRES ; 5B X
- const HS_VICTORY_ROAD_2_ITEM_1 ; 5C X
- const HS_VICTORY_ROAD_2_ITEM_2 ; 5D X
- const HS_VICTORY_ROAD_2_ITEM_3 ; 5E X
- const HS_VICTORY_ROAD_2_ITEM_4 ; 5F X
+ const HS_VOLTORB_1 ; 4D
+ const HS_VOLTORB_2 ; 4E
+ const HS_VOLTORB_3 ; 4F
+ const HS_ELECTRODE_1 ; 50
+ const HS_VOLTORB_4 ; 51
+ const HS_VOLTORB_5 ; 52
+ const HS_ELECTRODE_2 ; 53
+ const HS_VOLTORB_6 ; 54
+ const HS_ZAPDOS ; 55
+ const HS_POWER_PLANT_ITEM_1 ; 56
+ const HS_POWER_PLANT_ITEM_2 ; 57
+ const HS_POWER_PLANT_ITEM_3 ; 58
+ const HS_POWER_PLANT_ITEM_4 ; 59
+ const HS_POWER_PLANT_ITEM_5 ; 5A
+ const HS_MOLTRES ; 5B
+ const HS_VICTORY_ROAD_2_ITEM_1 ; 5C
+ const HS_VICTORY_ROAD_2_ITEM_2 ; 5D
+ const HS_VICTORY_ROAD_2_ITEM_3 ; 5E
+ const HS_VICTORY_ROAD_2_ITEM_4 ; 5F
const HS_VICTORY_ROAD_2_BOULDER ; 60
const HS_BILL_POKEMON ; 61
const HS_BILL_1 ; 62
const HS_BILL_2 ; 63
- const HS_VIRIDIAN_FOREST_ITEM_1 ; 64 X
- const HS_VIRIDIAN_FOREST_ITEM_2 ; 65 X
- const HS_VIRIDIAN_FOREST_ITEM_3 ; 66 X
- const HS_MT_MOON_1_ITEM_1 ; 67 X
- const HS_MT_MOON_1_ITEM_2 ; 68 X
- const HS_MT_MOON_1_ITEM_3 ; 69 X
- const HS_MT_MOON_1_ITEM_4 ; 6A X
- const HS_MT_MOON_1_ITEM_5 ; 6B X
- const HS_MT_MOON_1_ITEM_6 ; 6C X
- const HS_MT_MOON_3_FOSSIL_1 ; 6D
- const HS_MT_MOON_3_FOSSIL_2 ; 6E
- const HS_MT_MOON_3_ITEM_1 ; 6F X
- const HS_MT_MOON_3_ITEM_2 ; 70 X
- const HS_SS_ANNE_2_RIVAL ; 71
- const HS_SS_ANNE_8_ITEM ; 72 X
- const HS_SS_ANNE_9_ITEM_1 ; 73 X
- const HS_SS_ANNE_9_ITEM_2 ; 74 X
- const HS_SS_ANNE_10_ITEM_1 ; 75 X
- const HS_SS_ANNE_10_ITEM_2 ; 76 X
- const HS_SS_ANNE_10_ITEM_3 ; 77 X
- const HS_VICTORY_ROAD_3_ITEM_1 ; 78 X
- const HS_VICTORY_ROAD_3_ITEM_2 ; 79 X
- const HS_VICTORY_ROAD_3_BOULDER ; 7A
- const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7B X
- const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7C X
- const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7D X
- const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 7E X
- const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 7F X
- const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 80 X
- const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 81 X
- const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 82 X
- const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 83
- const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 84 X
- const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 85 X
- const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 86 X
- const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 87
- const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 88
- const HS_SILPH_CO_2F_1 ; 89 XXX never (de)activated?
- const HS_SILPH_CO_2F_2 ; 8A
- const HS_SILPH_CO_2F_3 ; 8B
- const HS_SILPH_CO_2F_4 ; 8C
- const HS_SILPH_CO_2F_5 ; 8D
- const HS_SILPH_CO_3F_1 ; 8E
- const HS_SILPH_CO_3F_2 ; 8F
- const HS_SILPH_CO_3F_ITEM ; 90 X
- const HS_SILPH_CO_4F_1 ; 91
- const HS_SILPH_CO_4F_2 ; 92
- const HS_SILPH_CO_4F_3 ; 93
- const HS_SILPH_CO_4F_ITEM_1 ; 94 X
- const HS_SILPH_CO_4F_ITEM_2 ; 95 X
- const HS_SILPH_CO_4F_ITEM_3 ; 96 X
- const HS_SILPH_CO_5F_1 ; 97
- const HS_SILPH_CO_5F_2 ; 98
- const HS_SILPH_CO_5F_3 ; 99
- const HS_SILPH_CO_5F_4 ; 9A
- const HS_SILPH_CO_5F_ITEM_1 ; 9B X
- const HS_SILPH_CO_5F_ITEM_2 ; 9C X
- const HS_SILPH_CO_5F_ITEM_3 ; 9D X
- const HS_SILPH_CO_6F_1 ; 9E
- const HS_SILPH_CO_6F_2 ; 9F
- const HS_SILPH_CO_6F_3 ; A0
- const HS_SILPH_CO_6F_ITEM_1 ; A1 X
- const HS_SILPH_CO_6F_ITEM_2 ; A2 X
- const HS_SILPH_CO_7F_1 ; A3
- const HS_SILPH_CO_7F_2 ; A4
- const HS_SILPH_CO_7F_3 ; A5
- const HS_SILPH_CO_7F_4 ; A6
- const HS_SILPH_CO_7F_RIVAL ; A7
- const HS_SILPH_CO_7F_ITEM_1 ; A8 X
- const HS_SILPH_CO_7F_ITEM_2 ; A9 X
- const HS_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist
- const HS_SILPH_CO_8F_1 ; AB
- const HS_SILPH_CO_8F_2 ; AC
- const HS_SILPH_CO_8F_3 ; AD
- const HS_SILPH_CO_9F_1 ; AE
- const HS_SILPH_CO_9F_2 ; AF
- const HS_SILPH_CO_9F_3 ; B0
- const HS_SILPH_CO_10F_1 ; B1
- const HS_SILPH_CO_10F_2 ; B2
- const HS_SILPH_CO_10F_3 ; B3 XXX never (de)activated?
- const HS_SILPH_CO_10F_ITEM_1 ; B4 X
- const HS_SILPH_CO_10F_ITEM_2 ; B5 X
- const HS_SILPH_CO_10F_ITEM_3 ; B6 X
- const HS_SILPH_CO_11F_1 ; B7
- const HS_SILPH_CO_11F_2 ; B8
- const HS_SILPH_CO_11F_3 ; B9
- const HS_MAP_F4_1 ; BA XXX sprite doesn't exist
- const HS_MANSION_2_ITEM ; BB X
- const HS_MANSION_3_ITEM_1 ; BC X
- const HS_MANSION_3_ITEM_2 ; BD X
- const HS_MANSION_4_ITEM_1 ; BE X
- const HS_MANSION_4_ITEM_2 ; BF X
- const HS_MANSION_4_ITEM_3 ; C0 X
- const HS_MANSION_4_ITEM_4 ; C1 X
- const HS_MANSION_4_ITEM_5 ; C2 X
- const HS_SAFARI_ZONE_EAST_ITEM_1 ; C3 X
- const HS_SAFARI_ZONE_EAST_ITEM_2 ; C4 X
- const HS_SAFARI_ZONE_EAST_ITEM_3 ; C5 X
- const HS_SAFARI_ZONE_EAST_ITEM_4 ; C6 X
- const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X
- const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X
- const HS_SAFARI_ZONE_WEST_ITEM_1 ; C9 X
- const HS_SAFARI_ZONE_WEST_ITEM_2 ; CA X
- const HS_SAFARI_ZONE_WEST_ITEM_3 ; CB X
- const HS_SAFARI_ZONE_WEST_ITEM_4 ; CC X
- const HS_SAFARI_ZONE_CENTER_ITEM ; CD X
- const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; CE X
- const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; CF X
- const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D0 X
- const HS_MEWTWO ; D1 X
- const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D2 X
- const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D3 X
- const HS_VICTORY_ROAD_1_ITEM_1 ; D4 X
- const HS_VICTORY_ROAD_1_ITEM_2 ; D5 X
- const HS_CHAMPIONS_ROOM_OAK ; D6
- const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D7
- const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; D8
- const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; D9
- const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DA
- const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DB
- const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DC
- const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DD
- const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; DE
- const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; DF
- const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E0
- const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E1
- const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E2
- const HS_ARTICUNO ; E3 X
+ const HS_VIRIDIAN_FOREST_ITEM_1 ; 64
+ const HS_VIRIDIAN_FOREST_ITEM_2 ; 65
+ const HS_VIRIDIAN_FOREST_ITEM_3 ; 66
+ const HS_MT_MOON_1_ITEM_1 ; 67
+ const HS_MT_MOON_1_ITEM_2 ; 68
+ const HS_MT_MOON_1_ITEM_3 ; 69
+ const HS_MT_MOON_1_ITEM_4 ; 6A
+ const HS_MT_MOON_1_ITEM_5 ; 6B
+ const HS_MT_MOON_1_ITEM_6 ; 6C
+ const HS_MT_MOON_JESSIE ; 6D
+ const HS_MT_MOON_JAMES ; 6E
+ const HS_MT_MOON_3_FOSSIL_1 ; 6F
+ const HS_MT_MOON_3_FOSSIL_2 ; 70
+ const HS_MT_MOON_3_ITEM_1 ; 71
+ const HS_MT_MOON_3_ITEM_2 ; 72
+ const HS_SS_ANNE_2_RIVAL ; 73
+ const HS_SS_ANNE_8_ITEM ; 74
+ const HS_SS_ANNE_9_ITEM_1 ; 75
+ const HS_SS_ANNE_9_ITEM_2 ; 76
+ const HS_SS_ANNE_10_ITEM_1 ; 77
+ const HS_SS_ANNE_10_ITEM_2 ; 78
+ const HS_SS_ANNE_10_ITEM_3 ; 79
+ const HS_VICTORY_ROAD_3_ITEM_1 ; 7A
+ const HS_VICTORY_ROAD_3_ITEM_2 ; 7B
+ const HS_VICTORY_ROAD_3_BOULDER ; 7C
+ const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7D
+ const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7E
+ const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7F
+ const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 80
+ const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 81
+ const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 82
+ const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 83
+ const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 84
+ const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 85
+ const HS_ROCKET_HIDEOUT_4_JAMES ; 86
+ const HS_ROCKET_HIDEOUT_4_JESSIE ; 87
+ const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 88
+ const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 89
+ const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 8A
+ const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 8B
+ const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 8C
+ const HS_SILPH_CO_2F_1 ; 8D
+ const HS_SILPH_CO_2F_2 ; 8E
+ const HS_SILPH_CO_2F_3 ; 8F
+ const HS_SILPH_CO_2F_4 ; 90
+ const HS_SILPH_CO_2F_5 ; 91
+ const HS_SILPH_CO_3F_1 ; 92
+ const HS_SILPH_CO_3F_2 ; 93
+ const HS_SILPH_CO_3F_ITEM ; 94
+ const HS_SILPH_CO_4F_1 ; 95
+ const HS_SILPH_CO_4F_2 ; 96
+ const HS_SILPH_CO_4F_3 ; 97
+ const HS_SILPH_CO_4F_ITEM_1 ; 98
+ const HS_SILPH_CO_4F_ITEM_2 ; 99
+ const HS_SILPH_CO_4F_ITEM_3 ; 9A
+ const HS_SILPH_CO_5F_1 ; 9B
+ const HS_SILPH_CO_5F_2 ; 9C
+ const HS_SILPH_CO_5F_3 ; 9D
+ const HS_SILPH_CO_5F_4 ; 9E
+ const HS_SILPH_CO_5F_ITEM_1 ; 9F
+ const HS_SILPH_CO_5F_ITEM_2 ; A0
+ const HS_SILPH_CO_5F_ITEM_3 ; A1
+ const HS_SILPH_CO_6F_1 ; A2
+ const HS_SILPH_CO_6F_2 ; A3
+ const HS_SILPH_CO_6F_3 ; A4
+ const HS_SILPH_CO_6F_ITEM_1 ; A5
+ const HS_SILPH_CO_6F_ITEM_2 ; A6
+ const HS_SILPH_CO_7F_1 ; A7
+ const HS_SILPH_CO_7F_2 ; A8
+ const HS_SILPH_CO_7F_3 ; A9
+ const HS_SILPH_CO_7F_4 ; AA
+ const HS_SILPH_CO_7F_RIVAL ; AB
+ const HS_SILPH_CO_7F_ITEM_1 ; AC
+ const HS_SILPH_CO_7F_ITEM_2 ; AD
+ const HS_SILPH_CO_7F_8 ; AE
+ const HS_SILPH_CO_8F_1 ; AF
+ const HS_SILPH_CO_8F_2 ; B0
+ const HS_SILPH_CO_8F_3 ; B1
+ const HS_SILPH_CO_9F_1 ; B2
+ const HS_SILPH_CO_9F_2 ; B3
+ const HS_SILPH_CO_9F_3 ; B4
+ const HS_SILPH_CO_10F_1 ; B5
+ const HS_SILPH_CO_10F_2 ; B6
+ const HS_SILPH_CO_10F_3 ; B7
+ const HS_SILPH_CO_10F_ITEM_1 ; B8
+ const HS_SILPH_CO_10F_ITEM_2 ; B9
+ const HS_SILPH_CO_10F_ITEM_3 ; BA
+ const HS_SILPH_CO_11F_1 ; BB
+ const HS_SILPH_CO_11F_JAMES ; BC
+ const HS_SILPH_CO_11F_2 ; BD
+ const HS_SILPH_CO_11F_JESSIE ; BE
+ const HS_MAP_F4_1 ; BF
+ const HS_MANSION_2_ITEM ; C0
+ const HS_MANSION_3_ITEM_1 ; C1
+ const HS_MANSION_3_ITEM_2 ; C2
+ const HS_MANSION_4_ITEM_1 ; C3
+ const HS_MANSION_4_ITEM_2 ; C4
+ const HS_MANSION_4_ITEM_3 ; C5
+ const HS_MANSION_4_ITEM_4 ; C6
+ const HS_MANSION_4_ITEM_5 ; C7
+ const HS_SAFARI_ZONE_EAST_ITEM_1 ; C8
+ const HS_SAFARI_ZONE_EAST_ITEM_2 ; C9
+ const HS_SAFARI_ZONE_EAST_ITEM_3 ; CA
+ const HS_SAFARI_ZONE_EAST_ITEM_4 ; CB
+ const HS_SAFARI_ZONE_NORTH_ITEM_1 ; CC
+ const HS_SAFARI_ZONE_NORTH_ITEM_2 ; CD
+ const HS_SAFARI_ZONE_WEST_ITEM_1 ; CE
+ const HS_SAFARI_ZONE_WEST_ITEM_2 ; CF
+ const HS_SAFARI_ZONE_WEST_ITEM_3 ; D0
+ const HS_SAFARI_ZONE_WEST_ITEM_4 ; D1
+ const HS_SAFARI_ZONE_CENTER_ITEM ; D2
+ const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; D3
+ const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; D4
+ const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D5
+ const HS_UNKNOWN_DUNGEON_2_ITEM_4 ; D6
+ const HS_MEWTWO ; D7
+ const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D8
+ const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D9
+ const HS_UNKNOWN_DUNGEON_3_ITEM_3 ; DA
+ const HS_UNKNOWN_DUNGEON_3_ITEM_4 ; DB
+ const HS_VICTORY_ROAD_1_ITEM_1 ; DC
+ const HS_VICTORY_ROAD_1_ITEM_2 ; DD
+ const HS_CHAMPIONS_ROOM_OAK ; DE
+ const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; DF
+ const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; E0
+ const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; E1
+ const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; E2
+ const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; E3
+ const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; E4
+ const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; E5
+ const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; E6
+ const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; E7
+ const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E8
+ const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E9
+ const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; EA
+ const HS_ARTICUNO ; EB
+ const HS_DAISY_SITTING_COPY ; EC
+ const HS_DAISY_WALKING_COPY ; ED
+ const HS_TOWN_MAP_COPY ; EE
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index cbedef3f..c2068dd9 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -253,3 +253,4 @@ ENDM
mapconst LORELEIS_ROOM, 6, 5 ; $F5
mapconst BRUNOS_ROOM, 6, 5 ; $F6
mapconst AGATHAS_ROOM, 6, 5 ; $F7
+ mapconst BEACH_HOUSE, 4, 7 ; $F8
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index de777c5d..8e5b9866 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -29,6 +29,16 @@ D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
+const_value set 0
+ const BIT_A_BUTTON
+ const BIT_B_BUTTON
+ const BIT_SELECT
+ const BIT_START
+ const BIT_D_RIGHT
+ const BIT_D_LEFT
+ const BIT_D_UP
+ const BIT_D_DOWN
+
SCREEN_WIDTH EQU 20
SCREEN_HEIGHT EQU 18
@@ -93,6 +103,11 @@ PARTY_TO_DAYCARE EQU 3
EXCLAMATION_BUBBLE EQU 0
QUESTION_BUBBLE EQU 1
SMILE_BUBBLE EQU 2
+SKULL_BUBBLE EQU 3
+HEART_BUBBLE EQU 4
+BOLT_BUBBLE EQU 5
+ZZZ_BUBBLE EQU 6
+FISH_BUBBLE EQU 7
; slot symbols
SLOTS7 EQU $0200
@@ -152,20 +167,6 @@ FLAG_RESET EQU 0
FLAG_SET EQU 1
FLAG_TEST EQU 2
-; special text IDs
-TEXT_MON_FAINTED EQU $d0
-TEXT_BLACKED_OUT EQU $d1
-TEXT_REPEL_WORE_OFF EQU $d2
-TEXT_SAFARI_GAME_OVER EQU $d3
-
-; PrintNumber
-
-BIT_LEFT_ALIGN EQU 6
-BIT_LEADING_ZEROES EQU 7
-
-LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
-LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
-
; HP bar
HP_BAR_GREEN EQU 0
HP_BAR_YELLOW EQU 1
@@ -178,6 +179,8 @@ BIT_TEST_BATTLE EQU 0
BATTLE_TYPE_NORMAL EQU 0
BATTLE_TYPE_OLD_MAN EQU 1
BATTLE_TYPE_SAFARI EQU 2
+BATTLE_TYPE_RUN EQU 3
+BATTLE_TYPE_PIKACHU EQU 4
; serial
@@ -204,3 +207,26 @@ LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation
LINK_STATE_BATTLING EQU $04 ; in a link battle
LINK_STATE_RESET EQU $05 ; reset game (unused)
LINK_STATE_TRADING EQU $32 ; in a link trade
+
+; pikachu happiness modifiers
+const_value set 1
+ const PIKAHAPPY_LEVELUP
+ const PIKAHAPPY_USEDITEM
+ const PIKAHAPPY_USEDXITEM
+ const PIKAHAPPY_GYMLEADER
+ const PIKAHAPPY_USEDTMHM
+ const PIKAHAPPY_WALKING
+ const PIKAHAPPY_DEPOSITED
+ const PIKAHAPPY_FAINTED
+ const PIKAHAPPY_PSNFNT
+ const PIKAHAPPY_CARELESSTRAINER
+ const PIKAHAPPY_TRADE
+
+; DMGPalToGBCPal
+CONVERT_BGP EQU 0
+CONVERT_OBP0 EQU 1
+CONVERT_OBP1 EQU 2
+
+NUM_COLORS EQU 4
+PAL_SIZE EQU NUM_COLORS * 2
+NUM_ACTIVE_PALS EQU 4
diff --git a/constants/music_constants.asm b/constants/music_constants.asm
index 57ad230d..955a3899 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -94,7 +94,13 @@ ENDM
music_const MUSIC_MEET_FEMALE_TRAINER, Music_MeetFemaleTrainer
music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer
- ; AUDIO_1 AUDIO_2 AUDIO_3
+ ; AUDIO_4
+ music_const MUSIC_SURFING_PIKACHU, Music_SurfingPikachu
+ music_const MUSIC_MEET_JESSIE_JAMES, Music_MeetJessieJames
+ music_const MUSIC_YELLOW_UNUSED_SONG, Music_YellowUnusedSong
+ music_const MUSIC_GB_PRINTER, Music_GBPrinter
+
+ ; AUDIO_1 AUDIO_2 AUDIO_3 AUDIO_4
music_const SFX_SNARE_1, SFX_Snare1_1
music_const SFX_SNARE_2, SFX_Snare2_1
music_const SFX_SNARE_3, SFX_Snare3_1
@@ -152,8 +158,9 @@ ENDM
music_const SFX_CRY_23, SFX_Cry23_1
music_const SFX_CRY_24, SFX_Cry24_1
music_const SFX_CRY_25, SFX_Cry25_1
-
music_const SFX_GET_ITEM_2, SFX_Get_Item2_1
+
+ ; AUDIO_1 AUDIO_2 AUDIO_3
music_const SFX_TINK, SFX_Tink_1
music_const SFX_HEAL_HP, SFX_Heal_HP_1
music_const SFX_HEAL_AILMENT, SFX_Heal_Ailment_1
@@ -194,7 +201,7 @@ ENDM
music_const SFX_SAVE, SFX_Save_1
; AUDIO_1
- music_const SFX_POKEFLUE, SFX_Pokeflute
+ music_const SFX_POKEFLUTE, SFX_Pokeflute
music_const SFX_SAFARI_ZONE_PA, SFX_Safari_Zone_PA
; AUDIO_2
@@ -240,13 +247,13 @@ ENDM
music_const SFX_BATTLE_26, SFX_Battle_26
music_const SFX_BATTLE_27, SFX_Battle_27
music_const SFX_BATTLE_28, SFX_Battle_28
- music_const SFX_BATTLE_29, SFX_Battle_29
+ music_const SFX_EARTHQUAKE, SFX_Earthquake
music_const SFX_BATTLE_2A, SFX_Battle_2A
music_const SFX_BATTLE_2B, SFX_Battle_2B
music_const SFX_BATTLE_2C, SFX_Battle_2C
music_const SFX_PSYBEAM, SFX_Psybeam
music_const SFX_BATTLE_2E, SFX_Battle_2E
- music_const SFX_BATTLE_2F, SFX_Battle_2F
+ music_const SFX_THUNDERBOLT, SFX_Thunderbolt
music_const SFX_PSYCHIC_M, SFX_Psychic_M
music_const SFX_BATTLE_31, SFX_Battle_31
music_const SFX_BATTLE_32, SFX_Battle_32
@@ -267,3 +274,12 @@ ENDM
music_const SFX_SLOTS_REWARD, SFX_Slots_Reward
music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin
music_const SFX_SHOOTING_STAR, SFX_Shooting_Star
+
+ ; AUDIO_4
+ music_const SFX_UNKNOWN_801B0_4, SFX_801b0_4
+ music_const SFX_UNKNOWN_801B3_4, SFX_801b3_4
+ music_const SFX_UNKNOWN_801B6_4, SFX_801b6_4
+ music_const SFX_UNKNOWN_801B9_4, SFX_801b9_4
+ music_const SFX_UNKNOWN_801BC_4, SFX_801bc_4
+ music_const SFX_UNKNOWN_801BF_4, SFX_801bf_4
+ music_const SFX_GET_ITEM2_4_2, SFX_Get_Item2_4_2
diff --git a/constants/oam_constants.asm b/constants/oam_constants.asm
index ddf95648..8e855fc9 100755
--- a/constants/oam_constants.asm
+++ b/constants/oam_constants.asm
@@ -7,3 +7,18 @@ OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically.
; OAM attribute flags
OAM_HFLIP EQU %00100000 ; horizontal flip
OAM_VFLIP EQU %01000000 ; vertical flip
+
+frame: MACRO
+ db \1
+x = \2
+REPT _NARG +- 2
+x = x | (\3 << 1)
+ shift
+endr
+ db x
+ endm
+
+delanim EQUS "db $fc"
+dorepeat EQUS "db $fd,"
+dorestart EQUS "db $fe"
+endanim EQUS "db $ff"
diff --git a/constants/pikachu_emotion_constants.asm b/constants/pikachu_emotion_constants.asm
new file mode 100644
index 00000000..25d9a7aa
--- /dev/null
+++ b/constants/pikachu_emotion_constants.asm
@@ -0,0 +1,224 @@
+dpikapic: macro
+ db (\1_id - PikaPicAnimPointers) / 2
+ endm
+
+ldpikapic: macro
+ ld \1, (\2_id - PikaPicAnimPointers) / 2
+ endm
+
+dpikaemotion: macro
+ db (\1_id - PikachuEmotionTable) / 2
+ endm
+
+ldpikaemotion: macro
+ ld \1, (\2_id - PikachuEmotionTable) / 2
+ endm
+
+dpikaanim: macro
+ db (\1_id - PikaPicAnimBGFramesPointers) / 2
+ endm
+
+pikaframeend EQUS "db $e0"
+pikaframe: macro
+ db (\1_id - PikaPicTilemapPointers) / 2, \2
+ endm
+
+pikaframedelay EQUS "db 0,"
+
+; Starter Pikachu emotion commands constants
+
+ const_def
+ const PIKAEMOTION_DUMMY1
+ const PIKAEMOTION_PRINTTEXT
+ const PIKAEMOTION_PLAYPCMSOUNDCLIP
+ const PIKAEMOTION_DOEMOTIONBUBBLE
+ const PIKAEMOTION_4
+ const PIKAEMOTION_5
+ const PIKAEMOTION_SUBCMD
+ const PIKAEMOTION_DELAYFRAMES
+ const PIKAEMOTION_DUMMY2
+ const PIKAEMOTION_9
+ const PIKAEMOTION_DUMMY3
+
+ const_def
+ const PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ const PIKAEMOTION_SUBCMD_LOADFONT
+ const PIKAEMOTION_SUBCMD_SHOWMAPVIEW
+ const PIKAEMOTION_SUBCMD_WAITBUTTONPRESS
+ const PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER
+ const PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER
+ const PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE
+
+ const_def
+ const PIKASTEPDIR_DOWN
+ const PIKASTEPDIR_UP
+ const PIKASTEPDIR_LEFT
+ const PIKASTEPDIR_RIGHT
+ const PIKASTEPDIR_DOWN_LEFT
+ const PIKASTEPDIR_DOWN_RIGHT
+ const PIKASTEPDIR_UP_LEFT
+ const PIKASTEPDIR_UP_RIGHT
+
+
+; Macros for commands
+pikaemotion_dummy1: MACRO
+ db PIKAEMOTION_DUMMY1
+ENDM
+
+pikaemotion_printtext: MACRO
+ db PIKAEMOTION_PRINTTEXT
+ dw \1
+ENDM
+
+pikaemotion_pcm: MACRO
+ db PIKAEMOTION_PLAYPCMSOUNDCLIP
+IF _NARG > 0
+ dpikacry \1
+ELSE
+ db $ff
+ENDC
+ENDM
+
+pikaemotion_emotebubble: MACRO
+ db PIKAEMOTION_DOEMOTIONBUBBLE
+ db \1
+ENDM
+
+pikaemotion_movement: MACRO
+ db PIKAEMOTION_4
+ dw \1
+ENDM
+
+pikaemotion_pikapic: MACRO
+ db PIKAEMOTION_5
+ dpikapic \1
+ENDM
+
+pikaemotion_subcmd: MACRO
+ db PIKAEMOTION_SUBCMD
+ db \1
+ENDM
+
+pikaemotion_delay: MACRO
+ db PIKAEMOTION_DELAYFRAMES
+ db \1
+ENDM
+
+pikaemotion_dummy2: MACRO
+ db PIKAEMOTION_DUMMY2
+ENDM
+
+pikaemotion_9: MACRO
+ db PIKAEMOTION_9
+ENDM
+
+pikaemotion_dummy3: MACRO
+ db PIKAEMOTION_DUMMY3
+ENDM
+
+pikacry_def: MACRO
+\1_id:: dba \1
+endm
+
+dpikacry: MACRO
+ db (\1_id - PikachuCriesPointerTable) / 3
+ endm
+
+ldpikacry: MACRO
+ ld \1, (\2_id - PikachuCriesPointerTable) / 3
+ ENDM
+
+pikacry: MACRO
+ ldpikacry a, \1
+ endm
+
+
+ enum_start
+ enum pikapic_nop_command
+pikapic_nop: macro
+ db pikapic_nop_command
+ endm
+
+ enum pikapic_writebyte_command
+pikapic_writebyte: macro
+ db pikapic_writebyte_command, \1
+ endm
+
+ enum pikapic_loadgfx_command
+pikapic_loadgfx: macro
+ db pikapic_loadgfx_command, (\1_id - PikaPicAnimGFXHeaders) / 4
+ endm
+
+ enum pikapic_animation_command
+pikapic_animation: macro
+ ; frameset pointer, starting vtile, y offset, x offset
+ db pikapic_animation_command
+ dpikaanim \1
+ db 0, \2, \3, \4
+ endm
+
+ enum pikapic_nop4_command
+pikapic_nop4: macro
+ db pikapic_nop4_command
+ endm
+
+ enum pikapic_nop5_command
+pikapic_nop5: macro
+ db pikapic_nop5_command
+ endm
+
+ enum pikapic_waitbgmapeleteobject_command
+pikapic_waitbgmapeleteobject: macro
+ db pikapic_waitbgmapeleteobject_command, \1
+ endm
+
+ enum pikapic_nop7_command
+pikapic_nop7: macro
+ db pikapic_nop7_command
+ endm
+
+ enum pikapic_nop8_command
+pikapic_nop8: macro
+ db pikapic_nop8_command
+ endm
+
+ enum pikapic_jump_command
+pikapic_jump: macro ; 9
+ dbw pikapic_jump_command, \1
+ endm
+
+ enum pikapic_setduration_command
+pikapic_setduration: macro ; a
+ dbw pikapic_setduration_command, \1
+ endm
+
+ enum pikapic_cry_command
+pikapic_cry: macro ; b
+ db pikapic_cry_command
+IF _NARG == 0
+ db $ff
+else
+ dpikacry \1
+ endc
+ endm
+
+ enum pikapic_thunderbolt_command
+pikapic_thunderbolt: macro ; c
+ db pikapic_thunderbolt_command
+ endm
+
+ enum pikapic_waitbgmap_command
+pikapic_waitbgmap: macro ; d
+ db pikapic_waitbgmap_command
+ endm
+
+ enum pikapic_ret_command
+pikapic_ret: macro ; e
+ db pikapic_ret_command
+ endm
+
+pikapic_looptofinish: macro
+.loop\@
+ pikapic_waitbgmap
+ pikapic_jump .loop\@
+ endm
diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm
index 11973648..3349e374 100755
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,17 +1,17 @@
; pokemon's overworld sprites
const_value = 0
- const SPRITE_MON ; $0
- const SPRITE_BALL_M ; $1
- const SPRITE_HELIX ; $2
- const SPRITE_FAIRY ; $3
- const SPRITE_BIRD_M ; $4
- const SPRITE_WATER ; $5
- const SPRITE_BUG ; $6
- const SPRITE_GRASS ; $7
- const SPRITE_SNAKE ; $8
- const SPRITE_QUADRUPED ; $9
-
+ const SPRITE_MON ; $0
+ const SPRITE_BALL_M ; $1
+ const SPRITE_HELIX ; $2
+ const SPRITE_FAIRY ; $3
+ const SPRITE_BIRD_M ; $4
+ const SPRITE_WATER ; $5
+ const SPRITE_BUG ; $6
+ const SPRITE_GRASS ; $7
+ const SPRITE_SNAKE ; $8
+ const SPRITE_QUADRUPED ; $9
+ const SPRITE_PIKACHU_FAMILY ; $A
; overworld sprites
const_value = 1
@@ -45,7 +45,7 @@ const_value = 1
const SPRITE_MOM_GEISHA ; $1c
const SPRITE_BRUNETTE_GIRL ; $1d
const SPRITE_LANCE ; $1e
- const SPRITE_OAK_SCIENTIST_AIDE ; $1f
+ const SPRITE_UNUSED_1 ; $1f
const SPRITE_OAK_AIDE ; $20
const SPRITE_ROCKER ; $21
const SPRITE_SWIMMER ; $22
@@ -64,29 +64,41 @@ const_value = 1
const SPRITE_FISHER2 ; $2f
const SPRITE_BLACKBELT ; $30
const SPRITE_GUARD ; $31
- const SPRITE_COP_GUARD ; $32
+ const SPRITE_UNUSED_2 ; $32
const SPRITE_MOM ; $33
const SPRITE_BALDING_GUY ; $34
const SPRITE_YOUNG_BOY ; $35
- const SPRITE_GAMEBOY_KID ; $36
- const SPRITE_GAMEBOY_KID_COPY ; $37
+ const SPRITE_UNUSED_3 ; $36
+ const SPRITE_GAMEBOY_KID ; $37
const SPRITE_CLEFAIRY ; $38
const SPRITE_AGATHA ; $39
const SPRITE_BRUNO ; $3a
const SPRITE_LORELEI ; $3b
const SPRITE_SEEL ; $3c
- const SPRITE_BALL ; $3d
- const SPRITE_OMANYTE ; $3e
- const SPRITE_BOULDER ; $3f
- const SPRITE_PAPER_SHEET ; $40
- const SPRITE_BOOK_MAP_DEX ; $41
- const SPRITE_CLIPBOARD ; $42
- const SPRITE_SNORLAX ; $43
- const SPRITE_OLD_AMBER_COPY ; $44
- const SPRITE_OLD_AMBER ; $45
- const SPRITE_LYING_OLD_MAN_UNUSED_1 ; $46
- const SPRITE_LYING_OLD_MAN_UNUSED_2 ; $47
- const SPRITE_LYING_OLD_MAN ; $48
+ const SPRITE_PIKACHU ; $3d
+ const SPRITE_OFFICER_JENNY ; $3e
+ const SPRITE_SANDSHREW ; $3f
+ const SPRITE_ODDISH ; $40
+ const SPRITE_BULBASAUR ; $41
+ const SPRITE_JIGGLYPUFF ; $42
+ const SPRITE_CLEFAIRY_2 ; $43
+ const SPRITE_CHANSEY ; $44
+ const SPRITE_JESSIE ; $45
+ const SPRITE_JAMES ; $46
+
+ ; 4-tile sprites
+ const SPRITE_BALL ; $47
+ const SPRITE_OMANYTE ; $48
+ const SPRITE_BOULDER ; $49
+ const SPRITE_PAPER_SHEET ; $4a
+ const SPRITE_BOOK_MAP_DEX ; $4b
+ const SPRITE_CLIPBOARD ; $4c
+ const SPRITE_SNORLAX ; $4d
+ const SPRITE_OLD_AMBER_COPY ; $4e
+ const SPRITE_OLD_AMBER ; $4f
+ const SPRITE_LYING_OLD_MAN_UNUSED_1 ; $50
+ const SPRITE_LYING_OLD_MAN_UNUSED_2 ; $51
+ const SPRITE_LYING_OLD_MAN ; $52
; different kinds of people events
ITEM EQU $80
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
new file mode 100755
index 00000000..4479e90e
--- /dev/null
+++ b/constants/text_constants.asm
@@ -0,0 +1,15 @@
+; special text IDs
+TEXT_MON_FAINTED EQU $d0
+TEXT_BLACKED_OUT EQU $d1
+TEXT_REPEL_WORE_OFF EQU $d2
+TEXT_SAFARI_GAME_OVER EQU $d3
+TEXT_PIKACHU_ANIM EQU $d4
+
+; PrintNumber
+BIT_MONEY_SIGN EQU 5
+BIT_LEFT_ALIGN EQU 6
+BIT_LEADING_ZEROES EQU 7
+
+MONEY_SIGN EQU (1 << BIT_MONEY_SIGN)
+LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
+LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
diff --git a/constants/tilesets.asm b/constants/tilesets.asm
index f10e4d92..aa81f774 100644
--- a/constants/tilesets.asm
+++ b/constants/tilesets.asm
@@ -24,3 +24,4 @@ const_value = 0
const CLUB ; 21
const FACILITY ; 22
const PLATEAU ; 23
+ const BEACH_HOUSE_TILESET ; 24
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index ee890282..e11cc4aa 100755
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -6,50 +6,50 @@ ENDM
const_value = 1
- trainer_const YOUNGSTER ; $01
- trainer_const BUG_CATCHER ; $02
- trainer_const LASS ; $03
- trainer_const SAILOR ; $04
- trainer_const JR_TRAINER_M ; $05
- trainer_const JR_TRAINER_F ; $06
- trainer_const POKEMANIAC ; $07
- trainer_const SUPER_NERD ; $08
- trainer_const HIKER ; $09
- trainer_const BIKER ; $0A
- trainer_const BURGLAR ; $0B
- trainer_const ENGINEER ; $0C
- trainer_const JUGGLER_X ; $0D
- trainer_const FISHER ; $0E
- trainer_const SWIMMER ; $0F
- trainer_const CUE_BALL ; $10
- trainer_const GAMBLER ; $11
- trainer_const BEAUTY ; $12
- trainer_const PSYCHIC_TR ; $13
- trainer_const ROCKER ; $14
- trainer_const JUGGLER ; $15
- trainer_const TAMER ; $16
- trainer_const BIRD_KEEPER ; $17
- trainer_const BLACKBELT ; $18
- trainer_const SONY1 ; $19
- trainer_const PROF_OAK ; $1A
- trainer_const CHIEF ; $1B
- trainer_const SCIENTIST ; $1C
- trainer_const GIOVANNI ; $1D
- trainer_const ROCKET ; $1E
- trainer_const COOLTRAINER_M ; $1F
- trainer_const COOLTRAINER_F ; $20
- trainer_const BRUNO ; $21
- trainer_const BROCK ; $22
- trainer_const MISTY ; $23
- trainer_const LT_SURGE ; $24
- trainer_const ERIKA ; $25
- trainer_const KOGA ; $26
- trainer_const BLAINE ; $27
- trainer_const SABRINA ; $28
- trainer_const GENTLEMAN ; $29
- trainer_const SONY2 ; $2A
- trainer_const SONY3 ; $2B
- trainer_const LORELEI ; $2C
- trainer_const CHANNELER ; $2D
- trainer_const AGATHA ; $2E
- trainer_const LANCE ; $2F
+ trainer_const YOUNGSTER ; $01 | OPP = $C9
+ trainer_const BUG_CATCHER ; $02 | OPP = $CA
+ trainer_const LASS ; $03 | OPP = $CB
+ trainer_const SAILOR ; $04 | OPP = $CC
+ trainer_const JR_TRAINER_M ; $05 | OPP = $CD
+ trainer_const JR_TRAINER_F ; $06 | OPP = $CE
+ trainer_const POKEMANIAC ; $07 | OPP = $CF
+ trainer_const SUPER_NERD ; $08 | OPP = $D0
+ trainer_const HIKER ; $09 | OPP = $D1
+ trainer_const BIKER ; $0A | OPP = $D2
+ trainer_const BURGLAR ; $0B | OPP = $D3
+ trainer_const ENGINEER ; $0C | OPP = $D4
+ trainer_const JUGGLER_X ; $0D | OPP = $D5
+ trainer_const FISHER ; $0E | OPP = $D6
+ trainer_const SWIMMER ; $0F | OPP = $D7
+ trainer_const CUE_BALL ; $10 | OPP = $D8
+ trainer_const GAMBLER ; $11 | OPP = $D9
+ trainer_const BEAUTY ; $12 | OPP = $DA
+ trainer_const PSYCHIC_TR ; $13 | OPP = $DB
+ trainer_const ROCKER ; $14 | OPP = $DC
+ trainer_const JUGGLER ; $15 | OPP = $DD
+ trainer_const TAMER ; $16 | OPP = $DE
+ trainer_const BIRD_KEEPER ; $17 | OPP = $DF
+ trainer_const BLACKBELT ; $18 | OPP = $E0
+ trainer_const SONY1 ; $19 | OPP = $E1
+ trainer_const PROF_OAK ; $1A | OPP = $E2
+ trainer_const CHIEF ; $1B | OPP = $E3
+ trainer_const SCIENTIST ; $1C | OPP = $E4
+ trainer_const GIOVANNI ; $1D | OPP = $E5
+ trainer_const ROCKET ; $1E | OPP = $E6
+ trainer_const COOLTRAINER_M ; $1F | OPP = $E7
+ trainer_const COOLTRAINER_F ; $20 | OPP = $E8
+ trainer_const BRUNO ; $21 | OPP = $E9
+ trainer_const BROCK ; $22 | OPP = $EA
+ trainer_const MISTY ; $23 | OPP = $EB
+ trainer_const LT_SURGE ; $24 | OPP = $EC
+ trainer_const ERIKA ; $25 | OPP = $ED
+ trainer_const KOGA ; $26 | OPP = $EE
+ trainer_const BLAINE ; $27 | OPP = $EF
+ trainer_const SABRINA ; $28 | OPP = $F0
+ trainer_const GENTLEMAN ; $29 | OPP = $F1
+ trainer_const SONY2 ; $2A | OPP = $F2
+ trainer_const SONY3 ; $2B | OPP = $F3
+ trainer_const LORELEI ; $2C | OPP = $F4
+ trainer_const CHANNELER ; $2D | OPP = $F5
+ trainer_const AGATHA ; $2E | OPP = $F6
+ trainer_const LANCE ; $2F | OPP = $F7