port: add mp3 decoding via lieff/minimp3
This commit is contained in:
parent
afae1a3aae
commit
2d6e6c887e
File diff suppressed because it is too large
Load Diff
|
|
@ -34,7 +34,7 @@ void aEnvMixerImpl(uint8_t flags, ENVMIX_STATE state, int16_t some_vol);
|
|||
void aSetVolumeImpl(uint8_t flags, int16_t v, int16_t t, int16_t r);
|
||||
void aPoleFilterImpl(uint8_t flags, int16_t gain, uint32_t t, uint32_t addr);
|
||||
void aDisableImpl(uint16_t outp, uint32_t b, uint32_t c);
|
||||
void aPlayMP3Impl(uint32_t a, const void *b);
|
||||
void aPlayMP3Impl(const void *mp3file, u32 mp3size, void *out);
|
||||
|
||||
#define aDisable(pkt, o, b, c) aDisableImpl(o, b, c)
|
||||
#define aClearBuffer(pkt, d, c) aClearBufferImpl(d, c)
|
||||
|
|
@ -50,6 +50,6 @@ void aPlayMP3Impl(uint32_t a, const void *b);
|
|||
#define aEnvMixer(pkt, f, t, s) aEnvMixerImpl(f, s, t)
|
||||
#define aSetVolume(pkt, f, v, t, r) aSetVolumeImpl(f, v, t, r)
|
||||
#define aPoleFilter(pkt, f, g, t, s) aPoleFilterImpl(f, g, t, s)
|
||||
#define aPlayMP3(pkt, a, b) aPlayMP3Impl(a, b)
|
||||
#define aPlayMP3(pkt, a, b, c) aPlayMP3Impl(a, b, c)
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "mixer.h"
|
||||
#include "platform.h"
|
||||
|
||||
#define MINIMP3_IMPLEMENTATION
|
||||
#include "minimp3.h"
|
||||
|
||||
#ifdef __SSE4_1__
|
||||
#include <immintrin.h>
|
||||
#define HAS_SSE41 1
|
||||
|
|
@ -671,8 +675,36 @@ void aSetVolumeImpl(uint8_t flags, int16_t v, int16_t t, int16_t r) {
|
|||
}
|
||||
}
|
||||
|
||||
void aPlayMP3Impl(uint32_t a, const void *b) {
|
||||
// TODO: maybe just hook this up to libmpg123 or something
|
||||
void aPlayMP3Impl(const void *mp3file, u32 mp3size, void *out) {
|
||||
static mp3dec_t mp3d;
|
||||
static const u8 *curdata = NULL; // pointer to the mp3 we're currently processing
|
||||
static s32 dataptr = 0; // byte index into curdata
|
||||
|
||||
if (mp3file != curdata) {
|
||||
// new mp3, reinit decoder
|
||||
mp3dec_init(&mp3d);
|
||||
curdata = mp3file;
|
||||
dataptr = 0;
|
||||
}
|
||||
|
||||
// this command is supposed to write one full frame to out
|
||||
// but which frame? we'll just decode sequentially, it'll probably work
|
||||
if (dataptr < mp3size) {
|
||||
// FIXME: decoding straight to out might bite us in the ass because it's only 1160 bytes
|
||||
mp3dec_frame_info_t info;
|
||||
const s32 samples = mp3dec_decode_frame(&mp3d, curdata + dataptr, mp3size - dataptr, out, &info);
|
||||
// fill in the rest of the buffer if frame is smaller
|
||||
const s32 diff = 580 - samples;
|
||||
if (diff > 0) {
|
||||
memset((s16 *)out + samples, 0, diff * 2);
|
||||
} else {
|
||||
assert(diff == 0);
|
||||
}
|
||||
dataptr += info.frame_bytes;
|
||||
} else {
|
||||
// empty frame
|
||||
memset(out, 0, 580 * 2);
|
||||
}
|
||||
}
|
||||
|
||||
void aPoleFilterImpl(uint8_t flags, int16_t gain, uint32_t t, uint32_t addr) {
|
||||
|
|
|
|||
|
|
@ -5903,7 +5903,11 @@ struct mp3thing {
|
|||
};
|
||||
|
||||
struct mp3vars {
|
||||
#ifdef PLATFORM_N64
|
||||
/*0x00*/ s32 romaddr;
|
||||
#else
|
||||
/*0x00*/ uintptr_t romaddr;
|
||||
#endif
|
||||
/*0x04*/ struct asistream *var8009c394;
|
||||
/*0x08*/ u8 *var8009c398;
|
||||
/*0x0c*/ s16 var8009c39c;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
#include "mixer.h"
|
||||
|
||||
#define acmd07(pkt, a, b) aPlayMP3(pkt, a, b)
|
||||
#define acmd07(pkt, a, b, c) aPlayMP3(pkt, a, b, c)
|
||||
#define acmd08(pkt, a) do { } while(0)
|
||||
|
||||
#endif
|
||||
|
|
@ -247,7 +247,12 @@ s32 func00037fc0(s32 arg0, Acmd **cmd)
|
|||
|
||||
for (i = 0; i < sp5c; i++) {
|
||||
acmd08((*cmd)++, osVirtualToPhysical(g_Mp3Vars.var8009c3d4[i]));
|
||||
#ifdef PLATFORM_N64
|
||||
acmd07((*cmd)++, g_Mp3Vars.var8009c3d8, osVirtualToPhysical(sp58));
|
||||
#else
|
||||
// hijack the command to pass the entirety of the mp3 data to the mixer
|
||||
acmd07((*cmd)++, g_Mp3Vars.romaddr, g_Mp3Vars.filesize, osVirtualToPhysical(sp58));
|
||||
#endif
|
||||
|
||||
sp58++;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,308 +192,10 @@ s32 mp3util000464a8(u8 *arg0, s32 *arg1, s32 arg2, s32 arg3, s32 arg4, s16 **arg
|
|||
|
||||
void func00046650(struct asistream_4f64 *arg0, s32 arg1, struct asistream_4f64 *arg2, struct asistream_4f64 *arg3, void *arg4)
|
||||
{
|
||||
f32 fVar1;
|
||||
f32 fVar2;
|
||||
f32 fVar3;
|
||||
f32 fVar4;
|
||||
f32 fVar5;
|
||||
f32 fVar6;
|
||||
f32 fVar7;
|
||||
f32 fVar8;
|
||||
f32 fVar9;
|
||||
f32 fVar10;
|
||||
f32 fVar11;
|
||||
f32 fVar12;
|
||||
f32 fVar13;
|
||||
f32 fVar14;
|
||||
f32 fVar15;
|
||||
f32 fVar16;
|
||||
f32 fVar17;
|
||||
f32 fVar18;
|
||||
f32 fVar19;
|
||||
f32 fVar20;
|
||||
f32 fVar21;
|
||||
f32 fVar22;
|
||||
f32 fVar23;
|
||||
f32 fVar24;
|
||||
f32 fVar25;
|
||||
f32 fVar26;
|
||||
f32 fVar27;
|
||||
|
||||
// TODO: can't be arsed to figure out proper types for now
|
||||
|
||||
f32 *param1 = (f32 *)arg0;
|
||||
f32 *param3 = (f32 *)arg2;
|
||||
f32 *param4 = (f32 *)arg3;
|
||||
f32 *param5 = (f32 *)arg4;
|
||||
|
||||
fVar17 = param1[0x10];
|
||||
param1[0x10] = param1[0xf] + fVar17;
|
||||
param1[0x11] = fVar17 + param1[0x11];
|
||||
fVar17 = param1[0xe];
|
||||
param1[0xe] = param1[0xd] + fVar17;
|
||||
param1[0xf] = fVar17 + param1[0xf];
|
||||
fVar17 = param1[0xc];
|
||||
param1[0xc] = param1[0xb] + fVar17;
|
||||
param1[0xd] = fVar17 + param1[0xd];
|
||||
fVar17 = param1[10];
|
||||
param1[10] = param1[9] + fVar17;
|
||||
param1[0xb] = fVar17 + param1[0xb];
|
||||
fVar17 = param1[8];
|
||||
param1[8] = param1[7] + fVar17;
|
||||
param1[9] = fVar17 + param1[9];
|
||||
fVar17 = param1[6];
|
||||
param1[6] = param1[5] + fVar17;
|
||||
param1[7] = fVar17 + param1[7];
|
||||
fVar17 = param1[4];
|
||||
param1[4] = param1[3] + fVar17;
|
||||
param1[5] = fVar17 + param1[5];
|
||||
fVar17 = param1[2];
|
||||
param1[2] = param1[1] + fVar17;
|
||||
param1[3] = fVar17 + param1[3];
|
||||
param1[1] = *param1 + param1[1];
|
||||
fVar17 = param1[0xf];
|
||||
param1[0xf] = param1[0xd] + fVar17;
|
||||
param1[0x11] = fVar17 + param1[0x11];
|
||||
fVar17 = param1[0xb];
|
||||
param1[0xb] = param1[9] + fVar17;
|
||||
param1[0xd] = fVar17 + param1[0xd];
|
||||
fVar17 = param1[7];
|
||||
param1[7] = param1[5] + fVar17;
|
||||
param1[9] = fVar17 + param1[9];
|
||||
fVar17 = param1[3];
|
||||
param1[3] = param1[1] + fVar17;
|
||||
param1[5] = fVar17 + param1[5];
|
||||
fVar1 = *param1 + *param1;
|
||||
fVar17 = fVar1 + param1[0xc];
|
||||
fVar6 = param1[4] * 1.879385 + param1[8] * 1.532089 + param1[0x10] * 0.3472964 + fVar17;
|
||||
fVar7 = param1[4] * -0.3472964 + param1[8] * -1.879385 + param1[0x10] * 1.532089 + fVar17;
|
||||
fVar17 = param1[4] * -1.532089 + param1[8] * 0.3472964 + param1[0x10] * -1.879385 + fVar17;
|
||||
fVar18 = param1[0xc];
|
||||
fVar2 = ((((fVar1 + param1[4]) - param1[8]) - fVar18) - fVar18) - param1[0x10];
|
||||
fVar3 = (((*param1 - param1[4]) + param1[8]) - fVar18) + param1[0x10];
|
||||
fVar8 = param1[2] * 1.969615 + param1[10] * 1.285575 + param1[0xe] * 0.6840403 +
|
||||
param1[6] * 1.732051;
|
||||
fVar1 = -(param1[6] * 1.732051);
|
||||
fVar9 = param1[2] * 1.285575 + param1[10] * -0.6840403 + param1[0xe] * 1.969615 + fVar1;
|
||||
fVar1 = param1[2] * 0.6840403 + param1[10] * 1.969615 + param1[0xe] * -1.285575 + fVar1;
|
||||
fVar10 = ((param1[2] - param1[10]) - param1[0xe]) * 1.732051;
|
||||
fVar4 = param1[1] + param1[1];
|
||||
fVar18 = fVar4 + param1[0xd];
|
||||
fVar11 = param1[5] * 1.879385 + param1[9] * 1.532089 + param1[0x11] * 0.3472964 + fVar18;
|
||||
fVar12 = param1[5] * -0.3472964 + param1[9] * -1.879385 + param1[0x11] * 1.532089 + fVar18;
|
||||
fVar18 = param1[5] * -1.532089 + param1[9] * 0.3472964 + param1[0x11] * -1.879385 + fVar18;
|
||||
fVar19 = param1[0xd];
|
||||
fVar5 = ((((fVar4 + param1[5]) - param1[9]) - fVar19) - fVar19) - param1[0x11];
|
||||
fVar13 = param1[3] * 1.969615 + param1[0xb] * 1.285575 + param1[0xf] * 0.6840403 +
|
||||
param1[7] * 1.732051;
|
||||
fVar4 = -(param1[7] * 1.732051);
|
||||
fVar14 = param1[3] * 1.285575 + param1[0xb] * -0.6840403 + param1[0xf] * 1.969615 + fVar4;
|
||||
fVar4 = param1[3] * 0.6840403 + param1[0xb] * 1.969615 + param1[0xf] * -1.285575 + fVar4;
|
||||
fVar15 = ((param1[3] - param1[0xb]) - param1[0xf]) * 1.732051;
|
||||
fVar16 = fVar6 + fVar8;
|
||||
fVar20 = (fVar11 + fVar13) * 0.5019099;
|
||||
fVar24 = (fVar16 + fVar20) * -0.2502382;
|
||||
fVar16 = (fVar16 - fVar20) * -5.731396;
|
||||
fVar20 = fVar2 + fVar10;
|
||||
fVar21 = (fVar5 + fVar15) * 0.5176381;
|
||||
fVar25 = (fVar20 + fVar21) * -0.2521572;
|
||||
fVar20 = (fVar20 - fVar21) * -1.915324;
|
||||
fVar21 = fVar7 + fVar9;
|
||||
fVar22 = (fVar12 + fVar14) * 0.551689;
|
||||
fVar26 = (fVar21 + fVar22) * -0.2560699;
|
||||
fVar21 = (fVar21 - fVar22) * -1.155057;
|
||||
fVar22 = fVar17 + fVar1;
|
||||
fVar23 = (fVar18 + fVar4) * 0.6103873;
|
||||
fVar27 = (fVar22 + fVar23) * -0.2621323;
|
||||
fVar22 = (fVar22 - fVar23) * -0.8313774;
|
||||
fVar17 = fVar17 - fVar1;
|
||||
fVar1 = (fVar18 - fVar4) * 0.8717234;
|
||||
fVar23 = (fVar17 + fVar1) * -0.2818455;
|
||||
fVar17 = (fVar17 - fVar1) * -0.5414202;
|
||||
fVar7 = fVar7 - fVar9;
|
||||
fVar1 = (fVar12 - fVar14) * 1.183101;
|
||||
fVar9 = (fVar7 + fVar1) * -0.2964223;
|
||||
fVar1 = (fVar7 - fVar1) * -0.4652897;
|
||||
fVar2 = fVar2 - fVar10;
|
||||
fVar18 = (fVar5 - fVar15) * 1.931852;
|
||||
fVar10 = (fVar2 + fVar18) * -0.3151181;
|
||||
fVar18 = (fVar2 - fVar18) * -0.4106699;
|
||||
fVar6 = fVar6 - fVar8;
|
||||
fVar4 = (fVar11 - fVar13) * 5.736856;
|
||||
fVar8 = (fVar6 + fVar4) * -0.3390854;
|
||||
fVar4 = (fVar6 - fVar4) * -0.3700468;
|
||||
fVar2 = ((((param1[1] - param1[5]) + param1[9]) - fVar19) + param1[0x11]) * 0.7071068;
|
||||
fVar5 = (fVar3 + fVar2) * -0.5411961;
|
||||
fVar2 = (fVar3 - fVar2) * -1.306563;
|
||||
if ((arg1 & 1) == 0) {
|
||||
*param3 = -fVar4 * *param5 + *param4;
|
||||
param3[1] = -fVar18 * param5[1] + param4[1];
|
||||
param3[2] = -fVar1 * param5[2] + param4[2];
|
||||
param3[3] = -fVar17 * param5[3] + param4[3];
|
||||
param3[4] = -fVar2 * param5[4] + param4[4];
|
||||
param3[5] = -fVar22 * param5[5] + param4[5];
|
||||
param3[6] = -fVar21 * param5[6] + param4[6];
|
||||
param3[7] = -fVar20 * param5[7] + param4[7];
|
||||
param3[8] = -fVar16 * param5[8] + param4[8];
|
||||
param3[9] = fVar16 * param5[9] + param4[9];
|
||||
param3[10] = fVar20 * param5[10] + param4[10];
|
||||
param3[0xb] = fVar21 * param5[0xb] + param4[0xb];
|
||||
param3[0xc] = fVar22 * param5[0xc] + param4[0xc];
|
||||
param3[0xd] = fVar2 * param5[0xd] + param4[0xd];
|
||||
param3[0xe] = fVar17 * param5[0xe] + param4[0xe];
|
||||
param3[0xf] = fVar1 * param5[0xf] + param4[0xf];
|
||||
param3[0x10] = fVar18 * param5[0x10] + param4[0x10];
|
||||
param3[0x11] = fVar4 * param5[0x11] + param4[0x11];
|
||||
} else {
|
||||
*param3 = -fVar4 * *param5 + *param4;
|
||||
param3[1] = fVar18 * param5[1] - param4[1];
|
||||
param3[2] = -fVar1 * param5[2] + param4[2];
|
||||
param3[3] = fVar17 * param5[3] - param4[3];
|
||||
param3[4] = -fVar2 * param5[4] + param4[4];
|
||||
param3[5] = fVar22 * param5[5] - param4[5];
|
||||
param3[6] = -fVar21 * param5[6] + param4[6];
|
||||
param3[7] = fVar20 * param5[7] - param4[7];
|
||||
param3[8] = -fVar16 * param5[8] + param4[8];
|
||||
param3[9] = -fVar16 * param5[9] - param4[9];
|
||||
param3[10] = fVar20 * param5[10] + param4[10];
|
||||
param3[0xb] = -fVar21 * param5[0xb] - param4[0xb];
|
||||
param3[0xc] = fVar22 * param5[0xc] + param4[0xc];
|
||||
param3[0xd] = -fVar2 * param5[0xd] - param4[0xd];
|
||||
param3[0xe] = fVar17 * param5[0xe] + param4[0xe];
|
||||
param3[0xf] = -fVar1 * param5[0xf] - param4[0xf];
|
||||
param3[0x10] = fVar18 * param5[0x10] + param4[0x10];
|
||||
param3[0x11] = -fVar4 * param5[0x11] - param4[0x11];
|
||||
}
|
||||
fVar17 = param5[0x13];
|
||||
*param4 = fVar8 * param5[0x12];
|
||||
param4[1] = fVar10 * fVar17;
|
||||
fVar17 = param5[0x15];
|
||||
param4[2] = fVar9 * param5[0x14];
|
||||
param4[3] = fVar23 * fVar17;
|
||||
fVar17 = param5[0x17];
|
||||
param4[4] = fVar5 * param5[0x16];
|
||||
param4[5] = fVar27 * fVar17;
|
||||
fVar17 = param5[0x19];
|
||||
param4[6] = fVar26 * param5[0x18];
|
||||
param4[7] = fVar25 * fVar17;
|
||||
fVar17 = param5[0x1b];
|
||||
param4[8] = fVar24 * param5[0x1a];
|
||||
param4[9] = fVar24 * fVar17;
|
||||
fVar17 = param5[0x1d];
|
||||
param4[10] = fVar25 * param5[0x1c];
|
||||
param4[0xb] = fVar26 * fVar17;
|
||||
fVar17 = param5[0x1f];
|
||||
param4[0xc] = fVar27 * param5[0x1e];
|
||||
param4[0xd] = fVar5 * fVar17;
|
||||
fVar17 = param5[0x21];
|
||||
param4[0xe] = fVar23 * param5[0x20];
|
||||
param4[0xf] = fVar9 * fVar17;
|
||||
fVar17 = param5[0x23];
|
||||
param4[0x10] = fVar10 * param5[0x22];
|
||||
param4[0x11] = fVar8 * fVar17;
|
||||
}
|
||||
|
||||
void func00047550(struct asistream_4f64 *arg0, s32 arg1, struct asistream_4f64 *arg2, struct asistream_4f64 *arg3)
|
||||
{
|
||||
f32 *pfVar1;
|
||||
f32 *pfVar2;
|
||||
s32 iVar3;
|
||||
f32 fVar4;
|
||||
f32 fVar5;
|
||||
f32 fVar6;
|
||||
f32 fVar7;
|
||||
f32 fVar8;
|
||||
f32 fVar9;
|
||||
f32 fVar10;
|
||||
f32 fVar11;
|
||||
f32 fVar12;
|
||||
f32 locald0[52];
|
||||
|
||||
// TODO: can't be arsed to figure out proper types
|
||||
f32 *param1 = (f32 *)arg0;
|
||||
f32 *param3 = (f32 *)arg2;
|
||||
f32 *param4 = (f32 *)arg3;
|
||||
|
||||
pfVar1 = locald0;
|
||||
for (s32 i = 0; i < ARRAYCOUNT(locald0); i += 4) {
|
||||
pfVar1[0] = 0.0;
|
||||
pfVar1[1] = 0.0;
|
||||
pfVar1[2] = 0.0;
|
||||
pfVar1[3] = 0.0;
|
||||
pfVar1 = pfVar1 + 4;
|
||||
}
|
||||
pfVar2 = locald0 + 0x10;
|
||||
iVar3 = 3;
|
||||
pfVar1 = pfVar2;
|
||||
do {
|
||||
param1[5] = param1[5] + param1[4];
|
||||
param1[4] = param1[4] + param1[3];
|
||||
param1[3] = param1[3] + param1[2];
|
||||
param1[2] = param1[2] + param1[1];
|
||||
param1[1] = param1[1] + *param1;
|
||||
param1[5] = param1[5] + param1[3];
|
||||
param1[3] = param1[3] + param1[1];
|
||||
fVar11 = *param1 + param1[4] * 0.5;
|
||||
fVar4 = *param1 - param1[4];
|
||||
fVar5 = fVar11 + param1[2] * 0.8660254;
|
||||
fVar11 = fVar11 - param1[2] * 0.8660254;
|
||||
fVar12 = param1[1] + param1[5] * 0.5;
|
||||
fVar6 = (fVar12 - param1[3] * 0.8660254) * 1.931852;
|
||||
fVar9 = (param1[1] - param1[5]) * 0.7071068;
|
||||
fVar12 = (fVar12 + param1[3] * 0.8660254) * 0.5176381;
|
||||
fVar7 = (fVar5 + fVar12) * 0.5043145;
|
||||
fVar10 = (fVar4 + fVar9) * 0.5411961;
|
||||
fVar8 = (fVar11 + fVar6) * 0.6302362;
|
||||
fVar4 = (fVar4 - fVar9) * 1.306563;
|
||||
fVar12 = (fVar5 - fVar12) * 3.830649;
|
||||
fVar5 = (fVar11 - fVar6) * 0.8213398 * 1.0;
|
||||
pfVar1[6] = pfVar1[6] + fVar5 * 0.1305262;
|
||||
pfVar1[7] = pfVar1[7] + fVar4 * 0.3826834;
|
||||
pfVar1[8] = pfVar1[8] + fVar12 * 0.6087614;
|
||||
pfVar1[9] = pfVar1[9] + fVar12 * -0.7933533;
|
||||
pfVar1[10] = pfVar1[10] + fVar4 * -0.9238795;
|
||||
pfVar1[0xb] = pfVar1[0xb] + fVar5 * -0.9914449;
|
||||
pfVar1[0xc] = pfVar1[0xc] + fVar8 * -0.9914449;
|
||||
pfVar1[0xd] = pfVar1[0xd] + fVar10 * -0.9238795;
|
||||
pfVar1[0xe] = pfVar1[0xe] + fVar7 * -0.7933533;
|
||||
pfVar1[0xf] = pfVar1[0xf] + fVar7 * -0.6087614;
|
||||
pfVar1[0x10] = pfVar1[0x10] + fVar10 * -0.3826834;
|
||||
pfVar1[0x11] = pfVar1[0x11] + fVar8 * -0.1305262;
|
||||
param1 = param1 + 6;
|
||||
pfVar1 = pfVar1 + 6;
|
||||
iVar3 = iVar3 + -1;
|
||||
} while (iVar3 != 0);
|
||||
if ((arg1 & 1) == 0) {
|
||||
iVar3 = 0x12;
|
||||
pfVar1 = param4;
|
||||
do {
|
||||
*param3 = *pfVar2 + *pfVar1;
|
||||
param3 = param3 + 1;
|
||||
pfVar1 = pfVar1 + 1;
|
||||
pfVar2 = pfVar2 + 1;
|
||||
iVar3 = iVar3 + -1;
|
||||
} while (iVar3 != 0);
|
||||
} else {
|
||||
iVar3 = 9;
|
||||
pfVar1 = param4;
|
||||
do {
|
||||
fVar4 = pfVar2[1];
|
||||
fVar5 = pfVar1[1];
|
||||
*param3 = *pfVar2 + *pfVar1;
|
||||
param3[1] = -fVar4 - fVar5;
|
||||
param3 = param3 + 2;
|
||||
pfVar1 = pfVar1 + 2;
|
||||
pfVar2 = pfVar2 + 2;
|
||||
iVar3 = iVar3 + -1;
|
||||
} while (iVar3 != 0);
|
||||
}
|
||||
pfVar1 = locald0 + 0x22;
|
||||
iVar3 = 0x12;
|
||||
do {
|
||||
*param4 = *pfVar1;
|
||||
param4 = param4 + 1;
|
||||
pfVar1 = pfVar1 + 1;
|
||||
iVar3 = iVar3 + -1;
|
||||
} while (iVar3 != 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,11 @@ struct curmp3 {
|
|||
s32 prevwhisper;
|
||||
s32 prevacknowledge;
|
||||
s32 prevgreeting;
|
||||
#ifdef PLATFORM_N64
|
||||
u32 romaddr;
|
||||
#else
|
||||
uintptr_t romaddr;
|
||||
#endif
|
||||
u32 romsize;
|
||||
s32 responsetype;
|
||||
};
|
||||
|
|
@ -1463,11 +1467,7 @@ void sndInit(void)
|
|||
|
||||
g_SndMp3Enabled = false;
|
||||
} else {
|
||||
#ifdef PLATFORM_N64
|
||||
g_SndMp3Enabled = true;
|
||||
#else
|
||||
g_SndMp3Enabled = false; // TODO
|
||||
#endif
|
||||
g_SndMaxFxBusses = 2;
|
||||
|
||||
if (argFindByPrefix(1, "-nomp3")) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue