diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-06-05 22:55:55 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-06-05 22:55:55 -0400 |
commit | 779eb6750d08504c9667eb10cd7c68f0e2e8498d (patch) | |
tree | 2736ac858597395ddfb7d66c66e650aeef6405de | |
parent | 30f2d056f933fa8dda5ba751ea6645d1d634142a (diff) | |
parent | d4a65343dada6f15a56818fdf6ddb000fb381a55 (diff) |
Merge branch 'master' into rtc_fade
-rw-r--r-- | constants.asm | 4 | ||||
-rw-r--r-- | constants/landmark_constants.asm | 47 | ||||
-rw-r--r-- | constants/map_constants.asm | 231 | ||||
-rw-r--r-- | constants/map_data_constants.asm | 9 | ||||
-rw-r--r-- | constants/pokemon_data_constants.asm | 6 | ||||
-rw-r--r-- | constants/text_constants.asm | 15 | ||||
-rw-r--r-- | constants/tileset_constants.asm | 31 | ||||
-rw-r--r-- | data/maps/landmarks.asm | 90 | ||||
-rw-r--r-- | data/maps/maps.asm | 297 | ||||
-rwxr-xr-x | data/pokemon/palettes.inc | 8 | ||||
-rw-r--r-- | data/wild.asm | 18 | ||||
-rwxr-xr-x | home/items.asm | 94 | ||||
-rw-r--r-- | home/map.asm | 35 | ||||
-rw-r--r-- | home/names.asm | 226 | ||||
-rw-r--r-- | home/pokemon.asm | 6 | ||||
-rwxr-xr-x | home/tables.asm | 6 | ||||
-rw-r--r-- | shim.sym | 239 | ||||
-rw-r--r-- | wram.asm | 31 |
18 files changed, 1199 insertions, 194 deletions
diff --git a/constants.asm b/constants.asm index 9312d05..fcd408f 100644 --- a/constants.asm +++ b/constants.asm @@ -20,6 +20,10 @@ INCLUDE "constants/sprite_constants.asm" INCLUDE "constants/battle_constants.asm" INCLUDE "constants/palette_constants.asm" INCLUDE "constants/music_constants.asm" +INCLUDE "constants/landmark_constants.asm" +INCLUDE "constants/map_constants.asm" +INCLUDE "constants/tileset_constants.asm" +INCLUDE "constants/map_data_constants.asm" INCLUDE "constants/serial_constants.asm" diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm new file mode 100644 index 0000000..b7a7542 --- /dev/null +++ b/constants/landmark_constants.asm @@ -0,0 +1,47 @@ + const_def + const LANDMARK_NONE ; 00 + const LANDMARK_SILENT ; 01 + const LANDMARK_OLD ; 02 + const LANDMARK_WEST ; 03 + const LANDMARK_HIGH_TECH ; 04 + const LANDMARK_FOUNT ; 05 + const LANDMARK_BIRDON ; 06 + const LANDMARK_NEW_TYPE ; 07 + const LANDMARK_SUGAR ; 08 + const LANDMARK_BLUE_FOREST ; 09 + const LANDMARK_STAND ; 0a + const LANDMARK_KANTO ; 0b + const LANDMARK_PRINCE ; 0c + const LANDMARK_MT_FUJI ; 0d + const LANDMARK_SOUTH ; 0e + const LANDMARK_NORTH ; 0f + const LANDMARK_ROUTE_15 ; 10 + const LANDMARK_ROUTE_18 ; 11 + const LANDMARK_POWER_PLANT_1 ; 12 + const LANDMARK_POWER_PLANT_2 ; 13 + const LANDMARK_POWER_PLANT_3 ; 14 + const LANDMARK_POWER_PLANT_4 ; 15 + const LANDMARK_RUINS_1 ; 16 + const LANDMARK_RUINS_2 ; 17 + const LANDMARK_MINES_1 ; 18 + const LANDMARK_MINES_2 ; 19 + const LANDMARK_MINES_3 ; 1a + const LANDMARK_MINES_4 ; 1b + const LANDMARK_MINES_5 ; 1c + const LANDMARK_MINES_6 ; 1d + const LANDMARK_MINES_7 ; 1e + const LANDMARK_HIDEOUT_1 ; 1f + const LANDMARK_HIDEOUT_2 ; 20 + const LANDMARK_HIDEOUT_3 ; 21 + const LANDMARK_SLOWPOKE_WELL_1 ; 22 + const LANDMARK_SLOWPOKE_WELL_2 ; 23 + const LANDMARK_POKEMON_LEAGUE_1 ; 24 + const LANDMARK_POKEMON_LEAGUE_1_2 ; 25 + const LANDMARK_POKEMON_LEAGUE_2 ; 26 + const LANDMARK_POKEMON_LEAGUE_3 ; 27 + const LANDMARK_POKEMON_LEAGUE_4 ; 28 + const LANDMARK_POKEMON_LEAGUE_5 ; 29 + const LANDMARK_POKEMON_LEAGUE_6 ; 2a + const LANDMARK_POKEMON_LEAGUE_7 ; 2b + const LANDMARK_POKEMON_LEAGUE_7_2 ; 2c + const LANDMARK_SILENT_HILL ; 2d diff --git a/constants/map_constants.asm b/constants/map_constants.asm new file mode 100644 index 0000000..d5e130e --- /dev/null +++ b/constants/map_constants.asm @@ -0,0 +1,231 @@ +; Map IDs + + const_def + const ROUTE_1_P1 + const ROUTE_1_P2 + const ROUTE_SILENT_EAST + const SILENT_HILL + const ROUTE_1_GATE_1F + const ROUTE_1_GATE_2F + const ROUTE_SILENT_EAST_GATE + const PLAYER_HOUSE_1F + const PLAYER_HOUSE_2F + const SILENT_POKECENTER + const SILENT_HILL_HOUSE + const SILENT_HILL_LAB + const SILENT_HILL_LAB_2 + const UNUSED_13 + const SHIZUKANA_OKA + const ROUTE_2 + const OLD_CITY + const ROUTE_2_GATE_1F + const ROUTE_2_GATE_2F + const ROUTE_2_HOUSE + const OLD_CITY_MUSEUM + const OLD_CITY_GYM + const OLD_CITY_TOWER_1F + const OLD_CITY_TOWER_2F + const OLD_CITY_TOWER_3F + const OLD_CITY_TOWER_4F + const OLD_CITY_TOWER_5F + const OLD_CITY_BILLS_HOUSE + const OLD_CITY_MART + const OLD_CITY_HOUSE + const OLD_CITY_POKECENTER_1F + const OLD_CITY_POKECENTER_2F + const OLD_CITY_POKECENTER_TRADE + const OLD_CITY_POKECENTER_BATTLE + const OLD_CITY_POKECENTER_TIME_MACHINE + const OLD_CITY_KURTS_HOUSE + const OLD_CITY_SCHOOL + const WEST + const WEST_MART_1F + const WEST_MART_2F + const WEST_MART_3F + const WEST_MART_4F + const WEST_MART_5F + const WEST_MART_6F + const WEST_MART_ELEVATOR + const WEST_RADIO_TOWER_1F + const WEST_RADIO_TOWER_2F + const WEST_RADIO_TOWER_3F + const WEST_RADIO_TOWER_4F + const WEST_RADIO_TOWER_5F + const WEST_ROCKET_RAIDED_HOUSE + const WEST_POKECENTER_1F + const WEST_POKECENTER_2F + const WEST_GYM + const WEST_HOUSE_1 + const WEST_HOUSE_2 + const HAITEKU_WEST_ROUTE + const HAITEKU_WEST_ROUTE_OCEAN + const HAITEKU + const HAITEKU_WEST_ROUTE_GATE + const HAITEKU_POKECENTER_1F + const HAITEKU_POKECENTER_2F + const HAITEKU_LEAGUE_1F + const HAITEKU_LEAGUE_2F + const HAITEKU_MART + const HAITEKU_HOUSE_1 + const HAITEKU_HOUSE_2 + const HAITEKU_IMPOSTER_OAK_HOUSE + const HAITEKU_AQUARIUM_1F + const HAITEKU_AQUARIUM_2F + const FONTO_ROUTE_1 + const FONTO_ROUTE_2 + const FONTO_ROUTE_3 + const FONTO_ROUTE_4 + const FONTO_ROUTE_5 + const FONTO_ROUTE_6 + const FONTO + const FONTO_ROUTE_GATE_1 + const FONTO_ROUTE_GATE_2 + const FONTO_ROUTE_GATE_3 + const FONTO_ROCKET_HOUSE + const FONTO_MART + const FONTO_HOUSE + const FONTO_POKECENTER_1F + const FONTO_POKECENTER_2F + const FONTO_LAB + const BAADON_ROUTE_1 + const BAADON_ROUTE_2 + const BAADON_ROUTE_3 + const BAADON + const BAADON_ROUTE_GATE_WEST + const BAADON_ROUTE_GATE_NEWTYPE + const BAADON_MART + const BAADON_POKECENTER_1F + const BAADON_POKECENTER_2F + const BAADON_HOUSE_1 + const BAADON_WALLPAPER_HOUSE + const BAADON_HOUSE_2 + const BAADON_LEAGUE_1F + const BAADON_LEAGUE_2F + const ROUTE_15 + const NEWTYPE_ROUTE + const ROUTE_18 + const NEWTYPE + const ROUTE_15_POKECENTER_1F + const ROUTE_15_POKECENTER_2F + const NEWTYPE_ROUTE_GATE + const ROUTE_18_POKECENTER_1F + const ROUTE_18_POKECENTER_2F + const NEWTYPE_POKECENTER_1F + const NEWTYPE_POKECENTER_2F + const NEWTYPE_LEAGUE_1F + const NEWTYPE_LEAGUE_2F + const NEWTYPE_SAILOR_HOUSE + const NEWTYPE_MART + const NEWTYPE_DOJO + const NEWTYPE_HOUSE_1 + const NEWTYPE_DINER + const NEWTYPE_HOUSE_2 + const NEWTYPE_HOUSE_3 + const SUGAR_ROUTE + const SUGAR + const SUGAR_ROUTE_GATE + const SUGAR_HOUSE + const SUGAR_HOUSE_2 + const SUGAR_MART + const SUGAR_POKECENTER_1F + const SUGAR_POKECENTER_2F + const BULL_FOREST_ROUTE_1 + const BULL_FOREST_ROUTE_2 + const BULL_FOREST_ROUTE_3 + const BULL_FOREST + const BULL_FOREST_ROUTE_1_HOUSE + const BULL_FOREST_ROUTE_GATE_STAND + const BULL_MART + const BULL_HOUSE_1 + const BULL_HOUSE_2 + const BULL_HOUSE_3 + const BULL_POKECENTER_1F + const BULL_POKECENTER_2F + const BULL_LEAGUE_1F + const BULL_LEAGUE_2F + const BULL_HOUSE_4 + const STAND_ROUTE + const STAND + const STAND_ROUTE_GATE_KANTO + const STAND_LAB + const STAND_POKECENTER_1F + const STAND_POKECENTER_2F + const STAND_OFFICE + const STAND_MART + const STAND_HOUSE + const STAND_ROCKET_HOUSE_1F + const STAND_ROCKET_HOUSE_2F + const STAND_LEAGUE_1F + const STAND_LEAGUE_2F + const KANTO_EAST_ROUTE + const KANTO + const KANTO_CERULEAN_HOUSE + const KANTO_POKECENTER_1F + const KANTO_POKECENTER_2F + const KANTO_LEAGUE_1F + const KANTO_LEAGUE_2F + const KANTO_LAVENDER_HOUSE + const KANTO_CELADON_MART_1F + const KANTO_CELADON_MART_2F + const KANTO_CELADON_MART_3F + const KANTO_CELADON_MART_4F + const KANTO_CELADON_MART_5F + const KANTO_CELADON_ELEVATOR + const KANTO_MART + const KANTO_GAMEFREAK_HQ_1 + const KANTO_GAMEFREAK_HQ_2 + const KANTO_GAMEFREAK_HQ_3 + const KANTO_GAMEFREAK_HQ_4 + const KANTO_GAMEFREAK_HQ_5 + const KANTO_SILPH_CO + const KANTO_VIRIDIAN_HOUSE + const KANTO_GAME_CORNER + const KANTO_UNUSED_AREA + const KANTO_GAME_CORNER_PRIZES + const KANTO_DINER + const KANTO_SCHOOL + const KANTO_HOSPITAL + const KANTO_POKECENTER_2_1F + const KANTO_POKECENTER_2_2F + const KANTO_REDS_HOUSE + const KANTO_GREENS_HOUSE_1F + const KANTO_GREENS_HOUSE_2F + const KANTO_ELDERS_HOUSE + const KANTO_OAKS_LAB + const KANTO_LEAGUE_2_1F + const KANTO_LEAGUE_2_2F + const KANTO_FISHING_GURU + const PRINCE_ROUTE + const PRINCE + const MT_FUJI_ROUTE + const MT_FUJI + const SOUTH + const SOUTH_HOUSE_1 + const SOUTH_POKECENTER_1F + const SOUTH_POKECENTER_2F + const SOUTH_MART + const SOUTH_HOUSE_2 + const NORTH + const NORTH_HOUSE_1 + const NORTH_MART + const NORTH_HOUSE_2 + const NORTH_POKECENTER_1F + const NORTH_POKECENTER_2F + const POWER_PLANT_1 + const POWER_PLANT_2 + const POWER_PLANT_3 + const POWER_PLANT_4 + const RUINS_OF_ALPH_ENTRANCE + const RUINS_OF_ALPH_MAIN + const CAVE_MINECARTS_1 + const CAVE_MINECARTS_2 + const CAVE_MINECARTS_3 + const CAVE_MINECARTS_4 + const CAVE_MINECARTS_5 + const CAVE_MINECARTS_6 + const CAVE_MINECARTS_7 + const OFFICE_1 + const OFFICE_2 + const OFFICE_3 + const SLOWPOKE_WELL_ENTRANCE + const SLOWPOKE_WELL_MAIN diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm new file mode 100644 index 0000000..075a7f1 --- /dev/null +++ b/constants/map_data_constants.asm @@ -0,0 +1,9 @@ +; map environments (wEnvironment) + const_def 1 + const TOWN + const ROUTE + const INDOOR + const CAVE + const ENVIRONMENT_5 + const GATE + const DUNGEON diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm index 65be31a..0b00f47 100644 --- a/constants/pokemon_data_constants.asm +++ b/constants/pokemon_data_constants.asm @@ -104,9 +104,9 @@ MONS_PER_BOX EQU 20 NUM_BOXES EQU 14 ; hall of fame -HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (MON_NAME_LENGTH + -1) ; species, id, dvs, level, nick -HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator -NUM_HOF_TEAMS = 30 +HOF_MON_LENGTH EQUS "(wHallOfFamePokemonListMon1End - wHallOfFamePokemonListMon1)" +HOF_LENGTH EQUS "(wHallOfFamePokemonListEnd - wHallOfFamePokemonList + 1)" +NUM_HOF_TEAMS EQU 30 ; evolution types (used in data/pokemon/evos_attacks.asm) diff --git a/constants/text_constants.asm b/constants/text_constants.asm index b026e91..f899ea3 100644 --- a/constants/text_constants.asm +++ b/constants/text_constants.asm @@ -1,12 +1,11 @@ ; name lengths -NAME_LENGTH EQU 11 -PLAYER_NAME_LENGTH EQU 8 -BOX_NAME_LENGTH EQU 9 -MON_NAME_LENGTH EQU 11 -MOVE_NAME_LENGTH EQU 13 -ITEM_NAME_LENGTH EQU 13 -TRAINER_CLASS_NAME_LENGTH EQU 13 -NAME_LENGTH_JAPANESE EQU 6 +NAME_LENGTH EQU 11 ; English +PLAYER_NAME_LENGTH EQU 8 ; English +BOX_NAME_LENGTH EQU 9 ; English +MON_NAME_LENGTH EQU 6 +MOVE_NAME_LENGTH EQU 13 ; English +ITEM_NAME_LENGTH EQU 11 +TRAINER_CLASS_NAME_LENGTH EQU 13 ; English ; GetName types (see home/names.asm) const_def 1 diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm new file mode 100644 index 0000000..aac5db4 --- /dev/null +++ b/constants/tileset_constants.asm @@ -0,0 +1,31 @@ +; Tilesets indexes +; TODO: Temporary placeholders + const_def + const TILESET_00 + const TILESET_01 + const TILESET_02 + const TILESET_03 + const TILESET_04 + const TILESET_05 + const TILESET_06 + const TILESET_07 + const TILESET_08 + const TILESET_09 + const TILESET_0A + const TILESET_0B + const TILESET_0C + const TILESET_0D + const TILESET_0E + const TILESET_0F + const TILESET_10 + const TILESET_11 + const TILESET_12 + const TILESET_13 + const TILESET_14 + const TILESET_15 + const TILESET_16 + const TILESET_17 + const TILESET_18 + const TILESET_19 + const TILESET_1A + const TILESET_1B diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 314e4ba..bc05bd3 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -3,48 +3,48 @@ INCLUDE "constants.asm" SECTION "LandmarkNames", ROMX[$4AAF], BANK[$3F] LandmarkNames:: - db "サイレント@" - db "オールド@" - db "ウエスト@" - db "ハイテク@" - db "フォント@" - db "バードン@" - db "ニュータイプ@" - db "シュガー@" - db "ブルーフォレスト@" - db "スタンド@" - db "カントー@" - db "プりンス@" - db "フジヤマ@" - db "サウス@" - db "ノース@" - db "15ばんどうろ@" - db "18ばんどうろ@" - db "はつでんしょ1@" - db "はつでんしょ2@" - db "はつでんしょ3@" - db "はつでんしょ4@" - db "いせき 1@" - db "いせき 2@" - db "はいこう1@" - db "はいこう2@" - db "はいこう3@" - db "はいこう4@" - db "はいこう5@" - db "はいこう6@" - db "はいこう7@" - db "アジト 1@" - db "アジト 2@" - db "アジト 3@" - db "ヤドンの いど1@" - db "ヤドンの いど2@" - db "#りーぐ1@" - db "#りーぐ1@" - db "#りーぐ2@" - db "#りーぐ3@" - db "#りーぐ4@" - db "#りーぐ5@" - db "#りーぐ6@" - db "#りーぐ7@" - db "#りーぐ7@" - db "しずかなおか@" + db "サイレント@" ; SILENT + db "オールド@" ; OLD + db "ウエスト@" ; WEST + db "ハイテク@" ; HIGH_TECH + db "フォント@" ; FOUNT + db "バードン@" ; BIRDON + db "ニュータイプ@" ; NEW_TYPE + db "シュガー@" ; SUGAR + db "ブルーフォレスト@" ; BLUE_FOREST + db "スタンド@" ; STAND + db "カントー@" ; KANTO + db "プりンス@" ; PRINCE + db "フジヤマ@" ; MT_FUJI + db "サウス@" ; SOUTH + db "ノース@" ; NORTH + db "15ばんどうろ@" ; ROUTE_15 + db "18ばんどうろ@" ; ROUTE_18 + db "はつでんしょ1@" ; POWER_PLANT_1 + db "はつでんしょ2@" ; POWER_PLANT_2 + db "はつでんしょ3@" ; POWER_PLANT_3 + db "はつでんしょ4@" ; POWER_PLANT_4 + db "いせき 1@" ; RUINS_1 + db "いせき 2@" ; RUINS_2 + db "はいこう1@" ; MINES_1 + db "はいこう2@" ; MINES_2 + db "はいこう3@" ; MINES_3 + db "はいこう4@" ; MINES_4 + db "はいこう5@" ; MINES_5 + db "はいこう6@" ; MINES_6 + db "はいこう7@" ; MINES_7 + db "アジト 1@" ; HIDEOUT_1 + db "アジト 2@" ; HIDEOUT_2 + db "アジト 3@" ; HIDEOUT_3 + db "ヤドンの いど1@" ; SLOWPOKE_WELL_1 + db "ヤドンの いど2@" ; SLOWPOKE_WELL_2 + db "#りーぐ1@" ; POKEMON_LEAGUE_1 + db "#りーぐ1@" ; POKEMON_LEAGUE_1_2 + db "#りーぐ2@" ; POKEMON_LEAGUE_2 + db "#りーぐ3@" ; POKEMON_LEAGUE_3 + db "#りーぐ4@" ; POKEMON_LEAGUE_4 + db "#りーぐ5@" ; POKEMON_LEAGUE_5 + db "#りーぐ6@" ; POKEMON_LEAGUE_6 + db "#りーぐ7@" ; POKEMON_LEAGUE_7 + db "#りーぐ7@" ; POKEMON_LEAGUE_7_2 + db "しずかなおか@" ; SILENT_HILL diff --git a/data/maps/maps.asm b/data/maps/maps.asm new file mode 100644 index 0000000..83f619d --- /dev/null +++ b/data/maps/maps.asm @@ -0,0 +1,297 @@ +INCLUDE "constants.asm" + +map: MACRO +;\1: map name: for the MapAttributes pointer (see data/maps/attributes.asm) +;\2: tileset: a TILESET_* constant +;\3: environment: TOWN, ROUTE, INDOOR, CAVE, ENVIRONMENT_5, GATE, or DUNGEON +;\4: location: from constants/landmark_constants.asm + db BANK(\1_MapAttributes), \2, \3 + dw \1_MapAttributes + db \4 + db 0, 0 ; ??? +ENDM + +SECTION "Map Data", ROMX[$4000], BANK[$04] + + db 0 ; ??? + +MapGroupPointers: + dw MapGroup_SilentHill + dw MapGroup_OldCity + dw MapGroup_West + dw MapGroup_Haiteku + dw MapGroup_Fonto + dw MapGroup_Baadon + dw MapGroup_Newtype + dw MapGroup_Sugar + dw MapGroup_Bull + dw MapGroup_Stand + dw MapGroup_Kanto + dw MapGroup_Prince + dw MapGroup_MtFuji + dw MapGroup_South + dw MapGroup_North + dw MapGroup_Misc + dw MapGroup_Empty + +MapGroup_SilentHill: + map Route1P1, TILESET_00, ROUTE, LANDMARK_MT_FUJI + map Route1P2, TILESET_00, ROUTE, LANDMARK_SOUTH + map RouteSilentEast, TILESET_00, ROUTE, LANDMARK_BLUE_FOREST + map SilentHill, TILESET_00, TOWN, LANDMARK_STAND + map Route1Gate1F, TILESET_11, GATE, LANDMARK_SOUTH + map Route1Gate2F, TILESET_11, GATE, LANDMARK_SOUTH + map RouteSilentEastGate, TILESET_11, GATE, LANDMARK_BLUE_FOREST + map PlayerHouse1F, TILESET_09, INDOOR, LANDMARK_STAND + map PlayerHouse2F, TILESET_09, INDOOR, LANDMARK_STAND + map SilentPokecenter, TILESET_0C, INDOOR, LANDMARK_STAND + map SilentHillHouse, TILESET_09, INDOOR, LANDMARK_STAND + map SilentHillLab, TILESET_0A, INDOOR, LANDMARK_STAND + map SilentHillLab2, TILESET_0A, INDOOR, LANDMARK_STAND + map Unused13, TILESET_0A, INDOOR, LANDMARK_STAND + map ShizukanaOka, TILESET_1B, CAVE, LANDMARK_NONE + +MapGroup_OldCity: + map Route2, TILESET_01, ROUTE, LANDMARK_ROUTE_15 + map OldCity, TILESET_01, TOWN, LANDMARK_NORTH + map Route2Gate1F, TILESET_11, GATE, LANDMARK_ROUTE_15 + map Route2Gate2F, TILESET_11, GATE, LANDMARK_ROUTE_15 + map Route2House, TILESET_09, INDOOR, LANDMARK_ROUTE_15 + map OldCityMuseum, TILESET_0F, INDOOR, LANDMARK_NORTH + map OldCityGym, TILESET_14, INDOOR, LANDMARK_NORTH + map OldCityTower1F, TILESET_0F, INDOOR, LANDMARK_NORTH + map OldCityTower2F, TILESET_0F, INDOOR, LANDMARK_NORTH + map OldCityTower3F, TILESET_0F, INDOOR, LANDMARK_NORTH + map OldCityTower4F, TILESET_0F, INDOOR, LANDMARK_NORTH + map OldCityTower5F, TILESET_0F, INDOOR, LANDMARK_NORTH + map OldCityBillsHouse, TILESET_0B, INDOOR, LANDMARK_NORTH + map OldCityMart, TILESET_0D, INDOOR, LANDMARK_NORTH + map OldCityHouse, TILESET_0B, INDOOR, LANDMARK_NORTH + map OldCityPokecenter1F, TILESET_0C, INDOOR, LANDMARK_NORTH + map OldCityPokecenter2F, TILESET_0C, INDOOR, LANDMARK_NORTH + map OldCityPokecenterTrade, TILESET_11, GATE, LANDMARK_NORTH + map OldCityPokecenterBattle, TILESET_11, GATE, LANDMARK_NORTH + map OldCityPokecenterTimeMachine, TILESET_0C, INDOOR, LANDMARK_NORTH + map OldCityKurtsHouse, TILESET_0B, INDOOR, LANDMARK_NORTH + map OldCitySchool, TILESET_0F, INDOOR, LANDMARK_NORTH + +MapGroup_West: + map West, TILESET_02, TOWN, LANDMARK_ROUTE_18 + map WestMart1F, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestMart2F, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestMart3F, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestMart4F, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestMart5F, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestMart6F, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestMartElevator, TILESET_10, INDOOR, LANDMARK_ROUTE_18 + map WestRadioTower1F, TILESET_12, INDOOR, LANDMARK_ROUTE_18 + map WestRadioTower2F, TILESET_12, INDOOR, LANDMARK_ROUTE_18 + map WestRadioTower3F, TILESET_12, INDOOR, LANDMARK_ROUTE_18 + map WestRadioTower4F, TILESET_12, INDOOR, LANDMARK_ROUTE_18 + map WestRadioTower5F, TILESET_12, INDOOR, LANDMARK_ROUTE_18 + map WestRocketRaidedHouse, TILESET_09, INDOOR, LANDMARK_ROUTE_18 + map WestPokecenter1F, TILESET_0C, INDOOR, LANDMARK_ROUTE_18 + map WestPokecenter2F, TILESET_0C, INDOOR, LANDMARK_ROUTE_18 + map WestGym, TILESET_14, INDOOR, LANDMARK_ROUTE_18 + map WestHouse1, TILESET_09, INDOOR, LANDMARK_ROUTE_18 + map WestHouse2, TILESET_09, INDOOR, LANDMARK_ROUTE_18 + +MapGroup_Haiteku: + map HaitekuWestRoute, TILESET_03, ROUTE, LANDMARK_POKEMON_LEAGUE_3 + map HaitekuWestRouteOcean, TILESET_03, ROUTE, LANDMARK_POKEMON_LEAGUE_2 + map Haiteku, TILESET_03, TOWN, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuWestRouteGate, TILESET_11, GATE, LANDMARK_POKEMON_LEAGUE_2 + map HaitekuPokecenter1F, TILESET_0C, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuPokecenter2F, TILESET_0C, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuLeague1F, TILESET_0F, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuLeague2F, TILESET_14, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuMart, TILESET_0D, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuHouse1, TILESET_09, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuHouse2, TILESET_09, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuImposterOakHouse, TILESET_09, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuAquarium1F, TILESET_0E, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + map HaitekuAquarium2F, TILESET_0E, INDOOR, LANDMARK_POKEMON_LEAGUE_4 + +MapGroup_Fonto: + map FontoRoute1, TILESET_05, ROUTE, LANDMARK_POKEMON_LEAGUE_1_2 + map FontoRoute2, TILESET_05, ROUTE, LANDMARK_HIDEOUT_3 + map FontoRoute3, TILESET_05, ROUTE, LANDMARK_HIDEOUT_1 + map FontoRoute4, TILESET_05, ROUTE, LANDMARK_POKEMON_LEAGUE_6 + map FontoRoute5, TILESET_05, ROUTE, LANDMARK_SLOWPOKE_WELL_2 + map FontoRoute6, TILESET_05, ROUTE, LANDMARK_SLOWPOKE_WELL_1 + map Fonto, TILESET_05, TOWN, LANDMARK_HIDEOUT_2 + map FontoRouteGate1, TILESET_11, GATE, LANDMARK_POKEMON_LEAGUE_1_2 + map FontoRouteGate2, TILESET_11, GATE, LANDMARK_POKEMON_LEAGUE_6 + map FontoRouteGate3, TILESET_11, GATE, LANDMARK_SLOWPOKE_WELL_2 + map FontoRocketHouse, TILESET_13, INDOOR, LANDMARK_HIDEOUT_2 + map FontoMart, TILESET_0D, INDOOR, LANDMARK_HIDEOUT_2 + map FontoHouse, TILESET_09, INDOOR, LANDMARK_HIDEOUT_2 + map FontoPokecenter1F, TILESET_0C, INDOOR, LANDMARK_HIDEOUT_2 + map FontoPokecenter2F, TILESET_0C, INDOOR, LANDMARK_HIDEOUT_2 + map FontoLab, TILESET_0A, INDOOR, LANDMARK_HIDEOUT_2 + +MapGroup_Baadon: + map BaadonRoute1, TILESET_04, ROUTE, LANDMARK_POWER_PLANT_1 + map BaadonRoute2, TILESET_04, ROUTE, LANDMARK_POWER_PLANT_3 + map BaadonRoute3, TILESET_04, ROUTE, LANDMARK_POWER_PLANT_4 + map Baadon, TILESET_04, TOWN, LANDMARK_POWER_PLANT_2 + map BaadonRouteGateWest, TILESET_11, GATE, LANDMARK_POWER_PLANT_1 + map BaadonRouteGateNewtype, TILESET_11, GATE, LANDMARK_POWER_PLANT_4 + map BaadonMart, TILESET_0D, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonPokecenter1F, TILESET_0C, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonPokecenter2F, TILESET_0C, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonHouse1, TILESET_0B, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonWallpaperHouse, TILESET_0E, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonHouse2, TILESET_09, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonLeague1F, TILESET_0F, INDOOR, LANDMARK_POWER_PLANT_2 + map BaadonLeague2F, TILESET_14, INDOOR, LANDMARK_POWER_PLANT_2 + +MapGroup_Newtype: + map Route15, TILESET_00, ROUTE, LANDMARK_RUINS_1 + map NewtypeRoute, TILESET_00, ROUTE, LANDMARK_MINES_3 + map Route18, TILESET_00, ROUTE, LANDMARK_MINES_4 + map Newtype, TILESET_00, TOWN, LANDMARK_RUINS_2 + map Route15Pokecenter1F, TILESET_0C, INDOOR, LANDMARK_RUINS_1 + map Route15Pokecenter2F, TILESET_0C, INDOOR, LANDMARK_RUINS_1 + map NewtypeRouteGate, TILESET_11, GATE, LANDMARK_MINES_4 + map Route18Pokecenter1F, TILESET_0C, INDOOR, LANDMARK_MINES_4 + map Route18Pokecenter2F, TILESET_0C, INDOOR, LANDMARK_MINES_4 + map NewtypePokecenter1F, TILESET_0C, INDOOR, LANDMARK_RUINS_2 + map NewtypePokecenter2F, TILESET_0C, INDOOR, LANDMARK_RUINS_2 + map NewtypeLeague1F, TILESET_0F, INDOOR, LANDMARK_RUINS_2 + map NewtypeLeague2F, TILESET_14, INDOOR, LANDMARK_RUINS_2 + map NewtypeSailorHouse, TILESET_09, INDOOR, LANDMARK_RUINS_2 + map NewtypeMart, TILESET_0D, INDOOR, LANDMARK_RUINS_2 + map NewtypeDojo, TILESET_0B, INDOOR, LANDMARK_RUINS_2 + map NewtypeHouse1, TILESET_09, INDOOR, LANDMARK_RUINS_2 + map NewtypeDiner, TILESET_0E, INDOOR, LANDMARK_RUINS_2 + map NewtypeHouse2, TILESET_09, INDOOR, LANDMARK_RUINS_2 + map NewtypeHouse3, TILESET_09, INDOOR, LANDMARK_RUINS_2 + +MapGroup_Sugar: + map SugarRoute, TILESET_03, ROUTE, LANDMARK_MINES_1 + map Sugar, TILESET_03, TOWN, LANDMARK_MINES_2 + map SugarRouteGate, TILESET_11, GATE, LANDMARK_MINES_1 + map SugarHouse, TILESET_14, INDOOR, LANDMARK_MINES_2 + map SugarHouse2, TILESET_0B, INDOOR, LANDMARK_MINES_2 + map SugarMart, TILESET_0D, INDOOR, LANDMARK_MINES_2 + map SugarPokecenter1F, TILESET_0C, INDOOR, LANDMARK_MINES_2 + map SugarPokecenter2F, TILESET_0C, INDOOR, LANDMARK_MINES_2 + +MapGroup_Bull: + map BullForestRoute1, TILESET_06, ROUTE, LANDMARK_MINES_5 + map BullForestRoute2, TILESET_06, ROUTE, LANDMARK_HIGH_TECH + map BullForestRoute3, TILESET_06, ROUTE, LANDMARK_OLD + map BullForest, TILESET_06, TOWN, LANDMARK_WEST + map BullForestRoute1House, TILESET_09, INDOOR, LANDMARK_MINES_5 + map BullForestRouteGateStand, TILESET_11, GATE, LANDMARK_HIGH_TECH + map BullMart, TILESET_0D, INDOOR, LANDMARK_WEST + map BullHouse1, TILESET_0B, INDOOR, LANDMARK_WEST + map BullHouse2, TILESET_09, INDOOR, LANDMARK_WEST + map BullHouse3, TILESET_09, INDOOR, LANDMARK_WEST + map BullPokecenter1F, TILESET_0C, INDOOR, LANDMARK_WEST + map BullPokecenter2F, TILESET_0C, INDOOR, LANDMARK_WEST + map BullLeague1F, TILESET_0F, INDOOR, LANDMARK_WEST + map BullLeague2F, TILESET_14, INDOOR, LANDMARK_WEST + map BullHouse4, TILESET_09, INDOOR, LANDMARK_WEST + +MapGroup_Stand: + map StandRoute, TILESET_00, ROUTE, LANDMARK_BIRDON + map Stand, TILESET_00, TOWN, LANDMARK_FOUNT + map StandRouteGateKanto, TILESET_11, GATE, LANDMARK_BIRDON + map StandLab, TILESET_0C, INDOOR, LANDMARK_FOUNT + map StandPokecenter1F, TILESET_0C, INDOOR, LANDMARK_FOUNT + map StandPokecenter2F, TILESET_0C, INDOOR, LANDMARK_FOUNT + map StandOffice, TILESET_12, INDOOR, LANDMARK_FOUNT + map StandMart, TILESET_0D, INDOOR, LANDMARK_FOUNT + map StandHouse, TILESET_09, INDOOR, LANDMARK_FOUNT + map StandRocketHouse1F, TILESET_13, INDOOR, LANDMARK_FOUNT + map StandRocketHouse2F, TILESET_13, INDOOR, LANDMARK_FOUNT + map StandLeague1F, TILESET_0F, INDOOR, LANDMARK_FOUNT + map StandLeague2F, TILESET_14, INDOOR, LANDMARK_FOUNT + +MapGroup_Kanto: + map KantoEastRoute, TILESET_07, ROUTE, LANDMARK_NEW_TYPE + map Kanto, TILESET_07, TOWN, LANDMARK_SUGAR + map KantoCeruleanHouse, TILESET_11, GATE, LANDMARK_SUGAR + map KantoPokecenter1F, TILESET_0C, INDOOR, LANDMARK_SUGAR + map KantoPokecenter2F, TILESET_0C, INDOOR, LANDMARK_SUGAR + map KantoLeague1F, TILESET_0F, INDOOR, LANDMARK_SUGAR + map KantoLeague2F, TILESET_14, INDOOR, LANDMARK_SUGAR + map KantoLavenderHouse, TILESET_09, INDOOR, LANDMARK_SUGAR + map KantoCeladonMart1F, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoCeladonMart2F, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoCeladonMart3F, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoCeladonMart4F, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoCeladonMart5F, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoCeladonElevator, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoMart, TILESET_0D, INDOOR, LANDMARK_SUGAR + map KantoGamefreakHQ1, TILESET_0A, INDOOR, LANDMARK_SUGAR + map KantoGamefreakHQ2, TILESET_0A, INDOOR, LANDMARK_SUGAR + map KantoGamefreakHQ3, TILESET_0A, INDOOR, LANDMARK_SUGAR + map KantoGamefreakHQ4, TILESET_0D, INDOOR, LANDMARK_SUGAR + map KantoGamefreakHQ5, TILESET_0A, INDOOR, LANDMARK_SUGAR + map KantoSilphCo, TILESET_13, INDOOR, LANDMARK_SUGAR + map KantoViridianHouse, TILESET_09, INDOOR, LANDMARK_SUGAR + map KantoGameCorner, TILESET_0E, INDOOR, LANDMARK_SUGAR + map KantoUnusedArea, TILESET_11, INDOOR, LANDMARK_SUGAR + map KantoGameCornerPrizes, TILESET_0E, INDOOR, LANDMARK_SUGAR + map KantoDiner, TILESET_0E, INDOOR, LANDMARK_SUGAR + map KantoSchool, TILESET_0F, INDOOR, LANDMARK_SUGAR + map KantoHospital, TILESET_10, INDOOR, LANDMARK_SUGAR + map KantoPokecenter21F, TILESET_0C, INDOOR, LANDMARK_SUGAR + map KantoPokecenter22F, TILESET_0C, INDOOR, LANDMARK_SUGAR + map KantoRedsHouse, TILESET_09, INDOOR, LANDMARK_SUGAR + map KantoGreensHouse1F, TILESET_09, INDOOR, LANDMARK_SUGAR + map KantoGreensHouse2F, TILESET_09, INDOOR, LANDMARK_SUGAR + map KantoEldersHouse, TILESET_09, INDOOR, LANDMARK_SUGAR + map KantoOaksLab, TILESET_0A, INDOOR, LANDMARK_SUGAR + map KantoLeague21F, TILESET_0F, INDOOR, LANDMARK_SUGAR + map KantoLeague22F, TILESET_14, INDOOR, LANDMARK_SUGAR + map KantoFishingGuru, TILESET_09, INDOOR, LANDMARK_SUGAR + +MapGroup_Prince: + map PrinceRoute, TILESET_00, ROUTE, LANDMARK_KANTO + map Prince, TILESET_00, TOWN, LANDMARK_KANTO + +MapGroup_MtFuji: + map MtFujiRoute, TILESET_00, ROUTE, LANDMARK_PRINCE + map MtFuji, TILESET_00, TOWN, LANDMARK_PRINCE + +MapGroup_South: + map South, TILESET_08, TOWN, LANDMARK_POKEMON_LEAGUE_1 + map SouthHouse1, TILESET_09, INDOOR, LANDMARK_POKEMON_LEAGUE_1 + map SouthPokecenter1F, TILESET_0C, INDOOR, LANDMARK_POKEMON_LEAGUE_1 + map SouthPokecenter2F, TILESET_0C, INDOOR, LANDMARK_POKEMON_LEAGUE_1 + map SouthMart, TILESET_0D, INDOOR, LANDMARK_POKEMON_LEAGUE_1 + map SouthHouse2, TILESET_09, INDOOR, LANDMARK_POKEMON_LEAGUE_1 + +MapGroup_North: + map North, TILESET_06, TOWN, LANDMARK_SILENT + map NorthHouse1, TILESET_09, INDOOR, LANDMARK_SILENT + map NorthMart, TILESET_0D, INDOOR, LANDMARK_SILENT + map NorthHouse2, TILESET_09, INDOOR, LANDMARK_SILENT + map NorthPokecenter1F, TILESET_0C, INDOOR, LANDMARK_SILENT + map NorthPokecenter2F, TILESET_0C, INDOOR, LANDMARK_SILENT + +MapGroup_Misc: + map PowerPlant1, TILESET_18, INDOOR, LANDMARK_NONE + map PowerPlant2, TILESET_18, INDOOR, LANDMARK_NONE + map PowerPlant3, TILESET_18, INDOOR, LANDMARK_NONE + map PowerPlant4, TILESET_18, INDOOR, LANDMARK_NONE + map RuinsOfAlphEntrance, TILESET_16, CAVE, LANDMARK_NONE + map RuinsOfAlphMain, TILESET_16, CAVE, LANDMARK_NONE + map CaveMinecarts1, TILESET_17, CAVE, LANDMARK_NONE + map CaveMinecarts2, TILESET_17, CAVE, LANDMARK_NONE + map CaveMinecarts3, TILESET_17, CAVE, LANDMARK_NONE + map CaveMinecarts4, TILESET_17, CAVE, LANDMARK_NONE + map CaveMinecarts5, TILESET_17, CAVE, LANDMARK_NONE + map CaveMinecarts6, TILESET_17, CAVE, LANDMARK_NONE + map CaveMinecarts7, TILESET_17, CAVE, LANDMARK_NONE + map Office1, TILESET_15, INDOOR, LANDMARK_NONE + map Office2, TILESET_15, INDOOR, LANDMARK_NONE + map Office3, TILESET_15, INDOOR, LANDMARK_NONE + map SlowpokeWellEntrance, TILESET_17, CAVE, LANDMARK_NONE + map SlowpokeWellMain, TILESET_17, CAVE, LANDMARK_NONE + +MapGroup_Empty: diff --git a/data/pokemon/palettes.inc b/data/pokemon/palettes.inc index 41ca0d5..a38cd99 100755 --- a/data/pokemon/palettes.inc +++ b/data/pokemon/palettes.inc @@ -251,7 +251,7 @@ PokemonPalettes: db PAL_BROWNMON ; BULU db PAL_BROWNMON ; TAIL db PAL_GREENMON ; LEAFY - db PAL_MEWMON ; NONE - db PAL_MEWMON ; NONE - db PAL_MEWMON ; NONE - db PAL_MEWMON ; NONE + db PAL_MEWMON ; FC + db PAL_MEWMON ; FD + db PAL_MEWMON ; FE + db PAL_MEWMON ; FF diff --git a/data/wild.asm b/data/wild.asm index 515985d..d1cea5c 100644 --- a/data/wild.asm +++ b/data/wild.asm @@ -7,7 +7,7 @@ GrassWildMons:: ; f:6a3c db $01, $01 ; map group, map id db 8 percent, 8 percent, 8 percent ; encounter rates: morn/day/nite ; morn -if def(GOLD) +if DEF(GOLD) db 7, DEX_SUNNY db 3, DEX_SUNNY db 5, DEX_SUNNY @@ -23,7 +23,7 @@ endc db 4, DEX_KORATTA db 6, DEX_KIRINRIKI db 4, DEX_KIRINRIKI -if def(GOLD) +if DEF(GOLD) db 4, DEX_HANEKO else db 4, DEX_MARIL @@ -34,7 +34,7 @@ endc db 7, DEX_KORATTA db 5, DEX_KORATTA db 5, DEX_KORATTA -if def(GOLD) +if DEF(GOLD) db 7, DEX_KORATTA db 8, DEX_KORATTA else @@ -46,7 +46,7 @@ endc db $01, $02 ; map group, map id db 8 percent, 8 percent, 8 percent ; encounter rates: morn/day/nite ; morn -if def(GOLD) +if DEF(GOLD) db 6, DEX_SUNNY db 6, DEX_SUNNY db 6, DEX_SUNNY @@ -62,7 +62,7 @@ endc db 5, DEX_POPPO db 7, DEX_YOROIDORI db 5, DEX_KORATTA -if def(GOLD) +if DEF(GOLD) db 8, DEX_HANEKO else db 8, DEX_MARIL @@ -72,7 +72,7 @@ endc ; nite db 7, DEX_KORATTA db 6, DEX_ARBO -if def(GOLD) +if DEF(GOLD) db 6, DEX_KORATTA else db 6, DEX_HOHO @@ -622,7 +622,7 @@ endc db 6, DEX_POPPO db 4, DEX_CATERPIE db 6, DEX_CATERPIE -if def(GOLD) +if DEF(GOLD) db 6, DEX_HANEKO else db 6, DEX_MARIL @@ -632,7 +632,7 @@ endc ; nite db 4, DEX_TRANSEL db 6, DEX_KORATTA -if def(GOLD) +if DEF(GOLD) db 6, DEX_CATERPIE else db 5, DEX_HOHO @@ -641,5 +641,5 @@ endc db 5, DEX_TRANSEL db 5, DEX_PIKACHU - db $FF + db -1 ; end ; f:6e3e diff --git a/home/items.asm b/home/items.asm index 0edd72b..498edc6 100755 --- a/home/items.asm +++ b/home/items.asm @@ -40,7 +40,7 @@ GiveItem:: ; and copy the item's name to wcf4b.
; Return carry on success.
ld a, b
- ld [wce37], a
+ ld [wNamedObjectIndexBuffer], a
ld [wCurItem], a
ld a, c
ld [wItemQuantity], a
@@ -51,95 +51,3 @@ GiveItem:: call CopyStringToCD31
scf
ret
-
-if DEBUG
-SECTION "GetItemName", ROM0[$376F]
-else
-SECTION "GetItemName", ROM0[$3733]
-endc
-
-GetItemName:: ; 376F
-; given an item ID at [wce37], store the name of the item into a string
-; starting at wcd26
- push hl
- push bc
- ld a, [wce37]
- cp ITEM_HM01_RED
- jr nc, .machine
-
- ld [wcb5b], a
- ld a, ITEM_NAME
- ld [wNameCategory], a
- call GetName
- jr .finish
-
-.machine
- call GetMachineName
-.finish
- ld de, wcd26 ; pointer to where item name is stored in RAM
- pop bc
- pop hl
- ret
-
-if DEBUG
-SECTION "GetMachineName", ROM0[$378E]
-else
-SECTION "GetMachineName", ROM0[$3752]
-endc
-
-GetMachineName::
-; copies the name of the TM/HM in [wce37] to wcd26
- push hl
- push de
- push bc
- ld a, [wce37]
- push af
- cp ITEM_TM01_RED
- jr nc, .WriteTM
-; if HM, then write "HM" and add 5 to the item ID, so we can reuse the
-; TM printing code
- add 5
- ld [wce37], a
- ld hl, HiddenPrefix
- ld bc, 6
- jr .WriteMachinePrefix
-.WriteTM
- ld hl, TechnicalPrefix
- ld bc, 5
-.WriteMachinePrefix
- ld de, wcd26
- call CopyBytes
-; now get the machine number and convert it to text
- ld a, [wce37]
- sub ITEM_TM01_RED - 1
- ld b, "0"
-.FirstDigit
- sub 10
- jr c, .SecondDigit
- inc b
- jr .FirstDigit
-.SecondDigit
- add 10
- push af
- ld a, b
- ld [de], a
- inc de
- pop af
- ld b, "0"
- add b
- ld [de], a
- inc de
- ld a, "@"
- ld [de], a
- pop af
- ld [wce37], a
- pop bc
- pop de
- pop hl
- ret
-
-TechnicalPrefix:
- db "わざマシン@"
-
-HiddenPrefix:
- db "ひでんマシン@"
diff --git a/home/map.asm b/home/map.asm new file mode 100644 index 0000000..8ec34be --- /dev/null +++ b/home/map.asm @@ -0,0 +1,35 @@ +INCLUDE "constants.asm" + +SECTION "Map functions", ROM0[$20FF] + +; Runs a map script indexed by wMapScriptNumber +RunMapScript:: ; 20ff + push hl + push de + push bc + ld a, [wMapScriptNumber] + add a, a + add a, a + ld d, 0 + ld e, a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .return + push de + jp hl + +.return + pop bc + pop de + pop hl + ret + +SECTION "ClearMapBuffer", ROM0[$2123] +ClearMapBuffer:: ; 00:2123 + ld hl, wMapBuffer + ld bc, wMapBufferEnd - wMapBuffer + ld a, 0 + call ByteFill + ret diff --git a/home/names.asm b/home/names.asm index 7ce5767..f0ee433 100644 --- a/home/names.asm +++ b/home/names.asm @@ -1,11 +1,80 @@ INCLUDE "constants.asm" if DEBUG -SECTION "GetNthString", ROM0[$3732] +SECTION "Names", ROM0[$36c8] else -SECTION "GetNthString", ROM0[$36F6] +SECTION "Names", ROM0[$368c] ; Unsure endc +NamesPointers:: ; 00:36c8 +; entries correspond to GetName constants (see constants/text_constants.asm) + dba PokemonNames ; MON_NAME (not used; jumps to GetPokemonName) + dba MoveNames ; MOVE_NAME + dbw 0, 0 ; DUMMY_NAME + dba ItemNames ; ITEM_NAME + dbw $00, wPartyMonOT ; PARTY_OT_NAME + dbw $00, wOTPartyMonOT ; ENEMY_OT_NAME + dba TrainerClassNames ; TRAINER_NAME + dbw $04, $5677 ; MOVE_DESC_NAME_BROKEN (wrong bank..?) + +GetName:: ; 00:36e0 +; Return name wCurSpecies from name list wNamedObjectTypeBuffer in wStringBuffer1. + + ldh a, [hROMBank] + push af + push hl + push bc + push de + + ld a, [wNamedObjectTypeBuffer] + cp MON_NAME + jr nz, .not_mon_name + + ld a, [wCurSpecies] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld hl, MON_NAME_LENGTH + add hl, de + ld e, l + ld d, h + jr .done + +.not_mon_name + ld a, [wNamedObjectTypeBuffer] + dec a + ld e, a + ld d, 0 + ld hl, NamesPointers + add hl, de + add hl, de + add hl, de + ld a, [hli] + call Bankswitch + ld a, [hli] + ld h, [hl] + ld l, a + + ld a, [wCurSpecies] + dec a + call GetNthString + + ld de, wStringBuffer1 + ld bc, ITEM_NAME_LENGTH + call CopyBytes + +.done + ld a, e + ld [wcd72], a + ld a, d + ld [wcd72 + 1], a + + pop de + pop bc + pop hl + pop af + call Bankswitch + ret + GetNthString:: ; Return the address of the ath string starting from hl. and a @@ -21,3 +90,156 @@ GetNthString:: jr nz, .readChar pop bc ret + +GetPokemonName: ; 00:3741 +; Get Pokemon name wNamedObjectIndexBuffer. + + ldh a, [hROMBank] + push af + push hl + ld a, BANK(PokemonNames) + call Bankswitch + + ; Each name is five characters + ld a, [wNamedObjectIndexBuffer] + dec a + ld hl, PokemonNames + ld e, a + ld d, 0 +rept 5 + add hl, de +endr + + ; Terminator + ld de, wStringBuffer1 + push de + ld bc, MON_NAME_LENGTH - 1 + call CopyBytes + ld hl, wStringBuffer1 + MON_NAME_LENGTH - 1 + ld [hl], "@" + pop de + pop hl + pop af + call Bankswitch + ret + +GetItemName:: ; 376F +; given an item ID at [wNamedObjectIndexBuffer], store the name of the item into a string +; starting at wStringBuffer1 + push hl + push bc + ld a, [wNamedObjectIndexBuffer] + cp ITEM_HM01_RED + jr nc, .machine + + ld [wCurSpecies], a + ld a, ITEM_NAME + ld [wNamedObjectTypeBuffer], a + call GetName + jr .finish + +.machine + call GetMachineName +.finish + ld de, wStringBuffer1 + pop bc + pop hl + ret + +GetMachineName:: +; copies the name of the TM/HM in [wNamedObjectIndexBuffer] to wStringBuffer1 + push hl + push de + push bc + ld a, [wNamedObjectIndexBuffer] + push af + cp ITEM_TM01_RED + jr nc, .write_tm +; if HM, then write "HM" and add 5 to the item ID, so we can reuse the +; TM printing code + add 5 + ld [wNamedObjectIndexBuffer], a + + ld hl, .HMText + ld bc, .HMTextEnd - .HMText + jr .write_machine_prefix + +.write_tm + ld hl, .TMText + ld bc, .TMTextEnd - .TMText + +.write_machine_prefix + ld de, wStringBuffer1 + call CopyBytes +; now get the machine number and convert it to text + ld a, [wNamedObjectIndexBuffer] + sub ITEM_TM01_RED - 1 + ld b, "0" +.first_digit + sub 10 + jr c, .second_digit + inc b + jr .first_digit +.second_digit + add 10 + push af + ld a, b + ld [de], a + inc de + pop af + ld b, "0" + add b + ld [de], a + inc de + ld a, "@" + ld [de], a + pop af + ld [wNamedObjectIndexBuffer], a + pop bc + pop de + pop hl + ret + +.TMText: + db "わざマシン" +.TMTextEnd: + db "@" + +.HMText: + db "ひでんマシン" +.HMTextEnd: + db "@" + +IsHM:: ; 00:37e4 + cp ITEM_TM01 ; ??? + jr c, .false + cp ITEM_TM05 ; ??? + ret + +.false + and a + ret + +IsHMMove:: ; 00:37ed + ld hl, .HMMoves + ld de, 1 + jp FindItemInTable + +.HMMoves: + db MOVE_CUT + db MOVE_FLY + db MOVE_SURF + db MOVE_STRENGTH + db MOVE_FLASH + db -1 + +Unreferenced_GetMoveName:: ; 00:37fc + push hl + ld a, MOVE_NAME + ld [wNamedObjectTypeBuffer], a + ld a, [wNamedObjectIndexBuffer] + ld [wCurSpecies], a + call GetName + ld de, wStringBuffer1 + pop hl + ret diff --git a/home/pokemon.asm b/home/pokemon.asm index bb1bcc5..d2add97 100644 --- a/home/pokemon.asm +++ b/home/pokemon.asm @@ -8,7 +8,7 @@ endc GetMonHeader:: ; 3a4b (0:3a4b) ; copies the base stat data of a pokemon to wMonHeader ; INPUT: -; [wcb5b] = pokemon ID in dex order +; [wCurSpecies] = pokemon ID in dex order push bc push de push hl @@ -16,7 +16,7 @@ GetMonHeader:: ; 3a4b (0:3a4b) push af ld a, BANK(MonBaseStats) call Bankswitch - ld a, [wcb5b] + ld a, [wCurSpecies] cp DEX_FD jr z, .egg dec a @@ -38,7 +38,7 @@ GetMonHeader:: ; 3a4b (0:3a4b) ld [hl], d jr .done .done - ld a, [wcb5b] + ld a, [wCurSpecies] ld [wMonHIndex], a pop af call Bankswitch diff --git a/home/tables.asm b/home/tables.asm index dc9cebe..5c35a4f 100755 --- a/home/tables.asm +++ b/home/tables.asm @@ -7,7 +7,7 @@ SECTION "FindItemInTable", ROM0[$35F8] FindItemInTable: ; 00:35F8
ld b, 0
ld c, a
-
+
.loop
ld a, [hl]
cp -1
@@ -17,11 +17,11 @@ FindItemInTable: ; 00:35F8 inc b
add hl, de
jr .loop
-
+
.fail
and a
ret
-
+
.success
scf
ret
@@ -8,7 +8,6 @@ 00:1F9E ClearWindowData 00:1FCC ClearWindowData.bytefill -00:20ff RunMapScript 00:23dc LoadWildMons 00:23e5 FadeIn ; This is not OverworldFadeIn, but I don't know what it is 00:2C05 StartMenuCheck @@ -19,8 +18,6 @@ 00:363E GetSGBLayout 00:3648 SetHPPal 00:3655 SetHPPal.done -00:36C8 NamesPointers -00:36E0 GetName 00:39BA PlayCry 00:3D86 WaitSFX 00:3D87 WaitSFX.wait @@ -83,7 +80,6 @@ 03:5F7D Functiondf7d 03:5F91 Functiondf91 -04:4001 MapGroupPointers 04:528F Function1128f 04:52C1 Function112c1 04:5677 DoPlayerMovement @@ -106,7 +102,7 @@ ; Structure: ; byte Map group ($ff = end) ; byte Map ID -; ptr Copied to c5e9, also byte pointed to written at wUnknownIdc5e8 +; ptr Copied to c5e9, also byte pointed to written at wMapScriptNumber ; ptr Copied to c5eb ; word Unknown (2 bytes) 05:470e UnknownMapBufferPointers @@ -200,7 +196,6 @@ 3F:6750 PicTestMenu 3F:6755 PicTestMenu.loop -00:C5E8 wMapScriptNumber 00:CBF2 wWindowData 00:CBF2 wWindowStackPointer 00:CC02 wMenuDataHeader @@ -217,4 +212,234 @@ 01:d656 wMapGroup 01:d657 wMapId 01:D7D2 wPartyMonOT -01:DA3B wUnk_DA3B +01:DA3B wOTPartyMonOT + +; MapAttributes +36:59DF Route1P1_MapAttributes +36:5ABE Route1P2_MapAttributes +36:724D RouteSilentEast_MapAttributes +36:4014 SilentHill_MapAttributes +26:4000 Route1Gate1F_MapAttributes +26:40DA Route1Gate2F_MapAttributes +34:4000 RouteSilentEastGate_MapAttributes +34:4042 PlayerHouse1F_MapAttributes +34:4132 PlayerHouse2F_MapAttributes +34:45FF SilentPokecenter_MapAttributes +34:47D5 SilentHillHouse_MapAttributes +34:4AAC SilentHillLab_MapAttributes +34:5BE6 SilentHillLab2_MapAttributes +34:605D Unused13_MapAttributes +2F:53DD ShizukanaOka_MapAttributes +36:5BD4 Route2_MapAttributes +36:410D OldCity_MapAttributes +25:4000 Route2Gate1F_MapAttributes +25:407C Route2Gate2F_MapAttributes +25:40DC Route2House_MapAttributes +25:414A OldCityMuseum_MapAttributes +25:41CD OldCityGym_MapAttributes +25:4289 OldCityTower1F_MapAttributes +25:4319 OldCityTower2F_MapAttributes +25:439E OldCityTower3F_MapAttributes +25:4423 OldCityTower4F_MapAttributes +25:44A8 OldCityTower5F_MapAttributes +25:44FC OldCityBillsHouse_MapAttributes +25:456A OldCityMart_MapAttributes +25:45EE OldCityHouse_MapAttributes +25:466E OldCityPokecenter1F_MapAttributes +25:46FE OldCityPokecenter2F_MapAttributes +25:4826 OldCityPokecenterTrade_MapAttributes +25:48AC OldCityPokecenterBattle_MapAttributes +25:492F OldCityPokecenterTimeMachine_MapAttributes +25:49AC OldCityKurtsHouse_MapAttributes +25:4A26 OldCitySchool_MapAttributes +36:4372 West_MapAttributes +26:4224 WestMart1F_MapAttributes +26:42A0 WestMart2F_MapAttributes +26:4374 WestMart3F_MapAttributes +26:4433 WestMart4F_MapAttributes +26:44F2 WestMart5F_MapAttributes +26:4581 WestMart6F_MapAttributes +26:460E WestMartElevator_MapAttributes +26:464B WestRadioTower1F_MapAttributes +26:46CA WestRadioTower2F_MapAttributes +26:4772 WestRadioTower3F_MapAttributes +26:4827 WestRadioTower4F_MapAttributes +26:48E9 WestRadioTower5F_MapAttributes +26:499F WestRocketRaidedHouse_MapAttributes +26:4A49 WestPokecenter1F_MapAttributes +26:4AE1 WestPokecenter2F_MapAttributes +26:4B5E WestGym_MapAttributes +26:4C1A WestHouse1_MapAttributes +26:4C9E WestHouse2_MapAttributes +36:5CC6 HaitekuWestRoute_MapAttributes +36:5DD1 HaitekuWestRouteOcean_MapAttributes +36:45D2 Haiteku_MapAttributes +27:4000 HaitekuWestRouteGate_MapAttributes +27:405B HaitekuPokecenter1F_MapAttributes +27:40EF HaitekuPokecenter2F_MapAttributes +27:4168 HaitekuLeague1F_MapAttributes +27:4209 HaitekuLeague2F_MapAttributes +27:42A9 HaitekuMart_MapAttributes +27:4329 HaitekuHouse1_MapAttributes +27:4383 HaitekuHouse2_MapAttributes +27:43DD HaitekuImposterOakHouse_MapAttributes +27:4444 HaitekuAquarium1F_MapAttributes +27:44CB HaitekuAquarium2F_MapAttributes +36:5F17 FontoRoute1_MapAttributes +36:61E8 FontoRoute2_MapAttributes +36:63B2 FontoRoute3_MapAttributes +36:62C6 FontoRoute4_MapAttributes +36:7444 FontoRoute5_MapAttributes +36:6083 FontoRoute6_MapAttributes +36:47F8 Fonto_MapAttributes +27:4537 FontoRouteGate1_MapAttributes +27:4592 FontoRouteGate2_MapAttributes +27:45ED FontoRouteGate3_MapAttributes +27:4648 FontoRocketHouse_MapAttributes +27:46D5 FontoMart_MapAttributes +27:4755 FontoHouse_MapAttributes +27:47AF FontoPokecenter1F_MapAttributes +27:4843 FontoPokecenter2F_MapAttributes +27:48BC FontoLab_MapAttributes +36:64BD BaadonRoute1_MapAttributes +36:6603 BaadonRoute2_MapAttributes +36:67EF BaadonRoute3_MapAttributes +36:48F3 Baadon_MapAttributes +27:4CDD BaadonRouteGateWest_MapAttributes +27:4D38 BaadonRouteGateNewtype_MapAttributes +27:4923 BaadonMart_MapAttributes +27:49A3 BaadonPokecenter1F_MapAttributes +27:4A2A BaadonPokecenter2F_MapAttributes +27:4AA3 BaadonHouse1_MapAttributes +27:4AF9 BaadonWallpaperHouse_MapAttributes +27:4B42 BaadonHouse2_MapAttributes +27:4B9C BaadonLeague1F_MapAttributes +27:4C3D BaadonLeague2F_MapAttributes +36:68DB Route15_MapAttributes +36:69BD NewtypeRoute_MapAttributes +36:6A6E Route18_MapAttributes +36:49F9 Newtype_MapAttributes +27:52E0 Route15Pokecenter1F_MapAttributes +27:5374 Route15Pokecenter2F_MapAttributes +27:53C6 NewtypeRouteGate_MapAttributes +27:5421 Route18Pokecenter1F_MapAttributes +27:54B5 Route18Pokecenter2F_MapAttributes +27:4D93 NewtypePokecenter1F_MapAttributes +27:4E27 NewtypePokecenter2F_MapAttributes +27:4EA0 NewtypeLeague1F_MapAttributes +27:4F41 NewtypeLeague2F_MapAttributes +27:4FE1 NewtypeSailorHouse_MapAttributes +27:503B NewtypeMart_MapAttributes +27:50BB NewtypeDojo_MapAttributes +27:5155 NewtypeHouse1_MapAttributes +27:51AF NewtypeDiner_MapAttributes +27:522C NewtypeHouse2_MapAttributes +27:5286 NewtypeHouse3_MapAttributes +36:6D8F SugarRoute_MapAttributes +36:4C3A Sugar_MapAttributes +27:5507 SugarRouteGate_MapAttributes +27:5562 SugarHouse_MapAttributes +27:55E2 SugarHouse2_MapAttributes +27:5638 SugarMart_MapAttributes +27:56B8 SugarPokecenter1F_MapAttributes +27:574C SugarPokecenter2F_MapAttributes +36:6C6F BullForestRoute1_MapAttributes +36:6ED5 BullForestRoute2_MapAttributes +36:7530 BullForestRoute3_MapAttributes +36:4D05 BullForest_MapAttributes +27:57C5 BullForestRoute1House_MapAttributes +27:581F BullForestRouteGateStand_MapAttributes +27:587A BullMart_MapAttributes +27:58FA BullHouse1_MapAttributes +27:5950 BullHouse2_MapAttributes +27:59AA BullHouse3_MapAttributes +27:5A04 BullPokecenter1F_MapAttributes +27:5A98 BullPokecenter2F_MapAttributes +27:5B11 BullLeague1F_MapAttributes +27:5BB2 BullLeague2F_MapAttributes +27:5C52 BullHouse4_MapAttributes +36:701B StandRoute_MapAttributes +36:4F28 Stand_MapAttributes +27:5C9F StandRouteGateKanto_MapAttributes +27:5CFA StandLab_MapAttributes +27:5D50 StandPokecenter1F_MapAttributes +27:5DE4 StandPokecenter2F_MapAttributes +27:5E5D StandOffice_MapAttributes +27:5EDD StandMart_MapAttributes +27:5F5D StandHouse_MapAttributes +27:5FB7 StandRocketHouse1F_MapAttributes +27:6024 StandRocketHouse2F_MapAttributes +27:6083 StandLeague1F_MapAttributes +27:6124 StandLeague2F_MapAttributes +36:7161 KantoEastRoute_MapAttributes +36:519D Kanto_MapAttributes +27:61C4 KantoCeruleanHouse_MapAttributes +27:621E KantoPokecenter1F_MapAttributes +27:62B2 KantoPokecenter2F_MapAttributes +27:632B KantoLeague1F_MapAttributes +27:63CC KantoLeague2F_MapAttributes +27:646C KantoLavenderHouse_MapAttributes +27:64D3 KantoCeladonMart1F_MapAttributes +27:6547 KantoCeladonMart2F_MapAttributes +27:65C1 KantoCeladonMart3F_MapAttributes +27:663B KantoCeladonMart4F_MapAttributes +27:66C2 KantoCeladonMart5F_MapAttributes +27:6742 KantoCeladonElevator_MapAttributes +27:677F KantoMart_MapAttributes +27:67FF KantoGamefreakHQ1_MapAttributes +27:6899 KantoGamefreakHQ2_MapAttributes +27:6905 KantoGamefreakHQ3_MapAttributes +27:698B KantoGamefreakHQ4_MapAttributes +27:69E3 KantoGamefreakHQ5_MapAttributes +27:6A2C KantoSilphCo_MapAttributes +27:6ADF KantoViridianHouse_MapAttributes +27:6B46 KantoGameCorner_MapAttributes +27:6C55 KantoUnusedArea_MapAttributes +27:6C90 KantoGameCornerPrizes_MapAttributes +27:6D04 KantoDiner_MapAttributes +27:6D51 KantoSchool_MapAttributes +27:6DEB KantoHospital_MapAttributes +27:6E6B KantoPokecenter21F_MapAttributes +27:6EFF KantoPokecenter22F_MapAttributes +27:6F78 KantoRedsHouse_MapAttributes +27:6FDF KantoGreensHouse1F_MapAttributes +27:703C KantoGreensHouse2F_MapAttributes +27:707E KantoEldersHouse_MapAttributes +27:70E5 KantoOaksLab_MapAttributes +27:713B KantoLeague21F_MapAttributes +27:71DC KantoLeague22F_MapAttributes +27:727C KantoFishingGuru_MapAttributes +36:738C PrinceRoute_MapAttributes +36:55F3 Prince_MapAttributes +36:73E8 MtFujiRoute_MapAttributes +36:5677 MtFuji_MapAttributes +36:56EF South_MapAttributes +27:72D6 SouthHouse1_MapAttributes +27:7330 SouthPokecenter1F_MapAttributes +27:73C4 SouthPokecenter2F_MapAttributes +27:743D SouthMart_MapAttributes +27:74BD SouthHouse2_MapAttributes +36:5914 North_MapAttributes +27:7517 NorthHouse1_MapAttributes +27:7571 NorthMart_MapAttributes +27:75F1 NorthHouse2_MapAttributes +27:764B NorthPokecenter1F_MapAttributes +27:76DF NorthPokecenter2F_MapAttributes +2F:4000 PowerPlant1_MapAttributes +2F:407D PowerPlant2_MapAttributes +2F:40FA PowerPlant3_MapAttributes +2F:422B PowerPlant4_MapAttributes +2F:435C RuinsOfAlphEntrance_MapAttributes +2F:43D9 RuinsOfAlphMain_MapAttributes +2F:469F CaveMinecarts1_MapAttributes +2F:482A CaveMinecarts2_MapAttributes +2F:49B5 CaveMinecarts3_MapAttributes +2F:4B40 CaveMinecarts4_MapAttributes +2F:4CCB CaveMinecarts5_MapAttributes +2F:4E56 CaveMinecarts6_MapAttributes +2F:4F2D CaveMinecarts7_MapAttributes +2F:5004 Office1_MapAttributes +2F:5081 Office2_MapAttributes +2F:51B2 Office3_MapAttributes +2F:5289 SlowpokeWellEntrance_MapAttributes +2F:5306 SlowpokeWellMain_MapAttributes @@ -96,18 +96,12 @@ ENDU SECTION "Unknown map buffer?", WRAM0[$C5E8] -; TODO: this is probably not related to the map script. Figure out what it actually is -wUnknownIdC5E8:: ; c5e8 - db - -wUnknownIdC5E8Location:: - dw ; c5e9 ; TODO - -wUnknownMapPointer:: - dw ; c5eb ; TODO - +wMapBuffer:: +wMapScriptNumber:: db ; c5e8 +wMapScriptNumberLocation:: dw ; c5e9 +wUnknownMapPointer:: dw ; c5eb ; TODO ds 19 ; TODO -wUnknownMapBufferEnd:: ; c600 +wMapBufferEnd:: ; c600 UNION @@ -223,8 +217,8 @@ wLinkTimeoutFrames:: dw ; cb56 wcb58:: ds 2 ; cb58 ; cb5a ds 1 ; TODO -wcb5b:: ds 1 ; multipurpose, also wName, wMonDexIndex2 -wNameCategory:: ds 1 +wCurSpecies:: db ; cb5b +wNamedObjectTypeBuffer:: db ; cb5c SECTION "CB62", WRAM0[$CB62] @@ -326,8 +320,7 @@ wcccf:: db SECTION "CD26", WRAM0[$CD26] -wcd26:: ; cd26 - db +wStringBuffer1:: ds 1 ; How long is this? ; cd26 SECTION "CD31", WRAM0[$CD31] @@ -366,10 +359,13 @@ wPredefBC:: ; cd54 wFarCallBCBuffer:: ; cd54 dw - ds 3 + ds 3 ; TODO wVramState:: db -SECTION "CD76", WRAM0[$CD76] +SECTION "CD72", WRAM0[$CD72] +wcd72:: dw ; cd72 + + ds 2 ; TODO wCurItem:: db ; cd76 wItemIndex:: db ;cd77 @@ -472,6 +468,7 @@ wMonHLearnset:: ; ce1e SECTION "CE37", WRAM0[$CE37] +wNamedObjectIndexBuffer:: wce37:: ; ce37 db |