jaudio_NES: link aramcall

This commit is contained in:
Cuyler36
2025-06-21 07:34:15 -04:00
parent b3bf906714
commit 1eabeec82f
2 changed files with 18 additions and 28 deletions
+1 -1
View File
@@ -757,7 +757,7 @@ config.libs = [
Object(Matching, "jaudio_NES/internal/streamctrl.c"),
Object(Matching, "jaudio_NES/internal/sub_sys.c"),
Object(Matching, "jaudio_NES/internal/track.c"),
Object(NonMatching, "jaudio_NES/internal/aramcall.c"),
Object(Matching, "jaudio_NES/internal/aramcall.c"),
Object(NonMatching, "jaudio_NES/internal/audioconst.c"),
Object(NonMatching, "jaudio_NES/internal/audiotable.c"),
Object(NonMatching, "jaudio_NES/internal/audiowork.c"),
+17 -27
View File
@@ -28,13 +28,7 @@ void Jac_RegisterARAMCallback(ARAMCallback callback)
*/
u32 LoadAram(char* filepath, u32* status, u32 dst)
{
// GUH MUH BRUH
volatile char** filepathGuh = (volatile char**)&filepath;
volatile u32* dstGuh = &dst;
char* filepathMruh = (char*)*filepathGuh;
u32 dstMruh = *dstGuh;
if (DVDT_LoadtoARAM(0, filepathMruh, dstMruh, 0, 0, status, NULL) == -1) {
if (DVDT_LoadtoARAM(0, filepath, dst, 0, 0, status, NULL) == -1) {
return 0;
}
return dst;
@@ -47,18 +41,7 @@ u32 LoadAram(char* filepath, u32* status, u32 dst)
*/
u32 LoadAramSingle(char* filepath, u32 src, u32 length, u32* status, u32 dst)
{
// GUH MUH BRUH (this function is very stupidly written, why does this match?)
u32 pad[1];
volatile char** filepathGuh = (volatile char**)&filepath;
volatile u32* srcGuh = &src;
volatile u32* lengthGuh = &length;
char* filepathMruh = (char*)*filepathGuh;
u32 lengthMuh = *lengthGuh;
u32 srcMuh = *srcGuh;
// u32 dstMuh = *dstGuh;
// Why is normal dst passed into this function when everything else isn't???
if (DVDT_LoadtoARAM(0, filepathMruh, dst, srcMuh, lengthMuh, status, NULL) == -1) {
if (DVDT_LoadtoARAM(0, filepath, dst, src, length, status, NULL) == -1) {
return 0;
}
return dst;
@@ -134,7 +117,8 @@ static BOOL first = TRUE;
*/
u32 LoadAram_Default(char* filename, u32 src, u32 length, u32* status, jaheap_* heap)
{
char filepath[140];
char filepath[128];
u32 ret;
if (first) {
Init_AramMotherHeap();
@@ -145,16 +129,22 @@ u32 LoadAram_Default(char* filename, u32 src, u32 length, u32* status, jaheap_*
strcat(filepath, filename);
if (src == 0 && length == 0) {
if (!Jac_AllocHeap(heap, &aram_mother, DVDT_CheckFile(filepath))) {
return 0;
}
return LoadAram(filepath, status, heap->startAddress);
s32 fileOK = DVDT_CheckFile(filepath);
if (!Jac_AllocHeap(heap, &aram_mother, fileOK)) {
ret = 0;
} else {
ret = LoadAram(filepath, status, heap->startAddress);
}
} else {
if (!Jac_AllocHeap(heap, &aram_mother, length)) {
return 0;
}
return LoadAramSingle(filepath, src, length, status, heap->startAddress);
ret = 0;
} else {
ret = LoadAramSingle(filepath, src, length, status, heap->startAddress);
}
}
return ret;
}
/*