1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 06:54:33 +00:00

Fix non-matching in audio_heap (#640)

Co-authored-by: zelda2774 <zelda2774@invalid>
This commit is contained in:
zelda2774 2021-01-18 03:31:47 +01:00 committed by GitHub
parent 02994f5339
commit 20206fba0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 626 deletions

View file

@ -776,22 +776,19 @@ s32 Audio_ResetStep(void) {
return 1;
}
#ifdef NON_EQUIVALENT
// first half matches, reorderings and regalloc in second half
void func_800DFBF8(void) {
s32 pad[6];
s32 i;
s32 j;
s32 pad1[4];
s16* mem;
u16 windowSize;
s32 persistentMem;
s32 temporaryMem;
s32 totalMem;
AudioSessionSettings* preset;
s32 wantMisc;
u32 intMask;
s32 i;
s32 j;
s32 pad2;
AudioSessionSettings* preset = &gAudioSessionPresets[gAudioContext.gAudioResetPresetIdToLoad];
preset = &gAudioSessionPresets[gAudioContext.gAudioResetPresetIdToLoad];
gAudioContext.gSampleDmaNumListItems = 0;
gAudioContext.gAudioBufferParameters.frequency = preset->frequency;
gAudioContext.gAudioBufferParameters.aiFrequency = osAiSetFrequency(gAudioContext.gAudioBufferParameters.frequency);
@ -894,8 +891,8 @@ void func_800DFBF8(void) {
gAudioContext.gNumSynthesisReverbs = preset->numReverbs;
for (i = 0; i < gAudioContext.gNumSynthesisReverbs; i++) {
SynthesisReverb* reverb = &gAudioContext.gSynthesisReverbs[i];
ReverbSettings* settings = &preset->reverbSettings[i];
SynthesisReverb* reverb = &gAudioContext.gSynthesisReverbs[i];
reverb->downsampleRate = settings->downsampleRate;
reverb->windowSize = settings->windowSize * 64;
reverb->windowSize /= reverb->downsampleRate;
@ -914,19 +911,19 @@ void func_800DFBF8(void) {
reverb->unk_1C = 0;
reverb->unk_20 = 0;
reverb->unk_03 = 0;
reverb->unk_24 = reverb->windowSize;
reverb->unk_02 = 2;
reverb->unk_00 = 1;
reverb->unk_24 = reverb->windowSize;
reverb->sound.sample = &reverb->sample;
reverb->sample.loop = &reverb->loop;
reverb->sound.tuning = 1.0f;
reverb->sample.bits4 = 4;
reverb->sample.bits2 = 0;
reverb->sample.bits24 = reverb->windowSize * 2;
reverb->sample.sampleAddr = (u8*)reverb->unk_28;
reverb->loop.start = 0;
reverb->loop.count = 1;
reverb->loop.end = reverb->windowSize;
reverb->sound.tuning = 1.0f;
reverb->sample.sampleAddr = (u8*)reverb->unk_28;
if (reverb->downsampleRate != 1) {
reverb->unk_0E = 0x8000 / reverb->downsampleRate;
@ -934,7 +931,6 @@ void func_800DFBF8(void) {
reverb->unk_34 = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20);
reverb->unk_38 = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20);
reverb->unk_3C = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20);
reverb = reverb;
for (j = 0; j < gAudioContext.gAudioBufferParameters.updatesPerFrame; j++) {
mem = func_800DE258(&gAudioContext.gNotesAndBuffersPool, 0x340);
reverb->items[0][j].toDownsampleLeft = mem;
@ -963,9 +959,9 @@ void func_800DFBF8(void) {
}
Audio_InitSequencePlayers();
for (i = 0; i < gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) {
func_800EC734(i);
Audio_ResetSequencePlayer(&gAudioContext.gSequencePlayers[i]);
for (j = 0; j < gAudioContext.gAudioBufferParameters.numSequencePlayers; j++) {
func_800EC734(j);
Audio_ResetSequencePlayer(&gAudioContext.gSequencePlayers[j]);
}
func_800E0634(preset->unk_30, preset->unk_34);
@ -980,9 +976,6 @@ void func_800DFBF8(void) {
osWritebackDCacheAll();
osSetIntMask(intMask);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DFBF8.s")
#endif
void* func_800E04E8(s32 poolIdx, s32 id) {
s32 i;