Work on J2DMaterialFactory (#394)

* Work on J2DMaterialFactory

* J3DUClipper OK

* Work on JAISoundStarter

* JAISoundHandles OK

* JAISoundInfo OK

* Fix JAISound::isStopping

* Work on J2DTextBoxEx

* dspproc OK

* osdsp OK

* osdsp_task OK

* Work on dsptask

* Import some JASCalc code

* JASCallback OK

* JASOscillator OK

* JASLfo OK
This commit is contained in:
hatal175
2023-08-01 10:17:21 +03:00
committed by GitHub
parent 396449b597
commit 2275eb710b
122 changed files with 1901 additions and 4402 deletions
+30 -41
View File
@@ -4,72 +4,61 @@
//
#include "JSystem/JAudio2/JASCallback.h"
#include "dol2asm.h"
#include "JSystem/JAudio2/JASAudioReseter.h"
#include "dolphin/types.h"
//
// Types:
//
struct JASCallbackMgr {
/* 8028FFA8 */ void regist(s32 (*)(void*), void*);
/* 80290030 */ void reject(s32 (*)(void*), void*);
/* 802900C4 */ void callback();
};
//
// Forward References:
//
extern "C" void regist__14JASCallbackMgrFPFPv_lPv();
extern "C" void reject__14JASCallbackMgrFPFPv_lPv();
extern "C" void callback__14JASCallbackMgrFv();
//
// External References:
//
extern "C" void OSDisableInterrupts();
extern "C" void OSRestoreInterrupts();
extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* 8028FFA8-80290030 28A8E8 0088+00 0/0 2/2 0/0 .text regist__14JASCallbackMgrFPFPv_lPv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASCallbackMgr::regist(s32 (*param_0)(void*), void* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASCallback/regist__14JASCallbackMgrFPFPv_lPv.s"
bool JASCallbackMgr::regist(JASCallback* function, void* argument)
{
JASCriticalSection criticalSection;
for (int i = 0; i < 0x20; i++) {
if (mCallbacks[i].mFunction == NULL) {
mCallbacks[i].mFunction = function;
mCallbacks[i].mArgument = argument;
return true;
}
}
return false;
}
#pragma pop
/* 80290030-802900C4 28A970 0094+00 0/0 1/1 0/0 .text reject__14JASCallbackMgrFPFPv_lPv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASCallbackMgr::reject(s32 (*param_0)(void*), void* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASCallback/reject__14JASCallbackMgrFPFPv_lPv.s"
int JASCallbackMgr::reject(JASCallback* function, void* argument) {
int rejectNum = 0;
JASCriticalSection criticalSection;
for (int i = 0; i < 0x20; i++) {
if (mCallbacks[i].mFunction == function && mCallbacks[i].mArgument == argument) {
mCallbacks[i].mFunction = NULL;
mCallbacks[i].mArgument = NULL;
rejectNum++;
}
}
return rejectNum;
}
#pragma pop
/* 802900C4-80290140 28AA04 007C+00 0/0 3/3 0/0 .text callback__14JASCallbackMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASCallbackMgr::callback() {
nofralloc
#include "asm/JSystem/JAudio2/JASCallback/callback__14JASCallbackMgrFv.s"
void JASCallbackMgr::callback() {
for (int i = 0; i < 0x20; i++) {
if (mCallbacks[i].mFunction && mCallbacks[i].mFunction(mCallbacks[i].mArgument) < 0) {
mCallbacks[i].mFunction = NULL;
mCallbacks[i].mArgument = NULL;
}
}
}
#pragma pop