mirror of https://github.com/PrimeDecomp/prime.git
Add musyx/stream.c, match and link arith.c
Former-commit-id: 7bd0748d30
This commit is contained in:
parent
2bff2f4d6b
commit
41f47c198d
|
@ -38,7 +38,9 @@
|
||||||
"osexception.h": "c",
|
"osexception.h": "c",
|
||||||
"oserror.h": "c",
|
"oserror.h": "c",
|
||||||
"oscontext.h": "c",
|
"oscontext.h": "c",
|
||||||
"oscache.h": "c"
|
"oscache.h": "c",
|
||||||
|
"stdlib.h": "c",
|
||||||
|
"musyx_priv.h": "c"
|
||||||
},
|
},
|
||||||
"files.autoSave": "onFocusChange",
|
"files.autoSave": "onFocusChange",
|
||||||
"files.insertFinalNewline": true,
|
"files.insertFinalNewline": true,
|
||||||
|
|
|
@ -2248,12 +2248,12 @@ lbl_8038CE14:
|
||||||
/* 8038CE14 00389D74 7C 83 23 78 */ mr r3, r4
|
/* 8038CE14 00389D74 7C 83 23 78 */ mr r3, r4
|
||||||
/* 8038CE18 00389D78 4E 80 00 20 */ blr
|
/* 8038CE18 00389D78 4E 80 00 20 */ blr
|
||||||
|
|
||||||
.global abs
|
#.global abs
|
||||||
abs:
|
#abs:
|
||||||
/* 8038CE1C 00389D7C 7C 64 FE 70 */ srawi r4, r3, 0x1f
|
#/* 8038CE1C 00389D7C 7C 64 FE 70 */ srawi r4, r3, 0x1f
|
||||||
/* 8038CE20 00389D80 7C 80 1A 78 */ xor r0, r4, r3
|
#/* 8038CE20 00389D80 7C 80 1A 78 */ xor r0, r4, r3
|
||||||
/* 8038CE24 00389D84 7C 64 00 50 */ subf r3, r4, r0
|
#/* 8038CE24 00389D84 7C 64 00 50 */ subf r3, r4, r0
|
||||||
/* 8038CE28 00389D88 4E 80 00 20 */ blr
|
#/* 8038CE28 00389D88 4E 80 00 20 */ blr
|
||||||
|
|
||||||
.section .sdata2, "a"
|
.section .sdata2, "a"
|
||||||
.balign 8
|
.balign 8
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
.section .text, "ax"
|
.section .text, "ax"
|
||||||
|
|
||||||
# .global abs
|
.global abs
|
||||||
# abs:
|
abs:
|
||||||
# /* 8038CE1C 00389D7C 7C 64 FE 70 */ srawi r4, r3, 0x1f
|
/* 8038CE1C 00389D7C 7C 64 FE 70 */ srawi r4, r3, 0x1f
|
||||||
# /* 8038CE20 00389D80 7C 80 1A 78 */ xor r0, r4, r3
|
/* 8038CE20 00389D80 7C 80 1A 78 */ xor r0, r4, r3
|
||||||
# /* 8038CE24 00389D84 7C 64 00 50 */ subf r3, r4, r0
|
/* 8038CE24 00389D84 7C 64 00 50 */ subf r3, r4, r0
|
||||||
# /* 8038CE28 00389D88 4E 80 00 20 */ blr
|
/* 8038CE28 00389D88 4E 80 00 20 */ blr
|
||||||
|
|
|
@ -860,7 +860,7 @@ LIBS = [
|
||||||
["Runtime/alloc", False],
|
["Runtime/alloc", False],
|
||||||
["Runtime/ansi_files", True],
|
["Runtime/ansi_files", True],
|
||||||
"Runtime/ansi_fp",
|
"Runtime/ansi_fp",
|
||||||
"Runtime/arith",
|
["Runtime/arith", True],
|
||||||
["Runtime/buffer_io", True],
|
["Runtime/buffer_io", True],
|
||||||
["Runtime/ctype", True],
|
["Runtime/ctype", True],
|
||||||
["Runtime/locale", True],
|
["Runtime/locale", True],
|
||||||
|
@ -923,7 +923,7 @@ LIBS = [
|
||||||
"musyx/synth",
|
"musyx/synth",
|
||||||
["musyx/seq_api", True],
|
["musyx/seq_api", True],
|
||||||
["musyx/snd_synthapi", False, False],
|
["musyx/snd_synthapi", False, False],
|
||||||
"musyx/stream",
|
["musyx/stream", False],
|
||||||
"musyx/synthdata",
|
"musyx/synthdata",
|
||||||
"musyx/synthmacros",
|
"musyx/synthmacros",
|
||||||
"musyx/synthvoice",
|
"musyx/synthvoice",
|
||||||
|
|
|
@ -79,6 +79,22 @@ u32 salInitDsp(u32);
|
||||||
u32 salInitDspCtrl(u32, u32, u16);
|
u32 salInitDspCtrl(u32, u32, u16);
|
||||||
u32 salStartAi();
|
u32 salStartAi();
|
||||||
|
|
||||||
|
/* Stream */
|
||||||
|
typedef s32 (*SND_STREAM_UPDATE_CALLBACK)(void * buffer1, u32 len1, void * buffer2, u32 len2, void* user);
|
||||||
|
typedef struct SND_STREAM_INFO {
|
||||||
|
u32 x0_;
|
||||||
|
u32 x4_;
|
||||||
|
u32 x8_;
|
||||||
|
u8 xc_;
|
||||||
|
char data2[0x10 - 0xd];
|
||||||
|
SND_STREAM_UPDATE_CALLBACK updateCb;
|
||||||
|
char data3[0x4C - 0x14];
|
||||||
|
SND_VOICEID voiceId;
|
||||||
|
void* user;
|
||||||
|
char data4[0x64 - 0x54];
|
||||||
|
} SND_STREAM_INFO;
|
||||||
|
|
||||||
|
|
||||||
/* TODO: Figure out what `unk` is */
|
/* TODO: Figure out what `unk` is */
|
||||||
bool hwAddInput(u8 studio, void* unk);
|
bool hwAddInput(u8 studio, void* unk);
|
||||||
bool hwRemoveInput(u8 studio, void* unk);
|
bool hwRemoveInput(u8 studio, void* unk);
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int abs(int n) {
|
||||||
|
if (n < 0)
|
||||||
|
return (-n);
|
||||||
|
else
|
||||||
|
return (n);
|
||||||
|
}
|
||||||
|
|
||||||
|
long labs(long n) {
|
||||||
|
if (n < 0)
|
||||||
|
return (-n);
|
||||||
|
else
|
||||||
|
return (n);
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
#include "musyx/musyx_priv.h"
|
||||||
|
|
||||||
|
SND_STREAM_INFO streamInfo[64];
|
||||||
|
|
||||||
|
u32 nextPublicID = 0;
|
||||||
|
u8 streamCallDelay = 0;
|
||||||
|
u8 streamCallCnt = 0;
|
||||||
|
|
||||||
|
void streamInit() {
|
||||||
|
s32 i;
|
||||||
|
streamCallCnt = 0;
|
||||||
|
streamCallDelay = 3;
|
||||||
|
|
||||||
|
for (i = 0; i < synthInfo.voices; ++i) {
|
||||||
|
streamInfo[i].xc_ = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
nextPublicID = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetHWMix(SND_STREAM_INFO* info) {
|
||||||
|
// hwSetVolume()
|
||||||
|
}
|
||||||
|
|
||||||
|
void streamHandle() {}
|
||||||
|
|
||||||
|
void streamCorrectLoops() {}
|
||||||
|
|
||||||
|
void streamKill(SND_STREAMID streamId) {
|
||||||
|
SND_STREAM_INFO* stream = &streamInfo[streamId];
|
||||||
|
|
||||||
|
switch (stream->xc_) {
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
if (stream->xc_ == 2) {
|
||||||
|
voiceUnblock(stream->voiceId);
|
||||||
|
}
|
||||||
|
stream->xc_ = 3;
|
||||||
|
stream->updateCb(NULL, 0, NULL, 0, stream->user);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 GetPrivateIndex(s32 something) {
|
||||||
|
s32 i;
|
||||||
|
for (i = 0; i < 64; ++i) {
|
||||||
|
if (streamInfo[i].xc_ != 0 && something == streamInfo[i].x4_) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sndStreamARAMUpdate() {
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue