dsptask OK

This commit is contained in:
LagoLunatic
2023-12-18 16:24:13 -05:00
parent 2d82197034
commit 3510a17d02
5 changed files with 10 additions and 17 deletions
+1 -1
View File
@@ -698,7 +698,7 @@ config.libs = [
Object(NonMatching, "JSystem/JAudio/JASOscillator.cpp"),
Object(Matching, "JSystem/JAudio/JASDriverTables.cpp"),
Object(Matching, "JSystem/JAudio/dspproc.c", extra_cflags="-lang c++ -O4 -func_align 32"),
Object(NonMatching, "JSystem/JAudio/dsptask.c", extra_cflags="-lang c++ -O4 -func_align 32"),
Object(Matching, "JSystem/JAudio/dsptask.c", extra_cflags="-lang c++ -O4 -func_align 32"),
Object(Matching, "JSystem/JAudio/osdsp.c", extra_cflags="-lang c++ -O4 -func_align 32 -str nopool"),
Object(Matching, "JSystem/JAudio/osdsp_task.c", extra_cflags="-lang c++ -O4 -func_align 32"),
Object(NonMatching, "JSystem/JAudio/JAIAnimation.cpp"),
+1 -1
View File
@@ -11,7 +11,7 @@ extern DSPTaskInfo* DSP_prior_task;
extern "C" void __DSPHandler(int, OSContext*);
void DsyncFrame2(u32, u32, u32);
void Dsp_Update_Request();
bool Dsp_Running_Check();
BOOL Dsp_Running_Check();
void Dsp_Running_Start();
#endif /* OSDSP_TASK_H */
+5 -8
View File
@@ -7,11 +7,10 @@
#include "JSystem/JAudio/osdsp.h"
#include "JSystem/JAudio/osdsp_task.h"
#include "dolphin/dsp.h"
#include "dolphin/types.h"
#include "global.h"
/* 8028E860-8028E898 .text DspHandShake__FPv */
void DspHandShake(void*) {
/* Nonmatching */
while (DSPCheckMailFromDSP() == 0) {}
DSPReadMailFromDSP();
DSPCheckMailFromDSP();
@@ -487,13 +486,12 @@ static u8 jdsp[] = {
0x80, 0x01, 0x02, 0xBF, 0x00, 0xEB, 0x02, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static STRUCT_DSP_TASK audio_task;
static DSPTaskInfo audio_task ALIGN_DECL(32);
static u8 AUDIO_YIELD_BUFFER[8192];
static u8 AUDIO_YIELD_BUFFER[8192] ALIGN_DECL(32);
/* 8028E8A0-8028E94C .text DspBoot__FPFPv_v */
void DspBoot(void (*param_1)(void*)) {
/* Nonmatching */
DspInitWork();
audio_task.priority = 0xf0;
audio_task.iram_mmem_addr = (u16*)(jdsp + 0x80000000);
@@ -514,10 +512,9 @@ void DspBoot(void (*param_1)(void*)) {
/* 8028E960-8028EA48 .text DSPSendCommands2__FPUlUlPFUs_v */
int DSPSendCommands2(u32* param_1, u32 param_2, void (*callBack)(u16)) {
/* Nonmatching */
s32 startWorkStatus;
BOOL interruptFlag;
s32 i;
BOOL interruptFlag;
s32 startWorkStatus;
while (Dsp_Running_Check() == 0) {};
+1 -3
View File
@@ -9,7 +9,6 @@
/* 8028EB80-8028EC04 .text DSPAddTask */
DSPTaskInfo* DSPAddTask(DSPTaskInfo* task) {
/* Nonmatching */
if (DSP_prior_task == NULL) {
OSReport("Prior Task is not inited\n");
return NULL;
@@ -23,8 +22,7 @@ DSPTaskInfo* DSPAddTask(DSPTaskInfo* task) {
}
/* 8028EC20-8028EC9C .text DSPAddPriorTask__FP15STRUCT_DSP_TASK */
void DSPAddPriorTask(STRUCT_DSP_TASK* task) {
/* Nonmatching */
void DSPAddPriorTask(DSPTaskInfo* task) {
if (DSP_prior_task != NULL) {
OSReport("Already inited prior DSP task\n");
return;
+2 -4
View File
@@ -15,7 +15,6 @@ DSPTaskInfo* DSP_prior_task;
/* 8028ECA0-8028EFA4 .text __DSPHandler */
void __DSPHandler(int interrupt, OSContext* context) {
/* Nonmatching */
OSContext funcContext;
__DSPRegs[5] = ((u16)(__DSPRegs[5]) & ~0x28) | 0x80;
OSClearContext(&funcContext);
@@ -129,9 +128,8 @@ void Dsp_Update_Request() {
}
/* 8028F060-8028F074 .text Dsp_Running_Check__Fv */
bool Dsp_Running_Check() {
/* Nonmatching */
return DSP_prior_yield == 1;
BOOL Dsp_Running_Check() {
return DSP_prior_yield == 1 ? TRUE : FALSE;
}
/* 8028F080-8028F08C .text Dsp_Running_Start__Fv */