From 924b89cc8048f49609483af99c623f75f0350843 Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Mon, 8 Aug 2022 07:35:44 -0400 Subject: [PATCH] Match most of the remaining unmatched libultra functions, mostly from the audio library (#239) * Fix alSynAllocFX * Match alCSPNew and __CSPVoiceHandler, which had slight differences from libreultra * WIP __CSPHandleMIDIMsg * Match alFxPull * Match func_8006492C and func_8006493C * Match alFxParamHdl * Match _loadOutputBuffer: * Match _doModFunc and with it finish reverb.c * Match alSynNew and finish synthesizer.c * Match some unknown funcs cleaner * Clean up func_80063BA0 * Clean up func_80063A90 * Fix warning * Add missing header files from previous commits * Match alBnkfNew.c * Match alCSPGetState * Match several more audio lib funcs * Match alSynDelete, and alSynSetFXMix * Properly move __osRcpImTable data into osSetIntMask and our of alSynSetPriority * Kind of match alSynSetPriority, and match alSynSetVol * Delcare functions as static again to fix the score script regex * Seperate some al files out like they seem to be in ultralib * Match event.c * Match synallocvoice.c * Match some more audio funcs * More audio matches * Yaya more audio, I know * Couple more matched files * Match filter.c * Match resample.c * Match load.c * Get env.c closer to a real match * Fix some code related to an assert in env.c * Match env.c, which has many differences from later public versions * Finish matching audio library code * Deleted unnecessary asm files, and made tweaks to al files to fix score script * Fix codebreaking formatting error ;) * Update include/PR/libaudio.h Co-authored-by: AntonioCastelli * Update include/audio_internal.h Co-authored-by: AntonioCastelli * Renamed sl.c.c to fix that, and renamed NOPSNEEDED to make it more clear it's not to be used. Co-authored-by: AntonioCastelli --- Makefile | 6 +- include/PR/abi.h | 4 +- include/PR/libaudio.h | 218 ++++-- include/audio_internal.h | 15 +- include/sys/asm.h | 72 ++ include/sys/regdef.h | 187 +++++ lib/asm/exception/__osDispatchThread.s | 4 +- .../non_matchings/alBnkfNew/_bnkfPatchBank.s | 69 -- lib/asm/non_matchings/alBnkfNew/alBnkfNew.s | 74 -- .../non_matchings/alBnkfNew/alSeqFileNew.s | 23 - .../non_matchings/alSynAllocFX/alSynAllocFX.s | 43 -- .../csplayer/__CSPVoiceHandler.s | 409 ---------- lib/asm/non_matchings/csplayer/alCSPNew.s | 98 --- lib/asm/non_matchings/reverb/_doModFunc.s | 47 -- .../non_matchings/reverb/_loadOutputBuffer.s | 163 ---- lib/asm/non_matchings/reverb/alFxParamHdl.s | 188 ----- lib/asm/non_matchings/reverb/alFxPull.s | 231 ------ lib/asm/non_matchings/reverb/func_8006492C.s | 12 - lib/asm/non_matchings/sched/__scHandleRSP.s | 151 ---- lib/asm/non_matchings/synthesizer/alSynNew.s | 226 ------ .../unknown_0C8490/alCSPGetTempo.s | 20 - .../unknown_0C8540/alCSPSetChlVol.s | 27 - .../unknown_0C8650/alCSPGetState.s | 7 - .../unknown_0C8660/alCSPSetBank.s | 19 - .../unknown_0C86A0/__alCSeqGetTrackEvent.s | 208 ----- .../unknown_0C86A0/__alCSeqNextDelta.s | 109 --- .../unknown_0C86A0/__getTrackByte.s | 54 -- .../unknown_0C86A0/__readVarLen.s | 29 - .../unknown_0C86A0/alCSeqGetLoc.s | 42 - .../non_matchings/unknown_0C86A0/alCSeqNew.s | 74 -- .../unknown_0C86A0/alCSeqNewMarker.s | 95 --- .../unknown_0C86A0/alCSeqSecToTicks.s | 75 -- .../unknown_0C86A0/alCSeqSetLoc.s | 42 - .../unknown_0C86A0/alCSeqTicksToSec.s | 35 - .../unknown_0C9160/alCSPSetSeq.s | 19 - .../non_matchings/unknown_0C91A0/alCSPPlay.s | 14 - .../non_matchings/unknown_0C91A0/alCSPStop.s | 14 - .../non_matchings/unknown_0C91A0/alClose.s | 17 - lib/asm/non_matchings/unknown_0C91A0/alInit.s | 16 - lib/asm/non_matchings/unknown_0C91A0/alLink.s | 12 - .../non_matchings/unknown_0C91A0/alUnlink.s | 16 - .../unknown_0C9A20/func_800C8E20.s | 7 - .../unknown_0C9C90/_allocatePVoice.s | 66 -- .../unknown_0C9C90/alEvtqPostEvent.s | 83 -- .../unknown_0CA250/alSynSetVol.s | 45 -- .../unknown_0CA2F0/alSynStartVoice.s | 41 - .../unknown_0CA380/alSynSetPitch.s | 41 - .../unknown_0CA410/alSynSetFXMix.s | 47 -- .../unknown_0CA4B0/alSynStopVoice.s | 37 - .../unknown_0CA530/alCents2Ratio.s | 34 - .../unknown_0CA530/alSynFreeVoice.s | 50 -- .../unknown_0CA6E0/alSynSetPriority.s | 23 - .../non_matchings/unknown_0CA730/__d_to_ll.s | 19 + .../unknown_0CA9A0/alAdpcmPull.s | 323 -------- .../unknown_0CA9A0/alEnvMixerPull.s | 677 ----------------- .../unknown_0CA9A0/alEnvmixerParam.s | 133 ---- .../unknown_0CA9A0/alFilterNew.s | 10 - .../unknown_0CA9A0/alLoadParam.s | 129 ---- .../unknown_0CA9A0/alRaw16Pull.s | 256 ------- .../unknown_0CA9A0/alResampleParam.s | 75 -- .../unknown_0CA9A0/alResamplePull.s | 148 ---- .../unknown_0CA9A0/func_800CAC5C.s | 446 ----------- .../unknown_0CA9A0/func_800CB2D4.s | 124 --- .../unknown_0CA9A0/func_800CB498.s | 46 -- .../unknown_0CA9A0/func_800CBAC0.s | 80 -- .../unknown_0CCF90/alMainBusParam.s | 15 - .../unknown_0CCF90/alMainBusPull.s | 76 -- .../unknown_0CCF90/alSaveParam.s | 19 - .../non_matchings/unknown_0CCF90/alSavePull.s | 37 - .../unknown_0CCF90/osSetThreadPri.s | 61 -- .../unknown_0CE200/__osSiRawStartDma.s | 53 -- .../non_matchings/unknown_0D0130/corrupted.s | 139 ---- .../unknown_0D0130/corrupted_init.s | 124 --- .../unknown_0D0130/osPfsChecker.s | 474 ------------ .../unknown_0D29F0/osSpTaskYielded.s | 37 - .../unknown_0D3020/__osCheckId.s | 71 -- .../unknown_0D3020/__osCheckPackId.s | 113 --- .../unknown_0D3020/__osCleanupThread.s | 5 - .../unknown_0D3020/__osDpDeviceBusy.s | 16 - .../non_matchings/unknown_0D3020/__osGetId.s | 164 ---- .../unknown_0D3020/__osIdCheckSum.s | 29 - .../unknown_0D3020/__osInsertTimer.s | 103 --- .../unknown_0D3020/__osPfsRWInode.s | 217 ------ .../unknown_0D3020/__osPfsSelectBank.s | 32 - .../unknown_0D3020/__osRepairPackId.s | 286 ------- .../unknown_0D3020/__osSetTimerIntr.s | 31 - .../unknown_0D3020/__osSiDeviceBusy.s | 16 - .../unknown_0D3020/__osSumcalc.s | 27 - .../unknown_0D3160/alSynDelete.s | 6 - .../unknown_0D4270/__osAiDeviceBusy.s | 16 - lib/asm/osSetIntMask.s | 17 +- lib/src/al/alBnkfNew.c | 146 ++++ lib/src/al/alCSPGetState.c | 33 + lib/src/al/alCSPGetTempo.c | 36 + lib/src/al/alCSPSetBank.c | 37 + lib/src/al/alCSPSetChlVol.c | 41 + lib/src/al/alCSPSetSeq.c | 39 + lib/src/al/alSynDelete.c | 31 + lib/src/al/alSynSetFXMix.c | 61 ++ lib/src/al/alSynSetPitch.c | 52 ++ lib/src/al/alSynSetPriority.c | 31 + lib/src/al/alSynSetVol.c | 54 ++ lib/src/al/alSynStartVoice.c | 50 ++ lib/src/al/alSynStopVoice.c | 46 ++ lib/src/al/cents2ratio.c | 39 + lib/src/al/cseq.c | 400 ++++++++++ lib/src/al/cspplay.c | 37 + lib/src/al/cspstop.c | 36 + lib/src/al/env.c | 517 +++++++++++++ lib/src/al/event.c | 177 +++++ lib/src/al/filter.c | 36 + lib/src/al/global_asm/README.txt | 1 - lib/src/al/global_asm/alBnkfNew.c | 12 - lib/src/al/global_asm/alCSPGetState.c | 7 - lib/src/al/global_asm/alCSPGetTempo.c | 7 - lib/src/al/global_asm/alCSPSetBank.c | 7 - lib/src/al/global_asm/alCSPSetChlVol.c | 7 - lib/src/al/global_asm/alCSPSetSeq.c | 7 - lib/src/al/global_asm/alSynDelete.c | 8 - lib/src/al/global_asm/alSynSetFXMix.c | 7 - lib/src/al/global_asm/alSynSetPitch.c | 7 - lib/src/al/global_asm/alSynSetPriority.c | 23 - lib/src/al/global_asm/alSynSetVol.c | 7 - lib/src/al/global_asm/alSynStartVoice.c | 7 - lib/src/al/global_asm/alSynStopVoice.c | 7 - lib/src/al/global_asm/unknown_0C86A0.c | 23 - lib/src/al/global_asm/unknown_0C91A0.c | 11 - lib/src/al/global_asm/unknown_0C91A0_2.c | 10 - lib/src/al/global_asm/unknown_0C9C90.c | 275 ------- lib/src/al/global_asm/unknown_0CA530.c | 8 - lib/src/al/global_asm/unknown_0CA9A0.c | 48 -- lib/src/al/global_asm/unknown_0CCF90.c | 11 - lib/src/al/load.c | 472 ++++++++++++ lib/src/al/mainbus.c | 70 ++ lib/src/al/resample.c | 152 ++++ lib/src/al/save.c | 71 ++ lib/src/al/sl.c | 66 ++ lib/src/al/synaddplayer.c | 37 + lib/src/al/synallocvoice.c | 133 ++++ lib/src/al/synfreevoice.c | 56 ++ lib/src/mips1/al/alAuxBusPull.c | 25 +- lib/src/mips1/al/alSynAllocFX.c | 11 +- lib/src/mips1/al/alSynSetPan.c | 2 + lib/src/mips1/al/cseq.h | 8 + lib/src/mips1/al/cseqp.h | 8 + lib/src/mips1/al/csplayer.c | 718 +++++++++++++++++- lib/src/mips1/al/initfx.h | 59 ++ lib/src/mips1/al/reverb.c | 330 +++++++- lib/src/mips1/al/synthesizer.c | 12 +- lib/src/mips1/al/unknown_064690.c | 29 +- lib/src/mips1/al/unknown_0646F0.c | 44 +- lib/src/mips1/al/unknown_0647A0.c | 17 +- src/audio.c | 6 +- src/audio.h | 7 +- src/thread0_epc.c | 12 +- src/thread0_epc.h | 2 +- 156 files changed, 4607 insertions(+), 8447 deletions(-) create mode 100644 include/sys/asm.h create mode 100644 include/sys/regdef.h delete mode 100644 lib/asm/non_matchings/alBnkfNew/_bnkfPatchBank.s delete mode 100644 lib/asm/non_matchings/alBnkfNew/alBnkfNew.s delete mode 100644 lib/asm/non_matchings/alBnkfNew/alSeqFileNew.s delete mode 100644 lib/asm/non_matchings/alSynAllocFX/alSynAllocFX.s delete mode 100644 lib/asm/non_matchings/csplayer/__CSPVoiceHandler.s delete mode 100644 lib/asm/non_matchings/csplayer/alCSPNew.s delete mode 100644 lib/asm/non_matchings/reverb/_doModFunc.s delete mode 100644 lib/asm/non_matchings/reverb/_loadOutputBuffer.s delete mode 100644 lib/asm/non_matchings/reverb/alFxParamHdl.s delete mode 100644 lib/asm/non_matchings/reverb/alFxPull.s delete mode 100644 lib/asm/non_matchings/reverb/func_8006492C.s delete mode 100644 lib/asm/non_matchings/sched/__scHandleRSP.s delete mode 100644 lib/asm/non_matchings/synthesizer/alSynNew.s delete mode 100644 lib/asm/non_matchings/unknown_0C8490/alCSPGetTempo.s delete mode 100644 lib/asm/non_matchings/unknown_0C8540/alCSPSetChlVol.s delete mode 100644 lib/asm/non_matchings/unknown_0C8650/alCSPGetState.s delete mode 100644 lib/asm/non_matchings/unknown_0C8660/alCSPSetBank.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/__alCSeqGetTrackEvent.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/__alCSeqNextDelta.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/__getTrackByte.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/__readVarLen.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/alCSeqGetLoc.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/alCSeqNew.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/alCSeqNewMarker.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/alCSeqSecToTicks.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/alCSeqSetLoc.s delete mode 100644 lib/asm/non_matchings/unknown_0C86A0/alCSeqTicksToSec.s delete mode 100644 lib/asm/non_matchings/unknown_0C9160/alCSPSetSeq.s delete mode 100644 lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s delete mode 100644 lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s delete mode 100644 lib/asm/non_matchings/unknown_0C91A0/alClose.s delete mode 100644 lib/asm/non_matchings/unknown_0C91A0/alInit.s delete mode 100644 lib/asm/non_matchings/unknown_0C91A0/alLink.s delete mode 100644 lib/asm/non_matchings/unknown_0C91A0/alUnlink.s delete mode 100644 lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s delete mode 100644 lib/asm/non_matchings/unknown_0C9C90/_allocatePVoice.s delete mode 100644 lib/asm/non_matchings/unknown_0C9C90/alEvtqPostEvent.s delete mode 100644 lib/asm/non_matchings/unknown_0CA250/alSynSetVol.s delete mode 100644 lib/asm/non_matchings/unknown_0CA2F0/alSynStartVoice.s delete mode 100644 lib/asm/non_matchings/unknown_0CA380/alSynSetPitch.s delete mode 100644 lib/asm/non_matchings/unknown_0CA410/alSynSetFXMix.s delete mode 100644 lib/asm/non_matchings/unknown_0CA4B0/alSynStopVoice.s delete mode 100644 lib/asm/non_matchings/unknown_0CA530/alCents2Ratio.s delete mode 100644 lib/asm/non_matchings/unknown_0CA530/alSynFreeVoice.s delete mode 100644 lib/asm/non_matchings/unknown_0CA6E0/alSynSetPriority.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alAdpcmPull.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s delete mode 100644 lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s delete mode 100644 lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s delete mode 100644 lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s delete mode 100644 lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s delete mode 100644 lib/asm/non_matchings/unknown_0CCF90/alSavePull.s delete mode 100644 lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s delete mode 100644 lib/asm/non_matchings/unknown_0CE200/__osSiRawStartDma.s delete mode 100644 lib/asm/non_matchings/unknown_0D0130/corrupted.s delete mode 100644 lib/asm/non_matchings/unknown_0D0130/corrupted_init.s delete mode 100644 lib/asm/non_matchings/unknown_0D0130/osPfsChecker.s delete mode 100644 lib/asm/non_matchings/unknown_0D29F0/osSpTaskYielded.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osCheckId.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osCheckPackId.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osCleanupThread.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osGetId.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osIdCheckSum.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osPfsRWInode.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osPfsSelectBank.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osRepairPackId.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osSiDeviceBusy.s delete mode 100644 lib/asm/non_matchings/unknown_0D3020/__osSumcalc.s delete mode 100644 lib/asm/non_matchings/unknown_0D3160/alSynDelete.s delete mode 100644 lib/asm/non_matchings/unknown_0D4270/__osAiDeviceBusy.s create mode 100644 lib/src/al/alBnkfNew.c create mode 100644 lib/src/al/alCSPGetState.c create mode 100644 lib/src/al/alCSPGetTempo.c create mode 100644 lib/src/al/alCSPSetBank.c create mode 100644 lib/src/al/alCSPSetChlVol.c create mode 100644 lib/src/al/alCSPSetSeq.c create mode 100644 lib/src/al/alSynDelete.c create mode 100644 lib/src/al/alSynSetFXMix.c create mode 100644 lib/src/al/alSynSetPitch.c create mode 100644 lib/src/al/alSynSetPriority.c create mode 100644 lib/src/al/alSynSetVol.c create mode 100644 lib/src/al/alSynStartVoice.c create mode 100644 lib/src/al/alSynStopVoice.c create mode 100644 lib/src/al/cents2ratio.c create mode 100644 lib/src/al/cseq.c create mode 100644 lib/src/al/cspplay.c create mode 100644 lib/src/al/cspstop.c create mode 100644 lib/src/al/env.c create mode 100644 lib/src/al/event.c create mode 100644 lib/src/al/filter.c delete mode 100644 lib/src/al/global_asm/README.txt delete mode 100644 lib/src/al/global_asm/alBnkfNew.c delete mode 100644 lib/src/al/global_asm/alCSPGetState.c delete mode 100644 lib/src/al/global_asm/alCSPGetTempo.c delete mode 100644 lib/src/al/global_asm/alCSPSetBank.c delete mode 100644 lib/src/al/global_asm/alCSPSetChlVol.c delete mode 100644 lib/src/al/global_asm/alCSPSetSeq.c delete mode 100644 lib/src/al/global_asm/alSynDelete.c delete mode 100644 lib/src/al/global_asm/alSynSetFXMix.c delete mode 100644 lib/src/al/global_asm/alSynSetPitch.c delete mode 100644 lib/src/al/global_asm/alSynSetPriority.c delete mode 100644 lib/src/al/global_asm/alSynSetVol.c delete mode 100644 lib/src/al/global_asm/alSynStartVoice.c delete mode 100644 lib/src/al/global_asm/alSynStopVoice.c delete mode 100644 lib/src/al/global_asm/unknown_0C86A0.c delete mode 100644 lib/src/al/global_asm/unknown_0C91A0.c delete mode 100644 lib/src/al/global_asm/unknown_0C91A0_2.c delete mode 100644 lib/src/al/global_asm/unknown_0C9C90.c delete mode 100644 lib/src/al/global_asm/unknown_0CA530.c delete mode 100644 lib/src/al/global_asm/unknown_0CA9A0.c delete mode 100644 lib/src/al/global_asm/unknown_0CCF90.c create mode 100644 lib/src/al/load.c create mode 100644 lib/src/al/mainbus.c create mode 100644 lib/src/al/resample.c create mode 100644 lib/src/al/save.c create mode 100644 lib/src/al/sl.c create mode 100644 lib/src/al/synaddplayer.c create mode 100644 lib/src/al/synallocvoice.c create mode 100644 lib/src/al/synfreevoice.c create mode 100644 lib/src/mips1/al/cseq.h create mode 100644 lib/src/mips1/al/cseqp.h create mode 100644 lib/src/mips1/al/initfx.h diff --git a/Makefile b/Makefile index ec7dce42..780fb4dd 100755 --- a/Makefile +++ b/Makefile @@ -299,16 +299,14 @@ $(BUILD_DIR)/lib/src/os/osViMgr.o: OPT_FLAGS := -O2 -Xfullwarn $(BUILD_DIR)/lib/src/os/osCreatePiManager.o: OPT_FLAGS := -O2 -Xfullwarn $(BUILD_DIR)/lib/src/os/osMotor.o: OPT_FLAGS := -O2 -Xfullwarn $(BUILD_DIR)/lib/src/libc/xprintf.o : OPT_FLAGS := -O3 -$(BUILD_DIR)/lib/src/al/unknown_0C9C90.o: OPT_FLAGS := -O2 -Xfullwarn -Wo,-loopunroll,0 +$(BUILD_DIR)/lib/src/al/env.o: OPT_FLAGS := -g #$(BUILD_DIR)/lib/src/libc/llcvt.o: OPT_FLAGS := #$(BUILD_DIR)/lib/src/libc/llcvt.o: MIPSISET := -mips3 32 $(BUILD_DIR)/lib/%.o: MIPSISET := -mips2 $(BUILD_DIR)/lib/src/mips1/%.o: MIPSISET := -mips1 $(BUILD_DIR)/lib/src/os/osMotor.o: MIPSISET := -mips1 - -# asm-processor currently does not support -O3, so this is my workaround. -$(BUILD_DIR)/lib/src/al/global_asm/%.o: OPT_FLAGS := -O2 -Xfullwarn +$(BUILD_DIR)/lib/src/al/env.o: MIPSISET := -mips1 ######################## Targets ############################# diff --git a/include/PR/abi.h b/include/PR/abi.h index 8545be3b..e783c433 100644 --- a/include/PR/abi.h +++ b/include/PR/abi.h @@ -242,7 +242,9 @@ typedef union { /* * ADPCM State */ -typedef short ADPCM_STATE[16]; +#define ADPCMVSIZE 8 +#define ADPCMFSIZE 16 +typedef short ADPCM_STATE[ADPCMFSIZE]; /* * Pole filter state diff --git a/include/PR/libaudio.h b/include/PR/libaudio.h index fde5d00a..1ed4123b 100644 --- a/include/PR/libaudio.h +++ b/include/PR/libaudio.h @@ -89,9 +89,13 @@ typedef struct ALLink_s { } ALLink; +void alUnlink(ALLink *element); +void alLink(ALLink *element, ALLink *after); + typedef s32 (*ALDMAproc)(s32 addr, s32 len, void *state); typedef ALDMAproc (*ALDMANew)(void *state); +void alCopy(void *src, void *dest, s32 len); typedef struct { u8 *base; @@ -104,7 +108,7 @@ typedef struct { #define AL_HEAP_MAGIC 0x20736a73 #define AL_HEAP_INIT 0 - +void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); #ifdef _DEBUG #define alHeapAlloc(hp, elem ,size) alHeapDBAlloc((u8 *) __FILE__,__LINE__,(hp),(elem),(size)) #else @@ -319,6 +323,33 @@ typedef struct { at one time at output rate */ } ALSynth; +void alSynNew(ALSynth *s, ALSynConfig *config); +void alSynDelete(ALSynth *s); + +void alSynAddPlayer(ALSynth *s, ALPlayer *client); +void alSynRemovePlayer(ALSynth *s, ALPlayer *client); + +s32 alSynAllocVoice(ALSynth *s, ALVoice *v, ALVoiceConfig *vc); +void alSynFreeVoice(ALSynth *s, ALVoice *voice); + +void alSynStartVoice(ALSynth *s, ALVoice *voice, ALWaveTable *w); +void alSynStartVoiceParams(ALSynth *s, ALVoice *voice, ALWaveTable *w, + f32 pitch, s16 vol, ALPan pan, u8 fxmix, + ALMicroTime t); +void alSynStopVoice(ALSynth *s, ALVoice *voice); + +void alSynSetVol(ALSynth *s, ALVoice *v, s16 vol, ALMicroTime delta); +void alSynSetPitch(ALSynth *s, ALVoice *voice, f32 ratio); +void alSynSetPan(ALSynth *s, ALVoice *voice, ALPan pan); +void alSynSetFXMix(ALSynth *s, ALVoice *voice, u8 fxmix); +void alSynSetPriority(ALSynth *s, ALVoice *voice, s16 priority); +s16 alSynGetPriority(ALSynth *s, ALVoice *voice); + +ALFxRef *alSynAllocFX(ALSynth *s, s16 bus, ALSynConfig *c, ALHeap *hp); +ALFxRef alSynGetFXRef(ALSynth *s, s16 bus, s16 index); +void alSynFreeFX(ALSynth *s, ALFxRef *fx); +void alSynSetFXParam(ALSynth *s, ALFxRef fx, s16 paramID, void *param); + /*********************************************************************** * Audio Library (AL) stuff @@ -556,6 +587,13 @@ typedef struct { s32 eventCount; } ALEventQueue; +void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, + s32 itemCount); +ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt); +void alEvtqPostEvent(ALEventQueue *evtq, ALEvent *evt, + ALMicroTime delta); +void alEvtqFlush(ALEventQueue *evtq); +void alEvtqFlushType(ALEventQueue *evtq, s16 type); #define AL_PHASE_ATTACK 0 #define AL_PHASE_NOTEON 0 @@ -606,6 +644,7 @@ typedef struct { u8 sustain; /* current sustain pedal state */ f32 pitchBend; /* current pitch bend val in cents */ u8 unk10; + u8 unk11; } ALChanState_Custom; /* Size: 0x1C bytes */ @@ -625,6 +664,7 @@ typedef struct { u32 division; } ALCMidiHdr; +/* size 0x20 */ typedef struct ALCSeq_s { ALCMidiHdr *base; /* ptr to start of sequence file */ u32 validTracks; /* set of flags, showing valid tracks */ @@ -708,37 +748,7 @@ typedef struct { } ALSeqPlayer; /** - * This has an extra padded 4 bytes at the end for some reason. - * Size: 0x80 bytes */ -typedef struct { - ALPlayer node; /* note: must be first in structure */ - ALSynth *drvr; /* reference to the client driver */ - ALCSeq *target; /* current sequence */ - ALMicroTime curTime; - ALBank *bank; /* current ALBank */ - s32 uspt; /* microseconds per tick */ - s32 nextDelta; /* microseconds to next callback */ - s32 state; - u16 chanMask; /* active channels */ - s16 vol; /* overall sequence volume */ - u8 maxChannels; /* number of MIDI channels */ - u8 debugFlags; /* control which error get reported */ - ALEvent nextEvent; - ALEventQueue evtq; - ALMicroTime frameTime; - ALChanState *chanState; /* 16 channels for MIDI */ - ALVoiceState *vAllocHead; /* list head for allocated voices */ - ALVoiceState *vAllocTail; /* list tail for allocated voices */ - ALVoiceState *vFreeList; /* list of free voice state structs */ - ALOscInit initOsc; - ALOscUpdate updateOsc; - ALOscStop stopOsc; - s32 unk7C; /* Padded to match ALCSPlayer_Custom */ -} ALCSPlayer; - -/** - * This custom struct has a unk36 byte that is set to 0x7F in func_80002224. - * It is otherwise identical to the ALCSPlayer above, but we need to pad it's size to match + * This struct was modified by Rare with a few new fields * Size: 0x80 bytes */ typedef struct { /* 0x00 */ ALPlayer node; /* note: must be first in structure */ @@ -754,30 +764,139 @@ typedef struct { /* 0x34 */ u8 maxChannels; /* number of MIDI channels */ /* 0x35 */ u8 debugFlags; /* control which error get reported */ /* 0x36 */ u8 unk36; - /* 0x37 */ u8 unk37[3]; /* Padded to match ALCSPlayer */ - /* 0x40 */ ALEvent nextEvent; - /* 0x4C */ ALEventQueue evtq; - /* 0x60 */ ALMicroTime frameTime; - /* 0x64 */ ALChanState *chanState; /* 16 channels for MIDI */ - /* 0x68 */ ALVoiceState *vAllocHead; /* list head for allocated voices */ - /* 0x6C */ ALVoiceState *vAllocTail; /* list tail for allocated voices */ - /* 0x70 */ ALVoiceState *vFreeList; /* list of free voice state structs */ + /* 0x37 */ u8 unk37; + /* 0x38 */ ALEvent nextEvent; + /* 0x48 */ ALEventQueue evtq; + /* 0x5C */ ALMicroTime frameTime; + /* 0x60 */ ALChanState *chanState; /* 16 channels for MIDI */ + /* 0x64 */ ALVoiceState *vAllocHead; /* list head for allocated voices */ + /* 0x68 */ ALVoiceState *vAllocTail; /* list tail for allocated voices */ + /* 0x6C */ ALVoiceState *vFreeList; /* list of free voice state structs */ + /* 0x70 */ s8 unk70; + /* 0x71 */ s8 unk71; + /* 0x72 */ s8 unk72; + /* 0x73 */ s8 unk73; + /* 0x74 */ ALOscInit initOsc; + /* 0x78 */ ALOscUpdate updateOsc; + /* 0x7C */ ALOscStop stopOsc; +} ALCSPlayer; + +/** + * Same as above, but the chanState is the new custom one. + * Size: 0x80 bytes */ +typedef struct { + /* 0x00 */ ALPlayer node; /* note: must be first in structure */ + /* 0x14 */ ALSynth *drvr; /* reference to the client driver */ + /* 0x18 */ ALCSeq *target; /* current sequence */ + /* 0x1C */ ALMicroTime curTime; + /* 0x20 */ ALBank *bank; /* current ALBank */ + /* 0x24 */ s32 uspt; /* microseconds per tick */ + /* 0x28 */ s32 nextDelta; /* microseconds to next callback */ + /* 0x2C */ s32 state; + /* 0x30 */ u16 chanMask; /* active channels */ + /* 0x32 */ s16 vol; /* overall sequence volume */ + /* 0x34 */ u8 maxChannels; /* number of MIDI channels */ + /* 0x35 */ u8 debugFlags; /* control which error get reported */ + /* 0x36 */ u8 unk36; + /* 0x37 */ u8 unk37; + /* 0x38 */ ALEvent nextEvent; + /* 0x48 */ ALEventQueue evtq; + /* 0x5C */ ALMicroTime frameTime; + /* 0x60 */ ALChanState_Custom *chanState; /* 16 channels for MIDI */ + /* 0x64 */ ALVoiceState *vAllocHead; /* list head for allocated voices */ + /* 0x68 */ ALVoiceState *vAllocTail; /* list tail for allocated voices */ + /* 0x6C */ ALVoiceState *vFreeList; /* list of free voice state structs */ + /* 0x70 */ s8 unk70; + /* 0x71 */ s8 unk71; + /* 0x72 */ s8 unk72; + /* 0x73 */ s8 unk73; /* 0x74 */ ALOscInit initOsc; /* 0x78 */ ALOscUpdate updateOsc; /* 0x7C */ ALOscStop stopOsc; } ALCSPlayer_Custom; -/* Maintain backwards compatibility with old routine names. */ -#define alSeqpSetProgram alSeqpSetChlProgram -#define alSeqpGetProgram alSeqpGetChlProgram -#define alSeqpSetFXMix alSeqpSetChlFXMix -#define alSeqpGetFXMix alSeqpGetChlFXMix -#define alSeqpSetPan alSeqpSetChlPan -#define alSeqpGetPan alSeqpGetChlPan -#define alSeqpSetChannelPriority alSeqpSetChlPriority -#define alSeqpGetChannelPriority alSeqpGetChlPriority +/* + * Compressed Sequence Player routines + */ +void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *config); +void alCSPDelete(ALCSPlayer *seqp); +void alCSPSetSeq(ALCSPlayer *seqp, ALCSeq *seq); +ALCSeq *alCSPGetSeq(ALCSPlayer *seqp); +void alCSPPlay(ALCSPlayer *seqp); +void alCSPStop(ALCSPlayer *seqp); +s32 alCSPGetState(ALCSPlayer *seqp); +void alCSPSetBank(ALCSPlayer *seqp, ALBank *b); +void alCSPSetTempo(ALCSPlayer *seqp, s32 tempo); +s32 alCSPGetTempo(ALCSPlayer *seqp); +s16 alCSPGetVol(ALCSPlayer *seqp); +void alCSPSetVol(ALCSPlayer *seqp, s16 vol); +void alCSPSetChlProgram(ALCSPlayer *seqp, u8 chan, u8 prog); +s32 alCSPGetChlProgram(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlFXMix(ALCSPlayer *seqp, u8 chan, u8 fxmix); +u8 alCSPGetChlFXMix(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan); +ALPan alCSPGetChlPan(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlVol(ALCSPlayer *seqp, u8 chan, u8 vol); +u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlPriority(ALCSPlayer *seqp, u8 chan, u8 priority); +u8 alCSPGetChlPriority(ALCSPlayer *seqp, u8 chan); +void alCSPSendMidi(ALCSPlayer *seqp, s32 ticks, u8 status, + u8 byte1, u8 byte2); +/* + * Sequence data representation routines + */ +void alSeqNew(ALSeq *seq, u8 *ptr, s32 len); +void alSeqNextEvent(ALSeq *seq, ALEvent *event); +s32 alSeqGetTicks(ALSeq *seq); +f32 alSeqTicksToSec(ALSeq *seq, s32 ticks, u32 tempo); +u32 alSeqSecToTicks(ALSeq *seq, f32 sec, u32 tempo); +void alSeqNewMarker(ALSeq *seq, ALSeqMarker *m, u32 ticks); +void alSeqSetLoc(ALSeq *seq, ALSeqMarker *marker); +void alSeqGetLoc(ALSeq *seq, ALSeqMarker *marker); +/* + * Compact Sequence data representation routines + */ +void alCSeqNew(ALCSeq *seq, u8 *ptr); +void alCSeqNextEvent(ALCSeq *seq,ALEvent *evt); +s32 alCSeqGetTicks(ALCSeq *seq); +f32 alCSeqTicksToSec(ALCSeq *seq, s32 ticks, u32 tempo); +u32 alCSeqSecToTicks(ALCSeq *seq, f32 sec, u32 tempo); +void alCSeqNewMarker(ALCSeq *seq, ALCSeqMarker *m, u32 ticks); +void alCSeqSetLoc(ALCSeq *seq, ALCSeqMarker *marker); +void alCSeqGetLoc(ALCSeq *seq, ALCSeqMarker *marker); + +/* + * Sequence Player routines + */ +f32 alCents2Ratio(s32 cents); + +void alSeqpNew(ALSeqPlayer *seqp, ALSeqpConfig *config); +void alSeqpDelete(ALSeqPlayer *seqp); +void alSeqpSetSeq(ALSeqPlayer *seqp, ALSeq *seq); +ALSeq *alSeqpGetSeq(ALSeqPlayer *seqp); +void alSeqpPlay(ALSeqPlayer *seqp); +void alSeqpStop(ALSeqPlayer *seqp); +s32 alSeqpGetState(ALSeqPlayer *seqp); +void alSeqpSetBank(ALSeqPlayer *seqp, ALBank *b); +void alSeqpSetTempo(ALSeqPlayer *seqp, s32 tempo); +s32 alSeqpGetTempo(ALSeqPlayer *seqp); +s16 alSeqpGetVol(ALSeqPlayer *seqp); /* Master volume control */ +void alSeqpSetVol(ALSeqPlayer *seqp, s16 vol); +void alSeqpLoop(ALSeqPlayer *seqp, ALSeqMarker *start, ALSeqMarker *end, s32 count); + +void alSeqpSetChlProgram(ALSeqPlayer *seqp, u8 chan, u8 prog); +s32 alSeqpGetChlProgram(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlFXMix(ALSeqPlayer *seqp, u8 chan, u8 fxmix); +u8 alSeqpGetChlFXMix(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlVol(ALSeqPlayer *seqp, u8 chan, u8 vol); +u8 alSeqpGetChlVol(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlPan(ALSeqPlayer *seqp, u8 chan, ALPan pan); +ALPan alSeqpGetChlPan(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlPriority(ALSeqPlayer *seqp, u8 chan, u8 priority); +u8 alSeqpGetChlPriority(ALSeqPlayer *seqp, u8 chan); +void alSeqpSendMidi(ALSeqPlayer *seqp, s32 ticks, u8 status, u8 byte1, u8 byte2); /* Maintain backwards compatibility with old routine names. */ #define alCSPSetProgram alCSPSetChlProgram @@ -790,7 +909,6 @@ typedef struct { #define alCSPGetChannelPriority alCSPGetChlPriority - /*********************************************************************** * Sound Player stuff ***********************************************************************/ diff --git a/include/audio_internal.h b/include/audio_internal.h index 9cb74c0d..cf5f67f0 100644 --- a/include/audio_internal.h +++ b/include/audio_internal.h @@ -296,7 +296,20 @@ typedef struct PVoice_s { ALResampler resampler; ALEnvMixer envmixer; s32 offset; - s32 unkDC; + u8 unkDC; } PVoice; +/* + * prototypes for private driver functions + */ +ALParam *__allocParam(void); +void __freeParam(ALParam *param); +void __freePVoices(ALSynth *drvr, PVoice *pvoice); +void _collectPVoices(ALSynth *drvr); + +s32 __timeToSamples(ALSynth *ALSynth, s32 micros); +ALMicroTime _samplesToTime(ALSynth *synth, s32 samples); + +void _init_lpfilter(ALLowPass *lp); + #endif diff --git a/include/sys/asm.h b/include/sys/asm.h new file mode 100644 index 00000000..445a2bf3 --- /dev/null +++ b/include/sys/asm.h @@ -0,0 +1,72 @@ +/************************************************************************ + Copyright (C) 1998,1999 NINTENDO Co,Ltd, + Copyright (C) 1998,1999 MONEGI CORPORATION, + All Rights Reserved +This program is a trade secret of NINTENDO Co,Ltd and MONEGI Corp. +and it is not to be reproduced, published, disclosed to others, copied, +adapted, distributed, or displayed without the prior authorization of +NINTENDO Co,Ltd. and MONEGI Corp. Licensee agrees to attach or embed +this Notice on all copies of the program, including partial copies or +modified versions thereof. +*************************************************************************/ +/************************************************************************ + $Date: 1999/07/06 13:21:13 $ + $Revision: 1.1 $ + $Author: doseki $ +************************************************************************/ + +#ifndef __ASM_H__ +#define __ASM_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define _MIPS_ISA_MIPS1 1 /* R2/3K */ +#define _MIPS_ISA_MIPS2 2 /* R4K/6K */ +#define _MIPS_ISA_MIPS3 3 /* R4K */ +#define _MIPS_ISA_MIPS4 4 /* TFP */ + +#define _MIPS_SIM_ABI32 1 /* MIPS MSIG calling convention */ +#define _MIPS_SIM_NABI32 2 /* MIPS new 32-bit abi */ + /* NABI32 is 64bit calling convention but 32bit type sizes) */ +#define _MIPS_SIM_ABI64 3 /* MIPS 64 calling convention */ + +#define LEAF(x) \ + .globl x; \ + .ent x,0; \ +x:; \ + .frame sp,0,ra + +#define XLEAF(x) \ + .global x; + +#define END(proc) \ + .end proc + +#define ABS(x, y) \ + .globl x; \ + x = y + +#define EXPORT(x) \ + .globl x; \ +x: +/* +#define WEAK(x, y) \ + .weak x; \ + .set x,y; +*/ + +#define WEAK(x, y) + +#define STAY1(stmnt) .set noreorder; stmnt; .set reorder; +#define STAY2(stmnt, arg1) .set noreorder; stmnt, arg1; .set reorder; +#define STAY3(stmnt, arg1, arg2) .set noreorder; stmnt, arg1, arg2; .set reorder; +#define NOP .set noreorder; nop; .set reorder; +#define CACHE(op, reg) .set noreorder; cache op, reg; .set reorder; + +#ifdef __cplusplus +} +#endif + +#endif /* !__ASM_H__ */ diff --git a/include/sys/regdef.h b/include/sys/regdef.h new file mode 100644 index 00000000..ac9c109a --- /dev/null +++ b/include/sys/regdef.h @@ -0,0 +1,187 @@ +/************************************************************************ + Copyright (C) 1998,1999 NINTENDO Co,Ltd, + Copyright (C) 1998,1999 MONEGI CORPORATION, + All Rights Reserved +This program is a trade secret of NINTENDO Co,Ltd and MONEGI Corp. +and it is not to be reproduced, published, disclosed to others, copied, +adapted, distributed, or displayed without the prior authorization of +NINTENDO Co,Ltd. and MONEGI Corp. Licensee agrees to attach or embed +this Notice on all copies of the program, including partial copies or +modified versions thereof. +*************************************************************************/ +/************************************************************************ + $Date: 1999/07/06 13:21:13 $ + $Revision: 1.1 $ + $Author: doseki $ +************************************************************************/ + +#ifndef __REGDEF_H__ +#define __REGDEF_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef mips + +#if (_MIPS_SIM == _MIPS_SIM_ABI32) +#define zero $0 +#define AT $at +#define v0 $2 +#define v1 $3 +#define a0 $4 +#define a1 $5 +#define a2 $6 +#define a3 $7 +#define t0 $8 +#define t1 $9 +#define t2 $10 +#define t3 $11 +#define t4 $12 +#define ta0 $12 +#define t5 $13 +#define ta1 $13 +#define t6 $14 +#define ta2 $14 +#define t7 $15 +#define ta3 $15 +#define s0 $16 +#define s1 $17 +#define s2 $18 +#define s3 $19 +#define s4 $20 +#define s5 $21 +#define s6 $22 +#define s7 $23 +#define t8 $24 +#define t9 $25 +#define jp $25 +#define k0 $26 +#define k1 $27 +#define gp $28 +#define sp $29 +#define fp $30 +#define s8 $30 +#define ra $31 +#endif + +#if (_MIPS_SIM == _MIPS_SIM_ABI64) +#define zero $0 +#define AT $at +#define v0 $2 +#define v1 $3 +#define a0 $4 +#define a1 $5 +#define a2 $6 +#define a3 $7 +#define a4 $8 +#define ta0 $8 +#define a5 $9 +#define ta1 $9 +#define a6 $10 +#define ta2 $10 +#define a7 $11 +#define ta3 $11 +#define t0 $12 +#define t1 $13 +#define t2 $14 +#define t3 $15 +#define s0 $16 +#define s1 $17 +#define s2 $18 +#define s3 $19 +#define s4 $20 +#define s5 $21 +#define s6 $22 +#define s7 $23 +#define t8 $24 +#define t9 $25 +#define jp $25 +#define k0 $26 +#define k1 $27 +#define gp $28 +#define sp $29 +#define fp $30 +#define s8 $30 +#define ra $31 +#endif + +#if (_MIPS_SIM == _MIPS_SIM_ABI32) +#define fv0 $f0 +#define fv0f $f1 +#define fv1 $f2 +#define fv1f $f3 +#define fa0 $f12 +#define fa0f $f13 +#define fa1 $f14 +#define fa1f $f15 +#define ft0 $f4 +#define ft0f $f5 +#define ft1 $f6 +#define ft1f $f7 +#define ft2 $f8 +#define ft2f $f9 +#define ft3 $f10 +#define ft3f $f11 +#define ft4 $f16 +#define ft4f $f17 +#define ft5 $f18 +#define ft5f $f19 +#define fs0 $f20 +#define fs0f $f21 +#define fs1 $f22 +#define fs1f $f23 +#define fs2 $f24 +#define fs2f $f25 +#define fs3 $f26 +#define fs3f $f27 +#define fs4 $f28 +#define fs4f $f29 +#define fs5 $f30 +#define fs5f $f31 +#endif + +#if (_MIPS_SIM == _MIPS_SIM_ABI64) +#define fv0 $f0 +#define fv1 $f2 +#define fa0 $f12 +#define fa1 $f13 +#define fa2 $f14 +#define fa3 $f15 +#define fa4 $f16 +#define fa5 $f17 +#define fa6 $f18 +#define fa7 $f19 +#define ft0 $f4 +#define ft1 $f5 +#define ft2 $f6 +#define ft3 $f7 +#define ft4 $f8 +#define ft5 $f9 +#define ft6 $f10 +#define ft7 $f11 +#define ft8 $f20 +#define ft9 $f21 +#define ft10 $f22 +#define ft11 $f23 +#define ft12 $f1 +#define ft13 $f3 +#define fs0 $f24 +#define fs1 $f25 +#define fs2 $f26 +#define fs3 $f27 +#define fs4 $f28 +#define fs5 $f29 +#define fs6 $f30 +#define fs7 $f31 +#endif + +#define fcr31 $31 + +#endif /* mips */ + +#ifdef __cplusplus +} +#endif + +#endif /* !__REGDEF_H__ */ diff --git a/lib/asm/exception/__osDispatchThread.s b/lib/asm/exception/__osDispatchThread.s index 72943148..8acbcb76 100644 --- a/lib/asm/exception/__osDispatchThread.s +++ b/lib/asm/exception/__osDispatchThread.s @@ -83,8 +83,8 @@ glabel __osDispatchThread /* 0D4164 800D3564 001AD402 */ srl $k0, $k0, 0x10 /* 0D4168 800D3568 037AD824 */ and $k1, $k1, $k0 /* 0D416C 800D356C 001BD840 */ sll $k1, $k1, 1 -/* 0D4170 800D3570 3C1A800F */ lui $k0, %hi(D_800E94D0) # $k0, 0x800f -/* 0D4174 800D3574 275A94D0 */ addiu $k0, %lo(D_800E94D0) # addiu $k0, $k0, -0x6b30 +/* 0D4170 800D3570 3C1A800F */ lui $k0, %hi(__osRcpImTable) # $k0, 0x800f +/* 0D4174 800D3574 275A94D0 */ addiu $k0, %lo(__osRcpImTable) # addiu $k0, $k0, -0x6b30 /* 0D4178 800D3578 037AD821 */ addu $k1, $k1, $k0 /* 0D417C 800D357C 977B0000 */ lhu $k1, ($k1) /* 0D4180 800D3580 3C1AA430 */ lui $k0, %hi(MI_INTR_MASK_REG) # $k0, 0xa430 diff --git a/lib/asm/non_matchings/alBnkfNew/_bnkfPatchBank.s b/lib/asm/non_matchings/alBnkfNew/_bnkfPatchBank.s deleted file mode 100644 index 8e62cf81..00000000 --- a/lib/asm/non_matchings/alBnkfNew/_bnkfPatchBank.s +++ /dev/null @@ -1,69 +0,0 @@ -glabel _bnkfPatchBank -/* 0C81B0 800C75B0 908E0003 */ lbu $t6, 3($a0) -/* 0C81B4 800C75B4 15C00037 */ bnez $t6, .L800C7694 -/* 0C81B8 800C75B8 00000000 */ nop -/* 0C81BC 800C75BC 848F000E */ lh $t7, 0xe($a0) -/* 0C81C0 800C75C0 24090001 */ li $t1, 1 -/* 0C81C4 800C75C4 A0890003 */ sb $t1, 3($a0) -/* 0C81C8 800C75C8 19E00032 */ blez $t7, .L800C7694 -/* 0C81CC 800C75CC 00001025 */ move $v0, $zero -/* 0C81D0 800C75D0 00801825 */ move $v1, $a0 -/* 0C81D4 800C75D4 240A0001 */ li $t2, 1 -/* 0C81D8 800C75D8 8C780010 */ lw $t8, 0x10($v1) -.L800C75DC: -/* 0C81DC 800C75DC 0305C821 */ addu $t9, $t8, $a1 -/* 0C81E0 800C75E0 AC790010 */ sw $t9, 0x10($v1) -/* 0C81E4 800C75E4 932E000E */ lbu $t6, 0xe($t9) -/* 0C81E8 800C75E8 03203025 */ move $a2, $t9 -/* 0C81EC 800C75EC 55C00024 */ bnezl $t6, .L800C7680 -/* 0C81F0 800C75F0 8498000E */ lh $t8, 0xe($a0) -/* 0C81F4 800C75F4 8F2F0000 */ lw $t7, ($t9) -/* 0C81F8 800C75F8 A329000E */ sb $t1, 0xe($t9) -/* 0C81FC 800C75FC 01E5C021 */ addu $t8, $t7, $a1 -/* 0C8200 800C7600 AF380000 */ sw $t8, ($t9) -/* 0C8204 800C7604 8F390004 */ lw $t9, 4($t9) -/* 0C8208 800C7608 8CCF0008 */ lw $t7, 8($a2) -/* 0C820C 800C760C 03257021 */ addu $t6, $t9, $a1 -/* 0C8210 800C7610 01E5C021 */ addu $t8, $t7, $a1 -/* 0C8214 800C7614 ACCE0004 */ sw $t6, 4($a2) -/* 0C8218 800C7618 ACD80008 */ sw $t8, 8($a2) -/* 0C821C 800C761C 93190009 */ lbu $t9, 9($t8) -/* 0C8220 800C7620 03004025 */ move $t0, $t8 -/* 0C8224 800C7624 57200016 */ bnezl $t9, .L800C7680 -/* 0C8228 800C7628 8498000E */ lh $t8, 0xe($a0) -/* 0C822C 800C762C 8F0E0000 */ lw $t6, ($t8) -/* 0C8230 800C7630 93060008 */ lbu $a2, 8($t8) -/* 0C8234 800C7634 A3090009 */ sb $t1, 9($t8) -/* 0C8238 800C7638 01C77821 */ addu $t7, $t6, $a3 -/* 0C823C 800C763C 14C00009 */ bnez $a2, .L800C7664 -/* 0C8240 800C7640 AF0F0000 */ sw $t7, ($t8) -/* 0C8244 800C7644 8F180010 */ lw $t8, 0x10($t8) -/* 0C8248 800C7648 8D06000C */ lw $a2, 0xc($t0) -/* 0C824C 800C764C 0305C821 */ addu $t9, $t8, $a1 -/* 0C8250 800C7650 10C0000A */ beqz $a2, .L800C767C -/* 0C8254 800C7654 AD190010 */ sw $t9, 0x10($t0) -/* 0C8258 800C7658 00C57021 */ addu $t6, $a2, $a1 -/* 0C825C 800C765C 10000007 */ b .L800C767C -/* 0C8260 800C7660 AD0E000C */ sw $t6, 0xc($t0) -.L800C7664: -/* 0C8264 800C7664 55460006 */ bnel $t2, $a2, .L800C7680 -/* 0C8268 800C7668 8498000E */ lh $t8, 0xe($a0) -/* 0C826C 800C766C 8D06000C */ lw $a2, 0xc($t0) -/* 0C8270 800C7670 10C00002 */ beqz $a2, .L800C767C -/* 0C8274 800C7674 00C57821 */ addu $t7, $a2, $a1 -/* 0C8278 800C7678 AD0F000C */ sw $t7, 0xc($t0) -.L800C767C: -/* 0C827C 800C767C 8498000E */ lh $t8, 0xe($a0) -.L800C7680: -/* 0C8280 800C7680 24420001 */ addiu $v0, $v0, 1 -/* 0C8284 800C7684 24630004 */ addiu $v1, $v1, 4 -/* 0C8288 800C7688 0058082A */ slt $at, $v0, $t8 -/* 0C828C 800C768C 5420FFD3 */ bnezl $at, .L800C75DC -/* 0C8290 800C7690 8C780010 */ lw $t8, 0x10($v1) -.L800C7694: -/* 0C8294 800C7694 03E00008 */ jr $ra -/* 0C8298 800C7698 00000000 */ nop - -/* 0C829C 800C769C 03E00008 */ jr $ra -/* 0C82A0 800C76A0 00000000 */ nop - diff --git a/lib/asm/non_matchings/alBnkfNew/alBnkfNew.s b/lib/asm/non_matchings/alBnkfNew/alBnkfNew.s deleted file mode 100644 index 106aad45..00000000 --- a/lib/asm/non_matchings/alBnkfNew/alBnkfNew.s +++ /dev/null @@ -1,74 +0,0 @@ -glabel alBnkfNew -/* 0C82A4 800C76A4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C82A8 800C76A8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C82AC 800C76AC AFB40028 */ sw $s4, 0x28($sp) -/* 0C82B0 800C76B0 AFB30024 */ sw $s3, 0x24($sp) -/* 0C82B4 800C76B4 AFB20020 */ sw $s2, 0x20($sp) -/* 0C82B8 800C76B8 AFB1001C */ sw $s1, 0x1c($sp) -/* 0C82BC 800C76BC AFB00018 */ sw $s0, 0x18($sp) -/* 0C82C0 800C76C0 848E0000 */ lh $t6, ($a0) -/* 0C82C4 800C76C4 24014231 */ li $at, 16945 -/* 0C82C8 800C76C8 00808025 */ move $s0, $a0 -/* 0C82CC 800C76CC 15C1002E */ bne $t6, $at, .L800C7788 -/* 0C82D0 800C76D0 00A08825 */ move $s1, $a1 -/* 0C82D4 800C76D4 848F0002 */ lh $t7, 2($a0) -/* 0C82D8 800C76D8 00009825 */ move $s3, $zero -/* 0C82DC 800C76DC 00809025 */ move $s2, $a0 -/* 0C82E0 800C76E0 19E00029 */ blez $t7, .L800C7788 -/* 0C82E4 800C76E4 24140001 */ li $s4, 1 -/* 0C82E8 800C76E8 8E580004 */ lw $t8, 4($s2) -.L800C76EC: -/* 0C82EC 800C76EC 0310C821 */ addu $t9, $t8, $s0 -/* 0C82F0 800C76F0 1320001F */ beqz $t9, .L800C7770 -/* 0C82F4 800C76F4 AE590004 */ sw $t9, 4($s2) -/* 0C82F8 800C76F8 932E0002 */ lbu $t6, 2($t9) -/* 0C82FC 800C76FC 03206825 */ move $t5, $t9 -/* 0C8300 800C7700 55C0001C */ bnezl $t6, .L800C7774 -/* 0C8304 800C7704 86180002 */ lh $t8, 2($s0) -/* 0C8308 800C7708 8F220008 */ lw $v0, 8($t9) -/* 0C830C 800C770C A3340002 */ sb $s4, 2($t9) -/* 0C8310 800C7710 00006025 */ move $t4, $zero -/* 0C8314 800C7714 10400005 */ beqz $v0, .L800C772C -/* 0C8318 800C7718 00502021 */ addu $a0, $v0, $s0 -/* 0C831C 800C771C AF240008 */ sw $a0, 8($t9) -/* 0C8320 800C7720 02002825 */ move $a1, $s0 -/* 0C8324 800C7724 0C031D6C */ jal _bnkfPatchBank -/* 0C8328 800C7728 02203825 */ move $a3, $s1 -.L800C772C: -/* 0C832C 800C772C 85B80000 */ lh $t8, ($t5) -/* 0C8330 800C7730 01A05825 */ move $t3, $t5 -/* 0C8334 800C7734 5B00000F */ blezl $t8, .L800C7774 -/* 0C8338 800C7738 86180002 */ lh $t8, 2($s0) -/* 0C833C 800C773C 8D79000C */ lw $t9, 0xc($t3) -.L800C7740: -/* 0C8340 800C7740 02002825 */ move $a1, $s0 -/* 0C8344 800C7744 03302021 */ addu $a0, $t9, $s0 -/* 0C8348 800C7748 10800003 */ beqz $a0, .L800C7758 -/* 0C834C 800C774C AD64000C */ sw $a0, 0xc($t3) -/* 0C8350 800C7750 0C031D6C */ jal _bnkfPatchBank -/* 0C8354 800C7754 02203825 */ move $a3, $s1 -.L800C7758: -/* 0C8358 800C7758 85AF0000 */ lh $t7, ($t5) -/* 0C835C 800C775C 258C0001 */ addiu $t4, $t4, 1 -/* 0C8360 800C7760 256B0004 */ addiu $t3, $t3, 4 -/* 0C8364 800C7764 018F082A */ slt $at, $t4, $t7 -/* 0C8368 800C7768 5420FFF5 */ bnezl $at, .L800C7740 -/* 0C836C 800C776C 8D79000C */ lw $t9, 0xc($t3) -.L800C7770: -/* 0C8370 800C7770 86180002 */ lh $t8, 2($s0) -.L800C7774: -/* 0C8374 800C7774 26730001 */ addiu $s3, $s3, 1 -/* 0C8378 800C7778 26520004 */ addiu $s2, $s2, 4 -/* 0C837C 800C777C 0278082A */ slt $at, $s3, $t8 -/* 0C8380 800C7780 5420FFDA */ bnezl $at, .L800C76EC -/* 0C8384 800C7784 8E580004 */ lw $t8, 4($s2) -.L800C7788: -/* 0C8388 800C7788 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C838C 800C778C 8FB00018 */ lw $s0, 0x18($sp) -/* 0C8390 800C7790 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C8394 800C7794 8FB20020 */ lw $s2, 0x20($sp) -/* 0C8398 800C7798 8FB30024 */ lw $s3, 0x24($sp) -/* 0C839C 800C779C 8FB40028 */ lw $s4, 0x28($sp) -/* 0C83A0 800C77A0 03E00008 */ jr $ra -/* 0C83A4 800C77A4 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/lib/asm/non_matchings/alBnkfNew/alSeqFileNew.s b/lib/asm/non_matchings/alBnkfNew/alSeqFileNew.s deleted file mode 100644 index e77f2ea1..00000000 --- a/lib/asm/non_matchings/alBnkfNew/alSeqFileNew.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel alSeqFileNew -/* 0C83A8 800C77A8 848E0002 */ lh $t6, 2($a0) -/* 0C83AC 800C77AC 00001025 */ move $v0, $zero -/* 0C83B0 800C77B0 00801825 */ move $v1, $a0 -/* 0C83B4 800C77B4 19C0000A */ blez $t6, .L800C77E0 -/* 0C83B8 800C77B8 00000000 */ nop -/* 0C83BC 800C77BC 8C6F0004 */ lw $t7, 4($v1) -.L800C77C0: -/* 0C83C0 800C77C0 24420001 */ addiu $v0, $v0, 1 -/* 0C83C4 800C77C4 24630008 */ addiu $v1, $v1, 8 -/* 0C83C8 800C77C8 01E5C021 */ addu $t8, $t7, $a1 -/* 0C83CC 800C77CC AC78FFFC */ sw $t8, -4($v1) -/* 0C83D0 800C77D0 84990002 */ lh $t9, 2($a0) -/* 0C83D4 800C77D4 0059082A */ slt $at, $v0, $t9 -/* 0C83D8 800C77D8 5420FFF9 */ bnezl $at, .L800C77C0 -/* 0C83DC 800C77DC 8C6F0004 */ lw $t7, 4($v1) -.L800C77E0: -/* 0C83E0 800C77E0 03E00008 */ jr $ra -/* 0C83E4 800C77E4 00000000 */ nop - -/* 0C83E8 800C77E8 00000000 */ nop -/* 0C83EC 800C77EC 00000000 */ nop - diff --git a/lib/asm/non_matchings/alSynAllocFX/alSynAllocFX.s b/lib/asm/non_matchings/alSynAllocFX/alSynAllocFX.s deleted file mode 100644 index 86452f31..00000000 --- a/lib/asm/non_matchings/alSynAllocFX/alSynAllocFX.s +++ /dev/null @@ -1,43 +0,0 @@ -glabel alSynAllocFX -/* 066460 80065860 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 066464 80065864 AFA50024 */ sw $a1, 0x24($sp) -/* 066468 80065868 AFA60028 */ sw $a2, 0x28($sp) -/* 06646C 8006586C 87A60026 */ lh $a2, 0x26($sp) -/* 066470 80065870 AFB10018 */ sw $s1, 0x18($sp) -/* 066474 80065874 00068880 */ sll $s1, $a2, 2 -/* 066478 80065878 02268821 */ addu $s1, $s1, $a2 -/* 06647C 8006587C AFBF001C */ sw $ra, 0x1c($sp) -/* 066480 80065880 AFB00014 */ sw $s0, 0x14($sp) -/* 066484 80065884 00118880 */ sll $s1, $s1, 2 -/* 066488 80065888 8C8E0034 */ lw $t6, 0x34($a0) -/* 06648C 8006588C 02268823 */ subu $s1, $s1, $a2 -/* 066490 80065890 00808025 */ move $s0, $a0 -/* 066494 80065894 00118880 */ sll $s1, $s1, 2 -/* 066498 80065898 8FA50028 */ lw $a1, 0x28($sp) -/* 06649C 8006589C 01D12021 */ addu $a0, $t6, $s1 -/* 0664A0 800658A0 0C019282 */ jal alFxNew -/* 0664A4 800658A4 24840020 */ addiu $a0, $a0, 0x20 -/* 0664A8 800658A8 8E0F0034 */ lw $t7, 0x34($s0) -/* 0664AC 800658AC 24050001 */ li $a1, 1 -/* 0664B0 800658B0 01F13021 */ addu $a2, $t7, $s1 -/* 0664B4 800658B4 0C018FE5 */ jal alFxParam -/* 0664B8 800658B8 24C40020 */ addiu $a0, $a2, 0x20 -/* 0664BC 800658BC 8E180034 */ lw $t8, 0x34($s0) -/* 0664C0 800658C0 8E040030 */ lw $a0, 0x30($s0) -/* 0664C4 800658C4 03113021 */ addu $a2, $t8, $s1 -/* 0664C8 800658C8 24C60020 */ addiu $a2, $a2, 0x20 -/* 0664CC 800658CC 0C0330E4 */ jal alMainBusParam -/* 0664D0 800658D0 24050002 */ li $a1, 2 -/* 0664D4 800658D4 8E190034 */ lw $t9, 0x34($s0) -/* 0664D8 800658D8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0664DC 800658DC 03311021 */ addu $v0, $t9, $s1 -/* 0664E0 800658E0 8FB10018 */ lw $s1, 0x18($sp) -/* 0664E4 800658E4 8FB00014 */ lw $s0, 0x14($sp) -/* 0664E8 800658E8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0664EC 800658EC 03E00008 */ jr $ra -/* 0664F0 800658F0 24420020 */ addiu $v0, $v0, 0x20 - -/* 0664F4 800658F4 00000000 */ nop -/* 0664F8 800658F8 00000000 */ nop -/* 0664FC 800658FC 00000000 */ nop - diff --git a/lib/asm/non_matchings/csplayer/__CSPVoiceHandler.s b/lib/asm/non_matchings/csplayer/__CSPVoiceHandler.s deleted file mode 100644 index 88aa62ce..00000000 --- a/lib/asm/non_matchings/csplayer/__CSPVoiceHandler.s +++ /dev/null @@ -1,409 +0,0 @@ -.late_rodata -glabel jpt_800E6C30 -.word L8006247C, L80062978, L800626F8, L80062978, L80062978, L800624AC, L800624FC, L8006270C, L80062978, L8006248C, L80062720, L80062978, L80062924, L80062944, L80062968, L80062788, L800627AC, L80062880, L80062978, L80062978, L80062978, L800626F8, L80062564, L80062668 - -.text -glabel __CSPVoiceHandler -/* 063008 80062408 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 06300C 8006240C AFBE0038 */ sw $fp, 0x38($sp) -/* 063010 80062410 AFB70034 */ sw $s7, 0x34($sp) -/* 063014 80062414 AFB60030 */ sw $s6, 0x30($sp) -/* 063018 80062418 AFB5002C */ sw $s5, 0x2c($sp) -/* 06301C 8006241C AFB20020 */ sw $s2, 0x20($sp) -/* 063020 80062420 248E0038 */ addiu $t6, $a0, 0x38 -/* 063024 80062424 00809025 */ move $s2, $a0 -/* 063028 80062428 AFBF003C */ sw $ra, 0x3c($sp) -/* 06302C 8006242C AFB40028 */ sw $s4, 0x28($sp) -/* 063030 80062430 AFB30024 */ sw $s3, 0x24($sp) -/* 063034 80062434 AFB1001C */ sw $s1, 0x1c($sp) -/* 063038 80062438 AFB00018 */ sw $s0, 0x18($sp) -/* 06303C 8006243C AFAE0048 */ sw $t6, 0x48($sp) -/* 063040 80062440 24150014 */ li $s5, 20 -/* 063044 80062444 2416007F */ li $s6, 127 -/* 063048 80062448 24970048 */ addiu $s7, $a0, 0x48 -/* 06304C 8006244C 27BE006C */ addiu $fp, $sp, 0x6c -.L80062450: -/* 063050 80062450 964F0038 */ lhu $t7, 0x38($s2) -/* 063054 80062454 00000000 */ nop -/* 063058 80062458 2DE10018 */ sltiu $at, $t7, 0x18 -/* 06305C 8006245C 10200146 */ beqz $at, .L80062978 -/* 063060 80062460 000F7880 */ sll $t7, $t7, 2 -/* 063064 80062464 3C01800E */ lui $at, %hi(jpt_800E6C30) # $at, 0x800e -/* 063068 80062468 002F0821 */ addu $at, $at, $t7 -/* 06306C 8006246C 8C2F6C30 */ lw $t7, %lo(jpt_800E6C30)($at) -/* 063070 80062470 00000000 */ nop -/* 063074 80062474 01E00008 */ jr $t7 -/* 063078 80062478 00000000 */ nop -glabel L8006247C -/* 06307C 8006247C 0C018A8F */ jal __CSPHandleNextSeqEvent -/* 063080 80062480 02402025 */ move $a0, $s2 -/* 063084 80062484 1000013D */ b .L8006297C -/* 063088 80062488 8FA50048 */ lw $a1, 0x48($sp) -glabel L8006248C -/* 06308C 8006248C 24180009 */ li $t8, 9 -/* 063090 80062490 A7B8006C */ sh $t8, 0x6c($sp) -/* 063094 80062494 8E46005C */ lw $a2, 0x5c($s2) -/* 063098 80062498 02E02025 */ move $a0, $s7 -/* 06309C 8006249C 0C03246B */ jal alEvtqPostEvent -/* 0630A0 800624A0 03C02825 */ move $a1, $fp -/* 0630A4 800624A4 10000135 */ b .L8006297C -/* 0630A8 800624A8 8FA50048 */ lw $a1, 0x48($sp) -glabel L800624AC -/* 0630AC 800624AC 8E50003C */ lw $s0, 0x3c($s2) -/* 0630B0 800624B0 8E440014 */ lw $a0, 0x14($s2) -/* 0630B4 800624B4 0C03262C */ jal alSynStopVoice -/* 0630B8 800624B8 02002825 */ move $a1, $s0 -/* 0630BC 800624BC 8E440014 */ lw $a0, 0x14($s2) -/* 0630C0 800624C0 0C03264C */ jal alSynFreeVoice -/* 0630C4 800624C4 02002825 */ move $a1, $s0 -/* 0630C8 800624C8 8E110010 */ lw $s1, 0x10($s0) -/* 0630CC 800624CC 02402025 */ move $a0, $s2 -/* 0630D0 800624D0 92390037 */ lbu $t9, 0x37($s1) -/* 0630D4 800624D4 00000000 */ nop -/* 0630D8 800624D8 13200003 */ beqz $t9, .L800624E8 -/* 0630DC 800624DC 00000000 */ nop -/* 0630E0 800624E0 0C002BBF */ jal __seqpStopOsc -/* 0630E4 800624E4 02202825 */ move $a1, $s1 -.L800624E8: -/* 0630E8 800624E8 02402025 */ move $a0, $s2 -/* 0630EC 800624EC 0C0029F1 */ jal __unmapVoice -/* 0630F0 800624F0 02002825 */ move $a1, $s0 -/* 0630F4 800624F4 10000121 */ b .L8006297C -/* 0630F8 800624F8 8FA50048 */ lw $a1, 0x48($sp) -glabel L800624FC -/* 0630FC 800624FC 8E50003C */ lw $s0, 0x3c($s2) -/* 063100 80062500 24090001 */ li $t1, 1 -/* 063104 80062504 8E110010 */ lw $s1, 0x10($s0) -/* 063108 80062508 00000000 */ nop -/* 06310C 8006250C 92280034 */ lbu $t0, 0x34($s1) -/* 063110 80062510 02202025 */ move $a0, $s1 -/* 063114 80062514 15000002 */ bnez $t0, .L80062520 -/* 063118 80062518 00000000 */ nop -/* 06311C 8006251C A2290034 */ sb $t1, 0x34($s1) -.L80062520: -/* 063120 80062520 8E530040 */ lw $s3, 0x40($s2) -/* 063124 80062524 8E4A001C */ lw $t2, 0x1c($s2) -/* 063128 80062528 02402825 */ move $a1, $s2 -/* 06312C 8006252C 01535821 */ addu $t3, $t2, $s3 -/* 063130 80062530 AE2B0024 */ sw $t3, 0x24($s1) -/* 063134 80062534 924C0044 */ lbu $t4, 0x44($s2) -/* 063138 80062538 0C002A7E */ jal __vsVol -/* 06313C 8006253C A22C0030 */ sb $t4, 0x30($s1) -/* 063140 80062540 00023400 */ sll $a2, $v0, 0x10 -/* 063144 80062544 00066C03 */ sra $t5, $a2, 0x10 -/* 063148 80062548 8E440014 */ lw $a0, 0x14($s2) -/* 06314C 8006254C 01A03025 */ move $a2, $t5 -/* 063150 80062550 02002825 */ move $a1, $s0 -/* 063154 80062554 0C032594 */ jal alSynSetVol -/* 063158 80062558 02603825 */ move $a3, $s3 -/* 06315C 8006255C 10000107 */ b .L8006297C -/* 063160 80062560 8FA50048 */ lw $a1, 0x48($sp) -glabel L80062564 -/* 063164 80062564 8E540040 */ lw $s4, 0x40($s2) -/* 063168 80062568 8E590078 */ lw $t9, 0x78($s2) -/* 06316C 8006256C 8E51003C */ lw $s1, 0x3c($s2) -/* 063170 80062570 27A50058 */ addiu $a1, $sp, 0x58 -/* 063174 80062574 0320F809 */ jalr $t9 -/* 063178 80062578 02802025 */ move $a0, $s4 -/* 06317C 8006257C 444EF800 */ cfc1 $t6, $31 -/* 063180 80062580 240F0001 */ li $t7, 1 -/* 063184 80062584 44CFF800 */ ctc1 $t7, $31 -/* 063188 80062588 C7A40058 */ lwc1 $f4, 0x58($sp) -/* 06318C 8006258C 00409825 */ move $s3, $v0 -/* 063190 80062590 460021A4 */ cvt.w.s $f6, $f4 -/* 063194 80062594 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 063198 80062598 444FF800 */ cfc1 $t7, $31 -/* 06319C 8006259C 02202025 */ move $a0, $s1 -/* 0631A0 800625A0 31EF0078 */ andi $t7, $t7, 0x78 -/* 0631A4 800625A4 11E00012 */ beqz $t7, .L800625F0 -/* 0631A8 800625A8 02402825 */ move $a1, $s2 -/* 0631AC 800625AC 44813000 */ mtc1 $at, $f6 -/* 0631B0 800625B0 240F0001 */ li $t7, 1 -/* 0631B4 800625B4 46062181 */ sub.s $f6, $f4, $f6 -/* 0631B8 800625B8 3C018000 */ lui $at, 0x8000 -/* 0631BC 800625BC 44CFF800 */ ctc1 $t7, $31 -/* 0631C0 800625C0 00000000 */ nop -/* 0631C4 800625C4 460031A4 */ cvt.w.s $f6, $f6 -/* 0631C8 800625C8 444FF800 */ cfc1 $t7, $31 -/* 0631CC 800625CC 00000000 */ nop -/* 0631D0 800625D0 31EF0078 */ andi $t7, $t7, 0x78 -/* 0631D4 800625D4 15E00004 */ bnez $t7, .L800625E8 -/* 0631D8 800625D8 00000000 */ nop -/* 0631DC 800625DC 440F3000 */ mfc1 $t7, $f6 -/* 0631E0 800625E0 10000007 */ b .L80062600 -/* 0631E4 800625E4 01E17825 */ or $t7, $t7, $at -.L800625E8: -/* 0631E8 800625E8 10000005 */ b .L80062600 -/* 0631EC 800625EC 240FFFFF */ li $t7, -1 -.L800625F0: -/* 0631F0 800625F0 440F3000 */ mfc1 $t7, $f6 -/* 0631F4 800625F4 00000000 */ nop -/* 0631F8 800625F8 05E0FFFB */ bltz $t7, .L800625E8 -/* 0631FC 800625FC 00000000 */ nop -.L80062600: -/* 063200 80062600 44CEF800 */ ctc1 $t6, $31 -/* 063204 80062604 0C002A7E */ jal __vsVol -/* 063208 80062608 A22F0036 */ sb $t7, 0x36($s1) -/* 06320C 8006260C 00028400 */ sll $s0, $v0, 0x10 -/* 063210 80062610 0010C403 */ sra $t8, $s0, 0x10 -/* 063214 80062614 8E45001C */ lw $a1, 0x1c($s2) -/* 063218 80062618 03008025 */ move $s0, $t8 -/* 06321C 8006261C 0C002AA2 */ jal __vsDelta -/* 063220 80062620 02202025 */ move $a0, $s1 -/* 063224 80062624 00103400 */ sll $a2, $s0, 0x10 -/* 063228 80062628 00064403 */ sra $t0, $a2, 0x10 -/* 06322C 8006262C 8E440014 */ lw $a0, 0x14($s2) -/* 063230 80062630 01003025 */ move $a2, $t0 -/* 063234 80062634 26250004 */ addiu $a1, $s1, 4 -/* 063238 80062638 0C032594 */ jal alSynSetVol -/* 06323C 8006263C 00403825 */ move $a3, $v0 -/* 063240 80062640 24090016 */ li $t1, 22 -/* 063244 80062644 A7A9006C */ sh $t1, 0x6c($sp) -/* 063248 80062648 AFB10070 */ sw $s1, 0x70($sp) -/* 06324C 8006264C AFB40074 */ sw $s4, 0x74($sp) -/* 063250 80062650 02E02025 */ move $a0, $s7 -/* 063254 80062654 03C02825 */ move $a1, $fp -/* 063258 80062658 0C03246B */ jal alEvtqPostEvent -/* 06325C 8006265C 02603025 */ move $a2, $s3 -/* 063260 80062660 100000C6 */ b .L8006297C -/* 063264 80062664 8FA50048 */ lw $a1, 0x48($sp) -glabel L80062668 -/* 063268 80062668 8E540040 */ lw $s4, 0x40($s2) -/* 06326C 8006266C 8E590078 */ lw $t9, 0x78($s2) -/* 063270 80062670 8E51003C */ lw $s1, 0x3c($s2) -/* 063274 80062674 92500044 */ lbu $s0, 0x44($s2) -/* 063278 80062678 27A50058 */ addiu $a1, $sp, 0x58 -/* 06327C 8006267C 0320F809 */ jalr $t9 -/* 063280 80062680 02802025 */ move $a0, $s4 -/* 063284 80062684 02150019 */ multu $s0, $s5 -/* 063288 80062688 C7A80058 */ lwc1 $f8, 0x58($sp) -/* 06328C 8006268C C6300028 */ lwc1 $f16, 0x28($s1) -/* 063290 80062690 E628002C */ swc1 $f8, 0x2c($s1) -/* 063294 80062694 C632002C */ lwc1 $f18, 0x2c($s1) -/* 063298 80062698 8E4A0060 */ lw $t2, 0x60($s2) -/* 06329C 8006269C 46128102 */ mul.s $f4, $f16, $f18 -/* 0632A0 800626A0 8E440014 */ lw $a0, 0x14($s2) -/* 0632A4 800626A4 00409825 */ move $s3, $v0 -/* 0632A8 800626A8 26250004 */ addiu $a1, $s1, 4 -/* 0632AC 800626AC 00005812 */ mflo $t3 -/* 0632B0 800626B0 014B6021 */ addu $t4, $t2, $t3 -/* 0632B4 800626B4 C58A000C */ lwc1 $f10, 0xc($t4) -/* 0632B8 800626B8 00000000 */ nop -/* 0632BC 800626BC 46045182 */ mul.s $f6, $f10, $f4 -/* 0632C0 800626C0 44063000 */ mfc1 $a2, $f6 -/* 0632C4 800626C4 0C0325E0 */ jal alSynSetPitch -/* 0632C8 800626C8 00000000 */ nop -/* 0632CC 800626CC 240D0017 */ li $t5, 23 -/* 0632D0 800626D0 A7AD006C */ sh $t5, 0x6c($sp) -/* 0632D4 800626D4 AFB10070 */ sw $s1, 0x70($sp) -/* 0632D8 800626D8 AFB40074 */ sw $s4, 0x74($sp) -/* 0632DC 800626DC A3B00078 */ sb $s0, 0x78($sp) -/* 0632E0 800626E0 02E02025 */ move $a0, $s7 -/* 0632E4 800626E4 03C02825 */ move $a1, $fp -/* 0632E8 800626E8 0C03246B */ jal alEvtqPostEvent -/* 0632EC 800626EC 02603025 */ move $a2, $s3 -/* 0632F0 800626F0 100000A2 */ b .L8006297C -/* 0632F4 800626F4 8FA50048 */ lw $a1, 0x48($sp) -glabel L800626F8 -/* 0632F8 800626F8 8FA50048 */ lw $a1, 0x48($sp) -/* 0632FC 800626FC 0C018AC0 */ jal __CSPHandleMIDIMsg -/* 063300 80062700 02402025 */ move $a0, $s2 -/* 063304 80062704 1000009D */ b .L8006297C -/* 063308 80062708 8FA50048 */ lw $a1, 0x48($sp) -glabel L8006270C -/* 06330C 8006270C 8FA50048 */ lw $a1, 0x48($sp) -/* 063310 80062710 0C018DFB */ jal __CSPHandleMetaMsg -/* 063314 80062714 02402025 */ move $a0, $s2 -/* 063318 80062718 10000098 */ b .L8006297C -/* 06331C 8006271C 8FA50048 */ lw $a1, 0x48($sp) -glabel L80062720 -/* 063320 80062720 864E003C */ lh $t6, 0x3c($s2) -/* 063324 80062724 8E510064 */ lw $s1, 0x64($s2) -/* 063328 80062728 A64E0032 */ sh $t6, 0x32($s2) -/* 06332C 8006272C 12200092 */ beqz $s1, .L80062978 -/* 063330 80062730 02202025 */ move $a0, $s1 -.L80062734: -/* 063334 80062734 0C002A7E */ jal __vsVol -/* 063338 80062738 02402825 */ move $a1, $s2 -/* 06333C 8006273C 00028400 */ sll $s0, $v0, 0x10 -/* 063340 80062740 00107C03 */ sra $t7, $s0, 0x10 -/* 063344 80062744 8E45001C */ lw $a1, 0x1c($s2) -/* 063348 80062748 01E08025 */ move $s0, $t7 -/* 06334C 8006274C 0C002AA2 */ jal __vsDelta -/* 063350 80062750 02202025 */ move $a0, $s1 -/* 063354 80062754 00103400 */ sll $a2, $s0, 0x10 -/* 063358 80062758 0006C403 */ sra $t8, $a2, 0x10 -/* 06335C 8006275C 8E440014 */ lw $a0, 0x14($s2) -/* 063360 80062760 03003025 */ move $a2, $t8 -/* 063364 80062764 26250004 */ addiu $a1, $s1, 4 -/* 063368 80062768 0C032594 */ jal alSynSetVol -/* 06336C 8006276C 00403825 */ move $a3, $v0 -/* 063370 80062770 8E310000 */ lw $s1, ($s1) -/* 063374 80062774 00000000 */ nop -/* 063378 80062778 1620FFEE */ bnez $s1, .L80062734 -/* 06337C 8006277C 02202025 */ move $a0, $s1 -/* 063380 80062780 1000007E */ b .L8006297C -/* 063384 80062784 8FA50048 */ lw $a1, 0x48($sp) -glabel L80062788 -/* 063388 80062788 8E48002C */ lw $t0, 0x2c($s2) -/* 06338C 8006278C 24010001 */ li $at, 1 -/* 063390 80062790 11010079 */ beq $t0, $at, .L80062978 -/* 063394 80062794 24090001 */ li $t1, 1 -/* 063398 80062798 AE49002C */ sw $t1, 0x2c($s2) -/* 06339C 8006279C 0C018A73 */ jal __CSPPostNextSeqEvent -/* 0633A0 800627A0 02402025 */ move $a0, $s2 -/* 0633A4 800627A4 10000075 */ b .L8006297C -/* 0633A8 800627A8 8FA50048 */ lw $a1, 0x48($sp) -glabel L800627AC -/* 0633AC 800627AC 8E59002C */ lw $t9, 0x2c($s2) -/* 0633B0 800627B0 24010002 */ li $at, 2 -/* 0633B4 800627B4 17210070 */ bne $t9, $at, .L80062978 -/* 0633B8 800627B8 340AFFFF */ li $t2, 65535 -/* 0633BC 800627BC 924B0034 */ lbu $t3, 0x34($s2) -/* 0633C0 800627C0 A64A0030 */ sh $t2, 0x30($s2) -/* 0633C4 800627C4 19600014 */ blez $t3, .L80062818 -/* 0633C8 800627C8 00008025 */ move $s0, $zero -.L800627CC: -/* 0633CC 800627CC 02150019 */ multu $s0, $s5 -/* 0633D0 800627D0 8E4C0060 */ lw $t4, 0x60($s2) -/* 0633D4 800627D4 26100001 */ addiu $s0, $s0, 1 -/* 0633D8 800627D8 321800FF */ andi $t8, $s0, 0xff -/* 0633DC 800627DC 03008025 */ move $s0, $t8 -/* 0633E0 800627E0 00001012 */ mflo $v0 -/* 0633E4 800627E4 01826821 */ addu $t5, $t4, $v0 -/* 0633E8 800627E8 A1B60010 */ sb $s6, 0x10($t5) -/* 0633EC 800627EC 8E4E0060 */ lw $t6, 0x60($s2) -/* 0633F0 800627F0 00000000 */ nop -/* 0633F4 800627F4 01C21821 */ addu $v1, $t6, $v0 -/* 0633F8 800627F8 906F0011 */ lbu $t7, 0x11($v1) -/* 0633FC 800627FC 00000000 */ nop -/* 063400 80062800 A06F0009 */ sb $t7, 9($v1) -/* 063404 80062804 92480034 */ lbu $t0, 0x34($s2) -/* 063408 80062808 00000000 */ nop -/* 06340C 8006280C 0308082A */ slt $at, $t8, $t0 -/* 063410 80062810 1420FFEE */ bnez $at, .L800627CC -/* 063414 80062814 00000000 */ nop -.L80062818: -/* 063418 80062818 8E510064 */ lw $s1, 0x64($s2) -/* 06341C 8006281C 00000000 */ nop -/* 063420 80062820 12200015 */ beqz $s1, .L80062878 -/* 063424 80062824 00000000 */ nop -.L80062828: -/* 063428 80062828 8E440014 */ lw $a0, 0x14($s2) -/* 06342C 8006282C 26300004 */ addiu $s0, $s1, 4 -/* 063430 80062830 0C03262C */ jal alSynStopVoice -/* 063434 80062834 02002825 */ move $a1, $s0 -/* 063438 80062838 8E440014 */ lw $a0, 0x14($s2) -/* 06343C 8006283C 0C03264C */ jal alSynFreeVoice -/* 063440 80062840 02002825 */ move $a1, $s0 -/* 063444 80062844 92290037 */ lbu $t1, 0x37($s1) -/* 063448 80062848 02402025 */ move $a0, $s2 -/* 06344C 8006284C 11200003 */ beqz $t1, .L8006285C -/* 063450 80062850 00000000 */ nop -/* 063454 80062854 0C002BBF */ jal __seqpStopOsc -/* 063458 80062858 02202825 */ move $a1, $s1 -.L8006285C: -/* 06345C 8006285C 02402025 */ move $a0, $s2 -/* 063460 80062860 0C0029F1 */ jal __unmapVoice -/* 063464 80062864 02002825 */ move $a1, $s0 -/* 063468 80062868 8E510064 */ lw $s1, 0x64($s2) -/* 06346C 8006286C 00000000 */ nop -/* 063470 80062870 1620FFED */ bnez $s1, .L80062828 -/* 063474 80062874 00000000 */ nop -.L80062878: -/* 063478 80062878 1000003F */ b .L80062978 -/* 06347C 8006287C AE40002C */ sw $zero, 0x2c($s2) -glabel L80062880 -/* 063480 80062880 8E59002C */ lw $t9, 0x2c($s2) -/* 063484 80062884 24010001 */ li $at, 1 -/* 063488 80062888 1721003B */ bne $t9, $at, .L80062978 -/* 06348C 8006288C 02E02025 */ move $a0, $s7 -/* 063490 80062890 0C032424 */ jal alEvtqFlushType -/* 063494 80062894 00002825 */ move $a1, $zero -/* 063498 80062898 02E02025 */ move $a0, $s7 -/* 06349C 8006289C 0C032424 */ jal alEvtqFlushType -/* 0634A0 800628A0 24050015 */ li $a1, 21 -/* 0634A4 800628A4 02E02025 */ move $a0, $s7 -/* 0634A8 800628A8 0C032424 */ jal alEvtqFlushType -/* 0634AC 800628AC 24050002 */ li $a1, 2 -/* 0634B0 800628B0 8E510064 */ lw $s1, 0x64($s2) -/* 0634B4 800628B4 00000000 */ nop -/* 0634B8 800628B8 12200010 */ beqz $s1, .L800628FC -/* 0634BC 800628BC 240A0002 */ li $t2, 2 -.L800628C0: -/* 0634C0 800628C0 26300004 */ addiu $s0, $s1, 4 -/* 0634C4 800628C4 02002825 */ move $a1, $s0 -/* 0634C8 800628C8 02402025 */ move $a0, $s2 -/* 0634CC 800628CC 0C002B0D */ jal __voiceNeedsNoteKill -/* 0634D0 800628D0 3406C350 */ li $a2, 50000 -/* 0634D4 800628D4 10400004 */ beqz $v0, .L800628E8 -/* 0634D8 800628D8 02402025 */ move $a0, $s2 -/* 0634DC 800628DC 02002825 */ move $a1, $s0 -/* 0634E0 800628E0 0C002AC0 */ jal __seqpReleaseVoice -/* 0634E4 800628E4 3406C350 */ li $a2, 50000 -.L800628E8: -/* 0634E8 800628E8 8E310000 */ lw $s1, ($s1) -/* 0634EC 800628EC 00000000 */ nop -/* 0634F0 800628F0 1620FFF3 */ bnez $s1, .L800628C0 -/* 0634F4 800628F4 00000000 */ nop -/* 0634F8 800628F8 240A0002 */ li $t2, 2 -.L800628FC: -/* 0634FC 800628FC AE4A002C */ sw $t2, 0x2c($s2) -/* 063500 80062900 240B0010 */ li $t3, 16 -/* 063504 80062904 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff -/* 063508 80062908 A7AB006C */ sh $t3, 0x6c($sp) -/* 06350C 8006290C 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff -/* 063510 80062910 02E02025 */ move $a0, $s7 -/* 063514 80062914 0C03246B */ jal alEvtqPostEvent -/* 063518 80062918 03C02825 */ move $a1, $fp -/* 06351C 8006291C 10000017 */ b .L8006297C -/* 063520 80062920 8FA50048 */ lw $a1, 0x48($sp) -glabel L80062924 -/* 063524 80062924 9250003C */ lbu $s0, 0x3c($s2) -/* 063528 80062928 8E4D0060 */ lw $t5, 0x60($s2) -/* 06352C 8006292C 02150019 */ multu $s0, $s5 -/* 063530 80062930 924C003D */ lbu $t4, 0x3d($s2) -/* 063534 80062934 00007012 */ mflo $t6 -/* 063538 80062938 01AE7821 */ addu $t7, $t5, $t6 -/* 06353C 8006293C 1000000E */ b .L80062978 -/* 063540 80062940 A1EC0008 */ sb $t4, 8($t7) -glabel L80062944 -/* 063544 80062944 8E58003C */ lw $t8, 0x3c($s2) -/* 063548 80062948 8E450020 */ lw $a1, 0x20($s2) -/* 06354C 8006294C AE580018 */ sw $t8, 0x18($s2) -/* 063550 80062950 10A00009 */ beqz $a1, .L80062978 -/* 063554 80062954 00000000 */ nop -/* 063558 80062958 0C002B38 */ jal __initFromBank -/* 06355C 8006295C 02402025 */ move $a0, $s2 -/* 063560 80062960 10000006 */ b .L8006297C -/* 063564 80062964 8FA50048 */ lw $a1, 0x48($sp) -glabel L80062968 -/* 063568 80062968 8E45003C */ lw $a1, 0x3c($s2) -/* 06356C 8006296C 02402025 */ move $a0, $s2 -/* 063570 80062970 0C002B38 */ jal __initFromBank -/* 063574 80062974 AE450020 */ sw $a1, 0x20($s2) -.L80062978: -glabel L80062978 -/* 063578 80062978 8FA50048 */ lw $a1, 0x48($sp) -.L8006297C: -/* 06357C 8006297C 0C0324B4 */ jal alEvtqNextEvent -/* 063580 80062980 02E02025 */ move $a0, $s7 -/* 063584 80062984 1040FEB2 */ beqz $v0, .L80062450 -/* 063588 80062988 AE420028 */ sw $v0, 0x28($s2) -/* 06358C 8006298C 8E48001C */ lw $t0, 0x1c($s2) -/* 063590 80062990 00000000 */ nop -/* 063594 80062994 01024821 */ addu $t1, $t0, $v0 -/* 063598 80062998 AE49001C */ sw $t1, 0x1c($s2) -/* 06359C 8006299C 8FBF003C */ lw $ra, 0x3c($sp) -/* 0635A0 800629A0 8FBE0038 */ lw $fp, 0x38($sp) -/* 0635A4 800629A4 8FB70034 */ lw $s7, 0x34($sp) -/* 0635A8 800629A8 8FB60030 */ lw $s6, 0x30($sp) -/* 0635AC 800629AC 8FB5002C */ lw $s5, 0x2c($sp) -/* 0635B0 800629B0 8FB40028 */ lw $s4, 0x28($sp) -/* 0635B4 800629B4 8FB30024 */ lw $s3, 0x24($sp) -/* 0635B8 800629B8 8FB20020 */ lw $s2, 0x20($sp) -/* 0635BC 800629BC 8FB1001C */ lw $s1, 0x1c($sp) -/* 0635C0 800629C0 8FB00018 */ lw $s0, 0x18($sp) -/* 0635C4 800629C4 03E00008 */ jr $ra -/* 0635C8 800629C8 27BD0080 */ addiu $sp, $sp, 0x80 - diff --git a/lib/asm/non_matchings/csplayer/alCSPNew.s b/lib/asm/non_matchings/csplayer/alCSPNew.s deleted file mode 100644 index 7c553734..00000000 --- a/lib/asm/non_matchings/csplayer/alCSPNew.s +++ /dev/null @@ -1,98 +0,0 @@ -glabel alCSPNew -/* 062E90 80062290 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 062E94 80062294 AFBF0024 */ sw $ra, 0x24($sp) -/* 062E98 80062298 AFB10020 */ sw $s1, 0x20($sp) -/* 062E9C 8006229C AFB0001C */ sw $s0, 0x1c($sp) -/* 062EA0 800622A0 8CA6000C */ lw $a2, 0xc($a1) -/* 062EA4 800622A4 AC800020 */ sw $zero, 0x20($a0) -/* 062EA8 800622A8 AC800018 */ sw $zero, 0x18($a0) -/* 062EAC 800622AC 3C0E800E */ lui $t6, %hi(alGlobals) # $t6, 0x800e -/* 062EB0 800622B0 8DCE3780 */ lw $t6, %lo(alGlobals)($t6) -/* 062EB4 800622B4 340FFFFF */ li $t7, 65535 -/* 062EB8 800622B8 241801E8 */ li $t8, 488 -/* 062EBC 800622BC 24197FFF */ li $t9, 32767 -/* 062EC0 800622C0 24083E80 */ li $t0, 16000 -/* 062EC4 800622C4 A48F0030 */ sh $t7, 0x30($a0) -/* 062EC8 800622C8 AC980024 */ sw $t8, 0x24($a0) -/* 062ECC 800622CC AC800028 */ sw $zero, 0x28($a0) -/* 062ED0 800622D0 AC80002C */ sw $zero, 0x2c($a0) -/* 062ED4 800622D4 A4990032 */ sh $t9, 0x32($a0) -/* 062ED8 800622D8 AC88005C */ sw $t0, 0x5c($a0) -/* 062EDC 800622DC AC80001C */ sw $zero, 0x1c($a0) -/* 062EE0 800622E0 AC8E0014 */ sw $t6, 0x14($a0) -/* 062EE4 800622E4 8CA90014 */ lw $t1, 0x14($a1) -/* 062EE8 800622E8 240D0009 */ li $t5, 9 -/* 062EEC 800622EC AC890074 */ sw $t1, 0x74($a0) -/* 062EF0 800622F0 8CAA0018 */ lw $t2, 0x18($a1) -/* 062EF4 800622F4 00A08825 */ move $s1, $a1 -/* 062EF8 800622F8 AC8A0078 */ sw $t2, 0x78($a0) -/* 062EFC 800622FC 8CAB001C */ lw $t3, 0x1c($a1) -/* 062F00 80062300 A0800071 */ sb $zero, 0x71($a0) -/* 062F04 80062304 AC8B007C */ sw $t3, 0x7c($a0) -/* 062F08 80062308 90AC0010 */ lbu $t4, 0x10($a1) -/* 062F0C 8006230C A48D0038 */ sh $t5, 0x38($a0) -/* 062F10 80062310 A08C0070 */ sb $t4, 0x70($a0) -/* 062F14 80062314 90AE0008 */ lbu $t6, 8($a1) -/* 062F18 80062318 00808025 */ move $s0, $a0 -/* 062F1C 8006231C A08E0034 */ sb $t6, 0x34($a0) -/* 062F20 80062320 92270008 */ lbu $a3, 8($s1) -/* 062F24 80062324 240F0014 */ li $t7, 20 -/* 062F28 80062328 AFAF0010 */ sw $t7, 0x10($sp) -/* 062F2C 8006232C 00002025 */ move $a0, $zero -/* 062F30 80062330 00002825 */ move $a1, $zero -/* 062F34 80062334 0C031DFC */ jal alHeapDBAlloc -/* 062F38 80062338 AFA6002C */ sw $a2, 0x2c($sp) -/* 062F3C 8006233C AE020060 */ sw $v0, 0x60($s0) -/* 062F40 80062340 0C002BA4 */ jal __initChanState -/* 062F44 80062344 02002025 */ move $a0, $s0 -/* 062F48 80062348 8FA6002C */ lw $a2, 0x2c($sp) -/* 062F4C 8006234C 8E270000 */ lw $a3, ($s1) -/* 062F50 80062350 24180038 */ li $t8, 56 -/* 062F54 80062354 AFB80010 */ sw $t8, 0x10($sp) -/* 062F58 80062358 00002025 */ move $a0, $zero -/* 062F5C 8006235C 0C031DFC */ jal alHeapDBAlloc -/* 062F60 80062360 00002825 */ move $a1, $zero -/* 062F64 80062364 AE00006C */ sw $zero, 0x6c($s0) -/* 062F68 80062368 8E390000 */ lw $t9, ($s1) -/* 062F6C 8006236C 00002025 */ move $a0, $zero -/* 062F70 80062370 1B20000B */ blez $t9, .L800623A0 -/* 062F74 80062374 00002825 */ move $a1, $zero -/* 062F78 80062378 00401825 */ move $v1, $v0 -.L8006237C: -/* 062F7C 8006237C 8E08006C */ lw $t0, 0x6c($s0) -/* 062F80 80062380 24840001 */ addiu $a0, $a0, 1 -/* 062F84 80062384 AC680000 */ sw $t0, ($v1) -/* 062F88 80062388 AE03006C */ sw $v1, 0x6c($s0) -/* 062F8C 8006238C 8E290000 */ lw $t1, ($s1) -/* 062F90 80062390 24630038 */ addiu $v1, $v1, 0x38 -/* 062F94 80062394 0089082A */ slt $at, $a0, $t1 -/* 062F98 80062398 1420FFF8 */ bnez $at, .L8006237C -/* 062F9C 8006239C 00000000 */ nop -.L800623A0: -/* 062FA0 800623A0 AE000064 */ sw $zero, 0x64($s0) -/* 062FA4 800623A4 AE000068 */ sw $zero, 0x68($s0) -/* 062FA8 800623A8 8E270004 */ lw $a3, 4($s1) -/* 062FAC 800623AC 8FA6002C */ lw $a2, 0x2c($sp) -/* 062FB0 800623B0 240A001C */ li $t2, 28 -/* 062FB4 800623B4 AFAA0010 */ sw $t2, 0x10($sp) -/* 062FB8 800623B8 0C031DFC */ jal alHeapDBAlloc -/* 062FBC 800623BC 00002025 */ move $a0, $zero -/* 062FC0 800623C0 8E260004 */ lw $a2, 4($s1) -/* 062FC4 800623C4 26040048 */ addiu $a0, $s0, 0x48 -/* 062FC8 800623C8 0C0324D7 */ jal alEvtqNew -/* 062FCC 800623CC 00402825 */ move $a1, $v0 -/* 062FD0 800623D0 3C0B8006 */ lui $t3, %hi(__CSPVoiceHandler) # $t3, 0x8006 -/* 062FD4 800623D4 256B2408 */ addiu $t3, %lo(__CSPVoiceHandler) # addiu $t3, $t3, 0x2408 -/* 062FD8 800623D8 AE000000 */ sw $zero, ($s0) -/* 062FDC 800623DC AE0B0008 */ sw $t3, 8($s0) -/* 062FE0 800623E0 AE100004 */ sw $s0, 4($s0) -/* 062FE4 800623E4 3C04800E */ lui $a0, %hi(alGlobals) # $a0, 0x800e -/* 062FE8 800623E8 8C843780 */ lw $a0, %lo(alGlobals)($a0) -/* 062FEC 800623EC 0C0324F4 */ jal alSynAddPlayer -/* 062FF0 800623F0 02002825 */ move $a1, $s0 -/* 062FF4 800623F4 8FBF0024 */ lw $ra, 0x24($sp) -/* 062FF8 800623F8 8FB0001C */ lw $s0, 0x1c($sp) -/* 062FFC 800623FC 8FB10020 */ lw $s1, 0x20($sp) -/* 063000 80062400 03E00008 */ jr $ra -/* 063004 80062404 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/lib/asm/non_matchings/reverb/_doModFunc.s b/lib/asm/non_matchings/reverb/_doModFunc.s deleted file mode 100644 index fa902ff8..00000000 --- a/lib/asm/non_matchings/reverb/_doModFunc.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel _doModFunc -/* 065484 80064884 44853000 */ mtc1 $a1, $f6 -/* 065488 80064888 C4840010 */ lwc1 $f4, 0x10($a0) -/* 06548C 8006488C 46803220 */ cvt.s.w $f8, $f6 -/* 065490 80064890 C4900014 */ lwc1 $f16, 0x14($a0) -/* 065494 80064894 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 065498 80064898 46082282 */ mul.s $f10, $f4, $f8 -/* 06549C 8006489C 44802000 */ mtc1 $zero, $f4 -/* 0654A0 800648A0 44812800 */ mtc1 $at, $f5 -/* 0654A4 800648A4 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 0654A8 800648A8 460A8480 */ add.s $f18, $f16, $f10 -/* 0654AC 800648AC E4920014 */ swc1 $f18, 0x14($a0) -/* 0654B0 800648B0 C4860014 */ lwc1 $f6, 0x14($a0) -/* 0654B4 800648B4 00000000 */ nop -/* 0654B8 800648B8 46003021 */ cvt.d.s $f0, $f6 -/* 0654BC 800648BC 4620203C */ c.lt.d $f4, $f0 -/* 0654C0 800648C0 44803000 */ mtc1 $zero, $f6 -/* 0654C4 800648C4 45000008 */ bc1f .L800648E8 -/* 0654C8 800648C8 00000000 */ nop -/* 0654CC 800648CC 44814800 */ mtc1 $at, $f9 -/* 0654D0 800648D0 44804000 */ mtc1 $zero, $f8 -/* 0654D4 800648D4 00000000 */ nop -/* 0654D8 800648D8 46280401 */ sub.d $f16, $f0, $f8 -/* 0654DC 800648DC 462082A0 */ cvt.s.d $f10, $f16 -/* 0654E0 800648E0 10000003 */ b .L800648F0 -/* 0654E4 800648E4 E48A0014 */ swc1 $f10, 0x14($a0) -.L800648E8: -/* 0654E8 800648E8 462004A0 */ cvt.s.d $f18, $f0 -/* 0654EC 800648EC E4920014 */ swc1 $f18, 0x14($a0) -.L800648F0: -/* 0654F0 800648F0 C4820014 */ lwc1 $f2, 0x14($a0) -/* 0654F4 800648F4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0654F8 800648F8 4606103C */ c.lt.s $f2, $f6 -/* 0654FC 800648FC 44814800 */ mtc1 $at, $f9 -/* 065500 80064900 45000002 */ bc1f .L8006490C -/* 065504 80064904 00000000 */ nop -/* 065508 80064908 46001087 */ neg.s $f2, $f2 -.L8006490C: -/* 06550C 8006490C 44804000 */ mtc1 $zero, $f8 -/* 065510 80064910 46001121 */ cvt.d.s $f4, $f2 -/* 065514 80064914 46282401 */ sub.d $f16, $f4, $f8 -/* 065518 80064918 C48A001C */ lwc1 $f10, 0x1c($a0) -/* 06551C 8006491C 462080A0 */ cvt.s.d $f2, $f16 -/* 065520 80064920 46025002 */ mul.s $f0, $f10, $f2 -/* 065524 80064924 03E00008 */ jr $ra -/* 065528 80064928 00000000 */ nop - diff --git a/lib/asm/non_matchings/reverb/_loadOutputBuffer.s b/lib/asm/non_matchings/reverb/_loadOutputBuffer.s deleted file mode 100644 index 7d8acda3..00000000 --- a/lib/asm/non_matchings/reverb/_loadOutputBuffer.s +++ /dev/null @@ -1,163 +0,0 @@ -glabel _loadOutputBuffer -/* 064E24 80064224 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 064E28 80064228 AFBF002C */ sw $ra, 0x2c($sp) -/* 064E2C 8006422C AFB20028 */ sw $s2, 0x28($sp) -/* 064E30 80064230 AFB10024 */ sw $s1, 0x24($sp) -/* 064E34 80064234 AFB00020 */ sw $s0, 0x20($sp) -/* 064E38 80064238 AFA40068 */ sw $a0, 0x68($sp) -/* 064E3C 8006423C AFA60070 */ sw $a2, 0x70($sp) -/* 064E40 80064240 8CAE0024 */ lw $t6, 0x24($a1) -/* 064E44 80064244 00A08025 */ move $s0, $a1 -/* 064E48 80064248 11C00082 */ beqz $t6, .L80064454 -/* 064E4C 8006424C 00E09025 */ move $s2, $a3 -/* 064E50 80064250 8CAF0004 */ lw $t7, 4($a1) -/* 064E54 80064254 8CB80000 */ lw $t8, ($a1) -/* 064E58 80064258 00A02025 */ move $a0, $a1 -/* 064E5C 8006425C 01F8C823 */ subu $t9, $t7, $t8 -/* 064E60 80064260 AFB90040 */ sw $t9, 0x40($sp) -/* 064E64 80064264 0C019221 */ jal _doModFunc -/* 064E68 80064268 00E02825 */ move $a1, $a3 -/* 064E6C 8006426C 8FAA0040 */ lw $t2, 0x40($sp) -/* 064E70 80064270 3C014700 */ li $at, 0x47000000 # 32768.000000 -/* 064E74 80064274 448A3000 */ mtc1 $t2, $f6 -/* 064E78 80064278 44817000 */ mtc1 $at, $f14 -/* 064E7C 8006427C 46803220 */ cvt.s.w $f8, $f6 -/* 064E80 80064280 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 064E84 80064284 44812800 */ mtc1 $at, $f5 -/* 064E88 80064288 46080283 */ div.s $f10, $f0, $f8 -/* 064E8C 8006428C 44802000 */ mtc1 $zero, $f4 -/* 064E90 80064290 8FA40068 */ lw $a0, 0x68($sp) -/* 064E94 80064294 24060280 */ li $a2, 640 -/* 064E98 80064298 460E5402 */ mul.s $f16, $f10, $f14 -/* 064E9C 8006429C 444BF800 */ cfc1 $t3, $31 -/* 064EA0 800642A0 00000000 */ nop -/* 064EA4 800642A4 35610003 */ ori $at, $t3, 3 -/* 064EA8 800642A8 38210002 */ xori $at, $at, 2 -/* 064EAC 800642AC 44C1F800 */ ctc1 $at, $31 -/* 064EB0 800642B0 00000000 */ nop -/* 064EB4 800642B4 460084A4 */ cvt.w.s $f18, $f16 -/* 064EB8 800642B8 440C9000 */ mfc1 $t4, $f18 -/* 064EBC 800642BC 44CBF800 */ ctc1 $t3, $31 -/* 064EC0 800642C0 448C3000 */ mtc1 $t4, $f6 -/* 064EC4 800642C4 00000000 */ nop -/* 064EC8 800642C8 46803220 */ cvt.s.w $f8, $f6 -/* 064ECC 800642CC 00000000 */ nop -/* 064ED0 800642D0 460E4283 */ div.s $f10, $f8, $f14 -/* 064ED4 800642D4 44924000 */ mtc1 $s2, $f8 -/* 064ED8 800642D8 46005421 */ cvt.d.s $f16, $f10 -/* 064EDC 800642DC 46302481 */ sub.d $f18, $f4, $f16 -/* 064EE0 800642E0 468042A0 */ cvt.s.w $f10, $f8 -/* 064EE4 800642E4 462090A0 */ cvt.s.d $f2, $f18 -/* 064EE8 800642E8 E7A2004C */ swc1 $f2, 0x4c($sp) -/* 064EEC 800642EC 460A1102 */ mul.s $f4, $f2, $f10 -/* 064EF0 800642F0 8E020024 */ lw $v0, 0x24($s0) -/* 064EF4 800642F4 00000000 */ nop -/* 064EF8 800642F8 C4460020 */ lwc1 $f6, 0x20($v0) -/* 064EFC 800642FC 00000000 */ nop -/* 064F00 80064300 46043300 */ add.s $f12, $f6, $f4 -/* 064F04 80064304 444DF800 */ cfc1 $t5, $31 -/* 064F08 80064308 00000000 */ nop -/* 064F0C 8006430C 35A10003 */ ori $at, $t5, 3 -/* 064F10 80064310 38210002 */ xori $at, $at, 2 -/* 064F14 80064314 44C1F800 */ ctc1 $at, $31 -/* 064F18 80064318 00000000 */ nop -/* 064F1C 8006431C 46006424 */ cvt.w.s $f16, $f12 -/* 064F20 80064320 44088000 */ mfc1 $t0, $f16 -/* 064F24 80064324 44CDF800 */ ctc1 $t5, $31 -/* 064F28 80064328 44889000 */ mtc1 $t0, $f18 -/* 064F2C 8006432C 00000000 */ nop -/* 064F30 80064330 46809220 */ cvt.s.w $f8, $f18 -/* 064F34 80064334 46086281 */ sub.s $f10, $f12, $f8 -/* 064F38 80064338 E44A0020 */ swc1 $f10, 0x20($v0) -/* 064F3C 8006433C 8E0F0018 */ lw $t7, 0x18($s0) -/* 064F40 80064340 8E0E0004 */ lw $t6, 4($s0) -/* 064F44 80064344 8C8B0018 */ lw $t3, 0x18($a0) -/* 064F48 80064348 01CFC023 */ subu $t8, $t6, $t7 -/* 064F4C 8006434C 0018C823 */ negu $t9, $t8 -/* 064F50 80064350 00195040 */ sll $t2, $t9, 1 -/* 064F54 80064354 016A8821 */ addu $s1, $t3, $t2 -/* 064F58 80064358 32230007 */ andi $v1, $s1, 7 -/* 064F5C 8006435C 8FAD0078 */ lw $t5, 0x78($sp) -/* 064F60 80064360 00036043 */ sra $t4, $v1, 1 -/* 064F64 80064364 000C4840 */ sll $t1, $t4, 1 -/* 064F68 80064368 02292823 */ subu $a1, $s1, $t1 -/* 064F6C 8006436C AFA90030 */ sw $t1, 0x30($sp) -/* 064F70 80064370 01801825 */ move $v1, $t4 -/* 064F74 80064374 010C3821 */ addu $a3, $t0, $t4 -/* 064F78 80064378 AFA80034 */ sw $t0, 0x34($sp) -/* 064F7C 8006437C 0C019128 */ jal _loadBuffer -/* 064F80 80064380 AFAD0010 */ sw $t5, 0x10($sp) -/* 064F84 80064384 8FA90030 */ lw $t1, 0x30($sp) -/* 064F88 80064388 3C010800 */ lui $at, 0x800 -/* 064F8C 8006438C 252E0280 */ addiu $t6, $t1, 0x280 -/* 064F90 80064390 31CFFFFF */ andi $t7, $t6, 0xffff -/* 064F94 80064394 01E1C025 */ or $t8, $t7, $at -/* 064F98 80064398 AC580000 */ sw $t8, ($v0) -/* 064F9C 8006439C 8FAB0070 */ lw $t3, 0x70($sp) -/* 064FA0 800643A0 00126040 */ sll $t4, $s2, 1 -/* 064FA4 800643A4 318DFFFF */ andi $t5, $t4, 0xffff -/* 064FA8 800643A8 000B5400 */ sll $t2, $t3, 0x10 -/* 064FAC 800643AC 014D7025 */ or $t6, $t2, $t5 -/* 064FB0 800643B0 AC4E0004 */ sw $t6, 4($v0) -/* 064FB4 800643B4 3C014700 */ li $at, 0x47000000 # 32768.000000 -/* 064FB8 800643B8 44812000 */ mtc1 $at, $f4 -/* 064FBC 800643BC C7A6004C */ lwc1 $f6, 0x4c($sp) -/* 064FC0 800643C0 244F0008 */ addiu $t7, $v0, 8 -/* 064FC4 800643C4 46043402 */ mul.s $f16, $f6, $f4 -/* 064FC8 800643C8 AFAF0038 */ sw $t7, 0x38($sp) -/* 064FCC 800643CC 8E0C0024 */ lw $t4, 0x24($s0) -/* 064FD0 800643D0 24510010 */ addiu $s1, $v0, 0x10 -/* 064FD4 800643D4 4458F800 */ cfc1 $t8, $31 -/* 064FD8 800643D8 8D8A0024 */ lw $t2, 0x24($t4) -/* 064FDC 800643DC 37010003 */ ori $at, $t8, 3 -/* 064FE0 800643E0 38210002 */ xori $at, $at, 2 -/* 064FE4 800643E4 44C1F800 */ ctc1 $at, $31 -/* 064FE8 800643E8 314D00FF */ andi $t5, $t2, 0xff -/* 064FEC 800643EC 460084A4 */ cvt.w.s $f18, $f16 -/* 064FF0 800643F0 000D7400 */ sll $t6, $t5, 0x10 -/* 064FF4 800643F4 44199000 */ mfc1 $t9, $f18 -/* 064FF8 800643F8 3C010500 */ lui $at, 0x500 -/* 064FFC 800643FC 01C17825 */ or $t7, $t6, $at -/* 065000 80064400 44D8F800 */ ctc1 $t8, $31 -/* 065004 80064404 332BFFFF */ andi $t3, $t9, 0xffff -/* 065008 80064408 01EBC025 */ or $t8, $t7, $t3 -/* 06500C 8006440C AC580008 */ sw $t8, 8($v0) -/* 065010 80064410 8E190024 */ lw $t9, 0x24($s0) -/* 065014 80064414 00000000 */ nop -/* 065018 80064418 8F240014 */ lw $a0, 0x14($t9) -/* 06501C 8006441C 0C03233C */ jal osVirtualToPhysical -/* 065020 80064420 00000000 */ nop -/* 065024 80064424 8FAC0038 */ lw $t4, 0x38($sp) -/* 065028 80064428 8FA80034 */ lw $t0, 0x34($sp) -/* 06502C 8006442C AD820004 */ sw $v0, 4($t4) -/* 065030 80064430 8E0A0024 */ lw $t2, 0x24($s0) -/* 065034 80064434 00000000 */ nop -/* 065038 80064438 AD400024 */ sw $zero, 0x24($t2) -/* 06503C 8006443C 8E0D0018 */ lw $t5, 0x18($s0) -/* 065040 80064440 00000000 */ nop -/* 065044 80064444 01A87021 */ addu $t6, $t5, $t0 -/* 065048 80064448 01D27823 */ subu $t7, $t6, $s2 -/* 06504C 8006444C 1000000D */ b .L80064484 -/* 065050 80064450 AE0F0018 */ sw $t7, 0x18($s0) -.L80064454: -/* 065054 80064454 8FA40068 */ lw $a0, 0x68($sp) -/* 065058 80064458 8E190004 */ lw $t9, 4($s0) -/* 06505C 8006445C 8FAD0078 */ lw $t5, 0x78($sp) -/* 065060 80064460 8C980018 */ lw $t8, 0x18($a0) -/* 065064 80064464 00196023 */ negu $t4, $t9 -/* 065068 80064468 000C5040 */ sll $t2, $t4, 1 -/* 06506C 8006446C 8FA60070 */ lw $a2, 0x70($sp) -/* 065070 80064470 02403825 */ move $a3, $s2 -/* 065074 80064474 AFAD0010 */ sw $t5, 0x10($sp) -/* 065078 80064478 0C019128 */ jal _loadBuffer -/* 06507C 8006447C 030A2821 */ addu $a1, $t8, $t2 -/* 065080 80064480 00408825 */ move $s1, $v0 -.L80064484: -/* 065084 80064484 8FBF002C */ lw $ra, 0x2c($sp) -/* 065088 80064488 02201025 */ move $v0, $s1 -/* 06508C 8006448C 8FB10024 */ lw $s1, 0x24($sp) -/* 065090 80064490 8FB00020 */ lw $s0, 0x20($sp) -/* 065094 80064494 8FB20028 */ lw $s2, 0x28($sp) -/* 065098 80064498 03E00008 */ jr $ra -/* 06509C 8006449C 27BD0068 */ addiu $sp, $sp, 0x68 - diff --git a/lib/asm/non_matchings/reverb/alFxParamHdl.s b/lib/asm/non_matchings/reverb/alFxParamHdl.s deleted file mode 100644 index 4549e313..00000000 --- a/lib/asm/non_matchings/reverb/alFxParamHdl.s +++ /dev/null @@ -1,188 +0,0 @@ -.late_rodata -glabel jpt_800E6E70 -.word L80063FE8, L8006401C, L8006407C, L80064050, L800640A8, L800640D4, L80064144, L800641C4 -glabel D_800E6E90 -.float 8.320827 -glabel D_800E6E94 -.float 0.04680453 - -.text -glabel alFxParamHdl -/* 064BAC 80063FAC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 064BB0 80063FB0 24A3FFFE */ addiu $v1, $a1, -2 -/* 064BB4 80063FB4 AFBF0014 */ sw $ra, 0x14($sp) -/* 064BB8 80063FB8 306E0007 */ andi $t6, $v1, 7 -/* 064BBC 80063FBC 8CC80000 */ lw $t0, ($a2) -/* 064BC0 80063FC0 2DC10008 */ sltiu $at, $t6, 8 -/* 064BC4 80063FC4 10200093 */ beqz $at, .L80064214 -/* 064BC8 80063FC8 00803825 */ move $a3, $a0 -/* 064BCC 80063FCC 000E7080 */ sll $t6, $t6, 2 -/* 064BD0 80063FD0 3C01800E */ lui $at, %hi(jpt_800E6E70) # $at, 0x800e -/* 064BD4 80063FD4 002E0821 */ addu $at, $at, $t6 -/* 064BD8 80063FD8 8C2E6E70 */ lw $t6, %lo(jpt_800E6E70)($at) -/* 064BDC 80063FDC 00000000 */ nop -/* 064BE0 80063FE0 01C00008 */ jr $t6 -/* 064BE4 80063FE4 00000000 */ nop -glabel L80063FE8 -/* 064BE8 80063FE8 2401FFF8 */ li $at, -8 -/* 064BEC 80063FEC 01017824 */ and $t7, $t0, $at -/* 064BF0 80063FF0 8CF80020 */ lw $t8, 0x20($a3) -/* 064BF4 80063FF4 04610003 */ bgez $v1, .L80064004 -/* 064BF8 80063FF8 0003C8C3 */ sra $t9, $v1, 3 -/* 064BFC 80063FFC 24610007 */ addiu $at, $v1, 7 -/* 064C00 80064000 0001C8C3 */ sra $t9, $at, 3 -.L80064004: -/* 064C04 80064004 00194880 */ sll $t1, $t9, 2 -/* 064C08 80064008 01394821 */ addu $t1, $t1, $t9 -/* 064C0C 8006400C 000948C0 */ sll $t1, $t1, 3 -/* 064C10 80064010 03095021 */ addu $t2, $t8, $t1 -/* 064C14 80064014 1000007F */ b .L80064214 -/* 064C18 80064018 AD4F0000 */ sw $t7, ($t2) -glabel L8006401C -/* 064C1C 8006401C 2401FFF8 */ li $at, -8 -/* 064C20 80064020 01015824 */ and $t3, $t0, $at -/* 064C24 80064024 8CEC0020 */ lw $t4, 0x20($a3) -/* 064C28 80064028 04610003 */ bgez $v1, .L80064038 -/* 064C2C 8006402C 000368C3 */ sra $t5, $v1, 3 -/* 064C30 80064030 24610007 */ addiu $at, $v1, 7 -/* 064C34 80064034 000168C3 */ sra $t5, $at, 3 -.L80064038: -/* 064C38 80064038 000D7080 */ sll $t6, $t5, 2 -/* 064C3C 8006403C 01CD7021 */ addu $t6, $t6, $t5 -/* 064C40 80064040 000E70C0 */ sll $t6, $t6, 3 -/* 064C44 80064044 018EC821 */ addu $t9, $t4, $t6 -/* 064C48 80064048 10000072 */ b .L80064214 -/* 064C4C 8006404C AF2B0004 */ sw $t3, 4($t9) -glabel L80064050 -/* 064C50 80064050 8CF80020 */ lw $t8, 0x20($a3) -/* 064C54 80064054 04610003 */ bgez $v1, .L80064064 -/* 064C58 80064058 000348C3 */ sra $t1, $v1, 3 -/* 064C5C 8006405C 24610007 */ addiu $at, $v1, 7 -/* 064C60 80064060 000148C3 */ sra $t1, $at, 3 -.L80064064: -/* 064C64 80064064 00097880 */ sll $t7, $t1, 2 -/* 064C68 80064068 01E97821 */ addu $t7, $t7, $t1 -/* 064C6C 8006406C 000F78C0 */ sll $t7, $t7, 3 -/* 064C70 80064070 030F5021 */ addu $t2, $t8, $t7 -/* 064C74 80064074 10000067 */ b .L80064214 -/* 064C78 80064078 A5480008 */ sh $t0, 8($t2) -glabel L8006407C -/* 064C7C 8006407C 8CED0020 */ lw $t5, 0x20($a3) -/* 064C80 80064080 04610003 */ bgez $v1, .L80064090 -/* 064C84 80064084 000360C3 */ sra $t4, $v1, 3 -/* 064C88 80064088 24610007 */ addiu $at, $v1, 7 -/* 064C8C 8006408C 000160C3 */ sra $t4, $at, 3 -.L80064090: -/* 064C90 80064090 000C7080 */ sll $t6, $t4, 2 -/* 064C94 80064094 01CC7021 */ addu $t6, $t6, $t4 -/* 064C98 80064098 000E70C0 */ sll $t6, $t6, 3 -/* 064C9C 8006409C 01AE5821 */ addu $t3, $t5, $t6 -/* 064CA0 800640A0 1000005C */ b .L80064214 -/* 064CA4 800640A4 A568000A */ sh $t0, 0xa($t3) -glabel L800640A8 -/* 064CA8 800640A8 8CF90020 */ lw $t9, 0x20($a3) -/* 064CAC 800640AC 04610003 */ bgez $v1, .L800640BC -/* 064CB0 800640B0 000348C3 */ sra $t1, $v1, 3 -/* 064CB4 800640B4 24610007 */ addiu $at, $v1, 7 -/* 064CB8 800640B8 000148C3 */ sra $t1, $at, 3 -.L800640BC: -/* 064CBC 800640BC 0009C080 */ sll $t8, $t1, 2 -/* 064CC0 800640C0 0309C021 */ addu $t8, $t8, $t1 -/* 064CC4 800640C4 0018C0C0 */ sll $t8, $t8, 3 -/* 064CC8 800640C8 03387821 */ addu $t7, $t9, $t8 -/* 064CCC 800640CC 10000051 */ b .L80064214 -/* 064CD0 800640D0 A5E8000C */ sh $t0, 0xc($t7) -glabel L800640D4 -/* 064CD4 800640D4 44882000 */ mtc1 $t0, $f4 -/* 064CD8 800640D8 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 064CDC 800640DC 468021A0 */ cvt.s.w $f6, $f4 -/* 064CE0 800640E0 44814000 */ mtc1 $at, $f8 -/* 064CE4 800640E4 3C0A800E */ lui $t2, %hi(alGlobals) # $t2, 0x800e -/* 064CE8 800640E8 46083283 */ div.s $f10, $f6, $f8 -/* 064CEC 800640EC 8D4A3780 */ lw $t2, %lo(alGlobals)($t2) -/* 064CF0 800640F0 8CED0020 */ lw $t5, 0x20($a3) -/* 064CF4 800640F4 8D4C0044 */ lw $t4, 0x44($t2) -/* 064CF8 800640F8 00000000 */ nop -/* 064CFC 800640FC 448C9000 */ mtc1 $t4, $f18 -/* 064D00 80064100 00000000 */ nop -/* 064D04 80064104 46809121 */ cvt.d.w $f4, $f18 -/* 064D08 80064108 46005021 */ cvt.d.s $f0, $f10 -/* 064D0C 8006410C 46200400 */ add.d $f16, $f0, $f0 -/* 064D10 80064110 00000000 */ nop -/* 064D14 80064114 46248183 */ div.d $f6, $f16, $f4 -/* 064D18 80064118 46203220 */ cvt.s.d $f8, $f6 -/* 064D1C 8006411C 04610003 */ bgez $v1, .L8006412C -/* 064D20 80064120 000370C3 */ sra $t6, $v1, 3 -/* 064D24 80064124 24610007 */ addiu $at, $v1, 7 -/* 064D28 80064128 000170C3 */ sra $t6, $at, 3 -.L8006412C: -/* 064D2C 8006412C 000E5880 */ sll $t3, $t6, 2 -/* 064D30 80064130 016E5821 */ addu $t3, $t3, $t6 -/* 064D34 80064134 000B58C0 */ sll $t3, $t3, 3 -/* 064D38 80064138 01AB4821 */ addu $t1, $t5, $t3 -/* 064D3C 8006413C 10000035 */ b .L80064214 -/* 064D40 80064140 E5280010 */ swc1 $f8, 0x10($t1) -glabel L80064144 -/* 064D44 80064144 8CF90020 */ lw $t9, 0x20($a3) -/* 064D48 80064148 04610003 */ bgez $v1, .L80064158 -/* 064D4C 8006414C 0003C0C3 */ sra $t8, $v1, 3 -/* 064D50 80064150 24610007 */ addiu $at, $v1, 7 -/* 064D54 80064154 0001C0C3 */ sra $t8, $at, 3 -.L80064158: -/* 064D58 80064158 00187880 */ sll $t7, $t8, 2 -/* 064D5C 8006415C 01F87821 */ addu $t7, $t7, $t8 -/* 064D60 80064160 000F78C0 */ sll $t7, $t7, 3 -/* 064D64 80064164 032F1021 */ addu $v0, $t9, $t7 -/* 064D68 80064168 8C4A0004 */ lw $t2, 4($v0) -/* 064D6C 8006416C 8C4C0000 */ lw $t4, ($v0) -/* 064D70 80064170 44882000 */ mtc1 $t0, $f4 -/* 064D74 80064174 014C7023 */ subu $t6, $t2, $t4 -/* 064D78 80064178 448E5000 */ mtc1 $t6, $f10 -/* 064D7C 8006417C 05C10006 */ bgez $t6, .L80064198 -/* 064D80 80064180 468054A1 */ cvt.d.w $f18, $f10 -/* 064D84 80064184 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 064D88 80064188 44818800 */ mtc1 $at, $f17 -/* 064D8C 8006418C 44808000 */ mtc1 $zero, $f16 -/* 064D90 80064190 00000000 */ nop -/* 064D94 80064194 46309480 */ add.d $f18, $f18, $f16 -.L80064198: -/* 064D98 80064198 468021A0 */ cvt.s.w $f6, $f4 -/* 064D9C 8006419C 3C01800E */ lui $at, %hi(D_800E6E94) # $at, 0x800e -/* 064DA0 800641A0 C42B6E90 */ lwc1 $f11, %lo(D_800E6E90)($at) -/* 064DA4 800641A4 C42A6E94 */ lwc1 $f10, %lo(D_800E6E94)($at) -/* 064DA8 800641A8 46003221 */ cvt.d.s $f8, $f6 -/* 064DAC 800641AC 00000000 */ nop -/* 064DB0 800641B0 462A4403 */ div.d $f16, $f8, $f10 -/* 064DB4 800641B4 46309102 */ mul.d $f4, $f18, $f16 -/* 064DB8 800641B8 462021A0 */ cvt.s.d $f6, $f4 -/* 064DBC 800641BC 10000015 */ b .L80064214 -/* 064DC0 800641C0 E446001C */ swc1 $f6, 0x1c($v0) -glabel L800641C4 -/* 064DC4 800641C4 04610003 */ bgez $v1, .L800641D4 -/* 064DC8 800641C8 000310C3 */ sra $v0, $v1, 3 -/* 064DCC 800641CC 24610007 */ addiu $at, $v1, 7 -/* 064DD0 800641D0 000110C3 */ sra $v0, $at, 3 -.L800641D4: -/* 064DD4 800641D4 00026880 */ sll $t5, $v0, 2 -/* 064DD8 800641D8 8CEB0020 */ lw $t3, 0x20($a3) -/* 064DDC 800641DC 01A26821 */ addu $t5, $t5, $v0 -/* 064DE0 800641E0 000D68C0 */ sll $t5, $t5, 3 -/* 064DE4 800641E4 016D4821 */ addu $t1, $t3, $t5 -/* 064DE8 800641E8 8D250020 */ lw $a1, 0x20($t1) -/* 064DEC 800641EC 00000000 */ nop -/* 064DF0 800641F0 10A00009 */ beqz $a1, .L80064218 -/* 064DF4 800641F4 8FBF0014 */ lw $ra, 0x14($sp) -/* 064DF8 800641F8 A4A80000 */ sh $t0, ($a1) -/* 064DFC 800641FC 8CF80020 */ lw $t8, 0x20($a3) -/* 064E00 80064200 00000000 */ nop -/* 064E04 80064204 030DC821 */ addu $t9, $t8, $t5 -/* 064E08 80064208 8F240020 */ lw $a0, 0x20($t9) -/* 064E0C 8006420C 0C019254 */ jal init_lpfilter -/* 064E10 80064210 00000000 */ nop -.L80064214: -/* 064E14 80064214 8FBF0014 */ lw $ra, 0x14($sp) -.L80064218: -/* 064E18 80064218 27BD0018 */ addiu $sp, $sp, 0x18 -/* 064E1C 8006421C 03E00008 */ jr $ra -/* 064E20 80064220 00001025 */ move $v0, $zero - diff --git a/lib/asm/non_matchings/reverb/alFxPull.s b/lib/asm/non_matchings/reverb/alFxPull.s deleted file mode 100644 index 456dd2d2..00000000 --- a/lib/asm/non_matchings/reverb/alFxPull.s +++ /dev/null @@ -1,231 +0,0 @@ -glabel alFxPull -/* 064830 80063C30 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* 064834 80063C34 AFB3002C */ sw $s3, 0x2c($sp) -/* 064838 80063C38 00809825 */ move $s3, $a0 -/* 06483C 80063C3C AFBF0044 */ sw $ra, 0x44($sp) -/* 064840 80063C40 AFBE0040 */ sw $fp, 0x40($sp) -/* 064844 80063C44 AFB7003C */ sw $s7, 0x3c($sp) -/* 064848 80063C48 AFB60038 */ sw $s6, 0x38($sp) -/* 06484C 80063C4C AFB50034 */ sw $s5, 0x34($sp) -/* 064850 80063C50 AFB40030 */ sw $s4, 0x30($sp) -/* 064854 80063C54 AFB20028 */ sw $s2, 0x28($sp) -/* 064858 80063C58 AFB10024 */ sw $s1, 0x24($sp) -/* 06485C 80063C5C AFB00020 */ sw $s0, 0x20($sp) -/* 064860 80063C60 8C840000 */ lw $a0, ($a0) -/* 064864 80063C64 8FAE00B0 */ lw $t6, 0xb0($sp) -/* 064868 80063C68 AFA0007C */ sw $zero, 0x7c($sp) -/* 06486C 80063C6C AFAE0010 */ sw $t6, 0x10($sp) -/* 064870 80063C70 8C990004 */ lw $t9, 4($a0) -/* 064874 80063C74 00C0B025 */ move $s6, $a2 -/* 064878 80063C78 0320F809 */ jalr $t9 -/* 06487C 80063C7C 00000000 */ nop -/* 064880 80063C80 3C0F800E */ lui $t7, %hi(D_800DCEB0) # $t7, 0x800e -/* 064884 80063C84 91EFCEB0 */ lbu $t7, %lo(D_800DCEB0)($t7) -/* 064888 80063C88 8FA3007C */ lw $v1, 0x7c($sp) -/* 06488C 80063C8C 15E00003 */ bnez $t7, .L80063C9C -/* 064890 80063C90 00408025 */ move $s0, $v0 -/* 064894 80063C94 100000B4 */ b .L80063F68 -/* 064898 80063C98 8FBF0044 */ lw $ra, 0x44($sp) -.L80063C9C: -/* 06489C 80063C9C 02001025 */ move $v0, $s0 -/* 0648A0 80063CA0 00168840 */ sll $s1, $s6, 1 -/* 0648A4 80063CA4 322BFFFF */ andi $t3, $s1, 0xffff -/* 0648A8 80063CA8 26080008 */ addiu $t0, $s0, 8 -/* 0648AC 80063CAC 3C180800 */ lui $t8, 0x800 -/* 0648B0 80063CB0 AC580000 */ sw $t8, ($v0) -/* 0648B4 80063CB4 AC4B0004 */ sw $t3, 4($v0) -/* 0648B8 80063CB8 3C0C0C00 */ lui $t4, (0x0C00DA83 >> 16) # lui $t4, 0xc00 -/* 0648BC 80063CBC 3C0D06C0 */ lui $t5, (0x06C006C0 >> 16) # lui $t5, 0x6c0 -/* 0648C0 80063CC0 35AD06C0 */ ori $t5, (0x06C006C0 & 0xFFFF) # ori $t5, $t5, 0x6c0 -/* 0648C4 80063CC4 358CDA83 */ ori $t4, (0x0C00DA83 & 0xFFFF) # ori $t4, $t4, 0xda83 -/* 0648C8 80063CC8 AD0C0000 */ sw $t4, ($t0) -/* 0648CC 80063CCC AD0D0004 */ sw $t5, 4($t0) -/* 0648D0 80063CD0 25090008 */ addiu $t1, $t0, 8 -/* 0648D4 80063CD4 3C0E0C00 */ lui $t6, (0x0C005A82 >> 16) # lui $t6, 0xc00 -/* 0648D8 80063CD8 3C190800 */ lui $t9, (0x080006C0 >> 16) # lui $t9, 0x800 -/* 0648DC 80063CDC 373906C0 */ ori $t9, (0x080006C0 & 0xFFFF) # ori $t9, $t9, 0x6c0 -/* 0648E0 80063CE0 35CE5A82 */ ori $t6, (0x0C005A82 & 0xFFFF) # ori $t6, $t6, 0x5a82 -/* 0648E4 80063CE4 AD2E0000 */ sw $t6, ($t1) -/* 0648E8 80063CE8 AD390004 */ sw $t9, 4($t1) -/* 0648EC 80063CEC 8E650018 */ lw $a1, 0x18($s3) -/* 0648F0 80063CF0 25300008 */ addiu $s0, $t1, 8 -/* 0648F4 80063CF4 0000A825 */ move $s5, $zero -/* 0648F8 80063CF8 24120140 */ li $s2, 320 -/* 0648FC 80063CFC AFB00010 */ sw $s0, 0x10($sp) -/* 064900 80063D00 AFAB0048 */ sw $t3, 0x48($sp) -/* 064904 80063D04 AFB10050 */ sw $s1, 0x50($sp) -/* 064908 80063D08 AFA3007C */ sw $v1, 0x7c($sp) -/* 06490C 80063D0C 02602025 */ move $a0, $s3 -/* 064910 80063D10 240606C0 */ li $a2, 1728 -/* 064914 80063D14 0C01918E */ jal _saveBuffer -/* 064918 80063D18 02C03825 */ move $a3, $s6 -/* 06491C 80063D1C 8FA3007C */ lw $v1, 0x7c($sp) -/* 064920 80063D20 3C0F0200 */ lui $t7, (0x02000800 >> 16) # lui $t7, 0x200 -/* 064924 80063D24 35EF0800 */ ori $t7, (0x02000800 & 0xFFFF) # ori $t7, $t7, 0x800 -/* 064928 80063D28 AC4F0000 */ sw $t7, ($v0) -/* 06492C 80063D2C AC510004 */ sw $s1, 4($v0) -/* 064930 80063D30 92780024 */ lbu $t8, 0x24($s3) -/* 064934 80063D34 24500008 */ addiu $s0, $v0, 8 -/* 064938 80063D38 1B000076 */ blez $t8, .L80063F14 -/* 06493C 80063D3C 0000B825 */ move $s7, $zero -/* 064940 80063D40 8E620018 */ lw $v0, 0x18($s3) -/* 064944 80063D44 00000000 */ nop -.L80063D48: -/* 064948 80063D48 00176880 */ sll $t5, $s7, 2 -/* 06494C 80063D4C 8E6C0020 */ lw $t4, 0x20($s3) -/* 064950 80063D50 01B76821 */ addu $t5, $t5, $s7 -/* 064954 80063D54 000D68C0 */ sll $t5, $t5, 3 -/* 064958 80063D58 018D8821 */ addu $s1, $t4, $t5 -/* 06495C 80063D5C 8E2E0000 */ lw $t6, ($s1) -/* 064960 80063D60 8E380004 */ lw $t8, 4($s1) -/* 064964 80063D64 000EC823 */ negu $t9, $t6 -/* 064968 80063D68 00197840 */ sll $t7, $t9, 1 -/* 06496C 80063D6C 00186023 */ negu $t4, $t8 -/* 064970 80063D70 004FA021 */ addu $s4, $v0, $t7 -/* 064974 80063D74 000C6840 */ sll $t5, $t4, 1 -/* 064978 80063D78 16830009 */ bne $s4, $v1, .L80063DA0 -/* 06497C 80063D7C 004DF021 */ addu $fp, $v0, $t5 -/* 064980 80063D80 02407025 */ move $t6, $s2 -/* 064984 80063D84 00159400 */ sll $s2, $s5, 0x10 -/* 064988 80063D88 000EAC00 */ sll $s5, $t6, 0x10 -/* 06498C 80063D8C 00157C03 */ sra $t7, $s5, 0x10 -/* 064990 80063D90 0012CC03 */ sra $t9, $s2, 0x10 -/* 064994 80063D94 03209025 */ move $s2, $t9 -/* 064998 80063D98 10000008 */ b .L80063DBC -/* 06499C 80063D9C 01E0A825 */ move $s5, $t7 -.L80063DA0: -/* 0649A0 80063DA0 02602025 */ move $a0, $s3 -/* 0649A4 80063DA4 02802825 */ move $a1, $s4 -/* 0649A8 80063DA8 02A03025 */ move $a2, $s5 -/* 0649AC 80063DAC 02C03825 */ move $a3, $s6 -/* 0649B0 80063DB0 0C019128 */ jal _loadBuffer -/* 0649B4 80063DB4 AFB00010 */ sw $s0, 0x10($sp) -/* 0649B8 80063DB8 00408025 */ move $s0, $v0 -.L80063DBC: -/* 0649BC 80063DBC 02602025 */ move $a0, $s3 -/* 0649C0 80063DC0 02202825 */ move $a1, $s1 -/* 0649C4 80063DC4 02403025 */ move $a2, $s2 -/* 0649C8 80063DC8 02C03825 */ move $a3, $s6 -/* 0649CC 80063DCC 0C019089 */ jal _loadOutputBuffer -/* 0649D0 80063DD0 AFB00010 */ sw $s0, 0x10($sp) -/* 0649D4 80063DD4 86240008 */ lh $a0, 8($s1) -/* 0649D8 80063DD8 00408025 */ move $s0, $v0 -/* 0649DC 80063DDC 10800015 */ beqz $a0, .L80063E34 -/* 0649E0 80063DE0 308CFFFF */ andi $t4, $a0, 0xffff -/* 0649E4 80063DE4 3C010C00 */ lui $at, 0xc00 -/* 0649E8 80063DE8 0015CC00 */ sll $t9, $s5, 0x10 -/* 0649EC 80063DEC 324FFFFF */ andi $t7, $s2, 0xffff -/* 0649F0 80063DF0 032FC025 */ or $t8, $t9, $t7 -/* 0649F4 80063DF4 01816825 */ or $t5, $t4, $at -/* 0649F8 80063DF8 AC4D0000 */ sw $t5, ($v0) -/* 0649FC 80063DFC AC580004 */ sw $t8, 4($v0) -/* 064A00 80063E00 8E2C0024 */ lw $t4, 0x24($s1) -/* 064A04 80063E04 24500008 */ addiu $s0, $v0, 8 -/* 064A08 80063E08 1580000A */ bnez $t4, .L80063E34 -/* 064A0C 80063E0C 00000000 */ nop -/* 064A10 80063E10 8E2D0020 */ lw $t5, 0x20($s1) -/* 064A14 80063E14 02602025 */ move $a0, $s3 -/* 064A18 80063E18 15A00006 */ bnez $t5, .L80063E34 -/* 064A1C 80063E1C 03C02825 */ move $a1, $fp -/* 064A20 80063E20 02403025 */ move $a2, $s2 -/* 064A24 80063E24 02C03825 */ move $a3, $s6 -/* 064A28 80063E28 0C01918E */ jal _saveBuffer -/* 064A2C 80063E2C AFB00010 */ sw $s0, 0x10($sp) -/* 064A30 80063E30 00408025 */ move $s0, $v0 -.L80063E34: -/* 064A34 80063E34 8623000A */ lh $v1, 0xa($s1) -/* 064A38 80063E38 02001025 */ move $v0, $s0 -/* 064A3C 80063E3C 10600010 */ beqz $v1, .L80063E80 -/* 064A40 80063E40 3079FFFF */ andi $t9, $v1, 0xffff -/* 064A44 80063E44 3C010C00 */ lui $at, 0xc00 -/* 064A48 80063E48 00126400 */ sll $t4, $s2, 0x10 -/* 064A4C 80063E4C 32ADFFFF */ andi $t5, $s5, 0xffff -/* 064A50 80063E50 018D7025 */ or $t6, $t4, $t5 -/* 064A54 80063E54 03217825 */ or $t7, $t9, $at -/* 064A58 80063E58 AC4F0000 */ sw $t7, ($v0) -/* 064A5C 80063E5C AC4E0004 */ sw $t6, 4($v0) -/* 064A60 80063E60 26100008 */ addiu $s0, $s0, 8 -/* 064A64 80063E64 AFB00010 */ sw $s0, 0x10($sp) -/* 064A68 80063E68 02602025 */ move $a0, $s3 -/* 064A6C 80063E6C 02802825 */ move $a1, $s4 -/* 064A70 80063E70 02A03025 */ move $a2, $s5 -/* 064A74 80063E74 0C01918E */ jal _saveBuffer -/* 064A78 80063E78 02C03825 */ move $a3, $s6 -/* 064A7C 80063E7C 00408025 */ move $s0, $v0 -.L80063E80: -/* 064A80 80063E80 8E240020 */ lw $a0, 0x20($s1) -/* 064A84 80063E84 02402825 */ move $a1, $s2 -/* 064A88 80063E88 10800004 */ beqz $a0, .L80063E9C -/* 064A8C 80063E8C 02C03025 */ move $a2, $s6 -/* 064A90 80063E90 0C0191F4 */ jal _filterBuffer -/* 064A94 80063E94 02003825 */ move $a3, $s0 -/* 064A98 80063E98 00408025 */ move $s0, $v0 -.L80063E9C: -/* 064A9C 80063E9C 8E390024 */ lw $t9, 0x24($s1) -/* 064AA0 80063EA0 02602025 */ move $a0, $s3 -/* 064AA4 80063EA4 17200006 */ bnez $t9, .L80063EC0 -/* 064AA8 80063EA8 03C02825 */ move $a1, $fp -/* 064AAC 80063EAC 02403025 */ move $a2, $s2 -/* 064AB0 80063EB0 02C03825 */ move $a3, $s6 -/* 064AB4 80063EB4 0C01918E */ jal _saveBuffer -/* 064AB8 80063EB8 AFB00010 */ sw $s0, 0x10($sp) -/* 064ABC 80063EBC 00408025 */ move $s0, $v0 -.L80063EC0: -/* 064AC0 80063EC0 8623000C */ lh $v1, 0xc($s1) -/* 064AC4 80063EC4 26F70001 */ addiu $s7, $s7, 1 -/* 064AC8 80063EC8 10600009 */ beqz $v1, .L80063EF0 -/* 064ACC 80063ECC 02001025 */ move $v0, $s0 -/* 064AD0 80063ED0 3078FFFF */ andi $t8, $v1, 0xffff -/* 064AD4 80063ED4 3C010C00 */ lui $at, 0xc00 -/* 064AD8 80063ED8 00127400 */ sll $t6, $s2, 0x10 -/* 064ADC 80063EDC 35D90800 */ ori $t9, $t6, 0x800 -/* 064AE0 80063EE0 03016025 */ or $t4, $t8, $at -/* 064AE4 80063EE4 AC4C0000 */ sw $t4, ($v0) -/* 064AE8 80063EE8 AC590004 */ sw $t9, 4($v0) -/* 064AEC 80063EEC 26100008 */ addiu $s0, $s0, 8 -.L80063EF0: -/* 064AF0 80063EF0 926E0024 */ lbu $t6, 0x24($s3) -/* 064AF4 80063EF4 8E2F0004 */ lw $t7, 4($s1) -/* 064AF8 80063EF8 00176400 */ sll $t4, $s7, 0x10 -/* 064AFC 80063EFC 8E620018 */ lw $v0, 0x18($s3) -/* 064B00 80063F00 000CBC03 */ sra $s7, $t4, 0x10 -/* 064B04 80063F04 02EE082A */ slt $at, $s7, $t6 -/* 064B08 80063F08 000FC040 */ sll $t8, $t7, 1 -/* 064B0C 80063F0C 1420FF8E */ bnez $at, .L80063D48 -/* 064B10 80063F10 00581821 */ addu $v1, $v0, $t8 -.L80063F14: -/* 064B14 80063F14 8E63001C */ lw $v1, 0x1c($s3) -/* 064B18 80063F18 8E790018 */ lw $t9, 0x18($s3) -/* 064B1C 80063F1C 8FAF0050 */ lw $t7, 0x50($sp) -/* 064B20 80063F20 8E6D0014 */ lw $t5, 0x14($s3) -/* 064B24 80063F24 00036040 */ sll $t4, $v1, 1 -/* 064B28 80063F28 032FC021 */ addu $t8, $t9, $t7 -/* 064B2C 80063F2C 01AC7021 */ addu $t6, $t5, $t4 -/* 064B30 80063F30 01D8082B */ sltu $at, $t6, $t8 -/* 064B34 80063F34 10200003 */ beqz $at, .L80063F44 -/* 064B38 80063F38 AE780018 */ sw $t8, 0x18($s3) -/* 064B3C 80063F3C 030CC823 */ subu $t9, $t8, $t4 -/* 064B40 80063F40 AE790018 */ sw $t9, 0x18($s3) -.L80063F44: -/* 064B44 80063F44 3C0F0A00 */ lui $t7, (0x0A000800 >> 16) # lui $t7, 0xa00 -/* 064B48 80063F48 35EF0800 */ ori $t7, (0x0A000800 & 0xFFFF) # ori $t7, $t7, 0x800 -/* 064B4C 80063F4C AE0F0000 */ sw $t7, ($s0) -/* 064B50 80063F50 8FB80048 */ lw $t8, 0x48($sp) -/* 064B54 80063F54 3C0106C0 */ lui $at, 0x6c0 -/* 064B58 80063F58 03016025 */ or $t4, $t8, $at -/* 064B5C 80063F5C AE0C0004 */ sw $t4, 4($s0) -/* 064B60 80063F60 26020008 */ addiu $v0, $s0, 8 -/* 064B64 80063F64 8FBF0044 */ lw $ra, 0x44($sp) -.L80063F68: -/* 064B68 80063F68 8FB00020 */ lw $s0, 0x20($sp) -/* 064B6C 80063F6C 8FB10024 */ lw $s1, 0x24($sp) -/* 064B70 80063F70 8FB20028 */ lw $s2, 0x28($sp) -/* 064B74 80063F74 8FB3002C */ lw $s3, 0x2c($sp) -/* 064B78 80063F78 8FB40030 */ lw $s4, 0x30($sp) -/* 064B7C 80063F7C 8FB50034 */ lw $s5, 0x34($sp) -/* 064B80 80063F80 8FB60038 */ lw $s6, 0x38($sp) -/* 064B84 80063F84 8FB7003C */ lw $s7, 0x3c($sp) -/* 064B88 80063F88 8FBE0040 */ lw $fp, 0x40($sp) -/* 064B8C 80063F8C 03E00008 */ jr $ra -/* 064B90 80063F90 27BD00A0 */ addiu $sp, $sp, 0xa0 - diff --git a/lib/asm/non_matchings/reverb/func_8006492C.s b/lib/asm/non_matchings/reverb/func_8006492C.s deleted file mode 100644 index e8c0a85a..00000000 --- a/lib/asm/non_matchings/reverb/func_8006492C.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_8006492C -/* 06552C 8006492C 3C01800E */ lui $at, %hi(D_800DCEB0) # $at, 0x800e -/* 065530 80064930 AFA40000 */ sw $a0, ($sp) -/* 065534 80064934 03E00008 */ jr $ra -/* 065538 80064938 A024CEB0 */ sb $a0, %lo(D_800DCEB0)($at) - -/* 06553C 8006493C 3C02800E */ lui $v0, %hi(D_800DCEB0) # $v0, 0x800e -/* 065540 80064940 9042CEB0 */ lbu $v0, %lo(D_800DCEB0)($v0) -/* 065544 80064944 03E00008 */ jr $ra -/* 065548 80064948 00000000 */ nop - -/* 06554C 8006494C 00000000 */ nop diff --git a/lib/asm/non_matchings/sched/__scHandleRSP.s b/lib/asm/non_matchings/sched/__scHandleRSP.s deleted file mode 100644 index d8e52b5f..00000000 --- a/lib/asm/non_matchings/sched/__scHandleRSP.s +++ /dev/null @@ -1,151 +0,0 @@ -.late_rodata -glabel D_800E796C -.float 468750.0 - -.text -glabel __scHandleRSP -/* 07A744 80079B44 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 07A748 80079B48 AFBF001C */ sw $ra, 0x1c($sp) -/* 07A74C 80079B4C AFB00018 */ sw $s0, 0x18($sp) -/* 07A750 80079B50 AFA00030 */ sw $zero, 0x30($sp) -/* 07A754 80079B54 AFA0002C */ sw $zero, 0x2c($sp) -/* 07A758 80079B58 8C850274 */ lw $a1, 0x274($a0) -/* 07A75C 80079B5C AC800274 */ sw $zero, 0x274($a0) -/* 07A760 80079B60 8CAE0010 */ lw $t6, 0x10($a1) -/* 07A764 80079B64 24010002 */ li $at, 2 -/* 07A768 80079B68 15C10039 */ bne $t6, $at, .L80079C50 -/* 07A76C 80079B6C 00808025 */ move $s0, $a0 -/* 07A770 80079B70 0C031E34 */ jal osGetCount -/* 07A774 80079B74 AFA50034 */ sw $a1, 0x34($sp) -/* 07A778 80079B78 3C038012 */ lui $v1, %hi(gRSPAudTaskCount) # $v1, 0x8012 -/* 07A77C 80079B7C 24636124 */ addiu $v1, %lo(gRSPAudTaskCount) # addiu $v1, $v1, 0x6124 -/* 07A780 80079B80 AC620000 */ sw $v0, ($v1) -/* 07A784 80079B84 3C188012 */ lui $t8, %hi(D_80126120) # $t8, 0x8012 -/* 07A788 80079B88 8F186120 */ lw $t8, %lo(D_80126120)($t8) -/* 07A78C 80079B8C 3C04800E */ lui $a0, %hi(D_800DE74C) # $a0, 0x800e -/* 07A790 80079B90 0058C823 */ subu $t9, $v0, $t8 -/* 07A794 80079B94 44992000 */ mtc1 $t9, $f4 -/* 07A798 80079B98 8FA50034 */ lw $a1, 0x34($sp) -/* 07A79C 80079B9C 3C06800E */ lui $a2, %hi(D_800DE744) # $a2, 0x800e -/* 07A7A0 80079BA0 3C07800E */ lui $a3, %hi(D_800DE740) # $a3, 0x800e -/* 07A7A4 80079BA4 24E7E740 */ addiu $a3, %lo(D_800DE740) # addiu $a3, $a3, -0x18c0 -/* 07A7A8 80079BA8 24C6E744 */ addiu $a2, %lo(D_800DE744) # addiu $a2, $a2, -0x18bc -/* 07A7AC 80079BAC 2484E74C */ addiu $a0, %lo(D_800DE74C) # addiu $a0, $a0, -0x18b4 -/* 07A7B0 80079BB0 07210005 */ bgez $t9, .L80079BC8 -/* 07A7B4 80079BB4 468021A0 */ cvt.s.w $f6, $f4 -/* 07A7B8 80079BB8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 07A7BC 80079BBC 44814000 */ mtc1 $at, $f8 -/* 07A7C0 80079BC0 00000000 */ nop -/* 07A7C4 80079BC4 46083180 */ add.s $f6, $f6, $f8 -.L80079BC8: -/* 07A7C8 80079BC8 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 07A7CC 80079BCC 44815000 */ mtc1 $at, $f10 -/* 07A7D0 80079BD0 3C01800E */ lui $at, %hi(D_800E796C) # $at, 0x800e -/* 07A7D4 80079BD4 460A3402 */ mul.s $f16, $f6, $f10 -/* 07A7D8 80079BD8 C432796C */ lwc1 $f18, %lo(D_800E796C)($at) -/* 07A7DC 80079BDC C4EA0000 */ lwc1 $f10, ($a3) -/* 07A7E0 80079BE0 C4C80000 */ lwc1 $f8, ($a2) -/* 07A7E4 80079BE4 46128103 */ div.s $f4, $f16, $f18 -/* 07A7E8 80079BE8 3C02800E */ lui $v0, %hi(gRetraceCounter32) # $v0, 0x800e -/* 07A7EC 80079BEC E4840000 */ swc1 $f4, ($a0) -/* 07A7F0 80079BF0 C4800000 */ lwc1 $f0, ($a0) -/* 07A7F4 80079BF4 00000000 */ nop -/* 07A7F8 80079BF8 4600503C */ c.lt.s $f10, $f0 -/* 07A7FC 80079BFC 46004180 */ add.s $f6, $f8, $f0 -/* 07A800 80079C00 45000002 */ bc1f .L80079C0C -/* 07A804 80079C04 E4C60000 */ swc1 $f6, ($a2) -/* 07A808 80079C08 E4E00000 */ swc1 $f0, ($a3) -.L80079C0C: -/* 07A80C 80079C0C 8C42E750 */ lw $v0, %lo(gRetraceCounter32)($v0) -/* 07A810 80079C10 240103E8 */ li $at, 1000 -/* 07A814 80079C14 0041001A */ div $zero, $v0, $at -/* 07A818 80079C18 24010001 */ li $at, 1 -/* 07A81C 80079C1C 00004010 */ mfhi $t0 -/* 07A820 80079C20 11010002 */ beq $t0, $at, .L80079C2C -/* 07A824 80079C24 24010002 */ li $at, 2 -/* 07A828 80079C28 15010009 */ bne $t0, $at, .L80079C50 -.L80079C2C: -/* 07A82C 80079C2C 3C0143FA */ li $at, 0x43FA0000 # 500.000000 -/* 07A830 80079C30 44819000 */ mtc1 $at, $f18 -/* 07A834 80079C34 C4D00000 */ lwc1 $f16, ($a2) -/* 07A838 80079C38 44800000 */ mtc1 $zero, $f0 -/* 07A83C 80079C3C 46128103 */ div.s $f4, $f16, $f18 -/* 07A840 80079C40 3C01800E */ lui $at, %hi(D_800DE748) # $at, 0x800e -/* 07A844 80079C44 E424E748 */ swc1 $f4, %lo(D_800DE748)($at) -/* 07A848 80079C48 E4C00000 */ swc1 $f0, ($a2) -/* 07A84C 80079C4C E4E00000 */ swc1 $f0, ($a3) -.L80079C50: -/* 07A850 80079C50 8CA20004 */ lw $v0, 4($a1) -/* 07A854 80079C54 2401FFFD */ li $at, -3 -/* 07A858 80079C58 30490010 */ andi $t1, $v0, 0x10 -/* 07A85C 80079C5C 11200026 */ beqz $t1, .L80079CF8 -/* 07A860 80079C60 00415024 */ and $t2, $v0, $at -/* 07A864 80079C64 24A40010 */ addiu $a0, $a1, 0x10 -/* 07A868 80079C68 0C03477C */ jal osSpTaskYielded -/* 07A86C 80079C6C AFA50034 */ sw $a1, 0x34($sp) -/* 07A870 80079C70 8FA50034 */ lw $a1, 0x34($sp) -/* 07A874 80079C74 10400015 */ beqz $v0, .L80079CCC -/* 07A878 80079C78 2401FFFD */ li $at, -3 -/* 07A87C 80079C7C 8CAA0004 */ lw $t2, 4($a1) -/* 07A880 80079C80 8CAC0008 */ lw $t4, 8($a1) -/* 07A884 80079C84 24010003 */ li $at, 3 -/* 07A888 80079C88 354B0020 */ ori $t3, $t2, 0x20 -/* 07A88C 80079C8C 318D0007 */ andi $t5, $t4, 7 -/* 07A890 80079C90 15A10009 */ bne $t5, $at, .L80079CB8 -/* 07A894 80079C94 ACAB0004 */ sw $t3, 4($a1) -/* 07A898 80079C98 8E0E0268 */ lw $t6, 0x268($s0) -/* 07A89C 80079C9C 00000000 */ nop -/* 07A8A0 80079CA0 ACAE0000 */ sw $t6, ($a1) -/* 07A8A4 80079CA4 8E0F0270 */ lw $t7, 0x270($s0) -/* 07A8A8 80079CA8 AE050268 */ sw $a1, 0x268($s0) -/* 07A8AC 80079CAC 15E00002 */ bnez $t7, .L80079CB8 -/* 07A8B0 80079CB0 00000000 */ nop -/* 07A8B4 80079CB4 AE050270 */ sw $a1, 0x270($s0) -.L80079CB8: -/* 07A8B8 80079CB8 8CA20008 */ lw $v0, 8($a1) -/* 07A8BC 80079CBC 00000000 */ nop -/* 07A8C0 80079CC0 30580007 */ andi $t8, $v0, 7 -/* 07A8C4 80079CC4 10000007 */ b .L80079CE4 -/* 07A8C8 80079CC8 03001025 */ move $v0, $t8 -.L80079CCC: -/* 07A8CC 80079CCC 8CB90004 */ lw $t9, 4($a1) -/* 07A8D0 80079CD0 8CA20008 */ lw $v0, 8($a1) -/* 07A8D4 80079CD4 03214024 */ and $t0, $t9, $at -/* 07A8D8 80079CD8 30490007 */ andi $t1, $v0, 7 -/* 07A8DC 80079CDC ACA80004 */ sw $t0, 4($a1) -/* 07A8E0 80079CE0 01201025 */ move $v0, $t1 -.L80079CE4: -/* 07A8E4 80079CE4 24010003 */ li $at, 3 -/* 07A8E8 80079CE8 10410006 */ beq $v0, $at, .L80079D04 -/* 07A8EC 80079CEC 00000000 */ nop -/* 07A8F0 80079CF0 10000005 */ b .L80079D08 -/* 07A8F4 80079CF4 8E0B0274 */ lw $t3, 0x274($s0) -.L80079CF8: -/* 07A8F8 80079CF8 ACAA0004 */ sw $t2, 4($a1) -/* 07A8FC 80079CFC 0C01E790 */ jal __scTaskComplete -/* 07A900 80079D00 02002025 */ move $a0, $s0 -.L80079D04: -/* 07A904 80079D04 8E0B0274 */ lw $t3, 0x274($s0) -.L80079D08: -/* 07A908 80079D08 8E0E0278 */ lw $t6, 0x278($s0) -/* 07A90C 80079D0C 2D6C0001 */ sltiu $t4, $t3, 1 -/* 07A910 80079D10 000C6840 */ sll $t5, $t4, 1 -/* 07A914 80079D14 2DCF0001 */ sltiu $t7, $t6, 1 -/* 07A918 80079D18 01AF3825 */ or $a3, $t5, $t7 -/* 07A91C 80079D1C AFA70028 */ sw $a3, 0x28($sp) -/* 07A920 80079D20 02002025 */ move $a0, $s0 -/* 07A924 80079D24 27A50030 */ addiu $a1, $sp, 0x30 -/* 07A928 80079D28 0C01E835 */ jal __scSchedule -/* 07A92C 80079D2C 27A6002C */ addiu $a2, $sp, 0x2c -/* 07A930 80079D30 8FA70028 */ lw $a3, 0x28($sp) -/* 07A934 80079D34 8FA50030 */ lw $a1, 0x30($sp) -/* 07A938 80079D38 10470005 */ beq $v0, $a3, .L80079D50 -/* 07A93C 80079D3C 8FBF001C */ lw $ra, 0x1c($sp) -/* 07A940 80079D40 8FA6002C */ lw $a2, 0x2c($sp) -/* 07A944 80079D44 0C01E7EA */ jal __scExec -/* 07A948 80079D48 02002025 */ move $a0, $s0 -/* 07A94C 80079D4C 8FBF001C */ lw $ra, 0x1c($sp) -.L80079D50: -/* 07A950 80079D50 8FB00018 */ lw $s0, 0x18($sp) -/* 07A954 80079D54 03E00008 */ jr $ra -/* 07A958 80079D58 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/lib/asm/non_matchings/synthesizer/alSynNew.s b/lib/asm/non_matchings/synthesizer/alSynNew.s deleted file mode 100644 index b266a0b0..00000000 --- a/lib/asm/non_matchings/synthesizer/alSynNew.s +++ /dev/null @@ -1,226 +0,0 @@ -glabel alSynNew -/* 065D30 80065130 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 065D34 80065134 AFBF0044 */ sw $ra, 0x44($sp) -/* 065D38 80065138 AFBE0040 */ sw $fp, 0x40($sp) -/* 065D3C 8006513C AFB7003C */ sw $s7, 0x3c($sp) -/* 065D40 80065140 AFB60038 */ sw $s6, 0x38($sp) -/* 065D44 80065144 AFB50034 */ sw $s5, 0x34($sp) -/* 065D48 80065148 AFB40030 */ sw $s4, 0x30($sp) -/* 065D4C 8006514C AFB3002C */ sw $s3, 0x2c($sp) -/* 065D50 80065150 AFB20028 */ sw $s2, 0x28($sp) -/* 065D54 80065154 AFB10024 */ sw $s1, 0x24($sp) -/* 065D58 80065158 AFB00020 */ sw $s0, 0x20($sp) -/* 065D5C 8006515C 8CB70014 */ lw $s7, 0x14($a1) -/* 065D60 80065160 AC800000 */ sw $zero, ($a0) -/* 065D64 80065164 8CAE0004 */ lw $t6, 4($a1) -/* 065D68 80065168 AC800020 */ sw $zero, 0x20($a0) -/* 065D6C 8006516C AC80001C */ sw $zero, 0x1c($a0) -/* 065D70 80065170 AC8E003C */ sw $t6, 0x3c($a0) -/* 065D74 80065174 8CAF0018 */ lw $t7, 0x18($a1) -/* 065D78 80065178 241800A0 */ li $t8, 160 -/* 065D7C 8006517C AC980048 */ sw $t8, 0x48($a0) -/* 065D80 80065180 AC8F0044 */ sw $t7, 0x44($a0) -/* 065D84 80065184 8CB90010 */ lw $t9, 0x10($a1) -/* 065D88 80065188 0080B025 */ move $s6, $a0 -/* 065D8C 8006518C 00A0F025 */ move $fp, $a1 -/* 065D90 80065190 2408001C */ li $t0, 28 -/* 065D94 80065194 AC990024 */ sw $t9, 0x24($a0) -/* 065D98 80065198 AFA80010 */ sw $t0, 0x10($sp) -/* 065D9C 8006519C 00002025 */ move $a0, $zero -/* 065DA0 800651A0 00002825 */ move $a1, $zero -/* 065DA4 800651A4 24070001 */ li $a3, 1 -/* 065DA8 800651A8 0C031DFC */ jal alHeapDBAlloc -/* 065DAC 800651AC 02E03025 */ move $a2, $s7 -/* 065DB0 800651B0 AFA2005C */ sw $v0, 0x5c($sp) -/* 065DB4 800651B4 0C019439 */ jal alSaveNew -/* 065DB8 800651B8 00402025 */ move $a0, $v0 -/* 065DBC 800651BC 8FA9005C */ lw $t1, 0x5c($sp) -/* 065DC0 800651C0 240A004C */ li $t2, 76 -/* 065DC4 800651C4 AEC90038 */ sw $t1, 0x38($s6) -/* 065DC8 800651C8 AFAA0010 */ sw $t2, 0x10($sp) -/* 065DCC 800651CC 00002025 */ move $a0, $zero -/* 065DD0 800651D0 00002825 */ move $a1, $zero -/* 065DD4 800651D4 02E03025 */ move $a2, $s7 -/* 065DD8 800651D8 0C031DFC */ jal alHeapDBAlloc -/* 065DDC 800651DC 24070002 */ li $a3, 2 -/* 065DE0 800651E0 240B0002 */ li $t3, 2 -/* 065DE4 800651E4 AEC20034 */ sw $v0, 0x34($s6) -/* 065DE8 800651E8 AECB0040 */ sw $t3, 0x40($s6) -/* 065DEC 800651EC 8FC70004 */ lw $a3, 4($fp) -/* 065DF0 800651F0 240C0004 */ li $t4, 4 -/* 065DF4 800651F4 AFAC0010 */ sw $t4, 0x10($sp) -/* 065DF8 800651F8 00002025 */ move $a0, $zero -/* 065DFC 800651FC 00002825 */ move $a1, $zero -/* 065E00 80065200 0C031DFC */ jal alHeapDBAlloc -/* 065E04 80065204 02E03025 */ move $a2, $s7 -/* 065E08 80065208 8EC40034 */ lw $a0, 0x34($s6) -/* 065E0C 8006520C 8FC60004 */ lw $a2, 4($fp) -/* 065E10 80065210 0C019409 */ jal alAuxBusNew -/* 065E14 80065214 00402825 */ move $a1, $v0 -/* 065E18 80065218 8FC70004 */ lw $a3, 4($fp) -/* 065E1C 8006521C 240D0004 */ li $t5, 4 -/* 065E20 80065220 AFAD0010 */ sw $t5, 0x10($sp) -/* 065E24 80065224 00002025 */ move $a0, $zero -/* 065E28 80065228 00002825 */ move $a1, $zero -/* 065E2C 8006522C 0C031DFC */ jal alHeapDBAlloc -/* 065E30 80065230 02E03025 */ move $a2, $s7 -/* 065E34 80065234 8EC40034 */ lw $a0, 0x34($s6) -/* 065E38 80065238 8FC60004 */ lw $a2, 4($fp) -/* 065E3C 8006523C 00402825 */ move $a1, $v0 -/* 065E40 80065240 0C019409 */ jal alAuxBusNew -/* 065E44 80065244 2484004C */ addiu $a0, $a0, 0x4c -/* 065E48 80065248 240E0020 */ li $t6, 32 -/* 065E4C 8006524C AFAE0010 */ sw $t6, 0x10($sp) -/* 065E50 80065250 00002025 */ move $a0, $zero -/* 065E54 80065254 00002825 */ move $a1, $zero -/* 065E58 80065258 02E03025 */ move $a2, $s7 -/* 065E5C 8006525C 0C031DFC */ jal alHeapDBAlloc -/* 065E60 80065260 24070001 */ li $a3, 1 -/* 065E64 80065264 AEC20030 */ sw $v0, 0x30($s6) -/* 065E68 80065268 8FC70004 */ lw $a3, 4($fp) -/* 065E6C 8006526C 240F0004 */ li $t7, 4 -/* 065E70 80065270 AFAF0010 */ sw $t7, 0x10($sp) -/* 065E74 80065274 00002025 */ move $a0, $zero -/* 065E78 80065278 00002825 */ move $a1, $zero -/* 065E7C 8006527C 0C031DFC */ jal alHeapDBAlloc -/* 065E80 80065280 02E03025 */ move $a2, $s7 -/* 065E84 80065284 8EC40030 */ lw $a0, 0x30($s6) -/* 065E88 80065288 8FC60004 */ lw $a2, 4($fp) -/* 065E8C 8006528C 0C019421 */ jal alMainBusNew -/* 065E90 80065290 00402825 */ move $a1, $v0 -/* 065E94 80065294 00008025 */ move $s0, $zero -/* 065E98 80065298 03C08825 */ move $s1, $fp -/* 065E9C 8006529C 2412004C */ li $s2, 76 -.L800652A0: -/* 065EA0 800652A0 9238001C */ lbu $t8, 0x1c($s1) -/* 065EA4 800652A4 02C02025 */ move $a0, $s6 -/* 065EA8 800652A8 13000008 */ beqz $t8, .L800652CC -/* 065EAC 800652AC 00102C00 */ sll $a1, $s0, 0x10 -/* 065EB0 800652B0 0005CC03 */ sra $t9, $a1, 0x10 -/* 065EB4 800652B4 03202825 */ move $a1, $t9 -/* 065EB8 800652B8 03C03025 */ move $a2, $fp -/* 065EBC 800652BC 0C019618 */ jal alSynAllocFX -/* 065EC0 800652C0 02E03825 */ move $a3, $s7 -/* 065EC4 800652C4 1000000A */ b .L800652F0 -/* 065EC8 800652C8 26100001 */ addiu $s0, $s0, 1 -.L800652CC: -/* 065ECC 800652CC 02120019 */ multu $s0, $s2 -/* 065ED0 800652D0 8EC80034 */ lw $t0, 0x34($s6) -/* 065ED4 800652D4 8EC40030 */ lw $a0, 0x30($s6) -/* 065ED8 800652D8 24050002 */ li $a1, 2 -/* 065EDC 800652DC 00004812 */ mflo $t1 -/* 065EE0 800652E0 01093021 */ addu $a2, $t0, $t1 -/* 065EE4 800652E4 0C0330E4 */ jal alMainBusParam -/* 065EE8 800652E8 00000000 */ nop -/* 065EEC 800652EC 26100001 */ addiu $s0, $s0, 1 -.L800652F0: -/* 065EF0 800652F0 2A010002 */ slti $at, $s0, 2 -/* 065EF4 800652F4 1420FFEA */ bnez $at, .L800652A0 -/* 065EF8 800652F8 26310001 */ addiu $s1, $s1, 1 -/* 065EFC 800652FC AEC00004 */ sw $zero, 4($s6) -/* 065F00 80065300 AEC00008 */ sw $zero, 8($s6) -/* 065F04 80065304 AEC00014 */ sw $zero, 0x14($s6) -/* 065F08 80065308 AEC00018 */ sw $zero, 0x18($s6) -/* 065F0C 8006530C AEC0000C */ sw $zero, 0xc($s6) -/* 065F10 80065310 AEC00010 */ sw $zero, 0x10($s6) -/* 065F14 80065314 8FC70004 */ lw $a3, 4($fp) -/* 065F18 80065318 240A00E0 */ li $t2, 224 -/* 065F1C 8006531C AFAA0010 */ sw $t2, 0x10($sp) -/* 065F20 80065320 00002025 */ move $a0, $zero -/* 065F24 80065324 00002825 */ move $a1, $zero -/* 065F28 80065328 0C031DFC */ jal alHeapDBAlloc -/* 065F2C 8006532C 02E03025 */ move $a2, $s7 -/* 065F30 80065330 8FCB0004 */ lw $t3, 4($fp) -/* 065F34 80065334 00008025 */ move $s0, $zero -/* 065F38 80065338 19600030 */ blez $t3, .L800653FC -/* 065F3C 8006533C 00408825 */ move $s1, $v0 -/* 065F40 80065340 26C50004 */ addiu $a1, $s6, 4 -/* 065F44 80065344 AFA50048 */ sw $a1, 0x48($sp) -/* 065F48 80065348 2452008C */ addiu $s2, $v0, 0x8c -/* 065F4C 8006534C 24530058 */ addiu $s3, $v0, 0x58 -/* 065F50 80065350 24540010 */ addiu $s4, $v0, 0x10 -.L80065354: -/* 065F54 80065354 8FA50048 */ lw $a1, 0x48($sp) -/* 065F58 80065358 0220A825 */ move $s5, $s1 -/* 065F5C 8006535C 0C0321E4 */ jal alLink -/* 065F60 80065360 02202025 */ move $a0, $s1 -/* 065F64 80065364 AE200008 */ sw $zero, 8($s1) -/* 065F68 80065368 8EC50024 */ lw $a1, 0x24($s6) -/* 065F6C 8006536C 02802025 */ move $a0, $s4 -/* 065F70 80065370 0C0193BE */ jal alLoadNew -/* 065F74 80065374 02E03025 */ move $a2, $s7 -/* 065F78 80065378 02802025 */ move $a0, $s4 -/* 065F7C 8006537C 24050001 */ li $a1, 1 -/* 065F80 80065380 0C032D50 */ jal alLoadParam -/* 065F84 80065384 00003025 */ move $a2, $zero -/* 065F88 80065388 02602025 */ move $a0, $s3 -/* 065F8C 8006538C 0C0193E7 */ jal alResampleNew -/* 065F90 80065390 02E02825 */ move $a1, $s7 -/* 065F94 80065394 02602025 */ move $a0, $s3 -/* 065F98 80065398 24050001 */ li $a1, 1 -/* 065F9C 8006539C 0C033024 */ jal alResampleParam -/* 065FA0 800653A0 02803025 */ move $a2, $s4 -/* 065FA4 800653A4 02402025 */ move $a0, $s2 -/* 065FA8 800653A8 0C019395 */ jal alEnvmixerNew -/* 065FAC 800653AC 02E02825 */ move $a1, $s7 -/* 065FB0 800653B0 02402025 */ move $a0, $s2 -/* 065FB4 800653B4 24050001 */ li $a1, 1 -/* 065FB8 800653B8 0C032A9F */ jal alEnvmixerParam -/* 065FBC 800653BC 02603025 */ move $a2, $s3 -/* 065FC0 800653C0 8EC40034 */ lw $a0, 0x34($s6) -/* 065FC4 800653C4 24050002 */ li $a1, 2 -/* 065FC8 800653C8 0C019675 */ jal alAuxBusParam -/* 065FCC 800653CC 02403025 */ move $a2, $s2 -/* 065FD0 800653D0 26AC008C */ addiu $t4, $s5, 0x8c -/* 065FD4 800653D4 AEAC000C */ sw $t4, 0xc($s5) -/* 065FD8 800653D8 8FCD0004 */ lw $t5, 4($fp) -/* 065FDC 800653DC 26100001 */ addiu $s0, $s0, 1 -/* 065FE0 800653E0 020D082A */ slt $at, $s0, $t5 -/* 065FE4 800653E4 263100E0 */ addiu $s1, $s1, 0xe0 -/* 065FE8 800653E8 265200E0 */ addiu $s2, $s2, 0xe0 -/* 065FEC 800653EC 267300E0 */ addiu $s3, $s3, 0xe0 -/* 065FF0 800653F0 1420FFD8 */ bnez $at, .L80065354 -/* 065FF4 800653F4 269400E0 */ addiu $s4, $s4, 0xe0 -/* 065FF8 800653F8 00008025 */ move $s0, $zero -.L800653FC: -/* 065FFC 800653FC 8FA4005C */ lw $a0, 0x5c($sp) -/* 066000 80065400 8EC60030 */ lw $a2, 0x30($s6) -/* 066004 80065404 0C033138 */ jal alSaveParam -/* 066008 80065408 24050001 */ li $a1, 1 -/* 06600C 8006540C 8FC70008 */ lw $a3, 8($fp) -/* 066010 80065410 240E001C */ li $t6, 28 -/* 066014 80065414 AFAE0010 */ sw $t6, 0x10($sp) -/* 066018 80065418 00002025 */ move $a0, $zero -/* 06601C 8006541C 00002825 */ move $a1, $zero -/* 066020 80065420 0C031DFC */ jal alHeapDBAlloc -/* 066024 80065424 02E03025 */ move $a2, $s7 -/* 066028 80065428 AEC0002C */ sw $zero, 0x2c($s6) -/* 06602C 8006542C 8FCF0008 */ lw $t7, 8($fp) -/* 066030 80065430 00401825 */ move $v1, $v0 -/* 066034 80065434 19E0000A */ blez $t7, .L80065460 -/* 066038 80065438 00000000 */ nop -.L8006543C: -/* 06603C 8006543C 8ED8002C */ lw $t8, 0x2c($s6) -/* 066040 80065440 26100001 */ addiu $s0, $s0, 1 -/* 066044 80065444 AC780000 */ sw $t8, ($v1) -/* 066048 80065448 AEC3002C */ sw $v1, 0x2c($s6) -/* 06604C 8006544C 8FD90008 */ lw $t9, 8($fp) -/* 066050 80065450 2463001C */ addiu $v1, $v1, 0x1c -/* 066054 80065454 0219082A */ slt $at, $s0, $t9 -/* 066058 80065458 1420FFF8 */ bnez $at, .L8006543C -/* 06605C 8006545C 00000000 */ nop -.L80065460: -/* 066060 80065460 AED70028 */ sw $s7, 0x28($s6) -/* 066064 80065464 8FBF0044 */ lw $ra, 0x44($sp) -/* 066068 80065468 8FBE0040 */ lw $fp, 0x40($sp) -/* 06606C 8006546C 8FB7003C */ lw $s7, 0x3c($sp) -/* 066070 80065470 8FB60038 */ lw $s6, 0x38($sp) -/* 066074 80065474 8FB50034 */ lw $s5, 0x34($sp) -/* 066078 80065478 8FB40030 */ lw $s4, 0x30($sp) -/* 06607C 8006547C 8FB3002C */ lw $s3, 0x2c($sp) -/* 066080 80065480 8FB20028 */ lw $s2, 0x28($sp) -/* 066084 80065484 8FB10024 */ lw $s1, 0x24($sp) -/* 066088 80065488 8FB00020 */ lw $s0, 0x20($sp) -/* 06608C 8006548C 03E00008 */ jr $ra -/* 066090 80065490 27BD0070 */ addiu $sp, $sp, 0x70 - diff --git a/lib/asm/non_matchings/unknown_0C8490/alCSPGetTempo.s b/lib/asm/non_matchings/unknown_0C8490/alCSPGetTempo.s deleted file mode 100644 index eb51383d..00000000 --- a/lib/asm/non_matchings/unknown_0C8490/alCSPGetTempo.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel alCSPGetTempo -/* 0C8490 800C7890 8C830018 */ lw $v1, 0x18($a0) -/* 0C8494 800C7894 54600004 */ bnezl $v1, .L800C78A8 -/* 0C8498 800C7898 8C8E0024 */ lw $t6, 0x24($a0) -/* 0C849C 800C789C 03E00008 */ jr $ra -/* 0C84A0 800C78A0 00001025 */ move $v0, $zero - -/* 0C84A4 800C78A4 8C8E0024 */ lw $t6, 0x24($a0) -.L800C78A8: -/* 0C84A8 800C78A8 C4680008 */ lwc1 $f8, 8($v1) -/* 0C84AC 800C78AC 448E2000 */ mtc1 $t6, $f4 -/* 0C84B0 800C78B0 00000000 */ nop -/* 0C84B4 800C78B4 468021A0 */ cvt.s.w $f6, $f4 -/* 0C84B8 800C78B8 46083283 */ div.s $f10, $f6, $f8 -/* 0C84BC 800C78BC 4600540D */ trunc.w.s $f16, $f10 -/* 0C84C0 800C78C0 44028000 */ mfc1 $v0, $f16 -/* 0C84C4 800C78C4 00000000 */ nop -/* 0C84C8 800C78C8 03E00008 */ jr $ra -/* 0C84CC 800C78CC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C8540/alCSPSetChlVol.s b/lib/asm/non_matchings/unknown_0C8540/alCSPSetChlVol.s deleted file mode 100644 index d6b948fe..00000000 --- a/lib/asm/non_matchings/unknown_0C8540/alCSPSetChlVol.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel alCSPSetChlVol -/* 0C8540 800C7940 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C8544 800C7944 00A03825 */ move $a3, $a1 -/* 0C8548 800C7948 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C854C 800C794C AFA5002C */ sw $a1, 0x2c($sp) -/* 0C8550 800C7950 AFA60030 */ sw $a2, 0x30($sp) -/* 0C8554 800C7954 00C04025 */ move $t0, $a2 -/* 0C8558 800C7958 240E0002 */ li $t6, 2 -/* 0C855C 800C795C 34EF00B0 */ ori $t7, $a3, 0xb0 -/* 0C8560 800C7960 24180007 */ li $t8, 7 -/* 0C8564 800C7964 A7AE0018 */ sh $t6, 0x18($sp) -/* 0C8568 800C7968 AFA0001C */ sw $zero, 0x1c($sp) -/* 0C856C 800C796C A3AF0020 */ sb $t7, 0x20($sp) -/* 0C8570 800C7970 A3B80021 */ sb $t8, 0x21($sp) -/* 0C8574 800C7974 A3A80022 */ sb $t0, 0x22($sp) -/* 0C8578 800C7978 00003025 */ move $a2, $zero -/* 0C857C 800C797C 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C8580 800C7980 0C03246B */ jal alEvtqPostEvent -/* 0C8584 800C7984 24840048 */ addiu $a0, $a0, 0x48 -/* 0C8588 800C7988 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C858C 800C798C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C8590 800C7990 03E00008 */ jr $ra -/* 0C8594 800C7994 00000000 */ nop - -/* 0C8598 800C7998 00000000 */ nop -/* 0C859C 800C799C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C8650/alCSPGetState.s b/lib/asm/non_matchings/unknown_0C8650/alCSPGetState.s deleted file mode 100644 index e4f55901..00000000 --- a/lib/asm/non_matchings/unknown_0C8650/alCSPGetState.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel alCSPGetState -/* 0C8650 800C7A50 03E00008 */ jr $ra -/* 0C8654 800C7A54 8C82002C */ lw $v0, 0x2c($a0) - -/* 0C8658 800C7A58 00000000 */ nop -/* 0C865C 800C7A5C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C8660/alCSPSetBank.s b/lib/asm/non_matchings/unknown_0C8660/alCSPSetBank.s deleted file mode 100644 index 8b474aa0..00000000 --- a/lib/asm/non_matchings/unknown_0C8660/alCSPSetBank.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel alCSPSetBank -/* 0C8660 800C7A60 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C8664 800C7A64 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C8668 800C7A68 240E000E */ li $t6, 14 -/* 0C866C 800C7A6C AFA5001C */ sw $a1, 0x1c($sp) -/* 0C8670 800C7A70 A7AE0018 */ sh $t6, 0x18($sp) -/* 0C8674 800C7A74 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C8678 800C7A78 24840048 */ addiu $a0, $a0, 0x48 -/* 0C867C 800C7A7C 0C03246B */ jal alEvtqPostEvent -/* 0C8680 800C7A80 00003025 */ move $a2, $zero -/* 0C8684 800C7A84 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C8688 800C7A88 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C868C 800C7A8C 03E00008 */ jr $ra -/* 0C8690 800C7A90 00000000 */ nop - -/* 0C8694 800C7A94 00000000 */ nop -/* 0C8698 800C7A98 00000000 */ nop -/* 0C869C 800C7A9C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C86A0/__alCSeqGetTrackEvent.s b/lib/asm/non_matchings/unknown_0C86A0/__alCSeqGetTrackEvent.s deleted file mode 100644 index d77492ca..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/__alCSeqGetTrackEvent.s +++ /dev/null @@ -1,208 +0,0 @@ -glabel __alCSeqGetTrackEvent -/* 0C8904 800C7D04 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C8908 800C7D08 AFB00018 */ sw $s0, 0x18($sp) -/* 0C890C 800C7D0C 00A08025 */ move $s0, $a1 -/* 0C8910 800C7D10 AFBF001C */ sw $ra, 0x1c($sp) -/* 0C8914 800C7D14 00806025 */ move $t4, $a0 -/* 0C8918 800C7D18 2409FFFF */ li $t1, -1 -/* 0C891C 800C7D1C 8C860010 */ lw $a2, 0x10($a0) -/* 0C8920 800C7D20 24050010 */ li $a1, 16 -/* 0C8924 800C7D24 8FAB0024 */ lw $t3, 0x24($sp) -/* 0C8928 800C7D28 00001025 */ move $v0, $zero -/* 0C892C 800C7D2C 8D8E0004 */ lw $t6, 4($t4) -.L800C7D30: -/* 0C8930 800C7D30 004E7806 */ srlv $t7, $t6, $v0 -/* 0C8934 800C7D34 31F80001 */ andi $t8, $t7, 1 -/* 0C8938 800C7D38 53000010 */ beql $t8, $zero, .L800C7D7C -/* 0C893C 800C7D3C 24420001 */ addiu $v0, $v0, 1 -/* 0C8940 800C7D40 8D8E0014 */ lw $t6, 0x14($t4) -/* 0C8944 800C7D44 0002C880 */ sll $t9, $v0, 2 -/* 0C8948 800C7D48 01991821 */ addu $v1, $t4, $t9 -/* 0C894C 800C7D4C 51C00005 */ beql $t6, $zero, .L800C7D64 -/* 0C8950 800C7D50 8C6400B8 */ lw $a0, 0xb8($v1) -/* 0C8954 800C7D54 8C6F00B8 */ lw $t7, 0xb8($v1) -/* 0C8958 800C7D58 01E6C023 */ subu $t8, $t7, $a2 -/* 0C895C 800C7D5C AC7800B8 */ sw $t8, 0xb8($v1) -/* 0C8960 800C7D60 8C6400B8 */ lw $a0, 0xb8($v1) -.L800C7D64: -/* 0C8964 800C7D64 0089082B */ sltu $at, $a0, $t1 -/* 0C8968 800C7D68 50200004 */ beql $at, $zero, .L800C7D7C -/* 0C896C 800C7D6C 24420001 */ addiu $v0, $v0, 1 -/* 0C8970 800C7D70 00804825 */ move $t1, $a0 -/* 0C8974 800C7D74 00405825 */ move $t3, $v0 -/* 0C8978 800C7D78 24420001 */ addiu $v0, $v0, 1 -.L800C7D7C: -/* 0C897C 800C7D7C 5445FFEC */ bnel $v0, $a1, .L800C7D30 -/* 0C8980 800C7D80 8D8E0004 */ lw $t6, 4($t4) -/* 0C8984 800C7D84 01802025 */ move $a0, $t4 -/* 0C8988 800C7D88 0C031EF8 */ jal __getTrackByte -/* 0C898C 800C7D8C 01602825 */ move $a1, $t3 -/* 0C8990 800C7D90 240100FF */ li $at, 255 -/* 0C8994 800C7D94 304A00FF */ andi $t2, $v0, 0xff -/* 0C8998 800C7D98 1441005A */ bne $v0, $at, .L800C7F04 -/* 0C899C 800C7D9C 00401825 */ move $v1, $v0 -/* 0C89A0 800C7DA0 01802025 */ move $a0, $t4 -/* 0C89A4 800C7DA4 0C031EF8 */ jal __getTrackByte -/* 0C89A8 800C7DA8 01602825 */ move $a1, $t3 -/* 0C89AC 800C7DAC 24010051 */ li $at, 81 -/* 0C89B0 800C7DB0 304600FF */ andi $a2, $v0, 0xff -/* 0C89B4 800C7DB4 14410014 */ bne $v0, $at, .L800C7E08 -/* 0C89B8 800C7DB8 00401825 */ move $v1, $v0 -/* 0C89BC 800C7DBC 24190003 */ li $t9, 3 -/* 0C89C0 800C7DC0 A6190000 */ sh $t9, ($s0) -/* 0C89C4 800C7DC4 A20A0008 */ sb $t2, 8($s0) -/* 0C89C8 800C7DC8 A2060009 */ sb $a2, 9($s0) -/* 0C89CC 800C7DCC 01802025 */ move $a0, $t4 -/* 0C89D0 800C7DD0 0C031EF8 */ jal __getTrackByte -/* 0C89D4 800C7DD4 01602825 */ move $a1, $t3 -/* 0C89D8 800C7DD8 A202000B */ sb $v0, 0xb($s0) -/* 0C89DC 800C7DDC 01802025 */ move $a0, $t4 -/* 0C89E0 800C7DE0 0C031EF8 */ jal __getTrackByte -/* 0C89E4 800C7DE4 01602825 */ move $a1, $t3 -/* 0C89E8 800C7DE8 A202000C */ sb $v0, 0xc($s0) -/* 0C89EC 800C7DEC 01802025 */ move $a0, $t4 -/* 0C89F0 800C7DF0 0C031EF8 */ jal __getTrackByte -/* 0C89F4 800C7DF4 01602825 */ move $a1, $t3 -/* 0C89F8 800C7DF8 A202000D */ sb $v0, 0xd($s0) -/* 0C89FC 800C7DFC 018B7021 */ addu $t6, $t4, $t3 -/* 0C8A00 800C7E00 10000067 */ b .L800C7FA0 -/* 0C8A04 800C7E04 A1C000A8 */ sb $zero, 0xa8($t6) -.L800C7E08: -/* 0C8A08 800C7E08 2401002F */ li $at, 47 -/* 0C8A0C 800C7E0C 5461000E */ bnel $v1, $at, .L800C7E48 -/* 0C8A10 800C7E10 2401002E */ li $at, 46 -/* 0C8A14 800C7E14 8D8F0004 */ lw $t7, 4($t4) -/* 0C8A18 800C7E18 24180001 */ li $t8, 1 -/* 0C8A1C 800C7E1C 0178C804 */ sllv $t9, $t8, $t3 -/* 0C8A20 800C7E20 01F97026 */ xor $t6, $t7, $t9 -/* 0C8A24 800C7E24 11C00004 */ beqz $t6, .L800C7E38 -/* 0C8A28 800C7E28 AD8E0004 */ sw $t6, 4($t4) -/* 0C8A2C 800C7E2C 240F0012 */ li $t7, 18 -/* 0C8A30 800C7E30 1000005B */ b .L800C7FA0 -/* 0C8A34 800C7E34 A60F0000 */ sh $t7, ($s0) -.L800C7E38: -/* 0C8A38 800C7E38 24190004 */ li $t9, 4 -/* 0C8A3C 800C7E3C 10000058 */ b .L800C7FA0 -/* 0C8A40 800C7E40 A6190000 */ sh $t9, ($s0) -/* 0C8A44 800C7E44 2401002E */ li $at, 46 -.L800C7E48: -/* 0C8A48 800C7E48 1461000B */ bne $v1, $at, .L800C7E78 -/* 0C8A4C 800C7E4C 01802025 */ move $a0, $t4 -/* 0C8A50 800C7E50 0C031EF8 */ jal __getTrackByte -/* 0C8A54 800C7E54 01602825 */ move $a1, $t3 -/* 0C8A58 800C7E58 01802025 */ move $a0, $t4 -/* 0C8A5C 800C7E5C 0C031EF8 */ jal __getTrackByte -/* 0C8A60 800C7E60 01602825 */ move $a1, $t3 -/* 0C8A64 800C7E64 018B7021 */ addu $t6, $t4, $t3 -/* 0C8A68 800C7E68 A1C000A8 */ sb $zero, 0xa8($t6) -/* 0C8A6C 800C7E6C 24180013 */ li $t8, 19 -/* 0C8A70 800C7E70 1000004B */ b .L800C7FA0 -/* 0C8A74 800C7E74 A6180000 */ sh $t8, ($s0) -.L800C7E78: -/* 0C8A78 800C7E78 2401002D */ li $at, 45 -/* 0C8A7C 800C7E7C 14610048 */ bne $v1, $at, .L800C7FA0 -/* 0C8A80 800C7E80 000B7880 */ sll $t7, $t3, 2 -/* 0C8A84 800C7E84 018F6821 */ addu $t5, $t4, $t7 -/* 0C8A88 800C7E88 8DA20018 */ lw $v0, 0x18($t5) -/* 0C8A8C 800C7E8C 240100FF */ li $at, 255 -/* 0C8A90 800C7E90 90440001 */ lbu $a0, 1($v0) -/* 0C8A94 800C7E94 24420001 */ addiu $v0, $v0, 1 -/* 0C8A98 800C7E98 24590005 */ addiu $t9, $v0, 5 -/* 0C8A9C 800C7E9C 14800004 */ bnez $a0, .L800C7EB0 -/* 0C8AA0 800C7EA0 9045FFFF */ lbu $a1, -1($v0) -/* 0C8AA4 800C7EA4 A0450000 */ sb $a1, ($v0) -/* 0C8AA8 800C7EA8 10000011 */ b .L800C7EF0 -/* 0C8AAC 800C7EAC ADB90018 */ sw $t9, 0x18($t5) -.L800C7EB0: -/* 0C8AB0 800C7EB0 10810002 */ beq $a0, $at, .L800C7EBC -/* 0C8AB4 800C7EB4 248EFFFF */ addiu $t6, $a0, -1 -/* 0C8AB8 800C7EB8 A04E0000 */ sb $t6, ($v0) -.L800C7EBC: -/* 0C8ABC 800C7EBC 904F0002 */ lbu $t7, 2($v0) -/* 0C8AC0 800C7EC0 90430001 */ lbu $v1, 1($v0) -/* 0C8AC4 800C7EC4 904E0003 */ lbu $t6, 3($v0) -/* 0C8AC8 800C7EC8 000FCC00 */ sll $t9, $t7, 0x10 -/* 0C8ACC 800C7ECC 0003C600 */ sll $t8, $v1, 0x18 -/* 0C8AD0 800C7ED0 904F0004 */ lbu $t7, 4($v0) -/* 0C8AD4 800C7ED4 03191821 */ addu $v1, $t8, $t9 -/* 0C8AD8 800C7ED8 000EC200 */ sll $t8, $t6, 8 -/* 0C8ADC 800C7EDC 00781821 */ addu $v1, $v1, $t8 -/* 0C8AE0 800C7EE0 24420005 */ addiu $v0, $v0, 5 -/* 0C8AE4 800C7EE4 006F1821 */ addu $v1, $v1, $t7 -/* 0C8AE8 800C7EE8 0043C823 */ subu $t9, $v0, $v1 -/* 0C8AEC 800C7EEC ADB90018 */ sw $t9, 0x18($t5) -.L800C7EF0: -/* 0C8AF0 800C7EF0 018B7021 */ addu $t6, $t4, $t3 -/* 0C8AF4 800C7EF4 A1C000A8 */ sb $zero, 0xa8($t6) -/* 0C8AF8 800C7EF8 24180014 */ li $t8, 20 -/* 0C8AFC 800C7EFC 10000028 */ b .L800C7FA0 -/* 0C8B00 800C7F00 A6180000 */ sh $t8, ($s0) -.L800C7F04: -/* 0C8B04 800C7F04 240F0001 */ li $t7, 1 -/* 0C8B08 800C7F08 30790080 */ andi $t9, $v1, 0x80 -/* 0C8B0C 800C7F0C 13200009 */ beqz $t9, .L800C7F34 -/* 0C8B10 800C7F10 A60F0000 */ sh $t7, ($s0) -/* 0C8B14 800C7F14 A20A0008 */ sb $t2, 8($s0) -/* 0C8B18 800C7F18 01802025 */ move $a0, $t4 -/* 0C8B1C 800C7F1C 0C031EF8 */ jal __getTrackByte -/* 0C8B20 800C7F20 01602825 */ move $a1, $t3 -/* 0C8B24 800C7F24 A2020009 */ sb $v0, 9($s0) -/* 0C8B28 800C7F28 018B7021 */ addu $t6, $t4, $t3 -/* 0C8B2C 800C7F2C 10000005 */ b .L800C7F44 -/* 0C8B30 800C7F30 A1CA00A8 */ sb $t2, 0xa8($t6) -.L800C7F34: -/* 0C8B34 800C7F34 018BC021 */ addu $t8, $t4, $t3 -/* 0C8B38 800C7F38 930F00A8 */ lbu $t7, 0xa8($t8) -/* 0C8B3C 800C7F3C A2020009 */ sb $v0, 9($s0) -/* 0C8B40 800C7F40 A20F0008 */ sb $t7, 8($s0) -.L800C7F44: -/* 0C8B44 800C7F44 92020008 */ lbu $v0, 8($s0) -/* 0C8B48 800C7F48 240100C0 */ li $at, 192 -/* 0C8B4C 800C7F4C 305900F0 */ andi $t9, $v0, 0xf0 -/* 0C8B50 800C7F50 13210012 */ beq $t9, $at, .L800C7F9C -/* 0C8B54 800C7F54 240100D0 */ li $at, 208 -/* 0C8B58 800C7F58 13210010 */ beq $t9, $at, .L800C7F9C -/* 0C8B5C 800C7F5C 01802025 */ move $a0, $t4 -/* 0C8B60 800C7F60 0C031EF8 */ jal __getTrackByte -/* 0C8B64 800C7F64 01602825 */ move $a1, $t3 -/* 0C8B68 800C7F68 920E0008 */ lbu $t6, 8($s0) -/* 0C8B6C 800C7F6C 24010090 */ li $at, 144 -/* 0C8B70 800C7F70 A202000A */ sb $v0, 0xa($s0) -/* 0C8B74 800C7F74 31D800F0 */ andi $t8, $t6, 0xf0 -/* 0C8B78 800C7F78 17010009 */ bne $t8, $at, .L800C7FA0 -/* 0C8B7C 800C7F7C 01805025 */ move $t2, $t4 -/* 0C8B80 800C7F80 AFA90028 */ sw $t1, 0x28($sp) -/* 0C8B84 800C7F84 0C031F29 */ jal __readVarLen -/* 0C8B88 800C7F88 AFAB0024 */ sw $t3, 0x24($sp) -/* 0C8B8C 800C7F8C 8FA90028 */ lw $t1, 0x28($sp) -/* 0C8B90 800C7F90 8FAB0024 */ lw $t3, 0x24($sp) -/* 0C8B94 800C7F94 10000002 */ b .L800C7FA0 -/* 0C8B98 800C7F98 AE02000C */ sw $v0, 0xc($s0) -.L800C7F9C: -/* 0C8B9C 800C7F9C A200000A */ sb $zero, 0xa($s0) -.L800C7FA0: -/* 0C8BA0 800C7FA0 AE090004 */ sw $t1, 4($s0) -/* 0C8BA4 800C7FA4 8D8F000C */ lw $t7, 0xc($t4) -/* 0C8BA8 800C7FA8 AD890010 */ sw $t1, 0x10($t4) -/* 0C8BAC 800C7FAC 24010012 */ li $at, 18 -/* 0C8BB0 800C7FB0 01E9C821 */ addu $t9, $t7, $t1 -/* 0C8BB4 800C7FB4 AD99000C */ sw $t9, 0xc($t4) -/* 0C8BB8 800C7FB8 860E0000 */ lh $t6, ($s0) -/* 0C8BBC 800C7FBC 01805025 */ move $t2, $t4 -/* 0C8BC0 800C7FC0 000BC080 */ sll $t8, $t3, 2 -/* 0C8BC4 800C7FC4 51C10007 */ beql $t6, $at, .L800C7FE4 -/* 0C8BC8 800C7FC8 240E0001 */ li $t6, 1 -/* 0C8BCC 800C7FCC 0C031F29 */ jal __readVarLen -/* 0C8BD0 800C7FD0 01986821 */ addu $t5, $t4, $t8 -/* 0C8BD4 800C7FD4 8DAF00B8 */ lw $t7, 0xb8($t5) -/* 0C8BD8 800C7FD8 01E2C821 */ addu $t9, $t7, $v0 -/* 0C8BDC 800C7FDC ADB900B8 */ sw $t9, 0xb8($t5) -/* 0C8BE0 800C7FE0 240E0001 */ li $t6, 1 -.L800C7FE4: -/* 0C8BE4 800C7FE4 AD8E0014 */ sw $t6, 0x14($t4) -/* 0C8BE8 800C7FE8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0C8BEC 800C7FEC 8FB00018 */ lw $s0, 0x18($sp) -/* 0C8BF0 800C7FF0 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0C8BF4 800C7FF4 03E00008 */ jr $ra -/* 0C8BF8 800C7FF8 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C86A0/__alCSeqNextDelta.s b/lib/asm/non_matchings/unknown_0C86A0/__alCSeqNextDelta.s deleted file mode 100644 index f0516ee5..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/__alCSeqNextDelta.s +++ /dev/null @@ -1,109 +0,0 @@ -glabel __alCSeqNextDelta -/* 0C8FEC 800C83EC 8C8E0004 */ lw $t6, 4($a0) -/* 0C8FF0 800C83F0 00A04825 */ move $t1, $a1 -/* 0C8FF4 800C83F4 2403FFFF */ li $v1, -1 -/* 0C8FF8 800C83F8 15C00003 */ bnez $t6, .L800C8408 -/* 0C8FFC 800C83FC 8C820010 */ lw $v0, 0x10($a0) -/* 0C9000 800C8400 03E00008 */ jr $ra -/* 0C9004 800C8404 00001025 */ move $v0, $zero - -.L800C8408: -/* 0C9008 800C8408 00003025 */ move $a2, $zero -/* 0C900C 800C840C 240A0010 */ li $t2, 16 -/* 0C9010 800C8410 8C850004 */ lw $a1, 4($a0) -.L800C8414: -/* 0C9014 800C8414 24CE0001 */ addiu $t6, $a2, 1 -/* 0C9018 800C8418 00C57806 */ srlv $t7, $a1, $a2 -/* 0C901C 800C841C 31F80001 */ andi $t8, $t7, 1 -/* 0C9020 800C8420 53000010 */ beql $t8, $zero, .L800C8464 -/* 0C9024 800C8424 01C57806 */ srlv $t7, $a1, $t6 -/* 0C9028 800C8428 8C8B0014 */ lw $t3, 0x14($a0) -/* 0C902C 800C842C 0006C880 */ sll $t9, $a2, 2 -/* 0C9030 800C8430 00993821 */ addu $a3, $a0, $t9 -/* 0C9034 800C8434 51600006 */ beql $t3, $zero, .L800C8450 -/* 0C9038 800C8438 8CE800B8 */ lw $t0, 0xb8($a3) -/* 0C903C 800C843C 8CEC00B8 */ lw $t4, 0xb8($a3) -/* 0C9040 800C8440 01826823 */ subu $t5, $t4, $v0 -/* 0C9044 800C8444 ACED00B8 */ sw $t5, 0xb8($a3) -/* 0C9048 800C8448 8C850004 */ lw $a1, 4($a0) -/* 0C904C 800C844C 8CE800B8 */ lw $t0, 0xb8($a3) -.L800C8450: -/* 0C9050 800C8450 0103082B */ sltu $at, $t0, $v1 -/* 0C9054 800C8454 50200003 */ beql $at, $zero, .L800C8464 -/* 0C9058 800C8458 01C57806 */ srlv $t7, $a1, $t6 -/* 0C905C 800C845C 01001825 */ move $v1, $t0 -/* 0C9060 800C8460 01C57806 */ srlv $t7, $a1, $t6 -.L800C8464: -/* 0C9064 800C8464 31F80001 */ andi $t8, $t7, 1 -/* 0C9068 800C8468 1300000F */ beqz $t8, .L800C84A8 -/* 0C906C 800C846C 24CE0002 */ addiu $t6, $a2, 2 -/* 0C9070 800C8470 8C8B0014 */ lw $t3, 0x14($a0) -/* 0C9074 800C8474 0006C880 */ sll $t9, $a2, 2 -/* 0C9078 800C8478 00993821 */ addu $a3, $a0, $t9 -/* 0C907C 800C847C 51600006 */ beql $t3, $zero, .L800C8498 -/* 0C9080 800C8480 8CE800BC */ lw $t0, 0xbc($a3) -/* 0C9084 800C8484 8CEC00BC */ lw $t4, 0xbc($a3) -/* 0C9088 800C8488 01826823 */ subu $t5, $t4, $v0 -/* 0C908C 800C848C ACED00BC */ sw $t5, 0xbc($a3) -/* 0C9090 800C8490 8C850004 */ lw $a1, 4($a0) -/* 0C9094 800C8494 8CE800BC */ lw $t0, 0xbc($a3) -.L800C8498: -/* 0C9098 800C8498 0103082B */ sltu $at, $t0, $v1 -/* 0C909C 800C849C 50200003 */ beql $at, $zero, .L800C84AC -/* 0C90A0 800C84A0 01C57806 */ srlv $t7, $a1, $t6 -/* 0C90A4 800C84A4 01001825 */ move $v1, $t0 -.L800C84A8: -/* 0C90A8 800C84A8 01C57806 */ srlv $t7, $a1, $t6 -.L800C84AC: -/* 0C90AC 800C84AC 31F80001 */ andi $t8, $t7, 1 -/* 0C90B0 800C84B0 1300000F */ beqz $t8, .L800C84F0 -/* 0C90B4 800C84B4 24CE0003 */ addiu $t6, $a2, 3 -/* 0C90B8 800C84B8 8C8B0014 */ lw $t3, 0x14($a0) -/* 0C90BC 800C84BC 0006C880 */ sll $t9, $a2, 2 -/* 0C90C0 800C84C0 00993821 */ addu $a3, $a0, $t9 -/* 0C90C4 800C84C4 51600006 */ beql $t3, $zero, .L800C84E0 -/* 0C90C8 800C84C8 8CE800C0 */ lw $t0, 0xc0($a3) -/* 0C90CC 800C84CC 8CEC00C0 */ lw $t4, 0xc0($a3) -/* 0C90D0 800C84D0 01826823 */ subu $t5, $t4, $v0 -/* 0C90D4 800C84D4 ACED00C0 */ sw $t5, 0xc0($a3) -/* 0C90D8 800C84D8 8C850004 */ lw $a1, 4($a0) -/* 0C90DC 800C84DC 8CE800C0 */ lw $t0, 0xc0($a3) -.L800C84E0: -/* 0C90E0 800C84E0 0103082B */ sltu $at, $t0, $v1 -/* 0C90E4 800C84E4 50200003 */ beql $at, $zero, .L800C84F4 -/* 0C90E8 800C84E8 01C57806 */ srlv $t7, $a1, $t6 -/* 0C90EC 800C84EC 01001825 */ move $v1, $t0 -.L800C84F0: -/* 0C90F0 800C84F0 01C57806 */ srlv $t7, $a1, $t6 -.L800C84F4: -/* 0C90F4 800C84F4 31F80001 */ andi $t8, $t7, 1 -/* 0C90F8 800C84F8 5300000F */ beql $t8, $zero, .L800C8538 -/* 0C90FC 800C84FC 24C60004 */ addiu $a2, $a2, 4 -/* 0C9100 800C8500 8C8B0014 */ lw $t3, 0x14($a0) -/* 0C9104 800C8504 0006C880 */ sll $t9, $a2, 2 -/* 0C9108 800C8508 00993821 */ addu $a3, $a0, $t9 -/* 0C910C 800C850C 51600005 */ beql $t3, $zero, .L800C8524 -/* 0C9110 800C8510 8CE500C4 */ lw $a1, 0xc4($a3) -/* 0C9114 800C8514 8CEC00C4 */ lw $t4, 0xc4($a3) -/* 0C9118 800C8518 01826823 */ subu $t5, $t4, $v0 -/* 0C911C 800C851C ACED00C4 */ sw $t5, 0xc4($a3) -/* 0C9120 800C8520 8CE500C4 */ lw $a1, 0xc4($a3) -.L800C8524: -/* 0C9124 800C8524 00A3082B */ sltu $at, $a1, $v1 -/* 0C9128 800C8528 50200003 */ beql $at, $zero, .L800C8538 -/* 0C912C 800C852C 24C60004 */ addiu $a2, $a2, 4 -/* 0C9130 800C8530 00A01825 */ move $v1, $a1 -/* 0C9134 800C8534 24C60004 */ addiu $a2, $a2, 4 -.L800C8538: -/* 0C9138 800C8538 54CAFFB6 */ bnel $a2, $t2, .L800C8414 -/* 0C913C 800C853C 8C850004 */ lw $a1, 4($a0) -/* 0C9140 800C8540 AC800014 */ sw $zero, 0x14($a0) -/* 0C9144 800C8544 AD230000 */ sw $v1, ($t1) -/* 0C9148 800C8548 24020001 */ li $v0, 1 -/* 0C914C 800C854C 03E00008 */ jr $ra -/* 0C9150 800C8550 00000000 */ nop - -/* 0C9154 800C8554 00000000 */ nop -/* 0C9158 800C8558 00000000 */ nop -/* 0C915C 800C855C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C86A0/__getTrackByte.s b/lib/asm/non_matchings/unknown_0C86A0/__getTrackByte.s deleted file mode 100644 index b36e43b5..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/__getTrackByte.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel __getTrackByte -/* 0C87E0 800C7BE0 00851021 */ addu $v0, $a0, $a1 -/* 0C87E4 800C7BE4 904E0098 */ lbu $t6, 0x98($v0) -/* 0C87E8 800C7BE8 00057880 */ sll $t7, $a1, 2 -/* 0C87EC 800C7BEC 008F3021 */ addu $a2, $a0, $t7 -/* 0C87F0 800C7BF0 51C0000D */ beql $t6, $zero, .L800C7C28 -/* 0C87F4 800C7BF4 8CC70018 */ lw $a3, 0x18($a2) -/* 0C87F8 800C7BF8 00057880 */ sll $t7, $a1, 2 -/* 0C87FC 800C7BFC 008F3021 */ addu $a2, $a0, $t7 -/* 0C8800 800C7C00 8CC70058 */ lw $a3, 0x58($a2) -/* 0C8804 800C7C04 90E30000 */ lbu $v1, ($a3) -/* 0C8808 800C7C08 24F80001 */ addiu $t8, $a3, 1 -/* 0C880C 800C7C0C ACD80058 */ sw $t8, 0x58($a2) -/* 0C8810 800C7C10 90590098 */ lbu $t9, 0x98($v0) -/* 0C8814 800C7C14 272EFFFF */ addiu $t6, $t9, -1 -/* 0C8818 800C7C18 A04E0098 */ sb $t6, 0x98($v0) -/* 0C881C 800C7C1C 03E00008 */ jr $ra -/* 0C8820 800C7C20 00601025 */ move $v0, $v1 - -/* 0C8824 800C7C24 8CC70018 */ lw $a3, 0x18($a2) -.L800C7C28: -/* 0C8828 800C7C28 240800FE */ li $t0, 254 -/* 0C882C 800C7C2C 90E30000 */ lbu $v1, ($a3) -/* 0C8830 800C7C30 24F80001 */ addiu $t8, $a3, 1 -/* 0C8834 800C7C34 ACD80018 */ sw $t8, 0x18($a2) -/* 0C8838 800C7C38 15030018 */ bne $t0, $v1, .L800C7C9C -/* 0C883C 800C7C3C 00000000 */ nop -/* 0C8840 800C7C40 93040000 */ lbu $a0, ($t8) -/* 0C8844 800C7C44 27190001 */ addiu $t9, $t8, 1 -/* 0C8848 800C7C48 ACD90018 */ sw $t9, 0x18($a2) -/* 0C884C 800C7C4C 11040013 */ beq $t0, $a0, .L800C7C9C -/* 0C8850 800C7C50 272E0001 */ addiu $t6, $t9, 1 -/* 0C8854 800C7C54 93230000 */ lbu $v1, ($t9) -/* 0C8858 800C7C58 ACCE0018 */ sw $t6, 0x18($a2) -/* 0C885C 800C7C5C 91C50000 */ lbu $a1, ($t6) -/* 0C8860 800C7C60 25CF0001 */ addiu $t7, $t6, 1 -/* 0C8864 800C7C64 0004CA00 */ sll $t9, $a0, 8 -/* 0C8868 800C7C68 ACCF0018 */ sw $t7, 0x18($a2) -/* 0C886C 800C7C6C 03237021 */ addu $t6, $t9, $v1 -/* 0C8870 800C7C70 01EE7823 */ subu $t7, $t7, $t6 -/* 0C8874 800C7C74 25F9FFFC */ addiu $t9, $t7, -4 -/* 0C8878 800C7C78 ACD90058 */ sw $t9, 0x58($a2) -/* 0C887C 800C7C7C A0450098 */ sb $a1, 0x98($v0) -/* 0C8880 800C7C80 8CC70058 */ lw $a3, 0x58($a2) -/* 0C8884 800C7C84 90E30000 */ lbu $v1, ($a3) -/* 0C8888 800C7C88 24F80001 */ addiu $t8, $a3, 1 -/* 0C888C 800C7C8C ACD80058 */ sw $t8, 0x58($a2) -/* 0C8890 800C7C90 904E0098 */ lbu $t6, 0x98($v0) -/* 0C8894 800C7C94 25CFFFFF */ addiu $t7, $t6, -1 -/* 0C8898 800C7C98 A04F0098 */ sb $t7, 0x98($v0) -.L800C7C9C: -/* 0C889C 800C7C9C 03E00008 */ jr $ra -/* 0C88A0 800C7CA0 00601025 */ move $v0, $v1 - diff --git a/lib/asm/non_matchings/unknown_0C86A0/__readVarLen.s b/lib/asm/non_matchings/unknown_0C86A0/__readVarLen.s deleted file mode 100644 index 7a195458..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/__readVarLen.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel __readVarLen -/* 0C88A4 800C7CA4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0C88A8 800C7CA8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C88AC 800C7CAC 01402025 */ move $a0, $t2 -/* 0C88B0 800C7CB0 0C031EF8 */ jal __getTrackByte -/* 0C88B4 800C7CB4 01602825 */ move $a1, $t3 -/* 0C88B8 800C7CB8 304E0080 */ andi $t6, $v0, 0x80 -/* 0C88BC 800C7CBC 11C0000A */ beqz $t6, .L800C7CE8 -/* 0C88C0 800C7CC0 00404825 */ move $t1, $v0 -/* 0C88C4 800C7CC4 3049007F */ andi $t1, $v0, 0x7f -.L800C7CC8: -/* 0C88C8 800C7CC8 01402025 */ move $a0, $t2 -/* 0C88CC 800C7CCC 0C031EF8 */ jal __getTrackByte -/* 0C88D0 800C7CD0 01602825 */ move $a1, $t3 -/* 0C88D4 800C7CD4 000979C0 */ sll $t7, $t1, 7 -/* 0C88D8 800C7CD8 3058007F */ andi $t8, $v0, 0x7f -/* 0C88DC 800C7CDC 30590080 */ andi $t9, $v0, 0x80 -/* 0C88E0 800C7CE0 1720FFF9 */ bnez $t9, .L800C7CC8 -/* 0C88E4 800C7CE4 01F84821 */ addu $t1, $t7, $t8 -.L800C7CE8: -/* 0C88E8 800C7CE8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C88EC 800C7CEC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0C88F0 800C7CF0 01201025 */ move $v0, $t1 -/* 0C88F4 800C7CF4 03E00008 */ jr $ra -/* 0C88F8 800C7CF8 00000000 */ nop - -/* 0C88FC 800C7CFC 03E00008 */ jr $ra -/* 0C8900 800C7D00 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C86A0/alCSeqGetLoc.s b/lib/asm/non_matchings/unknown_0C86A0/alCSeqGetLoc.s deleted file mode 100644 index 863e257b..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/alCSeqGetLoc.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel alCSeqGetLoc -/* 0C8740 800C7B40 8CAE0000 */ lw $t6, ($a1) -/* 0C8744 800C7B44 00801825 */ move $v1, $a0 -/* 0C8748 800C7B48 00803825 */ move $a3, $a0 -/* 0C874C 800C7B4C AC8E0004 */ sw $t6, 4($a0) -/* 0C8750 800C7B50 8CAF0004 */ lw $t7, 4($a1) -/* 0C8754 800C7B54 00001025 */ move $v0, $zero -/* 0C8758 800C7B58 00A03025 */ move $a2, $a1 -/* 0C875C 800C7B5C AC8F000C */ sw $t7, 0xc($a0) -/* 0C8760 800C7B60 8CB80008 */ lw $t8, 8($a1) -/* 0C8764 800C7B64 00A04025 */ move $t0, $a1 -/* 0C8768 800C7B68 AC980010 */ sw $t8, 0x10($a0) -/* 0C876C 800C7B6C 24040010 */ li $a0, 16 -.L800C7B70: -/* 0C8770 800C7B70 8CD9000C */ lw $t9, 0xc($a2) -/* 0C8774 800C7B74 24420002 */ addiu $v0, $v0, 2 -/* 0C8778 800C7B78 24630008 */ addiu $v1, $v1, 8 -/* 0C877C 800C7B7C AC790010 */ sw $t9, 0x10($v1) -/* 0C8780 800C7B80 8CC9004C */ lw $t1, 0x4c($a2) -/* 0C8784 800C7B84 24C60008 */ addiu $a2, $a2, 8 -/* 0C8788 800C7B88 24E70002 */ addiu $a3, $a3, 2 -/* 0C878C 800C7B8C AC690050 */ sw $t1, 0x50($v1) -/* 0C8790 800C7B90 910A008C */ lbu $t2, 0x8c($t0) -/* 0C8794 800C7B94 25080002 */ addiu $t0, $t0, 2 -/* 0C8798 800C7B98 A0EA0096 */ sb $t2, 0x96($a3) -/* 0C879C 800C7B9C 910B009A */ lbu $t3, 0x9a($t0) -/* 0C87A0 800C7BA0 A0EB00A6 */ sb $t3, 0xa6($a3) -/* 0C87A4 800C7BA4 8CCC00A4 */ lw $t4, 0xa4($a2) -/* 0C87A8 800C7BA8 AC6C00B0 */ sw $t4, 0xb0($v1) -/* 0C87AC 800C7BAC 8CCD0008 */ lw $t5, 8($a2) -/* 0C87B0 800C7BB0 AC6D0014 */ sw $t5, 0x14($v1) -/* 0C87B4 800C7BB4 8CCE0048 */ lw $t6, 0x48($a2) -/* 0C87B8 800C7BB8 AC6E0054 */ sw $t6, 0x54($v1) -/* 0C87BC 800C7BBC 910F008B */ lbu $t7, 0x8b($t0) -/* 0C87C0 800C7BC0 A0EF0097 */ sb $t7, 0x97($a3) -/* 0C87C4 800C7BC4 9118009B */ lbu $t8, 0x9b($t0) -/* 0C87C8 800C7BC8 A0F800A7 */ sb $t8, 0xa7($a3) -/* 0C87CC 800C7BCC 8CD900A8 */ lw $t9, 0xa8($a2) -/* 0C87D0 800C7BD0 1444FFE7 */ bne $v0, $a0, .L800C7B70 -/* 0C87D4 800C7BD4 AC7900B4 */ sw $t9, 0xb4($v1) -/* 0C87D8 800C7BD8 03E00008 */ jr $ra -/* 0C87DC 800C7BDC 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0C86A0/alCSeqNew.s b/lib/asm/non_matchings/unknown_0C86A0/alCSeqNew.s deleted file mode 100644 index fcf835de..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/alCSeqNew.s +++ /dev/null @@ -1,74 +0,0 @@ -glabel alCSeqNew -/* 0C8BFC 800C7FFC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C8C00 800C8000 AFB40028 */ sw $s4, 0x28($sp) -/* 0C8C04 800C8004 AFB30024 */ sw $s3, 0x24($sp) -/* 0C8C08 800C8008 AFB20020 */ sw $s2, 0x20($sp) -/* 0C8C0C 800C800C AFB1001C */ sw $s1, 0x1c($sp) -/* 0C8C10 800C8010 AFB00018 */ sw $s0, 0x18($sp) -/* 0C8C14 800C8014 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C8C18 800C8018 240E0001 */ li $t6, 1 -/* 0C8C1C 800C801C 00808025 */ move $s0, $a0 -/* 0C8C20 800C8020 00A0A025 */ move $s4, $a1 -/* 0C8C24 800C8024 AC850000 */ sw $a1, ($a0) -/* 0C8C28 800C8028 AC800004 */ sw $zero, 4($a0) -/* 0C8C2C 800C802C AC800010 */ sw $zero, 0x10($a0) -/* 0C8C30 800C8030 AC80000C */ sw $zero, 0xc($a0) -/* 0C8C34 800C8034 AC8E0014 */ sw $t6, 0x14($a0) -/* 0C8C38 800C8038 00808825 */ move $s1, $a0 -/* 0C8C3C 800C803C 00009025 */ move $s2, $zero -/* 0C8C40 800C8040 24130010 */ li $s3, 16 -/* 0C8C44 800C8044 00006825 */ move $t5, $zero -/* 0C8C48 800C8048 00806025 */ move $t4, $a0 -.L800C804C: -/* 0C8C4C 800C804C A22000A8 */ sb $zero, 0xa8($s1) -/* 0C8C50 800C8050 AD800058 */ sw $zero, 0x58($t4) -/* 0C8C54 800C8054 A2200098 */ sb $zero, 0x98($s1) -/* 0C8C58 800C8058 8E0F0000 */ lw $t7, ($s0) -/* 0C8C5C 800C805C 240E0001 */ li $t6, 1 -/* 0C8C60 800C8060 01F2C021 */ addu $t8, $t7, $s2 -/* 0C8C64 800C8064 8F020000 */ lw $v0, ($t8) -/* 0C8C68 800C8068 01AE7804 */ sllv $t7, $t6, $t5 -/* 0C8C6C 800C806C 1040000A */ beqz $v0, .L800C8098 -/* 0C8C70 800C8070 02827021 */ addu $t6, $s4, $v0 -/* 0C8C74 800C8074 8E190004 */ lw $t9, 4($s0) -/* 0C8C78 800C8078 02005025 */ move $t2, $s0 -/* 0C8C7C 800C807C 01A05825 */ move $t3, $t5 -/* 0C8C80 800C8080 032FC025 */ or $t8, $t9, $t7 -/* 0C8C84 800C8084 AE180004 */ sw $t8, 4($s0) -/* 0C8C88 800C8088 0C031F29 */ jal __readVarLen -/* 0C8C8C 800C808C AD8E0018 */ sw $t6, 0x18($t4) -/* 0C8C90 800C8090 10000002 */ b .L800C809C -/* 0C8C94 800C8094 AD8200B8 */ sw $v0, 0xb8($t4) -.L800C8098: -/* 0C8C98 800C8098 AD800018 */ sw $zero, 0x18($t4) -.L800C809C: -/* 0C8C9C 800C809C 25AD0001 */ addiu $t5, $t5, 1 -/* 0C8CA0 800C80A0 26310001 */ addiu $s1, $s1, 1 -/* 0C8CA4 800C80A4 26520004 */ addiu $s2, $s2, 4 -/* 0C8CA8 800C80A8 15B3FFE8 */ bne $t5, $s3, .L800C804C -/* 0C8CAC 800C80AC 258C0004 */ addiu $t4, $t4, 4 -/* 0C8CB0 800C80B0 8E190000 */ lw $t9, ($s0) -/* 0C8CB4 800C80B4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0C8CB8 800C80B8 44812800 */ mtc1 $at, $f5 -/* 0C8CBC 800C80BC 8F2F0040 */ lw $t7, 0x40($t9) -/* 0C8CC0 800C80C0 44802000 */ mtc1 $zero, $f4 -/* 0C8CC4 800C80C4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8CC8 800C80C8 448F3000 */ mtc1 $t7, $f6 -/* 0C8CCC 800C80CC 05E10004 */ bgez $t7, .L800C80E0 -/* 0C8CD0 800C80D0 46803220 */ cvt.s.w $f8, $f6 -/* 0C8CD4 800C80D4 44815000 */ mtc1 $at, $f10 -/* 0C8CD8 800C80D8 00000000 */ nop -/* 0C8CDC 800C80DC 460A4200 */ add.s $f8, $f8, $f10 -.L800C80E0: -/* 0C8CE0 800C80E0 460041A1 */ cvt.d.s $f6, $f8 -/* 0C8CE4 800C80E4 46262283 */ div.d $f10, $f4, $f6 -/* 0C8CE8 800C80E8 46205220 */ cvt.s.d $f8, $f10 -/* 0C8CEC 800C80EC E6080008 */ swc1 $f8, 8($s0) -/* 0C8CF0 800C80F0 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C8CF4 800C80F4 8FB40028 */ lw $s4, 0x28($sp) -/* 0C8CF8 800C80F8 8FB30024 */ lw $s3, 0x24($sp) -/* 0C8CFC 800C80FC 8FB20020 */ lw $s2, 0x20($sp) -/* 0C8D00 800C8100 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C8D04 800C8104 8FB00018 */ lw $s0, 0x18($sp) -/* 0C8D08 800C8108 03E00008 */ jr $ra -/* 0C8D0C 800C810C 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/lib/asm/non_matchings/unknown_0C86A0/alCSeqNewMarker.s b/lib/asm/non_matchings/unknown_0C86A0/alCSeqNewMarker.s deleted file mode 100644 index e969650a..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/alCSeqNewMarker.s +++ /dev/null @@ -1,95 +0,0 @@ -glabel alCSeqNewMarker -/* 0C8D10 800C8110 27BDFEB0 */ addiu $sp, $sp, -0x150 -/* 0C8D14 800C8114 AFB30020 */ sw $s3, 0x20($sp) -/* 0C8D18 800C8118 AFB10018 */ sw $s1, 0x18($sp) -/* 0C8D1C 800C811C 00A08825 */ move $s1, $a1 -/* 0C8D20 800C8120 27B30048 */ addiu $s3, $sp, 0x48 -/* 0C8D24 800C8124 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C8D28 800C8128 AFB50028 */ sw $s5, 0x28($sp) -/* 0C8D2C 800C812C AFB40024 */ sw $s4, 0x24($sp) -/* 0C8D30 800C8130 AFB2001C */ sw $s2, 0x1c($sp) -/* 0C8D34 800C8134 AFB00014 */ sw $s0, 0x14($sp) -/* 0C8D38 800C8138 00803825 */ move $a3, $a0 -/* 0C8D3C 800C813C 00C09025 */ move $s2, $a2 -/* 0C8D40 800C8140 8CE50000 */ lw $a1, ($a3) -/* 0C8D44 800C8144 0C031FFF */ jal alCSeqNew -/* 0C8D48 800C8148 02602025 */ move $a0, $s3 -/* 0C8D4C 800C814C 24150004 */ li $s5, 4 -/* 0C8D50 800C8150 27B40140 */ addiu $s4, $sp, 0x140 -/* 0C8D54 800C8154 27B00058 */ addiu $s0, $sp, 0x58 -/* 0C8D58 800C8158 8FAE004C */ lw $t6, 0x4c($sp) -.L800C815C: -/* 0C8D5C 800C815C 27A40048 */ addiu $a0, $sp, 0x48 -/* 0C8D60 800C8160 00801825 */ move $v1, $a0 -/* 0C8D64 800C8164 AE2E0000 */ sw $t6, ($s1) -/* 0C8D68 800C8168 8FAF0054 */ lw $t7, 0x54($sp) -/* 0C8D6C 800C816C 02201025 */ move $v0, $s1 -/* 0C8D70 800C8170 02202825 */ move $a1, $s1 -/* 0C8D74 800C8174 AE2F0004 */ sw $t7, 4($s1) -/* 0C8D78 800C8178 8FB80058 */ lw $t8, 0x58($sp) -/* 0C8D7C 800C817C AE380008 */ sw $t8, 8($s1) -.L800C8180: -/* 0C8D80 800C8180 8C680018 */ lw $t0, 0x18($v1) -/* 0C8D84 800C8184 24840004 */ addiu $a0, $a0, 4 -/* 0C8D88 800C8188 24420010 */ addiu $v0, $v0, 0x10 -/* 0C8D8C 800C818C AC48FFFC */ sw $t0, -4($v0) -/* 0C8D90 800C8190 8C690058 */ lw $t1, 0x58($v1) -/* 0C8D94 800C8194 24630010 */ addiu $v1, $v1, 0x10 -/* 0C8D98 800C8198 24A50004 */ addiu $a1, $a1, 4 -/* 0C8D9C 800C819C AC49003C */ sw $t1, 0x3c($v0) -/* 0C8DA0 800C81A0 908A0094 */ lbu $t2, 0x94($a0) -/* 0C8DA4 800C81A4 A0AA0088 */ sb $t2, 0x88($a1) -/* 0C8DA8 800C81A8 908B00A4 */ lbu $t3, 0xa4($a0) -/* 0C8DAC 800C81AC A0AB0098 */ sb $t3, 0x98($a1) -/* 0C8DB0 800C81B0 8C6C00A8 */ lw $t4, 0xa8($v1) -/* 0C8DB4 800C81B4 AC4C009C */ sw $t4, 0x9c($v0) -/* 0C8DB8 800C81B8 8C6D000C */ lw $t5, 0xc($v1) -/* 0C8DBC 800C81BC AC4D0000 */ sw $t5, ($v0) -/* 0C8DC0 800C81C0 8C6E004C */ lw $t6, 0x4c($v1) -/* 0C8DC4 800C81C4 AC4E0040 */ sw $t6, 0x40($v0) -/* 0C8DC8 800C81C8 908F0095 */ lbu $t7, 0x95($a0) -/* 0C8DCC 800C81CC A0AF0089 */ sb $t7, 0x89($a1) -/* 0C8DD0 800C81D0 909800A5 */ lbu $t8, 0xa5($a0) -/* 0C8DD4 800C81D4 A0B80099 */ sb $t8, 0x99($a1) -/* 0C8DD8 800C81D8 8C7900AC */ lw $t9, 0xac($v1) -/* 0C8DDC 800C81DC AC5900A0 */ sw $t9, 0xa0($v0) -/* 0C8DE0 800C81E0 8C680010 */ lw $t0, 0x10($v1) -/* 0C8DE4 800C81E4 AC480004 */ sw $t0, 4($v0) -/* 0C8DE8 800C81E8 8C690050 */ lw $t1, 0x50($v1) -/* 0C8DEC 800C81EC AC490044 */ sw $t1, 0x44($v0) -/* 0C8DF0 800C81F0 908A0096 */ lbu $t2, 0x96($a0) -/* 0C8DF4 800C81F4 A0AA008A */ sb $t2, 0x8a($a1) -/* 0C8DF8 800C81F8 908B00A6 */ lbu $t3, 0xa6($a0) -/* 0C8DFC 800C81FC A0AB009A */ sb $t3, 0x9a($a1) -/* 0C8E00 800C8200 8C6C00B0 */ lw $t4, 0xb0($v1) -/* 0C8E04 800C8204 AC4C00A4 */ sw $t4, 0xa4($v0) -/* 0C8E08 800C8208 8C6D0014 */ lw $t5, 0x14($v1) -/* 0C8E0C 800C820C AC4D0008 */ sw $t5, 8($v0) -/* 0C8E10 800C8210 8C6E0054 */ lw $t6, 0x54($v1) -/* 0C8E14 800C8214 AC4E0048 */ sw $t6, 0x48($v0) -/* 0C8E18 800C8218 908F0097 */ lbu $t7, 0x97($a0) -/* 0C8E1C 800C821C A0AF008B */ sb $t7, 0x8b($a1) -/* 0C8E20 800C8220 909800A7 */ lbu $t8, 0xa7($a0) -/* 0C8E24 800C8224 A0B8009B */ sb $t8, 0x9b($a1) -/* 0C8E28 800C8228 8C7900B4 */ lw $t9, 0xb4($v1) -/* 0C8E2C 800C822C 1490FFD4 */ bne $a0, $s0, .L800C8180 -/* 0C8E30 800C8230 AC5900A8 */ sw $t9, 0xa8($v0) -/* 0C8E34 800C8234 02602025 */ move $a0, $s3 -/* 0C8E38 800C8238 0C031F41 */ jal __alCSeqGetTrackEvent -/* 0C8E3C 800C823C 02802825 */ move $a1, $s4 -/* 0C8E40 800C8240 87A80140 */ lh $t0, 0x140($sp) -/* 0C8E44 800C8244 8FA90054 */ lw $t1, 0x54($sp) -/* 0C8E48 800C8248 11150003 */ beq $t0, $s5, .L800C8258 -/* 0C8E4C 800C824C 0132082B */ sltu $at, $t1, $s2 -/* 0C8E50 800C8250 5420FFC2 */ bnezl $at, .L800C815C -/* 0C8E54 800C8254 8FAE004C */ lw $t6, 0x4c($sp) -.L800C8258: -/* 0C8E58 800C8258 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C8E5C 800C825C 8FB00014 */ lw $s0, 0x14($sp) -/* 0C8E60 800C8260 8FB10018 */ lw $s1, 0x18($sp) -/* 0C8E64 800C8264 8FB2001C */ lw $s2, 0x1c($sp) -/* 0C8E68 800C8268 8FB30020 */ lw $s3, 0x20($sp) -/* 0C8E6C 800C826C 8FB40024 */ lw $s4, 0x24($sp) -/* 0C8E70 800C8270 8FB50028 */ lw $s5, 0x28($sp) -/* 0C8E74 800C8274 03E00008 */ jr $ra -/* 0C8E78 800C8278 27BD0150 */ addiu $sp, $sp, 0x150 diff --git a/lib/asm/non_matchings/unknown_0C86A0/alCSeqSecToTicks.s b/lib/asm/non_matchings/unknown_0C86A0/alCSeqSecToTicks.s deleted file mode 100644 index 415206af..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/alCSeqSecToTicks.s +++ /dev/null @@ -1,75 +0,0 @@ -.late_rodata -glabel D_800E94B0 -.double 1000000.0 - -.text -glabel alCSeqSecToTicks -/* 0C8E84 800C8284 8C8E0000 */ lw $t6, ($a0) -/* 0C8E88 800C8288 44856000 */ mtc1 $a1, $f12 -/* 0C8E8C 800C828C 3C01800F */ lui $at, %hi(D_800E94B0) # $at, 0x800f -/* 0C8E90 800C8290 8DCF0040 */ lw $t7, 0x40($t6) -/* 0C8E94 800C8294 D42694B0 */ ldc1 $f6, %lo(D_800E94B0)($at) -/* 0C8E98 800C8298 46006121 */ cvt.d.s $f4, $f12 -/* 0C8E9C 800C829C 448F5000 */ mtc1 $t7, $f10 -/* 0C8EA0 800C82A0 46262202 */ mul.d $f8, $f4, $f6 -/* 0C8EA4 800C82A4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 0C8EA8 800C82A8 05E10005 */ bgez $t7, .L800C82C0 -/* 0C8EAC 800C82AC 46805421 */ cvt.d.w $f16, $f10 -/* 0C8EB0 800C82B0 44819800 */ mtc1 $at, $f19 -/* 0C8EB4 800C82B4 44809000 */ mtc1 $zero, $f18 -/* 0C8EB8 800C82B8 00000000 */ nop -/* 0C8EBC 800C82BC 46328400 */ add.d $f16, $f16, $f18 -.L800C82C0: -/* 0C8EC0 800C82C0 44863000 */ mtc1 $a2, $f6 -/* 0C8EC4 800C82C4 46304102 */ mul.d $f4, $f8, $f16 -/* 0C8EC8 800C82C8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 0C8ECC 800C82CC 04C10005 */ bgez $a2, .L800C82E4 -/* 0C8ED0 800C82D0 468032A1 */ cvt.d.w $f10, $f6 -/* 0C8ED4 800C82D4 44819800 */ mtc1 $at, $f19 -/* 0C8ED8 800C82D8 44809000 */ mtc1 $zero, $f18 -/* 0C8EDC 800C82DC 00000000 */ nop -/* 0C8EE0 800C82E0 46325280 */ add.d $f10, $f10, $f18 -.L800C82E4: -/* 0C8EE4 800C82E4 462A2203 */ div.d $f8, $f4, $f10 -/* 0C8EE8 800C82E8 24020001 */ li $v0, 1 -/* 0C8EEC 800C82EC 3C0141E0 */ li $at, 0x41E00000 # 28.000000 -/* 0C8EF0 800C82F0 4458F800 */ cfc1 $t8, $31 -/* 0C8EF4 800C82F4 44C2F800 */ ctc1 $v0, $31 -/* 0C8EF8 800C82F8 00000000 */ nop -/* 0C8EFC 800C82FC 46204424 */ cvt.w.d $f16, $f8 -/* 0C8F00 800C8300 4442F800 */ cfc1 $v0, $31 -/* 0C8F04 800C8304 00000000 */ nop -/* 0C8F08 800C8308 30420078 */ andi $v0, $v0, 0x78 -/* 0C8F0C 800C830C 50400016 */ beql $v0, $zero, .L800C8368 -/* 0C8F10 800C8310 44028000 */ mfc1 $v0, $f16 -/* 0C8F14 800C8314 44818800 */ mtc1 $at, $f17 -/* 0C8F18 800C8318 44808000 */ mtc1 $zero, $f16 -/* 0C8F1C 800C831C 24020001 */ li $v0, 1 -/* 0C8F20 800C8320 3C018000 */ lui $at, 0x8000 -/* 0C8F24 800C8324 46304401 */ sub.d $f16, $f8, $f16 -/* 0C8F28 800C8328 44C2F800 */ ctc1 $v0, $31 -/* 0C8F2C 800C832C 00000000 */ nop -/* 0C8F30 800C8330 46208424 */ cvt.w.d $f16, $f16 -/* 0C8F34 800C8334 4442F800 */ cfc1 $v0, $31 -/* 0C8F38 800C8338 00000000 */ nop -/* 0C8F3C 800C833C 30420078 */ andi $v0, $v0, 0x78 -/* 0C8F40 800C8340 54400006 */ bnezl $v0, .L800C835C -/* 0C8F44 800C8344 44D8F800 */ ctc1 $t8, $31 -/* 0C8F48 800C8348 44028000 */ mfc1 $v0, $f16 -/* 0C8F4C 800C834C 44D8F800 */ ctc1 $t8, $31 -/* 0C8F50 800C8350 03E00008 */ jr $ra -/* 0C8F54 800C8354 00411025 */ or $v0, $v0, $at - -/* 0C8F58 800C8358 44D8F800 */ ctc1 $t8, $31 -.L800C835C: -/* 0C8F5C 800C835C 03E00008 */ jr $ra -/* 0C8F60 800C8360 2402FFFF */ li $v0, -1 - -/* 0C8F64 800C8364 44028000 */ mfc1 $v0, $f16 -.L800C8368: -/* 0C8F68 800C8368 00000000 */ nop -/* 0C8F6C 800C836C 0442FFFB */ bltzl $v0, .L800C835C -/* 0C8F70 800C8370 44D8F800 */ ctc1 $t8, $31 -/* 0C8F74 800C8374 44D8F800 */ ctc1 $t8, $31 -/* 0C8F78 800C8378 03E00008 */ jr $ra -/* 0C8F7C 800C837C 00000000 */ nop \ No newline at end of file diff --git a/lib/asm/non_matchings/unknown_0C86A0/alCSeqSetLoc.s b/lib/asm/non_matchings/unknown_0C86A0/alCSeqSetLoc.s deleted file mode 100644 index a0d28e86..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/alCSeqSetLoc.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel alCSeqSetLoc -/* 0C86A0 800C7AA0 8C8E0004 */ lw $t6, 4($a0) -/* 0C86A4 800C7AA4 00803025 */ move $a2, $a0 -/* 0C86A8 800C7AA8 00804025 */ move $t0, $a0 -/* 0C86AC 800C7AAC ACAE0000 */ sw $t6, ($a1) -/* 0C86B0 800C7AB0 8C8F000C */ lw $t7, 0xc($a0) -/* 0C86B4 800C7AB4 00001025 */ move $v0, $zero -/* 0C86B8 800C7AB8 00A01825 */ move $v1, $a1 -/* 0C86BC 800C7ABC ACAF0004 */ sw $t7, 4($a1) -/* 0C86C0 800C7AC0 8C980010 */ lw $t8, 0x10($a0) -/* 0C86C4 800C7AC4 24040010 */ li $a0, 16 -/* 0C86C8 800C7AC8 00A03825 */ move $a3, $a1 -/* 0C86CC 800C7ACC ACB80008 */ sw $t8, 8($a1) -.L800C7AD0: -/* 0C86D0 800C7AD0 8CD90018 */ lw $t9, 0x18($a2) -/* 0C86D4 800C7AD4 24420002 */ addiu $v0, $v0, 2 -/* 0C86D8 800C7AD8 24630008 */ addiu $v1, $v1, 8 -/* 0C86DC 800C7ADC AC790004 */ sw $t9, 4($v1) -/* 0C86E0 800C7AE0 8CC90058 */ lw $t1, 0x58($a2) -/* 0C86E4 800C7AE4 24C60008 */ addiu $a2, $a2, 8 -/* 0C86E8 800C7AE8 24E70002 */ addiu $a3, $a3, 2 -/* 0C86EC 800C7AEC AC690044 */ sw $t1, 0x44($v1) -/* 0C86F0 800C7AF0 910A0098 */ lbu $t2, 0x98($t0) -/* 0C86F4 800C7AF4 25080002 */ addiu $t0, $t0, 2 -/* 0C86F8 800C7AF8 A0EA008A */ sb $t2, 0x8a($a3) -/* 0C86FC 800C7AFC 910B00A6 */ lbu $t3, 0xa6($t0) -/* 0C8700 800C7B00 A0EB009A */ sb $t3, 0x9a($a3) -/* 0C8704 800C7B04 8CCC00B0 */ lw $t4, 0xb0($a2) -/* 0C8708 800C7B08 AC6C00A4 */ sw $t4, 0xa4($v1) -/* 0C870C 800C7B0C 8CCD0014 */ lw $t5, 0x14($a2) -/* 0C8710 800C7B10 AC6D0008 */ sw $t5, 8($v1) -/* 0C8714 800C7B14 8CCE0054 */ lw $t6, 0x54($a2) -/* 0C8718 800C7B18 AC6E0048 */ sw $t6, 0x48($v1) -/* 0C871C 800C7B1C 910F0097 */ lbu $t7, 0x97($t0) -/* 0C8720 800C7B20 A0EF008B */ sb $t7, 0x8b($a3) -/* 0C8724 800C7B24 911800A7 */ lbu $t8, 0xa7($t0) -/* 0C8728 800C7B28 A0F8009B */ sb $t8, 0x9b($a3) -/* 0C872C 800C7B2C 8CD900B4 */ lw $t9, 0xb4($a2) -/* 0C8730 800C7B30 1444FFE7 */ bne $v0, $a0, .L800C7AD0 -/* 0C8734 800C7B34 AC7900A8 */ sw $t9, 0xa8($v1) -/* 0C8738 800C7B38 03E00008 */ jr $ra -/* 0C873C 800C7B3C 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0C86A0/alCSeqTicksToSec.s b/lib/asm/non_matchings/unknown_0C86A0/alCSeqTicksToSec.s deleted file mode 100644 index 86b49903..00000000 --- a/lib/asm/non_matchings/unknown_0C86A0/alCSeqTicksToSec.s +++ /dev/null @@ -1,35 +0,0 @@ -.late_rodata -glabel D_800E94B8 -.double 1000000.0 - -.text -glabel alCSeqTicksToSec -/* 0C8F80 800C8380 44852000 */ mtc1 $a1, $f4 -/* 0C8F84 800C8384 44864000 */ mtc1 $a2, $f8 -/* 0C8F88 800C8388 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8F8C 800C838C 468021A0 */ cvt.s.w $f6, $f4 -/* 0C8F90 800C8390 04C10004 */ bgez $a2, .L800C83A4 -/* 0C8F94 800C8394 468042A0 */ cvt.s.w $f10, $f8 -/* 0C8F98 800C8398 44818000 */ mtc1 $at, $f16 -/* 0C8F9C 800C839C 00000000 */ nop -/* 0C8FA0 800C83A0 46105280 */ add.s $f10, $f10, $f16 -.L800C83A4: -/* 0C8FA4 800C83A4 8C8E0000 */ lw $t6, ($a0) -/* 0C8FA8 800C83A8 460A3482 */ mul.s $f18, $f6, $f10 -/* 0C8FAC 800C83AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8FB0 800C83B0 8DCF0040 */ lw $t7, 0x40($t6) -/* 0C8FB4 800C83B4 448F4000 */ mtc1 $t7, $f8 -/* 0C8FB8 800C83B8 46009121 */ cvt.d.s $f4, $f18 -/* 0C8FBC 800C83BC 05E10004 */ bgez $t7, .L800C83D0 -/* 0C8FC0 800C83C0 46804420 */ cvt.s.w $f16, $f8 -/* 0C8FC4 800C83C4 44813000 */ mtc1 $at, $f6 -/* 0C8FC8 800C83C8 00000000 */ nop -/* 0C8FCC 800C83CC 46068400 */ add.s $f16, $f16, $f6 -.L800C83D0: -/* 0C8FD0 800C83D0 3C01800F */ lui $at, %hi(D_800E94B8) # $at, 0x800f -/* 0C8FD4 800C83D4 D43294B8 */ ldc1 $f18, %lo(D_800E94B8)($at) -/* 0C8FD8 800C83D8 460082A1 */ cvt.d.s $f10, $f16 -/* 0C8FDC 800C83DC 46325202 */ mul.d $f8, $f10, $f18 -/* 0C8FE0 800C83E0 46282183 */ div.d $f6, $f4, $f8 -/* 0C8FE4 800C83E4 03E00008 */ jr $ra -/* 0C8FE8 800C83E8 46203020 */ cvt.s.d $f0, $f6 diff --git a/lib/asm/non_matchings/unknown_0C9160/alCSPSetSeq.s b/lib/asm/non_matchings/unknown_0C9160/alCSPSetSeq.s deleted file mode 100644 index 00ce0e6b..00000000 --- a/lib/asm/non_matchings/unknown_0C9160/alCSPSetSeq.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel alCSPSetSeq -/* 0C9160 800C8560 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C9164 800C8564 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C9168 800C8568 240E000D */ li $t6, 13 -/* 0C916C 800C856C AFA5001C */ sw $a1, 0x1c($sp) -/* 0C9170 800C8570 A7AE0018 */ sh $t6, 0x18($sp) -/* 0C9174 800C8574 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C9178 800C8578 24840048 */ addiu $a0, $a0, 0x48 -/* 0C917C 800C857C 0C03246B */ jal alEvtqPostEvent -/* 0C9180 800C8580 00003025 */ move $a2, $zero -/* 0C9184 800C8584 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C9188 800C8588 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C918C 800C858C 03E00008 */ jr $ra -/* 0C9190 800C8590 00000000 */ nop - -/* 0C9194 800C8594 00000000 */ nop -/* 0C9198 800C8598 00000000 */ nop -/* 0C919C 800C859C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s b/lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s deleted file mode 100644 index ed8749fe..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel alCSPPlay -/* 0C91A0 800C85A0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C91A4 800C85A4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C91A8 800C85A8 240E000F */ li $t6, 15 -/* 0C91AC 800C85AC A7AE0018 */ sh $t6, 0x18($sp) -/* 0C91B0 800C85B0 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C91B4 800C85B4 24840048 */ addiu $a0, $a0, 0x48 -/* 0C91B8 800C85B8 0C03246B */ jal alEvtqPostEvent -/* 0C91BC 800C85BC 00003025 */ move $a2, $zero -/* 0C91C0 800C85C0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C91C4 800C85C4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C91C8 800C85C8 03E00008 */ jr $ra -/* 0C91CC 800C85CC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s b/lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s deleted file mode 100644 index 212d2804..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel alCSPStop -/* 0C91D0 800C85D0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C91D4 800C85D4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C91D8 800C85D8 240E0011 */ li $t6, 17 -/* 0C91DC 800C85DC A7AE0018 */ sh $t6, 0x18($sp) -/* 0C91E0 800C85E0 27A50018 */ addiu $a1, $sp, 0x18 -/* 0C91E4 800C85E4 24840048 */ addiu $a0, $a0, 0x48 -/* 0C91E8 800C85E8 0C03246B */ jal alEvtqPostEvent -/* 0C91EC 800C85EC 00003025 */ move $a2, $zero -/* 0C91F0 800C85F0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C91F4 800C85F4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C91F8 800C85F8 03E00008 */ jr $ra -/* 0C91FC 800C85FC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C91A0/alClose.s b/lib/asm/non_matchings/unknown_0C91A0/alClose.s deleted file mode 100644 index 534b9d7e..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/alClose.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel alClose -/* 0C93B4 800C87B4 3C0E800E */ lui $t6, %hi(alGlobals) # $t6, 0x800e -/* 0C93B8 800C87B8 8DCE3780 */ lw $t6, %lo(alGlobals)($t6) -/* 0C93BC 800C87BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0C93C0 800C87C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C93C4 800C87C4 51C00006 */ beql $t6, $zero, .L800C87E0 -/* 0C93C8 800C87C8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C93CC 800C87CC 0C034B18 */ jal alSynDelete -/* 0C93D0 800C87D0 00000000 */ nop -/* 0C93D4 800C87D4 3C01800E */ lui $at, %hi(alGlobals) # $at, 0x800e -/* 0C93D8 800C87D8 AC203780 */ sw $zero, %lo(alGlobals)($at) -/* 0C93DC 800C87DC 8FBF0014 */ lw $ra, 0x14($sp) -.L800C87E0: -/* 0C93E0 800C87E0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0C93E4 800C87E4 03E00008 */ jr $ra -/* 0C93E8 800C87E8 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C91A0/alInit.s b/lib/asm/non_matchings/unknown_0C91A0/alInit.s deleted file mode 100644 index 2a30533a..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/alInit.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel alInit -/* 0C93EC 800C87EC 3C02800E */ lui $v0, %hi(alGlobals) # $v0, 0x800e -/* 0C93F0 800C87F0 24423780 */ addiu $v0, %lo(alGlobals) # addiu $v0, $v0, 0x3780 -/* 0C93F4 800C87F4 8C4E0000 */ lw $t6, ($v0) -/* 0C93F8 800C87F8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0C93FC 800C87FC AFBF0014 */ sw $ra, 0x14($sp) -/* 0C9400 800C8800 55C00004 */ bnezl $t6, .L800C8814 -/* 0C9404 800C8804 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C9408 800C8808 0C01944C */ jal alSynNew -/* 0C940C 800C880C AC440000 */ sw $a0, ($v0) -/* 0C9410 800C8810 8FBF0014 */ lw $ra, 0x14($sp) -.L800C8814: -/* 0C9414 800C8814 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0C9418 800C8818 03E00008 */ jr $ra -/* 0C941C 800C881C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C91A0/alLink.s b/lib/asm/non_matchings/unknown_0C91A0/alLink.s deleted file mode 100644 index 37be21aa..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/alLink.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel alLink -/* 0C9390 800C8790 8CAE0000 */ lw $t6, ($a1) -/* 0C9394 800C8794 AC850004 */ sw $a1, 4($a0) -/* 0C9398 800C8798 AC8E0000 */ sw $t6, ($a0) -/* 0C939C 800C879C 8CA20000 */ lw $v0, ($a1) -/* 0C93A0 800C87A0 10400002 */ beqz $v0, .L800C87AC -/* 0C93A4 800C87A4 00000000 */ nop -/* 0C93A8 800C87A8 AC440004 */ sw $a0, 4($v0) -.L800C87AC: -/* 0C93AC 800C87AC 03E00008 */ jr $ra -/* 0C93B0 800C87B0 ACA40000 */ sw $a0, ($a1) - diff --git a/lib/asm/non_matchings/unknown_0C91A0/alUnlink.s b/lib/asm/non_matchings/unknown_0C91A0/alUnlink.s deleted file mode 100644 index c314b900..00000000 --- a/lib/asm/non_matchings/unknown_0C91A0/alUnlink.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel alUnlink -/* 0C9360 800C8760 8C820000 */ lw $v0, ($a0) -/* 0C9364 800C8764 50400004 */ beql $v0, $zero, .L800C8778 -/* 0C9368 800C8768 8C820004 */ lw $v0, 4($a0) -/* 0C936C 800C876C 8C8E0004 */ lw $t6, 4($a0) -/* 0C9370 800C8770 AC4E0004 */ sw $t6, 4($v0) -/* 0C9374 800C8774 8C820004 */ lw $v0, 4($a0) -.L800C8778: -/* 0C9378 800C8778 10400003 */ beqz $v0, .L800C8788 -/* 0C937C 800C877C 00000000 */ nop -/* 0C9380 800C8780 8C8F0000 */ lw $t7, ($a0) -/* 0C9384 800C8784 AC4F0000 */ sw $t7, ($v0) -.L800C8788: -/* 0C9388 800C8788 03E00008 */ jr $ra -/* 0C938C 800C878C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s b/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s deleted file mode 100644 index b399ec13..00000000 --- a/lib/asm/non_matchings/unknown_0C9A20/func_800C8E20.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel osAiGetLength -/* 0C9A20 800C8E20 3C0EA450 */ lui $t6, 0xa450 -/* 0C9A24 800C8E24 03E00008 */ jr $ra -/* 0C9A28 800C8E28 8DC20004 */ lw $v0, 4($t6) - -/* 0C9A2C 800C8E2C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C9C90/_allocatePVoice.s b/lib/asm/non_matchings/unknown_0C9C90/_allocatePVoice.s deleted file mode 100644 index 73fe79a9..00000000 --- a/lib/asm/non_matchings/unknown_0C9C90/_allocatePVoice.s +++ /dev/null @@ -1,66 +0,0 @@ -glabel _allocatePVoice -/* 0CA020 800C9420 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0CA024 800C9424 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA028 800C9428 AFA60030 */ sw $a2, 0x30($sp) -/* 0CA02C 800C942C 8C870014 */ lw $a3, 0x14($a0) -/* 0CA030 800C9430 00067400 */ sll $t6, $a2, 0x10 -/* 0CA034 800C9434 000E3403 */ sra $a2, $t6, 0x10 -/* 0CA038 800C9438 00804025 */ move $t0, $a0 -/* 0CA03C 800C943C 10E0000D */ beqz $a3, .L800C9474 -/* 0CA040 800C9440 00001825 */ move $v1, $zero -/* 0CA044 800C9444 ACA70000 */ sw $a3, ($a1) -/* 0CA048 800C9448 AFA80028 */ sw $t0, 0x28($sp) -/* 0CA04C 800C944C AFA70024 */ sw $a3, 0x24($sp) -/* 0CA050 800C9450 AFA0001C */ sw $zero, 0x1c($sp) -/* 0CA054 800C9454 0C0321D8 */ jal alUnlink -/* 0CA058 800C9458 00E02025 */ move $a0, $a3 -/* 0CA05C 800C945C 8FA80028 */ lw $t0, 0x28($sp) -/* 0CA060 800C9460 8FA40024 */ lw $a0, 0x24($sp) -/* 0CA064 800C9464 0C0321E4 */ jal alLink -/* 0CA068 800C9468 2505000C */ addiu $a1, $t0, 0xc -/* 0CA06C 800C946C 10000021 */ b .L800C94F4 -/* 0CA070 800C9470 8FA3001C */ lw $v1, 0x1c($sp) -.L800C9474: -/* 0CA074 800C9474 8D070004 */ lw $a3, 4($t0) -/* 0CA078 800C9478 10E0000C */ beqz $a3, .L800C94AC -/* 0CA07C 800C947C 00E02025 */ move $a0, $a3 -/* 0CA080 800C9480 ACA70000 */ sw $a3, ($a1) -/* 0CA084 800C9484 AFA80028 */ sw $t0, 0x28($sp) -/* 0CA088 800C9488 AFA70024 */ sw $a3, 0x24($sp) -/* 0CA08C 800C948C 0C0321D8 */ jal alUnlink -/* 0CA090 800C9490 AFA3001C */ sw $v1, 0x1c($sp) -/* 0CA094 800C9494 8FA80028 */ lw $t0, 0x28($sp) -/* 0CA098 800C9498 8FA40024 */ lw $a0, 0x24($sp) -/* 0CA09C 800C949C 0C0321E4 */ jal alLink -/* 0CA0A0 800C94A0 2505000C */ addiu $a1, $t0, 0xc -/* 0CA0A4 800C94A4 10000013 */ b .L800C94F4 -/* 0CA0A8 800C94A8 8FA3001C */ lw $v1, 0x1c($sp) -.L800C94AC: -/* 0CA0AC 800C94AC 8D07000C */ lw $a3, 0xc($t0) -/* 0CA0B0 800C94B0 50E00011 */ beql $a3, $zero, .L800C94F8 -/* 0CA0B4 800C94B4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA0B8 800C94B8 8CF80008 */ lw $t8, 8($a3) -.L800C94BC: -/* 0CA0BC 800C94BC 87190016 */ lh $t9, 0x16($t8) -/* 0CA0C0 800C94C0 00D9082A */ slt $at, $a2, $t9 -/* 0CA0C4 800C94C4 54200009 */ bnezl $at, .L800C94EC -/* 0CA0C8 800C94C8 8CE70000 */ lw $a3, ($a3) -/* 0CA0CC 800C94CC 8CE900D8 */ lw $t1, 0xd8($a3) -/* 0CA0D0 800C94D0 55200006 */ bnezl $t1, .L800C94EC -/* 0CA0D4 800C94D4 8CE70000 */ lw $a3, ($a3) -/* 0CA0D8 800C94D8 ACA70000 */ sw $a3, ($a1) -/* 0CA0DC 800C94DC 8CEA0008 */ lw $t2, 8($a3) -/* 0CA0E0 800C94E0 24030001 */ li $v1, 1 -/* 0CA0E4 800C94E4 85460016 */ lh $a2, 0x16($t2) -/* 0CA0E8 800C94E8 8CE70000 */ lw $a3, ($a3) -.L800C94EC: -/* 0CA0EC 800C94EC 54E0FFF3 */ bnezl $a3, .L800C94BC -/* 0CA0F0 800C94F0 8CF80008 */ lw $t8, 8($a3) -.L800C94F4: -/* 0CA0F4 800C94F4 8FBF0014 */ lw $ra, 0x14($sp) -.L800C94F8: -/* 0CA0F8 800C94F8 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0CA0FC 800C94FC 00601025 */ move $v0, $v1 -/* 0CA100 800C9500 03E00008 */ jr $ra -/* 0CA104 800C9504 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0C9C90/alEvtqPostEvent.s b/lib/asm/non_matchings/unknown_0C9C90/alEvtqPostEvent.s deleted file mode 100644 index 0b8007e0..00000000 --- a/lib/asm/non_matchings/unknown_0C9C90/alEvtqPostEvent.s +++ /dev/null @@ -1,83 +0,0 @@ -glabel alEvtqPostEvent -/* 0C9DAC 800C91AC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C9DB0 800C91B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C9DB4 800C91B4 AFA40030 */ sw $a0, 0x30($sp) -/* 0C9DB8 800C91B8 AFA50034 */ sw $a1, 0x34($sp) -/* 0C9DBC 800C91BC AFA00020 */ sw $zero, 0x20($sp) -/* 0C9DC0 800C91C0 24040001 */ li $a0, 1 -/* 0C9DC4 800C91C4 0C03268C */ jal osSetIntMask -/* 0C9DC8 800C91C8 AFA60038 */ sw $a2, 0x38($sp) -/* 0C9DCC 800C91CC 8FAE0030 */ lw $t6, 0x30($sp) -/* 0C9DD0 800C91D0 8FA70038 */ lw $a3, 0x38($sp) -/* 0C9DD4 800C91D4 00402825 */ move $a1, $v0 -/* 0C9DD8 800C91D8 8DC80000 */ lw $t0, ($t6) -/* 0C9DDC 800C91DC 15000005 */ bnez $t0, .L800C91F4 -/* 0C9DE0 800C91E0 01002025 */ move $a0, $t0 -/* 0C9DE4 800C91E4 0C03268C */ jal osSetIntMask -/* 0C9DE8 800C91E8 00402025 */ move $a0, $v0 -/* 0C9DEC 800C91EC 10000035 */ b .L800C92C4 -/* 0C9DF0 800C91F0 8FBF0014 */ lw $ra, 0x14($sp) -.L800C91F4: -/* 0C9DF4 800C91F4 AFA5001C */ sw $a1, 0x1c($sp) -/* 0C9DF8 800C91F8 AFA70038 */ sw $a3, 0x38($sp) -/* 0C9DFC 800C91FC 0C0321D8 */ jal alUnlink -/* 0C9E00 800C9200 AFA8002C */ sw $t0, 0x2c($sp) -/* 0C9E04 800C9204 8FA8002C */ lw $t0, 0x2c($sp) -/* 0C9E08 800C9208 8FA40034 */ lw $a0, 0x34($sp) -/* 0C9E0C 800C920C 24060010 */ li $a2, 16 -/* 0C9E10 800C9210 0C034E08 */ jal alCopy -/* 0C9E14 800C9214 2505000C */ addiu $a1, $t0, 0xc -/* 0C9E18 800C9218 8FA70038 */ lw $a3, 0x38($sp) -/* 0C9E1C 800C921C 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff -/* 0C9E20 800C9220 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0C9E24 800C9224 14E10003 */ bne $a3, $at, .L800C9234 -/* 0C9E28 800C9228 8FA8002C */ lw $t0, 0x2c($sp) -/* 0C9E2C 800C922C 240FFFFF */ li $t7, -1 -/* 0C9E30 800C9230 AFAF0020 */ sw $t7, 0x20($sp) -.L800C9234: -/* 0C9E34 800C9234 8FA20030 */ lw $v0, 0x30($sp) -/* 0C9E38 800C9238 2401FFF8 */ li $at, -8 -/* 0C9E3C 800C923C 8FB80020 */ lw $t8, 0x20($sp) -/* 0C9E40 800C9240 1041001D */ beq $v0, $at, .L800C92B8 -/* 0C9E44 800C9244 24450008 */ addiu $a1, $v0, 8 -.L800C9248: -/* 0C9E48 800C9248 8CA20000 */ lw $v0, ($a1) -/* 0C9E4C 800C924C 5440000B */ bnezl $v0, .L800C927C -/* 0C9E50 800C9250 8C430008 */ lw $v1, 8($v0) -/* 0C9E54 800C9254 53000004 */ beql $t8, $zero, .L800C9268 -/* 0C9E58 800C9258 AD070008 */ sw $a3, 8($t0) -/* 0C9E5C 800C925C 10000002 */ b .L800C9268 -/* 0C9E60 800C9260 AD000008 */ sw $zero, 8($t0) -/* 0C9E64 800C9264 AD070008 */ sw $a3, 8($t0) -.L800C9268: -/* 0C9E68 800C9268 0C0321E4 */ jal alLink -/* 0C9E6C 800C926C 01002025 */ move $a0, $t0 -/* 0C9E70 800C9270 10000011 */ b .L800C92B8 -/* 0C9E74 800C9274 00000000 */ nop -/* 0C9E78 800C9278 8C430008 */ lw $v1, 8($v0) -.L800C927C: -/* 0C9E7C 800C927C 00403025 */ move $a2, $v0 -/* 0C9E80 800C9280 00E3082A */ slt $at, $a3, $v1 -/* 0C9E84 800C9284 5020000A */ beql $at, $zero, .L800C92B0 -/* 0C9E88 800C9288 00402825 */ move $a1, $v0 -/* 0C9E8C 800C928C AD070008 */ sw $a3, 8($t0) -/* 0C9E90 800C9290 8CD90008 */ lw $t9, 8($a2) -/* 0C9E94 800C9294 01002025 */ move $a0, $t0 -/* 0C9E98 800C9298 03274823 */ subu $t1, $t9, $a3 -/* 0C9E9C 800C929C 0C0321E4 */ jal alLink -/* 0C9EA0 800C92A0 ACC90008 */ sw $t1, 8($a2) -/* 0C9EA4 800C92A4 10000004 */ b .L800C92B8 -/* 0C9EA8 800C92A8 00000000 */ nop -/* 0C9EAC 800C92AC 00402825 */ move $a1, $v0 -.L800C92B0: -/* 0C9EB0 800C92B0 1440FFE5 */ bnez $v0, .L800C9248 -/* 0C9EB4 800C92B4 00E33823 */ subu $a3, $a3, $v1 -.L800C92B8: -/* 0C9EB8 800C92B8 0C03268C */ jal osSetIntMask -/* 0C9EBC 800C92BC 8FA4001C */ lw $a0, 0x1c($sp) -/* 0C9EC0 800C92C0 8FBF0014 */ lw $ra, 0x14($sp) -.L800C92C4: -/* 0C9EC4 800C92C4 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0C9EC8 800C92C8 03E00008 */ jr $ra -/* 0C9ECC 800C92CC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA250/alSynSetVol.s b/lib/asm/non_matchings/unknown_0CA250/alSynSetVol.s deleted file mode 100644 index 53b83844..00000000 --- a/lib/asm/non_matchings/unknown_0CA250/alSynSetVol.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel alSynSetVol -/* 0CA250 800C9650 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0CA254 800C9654 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA258 800C9658 AFA50024 */ sw $a1, 0x24($sp) -/* 0CA25C 800C965C AFA60028 */ sw $a2, 0x28($sp) -/* 0CA260 800C9660 AFA7002C */ sw $a3, 0x2c($sp) -/* 0CA264 800C9664 8CAF0008 */ lw $t7, 8($a1) -/* 0CA268 800C9668 51E0001D */ beql $t7, $zero, .L800C96E0 -/* 0CA26C 800C966C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA270 800C9670 0C01959A */ jal __allocParam -/* 0CA274 800C9674 AFA40020 */ sw $a0, 0x20($sp) -/* 0CA278 800C9678 10400018 */ beqz $v0, .L800C96DC -/* 0CA27C 800C967C 8FA40020 */ lw $a0, 0x20($sp) -/* 0CA280 800C9680 8FB90024 */ lw $t9, 0x24($sp) -/* 0CA284 800C9684 8C98001C */ lw $t8, 0x1c($a0) -/* 0CA288 800C9688 240B000B */ li $t3, 11 -/* 0CA28C 800C968C 8F280008 */ lw $t0, 8($t9) -/* 0CA290 800C9690 8D0900D8 */ lw $t1, 0xd8($t0) -/* 0CA294 800C9694 A44B0008 */ sh $t3, 8($v0) -/* 0CA298 800C9698 03095021 */ addu $t2, $t8, $t1 -/* 0CA29C 800C969C AC4A0004 */ sw $t2, 4($v0) -/* 0CA2A0 800C96A0 87AC002A */ lh $t4, 0x2a($sp) -/* 0CA2A4 800C96A4 AC4C000C */ sw $t4, 0xc($v0) -/* 0CA2A8 800C96A8 AFA2001C */ sw $v0, 0x1c($sp) -/* 0CA2AC 800C96AC 0C0195F1 */ jal __timeToSamples -/* 0CA2B0 800C96B0 8FA5002C */ lw $a1, 0x2c($sp) -/* 0CA2B4 800C96B4 8FA6001C */ lw $a2, 0x1c($sp) -/* 0CA2B8 800C96B8 24050003 */ li $a1, 3 -/* 0CA2BC 800C96BC ACC20010 */ sw $v0, 0x10($a2) -/* 0CA2C0 800C96C0 ACC00000 */ sw $zero, ($a2) -/* 0CA2C4 800C96C4 8FAD0024 */ lw $t5, 0x24($sp) -/* 0CA2C8 800C96C8 8DAE0008 */ lw $t6, 8($t5) -/* 0CA2CC 800C96CC 8DC4000C */ lw $a0, 0xc($t6) -/* 0CA2D0 800C96D0 8C990008 */ lw $t9, 8($a0) -/* 0CA2D4 800C96D4 0320F809 */ jalr $t9 -/* 0CA2D8 800C96D8 00000000 */ nop -.L800C96DC: -/* 0CA2DC 800C96DC 8FBF0014 */ lw $ra, 0x14($sp) -.L800C96E0: -/* 0CA2E0 800C96E0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0CA2E4 800C96E4 03E00008 */ jr $ra -/* 0CA2E8 800C96E8 00000000 */ nop - -/* 0CA2EC 800C96EC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA2F0/alSynStartVoice.s b/lib/asm/non_matchings/unknown_0CA2F0/alSynStartVoice.s deleted file mode 100644 index 51f5468a..00000000 --- a/lib/asm/non_matchings/unknown_0CA2F0/alSynStartVoice.s +++ /dev/null @@ -1,41 +0,0 @@ -glabel alSynStartVoice -/* 0CA2F0 800C96F0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CA2F4 800C96F4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA2F8 800C96F8 AFA40018 */ sw $a0, 0x18($sp) -/* 0CA2FC 800C96FC AFA60020 */ sw $a2, 0x20($sp) -/* 0CA300 800C9700 8CAE0008 */ lw $t6, 8($a1) -/* 0CA304 800C9704 51C0001A */ beql $t6, $zero, .L800C9770 -/* 0CA308 800C9708 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA30C 800C970C 0C01959A */ jal __allocParam -/* 0CA310 800C9710 AFA5001C */ sw $a1, 0x1c($sp) -/* 0CA314 800C9714 8FA7001C */ lw $a3, 0x1c($sp) -/* 0CA318 800C9718 10400014 */ beqz $v0, .L800C976C -/* 0CA31C 800C971C 00403025 */ move $a2, $v0 -/* 0CA320 800C9720 8FAF0018 */ lw $t7, 0x18($sp) -/* 0CA324 800C9724 8CF90008 */ lw $t9, 8($a3) -/* 0CA328 800C9728 240A000E */ li $t2, 14 -/* 0CA32C 800C972C 8DF8001C */ lw $t8, 0x1c($t7) -/* 0CA330 800C9730 8F2800D8 */ lw $t0, 0xd8($t9) -/* 0CA334 800C9734 A44A0008 */ sh $t2, 8($v0) -/* 0CA338 800C9738 24050003 */ li $a1, 3 -/* 0CA33C 800C973C 03084821 */ addu $t1, $t8, $t0 -/* 0CA340 800C9740 AC490004 */ sw $t1, 4($v0) -/* 0CA344 800C9744 8FAB0020 */ lw $t3, 0x20($sp) -/* 0CA348 800C9748 AC400000 */ sw $zero, ($v0) -/* 0CA34C 800C974C AC4B000C */ sw $t3, 0xc($v0) -/* 0CA350 800C9750 84EC001A */ lh $t4, 0x1a($a3) -/* 0CA354 800C9754 A44C000A */ sh $t4, 0xa($v0) -/* 0CA358 800C9758 8CED0008 */ lw $t5, 8($a3) -/* 0CA35C 800C975C 8DA4000C */ lw $a0, 0xc($t5) -/* 0CA360 800C9760 8C990008 */ lw $t9, 8($a0) -/* 0CA364 800C9764 0320F809 */ jalr $t9 -/* 0CA368 800C9768 00000000 */ nop -.L800C976C: -/* 0CA36C 800C976C 8FBF0014 */ lw $ra, 0x14($sp) -.L800C9770: -/* 0CA370 800C9770 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CA374 800C9774 03E00008 */ jr $ra -/* 0CA378 800C9778 00000000 */ nop - -/* 0CA37C 800C977C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA380/alSynSetPitch.s b/lib/asm/non_matchings/unknown_0CA380/alSynSetPitch.s deleted file mode 100644 index 372bb67c..00000000 --- a/lib/asm/non_matchings/unknown_0CA380/alSynSetPitch.s +++ /dev/null @@ -1,41 +0,0 @@ -glabel alSynSetPitch -/* 0CA380 800C9780 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CA384 800C9784 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA388 800C9788 AFA40018 */ sw $a0, 0x18($sp) -/* 0CA38C 800C978C AFA60020 */ sw $a2, 0x20($sp) -/* 0CA390 800C9790 8CAE0008 */ lw $t6, 8($a1) -/* 0CA394 800C9794 51C00018 */ beql $t6, $zero, .L800C97F8 -/* 0CA398 800C9798 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA39C 800C979C 0C01959A */ jal __allocParam -/* 0CA3A0 800C97A0 AFA5001C */ sw $a1, 0x1c($sp) -/* 0CA3A4 800C97A4 8FA7001C */ lw $a3, 0x1c($sp) -/* 0CA3A8 800C97A8 10400012 */ beqz $v0, .L800C97F4 -/* 0CA3AC 800C97AC 00403025 */ move $a2, $v0 -/* 0CA3B0 800C97B0 8FAF0018 */ lw $t7, 0x18($sp) -/* 0CA3B4 800C97B4 8CF90008 */ lw $t9, 8($a3) -/* 0CA3B8 800C97B8 240A0007 */ li $t2, 7 -/* 0CA3BC 800C97BC 8DF8001C */ lw $t8, 0x1c($t7) -/* 0CA3C0 800C97C0 8F2800D8 */ lw $t0, 0xd8($t9) -/* 0CA3C4 800C97C4 A44A0008 */ sh $t2, 8($v0) -/* 0CA3C8 800C97C8 24050003 */ li $a1, 3 -/* 0CA3CC 800C97CC 03084821 */ addu $t1, $t8, $t0 -/* 0CA3D0 800C97D0 AC490004 */ sw $t1, 4($v0) -/* 0CA3D4 800C97D4 C7A40020 */ lwc1 $f4, 0x20($sp) -/* 0CA3D8 800C97D8 AC400000 */ sw $zero, ($v0) -/* 0CA3DC 800C97DC E444000C */ swc1 $f4, 0xc($v0) -/* 0CA3E0 800C97E0 8CEB0008 */ lw $t3, 8($a3) -/* 0CA3E4 800C97E4 8D64000C */ lw $a0, 0xc($t3) -/* 0CA3E8 800C97E8 8C990008 */ lw $t9, 8($a0) -/* 0CA3EC 800C97EC 0320F809 */ jalr $t9 -/* 0CA3F0 800C97F0 00000000 */ nop -.L800C97F4: -/* 0CA3F4 800C97F4 8FBF0014 */ lw $ra, 0x14($sp) -.L800C97F8: -/* 0CA3F8 800C97F8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CA3FC 800C97FC 03E00008 */ jr $ra -/* 0CA400 800C9800 00000000 */ nop - -/* 0CA404 800C9804 00000000 */ nop -/* 0CA408 800C9808 00000000 */ nop -/* 0CA40C 800C980C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA410/alSynSetFXMix.s b/lib/asm/non_matchings/unknown_0CA410/alSynSetFXMix.s deleted file mode 100644 index 0f48ec66..00000000 --- a/lib/asm/non_matchings/unknown_0CA410/alSynSetFXMix.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel alSynSetFXMix -/* 0CA410 800C9810 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CA414 800C9814 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA418 800C9818 AFA40018 */ sw $a0, 0x18($sp) -/* 0CA41C 800C981C AFA60020 */ sw $a2, 0x20($sp) -/* 0CA420 800C9820 8CAE0008 */ lw $t6, 8($a1) -/* 0CA424 800C9824 51C0001C */ beql $t6, $zero, .L800C9898 -/* 0CA428 800C9828 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA42C 800C982C 0C01959A */ jal __allocParam -/* 0CA430 800C9830 AFA5001C */ sw $a1, 0x1c($sp) -/* 0CA434 800C9834 8FA7001C */ lw $a3, 0x1c($sp) -/* 0CA438 800C9838 10400016 */ beqz $v0, .L800C9894 -/* 0CA43C 800C983C 00403025 */ move $a2, $v0 -/* 0CA440 800C9840 8FAF0018 */ lw $t7, 0x18($sp) -/* 0CA444 800C9844 8CF90008 */ lw $t9, 8($a3) -/* 0CA448 800C9848 240A0010 */ li $t2, 16 -/* 0CA44C 800C984C 8DF8001C */ lw $t8, 0x1c($t7) -/* 0CA450 800C9850 8F2800D8 */ lw $t0, 0xd8($t9) -/* 0CA454 800C9854 A44A0008 */ sh $t2, 8($v0) -/* 0CA458 800C9858 03084821 */ addu $t1, $t8, $t0 -/* 0CA45C 800C985C AC490004 */ sw $t1, 4($v0) -/* 0CA460 800C9860 93A30023 */ lbu $v1, 0x23($sp) -/* 0CA464 800C9864 04610003 */ bgez $v1, .L800C9874 -/* 0CA468 800C9868 00035823 */ negu $t3, $v1 -/* 0CA46C 800C986C 10000002 */ b .L800C9878 -/* 0CA470 800C9870 AC4B000C */ sw $t3, 0xc($v0) -.L800C9874: -/* 0CA474 800C9874 AC43000C */ sw $v1, 0xc($v0) -.L800C9878: -/* 0CA478 800C9878 ACC00000 */ sw $zero, ($a2) -/* 0CA47C 800C987C 8CEC0008 */ lw $t4, 8($a3) -/* 0CA480 800C9880 24050003 */ li $a1, 3 -/* 0CA484 800C9884 8D84000C */ lw $a0, 0xc($t4) -/* 0CA488 800C9888 8C990008 */ lw $t9, 8($a0) -/* 0CA48C 800C988C 0320F809 */ jalr $t9 -/* 0CA490 800C9890 00000000 */ nop -.L800C9894: -/* 0CA494 800C9894 8FBF0014 */ lw $ra, 0x14($sp) -.L800C9898: -/* 0CA498 800C9898 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CA49C 800C989C 03E00008 */ jr $ra -/* 0CA4A0 800C98A0 00000000 */ nop - -/* 0CA4A4 800C98A4 00000000 */ nop -/* 0CA4A8 800C98A8 00000000 */ nop -/* 0CA4AC 800C98AC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA4B0/alSynStopVoice.s b/lib/asm/non_matchings/unknown_0CA4B0/alSynStopVoice.s deleted file mode 100644 index 25ba8c4e..00000000 --- a/lib/asm/non_matchings/unknown_0CA4B0/alSynStopVoice.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel alSynStopVoice -/* 0CA4B0 800C98B0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CA4B4 800C98B4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA4B8 800C98B8 AFA40018 */ sw $a0, 0x18($sp) -/* 0CA4BC 800C98BC 8CAE0008 */ lw $t6, 8($a1) -/* 0CA4C0 800C98C0 51C00016 */ beql $t6, $zero, .L800C991C -/* 0CA4C4 800C98C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA4C8 800C98C8 0C01959A */ jal __allocParam -/* 0CA4CC 800C98CC AFA5001C */ sw $a1, 0x1c($sp) -/* 0CA4D0 800C98D0 8FA7001C */ lw $a3, 0x1c($sp) -/* 0CA4D4 800C98D4 10400010 */ beqz $v0, .L800C9918 -/* 0CA4D8 800C98D8 00403025 */ move $a2, $v0 -/* 0CA4DC 800C98DC 8FAF0018 */ lw $t7, 0x18($sp) -/* 0CA4E0 800C98E0 8CF90008 */ lw $t9, 8($a3) -/* 0CA4E4 800C98E4 240A000F */ li $t2, 15 -/* 0CA4E8 800C98E8 8DF8001C */ lw $t8, 0x1c($t7) -/* 0CA4EC 800C98EC 8F2800D8 */ lw $t0, 0xd8($t9) -/* 0CA4F0 800C98F0 A44A0008 */ sh $t2, 8($v0) -/* 0CA4F4 800C98F4 AC400000 */ sw $zero, ($v0) -/* 0CA4F8 800C98F8 03084821 */ addu $t1, $t8, $t0 -/* 0CA4FC 800C98FC AC490004 */ sw $t1, 4($v0) -/* 0CA500 800C9900 8CEB0008 */ lw $t3, 8($a3) -/* 0CA504 800C9904 24050003 */ li $a1, 3 -/* 0CA508 800C9908 8D64000C */ lw $a0, 0xc($t3) -/* 0CA50C 800C990C 8C990008 */ lw $t9, 8($a0) -/* 0CA510 800C9910 0320F809 */ jalr $t9 -/* 0CA514 800C9914 00000000 */ nop -.L800C9918: -/* 0CA518 800C9918 8FBF0014 */ lw $ra, 0x14($sp) -.L800C991C: -/* 0CA51C 800C991C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CA520 800C9920 03E00008 */ jr $ra -/* 0CA524 800C9924 00000000 */ nop - -/* 0CA528 800C9928 00000000 */ nop -/* 0CA52C 800C992C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA530/alCents2Ratio.s b/lib/asm/non_matchings/unknown_0CA530/alCents2Ratio.s deleted file mode 100644 index c37de39c..00000000 --- a/lib/asm/non_matchings/unknown_0CA530/alCents2Ratio.s +++ /dev/null @@ -1,34 +0,0 @@ -.late_rodata -glabel D_800E94C0 -.float 1.0005778075 -glabel D_800E94C4 -.float 0.999422551 - -.text -glabel alCents2Ratio -/* 0CA5E0 800C99E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CA5E4 800C99E4 44811000 */ mtc1 $at, $f2 -/* 0CA5E8 800C99E8 04800004 */ bltz $a0, .L800C99FC -/* 0CA5EC 800C99EC 3C01800F */ lui $at, %hi(D_800E94C4) # $at, 0x800f -/* 0CA5F0 800C99F0 3C01800F */ lui $at, %hi(D_800E94C0) # $at, 0x800f -/* 0CA5F4 800C99F4 10000003 */ b .L800C9A04 -/* 0CA5F8 800C99F8 C42094C0 */ lwc1 $f0, %lo(D_800E94C0)($at) -.L800C99FC: -/* 0CA5FC 800C99FC C42094C4 */ lwc1 $f0, %lo(D_800E94C4)($at) -/* 0CA600 800C9A00 00042023 */ negu $a0, $a0 -.L800C9A04: -/* 0CA604 800C9A04 10800008 */ beqz $a0, .L800C9A28 -.L800C9A08: -/* 0CA608 800C9A08 308E0001 */ andi $t6, $a0, 1 -/* 0CA60C 800C9A0C 11C00003 */ beqz $t6, .L800C9A1C -/* 0CA610 800C9A10 00047843 */ sra $t7, $a0, 1 -/* 0CA614 800C9A14 46001082 */ mul.s $f2, $f2, $f0 -/* 0CA618 800C9A18 00000000 */ nop -.L800C9A1C: -/* 0CA61C 800C9A1C 46000002 */ mul.s $f0, $f0, $f0 -/* 0CA620 800C9A20 15E0FFF9 */ bnez $t7, .L800C9A08 -/* 0CA624 800C9A24 01E02025 */ move $a0, $t7 -.L800C9A28: -/* 0CA628 800C9A28 03E00008 */ jr $ra -/* 0CA62C 800C9A2C 46001006 */ mov.s $f0, $f2 - diff --git a/lib/asm/non_matchings/unknown_0CA530/alSynFreeVoice.s b/lib/asm/non_matchings/unknown_0CA530/alSynFreeVoice.s deleted file mode 100644 index a2abd84c..00000000 --- a/lib/asm/non_matchings/unknown_0CA530/alSynFreeVoice.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel alSynFreeVoice -/* 0CA530 800C9930 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CA534 800C9934 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CA538 800C9938 8CA60008 */ lw $a2, 8($a1) -/* 0CA53C 800C993C 00804025 */ move $t0, $a0 -/* 0CA540 800C9940 00A03825 */ move $a3, $a1 -/* 0CA544 800C9944 50C00023 */ beql $a2, $zero, .L800C99D4 -/* 0CA548 800C9948 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CA54C 800C994C 8CCE00D8 */ lw $t6, 0xd8($a2) -/* 0CA550 800C9950 51C0001A */ beql $t6, $zero, .L800C99BC -/* 0CA554 800C9954 01002025 */ move $a0, $t0 -/* 0CA558 800C9958 AFA5001C */ sw $a1, 0x1c($sp) -/* 0CA55C 800C995C 0C01959A */ jal __allocParam -/* 0CA560 800C9960 AFA40018 */ sw $a0, 0x18($sp) -/* 0CA564 800C9964 8FA7001C */ lw $a3, 0x1c($sp) -/* 0CA568 800C9968 8FA80018 */ lw $t0, 0x18($sp) -/* 0CA56C 800C996C 10400018 */ beqz $v0, .L800C99D0 -/* 0CA570 800C9970 00403025 */ move $a2, $v0 -/* 0CA574 800C9974 8CF80008 */ lw $t8, 8($a3) -/* 0CA578 800C9978 8D0F001C */ lw $t7, 0x1c($t0) -/* 0CA57C 800C997C 24050003 */ li $a1, 3 -/* 0CA580 800C9980 8F1900D8 */ lw $t9, 0xd8($t8) -/* 0CA584 800C9984 A4400008 */ sh $zero, 8($v0) -/* 0CA588 800C9988 01F94821 */ addu $t1, $t7, $t9 -/* 0CA58C 800C998C AC490004 */ sw $t1, 4($v0) -/* 0CA590 800C9990 8CEA0008 */ lw $t2, 8($a3) -/* 0CA594 800C9994 AC4A000C */ sw $t2, 0xc($v0) -/* 0CA598 800C9998 8CEB0008 */ lw $t3, 8($a3) -/* 0CA59C 800C999C 8D64000C */ lw $a0, 0xc($t3) -/* 0CA5A0 800C99A0 AFA7001C */ sw $a3, 0x1c($sp) -/* 0CA5A4 800C99A4 8C990008 */ lw $t9, 8($a0) -/* 0CA5A8 800C99A8 0320F809 */ jalr $t9 -/* 0CA5AC 800C99AC 00000000 */ nop -/* 0CA5B0 800C99B0 10000006 */ b .L800C99CC -/* 0CA5B4 800C99B4 8FA7001C */ lw $a3, 0x1c($sp) -/* 0CA5B8 800C99B8 01002025 */ move $a0, $t0 -.L800C99BC: -/* 0CA5BC 800C99BC 00C02825 */ move $a1, $a2 -/* 0CA5C0 800C99C0 0C0195C7 */ jal __freePVoices -/* 0CA5C4 800C99C4 AFA7001C */ sw $a3, 0x1c($sp) -/* 0CA5C8 800C99C8 8FA7001C */ lw $a3, 0x1c($sp) -.L800C99CC: -/* 0CA5CC 800C99CC ACE00008 */ sw $zero, 8($a3) -.L800C99D0: -/* 0CA5D0 800C99D0 8FBF0014 */ lw $ra, 0x14($sp) -.L800C99D4: -/* 0CA5D4 800C99D4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CA5D8 800C99D8 03E00008 */ jr $ra -/* 0CA5DC 800C99DC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA6E0/alSynSetPriority.s b/lib/asm/non_matchings/unknown_0CA6E0/alSynSetPriority.s deleted file mode 100644 index b906121c..00000000 --- a/lib/asm/non_matchings/unknown_0CA6E0/alSynSetPriority.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel alSynSetPriority -/* 0CA6E0 800C9AE0 AFA40000 */ sw $a0, ($sp) -/* 0CA6E4 800C9AE4 AFA60008 */ sw $a2, 8($sp) -/* 0CA6E8 800C9AE8 03E00008 */ jr $ra -/* 0CA6EC 800C9AEC A4A60016 */ sh $a2, 0x16($a1) - -/* 0CA6F0 800C9AF0 00000000 */ nop -/* 0CA6F4 800C9AF4 00000000 */ nop -/* 0CA6F8 800C9AF8 00000000 */ nop -/* 0CA6FC 800C9AFC 00000000 */ nop -/* 0CA700 800C9B00 00000000 */ nop -/* 0CA704 800C9B04 00000000 */ nop -/* 0CA708 800C9B08 00000000 */ nop -/* 0CA70C 800C9B0C 00000000 */ nop -/* 0CA710 800C9B10 00000000 */ nop -/* 0CA714 800C9B14 00000000 */ nop -/* 0CA718 800C9B18 00000000 */ nop -/* 0CA71C 800C9B1C 00000000 */ nop -/* 0CA720 800C9B20 00000000 */ nop -/* 0CA724 800C9B24 00000000 */ nop -/* 0CA728 800C9B28 00000000 */ nop -/* 0CA72C 800C9B2C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s b/lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s index ea19d168..f9bac63c 100644 --- a/lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s +++ b/lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s @@ -1,3 +1,22 @@ +/* Hacky workaround. This is required because after alSynSetPriority, the linker seems to have added a bunch of nops. */ +glabel __NOPS_NEEDED +/* 0CA6F0 800C9AF0 00000000 */ nop +/* 0CA6F4 800C9AF4 00000000 */ nop +/* 0CA6F8 800C9AF8 00000000 */ nop +/* 0CA6FC 800C9AFC 00000000 */ nop +/* 0CA700 800C9B00 00000000 */ nop +/* 0CA704 800C9B04 00000000 */ nop +/* 0CA708 800C9B08 00000000 */ nop +/* 0CA70C 800C9B0C 00000000 */ nop +/* 0CA710 800C9B10 00000000 */ nop +/* 0CA714 800C9B14 00000000 */ nop +/* 0CA718 800C9B18 00000000 */ nop +/* 0CA71C 800C9B1C 00000000 */ nop +/* 0CA720 800C9B20 00000000 */ nop +/* 0CA724 800C9B24 00000000 */ nop +/* 0CA728 800C9B28 00000000 */ nop +/* 0CA72C 800C9B2C 00000000 */ nop + glabel __d_to_ll /* 0CA730 800C9B30 46206109 */ trunc.l.d $f4, $f12 /* 0CA734 800C9B34 44222000 */ dmfc1 $v0, $f4 diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alAdpcmPull.s b/lib/asm/non_matchings/unknown_0CA9A0/alAdpcmPull.s deleted file mode 100644 index a2642779..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alAdpcmPull.s +++ /dev/null @@ -1,323 +0,0 @@ -glabel alAdpcmPull -/* 0CC7EC 800CBBEC 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 0CC7F0 800CBBF0 AFB70044 */ sw $s7, 0x44($sp) -/* 0CC7F4 800CBBF4 AFA700BC */ sw $a3, 0xbc($sp) -/* 0CC7F8 800CBBF8 00A03825 */ move $a3, $a1 -/* 0CC7FC 800CBBFC 0080B825 */ move $s7, $a0 -/* 0CC800 800CBC00 AFBF004C */ sw $ra, 0x4c($sp) -/* 0CC804 800CBC04 AFBE0048 */ sw $fp, 0x48($sp) -/* 0CC808 800CBC08 AFB60040 */ sw $s6, 0x40($sp) -/* 0CC80C 800CBC0C AFB5003C */ sw $s5, 0x3c($sp) -/* 0CC810 800CBC10 AFB40038 */ sw $s4, 0x38($sp) -/* 0CC814 800CBC14 AFB30034 */ sw $s3, 0x34($sp) -/* 0CC818 800CBC18 AFB20030 */ sw $s2, 0x30($sp) -/* 0CC81C 800CBC1C AFB1002C */ sw $s1, 0x2c($sp) -/* 0CC820 800CBC20 AFB00028 */ sw $s0, 0x28($sp) -/* 0CC824 800CBC24 AFA500B4 */ sw $a1, 0xb4($sp) -/* 0CC828 800CBC28 00C04025 */ move $t0, $a2 -/* 0CC82C 800CBC2C 14C00003 */ bnez $a2, .L800CBC3C -/* 0CC830 800CBC30 00006825 */ move $t5, $zero -/* 0CC834 800CBC34 10000109 */ b .L800CC05C -/* 0CC838 800CBC38 8FA200C0 */ lw $v0, 0xc0($sp) -.L800CBC3C: -/* 0CC83C 800CBC3C 8EEE002C */ lw $t6, 0x2c($s7) -/* 0CC840 800CBC40 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0CC844 800CBC44 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CC848 800CBC48 8FA500C0 */ lw $a1, 0xc0($sp) -/* 0CC84C 800CBC4C 01C17824 */ and $t7, $t6, $at -/* 0CC850 800CBC50 3C010B00 */ lui $at, 0xb00 -/* 0CC854 800CBC54 01E1C025 */ or $t8, $t7, $at -/* 0CC858 800CBC58 ACB80000 */ sw $t8, ($a1) -/* 0CC85C 800CBC5C 8EF90028 */ lw $t9, 0x28($s7) -/* 0CC860 800CBC60 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 0CC864 800CBC64 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CC868 800CBC68 8F2E0010 */ lw $t6, 0x10($t9) -/* 0CC86C 800CBC6C 24AA0008 */ addiu $t2, $a1, 8 -/* 0CC870 800CBC70 00003025 */ move $a2, $zero -/* 0CC874 800CBC74 25CF0008 */ addiu $t7, $t6, 8 -/* 0CC878 800CBC78 01E1C024 */ and $t8, $t7, $at -/* 0CC87C 800CBC7C ACB80004 */ sw $t8, 4($a1) -/* 0CC880 800CBC80 8EE30038 */ lw $v1, 0x38($s7) -/* 0CC884 800CBC84 8EE40020 */ lw $a0, 0x20($s7) -/* 0CC888 800CBC88 01002825 */ move $a1, $t0 -/* 0CC88C 800CBC8C 0068C821 */ addu $t9, $v1, $t0 -/* 0CC890 800CBC90 0099482B */ sltu $t1, $a0, $t9 -/* 0CC894 800CBC94 11200004 */ beqz $t1, .L800CBCA8 -/* 0CC898 800CBC98 240F0010 */ li $t7, 16 -/* 0CC89C 800CBC9C 8EE90024 */ lw $t1, 0x24($s7) -/* 0CC8A0 800CBCA0 0009702B */ sltu $t6, $zero, $t1 -/* 0CC8A4 800CBCA4 01C04825 */ move $t1, $t6 -.L800CBCA8: -/* 0CC8A8 800CBCA8 11200003 */ beqz $t1, .L800CBCB8 -/* 0CC8AC 800CBCAC 24010009 */ li $at, 9 -/* 0CC8B0 800CBCB0 10000001 */ b .L800CBCB8 -/* 0CC8B4 800CBCB4 00832823 */ subu $a1, $a0, $v1 -.L800CBCB8: -/* 0CC8B8 800CBCB8 8EE3003C */ lw $v1, 0x3c($s7) -/* 0CC8BC 800CBCBC 01408025 */ move $s0, $t2 -/* 0CC8C0 800CBCC0 02E09025 */ move $s2, $s7 -/* 0CC8C4 800CBCC4 10600003 */ beqz $v1, .L800CBCD4 -/* 0CC8C8 800CBCC8 00009825 */ move $s3, $zero -/* 0CC8CC 800CBCCC 10000001 */ b .L800CBCD4 -/* 0CC8D0 800CBCD0 01E33023 */ subu $a2, $t7, $v1 -.L800CBCD4: -/* 0CC8D4 800CBCD4 00A62023 */ subu $a0, $a1, $a2 -/* 0CC8D8 800CBCD8 04810002 */ bgez $a0, .L800CBCE4 -/* 0CC8DC 800CBCDC 00000000 */ nop -/* 0CC8E0 800CBCE0 00002025 */ move $a0, $zero -.L800CBCE4: -/* 0CC8E4 800CBCE4 11200081 */ beqz $t1, .L800CBEEC -/* 0CC8E8 800CBCE8 249E000F */ addiu $fp, $a0, 0xf -/* 0CC8EC 800CBCEC 249E000F */ addiu $fp, $a0, 0xf -/* 0CC8F0 800CBCF0 001EC103 */ sra $t8, $fp, 4 -/* 0CC8F4 800CBCF4 84F50000 */ lh $s5, ($a3) -/* 0CC8F8 800CBCF8 8EF40040 */ lw $s4, 0x40($s7) -/* 0CC8FC 800CBCFC 001848C0 */ sll $t1, $t8, 3 -/* 0CC900 800CBD00 01384821 */ addu $t1, $t1, $t8 -/* 0CC904 800CBD04 01208825 */ move $s1, $t1 -/* 0CC908 800CBD08 AFA9005C */ sw $t1, 0x5c($sp) -/* 0CC90C 800CBD0C AFA800B8 */ sw $t0, 0xb8($sp) -/* 0CC910 800CBD10 AFA700B4 */ sw $a3, 0xb4($sp) -/* 0CC914 800CBD14 AFA5008C */ sw $a1, 0x8c($sp) -/* 0CC918 800CBD18 0300F025 */ move $fp, $t8 -/* 0CC91C 800CBD1C 0C032EB0 */ jal func_800CBAC0 -/* 0CC920 800CBD20 0080B025 */ move $s6, $a0 -/* 0CC924 800CBD24 8EE3003C */ lw $v1, 0x3c($s7) -/* 0CC928 800CBD28 8FA5008C */ lw $a1, 0x8c($sp) -/* 0CC92C 800CBD2C 8FA700B4 */ lw $a3, 0xb4($sp) -/* 0CC930 800CBD30 8FA800B8 */ lw $t0, 0xb8($sp) -/* 0CC934 800CBD34 8FA9005C */ lw $t1, 0x5c($sp) -/* 0CC938 800CBD38 10600006 */ beqz $v1, .L800CBD54 -/* 0CC93C 800CBD3C 00405025 */ move $t2, $v0 -/* 0CC940 800CBD40 84F90000 */ lh $t9, ($a3) -/* 0CC944 800CBD44 00037040 */ sll $t6, $v1, 1 -/* 0CC948 800CBD48 032E7821 */ addu $t7, $t9, $t6 -/* 0CC94C 800CBD4C 10000004 */ b .L800CBD60 -/* 0CC950 800CBD50 A4EF0000 */ sh $t7, ($a3) -.L800CBD54: -/* 0CC954 800CBD54 84F80000 */ lh $t8, ($a3) -/* 0CC958 800CBD58 27190020 */ addiu $t9, $t8, 0x20 -/* 0CC95C 800CBD5C A4F90000 */ sh $t9, ($a3) -.L800CBD60: -/* 0CC960 800CBD60 8EE2001C */ lw $v0, 0x1c($s7) -/* 0CC964 800CBD64 8EEF0028 */ lw $t7, 0x28($s7) -/* 0CC968 800CBD68 00A8082A */ slt $at, $a1, $t0 -/* 0CC96C 800CBD6C 304E000F */ andi $t6, $v0, 0xf -/* 0CC970 800CBD70 AEEE003C */ sw $t6, 0x3c($s7) -/* 0CC974 800CBD74 8DF80000 */ lw $t8, ($t7) -/* 0CC978 800CBD78 0002C902 */ srl $t9, $v0, 4 -/* 0CC97C 800CBD7C 001970C0 */ sll $t6, $t9, 3 -/* 0CC980 800CBD80 01D97021 */ addu $t6, $t6, $t9 -/* 0CC984 800CBD84 030E7821 */ addu $t7, $t8, $t6 -/* 0CC988 800CBD88 25F90009 */ addiu $t9, $t7, 9 -/* 0CC98C 800CBD8C AEF90044 */ sw $t9, 0x44($s7) -/* 0CC990 800CBD90 AEE20038 */ sw $v0, 0x38($s7) -/* 0CC994 800CBD94 10200049 */ beqz $at, .L800CBEBC -/* 0CC998 800CBD98 84E60000 */ lh $a2, ($a3) -/* 0CC99C 800CBD9C 00051840 */ sll $v1, $a1, 1 -.L800CBDA0: -/* 0CC9A0 800CBDA0 27D80001 */ addiu $t8, $fp, 1 -/* 0CC9A4 800CBDA4 00187140 */ sll $t6, $t8, 5 -/* 0CC9A8 800CBDA8 8EE20024 */ lw $v0, 0x24($s7) -/* 0CC9AC 800CBDAC 01C63821 */ addu $a3, $t6, $a2 -/* 0CC9B0 800CBDB0 2401FFE0 */ li $at, -32 -/* 0CC9B4 800CBDB4 00E17824 */ and $t7, $a3, $at -/* 0CC9B8 800CBDB8 2401FFFF */ li $at, -1 -/* 0CC9BC 800CBDBC 01054023 */ subu $t0, $t0, $a1 -/* 0CC9C0 800CBDC0 01E03825 */ move $a3, $t7 -/* 0CC9C4 800CBDC4 10410004 */ beq $v0, $at, .L800CBDD8 -/* 0CC9C8 800CBDC8 00C33021 */ addu $a2, $a2, $v1 -/* 0CC9CC 800CBDCC 10400002 */ beqz $v0, .L800CBDD8 -/* 0CC9D0 800CBDD0 2459FFFF */ addiu $t9, $v0, -1 -/* 0CC9D4 800CBDD4 AEF90024 */ sw $t9, 0x24($s7) -.L800CBDD8: -/* 0CC9D8 800CBDD8 8EF80020 */ lw $t8, 0x20($s7) -/* 0CC9DC 800CBDDC 8EEE001C */ lw $t6, 0x1c($s7) -/* 0CC9E0 800CBDE0 01408025 */ move $s0, $t2 -/* 0CC9E4 800CBDE4 02E09025 */ move $s2, $s7 -/* 0CC9E8 800CBDE8 030E1023 */ subu $v0, $t8, $t6 -/* 0CC9EC 800CBDEC 0102082B */ sltu $at, $t0, $v0 -/* 0CC9F0 800CBDF0 10200003 */ beqz $at, .L800CBE00 -/* 0CC9F4 800CBDF4 0007AC00 */ sll $s5, $a3, 0x10 -/* 0CC9F8 800CBDF8 10000002 */ b .L800CBE04 -/* 0CC9FC 800CBDFC 01002825 */ move $a1, $t0 -.L800CBE00: -/* 0CCA00 800CBE00 00402825 */ move $a1, $v0 -.L800CBE04: -/* 0CCA04 800CBE04 8EEF003C */ lw $t7, 0x3c($s7) -/* 0CCA08 800CBE08 0015C403 */ sra $t8, $s5, 0x10 -/* 0CCA0C 800CBE0C 0300A825 */ move $s5, $t8 -/* 0CCA10 800CBE10 00AF2021 */ addu $a0, $a1, $t7 -/* 0CCA14 800CBE14 2484FFF0 */ addiu $a0, $a0, -0x10 -/* 0CCA18 800CBE18 04810002 */ bgez $a0, .L800CBE24 -/* 0CCA1C 800CBE1C 00009825 */ move $s3, $zero -/* 0CCA20 800CBE20 00002025 */ move $a0, $zero -.L800CBE24: -/* 0CCA24 800CBE24 8EF40040 */ lw $s4, 0x40($s7) -/* 0CCA28 800CBE28 249E000F */ addiu $fp, $a0, 0xf -/* 0CCA2C 800CBE2C 001EC903 */ sra $t9, $fp, 4 -/* 0CCA30 800CBE30 001948C0 */ sll $t1, $t9, 3 -/* 0CCA34 800CBE34 01394821 */ addu $t1, $t1, $t9 -/* 0CCA38 800CBE38 368E0002 */ ori $t6, $s4, 2 -/* 0CCA3C 800CBE3C 01C0A025 */ move $s4, $t6 -/* 0CCA40 800CBE40 01208825 */ move $s1, $t1 -/* 0CCA44 800CBE44 AFA9005C */ sw $t1, 0x5c($sp) -/* 0CCA48 800CBE48 0320F025 */ move $fp, $t9 -/* 0CCA4C 800CBE4C AFA800B8 */ sw $t0, 0xb8($sp) -/* 0CCA50 800CBE50 AFA70088 */ sw $a3, 0x88($sp) -/* 0CCA54 800CBE54 AFA60080 */ sw $a2, 0x80($sp) -/* 0CCA58 800CBE58 AFA5008C */ sw $a1, 0x8c($sp) -/* 0CCA5C 800CBE5C 0C032EB0 */ jal func_800CBAC0 -/* 0CCA60 800CBE60 0080B025 */ move $s6, $a0 -/* 0CCA64 800CBE64 8EEF003C */ lw $t7, 0x3c($s7) -/* 0CCA68 800CBE68 8FA70088 */ lw $a3, 0x88($sp) -/* 0CCA6C 800CBE6C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0CCA70 800CBE70 000FC840 */ sll $t9, $t7, 1 -/* 0CCA74 800CBE74 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CCA78 800CBE78 0327C021 */ addu $t8, $t9, $a3 -/* 0CCA7C 800CBE7C 03017024 */ and $t6, $t8, $at -/* 0CCA80 800CBE80 8FA5008C */ lw $a1, 0x8c($sp) -/* 0CCA84 800CBE84 3C010A00 */ lui $at, 0xa00 -/* 0CCA88 800CBE88 8FA60080 */ lw $a2, 0x80($sp) -/* 0CCA8C 800CBE8C 01C17825 */ or $t7, $t6, $at -/* 0CCA90 800CBE90 8FA800B8 */ lw $t0, 0xb8($sp) -/* 0CCA94 800CBE94 8FA9005C */ lw $t1, 0x5c($sp) -/* 0CCA98 800CBE98 00051840 */ sll $v1, $a1, 1 -/* 0CCA9C 800CBE9C 306EFFFF */ andi $t6, $v1, 0xffff -/* 0CCAA0 800CBEA0 AC4F0000 */ sw $t7, ($v0) -/* 0CCAA4 800CBEA4 0006C400 */ sll $t8, $a2, 0x10 -/* 0CCAA8 800CBEA8 030E7825 */ or $t7, $t8, $t6 -/* 0CCAAC 800CBEAC 00A8082A */ slt $at, $a1, $t0 -/* 0CCAB0 800CBEB0 AC4F0004 */ sw $t7, 4($v0) -/* 0CCAB4 800CBEB4 1420FFBA */ bnez $at, .L800CBDA0 -/* 0CCAB8 800CBEB8 244A0008 */ addiu $t2, $v0, 8 -.L800CBEBC: -/* 0CCABC 800CBEBC 8EF9003C */ lw $t9, 0x3c($s7) -/* 0CCAC0 800CBEC0 8EEF0038 */ lw $t7, 0x38($s7) -/* 0CCAC4 800CBEC4 01401025 */ move $v0, $t2 -/* 0CCAC8 800CBEC8 0328C021 */ addu $t8, $t9, $t0 -/* 0CCACC 800CBECC 330E000F */ andi $t6, $t8, 0xf -/* 0CCAD0 800CBED0 8EF80044 */ lw $t8, 0x44($s7) -/* 0CCAD4 800CBED4 AEEE003C */ sw $t6, 0x3c($s7) -/* 0CCAD8 800CBED8 01E8C821 */ addu $t9, $t7, $t0 -/* 0CCADC 800CBEDC 03097021 */ addu $t6, $t8, $t1 -/* 0CCAE0 800CBEE0 AEF90038 */ sw $t9, 0x38($s7) -/* 0CCAE4 800CBEE4 1000005D */ b .L800CC05C -/* 0CCAE8 800CBEE8 AEEE0044 */ sw $t6, 0x44($s7) -.L800CBEEC: -/* 0CCAEC 800CBEEC 8EE20028 */ lw $v0, 0x28($s7) -/* 0CCAF0 800CBEF0 001E7903 */ sra $t7, $fp, 4 -/* 0CCAF4 800CBEF4 8EF90044 */ lw $t9, 0x44($s7) -/* 0CCAF8 800CBEF8 000F48C0 */ sll $t1, $t7, 3 -/* 0CCAFC 800CBEFC 8C580000 */ lw $t8, ($v0) -/* 0CCB00 800CBF00 012F4821 */ addu $t1, $t1, $t7 -/* 0CCB04 800CBF04 01E0F025 */ move $fp, $t7 -/* 0CCB08 800CBF08 8C4F0004 */ lw $t7, 4($v0) -/* 0CCB0C 800CBF0C 03295821 */ addu $t3, $t9, $t1 -/* 0CCB10 800CBF10 01787023 */ subu $t6, $t3, $t8 -/* 0CCB14 800CBF14 01CF1823 */ subu $v1, $t6, $t7 -/* 0CCB18 800CBF18 04610002 */ bgez $v1, .L800CBF24 -/* 0CCB1C 800CBF1C 001E2900 */ sll $a1, $fp, 4 -/* 0CCB20 800CBF20 00001825 */ move $v1, $zero -.L800CBF24: -/* 0CCB24 800CBF24 0061001A */ div $zero, $v1, $at -/* 0CCB28 800CBF28 00001012 */ mflo $v0 -/* 0CCB2C 800CBF2C 00022100 */ sll $a0, $v0, 4 -/* 0CCB30 800CBF30 00A66021 */ addu $t4, $a1, $a2 -/* 0CCB34 800CBF34 0184082A */ slt $at, $t4, $a0 -/* 0CCB38 800CBF38 10200002 */ beqz $at, .L800CBF44 -/* 0CCB3C 800CBF3C 01408025 */ move $s0, $t2 -/* 0CCB40 800CBF40 01802025 */ move $a0, $t4 -.L800CBF44: -/* 0CCB44 800CBF44 3098000F */ andi $t8, $a0, 0xf -/* 0CCB48 800CBF48 00987023 */ subu $t6, $a0, $t8 -/* 0CCB4C 800CBF4C 01C8082A */ slt $at, $t6, $t0 -/* 0CCB50 800CBF50 1020002B */ beqz $at, .L800CC000 -/* 0CCB54 800CBF54 01233023 */ subu $a2, $t1, $v1 -/* 0CCB58 800CBF58 84F50000 */ lh $s5, ($a3) -/* 0CCB5C 800CBF5C 8EF40040 */ lw $s4, 0x40($s7) -/* 0CCB60 800CBF60 240D0001 */ li $t5, 1 -/* 0CCB64 800CBF64 AFAD007C */ sw $t5, 0x7c($sp) -/* 0CCB68 800CBF68 AFAC0050 */ sw $t4, 0x50($sp) -/* 0CCB6C 800CBF6C AFA9005C */ sw $t1, 0x5c($sp) -/* 0CCB70 800CBF70 AFA800B8 */ sw $t0, 0xb8($sp) -/* 0CCB74 800CBF74 AFA700B4 */ sw $a3, 0xb4($sp) -/* 0CCB78 800CBF78 AFA40090 */ sw $a0, 0x90($sp) -/* 0CCB7C 800CBF7C 02E09025 */ move $s2, $s7 -/* 0CCB80 800CBF80 00A4B023 */ subu $s6, $a1, $a0 -/* 0CCB84 800CBF84 00C08825 */ move $s1, $a2 -/* 0CCB88 800CBF88 0C032EB0 */ jal func_800CBAC0 -/* 0CCB8C 800CBF8C 00009825 */ move $s3, $zero -/* 0CCB90 800CBF90 8EE3003C */ lw $v1, 0x3c($s7) -/* 0CCB94 800CBF94 8FA40090 */ lw $a0, 0x90($sp) -/* 0CCB98 800CBF98 8FA700B4 */ lw $a3, 0xb4($sp) -/* 0CCB9C 800CBF9C 8FA800B8 */ lw $t0, 0xb8($sp) -/* 0CCBA0 800CBFA0 8FA9005C */ lw $t1, 0x5c($sp) -/* 0CCBA4 800CBFA4 8FAC0050 */ lw $t4, 0x50($sp) -/* 0CCBA8 800CBFA8 8FAD007C */ lw $t5, 0x7c($sp) -/* 0CCBAC 800CBFAC 10600006 */ beqz $v1, .L800CBFC8 -/* 0CCBB0 800CBFB0 00405025 */ move $t2, $v0 -/* 0CCBB4 800CBFB4 84EF0000 */ lh $t7, ($a3) -/* 0CCBB8 800CBFB8 0003C840 */ sll $t9, $v1, 1 -/* 0CCBBC 800CBFBC 01F9C021 */ addu $t8, $t7, $t9 -/* 0CCBC0 800CBFC0 10000004 */ b .L800CBFD4 -/* 0CCBC4 800CBFC4 A4F80000 */ sh $t8, ($a3) -.L800CBFC8: -/* 0CCBC8 800CBFC8 84EE0000 */ lh $t6, ($a3) -/* 0CCBCC 800CBFCC 25CF0020 */ addiu $t7, $t6, 0x20 -/* 0CCBD0 800CBFD0 A4EF0000 */ sh $t7, ($a3) -.L800CBFD4: -/* 0CCBD4 800CBFD4 8EF9003C */ lw $t9, 0x3c($s7) -/* 0CCBD8 800CBFD8 8EEF0038 */ lw $t7, 0x38($s7) -/* 0CCBDC 800CBFDC 0328C021 */ addu $t8, $t9, $t0 -/* 0CCBE0 800CBFE0 330E000F */ andi $t6, $t8, 0xf -/* 0CCBE4 800CBFE4 8EF80044 */ lw $t8, 0x44($s7) -/* 0CCBE8 800CBFE8 AEEE003C */ sw $t6, 0x3c($s7) -/* 0CCBEC 800CBFEC 01E8C821 */ addu $t9, $t7, $t0 -/* 0CCBF0 800CBFF0 03097021 */ addu $t6, $t8, $t1 -/* 0CCBF4 800CBFF4 AEF90038 */ sw $t9, 0x38($s7) -/* 0CCBF8 800CBFF8 10000003 */ b .L800CC008 -/* 0CCBFC 800CBFFC AEEE0044 */ sw $t6, 0x44($s7) -.L800CC000: -/* 0CCC00 800CC000 AEE0003C */ sw $zero, 0x3c($s7) -/* 0CCC04 800CC004 AEEB0044 */ sw $t3, 0x44($s7) -.L800CC008: -/* 0CCC08 800CC008 10800013 */ beqz $a0, .L800CC058 -/* 0CCC0C 800CC00C 01401025 */ move $v0, $t2 -/* 0CCC10 800CC010 11A00005 */ beqz $t5, .L800CC028 -/* 0CCC14 800CC014 AEE0003C */ sw $zero, 0x3c($s7) -/* 0CCC18 800CC018 01841823 */ subu $v1, $t4, $a0 -/* 0CCC1C 800CC01C 00037840 */ sll $t7, $v1, 1 -/* 0CCC20 800CC020 10000002 */ b .L800CC02C -/* 0CCC24 800CC024 01E01825 */ move $v1, $t7 -.L800CC028: -/* 0CCC28 800CC028 00001825 */ move $v1, $zero -.L800CC02C: -/* 0CCC2C 800CC02C 84F90000 */ lh $t9, ($a3) -/* 0CCC30 800CC030 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0CCC34 800CC034 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CCC38 800CC038 0323C021 */ addu $t8, $t9, $v1 -/* 0CCC3C 800CC03C 03017024 */ and $t6, $t8, $at -/* 0CCC40 800CC040 3C010200 */ lui $at, 0x200 -/* 0CCC44 800CC044 01C17825 */ or $t7, $t6, $at -/* 0CCC48 800CC048 0004C840 */ sll $t9, $a0, 1 -/* 0CCC4C 800CC04C AC590004 */ sw $t9, 4($v0) -/* 0CCC50 800CC050 AC4F0000 */ sw $t7, ($v0) -/* 0CCC54 800CC054 254A0008 */ addiu $t2, $t2, 8 -.L800CC058: -/* 0CCC58 800CC058 01401025 */ move $v0, $t2 -.L800CC05C: -/* 0CCC5C 800CC05C 8FBF004C */ lw $ra, 0x4c($sp) -/* 0CCC60 800CC060 8FB00028 */ lw $s0, 0x28($sp) -/* 0CCC64 800CC064 8FB1002C */ lw $s1, 0x2c($sp) -/* 0CCC68 800CC068 8FB20030 */ lw $s2, 0x30($sp) -/* 0CCC6C 800CC06C 8FB30034 */ lw $s3, 0x34($sp) -/* 0CCC70 800CC070 8FB40038 */ lw $s4, 0x38($sp) -/* 0CCC74 800CC074 8FB5003C */ lw $s5, 0x3c($sp) -/* 0CCC78 800CC078 8FB60040 */ lw $s6, 0x40($sp) -/* 0CCC7C 800CC07C 8FB70044 */ lw $s7, 0x44($sp) -/* 0CCC80 800CC080 8FBE0048 */ lw $fp, 0x48($sp) -/* 0CCC84 800CC084 03E00008 */ jr $ra -/* 0CCC88 800CC088 27BD00B0 */ addiu $sp, $sp, 0xb0 - -/* 0CCC8C 800CC08C 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s b/lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s deleted file mode 100644 index cf37e638..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s +++ /dev/null @@ -1,677 +0,0 @@ -.rdata -glabel D_800E9560 -.asciz "samples >= 0" -.ascii "\0\0\0" # padding -glabel D_800E9570 -.asciz "env.c" -.ascii "\0\0" # padding -glabel D_800E9578 -.asciz "samples <= AL_MAX_RSP_SAMPLES" -.ascii "\0\0" # padding -glabel D_800E9598 -.asciz "env.c" -.ascii "\0\0" # padding - -.late_rodata -glabel jpt_800E95B0 -.word L800CA870, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA8C4, L800CA460, L800CA460, L800CA22C, L800CA7A8, L800CA828, L800CA460 - -.text -glabel alEnvmixerPull -/* 0CACD0 800CA0D0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0CACD4 800CA0D4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CACD8 800CA0D8 AFA40060 */ sw $a0, 0x60($sp) -/* 0CACDC 800CA0DC AFA50064 */ sw $a1, 0x64($sp) -/* 0CACE0 800CA0E0 AFA60068 */ sw $a2, 0x68($sp) -/* 0CACE4 800CA0E4 AFA7006C */ sw $a3, 0x6c($sp) -/* 0CACE8 800CA0E8 8FAE0070 */ lw $t6, 0x70($sp) -/* 0CACEC 800CA0EC 00000000 */ nop -/* 0CACF0 800CA0F0 AFAE005C */ sw $t6, 0x5c($sp) -/* 0CACF4 800CA0F4 8FAF0060 */ lw $t7, 0x60($sp) -/* 0CACF8 800CA0F8 00000000 */ nop -/* 0CACFC 800CA0FC AFAF0058 */ sw $t7, 0x58($sp) -/* 0CAD00 800CA100 8FB8006C */ lw $t8, 0x6c($sp) -/* 0CAD04 800CA104 00000000 */ nop -/* 0CAD08 800CA108 AFB8004C */ sw $t8, 0x4c($sp) -/* 0CAD0C 800CA10C A7A00046 */ sh $zero, 0x46($sp) -/* 0CAD10 800CA110 A7A00056 */ sh $zero, 0x56($sp) -/* 0CAD14 800CA114 8FB90058 */ lw $t9, 0x58($sp) -/* 0CAD18 800CA118 00000000 */ nop -/* 0CAD1C 800CA11C 8F28003C */ lw $t0, 0x3c($t9) -/* 0CAD20 800CA120 00000000 */ nop -/* 0CAD24 800CA124 11000229 */ beqz $t0, .L800CA9CC -/* 0CAD28 800CA128 00000000 */ nop -.L800CA12C: -/* 0CAD2C 800CA12C 8FA9004C */ lw $t1, 0x4c($sp) -/* 0CAD30 800CA130 00000000 */ nop -/* 0CAD34 800CA134 AFA90050 */ sw $t1, 0x50($sp) -/* 0CAD38 800CA138 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CAD3C 800CA13C 00000000 */ nop -/* 0CAD40 800CA140 8D4B003C */ lw $t3, 0x3c($t2) -/* 0CAD44 800CA144 00000000 */ nop -/* 0CAD48 800CA148 8D6C0004 */ lw $t4, 4($t3) -/* 0CAD4C 800CA14C 00000000 */ nop -/* 0CAD50 800CA150 AFAC004C */ sw $t4, 0x4c($sp) -/* 0CAD54 800CA154 8FAD004C */ lw $t5, 0x4c($sp) -/* 0CAD58 800CA158 8FAE0050 */ lw $t6, 0x50($sp) -/* 0CAD5C 800CA15C 00000000 */ nop -/* 0CAD60 800CA160 01AE7823 */ subu $t7, $t5, $t6 -/* 0CAD64 800CA164 AFAF0048 */ sw $t7, 0x48($sp) -/* 0CAD68 800CA168 8FB80048 */ lw $t8, 0x48($sp) -/* 0CAD6C 800CA16C 8FB90068 */ lw $t9, 0x68($sp) -/* 0CAD70 800CA170 00000000 */ nop -/* 0CAD74 800CA174 0338082A */ slt $at, $t9, $t8 -/* 0CAD78 800CA178 10200003 */ beqz $at, .L800CA188 -/* 0CAD7C 800CA17C 00000000 */ nop -/* 0CAD80 800CA180 10000212 */ b .L800CA9CC -/* 0CAD84 800CA184 00000000 */ nop -.L800CA188: -/* 0CAD88 800CA188 8FA80048 */ lw $t0, 0x48($sp) -/* 0CAD8C 800CA18C 00000000 */ nop -/* 0CAD90 800CA190 05000003 */ bltz $t0, .L800CA1A0 -/* 0CAD94 800CA194 00000000 */ nop -/* 0CAD98 800CA198 10000007 */ b .L800CA1B8 -/* 0CAD9C 800CA19C 00000000 */ nop -.L800CA1A0: -/* 0CADA0 800CA1A0 3C04800F */ lui $a0, %hi(D_800E9560) # $a0, 0x800f -/* 0CADA4 800CA1A4 3C05800F */ lui $a1, %hi(D_800E9570) # $a1, 0x800f -/* 0CADA8 800CA1A8 24A59570 */ addiu $a1, %lo(D_800E9570) # addiu $a1, $a1, -0x6a90 -/* 0CADAC 800CA1AC 24849560 */ addiu $a0, %lo(D_800E9560) # addiu $a0, $a0, -0x6aa0 -/* 0CADB0 800CA1B0 0C02DBD0 */ jal func_800B6F40 -/* 0CADB4 800CA1B4 24060068 */ li $a2, 104 -.L800CA1B8: -/* 0CADB8 800CA1B8 8FA90048 */ lw $t1, 0x48($sp) -/* 0CADBC 800CA1BC 00000000 */ nop -/* 0CADC0 800CA1C0 292100A1 */ slti $at, $t1, 0xa1 -/* 0CADC4 800CA1C4 10200003 */ beqz $at, .L800CA1D4 -/* 0CADC8 800CA1C8 00000000 */ nop -/* 0CADCC 800CA1CC 10000007 */ b .L800CA1EC -/* 0CADD0 800CA1D0 00000000 */ nop -.L800CA1D4: -/* 0CADD4 800CA1D4 3C04800F */ lui $a0, %hi(D_800E9578) # $a0, 0x800f -/* 0CADD8 800CA1D8 3C05800F */ lui $a1, %hi(D_800E9598) # $a1, 0x800f -/* 0CADDC 800CA1DC 24A59598 */ addiu $a1, %lo(D_800E9598) # addiu $a1, $a1, -0x6a68 -/* 0CADE0 800CA1E0 24849578 */ addiu $a0, %lo(D_800E9578) # addiu $a0, $a0, -0x6a88 -/* 0CADE4 800CA1E4 0C02DBD0 */ jal func_800B6F40 -/* 0CADE8 800CA1E8 24060069 */ li $a2, 105 -.L800CA1EC: -/* 0CADEC 800CA1EC 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CADF0 800CA1F0 00000000 */ nop -/* 0CADF4 800CA1F4 8D4B003C */ lw $t3, 0x3c($t2) -/* 0CADF8 800CA1F8 00000000 */ nop -/* 0CADFC 800CA1FC 956C0008 */ lhu $t4, 8($t3) -/* 0CAE00 800CA200 00000000 */ nop -/* 0CAE04 800CA204 2D810011 */ sltiu $at, $t4, 0x11 -/* 0CAE08 800CA208 102001AE */ beqz $at, .L800CA8C4 -/* 0CAE0C 800CA20C 00000000 */ nop -/* 0CAE10 800CA210 000C6080 */ sll $t4, $t4, 2 -/* 0CAE14 800CA214 3C01800F */ lui $at, %hi(jpt_800E95B0) # $at, 0x800f -/* 0CAE18 800CA218 002C0821 */ addu $at, $at, $t4 -/* 0CAE1C 800CA21C 8C2C95B0 */ lw $t4, %lo(jpt_800E95B0)($at) -/* 0CAE20 800CA220 00000000 */ nop -/* 0CAE24 800CA224 01800008 */ jr $t4 -/* 0CAE28 800CA228 00000000 */ nop -glabel L800CA22C -/* 0CAE2C 800CA22C 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CAE30 800CA230 00000000 */ nop -/* 0CAE34 800CA234 8DAE003C */ lw $t6, 0x3c($t5) -/* 0CAE38 800CA238 00000000 */ nop -/* 0CAE3C 800CA23C AFAE0038 */ sw $t6, 0x38($sp) -/* 0CAE40 800CA240 8FAF0058 */ lw $t7, 0x58($sp) -/* 0CAE44 800CA244 00000000 */ nop -/* 0CAE48 800CA248 AFAF0034 */ sw $t7, 0x34($sp) -/* 0CAE4C 800CA24C 8FB80038 */ lw $t8, 0x38($sp) -/* 0CAE50 800CA250 00000000 */ nop -/* 0CAE54 800CA254 8719000A */ lh $t9, 0xa($t8) -/* 0CAE58 800CA258 00000000 */ nop -/* 0CAE5C 800CA25C 13200007 */ beqz $t9, .L800CA27C -/* 0CAE60 800CA260 00000000 */ nop -/* 0CAE64 800CA264 8FA80058 */ lw $t0, 0x58($sp) -/* 0CAE68 800CA268 24050008 */ li $a1, 8 -/* 0CAE6C 800CA26C 8D190008 */ lw $t9, 8($t0) -/* 0CAE70 800CA270 00003025 */ move $a2, $zero -/* 0CAE74 800CA274 0320F809 */ jalr $t9 -/* 0CAE78 800CA278 01002025 */ move $a0, $t0 -.L800CA27C: -/* 0CAE7C 800CA27C 8FA90058 */ lw $t1, 0x58($sp) -/* 0CAE80 800CA280 8FAA0038 */ lw $t2, 0x38($sp) -/* 0CAE84 800CA284 8D390008 */ lw $t9, 8($t1) -/* 0CAE88 800CA288 8D460018 */ lw $a2, 0x18($t2) -/* 0CAE8C 800CA28C 24050005 */ li $a1, 5 -/* 0CAE90 800CA290 0320F809 */ jalr $t9 -/* 0CAE94 800CA294 01202025 */ move $a0, $t1 -/* 0CAE98 800CA298 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CAE9C 800CA29C 24050009 */ li $a1, 9 -/* 0CAEA0 800CA2A0 8D790008 */ lw $t9, 8($t3) -/* 0CAEA4 800CA2A4 00003025 */ move $a2, $zero -/* 0CAEA8 800CA2A8 0320F809 */ jalr $t9 -/* 0CAEAC 800CA2AC 01602025 */ move $a0, $t3 -/* 0CAEB0 800CA2B0 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CAEB4 800CA2B4 240C0001 */ li $t4, 1 -/* 0CAEB8 800CA2B8 ADAC0038 */ sw $t4, 0x38($t5) -/* 0CAEBC 800CA2BC 8FAE0058 */ lw $t6, 0x58($sp) -/* 0CAEC0 800CA2C0 00000000 */ nop -/* 0CAEC4 800CA2C4 ADC00030 */ sw $zero, 0x30($t6) -/* 0CAEC8 800CA2C8 8FAF0038 */ lw $t7, 0x38($sp) -/* 0CAECC 800CA2CC 8FA80058 */ lw $t0, 0x58($sp) -/* 0CAED0 800CA2D0 8DF80014 */ lw $t8, 0x14($t7) -/* 0CAED4 800CA2D4 00000000 */ nop -/* 0CAED8 800CA2D8 AD180034 */ sw $t8, 0x34($t0) -/* 0CAEDC 800CA2DC 8FAA0038 */ lw $t2, 0x38($sp) -/* 0CAEE0 800CA2E0 00000000 */ nop -/* 0CAEE4 800CA2E4 85490010 */ lh $t1, 0x10($t2) -/* 0CAEE8 800CA2E8 00000000 */ nop -/* 0CAEEC 800CA2EC 01295821 */ addu $t3, $t1, $t1 -/* 0CAEF0 800CA2F0 05610003 */ bgez $t3, .L800CA300 -/* 0CAEF4 800CA2F4 000BC843 */ sra $t9, $t3, 1 -/* 0CAEF8 800CA2F8 25610001 */ addiu $at, $t3, 1 -/* 0CAEFC 800CA2FC 0001C843 */ sra $t9, $at, 1 -.L800CA300: -/* 0CAF00 800CA300 AFB90030 */ sw $t9, 0x30($sp) -/* 0CAF04 800CA304 8FAC0030 */ lw $t4, 0x30($sp) -/* 0CAF08 800CA308 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CAF0C 800CA30C 00000000 */ nop -/* 0CAF10 800CA310 A5AC001A */ sh $t4, 0x1a($t5) -/* 0CAF14 800CA314 8FAE0038 */ lw $t6, 0x38($sp) -/* 0CAF18 800CA318 8FB80058 */ lw $t8, 0x58($sp) -/* 0CAF1C 800CA31C 91CF0012 */ lbu $t7, 0x12($t6) -/* 0CAF20 800CA320 00000000 */ nop -/* 0CAF24 800CA324 A70F0018 */ sh $t7, 0x18($t8) -/* 0CAF28 800CA328 8FA80038 */ lw $t0, 0x38($sp) -/* 0CAF2C 800CA32C 3C0B800E */ lui $t3, %hi(eqpower) # $t3, 0x800e -/* 0CAF30 800CA330 910A0013 */ lbu $t2, 0x13($t0) -/* 0CAF34 800CA334 8FB90058 */ lw $t9, 0x58($sp) -/* 0CAF38 800CA338 000A4840 */ sll $t1, $t2, 1 -/* 0CAF3C 800CA33C 01695821 */ addu $t3, $t3, $t1 -/* 0CAF40 800CA340 856B37A0 */ lh $t3, %lo(eqpower)($t3) -/* 0CAF44 800CA344 00000000 */ nop -/* 0CAF48 800CA348 A72B0020 */ sh $t3, 0x20($t9) -/* 0CAF4C 800CA34C 8FAC0038 */ lw $t4, 0x38($sp) -# This is indexing into eqpower from the end. -/* 0CAF50 800CA350 3C18800E */ lui $t8, %hi(eqpower+0xfe) # $t8, 0x800e -/* 0CAF54 800CA354 918D0013 */ lbu $t5, 0x13($t4) -/* 0CAF58 800CA358 8FA80058 */ lw $t0, 0x58($sp) -/* 0CAF5C 800CA35C 000D7023 */ negu $t6, $t5 -/* 0CAF60 800CA360 000E7840 */ sll $t7, $t6, 1 -/* 0CAF64 800CA364 030FC021 */ addu $t8, $t8, $t7 -/* 0CAF68 800CA368 8718389E */ lh $t8, %lo(eqpower+0xfe)($t8) -/* 0CAF6C 800CA36C 00000000 */ nop -/* 0CAF70 800CA370 A5180022 */ sh $t8, 0x22($t0) -/* 0CAF74 800CA374 8FAA0038 */ lw $t2, 0x38($sp) -/* 0CAF78 800CA378 00000000 */ nop -/* 0CAF7C 800CA37C 8D490014 */ lw $t1, 0x14($t2) -/* 0CAF80 800CA380 00000000 */ nop -/* 0CAF84 800CA384 11200008 */ beqz $t1, .L800CA3A8 -/* 0CAF88 800CA388 00000000 */ nop -/* 0CAF8C 800CA38C 8FB90058 */ lw $t9, 0x58($sp) -/* 0CAF90 800CA390 240B0001 */ li $t3, 1 -/* 0CAF94 800CA394 A72B001C */ sh $t3, 0x1c($t9) -/* 0CAF98 800CA398 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CAF9C 800CA39C 240C0001 */ li $t4, 1 -/* 0CAFA0 800CA3A0 1000001A */ b .L800CA40C -/* 0CAFA4 800CA3A4 A5AC001E */ sh $t4, 0x1e($t5) -.L800CA3A8: -/* 0CAFA8 800CA3A8 8FAE0058 */ lw $t6, 0x58($sp) -/* 0CAFAC 800CA3AC 3C08800E */ lui $t0, %hi(eqpower) # $t0, 0x800e -/* 0CAFB0 800CA3B0 85CF0018 */ lh $t7, 0x18($t6) -/* 0CAFB4 800CA3B4 85CA001A */ lh $t2, 0x1a($t6) -/* 0CAFB8 800CA3B8 000FC040 */ sll $t8, $t7, 1 -/* 0CAFBC 800CA3BC 01184021 */ addu $t0, $t0, $t8 -/* 0CAFC0 800CA3C0 850837A0 */ lh $t0, %lo(eqpower)($t0) -/* 0CAFC4 800CA3C4 00000000 */ nop -/* 0CAFC8 800CA3C8 010A0019 */ multu $t0, $t2 -/* 0CAFCC 800CA3CC 00004812 */ mflo $t1 -/* 0CAFD0 800CA3D0 00095BC3 */ sra $t3, $t1, 0xf -/* 0CAFD4 800CA3D4 A5CB001C */ sh $t3, 0x1c($t6) -/* 0CAFD8 800CA3D8 8FB90058 */ lw $t9, 0x58($sp) -# This is indexing into eqpower from the end. -/* 0CAFDC 800CA3DC 3C18800E */ lui $t8, %hi(eqpower+0xfe) # $t8, 0x800e -/* 0CAFE0 800CA3E0 872C0018 */ lh $t4, 0x18($t9) -/* 0CAFE4 800CA3E4 8728001A */ lh $t0, 0x1a($t9) -/* 0CAFE8 800CA3E8 000C6823 */ negu $t5, $t4 -/* 0CAFEC 800CA3EC 000D7840 */ sll $t7, $t5, 1 -/* 0CAFF0 800CA3F0 030FC021 */ addu $t8, $t8, $t7 -/* 0CAFF4 800CA3F4 8718389E */ lh $t8, %lo(eqpower+0xfe)($t8) -/* 0CAFF8 800CA3F8 00000000 */ nop -/* 0CAFFC 800CA3FC 03080019 */ multu $t8, $t0 -/* 0CB000 800CA400 00005012 */ mflo $t2 -/* 0CB004 800CA404 000A4BC3 */ sra $t1, $t2, 0xf -/* 0CB008 800CA408 A729001E */ sh $t1, 0x1e($t9) -.L800CA40C: -/* 0CB00C 800CA40C 8FAB0034 */ lw $t3, 0x34($sp) -/* 0CB010 800CA410 00000000 */ nop -/* 0CB014 800CA414 8D6E0000 */ lw $t6, ($t3) -/* 0CB018 800CA418 00000000 */ nop -/* 0CB01C 800CA41C 11C0000E */ beqz $t6, .L800CA458 -/* 0CB020 800CA420 00000000 */ nop -/* 0CB024 800CA424 8FAC0038 */ lw $t4, 0x38($sp) -/* 0CB028 800CA428 00000000 */ nop -/* 0CB02C 800CA42C C584000C */ lwc1 $f4, 0xc($t4) -/* 0CB030 800CA430 00000000 */ nop -/* 0CB034 800CA434 E7A4002C */ swc1 $f4, 0x2c($sp) -/* 0CB038 800CA438 8FAD0034 */ lw $t5, 0x34($sp) -/* 0CB03C 800CA43C 8FA6002C */ lw $a2, 0x2c($sp) -/* 0CB040 800CA440 8DAF0000 */ lw $t7, ($t5) -/* 0CB044 800CA444 24050007 */ li $a1, 7 -/* 0CB048 800CA448 8DF90008 */ lw $t9, 8($t7) -/* 0CB04C 800CA44C 01E02025 */ move $a0, $t7 -/* 0CB050 800CA450 0320F809 */ jalr $t9 -/* 0CB054 800CA454 00000000 */ nop -.L800CA458: -/* 0CB058 800CA458 10000134 */ b .L800CA92C -/* 0CB05C 800CA45C 00000000 */ nop -glabel L800CA460 -/* 0CB060 800CA460 8FB8006C */ lw $t8, 0x6c($sp) -/* 0CB064 800CA464 8FA8005C */ lw $t0, 0x5c($sp) -/* 0CB068 800CA468 8FA40058 */ lw $a0, 0x58($sp) -/* 0CB06C 800CA46C 8FA70048 */ lw $a3, 0x48($sp) -/* 0CB070 800CA470 27A50056 */ addiu $a1, $sp, 0x56 -/* 0CB074 800CA474 27A60046 */ addiu $a2, $sp, 0x46 -/* 0CB078 800CA478 AFB80010 */ sw $t8, 0x10($sp) -/* 0CB07C 800CA47C 0C032B17 */ jal func_800CAC5C -/* 0CB080 800CA480 AFA80014 */ sw $t0, 0x14($sp) -/* 0CB084 800CA484 AFA2005C */ sw $v0, 0x5c($sp) -/* 0CB088 800CA488 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CB08C 800CA48C 8FAB0048 */ lw $t3, 0x48($sp) -/* 0CB090 800CA490 8D490030 */ lw $t1, 0x30($t2) -/* 0CB094 800CA494 00000000 */ nop -/* 0CB098 800CA498 012B7021 */ addu $t6, $t1, $t3 -/* 0CB09C 800CA49C AD4E0030 */ sw $t6, 0x30($t2) -/* 0CB0A0 800CA4A0 8FAC0058 */ lw $t4, 0x58($sp) -/* 0CB0A4 800CA4A4 00000000 */ nop -/* 0CB0A8 800CA4A8 8D8D0030 */ lw $t5, 0x30($t4) -/* 0CB0AC 800CA4AC 8D8F0034 */ lw $t7, 0x34($t4) -/* 0CB0B0 800CA4B0 00000000 */ nop -/* 0CB0B4 800CA4B4 01AF082A */ slt $at, $t5, $t7 -/* 0CB0B8 800CA4B8 14200029 */ bnez $at, .L800CA560 -/* 0CB0BC 800CA4BC 00000000 */ nop -/* 0CB0C0 800CA4C0 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB0C4 800CA4C4 3C09800E */ lui $t1, %hi(eqpower) # $t1, 0x800e -/* 0CB0C8 800CA4C8 87380018 */ lh $t8, 0x18($t9) -/* 0CB0CC 800CA4CC 872B001A */ lh $t3, 0x1a($t9) -/* 0CB0D0 800CA4D0 00184040 */ sll $t0, $t8, 1 -/* 0CB0D4 800CA4D4 01284821 */ addu $t1, $t1, $t0 -/* 0CB0D8 800CA4D8 852937A0 */ lh $t1, %lo(eqpower)($t1) -/* 0CB0DC 800CA4DC 00000000 */ nop -/* 0CB0E0 800CA4E0 012B0019 */ multu $t1, $t3 -/* 0CB0E4 800CA4E4 00007012 */ mflo $t6 -/* 0CB0E8 800CA4E8 000E53C3 */ sra $t2, $t6, 0xf -/* 0CB0EC 800CA4EC A72A0028 */ sh $t2, 0x28($t9) -/* 0CB0F0 800CA4F0 8FAC0058 */ lw $t4, 0x58($sp) -# This is indexing into eqpower from the end. -/* 0CB0F4 800CA4F4 3C08800E */ lui $t0, %hi(eqpower+0xfe) # $t0, 0x800e -/* 0CB0F8 800CA4F8 858D0018 */ lh $t5, 0x18($t4) -/* 0CB0FC 800CA4FC 8589001A */ lh $t1, 0x1a($t4) -/* 0CB100 800CA500 000D7823 */ negu $t7, $t5 -/* 0CB104 800CA504 000FC040 */ sll $t8, $t7, 1 -/* 0CB108 800CA508 01184021 */ addu $t0, $t0, $t8 -/* 0CB10C 800CA50C 8508389E */ lh $t0, %lo(eqpower+0xfe)($t0) -/* 0CB110 800CA510 00000000 */ nop -/* 0CB114 800CA514 01090019 */ multu $t0, $t1 -/* 0CB118 800CA518 00005812 */ mflo $t3 -/* 0CB11C 800CA51C 000B73C3 */ sra $t6, $t3, 0xf -/* 0CB120 800CA520 A58E002E */ sh $t6, 0x2e($t4) -/* 0CB124 800CA524 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CB128 800CA528 00000000 */ nop -/* 0CB12C 800CA52C 8D590034 */ lw $t9, 0x34($t2) -/* 0CB130 800CA530 00000000 */ nop -/* 0CB134 800CA534 AD590030 */ sw $t9, 0x30($t2) -/* 0CB138 800CA538 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CB13C 800CA53C 00000000 */ nop -/* 0CB140 800CA540 85AF0028 */ lh $t7, 0x28($t5) -/* 0CB144 800CA544 00000000 */ nop -/* 0CB148 800CA548 A5AF001C */ sh $t7, 0x1c($t5) -/* 0CB14C 800CA54C 8FB80058 */ lw $t8, 0x58($sp) -/* 0CB150 800CA550 00000000 */ nop -/* 0CB154 800CA554 8708002E */ lh $t0, 0x2e($t8) -/* 0CB158 800CA558 10000029 */ b .L800CA600 -/* 0CB15C 800CA55C A708001E */ sh $t0, 0x1e($t8) -.L800CA560: -/* 0CB160 800CA560 8FA90058 */ lw $t1, 0x58($sp) -/* 0CB164 800CA564 00000000 */ nop -/* 0CB168 800CA568 852B001C */ lh $t3, 0x1c($t1) -/* 0CB16C 800CA56C 8D250030 */ lw $a1, 0x30($t1) -/* 0CB170 800CA570 448B3000 */ mtc1 $t3, $f6 -/* 0CB174 800CA574 85260026 */ lh $a2, 0x26($t1) -/* 0CB178 800CA578 95270024 */ lhu $a3, 0x24($t1) -/* 0CB17C 800CA57C 0C032D26 */ jal func_800CB498 -/* 0CB180 800CA580 46803320 */ cvt.s.w $f12, $f6 -/* 0CB184 800CA584 444EF800 */ cfc1 $t6, $31 -/* 0CB188 800CA588 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB18C 800CA58C 35C10003 */ ori $at, $t6, 3 -/* 0CB190 800CA590 38210002 */ xori $at, $at, 2 -/* 0CB194 800CA594 44C1F800 */ ctc1 $at, $31 -/* 0CB198 800CA598 00000000 */ nop -/* 0CB19C 800CA59C 46000224 */ cvt.w.s $f8, $f0 -/* 0CB1A0 800CA5A0 440C4000 */ mfc1 $t4, $f8 -/* 0CB1A4 800CA5A4 44CEF800 */ ctc1 $t6, $31 -/* 0CB1A8 800CA5A8 A72C001C */ sh $t4, 0x1c($t9) -/* 0CB1AC 800CA5AC 00000000 */ nop -/* 0CB1B0 800CA5B0 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CB1B4 800CA5B4 00000000 */ nop -/* 0CB1B8 800CA5B8 854F001E */ lh $t7, 0x1e($t2) -/* 0CB1BC 800CA5BC 8D450030 */ lw $a1, 0x30($t2) -/* 0CB1C0 800CA5C0 448F5000 */ mtc1 $t7, $f10 -/* 0CB1C4 800CA5C4 8546002C */ lh $a2, 0x2c($t2) -/* 0CB1C8 800CA5C8 9547002A */ lhu $a3, 0x2a($t2) -/* 0CB1CC 800CA5CC 0C032D26 */ jal func_800CB498 -/* 0CB1D0 800CA5D0 46805320 */ cvt.s.w $f12, $f10 -/* 0CB1D4 800CA5D4 444DF800 */ cfc1 $t5, $31 -/* 0CB1D8 800CA5D8 8FB80058 */ lw $t8, 0x58($sp) -/* 0CB1DC 800CA5DC 35A10003 */ ori $at, $t5, 3 -/* 0CB1E0 800CA5E0 38210002 */ xori $at, $at, 2 -/* 0CB1E4 800CA5E4 44C1F800 */ ctc1 $at, $31 -/* 0CB1E8 800CA5E8 00000000 */ nop -/* 0CB1EC 800CA5EC 46000424 */ cvt.w.s $f16, $f0 -/* 0CB1F0 800CA5F0 44088000 */ mfc1 $t0, $f16 -/* 0CB1F4 800CA5F4 44CDF800 */ ctc1 $t5, $31 -/* 0CB1F8 800CA5F8 A708001E */ sh $t0, 0x1e($t8) -/* 0CB1FC 800CA5FC 00000000 */ nop -.L800CA600: -/* 0CB200 800CA600 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CB204 800CA604 00000000 */ nop -/* 0CB208 800CA608 8569001C */ lh $t1, 0x1c($t3) -/* 0CB20C 800CA60C 00000000 */ nop -/* 0CB210 800CA610 15200004 */ bnez $t1, .L800CA624 -/* 0CB214 800CA614 00000000 */ nop -/* 0CB218 800CA618 8FAC0058 */ lw $t4, 0x58($sp) -/* 0CB21C 800CA61C 240E0001 */ li $t6, 1 -/* 0CB220 800CA620 A58E001C */ sh $t6, 0x1c($t4) -.L800CA624: -/* 0CB224 800CA624 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB228 800CA628 00000000 */ nop -/* 0CB22C 800CA62C 872F001E */ lh $t7, 0x1e($t9) -/* 0CB230 800CA630 00000000 */ nop -/* 0CB234 800CA634 15E00004 */ bnez $t7, .L800CA648 -/* 0CB238 800CA638 00000000 */ nop -/* 0CB23C 800CA63C 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CB240 800CA640 240A0001 */ li $t2, 1 -/* 0CB244 800CA644 A5AA001E */ sh $t2, 0x1e($t5) -.L800CA648: -/* 0CB248 800CA648 8FA80058 */ lw $t0, 0x58($sp) -/* 0CB24C 800CA64C 2401000C */ li $at, 12 -/* 0CB250 800CA650 8D18003C */ lw $t8, 0x3c($t0) -/* 0CB254 800CA654 00000000 */ nop -/* 0CB258 800CA658 870B0008 */ lh $t3, 8($t8) -/* 0CB25C 800CA65C 00000000 */ nop -/* 0CB260 800CA660 15610008 */ bne $t3, $at, .L800CA684 -/* 0CB264 800CA664 00000000 */ nop -/* 0CB268 800CA668 8FA90058 */ lw $t1, 0x58($sp) -/* 0CB26C 800CA66C 00000000 */ nop -/* 0CB270 800CA670 8D2E003C */ lw $t6, 0x3c($t1) -/* 0CB274 800CA674 00000000 */ nop -/* 0CB278 800CA678 8DCC000C */ lw $t4, 0xc($t6) -/* 0CB27C 800CA67C 00000000 */ nop -/* 0CB280 800CA680 A52C0018 */ sh $t4, 0x18($t1) -.L800CA684: -/* 0CB284 800CA684 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB288 800CA688 2401000B */ li $at, 11 -/* 0CB28C 800CA68C 8F2F003C */ lw $t7, 0x3c($t9) -/* 0CB290 800CA690 00000000 */ nop -/* 0CB294 800CA694 85EA0008 */ lh $t2, 8($t7) -/* 0CB298 800CA698 00000000 */ nop -/* 0CB29C 800CA69C 1541001E */ bne $t2, $at, .L800CA718 -/* 0CB2A0 800CA6A0 00000000 */ nop -/* 0CB2A4 800CA6A4 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CB2A8 800CA6A8 00000000 */ nop -/* 0CB2AC 800CA6AC ADA00030 */ sw $zero, 0x30($t5) -/* 0CB2B0 800CA6B0 8FA80058 */ lw $t0, 0x58($sp) -/* 0CB2B4 800CA6B4 00000000 */ nop -/* 0CB2B8 800CA6B8 8D18003C */ lw $t8, 0x3c($t0) -/* 0CB2BC 800CA6BC 00000000 */ nop -/* 0CB2C0 800CA6C0 8F0B000C */ lw $t3, 0xc($t8) -/* 0CB2C4 800CA6C4 00000000 */ nop -/* 0CB2C8 800CA6C8 AFAB0040 */ sw $t3, 0x40($sp) -/* 0CB2CC 800CA6CC 8FAE0040 */ lw $t6, 0x40($sp) -/* 0CB2D0 800CA6D0 00000000 */ nop -/* 0CB2D4 800CA6D4 01CE6021 */ addu $t4, $t6, $t6 -/* 0CB2D8 800CA6D8 05810003 */ bgez $t4, .L800CA6E8 -/* 0CB2DC 800CA6DC 000C4843 */ sra $t1, $t4, 1 -/* 0CB2E0 800CA6E0 25810001 */ addiu $at, $t4, 1 -/* 0CB2E4 800CA6E4 00014843 */ sra $t1, $at, 1 -.L800CA6E8: -/* 0CB2E8 800CA6E8 AFA90040 */ sw $t1, 0x40($sp) -/* 0CB2EC 800CA6EC 8FB90040 */ lw $t9, 0x40($sp) -/* 0CB2F0 800CA6F0 8FAF0058 */ lw $t7, 0x58($sp) -/* 0CB2F4 800CA6F4 00000000 */ nop -/* 0CB2F8 800CA6F8 A5F9001A */ sh $t9, 0x1a($t7) -/* 0CB2FC 800CA6FC 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CB300 800CA700 00000000 */ nop -/* 0CB304 800CA704 8D4D003C */ lw $t5, 0x3c($t2) -/* 0CB308 800CA708 00000000 */ nop -/* 0CB30C 800CA70C 8DA80010 */ lw $t0, 0x10($t5) -/* 0CB310 800CA710 00000000 */ nop -/* 0CB314 800CA714 AD480034 */ sw $t0, 0x34($t2) -.L800CA718: -/* 0CB318 800CA718 8FB80058 */ lw $t8, 0x58($sp) -/* 0CB31C 800CA71C 24010010 */ li $at, 16 -/* 0CB320 800CA720 8F0B003C */ lw $t3, 0x3c($t8) -/* 0CB324 800CA724 00000000 */ nop -/* 0CB328 800CA728 856E0008 */ lh $t6, 8($t3) -/* 0CB32C 800CA72C 00000000 */ nop -/* 0CB330 800CA730 15C10018 */ bne $t6, $at, .L800CA794 -/* 0CB334 800CA734 00000000 */ nop -/* 0CB338 800CA738 8FAC0058 */ lw $t4, 0x58($sp) -/* 0CB33C 800CA73C 3C0D800E */ lui $t5, %hi(eqpower) # $t5, 0x800e -/* 0CB340 800CA740 8D89003C */ lw $t1, 0x3c($t4) -/* 0CB344 800CA744 00000000 */ nop -/* 0CB348 800CA748 8D39000C */ lw $t9, 0xc($t1) -/* 0CB34C 800CA74C 00000000 */ nop -/* 0CB350 800CA750 00197840 */ sll $t7, $t9, 1 -/* 0CB354 800CA754 01AF6821 */ addu $t5, $t5, $t7 -/* 0CB358 800CA758 85AD37A0 */ lh $t5, %lo(eqpower)($t5) -/* 0CB35C 800CA75C 00000000 */ nop -/* 0CB360 800CA760 A58D0020 */ sh $t5, 0x20($t4) -/* 0CB364 800CA764 8FA80058 */ lw $t0, 0x58($sp) -# This is indexing into eqpower from the end. -/* 0CB368 800CA768 3C09800E */ lui $t1, %hi(eqpower+0xfe) # $t1, 0x800e -/* 0CB36C 800CA76C 8D0A003C */ lw $t2, 0x3c($t0) -/* 0CB370 800CA770 00000000 */ nop -/* 0CB374 800CA774 8D58000C */ lw $t8, 0xc($t2) -/* 0CB378 800CA778 00000000 */ nop -/* 0CB37C 800CA77C 00185823 */ negu $t3, $t8 -/* 0CB380 800CA780 000B7040 */ sll $t6, $t3, 1 -/* 0CB384 800CA784 012E4821 */ addu $t1, $t1, $t6 -/* 0CB388 800CA788 8529389E */ lh $t1, %lo(eqpower+0xfe)($t1) -/* 0CB38C 800CA78C 00000000 */ nop -/* 0CB390 800CA790 A5090022 */ sh $t1, 0x22($t0) -.L800CA794: -/* 0CB394 800CA794 8FAF0058 */ lw $t7, 0x58($sp) -/* 0CB398 800CA798 24190001 */ li $t9, 1 -/* 0CB39C 800CA79C ADF90038 */ sw $t9, 0x38($t7) -/* 0CB3A0 800CA7A0 10000062 */ b .L800CA92C -/* 0CB3A4 800CA7A4 00000000 */ nop -glabel L800CA7A8 -/* 0CB3A8 800CA7A8 8FAD0058 */ lw $t5, 0x58($sp) -/* 0CB3AC 800CA7AC 00000000 */ nop -/* 0CB3B0 800CA7B0 8DAC003C */ lw $t4, 0x3c($t5) -/* 0CB3B4 800CA7B4 00000000 */ nop -/* 0CB3B8 800CA7B8 AFAC0028 */ sw $t4, 0x28($sp) -/* 0CB3BC 800CA7BC 8FAA0028 */ lw $t2, 0x28($sp) -/* 0CB3C0 800CA7C0 00000000 */ nop -/* 0CB3C4 800CA7C4 8558000A */ lh $t8, 0xa($t2) -/* 0CB3C8 800CA7C8 00000000 */ nop -/* 0CB3CC 800CA7CC 13000007 */ beqz $t8, .L800CA7EC -/* 0CB3D0 800CA7D0 00000000 */ nop -/* 0CB3D4 800CA7D4 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CB3D8 800CA7D8 24050008 */ li $a1, 8 -/* 0CB3DC 800CA7DC 8D790008 */ lw $t9, 8($t3) -/* 0CB3E0 800CA7E0 00003025 */ move $a2, $zero -/* 0CB3E4 800CA7E4 0320F809 */ jalr $t9 -/* 0CB3E8 800CA7E8 01602025 */ move $a0, $t3 -.L800CA7EC: -/* 0CB3EC 800CA7EC 8FAE0058 */ lw $t6, 0x58($sp) -/* 0CB3F0 800CA7F0 8FA90028 */ lw $t1, 0x28($sp) -/* 0CB3F4 800CA7F4 8DD90008 */ lw $t9, 8($t6) -/* 0CB3F8 800CA7F8 8D26000C */ lw $a2, 0xc($t1) -/* 0CB3FC 800CA7FC 24050005 */ li $a1, 5 -/* 0CB400 800CA800 0320F809 */ jalr $t9 -/* 0CB404 800CA804 01C02025 */ move $a0, $t6 -/* 0CB408 800CA808 8FA80058 */ lw $t0, 0x58($sp) -/* 0CB40C 800CA80C 24050009 */ li $a1, 9 -/* 0CB410 800CA810 8D190008 */ lw $t9, 8($t0) -/* 0CB414 800CA814 00003025 */ move $a2, $zero -/* 0CB418 800CA818 0320F809 */ jalr $t9 -/* 0CB41C 800CA81C 01002025 */ move $a0, $t0 -/* 0CB420 800CA820 10000042 */ b .L800CA92C -/* 0CB424 800CA824 00000000 */ nop -glabel L800CA828 -/* 0CB428 800CA828 8FAF006C */ lw $t7, 0x6c($sp) -/* 0CB42C 800CA82C 8FAD005C */ lw $t5, 0x5c($sp) -/* 0CB430 800CA830 8FA40058 */ lw $a0, 0x58($sp) -/* 0CB434 800CA834 8FA70048 */ lw $a3, 0x48($sp) -/* 0CB438 800CA838 27A50056 */ addiu $a1, $sp, 0x56 -/* 0CB43C 800CA83C 27A60046 */ addiu $a2, $sp, 0x46 -/* 0CB440 800CA840 AFAF0010 */ sw $t7, 0x10($sp) -/* 0CB444 800CA844 0C032B17 */ jal func_800CAC5C -/* 0CB448 800CA848 AFAD0014 */ sw $t5, 0x14($sp) -/* 0CB44C 800CA84C AFA2005C */ sw $v0, 0x5c($sp) -/* 0CB450 800CA850 8FAC0058 */ lw $t4, 0x58($sp) -/* 0CB454 800CA854 24050004 */ li $a1, 4 -/* 0CB458 800CA858 8D990008 */ lw $t9, 8($t4) -/* 0CB45C 800CA85C 00003025 */ move $a2, $zero -/* 0CB460 800CA860 0320F809 */ jalr $t9 -/* 0CB464 800CA864 01802025 */ move $a0, $t4 -/* 0CB468 800CA868 10000030 */ b .L800CA92C -/* 0CB46C 800CA86C 00000000 */ nop -glabel L800CA870 -/* 0CB470 800CA870 3C0A800E */ lui $t2, %hi(alGlobals) # $t2, 0x800e -/* 0CB474 800CA874 8D4A3780 */ lw $t2, %lo(alGlobals)($t2) -/* 0CB478 800CA878 00000000 */ nop -/* 0CB47C 800CA87C AFAA0024 */ sw $t2, 0x24($sp) -/* 0CB480 800CA880 8FB80058 */ lw $t8, 0x58($sp) -/* 0CB484 800CA884 00000000 */ nop -/* 0CB488 800CA888 8F0B003C */ lw $t3, 0x3c($t8) -/* 0CB48C 800CA88C 00000000 */ nop -/* 0CB490 800CA890 AFAB0020 */ sw $t3, 0x20($sp) -/* 0CB494 800CA894 8FA90020 */ lw $t1, 0x20($sp) -/* 0CB498 800CA898 00000000 */ nop -/* 0CB49C 800CA89C 8D2E000C */ lw $t6, 0xc($t1) -/* 0CB4A0 800CA8A0 00000000 */ nop -/* 0CB4A4 800CA8A4 ADC000D8 */ sw $zero, 0xd8($t6) -/* 0CB4A8 800CA8A8 8FA80020 */ lw $t0, 0x20($sp) -/* 0CB4AC 800CA8AC 8FA40024 */ lw $a0, 0x24($sp) -/* 0CB4B0 800CA8B0 8D05000C */ lw $a1, 0xc($t0) -/* 0CB4B4 800CA8B4 0C0195C7 */ jal __freePVoices -/* 0CB4B8 800CA8B8 00000000 */ nop -/* 0CB4BC 800CA8BC 1000001B */ b .L800CA92C -/* 0CB4C0 800CA8C0 00000000 */ nop -.L800CA8C4: -glabel L800CA8C4 -/* 0CB4C4 800CA8C4 8FAF006C */ lw $t7, 0x6c($sp) -/* 0CB4C8 800CA8C8 8FAD005C */ lw $t5, 0x5c($sp) -/* 0CB4CC 800CA8CC 8FA40058 */ lw $a0, 0x58($sp) -/* 0CB4D0 800CA8D0 8FA70048 */ lw $a3, 0x48($sp) -/* 0CB4D4 800CA8D4 27A50056 */ addiu $a1, $sp, 0x56 -/* 0CB4D8 800CA8D8 27A60046 */ addiu $a2, $sp, 0x46 -/* 0CB4DC 800CA8DC AFAF0010 */ sw $t7, 0x10($sp) -/* 0CB4E0 800CA8E0 0C032B17 */ jal func_800CAC5C -/* 0CB4E4 800CA8E4 AFAD0014 */ sw $t5, 0x14($sp) -/* 0CB4E8 800CA8E8 AFA2005C */ sw $v0, 0x5c($sp) -/* 0CB4EC 800CA8EC 8FAC0058 */ lw $t4, 0x58($sp) -/* 0CB4F0 800CA8F0 8FAA0048 */ lw $t2, 0x48($sp) -/* 0CB4F4 800CA8F4 8D990030 */ lw $t9, 0x30($t4) -/* 0CB4F8 800CA8F8 00000000 */ nop -/* 0CB4FC 800CA8FC 032AC021 */ addu $t8, $t9, $t2 -/* 0CB500 800CA900 AD980030 */ sw $t8, 0x30($t4) -/* 0CB504 800CA904 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CB508 800CA908 00000000 */ nop -/* 0CB50C 800CA90C 8D69003C */ lw $t1, 0x3c($t3) -/* 0CB510 800CA910 8D790008 */ lw $t9, 8($t3) -/* 0CB514 800CA914 85250008 */ lh $a1, 8($t1) -/* 0CB518 800CA918 8D26000C */ lw $a2, 0xc($t1) -/* 0CB51C 800CA91C 0320F809 */ jalr $t9 -/* 0CB520 800CA920 01602025 */ move $a0, $t3 -/* 0CB524 800CA924 10000001 */ b .L800CA92C -/* 0CB528 800CA928 00000000 */ nop -.L800CA92C: -/* 0CB52C 800CA92C 8FA80048 */ lw $t0, 0x48($sp) -/* 0CB530 800CA930 87AE0046 */ lh $t6, 0x46($sp) -/* 0CB534 800CA934 00087840 */ sll $t7, $t0, 1 -/* 0CB538 800CA938 01CF6821 */ addu $t5, $t6, $t7 -/* 0CB53C 800CA93C A7AD0046 */ sh $t5, 0x46($sp) -/* 0CB540 800CA940 8FAA0068 */ lw $t2, 0x68($sp) -/* 0CB544 800CA944 8FB80048 */ lw $t8, 0x48($sp) -/* 0CB548 800CA948 00000000 */ nop -/* 0CB54C 800CA94C 01586023 */ subu $t4, $t2, $t8 -/* 0CB550 800CA950 AFAC0068 */ sw $t4, 0x68($sp) -/* 0CB554 800CA954 8FA90058 */ lw $t1, 0x58($sp) -/* 0CB558 800CA958 00000000 */ nop -/* 0CB55C 800CA95C 8D2B003C */ lw $t3, 0x3c($t1) -/* 0CB560 800CA960 00000000 */ nop -/* 0CB564 800CA964 AFAB003C */ sw $t3, 0x3c($sp) -/* 0CB568 800CA968 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB56C 800CA96C 00000000 */ nop -/* 0CB570 800CA970 8F28003C */ lw $t0, 0x3c($t9) -/* 0CB574 800CA974 00000000 */ nop -/* 0CB578 800CA978 8D0E0000 */ lw $t6, ($t0) -/* 0CB57C 800CA97C 00000000 */ nop -/* 0CB580 800CA980 AF2E003C */ sw $t6, 0x3c($t9) -/* 0CB584 800CA984 8FAF0058 */ lw $t7, 0x58($sp) -/* 0CB588 800CA988 00000000 */ nop -/* 0CB58C 800CA98C 8DED003C */ lw $t5, 0x3c($t7) -/* 0CB590 800CA990 00000000 */ nop -/* 0CB594 800CA994 15A00004 */ bnez $t5, .L800CA9A8 -/* 0CB598 800CA998 00000000 */ nop -/* 0CB59C 800CA99C 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CB5A0 800CA9A0 00000000 */ nop -/* 0CB5A4 800CA9A4 AD400040 */ sw $zero, 0x40($t2) -.L800CA9A8: -/* 0CB5A8 800CA9A8 8FA4003C */ lw $a0, 0x3c($sp) -/* 0CB5AC 800CA9AC 0C0195A7 */ jal __freeParam -/* 0CB5B0 800CA9B0 00000000 */ nop -/* 0CB5B4 800CA9B4 8FB80058 */ lw $t8, 0x58($sp) -/* 0CB5B8 800CA9B8 00000000 */ nop -/* 0CB5BC 800CA9BC 8F0C003C */ lw $t4, 0x3c($t8) -/* 0CB5C0 800CA9C0 00000000 */ nop -/* 0CB5C4 800CA9C4 1580FDD9 */ bnez $t4, .L800CA12C -/* 0CB5C8 800CA9C8 00000000 */ nop -.L800CA9CC: -/* 0CB5CC 800CA9CC 8FA90058 */ lw $t1, 0x58($sp) -/* 0CB5D0 800CA9D0 24010001 */ li $at, 1 -/* 0CB5D4 800CA9D4 8D2B0048 */ lw $t3, 0x48($t1) -/* 0CB5D8 800CA9D8 00000000 */ nop -/* 0CB5DC 800CA9DC 15610011 */ bne $t3, $at, .L800CAA24 -/* 0CB5E0 800CA9E0 00000000 */ nop -/* 0CB5E4 800CA9E4 8FA8006C */ lw $t0, 0x6c($sp) -/* 0CB5E8 800CA9E8 8FAE005C */ lw $t6, 0x5c($sp) -/* 0CB5EC 800CA9EC 8FA40058 */ lw $a0, 0x58($sp) -/* 0CB5F0 800CA9F0 8FA70068 */ lw $a3, 0x68($sp) -/* 0CB5F4 800CA9F4 27A50056 */ addiu $a1, $sp, 0x56 -/* 0CB5F8 800CA9F8 27A60046 */ addiu $a2, $sp, 0x46 -/* 0CB5FC 800CA9FC AFA80010 */ sw $t0, 0x10($sp) -/* 0CB600 800CAA00 0C032B17 */ jal func_800CAC5C -/* 0CB604 800CAA04 AFAE0014 */ sw $t6, 0x14($sp) -/* 0CB608 800CAA08 AFA2005C */ sw $v0, 0x5c($sp) -/* 0CB60C 800CAA0C 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB610 800CAA10 8FAD0068 */ lw $t5, 0x68($sp) -/* 0CB614 800CAA14 8F2F0030 */ lw $t7, 0x30($t9) -/* 0CB618 800CAA18 00000000 */ nop -/* 0CB61C 800CAA1C 01ED5021 */ addu $t2, $t7, $t5 -/* 0CB620 800CAA20 AF2A0030 */ sw $t2, 0x30($t9) -.L800CAA24: -/* 0CB624 800CAA24 8FB80058 */ lw $t8, 0x58($sp) -/* 0CB628 800CAA28 00000000 */ nop -/* 0CB62C 800CAA2C 8F0C0030 */ lw $t4, 0x30($t8) -/* 0CB630 800CAA30 8F090034 */ lw $t1, 0x34($t8) -/* 0CB634 800CAA34 00000000 */ nop -/* 0CB638 800CAA38 012C082A */ slt $at, $t1, $t4 -/* 0CB63C 800CAA3C 10200006 */ beqz $at, .L800CAA58 -/* 0CB640 800CAA40 00000000 */ nop -/* 0CB644 800CAA44 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CB648 800CAA48 00000000 */ nop -/* 0CB64C 800CAA4C 8D680034 */ lw $t0, 0x34($t3) -/* 0CB650 800CAA50 00000000 */ nop -/* 0CB654 800CAA54 AD680030 */ sw $t0, 0x30($t3) -.L800CAA58: -/* 0CB658 800CAA58 8FA2005C */ lw $v0, 0x5c($sp) -/* 0CB65C 800CAA5C 10000003 */ b .L800CAA6C -/* 0CB660 800CAA60 00000000 */ nop -/* 0CB664 800CAA64 10000001 */ b .L800CAA6C -/* 0CB668 800CAA68 00000000 */ nop -.L800CAA6C: -/* 0CB66C 800CAA6C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0CB670 800CAA70 27BD0060 */ addiu $sp, $sp, 0x60 -/* 0CB674 800CAA74 03E00008 */ jr $ra -/* 0CB678 800CAA78 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s b/lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s deleted file mode 100644 index a6d65bd6..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s +++ /dev/null @@ -1,133 +0,0 @@ -glabel alEnvmixerParam -/* 0CB67C 800CAA7C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CB680 800CAA80 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CB684 800CAA84 AFA40030 */ sw $a0, 0x30($sp) -/* 0CB688 800CAA88 AFA50034 */ sw $a1, 0x34($sp) -/* 0CB68C 800CAA8C AFA60038 */ sw $a2, 0x38($sp) -/* 0CB690 800CAA90 AFB00018 */ sw $s0, 0x18($sp) -/* 0CB694 800CAA94 8FAE0030 */ lw $t6, 0x30($sp) -/* 0CB698 800CAA98 00000000 */ nop -/* 0CB69C 800CAA9C AFAE002C */ sw $t6, 0x2c($sp) -/* 0CB6A0 800CAAA0 8FAF0030 */ lw $t7, 0x30($sp) -/* 0CB6A4 800CAAA4 00000000 */ nop -/* 0CB6A8 800CAAA8 AFAF0028 */ sw $t7, 0x28($sp) -/* 0CB6AC 800CAAAC 8FB00034 */ lw $s0, 0x34($sp) -/* 0CB6B0 800CAAB0 24010001 */ li $at, 1 -/* 0CB6B4 800CAAB4 1201004D */ beq $s0, $at, .L800CABEC -/* 0CB6B8 800CAAB8 00000000 */ nop -/* 0CB6BC 800CAABC 24010003 */ li $at, 3 -/* 0CB6C0 800CAAC0 12010009 */ beq $s0, $at, .L800CAAE8 -/* 0CB6C4 800CAAC4 00000000 */ nop -/* 0CB6C8 800CAAC8 24010004 */ li $at, 4 -/* 0CB6CC 800CAACC 1201001B */ beq $s0, $at, .L800CAB3C -/* 0CB6D0 800CAAD0 00000000 */ nop -/* 0CB6D4 800CAAD4 24010009 */ li $at, 9 -/* 0CB6D8 800CAAD8 12010031 */ beq $s0, $at, .L800CABA0 -/* 0CB6DC 800CAADC 00000000 */ nop -/* 0CB6E0 800CAAE0 10000048 */ b .L800CAC04 -/* 0CB6E4 800CAAE4 00000000 */ nop -.L800CAAE8: -/* 0CB6E8 800CAAE8 8FB80028 */ lw $t8, 0x28($sp) -/* 0CB6EC 800CAAEC 00000000 */ nop -/* 0CB6F0 800CAAF0 8F190040 */ lw $t9, 0x40($t8) -/* 0CB6F4 800CAAF4 00000000 */ nop -/* 0CB6F8 800CAAF8 13200006 */ beqz $t9, .L800CAB14 -/* 0CB6FC 800CAAFC 00000000 */ nop -/* 0CB700 800CAB00 8FA90028 */ lw $t1, 0x28($sp) -/* 0CB704 800CAB04 8FA80038 */ lw $t0, 0x38($sp) -/* 0CB708 800CAB08 8D2A0040 */ lw $t2, 0x40($t1) -/* 0CB70C 800CAB0C 10000005 */ b .L800CAB24 -/* 0CB710 800CAB10 AD480000 */ sw $t0, ($t2) -.L800CAB14: -/* 0CB714 800CAB14 8FAB0038 */ lw $t3, 0x38($sp) -/* 0CB718 800CAB18 8FAC0028 */ lw $t4, 0x28($sp) -/* 0CB71C 800CAB1C 00000000 */ nop -/* 0CB720 800CAB20 AD8B003C */ sw $t3, 0x3c($t4) -.L800CAB24: -/* 0CB724 800CAB24 8FAD0038 */ lw $t5, 0x38($sp) -/* 0CB728 800CAB28 8FAE0028 */ lw $t6, 0x28($sp) -/* 0CB72C 800CAB2C 00000000 */ nop -/* 0CB730 800CAB30 ADCD0040 */ sw $t5, 0x40($t6) -/* 0CB734 800CAB34 10000041 */ b .L800CAC3C -/* 0CB738 800CAB38 00000000 */ nop -.L800CAB3C: -/* 0CB73C 800CAB3C 8FB80028 */ lw $t8, 0x28($sp) -/* 0CB740 800CAB40 240F0001 */ li $t7, 1 -/* 0CB744 800CAB44 AF0F0038 */ sw $t7, 0x38($t8) -/* 0CB748 800CAB48 8FB90028 */ lw $t9, 0x28($sp) -/* 0CB74C 800CAB4C 00000000 */ nop -/* 0CB750 800CAB50 AF200048 */ sw $zero, 0x48($t9) -/* 0CB754 800CAB54 8FA80028 */ lw $t0, 0x28($sp) -/* 0CB758 800CAB58 24090001 */ li $t1, 1 -/* 0CB75C 800CAB5C A509001A */ sh $t1, 0x1a($t0) -/* 0CB760 800CAB60 8FAA002C */ lw $t2, 0x2c($sp) -/* 0CB764 800CAB64 00000000 */ nop -/* 0CB768 800CAB68 8D4B0000 */ lw $t3, ($t2) -/* 0CB76C 800CAB6C 00000000 */ nop -/* 0CB770 800CAB70 11600009 */ beqz $t3, .L800CAB98 -/* 0CB774 800CAB74 00000000 */ nop -/* 0CB778 800CAB78 8FAC002C */ lw $t4, 0x2c($sp) -/* 0CB77C 800CAB7C 8FA60038 */ lw $a2, 0x38($sp) -/* 0CB780 800CAB80 8D8D0000 */ lw $t5, ($t4) -/* 0CB784 800CAB84 24050004 */ li $a1, 4 -/* 0CB788 800CAB88 8DB90008 */ lw $t9, 8($t5) -/* 0CB78C 800CAB8C 01A02025 */ move $a0, $t5 -/* 0CB790 800CAB90 0320F809 */ jalr $t9 -/* 0CB794 800CAB94 00000000 */ nop -.L800CAB98: -/* 0CB798 800CAB98 10000028 */ b .L800CAC3C -/* 0CB79C 800CAB9C 00000000 */ nop -.L800CABA0: -/* 0CB7A0 800CABA0 8FAF0028 */ lw $t7, 0x28($sp) -/* 0CB7A4 800CABA4 240E0001 */ li $t6, 1 -/* 0CB7A8 800CABA8 ADEE0048 */ sw $t6, 0x48($t7) -/* 0CB7AC 800CABAC 8FB8002C */ lw $t8, 0x2c($sp) -/* 0CB7B0 800CABB0 00000000 */ nop -/* 0CB7B4 800CABB4 8F090000 */ lw $t1, ($t8) -/* 0CB7B8 800CABB8 00000000 */ nop -/* 0CB7BC 800CABBC 11200009 */ beqz $t1, .L800CABE4 -/* 0CB7C0 800CABC0 00000000 */ nop -/* 0CB7C4 800CABC4 8FA8002C */ lw $t0, 0x2c($sp) -/* 0CB7C8 800CABC8 8FA60038 */ lw $a2, 0x38($sp) -/* 0CB7CC 800CABCC 8D0A0000 */ lw $t2, ($t0) -/* 0CB7D0 800CABD0 24050009 */ li $a1, 9 -/* 0CB7D4 800CABD4 8D590008 */ lw $t9, 8($t2) -/* 0CB7D8 800CABD8 01402025 */ move $a0, $t2 -/* 0CB7DC 800CABDC 0320F809 */ jalr $t9 -/* 0CB7E0 800CABE0 00000000 */ nop -.L800CABE4: -/* 0CB7E4 800CABE4 10000015 */ b .L800CAC3C -/* 0CB7E8 800CABE8 00000000 */ nop -.L800CABEC: -/* 0CB7EC 800CABEC 8FAB0038 */ lw $t3, 0x38($sp) -/* 0CB7F0 800CABF0 8FAC002C */ lw $t4, 0x2c($sp) -/* 0CB7F4 800CABF4 00000000 */ nop -/* 0CB7F8 800CABF8 AD8B0000 */ sw $t3, ($t4) -/* 0CB7FC 800CABFC 1000000F */ b .L800CAC3C -/* 0CB800 800CAC00 00000000 */ nop -.L800CAC04: -/* 0CB804 800CAC04 8FAD002C */ lw $t5, 0x2c($sp) -/* 0CB808 800CAC08 00000000 */ nop -/* 0CB80C 800CAC0C 8DAE0000 */ lw $t6, ($t5) -/* 0CB810 800CAC10 00000000 */ nop -/* 0CB814 800CAC14 11C00009 */ beqz $t6, .L800CAC3C -/* 0CB818 800CAC18 00000000 */ nop -/* 0CB81C 800CAC1C 8FAF002C */ lw $t7, 0x2c($sp) -/* 0CB820 800CAC20 8FA50034 */ lw $a1, 0x34($sp) -/* 0CB824 800CAC24 8DF80000 */ lw $t8, ($t7) -/* 0CB828 800CAC28 8FA60038 */ lw $a2, 0x38($sp) -/* 0CB82C 800CAC2C 8F190008 */ lw $t9, 8($t8) -/* 0CB830 800CAC30 03002025 */ move $a0, $t8 -/* 0CB834 800CAC34 0320F809 */ jalr $t9 -/* 0CB838 800CAC38 00000000 */ nop -.L800CAC3C: -/* 0CB83C 800CAC3C 10000003 */ b .L800CAC4C -/* 0CB840 800CAC40 00001025 */ move $v0, $zero -/* 0CB844 800CAC44 10000001 */ b .L800CAC4C -/* 0CB848 800CAC48 00000000 */ nop -.L800CAC4C: -/* 0CB84C 800CAC4C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0CB850 800CAC50 8FB00018 */ lw $s0, 0x18($sp) -/* 0CB854 800CAC54 03E00008 */ jr $ra -/* 0CB858 800CAC58 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s b/lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s deleted file mode 100644 index 174cba8b..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel alFilterNew -/* 0CACB0 800CA0B0 AC800000 */ sw $zero, ($a0) -/* 0CACB4 800CA0B4 AC850004 */ sw $a1, 4($a0) -/* 0CACB8 800CA0B8 AC860008 */ sw $a2, 8($a0) -/* 0CACBC 800CA0BC A480000C */ sh $zero, 0xc($a0) -/* 0CACC0 800CA0C0 A480000E */ sh $zero, 0xe($a0) -/* 0CACC4 800CA0C4 03E00008 */ jr $ra -/* 0CACC8 800CA0C8 AC870010 */ sw $a3, 0x10($a0) - -/* 0CACCC 800CA0CC 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s b/lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s deleted file mode 100644 index 7079fa0c..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s +++ /dev/null @@ -1,129 +0,0 @@ -glabel alLoadParam -/* 0CC140 800CB540 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CC144 800CB544 24010004 */ li $at, 4 -/* 0CC148 800CB548 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CC14C 800CB54C 10A10055 */ beq $a1, $at, .L800CB6A4 -/* 0CC150 800CB550 00803825 */ move $a3, $a0 -/* 0CC154 800CB554 24010005 */ li $at, 5 -/* 0CC158 800CB558 54A1006B */ bnel $a1, $at, .L800CB708 -/* 0CC15C 800CB55C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC160 800CB560 AC860028 */ sw $a2, 0x28($a0) -/* 0CC164 800CB564 8CCE0000 */ lw $t6, ($a2) -/* 0CC168 800CB568 AC800038 */ sw $zero, 0x38($a0) -/* 0CC16C 800CB56C 3C0F800D */ lui $t7, %hi(alAdpcmPull) # $t7, 0x800d -/* 0CC170 800CB570 AC8E0044 */ sw $t6, 0x44($a0) -/* 0CC174 800CB574 90C20008 */ lbu $v0, 8($a2) -/* 0CC178 800CB578 50400007 */ beql $v0, $zero, .L800CB598 -/* 0CC17C 800CB57C 8CE20028 */ lw $v0, 0x28($a3) -/* 0CC180 800CB580 24040001 */ li $a0, 1 -/* 0CC184 800CB584 10440034 */ beq $v0, $a0, .L800CB658 -/* 0CC188 800CB588 3C08800D */ lui $t0, %hi(alRaw16Pull) # $t0, 0x800d -/* 0CC18C 800CB58C 1000005E */ b .L800CB708 -/* 0CC190 800CB590 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC194 800CB594 8CE20028 */ lw $v0, 0x28($a3) -.L800CB598: -/* 0CC198 800CB598 25EFBBEC */ addiu $t7, %lo(alAdpcmPull) # addiu $t7, $t7, -0x4414 -/* 0CC19C 800CB59C ACEF0004 */ sw $t7, 4($a3) -/* 0CC1A0 800CB5A0 8C580004 */ lw $t8, 4($v0) -/* 0CC1A4 800CB5A4 24050009 */ li $a1, 9 -/* 0CC1A8 800CB5A8 0305001A */ div $zero, $t8, $a1 -/* 0CC1AC 800CB5AC 0000C812 */ mflo $t9 -/* 0CC1B0 800CB5B0 14A00002 */ bnez $a1, .L800CB5BC -/* 0CC1B4 800CB5B4 00000000 */ nop -/* 0CC1B8 800CB5B8 0007000D */ break 7 -.L800CB5BC: -/* 0CC1BC 800CB5BC 2401FFFF */ li $at, -1 -/* 0CC1C0 800CB5C0 14A10004 */ bne $a1, $at, .L800CB5D4 -/* 0CC1C4 800CB5C4 3C018000 */ lui $at, 0x8000 -/* 0CC1C8 800CB5C8 17010002 */ bne $t8, $at, .L800CB5D4 -/* 0CC1CC 800CB5CC 00000000 */ nop -/* 0CC1D0 800CB5D0 0006000D */ break 6 -.L800CB5D4: -/* 0CC1D4 800CB5D4 03250019 */ multu $t9, $a1 -/* 0CC1D8 800CB5D8 00004012 */ mflo $t0 -/* 0CC1DC 800CB5DC AC480004 */ sw $t0, 4($v0) -/* 0CC1E0 800CB5E0 8CE20028 */ lw $v0, 0x28($a3) -/* 0CC1E4 800CB5E4 8C440010 */ lw $a0, 0x10($v0) -/* 0CC1E8 800CB5E8 8C890000 */ lw $t1, ($a0) -/* 0CC1EC 800CB5EC 8C8B0004 */ lw $t3, 4($a0) -/* 0CC1F0 800CB5F0 00095100 */ sll $t2, $t1, 4 -/* 0CC1F4 800CB5F4 014B0019 */ multu $t2, $t3 -/* 0CC1F8 800CB5F8 00006012 */ mflo $t4 -/* 0CC1FC 800CB5FC ACEC002C */ sw $t4, 0x2c($a3) -/* 0CC200 800CB600 8C43000C */ lw $v1, 0xc($v0) -/* 0CC204 800CB604 50600011 */ beql $v1, $zero, .L800CB64C -/* 0CC208 800CB608 ACE00024 */ sw $zero, 0x24($a3) -/* 0CC20C 800CB60C 8C6D0000 */ lw $t5, ($v1) -/* 0CC210 800CB610 8CE50018 */ lw $a1, 0x18($a3) -/* 0CC214 800CB614 24060020 */ li $a2, 32 -/* 0CC218 800CB618 ACED001C */ sw $t5, 0x1c($a3) -/* 0CC21C 800CB61C 8C4E000C */ lw $t6, 0xc($v0) -/* 0CC220 800CB620 8DCF0004 */ lw $t7, 4($t6) -/* 0CC224 800CB624 ACEF0020 */ sw $t7, 0x20($a3) -/* 0CC228 800CB628 8C58000C */ lw $t8, 0xc($v0) -/* 0CC22C 800CB62C 8F190008 */ lw $t9, 8($t8) -/* 0CC230 800CB630 ACF90024 */ sw $t9, 0x24($a3) -/* 0CC234 800CB634 8C44000C */ lw $a0, 0xc($v0) -/* 0CC238 800CB638 0C034E08 */ jal alCopy -/* 0CC23C 800CB63C 2484000C */ addiu $a0, $a0, 0xc -/* 0CC240 800CB640 10000031 */ b .L800CB708 -/* 0CC244 800CB644 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC248 800CB648 ACE00024 */ sw $zero, 0x24($a3) -.L800CB64C: -/* 0CC24C 800CB64C ACE00020 */ sw $zero, 0x20($a3) -/* 0CC250 800CB650 1000002C */ b .L800CB704 -/* 0CC254 800CB654 ACE0001C */ sw $zero, 0x1c($a3) -.L800CB658: -/* 0CC258 800CB658 8CE20028 */ lw $v0, 0x28($a3) -/* 0CC25C 800CB65C 2508B714 */ addiu $t0, %lo(alRaw16Pull) # addiu $t0, $t0, -0x48ec -/* 0CC260 800CB660 ACE80004 */ sw $t0, 4($a3) -/* 0CC264 800CB664 8C43000C */ lw $v1, 0xc($v0) -/* 0CC268 800CB668 5060000B */ beql $v1, $zero, .L800CB698 -/* 0CC26C 800CB66C ACE00024 */ sw $zero, 0x24($a3) -/* 0CC270 800CB670 8C690000 */ lw $t1, ($v1) -/* 0CC274 800CB674 ACE9001C */ sw $t1, 0x1c($a3) -/* 0CC278 800CB678 8C4A000C */ lw $t2, 0xc($v0) -/* 0CC27C 800CB67C 8D4B0004 */ lw $t3, 4($t2) -/* 0CC280 800CB680 ACEB0020 */ sw $t3, 0x20($a3) -/* 0CC284 800CB684 8C4C000C */ lw $t4, 0xc($v0) -/* 0CC288 800CB688 8D8D0008 */ lw $t5, 8($t4) -/* 0CC28C 800CB68C 1000001D */ b .L800CB704 -/* 0CC290 800CB690 ACED0024 */ sw $t5, 0x24($a3) -/* 0CC294 800CB694 ACE00024 */ sw $zero, 0x24($a3) -.L800CB698: -/* 0CC298 800CB698 ACE00020 */ sw $zero, 0x20($a3) -/* 0CC29C 800CB69C 10000019 */ b .L800CB704 -/* 0CC2A0 800CB6A0 ACE0001C */ sw $zero, 0x1c($a3) -.L800CB6A4: -/* 0CC2A4 800CB6A4 8CE20028 */ lw $v0, 0x28($a3) -/* 0CC2A8 800CB6A8 24040001 */ li $a0, 1 -/* 0CC2AC 800CB6AC ACE0003C */ sw $zero, 0x3c($a3) -/* 0CC2B0 800CB6B0 ACE40040 */ sw $a0, 0x40($a3) -/* 0CC2B4 800CB6B4 10400013 */ beqz $v0, .L800CB704 -/* 0CC2B8 800CB6B8 ACE00038 */ sw $zero, 0x38($a3) -/* 0CC2BC 800CB6BC 8C4E0000 */ lw $t6, ($v0) -/* 0CC2C0 800CB6C0 ACEE0044 */ sw $t6, 0x44($a3) -/* 0CC2C4 800CB6C4 90430008 */ lbu $v1, 8($v0) -/* 0CC2C8 800CB6C8 14600007 */ bnez $v1, .L800CB6E8 -/* 0CC2CC 800CB6CC 00000000 */ nop -/* 0CC2D0 800CB6D0 8C43000C */ lw $v1, 0xc($v0) -/* 0CC2D4 800CB6D4 5060000C */ beql $v1, $zero, .L800CB708 -/* 0CC2D8 800CB6D8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC2DC 800CB6DC 8C6F0008 */ lw $t7, 8($v1) -/* 0CC2E0 800CB6E0 10000008 */ b .L800CB704 -/* 0CC2E4 800CB6E4 ACEF0024 */ sw $t7, 0x24($a3) -.L800CB6E8: -/* 0CC2E8 800CB6E8 54830007 */ bnel $a0, $v1, .L800CB708 -/* 0CC2EC 800CB6EC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC2F0 800CB6F0 8C43000C */ lw $v1, 0xc($v0) -/* 0CC2F4 800CB6F4 50600004 */ beql $v1, $zero, .L800CB708 -/* 0CC2F8 800CB6F8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC2FC 800CB6FC 8C780008 */ lw $t8, 8($v1) -/* 0CC300 800CB700 ACF80024 */ sw $t8, 0x24($a3) -.L800CB704: -/* 0CC304 800CB704 8FBF0014 */ lw $ra, 0x14($sp) -.L800CB708: -/* 0CC308 800CB708 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CC30C 800CB70C 03E00008 */ jr $ra -/* 0CC310 800CB710 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s b/lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s deleted file mode 100644 index 405b6976..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s +++ /dev/null @@ -1,256 +0,0 @@ -glabel alRaw16Pull -/* 0CC314 800CB714 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0CC318 800CB718 8FA80060 */ lw $t0, 0x60($sp) -/* 0CC31C 800CB71C AFB30020 */ sw $s3, 0x20($sp) -/* 0CC320 800CB720 AFB00014 */ sw $s0, 0x14($sp) -/* 0CC324 800CB724 00808025 */ move $s0, $a0 -/* 0CC328 800CB728 00C09825 */ move $s3, $a2 -/* 0CC32C 800CB72C AFBF0024 */ sw $ra, 0x24($sp) -/* 0CC330 800CB730 AFB2001C */ sw $s2, 0x1c($sp) -/* 0CC334 800CB734 AFB10018 */ sw $s1, 0x18($sp) -/* 0CC338 800CB738 AFA7005C */ sw $a3, 0x5c($sp) -/* 0CC33C 800CB73C 00A05025 */ move $t2, $a1 -/* 0CC340 800CB740 14C00003 */ bnez $a2, .L800CB750 -/* 0CC344 800CB744 01004825 */ move $t1, $t0 -/* 0CC348 800CB748 100000D6 */ b .L800CBAA4 -/* 0CC34C 800CB74C 01001025 */ move $v0, $t0 -.L800CB750: -/* 0CC350 800CB750 8E020038 */ lw $v0, 0x38($s0) -/* 0CC354 800CB754 8E030020 */ lw $v1, 0x20($s0) -/* 0CC358 800CB758 00537021 */ addu $t6, $v0, $s3 -/* 0CC35C 800CB75C 006E082B */ sltu $at, $v1, $t6 -/* 0CC360 800CB760 50200084 */ beql $at, $zero, .L800CB974 -/* 0CC364 800CB764 8E020028 */ lw $v0, 0x28($s0) -/* 0CC368 800CB768 8E0F0024 */ lw $t7, 0x24($s0) -/* 0CC36C 800CB76C 00629023 */ subu $s2, $v1, $v0 -/* 0CC370 800CB770 51E00080 */ beql $t7, $zero, .L800CB974 -/* 0CC374 800CB774 8E020028 */ lw $v0, 0x28($s0) -/* 0CC378 800CB778 1A40001E */ blez $s2, .L800CB7F4 -/* 0CC37C 800CB77C 00128840 */ sll $s1, $s2, 1 -/* 0CC380 800CB780 8E040044 */ lw $a0, 0x44($s0) -/* 0CC384 800CB784 8E060034 */ lw $a2, 0x34($s0) -/* 0CC388 800CB788 AFAA0054 */ sw $t2, 0x54($sp) -/* 0CC38C 800CB78C 8E190030 */ lw $t9, 0x30($s0) -/* 0CC390 800CB790 02202825 */ move $a1, $s1 -/* 0CC394 800CB794 0320F809 */ jalr $t9 -/* 0CC398 800CB798 00000000 */ nop -/* 0CC39C 800CB79C 8FAA0054 */ lw $t2, 0x54($sp) -/* 0CC3A0 800CB7A0 30460007 */ andi $a2, $v0, 7 -/* 0CC3A4 800CB7A4 8FA80060 */ lw $t0, 0x60($sp) -/* 0CC3A8 800CB7A8 85580000 */ lh $t8, ($t2) -/* 0CC3AC 800CB7AC 02263821 */ addu $a3, $s1, $a2 -/* 0CC3B0 800CB7B0 30ED0007 */ andi $t5, $a3, 7 -/* 0CC3B4 800CB7B4 00ED7023 */ subu $t6, $a3, $t5 -/* 0CC3B8 800CB7B8 3C010800 */ lui $at, 0x800 -/* 0CC3BC 800CB7BC 330BFFFF */ andi $t3, $t8, 0xffff -/* 0CC3C0 800CB7C0 01616025 */ or $t4, $t3, $at -/* 0CC3C4 800CB7C4 25CF0008 */ addiu $t7, $t6, 8 -/* 0CC3C8 800CB7C8 25090008 */ addiu $t1, $t0, 8 -/* 0CC3CC 800CB7CC 31F9FFFF */ andi $t9, $t7, 0xffff -/* 0CC3D0 800CB7D0 01202025 */ move $a0, $t1 -/* 0CC3D4 800CB7D4 00465823 */ subu $t3, $v0, $a2 -/* 0CC3D8 800CB7D8 3C180400 */ lui $t8, 0x400 -/* 0CC3DC 800CB7DC AD190004 */ sw $t9, 4($t0) -/* 0CC3E0 800CB7E0 AD0C0000 */ sw $t4, ($t0) -/* 0CC3E4 800CB7E4 AC8B0004 */ sw $t3, 4($a0) -/* 0CC3E8 800CB7E8 AC980000 */ sw $t8, ($a0) -/* 0CC3EC 800CB7EC 10000002 */ b .L800CB7F8 -/* 0CC3F0 800CB7F0 25290008 */ addiu $t1, $t1, 8 -.L800CB7F4: -/* 0CC3F4 800CB7F4 00003025 */ move $a2, $zero -.L800CB7F8: -/* 0CC3F8 800CB7F8 854C0000 */ lh $t4, ($t2) -/* 0CC3FC 800CB7FC 0253082A */ slt $at, $s2, $s3 -/* 0CC400 800CB800 01866821 */ addu $t5, $t4, $a2 -/* 0CC404 800CB804 A54D0000 */ sh $t5, ($t2) -/* 0CC408 800CB808 8E0E0028 */ lw $t6, 0x28($s0) -/* 0CC40C 800CB80C 8E02001C */ lw $v0, 0x1c($s0) -/* 0CC410 800CB810 8DCF0000 */ lw $t7, ($t6) -/* 0CC414 800CB814 0002C840 */ sll $t9, $v0, 1 -/* 0CC418 800CB818 AE020038 */ sw $v0, 0x38($s0) -/* 0CC41C 800CB81C 01F9C021 */ addu $t8, $t7, $t9 -/* 0CC420 800CB820 AE180044 */ sw $t8, 0x44($s0) -/* 0CC424 800CB824 10200049 */ beqz $at, .L800CB94C -/* 0CC428 800CB828 85480000 */ lh $t0, ($t2) -/* 0CC42C 800CB82C 8E020024 */ lw $v0, 0x24($s0) -.L800CB830: -/* 0CC430 800CB830 2401FFFF */ li $at, -1 -/* 0CC434 800CB834 01114021 */ addu $t0, $t0, $s1 -/* 0CC438 800CB838 10410004 */ beq $v0, $at, .L800CB84C -/* 0CC43C 800CB83C 02729823 */ subu $s3, $s3, $s2 -/* 0CC440 800CB840 10400002 */ beqz $v0, .L800CB84C -/* 0CC444 800CB844 244BFFFF */ addiu $t3, $v0, -1 -/* 0CC448 800CB848 AE0B0024 */ sw $t3, 0x24($s0) -.L800CB84C: -/* 0CC44C 800CB84C 8E0C0020 */ lw $t4, 0x20($s0) -/* 0CC450 800CB850 8E0D001C */ lw $t5, 0x1c($s0) -/* 0CC454 800CB854 018D1023 */ subu $v0, $t4, $t5 -/* 0CC458 800CB858 0262082B */ sltu $at, $s3, $v0 -/* 0CC45C 800CB85C 10200003 */ beqz $at, .L800CB86C -/* 0CC460 800CB860 00409025 */ move $s2, $v0 -/* 0CC464 800CB864 10000001 */ b .L800CB86C -/* 0CC468 800CB868 02609025 */ move $s2, $s3 -.L800CB86C: -/* 0CC46C 800CB86C 8E040044 */ lw $a0, 0x44($s0) -/* 0CC470 800CB870 8E060034 */ lw $a2, 0x34($s0) -/* 0CC474 800CB874 AFA9004C */ sw $t1, 0x4c($sp) -/* 0CC478 800CB878 AFA8002C */ sw $t0, 0x2c($sp) -/* 0CC47C 800CB87C 8E190030 */ lw $t9, 0x30($s0) -/* 0CC480 800CB880 00128840 */ sll $s1, $s2, 1 -/* 0CC484 800CB884 02202825 */ move $a1, $s1 -/* 0CC488 800CB888 0320F809 */ jalr $t9 -/* 0CC48C 800CB88C 00000000 */ nop -/* 0CC490 800CB890 8FA8002C */ lw $t0, 0x2c($sp) -/* 0CC494 800CB894 30450007 */ andi $a1, $v0, 7 -/* 0CC498 800CB898 8FA9004C */ lw $t1, 0x4c($sp) -/* 0CC49C 800CB89C 31030007 */ andi $v1, $t0, 7 -/* 0CC4A0 800CB8A0 10600004 */ beqz $v1, .L800CB8B4 -/* 0CC4A4 800CB8A4 02253821 */ addu $a3, $s1, $a1 -/* 0CC4A8 800CB8A8 240E0008 */ li $t6, 8 -/* 0CC4AC 800CB8AC 10000002 */ b .L800CB8B8 -/* 0CC4B0 800CB8B0 01C33023 */ subu $a2, $t6, $v1 -.L800CB8B4: -/* 0CC4B4 800CB8B4 00003025 */ move $a2, $zero -.L800CB8B8: -/* 0CC4B8 800CB8B8 01067821 */ addu $t7, $t0, $a2 -/* 0CC4BC 800CB8BC 30EC0007 */ andi $t4, $a3, 7 -/* 0CC4C0 800CB8C0 00EC6823 */ subu $t5, $a3, $t4 -/* 0CC4C4 800CB8C4 31F8FFFF */ andi $t8, $t7, 0xffff -/* 0CC4C8 800CB8C8 01201825 */ move $v1, $t1 -/* 0CC4CC 800CB8CC 3C010800 */ lui $at, 0x800 -/* 0CC4D0 800CB8D0 03015825 */ or $t3, $t8, $at -/* 0CC4D4 800CB8D4 25290008 */ addiu $t1, $t1, 8 -/* 0CC4D8 800CB8D8 25B90008 */ addiu $t9, $t5, 8 -/* 0CC4DC 800CB8DC 332EFFFF */ andi $t6, $t9, 0xffff -/* 0CC4E0 800CB8E0 01202025 */ move $a0, $t1 -/* 0CC4E4 800CB8E4 AC6E0004 */ sw $t6, 4($v1) -/* 0CC4E8 800CB8E8 AC6B0000 */ sw $t3, ($v1) -/* 0CC4EC 800CB8EC 0045C023 */ subu $t8, $v0, $a1 -/* 0CC4F0 800CB8F0 3C0F0400 */ lui $t7, 0x400 -/* 0CC4F4 800CB8F4 AC8F0000 */ sw $t7, ($a0) -/* 0CC4F8 800CB8F8 AC980004 */ sw $t8, 4($a0) -/* 0CC4FC 800CB8FC 14A00002 */ bnez $a1, .L800CB908 -/* 0CC500 800CB900 25290008 */ addiu $t1, $t1, 8 -/* 0CC504 800CB904 10C0000E */ beqz $a2, .L800CB940 -.L800CB908: -/* 0CC508 800CB908 01055821 */ addu $t3, $t0, $a1 -/* 0CC50C 800CB90C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0CC510 800CB910 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CC514 800CB914 01666021 */ addu $t4, $t3, $a2 -/* 0CC518 800CB918 01816824 */ and $t5, $t4, $at -/* 0CC51C 800CB91C 01201025 */ move $v0, $t1 -/* 0CC520 800CB920 3C010A00 */ lui $at, 0xa00 -/* 0CC524 800CB924 00087C00 */ sll $t7, $t0, 0x10 -/* 0CC528 800CB928 3238FFFF */ andi $t8, $s1, 0xffff -/* 0CC52C 800CB92C 01F85825 */ or $t3, $t7, $t8 -/* 0CC530 800CB930 01A1C825 */ or $t9, $t5, $at -/* 0CC534 800CB934 AC590000 */ sw $t9, ($v0) -/* 0CC538 800CB938 AC4B0004 */ sw $t3, 4($v0) -/* 0CC53C 800CB93C 25290008 */ addiu $t1, $t1, 8 -.L800CB940: -/* 0CC540 800CB940 0253082A */ slt $at, $s2, $s3 -/* 0CC544 800CB944 5420FFBA */ bnezl $at, .L800CB830 -/* 0CC548 800CB948 8E020024 */ lw $v0, 0x24($s0) -.L800CB94C: -/* 0CC54C 800CB94C 8E0C0038 */ lw $t4, 0x38($s0) -/* 0CC550 800CB950 8E190044 */ lw $t9, 0x44($s0) -/* 0CC554 800CB954 00137040 */ sll $t6, $s3, 1 -/* 0CC558 800CB958 01936821 */ addu $t5, $t4, $s3 -/* 0CC55C 800CB95C 032E7821 */ addu $t7, $t9, $t6 -/* 0CC560 800CB960 AE0D0038 */ sw $t5, 0x38($s0) -/* 0CC564 800CB964 AE0F0044 */ sw $t7, 0x44($s0) -/* 0CC568 800CB968 1000004E */ b .L800CBAA4 -/* 0CC56C 800CB96C 01201025 */ move $v0, $t1 -/* 0CC570 800CB970 8E020028 */ lw $v0, 0x28($s0) -.L800CB974: -/* 0CC574 800CB974 8E040044 */ lw $a0, 0x44($s0) -/* 0CC578 800CB978 00138840 */ sll $s1, $s3, 1 -/* 0CC57C 800CB97C 8C580000 */ lw $t8, ($v0) -/* 0CC580 800CB980 8C4C0004 */ lw $t4, 4($v0) -/* 0CC584 800CB984 00911821 */ addu $v1, $a0, $s1 -/* 0CC588 800CB988 00785823 */ subu $t3, $v1, $t8 -/* 0CC58C 800CB98C 016C9023 */ subu $s2, $t3, $t4 -/* 0CC590 800CB990 06430003 */ bgezl $s2, .L800CB9A0 -/* 0CC594 800CB994 0232082A */ slt $at, $s1, $s2 -/* 0CC598 800CB998 00009025 */ move $s2, $zero -/* 0CC59C 800CB99C 0232082A */ slt $at, $s1, $s2 -.L800CB9A0: -/* 0CC5A0 800CB9A0 50200003 */ beql $at, $zero, .L800CB9B0 -/* 0CC5A4 800CB9A4 0251082A */ slt $at, $s2, $s1 -/* 0CC5A8 800CB9A8 02209025 */ move $s2, $s1 -/* 0CC5AC 800CB9AC 0251082A */ slt $at, $s2, $s1 -.L800CB9B0: -/* 0CC5B0 800CB9B0 5020002C */ beql $at, $zero, .L800CBA64 -/* 0CC5B4 800CB9B4 AE030044 */ sw $v1, 0x44($s0) -/* 0CC5B8 800CB9B8 1A60001F */ blez $s3, .L800CBA38 -/* 0CC5BC 800CB9BC 00003025 */ move $a2, $zero -/* 0CC5C0 800CB9C0 8E060034 */ lw $a2, 0x34($s0) -/* 0CC5C4 800CB9C4 02322823 */ subu $a1, $s1, $s2 -/* 0CC5C8 800CB9C8 AFA50048 */ sw $a1, 0x48($sp) -/* 0CC5CC 800CB9CC AFAA0054 */ sw $t2, 0x54($sp) -/* 0CC5D0 800CB9D0 8E190030 */ lw $t9, 0x30($s0) -/* 0CC5D4 800CB9D4 0320F809 */ jalr $t9 -/* 0CC5D8 800CB9D8 00000000 */ nop -/* 0CC5DC 800CB9DC 8FAA0054 */ lw $t2, 0x54($sp) -/* 0CC5E0 800CB9E0 8FA70048 */ lw $a3, 0x48($sp) -/* 0CC5E4 800CB9E4 30460007 */ andi $a2, $v0, 7 -/* 0CC5E8 800CB9E8 854D0000 */ lh $t5, ($t2) -/* 0CC5EC 800CB9EC 8FA80060 */ lw $t0, 0x60($sp) -/* 0CC5F0 800CB9F0 00E63821 */ addu $a3, $a3, $a2 -/* 0CC5F4 800CB9F4 30F80007 */ andi $t8, $a3, 7 -/* 0CC5F8 800CB9F8 00F85823 */ subu $t3, $a3, $t8 -/* 0CC5FC 800CB9FC 3C010800 */ lui $at, 0x800 -/* 0CC600 800CBA00 31AEFFFF */ andi $t6, $t5, 0xffff -/* 0CC604 800CBA04 01C17825 */ or $t7, $t6, $at -/* 0CC608 800CBA08 256C0008 */ addiu $t4, $t3, 8 -/* 0CC60C 800CBA0C 25090008 */ addiu $t1, $t0, 8 -/* 0CC610 800CBA10 3199FFFF */ andi $t9, $t4, 0xffff -/* 0CC614 800CBA14 01202025 */ move $a0, $t1 -/* 0CC618 800CBA18 00467023 */ subu $t6, $v0, $a2 -/* 0CC61C 800CBA1C 3C0D0400 */ lui $t5, 0x400 -/* 0CC620 800CBA20 AD190004 */ sw $t9, 4($t0) -/* 0CC624 800CBA24 AD0F0000 */ sw $t7, ($t0) -/* 0CC628 800CBA28 AC8E0004 */ sw $t6, 4($a0) -/* 0CC62C 800CBA2C AC8D0000 */ sw $t5, ($a0) -/* 0CC630 800CBA30 10000001 */ b .L800CBA38 -/* 0CC634 800CBA34 25290008 */ addiu $t1, $t1, 8 -.L800CBA38: -/* 0CC638 800CBA38 854F0000 */ lh $t7, ($t2) -/* 0CC63C 800CBA3C 01E6C021 */ addu $t8, $t7, $a2 -/* 0CC640 800CBA40 A5580000 */ sh $t8, ($t2) -/* 0CC644 800CBA44 8E0B0038 */ lw $t3, 0x38($s0) -/* 0CC648 800CBA48 8E190044 */ lw $t9, 0x44($s0) -/* 0CC64C 800CBA4C 01736021 */ addu $t4, $t3, $s3 -/* 0CC650 800CBA50 03316821 */ addu $t5, $t9, $s1 -/* 0CC654 800CBA54 AE0C0038 */ sw $t4, 0x38($s0) -/* 0CC658 800CBA58 10000002 */ b .L800CBA64 -/* 0CC65C 800CBA5C AE0D0044 */ sw $t5, 0x44($s0) -/* 0CC660 800CBA60 AE030044 */ sw $v1, 0x44($s0) -.L800CBA64: -/* 0CC664 800CBA64 1240000E */ beqz $s2, .L800CBAA0 -/* 0CC668 800CBA68 02321823 */ subu $v1, $s1, $s2 -/* 0CC66C 800CBA6C 04610002 */ bgez $v1, .L800CBA78 -/* 0CC670 800CBA70 01201025 */ move $v0, $t1 -/* 0CC674 800CBA74 00001825 */ move $v1, $zero -.L800CBA78: -/* 0CC678 800CBA78 854E0000 */ lh $t6, ($t2) -/* 0CC67C 800CBA7C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0CC680 800CBA80 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CC684 800CBA84 01C37821 */ addu $t7, $t6, $v1 -/* 0CC688 800CBA88 01E1C024 */ and $t8, $t7, $at -/* 0CC68C 800CBA8C 3C010200 */ lui $at, 0x200 -/* 0CC690 800CBA90 03015825 */ or $t3, $t8, $at -/* 0CC694 800CBA94 AC4B0000 */ sw $t3, ($v0) -/* 0CC698 800CBA98 AC520004 */ sw $s2, 4($v0) -/* 0CC69C 800CBA9C 25290008 */ addiu $t1, $t1, 8 -.L800CBAA0: -/* 0CC6A0 800CBAA0 01201025 */ move $v0, $t1 -.L800CBAA4: -/* 0CC6A4 800CBAA4 8FBF0024 */ lw $ra, 0x24($sp) -/* 0CC6A8 800CBAA8 8FB00014 */ lw $s0, 0x14($sp) -/* 0CC6AC 800CBAAC 8FB10018 */ lw $s1, 0x18($sp) -/* 0CC6B0 800CBAB0 8FB2001C */ lw $s2, 0x1c($sp) -/* 0CC6B4 800CBAB4 8FB30020 */ lw $s3, 0x20($sp) -/* 0CC6B8 800CBAB8 03E00008 */ jr $ra -/* 0CC6BC 800CBABC 27BD0050 */ addiu $sp, $sp, 0x50 - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s b/lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s deleted file mode 100644 index bbe73705..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s +++ /dev/null @@ -1,75 +0,0 @@ -.late_rodata -glabel jpt_800E9600 -.word L800CC0C0, L800CC150, L800CC150, L800CC0C8, L800CC150, L800CC150, L800CC134, L800CC144, L800CC104 - -.text -glabel alResampleParam -/* 0CCC90 800CC090 24AEFFFF */ addiu $t6, $a1, -1 -/* 0CCC94 800CC094 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0CCC98 800CC098 2DC10009 */ sltiu $at, $t6, 9 -/* 0CCC9C 800CC09C AFBF0014 */ sw $ra, 0x14($sp) -/* 0CCCA0 800CC0A0 1020002B */ beqz $at, .L800CC150 -/* 0CCCA4 800CC0A4 00803825 */ move $a3, $a0 -/* 0CCCA8 800CC0A8 000E7080 */ sll $t6, $t6, 2 -/* 0CCCAC 800CC0AC 3C01800F */ lui $at, %hi(jpt_800E9600) # $at, 0x800f -/* 0CCCB0 800CC0B0 002E0821 */ addu $at, $at, $t6 -/* 0CCCB4 800CC0B4 8C2E9600 */ lw $t6, %lo(jpt_800E9600)($at) -/* 0CCCB8 800CC0B8 01C00008 */ jr $t6 -/* 0CCCBC 800CC0BC 00000000 */ nop -glabel L800CC0C0 -/* 0CCCC0 800CC0C0 10000029 */ b .L800CC168 -/* 0CCCC4 800CC0C4 ACE60000 */ sw $a2, ($a3) -glabel L800CC0C8 -/* 0CCCC8 800CC0C8 8CE40000 */ lw $a0, ($a3) -/* 0CCCCC 800CC0CC 44802000 */ mtc1 $zero, $f4 -/* 0CCCD0 800CC0D0 240F0001 */ li $t7, 1 -/* 0CCCD4 800CC0D4 ACEF0024 */ sw $t7, 0x24($a3) -/* 0CCCD8 800CC0D8 ACE00030 */ sw $zero, 0x30($a3) -/* 0CCCDC 800CC0DC ACE0001C */ sw $zero, 0x1c($a3) -/* 0CCCE0 800CC0E0 10800021 */ beqz $a0, .L800CC168 -/* 0CCCE4 800CC0E4 E4E40020 */ swc1 $f4, 0x20($a3) -/* 0CCCE8 800CC0E8 8C990008 */ lw $t9, 8($a0) -/* 0CCCEC 800CC0EC 24050004 */ li $a1, 4 -/* 0CCCF0 800CC0F0 00003025 */ move $a2, $zero -/* 0CCCF4 800CC0F4 0320F809 */ jalr $t9 -/* 0CCCF8 800CC0F8 00000000 */ nop -/* 0CCCFC 800CC0FC 1000001B */ b .L800CC16C -/* 0CCD00 800CC100 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800CC104 -/* 0CCD04 800CC104 8CE40000 */ lw $a0, ($a3) -/* 0CCD08 800CC108 24180001 */ li $t8, 1 -/* 0CCD0C 800CC10C ACF80030 */ sw $t8, 0x30($a3) -/* 0CCD10 800CC110 50800016 */ beql $a0, $zero, .L800CC16C -/* 0CCD14 800CC114 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CCD18 800CC118 8C990008 */ lw $t9, 8($a0) -/* 0CCD1C 800CC11C 24050009 */ li $a1, 9 -/* 0CCD20 800CC120 00003025 */ move $a2, $zero -/* 0CCD24 800CC124 0320F809 */ jalr $t9 -/* 0CCD28 800CC128 00000000 */ nop -/* 0CCD2C 800CC12C 1000000F */ b .L800CC16C -/* 0CCD30 800CC130 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800CC134 -/* 0CCD34 800CC134 AFA6001C */ sw $a2, 0x1c($sp) -/* 0CCD38 800CC138 C7A6001C */ lwc1 $f6, 0x1c($sp) -/* 0CCD3C 800CC13C 1000000A */ b .L800CC168 -/* 0CCD40 800CC140 E4E60018 */ swc1 $f6, 0x18($a3) -glabel L800CC144 -/* 0CCD44 800CC144 24080001 */ li $t0, 1 -/* 0CCD48 800CC148 10000007 */ b .L800CC168 -/* 0CCD4C 800CC14C ACE8001C */ sw $t0, 0x1c($a3) -.L800CC150: -glabel L800CC150 -/* 0CCD50 800CC150 8CE40000 */ lw $a0, ($a3) -/* 0CCD54 800CC154 50800005 */ beql $a0, $zero, .L800CC16C -/* 0CCD58 800CC158 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CCD5C 800CC15C 8C990008 */ lw $t9, 8($a0) -/* 0CCD60 800CC160 0320F809 */ jalr $t9 -/* 0CCD64 800CC164 00000000 */ nop -.L800CC168: -/* 0CCD68 800CC168 8FBF0014 */ lw $ra, 0x14($sp) -.L800CC16C: -/* 0CCD6C 800CC16C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0CCD70 800CC170 00001025 */ move $v0, $zero -/* 0CCD74 800CC174 03E00008 */ jr $ra -/* 0CCD78 800CC178 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s b/lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s deleted file mode 100644 index 3031182a..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s +++ /dev/null @@ -1,148 +0,0 @@ -.late_rodata -glabel D_800E9628 -.double 1.99996 -glabel D_800E9630 -.float 1.99996 - -.text -glabel alResamplePull -/* 0CCD7C 800CC17C 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0CCD80 800CC180 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CCD84 800CC184 AFA50054 */ sw $a1, 0x54($sp) -/* 0CCD88 800CC188 8C890000 */ lw $t1, ($a0) -/* 0CCD8C 800CC18C 240E0140 */ li $t6, 320 -/* 0CCD90 800CC190 00804025 */ move $t0, $a0 -/* 0CCD94 800CC194 00C05025 */ move $t2, $a2 -/* 0CCD98 800CC198 14C00003 */ bnez $a2, .L800CC1A8 -/* 0CCD9C 800CC19C A7AE0046 */ sh $t6, 0x46($sp) -/* 0CCDA0 800CC1A0 10000074 */ b .L800CC374 -/* 0CCDA4 800CC1A4 8FA20060 */ lw $v0, 0x60($sp) -.L800CC1A8: -/* 0CCDA8 800CC1A8 8D0F001C */ lw $t7, 0x1c($t0) -/* 0CCDAC 800CC1AC 8FB80060 */ lw $t8, 0x60($sp) -/* 0CCDB0 800CC1B0 51E0001A */ beql $t7, $zero, .L800CC21C -/* 0CCDB4 800CC1B4 C5020018 */ lwc1 $f2, 0x18($t0) -/* 0CCDB8 800CC1B8 AFB80010 */ sw $t8, 0x10($sp) -/* 0CCDBC 800CC1BC AFAA0058 */ sw $t2, 0x58($sp) -/* 0CCDC0 800CC1C0 8D390004 */ lw $t9, 4($t1) -/* 0CCDC4 800CC1C4 01202025 */ move $a0, $t1 -/* 0CCDC8 800CC1C8 27A50046 */ addiu $a1, $sp, 0x46 -/* 0CCDCC 800CC1CC 0320F809 */ jalr $t9 -/* 0CCDD0 800CC1D0 01403025 */ move $a2, $t2 -/* 0CCDD4 800CC1D4 87AB0046 */ lh $t3, 0x46($sp) -/* 0CCDD8 800CC1D8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0CCDDC 800CC1DC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CCDE0 800CC1E0 01616024 */ and $t4, $t3, $at -/* 0CCDE4 800CC1E4 3C010A00 */ lui $at, 0xa00 -/* 0CCDE8 800CC1E8 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CCDEC 800CC1EC 01816825 */ or $t5, $t4, $at -/* 0CCDF0 800CC1F0 AC4D0000 */ sw $t5, ($v0) -/* 0CCDF4 800CC1F4 8FAE0054 */ lw $t6, 0x54($sp) -/* 0CCDF8 800CC1F8 000A5840 */ sll $t3, $t2, 1 -/* 0CCDFC 800CC1FC 316CFFFF */ andi $t4, $t3, 0xffff -/* 0CCE00 800CC200 85D80000 */ lh $t8, ($t6) -/* 0CCE04 800CC204 24450008 */ addiu $a1, $v0, 8 -/* 0CCE08 800CC208 0018CC00 */ sll $t9, $t8, 0x10 -/* 0CCE0C 800CC20C 032C6825 */ or $t5, $t9, $t4 -/* 0CCE10 800CC210 10000057 */ b .L800CC370 -/* 0CCE14 800CC214 AC4D0004 */ sw $t5, 4($v0) -/* 0CCE18 800CC218 C5020018 */ lwc1 $f2, 0x18($t0) -.L800CC21C: -/* 0CCE1C 800CC21C 3C01800F */ lui $at, %hi(D_800E9628) # $at, 0x800f -/* 0CCE20 800CC220 D4249628 */ ldc1 $f4, %lo(D_800E9628)($at) -/* 0CCE24 800CC224 460011A1 */ cvt.d.s $f6, $f2 -/* 0CCE28 800CC228 3C01800F */ lui $at, 0x800f -/* 0CCE2C 800CC22C 4626203C */ c.lt.d $f4, $f6 -/* 0CCE30 800CC230 00000000 */ nop -/* 0CCE34 800CC234 45020005 */ bc1fl .L800CC24C -/* 0CCE38 800CC238 3C014700 */ lui $at, 0x4700 -/* 0CCE3C 800CC23C C4289630 */ lwc1 $f8, %lo(D_800E9630)($at) -/* 0CCE40 800CC240 E5080018 */ swc1 $f8, 0x18($t0) -/* 0CCE44 800CC244 C5020018 */ lwc1 $f2, 0x18($t0) -/* 0CCE48 800CC248 3C014700 */ li $at, 0x47000000 # 32768.000000 -.L800CC24C: -/* 0CCE4C 800CC24C 44816000 */ mtc1 $at, $f12 -/* 0CCE50 800CC250 01202025 */ move $a0, $t1 -/* 0CCE54 800CC254 27A50046 */ addiu $a1, $sp, 0x46 -/* 0CCE58 800CC258 460C1282 */ mul.s $f10, $f2, $f12 -/* 0CCE5C 800CC25C 4600540D */ trunc.w.s $f16, $f10 -/* 0CCE60 800CC260 440F8000 */ mfc1 $t7, $f16 -/* 0CCE64 800CC264 448A8000 */ mtc1 $t2, $f16 -/* 0CCE68 800CC268 448F9000 */ mtc1 $t7, $f18 -/* 0CCE6C 800CC26C 00000000 */ nop -/* 0CCE70 800CC270 46809120 */ cvt.s.w $f4, $f18 -/* 0CCE74 800CC274 468084A0 */ cvt.s.w $f18, $f16 -/* 0CCE78 800CC278 E5040018 */ swc1 $f4, 0x18($t0) -/* 0CCE7C 800CC27C C5060018 */ lwc1 $f6, 0x18($t0) -/* 0CCE80 800CC280 460C3203 */ div.s $f8, $f6, $f12 -/* 0CCE84 800CC284 C5060020 */ lwc1 $f6, 0x20($t0) -/* 0CCE88 800CC288 E5080018 */ swc1 $f8, 0x18($t0) -/* 0CCE8C 800CC28C C50A0018 */ lwc1 $f10, 0x18($t0) -/* 0CCE90 800CC290 46125102 */ mul.s $f4, $f10, $f18 -/* 0CCE94 800CC294 46043000 */ add.s $f0, $f6, $f4 -/* 0CCE98 800CC298 4600020D */ trunc.w.s $f8, $f0 -/* 0CCE9C 800CC29C 44064000 */ mfc1 $a2, $f8 -/* 0CCEA0 800CC2A0 00000000 */ nop -/* 0CCEA4 800CC2A4 44868000 */ mtc1 $a2, $f16 -/* 0CCEA8 800CC2A8 00000000 */ nop -/* 0CCEAC 800CC2AC 468082A0 */ cvt.s.w $f10, $f16 -/* 0CCEB0 800CC2B0 460A0481 */ sub.s $f18, $f0, $f10 -/* 0CCEB4 800CC2B4 E5120020 */ swc1 $f18, 0x20($t0) -/* 0CCEB8 800CC2B8 8FAB0060 */ lw $t3, 0x60($sp) -/* 0CCEBC 800CC2BC AFAA0058 */ sw $t2, 0x58($sp) -/* 0CCEC0 800CC2C0 AFA80050 */ sw $t0, 0x50($sp) -/* 0CCEC4 800CC2C4 AFAB0010 */ sw $t3, 0x10($sp) -/* 0CCEC8 800CC2C8 8D390004 */ lw $t9, 4($t1) -/* 0CCECC 800CC2CC 0320F809 */ jalr $t9 -/* 0CCED0 800CC2D0 00000000 */ nop -/* 0CCED4 800CC2D4 8FA80050 */ lw $t0, 0x50($sp) -/* 0CCED8 800CC2D8 87AD0046 */ lh $t5, 0x46($sp) -/* 0CCEDC 800CC2DC 3C014700 */ li $at, 0x47000000 # 32768.000000 -/* 0CCEE0 800CC2E0 44812000 */ mtc1 $at, $f4 -/* 0CCEE4 800CC2E4 C5060018 */ lwc1 $f6, 0x18($t0) -/* 0CCEE8 800CC2E8 3C010800 */ lui $at, 0x800 -/* 0CCEEC 800CC2EC 31AEFFFF */ andi $t6, $t5, 0xffff -/* 0CCEF0 800CC2F0 8FAA0058 */ lw $t2, 0x58($sp) -/* 0CCEF4 800CC2F4 01C17825 */ or $t7, $t6, $at -/* 0CCEF8 800CC2F8 AC4F0000 */ sw $t7, ($v0) -/* 0CCEFC 800CC2FC 8FB80054 */ lw $t8, 0x54($sp) -/* 0CCF00 800CC300 46043202 */ mul.s $f8, $f6, $f4 -/* 0CCF04 800CC304 000A6840 */ sll $t5, $t2, 1 -/* 0CCF08 800CC308 87190000 */ lh $t9, ($t8) -/* 0CCF0C 800CC30C 31AEFFFF */ andi $t6, $t5, 0xffff -/* 0CCF10 800CC310 24580008 */ addiu $t8, $v0, 8 -/* 0CCF14 800CC314 00196400 */ sll $t4, $t9, 0x10 -/* 0CCF18 800CC318 018E7825 */ or $t7, $t4, $t6 -/* 0CCF1C 800CC31C 4600440D */ trunc.w.s $f16, $f8 -/* 0CCF20 800CC320 AC4F0004 */ sw $t7, 4($v0) -/* 0CCF24 800CC324 AFB80028 */ sw $t8, 0x28($sp) -/* 0CCF28 800CC328 8D0B0024 */ lw $t3, 0x24($t0) -/* 0CCF2C 800CC32C 44038000 */ mfc1 $v1, $f16 -/* 0CCF30 800CC330 3C010500 */ lui $at, 0x500 -/* 0CCF34 800CC334 317900FF */ andi $t9, $t3, 0xff -/* 0CCF38 800CC338 00196C00 */ sll $t5, $t9, 0x10 -/* 0CCF3C 800CC33C 01A16025 */ or $t4, $t5, $at -/* 0CCF40 800CC340 306EFFFF */ andi $t6, $v1, 0xffff -/* 0CCF44 800CC344 018E7825 */ or $t7, $t4, $t6 -/* 0CCF48 800CC348 AC4F0008 */ sw $t7, 8($v0) -/* 0CCF4C 800CC34C 24450010 */ addiu $a1, $v0, 0x10 -/* 0CCF50 800CC350 8D040014 */ lw $a0, 0x14($t0) -/* 0CCF54 800CC354 0C03233C */ jal osVirtualToPhysical -/* 0CCF58 800CC358 AFA50048 */ sw $a1, 0x48($sp) -/* 0CCF5C 800CC35C 8FB80028 */ lw $t8, 0x28($sp) -/* 0CCF60 800CC360 8FA80050 */ lw $t0, 0x50($sp) -/* 0CCF64 800CC364 8FA50048 */ lw $a1, 0x48($sp) -/* 0CCF68 800CC368 AF020004 */ sw $v0, 4($t8) -/* 0CCF6C 800CC36C AD000024 */ sw $zero, 0x24($t0) -.L800CC370: -/* 0CCF70 800CC370 00A01025 */ move $v0, $a1 -.L800CC374: -/* 0CCF74 800CC374 8FBF001C */ lw $ra, 0x1c($sp) -/* 0CCF78 800CC378 27BD0050 */ addiu $sp, $sp, 0x50 -/* 0CCF7C 800CC37C 03E00008 */ jr $ra -/* 0CCF80 800CC380 00000000 */ nop - -/* 0CCF84 800CC384 00000000 */ nop -/* 0CCF88 800CC388 00000000 */ nop -/* 0CCF8C 800CC38C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s b/lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s deleted file mode 100644 index dc470852..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s +++ /dev/null @@ -1,446 +0,0 @@ -.rdata -glabel D_800E95A0 -.asciz "source" -.ascii "\0" # padding -glabel D_800E95A8 -.asciz "env.c" -.ascii "\0\0" # padding - -.text -glabel func_800CAC5C -/* 0CB85C 800CAC5C 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0CB860 800CAC60 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CB864 800CAC64 AFA40050 */ sw $a0, 0x50($sp) -/* 0CB868 800CAC68 AFA50054 */ sw $a1, 0x54($sp) -/* 0CB86C 800CAC6C AFA60058 */ sw $a2, 0x58($sp) -/* 0CB870 800CAC70 AFA7005C */ sw $a3, 0x5c($sp) -/* 0CB874 800CAC74 8FAE0064 */ lw $t6, 0x64($sp) -/* 0CB878 800CAC78 00000000 */ nop -/* 0CB87C 800CAC7C AFAE004C */ sw $t6, 0x4c($sp) -/* 0CB880 800CAC80 8FAF0050 */ lw $t7, 0x50($sp) -/* 0CB884 800CAC84 00000000 */ nop -/* 0CB888 800CAC88 AFAF0048 */ sw $t7, 0x48($sp) -/* 0CB88C 800CAC8C 8FB80048 */ lw $t8, 0x48($sp) -/* 0CB890 800CAC90 00000000 */ nop -/* 0CB894 800CAC94 8F190000 */ lw $t9, ($t8) -/* 0CB898 800CAC98 00000000 */ nop -/* 0CB89C 800CAC9C AFB90044 */ sw $t9, 0x44($sp) -/* 0CB8A0 800CACA0 8FA8005C */ lw $t0, 0x5c($sp) -/* 0CB8A4 800CACA4 00000000 */ nop -/* 0CB8A8 800CACA8 15000004 */ bnez $t0, .L800CACBC -/* 0CB8AC 800CACAC 00000000 */ nop -/* 0CB8B0 800CACB0 8FA2004C */ lw $v0, 0x4c($sp) -/* 0CB8B4 800CACB4 1000010F */ b .L800CB0F4 -/* 0CB8B8 800CACB8 00000000 */ nop -.L800CACBC: -/* 0CB8BC 800CACBC 8FA90044 */ lw $t1, 0x44($sp) -/* 0CB8C0 800CACC0 00000000 */ nop -/* 0CB8C4 800CACC4 11200003 */ beqz $t1, .L800CACD4 -/* 0CB8C8 800CACC8 00000000 */ nop -/* 0CB8CC 800CACCC 10000007 */ b .L800CACEC -/* 0CB8D0 800CACD0 00000000 */ nop -.L800CACD4: -/* 0CB8D4 800CACD4 3C04800F */ lui $a0, %hi(D_800E95A0) # $a0, 0x800f -/* 0CB8D8 800CACD8 3C05800F */ lui $a1, %hi(D_800E95A8) # $a1, 0x800f -/* 0CB8DC 800CACDC 24A595A8 */ addiu $a1, %lo(D_800E95A8) # addiu $a1, $a1, -0x6a58 -/* 0CB8E0 800CACE0 248495A0 */ addiu $a0, %lo(D_800E95A0) # addiu $a0, $a0, -0x6a60 -/* 0CB8E4 800CACE4 0C02DBD0 */ jal func_800B6F40 -/* 0CB8E8 800CACE8 24060175 */ li $a2, 373 -.L800CACEC: -/* 0CB8EC 800CACEC 8FAB0064 */ lw $t3, 0x64($sp) -/* 0CB8F0 800CACF0 8FAA0044 */ lw $t2, 0x44($sp) -/* 0CB8F4 800CACF4 AFAB0010 */ sw $t3, 0x10($sp) -/* 0CB8F8 800CACF8 8D590004 */ lw $t9, 4($t2) -/* 0CB8FC 800CACFC 8FA50054 */ lw $a1, 0x54($sp) -/* 0CB900 800CAD00 8FA6005C */ lw $a2, 0x5c($sp) -/* 0CB904 800CAD04 8FA70060 */ lw $a3, 0x60($sp) -/* 0CB908 800CAD08 0320F809 */ jalr $t9 -/* 0CB90C 800CAD0C 01402025 */ move $a0, $t2 -/* 0CB910 800CAD10 AFA2004C */ sw $v0, 0x4c($sp) -/* 0CB914 800CAD14 8FAC004C */ lw $t4, 0x4c($sp) -/* 0CB918 800CAD18 00000000 */ nop -/* 0CB91C 800CAD1C 258D0008 */ addiu $t5, $t4, 8 -/* 0CB920 800CAD20 AFAD004C */ sw $t5, 0x4c($sp) -/* 0CB924 800CAD24 AFAC0040 */ sw $t4, 0x40($sp) -/* 0CB928 800CAD28 8FAE0054 */ lw $t6, 0x54($sp) -/* 0CB92C 800CAD2C 8FA90040 */ lw $t1, 0x40($sp) -/* 0CB930 800CAD30 85CF0000 */ lh $t7, ($t6) -/* 0CB934 800CAD34 3C010800 */ lui $at, 0x800 -/* 0CB938 800CAD38 31F8FFFF */ andi $t8, $t7, 0xffff -/* 0CB93C 800CAD3C 03014025 */ or $t0, $t8, $at -/* 0CB940 800CAD40 AD280000 */ sw $t0, ($t1) -/* 0CB944 800CAD44 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CB948 800CAD48 8FAE005C */ lw $t6, 0x5c($sp) -/* 0CB94C 800CAD4C 856A0000 */ lh $t2, ($t3) -/* 0CB950 800CAD50 000E7840 */ sll $t7, $t6, 1 -/* 0CB954 800CAD54 25590440 */ addiu $t9, $t2, 0x440 -/* 0CB958 800CAD58 332CFFFF */ andi $t4, $t9, 0xffff -/* 0CB95C 800CAD5C 8FA90040 */ lw $t1, 0x40($sp) -/* 0CB960 800CAD60 000C6C00 */ sll $t5, $t4, 0x10 -/* 0CB964 800CAD64 31F8FFFF */ andi $t8, $t7, 0xffff -/* 0CB968 800CAD68 01B84025 */ or $t0, $t5, $t8 -/* 0CB96C 800CAD6C AD280004 */ sw $t0, 4($t1) -/* 0CB970 800CAD70 8FAB004C */ lw $t3, 0x4c($sp) -/* 0CB974 800CAD74 00000000 */ nop -/* 0CB978 800CAD78 256A0008 */ addiu $t2, $t3, 8 -/* 0CB97C 800CAD7C AFAA004C */ sw $t2, 0x4c($sp) -/* 0CB980 800CAD80 AFAB003C */ sw $t3, 0x3c($sp) -/* 0CB984 800CAD84 8FB90058 */ lw $t9, 0x58($sp) -/* 0CB988 800CAD88 8FB8003C */ lw $t8, 0x3c($sp) -/* 0CB98C 800CAD8C 872C0000 */ lh $t4, ($t9) -/* 0CB990 800CAD90 3C010808 */ lui $at, 0x808 -/* 0CB994 800CAD94 258E0580 */ addiu $t6, $t4, 0x580 -/* 0CB998 800CAD98 31CFFFFF */ andi $t7, $t6, 0xffff -/* 0CB99C 800CAD9C 01E16825 */ or $t5, $t7, $at -/* 0CB9A0 800CADA0 AF0D0000 */ sw $t5, ($t8) -/* 0CB9A4 800CADA4 8FA80058 */ lw $t0, 0x58($sp) -/* 0CB9A8 800CADA8 8FAD003C */ lw $t5, 0x3c($sp) -/* 0CB9AC 800CADAC 85090000 */ lh $t1, ($t0) -/* 0CB9B0 800CADB0 00000000 */ nop -/* 0CB9B4 800CADB4 253906C0 */ addiu $t9, $t1, 0x6c0 -/* 0CB9B8 800CADB8 332CFFFF */ andi $t4, $t9, 0xffff -/* 0CB9BC 800CADBC 252B0800 */ addiu $t3, $t1, 0x800 -/* 0CB9C0 800CADC0 316AFFFF */ andi $t2, $t3, 0xffff -/* 0CB9C4 800CADC4 000C7400 */ sll $t6, $t4, 0x10 -/* 0CB9C8 800CADC8 014E7825 */ or $t7, $t2, $t6 -/* 0CB9CC 800CADCC ADAF0004 */ sw $t7, 4($t5) -/* 0CB9D0 800CADD0 8FB80048 */ lw $t8, 0x48($sp) -/* 0CB9D4 800CADD4 00000000 */ nop -/* 0CB9D8 800CADD8 8F080038 */ lw $t0, 0x38($t8) -/* 0CB9DC 800CADDC 00000000 */ nop -/* 0CB9E0 800CADE0 110000A9 */ beqz $t0, .L800CB088 -/* 0CB9E4 800CADE4 00000000 */ nop -/* 0CB9E8 800CADE8 8FAB0048 */ lw $t3, 0x48($sp) -/* 0CB9EC 800CADEC 00000000 */ nop -/* 0CB9F0 800CADF0 AD600038 */ sw $zero, 0x38($t3) -/* 0CB9F4 800CADF4 8FA90048 */ lw $t1, 0x48($sp) -/* 0CB9F8 800CADF8 3C0A800E */ lui $t2, %hi(eqpower) # $t2, 0x800e -/* 0CB9FC 800CADFC 85390018 */ lh $t9, 0x18($t1) -/* 0CBA00 800CAE00 852E001A */ lh $t6, 0x1a($t1) -/* 0CBA04 800CAE04 00196040 */ sll $t4, $t9, 1 -/* 0CBA08 800CAE08 014C5021 */ addu $t2, $t2, $t4 -/* 0CBA0C 800CAE0C 854A37A0 */ lh $t2, %lo(eqpower)($t2) -/* 0CBA10 800CAE10 00000000 */ nop -/* 0CBA14 800CAE14 014E0019 */ multu $t2, $t6 -/* 0CBA18 800CAE18 00007812 */ mflo $t7 -/* 0CBA1C 800CAE1C 000F6BC3 */ sra $t5, $t7, 0xf -/* 0CBA20 800CAE20 A52D0028 */ sh $t5, 0x28($t1) -/* 0CBA24 800CAE24 8FB80048 */ lw $t8, 0x48($sp) -/* 0CBA28 800CAE28 00000000 */ nop -/* 0CBA2C 800CAE2C 8708001C */ lh $t0, 0x1c($t8) -/* 0CBA30 800CAE30 870B0028 */ lh $t3, 0x28($t8) -/* 0CBA34 800CAE34 8F190034 */ lw $t9, 0x34($t8) -/* 0CBA38 800CAE38 44882000 */ mtc1 $t0, $f4 -/* 0CBA3C 800CAE3C 448B3000 */ mtc1 $t3, $f6 -/* 0CBA40 800CAE40 270C0024 */ addiu $t4, $t8, 0x24 -/* 0CBA44 800CAE44 AFAC0014 */ sw $t4, 0x14($sp) -/* 0CBA48 800CAE48 AFB90010 */ sw $t9, 0x10($sp) -/* 0CBA4C 800CAE4C 46802321 */ cvt.d.w $f12, $f4 -/* 0CBA50 800CAE50 0C032CB5 */ jal func_800CB2D4 -/* 0CBA54 800CAE54 468033A1 */ cvt.d.w $f14, $f6 -/* 0CBA58 800CAE58 8FAA0048 */ lw $t2, 0x48($sp) -/* 0CBA5C 800CAE5C 00000000 */ nop -/* 0CBA60 800CAE60 A5420026 */ sh $v0, 0x26($t2) -/* 0CBA64 800CAE64 8FAE0048 */ lw $t6, 0x48($sp) -# This is indexing into eqpower from the end. -/* 0CBA68 800CAE68 3C08800E */ lui $t0, %hi(eqpower+0xfe) # $t0, 0x800e -/* 0CBA6C 800CAE6C 85CF0018 */ lh $t7, 0x18($t6) -/* 0CBA70 800CAE70 85CB001A */ lh $t3, 0x1a($t6) -/* 0CBA74 800CAE74 000F6823 */ negu $t5, $t7 -/* 0CBA78 800CAE78 000D4840 */ sll $t1, $t5, 1 -/* 0CBA7C 800CAE7C 01094021 */ addu $t0, $t0, $t1 -/* 0CBA80 800CAE80 8508389E */ lh $t0, %lo(eqpower+0xfe)($t0) -/* 0CBA84 800CAE84 00000000 */ nop -/* 0CBA88 800CAE88 010B0019 */ multu $t0, $t3 -/* 0CBA8C 800CAE8C 0000C812 */ mflo $t9 -/* 0CBA90 800CAE90 0019C3C3 */ sra $t8, $t9, 0xf -/* 0CBA94 800CAE94 A5D8002E */ sh $t8, 0x2e($t6) -/* 0CBA98 800CAE98 8FAC0048 */ lw $t4, 0x48($sp) -/* 0CBA9C 800CAE9C 00000000 */ nop -/* 0CBAA0 800CAEA0 858A001E */ lh $t2, 0x1e($t4) -/* 0CBAA4 800CAEA4 858F002E */ lh $t7, 0x2e($t4) -/* 0CBAA8 800CAEA8 8D8D0034 */ lw $t5, 0x34($t4) -/* 0CBAAC 800CAEAC 448A4000 */ mtc1 $t2, $f8 -/* 0CBAB0 800CAEB0 448F5000 */ mtc1 $t7, $f10 -/* 0CBAB4 800CAEB4 2589002A */ addiu $t1, $t4, 0x2a -/* 0CBAB8 800CAEB8 AFA90014 */ sw $t1, 0x14($sp) -/* 0CBABC 800CAEBC AFAD0010 */ sw $t5, 0x10($sp) -/* 0CBAC0 800CAEC0 46804321 */ cvt.d.w $f12, $f8 -/* 0CBAC4 800CAEC4 0C032CB5 */ jal func_800CB2D4 -/* 0CBAC8 800CAEC8 468053A1 */ cvt.d.w $f14, $f10 -/* 0CBACC 800CAECC 8FA80048 */ lw $t0, 0x48($sp) -/* 0CBAD0 800CAED0 00000000 */ nop -/* 0CBAD4 800CAED4 A502002C */ sh $v0, 0x2c($t0) -/* 0CBAD8 800CAED8 8FAB004C */ lw $t3, 0x4c($sp) -/* 0CBADC 800CAEDC 00000000 */ nop -/* 0CBAE0 800CAEE0 25790008 */ addiu $t9, $t3, 8 -/* 0CBAE4 800CAEE4 AFB9004C */ sw $t9, 0x4c($sp) -/* 0CBAE8 800CAEE8 AFAB0038 */ sw $t3, 0x38($sp) -/* 0CBAEC 800CAEEC 8FB80048 */ lw $t8, 0x48($sp) -/* 0CBAF0 800CAEF0 8FAD0038 */ lw $t5, 0x38($sp) -/* 0CBAF4 800CAEF4 870E001C */ lh $t6, 0x1c($t8) -/* 0CBAF8 800CAEF8 3C010906 */ lui $at, 0x906 -/* 0CBAFC 800CAEFC 31CAFFFF */ andi $t2, $t6, 0xffff -/* 0CBB00 800CAF00 01417825 */ or $t7, $t2, $at -/* 0CBB04 800CAF04 ADAF0000 */ sw $t7, ($t5) -/* 0CBB08 800CAF08 8FAC0038 */ lw $t4, 0x38($sp) -/* 0CBB0C 800CAF0C 00000000 */ nop -/* 0CBB10 800CAF10 AD800004 */ sw $zero, 4($t4) -/* 0CBB14 800CAF14 8FA9004C */ lw $t1, 0x4c($sp) -/* 0CBB18 800CAF18 00000000 */ nop -/* 0CBB1C 800CAF1C 25280008 */ addiu $t0, $t1, 8 -/* 0CBB20 800CAF20 AFA8004C */ sw $t0, 0x4c($sp) -/* 0CBB24 800CAF24 AFA90034 */ sw $t1, 0x34($sp) -/* 0CBB28 800CAF28 8FAB0048 */ lw $t3, 0x48($sp) -/* 0CBB2C 800CAF2C 8FAA0034 */ lw $t2, 0x34($sp) -/* 0CBB30 800CAF30 8579001E */ lh $t9, 0x1e($t3) -/* 0CBB34 800CAF34 3C010904 */ lui $at, 0x904 -/* 0CBB38 800CAF38 3338FFFF */ andi $t8, $t9, 0xffff -/* 0CBB3C 800CAF3C 03017025 */ or $t6, $t8, $at -/* 0CBB40 800CAF40 AD4E0000 */ sw $t6, ($t2) -/* 0CBB44 800CAF44 8FAF0034 */ lw $t7, 0x34($sp) -/* 0CBB48 800CAF48 00000000 */ nop -/* 0CBB4C 800CAF4C ADE00004 */ sw $zero, 4($t7) -/* 0CBB50 800CAF50 8FAD004C */ lw $t5, 0x4c($sp) -/* 0CBB54 800CAF54 00000000 */ nop -/* 0CBB58 800CAF58 25AC0008 */ addiu $t4, $t5, 8 -/* 0CBB5C 800CAF5C AFAC004C */ sw $t4, 0x4c($sp) -/* 0CBB60 800CAF60 AFAD0030 */ sw $t5, 0x30($sp) -/* 0CBB64 800CAF64 8FA90048 */ lw $t1, 0x48($sp) -/* 0CBB68 800CAF68 8FB80030 */ lw $t8, 0x30($sp) -/* 0CBB6C 800CAF6C 85280028 */ lh $t0, 0x28($t1) -/* 0CBB70 800CAF70 3C010902 */ lui $at, 0x902 -/* 0CBB74 800CAF74 310BFFFF */ andi $t3, $t0, 0xffff -/* 0CBB78 800CAF78 0161C825 */ or $t9, $t3, $at -/* 0CBB7C 800CAF7C AF190000 */ sw $t9, ($t8) -/* 0CBB80 800CAF80 8FAE0048 */ lw $t6, 0x48($sp) -/* 0CBB84 800CAF84 8FAB0030 */ lw $t3, 0x30($sp) -/* 0CBB88 800CAF88 85CA0026 */ lh $t2, 0x26($t6) -/* 0CBB8C 800CAF8C 95CC0024 */ lhu $t4, 0x24($t6) -/* 0CBB90 800CAF90 314FFFFF */ andi $t7, $t2, 0xffff -/* 0CBB94 800CAF94 000F6C00 */ sll $t5, $t7, 0x10 -/* 0CBB98 800CAF98 3189FFFF */ andi $t1, $t4, 0xffff -/* 0CBB9C 800CAF9C 01A94025 */ or $t0, $t5, $t1 -/* 0CBBA0 800CAFA0 AD680004 */ sw $t0, 4($t3) -/* 0CBBA4 800CAFA4 8FB9004C */ lw $t9, 0x4c($sp) -/* 0CBBA8 800CAFA8 00000000 */ nop -/* 0CBBAC 800CAFAC 27380008 */ addiu $t8, $t9, 8 -/* 0CBBB0 800CAFB0 AFB8004C */ sw $t8, 0x4c($sp) -/* 0CBBB4 800CAFB4 AFB9002C */ sw $t9, 0x2c($sp) -/* 0CBBB8 800CAFB8 8FAA0048 */ lw $t2, 0x48($sp) -/* 0CBBBC 800CAFBC 8FAD002C */ lw $t5, 0x2c($sp) -/* 0CBBC0 800CAFC0 854F002E */ lh $t7, 0x2e($t2) -/* 0CBBC4 800CAFC4 3C010900 */ lui $at, 0x900 -/* 0CBBC8 800CAFC8 31EEFFFF */ andi $t6, $t7, 0xffff -/* 0CBBCC 800CAFCC 01C16025 */ or $t4, $t6, $at -/* 0CBBD0 800CAFD0 ADAC0000 */ sw $t4, ($t5) -/* 0CBBD4 800CAFD4 8FA90048 */ lw $t1, 0x48($sp) -/* 0CBBD8 800CAFD8 8FAE002C */ lw $t6, 0x2c($sp) -/* 0CBBDC 800CAFDC 8528002C */ lh $t0, 0x2c($t1) -/* 0CBBE0 800CAFE0 9538002A */ lhu $t8, 0x2a($t1) -/* 0CBBE4 800CAFE4 310BFFFF */ andi $t3, $t0, 0xffff -/* 0CBBE8 800CAFE8 000BCC00 */ sll $t9, $t3, 0x10 -/* 0CBBEC 800CAFEC 330AFFFF */ andi $t2, $t8, 0xffff -/* 0CBBF0 800CAFF0 032A7825 */ or $t7, $t9, $t2 -/* 0CBBF4 800CAFF4 ADCF0004 */ sw $t7, 4($t6) -/* 0CBBF8 800CAFF8 8FAC004C */ lw $t4, 0x4c($sp) -/* 0CBBFC 800CAFFC 00000000 */ nop -/* 0CBC00 800CB000 258D0008 */ addiu $t5, $t4, 8 -/* 0CBC04 800CB004 AFAD004C */ sw $t5, 0x4c($sp) -/* 0CBC08 800CB008 AFAC0028 */ sw $t4, 0x28($sp) -/* 0CBC0C 800CB00C 8FA80048 */ lw $t0, 0x48($sp) -/* 0CBC10 800CB010 8FB90028 */ lw $t9, 0x28($sp) -/* 0CBC14 800CB014 850B0020 */ lh $t3, 0x20($t0) -/* 0CBC18 800CB018 3C010908 */ lui $at, 0x908 -/* 0CBC1C 800CB01C 3169FFFF */ andi $t1, $t3, 0xffff -/* 0CBC20 800CB020 0121C025 */ or $t8, $t1, $at -/* 0CBC24 800CB024 AF380000 */ sw $t8, ($t9) -/* 0CBC28 800CB028 8FAA0048 */ lw $t2, 0x48($sp) -/* 0CBC2C 800CB02C 8FAC0028 */ lw $t4, 0x28($sp) -/* 0CBC30 800CB030 854F0022 */ lh $t7, 0x22($t2) -/* 0CBC34 800CB034 00000000 */ nop -/* 0CBC38 800CB038 31EEFFFF */ andi $t6, $t7, 0xffff -/* 0CBC3C 800CB03C AD8E0004 */ sw $t6, 4($t4) -/* 0CBC40 800CB040 8FAD004C */ lw $t5, 0x4c($sp) -/* 0CBC44 800CB044 00000000 */ nop -/* 0CBC48 800CB048 25A80008 */ addiu $t0, $t5, 8 -/* 0CBC4C 800CB04C AFA8004C */ sw $t0, 0x4c($sp) -/* 0CBC50 800CB050 AFAD0024 */ sw $t5, 0x24($sp) -/* 0CBC54 800CB054 8FA90024 */ lw $t1, 0x24($sp) -/* 0CBC58 800CB058 3C0B0309 */ lui $t3, 0x309 -/* 0CBC5C 800CB05C AD2B0000 */ sw $t3, ($t1) -/* 0CBC60 800CB060 8FB80048 */ lw $t8, 0x48($sp) -/* 0CBC64 800CB064 00000000 */ nop -/* 0CBC68 800CB068 8F040014 */ lw $a0, 0x14($t8) -/* 0CBC6C 800CB06C 0C03233C */ jal osVirtualToPhysical -/* 0CBC70 800CB070 00000000 */ nop -/* 0CBC74 800CB074 8FB90024 */ lw $t9, 0x24($sp) -/* 0CBC78 800CB078 00000000 */ nop -/* 0CBC7C 800CB07C AF220004 */ sw $v0, 4($t9) -/* 0CBC80 800CB080 10000011 */ b .L800CB0C8 -/* 0CBC84 800CB084 00000000 */ nop -.L800CB088: -/* 0CBC88 800CB088 8FAA004C */ lw $t2, 0x4c($sp) -/* 0CBC8C 800CB08C 00000000 */ nop -/* 0CBC90 800CB090 254F0008 */ addiu $t7, $t2, 8 -/* 0CBC94 800CB094 AFAF004C */ sw $t7, 0x4c($sp) -/* 0CBC98 800CB098 AFAA0020 */ sw $t2, 0x20($sp) -/* 0CBC9C 800CB09C 8FAC0020 */ lw $t4, 0x20($sp) -/* 0CBCA0 800CB0A0 3C0E0308 */ lui $t6, 0x308 -/* 0CBCA4 800CB0A4 AD8E0000 */ sw $t6, ($t4) -/* 0CBCA8 800CB0A8 8FAD0048 */ lw $t5, 0x48($sp) -/* 0CBCAC 800CB0AC 00000000 */ nop -/* 0CBCB0 800CB0B0 8DA40014 */ lw $a0, 0x14($t5) -/* 0CBCB4 800CB0B4 0C03233C */ jal osVirtualToPhysical -/* 0CBCB8 800CB0B8 00000000 */ nop -/* 0CBCBC 800CB0BC 8FA80020 */ lw $t0, 0x20($sp) -/* 0CBCC0 800CB0C0 00000000 */ nop -/* 0CBCC4 800CB0C4 AD020004 */ sw $v0, 4($t0) -.L800CB0C8: -/* 0CBCC8 800CB0C8 8FAB0054 */ lw $t3, 0x54($sp) -/* 0CBCCC 800CB0CC 8FB8005C */ lw $t8, 0x5c($sp) -/* 0CBCD0 800CB0D0 85690000 */ lh $t1, ($t3) -/* 0CBCD4 800CB0D4 0018C840 */ sll $t9, $t8, 1 -/* 0CBCD8 800CB0D8 01395021 */ addu $t2, $t1, $t9 -/* 0CBCDC 800CB0DC A56A0000 */ sh $t2, ($t3) -/* 0CBCE0 800CB0E0 8FA2004C */ lw $v0, 0x4c($sp) -/* 0CBCE4 800CB0E4 10000003 */ b .L800CB0F4 -/* 0CBCE8 800CB0E8 00000000 */ nop -/* 0CBCEC 800CB0EC 10000001 */ b .L800CB0F4 -/* 0CBCF0 800CB0F0 00000000 */ nop -.L800CB0F4: -/* 0CBCF4 800CB0F4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0CBCF8 800CB0F8 27BD0050 */ addiu $sp, $sp, 0x50 -/* 0CBCFC 800CB0FC 03E00008 */ jr $ra -/* 0CBD00 800CB100 00000000 */ nop - -/* 0CBD04 800CB104 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0CBD08 800CB108 ACC00000 */ sw $zero, ($a2) -/* 0CBD0C 800CB10C 44802800 */ mtc1 $zero, $f5 -/* 0CBD10 800CB110 44802000 */ mtc1 $zero, $f4 -/* 0CBD14 800CB114 00000000 */ nop -/* 0CBD18 800CB118 46246032 */ c.eq.d $f12, $f4 -/* 0CBD1C 800CB11C 00000000 */ nop -/* 0CBD20 800CB120 45000003 */ bc1f .L800CB130 -/* 0CBD24 800CB124 00000000 */ nop -/* 0CBD28 800CB128 10000055 */ b .L800CB280 -/* 0CBD2C 800CB12C 46206006 */ mov.d $f0, $f12 -.L800CB130: -/* 0CBD30 800CB130 44803800 */ mtc1 $zero, $f7 -/* 0CBD34 800CB134 44803000 */ mtc1 $zero, $f6 -/* 0CBD38 800CB138 00000000 */ nop -/* 0CBD3C 800CB13C 462C303C */ c.lt.d $f6, $f12 -/* 0CBD40 800CB140 00000000 */ nop -/* 0CBD44 800CB144 45000004 */ bc1f .L800CB158 -/* 0CBD48 800CB148 00000000 */ nop -/* 0CBD4C 800CB14C E7AD0008 */ swc1 $f13, 8($sp) -/* 0CBD50 800CB150 10000004 */ b .L800CB164 -/* 0CBD54 800CB154 E7AC000C */ swc1 $f12, 0xc($sp) -.L800CB158: -/* 0CBD58 800CB158 46206207 */ neg.d $f8, $f12 -/* 0CBD5C 800CB15C E7A8000C */ swc1 $f8, 0xc($sp) -/* 0CBD60 800CB160 E7A90008 */ swc1 $f9, 8($sp) -.L800CB164: -/* 0CBD64 800CB164 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0CBD68 800CB168 44818800 */ mtc1 $at, $f17 -/* 0CBD6C 800CB16C C7AB0008 */ lwc1 $f11, 8($sp) -/* 0CBD70 800CB170 C7AA000C */ lwc1 $f10, 0xc($sp) -/* 0CBD74 800CB174 44808000 */ mtc1 $zero, $f16 -/* 0CBD78 800CB178 00000000 */ nop -/* 0CBD7C 800CB17C 462A803E */ c.le.d $f16, $f10 -/* 0CBD80 800CB180 00000000 */ nop -/* 0CBD84 800CB184 45000013 */ bc1f .L800CB1D4 -/* 0CBD88 800CB188 00000000 */ nop -.L800CB18C: -/* 0CBD8C 800CB18C 8CCE0000 */ lw $t6, ($a2) -/* 0CBD90 800CB190 00000000 */ nop -/* 0CBD94 800CB194 25CF0001 */ addiu $t7, $t6, 1 -/* 0CBD98 800CB198 ACCF0000 */ sw $t7, ($a2) -/* 0CBD9C 800CB19C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 0CBDA0 800CB1A0 44812800 */ mtc1 $at, $f5 -/* 0CBDA4 800CB1A4 C7B30008 */ lwc1 $f19, 8($sp) -/* 0CBDA8 800CB1A8 C7B2000C */ lwc1 $f18, 0xc($sp) -/* 0CBDAC 800CB1AC 44802000 */ mtc1 $zero, $f4 -/* 0CBDB0 800CB1B0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0CBDB4 800CB1B4 46249182 */ mul.d $f6, $f18, $f4 -/* 0CBDB8 800CB1B8 44814800 */ mtc1 $at, $f9 -/* 0CBDBC 800CB1BC 44804000 */ mtc1 $zero, $f8 -/* 0CBDC0 800CB1C0 00000000 */ nop -/* 0CBDC4 800CB1C4 4626403E */ c.le.d $f8, $f6 -/* 0CBDC8 800CB1C8 E7A6000C */ swc1 $f6, 0xc($sp) -/* 0CBDCC 800CB1CC 4501FFEF */ bc1t .L800CB18C -/* 0CBDD0 800CB1D0 E7A70008 */ swc1 $f7, 8($sp) -.L800CB1D4: -/* 0CBDD4 800CB1D4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 0CBDD8 800CB1D8 44818800 */ mtc1 $at, $f17 -/* 0CBDDC 800CB1DC C7AB0008 */ lwc1 $f11, 8($sp) -/* 0CBDE0 800CB1E0 C7AA000C */ lwc1 $f10, 0xc($sp) -/* 0CBDE4 800CB1E4 44808000 */ mtc1 $zero, $f16 -/* 0CBDE8 800CB1E8 00000000 */ nop -/* 0CBDEC 800CB1EC 4630503C */ c.lt.d $f10, $f16 -/* 0CBDF0 800CB1F0 00000000 */ nop -/* 0CBDF4 800CB1F4 4500000F */ bc1f .L800CB234 -/* 0CBDF8 800CB1F8 00000000 */ nop -.L800CB1FC: -/* 0CBDFC 800CB1FC 8CD80000 */ lw $t8, ($a2) -/* 0CBE00 800CB200 00000000 */ nop -/* 0CBE04 800CB204 2719FFFF */ addiu $t9, $t8, -1 -/* 0CBE08 800CB208 ACD90000 */ sw $t9, ($a2) -/* 0CBE0C 800CB20C C7B30008 */ lwc1 $f19, 8($sp) -/* 0CBE10 800CB210 C7B2000C */ lwc1 $f18, 0xc($sp) -/* 0CBE14 800CB214 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 0CBE18 800CB218 44813800 */ mtc1 $at, $f7 -/* 0CBE1C 800CB21C 44803000 */ mtc1 $zero, $f6 -/* 0CBE20 800CB220 46329100 */ add.d $f4, $f18, $f18 -/* 0CBE24 800CB224 4626203C */ c.lt.d $f4, $f6 -/* 0CBE28 800CB228 E7A4000C */ swc1 $f4, 0xc($sp) -/* 0CBE2C 800CB22C 4501FFF3 */ bc1t .L800CB1FC -/* 0CBE30 800CB230 E7A50008 */ swc1 $f5, 8($sp) -.L800CB234: -/* 0CBE34 800CB234 44804800 */ mtc1 $zero, $f9 -/* 0CBE38 800CB238 44804000 */ mtc1 $zero, $f8 -/* 0CBE3C 800CB23C 00000000 */ nop -/* 0CBE40 800CB240 462C403C */ c.lt.d $f8, $f12 -/* 0CBE44 800CB244 00000000 */ nop -/* 0CBE48 800CB248 45000005 */ bc1f .L800CB260 -/* 0CBE4C 800CB24C 00000000 */ nop -/* 0CBE50 800CB250 C7AF0008 */ lwc1 $f15, 8($sp) -/* 0CBE54 800CB254 C7AE000C */ lwc1 $f14, 0xc($sp) -/* 0CBE58 800CB258 10000005 */ b .L800CB270 -/* 0CBE5C 800CB25C 00000000 */ nop -.L800CB260: -/* 0CBE60 800CB260 C7AF0008 */ lwc1 $f15, 8($sp) -/* 0CBE64 800CB264 C7AE000C */ lwc1 $f14, 0xc($sp) -/* 0CBE68 800CB268 00000000 */ nop -/* 0CBE6C 800CB26C 46207387 */ neg.d $f14, $f14 -.L800CB270: -/* 0CBE70 800CB270 10000003 */ b .L800CB280 -/* 0CBE74 800CB274 46207006 */ mov.d $f0, $f14 -/* 0CBE78 800CB278 10000001 */ b .L800CB280 -/* 0CBE7C 800CB27C 00000000 */ nop -.L800CB280: -/* 0CBE80 800CB280 03E00008 */ jr $ra -/* 0CBE84 800CB284 27BD0010 */ addiu $sp, $sp, 0x10 - -/* 0CBE88 800CB288 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0CBE8C 800CB28C 10C0000B */ beqz $a2, .L800CB2BC -/* 0CBE90 800CB290 00000000 */ nop -/* 0CBE94 800CB294 240E0001 */ li $t6, 1 -/* 0CBE98 800CB298 00CE7804 */ sllv $t7, $t6, $a2 -/* 0CBE9C 800CB29C AFAF0004 */ sw $t7, 4($sp) -/* 0CBEA0 800CB2A0 8FB80004 */ lw $t8, 4($sp) -/* 0CBEA4 800CB2A4 00000000 */ nop -/* 0CBEA8 800CB2A8 44982000 */ mtc1 $t8, $f4 -/* 0CBEAC 800CB2AC 00000000 */ nop -/* 0CBEB0 800CB2B0 468021A1 */ cvt.d.w $f6, $f4 -/* 0CBEB4 800CB2B4 46266302 */ mul.d $f12, $f12, $f6 -/* 0CBEB8 800CB2B8 00000000 */ nop -.L800CB2BC: -/* 0CBEBC 800CB2BC 10000003 */ b .L800CB2CC -/* 0CBEC0 800CB2C0 46206006 */ mov.d $f0, $f12 -/* 0CBEC4 800CB2C4 10000001 */ b .L800CB2CC -/* 0CBEC8 800CB2C8 00000000 */ nop -.L800CB2CC: -/* 0CBECC 800CB2CC 03E00008 */ jr $ra -/* 0CBED0 800CB2D0 27BD0008 */ addiu $sp, $sp, 8 - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s b/lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s deleted file mode 100644 index 74dac3d5..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s +++ /dev/null @@ -1,124 +0,0 @@ -.late_rodata -glabel D_800E95F8 -.double 65535.0 - -.text -glabel func_800CB2D4 -/* 0CBED4 800CB2D4 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0CBED8 800CB2D8 8FAE0020 */ lw $t6, 0x20($sp) -/* 0CBEDC 800CB2DC 00000000 */ nop -/* 0CBEE0 800CB2E0 15C00011 */ bnez $t6, .L800CB328 -/* 0CBEE4 800CB2E4 00000000 */ nop -/* 0CBEE8 800CB2E8 462E603E */ c.le.d $f12, $f14 -/* 0CBEEC 800CB2EC 00000000 */ nop -/* 0CBEF0 800CB2F0 45000008 */ bc1f .L800CB314 -/* 0CBEF4 800CB2F4 00000000 */ nop -/* 0CBEF8 800CB2F8 8FB80024 */ lw $t8, 0x24($sp) -/* 0CBEFC 800CB2FC 340FFFFF */ li $t7, 65535 -/* 0CBF00 800CB300 A70F0000 */ sh $t7, ($t8) -/* 0CBF04 800CB304 10000062 */ b .L800CB490 -/* 0CBF08 800CB308 24027FFF */ li $v0, 32767 -/* 0CBF0C 800CB30C 10000006 */ b .L800CB328 -/* 0CBF10 800CB310 00000000 */ nop -.L800CB314: -/* 0CBF14 800CB314 8FB90024 */ lw $t9, 0x24($sp) -/* 0CBF18 800CB318 00000000 */ nop -/* 0CBF1C 800CB31C A7200000 */ sh $zero, ($t9) -/* 0CBF20 800CB320 1000005B */ b .L800CB490 -/* 0CBF24 800CB324 24028000 */ li $v0, -32768 -.L800CB328: -/* 0CBF28 800CB328 8FA80020 */ lw $t0, 0x20($sp) -/* 0CBF2C 800CB32C 462C7101 */ sub.d $f4, $f14, $f12 -/* 0CBF30 800CB330 44883000 */ mtc1 $t0, $f6 -/* 0CBF34 800CB334 00000000 */ nop -/* 0CBF38 800CB338 46803220 */ cvt.s.w $f8, $f6 -/* 0CBF3C 800CB33C 460042A1 */ cvt.d.s $f10, $f8 -/* 0CBF40 800CB340 00000000 */ nop -/* 0CBF44 800CB344 462A2403 */ div.d $f16, $f4, $f10 -/* 0CBF48 800CB348 E7B00004 */ swc1 $f16, 4($sp) -/* 0CBF4C 800CB34C E7B10000 */ swc1 $f17, ($sp) -/* 0CBF50 800CB350 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 0CBF54 800CB354 44813800 */ mtc1 $at, $f7 -/* 0CBF58 800CB358 C7B30000 */ lwc1 $f19, ($sp) -/* 0CBF5C 800CB35C C7B20004 */ lwc1 $f18, 4($sp) -/* 0CBF60 800CB360 44803000 */ mtc1 $zero, $f6 -/* 0CBF64 800CB364 00000000 */ nop -/* 0CBF68 800CB368 46269202 */ mul.d $f8, $f18, $f6 -/* 0CBF6C 800CB36C E7A80004 */ swc1 $f8, 4($sp) -/* 0CBF70 800CB370 E7A90000 */ swc1 $f9, ($sp) -/* 0CBF74 800CB374 C7A50000 */ lwc1 $f5, ($sp) -/* 0CBF78 800CB378 C7A40004 */ lwc1 $f4, 4($sp) -/* 0CBF7C 800CB37C 44805800 */ mtc1 $zero, $f11 -/* 0CBF80 800CB380 44805000 */ mtc1 $zero, $f10 -/* 0CBF84 800CB384 00000000 */ nop -/* 0CBF88 800CB388 462A203C */ c.lt.d $f4, $f10 -/* 0CBF8C 800CB38C 00000000 */ nop -/* 0CBF90 800CB390 4500000A */ bc1f .L800CB3BC -/* 0CBF94 800CB394 00000000 */ nop -/* 0CBF98 800CB398 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0CBF9C 800CB39C 44819800 */ mtc1 $at, $f19 -/* 0CBFA0 800CB3A0 C7B10000 */ lwc1 $f17, ($sp) -/* 0CBFA4 800CB3A4 C7B00004 */ lwc1 $f16, 4($sp) -/* 0CBFA8 800CB3A8 44809000 */ mtc1 $zero, $f18 -/* 0CBFAC 800CB3AC 00000000 */ nop -/* 0CBFB0 800CB3B0 46328181 */ sub.d $f6, $f16, $f18 -/* 0CBFB4 800CB3B4 E7A60004 */ swc1 $f6, 4($sp) -/* 0CBFB8 800CB3B8 E7A70000 */ swc1 $f7, ($sp) -.L800CB3BC: -/* 0CBFBC 800CB3BC 4449F800 */ cfc1 $t1, $31 -/* 0CBFC0 800CB3C0 C7A90000 */ lwc1 $f9, ($sp) -/* 0CBFC4 800CB3C4 35210003 */ ori $at, $t1, 3 -/* 0CBFC8 800CB3C8 38210002 */ xori $at, $at, 2 -/* 0CBFCC 800CB3CC 44C1F800 */ ctc1 $at, $31 -/* 0CBFD0 800CB3D0 C7A80004 */ lwc1 $f8, 4($sp) -/* 0CBFD4 800CB3D4 00000000 */ nop -/* 0CBFD8 800CB3D8 46204124 */ cvt.w.d $f4, $f8 -/* 0CBFDC 800CB3DC 440A2000 */ mfc1 $t2, $f4 -/* 0CBFE0 800CB3E0 44C9F800 */ ctc1 $t1, $31 -/* 0CBFE4 800CB3E4 A7AA000E */ sh $t2, 0xe($sp) -/* 0CBFE8 800CB3E8 00000000 */ nop -/* 0CBFEC 800CB3EC 87AB000E */ lh $t3, 0xe($sp) -/* 0CBFF0 800CB3F0 C7AB0000 */ lwc1 $f11, ($sp) -/* 0CBFF4 800CB3F4 448B8000 */ mtc1 $t3, $f16 -/* 0CBFF8 800CB3F8 C7AA0004 */ lwc1 $f10, 4($sp) -/* 0CBFFC 800CB3FC 468084A0 */ cvt.s.w $f18, $f16 -/* 0CC000 800CB400 3C01800F */ lui $at, %hi(D_800E95F8 + 4) # $at, 0x800f -/* 0CC004 800CB404 C42595F8 */ lwc1 $f5, %lo(D_800E95F8)($at) -/* 0CC008 800CB408 460091A1 */ cvt.d.s $f6, $f18 -/* 0CC00C 800CB40C C42495FC */ lwc1 $f4, %lo(D_800E95F8 + 4)($at) -/* 0CC010 800CB410 46265201 */ sub.d $f8, $f10, $f6 -/* 0CC014 800CB414 8FB80024 */ lw $t8, 0x24($sp) -/* 0CC018 800CB418 46244402 */ mul.d $f16, $f8, $f4 -/* 0CC01C 800CB41C 444CF800 */ cfc1 $t4, $31 -/* 0CC020 800CB420 00000000 */ nop -/* 0CC024 800CB424 35810003 */ ori $at, $t4, 3 -/* 0CC028 800CB428 38210002 */ xori $at, $at, 2 -/* 0CC02C 800CB42C 44C1F800 */ ctc1 $at, $31 -/* 0CC030 800CB430 00000000 */ nop -/* 0CC034 800CB434 462084A4 */ cvt.w.d $f18, $f16 -/* 0CC038 800CB438 440D9000 */ mfc1 $t5, $f18 -/* 0CC03C 800CB43C 44CCF800 */ ctc1 $t4, $31 -/* 0CC040 800CB440 000D7400 */ sll $t6, $t5, 0x10 -/* 0CC044 800CB444 000E7C03 */ sra $t7, $t6, 0x10 -/* 0CC048 800CB448 A70F0000 */ sh $t7, ($t8) -/* 0CC04C 800CB44C 4459F800 */ cfc1 $t9, $31 -/* 0CC050 800CB450 C7AB0000 */ lwc1 $f11, ($sp) -/* 0CC054 800CB454 37210003 */ ori $at, $t9, 3 -/* 0CC058 800CB458 38210002 */ xori $at, $at, 2 -/* 0CC05C 800CB45C 44C1F800 */ ctc1 $at, $31 -/* 0CC060 800CB460 C7AA0004 */ lwc1 $f10, 4($sp) -/* 0CC064 800CB464 00000000 */ nop -/* 0CC068 800CB468 462051A4 */ cvt.w.d $f6, $f10 -/* 0CC06C 800CB46C 44023000 */ mfc1 $v0, $f6 -/* 0CC070 800CB470 44D9F800 */ ctc1 $t9, $31 -/* 0CC074 800CB474 00024400 */ sll $t0, $v0, 0x10 -/* 0CC078 800CB478 01001025 */ move $v0, $t0 -/* 0CC07C 800CB47C 00024C03 */ sra $t1, $v0, 0x10 -/* 0CC080 800CB480 10000003 */ b .L800CB490 -/* 0CC084 800CB484 01201025 */ move $v0, $t1 -/* 0CC088 800CB488 10000001 */ b .L800CB490 -/* 0CC08C 800CB48C 00000000 */ nop -.L800CB490: -/* 0CC090 800CB490 03E00008 */ jr $ra -/* 0CC094 800CB494 27BD0010 */ addiu $sp, $sp, 0x10 - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s b/lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s deleted file mode 100644 index 87b52079..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s +++ /dev/null @@ -1,46 +0,0 @@ -glabel func_800CB498 -/* 0CC098 800CB498 00063400 */ sll $a2, $a2, 0x10 -/* 0CC09C 800CB49C 00063403 */ sra $a2, $a2, 0x10 -/* 0CC0A0 800CB4A0 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0CC0A4 800CB4A4 30E7FFFF */ andi $a3, $a3, 0xffff -/* 0CC0A8 800CB4A8 00067400 */ sll $t6, $a2, 0x10 -/* 0CC0AC 800CB4AC 448E2000 */ mtc1 $t6, $f4 -/* 0CC0B0 800CB4B0 44874000 */ mtc1 $a3, $f8 -/* 0CC0B4 800CB4B4 468021A0 */ cvt.s.w $f6, $f4 -/* 0CC0B8 800CB4B8 04E10005 */ bgez $a3, .L800CB4D0 -/* 0CC0BC 800CB4BC 468042A0 */ cvt.s.w $f10, $f8 -/* 0CC0C0 800CB4C0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0CC0C4 800CB4C4 44818000 */ mtc1 $at, $f16 -/* 0CC0C8 800CB4C8 00000000 */ nop -/* 0CC0CC 800CB4CC 46105280 */ add.s $f10, $f10, $f16 -.L800CB4D0: -/* 0CC0D0 800CB4D0 460A3480 */ add.s $f18, $f6, $f10 -/* 0CC0D4 800CB4D4 3C0140F0 */ li $at, 0x40F00000 # 7.500000 -/* 0CC0D8 800CB4D8 44814800 */ mtc1 $at, $f9 -/* 0CC0DC 800CB4DC 44804000 */ mtc1 $zero, $f8 -/* 0CC0E0 800CB4E0 46009121 */ cvt.d.s $f4, $f18 -/* 0CC0E4 800CB4E4 00000000 */ nop -/* 0CC0E8 800CB4E8 46282403 */ div.d $f16, $f4, $f8 -/* 0CC0EC 800CB4EC 462081A0 */ cvt.s.d $f6, $f16 -/* 0CC0F0 800CB4F0 E7A60004 */ swc1 $f6, 4($sp) -/* 0CC0F4 800CB4F4 44859000 */ mtc1 $a1, $f18 -/* 0CC0F8 800CB4F8 C7AA0004 */ lwc1 $f10, 4($sp) -/* 0CC0FC 800CB4FC 46809120 */ cvt.s.w $f4, $f18 -/* 0CC100 800CB500 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 0CC104 800CB504 44813800 */ mtc1 $at, $f7 -/* 0CC108 800CB508 46045202 */ mul.s $f8, $f10, $f4 -/* 0CC10C 800CB50C 44803000 */ mtc1 $zero, $f6 -/* 0CC110 800CB510 460062A1 */ cvt.d.s $f10, $f12 -/* 0CC114 800CB514 46004421 */ cvt.d.s $f16, $f8 -/* 0CC118 800CB518 00000000 */ nop -/* 0CC11C 800CB51C 46268483 */ div.d $f18, $f16, $f6 -/* 0CC120 800CB520 46325100 */ add.d $f4, $f10, $f18 -/* 0CC124 800CB524 46202320 */ cvt.s.d $f12, $f4 -/* 0CC128 800CB528 10000003 */ b .L800CB538 -/* 0CC12C 800CB52C 46006006 */ mov.s $f0, $f12 -/* 0CC130 800CB530 10000001 */ b .L800CB538 -/* 0CC134 800CB534 00000000 */ nop -.L800CB538: -/* 0CC138 800CB538 03E00008 */ jr $ra -/* 0CC13C 800CB53C 27BD0008 */ addiu $sp, $sp, 8 - diff --git a/lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s b/lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s deleted file mode 100644 index f032c953..00000000 --- a/lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s +++ /dev/null @@ -1,80 +0,0 @@ -glabel func_800CBAC0 -/* 0CC6C0 800CBAC0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CC6C4 800CBAC4 AFB3002C */ sw $s3, 0x2c($sp) -/* 0CC6C8 800CBAC8 AFB50028 */ sw $s5, 0x28($sp) -/* 0CC6CC 800CBACC 00137400 */ sll $t6, $s3, 0x10 -/* 0CC6D0 800CBAD0 0015C400 */ sll $t8, $s5, 0x10 -/* 0CC6D4 800CBAD4 0018AC03 */ sra $s5, $t8, 0x10 -/* 0CC6D8 800CBAD8 000E9C03 */ sra $s3, $t6, 0x10 -/* 0CC6DC 800CBADC 1A20001A */ blez $s1, .L800CBB48 -/* 0CC6E0 800CBAE0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CC6E4 800CBAE4 8E590030 */ lw $t9, 0x30($s2) -/* 0CC6E8 800CBAE8 8E440044 */ lw $a0, 0x44($s2) -/* 0CC6EC 800CBAEC 02202825 */ move $a1, $s1 -/* 0CC6F0 800CBAF0 0320F809 */ jalr $t9 -/* 0CC6F4 800CBAF4 8E460034 */ lw $a2, 0x34($s2) -/* 0CC6F8 800CBAF8 30460007 */ andi $a2, $v0, 7 -/* 0CC6FC 800CBAFC 02268821 */ addu $s1, $s1, $a2 -/* 0CC700 800CBB00 326EFFFF */ andi $t6, $s3, 0xffff -/* 0CC704 800CBB04 3C010800 */ lui $at, 0x800 -/* 0CC708 800CBB08 01C17825 */ or $t7, $t6, $at -/* 0CC70C 800CBB0C 32380007 */ andi $t8, $s1, 7 -/* 0CC710 800CBB10 02002025 */ move $a0, $s0 -/* 0CC714 800CBB14 0238C823 */ subu $t9, $s1, $t8 -/* 0CC718 800CBB18 272E0008 */ addiu $t6, $t9, 8 -/* 0CC71C 800CBB1C AC8F0000 */ sw $t7, ($a0) -/* 0CC720 800CBB20 26100008 */ addiu $s0, $s0, 8 -/* 0CC724 800CBB24 31CFFFFF */ andi $t7, $t6, 0xffff -/* 0CC728 800CBB28 02002825 */ move $a1, $s0 -/* 0CC72C 800CBB2C AC8F0004 */ sw $t7, 4($a0) -/* 0CC730 800CBB30 0046C823 */ subu $t9, $v0, $a2 -/* 0CC734 800CBB34 3C180400 */ lui $t8, 0x400 -/* 0CC738 800CBB38 ACB80000 */ sw $t8, ($a1) -/* 0CC73C 800CBB3C ACB90004 */ sw $t9, 4($a1) -/* 0CC740 800CBB40 10000002 */ b .L800CBB4C -/* 0CC744 800CBB44 26100008 */ addiu $s0, $s0, 8 -.L800CBB48: -/* 0CC748 800CBB48 00003025 */ move $a2, $zero -.L800CBB4C: -/* 0CC74C 800CBB4C 328E0002 */ andi $t6, $s4, 2 -/* 0CC750 800CBB50 11C00009 */ beqz $t6, .L800CBB78 -/* 0CC754 800CBB54 02001025 */ move $v0, $s0 -/* 0CC758 800CBB58 3C0F0F00 */ lui $t7, 0xf00 -/* 0CC75C 800CBB5C AC4F0000 */ sw $t7, ($v0) -/* 0CC760 800CBB60 8E580018 */ lw $t8, 0x18($s2) -/* 0CC764 800CBB64 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 0CC768 800CBB68 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CC76C 800CBB6C 0301C824 */ and $t9, $t8, $at -/* 0CC770 800CBB70 AC590004 */ sw $t9, 4($v0) -/* 0CC774 800CBB74 26100008 */ addiu $s0, $s0, 8 -.L800CBB78: -/* 0CC778 800CBB78 02667021 */ addu $t6, $s3, $a2 -/* 0CC77C 800CBB7C 31CFFFFF */ andi $t7, $t6, 0xffff -/* 0CC780 800CBB80 3C010800 */ lui $at, 0x800 -/* 0CC784 800CBB84 01E1C025 */ or $t8, $t7, $at -/* 0CC788 800CBB88 02001825 */ move $v1, $s0 -/* 0CC78C 800CBB8C AC780000 */ sw $t8, ($v1) -/* 0CC790 800CBB90 00167840 */ sll $t7, $s6, 1 -/* 0CC794 800CBB94 31F8FFFF */ andi $t8, $t7, 0xffff -/* 0CC798 800CBB98 00157400 */ sll $t6, $s5, 0x10 -/* 0CC79C 800CBB9C 01D8C825 */ or $t9, $t6, $t8 -/* 0CC7A0 800CBBA0 328F00FF */ andi $t7, $s4, 0xff -/* 0CC7A4 800CBBA4 26100008 */ addiu $s0, $s0, 8 -/* 0CC7A8 800CBBA8 000F7400 */ sll $t6, $t7, 0x10 -/* 0CC7AC 800CBBAC 3C010100 */ lui $at, 0x100 -/* 0CC7B0 800CBBB0 AC790004 */ sw $t9, 4($v1) -/* 0CC7B4 800CBBB4 01C1C025 */ or $t8, $t6, $at -/* 0CC7B8 800CBBB8 02002025 */ move $a0, $s0 -/* 0CC7BC 800CBBBC AC980000 */ sw $t8, ($a0) -/* 0CC7C0 800CBBC0 8E590014 */ lw $t9, 0x14($s2) -/* 0CC7C4 800CBBC4 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff -/* 0CC7C8 800CBBC8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0CC7CC 800CBBCC 03217824 */ and $t7, $t9, $at -/* 0CC7D0 800CBBD0 AC8F0004 */ sw $t7, 4($a0) -/* 0CC7D4 800CBBD4 AE400040 */ sw $zero, 0x40($s2) -/* 0CC7D8 800CBBD8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CC7DC 800CBBDC 26100008 */ addiu $s0, $s0, 8 -/* 0CC7E0 800CBBE0 02001025 */ move $v0, $s0 -/* 0CC7E4 800CBBE4 03E00008 */ jr $ra -/* 0CC7E8 800CBBE8 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s b/lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s deleted file mode 100644 index 66fb4732..00000000 --- a/lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel alMainBusParam -/* 0CCF90 800CC390 24010002 */ li $at, 2 -/* 0CCF94 800CC394 14A10008 */ bne $a1, $at, .L800CC3B8 -/* 0CCF98 800CC398 8C82001C */ lw $v0, 0x1c($a0) -/* 0CCF9C 800CC39C 8C8E0014 */ lw $t6, 0x14($a0) -/* 0CCFA0 800CC3A0 000E7880 */ sll $t7, $t6, 2 -/* 0CCFA4 800CC3A4 004FC021 */ addu $t8, $v0, $t7 -/* 0CCFA8 800CC3A8 AF060000 */ sw $a2, ($t8) -/* 0CCFAC 800CC3AC 8C990014 */ lw $t9, 0x14($a0) -/* 0CCFB0 800CC3B0 27280001 */ addiu $t0, $t9, 1 -/* 0CCFB4 800CC3B4 AC880014 */ sw $t0, 0x14($a0) -.L800CC3B8: -/* 0CCFB8 800CC3B8 03E00008 */ jr $ra -/* 0CCFBC 800CC3BC 00001025 */ move $v0, $zero - diff --git a/lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s b/lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s deleted file mode 100644 index 856ef231..00000000 --- a/lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s +++ /dev/null @@ -1,76 +0,0 @@ -glabel alMainBusPull -/* 0CCFC0 800CC3C0 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0CCFC4 800CC3C4 8FA80058 */ lw $t0, 0x58($sp) -/* 0CCFC8 800CC3C8 AFBF0044 */ sw $ra, 0x44($sp) -/* 0CCFCC 800CC3CC AFBE0040 */ sw $fp, 0x40($sp) -/* 0CCFD0 800CC3D0 AFB7003C */ sw $s7, 0x3c($sp) -/* 0CCFD4 800CC3D4 AFB60038 */ sw $s6, 0x38($sp) -/* 0CCFD8 800CC3D8 AFB50034 */ sw $s5, 0x34($sp) -/* 0CCFDC 800CC3DC AFB40030 */ sw $s4, 0x30($sp) -/* 0CCFE0 800CC3E0 AFB3002C */ sw $s3, 0x2c($sp) -/* 0CCFE4 800CC3E4 AFB20028 */ sw $s2, 0x28($sp) -/* 0CCFE8 800CC3E8 AFB10024 */ sw $s1, 0x24($sp) -/* 0CCFEC 800CC3EC AFB00020 */ sw $s0, 0x20($sp) -/* 0CCFF0 800CC3F0 8C83001C */ lw $v1, 0x1c($a0) -/* 0CCFF4 800CC3F4 3C0E0200 */ lui $t6, (0x02000440 >> 16) # lui $t6, 0x200 -/* 0CCFF8 800CC3F8 00061040 */ sll $v0, $a2, 1 -/* 0CCFFC 800CC3FC 3C0F0200 */ lui $t7, (0x02000580 >> 16) # lui $t7, 0x200 -/* 0CD000 800CC400 35CE0440 */ ori $t6, (0x02000440 & 0xFFFF) # ori $t6, $t6, 0x440 -/* 0CD004 800CC404 35EF0580 */ ori $t7, (0x02000580 & 0xFFFF) # ori $t7, $t7, 0x580 -/* 0CD008 800CC408 AD0E0000 */ sw $t6, ($t0) -/* 0CD00C 800CC40C AD020004 */ sw $v0, 4($t0) -/* 0CD010 800CC410 AD0F0008 */ sw $t7, 8($t0) -/* 0CD014 800CC414 AD02000C */ sw $v0, 0xc($t0) -/* 0CD018 800CC418 8C980014 */ lw $t8, 0x14($a0) -/* 0CD01C 800CC41C 00C0A825 */ move $s5, $a2 -/* 0CD020 800CC420 00A0B825 */ move $s7, $a1 -/* 0CD024 800CC424 00E0F025 */ move $fp, $a3 -/* 0CD028 800CC428 0080A025 */ move $s4, $a0 -/* 0CD02C 800CC42C 00008025 */ move $s0, $zero -/* 0CD030 800CC430 1B00001E */ blez $t8, .L800CC4AC -/* 0CD034 800CC434 25130010 */ addiu $s3, $t0, 0x10 -/* 0CD038 800CC438 3C120C00 */ lui $s2, (0x0C007FFF >> 16) # lui $s2, 0xc00 -/* 0CD03C 800CC43C 36527FFF */ ori $s2, (0x0C007FFF & 0xFFFF) # ori $s2, $s2, 0x7fff -/* 0CD040 800CC440 00608825 */ move $s1, $v1 -/* 0CD044 800CC444 3056FFFF */ andi $s6, $v0, 0xffff -.L800CC448: -/* 0CD048 800CC448 8E240000 */ lw $a0, ($s1) -/* 0CD04C 800CC44C AFB30010 */ sw $s3, 0x10($sp) -/* 0CD050 800CC450 02E02825 */ move $a1, $s7 -/* 0CD054 800CC454 8C990004 */ lw $t9, 4($a0) -/* 0CD058 800CC458 02A03025 */ move $a2, $s5 -/* 0CD05C 800CC45C 03C03825 */ move $a3, $fp -/* 0CD060 800CC460 0320F809 */ jalr $t9 -/* 0CD064 800CC464 00000000 */ nop -/* 0CD068 800CC468 3C0A06C0 */ lui $t2, (0x06C00440 >> 16) # lui $t2, 0x6c0 -/* 0CD06C 800CC46C 3C0B0800 */ lui $t3, (0x08000580 >> 16) # lui $t3, 0x800 -/* 0CD070 800CC470 3C090800 */ lui $t1, 0x800 -/* 0CD074 800CC474 354A0440 */ ori $t2, (0x06C00440 & 0xFFFF) # ori $t2, $t2, 0x440 -/* 0CD078 800CC478 356B0580 */ ori $t3, (0x08000580 & 0xFFFF) # ori $t3, $t3, 0x580 -/* 0CD07C 800CC47C AC490000 */ sw $t1, ($v0) -/* 0CD080 800CC480 AC560004 */ sw $s6, 4($v0) -/* 0CD084 800CC484 AC4A000C */ sw $t2, 0xc($v0) -/* 0CD088 800CC488 AC520008 */ sw $s2, 8($v0) -/* 0CD08C 800CC48C AC4B0014 */ sw $t3, 0x14($v0) -/* 0CD090 800CC490 AC520010 */ sw $s2, 0x10($v0) -/* 0CD094 800CC494 8E8C0014 */ lw $t4, 0x14($s4) -/* 0CD098 800CC498 26100001 */ addiu $s0, $s0, 1 -/* 0CD09C 800CC49C 26310004 */ addiu $s1, $s1, 4 -/* 0CD0A0 800CC4A0 020C082A */ slt $at, $s0, $t4 -/* 0CD0A4 800CC4A4 1420FFE8 */ bnez $at, .L800CC448 -/* 0CD0A8 800CC4A8 24530018 */ addiu $s3, $v0, 0x18 -.L800CC4AC: -/* 0CD0AC 800CC4AC 8FBF0044 */ lw $ra, 0x44($sp) -/* 0CD0B0 800CC4B0 02601025 */ move $v0, $s3 -/* 0CD0B4 800CC4B4 8FB3002C */ lw $s3, 0x2c($sp) -/* 0CD0B8 800CC4B8 8FB00020 */ lw $s0, 0x20($sp) -/* 0CD0BC 800CC4BC 8FB10024 */ lw $s1, 0x24($sp) -/* 0CD0C0 800CC4C0 8FB20028 */ lw $s2, 0x28($sp) -/* 0CD0C4 800CC4C4 8FB40030 */ lw $s4, 0x30($sp) -/* 0CD0C8 800CC4C8 8FB50034 */ lw $s5, 0x34($sp) -/* 0CD0CC 800CC4CC 8FB60038 */ lw $s6, 0x38($sp) -/* 0CD0D0 800CC4D0 8FB7003C */ lw $s7, 0x3c($sp) -/* 0CD0D4 800CC4D4 8FBE0040 */ lw $fp, 0x40($sp) -/* 0CD0D8 800CC4D8 03E00008 */ jr $ra -/* 0CD0DC 800CC4DC 27BD0048 */ addiu $sp, $sp, 0x48 - diff --git a/lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s b/lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s deleted file mode 100644 index e6ea7780..00000000 --- a/lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel alSaveParam -/* 0CD0E0 800CC4E0 24010001 */ li $at, 1 -/* 0CD0E4 800CC4E4 10A10006 */ beq $a1, $at, .L800CC500 -/* 0CD0E8 800CC4E8 00001025 */ move $v0, $zero -/* 0CD0EC 800CC4EC 24010006 */ li $at, 6 -/* 0CD0F0 800CC4F0 50A10006 */ beql $a1, $at, .L800CC50C -/* 0CD0F4 800CC4F4 AC860014 */ sw $a2, 0x14($a0) -/* 0CD0F8 800CC4F8 03E00008 */ jr $ra -/* 0CD0FC 800CC4FC 00001025 */ move $v0, $zero - -.L800CC500: -/* 0CD100 800CC500 03E00008 */ jr $ra -/* 0CD104 800CC504 AC860000 */ sw $a2, ($a0) - -/* 0CD108 800CC508 AC860014 */ sw $a2, 0x14($a0) -.L800CC50C: -/* 0CD10C 800CC50C 03E00008 */ jr $ra -/* 0CD110 800CC510 00001025 */ move $v0, $zero - diff --git a/lib/asm/non_matchings/unknown_0CCF90/alSavePull.s b/lib/asm/non_matchings/unknown_0CCF90/alSavePull.s deleted file mode 100644 index 3f38f50b..00000000 --- a/lib/asm/non_matchings/unknown_0CCF90/alSavePull.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel alSavePull -/* 0CD114 800CC514 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0CD118 800CC518 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CD11C 800CC51C AFA40020 */ sw $a0, 0x20($sp) -/* 0CD120 800CC520 8C840000 */ lw $a0, ($a0) -/* 0CD124 800CC524 8FAF0030 */ lw $t7, 0x30($sp) -/* 0CD128 800CC528 AFA60028 */ sw $a2, 0x28($sp) -/* 0CD12C 800CC52C AFAF0010 */ sw $t7, 0x10($sp) -/* 0CD130 800CC530 8C990004 */ lw $t9, 4($a0) -/* 0CD134 800CC534 0320F809 */ jalr $t9 -/* 0CD138 800CC538 00000000 */ nop -/* 0CD13C 800CC53C 8FA60028 */ lw $a2, 0x28($sp) -/* 0CD140 800CC540 3C030800 */ lui $v1, 0x800 -/* 0CD144 800CC544 3C0A0440 */ lui $t2, (0x04400580 >> 16) # lui $t2, 0x440 -/* 0CD148 800CC548 0006C040 */ sll $t8, $a2, 1 -/* 0CD14C 800CC54C 00065880 */ sll $t3, $a2, 2 -/* 0CD150 800CC550 3308FFFF */ andi $t0, $t8, 0xffff -/* 0CD154 800CC554 354A0580 */ ori $t2, (0x04400580 & 0xFFFF) # ori $t2, $t2, 0x580 -/* 0CD158 800CC558 3C090D00 */ lui $t1, 0xd00 -/* 0CD15C 800CC55C 316CFFFF */ andi $t4, $t3, 0xffff -/* 0CD160 800CC560 3C0D0600 */ lui $t5, 0x600 -/* 0CD164 800CC564 AC480004 */ sw $t0, 4($v0) -/* 0CD168 800CC568 AC430000 */ sw $v1, ($v0) -/* 0CD16C 800CC56C AC490008 */ sw $t1, 8($v0) -/* 0CD170 800CC570 AC4A000C */ sw $t2, 0xc($v0) -/* 0CD174 800CC574 AC4C0014 */ sw $t4, 0x14($v0) -/* 0CD178 800CC578 AC430010 */ sw $v1, 0x10($v0) -/* 0CD17C 800CC57C AC4D0018 */ sw $t5, 0x18($v0) -/* 0CD180 800CC580 8FAE0020 */ lw $t6, 0x20($sp) -/* 0CD184 800CC584 24420020 */ addiu $v0, $v0, 0x20 -/* 0CD188 800CC588 8DCF0014 */ lw $t7, 0x14($t6) -/* 0CD18C 800CC58C AC4FFFFC */ sw $t7, -4($v0) -/* 0CD190 800CC590 8FBF001C */ lw $ra, 0x1c($sp) -/* 0CD194 800CC594 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0CD198 800CC598 03E00008 */ jr $ra -/* 0CD19C 800CC59C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s b/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s deleted file mode 100644 index fbfda341..00000000 --- a/lib/asm/non_matchings/unknown_0CCF90/osSetThreadPri.s +++ /dev/null @@ -1,61 +0,0 @@ -glabel osSetThreadPri -/* 0CD440 800CC840 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0CD444 800CC844 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CD448 800CC848 AFA40028 */ sw $a0, 0x28($sp) -/* 0CD44C 800CC84C AFA5002C */ sw $a1, 0x2c($sp) -/* 0CD450 800CC850 0C034958 */ jal __osDisableInt -/* 0CD454 800CC854 AFB00018 */ sw $s0, 0x18($sp) -/* 0CD458 800CC858 8FAE0028 */ lw $t6, 0x28($sp) -/* 0CD45C 800CC85C 00408025 */ move $s0, $v0 -/* 0CD460 800CC860 15C00004 */ bnez $t6, .L800CC874 -/* 0CD464 800CC864 00000000 */ nop -/* 0CD468 800CC868 3C0F800E */ lui $t7, %hi(__osRunningThread) # $t7, 0x800e -/* 0CD46C 800CC86C 8DEF4890 */ lw $t7, %lo(__osRunningThread)($t7) -/* 0CD470 800CC870 AFAF0028 */ sw $t7, 0x28($sp) -.L800CC874: -/* 0CD474 800CC874 8FB80028 */ lw $t8, 0x28($sp) -/* 0CD478 800CC878 8FA8002C */ lw $t0, 0x2c($sp) -/* 0CD47C 800CC87C 8F190004 */ lw $t9, 4($t8) -/* 0CD480 800CC880 13280020 */ beq $t9, $t0, .L800CC904 -/* 0CD484 800CC884 00000000 */ nop -/* 0CD488 800CC888 AF080004 */ sw $t0, 4($t8) -/* 0CD48C 800CC88C 3C0A800E */ lui $t2, %hi(__osRunningThread) # $t2, 0x800e -/* 0CD490 800CC890 8D4A4890 */ lw $t2, %lo(__osRunningThread)($t2) -/* 0CD494 800CC894 8FA90028 */ lw $t1, 0x28($sp) -/* 0CD498 800CC898 112A000C */ beq $t1, $t2, .L800CC8CC -/* 0CD49C 800CC89C 00000000 */ nop -/* 0CD4A0 800CC8A0 952B0010 */ lhu $t3, 0x10($t1) -/* 0CD4A4 800CC8A4 24010001 */ li $at, 1 -/* 0CD4A8 800CC8A8 11610008 */ beq $t3, $at, .L800CC8CC -/* 0CD4AC 800CC8AC 00000000 */ nop -/* 0CD4B0 800CC8B0 8D240008 */ lw $a0, 8($t1) -/* 0CD4B4 800CC8B4 0C034B1C */ jal __osDequeueThread -/* 0CD4B8 800CC8B8 01202825 */ move $a1, $t1 -/* 0CD4BC 800CC8BC 8FAC0028 */ lw $t4, 0x28($sp) -/* 0CD4C0 800CC8C0 8D840008 */ lw $a0, 8($t4) -/* 0CD4C4 800CC8C4 0C034CF3 */ jal __osEnqueueThread -/* 0CD4C8 800CC8C8 01802825 */ move $a1, $t4 -.L800CC8CC: -/* 0CD4CC 800CC8CC 3C0D800E */ lui $t5, %hi(__osRunningThread) # $t5, 0x800e -/* 0CD4D0 800CC8D0 3C0F800E */ lui $t7, %hi(__osRunQueue) # $t7, 0x800e -/* 0CD4D4 800CC8D4 8DEF4888 */ lw $t7, %lo(__osRunQueue)($t7) -/* 0CD4D8 800CC8D8 8DAD4890 */ lw $t5, %lo(__osRunningThread)($t5) -/* 0CD4DC 800CC8DC 8DF90004 */ lw $t9, 4($t7) -/* 0CD4E0 800CC8E0 8DAE0004 */ lw $t6, 4($t5) -/* 0CD4E4 800CC8E4 01D9082A */ slt $at, $t6, $t9 -/* 0CD4E8 800CC8E8 10200006 */ beqz $at, .L800CC904 -/* 0CD4EC 800CC8EC 00000000 */ nop -/* 0CD4F0 800CC8F0 24080002 */ li $t0, 2 -/* 0CD4F4 800CC8F4 3C04800E */ lui $a0, %hi(__osRunQueue) # $a0, 0x800e -/* 0CD4F8 800CC8F8 A5A80010 */ sh $t0, 0x10($t5) -/* 0CD4FC 800CC8FC 0C034CB3 */ jal __osEnqueueAndYield -/* 0CD500 800CC900 24844888 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x4888 -.L800CC904: -/* 0CD504 800CC904 0C034960 */ jal __osRestoreInt -/* 0CD508 800CC908 02002025 */ move $a0, $s0 -/* 0CD50C 800CC90C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0CD510 800CC910 8FB00018 */ lw $s0, 0x18($sp) -/* 0CD514 800CC914 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0CD518 800CC918 03E00008 */ jr $ra -/* 0CD51C 800CC91C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CE200/__osSiRawStartDma.s b/lib/asm/non_matchings/unknown_0CE200/__osSiRawStartDma.s deleted file mode 100644 index c022a219..00000000 --- a/lib/asm/non_matchings/unknown_0CE200/__osSiRawStartDma.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel __osSiRawStartDma -/* 0CE2C0 800CD6C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CE2C4 800CD6C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CE2C8 800CD6C8 AFA40018 */ sw $a0, 0x18($sp) -/* 0CE2CC 800CD6CC 0C0354B0 */ jal __osSiDeviceBusy -/* 0CE2D0 800CD6D0 AFA5001C */ sw $a1, 0x1c($sp) -/* 0CE2D4 800CD6D4 10400003 */ beqz $v0, .L800CD6E4 -/* 0CE2D8 800CD6D8 00000000 */ nop -/* 0CE2DC 800CD6DC 1000001F */ b .L800CD75C -/* 0CE2E0 800CD6E0 2402FFFF */ li $v0, -1 -.L800CD6E4: -/* 0CE2E4 800CD6E4 8FAE0018 */ lw $t6, 0x18($sp) -/* 0CE2E8 800CD6E8 24010001 */ li $at, 1 -/* 0CE2EC 800CD6EC 15C10004 */ bne $t6, $at, .L800CD700 -/* 0CE2F0 800CD6F0 00000000 */ nop -/* 0CE2F4 800CD6F4 8FA4001C */ lw $a0, 0x1c($sp) -/* 0CE2F8 800CD6F8 0C03518C */ jal osWritebackDCache -/* 0CE2FC 800CD6FC 24050040 */ li $a1, 64 -.L800CD700: -/* 0CE300 800CD700 0C03233C */ jal osVirtualToPhysical -/* 0CE304 800CD704 8FA4001C */ lw $a0, 0x1c($sp) -/* 0CE308 800CD708 3C0FA480 */ lui $t7, 0xa480 -/* 0CE30C 800CD70C ADE20000 */ sw $v0, ($t7) -/* 0CE310 800CD710 8FB80018 */ lw $t8, 0x18($sp) -/* 0CE314 800CD714 17000006 */ bnez $t8, .L800CD730 -/* 0CE318 800CD718 00000000 */ nop -/* 0CE31C 800CD71C 3C191FC0 */ lui $t9, (0x1FC007C0 >> 16) # lui $t9, 0x1fc0 -/* 0CE320 800CD720 373907C0 */ ori $t9, (0x1FC007C0 & 0xFFFF) # ori $t9, $t9, 0x7c0 -/* 0CE324 800CD724 3C08A480 */ lui $t0, %hi(SI_PIF_ADDR_RD64B_REG) # $t0, 0xa480 -/* 0CE328 800CD728 10000005 */ b .L800CD740 -/* 0CE32C 800CD72C AD190004 */ sw $t9, %lo(SI_PIF_ADDR_RD64B_REG)($t0) -.L800CD730: -/* 0CE330 800CD730 3C091FC0 */ lui $t1, (0x1FC007C0 >> 16) # lui $t1, 0x1fc0 -/* 0CE334 800CD734 352907C0 */ ori $t1, (0x1FC007C0 & 0xFFFF) # ori $t1, $t1, 0x7c0 -/* 0CE338 800CD738 3C0AA480 */ lui $t2, %hi(SI_PIF_ADDR_WR64B_REG) # $t2, 0xa480 -/* 0CE33C 800CD73C AD490010 */ sw $t1, %lo(SI_PIF_ADDR_WR64B_REG)($t2) -.L800CD740: -/* 0CE340 800CD740 8FAB0018 */ lw $t3, 0x18($sp) -/* 0CE344 800CD744 15600004 */ bnez $t3, .L800CD758 -/* 0CE348 800CD748 00000000 */ nop -/* 0CE34C 800CD74C 8FA4001C */ lw $a0, 0x1c($sp) -/* 0CE350 800CD750 0C0345FC */ jal osInvalDCache -/* 0CE354 800CD754 24050040 */ li $a1, 64 -.L800CD758: -/* 0CE358 800CD758 00001025 */ move $v0, $zero -.L800CD75C: -/* 0CE35C 800CD75C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CE360 800CD760 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CE364 800CD764 03E00008 */ jr $ra -/* 0CE368 800CD768 00000000 */ nop - -/* 0CE36C 800CD76C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D0130/corrupted.s b/lib/asm/non_matchings/unknown_0D0130/corrupted.s deleted file mode 100644 index 2ced291e..00000000 --- a/lib/asm/non_matchings/unknown_0D0130/corrupted.s +++ /dev/null @@ -1,139 +0,0 @@ -glabel corrupted -/* 0D09A8 800CFDA8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0D09AC 800CFDAC AFA50034 */ sw $a1, 0x34($sp) -/* 0D09B0 800CFDB0 93B80034 */ lbu $t8, 0x34($sp) -/* 0D09B4 800CFDB4 93AE0035 */ lbu $t6, 0x35($sp) -/* 0D09B8 800CFDB8 AFA40030 */ sw $a0, 0x30($sp) -/* 0D09BC 800CFDBC 8FAA0030 */ lw $t2, 0x30($sp) -/* 0D09C0 800CFDC0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D09C4 800CFDC4 AFA60038 */ sw $a2, 0x38($sp) -/* 0D09C8 800CFDC8 AFA00024 */ sw $zero, 0x24($sp) -/* 0D09CC 800CFDCC AFA00018 */ sw $zero, 0x18($sp) -/* 0D09D0 800CFDD0 05C10003 */ bgez $t6, .L800CFDE0 -/* 0D09D4 800CFDD4 000E7883 */ sra $t7, $t6, 2 -/* 0D09D8 800CFDD8 25C10003 */ addiu $at, $t6, 3 -/* 0D09DC 800CFDDC 00017883 */ sra $t7, $at, 2 -.L800CFDE0: -/* 0D09E0 800CFDE0 07010004 */ bgez $t8, .L800CFDF4 -/* 0D09E4 800CFDE4 33190007 */ andi $t9, $t8, 7 -/* 0D09E8 800CFDE8 13200002 */ beqz $t9, .L800CFDF4 -/* 0D09EC 800CFDEC 00000000 */ nop -/* 0D09F0 800CFDF0 2739FFF8 */ addiu $t9, $t9, -8 -.L800CFDF4: -/* 0D09F4 800CFDF4 00194140 */ sll $t0, $t9, 5 -/* 0D09F8 800CFDF8 01E84821 */ addu $t1, $t7, $t0 -/* 0D09FC 800CFDFC AFA90028 */ sw $t1, 0x28($sp) -/* 0D0A00 800CFE00 A3A00023 */ sb $zero, 0x23($sp) -/* 0D0A04 800CFE04 914B0064 */ lbu $t3, 0x64($t2) -/* 0D0A08 800CFE08 1960005C */ blez $t3, .L800CFF7C -/* 0D0A0C 800CFE0C 00000000 */ nop -.L800CFE10: -/* 0D0A10 800CFE10 93AC0023 */ lbu $t4, 0x23($sp) -/* 0D0A14 800CFE14 19800004 */ blez $t4, .L800CFE28 -/* 0D0A18 800CFE18 00000000 */ nop -/* 0D0A1C 800CFE1C 240D0001 */ li $t5, 1 -/* 0D0A20 800CFE20 10000004 */ b .L800CFE34 -/* 0D0A24 800CFE24 AFAD001C */ sw $t5, 0x1c($sp) -.L800CFE28: -/* 0D0A28 800CFE28 8FAE0030 */ lw $t6, 0x30($sp) -/* 0D0A2C 800CFE2C 8DD80060 */ lw $t8, 0x60($t6) -/* 0D0A30 800CFE30 AFB8001C */ sw $t8, 0x1c($sp) -.L800CFE34: -/* 0D0A34 800CFE34 93B90023 */ lbu $t9, 0x23($sp) -/* 0D0A38 800CFE38 93AF0034 */ lbu $t7, 0x34($sp) -/* 0D0A3C 800CFE3C 132F000F */ beq $t9, $t7, .L800CFE7C -/* 0D0A40 800CFE40 00000000 */ nop -/* 0D0A44 800CFE44 8FA80038 */ lw $t0, 0x38($sp) -/* 0D0A48 800CFE48 8FA90028 */ lw $t1, 0x28($sp) -/* 0D0A4C 800CFE4C 240D0001 */ li $t5, 1 -/* 0D0A50 800CFE50 01095021 */ addu $t2, $t0, $t1 -/* 0D0A54 800CFE54 914B0101 */ lbu $t3, 0x101($t2) -/* 0D0A58 800CFE58 07210004 */ bgez $t9, .L800CFE6C -/* 0D0A5C 800CFE5C 332C0007 */ andi $t4, $t9, 7 -/* 0D0A60 800CFE60 11800002 */ beqz $t4, .L800CFE6C -/* 0D0A64 800CFE64 00000000 */ nop -/* 0D0A68 800CFE68 258CFFF8 */ addiu $t4, $t4, -8 -.L800CFE6C: -/* 0D0A6C 800CFE6C 018D7004 */ sllv $t6, $t5, $t4 -/* 0D0A70 800CFE70 016EC024 */ and $t8, $t3, $t6 -/* 0D0A74 800CFE74 13000038 */ beqz $t8, .L800CFF58 -/* 0D0A78 800CFE78 00000000 */ nop -.L800CFE7C: -/* 0D0A7C 800CFE7C 8FA80038 */ lw $t0, 0x38($sp) -/* 0D0A80 800CFE80 93AF0023 */ lbu $t7, 0x23($sp) -/* 0D0A84 800CFE84 91090100 */ lbu $t1, 0x100($t0) -/* 0D0A88 800CFE88 11E90011 */ beq $t7, $t1, .L800CFED0 -/* 0D0A8C 800CFE8C 00000000 */ nop -/* 0D0A90 800CFE90 8FA40030 */ lw $a0, 0x30($sp) -/* 0D0A94 800CFE94 01002825 */ move $a1, $t0 -/* 0D0A98 800CFE98 00003025 */ move $a2, $zero -/* 0D0A9C 800CFE9C 0C03572F */ jal __osPfsRWInode -/* 0D0AA0 800CFEA0 01E03825 */ move $a3, $t7 -/* 0D0AA4 800CFEA4 AFA20018 */ sw $v0, 0x18($sp) -/* 0D0AA8 800CFEA8 8FAA0018 */ lw $t2, 0x18($sp) -/* 0D0AAC 800CFEAC 11400005 */ beqz $t2, .L800CFEC4 -/* 0D0AB0 800CFEB0 24010003 */ li $at, 3 -/* 0D0AB4 800CFEB4 11410003 */ beq $t2, $at, .L800CFEC4 -/* 0D0AB8 800CFEB8 00000000 */ nop -/* 0D0ABC 800CFEBC 10000030 */ b .L800CFF80 -/* 0D0AC0 800CFEC0 01401025 */ move $v0, $t2 -.L800CFEC4: -/* 0D0AC4 800CFEC4 93B90023 */ lbu $t9, 0x23($sp) -/* 0D0AC8 800CFEC8 8FAD0038 */ lw $t5, 0x38($sp) -/* 0D0ACC 800CFECC A1B90100 */ sb $t9, 0x100($t5) -.L800CFED0: -/* 0D0AD0 800CFED0 8FAB0024 */ lw $t3, 0x24($sp) -/* 0D0AD4 800CFED4 8FAC001C */ lw $t4, 0x1c($sp) -/* 0D0AD8 800CFED8 29610002 */ slti $at, $t3, 2 -/* 0D0ADC 800CFEDC 10200018 */ beqz $at, .L800CFF40 -/* 0D0AE0 800CFEE0 AFAC002C */ sw $t4, 0x2c($sp) -/* 0D0AE4 800CFEE4 29810080 */ slti $at, $t4, 0x80 -/* 0D0AE8 800CFEE8 10200015 */ beqz $at, .L800CFF40 -/* 0D0AEC 800CFEEC 00000000 */ nop -.L800CFEF0: -/* 0D0AF0 800CFEF0 8FB8002C */ lw $t8, 0x2c($sp) -/* 0D0AF4 800CFEF4 8FAE0038 */ lw $t6, 0x38($sp) -/* 0D0AF8 800CFEF8 97AA0034 */ lhu $t2, 0x34($sp) -/* 0D0AFC 800CFEFC 00184840 */ sll $t1, $t8, 1 -/* 0D0B00 800CFF00 01C94021 */ addu $t0, $t6, $t1 -/* 0D0B04 800CFF04 950F0000 */ lhu $t7, ($t0) -/* 0D0B08 800CFF08 15EA0004 */ bne $t7, $t2, .L800CFF1C -/* 0D0B0C 800CFF0C 00000000 */ nop -/* 0D0B10 800CFF10 8FB90024 */ lw $t9, 0x24($sp) -/* 0D0B14 800CFF14 272D0001 */ addiu $t5, $t9, 1 -/* 0D0B18 800CFF18 AFAD0024 */ sw $t5, 0x24($sp) -.L800CFF1C: -/* 0D0B1C 800CFF1C 8FAB002C */ lw $t3, 0x2c($sp) -/* 0D0B20 800CFF20 8FB80024 */ lw $t8, 0x24($sp) -/* 0D0B24 800CFF24 256C0001 */ addiu $t4, $t3, 1 -/* 0D0B28 800CFF28 2B010002 */ slti $at, $t8, 2 -/* 0D0B2C 800CFF2C 10200004 */ beqz $at, .L800CFF40 -/* 0D0B30 800CFF30 AFAC002C */ sw $t4, 0x2c($sp) -/* 0D0B34 800CFF34 29810080 */ slti $at, $t4, 0x80 -/* 0D0B38 800CFF38 1420FFED */ bnez $at, .L800CFEF0 -/* 0D0B3C 800CFF3C 00000000 */ nop -.L800CFF40: -/* 0D0B40 800CFF40 8FAE0024 */ lw $t6, 0x24($sp) -/* 0D0B44 800CFF44 29C10002 */ slti $at, $t6, 2 -/* 0D0B48 800CFF48 14200003 */ bnez $at, .L800CFF58 -/* 0D0B4C 800CFF4C 00000000 */ nop -/* 0D0B50 800CFF50 1000000B */ b .L800CFF80 -/* 0D0B54 800CFF54 24020002 */ li $v0, 2 -.L800CFF58: -/* 0D0B58 800CFF58 93A90023 */ lbu $t1, 0x23($sp) -/* 0D0B5C 800CFF5C 8FAA0030 */ lw $t2, 0x30($sp) -/* 0D0B60 800CFF60 25280001 */ addiu $t0, $t1, 1 -/* 0D0B64 800CFF64 A3A80023 */ sb $t0, 0x23($sp) -/* 0D0B68 800CFF68 91590064 */ lbu $t9, 0x64($t2) -/* 0D0B6C 800CFF6C 310F00FF */ andi $t7, $t0, 0xff -/* 0D0B70 800CFF70 01F9082A */ slt $at, $t7, $t9 -/* 0D0B74 800CFF74 1420FFA6 */ bnez $at, .L800CFE10 -/* 0D0B78 800CFF78 00000000 */ nop -.L800CFF7C: -/* 0D0B7C 800CFF7C 8FA20024 */ lw $v0, 0x24($sp) -.L800CFF80: -/* 0D0B80 800CFF80 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D0B84 800CFF84 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0D0B88 800CFF88 03E00008 */ jr $ra -/* 0D0B8C 800CFF8C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D0130/corrupted_init.s b/lib/asm/non_matchings/unknown_0D0130/corrupted_init.s deleted file mode 100644 index 8b99ffa5..00000000 --- a/lib/asm/non_matchings/unknown_0D0130/corrupted_init.s +++ /dev/null @@ -1,124 +0,0 @@ -glabel corrupted_init -/* 0D07F4 800CFBF4 27BDFED0 */ addiu $sp, $sp, -0x130 -/* 0D07F8 800CFBF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D07FC 800CFBFC AFA40130 */ sw $a0, 0x130($sp) -/* 0D0800 800CFC00 AFA50134 */ sw $a1, 0x134($sp) -/* 0D0804 800CFC04 AFA0012C */ sw $zero, 0x12c($sp) -.L800CFC08: -/* 0D0808 800CFC08 8FAE0134 */ lw $t6, 0x134($sp) -/* 0D080C 800CFC0C 8FAF012C */ lw $t7, 0x12c($sp) -/* 0D0810 800CFC10 01CFC021 */ addu $t8, $t6, $t7 -/* 0D0814 800CFC14 A3000101 */ sb $zero, 0x101($t8) -/* 0D0818 800CFC18 8FB9012C */ lw $t9, 0x12c($sp) -/* 0D081C 800CFC1C 27280001 */ addiu $t0, $t9, 1 -/* 0D0820 800CFC20 29010100 */ slti $at, $t0, 0x100 -/* 0D0824 800CFC24 1420FFF8 */ bnez $at, .L800CFC08 -/* 0D0828 800CFC28 AFA8012C */ sw $t0, 0x12c($sp) -/* 0D082C 800CFC2C 8FAA0134 */ lw $t2, 0x134($sp) -/* 0D0830 800CFC30 240900FF */ li $t1, 255 -/* 0D0834 800CFC34 A1490100 */ sb $t1, 0x100($t2) -/* 0D0838 800CFC38 8FAB0130 */ lw $t3, 0x130($sp) -/* 0D083C 800CFC3C A3A00123 */ sb $zero, 0x123($sp) -/* 0D0840 800CFC40 916C0064 */ lbu $t4, 0x64($t3) -/* 0D0844 800CFC44 19800053 */ blez $t4, .L800CFD94 -/* 0D0848 800CFC48 00000000 */ nop -.L800CFC4C: -/* 0D084C 800CFC4C 93AD0123 */ lbu $t5, 0x123($sp) -/* 0D0850 800CFC50 19A00004 */ blez $t5, .L800CFC64 -/* 0D0854 800CFC54 00000000 */ nop -/* 0D0858 800CFC58 240E0001 */ li $t6, 1 -/* 0D085C 800CFC5C 10000004 */ b .L800CFC70 -/* 0D0860 800CFC60 AFAE0124 */ sw $t6, 0x124($sp) -.L800CFC64: -/* 0D0864 800CFC64 8FAF0130 */ lw $t7, 0x130($sp) -/* 0D0868 800CFC68 8DF80060 */ lw $t8, 0x60($t7) -/* 0D086C 800CFC6C AFB80124 */ sw $t8, 0x124($sp) -.L800CFC70: -/* 0D0870 800CFC70 8FA40130 */ lw $a0, 0x130($sp) -/* 0D0874 800CFC74 27A50020 */ addiu $a1, $sp, 0x20 -/* 0D0878 800CFC78 00003025 */ move $a2, $zero -/* 0D087C 800CFC7C 0C03572F */ jal __osPfsRWInode -/* 0D0880 800CFC80 93A70123 */ lbu $a3, 0x123($sp) -/* 0D0884 800CFC84 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D0888 800CFC88 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D088C 800CFC8C 13200005 */ beqz $t9, .L800CFCA4 -/* 0D0890 800CFC90 24010003 */ li $at, 3 -/* 0D0894 800CFC94 13210003 */ beq $t9, $at, .L800CFCA4 -/* 0D0898 800CFC98 00000000 */ nop -/* 0D089C 800CFC9C 1000003E */ b .L800CFD98 -/* 0D08A0 800CFCA0 03201025 */ move $v0, $t9 -.L800CFCA4: -/* 0D08A4 800CFCA4 8FA80124 */ lw $t0, 0x124($sp) -/* 0D08A8 800CFCA8 29010080 */ slti $at, $t0, 0x80 -/* 0D08AC 800CFCAC 10200030 */ beqz $at, .L800CFD70 -/* 0D08B0 800CFCB0 AFA8012C */ sw $t0, 0x12c($sp) -.L800CFCB4: -/* 0D08B4 800CFCB4 8FAA012C */ lw $t2, 0x12c($sp) -/* 0D08B8 800CFCB8 27AC0020 */ addiu $t4, $sp, 0x20 -/* 0D08BC 800CFCBC 27A90120 */ addiu $t1, $sp, 0x120 -/* 0D08C0 800CFCC0 000A5840 */ sll $t3, $t2, 1 -/* 0D08C4 800CFCC4 016C6821 */ addu $t5, $t3, $t4 -/* 0D08C8 800CFCC8 95A10000 */ lhu $at, ($t5) -/* 0D08CC 800CFCCC A5210000 */ sh $at, ($t1) -/* 0D08D0 800CFCD0 8FB90130 */ lw $t9, 0x130($sp) -/* 0D08D4 800CFCD4 97B80120 */ lhu $t8, 0x120($sp) -/* 0D08D8 800CFCD8 8F280060 */ lw $t0, 0x60($t9) -/* 0D08DC 800CFCDC 0308082A */ slt $at, $t8, $t0 -/* 0D08E0 800CFCE0 1420001E */ bnez $at, .L800CFD5C -/* 0D08E4 800CFCE4 00000000 */ nop -/* 0D08E8 800CFCE8 93AA0120 */ lbu $t2, 0x120($sp) -/* 0D08EC 800CFCEC 93AB0123 */ lbu $t3, 0x123($sp) -/* 0D08F0 800CFCF0 114B001A */ beq $t2, $t3, .L800CFD5C -/* 0D08F4 800CFCF4 00000000 */ nop -/* 0D08F8 800CFCF8 93AC0121 */ lbu $t4, 0x121($sp) -/* 0D08FC 800CFCFC 8FB90134 */ lw $t9, 0x134($sp) -/* 0D0900 800CFD00 05810003 */ bgez $t4, .L800CFD10 -/* 0D0904 800CFD04 000C7083 */ sra $t6, $t4, 2 -/* 0D0908 800CFD08 25810003 */ addiu $at, $t4, 3 -/* 0D090C 800CFD0C 00017083 */ sra $t6, $at, 2 -.L800CFD10: -/* 0D0910 800CFD10 05410004 */ bgez $t2, .L800CFD24 -/* 0D0914 800CFD14 31490007 */ andi $t1, $t2, 7 -/* 0D0918 800CFD18 11200002 */ beqz $t1, .L800CFD24 -/* 0D091C 800CFD1C 00000000 */ nop -/* 0D0920 800CFD20 2529FFF8 */ addiu $t1, $t1, -8 -.L800CFD24: -/* 0D0924 800CFD24 00096940 */ sll $t5, $t1, 5 -/* 0D0928 800CFD28 01CD7821 */ addu $t7, $t6, $t5 -/* 0D092C 800CFD2C AFAF0128 */ sw $t7, 0x128($sp) -/* 0D0930 800CFD30 032FC021 */ addu $t8, $t9, $t7 -/* 0D0934 800CFD34 93080101 */ lbu $t0, 0x101($t8) -/* 0D0938 800CFD38 05610004 */ bgez $t3, .L800CFD4C -/* 0D093C 800CFD3C 316C0007 */ andi $t4, $t3, 7 -/* 0D0940 800CFD40 11800002 */ beqz $t4, .L800CFD4C -/* 0D0944 800CFD44 00000000 */ nop -/* 0D0948 800CFD48 258CFFF8 */ addiu $t4, $t4, -8 -.L800CFD4C: -/* 0D094C 800CFD4C 240A0001 */ li $t2, 1 -/* 0D0950 800CFD50 018A4804 */ sllv $t1, $t2, $t4 -/* 0D0954 800CFD54 01097025 */ or $t6, $t0, $t1 -/* 0D0958 800CFD58 A30E0101 */ sb $t6, 0x101($t8) -.L800CFD5C: -/* 0D095C 800CFD5C 8FAD012C */ lw $t5, 0x12c($sp) -/* 0D0960 800CFD60 25B90001 */ addiu $t9, $t5, 1 -/* 0D0964 800CFD64 2B210080 */ slti $at, $t9, 0x80 -/* 0D0968 800CFD68 1420FFD2 */ bnez $at, .L800CFCB4 -/* 0D096C 800CFD6C AFB9012C */ sw $t9, 0x12c($sp) -.L800CFD70: -/* 0D0970 800CFD70 93AF0123 */ lbu $t7, 0x123($sp) -/* 0D0974 800CFD74 8FAC0130 */ lw $t4, 0x130($sp) -/* 0D0978 800CFD78 25EB0001 */ addiu $t3, $t7, 1 -/* 0D097C 800CFD7C A3AB0123 */ sb $t3, 0x123($sp) -/* 0D0980 800CFD80 91880064 */ lbu $t0, 0x64($t4) -/* 0D0984 800CFD84 316A00FF */ andi $t2, $t3, 0xff -/* 0D0988 800CFD88 0148082A */ slt $at, $t2, $t0 -/* 0D098C 800CFD8C 1420FFAF */ bnez $at, .L800CFC4C -/* 0D0990 800CFD90 00000000 */ nop -.L800CFD94: -/* 0D0994 800CFD94 00001025 */ move $v0, $zero -.L800CFD98: -/* 0D0998 800CFD98 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D099C 800CFD9C 27BD0130 */ addiu $sp, $sp, 0x130 -/* 0D09A0 800CFDA0 03E00008 */ jr $ra -/* 0D09A4 800CFDA4 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D0130/osPfsChecker.s b/lib/asm/non_matchings/unknown_0D0130/osPfsChecker.s deleted file mode 100644 index 1763e946..00000000 --- a/lib/asm/non_matchings/unknown_0D0130/osPfsChecker.s +++ /dev/null @@ -1,474 +0,0 @@ -glabel osPfsChecker -/* 0D0130 800CF530 27BDFB78 */ addiu $sp, $sp, -0x488 -/* 0D0134 800CF534 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D0138 800CF538 AFA40488 */ sw $a0, 0x488($sp) -/* 0D013C 800CF53C AFA00034 */ sw $zero, 0x34($sp) -/* 0D0140 800CF540 0C0356F0 */ jal __osCheckId -/* 0D0144 800CF544 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0148 800CF548 AFA20480 */ sw $v0, 0x480($sp) -/* 0D014C 800CF54C 8FAE0480 */ lw $t6, 0x480($sp) -/* 0D0150 800CF550 24010002 */ li $at, 2 -/* 0D0154 800CF554 15C10004 */ bne $t6, $at, .L800CF568 -/* 0D0158 800CF558 00000000 */ nop -/* 0D015C 800CF55C 0C035659 */ jal __osGetId -/* 0D0160 800CF560 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0164 800CF564 AFA20480 */ sw $v0, 0x480($sp) -.L800CF568: -/* 0D0168 800CF568 8FAF0480 */ lw $t7, 0x480($sp) -/* 0D016C 800CF56C 11E00003 */ beqz $t7, .L800CF57C -/* 0D0170 800CF570 00000000 */ nop -/* 0D0174 800CF574 1000019B */ b .L800CFBE4 -/* 0D0178 800CF578 01E01025 */ move $v0, $t7 -.L800CF57C: -/* 0D017C 800CF57C 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0180 800CF580 0C033EFD */ jal corrupted_init -/* 0D0184 800CF584 27A50038 */ addiu $a1, $sp, 0x38 -/* 0D0188 800CF588 AFA20480 */ sw $v0, 0x480($sp) -/* 0D018C 800CF58C 8FB80480 */ lw $t8, 0x480($sp) -/* 0D0190 800CF590 13000003 */ beqz $t8, .L800CF5A0 -/* 0D0194 800CF594 00000000 */ nop -/* 0D0198 800CF598 10000192 */ b .L800CFBE4 -/* 0D019C 800CF59C 03001025 */ move $v0, $t8 -.L800CF5A0: -/* 0D01A0 800CF5A0 8FB90488 */ lw $t9, 0x488($sp) -/* 0D01A4 800CF5A4 AFA00484 */ sw $zero, 0x484($sp) -/* 0D01A8 800CF5A8 8F280050 */ lw $t0, 0x50($t9) -/* 0D01AC 800CF5AC 190000C0 */ blez $t0, .L800CF8B0 -/* 0D01B0 800CF5B0 00000000 */ nop -.L800CF5B4: -/* 0D01B4 800CF5B4 8FA90488 */ lw $t1, 0x488($sp) -/* 0D01B8 800CF5B8 8FAB0484 */ lw $t3, 0x484($sp) -/* 0D01BC 800CF5BC 27A7025C */ addiu $a3, $sp, 0x25c -/* 0D01C0 800CF5C0 8D2A005C */ lw $t2, 0x5c($t1) -/* 0D01C4 800CF5C4 8D240004 */ lw $a0, 4($t1) -/* 0D01C8 800CF5C8 8D250008 */ lw $a1, 8($t1) -/* 0D01CC 800CF5CC 0C033728 */ jal __osContRamRead -/* 0D01D0 800CF5D0 014B3021 */ addu $a2, $t2, $t3 -/* 0D01D4 800CF5D4 AFA20480 */ sw $v0, 0x480($sp) -/* 0D01D8 800CF5D8 8FAC0480 */ lw $t4, 0x480($sp) -/* 0D01DC 800CF5DC 11800003 */ beqz $t4, .L800CF5EC -/* 0D01E0 800CF5E0 00000000 */ nop -/* 0D01E4 800CF5E4 1000017F */ b .L800CFBE4 -/* 0D01E8 800CF5E8 01801025 */ move $v0, $t4 -.L800CF5EC: -/* 0D01EC 800CF5EC 97AD0260 */ lhu $t5, 0x260($sp) -/* 0D01F0 800CF5F0 11A0007D */ beqz $t5, .L800CF7E8 -/* 0D01F4 800CF5F4 00000000 */ nop -/* 0D01F8 800CF5F8 8FAE025C */ lw $t6, 0x25c($sp) -/* 0D01FC 800CF5FC 11C0007A */ beqz $t6, .L800CF7E8 -/* 0D0200 800CF600 00000000 */ nop -/* 0D0204 800CF604 97AF0262 */ lhu $t7, 0x262($sp) -/* 0D0208 800CF608 8FA80488 */ lw $t0, 0x488($sp) -/* 0D020C 800CF60C 241800FF */ li $t8, 255 -/* 0D0210 800CF610 A7AF047C */ sh $t7, 0x47c($sp) -/* 0D0214 800CF614 AFA0002C */ sw $zero, 0x2c($sp) -/* 0D0218 800CF618 AFA00028 */ sw $zero, 0x28($sp) -/* 0D021C 800CF61C A3B80033 */ sb $t8, 0x33($sp) -/* 0D0220 800CF620 97B9047C */ lhu $t9, 0x47c($sp) -/* 0D0224 800CF624 8D090060 */ lw $t1, 0x60($t0) -/* 0D0228 800CF628 0329082A */ slt $at, $t9, $t1 -/* 0D022C 800CF62C 14200042 */ bnez $at, .L800CF738 -/* 0D0230 800CF630 00000000 */ nop -/* 0D0234 800CF634 93AA047C */ lbu $t2, 0x47c($sp) -/* 0D0238 800CF638 910B0064 */ lbu $t3, 0x64($t0) -/* 0D023C 800CF63C 014B082A */ slt $at, $t2, $t3 -/* 0D0240 800CF640 1020003D */ beqz $at, .L800CF738 -/* 0D0244 800CF644 00000000 */ nop -/* 0D0248 800CF648 93AC047D */ lbu $t4, 0x47d($sp) -/* 0D024C 800CF64C 1980003A */ blez $t4, .L800CF738 -/* 0D0250 800CF650 29810080 */ slti $at, $t4, 0x80 -/* 0D0254 800CF654 10200038 */ beqz $at, .L800CF738 -/* 0D0258 800CF658 00000000 */ nop -.L800CF65C: -/* 0D025C 800CF65C 93AD0033 */ lbu $t5, 0x33($sp) -/* 0D0260 800CF660 93AE047C */ lbu $t6, 0x47c($sp) -/* 0D0264 800CF664 11AE000F */ beq $t5, $t6, .L800CF6A4 -/* 0D0268 800CF668 00000000 */ nop -/* 0D026C 800CF66C A3AE0033 */ sb $t6, 0x33($sp) -/* 0D0270 800CF670 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0274 800CF674 27A5027C */ addiu $a1, $sp, 0x27c -/* 0D0278 800CF678 00003025 */ move $a2, $zero -/* 0D027C 800CF67C 0C03572F */ jal __osPfsRWInode -/* 0D0280 800CF680 01C03825 */ move $a3, $t6 -/* 0D0284 800CF684 AFA20480 */ sw $v0, 0x480($sp) -/* 0D0288 800CF688 8FAF0480 */ lw $t7, 0x480($sp) -/* 0D028C 800CF68C 11E00005 */ beqz $t7, .L800CF6A4 -/* 0D0290 800CF690 24010003 */ li $at, 3 -/* 0D0294 800CF694 11E10003 */ beq $t7, $at, .L800CF6A4 -/* 0D0298 800CF698 00000000 */ nop -/* 0D029C 800CF69C 10000151 */ b .L800CFBE4 -/* 0D02A0 800CF6A0 01E01025 */ move $v0, $t7 -.L800CF6A4: -/* 0D02A4 800CF6A4 97B8047C */ lhu $t8, 0x47c($sp) -/* 0D02A8 800CF6A8 8FA40488 */ lw $a0, 0x488($sp) -/* 0D02AC 800CF6AC 27A60038 */ addiu $a2, $sp, 0x38 -/* 0D02B0 800CF6B0 A7B80004 */ sh $t8, 4($sp) -/* 0D02B4 800CF6B4 0C033F6A */ jal corrupted -/* 0D02B8 800CF6B8 8FA50004 */ lw $a1, 4($sp) -/* 0D02BC 800CF6BC 8FB90028 */ lw $t9, 0x28($sp) -/* 0D02C0 800CF6C0 00594823 */ subu $t1, $v0, $t9 -/* 0D02C4 800CF6C4 AFA9002C */ sw $t1, 0x2c($sp) -/* 0D02C8 800CF6C8 8FA8002C */ lw $t0, 0x2c($sp) -/* 0D02CC 800CF6CC 1500001A */ bnez $t0, .L800CF738 -/* 0D02D0 800CF6D0 00000000 */ nop -/* 0D02D4 800CF6D4 93AC047D */ lbu $t4, 0x47d($sp) -/* 0D02D8 800CF6D8 240A0001 */ li $t2, 1 -/* 0D02DC 800CF6DC 27AE027C */ addiu $t6, $sp, 0x27c -/* 0D02E0 800CF6E0 000C6840 */ sll $t5, $t4, 1 -/* 0D02E4 800CF6E4 AFAA0028 */ sw $t2, 0x28($sp) -/* 0D02E8 800CF6E8 01AE7821 */ addu $t7, $t5, $t6 -/* 0D02EC 800CF6EC 95E10000 */ lhu $at, ($t7) -/* 0D02F0 800CF6F0 27AB047C */ addiu $t3, $sp, 0x47c -/* 0D02F4 800CF6F4 A5610000 */ sh $at, ($t3) -/* 0D02F8 800CF6F8 8FAA0488 */ lw $t2, 0x488($sp) -/* 0D02FC 800CF6FC 97A8047C */ lhu $t0, 0x47c($sp) -/* 0D0300 800CF700 8D4C0060 */ lw $t4, 0x60($t2) -/* 0D0304 800CF704 010C082A */ slt $at, $t0, $t4 -/* 0D0308 800CF708 1420000B */ bnez $at, .L800CF738 -/* 0D030C 800CF70C 00000000 */ nop -/* 0D0310 800CF710 93AD047C */ lbu $t5, 0x47c($sp) -/* 0D0314 800CF714 914E0064 */ lbu $t6, 0x64($t2) -/* 0D0318 800CF718 01AE082A */ slt $at, $t5, $t6 -/* 0D031C 800CF71C 10200006 */ beqz $at, .L800CF738 -/* 0D0320 800CF720 00000000 */ nop -/* 0D0324 800CF724 93B9047D */ lbu $t9, 0x47d($sp) -/* 0D0328 800CF728 1B200003 */ blez $t9, .L800CF738 -/* 0D032C 800CF72C 2B210080 */ slti $at, $t9, 0x80 -/* 0D0330 800CF730 1420FFCA */ bnez $at, .L800CF65C -/* 0D0334 800CF734 00000000 */ nop -.L800CF738: -/* 0D0338 800CF738 8FB8002C */ lw $t8, 0x2c($sp) -/* 0D033C 800CF73C 17000005 */ bnez $t8, .L800CF754 -/* 0D0340 800CF740 00000000 */ nop -/* 0D0344 800CF744 97AB047C */ lhu $t3, 0x47c($sp) -/* 0D0348 800CF748 24010001 */ li $at, 1 -/* 0D034C 800CF74C 11610050 */ beq $t3, $at, .L800CF890 -/* 0D0350 800CF750 00000000 */ nop -.L800CF754: -/* 0D0354 800CF754 8FAF0488 */ lw $t7, 0x488($sp) -/* 0D0358 800CF758 A7A00260 */ sh $zero, 0x260($sp) -/* 0D035C 800CF75C AFA0025C */ sw $zero, 0x25c($sp) -/* 0D0360 800CF760 A7A00262 */ sh $zero, 0x262($sp) -/* 0D0364 800CF764 A3A00264 */ sb $zero, 0x264($sp) -/* 0D0368 800CF768 A7A00266 */ sh $zero, 0x266($sp) -/* 0D036C 800CF76C 91E90065 */ lbu $t1, 0x65($t7) -/* 0D0370 800CF770 1120000A */ beqz $t1, .L800CF79C -/* 0D0374 800CF774 00000000 */ nop -/* 0D0378 800CF778 A1E00065 */ sb $zero, 0x65($t7) -/* 0D037C 800CF77C 0C0357F7 */ jal __osPfsSelectBank -/* 0D0380 800CF780 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0384 800CF784 AFA20480 */ sw $v0, 0x480($sp) -/* 0D0388 800CF788 8FA80480 */ lw $t0, 0x480($sp) -/* 0D038C 800CF78C 11000003 */ beqz $t0, .L800CF79C -/* 0D0390 800CF790 00000000 */ nop -/* 0D0394 800CF794 10000113 */ b .L800CFBE4 -/* 0D0398 800CF798 01001025 */ move $v0, $t0 -.L800CF79C: -/* 0D039C 800CF79C 8FAC0488 */ lw $t4, 0x488($sp) -/* 0D03A0 800CF7A0 8FAD0484 */ lw $t5, 0x484($sp) -/* 0D03A4 800CF7A4 27A7025C */ addiu $a3, $sp, 0x25c -/* 0D03A8 800CF7A8 8D8A005C */ lw $t2, 0x5c($t4) -/* 0D03AC 800CF7AC 8D840004 */ lw $a0, 4($t4) -/* 0D03B0 800CF7B0 8D850008 */ lw $a1, 8($t4) -/* 0D03B4 800CF7B4 AFA00010 */ sw $zero, 0x10($sp) -/* 0D03B8 800CF7B8 0C03363C */ jal __osContRamWrite -/* 0D03BC 800CF7BC 014D3021 */ addu $a2, $t2, $t5 -/* 0D03C0 800CF7C0 AFA20480 */ sw $v0, 0x480($sp) -/* 0D03C4 800CF7C4 8FAE0480 */ lw $t6, 0x480($sp) -/* 0D03C8 800CF7C8 11C00003 */ beqz $t6, .L800CF7D8 -/* 0D03CC 800CF7CC 00000000 */ nop -/* 0D03D0 800CF7D0 10000104 */ b .L800CFBE4 -/* 0D03D4 800CF7D4 01C01025 */ move $v0, $t6 -.L800CF7D8: -/* 0D03D8 800CF7D8 8FB90034 */ lw $t9, 0x34($sp) -/* 0D03DC 800CF7DC 27380001 */ addiu $t8, $t9, 1 -/* 0D03E0 800CF7E0 1000002B */ b .L800CF890 -/* 0D03E4 800CF7E4 AFB80034 */ sw $t8, 0x34($sp) -.L800CF7E8: -/* 0D03E8 800CF7E8 97AB0260 */ lhu $t3, 0x260($sp) -/* 0D03EC 800CF7EC 15600004 */ bnez $t3, .L800CF800 -/* 0D03F0 800CF7F0 00000000 */ nop -/* 0D03F4 800CF7F4 8FA9025C */ lw $t1, 0x25c($sp) -/* 0D03F8 800CF7F8 11200025 */ beqz $t1, .L800CF890 -/* 0D03FC 800CF7FC 00000000 */ nop -.L800CF800: -/* 0D0400 800CF800 8FAF0488 */ lw $t7, 0x488($sp) -/* 0D0404 800CF804 A7A00260 */ sh $zero, 0x260($sp) -/* 0D0408 800CF808 AFA0025C */ sw $zero, 0x25c($sp) -/* 0D040C 800CF80C A7A00262 */ sh $zero, 0x262($sp) -/* 0D0410 800CF810 A3A00264 */ sb $zero, 0x264($sp) -/* 0D0414 800CF814 A7A00266 */ sh $zero, 0x266($sp) -/* 0D0418 800CF818 91E80065 */ lbu $t0, 0x65($t7) -/* 0D041C 800CF81C 1100000A */ beqz $t0, .L800CF848 -/* 0D0420 800CF820 00000000 */ nop -/* 0D0424 800CF824 A1E00065 */ sb $zero, 0x65($t7) -/* 0D0428 800CF828 0C0357F7 */ jal __osPfsSelectBank -/* 0D042C 800CF82C 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0430 800CF830 AFA20480 */ sw $v0, 0x480($sp) -/* 0D0434 800CF834 8FAC0480 */ lw $t4, 0x480($sp) -/* 0D0438 800CF838 11800003 */ beqz $t4, .L800CF848 -/* 0D043C 800CF83C 00000000 */ nop -/* 0D0440 800CF840 100000E8 */ b .L800CFBE4 -/* 0D0444 800CF844 01801025 */ move $v0, $t4 -.L800CF848: -/* 0D0448 800CF848 8FAA0488 */ lw $t2, 0x488($sp) -/* 0D044C 800CF84C 8FAE0484 */ lw $t6, 0x484($sp) -/* 0D0450 800CF850 27A7025C */ addiu $a3, $sp, 0x25c -/* 0D0454 800CF854 8D4D005C */ lw $t5, 0x5c($t2) -/* 0D0458 800CF858 8D440004 */ lw $a0, 4($t2) -/* 0D045C 800CF85C 8D450008 */ lw $a1, 8($t2) -/* 0D0460 800CF860 AFA00010 */ sw $zero, 0x10($sp) -/* 0D0464 800CF864 0C03363C */ jal __osContRamWrite -/* 0D0468 800CF868 01AE3021 */ addu $a2, $t5, $t6 -/* 0D046C 800CF86C AFA20480 */ sw $v0, 0x480($sp) -/* 0D0470 800CF870 8FB90480 */ lw $t9, 0x480($sp) -/* 0D0474 800CF874 13200003 */ beqz $t9, .L800CF884 -/* 0D0478 800CF878 00000000 */ nop -/* 0D047C 800CF87C 100000D9 */ b .L800CFBE4 -/* 0D0480 800CF880 03201025 */ move $v0, $t9 -.L800CF884: -/* 0D0484 800CF884 8FB80034 */ lw $t8, 0x34($sp) -/* 0D0488 800CF888 270B0001 */ addiu $t3, $t8, 1 -/* 0D048C 800CF88C AFAB0034 */ sw $t3, 0x34($sp) -.L800CF890: -/* 0D0490 800CF890 8FA90484 */ lw $t1, 0x484($sp) -/* 0D0494 800CF894 8FAF0488 */ lw $t7, 0x488($sp) -/* 0D0498 800CF898 25280001 */ addiu $t0, $t1, 1 -/* 0D049C 800CF89C AFA80484 */ sw $t0, 0x484($sp) -/* 0D04A0 800CF8A0 8DEC0050 */ lw $t4, 0x50($t7) -/* 0D04A4 800CF8A4 010C082A */ slt $at, $t0, $t4 -/* 0D04A8 800CF8A8 1420FF42 */ bnez $at, .L800CF5B4 -/* 0D04AC 800CF8AC 00000000 */ nop -.L800CF8B0: -/* 0D04B0 800CF8B0 8FAA0488 */ lw $t2, 0x488($sp) -/* 0D04B4 800CF8B4 AFA00484 */ sw $zero, 0x484($sp) -/* 0D04B8 800CF8B8 8D4D0050 */ lw $t5, 0x50($t2) -/* 0D04BC 800CF8BC 19A0002C */ blez $t5, .L800CF970 -/* 0D04C0 800CF8C0 00000000 */ nop -.L800CF8C4: -/* 0D04C4 800CF8C4 8FAE0488 */ lw $t6, 0x488($sp) -/* 0D04C8 800CF8C8 8FB80484 */ lw $t8, 0x484($sp) -/* 0D04CC 800CF8CC 27A7025C */ addiu $a3, $sp, 0x25c -/* 0D04D0 800CF8D0 8DD9005C */ lw $t9, 0x5c($t6) -/* 0D04D4 800CF8D4 8DC40004 */ lw $a0, 4($t6) -/* 0D04D8 800CF8D8 8DC50008 */ lw $a1, 8($t6) -/* 0D04DC 800CF8DC 0C033728 */ jal __osContRamRead -/* 0D04E0 800CF8E0 03383021 */ addu $a2, $t9, $t8 -/* 0D04E4 800CF8E4 AFA20480 */ sw $v0, 0x480($sp) -/* 0D04E8 800CF8E8 8FAB0480 */ lw $t3, 0x480($sp) -/* 0D04EC 800CF8EC 11600003 */ beqz $t3, .L800CF8FC -/* 0D04F0 800CF8F0 00000000 */ nop -/* 0D04F4 800CF8F4 100000BB */ b .L800CFBE4 -/* 0D04F8 800CF8F8 01601025 */ move $v0, $t3 -.L800CF8FC: -/* 0D04FC 800CF8FC 97A90260 */ lhu $t1, 0x260($sp) -/* 0D0500 800CF900 1120000F */ beqz $t1, .L800CF940 -/* 0D0504 800CF904 00000000 */ nop -/* 0D0508 800CF908 8FAF025C */ lw $t7, 0x25c($sp) -/* 0D050C 800CF90C 11E0000C */ beqz $t7, .L800CF940 -/* 0D0510 800CF910 00000000 */ nop -/* 0D0514 800CF914 8FAC0488 */ lw $t4, 0x488($sp) -/* 0D0518 800CF918 97A80262 */ lhu $t0, 0x262($sp) -/* 0D051C 800CF91C 958A0062 */ lhu $t2, 0x62($t4) -/* 0D0520 800CF920 010A082A */ slt $at, $t0, $t2 -/* 0D0524 800CF924 14200006 */ bnez $at, .L800CF940 -/* 0D0528 800CF928 00000000 */ nop -/* 0D052C 800CF92C 8FAD0484 */ lw $t5, 0x484($sp) -/* 0D0530 800CF930 000D7040 */ sll $t6, $t5, 1 -/* 0D0534 800CF934 03AEC821 */ addu $t9, $sp, $t6 -/* 0D0538 800CF938 10000005 */ b .L800CF950 -/* 0D053C 800CF93C A728023C */ sh $t0, 0x23c($t9) -.L800CF940: -/* 0D0540 800CF940 8FB80484 */ lw $t8, 0x484($sp) -/* 0D0544 800CF944 00185840 */ sll $t3, $t8, 1 -/* 0D0548 800CF948 03AB4821 */ addu $t1, $sp, $t3 -/* 0D054C 800CF94C A520023C */ sh $zero, 0x23c($t1) -.L800CF950: -/* 0D0550 800CF950 8FAF0484 */ lw $t7, 0x484($sp) -/* 0D0554 800CF954 8FAA0488 */ lw $t2, 0x488($sp) -/* 0D0558 800CF958 25EC0001 */ addiu $t4, $t7, 1 -/* 0D055C 800CF95C AFAC0484 */ sw $t4, 0x484($sp) -/* 0D0560 800CF960 8D4D0050 */ lw $t5, 0x50($t2) -/* 0D0564 800CF964 018D082A */ slt $at, $t4, $t5 -/* 0D0568 800CF968 1420FFD6 */ bnez $at, .L800CF8C4 -/* 0D056C 800CF96C 00000000 */ nop -.L800CF970: -/* 0D0570 800CF970 8FA80488 */ lw $t0, 0x488($sp) -/* 0D0574 800CF974 A3A00033 */ sb $zero, 0x33($sp) -/* 0D0578 800CF978 910E0064 */ lbu $t6, 0x64($t0) -/* 0D057C 800CF97C 19C0008B */ blez $t6, .L800CFBAC -/* 0D0580 800CF980 00000000 */ nop -.L800CF984: -/* 0D0584 800CF984 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0588 800CF988 27A5027C */ addiu $a1, $sp, 0x27c -/* 0D058C 800CF98C 00003025 */ move $a2, $zero -/* 0D0590 800CF990 0C03572F */ jal __osPfsRWInode -/* 0D0594 800CF994 93A70033 */ lbu $a3, 0x33($sp) -/* 0D0598 800CF998 AFA20480 */ sw $v0, 0x480($sp) -/* 0D059C 800CF99C 8FB90480 */ lw $t9, 0x480($sp) -/* 0D05A0 800CF9A0 13200005 */ beqz $t9, .L800CF9B8 -/* 0D05A4 800CF9A4 24010003 */ li $at, 3 -/* 0D05A8 800CF9A8 13210003 */ beq $t9, $at, .L800CF9B8 -/* 0D05AC 800CF9AC 00000000 */ nop -/* 0D05B0 800CF9B0 1000008C */ b .L800CFBE4 -/* 0D05B4 800CF9B4 03201025 */ move $v0, $t9 -.L800CF9B8: -/* 0D05B8 800CF9B8 93B80033 */ lbu $t8, 0x33($sp) -/* 0D05BC 800CF9BC 1B000004 */ blez $t8, .L800CF9D0 -/* 0D05C0 800CF9C0 00000000 */ nop -/* 0D05C4 800CF9C4 240B0001 */ li $t3, 1 -/* 0D05C8 800CF9C8 10000004 */ b .L800CF9DC -/* 0D05CC 800CF9CC AFAB0024 */ sw $t3, 0x24($sp) -.L800CF9D0: -/* 0D05D0 800CF9D0 8FA90488 */ lw $t1, 0x488($sp) -/* 0D05D4 800CF9D4 8D2F0060 */ lw $t7, 0x60($t1) -/* 0D05D8 800CF9D8 AFAF0024 */ sw $t7, 0x24($sp) -.L800CF9DC: -/* 0D05DC 800CF9DC 8FAA0024 */ lw $t2, 0x24($sp) -/* 0D05E0 800CF9E0 AFA00484 */ sw $zero, 0x484($sp) -/* 0D05E4 800CF9E4 1940000D */ blez $t2, .L800CFA1C -/* 0D05E8 800CF9E8 00000000 */ nop -.L800CF9EC: -/* 0D05EC 800CF9EC 8FAC0484 */ lw $t4, 0x484($sp) -/* 0D05F0 800CF9F0 000C6840 */ sll $t5, $t4, 1 -/* 0D05F4 800CF9F4 03AD4021 */ addu $t0, $sp, $t5 -/* 0D05F8 800CF9F8 9508027C */ lhu $t0, 0x27c($t0) -/* 0D05FC 800CF9FC 03AD7021 */ addu $t6, $sp, $t5 -/* 0D0600 800CFA00 A5C8037C */ sh $t0, 0x37c($t6) -/* 0D0604 800CFA04 8FB90484 */ lw $t9, 0x484($sp) -/* 0D0608 800CFA08 8FAB0024 */ lw $t3, 0x24($sp) -/* 0D060C 800CFA0C 27380001 */ addiu $t8, $t9, 1 -/* 0D0610 800CFA10 030B082A */ slt $at, $t8, $t3 -/* 0D0614 800CFA14 1420FFF5 */ bnez $at, .L800CF9EC -/* 0D0618 800CFA18 AFB80484 */ sw $t8, 0x484($sp) -.L800CFA1C: -/* 0D061C 800CFA1C 8FA90484 */ lw $t1, 0x484($sp) -/* 0D0620 800CFA20 29210080 */ slti $at, $t1, 0x80 -/* 0D0624 800CFA24 1020000B */ beqz $at, .L800CFA54 -/* 0D0628 800CFA28 00000000 */ nop -.L800CFA2C: -/* 0D062C 800CFA2C 8FAA0484 */ lw $t2, 0x484($sp) -/* 0D0630 800CFA30 240F0003 */ li $t7, 3 -/* 0D0634 800CFA34 000A6040 */ sll $t4, $t2, 1 -/* 0D0638 800CFA38 03AC4021 */ addu $t0, $sp, $t4 -/* 0D063C 800CFA3C A50F037C */ sh $t7, 0x37c($t0) -/* 0D0640 800CFA40 8FAD0484 */ lw $t5, 0x484($sp) -/* 0D0644 800CFA44 25AE0001 */ addiu $t6, $t5, 1 -/* 0D0648 800CFA48 29C10080 */ slti $at, $t6, 0x80 -/* 0D064C 800CFA4C 1420FFF7 */ bnez $at, .L800CFA2C -/* 0D0650 800CFA50 AFAE0484 */ sw $t6, 0x484($sp) -.L800CFA54: -/* 0D0654 800CFA54 8FB90488 */ lw $t9, 0x488($sp) -/* 0D0658 800CFA58 AFA00484 */ sw $zero, 0x484($sp) -/* 0D065C 800CFA5C 8F380050 */ lw $t8, 0x50($t9) -/* 0D0660 800CFA60 1B00003E */ blez $t8, .L800CFB5C -/* 0D0664 800CFA64 00000000 */ nop -.L800CFA68: -/* 0D0668 800CFA68 8FAB0484 */ lw $t3, 0x484($sp) -/* 0D066C 800CFA6C 27AA023C */ addiu $t2, $sp, 0x23c -/* 0D0670 800CFA70 93A80033 */ lbu $t0, 0x33($sp) -/* 0D0674 800CFA74 000B4840 */ sll $t1, $t3, 1 -/* 0D0678 800CFA78 012A7821 */ addu $t7, $t1, $t2 -/* 0D067C 800CFA7C 91EC0000 */ lbu $t4, ($t7) -/* 0D0680 800CFA80 1588002E */ bne $t4, $t0, .L800CFB3C -/* 0D0684 800CFA84 00000000 */ nop -/* 0D0688 800CFA88 8FAE0488 */ lw $t6, 0x488($sp) -/* 0D068C 800CFA8C 95ED0000 */ lhu $t5, ($t7) -/* 0D0690 800CFA90 95D90062 */ lhu $t9, 0x62($t6) -/* 0D0694 800CFA94 01B9082A */ slt $at, $t5, $t9 -/* 0D0698 800CFA98 14200028 */ bnez $at, .L800CFB3C -/* 0D069C 800CFA9C 00000000 */ nop -.L800CFAA0: -/* 0D06A0 800CFAA0 8FB80484 */ lw $t8, 0x484($sp) -/* 0D06A4 800CFAA4 27A8027C */ addiu $t0, $sp, 0x27c -/* 0D06A8 800CFAA8 27AA0020 */ addiu $t2, $sp, 0x20 -/* 0D06AC 800CFAAC 00185840 */ sll $t3, $t8, 1 -/* 0D06B0 800CFAB0 03AB4821 */ addu $t1, $sp, $t3 -/* 0D06B4 800CFAB4 9129023D */ lbu $t1, 0x23d($t1) -/* 0D06B8 800CFAB8 00096040 */ sll $t4, $t1, 1 -/* 0D06BC 800CFABC 01887821 */ addu $t7, $t4, $t0 -/* 0D06C0 800CFAC0 A3A90023 */ sb $t1, 0x23($sp) -/* 0D06C4 800CFAC4 95E10000 */ lhu $at, ($t7) -/* 0D06C8 800CFAC8 27A80020 */ addiu $t0, $sp, 0x20 -/* 0D06CC 800CFACC 27A9037C */ addiu $t1, $sp, 0x37c -/* 0D06D0 800CFAD0 A5410000 */ sh $at, ($t2) -/* 0D06D4 800CFAD4 93B80023 */ lbu $t8, 0x23($sp) -/* 0D06D8 800CFAD8 95010000 */ lhu $at, ($t0) -/* 0D06DC 800CFADC 00185840 */ sll $t3, $t8, 1 -/* 0D06E0 800CFAE0 01696021 */ addu $t4, $t3, $t1 -/* 0D06E4 800CFAE4 A5810000 */ sh $at, ($t4) -/* 0D06E8 800CFAE8 8FAF0484 */ lw $t7, 0x484($sp) -/* 0D06EC 800CFAEC 27A90020 */ addiu $t1, $sp, 0x20 -/* 0D06F0 800CFAF0 95210000 */ lhu $at, ($t1) -/* 0D06F4 800CFAF4 27B8023C */ addiu $t8, $sp, 0x23c -/* 0D06F8 800CFAF8 000FC840 */ sll $t9, $t7, 1 -/* 0D06FC 800CFAFC 03385821 */ addu $t3, $t9, $t8 -/* 0D0700 800CFB00 A5610000 */ sh $at, ($t3) -/* 0D0704 800CFB04 8FA80484 */ lw $t0, 0x484($sp) -/* 0D0708 800CFB08 27AF023C */ addiu $t7, $sp, 0x23c -/* 0D070C 800CFB0C 93AD0033 */ lbu $t5, 0x33($sp) -/* 0D0710 800CFB10 00085040 */ sll $t2, $t0, 1 -/* 0D0714 800CFB14 014FC821 */ addu $t9, $t2, $t7 -/* 0D0718 800CFB18 93380000 */ lbu $t8, ($t9) -/* 0D071C 800CFB1C 170D0007 */ bne $t8, $t5, .L800CFB3C -/* 0D0720 800CFB20 00000000 */ nop -/* 0D0724 800CFB24 8FAB0488 */ lw $t3, 0x488($sp) -/* 0D0728 800CFB28 972E0000 */ lhu $t6, ($t9) -/* 0D072C 800CFB2C 95690062 */ lhu $t1, 0x62($t3) -/* 0D0730 800CFB30 01C9082A */ slt $at, $t6, $t1 -/* 0D0734 800CFB34 1020FFDA */ beqz $at, .L800CFAA0 -/* 0D0738 800CFB38 00000000 */ nop -.L800CFB3C: -/* 0D073C 800CFB3C 8FAC0484 */ lw $t4, 0x484($sp) -/* 0D0740 800CFB40 8FAA0488 */ lw $t2, 0x488($sp) -/* 0D0744 800CFB44 25880001 */ addiu $t0, $t4, 1 -/* 0D0748 800CFB48 AFA80484 */ sw $t0, 0x484($sp) -/* 0D074C 800CFB4C 8D4F0050 */ lw $t7, 0x50($t2) -/* 0D0750 800CFB50 010F082A */ slt $at, $t0, $t7 -/* 0D0754 800CFB54 1420FFC4 */ bnez $at, .L800CFA68 -/* 0D0758 800CFB58 00000000 */ nop -.L800CFB5C: -/* 0D075C 800CFB5C 8FA40488 */ lw $a0, 0x488($sp) -/* 0D0760 800CFB60 27A5037C */ addiu $a1, $sp, 0x37c -/* 0D0764 800CFB64 24060001 */ li $a2, 1 -/* 0D0768 800CFB68 0C03572F */ jal __osPfsRWInode -/* 0D076C 800CFB6C 93A70033 */ lbu $a3, 0x33($sp) -/* 0D0770 800CFB70 AFA20480 */ sw $v0, 0x480($sp) -/* 0D0774 800CFB74 8FB80480 */ lw $t8, 0x480($sp) -/* 0D0778 800CFB78 13000003 */ beqz $t8, .L800CFB88 -/* 0D077C 800CFB7C 00000000 */ nop -/* 0D0780 800CFB80 10000018 */ b .L800CFBE4 -/* 0D0784 800CFB84 03001025 */ move $v0, $t8 -.L800CFB88: -/* 0D0788 800CFB88 93AD0033 */ lbu $t5, 0x33($sp) -/* 0D078C 800CFB8C 8FAE0488 */ lw $t6, 0x488($sp) -/* 0D0790 800CFB90 25B90001 */ addiu $t9, $t5, 1 -/* 0D0794 800CFB94 A3B90033 */ sb $t9, 0x33($sp) -/* 0D0798 800CFB98 91C90064 */ lbu $t1, 0x64($t6) -/* 0D079C 800CFB9C 332B00FF */ andi $t3, $t9, 0xff -/* 0D07A0 800CFBA0 0169082A */ slt $at, $t3, $t1 -/* 0D07A4 800CFBA4 1420FF77 */ bnez $at, .L800CF984 -/* 0D07A8 800CFBA8 00000000 */ nop -.L800CFBAC: -/* 0D07AC 800CFBAC 8FAC0034 */ lw $t4, 0x34($sp) -/* 0D07B0 800CFBB0 11800006 */ beqz $t4, .L800CFBCC -/* 0D07B4 800CFBB4 00000000 */ nop -/* 0D07B8 800CFBB8 8FAA0488 */ lw $t2, 0x488($sp) -/* 0D07BC 800CFBBC 8D480000 */ lw $t0, ($t2) -/* 0D07C0 800CFBC0 350F0002 */ ori $t7, $t0, 2 -/* 0D07C4 800CFBC4 10000006 */ b .L800CFBE0 -/* 0D07C8 800CFBC8 AD4F0000 */ sw $t7, ($t2) -.L800CFBCC: -/* 0D07CC 800CFBCC 8FB80488 */ lw $t8, 0x488($sp) -/* 0D07D0 800CFBD0 2401FFFD */ li $at, -3 -/* 0D07D4 800CFBD4 8F0D0000 */ lw $t5, ($t8) -/* 0D07D8 800CFBD8 01A1C824 */ and $t9, $t5, $at -/* 0D07DC 800CFBDC AF190000 */ sw $t9, ($t8) -.L800CFBE0: -/* 0D07E0 800CFBE0 00001025 */ move $v0, $zero -.L800CFBE4: -/* 0D07E4 800CFBE4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D07E8 800CFBE8 27BD0488 */ addiu $sp, $sp, 0x488 -/* 0D07EC 800CFBEC 03E00008 */ jr $ra -/* 0D07F0 800CFBF0 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D29F0/osSpTaskYielded.s b/lib/asm/non_matchings/unknown_0D29F0/osSpTaskYielded.s deleted file mode 100644 index 88451a36..00000000 --- a/lib/asm/non_matchings/unknown_0D29F0/osSpTaskYielded.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel osSpTaskYielded -/* 0D29F0 800D1DF0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0D29F4 800D1DF4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D29F8 800D1DF8 0C0358FC */ jal __osSpGetStatus -/* 0D29FC 800D1DFC AFA40020 */ sw $a0, 0x20($sp) -/* 0D2A00 800D1E00 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D2A04 800D1E04 8FAE001C */ lw $t6, 0x1c($sp) -/* 0D2A08 800D1E08 31CF0100 */ andi $t7, $t6, 0x100 -/* 0D2A0C 800D1E0C 11E00004 */ beqz $t7, .L800D1E20 -/* 0D2A10 800D1E10 00000000 */ nop -/* 0D2A14 800D1E14 24180001 */ li $t8, 1 -/* 0D2A18 800D1E18 10000002 */ b .L800D1E24 -/* 0D2A1C 800D1E1C AFB80018 */ sw $t8, 0x18($sp) -.L800D1E20: -/* 0D2A20 800D1E20 AFA00018 */ sw $zero, 0x18($sp) -.L800D1E24: -/* 0D2A24 800D1E24 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D2A28 800D1E28 33280080 */ andi $t0, $t9, 0x80 -/* 0D2A2C 800D1E2C 1100000B */ beqz $t0, .L800D1E5C -/* 0D2A30 800D1E30 00000000 */ nop -/* 0D2A34 800D1E34 8FA90020 */ lw $t1, 0x20($sp) -/* 0D2A38 800D1E38 8FAB0018 */ lw $t3, 0x18($sp) -/* 0D2A3C 800D1E3C 2401FFFD */ li $at, -3 -/* 0D2A40 800D1E40 8D2A0004 */ lw $t2, 4($t1) -/* 0D2A44 800D1E44 014B6025 */ or $t4, $t2, $t3 -/* 0D2A48 800D1E48 AD2C0004 */ sw $t4, 4($t1) -/* 0D2A4C 800D1E4C 8FAD0020 */ lw $t5, 0x20($sp) -/* 0D2A50 800D1E50 8DAE0004 */ lw $t6, 4($t5) -/* 0D2A54 800D1E54 01C17824 */ and $t7, $t6, $at -/* 0D2A58 800D1E58 ADAF0004 */ sw $t7, 4($t5) -.L800D1E5C: -/* 0D2A5C 800D1E5C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D2A60 800D1E60 8FA20018 */ lw $v0, 0x18($sp) -/* 0D2A64 800D1E64 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0D2A68 800D1E68 03E00008 */ jr $ra -/* 0D2A6C 800D1E6C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osCheckId.s b/lib/asm/non_matchings/unknown_0D3020/__osCheckId.s deleted file mode 100644 index 52a8bc46..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osCheckId.s +++ /dev/null @@ -1,71 +0,0 @@ -glabel __osCheckId -/* 0D67C0 800D5BC0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0D67C4 800D5BC4 AFA40040 */ sw $a0, 0x40($sp) -/* 0D67C8 800D5BC8 8FAE0040 */ lw $t6, 0x40($sp) -/* 0D67CC 800D5BCC AFBF0014 */ sw $ra, 0x14($sp) -/* 0D67D0 800D5BD0 91CF0065 */ lbu $t7, 0x65($t6) -/* 0D67D4 800D5BD4 11E0000A */ beqz $t7, .L800D5C00 -/* 0D67D8 800D5BD8 00000000 */ nop -/* 0D67DC 800D5BDC A1C00065 */ sb $zero, 0x65($t6) -/* 0D67E0 800D5BE0 0C0357F7 */ jal __osPfsSelectBank -/* 0D67E4 800D5BE4 8FA40040 */ lw $a0, 0x40($sp) -/* 0D67E8 800D5BE8 AFA20018 */ sw $v0, 0x18($sp) -/* 0D67EC 800D5BEC 8FB80018 */ lw $t8, 0x18($sp) -/* 0D67F0 800D5BF0 13000003 */ beqz $t8, .L800D5C00 -/* 0D67F4 800D5BF4 00000000 */ nop -/* 0D67F8 800D5BF8 1000002C */ b .L800D5CAC -/* 0D67FC 800D5BFC 03001025 */ move $v0, $t8 -.L800D5C00: -/* 0D6800 800D5C00 8FB90040 */ lw $t9, 0x40($sp) -/* 0D6804 800D5C04 24060001 */ li $a2, 1 -/* 0D6808 800D5C08 27A7001C */ addiu $a3, $sp, 0x1c -/* 0D680C 800D5C0C 8F240004 */ lw $a0, 4($t9) -/* 0D6810 800D5C10 0C033728 */ jal __osContRamRead -/* 0D6814 800D5C14 8F250008 */ lw $a1, 8($t9) -/* 0D6818 800D5C18 AFA20018 */ sw $v0, 0x18($sp) -/* 0D681C 800D5C1C 8FA80018 */ lw $t0, 0x18($sp) -/* 0D6820 800D5C20 11000011 */ beqz $t0, .L800D5C68 -/* 0D6824 800D5C24 24010002 */ li $at, 2 -/* 0D6828 800D5C28 11010003 */ beq $t0, $at, .L800D5C38 -/* 0D682C 800D5C2C 00000000 */ nop -/* 0D6830 800D5C30 1000001E */ b .L800D5CAC -/* 0D6834 800D5C34 01001025 */ move $v0, $t0 -.L800D5C38: -/* 0D6838 800D5C38 8FA90040 */ lw $t1, 0x40($sp) -/* 0D683C 800D5C3C 24060001 */ li $a2, 1 -/* 0D6840 800D5C40 27A7001C */ addiu $a3, $sp, 0x1c -/* 0D6844 800D5C44 8D240004 */ lw $a0, 4($t1) -/* 0D6848 800D5C48 0C033728 */ jal __osContRamRead -/* 0D684C 800D5C4C 8D250008 */ lw $a1, 8($t1) -/* 0D6850 800D5C50 AFA20018 */ sw $v0, 0x18($sp) -/* 0D6854 800D5C54 8FAA0018 */ lw $t2, 0x18($sp) -/* 0D6858 800D5C58 11400003 */ beqz $t2, .L800D5C68 -/* 0D685C 800D5C5C 00000000 */ nop -/* 0D6860 800D5C60 10000012 */ b .L800D5CAC -/* 0D6864 800D5C64 01401025 */ move $v0, $t2 -.L800D5C68: -/* 0D6868 800D5C68 AFA0003C */ sw $zero, 0x3c($sp) -.L800D5C6C: -/* 0D686C 800D5C6C 8FAB003C */ lw $t3, 0x3c($sp) -/* 0D6870 800D5C70 8FAD0040 */ lw $t5, 0x40($sp) -/* 0D6874 800D5C74 03AB6021 */ addu $t4, $sp, $t3 -/* 0D6878 800D5C78 01AB7821 */ addu $t7, $t5, $t3 -/* 0D687C 800D5C7C 91EE000C */ lbu $t6, 0xc($t7) -/* 0D6880 800D5C80 918C001C */ lbu $t4, 0x1c($t4) -/* 0D6884 800D5C84 118E0003 */ beq $t4, $t6, .L800D5C94 -/* 0D6888 800D5C88 00000000 */ nop -/* 0D688C 800D5C8C 10000007 */ b .L800D5CAC -/* 0D6890 800D5C90 24020002 */ li $v0, 2 -.L800D5C94: -/* 0D6894 800D5C94 8FB8003C */ lw $t8, 0x3c($sp) -/* 0D6898 800D5C98 27190001 */ addiu $t9, $t8, 1 -/* 0D689C 800D5C9C 2B210020 */ slti $at, $t9, 0x20 -/* 0D68A0 800D5CA0 1420FFF2 */ bnez $at, .L800D5C6C -/* 0D68A4 800D5CA4 AFB9003C */ sw $t9, 0x3c($sp) -/* 0D68A8 800D5CA8 00001025 */ move $v0, $zero -.L800D5CAC: -/* 0D68AC 800D5CAC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D68B0 800D5CB0 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0D68B4 800D5CB4 03E00008 */ jr $ra -/* 0D68B8 800D5CB8 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osCheckPackId.s b/lib/asm/non_matchings/unknown_0D3020/__osCheckPackId.s deleted file mode 100644 index daefc59a..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osCheckPackId.s +++ /dev/null @@ -1,113 +0,0 @@ -glabel __osCheckPackId -/* 0D63CC 800D57CC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0D63D0 800D57D0 AFA40038 */ sw $a0, 0x38($sp) -/* 0D63D4 800D57D4 8FAE0038 */ lw $t6, 0x38($sp) -/* 0D63D8 800D57D8 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D63DC 800D57DC AFA5003C */ sw $a1, 0x3c($sp) -/* 0D63E0 800D57E0 AFA0002C */ sw $zero, 0x2c($sp) -/* 0D63E4 800D57E4 91CF0065 */ lbu $t7, 0x65($t6) -/* 0D63E8 800D57E8 11E0000A */ beqz $t7, .L800D5814 -/* 0D63EC 800D57EC 00000000 */ nop -/* 0D63F0 800D57F0 A1C00065 */ sb $zero, 0x65($t6) -/* 0D63F4 800D57F4 0C0357F7 */ jal __osPfsSelectBank -/* 0D63F8 800D57F8 8FA40038 */ lw $a0, 0x38($sp) -/* 0D63FC 800D57FC AFA2002C */ sw $v0, 0x2c($sp) -/* 0D6400 800D5800 8FB8002C */ lw $t8, 0x2c($sp) -/* 0D6404 800D5804 13000003 */ beqz $t8, .L800D5814 -/* 0D6408 800D5808 00000000 */ nop -/* 0D640C 800D580C 10000051 */ b .L800D5954 -/* 0D6410 800D5810 03001025 */ move $v0, $t8 -.L800D5814: -/* 0D6414 800D5814 24190001 */ li $t9, 1 -/* 0D6418 800D5818 27A80030 */ addiu $t0, $sp, 0x30 -/* 0D641C 800D581C A5190000 */ sh $t9, ($t0) -/* 0D6420 800D5820 24090003 */ li $t1, 3 -/* 0D6424 800D5824 27AA0030 */ addiu $t2, $sp, 0x30 -/* 0D6428 800D5828 A5490002 */ sh $t1, 2($t2) -/* 0D642C 800D582C 240B0004 */ li $t3, 4 -/* 0D6430 800D5830 27AC0030 */ addiu $t4, $sp, 0x30 -/* 0D6434 800D5834 A58B0004 */ sh $t3, 4($t4) -/* 0D6438 800D5838 240D0006 */ li $t5, 6 -/* 0D643C 800D583C 27AF0030 */ addiu $t7, $sp, 0x30 -/* 0D6440 800D5840 A5ED0006 */ sh $t5, 6($t7) -/* 0D6444 800D5844 240E0001 */ li $t6, 1 -/* 0D6448 800D5848 AFAE0024 */ sw $t6, 0x24($sp) -.L800D584C: -/* 0D644C 800D584C 8FB90024 */ lw $t9, 0x24($sp) -/* 0D6450 800D5850 8FB80038 */ lw $t8, 0x38($sp) -/* 0D6454 800D5854 8FA7003C */ lw $a3, 0x3c($sp) -/* 0D6458 800D5858 00194040 */ sll $t0, $t9, 1 -/* 0D645C 800D585C 03A83021 */ addu $a2, $sp, $t0 -/* 0D6460 800D5860 94C60030 */ lhu $a2, 0x30($a2) -/* 0D6464 800D5864 8F040004 */ lw $a0, 4($t8) -/* 0D6468 800D5868 0C033728 */ jal __osContRamRead -/* 0D646C 800D586C 8F050008 */ lw $a1, 8($t8) -/* 0D6470 800D5870 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D6474 800D5874 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D6478 800D5878 11200003 */ beqz $t1, .L800D5888 -/* 0D647C 800D587C 00000000 */ nop -/* 0D6480 800D5880 10000034 */ b .L800D5954 -/* 0D6484 800D5884 01201025 */ move $v0, $t1 -.L800D5888: -/* 0D6488 800D5888 8FA4003C */ lw $a0, 0x3c($sp) -/* 0D648C 800D588C 27A5002A */ addiu $a1, $sp, 0x2a -/* 0D6490 800D5890 0C0354D3 */ jal __osIdCheckSum -/* 0D6494 800D5894 27A60028 */ addiu $a2, $sp, 0x28 -/* 0D6498 800D5898 8FAA003C */ lw $t2, 0x3c($sp) -/* 0D649C 800D589C 97AC002A */ lhu $t4, 0x2a($sp) -/* 0D64A0 800D58A0 954B001C */ lhu $t3, 0x1c($t2) -/* 0D64A4 800D58A4 156C0005 */ bne $t3, $t4, .L800D58BC -/* 0D64A8 800D58A8 00000000 */ nop -/* 0D64AC 800D58AC 954D001E */ lhu $t5, 0x1e($t2) -/* 0D64B0 800D58B0 97AF0028 */ lhu $t7, 0x28($sp) -/* 0D64B4 800D58B4 11AF0006 */ beq $t5, $t7, .L800D58D0 -/* 0D64B8 800D58B8 00000000 */ nop -.L800D58BC: -/* 0D64BC 800D58BC 8FAE0024 */ lw $t6, 0x24($sp) -/* 0D64C0 800D58C0 25D80001 */ addiu $t8, $t6, 1 -/* 0D64C4 800D58C4 2B010004 */ slti $at, $t8, 4 -/* 0D64C8 800D58C8 1420FFE0 */ bnez $at, .L800D584C -/* 0D64CC 800D58CC AFB80024 */ sw $t8, 0x24($sp) -.L800D58D0: -/* 0D64D0 800D58D0 8FB90024 */ lw $t9, 0x24($sp) -/* 0D64D4 800D58D4 24010004 */ li $at, 4 -/* 0D64D8 800D58D8 17210003 */ bne $t9, $at, .L800D58E8 -/* 0D64DC 800D58DC 00000000 */ nop -/* 0D64E0 800D58E0 1000001C */ b .L800D5954 -/* 0D64E4 800D58E4 2402000A */ li $v0, 10 -.L800D58E8: -/* 0D64E8 800D58E8 AFA00020 */ sw $zero, 0x20($sp) -.L800D58EC: -/* 0D64EC 800D58EC 8FA80020 */ lw $t0, 0x20($sp) -/* 0D64F0 800D58F0 8FA90024 */ lw $t1, 0x24($sp) -/* 0D64F4 800D58F4 11090011 */ beq $t0, $t1, .L800D593C -/* 0D64F8 800D58F8 00000000 */ nop -/* 0D64FC 800D58FC 8FAB0038 */ lw $t3, 0x38($sp) -/* 0D6500 800D5900 00086040 */ sll $t4, $t0, 1 -/* 0D6504 800D5904 03AC3021 */ addu $a2, $sp, $t4 -/* 0D6508 800D5908 94C60030 */ lhu $a2, 0x30($a2) -/* 0D650C 800D590C 240A0001 */ li $t2, 1 -/* 0D6510 800D5910 8D640004 */ lw $a0, 4($t3) -/* 0D6514 800D5914 8D650008 */ lw $a1, 8($t3) -/* 0D6518 800D5918 AFAA0010 */ sw $t2, 0x10($sp) -/* 0D651C 800D591C 0C03363C */ jal __osContRamWrite -/* 0D6520 800D5920 8FA7003C */ lw $a3, 0x3c($sp) -/* 0D6524 800D5924 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D6528 800D5928 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D652C 800D592C 11A00003 */ beqz $t5, .L800D593C -/* 0D6530 800D5930 00000000 */ nop -/* 0D6534 800D5934 10000007 */ b .L800D5954 -/* 0D6538 800D5938 01A01025 */ move $v0, $t5 -.L800D593C: -/* 0D653C 800D593C 8FAF0020 */ lw $t7, 0x20($sp) -/* 0D6540 800D5940 25EE0001 */ addiu $t6, $t7, 1 -/* 0D6544 800D5944 29C10004 */ slti $at, $t6, 4 -/* 0D6548 800D5948 1420FFE8 */ bnez $at, .L800D58EC -/* 0D654C 800D594C AFAE0020 */ sw $t6, 0x20($sp) -/* 0D6550 800D5950 00001025 */ move $v0, $zero -.L800D5954: -/* 0D6554 800D5954 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D6558 800D5958 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0D655C 800D595C 03E00008 */ jr $ra -/* 0D6560 800D5960 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osCleanupThread.s b/lib/asm/non_matchings/unknown_0D3020/__osCleanupThread.s deleted file mode 100644 index 686faede..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osCleanupThread.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel __osCleanupThread -/* 0D41A0 800D35A0 0C035980 */ jal osDestroyThread -/* 0D41A4 800D35A4 00002025 */ move $a0, $zero -/* 0D41A8 800D35A8 00000000 */ nop -/* 0D41AC 800D35AC 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s b/lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s deleted file mode 100644 index f582e5ce..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osDpDeviceBusy.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel __osDpDeviceBusy -/* 0D6C50 800D6050 3C0EA410 */ lui $t6, %hi(DPC_STATUS_REG) # $t6, 0xa410 -/* 0D6C54 800D6054 8DC4000C */ lw $a0, %lo(DPC_STATUS_REG)($t6) -/* 0D6C58 800D6058 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0D6C5C 800D605C 308F0100 */ andi $t7, $a0, 0x100 -/* 0D6C60 800D6060 11E00003 */ beqz $t7, .L800D6070 -/* 0D6C64 800D6064 00000000 */ nop -/* 0D6C68 800D6068 10000002 */ b .L800D6074 -/* 0D6C6C 800D606C 24020001 */ li $v0, 1 -.L800D6070: -/* 0D6C70 800D6070 00001025 */ move $v0, $zero -.L800D6074: -/* 0D6C74 800D6074 03E00008 */ jr $ra -/* 0D6C78 800D6078 27BD0008 */ addiu $sp, $sp, 8 - -/* 0D6C7C 800D607C 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/__osGetId.s b/lib/asm/non_matchings/unknown_0D3020/__osGetId.s deleted file mode 100644 index b6645661..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osGetId.s +++ /dev/null @@ -1,164 +0,0 @@ -glabel __osGetId -/* 0D6564 800D5964 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0D6568 800D5968 AFA40068 */ sw $a0, 0x68($sp) -/* 0D656C 800D596C 8FAE0068 */ lw $t6, 0x68($sp) -/* 0D6570 800D5970 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D6574 800D5974 91CF0065 */ lbu $t7, 0x65($t6) -/* 0D6578 800D5978 11E0000A */ beqz $t7, .L800D59A4 -/* 0D657C 800D597C 00000000 */ nop -/* 0D6580 800D5980 A1C00065 */ sb $zero, 0x65($t6) -/* 0D6584 800D5984 0C0357F7 */ jal __osPfsSelectBank -/* 0D6588 800D5988 8FA40068 */ lw $a0, 0x68($sp) -/* 0D658C 800D598C AFA2001C */ sw $v0, 0x1c($sp) -/* 0D6590 800D5990 8FB8001C */ lw $t8, 0x1c($sp) -/* 0D6594 800D5994 13000003 */ beqz $t8, .L800D59A4 -/* 0D6598 800D5998 00000000 */ nop -/* 0D659C 800D599C 10000084 */ b .L800D5BB0 -/* 0D65A0 800D59A0 03001025 */ move $v0, $t8 -.L800D59A4: -/* 0D65A4 800D59A4 8FB90068 */ lw $t9, 0x68($sp) -/* 0D65A8 800D59A8 24060001 */ li $a2, 1 -/* 0D65AC 800D59AC 27A70040 */ addiu $a3, $sp, 0x40 -/* 0D65B0 800D59B0 8F240004 */ lw $a0, 4($t9) -/* 0D65B4 800D59B4 0C033728 */ jal __osContRamRead -/* 0D65B8 800D59B8 8F250008 */ lw $a1, 8($t9) -/* 0D65BC 800D59BC AFA2001C */ sw $v0, 0x1c($sp) -/* 0D65C0 800D59C0 8FA8001C */ lw $t0, 0x1c($sp) -/* 0D65C4 800D59C4 11000003 */ beqz $t0, .L800D59D4 -/* 0D65C8 800D59C8 00000000 */ nop -/* 0D65CC 800D59CC 10000078 */ b .L800D5BB0 -/* 0D65D0 800D59D0 01001025 */ move $v0, $t0 -.L800D59D4: -/* 0D65D4 800D59D4 27A40040 */ addiu $a0, $sp, 0x40 -/* 0D65D8 800D59D8 27A50062 */ addiu $a1, $sp, 0x62 -/* 0D65DC 800D59DC 0C0354D3 */ jal __osIdCheckSum -/* 0D65E0 800D59E0 27A60060 */ addiu $a2, $sp, 0x60 -/* 0D65E4 800D59E4 27A90040 */ addiu $t1, $sp, 0x40 -/* 0D65E8 800D59E8 AFA90018 */ sw $t1, 0x18($sp) -/* 0D65EC 800D59EC 952A001C */ lhu $t2, 0x1c($t1) -/* 0D65F0 800D59F0 97AB0062 */ lhu $t3, 0x62($sp) -/* 0D65F4 800D59F4 154B0005 */ bne $t2, $t3, .L800D5A0C -/* 0D65F8 800D59F8 00000000 */ nop -/* 0D65FC 800D59FC 952C001E */ lhu $t4, 0x1e($t1) -/* 0D6600 800D5A00 97AD0060 */ lhu $t5, 0x60($sp) -/* 0D6604 800D5A04 118D001B */ beq $t4, $t5, .L800D5A74 -/* 0D6608 800D5A08 00000000 */ nop -.L800D5A0C: -/* 0D660C 800D5A0C 8FA40068 */ lw $a0, 0x68($sp) -/* 0D6610 800D5A10 0C0355F3 */ jal __osCheckPackId -/* 0D6614 800D5A14 8FA50018 */ lw $a1, 0x18($sp) -/* 0D6618 800D5A18 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D661C 800D5A1C 8FAF001C */ lw $t7, 0x1c($sp) -/* 0D6620 800D5A20 2401000A */ li $at, 10 -/* 0D6624 800D5A24 15E1000E */ bne $t7, $at, .L800D5A60 -/* 0D6628 800D5A28 00000000 */ nop -/* 0D662C 800D5A2C 8FA40068 */ lw $a0, 0x68($sp) -/* 0D6630 800D5A30 8FA50018 */ lw $a1, 0x18($sp) -/* 0D6634 800D5A34 0C0354ED */ jal __osRepairPackId -/* 0D6638 800D5A38 27A60020 */ addiu $a2, $sp, 0x20 -/* 0D663C 800D5A3C AFA2001C */ sw $v0, 0x1c($sp) -/* 0D6640 800D5A40 8FAE001C */ lw $t6, 0x1c($sp) -/* 0D6644 800D5A44 11C00003 */ beqz $t6, .L800D5A54 -/* 0D6648 800D5A48 00000000 */ nop -/* 0D664C 800D5A4C 10000058 */ b .L800D5BB0 -/* 0D6650 800D5A50 01C01025 */ move $v0, $t6 -.L800D5A54: -/* 0D6654 800D5A54 27B80020 */ addiu $t8, $sp, 0x20 -/* 0D6658 800D5A58 10000006 */ b .L800D5A74 -/* 0D665C 800D5A5C AFB80018 */ sw $t8, 0x18($sp) -.L800D5A60: -/* 0D6660 800D5A60 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D6664 800D5A64 13200003 */ beqz $t9, .L800D5A74 -/* 0D6668 800D5A68 00000000 */ nop -/* 0D666C 800D5A6C 10000050 */ b .L800D5BB0 -/* 0D6670 800D5A70 03201025 */ move $v0, $t9 -.L800D5A74: -/* 0D6674 800D5A74 8FA80018 */ lw $t0, 0x18($sp) -/* 0D6678 800D5A78 950A0018 */ lhu $t2, 0x18($t0) -/* 0D667C 800D5A7C 314B0001 */ andi $t3, $t2, 1 -/* 0D6680 800D5A80 15600013 */ bnez $t3, .L800D5AD0 -/* 0D6684 800D5A84 00000000 */ nop -/* 0D6688 800D5A88 8FA40068 */ lw $a0, 0x68($sp) -/* 0D668C 800D5A8C 01002825 */ move $a1, $t0 -/* 0D6690 800D5A90 0C0354ED */ jal __osRepairPackId -/* 0D6694 800D5A94 27A60020 */ addiu $a2, $sp, 0x20 -/* 0D6698 800D5A98 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D669C 800D5A9C 8FA9001C */ lw $t1, 0x1c($sp) -/* 0D66A0 800D5AA0 11200003 */ beqz $t1, .L800D5AB0 -/* 0D66A4 800D5AA4 00000000 */ nop -/* 0D66A8 800D5AA8 10000041 */ b .L800D5BB0 -/* 0D66AC 800D5AAC 01201025 */ move $v0, $t1 -.L800D5AB0: -/* 0D66B0 800D5AB0 27AC0020 */ addiu $t4, $sp, 0x20 -/* 0D66B4 800D5AB4 AFAC0018 */ sw $t4, 0x18($sp) -/* 0D66B8 800D5AB8 958D0018 */ lhu $t5, 0x18($t4) -/* 0D66BC 800D5ABC 31AF0001 */ andi $t7, $t5, 1 -/* 0D66C0 800D5AC0 15E00003 */ bnez $t7, .L800D5AD0 -/* 0D66C4 800D5AC4 00000000 */ nop -/* 0D66C8 800D5AC8 10000039 */ b .L800D5BB0 -/* 0D66CC 800D5ACC 2402000B */ li $v0, 11 -.L800D5AD0: -/* 0D66D0 800D5AD0 AFA00064 */ sw $zero, 0x64($sp) -.L800D5AD4: -/* 0D66D4 800D5AD4 8FAE0018 */ lw $t6, 0x18($sp) -/* 0D66D8 800D5AD8 8FB80064 */ lw $t8, 0x64($sp) -/* 0D66DC 800D5ADC 8FAB0068 */ lw $t3, 0x68($sp) -/* 0D66E0 800D5AE0 01D8C821 */ addu $t9, $t6, $t8 -/* 0D66E4 800D5AE4 932A0000 */ lbu $t2, ($t9) -/* 0D66E8 800D5AE8 01784021 */ addu $t0, $t3, $t8 -/* 0D66EC 800D5AEC A10A000C */ sb $t2, 0xc($t0) -/* 0D66F0 800D5AF0 8FA90064 */ lw $t1, 0x64($sp) -/* 0D66F4 800D5AF4 252C0001 */ addiu $t4, $t1, 1 -/* 0D66F8 800D5AF8 29810020 */ slti $at, $t4, 0x20 -/* 0D66FC 800D5AFC 1420FFF5 */ bnez $at, .L800D5AD4 -/* 0D6700 800D5B00 AFAC0064 */ sw $t4, 0x64($sp) -/* 0D6704 800D5B04 8FAD0018 */ lw $t5, 0x18($sp) -/* 0D6708 800D5B08 8FAE0068 */ lw $t6, 0x68($sp) -/* 0D670C 800D5B0C 24060007 */ li $a2, 7 -/* 0D6710 800D5B10 91AF001B */ lbu $t7, 0x1b($t5) -/* 0D6714 800D5B14 240D0010 */ li $t5, 16 -/* 0D6718 800D5B18 ADCF004C */ sw $t7, 0x4c($t6) -/* 0D671C 800D5B1C 8FB90018 */ lw $t9, 0x18($sp) -/* 0D6720 800D5B20 8FB80068 */ lw $t8, 0x68($sp) -/* 0D6724 800D5B24 240E0008 */ li $t6, 8 -/* 0D6728 800D5B28 932B001A */ lbu $t3, 0x1a($t9) -/* 0D672C 800D5B2C A30B0064 */ sb $t3, 0x64($t8) -/* 0D6730 800D5B30 8FAA0068 */ lw $t2, 0x68($sp) -/* 0D6734 800D5B34 91480064 */ lbu $t0, 0x64($t2) -/* 0D6738 800D5B38 00084840 */ sll $t1, $t0, 1 -/* 0D673C 800D5B3C 252C0003 */ addiu $t4, $t1, 3 -/* 0D6740 800D5B40 AD4C0060 */ sw $t4, 0x60($t2) -/* 0D6744 800D5B44 8FAF0068 */ lw $t7, 0x68($sp) -/* 0D6748 800D5B48 ADED0050 */ sw $t5, 0x50($t7) -/* 0D674C 800D5B4C 8FB90068 */ lw $t9, 0x68($sp) -/* 0D6750 800D5B50 AF2E0054 */ sw $t6, 0x54($t9) -/* 0D6754 800D5B54 8FAB0068 */ lw $t3, 0x68($sp) -/* 0D6758 800D5B58 91780064 */ lbu $t8, 0x64($t3) -/* 0D675C 800D5B5C 001840C0 */ sll $t0, $t8, 3 -/* 0D6760 800D5B60 25090008 */ addiu $t1, $t0, 8 -/* 0D6764 800D5B64 AD690058 */ sw $t1, 0x58($t3) -/* 0D6768 800D5B68 8FAC0068 */ lw $t4, 0x68($sp) -/* 0D676C 800D5B6C 918D0064 */ lbu $t5, 0x64($t4) -/* 0D6770 800D5B70 8D8A0058 */ lw $t2, 0x58($t4) -/* 0D6774 800D5B74 000D78C0 */ sll $t7, $t5, 3 -/* 0D6778 800D5B78 014F7021 */ addu $t6, $t2, $t7 -/* 0D677C 800D5B7C AD8E005C */ sw $t6, 0x5c($t4) -/* 0D6780 800D5B80 8FB90068 */ lw $t9, 0x68($sp) -/* 0D6784 800D5B84 8F240004 */ lw $a0, 4($t9) -/* 0D6788 800D5B88 8F250008 */ lw $a1, 8($t9) -/* 0D678C 800D5B8C 0C033728 */ jal __osContRamRead -/* 0D6790 800D5B90 2727002C */ addiu $a3, $t9, 0x2c -/* 0D6794 800D5B94 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D6798 800D5B98 8FB8001C */ lw $t8, 0x1c($sp) -/* 0D679C 800D5B9C 13000003 */ beqz $t8, .L800D5BAC -/* 0D67A0 800D5BA0 00000000 */ nop -/* 0D67A4 800D5BA4 10000002 */ b .L800D5BB0 -/* 0D67A8 800D5BA8 03001025 */ move $v0, $t8 -.L800D5BAC: -/* 0D67AC 800D5BAC 00001025 */ move $v0, $zero -.L800D5BB0: -/* 0D67B0 800D5BB0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D67B4 800D5BB4 27BD0068 */ addiu $sp, $sp, 0x68 -/* 0D67B8 800D5BB8 03E00008 */ jr $ra -/* 0D67BC 800D5BBC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osIdCheckSum.s b/lib/asm/non_matchings/unknown_0D3020/__osIdCheckSum.s deleted file mode 100644 index 8f93bc1a..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osIdCheckSum.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel __osIdCheckSum -/* 0D5F4C 800D534C 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0D5F50 800D5350 A7A00006 */ sh $zero, 6($sp) -/* 0D5F54 800D5354 A4C00000 */ sh $zero, ($a2) -/* 0D5F58 800D5358 94CE0000 */ lhu $t6, ($a2) -/* 0D5F5C 800D535C A4AE0000 */ sh $t6, ($a1) -/* 0D5F60 800D5360 AFA00000 */ sw $zero, ($sp) -.L800D5364: -/* 0D5F64 800D5364 8FAF0000 */ lw $t7, ($sp) -/* 0D5F68 800D5368 008FC021 */ addu $t8, $a0, $t7 -/* 0D5F6C 800D536C 97190000 */ lhu $t9, ($t8) -/* 0D5F70 800D5370 A7B90006 */ sh $t9, 6($sp) -/* 0D5F74 800D5374 94A80000 */ lhu $t0, ($a1) -/* 0D5F78 800D5378 01194821 */ addu $t1, $t0, $t9 -/* 0D5F7C 800D537C A4A90000 */ sh $t1, ($a1) -/* 0D5F80 800D5380 97AB0006 */ lhu $t3, 6($sp) -/* 0D5F84 800D5384 94CA0000 */ lhu $t2, ($a2) -/* 0D5F88 800D5388 01606027 */ not $t4, $t3 -/* 0D5F8C 800D538C 014C6821 */ addu $t5, $t2, $t4 -/* 0D5F90 800D5390 A4CD0000 */ sh $t5, ($a2) -/* 0D5F94 800D5394 8FAE0000 */ lw $t6, ($sp) -/* 0D5F98 800D5398 25CF0002 */ addiu $t7, $t6, 2 -/* 0D5F9C 800D539C 2DE1001C */ sltiu $at, $t7, 0x1c -/* 0D5FA0 800D53A0 1420FFF0 */ bnez $at, .L800D5364 -/* 0D5FA4 800D53A4 AFAF0000 */ sw $t7, ($sp) -/* 0D5FA8 800D53A8 00001025 */ move $v0, $zero -/* 0D5FAC 800D53AC 03E00008 */ jr $ra -/* 0D5FB0 800D53B0 27BD0008 */ addiu $sp, $sp, 8 - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s b/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s deleted file mode 100644 index 21364b12..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osInsertTimer.s +++ /dev/null @@ -1,103 +0,0 @@ -glabel __osInsertTimer -/* 0D5D38 800D5138 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0D5D3C 800D513C AFBF0014 */ sw $ra, 0x14($sp) -/* 0D5D40 800D5140 0C034958 */ jal __osDisableInt -/* 0D5D44 800D5144 AFA40038 */ sw $a0, 0x38($sp) -/* 0D5D48 800D5148 3C0E800E */ lui $t6, %hi(__osTimerList) # $t6, 0x800e -/* 0D5D4C 800D514C 8DCE4910 */ lw $t6, %lo(__osTimerList)($t6) -/* 0D5D50 800D5150 AFA20024 */ sw $v0, 0x24($sp) -/* 0D5D54 800D5154 8FB80038 */ lw $t8, 0x38($sp) -/* 0D5D58 800D5158 8DCF0000 */ lw $t7, ($t6) -/* 0D5D5C 800D515C AFAF0034 */ sw $t7, 0x34($sp) -/* 0D5D60 800D5160 8F090014 */ lw $t1, 0x14($t8) -/* 0D5D64 800D5164 8F080010 */ lw $t0, 0x10($t8) -/* 0D5D68 800D5168 AFA9002C */ sw $t1, 0x2c($sp) -/* 0D5D6C 800D516C 11EE0029 */ beq $t7, $t6, .L800D5214 -/* 0D5D70 800D5170 AFA80028 */ sw $t0, 0x28($sp) -/* 0D5D74 800D5174 8DEA0010 */ lw $t2, 0x10($t7) -/* 0D5D78 800D5178 8DEB0014 */ lw $t3, 0x14($t7) -/* 0D5D7C 800D517C 010A082B */ sltu $at, $t0, $t2 -/* 0D5D80 800D5180 14200024 */ bnez $at, .L800D5214 -/* 0D5D84 800D5184 0148082B */ sltu $at, $t2, $t0 -/* 0D5D88 800D5188 14200003 */ bnez $at, .L800D5198 -/* 0D5D8C 800D518C 0169082B */ sltu $at, $t3, $t1 -/* 0D5D90 800D5190 10200020 */ beqz $at, .L800D5214 -/* 0D5D94 800D5194 00000000 */ nop -.L800D5198: -/* 0D5D98 800D5198 27B90028 */ addiu $t9, $sp, 0x28 -/* 0D5D9C 800D519C 8FB80034 */ lw $t8, 0x34($sp) -/* 0D5DA0 800D51A0 AFB90020 */ sw $t9, 0x20($sp) -/* 0D5DA4 800D51A4 8F2D0004 */ lw $t5, 4($t9) -/* 0D5DA8 800D51A8 8F2C0000 */ lw $t4, ($t9) -/* 0D5DAC 800D51AC 8F0F0014 */ lw $t7, 0x14($t8) -/* 0D5DB0 800D51B0 8F0E0010 */ lw $t6, 0x10($t8) -/* 0D5DB4 800D51B4 3C18800E */ lui $t8, %hi(__osTimerList) # $t8, 0x800e -/* 0D5DB8 800D51B8 01AF082B */ sltu $at, $t5, $t7 -/* 0D5DBC 800D51BC 018E4023 */ subu $t0, $t4, $t6 -/* 0D5DC0 800D51C0 01014023 */ subu $t0, $t0, $at -/* 0D5DC4 800D51C4 01AF4823 */ subu $t1, $t5, $t7 -/* 0D5DC8 800D51C8 AF290004 */ sw $t1, 4($t9) -/* 0D5DCC 800D51CC AF280000 */ sw $t0, ($t9) -/* 0D5DD0 800D51D0 8FAA0034 */ lw $t2, 0x34($sp) -/* 0D5DD4 800D51D4 8F184910 */ lw $t8, %lo(__osTimerList)($t8) -/* 0D5DD8 800D51D8 8D4B0000 */ lw $t3, ($t2) -/* 0D5DDC 800D51DC 1178000D */ beq $t3, $t8, .L800D5214 -/* 0D5DE0 800D51E0 AFAB0034 */ sw $t3, 0x34($sp) -/* 0D5DE4 800D51E4 8FAC0028 */ lw $t4, 0x28($sp) -/* 0D5DE8 800D51E8 8D6E0010 */ lw $t6, 0x10($t3) -/* 0D5DEC 800D51EC 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D5DF0 800D51F0 8D6F0014 */ lw $t7, 0x14($t3) -/* 0D5DF4 800D51F4 01CC082B */ sltu $at, $t6, $t4 -/* 0D5DF8 800D51F8 1420FFE7 */ bnez $at, .L800D5198 -/* 0D5DFC 800D51FC 00000000 */ nop -/* 0D5E00 800D5200 018E082B */ sltu $at, $t4, $t6 -/* 0D5E04 800D5204 14200003 */ bnez $at, .L800D5214 -/* 0D5E08 800D5208 01ED082B */ sltu $at, $t7, $t5 -/* 0D5E0C 800D520C 1420FFE2 */ bnez $at, .L800D5198 -/* 0D5E10 800D5210 00000000 */ nop -.L800D5214: -/* 0D5E14 800D5214 8FB90038 */ lw $t9, 0x38($sp) -/* 0D5E18 800D5218 8FA80028 */ lw $t0, 0x28($sp) -/* 0D5E1C 800D521C 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D5E20 800D5220 3C18800E */ lui $t8, %hi(__osTimerList) # $t8, 0x800e -/* 0D5E24 800D5224 AF280010 */ sw $t0, 0x10($t9) -/* 0D5E28 800D5228 AF290014 */ sw $t1, 0x14($t9) -/* 0D5E2C 800D522C 8F184910 */ lw $t8, %lo(__osTimerList)($t8) -/* 0D5E30 800D5230 8FAA0034 */ lw $t2, 0x34($sp) -/* 0D5E34 800D5234 1158000D */ beq $t2, $t8, .L800D526C -/* 0D5E38 800D5238 00000000 */ nop -/* 0D5E3C 800D523C 254B0010 */ addiu $t3, $t2, 0x10 -/* 0D5E40 800D5240 AFAB001C */ sw $t3, 0x1c($sp) -/* 0D5E44 800D5244 8D4D0014 */ lw $t5, 0x14($t2) -/* 0D5E48 800D5248 8D4C0010 */ lw $t4, 0x10($t2) -/* 0D5E4C 800D524C 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D5E50 800D5250 8FAF002C */ lw $t7, 0x2c($sp) -/* 0D5E54 800D5254 018E4023 */ subu $t0, $t4, $t6 -/* 0D5E58 800D5258 01AF082B */ sltu $at, $t5, $t7 -/* 0D5E5C 800D525C 01014023 */ subu $t0, $t0, $at -/* 0D5E60 800D5260 01AF4823 */ subu $t1, $t5, $t7 -/* 0D5E64 800D5264 AD490014 */ sw $t1, 0x14($t2) -/* 0D5E68 800D5268 AD480010 */ sw $t0, 0x10($t2) -.L800D526C: -/* 0D5E6C 800D526C 8FB90034 */ lw $t9, 0x34($sp) -/* 0D5E70 800D5270 8FB80038 */ lw $t8, 0x38($sp) -/* 0D5E74 800D5274 AF190000 */ sw $t9, ($t8) -/* 0D5E78 800D5278 8FAB0034 */ lw $t3, 0x34($sp) -/* 0D5E7C 800D527C 8FAD0038 */ lw $t5, 0x38($sp) -/* 0D5E80 800D5280 8D6C0004 */ lw $t4, 4($t3) -/* 0D5E84 800D5284 ADAC0004 */ sw $t4, 4($t5) -/* 0D5E88 800D5288 8FAF0034 */ lw $t7, 0x34($sp) -/* 0D5E8C 800D528C 8FAE0038 */ lw $t6, 0x38($sp) -/* 0D5E90 800D5290 8DE80004 */ lw $t0, 4($t7) -/* 0D5E94 800D5294 AD0E0000 */ sw $t6, ($t0) -/* 0D5E98 800D5298 8FAA0034 */ lw $t2, 0x34($sp) -/* 0D5E9C 800D529C 8FA90038 */ lw $t1, 0x38($sp) -/* 0D5EA0 800D52A0 AD490004 */ sw $t1, 4($t2) -/* 0D5EA4 800D52A4 0C034960 */ jal __osRestoreInt -/* 0D5EA8 800D52A8 8FA40024 */ lw $a0, 0x24($sp) -/* 0D5EAC 800D52AC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D5EB0 800D52B0 8FA20028 */ lw $v0, 0x28($sp) -/* 0D5EB4 800D52B4 8FA3002C */ lw $v1, 0x2c($sp) -/* 0D5EB8 800D52B8 03E00008 */ jr $ra -/* 0D5EBC 800D52BC 27BD0038 */ addiu $sp, $sp, 0x38 - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osPfsRWInode.s b/lib/asm/non_matchings/unknown_0D3020/__osPfsRWInode.s deleted file mode 100644 index cc235883..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osPfsRWInode.s +++ /dev/null @@ -1,217 +0,0 @@ -glabel __osPfsRWInode -/* 0D68BC 800D5CBC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0D68C0 800D5CC0 AFA40038 */ sw $a0, 0x38($sp) -/* 0D68C4 800D5CC4 8FAE0038 */ lw $t6, 0x38($sp) -/* 0D68C8 800D5CC8 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D68CC 800D5CCC AFA5003C */ sw $a1, 0x3c($sp) -/* 0D68D0 800D5CD0 AFA60040 */ sw $a2, 0x40($sp) -/* 0D68D4 800D5CD4 AFA70044 */ sw $a3, 0x44($sp) -/* 0D68D8 800D5CD8 91CF0065 */ lbu $t7, 0x65($t6) -/* 0D68DC 800D5CDC 11E0000A */ beqz $t7, .L800D5D08 -/* 0D68E0 800D5CE0 00000000 */ nop -/* 0D68E4 800D5CE4 A1C00065 */ sb $zero, 0x65($t6) -/* 0D68E8 800D5CE8 0C0357F7 */ jal __osPfsSelectBank -/* 0D68EC 800D5CEC 8FA40038 */ lw $a0, 0x38($sp) -/* 0D68F0 800D5CF0 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D68F4 800D5CF4 8FB8002C */ lw $t8, 0x2c($sp) -/* 0D68F8 800D5CF8 13000003 */ beqz $t8, .L800D5D08 -/* 0D68FC 800D5CFC 00000000 */ nop -/* 0D6900 800D5D00 100000B2 */ b .L800D5FCC -/* 0D6904 800D5D04 03001025 */ move $v0, $t8 -.L800D5D08: -/* 0D6908 800D5D08 93B90047 */ lbu $t9, 0x47($sp) -/* 0D690C 800D5D0C 1B200004 */ blez $t9, .L800D5D20 -/* 0D6910 800D5D10 00000000 */ nop -/* 0D6914 800D5D14 24080001 */ li $t0, 1 -/* 0D6918 800D5D18 10000004 */ b .L800D5D2C -/* 0D691C 800D5D1C AFA80028 */ sw $t0, 0x28($sp) -.L800D5D20: -/* 0D6920 800D5D20 8FA90038 */ lw $t1, 0x38($sp) -/* 0D6924 800D5D24 8D2A0060 */ lw $t2, 0x60($t1) -/* 0D6928 800D5D28 AFAA0028 */ sw $t2, 0x28($sp) -.L800D5D2C: -/* 0D692C 800D5D2C 93AB0043 */ lbu $t3, 0x43($sp) -/* 0D6930 800D5D30 24010001 */ li $at, 1 -/* 0D6934 800D5D34 1561000C */ bne $t3, $at, .L800D5D68 -/* 0D6938 800D5D38 00000000 */ nop -/* 0D693C 800D5D3C 8FAD0028 */ lw $t5, 0x28($sp) -/* 0D6940 800D5D40 8FAC003C */ lw $t4, 0x3c($sp) -/* 0D6944 800D5D44 000D2823 */ negu $a1, $t5 -/* 0D6948 800D5D48 00057040 */ sll $t6, $a1, 1 -/* 0D694C 800D5D4C 01C02825 */ move $a1, $t6 -/* 0D6950 800D5D50 000D7840 */ sll $t7, $t5, 1 -/* 0D6954 800D5D54 24A50100 */ addiu $a1, $a1, 0x100 -/* 0D6958 800D5D58 0C0354BC */ jal __osSumcalc -/* 0D695C 800D5D5C 018F2021 */ addu $a0, $t4, $t7 -/* 0D6960 800D5D60 8FB8003C */ lw $t8, 0x3c($sp) -/* 0D6964 800D5D64 A3020001 */ sb $v0, 1($t8) -.L800D5D68: -/* 0D6968 800D5D68 AFA00030 */ sw $zero, 0x30($sp) -.L800D5D6C: -/* 0D696C 800D5D6C 8FA80030 */ lw $t0, 0x30($sp) -/* 0D6970 800D5D70 8FB9003C */ lw $t9, 0x3c($sp) -/* 0D6974 800D5D74 93AB0043 */ lbu $t3, 0x43($sp) -/* 0D6978 800D5D78 00084940 */ sll $t1, $t0, 5 -/* 0D697C 800D5D7C 24010001 */ li $at, 1 -/* 0D6980 800D5D80 03295021 */ addu $t2, $t9, $t1 -/* 0D6984 800D5D84 1561001B */ bne $t3, $at, .L800D5DF4 -/* 0D6988 800D5D88 AFAA0024 */ sw $t2, 0x24($sp) -/* 0D698C 800D5D8C 8FAC0038 */ lw $t4, 0x38($sp) -/* 0D6990 800D5D90 93AD0047 */ lbu $t5, 0x47($sp) -/* 0D6994 800D5D94 01403825 */ move $a3, $t2 -/* 0D6998 800D5D98 8D8F0054 */ lw $t7, 0x54($t4) -/* 0D699C 800D5D9C 000D70C0 */ sll $t6, $t5, 3 -/* 0D69A0 800D5DA0 8D840004 */ lw $a0, 4($t4) -/* 0D69A4 800D5DA4 8D850008 */ lw $a1, 8($t4) -/* 0D69A8 800D5DA8 01EEC021 */ addu $t8, $t7, $t6 -/* 0D69AC 800D5DAC 03083021 */ addu $a2, $t8, $t0 -/* 0D69B0 800D5DB0 0C03363C */ jal __osContRamWrite -/* 0D69B4 800D5DB4 AFA00010 */ sw $zero, 0x10($sp) -/* 0D69B8 800D5DB8 8FB90038 */ lw $t9, 0x38($sp) -/* 0D69BC 800D5DBC 93AB0047 */ lbu $t3, 0x47($sp) -/* 0D69C0 800D5DC0 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D69C4 800D5DC4 8F290058 */ lw $t1, 0x58($t9) -/* 0D69C8 800D5DC8 8FAF0030 */ lw $t7, 0x30($sp) -/* 0D69CC 800D5DCC 000B60C0 */ sll $t4, $t3, 3 -/* 0D69D0 800D5DD0 8F250008 */ lw $a1, 8($t9) -/* 0D69D4 800D5DD4 8F240004 */ lw $a0, 4($t9) -/* 0D69D8 800D5DD8 012C6821 */ addu $t5, $t1, $t4 -/* 0D69DC 800D5DDC AFA00010 */ sw $zero, 0x10($sp) -/* 0D69E0 800D5DE0 8FA70024 */ lw $a3, 0x24($sp) -/* 0D69E4 800D5DE4 0C03363C */ jal __osContRamWrite -/* 0D69E8 800D5DE8 01AF3021 */ addu $a2, $t5, $t7 -/* 0D69EC 800D5DEC 1000000D */ b .L800D5E24 -/* 0D69F0 800D5DF0 AFA2002C */ sw $v0, 0x2c($sp) -.L800D5DF4: -/* 0D69F4 800D5DF4 8FAE0038 */ lw $t6, 0x38($sp) -/* 0D69F8 800D5DF8 93A80047 */ lbu $t0, 0x47($sp) -/* 0D69FC 800D5DFC 8FAB0030 */ lw $t3, 0x30($sp) -/* 0D6A00 800D5E00 8DD80054 */ lw $t8, 0x54($t6) -/* 0D6A04 800D5E04 000850C0 */ sll $t2, $t0, 3 -/* 0D6A08 800D5E08 8FA70024 */ lw $a3, 0x24($sp) -/* 0D6A0C 800D5E0C 030AC821 */ addu $t9, $t8, $t2 -/* 0D6A10 800D5E10 8DC40004 */ lw $a0, 4($t6) -/* 0D6A14 800D5E14 8DC50008 */ lw $a1, 8($t6) -/* 0D6A18 800D5E18 0C033728 */ jal __osContRamRead -/* 0D6A1C 800D5E1C 032B3021 */ addu $a2, $t9, $t3 -/* 0D6A20 800D5E20 AFA2002C */ sw $v0, 0x2c($sp) -.L800D5E24: -/* 0D6A24 800D5E24 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D6A28 800D5E28 11200003 */ beqz $t1, .L800D5E38 -/* 0D6A2C 800D5E2C 00000000 */ nop -/* 0D6A30 800D5E30 10000066 */ b .L800D5FCC -/* 0D6A34 800D5E34 01201025 */ move $v0, $t1 -.L800D5E38: -/* 0D6A38 800D5E38 8FAC0030 */ lw $t4, 0x30($sp) -/* 0D6A3C 800D5E3C 258D0001 */ addiu $t5, $t4, 1 -/* 0D6A40 800D5E40 29A10008 */ slti $at, $t5, 8 -/* 0D6A44 800D5E44 1420FFC9 */ bnez $at, .L800D5D6C -/* 0D6A48 800D5E48 AFAD0030 */ sw $t5, 0x30($sp) -/* 0D6A4C 800D5E4C 93AF0043 */ lbu $t7, 0x43($sp) -/* 0D6A50 800D5E50 15E0005D */ bnez $t7, .L800D5FC8 -/* 0D6A54 800D5E54 00000000 */ nop -/* 0D6A58 800D5E58 8FA80028 */ lw $t0, 0x28($sp) -/* 0D6A5C 800D5E5C 8FAE003C */ lw $t6, 0x3c($sp) -/* 0D6A60 800D5E60 00082823 */ negu $a1, $t0 -/* 0D6A64 800D5E64 00055040 */ sll $t2, $a1, 1 -/* 0D6A68 800D5E68 01402825 */ move $a1, $t2 -/* 0D6A6C 800D5E6C 0008C040 */ sll $t8, $t0, 1 -/* 0D6A70 800D5E70 24A50100 */ addiu $a1, $a1, 0x100 -/* 0D6A74 800D5E74 0C0354BC */ jal __osSumcalc -/* 0D6A78 800D5E78 01D82021 */ addu $a0, $t6, $t8 -/* 0D6A7C 800D5E7C 8FB9003C */ lw $t9, 0x3c($sp) -/* 0D6A80 800D5E80 A3A20037 */ sb $v0, 0x37($sp) -/* 0D6A84 800D5E84 93A90037 */ lbu $t1, 0x37($sp) -/* 0D6A88 800D5E88 932B0001 */ lbu $t3, 1($t9) -/* 0D6A8C 800D5E8C 11690037 */ beq $t3, $t1, .L800D5F6C -/* 0D6A90 800D5E90 00000000 */ nop -/* 0D6A94 800D5E94 AFA00030 */ sw $zero, 0x30($sp) -.L800D5E98: -/* 0D6A98 800D5E98 8FAD0030 */ lw $t5, 0x30($sp) -/* 0D6A9C 800D5E9C 8FAC003C */ lw $t4, 0x3c($sp) -/* 0D6AA0 800D5EA0 8FB80038 */ lw $t8, 0x38($sp) -/* 0D6AA4 800D5EA4 000D7940 */ sll $t7, $t5, 5 -/* 0D6AA8 800D5EA8 018F7021 */ addu $t6, $t4, $t7 -/* 0D6AAC 800D5EAC 93AA0047 */ lbu $t2, 0x47($sp) -/* 0D6AB0 800D5EB0 AFAE0024 */ sw $t6, 0x24($sp) -/* 0D6AB4 800D5EB4 8F080058 */ lw $t0, 0x58($t8) -/* 0D6AB8 800D5EB8 000AC8C0 */ sll $t9, $t2, 3 -/* 0D6ABC 800D5EBC 01C03825 */ move $a3, $t6 -/* 0D6AC0 800D5EC0 01195821 */ addu $t3, $t0, $t9 -/* 0D6AC4 800D5EC4 016D3021 */ addu $a2, $t3, $t5 -/* 0D6AC8 800D5EC8 8F050008 */ lw $a1, 8($t8) -/* 0D6ACC 800D5ECC 0C033728 */ jal __osContRamRead -/* 0D6AD0 800D5ED0 8F040004 */ lw $a0, 4($t8) -/* 0D6AD4 800D5ED4 8FA90030 */ lw $t1, 0x30($sp) -/* 0D6AD8 800D5ED8 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D6ADC 800D5EDC 252C0001 */ addiu $t4, $t1, 1 -/* 0D6AE0 800D5EE0 29810008 */ slti $at, $t4, 8 -/* 0D6AE4 800D5EE4 1420FFEC */ bnez $at, .L800D5E98 -/* 0D6AE8 800D5EE8 AFAC0030 */ sw $t4, 0x30($sp) -/* 0D6AEC 800D5EEC 8FAF003C */ lw $t7, 0x3c($sp) -/* 0D6AF0 800D5EF0 93AA0037 */ lbu $t2, 0x37($sp) -/* 0D6AF4 800D5EF4 91F80001 */ lbu $t8, 1($t7) -/* 0D6AF8 800D5EF8 130A0003 */ beq $t8, $t2, .L800D5F08 -/* 0D6AFC 800D5EFC 00000000 */ nop -/* 0D6B00 800D5F00 10000032 */ b .L800D5FCC -/* 0D6B04 800D5F04 24020003 */ li $v0, 3 -.L800D5F08: -/* 0D6B08 800D5F08 AFA00030 */ sw $zero, 0x30($sp) -.L800D5F0C: -/* 0D6B0C 800D5F0C 8FB90030 */ lw $t9, 0x30($sp) -/* 0D6B10 800D5F10 8FA8003C */ lw $t0, 0x3c($sp) -/* 0D6B14 800D5F14 8FAE0038 */ lw $t6, 0x38($sp) -/* 0D6B18 800D5F18 00195940 */ sll $t3, $t9, 5 -/* 0D6B1C 800D5F1C 010B6821 */ addu $t5, $t0, $t3 -/* 0D6B20 800D5F20 93AC0047 */ lbu $t4, 0x47($sp) -/* 0D6B24 800D5F24 AFAD0024 */ sw $t5, 0x24($sp) -/* 0D6B28 800D5F28 8DC90054 */ lw $t1, 0x54($t6) -/* 0D6B2C 800D5F2C 000C78C0 */ sll $t7, $t4, 3 -/* 0D6B30 800D5F30 8DC50008 */ lw $a1, 8($t6) -/* 0D6B34 800D5F34 8DC40004 */ lw $a0, 4($t6) -/* 0D6B38 800D5F38 012FC021 */ addu $t8, $t1, $t7 -/* 0D6B3C 800D5F3C AFA00010 */ sw $zero, 0x10($sp) -/* 0D6B40 800D5F40 01A03825 */ move $a3, $t5 -/* 0D6B44 800D5F44 0C03363C */ jal __osContRamWrite -/* 0D6B48 800D5F48 03193021 */ addu $a2, $t8, $t9 -/* 0D6B4C 800D5F4C 8FAA0030 */ lw $t2, 0x30($sp) -/* 0D6B50 800D5F50 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D6B54 800D5F54 25480001 */ addiu $t0, $t2, 1 -/* 0D6B58 800D5F58 29010008 */ slti $at, $t0, 8 -/* 0D6B5C 800D5F5C 1420FFEB */ bnez $at, .L800D5F0C -/* 0D6B60 800D5F60 AFA80030 */ sw $t0, 0x30($sp) -/* 0D6B64 800D5F64 10000018 */ b .L800D5FC8 -/* 0D6B68 800D5F68 00000000 */ nop -.L800D5F6C: -/* 0D6B6C 800D5F6C AFA00030 */ sw $zero, 0x30($sp) -.L800D5F70: -/* 0D6B70 800D5F70 8FAE0030 */ lw $t6, 0x30($sp) -/* 0D6B74 800D5F74 8FAB003C */ lw $t3, 0x3c($sp) -/* 0D6B78 800D5F78 8FAF0038 */ lw $t7, 0x38($sp) -/* 0D6B7C 800D5F7C 000E6140 */ sll $t4, $t6, 5 -/* 0D6B80 800D5F80 016C4821 */ addu $t1, $t3, $t4 -/* 0D6B84 800D5F84 93B90047 */ lbu $t9, 0x47($sp) -/* 0D6B88 800D5F88 AFA90024 */ sw $t1, 0x24($sp) -/* 0D6B8C 800D5F8C 8DF80058 */ lw $t8, 0x58($t7) -/* 0D6B90 800D5F90 001968C0 */ sll $t5, $t9, 3 -/* 0D6B94 800D5F94 8DE50008 */ lw $a1, 8($t7) -/* 0D6B98 800D5F98 8DE40004 */ lw $a0, 4($t7) -/* 0D6B9C 800D5F9C 030D5021 */ addu $t2, $t8, $t5 -/* 0D6BA0 800D5FA0 AFA00010 */ sw $zero, 0x10($sp) -/* 0D6BA4 800D5FA4 01203825 */ move $a3, $t1 -/* 0D6BA8 800D5FA8 0C03363C */ jal __osContRamWrite -/* 0D6BAC 800D5FAC 014E3021 */ addu $a2, $t2, $t6 -/* 0D6BB0 800D5FB0 8FA80030 */ lw $t0, 0x30($sp) -/* 0D6BB4 800D5FB4 AFA2002C */ sw $v0, 0x2c($sp) -/* 0D6BB8 800D5FB8 250B0001 */ addiu $t3, $t0, 1 -/* 0D6BBC 800D5FBC 29610008 */ slti $at, $t3, 8 -/* 0D6BC0 800D5FC0 1420FFEB */ bnez $at, .L800D5F70 -/* 0D6BC4 800D5FC4 AFAB0030 */ sw $t3, 0x30($sp) -.L800D5FC8: -/* 0D6BC8 800D5FC8 00001025 */ move $v0, $zero -.L800D5FCC: -/* 0D6BCC 800D5FCC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D6BD0 800D5FD0 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0D6BD4 800D5FD4 03E00008 */ jr $ra -/* 0D6BD8 800D5FD8 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osPfsSelectBank.s b/lib/asm/non_matchings/unknown_0D3020/__osPfsSelectBank.s deleted file mode 100644 index 6975c1e0..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osPfsSelectBank.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel __osPfsSelectBank -/* 0D6BDC 800D5FDC 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0D6BE0 800D5FE0 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D6BE4 800D5FE4 AFA40048 */ sw $a0, 0x48($sp) -/* 0D6BE8 800D5FE8 AFA00020 */ sw $zero, 0x20($sp) -/* 0D6BEC 800D5FEC AFA00024 */ sw $zero, 0x24($sp) -.L800D5FF0: -/* 0D6BF0 800D5FF0 8FAE0048 */ lw $t6, 0x48($sp) -/* 0D6BF4 800D5FF4 8FB80024 */ lw $t8, 0x24($sp) -/* 0D6BF8 800D5FF8 91CF0065 */ lbu $t7, 0x65($t6) -/* 0D6BFC 800D5FFC 03B8C821 */ addu $t9, $sp, $t8 -/* 0D6C00 800D6000 A32F0028 */ sb $t7, 0x28($t9) -/* 0D6C04 800D6004 8FA80024 */ lw $t0, 0x24($sp) -/* 0D6C08 800D6008 25090001 */ addiu $t1, $t0, 1 -/* 0D6C0C 800D600C 29210020 */ slti $at, $t1, 0x20 -/* 0D6C10 800D6010 1420FFF7 */ bnez $at, .L800D5FF0 -/* 0D6C14 800D6014 AFA90024 */ sw $t1, 0x24($sp) -/* 0D6C18 800D6018 8FAA0048 */ lw $t2, 0x48($sp) -/* 0D6C1C 800D601C 24060400 */ li $a2, 1024 -/* 0D6C20 800D6020 27A70028 */ addiu $a3, $sp, 0x28 -/* 0D6C24 800D6024 8D440004 */ lw $a0, 4($t2) -/* 0D6C28 800D6028 8D450008 */ lw $a1, 8($t2) -/* 0D6C2C 800D602C 0C03363C */ jal __osContRamWrite -/* 0D6C30 800D6030 AFA00010 */ sw $zero, 0x10($sp) -/* 0D6C34 800D6034 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D6C38 800D6038 AFA20020 */ sw $v0, 0x20($sp) -/* 0D6C3C 800D603C 8FA20020 */ lw $v0, 0x20($sp) -/* 0D6C40 800D6040 03E00008 */ jr $ra -/* 0D6C44 800D6044 27BD0048 */ addiu $sp, $sp, 0x48 - -/* 0D6C48 800D6048 00000000 */ nop -/* 0D6C4C 800D604C 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/__osRepairPackId.s b/lib/asm/non_matchings/unknown_0D3020/__osRepairPackId.s deleted file mode 100644 index 5009958e..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osRepairPackId.s +++ /dev/null @@ -1,286 +0,0 @@ -glabel __osRepairPackId -/* 0D5FB4 800D53B4 27BDFF88 */ addiu $sp, $sp, -0x78 -/* 0D5FB8 800D53B8 AFA40078 */ sw $a0, 0x78($sp) -/* 0D5FBC 800D53BC 8FAE0078 */ lw $t6, 0x78($sp) -/* 0D5FC0 800D53C0 AFBF001C */ sw $ra, 0x1c($sp) -/* 0D5FC4 800D53C4 AFA5007C */ sw $a1, 0x7c($sp) -/* 0D5FC8 800D53C8 AFA60080 */ sw $a2, 0x80($sp) -/* 0D5FCC 800D53CC AFA00074 */ sw $zero, 0x74($sp) -/* 0D5FD0 800D53D0 A3A00033 */ sb $zero, 0x33($sp) -/* 0D5FD4 800D53D4 91CF0065 */ lbu $t7, 0x65($t6) -/* 0D5FD8 800D53D8 11E0000A */ beqz $t7, .L800D5404 -/* 0D5FDC 800D53DC 00000000 */ nop -/* 0D5FE0 800D53E0 A1C00065 */ sb $zero, 0x65($t6) -/* 0D5FE4 800D53E4 0C0357F7 */ jal __osPfsSelectBank -/* 0D5FE8 800D53E8 8FA40078 */ lw $a0, 0x78($sp) -/* 0D5FEC 800D53EC AFA20074 */ sw $v0, 0x74($sp) -/* 0D5FF0 800D53F0 8FB80074 */ lw $t8, 0x74($sp) -/* 0D5FF4 800D53F4 13000003 */ beqz $t8, .L800D5404 -/* 0D5FF8 800D53F8 00000000 */ nop -/* 0D5FFC 800D53FC 100000EF */ b .L800D57BC -/* 0D6000 800D5400 03001025 */ move $v0, $t8 -.L800D5404: -/* 0D6004 800D5404 8FA80080 */ lw $t0, 0x80($sp) -/* 0D6008 800D5408 2419FFFF */ li $t9, -1 -/* 0D600C 800D540C 0C031E34 */ jal osGetCount -/* 0D6010 800D5410 AD190000 */ sw $t9, ($t0) -/* 0D6014 800D5414 8FA90080 */ lw $t1, 0x80($sp) -/* 0D6018 800D5418 AD220004 */ sw $v0, 4($t1) -/* 0D601C 800D541C 8FAA007C */ lw $t2, 0x7c($sp) -/* 0D6020 800D5420 8FAB0080 */ lw $t3, 0x80($sp) -/* 0D6024 800D5424 8D4C0008 */ lw $t4, 8($t2) -/* 0D6028 800D5428 8D4D000C */ lw $t5, 0xc($t2) -/* 0D602C 800D542C AD6C0008 */ sw $t4, 8($t3) -/* 0D6030 800D5430 AD6D000C */ sw $t5, 0xc($t3) -/* 0D6034 800D5434 8FAF007C */ lw $t7, 0x7c($sp) -/* 0D6038 800D5438 8FB80080 */ lw $t8, 0x80($sp) -/* 0D603C 800D543C 8DEE0010 */ lw $t6, 0x10($t7) -/* 0D6040 800D5440 8DEF0014 */ lw $t7, 0x14($t7) -/* 0D6044 800D5444 AF0E0010 */ sw $t6, 0x10($t8) -/* 0D6048 800D5448 AF0F0014 */ sw $t7, 0x14($t8) -/* 0D604C 800D544C AFA00028 */ sw $zero, 0x28($sp) -.L800D5450: -/* 0D6050 800D5450 8FB90028 */ lw $t9, 0x28($sp) -/* 0D6054 800D5454 8FA80078 */ lw $t0, 0x78($sp) -/* 0D6058 800D5458 A1190065 */ sb $t9, 0x65($t0) -/* 0D605C 800D545C 0C0357F7 */ jal __osPfsSelectBank -/* 0D6060 800D5460 8FA40078 */ lw $a0, 0x78($sp) -/* 0D6064 800D5464 AFA20074 */ sw $v0, 0x74($sp) -/* 0D6068 800D5468 8FA90074 */ lw $t1, 0x74($sp) -/* 0D606C 800D546C 11200003 */ beqz $t1, .L800D547C -/* 0D6070 800D5470 00000000 */ nop -/* 0D6074 800D5474 100000D1 */ b .L800D57BC -/* 0D6078 800D5478 01201025 */ move $v0, $t1 -.L800D547C: -/* 0D607C 800D547C 8FAA0078 */ lw $t2, 0x78($sp) -/* 0D6080 800D5480 00003025 */ move $a2, $zero -/* 0D6084 800D5484 27A70054 */ addiu $a3, $sp, 0x54 -/* 0D6088 800D5488 8D440004 */ lw $a0, 4($t2) -/* 0D608C 800D548C 0C033728 */ jal __osContRamRead -/* 0D6090 800D5490 8D450008 */ lw $a1, 8($t2) -/* 0D6094 800D5494 AFA20074 */ sw $v0, 0x74($sp) -/* 0D6098 800D5498 8FAC0074 */ lw $t4, 0x74($sp) -/* 0D609C 800D549C 11800003 */ beqz $t4, .L800D54AC -/* 0D60A0 800D54A0 00000000 */ nop -/* 0D60A4 800D54A4 100000C5 */ b .L800D57BC -/* 0D60A8 800D54A8 01801025 */ move $v0, $t4 -.L800D54AC: -/* 0D60AC 800D54AC 8FAD0028 */ lw $t5, 0x28($sp) -/* 0D60B0 800D54B0 27AE0054 */ addiu $t6, $sp, 0x54 -/* 0D60B4 800D54B4 240F0001 */ li $t7, 1 -/* 0D60B8 800D54B8 35AB0080 */ ori $t3, $t5, 0x80 -/* 0D60BC 800D54BC A1CB0000 */ sb $t3, ($t6) -/* 0D60C0 800D54C0 AFAF002C */ sw $t7, 0x2c($sp) -.L800D54C4: -/* 0D60C4 800D54C4 8FB8002C */ lw $t8, 0x2c($sp) -/* 0D60C8 800D54C8 27B90054 */ addiu $t9, $sp, 0x54 -/* 0D60CC 800D54CC 03194021 */ addu $t0, $t8, $t9 -/* 0D60D0 800D54D0 91090000 */ lbu $t1, ($t0) -/* 0D60D4 800D54D4 01205027 */ not $t2, $t1 -/* 0D60D8 800D54D8 A10A0000 */ sb $t2, ($t0) -/* 0D60DC 800D54DC 8FAC002C */ lw $t4, 0x2c($sp) -/* 0D60E0 800D54E0 258D0001 */ addiu $t5, $t4, 1 -/* 0D60E4 800D54E4 29A10020 */ slti $at, $t5, 0x20 -/* 0D60E8 800D54E8 1420FFF6 */ bnez $at, .L800D54C4 -/* 0D60EC 800D54EC AFAD002C */ sw $t5, 0x2c($sp) -/* 0D60F0 800D54F0 8FAB0078 */ lw $t3, 0x78($sp) -/* 0D60F4 800D54F4 00003025 */ move $a2, $zero -/* 0D60F8 800D54F8 27A70054 */ addiu $a3, $sp, 0x54 -/* 0D60FC 800D54FC 8D640004 */ lw $a0, 4($t3) -/* 0D6100 800D5500 8D650008 */ lw $a1, 8($t3) -/* 0D6104 800D5504 0C03363C */ jal __osContRamWrite -/* 0D6108 800D5508 AFA00010 */ sw $zero, 0x10($sp) -/* 0D610C 800D550C AFA20074 */ sw $v0, 0x74($sp) -/* 0D6110 800D5510 8FAE0074 */ lw $t6, 0x74($sp) -/* 0D6114 800D5514 11C00003 */ beqz $t6, .L800D5524 -/* 0D6118 800D5518 00000000 */ nop -/* 0D611C 800D551C 100000A7 */ b .L800D57BC -/* 0D6120 800D5520 01C01025 */ move $v0, $t6 -.L800D5524: -/* 0D6124 800D5524 8FAF0078 */ lw $t7, 0x78($sp) -/* 0D6128 800D5528 00003025 */ move $a2, $zero -/* 0D612C 800D552C 27A70034 */ addiu $a3, $sp, 0x34 -/* 0D6130 800D5530 8DE40004 */ lw $a0, 4($t7) -/* 0D6134 800D5534 0C033728 */ jal __osContRamRead -/* 0D6138 800D5538 8DE50008 */ lw $a1, 8($t7) -/* 0D613C 800D553C AFA20074 */ sw $v0, 0x74($sp) -/* 0D6140 800D5540 8FB80074 */ lw $t8, 0x74($sp) -/* 0D6144 800D5544 13000003 */ beqz $t8, .L800D5554 -/* 0D6148 800D5548 00000000 */ nop -/* 0D614C 800D554C 1000009B */ b .L800D57BC -/* 0D6150 800D5550 03001025 */ move $v0, $t8 -.L800D5554: -/* 0D6154 800D5554 AFA0002C */ sw $zero, 0x2c($sp) -.L800D5558: -/* 0D6158 800D5558 8FB9002C */ lw $t9, 0x2c($sp) -/* 0D615C 800D555C 03B94821 */ addu $t1, $sp, $t9 -/* 0D6160 800D5560 03B95021 */ addu $t2, $sp, $t9 -/* 0D6164 800D5564 914A0034 */ lbu $t2, 0x34($t2) -/* 0D6168 800D5568 91290054 */ lbu $t1, 0x54($t1) -/* 0D616C 800D556C 152A0006 */ bne $t1, $t2, .L800D5588 -/* 0D6170 800D5570 00000000 */ nop -/* 0D6174 800D5574 8FA8002C */ lw $t0, 0x2c($sp) -/* 0D6178 800D5578 250C0001 */ addiu $t4, $t0, 1 -/* 0D617C 800D557C 29810020 */ slti $at, $t4, 0x20 -/* 0D6180 800D5580 1420FFF5 */ bnez $at, .L800D5558 -/* 0D6184 800D5584 AFAC002C */ sw $t4, 0x2c($sp) -.L800D5588: -/* 0D6188 800D5588 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D618C 800D558C 24010020 */ li $at, 32 -/* 0D6190 800D5590 15A10026 */ bne $t5, $at, .L800D562C -/* 0D6194 800D5594 00000000 */ nop -/* 0D6198 800D5598 8FAB0028 */ lw $t3, 0x28($sp) -/* 0D619C 800D559C 1960001C */ blez $t3, .L800D5610 -/* 0D61A0 800D55A0 00000000 */ nop -/* 0D61A4 800D55A4 8FAE0078 */ lw $t6, 0x78($sp) -/* 0D61A8 800D55A8 A1C00065 */ sb $zero, 0x65($t6) -/* 0D61AC 800D55AC 0C0357F7 */ jal __osPfsSelectBank -/* 0D61B0 800D55B0 8FA40078 */ lw $a0, 0x78($sp) -/* 0D61B4 800D55B4 AFA20074 */ sw $v0, 0x74($sp) -/* 0D61B8 800D55B8 8FAF0074 */ lw $t7, 0x74($sp) -/* 0D61BC 800D55BC 11E00003 */ beqz $t7, .L800D55CC -/* 0D61C0 800D55C0 00000000 */ nop -/* 0D61C4 800D55C4 1000007D */ b .L800D57BC -/* 0D61C8 800D55C8 01E01025 */ move $v0, $t7 -.L800D55CC: -/* 0D61CC 800D55CC 8FB80078 */ lw $t8, 0x78($sp) -/* 0D61D0 800D55D0 00003025 */ move $a2, $zero -/* 0D61D4 800D55D4 27A70054 */ addiu $a3, $sp, 0x54 -/* 0D61D8 800D55D8 8F040004 */ lw $a0, 4($t8) -/* 0D61DC 800D55DC 0C033728 */ jal __osContRamRead -/* 0D61E0 800D55E0 8F050008 */ lw $a1, 8($t8) -/* 0D61E4 800D55E4 AFA20074 */ sw $v0, 0x74($sp) -/* 0D61E8 800D55E8 8FB90074 */ lw $t9, 0x74($sp) -/* 0D61EC 800D55EC 13200003 */ beqz $t9, .L800D55FC -/* 0D61F0 800D55F0 00000000 */ nop -/* 0D61F4 800D55F4 10000071 */ b .L800D57BC -/* 0D61F8 800D55F8 03201025 */ move $v0, $t9 -.L800D55FC: -/* 0D61FC 800D55FC 27A90054 */ addiu $t1, $sp, 0x54 -/* 0D6200 800D5600 912A0000 */ lbu $t2, ($t1) -/* 0D6204 800D5604 24010080 */ li $at, 128 -/* 0D6208 800D5608 15410008 */ bne $t2, $at, .L800D562C -/* 0D620C 800D560C 00000000 */ nop -.L800D5610: -/* 0D6210 800D5610 8FA80028 */ lw $t0, 0x28($sp) -/* 0D6214 800D5614 250C0001 */ addiu $t4, $t0, 1 -/* 0D6218 800D5618 AFAC0028 */ sw $t4, 0x28($sp) -/* 0D621C 800D561C 8FAD0028 */ lw $t5, 0x28($sp) -/* 0D6220 800D5620 29A1003E */ slti $at, $t5, 0x3e -/* 0D6224 800D5624 1420FF8A */ bnez $at, .L800D5450 -/* 0D6228 800D5628 00000000 */ nop -.L800D562C: -/* 0D622C 800D562C 8FAB0078 */ lw $t3, 0x78($sp) -/* 0D6230 800D5630 A1600065 */ sb $zero, 0x65($t3) -/* 0D6234 800D5634 0C0357F7 */ jal __osPfsSelectBank -/* 0D6238 800D5638 8FA40078 */ lw $a0, 0x78($sp) -/* 0D623C 800D563C AFA20074 */ sw $v0, 0x74($sp) -/* 0D6240 800D5640 8FAE0074 */ lw $t6, 0x74($sp) -/* 0D6244 800D5644 11C00003 */ beqz $t6, .L800D5654 -/* 0D6248 800D5648 00000000 */ nop -/* 0D624C 800D564C 1000005B */ b .L800D57BC -/* 0D6250 800D5650 01C01025 */ move $v0, $t6 -.L800D5654: -/* 0D6254 800D5654 8FAF0028 */ lw $t7, 0x28($sp) -/* 0D6258 800D5658 19E00004 */ blez $t7, .L800D566C -/* 0D625C 800D565C 00000000 */ nop -/* 0D6260 800D5660 24180001 */ li $t8, 1 -/* 0D6264 800D5664 10000002 */ b .L800D5670 -/* 0D6268 800D5668 A3B80033 */ sb $t8, 0x33($sp) -.L800D566C: -/* 0D626C 800D566C A3A00033 */ sb $zero, 0x33($sp) -.L800D5670: -/* 0D6270 800D5670 8FB9007C */ lw $t9, 0x7c($sp) -/* 0D6274 800D5674 93A80033 */ lbu $t0, 0x33($sp) -/* 0D6278 800D5678 8FAD0080 */ lw $t5, 0x80($sp) -/* 0D627C 800D567C 97290018 */ lhu $t1, 0x18($t9) -/* 0D6280 800D5680 312AFFFE */ andi $t2, $t1, 0xfffe -/* 0D6284 800D5684 01486025 */ or $t4, $t2, $t0 -/* 0D6288 800D5688 A5AC0018 */ sh $t4, 0x18($t5) -/* 0D628C 800D568C 8FAE0080 */ lw $t6, 0x80($sp) -/* 0D6290 800D5690 8FAB0028 */ lw $t3, 0x28($sp) -/* 0D6294 800D5694 A1CB001A */ sb $t3, 0x1a($t6) -/* 0D6298 800D5698 8FAF007C */ lw $t7, 0x7c($sp) -/* 0D629C 800D569C 8FB90080 */ lw $t9, 0x80($sp) -/* 0D62A0 800D56A0 91F8001B */ lbu $t8, 0x1b($t7) -/* 0D62A4 800D56A4 A338001B */ sb $t8, 0x1b($t9) -/* 0D62A8 800D56A8 8FA90080 */ lw $t1, 0x80($sp) -/* 0D62AC 800D56AC 01202025 */ move $a0, $t1 -/* 0D62B0 800D56B0 2525001C */ addiu $a1, $t1, 0x1c -/* 0D62B4 800D56B4 0C0354D3 */ jal __osIdCheckSum -/* 0D62B8 800D56B8 2526001E */ addiu $a2, $t1, 0x1e -/* 0D62BC 800D56BC 240A0001 */ li $t2, 1 -/* 0D62C0 800D56C0 27A80020 */ addiu $t0, $sp, 0x20 -/* 0D62C4 800D56C4 A50A0000 */ sh $t2, ($t0) -/* 0D62C8 800D56C8 240C0003 */ li $t4, 3 -/* 0D62CC 800D56CC 27AD0020 */ addiu $t5, $sp, 0x20 -/* 0D62D0 800D56D0 A5AC0002 */ sh $t4, 2($t5) -/* 0D62D4 800D56D4 240B0004 */ li $t3, 4 -/* 0D62D8 800D56D8 27AE0020 */ addiu $t6, $sp, 0x20 -/* 0D62DC 800D56DC A5CB0004 */ sh $t3, 4($t6) -/* 0D62E0 800D56E0 240F0006 */ li $t7, 6 -/* 0D62E4 800D56E4 27B80020 */ addiu $t8, $sp, 0x20 -/* 0D62E8 800D56E8 A70F0006 */ sh $t7, 6($t8) -/* 0D62EC 800D56EC AFA0002C */ sw $zero, 0x2c($sp) -.L800D56F0: -/* 0D62F0 800D56F0 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D62F4 800D56F4 8FB90078 */ lw $t9, 0x78($sp) -/* 0D62F8 800D56F8 24080001 */ li $t0, 1 -/* 0D62FC 800D56FC 00095040 */ sll $t2, $t1, 1 -/* 0D6300 800D5700 03AA3021 */ addu $a2, $sp, $t2 -/* 0D6304 800D5704 94C60020 */ lhu $a2, 0x20($a2) -/* 0D6308 800D5708 8F240004 */ lw $a0, 4($t9) -/* 0D630C 800D570C 8F250008 */ lw $a1, 8($t9) -/* 0D6310 800D5710 AFA80010 */ sw $t0, 0x10($sp) -/* 0D6314 800D5714 0C03363C */ jal __osContRamWrite -/* 0D6318 800D5718 8FA70080 */ lw $a3, 0x80($sp) -/* 0D631C 800D571C AFA20074 */ sw $v0, 0x74($sp) -/* 0D6320 800D5720 8FAC0074 */ lw $t4, 0x74($sp) -/* 0D6324 800D5724 11800003 */ beqz $t4, .L800D5734 -/* 0D6328 800D5728 00000000 */ nop -/* 0D632C 800D572C 10000023 */ b .L800D57BC -/* 0D6330 800D5730 01801025 */ move $v0, $t4 -.L800D5734: -/* 0D6334 800D5734 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D6338 800D5738 25AB0001 */ addiu $t3, $t5, 1 -/* 0D633C 800D573C 29610004 */ slti $at, $t3, 4 -/* 0D6340 800D5740 1420FFEB */ bnez $at, .L800D56F0 -/* 0D6344 800D5744 AFAB002C */ sw $t3, 0x2c($sp) -/* 0D6348 800D5748 8FAE0078 */ lw $t6, 0x78($sp) -/* 0D634C 800D574C 24060001 */ li $a2, 1 -/* 0D6350 800D5750 27A70054 */ addiu $a3, $sp, 0x54 -/* 0D6354 800D5754 8DC40004 */ lw $a0, 4($t6) -/* 0D6358 800D5758 0C033728 */ jal __osContRamRead -/* 0D635C 800D575C 8DC50008 */ lw $a1, 8($t6) -/* 0D6360 800D5760 AFA20074 */ sw $v0, 0x74($sp) -/* 0D6364 800D5764 8FAF0074 */ lw $t7, 0x74($sp) -/* 0D6368 800D5768 11E00003 */ beqz $t7, .L800D5778 -/* 0D636C 800D576C 00000000 */ nop -/* 0D6370 800D5770 10000012 */ b .L800D57BC -/* 0D6374 800D5774 01E01025 */ move $v0, $t7 -.L800D5778: -/* 0D6378 800D5778 AFA0002C */ sw $zero, 0x2c($sp) -.L800D577C: -/* 0D637C 800D577C 8FB9002C */ lw $t9, 0x2c($sp) -/* 0D6380 800D5780 8FB80080 */ lw $t8, 0x80($sp) -/* 0D6384 800D5784 03B94021 */ addu $t0, $sp, $t9 -/* 0D6388 800D5788 03194821 */ addu $t1, $t8, $t9 -/* 0D638C 800D578C 912A0000 */ lbu $t2, ($t1) -/* 0D6390 800D5790 91080054 */ lbu $t0, 0x54($t0) -/* 0D6394 800D5794 11480003 */ beq $t2, $t0, .L800D57A4 -/* 0D6398 800D5798 00000000 */ nop -/* 0D639C 800D579C 10000007 */ b .L800D57BC -/* 0D63A0 800D57A0 2402000A */ li $v0, 10 -.L800D57A4: -/* 0D63A4 800D57A4 8FAC002C */ lw $t4, 0x2c($sp) -/* 0D63A8 800D57A8 258D0001 */ addiu $t5, $t4, 1 -/* 0D63AC 800D57AC 29A10020 */ slti $at, $t5, 0x20 -/* 0D63B0 800D57B0 1420FFF2 */ bnez $at, .L800D577C -/* 0D63B4 800D57B4 AFAD002C */ sw $t5, 0x2c($sp) -/* 0D63B8 800D57B8 00001025 */ move $v0, $zero -.L800D57BC: -/* 0D63BC 800D57BC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0D63C0 800D57C0 27BD0078 */ addiu $sp, $sp, 0x78 -/* 0D63C4 800D57C4 03E00008 */ jr $ra -/* 0D63C8 800D57C8 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s b/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s deleted file mode 100644 index 7499371f..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osSetTimerIntr.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel __osSetTimerIntr -/* 0D5CC4 800D50C4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D5CC8 800D50C8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D5CCC 800D50CC AFA40028 */ sw $a0, 0x28($sp) -/* 0D5CD0 800D50D0 0C034958 */ jal __osDisableInt -/* 0D5CD4 800D50D4 AFA5002C */ sw $a1, 0x2c($sp) -/* 0D5CD8 800D50D8 0C031E34 */ jal osGetCount -/* 0D5CDC 800D50DC AFA2001C */ sw $v0, 0x1c($sp) -/* 0D5CE0 800D50E0 3C018013 */ lui $at, %hi(__osTimerCounter) # $at, 0x8013 -/* 0D5CE4 800D50E4 AC22D230 */ sw $v0, %lo(__osTimerCounter)($at) -/* 0D5CE8 800D50E8 3C0E8013 */ lui $t6, %hi(__osTimerCounter) # $t6, 0x8013 -/* 0D5CEC 800D50EC 8DCED230 */ lw $t6, %lo(__osTimerCounter)($t6) -/* 0D5CF0 800D50F0 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D5CF4 800D50F4 8FA80028 */ lw $t0, 0x28($sp) -/* 0D5CF8 800D50F8 01C0C825 */ move $t9, $t6 -/* 0D5CFC 800D50FC 03295821 */ addu $t3, $t9, $t1 -/* 0D5D00 800D5100 24180000 */ li $t8, 0 -/* 0D5D04 800D5104 0169082B */ sltu $at, $t3, $t1 -/* 0D5D08 800D5108 00385021 */ addu $t2, $at, $t8 -/* 0D5D0C 800D510C 01485021 */ addu $t2, $t2, $t0 -/* 0D5D10 800D5110 AFAA0020 */ sw $t2, 0x20($sp) -/* 0D5D14 800D5114 AFAB0024 */ sw $t3, 0x24($sp) -/* 0D5D18 800D5118 0C035D18 */ jal __osSetCompare -/* 0D5D1C 800D511C 01602025 */ move $a0, $t3 -/* 0D5D20 800D5120 0C034960 */ jal __osRestoreInt -/* 0D5D24 800D5124 8FA4001C */ lw $a0, 0x1c($sp) -/* 0D5D28 800D5128 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D5D2C 800D512C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0D5D30 800D5130 03E00008 */ jr $ra -/* 0D5D34 800D5134 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D3020/__osSiDeviceBusy.s b/lib/asm/non_matchings/unknown_0D3020/__osSiDeviceBusy.s deleted file mode 100644 index fc29f57b..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osSiDeviceBusy.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel __osSiDeviceBusy -/* 0D5EC0 800D52C0 3C0EA480 */ lui $t6, %hi(SI_STATUS_REG) # $t6, 0xa480 -/* 0D5EC4 800D52C4 8DC40018 */ lw $a0, %lo(SI_STATUS_REG)($t6) -/* 0D5EC8 800D52C8 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0D5ECC 800D52CC 308F0003 */ andi $t7, $a0, 3 -/* 0D5ED0 800D52D0 11E00003 */ beqz $t7, .L800D52E0 -/* 0D5ED4 800D52D4 00000000 */ nop -/* 0D5ED8 800D52D8 10000002 */ b .L800D52E4 -/* 0D5EDC 800D52DC 24020001 */ li $v0, 1 -.L800D52E0: -/* 0D5EE0 800D52E0 00001025 */ move $v0, $zero -.L800D52E4: -/* 0D5EE4 800D52E4 03E00008 */ jr $ra -/* 0D5EE8 800D52E8 27BD0008 */ addiu $sp, $sp, 8 - -/* 0D5EEC 800D52EC 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/__osSumcalc.s b/lib/asm/non_matchings/unknown_0D3020/__osSumcalc.s deleted file mode 100644 index b4351675..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osSumcalc.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel __osSumcalc -/* 0D5EF0 800D52F0 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0D5EF4 800D52F4 AFA00008 */ sw $zero, 8($sp) -/* 0D5EF8 800D52F8 AFA40004 */ sw $a0, 4($sp) -/* 0D5EFC 800D52FC 18A00010 */ blez $a1, .L800D5340 -/* 0D5F00 800D5300 AFA0000C */ sw $zero, 0xc($sp) -.L800D5304: -/* 0D5F04 800D5304 8FAF0004 */ lw $t7, 4($sp) -/* 0D5F08 800D5308 8FAE0008 */ lw $t6, 8($sp) -/* 0D5F0C 800D530C 8FAB000C */ lw $t3, 0xc($sp) -/* 0D5F10 800D5310 91F80000 */ lbu $t8, ($t7) -/* 0D5F14 800D5314 25E80001 */ addiu $t0, $t7, 1 -/* 0D5F18 800D5318 256C0001 */ addiu $t4, $t3, 1 -/* 0D5F1C 800D531C 01D8C821 */ addu $t9, $t6, $t8 -/* 0D5F20 800D5320 AFB90008 */ sw $t9, 8($sp) -/* 0D5F24 800D5324 8FA90008 */ lw $t1, 8($sp) -/* 0D5F28 800D5328 0185082A */ slt $at, $t4, $a1 -/* 0D5F2C 800D532C AFAC000C */ sw $t4, 0xc($sp) -/* 0D5F30 800D5330 312AFFFF */ andi $t2, $t1, 0xffff -/* 0D5F34 800D5334 AFA80004 */ sw $t0, 4($sp) -/* 0D5F38 800D5338 1420FFF2 */ bnez $at, .L800D5304 -/* 0D5F3C 800D533C AFAA0008 */ sw $t2, 8($sp) -.L800D5340: -/* 0D5F40 800D5340 97A2000A */ lhu $v0, 0xa($sp) -/* 0D5F44 800D5344 03E00008 */ jr $ra -/* 0D5F48 800D5348 27BD0010 */ addiu $sp, $sp, 0x10 - diff --git a/lib/asm/non_matchings/unknown_0D3160/alSynDelete.s b/lib/asm/non_matchings/unknown_0D3160/alSynDelete.s deleted file mode 100644 index 78681ef1..00000000 --- a/lib/asm/non_matchings/unknown_0D3160/alSynDelete.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel alSynDelete -/* 0D3860 800D2C60 03E00008 */ jr $ra -/* 0D3864 800D2C64 AC800000 */ sw $zero, ($a0) - -/* 0D3868 800D2C68 00000000 */ nop -/* 0D386C 800D2C6C 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D4270/__osAiDeviceBusy.s b/lib/asm/non_matchings/unknown_0D4270/__osAiDeviceBusy.s deleted file mode 100644 index e6bb2478..00000000 --- a/lib/asm/non_matchings/unknown_0D4270/__osAiDeviceBusy.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel __osAiDeviceBusy -/* 0D4270 800D3670 3C0EA450 */ lui $t6, %hi(AI_STATUS_REG) # $t6, 0xa450 -/* 0D4274 800D3674 8DC4000C */ lw $a0, %lo(AI_STATUS_REG)($t6) -/* 0D4278 800D3678 3C018000 */ lui $at, 0x8000 -/* 0D427C 800D367C 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0D4280 800D3680 00817824 */ and $t7, $a0, $at -/* 0D4284 800D3684 11E00003 */ beqz $t7, .L800D3694 -/* 0D4288 800D3688 00000000 */ nop -/* 0D428C 800D368C 10000002 */ b .L800D3698 -/* 0D4290 800D3690 24020001 */ li $v0, 1 -.L800D3694: -/* 0D4294 800D3694 00001025 */ move $v0, $zero -.L800D3698: -/* 0D4298 800D3698 03E00008 */ jr $ra -/* 0D429C 800D369C 27BD0008 */ addiu $sp, $sp, 8 - diff --git a/lib/asm/osSetIntMask.s b/lib/asm/osSetIntMask.s index e6bccf72..fc1cf4f9 100644 --- a/lib/asm/osSetIntMask.s +++ b/lib/asm/osSetIntMask.s @@ -32,9 +32,9 @@ glabel osSetIntMask /* 0CA680 800C9A80 00814024 */ and $t0, $a0, $at /* 0CA684 800C9A84 010B4024 */ and $t0, $t0, $t3 /* 0CA688 800C9A88 000843C2 */ srl $t0, $t0, 0xf -/* 0CA68C 800C9A8C 3C0A800F */ lui $t2, %hi(D_800E94D0) # $t2, 0x800f +/* 0CA68C 800C9A8C 3C0A800F */ lui $t2, %hi(__osRcpImTable) # $t2, 0x800f /* 0CA690 800C9A90 01485021 */ addu $t2, $t2, $t0 -/* 0CA694 800C9A94 954A94D0 */ lhu $t2, %lo(D_800E94D0)($t2) +/* 0CA694 800C9A94 954A94D0 */ lhu $t2, %lo(__osRcpImTable)($t2) /* 0CA698 800C9A98 3C01A430 */ lui $at, %hi(MI_INTR_MASK_REG) # $at, 0xa430 /* 0CA69C 800C9A9C AC2A000C */ sw $t2, %lo(MI_INTR_MASK_REG)($at) /* 0CA6A0 800C9AA0 3088FF01 */ andi $t0, $a0, 0xff01 @@ -50,3 +50,16 @@ glabel osSetIntMask /* 0CA6C8 800C9AC8 03E00008 */ jr $ra /* 0CA6CC 800C9ACC 00000000 */ nop +.rdata +glabel __osRcpImTable +/* LUT to convert between MI_INTR and MI_INTR_MASK */ +/* MI_INTR is status for each interrupt whereas */ +/* MI_INTR_MASK has seperate bits for set/clr */ +.half 0x0555, 0x0556, 0x0559, 0x055A, 0x0565, 0x0566, 0x0569, 0x056A +.half 0x0595, 0x0596, 0x0599, 0x059A, 0x05A5, 0x05A6, 0x05A9, 0x05AA +.half 0x0655, 0x0656, 0x0659, 0x065A, 0x0665, 0x0666, 0x0669, 0x066A +.half 0x0695, 0x0696, 0x0699, 0x069A, 0x06A5, 0x06A6, 0x06A9, 0x06AA +.half 0x0955, 0x0956, 0x0959, 0x095A, 0x0965, 0x0966, 0x0969, 0x096A +.half 0x0995, 0x0996, 0x0999, 0x099A, 0x09A5, 0x09A6, 0x09A9, 0x09AA +.half 0x0A55, 0x0A56, 0x0A59, 0x0A5A, 0x0A65, 0x0A66, 0x0A69, 0x0A6A +.half 0x0A95, 0x0A96, 0x0A99, 0x0A9A, 0x0AA5, 0x0AA6, 0x0AA9, 0x0AAA diff --git a/lib/src/al/alBnkfNew.c b/lib/src/al/alBnkfNew.c new file mode 100644 index 00000000..e2de481b --- /dev/null +++ b/lib/src/al/alBnkfNew.c @@ -0,0 +1,146 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C75A0 */ + +/*==================================================================== + * bnkf.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +/* + * ### when the file format settles down a little, I'll remove these + * ### for efficiency. + */ +static void _bnkfPatchBank(ALBank *bank, s32 offset, s32 table); +static void _bnkfPatchInst(ALInstrument *i, s32 offset, s32 table); +static void _bnkfPatchSound(ALSound *s, s32 offset, s32 table); +static void _bnkfPatchWaveTable(ALWaveTable *w, s32 offset, s32 table); + +void alSeqFileNew(ALSeqFile *file, u8 *base) +{ + s32 offset = (s32) base; + s32 i; + + /* + * patch the file so that offsets are pointers + */ + for (i = 0; i < file->seqCount; i++) { + file->seqArray[i].offset = (u8 *)((u8 *)file->seqArray[i].offset + offset); + } +} + +void alBnkfNew(ALBankFile *file, u8 *table) +{ + s32 offset = (s32) file; + s32 woffset = (s32) table; + + s32 i; + + /* + * check the file format revision in debug libraries + */ + ALFailIf(file->revision != AL_BANK_VERSION, ERR_ALBNKFNEW); + + /* + * patch the file so that offsets are pointers + */ + for (i = 0; i < file->bankCount; i++) { + file->bankArray[i] = (ALBank *)((u8 *)file->bankArray[i] + offset); + if(file->bankArray[i]) + _bnkfPatchBank(file->bankArray[i], offset, woffset); + } +} + +static void _bnkfPatchBank(ALBank *bank, s32 offset, s32 table) +{ + s32 i; + + if (bank->flags) + return; + + bank->flags = 1; + + if (bank->percussion) { + bank->percussion = (ALInstrument *)((u8 *)bank->percussion + offset); + _bnkfPatchInst(bank->percussion, offset, table); + } + + for (i = 0; i < bank->instCount; i++) { + bank->instArray[i] = (ALInstrument *)((u8 *)bank->instArray[i] + + offset); + if(bank->instArray[i]) + _bnkfPatchInst(bank->instArray[i], offset, table); + } +} + +static void _bnkfPatchInst(ALInstrument *inst, s32 offset, s32 table) +{ + s32 i; + + if (inst->flags) + return; + + inst->flags = 1; + + for (i = 0; i < inst->soundCount; i++) { + inst->soundArray[i] = (ALSound *)((u8 *)inst->soundArray[i] + + offset); + _bnkfPatchSound(inst->soundArray[i], offset, table); + + } +} + +static void _bnkfPatchSound(ALSound *s, s32 offset, s32 table) +{ + if (s->flags) + return; + + s->flags = 1; + + s->envelope = (ALEnvelope *)((u8 *)s->envelope + offset); + s->keyMap = (ALKeyMap *)((u8 *)s->keyMap + offset); + + s->wavetable = (ALWaveTable *)((u8 *)s->wavetable + offset); + _bnkfPatchWaveTable(s->wavetable, offset, table); +} + +static void _bnkfPatchWaveTable(ALWaveTable *w, s32 offset, s32 table) +{ + if (w->flags) + return; + + w->flags = 1; + + w->base += table; + + /* sct 2/14/96 - patch wavetable loop info based on type. */ + if (w->type == AL_ADPCM_WAVE) + { + w->waveInfo.adpcmWave.book = (ALADPCMBook *)((u8 *)w->waveInfo.adpcmWave.book + offset); + if (w->waveInfo.adpcmWave.loop) + w->waveInfo.adpcmWave.loop = (ALADPCMloop *)((u8 *)w->waveInfo.adpcmWave.loop + offset); + } + else if (w->type == AL_RAW16_WAVE) + { + if (w->waveInfo.rawWave.loop) + w->waveInfo.rawWave.loop = (ALRawLoop *)((u8 *)w->waveInfo.rawWave.loop + offset); + } +} diff --git a/lib/src/al/alCSPGetState.c b/lib/src/al/alCSPGetState.c new file mode 100644 index 00000000..d1933135 --- /dev/null +++ b/lib/src/al/alCSPGetState.c @@ -0,0 +1,33 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C7A50 */ + +/*==================================================================== + * cspgetstate.c + * + * Synopsis: + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +s32 alCSPGetState(ALCSPlayer *seqp) +{ + return seqp->state; +} diff --git a/lib/src/al/alCSPGetTempo.c b/lib/src/al/alCSPGetTempo.c new file mode 100644 index 00000000..b6b42508 --- /dev/null +++ b/lib/src/al/alCSPGetTempo.c @@ -0,0 +1,36 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C7890 */ + +/*==================================================================== + * cspgettempo.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +s32 alCSPGetTempo(ALCSPlayer *seqp) +{ + /* sct 1/8/96 - If no target sequence has been set, just return zero (instead of crashing). */ + if (seqp->target == NULL) + return 0; + + return seqp->uspt/seqp->target->qnpt; +} + diff --git a/lib/src/al/alCSPSetBank.c b/lib/src/al/alCSPSetBank.c new file mode 100644 index 00000000..a00ff00d --- /dev/null +++ b/lib/src/al/alCSPSetBank.c @@ -0,0 +1,37 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C7A60 */ + +/*==================================================================== + * cspsetbank.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alCSPSetBank(ALCSPlayer *seqp, ALBank *b) +{ + ALEvent evt; + + evt.type = AL_SEQP_BANK_EVT; + evt.msg.spbank.bank = b; + + alEvtqPostEvent(&seqp->evtq, &evt, 0); +} diff --git a/lib/src/al/alCSPSetChlVol.c b/lib/src/al/alCSPSetChlVol.c new file mode 100644 index 00000000..6ee60a68 --- /dev/null +++ b/lib/src/al/alCSPSetChlVol.c @@ -0,0 +1,41 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C7940 */ + +/*==================================================================== + * cspsetchlvol.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alCSPSetChlVol(ALCSPlayer *seqp, u8 chan, u8 vol) +{ + ALEvent evt; + + evt.type = AL_SEQP_MIDI_EVT; + evt.msg.midi.ticks = 0; + evt.msg.midi.status = AL_MIDI_ControlChange | chan; + evt.msg.midi.byte1 = AL_MIDI_VOLUME_CTRL; + evt.msg.midi.byte2 = vol; + + alEvtqPostEvent(&seqp->evtq, &evt, 0); +} + + diff --git a/lib/src/al/alCSPSetSeq.c b/lib/src/al/alCSPSetSeq.c new file mode 100644 index 00000000..35ce54cb --- /dev/null +++ b/lib/src/al/alCSPSetSeq.c @@ -0,0 +1,39 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8560 */ + + +/*==================================================================== + * cspsetseq.c + * + * Synopsis: + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alCSPSetSeq(ALCSPlayer *seqp, ALCSeq *seq) +{ + ALEvent evt; + + evt.type = AL_SEQP_SEQ_EVT; + evt.msg.spseq.seq = seq; + + alEvtqPostEvent(&seqp->evtq, &evt, 0); +} diff --git a/lib/src/al/alSynDelete.c b/lib/src/al/alSynDelete.c new file mode 100644 index 00000000..e745aefb --- /dev/null +++ b/lib/src/al/alSynDelete.c @@ -0,0 +1,31 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D2C60 */ + +/*==================================================================== + * syndelete.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alSynDelete(ALSynth *drvr) +{ + drvr->head = 0; +} diff --git a/lib/src/al/alSynSetFXMix.c b/lib/src/al/alSynSetFXMix.c new file mode 100644 index 00000000..cb9b32f4 --- /dev/null +++ b/lib/src/al/alSynSetFXMix.c @@ -0,0 +1,61 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9810 */ + +/*==================================================================== + * synsetfxmix.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +ALParam *__allocParam(); + +void alSynSetFXMix(ALSynth *synth, ALVoice *v, u8 fxmix) +{ + ALParam *update; + ALFilter *f; + + if (v->pvoice) { + /* + * get new update struct from the free list + */ + update = __allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + /* + * set offset and fxmix data + */ + update->delta = synth->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_SET_FXAMT; + + //Differs from ultralib + if (fxmix < 0) + update->data.i = -fxmix; + else + update->data.i = fxmix; + + update->next = 0; + + f = v->pvoice->channelKnob; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } +} + + diff --git a/lib/src/al/alSynSetPitch.c b/lib/src/al/alSynSetPitch.c new file mode 100644 index 00000000..973b81ce --- /dev/null +++ b/lib/src/al/alSynSetPitch.c @@ -0,0 +1,52 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9780 */ + +/*==================================================================== + * synsetpitch.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alSynSetPitch(ALSynth *synth, ALVoice *v, f32 pitch) +{ + ALParam *update; + ALFilter *f; + + if (v->pvoice) { + /* + * get new update struct from the free list + */ + + update = __allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + /* + * set offset and pitch data + */ + update->delta = synth->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_SET_PITCH; + update->data.f = pitch; + update->next = 0; + + f = v->pvoice->channelKnob; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } +} diff --git a/lib/src/al/alSynSetPriority.c b/lib/src/al/alSynSetPriority.c new file mode 100644 index 00000000..dd72427d --- /dev/null +++ b/lib/src/al/alSynSetPriority.c @@ -0,0 +1,31 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9AE0 */ + +/*==================================================================== + * synsetpriority.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alSynSetPriority(UNUSED ALSynth *s, ALVoice *voice, s16 priority) +{ + voice->priority = priority; +} diff --git a/lib/src/al/alSynSetVol.c b/lib/src/al/alSynSetVol.c new file mode 100644 index 00000000..6bda99b4 --- /dev/null +++ b/lib/src/al/alSynSetVol.c @@ -0,0 +1,54 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9650 */ + +/*==================================================================== + * synsetvol.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alSynSetVol(ALSynth *synth, ALVoice *v, s16 volume, ALMicroTime t) +{ + ALParam *update; + ALFilter *f; + + if (v->pvoice) { + /* + * get new update struct from the free list + */ + update = __allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + /* + * set offset and volume data + */ + update->delta = synth->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_SET_VOLUME; + update->data.i = volume; + update->moredata.i = __timeToSamples(synth, t); + update->next = 0; + + f = v->pvoice->channelKnob; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } +} + + diff --git a/lib/src/al/alSynStartVoice.c b/lib/src/al/alSynStartVoice.c new file mode 100644 index 00000000..054fe05f --- /dev/null +++ b/lib/src/al/alSynStartVoice.c @@ -0,0 +1,50 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C96F0 */ +/*==================================================================== + * synstartvoice.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alSynStartVoice(ALSynth *synth, ALVoice *v, ALWaveTable *table) +{ + ALStartParam *update; + ALFilter *f; + + if (v->pvoice) { + + update = (ALStartParam *)__allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + /* + * send the start message to the motion control filter + */ + update->delta = synth->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_START_VOICE; + update->wave = table; + update->next = 0; + update->unity = v->unityPitch; + + f = v->pvoice->channelKnob; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } +} + diff --git a/lib/src/al/alSynStopVoice.c b/lib/src/al/alSynStopVoice.c new file mode 100644 index 00000000..e41ec5ac --- /dev/null +++ b/lib/src/al/alSynStopVoice.c @@ -0,0 +1,46 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C98B0 */ + +/*==================================================================== + * synstopvoice.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + + +void alSynStopVoice(ALSynth *synth, ALVoice *v) +{ + ALParam *update; + ALFilter *f; + + if (v->pvoice) { + + update = __allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + update->delta = synth->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_STOP_VOICE; + update->next = 0; + + f = v->pvoice->channelKnob; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } +} diff --git a/lib/src/al/cents2ratio.c b/lib/src/al/cents2ratio.c new file mode 100644 index 00000000..43dee5ed --- /dev/null +++ b/lib/src/al/cents2ratio.c @@ -0,0 +1,39 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C99E0 */ + +/* + * alCents2Ratio() + * + * Calculates the pitch shift ratio from the number of cents according to + * ratio = 2^(cents/1200) + * + * This is accurate to within one cent for ratios up and octave and down + * two ocataves. + */ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "libultra_internal.h" + +f32 alCents2Ratio(s32 cents) +{ + f32 x; + f32 ratio = 1.0f; + + if (cents >= 0) { + x = 1.00057779f; /* 2^(1/1200) */ + } else { + x = 0.9994225441f; /* 2^(-1/1200) */ + cents = -cents; + } + + while (cents) { + if (cents & 1) + ratio *= x; + x *= x; + cents >>= 1; + } + + return ratio; +} diff --git a/lib/src/al/cseq.c b/lib/src/al/cseq.c new file mode 100644 index 00000000..cc5ac220 --- /dev/null +++ b/lib/src/al/cseq.c @@ -0,0 +1,400 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C7AA0 */ + +/*==================================================================== + * cseq.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +static u32 __readVarLen(ALCSeq *s,u32 track); +static u8 __getTrackByte(ALCSeq *s,u32 track); +static u32 __alCSeqGetTrackEvent(ALCSeq *seq, u32 track, ALEvent *event); + +void alCSeqNew(ALCSeq *seq, u8 *ptr) +{ + u32 i,tmpOff,flagTmp; + + /* load the seqence pointed to by ptr */ + seq->base = (ALCMidiHdr*)ptr; + seq->validTracks = 0; + seq->lastDeltaTicks = 0; + seq->lastTicks = 0; + seq->deltaFlag = 1; + + for(i = 0; i < 16; i++) + { + seq->lastStatus[i] = 0; + seq->curBUPtr[i] = 0; + seq->curBULen[i] = 0; + tmpOff = seq->base->trackOffset[i]; + if(tmpOff) /* if the track is valid */ + { + flagTmp = 1 << i; + seq->validTracks |= flagTmp; + seq->curLoc[i] = (u8*)((u32)ptr + tmpOff); + seq->evtDeltaTicks[i] = __readVarLen(seq,i); + /*__alCSeqGetTrackEvent(seq,i); prime the event buffers */ + } + else + seq->curLoc[i] = 0; + } + + seq->qnpt = 1.0/(f32)seq->base->division; +} + +void alCSeqNextEvent(ALCSeq *seq,ALEvent *evt) +{ + u32 i; + u32 firstTime = 0xFFFFFFFF; + u32 firstTrack; + u32 lastTicks = seq->lastDeltaTicks; + +#ifdef _DEBUG + /* sct 1/17/96 - Warn if we are beyond the end of sequence. */ + if (!seq->validTracks) + __osError(ERR_ALSEQOVERRUN, 0); +#endif + + + for(i = 0; i < 16 ; i++) + { + if((seq->validTracks >> i) & 1) + { + if(seq->deltaFlag) + seq->evtDeltaTicks[i] -= lastTicks; + if(seq->evtDeltaTicks[i] < firstTime) + { + firstTime = seq->evtDeltaTicks[i]; + firstTrack = i; + } + } + } + + __alCSeqGetTrackEvent(seq,firstTrack,evt); + + evt->msg.midi.ticks = firstTime; + seq->lastTicks += firstTime; + seq->lastDeltaTicks = firstTime; + if(evt->type != AL_TRACK_END) + seq->evtDeltaTicks[firstTrack] += __readVarLen(seq,firstTrack); + seq->deltaFlag = 1; + +} + + +/* + Note: If there are no valid tracks (ie. all tracks have + reached the end of their data stream), then return FALSE + to indicate that there is no next event. +*/ +char __alCSeqNextDelta(ALCSeq *seq, s32 *pDeltaTicks) +{ + u32 i; + u32 firstTime = 0xFFFFFFFF; + u32 lastTicks = seq->lastDeltaTicks; + + if (!seq->validTracks) + return FALSE; + + for(i = 0; i < 16 ; i++) + { + if((seq->validTracks >> i) & 1) + { + if(seq->deltaFlag) + seq->evtDeltaTicks[i] -= lastTicks; + + if(seq->evtDeltaTicks[i] < firstTime) + firstTime = seq->evtDeltaTicks[i]; + } + } + + seq->deltaFlag = 0; + *pDeltaTicks = firstTime; + + return TRUE; +} + +/* only call alCSeqGetTrackEvent with a valid track !! */ +static u32 __alCSeqGetTrackEvent(ALCSeq *seq, u32 track, ALEvent *event) +{ + u32 offset; + u8 status, loopCt, curLpCt, *tmpPtr; + + + status = __getTrackByte(seq,track); /* read the status byte */ + + if (status == AL_MIDI_Meta) /* running status not allowed on meta events!! */ + { + u8 type = __getTrackByte(seq,track); + + if (type == AL_MIDI_META_TEMPO) + { + event->type = AL_TEMPO_EVT; + event->msg.tempo.status = status; + event->msg.tempo.type = type; + event->msg.tempo.byte1 = __getTrackByte(seq,track); + event->msg.tempo.byte2 = __getTrackByte(seq,track); + event->msg.tempo.byte3 = __getTrackByte(seq,track); + seq->lastStatus[track] = 0; /* lastStatus not supported after meta */ + } + else if (type == AL_MIDI_META_EOT) + { + u32 flagMask; + + flagMask = 0x01 << track; + seq->validTracks = seq->validTracks ^ flagMask; + + if(seq->validTracks) /* there is music left don't end */ + event->type = AL_TRACK_END; + else /* no more music send AL_SEQ_END_EVT msg */ + event->type = AL_SEQ_END_EVT; + } + else if (type == AL_CMIDI_LOOPSTART_CODE) + { + status = __getTrackByte(seq,track); /* get next two bytes, ignore them */ + status = __getTrackByte(seq,track); + seq->lastStatus[track] = 0; + event->type = AL_CSP_LOOPSTART; + } + else if (type == AL_CMIDI_LOOPEND_CODE) + { + tmpPtr = seq->curLoc[track]; + loopCt = *tmpPtr++; + curLpCt = *tmpPtr; + if(curLpCt == 0) /* done looping */ + { + *tmpPtr = loopCt; /* reset current loop count */ + seq->curLoc[track] = tmpPtr + 5; /* move pointer to end of event */ + } + else + { + if(curLpCt != 0xFF) /* not a loop forever */ + *tmpPtr = curLpCt - 1; /* decrement current loop count */ + tmpPtr++; /* get offset from end of event */ + offset = (*tmpPtr++) << 24; + offset += (*tmpPtr++) << 16; + offset += (*tmpPtr++) << 8; + offset += *tmpPtr++; + seq->curLoc[track] = tmpPtr - offset; + } + seq->lastStatus[track] = 0; + event->type = AL_CSP_LOOPEND; + } + +#ifdef _DEBUG + else + __osError(ERR_ALSEQMETA, 1, type); +#endif + + } + else + { + event->type = AL_SEQ_MIDI_EVT; + if (status & 0x80) /* if high bit is set, then new status */ + { + event->msg.midi.status = status; + event->msg.midi.byte1 = __getTrackByte(seq,track); + seq->lastStatus[track] = status; + } + else /* running status */ + { +#ifdef _DEBUG + if(seq->lastStatus[track] == 0) + __osError(ERR_ALCSEQZEROSTATUS, 1, track); +#endif + event->msg.midi.status = seq->lastStatus[track]; + event->msg.midi.byte1 = status; + } + + if (((event->msg.midi.status & 0xf0) != AL_MIDI_ProgramChange) && + ((event->msg.midi.status & 0xf0) != AL_MIDI_ChannelPressure)) + { + event->msg.midi.byte2 = __getTrackByte(seq,track); + if((event->msg.midi.status & 0xf0) == AL_MIDI_NoteOn) + { + event->msg.midi.duration = __readVarLen(seq,track); +#ifdef _DEBUG + if(event->msg.midi.byte2 == 0) + __osError( ERR_ALCSEQZEROVEL, 1, track); +#endif + } + } + else + event->msg.midi.byte2 = 0; + } + return TRUE; +} + +f32 alCSeqTicksToSec(ALCSeq *seq, s32 ticks, u32 tempo) +{ + return ((f32) (((f32)(ticks) * (f32)(tempo)) / + ((f32)(seq->base->division) * 1000000.0))); +} + +u32 alCSeqSecToTicks(ALCSeq *seq, f32 sec, u32 tempo) +{ + return (u32)(((sec * 1000000.0) * seq->base->division) / tempo); +} + + +s32 alCSeqGetTicks(ALCSeq *seq) +{ + return seq->lastTicks; +} + + +void alCSeqNewMarker(ALCSeq *seq, ALCSeqMarker *m, u32 ticks) +{ + ALEvent evt; + ALCSeq tempSeq; + s32 i; + + + alCSeqNew(&tempSeq, (u8*)seq->base); + + do { + m->validTracks = tempSeq.validTracks; + m->lastTicks = tempSeq.lastTicks; + m->lastDeltaTicks = tempSeq.lastDeltaTicks; + + for(i=0;i<16;i++) + { + m->curLoc[i] = tempSeq.curLoc[i]; + m->curBUPtr[i] = tempSeq.curBUPtr[i]; + m->curBULen[i] = tempSeq.curBULen[i]; + m->lastStatus[i] = tempSeq.lastStatus[i]; + m->evtDeltaTicks[i] = tempSeq.evtDeltaTicks[i]; + } + + alCSeqNextEvent(&tempSeq, &evt); + + if (evt.type == AL_SEQ_END_EVT) + break; + + } while (tempSeq.lastTicks < ticks); + +} + +void alCSeqSetLoc(ALCSeq *seq, ALCSeqMarker *m) +{ + s32 i; + + seq->validTracks = m->validTracks; + seq->lastTicks = m->lastTicks; + seq->lastDeltaTicks = m->lastDeltaTicks; + + for(i=0;i<16;i++) + { + seq->curLoc[i] = m->curLoc[i]; + seq->curBUPtr[i] = m->curBUPtr[i]; + seq->curBULen[i] = m->curBULen[i]; + seq->lastStatus[i] = m->lastStatus[i]; + seq->evtDeltaTicks[i] = m->evtDeltaTicks[i]; + } +} + +void alCSeqGetLoc(ALCSeq *seq, ALCSeqMarker *m) +{ + s32 i; + + m->validTracks = seq->validTracks; + m->lastTicks = seq->lastTicks; + m->lastDeltaTicks = seq->lastDeltaTicks; + + for(i=0;i<16;i++) + { + m->curLoc[i] = seq->curLoc[i]; + m->curBUPtr[i] = seq->curBUPtr[i]; + m->curBULen[i] = seq->curBULen[i]; + m->lastStatus[i] = seq->lastStatus[i]; + m->evtDeltaTicks[i] = seq->evtDeltaTicks[i]; + } +} + +/* non-aligned byte reading routines */ +static u8 __getTrackByte(ALCSeq *seq,u32 track) +{ + u8 theByte; + + + if(seq->curBULen[track]) + { + theByte = *seq->curBUPtr[track]; + seq->curBUPtr[track]++; + seq->curBULen[track]--; + } + else /* need to handle backup mode */ + { + theByte = *seq->curLoc[track]; + seq->curLoc[track]++; + if(theByte == AL_CMIDI_BLOCK_CODE) + { + u8 loBackUp,hiBackUp,theLen,nextByte; + u32 backup; + + nextByte = *seq->curLoc[track]; + seq->curLoc[track]++; + if(nextByte != AL_CMIDI_BLOCK_CODE) + { + /* if here, then got a backup section. get the amount of + backup, and the len of the section. Subtract the amount of + backup from the curLoc ptr, and subtract four more, since + curLoc has been advanced by four while reading the codes. */ + hiBackUp = nextByte; + loBackUp = *seq->curLoc[track]; + seq->curLoc[track]++; + theLen = *seq->curLoc[track]; + seq->curLoc[track]++; + backup = (u32)hiBackUp; + backup = backup << 8; + backup += loBackUp; + seq->curBUPtr[track] = seq->curLoc[track] - (backup + 4); + seq->curBULen[track] = (u32)theLen; + + /* now get the byte */ + theByte = *seq->curBUPtr[track]; + seq->curBUPtr[track]++; + seq->curBULen[track]--; + } + } + } + + return theByte; +} + +static u32 __readVarLen(ALCSeq *seq,u32 track) +{ + u32 value; + u32 c; + + value = (u32)__getTrackByte(seq,track); + if ( value & 0x00000080 ) + { + value &= 0x7f; + do + { + c = (u32)__getTrackByte(seq,track); + value = (value << 7) + (c & 0x7f); + } while (c & 0x80); + } + return (value); +} diff --git a/lib/src/al/cspplay.c b/lib/src/al/cspplay.c new file mode 100644 index 00000000..7dd0b0e4 --- /dev/null +++ b/lib/src/al/cspplay.c @@ -0,0 +1,37 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C85A0 */ + +/*==================================================================== + * cspplay.c + * + * Synopsis: + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alCSPPlay(ALCSPlayer *seqp) +{ + ALEvent evt; + + evt.type = AL_SEQP_PLAY_EVT; + + alEvtqPostEvent(&seqp->evtq, &evt, 0); +} diff --git a/lib/src/al/cspstop.c b/lib/src/al/cspstop.c new file mode 100644 index 00000000..ca0427fb --- /dev/null +++ b/lib/src/al/cspstop.c @@ -0,0 +1,36 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C85D0 */ + +/*==================================================================== + * cspstop.c + * + * Synopsis: + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alCSPStop(ALCSPlayer *seqp) +{ + ALEvent evt; + + evt.type = AL_SEQP_STOPPING_EVT; + alEvtqPostEvent(&seqp->evtq, &evt, 0); +} diff --git a/lib/src/al/env.c b/lib/src/al/env.c new file mode 100644 index 00000000..0079ce26 --- /dev/null +++ b/lib/src/al/env.c @@ -0,0 +1,517 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CA0D0 */ + +/*==================================================================== + * envmixer.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "thread0_epc.h" + +// TODO: these come from headers +#ident "$Revision: 1.17 $" + +#ifdef AUD_PROFILE +extern u32 cnt_index, env_num, env_cnt, env_max, env_min, lastCnt[]; +extern u32 rate_num, rate_cnt, rate_max, rate_min; +extern u32 vol_num, vol_cnt, vol_max, vol_min; +#endif + +#define EQPOWER_LENGTH 128 +static s16 eqpower[ EQPOWER_LENGTH ] = { + 32767, 32764, 32757, 32744, 32727, 32704, + 32677, 32644, 32607, 32564, 32517, 32464, + 32407, 32344, 32277, 32205, 32127, 32045, + 31958, 31866, 31770, 31668, 31561, 31450, + 31334, 31213, 31087, 30957, 30822, 30682, + 30537, 30388, 30234, 30075, 29912, 29744, + 29572, 29395, 29214, 29028, 28838, 28643, + 28444, 28241, 28033, 27821, 27605, 27385, + 27160, 26931, 26698, 26461, 26220, 25975, + 25726, 25473, 25216, 24956, 24691, 24423, + 24151, 23875, 23596, 23313, 23026, 22736, + 22442, 22145, 21845, 21541, 21234, 20924, + 20610, 20294, 19974, 19651, 19325, 18997, + 18665, 18331, 17993, 17653, 17310, 16965, + 16617, 16266, 15913, 15558, 15200, 14840, + 14477, 14113, 13746, 13377, 13006, 12633, + 12258, 11881, 11503, 11122, 10740, 10357, + 9971, 9584, 9196, 8806, 8415, 8023, + 7630, 7235, 6839, 6442, 6044, 5646, + 5246, 4845, 4444, 4042, 3640, 3237, + 2833, 2429, 2025, 1620, 1216, 810, + 405, 0 +}; + +extern f64 __pow(f64, f64); + +/* + * prototypes for private enveloper functions + */ +static Acmd *_pullSubFrame(void *filter, s16 *inp, s16 *outp, s32 outCount, + s32 sampleOffset, Acmd *p) ; +static s16 _getRate(f64 vol, f64 tgt, s32 count, u16* ratel); + +static f32 _getVol(f32 ivol, s32 samples, s16 ratem, u16 ratel); +extern u32 osVirtualToPhysical(void *); + +/*********************************************************************** + * Enveloper filter public interfaces + ***********************************************************************/ +Acmd *alEnvmixerPull(void *filter, UNUSED s16 *outp, s32 outCount, s32 sampleOffset, + Acmd *p) +{ + Acmd *ptr = p; + ALEnvMixer *e = (ALEnvMixer *)filter; + s16 inp; + s32 lastOffset; + s32 thisOffset = sampleOffset; + s32 samples; + s16 loutp = 0; + s32 fVol; + ALParam *thisParam; + +#ifdef AUD_PROFILE + lastCnt[++cnt_index] = osGetCount(); +#endif + + /* + * Force the input to be the resampler output + */ + inp = AL_RESAMPLER_OUT; + + while (e->ctrlList != 0) { + + lastOffset = thisOffset; + thisOffset = e->ctrlList->delta; + samples = thisOffset - lastOffset; + if (samples > outCount) + break; + +#ifdef _DEBUG + assert(samples >= 0); + assert(samples <= AL_MAX_RSP_SAMPLES); +#else + // Something must have gone wrong when compiling this file, and the asserts got left in. + // The function happens to currently live in the thread0 file for some reason. + if (samples >= 0) {} + else { thread0_Assert("samples >= 0", "env.c", 104); } + if (samples <= AL_MAX_RSP_SAMPLES) {} + else { thread0_Assert("samples <= AL_MAX_RSP_SAMPLES", "env.c", 105); } +#endif + + + switch (e->ctrlList->type) { + case (AL_FILTER_START_VOICE_ALT): + { + ALStartParamAlt *param = (ALStartParamAlt *)e->ctrlList; + ALFilter *f = (ALFilter *) e; + s32 tmp; + + if (param->unity) { + (*e->filter.setParam)(&e->filter, + AL_FILTER_SET_UNITY_PITCH, 0); + } + + (*e->filter.setParam)(&e->filter, AL_FILTER_SET_WAVETABLE, + param->wave); + (*e->filter.setParam)(&e->filter, AL_FILTER_START, 0); + + e->first = 1; + + e->delta = 0; + e->segEnd = param->samples; + + tmp = ((s32)param->volume + (s32)param->volume) / 2; //Diff + e->volume = (s16) tmp; + e->pan = param->pan; + e->dryamt = eqpower[param->fxMix]; + e->wetamt = eqpower[EQPOWER_LENGTH - param->fxMix - 1]; + + if (param->samples) { + e->cvolL = 1; + e->cvolR = 1; + } else { + /* + * Attack time is zero. Simply set the + * volume. We don't want an attack segment. + */ + e->cvolL = (e->volume * eqpower[e->pan]) >> 15; + e->cvolR = (e->volume * + eqpower[EQPOWER_LENGTH - e->pan - 1]) >> 15; + } + + if (f->source) { + union { + f32 f; + s32 i; + } data; + data.f = param->pitch; + (*f->source->setParam)(f->source, AL_FILTER_SET_PITCH, + (void *)data.i); + } + + } + + break; + + case (AL_FILTER_SET_FXAMT): + case (AL_FILTER_SET_PAN): + case (AL_FILTER_SET_VOLUME): + ptr = _pullSubFrame(e, &inp, &loutp, samples, sampleOffset, ptr); + e->delta += samples; //Diff + if (e->delta >= e->segEnd){ + /* + * We should have reached our target, calculate + * target in case e->segEnd was 0 + */ + e->ltgt = (e->volume * eqpower[e->pan]) >> 15; + e->rtgt = (e->volume * + eqpower[EQPOWER_LENGTH - e->pan - 1]) >> 15; + e->delta = e->segEnd; /* To prevent overflow */ + e->cvolL = e->ltgt; + e->cvolR = e->rtgt; + } else { + /* + * Estimate the current volume + */ + e->cvolL = _getVol(e->cvolL, e->delta, e->lratm, e->lratl); + e->cvolR = _getVol(e->cvolR, e->delta, e->rratm, e->rratl); + } + + /* + * We can't have volume of zero, because the envelope + * would never go anywhere from there + */ + if( e->cvolL == 0 ) e->cvolL = 1; + if( e->cvolR == 0 ) e->cvolR = 1; + + if (e->ctrlList->type == AL_FILTER_SET_PAN) + + /* + * This should result in a change to the current + * segment rate and target + */ + e->pan = (s16) e->ctrlList->data.i; + + if (e->ctrlList->type == AL_FILTER_SET_VOLUME){ + + /* + * Switching to a new segment + */ + e->delta = 0; + + /* + * Map volume non-linearly to give something close to + * loudness + */ + fVol = (e->ctrlList->data.i); + fVol = (fVol+fVol)/2; //Diff + e->volume = (s16) fVol; + + e->segEnd = e->ctrlList->moredata.i; + + } + + if (e->ctrlList->type == AL_FILTER_SET_FXAMT){ + e->dryamt = eqpower[e->ctrlList->data.i]; + e->wetamt = eqpower[EQPOWER_LENGTH - e->ctrlList->data.i - 1]; + } + + /* + * Force a volume update + */ + e->first = 1; + break; + + case (AL_FILTER_START_VOICE): + { + ALStartParam *p = (ALStartParam *)e->ctrlList; + + /* + * Changing to PLAYING (since the previous state was + * persumable STOPPED, we'll just bump the output + * pointer rather than pull a subframe of zeros). + */ + if (p->unity) { + (*e->filter.setParam)(&e->filter, + AL_FILTER_SET_UNITY_PITCH, 0); + } + + (*e->filter.setParam)(&e->filter, AL_FILTER_SET_WAVETABLE, + p->wave); + (*e->filter.setParam)(&e->filter, AL_FILTER_START, 0); + } + break; + + case (AL_FILTER_STOP_VOICE): + { + /* + * Changing to STOPPED and reset the filter + */ + ptr = _pullSubFrame(e, &inp, &loutp, samples, sampleOffset, ptr); + (*e->filter.setParam)(&e->filter, AL_FILTER_RESET, 0); + } + break; + + case (AL_FILTER_FREE_VOICE): + { + ALSynth *drvr = &alGlobals->drvr; + ALFreeParam *param = (ALFreeParam *)e->ctrlList; + param->pvoice->offset = 0; + __freePVoices(drvr, (PVoice *)param->pvoice); + } + break; + + default: + /* + * Pull the reuired number of samples and then pass the message + * on down the chain + */ + ptr = _pullSubFrame(e, &inp, &loutp, samples, sampleOffset, ptr); + e->delta += samples; //Diff + (*e->filter.setParam)(&e->filter, e->ctrlList->type, + (void *) e->ctrlList->data.i); + break; + } + loutp += (samples<<1); + outCount -= samples; + + /* + * put the param record back on the free list + */ + thisParam = e->ctrlList; + e->ctrlList = e->ctrlList->next; + if (e->ctrlList == 0) + e->ctrlTail = 0; + + __freeParam(thisParam); + + } + + //Diff + if (e->motion == 1) { + ptr = _pullSubFrame(e, &inp, &loutp, outCount, sampleOffset, ptr); + e->delta += outCount; //Diff + } + + /* + * Prevent overflow in e->delta + */ + + if (e->delta > e->segEnd) + e->delta = e->segEnd; + +#ifdef AUD_PROFILE + PROFILE_AUD(env_num, env_cnt, env_max, env_min); +#endif + return ptr; +} + +s32 +alEnvmixerParam(void *filter, s32 paramID, void *param) +{ + ALFilter *f = (ALFilter *) filter; + ALEnvMixer *e = (ALEnvMixer *) filter; + + switch (paramID) { + + case (AL_FILTER_ADD_UPDATE): + if (e->ctrlTail) { + e->ctrlTail->next = (ALParam *)param; + } else { + e->ctrlList = (ALParam *)param; + } + e->ctrlTail = (ALParam *)param; + + break; + + case (AL_FILTER_RESET): + e->first = 1; + e->motion = AL_STOPPED; + e->volume = 1; + if (f->source) + (*f->source->setParam)(f->source, AL_FILTER_RESET, param); + break; + + case (AL_FILTER_START): + e->motion = AL_PLAYING; + if (f->source) + (*f->source->setParam)(f->source, AL_FILTER_START, param); + break; + + case (AL_FILTER_SET_SOURCE): + f->source = (ALFilter *) param; + break; + + default: + if (f->source) + (*f->source->setParam)(f->source, paramID, param); + } + return 0; +} + +static +Acmd* _pullSubFrame(void *filter, s16 *inp, s16 *outp, s32 outCount, + s32 sampleOffset, Acmd *p) +{ + Acmd *ptr = p; + ALEnvMixer *e = (ALEnvMixer *)filter; + ALFilter *source= e->filter.source; + + /* filter must be playing and request non-zero output samples to pull. */ + if (!outCount) //Diff + return ptr; + + /* + * ask all filters upstream from us to build their command + * lists. + */ +#ifdef _DEBUG + assert(source); +#else + // Something must have gone wrong when compiling this file, and the asserts got left in. + // The function happens to currently live in the thread0 file for some reason. + if (source) {} + else { thread0_Assert("source", "env.c", 373); } +#endif + + ptr = (*source->handler)(source, inp, outCount, sampleOffset, p); + + /* + * construct our portion of the command list + */ + aSetBuffer(ptr++, A_MAIN, *inp, AL_MAIN_L_OUT + *outp, outCount<<1); + aSetBuffer(ptr++, A_AUX, AL_MAIN_R_OUT + *outp, AL_AUX_L_OUT + *outp, + AL_AUX_R_OUT + *outp); + + if (e->first){ + e->first = 0; + + /* + * Calculate derived parameters + */ + e->ltgt = (e->volume * eqpower[e->pan]) >> 15; + e->lratm = _getRate((f64)e->cvolL, (f64)e->ltgt, + e->segEnd, &(e->lratl)); + e->rtgt = (e->volume * + eqpower[EQPOWER_LENGTH - e->pan - 1]) >> 15; + e->rratm = _getRate((f64)e->cvolR, (f64)e->rtgt, e->segEnd, + &(e->rratl)); + + aSetVolume(ptr++, A_LEFT | A_VOL, e->cvolL, 0, 0); + aSetVolume(ptr++, A_RIGHT | A_VOL, e->cvolR, 0, 0); + aSetVolume(ptr++, A_LEFT | A_RATE, e->ltgt, e->lratm, e->lratl); + aSetVolume(ptr++, A_RIGHT | A_RATE, e->rtgt, e->rratm, e->rratl); + aSetVolume(ptr++, A_AUX, e->dryamt, 0, e->wetamt); + aEnvMixer (ptr++, A_INIT | A_AUX, osVirtualToPhysical(e->state)); + } + else + aEnvMixer(ptr++, A_CONTINUE | A_AUX, osVirtualToPhysical(e->state)); + + /* + * bump the input buffer pointer + */ + + *inp += (outCount<<1); + //e->delta += outCount; //Diff + + return ptr; +} + +#define EXP_MASK 0x7f800000 +#define MANT_MASK 0x807fffff + +f64 +_frexpf(f64 value, s32 *eptr) +{ + f64 absvalue; + + *eptr = 0; + if (value == 0.0) /* nothing to do for zero */ + return (value); + absvalue = (value > 0.0) ? value : -value; + for ( ; absvalue >= 1.0; absvalue *= 0.5) + ++*eptr; + for ( ; absvalue < 0.5; absvalue += absvalue) + --*eptr; + return (value > 0.0 ? absvalue : -absvalue); +} + +f64 +_ldexpf(f64 in, s32 ex) +{ + s32 exp; + + if ( ex ) { + exp = 1 << ex; + in *= (f64)exp; + } + + return ( in ); +} + +/* + _getRate() -- This function determines how to go from the + current volume level (vol) to the target + volume level (tgt) in some number of steps + (count). Two values are returned that are + used as multipliers to incrementally scale + the volume. Some tricky math is used and + is explained below. + RWW 28jun95 +*/ + +static +s16 _getRate(f64 vol, f64 tgt, s32 count, u16* ratel) +{ + s16 s; + f64 a; + + if (count == 0){ + if (tgt >= vol){ + *ratel = 0xffff; + return 0x7fff; + } + else{ + *ratel = 0; + return -0x8000; //Diff + } + } + + a = (tgt - vol) / (f32)count; + a *= 8; + if (a < 0.0) { + a -= 1.0; + } + s = (s16) a; + *ratel = (s16)((0xffff * (a - (f32) s))); + + return (s16)a; +} + +static +f32 _getVol(f32 ivol, s32 samples, s16 ratem, u16 ratel) { + f32 r; + r = ((ratem<<16) + (f32) ratel)/65536.0; + ivol += (r * samples) / 8.0; + return ivol; +} diff --git a/lib/src/al/event.c b/lib/src/al/event.c new file mode 100644 index 00000000..dcc6e230 --- /dev/null +++ b/lib/src/al/event.c @@ -0,0 +1,177 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9090 */ + +/*==================================================================== + * event.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "libultra_internal.h" + +void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, s32 itemCount) +{ + s32 i; + + evtq->eventCount = 0; + evtq->allocList.next = 0; + evtq->allocList.prev = 0; + evtq->freeList.next = 0; + evtq->freeList.prev = 0; + + for (i = 0; i < itemCount; i++) { + alLink((ALLink *)&items[i], &evtq->freeList); + } +} + +ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt) +{ + ALEventListItem *item; + ALMicroTime delta; + OSIntMask mask; + + mask = osSetIntMask(OS_IM_NONE); + + item = (ALEventListItem *)evtq->allocList.next; + + if (item) + { + alUnlink((ALLink *)item); + alCopy(&item->evt, evt, sizeof(*evt)); + alLink((ALLink *)item, &evtq->freeList); + delta = item->delta; + } + else + { + /* sct 11/28/95 - If we get here, most like we overflowed the event queue */ + /* with non-self-perpetuating events. Eg. if we filled the evtq with volume */ + /* events, then when the seqp is told to play it will handle all the events */ + /* at once completely emptying out the queue. At this point this problem */ + /* must be treated as an out of resource error and the evtq should be increased. */ + evt->type = -1; + delta = 0; + } + + osSetIntMask(mask); + + return delta; +} + +void alEvtqPostEvent(ALEventQueue *evtq, ALEvent *evt, ALMicroTime delta) +{ + ALEventListItem *item; + ALEventListItem *nextItem; + ALLink *node; + s32 postAtEnd=0; + OSIntMask mask; + + mask = osSetIntMask(OS_IM_NONE); + + item = (ALEventListItem *)evtq->freeList.next; + if (!item) { + osSetIntMask(mask); +#ifdef _DEBUG + __osError(ERR_ALEVENTNOFREE, 0); +#endif + return; + } + + alUnlink((ALLink *)item); + alCopy(evt, &item->evt, sizeof(*evt)); + + if (delta == AL_EVTQ_END) + postAtEnd = -1; + + for (node = &evtq->allocList; node != 0; node = node->next) { + if (!node->next) { /* end of the list */ + if (postAtEnd) + item->delta = 0; + else + item->delta = delta; + alLink((ALLink *)item, node); + break; + } else { + nextItem = (ALEventListItem *)node->next; + + if (delta < nextItem->delta) { + item->delta = delta; + nextItem->delta -= delta; + + alLink((ALLink *)item, node); + break; + } + + delta -= nextItem->delta; + + } + } + + osSetIntMask(mask); +} + +void alEvtqFlush(ALEventQueue *evtq) +{ + ALLink *thisNode; + ALLink *nextNode; + OSIntMask mask; + + mask = osSetIntMask(OS_IM_NONE); + + thisNode = evtq->allocList.next; + while( thisNode != 0 ) { + nextNode = thisNode->next; + alUnlink(thisNode); + alLink(thisNode, &evtq->freeList); + thisNode = nextNode; + } + + osSetIntMask(mask); +} + +/* + This routine flushes events according their type. +*/ +void alEvtqFlushType(ALEventQueue *evtq, s16 type) +{ + ALLink *thisNode; + ALLink *nextNode; + ALEventListItem *thisItem, *nextItem; + OSIntMask mask; + + mask = osSetIntMask(OS_IM_NONE); + + thisNode = evtq->allocList.next; + while( thisNode != 0 ) + { + nextNode = thisNode->next; + thisItem = (ALEventListItem *)thisNode; + nextItem = (ALEventListItem *)nextNode; + if (thisItem->evt.type == type) + { + if (nextItem) + nextItem->delta += thisItem->delta; + alUnlink(thisNode); + alLink(thisNode, &evtq->freeList); + } + thisNode = nextNode; + } + + osSetIntMask(mask); +} diff --git a/lib/src/al/filter.c b/lib/src/al/filter.c new file mode 100644 index 00000000..31037dae --- /dev/null +++ b/lib/src/al/filter.c @@ -0,0 +1,36 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CA0B0 */ + +/*==================================================================== + * filter.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +void alFilterNew(ALFilter *f, ALCmdHandler h, ALSetParam s, s32 type) +{ + f->source = 0; + f->handler = h; + f->setParam = s; + f->inp = 0; + f->outp = 0; + f->type = type; +} diff --git a/lib/src/al/global_asm/README.txt b/lib/src/al/global_asm/README.txt deleted file mode 100644 index 178962d5..00000000 --- a/lib/src/al/global_asm/README.txt +++ /dev/null @@ -1 +0,0 @@ -This folder contains source files that still have GLOBAL_ASM() in them. This is necessary because asm-processor currently does not yet support -O3. \ No newline at end of file diff --git a/lib/src/al/global_asm/alBnkfNew.c b/lib/src/al/global_asm/alBnkfNew.c deleted file mode 100644 index 8396dbf6..00000000 --- a/lib/src/al/global_asm/alBnkfNew.c +++ /dev/null @@ -1,12 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C75A0 */ - -#include "types.h" -#include "macros.h" - -void dummy_800C75A0(void) {} -void dummy_800C75A8(void) {} - -GLOBAL_ASM("lib/asm/non_matchings/alBnkfNew/_bnkfPatchBank.s") -GLOBAL_ASM("lib/asm/non_matchings/alBnkfNew/alBnkfNew.s") -GLOBAL_ASM("lib/asm/non_matchings/alBnkfNew/alSeqFileNew.s") diff --git a/lib/src/al/global_asm/alCSPGetState.c b/lib/src/al/global_asm/alCSPGetState.c deleted file mode 100644 index 1bd9afe7..00000000 --- a/lib/src/al/global_asm/alCSPGetState.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C7A50 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8650/alCSPGetState.s") diff --git a/lib/src/al/global_asm/alCSPGetTempo.c b/lib/src/al/global_asm/alCSPGetTempo.c deleted file mode 100644 index 0e11d205..00000000 --- a/lib/src/al/global_asm/alCSPGetTempo.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C7890 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8490/alCSPGetTempo.s") diff --git a/lib/src/al/global_asm/alCSPSetBank.c b/lib/src/al/global_asm/alCSPSetBank.c deleted file mode 100644 index fde9c60b..00000000 --- a/lib/src/al/global_asm/alCSPSetBank.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C7A60 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8660/alCSPSetBank.s") diff --git a/lib/src/al/global_asm/alCSPSetChlVol.c b/lib/src/al/global_asm/alCSPSetChlVol.c deleted file mode 100644 index 19202b31..00000000 --- a/lib/src/al/global_asm/alCSPSetChlVol.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C7940 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C8540/alCSPSetChlVol.s") diff --git a/lib/src/al/global_asm/alCSPSetSeq.c b/lib/src/al/global_asm/alCSPSetSeq.c deleted file mode 100644 index 9d5dcb69..00000000 --- a/lib/src/al/global_asm/alCSPSetSeq.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C8560 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9160/alCSPSetSeq.s") diff --git a/lib/src/al/global_asm/alSynDelete.c b/lib/src/al/global_asm/alSynDelete.c deleted file mode 100644 index 67877556..00000000 --- a/lib/src/al/global_asm/alSynDelete.c +++ /dev/null @@ -1,8 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D2C60 */ - -#include "types.h" -#include "macros.h" -#include "libultra_internal.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/alSynDelete.s") diff --git a/lib/src/al/global_asm/alSynSetFXMix.c b/lib/src/al/global_asm/alSynSetFXMix.c deleted file mode 100644 index e701caef..00000000 --- a/lib/src/al/global_asm/alSynSetFXMix.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9810 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA410/alSynSetFXMix.s") diff --git a/lib/src/al/global_asm/alSynSetPitch.c b/lib/src/al/global_asm/alSynSetPitch.c deleted file mode 100644 index 8cd8f15c..00000000 --- a/lib/src/al/global_asm/alSynSetPitch.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9780 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA380/alSynSetPitch.s") diff --git a/lib/src/al/global_asm/alSynSetPriority.c b/lib/src/al/global_asm/alSynSetPriority.c deleted file mode 100644 index daadab2a..00000000 --- a/lib/src/al/global_asm/alSynSetPriority.c +++ /dev/null @@ -1,23 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9AE0 */ - -#include "types.h" -#include "macros.h" - -/************ .rodata ************/ - -// Not sure where this belongs. -const u16 D_800E94D0[] = { - 0x0555, 0x0556, 0x0559, 0x055A, 0x0565, 0x0566, 0x0569, 0x056A, - 0x0595, 0x0596, 0x0599, 0x059A, 0x05A5, 0x05A6, 0x05A9, 0x05AA, - 0x0655, 0x0656, 0x0659, 0x065A, 0x0665, 0x0666, 0x0669, 0x066A, - 0x0695, 0x0696, 0x0699, 0x069A, 0x06A5, 0x06A6, 0x06A9, 0x06AA, - 0x0955, 0x0956, 0x0959, 0x095A, 0x0965, 0x0966, 0x0969, 0x096A, - 0x0995, 0x0996, 0x0999, 0x099A, 0x09A5, 0x09A6, 0x09A9, 0x09AA, - 0x0A55, 0x0A56, 0x0A59, 0x0A5A, 0x0A65, 0x0A66, 0x0A69, 0x0A6A, - 0x0A95, 0x0A96, 0x0A99, 0x0A9A, 0x0AA5, 0x0AA6, 0x0AA9, 0x0AAA -}; - -/*********************************/ - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA6E0/alSynSetPriority.s") diff --git a/lib/src/al/global_asm/alSynSetVol.c b/lib/src/al/global_asm/alSynSetVol.c deleted file mode 100644 index be109428..00000000 --- a/lib/src/al/global_asm/alSynSetVol.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9650 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA250/alSynSetVol.s") diff --git a/lib/src/al/global_asm/alSynStartVoice.c b/lib/src/al/global_asm/alSynStartVoice.c deleted file mode 100644 index e8d66ee3..00000000 --- a/lib/src/al/global_asm/alSynStartVoice.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C96F0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA2F0/alSynStartVoice.s") diff --git a/lib/src/al/global_asm/alSynStopVoice.c b/lib/src/al/global_asm/alSynStopVoice.c deleted file mode 100644 index 021db36d..00000000 --- a/lib/src/al/global_asm/alSynStopVoice.c +++ /dev/null @@ -1,7 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C98B0 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA4B0/alSynStopVoice.s") diff --git a/lib/src/al/global_asm/unknown_0C86A0.c b/lib/src/al/global_asm/unknown_0C86A0.c deleted file mode 100644 index bab28d9d..00000000 --- a/lib/src/al/global_asm/unknown_0C86A0.c +++ /dev/null @@ -1,23 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C7AA0 */ - -#include "types.h" -#include "macros.h" -#include "audio_internal.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqSetLoc.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqGetLoc.s") - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/__getTrackByte.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/__readVarLen.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/__alCSeqGetTrackEvent.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqNew.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqNewMarker.s") - -s32 alCSeqGetTicks(ALCSeq *seq) { - return seq->lastTicks; -} - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqSecToTicks.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/alCSeqTicksToSec.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C86A0/__alCSeqNextDelta.s") diff --git a/lib/src/al/global_asm/unknown_0C91A0.c b/lib/src/al/global_asm/unknown_0C91A0.c deleted file mode 100644 index bfc31898..00000000 --- a/lib/src/al/global_asm/unknown_0C91A0.c +++ /dev/null @@ -1,11 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C85A0 */ - -#include "libultra_internal.h" -#include "types.h" -#include "macros.h" - -ALGlobals *alGlobals = NULL; - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alCSPPlay.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alCSPStop.s") diff --git a/lib/src/al/global_asm/unknown_0C91A0_2.c b/lib/src/al/global_asm/unknown_0C91A0_2.c deleted file mode 100644 index 12588627..00000000 --- a/lib/src/al/global_asm/unknown_0C91A0_2.c +++ /dev/null @@ -1,10 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C8760 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alUnlink.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alLink.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alClose.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C91A0/alInit.s") diff --git a/lib/src/al/global_asm/unknown_0C9C90.c b/lib/src/al/global_asm/unknown_0C9C90.c deleted file mode 100644 index dcbedd39..00000000 --- a/lib/src/al/global_asm/unknown_0C9C90.c +++ /dev/null @@ -1,275 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9090 */ - -#include "types.h" -#include "macros.h" -#include "audio_internal.h" -#include "libultra_internal.h" - -void alEvtqFlushType(ALEventQueue *evtq, s16 type) -{ - ALLink *thisNode; - ALLink *nextNode; - ALEventListItem *thisItem, *nextItem; - OSIntMask mask; - - mask = osSetIntMask(OS_IM_NONE); - - thisNode = evtq->allocList.next; - while( thisNode != 0 ) - { - nextNode = thisNode->next; - thisItem = (ALEventListItem *)thisNode; - nextItem = (ALEventListItem *)nextNode; - if (thisItem->evt.type == type) - { - if (nextItem) - nextItem->delta += thisItem->delta; - alUnlink(thisNode); - alLink(thisNode, &evtq->freeList); - } - thisNode = nextNode; - } - - osSetIntMask(mask); -} - -void alEvtqFlush(ALEventQueue *evtq) -{ - ALLink *thisNode; - ALLink *nextNode; - OSIntMask mask; - - mask = osSetIntMask(OS_IM_NONE); - - thisNode = evtq->allocList.next; - while( thisNode != 0 ) { - nextNode = thisNode->next; - alUnlink(thisNode); - alLink(thisNode, &evtq->freeList); - thisNode = nextNode; - } - - osSetIntMask(mask); -} - -#ifdef NON_EQUIVALENT -void alEvtqPostEvent(ALEventQueue *evtq, ALEvent *evt, ALMicroTime delta) -{ - ALEventListItem *item; - ALEventListItem *nextItem; - ALLink *node; - s32 postAtEnd=0; - OSIntMask mask; - - mask = osSetIntMask(OS_IM_NONE); - - item = (ALEventListItem *)evtq->freeList.next; - if (!item) { - osSetIntMask(mask); -#ifdef _DEBUG - __osError(ERR_ALEVENTNOFREE, 0); -#endif - return; - } - - alUnlink((ALLink *)item); - alCopy(evt, &item->evt, sizeof(*evt)); - - if (delta == AL_EVTQ_END) - postAtEnd = -1; - - for (node = &evtq->allocList; node != 0; node = node->next) { - if (!node->next) { /* end of the list */ - if (postAtEnd) - item->delta = 0; - else - item->delta = delta; - alLink((ALLink *)item, node); - break; - } else { - nextItem = (ALEventListItem *)node->next; - - if (delta < nextItem->delta) { - item->delta = delta; - nextItem->delta -= delta; - - alLink((ALLink *)item, node); - break; - } - - delta -= nextItem->delta; - - } - } - - osSetIntMask(mask); - -} -#else -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9C90/alEvtqPostEvent.s") -#endif - -ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt) { - ALEventListItem *item; - ALMicroTime delta; - OSIntMask mask; - - mask = osSetIntMask(OS_IM_NONE); - - item = (ALEventListItem *)evtq->allocList.next; - - if (item) { - alUnlink((ALLink *)item); - alCopy(&item->evt, evt, sizeof(*evt)); - alLink((ALLink *)item, &evtq->freeList); - delta = item->delta; - } else { - /* sct 11/28/95 - If we get here, most like we overflowed the event queue */ - /* with non-self-perpetuating events. Eg. if we filled the evtq with volume */ - /* events, then when the seqp is told to play it will handle all the events */ - /* at once completely emptying out the queue. At this point this problem */ - /* must be treated as an out of resource error and the evtq should be increased. */ - evt->type = -1; - delta = 0; - } - - osSetIntMask(mask); - - return delta; -} - - -void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, s32 itemCount) { - s32 i; - - evtq->eventCount = 0; - evtq->allocList.next = 0; - evtq->allocList.prev = 0; - evtq->freeList.next = 0; - evtq->freeList.prev = 0; - - for (i = 0; i < itemCount; i++) { - alLink((ALLink *)&items[i], &evtq->freeList); - } -} - -void alSynAddPlayer(ALSynth *drvr, ALPlayer *client) { - OSIntMask mask = osSetIntMask(OS_IM_NONE); - - client->samplesLeft = drvr->curSamples; - client->next = drvr->head; - drvr->head = client; - - osSetIntMask(mask); -} - -#ifdef NON_EQUIVALENT -s32 _allocatePVoice(ALSynth *drvr, PVoice **pvoice, s16 priority) -{ - ALLink *dl; - PVoice *pv; - s32 stolen = 0; - - if ((dl = drvr->pLameList.next) != 0) { /* check the lame list first */ - *pvoice = (PVoice *) dl; - alUnlink(dl); - alLink(dl, &drvr->pAllocList); - } else if ((dl = drvr->pFreeList.next) != 0) { /* from the free list */ - *pvoice = (PVoice *) dl; - alUnlink(dl); - alLink(dl, &drvr->pAllocList); - } else { /* steal one */ - for (dl = drvr->pAllocList.next; dl != 0; dl = dl->next) { - pv = (PVoice *)dl; - - /* - * if it is lower priority and not already stolen, keep it - * as a candidate for stealing - */ - if ((pv->vvoice->priority <= priority) && (pv->offset == 0)) { - *pvoice = pv; - priority = pv->vvoice->priority; - stolen = 1; - } - } - } - - return stolen; -} -#else -GLOBAL_ASM("lib/asm/non_matchings/unknown_0C9C90/_allocatePVoice.s") -#endif - -ALParam *__allocParam(void); -s32 alSynAllocVoice(ALSynth *drvr, ALVoice *voice, ALVoiceConfig *vc) { - PVoice *pvoice = 0; - ALFilter *f; - ALParam *update; - s32 stolen; - -#ifdef _DEBUG - /* need two updates if voice is stolen */ - if (drvr->paramList == 0) { - __osError(ERR_ALSYN_NO_UPDATE, 0); - return 0; - } else if (drvr->paramList->next == 0) { - __osError(ERR_ALSYN_NO_UPDATE, 0); - return 0; - } -#endif - - voice->priority = vc->priority; - voice->unityPitch = vc->unityPitch; - voice->table = 0; - voice->fxBus = vc->fxBus; - voice->state = AL_STOPPED; - voice->pvoice = 0; - - stolen = _allocatePVoice(drvr, &pvoice, vc->priority); - - if (pvoice) { /* if we were able to allocate a voice */ - - f = pvoice->channelKnob; - - if (stolen) { - - pvoice->offset = 512; - pvoice->vvoice->pvoice = 0; /* zero stolen voice */ - - /* - * ramp down stolen voice - */ - update = __allocParam(); - update->delta = drvr->paramSamples; - update->type = AL_FILTER_SET_VOLUME; - update->data.i = 0; - update->moredata.i = pvoice->offset - 64; - (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); - - /* - * stop stolen voice - */ - update = __allocParam(); - if (update) { - update->delta = drvr->paramSamples + pvoice->offset; - update->type = AL_FILTER_STOP_VOICE; - update->next = 0; - (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); - } else { -#ifdef _DEBUG - __osError(ERR_ALSYN_NO_UPDATE, 0); -#endif - } - - } else { - pvoice->offset = 0; - } - - pvoice->vvoice = voice; /* assign new voice */ - voice->pvoice = pvoice; - - } - - return (pvoice != 0); -} diff --git a/lib/src/al/global_asm/unknown_0CA530.c b/lib/src/al/global_asm/unknown_0CA530.c deleted file mode 100644 index 967c2c76..00000000 --- a/lib/src/al/global_asm/unknown_0CA530.c +++ /dev/null @@ -1,8 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800C9930 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/alSynFreeVoice.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA530/alCents2Ratio.s") diff --git a/lib/src/al/global_asm/unknown_0CA9A0.c b/lib/src/al/global_asm/unknown_0CA9A0.c deleted file mode 100644 index 2a1fc0d6..00000000 --- a/lib/src/al/global_asm/unknown_0CA9A0.c +++ /dev/null @@ -1,48 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CA0B0 */ - -#include "types.h" -#include "macros.h" - -#define EQPOWER_LENGTH 128 -s16 eqpower[ EQPOWER_LENGTH ] = { - 32767, 32764, 32757, 32744, 32727, 32704, - 32677, 32644, 32607, 32564, 32517, 32464, - 32407, 32344, 32277, 32205, 32127, 32045, - 31958, 31866, 31770, 31668, 31561, 31450, - 31334, 31213, 31087, 30957, 30822, 30682, - 30537, 30388, 30234, 30075, 29912, 29744, - 29572, 29395, 29214, 29028, 28838, 28643, - 28444, 28241, 28033, 27821, 27605, 27385, - 27160, 26931, 26698, 26461, 26220, 25975, - 25726, 25473, 25216, 24956, 24691, 24423, - 24151, 23875, 23596, 23313, 23026, 22736, - 22442, 22145, 21845, 21541, 21234, 20924, - 20610, 20294, 19974, 19651, 19325, 18997, - 18665, 18331, 17993, 17653, 17310, 16965, - 16617, 16266, 15913, 15558, 15200, 14840, - 14477, 14113, 13746, 13377, 13006, 12633, - 12258, 11881, 11503, 11122, 10740, 10357, - 9971, 9584, 9196, 8806, 8415, 8023, - 7630, 7235, 6839, 6442, 6044, 5646, - 5246, 4845, 4444, 4042, 3640, 3237, - 2833, 2429, 2025, 1620, 1216, 810, - 405, 0 -}; - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alFilterNew.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alEnvMixerPull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alEnvmixerParam.s") -//Called by alEnvMixerPull -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CAC5C.s") -//Called by func_800CAC5C -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CB2D4.s") -//_getVol? -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CB498.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alLoadParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alRaw16Pull.s") -//Called by alAdpcmPull. _decodeChunk? -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/func_800CBAC0.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alAdpcmPull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alResampleParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA9A0/alResamplePull.s") diff --git a/lib/src/al/global_asm/unknown_0CCF90.c b/lib/src/al/global_asm/unknown_0CCF90.c deleted file mode 100644 index aa773f38..00000000 --- a/lib/src/al/global_asm/unknown_0CCF90.c +++ /dev/null @@ -1,11 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800CC390 */ - -#include "types.h" -#include "macros.h" -#include "ultra64.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alMainBusParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alMainBusPull.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alSaveParam.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CCF90/alSavePull.s") diff --git a/lib/src/al/load.c b/lib/src/al/load.c new file mode 100644 index 00000000..479760a0 --- /dev/null +++ b/lib/src/al/load.c @@ -0,0 +1,472 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CB540 */ + +/*==================================================================== + * load.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "PR/R4300.h" + +#ifndef MIN +# define MIN(a,b) (((a)<(b))?(a):(b)) +#endif + +#ifdef AUD_PROFILE +extern u32 cnt_index, adpcm_num, adpcm_cnt, adpcm_max, adpcm_min, lastCnt[]; +#endif + +#define ADPCMFBYTES 9 +#define LFSAMPLES 4 + +static +Acmd *_decodeChunk(Acmd *ptr, ALLoadFilter *f, s32 tsam, s32 nbytes, s16 outp, s16 inp, u32 flags); + +Acmd *alAdpcmPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p) +{ + Acmd *ptr = p; + s16 inp; + s32 tsam; + s32 nframes; + s32 nbytes; + s32 overFlow; + s32 startZero; + s32 nOver; + s32 nSam; + s32 op; + s32 nLeft; + s32 bEnd; + s32 decoded = 0; + s32 looped = 0; + + ALLoadFilter *f = (ALLoadFilter *)filter; + +#ifdef AUD_PROFILE + lastCnt[++cnt_index] = osGetCount(); +#endif + + if (outCount == 0) + return ptr; + + inp = AL_DECODER_IN; + aLoadADPCM(ptr++, f->bookSize, + K0_TO_PHYS(f->table->waveInfo.adpcmWave.book->book)); + + looped = (outCount + f->sample > f->loop.end) && (f->loop.count != 0); + if (looped) + nSam = f->loop.end - f->sample; + else + nSam = outCount; + + if (f->lastsam) + nLeft = ADPCMFSIZE - f->lastsam; + else + nLeft = 0; + tsam = nSam - nLeft; + if (tsam<0) tsam = 0; + + nframes = (tsam+ADPCMFSIZE-1)>>LFSAMPLES; + nbytes = nframes*ADPCMFBYTES; + + if (looped){ + + ptr = _decodeChunk(ptr, f, tsam, nbytes, *outp, inp, f->first); + + /* + * Fix up output pointer, which will be used as the input pointer + * by the following module. + */ + if (f->lastsam) + *outp += (f->lastsam<<1); + else + *outp += (ADPCMFSIZE<<1); + + /* + * Now fix up state info to reflect the loop start point + */ + f->lastsam = f->loop.start &0xf; + f->memin = (s32) f->table->base + ADPCMFBYTES * + ((s32) (f->loop.start>>LFSAMPLES) + 1); + f->sample = f->loop.start; + + bEnd = *outp; + while (outCount > nSam){ + + outCount -= nSam; + + /* + * Put next one after the end of the last lot - on the + * frame boundary (32 byte) after the end. + */ + op = (bEnd + ((nframes+1)<<(LFSAMPLES+1))) & ~0x1f; + + /* + * The actual end of data + */ + bEnd += (nSam<<1); + + /* + * -1 is loop forever - the loop count is not exact now + * for small loops! + */ + if ((f->loop.count != -1) && (f->loop.count != 0)) + f->loop.count--; + + /* + * What's left to compute. + */ + nSam = MIN(outCount, f->loop.end - f->loop.start); + tsam = nSam - ADPCMFSIZE + f->lastsam; + if (tsam<0) tsam = 0; + nframes = (tsam+ADPCMFSIZE-1)>>LFSAMPLES; + nbytes = nframes*ADPCMFBYTES; + ptr = _decodeChunk(ptr, f, tsam, nbytes, op, inp, f->first | A_LOOP); + /* + * Merge the two sections in DMEM. + */ + aDMEMMove(ptr++, op+(f->lastsam<<1), bEnd, nSam<<1); + + } + + f->lastsam = (outCount + f->lastsam) & 0xf; + f->sample += outCount; + f->memin += ADPCMFBYTES*nframes; +#ifdef AUD_PROFILE + PROFILE_AUD(adpcm_num, adpcm_cnt, adpcm_max, adpcm_min); +#endif + return ptr; + } + + /* + * The unlooped case, which is executed most of the time + */ + + nSam = nframes<memin + nbytes - ((s32) f->table->base + f->table->len); + if (overFlow < 0) + overFlow = 0; + nOver = (overFlow/ADPCMFBYTES)< nSam + nLeft) + nOver = nSam + nLeft; + + nbytes -= overFlow; + + if ((nOver - (nOver & 0xf))< outCount){ + decoded = 1; + ptr = _decodeChunk(ptr, f, nSam - nOver, nbytes, *outp, inp, f->first); + + if (f->lastsam) + *outp += (f->lastsam<<1); + else + *outp += (ADPCMFSIZE<<1); + + f->lastsam = (outCount + f->lastsam) & 0xf; + f->sample += outCount; + f->memin += ADPCMFBYTES*nframes; + } else { + f->lastsam = 0; + f->memin += ADPCMFBYTES*nframes; + } + + /* + * Put zeros in if necessary + */ + if (nOver){ + f->lastsam = 0; + if (decoded) + startZero = (nLeft + nSam - nOver)<<1; + else + startZero = 0; + aClearBuffer(ptr++, startZero + *outp, nOver<<1); + } +#ifdef AUD_PROFILE + PROFILE_AUD(adpcm_num, adpcm_cnt, adpcm_max, adpcm_min); +#endif + + return ptr; +} + +Acmd *alRaw16Pull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p) +{ + Acmd *ptr = p; + s32 nbytes; + s32 dramLoc; + s32 dramAlign; + s32 dmemAlign; + s32 overFlow; + s32 startZero; + s32 nSam; + s32 op; + + ALLoadFilter *f = (ALLoadFilter *)filter; + ALFilter *a = (ALFilter *) filter; + + if (outCount == 0) + return ptr; + + if ((outCount + f->sample > f->loop.end) && (f->loop.count != 0)){ + + nSam = f->loop.end - f->sample; + nbytes = nSam<<1; + if (nSam > 0){ + dramLoc = (f->dma)(f->memin, nbytes, f->dmaState); + + /* + * Make sure enough is loaded into DMEM to take care + * of 8 byte alignment + */ + dramAlign = dramLoc & 0x7; + nbytes += dramAlign; + aSetBuffer(ptr++, 0, *outp, 0, nbytes + 8 - (nbytes & 0x7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + } else + dramAlign = 0; + + /* + * Fix up output pointer to allow for dram alignment + */ + *outp += dramAlign; + + f->memin = (s32) f->table->base + (f->loop.start<<1); + f->sample = f->loop.start; + op = *outp; + + while (outCount > nSam){ + + op += (nSam<<1); + outCount -= nSam; + /* + * -1 is loop forever + */ + if ((f->loop.count != -1) && (f->loop.count != 0)) + f->loop.count--; + + /* + * What to compute. + */ + nSam = MIN(outCount, f->loop.end - f->loop.start); + nbytes = nSam<<1; + + /* + * Do the next section, same as last. + */ + dramLoc = (f->dma)(f->memin, nbytes, f->dmaState); + + /* + * Make sure enough is loaded into DMEM to take care + * of 8 byte alignment + */ + dramAlign = dramLoc & 0x7; + nbytes += dramAlign; + if (op & 0x7) + dmemAlign = 8 - (op & 0x7); + else + dmemAlign = 0; + + aSetBuffer(ptr++, 0, op + dmemAlign, 0, nbytes + 8 - (nbytes & 0x7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + + /* + * Merge the two sections in DMEM. + */ + if (dramAlign || dmemAlign) + aDMEMMove(ptr++, op+dramAlign+dmemAlign, op, nSam<<1); + + } + + f->sample += outCount; + f->memin += (outCount<<1); + + return ptr; + } + + /* + * The unlooped case, which is executed most of the time + * + * overFlow is the number of bytes past the end + * of the bitstream I try to generate + */ + + nbytes = outCount<<1; + overFlow = f->memin + nbytes - ((s32) f->table->base + f->table->len); + if (overFlow < 0) + overFlow = 0; + if (overFlow > nbytes) + overFlow = nbytes; + + if (overFlow < nbytes){ + if (outCount > 0){ + nbytes -= overFlow; + dramLoc = (f->dma)(f->memin, nbytes, f->dmaState); + + /* + * Make sure enough is loaded into DMEM to take care + * of 8 byte alignment + */ + dramAlign = dramLoc & 0x7; + nbytes += dramAlign; + aSetBuffer(ptr++, 0, *outp, 0, nbytes + 8 - (nbytes & 0x7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + } else + dramAlign = 0; + *outp += dramAlign; + + f->sample += outCount; + f->memin += outCount<<1; + } else { + f->memin += outCount<<1; + } + + /* + * Put zeros in if necessary + */ + if (overFlow){ + startZero = (outCount<<1) - overFlow; + if (startZero < 0) + startZero = 0; + aClearBuffer(ptr++, startZero + *outp, overFlow); + } + return ptr; +} + + +s32 +alLoadParam(void *filter, s32 paramID, void *param) +{ + ALLoadFilter *a = (ALLoadFilter *) filter; + ALFilter *f = (ALFilter *) filter; + + switch (paramID) { + case (AL_FILTER_SET_WAVETABLE): + a->table = (ALWaveTable *) param; + a->memin = (s32) a->table->base; + a->sample = 0; + switch (a->table->type){ + case (AL_ADPCM_WAVE): + + /* + * Set up the correct handler + */ + f->handler = alAdpcmPull; + + /* + * Make sure the table length is an integer number of + * frames + */ + a->table->len = ADPCMFBYTES * + ((s32) (a->table->len/ADPCMFBYTES)); + + a->bookSize = 2*a->table->waveInfo.adpcmWave.book->order* + a->table->waveInfo.adpcmWave.book->npredictors*ADPCMVSIZE; + if (a->table->waveInfo.adpcmWave.loop) { + a->loop.start = a->table->waveInfo.adpcmWave.loop->start; + a->loop.end = a->table->waveInfo.adpcmWave.loop->end; + a->loop.count = a->table->waveInfo.adpcmWave.loop->count; + alCopy(a->table->waveInfo.adpcmWave.loop->state, + a->lstate, sizeof(ADPCM_STATE)); + } else { + a->loop.start = a->loop.end = a->loop.count = 0; + } + break; + + case (AL_RAW16_WAVE): + f->handler = alRaw16Pull; + if (a->table->waveInfo.rawWave.loop) { + a->loop.start = a->table->waveInfo.rawWave.loop->start; + a->loop.end = a->table->waveInfo.rawWave.loop->end; + a->loop.count = a->table->waveInfo.rawWave.loop->count; + } else { + a->loop.start = a->loop.end = a->loop.count = 0; + } + break; + + default: + break; + + } + break; + + case (AL_FILTER_RESET): + a->lastsam = 0; + a->first = 1; + a->sample = 0; + + /* sct 2/14/96 - Check table since it is initialized to null and */ + /* Get loop info according to table type. */ + if (a->table) + { + a->memin = (s32) a->table->base; + if (a->table->type == AL_ADPCM_WAVE) + { + if (a->table->waveInfo.adpcmWave.loop) + a->loop.count = a->table->waveInfo.adpcmWave.loop->count; + } + else if (a->table->type == AL_RAW16_WAVE) + { + if (a->table->waveInfo.rawWave.loop) + a->loop.count = a->table->waveInfo.rawWave.loop->count; + } + } + + break; + + default: + break; + } +} + +static +Acmd *_decodeChunk(Acmd *ptr, ALLoadFilter *f, s32 tsam, s32 nbytes, s16 outp, s16 inp, u32 flags) + +{ + + s32 + dramAlign, + dramLoc; + + if (nbytes > 0){ + dramLoc = (f->dma)(f->memin, nbytes, f->dmaState); + /* + * Make sure enough is loaded into DMEM to take care + * of 8 byte alignment + */ + dramAlign = dramLoc & 0x7; + nbytes += dramAlign; + aSetBuffer(ptr++, 0, inp, 0, nbytes + 8 - (nbytes & 0x7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + } else + dramAlign = 0; + + if (flags & A_LOOP){ + aSetLoop(ptr++, K0_TO_PHYS(f->lstate)); + } + + aSetBuffer(ptr++, 0, inp + dramAlign, outp, tsam<<1); + aADPCMdec(ptr++, flags, K0_TO_PHYS(f->state)); + f->first = 0; + + return ptr; +} diff --git a/lib/src/al/mainbus.c b/lib/src/al/mainbus.c new file mode 100644 index 00000000..5f1672e5 --- /dev/null +++ b/lib/src/al/mainbus.c @@ -0,0 +1,70 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC390 */ + +/*==================================================================== + * mainbus.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +Acmd *alMainBusPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p) +{ + Acmd *ptr = p; + ALMainBus *m = (ALMainBus *)filter; + ALFilter **sources = m->sources; + s32 i; + + /* + * clear the output buffers here + */ + aClearBuffer(ptr++, AL_MAIN_L_OUT, outCount<<1); + aClearBuffer(ptr++, AL_MAIN_R_OUT, outCount<<1); + + for (i = 0; i < m->sourceCount; i++) { + ptr = (sources[i]->handler)(sources[i], outp, outCount, sampleOffset, + ptr); + aSetBuffer(ptr++, 0, 0, 0, outCount<<1); + aMix(ptr++, 0, 0x7fff, AL_AUX_L_OUT, AL_MAIN_L_OUT); + aMix(ptr++, 0, 0x7fff, AL_AUX_R_OUT, AL_MAIN_R_OUT); + } + + return ptr; +} + +s32 alMainBusParam(void *filter, s32 paramID, void *param) +{ + ALMainBus *m = (ALMainBus *) filter; + ALFilter **sources = m->sources; + + switch (paramID) { + + case (AL_FILTER_ADD_SOURCE): + sources[m->sourceCount++] = (ALFilter *) param; + break; + + default: + /* ??? */ + break; + } + + return 0; + +} diff --git a/lib/src/al/resample.c b/lib/src/al/resample.c new file mode 100644 index 00000000..2ecf046a --- /dev/null +++ b/lib/src/al/resample.c @@ -0,0 +1,152 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC090 */ + +/*==================================================================== + * resample.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +// TODO: this comes from a header +#ident "$Revision: 1.49 $" + +#ifdef AUD_PROFILE +extern u32 cnt_index, resampler_num, resampler_cnt, resampler_max, resampler_min, lastCnt[]; +#endif + +/*********************************************************************** + * Resampler filter public interfaces + ***********************************************************************/ +Acmd *alResamplePull(void *filter, s16 *outp, s32 outCnt, s32 sampleOffset, Acmd *p) +{ + ALResampler *f = (ALResampler *)filter; + Acmd *ptr = p; + s16 inp; + s32 inCount; + ALFilter *source = f->filter.source; + s32 incr; + f32 finCount; + +#ifdef AUD_PROFILE + lastCnt[++cnt_index] = osGetCount(); +#endif + + inp = AL_DECODER_OUT; + + if (!outCnt) + return ptr; + + /* + * check if resampler is required + */ + if (f->upitch) { + + ptr = (*source->handler)(source, &inp, outCnt, sampleOffset, p); + aDMEMMove(ptr++, inp, *outp, outCnt<<1); + + } else { + + /* + * clip to maximum allowable pitch + * FIXME: should we check for some minimum as well? + */ + if (f->ratio > MAX_RATIO) f->ratio = MAX_RATIO; + + /* + * quantize the pitch + */ + f->ratio = (s32)(f->ratio * UNITY_PITCH); + f->ratio = f->ratio / UNITY_PITCH; + + /* + * determine how many samples to generate + */ + finCount = f->delta + (f->ratio * (f32) outCnt); + inCount = (s32) finCount; + f->delta = finCount - (f32)inCount; + + /* + * ask all filters upstream from us to build their command + * lists. + */ + ptr = (*source->handler)(source, &inp, inCount, sampleOffset, p); + + /* + * construct our portion of the command list + */ + incr = (s32)(f->ratio * UNITY_PITCH); + aSetBuffer(ptr++, 0, inp, *outp, outCnt<<1); + aResample(ptr++, f->first, incr, osVirtualToPhysical(f->state)); + f->first = 0; + } + +#ifdef AUD_PROFILE + PROFILE_AUD(resampler_num, resampler_cnt, resampler_max, resampler_min); +#endif + return ptr; +} + +s32 alResampleParam(void *filter, s32 paramID, void *param) +{ + ALFilter *f = (ALFilter *) filter; + ALResampler *r = (ALResampler *) filter; + union { + f32 f; + s32 i; + } data; + + switch (paramID) { + + case (AL_FILTER_SET_SOURCE): + f->source = (ALFilter *) param; + break; + + case (AL_FILTER_RESET): + r->delta = 0.0; + r->first = 1; + r->motion = AL_STOPPED; + r->upitch = 0; + if (f->source) + (*f->source->setParam)(f->source, AL_FILTER_RESET, 0); + break; + + case (AL_FILTER_START): + r->motion = AL_PLAYING; + if (f->source) + (*f->source->setParam)(f->source, AL_FILTER_START, 0); + break; + + case (AL_FILTER_SET_PITCH): + data.i = (s32) param; + r->ratio = data.f; + break; + + case (AL_FILTER_SET_UNITY_PITCH): + r->upitch = 1; + break; + + default: + if (f->source) + (*f->source->setParam)(f->source, paramID, param); + break; + } + return 0; +} diff --git a/lib/src/al/save.c b/lib/src/al/save.c new file mode 100644 index 00000000..878b736b --- /dev/null +++ b/lib/src/al/save.c @@ -0,0 +1,71 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800CC4E0 */ +/*==================================================================== + * save.c + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" + +// TODO: this comes from a header +#ident "$Revision: 1.17 $" + +Acmd *alSavePull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, + Acmd *p) + +{ + Acmd *ptr = p; + ALSave *f = (ALSave *)filter; + ALFilter *source = f->filter.source; + +#ifdef _DEBUG + assert(f->filter.source); +#endif + + ptr = (*source->handler)(source, outp, outCount, sampleOffset, ptr); + + aSetBuffer (ptr++, 0, 0, 0, outCount<<1); + aInterleave(ptr++, AL_MAIN_L_OUT, AL_MAIN_R_OUT); + aSetBuffer (ptr++, 0, 0, 0, outCount<<2); + aSaveBuffer(ptr++, f->dramout); + return ptr; +} + +s32 alSaveParam(void *filter, s32 paramID, void *param) +{ + ALSave *a = (ALSave *) filter; + ALFilter *f = (ALFilter *) filter; + s32 pp = (s32) param; + + switch (paramID) { + case (AL_FILTER_SET_SOURCE): + f->source = (ALFilter *) param; + break; + + case (AL_FILTER_SET_DRAM): + a->dramout = pp; + break; + + default: + break; + } + return 0; + +} diff --git a/lib/src/al/sl.c b/lib/src/al/sl.c new file mode 100644 index 00000000..517f6a35 --- /dev/null +++ b/lib/src/al/sl.c @@ -0,0 +1,66 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C8760 */ + +/*==================================================================== + * sl.c + * + * Synopsis: + * Sound library global routines + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + + +#include "libultra_internal.h" +#include "types.h" +#include "macros.h" + +ALGlobals *alGlobals=0; + +void alInit(ALGlobals *g, ALSynConfig *c) +{ + if (!alGlobals) { /* already initialized? */ + alGlobals = g; + alSynNew(&alGlobals->drvr, c); + } +} + +void alClose(ALGlobals *glob) +{ + if (alGlobals) { + alSynDelete(&glob->drvr); + alGlobals = 0; + } +} + +/* might want to make these macros */ +void alLink(ALLink *ln, ALLink *to) +{ + ln->next = to->next; + ln->prev = to; + if (to->next) + to->next->prev = ln; + to->next = ln; +} + +void alUnlink(ALLink *ln) +{ + if (ln->next) + ln->next->prev = ln->prev; + if (ln->prev) + ln->prev->next = ln->next; +} diff --git a/lib/src/al/synaddplayer.c b/lib/src/al/synaddplayer.c new file mode 100644 index 00000000..53aa3455 --- /dev/null +++ b/lib/src/al/synaddplayer.c @@ -0,0 +1,37 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C93D0 */ +/*==================================================================== + * synaddplayer.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "libultra_internal.h" + +void alSynAddPlayer(ALSynth *drvr, ALPlayer *client) +{ + OSIntMask mask = osSetIntMask(OS_IM_NONE); + + client->samplesLeft = drvr->curSamples; + client->next = drvr->head; + drvr->head = client; + + osSetIntMask(mask); +} diff --git a/lib/src/al/synallocvoice.c b/lib/src/al/synallocvoice.c new file mode 100644 index 00000000..10116206 --- /dev/null +++ b/lib/src/al/synallocvoice.c @@ -0,0 +1,133 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9420 */ + +/*==================================================================== + * synallocvoice.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "libultra_internal.h" + +s32 _allocatePVoice(ALSynth *drvr, PVoice **pvoice, s16 priority) +{ + ALLink *dl; + PVoice *pv; + s32 stolen = 0; + + if ((dl = drvr->pLameList.next) != 0) { /* check the lame list first */ + *pvoice = (PVoice *) dl; + alUnlink(dl); + alLink(dl, &drvr->pAllocList); + } else if ((dl = drvr->pFreeList.next) != 0) { /* from the free list */ + *pvoice = (PVoice *) dl; + alUnlink(dl); + alLink(dl, &drvr->pAllocList); + } else { /* steal one */ + for (dl = drvr->pAllocList.next; dl != 0; dl = dl->next) { + pv = (PVoice *)dl; + + /* + * if it is lower priority and not already stolen, keep it + * as a candidate for stealing + */ + if ((pv->vvoice->priority <= priority) && (pv->offset == 0)) { + *pvoice = pv; + priority = pv->vvoice->priority; + stolen = 1; + } + } + } + + return stolen; +} + +s32 alSynAllocVoice(ALSynth *drvr, ALVoice *voice, ALVoiceConfig *vc) +{ + PVoice *pvoice = 0; + ALFilter *f; + ALParam *update; + s32 stolen; + +#ifdef _DEBUG + /* need two updates if voice is stolen */ + if (drvr->paramList == 0) { + __osError(ERR_ALSYN_NO_UPDATE, 0); + return 0; + } else if (drvr->paramList->next == 0) { + __osError(ERR_ALSYN_NO_UPDATE, 0); + return 0; + } +#endif + + voice->priority = vc->priority; + voice->unityPitch = vc->unityPitch; + voice->table = 0; + voice->fxBus = vc->fxBus; + voice->state = AL_STOPPED; + voice->pvoice = 0; + + stolen = _allocatePVoice(drvr, &pvoice, vc->priority); + + if (pvoice) { /* if we were able to allocate a voice */ + + f = pvoice->channelKnob; + + if (stolen) { + + pvoice->offset = 512; + pvoice->vvoice->pvoice = 0; /* zero stolen voice */ + + /* + * ramp down stolen voice + */ + update = __allocParam(); + update->delta = drvr->paramSamples; + update->type = AL_FILTER_SET_VOLUME; + update->data.i = 0; + update->moredata.i = pvoice->offset - 64; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + + /* + * stop stolen voice + */ + update = __allocParam(); + if (update) { + update->delta = drvr->paramSamples + pvoice->offset; + update->type = AL_FILTER_STOP_VOICE; + update->next = 0; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } else { +#ifdef _DEBUG + __osError(ERR_ALSYN_NO_UPDATE, 0); +#endif + } + + } else { + pvoice->offset = 0; + } + + pvoice->vvoice = voice; /* assign new voice */ + voice->pvoice = pvoice; + + } + + return (pvoice != 0); +} diff --git a/lib/src/al/synfreevoice.c b/lib/src/al/synfreevoice.c new file mode 100644 index 00000000..a677cfd0 --- /dev/null +++ b/lib/src/al/synfreevoice.c @@ -0,0 +1,56 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800C9930 */ + +/*==================================================================== + * synfreevoice.c + * + * Copyright 1995, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include "types.h" +#include "macros.h" +#include "audio_internal.h" +#include "libultra_internal.h" + +void alSynFreeVoice(ALSynth *drvr, ALVoice *voice) +{ + ALFilter *f; + ALFreeParam *update; + + if (voice->pvoice) { + + if (voice->pvoice->offset) { /* if voice was stolen */ + update = (ALFreeParam *)__allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + /* + * set voice data + */ + update->delta = drvr->paramSamples + voice->pvoice->offset; + update->type = AL_FILTER_FREE_VOICE; + update->pvoice = voice->pvoice; + + f = voice->pvoice->channelKnob; + (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); + } else { + __freePVoices(drvr, voice->pvoice); + } + + voice->pvoice = 0; + + } +} diff --git a/lib/src/mips1/al/alAuxBusPull.c b/lib/src/mips1/al/alAuxBusPull.c index 1fe17fd6..053e892a 100644 --- a/lib/src/mips1/al/alAuxBusPull.c +++ b/lib/src/mips1/al/alAuxBusPull.c @@ -45,29 +45,10 @@ s32 alAuxBusParam(void *filter, s32 paramID, void *param) { } -/* Size: 0x4C bytes */ -typedef struct unk80065A80_arg0_34 { - u8 pad0[0x4C]; -} unk80065A80_arg0_34; - -/* Unknown size */ -typedef struct unk80065A80_arg0 { - u8 pad0[0x34]; - unk80065A80_arg0_34 *unk34; -} unk80065A80_arg0; - -/* Unknown size */ -typedef struct unk80065A80_arg1 { - u8 pad0[0x8C]; - s32 unk8C; - u8 pad90[0x4C]; - u8 unkDC; -} unk80065A80_arg1; - -void func_80065A80(unk80065A80_arg0 *arg0, unk80065A80_arg1 *arg1, s16 arg2) { +void func_80065A80(ALSynth *arg0, PVoice *arg1, s16 arg2) { if (arg2 != arg1->unkDC) { - alAuxBusParam(&arg0->unk34[arg1->unkDC], 0x11, &arg1->unk8C); - alAuxBusParam(&arg0->unk34[arg2], 2, &arg1->unk8C); + alAuxBusParam(&arg0->auxBus[arg1->unkDC], 17, &arg1->envmixer); + alAuxBusParam(&arg0->auxBus[arg2], 2, &arg1->envmixer); arg1->unkDC = arg2; } } diff --git a/lib/src/mips1/al/alSynAllocFX.c b/lib/src/mips1/al/alSynAllocFX.c index b3da0476..ad9e2f5d 100644 --- a/lib/src/mips1/al/alSynAllocFX.c +++ b/lib/src/mips1/al/alSynAllocFX.c @@ -5,17 +5,12 @@ #include "macros.h" #include "audio_internal.h" -#ifdef NON_EQUIVALENT -// This is very close to matching. ALFxRef *alSynAllocFX(ALSynth *s, s16 bus, ALSynConfig *c, ALHeap *hp) { - alFxNew(s->auxBus[bus].fx, c, bus, hp); - alFxParam(s->auxBus[bus].fx, AL_FILTER_SET_SOURCE, + alFxNew(&s->auxBus[bus].fx[0], c, bus, hp); + alFxParam(&s->auxBus[bus].fx[0], AL_FILTER_SET_SOURCE, &s->auxBus[bus]); - alMainBusParam(s->mainBus, AL_FILTER_ADD_SOURCE, s->auxBus[bus].fx); + alMainBusParam(s->mainBus, AL_FILTER_ADD_SOURCE, &s->auxBus[bus].fx[0]); return (ALFxRef)(&s->auxBus[bus].fx[0]); } -#else -GLOBAL_ASM("lib/asm/non_matchings/alSynAllocFX/alSynAllocFX.s") -#endif diff --git a/lib/src/mips1/al/alSynSetPan.c b/lib/src/mips1/al/alSynSetPan.c index 180ca092..a1f30663 100644 --- a/lib/src/mips1/al/alSynSetPan.c +++ b/lib/src/mips1/al/alSynSetPan.c @@ -7,6 +7,8 @@ #include "macros.h" #include "audio_internal.h" +ALParam *__allocParam(); + void alSynSetPan(ALSynth *synth, ALVoice *v, u8 pan) { ALParam *update; ALFilter *f; diff --git a/lib/src/mips1/al/cseq.h b/lib/src/mips1/al/cseq.h new file mode 100644 index 00000000..cfef20cc --- /dev/null +++ b/lib/src/mips1/al/cseq.h @@ -0,0 +1,8 @@ +#ifndef __cseq__ +#define __cseq__ + + +char __alCSeqNextDelta(ALCSeq *seq, s32 *pDeltaTicks); + + +#endif /* __cseq__ */ diff --git a/lib/src/mips1/al/cseqp.h b/lib/src/mips1/al/cseqp.h new file mode 100644 index 00000000..230a5c5d --- /dev/null +++ b/lib/src/mips1/al/cseqp.h @@ -0,0 +1,8 @@ +#ifndef __cseqp__ +#define __cseqp__ + + +void __CSPPostNextSeqEvent(ALCSPlayer *seqp); + + +#endif /* __cseqp__ */ diff --git a/lib/src/mips1/al/csplayer.c b/lib/src/mips1/al/csplayer.c index b57c3d0a..a285c817 100644 --- a/lib/src/mips1/al/csplayer.c +++ b/lib/src/mips1/al/csplayer.c @@ -6,6 +6,8 @@ #include "macros.h" #include "audio_internal.h" #include "seqp.h" +#include "cseqp.h" +#include "cseq.h" /************ .rodata ************/ @@ -18,9 +20,302 @@ void __CSPHandleNextSeqEvent(ALCSPlayer *seqp); void __CSPHandleMetaMsg(ALCSPlayer *seqp, ALEvent *event); void __CSPRepostEvent(ALEventQueue *evtq, ALEventListItem *item); void __setUsptFromTempo(ALCSPlayer *seqp, f32 tempo); +void alCSeqNextEvent(ALCSeq *seq, ALEvent *event); +void __CSPHandleMIDIMsg(ALCSPlayer_Custom *seqp, ALEvent *event); +ALMicroTime __CSPVoiceHandler(void *node); +void __CSPHandleNextSeqEvent(ALCSPlayer *seqp); -GLOBAL_ASM("lib/asm/non_matchings/csplayer/alCSPNew.s") -GLOBAL_ASM("lib/asm/non_matchings/csplayer/__CSPVoiceHandler.s") +/* + * Sequence Player public functions + */ +void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *c) +{ + s32 i; + ALEventListItem *items; + ALVoiceState *vs; + ALVoiceState *voices; + + ALHeap *hp = c->heap; + + /* + * initialize member variables + */ + seqp->bank = NULL; + seqp->target = NULL; + seqp->drvr = &alGlobals->drvr; + seqp->chanMask = 0xffff; + seqp->uspt = 488; + seqp->nextDelta = 0; + seqp->state = AL_STOPPED; + seqp->vol = 0x7FFF; /* full volume */ + seqp->frameTime = AL_USEC_PER_FRAME; /* should get this from driver */ + seqp->curTime = 0; + seqp->initOsc = c->initOsc; + seqp->updateOsc = c->updateOsc; + seqp->stopOsc = c->stopOsc; + seqp->unk71 = 0; + seqp->unk70 = c->unknown_0x10; + + seqp->nextEvent.type = AL_SEQP_API_EVT; /* this will start the voice handler "spinning" */ + + /* + * init the channel state + */ + seqp->maxChannels = c->maxChannels; + seqp->chanState = alHeapAlloc(hp, c->maxChannels, sizeof(ALChanState)+4); //TODO: ALChanState likely has some added values as well + __initChanState((ALCSPlayer*)seqp); /* sct 11/6/95 */ + + /* + * init the voice state array + */ + voices = alHeapAlloc(hp, c->maxVoices, sizeof(ALVoiceState)); + seqp->vFreeList = 0; + for (i = 0; i < c->maxVoices; i++) { + vs = &voices[i]; + vs->next = seqp->vFreeList; + seqp->vFreeList = vs; + } + + seqp->vAllocHead = 0; + seqp->vAllocTail = 0; + + /* + * init the event queue + */ + items = alHeapAlloc(hp, c->maxEvents, sizeof(ALEventListItem)); + alEvtqNew(&seqp->evtq, items, c->maxEvents); + + + /* + * add ourselves to the driver + */ + seqp->node.next = NULL; + seqp->node.handler = __CSPVoiceHandler; + seqp->node.clientData = seqp; + alSynAddPlayer(&alGlobals->drvr, &seqp->node); +} + +/************************************************************* + * private routines or driver callback routines + *************************************************************/ +ALMicroTime __CSPVoiceHandler(void *node) +{ + ALCSPlayer_Custom *seqp = (ALCSPlayer_Custom *) node; + ALEvent evt; + ALVoice *voice; + ALMicroTime delta; + ALVoiceState *vs; + void *oscState; + f32 oscValue; + u8 chan; + + do { + switch (seqp->nextEvent.type) + { + case (AL_SEQ_REF_EVT): + __CSPHandleNextSeqEvent(seqp); + break; + + case (AL_SEQP_API_EVT): + evt.type = AL_SEQP_API_EVT; + alEvtqPostEvent(&seqp->evtq, (ALEvent *)&evt, seqp->frameTime); + break; + + case (AL_NOTE_END_EVT): + voice = seqp->nextEvent.msg.note.voice; + + alSynStopVoice(seqp->drvr, voice); + alSynFreeVoice(seqp->drvr, voice); + vs = (ALVoiceState *)voice->clientPrivate; + if(vs->flags) + __seqpStopOsc((ALSeqPlayer*)seqp,vs); + __unmapVoice((ALSeqPlayer*)seqp, voice); + break; + + case (AL_SEQP_ENV_EVT): + voice = seqp->nextEvent.msg.vol.voice; + vs = (ALVoiceState *)voice->clientPrivate; + + if(vs->envPhase == AL_PHASE_ATTACK) + vs->envPhase = AL_PHASE_DECAY; + + delta = seqp->nextEvent.msg.vol.delta; + vs->envEndTime = seqp->curTime + delta; + vs->envGain = seqp->nextEvent.msg.vol.vol; + alSynSetVol(seqp->drvr, voice, __vsVol(vs, (ALSeqPlayer*)seqp), delta); + break; + + case (AL_TREM_OSC_EVT): + vs = seqp->nextEvent.msg.osc.vs; + oscState = seqp->nextEvent.msg.osc.oscState; + delta = (*seqp->updateOsc)(oscState,&oscValue); + vs->tremelo = (u8)oscValue; + alSynSetVol(seqp->drvr, &vs->voice, __vsVol(vs,(ALSeqPlayer*)seqp), + __vsDelta(vs,seqp->curTime)); + evt.type = AL_TREM_OSC_EVT; + evt.msg.osc.vs = vs; + evt.msg.osc.oscState = oscState; + alEvtqPostEvent(&seqp->evtq, &evt, delta); + break; + + case (AL_VIB_OSC_EVT): + vs = seqp->nextEvent.msg.osc.vs; + oscState = seqp->nextEvent.msg.osc.oscState; + chan = seqp->nextEvent.msg.osc.chan; + delta = (*seqp->updateOsc)(oscState,&oscValue); + vs->vibrato = oscValue; + alSynSetPitch(seqp->drvr, &vs->voice, vs->pitch * vs->vibrato + * seqp->chanState[chan].pitchBend); + evt.type = AL_VIB_OSC_EVT; + evt.msg.osc.vs = vs; + evt.msg.osc.oscState = oscState; + evt.msg.osc.chan = chan; + alEvtqPostEvent(&seqp->evtq, &evt, delta); + break; + + case (AL_SEQP_MIDI_EVT): + case (AL_CSP_NOTEOFF_EVT): /* nextEvent is a note off midi message */ + __CSPHandleMIDIMsg(seqp, &seqp->nextEvent); + break; + + case (AL_SEQP_META_EVT): + __CSPHandleMetaMsg(seqp, &seqp->nextEvent); + break; + + case (AL_SEQP_VOL_EVT): + seqp->vol = seqp->nextEvent.msg.spvol.vol; + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + alSynSetVol(seqp->drvr, &vs->voice, + __vsVol(vs, (ALSeqPlayer*)seqp), + __vsDelta(vs, seqp->curTime)); + } + break; + + case (AL_SEQP_PLAY_EVT): + if (seqp->state != AL_PLAYING) + { + seqp->state = AL_PLAYING; + __CSPPostNextSeqEvent(seqp); /* seqp must be AL_PLAYING before we call this routine. */ + } + break; + + case (AL_SEQP_STOP_EVT): + if ( seqp->state == AL_STOPPING ) + { + seqp->chanMask = 0xFFFF; + for (chan = 0; chan < seqp->maxChannels; chan++) + { + seqp->chanState[chan].unk10 = 0x7F; + seqp->chanState[chan].vol = seqp->chanState[chan].unk11; + } + + for (vs = seqp->vAllocHead; vs != 0; vs = seqp->vAllocHead) + { +#ifdef _DEBUG + __osError(ERR_ALCSPVNOTFREE, 2, vs->channel, vs->key); +#endif + alSynStopVoice(seqp->drvr, &vs->voice); + alSynFreeVoice(seqp->drvr, &vs->voice); + if(vs->flags) + __seqpStopOsc((ALSeqPlayer*)seqp,vs); + __unmapVoice((ALSeqPlayer*)seqp, &vs->voice); + } + seqp->state = AL_STOPPED; + + /* alEvtqFlush(&seqp->evtq); - Don't flush event queue + anymore. */ + /* sct 1/3/96 - Don't overwrite nextEvent with + AL_SEQP_API_EVT or set nextDelta to + AL_USEC_PER_FRAME since we're not stopping event + processing. */ + /* sct 1/3/96 - Don't return here since we keep + processing events as usual. */ + } + break; + + case (AL_SEQP_STOPPING_EVT): + if (seqp->state == AL_PLAYING) + { + /* sct 12/29/95 - Remove events associated with the + * stopping sequence. For compact sequence player, + * also remove all queued note off events since they + * are not contained in a compact sequence but are + * generated in response to note ons. Note that + * flushing AL_SEQP_MIDI_EVTs may flush events that + * were posted after the call to alSeqpStop, so the + * application must queue these events either when + * the player is fully stopped, or when it is + * playing. */ + alEvtqFlushType(&seqp->evtq, AL_SEQ_REF_EVT); + alEvtqFlushType(&seqp->evtq, AL_CSP_NOTEOFF_EVT); + alEvtqFlushType(&seqp->evtq, AL_SEQP_MIDI_EVT); + + /* sct 1/3/96 - Check to see which voices need to be + killed and release them. */ + /* Unkilled voices should have note end events + occurring prior to KILL_TIME. */ + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if (__voiceNeedsNoteKill ((ALSeqPlayer*)seqp, &vs->voice, KILL_TIME)) + __seqpReleaseVoice((ALSeqPlayer*)seqp, &vs->voice, KILL_TIME); + } + + seqp->state = AL_STOPPING; + evt.type = AL_SEQP_STOP_EVT; + alEvtqPostEvent(&seqp->evtq, &evt, AL_EVTQ_END); + } + break; + + case (AL_SEQP_PRIORITY_EVT): + chan = seqp->nextEvent.msg.sppriority.chan; + seqp->chanState[chan].priority = seqp->nextEvent.msg.sppriority.priority; + break; + + case (AL_SEQP_SEQ_EVT): + +#ifdef _DEBUG + assert(seqp->state != AL_PLAYING); /* Must be done playing to change sequences. */ +#endif + + seqp->target = seqp->nextEvent.msg.spseq.seq; + //__setUsptFromTempo (seqp, 500000.0); + if (seqp->bank) + __initFromBank((ALSeqPlayer *)seqp, seqp->bank); + break; + + case (AL_SEQP_BANK_EVT): + +#ifdef _DEBUG + assert(seqp->state == AL_STOPPED); /* Must be fully stopped to change banks. */ +#endif + + seqp->bank = seqp->nextEvent.msg.spbank.bank; + __initFromBank((ALSeqPlayer *)seqp, seqp->bank); + break; + + /* sct 11/6/95 - these events should now be handled by __CSPHandleNextSeqEvent */ + case (AL_SEQ_END_EVT): + case (AL_TEMPO_EVT): + case (AL_SEQ_MIDI_EVT): + +#ifdef _DEBUG + assert(FALSE); +#endif + + break; + } + seqp->nextDelta = alEvtqNextEvent(&seqp->evtq, &seqp->nextEvent); + + } while (seqp->nextDelta == 0); + + /* + * assume that next callback won't be more than half an + * hour away + */ + seqp->curTime += seqp->nextDelta; /* sct 11/7/95 */ + return seqp->nextDelta; +} void __CSPPostNextSeqEvent(ALCSPlayer *seqp) { @@ -46,7 +341,7 @@ void __CSPHandleNextSeqEvent(ALCSPlayer *seqp) if (seqp->target == NULL) return; - __alCSeqGetTrackEvent(seqp->target, &evt); + alCSeqNextEvent(seqp->target, &evt); switch (evt.type) { @@ -74,7 +369,424 @@ void __CSPHandleNextSeqEvent(ALCSPlayer *seqp) } } +#ifdef NON_EQUIVALENT +//Significantly different from the standard version +void __CSPHandleMIDIMsg(ALCSPlayer_Custom *seqp, ALEvent *event) +{ + ALVoice *voice; + ALVoiceState *vs; + s32 status; + u8 chan; + u8 key; + u8 vel; + u8 byte1; + u8 byte2; + ALMIDIEvent *midi = &event->msg.midi; + s16 vol; + ALEvent evt; + ALMicroTime deltaTime; + ALVoiceState *vstate; + ALPan pan; + ALFxRef fxref; + + + status = midi->status & AL_MIDI_StatusMask; + chan = midi->status & AL_MIDI_ChannelMask; + byte1 = key = midi->byte1; + byte2 = vel = midi->byte2; + + if (status == AL_MIDI_ChannelModeSelect) + { + if (byte1 == 0x6A) + { + seqp->chanMask &= ~(1 << byte2); + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if (vs->channel == byte2) + __seqpReleaseVoice((ALSeqPlayer *) seqp, &vs->voice, vs->sound->envelope->releaseTime); + } + return; + } + else if (byte1 == 0x6C) + { + seqp->chanMask |= 1 << byte2; + return; + } + } + else { + ALFailIf((!((1 << chan) & seqp->chanMask) && + status != AL_MIDI_ProgramChange && + status != AL_MIDI_ControlChange && + status != AL_MIDI_PitchBendChange), ERR_STATUS) + } + + switch (status) + { + case (AL_MIDI_NoteOn): + + if (vel != 0) /* a real note on */ + { + ALVoiceConfig config; + ALSound *sound; + s16 cents; + f32 pitch,oscValue; + u8 fxmix; + void *oscState; + ALInstrument *inst; + + /* If we're not playing, don't process note ons. */ + if (seqp->state != AL_PLAYING) + break; + + sound = __lookupSoundQuick((ALSeqPlayer*)seqp, key, vel, chan); + ALFlagFailIf(!sound, seqp->debugFlags & NO_SOUND_ERR_MASK, + ERR_ALSEQP_NO_SOUND); + + config.priority = seqp->chanState[chan].priority; + config.fxBus = 0; + config.unityPitch = 0; + + vstate = __mapVoice((ALSeqPlayer*)seqp, key, vel, chan); + ALFlagFailIf(!vstate, seqp->debugFlags & NO_VOICE_ERR_MASK, + ERR_ALSEQP_NO_VOICE ); + + voice = &vstate->voice; + + if (alSynAllocVoice(seqp->drvr, voice, &config)) + func_80065A80(seqp->drvr, voice->pvoice, 0); + + /* + * set up the voice state structure + */ + vstate->sound = sound; + vstate->envPhase = AL_PHASE_ATTACK; + if (seqp->chanState[chan].sustain > AL_SUSTAIN) + vstate->phase = AL_PHASE_SUSTAIN; + else + vstate->phase = AL_PHASE_NOTEON; + + cents = (key - sound->keyMap->keyBase) * 100 + + sound->keyMap->detune; + + vstate->pitch = alCents2Ratio(cents); + vstate->envGain = sound->envelope->attackVolume; + vstate->envEndTime = seqp->curTime + + sound->envelope->attackTime; + + /* + * setup tremelo and vibrato if active + */ + vstate->flags = 0; + inst = seqp->chanState[chan].instrument; + + oscValue = (f32)AL_VOL_FULL; /* set this as a default */ + if(inst->tremType) + { + if(seqp->initOsc) + { + deltaTime = (*seqp->initOsc)(&oscState,&oscValue,inst->tremType, + inst->tremRate,inst->tremDepth,inst->tremDelay); + + if(deltaTime) /* a deltaTime of zero means don't run osc */ + { + evt.type = AL_TREM_OSC_EVT; + evt.msg.osc.vs = vstate; + evt.msg.osc.oscState = oscState; + alEvtqPostEvent(&seqp->evtq, &evt, deltaTime); + vstate->flags |= 0x01; /* set tremelo flag bit */ + } + } + } + vstate->tremelo = (u8)oscValue; /* will default if not changed by initOsc */ + + oscValue = 1.0f; /* set this as a default */ + if(inst->vibType) + { + if(seqp->initOsc) + { + deltaTime = (*seqp->initOsc)(&oscState,&oscValue,inst->vibType, + inst->vibRate,inst->vibDepth,inst->vibDelay); + + if(deltaTime) /* a deltaTime of zero means don't run osc. */ + { + evt.type = AL_VIB_OSC_EVT; + evt.msg.osc.vs = vstate; + evt.msg.osc.oscState = oscState; + evt.msg.osc.chan = chan; + alEvtqPostEvent(&seqp->evtq, &evt, deltaTime); + vstate->flags |= 0x02; /* set the vibrato flag bit */ + } + } + } + vstate->vibrato = oscValue; /* will default if not changed by initOsc */ + + /* + * calculate the note on parameters + */ + pitch = vstate->pitch * seqp->chanState[chan].pitchBend * + vstate->vibrato; + fxmix = seqp->chanState[chan].fxmix; + pan = __vsPan(vstate, (ALSeqPlayer*)seqp); + vol = __vsVol(vstate, (ALSeqPlayer*)seqp); + deltaTime = sound->envelope->attackTime; + + alSynStartVoiceParams(seqp->drvr, voice, sound->wavetable, + pitch, vol, pan, fxmix, deltaTime); + /* + * set up callbacks for envelope + */ + evt.type = AL_SEQP_ENV_EVT; + evt.msg.vol.voice = voice; + evt.msg.vol.vol = sound->envelope->decayVolume; + evt.msg.vol.delta = sound->envelope->decayTime; + + alEvtqPostEvent(&seqp->evtq, &evt, deltaTime); + + if(midi->duration) + { + /* + * set up note off evt. if no duration don't do this + */ + evt.type = AL_CSP_NOTEOFF_EVT; + evt.msg.midi.status = chan | AL_MIDI_NoteOff; + evt.msg.midi.byte1 = key; + evt.msg.midi.byte2 = 0; /* not needed ? */ + deltaTime = seqp->uspt * midi->duration; + + /* max time would be about one hour ten minutes */ + alEvtqPostEvent(&seqp->evtq, &evt, deltaTime); + } + + break; + } + + /* + * NOTE: intentional fall-through for note on with zero + * velocity (Should never happen with compact midi sequence, + * but could happen with real time midi.) + */ + + case (AL_MIDI_NoteOff): + vstate = __lookupVoice((ALSeqPlayer*)seqp, key, chan); + ALFlagFailIf(!vstate, seqp->debugFlags & NOTE_OFF_ERR_MASK, + ERR_ALSEQP_OFF_VOICE ); + + if (vstate->phase == AL_PHASE_SUSTAIN) + vstate->phase = AL_PHASE_SUSTREL; + else + { + vstate->phase = AL_PHASE_RELEASE; + __seqpReleaseVoice((ALSeqPlayer*)seqp, &vstate->voice, + vstate->sound->envelope->releaseTime); + } + + break; + + case (AL_MIDI_PolyKeyPressure): + /* + * Aftertouch per key (hardwired to volume). Note that + * aftertouch affects only notes that are already + * sounding. + */ + vstate = __lookupVoice((ALSeqPlayer*)seqp, key, chan); + ALFailIf(!vstate, ERR_ALSEQP_POLY_VOICE ); + + vstate->velocity = byte2; + alSynSetVol(seqp->drvr, &vstate->voice, + __vsVol(vstate, (ALSeqPlayer*)seqp), + __vsDelta(vstate,seqp->curTime)); + break; + + case (AL_MIDI_ChannelPressure): + /* + * Aftertouch per channel (hardwired to volume). Note that + * aftertouch affects only notes that are already + * sounding. + */ + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) { + if (vs->channel == chan) { + vs->velocity = byte1; + alSynSetVol(seqp->drvr, &vs->voice, + __vsVol(vs, (ALSeqPlayer*)seqp), + __vsDelta(vs,seqp->curTime)); + } + } + break; + + case (AL_MIDI_ControlChange): + switch (byte1) + { + case (AL_MIDI_PAN_CTRL): + seqp->chanState[chan].pan = byte2; + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if (vs->channel == chan) + { + pan = __vsPan(vs, (ALSeqPlayer*)seqp); + alSynSetPan(seqp->drvr, &vs->voice, pan); + } + } + break; + case (AL_MIDI_VOLUME_CTRL): + { + f32 temp; + seqp->chanState[chan].unk11 = byte2; + temp = seqp->chanState[chan].unk10; + if (seqp->chanState[chan].unk10 < 0) + { + temp += 0xFFFFFFFF; + } + + seqp->chanState[chan].vol = (temp * seqp->chanState[chan].unk10) / 127.0f; + + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if ((vs->channel == chan) && (vs->envPhase != AL_PHASE_RELEASE)) + { + vol = __vsVol(vs, (ALSeqPlayer*)seqp); + alSynSetVol(seqp->drvr, &vs->voice, vol, + __vsDelta(vs,seqp->curTime)); + } + } + } + break; + case (8): + seqp->chanState[chan].unk10 = byte2; + seqp->chanState[chan].vol = (seqp->chanState[chan].unk11 * seqp->chanState[chan].unk10) / 127.0f; + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if ((vs->channel == chan) && (vs->envPhase != AL_PHASE_RELEASE)) + { + vol = __vsVol(vs, (ALSeqPlayer*)seqp); + alSynSetVol(seqp->drvr, &vs->voice, vol, + __vsDelta(vs,seqp->curTime)); + } + } + break; + case (AL_MIDI_PRIORITY_CTRL): + /* leave current voices where they are */ + seqp->chanState[chan].priority = byte2; + break; + case (AL_MIDI_SUSTAIN_CTRL): + seqp->chanState[chan].sustain = byte2; + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if ((vs->channel == chan) && (vs->phase != AL_PHASE_RELEASE)) + { + if ( byte2 > AL_SUSTAIN ) + { + /* + * sustain pedal down + */ + if (vs->phase == AL_PHASE_NOTEON) + vs->phase = AL_PHASE_SUSTAIN; + } + else + { + /* + * sustain pedal up + */ + if (vs->phase == AL_PHASE_SUSTAIN) + vs->phase = AL_PHASE_NOTEON; + + else if(vs->phase == AL_PHASE_SUSTREL) + { + vs->phase = AL_PHASE_RELEASE; + __seqpReleaseVoice((ALSeqPlayer*)seqp, + &vs->voice, + vs->sound->envelope->releaseTime); + } + } + } + } + break; + case (AL_MIDI_FX1_CTRL): + seqp->chanState[chan].fxmix = byte2; + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if (vs->channel == chan) + alSynSetFXMix(seqp->drvr, &vs->voice, byte2); + } + break; + case (0x5F): + seqp->unk36 = byte2; + for (chan = 0; chan < seqp->maxChannels; chan++) + { + if (seqp->chanState[chan].fxmix < byte2) + { + seqp->chanState[chan].fxmix = 0; + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + { + if (vs->channel == chan) + alSynSetFXMix(seqp->drvr, &vs->voice, byte2); + } + } + } + break; +/* case (AL_MIDI_FX_CTRL_0): + case (AL_MIDI_FX_CTRL_1): + case (AL_MIDI_FX_CTRL_2): + case (AL_MIDI_FX_CTRL_3): + case (AL_MIDI_FX_CTRL_4): + case (AL_MIDI_FX_CTRL_5): + case (AL_MIDI_FX_CTRL_6): + case (AL_MIDI_FX_CTRL_7): + fxref = alSynGetFXRef(seqp->drvr, 0, 0); + if (fxref) + alSynSetFXParam(seqp->drvr, fxref, (s16)byte1, (void *)byte2); + break; + case (AL_MIDI_FX3_CTRL): */ + default: + break; + } + break; + case (AL_MIDI_ProgramChange): + /* sct 1/16/96 - We must have a valid bank in order to process the program change. */ + + if (key < seqp->bank->instCount) + { + ALInstrument *inst = seqp->bank->instArray[key]; + __setInstChanState((ALSeqPlayer*)seqp, inst, chan); /* sct 11/6/95 */ + } + else + { +#ifdef _DEBUG + __osError(ERR_ALSEQPINVALIDPROG, 2, key, seqp->bank->instCount); +#endif + } + break; + case (AL_MIDI_PitchBendChange): + { + s32 bendVal; + f32 bendRatio; + s32 cents; + + /* get 14-bit unsigned midi value */ + bendVal = ( (byte2 << 7) + byte1) - 8192; + + /* calculate pitch bend in cents */ + cents = (seqp->chanState[chan].bendRange * bendVal)/8192; + + /* calculate the corresponding ratio */ + bendRatio = alCents2Ratio(cents); + seqp->chanState[chan].pitchBend = bendRatio; + + for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) + if (vs->channel == chan) + alSynSetPitch(seqp->drvr, &vs->voice, + vs->pitch * bendRatio * vs->vibrato); + + } + break; + + default: + break; + } + +} +#else GLOBAL_ASM("lib/asm/non_matchings/csplayer/__CSPHandleMIDIMsg.s") +#endif void __CSPHandleMetaMsg(ALCSPlayer *seqp, ALEvent *event) { diff --git a/lib/src/mips1/al/initfx.h b/lib/src/mips1/al/initfx.h new file mode 100644 index 00000000..704e1f4a --- /dev/null +++ b/lib/src/mips1/al/initfx.h @@ -0,0 +1,59 @@ +/*==================================================================== + * initfx.h + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#ifndef __initfx__ +#define __initfx__ + +#define MAX_L0 AL_FX_BUFFER_SIZE/4 +#define MAX_L1 AL_FX_BUFFER_SIZE/4 +#define MAX_L2 AL_FX_BUFFER_SIZE/2 + +#define L0_INC MAX_L0/128 +#define L1_INC MAX_L1/128 +#define L2_INC MAX_L2/128 + +#define SMALLROOM_SECT_CNT 3 +#define SMALLROOM_SIZE AL_FX_BUFFER_SIZE +#define SMALLROOM_L0 880 /* 22 ms */ +#define SMALLROOM_C0 9830 +#define SMALLROOM_L1 1400 /* 35 ms */ +#define SMALLROOM_C1 3276 +#define SMALLROOM_L2 2640 /* 66 ms */ +#define SMALLROOM_C2 10000 +#define SMALLROOM_FILT_CNT 1 +#define SMALLROOM_FC0 0x4000 /* .25 */ + +#define BIGROOM_SECT_CNT 3 +#define BIGROOM_SIZE AL_FX_BUFFER_SIZE +#define BIGROOM_L0 1408 /* 32 ms */ +#define BIGROOM_C0 9830 +#define BIGROOM_L1 1984 /* 45 ms */ +#define BIGROOM_C1 9830 +#define BIGROOM_L2 3792 /* 86 ms */ +#define BIGROOM_C2 12000 +#define BIGROOM_FILT_CNT 1 +#define BIGROOM_FC0 0x4000 /* .25 */ + +#define ECHO_SIZE AL_FX_BUFFER_SIZE +#define ECHO_SECT_CNT 1 +#define ECHO_L0 7936 /* 180 ms */ +#define ECHO_C0 0x6000 + +#endif diff --git a/lib/src/mips1/al/reverb.c b/lib/src/mips1/al/reverb.c index 748f6c33..0eaaf997 100644 --- a/lib/src/mips1/al/reverb.c +++ b/lib/src/mips1/al/reverb.c @@ -5,17 +5,141 @@ #include "macros.h" #include "libultra_internal.h" #include "audio_internal.h" +#include "initfx.h" -/************ .data ************/ +// TODO: these come from headers +#ident "$Revision: 1.49 $" +#ident "$Revision: 1.17 $" -s8 D_800DCEB0 = 1; -s32 D_800DCEB4 = 0x10; // Currently unknown, might be a different type. -s32 D_800DCEB8 = 0x10; // Currently unknown, might be a different type. -s32 D_800DCEBC = 0x20; // Currently unknown, might be a different type. +#define RANGE 2.0 +extern ALGlobals *alGlobals; -/*******************************/ +#ifdef AUD_PROFILE +extern u32 cnt_index, reverb_num, reverb_cnt, reverb_max, reverb_min, lastCnt[]; +extern u32 load_num, load_cnt, load_max, load_min, save_num, save_cnt, save_max, save_min; +#endif -GLOBAL_ASM("lib/asm/non_matchings/reverb/alFxPull.s") +/* + * macros + */ +#define SWAP(in, out) \ +{ \ + s16 t = out; \ + out = in; \ + in = t; \ +} + + + +Acmd *_loadOutputBuffer(ALFx *r, ALDelay *d, s32 buff, s32 incount, Acmd *p); +Acmd *_loadBuffer(ALFx *r, s16 *curr_ptr, s32 buff, s32 count, Acmd *p); +Acmd *_saveBuffer(ALFx *r, s16 *curr_ptr, s32 buff, s32 count, Acmd *p); +Acmd *_filterBuffer(ALLowPass *lp, s32 buff, s32 count, Acmd *p); +f32 _doModFunc(ALDelay *d, s32 count); +void init_lpfilter(ALLowPass *lp); + +u8 D_800DCEB0 = 1; +static s32 L_INC[] = { L0_INC, L1_INC, L2_INC }; + +/*********************************************************************** + * Reverb filter public interfaces + ***********************************************************************/ +Acmd *alFxPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, + Acmd *p) +{ + Acmd *ptr = p; + ALFx *r = (ALFx *)filter; + ALFilter *source = r->filter.source; + s16 i, buff1, buff2, input, output; + s16 *in_ptr, *out_ptr, *prev_out_ptr = 0; + ALDelay *d; + +#ifdef AUD_PROFILE + lastCnt[++cnt_index] = osGetCount(); +#endif + +#ifdef _DEBUG + assert(source); +#endif + + /* + * pull channels going into this effect first + */ + ptr = (*source->handler)(source, outp, outCount, sampleOffset, p); + + //Added by Rare Devs + if (D_800DCEB0 == 0) { + return ptr; + } + + input = AL_AUX_L_OUT; + output = AL_AUX_R_OUT; + buff1 = AL_TEMP_0; + buff2 = AL_TEMP_1; + + aSetBuffer(ptr++, 0, 0, 0, outCount<<1); /* set the buffer size */ + aMix(ptr++, 0, 0xda83, AL_AUX_L_OUT, input); /* .707L = L - .293L */ + aMix(ptr++, 0, 0x5a82, AL_AUX_R_OUT, input); /* mix the AuxL and AuxR into the AuxL */ + /* and write the mixed value to the delay line at r->input */ + ptr = _saveBuffer(r, r->input, input, outCount, ptr); + + aClearBuffer(ptr++, output, outCount<<1); /* clear the AL_AUX_R_OUT */ + + for (i = 0; i < r->section_count; i++) { + d = &r->delay[i]; /* get the ALDelay structure */ + in_ptr = &r->input[-d->input]; + out_ptr = &r->input[-d->output]; + + if (in_ptr == prev_out_ptr) { + SWAP(buff1, buff2); + } else { /* load data at in_ptr into buff1 */ + ptr = _loadBuffer(r, in_ptr, buff1, outCount, ptr); + } + ptr = _loadOutputBuffer(r, d, buff2, outCount, ptr); + + if (d->ffcoef) { + aMix(ptr++, 0, (u16)d->ffcoef, buff1, buff2); + if (!d->rs && !d->lp) { + ptr = _saveBuffer(r, out_ptr, buff2, outCount, ptr); + } + } + + if (d->fbcoef) { + aMix(ptr++, 0, (u16)d->fbcoef, buff2, buff1); + ptr = _saveBuffer(r, in_ptr, buff1, outCount, ptr); + } + + if (d->lp) + ptr = _filterBuffer(d->lp, buff2, outCount, ptr); + + if (!d->rs) + ptr = _saveBuffer(r, out_ptr, buff2, outCount, ptr); + + if (d->gain) + aMix(ptr++, 0, (u16)d->gain, buff2, output); + + prev_out_ptr = &r->input[d->output]; + } + + /* + * bump the master delay line input pointer + * modulo the length + */ + r->input += outCount; + if (r->input > &r->base[r->length]) + r->input -= r->length; + + /* + * output already in AL_AUX_R_OUT + * just copy to AL_AUX_L_OUT + */ + aDMEMMove(ptr++, output, AL_AUX_L_OUT, outCount<<1); + +#ifdef AUD_PROFILE + PROFILE_AUD(reverb_num, reverb_cnt, reverb_max, reverb_min); +#endif + return ptr; +} s32 alFxParam(void *filter, s32 paramID, void *param) { if (paramID == 1) { @@ -24,8 +148,152 @@ s32 alFxParam(void *filter, s32 paramID, void *param) { return 0; } -GLOBAL_ASM("lib/asm/non_matchings/reverb/alFxParamHdl.s") -GLOBAL_ASM("lib/asm/non_matchings/reverb/_loadOutputBuffer.s") +/* + * This routine gets called by alSynSetFXParam. No checking takes place to + * verify the validity of the paramID or the param value. input and output + * values must be 8 byte aligned, so round down any param passed. + */ +s32 alFxParamHdl(void *filter, s32 paramID, void *param) +{ + ALFx *f = (ALFx *) filter; + s32 p = (paramID - 2) % 8; + s32 s = (paramID - 2) / 8; + s32 val = *(s32*)param; + +#define INPUT_PARAM 0 +#define OUTPUT_PARAM 1 +#define FBCOEF_PARAM 2 +#define FFCOEF_PARAM 3 +#define GAIN_PARAM 4 +#define CHORUSRATE_PARAM 5 +#define CHORUSDEPTH_PARAM 6 +#define LPFILT_PARAM 7 + + switch(p) + { + case INPUT_PARAM: + f->delay[s].input = (u32)val & 0xFFFFFFF8; + break; + case OUTPUT_PARAM: + f->delay[s].output = (u32)val & 0xFFFFFFF8; + break; + case FFCOEF_PARAM: + f->delay[s].ffcoef = (s16)val; + break; + case FBCOEF_PARAM: + f->delay[s].fbcoef = (s16)val; + break; + case GAIN_PARAM: + f->delay[s].gain = (s16)val; + break; + case CHORUSRATE_PARAM: + /* f->delay[s].rsinc = ((f32)val)/0xffffff; */ + f->delay[s].rsinc = ((((f32)val)/1000) * RANGE)/alGlobals->drvr.outputRate; + break; + +/* + * the following constant is derived from: + * + * ratio = 2^(cents/1200) + * + * and therefore for hundredths of a cent + * x + * ln(ratio) = --------------- + * (120,000)/ln(2) + * where + * 120,000/ln(2) = 173123.40... + */ +#define CONVERT 173123.404906676 +#define LENGTH (f->delay[s].output - f->delay[s].input) + + case CHORUSDEPTH_PARAM: + /*f->delay[s].rsgain = (((f32)val) / CONVERT) * LENGTH; */ + f->delay[s].rsgain = (((f32)val) / CONVERT) * LENGTH; + break; + case LPFILT_PARAM: + if(f->delay[s].lp) + { + f->delay[s].lp->fc = (s16)val; + init_lpfilter(f->delay[s].lp); + } + break; + } + return 0; +} + +Acmd *_loadOutputBuffer(ALFx *r, ALDelay *d, s32 buff, s32 incount, Acmd *p) +{ + Acmd *ptr = p; + s32 ratio, count, rbuff = AL_TEMP_2; + s16 *out_ptr; + f32 fincount, fratio, delta; + s32 ramalign = 0, length; +/* + * The following section implements the chorus resampling. Modulate where you pull + * the samples from, since you need varying amounts of samples. + */ + if (d->rs) { + length = d->output - d->input; + delta = _doModFunc(d, incount); /* get the number of samples to modulate by */ + /* + * find ratio of delta to delay length and quantize + * to same resolution as resampler + */ + delta /= length; /* convert delta from number of samples to a pitch ratio */ + delta = (s32)(delta * UNITY_PITCH); /* quantize to value microcode will use */ + delta = delta / UNITY_PITCH; + fratio = 1.0 - delta; /* pitch ratio needs to be centered around 1, not zero */ + + /* d->rs->delta is the difference between the fractional and integer value + * of the samples needed. fratio * incount + rs->delta gives the number of samples + * needed for this frame. + */ + fincount = d->rs->delta + (fratio * (f32)incount); + count = (s32) fincount; /* quantize to s32 */ + d->rs->delta = fincount - (f32)count; /* calculate the round off and store */ + + /* + * d->rsdelta is amount the out_ptr has deviated from its starting position. + * You calc the out_ptr by taking d->output - d->rsdelta, and then using the + * negative of that as an index into the delay buffer. loadBuffer that uses this + * value then bumps it up if it is below the delay buffer. + */ + out_ptr = &r->input[-(d->output - d->rsdelta)]; + ramalign = ((s32)out_ptr & 0x7) >> 1; /* calculate the number of samples needed + to align the buffer*/ +#ifdef _DEBUG +#if 0 + if(length > 0) { + if (length - d->rsdelta > (s32)r->length) { + __osError(ERR_ALMODDELAYOVERFLOW, 1, length - d->rsdelta - r->length); + } + } + else if(length < 0) { + if ((-length) - d->rsdelta > (s32)r->length) { + __osError(ERR_ALMODDELAYOVERFLOW, 1, (-length) - d->rsdelta - r->length); + } + } +#endif +#endif + /* load the rbuff with samples, note that there will be ramalign worth of + * samples at the begining which you don't care about. */ + ptr = _loadBuffer(r, out_ptr - ramalign, rbuff, count + ramalign, ptr); + + /* convert fratio to 16 bit fraction for microcode use */ + ratio = (s32)(fratio * UNITY_PITCH); + /* set the buffers, and do the resample */ + aSetBuffer(ptr++, 0, rbuff + (ramalign<<1), buff, incount<<1); + aResample(ptr++, d->rs->first, ratio, osVirtualToPhysical(d->rs->state)); + + d->rs->first = 0; /* turn off first time flag */ + d->rsdelta += count - incount; /* add the number of samples to d->rsdelta */ + } else { + out_ptr = &r->input[-d->output]; + ptr = _loadBuffer(r, out_ptr, buff, incount, ptr); + } + + return ptr; +} /* * This routine is for loading data from the delay line buff. If the @@ -131,5 +399,45 @@ Acmd *_filterBuffer(ALLowPass *lp, s32 buff, s32 count, Acmd *p) return ptr; } -GLOBAL_ASM("lib/asm/non_matchings/reverb/_doModFunc.s") -GLOBAL_ASM("lib/asm/non_matchings/reverb/func_8006492C.s") +/* + * Generate a triangle wave from -1 to 1, and find the current position + * in the wave. (Rate of the wave is controlled by d->rsinc, which is chorus + * rate) Multiply the current triangle wave value by d->rsgain, (chorus depth) + * which is expressed in number of samples back from output pointer the chorus + * should go at it's full chorus. In otherwords, this function returns a number + * of samples the output pointer should modulate backwards. + */ +f32 _doModFunc(ALDelay *d, s32 count) +{ + f32 val; + + /* + * generate bipolar sawtooth + * from -RANGE to +RANGE + */ + d->rsval += d->rsinc * count; + d->rsval = (d->rsval > RANGE) ? d->rsval-(RANGE*2) : d->rsval; + + /* + * convert to monopolar triangle + * from 0 to RANGE + */ + val = d->rsval; + val = (val < 0) ? -val : val; + + /* + * convert to bipolar triangle + * from -1 to 1 + */ + val -= RANGE/2; + + return(d->rsgain * val); +} + +void func_8006492C(u8 arg0) { + D_800DCEB0 = arg0; +} + +u8 func_8006493C() { + return D_800DCEB0; +} diff --git a/lib/src/mips1/al/synthesizer.c b/lib/src/mips1/al/synthesizer.c index f7d7eebb..8577aad9 100644 --- a/lib/src/mips1/al/synthesizer.c +++ b/lib/src/mips1/al/synthesizer.c @@ -5,18 +5,13 @@ #include "audio_internal.h" #include "macros.h" -#ifdef NON_EQUIVALENT - s32 __nextSampleTime(ALSynth *drvr, ALPlayer **client); s32 _timeToSamplesNoRound(ALSynth *ALSynth, s32 micros); -// Regalloc issue. s7 and s8 need to swap places; there is also an extra 8 bytes on the stack. void alSynNew(ALSynth *drvr, ALSynConfig *c) { s32 i; - ALVoice *vv; PVoice *pv; - ALVoice *vvoices; PVoice *pvoices; ALHeap *hp = c->heap; ALSave *save; @@ -50,7 +45,7 @@ void alSynNew(ALSynth *drvr, ALSynConfig *c) for(i = 0; i < 2; i++) { if (c->fxType[i] != 0) { - alSynAllocFX(drvr, (s16)i, c, c); + alSynAllocFX(drvr, (s16)i, c, hp); } else { alMainBusParam(drvr->mainBus, 2, drvr->auxBus + i); } @@ -95,9 +90,6 @@ void alSynNew(ALSynth *drvr, ALSynConfig *c) drvr->heap = hp; } -#else -GLOBAL_ASM("lib/asm/non_matchings/synthesizer/alSynNew.s") -#endif void __collectPVoices(ALSynth *drvr); s32 __timeToSamplesNoRound(ALSynth *synth, s32 micros); @@ -173,10 +165,8 @@ void __freeParam(ALParam *param) void __collectPVoices(ALSynth *drvr) { ALLink *dl; - PVoice *pv; while ((dl = drvr->pLameList.next) != 0) { - pv = (PVoice *)dl; alUnlink(dl); alLink(dl, &drvr->pFreeList); } diff --git a/lib/src/mips1/al/unknown_064690.c b/lib/src/mips1/al/unknown_064690.c index f7fcb336..e62320fd 100644 --- a/lib/src/mips1/al/unknown_064690.c +++ b/lib/src/mips1/al/unknown_064690.c @@ -3,26 +3,15 @@ #include "types.h" #include "macros.h" +#include "audio_internal.h" -/* Size: 0x0C bytes */ -typedef struct unk80063BA0 { - s16 unk0; - s16 unk2; - s32 unk4; - u8 unk8; - u8 unk9; - u8 unkA; -} unk80063BA0; +void func_80063A90(ALSeqPlayer *seqp, u8 chan) { + ALEvent evt; -void func_80063A90(u32 arg0, u8 arg1) { - s32 unusedVariable; - unk80063BA0 unknownStruct; - unknownStruct.unk0 = 2; - unknownStruct.unk4 = 0; - unknownStruct.unk8 = 0xB0; - unknownStruct.unk9 = 0x5F; - unknownStruct.unkA = arg1; - alEvtqPostEvent(arg0 + 0x48, &unknownStruct, 0); + evt.type = AL_SEQP_MIDI_EVT; + evt.msg.midi.ticks = 0; + evt.msg.midi.status = AL_MIDI_ControlChange; + evt.msg.midi.byte1 = 0x5F; + evt.msg.midi.byte2 = chan; + alEvtqPostEvent(&seqp->evtq, &evt, 0); } - - diff --git a/lib/src/mips1/al/unknown_0646F0.c b/lib/src/mips1/al/unknown_0646F0.c index 6c354c2c..7c5e0072 100644 --- a/lib/src/mips1/al/unknown_0646F0.c +++ b/lib/src/mips1/al/unknown_0646F0.c @@ -5,34 +5,24 @@ #include "macros.h" #include "audio_internal.h" -/* Size: 0x0C bytes */ -typedef struct unk80063AF0 { - s16 unk0; - s16 unk2; - s32 unk4; - u8 unk8; - u8 unk9; - u8 unkA; -} unk80063AF0; +void func_80063AF0(ALSeqPlayer *seqp, u8 chan) { + ALEvent evt; -void func_80063AF0(u32 arg0, u8 arg1) { - s32 unusedVariable; - unk80063AF0 unknownStruct; - unknownStruct.unk0 = 2; - unknownStruct.unk4 = 0; - unknownStruct.unk8 = 0xB0; - unknownStruct.unk9 = 0x6A; - unknownStruct.unkA = arg1; - alEvtqPostEvent(arg0 + 0x48, &unknownStruct, 0); + evt.type = AL_SEQP_MIDI_EVT; + evt.msg.midi.ticks = 0; + evt.msg.midi.status = AL_MIDI_ControlChange; + evt.msg.midi.byte1 = 0x6A; + evt.msg.midi.byte2 = chan; + alEvtqPostEvent(&seqp->evtq, &evt, 0); } -void func_80063B44(u32 arg0, u8 arg1) { - s32 unusedVariable; - unk80063AF0 unknownStruct; - unknownStruct.unk0 = 2; - unknownStruct.unk4 = 0; - unknownStruct.unk8 = 0xB0; - unknownStruct.unk9 = 0x6C; - unknownStruct.unkA = arg1; - alEvtqPostEvent(arg0 + 0x48, &unknownStruct, 0); +void func_80063B44(ALSeqPlayer *seqp, u8 chan) { + ALEvent evt; + + evt.type = AL_SEQP_MIDI_EVT; + evt.msg.midi.ticks = 0; + evt.msg.midi.status = AL_MIDI_ControlChange; + evt.msg.midi.byte1 = 0x6C; + evt.msg.midi.byte2 = chan; + alEvtqPostEvent(&seqp->evtq, &evt, 0); } diff --git a/lib/src/mips1/al/unknown_0647A0.c b/lib/src/mips1/al/unknown_0647A0.c index 0facca36..6c4987f9 100644 --- a/lib/src/mips1/al/unknown_0647A0.c +++ b/lib/src/mips1/al/unknown_0647A0.c @@ -5,14 +5,15 @@ #include "macros.h" #include "audio_internal.h" -void alEvtqPostEvent(ALEventQueue *evtq, ALEvent *evt, ALMicroTime delta); //unknown_0C9C90 +//Could be ALCSPlayer instead of ALSeqPlayer +void func_80063BA0(ALSeqPlayer *seqp, u8 chan, ALPan pan) { + ALEvent evt; + + evt.type = AL_SEQP_MIDI_EVT; + evt.msg.midi.ticks = 0; + evt.msg.midi.status = AL_MIDI_ControlChange | chan; + evt.msg.midi.byte1 = AL_SEQP_PROG_EVT; + evt.msg.midi.byte2 = pan; -void func_80063BA0(ALCSPlayer *seqp, u8 arg1, u8 arg2) { - ALEvent evt; - evt.type = 2; - evt.msg.midi.ticks = 0; - evt.msg.midi.status = arg1 | 0xB0; - evt.msg.midi.byte1 = 8; - evt.msg.midi.byte2 = arg2; alEvtqPostEvent(&seqp->evtq, &evt, 0); } diff --git a/src/audio.c b/src/audio.c index 0d02c3dc..a1319dab 100644 --- a/src/audio.c +++ b/src/audio.c @@ -405,7 +405,7 @@ void musicSetChlVol(u8 chan, u8 vol) { } /* Unused?*/ -s32 musicGetChlVol(u8 arg0) { +u8 musicGetChlVol(u8 arg0) { if (arg0 >= 0x10) { return 0; } else { @@ -756,7 +756,7 @@ u8 ALBankFile_80115D14_GetSoundDecayTime(u16 soundID) { } ALSeqPlayer *func_80002224(s32 _max_voices, s32 _max_events) { - ALCSPlayer_Custom *cseqp; + ALCSPlayer *cseqp; ALSeqpConfig config; config.maxVoices = _max_voices; @@ -768,7 +768,7 @@ ALSeqPlayer *func_80002224(s32 _max_voices, s32 _max_events) { config.updateOsc = NULL; config.stopOsc = NULL; - cseqp = (ALCSPlayer_Custom *)alHeapDBAlloc(NULL, 0, &gALHeap, 1, sizeof(ALCSPlayer_Custom)); + cseqp = (ALCSPlayer *)alHeapDBAlloc(NULL, 0, &gALHeap, 1, sizeof(ALCSPlayer)); alCSPNew(cseqp, &config); alCSPSetBank(cseqp, ALBankFile_80115D10->bankArray[0]); cseqp->unk36 = 0x7F; diff --git a/src/audio.h b/src/audio.h index 9911711d..277d0365 100644 --- a/src/audio.h +++ b/src/audio.h @@ -49,13 +49,14 @@ void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *config); //lib/src/al/csplayer.c void alCSPSetBank(ALCSPlayer *seqp, ALBank *b); //lib/src/unknown_0C8660.c void set_voice_limit(ALSeqPlayer *seqp, u8 voiceLimit); //lib/src/mips1/alseqplayer.c void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); //lib/src/al/alHeapDBAlloc.c -s32 alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan); //lib/src/unknown_0C84E0.c +void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan); //lib/src/unknown_0C84E0.c void alCSPSetChlVol(ALCSPlayer *, u8 chan, u8 vol); //lib/src/unknown_0C84E0.c u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan); //lib/src/al -void func_80063BA0(ALCSPlayer *seqp, u8 arg1, u8 arg2); //lib/src/unknown_0647A0.c +void func_80063BA0(ALSeqPlayer *seqp, u8 chan, ALPan pan); //lib/src/unknown_0647A0.c u8 func_80063C00(ALCSPlayer *seqp, u8 arg1); //lib/src/mips1/al/unknown_064800.c u8 alSeqpGetChlFXMix(ALSeqPlayer *seqp, u8 chan); //lib/src/al/alSeqpGetChlFXMix.c void func_8006492C(u8 arg0); //lib/src/mips1/al/reverb.c +u8 func_8006493C(); //lib/src/mips1/al/reverb.c void alHeapInit(ALHeap *hp, u8 *base, s32 len); //lib/src/al/alHeapInit.c void alBnkfNew(ALBankFile *ctl, u8 *tbl); //lib/src/al/global_asm.c void alCSPSetVol(ALCSPlayer *seqp, s16 vol); //lib/src/al/alCSPSetVol.c @@ -86,7 +87,7 @@ s32 musicGetChnlActive(s32 arg0); void func_80001170(u8 arg0); void musicSetChlPan(u8 chan, ALPan pan); void musicSetChlVol(u8 chan, u8 vol); -s32 musicGetChlVol(u8 arg0); +u8 musicGetChlVol(u8 arg0); void func_80001268(u8 arg0, u8 arg1); u8 func_800012A8(u8 arg0); void func_800012E8(void); diff --git a/src/thread0_epc.c b/src/thread0_epc.c index 26c95c80..94847dbc 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -89,11 +89,15 @@ void func_800B6F04(void) { D_80127CAE += 11; } -void func_800B6F30(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) { -} +void func_800B6F30(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) {} -void func_800B6F40(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) { -} +// Only called from two libultra funcs for some reason. +// This is likely an assert gone wrong. +// Called from alEnvMixerPull, and _pullSubFrame +// thread0_Assert("samples >= 0", "env.c", 104); +// thread0_Assert("samples <= AL_MAX_RSP_SAMPLES", "env.c", 105); +// thread0_Assert("source", "env.c", 373); +void thread0_Assert(UNUSED char *message, UNUSED char *fileName, UNUSED s32 lineNumber) {} #ifdef NON_EQUIVALENT void thread0_create(void) { diff --git a/src/thread0_epc.h b/src/thread0_epc.h index 0def141b..a8832a52 100644 --- a/src/thread0_epc.h +++ b/src/thread0_epc.h @@ -74,7 +74,7 @@ void func_800B6E50(void); void func_800B6EE0(void); void func_800B6F04(void); void func_800B6F30(s32 arg0, s32 arg1, s32 arg2); -void func_800B6F40(s32 arg0, s32 arg1, s32 arg2); +void thread0_Assert(UNUSED char *message, UNUSED char *fileName, UNUSED s32 lineNumber); void func_800B70D0(void); void func_800B7144(void); void func_800B76B8(s32 arg0, s32 arg1);