diff --git a/include/config/config_audio.h b/include/config/config_audio.h index a770e6de..24e5b3eb 100644 --- a/include/config/config_audio.h +++ b/include/config/config_audio.h @@ -14,6 +14,13 @@ */ // #define JP_RED_COIN_SOUND +/** + * In vanilla, Mario's sounds are pitch shifted in real time in order to maintain a sense of consistency. This can be annoying when replacing Mario's sounds. + * This define will disable this behavior, making sound replacements easier to manage. Use of this is not recommended unless you're actually replacing Mario's sounds. + * When toggling this define, you will need to run `make clean` for it to apply. + */ +// #define DISABLE_MARIO_PITCH_SHIFTING + /** * Increase audio heap size to allow for larger/more custom sequences/banks/sfx to be imported without causing issues (not supported for SH). * Note that this is REQUIRED in order to use the extended 0C audio bank. Do not disable this if you're planning on using it. diff --git a/include/seq_macros.inc b/include/seq_macros.inc index d73d9923..3dc6fdd4 100644 --- a/include/seq_macros.inc +++ b/include/seq_macros.inc @@ -1,3 +1,5 @@ +#include "config/config_audio.h" + // Macros for disassembled sequence files. This file was automatically generated by seq_decoder.py. // To regenerate it, run: ./tools/seq_decoder.py --emit-asm-macros > include/seq_macros.inc @@ -448,15 +450,6 @@ writeseq\@: .endm -.macro layer_portamento a, b, c - .byte 0xc7, \a, \b - .if ((\a & 0x80) == 0) - var \c - .else - .byte \c - .endif -.endm - .macro chan_delay_long a .byte 0xfd var_long \a @@ -564,6 +557,14 @@ .byte \c .endm +.macro layer_note1_mario a, b, c +#ifndef DISABLE_MARIO_PITCH_SHIFTING + layer_note1 \a, \b, \c +#else + layer_note1 39, \b, \c +#endif +.endm + .macro layer_note2 a, b, c .byte 0x80 + \a .byte \b @@ -585,6 +586,12 @@ .byte \a .endm +.macro layer_transpose_mario a +#ifndef DISABLE_MARIO_PITCH_SHIFTING + layer_transpose \a +#endif +.endm + .macro layer_setshortnotedefaultplaypercentage a .byte 0xc3 var \a @@ -603,6 +610,21 @@ .byte \a .endm +.macro layer_portamento a, b, c + .byte 0xc7, \a, \b + .if ((\a & 0x80) == 0) + var \c + .else + .byte \c + .endif +.endm + +.macro layer_portamento_mario a, b, c +#ifndef DISABLE_MARIO_PITCH_SHIFTING + layer_portamento \a, \b, \c +#endif +.endm + .macro layer_disableportamento .byte 0xc8 .endm diff --git a/sound/sequences/00_sound_player.s b/sound/sequences/00_sound_player.s index 5fa05f40..953dc97b 100644 --- a/sound/sequences/00_sound_player.s +++ b/sound/sequences/00_sound_player.s @@ -2048,10 +2048,10 @@ chan_end .layer_C3C: #if defined(VERSION_EU) || defined(VERSION_SH) - layer_transpose 2 + layer_transpose_mario 2 #endif -layer_portamento 0x82, 41, 127 -layer_note1 37, 0x14, 127 +layer_portamento_mario 0x82, 41, 127 +layer_note1_mario 37, 0x14, 127 layer_end .sound_mario_jump_wah: @@ -2061,9 +2061,9 @@ chan_setlayer 0, .layer_C4C chan_end .layer_C4C: -layer_transpose -2 +layer_transpose_mario -2 .layer_C4E: -layer_note1 38, 0x18, 127 +layer_note1_mario 38, 0x18, 127 layer_end .sound_mario_jump_yah: @@ -2073,10 +2073,10 @@ chan_setlayer 0, .layer_C5A chan_end .layer_C5A: -layer_transpose -2 +layer_transpose_mario -2 .layer_C5C: -layer_portamento 0x82, 39, 200 -layer_note1 38, 0x24, 120 +layer_portamento_mario 0x82, 39, 200 +layer_note1_mario 38, 0x24, 120 layer_end .sound_mario_hoohoo: @@ -2086,8 +2086,8 @@ chan_setlayer 0, .layer_C6C chan_end .layer_C6C: -layer_portamento 0x82, 44, 200 -layer_note1 39, 0x30, 127 +layer_portamento_mario 0x82, 44, 200 +layer_note1_mario 39, 0x30, 127 layer_end .sound_mario_yahoo: @@ -2097,11 +2097,11 @@ chan_setlayer 0, .layer_C7C chan_end .layer_C7C: -layer_transpose -2 +layer_transpose_mario -2 layer_somethingon -layer_portamento 0x85, 39, 255 -layer_note1 42, 0x1e, 110 -layer_note1 39, 0x41, 110 +layer_portamento_mario 0x85, 39, 255 +layer_note1_mario 42, 0x1e, 110 +layer_note1_mario 39, 0x41, 110 layer_end .sound_mario_uh: @@ -2111,9 +2111,9 @@ chan_setlayer 0, .layer_C92 chan_end .layer_C92: -layer_transpose -2 -layer_portamento 0x81, 41, 255 -layer_note1 38, 0x2b, 115 +layer_transpose_mario -2 +layer_portamento_mario 0x81, 41, 255 +layer_note1_mario 38, 0x2b, 115 layer_end .sound_mario_hrmm: @@ -2123,8 +2123,8 @@ chan_setlayer 0, .layer_CA4 chan_end .layer_CA4: -layer_transpose -2 -layer_note1 44, 0x1e, 110 +layer_transpose_mario -2 +layer_note1_mario 44, 0x1e, 110 layer_end .sound_mario_wah2: @@ -2134,8 +2134,8 @@ chan_setlayer 0, .layer_CB2 chan_end .layer_CB2: -layer_transpose -3 -layer_note1 39, 0x1c, 127 +layer_transpose_mario -3 +layer_note1_mario 39, 0x1c, 127 layer_end .sound_mario_whoa: @@ -2145,8 +2145,8 @@ chan_setlayer 0, .layer_CC0 chan_end .layer_CC0: -layer_transpose -2 -layer_note1 40, 0x30, 110 +layer_transpose_mario -2 +layer_note1_mario 40, 0x30, 110 layer_end .sound_mario_eeuh: @@ -2156,8 +2156,8 @@ chan_setlayer 0, .layer_CCE chan_end .layer_CCE: -layer_transpose -2 -layer_note1 40, 0x44, 105 +layer_transpose_mario -2 +layer_note1_mario 40, 0x44, 105 layer_end .sound_mario_attacked: @@ -2167,8 +2167,8 @@ chan_setlayer 0, .layer_CDC chan_end .layer_CDC: -layer_transpose -2 -layer_note1 41, 0x30, 120 +layer_transpose_mario -2 +layer_note1_mario 41, 0x30, 120 layer_end .sound_mario_ooof: @@ -2178,8 +2178,8 @@ chan_setlayer 0, .layer_CEA chan_end .layer_CEA: -layer_transpose -2 -layer_note1 38, 0x30, 127 +layer_transpose_mario -2 +layer_note1_mario 38, 0x30, 127 layer_end .sound_mario_here_we_go: @@ -2189,8 +2189,8 @@ chan_setlayer 0, .layer_CF8 chan_end .layer_CF8: -layer_portamento 0x81, 38, 200 -layer_note1 41, 0x85, 127 +layer_portamento_mario 0x81, 38, 200 +layer_note1_mario 41, 0x85, 127 layer_end .sound_mario_yawning: @@ -2200,8 +2200,8 @@ chan_setlayer 0, .layer_D09 chan_end .layer_D09: -layer_transpose -2 -layer_note1 39, 0x7f, 105 +layer_transpose_mario -2 +layer_note1_mario 39, 0x7f, 105 layer_end .sound_mario_snoring1: @@ -2211,8 +2211,8 @@ chan_setlayer 0, .layer_D17 chan_end .layer_D17: -layer_transpose -2 -layer_note1 39, 0x60, 64 +layer_transpose_mario -2 +layer_note1_mario 39, 0x60, 64 layer_end .sound_mario_snoring2: @@ -2222,8 +2222,8 @@ chan_setlayer 0, .layer_D25 chan_end .layer_D25: -layer_transpose -2 -layer_note1 39, 0x5c, 52 +layer_transpose_mario -2 +layer_note1_mario 39, 0x5c, 52 layer_end .sound_mario_waaaooow: @@ -2233,8 +2233,8 @@ chan_setlayer 0, .layer_D33 chan_end .layer_D33: -layer_transpose -2 -layer_note1 39, 0xaa, 127 +layer_transpose_mario -2 +layer_note1_mario 39, 0xaa, 127 layer_end .sound_mario_haha: @@ -2244,8 +2244,8 @@ chan_setlayer 0, .layer_D42 chan_end .layer_D42: -layer_transpose -1 -layer_note1 39, 0x4d, 120 +layer_transpose_mario -1 +layer_note1_mario 39, 0x4d, 120 layer_end .sound_mario_uh2: @@ -2255,8 +2255,8 @@ chan_setlayer 0, .layer_D50 chan_end .layer_D50: -layer_transpose -2 -layer_note1 43, 0x1e, 105 +layer_transpose_mario -2 +layer_note1_mario 43, 0x1e, 105 layer_end .sound_mario_on_fire: @@ -2266,8 +2266,8 @@ chan_setlayer 0, .layer_D5E chan_end .layer_D5E: -layer_transpose -2 -layer_note1 39, 0xc8, 127 +layer_transpose_mario -2 +layer_note1_mario 39, 0xc8, 127 layer_end .sound_mario_dying: @@ -2277,8 +2277,8 @@ chan_setlayer 0, .layer_D6D chan_end .layer_D6D: -layer_transpose -2 -layer_note1 39, 0x8c, 110 +layer_transpose_mario -2 +layer_note1_mario 39, 0x8c, 110 layer_end .sound_mario_panting_cold: @@ -2288,9 +2288,9 @@ chan_setlayer 0, .layer_D7C chan_end .layer_D7C: -layer_transpose -2 -layer_portamento 0x82, 35, 255 -layer_note1 38, 0x30, 127 +layer_transpose_mario -2 +layer_portamento_mario 0x82, 35, 255 +layer_note1_mario 38, 0x30, 127 layer_end .sound_mario_panting1: @@ -2299,8 +2299,9 @@ chan_setinstr 2 chan_setlayer 0, .layer_D8E chan_end +// layer_note1_mario intentionally not used .layer_D8E: -layer_transpose -2 +layer_transpose_mario -2 layer_note1 39, 0x3c, 100 layer_end @@ -2310,8 +2311,9 @@ chan_setinstr 2 chan_setlayer 0, .layer_D9C chan_end +// layer_note1_mario intentionally not used .layer_D9C: -layer_transpose -2 +layer_transpose_mario -2 layer_delay 0x4 layer_note1 38, 0x3c, 100 layer_end @@ -2322,8 +2324,9 @@ chan_setinstr 2 chan_setlayer 0, .layer_DAC chan_end +// layer_note1_mario intentionally not used .layer_DAC: -layer_transpose -2 +layer_transpose_mario -2 layer_delay 0x8 layer_note1 40, 0x3c, 100 layer_end @@ -2334,8 +2337,9 @@ chan_setinstr 7 chan_setlayer 0, .layer_DBC chan_end +// layer_note1_mario intentionally not used .layer_DBC: -layer_transpose -2 +layer_transpose_mario -2 layer_note1 39, 0x10, 115 layer_end @@ -2345,8 +2349,9 @@ chan_setinstr 7 chan_setlayer 0, .layer_DCA chan_end +// layer_portamento_mario and layer_note1_mario intentionally not used .layer_DCA: -layer_transpose -2 +layer_transpose_mario -2 layer_portamento 0x81, 38, 255 layer_note1 41, 0x18, 115 layer_end @@ -2357,12 +2362,19 @@ chan_setinstr 7 chan_setlayer 0, .layer_DDC chan_end +// layer_portamento_mario and layer_note1_mario intentionally not used +// NOTE: This particular sound has been modified for use with the DISABLE_MARIO_PITCH_SHIFTING define since it may otherwise sound bad left alone .layer_DDC: -layer_transpose -2 +layer_transpose_mario -2 +#ifndef DISABLE_MARIO_PITCH_SHIFTING layer_somethingon layer_portamento 0x85, 38, 255 layer_note1 41, 0xc, 115 layer_note1 35, 0x12, 115 +#else +layer_portamento 0x81, 41, 255 +layer_note1 38, 0x1e, 115 +#endif layer_end .sound_mario_punch_yah: @@ -2377,7 +2389,7 @@ chan_setlayer 1, .layer_538 chan_end .layer_DFE: -layer_transpose -2 +layer_transpose_mario -2 layer_jump .layer_C5C .sound_mario_punch_hoo: @@ -2392,9 +2404,9 @@ chan_setlayer 1, .layer_548 chan_end .layer_E17: -layer_transpose -2 -layer_portamento 0x81, 42, 255 -layer_note1 38, 0x30, 115 +layer_transpose_mario -2 +layer_portamento_mario 0x81, 42, 255 +layer_note1_mario 38, 0x30, 115 layer_end .sound_mario_mama_mia: @@ -2404,8 +2416,8 @@ chan_setlayer 0, .layer_E29 chan_end .layer_E29: -layer_portamento 0x81, 38, 255 -layer_note1 36, 0x8c, 115 +layer_portamento_mario 0x81, 38, 255 +layer_note1_mario 36, 0x8c, 115 layer_end .sound_mario_okey_dokey: @@ -2415,7 +2427,7 @@ chan_setlayer 0, .layer_E3A chan_end .layer_E3A: -layer_note1 39, 0x60, 115 +layer_note1_mario 39, 0x60, 115 layer_end .sound_mario_ground_pound_wah: @@ -2428,7 +2440,7 @@ chan_setlayer 0, .layer_E49 chan_end .layer_E49: -layer_note1 38, 0x91, 127 +layer_note1_mario 38, 0x91, 127 layer_end .sound_mario_punch_wah: @@ -2443,7 +2455,7 @@ chan_setlayer 1, .layer_536 chan_end .layer_E62: -layer_transpose -1 +layer_transpose_mario -1 layer_jump .layer_C4E .sound_peach_dear_mario: @@ -2463,7 +2475,7 @@ chan_setlayer 0, .layer_E7C chan_end .layer_E7C: -layer_note1 39, 0x5a, 127 +layer_note1_mario 39, 0x5a, 127 layer_end .sound_mario_yippee: @@ -2473,7 +2485,7 @@ chan_setlayer 0, .layer_E88 chan_end .layer_E88: -layer_note1 39, 0x5a, 97 +layer_note1_mario 39, 0x5a, 97 layer_end .sound_mario_doh: @@ -2483,7 +2495,7 @@ chan_setlayer 0, .layer_E94 chan_end .layer_E94: -layer_note1 41, 0x46, 127 +layer_note1_mario 41, 0x46, 127 layer_end .sound_mario_game_over: @@ -2493,7 +2505,7 @@ chan_setlayer 0, .layer_EA0 chan_end .layer_EA0: -layer_note1 39, 0x55, 110 +layer_note1_mario 39, 0x55, 110 layer_end .sound_mario_hello: @@ -2503,7 +2515,7 @@ chan_setlayer 0, .layer_EAC chan_end .layer_EAC: -layer_note1 39, 0x46, 127 +layer_note1_mario 39, 0x46, 127 layer_end .sound_mario_press_start_to_play: @@ -2513,7 +2525,7 @@ chan_setlayer 0, .layer_EB8 chan_end .layer_EB8: -layer_note1 39, 0x12c, 127 +layer_note1_mario 39, 0x12c, 127 layer_end .sound_mario_twirl_bounce: @@ -2523,7 +2535,7 @@ chan_setlayer 0, .layer_EC5 chan_end .layer_EC5: -layer_note1 39, 0x30, 127 +layer_note1_mario 39, 0x30, 127 layer_end .sound_mario_snoring3: @@ -2538,15 +2550,15 @@ layer_loop 50 layer_call .layer_fn_EE1 layer_loopend layer_setinstr 21 -layer_note1 39, 0x44c, 127 +layer_note1_mario 39, 0x44c, 127 layer_jump .layer_ED1 layer_end .layer_fn_EE1: layer_setinstr 21 -layer_note1 37, 0x53, 127 +layer_note1_mario 37, 0x53, 127 layer_setinstr 15 -layer_note1 37, 0x4e, 64 +layer_note1_mario 37, 0x4e, 64 layer_end .sound_mario_so_longa_bowser: @@ -2557,8 +2569,8 @@ chan_setlayer 1, .layer_EF7 chan_end .layer_EF7: -layer_portamento 0x82, 42, 200 -layer_note1 39, 0xc8, 110 +layer_portamento_mario 0x82, 42, 200 +layer_note1_mario 39, 0xc8, 110 layer_end .sound_mario_ima_tired: @@ -2568,7 +2580,7 @@ chan_setlayer 0, .layer_F08 chan_end .layer_F08: -layer_note1 39, 0x96, 110 +layer_note1_mario 39, 0x96, 110 layer_end .sound_peach_mario: