From 3b1deb194160999fae786a6ecb6f2af703d798a5 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Sat, 11 Sep 2021 17:57:32 +0100 Subject: [PATCH] Bronke --- src/audio/data.c | 85 +++++------------ src/audio/data.h | 3 +- src/audio/external.c | 2 +- src/audio/heap.c | 215 +++++++++++++++++++++++-------------------- src/audio/heap.h | 2 +- src/audio/internal.h | 6 ++ src/audio/load.c | 2 +- src/game/game_init.c | 4 +- 8 files changed, 153 insertions(+), 166 deletions(-) diff --git a/src/audio/data.c b/src/audio/data.c index 5ed308a6..46afa12d 100644 --- a/src/audio/data.c +++ b/src/audio/data.c @@ -56,69 +56,34 @@ struct AudioSessionSettingsEU gAudioSessionPresets[] = { // - memory used for temporary sequences // - memory used for temporary banks #if defined(VERSION_JP) || defined(VERSION_US) +struct ReverbSettingsUS gReverbSettings[18] = +{ + {1, 0x0C00, 0x2FFF}, + {1, 0x0A00, 0x47FF}, + {1, 0x1000, 0x2FFF}, + {1, 0x0E00, 0x3FFF}, + {1, 0x0C00, 0x4FFF}, + {1, 0x0C00, 0x2FFF}, + {1, 0x0A00, 0x47FF}, + {1, 0x0800, 0x37FF}, + {1, 0x0800, 0x2FFF}, + {1, 0x0800, 0x3FFF}, + {1, 0x1000, 0x3FFF}, + {1, 0x1000, 0x2FFF}, + {1, 0x0C00, 0x3FFF}, + {1, 0x0800, 0x4FFF}, + {1, 0x0800, 0x2FFF}, + {1, 0x0800, 0x2FFF}, + {1, 0x0800, 0x2FFF}, + {1, 0x0800, 0x2FFF}, +}; #ifdef EXPAND_AUDIO_HEAP -struct AudioSessionSettings gAudioSessionPresets[18] = { -#ifdef VERSION_JP - { 32000, 32, 1, 0x0800, 0x2FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x1000, 0x2FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0E00, 0x3FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x7200, 0xC000, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0800, 0x2FFF, 0x7FFF, 0x7C00, 0xC400, 0x7E00, 0x5400 }, - { 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x7E00, 0xC400, 0x8800, 0x5500 }, - { 32000, 40, 1, 0x0800, 0x37FF, 0x7FFF, 0x6600, 0xAA00, 0x8000, 0x3600 }, -#else - { 32000, 32, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x1000, 0x2FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0E00, 0x3FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x7400, 0xDA00, 0x8800, 0x5400 }, - { 32000, 32, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x8000, 0xDC00, 0x7E00, 0x5400 }, - { 32000, 32, 1, 0x0A00, 0x47FF, 0x7FFF, 0x8200, 0xDC00, 0x8800, 0x5500 }, - { 32000, 40, 1, 0x0800, 0x37FF, 0x7FFF, 0x6980, 0xC500, 0x8000, 0x3600 }, -#endif - { 27000, 32, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 27000, 32, 1, 0x0800, 0x3FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 27000, 32, 1, 0x1000, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 27000, 32, 1, 0x1000, 0x3FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 27000, 32, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 32000, 28, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 32000, 24, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 32000, 20, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4A00, 0xAA00, 0xE800, 0x4800 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +struct AudioSessionSettings gAudioSessionPresets[1] = { + { 32000, 40, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x8000, 0xDC00, 0x8800, 0x5400 }, }; #else -struct AudioSessionSettings gAudioSessionPresets[18] = { -#ifdef VERSION_JP - { 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0E00, 0x3FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x3900, 0x6000, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x3E00, 0x6200, 0x3F00, 0x2A00 }, - { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x3F00, 0x6200, 0x4400, 0x2A80 }, - { 32000, 20, 1, 0x0800, 0x37FF, 0x7FFF, 0x3300, 0x5500, 0x4000, 0x1B00 }, -#else - { 32000, 16, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0E00, 0x3FFF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x3A00, 0x6D00, 0x4400, 0x2A00 }, - { 32000, 16, 1, 0x0C00, 0x2FFF, 0x7FFF, 0x4000, 0x6E00, 0x3F00, 0x2A00 }, - { 32000, 16, 1, 0x0A00, 0x47FF, 0x7FFF, 0x4100, 0x6E00, 0x4400, 0x2A80 }, - { 32000, 20, 1, 0x0800, 0x37FF, 0x7FFF, 0x34C0, 0x6280, 0x4000, 0x1B00 }, -#endif - { 27000, 16, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 27000, 16, 1, 0x0800, 0x3FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 27000, 16, 1, 0x1000, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 27000, 16, 1, 0x1000, 0x3FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 27000, 16, 1, 0x0C00, 0x4FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 32000, 14, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 32000, 12, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 32000, 10, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 32000, 8, 1, 0x0800, 0x2FFF, 0x7FFF, 0x2500, 0x5500, 0x7400, 0x2400 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +struct AudioSessionSettings gAudioSessionPresets[1] = { + { 32000, 20, 1, 0x0800, 0x2FFF, 0x7FFF, 0x4000, 0x6E00, 0x7400, 0x2A80 }, }; #endif #endif diff --git a/src/audio/data.h b/src/audio/data.h index f65a5d6e..61c72077 100644 --- a/src/audio/data.h +++ b/src/audio/data.h @@ -18,7 +18,8 @@ extern struct AudioSessionSettingsEU gAudioSessionPresets[]; extern struct ReverbSettingsEU sReverbSettings[8]; #else -extern struct AudioSessionSettings gAudioSessionPresets[18]; +extern struct AudioSessionSettings gAudioSessionPresets[1]; +extern struct ReverbSettingsUS gReverbSettings[18]; #endif extern u16 D_80332388[128]; // unused diff --git a/src/audio/external.c b/src/audio/external.c index 08f000f8..f8901534 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -2682,7 +2682,7 @@ void sound_reset(u8 presetId) { func_802ad74c(0xF2000000, 0); #endif #if defined(VERSION_JP) || defined(VERSION_US) - audio_reset_session(&gAudioSessionPresets[presetId]); + audio_reset_session(&gAudioSessionPresets[0], presetId); #else audio_reset_session_eu(presetId); #endif diff --git a/src/audio/heap.c b/src/audio/heap.c index a5bee754..c1d35952 100644 --- a/src/audio/heap.c +++ b/src/audio/heap.c @@ -1127,11 +1127,123 @@ void init_reverb_eu(void) } } } +#else +void init_reverb_us(s32 presetId) +{ + s32 reverbWindowSize; + s16 *mem; + s32 i; +#ifdef BETTER_REVERB + s8 reverbConsole; +#endif + + reverbWindowSize = gReverbSettings[presetId].windowSize; + gReverbDownsampleRate = gReverbSettings[presetId].downsampleRate; +#if defined(BETTER_REVERB) && (defined(VERSION_US) || defined(VERSION_JP)) + if (gIsConsole) + reverbConsole = betterReverbDownsampleConsole; // Console! + else + reverbConsole = betterReverbDownsampleEmulator; // Setting this to 1 is REALLY slow, please use sparingly! + + if (reverbConsole <= 0) { + reverbConsole = 1; + toggleBetterReverb = FALSE; + } + else { + toggleBetterReverb = TRUE; + } + + if (toggleBetterReverb && betterReverbWindowsSize >= 0) + reverbWindowSize = betterReverbWindowsSize; + + if (gReverbDownsampleRate < (1 << (reverbConsole - 1))) + gReverbDownsampleRate = (1 << (reverbConsole - 1)); + reverbWindowSize /= gReverbDownsampleRate; + if (reverbWindowSize < DEFAULT_LEN_2CH) // Minimum window size to not overflow + reverbWindowSize = DEFAULT_LEN_2CH; +#endif + + switch (gReverbDownsampleRate) { + case 1: + sReverbDownsampleRateLog = 0; + break; + case 2: + sReverbDownsampleRateLog = 1; + break; + case 4: + sReverbDownsampleRateLog = 2; + break; + case 8: + sReverbDownsampleRateLog = 3; + break; + case 16: + sReverbDownsampleRateLog = 4; + break; + default: + sReverbDownsampleRateLog = 0; + } + + if (reverbWindowSize == 0) { + gSynthesisReverb.useReverb = 0; + } else { + gSynthesisReverb.useReverb = 8; + if (!sAudioFirstBoot) + { + gSynthesisReverb.ringBuffer.left = soundAlloc(&gNotesAndBuffersPool, reverbWindowSize * 2); + gSynthesisReverb.ringBuffer.right = soundAlloc(&gNotesAndBuffersPool, reverbWindowSize * 2); + } + gSynthesisReverb.nextRingBufferPos = 0; + gSynthesisReverb.unkC = 0; + gSynthesisReverb.curFrame = 0; + gSynthesisReverb.bufSizePerChannel = reverbWindowSize; + gSynthesisReverb.reverbGain = gReverbSettings[presetId].gain; + gSynthesisReverb.framesLeftToIgnore = 2; + if (!sAudioFirstBoot) + { + if (gReverbDownsampleRate != 1) { + gSynthesisReverb.resampleFlags = A_INIT; + gSynthesisReverb.resampleRate = 0x8000 / gReverbDownsampleRate; + gSynthesisReverb.resampleStateLeft = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); + gSynthesisReverb.resampleStateRight = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); + gSynthesisReverb.unk24 = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); + gSynthesisReverb.unk28 = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); + for (i = 0; i < gAudioUpdatesPerFrame; i++) { + mem = soundAlloc(&gNotesAndBuffersPool, DEFAULT_LEN_2CH); + gSynthesisReverb.items[0][i].toDownsampleLeft = mem; + gSynthesisReverb.items[0][i].toDownsampleRight = mem + DEFAULT_LEN_1CH / sizeof(s16); + mem = soundAlloc(&gNotesAndBuffersPool, DEFAULT_LEN_2CH); + gSynthesisReverb.items[1][i].toDownsampleLeft = mem; + gSynthesisReverb.items[1][i].toDownsampleRight = mem + DEFAULT_LEN_1CH / sizeof(s16); + } + } + } + + // This does not have to be reset after being initialized for the first time, which would speed up load times dramatically. + // However, reseting this allows for proper clearing of the reverb buffers, as well as dynamic customization of the delays array. +#if defined(BETTER_REVERB) && (defined(VERSION_US) || defined(VERSION_JP)) + if (toggleBetterReverb) { + for (i = 0; i < NUM_ALLPASS; ++i) { + delaysL[i] = delaysBaselineL[i] / gReverbDownsampleRate; + delaysR[i] = delaysBaselineR[i] / gReverbDownsampleRate; + } + + if (sAudioFirstBoot) + return; + delayBufsL = (s32**) soundAlloc(&gAudioSessionPool, NUM_ALLPASS * sizeof(s32*)); + delayBufsR = (s32**) soundAlloc(&gAudioSessionPool, NUM_ALLPASS * sizeof(s32*)); + for (i = 0; i < NUM_ALLPASS; ++i) { + delayBufsL[i] = (s32*) soundAlloc(&gAudioSessionPool, delaysL[i] * sizeof(s32)); + delayBufsR[i] = (s32*) soundAlloc(&gAudioSessionPool, delaysR[i] * sizeof(s32)); + } + } +#endif + } +} #endif #if defined(VERSION_JP) || defined(VERSION_US) -void audio_reset_session(struct AudioSessionSettings *preset) { +void audio_reset_session(struct AudioSessionSettings *preset, s32 presetId) { if (sAudioFirstBoot) { gAudioSessionPool.cur = gAudioSessionPool.start; @@ -1145,6 +1257,7 @@ void audio_reset_session(struct AudioSessionSettings *preset) { temporary_pool_clear(&gBankLoadedPool.temporary); temporary_pool_clear(&gUnusedLoadedPool.temporary); + init_reverb_us(presetId); return; } #else @@ -1170,9 +1283,7 @@ void audio_reset_session(void) { #endif #if defined(VERSION_JP) || defined(VERSION_US) s8 updatesPerFrame; - s32 reverbWindowSize; s32 k; - s16 *mem; s32 i; #endif #ifdef PUPPYPRINT @@ -1186,9 +1297,6 @@ void audio_reset_session(void) { #if defined(VERSION_JP) || defined(VERSION_US) s32 frames; s32 remainingDmas; -#ifdef BETTER_REVERB - s8 reverbConsole; -#endif #endif #ifdef VERSION_EU eu_stubbed_printf_1("Heap Reconstruct Start %x\n", gAudioResetPresetIdToLoad); @@ -1294,54 +1402,9 @@ void audio_reset_session(void) { gMaxAudioCmds = gMaxSimultaneousNotes * 0x10 * gAudioBufferParameters.updatesPerFrame + preset->numReverbs * 0x20 + 0x300; #endif #else - reverbWindowSize = preset->reverbWindowSize; gAiFrequency = osAiSetFrequency(preset->frequency); gMaxSimultaneousNotes = preset->maxSimultaneousNotes; gSamplesPerFrameTarget = ALIGN16(gAiFrequency / 60); - gReverbDownsampleRate = preset->reverbDownsampleRate; -#if defined(BETTER_REVERB) && (defined(VERSION_US) || defined(VERSION_JP)) - if (gIsConsole) - reverbConsole = betterReverbDownsampleConsole; // Console! - else - reverbConsole = betterReverbDownsampleEmulator; // Setting this to 1 is REALLY slow, please use sparingly! - - if (reverbConsole <= 0) { - reverbConsole = 1; - toggleBetterReverb = FALSE; - } - else { - toggleBetterReverb = TRUE; - } - - if (toggleBetterReverb && betterReverbWindowsSize >= 0) - reverbWindowSize = betterReverbWindowsSize; - - if (gReverbDownsampleRate < (1 << (reverbConsole - 1))) - gReverbDownsampleRate = (1 << (reverbConsole - 1)); - reverbWindowSize /= gReverbDownsampleRate; - if (reverbWindowSize < DEFAULT_LEN_2CH) // Minimum window size to not overflow - reverbWindowSize = DEFAULT_LEN_2CH; -#endif - - switch (gReverbDownsampleRate) { - case 1: - sReverbDownsampleRateLog = 0; - break; - case 2: - sReverbDownsampleRateLog = 1; - break; - case 4: - sReverbDownsampleRateLog = 2; - break; - case 8: - sReverbDownsampleRateLog = 3; - break; - case 16: - sReverbDownsampleRateLog = 4; - break; - default: - sReverbDownsampleRateLog = 0; - } gVolume = preset->volume; gMinAiBufferLength = gSamplesPerFrameTarget - 0x10; @@ -1416,56 +1479,8 @@ void audio_reset_session(void) { } init_reverb_eu(); - -#else - if (reverbWindowSize == 0) { - gSynthesisReverb.useReverb = 0; - } else { - gSynthesisReverb.useReverb = 8; - gSynthesisReverb.ringBuffer.left = soundAlloc(&gNotesAndBuffersPool, reverbWindowSize * 2); - gSynthesisReverb.ringBuffer.right = soundAlloc(&gNotesAndBuffersPool, reverbWindowSize * 2); - gSynthesisReverb.nextRingBufferPos = 0; - gSynthesisReverb.unkC = 0; - gSynthesisReverb.curFrame = 0; - gSynthesisReverb.bufSizePerChannel = reverbWindowSize; - gSynthesisReverb.reverbGain = preset->reverbGain; - gSynthesisReverb.framesLeftToIgnore = 2; - if (gReverbDownsampleRate != 1) { - gSynthesisReverb.resampleFlags = A_INIT; - gSynthesisReverb.resampleRate = 0x8000 / gReverbDownsampleRate; - gSynthesisReverb.resampleStateLeft = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); - gSynthesisReverb.resampleStateRight = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); - gSynthesisReverb.unk24 = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); - gSynthesisReverb.unk28 = soundAlloc(&gNotesAndBuffersPool, 16 * sizeof(s16)); - for (i = 0; i < gAudioUpdatesPerFrame; i++) { - mem = soundAlloc(&gNotesAndBuffersPool, DEFAULT_LEN_2CH); - gSynthesisReverb.items[0][i].toDownsampleLeft = mem; - gSynthesisReverb.items[0][i].toDownsampleRight = mem + DEFAULT_LEN_1CH / sizeof(s16); - mem = soundAlloc(&gNotesAndBuffersPool, DEFAULT_LEN_2CH); - gSynthesisReverb.items[1][i].toDownsampleLeft = mem; - gSynthesisReverb.items[1][i].toDownsampleRight = mem + DEFAULT_LEN_1CH / sizeof(s16); - } - } - - // This does not have to be reset after being initialized for the first time, which would speed up load times dramatically. - // However, reseting this allows for proper clearing of the reverb buffers, as well as dynamic customization of the delays array. -#if defined(BETTER_REVERB) && (defined(VERSION_US) || defined(VERSION_JP)) - if (toggleBetterReverb) { - for (i = 0; i < NUM_ALLPASS; ++i) { - delaysL[i] = delaysBaselineL[i] / gReverbDownsampleRate; - delaysR[i] = delaysBaselineR[i] / gReverbDownsampleRate; - } - - delayBufsL = (s32**) soundAlloc(&gAudioSessionPool, NUM_ALLPASS * sizeof(s32*)); - delayBufsR = (s32**) soundAlloc(&gAudioSessionPool, NUM_ALLPASS * sizeof(s32*)); - for (i = 0; i < NUM_ALLPASS; ++i) { - delayBufsL[i] = (s32*) soundAlloc(&gAudioSessionPool, delaysL[i] * sizeof(s32)); - delayBufsR[i] = (s32*) soundAlloc(&gAudioSessionPool, delaysR[i] * sizeof(s32)); - } - } -#endif - } #endif + init_reverb_us(presetId); init_sample_dma_buffers(gMaxSimultaneousNotes); diff --git a/src/audio/heap.h b/src/audio/heap.h index 4bc73bd3..e8c839b7 100644 --- a/src/audio/heap.h +++ b/src/audio/heap.h @@ -129,7 +129,7 @@ void *get_bank_or_seq(struct SoundMultiPool *arg0, s32 arg1, s32 id); s32 audio_shut_down_and_reset_step(void); void audio_reset_session(void); #else -void audio_reset_session(struct AudioSessionSettings *preset); +void audio_reset_session(struct AudioSessionSettings *preset, s32 presetId); #endif void discard_bank(s32 bankId); diff --git a/src/audio/internal.h b/src/audio/internal.h index 3956f69e..0a87205f 100644 --- a/src/audio/internal.h +++ b/src/audio/internal.h @@ -758,6 +758,12 @@ struct ReverbSettingsEU u16 gain; }; #else +struct ReverbSettingsUS +{ + u8 downsampleRate; + u16 windowSize; + u16 gain; +}; struct ReverbSettingsEU { u8 downsampleRate; // always 1 diff --git a/src/audio/load.c b/src/audio/load.c index 219a852d..3210b202 100644 --- a/src/audio/load.c +++ b/src/audio/load.c @@ -1051,7 +1051,7 @@ void audio_init() { gAudioResetStatus = 1; audio_shut_down_and_reset_step(); #else - audio_reset_session(&gAudioSessionPresets[0]); + audio_reset_session(&gAudioSessionPresets[0], 0); #endif // Not sure about these prints diff --git a/src/game/game_init.c b/src/game/game_init.c index 6d80cc18..1aae3323 100644 --- a/src/game/game_init.c +++ b/src/game/game_init.c @@ -795,8 +795,8 @@ void thread5_game_loop(UNUSED void *arg) { if (gPlayer1Controller->buttonPressed & L_TRIG) { - *(volatile int*) 0 = 0; - //set_background_music(SEQ_LEVEL_SLIDE, SEQUENCE_ARGS(0xFF, SEQ_LEVEL_SLIDE), 30); + //*(volatile int*) 0 = 0; + set_background_music(SEQ_MENU_FILE_SELECT, SEQUENCE_ARGS(0xFF, SEQ_MENU_FILE_SELECT), 30); } if (gPlayer1Controller->buttonPressed & R_TRIG) {