From 9c27542c28eec7e899f69a7b4cf44bcf7b6392cd Mon Sep 17 00:00:00 2001 From: Luisa Karlson Date: Sat, 25 Jan 2025 13:03:38 +0100 Subject: [PATCH] Hot Savoy In Your Area (#55) * Deep in the Crater Here it is. I'm probably taking a small break after this one, I'm sure you understand! * Hot Savoys In Your Area How...? Just accept this FREE pull request * Savoy City + small fixes Savoy uses the Savoy music now, also fixed a mistake I made with Sepia where the theme would only play on the overworld --- audio.asm | 1 + audio/music/SavoyCity.asm | 1110 +++++++++++++++++++++++++++++++++ audio/music_pointers.asm | 1 + constants/music_constants.asm | 1 + data/maps/maps.asm | 18 +- 5 files changed, 1122 insertions(+), 9 deletions(-) create mode 100644 audio/music/SavoyCity.asm diff --git a/audio.asm b/audio.asm index 63ea9d8..36d07da 100644 --- a/audio.asm +++ b/audio.asm @@ -168,6 +168,7 @@ INCLUDE "audio/music/mart.asm" INCLUDE "audio/music/SepiaCity.asm" INCLUDE "audio/music/CoralCity.asm" INCLUDE "audio/music/CrystalCrater.asm" +INCLUDE "audio/music/SavoyCity.asm" SECTION "Sound Effects", ROMX diff --git a/audio/music/SavoyCity.asm b/audio/music/SavoyCity.asm new file mode 100644 index 0000000..f26570b --- /dev/null +++ b/audio/music/SavoyCity.asm @@ -0,0 +1,1110 @@ +; Savoy City theme +; 4/4 rhythm, composed in B Mixolydian. +; An urban theme, loosely inspired by A Cyber's World by Toby Fox. +; This theme has an upbeat feeling, emphasised by a simple backing and a repeating motif. +; Channel 1 and 2 work in tandem for a reverb effect, in a similar vein to my Area Zero theme demake in KEP. +; Stereo panning is limited to the backing channel, as the soundscape got way too cluttered with the lead notes bouncing around the metaphorical room. +; Composed by LuciShrimp. + +Music_SavoyCity: + channel_count 4 + channel 1, Music_SavoyCity_Ch1 + channel 2, Music_SavoyCity_Ch2 + channel 3, Music_SavoyCity_Ch3 + channel 4, Music_SavoyCity_Ch4 + +Music_SavoyCity_Ch1: + tempo 256 + volume 7, 7 + note_type 12, 15, 8 + octave 5 + sound_call .sub1 + duty_cycle 3 + octave 3 + volume_envelope 8, 5 + vibrato 8, 2, 1 + note A_, 1 + note G#, 1 + note F#, 1 + note G#, 1 + octave 5 + sound_call .sub1 + note_type 12, 8, 5 + duty_cycle 3 + octave 4 + vibrato 8, 2, 1 + note F#, 1 + note E_, 1 + note D#, 1 + note C#, 1 + octave 2 + volume_envelope 12, 5 + note F#, 6 + note F#, 6 + note F#, 4 + note G#, 6 + note G#, 6 + note E_, 4 + note F#, 8 + octave 4 + volume_envelope 4, 5 + note C#, 2 + rest 1 + octave 3 + note E_, 2 + note G#, 1 + note A_, 2 + volume_envelope 12, 5 + octave 2 + note B_, 3 + note A_, 3 + note G#, 3 + note F#, 3 + note D#, 1 + note E_, 1 + note F#, 1 + note A_, 1 + octave 8 +.mainLoop: + volume_envelope 12, 5 + vibrato 8, 2, 1 + octave 2 + note B_, 6 + note B_, 6 + note B_, 4 + octave 3 + note C#, 6 + note C#, 6 + octave 2 + note A_, 4 + note B_, 8 + volume_envelope 4, 5 + octave 4 + note C#, 2 + octave 3 + rest 1 + note E_, 2 + note G#, 1 + note A_, 2 + volume_envelope 12, 5 + note E_, 3 + note D#, 3 + note C#, 3 + octave 2 + note B_, 3 + note F#, 1 + note G#, 1 + note A_, 1 + note B_, 1 + octave 3 + note_type 12, 12, 5 + note C#, 6 + note C#, 6 + octave 2 + note A_, 4 + note B_, 6 + note B_, 6 + note G#, 4 + note F#, 8 + octave 4 + volume_envelope 4, 5 + note G#, 2 + octave 3 + note B_, 2 + octave 2 + volume_envelope 12, 5 + note G#, 1 + note A_, 1 + note B_, 1 + octave 3 + note C#, 1 + note D#, 8 + octave 4 + volume_envelope 4, 5 + note G#, 2 + note B_, 2 + note G#, 2 + octave 5 + note C#, 1 + octave 4 + note B_, 1 + octave 3 + volume_envelope 12, 5 + note E_, 6 + note E_, 6 + note D#, 4 + note F#, 6 + note C#, 6 + note D#, 4 + note E_, 4 + note C#, 2 + note D#, 4 + octave 2 + note B_, 2 + octave 3 + note C#, 4 + octave 2 + note B_, 4 + note G#, 2 + note A_, 4 + note F#, 2 + note G#, 1 + note A_, 1 + note B_, 1 + octave 3 + note C#, 1 +.loop1: + vibrato 8, 2, 1 + note D#, 4 + octave 2 + note B_, 2 + note A_, 1 + note B_, 1 + octave 3 + note C#, 4 + octave 2 + note A_, 4 + note B_, 4 + note A_, 2 + note E_, 1 + note F#, 1 + note G#, 2 + note B_, 2 + octave 3 + note E_, 2 + note D#, 1 + note C#, 1 + sound_loop 2, .loop1 + vibrato 5, 1, 1 + duty_cycle 3 + octave 3 + sound_call .sub2 + vibrato 8, 2, 1 + octave 4 + note C#, 2 + octave 3 + sound_call .sub2 + note_type 12, 12, 5 + vibrato 8, 2, 1 + octave 4 + note C#, 2 + octave 3 + note F#, 6 + note F#, 6 + note F#, 4 + note G#, 6 + note G#, 6 + note E_, 4 + volume_envelope 12, 7 + vibrato 19, 3, 1 + note F#, 16 + rest 16 + vibrato 8, 2, 1 + volume_envelope 12, 5 + note B_, 6 + note B_, 6 + note B_, 4 + octave 4 + note C#, 6 + note C#, 6 + octave 3 + note A_, 4 + note B_, 8 + octave 4 + volume_envelope 2, 5 + note C#, 2 + rest 1 + octave 3 + volume_envelope 3, 5 + note E_, 2 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + volume_envelope 4, 5 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + note F#, 1 + note E_, 1 + octave 8 + sound_loop 0, .mainLoop + +.sub1: + duty_cycle 3 + tempo 153 + volume_envelope 8, 5 + vibrato 8, 2, 1 + octave 3 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + octave 5 + sound_ret + +.sub2: + vibrato 8, 2, 1 + note G#, 4 + note E_, 2 + note D#, 1 + note E_, 1 + note F#, 4 + note D#, 4 + note E_, 4 + note D#, 2 + octave 2 + note A_, 1 + note B_, 1 + octave 3 + note C#, 2 + note E_, 2 + note G#, 1 + note A_, 1 + sound_ret + +Music_SavoyCity_Ch2: + note_type 12, 15, 8 + rest 3 + vibrato 5, 1, 1 + duty_cycle 3 + volume_envelope 4, 5 + octave 3 + note B_, 2 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + rest 1 + note E_, 2 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + octave 3 + note A_, 1 + note G#, 1 + note F#, 1 + note G#, 1 + rest 1 + note B_, 2 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + rest 1 + note E_, 2 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + note_type 12, 15, 8 + rest 2 + volume_envelope 8, 5 + sound_call .sub1 + octave 8 +.mainLoop: + octave 4 + sound_call .sub1 + note_type 12, 8, 5 + sound_call .sub2 + note E_, 1 + note D#, 1 + octave 4 + note C#, 1 + note D#, 1 + sound_call .sub2 + note_type 12, 8, 5 + octave 5 + note C#, 1 + octave 4 + note B_, 1 + note A_, 1 + note G#, 1 + note_type 12, 15, 8 + sound_call .sub2 + octave 4 + note_type 12, 8, 5 + note E_, 1 + note D#, 1 + note C#, 1 + note D#, 1 + sound_call .sub2 + octave 4 + note_type 12, 8, 5 + note F#, 1 + note E_, 1 + note D#, 1 + note C#, 1 + sound_call .sub1 + note_type 12, 8, 5 + octave 4 + sound_call .sub3 + note_type 12, 6, 7 + octave 4 + note C#, 6 + note C#, 6 + note C#, 4 + note D#, 6 + note D#, 6 + octave 3 + note B_, 4 + octave 4 + note C#, 16 + rest 16 + volume_envelope 1, 5 + octave 3 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + volume_envelope 2, 5 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + volume_envelope 3, 5 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + volume_envelope 4, 5 + note E_, 2 + note C#, 2 + octave 3 + note A_, 1 + note G#, 1 + note F#, 1 + note G#, 1 + volume_envelope 5, 5 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + volume_envelope 6, 5 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + volume_envelope 7, 5 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + volume_envelope 8, 5 + note E_, 2 + note C#, 2 + note F#, 1 + note E_, 1 + note D#, 1 + note C#, 1 + octave 8 + sound_loop 0, .mainLoop + +.sub1: + volume_envelope 8, 5 + octave 3 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + octave 3 + note A_, 1 + note G#, 1 + note F#, 1 + note G#, 1 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + note F#, 1 + note E_, 1 + note D#, 1 + note C#, 1 + sound_ret + +.sub2: + volume_envelope 8, 5 + note F#, 3 + note D#, 1 + note E_, 2 + note G#, 2 + octave 3 + note B_, 3 + octave 4 + note D#, 1 + note E_, 2 + note G#, 2 + note F#, 2 + note D#, 2 + note E_, 2 + note G#, 2 + note B_, 2 + note G#, 2 + sound_ret + +.sub3: + octave 3 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + octave 3 + note B_, 1 + note G#, 1 + note F#, 1 + note G#, 1 + note B_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note E_, 3 + note G#, 1 + note A_, 2 + octave 4 + note C#, 2 + octave 3 + note B_, 2 + note G#, 2 + note A_, 2 + octave 4 + note C#, 2 + note E_, 2 + note C#, 2 + note F#, 1 + note E_, 1 + note D#, 1 + note C#, 1 + sound_ret + +Music_SavoyCity_Ch3: + note_type 12, 1, 0 + rest 16 + rest 16 + rest 16 + rest 16 + volume_envelope 2, 3 + vibrato 4, 2, 2 + octave 1 + note B_, 4 + stereo_panning TRUE, FALSE + note B_, 4 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning FALSE, TRUE + note B_, 3 + octave 2 + note C#, 1 + stereo_panning TRUE, TRUE + note D#, 4 + stereo_panning TRUE, FALSE + note D#, 4 + stereo_panning TRUE, TRUE + note D#, 3 + note E_, 1 + stereo_panning FALSE, TRUE + note F#, 3 + note E_, 1 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning TRUE, FALSE + note B_, 4 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning FALSE, TRUE + note B_, 3 + octave 2 + note C#, 1 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning TRUE, FALSE + note E_, 4 + stereo_panning TRUE, TRUE + note D#, 4 + stereo_panning FALSE, TRUE + note C#, 2 + octave 1 + note B_, 1 + note A_, 1 + octave 8 +.mainLoop: + volume_envelope 2, 3 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning TRUE, FALSE + note B_, 4 + octave 2 + stereo_panning TRUE, TRUE + note F#, 2 + note E_, 2 + octave 1 + stereo_panning FALSE, TRUE + note B_, 4 + octave 2 + stereo_panning TRUE, TRUE + note D#, 4 + stereo_panning TRUE, FALSE + note F#, 2 + note E_, 2 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning FALSE, TRUE + note F#, 4 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning TRUE, FALSE + note D#, 2 + note C#, 2 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning FALSE, TRUE + note D#, 2 + note C#, 2 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning TRUE, FALSE + note F#, 4 + stereo_panning TRUE, TRUE + note E_, 2 + note D#, 2 + stereo_panning FALSE, TRUE + note C#, 2 + octave 1 + note A_, 2 + sound_call .sub1 + octave 2 + stereo_panning TRUE, TRUE + note A_, 4 + stereo_panning TRUE, FALSE + note A_, 4 + stereo_panning TRUE, TRUE + note A_, 3 + note B_, 1 + octave 3 + stereo_panning FALSE, TRUE + note C#, 4 + octave 1 + sound_call .sub1 + note_type 12, 2, 3 + octave 3 + stereo_panning TRUE, TRUE + note C#, 4 + octave 2 + stereo_panning TRUE, FALSE + note B_, 4 + stereo_panning TRUE, TRUE + note A_, 3 + note G#, 1 + stereo_panning FALSE, TRUE + note E_, 4 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning TRUE, FALSE + note F#, 4 + octave 3 + stereo_panning TRUE, TRUE + note C#, 2 + octave 2 + note B_, 2 + stereo_panning FALSE, TRUE + note F#, 4 + octave 3 + stereo_panning TRUE, TRUE + note C#, 4 + octave 2 + stereo_panning TRUE, FALSE + note B_, 2 + note A_, 2 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning FALSE, TRUE + note B_, 4 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning TRUE, FALSE + note A_, 3 + note G#, 1 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning FALSE, TRUE + note A_, 3 + note G#, 1 + stereo_panning TRUE, TRUE + note F#, 4 + octave 3 + stereo_panning TRUE, FALSE + note C#, 1 + note C#, 2 + octave 2 + note B_, 1 + stereo_panning TRUE, TRUE + note A_, 2 + note G#, 2 + stereo_panning FALSE, TRUE + note F#, 1 + note E_, 1 + note D#, 1 + note E_, 1 + sound_call .sub2 + octave 2 + note C#, 2 + octave 1 + stereo_panning TRUE, TRUE + note A_, 2 + octave 2 + note C#, 2 + octave 1 + stereo_panning FALSE, TRUE + note B_, 2 + octave 2 + note C#, 2 + sound_call .sub2 + note_type 12, 2, 3 + octave 2 + note C#, 2 + octave 1 + stereo_panning TRUE, TRUE + note A_, 2 + octave 2 + note C#, 2 + octave 1 + stereo_panning FALSE, TRUE + note B_, 2 + octave 2 + note C#, 2 +.loop3: + stereo_panning TRUE, TRUE + note E_, 1 + note E_, 2 + note E_, 1 + stereo_panning TRUE, FALSE + note G#, 2 + octave 2 + note B_, 2 + stereo_panning TRUE, TRUE + note D#, 2 + note F#, 2 + stereo_panning FALSE, TRUE + note D#, 2 + note F#, 2 + octave 3 + stereo_panning TRUE, TRUE + note C#, 1 + octave 2 + note A_, 2 + note F#, 1 + stereo_panning TRUE, FALSE + note E_, 2 + note F#, 2 + stereo_panning TRUE, TRUE + note D#, 2 + note F#, 2 + stereo_panning FALSE, TRUE + note E_, 2 + note F#, 2 + sound_loop 2, .loop3 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning TRUE, FALSE + note B_, 4 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning FALSE, TRUE + note B_, 3 + octave 2 + note C#, 1 + stereo_panning TRUE, TRUE + note D#, 4 + stereo_panning TRUE, FALSE + note D#, 4 + stereo_panning TRUE, TRUE + note D#, 3 + note E_, 1 + stereo_panning FALSE, TRUE + note F#, 3 + note E_, 1 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning TRUE, FALSE + note B_, 4 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning FALSE, TRUE + note B_, 3 + octave 2 + note C#, 1 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning TRUE, FALSE + note E_, 4 + stereo_panning TRUE, TRUE + note D#, 4 + stereo_panning FALSE, TRUE + note C#, 2 + octave 1 + note B_, 1 + note A_, 1 + stereo_panning TRUE, TRUE + note B_, 4 + stereo_panning TRUE, FALSE + note B_, 4 + octave 2 + stereo_panning TRUE, TRUE + note F#, 2 + note E_, 2 + octave 1 + stereo_panning FALSE, TRUE + note B_, 4 + octave 2 + stereo_panning TRUE, TRUE + note D#, 4 + stereo_panning TRUE, FALSE + note F#, 2 + note E_, 2 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning FALSE, TRUE + note F#, 4 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning TRUE, FALSE + note D#, 2 + note C#, 2 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning FALSE, TRUE + note D#, 2 + note C#, 2 + octave 1 + stereo_panning TRUE, TRUE + note B_, 4 + octave 2 + stereo_panning TRUE, FALSE + note F#, 4 + stereo_panning TRUE, TRUE + note E_, 2 + note D#, 2 + stereo_panning FALSE, TRUE + note C#, 2 + octave 1 + note A_, 2 + octave 8 + sound_loop 0, .mainLoop + +.sub1: + octave 2 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning TRUE, FALSE + note F#, 4 + stereo_panning TRUE, TRUE + note F#, 4 + stereo_panning FALSE, TRUE + note F#, 3 + note G#, 1 + octave 1 + sound_ret + +.sub2: + octave 1 + stereo_panning TRUE, TRUE + note B_, 1 + note B_, 2 + note B_, 1 + octave 2 + stereo_panning TRUE, FALSE + note D#, 2 + note F#, 2 + octave 1 + stereo_panning TRUE, TRUE + note A_, 2 + octave 2 + note C#, 2 + octave 1 + stereo_panning FALSE, TRUE + note A_, 2 + octave 2 + note C#, 2 + stereo_panning TRUE, TRUE + note G#, 1 + note E_, 2 + note C#, 1 + octave 1 + stereo_panning TRUE, FALSE + note B_, 2 + octave 2 + sound_ret + +Music_SavoyCity_Ch4: + toggle_noise 0 + drum_speed 12 + rest 16 + rest 16 + rest 16 + rest 16 + octave 5 +.loop2: + toggle_noise + toggle_noise 3 + drum_note 2, 4 + drum_note 2, 4 + drum_note 2, 3 + drum_note 2, 1 + drum_note 3, 2 + drum_note 3, 2 + sound_loop 3, .loop2 + toggle_noise + toggle_noise 3 + drum_note 2, 4 + drum_note 2, 4 + drum_note 2, 1 + drum_note 2, 1 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + octave 8 +.mainLoop: + toggle_noise + toggle_noise 3 + octave 5 +.loop1: + toggle_noise + toggle_noise 3 + drum_note 12, 4 + octave 6 + drum_note 3, 4 + drum_note 2, 4 + drum_note 3, 4 + drum_note 2, 4 + drum_note 3, 4 + drum_note 2, 2 + drum_note 2, 2 + drum_note 3, 2 + drum_note 3, 1 + drum_note 3, 1 + drum_note 2, 3 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 3 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 3 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + sound_call .sub1 + octave 5 + sound_loop 3, .loop1 + drum_speed 12 + octave 6 + toggle_noise + toggle_noise 3 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 2, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 3, 2 + drum_note 3, 2 + drum_note 2, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 3, 2 + drum_note 3, 2 + rest 16 + octave 8 + sound_loop 0, .mainLoop + +.sub1: + toggle_noise + toggle_noise 3 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 3 + drum_note 3, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 2, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 3, 2 + drum_note 3, 2 + drum_note 2, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 3, 2 + drum_note 3, 2 + drum_note 2, 1 + drum_note 2, 2 + drum_note 2, 1 + drum_note 3, 2 + drum_note 3, 2 + drum_note 2, 2 + drum_note 2, 1 + drum_note 2, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + drum_note 3, 1 + sound_ret diff --git a/audio/music_pointers.asm b/audio/music_pointers.asm index cdd2995..06bad1f 100644 --- a/audio/music_pointers.asm +++ b/audio/music_pointers.asm @@ -123,4 +123,5 @@ Music: dba Music_CoralCity dba Music_SepiaCity dba Music_CrystalCrater + dba Music_SavoyCity assert_table_length NUM_MUSIC_SONGS diff --git a/constants/music_constants.asm b/constants/music_constants.asm index b4ff64a..eafb846 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -121,6 +121,7 @@ const MUSIC_CORALCITY ; 74 const MUSIC_SEPIACITY ; 75 const MUSIC_CRYSTALCRATER ; 76 + const MUSIC_SAVOYCITY ; 77 DEF NUM_MUSIC_SONGS EQU const_value ; GetMapMusic picks music for this value (see home/map.asm) diff --git a/data/maps/maps.asm b/data/maps/maps.asm index 6dfa43a..03902fd 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -718,28 +718,28 @@ MapGroup_OldCity: map OldCity, TILESET_NIHON_OLD, TOWN, LANDMARK_OLD_CITY, MUSIC_SEPIACITY, TRUE, PALETTE_AUTO, FISHGROUP_POND map OldCityPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_OLD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldMart, TILESET_NIHON_MART, INDOOR, LANDMARK_OLD_CITY, MUSIC_MART, FALSE, PALETTE_DAY, FISHGROUP_NONE - map HoneyGrandmasHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE - map OldCityEarlsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE - map OldCityFamilyHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE - map SepiaSchool, TILESET_LAB, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map HoneyGrandmasHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_SEPIACITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map OldCityEarlsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_SEPIACITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map OldCityFamilyHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_OLD_CITY, MUSIC_SEPIACITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map SepiaSchool, TILESET_LAB, INDOOR, LANDMARK_OLD_CITY, MUSIC_SEPIACITY, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldCityGym, TILESET_TOWER, INDOOR, LANDMARK_OLD_CITY, MUSIC_GYM, FALSE, PALETTE_DAY, FISHGROUP_NONE - map OldCityMuseum, TILESET_TOWER, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map OldCityMuseum, TILESET_TOWER, INDOOR, LANDMARK_OLD_CITY, MUSIC_SEPIACITY, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda1F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda2F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda3F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda4F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda5F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map Route50, TILESET_NIHON_OLD, ROUTE, LANDMARK_ROUTE_50, MUSIC_PEACEFULTHEME, TRUE, PALETTE_AUTO, FISHGROUP_NONE - map JackysHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_50, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map JackysHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_50, MUSIC_SEPIACITY, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_OLD_CITY_MAPS MapGroup_SavoyCity: table_width MAP_LENGTH, MapGroup_SavoyCity - map SavoyCity, TILESET_NIHON_WEST, TOWN, LANDMARK_SAVOY_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE + map SavoyCity, TILESET_NIHON_WEST, TOWN, LANDMARK_SAVOY_CITY, MUSIC_SAVOYCITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE map Route50SavoyCityGate, TILESET_NIHON_GATE, GATE, LANDMARK_ROUTE_50, MUSIC_PEACEFULTHEME, FALSE, PALETTE_DAY, FISHGROUP_NONE map SavoyCityPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_SAVOY_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_NONE - map SavoyCityBigHouse1, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAVOY_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE - map SavoyCityBigHouse2, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAVOY_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map SavoyCityBigHouse1, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAVOY_CITY, MUSIC_SAVOYCITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map SavoyCityBigHouse2, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAVOY_CITY, MUSIC_SAVOYCITY, FALSE, PALETTE_DAY, FISHGROUP_NONE map SavoyCityRocketBlockedHouse, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAVOY_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_SAVOY_CITY_MAPS