This commit is contained in:
Donkey Kong 2024-10-04 09:23:47 -05:00
parent 370cec66b4
commit 8ee38d4ea2
7 changed files with 95 additions and 23 deletions

View File

@ -2151,11 +2151,46 @@ typedef struct SoundState {
u8 pad45[0x48-0x45];
} SoundState;
typedef struct CustomResampler {
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
s32 unk10;
void* unk14;
f32 unk18;
s32 unk1C;
f32 unk20;
s32 unk24;
void* unk28;
s16 unk2C;
s16 unk2E;
s16 unk30;
s16 unk32;
} CustomResampler;
typedef struct CustomPVoice {
ALLink node;
u8 pad8[0x2C - 0x8];
ALResampler resampler;
u8 pad60[0x88 - 0x60];
u8 pad8[4];
void* unkC;
void* unk10;
u8 pad14[0x28 - 0x14];
s32 unk28;
CustomResampler resampler;
s16 unk60;
s16 unk62;
s16 unk64;
s16 unk66;
s16 unk68;
s16 unk6A;
s16 unk6C;
s16 unk6E;
s32 unk70;
s32 unk74;
s32 unk78;
s32 unk7C;
s32 unk80;
s32 unk84;
s32 unk88;
u8 unk8C;
u8 pad8D[0x90 - 0x8D];

View File

@ -1761,7 +1761,7 @@ us,asm,func_global_asm_8064BCB0,124,yes
us,asm,func_global_asm_80738D20,312,yes
us,asm,func_global_asm_8066B0EC,12,yes
us,asm,func_global_asm_806EBCF0,188,yes
us,asm,func_global_asm_8073C604,540,no
us,asm,func_global_asm_8073C604,532,yes
us,asm,func_global_asm_8070CAB4,120,yes
us,asm,func_global_asm_806115A8,108,no
us,asm,func_global_asm_8065D0FC,116,yes

1 version section function length matching
1761 us asm func_global_asm_80738D20 312 yes
1762 us asm func_global_asm_8066B0EC 12 yes
1763 us asm func_global_asm_806EBCF0 188 yes
1764 us asm func_global_asm_8073C604 540 532 no yes
1765 us asm func_global_asm_8070CAB4 120 yes
1766 us asm func_global_asm_806115A8 108 no
1767 us asm func_global_asm_8065D0FC 116 yes

View File

@ -1761,7 +1761,7 @@ us,asm,func_global_asm_8064BCB0,124,yes
us,asm,func_global_asm_80738D20,312,yes
us,asm,func_global_asm_8066B0EC,12,yes
us,asm,func_global_asm_806EBCF0,188,yes
us,asm,func_global_asm_8073C604,540,no
us,asm,func_global_asm_8073C604,532,yes
us,asm,func_global_asm_8070CAB4,120,yes
us,asm,func_global_asm_806115A8,108,no
us,asm,func_global_asm_8065D0FC,116,yes

1 version section function length matching
1761 us asm func_global_asm_80738D20 312 yes
1762 us asm func_global_asm_8066B0EC 12 yes
1763 us asm func_global_asm_806EBCF0 188 yes
1764 us asm func_global_asm_8073C604 540 532 no yes
1765 us asm func_global_asm_8070CAB4 120 yes
1766 us asm func_global_asm_806115A8 108 no
1767 us asm func_global_asm_8065D0FC 116 yes

View File

@ -9,7 +9,7 @@
</mask>
<g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h77v20H0z"/>
<path fill="#c09300" d="M77 0h67v20H77z"/>
<path fill="#c09400" d="M77 0h67v20H77z"/>
<path fill="url(#b)" d="M0 0h144v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -17,7 +17,7 @@
<text x="38.5" y="14">global_asm</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">38.3757%</text>
<text x="110.5" y="14">38.3757%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">38.4196%</text>
<text x="110.5" y="14">38.4196%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -17,7 +17,7 @@
<text x="66.0" y="14">Donkey Kong 64 (US)</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">40.9450%</text>
<text x="165.5" y="14">40.9450%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">40.9778%</text>
<text x="165.5" y="14">40.9778%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -107,7 +107,7 @@ void func_global_asm_8073BE54(Struct8073BC74 *arg0, f32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/audio/code_140600/func_global_asm_8073C040.s")
s16 *func_global_asm_80732444(s32, s32, s32, u8, s32);
s32 func_global_asm_80732444(s32, s32, ALHeap *, s32, s32);
extern s32 D_global_asm_80756458[];
typedef struct {
@ -259,4 +259,41 @@ void func_global_asm_8073C040(s16 **arg0, Struct8073C040_arg1 *arg1, s16 arg2, s
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/audio/code_140600/func_global_asm_8073C604.s")
void func_global_asm_8073C604(CustomPVoice *arg0, s32 (*arg1)(CustomResampler *), ALHeap *arg2) {
arg0->unkC = func_global_asm_80732444(0, 0, arg2, 1, 0x20);
arg0->unk10 = func_global_asm_80732444(0, 0, arg2, 1, 0x20);
arg0->unk28 = arg1(&arg0->resampler);
arg0->resampler.unk8 = 0;
arg0->resampler.unkC = 1;
arg0->resampler.unk10 = 0;
arg0->resampler.unk14 = func_global_asm_80732444(0, 0, arg2, 1, 0x20);
arg0->resampler.unk20 = 0.0f;
arg0->resampler.unk24 = 1;
arg0->resampler.unk18 = 1.0f;
arg0->resampler.unk1C = 0;
arg0->resampler.unk28 = func_global_asm_80732444(0, 0, arg2, 1, 0x50);
arg0->unk78 = 1;
arg0->unk84 = 0;
arg0->resampler.unk2E = 1;
arg0->unk68 = 1;
arg0->unk6E = 1;
arg0->resampler.unk30 = 1;
arg0->resampler.unk32 = 1;
arg0->unk60 = 0;
arg0->unk62 = 0;
arg0->unk66 = 1;
arg0->unk64 = 0;
arg0->unk66 = 1;
arg0->unk64 = 0;
arg0->unk70 = 0;
arg0->unk74 = 0;
arg0->resampler.unk2C = 0;
arg0->unk7C = 0;
arg0->unk80 = 0;
arg0->unk8C = 0;
arg0->unk92 = 0;
arg0->unk90 = 0;
arg0->unkBC = func_global_asm_80732444(0, 0, arg2, 1, 8);
arg0->unkB8 = 0;
}

View File

@ -17,27 +17,27 @@ void *func_global_asm_80741070(CustomPVoice *arg0, s16 *arg1, Acmd *arg2) {
sp34 = arg2;
sp32 = 0x170;
if (arg0->resampler.upitch != 0) {
if (arg0->resampler.unk1C != 0) {
sp34 = func_global_asm_80740100(arg0, &sp32, 0xB8, arg2);
sp20 = sp34++;
sp20->words.w0 = (sp32 & 0xFFFFFF) | 0x0A000000;
sp20->words.w1 = ((*arg1 & 0xFFFF) << 0x10) | 0x170;
if (1) {}
} else {
if (arg0->resampler.ratio > D_global_asm_80760580) {
arg0->resampler.ratio = D_global_asm_80760588;
if (arg0->resampler.unk18 > D_global_asm_80760580) {
arg0->resampler.unk18 = D_global_asm_80760588;
}
arg0->resampler.ratio = (s32) (arg0->resampler.ratio * 32768.0f);
arg0->resampler.ratio /= 32768.0f;
sp24 = arg0->resampler.delta + (arg0->resampler.ratio * 184.0f);
arg0->resampler.unk18 = (s32) (arg0->resampler.unk18 * 32768.0f);
arg0->resampler.unk18 /= 32768.0f;
sp24 = arg0->resampler.unk20 + (arg0->resampler.unk18 * 184.0f);
sp2C = (s32) sp24;
arg0->resampler.delta = sp24 - sp2C;
arg0->resampler.unk20 = sp24 - sp2C;
sp34 = func_global_asm_80740100(arg0, &sp32, sp2C, arg2);
sp28 = arg0->resampler.ratio * 32768.0f;
sp28 = arg0->resampler.unk18 * 32768.0f;
sp1C = sp34++;
sp1C->words.w0 = (osVirtualToPhysical(arg0->resampler.state) & 0xFFFFFF) | 0x05000000;
sp1C->words.w1 = ((arg0->resampler.first & 3) << 0x1E) | ((sp28 & 0xFFFF) << 0xE) | ((sp32 & 0xFFF) * 4);
arg0->resampler.first = 0;
sp1C->words.w0 = (osVirtualToPhysical(arg0->resampler.unk14) & 0xFFFFFF) | 0x05000000;
sp1C->words.w1 = ((arg0->resampler.unk24 & 3) << 0x1E) | ((sp28 & 0xFFFF) << 0xE) | ((sp32 & 0xFFF) * 4);
arg0->resampler.unk24 = 0;
}
return sp34;
}