From 86230c64f1f03ef4eb76e8820a8c41559cfc61b1 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Wed, 14 Jun 2023 22:49:03 +0100 Subject: [PATCH] New Citrine map architecture, Kinchou01 This adds all the required architecture for the new maps to work, as well as Kinchou01 to play when in Celeste Hill itself. This doesn't add the events, though. --- audio.asm | 1 + constants/map_constants.asm | 3 + constants/music_constants.asm | 1 + crysaudio/music/RBY/kinchou01.asm | 142 ++++++++++++++++++ crysaudio/music_pointers_red.asm | 1 + data/maps/headers/BrunswickGrotto.asm | 2 + data/maps/headers/CelesteHillCave.asm | 2 + data/maps/headers/CelesteHillOutside.asm | 2 + data/maps/hide_show_data.asm | 5 +- data/maps/map_header_banks.asm | 3 + data/maps/map_header_pointers.asm | 3 + data/maps/objects/BrunswickGrotto.asm | 11 ++ data/maps/objects/CelesteHillCave.asm | 11 ++ data/maps/objects/CelesteHillOutside.asm | 11 ++ data/maps/songs.asm | 3 + data/wild/grass_water.asm | 5 + data/wild/maps/BrunswickGrotto.asm | 17 +++ data/wild/maps/CelesteHillCave.asm | 18 +++ maps.asm | 14 ++ ...runswickForest.blk => BrunswickGrotto.blk} | Bin maps/CelesteHillOutside.blk | Bin 380 -> 380 bytes scan_includes.exe.stackdump | 10 +- scripts/BrunswickGrotto.asm | 6 + scripts/CelesteHillCave.asm | 6 + scripts/CelesteHillOutside.asm | 6 + 25 files changed, 277 insertions(+), 6 deletions(-) create mode 100644 crysaudio/music/RBY/kinchou01.asm create mode 100644 data/maps/headers/BrunswickGrotto.asm create mode 100644 data/maps/headers/CelesteHillCave.asm create mode 100644 data/maps/headers/CelesteHillOutside.asm create mode 100644 data/maps/objects/BrunswickGrotto.asm create mode 100644 data/maps/objects/CelesteHillCave.asm create mode 100644 data/maps/objects/CelesteHillOutside.asm create mode 100644 data/wild/maps/BrunswickGrotto.asm create mode 100644 data/wild/maps/CelesteHillCave.asm rename maps/{BrunswickForest.blk => BrunswickGrotto.blk} (100%) create mode 100644 scripts/BrunswickGrotto.asm create mode 100644 scripts/CelesteHillCave.asm create mode 100644 scripts/CelesteHillOutside.asm diff --git a/audio.asm b/audio.asm index 60a47004..8572daaf 100644 --- a/audio.asm +++ b/audio.asm @@ -376,6 +376,7 @@ INCLUDE "crysaudio/music/RBY/meetjessiejames.asm" INCLUDE "crysaudio/music/RBY/digda01.asm" INCLUDE "crysaudio/music/RBY/field06.asm" INCLUDE "crysaudio/music/RBY/victory4.asm" +INCLUDE "crysaudio/music/RBY/kinchou01.asm" SECTION "TCG Songs 1", ROMX diff --git a/constants/map_constants.asm b/constants/map_constants.asm index b008e33c..eebc15ed 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -272,6 +272,9 @@ DEF FIRST_INDOOR_MAP EQU const_value map_const BATTLE_TENT, 5, 10 ; $FA map_const MT_MOON_SQUARE, 13, 7 ; $FB map_const MT_MOON_SQUARE_HOUSE, 4, 4 ; $FC + map_const CELESTE_HILL_CAVE, 20, 19 ; $FD + map_const CELESTE_HILL_OUTSIDE, 20, 18 ; $FE + map_const BRUNSWICK_GROTTO, 20, 9 ; $FF ; ooo DEF NUM_MAPS EQU const_value ; Indoor maps, such as houses, use this as the Map ID in their exit warps diff --git a/constants/music_constants.asm b/constants/music_constants.asm index b02c08ac..cc6c9aae 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -60,6 +60,7 @@ const MUSIC_MEET_JESSIE_JAMES const MUSIC_SAKAKI const MUSIC_VICTORY4 + const MUSIC_KINCHOU01 const NUM_SONGS diff --git a/crysaudio/music/RBY/kinchou01.asm b/crysaudio/music/RBY/kinchou01.asm new file mode 100644 index 00000000..b636211a --- /dev/null +++ b/crysaudio/music/RBY/kinchou01.asm @@ -0,0 +1,142 @@ +; +;; Kinchou01 +; +;; Converting on Fri Jul 28 15:34:53 1995 +; +;; by ver 1.02 +; + + + +Music_Kinchou01:: + channel_count 3 + channel 1, Music_Kinchou01_Ch1 + channel 2, Music_Kinchou01_Ch2 + channel 3, Music_Kinchou01_Ch3 + +;;---------------------------------------- +Music_Kinchou01_Ch1: +;;---------------------------------------- + + tempo 144 + volume 7, 7 + duty_cycle 3 + note_type 12, 12, 3 + toggle_perfect_pitch + rest 16 +.loop + rest 16 +;; P1-1 --- tied + rest 16 + rest 10 + octave 3 + note B_, 1 +;; P1-2 --- tied + octave 4 + note F#, 1 +;; P1-3 --- tied + note B_, 1 + rest 1 +;; P1-4 --- tied + note B_, 1 + note A#, 1 +;; P1-5 + note B_, 8 + rest 2 + octave 2 + note B_, 1 + octave 3 + note F#, 1 + note B_, 1 + rest 1 + note B_, 1 + note A#, 1 +;; P1-6 + note B_, 8 + rest 2 + octave 3 + note F#, 1 + note E_, 1 + note D#, 1 + rest 1 + note D#, 1 + note E_, 1 +;; P1-7 + note F#, 1 + rest 1 + note F#, 1 + note A#, 1 + note B_, 1 + rest 1 + note B_, 1 + rest 1 + note G#, 1 + rest 7 +;; P1-8 + note F#, 1 + rest 15 + + sound_loop 0, .loop + +;;---------------------------------------- +Music_Kinchou01_Ch2: +;;---------------------------------------- + +;; P2-1 +.loop + duty_cycle 3 + note_type 12, 12, 2 + octave 3 + note D#, 2 + octave 2 + note B_, 2 + octave 3 + note G_, 2 + octave 2 + note B_, 2 + sound_loop 0, .loop + +;;---------------------------------------- +Music_Kinchou01_Ch3: +;;---------------------------------------- + + note_type 12, 1, 0 +;; P3-1 - + rest 16 +;; P3-2 - +.loop + rest 16 +;; P3-3 + octave 5 + note D#, 8 + rest 2 + note C#, 2 + note D#, 2 + note E_, 2 +;; P3-4 + note F#, 2 + note E_, 2 + note D#, 2 + note C#, 2 + note D#, 8 + rest 2 +;; P3-5 --- tied + note G#, 2 + note F#, 2 + note E_, 2 + note D#, 8 + rest 2 +;; P3-6 --- tied + note F#, 2 + note E_, 2 + note D#, 2 + note D#, 8 + rest 8 +;; P3-7 --- tied + note E_, 1 + rest 7 +;; P3-8 + note D#, 1 + rest 15 + + sound_loop 0, .loop diff --git a/crysaudio/music_pointers_red.asm b/crysaudio/music_pointers_red.asm index 96287343..efe37247 100644 --- a/crysaudio/music_pointers_red.asm +++ b/crysaudio/music_pointers_red.asm @@ -54,3 +54,4 @@ Music: dba Music_MeetJessieJames dba Music_Sakaki dba Music_Victory4 + dba Music_Kinchou01 diff --git a/data/maps/headers/BrunswickGrotto.asm b/data/maps/headers/BrunswickGrotto.asm new file mode 100644 index 00000000..83ffeaa6 --- /dev/null +++ b/data/maps/headers/BrunswickGrotto.asm @@ -0,0 +1,2 @@ + map_header BrunswickGrotto, BRUNSWICK_GROTTO, FOREST, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/headers/CelesteHillCave.asm b/data/maps/headers/CelesteHillCave.asm new file mode 100644 index 00000000..607cdac5 --- /dev/null +++ b/data/maps/headers/CelesteHillCave.asm @@ -0,0 +1,2 @@ + map_header CelesteHillCave, CELESTE_HILL_CAVE, CAVERN, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/headers/CelesteHillOutside.asm b/data/maps/headers/CelesteHillOutside.asm new file mode 100644 index 00000000..3b3769ad --- /dev/null +++ b/data/maps/headers/CelesteHillOutside.asm @@ -0,0 +1,2 @@ + map_header CelesteHillOutside, CELESTE_HILL_OUTSIDE, CELESTE, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index e7f90cf5..29be9209 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -255,7 +255,10 @@ MapHSPointers: dw GiovannisRoomHS dw NoHS ; Battle Tent dw NoHS ; Mt Moon Square - DW NoHS ; Mt Moon Square House + dw NoHS ; Mt Moon Square House + dw NoHS ; Celeste Hill Cave + dw NoHS ; Celeste Hill Outside + dw NoHS ; Brunswick Grotto, should have HS Data later. assert_table_length NUM_MAPS dw -1 ; end diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index bdae2c3b..87f9bae6 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -254,4 +254,7 @@ MapHeaderBanks:: db BANK(BattleTent_h) db BANK(MtMoonSquare_h) db BANK(MtMoonSquareHouse_h) + db BANK(CelesteHillCave_h) + db BANK(CelesteHillOutside_h) + db BANK(BrunswickGrotto_h) assert_table_length NUM_MAPS diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index e3ac44ac..6cf3f514 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -254,4 +254,7 @@ MapHeaderPointers:: dw BattleTent_h dw MtMoonSquare_h dw MtMoonSquareHouse_h + dw CelesteHillCave_h + dw CelesteHillOutside_h + dw BrunswickGrotto_h assert_table_length NUM_MAPS diff --git a/data/maps/objects/BrunswickGrotto.asm b/data/maps/objects/BrunswickGrotto.asm new file mode 100644 index 00000000..e2f73a5c --- /dev/null +++ b/data/maps/objects/BrunswickGrotto.asm @@ -0,0 +1,11 @@ +BrunswickGrotto_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 BRUNSWICK_GROTTO diff --git a/data/maps/objects/CelesteHillCave.asm b/data/maps/objects/CelesteHillCave.asm new file mode 100644 index 00000000..30104472 --- /dev/null +++ b/data/maps/objects/CelesteHillCave.asm @@ -0,0 +1,11 @@ +CelesteHillCave_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_CAVE diff --git a/data/maps/objects/CelesteHillOutside.asm b/data/maps/objects/CelesteHillOutside.asm new file mode 100644 index 00000000..60bf0ad3 --- /dev/null +++ b/data/maps/objects/CelesteHillOutside.asm @@ -0,0 +1,11 @@ +CelesteHillOutside_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_OUTSIDE diff --git a/data/maps/songs.asm b/data/maps/songs.asm index 434be21a..ff24dad0 100644 --- a/data/maps/songs.asm +++ b/data/maps/songs.asm @@ -253,4 +253,7 @@ MapSongBanks:: db MUSIC_GYM, 0 ; BATTLE_TENT db MUSIC_VICTORY4, 0 ; MT_MOON_SQUARE db MUSIC_VICTORY4, 0 ; MT_MOON_SQUARE_HOUSE + db MUSIC_KINCHOU01, 0 ; CELESTE_HILL_CAVE + db MUSIC_KINCHOU01, 0 ; CELESTE_HILL_OUTSIDE + db MUSIC_DUNGEON2, 0 ; BRUNSWICK_GROTTO assert_table_length NUM_MAPS diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm index cf0beed9..49b52e3b 100644 --- a/data/wild/grass_water.asm +++ b/data/wild/grass_water.asm @@ -253,6 +253,9 @@ WildDataPointers: dw NothingWildMons ; battle tent dw NothingWildMons ; mt moon square dw NothingWildMons + dw CelesteHillCaveWildMons + dw CelesteHillWildMons ; using Celeste Hill's summit for Celeste Hill Outside + dw BrunswickGrottoWildMons assert_table_length NUM_MAPS dw -1 ; end @@ -343,3 +346,5 @@ INCLUDE "data/wild/maps/BrunswickTrail.asm" INCLUDE "data/wild/maps/GarnetCavern1F.asm" INCLUDE "data/wild/maps/GarnetCavernB1F.asm" INCLUDE "data/wild/maps/GarnetCavern2F.asm" +INCLUDE "data/wild/maps/CelesteHillCave.asm" +INCLUDE "data/wild/maps/BrunswickGrotto.asm" diff --git a/data/wild/maps/BrunswickGrotto.asm b/data/wild/maps/BrunswickGrotto.asm new file mode 100644 index 00000000..0c71646e --- /dev/null +++ b/data/wild/maps/BrunswickGrotto.asm @@ -0,0 +1,17 @@ +; Another way to obtain Virdian Forest bugs, which are hard to bring up to speed post-game. +BrunswickGrottoWildMons: + def_grass_wildmons 10 ; encounter rate + db 51, BEEDRILL + db 52, BUTTERFREE + db 52, CARAPTHOR + db 51, VENOMOTH + db 53, PARASECT + db 53, PARASECT + db 53, CACTUS + db 54, SCYTHER + db 54, PINSIR + db 55, PINSIR + end_grass_wildmons + + def_water_wildmons 0 ; encounter rate + end_water_wildmons \ No newline at end of file diff --git a/data/wild/maps/CelesteHillCave.asm b/data/wild/maps/CelesteHillCave.asm new file mode 100644 index 00000000..a6dbafd5 --- /dev/null +++ b/data/wild/maps/CelesteHillCave.asm @@ -0,0 +1,18 @@ +; Pretty generic cave, only it contains the Ground-type tradables. +; Vague reference to the iconic wild Steelix. +CelesteHillCaveWildMons: + def_grass_wildmons 10 ; encounter rate + db 51, GRAVELER + db 52, MAROWAK + db 52, GRAVELER + db 51, MAROWAK + db 53, TOEDSCOOL + db 53, RHYDON + db 53, STEELIX + db 54, GOLEM + db 54, RHYPERIOR + db 55, RHYPERIOR + end_grass_wildmons + + def_water_wildmons 0 ; encounter rate + end_water_wildmons \ No newline at end of file diff --git a/maps.asm b/maps.asm index 817f6763..4460332e 100644 --- a/maps.asm +++ b/maps.asm @@ -1387,3 +1387,17 @@ INCLUDE "data/maps/objects/MtMoonSquareHouse.asm" INCLUDE "scripts/MtMoonSquareHouse.asm" MtMoonSquareHouse_Blocks: INCBIN "maps/MtMoonSquareHouse.blk" +INCLUDE "data/maps/headers/CelesteHillCave.asm" +INCLUDE "scripts/CelesteHillCave.asm" +INCLUDE "data/maps/objects/CelesteHillCave.asm" +CelesteHillCave_Blocks: INCBIN "maps/CelesteHillCave.blk" + +INCLUDE "data/maps/headers/CelesteHillOutside.asm" +INCLUDE "scripts/CelesteHillOutside.asm" +INCLUDE "data/maps/objects/CelesteHillOutside.asm" +CelesteHillOutside_Blocks: INCBIN "maps/CelesteHillOutside.blk" + +INCLUDE "data/maps/headers/BrunswickGrotto.asm" +INCLUDE "scripts/BrunswickGrotto.asm" +INCLUDE "data/maps/objects/BrunswickGrotto.asm" +BrunswickGrotto_Blocks: INCBIN "maps/BrunswickGrotto.blk" diff --git a/maps/BrunswickForest.blk b/maps/BrunswickGrotto.blk similarity index 100% rename from maps/BrunswickForest.blk rename to maps/BrunswickGrotto.blk diff --git a/maps/CelesteHillOutside.blk b/maps/CelesteHillOutside.blk index d3c9712f655d92fe82d85c3842a07d7d185b3fff..2c2f8a9c9f11e54e6653e289a3c2866fe9c53611 100644 GIT binary patch delta 17 Zcmeyv^oMD}55}~KKLZ$3Cwnm(0RT%f2Rr}( delta 17 Zcmeyv^oMD}55|azKLZ$hCVMd&0RT&B2UP$7 diff --git a/scan_includes.exe.stackdump b/scan_includes.exe.stackdump index 6a9a863d..2d3807bb 100644 --- a/scan_includes.exe.stackdump +++ b/scan_includes.exe.stackdump @@ -1,15 +1,15 @@ Exception: STATUS_ACCESS_VIOLATION at rip=00100401246 -rax=FFFFFFF7FFF8BFA1 rbx=0000000000000D1B rcx=0000000800000010 -rdx=0000000000000000 rsi=0000000800061DCE rdi=0000000000000000 +rax=FFFFFFF7FFF8BD51 rbx=0000000000000072 rcx=0000000800000010 +rdx=0000000000000000 rsi=00000008000640E6 rdi=0000000000000000 r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000 -r11=0000000100401282 r12=0000000800074060 r13=0000000100403148 +r11=0000000100401282 r12=00000008000742B0 r13=0000000100403148 r14=0000000000000000 r15=0000000000000001 rbp=0000000100403156 rsp=00000000FFFFCA60 -program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1116, thread main +program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1332, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args -00100403156 00100401246 (00800061DCE, 00000000022, 00100403166, 000FFFFCB90) +00100403156 00100401246 (008000640E6, 00000000022, 00100403166, 000FFFFCB90) 00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000) 00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70) 000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000) diff --git a/scripts/BrunswickGrotto.asm b/scripts/BrunswickGrotto.asm new file mode 100644 index 00000000..a978ee74 --- /dev/null +++ b/scripts/BrunswickGrotto.asm @@ -0,0 +1,6 @@ +BrunswickGrotto_Script: + jp EnableAutoTextBoxDrawing + +BrunswickGrotto_TextPointers: + + text_end ; unused \ No newline at end of file diff --git a/scripts/CelesteHillCave.asm b/scripts/CelesteHillCave.asm new file mode 100644 index 00000000..c309034e --- /dev/null +++ b/scripts/CelesteHillCave.asm @@ -0,0 +1,6 @@ +CelesteHillCave_Script: + jp EnableAutoTextBoxDrawing + +CelesteHillCave_TextPointers: + + text_end ; unused diff --git a/scripts/CelesteHillOutside.asm b/scripts/CelesteHillOutside.asm new file mode 100644 index 00000000..227ad91c --- /dev/null +++ b/scripts/CelesteHillOutside.asm @@ -0,0 +1,6 @@ +CelesteHillOutside_Script: + jp EnableAutoTextBoxDrawing + +CelesteHillOutside_TextPointers: + + text_end ; unused \ No newline at end of file