mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 14:41:38 -04:00
jaudio_NES: link aramcall
This commit is contained in:
+1
-1
@@ -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"),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user