diff --git a/constants/map_constants.asm b/constants/map_constants.asm index fb367739..a9b69d33 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -28,8 +28,8 @@ ENDM mapconst INDIGO_PLATEAU, 9, 10 ; $09 mapconst SAFFRON_CITY, 18, 20 ; $0A mapconst CITRINE_CITY, 18, 20 ; $0B -DEF NUM_CITY_MAPS EQU const_value ; eorsunica: move this line under Celadon Uni Outside to include it in the Fly Map mapconst CELADON_UNIVERSITY_OUTSIDE, 20, 21 ; $0C +DEF NUM_CITY_MAPS EQU const_value DEF FIRST_ROUTE_MAP EQU const_value mapconst ROUTE_1, 18, 10 ; $0D mapconst ROUTE_2, 36, 10 ; $0E @@ -95,7 +95,7 @@ DEF FIRST_INDOOR_MAP EQU const_value mapconst DAYCARE, 4, 4 ; $49 mapconst ROUTE_6_GATE, 3, 4 ; $4A mapconst UNDERGROUND_PATH_ROUTE_6, 4, 4 ; $4B - mapconst UNDERGROUND_PATH_ROUTE_6_COPY, 4, 4 ; $4C - Unused + mapconst CELESTE_HILL, 4, 4 ; $4C - Was copy of above & unused mapconst ROUTE_7_GATE, 4, 3 ; $4D mapconst UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4E mapconst UNDERGROUND_PATH_ROUTE_7_COPY, 4, 4 ; $4F - Unused diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm index 1b3db736..82f8deaa 100644 --- a/constants/tileset_constants.asm +++ b/constants/tileset_constants.asm @@ -27,4 +27,5 @@ const PLATEAU ; 23 const PREGYM ; 24 const CITRINE ; 25 + const CELESTE ; 26 DEF NUM_TILESETS EQU const_value diff --git a/data/maps/headers/CelesteHill.asm b/data/maps/headers/CelesteHill.asm new file mode 100644 index 00000000..3e545b8d --- /dev/null +++ b/data/maps/headers/CelesteHill.asm @@ -0,0 +1,2 @@ + map_header CelesteHill, CELESTE_HILL, CELESTE, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index 4f398916..4177ef0b 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -77,7 +77,7 @@ MapHeaderBanks:: db BANK(Daycare_h) db BANK(Route6Gate_h) db BANK(UndergroundPathRoute6_h) - db BANK(UndergroundPathRoute6_h) ; UNDERGROUND_PATH_ROUTE_6_COPY + db BANK(CelesteHill_h) ; was db BANK(UndergroundPathRoute6_h), UNDERGROUND_PATH_ROUTE_6_COPY db BANK(Route7Gate_h) db BANK(UndergroundPathRoute7_h) db BANK(UndergroundPathRoute7Copy_h) diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index 3dc1ecbb..b001b15f 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -77,7 +77,7 @@ MapHeaderPointers:: dw Daycare_h dw Route6Gate_h dw UndergroundPathRoute6_h - dw UndergroundPathRoute6_h ; UNDERGROUND_PATH_ROUTE_6_COPY + dw CelesteHill_h ; was dw UndergroundPathRoute6_h, UNDERGROUND_PATH_ROUTE_6_COPY dw Route7Gate_h dw UndergroundPathRoute7_h dw UndergroundPathRoute7Copy_h diff --git a/data/maps/names.asm b/data/maps/names.asm index 49d8d2be..18a94271 100644 --- a/data/maps/names.asm +++ b/data/maps/names.asm @@ -56,3 +56,4 @@ CeruleanCaveName: db "CERULEAN CAVE@" PowerPlantName: db "POWER PLANT@" FarawayIslandName: db "FARAWAY ISLAND@" UnderwaterTunnelName: db "UNDERWATER TUNNEL@" +CelesteHillName: db "CELESTE HILL@" diff --git a/data/maps/objects/CelesteHill.asm b/data/maps/objects/CelesteHill.asm new file mode 100644 index 00000000..fd129076 --- /dev/null +++ b/data/maps/objects/CelesteHill.asm @@ -0,0 +1,11 @@ +CelesteHill_Object: + db $0 ; border block + + def_warp_events + warp_event 4, 11, 0, REDS_HOUSE_2F + + def_bg_events + + def_object_events + + def_warps_to CELESTE_HILL \ No newline at end of file diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm index 2093ce74..7e17f867 100644 --- a/data/maps/town_map_entries.asm +++ b/data/maps/town_map_entries.asm @@ -67,7 +67,6 @@ InternalMapEntries: internal_map MT_MOON_POKECENTER, 5, 2, Route4Name internal_map VIRIDIAN_PRE_GYM, 10, 2, ViridianCityName internal_map DAYCARE, 10, 4, Route5Name - internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name internal_map UNDERGROUND_PATH_ROUTE_8, 11, 5, Route8Name internal_map ROCK_TUNNEL_1F, 14, 3, RockTunnelName @@ -126,4 +125,5 @@ InternalMapEntries: internal_map UNDERWATER_TUNNEL, 14, 1, UnderwaterTunnelName internal_map CELADON_UNIVERSITY_POKECENTER, 7, 4, CeladonCityName internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName + internal_map CELESTE_HILL, 9, 9, CelesteHillName db -1 ; end diff --git a/data/tilesets/bike_riding_tilesets.asm b/data/tilesets/bike_riding_tilesets.asm index 55e1292d..75697847 100644 --- a/data/tilesets/bike_riding_tilesets.asm +++ b/data/tilesets/bike_riding_tilesets.asm @@ -5,4 +5,5 @@ BikeRidingTilesets:: db SHIP_PORT db CAVERN db CITRINE + db CELESTE db -1 ; end diff --git a/data/tilesets/collision_tile_ids.asm b/data/tilesets/collision_tile_ids.asm index 799f0840..24237f0b 100644 --- a/data/tilesets/collision_tile_ids.asm +++ b/data/tilesets/collision_tile_ids.asm @@ -75,3 +75,5 @@ PreGym_Coll:: Citrine_Coll:: coll_tiles $2C, $31, $3F, $55, $0E, $2F, $23, $20, $10, $03, $1C, $1B, $0B, $0C, $21 +Celeste_Coll:: + coll_tiles $1e, $20, $2e, $30, $34, $37, $39, $3a, $40, $51, $52, $5a, $5c, $5e, $5f, $09, $08, $18, $19 \ No newline at end of file diff --git a/data/tilesets/tileset_headers.asm b/data/tilesets/tileset_headers.asm index 712ae8e5..ea8e5aad 100644 --- a/data/tilesets/tileset_headers.asm +++ b/data/tilesets/tileset_headers.asm @@ -35,4 +35,5 @@ Tilesets: tileset Plateau, -1, -1, -1, $45, TILEANIM_WATER tileset PreGym, $3A, $3B, -1, -1, TILEANIM_NONE tileset Citrine, -1, -1, -1, $3F, TILEANIM_WATER_FLOWER + tileset Celeste, -1, -1, -1, $19, TILEANIM_WATER_FLOWER assert_table_length NUM_TILESETS diff --git a/data/tilesets/warp_tile_ids.asm b/data/tilesets/warp_tile_ids.asm index 37c19958..f3290d50 100644 --- a/data/tilesets/warp_tile_ids.asm +++ b/data/tilesets/warp_tile_ids.asm @@ -26,6 +26,7 @@ WarpTileIDPointers: dw .PlateauWarpTileIDs dw .PreGymWarpTileIDs dw .CitrineWarpTileIDs + dw .CelesteWarpTileIDs assert_table_length NUM_TILESETS MACRO warp_tiles @@ -98,6 +99,9 @@ ENDM .CitrineWarpTileIDs: warp_tiles $1B, $1C +.CelesteWarpTileIDs: + warp_tiles $5A, $5C, $3A, $30, $50, $51 ; Like Forest but a bit better + .ShipPortWarpTileIDs: .ClubWarpTileIDs: warp_tiles ; end diff --git a/data/tilesets/water_tilesets.asm b/data/tilesets/water_tilesets.asm index d73ff27f..6bf891c1 100644 --- a/data/tilesets/water_tilesets.asm +++ b/data/tilesets/water_tilesets.asm @@ -10,4 +10,5 @@ WaterTilesets: db FACILITY db PLATEAU db CITRINE + db CELESTE db -1 ; end diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 77e1736f..913a0ff8 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -38,6 +38,12 @@ TryDoWildEncounter: ld a, [wGrassRate] jr z, .CanEncounter + cp CELESTE + ld a, $19 ; So the Celeste grass works. + cp c + ld a, [wGrassRate] + jr z, .CanEncounter + ld a, $14 ; in all tilesets with a water tile, this is its id cp c ld a, [wWaterRate] diff --git a/gfx/blocksets/celeste.bst b/gfx/blocksets/celeste.bst new file mode 100644 index 00000000..4dd7d758 Binary files /dev/null and b/gfx/blocksets/celeste.bst differ diff --git a/gfx/tilesets.asm b/gfx/tilesets.asm index 4761ab5b..3f90c961 100644 --- a/gfx/tilesets.asm +++ b/gfx/tilesets.asm @@ -68,3 +68,6 @@ PreGym_Block:: INCBIN "gfx/blocksets/pregym.bst" Citrine_GFX:: INCBIN "gfx/tilesets/citrine.2bpp" Citrine_Block:: INCBIN "gfx/blocksets/citrine.bst" + +Celeste_GFX:: INCBIN "gfx/tilesets/celeste.2bpp" +Celeste_Block:: INCBIN "gfx/blocksets/celeste.bst" diff --git a/gfx/tilesets/celeste.png b/gfx/tilesets/celeste.png new file mode 100644 index 00000000..7f6ebd8a Binary files /dev/null and b/gfx/tilesets/celeste.png differ diff --git a/maps.asm b/maps.asm index 20ad0795..b9e06dfa 100644 --- a/maps.asm +++ b/maps.asm @@ -1322,3 +1322,8 @@ INCLUDE "data/maps/headers/CitrineCity.asm" INCLUDE "scripts/CitrineCity.asm" INCLUDE "data/maps/objects/CitrineCity.asm" CitrineCity_Blocks: INCBIN "maps/CitrineCity.blk" + +INCLUDE "data/maps/headers/CelesteHill.asm" +INCLUDE "scripts/CelesteHill.asm" +INCLUDE "data/maps/objects/CelesteHill.asm" +CelesteHill_Blocks: INCBIN "maps/CelesteHill.blk" \ No newline at end of file diff --git a/maps/CelesteHill.blk b/maps/CelesteHill.blk new file mode 100644 index 00000000..e1fcc936 --- /dev/null +++ b/maps/CelesteHill.blk @@ -0,0 +1 @@ +((,n_Uo,/%).$ (( qZ~/(((‚rU, „?ƒan(a…C@ƒi(,((i…B@ƒj€ˆ…B@†s.†‡BDEEEFDEEF \ No newline at end of file diff --git a/scan_includes.exe.stackdump b/scan_includes.exe.stackdump index a2642ae0..be856e61 100644 --- a/scan_includes.exe.stackdump +++ b/scan_includes.exe.stackdump @@ -1,15 +1,16 @@ Exception: STATUS_ACCESS_VIOLATION at rip=00100401246 -rax=FFFFFFF7FFFA7851 rbx=0000000000007D5E rcx=0000000800000010 -rdx=0000000000000000 rsi=0000000180369F60 rdi=0000000000000000 -r8 =00000000FFFFC844 r9 =0000000000000000 r10=0000000100000000 -r11=0000000100401282 r12=00000008000587B0 r13=0000000100403148 -r14=0000000000000018 r15=0000000000000001 -rbp=0000000100403156 rsp=00000000FFFFCAE0 -program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 521, thread main +rax=FFFFFFF7FFF8C901 rbx=0000000000000064 rcx=0000000800000010 +rdx=0000000000000000 rsi=0000000800063616 rdi=0000000000000000 +r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000 +r11=0000000100401282 r12=0000000800073700 r13=0000000100403148 +r14=0000000000000000 r15=0000000000000001 +rbp=0000000100403156 rsp=00000000FFFFCA60 +program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1812, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args -00100403156 00100401246 (00000000000, 00100000001, 00180227860, 00100407000) +00100403156 00100401246 (00800063616, 00000000022, 00100403166, 000FFFFCB90) +00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000) 00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70) 000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000) 000FFFFFFF0 00180047746 (00000000000, 00000000000, 00000000000, 00000000000) diff --git a/scripts/CelesteHill.asm b/scripts/CelesteHill.asm new file mode 100644 index 00000000..bb57cc70 --- /dev/null +++ b/scripts/CelesteHill.asm @@ -0,0 +1,6 @@ +CelesteHill_Script: + jp EnableAutoTextBoxDrawing + +CelesteHill_TextPointers: + + text_end ; unused \ No newline at end of file