diff options
Diffstat (limited to 'constants')
-rw-r--r-- | constants/credits_constants.asm | 160 | ||||
-rw-r--r--[-rwxr-xr-x] | constants/event_constants.asm | 16 | ||||
-rw-r--r--[-rwxr-xr-x] | constants/event_macros.asm | 61 | ||||
-rwxr-xr-x | constants/hide_show_constants.asm | 449 | ||||
-rw-r--r-- | constants/map_constants.asm | 1 | ||||
-rw-r--r-- | constants/misc_constants.asm | 54 | ||||
-rw-r--r-- | constants/music_constants.asm | 26 | ||||
-rwxr-xr-x | constants/oam_constants.asm | 15 | ||||
-rw-r--r-- | constants/pikachu_emotion_constants.asm | 224 | ||||
-rwxr-xr-x | constants/sprite_constants.asm | 66 | ||||
-rwxr-xr-x | constants/text_constants.asm | 15 | ||||
-rw-r--r-- | constants/tilesets.asm | 1 | ||||
-rwxr-xr-x | constants/trainer_constants.asm | 94 |
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 |