From 1114b13da81ab0b52fd4bb56a32f32331a21e581 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Fri, 11 Nov 2022 10:09:48 -0800 Subject: [PATCH] clean up dolphin files / work on some rels (#212) * d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop * dolphin OS work / cleanup * dolphin GX work / cleanup * finish changing dolphin files to C * more files into C * match rest of MSL_C math functions * more dolphin files converted to C * remove asm * d_bg_w work * remove asm * d_a_alink work / kytag14 --- Progress.md | 26 +- .../Double_precision/e_acos/__ieee754_acos.s | 151 - .../Double_precision/e_asin/__ieee754_asin.s | 152 - .../e_atan2/__ieee754_atan2.s | 197 -- .../Double_precision/e_exp/__ieee754_exp.s | 151 - .../Double_precision/e_pow/__ieee754_pow.s | 571 ---- .../e_rem_pio2/__ieee754_rem_pio2.s | 247 -- .../Double_precision/e_sqrt/__ieee754_sqrt.s | 160 -- .../Double_precision/k_cos/__kernel_cos.s | 67 - .../k_rem_pio2/__kernel_rem_pio2.s | 1007 ------- .../Double_precision/k_sin/__kernel_sin.s | 44 - .../Double_precision/k_tan/__kernel_tan.s | 142 - asm/MSL_C/Math/Double_precision/s_atan/atan.s | 147 - .../Math/Double_precision/s_ldexp/ldexp.s | 131 - asm/Runtime.PPCEABI.H/CPlusLibPPC/__copy.s | 14 - .../GCN_mem_alloc/__sys_free.s | 48 - asm/Runtime.PPCEABI.H/__va_arg/__va_arg.s | 57 - asm/Runtime.PPCEABI.H/ptmf/__ptmf_cmpr.s | 16 - asm/Runtime.PPCEABI.H/ptmf/__ptmf_scall.s | 12 - asm/Runtime.PPCEABI.H/ptmf/__ptmf_test.s | 13 - .../Portable/dispatch/TRKDispatchMessage.s | 94 - .../MetroTRK/Portable/main_TRK/TRK_main.s | 24 - .../MetroTRK/Portable/mem_TRK/TRK_fill_mem.s | 56 - .../MetroTRK/Portable/msg/TRKMessageSend.s | 18 - .../Os/dolphin/targcont/TRKTargetContinue.s | 14 - .../dolphin/target_options/GetUseSerialIO.s | 5 - .../dolphin/target_options/SetUseSerialIO.s | 4 - .../Os/dolphin/usr_put/usr_puts_serial.s | 38 - .../ppc/Generic/flush_cache/TRK_flush_cache.s | 16 - .../utils/common/MWTrace/MWTRACE.s | 22 - .../MWExitCriticalSection.s | 10 - .../a/d_a_alink/allAnimePlay__9daAlink_cFv.s | 101 - .../checkAtnLeftAnime__9daAlink_cFv.s | 42 - .../checkAtnRightAnime__9daAlink_cFv.s | 42 - .../d_a_alink/checkDashAnime__9daAlink_cCFv.s | 27 - asm/d/a/d_a_alink/checkDeadHP__9daAlink_cFv.s | 63 - .../checkFinalBattle__9daAlink_cFv.s | 27 - ...r__9daAlink_cFP10dAttList_cP10fopAc_ac_c.s | 17 - .../checkRestartDead__9daAlink_cFii.s | 51 - ...c__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s | 25 - asm/d/a/d_a_alink/func_800AC5B4.s | 25 - ...source__9daAlink_cFP14daPy_anmHeap_cUsUl.s | 31 - ...a__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s | 75 - ...etMoveGroundAngleSpeedRate__9daAlink_cFv.s | 39 - ...P15J3DAnmTransformPP15J3DAnmTransformiUl.s | 82 - asm/d/a/d_a_alink/orderTalk__9daAlink_cFi.s | 94 - .../a/d_a_alink/procCoTwGate__9daAlink_cFv.s | 24 - .../procCutFastReady__9daAlink_cFv.s | 22 - .../d_a_alink/procDemoCommon__9daAlink_cFv.s | 15 - .../setDeadRideSyncPos__9daAlink_cFv.s | 46 - .../a/d_a_alink/setGetSubBgm__9daAlink_cFi.s | 32 - ...tPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s | 129 - .../setSandDownBgCheckWallH__9daAlink_cFv.s | 19 - ...Alink_c11daAlink_ANMPC16daAlinkHIO_anm_c.s | 14 - ...9daAlink_cFQ29daAlink_c11daAlink_ANMffsf.s | 60 - .../a/d_a_alink/setTalkStatus__9daAlink_cFv.s | 86 - ...ink_c13daAlink_UNDERPC16daAlinkHIO_anm_c.s | 14 - asm/d/bg/d_bg_w/BlckConnect__4cBgWFPUsPii.s | 22 - asm/d/bg/d_bg_w/CalcPlane__4cBgWFv.s | 72 - ...llBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c.s | 14 - .../d_bg_w/CaptPoly__4dBgWFR13dBgS_CaptPoly.s | 11 - asm/d/bg/d_bg_w/ChkLock__4cBgWCFv.s | 4 - asm/d/bg/d_bg_w/ChkMemoryError__4cBgWFv.s | 22 - asm/d/bg/d_bg_w/ChkMoveBg__4cBgWCFv.s | 4 - asm/d/bg/d_bg_w/ChkMoveFlag__4dBgWCFv.s | 4 - asm/d/bg/d_bg_w/ChkNotReady__4cBgWCFv.s | 5 - ...wDrawThrough__4cBgWFiP16cBgS_PolyPassChk.s | 12 - ...wDrawThrough__4dBgWFiP16cBgS_PolyPassChk.s | 33 - asm/d/bg/d_bg_w/CopyOldMtx__4cBgWFv.s | 21 - asm/d/bg/d_bg_w/GetAttackThrough__4dBgWFi.s | 10 - asm/d/bg/d_bg_w/GetBnd__4cBgWCFv.s | 7 - .../GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo.s | 12 - .../GetExitId__4dBgWFRC13cBgS_PolyInfo.s | 12 - .../GetGroundCode__4dBgWFRC13cBgS_PolyInfo.s | 12 - .../GetGrpInf__4cBgWCFRC13cBgS_PolyInfo.s | 18 - .../GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo.s | 13 - ...GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s | 12 - asm/d/bg/d_bg_w/GetIronBallThrough__4dBgWFi.s | 10 - .../GetLinkNo__4dBgWFRC13cBgS_PolyInfo.s | 12 - .../GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s | 12 - .../GetMaskPolyInf0_NoShift__4cBgWCFiUl.s | 20 - .../GetMaskPolyInf1_NoShift__4cBgWCFiUl.s | 21 - ...tMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo.s | 12 - .../bg/d_bg_w/GetPolyArrowThrough__4dBgWFi.s | 10 - .../GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s | 13 - .../GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s | 12 - asm/d/bg/d_bg_w/GetPolyBombThrough__4dBgWFi.s | 10 - .../d_bg_w/GetPolyBoomerangThrough__4dBgWFi.s | 10 - asm/d/bg/d_bg_w/GetPolyCamThrough__4dBgWFi.s | 11 - .../GetPolyColor__4dBgWFRC13cBgS_PolyInfo.s | 12 - ...olyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo.s | 13 - asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s | 10 - asm/d/bg/d_bg_w/GetPolyInf0__4cBgWCFiUlUl.s | 22 - asm/d/bg/d_bg_w/GetPolyInf1__4cBgWCFiUlUl.s | 23 - asm/d/bg/d_bg_w/GetPolyInf2__4cBgWCFiUlUl.s | 23 - asm/d/bg/d_bg_w/GetPolyInfId__4cBgWCFi.s | 7 - asm/d/bg/d_bg_w/GetPolyLinkThrough__4dBgWFi.s | 10 - asm/d/bg/d_bg_w/GetPolyObjThrough__4dBgWFi.s | 10 - asm/d/bg/d_bg_w/GetPolyRopeThrough__4dBgWFi.s | 10 - .../GetRoomCamId__4dBgWFRC13cBgS_PolyInfo.s | 13 - .../GetRoomPathId__4dBgWFRC13cBgS_PolyInfo.s | 12 - ...etRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo.s | 12 - asm/d/bg/d_bg_w/GetShdwThrough__4dBgWFi.s | 12 - .../GetSpecialCode__4dBgWFRC13cBgS_PolyInfo.s | 13 - asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFi.s | 11 - asm/d/bg/d_bg_w/GetTopUnder__4cBgWCFPfPf.s | 13 - asm/d/bg/d_bg_w/GetTrans__4cBgWCFP4cXyz.s | 15 - asm/d/bg/d_bg_w/GetTriGrp__4cBgWCFi.s | 7 - .../GetTriPla__4cBgWCFRC13cBgS_PolyInfo.s | 17 - ...BgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s | 36 - .../d_bg_w/GetUnderwaterRoofCode__4dBgWFi.s | 10 - .../GetWallCode__4dBgWFRC13cBgS_PolyInfo.s | 12 - asm/d/bg/d_bg_w/GlobalVtx__4cBgWFv.s | 55 - .../GroundCross__4cBgWFP11cBgS_GndChk.s | 11 - .../d_bg_w/LineCheck__4cBgWFP11cBgS_LinChk.s | 11 - .../MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz.s | 40 - .../MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz.s | 22 - asm/d/bg/d_bg_w/MakeNodeTreeRp__4cBgWFi.s | 63 - asm/d/bg/d_bg_w/Move__4cBgWFv.s | 129 - asm/d/bg/d_bg_w/Move__4dBgWFv.s | 12 - asm/d/bg/d_bg_w/OffMoveFlag__4dBgWFv.s | 5 - .../d_bg_w/RoofChk__4dBgWFP12dBgS_RoofChk.s | 11 - asm/d/bg/d_bg_w/SetTri__4cBgWFv.s | 39 - .../bg/d_bg_w/Set__4cBgWFP6cBgD_tUlPA3_A4_f.s | 158 - .../d_bg_w/ShdwDraw__4cBgWFP13cBgS_ShdwDraw.s | 10 - .../d_bg_w/SphChk__4dBgWFP11dBgS_SphChkPv.s | 11 - .../SplGrpChk__4dBgWFP14dBgS_SplGrpChk.s | 11 - .../d_bg_w/WallCorrect__4dBgWFP9dBgS_Acch.s | 11 - asm/d/bg/d_bg_w/__ct__11cBgW_GrpElmFv.s | 8 - asm/d/bg/d_bg_w/__ct__11cBgW_TriElmFv.s | 8 - asm/d/bg/d_bg_w/__ct__4dBgWFv.s | 21 - .../d_bg_w/dBgW_NewSet__FP6cBgD_tUlPA3_A4_f.s | 39 - .../d_bg_w_kcol/ChkNotReady__8dBgWKColCFv.s | 5 - .../ChkShdwDrawThrough__8dBgWKColFP5dBgPc.s | 9 - .../GetAttackThrough__8dBgWKColFi.s | 12 - asm/d/bg/d_bg_w_kcol/GetBnd__8dBgWKColCFv.s | 3 - ...etCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../GetExitId__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...tGroundCode__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo.s | 16 - ...pRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo.s | 13 - ...tGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...orseNoEntry__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../GetIronBallThrough__8dBgWKColFi.s | 12 - .../GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...tMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...keyBarsCode__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../GetPolyArrowThrough__8dBgWKColFi.s | 12 - ...GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../GetPolyBombThrough__8dBgWKColFi.s | 12 - .../GetPolyBoomerangThrough__8dBgWKColFi.s | 12 - .../GetPolyCamThrough__8dBgWKColFi.s | 12 - ...etPolyColor__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...rpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s | 12 - .../GetPolyLinkThrough__8dBgWKColFi.s | 12 - .../GetPolyObjThrough__8dBgWKColFi.s | 12 - .../GetPolyRopeThrough__8dBgWKColFi.s | 12 - ...etRoomCamId__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...tRoomPathId__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - ...omPathPntNo__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../d_bg_w_kcol/GetShdwThrough__8dBgWKColFi.s | 12 - ...SpecialCode__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - .../d_bg_w_kcol/GetSpecialCode__8dBgWKColFi.s | 12 - .../GetTopUnder__8dBgWKColCFPfPf.s | 18 - .../GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo.s | 12 - .../bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFi.s | 49 - ...ColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s | 10 - .../GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec.s | 13 - .../GetUnderwaterRoofCode__8dBgWKColFi.s | 12 - ...GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s | 13 - asm/d/bg/d_bg_w_kcol/__ct__8dBgWKColFv.s | 23 - asm/d/bg/d_bg_w_kcol/create__8dBgWKColFPvPv.s | 20 - .../getPolyCode__8dBgWKColCFiP5dBgPc.s | 22 - ...TriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec.s | 8 - asm/d/bg/d_bg_w_sv/CopyBackVtx__6dBgWSvFv.s | 31 - asm/d/bg/d_bg_w_sv/Set__6dBgWSvFP6cBgD_tUl.s | 38 - asm/dolphin/gd/GDBase/GDFlushCurrToMem.s | 12 - asm/dolphin/gd/GDBase/GDInitGDLObj.s | 7 - asm/dolphin/gd/GDBase/GDOverflowed.s | 14 - asm/dolphin/gd/GDBase/GDPadCurr32.s | 66 - asm/dolphin/gx/GXBump/GXSetIndTexCoordScale.s | 88 - asm/dolphin/gx/GXBump/GXSetIndTexMtx.s | 101 - asm/dolphin/gx/GXBump/GXSetIndTexOrder.s | 68 - asm/dolphin/gx/GXBump/GXSetNumIndStages.s | 10 - asm/dolphin/gx/GXBump/GXSetTevDirect.s | 19 - asm/dolphin/gx/GXBump/GXSetTevIndirect.s | 28 - asm/dolphin/gx/GXBump/__GXFlushTextureState.s | 10 - asm/dolphin/gx/GXBump/__GXSetIndirectMask.s | 13 - asm/dolphin/gx/GXFifo/GXGetFifoBase.s | 3 - asm/dolphin/gx/GXFifo/GXGetFifoSize.s | 3 - asm/dolphin/gx/GXFifo/GXInitFifoLimits.s | 4 - asm/dolphin/gx/GXFifo/GXSaveCPUFifo.s | 14 - asm/dolphin/gx/GXFifo/__GXFifoInit.s | 20 - asm/dolphin/gx/GXGeometry/GXBegin.s | 61 - .../gx/GXGeometry/GXEnableTexOffsets.s | 19 - asm/dolphin/gx/GXGeometry/GXSetCoPlanar.s | 14 - asm/dolphin/gx/GXGeometry/GXSetLineWidth.s | 17 - asm/dolphin/gx/GXGeometry/GXSetPointSize.s | 17 - asm/dolphin/gx/GXGeometry/__GXSendFlushPrim.s | 39 - asm/dolphin/gx/GXGeometry/__GXSetDirtyState.s | 39 - asm/dolphin/gx/GXGeometry/__GXSetGenMode.s | 10 - asm/dolphin/gx/GXLight/GXInitLightAttn.s | 8 - asm/dolphin/gx/GXLight/GXInitLightColor.s | 4 - asm/dolphin/gx/GXLight/GXInitLightDir.s | 8 - asm/dolphin/gx/GXLight/GXInitLightDistAttn.s | 62 - asm/dolphin/gx/GXLight/GXInitLightPos.s | 5 - asm/dolphin/gx/GXLight/GXInitLightSpot.s | 105 - asm/dolphin/gx/GXLight/GXLoadLightObjImm.s | 32 - asm/dolphin/mtx/mtx/PSMTXConcat.s | 52 - asm/dolphin/mtx/mtx/PSMTXCopy.s | 14 - asm/dolphin/mtx/mtx/PSMTXIdentity.s | 12 - asm/dolphin/mtx/mtx/PSMTXInverse.s | 64 - asm/dolphin/mtx/mtx/PSMTXQuat.s | 42 - asm/dolphin/mtx/mtx/PSMTXRotTrig.s | 49 - asm/dolphin/mtx/mtx/PSMTXScale.s | 11 - asm/dolphin/mtx/mtx/PSMTXScaleApply.s | 23 - asm/dolphin/mtx/mtx/PSMTXTrans.s | 14 - asm/dolphin/mtx/mtx/PSMTXTransApply.s | 20 - .../mtx/mtx/__PSMTXRotAxisRadInternal.s | 45 - asm/dolphin/mtx/mtxvec/PSMTXMultVec.s | 22 - asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s | 37 - asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s | 36 - asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s | 22 - asm/dolphin/os/OS/InquiryCallback.s | 19 - asm/dolphin/os/OS/OSDefaultExceptionHandler.s | 23 - asm/dolphin/os/OS/OSExceptionVector.s | 23 - asm/dolphin/os/OS/OSGetConsoleType.s | 13 - asm/dolphin/os/OS/OSInit.s | 2 +- asm/dolphin/os/OS/__DBVECTOR.s | 5 - asm/dolphin/os/OS/__OSDBIntegrator.s | 10 - asm/dolphin/os/OS/__OSDBJump.s | 2 - asm/dolphin/os/OS/__OSEVEnd.s | 2 - asm/dolphin/os/OS/__OSEVSetNumber.s | 14 - asm/dolphin/os/OS/__OSFPRInit.s | 76 - asm/dolphin/os/OS/__OSGetExceptionHandler.s | 6 - asm/dolphin/os/OS/__OSPSInit.s | 22 - asm/dolphin/os/OS/__OSSetExceptionHandler.s | 8 - .../os/OSAlarm/DecrementerExceptionHandler.s | 21 - asm/dolphin/os/OSAlarm/OSCreateAlarm.s | 5 - asm/dolphin/os/OSAlloc/DLInsert.s | 49 - asm/dolphin/os/OSAlloc/OSCreateHeap.s | 31 - asm/dolphin/os/OSAlloc/OSFreeToHeap.s | 35 - asm/dolphin/os/OSAlloc/OSInitAlloc.s | 31 - asm/dolphin/os/OSAlloc/OSSetCurrentHeap.s | 5 - asm/dolphin/os/OSArena/OSAllocFromArenaLo.s | 12 - asm/dolphin/os/OSArena/OSSetArenaHi.s | 3 - asm/dolphin/os/OSArena/OSSetArenaLo.s | 3 - asm/dolphin/os/OSCache/DCEnable.s | 6 - asm/dolphin/os/OSCache/DCFlushRange.s | 14 - asm/dolphin/os/OSCache/DCFlushRangeNoSync.s | 13 - asm/dolphin/os/OSCache/DCInvalidateRange.s | 13 - asm/dolphin/os/OSCache/DCStoreRange.s | 14 - asm/dolphin/os/OSCache/DCStoreRangeNoSync.s | 13 - asm/dolphin/os/OSCache/DCZeroRange.s | 13 - asm/dolphin/os/OSCache/ICEnable.s | 6 - asm/dolphin/os/OSCache/ICFlashInvalidate.s | 5 - asm/dolphin/os/OSCache/ICInvalidateRange.s | 15 - asm/dolphin/os/OSCache/LCDisable.s | 12 - asm/dolphin/os/OSCache/LCEnable.s | 15 - asm/dolphin/os/OSCache/LCQueueWait.s | 6 - asm/dolphin/os/OSCache/LCStoreBlocks.s | 10 - asm/dolphin/os/OSCache/__LCEnable.s | 54 - asm/dolphin/os/OSContext/OSClearContext.s | 11 - asm/dolphin/os/OSContext/OSFillFPUContext.s | 77 - .../os/OSContext/OSGetCurrentContext.s | 4 - asm/dolphin/os/OSContext/OSGetStackPointer.s | 3 - asm/dolphin/os/OSContext/OSInitContext.s | 48 - asm/dolphin/os/OSContext/OSLoadContext.s | 58 - asm/dolphin/os/OSContext/OSSaveContext.s | 33 - asm/dolphin/os/OSContext/OSSaveFPUContext.s | 3 - .../os/OSContext/OSSetCurrentContext.s | 25 - asm/dolphin/os/OSContext/OSSwitchFPUContext.s | 36 - asm/dolphin/os/OSContext/__OSLoadFPUContext.s | 76 - asm/dolphin/os/OSContext/__OSSaveFPUContext.s | 76 - .../os/OSError/__OSUnhandledException.s | 2 +- asm/dolphin/os/OSExec/Callback.s | 4 - asm/dolphin/os/OSExec/Run.s | 16 - .../os/OSInterrupt/ExternalInterruptHandler.s | 21 - .../os/OSInterrupt/OSDisableInterrupts.s | 4 - .../os/OSInterrupt/OSEnableInterrupts.s | 6 - .../os/OSInterrupt/OSRestoreInterrupts.s | 12 - .../os/OSInterrupt/__OSDispatchInterrupt.s | 2 +- .../os/OSInterrupt/__OSGetInterruptHandler.s | 6 - .../os/OSInterrupt/__OSSetInterruptHandler.s | 8 - .../__RAS_OSDisableInterrupts_end.s | 3 - asm/dolphin/os/OSLink/OSSetStringTable.s | 4 - asm/dolphin/os/OSLink/__OSModuleInit.s | 7 - asm/dolphin/os/OSMemory/Config24MB.s | 33 - asm/dolphin/os/OSMemory/Config48MB.s | 33 - asm/dolphin/os/OSMemory/RealMode.s | 7 - asm/dolphin/os/OSReboot/OSGetSaveRegion.s | 6 - asm/dolphin/os/OSReboot/OSSetSaveRegion.s | 4 - asm/dolphin/os/OSReset/Reset.s | 38 - .../os/OSResetSW/OSGetResetButtonState.s | 2 +- asm/dolphin/os/OSSync/SystemCallVector.s | 8 - .../os/OSSync/__OSSystemCallVectorEnd.s | 2 - asm/dolphin/os/OSThread/OSGetCurrentThread.s | 4 - asm/dolphin/os/OSThread/OSGetThreadPriority.s | 3 - asm/dolphin/os/OSThread/OSInitThreadQueue.s | 5 - .../os/OSThread/OSIsThreadTerminated.s | 16 - asm/dolphin/os/OSThread/UnsetRun.s | 32 - .../os/OSThread/__OSGetEffectivePriority.s | 19 - asm/dolphin/os/OSTime/OSGetTime.s | 7 - .../d_a_alldie/actionCheck__10daAlldie_cFv.s | 22 - .../d_a_alldie/actionEvent__10daAlldie_cFv.s | 44 - .../d_a_alldie/actionNext__10daAlldie_cFv.s | 56 - .../d_a_alldie/actionOrder__10daAlldie_cFv.s | 29 - .../d_a_alldie/actionTimer__10daAlldie_cFv.s | 50 - .../daAlldie_Create__FP10fopAc_ac_c.s | 81 - .../daAlldie_Delete__FP10daAlldie_c.s | 14 - .../daAlldie_Execute__FP10daAlldie_c.s | 10 - .../d_a_alldie/execute__10daAlldie_cFv.s | 40 - .../d_a_alldie/getEventNo__10daAlldie_cFv.s | 4 - .../d_a_alldie/getSwbit__10daAlldie_cFv.s | 4 - .../d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s | 9 - .../d_a_tboxSw/create__10daTboxSw_cFv.s | 31 - .../daTboxSw_Create__FP10fopAc_ac_c.s | 9 - .../daTboxSw_Delete__FP10daTboxSw_c.s | 9 - .../daTboxSw_Draw__FP10daTboxSw_c.s | 9 - .../daTboxSw_Execute__FP10daTboxSw_c.s | 9 - .../d_a_tboxSw/execute__10daTboxSw_cFv.s | 30 - .../daKytag14_Create__FP10fopAc_ac_c.s | 43 - .../daKytag14_Execute__FP13kytag14_class.s | 113 - .../d_a_tag_gstart/__dt__13daTagGstart_cFv.s | 23 - .../create__13daTagGstart_cFv.s | 34 - .../daTagGstart_Create__FP10fopAc_ac_c.s | 9 - .../daTagGstart_Delete__FP13daTagGstart_c.s | 11 - .../daTagGstart_Execute__FP13daTagGstart_c.s | 9 - .../execute__13daTagGstart_cFv.s | 55 - .../d_a_tag_hstop/__dt__12daTagHstop_cFv.s | 43 - .../d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s | 16 - .../d_a_tag_hstop/create__12daTagHstop_cFv.s | 137 - .../daTagHstop_Create__FP10fopAc_ac_c.s | 9 - .../daTagHstop_Delete__FP12daTagHstop_c.s | 11 - .../daTagHstop_Execute__FP12daTagHstop_c.s | 9 - .../d_a_tag_hstop/execute__12daTagHstop_cFv.s | 223 -- .../setActive__12daTagHstop_cFv.s | 46 - .../daTagInst_Create__FP10fopAc_ac_c.s | 23 - .../daTagInst_Delete__FP11daTagInst_c.s | 14 - include/JSystem/J3DGraphBase/J3DVertex.h | 4 - include/JSystem/J3DU/J3DUClipper.h | 1 + include/JSystem/JUtility/JUTException.h | 5 + include/MSL_C/MSL_Common/Src/float.h | 20 +- include/MSL_C/math.h | 2 +- include/Runtime.PPCEABI.H/__va_arg.h | 4 +- include/Runtime.PPCEABI.H/ptmf.h | 9 +- include/SSystem/SComponent/c_bg_s_chk.h | 1 + include/SSystem/SComponent/c_bg_s_lin_chk.h | 15 +- include/SSystem/SComponent/c_m3d_g_aab.h | 12 +- include/SSystem/SComponent/c_m3d_g_pla.h | 16 +- include/SSystem/SComponent/c_m3d_g_sph.h | 6 +- include/SSystem/SComponent/c_m3d_g_tri.h | 3 + include/SSystem/SComponent/c_sxyz.h | 12 + include/SSystem/SComponent/c_xyz.h | 18 + .../MetroTRK/Portable/dispatch.h | 15 + .../MetroTRK/Portable/mainloop.h | 2 + .../MetroTRK/Portable/msg.h | 7 + .../MetroTRK/Portable/msgbuf.h | 11 + .../MetroTRK/Portable/msghndlr.h | 18 + .../MetroTRK/Portable/nubinit.h | 4 + .../Os/dolphin/dolphin_trk_glue.h | 4 + .../TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h | 3 + .../TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h | 2 + include/d/a/d_a_alink.h | 967 +++++-- include/d/a/d_a_player.h | 128 +- include/d/bg/d_bg_pc.h | 47 + include/d/bg/d_bg_plc.h | 4 +- include/d/bg/d_bg_s.h | 4 +- include/d/bg/d_bg_s_acch.h | 1 + include/d/bg/d_bg_s_poly_pass_chk.h | 22 +- include/d/bg/d_bg_w.h | 190 +- include/d/bg/d_bg_w_base.h | 30 +- include/d/bg/d_bg_w_kcol.h | 92 +- include/d/bg/d_bg_w_sv.h | 18 +- include/d/com/d_com_inf_game.h | 41 + include/d/com/d_com_static.h | 2 +- include/d/d_stage.h | 5 +- include/d/event/d_event.h | 2 +- include/d/meter/d_meter2_info.h | 10 + include/dolphin/ar/ar.h | 8 +- include/dolphin/ar/arq.h | 16 +- include/dolphin/dvd/dvd.h | 88 +- include/dolphin/gd/GDBase.h | 17 +- include/dolphin/gd/GDGeometry.h | 7 +- include/dolphin/gx/GX.h | 247 +- include/dolphin/gx/GXAttr.h | 35 +- include/dolphin/gx/GXBump.h | 20 +- include/dolphin/gx/GXDisplayList.h | 6 + include/dolphin/gx/GXEnum.h | 42 +- include/dolphin/gx/GXFifo.h | 34 +- include/dolphin/gx/GXFrameBuf.h | 27 +- include/dolphin/gx/GXGeometry.h | 21 +- include/dolphin/gx/GXInit.h | 114 +- include/dolphin/gx/GXLight.h | 23 +- include/dolphin/gx/GXMisc.h | 34 +- include/dolphin/gx/GXPerf.h | 12 + include/dolphin/gx/GXPixel.h | 24 +- include/dolphin/gx/GXStruct.h | 17 +- include/dolphin/gx/GXTev.h | 33 +- include/dolphin/gx/GXTexture.h | 45 +- include/dolphin/gx/GXTransform.h | 28 +- include/dolphin/mtx/mtx.h | 22 +- include/dolphin/mtx/mtx44.h | 10 +- include/dolphin/mtx/mtxvec.h | 18 +- include/dolphin/mtx/quat.h | 19 +- include/dolphin/mtx/vec.h | 46 +- include/dolphin/os/OS.h | 36 +- include/dolphin/os/OSAlarm.h | 8 +- include/dolphin/os/OSAlloc.h | 29 +- include/dolphin/os/OSContext.h | 11 +- include/dolphin/os/OSError.h | 12 +- include/dolphin/os/OSInterrupt.h | 48 +- include/dolphin/os/OSLink.h | 8 + include/dolphin/os/OSMemory.h | 2 +- include/dolphin/os/OSMessage.h | 1 - include/dolphin/os/OSMutex.h | 30 +- include/dolphin/os/OSReboot.h | 2 +- include/dolphin/os/OSSync.h | 2 + include/dolphin/os/OSThread.h | 51 +- include/dolphin/os/OSTime.h | 2 + include/dolphin/pad/Pad.h | 21 +- include/dolphin/vi/vi.h | 30 +- include/f_op/f_op_actor_mng.h | 3 +- include/global.h | 5 - include/m_Do/m_Do_audio.h | 7 + include/m_Do/m_Do_ext.h | 4 +- include/m_Do/m_Do_mtx.h | 1 + include/rel/d/a/d_a_alldie/d_a_alldie.h | 32 +- include/rel/d/a/d_a_horse/d_a_horse.h | 15 +- include/rel/d/a/d_a_tboxSw/d_a_tboxSw.h | 16 +- .../rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h | 13 +- .../d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h | 14 +- .../rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h | 22 +- .../d_a_tag_instruction/d_a_tag_instruction.h | 4 +- libs/JSystem/J2DGraph/J2DTevs.cpp | 2 +- .../J3DGraphAnimator/J3DSkinDeform.cpp | 2 - libs/JSystem/J3DGraphBase/J3DGD.cpp | 6 - libs/JSystem/J3DGraphBase/J3DMatBlock.cpp | 2 - libs/JSystem/J3DGraphBase/J3DSys.cpp | 8 +- libs/JSystem/J3DGraphBase/J3DVertex.cpp | 6 +- libs/JSystem/JParticle/JPABaseShape.cpp | 1 + libs/JSystem/JParticle/JPAEmitter.cpp | 1 + libs/JSystem/JParticle/JPAParticle.cpp | 1 + libs/JSystem/JParticle/JPAResource.cpp | 1 + .../JSystem/JStudio/JStudio/functionvalue.cpp | 1 + libs/JSystem/JStudio/JStudio/fvb.cpp | 1 + libs/JSystem/JStudio/JStudio/stb.cpp | 1 + libs/MSL_C/Makefile | 2 + libs/MSL_C/Math/Double_precision/e_acos.c | 185 +- libs/MSL_C/Math/Double_precision/e_asin.c | 194 +- libs/MSL_C/Math/Double_precision/e_atan2.c | 195 +- libs/MSL_C/Math/Double_precision/e_exp.c | 248 +- libs/MSL_C/Math/Double_precision/e_pow.c | 518 +++- libs/MSL_C/Math/Double_precision/e_rem_pio2.c | 266 +- libs/MSL_C/Math/Double_precision/e_sqrt.c | 483 +++- libs/MSL_C/Math/Double_precision/k_cos.c | 143 +- libs/MSL_C/Math/Double_precision/k_rem_pio2.c | 402 ++- libs/MSL_C/Math/Double_precision/k_sin.c | 124 +- libs/MSL_C/Math/Double_precision/k_tan.c | 221 +- libs/MSL_C/Math/Double_precision/s_atan.c | 198 +- libs/MSL_C/Math/Double_precision/s_ceil.c | 106 +- libs/MSL_C/Math/Double_precision/s_ldexp.c | 103 +- libs/Runtime.PPCEABI.H/CPlusLibPPC.cpp | 42 +- libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.c | 36 + libs/Runtime.PPCEABI.H/GCN_mem_alloc.cpp | 175 -- libs/Runtime.PPCEABI.H/Makefile | 18 +- .../__init_cpp_exceptions.cpp | 6 +- libs/Runtime.PPCEABI.H/__va_arg.c | 50 + libs/Runtime.PPCEABI.H/__va_arg.cpp | 32 - libs/Runtime.PPCEABI.H/ptmf.c | 73 + libs/Runtime.PPCEABI.H/ptmf.cpp | 78 - libs/SSystem/SComponent/c_bg_s_lin_chk.cpp | 4 +- libs/SSystem/SComponent/c_lib.cpp | 2 +- libs/SSystem/SComponent/c_m3d.cpp | 72 +- .../GCN/EXI2_DDH_GCN/{main.cpp => main.c} | 255 +- .../GCN/EXI2_GDEV_GCN/{main.cpp => main.c} | 255 +- libs/TRK_MINNOW_DOLPHIN/Makefile | 70 +- .../Export/{mslsupp.cpp => mslsupp.c} | 10 +- .../MetroTRK/Portable/dispatch.c | 70 + .../MetroTRK/Portable/dispatch.cpp | 165 -- .../MetroTRK/Portable/main_TRK.c | 27 + .../MetroTRK/Portable/main_TRK.cpp | 64 - .../Portable/{mainloop.cpp => mainloop.c} | 28 +- .../MetroTRK/Portable/mem_TRK.c | 58 + .../MetroTRK/Portable/mem_TRK.cpp | 32 - .../MetroTRK/Portable/msg.c | 15 + .../MetroTRK/Portable/msg.cpp | 82 - .../Portable/{msgbuf.cpp => msgbuf.c} | 73 +- .../Portable/{msghndlr.cpp => msghndlr.c} | 515 +--- .../MetroTRK/Portable/mutex_TRK.c | 21 + .../MetroTRK/Portable/mutex_TRK.cpp | 39 - .../Portable/{notify.cpp => notify.c} | 12 +- .../Portable/{nubevent.cpp => nubevent.c} | 18 +- .../Portable/{nubinit.cpp => nubinit.c} | 96 +- .../MetroTRK/Portable/serpoll.c | 167 ++ .../MetroTRK/Portable/serpoll.cpp | 455 --- .../Portable/{support.cpp => support.c} | 161 +- .../Os/dolphin/{UDP_Stubs.cpp => UDP_Stubs.c} | 56 +- .../{dolphin_trk.cpp => dolphin_trk.c} | 54 +- ...olphin_trk_glue.cpp => dolphin_trk_glue.c} | 360 +-- libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.c | 17 + .../Os/dolphin/targcont.cpp | 37 - .../Os/dolphin/target_options.c | 19 + .../Os/dolphin/target_options.cpp | 45 - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.c | 45 + .../TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.cpp | 42 - .../ppc/Export/{targsupp.cpp => targsupp.c} | 27 +- .../ppc/Generic/flush_cache.c | 31 + .../ppc/Generic/flush_cache.cpp | 32 - .../{mpc_7xx_603e.cpp => mpc_7xx_603e.c} | 8 +- .../ppc/Generic/{targimpl.cpp => targimpl.c} | 104 +- .../{CircleBuffer.cpp => CircleBuffer.c} | 14 +- .../TRK_MINNOW_DOLPHIN/utils/common/MWTrace.c | 9 + .../utils/common/MWTrace.cpp | 32 - .../utils/gc/MWCriticalSection_gc.c | 31 + .../utils/gc/MWCriticalSection_gc.cpp | 52 - libs/amcstubs/AmcExi2Stubs.c | 38 + libs/amcstubs/AmcExi2Stubs.cpp | 69 - libs/amcstubs/Makefile | 10 +- libs/dolphin/ai/Makefile | 11 +- libs/dolphin/ai/{ai.cpp => ai.c} | 130 +- libs/dolphin/ar/Makefile | 12 +- libs/dolphin/ar/{ar.cpp => ar.c} | 110 +- libs/dolphin/ar/{arq.cpp => arq.c} | 94 +- .../dolphin/card/{CARDBios.cpp => CARDBios.c} | 190 +- .../card/{CARDBlock.cpp => CARDBlock.c} | 22 +- .../card/{CARDCheck.cpp => CARDCheck.c} | 40 +- .../card/{CARDCreate.cpp => CARDCreate.c} | 38 +- libs/dolphin/card/{CARDDir.cpp => CARDDir.c} | 20 +- .../card/{CARDFormat.cpp => CARDFormat.c} | 40 +- .../card/{CARDMount.cpp => CARDMount.c} | 84 +- libs/dolphin/card/{CARDNet.cpp => CARDNet.c} | 8 +- .../dolphin/card/{CARDOpen.cpp => CARDOpen.c} | 24 +- .../dolphin/card/{CARDRdwr.cpp => CARDRdwr.c} | 16 +- .../dolphin/card/{CARDRead.cpp => CARDRead.c} | 30 +- .../dolphin/card/{CARDStat.cpp => CARDStat.c} | 28 +- .../card/{CARDUnlock.cpp => CARDUnlock.c} | 40 +- .../card/{CARDWrite.cpp => CARDWrite.c} | 38 +- libs/dolphin/card/Makefile | 36 +- libs/dolphin/db/Makefile | 10 +- libs/dolphin/db/{db.cpp => db.c} | 21 +- libs/dolphin/dsp/Makefile | 14 +- libs/dolphin/dsp/{dsp.cpp => dsp.c} | 166 +- .../dsp/{dsp_debug.cpp => dsp_debug.c} | 2 +- libs/dolphin/dsp/dsp_task.c | 129 + libs/dolphin/dsp/dsp_task.cpp | 463 --- libs/dolphin/dvd/Makefile | 24 +- libs/dolphin/dvd/{dvd.cpp => dvd.c} | 354 +-- libs/dolphin/dvd/{dvdFatal.cpp => dvdFatal.c} | 2 +- libs/dolphin/dvd/{dvderror.cpp => dvderror.c} | 8 +- libs/dolphin/dvd/{dvdfs.cpp => dvdfs.c} | 268 +- .../dvd/{dvdidutils.cpp => dvdidutils.c} | 4 +- libs/dolphin/dvd/{dvdlow.cpp => dvdlow.c} | 64 +- libs/dolphin/dvd/{dvdqueue.cpp => dvdqueue.c} | 14 +- libs/dolphin/dvd/{fstload.cpp => fstload.c} | 113 +- libs/dolphin/gd/GDBase.c | 50 + libs/dolphin/gd/GDBase.cpp | 74 - .../gd/{GDGeometry.cpp => GDGeometry.c} | 10 +- libs/dolphin/gd/Makefile | 12 +- libs/dolphin/gx/{GXAttr.cpp => GXAttr.c} | 50 +- libs/dolphin/gx/GXBump.c | 204 ++ libs/dolphin/gx/GXBump.cpp | 125 - .../gx/{GXDisplayList.cpp => GXDisplayList.c} | 7 +- libs/dolphin/gx/{GXFifo.cpp => GXFifo.c} | 97 +- .../gx/{GXFrameBuf.cpp => GXFrameBuf.c} | 66 +- libs/dolphin/gx/GXGeometry.c | 166 ++ libs/dolphin/gx/GXGeometry.cpp | 127 - libs/dolphin/gx/{GXInit.cpp => GXInit.c} | 166 +- libs/dolphin/gx/GXLight.c | 232 ++ libs/dolphin/gx/GXLight.cpp | 201 -- libs/dolphin/gx/{GXMisc.cpp => GXMisc.c} | 109 +- libs/dolphin/gx/{GXPerf.cpp => GXPerf.c} | 16 +- libs/dolphin/gx/{GXPixel.cpp => GXPixel.c} | 44 +- libs/dolphin/gx/{GXTev.cpp => GXTev.c} | 67 +- .../dolphin/gx/{GXTexture.cpp => GXTexture.c} | 84 +- .../gx/{GXTransform.cpp => GXTransform.c} | 65 +- libs/dolphin/gx/Makefile | 35 +- libs/dolphin/mtx/Makefile | 18 +- libs/dolphin/mtx/mtx.c | 533 ++++ libs/dolphin/mtx/mtx.cpp | 215 -- libs/dolphin/mtx/{mtx44.cpp => mtx44.c} | 6 +- libs/dolphin/mtx/mtxvec.c | 157 + libs/dolphin/mtx/mtxvec.cpp | 52 - libs/dolphin/mtx/{quat.cpp => quat.c} | 7 +- libs/dolphin/mtx/{vec.cpp => vec.c} | 24 +- libs/dolphin/os/Makefile | 53 +- libs/dolphin/os/{OS.cpp => OS.c} | 465 ++- libs/dolphin/os/{OSAlarm.cpp => OSAlarm.c} | 82 +- libs/dolphin/os/OSAlloc.c | 144 + libs/dolphin/os/OSAlloc.cpp | 84 - libs/dolphin/os/{OSArena.cpp => OSArena.c} | 46 +- .../os/{OSAudioSystem.cpp => OSAudioSystem.c} | 8 +- libs/dolphin/os/OSCache.c | 513 ++++ libs/dolphin/os/OSCache.cpp | 767 ----- libs/dolphin/os/OSContext.c | 660 +++++ libs/dolphin/os/OSContext.cpp | 597 ---- libs/dolphin/os/OSError.c | 177 ++ libs/dolphin/os/OSError.cpp | 646 ----- libs/dolphin/os/{OSExec.cpp => OSExec.c} | 125 +- libs/dolphin/os/OSFont.c | 242 ++ libs/dolphin/os/OSFont.cpp | 2543 ----------------- .../os/{OSInterrupt.cpp => OSInterrupt.c} | 209 +- libs/dolphin/os/{OSLink.cpp => OSLink.c} | 122 +- libs/dolphin/os/{OSMemory.cpp => OSMemory.c} | 117 +- .../dolphin/os/{OSMessage.cpp => OSMessage.c} | 4 +- libs/dolphin/os/{OSMutex.cpp => OSMutex.c} | 4 +- libs/dolphin/os/{OSReboot.cpp => OSReboot.c} | 36 +- libs/dolphin/os/{OSReset.cpp => OSReset.c} | 168 +- .../dolphin/os/{OSResetSW.cpp => OSResetSW.c} | 13 +- libs/dolphin/os/{OSRtc.cpp => OSRtc.c} | 22 +- libs/dolphin/os/{OSSync.cpp => OSSync.c} | 31 +- libs/dolphin/os/OSThread.c | 502 ++++ libs/dolphin/os/OSThread.cpp | 2488 ---------------- libs/dolphin/os/{OSTime.cpp => OSTime.c} | 62 +- ...{__ppc_eabi_init.cpp => __ppc_eabi_init.c} | 8 +- libs/dolphin/pad/Makefile | 12 +- libs/dolphin/pad/{Pad.cpp => Pad.c} | 156 +- libs/dolphin/pad/{Padclamp.cpp => Padclamp.c} | 8 +- libs/dolphin/si/Makefile | 12 +- libs/dolphin/si/{SIBios.cpp => SIBios.c} | 230 +- .../{SISamplingRate.cpp => SISamplingRate.c} | 74 +- libs/dolphin/vi/Makefile | 10 +- libs/dolphin/vi/{vi.cpp => vi.c} | 436 +-- libs/exi/{EXIBios.cpp => EXIBios.c} | 342 +-- libs/exi/{EXIUart.cpp => EXIUart.c} | 28 +- libs/exi/Makefile | 12 +- rel/d/a/d_a_alldie/d_a_alldie.cpp | 313 +- rel/d/a/d_a_swc00/d_a_swc00.cpp | 109 +- rel/d/a/d_a_tboxSw/d_a_tboxSw.cpp | 134 +- rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp | 8 +- rel/d/a/kytag/d_a_kytag14/d_a_kytag14.cpp | 163 +- rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.cpp | 123 +- rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp | 309 +- .../d_a_tag_instruction.cpp | 50 +- src/d/a/d_a_alink.cpp | 732 +++-- src/d/a/d_a_alink_boom.inc | 12 +- src/d/a/d_a_alink_canoe.inc | 2 +- src/d/a/d_a_alink_copyrod.inc | 10 +- src/d/a/d_a_alink_cut.inc | 16 +- src/d/a/d_a_alink_damage.inc | 10 +- src/d/a/d_a_alink_demo.inc | 194 +- src/d/a/d_a_alink_grab.inc | 12 +- src/d/a/d_a_alink_guard.inc | 2 +- src/d/a/d_a_alink_hook.inc | 2 +- src/d/a/d_a_alink_kandelaar.inc | 2 +- src/d/a/d_a_alink_link.inc | 994 ++++++- src/d/a/d_a_alink_spinner.inc | 44 +- src/d/a/d_a_alink_swim.inc | 4 +- src/d/a/d_a_alink_swindow.inc | 6 +- src/d/a/d_a_alink_whistle.inc | 4 +- src/d/a/d_a_alink_wolf.inc | 4 +- src/d/a/d_a_player.cpp | 29 +- src/d/bg/d_bg_plc.cpp | 2 +- src/d/bg/d_bg_s.cpp | 4 +- src/d/bg/d_bg_w.cpp | 1222 ++++---- src/d/bg/d_bg_w_kcol.cpp | 569 ++-- src/d/bg/d_bg_w_sv.cpp | 150 +- src/d/cc/d_cc_mass_s.cpp | 19 +- src/d/com/d_com_static.cpp | 2 +- src/d/d_drawlist.cpp | 6 - src/f_op/f_op_actor_mng.cpp | 2 +- src/m_Do/m_Do_ext.cpp | 3 - tools/decompctx.py | 68 + 665 files changed, 14863 insertions(+), 30502 deletions(-) delete mode 100644 asm/MSL_C/Math/Double_precision/e_acos/__ieee754_acos.s delete mode 100644 asm/MSL_C/Math/Double_precision/e_asin/__ieee754_asin.s delete mode 100644 asm/MSL_C/Math/Double_precision/e_atan2/__ieee754_atan2.s delete mode 100644 asm/MSL_C/Math/Double_precision/e_exp/__ieee754_exp.s delete mode 100644 asm/MSL_C/Math/Double_precision/e_pow/__ieee754_pow.s delete mode 100644 asm/MSL_C/Math/Double_precision/e_rem_pio2/__ieee754_rem_pio2.s delete mode 100644 asm/MSL_C/Math/Double_precision/e_sqrt/__ieee754_sqrt.s delete mode 100644 asm/MSL_C/Math/Double_precision/k_cos/__kernel_cos.s delete mode 100644 asm/MSL_C/Math/Double_precision/k_rem_pio2/__kernel_rem_pio2.s delete mode 100644 asm/MSL_C/Math/Double_precision/k_sin/__kernel_sin.s delete mode 100644 asm/MSL_C/Math/Double_precision/k_tan/__kernel_tan.s delete mode 100644 asm/MSL_C/Math/Double_precision/s_atan/atan.s delete mode 100644 asm/MSL_C/Math/Double_precision/s_ldexp/ldexp.s delete mode 100644 asm/Runtime.PPCEABI.H/CPlusLibPPC/__copy.s delete mode 100644 asm/Runtime.PPCEABI.H/GCN_mem_alloc/__sys_free.s delete mode 100644 asm/Runtime.PPCEABI.H/__va_arg/__va_arg.s delete mode 100644 asm/Runtime.PPCEABI.H/ptmf/__ptmf_cmpr.s delete mode 100644 asm/Runtime.PPCEABI.H/ptmf/__ptmf_scall.s delete mode 100644 asm/Runtime.PPCEABI.H/ptmf/__ptmf_test.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch/TRKDispatchMessage.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK/TRK_main.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK/TRK_fill_mem.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg/TRKMessageSend.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont/TRKTargetContinue.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/GetUseSerialIO.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/SetUseSerialIO.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put/usr_puts_serial.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache/TRK_flush_cache.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/utils/common/MWTrace/MWTRACE.s delete mode 100644 asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWExitCriticalSection.s delete mode 100644 asm/d/a/d_a_alink/allAnimePlay__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkAtnLeftAnime__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkAtnRightAnime__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkDashAnime__9daAlink_cCFv.s delete mode 100644 asm/d/a/d_a_alink/checkDeadHP__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkFinalBattle__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c.s delete mode 100644 asm/d/a/d_a_alink/checkRestartDead__9daAlink_cFii.s delete mode 100644 asm/d/a/d_a_alink/checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s delete mode 100644 asm/d/a/d_a_alink/func_800AC5B4.s delete mode 100644 asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s delete mode 100644 asm/d/a/d_a_alink/getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s delete mode 100644 asm/d/a/d_a_alink/getMoveGroundAngleSpeedRate__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl.s delete mode 100644 asm/d/a/d_a_alink/orderTalk__9daAlink_cFi.s delete mode 100644 asm/d/a/d_a_alink/procCoTwGate__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procCutFastReady__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/procDemoCommon__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setDeadRideSyncPos__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setGetSubBgm__9daAlink_cFi.s delete mode 100644 asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s delete mode 100644 asm/d/a/d_a_alink/setSandDownBgCheckWallH__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c.s delete mode 100644 asm/d/a/d_a_alink/setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf.s delete mode 100644 asm/d/a/d_a_alink/setTalkStatus__9daAlink_cFv.s delete mode 100644 asm/d/a/d_a_alink/setUnderAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERPC16daAlinkHIO_anm_c.s delete mode 100644 asm/d/bg/d_bg_w/BlckConnect__4cBgWFPUsPii.s delete mode 100644 asm/d/bg/d_bg_w/CalcPlane__4cBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/CallRideCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c.s delete mode 100644 asm/d/bg/d_bg_w/CaptPoly__4dBgWFR13dBgS_CaptPoly.s delete mode 100644 asm/d/bg/d_bg_w/ChkLock__4cBgWCFv.s delete mode 100644 asm/d/bg/d_bg_w/ChkMemoryError__4cBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/ChkMoveBg__4cBgWCFv.s delete mode 100644 asm/d/bg/d_bg_w/ChkMoveFlag__4dBgWCFv.s delete mode 100644 asm/d/bg/d_bg_w/ChkNotReady__4cBgWCFv.s delete mode 100644 asm/d/bg/d_bg_w/ChkShdwDrawThrough__4cBgWFiP16cBgS_PolyPassChk.s delete mode 100644 asm/d/bg/d_bg_w/ChkShdwDrawThrough__4dBgWFiP16cBgS_PolyPassChk.s delete mode 100644 asm/d/bg/d_bg_w/CopyOldMtx__4cBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/GetAttackThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetBnd__4cBgWCFv.s delete mode 100644 asm/d/bg/d_bg_w/GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetExitId__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetGroundCode__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetGrpInf__4cBgWCFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetIronBallThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetLinkNo__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetMaskPolyInf0_NoShift__4cBgWCFiUl.s delete mode 100644 asm/d/bg/d_bg_w/GetMaskPolyInf1_NoShift__4cBgWCFiUl.s delete mode 100644 asm/d/bg/d_bg_w/GetMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyArrowThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyBombThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyBoomerangThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyCamThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyColor__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyInf0__4cBgWCFiUlUl.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyInf1__4cBgWCFiUlUl.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyInf2__4cBgWCFiUlUl.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyInfId__4cBgWCFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyLinkThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyObjThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetPolyRopeThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetRoomCamId__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetRoomPathId__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetShdwThrough__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetTopUnder__4cBgWCFPfPf.s delete mode 100644 asm/d/bg/d_bg_w/GetTrans__4cBgWCFP4cXyz.s delete mode 100644 asm/d/bg/d_bg_w/GetTriGrp__4cBgWCFi.s delete mode 100644 asm/d/bg/d_bg_w/GetTriPla__4cBgWCFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GetTriPnt__4cBgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s delete mode 100644 asm/d/bg/d_bg_w/GetUnderwaterRoofCode__4dBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w/GlobalVtx__4cBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/GroundCross__4cBgWFP11cBgS_GndChk.s delete mode 100644 asm/d/bg/d_bg_w/LineCheck__4cBgWFP11cBgS_LinChk.s delete mode 100644 asm/d/bg/d_bg_w/MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz.s delete mode 100644 asm/d/bg/d_bg_w/MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz.s delete mode 100644 asm/d/bg/d_bg_w/MakeNodeTreeRp__4cBgWFi.s delete mode 100644 asm/d/bg/d_bg_w/Move__4cBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/Move__4dBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/OffMoveFlag__4dBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/RoofChk__4dBgWFP12dBgS_RoofChk.s delete mode 100644 asm/d/bg/d_bg_w/SetTri__4cBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/Set__4cBgWFP6cBgD_tUlPA3_A4_f.s delete mode 100644 asm/d/bg/d_bg_w/ShdwDraw__4cBgWFP13cBgS_ShdwDraw.s delete mode 100644 asm/d/bg/d_bg_w/SphChk__4dBgWFP11dBgS_SphChkPv.s delete mode 100644 asm/d/bg/d_bg_w/SplGrpChk__4dBgWFP14dBgS_SplGrpChk.s delete mode 100644 asm/d/bg/d_bg_w/WallCorrect__4dBgWFP9dBgS_Acch.s delete mode 100644 asm/d/bg/d_bg_w/__ct__11cBgW_GrpElmFv.s delete mode 100644 asm/d/bg/d_bg_w/__ct__11cBgW_TriElmFv.s delete mode 100644 asm/d/bg/d_bg_w/__ct__4dBgWFv.s delete mode 100644 asm/d/bg/d_bg_w/dBgW_NewSet__FP6cBgD_tUlPA3_A4_f.s delete mode 100644 asm/d/bg/d_bg_w_kcol/ChkNotReady__8dBgWKColCFv.s delete mode 100644 asm/d/bg/d_bg_w_kcol/ChkShdwDrawThrough__8dBgWKColFP5dBgPc.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetAttackThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetBnd__8dBgWKColCFv.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetExitId__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetIronBallThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyArrowThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyBombThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyBoomerangThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyCamThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyLinkThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyObjThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetPolyRopeThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetShdwThrough__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetTopUnder__8dBgWKColCFPfPf.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetUnderwaterRoofCode__8dBgWKColFi.s delete mode 100644 asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s delete mode 100644 asm/d/bg/d_bg_w_kcol/__ct__8dBgWKColFv.s delete mode 100644 asm/d/bg/d_bg_w_kcol/create__8dBgWKColFPvPv.s delete mode 100644 asm/d/bg/d_bg_w_kcol/getPolyCode__8dBgWKColCFiP5dBgPc.s delete mode 100644 asm/d/bg/d_bg_w_kcol/getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec.s delete mode 100644 asm/d/bg/d_bg_w_sv/CopyBackVtx__6dBgWSvFv.s delete mode 100644 asm/d/bg/d_bg_w_sv/Set__6dBgWSvFP6cBgD_tUl.s delete mode 100644 asm/dolphin/gd/GDBase/GDFlushCurrToMem.s delete mode 100644 asm/dolphin/gd/GDBase/GDInitGDLObj.s delete mode 100644 asm/dolphin/gd/GDBase/GDOverflowed.s delete mode 100644 asm/dolphin/gd/GDBase/GDPadCurr32.s delete mode 100644 asm/dolphin/gx/GXBump/GXSetIndTexCoordScale.s delete mode 100644 asm/dolphin/gx/GXBump/GXSetIndTexMtx.s delete mode 100644 asm/dolphin/gx/GXBump/GXSetIndTexOrder.s delete mode 100644 asm/dolphin/gx/GXBump/GXSetNumIndStages.s delete mode 100644 asm/dolphin/gx/GXBump/GXSetTevDirect.s delete mode 100644 asm/dolphin/gx/GXBump/GXSetTevIndirect.s delete mode 100644 asm/dolphin/gx/GXBump/__GXFlushTextureState.s delete mode 100644 asm/dolphin/gx/GXBump/__GXSetIndirectMask.s delete mode 100644 asm/dolphin/gx/GXFifo/GXGetFifoBase.s delete mode 100644 asm/dolphin/gx/GXFifo/GXGetFifoSize.s delete mode 100644 asm/dolphin/gx/GXFifo/GXInitFifoLimits.s delete mode 100644 asm/dolphin/gx/GXFifo/GXSaveCPUFifo.s delete mode 100644 asm/dolphin/gx/GXFifo/__GXFifoInit.s delete mode 100644 asm/dolphin/gx/GXGeometry/GXBegin.s delete mode 100644 asm/dolphin/gx/GXGeometry/GXEnableTexOffsets.s delete mode 100644 asm/dolphin/gx/GXGeometry/GXSetCoPlanar.s delete mode 100644 asm/dolphin/gx/GXGeometry/GXSetLineWidth.s delete mode 100644 asm/dolphin/gx/GXGeometry/GXSetPointSize.s delete mode 100644 asm/dolphin/gx/GXGeometry/__GXSendFlushPrim.s delete mode 100644 asm/dolphin/gx/GXGeometry/__GXSetDirtyState.s delete mode 100644 asm/dolphin/gx/GXGeometry/__GXSetGenMode.s delete mode 100644 asm/dolphin/gx/GXLight/GXInitLightAttn.s delete mode 100644 asm/dolphin/gx/GXLight/GXInitLightColor.s delete mode 100644 asm/dolphin/gx/GXLight/GXInitLightDir.s delete mode 100644 asm/dolphin/gx/GXLight/GXInitLightDistAttn.s delete mode 100644 asm/dolphin/gx/GXLight/GXInitLightPos.s delete mode 100644 asm/dolphin/gx/GXLight/GXInitLightSpot.s delete mode 100644 asm/dolphin/gx/GXLight/GXLoadLightObjImm.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXConcat.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXCopy.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXIdentity.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXInverse.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXQuat.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXRotTrig.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXScale.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXScaleApply.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXTrans.s delete mode 100644 asm/dolphin/mtx/mtx/PSMTXTransApply.s delete mode 100644 asm/dolphin/mtx/mtx/__PSMTXRotAxisRadInternal.s delete mode 100644 asm/dolphin/mtx/mtxvec/PSMTXMultVec.s delete mode 100644 asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s delete mode 100644 asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s delete mode 100644 asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s delete mode 100644 asm/dolphin/os/OS/InquiryCallback.s delete mode 100644 asm/dolphin/os/OS/OSDefaultExceptionHandler.s delete mode 100644 asm/dolphin/os/OS/OSExceptionVector.s delete mode 100644 asm/dolphin/os/OS/OSGetConsoleType.s delete mode 100644 asm/dolphin/os/OS/__DBVECTOR.s delete mode 100644 asm/dolphin/os/OS/__OSDBIntegrator.s delete mode 100644 asm/dolphin/os/OS/__OSDBJump.s delete mode 100644 asm/dolphin/os/OS/__OSEVEnd.s delete mode 100644 asm/dolphin/os/OS/__OSEVSetNumber.s delete mode 100644 asm/dolphin/os/OS/__OSFPRInit.s delete mode 100644 asm/dolphin/os/OS/__OSGetExceptionHandler.s delete mode 100644 asm/dolphin/os/OS/__OSPSInit.s delete mode 100644 asm/dolphin/os/OS/__OSSetExceptionHandler.s delete mode 100644 asm/dolphin/os/OSAlarm/DecrementerExceptionHandler.s delete mode 100644 asm/dolphin/os/OSAlarm/OSCreateAlarm.s delete mode 100644 asm/dolphin/os/OSAlloc/DLInsert.s delete mode 100644 asm/dolphin/os/OSAlloc/OSCreateHeap.s delete mode 100644 asm/dolphin/os/OSAlloc/OSFreeToHeap.s delete mode 100644 asm/dolphin/os/OSAlloc/OSInitAlloc.s delete mode 100644 asm/dolphin/os/OSAlloc/OSSetCurrentHeap.s delete mode 100644 asm/dolphin/os/OSArena/OSAllocFromArenaLo.s delete mode 100644 asm/dolphin/os/OSArena/OSSetArenaHi.s delete mode 100644 asm/dolphin/os/OSArena/OSSetArenaLo.s delete mode 100644 asm/dolphin/os/OSCache/DCEnable.s delete mode 100644 asm/dolphin/os/OSCache/DCFlushRange.s delete mode 100644 asm/dolphin/os/OSCache/DCFlushRangeNoSync.s delete mode 100644 asm/dolphin/os/OSCache/DCInvalidateRange.s delete mode 100644 asm/dolphin/os/OSCache/DCStoreRange.s delete mode 100644 asm/dolphin/os/OSCache/DCStoreRangeNoSync.s delete mode 100644 asm/dolphin/os/OSCache/DCZeroRange.s delete mode 100644 asm/dolphin/os/OSCache/ICEnable.s delete mode 100644 asm/dolphin/os/OSCache/ICFlashInvalidate.s delete mode 100644 asm/dolphin/os/OSCache/ICInvalidateRange.s delete mode 100644 asm/dolphin/os/OSCache/LCDisable.s delete mode 100644 asm/dolphin/os/OSCache/LCEnable.s delete mode 100644 asm/dolphin/os/OSCache/LCQueueWait.s delete mode 100644 asm/dolphin/os/OSCache/LCStoreBlocks.s delete mode 100644 asm/dolphin/os/OSCache/__LCEnable.s delete mode 100644 asm/dolphin/os/OSContext/OSClearContext.s delete mode 100644 asm/dolphin/os/OSContext/OSFillFPUContext.s delete mode 100644 asm/dolphin/os/OSContext/OSGetCurrentContext.s delete mode 100644 asm/dolphin/os/OSContext/OSGetStackPointer.s delete mode 100644 asm/dolphin/os/OSContext/OSInitContext.s delete mode 100644 asm/dolphin/os/OSContext/OSLoadContext.s delete mode 100644 asm/dolphin/os/OSContext/OSSaveContext.s delete mode 100644 asm/dolphin/os/OSContext/OSSaveFPUContext.s delete mode 100644 asm/dolphin/os/OSContext/OSSetCurrentContext.s delete mode 100644 asm/dolphin/os/OSContext/OSSwitchFPUContext.s delete mode 100644 asm/dolphin/os/OSContext/__OSLoadFPUContext.s delete mode 100644 asm/dolphin/os/OSContext/__OSSaveFPUContext.s delete mode 100644 asm/dolphin/os/OSExec/Callback.s delete mode 100644 asm/dolphin/os/OSExec/Run.s delete mode 100644 asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s delete mode 100644 asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s delete mode 100644 asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s delete mode 100644 asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s delete mode 100644 asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s delete mode 100644 asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s delete mode 100644 asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s delete mode 100644 asm/dolphin/os/OSLink/OSSetStringTable.s delete mode 100644 asm/dolphin/os/OSLink/__OSModuleInit.s delete mode 100644 asm/dolphin/os/OSMemory/Config24MB.s delete mode 100644 asm/dolphin/os/OSMemory/Config48MB.s delete mode 100644 asm/dolphin/os/OSMemory/RealMode.s delete mode 100644 asm/dolphin/os/OSReboot/OSGetSaveRegion.s delete mode 100644 asm/dolphin/os/OSReboot/OSSetSaveRegion.s delete mode 100644 asm/dolphin/os/OSReset/Reset.s delete mode 100644 asm/dolphin/os/OSSync/SystemCallVector.s delete mode 100644 asm/dolphin/os/OSSync/__OSSystemCallVectorEnd.s delete mode 100644 asm/dolphin/os/OSThread/OSGetCurrentThread.s delete mode 100644 asm/dolphin/os/OSThread/OSGetThreadPriority.s delete mode 100644 asm/dolphin/os/OSThread/OSInitThreadQueue.s delete mode 100644 asm/dolphin/os/OSThread/OSIsThreadTerminated.s delete mode 100644 asm/dolphin/os/OSThread/UnsetRun.s delete mode 100644 asm/dolphin/os/OSThread/__OSGetEffectivePriority.s delete mode 100644 asm/dolphin/os/OSTime/OSGetTime.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/actionCheck__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/actionEvent__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/actionNext__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/actionOrder__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/actionTimer__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Delete__FP10daAlldie_c.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Execute__FP10daAlldie_c.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/execute__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/getEventNo__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_alldie/d_a_alldie/getSwbit__10daAlldie_cFv.s delete mode 100644 asm/rel/d/a/d_a_swc00/d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s delete mode 100644 asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/create__10daTboxSw_cFv.s delete mode 100644 asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Delete__FP10daTboxSw_c.s delete mode 100644 asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Draw__FP10daTboxSw_c.s delete mode 100644 asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Execute__FP10daTboxSw_c.s delete mode 100644 asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/execute__10daTboxSw_cFv.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Execute__FP13kytag14_class.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/__dt__13daTagGstart_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/create__13daTagGstart_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Delete__FP13daTagGstart_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Execute__FP13daTagGstart_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/execute__13daTagGstart_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__dt__12daTagHstop_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/create__12daTagHstop_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Delete__FP12daTagHstop_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Execute__FP12daTagHstop_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/execute__12daTagHstop_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/setActive__12daTagHstop_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Delete__FP11daTagInst_c.s create mode 100644 libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.c delete mode 100644 libs/Runtime.PPCEABI.H/GCN_mem_alloc.cpp create mode 100644 libs/Runtime.PPCEABI.H/__va_arg.c delete mode 100644 libs/Runtime.PPCEABI.H/__va_arg.cpp create mode 100644 libs/Runtime.PPCEABI.H/ptmf.c delete mode 100644 libs/Runtime.PPCEABI.H/ptmf.cpp rename libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/{main.cpp => main.c} (56%) rename libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/{main.cpp => main.c} (57%) rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/{mslsupp.cpp => mslsupp.c} (82%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.cpp create mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.cpp rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{mainloop.cpp => mainloop.c} (51%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.cpp create mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.cpp rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{msgbuf.cpp => msgbuf.c} (81%) rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{msghndlr.cpp => msghndlr.c} (53%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.cpp rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{notify.cpp => notify.c} (71%) rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{nubevent.cpp => nubevent.c} (85%) rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{nubinit.cpp => nubinit.c} (53%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.cpp rename libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/{support.cpp => support.c} (52%) rename libs/TRK_MINNOW_DOLPHIN/Os/dolphin/{UDP_Stubs.cpp => UDP_Stubs.c} (54%) rename libs/TRK_MINNOW_DOLPHIN/Os/dolphin/{dolphin_trk.cpp => dolphin_trk.c} (80%) rename libs/TRK_MINNOW_DOLPHIN/Os/dolphin/{dolphin_trk_glue.cpp => dolphin_trk_glue.c} (58%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.cpp create mode 100644 libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.cpp create mode 100644 libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.cpp rename libs/TRK_MINNOW_DOLPHIN/ppc/Export/{targsupp.cpp => targsupp.c} (72%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.cpp rename libs/TRK_MINNOW_DOLPHIN/ppc/Generic/{mpc_7xx_603e.cpp => mpc_7xx_603e.c} (82%) rename libs/TRK_MINNOW_DOLPHIN/ppc/Generic/{targimpl.cpp => targimpl.c} (84%) rename libs/TRK_MINNOW_DOLPHIN/utils/common/{CircleBuffer.cpp => CircleBuffer.c} (83%) create mode 100644 libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.cpp create mode 100644 libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.c delete mode 100644 libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.cpp create mode 100644 libs/amcstubs/AmcExi2Stubs.c delete mode 100644 libs/amcstubs/AmcExi2Stubs.cpp rename libs/dolphin/ai/{ai.cpp => ai.c} (80%) rename libs/dolphin/ar/{ar.cpp => ar.c} (74%) rename libs/dolphin/ar/{arq.cpp => arq.c} (74%) rename libs/dolphin/card/{CARDBios.cpp => CARDBios.c} (76%) rename libs/dolphin/card/{CARDBlock.cpp => CARDBlock.c} (80%) rename libs/dolphin/card/{CARDCheck.cpp => CARDCheck.c} (74%) rename libs/dolphin/card/{CARDCreate.cpp => CARDCreate.c} (61%) rename libs/dolphin/card/{CARDDir.cpp => CARDDir.c} (78%) rename libs/dolphin/card/{CARDFormat.cpp => CARDFormat.c} (60%) rename libs/dolphin/card/{CARDMount.cpp => CARDMount.c} (70%) rename libs/dolphin/card/{CARDNet.cpp => CARDNet.c} (85%) rename libs/dolphin/card/{CARDOpen.cpp => CARDOpen.c} (80%) rename libs/dolphin/card/{CARDRdwr.cpp => CARDRdwr.c} (81%) rename libs/dolphin/card/{CARDRead.cpp => CARDRead.c} (69%) rename libs/dolphin/card/{CARDStat.cpp => CARDStat.c} (72%) rename libs/dolphin/card/{CARDUnlock.cpp => CARDUnlock.c} (86%) rename libs/dolphin/card/{CARDWrite.cpp => CARDWrite.c} (65%) rename libs/dolphin/db/{db.cpp => db.c} (81%) rename libs/dolphin/dsp/{dsp.cpp => dsp.c} (55%) rename libs/dolphin/dsp/{dsp_debug.cpp => dsp_debug.c} (93%) create mode 100644 libs/dolphin/dsp/dsp_task.c delete mode 100644 libs/dolphin/dsp/dsp_task.cpp rename libs/dolphin/dvd/{dvd.cpp => dvd.c} (77%) rename libs/dolphin/dvd/{dvdFatal.cpp => dvdFatal.c} (94%) rename libs/dolphin/dvd/{dvderror.cpp => dvderror.c} (90%) rename libs/dolphin/dvd/{dvdfs.cpp => dvdfs.c} (57%) rename libs/dolphin/dvd/{dvdidutils.cpp => dvdidutils.c} (88%) rename libs/dolphin/dvd/{dvdlow.cpp => dvdlow.c} (88%) rename libs/dolphin/dvd/{dvdqueue.cpp => dvdqueue.c} (86%) rename libs/dolphin/dvd/{fstload.cpp => fstload.c} (55%) create mode 100644 libs/dolphin/gd/GDBase.c delete mode 100644 libs/dolphin/gd/GDBase.cpp rename libs/dolphin/gd/{GDGeometry.cpp => GDGeometry.c} (93%) rename libs/dolphin/gx/{GXAttr.cpp => GXAttr.c} (91%) create mode 100644 libs/dolphin/gx/GXBump.c delete mode 100644 libs/dolphin/gx/GXBump.cpp rename libs/dolphin/gx/{GXDisplayList.cpp => GXDisplayList.c} (89%) rename libs/dolphin/gx/{GXFifo.cpp => GXFifo.c} (78%) rename libs/dolphin/gx/{GXFrameBuf.cpp => GXFrameBuf.c} (84%) create mode 100644 libs/dolphin/gx/GXGeometry.c delete mode 100644 libs/dolphin/gx/GXGeometry.cpp rename libs/dolphin/gx/{GXInit.cpp => GXInit.c} (78%) create mode 100644 libs/dolphin/gx/GXLight.c delete mode 100644 libs/dolphin/gx/GXLight.cpp rename libs/dolphin/gx/{GXMisc.cpp => GXMisc.c} (76%) rename libs/dolphin/gx/{GXPerf.cpp => GXPerf.c} (93%) rename libs/dolphin/gx/{GXPixel.cpp => GXPixel.c} (83%) rename libs/dolphin/gx/{GXTev.cpp => GXTev.c} (76%) rename libs/dolphin/gx/{GXTexture.cpp => GXTexture.c} (88%) rename libs/dolphin/gx/{GXTransform.cpp => GXTransform.c} (78%) create mode 100644 libs/dolphin/mtx/mtx.c delete mode 100644 libs/dolphin/mtx/mtx.cpp rename libs/dolphin/mtx/{mtx44.cpp => mtx44.c} (85%) create mode 100644 libs/dolphin/mtx/mtxvec.c delete mode 100644 libs/dolphin/mtx/mtxvec.cpp rename libs/dolphin/mtx/{quat.cpp => quat.c} (88%) rename libs/dolphin/mtx/{vec.cpp => vec.c} (83%) rename libs/dolphin/os/{OS.cpp => OS.c} (55%) rename libs/dolphin/os/{OSAlarm.cpp => OSAlarm.c} (66%) create mode 100644 libs/dolphin/os/OSAlloc.c delete mode 100644 libs/dolphin/os/OSAlloc.cpp rename libs/dolphin/os/{OSArena.cpp => OSArena.c} (54%) rename libs/dolphin/os/{OSAudioSystem.cpp => OSAudioSystem.c} (92%) create mode 100644 libs/dolphin/os/OSCache.c delete mode 100644 libs/dolphin/os/OSCache.cpp create mode 100644 libs/dolphin/os/OSContext.c delete mode 100644 libs/dolphin/os/OSContext.cpp create mode 100644 libs/dolphin/os/OSError.c delete mode 100644 libs/dolphin/os/OSError.cpp rename libs/dolphin/os/{OSExec.cpp => OSExec.c} (63%) create mode 100644 libs/dolphin/os/OSFont.c delete mode 100644 libs/dolphin/os/OSFont.cpp rename libs/dolphin/os/{OSInterrupt.cpp => OSInterrupt.c} (52%) rename libs/dolphin/os/{OSLink.cpp => OSLink.c} (62%) rename libs/dolphin/os/{OSMemory.cpp => OSMemory.c} (53%) rename libs/dolphin/os/{OSMessage.cpp => OSMessage.c} (94%) rename libs/dolphin/os/{OSMutex.cpp => OSMutex.c} (97%) rename libs/dolphin/os/{OSReboot.cpp => OSReboot.c} (58%) rename libs/dolphin/os/{OSReset.cpp => OSReset.c} (62%) rename libs/dolphin/os/{OSResetSW.cpp => OSResetSW.c} (88%) rename libs/dolphin/os/{OSRtc.cpp => OSRtc.c} (93%) rename libs/dolphin/os/{OSSync.cpp => OSSync.c} (55%) create mode 100644 libs/dolphin/os/OSThread.c delete mode 100644 libs/dolphin/os/OSThread.cpp rename libs/dolphin/os/{OSTime.cpp => OSTime.c} (64%) rename libs/dolphin/os/{__ppc_eabi_init.cpp => __ppc_eabi_init.c} (90%) rename libs/dolphin/pad/{Pad.cpp => Pad.c} (79%) rename libs/dolphin/pad/{Padclamp.cpp => Padclamp.c} (94%) rename libs/dolphin/si/{SIBios.cpp => SIBios.c} (72%) rename libs/dolphin/si/{SISamplingRate.cpp => SISamplingRate.c} (69%) rename libs/dolphin/vi/{vi.cpp => vi.c} (73%) rename libs/exi/{EXIBios.cpp => EXIBios.c} (63%) rename libs/exi/{EXIUart.cpp => EXIUart.c} (80%) create mode 100644 tools/decompctx.py diff --git a/Progress.md b/Progress.md index 6803a8ff850..a1cb743343b 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 91.849662% | 8700 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 16.800351% | 604232 | 3596544 +.text | 17.786186% | 639688 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 25.557618% | 1027588 | 4020672 +Total | 26.439461% | 1063044 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 25.557618% | 1027588 | 4020672 -RELs | 33.217047% | 3820068 | 11500324 -Total | 31.232893% | 4847656 | 15520996 +main.dol | 26.439461% | 1063044 | 4020672 +RELs | 33.257498% | 3824720 | 11500324 +Total | 31.491304% | 4887764 | 15520996 ## RELs @@ -39,7 +39,7 @@ d_a_ppolamp | 42.341463% | 1736 | 4100 d_a_demo_item | 33.863165% | 3920 | 11576 d_a_cstaf | 100.000000% | 11860 | 11860 d_a_bg | 35.526882% | 3304 | 9300 -d_a_tboxSw | 66.141732% | 672 | 1016 +d_a_tboxSw | 100.000000% | 1016 | 1016 d_a_title | 39.558574% | 2796 | 7068 d_a_L7low_dr | 38.905775% | 1536 | 3948 d_a_andsw2 | 29.472774% | 1364 | 4628 @@ -70,7 +70,7 @@ d_a_izumi_gate | 57.729941% | 1180 | 2044 d_a_mirror | 32.707993% | 3208 | 9808 d_a_cow | 22.936702% | 12784 | 55736 d_a_disappear | 45.091514% | 1084 | 2404 -d_a_swc00 | 42.329545% | 1788 | 4224 +d_a_swc00 | 43.087121% | 1820 | 4224 d_a_spinner | 27.874187% | 5140 | 18440 d_a_swLBall | 33.651805% | 1268 | 3768 d_a_suspend | 68.303571% | 612 | 896 @@ -78,7 +78,7 @@ d_a_coach_fire | 44.050104% | 1688 | 3832 d_a_bg_obj | 32.434657% | 6304 | 19436 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_vrbox2 | 34.977578% | 2184 | 6244 -d_a_alldie | 39.885496% | 836 | 2096 +d_a_alldie | 100.000000% | 2096 | 2096 d_a_bd | 31.115418% | 5780 | 18576 d_a_scene_exit2 | 44.782034% | 1356 | 3028 d_a_swhit0 | 35.577421% | 2748 | 7724 @@ -139,7 +139,7 @@ d_a_tag_evtarea | 37.091319% | 1316 | 3548 d_a_tag_Lv8Gate | 43.347193% | 1668 | 3848 d_a_tag_ret_room | 49.168646% | 828 | 1684 d_a_tag_waterfall | 46.361502% | 1580 | 3408 -d_a_tag_gstart | 57.615894% | 696 | 1208 +d_a_tag_gstart | 100.000000% | 1208 | 1208 d_a_tag_mstop | 36.151961% | 1180 | 3264 d_a_tag_escape | 100.000000% | 712 | 712 d_a_tag_setrestart | 49.130435% | 904 | 1840 @@ -162,10 +162,10 @@ d_a_tag_howl | 46.934461% | 888 | 1892 d_a_tag_chkpoint | 39.852399% | 864 | 2168 d_a_tag_firewall | 35.325132% | 1608 | 4552 d_a_tag_lv6CstaSw | 51.406250% | 1316 | 2560 -d_a_tag_instruction | 82.022472% | 584 | 712 +d_a_tag_instruction | 100.000000% | 712 | 712 d_a_tag_mwait | 35.082873% | 1016 | 2896 d_a_tag_ajnot | 56.493506% | 696 | 1232 -d_a_tag_hstop | 46.962617% | 1608 | 3424 +d_a_tag_hstop | 100.000000% | 3424 | 3424 d_a_tag_chgrestart | 48.868778% | 864 | 1768 d_a_tag_cstasw | 100.000000% | 2560 | 2560 d_a_tag_lv5soup | 100.000000% | 1908 | 1908 @@ -195,7 +195,7 @@ d_a_kytag01 | 35.156250% | 1260 | 3584 d_a_kytag08 | 31.379026% | 1520 | 4844 d_a_kytag00 | 33.522084% | 2368 | 7064 d_a_kytag02 | 54.888889% | 988 | 1800 -d_a_kytag14 | 60.227273% | 848 | 1408 +d_a_kytag14 | 100.000000% | 1408 | 1408 d_a_kytag11 | 52.643172% | 956 | 1816 d_a_kytag05 | 100.000000% | 816 | 816 d_a_kytag13 | 30.696576% | 2080 | 6776 @@ -785,4 +785,4 @@ d_a_b_oh2 | 37.960954% | 2100 | 5532 d_a_b_bq | 28.033347% | 11164 | 39824 d_a_b_zant_sima | 40.995025% | 1648 | 4020 d_a_b_gm | 30.376176% | 11628 | 38280 -Total | 33.217047% | 3820068 | 11500324 +Total | 33.257498% | 3824720 | 11500324 diff --git a/asm/MSL_C/Math/Double_precision/e_acos/__ieee754_acos.s b/asm/MSL_C/Math/Double_precision/e_acos/__ieee754_acos.s deleted file mode 100644 index 319d9622c83..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_acos/__ieee754_acos.s +++ /dev/null @@ -1,151 +0,0 @@ -lbl_80369274: -/* 80369274 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80369278 7C 08 02 A6 */ mflr r0 -/* 8036927C 90 01 00 34 */ stw r0, 0x34(r1) -/* 80369280 DB E1 00 20 */ stfd f31, 0x20(r1) -/* 80369284 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */ -/* 80369288 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036928C 3C 00 3F F0 */ lis r0, 0x3ff0 -/* 80369290 80 81 00 08 */ lwz r4, 8(r1) -/* 80369294 54 83 00 7E */ clrlwi r3, r4, 1 -/* 80369298 7C 03 00 00 */ cmpw r3, r0 -/* 8036929C 41 80 00 38 */ blt lbl_803692D4 -/* 803692A0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 803692A4 3C 63 C0 10 */ addis r3, r3, 0xc010 -/* 803692A8 7C 60 03 79 */ or. r0, r3, r0 -/* 803692AC 40 82 00 1C */ bne lbl_803692C8 -/* 803692B0 2C 04 00 00 */ cmpwi r4, 0 -/* 803692B4 40 81 00 0C */ ble lbl_803692C0 -/* 803692B8 C8 22 CC 78 */ lfd f1, lit_83(r2) -/* 803692BC 48 00 01 DC */ b lbl_80369498 -lbl_803692C0: -/* 803692C0 C8 22 CC 80 */ lfd f1, lit_84(r2) -/* 803692C4 48 00 01 D4 */ b lbl_80369498 -lbl_803692C8: -/* 803692C8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 803692CC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 803692D0 48 00 01 C8 */ b lbl_80369498 -lbl_803692D4: -/* 803692D4 3C 00 3F E0 */ lis r0, 0x3fe0 -/* 803692D8 7C 03 00 00 */ cmpw r3, r0 -/* 803692DC 40 80 00 8C */ bge lbl_80369368 -/* 803692E0 3C 00 3C 60 */ lis r0, 0x3c60 -/* 803692E4 7C 03 00 00 */ cmpw r3, r0 -/* 803692E8 41 81 00 0C */ bgt lbl_803692F4 -/* 803692EC C8 22 CC 88 */ lfd f1, lit_85(r2) -/* 803692F0 48 00 01 A8 */ b lbl_80369498 -lbl_803692F4: -/* 803692F4 FD 41 00 72 */ fmul f10, f1, f1 -/* 803692F8 C8 42 CC C0 */ lfd f2, lit_92(r2) -/* 803692FC C8 02 CC B8 */ lfd f0, lit_91(r2) -/* 80369300 C8 62 CC B0 */ lfd f3, lit_90(r2) -/* 80369304 C9 02 CC A8 */ lfd f8, lit_89(r2) -/* 80369308 FC 82 02 BA */ fmadd f4, f2, f10, f0 -/* 8036930C C8 42 CC E8 */ lfd f2, lit_97(r2) -/* 80369310 C8 02 CC E0 */ lfd f0, lit_96(r2) -/* 80369314 C8 E2 CC A0 */ lfd f7, lit_88(r2) -/* 80369318 FD 2A 19 3A */ fmadd f9, f10, f4, f3 -/* 8036931C C8 82 CC D8 */ lfd f4, lit_95(r2) -/* 80369320 C8 C2 CC 98 */ lfd f6, lit_87(r2) -/* 80369324 FC A2 02 BA */ fmadd f5, f2, f10, f0 -/* 80369328 C8 62 CC D0 */ lfd f3, lit_94(r2) -/* 8036932C C8 42 CC C8 */ lfd f2, lit_93(r2) -/* 80369330 FD 0A 42 7A */ fmadd f8, f10, f9, f8 -/* 80369334 C8 02 CC 90 */ lfd f0, lit_86(r2) -/* 80369338 C9 22 CC 88 */ lfd f9, lit_85(r2) -/* 8036933C FC 8A 21 7A */ fmadd f4, f10, f5, f4 -/* 80369340 FC AA 3A 3A */ fmadd f5, f10, f8, f7 -/* 80369344 FC 6A 19 3A */ fmadd f3, f10, f4, f3 -/* 80369348 FC 8A 31 7A */ fmadd f4, f10, f5, f6 -/* 8036934C FC 4A 10 FA */ fmadd f2, f10, f3, f2 -/* 80369350 FC 6A 01 32 */ fmul f3, f10, f4 -/* 80369354 FC 43 10 24 */ fdiv f2, f3, f2 -/* 80369358 FC 01 00 BC */ fnmsub f0, f1, f2, f0 -/* 8036935C FC 01 00 28 */ fsub f0, f1, f0 -/* 80369360 FC 29 00 28 */ fsub f1, f9, f0 -/* 80369364 48 00 01 34 */ b lbl_80369498 -lbl_80369368: -/* 80369368 2C 04 00 00 */ cmpwi r4, 0 -/* 8036936C 40 80 00 90 */ bge lbl_803693FC -/* 80369370 C8 02 CC C8 */ lfd f0, lit_93(r2) -/* 80369374 C8 42 CC F0 */ lfd f2, lit_98(r2) -/* 80369378 FC 00 08 2A */ fadd f0, f0, f1 -/* 8036937C FF E2 00 32 */ fmul f31, f2, f0 -/* 80369380 FC 20 F8 90 */ fmr f1, f31 -/* 80369384 48 00 36 D1 */ bl sqrt -/* 80369388 C8 62 CC C0 */ lfd f3, lit_92(r2) -/* 8036938C C8 42 CC B8 */ lfd f2, lit_91(r2) -/* 80369390 C8 02 CC B0 */ lfd f0, lit_90(r2) -/* 80369394 FC 83 17 FA */ fmadd f4, f3, f31, f2 -/* 80369398 C8 A2 CC A8 */ lfd f5, lit_89(r2) -/* 8036939C C8 62 CC E8 */ lfd f3, lit_97(r2) -/* 803693A0 C8 42 CC E0 */ lfd f2, lit_96(r2) -/* 803693A4 C8 E2 CC A0 */ lfd f7, lit_88(r2) -/* 803693A8 FD 1F 01 3A */ fmadd f8, f31, f4, f0 -/* 803693AC C8 02 CC D8 */ lfd f0, lit_95(r2) -/* 803693B0 FC 43 17 FA */ fmadd f2, f3, f31, f2 -/* 803693B4 C8 C2 CC 98 */ lfd f6, lit_87(r2) -/* 803693B8 C8 82 CC D0 */ lfd f4, lit_94(r2) -/* 803693BC FD 1F 2A 3A */ fmadd f8, f31, f8, f5 -/* 803693C0 C8 62 CC C8 */ lfd f3, lit_93(r2) -/* 803693C4 FC BF 00 BA */ fmadd f5, f31, f2, f0 -/* 803693C8 C8 42 CC 90 */ lfd f2, lit_86(r2) -/* 803693CC FC FF 3A 3A */ fmadd f7, f31, f8, f7 -/* 803693D0 C9 02 CC F8 */ lfd f8, lit_99(r2) -/* 803693D4 C8 02 CC 80 */ lfd f0, lit_84(r2) -/* 803693D8 FC 9F 21 7A */ fmadd f4, f31, f5, f4 -/* 803693DC FC BF 31 FA */ fmadd f5, f31, f7, f6 -/* 803693E0 FC 7F 19 3A */ fmadd f3, f31, f4, f3 -/* 803693E4 FC 9F 01 72 */ fmul f4, f31, f5 -/* 803693E8 FC 64 18 24 */ fdiv f3, f4, f3 -/* 803693EC FC 43 10 78 */ fmsub f2, f3, f1, f2 -/* 803693F0 FC 21 10 2A */ fadd f1, f1, f2 -/* 803693F4 FC 28 00 7C */ fnmsub f1, f8, f1, f0 -/* 803693F8 48 00 00 A0 */ b lbl_80369498 -lbl_803693FC: -/* 803693FC C8 02 CC C8 */ lfd f0, lit_93(r2) -/* 80369400 C8 42 CC F0 */ lfd f2, lit_98(r2) -/* 80369404 FC 00 08 28 */ fsub f0, f0, f1 -/* 80369408 FF E2 00 32 */ fmul f31, f2, f0 -/* 8036940C FC 20 F8 90 */ fmr f1, f31 -/* 80369410 48 00 36 45 */ bl sqrt -/* 80369414 C8 42 CC C0 */ lfd f2, lit_92(r2) -/* 80369418 38 00 00 00 */ li r0, 0 -/* 8036941C C8 02 CC B8 */ lfd f0, lit_91(r2) -/* 80369420 D8 21 00 10 */ stfd f1, 0x10(r1) -/* 80369424 FC 62 07 FA */ fmadd f3, f2, f31, f0 -/* 80369428 C8 02 CC B0 */ lfd f0, lit_90(r2) -/* 8036942C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80369430 C8 42 CC A8 */ lfd f2, lit_89(r2) -/* 80369434 C9 21 00 10 */ lfd f9, 0x10(r1) -/* 80369438 FC BF 00 FA */ fmadd f5, f31, f3, f0 -/* 8036943C C8 82 CC E8 */ lfd f4, lit_97(r2) -/* 80369440 C8 02 CC E0 */ lfd f0, lit_96(r2) -/* 80369444 FC 69 FA 7C */ fnmsub f3, f9, f9, f31 -/* 80369448 C8 E2 CC A0 */ lfd f7, lit_88(r2) -/* 8036944C FD 1F 11 7A */ fmadd f8, f31, f5, f2 -/* 80369450 C8 42 CC D8 */ lfd f2, lit_95(r2) -/* 80369454 FC A4 07 FA */ fmadd f5, f4, f31, f0 -/* 80369458 C8 C2 CC 98 */ lfd f6, lit_87(r2) -/* 8036945C C8 02 CC D0 */ lfd f0, lit_94(r2) -/* 80369460 FC FF 3A 3A */ fmadd f7, f31, f8, f7 -/* 80369464 C8 82 CC C8 */ lfd f4, lit_93(r2) -/* 80369468 FC BF 11 7A */ fmadd f5, f31, f5, f2 -/* 8036946C C8 42 CC F8 */ lfd f2, lit_99(r2) -/* 80369470 FC DF 31 FA */ fmadd f6, f31, f7, f6 -/* 80369474 FC BF 01 7A */ fmadd f5, f31, f5, f0 -/* 80369478 FC 01 48 2A */ fadd f0, f1, f9 -/* 8036947C FC DF 01 B2 */ fmul f6, f31, f6 -/* 80369480 FC 9F 21 7A */ fmadd f4, f31, f5, f4 -/* 80369484 FC 03 00 24 */ fdiv f0, f3, f0 -/* 80369488 FC 66 20 24 */ fdiv f3, f6, f4 -/* 8036948C FC 03 00 7A */ fmadd f0, f3, f1, f0 -/* 80369490 FC 09 00 2A */ fadd f0, f9, f0 -/* 80369494 FC 22 00 32 */ fmul f1, f2, f0 -lbl_80369498: -/* 80369498 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */ -/* 8036949C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 803694A0 CB E1 00 20 */ lfd f31, 0x20(r1) -/* 803694A4 7C 08 03 A6 */ mtlr r0 -/* 803694A8 38 21 00 30 */ addi r1, r1, 0x30 -/* 803694AC 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/e_asin/__ieee754_asin.s b/asm/MSL_C/Math/Double_precision/e_asin/__ieee754_asin.s deleted file mode 100644 index ac05089eb93..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_asin/__ieee754_asin.s +++ /dev/null @@ -1,152 +0,0 @@ -lbl_803694B0: -/* 803694B0 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 803694B4 7C 08 02 A6 */ mflr r0 -/* 803694B8 90 01 00 54 */ stw r0, 0x54(r1) -/* 803694BC DB E1 00 40 */ stfd f31, 0x40(r1) -/* 803694C0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */ -/* 803694C4 DB C1 00 30 */ stfd f30, 0x30(r1) -/* 803694C8 F3 C1 00 38 */ psq_st f30, 56(r1), 0, 0 /* qr0 */ -/* 803694CC DB A1 00 20 */ stfd f29, 0x20(r1) -/* 803694D0 F3 A1 00 28 */ psq_st f29, 40(r1), 0, 0 /* qr0 */ -/* 803694D4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803694D8 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803694DC D8 21 00 08 */ stfd f1, 8(r1) -/* 803694E0 3C 00 3F F0 */ lis r0, 0x3ff0 -/* 803694E4 83 E1 00 08 */ lwz r31, 8(r1) -/* 803694E8 57 FE 00 7E */ clrlwi r30, r31, 1 -/* 803694EC 7C 1E 00 00 */ cmpw r30, r0 -/* 803694F0 41 80 00 34 */ blt lbl_80369524 -/* 803694F4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 803694F8 3C 7E C0 10 */ addis r3, r30, 0xc010 -/* 803694FC 7C 60 03 79 */ or. r0, r3, r0 -/* 80369500 40 82 00 18 */ bne lbl_80369518 -/* 80369504 C8 02 CD 08 */ lfd f0, lit_95(r2) -/* 80369508 C8 42 CD 00 */ lfd f2, lit_94(r2) -/* 8036950C FC 00 00 72 */ fmul f0, f0, f1 -/* 80369510 FC 22 00 7A */ fmadd f1, f2, f1, f0 -/* 80369514 48 00 01 A4 */ b lbl_803696B8 -lbl_80369518: -/* 80369518 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8036951C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 80369520 48 00 01 98 */ b lbl_803696B8 -lbl_80369524: -/* 80369524 3C 00 3F E0 */ lis r0, 0x3fe0 -/* 80369528 7C 1E 00 00 */ cmpw r30, r0 -/* 8036952C 40 80 00 94 */ bge lbl_803695C0 -/* 80369530 3C 00 3E 40 */ lis r0, 0x3e40 -/* 80369534 7C 1E 00 00 */ cmpw r30, r0 -/* 80369538 40 80 00 1C */ bge lbl_80369554 -/* 8036953C C8 42 CD 10 */ lfd f2, lit_96(r2) -/* 80369540 C8 02 CD 18 */ lfd f0, lit_97(r2) -/* 80369544 FC 42 08 2A */ fadd f2, f2, f1 -/* 80369548 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8036954C 40 81 00 0C */ ble lbl_80369558 -/* 80369550 48 00 01 68 */ b lbl_803696B8 -lbl_80369554: -/* 80369554 FF E1 00 72 */ fmul f31, f1, f1 -lbl_80369558: -/* 80369558 C8 22 CD 48 */ lfd f1, lit_103(r2) -/* 8036955C C8 02 CD 40 */ lfd f0, lit_102(r2) -/* 80369560 C8 42 CD 38 */ lfd f2, lit_101(r2) -/* 80369564 FC 61 07 FA */ fmadd f3, f1, f31, f0 -/* 80369568 C8 C2 CD 30 */ lfd f6, lit_100(r2) -/* 8036956C C8 22 CD 68 */ lfd f1, lit_107(r2) -/* 80369570 C8 02 CD 60 */ lfd f0, lit_106(r2) -/* 80369574 C8 A2 CD 28 */ lfd f5, lit_99(r2) -/* 80369578 FC FF 10 FA */ fmadd f7, f31, f3, f2 -/* 8036957C C8 42 CD 58 */ lfd f2, lit_105(r2) -/* 80369580 FC 61 07 FA */ fmadd f3, f1, f31, f0 -/* 80369584 C8 82 CD 20 */ lfd f4, lit_98(r2) -/* 80369588 C8 22 CD 50 */ lfd f1, lit_104(r2) -/* 8036958C FC DF 31 FA */ fmadd f6, f31, f7, f6 -/* 80369590 C8 02 CD 18 */ lfd f0, lit_97(r2) -/* 80369594 FC 5F 10 FA */ fmadd f2, f31, f3, f2 -/* 80369598 C8 E1 00 08 */ lfd f7, 8(r1) -/* 8036959C FC 7F 29 BA */ fmadd f3, f31, f6, f5 -/* 803695A0 FC 3F 08 BA */ fmadd f1, f31, f2, f1 -/* 803695A4 FC 5F 20 FA */ fmadd f2, f31, f3, f4 -/* 803695A8 FC 1F 00 7A */ fmadd f0, f31, f1, f0 -/* 803695AC FC 3F 00 B2 */ fmul f1, f31, f2 -/* 803695B0 FC 01 00 24 */ fdiv f0, f1, f0 -/* 803695B4 FC 27 38 3A */ fmadd f1, f7, f0, f7 -/* 803695B8 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 803695BC 48 00 00 FC */ b lbl_803696B8 -lbl_803695C0: -/* 803695C0 FC 20 0A 10 */ fabs f1, f1 -/* 803695C4 C9 22 CD 18 */ lfd f9, lit_97(r2) -/* 803695C8 C8 02 CD 70 */ lfd f0, lit_108(r2) -/* 803695CC C8 E2 CD 48 */ lfd f7, lit_103(r2) -/* 803695D0 FD 09 08 28 */ fsub f8, f9, f1 -/* 803695D4 C8 62 CD 40 */ lfd f3, lit_102(r2) -/* 803695D8 C8 C2 CD 38 */ lfd f6, lit_101(r2) -/* 803695DC C8 A2 CD 30 */ lfd f5, lit_100(r2) -/* 803695E0 FF E0 02 32 */ fmul f31, f0, f8 -/* 803695E4 C8 42 CD 68 */ lfd f2, lit_107(r2) -/* 803695E8 C8 02 CD 60 */ lfd f0, lit_106(r2) -/* 803695EC C8 82 CD 28 */ lfd f4, lit_99(r2) -/* 803695F0 C8 22 CD 58 */ lfd f1, lit_105(r2) -/* 803695F4 FC E7 1F FA */ fmadd f7, f7, f31, f3 -/* 803695F8 C8 62 CD 20 */ lfd f3, lit_98(r2) -/* 803695FC FC 42 07 FA */ fmadd f2, f2, f31, f0 -/* 80369600 C8 02 CD 50 */ lfd f0, lit_104(r2) -/* 80369604 D9 01 00 10 */ stfd f8, 0x10(r1) -/* 80369608 FC DF 31 FA */ fmadd f6, f31, f7, f6 -/* 8036960C FC 3F 08 BA */ fmadd f1, f31, f2, f1 -/* 80369610 FC 5F 29 BA */ fmadd f2, f31, f6, f5 -/* 80369614 FC 1F 00 7A */ fmadd f0, f31, f1, f0 -/* 80369618 FC 3F 20 BA */ fmadd f1, f31, f2, f4 -/* 8036961C FF BF 48 3A */ fmadd f29, f31, f0, f9 -/* 80369620 FC 1F 18 7A */ fmadd f0, f31, f1, f3 -/* 80369624 FC 20 F8 90 */ fmr f1, f31 -/* 80369628 FF DF 00 32 */ fmul f30, f31, f0 -/* 8036962C 48 00 34 29 */ bl sqrt -/* 80369630 3C 60 3F EF */ lis r3, 0x3FEF /* 0x3FEF3333@ha */ -/* 80369634 38 03 33 33 */ addi r0, r3, 0x3333 /* 0x3FEF3333@l */ -/* 80369638 7C 1E 00 00 */ cmpw r30, r0 -/* 8036963C 41 80 00 28 */ blt lbl_80369664 -/* 80369640 FC 9E E8 24 */ fdiv f4, f30, f29 -/* 80369644 C8 42 CD 78 */ lfd f2, lit_109(r2) -/* 80369648 C8 02 CD 08 */ lfd f0, lit_95(r2) -/* 8036964C C8 62 CD 00 */ lfd f3, lit_94(r2) -/* 80369650 FC 21 09 3A */ fmadd f1, f1, f4, f1 -/* 80369654 D8 81 00 10 */ stfd f4, 0x10(r1) -/* 80369658 FC 02 00 78 */ fmsub f0, f2, f1, f0 -/* 8036965C FC 23 00 28 */ fsub f1, f3, f0 -/* 80369660 48 00 00 48 */ b lbl_803696A8 -lbl_80369664: -/* 80369664 D8 21 00 10 */ stfd f1, 0x10(r1) -/* 80369668 38 00 00 00 */ li r0, 0 -/* 8036966C C8 E2 CD 78 */ lfd f7, lit_109(r2) -/* 80369670 FC BE E8 24 */ fdiv f5, f30, f29 -/* 80369674 90 01 00 14 */ stw r0, 0x14(r1) -/* 80369678 C8 02 CD 08 */ lfd f0, lit_95(r2) -/* 8036967C C9 01 00 10 */ lfd f8, 0x10(r1) -/* 80369680 C8 42 CD 80 */ lfd f2, lit_110(r2) -/* 80369684 FC 88 FA 3C */ fnmsub f4, f8, f8, f31 -/* 80369688 FC 61 40 2A */ fadd f3, f1, f8 -/* 8036968C FC C7 00 72 */ fmul f6, f7, f1 -/* 80369690 FC 24 18 24 */ fdiv f1, f4, f3 -/* 80369694 FC 27 00 7C */ fnmsub f1, f7, f1, f0 -/* 80369698 FC 07 12 3C */ fnmsub f0, f7, f8, f2 -/* 8036969C FC 26 09 78 */ fmsub f1, f6, f5, f1 -/* 803696A0 FC 01 00 28 */ fsub f0, f1, f0 -/* 803696A4 FC 22 00 28 */ fsub f1, f2, f0 -lbl_803696A8: -/* 803696A8 2C 1F 00 00 */ cmpwi r31, 0 -/* 803696AC 40 81 00 08 */ ble lbl_803696B4 -/* 803696B0 48 00 00 08 */ b lbl_803696B8 -lbl_803696B4: -/* 803696B4 FC 20 08 50 */ fneg f1, f1 -lbl_803696B8: -/* 803696B8 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */ -/* 803696BC CB E1 00 40 */ lfd f31, 0x40(r1) -/* 803696C0 E3 C1 00 38 */ psq_l f30, 56(r1), 0, 0 /* qr0 */ -/* 803696C4 CB C1 00 30 */ lfd f30, 0x30(r1) -/* 803696C8 E3 A1 00 28 */ psq_l f29, 40(r1), 0, 0 /* qr0 */ -/* 803696CC CB A1 00 20 */ lfd f29, 0x20(r1) -/* 803696D0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803696D4 80 01 00 54 */ lwz r0, 0x54(r1) -/* 803696D8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803696DC 7C 08 03 A6 */ mtlr r0 -/* 803696E0 38 21 00 50 */ addi r1, r1, 0x50 -/* 803696E4 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/e_atan2/__ieee754_atan2.s b/asm/MSL_C/Math/Double_precision/e_atan2/__ieee754_atan2.s deleted file mode 100644 index 447321e2482..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_atan2/__ieee754_atan2.s +++ /dev/null @@ -1,197 +0,0 @@ -lbl_803696E8: -/* 803696E8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 803696EC 7C 08 02 A6 */ mflr r0 -/* 803696F0 3C 60 7F F0 */ lis r3, 0x7ff0 -/* 803696F4 D8 41 00 10 */ stfd f2, 0x10(r1) -/* 803696F8 81 01 00 14 */ lwz r8, 0x14(r1) -/* 803696FC 90 01 00 34 */ stw r0, 0x34(r1) -/* 80369700 7C 08 00 D0 */ neg r0, r8 -/* 80369704 80 81 00 10 */ lwz r4, 0x10(r1) -/* 80369708 7D 00 03 78 */ or r0, r8, r0 -/* 8036970C D8 21 00 08 */ stfd f1, 8(r1) -/* 80369710 54 86 00 7E */ clrlwi r6, r4, 1 -/* 80369714 54 00 0F FE */ srwi r0, r0, 0x1f -/* 80369718 80 A1 00 08 */ lwz r5, 8(r1) -/* 8036971C 7C C0 03 78 */ or r0, r6, r0 -/* 80369720 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80369724 7C 00 18 40 */ cmplw r0, r3 -/* 80369728 81 21 00 0C */ lwz r9, 0xc(r1) -/* 8036972C 54 A7 00 7E */ clrlwi r7, r5, 1 -/* 80369730 41 81 00 1C */ bgt lbl_8036974C -/* 80369734 7C 09 00 D0 */ neg r0, r9 -/* 80369738 7D 20 03 78 */ or r0, r9, r0 -/* 8036973C 54 00 0F FE */ srwi r0, r0, 0x1f -/* 80369740 7C E0 03 78 */ or r0, r7, r0 -/* 80369744 7C 00 18 40 */ cmplw r0, r3 -/* 80369748 40 81 00 14 */ ble lbl_8036975C -lbl_8036974C: -/* 8036974C C8 21 00 10 */ lfd f1, 0x10(r1) -/* 80369750 C8 01 00 08 */ lfd f0, 8(r1) -/* 80369754 FC 21 00 2A */ fadd f1, f1, f0 -/* 80369758 48 00 02 0C */ b lbl_80369964 -lbl_8036975C: -/* 8036975C 3C 04 C0 10 */ addis r0, r4, 0xc010 -/* 80369760 7C 00 43 79 */ or. r0, r0, r8 -/* 80369764 40 82 00 0C */ bne lbl_80369770 -/* 80369768 48 00 25 3D */ bl atan -/* 8036976C 48 00 01 F8 */ b lbl_80369964 -lbl_80369770: -/* 80369770 7C E0 4B 79 */ or. r0, r7, r9 -/* 80369774 54 80 17 BC */ rlwinm r0, r4, 2, 0x1e, 0x1e -/* 80369778 7C 1F 03 78 */ mr r31, r0 -/* 8036977C 50 BF 0F FE */ rlwimi r31, r5, 1, 0x1f, 0x1f -/* 80369780 40 82 00 3C */ bne lbl_803697BC -/* 80369784 2C 1F 00 02 */ cmpwi r31, 2 -/* 80369788 41 82 00 24 */ beq lbl_803697AC -/* 8036978C 40 80 00 10 */ bge lbl_8036979C -/* 80369790 2C 1F 00 00 */ cmpwi r31, 0 -/* 80369794 40 80 01 D0 */ bge lbl_80369964 -/* 80369798 48 00 00 24 */ b lbl_803697BC -lbl_8036979C: -/* 8036979C 2C 1F 00 04 */ cmpwi r31, 4 -/* 803697A0 40 80 00 1C */ bge lbl_803697BC -/* 803697A4 48 00 00 10 */ b lbl_803697B4 -/* 803697A8 48 00 01 BC */ b lbl_80369964 -lbl_803697AC: -/* 803697AC C8 22 CD 88 */ lfd f1, lit_145(r2) -/* 803697B0 48 00 01 B4 */ b lbl_80369964 -lbl_803697B4: -/* 803697B4 C8 22 CD 90 */ lfd f1, lit_146(r2) -/* 803697B8 48 00 01 AC */ b lbl_80369964 -lbl_803697BC: -/* 803697BC 7C C0 43 79 */ or. r0, r6, r8 -/* 803697C0 40 82 00 1C */ bne lbl_803697DC -/* 803697C4 2C 05 00 00 */ cmpwi r5, 0 -/* 803697C8 40 80 00 0C */ bge lbl_803697D4 -/* 803697CC C8 22 CD 98 */ lfd f1, lit_147(r2) -/* 803697D0 48 00 01 94 */ b lbl_80369964 -lbl_803697D4: -/* 803697D4 C8 22 CD A0 */ lfd f1, lit_148(r2) -/* 803697D8 48 00 01 8C */ b lbl_80369964 -lbl_803697DC: -/* 803697DC 3C 06 80 10 */ addis r0, r6, 0x8010 -/* 803697E0 28 00 00 00 */ cmplwi r0, 0 -/* 803697E4 40 82 00 A0 */ bne lbl_80369884 -/* 803697E8 3C 07 80 10 */ addis r0, r7, 0x8010 -/* 803697EC 28 00 00 00 */ cmplwi r0, 0 -/* 803697F0 40 82 00 4C */ bne lbl_8036983C -/* 803697F4 2C 1F 00 02 */ cmpwi r31, 2 -/* 803697F8 41 82 00 34 */ beq lbl_8036982C -/* 803697FC 40 80 00 14 */ bge lbl_80369810 -/* 80369800 2C 1F 00 00 */ cmpwi r31, 0 -/* 80369804 41 82 00 18 */ beq lbl_8036981C -/* 80369808 40 80 00 1C */ bge lbl_80369824 -/* 8036980C 48 00 00 78 */ b lbl_80369884 -lbl_80369810: -/* 80369810 2C 1F 00 04 */ cmpwi r31, 4 -/* 80369814 40 80 00 70 */ bge lbl_80369884 -/* 80369818 48 00 00 1C */ b lbl_80369834 -lbl_8036981C: -/* 8036981C C8 22 CD A8 */ lfd f1, lit_149(r2) -/* 80369820 48 00 01 44 */ b lbl_80369964 -lbl_80369824: -/* 80369824 C8 22 CD B0 */ lfd f1, lit_150(r2) -/* 80369828 48 00 01 3C */ b lbl_80369964 -lbl_8036982C: -/* 8036982C C8 22 CD B8 */ lfd f1, lit_151(r2) -/* 80369830 48 00 01 34 */ b lbl_80369964 -lbl_80369834: -/* 80369834 C8 22 CD C0 */ lfd f1, lit_152(r2) -/* 80369838 48 00 01 2C */ b lbl_80369964 -lbl_8036983C: -/* 8036983C 2C 1F 00 02 */ cmpwi r31, 2 -/* 80369840 41 82 00 34 */ beq lbl_80369874 -/* 80369844 40 80 00 14 */ bge lbl_80369858 -/* 80369848 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036984C 41 82 00 18 */ beq lbl_80369864 -/* 80369850 40 80 00 1C */ bge lbl_8036986C -/* 80369854 48 00 00 30 */ b lbl_80369884 -lbl_80369858: -/* 80369858 2C 1F 00 04 */ cmpwi r31, 4 -/* 8036985C 40 80 00 28 */ bge lbl_80369884 -/* 80369860 48 00 00 1C */ b lbl_8036987C -lbl_80369864: -/* 80369864 C8 22 CD C8 */ lfd f1, lit_153(r2) -/* 80369868 48 00 00 FC */ b lbl_80369964 -lbl_8036986C: -/* 8036986C C8 22 CD D0 */ lfd f1, lit_154(r2) -/* 80369870 48 00 00 F4 */ b lbl_80369964 -lbl_80369874: -/* 80369874 C8 22 CD 88 */ lfd f1, lit_145(r2) -/* 80369878 48 00 00 EC */ b lbl_80369964 -lbl_8036987C: -/* 8036987C C8 22 CD 90 */ lfd f1, lit_146(r2) -/* 80369880 48 00 00 E4 */ b lbl_80369964 -lbl_80369884: -/* 80369884 3C 07 80 10 */ addis r0, r7, 0x8010 -/* 80369888 28 00 00 00 */ cmplwi r0, 0 -/* 8036988C 40 82 00 1C */ bne lbl_803698A8 -/* 80369890 2C 05 00 00 */ cmpwi r5, 0 -/* 80369894 40 80 00 0C */ bge lbl_803698A0 -/* 80369898 C8 22 CD 98 */ lfd f1, lit_147(r2) -/* 8036989C 48 00 00 C8 */ b lbl_80369964 -lbl_803698A0: -/* 803698A0 C8 22 CD A0 */ lfd f1, lit_148(r2) -/* 803698A4 48 00 00 C0 */ b lbl_80369964 -lbl_803698A8: -/* 803698A8 7C 06 38 50 */ subf r0, r6, r7 -/* 803698AC 7C 00 A6 70 */ srawi r0, r0, 0x14 -/* 803698B0 2C 00 00 3C */ cmpwi r0, 0x3c -/* 803698B4 40 81 00 10 */ ble lbl_803698C4 -/* 803698B8 C8 02 CD A0 */ lfd f0, lit_148(r2) -/* 803698BC D8 01 00 18 */ stfd f0, 0x18(r1) -/* 803698C0 48 00 00 38 */ b lbl_803698F8 -lbl_803698C4: -/* 803698C4 2C 04 00 00 */ cmpwi r4, 0 -/* 803698C8 40 80 00 18 */ bge lbl_803698E0 -/* 803698CC 2C 00 FF C4 */ cmpwi r0, -60 -/* 803698D0 40 80 00 10 */ bge lbl_803698E0 -/* 803698D4 C8 02 CD C8 */ lfd f0, lit_153(r2) -/* 803698D8 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 803698DC 48 00 00 1C */ b lbl_803698F8 -lbl_803698E0: -/* 803698E0 C8 21 00 08 */ lfd f1, 8(r1) -/* 803698E4 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 803698E8 FC 01 00 24 */ fdiv f0, f1, f0 -/* 803698EC FC 20 02 10 */ fabs f1, f0 -/* 803698F0 48 00 23 B5 */ bl atan -/* 803698F4 D8 21 00 18 */ stfd f1, 0x18(r1) -lbl_803698F8: -/* 803698F8 2C 1F 00 01 */ cmpwi r31, 1 -/* 803698FC 41 82 00 28 */ beq lbl_80369924 -/* 80369900 40 80 00 10 */ bge lbl_80369910 -/* 80369904 2C 1F 00 00 */ cmpwi r31, 0 -/* 80369908 40 80 00 14 */ bge lbl_8036991C -/* 8036990C 48 00 00 44 */ b lbl_80369950 -lbl_80369910: -/* 80369910 2C 1F 00 03 */ cmpwi r31, 3 -/* 80369914 40 80 00 3C */ bge lbl_80369950 -/* 80369918 48 00 00 20 */ b lbl_80369938 -lbl_8036991C: -/* 8036991C C8 21 00 18 */ lfd f1, 0x18(r1) -/* 80369920 48 00 00 44 */ b lbl_80369964 -lbl_80369924: -/* 80369924 80 01 00 18 */ lwz r0, 0x18(r1) -/* 80369928 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036992C 90 01 00 18 */ stw r0, 0x18(r1) -/* 80369930 C8 21 00 18 */ lfd f1, 0x18(r1) -/* 80369934 48 00 00 30 */ b lbl_80369964 -lbl_80369938: -/* 80369938 C8 21 00 18 */ lfd f1, 0x18(r1) -/* 8036993C C8 02 CD D8 */ lfd f0, lit_155(r2) -/* 80369940 C8 42 CD 88 */ lfd f2, lit_145(r2) -/* 80369944 FC 01 00 28 */ fsub f0, f1, f0 -/* 80369948 FC 22 00 28 */ fsub f1, f2, f0 -/* 8036994C 48 00 00 18 */ b lbl_80369964 -lbl_80369950: -/* 80369950 C8 41 00 18 */ lfd f2, 0x18(r1) -/* 80369954 C8 22 CD D8 */ lfd f1, lit_155(r2) -/* 80369958 C8 02 CD 88 */ lfd f0, lit_145(r2) -/* 8036995C FC 22 08 28 */ fsub f1, f2, f1 -/* 80369960 FC 21 00 28 */ fsub f1, f1, f0 -lbl_80369964: -/* 80369964 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80369968 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8036996C 7C 08 03 A6 */ mtlr r0 -/* 80369970 38 21 00 30 */ addi r1, r1, 0x30 -/* 80369974 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/e_exp/__ieee754_exp.s b/asm/MSL_C/Math/Double_precision/e_exp/__ieee754_exp.s deleted file mode 100644 index c0f78013f53..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_exp/__ieee754_exp.s +++ /dev/null @@ -1,151 +0,0 @@ -lbl_80369978: -/* 80369978 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8036997C 3C 60 40 86 */ lis r3, 0x4086 /* 0x40862E42@ha */ -/* 80369980 3C 80 80 3A */ lis r4, halF@ha /* 0x803A2340@ha */ -/* 80369984 D8 21 00 08 */ stfd f1, 8(r1) -/* 80369988 38 03 2E 42 */ addi r0, r3, 0x2E42 /* 0x40862E42@l */ -/* 8036998C 38 A4 23 40 */ addi r5, r4, halF@l /* 0x803A2340@l */ -/* 80369990 81 01 00 08 */ lwz r8, 8(r1) -/* 80369994 55 04 00 7E */ clrlwi r4, r8, 1 -/* 80369998 55 07 0F FE */ srwi r7, r8, 0x1f -/* 8036999C 7C 04 00 40 */ cmplw r4, r0 -/* 803699A0 41 80 00 64 */ blt lbl_80369A04 -/* 803699A4 3C 00 7F F0 */ lis r0, 0x7ff0 -/* 803699A8 7C 04 00 40 */ cmplw r4, r0 -/* 803699AC 41 80 00 30 */ blt lbl_803699DC -/* 803699B0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 803699B4 55 03 03 3E */ clrlwi r3, r8, 0xc -/* 803699B8 7C 60 03 79 */ or. r0, r3, r0 -/* 803699BC 41 82 00 0C */ beq lbl_803699C8 -/* 803699C0 FC 21 08 2A */ fadd f1, f1, f1 -/* 803699C4 48 00 01 D0 */ b lbl_80369B94 -lbl_803699C8: -/* 803699C8 2C 07 00 00 */ cmpwi r7, 0 -/* 803699CC 40 82 00 08 */ bne lbl_803699D4 -/* 803699D0 48 00 01 C4 */ b lbl_80369B94 -lbl_803699D4: -/* 803699D4 C8 22 CD E0 */ lfd f1, lit_115(r2) -/* 803699D8 48 00 01 BC */ b lbl_80369B94 -lbl_803699DC: -/* 803699DC C8 02 CD E8 */ lfd f0, lit_116(r2) -/* 803699E0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 803699E4 40 81 00 0C */ ble lbl_803699F0 -/* 803699E8 C8 22 CD F0 */ lfd f1, lit_117(r2) -/* 803699EC 48 00 01 A8 */ b lbl_80369B94 -lbl_803699F0: -/* 803699F0 C8 02 CD F8 */ lfd f0, lit_118(r2) -/* 803699F4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 803699F8 40 80 00 0C */ bge lbl_80369A04 -/* 803699FC C8 22 CD E0 */ lfd f1, lit_115(r2) -/* 80369A00 48 00 01 94 */ b lbl_80369B94 -lbl_80369A04: -/* 80369A04 3C 60 3F D6 */ lis r3, 0x3FD6 /* 0x3FD62E42@ha */ -/* 80369A08 38 03 2E 42 */ addi r0, r3, 0x2E42 /* 0x3FD62E42@l */ -/* 80369A0C 7C 04 00 40 */ cmplw r4, r0 -/* 80369A10 40 81 00 98 */ ble lbl_80369AA8 -/* 80369A14 3C 60 3F F1 */ lis r3, 0x3FF1 /* 0x3FF0A2B2@ha */ -/* 80369A18 38 03 A2 B2 */ addi r0, r3, 0xA2B2 /* 0x3FF0A2B2@l */ -/* 80369A1C 7C 04 00 40 */ cmplw r4, r0 -/* 80369A20 40 80 00 2C */ bge lbl_80369A4C -/* 80369A24 54 E6 18 38 */ slwi r6, r7, 3 -/* 80369A28 38 85 00 10 */ addi r4, r5, 0x10 -/* 80369A2C C8 21 00 08 */ lfd f1, 8(r1) -/* 80369A30 38 65 00 20 */ addi r3, r5, 0x20 -/* 80369A34 7C 04 34 AE */ lfdx f0, r4, r6 -/* 80369A38 20 07 00 01 */ subfic r0, r7, 1 -/* 80369A3C 7D 03 34 AE */ lfdx f8, r3, r6 -/* 80369A40 7C C7 00 50 */ subf r6, r7, r0 -/* 80369A44 FC E1 00 28 */ fsub f7, f1, f0 -/* 80369A48 48 00 00 54 */ b lbl_80369A9C -lbl_80369A4C: -/* 80369A4C 54 E4 18 38 */ slwi r4, r7, 3 -/* 80369A50 38 65 00 00 */ addi r3, r5, 0 -/* 80369A54 C8 22 CE 00 */ lfd f1, lit_119(r2) -/* 80369A58 3C 00 43 30 */ lis r0, 0x4330 -/* 80369A5C C8 81 00 08 */ lfd f4, 8(r1) -/* 80369A60 7C 03 24 AE */ lfdx f0, r3, r4 -/* 80369A64 90 01 00 20 */ stw r0, 0x20(r1) -/* 80369A68 FC 41 01 3A */ fmadd f2, f1, f4, f0 -/* 80369A6C C8 62 CE 50 */ lfd f3, lit_131(r2) -/* 80369A70 C8 25 00 10 */ lfd f1, 0x10(r5) -/* 80369A74 C8 05 00 20 */ lfd f0, 0x20(r5) -/* 80369A78 FC 40 10 1E */ fctiwz f2, f2 -/* 80369A7C D8 41 00 18 */ stfd f2, 0x18(r1) -/* 80369A80 80 C1 00 1C */ lwz r6, 0x1c(r1) -/* 80369A84 6C C0 80 00 */ xoris r0, r6, 0x8000 -/* 80369A88 90 01 00 24 */ stw r0, 0x24(r1) -/* 80369A8C C8 41 00 20 */ lfd f2, 0x20(r1) -/* 80369A90 FC 42 18 28 */ fsub f2, f2, f3 -/* 80369A94 FC E2 20 7C */ fnmsub f7, f2, f1, f4 -/* 80369A98 FD 02 00 32 */ fmul f8, f2, f0 -lbl_80369A9C: -/* 80369A9C FC 07 40 28 */ fsub f0, f7, f8 -/* 80369AA0 D8 01 00 08 */ stfd f0, 8(r1) -/* 80369AA4 48 00 00 34 */ b lbl_80369AD8 -lbl_80369AA8: -/* 80369AA8 3C 00 3E 30 */ lis r0, 0x3e30 -/* 80369AAC 7C 04 00 40 */ cmplw r4, r0 -/* 80369AB0 40 80 00 24 */ bge lbl_80369AD4 -/* 80369AB4 C8 22 CE 08 */ lfd f1, lit_120(r2) -/* 80369AB8 C8 41 00 08 */ lfd f2, 8(r1) -/* 80369ABC C8 02 CE 10 */ lfd f0, lit_121(r2) -/* 80369AC0 FC 21 10 2A */ fadd f1, f1, f2 -/* 80369AC4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80369AC8 40 81 00 10 */ ble lbl_80369AD8 -/* 80369ACC FC 20 10 2A */ fadd f1, f0, f2 -/* 80369AD0 48 00 00 C4 */ b lbl_80369B94 -lbl_80369AD4: -/* 80369AD4 38 C0 00 00 */ li r6, 0 -lbl_80369AD8: -/* 80369AD8 C8 A1 00 08 */ lfd f5, 8(r1) -/* 80369ADC 2C 06 00 00 */ cmpwi r6, 0 -/* 80369AE0 C8 82 CE 38 */ lfd f4, lit_126(r2) -/* 80369AE4 FC C5 01 72 */ fmul f6, f5, f5 -/* 80369AE8 C8 62 CE 30 */ lfd f3, lit_125(r2) -/* 80369AEC C8 42 CE 28 */ lfd f2, lit_124(r2) -/* 80369AF0 C8 22 CE 20 */ lfd f1, lit_123(r2) -/* 80369AF4 C8 02 CE 18 */ lfd f0, lit_122(r2) -/* 80369AF8 FC 64 19 BA */ fmadd f3, f4, f6, f3 -/* 80369AFC FC 46 10 FA */ fmadd f2, f6, f3, f2 -/* 80369B00 FC 26 08 BA */ fmadd f1, f6, f2, f1 -/* 80369B04 FC 06 00 7A */ fmadd f0, f6, f1, f0 -/* 80369B08 FC 66 28 3C */ fnmsub f3, f6, f0, f5 -/* 80369B0C 40 82 00 24 */ bne lbl_80369B30 -/* 80369B10 C8 02 CE 40 */ lfd f0, lit_127(r2) -/* 80369B14 FC 25 00 F2 */ fmul f1, f5, f3 -/* 80369B18 C8 42 CE 10 */ lfd f2, lit_121(r2) -/* 80369B1C FC 03 00 28 */ fsub f0, f3, f0 -/* 80369B20 FC 01 00 24 */ fdiv f0, f1, f0 -/* 80369B24 FC 00 28 28 */ fsub f0, f0, f5 -/* 80369B28 FC 22 00 28 */ fsub f1, f2, f0 -/* 80369B2C 48 00 00 68 */ b lbl_80369B94 -lbl_80369B30: -/* 80369B30 C8 02 CE 40 */ lfd f0, lit_127(r2) -/* 80369B34 FC 25 00 F2 */ fmul f1, f5, f3 -/* 80369B38 C8 42 CE 10 */ lfd f2, lit_121(r2) -/* 80369B3C 2C 06 FC 03 */ cmpwi r6, -1021 -/* 80369B40 FC 00 18 28 */ fsub f0, f0, f3 -/* 80369B44 FC 01 00 24 */ fdiv f0, f1, f0 -/* 80369B48 FC 08 00 28 */ fsub f0, f8, f0 -/* 80369B4C FC 00 38 28 */ fsub f0, f0, f7 -/* 80369B50 FC 02 00 28 */ fsub f0, f2, f0 -/* 80369B54 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 80369B58 41 80 00 1C */ blt lbl_80369B74 -/* 80369B5C 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80369B60 54 C0 A0 16 */ slwi r0, r6, 0x14 -/* 80369B64 7C 03 02 14 */ add r0, r3, r0 -/* 80369B68 90 01 00 10 */ stw r0, 0x10(r1) -/* 80369B6C C8 21 00 10 */ lfd f1, 0x10(r1) -/* 80369B70 48 00 00 24 */ b lbl_80369B94 -lbl_80369B74: -/* 80369B74 38 06 03 E8 */ addi r0, r6, 0x3e8 -/* 80369B78 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80369B7C 54 00 A0 16 */ slwi r0, r0, 0x14 -/* 80369B80 C8 22 CE 48 */ lfd f1, lit_128(r2) -/* 80369B84 7C 03 02 14 */ add r0, r3, r0 -/* 80369B88 90 01 00 10 */ stw r0, 0x10(r1) -/* 80369B8C C8 01 00 10 */ lfd f0, 0x10(r1) -/* 80369B90 FC 21 00 32 */ fmul f1, f1, f0 -lbl_80369B94: -/* 80369B94 38 21 00 30 */ addi r1, r1, 0x30 -/* 80369B98 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/e_pow/__ieee754_pow.s b/asm/MSL_C/Math/Double_precision/e_pow/__ieee754_pow.s deleted file mode 100644 index e1cf0ed03c2..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_pow/__ieee754_pow.s +++ /dev/null @@ -1,571 +0,0 @@ -lbl_80369ED8: -/* 80369ED8 94 21 FF 50 */ stwu r1, -0xb0(r1) -/* 80369EDC 7C 08 02 A6 */ mflr r0 -/* 80369EE0 90 01 00 B4 */ stw r0, 0xb4(r1) -/* 80369EE4 DB E1 00 A0 */ stfd f31, 0xa0(r1) -/* 80369EE8 F3 E1 00 A8 */ psq_st f31, 168(r1), 0, 0 /* qr0 */ -/* 80369EEC DB C1 00 90 */ stfd f30, 0x90(r1) -/* 80369EF0 F3 C1 00 98 */ psq_st f30, 152(r1), 0, 0 /* qr0 */ -/* 80369EF4 DB A1 00 80 */ stfd f29, 0x80(r1) -/* 80369EF8 F3 A1 00 88 */ psq_st f29, 136(r1), 0, 0 /* qr0 */ -/* 80369EFC DB 81 00 70 */ stfd f28, 0x70(r1) -/* 80369F00 F3 81 00 78 */ psq_st f28, 120(r1), 0, 0 /* qr0 */ -/* 80369F04 DB 61 00 60 */ stfd f27, 0x60(r1) -/* 80369F08 F3 61 00 68 */ psq_st f27, 104(r1), 0, 0 /* qr0 */ -/* 80369F0C D8 41 00 10 */ stfd f2, 0x10(r1) -/* 80369F10 3C 60 80 3A */ lis r3, bp@ha /* 0x803A2380@ha */ -/* 80369F14 38 63 23 80 */ addi r3, r3, bp@l /* 0x803A2380@l */ -/* 80369F18 80 A1 00 10 */ lwz r5, 0x10(r1) -/* 80369F1C D8 21 00 08 */ stfd f1, 8(r1) -/* 80369F20 81 61 00 14 */ lwz r11, 0x14(r1) -/* 80369F24 54 A7 00 7E */ clrlwi r7, r5, 1 -/* 80369F28 80 01 00 08 */ lwz r0, 8(r1) -/* 80369F2C 7C E4 5B 79 */ or. r4, r7, r11 -/* 80369F30 81 41 00 0C */ lwz r10, 0xc(r1) -/* 80369F34 54 06 00 7E */ clrlwi r6, r0, 1 -/* 80369F38 40 82 00 0C */ bne lbl_80369F44 -/* 80369F3C C8 22 CE 58 */ lfd f1, lit_336(r2) -/* 80369F40 48 00 07 90 */ b lbl_8036A6D0 -lbl_80369F44: -/* 80369F44 3C 80 7F F0 */ lis r4, 0x7ff0 -/* 80369F48 7C 06 20 00 */ cmpw r6, r4 -/* 80369F4C 41 81 00 38 */ bgt lbl_80369F84 -/* 80369F50 3C 86 80 10 */ addis r4, r6, 0x8010 -/* 80369F54 28 04 00 00 */ cmplwi r4, 0 -/* 80369F58 40 82 00 0C */ bne lbl_80369F64 -/* 80369F5C 28 0A 00 00 */ cmplwi r10, 0 -/* 80369F60 40 82 00 24 */ bne lbl_80369F84 -lbl_80369F64: -/* 80369F64 3C 80 7F F0 */ lis r4, 0x7ff0 -/* 80369F68 7C 07 20 00 */ cmpw r7, r4 -/* 80369F6C 41 81 00 18 */ bgt lbl_80369F84 -/* 80369F70 3C 87 80 10 */ addis r4, r7, 0x8010 -/* 80369F74 28 04 00 00 */ cmplwi r4, 0 -/* 80369F78 40 82 00 1C */ bne lbl_80369F94 -/* 80369F7C 28 0B 00 00 */ cmplwi r11, 0 -/* 80369F80 41 82 00 14 */ beq lbl_80369F94 -lbl_80369F84: -/* 80369F84 C8 21 00 08 */ lfd f1, 8(r1) -/* 80369F88 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 80369F8C FC 21 00 2A */ fadd f1, f1, f0 -/* 80369F90 48 00 07 40 */ b lbl_8036A6D0 -lbl_80369F94: -/* 80369F94 2C 00 00 00 */ cmpwi r0, 0 -/* 80369F98 38 80 00 00 */ li r4, 0 -/* 80369F9C 40 80 00 78 */ bge lbl_8036A014 -/* 80369FA0 3D 00 43 40 */ lis r8, 0x4340 -/* 80369FA4 7C 07 40 00 */ cmpw r7, r8 -/* 80369FA8 41 80 00 0C */ blt lbl_80369FB4 -/* 80369FAC 38 80 00 02 */ li r4, 2 -/* 80369FB0 48 00 00 64 */ b lbl_8036A014 -lbl_80369FB4: -/* 80369FB4 3D 00 3F F0 */ lis r8, 0x3ff0 -/* 80369FB8 7C 07 40 00 */ cmpw r7, r8 -/* 80369FBC 41 80 00 58 */ blt lbl_8036A014 -/* 80369FC0 7C E8 A6 70 */ srawi r8, r7, 0x14 -/* 80369FC4 39 08 FC 01 */ addi r8, r8, -1023 -/* 80369FC8 2C 08 00 14 */ cmpwi r8, 0x14 -/* 80369FCC 40 81 00 24 */ ble lbl_80369FF0 -/* 80369FD0 21 08 00 34 */ subfic r8, r8, 0x34 -/* 80369FD4 7D 69 44 30 */ srw r9, r11, r8 -/* 80369FD8 7D 28 40 30 */ slw r8, r9, r8 -/* 80369FDC 7C 0B 40 40 */ cmplw r11, r8 -/* 80369FE0 40 82 00 34 */ bne lbl_8036A014 -/* 80369FE4 55 24 07 FE */ clrlwi r4, r9, 0x1f -/* 80369FE8 20 84 00 02 */ subfic r4, r4, 2 -/* 80369FEC 48 00 00 28 */ b lbl_8036A014 -lbl_80369FF0: -/* 80369FF0 28 0B 00 00 */ cmplwi r11, 0 -/* 80369FF4 40 82 00 20 */ bne lbl_8036A014 -/* 80369FF8 21 08 00 14 */ subfic r8, r8, 0x14 -/* 80369FFC 7C E9 46 30 */ sraw r9, r7, r8 -/* 8036A000 7D 28 40 30 */ slw r8, r9, r8 -/* 8036A004 7C 07 40 00 */ cmpw r7, r8 -/* 8036A008 40 82 00 0C */ bne lbl_8036A014 -/* 8036A00C 55 24 07 FE */ clrlwi r4, r9, 0x1f -/* 8036A010 20 84 00 02 */ subfic r4, r4, 2 -lbl_8036A014: -/* 8036A014 28 0B 00 00 */ cmplwi r11, 0 -/* 8036A018 40 82 00 CC */ bne lbl_8036A0E4 -/* 8036A01C 3D 07 80 10 */ addis r8, r7, 0x8010 -/* 8036A020 28 08 00 00 */ cmplwi r8, 0 -/* 8036A024 40 82 00 5C */ bne lbl_8036A080 -/* 8036A028 3C 06 C0 10 */ addis r0, r6, 0xc010 -/* 8036A02C 7C 00 53 79 */ or. r0, r0, r10 -/* 8036A030 40 82 00 10 */ bne lbl_8036A040 -/* 8036A034 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 8036A038 FC 20 00 28 */ fsub f1, f0, f0 -/* 8036A03C 48 00 06 94 */ b lbl_8036A6D0 -lbl_8036A040: -/* 8036A040 3C 00 3F F0 */ lis r0, 0x3ff0 -/* 8036A044 7C 06 00 00 */ cmpw r6, r0 -/* 8036A048 41 80 00 1C */ blt lbl_8036A064 -/* 8036A04C 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A050 41 80 00 0C */ blt lbl_8036A05C -/* 8036A054 C8 21 00 10 */ lfd f1, 0x10(r1) -/* 8036A058 48 00 06 78 */ b lbl_8036A6D0 -lbl_8036A05C: -/* 8036A05C C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A060 48 00 06 70 */ b lbl_8036A6D0 -lbl_8036A064: -/* 8036A064 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A068 40 80 00 10 */ bge lbl_8036A078 -/* 8036A06C C8 01 00 10 */ lfd f0, 0x10(r1) -/* 8036A070 FC 20 00 50 */ fneg f1, f0 -/* 8036A074 48 00 06 5C */ b lbl_8036A6D0 -lbl_8036A078: -/* 8036A078 C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A07C 48 00 06 54 */ b lbl_8036A6D0 -lbl_8036A080: -/* 8036A080 3D 07 C0 10 */ addis r8, r7, 0xc010 -/* 8036A084 28 08 00 00 */ cmplwi r8, 0 -/* 8036A088 40 82 00 24 */ bne lbl_8036A0AC -/* 8036A08C 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A090 40 80 00 14 */ bge lbl_8036A0A4 -/* 8036A094 C8 22 CE 58 */ lfd f1, lit_336(r2) -/* 8036A098 C8 01 00 08 */ lfd f0, 8(r1) -/* 8036A09C FC 21 00 24 */ fdiv f1, f1, f0 -/* 8036A0A0 48 00 06 30 */ b lbl_8036A6D0 -lbl_8036A0A4: -/* 8036A0A4 C8 21 00 08 */ lfd f1, 8(r1) -/* 8036A0A8 48 00 06 28 */ b lbl_8036A6D0 -lbl_8036A0AC: -/* 8036A0AC 3D 05 C0 00 */ addis r8, r5, 0xc000 -/* 8036A0B0 28 08 00 00 */ cmplwi r8, 0 -/* 8036A0B4 40 82 00 10 */ bne lbl_8036A0C4 -/* 8036A0B8 C8 01 00 08 */ lfd f0, 8(r1) -/* 8036A0BC FC 20 00 32 */ fmul f1, f0, f0 -/* 8036A0C0 48 00 06 10 */ b lbl_8036A6D0 -lbl_8036A0C4: -/* 8036A0C4 3D 05 C0 20 */ addis r8, r5, 0xc020 -/* 8036A0C8 28 08 00 00 */ cmplwi r8, 0 -/* 8036A0CC 40 82 00 18 */ bne lbl_8036A0E4 -/* 8036A0D0 2C 00 00 00 */ cmpwi r0, 0 -/* 8036A0D4 41 80 00 10 */ blt lbl_8036A0E4 -/* 8036A0D8 C8 21 00 08 */ lfd f1, 8(r1) -/* 8036A0DC 48 00 29 79 */ bl sqrt -/* 8036A0E0 48 00 05 F0 */ b lbl_8036A6D0 -lbl_8036A0E4: -/* 8036A0E4 C8 01 00 08 */ lfd f0, 8(r1) -/* 8036A0E8 28 0A 00 00 */ cmplwi r10, 0 -/* 8036A0EC FC 20 02 10 */ fabs f1, f0 -/* 8036A0F0 D8 21 00 48 */ stfd f1, 0x48(r1) -/* 8036A0F4 40 82 00 80 */ bne lbl_8036A174 -/* 8036A0F8 3D 06 80 10 */ addis r8, r6, 0x8010 -/* 8036A0FC 28 08 00 00 */ cmplwi r8, 0 -/* 8036A100 41 82 00 18 */ beq lbl_8036A118 -/* 8036A104 2C 06 00 00 */ cmpwi r6, 0 -/* 8036A108 41 82 00 10 */ beq lbl_8036A118 -/* 8036A10C 3D 06 C0 10 */ addis r8, r6, 0xc010 -/* 8036A110 28 08 00 00 */ cmplwi r8, 0 -/* 8036A114 40 82 00 60 */ bne lbl_8036A174 -lbl_8036A118: -/* 8036A118 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A11C D8 21 00 50 */ stfd f1, 0x50(r1) -/* 8036A120 40 80 00 10 */ bge lbl_8036A130 -/* 8036A124 C8 02 CE 58 */ lfd f0, lit_336(r2) -/* 8036A128 FC 00 08 24 */ fdiv f0, f0, f1 -/* 8036A12C D8 01 00 50 */ stfd f0, 0x50(r1) -lbl_8036A130: -/* 8036A130 2C 00 00 00 */ cmpwi r0, 0 -/* 8036A134 40 80 00 38 */ bge lbl_8036A16C -/* 8036A138 3C 06 C0 10 */ addis r0, r6, 0xc010 -/* 8036A13C 7C 00 23 79 */ or. r0, r0, r4 -/* 8036A140 40 82 00 18 */ bne lbl_8036A158 -/* 8036A144 C8 01 00 50 */ lfd f0, 0x50(r1) -/* 8036A148 FC 00 00 28 */ fsub f0, f0, f0 -/* 8036A14C FC 00 00 24 */ fdiv f0, f0, f0 -/* 8036A150 D8 01 00 50 */ stfd f0, 0x50(r1) -/* 8036A154 48 00 00 18 */ b lbl_8036A16C -lbl_8036A158: -/* 8036A158 2C 04 00 01 */ cmpwi r4, 1 -/* 8036A15C 40 82 00 10 */ bne lbl_8036A16C -/* 8036A160 C8 01 00 50 */ lfd f0, 0x50(r1) -/* 8036A164 FC 00 00 50 */ fneg f0, f0 -/* 8036A168 D8 01 00 50 */ stfd f0, 0x50(r1) -lbl_8036A16C: -/* 8036A16C C8 21 00 50 */ lfd f1, 0x50(r1) -/* 8036A170 48 00 05 60 */ b lbl_8036A6D0 -lbl_8036A174: -/* 8036A174 7C 08 FE 70 */ srawi r8, r0, 0x1f -/* 8036A178 38 08 00 01 */ addi r0, r8, 1 -/* 8036A17C 7C 08 23 79 */ or. r8, r0, r4 -/* 8036A180 40 82 00 18 */ bne lbl_8036A198 -/* 8036A184 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8036A188 38 00 00 21 */ li r0, 0x21 -/* 8036A18C 90 0D 94 28 */ stw r0, errno(r13) -/* 8036A190 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 8036A194 48 00 05 3C */ b lbl_8036A6D0 -lbl_8036A198: -/* 8036A198 3D 00 41 E0 */ lis r8, 0x41e0 -/* 8036A19C 7C 07 40 00 */ cmpw r7, r8 -/* 8036A1A0 40 81 01 04 */ ble lbl_8036A2A4 -/* 8036A1A4 3C 60 43 F0 */ lis r3, 0x43f0 -/* 8036A1A8 7C 07 18 00 */ cmpw r7, r3 -/* 8036A1AC 40 81 00 4C */ ble lbl_8036A1F8 -/* 8036A1B0 3C 60 3F F0 */ lis r3, 0x3FF0 /* 0x3FEFFFFF@ha */ -/* 8036A1B4 38 E3 FF FF */ addi r7, r3, 0xFFFF /* 0x3FEFFFFF@l */ -/* 8036A1B8 7C 06 38 00 */ cmpw r6, r7 -/* 8036A1BC 41 81 00 1C */ bgt lbl_8036A1D8 -/* 8036A1C0 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A1C4 40 80 00 0C */ bge lbl_8036A1D0 -/* 8036A1C8 C8 22 CE 68 */ lfd f1, lit_338(r2) -/* 8036A1CC 48 00 05 04 */ b lbl_8036A6D0 -lbl_8036A1D0: -/* 8036A1D0 C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A1D4 48 00 04 FC */ b lbl_8036A6D0 -lbl_8036A1D8: -/* 8036A1D8 7C 06 18 00 */ cmpw r6, r3 -/* 8036A1DC 41 80 00 1C */ blt lbl_8036A1F8 -/* 8036A1E0 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A1E4 40 81 00 0C */ ble lbl_8036A1F0 -/* 8036A1E8 C8 22 CE 68 */ lfd f1, lit_338(r2) -/* 8036A1EC 48 00 04 E4 */ b lbl_8036A6D0 -lbl_8036A1F0: -/* 8036A1F0 C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A1F4 48 00 04 DC */ b lbl_8036A6D0 -lbl_8036A1F8: -/* 8036A1F8 3C 60 3F F0 */ lis r3, 0x3FF0 /* 0x3FEFFFFF@ha */ -/* 8036A1FC 38 E3 FF FF */ addi r7, r3, 0xFFFF /* 0x3FEFFFFF@l */ -/* 8036A200 7C 06 38 00 */ cmpw r6, r7 -/* 8036A204 40 80 00 1C */ bge lbl_8036A220 -/* 8036A208 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A20C 40 80 00 0C */ bge lbl_8036A218 -/* 8036A210 C8 22 CE 68 */ lfd f1, lit_338(r2) -/* 8036A214 48 00 04 BC */ b lbl_8036A6D0 -lbl_8036A218: -/* 8036A218 C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A21C 48 00 04 B4 */ b lbl_8036A6D0 -lbl_8036A220: -/* 8036A220 7C 06 18 00 */ cmpw r6, r3 -/* 8036A224 40 81 00 1C */ ble lbl_8036A240 -/* 8036A228 2C 05 00 00 */ cmpwi r5, 0 -/* 8036A22C 40 81 00 0C */ ble lbl_8036A238 -/* 8036A230 C8 22 CE 68 */ lfd f1, lit_338(r2) -/* 8036A234 48 00 04 9C */ b lbl_8036A6D0 -lbl_8036A238: -/* 8036A238 C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A23C 48 00 04 94 */ b lbl_8036A6D0 -lbl_8036A240: -/* 8036A240 C8 41 00 08 */ lfd f2, 8(r1) -/* 8036A244 38 60 00 00 */ li r3, 0 -/* 8036A248 C8 02 CE 58 */ lfd f0, lit_336(r2) -/* 8036A24C C8 22 CE 80 */ lfd f1, lit_341(r2) -/* 8036A250 FC C2 00 28 */ fsub f6, f2, f0 -/* 8036A254 C8 02 CE 78 */ lfd f0, lit_340(r2) -/* 8036A258 C8 42 CE 88 */ lfd f2, lit_342(r2) -/* 8036A25C C8 62 CE 70 */ lfd f3, lit_339(r2) -/* 8036A260 FC 81 01 BC */ fnmsub f4, f1, f6, f0 -/* 8036A264 C8 02 CE 98 */ lfd f0, lit_344(r2) -/* 8036A268 C8 22 CE 90 */ lfd f1, lit_343(r2) -/* 8036A26C FC A6 01 B2 */ fmul f5, f6, f6 -/* 8036A270 D8 C1 00 28 */ stfd f6, 0x28(r1) -/* 8036A274 FC 66 19 3C */ fnmsub f3, f6, f4, f3 -/* 8036A278 FC 42 01 B2 */ fmul f2, f2, f6 -/* 8036A27C FC 65 00 F2 */ fmul f3, f5, f3 -/* 8036A280 FC 00 00 F2 */ fmul f0, f0, f3 -/* 8036A284 FC 21 01 B8 */ fmsub f1, f1, f6, f0 -/* 8036A288 FC 02 08 2A */ fadd f0, f2, f1 -/* 8036A28C D8 01 00 30 */ stfd f0, 0x30(r1) -/* 8036A290 90 61 00 34 */ stw r3, 0x34(r1) -/* 8036A294 C8 01 00 30 */ lfd f0, 0x30(r1) -/* 8036A298 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036A29C FC 01 00 28 */ fsub f0, f1, f0 -/* 8036A2A0 48 00 01 EC */ b lbl_8036A48C -lbl_8036A2A4: -/* 8036A2A4 3C A0 00 10 */ lis r5, 0x10 -/* 8036A2A8 39 40 00 00 */ li r10, 0 -/* 8036A2AC 7C 06 28 00 */ cmpw r6, r5 -/* 8036A2B0 40 80 00 1C */ bge lbl_8036A2CC -/* 8036A2B4 C8 21 00 48 */ lfd f1, 0x48(r1) -/* 8036A2B8 39 40 FF CB */ li r10, -53 -/* 8036A2BC C8 02 CE A0 */ lfd f0, lit_345(r2) -/* 8036A2C0 FC 01 00 32 */ fmul f0, f1, f0 -/* 8036A2C4 D8 01 00 48 */ stfd f0, 0x48(r1) -/* 8036A2C8 80 C1 00 48 */ lwz r6, 0x48(r1) -lbl_8036A2CC: -/* 8036A2CC 3C A0 00 04 */ lis r5, 0x0004 /* 0x0003988E@ha */ -/* 8036A2D0 54 C8 03 3E */ clrlwi r8, r6, 0xc -/* 8036A2D4 38 A5 98 8E */ addi r5, r5, 0x988E /* 0x0003988E@l */ -/* 8036A2D8 7C C6 A6 70 */ srawi r6, r6, 0x14 -/* 8036A2DC 7C 08 28 00 */ cmpw r8, r5 -/* 8036A2E0 65 07 3F F0 */ oris r7, r8, 0x3ff0 -/* 8036A2E4 7D 46 52 14 */ add r10, r6, r10 -/* 8036A2E8 39 4A FC 01 */ addi r10, r10, -1023 -/* 8036A2EC 41 81 00 0C */ bgt lbl_8036A2F8 -/* 8036A2F0 39 60 00 00 */ li r11, 0 -/* 8036A2F4 48 00 00 28 */ b lbl_8036A31C -lbl_8036A2F8: -/* 8036A2F8 3C A0 00 0C */ lis r5, 0x000C /* 0x000BB67A@ha */ -/* 8036A2FC 38 A5 B6 7A */ addi r5, r5, 0xB67A /* 0x000BB67A@l */ -/* 8036A300 7C 08 28 00 */ cmpw r8, r5 -/* 8036A304 40 80 00 0C */ bge lbl_8036A310 -/* 8036A308 39 60 00 01 */ li r11, 1 -/* 8036A30C 48 00 00 10 */ b lbl_8036A31C -lbl_8036A310: -/* 8036A310 3C E7 FF F0 */ addis r7, r7, 0xfff0 -/* 8036A314 39 60 00 00 */ li r11, 0 -/* 8036A318 39 4A 00 01 */ addi r10, r10, 1 -lbl_8036A31C: -/* 8036A31C 90 E1 00 48 */ stw r7, 0x48(r1) -/* 8036A320 7C E5 0E 70 */ srawi r5, r7, 1 -/* 8036A324 55 69 18 38 */ slwi r9, r11, 3 -/* 8036A328 38 C3 00 00 */ addi r6, r3, 0 -/* 8036A32C CB C1 00 48 */ lfd f30, 0x48(r1) -/* 8036A330 64 A8 20 00 */ oris r8, r5, 0x2000 -/* 8036A334 7C A6 4C AE */ lfdx f5, r6, r9 -/* 8036A338 38 E3 00 20 */ addi r7, r3, 0x20 -/* 8036A33C C8 22 CE 60 */ lfd f1, lit_337(r2) -/* 8036A340 6D 46 80 00 */ xoris r6, r10, 0x8000 -/* 8036A344 FC 1E 28 2A */ fadd f0, f30, f5 -/* 8036A348 C8 42 CE 58 */ lfd f2, lit_336(r2) -/* 8036A34C 3C A0 43 30 */ lis r5, 0x4330 -/* 8036A350 39 43 00 10 */ addi r10, r3, 0x10 -/* 8036A354 FF FE 28 28 */ fsub f31, f30, f5 -/* 8036A358 C8 82 CE D0 */ lfd f4, lit_351(r2) -/* 8036A35C FF 82 00 24 */ fdiv f28, f2, f0 -/* 8036A360 C8 02 CE C8 */ lfd f0, lit_350(r2) -/* 8036A364 C8 62 CE C0 */ lfd f3, lit_349(r2) -/* 8036A368 3D 08 00 08 */ addis r8, r8, 8 -/* 8036A36C 55 63 90 1A */ slwi r3, r11, 0x12 -/* 8036A370 D8 21 00 18 */ stfd f1, 0x18(r1) -/* 8036A374 FC 3F 07 32 */ fmul f1, f31, f28 -/* 8036A378 7C 68 1A 14 */ add r3, r8, r3 -/* 8036A37C 90 61 00 18 */ stw r3, 0x18(r1) -/* 8036A380 38 60 00 00 */ li r3, 0 -/* 8036A384 C8 42 CE B8 */ lfd f2, lit_348(r2) -/* 8036A388 C9 81 00 18 */ lfd f12, 0x18(r1) -/* 8036A38C FF 61 00 72 */ fmul f27, f1, f1 -/* 8036A390 D8 21 00 20 */ stfd f1, 0x20(r1) -/* 8036A394 C9 62 CE B0 */ lfd f11, lit_347(r2) -/* 8036A398 90 61 00 24 */ stw r3, 0x24(r1) -/* 8036A39C FD AC 28 28 */ fsub f13, f12, f5 -/* 8036A3A0 C9 22 CE A8 */ lfd f9, lit_346(r2) -/* 8036A3A4 FC 84 06 FA */ fmadd f4, f4, f27, f0 -/* 8036A3A8 CB A1 00 20 */ lfd f29, 0x20(r1) -/* 8036A3AC C9 42 CE D8 */ lfd f10, lit_352(r2) -/* 8036A3B0 FC 1D 07 72 */ fmul f0, f29, f29 -/* 8036A3B4 C8 A2 CE F0 */ lfd f5, lit_355(r2) -/* 8036A3B8 C8 C2 CE E8 */ lfd f6, lit_354(r2) -/* 8036A3BC FC 7B 19 3A */ fmadd f3, f27, f4, f3 -/* 8036A3C0 C9 02 CE E0 */ lfd f8, lit_353(r2) -/* 8036A3C4 7C E7 4C AE */ lfdx f7, r7, r9 -/* 8036A3C8 FF FD FB 3C */ fnmsub f31, f29, f12, f31 -/* 8036A3CC 90 C1 00 5C */ stw r6, 0x5c(r1) -/* 8036A3D0 C8 82 CF 60 */ lfd f4, lit_370(r2) -/* 8036A3D4 FD 9B 10 FA */ fmadd f12, f27, f3, f2 -/* 8036A3D8 90 A1 00 58 */ stw r5, 0x58(r1) -/* 8036A3DC 7C 4A 4C AE */ lfdx f2, r10, r9 -/* 8036A3E0 FF DE 68 28 */ fsub f30, f30, f13 -/* 8036A3E4 C8 61 00 58 */ lfd f3, 0x58(r1) -/* 8036A3E8 FD BB 06 F2 */ fmul f13, f27, f27 -/* 8036A3EC FD 7B 5B 3A */ fmadd f11, f27, f12, f11 -/* 8036A3F0 FD 9D FF BC */ fnmsub f12, f29, f30, f31 -/* 8036A3F4 FD 3B 4A FA */ fmadd f9, f27, f11, f9 -/* 8036A3F8 FF 7C 03 32 */ fmul f27, f28, f12 -/* 8036A3FC FD 8D 02 72 */ fmul f12, f13, f9 -/* 8036A400 FD 7D 08 2A */ fadd f11, f29, f1 -/* 8036A404 FD 2A 00 2A */ fadd f9, f10, f0 -/* 8036A408 FC 63 20 28 */ fsub f3, f3, f4 -/* 8036A40C FD 9B 62 FA */ fmadd f12, f27, f11, f12 -/* 8036A410 D8 61 00 28 */ stfd f3, 0x28(r1) -/* 8036A414 FC 89 60 2A */ fadd f4, f9, f12 -/* 8036A418 D8 81 00 18 */ stfd f4, 0x18(r1) -/* 8036A41C 90 61 00 1C */ stw r3, 0x1c(r1) -/* 8036A420 C9 21 00 18 */ lfd f9, 0x18(r1) -/* 8036A424 FC 89 50 28 */ fsub f4, f9, f10 -/* 8036A428 FD 5D 02 72 */ fmul f10, f29, f9 -/* 8036A42C FC 04 00 28 */ fsub f0, f4, f0 -/* 8036A430 FC 0C 00 28 */ fsub f0, f12, f0 -/* 8036A434 FC 00 00 72 */ fmul f0, f0, f1 -/* 8036A438 FC 9B 02 7A */ fmadd f4, f27, f9, f0 -/* 8036A43C FC 0A 20 2A */ fadd f0, f10, f4 -/* 8036A440 D8 01 00 40 */ stfd f0, 0x40(r1) -/* 8036A444 90 61 00 44 */ stw r3, 0x44(r1) -/* 8036A448 C8 21 00 40 */ lfd f1, 0x40(r1) -/* 8036A44C FC 01 50 28 */ fsub f0, f1, f10 -/* 8036A450 FD 08 00 72 */ fmul f8, f8, f1 -/* 8036A454 FC 04 00 28 */ fsub f0, f4, f0 -/* 8036A458 FC 05 00 32 */ fmul f0, f5, f0 -/* 8036A45C FC 06 00 7A */ fmadd f0, f6, f1, f0 -/* 8036A460 FC 27 00 2A */ fadd f1, f7, f0 -/* 8036A464 FC 08 08 2A */ fadd f0, f8, f1 -/* 8036A468 FC 00 10 2A */ fadd f0, f0, f2 -/* 8036A46C FC 03 00 2A */ fadd f0, f3, f0 -/* 8036A470 D8 01 00 30 */ stfd f0, 0x30(r1) -/* 8036A474 90 61 00 34 */ stw r3, 0x34(r1) -/* 8036A478 C8 01 00 30 */ lfd f0, 0x30(r1) -/* 8036A47C FC 00 18 28 */ fsub f0, f0, f3 -/* 8036A480 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036A484 FC 00 40 28 */ fsub f0, f0, f8 -/* 8036A488 FC 01 00 28 */ fsub f0, f1, f0 -lbl_8036A48C: -/* 8036A48C 38 64 FF FF */ addi r3, r4, -1 -/* 8036A490 CB E2 CE 58 */ lfd f31, lit_336(r2) -/* 8036A494 7C 00 1B 79 */ or. r0, r0, r3 -/* 8036A498 40 82 00 08 */ bne lbl_8036A4A0 -/* 8036A49C CB E2 CE F8 */ lfd f31, lit_356(r2) -lbl_8036A4A0: -/* 8036A4A0 C8 21 00 10 */ lfd f1, 0x10(r1) -/* 8036A4A4 38 60 00 00 */ li r3, 0 -/* 8036A4A8 C8 61 00 30 */ lfd f3, 0x30(r1) -/* 8036A4AC 3C 00 40 90 */ lis r0, 0x4090 -/* 8036A4B0 D8 21 00 38 */ stfd f1, 0x38(r1) -/* 8036A4B4 FC 01 00 32 */ fmul f0, f1, f0 -/* 8036A4B8 90 61 00 3C */ stw r3, 0x3c(r1) -/* 8036A4BC C8 41 00 38 */ lfd f2, 0x38(r1) -/* 8036A4C0 FC 21 10 28 */ fsub f1, f1, f2 -/* 8036A4C4 FC 42 00 F2 */ fmul f2, f2, f3 -/* 8036A4C8 FD 83 00 7A */ fmadd f12, f3, f1, f0 -/* 8036A4CC D8 41 00 40 */ stfd f2, 0x40(r1) -/* 8036A4D0 FC 0C 10 2A */ fadd f0, f12, f2 -/* 8036A4D4 D8 01 00 50 */ stfd f0, 0x50(r1) -/* 8036A4D8 80 C1 00 50 */ lwz r6, 0x50(r1) -/* 8036A4DC 80 A1 00 54 */ lwz r5, 0x54(r1) -/* 8036A4E0 7C 06 00 00 */ cmpw r6, r0 -/* 8036A4E4 41 80 00 44 */ blt lbl_8036A528 -/* 8036A4E8 3C 06 BF 70 */ addis r0, r6, 0xbf70 -/* 8036A4EC 7C 00 2B 79 */ or. r0, r0, r5 -/* 8036A4F0 41 82 00 14 */ beq lbl_8036A504 -/* 8036A4F4 C8 22 CF 00 */ lfd f1, lit_357(r2) -/* 8036A4F8 FC 01 07 F2 */ fmul f0, f1, f31 -/* 8036A4FC FC 21 00 32 */ fmul f1, f1, f0 -/* 8036A500 48 00 01 D0 */ b lbl_8036A6D0 -lbl_8036A504: -/* 8036A504 C8 22 CF 08 */ lfd f1, lit_358(r2) -/* 8036A508 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036A50C FC 21 60 2A */ fadd f1, f1, f12 -/* 8036A510 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8036A514 40 81 00 68 */ ble lbl_8036A57C -/* 8036A518 C8 22 CF 00 */ lfd f1, lit_357(r2) -/* 8036A51C FC 01 07 F2 */ fmul f0, f1, f31 -/* 8036A520 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036A524 48 00 01 AC */ b lbl_8036A6D0 -lbl_8036A528: -/* 8036A528 3C 60 40 91 */ lis r3, 0x4091 /* 0x4090CC00@ha */ -/* 8036A52C 54 C4 00 7E */ clrlwi r4, r6, 1 -/* 8036A530 38 03 CC 00 */ addi r0, r3, 0xCC00 /* 0x4090CC00@l */ -/* 8036A534 7C 04 00 00 */ cmpw r4, r0 -/* 8036A538 41 80 00 44 */ blt lbl_8036A57C -/* 8036A53C 3C 66 3F 6F */ addis r3, r6, 0x3f6f -/* 8036A540 38 03 34 00 */ addi r0, r3, 0x3400 -/* 8036A544 7C 00 2B 79 */ or. r0, r0, r5 -/* 8036A548 41 82 00 14 */ beq lbl_8036A55C -/* 8036A54C C8 22 CF 10 */ lfd f1, lit_359(r2) -/* 8036A550 FC 01 07 F2 */ fmul f0, f1, f31 -/* 8036A554 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036A558 48 00 01 78 */ b lbl_8036A6D0 -lbl_8036A55C: -/* 8036A55C FC 00 10 28 */ fsub f0, f0, f2 -/* 8036A560 FC 0C 00 40 */ fcmpo cr0, f12, f0 -/* 8036A564 4C 40 13 82 */ cror 2, 0, 2 -/* 8036A568 40 82 00 14 */ bne lbl_8036A57C -/* 8036A56C C8 22 CF 10 */ lfd f1, lit_359(r2) -/* 8036A570 FC 01 07 F2 */ fmul f0, f1, f31 -/* 8036A574 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036A578 48 00 01 58 */ b lbl_8036A6D0 -lbl_8036A57C: -/* 8036A57C 54 C3 00 7E */ clrlwi r3, r6, 1 -/* 8036A580 3C 00 3F E0 */ lis r0, 0x3fe0 -/* 8036A584 7C 03 00 00 */ cmpw r3, r0 -/* 8036A588 54 C4 65 7E */ rlwinm r4, r6, 0xc, 0x15, 0x1f -/* 8036A58C 38 60 00 00 */ li r3, 0 -/* 8036A590 40 81 00 64 */ ble lbl_8036A5F4 -/* 8036A594 3C 60 00 10 */ lis r3, 0x0010 /* 0x000FFFFF@ha */ -/* 8036A598 38 04 FC 02 */ addi r0, r4, -1022 -/* 8036A59C 7C 60 06 30 */ sraw r0, r3, r0 -/* 8036A5A0 C8 02 CE 60 */ lfd f0, lit_337(r2) -/* 8036A5A4 7C E6 02 14 */ add r7, r6, r0 -/* 8036A5A8 38 63 FF FF */ addi r3, r3, 0xFFFF /* 0x000FFFFF@l */ -/* 8036A5AC 54 E0 00 7E */ clrlwi r0, r7, 1 -/* 8036A5B0 D8 01 00 28 */ stfd f0, 0x28(r1) -/* 8036A5B4 7C 04 A6 70 */ srawi r4, r0, 0x14 -/* 8036A5B8 54 E0 03 3E */ clrlwi r0, r7, 0xc -/* 8036A5BC 38 A4 FC 01 */ addi r5, r4, -1023 -/* 8036A5C0 2C 06 00 00 */ cmpwi r6, 0 -/* 8036A5C4 7C 64 2E 30 */ sraw r4, r3, r5 -/* 8036A5C8 64 03 00 10 */ oris r3, r0, 0x10 -/* 8036A5CC 7C E4 20 78 */ andc r4, r7, r4 -/* 8036A5D0 20 05 00 14 */ subfic r0, r5, 0x14 -/* 8036A5D4 90 81 00 28 */ stw r4, 0x28(r1) -/* 8036A5D8 7C 63 06 30 */ sraw r3, r3, r0 -/* 8036A5DC 40 80 00 08 */ bge lbl_8036A5E4 -/* 8036A5E0 7C 63 00 D0 */ neg r3, r3 -lbl_8036A5E4: -/* 8036A5E4 C8 21 00 40 */ lfd f1, 0x40(r1) -/* 8036A5E8 C8 01 00 28 */ lfd f0, 0x28(r1) -/* 8036A5EC FC 01 00 28 */ fsub f0, f1, f0 -/* 8036A5F0 D8 01 00 40 */ stfd f0, 0x40(r1) -lbl_8036A5F4: -/* 8036A5F4 C8 41 00 40 */ lfd f2, 0x40(r1) -/* 8036A5F8 38 00 00 00 */ li r0, 0 -/* 8036A5FC C8 22 CF 28 */ lfd f1, lit_362(r2) -/* 8036A600 54 64 A0 16 */ slwi r4, r3, 0x14 -/* 8036A604 FC 0C 10 2A */ fadd f0, f12, f2 -/* 8036A608 C9 42 CF 18 */ lfd f10, lit_360(r2) -/* 8036A60C C9 22 CF 20 */ lfd f9, lit_361(r2) -/* 8036A610 C8 C2 CF 50 */ lfd f6, lit_367(r2) -/* 8036A614 D8 01 00 28 */ stfd f0, 0x28(r1) -/* 8036A618 C8 A2 CF 48 */ lfd f5, lit_366(r2) -/* 8036A61C 90 01 00 2C */ stw r0, 0x2c(r1) -/* 8036A620 C8 02 CF 40 */ lfd f0, lit_365(r2) -/* 8036A624 C9 61 00 28 */ lfd f11, 0x28(r1) -/* 8036A628 C8 82 CF 38 */ lfd f4, lit_364(r2) -/* 8036A62C FD 0B 10 28 */ fsub f8, f11, f2 -/* 8036A630 C8 62 CF 30 */ lfd f3, lit_363(r2) -/* 8036A634 FC E1 02 F2 */ fmul f7, f1, f11 -/* 8036A638 C8 42 CF 58 */ lfd f2, lit_368(r2) -/* 8036A63C C8 22 CE 58 */ lfd f1, lit_336(r2) -/* 8036A640 FD 0C 40 28 */ fsub f8, f12, f8 -/* 8036A644 FD 4A 02 F2 */ fmul f10, f10, f11 -/* 8036A648 FD 69 3A 3A */ fmadd f11, f9, f8, f7 -/* 8036A64C FD 2A 58 2A */ fadd f9, f10, f11 -/* 8036A650 FC E9 02 72 */ fmul f7, f9, f9 -/* 8036A654 D9 21 00 50 */ stfd f9, 0x50(r1) -/* 8036A658 FD 09 50 28 */ fsub f8, f9, f10 -/* 8036A65C FC A6 29 FA */ fmadd f5, f6, f7, f5 -/* 8036A660 D8 E1 00 28 */ stfd f7, 0x28(r1) -/* 8036A664 FC CB 40 28 */ fsub f6, f11, f8 -/* 8036A668 FC A7 01 7A */ fmadd f5, f7, f5, f0 -/* 8036A66C FC 09 31 BA */ fmadd f0, f9, f6, f6 -/* 8036A670 FC 87 21 7A */ fmadd f4, f7, f5, f4 -/* 8036A674 FC 67 19 3A */ fmadd f3, f7, f4, f3 -/* 8036A678 FC 67 00 F2 */ fmul f3, f7, f3 -/* 8036A67C FC 89 18 28 */ fsub f4, f9, f3 -/* 8036A680 FC 69 01 32 */ fmul f3, f9, f4 -/* 8036A684 D8 81 00 30 */ stfd f4, 0x30(r1) -/* 8036A688 FC 44 10 28 */ fsub f2, f4, f2 -/* 8036A68C FC 43 10 24 */ fdiv f2, f3, f2 -/* 8036A690 FC 02 00 28 */ fsub f0, f2, f0 -/* 8036A694 FC 00 48 28 */ fsub f0, f0, f9 -/* 8036A698 FC 21 00 28 */ fsub f1, f1, f0 -/* 8036A69C D8 21 00 50 */ stfd f1, 0x50(r1) -/* 8036A6A0 80 01 00 50 */ lwz r0, 0x50(r1) -/* 8036A6A4 7C 00 22 14 */ add r0, r0, r4 -/* 8036A6A8 7C 00 A6 71 */ srawi. r0, r0, 0x14 -/* 8036A6AC 41 81 00 10 */ bgt lbl_8036A6BC -/* 8036A6B0 48 00 1C 21 */ bl ldexp -/* 8036A6B4 D8 21 00 50 */ stfd f1, 0x50(r1) -/* 8036A6B8 48 00 00 10 */ b lbl_8036A6C8 -lbl_8036A6BC: -/* 8036A6BC 80 01 00 50 */ lwz r0, 0x50(r1) -/* 8036A6C0 7C 00 22 14 */ add r0, r0, r4 -/* 8036A6C4 90 01 00 50 */ stw r0, 0x50(r1) -lbl_8036A6C8: -/* 8036A6C8 C8 01 00 50 */ lfd f0, 0x50(r1) -/* 8036A6CC FC 3F 00 32 */ fmul f1, f31, f0 -lbl_8036A6D0: -/* 8036A6D0 E3 E1 00 A8 */ psq_l f31, 168(r1), 0, 0 /* qr0 */ -/* 8036A6D4 CB E1 00 A0 */ lfd f31, 0xa0(r1) -/* 8036A6D8 E3 C1 00 98 */ psq_l f30, 152(r1), 0, 0 /* qr0 */ -/* 8036A6DC CB C1 00 90 */ lfd f30, 0x90(r1) -/* 8036A6E0 E3 A1 00 88 */ psq_l f29, 136(r1), 0, 0 /* qr0 */ -/* 8036A6E4 CB A1 00 80 */ lfd f29, 0x80(r1) -/* 8036A6E8 E3 81 00 78 */ psq_l f28, 120(r1), 0, 0 /* qr0 */ -/* 8036A6EC CB 81 00 70 */ lfd f28, 0x70(r1) -/* 8036A6F0 E3 61 00 68 */ psq_l f27, 104(r1), 0, 0 /* qr0 */ -/* 8036A6F4 80 01 00 B4 */ lwz r0, 0xb4(r1) -/* 8036A6F8 CB 61 00 60 */ lfd f27, 0x60(r1) -/* 8036A6FC 7C 08 03 A6 */ mtlr r0 -/* 8036A700 38 21 00 B0 */ addi r1, r1, 0xb0 -/* 8036A704 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/e_rem_pio2/__ieee754_rem_pio2.s b/asm/MSL_C/Math/Double_precision/e_rem_pio2/__ieee754_rem_pio2.s deleted file mode 100644 index 10493689408..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_rem_pio2/__ieee754_rem_pio2.s +++ /dev/null @@ -1,247 +0,0 @@ -lbl_8036A708: -/* 8036A708 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 8036A70C 7C 08 02 A6 */ mflr r0 -/* 8036A710 3C 80 3F E9 */ lis r4, 0x3FE9 /* 0x3FE921FB@ha */ -/* 8036A714 90 01 00 64 */ stw r0, 0x64(r1) -/* 8036A718 38 04 21 FB */ addi r0, r4, 0x21FB /* 0x3FE921FB@l */ -/* 8036A71C 93 E1 00 5C */ stw r31, 0x5c(r1) -/* 8036A720 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036A724 83 E1 00 08 */ lwz r31, 8(r1) -/* 8036A728 93 C1 00 58 */ stw r30, 0x58(r1) -/* 8036A72C 7C 7E 1B 78 */ mr r30, r3 -/* 8036A730 57 E6 00 7E */ clrlwi r6, r31, 1 -/* 8036A734 7C 06 00 00 */ cmpw r6, r0 -/* 8036A738 41 81 00 18 */ bgt lbl_8036A750 -/* 8036A73C D8 3E 00 00 */ stfd f1, 0(r30) -/* 8036A740 38 60 00 00 */ li r3, 0 -/* 8036A744 C8 02 CF 68 */ lfd f0, lit_145(r2) -/* 8036A748 D8 1E 00 08 */ stfd f0, 8(r30) -/* 8036A74C 48 00 03 44 */ b lbl_8036AA90 -lbl_8036A750: -/* 8036A750 3C 60 40 03 */ lis r3, 0x4003 /* 0x4002D97C@ha */ -/* 8036A754 38 03 D9 7C */ addi r0, r3, 0xD97C /* 0x4002D97C@l */ -/* 8036A758 7C 06 00 00 */ cmpw r6, r0 -/* 8036A75C 40 80 00 DC */ bge lbl_8036A838 -/* 8036A760 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036A764 40 81 00 6C */ ble lbl_8036A7D0 -/* 8036A768 C8 02 CF 70 */ lfd f0, lit_146(r2) -/* 8036A76C 3C 06 C0 07 */ addis r0, r6, 0xc007 -/* 8036A770 28 00 21 FB */ cmplwi r0, 0x21fb -/* 8036A774 FC 41 00 28 */ fsub f2, f1, f0 -/* 8036A778 D8 41 00 10 */ stfd f2, 0x10(r1) -/* 8036A77C 41 82 00 24 */ beq lbl_8036A7A0 -/* 8036A780 C8 22 CF 78 */ lfd f1, lit_147(r2) -/* 8036A784 FC 02 08 28 */ fsub f0, f2, f1 -/* 8036A788 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A78C C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036A790 FC 02 00 28 */ fsub f0, f2, f0 -/* 8036A794 FC 00 08 28 */ fsub f0, f0, f1 -/* 8036A798 D8 1E 00 08 */ stfd f0, 8(r30) -/* 8036A79C 48 00 00 2C */ b lbl_8036A7C8 -lbl_8036A7A0: -/* 8036A7A0 C8 02 CF 80 */ lfd f0, lit_148(r2) -/* 8036A7A4 C8 22 CF 88 */ lfd f1, lit_149(r2) -/* 8036A7A8 FC 42 00 28 */ fsub f2, f2, f0 -/* 8036A7AC FC 02 08 28 */ fsub f0, f2, f1 -/* 8036A7B0 D8 41 00 10 */ stfd f2, 0x10(r1) -/* 8036A7B4 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A7B8 C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036A7BC FC 02 00 28 */ fsub f0, f2, f0 -/* 8036A7C0 FC 00 08 28 */ fsub f0, f0, f1 -/* 8036A7C4 D8 1E 00 08 */ stfd f0, 8(r30) -lbl_8036A7C8: -/* 8036A7C8 38 60 00 01 */ li r3, 1 -/* 8036A7CC 48 00 02 C4 */ b lbl_8036AA90 -lbl_8036A7D0: -/* 8036A7D0 C8 02 CF 70 */ lfd f0, lit_146(r2) -/* 8036A7D4 3C 06 C0 07 */ addis r0, r6, 0xc007 -/* 8036A7D8 28 00 21 FB */ cmplwi r0, 0x21fb -/* 8036A7DC FC 40 08 2A */ fadd f2, f0, f1 -/* 8036A7E0 D8 41 00 10 */ stfd f2, 0x10(r1) -/* 8036A7E4 41 82 00 24 */ beq lbl_8036A808 -/* 8036A7E8 C8 22 CF 78 */ lfd f1, lit_147(r2) -/* 8036A7EC FC 01 10 2A */ fadd f0, f1, f2 -/* 8036A7F0 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A7F4 C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036A7F8 FC 02 00 28 */ fsub f0, f2, f0 -/* 8036A7FC FC 01 00 2A */ fadd f0, f1, f0 -/* 8036A800 D8 1E 00 08 */ stfd f0, 8(r30) -/* 8036A804 48 00 00 2C */ b lbl_8036A830 -lbl_8036A808: -/* 8036A808 C8 02 CF 80 */ lfd f0, lit_148(r2) -/* 8036A80C C8 22 CF 88 */ lfd f1, lit_149(r2) -/* 8036A810 FC 42 00 2A */ fadd f2, f2, f0 -/* 8036A814 FC 01 10 2A */ fadd f0, f1, f2 -/* 8036A818 D8 41 00 10 */ stfd f2, 0x10(r1) -/* 8036A81C D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A820 C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036A824 FC 02 00 28 */ fsub f0, f2, f0 -/* 8036A828 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036A82C D8 1E 00 08 */ stfd f0, 8(r30) -lbl_8036A830: -/* 8036A830 38 60 FF FF */ li r3, -1 -/* 8036A834 48 00 02 5C */ b lbl_8036AA90 -lbl_8036A838: -/* 8036A838 3C 60 41 39 */ lis r3, 0x4139 /* 0x413921FB@ha */ -/* 8036A83C 38 03 21 FB */ addi r0, r3, 0x21FB /* 0x413921FB@l */ -/* 8036A840 7C 06 00 00 */ cmpw r6, r0 -/* 8036A844 41 81 01 3C */ bgt lbl_8036A980 -/* 8036A848 FC 80 0A 10 */ fabs f4, f1 -/* 8036A84C 3C 00 43 30 */ lis r0, 0x4330 -/* 8036A850 C8 22 CF 98 */ lfd f1, lit_151(r2) -/* 8036A854 C8 02 CF 90 */ lfd f0, lit_150(r2) -/* 8036A858 90 01 00 38 */ stw r0, 0x38(r1) -/* 8036A85C FC 41 01 3A */ fmadd f2, f1, f4, f0 -/* 8036A860 C8 62 CF B8 */ lfd f3, lit_157(r2) -/* 8036A864 C8 22 CF 70 */ lfd f1, lit_146(r2) -/* 8036A868 C8 02 CF 78 */ lfd f0, lit_147(r2) -/* 8036A86C FC 40 10 1E */ fctiwz f2, f2 -/* 8036A870 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 8036A874 80 61 00 34 */ lwz r3, 0x34(r1) -/* 8036A878 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 8036A87C 2C 03 00 20 */ cmpwi r3, 0x20 -/* 8036A880 90 01 00 3C */ stw r0, 0x3c(r1) -/* 8036A884 C8 41 00 38 */ lfd f2, 0x38(r1) -/* 8036A888 FC A2 18 28 */ fsub f5, f2, f3 -/* 8036A88C FC 81 21 7C */ fnmsub f4, f1, f5, f4 -/* 8036A890 FC 20 01 72 */ fmul f1, f0, f5 -/* 8036A894 40 80 00 2C */ bge lbl_8036A8C0 -/* 8036A898 3C 80 80 3A */ lis r4, npio2_hw@ha /* 0x803A24B8@ha */ -/* 8036A89C 54 60 10 3A */ slwi r0, r3, 2 -/* 8036A8A0 38 84 24 B8 */ addi r4, r4, npio2_hw@l /* 0x803A24B8@l */ -/* 8036A8A4 7C 84 02 14 */ add r4, r4, r0 -/* 8036A8A8 80 04 FF FC */ lwz r0, -4(r4) -/* 8036A8AC 7C 06 00 00 */ cmpw r6, r0 -/* 8036A8B0 41 82 00 10 */ beq lbl_8036A8C0 -/* 8036A8B4 FC 04 08 28 */ fsub f0, f4, f1 -/* 8036A8B8 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A8BC 48 00 00 88 */ b lbl_8036A944 -lbl_8036A8C0: -/* 8036A8C0 FC 04 08 28 */ fsub f0, f4, f1 -/* 8036A8C4 7C C4 A6 70 */ srawi r4, r6, 0x14 -/* 8036A8C8 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A8CC 80 1E 00 00 */ lwz r0, 0(r30) -/* 8036A8D0 54 00 65 7E */ rlwinm r0, r0, 0xc, 0x15, 0x1f -/* 8036A8D4 7C 00 20 50 */ subf r0, r0, r4 -/* 8036A8D8 2C 00 00 10 */ cmpwi r0, 0x10 -/* 8036A8DC 40 81 00 68 */ ble lbl_8036A944 -/* 8036A8E0 C8 02 CF 80 */ lfd f0, lit_148(r2) -/* 8036A8E4 FC 60 20 90 */ fmr f3, f4 -/* 8036A8E8 C8 22 CF 88 */ lfd f1, lit_149(r2) -/* 8036A8EC FC 40 01 72 */ fmul f2, f0, f5 -/* 8036A8F0 FC 84 10 28 */ fsub f4, f4, f2 -/* 8036A8F4 FC 03 20 28 */ fsub f0, f3, f4 -/* 8036A8F8 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036A8FC FC 21 01 78 */ fmsub f1, f1, f5, f0 -/* 8036A900 FC 04 08 28 */ fsub f0, f4, f1 -/* 8036A904 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A908 80 1E 00 00 */ lwz r0, 0(r30) -/* 8036A90C 54 00 65 7E */ rlwinm r0, r0, 0xc, 0x15, 0x1f -/* 8036A910 7C 00 20 50 */ subf r0, r0, r4 -/* 8036A914 2C 00 00 31 */ cmpwi r0, 0x31 -/* 8036A918 40 81 00 2C */ ble lbl_8036A944 -/* 8036A91C C8 02 CF A0 */ lfd f0, lit_152(r2) -/* 8036A920 FC 40 20 90 */ fmr f2, f4 -/* 8036A924 C8 22 CF A8 */ lfd f1, lit_153(r2) -/* 8036A928 FC 60 01 72 */ fmul f3, f0, f5 -/* 8036A92C FC 84 18 28 */ fsub f4, f4, f3 -/* 8036A930 FC 02 20 28 */ fsub f0, f2, f4 -/* 8036A934 FC 00 18 28 */ fsub f0, f0, f3 -/* 8036A938 FC 21 01 78 */ fmsub f1, f1, f5, f0 -/* 8036A93C FC 04 08 28 */ fsub f0, f4, f1 -/* 8036A940 D8 1E 00 00 */ stfd f0, 0(r30) -lbl_8036A944: -/* 8036A944 C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036A948 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036A94C FC 04 00 28 */ fsub f0, f4, f0 -/* 8036A950 FC 00 08 28 */ fsub f0, f0, f1 -/* 8036A954 D8 1E 00 08 */ stfd f0, 8(r30) -/* 8036A958 40 80 01 38 */ bge lbl_8036AA90 -/* 8036A95C C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036A960 7C 63 00 D0 */ neg r3, r3 -/* 8036A964 FC 00 00 50 */ fneg f0, f0 -/* 8036A968 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A96C C8 1E 00 08 */ lfd f0, 8(r30) -/* 8036A970 FC 00 00 50 */ fneg f0, f0 -/* 8036A974 D8 1E 00 08 */ stfd f0, 8(r30) -/* 8036A978 48 00 01 18 */ b lbl_8036AA90 -/* 8036A97C 48 00 01 14 */ b lbl_8036AA90 -lbl_8036A980: -/* 8036A980 3C 00 7F F0 */ lis r0, 0x7ff0 -/* 8036A984 7C 06 00 00 */ cmpw r6, r0 -/* 8036A988 41 80 00 18 */ blt lbl_8036A9A0 -/* 8036A98C FC 01 08 28 */ fsub f0, f1, f1 -/* 8036A990 38 60 00 00 */ li r3, 0 -/* 8036A994 D8 1E 00 08 */ stfd f0, 8(r30) -/* 8036A998 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036A99C 48 00 00 F4 */ b lbl_8036AA90 -lbl_8036A9A0: -/* 8036A9A0 7C C3 A6 70 */ srawi r3, r6, 0x14 -/* 8036A9A4 3C 00 43 30 */ lis r0, 0x4330 -/* 8036A9A8 38 A3 FB EA */ addi r5, r3, -1046 -/* 8036A9AC 80 81 00 0C */ lwz r4, 0xc(r1) -/* 8036A9B0 54 A3 A0 16 */ slwi r3, r5, 0x14 -/* 8036A9B4 90 01 00 30 */ stw r0, 0x30(r1) -/* 8036A9B8 7C 63 30 50 */ subf r3, r3, r6 -/* 8036A9BC C8 A2 CF B8 */ lfd f5, lit_157(r2) -/* 8036A9C0 90 81 00 14 */ stw r4, 0x14(r1) -/* 8036A9C4 38 81 00 30 */ addi r4, r1, 0x30 -/* 8036A9C8 C8 82 CF B0 */ lfd f4, lit_154(r2) -/* 8036A9CC 38 C0 00 03 */ li r6, 3 -/* 8036A9D0 90 61 00 10 */ stw r3, 0x10(r1) -/* 8036A9D4 C8 22 CF 68 */ lfd f1, lit_145(r2) -/* 8036A9D8 C8 61 00 10 */ lfd f3, 0x10(r1) -/* 8036A9DC 90 01 00 48 */ stw r0, 0x48(r1) -/* 8036A9E0 FC 00 18 1E */ fctiwz f0, f3 -/* 8036A9E4 D8 01 00 38 */ stfd f0, 0x38(r1) -/* 8036A9E8 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 8036A9EC 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036A9F0 90 01 00 34 */ stw r0, 0x34(r1) -/* 8036A9F4 C8 01 00 30 */ lfd f0, 0x30(r1) -/* 8036A9F8 FC 40 28 28 */ fsub f2, f0, f5 -/* 8036A9FC FC 03 10 28 */ fsub f0, f3, f2 -/* 8036AA00 D8 41 00 18 */ stfd f2, 0x18(r1) -/* 8036AA04 FC 64 00 32 */ fmul f3, f4, f0 -/* 8036AA08 FC 00 18 1E */ fctiwz f0, f3 -/* 8036AA0C D8 61 00 10 */ stfd f3, 0x10(r1) -/* 8036AA10 D8 01 00 40 */ stfd f0, 0x40(r1) -/* 8036AA14 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8036AA18 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036AA1C 90 01 00 4C */ stw r0, 0x4c(r1) -/* 8036AA20 C8 01 00 48 */ lfd f0, 0x48(r1) -/* 8036AA24 FC 40 28 28 */ fsub f2, f0, f5 -/* 8036AA28 FC 03 10 28 */ fsub f0, f3, f2 -/* 8036AA2C D8 41 00 20 */ stfd f2, 0x20(r1) -/* 8036AA30 FC 04 00 32 */ fmul f0, f4, f0 -/* 8036AA34 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8036AA38 D8 01 00 28 */ stfd f0, 0x28(r1) -/* 8036AA3C 48 00 00 0C */ b lbl_8036AA48 -lbl_8036AA40: -/* 8036AA40 38 84 FF F8 */ addi r4, r4, -8 -/* 8036AA44 38 C6 FF FF */ addi r6, r6, -1 -lbl_8036AA48: -/* 8036AA48 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036AA4C FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8036AA50 41 82 FF F0 */ beq lbl_8036AA40 -/* 8036AA54 3C 60 80 3A */ lis r3, two_over_pi@ha /* 0x803A23B0@ha */ -/* 8036AA58 7F C4 F3 78 */ mr r4, r30 -/* 8036AA5C 39 03 23 B0 */ addi r8, r3, two_over_pi@l /* 0x803A23B0@l */ -/* 8036AA60 38 E0 00 02 */ li r7, 2 -/* 8036AA64 38 61 00 18 */ addi r3, r1, 0x18 -/* 8036AA68 48 00 01 35 */ bl __kernel_rem_pio2 -/* 8036AA6C 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036AA70 40 80 00 20 */ bge lbl_8036AA90 -/* 8036AA74 C8 1E 00 00 */ lfd f0, 0(r30) -/* 8036AA78 7C 63 00 D0 */ neg r3, r3 -/* 8036AA7C FC 00 00 50 */ fneg f0, f0 -/* 8036AA80 D8 1E 00 00 */ stfd f0, 0(r30) -/* 8036AA84 C8 1E 00 08 */ lfd f0, 8(r30) -/* 8036AA88 FC 00 00 50 */ fneg f0, f0 -/* 8036AA8C D8 1E 00 08 */ stfd f0, 8(r30) -lbl_8036AA90: -/* 8036AA90 80 01 00 64 */ lwz r0, 0x64(r1) -/* 8036AA94 83 E1 00 5C */ lwz r31, 0x5c(r1) -/* 8036AA98 83 C1 00 58 */ lwz r30, 0x58(r1) -/* 8036AA9C 7C 08 03 A6 */ mtlr r0 -/* 8036AAA0 38 21 00 60 */ addi r1, r1, 0x60 -/* 8036AAA4 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/e_sqrt/__ieee754_sqrt.s b/asm/MSL_C/Math/Double_precision/e_sqrt/__ieee754_sqrt.s deleted file mode 100644 index e95674b0380..00000000000 --- a/asm/MSL_C/Math/Double_precision/e_sqrt/__ieee754_sqrt.s +++ /dev/null @@ -1,160 +0,0 @@ -lbl_8036C7A0: -/* 8036C7A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036C7A4 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036C7A8 80 C1 00 08 */ lwz r6, 8(r1) -/* 8036C7AC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8036C7B0 54 C3 00 56 */ rlwinm r3, r6, 0, 1, 0xb -/* 8036C7B4 3C 63 80 10 */ addis r3, r3, 0x8010 -/* 8036C7B8 28 03 00 00 */ cmplwi r3, 0 -/* 8036C7BC 40 82 00 14 */ bne lbl_8036C7D0 -/* 8036C7C0 FC 21 08 7A */ fmadd f1, f1, f1, f1 -/* 8036C7C4 38 00 00 21 */ li r0, 0x21 -/* 8036C7C8 90 0D 94 28 */ stw r0, errno(r13) -/* 8036C7CC 48 00 01 F0 */ b lbl_8036C9BC -lbl_8036C7D0: -/* 8036C7D0 2C 06 00 00 */ cmpwi r6, 0 -/* 8036C7D4 41 81 00 30 */ bgt lbl_8036C804 -/* 8036C7D8 54 C3 00 7E */ clrlwi r3, r6, 1 -/* 8036C7DC 7C 03 1B 79 */ or. r3, r0, r3 -/* 8036C7E0 40 82 00 08 */ bne lbl_8036C7E8 -/* 8036C7E4 48 00 01 D8 */ b lbl_8036C9BC -lbl_8036C7E8: -/* 8036C7E8 2C 06 00 00 */ cmpwi r6, 0 -/* 8036C7EC 40 80 00 18 */ bge lbl_8036C804 -/* 8036C7F0 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 8036C7F4 38 00 00 21 */ li r0, 0x21 -/* 8036C7F8 90 0D 94 28 */ stw r0, errno(r13) -/* 8036C7FC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 8036C800 48 00 01 BC */ b lbl_8036C9BC -lbl_8036C804: -/* 8036C804 7C C3 A6 71 */ srawi. r3, r6, 0x14 -/* 8036C808 40 82 00 50 */ bne lbl_8036C858 -/* 8036C80C 48 00 00 14 */ b lbl_8036C820 -lbl_8036C810: -/* 8036C810 54 04 AA FE */ srwi r4, r0, 0xb -/* 8036C814 54 00 A8 14 */ slwi r0, r0, 0x15 -/* 8036C818 7C C6 23 78 */ or r6, r6, r4 -/* 8036C81C 38 63 FF EB */ addi r3, r3, -21 -lbl_8036C820: -/* 8036C820 2C 06 00 00 */ cmpwi r6, 0 -/* 8036C824 41 82 FF EC */ beq lbl_8036C810 -/* 8036C828 38 E0 00 00 */ li r7, 0 -/* 8036C82C 48 00 00 0C */ b lbl_8036C838 -lbl_8036C830: -/* 8036C830 54 C6 08 3C */ slwi r6, r6, 1 -/* 8036C834 38 E7 00 01 */ addi r7, r7, 1 -lbl_8036C838: -/* 8036C838 54 C4 02 D7 */ rlwinm. r4, r6, 0, 0xb, 0xb -/* 8036C83C 41 82 FF F4 */ beq lbl_8036C830 -/* 8036C840 20 87 00 20 */ subfic r4, r7, 0x20 -/* 8036C844 38 A7 FF FF */ addi r5, r7, -1 -/* 8036C848 7C 04 24 30 */ srw r4, r0, r4 -/* 8036C84C 7C 00 38 30 */ slw r0, r0, r7 -/* 8036C850 7C 65 18 50 */ subf r3, r5, r3 -/* 8036C854 7C C6 23 78 */ or r6, r6, r4 -lbl_8036C858: -/* 8036C858 38 83 FC 01 */ addi r4, r3, -1023 -/* 8036C85C 54 C5 03 3E */ clrlwi r5, r6, 0xc -/* 8036C860 54 84 07 FF */ clrlwi. r4, r4, 0x1f -/* 8036C864 64 A5 00 10 */ oris r5, r5, 0x10 -/* 8036C868 41 82 00 14 */ beq lbl_8036C87C -/* 8036C86C 54 04 0F FE */ srwi r4, r0, 0x1f -/* 8036C870 7C 00 02 14 */ add r0, r0, r0 -/* 8036C874 7C 84 2A 14 */ add r4, r4, r5 -/* 8036C878 7C A5 22 14 */ add r5, r5, r4 -lbl_8036C87C: -/* 8036C87C 54 04 0F FE */ srwi r4, r0, 0x1f -/* 8036C880 7C 00 02 14 */ add r0, r0, r0 -/* 8036C884 7C 84 2A 14 */ add r4, r4, r5 -/* 8036C888 39 20 00 00 */ li r9, 0 -/* 8036C88C 7C A5 22 14 */ add r5, r5, r4 -/* 8036C890 39 60 00 00 */ li r11, 0 -/* 8036C894 39 40 00 00 */ li r10, 0 -/* 8036C898 39 80 00 00 */ li r12, 0 -/* 8036C89C 3C C0 00 20 */ lis r6, 0x20 -/* 8036C8A0 48 00 00 30 */ b lbl_8036C8D0 -lbl_8036C8A4: -/* 8036C8A4 7C 8B 32 14 */ add r4, r11, r6 -/* 8036C8A8 7C 04 28 00 */ cmpw r4, r5 -/* 8036C8AC 41 81 00 10 */ bgt lbl_8036C8BC -/* 8036C8B0 7D 64 32 14 */ add r11, r4, r6 -/* 8036C8B4 7C A4 28 50 */ subf r5, r4, r5 -/* 8036C8B8 7D 8C 32 14 */ add r12, r12, r6 -lbl_8036C8BC: -/* 8036C8BC 54 04 0F FE */ srwi r4, r0, 0x1f -/* 8036C8C0 7C 00 02 14 */ add r0, r0, r0 -/* 8036C8C4 7C 84 2A 14 */ add r4, r4, r5 -/* 8036C8C8 54 C6 F8 7E */ srwi r6, r6, 1 -/* 8036C8CC 7C A5 22 14 */ add r5, r5, r4 -lbl_8036C8D0: -/* 8036C8D0 28 06 00 00 */ cmplwi r6, 0 -/* 8036C8D4 40 82 FF D0 */ bne lbl_8036C8A4 -/* 8036C8D8 3C C0 80 00 */ lis r6, 0x8000 -/* 8036C8DC 48 00 00 6C */ b lbl_8036C948 -lbl_8036C8E0: -/* 8036C8E0 7C 0B 28 00 */ cmpw r11, r5 -/* 8036C8E4 7D 67 5B 78 */ mr r7, r11 -/* 8036C8E8 7D 09 32 14 */ add r8, r9, r6 -/* 8036C8EC 41 80 00 10 */ blt lbl_8036C8FC -/* 8036C8F0 40 82 00 44 */ bne lbl_8036C934 -/* 8036C8F4 7C 08 00 40 */ cmplw r8, r0 -/* 8036C8F8 41 81 00 3C */ bgt lbl_8036C934 -lbl_8036C8FC: -/* 8036C8FC 55 04 00 00 */ rlwinm r4, r8, 0, 0, 0 -/* 8036C900 7D 28 32 14 */ add r9, r8, r6 -/* 8036C904 3C 84 80 00 */ addis r4, r4, 0x8000 -/* 8036C908 28 04 00 00 */ cmplwi r4, 0 -/* 8036C90C 40 82 00 10 */ bne lbl_8036C91C -/* 8036C910 55 24 00 01 */ rlwinm. r4, r9, 0, 0, 0 -/* 8036C914 40 82 00 08 */ bne lbl_8036C91C -/* 8036C918 39 6B 00 01 */ addi r11, r11, 1 -lbl_8036C91C: -/* 8036C91C 7C 00 40 40 */ cmplw r0, r8 -/* 8036C920 7C A7 28 50 */ subf r5, r7, r5 -/* 8036C924 40 80 00 08 */ bge lbl_8036C92C -/* 8036C928 38 A5 FF FF */ addi r5, r5, -1 -lbl_8036C92C: -/* 8036C92C 7C 08 00 50 */ subf r0, r8, r0 -/* 8036C930 7D 4A 32 14 */ add r10, r10, r6 -lbl_8036C934: -/* 8036C934 54 04 0F FE */ srwi r4, r0, 0x1f -/* 8036C938 7C 00 02 14 */ add r0, r0, r0 -/* 8036C93C 7C 84 2A 14 */ add r4, r4, r5 -/* 8036C940 54 C6 F8 7E */ srwi r6, r6, 1 -/* 8036C944 7C A5 22 14 */ add r5, r5, r4 -lbl_8036C948: -/* 8036C948 28 06 00 00 */ cmplwi r6, 0 -/* 8036C94C 40 82 FF 94 */ bne lbl_8036C8E0 -/* 8036C950 7C A0 03 79 */ or. r0, r5, r0 -/* 8036C954 41 82 00 30 */ beq lbl_8036C984 -/* 8036C958 C8 02 D1 48 */ lfd f0, lit_164(r2) -/* 8036C95C 3C 0A 00 01 */ addis r0, r10, 1 -/* 8036C960 28 00 FF FF */ cmplwi r0, 0xffff -/* 8036C964 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8036C968 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8036C96C 40 82 00 10 */ bne lbl_8036C97C -/* 8036C970 39 40 00 00 */ li r10, 0 -/* 8036C974 39 8C 00 01 */ addi r12, r12, 1 -/* 8036C978 48 00 00 0C */ b lbl_8036C984 -lbl_8036C97C: -/* 8036C97C 55 40 07 FE */ clrlwi r0, r10, 0x1f -/* 8036C980 7D 4A 02 14 */ add r10, r10, r0 -lbl_8036C984: -/* 8036C984 55 80 07 FE */ clrlwi r0, r12, 0x1f -/* 8036C988 7D 84 0E 70 */ srawi r4, r12, 1 -/* 8036C98C 2C 00 00 01 */ cmpwi r0, 1 -/* 8036C990 55 45 F8 7E */ srwi r5, r10, 1 -/* 8036C994 3C 84 3F E0 */ addis r4, r4, 0x3fe0 -/* 8036C998 40 82 00 08 */ bne lbl_8036C9A0 -/* 8036C99C 64 A5 80 00 */ oris r5, r5, 0x8000 -lbl_8036C9A0: -/* 8036C9A0 38 03 FC 01 */ addi r0, r3, -1023 -/* 8036C9A4 90 A1 00 14 */ stw r5, 0x14(r1) -/* 8036C9A8 7C 00 0E 70 */ srawi r0, r0, 1 -/* 8036C9AC 54 00 A0 16 */ slwi r0, r0, 0x14 -/* 8036C9B0 7C 84 02 14 */ add r4, r4, r0 -/* 8036C9B4 90 81 00 10 */ stw r4, 0x10(r1) -/* 8036C9B8 C8 21 00 10 */ lfd f1, 0x10(r1) -lbl_8036C9BC: -/* 8036C9BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036C9C0 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/k_cos/__kernel_cos.s b/asm/MSL_C/Math/Double_precision/k_cos/__kernel_cos.s deleted file mode 100644 index c270538ddf3..00000000000 --- a/asm/MSL_C/Math/Double_precision/k_cos/__kernel_cos.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_8036AAA8: -/* 8036AAA8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036AAAC 3C 00 3E 40 */ lis r0, 0x3e40 -/* 8036AAB0 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036AAB4 80 61 00 08 */ lwz r3, 8(r1) -/* 8036AAB8 54 64 00 7E */ clrlwi r4, r3, 1 -/* 8036AABC 7C 04 00 00 */ cmpw r4, r0 -/* 8036AAC0 40 80 00 20 */ bge lbl_8036AAE0 -/* 8036AAC4 FC 00 08 1E */ fctiwz f0, f1 -/* 8036AAC8 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8036AACC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8036AAD0 2C 00 00 00 */ cmpwi r0, 0 -/* 8036AAD4 40 82 00 0C */ bne lbl_8036AAE0 -/* 8036AAD8 C8 22 CF C0 */ lfd f1, lit_65(r2) -/* 8036AADC 48 00 00 B8 */ b lbl_8036AB94 -lbl_8036AAE0: -/* 8036AAE0 C8 C1 00 08 */ lfd f6, 8(r1) -/* 8036AAE4 3C 60 3F D3 */ lis r3, 0x3FD3 /* 0x3FD33333@ha */ -/* 8036AAE8 38 03 33 33 */ addi r0, r3, 0x3333 /* 0x3FD33333@l */ -/* 8036AAEC C8 A2 CF F0 */ lfd f5, lit_71(r2) -/* 8036AAF0 FC E6 01 B2 */ fmul f7, f6, f6 -/* 8036AAF4 C8 02 CF E8 */ lfd f0, lit_70(r2) -/* 8036AAF8 C8 82 CF E0 */ lfd f4, lit_69(r2) -/* 8036AAFC 7C 04 00 00 */ cmpw r4, r0 -/* 8036AB00 C8 62 CF D8 */ lfd f3, lit_68(r2) -/* 8036AB04 C8 22 CF D0 */ lfd f1, lit_67(r2) -/* 8036AB08 FC A5 01 FA */ fmadd f5, f5, f7, f0 -/* 8036AB0C C8 02 CF C8 */ lfd f0, lit_66(r2) -/* 8036AB10 FC 87 21 7A */ fmadd f4, f7, f5, f4 -/* 8036AB14 FC 67 19 3A */ fmadd f3, f7, f4, f3 -/* 8036AB18 FC 27 08 FA */ fmadd f1, f7, f3, f1 -/* 8036AB1C FC 07 00 7A */ fmadd f0, f7, f1, f0 -/* 8036AB20 FC 87 00 32 */ fmul f4, f7, f0 -/* 8036AB24 40 80 00 20 */ bge lbl_8036AB44 -/* 8036AB28 FC 06 00 B2 */ fmul f0, f6, f2 -/* 8036AB2C C8 22 CF F8 */ lfd f1, lit_72(r2) -/* 8036AB30 C8 42 CF C0 */ lfd f2, lit_65(r2) -/* 8036AB34 FC 07 01 38 */ fmsub f0, f7, f4, f0 -/* 8036AB38 FC 01 01 F8 */ fmsub f0, f1, f7, f0 -/* 8036AB3C FC 22 00 28 */ fsub f1, f2, f0 -/* 8036AB40 48 00 00 54 */ b lbl_8036AB94 -lbl_8036AB44: -/* 8036AB44 3C 00 3F E9 */ lis r0, 0x3fe9 -/* 8036AB48 7C 04 00 00 */ cmpw r4, r0 -/* 8036AB4C 40 81 00 10 */ ble lbl_8036AB5C -/* 8036AB50 C8 02 D0 00 */ lfd f0, lit_73(r2) -/* 8036AB54 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8036AB58 48 00 00 14 */ b lbl_8036AB6C -lbl_8036AB5C: -/* 8036AB5C 3C 64 FF E0 */ addis r3, r4, 0xffe0 -/* 8036AB60 38 00 00 00 */ li r0, 0 -/* 8036AB64 90 61 00 10 */ stw r3, 0x10(r1) -/* 8036AB68 90 01 00 14 */ stw r0, 0x14(r1) -lbl_8036AB6C: -/* 8036AB6C C8 01 00 08 */ lfd f0, 8(r1) -/* 8036AB70 C8 61 00 10 */ lfd f3, 0x10(r1) -/* 8036AB74 FC 00 00 B2 */ fmul f0, f0, f2 -/* 8036AB78 C8 22 CF F8 */ lfd f1, lit_72(r2) -/* 8036AB7C C8 42 CF C0 */ lfd f2, lit_65(r2) -/* 8036AB80 FC 21 19 F8 */ fmsub f1, f1, f7, f3 -/* 8036AB84 FC 07 01 38 */ fmsub f0, f7, f4, f0 -/* 8036AB88 FC 42 18 28 */ fsub f2, f2, f3 -/* 8036AB8C FC 01 00 28 */ fsub f0, f1, f0 -/* 8036AB90 FC 22 00 28 */ fsub f1, f2, f0 -lbl_8036AB94: -/* 8036AB94 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036AB98 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/k_rem_pio2/__kernel_rem_pio2.s b/asm/MSL_C/Math/Double_precision/k_rem_pio2/__kernel_rem_pio2.s deleted file mode 100644 index 42ace5cbd8b..00000000000 --- a/asm/MSL_C/Math/Double_precision/k_rem_pio2/__kernel_rem_pio2.s +++ /dev/null @@ -1,1007 +0,0 @@ -lbl_8036AB9C: -/* 8036AB9C 94 21 FD 30 */ stwu r1, -0x2d0(r1) -/* 8036ABA0 7C 08 02 A6 */ mflr r0 -/* 8036ABA4 90 01 02 D4 */ stw r0, 0x2d4(r1) -/* 8036ABA8 39 61 02 D0 */ addi r11, r1, 0x2d0 -/* 8036ABAC 4B FF 75 89 */ bl _savefpr_25 -/* 8036ABB0 BE 01 02 58 */ stmw r16, 0x258(r1) -/* 8036ABB4 3D 20 2A AB */ lis r9, 0x2AAB /* 0x2AAAAAAB@ha */ -/* 8036ABB8 7C F7 3B 78 */ mr r23, r7 -/* 8036ABBC 38 05 FF FD */ addi r0, r5, -3 -/* 8036ABC0 3D 40 80 3A */ lis r10, init_jk@ha /* 0x803A2538@ha */ -/* 8036ABC4 38 E9 AA AB */ addi r7, r9, 0xAAAB /* 0x2AAAAAAB@l */ -/* 8036ABC8 56 E9 10 3A */ slwi r9, r23, 2 -/* 8036ABCC 7C 07 00 96 */ mulhw r0, r7, r0 -/* 8036ABD0 38 EA 25 38 */ addi r7, r10, init_jk@l /* 0x803A2538@l */ -/* 8036ABD4 7F 87 48 2E */ lwzx r28, r7, r9 -/* 8036ABD8 7C 75 1B 78 */ mr r21, r3 -/* 8036ABDC 7C 96 23 78 */ mr r22, r4 -/* 8036ABE0 7D 18 43 78 */ mr r24, r8 -/* 8036ABE4 7C 00 16 70 */ srawi r0, r0, 2 -/* 8036ABE8 3B C6 FF FF */ addi r30, r6, -1 -/* 8036ABEC 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8036ABF0 7F A0 1A 15 */ add. r29, r0, r3 -/* 8036ABF4 40 80 00 08 */ bge lbl_8036ABFC -/* 8036ABF8 3B A0 00 00 */ li r29, 0 -lbl_8036ABFC: -/* 8036ABFC 38 1D 00 01 */ addi r0, r29, 1 -/* 8036AC00 7C FE E2 15 */ add. r7, r30, r28 -/* 8036AC04 1C 80 00 18 */ mulli r4, r0, 0x18 -/* 8036AC08 7C DE E8 50 */ subf r6, r30, r29 -/* 8036AC0C C8 22 D0 40 */ lfd f1, lit_445(r2) -/* 8036AC10 54 C3 10 3A */ slwi r3, r6, 2 -/* 8036AC14 7F 44 28 50 */ subf r26, r4, r5 -/* 8036AC18 38 07 00 01 */ addi r0, r7, 1 -/* 8036AC1C 7C 98 1A 14 */ add r4, r24, r3 -/* 8036AC20 38 A1 01 98 */ addi r5, r1, 0x198 -/* 8036AC24 3C 60 43 30 */ lis r3, 0x4330 -/* 8036AC28 7C 09 03 A6 */ mtctr r0 -/* 8036AC2C 41 80 00 40 */ blt lbl_8036AC6C -lbl_8036AC30: -/* 8036AC30 2C 06 00 00 */ cmpwi r6, 0 -/* 8036AC34 40 80 00 0C */ bge lbl_8036AC40 -/* 8036AC38 C8 02 D0 08 */ lfd f0, lit_436(r2) -/* 8036AC3C 48 00 00 1C */ b lbl_8036AC58 -lbl_8036AC40: -/* 8036AC40 80 04 00 00 */ lwz r0, 0(r4) -/* 8036AC44 90 61 02 38 */ stw r3, 0x238(r1) -/* 8036AC48 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036AC4C 90 01 02 3C */ stw r0, 0x23c(r1) -/* 8036AC50 C8 01 02 38 */ lfd f0, 0x238(r1) -/* 8036AC54 FC 00 08 28 */ fsub f0, f0, f1 -lbl_8036AC58: -/* 8036AC58 D8 05 00 00 */ stfd f0, 0(r5) -/* 8036AC5C 38 A5 00 08 */ addi r5, r5, 8 -/* 8036AC60 38 84 00 04 */ addi r4, r4, 4 -/* 8036AC64 38 C6 00 01 */ addi r6, r6, 1 -/* 8036AC68 42 00 FF C8 */ bdnz lbl_8036AC30 -lbl_8036AC6C: -/* 8036AC6C 38 A1 00 58 */ addi r5, r1, 0x58 -/* 8036AC70 38 E0 00 00 */ li r7, 0 -/* 8036AC74 48 00 01 5C */ b lbl_8036ADD0 -lbl_8036AC78: -/* 8036AC78 2C 1E 00 00 */ cmpwi r30, 0 -/* 8036AC7C C8 82 D0 08 */ lfd f4, lit_436(r2) -/* 8036AC80 38 C0 00 00 */ li r6, 0 -/* 8036AC84 41 80 01 40 */ blt lbl_8036ADC4 -/* 8036AC88 38 1E 00 01 */ addi r0, r30, 1 -/* 8036AC8C 39 3E FF F8 */ addi r9, r30, -8 -/* 8036AC90 2C 00 00 08 */ cmpwi r0, 8 -/* 8036AC94 40 81 00 EC */ ble lbl_8036AD80 -/* 8036AC98 39 09 00 08 */ addi r8, r9, 8 -/* 8036AC9C 7E A4 AB 78 */ mr r4, r21 -/* 8036ACA0 55 08 E8 FE */ srwi r8, r8, 3 -/* 8036ACA4 7C 1E 3A 14 */ add r0, r30, r7 -/* 8036ACA8 38 61 01 98 */ addi r3, r1, 0x198 -/* 8036ACAC 7D 09 03 A6 */ mtctr r8 -/* 8036ACB0 2C 09 00 00 */ cmpwi r9, 0 -/* 8036ACB4 41 80 00 CC */ blt lbl_8036AD80 -lbl_8036ACB8: -/* 8036ACB8 7D 06 00 50 */ subf r8, r6, r0 -/* 8036ACBC 39 26 00 01 */ addi r9, r6, 1 -/* 8036ACC0 55 0A 18 38 */ slwi r10, r8, 3 -/* 8036ACC4 C8 24 00 00 */ lfd f1, 0(r4) -/* 8036ACC8 7C 03 54 AE */ lfdx f0, r3, r10 -/* 8036ACCC 7D 29 00 50 */ subf r9, r9, r0 -/* 8036ACD0 55 2A 18 38 */ slwi r10, r9, 3 -/* 8036ACD4 39 06 00 02 */ addi r8, r6, 2 -/* 8036ACD8 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036ACDC 7D 28 00 50 */ subf r9, r8, r0 -/* 8036ACE0 39 06 00 03 */ addi r8, r6, 3 -/* 8036ACE4 C8 24 00 08 */ lfd f1, 8(r4) -/* 8036ACE8 7C 03 54 AE */ lfdx f0, r3, r10 -/* 8036ACEC 7D 08 00 50 */ subf r8, r8, r0 -/* 8036ACF0 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036ACF4 55 29 18 38 */ slwi r9, r9, 3 -/* 8036ACF8 C8 24 00 10 */ lfd f1, 0x10(r4) -/* 8036ACFC 55 0A 18 38 */ slwi r10, r8, 3 -/* 8036AD00 7C 03 4C AE */ lfdx f0, r3, r9 -/* 8036AD04 39 06 00 04 */ addi r8, r6, 4 -/* 8036AD08 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036AD0C C8 24 00 18 */ lfd f1, 0x18(r4) -/* 8036AD10 7C 03 54 AE */ lfdx f0, r3, r10 -/* 8036AD14 7D 28 00 50 */ subf r9, r8, r0 -/* 8036AD18 55 2A 18 38 */ slwi r10, r9, 3 -/* 8036AD1C 39 06 00 05 */ addi r8, r6, 5 -/* 8036AD20 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036AD24 C8 44 00 20 */ lfd f2, 0x20(r4) -/* 8036AD28 7C 03 54 AE */ lfdx f0, r3, r10 -/* 8036AD2C 7D 08 00 50 */ subf r8, r8, r0 -/* 8036AD30 55 0A 18 38 */ slwi r10, r8, 3 -/* 8036AD34 39 26 00 06 */ addi r9, r6, 6 -/* 8036AD38 FC 82 20 3A */ fmadd f4, f2, f0, f4 -/* 8036AD3C 7D 29 00 50 */ subf r9, r9, r0 -/* 8036AD40 55 29 18 38 */ slwi r9, r9, 3 -/* 8036AD44 C8 24 00 28 */ lfd f1, 0x28(r4) -/* 8036AD48 7C 03 54 AE */ lfdx f0, r3, r10 -/* 8036AD4C 39 06 00 07 */ addi r8, r6, 7 -/* 8036AD50 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036AD54 7D 08 00 50 */ subf r8, r8, r0 -/* 8036AD58 55 08 18 38 */ slwi r8, r8, 3 -/* 8036AD5C C8 64 00 30 */ lfd f3, 0x30(r4) -/* 8036AD60 7C 43 4C AE */ lfdx f2, r3, r9 -/* 8036AD64 38 C6 00 08 */ addi r6, r6, 8 -/* 8036AD68 C8 24 00 38 */ lfd f1, 0x38(r4) -/* 8036AD6C FC 83 20 BA */ fmadd f4, f3, f2, f4 -/* 8036AD70 7C 03 44 AE */ lfdx f0, r3, r8 -/* 8036AD74 38 84 00 40 */ addi r4, r4, 0x40 -/* 8036AD78 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036AD7C 42 00 FF 3C */ bdnz lbl_8036ACB8 -lbl_8036AD80: -/* 8036AD80 38 1E 00 01 */ addi r0, r30, 1 -/* 8036AD84 54 C3 18 38 */ slwi r3, r6, 3 -/* 8036AD88 7C 06 00 50 */ subf r0, r6, r0 -/* 8036AD8C 7D 1E 3A 14 */ add r8, r30, r7 -/* 8036AD90 7C 95 1A 14 */ add r4, r21, r3 -/* 8036AD94 38 61 01 98 */ addi r3, r1, 0x198 -/* 8036AD98 7C 09 03 A6 */ mtctr r0 -/* 8036AD9C 7C 06 F0 00 */ cmpw r6, r30 -/* 8036ADA0 41 81 00 24 */ bgt lbl_8036ADC4 -lbl_8036ADA4: -/* 8036ADA4 7C 06 40 50 */ subf r0, r6, r8 -/* 8036ADA8 C8 24 00 00 */ lfd f1, 0(r4) -/* 8036ADAC 54 00 18 38 */ slwi r0, r0, 3 -/* 8036ADB0 38 84 00 08 */ addi r4, r4, 8 -/* 8036ADB4 7C 03 04 AE */ lfdx f0, r3, r0 -/* 8036ADB8 38 C6 00 01 */ addi r6, r6, 1 -/* 8036ADBC FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036ADC0 42 00 FF E4 */ bdnz lbl_8036ADA4 -lbl_8036ADC4: -/* 8036ADC4 D8 85 00 00 */ stfd f4, 0(r5) -/* 8036ADC8 38 A5 00 08 */ addi r5, r5, 8 -/* 8036ADCC 38 E7 00 01 */ addi r7, r7, 1 -lbl_8036ADD0: -/* 8036ADD0 7C 07 E0 00 */ cmpw r7, r28 -/* 8036ADD4 40 81 FE A4 */ ble lbl_8036AC78 -/* 8036ADD8 22 5A 00 18 */ subfic r18, r26, 0x18 -/* 8036ADDC CB 42 D0 10 */ lfd f26, lit_437(r2) -/* 8036ADE0 CB 62 D0 40 */ lfd f27, lit_445(r2) -/* 8036ADE4 3A 01 00 08 */ addi r16, r1, 8 -/* 8036ADE8 CB 82 D0 18 */ lfd f28, lit_438(r2) -/* 8036ADEC 7F 9F E3 78 */ mr r31, r28 -/* 8036ADF0 CB A2 D0 28 */ lfd f29, lit_440(r2) -/* 8036ADF4 22 3A 00 17 */ subfic r17, r26, 0x17 -/* 8036ADF8 CB C2 D0 20 */ lfd f30, lit_439(r2) -/* 8036ADFC 3A 81 01 98 */ addi r20, r1, 0x198 -/* 8036AE00 CB E2 D0 08 */ lfd f31, lit_436(r2) -/* 8036AE04 3E 60 43 30 */ lis r19, 0x4330 -lbl_8036AE08: -/* 8036AE08 57 E0 18 38 */ slwi r0, r31, 3 -/* 8036AE0C 38 A1 00 58 */ addi r5, r1, 0x58 -/* 8036AE10 7C A5 02 14 */ add r5, r5, r0 -/* 8036AE14 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036AE18 C8 25 00 00 */ lfd f1, 0(r5) -/* 8036AE1C 7E 04 83 78 */ mr r4, r16 -/* 8036AE20 7F E3 FB 78 */ mr r3, r31 -/* 8036AE24 40 81 00 EC */ ble lbl_8036AF10 -/* 8036AE28 57 E0 F8 7F */ rlwinm. r0, r31, 0x1f, 1, 0x1f -/* 8036AE2C 7C 09 03 A6 */ mtctr r0 -/* 8036AE30 41 82 00 94 */ beq lbl_8036AEC4 -lbl_8036AE34: -/* 8036AE34 FC 7A 00 72 */ fmul f3, f26, f1 -/* 8036AE38 92 61 02 40 */ stw r19, 0x240(r1) -/* 8036AE3C C8 05 FF F8 */ lfd f0, -8(r5) -/* 8036AE40 FC 40 18 1E */ fctiwz f2, f3 -/* 8036AE44 D8 41 02 38 */ stfd f2, 0x238(r1) -/* 8036AE48 80 01 02 3C */ lwz r0, 0x23c(r1) -/* 8036AE4C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036AE50 90 01 02 44 */ stw r0, 0x244(r1) -/* 8036AE54 C8 41 02 40 */ lfd f2, 0x240(r1) -/* 8036AE58 FC 62 D8 28 */ fsub f3, f2, f27 -/* 8036AE5C 92 61 02 40 */ stw r19, 0x240(r1) -/* 8036AE60 FC 5C 08 FC */ fnmsub f2, f28, f3, f1 -/* 8036AE64 FC 23 00 2A */ fadd f1, f3, f0 -/* 8036AE68 CC 05 FF F0 */ lfdu f0, -0x10(r5) -/* 8036AE6C FC 40 10 1E */ fctiwz f2, f2 -/* 8036AE70 FC 7A 00 72 */ fmul f3, f26, f1 -/* 8036AE74 D8 41 02 48 */ stfd f2, 0x248(r1) -/* 8036AE78 FC 40 18 1E */ fctiwz f2, f3 -/* 8036AE7C 80 01 02 4C */ lwz r0, 0x24c(r1) -/* 8036AE80 90 04 00 00 */ stw r0, 0(r4) -/* 8036AE84 D8 41 02 38 */ stfd f2, 0x238(r1) -/* 8036AE88 80 01 02 3C */ lwz r0, 0x23c(r1) -/* 8036AE8C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036AE90 90 01 02 44 */ stw r0, 0x244(r1) -/* 8036AE94 C8 41 02 40 */ lfd f2, 0x240(r1) -/* 8036AE98 FC 62 D8 28 */ fsub f3, f2, f27 -/* 8036AE9C FC 5C 08 FC */ fnmsub f2, f28, f3, f1 -/* 8036AEA0 FC 23 00 2A */ fadd f1, f3, f0 -/* 8036AEA4 FC 40 10 1E */ fctiwz f2, f2 -/* 8036AEA8 D8 41 02 48 */ stfd f2, 0x248(r1) -/* 8036AEAC 80 01 02 4C */ lwz r0, 0x24c(r1) -/* 8036AEB0 90 04 00 04 */ stw r0, 4(r4) -/* 8036AEB4 38 84 00 08 */ addi r4, r4, 8 -/* 8036AEB8 42 00 FF 7C */ bdnz lbl_8036AE34 -/* 8036AEBC 70 63 00 01 */ andi. r3, r3, 1 -/* 8036AEC0 41 82 00 50 */ beq lbl_8036AF10 -lbl_8036AEC4: -/* 8036AEC4 7C 69 03 A6 */ mtctr r3 -lbl_8036AEC8: -/* 8036AEC8 FC 7A 00 72 */ fmul f3, f26, f1 -/* 8036AECC 92 61 02 40 */ stw r19, 0x240(r1) -/* 8036AED0 CC 05 FF F8 */ lfdu f0, -8(r5) -/* 8036AED4 FC 40 18 1E */ fctiwz f2, f3 -/* 8036AED8 D8 41 02 38 */ stfd f2, 0x238(r1) -/* 8036AEDC 80 01 02 3C */ lwz r0, 0x23c(r1) -/* 8036AEE0 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036AEE4 90 01 02 44 */ stw r0, 0x244(r1) -/* 8036AEE8 C8 41 02 40 */ lfd f2, 0x240(r1) -/* 8036AEEC FC 62 D8 28 */ fsub f3, f2, f27 -/* 8036AEF0 FC 5C 08 FC */ fnmsub f2, f28, f3, f1 -/* 8036AEF4 FC 23 00 2A */ fadd f1, f3, f0 -/* 8036AEF8 FC 40 10 1E */ fctiwz f2, f2 -/* 8036AEFC D8 41 02 48 */ stfd f2, 0x248(r1) -/* 8036AF00 80 01 02 4C */ lwz r0, 0x24c(r1) -/* 8036AF04 90 04 00 00 */ stw r0, 0(r4) -/* 8036AF08 38 84 00 04 */ addi r4, r4, 4 -/* 8036AF0C 42 00 FF BC */ bdnz lbl_8036AEC8 -lbl_8036AF10: -/* 8036AF10 7F 43 D3 78 */ mr r3, r26 -/* 8036AF14 48 00 13 BD */ bl ldexp -/* 8036AF18 FF 20 08 90 */ fmr f25, f1 -/* 8036AF1C FC 3D 06 72 */ fmul f1, f29, f25 -/* 8036AF20 48 00 11 DD */ bl floor -/* 8036AF24 FF 3E C8 7C */ fnmsub f25, f30, f1, f25 -/* 8036AF28 92 61 02 40 */ stw r19, 0x240(r1) -/* 8036AF2C 2C 1A 00 00 */ cmpwi r26, 0 -/* 8036AF30 3B 20 00 00 */ li r25, 0 -/* 8036AF34 FC 00 C8 1E */ fctiwz f0, f25 -/* 8036AF38 D8 01 02 48 */ stfd f0, 0x248(r1) -/* 8036AF3C 83 61 02 4C */ lwz r27, 0x24c(r1) -/* 8036AF40 6F 60 80 00 */ xoris r0, r27, 0x8000 -/* 8036AF44 90 01 02 44 */ stw r0, 0x244(r1) -/* 8036AF48 C8 01 02 40 */ lfd f0, 0x240(r1) -/* 8036AF4C FC 00 D8 28 */ fsub f0, f0, f27 -/* 8036AF50 FF 39 00 28 */ fsub f25, f25, f0 -/* 8036AF54 40 81 00 34 */ ble lbl_8036AF88 -/* 8036AF58 57 E3 10 3A */ slwi r3, r31, 2 -/* 8036AF5C 38 81 00 08 */ addi r4, r1, 8 -/* 8036AF60 38 A3 FF FC */ addi r5, r3, -4 -/* 8036AF64 7C 64 28 2E */ lwzx r3, r4, r5 -/* 8036AF68 7C 66 96 30 */ sraw r6, r3, r18 -/* 8036AF6C 7C C0 90 30 */ slw r0, r6, r18 -/* 8036AF70 7C 00 18 50 */ subf r0, r0, r3 -/* 8036AF74 7F 7B 32 14 */ add r27, r27, r6 -/* 8036AF78 7C 04 29 2E */ stwx r0, r4, r5 -/* 8036AF7C 7C 04 28 2E */ lwzx r0, r4, r5 -/* 8036AF80 7C 19 8E 30 */ sraw r25, r0, r17 -/* 8036AF84 48 00 00 34 */ b lbl_8036AFB8 -lbl_8036AF88: -/* 8036AF88 40 82 00 1C */ bne lbl_8036AFA4 -/* 8036AF8C 57 E4 10 3A */ slwi r4, r31, 2 -/* 8036AF90 38 61 00 08 */ addi r3, r1, 8 -/* 8036AF94 38 04 FF FC */ addi r0, r4, -4 -/* 8036AF98 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8036AF9C 7C 19 BE 70 */ srawi r25, r0, 0x17 -/* 8036AFA0 48 00 00 18 */ b lbl_8036AFB8 -lbl_8036AFA4: -/* 8036AFA4 C8 02 D0 30 */ lfd f0, lit_441(r2) -/* 8036AFA8 FC 19 00 40 */ fcmpo cr0, f25, f0 -/* 8036AFAC 4C 41 13 82 */ cror 2, 1, 2 -/* 8036AFB0 40 82 00 08 */ bne lbl_8036AFB8 -/* 8036AFB4 3B 20 00 02 */ li r25, 2 -lbl_8036AFB8: -/* 8036AFB8 2C 19 00 00 */ cmpwi r25, 0 -/* 8036AFBC 40 81 00 D0 */ ble lbl_8036B08C -/* 8036AFC0 3C A0 01 00 */ lis r5, 0x0100 /* 0x00FFFFFF@ha */ -/* 8036AFC4 7E 06 83 78 */ mr r6, r16 -/* 8036AFC8 38 00 00 00 */ li r0, 0 -/* 8036AFCC 38 85 FF FF */ addi r4, r5, 0xFFFF /* 0x00FFFFFF@l */ -/* 8036AFD0 7F E9 03 A6 */ mtctr r31 -/* 8036AFD4 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036AFD8 3B 7B 00 01 */ addi r27, r27, 1 -/* 8036AFDC 40 81 00 38 */ ble lbl_8036B014 -lbl_8036AFE0: -/* 8036AFE0 2C 00 00 00 */ cmpwi r0, 0 -/* 8036AFE4 80 66 00 00 */ lwz r3, 0(r6) -/* 8036AFE8 40 82 00 1C */ bne lbl_8036B004 -/* 8036AFEC 2C 03 00 00 */ cmpwi r3, 0 -/* 8036AFF0 41 82 00 1C */ beq lbl_8036B00C -/* 8036AFF4 7C 63 28 50 */ subf r3, r3, r5 -/* 8036AFF8 38 00 00 01 */ li r0, 1 -/* 8036AFFC 90 66 00 00 */ stw r3, 0(r6) -/* 8036B000 48 00 00 0C */ b lbl_8036B00C -lbl_8036B004: -/* 8036B004 7C 63 20 50 */ subf r3, r3, r4 -/* 8036B008 90 66 00 00 */ stw r3, 0(r6) -lbl_8036B00C: -/* 8036B00C 38 C6 00 04 */ addi r6, r6, 4 -/* 8036B010 42 00 FF D0 */ bdnz lbl_8036AFE0 -lbl_8036B014: -/* 8036B014 2C 1A 00 00 */ cmpwi r26, 0 -/* 8036B018 40 81 00 50 */ ble lbl_8036B068 -/* 8036B01C 2C 1A 00 02 */ cmpwi r26, 2 -/* 8036B020 41 82 00 30 */ beq lbl_8036B050 -/* 8036B024 40 80 00 44 */ bge lbl_8036B068 -/* 8036B028 2C 1A 00 01 */ cmpwi r26, 1 -/* 8036B02C 40 80 00 08 */ bge lbl_8036B034 -/* 8036B030 48 00 00 38 */ b lbl_8036B068 -lbl_8036B034: -/* 8036B034 57 E3 10 3A */ slwi r3, r31, 2 -/* 8036B038 38 A1 00 08 */ addi r5, r1, 8 -/* 8036B03C 38 83 FF FC */ addi r4, r3, -4 -/* 8036B040 7C 65 20 2E */ lwzx r3, r5, r4 -/* 8036B044 54 63 02 7E */ clrlwi r3, r3, 9 -/* 8036B048 7C 65 21 2E */ stwx r3, r5, r4 -/* 8036B04C 48 00 00 1C */ b lbl_8036B068 -lbl_8036B050: -/* 8036B050 57 E3 10 3A */ slwi r3, r31, 2 -/* 8036B054 38 A1 00 08 */ addi r5, r1, 8 -/* 8036B058 38 83 FF FC */ addi r4, r3, -4 -/* 8036B05C 7C 65 20 2E */ lwzx r3, r5, r4 -/* 8036B060 54 63 02 BE */ clrlwi r3, r3, 0xa -/* 8036B064 7C 65 21 2E */ stwx r3, r5, r4 -lbl_8036B068: -/* 8036B068 2C 19 00 02 */ cmpwi r25, 2 -/* 8036B06C 40 82 00 20 */ bne lbl_8036B08C -/* 8036B070 C8 22 D0 38 */ lfd f1, lit_442(r2) -/* 8036B074 2C 00 00 00 */ cmpwi r0, 0 -/* 8036B078 FF 21 C8 28 */ fsub f25, f1, f25 -/* 8036B07C 41 82 00 10 */ beq lbl_8036B08C -/* 8036B080 7F 43 D3 78 */ mr r3, r26 -/* 8036B084 48 00 12 4D */ bl ldexp -/* 8036B088 FF 39 08 28 */ fsub f25, f25, f1 -lbl_8036B08C: -/* 8036B08C FC 1F C8 00 */ fcmpu cr0, f31, f25 -/* 8036B090 40 82 02 64 */ bne lbl_8036B2F4 -/* 8036B094 38 7F FF FF */ addi r3, r31, -1 -/* 8036B098 38 81 00 08 */ addi r4, r1, 8 -/* 8036B09C 7C 03 E0 00 */ cmpw r3, r28 -/* 8036B0A0 38 A0 00 00 */ li r5, 0 -/* 8036B0A4 54 60 10 3A */ slwi r0, r3, 2 -/* 8036B0A8 38 63 00 01 */ addi r3, r3, 1 -/* 8036B0AC 7C 84 02 14 */ add r4, r4, r0 -/* 8036B0B0 7C 7C 18 50 */ subf r3, r28, r3 -/* 8036B0B4 41 80 00 74 */ blt lbl_8036B128 -/* 8036B0B8 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 8036B0BC 7C 09 03 A6 */ mtctr r0 -/* 8036B0C0 41 82 00 54 */ beq lbl_8036B114 -lbl_8036B0C4: -/* 8036B0C4 80 04 00 00 */ lwz r0, 0(r4) -/* 8036B0C8 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0CC 80 04 FF FC */ lwz r0, -4(r4) -/* 8036B0D0 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0D4 80 04 FF F8 */ lwz r0, -8(r4) -/* 8036B0D8 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0DC 80 04 FF F4 */ lwz r0, -0xc(r4) -/* 8036B0E0 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0E4 80 04 FF F0 */ lwz r0, -0x10(r4) -/* 8036B0E8 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0EC 80 04 FF EC */ lwz r0, -0x14(r4) -/* 8036B0F0 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0F4 80 04 FF E8 */ lwz r0, -0x18(r4) -/* 8036B0F8 7C A5 03 78 */ or r5, r5, r0 -/* 8036B0FC 80 04 FF E4 */ lwz r0, -0x1c(r4) -/* 8036B100 38 84 FF E0 */ addi r4, r4, -32 -/* 8036B104 7C A5 03 78 */ or r5, r5, r0 -/* 8036B108 42 00 FF BC */ bdnz lbl_8036B0C4 -/* 8036B10C 70 63 00 07 */ andi. r3, r3, 7 -/* 8036B110 41 82 00 18 */ beq lbl_8036B128 -lbl_8036B114: -/* 8036B114 7C 69 03 A6 */ mtctr r3 -lbl_8036B118: -/* 8036B118 80 04 00 00 */ lwz r0, 0(r4) -/* 8036B11C 38 84 FF FC */ addi r4, r4, -4 -/* 8036B120 7C A5 03 78 */ or r5, r5, r0 -/* 8036B124 42 00 FF F4 */ bdnz lbl_8036B118 -lbl_8036B128: -/* 8036B128 2C 05 00 00 */ cmpwi r5, 0 -/* 8036B12C 40 82 01 C8 */ bne lbl_8036B2F4 -/* 8036B130 39 40 00 01 */ li r10, 1 -/* 8036B134 48 00 00 08 */ b lbl_8036B13C -lbl_8036B138: -/* 8036B138 39 4A 00 01 */ addi r10, r10, 1 -lbl_8036B13C: -/* 8036B13C 7C 0A E0 50 */ subf r0, r10, r28 -/* 8036B140 54 00 10 3A */ slwi r0, r0, 2 -/* 8036B144 7C 10 00 2E */ lwzx r0, r16, r0 -/* 8036B148 2C 00 00 00 */ cmpwi r0, 0 -/* 8036B14C 41 82 FF EC */ beq lbl_8036B138 -/* 8036B150 39 3F 00 01 */ addi r9, r31, 1 -/* 8036B154 38 A1 00 58 */ addi r5, r1, 0x58 -/* 8036B158 55 20 18 38 */ slwi r0, r9, 3 -/* 8036B15C 7C DF 52 14 */ add r6, r31, r10 -/* 8036B160 7C A5 02 14 */ add r5, r5, r0 -/* 8036B164 48 00 01 80 */ b lbl_8036B2E4 -lbl_8036B168: -/* 8036B168 7C 1D 4A 14 */ add r0, r29, r9 -/* 8036B16C 7C FE 4A 14 */ add r7, r30, r9 -/* 8036B170 54 00 10 3A */ slwi r0, r0, 2 -/* 8036B174 92 61 02 48 */ stw r19, 0x248(r1) -/* 8036B178 7C 78 00 2E */ lwzx r3, r24, r0 -/* 8036B17C 2C 1E 00 00 */ cmpwi r30, 0 -/* 8036B180 54 E0 18 38 */ slwi r0, r7, 3 -/* 8036B184 C8 82 D0 08 */ lfd f4, lit_436(r2) -/* 8036B188 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 8036B18C 39 00 00 00 */ li r8, 0 -/* 8036B190 90 61 02 4C */ stw r3, 0x24c(r1) -/* 8036B194 C8 01 02 48 */ lfd f0, 0x248(r1) -/* 8036B198 FC 00 D8 28 */ fsub f0, f0, f27 -/* 8036B19C 7C 14 05 AE */ stfdx f0, r20, r0 -/* 8036B1A0 41 80 01 38 */ blt lbl_8036B2D8 -/* 8036B1A4 38 1E 00 01 */ addi r0, r30, 1 -/* 8036B1A8 39 7E FF F8 */ addi r11, r30, -8 -/* 8036B1AC 2C 00 00 08 */ cmpwi r0, 8 -/* 8036B1B0 40 81 00 E8 */ ble lbl_8036B298 -/* 8036B1B4 38 0B 00 08 */ addi r0, r11, 8 -/* 8036B1B8 7E A4 AB 78 */ mr r4, r21 -/* 8036B1BC 54 00 E8 FE */ srwi r0, r0, 3 -/* 8036B1C0 38 61 01 98 */ addi r3, r1, 0x198 -/* 8036B1C4 7C 09 03 A6 */ mtctr r0 -/* 8036B1C8 2C 0B 00 00 */ cmpwi r11, 0 -/* 8036B1CC 41 80 00 CC */ blt lbl_8036B298 -lbl_8036B1D0: -/* 8036B1D0 7D 68 38 50 */ subf r11, r8, r7 -/* 8036B1D4 38 08 00 01 */ addi r0, r8, 1 -/* 8036B1D8 55 6C 18 38 */ slwi r12, r11, 3 -/* 8036B1DC C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B1E0 7C 03 64 AE */ lfdx f0, r3, r12 -/* 8036B1E4 7C 00 38 50 */ subf r0, r0, r7 -/* 8036B1E8 39 68 00 02 */ addi r11, r8, 2 -/* 8036B1EC C8 44 00 20 */ lfd f2, 0x20(r4) -/* 8036B1F0 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B1F4 7D 8B 38 50 */ subf r12, r11, r7 -/* 8036B1F8 54 00 18 38 */ slwi r0, r0, 3 -/* 8036B1FC 39 68 00 03 */ addi r11, r8, 3 -/* 8036B200 7C 03 04 AE */ lfdx f0, r3, r0 -/* 8036B204 55 99 18 38 */ slwi r25, r12, 3 -/* 8036B208 C8 24 00 08 */ lfd f1, 8(r4) -/* 8036B20C 7D 6B 38 50 */ subf r11, r11, r7 -/* 8036B210 55 6C 18 38 */ slwi r12, r11, 3 -/* 8036B214 38 08 00 04 */ addi r0, r8, 4 -/* 8036B218 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B21C C8 24 00 10 */ lfd f1, 0x10(r4) -/* 8036B220 7C 03 CC AE */ lfdx f0, r3, r25 -/* 8036B224 7D 60 38 50 */ subf r11, r0, r7 -/* 8036B228 38 08 00 05 */ addi r0, r8, 5 -/* 8036B22C C8 64 00 30 */ lfd f3, 0x30(r4) -/* 8036B230 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B234 7C 03 64 AE */ lfdx f0, r3, r12 -/* 8036B238 C8 24 00 18 */ lfd f1, 0x18(r4) -/* 8036B23C 55 6C 18 38 */ slwi r12, r11, 3 -/* 8036B240 39 68 00 06 */ addi r11, r8, 6 -/* 8036B244 7C 00 38 50 */ subf r0, r0, r7 -/* 8036B248 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B24C 7C 03 64 AE */ lfdx f0, r3, r12 -/* 8036B250 54 0C 18 38 */ slwi r12, r0, 3 -/* 8036B254 C8 24 00 28 */ lfd f1, 0x28(r4) -/* 8036B258 38 08 00 07 */ addi r0, r8, 7 -/* 8036B25C 7D 6B 38 50 */ subf r11, r11, r7 -/* 8036B260 FC 82 20 3A */ fmadd f4, f2, f0, f4 -/* 8036B264 7C 03 64 AE */ lfdx f0, r3, r12 -/* 8036B268 55 6B 18 38 */ slwi r11, r11, 3 -/* 8036B26C 7C 00 38 50 */ subf r0, r0, r7 -/* 8036B270 7C 43 5C AE */ lfdx f2, r3, r11 -/* 8036B274 54 00 18 38 */ slwi r0, r0, 3 -/* 8036B278 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B27C C8 24 00 38 */ lfd f1, 0x38(r4) -/* 8036B280 7C 03 04 AE */ lfdx f0, r3, r0 -/* 8036B284 38 84 00 40 */ addi r4, r4, 0x40 -/* 8036B288 39 08 00 08 */ addi r8, r8, 8 -/* 8036B28C FC 83 20 BA */ fmadd f4, f3, f2, f4 -/* 8036B290 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B294 42 00 FF 3C */ bdnz lbl_8036B1D0 -lbl_8036B298: -/* 8036B298 38 1E 00 01 */ addi r0, r30, 1 -/* 8036B29C 55 04 18 38 */ slwi r4, r8, 3 -/* 8036B2A0 7C 08 00 50 */ subf r0, r8, r0 -/* 8036B2A4 38 61 01 98 */ addi r3, r1, 0x198 -/* 8036B2A8 7C 95 22 14 */ add r4, r21, r4 -/* 8036B2AC 7C 09 03 A6 */ mtctr r0 -/* 8036B2B0 7C 08 F0 00 */ cmpw r8, r30 -/* 8036B2B4 41 81 00 24 */ bgt lbl_8036B2D8 -lbl_8036B2B8: -/* 8036B2B8 7C 08 38 50 */ subf r0, r8, r7 -/* 8036B2BC C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B2C0 54 00 18 38 */ slwi r0, r0, 3 -/* 8036B2C4 38 84 00 08 */ addi r4, r4, 8 -/* 8036B2C8 7C 03 04 AE */ lfdx f0, r3, r0 -/* 8036B2CC 39 08 00 01 */ addi r8, r8, 1 -/* 8036B2D0 FC 81 20 3A */ fmadd f4, f1, f0, f4 -/* 8036B2D4 42 00 FF E4 */ bdnz lbl_8036B2B8 -lbl_8036B2D8: -/* 8036B2D8 D8 85 00 00 */ stfd f4, 0(r5) -/* 8036B2DC 38 A5 00 08 */ addi r5, r5, 8 -/* 8036B2E0 39 29 00 01 */ addi r9, r9, 1 -lbl_8036B2E4: -/* 8036B2E4 7C 09 30 00 */ cmpw r9, r6 -/* 8036B2E8 40 81 FE 80 */ ble lbl_8036B168 -/* 8036B2EC 7F FF 52 14 */ add r31, r31, r10 -/* 8036B2F0 4B FF FB 18 */ b lbl_8036AE08 -lbl_8036B2F4: -/* 8036B2F4 C8 02 D0 08 */ lfd f0, lit_436(r2) -/* 8036B2F8 FC 00 C8 00 */ fcmpu cr0, f0, f25 -/* 8036B2FC 40 82 00 38 */ bne lbl_8036B334 -/* 8036B300 3B FF FF FF */ addi r31, r31, -1 -/* 8036B304 38 61 00 08 */ addi r3, r1, 8 -/* 8036B308 57 E0 10 3A */ slwi r0, r31, 2 -/* 8036B30C 3B 5A FF E8 */ addi r26, r26, -24 -/* 8036B310 7C 63 02 14 */ add r3, r3, r0 -/* 8036B314 48 00 00 10 */ b lbl_8036B324 -lbl_8036B318: -/* 8036B318 38 63 FF FC */ addi r3, r3, -4 -/* 8036B31C 3B FF FF FF */ addi r31, r31, -1 -/* 8036B320 3B 5A FF E8 */ addi r26, r26, -24 -lbl_8036B324: -/* 8036B324 80 03 00 00 */ lwz r0, 0(r3) -/* 8036B328 2C 00 00 00 */ cmpwi r0, 0 -/* 8036B32C 41 82 FF EC */ beq lbl_8036B318 -/* 8036B330 48 00 00 A4 */ b lbl_8036B3D4 -lbl_8036B334: -/* 8036B334 FC 20 C8 90 */ fmr f1, f25 -/* 8036B338 7C 7A 00 D0 */ neg r3, r26 -/* 8036B33C 48 00 0F 95 */ bl ldexp -/* 8036B340 C8 62 D0 18 */ lfd f3, lit_438(r2) -/* 8036B344 FC 01 18 40 */ fcmpo cr0, f1, f3 -/* 8036B348 4C 41 13 82 */ cror 2, 1, 2 -/* 8036B34C 40 82 00 70 */ bne lbl_8036B3BC -/* 8036B350 C8 02 D0 10 */ lfd f0, lit_437(r2) -/* 8036B354 3C 00 43 30 */ lis r0, 0x4330 -/* 8036B358 57 E5 10 3A */ slwi r5, r31, 2 -/* 8036B35C 90 01 02 40 */ stw r0, 0x240(r1) -/* 8036B360 FC 00 00 72 */ fmul f0, f0, f1 -/* 8036B364 3B FF 00 01 */ addi r31, r31, 1 -/* 8036B368 C8 42 D0 40 */ lfd f2, lit_445(r2) -/* 8036B36C 38 81 00 08 */ addi r4, r1, 8 -/* 8036B370 57 E0 10 3A */ slwi r0, r31, 2 -/* 8036B374 3B 5A 00 18 */ addi r26, r26, 0x18 -/* 8036B378 FC 00 00 1E */ fctiwz f0, f0 -/* 8036B37C D8 01 02 48 */ stfd f0, 0x248(r1) -/* 8036B380 80 61 02 4C */ lwz r3, 0x24c(r1) -/* 8036B384 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 8036B388 90 61 02 44 */ stw r3, 0x244(r1) -/* 8036B38C C8 01 02 40 */ lfd f0, 0x240(r1) -/* 8036B390 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B394 FC 23 08 3C */ fnmsub f1, f3, f0, f1 -/* 8036B398 FC 00 00 1E */ fctiwz f0, f0 -/* 8036B39C FC 20 08 1E */ fctiwz f1, f1 -/* 8036B3A0 D8 01 02 50 */ stfd f0, 0x250(r1) -/* 8036B3A4 D8 21 02 38 */ stfd f1, 0x238(r1) -/* 8036B3A8 80 61 02 54 */ lwz r3, 0x254(r1) -/* 8036B3AC 80 C1 02 3C */ lwz r6, 0x23c(r1) -/* 8036B3B0 7C C4 29 2E */ stwx r6, r4, r5 -/* 8036B3B4 7C 64 01 2E */ stwx r3, r4, r0 -/* 8036B3B8 48 00 00 1C */ b lbl_8036B3D4 -lbl_8036B3BC: -/* 8036B3BC FC 00 08 1E */ fctiwz f0, f1 -/* 8036B3C0 57 E0 10 3A */ slwi r0, r31, 2 -/* 8036B3C4 38 61 00 08 */ addi r3, r1, 8 -/* 8036B3C8 D8 01 02 50 */ stfd f0, 0x250(r1) -/* 8036B3CC 80 81 02 54 */ lwz r4, 0x254(r1) -/* 8036B3D0 7C 83 01 2E */ stwx r4, r3, r0 -lbl_8036B3D4: -/* 8036B3D4 C8 22 D0 38 */ lfd f1, lit_442(r2) -/* 8036B3D8 7F 43 D3 78 */ mr r3, r26 -/* 8036B3DC 48 00 0E F5 */ bl ldexp -/* 8036B3E0 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036B3E4 57 E0 10 3A */ slwi r0, r31, 2 -/* 8036B3E8 38 C1 00 08 */ addi r6, r1, 8 -/* 8036B3EC 57 E8 18 38 */ slwi r8, r31, 3 -/* 8036B3F0 38 E1 00 58 */ addi r7, r1, 0x58 -/* 8036B3F4 C8 A2 D0 40 */ lfd f5, lit_445(r2) -/* 8036B3F8 C8 02 D0 10 */ lfd f0, lit_437(r2) -/* 8036B3FC 7C C6 02 14 */ add r6, r6, r0 -/* 8036B400 7C E7 42 14 */ add r7, r7, r8 -/* 8036B404 38 7F 00 01 */ addi r3, r31, 1 -/* 8036B408 3C 80 43 30 */ lis r4, 0x4330 -/* 8036B40C 41 80 00 E8 */ blt lbl_8036B4F4 -/* 8036B410 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f -/* 8036B414 7C 09 03 A6 */ mtctr r0 -/* 8036B418 41 82 00 A8 */ beq lbl_8036B4C0 -lbl_8036B41C: -/* 8036B41C 80 A6 00 00 */ lwz r5, 0(r6) -/* 8036B420 90 81 02 50 */ stw r4, 0x250(r1) -/* 8036B424 6C A0 80 00 */ xoris r0, r5, 0x8000 -/* 8036B428 80 A6 FF FC */ lwz r5, -4(r6) -/* 8036B42C 90 01 02 54 */ stw r0, 0x254(r1) -/* 8036B430 6C A0 80 00 */ xoris r0, r5, 0x8000 -/* 8036B434 80 A6 FF F8 */ lwz r5, -8(r6) -/* 8036B438 C8 81 02 50 */ lfd f4, 0x250(r1) -/* 8036B43C 90 01 02 54 */ stw r0, 0x254(r1) -/* 8036B440 FC 64 28 28 */ fsub f3, f4, f5 -/* 8036B444 6C A0 80 00 */ xoris r0, r5, 0x8000 -/* 8036B448 80 A6 FF F4 */ lwz r5, -0xc(r6) -/* 8036B44C 90 81 02 50 */ stw r4, 0x250(r1) -/* 8036B450 38 C6 FF F0 */ addi r6, r6, -16 -/* 8036B454 FC 41 00 F2 */ fmul f2, f1, f3 -/* 8036B458 C8 81 02 50 */ lfd f4, 0x250(r1) -/* 8036B45C FC 21 00 32 */ fmul f1, f1, f0 -/* 8036B460 90 01 02 54 */ stw r0, 0x254(r1) -/* 8036B464 6C A0 80 00 */ xoris r0, r5, 0x8000 -/* 8036B468 FC 64 28 28 */ fsub f3, f4, f5 -/* 8036B46C 90 81 02 50 */ stw r4, 0x250(r1) -/* 8036B470 C8 81 02 50 */ lfd f4, 0x250(r1) -/* 8036B474 D8 47 00 00 */ stfd f2, 0(r7) -/* 8036B478 FC 41 00 F2 */ fmul f2, f1, f3 -/* 8036B47C FC 21 00 32 */ fmul f1, f1, f0 -/* 8036B480 90 01 02 54 */ stw r0, 0x254(r1) -/* 8036B484 90 81 02 50 */ stw r4, 0x250(r1) -/* 8036B488 FC 64 28 28 */ fsub f3, f4, f5 -/* 8036B48C D8 47 FF F8 */ stfd f2, -8(r7) -/* 8036B490 FC 41 00 F2 */ fmul f2, f1, f3 -/* 8036B494 C8 81 02 50 */ lfd f4, 0x250(r1) -/* 8036B498 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036B49C FC 64 28 28 */ fsub f3, f4, f5 -/* 8036B4A0 D8 47 FF F0 */ stfd f2, -0x10(r7) -/* 8036B4A4 FC 41 00 F2 */ fmul f2, f1, f3 -/* 8036B4A8 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036B4AC D8 47 FF E8 */ stfd f2, -0x18(r7) -/* 8036B4B0 38 E7 FF E0 */ addi r7, r7, -32 -/* 8036B4B4 42 00 FF 68 */ bdnz lbl_8036B41C -/* 8036B4B8 70 63 00 03 */ andi. r3, r3, 3 -/* 8036B4BC 41 82 00 38 */ beq lbl_8036B4F4 -lbl_8036B4C0: -/* 8036B4C0 7C 69 03 A6 */ mtctr r3 -lbl_8036B4C4: -/* 8036B4C4 80 A6 00 00 */ lwz r5, 0(r6) -/* 8036B4C8 38 C6 FF FC */ addi r6, r6, -4 -/* 8036B4CC 90 81 02 50 */ stw r4, 0x250(r1) -/* 8036B4D0 6C A0 80 00 */ xoris r0, r5, 0x8000 -/* 8036B4D4 90 01 02 54 */ stw r0, 0x254(r1) -/* 8036B4D8 C8 81 02 50 */ lfd f4, 0x250(r1) -/* 8036B4DC FC 64 28 28 */ fsub f3, f4, f5 -/* 8036B4E0 FC 41 00 F2 */ fmul f2, f1, f3 -/* 8036B4E4 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036B4E8 D8 47 00 00 */ stfd f2, 0(r7) -/* 8036B4EC 38 E7 FF F8 */ addi r7, r7, -8 -/* 8036B4F0 42 00 FF D4 */ bdnz lbl_8036B4C4 -lbl_8036B4F4: -/* 8036B4F4 3C 60 80 3A */ lis r3, PIo2@ha /* 0x803A2548@ha */ -/* 8036B4F8 38 1F 00 01 */ addi r0, r31, 1 -/* 8036B4FC 7F E9 FB 78 */ mr r9, r31 -/* 8036B500 38 81 00 58 */ addi r4, r1, 0x58 -/* 8036B504 38 A3 25 48 */ addi r5, r3, PIo2@l /* 0x803A2548@l */ -/* 8036B508 38 61 00 F8 */ addi r3, r1, 0xf8 -/* 8036B50C 7C 09 03 A6 */ mtctr r0 -/* 8036B510 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036B514 41 80 00 54 */ blt lbl_8036B568 -lbl_8036B518: -/* 8036B518 C8 42 D0 08 */ lfd f2, lit_436(r2) -/* 8036B51C 7C A6 2B 78 */ mr r6, r5 -/* 8036B520 7C E9 F8 50 */ subf r7, r9, r31 -/* 8036B524 39 40 00 00 */ li r10, 0 -/* 8036B528 48 00 00 20 */ b lbl_8036B548 -lbl_8036B52C: -/* 8036B52C 7C 09 52 14 */ add r0, r9, r10 -/* 8036B530 C8 26 00 00 */ lfd f1, 0(r6) -/* 8036B534 54 00 18 38 */ slwi r0, r0, 3 -/* 8036B538 38 C6 00 08 */ addi r6, r6, 8 -/* 8036B53C 7C 04 04 AE */ lfdx f0, r4, r0 -/* 8036B540 39 4A 00 01 */ addi r10, r10, 1 -/* 8036B544 FC 41 10 3A */ fmadd f2, f1, f0, f2 -lbl_8036B548: -/* 8036B548 7C 0A E0 00 */ cmpw r10, r28 -/* 8036B54C 41 81 00 0C */ bgt lbl_8036B558 -/* 8036B550 7C 0A 38 00 */ cmpw r10, r7 -/* 8036B554 40 81 FF D8 */ ble lbl_8036B52C -lbl_8036B558: -/* 8036B558 54 E0 18 38 */ slwi r0, r7, 3 -/* 8036B55C 39 29 FF FF */ addi r9, r9, -1 -/* 8036B560 7C 43 05 AE */ stfdx f2, r3, r0 -/* 8036B564 42 00 FF B4 */ bdnz lbl_8036B518 -lbl_8036B568: -/* 8036B568 2C 17 00 03 */ cmpwi r23, 3 -/* 8036B56C 41 82 02 24 */ beq lbl_8036B790 -/* 8036B570 40 80 04 60 */ bge lbl_8036B9D0 -/* 8036B574 2C 17 00 00 */ cmpwi r23, 0 -/* 8036B578 41 82 00 0C */ beq lbl_8036B584 -/* 8036B57C 40 80 00 A8 */ bge lbl_8036B624 -/* 8036B580 48 00 04 50 */ b lbl_8036B9D0 -lbl_8036B584: -/* 8036B584 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036B588 38 81 00 F8 */ addi r4, r1, 0xf8 -/* 8036B58C C8 22 D0 08 */ lfd f1, lit_436(r2) -/* 8036B590 7C 84 42 14 */ add r4, r4, r8 -/* 8036B594 38 7F 00 01 */ addi r3, r31, 1 -/* 8036B598 41 80 00 74 */ blt lbl_8036B60C -/* 8036B59C 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 8036B5A0 7C 09 03 A6 */ mtctr r0 -/* 8036B5A4 41 82 00 54 */ beq lbl_8036B5F8 -lbl_8036B5A8: -/* 8036B5A8 C8 04 00 00 */ lfd f0, 0(r4) -/* 8036B5AC FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5B0 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036B5B4 FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5B8 C8 04 FF F0 */ lfd f0, -0x10(r4) -/* 8036B5BC FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5C0 C8 04 FF E8 */ lfd f0, -0x18(r4) -/* 8036B5C4 FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5C8 C8 04 FF E0 */ lfd f0, -0x20(r4) -/* 8036B5CC FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5D0 C8 04 FF D8 */ lfd f0, -0x28(r4) -/* 8036B5D4 FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5D8 C8 04 FF D0 */ lfd f0, -0x30(r4) -/* 8036B5DC FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5E0 C8 04 FF C8 */ lfd f0, -0x38(r4) -/* 8036B5E4 38 84 FF C0 */ addi r4, r4, -64 -/* 8036B5E8 FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B5EC 42 00 FF BC */ bdnz lbl_8036B5A8 -/* 8036B5F0 70 63 00 07 */ andi. r3, r3, 7 -/* 8036B5F4 41 82 00 18 */ beq lbl_8036B60C -lbl_8036B5F8: -/* 8036B5F8 7C 69 03 A6 */ mtctr r3 -lbl_8036B5FC: -/* 8036B5FC C8 04 00 00 */ lfd f0, 0(r4) -/* 8036B600 38 84 FF F8 */ addi r4, r4, -8 -/* 8036B604 FC 21 00 2A */ fadd f1, f1, f0 -/* 8036B608 42 00 FF F4 */ bdnz lbl_8036B5FC -lbl_8036B60C: -/* 8036B60C 2C 19 00 00 */ cmpwi r25, 0 -/* 8036B610 40 82 00 08 */ bne lbl_8036B618 -/* 8036B614 48 00 00 08 */ b lbl_8036B61C -lbl_8036B618: -/* 8036B618 FC 20 08 50 */ fneg f1, f1 -lbl_8036B61C: -/* 8036B61C D8 36 00 00 */ stfd f1, 0(r22) -/* 8036B620 48 00 03 B0 */ b lbl_8036B9D0 -lbl_8036B624: -/* 8036B624 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036B628 38 81 00 F8 */ addi r4, r1, 0xf8 -/* 8036B62C C8 42 D0 08 */ lfd f2, lit_436(r2) -/* 8036B630 7C 84 42 14 */ add r4, r4, r8 -/* 8036B634 38 7F 00 01 */ addi r3, r31, 1 -/* 8036B638 41 80 00 74 */ blt lbl_8036B6AC -/* 8036B63C 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 8036B640 7C 09 03 A6 */ mtctr r0 -/* 8036B644 41 82 00 54 */ beq lbl_8036B698 -lbl_8036B648: -/* 8036B648 C8 04 00 00 */ lfd f0, 0(r4) -/* 8036B64C FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B650 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036B654 FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B658 C8 04 FF F0 */ lfd f0, -0x10(r4) -/* 8036B65C FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B660 C8 04 FF E8 */ lfd f0, -0x18(r4) -/* 8036B664 FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B668 C8 04 FF E0 */ lfd f0, -0x20(r4) -/* 8036B66C FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B670 C8 04 FF D8 */ lfd f0, -0x28(r4) -/* 8036B674 FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B678 C8 04 FF D0 */ lfd f0, -0x30(r4) -/* 8036B67C FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B680 C8 04 FF C8 */ lfd f0, -0x38(r4) -/* 8036B684 38 84 FF C0 */ addi r4, r4, -64 -/* 8036B688 FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B68C 42 00 FF BC */ bdnz lbl_8036B648 -/* 8036B690 70 63 00 07 */ andi. r3, r3, 7 -/* 8036B694 41 82 00 18 */ beq lbl_8036B6AC -lbl_8036B698: -/* 8036B698 7C 69 03 A6 */ mtctr r3 -lbl_8036B69C: -/* 8036B69C C8 04 00 00 */ lfd f0, 0(r4) -/* 8036B6A0 38 84 FF F8 */ addi r4, r4, -8 -/* 8036B6A4 FC 42 00 2A */ fadd f2, f2, f0 -/* 8036B6A8 42 00 FF F4 */ bdnz lbl_8036B69C -lbl_8036B6AC: -/* 8036B6AC 2C 19 00 00 */ cmpwi r25, 0 -/* 8036B6B0 40 82 00 0C */ bne lbl_8036B6BC -/* 8036B6B4 FC 20 10 90 */ fmr f1, f2 -/* 8036B6B8 48 00 00 08 */ b lbl_8036B6C0 -lbl_8036B6BC: -/* 8036B6BC FC 20 10 50 */ fneg f1, f2 -lbl_8036B6C0: -/* 8036B6C0 C8 01 00 F8 */ lfd f0, 0xf8(r1) -/* 8036B6C4 2C 1F 00 01 */ cmpwi r31, 1 -/* 8036B6C8 D8 36 00 00 */ stfd f1, 0(r22) -/* 8036B6CC 38 A0 00 01 */ li r5, 1 -/* 8036B6D0 FC C0 10 28 */ fsub f6, f0, f2 -/* 8036B6D4 41 80 00 A4 */ blt lbl_8036B778 -/* 8036B6D8 2C 1F 00 08 */ cmpwi r31, 8 -/* 8036B6DC 38 7F FF F8 */ addi r3, r31, -8 -/* 8036B6E0 40 81 00 68 */ ble lbl_8036B748 -/* 8036B6E4 38 03 00 07 */ addi r0, r3, 7 -/* 8036B6E8 38 81 01 00 */ addi r4, r1, 0x100 -/* 8036B6EC 54 00 E8 FE */ srwi r0, r0, 3 -/* 8036B6F0 7C 09 03 A6 */ mtctr r0 -/* 8036B6F4 2C 03 00 01 */ cmpwi r3, 1 -/* 8036B6F8 41 80 00 50 */ blt lbl_8036B748 -lbl_8036B6FC: -/* 8036B6FC C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B700 38 A5 00 08 */ addi r5, r5, 8 -/* 8036B704 C8 04 00 08 */ lfd f0, 8(r4) -/* 8036B708 FC C6 08 2A */ fadd f6, f6, f1 -/* 8036B70C C8 A4 00 10 */ lfd f5, 0x10(r4) -/* 8036B710 C8 84 00 18 */ lfd f4, 0x18(r4) -/* 8036B714 C8 64 00 20 */ lfd f3, 0x20(r4) -/* 8036B718 FC C6 00 2A */ fadd f6, f6, f0 -/* 8036B71C C8 44 00 28 */ lfd f2, 0x28(r4) -/* 8036B720 C8 24 00 30 */ lfd f1, 0x30(r4) -/* 8036B724 C8 04 00 38 */ lfd f0, 0x38(r4) -/* 8036B728 38 84 00 40 */ addi r4, r4, 0x40 -/* 8036B72C FC C6 28 2A */ fadd f6, f6, f5 -/* 8036B730 FC C6 20 2A */ fadd f6, f6, f4 -/* 8036B734 FC C6 18 2A */ fadd f6, f6, f3 -/* 8036B738 FC C6 10 2A */ fadd f6, f6, f2 -/* 8036B73C FC C6 08 2A */ fadd f6, f6, f1 -/* 8036B740 FC C6 00 2A */ fadd f6, f6, f0 -/* 8036B744 42 00 FF B8 */ bdnz lbl_8036B6FC -lbl_8036B748: -/* 8036B748 38 1F 00 01 */ addi r0, r31, 1 -/* 8036B74C 54 A3 18 38 */ slwi r3, r5, 3 -/* 8036B750 38 81 00 F8 */ addi r4, r1, 0xf8 -/* 8036B754 7C 05 00 50 */ subf r0, r5, r0 -/* 8036B758 7C 84 1A 14 */ add r4, r4, r3 -/* 8036B75C 7C 09 03 A6 */ mtctr r0 -/* 8036B760 7C 05 F8 00 */ cmpw r5, r31 -/* 8036B764 41 81 00 14 */ bgt lbl_8036B778 -lbl_8036B768: -/* 8036B768 C8 04 00 00 */ lfd f0, 0(r4) -/* 8036B76C 38 84 00 08 */ addi r4, r4, 8 -/* 8036B770 FC C6 00 2A */ fadd f6, f6, f0 -/* 8036B774 42 00 FF F4 */ bdnz lbl_8036B768 -lbl_8036B778: -/* 8036B778 2C 19 00 00 */ cmpwi r25, 0 -/* 8036B77C 40 82 00 08 */ bne lbl_8036B784 -/* 8036B780 48 00 00 08 */ b lbl_8036B788 -lbl_8036B784: -/* 8036B784 FC C0 30 50 */ fneg f6, f6 -lbl_8036B788: -/* 8036B788 D8 D6 00 08 */ stfd f6, 8(r22) -/* 8036B78C 48 00 02 44 */ b lbl_8036B9D0 -lbl_8036B790: -/* 8036B790 38 A1 00 F8 */ addi r5, r1, 0xf8 -/* 8036B794 2C 1F 00 00 */ cmpwi r31, 0 -/* 8036B798 7C A5 42 14 */ add r5, r5, r8 -/* 8036B79C 7F E3 FB 78 */ mr r3, r31 -/* 8036B7A0 7C A4 2B 78 */ mr r4, r5 -/* 8036B7A4 40 81 00 B0 */ ble lbl_8036B854 -/* 8036B7A8 57 E0 F0 BF */ rlwinm. r0, r31, 0x1e, 2, 0x1f -/* 8036B7AC 7C 09 03 A6 */ mtctr r0 -/* 8036B7B0 41 82 00 80 */ beq lbl_8036B830 -lbl_8036B7B4: -/* 8036B7B4 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036B7B8 C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B7BC FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B7C0 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B7C4 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B7C8 D8 04 00 00 */ stfd f0, 0(r4) -/* 8036B7CC D8 44 FF F8 */ stfd f2, -8(r4) -/* 8036B7D0 C8 04 FF F0 */ lfd f0, -0x10(r4) -/* 8036B7D4 C8 24 FF F8 */ lfd f1, -8(r4) -/* 8036B7D8 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B7DC FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B7E0 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B7E4 D8 04 FF F8 */ stfd f0, -8(r4) -/* 8036B7E8 D8 44 FF F0 */ stfd f2, -0x10(r4) -/* 8036B7EC C8 04 FF E8 */ lfd f0, -0x18(r4) -/* 8036B7F0 C8 24 FF F0 */ lfd f1, -0x10(r4) -/* 8036B7F4 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B7F8 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B7FC FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B800 D8 04 FF F0 */ stfd f0, -0x10(r4) -/* 8036B804 D8 44 FF E8 */ stfd f2, -0x18(r4) -/* 8036B808 C8 04 FF E0 */ lfd f0, -0x20(r4) -/* 8036B80C C8 24 FF E8 */ lfd f1, -0x18(r4) -/* 8036B810 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B814 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B818 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B81C D8 04 FF E8 */ stfd f0, -0x18(r4) -/* 8036B820 DC 44 FF E0 */ stfdu f2, -0x20(r4) -/* 8036B824 42 00 FF 90 */ bdnz lbl_8036B7B4 -/* 8036B828 70 63 00 03 */ andi. r3, r3, 3 -/* 8036B82C 41 82 00 28 */ beq lbl_8036B854 -lbl_8036B830: -/* 8036B830 7C 69 03 A6 */ mtctr r3 -lbl_8036B834: -/* 8036B834 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036B838 C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B83C FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B840 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B844 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B848 D8 04 00 00 */ stfd f0, 0(r4) -/* 8036B84C DC 44 FF F8 */ stfdu f2, -8(r4) -/* 8036B850 42 00 FF E4 */ bdnz lbl_8036B834 -lbl_8036B854: -/* 8036B854 2C 1F 00 01 */ cmpwi r31, 1 -/* 8036B858 7C A4 2B 78 */ mr r4, r5 -/* 8036B85C 38 7F FF FF */ addi r3, r31, -1 -/* 8036B860 40 81 00 B0 */ ble lbl_8036B910 -/* 8036B864 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f -/* 8036B868 7C 09 03 A6 */ mtctr r0 -/* 8036B86C 41 82 00 80 */ beq lbl_8036B8EC -lbl_8036B870: -/* 8036B870 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036B874 C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B878 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B87C FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B880 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B884 D8 04 00 00 */ stfd f0, 0(r4) -/* 8036B888 D8 44 FF F8 */ stfd f2, -8(r4) -/* 8036B88C C8 04 FF F0 */ lfd f0, -0x10(r4) -/* 8036B890 C8 24 FF F8 */ lfd f1, -8(r4) -/* 8036B894 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B898 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B89C FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B8A0 D8 04 FF F8 */ stfd f0, -8(r4) -/* 8036B8A4 D8 44 FF F0 */ stfd f2, -0x10(r4) -/* 8036B8A8 C8 04 FF E8 */ lfd f0, -0x18(r4) -/* 8036B8AC C8 24 FF F0 */ lfd f1, -0x10(r4) -/* 8036B8B0 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B8B4 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B8B8 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B8BC D8 04 FF F0 */ stfd f0, -0x10(r4) -/* 8036B8C0 D8 44 FF E8 */ stfd f2, -0x18(r4) -/* 8036B8C4 C8 04 FF E0 */ lfd f0, -0x20(r4) -/* 8036B8C8 C8 24 FF E8 */ lfd f1, -0x18(r4) -/* 8036B8CC FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B8D0 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B8D4 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B8D8 D8 04 FF E8 */ stfd f0, -0x18(r4) -/* 8036B8DC DC 44 FF E0 */ stfdu f2, -0x20(r4) -/* 8036B8E0 42 00 FF 90 */ bdnz lbl_8036B870 -/* 8036B8E4 70 63 00 03 */ andi. r3, r3, 3 -/* 8036B8E8 41 82 00 28 */ beq lbl_8036B910 -lbl_8036B8EC: -/* 8036B8EC 7C 69 03 A6 */ mtctr r3 -lbl_8036B8F0: -/* 8036B8F0 C8 04 FF F8 */ lfd f0, -8(r4) -/* 8036B8F4 C8 24 00 00 */ lfd f1, 0(r4) -/* 8036B8F8 FC 40 08 2A */ fadd f2, f0, f1 -/* 8036B8FC FC 00 10 28 */ fsub f0, f0, f2 -/* 8036B900 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036B904 D8 04 00 00 */ stfd f0, 0(r4) -/* 8036B908 DC 44 FF F8 */ stfdu f2, -8(r4) -/* 8036B90C 42 00 FF E4 */ bdnz lbl_8036B8F0 -lbl_8036B910: -/* 8036B910 2C 1F 00 02 */ cmpwi r31, 2 -/* 8036B914 C8 62 D0 08 */ lfd f3, lit_436(r2) -/* 8036B918 38 7F FF FF */ addi r3, r31, -1 -/* 8036B91C 41 80 00 74 */ blt lbl_8036B990 -/* 8036B920 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 8036B924 7C 09 03 A6 */ mtctr r0 -/* 8036B928 41 82 00 54 */ beq lbl_8036B97C -lbl_8036B92C: -/* 8036B92C C8 05 00 00 */ lfd f0, 0(r5) -/* 8036B930 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B934 C8 05 FF F8 */ lfd f0, -8(r5) -/* 8036B938 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B93C C8 05 FF F0 */ lfd f0, -0x10(r5) -/* 8036B940 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B944 C8 05 FF E8 */ lfd f0, -0x18(r5) -/* 8036B948 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B94C C8 05 FF E0 */ lfd f0, -0x20(r5) -/* 8036B950 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B954 C8 05 FF D8 */ lfd f0, -0x28(r5) -/* 8036B958 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B95C C8 05 FF D0 */ lfd f0, -0x30(r5) -/* 8036B960 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B964 C8 05 FF C8 */ lfd f0, -0x38(r5) -/* 8036B968 38 A5 FF C0 */ addi r5, r5, -64 -/* 8036B96C FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B970 42 00 FF BC */ bdnz lbl_8036B92C -/* 8036B974 70 63 00 07 */ andi. r3, r3, 7 -/* 8036B978 41 82 00 18 */ beq lbl_8036B990 -lbl_8036B97C: -/* 8036B97C 7C 69 03 A6 */ mtctr r3 -lbl_8036B980: -/* 8036B980 C8 05 00 00 */ lfd f0, 0(r5) -/* 8036B984 38 A5 FF F8 */ addi r5, r5, -8 -/* 8036B988 FC 63 00 2A */ fadd f3, f3, f0 -/* 8036B98C 42 00 FF F4 */ bdnz lbl_8036B980 -lbl_8036B990: -/* 8036B990 2C 19 00 00 */ cmpwi r25, 0 -/* 8036B994 40 82 00 1C */ bne lbl_8036B9B0 -/* 8036B998 C8 21 00 F8 */ lfd f1, 0xf8(r1) -/* 8036B99C C8 01 01 00 */ lfd f0, 0x100(r1) -/* 8036B9A0 D8 36 00 00 */ stfd f1, 0(r22) -/* 8036B9A4 D8 16 00 08 */ stfd f0, 8(r22) -/* 8036B9A8 D8 76 00 10 */ stfd f3, 0x10(r22) -/* 8036B9AC 48 00 00 24 */ b lbl_8036B9D0 -lbl_8036B9B0: -/* 8036B9B0 C8 41 00 F8 */ lfd f2, 0xf8(r1) -/* 8036B9B4 FC 00 18 50 */ fneg f0, f3 -/* 8036B9B8 C8 21 01 00 */ lfd f1, 0x100(r1) -/* 8036B9BC FC 40 10 50 */ fneg f2, f2 -/* 8036B9C0 FC 20 08 50 */ fneg f1, f1 -/* 8036B9C4 D8 56 00 00 */ stfd f2, 0(r22) -/* 8036B9C8 D8 36 00 08 */ stfd f1, 8(r22) -/* 8036B9CC D8 16 00 10 */ stfd f0, 0x10(r22) -lbl_8036B9D0: -/* 8036B9D0 57 63 07 7E */ clrlwi r3, r27, 0x1d -/* 8036B9D4 39 61 02 D0 */ addi r11, r1, 0x2d0 -/* 8036B9D8 4B FF 67 A9 */ bl _restfpr_25 -/* 8036B9DC BA 01 02 58 */ lmw r16, 0x258(r1) -/* 8036B9E0 80 01 02 D4 */ lwz r0, 0x2d4(r1) -/* 8036B9E4 7C 08 03 A6 */ mtlr r0 -/* 8036B9E8 38 21 02 D0 */ addi r1, r1, 0x2d0 -/* 8036B9EC 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/k_sin/__kernel_sin.s b/asm/MSL_C/Math/Double_precision/k_sin/__kernel_sin.s deleted file mode 100644 index e319f3ae2cf..00000000000 --- a/asm/MSL_C/Math/Double_precision/k_sin/__kernel_sin.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_8036B9F0: -/* 8036B9F0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036B9F4 3C 00 3E 40 */ lis r0, 0x3e40 -/* 8036B9F8 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036B9FC 80 81 00 08 */ lwz r4, 8(r1) -/* 8036BA00 54 84 00 7E */ clrlwi r4, r4, 1 -/* 8036BA04 7C 04 00 00 */ cmpw r4, r0 -/* 8036BA08 40 80 00 1C */ bge lbl_8036BA24 -/* 8036BA0C FC 00 08 1E */ fctiwz f0, f1 -/* 8036BA10 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8036BA14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8036BA18 2C 00 00 00 */ cmpwi r0, 0 -/* 8036BA1C 40 82 00 08 */ bne lbl_8036BA24 -/* 8036BA20 48 00 00 68 */ b lbl_8036BA88 -lbl_8036BA24: -/* 8036BA24 C8 C1 00 08 */ lfd f6, 8(r1) -/* 8036BA28 2C 03 00 00 */ cmpwi r3, 0 -/* 8036BA2C C8 A2 D0 68 */ lfd f5, lit_64(r2) -/* 8036BA30 FC E6 01 B2 */ fmul f7, f6, f6 -/* 8036BA34 C8 82 D0 60 */ lfd f4, lit_63(r2) -/* 8036BA38 C8 62 D0 58 */ lfd f3, lit_62(r2) -/* 8036BA3C C8 22 D0 50 */ lfd f1, lit_61(r2) -/* 8036BA40 C8 02 D0 48 */ lfd f0, lit_60(r2) -/* 8036BA44 FC 85 21 FA */ fmadd f4, f5, f7, f4 -/* 8036BA48 FC A7 01 B2 */ fmul f5, f7, f6 -/* 8036BA4C FC 67 19 3A */ fmadd f3, f7, f4, f3 -/* 8036BA50 FC 27 08 FA */ fmadd f1, f7, f3, f1 -/* 8036BA54 FC 27 00 7A */ fmadd f1, f7, f1, f0 -/* 8036BA58 40 82 00 14 */ bne lbl_8036BA6C -/* 8036BA5C C8 02 D0 70 */ lfd f0, lit_65(r2) -/* 8036BA60 FC 07 00 7A */ fmadd f0, f7, f1, f0 -/* 8036BA64 FC 25 30 3A */ fmadd f1, f5, f0, f6 -/* 8036BA68 48 00 00 20 */ b lbl_8036BA88 -lbl_8036BA6C: -/* 8036BA6C FC 05 00 72 */ fmul f0, f5, f1 -/* 8036BA70 C8 22 D0 78 */ lfd f1, lit_66(r2) -/* 8036BA74 C8 62 D0 70 */ lfd f3, lit_65(r2) -/* 8036BA78 FC 01 00 B8 */ fmsub f0, f1, f2, f0 -/* 8036BA7C FC 07 10 38 */ fmsub f0, f7, f0, f2 -/* 8036BA80 FC 03 01 7C */ fnmsub f0, f3, f5, f0 -/* 8036BA84 FC 26 00 28 */ fsub f1, f6, f0 -lbl_8036BA88: -/* 8036BA88 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036BA8C 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/k_tan/__kernel_tan.s b/asm/MSL_C/Math/Double_precision/k_tan/__kernel_tan.s deleted file mode 100644 index 91f7f06a75d..00000000000 --- a/asm/MSL_C/Math/Double_precision/k_tan/__kernel_tan.s +++ /dev/null @@ -1,142 +0,0 @@ -lbl_8036BA90: -/* 8036BA90 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8036BA94 DB E1 00 30 */ stfd f31, 0x30(r1) -/* 8036BA98 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */ -/* 8036BA9C D8 21 00 08 */ stfd f1, 8(r1) -/* 8036BAA0 3C 00 3E 30 */ lis r0, 0x3e30 -/* 8036BAA4 80 E1 00 08 */ lwz r7, 8(r1) -/* 8036BAA8 54 E6 00 7E */ clrlwi r6, r7, 1 -/* 8036BAAC 7C 06 00 00 */ cmpw r6, r0 -/* 8036BAB0 40 80 00 54 */ bge lbl_8036BB04 -/* 8036BAB4 FC 00 08 1E */ fctiwz f0, f1 -/* 8036BAB8 D8 01 00 20 */ stfd f0, 0x20(r1) -/* 8036BABC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036BAC0 2C 00 00 00 */ cmpwi r0, 0 -/* 8036BAC4 40 82 00 40 */ bne lbl_8036BB04 -/* 8036BAC8 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8036BACC 38 83 00 01 */ addi r4, r3, 1 -/* 8036BAD0 7C C0 03 78 */ or r0, r6, r0 -/* 8036BAD4 7C 80 03 79 */ or. r0, r4, r0 -/* 8036BAD8 40 82 00 14 */ bne lbl_8036BAEC -/* 8036BADC FC 20 0A 10 */ fabs f1, f1 -/* 8036BAE0 C8 02 D0 80 */ lfd f0, lit_94(r2) -/* 8036BAE4 FC 20 08 24 */ fdiv f1, f0, f1 -/* 8036BAE8 48 00 01 AC */ b lbl_8036BC94 -lbl_8036BAEC: -/* 8036BAEC 2C 03 00 01 */ cmpwi r3, 1 -/* 8036BAF0 40 82 00 08 */ bne lbl_8036BAF8 -/* 8036BAF4 48 00 01 A0 */ b lbl_8036BC94 -lbl_8036BAF8: -/* 8036BAF8 C8 02 D0 88 */ lfd f0, lit_95(r2) -/* 8036BAFC FC 20 08 24 */ fdiv f1, f0, f1 -/* 8036BB00 48 00 01 94 */ b lbl_8036BC94 -lbl_8036BB04: -/* 8036BB04 3C 80 3F E6 */ lis r4, 0x3FE6 /* 0x3FE59428@ha */ -/* 8036BB08 38 04 94 28 */ addi r0, r4, 0x9428 /* 0x3FE59428@l */ -/* 8036BB0C 7C 06 00 00 */ cmpw r6, r0 -/* 8036BB10 41 80 00 40 */ blt lbl_8036BB50 -/* 8036BB14 2C 07 00 00 */ cmpwi r7, 0 -/* 8036BB18 40 80 00 14 */ bge lbl_8036BB2C -/* 8036BB1C C8 01 00 08 */ lfd f0, 8(r1) -/* 8036BB20 FC 40 10 50 */ fneg f2, f2 -/* 8036BB24 FC 00 00 50 */ fneg f0, f0 -/* 8036BB28 D8 01 00 08 */ stfd f0, 8(r1) -lbl_8036BB2C: -/* 8036BB2C C8 02 D0 98 */ lfd f0, lit_97(r2) -/* 8036BB30 C8 62 D0 90 */ lfd f3, lit_96(r2) -/* 8036BB34 C8 21 00 08 */ lfd f1, 8(r1) -/* 8036BB38 FC 00 10 28 */ fsub f0, f0, f2 -/* 8036BB3C C8 42 D0 A0 */ lfd f2, lit_98(r2) -/* 8036BB40 FC 23 08 28 */ fsub f1, f3, f1 -/* 8036BB44 FC 01 00 2A */ fadd f0, f1, f0 -/* 8036BB48 D8 21 00 18 */ stfd f1, 0x18(r1) -/* 8036BB4C D8 01 00 08 */ stfd f0, 8(r1) -lbl_8036BB50: -/* 8036BB50 C8 01 00 08 */ lfd f0, 8(r1) -/* 8036BB54 3C 80 80 3A */ lis r4, T@ha /* 0x803A2588@ha */ -/* 8036BB58 38 A4 25 88 */ addi r5, r4, T@l /* 0x803A2588@l */ -/* 8036BB5C 3C 80 3F E6 */ lis r4, 0x3FE6 /* 0x3FE59428@ha */ -/* 8036BB60 FD A0 00 32 */ fmul f13, f0, f0 -/* 8036BB64 38 04 94 28 */ addi r0, r4, 0x9428 /* 0x3FE59428@l */ -/* 8036BB68 C8 A5 00 60 */ lfd f5, 0x60(r5) -/* 8036BB6C 7C 06 00 00 */ cmpw r6, r0 -/* 8036BB70 C8 85 00 50 */ lfd f4, 0x50(r5) -/* 8036BB74 C9 25 00 58 */ lfd f9, 0x58(r5) -/* 8036BB78 FF ED 03 72 */ fmul f31, f13, f13 -/* 8036BB7C C9 05 00 48 */ lfd f8, 0x48(r5) -/* 8036BB80 C8 65 00 40 */ lfd f3, 0x40(r5) -/* 8036BB84 C9 65 00 38 */ lfd f11, 0x38(r5) -/* 8036BB88 FC 2D 00 32 */ fmul f1, f13, f0 -/* 8036BB8C C8 C5 00 30 */ lfd f6, 0x30(r5) -/* 8036BB90 FC FF 21 7A */ fmadd f7, f31, f5, f4 -/* 8036BB94 C9 45 00 28 */ lfd f10, 0x28(r5) -/* 8036BB98 C8 A5 00 20 */ lfd f5, 0x20(r5) -/* 8036BB9C FD 9F 42 7A */ fmadd f12, f31, f9, f8 -/* 8036BBA0 C9 25 00 18 */ lfd f9, 0x18(r5) -/* 8036BBA4 C8 85 00 10 */ lfd f4, 0x10(r5) -/* 8036BBA8 FC FF 19 FA */ fmadd f7, f31, f7, f3 -/* 8036BBAC C9 05 00 08 */ lfd f8, 8(r5) -/* 8036BBB0 C8 65 00 00 */ lfd f3, 0(r5) -/* 8036BBB4 FD 7F 5B 3A */ fmadd f11, f31, f12, f11 -/* 8036BBB8 D9 A1 00 18 */ stfd f13, 0x18(r1) -/* 8036BBBC FC DF 31 FA */ fmadd f6, f31, f7, f6 -/* 8036BBC0 FC FF 52 FA */ fmadd f7, f31, f11, f10 -/* 8036BBC4 FC BF 29 BA */ fmadd f5, f31, f6, f5 -/* 8036BBC8 FC DF 49 FA */ fmadd f6, f31, f7, f9 -/* 8036BBCC FC 9F 21 7A */ fmadd f4, f31, f5, f4 -/* 8036BBD0 FC BF 41 BA */ fmadd f5, f31, f6, f8 -/* 8036BBD4 FC 8D 01 32 */ fmul f4, f13, f4 -/* 8036BBD8 FC 85 20 2A */ fadd f4, f5, f4 -/* 8036BBDC FC 81 11 3A */ fmadd f4, f1, f4, f2 -/* 8036BBE0 FC CD 11 3A */ fmadd f6, f13, f4, f2 -/* 8036BBE4 FC C3 30 7A */ fmadd f6, f3, f1, f6 -/* 8036BBE8 FC 20 30 2A */ fadd f1, f0, f6 -/* 8036BBEC 41 80 00 60 */ blt lbl_8036BC4C -/* 8036BBF0 3C 80 43 30 */ lis r4, 0x4330 -/* 8036BBF4 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 8036BBF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8036BBFC 54 E0 17 BC */ rlwinm r0, r7, 2, 0x1e, 0x1e -/* 8036BC00 20 00 00 01 */ subfic r0, r0, 1 -/* 8036BC04 C8 A2 D0 B0 */ lfd f5, lit_101(r2) -/* 8036BC08 90 81 00 20 */ stw r4, 0x20(r1) -/* 8036BC0C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8036BC10 FC 41 00 72 */ fmul f2, f1, f1 -/* 8036BC14 C8 62 D0 A8 */ lfd f3, lit_99(r2) -/* 8036BC18 C8 81 00 20 */ lfd f4, 0x20(r1) -/* 8036BC1C 90 01 00 2C */ stw r0, 0x2c(r1) -/* 8036BC20 FC E4 28 28 */ fsub f7, f4, f5 -/* 8036BC24 90 81 00 28 */ stw r4, 0x28(r1) -/* 8036BC28 FC 21 38 2A */ fadd f1, f1, f7 -/* 8036BC2C C8 81 00 28 */ lfd f4, 0x28(r1) -/* 8036BC30 FC 84 28 28 */ fsub f4, f4, f5 -/* 8036BC34 FC 22 08 24 */ fdiv f1, f2, f1 -/* 8036BC38 FC 21 30 28 */ fsub f1, f1, f6 -/* 8036BC3C FC 00 08 28 */ fsub f0, f0, f1 -/* 8036BC40 FC 03 38 3C */ fnmsub f0, f3, f0, f7 -/* 8036BC44 FC 24 00 32 */ fmul f1, f4, f0 -/* 8036BC48 48 00 00 4C */ b lbl_8036BC94 -lbl_8036BC4C: -/* 8036BC4C 2C 03 00 01 */ cmpwi r3, 1 -/* 8036BC50 40 82 00 08 */ bne lbl_8036BC58 -/* 8036BC54 48 00 00 40 */ b lbl_8036BC94 -lbl_8036BC58: -/* 8036BC58 C8 42 D0 88 */ lfd f2, lit_95(r2) -/* 8036BC5C 38 00 00 00 */ li r0, 0 -/* 8036BC60 D8 21 00 18 */ stfd f1, 0x18(r1) -/* 8036BC64 FC 82 08 24 */ fdiv f4, f2, f1 -/* 8036BC68 C8 22 D0 80 */ lfd f1, lit_94(r2) -/* 8036BC6C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8036BC70 C8 41 00 18 */ lfd f2, 0x18(r1) -/* 8036BC74 D8 81 00 10 */ stfd f4, 0x10(r1) -/* 8036BC78 FC 02 00 28 */ fsub f0, f2, f0 -/* 8036BC7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8036BC80 FC 06 00 28 */ fsub f0, f6, f0 -/* 8036BC84 C8 61 00 10 */ lfd f3, 0x10(r1) -/* 8036BC88 FC 23 08 BA */ fmadd f1, f3, f2, f1 -/* 8036BC8C FC 03 08 3A */ fmadd f0, f3, f0, f1 -/* 8036BC90 FC 24 18 3A */ fmadd f1, f4, f0, f3 -lbl_8036BC94: -/* 8036BC94 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */ -/* 8036BC98 CB E1 00 30 */ lfd f31, 0x30(r1) -/* 8036BC9C 38 21 00 40 */ addi r1, r1, 0x40 -/* 8036BCA0 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/s_atan/atan.s b/asm/MSL_C/Math/Double_precision/s_atan/atan.s deleted file mode 100644 index 8dd1b7c8ccc..00000000000 --- a/asm/MSL_C/Math/Double_precision/s_atan/atan.s +++ /dev/null @@ -1,147 +0,0 @@ -lbl_8036BCA4: -/* 8036BCA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8036BCA8 3C 60 80 3A */ lis r3, atanhi@ha /* 0x803A25F0@ha */ -/* 8036BCAC 3C 00 44 10 */ lis r0, 0x4410 -/* 8036BCB0 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036BCB4 38 A3 25 F0 */ addi r5, r3, atanhi@l /* 0x803A25F0@l */ -/* 8036BCB8 80 C1 00 08 */ lwz r6, 8(r1) -/* 8036BCBC 54 C4 00 7E */ clrlwi r4, r6, 1 -/* 8036BCC0 7C 04 00 00 */ cmpw r4, r0 -/* 8036BCC4 41 80 00 70 */ blt lbl_8036BD34 -/* 8036BCC8 3C 00 7F F0 */ lis r0, 0x7ff0 -/* 8036BCCC 7C 04 00 00 */ cmpw r4, r0 -/* 8036BCD0 41 81 00 1C */ bgt lbl_8036BCEC -/* 8036BCD4 3C 04 80 10 */ addis r0, r4, 0x8010 -/* 8036BCD8 28 00 00 00 */ cmplwi r0, 0 -/* 8036BCDC 40 82 00 1C */ bne lbl_8036BCF8 -/* 8036BCE0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8036BCE4 2C 00 00 00 */ cmpwi r0, 0 -/* 8036BCE8 41 82 00 10 */ beq lbl_8036BCF8 -lbl_8036BCEC: -/* 8036BCEC C8 01 00 08 */ lfd f0, 8(r1) -/* 8036BCF0 FC 20 00 2A */ fadd f1, f0, f0 -/* 8036BCF4 48 00 01 C0 */ b lbl_8036BEB4 -lbl_8036BCF8: -/* 8036BCF8 2C 06 00 00 */ cmpwi r6, 0 -/* 8036BCFC 40 81 00 1C */ ble lbl_8036BD18 -/* 8036BD00 38 85 00 00 */ addi r4, r5, 0 -/* 8036BD04 38 65 00 20 */ addi r3, r5, 0x20 -/* 8036BD08 C8 24 00 18 */ lfd f1, 0x18(r4) -/* 8036BD0C C8 03 00 18 */ lfd f0, 0x18(r3) -/* 8036BD10 FC 21 00 2A */ fadd f1, f1, f0 -/* 8036BD14 48 00 01 A0 */ b lbl_8036BEB4 -lbl_8036BD18: -/* 8036BD18 38 85 00 00 */ addi r4, r5, 0 -/* 8036BD1C 38 65 00 20 */ addi r3, r5, 0x20 -/* 8036BD20 C8 24 00 18 */ lfd f1, 0x18(r4) -/* 8036BD24 C8 03 00 18 */ lfd f0, 0x18(r3) -/* 8036BD28 FC 20 08 50 */ fneg f1, f1 -/* 8036BD2C FC 21 00 28 */ fsub f1, f1, f0 -/* 8036BD30 48 00 01 84 */ b lbl_8036BEB4 -lbl_8036BD34: -/* 8036BD34 3C 00 3F DC */ lis r0, 0x3fdc -/* 8036BD38 7C 04 00 00 */ cmpw r4, r0 -/* 8036BD3C 40 80 00 30 */ bge lbl_8036BD6C -/* 8036BD40 3C 00 3E 20 */ lis r0, 0x3e20 -/* 8036BD44 7C 04 00 00 */ cmpw r4, r0 -/* 8036BD48 40 80 00 1C */ bge lbl_8036BD64 -/* 8036BD4C C8 42 D0 B8 */ lfd f2, lit_115(r2) -/* 8036BD50 C8 02 D0 C0 */ lfd f0, lit_116(r2) -/* 8036BD54 FC 42 08 2A */ fadd f2, f2, f1 -/* 8036BD58 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8036BD5C 40 81 00 08 */ ble lbl_8036BD64 -/* 8036BD60 48 00 01 54 */ b lbl_8036BEB4 -lbl_8036BD64: -/* 8036BD64 38 00 FF FF */ li r0, -1 -/* 8036BD68 48 00 00 A0 */ b lbl_8036BE08 -lbl_8036BD6C: -/* 8036BD6C FC 60 0A 10 */ fabs f3, f1 -/* 8036BD70 3C 00 3F F3 */ lis r0, 0x3ff3 -/* 8036BD74 7C 04 00 00 */ cmpw r4, r0 -/* 8036BD78 D8 61 00 08 */ stfd f3, 8(r1) -/* 8036BD7C 40 80 00 4C */ bge lbl_8036BDC8 -/* 8036BD80 3C 00 3F E6 */ lis r0, 0x3fe6 -/* 8036BD84 7C 04 00 00 */ cmpw r4, r0 -/* 8036BD88 40 80 00 24 */ bge lbl_8036BDAC -/* 8036BD8C C8 42 D0 C8 */ lfd f2, lit_117(r2) -/* 8036BD90 38 00 00 00 */ li r0, 0 -/* 8036BD94 C8 22 D0 C0 */ lfd f1, lit_116(r2) -/* 8036BD98 FC 02 18 2A */ fadd f0, f2, f3 -/* 8036BD9C FC 22 08 F8 */ fmsub f1, f2, f3, f1 -/* 8036BDA0 FC 01 00 24 */ fdiv f0, f1, f0 -/* 8036BDA4 D8 01 00 08 */ stfd f0, 8(r1) -/* 8036BDA8 48 00 00 60 */ b lbl_8036BE08 -lbl_8036BDAC: -/* 8036BDAC C8 02 D0 C0 */ lfd f0, lit_116(r2) -/* 8036BDB0 38 00 00 01 */ li r0, 1 -/* 8036BDB4 FC 23 00 28 */ fsub f1, f3, f0 -/* 8036BDB8 FC 00 18 2A */ fadd f0, f0, f3 -/* 8036BDBC FC 01 00 24 */ fdiv f0, f1, f0 -/* 8036BDC0 D8 01 00 08 */ stfd f0, 8(r1) -/* 8036BDC4 48 00 00 44 */ b lbl_8036BE08 -lbl_8036BDC8: -/* 8036BDC8 3C 60 40 04 */ lis r3, 0x4004 /* 0x40038000@ha */ -/* 8036BDCC 38 03 80 00 */ addi r0, r3, 0x8000 /* 0x40038000@l */ -/* 8036BDD0 7C 04 00 00 */ cmpw r4, r0 -/* 8036BDD4 40 80 00 24 */ bge lbl_8036BDF8 -/* 8036BDD8 C8 42 D0 D0 */ lfd f2, lit_118(r2) -/* 8036BDDC 38 00 00 02 */ li r0, 2 -/* 8036BDE0 C8 02 D0 C0 */ lfd f0, lit_116(r2) -/* 8036BDE4 FC 23 10 28 */ fsub f1, f3, f2 -/* 8036BDE8 FC 02 00 FA */ fmadd f0, f2, f3, f0 -/* 8036BDEC FC 01 00 24 */ fdiv f0, f1, f0 -/* 8036BDF0 D8 01 00 08 */ stfd f0, 8(r1) -/* 8036BDF4 48 00 00 14 */ b lbl_8036BE08 -lbl_8036BDF8: -/* 8036BDF8 C8 02 D0 D8 */ lfd f0, lit_119(r2) -/* 8036BDFC 38 00 00 03 */ li r0, 3 -/* 8036BE00 FC 00 18 24 */ fdiv f0, f0, f3 -/* 8036BE04 D8 01 00 08 */ stfd f0, 8(r1) -lbl_8036BE08: -/* 8036BE08 C9 21 00 08 */ lfd f9, 8(r1) -/* 8036BE0C 38 65 00 40 */ addi r3, r5, 0x40 -/* 8036BE10 C8 83 00 50 */ lfd f4, 0x50(r3) -/* 8036BE14 2C 00 00 00 */ cmpwi r0, 0 -/* 8036BE18 FD 69 02 72 */ fmul f11, f9, f9 -/* 8036BE1C C8 23 00 40 */ lfd f1, 0x40(r3) -/* 8036BE20 C8 E3 00 30 */ lfd f7, 0x30(r3) -/* 8036BE24 C8 63 00 48 */ lfd f3, 0x48(r3) -/* 8036BE28 C8 03 00 38 */ lfd f0, 0x38(r3) -/* 8036BE2C FD 4B 02 F2 */ fmul f10, f11, f11 -/* 8036BE30 C8 C3 00 20 */ lfd f6, 0x20(r3) -/* 8036BE34 C8 43 00 28 */ lfd f2, 0x28(r3) -/* 8036BE38 C8 A3 00 10 */ lfd f5, 0x10(r3) -/* 8036BE3C FD 0A 09 3A */ fmadd f8, f10, f4, f1 -/* 8036BE40 C8 23 00 18 */ lfd f1, 0x18(r3) -/* 8036BE44 C8 85 00 40 */ lfd f4, 0x40(r5) -/* 8036BE48 FC 6A 00 FA */ fmadd f3, f10, f3, f0 -/* 8036BE4C C8 03 00 08 */ lfd f0, 8(r3) -/* 8036BE50 FC EA 3A 3A */ fmadd f7, f10, f8, f7 -/* 8036BE54 FC 4A 10 FA */ fmadd f2, f10, f3, f2 -/* 8036BE58 FC 6A 31 FA */ fmadd f3, f10, f7, f6 -/* 8036BE5C FC 2A 08 BA */ fmadd f1, f10, f2, f1 -/* 8036BE60 FC 4A 28 FA */ fmadd f2, f10, f3, f5 -/* 8036BE64 FC 0A 00 7A */ fmadd f0, f10, f1, f0 -/* 8036BE68 FC 2A 20 BA */ fmadd f1, f10, f2, f4 -/* 8036BE6C FC 4A 00 32 */ fmul f2, f10, f0 -/* 8036BE70 FC 0B 00 72 */ fmul f0, f11, f1 -/* 8036BE74 40 80 00 10 */ bge lbl_8036BE84 -/* 8036BE78 FC 00 10 2A */ fadd f0, f0, f2 -/* 8036BE7C FC 29 48 3C */ fnmsub f1, f9, f0, f9 -/* 8036BE80 48 00 00 34 */ b lbl_8036BEB4 -lbl_8036BE84: -/* 8036BE84 54 00 18 38 */ slwi r0, r0, 3 -/* 8036BE88 38 65 00 20 */ addi r3, r5, 0x20 -/* 8036BE8C FC 20 10 2A */ fadd f1, f0, f2 -/* 8036BE90 7C 03 04 AE */ lfdx f0, r3, r0 -/* 8036BE94 38 65 00 00 */ addi r3, r5, 0 -/* 8036BE98 2C 06 00 00 */ cmpwi r6, 0 -/* 8036BE9C 7C 43 04 AE */ lfdx f2, r3, r0 -/* 8036BEA0 FC 09 00 78 */ fmsub f0, f9, f1, f0 -/* 8036BEA4 FC 00 48 28 */ fsub f0, f0, f9 -/* 8036BEA8 FC 22 00 28 */ fsub f1, f2, f0 -/* 8036BEAC 40 80 00 08 */ bge lbl_8036BEB4 -/* 8036BEB0 FC 20 08 50 */ fneg f1, f1 -lbl_8036BEB4: -/* 8036BEB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8036BEB8 4E 80 00 20 */ blr diff --git a/asm/MSL_C/Math/Double_precision/s_ldexp/ldexp.s b/asm/MSL_C/Math/Double_precision/s_ldexp/ldexp.s deleted file mode 100644 index 879479cc564..00000000000 --- a/asm/MSL_C/Math/Double_precision/s_ldexp/ldexp.s +++ /dev/null @@ -1,131 +0,0 @@ -lbl_8036C2D0: -/* 8036C2D0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036C2D4 7C 08 02 A6 */ mflr r0 -/* 8036C2D8 D8 21 00 10 */ stfd f1, 0x10(r1) -/* 8036C2DC 80 A1 00 10 */ lwz r5, 0x10(r1) -/* 8036C2E0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8036C2E4 3C 00 7F F0 */ lis r0, 0x7ff0 -/* 8036C2E8 54 A4 00 56 */ rlwinm r4, r5, 0, 1, 0xb -/* 8036C2EC 7C 04 00 00 */ cmpw r4, r0 -/* 8036C2F0 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036C2F4 41 82 00 14 */ beq lbl_8036C308 -/* 8036C2F8 40 80 00 58 */ bge lbl_8036C350 -/* 8036C2FC 2C 04 00 00 */ cmpwi r4, 0 -/* 8036C300 41 82 00 2C */ beq lbl_8036C32C -/* 8036C304 48 00 00 4C */ b lbl_8036C350 -lbl_8036C308: -/* 8036C308 54 A0 03 3F */ clrlwi. r0, r5, 0xc -/* 8036C30C 40 82 00 10 */ bne lbl_8036C31C -/* 8036C310 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8036C314 2C 00 00 00 */ cmpwi r0, 0 -/* 8036C318 41 82 00 0C */ beq lbl_8036C324 -lbl_8036C31C: -/* 8036C31C 38 00 00 01 */ li r0, 1 -/* 8036C320 48 00 00 34 */ b lbl_8036C354 -lbl_8036C324: -/* 8036C324 38 00 00 02 */ li r0, 2 -/* 8036C328 48 00 00 2C */ b lbl_8036C354 -lbl_8036C32C: -/* 8036C32C 54 A0 03 3F */ clrlwi. r0, r5, 0xc -/* 8036C330 40 82 00 10 */ bne lbl_8036C340 -/* 8036C334 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8036C338 2C 00 00 00 */ cmpwi r0, 0 -/* 8036C33C 41 82 00 0C */ beq lbl_8036C348 -lbl_8036C340: -/* 8036C340 38 00 00 05 */ li r0, 5 -/* 8036C344 48 00 00 10 */ b lbl_8036C354 -lbl_8036C348: -/* 8036C348 38 00 00 03 */ li r0, 3 -/* 8036C34C 48 00 00 08 */ b lbl_8036C354 -lbl_8036C350: -/* 8036C350 38 00 00 04 */ li r0, 4 -lbl_8036C354: -/* 8036C354 2C 00 00 02 */ cmpwi r0, 2 -/* 8036C358 40 81 01 2C */ ble lbl_8036C484 -/* 8036C35C C8 02 D1 10 */ lfd f0, lit_91(r2) -/* 8036C360 FC 00 08 00 */ fcmpu cr0, f0, f1 -/* 8036C364 40 82 00 08 */ bne lbl_8036C36C -/* 8036C368 48 00 01 1C */ b lbl_8036C484 -lbl_8036C36C: -/* 8036C36C 80 A1 00 08 */ lwz r5, 8(r1) -/* 8036C370 80 C1 00 0C */ lwz r6, 0xc(r1) -/* 8036C374 54 A4 65 7F */ rlwinm. r4, r5, 0xc, 0x15, 0x1f -/* 8036C378 40 82 00 4C */ bne lbl_8036C3C4 -/* 8036C37C 54 A0 00 7E */ clrlwi r0, r5, 1 -/* 8036C380 7C C0 03 79 */ or. r0, r6, r0 -/* 8036C384 40 82 00 08 */ bne lbl_8036C38C -/* 8036C388 48 00 00 FC */ b lbl_8036C484 -lbl_8036C38C: -/* 8036C38C C8 21 00 08 */ lfd f1, 8(r1) -/* 8036C390 3C 80 FF FF */ lis r4, 0xFFFF /* 0xFFFF3CB0@ha */ -/* 8036C394 C8 02 D1 18 */ lfd f0, lit_92(r2) -/* 8036C398 38 04 3C B0 */ addi r0, r4, 0x3CB0 /* 0xFFFF3CB0@l */ -/* 8036C39C 7C 03 00 00 */ cmpw r3, r0 -/* 8036C3A0 FC 21 00 32 */ fmul f1, f1, f0 -/* 8036C3A4 D8 21 00 08 */ stfd f1, 8(r1) -/* 8036C3A8 80 A1 00 08 */ lwz r5, 8(r1) -/* 8036C3AC 54 A4 65 7E */ rlwinm r4, r5, 0xc, 0x15, 0x1f -/* 8036C3B0 38 84 FF CA */ addi r4, r4, -54 -/* 8036C3B4 40 80 00 10 */ bge lbl_8036C3C4 -/* 8036C3B8 C8 02 D1 20 */ lfd f0, lit_93(r2) -/* 8036C3BC FC 20 00 72 */ fmul f1, f0, f1 -/* 8036C3C0 48 00 00 C4 */ b lbl_8036C484 -lbl_8036C3C4: -/* 8036C3C4 2C 04 07 FF */ cmpwi r4, 0x7ff -/* 8036C3C8 40 82 00 10 */ bne lbl_8036C3D8 -/* 8036C3CC C8 01 00 08 */ lfd f0, 8(r1) -/* 8036C3D0 FC 20 00 2A */ fadd f1, f0, f0 -/* 8036C3D4 48 00 00 B0 */ b lbl_8036C484 -lbl_8036C3D8: -/* 8036C3D8 7C 84 1A 14 */ add r4, r4, r3 -/* 8036C3DC 2C 04 07 FE */ cmpwi r4, 0x7fe -/* 8036C3E0 40 81 00 1C */ ble lbl_8036C3FC -/* 8036C3E4 C8 22 D1 28 */ lfd f1, lit_94(r2) -/* 8036C3E8 C8 41 00 08 */ lfd f2, 8(r1) -/* 8036C3EC 4B FF FC 15 */ bl copysign -/* 8036C3F0 C8 02 D1 28 */ lfd f0, lit_94(r2) -/* 8036C3F4 FC 20 00 72 */ fmul f1, f0, f1 -/* 8036C3F8 48 00 00 8C */ b lbl_8036C484 -lbl_8036C3FC: -/* 8036C3FC 2C 04 00 00 */ cmpwi r4, 0 -/* 8036C400 40 81 00 1C */ ble lbl_8036C41C -/* 8036C404 54 A3 03 00 */ rlwinm r3, r5, 0, 0xc, 0 -/* 8036C408 54 80 A0 16 */ slwi r0, r4, 0x14 -/* 8036C40C 7C 60 03 78 */ or r0, r3, r0 -/* 8036C410 90 01 00 08 */ stw r0, 8(r1) -/* 8036C414 C8 21 00 08 */ lfd f1, 8(r1) -/* 8036C418 48 00 00 6C */ b lbl_8036C484 -lbl_8036C41C: -/* 8036C41C 2C 04 FF CA */ cmpwi r4, -54 -/* 8036C420 41 81 00 44 */ bgt lbl_8036C464 -/* 8036C424 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000C350@ha */ -/* 8036C428 38 04 C3 50 */ addi r0, r4, 0xC350 /* 0x0000C350@l */ -/* 8036C42C 7C 03 00 00 */ cmpw r3, r0 -/* 8036C430 40 81 00 1C */ ble lbl_8036C44C -/* 8036C434 C8 22 D1 28 */ lfd f1, lit_94(r2) -/* 8036C438 C8 41 00 08 */ lfd f2, 8(r1) -/* 8036C43C 4B FF FB C5 */ bl copysign -/* 8036C440 C8 02 D1 28 */ lfd f0, lit_94(r2) -/* 8036C444 FC 20 00 72 */ fmul f1, f0, f1 -/* 8036C448 48 00 00 3C */ b lbl_8036C484 -lbl_8036C44C: -/* 8036C44C C8 22 D1 20 */ lfd f1, lit_93(r2) -/* 8036C450 C8 41 00 08 */ lfd f2, 8(r1) -/* 8036C454 4B FF FB AD */ bl copysign -/* 8036C458 C8 02 D1 20 */ lfd f0, lit_93(r2) -/* 8036C45C FC 20 00 72 */ fmul f1, f0, f1 -/* 8036C460 48 00 00 24 */ b lbl_8036C484 -lbl_8036C464: -/* 8036C464 38 04 00 36 */ addi r0, r4, 0x36 -/* 8036C468 54 A3 03 00 */ rlwinm r3, r5, 0, 0xc, 0 -/* 8036C46C 54 00 A0 16 */ slwi r0, r0, 0x14 -/* 8036C470 C8 22 D1 30 */ lfd f1, lit_95(r2) -/* 8036C474 7C 60 03 78 */ or r0, r3, r0 -/* 8036C478 90 01 00 08 */ stw r0, 8(r1) -/* 8036C47C C8 01 00 08 */ lfd f0, 8(r1) -/* 8036C480 FC 21 00 32 */ fmul f1, f1, f0 -lbl_8036C484: -/* 8036C484 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036C488 7C 08 03 A6 */ mtlr r0 -/* 8036C48C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036C490 4E 80 00 20 */ blr diff --git a/asm/Runtime.PPCEABI.H/CPlusLibPPC/__copy.s b/asm/Runtime.PPCEABI.H/CPlusLibPPC/__copy.s deleted file mode 100644 index 1bec8150c05..00000000000 --- a/asm/Runtime.PPCEABI.H/CPlusLibPPC/__copy.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80361C3C: -/* 80361C3C 28 03 00 00 */ cmplwi r3, 0 -/* 80361C40 4D 82 00 20 */ beqlr -/* 80361C44 28 05 00 00 */ cmplwi r5, 0 -/* 80361C48 4D 82 00 20 */ beqlr -/* 80361C4C 7C 66 1B 78 */ mr r6, r3 -lbl_80361C50: -/* 80361C50 88 04 00 00 */ lbz r0, 0(r4) -/* 80361C54 34 A5 FF FF */ addic. r5, r5, -1 -/* 80361C58 38 84 00 01 */ addi r4, r4, 1 -/* 80361C5C 98 06 00 00 */ stb r0, 0(r6) -/* 80361C60 38 C6 00 01 */ addi r6, r6, 1 -/* 80361C64 40 82 FF EC */ bne lbl_80361C50 -/* 80361C68 4E 80 00 20 */ blr diff --git a/asm/Runtime.PPCEABI.H/GCN_mem_alloc/__sys_free.s b/asm/Runtime.PPCEABI.H/GCN_mem_alloc/__sys_free.s deleted file mode 100644 index fbd7967735b..00000000000 --- a/asm/Runtime.PPCEABI.H/GCN_mem_alloc/__sys_free.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_80362914: -/* 80362914 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80362918 7C 08 02 A6 */ mflr r0 -/* 8036291C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80362920 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80362924 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80362928 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8036292C 7C 7D 1B 78 */ mr r29, r3 -/* 80362930 80 0D 84 10 */ lwz r0, __OSCurrHeap(r13) -/* 80362934 2C 00 FF FF */ cmpwi r0, -1 -/* 80362938 40 82 00 6C */ bne lbl_803629A4 -/* 8036293C 3C 60 80 3A */ lis r3, lit_55@ha /* 0x803A21A8@ha */ -/* 80362940 38 63 21 A8 */ addi r3, r3, lit_55@l /* 0x803A21A8@l */ -/* 80362944 4C C6 31 82 */ crclr 6 -/* 80362948 4B CA 41 75 */ bl OSReport -/* 8036294C 3C 60 80 3A */ lis r3, lit_56@ha /* 0x803A21E0@ha */ -/* 80362950 38 63 21 E0 */ addi r3, r3, lit_56@l /* 0x803A21E0@l */ -/* 80362954 4C C6 31 82 */ crclr 6 -/* 80362958 4B CA 41 65 */ bl OSReport -/* 8036295C 4B FD 89 39 */ bl OSGetArenaLo -/* 80362960 7C 7F 1B 78 */ mr r31, r3 -/* 80362964 4B FD 89 29 */ bl OSGetArenaHi -/* 80362968 7C 7E 1B 78 */ mr r30, r3 -/* 8036296C 7F E3 FB 78 */ mr r3, r31 -/* 80362970 38 A0 00 01 */ li r5, 1 -/* 80362974 7F C4 F3 78 */ mr r4, r30 -/* 80362978 4B FD 88 39 */ bl OSInitAlloc -/* 8036297C 7C 7F 1B 78 */ mr r31, r3 -/* 80362980 4B FD 89 25 */ bl OSSetArenaLo -/* 80362984 38 1F 00 1F */ addi r0, r31, 0x1f -/* 80362988 57 DE 00 34 */ rlwinm r30, r30, 0, 0, 0x1a -/* 8036298C 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a -/* 80362990 7F C4 F3 78 */ mr r4, r30 -/* 80362994 4B FD 88 8D */ bl OSCreateHeap -/* 80362998 4B FD 88 09 */ bl OSSetCurrentHeap -/* 8036299C 7F C3 F3 78 */ mr r3, r30 -/* 803629A0 4B FD 89 05 */ bl OSSetArenaLo -lbl_803629A4: -/* 803629A4 80 6D 84 10 */ lwz r3, __OSCurrHeap(r13) -/* 803629A8 7F A4 EB 78 */ mr r4, r29 -/* 803629AC 4B FD 87 79 */ bl OSFreeToHeap -/* 803629B0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803629B4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803629B8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803629BC 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 803629C0 7C 08 03 A6 */ mtlr r0 -/* 803629C4 38 21 00 20 */ addi r1, r1, 0x20 -/* 803629C8 4E 80 00 20 */ blr diff --git a/asm/Runtime.PPCEABI.H/__va_arg/__va_arg.s b/asm/Runtime.PPCEABI.H/__va_arg/__va_arg.s deleted file mode 100644 index ad552a5d9fa..00000000000 --- a/asm/Runtime.PPCEABI.H/__va_arg/__va_arg.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_80361B14: -/* 80361B14 88 E3 00 00 */ lbz r7, 0(r3) -/* 80361B18 2C 04 00 03 */ cmpwi r4, 3 -/* 80361B1C 7C 66 1B 78 */ mr r6, r3 -/* 80361B20 38 00 00 08 */ li r0, 8 -/* 80361B24 39 00 00 04 */ li r8, 4 -/* 80361B28 7C E7 07 74 */ extsb r7, r7 -/* 80361B2C 39 20 00 01 */ li r9, 1 -/* 80361B30 38 A0 00 00 */ li r5, 0 -/* 80361B34 39 40 00 00 */ li r10, 0 -/* 80361B38 39 60 00 04 */ li r11, 4 -/* 80361B3C 40 82 00 1C */ bne lbl_80361B58 -/* 80361B40 88 E3 00 01 */ lbz r7, 1(r3) -/* 80361B44 38 C3 00 01 */ addi r6, r3, 1 -/* 80361B48 39 00 00 08 */ li r8, 8 -/* 80361B4C 39 40 00 20 */ li r10, 0x20 -/* 80361B50 7C E7 07 74 */ extsb r7, r7 -/* 80361B54 39 60 00 08 */ li r11, 8 -lbl_80361B58: -/* 80361B58 2C 04 00 02 */ cmpwi r4, 2 -/* 80361B5C 40 82 00 1C */ bne lbl_80361B78 -/* 80361B60 54 E0 07 FF */ clrlwi. r0, r7, 0x1f -/* 80361B64 39 00 00 08 */ li r8, 8 -/* 80361B68 38 00 00 07 */ li r0, 7 -/* 80361B6C 41 82 00 08 */ beq lbl_80361B74 -/* 80361B70 38 A0 00 01 */ li r5, 1 -lbl_80361B74: -/* 80361B74 39 20 00 02 */ li r9, 2 -lbl_80361B78: -/* 80361B78 7C 07 00 00 */ cmpw r7, r0 -/* 80361B7C 40 80 00 24 */ bge lbl_80361BA0 -/* 80361B80 7C E7 2A 14 */ add r7, r7, r5 -/* 80361B84 80 A3 00 08 */ lwz r5, 8(r3) -/* 80361B88 7C 67 59 D6 */ mullw r3, r7, r11 -/* 80361B8C 7C 07 4A 14 */ add r0, r7, r9 -/* 80361B90 98 06 00 00 */ stb r0, 0(r6) -/* 80361B94 7C CA 1A 14 */ add r6, r10, r3 -/* 80361B98 7C C5 32 14 */ add r6, r5, r6 -/* 80361B9C 48 00 00 2C */ b lbl_80361BC8 -lbl_80361BA0: -/* 80361BA0 38 A0 00 08 */ li r5, 8 -/* 80361BA4 38 08 FF FF */ addi r0, r8, -1 -/* 80361BA8 98 A6 00 00 */ stb r5, 0(r6) -/* 80361BAC 7C 06 00 F8 */ nor r6, r0, r0 -/* 80361BB0 80 03 00 04 */ lwz r0, 4(r3) -/* 80361BB4 7C A8 02 14 */ add r5, r8, r0 -/* 80361BB8 38 05 FF FF */ addi r0, r5, -1 -/* 80361BBC 7C C6 00 38 */ and r6, r6, r0 -/* 80361BC0 7C 06 42 14 */ add r0, r6, r8 -/* 80361BC4 90 03 00 04 */ stw r0, 4(r3) -lbl_80361BC8: -/* 80361BC8 2C 04 00 00 */ cmpwi r4, 0 -/* 80361BCC 40 82 00 08 */ bne lbl_80361BD4 -/* 80361BD0 80 C6 00 00 */ lwz r6, 0(r6) -lbl_80361BD4: -/* 80361BD4 7C C3 33 78 */ mr r3, r6 -/* 80361BD8 4E 80 00 20 */ blr diff --git a/asm/Runtime.PPCEABI.H/ptmf/__ptmf_cmpr.s b/asm/Runtime.PPCEABI.H/ptmf/__ptmf_cmpr.s deleted file mode 100644 index 9bc0aaccbac..00000000000 --- a/asm/Runtime.PPCEABI.H/ptmf/__ptmf_cmpr.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80362048: -/* 80362048 80 A3 00 00 */ lwz r5, 0(r3) -/* 8036204C 80 C4 00 00 */ lwz r6, 0(r4) -/* 80362050 80 E3 00 04 */ lwz r7, 4(r3) -/* 80362054 81 04 00 04 */ lwz r8, 4(r4) -/* 80362058 81 23 00 08 */ lwz r9, 8(r3) -/* 8036205C 81 44 00 08 */ lwz r10, 8(r4) -/* 80362060 38 60 00 01 */ li r3, 1 -/* 80362064 7C 05 30 00 */ cmpw r5, r6 -/* 80362068 7F 07 40 00 */ cmpw cr6, r7, r8 -/* 8036206C 7F 89 50 00 */ cmpw cr7, r9, r10 -/* 80362070 4C 82 00 20 */ bnelr -/* 80362074 4C 9A 00 20 */ bnelr cr6 -/* 80362078 4C 9E 00 20 */ bnelr cr7 -/* 8036207C 38 60 00 00 */ li r3, 0 -/* 80362080 4E 80 00 20 */ blr diff --git a/asm/Runtime.PPCEABI.H/ptmf/__ptmf_scall.s b/asm/Runtime.PPCEABI.H/ptmf/__ptmf_scall.s deleted file mode 100644 index 8794d3979ff..00000000000 --- a/asm/Runtime.PPCEABI.H/ptmf/__ptmf_scall.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80362084: -/* 80362084 80 0C 00 00 */ lwz r0, 0(r12) -/* 80362088 81 6C 00 04 */ lwz r11, 4(r12) -/* 8036208C 81 8C 00 08 */ lwz r12, 8(r12) -/* 80362090 7C 63 02 14 */ add r3, r3, r0 -/* 80362094 2C 0B 00 00 */ cmpwi r11, 0 -/* 80362098 41 80 00 0C */ blt lbl_803620A4 -/* 8036209C 7D 83 60 2E */ lwzx r12, r3, r12 -/* 803620A0 7D 8C 58 2E */ lwzx r12, r12, r11 -lbl_803620A4: -/* 803620A4 7D 89 03 A6 */ mtctr r12 -/* 803620A8 4E 80 04 20 */ bctr diff --git a/asm/Runtime.PPCEABI.H/ptmf/__ptmf_test.s b/asm/Runtime.PPCEABI.H/ptmf/__ptmf_test.s deleted file mode 100644 index f97fb342421..00000000000 --- a/asm/Runtime.PPCEABI.H/ptmf/__ptmf_test.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80362018: -/* 80362018 80 A3 00 00 */ lwz r5, 0(r3) -/* 8036201C 80 C3 00 04 */ lwz r6, 4(r3) -/* 80362020 80 E3 00 08 */ lwz r7, 8(r3) -/* 80362024 38 60 00 01 */ li r3, 1 -/* 80362028 2C 05 00 00 */ cmpwi r5, 0 -/* 8036202C 2F 06 00 00 */ cmpwi cr6, r6, 0 -/* 80362030 2F 87 00 00 */ cmpwi cr7, r7, 0 -/* 80362034 4C 82 00 20 */ bnelr -/* 80362038 4C 9A 00 20 */ bnelr cr6 -/* 8036203C 4C 9E 00 20 */ bnelr cr7 -/* 80362040 38 60 00 00 */ li r3, 0 -/* 80362044 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch/TRKDispatchMessage.s b/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch/TRKDispatchMessage.s deleted file mode 100644 index e8c7e083e63..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch/TRKDispatchMessage.s +++ /dev/null @@ -1,94 +0,0 @@ -lbl_8036DB9C: -/* 8036DB9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8036DBA0 7C 08 02 A6 */ mflr r0 -/* 8036DBA4 38 80 00 00 */ li r4, 0 -/* 8036DBA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8036DBAC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8036DBB0 3B E0 05 00 */ li r31, 0x500 -/* 8036DBB4 93 C1 00 08 */ stw r30, 8(r1) -/* 8036DBB8 7C 7E 1B 78 */ mr r30, r3 -/* 8036DBBC 4B FF FA 61 */ bl TRKSetBufferPosition -/* 8036DBC0 3C 60 80 3A */ lis r3, lit_126@ha /* 0x803A2890@ha */ -/* 8036DBC4 88 BE 00 14 */ lbz r5, 0x14(r30) -/* 8036DBC8 38 83 28 90 */ addi r4, r3, lit_126@l /* 0x803A2890@l */ -/* 8036DBCC 38 60 00 01 */ li r3, 1 -/* 8036DBD0 4C C6 31 82 */ crclr 6 -/* 8036DBD4 48 00 50 81 */ bl MWTRACE -/* 8036DBD8 88 1E 00 14 */ lbz r0, 0x14(r30) -/* 8036DBDC 28 00 00 1A */ cmplwi r0, 0x1a -/* 8036DBE0 41 81 00 F8 */ bgt lbl_8036DCD8 -/* 8036DBE4 3C 60 80 3D */ lis r3, lit_128@ha /* 0x803D3190@ha */ -/* 8036DBE8 54 00 10 3A */ slwi r0, r0, 2 -/* 8036DBEC 38 63 31 90 */ addi r3, r3, lit_128@l /* 0x803D3190@l */ -/* 8036DBF0 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8036DBF4 7C 09 03 A6 */ mtctr r0 -/* 8036DBF8 4E 80 04 20 */ bctr -/* 8036DBFC 7F C3 F3 78 */ mr r3, r30 -/* 8036DC00 48 00 10 5D */ bl TRKDoConnect -/* 8036DC04 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC08 48 00 00 D0 */ b lbl_8036DCD8 -/* 8036DC0C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC10 48 00 0F D5 */ bl TRKDoDisconnect -/* 8036DC14 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC18 48 00 00 C0 */ b lbl_8036DCD8 -/* 8036DC1C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC20 48 00 0F 6D */ bl TRKDoReset -/* 8036DC24 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC28 48 00 00 B0 */ b lbl_8036DCD8 -/* 8036DC2C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC30 48 00 0F 05 */ bl TRKDoOverride -/* 8036DC34 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC38 48 00 00 A0 */ b lbl_8036DCD8 -/* 8036DC3C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC40 48 00 0E ED */ bl TRKDoVersions -/* 8036DC44 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC48 48 00 00 90 */ b lbl_8036DCD8 -/* 8036DC4C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC50 48 00 0E D5 */ bl TRKDoSupportMask -/* 8036DC54 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC58 48 00 00 80 */ b lbl_8036DCD8 -/* 8036DC5C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC60 48 00 0C 81 */ bl TRKDoReadMemory -/* 8036DC64 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC68 48 00 00 70 */ b lbl_8036DCD8 -/* 8036DC6C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC70 48 00 0A 35 */ bl TRKDoWriteMemory -/* 8036DC74 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC78 48 00 00 60 */ b lbl_8036DCD8 -/* 8036DC7C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC80 48 00 07 45 */ bl TRKDoReadRegisters -/* 8036DC84 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC88 48 00 00 50 */ b lbl_8036DCD8 -/* 8036DC8C 7F C3 F3 78 */ mr r3, r30 -/* 8036DC90 48 00 04 A5 */ bl TRKDoWriteRegisters -/* 8036DC94 7C 7F 1B 78 */ mr r31, r3 -/* 8036DC98 48 00 00 40 */ b lbl_8036DCD8 -/* 8036DC9C 7F C3 F3 78 */ mr r3, r30 -/* 8036DCA0 48 00 03 E5 */ bl TRKDoContinue -/* 8036DCA4 7C 7F 1B 78 */ mr r31, r3 -/* 8036DCA8 48 00 00 30 */ b lbl_8036DCD8 -/* 8036DCAC 7F C3 F3 78 */ mr r3, r30 -/* 8036DCB0 48 00 01 B5 */ bl TRKDoStep -/* 8036DCB4 7C 7F 1B 78 */ mr r31, r3 -/* 8036DCB8 48 00 00 20 */ b lbl_8036DCD8 -/* 8036DCBC 7F C3 F3 78 */ mr r3, r30 -/* 8036DCC0 48 00 00 FD */ bl TRKDoStop -/* 8036DCC4 7C 7F 1B 78 */ mr r31, r3 -/* 8036DCC8 48 00 00 10 */ b lbl_8036DCD8 -/* 8036DCCC 7F C3 F3 78 */ mr r3, r30 -/* 8036DCD0 48 00 00 45 */ bl TRKDoSetOption -/* 8036DCD4 7C 7F 1B 78 */ mr r31, r3 -lbl_8036DCD8: -/* 8036DCD8 3C 60 80 3A */ lis r3, lit_127@ha /* 0x803A28AC@ha */ -/* 8036DCDC 7F E5 FB 78 */ mr r5, r31 -/* 8036DCE0 38 83 28 AC */ addi r4, r3, lit_127@l /* 0x803A28AC@l */ -/* 8036DCE4 38 60 00 01 */ li r3, 1 -/* 8036DCE8 4C C6 31 82 */ crclr 6 -/* 8036DCEC 48 00 4F 69 */ bl MWTRACE -/* 8036DCF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8036DCF4 7F E3 FB 78 */ mr r3, r31 -/* 8036DCF8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8036DCFC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8036DD00 7C 08 03 A6 */ mtlr r0 -/* 8036DD04 38 21 00 10 */ addi r1, r1, 0x10 -/* 8036DD08 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK/TRK_main.s b/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK/TRK_main.s deleted file mode 100644 index 960ecfbcd2f..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK/TRK_main.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80371B9C: -/* 80371B9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80371BA0 7C 08 02 A6 */ mflr r0 -/* 80371BA4 3C 80 80 3A */ lis r4, lit_80@ha /* 0x803A2BF8@ha */ -/* 80371BA8 38 60 00 01 */ li r3, 1 -/* 80371BAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80371BB0 38 84 2B F8 */ addi r4, r4, lit_80@l /* 0x803A2BF8@l */ -/* 80371BB4 4C C6 31 82 */ crclr 6 -/* 80371BB8 48 00 10 9D */ bl MWTRACE -/* 80371BBC 4B FF B2 D1 */ bl TRKInitializeNub -/* 80371BC0 3C 80 80 45 */ lis r4, TRK_mainError@ha /* 0x8044F818@ha */ -/* 80371BC4 2C 03 00 00 */ cmpwi r3, 0 -/* 80371BC8 90 64 F8 18 */ stw r3, TRK_mainError@l(r4) /* 0x8044F818@l */ -/* 80371BCC 40 82 00 0C */ bne lbl_80371BD8 -/* 80371BD0 4B FF B2 71 */ bl TRKNubWelcome -/* 80371BD4 4B FF AF 4D */ bl TRKNubMainLoop -lbl_80371BD8: -/* 80371BD8 4B FF B2 91 */ bl TRKTerminateNub -/* 80371BDC 3C 80 80 45 */ lis r4, TRK_mainError@ha /* 0x8044F818@ha */ -/* 80371BE0 90 64 F8 18 */ stw r3, TRK_mainError@l(r4) /* 0x8044F818@l */ -/* 80371BE4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80371BE8 7C 08 03 A6 */ mtlr r0 -/* 80371BEC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80371BF0 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK/TRK_fill_mem.s b/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK/TRK_fill_mem.s deleted file mode 100644 index 5e48f4e2f91..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK/TRK_fill_mem.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_8036F580: -/* 8036F580 28 05 00 20 */ cmplwi r5, 0x20 -/* 8036F584 54 84 06 3E */ clrlwi r4, r4, 0x18 -/* 8036F588 38 C3 FF FF */ addi r6, r3, -1 -/* 8036F58C 7C 87 23 78 */ mr r7, r4 -/* 8036F590 41 80 00 90 */ blt lbl_8036F620 -/* 8036F594 7C C0 30 F8 */ nor r0, r6, r6 -/* 8036F598 54 03 07 BF */ clrlwi. r3, r0, 0x1e -/* 8036F59C 41 82 00 14 */ beq lbl_8036F5B0 -/* 8036F5A0 7C A3 28 50 */ subf r5, r3, r5 -lbl_8036F5A4: -/* 8036F5A4 34 63 FF FF */ addic. r3, r3, -1 -/* 8036F5A8 9C E6 00 01 */ stbu r7, 1(r6) -/* 8036F5AC 40 82 FF F8 */ bne lbl_8036F5A4 -lbl_8036F5B0: -/* 8036F5B0 28 07 00 00 */ cmplwi r7, 0 -/* 8036F5B4 41 82 00 1C */ beq lbl_8036F5D0 -/* 8036F5B8 54 E3 C0 0E */ slwi r3, r7, 0x18 -/* 8036F5BC 54 E0 80 1E */ slwi r0, r7, 0x10 -/* 8036F5C0 54 E4 40 2E */ slwi r4, r7, 8 -/* 8036F5C4 7C 60 03 78 */ or r0, r3, r0 -/* 8036F5C8 7C 80 03 78 */ or r0, r4, r0 -/* 8036F5CC 7C E7 03 78 */ or r7, r7, r0 -lbl_8036F5D0: -/* 8036F5D0 54 A4 D9 7F */ rlwinm. r4, r5, 0x1b, 5, 0x1f -/* 8036F5D4 38 66 FF FD */ addi r3, r6, -3 -/* 8036F5D8 41 82 00 2C */ beq lbl_8036F604 -lbl_8036F5DC: -/* 8036F5DC 90 E3 00 04 */ stw r7, 4(r3) -/* 8036F5E0 34 84 FF FF */ addic. r4, r4, -1 -/* 8036F5E4 90 E3 00 08 */ stw r7, 8(r3) -/* 8036F5E8 90 E3 00 0C */ stw r7, 0xc(r3) -/* 8036F5EC 90 E3 00 10 */ stw r7, 0x10(r3) -/* 8036F5F0 90 E3 00 14 */ stw r7, 0x14(r3) -/* 8036F5F4 90 E3 00 18 */ stw r7, 0x18(r3) -/* 8036F5F8 90 E3 00 1C */ stw r7, 0x1c(r3) -/* 8036F5FC 94 E3 00 20 */ stwu r7, 0x20(r3) -/* 8036F600 40 82 FF DC */ bne lbl_8036F5DC -lbl_8036F604: -/* 8036F604 54 A4 F7 7F */ rlwinm. r4, r5, 0x1e, 0x1d, 0x1f -/* 8036F608 41 82 00 10 */ beq lbl_8036F618 -lbl_8036F60C: -/* 8036F60C 34 84 FF FF */ addic. r4, r4, -1 -/* 8036F610 94 E3 00 04 */ stwu r7, 4(r3) -/* 8036F614 40 82 FF F8 */ bne lbl_8036F60C -lbl_8036F618: -/* 8036F618 38 C3 00 03 */ addi r6, r3, 3 -/* 8036F61C 54 A5 07 BE */ clrlwi r5, r5, 0x1e -lbl_8036F620: -/* 8036F620 28 05 00 00 */ cmplwi r5, 0 -/* 8036F624 4D 82 00 20 */ beqlr -lbl_8036F628: -/* 8036F628 34 A5 FF FF */ addic. r5, r5, -1 -/* 8036F62C 9C E6 00 01 */ stbu r7, 1(r6) -/* 8036F630 40 82 FF F8 */ bne lbl_8036F628 -/* 8036F634 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg/TRKMessageSend.s b/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg/TRKMessageSend.s deleted file mode 100644 index 262f7a82a69..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg/TRKMessageSend.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8036CFD8: -/* 8036CFD8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8036CFDC 7C 08 02 A6 */ mflr r0 -/* 8036CFE0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8036CFE4 80 83 00 08 */ lwz r4, 8(r3) -/* 8036CFE8 38 63 00 10 */ addi r3, r3, 0x10 -/* 8036CFEC 48 00 4D 7D */ bl TRKWriteUARTN -/* 8036CFF0 3C 80 80 3A */ lis r4, lit_98@ha /* 0x803A26B8@ha */ -/* 8036CFF4 7C 65 1B 78 */ mr r5, r3 -/* 8036CFF8 38 60 00 01 */ li r3, 1 -/* 8036CFFC 38 84 26 B8 */ addi r4, r4, lit_98@l /* 0x803A26B8@l */ -/* 8036D000 4C C6 31 82 */ crclr 6 -/* 8036D004 48 00 5C 51 */ bl MWTRACE -/* 8036D008 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8036D00C 38 60 00 00 */ li r3, 0 -/* 8036D010 7C 08 03 A6 */ mtlr r0 -/* 8036D014 38 21 00 10 */ addi r1, r1, 0x10 -/* 8036D018 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont/TRKTargetContinue.s b/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont/TRKTargetContinue.s deleted file mode 100644 index ca2d40d0a37..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont/TRKTargetContinue.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8037214C: -/* 8037214C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80372150 7C 08 02 A6 */ mflr r0 -/* 80372154 38 60 00 00 */ li r3, 0 -/* 80372158 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037215C 4B FF D9 A5 */ bl TRKTargetSetStopped -/* 80372160 4B FF FB A9 */ bl UnreserveEXI2Port -/* 80372164 4B FF D7 51 */ bl TRKSwapAndGo -/* 80372168 4B FF FB D1 */ bl ReserveEXI2Port -/* 8037216C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80372170 38 60 00 00 */ li r3, 0 -/* 80372174 7C 08 03 A6 */ mtlr r0 -/* 80372178 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037217C 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/GetUseSerialIO.s b/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/GetUseSerialIO.s deleted file mode 100644 index 8006ad0ea3f..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/GetUseSerialIO.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80372180: -/* 80372180 3C 60 80 45 */ lis r3, data_8044F828@ha /* 0x8044F828@ha */ -/* 80372184 38 63 F8 28 */ addi r3, r3, data_8044F828@l /* 0x8044F828@l */ -/* 80372188 88 63 00 00 */ lbz r3, 0(r3) -/* 8037218C 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/SetUseSerialIO.s b/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/SetUseSerialIO.s deleted file mode 100644 index 4c1967c55ad..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/SetUseSerialIO.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80372190: -/* 80372190 3C 80 80 45 */ lis r4, data_8044F828@ha /* 0x8044F828@ha */ -/* 80372194 98 64 F8 28 */ stb r3, data_8044F828@l(r4) /* 0x8044F828@l */ -/* 80372198 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put/usr_puts_serial.s b/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put/usr_puts_serial.s deleted file mode 100644 index ae4f1f99069..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put/usr_puts_serial.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_8036DB14: -/* 8036DB14 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036DB18 7C 08 02 A6 */ mflr r0 -/* 8036DB1C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8036DB20 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8036DB24 3B E0 00 00 */ li r31, 0 -/* 8036DB28 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8036DB2C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8036DB30 7C 7D 1B 78 */ mr r29, r3 -/* 8036DB34 38 60 00 00 */ li r3, 0 -/* 8036DB38 48 00 00 30 */ b lbl_8036DB68 -lbl_8036DB3C: -/* 8036DB3C 48 00 11 91 */ bl GetTRKConnected -/* 8036DB40 9B C1 00 08 */ stb r30, 8(r1) -/* 8036DB44 7C 7E 1B 78 */ mr r30, r3 -/* 8036DB48 38 60 00 00 */ li r3, 0 -/* 8036DB4C 9B E1 00 09 */ stb r31, 9(r1) -/* 8036DB50 48 00 11 71 */ bl SetTRKConnected -/* 8036DB54 38 61 00 08 */ addi r3, r1, 8 -/* 8036DB58 4B C9 8F 65 */ bl OSReport -/* 8036DB5C 7F C3 F3 78 */ mr r3, r30 -/* 8036DB60 48 00 11 61 */ bl SetTRKConnected -/* 8036DB64 38 60 00 00 */ li r3, 0 -lbl_8036DB68: -/* 8036DB68 2C 03 00 00 */ cmpwi r3, 0 -/* 8036DB6C 40 82 00 14 */ bne lbl_8036DB80 -/* 8036DB70 88 1D 00 00 */ lbz r0, 0(r29) -/* 8036DB74 3B BD 00 01 */ addi r29, r29, 1 -/* 8036DB78 7C 1E 07 75 */ extsb. r30, r0 -/* 8036DB7C 40 82 FF C0 */ bne lbl_8036DB3C -lbl_8036DB80: -/* 8036DB80 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036DB84 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8036DB88 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8036DB8C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8036DB90 7C 08 03 A6 */ mtlr r0 -/* 8036DB94 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036DB98 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache/TRK_flush_cache.s b/asm/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache/TRK_flush_cache.s deleted file mode 100644 index c8161950466..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache/TRK_flush_cache.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8036F548: -/* 8036F548 3C A0 FF FF */ lis r5, 0xFFFF /* 0xFFFFFFF1@h */ -/* 8036F54C 60 A5 FF F1 */ ori r5, r5, 0xFFF1 /* 0xFFFFFFF1@l */ -/* 8036F550 7C A5 18 38 */ and r5, r5, r3 -/* 8036F554 7C 65 18 50 */ subf r3, r5, r3 -/* 8036F558 7C 84 1A 14 */ add r4, r4, r3 -lbl_8036F55C: -/* 8036F55C 7C 00 28 6C */ dcbst 0, r5 -/* 8036F560 7C 00 28 AC */ dcbf 0, r5 -/* 8036F564 7C 00 04 AC */ sync -/* 8036F568 7C 00 2F AC */ icbi 0, r5 -/* 8036F56C 30 A5 00 08 */ addic r5, r5, 8 -/* 8036F570 34 84 FF F8 */ addic. r4, r4, -8 -/* 8036F574 40 80 FF E8 */ bge lbl_8036F55C -/* 8036F578 4C 00 01 2C */ isync -/* 8036F57C 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/utils/common/MWTrace/MWTRACE.s b/asm/TRK_MINNOW_DOLPHIN/utils/common/MWTrace/MWTRACE.s deleted file mode 100644 index 2f7ff4c4f3e..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/utils/common/MWTrace/MWTRACE.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80372C54: -/* 80372C54 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 80372C58 40 86 00 24 */ bne cr1, lbl_80372C7C -/* 80372C5C D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80372C60 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80372C64 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80372C68 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80372C6C D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80372C70 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80372C74 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80372C78 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80372C7C: -/* 80372C7C 90 61 00 08 */ stw r3, 8(r1) -/* 80372C80 90 81 00 0C */ stw r4, 0xc(r1) -/* 80372C84 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80372C88 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80372C8C 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80372C90 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80372C94 91 21 00 20 */ stw r9, 0x20(r1) -/* 80372C98 91 41 00 24 */ stw r10, 0x24(r1) -/* 80372C9C 38 21 00 70 */ addi r1, r1, 0x70 -/* 80372CA0 4E 80 00 20 */ blr diff --git a/asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWExitCriticalSection.s b/asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWExitCriticalSection.s deleted file mode 100644 index b514e7799a9..00000000000 --- a/asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWExitCriticalSection.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80372CA4: -/* 80372CA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80372CA8 7C 08 02 A6 */ mflr r0 -/* 80372CAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80372CB0 80 63 00 00 */ lwz r3, 0(r3) -/* 80372CB4 4B FC AA 69 */ bl OSRestoreInterrupts -/* 80372CB8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80372CBC 7C 08 03 A6 */ mtlr r0 -/* 80372CC0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80372CC4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/allAnimePlay__9daAlink_cFv.s b/asm/d/a/d_a_alink/allAnimePlay__9daAlink_cFv.s deleted file mode 100644 index af9b08489a6..00000000000 --- a/asm/d/a/d_a_alink/allAnimePlay__9daAlink_cFv.s +++ /dev/null @@ -1,101 +0,0 @@ -lbl_800AD170: -/* 800AD170 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 800AD174 7C 08 02 A6 */ mflr r0 -/* 800AD178 90 01 00 34 */ stw r0, 0x34(r1) -/* 800AD17C 39 61 00 30 */ addi r11, r1, 0x30 -/* 800AD180 48 2B 50 49 */ bl _savegpr_24 -/* 800AD184 7C 7F 1B 78 */ mr r31, r3 -/* 800AD188 83 83 1F 2C */ lwz r28, 0x1f2c(r3) -/* 800AD18C 83 63 1F 34 */ lwz r27, 0x1f34(r3) -/* 800AD190 83 43 1F 44 */ lwz r26, 0x1f44(r3) -/* 800AD194 83 23 1F 4C */ lwz r25, 0x1f4c(r3) -/* 800AD198 80 03 05 74 */ lwz r0, 0x574(r3) -/* 800AD19C 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 800AD1A0 41 82 00 08 */ beq lbl_800AD1A8 -/* 800AD1A4 48 07 F9 69 */ bl setWolfAnmVoice__9daAlink_cFv -lbl_800AD1A8: -/* 800AD1A8 3B 00 00 00 */ li r24, 0 -/* 800AD1AC 3B C0 00 00 */ li r30, 0 -/* 800AD1B0 3B A0 00 00 */ li r29, 0 -lbl_800AD1B4: -/* 800AD1B4 7F E3 FB 78 */ mr r3, r31 -/* 800AD1B8 38 1D 1F 2C */ addi r0, r29, 0x1f2c -/* 800AD1BC 7C 9F 00 2E */ lwzx r4, r31, r0 -/* 800AD1C0 38 BE 1F D0 */ addi r5, r30, 0x1fd0 -/* 800AD1C4 7C BF 2A 14 */ add r5, r31, r5 -/* 800AD1C8 4B FF FF 61 */ bl animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c -/* 800AD1CC 3B 18 00 01 */ addi r24, r24, 1 -/* 800AD1D0 2C 18 00 03 */ cmpwi r24, 3 -/* 800AD1D4 3B DE 00 18 */ addi r30, r30, 0x18 -/* 800AD1D8 3B BD 00 08 */ addi r29, r29, 8 -/* 800AD1DC 41 80 FF D8 */ blt lbl_800AD1B4 -/* 800AD1E0 7C 1A E0 40 */ cmplw r26, r28 -/* 800AD1E4 41 82 00 14 */ beq lbl_800AD1F8 -/* 800AD1E8 7F E3 FB 78 */ mr r3, r31 -/* 800AD1EC 7F 44 D3 78 */ mr r4, r26 -/* 800AD1F0 38 BF 20 18 */ addi r5, r31, 0x2018 -/* 800AD1F4 4B FF FF 35 */ bl animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c -lbl_800AD1F8: -/* 800AD1F8 7C 19 D8 40 */ cmplw r25, r27 -/* 800AD1FC 41 82 00 14 */ beq lbl_800AD210 -/* 800AD200 7F E3 FB 78 */ mr r3, r31 -/* 800AD204 7F 24 CB 78 */ mr r4, r25 -/* 800AD208 38 BF 20 30 */ addi r5, r31, 0x2030 -/* 800AD20C 4B FF FF 1D */ bl animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c -lbl_800AD210: -/* 800AD210 7F E3 FB 78 */ mr r3, r31 -/* 800AD214 80 9F 1F 54 */ lwz r4, 0x1f54(r31) -/* 800AD218 38 BF 20 48 */ addi r5, r31, 0x2048 -/* 800AD21C 4B FF FF 0D */ bl animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c -/* 800AD220 88 1F 2F 92 */ lbz r0, 0x2f92(r31) -/* 800AD224 28 00 00 FB */ cmplwi r0, 0xfb -/* 800AD228 40 82 00 14 */ bne lbl_800AD23C -/* 800AD22C 80 7F 06 A4 */ lwz r3, 0x6a4(r31) -/* 800AD230 28 03 00 00 */ cmplwi r3, 0 -/* 800AD234 41 82 00 08 */ beq lbl_800AD23C -/* 800AD238 4B F6 01 F1 */ bl play__14mDoExt_baseAnmFv -lbl_800AD23C: -/* 800AD23C 88 1F 2F 93 */ lbz r0, 0x2f93(r31) -/* 800AD240 28 00 00 FB */ cmplwi r0, 0xfb -/* 800AD244 40 82 00 14 */ bne lbl_800AD258 -/* 800AD248 80 7F 06 AC */ lwz r3, 0x6ac(r31) -/* 800AD24C 28 03 00 00 */ cmplwi r3, 0 -/* 800AD250 41 82 00 08 */ beq lbl_800AD258 -/* 800AD254 4B F6 01 D5 */ bl play__14mDoExt_baseAnmFv -lbl_800AD258: -/* 800AD258 80 1F 05 74 */ lwz r0, 0x574(r31) -/* 800AD25C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 800AD260 41 82 00 40 */ beq lbl_800AD2A0 -/* 800AD264 80 7F 06 9C */ lwz r3, 0x69c(r31) -/* 800AD268 28 03 00 00 */ cmplwi r3, 0 -/* 800AD26C 41 82 00 14 */ beq lbl_800AD280 -/* 800AD270 80 63 00 14 */ lwz r3, 0x14(r3) -/* 800AD274 28 03 00 00 */ cmplwi r3, 0 -/* 800AD278 41 82 00 08 */ beq lbl_800AD280 -/* 800AD27C 4B FF BF CD */ bl simpleAnmPlay__9daAlink_cFP10J3DAnmBase -lbl_800AD280: -/* 800AD280 80 7F 06 8C */ lwz r3, 0x68c(r31) -/* 800AD284 28 03 00 00 */ cmplwi r3, 0 -/* 800AD288 41 82 00 08 */ beq lbl_800AD290 -/* 800AD28C 4B FF BF BD */ bl simpleAnmPlay__9daAlink_cFP10J3DAnmBase -lbl_800AD290: -/* 800AD290 80 7F 06 90 */ lwz r3, 0x690(r31) -/* 800AD294 28 03 00 00 */ cmplwi r3, 0 -/* 800AD298 41 82 00 08 */ beq lbl_800AD2A0 -/* 800AD29C 4B F6 01 8D */ bl play__14mDoExt_baseAnmFv -lbl_800AD2A0: -/* 800AD2A0 80 7F 06 B0 */ lwz r3, 0x6b0(r31) -/* 800AD2A4 28 03 00 00 */ cmplwi r3, 0 -/* 800AD2A8 41 82 00 08 */ beq lbl_800AD2B0 -/* 800AD2AC 4B F6 01 7D */ bl play__14mDoExt_baseAnmFv -lbl_800AD2B0: -/* 800AD2B0 80 7F 06 F4 */ lwz r3, 0x6f4(r31) -/* 800AD2B4 4B FF BF 95 */ bl simpleAnmPlay__9daAlink_cFP10J3DAnmBase -/* 800AD2B8 80 7F 06 F8 */ lwz r3, 0x6f8(r31) -/* 800AD2BC 4B FF BF 8D */ bl simpleAnmPlay__9daAlink_cFP10J3DAnmBase -/* 800AD2C0 39 61 00 30 */ addi r11, r1, 0x30 -/* 800AD2C4 48 2B 4F 51 */ bl _restgpr_24 -/* 800AD2C8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 800AD2CC 7C 08 03 A6 */ mtlr r0 -/* 800AD2D0 38 21 00 30 */ addi r1, r1, 0x30 -/* 800AD2D4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkAtnLeftAnime__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkAtnLeftAnime__9daAlink_cFv.s deleted file mode 100644 index 4c10de82f4d..00000000000 --- a/asm/d/a/d_a_alink/checkAtnLeftAnime__9daAlink_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_800ADC50: -/* 800ADC50 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ADC54 7C 08 02 A6 */ mflr r0 -/* 800ADC58 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ADC5C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800ADC60 93 C1 00 08 */ stw r30, 8(r1) -/* 800ADC64 7C 7E 1B 78 */ mr r30, r3 -/* 800ADC68 3B E0 00 00 */ li r31, 0 -/* 800ADC6C 38 80 00 10 */ li r4, 0x10 -/* 800ADC70 4B FF E8 E9 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADC74 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADC78 40 82 00 54 */ bne lbl_800ADCCC -/* 800ADC7C 7F C3 F3 78 */ mr r3, r30 -/* 800ADC80 38 80 00 06 */ li r4, 6 -/* 800ADC84 4B FF E8 D5 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADC88 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADC8C 40 82 00 40 */ bne lbl_800ADCCC -/* 800ADC90 7F C3 F3 78 */ mr r3, r30 -/* 800ADC94 38 80 00 0A */ li r4, 0xa -/* 800ADC98 4B FF E8 C1 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADC9C 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADCA0 40 82 00 2C */ bne lbl_800ADCCC -/* 800ADCA4 7F C3 F3 78 */ mr r3, r30 -/* 800ADCA8 38 80 00 07 */ li r4, 7 -/* 800ADCAC 4B FF E8 AD */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADCB0 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADCB4 40 82 00 18 */ bne lbl_800ADCCC -/* 800ADCB8 7F C3 F3 78 */ mr r3, r30 -/* 800ADCBC 38 80 00 0B */ li r4, 0xb -/* 800ADCC0 4B FF E8 99 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADCC4 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADCC8 41 82 00 08 */ beq lbl_800ADCD0 -lbl_800ADCCC: -/* 800ADCCC 3B E0 00 01 */ li r31, 1 -lbl_800ADCD0: -/* 800ADCD0 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 800ADCD4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800ADCD8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800ADCDC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ADCE0 7C 08 03 A6 */ mtlr r0 -/* 800ADCE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ADCE8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkAtnRightAnime__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkAtnRightAnime__9daAlink_cFv.s deleted file mode 100644 index 1c132d3f32b..00000000000 --- a/asm/d/a/d_a_alink/checkAtnRightAnime__9daAlink_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_800ADCEC: -/* 800ADCEC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ADCF0 7C 08 02 A6 */ mflr r0 -/* 800ADCF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ADCF8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800ADCFC 93 C1 00 08 */ stw r30, 8(r1) -/* 800ADD00 7C 7E 1B 78 */ mr r30, r3 -/* 800ADD04 3B E0 00 00 */ li r31, 0 -/* 800ADD08 38 80 00 11 */ li r4, 0x11 -/* 800ADD0C 4B FF E8 4D */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADD10 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADD14 40 82 00 54 */ bne lbl_800ADD68 -/* 800ADD18 7F C3 F3 78 */ mr r3, r30 -/* 800ADD1C 38 80 00 08 */ li r4, 8 -/* 800ADD20 4B FF E8 39 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADD24 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADD28 40 82 00 40 */ bne lbl_800ADD68 -/* 800ADD2C 7F C3 F3 78 */ mr r3, r30 -/* 800ADD30 38 80 00 0C */ li r4, 0xc -/* 800ADD34 4B FF E8 25 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADD38 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADD3C 40 82 00 2C */ bne lbl_800ADD68 -/* 800ADD40 7F C3 F3 78 */ mr r3, r30 -/* 800ADD44 38 80 00 09 */ li r4, 9 -/* 800ADD48 4B FF E8 11 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADD4C 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADD50 40 82 00 18 */ bne lbl_800ADD68 -/* 800ADD54 7F C3 F3 78 */ mr r3, r30 -/* 800ADD58 38 80 00 0D */ li r4, 0xd -/* 800ADD5C 4B FF E7 FD */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800ADD60 2C 03 00 00 */ cmpwi r3, 0 -/* 800ADD64 41 82 00 08 */ beq lbl_800ADD6C -lbl_800ADD68: -/* 800ADD68 3B E0 00 01 */ li r31, 1 -lbl_800ADD6C: -/* 800ADD6C 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 800ADD70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800ADD74 83 C1 00 08 */ lwz r30, 8(r1) -/* 800ADD78 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ADD7C 7C 08 03 A6 */ mtlr r0 -/* 800ADD80 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ADD84 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkDashAnime__9daAlink_cCFv.s b/asm/d/a/d_a_alink/checkDashAnime__9daAlink_cCFv.s deleted file mode 100644 index e9ba7a28bc2..00000000000 --- a/asm/d/a/d_a_alink/checkDashAnime__9daAlink_cCFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_800A7A5C: -/* 800A7A5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800A7A60 7C 08 02 A6 */ mflr r0 -/* 800A7A64 90 01 00 14 */ stw r0, 0x14(r1) -/* 800A7A68 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800A7A6C 93 C1 00 08 */ stw r30, 8(r1) -/* 800A7A70 7C 7E 1B 78 */ mr r30, r3 -/* 800A7A74 3B E0 00 00 */ li r31, 0 -/* 800A7A78 38 80 00 13 */ li r4, 0x13 -/* 800A7A7C 48 00 4A DD */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800A7A80 2C 03 00 00 */ cmpwi r3, 0 -/* 800A7A84 40 82 00 18 */ bne lbl_800A7A9C -/* 800A7A88 7F C3 F3 78 */ mr r3, r30 -/* 800A7A8C 38 80 00 1C */ li r4, 0x1c -/* 800A7A90 48 00 4A C9 */ bl checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800A7A94 2C 03 00 00 */ cmpwi r3, 0 -/* 800A7A98 41 82 00 08 */ beq lbl_800A7AA0 -lbl_800A7A9C: -/* 800A7A9C 3B E0 00 01 */ li r31, 1 -lbl_800A7AA0: -/* 800A7AA0 7F E3 FB 78 */ mr r3, r31 -/* 800A7AA4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800A7AA8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800A7AAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800A7AB0 7C 08 03 A6 */ mtlr r0 -/* 800A7AB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800A7AB8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkDeadHP__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkDeadHP__9daAlink_cFv.s deleted file mode 100644 index ad49f15918a..00000000000 --- a/asm/d/a/d_a_alink/checkDeadHP__9daAlink_cFv.s +++ /dev/null @@ -1,63 +0,0 @@ -lbl_80118C98: -/* 80118C98 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80118C9C 7C 08 02 A6 */ mflr r0 -/* 80118CA0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80118CA4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80118CA8 48 24 95 31 */ bl _savegpr_28 -/* 80118CAC 7C 7C 1B 78 */ mr r28, r3 -/* 80118CB0 3B E0 00 01 */ li r31, 1 -/* 80118CB4 7F FE FB 78 */ mr r30, r31 -/* 80118CB8 3B A0 00 00 */ li r29, 0 -/* 80118CBC 7F A4 EB 78 */ mr r4, r29 -/* 80118CC0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80118CC4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80118CC8 A0 03 00 02 */ lhz r0, 2(r3) -/* 80118CCC 28 00 00 00 */ cmplwi r0, 0 -/* 80118CD0 40 82 00 14 */ bne lbl_80118CE4 -/* 80118CD4 80 1C 05 80 */ lwz r0, 0x580(r28) -/* 80118CD8 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15 -/* 80118CDC 40 82 00 08 */ bne lbl_80118CE4 -/* 80118CE0 7F E4 FB 78 */ mr r4, r31 -lbl_80118CE4: -/* 80118CE4 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 80118CE8 41 82 00 24 */ beq lbl_80118D0C -/* 80118CEC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80118CF0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80118CF4 38 63 00 9C */ addi r3, r3, 0x9c -/* 80118CF8 38 80 00 6C */ li r4, 0x6c -/* 80118CFC 4B F1 A9 E5 */ bl checkBottle__17dSv_player_item_cFUc -/* 80118D00 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80118D04 40 82 00 08 */ bne lbl_80118D0C -/* 80118D08 3B A0 00 01 */ li r29, 1 -lbl_80118D0C: -/* 80118D0C 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 80118D10 40 82 00 14 */ bne lbl_80118D24 -/* 80118D14 80 1C 05 78 */ lwz r0, 0x578(r28) -/* 80118D18 54 00 03 5B */ rlwinm. r0, r0, 0, 0xd, 0xd -/* 80118D1C 40 82 00 08 */ bne lbl_80118D24 -/* 80118D20 3B C0 00 00 */ li r30, 0 -lbl_80118D24: -/* 80118D24 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 80118D28 40 82 00 38 */ bne lbl_80118D60 -/* 80118D2C 38 80 00 00 */ li r4, 0 -/* 80118D30 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80118D34 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80118D38 88 03 5E B7 */ lbz r0, 0x5eb7(r3) -/* 80118D3C 28 00 00 00 */ cmplwi r0, 0 -/* 80118D40 41 82 00 14 */ beq lbl_80118D54 -/* 80118D44 80 03 5D E4 */ lwz r0, 0x5de4(r3) -/* 80118D48 2C 00 00 00 */ cmpwi r0, 0 -/* 80118D4C 40 82 00 08 */ bne lbl_80118D54 -/* 80118D50 38 80 00 01 */ li r4, 1 -lbl_80118D54: -/* 80118D54 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 80118D58 40 82 00 08 */ bne lbl_80118D60 -/* 80118D5C 3B E0 00 00 */ li r31, 0 -lbl_80118D60: -/* 80118D60 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 80118D64 39 61 00 20 */ addi r11, r1, 0x20 -/* 80118D68 48 24 94 BD */ bl _restgpr_28 -/* 80118D6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80118D70 7C 08 03 A6 */ mtlr r0 -/* 80118D74 38 21 00 20 */ addi r1, r1, 0x20 -/* 80118D78 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkFinalBattle__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkFinalBattle__9daAlink_cFv.s deleted file mode 100644 index c85fc10e49f..00000000000 --- a/asm/d/a/d_a_alink/checkFinalBattle__9daAlink_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80118AD0: -/* 80118AD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80118AD4 7C 08 02 A6 */ mflr r0 -/* 80118AD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80118ADC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80118AE0 3B E0 00 00 */ li r31, 0 -/* 80118AE4 3C 60 80 39 */ lis r3, d_a_d_a_alink__stringBase0@ha /* 0x80392094@ha */ -/* 80118AE8 38 63 20 94 */ addi r3, r3, d_a_d_a_alink__stringBase0@l /* 0x80392094@l */ -/* 80118AEC 38 63 00 F6 */ addi r3, r3, 0xf6 -/* 80118AF0 4B F8 4F 71 */ bl checkStageName__9daAlink_cFPCc -/* 80118AF4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80118AF8 41 82 00 24 */ beq lbl_80118B1C -/* 80118AFC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80118B00 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80118B04 38 63 09 78 */ addi r3, r3, 0x978 -/* 80118B08 38 80 00 01 */ li r4, 1 -/* 80118B0C 4B F1 C0 DD */ bl isSwitch__12dSv_danBit_cCFi -/* 80118B10 2C 03 00 00 */ cmpwi r3, 0 -/* 80118B14 41 82 00 08 */ beq lbl_80118B1C -/* 80118B18 3B E0 00 01 */ li r31, 1 -lbl_80118B1C: -/* 80118B1C 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 80118B20 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80118B24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80118B28 7C 08 03 A6 */ mtlr r0 -/* 80118B2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80118B30 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c.s b/asm/d/a/d_a_alink/checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c.s deleted file mode 100644 index edbde3341db..00000000000 --- a/asm/d/a/d_a_alink/checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_800B477C: -/* 800B477C 28 04 00 00 */ cmplwi r4, 0 -/* 800B4780 41 82 00 2C */ beq lbl_800B47AC -/* 800B4784 80 04 00 0C */ lwz r0, 0xc(r4) -/* 800B4788 28 00 00 03 */ cmplwi r0, 3 -/* 800B478C 41 82 00 18 */ beq lbl_800B47A4 -/* 800B4790 28 00 00 01 */ cmplwi r0, 1 -/* 800B4794 40 82 00 18 */ bne lbl_800B47AC -/* 800B4798 80 03 27 EC */ lwz r0, 0x27ec(r3) -/* 800B479C 7C 00 28 40 */ cmplw r0, r5 -/* 800B47A0 40 82 00 0C */ bne lbl_800B47AC -lbl_800B47A4: -/* 800B47A4 38 60 00 01 */ li r3, 1 -/* 800B47A8 4E 80 00 20 */ blr -lbl_800B47AC: -/* 800B47AC 38 60 00 00 */ li r3, 0 -/* 800B47B0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkRestartDead__9daAlink_cFii.s b/asm/d/a/d_a_alink/checkRestartDead__9daAlink_cFii.s deleted file mode 100644 index c4cd966ddb9..00000000000 --- a/asm/d/a/d_a_alink/checkRestartDead__9daAlink_cFii.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_80118B34: -/* 80118B34 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80118B38 7C 08 02 A6 */ mflr r0 -/* 80118B3C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80118B40 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80118B44 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80118B48 7C 7E 1B 78 */ mr r30, r3 -/* 80118B4C 7C 9F 23 78 */ mr r31, r4 -/* 80118B50 7C A4 2B 78 */ mr r4, r5 -/* 80118B54 38 A0 00 01 */ li r5, 1 -/* 80118B58 4B FB E6 B1 */ bl damageMagnification__9daAlink_cFii -/* 80118B5C FC 00 08 1E */ fctiwz f0, f1 -/* 80118B60 D8 01 00 08 */ stfd f0, 8(r1) -/* 80118B64 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80118B68 7F FF 01 D6 */ mullw r31, r31, r0 -/* 80118B6C A0 1E 2F E8 */ lhz r0, 0x2fe8(r30) -/* 80118B70 28 00 01 50 */ cmplwi r0, 0x150 -/* 80118B74 41 82 00 64 */ beq lbl_80118BD8 -/* 80118B78 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80118B7C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80118B80 A0 03 00 02 */ lhz r0, 2(r3) -/* 80118B84 7C 1F 00 00 */ cmpw r31, r0 -/* 80118B88 41 80 00 50 */ blt lbl_80118BD8 -/* 80118B8C 7F C3 F3 78 */ mr r3, r30 -/* 80118B90 4B FB EC 39 */ bl checkMagicArmorNoDamage__9daAlink_cFv -/* 80118B94 2C 03 00 00 */ cmpwi r3, 0 -/* 80118B98 40 82 00 40 */ bne lbl_80118BD8 -/* 80118B9C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80118BA0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80118BA4 38 63 00 9C */ addi r3, r3, 0x9c -/* 80118BA8 38 80 00 6C */ li r4, 0x6c -/* 80118BAC 4B F1 AB 35 */ bl checkBottle__17dSv_player_item_cFUc -/* 80118BB0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80118BB4 40 82 00 24 */ bne lbl_80118BD8 -/* 80118BB8 80 1E 05 78 */ lwz r0, 0x578(r30) -/* 80118BBC 64 00 00 04 */ oris r0, r0, 4 -/* 80118BC0 90 1E 05 78 */ stw r0, 0x578(r30) -/* 80118BC4 7F C3 F3 78 */ mr r3, r30 -/* 80118BC8 38 80 00 00 */ li r4, 0 -/* 80118BCC 48 00 32 89 */ bl procCoDeadInit__9daAlink_cFi -/* 80118BD0 38 60 00 01 */ li r3, 1 -/* 80118BD4 48 00 00 08 */ b lbl_80118BDC -lbl_80118BD8: -/* 80118BD8 38 60 00 00 */ li r3, 0 -lbl_80118BDC: -/* 80118BDC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80118BE0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80118BE4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80118BE8 7C 08 03 A6 */ mtlr r0 -/* 80118BEC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80118BF0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s b/asm/d/a/d_a_alink/checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s deleted file mode 100644 index 79b25899c85..00000000000 --- a/asm/d/a/d_a_alink/checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_800AC558: -/* 800AC558 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800AC55C 7C 08 02 A6 */ mflr r0 -/* 800AC560 90 01 00 14 */ stw r0, 0x14(r1) -/* 800AC564 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800AC568 93 C1 00 08 */ stw r30, 8(r1) -/* 800AC56C 3B E0 00 00 */ li r31, 0 -/* 800AC570 A0 03 1F 5C */ lhz r0, 0x1f5c(r3) -/* 800AC574 28 00 FF FF */ cmplwi r0, 0xffff -/* 800AC578 40 82 00 20 */ bne lbl_800AC598 -/* 800AC57C A3 C3 1F 58 */ lhz r30, 0x1f58(r3) -/* 800AC580 4B FF FE D1 */ bl getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800AC584 A0 63 00 00 */ lhz r3, 0(r3) -/* 800AC588 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 800AC58C 7C 00 18 40 */ cmplw r0, r3 -/* 800AC590 40 82 00 08 */ bne lbl_800AC598 -/* 800AC594 3B E0 00 01 */ li r31, 1 -lbl_800AC598: -/* 800AC598 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 800AC59C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800AC5A0 83 C1 00 08 */ lwz r30, 8(r1) -/* 800AC5A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800AC5A8 7C 08 03 A6 */ mtlr r0 -/* 800AC5AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800AC5B0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/func_800AC5B4.s b/asm/d/a/d_a_alink/func_800AC5B4.s deleted file mode 100644 index 9a0e2742872..00000000000 --- a/asm/d/a/d_a_alink/func_800AC5B4.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_800AC5B4: -/* 800AC5B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800AC5B8 7C 08 02 A6 */ mflr r0 -/* 800AC5BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800AC5C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800AC5C4 93 C1 00 08 */ stw r30, 8(r1) -/* 800AC5C8 3B E0 00 00 */ li r31, 0 -/* 800AC5CC A0 03 1F 70 */ lhz r0, 0x1f70(r3) -/* 800AC5D0 28 00 FF FF */ cmplwi r0, 0xffff -/* 800AC5D4 40 82 00 20 */ bne lbl_800AC5F4 -/* 800AC5D8 A3 C3 1F 6C */ lhz r30, 0x1f6c(r3) -/* 800AC5DC 4B FF FE 75 */ bl getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800AC5E0 A0 63 00 00 */ lhz r3, 0(r3) -/* 800AC5E4 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 800AC5E8 7C 00 18 40 */ cmplw r0, r3 -/* 800AC5EC 40 82 00 08 */ bne lbl_800AC5F4 -/* 800AC5F0 3B E0 00 01 */ li r31, 1 -lbl_800AC5F4: -/* 800AC5F4 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 800AC5F8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800AC5FC 83 C1 00 08 */ lwz r30, 8(r1) -/* 800AC600 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800AC604 7C 08 03 A6 */ mtlr r0 -/* 800AC608 38 21 00 10 */ addi r1, r1, 0x10 -/* 800AC60C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s b/asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s deleted file mode 100644 index ae5033135bf..00000000000 --- a/asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_800A3D0C: -/* 800A3D0C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800A3D10 7C 08 02 A6 */ mflr r0 -/* 800A3D14 90 01 00 24 */ stw r0, 0x24(r1) -/* 800A3D18 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800A3D1C 7C 9F 23 78 */ mr r31, r4 -/* 800A3D20 B0 A1 00 08 */ sth r5, 8(r1) -/* 800A3D24 90 C4 00 08 */ stw r6, 8(r4) -/* 800A3D28 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */ -/* 800A3D2C 38 04 FF FF */ addi r0, r4, 0xFFFF /* 0x0000FFFF@l */ -/* 800A3D30 B0 01 00 0A */ sth r0, 0xa(r1) -/* 800A3D34 38 81 00 0A */ addi r4, r1, 0xa -/* 800A3D38 38 A1 00 08 */ addi r5, r1, 8 -/* 800A3D3C 4B FF FF A9 */ bl setIdxMask__9daAlink_cFPUsPUs -/* 800A3D40 A0 A1 00 0A */ lhz r5, 0xa(r1) -/* 800A3D44 28 05 FF FF */ cmplwi r5, 0xffff -/* 800A3D48 40 82 00 14 */ bne lbl_800A3D5C -/* 800A3D4C 7F E3 FB 78 */ mr r3, r31 -/* 800A3D50 A0 81 00 08 */ lhz r4, 8(r1) -/* 800A3D54 48 0B B3 15 */ bl loadDataIdx__14daPy_anmHeap_cFUs -/* 800A3D58 48 00 00 10 */ b lbl_800A3D68 -lbl_800A3D5C: -/* 800A3D5C 7F E3 FB 78 */ mr r3, r31 -/* 800A3D60 A0 81 00 08 */ lhz r4, 8(r1) -/* 800A3D64 48 0B B3 B5 */ bl loadDataDemoRID__14daPy_anmHeap_cFUsUs -lbl_800A3D68: -/* 800A3D68 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 800A3D6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800A3D70 7C 08 03 A6 */ mtlr r0 -/* 800A3D74 38 21 00 20 */ addi r1, r1, 0x20 -/* 800A3D78 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s b/asm/d/a/d_a_alink/getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s deleted file mode 100644 index 9c60ada0a81..00000000000 --- a/asm/d/a/d_a_alink/getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s +++ /dev/null @@ -1,75 +0,0 @@ -lbl_800AC450: -/* 800AC450 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800AC454 7C 08 02 A6 */ mflr r0 -/* 800AC458 90 01 00 24 */ stw r0, 0x24(r1) -/* 800AC45C 39 61 00 20 */ addi r11, r1, 0x20 -/* 800AC460 48 2B 5D 7D */ bl _savegpr_29 -/* 800AC464 7C 7D 1B 78 */ mr r29, r3 -/* 800AC468 7C 9E 23 78 */ mr r30, r4 -/* 800AC46C 3C 60 80 39 */ lis r3, lit_3757@ha /* 0x8038D658@ha */ -/* 800AC470 3B E3 D6 58 */ addi r31, r3, lit_3757@l /* 0x8038D658@l */ -/* 800AC474 A0 1D 2F DC */ lhz r0, 0x2fdc(r29) -/* 800AC478 28 00 00 48 */ cmplwi r0, 0x48 -/* 800AC47C 40 82 00 28 */ bne lbl_800AC4A4 -/* 800AC480 2C 1E 00 19 */ cmpwi r30, 0x19 -/* 800AC484 40 82 00 0C */ bne lbl_800AC490 -/* 800AC488 38 62 98 78 */ la r3, kandelaarAnm(r2) /* 80453278-_SDA2_BASE_ */ -/* 800AC48C 48 00 00 B4 */ b lbl_800AC540 -lbl_800AC490: -/* 800AC490 2C 1E 00 48 */ cmpwi r30, 0x48 -/* 800AC494 40 82 00 10 */ bne lbl_800AC4A4 -/* 800AC498 38 62 98 78 */ la r3, kandelaarAnm(r2) /* 80453278-_SDA2_BASE_ */ -/* 800AC49C 38 63 00 04 */ addi r3, r3, 4 -/* 800AC4A0 48 00 00 A0 */ b lbl_800AC540 -lbl_800AC4A4: -/* 800AC4A4 7F A3 EB 78 */ mr r3, r29 -/* 800AC4A8 48 03 09 49 */ bl checkUpperGuardAnime__9daAlink_cCFv -/* 800AC4AC 2C 03 00 00 */ cmpwi r3, 0 -/* 800AC4B0 41 82 00 1C */ beq lbl_800AC4CC -/* 800AC4B4 2C 1E 00 14 */ cmpwi r30, 0x14 -/* 800AC4B8 40 80 00 14 */ bge lbl_800AC4CC -/* 800AC4BC 57 C0 10 3A */ slwi r0, r30, 2 -/* 800AC4C0 38 7F 25 7C */ addi r3, r31, 0x257c -/* 800AC4C4 7C 63 02 14 */ add r3, r3, r0 -/* 800AC4C8 48 00 00 78 */ b lbl_800AC540 -lbl_800AC4CC: -/* 800AC4CC A0 1D 2F DC */ lhz r0, 0x2fdc(r29) -/* 800AC4D0 28 00 01 03 */ cmplwi r0, 0x103 -/* 800AC4D4 40 82 00 14 */ bne lbl_800AC4E8 -/* 800AC4D8 2C 1E 00 15 */ cmpwi r30, 0x15 -/* 800AC4DC 40 80 00 0C */ bge lbl_800AC4E8 -/* 800AC4E0 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 800AC4E4 40 80 00 14 */ bge lbl_800AC4F8 -lbl_800AC4E8: -/* 800AC4E8 2C 1E 00 14 */ cmpwi r30, 0x14 -/* 800AC4EC 40 82 00 20 */ bne lbl_800AC50C -/* 800AC4F0 28 00 00 FF */ cmplwi r0, 0xff -/* 800AC4F4 41 82 00 18 */ beq lbl_800AC50C -lbl_800AC4F8: -/* 800AC4F8 38 1E FF F0 */ addi r0, r30, -16 -/* 800AC4FC 54 00 10 3A */ slwi r0, r0, 2 -/* 800AC500 38 7F 25 CC */ addi r3, r31, 0x25cc -/* 800AC504 7C 63 02 14 */ add r3, r3, r0 -/* 800AC508 48 00 00 38 */ b lbl_800AC540 -lbl_800AC50C: -/* 800AC50C 7F A3 EB 78 */ mr r3, r29 -/* 800AC510 48 04 78 49 */ bl checkFishingRodAndLureItem__9daAlink_cCFv -/* 800AC514 2C 03 00 00 */ cmpwi r3, 0 -/* 800AC518 41 82 00 1C */ beq lbl_800AC534 -/* 800AC51C 2C 1E 00 1C */ cmpwi r30, 0x1c -/* 800AC520 40 80 00 14 */ bge lbl_800AC534 -/* 800AC524 57 C0 10 3A */ slwi r0, r30, 2 -/* 800AC528 38 7F 25 E0 */ addi r3, r31, 0x25e0 -/* 800AC52C 7C 63 02 14 */ add r3, r3, r0 -/* 800AC530 48 00 00 10 */ b lbl_800AC540 -lbl_800AC534: -/* 800AC534 1C 1E 00 0C */ mulli r0, r30, 0xc -/* 800AC538 38 7F 26 50 */ addi r3, r31, 0x2650 -/* 800AC53C 7C 63 02 14 */ add r3, r3, r0 -lbl_800AC540: -/* 800AC540 39 61 00 20 */ addi r11, r1, 0x20 -/* 800AC544 48 2B 5C E5 */ bl _restgpr_29 -/* 800AC548 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800AC54C 7C 08 03 A6 */ mtlr r0 -/* 800AC550 38 21 00 20 */ addi r1, r1, 0x20 -/* 800AC554 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getMoveGroundAngleSpeedRate__9daAlink_cFv.s b/asm/d/a/d_a_alink/getMoveGroundAngleSpeedRate__9daAlink_cFv.s deleted file mode 100644 index f2a370fcd2c..00000000000 --- a/asm/d/a/d_a_alink/getMoveGroundAngleSpeedRate__9daAlink_cFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_800ADD88: -/* 800ADD88 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ADD8C 7C 08 02 A6 */ mflr r0 -/* 800ADD90 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ADD94 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800ADD98 7C 7F 1B 78 */ mr r31, r3 -/* 800ADD9C 80 03 31 74 */ lwz r0, 0x3174(r3) -/* 800ADDA0 2C 00 00 08 */ cmpwi r0, 8 -/* 800ADDA4 41 82 00 1C */ beq lbl_800ADDC0 -/* 800ADDA8 80 1F 05 70 */ lwz r0, 0x570(r31) -/* 800ADDAC 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 800ADDB0 40 82 00 10 */ bne lbl_800ADDC0 -/* 800ADDB4 80 1F 19 9C */ lwz r0, 0x199c(r31) -/* 800ADDB8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 800ADDBC 40 82 00 0C */ bne lbl_800ADDC8 -lbl_800ADDC0: -/* 800ADDC0 38 60 00 00 */ li r3, 0 -/* 800ADDC4 48 00 00 10 */ b lbl_800ADDD4 -lbl_800ADDC8: -/* 800ADDC8 38 9F 1A 60 */ addi r4, r31, 0x1a60 -/* 800ADDCC A8 BF 04 DE */ lha r5, 0x4de(r31) -/* 800ADDD0 48 00 22 C9 */ bl getGroundAngle__9daAlink_cFP13cBgS_PolyInfos -lbl_800ADDD4: -/* 800ADDD4 C0 3F 33 98 */ lfs f1, 0x3398(r31) -/* 800ADDD8 3C 80 80 44 */ lis r4, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 800ADDDC 38 84 9A 20 */ addi r4, r4, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 800ADDE0 54 60 04 38 */ rlwinm r0, r3, 0, 0x10, 0x1c -/* 800ADDE4 7C 64 02 14 */ add r3, r4, r0 -/* 800ADDE8 C0 03 00 04 */ lfs f0, 4(r3) -/* 800ADDEC EC 21 00 32 */ fmuls f1, f1, f0 -/* 800ADDF0 C0 1F 05 94 */ lfs f0, 0x594(r31) -/* 800ADDF4 EC 01 00 24 */ fdivs f0, f1, f0 -/* 800ADDF8 FC 00 02 10 */ fabs f0, f0 -/* 800ADDFC FC 20 00 18 */ frsp f1, f0 -/* 800ADE00 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800ADE04 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ADE08 7C 08 03 A6 */ mtlr r0 -/* 800ADE0C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ADE10 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl.s b/asm/d/a/d_a_alink/getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl.s deleted file mode 100644 index 2f2d2ce6eaf..00000000000 --- a/asm/d/a/d_a_alink/getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_800AC610: -/* 800AC610 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 800AC614 7C 08 02 A6 */ mflr r0 -/* 800AC618 90 01 00 34 */ stw r0, 0x34(r1) -/* 800AC61C 39 61 00 30 */ addi r11, r1, 0x30 -/* 800AC620 48 2B 5B A9 */ bl _savegpr_24 -/* 800AC624 7C 7C 1B 78 */ mr r28, r3 -/* 800AC628 7C BF 2B 78 */ mr r31, r5 -/* 800AC62C 7C DD 33 78 */ mr r29, r6 -/* 800AC630 7C FE 3B 78 */ mr r30, r7 -/* 800AC634 7D 18 43 78 */ mr r24, r8 -/* 800AC638 4B FF FE 19 */ bl getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM -/* 800AC63C 7C 7B 1B 78 */ mr r27, r3 -/* 800AC640 80 1C 05 70 */ lwz r0, 0x570(r28) -/* 800AC644 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d -/* 800AC648 90 1C 05 70 */ stw r0, 0x570(r28) -/* 800AC64C 7F 83 E3 78 */ mr r3, r28 -/* 800AC650 1F 3E 00 14 */ mulli r25, r30, 0x14 -/* 800AC654 7F 5C CA 14 */ add r26, r28, r25 -/* 800AC658 38 9A 1F 58 */ addi r4, r26, 0x1f58 -/* 800AC65C A0 BB 00 00 */ lhz r5, 0(r27) -/* 800AC660 7F 06 C3 78 */ mr r6, r24 -/* 800AC664 4B FF 76 A9 */ bl getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl -/* 800AC668 90 7F 00 00 */ stw r3, 0(r31) -/* 800AC66C 80 1F 00 00 */ lwz r0, 0(r31) -/* 800AC670 28 00 00 00 */ cmplwi r0, 0 -/* 800AC674 41 82 00 0C */ beq lbl_800AC680 -/* 800AC678 3B E0 00 01 */ li r31, 1 -/* 800AC67C 48 00 00 18 */ b lbl_800AC694 -lbl_800AC680: -/* 800AC680 57 C0 18 38 */ slwi r0, r30, 3 -/* 800AC684 7C 7C 02 14 */ add r3, r28, r0 -/* 800AC688 80 03 1F 2C */ lwz r0, 0x1f2c(r3) -/* 800AC68C 90 1F 00 00 */ stw r0, 0(r31) -/* 800AC690 3B E0 00 00 */ li r31, 0 -lbl_800AC694: -/* 800AC694 A0 1B 00 00 */ lhz r0, 0(r27) -/* 800AC698 A0 BB 00 02 */ lhz r5, 2(r27) -/* 800AC69C 7C 00 28 40 */ cmplw r0, r5 -/* 800AC6A0 41 82 00 54 */ beq lbl_800AC6F4 -/* 800AC6A4 3C 18 FF FF */ addis r0, r24, 0xffff -/* 800AC6A8 28 00 08 00 */ cmplwi r0, 0x800 -/* 800AC6AC 40 82 00 0C */ bne lbl_800AC6B8 -/* 800AC6B0 20 1E 00 03 */ subfic r0, r30, 3 -/* 800AC6B4 1F 00 2C 00 */ mulli r24, r0, 0x2c00 -lbl_800AC6B8: -/* 800AC6B8 7F 83 E3 78 */ mr r3, r28 -/* 800AC6BC 38 9A 1F 94 */ addi r4, r26, 0x1f94 -/* 800AC6C0 7F 06 C3 78 */ mr r6, r24 -/* 800AC6C4 4B FF 76 49 */ bl getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl -/* 800AC6C8 90 7D 00 00 */ stw r3, 0(r29) -/* 800AC6CC 80 1D 00 00 */ lwz r0, 0(r29) -/* 800AC6D0 28 00 00 00 */ cmplwi r0, 0 -/* 800AC6D4 41 82 00 0C */ beq lbl_800AC6E0 -/* 800AC6D8 63 FF 00 01 */ ori r31, r31, 1 -/* 800AC6DC 48 00 00 40 */ b lbl_800AC71C -lbl_800AC6E0: -/* 800AC6E0 57 C0 18 38 */ slwi r0, r30, 3 -/* 800AC6E4 7C 7C 02 14 */ add r3, r28, r0 -/* 800AC6E8 80 03 1F 44 */ lwz r0, 0x1f44(r3) -/* 800AC6EC 90 1D 00 00 */ stw r0, 0(r29) -/* 800AC6F0 48 00 00 2C */ b lbl_800AC71C -lbl_800AC6F4: -/* 800AC6F4 7C 9C CA 14 */ add r4, r28, r25 -/* 800AC6F8 A0 04 1F 94 */ lhz r0, 0x1f94(r4) -/* 800AC6FC 28 00 FF FF */ cmplwi r0, 0xffff -/* 800AC700 41 82 00 08 */ beq lbl_800AC708 -/* 800AC704 63 FF 00 01 */ ori r31, r31, 1 -lbl_800AC708: -/* 800AC708 38 00 00 00 */ li r0, 0 -/* 800AC70C 90 1D 00 00 */ stw r0, 0(r29) -/* 800AC710 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 800AC714 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 800AC718 B0 04 1F 94 */ sth r0, 0x1f94(r4) -lbl_800AC71C: -/* 800AC71C 7F E3 FB 78 */ mr r3, r31 -/* 800AC720 39 61 00 30 */ addi r11, r1, 0x30 -/* 800AC724 48 2B 5A F1 */ bl _restgpr_24 -/* 800AC728 80 01 00 34 */ lwz r0, 0x34(r1) -/* 800AC72C 7C 08 03 A6 */ mtlr r0 -/* 800AC730 38 21 00 30 */ addi r1, r1, 0x30 -/* 800AC734 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/orderTalk__9daAlink_cFi.s b/asm/d/a/d_a_alink/orderTalk__9daAlink_cFi.s deleted file mode 100644 index 8a37359778e..00000000000 --- a/asm/d/a/d_a_alink/orderTalk__9daAlink_cFi.s +++ /dev/null @@ -1,94 +0,0 @@ -lbl_800B7BF8: -/* 800B7BF8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800B7BFC 7C 08 02 A6 */ mflr r0 -/* 800B7C00 90 01 00 24 */ stw r0, 0x24(r1) -/* 800B7C04 39 61 00 20 */ addi r11, r1, 0x20 -/* 800B7C08 48 2A A5 D1 */ bl _savegpr_28 -/* 800B7C0C 7C 7C 1B 78 */ mr r28, r3 -/* 800B7C10 7C 9D 23 78 */ mr r29, r4 -/* 800B7C14 4B FF CD 3D */ bl notTalk__9daAlink_cFv -/* 800B7C18 2C 03 00 00 */ cmpwi r3, 0 -/* 800B7C1C 41 82 00 0C */ beq lbl_800B7C28 -/* 800B7C20 38 60 00 00 */ li r3, 0 -/* 800B7C24 48 00 01 10 */ b lbl_800B7D34 -lbl_800B7C28: -/* 800B7C28 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800B7C2C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800B7C30 88 03 5E 24 */ lbz r0, 0x5e24(r3) -/* 800B7C34 28 00 00 1C */ cmplwi r0, 0x1c -/* 800B7C38 41 82 00 2C */ beq lbl_800B7C64 -/* 800B7C3C 28 00 00 1B */ cmplwi r0, 0x1b -/* 800B7C40 41 82 00 24 */ beq lbl_800B7C64 -/* 800B7C44 28 00 00 80 */ cmplwi r0, 0x80 -/* 800B7C48 41 82 00 1C */ beq lbl_800B7C64 -/* 800B7C4C 28 00 00 3B */ cmplwi r0, 0x3b -/* 800B7C50 41 82 00 14 */ beq lbl_800B7C64 -/* 800B7C54 28 00 00 3C */ cmplwi r0, 0x3c -/* 800B7C58 41 82 00 0C */ beq lbl_800B7C64 -/* 800B7C5C 28 00 00 08 */ cmplwi r0, 8 -/* 800B7C60 40 82 00 2C */ bne lbl_800B7C8C -lbl_800B7C64: -/* 800B7C64 88 1C 2F 8D */ lbz r0, 0x2f8d(r28) -/* 800B7C68 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 800B7C6C 41 82 00 20 */ beq lbl_800B7C8C -/* 800B7C70 7F 83 E3 78 */ mr r3, r28 -/* 800B7C74 80 9C 27 F4 */ lwz r4, 0x27f4(r28) -/* 800B7C78 38 A0 00 00 */ li r5, 0 -/* 800B7C7C 38 C0 00 00 */ li r6, 0 -/* 800B7C80 4B F6 33 E9 */ bl fopAcM_orderTalkEvent__FP10fopAc_ac_cP10fopAc_ac_cUsUs -/* 800B7C84 38 60 00 01 */ li r3, 1 -/* 800B7C88 48 00 00 AC */ b lbl_800B7D34 -lbl_800B7C8C: -/* 800B7C8C 80 1C 05 74 */ lwz r0, 0x574(r28) -/* 800B7C90 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 800B7C94 40 82 00 88 */ bne lbl_800B7D1C -/* 800B7C98 7F 83 E3 78 */ mr r3, r28 -/* 800B7C9C 80 9C 27 E8 */ lwz r4, 0x27e8(r28) -/* 800B7CA0 80 BC 27 F8 */ lwz r5, 0x27f8(r28) -/* 800B7CA4 4B FF CA D9 */ bl checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c -/* 800B7CA8 2C 03 00 00 */ cmpwi r3, 0 -/* 800B7CAC 41 82 00 70 */ beq lbl_800B7D1C -/* 800B7CB0 3B C0 00 00 */ li r30, 0 -/* 800B7CB4 3B E0 00 01 */ li r31, 1 -lbl_800B7CB8: -/* 800B7CB8 7F C3 F3 78 */ mr r3, r30 -/* 800B7CBC 4B F7 62 61 */ bl dComIfGp_getSelectItem__Fi -/* 800B7CC0 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 800B7CC4 48 0A 6F 15 */ bl checkTradeItem__9daPy_py_cFi -/* 800B7CC8 2C 03 00 00 */ cmpwi r3, 0 -/* 800B7CCC 41 82 00 44 */ beq lbl_800B7D10 -/* 800B7CD0 7F 83 E3 78 */ mr r3, r28 -/* 800B7CD4 7F E0 F0 30 */ slw r0, r31, r30 -/* 800B7CD8 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 800B7CDC 4B FF A8 F1 */ bl itemTriggerCheck__9daAlink_cFUc -/* 800B7CE0 2C 03 00 00 */ cmpwi r3, 0 -/* 800B7CE4 41 82 00 2C */ beq lbl_800B7D10 -/* 800B7CE8 57 C0 08 3C */ slwi r0, r30, 1 -/* 800B7CEC 38 62 98 B0 */ la r3, itemTalkType(r2) /* 804532B0-_SDA2_BASE_ */ -/* 800B7CF0 7C 63 02 2E */ lhzx r3, r3, r0 -/* 800B7CF4 7F 84 E3 78 */ mr r4, r28 -/* 800B7CF8 80 BC 27 F8 */ lwz r5, 0x27f8(r28) -/* 800B7CFC 38 C0 00 00 */ li r6, 0 -/* 800B7D00 38 E0 00 00 */ li r7, 0 -/* 800B7D04 4B F6 33 F9 */ bl fopAcM_orderTalkItemBtnEvent__FUsP10fopAc_ac_cP10fopAc_ac_cUsUs -/* 800B7D08 38 60 00 01 */ li r3, 1 -/* 800B7D0C 48 00 00 28 */ b lbl_800B7D34 -lbl_800B7D10: -/* 800B7D10 3B DE 00 01 */ addi r30, r30, 1 -/* 800B7D14 2C 1E 00 02 */ cmpwi r30, 2 -/* 800B7D18 41 80 FF A0 */ blt lbl_800B7CB8 -lbl_800B7D1C: -/* 800B7D1C 2C 1D 00 00 */ cmpwi r29, 0 -/* 800B7D20 41 82 00 10 */ beq lbl_800B7D30 -/* 800B7D24 7F 83 E3 78 */ mr r3, r28 -/* 800B7D28 48 00 03 9D */ bl orderZTalk__9daAlink_cFv -/* 800B7D2C 48 00 00 08 */ b lbl_800B7D34 -lbl_800B7D30: -/* 800B7D30 38 60 00 00 */ li r3, 0 -lbl_800B7D34: -/* 800B7D34 39 61 00 20 */ addi r11, r1, 0x20 -/* 800B7D38 48 2A A4 ED */ bl _restgpr_28 -/* 800B7D3C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800B7D40 7C 08 03 A6 */ mtlr r0 -/* 800B7D44 38 21 00 20 */ addi r1, r1, 0x20 -/* 800B7D48 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procCoTwGate__9daAlink_cFv.s b/asm/d/a/d_a_alink/procCoTwGate__9daAlink_cFv.s deleted file mode 100644 index b7c63d17121..00000000000 --- a/asm/d/a/d_a_alink/procCoTwGate__9daAlink_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8011D7D4: -/* 8011D7D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8011D7D8 7C 08 02 A6 */ mflr r0 -/* 8011D7DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8011D7E0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8011D7E4 7C 7F 1B 78 */ mr r31, r3 -/* 8011D7E8 38 7F 1F D0 */ addi r3, r31, 0x1fd0 -/* 8011D7EC 48 04 0C E1 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 8011D7F0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8011D7F4 41 82 00 18 */ beq lbl_8011D80C -/* 8011D7F8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8011D7FC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8011D800 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 8011D804 80 9F 31 84 */ lwz r4, 0x3184(r31) -/* 8011D808 4B F2 A9 75 */ bl cutEnd__16dEvent_manager_cFi -lbl_8011D80C: -/* 8011D80C 38 00 00 07 */ li r0, 7 -/* 8011D810 98 1F 2F 99 */ stb r0, 0x2f99(r31) -/* 8011D814 38 60 00 01 */ li r3, 1 -/* 8011D818 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8011D81C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8011D820 7C 08 03 A6 */ mtlr r0 -/* 8011D824 38 21 00 10 */ addi r1, r1, 0x10 -/* 8011D828 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procCutFastReady__9daAlink_cFv.s b/asm/d/a/d_a_alink/procCutFastReady__9daAlink_cFv.s deleted file mode 100644 index 3e6eeed69d8..00000000000 --- a/asm/d/a/d_a_alink/procCutFastReady__9daAlink_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8011EB8C: -/* 8011EB8C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8011EB90 7C 08 02 A6 */ mflr r0 -/* 8011EB94 90 01 00 14 */ stw r0, 0x14(r1) -/* 8011EB98 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8011EB9C 7C 7F 1B 78 */ mr r31, r3 -/* 8011EBA0 38 7F 20 48 */ addi r3, r31, 0x2048 -/* 8011EBA4 48 03 F9 29 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 8011EBA8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8011EBAC 41 82 00 18 */ beq lbl_8011EBC4 -/* 8011EBB0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8011EBB4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8011EBB8 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 8011EBBC 80 9F 31 84 */ lwz r4, 0x3184(r31) -/* 8011EBC0 4B F2 95 BD */ bl cutEnd__16dEvent_manager_cFi -lbl_8011EBC4: -/* 8011EBC4 38 60 00 01 */ li r3, 1 -/* 8011EBC8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8011EBCC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8011EBD0 7C 08 03 A6 */ mtlr r0 -/* 8011EBD4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8011EBD8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procDemoCommon__9daAlink_cFv.s b/asm/d/a/d_a_alink/procDemoCommon__9daAlink_cFv.s deleted file mode 100644 index bd7768d01d5..00000000000 --- a/asm/d/a/d_a_alink/procDemoCommon__9daAlink_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_801195C0: -/* 801195C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801195C4 7C 08 02 A6 */ mflr r0 -/* 801195C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 801195CC 7C 64 1B 78 */ mr r4, r3 -/* 801195D0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801195D4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801195D8 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 801195DC 80 84 31 84 */ lwz r4, 0x3184(r4) -/* 801195E0 4B F2 EB 9D */ bl cutEnd__16dEvent_manager_cFi -/* 801195E4 38 60 00 01 */ li r3, 1 -/* 801195E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801195EC 7C 08 03 A6 */ mtlr r0 -/* 801195F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801195F4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setDeadRideSyncPos__9daAlink_cFv.s b/asm/d/a/d_a_alink/setDeadRideSyncPos__9daAlink_cFv.s deleted file mode 100644 index 4d9b10983ec..00000000000 --- a/asm/d/a/d_a_alink/setDeadRideSyncPos__9daAlink_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80118BF4: -/* 80118BF4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80118BF8 7C 08 02 A6 */ mflr r0 -/* 80118BFC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80118C00 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80118C04 93 C1 00 08 */ stw r30, 8(r1) -/* 80118C08 7C 7E 1B 78 */ mr r30, r3 -/* 80118C0C 80 03 31 A0 */ lwz r0, 0x31a0(r3) -/* 80118C10 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15 -/* 80118C14 41 82 00 6C */ beq lbl_80118C80 -/* 80118C18 80 1E 28 18 */ lwz r0, 0x2818(r30) -/* 80118C1C 28 00 00 00 */ cmplwi r0, 0 -/* 80118C20 41 82 00 60 */ beq lbl_80118C80 -/* 80118C24 38 00 00 00 */ li r0, 0 -/* 80118C28 88 7E 2F AA */ lbz r3, 0x2faa(r30) -/* 80118C2C 28 03 00 01 */ cmplwi r3, 1 -/* 80118C30 41 82 00 0C */ beq lbl_80118C3C -/* 80118C34 28 03 00 02 */ cmplwi r3, 2 -/* 80118C38 40 82 00 08 */ bne lbl_80118C40 -lbl_80118C3C: -/* 80118C3C 38 00 00 01 */ li r0, 1 -lbl_80118C40: -/* 80118C40 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 80118C44 41 82 00 10 */ beq lbl_80118C54 -/* 80118C48 7F C3 F3 78 */ mr r3, r30 -/* 80118C4C 4B FD 4D D9 */ bl setSyncRidePos__9daAlink_cFv -/* 80118C50 48 00 00 30 */ b lbl_80118C80 -lbl_80118C54: -/* 80118C54 7F C3 F3 78 */ mr r3, r30 -/* 80118C58 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 80118C5C 81 8C 01 98 */ lwz r12, 0x198(r12) -/* 80118C60 7D 89 03 A6 */ mtctr r12 -/* 80118C64 4E 80 04 21 */ bctrl -/* 80118C68 28 03 00 00 */ cmplwi r3, 0 -/* 80118C6C 41 82 00 14 */ beq lbl_80118C80 -/* 80118C70 AB FE 04 E6 */ lha r31, 0x4e6(r30) -/* 80118C74 7F C3 F3 78 */ mr r3, r30 -/* 80118C78 4B FF 4F 51 */ bl setSpinnerSyncPos__9daAlink_cFv -/* 80118C7C B3 FE 04 E6 */ sth r31, 0x4e6(r30) -lbl_80118C80: -/* 80118C80 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80118C84 83 C1 00 08 */ lwz r30, 8(r1) -/* 80118C88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80118C8C 7C 08 03 A6 */ mtlr r0 -/* 80118C90 38 21 00 10 */ addi r1, r1, 0x10 -/* 80118C94 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setGetSubBgm__9daAlink_cFi.s b/asm/d/a/d_a_alink/setGetSubBgm__9daAlink_cFi.s deleted file mode 100644 index 953f8f23245..00000000000 --- a/asm/d/a/d_a_alink/setGetSubBgm__9daAlink_cFi.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_8011A688: -/* 8011A688 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8011A68C 7C 08 02 A6 */ mflr r0 -/* 8011A690 90 01 00 14 */ stw r0, 0x14(r1) -/* 8011A694 3C A0 80 39 */ lis r5, getSeType@ha /* 0x80391A5C@ha */ -/* 8011A698 38 A5 1A 5C */ addi r5, r5, getSeType@l /* 0x80391A5C@l */ -/* 8011A69C 7C 85 20 AE */ lbzx r4, r5, r4 -/* 8011A6A0 28 04 00 03 */ cmplwi r4, 3 -/* 8011A6A4 40 82 00 14 */ bne lbl_8011A6B8 -/* 8011A6A8 A8 03 30 10 */ lha r0, 0x3010(r3) -/* 8011A6AC 2C 00 00 00 */ cmpwi r0, 0 -/* 8011A6B0 40 82 00 08 */ bne lbl_8011A6B8 -/* 8011A6B4 38 80 00 07 */ li r4, 7 -lbl_8011A6B8: -/* 8011A6B8 28 04 00 08 */ cmplwi r4, 8 -/* 8011A6BC 41 82 00 30 */ beq lbl_8011A6EC -/* 8011A6C0 80 6D 8D E8 */ lwz r3, mAudioMgrPtr__10Z2AudioMgr(r13) -/* 8011A6C4 38 63 03 D0 */ addi r3, r3, 0x3d0 -/* 8011A6C8 54 80 10 3A */ slwi r0, r4, 2 -/* 8011A6CC 3C 80 80 39 */ lis r4, bgmLabel@ha /* 0x80391B5C@ha */ -/* 8011A6D0 38 84 1B 5C */ addi r4, r4, bgmLabel@l /* 0x80391B5C@l */ -/* 8011A6D4 7C 84 00 2E */ lwzx r4, r4, r0 -/* 8011A6D8 48 19 4D C5 */ bl subBgmStart__8Z2SeqMgrFUl -/* 8011A6DC 38 00 00 01 */ li r0, 1 -/* 8011A6E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8011A6E4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8011A6E8 98 03 5E B4 */ stb r0, 0x5eb4(r3) -lbl_8011A6EC: -/* 8011A6EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8011A6F0 7C 08 03 A6 */ mtlr r0 -/* 8011A6F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8011A6F8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s b/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s deleted file mode 100644 index 89bce7069ea..00000000000 --- a/asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s +++ /dev/null @@ -1,129 +0,0 @@ -lbl_800B221C: -/* 800B221C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800B2220 7C 08 02 A6 */ mflr r0 -/* 800B2224 90 01 00 24 */ stw r0, 0x24(r1) -/* 800B2228 39 61 00 20 */ addi r11, r1, 0x20 -/* 800B222C 48 2A FF AD */ bl _savegpr_28 -/* 800B2230 7C 7F 1B 78 */ mr r31, r3 -/* 800B2234 7C 9C 23 78 */ mr r28, r4 -/* 800B2238 7C BD 2B 78 */ mr r29, r5 -/* 800B223C 7C DE 33 78 */ mr r30, r6 -/* 800B2240 48 06 39 E1 */ bl checkEventRun__9daAlink_cCFv -/* 800B2244 2C 03 00 00 */ cmpwi r3, 0 -/* 800B2248 40 82 00 18 */ bne lbl_800B2260 -/* 800B224C 2C 1E 00 00 */ cmpwi r30, 0 -/* 800B2250 40 82 00 10 */ bne lbl_800B2260 -/* 800B2254 88 1F 05 6A */ lbz r0, 0x56a(r31) -/* 800B2258 28 00 00 00 */ cmplwi r0, 0 -/* 800B225C 41 82 01 88 */ beq lbl_800B23E4 -lbl_800B2260: -/* 800B2260 28 1C 00 00 */ cmplwi r28, 0 -/* 800B2264 41 82 00 78 */ beq lbl_800B22DC -/* 800B2268 C0 1C 00 00 */ lfs f0, 0(r28) -/* 800B226C D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 800B2270 C0 1C 00 04 */ lfs f0, 4(r28) -/* 800B2274 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 800B2278 C0 1C 00 08 */ lfs f0, 8(r28) -/* 800B227C D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 800B2280 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 800B2284 D0 1F 04 BC */ stfs f0, 0x4bc(r31) -/* 800B2288 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 800B228C D0 1F 04 C0 */ stfs f0, 0x4c0(r31) -/* 800B2290 C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 800B2294 D0 1F 04 C4 */ stfs f0, 0x4c4(r31) -/* 800B2298 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 800B229C D0 1F 37 98 */ stfs f0, 0x3798(r31) -/* 800B22A0 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 800B22A4 D0 1F 37 9C */ stfs f0, 0x379c(r31) -/* 800B22A8 C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 800B22AC D0 1F 37 A0 */ stfs f0, 0x37a0(r31) -/* 800B22B0 80 1F 05 88 */ lwz r0, 0x588(r31) -/* 800B22B4 64 00 00 80 */ oris r0, r0, 0x80 -/* 800B22B8 90 1F 05 88 */ stw r0, 0x588(r31) -/* 800B22BC 80 1F 05 90 */ lwz r0, 0x590(r31) -/* 800B22C0 60 00 01 00 */ ori r0, r0, 0x100 -/* 800B22C4 90 1F 05 90 */ stw r0, 0x590(r31) -/* 800B22C8 80 1F 06 14 */ lwz r0, 0x614(r31) -/* 800B22CC 28 00 00 59 */ cmplwi r0, 0x59 -/* 800B22D0 41 82 00 0C */ beq lbl_800B22DC -/* 800B22D4 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800B22D8 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -lbl_800B22DC: -/* 800B22DC B3 BF 04 E6 */ sth r29, 0x4e6(r31) -/* 800B22E0 B3 BF 04 DE */ sth r29, 0x4de(r31) -/* 800B22E4 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800B22E8 B0 1F 2F E6 */ sth r0, 0x2fe6(r31) -/* 800B22EC A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800B22F0 28 00 01 45 */ cmplwi r0, 0x145 -/* 800B22F4 41 82 00 0C */ beq lbl_800B2300 -/* 800B22F8 28 00 00 E2 */ cmplwi r0, 0xe2 -/* 800B22FC 40 82 00 2C */ bne lbl_800B2328 -lbl_800B2300: -/* 800B2300 80 1F 05 74 */ lwz r0, 0x574(r31) -/* 800B2304 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 800B2308 40 82 00 20 */ bne lbl_800B2328 -/* 800B230C 80 1F 31 98 */ lwz r0, 0x3198(r31) -/* 800B2310 2C 00 00 00 */ cmpwi r0, 0 -/* 800B2314 41 82 00 14 */ beq lbl_800B2328 -/* 800B2318 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 800B231C D0 1F 37 C8 */ stfs f0, 0x37c8(r31) -/* 800B2320 C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 800B2324 D0 1F 37 D0 */ stfs f0, 0x37d0(r31) -lbl_800B2328: -/* 800B2328 80 1F 05 70 */ lwz r0, 0x570(r31) -/* 800B232C 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 800B2330 41 82 00 1C */ beq lbl_800B234C -/* 800B2334 C0 3F 36 AC */ lfs f1, 0x36ac(r31) -/* 800B2338 48 1B 5E AD */ bl cBgW_CheckBGround__Ff -/* 800B233C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800B2340 41 82 00 0C */ beq lbl_800B234C -/* 800B2344 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800B2348 B0 1F 31 18 */ sth r0, 0x3118(r31) -lbl_800B234C: -/* 800B234C 7F E3 FB 78 */ mr r3, r31 -/* 800B2350 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800B2354 81 8C 01 88 */ lwz r12, 0x188(r12) -/* 800B2358 7D 89 03 A6 */ mtctr r12 -/* 800B235C 4E 80 04 21 */ bctrl -/* 800B2360 28 03 00 00 */ cmplwi r3, 0 -/* 800B2364 41 82 00 28 */ beq lbl_800B238C -/* 800B2368 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800B236C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800B2370 80 63 5D B8 */ lwz r3, 0x5db8(r3) -/* 800B2374 38 9F 04 D0 */ addi r4, r31, 0x4d0 -/* 800B2378 A8 BF 04 E6 */ lha r5, 0x4e6(r31) -/* 800B237C 39 83 18 E0 */ addi r12, r3, 0x18e0 -/* 800B2380 48 2A FD 05 */ bl __ptmf_scall -/* 800B2384 60 00 00 00 */ nop -/* 800B2388 48 00 00 54 */ b lbl_800B23DC -lbl_800B238C: -/* 800B238C 7F E3 FB 78 */ mr r3, r31 -/* 800B2390 81 9F 06 28 */ lwz r12, 0x628(r31) -/* 800B2394 81 8C 01 98 */ lwz r12, 0x198(r12) -/* 800B2398 7D 89 03 A6 */ mtctr r12 -/* 800B239C 4E 80 04 21 */ bctrl -/* 800B23A0 28 03 00 00 */ cmplwi r3, 0 -/* 800B23A4 41 82 00 38 */ beq lbl_800B23DC -/* 800B23A8 80 7F 28 18 */ lwz r3, 0x2818(r31) -/* 800B23AC C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 800B23B0 D0 03 04 D0 */ stfs f0, 0x4d0(r3) -/* 800B23B4 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 800B23B8 D0 03 04 D4 */ stfs f0, 0x4d4(r3) -/* 800B23BC C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 800B23C0 D0 03 04 D8 */ stfs f0, 0x4d8(r3) -/* 800B23C4 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800B23C8 B0 03 04 E6 */ sth r0, 0x4e6(r3) -/* 800B23CC A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800B23D0 B0 03 04 DE */ sth r0, 0x4de(r3) -/* 800B23D4 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800B23D8 D0 03 04 FC */ stfs f0, 0x4fc(r3) -lbl_800B23DC: -/* 800B23DC 38 7F 08 14 */ addi r3, r31, 0x814 -/* 800B23E0 48 1B 15 7D */ bl ClrCcMove__9cCcD_SttsFv -lbl_800B23E4: -/* 800B23E4 39 61 00 20 */ addi r11, r1, 0x20 -/* 800B23E8 48 2A FE 3D */ bl _restgpr_28 -/* 800B23EC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800B23F0 7C 08 03 A6 */ mtlr r0 -/* 800B23F4 38 21 00 20 */ addi r1, r1, 0x20 -/* 800B23F8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setSandDownBgCheckWallH__9daAlink_cFv.s b/asm/d/a/d_a_alink/setSandDownBgCheckWallH__9daAlink_cFv.s deleted file mode 100644 index 97b0490248c..00000000000 --- a/asm/d/a/d_a_alink/setSandDownBgCheckWallH__9daAlink_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_800B172C: -/* 800B172C 80 03 31 A0 */ lwz r0, 0x31a0(r3) -/* 800B1730 54 00 05 6B */ rlwinm. r0, r0, 0, 0x15, 0x15 -/* 800B1734 4C 82 00 20 */ bnelr -/* 800B1738 38 80 00 00 */ li r4, 0 -/* 800B173C 38 A0 00 00 */ li r5, 0 -/* 800B1740 38 00 00 03 */ li r0, 3 -/* 800B1744 7C 09 03 A6 */ mtctr r0 -lbl_800B1748: -/* 800B1748 38 05 2B AC */ addi r0, r5, 0x2bac -/* 800B174C 7C 23 04 2E */ lfsx f1, r3, r0 -/* 800B1750 C0 03 2B A8 */ lfs f0, 0x2ba8(r3) -/* 800B1754 EC 01 00 2A */ fadds f0, f1, f0 -/* 800B1758 38 04 18 E0 */ addi r0, r4, 0x18e0 -/* 800B175C 7C 03 05 2E */ stfsx f0, r3, r0 -/* 800B1760 38 84 00 40 */ addi r4, r4, 0x40 -/* 800B1764 38 A5 00 04 */ addi r5, r5, 4 -/* 800B1768 42 00 FF E0 */ bdnz lbl_800B1748 -/* 800B176C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c.s b/asm/d/a/d_a_alink/setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c.s deleted file mode 100644 index 8184e0ecc6a..00000000000 --- a/asm/d/a/d_a_alink/setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_800AD0F4: -/* 800AD0F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800AD0F8 7C 08 02 A6 */ mflr r0 -/* 800AD0FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800AD100 7C A6 2B 78 */ mr r6, r5 -/* 800AD104 C0 25 00 04 */ lfs f1, 4(r5) -/* 800AD108 C0 45 00 08 */ lfs f2, 8(r5) -/* 800AD10C A8 A5 00 00 */ lha r5, 0(r5) -/* 800AD110 C0 66 00 0C */ lfs f3, 0xc(r6) -/* 800AD114 4B FF FE F9 */ bl setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf -/* 800AD118 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800AD11C 7C 08 03 A6 */ mtlr r0 -/* 800AD120 38 21 00 10 */ addi r1, r1, 0x10 -/* 800AD124 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf.s b/asm/d/a/d_a_alink/setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf.s deleted file mode 100644 index fcbb8b66a5d..00000000000 --- a/asm/d/a/d_a_alink/setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_800AD00C: -/* 800AD00C 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 800AD010 7C 08 02 A6 */ mflr r0 -/* 800AD014 90 01 00 54 */ stw r0, 0x54(r1) -/* 800AD018 DB E1 00 40 */ stfd f31, 0x40(r1) -/* 800AD01C F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */ -/* 800AD020 DB C1 00 30 */ stfd f30, 0x30(r1) -/* 800AD024 F3 C1 00 38 */ psq_st f30, 56(r1), 0, 0 /* qr0 */ -/* 800AD028 DB A1 00 20 */ stfd f29, 0x20(r1) -/* 800AD02C F3 A1 00 28 */ psq_st f29, 40(r1), 0, 0 /* qr0 */ -/* 800AD030 39 61 00 20 */ addi r11, r1, 0x20 -/* 800AD034 48 2B 51 A9 */ bl _savegpr_29 -/* 800AD038 7C 7D 1B 78 */ mr r29, r3 -/* 800AD03C 7C 9E 23 78 */ mr r30, r4 -/* 800AD040 FF A0 08 90 */ fmr f29, f1 -/* 800AD044 FF C0 10 90 */ fmr f30, f2 -/* 800AD048 7C BF 2B 78 */ mr r31, r5 -/* 800AD04C FF E0 18 90 */ fmr f31, f3 -/* 800AD050 38 A1 00 0C */ addi r5, r1, 0xc -/* 800AD054 38 C1 00 08 */ addi r6, r1, 8 -/* 800AD058 38 E0 00 00 */ li r7, 0 -/* 800AD05C 3D 00 00 01 */ lis r8, 0x0001 /* 0x00010800@ha */ -/* 800AD060 39 08 08 00 */ addi r8, r8, 0x0800 /* 0x00010800@l */ -/* 800AD064 4B FF F5 AD */ bl getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl -/* 800AD068 7F A3 EB 78 */ mr r3, r29 -/* 800AD06C 80 81 00 0C */ lwz r4, 0xc(r1) -/* 800AD070 80 A1 00 08 */ lwz r5, 8(r1) -/* 800AD074 FC 20 E8 90 */ fmr f1, f29 -/* 800AD078 FC 40 F0 90 */ fmr f2, f30 -/* 800AD07C 7F E6 FB 78 */ mr r6, r31 -/* 800AD080 4B FF FC C1 */ bl commonSingleAnime__9daAlink_cFP15J3DAnmTransformP15J3DAnmTransformffs -/* 800AD084 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800AD088 FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 800AD08C 4C 41 13 82 */ cror 2, 1, 2 -/* 800AD090 40 82 00 18 */ bne lbl_800AD0A8 -/* 800AD094 80 7D 20 60 */ lwz r3, 0x2060(r29) -/* 800AD098 FC 20 F8 90 */ fmr f1, f31 -/* 800AD09C 38 80 00 00 */ li r4, 0 -/* 800AD0A0 38 A0 00 23 */ li r5, 0x23 -/* 800AD0A4 4B F6 27 A5 */ bl initOldFrameMorf__22mDoExt_MtxCalcOldFrameFfUsUs -lbl_800AD0A8: -/* 800AD0A8 7F A3 EB 78 */ mr r3, r29 -/* 800AD0AC 7F C4 F3 78 */ mr r4, r30 -/* 800AD0B0 4B FF D2 0D */ bl setHandIndex__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 800AD0B4 7F A3 EB 78 */ mr r3, r29 -/* 800AD0B8 7F C4 F3 78 */ mr r4, r30 -/* 800AD0BC 48 00 28 ED */ bl setFaceBasicAnime__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 800AD0C0 38 60 00 01 */ li r3, 1 -/* 800AD0C4 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */ -/* 800AD0C8 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 800AD0CC E3 C1 00 38 */ psq_l f30, 56(r1), 0, 0 /* qr0 */ -/* 800AD0D0 CB C1 00 30 */ lfd f30, 0x30(r1) -/* 800AD0D4 E3 A1 00 28 */ psq_l f29, 40(r1), 0, 0 /* qr0 */ -/* 800AD0D8 CB A1 00 20 */ lfd f29, 0x20(r1) -/* 800AD0DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 800AD0E0 48 2B 51 49 */ bl _restgpr_29 -/* 800AD0E4 80 01 00 54 */ lwz r0, 0x54(r1) -/* 800AD0E8 7C 08 03 A6 */ mtlr r0 -/* 800AD0EC 38 21 00 50 */ addi r1, r1, 0x50 -/* 800AD0F0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setTalkStatus__9daAlink_cFv.s b/asm/d/a/d_a_alink/setTalkStatus__9daAlink_cFv.s deleted file mode 100644 index 7fdd44885ff..00000000000 --- a/asm/d/a/d_a_alink/setTalkStatus__9daAlink_cFv.s +++ /dev/null @@ -1,86 +0,0 @@ -lbl_800B4A08: -/* 800B4A08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800B4A0C 7C 08 02 A6 */ mflr r0 -/* 800B4A10 90 01 00 14 */ stw r0, 0x14(r1) -/* 800B4A14 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800B4A18 7C 7F 1B 78 */ mr r31, r3 -/* 800B4A1C 80 03 05 88 */ lwz r0, 0x588(r3) -/* 800B4A20 54 00 02 53 */ rlwinm. r0, r0, 0, 9, 9 -/* 800B4A24 40 82 00 10 */ bne lbl_800B4A34 -/* 800B4A28 80 BF 27 F4 */ lwz r5, 0x27f4(r31) -/* 800B4A2C 28 05 00 00 */ cmplwi r5, 0 -/* 800B4A30 40 82 00 0C */ bne lbl_800B4A3C -lbl_800B4A34: -/* 800B4A34 38 60 00 00 */ li r3, 0 -/* 800B4A38 48 00 00 E0 */ b lbl_800B4B18 -lbl_800B4A3C: -/* 800B4A3C 80 9F 27 E4 */ lwz r4, 0x27e4(r31) -/* 800B4A40 4B FF FD 3D */ bl checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c -/* 800B4A44 2C 03 00 00 */ cmpwi r3, 0 -/* 800B4A48 41 82 00 CC */ beq lbl_800B4B14 -/* 800B4A4C 7F E3 FB 78 */ mr r3, r31 -/* 800B4A50 4B FF FF 01 */ bl notTalk__9daAlink_cFv -/* 800B4A54 2C 03 00 00 */ cmpwi r3, 0 -/* 800B4A58 41 82 00 14 */ beq lbl_800B4A6C -/* 800B4A5C 7F E3 FB 78 */ mr r3, r31 -/* 800B4A60 38 80 00 90 */ li r4, 0x90 -/* 800B4A64 4B FF E7 ED */ bl setDoStatus__9daAlink_cFUc -/* 800B4A68 48 00 00 A4 */ b lbl_800B4B0C -lbl_800B4A6C: -/* 800B4A6C 80 9F 27 F4 */ lwz r4, 0x27f4(r31) -/* 800B4A70 80 64 05 5C */ lwz r3, 0x55c(r4) -/* 800B4A74 54 60 01 8D */ rlwinm. r0, r3, 0, 6, 6 -/* 800B4A78 41 82 00 0C */ beq lbl_800B4A84 -/* 800B4A7C 38 60 00 00 */ li r3, 0 -/* 800B4A80 48 00 00 98 */ b lbl_800B4B18 -lbl_800B4A84: -/* 800B4A84 54 60 02 11 */ rlwinm. r0, r3, 0, 8, 8 -/* 800B4A88 41 82 00 14 */ beq lbl_800B4A9C -/* 800B4A8C 7F E3 FB 78 */ mr r3, r31 -/* 800B4A90 38 80 00 3B */ li r4, 0x3b -/* 800B4A94 4B FF E7 BD */ bl setDoStatus__9daAlink_cFUc -/* 800B4A98 48 00 00 74 */ b lbl_800B4B0C -lbl_800B4A9C: -/* 800B4A9C 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 -/* 800B4AA0 41 82 00 30 */ beq lbl_800B4AD0 -/* 800B4AA4 A8 04 00 08 */ lha r0, 8(r4) -/* 800B4AA8 2C 00 01 20 */ cmpwi r0, 0x120 -/* 800B4AAC 40 82 00 14 */ bne lbl_800B4AC0 -/* 800B4AB0 7F E3 FB 78 */ mr r3, r31 -/* 800B4AB4 38 80 00 3C */ li r4, 0x3c -/* 800B4AB8 4B FF E7 99 */ bl setDoStatus__9daAlink_cFUc -/* 800B4ABC 48 00 00 50 */ b lbl_800B4B0C -lbl_800B4AC0: -/* 800B4AC0 7F E3 FB 78 */ mr r3, r31 -/* 800B4AC4 38 80 00 08 */ li r4, 8 -/* 800B4AC8 4B FF E7 89 */ bl setDoStatus__9daAlink_cFUc -/* 800B4ACC 48 00 00 40 */ b lbl_800B4B0C -lbl_800B4AD0: -/* 800B4AD0 54 60 00 43 */ rlwinm. r0, r3, 0, 1, 1 -/* 800B4AD4 41 82 00 14 */ beq lbl_800B4AE8 -/* 800B4AD8 7F E3 FB 78 */ mr r3, r31 -/* 800B4ADC 38 80 00 80 */ li r4, 0x80 -/* 800B4AE0 4B FF E7 71 */ bl setDoStatus__9daAlink_cFUc -/* 800B4AE4 48 00 00 28 */ b lbl_800B4B0C -lbl_800B4AE8: -/* 800B4AE8 54 60 01 09 */ rlwinm. r0, r3, 0, 4, 4 -/* 800B4AEC 41 82 00 14 */ beq lbl_800B4B00 -/* 800B4AF0 7F E3 FB 78 */ mr r3, r31 -/* 800B4AF4 38 80 00 1B */ li r4, 0x1b -/* 800B4AF8 4B FF E7 59 */ bl setDoStatus__9daAlink_cFUc -/* 800B4AFC 48 00 00 10 */ b lbl_800B4B0C -lbl_800B4B00: -/* 800B4B00 7F E3 FB 78 */ mr r3, r31 -/* 800B4B04 38 80 00 1C */ li r4, 0x1c -/* 800B4B08 4B FF E7 49 */ bl setDoStatus__9daAlink_cFUc -lbl_800B4B0C: -/* 800B4B0C 38 60 00 01 */ li r3, 1 -/* 800B4B10 48 00 00 08 */ b lbl_800B4B18 -lbl_800B4B14: -/* 800B4B14 38 60 00 00 */ li r3, 0 -lbl_800B4B18: -/* 800B4B18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800B4B1C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800B4B20 7C 08 03 A6 */ mtlr r0 -/* 800B4B24 38 21 00 10 */ addi r1, r1, 0x10 -/* 800B4B28 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setUnderAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERPC16daAlinkHIO_anm_c.s b/asm/d/a/d_a_alink/setUnderAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERPC16daAlinkHIO_anm_c.s deleted file mode 100644 index 723d6697e63..00000000000 --- a/asm/d/a/d_a_alink/setUnderAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERPC16daAlinkHIO_anm_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_800ADAB8: -/* 800ADAB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800ADABC 7C 08 02 A6 */ mflr r0 -/* 800ADAC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800ADAC4 7C C7 33 78 */ mr r7, r6 -/* 800ADAC8 C0 26 00 04 */ lfs f1, 4(r6) -/* 800ADACC C0 46 00 08 */ lfs f2, 8(r6) -/* 800ADAD0 A8 C6 00 00 */ lha r6, 0(r6) -/* 800ADAD4 C0 67 00 0C */ lfs f3, 0xc(r7) -/* 800ADAD8 4B FF FE 8D */ bl setUnderAnime__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERffsf -/* 800ADADC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800ADAE0 7C 08 03 A6 */ mtlr r0 -/* 800ADAE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800ADAE8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/BlckConnect__4cBgWFPUsPii.s b/asm/d/bg/d_bg_w/BlckConnect__4cBgWFPUsPii.s deleted file mode 100644 index 737bf6aa53c..00000000000 --- a/asm/d/bg/d_bg_w/BlckConnect__4cBgWFPUsPii.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80079770: -/* 80079770 A0 04 00 00 */ lhz r0, 0(r4) -/* 80079774 28 00 FF FF */ cmplwi r0, 0xffff -/* 80079778 40 82 00 08 */ bne lbl_80079780 -/* 8007977C B0 C4 00 00 */ sth r6, 0(r4) -lbl_80079780: -/* 80079780 80 E5 00 00 */ lwz r7, 0(r5) -/* 80079784 3C 07 00 00 */ addis r0, r7, 0 -/* 80079788 28 00 FF FF */ cmplwi r0, 0xffff -/* 8007978C 41 82 00 10 */ beq lbl_8007979C -/* 80079790 80 83 00 98 */ lwz r4, 0x98(r3) -/* 80079794 54 E0 18 38 */ slwi r0, r7, 3 -/* 80079798 7C C4 03 2E */ sthx r6, r4, r0 -lbl_8007979C: -/* 8007979C 90 C5 00 00 */ stw r6, 0(r5) -/* 800797A0 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */ -/* 800797A4 38 84 FF FF */ addi r4, r4, 0xFFFF /* 0x0000FFFF@l */ -/* 800797A8 80 63 00 98 */ lwz r3, 0x98(r3) -/* 800797AC 80 05 00 00 */ lwz r0, 0(r5) -/* 800797B0 54 00 18 38 */ slwi r0, r0, 3 -/* 800797B4 7C 83 03 2E */ sthx r4, r3, r0 -/* 800797B8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/CalcPlane__4cBgWFv.s b/asm/d/bg/d_bg_w/CalcPlane__4cBgWFv.s deleted file mode 100644 index 95dec24ef5c..00000000000 --- a/asm/d/bg/d_bg_w/CalcPlane__4cBgWFv.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_80079564: -/* 80079564 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80079568 7C 08 02 A6 */ mflr r0 -/* 8007956C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80079570 39 61 00 20 */ addi r11, r1, 0x20 -/* 80079574 48 2E 8C 61 */ bl _savegpr_27 -/* 80079578 7C 7F 1B 78 */ mr r31, r3 -/* 8007957C 80 63 00 A0 */ lwz r3, 0xa0(r3) -/* 80079580 83 83 00 0C */ lwz r28, 0xc(r3) -/* 80079584 80 1F 00 9C */ lwz r0, 0x9c(r31) -/* 80079588 28 00 00 00 */ cmplwi r0, 0 -/* 8007958C 41 82 00 C4 */ beq lbl_80079650 -/* 80079590 88 1F 00 89 */ lbz r0, 0x89(r31) -/* 80079594 28 00 00 00 */ cmplwi r0, 0 -/* 80079598 40 82 00 50 */ bne lbl_800795E8 -/* 8007959C 3B 80 00 00 */ li r28, 0 -/* 800795A0 3B A0 00 00 */ li r29, 0 -/* 800795A4 48 00 00 30 */ b lbl_800795D4 -lbl_800795A8: -/* 800795A8 80 1F 00 94 */ lwz r0, 0x94(r31) -/* 800795AC 7C 60 EA 14 */ add r3, r0, r29 -/* 800795B0 38 9F 00 7C */ addi r4, r31, 0x7c -/* 800795B4 48 2C DB E1 */ bl PSVECDotProduct -/* 800795B8 80 7F 00 94 */ lwz r3, 0x94(r31) -/* 800795BC 38 1D 00 0C */ addi r0, r29, 0xc -/* 800795C0 7C 03 04 2E */ lfsx f0, r3, r0 -/* 800795C4 EC 00 08 28 */ fsubs f0, f0, f1 -/* 800795C8 7C 03 05 2E */ stfsx f0, r3, r0 -/* 800795CC 3B 9C 00 01 */ addi r28, r28, 1 -/* 800795D0 3B BD 00 18 */ addi r29, r29, 0x18 -lbl_800795D4: -/* 800795D4 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 800795D8 80 03 00 08 */ lwz r0, 8(r3) -/* 800795DC 7C 1C 00 00 */ cmpw r28, r0 -/* 800795E0 41 80 FF C8 */ blt lbl_800795A8 -/* 800795E4 48 00 00 6C */ b lbl_80079650 -lbl_800795E8: -/* 800795E8 3B 60 00 00 */ li r27, 0 -/* 800795EC 3B C0 00 00 */ li r30, 0 -/* 800795F0 3B A0 00 00 */ li r29, 0 -/* 800795F4 48 00 00 4C */ b lbl_80079640 -lbl_800795F8: -/* 800795F8 80 1F 00 94 */ lwz r0, 0x94(r31) -/* 800795FC 7C C0 EA 14 */ add r6, r0, r29 -/* 80079600 7C BC F2 14 */ add r5, r28, r30 -/* 80079604 80 FF 00 9C */ lwz r7, 0x9c(r31) -/* 80079608 A0 05 00 00 */ lhz r0, 0(r5) -/* 8007960C 1C 00 00 0C */ mulli r0, r0, 0xc -/* 80079610 7C 67 02 14 */ add r3, r7, r0 -/* 80079614 A0 05 00 02 */ lhz r0, 2(r5) -/* 80079618 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8007961C 7C 87 02 14 */ add r4, r7, r0 -/* 80079620 A0 05 00 04 */ lhz r0, 4(r5) -/* 80079624 1C 00 00 0C */ mulli r0, r0, 0xc -/* 80079628 7C A7 02 14 */ add r5, r7, r0 -/* 8007962C 38 E6 00 0C */ addi r7, r6, 0xc -/* 80079630 48 1E F2 ED */ bl cM3d_CalcPla__FPC3VecPC3VecPC3VecP3VecPf -/* 80079634 3B 7B 00 01 */ addi r27, r27, 1 -/* 80079638 3B DE 00 0A */ addi r30, r30, 0xa -/* 8007963C 3B BD 00 18 */ addi r29, r29, 0x18 -lbl_80079640: -/* 80079640 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 80079644 80 03 00 08 */ lwz r0, 8(r3) -/* 80079648 7C 1B 00 00 */ cmpw r27, r0 -/* 8007964C 41 80 FF AC */ blt lbl_800795F8 -lbl_80079650: -/* 80079650 39 61 00 20 */ addi r11, r1, 0x20 -/* 80079654 48 2E 8B CD */ bl _restgpr_27 -/* 80079658 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007965C 7C 08 03 A6 */ mtlr r0 -/* 80079660 38 21 00 20 */ addi r1, r1, 0x20 -/* 80079664 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/CallRideCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c.s b/asm/d/bg/d_bg_w/CallRideCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c.s deleted file mode 100644 index 2b62f514fcc..00000000000 --- a/asm/d/bg/d_bg_w/CallRideCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8007E444: -/* 8007E444 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007E448 7C 08 02 A6 */ mflr r0 -/* 8007E44C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007E450 81 83 00 B4 */ lwz r12, 0xb4(r3) -/* 8007E454 28 0C 00 00 */ cmplwi r12, 0 -/* 8007E458 41 82 00 0C */ beq lbl_8007E464 -/* 8007E45C 7D 89 03 A6 */ mtctr r12 -/* 8007E460 4E 80 04 21 */ bctrl -lbl_8007E464: -/* 8007E464 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007E468 7C 08 03 A6 */ mtlr r0 -/* 8007E46C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007E470 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/CaptPoly__4dBgWFR13dBgS_CaptPoly.s b/asm/d/bg/d_bg_w/CaptPoly__4dBgWFR13dBgS_CaptPoly.s deleted file mode 100644 index f98151939b1..00000000000 --- a/asm/d/bg/d_bg_w/CaptPoly__4dBgWFR13dBgS_CaptPoly.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007DAF8: -/* 8007DAF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007DAFC 7C 08 02 A6 */ mflr r0 -/* 8007DB00 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007DB04 A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007DB08 38 C0 00 01 */ li r6, 1 -/* 8007DB0C 4B FF FE F9 */ bl CaptPolyGrpRp__4dBgWFR13dBgS_CaptPolyii -/* 8007DB10 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007DB14 7C 08 03 A6 */ mtlr r0 -/* 8007DB18 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007DB1C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkLock__4cBgWCFv.s b/asm/d/bg/d_bg_w/ChkLock__4cBgWCFv.s deleted file mode 100644 index 2db12446f55..00000000000 --- a/asm/d/bg/d_bg_w/ChkLock__4cBgWCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8007B958: -/* 8007B958 88 03 00 88 */ lbz r0, 0x88(r3) -/* 8007B95C 54 03 CF FE */ rlwinm r3, r0, 0x19, 0x1f, 0x1f -/* 8007B960 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkMemoryError__4cBgWFv.s b/asm/d/bg/d_bg_w/ChkMemoryError__4cBgWFv.s deleted file mode 100644 index a26c0f7ba71..00000000000 --- a/asm/d/bg/d_bg_w/ChkMemoryError__4cBgWFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80079EEC: -/* 80079EEC 80 03 00 94 */ lwz r0, 0x94(r3) -/* 80079EF0 28 00 00 00 */ cmplwi r0, 0 -/* 80079EF4 41 82 00 34 */ beq lbl_80079F28 -/* 80079EF8 80 03 00 98 */ lwz r0, 0x98(r3) -/* 80079EFC 28 00 00 00 */ cmplwi r0, 0 -/* 80079F00 41 82 00 28 */ beq lbl_80079F28 -/* 80079F04 80 03 00 A4 */ lwz r0, 0xa4(r3) -/* 80079F08 28 00 00 00 */ cmplwi r0, 0 -/* 80079F0C 41 82 00 1C */ beq lbl_80079F28 -/* 80079F10 80 03 00 AC */ lwz r0, 0xac(r3) -/* 80079F14 28 00 00 00 */ cmplwi r0, 0 -/* 80079F18 41 82 00 10 */ beq lbl_80079F28 -/* 80079F1C 80 03 00 A8 */ lwz r0, 0xa8(r3) -/* 80079F20 28 00 00 00 */ cmplwi r0, 0 -/* 80079F24 40 82 00 0C */ bne lbl_80079F30 -lbl_80079F28: -/* 80079F28 38 60 00 01 */ li r3, 1 -/* 80079F2C 4E 80 00 20 */ blr -lbl_80079F30: -/* 80079F30 38 60 00 00 */ li r3, 0 -/* 80079F34 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkMoveBg__4cBgWCFv.s b/asm/d/bg/d_bg_w/ChkMoveBg__4cBgWCFv.s deleted file mode 100644 index f57fc2e19a4..00000000000 --- a/asm/d/bg/d_bg_w/ChkMoveBg__4cBgWCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8007B964: -/* 8007B964 88 03 00 88 */ lbz r0, 0x88(r3) -/* 8007B968 54 03 07 FE */ clrlwi r3, r0, 0x1f -/* 8007B96C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkMoveFlag__4dBgWCFv.s b/asm/d/bg/d_bg_w/ChkMoveFlag__4dBgWCFv.s deleted file mode 100644 index 5faf239c922..00000000000 --- a/asm/d/bg/d_bg_w/ChkMoveFlag__4dBgWCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8007E4B4: -/* 8007E4B4 88 03 00 BC */ lbz r0, 0xbc(r3) -/* 8007E4B8 54 03 07 FE */ clrlwi r3, r0, 0x1f -/* 8007E4BC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkNotReady__4cBgWCFv.s b/asm/d/bg/d_bg_w/ChkNotReady__4cBgWCFv.s deleted file mode 100644 index 757ea556b91..00000000000 --- a/asm/d/bg/d_bg_w/ChkNotReady__4cBgWCFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8007B948: -/* 8007B948 80 03 00 9C */ lwz r0, 0x9c(r3) -/* 8007B94C 7C 00 00 34 */ cntlzw r0, r0 -/* 8007B950 54 03 D9 7E */ srwi r3, r0, 5 -/* 8007B954 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkShdwDrawThrough__4cBgWFiP16cBgS_PolyPassChk.s b/asm/d/bg/d_bg_w/ChkShdwDrawThrough__4cBgWFiP16cBgS_PolyPassChk.s deleted file mode 100644 index ab705e80497..00000000000 --- a/asm/d/bg/d_bg_w/ChkShdwDrawThrough__4cBgWFiP16cBgS_PolyPassChk.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B0B0: -/* 8007B0B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B0B4 7C 08 02 A6 */ mflr r0 -/* 8007B0B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B0BC 81 83 00 04 */ lwz r12, 4(r3) -/* 8007B0C0 81 8C 00 F8 */ lwz r12, 0xf8(r12) -/* 8007B0C4 7D 89 03 A6 */ mtctr r12 -/* 8007B0C8 4E 80 04 21 */ bctrl -/* 8007B0CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B0D0 7C 08 03 A6 */ mtlr r0 -/* 8007B0D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B0D8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ChkShdwDrawThrough__4dBgWFiP16cBgS_PolyPassChk.s b/asm/d/bg/d_bg_w/ChkShdwDrawThrough__4dBgWFiP16cBgS_PolyPassChk.s deleted file mode 100644 index e93f994ca0d..00000000000 --- a/asm/d/bg/d_bg_w/ChkShdwDrawThrough__4dBgWFiP16cBgS_PolyPassChk.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8007E360: -/* 8007E360 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007E364 7C 08 02 A6 */ mflr r0 -/* 8007E368 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007E36C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007E370 93 C1 00 08 */ stw r30, 8(r1) -/* 8007E374 7C 7E 1B 78 */ mr r30, r3 -/* 8007E378 7C 9F 23 78 */ mr r31, r4 -/* 8007E37C 81 83 00 04 */ lwz r12, 4(r3) -/* 8007E380 81 8C 00 9C */ lwz r12, 0x9c(r12) -/* 8007E384 7D 89 03 A6 */ mtctr r12 -/* 8007E388 4E 80 04 21 */ bctrl -/* 8007E38C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8007E390 41 82 00 0C */ beq lbl_8007E39C -/* 8007E394 38 60 00 01 */ li r3, 1 -/* 8007E398 48 00 00 28 */ b lbl_8007E3C0 -lbl_8007E39C: -/* 8007E39C 7F C3 F3 78 */ mr r3, r30 -/* 8007E3A0 7F E4 FB 78 */ mr r4, r31 -/* 8007E3A4 81 9E 00 04 */ lwz r12, 4(r30) -/* 8007E3A8 81 8C 00 88 */ lwz r12, 0x88(r12) -/* 8007E3AC 7D 89 03 A6 */ mtctr r12 -/* 8007E3B0 4E 80 04 21 */ bctrl -/* 8007E3B4 30 03 FF FF */ addic r0, r3, -1 -/* 8007E3B8 7C 00 19 10 */ subfe r0, r0, r3 -/* 8007E3BC 54 03 06 3E */ clrlwi r3, r0, 0x18 -lbl_8007E3C0: -/* 8007E3C0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007E3C4 83 C1 00 08 */ lwz r30, 8(r1) -/* 8007E3C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007E3CC 7C 08 03 A6 */ mtlr r0 -/* 8007E3D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007E3D4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/CopyOldMtx__4cBgWFv.s b/asm/d/bg/d_bg_w/CopyOldMtx__4cBgWFv.s deleted file mode 100644 index 57e8661554a..00000000000 --- a/asm/d/bg/d_bg_w/CopyOldMtx__4cBgWFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_8007ABC4: -/* 8007ABC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007ABC8 7C 08 02 A6 */ mflr r0 -/* 8007ABCC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007ABD0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007ABD4 7C 7F 1B 78 */ mr r31, r3 -/* 8007ABD8 80 03 00 18 */ lwz r0, 0x18(r3) -/* 8007ABDC 28 00 00 00 */ cmplwi r0, 0 -/* 8007ABE0 41 82 00 1C */ beq lbl_8007ABFC -/* 8007ABE4 38 7F 00 4C */ addi r3, r31, 0x4c -/* 8007ABE8 38 9F 00 1C */ addi r4, r31, 0x1c -/* 8007ABEC 48 2C B8 C5 */ bl PSMTXCopy -/* 8007ABF0 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8007ABF4 38 9F 00 4C */ addi r4, r31, 0x4c -/* 8007ABF8 48 2C B8 B9 */ bl PSMTXCopy -lbl_8007ABFC: -/* 8007ABFC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007AC00 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007AC04 7C 08 03 A6 */ mtlr r0 -/* 8007AC08 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007AC0C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetAttackThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetAttackThrough__4dBgWFi.s deleted file mode 100644 index 0f2cd81a1ca..00000000000 --- a/asm/d/bg/d_bg_w/GetAttackThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B800: -/* 8007B800 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B804 7C 08 02 A6 */ mflr r0 -/* 8007B808 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B80C 3C A0 02 00 */ lis r5, 0x200 -/* 8007B810 4B FF FF 7D */ bl GetMaskPolyInf1_NoShift__4cBgWCFiUl -/* 8007B814 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B818 7C 08 03 A6 */ mtlr r0 -/* 8007B81C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B820 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetBnd__4cBgWCFv.s b/asm/d/bg/d_bg_w/GetBnd__4cBgWCFv.s deleted file mode 100644 index f010201fa4d..00000000000 --- a/asm/d/bg/d_bg_w/GetBnd__4cBgWCFv.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8007B164: -/* 8007B164 80 83 00 A8 */ lwz r4, 0xa8(r3) -/* 8007B168 A0 03 00 92 */ lhz r0, 0x92(r3) -/* 8007B16C 54 03 28 34 */ slwi r3, r0, 5 -/* 8007B170 38 63 00 04 */ addi r3, r3, 4 -/* 8007B174 7C 64 1A 14 */ add r3, r4, r3 -/* 8007B178 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 6874e305e28..00000000000 --- a/asm/d/bg/d_bg_w/GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B87C: -/* 8007B87C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B880 7C 08 02 A6 */ mflr r0 -/* 8007B884 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B888 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B88C 38 A0 00 FF */ li r5, 0xff -/* 8007B890 38 C0 00 00 */ li r6, 0 -/* 8007B894 4B FF FF 91 */ bl GetPolyInf2__4cBgWCFiUlUl -/* 8007B898 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B89C 7C 08 03 A6 */ mtlr r0 -/* 8007B8A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B8A4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetExitId__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetExitId__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 4e2f0f2f460..00000000000 --- a/asm/d/bg/d_bg_w/GetExitId__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B3AC: -/* 8007B3AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B3B0 7C 08 02 A6 */ mflr r0 -/* 8007B3B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B3B8 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B3BC 38 A0 00 3F */ li r5, 0x3f -/* 8007B3C0 38 C0 00 00 */ li r6, 0 -/* 8007B3C4 4B FF FF 49 */ bl GetPolyInf0__4cBgWCFiUlUl -/* 8007B3C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B3CC 7C 08 03 A6 */ mtlr r0 -/* 8007B3D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B3D4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetGroundCode__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetGroundCode__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index e7b315933c4..00000000000 --- a/asm/d/bg/d_bg_w/GetGroundCode__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B760: -/* 8007B760 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B764 7C 08 02 A6 */ mflr r0 -/* 8007B768 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B76C A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B770 3C A0 00 F8 */ lis r5, 0xf8 -/* 8007B774 38 C0 00 13 */ li r6, 0x13 -/* 8007B778 4B FF FE DD */ bl GetPolyInf1__4cBgWCFiUlUl -/* 8007B77C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B780 7C 08 03 A6 */ mtlr r0 -/* 8007B784 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B788 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetGrpInf__4cBgWCFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetGrpInf__4cBgWCFRC13cBgS_PolyInfo.s deleted file mode 100644 index d4bdd5a647a..00000000000 --- a/asm/d/bg/d_bg_w/GetGrpInf__4cBgWCFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8007B2B0: -/* 8007B2B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B2B4 7C 08 02 A6 */ mflr r0 -/* 8007B2B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B2BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007B2C0 7C 7F 1B 78 */ mr r31, r3 -/* 8007B2C4 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B2C8 48 00 06 69 */ bl GetTriGrp__4cBgWCFi -/* 8007B2CC 80 9F 00 A0 */ lwz r4, 0xa0(r31) -/* 8007B2D0 80 84 00 24 */ lwz r4, 0x24(r4) -/* 8007B2D4 1C 03 00 34 */ mulli r0, r3, 0x34 -/* 8007B2D8 7C 64 02 14 */ add r3, r4, r0 -/* 8007B2DC 80 63 00 30 */ lwz r3, 0x30(r3) -/* 8007B2E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007B2E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B2E8 7C 08 03 A6 */ mtlr r0 -/* 8007B2EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B2F0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 0b2cf9c1c7e..00000000000 --- a/asm/d/bg/d_bg_w/GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007DF58: -/* 8007DF58 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007DF5C 7C 08 02 A6 */ mflr r0 -/* 8007DF60 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007DF64 81 83 00 04 */ lwz r12, 4(r3) -/* 8007DF68 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 8007DF6C 7D 89 03 A6 */ mtctr r12 -/* 8007DF70 4E 80 04 21 */ bctrl -/* 8007DF74 54 63 AE 3E */ rlwinm r3, r3, 0x15, 0x18, 0x1f -/* 8007DF78 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007DF7C 7C 08 03 A6 */ mtlr r0 -/* 8007DF80 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007DF84 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index dc593bcdd6c..00000000000 --- a/asm/d/bg/d_bg_w/GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B404: -/* 8007B404 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B408 7C 08 02 A6 */ mflr r0 -/* 8007B40C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B410 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B414 3C A0 00 20 */ lis r5, 0x20 -/* 8007B418 38 C0 00 15 */ li r6, 0x15 -/* 8007B41C 4B FF FE F1 */ bl GetPolyInf0__4cBgWCFiUlUl -/* 8007B420 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B424 7C 08 03 A6 */ mtlr r0 -/* 8007B428 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B42C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetIronBallThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetIronBallThrough__4dBgWFi.s deleted file mode 100644 index 2248124171d..00000000000 --- a/asm/d/bg/d_bg_w/GetIronBallThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B7DC: -/* 8007B7DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B7E0 7C 08 02 A6 */ mflr r0 -/* 8007B7E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B7E8 3C A0 01 00 */ lis r5, 0x100 -/* 8007B7EC 4B FF FF A1 */ bl GetMaskPolyInf1_NoShift__4cBgWCFiUl -/* 8007B7F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B7F4 7C 08 03 A6 */ mtlr r0 -/* 8007B7F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B7FC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetLinkNo__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetLinkNo__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index bf7af6ea815..00000000000 --- a/asm/d/bg/d_bg_w/GetLinkNo__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B6AC: -/* 8007B6AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B6B0 7C 08 02 A6 */ mflr r0 -/* 8007B6B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B6B8 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B6BC 38 A0 00 FF */ li r5, 0xff -/* 8007B6C0 38 C0 00 00 */ li r6, 0 -/* 8007B6C4 4B FF FF 91 */ bl GetPolyInf1__4cBgWCFiUlUl -/* 8007B6C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B6CC 7C 08 03 A6 */ mtlr r0 -/* 8007B6D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B6D4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 2c93f836d78..00000000000 --- a/asm/d/bg/d_bg_w/GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B488: -/* 8007B488 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B48C 7C 08 02 A6 */ mflr r0 -/* 8007B490 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B494 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B498 3C A0 30 00 */ lis r5, 0x3000 -/* 8007B49C 38 C0 00 1C */ li r6, 0x1c -/* 8007B4A0 4B FF FE 6D */ bl GetPolyInf0__4cBgWCFiUlUl -/* 8007B4A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B4A8 7C 08 03 A6 */ mtlr r0 -/* 8007B4AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B4B0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetMaskPolyInf0_NoShift__4cBgWCFiUl.s b/asm/d/bg/d_bg_w/GetMaskPolyInf0_NoShift__4cBgWCFiUl.s deleted file mode 100644 index b3639b60432..00000000000 --- a/asm/d/bg/d_bg_w/GetMaskPolyInf0_NoShift__4cBgWCFiUl.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8007B360: -/* 8007B360 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B364 7C 08 02 A6 */ mflr r0 -/* 8007B368 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B36C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007B370 93 C1 00 08 */ stw r30, 8(r1) -/* 8007B374 7C 7E 1B 78 */ mr r30, r3 -/* 8007B378 7C BF 2B 78 */ mr r31, r5 -/* 8007B37C 4B FF FF 79 */ bl GetPolyInfId__4cBgWCFi -/* 8007B380 80 9E 00 A0 */ lwz r4, 0xa0(r30) -/* 8007B384 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 8007B388 54 60 20 36 */ slwi r0, r3, 4 -/* 8007B38C 7C 04 00 2E */ lwzx r0, r4, r0 -/* 8007B390 7F E3 00 38 */ and r3, r31, r0 -/* 8007B394 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007B398 83 C1 00 08 */ lwz r30, 8(r1) -/* 8007B39C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B3A0 7C 08 03 A6 */ mtlr r0 -/* 8007B3A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B3A8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetMaskPolyInf1_NoShift__4cBgWCFiUl.s b/asm/d/bg/d_bg_w/GetMaskPolyInf1_NoShift__4cBgWCFiUl.s deleted file mode 100644 index 9c0d1f32c37..00000000000 --- a/asm/d/bg/d_bg_w/GetMaskPolyInf1_NoShift__4cBgWCFiUl.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_8007B78C: -/* 8007B78C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B790 7C 08 02 A6 */ mflr r0 -/* 8007B794 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B798 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007B79C 93 C1 00 08 */ stw r30, 8(r1) -/* 8007B7A0 7C 7E 1B 78 */ mr r30, r3 -/* 8007B7A4 7C BF 2B 78 */ mr r31, r5 -/* 8007B7A8 4B FF FB 4D */ bl GetPolyInfId__4cBgWCFi -/* 8007B7AC 80 9E 00 A0 */ lwz r4, 0xa0(r30) -/* 8007B7B0 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 8007B7B4 54 60 20 36 */ slwi r0, r3, 4 -/* 8007B7B8 7C 64 02 14 */ add r3, r4, r0 -/* 8007B7BC 80 03 00 04 */ lwz r0, 4(r3) -/* 8007B7C0 7F E3 00 38 */ and r3, r31, r0 -/* 8007B7C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007B7C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 8007B7CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B7D0 7C 08 03 A6 */ mtlr r0 -/* 8007B7D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B7D8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 8d6feaefba3..00000000000 --- a/asm/d/bg/d_bg_w/GetMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B4B4: -/* 8007B4B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B4B8 7C 08 02 A6 */ mflr r0 -/* 8007B4BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B4C0 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B4C4 3C A0 80 00 */ lis r5, 0x8000 -/* 8007B4C8 38 C0 00 1F */ li r6, 0x1f -/* 8007B4CC 4B FF FE 41 */ bl GetPolyInf0__4cBgWCFiUlUl -/* 8007B4D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B4D4 7C 08 03 A6 */ mtlr r0 -/* 8007B4D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B4DC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyArrowThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyArrowThrough__4dBgWFi.s deleted file mode 100644 index 2c04a8ccefb..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyArrowThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B550: -/* 8007B550 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B554 7C 08 02 A6 */ mflr r0 -/* 8007B558 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B55C 3C A0 00 02 */ lis r5, 2 -/* 8007B560 4B FF FE 01 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B564 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B568 7C 08 03 A6 */ mtlr r0 -/* 8007B56C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B570 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index cb5bb49ad5d..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007B704: -/* 8007B704 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B708 7C 08 02 A6 */ mflr r0 -/* 8007B70C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B710 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B714 3C A0 00 01 */ lis r5, 0x0001 /* 0x0000F000@ha */ -/* 8007B718 38 A5 F0 00 */ addi r5, r5, 0xF000 /* 0x0000F000@l */ -/* 8007B71C 38 C0 00 0C */ li r6, 0xc -/* 8007B720 4B FF FF 35 */ bl GetPolyInf1__4cBgWCFiUlUl -/* 8007B724 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B728 7C 08 03 A6 */ mtlr r0 -/* 8007B72C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B730 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index bed07d6e398..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B734: -/* 8007B734 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B738 7C 08 02 A6 */ mflr r0 -/* 8007B73C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B740 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B744 3C A0 00 07 */ lis r5, 7 -/* 8007B748 38 C0 00 10 */ li r6, 0x10 -/* 8007B74C 4B FF FF 09 */ bl GetPolyInf1__4cBgWCFiUlUl -/* 8007B750 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B754 7C 08 03 A6 */ mtlr r0 -/* 8007B758 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B75C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyBombThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyBombThrough__4dBgWFi.s deleted file mode 100644 index 75190d47c88..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyBombThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B5E0: -/* 8007B5E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B5E4 7C 08 02 A6 */ mflr r0 -/* 8007B5E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B5EC 3C A0 00 80 */ lis r5, 0x80 -/* 8007B5F0 4B FF FD 71 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B5F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B5F8 7C 08 03 A6 */ mtlr r0 -/* 8007B5FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B600 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyBoomerangThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyBoomerangThrough__4dBgWFi.s deleted file mode 100644 index 135d087c2d3..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyBoomerangThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B598: -/* 8007B598 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B59C 7C 08 02 A6 */ mflr r0 -/* 8007B5A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B5A4 3C A0 00 08 */ lis r5, 8 -/* 8007B5A8 4B FF FD B9 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B5AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B5B0 7C 08 03 A6 */ mtlr r0 -/* 8007B5B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B5B8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyCamThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyCamThrough__4dBgWFi.s deleted file mode 100644 index 9cc1e7973ee..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyCamThrough__4dBgWFi.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007B504: -/* 8007B504 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B508 7C 08 02 A6 */ mflr r0 -/* 8007B50C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B510 3C A0 00 01 */ lis r5, 0x0001 /* 0x00008000@ha */ -/* 8007B514 38 A5 80 00 */ addi r5, r5, 0x8000 /* 0x00008000@l */ -/* 8007B518 4B FF FE 49 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B51C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B520 7C 08 03 A6 */ mtlr r0 -/* 8007B524 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B528 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyColor__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetPolyColor__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 68c5444433b..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyColor__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B3D8: -/* 8007B3D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B3DC 7C 08 02 A6 */ mflr r0 -/* 8007B3E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B3E4 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B3E8 38 A0 3F C0 */ li r5, 0x3fc0 -/* 8007B3EC 38 C0 00 06 */ li r6, 6 -/* 8007B3F0 4B FF FF 1D */ bl GetPolyInf0__4cBgWCFiUlUl -/* 8007B3F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B3F8 7C 08 03 A6 */ mtlr r0 -/* 8007B3FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B400 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetPolyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 474f40f182c..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007DF28: -/* 8007DF28 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007DF2C 7C 08 02 A6 */ mflr r0 -/* 8007DF30 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007DF34 81 83 00 04 */ lwz r12, 4(r3) -/* 8007DF38 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 8007DF3C 7D 89 03 A6 */ mtctr r12 -/* 8007DF40 4E 80 04 21 */ bctrl -/* 8007DF44 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 8007DF48 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007DF4C 7C 08 03 A6 */ mtlr r0 -/* 8007DF50 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007DF54 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s deleted file mode 100644 index 112478af8d8..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B574: -/* 8007B574 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B578 7C 08 02 A6 */ mflr r0 -/* 8007B57C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B580 3C A0 00 04 */ lis r5, 4 -/* 8007B584 4B FF FD DD */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B588 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B58C 7C 08 03 A6 */ mtlr r0 -/* 8007B590 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B594 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyInf0__4cBgWCFiUlUl.s b/asm/d/bg/d_bg_w/GetPolyInf0__4cBgWCFiUlUl.s deleted file mode 100644 index 0586622257e..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyInf0__4cBgWCFiUlUl.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8007B30C: -/* 8007B30C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8007B310 7C 08 02 A6 */ mflr r0 -/* 8007B314 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007B318 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007B31C 48 2E 6E C1 */ bl _savegpr_29 -/* 8007B320 7C 7D 1B 78 */ mr r29, r3 -/* 8007B324 7C BE 2B 78 */ mr r30, r5 -/* 8007B328 7C DF 33 78 */ mr r31, r6 -/* 8007B32C 4B FF FF C9 */ bl GetPolyInfId__4cBgWCFi -/* 8007B330 80 9D 00 A0 */ lwz r4, 0xa0(r29) -/* 8007B334 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 8007B338 54 60 20 36 */ slwi r0, r3, 4 -/* 8007B33C 7C 04 00 2E */ lwzx r0, r4, r0 -/* 8007B340 7F C0 00 38 */ and r0, r30, r0 -/* 8007B344 7C 03 FC 30 */ srw r3, r0, r31 -/* 8007B348 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007B34C 48 2E 6E DD */ bl _restgpr_29 -/* 8007B350 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007B354 7C 08 03 A6 */ mtlr r0 -/* 8007B358 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007B35C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyInf1__4cBgWCFiUlUl.s b/asm/d/bg/d_bg_w/GetPolyInf1__4cBgWCFiUlUl.s deleted file mode 100644 index 659675a115d..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyInf1__4cBgWCFiUlUl.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8007B654: -/* 8007B654 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8007B658 7C 08 02 A6 */ mflr r0 -/* 8007B65C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007B660 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007B664 48 2E 6B 79 */ bl _savegpr_29 -/* 8007B668 7C 7D 1B 78 */ mr r29, r3 -/* 8007B66C 7C BE 2B 78 */ mr r30, r5 -/* 8007B670 7C DF 33 78 */ mr r31, r6 -/* 8007B674 4B FF FC 81 */ bl GetPolyInfId__4cBgWCFi -/* 8007B678 80 9D 00 A0 */ lwz r4, 0xa0(r29) -/* 8007B67C 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 8007B680 54 60 20 36 */ slwi r0, r3, 4 -/* 8007B684 7C 64 02 14 */ add r3, r4, r0 -/* 8007B688 80 03 00 04 */ lwz r0, 4(r3) -/* 8007B68C 7F C0 00 38 */ and r0, r30, r0 -/* 8007B690 7C 03 FC 30 */ srw r3, r0, r31 -/* 8007B694 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007B698 48 2E 6B 91 */ bl _restgpr_29 -/* 8007B69C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007B6A0 7C 08 03 A6 */ mtlr r0 -/* 8007B6A4 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007B6A8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyInf2__4cBgWCFiUlUl.s b/asm/d/bg/d_bg_w/GetPolyInf2__4cBgWCFiUlUl.s deleted file mode 100644 index e367001df05..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyInf2__4cBgWCFiUlUl.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8007B824: -/* 8007B824 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8007B828 7C 08 02 A6 */ mflr r0 -/* 8007B82C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007B830 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007B834 48 2E 69 A9 */ bl _savegpr_29 -/* 8007B838 7C 7D 1B 78 */ mr r29, r3 -/* 8007B83C 7C BE 2B 78 */ mr r30, r5 -/* 8007B840 7C DF 33 78 */ mr r31, r6 -/* 8007B844 4B FF FA B1 */ bl GetPolyInfId__4cBgWCFi -/* 8007B848 80 9D 00 A0 */ lwz r4, 0xa0(r29) -/* 8007B84C 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 8007B850 54 60 20 36 */ slwi r0, r3, 4 -/* 8007B854 7C 64 02 14 */ add r3, r4, r0 -/* 8007B858 80 03 00 08 */ lwz r0, 8(r3) -/* 8007B85C 7F C0 00 38 */ and r0, r30, r0 -/* 8007B860 7C 03 FC 30 */ srw r3, r0, r31 -/* 8007B864 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007B868 48 2E 69 C1 */ bl _restgpr_29 -/* 8007B86C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007B870 7C 08 03 A6 */ mtlr r0 -/* 8007B874 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007B878 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyInfId__4cBgWCFi.s b/asm/d/bg/d_bg_w/GetPolyInfId__4cBgWCFi.s deleted file mode 100644 index 3998764fe44..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyInfId__4cBgWCFi.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8007B2F4: -/* 8007B2F4 80 63 00 A0 */ lwz r3, 0xa0(r3) -/* 8007B2F8 80 63 00 0C */ lwz r3, 0xc(r3) -/* 8007B2FC 1C 04 00 0A */ mulli r0, r4, 0xa -/* 8007B300 7C 63 02 14 */ add r3, r3, r0 -/* 8007B304 A0 63 00 06 */ lhz r3, 6(r3) -/* 8007B308 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyLinkThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyLinkThrough__4dBgWFi.s deleted file mode 100644 index dc3d3ca652d..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyLinkThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B52C: -/* 8007B52C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B530 7C 08 02 A6 */ mflr r0 -/* 8007B534 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B538 3C A0 00 01 */ lis r5, 1 -/* 8007B53C 4B FF FE 25 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B540 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B544 7C 08 03 A6 */ mtlr r0 -/* 8007B548 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B54C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyObjThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyObjThrough__4dBgWFi.s deleted file mode 100644 index 2e5049b0ab2..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyObjThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B4E0: -/* 8007B4E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B4E4 7C 08 02 A6 */ mflr r0 -/* 8007B4E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B4EC 38 A0 40 00 */ li r5, 0x4000 -/* 8007B4F0 4B FF FE 71 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B4F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B4F8 7C 08 03 A6 */ mtlr r0 -/* 8007B4FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B500 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetPolyRopeThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetPolyRopeThrough__4dBgWFi.s deleted file mode 100644 index 70773531f2a..00000000000 --- a/asm/d/bg/d_bg_w/GetPolyRopeThrough__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B5BC: -/* 8007B5BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B5C0 7C 08 02 A6 */ mflr r0 -/* 8007B5C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B5C8 3C A0 00 10 */ lis r5, 0x10 -/* 8007B5CC 4B FF FD 95 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B5D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B5D4 7C 08 03 A6 */ mtlr r0 -/* 8007B5D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B5DC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetRoomCamId__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetRoomCamId__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 467a2df8077..00000000000 --- a/asm/d/bg/d_bg_w/GetRoomCamId__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007B8A8: -/* 8007B8A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B8AC 7C 08 02 A6 */ mflr r0 -/* 8007B8B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B8B4 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B8B8 3C A0 00 01 */ lis r5, 0x0001 /* 0x0000FF00@ha */ -/* 8007B8BC 38 A5 FF 00 */ addi r5, r5, 0xFF00 /* 0x0000FF00@l */ -/* 8007B8C0 38 C0 00 08 */ li r6, 8 -/* 8007B8C4 4B FF FF 61 */ bl GetPolyInf2__4cBgWCFiUlUl -/* 8007B8C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B8CC 7C 08 03 A6 */ mtlr r0 -/* 8007B8D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B8D4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetRoomPathId__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetRoomPathId__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index eca28697ae7..00000000000 --- a/asm/d/bg/d_bg_w/GetRoomPathId__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B8D8: -/* 8007B8D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B8DC 7C 08 02 A6 */ mflr r0 -/* 8007B8E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B8E4 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B8E8 3C A0 00 FF */ lis r5, 0xff -/* 8007B8EC 38 C0 00 10 */ li r6, 0x10 -/* 8007B8F0 4B FF FF 35 */ bl GetPolyInf2__4cBgWCFiUlUl -/* 8007B8F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B8F8 7C 08 03 A6 */ mtlr r0 -/* 8007B8FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B900 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index a4fb8622127..00000000000 --- a/asm/d/bg/d_bg_w/GetRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B904: -/* 8007B904 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B908 7C 08 02 A6 */ mflr r0 -/* 8007B90C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B910 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B914 3C A0 FF 00 */ lis r5, 0xff00 -/* 8007B918 38 C0 00 18 */ li r6, 0x18 -/* 8007B91C 4B FF FF 09 */ bl GetPolyInf2__4cBgWCFiUlUl -/* 8007B920 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B924 7C 08 03 A6 */ mtlr r0 -/* 8007B928 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B92C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetShdwThrough__4dBgWFi.s b/asm/d/bg/d_bg_w/GetShdwThrough__4dBgWFi.s deleted file mode 100644 index 9f767bfe8bd..00000000000 --- a/asm/d/bg/d_bg_w/GetShdwThrough__4dBgWFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B604: -/* 8007B604 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B608 7C 08 02 A6 */ mflr r0 -/* 8007B60C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B610 3C A0 00 40 */ lis r5, 0x40 -/* 8007B614 4B FF FD 4D */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B618 30 03 FF FF */ addic r0, r3, -1 -/* 8007B61C 7C 60 19 10 */ subfe r3, r0, r3 -/* 8007B620 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B624 7C 08 03 A6 */ mtlr r0 -/* 8007B628 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B62C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index 00f930da582..00000000000 --- a/asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007B430: -/* 8007B430 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B434 7C 08 02 A6 */ mflr r0 -/* 8007B438 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B43C A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B440 81 83 00 04 */ lwz r12, 4(r3) -/* 8007B444 81 8C 00 74 */ lwz r12, 0x74(r12) -/* 8007B448 7D 89 03 A6 */ mtctr r12 -/* 8007B44C 4E 80 04 21 */ bctrl -/* 8007B450 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B454 7C 08 03 A6 */ mtlr r0 -/* 8007B458 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B45C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFi.s b/asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFi.s deleted file mode 100644 index bdf534ede44..00000000000 --- a/asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFi.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007B460: -/* 8007B460 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B464 7C 08 02 A6 */ mflr r0 -/* 8007B468 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B46C 3C A0 0F 00 */ lis r5, 0xf00 -/* 8007B470 38 C0 00 18 */ li r6, 0x18 -/* 8007B474 4B FF FE 99 */ bl GetPolyInf0__4cBgWCFiUlUl -/* 8007B478 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B47C 7C 08 03 A6 */ mtlr r0 -/* 8007B480 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B484 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetTopUnder__4cBgWCFPfPf.s b/asm/d/bg/d_bg_w/GetTopUnder__4cBgWCFPfPf.s deleted file mode 100644 index 98794dcba27..00000000000 --- a/asm/d/bg/d_bg_w/GetTopUnder__4cBgWCFPfPf.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007B240: -/* 8007B240 80 C3 00 A8 */ lwz r6, 0xa8(r3) -/* 8007B244 A0 03 00 92 */ lhz r0, 0x92(r3) -/* 8007B248 54 03 28 34 */ slwi r3, r0, 5 -/* 8007B24C 38 E3 00 04 */ addi r7, r3, 4 -/* 8007B250 7C E6 3A 14 */ add r7, r6, r7 -/* 8007B254 C0 07 00 04 */ lfs f0, 4(r7) -/* 8007B258 D0 05 00 00 */ stfs f0, 0(r5) -/* 8007B25C 38 63 00 10 */ addi r3, r3, 0x10 -/* 8007B260 7C 66 1A 14 */ add r3, r6, r3 -/* 8007B264 C0 03 00 04 */ lfs f0, 4(r3) -/* 8007B268 D0 04 00 00 */ stfs f0, 0(r4) -/* 8007B26C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetTrans__4cBgWCFP4cXyz.s b/asm/d/bg/d_bg_w/GetTrans__4cBgWCFP4cXyz.s deleted file mode 100644 index a786241bfa3..00000000000 --- a/asm/d/bg/d_bg_w/GetTrans__4cBgWCFP4cXyz.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8007B17C: -/* 8007B17C 80 A3 00 18 */ lwz r5, 0x18(r3) -/* 8007B180 C0 25 00 0C */ lfs f1, 0xc(r5) -/* 8007B184 C0 03 00 28 */ lfs f0, 0x28(r3) -/* 8007B188 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8007B18C D0 04 00 00 */ stfs f0, 0(r4) -/* 8007B190 C0 25 00 1C */ lfs f1, 0x1c(r5) -/* 8007B194 C0 03 00 38 */ lfs f0, 0x38(r3) -/* 8007B198 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8007B19C D0 04 00 04 */ stfs f0, 4(r4) -/* 8007B1A0 C0 25 00 2C */ lfs f1, 0x2c(r5) -/* 8007B1A4 C0 03 00 48 */ lfs f0, 0x48(r3) -/* 8007B1A8 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8007B1AC D0 04 00 08 */ stfs f0, 8(r4) -/* 8007B1B0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetTriGrp__4cBgWCFi.s b/asm/d/bg/d_bg_w/GetTriGrp__4cBgWCFi.s deleted file mode 100644 index 845fc29a68f..00000000000 --- a/asm/d/bg/d_bg_w/GetTriGrp__4cBgWCFi.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8007B930: -/* 8007B930 80 63 00 A0 */ lwz r3, 0xa0(r3) -/* 8007B934 80 63 00 0C */ lwz r3, 0xc(r3) -/* 8007B938 1C 04 00 0A */ mulli r0, r4, 0xa -/* 8007B93C 7C 63 02 14 */ add r3, r3, r0 -/* 8007B940 A0 63 00 08 */ lhz r3, 8(r3) -/* 8007B944 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetTriPla__4cBgWCFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetTriPla__4cBgWCFRC13cBgS_PolyInfo.s deleted file mode 100644 index 2667b077f81..00000000000 --- a/asm/d/bg/d_bg_w/GetTriPla__4cBgWCFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8007B270: -/* 8007B270 A0 05 00 00 */ lhz r0, 0(r5) -/* 8007B274 80 84 00 94 */ lwz r4, 0x94(r4) -/* 8007B278 1C 00 00 18 */ mulli r0, r0, 0x18 -/* 8007B27C 7C A4 02 14 */ add r5, r4, r0 -/* 8007B280 3C 80 80 3A */ lis r4, __vt__8cM3dGPla@ha /* 0x803A37C0@ha */ -/* 8007B284 38 04 37 C0 */ addi r0, r4, __vt__8cM3dGPla@l /* 0x803A37C0@l */ -/* 8007B288 90 03 00 10 */ stw r0, 0x10(r3) -/* 8007B28C C0 05 00 00 */ lfs f0, 0(r5) -/* 8007B290 D0 03 00 00 */ stfs f0, 0(r3) -/* 8007B294 C0 05 00 04 */ lfs f0, 4(r5) -/* 8007B298 D0 03 00 04 */ stfs f0, 4(r3) -/* 8007B29C C0 05 00 08 */ lfs f0, 8(r5) -/* 8007B2A0 D0 03 00 08 */ stfs f0, 8(r3) -/* 8007B2A4 C0 05 00 0C */ lfs f0, 0xc(r5) -/* 8007B2A8 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 8007B2AC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetTriPnt__4cBgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s b/asm/d/bg/d_bg_w/GetTriPnt__4cBgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s deleted file mode 100644 index 57fac51dfbf..00000000000 --- a/asm/d/bg/d_bg_w/GetTriPnt__4cBgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_8007B1B4: -/* 8007B1B4 A0 04 00 00 */ lhz r0, 0(r4) -/* 8007B1B8 80 83 00 A0 */ lwz r4, 0xa0(r3) -/* 8007B1BC 80 84 00 0C */ lwz r4, 0xc(r4) -/* 8007B1C0 1C 00 00 0A */ mulli r0, r0, 0xa -/* 8007B1C4 7D 04 02 14 */ add r8, r4, r0 -/* 8007B1C8 80 63 00 9C */ lwz r3, 0x9c(r3) -/* 8007B1CC A0 08 00 00 */ lhz r0, 0(r8) -/* 8007B1D0 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8007B1D4 7C 83 02 14 */ add r4, r3, r0 -/* 8007B1D8 C0 04 00 00 */ lfs f0, 0(r4) -/* 8007B1DC D0 05 00 00 */ stfs f0, 0(r5) -/* 8007B1E0 C0 04 00 04 */ lfs f0, 4(r4) -/* 8007B1E4 D0 05 00 04 */ stfs f0, 4(r5) -/* 8007B1E8 C0 04 00 08 */ lfs f0, 8(r4) -/* 8007B1EC D0 05 00 08 */ stfs f0, 8(r5) -/* 8007B1F0 A0 08 00 02 */ lhz r0, 2(r8) -/* 8007B1F4 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8007B1F8 7C 83 02 14 */ add r4, r3, r0 -/* 8007B1FC C0 04 00 00 */ lfs f0, 0(r4) -/* 8007B200 D0 06 00 00 */ stfs f0, 0(r6) -/* 8007B204 C0 04 00 04 */ lfs f0, 4(r4) -/* 8007B208 D0 06 00 04 */ stfs f0, 4(r6) -/* 8007B20C C0 04 00 08 */ lfs f0, 8(r4) -/* 8007B210 D0 06 00 08 */ stfs f0, 8(r6) -/* 8007B214 A0 08 00 04 */ lhz r0, 4(r8) -/* 8007B218 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8007B21C 7C 63 02 14 */ add r3, r3, r0 -/* 8007B220 C0 03 00 00 */ lfs f0, 0(r3) -/* 8007B224 D0 07 00 00 */ stfs f0, 0(r7) -/* 8007B228 C0 03 00 04 */ lfs f0, 4(r3) -/* 8007B22C D0 07 00 04 */ stfs f0, 4(r7) -/* 8007B230 C0 03 00 08 */ lfs f0, 8(r3) -/* 8007B234 D0 07 00 08 */ stfs f0, 8(r7) -/* 8007B238 38 60 00 01 */ li r3, 1 -/* 8007B23C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetUnderwaterRoofCode__4dBgWFi.s b/asm/d/bg/d_bg_w/GetUnderwaterRoofCode__4dBgWFi.s deleted file mode 100644 index 37ec1139e8f..00000000000 --- a/asm/d/bg/d_bg_w/GetUnderwaterRoofCode__4dBgWFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B630: -/* 8007B630 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B634 7C 08 02 A6 */ mflr r0 -/* 8007B638 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B63C 3C A0 40 00 */ lis r5, 0x4000 -/* 8007B640 4B FF FD 21 */ bl GetMaskPolyInf0_NoShift__4cBgWCFiUl -/* 8007B644 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B648 7C 08 03 A6 */ mtlr r0 -/* 8007B64C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B650 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s deleted file mode 100644 index bacd0384e2b..00000000000 --- a/asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B6D8: -/* 8007B6D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B6DC 7C 08 02 A6 */ mflr r0 -/* 8007B6E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B6E4 A0 84 00 00 */ lhz r4, 0(r4) -/* 8007B6E8 38 A0 0F 00 */ li r5, 0xf00 -/* 8007B6EC 38 C0 00 08 */ li r6, 8 -/* 8007B6F0 4B FF FF 65 */ bl GetPolyInf1__4cBgWCFiUlUl -/* 8007B6F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B6F8 7C 08 03 A6 */ mtlr r0 -/* 8007B6FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B700 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GlobalVtx__4cBgWFv.s b/asm/d/bg/d_bg_w/GlobalVtx__4cBgWFv.s deleted file mode 100644 index 198894c0ea7..00000000000 --- a/asm/d/bg/d_bg_w/GlobalVtx__4cBgWFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_800793C4: -/* 800793C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800793C8 7C 08 02 A6 */ mflr r0 -/* 800793CC 90 01 00 24 */ stw r0, 0x24(r1) -/* 800793D0 39 61 00 20 */ addi r11, r1, 0x20 -/* 800793D4 48 2E 8E 09 */ bl _savegpr_29 -/* 800793D8 7C 7D 1B 78 */ mr r29, r3 -/* 800793DC 80 03 00 18 */ lwz r0, 0x18(r3) -/* 800793E0 28 00 00 00 */ cmplwi r0, 0 -/* 800793E4 41 82 00 88 */ beq lbl_8007946C -/* 800793E8 88 1D 00 89 */ lbz r0, 0x89(r29) -/* 800793EC 28 00 00 00 */ cmplwi r0, 0 -/* 800793F0 40 82 00 40 */ bne lbl_80079430 -/* 800793F4 3B C0 00 00 */ li r30, 0 -/* 800793F8 3B E0 00 00 */ li r31, 0 -/* 800793FC 48 00 00 20 */ b lbl_8007941C -lbl_80079400: -/* 80079400 80 1D 00 9C */ lwz r0, 0x9c(r29) -/* 80079404 7C 60 FA 14 */ add r3, r0, r31 -/* 80079408 38 9D 00 7C */ addi r4, r29, 0x7c -/* 8007940C 7C 65 1B 78 */ mr r5, r3 -/* 80079410 48 2C DC 81 */ bl PSVECAdd -/* 80079414 3B DE 00 01 */ addi r30, r30, 1 -/* 80079418 3B FF 00 0C */ addi r31, r31, 0xc -lbl_8007941C: -/* 8007941C 80 7D 00 A0 */ lwz r3, 0xa0(r29) -/* 80079420 80 03 00 00 */ lwz r0, 0(r3) -/* 80079424 7C 1E 00 00 */ cmpw r30, r0 -/* 80079428 41 80 FF D8 */ blt lbl_80079400 -/* 8007942C 48 00 00 40 */ b lbl_8007946C -lbl_80079430: -/* 80079430 3B C0 00 00 */ li r30, 0 -/* 80079434 3B E0 00 00 */ li r31, 0 -/* 80079438 48 00 00 24 */ b lbl_8007945C -lbl_8007943C: -/* 8007943C 80 7D 00 18 */ lwz r3, 0x18(r29) -/* 80079440 80 04 00 04 */ lwz r0, 4(r4) -/* 80079444 7C 80 FA 14 */ add r4, r0, r31 -/* 80079448 80 1D 00 9C */ lwz r0, 0x9c(r29) -/* 8007944C 7C A0 FA 14 */ add r5, r0, r31 -/* 80079450 48 2C D9 1D */ bl PSMTXMultVec -/* 80079454 3B DE 00 01 */ addi r30, r30, 1 -/* 80079458 3B FF 00 0C */ addi r31, r31, 0xc -lbl_8007945C: -/* 8007945C 80 9D 00 A0 */ lwz r4, 0xa0(r29) -/* 80079460 80 04 00 00 */ lwz r0, 0(r4) -/* 80079464 7C 1E 00 00 */ cmpw r30, r0 -/* 80079468 41 80 FF D4 */ blt lbl_8007943C -lbl_8007946C: -/* 8007946C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80079470 48 2E 8D B9 */ bl _restgpr_29 -/* 80079474 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80079478 7C 08 03 A6 */ mtlr r0 -/* 8007947C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80079480 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/GroundCross__4cBgWFP11cBgS_GndChk.s b/asm/d/bg/d_bg_w/GroundCross__4cBgWFP11cBgS_GndChk.s deleted file mode 100644 index 8134cc9e00e..00000000000 --- a/asm/d/bg/d_bg_w/GroundCross__4cBgWFP11cBgS_GndChk.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007AB9C: -/* 8007AB9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007ABA0 7C 08 02 A6 */ mflr r0 -/* 8007ABA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007ABA8 A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007ABAC 38 C0 00 01 */ li r6, 1 -/* 8007ABB0 4B FF FE A1 */ bl GroundCrossGrpRp__4cBgWFP11cBgS_GndChkii -/* 8007ABB4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007ABB8 7C 08 03 A6 */ mtlr r0 -/* 8007ABBC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007ABC0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/LineCheck__4cBgWFP11cBgS_LinChk.s b/asm/d/bg/d_bg_w/LineCheck__4cBgWFP11cBgS_LinChk.s deleted file mode 100644 index 9342349e407..00000000000 --- a/asm/d/bg/d_bg_w/LineCheck__4cBgWFP11cBgS_LinChk.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007A658: -/* 8007A658 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007A65C 7C 08 02 A6 */ mflr r0 -/* 8007A660 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007A664 A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007A668 38 C0 00 01 */ li r6, 1 -/* 8007A66C 4B FF FE C1 */ bl LineCheckGrpRp__4cBgWFP11cBgS_LinChkii -/* 8007A670 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007A674 7C 08 03 A6 */ mtlr r0 -/* 8007A678 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007A67C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz.s b/asm/d/bg/d_bg_w/MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz.s deleted file mode 100644 index a413d0a96e2..00000000000 --- a/asm/d/bg/d_bg_w/MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_800799E0: -/* 800799E0 80 63 00 9C */ lwz r3, 0x9c(r3) -/* 800799E4 1C 04 00 0C */ mulli r0, r4, 0xc -/* 800799E8 7C 63 02 14 */ add r3, r3, r0 -/* 800799EC C0 05 00 00 */ lfs f0, 0(r5) -/* 800799F0 C0 23 00 00 */ lfs f1, 0(r3) -/* 800799F4 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 800799F8 40 81 00 08 */ ble lbl_80079A00 -/* 800799FC D0 25 00 00 */ stfs f1, 0(r5) -lbl_80079A00: -/* 80079A00 C0 06 00 00 */ lfs f0, 0(r6) -/* 80079A04 C0 23 00 00 */ lfs f1, 0(r3) -/* 80079A08 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80079A0C 40 80 00 08 */ bge lbl_80079A14 -/* 80079A10 D0 26 00 00 */ stfs f1, 0(r6) -lbl_80079A14: -/* 80079A14 C0 05 00 04 */ lfs f0, 4(r5) -/* 80079A18 C0 23 00 04 */ lfs f1, 4(r3) -/* 80079A1C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80079A20 40 81 00 08 */ ble lbl_80079A28 -/* 80079A24 D0 25 00 04 */ stfs f1, 4(r5) -lbl_80079A28: -/* 80079A28 C0 06 00 04 */ lfs f0, 4(r6) -/* 80079A2C C0 23 00 04 */ lfs f1, 4(r3) -/* 80079A30 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80079A34 40 80 00 08 */ bge lbl_80079A3C -/* 80079A38 D0 26 00 04 */ stfs f1, 4(r6) -lbl_80079A3C: -/* 80079A3C C0 05 00 08 */ lfs f0, 8(r5) -/* 80079A40 C0 23 00 08 */ lfs f1, 8(r3) -/* 80079A44 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80079A48 40 81 00 08 */ ble lbl_80079A50 -/* 80079A4C D0 25 00 08 */ stfs f1, 8(r5) -lbl_80079A50: -/* 80079A50 C0 06 00 08 */ lfs f0, 8(r6) -/* 80079A54 C0 23 00 08 */ lfs f1, 8(r3) -/* 80079A58 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80079A5C 4C 80 00 20 */ bgelr -/* 80079A60 D0 26 00 08 */ stfs f1, 8(r6) -/* 80079A64 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz.s b/asm/d/bg/d_bg_w/MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz.s deleted file mode 100644 index 728ddfef49a..00000000000 --- a/asm/d/bg/d_bg_w/MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8007998C: -/* 8007998C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80079990 7C 08 02 A6 */ mflr r0 -/* 80079994 90 01 00 14 */ stw r0, 0x14(r1) -/* 80079998 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007999C 93 C1 00 08 */ stw r30, 8(r1) -/* 800799A0 7C 7E 1B 78 */ mr r30, r3 -/* 800799A4 7C 83 23 78 */ mr r3, r4 -/* 800799A8 7C BF 2B 78 */ mr r31, r5 -/* 800799AC 38 9E 00 7C */ addi r4, r30, 0x7c -/* 800799B0 7C 65 1B 78 */ mr r5, r3 -/* 800799B4 48 2C D6 DD */ bl PSVECAdd -/* 800799B8 7F E3 FB 78 */ mr r3, r31 -/* 800799BC 38 9E 00 7C */ addi r4, r30, 0x7c -/* 800799C0 7F E5 FB 78 */ mr r5, r31 -/* 800799C4 48 2C D6 CD */ bl PSVECAdd -/* 800799C8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800799CC 83 C1 00 08 */ lwz r30, 8(r1) -/* 800799D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800799D4 7C 08 03 A6 */ mtlr r0 -/* 800799D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800799DC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/MakeNodeTreeRp__4cBgWFi.s b/asm/d/bg/d_bg_w/MakeNodeTreeRp__4cBgWFi.s deleted file mode 100644 index 7f45164bd37..00000000000 --- a/asm/d/bg/d_bg_w/MakeNodeTreeRp__4cBgWFi.s +++ /dev/null @@ -1,63 +0,0 @@ -lbl_80079BDC: -/* 80079BDC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80079BE0 7C 08 02 A6 */ mflr r0 -/* 80079BE4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80079BE8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80079BEC 48 2E 85 E5 */ bl _savegpr_26 -/* 80079BF0 7C 7F 1B 78 */ mr r31, r3 -/* 80079BF4 80 A3 00 A0 */ lwz r5, 0xa0(r3) -/* 80079BF8 80 A5 00 1C */ lwz r5, 0x1c(r5) -/* 80079BFC 1C 04 00 14 */ mulli r0, r4, 0x14 -/* 80079C00 7F 65 02 14 */ add r27, r5, r0 -/* 80079C04 A0 1B 00 00 */ lhz r0, 0(r27) -/* 80079C08 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80079C0C 41 82 00 30 */ beq lbl_80079C3C -/* 80079C10 A0 FB 00 04 */ lhz r7, 4(r27) -/* 80079C14 3C 07 00 00 */ addis r0, r7, 0 -/* 80079C18 28 00 FF FF */ cmplwi r0, 0xffff -/* 80079C1C 41 82 00 90 */ beq lbl_80079CAC -/* 80079C20 80 BF 00 AC */ lwz r5, 0xac(r31) -/* 80079C24 1C 04 00 1C */ mulli r0, r4, 0x1c -/* 80079C28 7C A5 02 14 */ add r5, r5, r0 -/* 80079C2C 38 C5 00 0C */ addi r6, r5, 0xc -/* 80079C30 7C E4 3B 78 */ mr r4, r7 -/* 80079C34 4B FF FE 35 */ bl MakeBlckBnd__4cBgWFiP4cXyzP4cXyz -/* 80079C38 48 00 00 74 */ b lbl_80079CAC -lbl_80079C3C: -/* 80079C3C 80 1F 00 AC */ lwz r0, 0xac(r31) -/* 80079C40 1F A4 00 1C */ mulli r29, r4, 0x1c -/* 80079C44 7C 60 EA 14 */ add r3, r0, r29 -/* 80079C48 48 1F 50 B1 */ bl ClearForMinMax__8cM3dGAabFv -/* 80079C4C 3B 40 00 00 */ li r26, 0 -/* 80079C50 3B C0 00 00 */ li r30, 0 -lbl_80079C54: -/* 80079C54 38 1E 00 04 */ addi r0, r30, 4 -/* 80079C58 7F 9B 02 2E */ lhzx r28, r27, r0 -/* 80079C5C 3C 1C 00 00 */ addis r0, r28, 0 -/* 80079C60 28 00 FF FF */ cmplwi r0, 0xffff -/* 80079C64 41 82 00 38 */ beq lbl_80079C9C -/* 80079C68 7F E3 FB 78 */ mr r3, r31 -/* 80079C6C 7F 84 E3 78 */ mr r4, r28 -/* 80079C70 4B FF FF 6D */ bl MakeNodeTreeRp__4cBgWFi -/* 80079C74 80 1F 00 AC */ lwz r0, 0xac(r31) -/* 80079C78 1F 9C 00 1C */ mulli r28, r28, 0x1c -/* 80079C7C 7C 80 E2 14 */ add r4, r0, r28 -/* 80079C80 7C 60 EA 14 */ add r3, r0, r29 -/* 80079C84 48 1F 50 99 */ bl SetMinMax__8cM3dGAabFRC4cXyz -/* 80079C88 80 1F 00 AC */ lwz r0, 0xac(r31) -/* 80079C8C 38 9C 00 0C */ addi r4, r28, 0xc -/* 80079C90 7C 80 22 14 */ add r4, r0, r4 -/* 80079C94 7C 60 EA 14 */ add r3, r0, r29 -/* 80079C98 48 1F 50 85 */ bl SetMinMax__8cM3dGAabFRC4cXyz -lbl_80079C9C: -/* 80079C9C 3B 5A 00 01 */ addi r26, r26, 1 -/* 80079CA0 2C 1A 00 08 */ cmpwi r26, 8 -/* 80079CA4 3B DE 00 02 */ addi r30, r30, 2 -/* 80079CA8 41 80 FF AC */ blt lbl_80079C54 -lbl_80079CAC: -/* 80079CAC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80079CB0 48 2E 85 6D */ bl _restgpr_26 -/* 80079CB4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80079CB8 7C 08 03 A6 */ mtlr r0 -/* 80079CBC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80079CC0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/Move__4cBgWFv.s b/asm/d/bg/d_bg_w/Move__4cBgWFv.s deleted file mode 100644 index 21d74c1814f..00000000000 --- a/asm/d/bg/d_bg_w/Move__4cBgWFv.s +++ /dev/null @@ -1,129 +0,0 @@ -lbl_8007AC10: -/* 8007AC10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007AC14 7C 08 02 A6 */ mflr r0 -/* 8007AC18 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007AC1C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007AC20 7C 7F 1B 78 */ mr r31, r3 -/* 8007AC24 81 83 00 04 */ lwz r12, 4(r3) -/* 8007AC28 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 8007AC2C 7D 89 03 A6 */ mtctr r12 -/* 8007AC30 4E 80 04 21 */ bctrl -/* 8007AC34 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8007AC38 40 82 01 A4 */ bne lbl_8007ADDC -/* 8007AC3C 88 7F 00 88 */ lbz r3, 0x88(r31) -/* 8007AC40 54 60 07 FF */ clrlwi. r0, r3, 0x1f -/* 8007AC44 41 82 01 98 */ beq lbl_8007ADDC -/* 8007AC48 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e -/* 8007AC4C 40 82 01 58 */ bne lbl_8007ADA4 -/* 8007AC50 88 1F 00 90 */ lbz r0, 0x90(r31) -/* 8007AC54 28 00 00 FF */ cmplwi r0, 0xff -/* 8007AC58 40 80 00 98 */ bge lbl_8007ACF0 -/* 8007AC5C C0 3F 00 4C */ lfs f1, 0x4c(r31) -/* 8007AC60 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8007AC64 C0 03 00 00 */ lfs f0, 0(r3) -/* 8007AC68 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007AC6C 40 82 00 84 */ bne lbl_8007ACF0 -/* 8007AC70 C0 3F 00 50 */ lfs f1, 0x50(r31) -/* 8007AC74 C0 03 00 04 */ lfs f0, 4(r3) -/* 8007AC78 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007AC7C 40 82 00 74 */ bne lbl_8007ACF0 -/* 8007AC80 C0 3F 00 54 */ lfs f1, 0x54(r31) -/* 8007AC84 C0 03 00 08 */ lfs f0, 8(r3) -/* 8007AC88 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007AC8C 40 82 00 64 */ bne lbl_8007ACF0 -/* 8007AC90 C0 3F 00 5C */ lfs f1, 0x5c(r31) -/* 8007AC94 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 8007AC98 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007AC9C 40 82 00 54 */ bne lbl_8007ACF0 -/* 8007ACA0 C0 3F 00 60 */ lfs f1, 0x60(r31) -/* 8007ACA4 C0 03 00 14 */ lfs f0, 0x14(r3) -/* 8007ACA8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007ACAC 40 82 00 44 */ bne lbl_8007ACF0 -/* 8007ACB0 C0 3F 00 64 */ lfs f1, 0x64(r31) -/* 8007ACB4 C0 03 00 18 */ lfs f0, 0x18(r3) -/* 8007ACB8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007ACBC 40 82 00 34 */ bne lbl_8007ACF0 -/* 8007ACC0 C0 3F 00 6C */ lfs f1, 0x6c(r31) -/* 8007ACC4 C0 03 00 20 */ lfs f0, 0x20(r3) -/* 8007ACC8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007ACCC 40 82 00 24 */ bne lbl_8007ACF0 -/* 8007ACD0 C0 3F 00 70 */ lfs f1, 0x70(r31) -/* 8007ACD4 C0 03 00 24 */ lfs f0, 0x24(r3) -/* 8007ACD8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007ACDC 40 82 00 14 */ bne lbl_8007ACF0 -/* 8007ACE0 C0 3F 00 74 */ lfs f1, 0x74(r31) -/* 8007ACE4 C0 03 00 28 */ lfs f0, 0x28(r3) -/* 8007ACE8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007ACEC 41 82 00 10 */ beq lbl_8007ACFC -lbl_8007ACF0: -/* 8007ACF0 38 00 00 01 */ li r0, 1 -/* 8007ACF4 98 1F 00 89 */ stb r0, 0x89(r31) -/* 8007ACF8 48 00 00 84 */ b lbl_8007AD7C -lbl_8007ACFC: -/* 8007ACFC C0 5F 00 58 */ lfs f2, 0x58(r31) -/* 8007AD00 C0 63 00 0C */ lfs f3, 0xc(r3) -/* 8007AD04 FC 02 18 00 */ fcmpu cr0, f2, f3 -/* 8007AD08 40 82 00 3C */ bne lbl_8007AD44 -/* 8007AD0C C0 3F 00 68 */ lfs f1, 0x68(r31) -/* 8007AD10 C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 8007AD14 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007AD18 40 82 00 2C */ bne lbl_8007AD44 -/* 8007AD1C C0 3F 00 78 */ lfs f1, 0x78(r31) -/* 8007AD20 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 8007AD24 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8007AD28 40 82 00 1C */ bne lbl_8007AD44 -/* 8007AD2C 38 9F 00 1C */ addi r4, r31, 0x1c -/* 8007AD30 48 2C B7 81 */ bl PSMTXCopy -/* 8007AD34 88 1F 00 91 */ lbz r0, 0x91(r31) -/* 8007AD38 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8007AD3C 40 82 00 40 */ bne lbl_8007AD7C -/* 8007AD40 48 00 00 9C */ b lbl_8007ADDC -lbl_8007AD44: -/* 8007AD44 EC 03 10 28 */ fsubs f0, f3, f2 -/* 8007AD48 D0 1F 00 7C */ stfs f0, 0x7c(r31) -/* 8007AD4C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8007AD50 C0 23 00 1C */ lfs f1, 0x1c(r3) -/* 8007AD54 C0 1F 00 68 */ lfs f0, 0x68(r31) -/* 8007AD58 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8007AD5C D0 1F 00 80 */ stfs f0, 0x80(r31) -/* 8007AD60 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8007AD64 C0 23 00 2C */ lfs f1, 0x2c(r3) -/* 8007AD68 C0 1F 00 78 */ lfs f0, 0x78(r31) -/* 8007AD6C EC 01 00 28 */ fsubs f0, f1, f0 -/* 8007AD70 D0 1F 00 84 */ stfs f0, 0x84(r31) -/* 8007AD74 38 00 00 00 */ li r0, 0 -/* 8007AD78 98 1F 00 89 */ stb r0, 0x89(r31) -lbl_8007AD7C: -/* 8007AD7C 88 7F 00 90 */ lbz r3, 0x90(r31) -/* 8007AD80 28 03 00 FF */ cmplwi r3, 0xff -/* 8007AD84 41 80 00 10 */ blt lbl_8007AD94 -/* 8007AD88 38 00 00 00 */ li r0, 0 -/* 8007AD8C 98 1F 00 90 */ stb r0, 0x90(r31) -/* 8007AD90 48 00 00 0C */ b lbl_8007AD9C -lbl_8007AD94: -/* 8007AD94 38 03 00 01 */ addi r0, r3, 1 -/* 8007AD98 98 1F 00 90 */ stb r0, 0x90(r31) -lbl_8007AD9C: -/* 8007AD9C 7F E3 FB 78 */ mr r3, r31 -/* 8007ADA0 4B FF E6 25 */ bl GlobalVtx__4cBgWFv -lbl_8007ADA4: -/* 8007ADA4 7F E3 FB 78 */ mr r3, r31 -/* 8007ADA8 4B FF FE 1D */ bl CopyOldMtx__4cBgWFv -/* 8007ADAC 7F E3 FB 78 */ mr r3, r31 -/* 8007ADB0 81 9F 00 04 */ lwz r12, 4(r31) -/* 8007ADB4 81 8C 00 F0 */ lwz r12, 0xf0(r12) -/* 8007ADB8 7D 89 03 A6 */ mtctr r12 -/* 8007ADBC 4E 80 04 21 */ bctrl -/* 8007ADC0 7F E3 FB 78 */ mr r3, r31 -/* 8007ADC4 81 9F 00 04 */ lwz r12, 4(r31) -/* 8007ADC8 81 8C 00 F4 */ lwz r12, 0xf4(r12) -/* 8007ADCC 7D 89 03 A6 */ mtctr r12 -/* 8007ADD0 4E 80 04 21 */ bctrl -/* 8007ADD4 7F E3 FB 78 */ mr r3, r31 -/* 8007ADD8 4B FF F0 19 */ bl MakeNodeTree__4cBgWFv -lbl_8007ADDC: -/* 8007ADDC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007ADE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007ADE4 7C 08 03 A6 */ mtlr r0 -/* 8007ADE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007ADEC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/Move__4dBgWFv.s b/asm/d/bg/d_bg_w/Move__4dBgWFv.s deleted file mode 100644 index 58dd27a5c18..00000000000 --- a/asm/d/bg/d_bg_w/Move__4dBgWFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007B9C0: -/* 8007B9C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B9C4 7C 08 02 A6 */ mflr r0 -/* 8007B9C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B9CC 88 03 00 BC */ lbz r0, 0xbc(r3) -/* 8007B9D0 60 00 00 01 */ ori r0, r0, 1 -/* 8007B9D4 98 03 00 BC */ stb r0, 0xbc(r3) -/* 8007B9D8 4B FF F2 39 */ bl Move__4cBgWFv -/* 8007B9DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B9E0 7C 08 03 A6 */ mtlr r0 -/* 8007B9E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B9E8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/OffMoveFlag__4dBgWFv.s b/asm/d/bg/d_bg_w/OffMoveFlag__4dBgWFv.s deleted file mode 100644 index c549a58bb5a..00000000000 --- a/asm/d/bg/d_bg_w/OffMoveFlag__4dBgWFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8007E4A4: -/* 8007E4A4 88 03 00 BC */ lbz r0, 0xbc(r3) -/* 8007E4A8 54 00 06 3C */ rlwinm r0, r0, 0, 0x18, 0x1e -/* 8007E4AC 98 03 00 BC */ stb r0, 0xbc(r3) -/* 8007E4B0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/RoofChk__4dBgWFP12dBgS_RoofChk.s b/asm/d/bg/d_bg_w/RoofChk__4dBgWFP12dBgS_RoofChk.s deleted file mode 100644 index 4758b96ddaf..00000000000 --- a/asm/d/bg/d_bg_w/RoofChk__4dBgWFP12dBgS_RoofChk.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007D470: -/* 8007D470 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007D474 7C 08 02 A6 */ mflr r0 -/* 8007D478 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007D47C A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007D480 38 C0 00 01 */ li r6, 1 -/* 8007D484 4B FF FE AD */ bl RoofChkGrpRp__4dBgWFP12dBgS_RoofChkii -/* 8007D488 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007D48C 7C 08 03 A6 */ mtlr r0 -/* 8007D490 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007D494 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/SetTri__4cBgWFv.s b/asm/d/bg/d_bg_w/SetTri__4cBgWFv.s deleted file mode 100644 index cee12537b7b..00000000000 --- a/asm/d/bg/d_bg_w/SetTri__4cBgWFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_80079668: -/* 80079668 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007966C 7C 08 02 A6 */ mflr r0 -/* 80079670 90 01 00 14 */ stw r0, 0x14(r1) -/* 80079674 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80079678 93 C1 00 08 */ stw r30, 8(r1) -/* 8007967C 7C 7E 1B 78 */ mr r30, r3 -/* 80079680 80 63 00 A0 */ lwz r3, 0xa0(r3) -/* 80079684 83 E3 00 08 */ lwz r31, 8(r3) -/* 80079688 1C 7F 00 18 */ mulli r3, r31, 0x18 -/* 8007968C 38 63 00 10 */ addi r3, r3, 0x10 -/* 80079690 48 25 56 35 */ bl __nwa__FUl -/* 80079694 3C 80 80 08 */ lis r4, __ct__11cBgW_TriElmFv@ha /* 0x80079754@ha */ -/* 80079698 38 84 97 54 */ addi r4, r4, __ct__11cBgW_TriElmFv@l /* 0x80079754@l */ -/* 8007969C 3C A0 80 08 */ lis r5, __dt__11cBgW_TriElmFv@ha /* 0x800796F8@ha */ -/* 800796A0 38 A5 96 F8 */ addi r5, r5, __dt__11cBgW_TriElmFv@l /* 0x800796F8@l */ -/* 800796A4 38 C0 00 18 */ li r6, 0x18 -/* 800796A8 7F E7 FB 78 */ mr r7, r31 -/* 800796AC 48 2E 88 69 */ bl __construct_new_array -/* 800796B0 90 7E 00 94 */ stw r3, 0x94(r30) -/* 800796B4 80 1E 00 94 */ lwz r0, 0x94(r30) -/* 800796B8 28 00 00 00 */ cmplwi r0, 0 -/* 800796BC 40 82 00 0C */ bne lbl_800796C8 -/* 800796C0 38 60 00 01 */ li r3, 1 -/* 800796C4 48 00 00 1C */ b lbl_800796E0 -lbl_800796C8: -/* 800796C8 7F C3 F3 78 */ mr r3, r30 -/* 800796CC 81 9E 00 04 */ lwz r12, 4(r30) -/* 800796D0 81 8C 00 F0 */ lwz r12, 0xf0(r12) -/* 800796D4 7D 89 03 A6 */ mtctr r12 -/* 800796D8 4E 80 04 21 */ bctrl -/* 800796DC 38 60 00 00 */ li r3, 0 -lbl_800796E0: -/* 800796E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800796E4 83 C1 00 08 */ lwz r30, 8(r1) -/* 800796E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800796EC 7C 08 03 A6 */ mtlr r0 -/* 800796F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800796F4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/Set__4cBgWFP6cBgD_tUlPA3_A4_f.s b/asm/d/bg/d_bg_w/Set__4cBgWFP6cBgD_tUlPA3_A4_f.s deleted file mode 100644 index 9d402eb0a0e..00000000000 --- a/asm/d/bg/d_bg_w/Set__4cBgWFP6cBgD_tUlPA3_A4_f.s +++ /dev/null @@ -1,158 +0,0 @@ -lbl_80079F38: -/* 80079F38 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80079F3C 7C 08 02 A6 */ mflr r0 -/* 80079F40 90 01 00 24 */ stw r0, 0x24(r1) -/* 80079F44 39 61 00 20 */ addi r11, r1, 0x20 -/* 80079F48 48 2E 82 91 */ bl _savegpr_28 -/* 80079F4C 7C 7F 1B 78 */ mr r31, r3 -/* 80079F50 7C 9C 23 78 */ mr r28, r4 -/* 80079F54 7C BD 2B 78 */ mr r29, r5 -/* 80079F58 7C DE 33 78 */ mr r30, r6 -/* 80079F5C 38 00 00 20 */ li r0, 0x20 -/* 80079F60 98 03 00 88 */ stb r0, 0x88(r3) -/* 80079F64 38 00 00 00 */ li r0, 0 -/* 80079F68 90 03 00 9C */ stw r0, 0x9c(r3) -/* 80079F6C 90 03 00 94 */ stw r0, 0x94(r3) -/* 80079F70 90 03 00 98 */ stw r0, 0x98(r3) -/* 80079F74 90 03 00 A4 */ stw r0, 0xa4(r3) -/* 80079F78 90 03 00 AC */ stw r0, 0xac(r3) -/* 80079F7C 90 03 00 A8 */ stw r0, 0xa8(r3) -/* 80079F80 C0 22 8D 08 */ lfs f1, lit_4073(r2) -/* 80079F84 48 1E D9 D1 */ bl cM_rndF__Ff -/* 80079F88 FC 00 08 1E */ fctiwz f0, f1 -/* 80079F8C D8 01 00 08 */ stfd f0, 8(r1) -/* 80079F90 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80079F94 98 1F 00 90 */ stb r0, 0x90(r31) -/* 80079F98 28 1C 00 00 */ cmplwi r28, 0 -/* 80079F9C 40 82 00 0C */ bne lbl_80079FA8 -/* 80079FA0 38 60 00 01 */ li r3, 1 -/* 80079FA4 48 00 01 C8 */ b lbl_8007A16C -lbl_80079FA8: -/* 80079FA8 9B BF 00 88 */ stb r29, 0x88(r31) -/* 80079FAC 88 1F 00 88 */ lbz r0, 0x88(r31) -/* 80079FB0 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 80079FB4 41 82 00 20 */ beq lbl_80079FD4 -/* 80079FB8 38 00 00 00 */ li r0, 0 -/* 80079FBC 90 1F 00 18 */ stw r0, 0x18(r31) -/* 80079FC0 38 7F 00 1C */ addi r3, r31, 0x1c -/* 80079FC4 48 2C C4 C1 */ bl PSMTXIdentity -/* 80079FC8 38 7F 00 4C */ addi r3, r31, 0x4c -/* 80079FCC 48 2C C4 B9 */ bl PSMTXIdentity -/* 80079FD0 48 00 00 20 */ b lbl_80079FF0 -lbl_80079FD4: -/* 80079FD4 93 DF 00 18 */ stw r30, 0x18(r31) -/* 80079FD8 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 80079FDC 38 9F 00 1C */ addi r4, r31, 0x1c -/* 80079FE0 48 2C C4 D1 */ bl PSMTXCopy -/* 80079FE4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 80079FE8 38 9F 00 4C */ addi r4, r31, 0x4c -/* 80079FEC 48 2C C4 C5 */ bl PSMTXCopy -lbl_80079FF0: -/* 80079FF0 93 9F 00 A0 */ stw r28, 0xa0(r31) -/* 80079FF4 7F E3 FB 78 */ mr r3, r31 -/* 80079FF8 4B FF F4 8D */ bl SetVtx__4cBgWFv -/* 80079FFC 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8007A000 40 82 00 14 */ bne lbl_8007A014 -/* 8007A004 7F E3 FB 78 */ mr r3, r31 -/* 8007A008 4B FF F6 61 */ bl SetTri__4cBgWFv -/* 8007A00C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8007A010 41 82 00 14 */ beq lbl_8007A024 -lbl_8007A014: -/* 8007A014 7F E3 FB 78 */ mr r3, r31 -/* 8007A018 4B FF F3 8D */ bl FreeArea__4cBgWFv -/* 8007A01C 38 60 00 01 */ li r3, 1 -/* 8007A020 48 00 01 4C */ b lbl_8007A16C -lbl_8007A024: -/* 8007A024 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 8007A028 83 C3 00 08 */ lwz r30, 8(r3) -/* 8007A02C 57 C3 18 38 */ slwi r3, r30, 3 -/* 8007A030 38 63 00 10 */ addi r3, r3, 0x10 -/* 8007A034 48 25 4C 91 */ bl __nwa__FUl -/* 8007A038 3C 80 80 08 */ lis r4, __ct__11cBgW_RwgElmFv@ha /* 0x800791C4@ha */ -/* 8007A03C 38 84 91 C4 */ addi r4, r4, __ct__11cBgW_RwgElmFv@l /* 0x800791C4@l */ -/* 8007A040 3C A0 80 08 */ lis r5, __dt__11cBgW_RwgElmFv@ha /* 0x800791D4@ha */ -/* 8007A044 38 A5 91 D4 */ addi r5, r5, __dt__11cBgW_RwgElmFv@l /* 0x800791D4@l */ -/* 8007A048 38 C0 00 08 */ li r6, 8 -/* 8007A04C 7F C7 F3 78 */ mr r7, r30 -/* 8007A050 48 2E 7E C5 */ bl __construct_new_array -/* 8007A054 90 7F 00 98 */ stw r3, 0x98(r31) -/* 8007A058 80 1F 00 98 */ lwz r0, 0x98(r31) -/* 8007A05C 28 00 00 00 */ cmplwi r0, 0 -/* 8007A060 40 82 00 14 */ bne lbl_8007A074 -/* 8007A064 7F E3 FB 78 */ mr r3, r31 -/* 8007A068 4B FF F3 3D */ bl FreeArea__4cBgWFv -/* 8007A06C 38 60 00 01 */ li r3, 1 -/* 8007A070 48 00 00 FC */ b lbl_8007A16C -lbl_8007A074: -/* 8007A074 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 8007A078 80 03 00 10 */ lwz r0, 0x10(r3) -/* 8007A07C 1C 60 00 06 */ mulli r3, r0, 6 -/* 8007A080 48 25 4C 45 */ bl __nwa__FUl -/* 8007A084 90 7F 00 A4 */ stw r3, 0xa4(r31) -/* 8007A088 80 1F 00 A4 */ lwz r0, 0xa4(r31) -/* 8007A08C 28 00 00 00 */ cmplwi r0, 0 -/* 8007A090 40 82 00 14 */ bne lbl_8007A0A4 -/* 8007A094 7F E3 FB 78 */ mr r3, r31 -/* 8007A098 4B FF F3 0D */ bl FreeArea__4cBgWFv -/* 8007A09C 38 60 00 01 */ li r3, 1 -/* 8007A0A0 48 00 00 CC */ b lbl_8007A16C -lbl_8007A0A4: -/* 8007A0A4 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 8007A0A8 83 C3 00 18 */ lwz r30, 0x18(r3) -/* 8007A0AC 1C 7E 00 1C */ mulli r3, r30, 0x1c -/* 8007A0B0 38 63 00 10 */ addi r3, r3, 0x10 -/* 8007A0B4 48 25 4C 11 */ bl __nwa__FUl -/* 8007A0B8 3C 80 80 08 */ lis r4, __ct__13cBgW_NodeTreeFv@ha /* 0x8007921C@ha */ -/* 8007A0BC 38 84 92 1C */ addi r4, r4, __ct__13cBgW_NodeTreeFv@l /* 0x8007921C@l */ -/* 8007A0C0 3C A0 80 08 */ lis r5, __dt__13cBgW_NodeTreeFv@ha /* 0x80079238@ha */ -/* 8007A0C4 38 A5 92 38 */ addi r5, r5, __dt__13cBgW_NodeTreeFv@l /* 0x80079238@l */ -/* 8007A0C8 38 C0 00 1C */ li r6, 0x1c -/* 8007A0CC 7F C7 F3 78 */ mr r7, r30 -/* 8007A0D0 48 2E 7E 45 */ bl __construct_new_array -/* 8007A0D4 90 7F 00 AC */ stw r3, 0xac(r31) -/* 8007A0D8 80 1F 00 AC */ lwz r0, 0xac(r31) -/* 8007A0DC 28 00 00 00 */ cmplwi r0, 0 -/* 8007A0E0 40 82 00 14 */ bne lbl_8007A0F4 -/* 8007A0E4 7F E3 FB 78 */ mr r3, r31 -/* 8007A0E8 4B FF F2 BD */ bl FreeArea__4cBgWFv -/* 8007A0EC 38 60 00 01 */ li r3, 1 -/* 8007A0F0 48 00 00 7C */ b lbl_8007A16C -lbl_8007A0F4: -/* 8007A0F4 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 8007A0F8 83 C3 00 20 */ lwz r30, 0x20(r3) -/* 8007A0FC 57 C3 28 34 */ slwi r3, r30, 5 -/* 8007A100 38 63 00 10 */ addi r3, r3, 0x10 -/* 8007A104 48 25 4B C1 */ bl __nwa__FUl -/* 8007A108 3C 80 80 08 */ lis r4, __ct__11cBgW_GrpElmFv@ha /* 0x8007A1E4@ha */ -/* 8007A10C 38 84 A1 E4 */ addi r4, r4, __ct__11cBgW_GrpElmFv@l /* 0x8007A1E4@l */ -/* 8007A110 3C A0 80 08 */ lis r5, __dt__11cBgW_GrpElmFv@ha /* 0x8007A184@ha */ -/* 8007A114 38 A5 A1 84 */ addi r5, r5, __dt__11cBgW_GrpElmFv@l /* 0x8007A184@l */ -/* 8007A118 38 C0 00 20 */ li r6, 0x20 -/* 8007A11C 7F C7 F3 78 */ mr r7, r30 -/* 8007A120 48 2E 7D F5 */ bl __construct_new_array -/* 8007A124 90 7F 00 A8 */ stw r3, 0xa8(r31) -/* 8007A128 80 1F 00 A8 */ lwz r0, 0xa8(r31) -/* 8007A12C 28 00 00 00 */ cmplwi r0, 0 -/* 8007A130 40 82 00 14 */ bne lbl_8007A144 -/* 8007A134 7F E3 FB 78 */ mr r3, r31 -/* 8007A138 4B FF F2 6D */ bl FreeArea__4cBgWFv -/* 8007A13C 38 60 00 01 */ li r3, 1 -/* 8007A140 48 00 00 2C */ b lbl_8007A16C -lbl_8007A144: -/* 8007A144 7F E3 FB 78 */ mr r3, r31 -/* 8007A148 81 9F 00 04 */ lwz r12, 4(r31) -/* 8007A14C 81 8C 00 F4 */ lwz r12, 0xf4(r12) -/* 8007A150 7D 89 03 A6 */ mtctr r12 -/* 8007A154 4E 80 04 21 */ bctrl -/* 8007A158 38 00 00 01 */ li r0, 1 -/* 8007A15C 98 1F 00 89 */ stb r0, 0x89(r31) -/* 8007A160 7F E3 FB 78 */ mr r3, r31 -/* 8007A164 4B FF FC 8D */ bl MakeNodeTree__4cBgWFv -/* 8007A168 38 60 00 00 */ li r3, 0 -lbl_8007A16C: -/* 8007A16C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007A170 48 2E 80 B5 */ bl _restgpr_28 -/* 8007A174 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007A178 7C 08 03 A6 */ mtlr r0 -/* 8007A17C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007A180 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/ShdwDraw__4cBgWFP13cBgS_ShdwDraw.s b/asm/d/bg/d_bg_w/ShdwDraw__4cBgWFP13cBgS_ShdwDraw.s deleted file mode 100644 index 7e1e519e3d0..00000000000 --- a/asm/d/bg/d_bg_w/ShdwDraw__4cBgWFP13cBgS_ShdwDraw.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007B084: -/* 8007B084 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B088 7C 08 02 A6 */ mflr r0 -/* 8007B08C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B090 A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007B094 4B FF FF 2D */ bl ShdwDrawGrpRp__4cBgWFP13cBgS_ShdwDrawi -/* 8007B098 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B09C 7C 08 03 A6 */ mtlr r0 -/* 8007B0A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B0A4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/SphChk__4dBgWFP11dBgS_SphChkPv.s b/asm/d/bg/d_bg_w/SphChk__4dBgWFP11dBgS_SphChkPv.s deleted file mode 100644 index c62f851efe6..00000000000 --- a/asm/d/bg/d_bg_w/SphChk__4dBgWFP11dBgS_SphChkPv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007DF00: -/* 8007DF00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007DF04 7C 08 02 A6 */ mflr r0 -/* 8007DF08 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007DF0C A0 C3 00 92 */ lhz r6, 0x92(r3) -/* 8007DF10 38 E0 00 01 */ li r7, 1 -/* 8007DF14 4B FF FE CD */ bl SphChkGrpRp__4dBgWFP11dBgS_SphChkPvii -/* 8007DF18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007DF1C 7C 08 03 A6 */ mtlr r0 -/* 8007DF20 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007DF24 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/SplGrpChk__4dBgWFP14dBgS_SplGrpChk.s b/asm/d/bg/d_bg_w/SplGrpChk__4dBgWFP14dBgS_SplGrpChk.s deleted file mode 100644 index c319d815756..00000000000 --- a/asm/d/bg/d_bg_w/SplGrpChk__4dBgWFP14dBgS_SplGrpChk.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007D830: -/* 8007D830 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007D834 7C 08 02 A6 */ mflr r0 -/* 8007D838 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007D83C A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007D840 38 C0 00 01 */ li r6, 1 -/* 8007D844 4B FF FE AD */ bl SplGrpChkGrpRp__4dBgWFP14dBgS_SplGrpChkii -/* 8007D848 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007D84C 7C 08 03 A6 */ mtlr r0 -/* 8007D850 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007D854 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/WallCorrect__4dBgWFP9dBgS_Acch.s b/asm/d/bg/d_bg_w/WallCorrect__4dBgWFP9dBgS_Acch.s deleted file mode 100644 index 90fac500ee8..00000000000 --- a/asm/d/bg/d_bg_w/WallCorrect__4dBgWFP9dBgS_Acch.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8007C484: -/* 8007C484 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007C488 7C 08 02 A6 */ mflr r0 -/* 8007C48C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007C490 A0 A3 00 92 */ lhz r5, 0x92(r3) -/* 8007C494 38 C0 00 01 */ li r6, 1 -/* 8007C498 4B FF FE C9 */ bl WallCorrectGrpRp__4dBgWFP9dBgS_Acchii -/* 8007C49C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007C4A0 7C 08 03 A6 */ mtlr r0 -/* 8007C4A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007C4A8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/__ct__11cBgW_GrpElmFv.s b/asm/d/bg/d_bg_w/__ct__11cBgW_GrpElmFv.s deleted file mode 100644 index 1665fcc8ae8..00000000000 --- a/asm/d/bg/d_bg_w/__ct__11cBgW_GrpElmFv.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8007A1E4: -/* 8007A1E4 3C 80 80 3B */ lis r4, __vt__11cBgW_GrpElm@ha /* 0x803ABB90@ha */ -/* 8007A1E8 38 04 BB 90 */ addi r0, r4, __vt__11cBgW_GrpElm@l /* 0x803ABB90@l */ -/* 8007A1EC 90 03 00 00 */ stw r0, 0(r3) -/* 8007A1F0 3C 80 80 3A */ lis r4, __vt__8cM3dGAab@ha /* 0x803A7218@ha */ -/* 8007A1F4 38 04 72 18 */ addi r0, r4, __vt__8cM3dGAab@l /* 0x803A7218@l */ -/* 8007A1F8 90 03 00 1C */ stw r0, 0x1c(r3) -/* 8007A1FC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/__ct__11cBgW_TriElmFv.s b/asm/d/bg/d_bg_w/__ct__11cBgW_TriElmFv.s deleted file mode 100644 index baf69e04e4d..00000000000 --- a/asm/d/bg/d_bg_w/__ct__11cBgW_TriElmFv.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80079754: -/* 80079754 3C 80 80 3B */ lis r4, __vt__11cBgW_TriElm@ha /* 0x803ABB9C@ha */ -/* 80079758 38 04 BB 9C */ addi r0, r4, __vt__11cBgW_TriElm@l /* 0x803ABB9C@l */ -/* 8007975C 90 03 00 14 */ stw r0, 0x14(r3) -/* 80079760 3C 80 80 3A */ lis r4, __vt__8cM3dGPla@ha /* 0x803A37C0@ha */ -/* 80079764 38 04 37 C0 */ addi r0, r4, __vt__8cM3dGPla@l /* 0x803A37C0@l */ -/* 80079768 90 03 00 10 */ stw r0, 0x10(r3) -/* 8007976C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/__ct__4dBgWFv.s b/asm/d/bg/d_bg_w/__ct__4dBgWFv.s deleted file mode 100644 index b83d6461963..00000000000 --- a/asm/d/bg/d_bg_w/__ct__4dBgWFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_8007B970: -/* 8007B970 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007B974 7C 08 02 A6 */ mflr r0 -/* 8007B978 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007B97C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007B980 7C 7F 1B 78 */ mr r31, r3 -/* 8007B984 4B FF D9 11 */ bl __ct__4cBgWFv -/* 8007B988 3C 60 80 3B */ lis r3, __vt__4dBgW@ha /* 0x803ABA80@ha */ -/* 8007B98C 38 03 BA 80 */ addi r0, r3, __vt__4dBgW@l /* 0x803ABA80@l */ -/* 8007B990 90 1F 00 04 */ stw r0, 4(r31) -/* 8007B994 38 00 00 00 */ li r0, 0 -/* 8007B998 90 1F 00 B0 */ stw r0, 0xb0(r31) -/* 8007B99C 90 1F 00 B4 */ stw r0, 0xb4(r31) -/* 8007B9A0 90 1F 00 B8 */ stw r0, 0xb8(r31) -/* 8007B9A4 98 1F 00 BC */ stb r0, 0xbc(r31) -/* 8007B9A8 7F E3 FB 78 */ mr r3, r31 -/* 8007B9AC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007B9B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007B9B4 7C 08 03 A6 */ mtlr r0 -/* 8007B9B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007B9BC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w/dBgW_NewSet__FP6cBgD_tUlPA3_A4_f.s b/asm/d/bg/d_bg_w/dBgW_NewSet__FP6cBgD_tUlPA3_A4_f.s deleted file mode 100644 index 8ea3133d3c4..00000000000 --- a/asm/d/bg/d_bg_w/dBgW_NewSet__FP6cBgD_tUlPA3_A4_f.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_8007E4C0: -/* 8007E4C0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8007E4C4 7C 08 02 A6 */ mflr r0 -/* 8007E4C8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007E4CC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007E4D0 48 2E 3D 09 */ bl _savegpr_28 -/* 8007E4D4 7C 7C 1B 78 */ mr r28, r3 -/* 8007E4D8 7C 9D 23 78 */ mr r29, r4 -/* 8007E4DC 7C BE 2B 78 */ mr r30, r5 -/* 8007E4E0 38 60 00 C0 */ li r3, 0xc0 -/* 8007E4E4 48 25 07 69 */ bl __nw__FUl -/* 8007E4E8 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8007E4EC 41 82 00 0C */ beq lbl_8007E4F8 -/* 8007E4F0 4B FF D4 81 */ bl __ct__4dBgWFv -/* 8007E4F4 7C 7F 1B 78 */ mr r31, r3 -lbl_8007E4F8: -/* 8007E4F8 28 1F 00 00 */ cmplwi r31, 0 -/* 8007E4FC 40 82 00 0C */ bne lbl_8007E508 -/* 8007E500 38 60 00 00 */ li r3, 0 -/* 8007E504 48 00 00 2C */ b lbl_8007E530 -lbl_8007E508: -/* 8007E508 7F E3 FB 78 */ mr r3, r31 -/* 8007E50C 7F 84 E3 78 */ mr r4, r28 -/* 8007E510 7F A5 EB 78 */ mr r5, r29 -/* 8007E514 7F C6 F3 78 */ mr r6, r30 -/* 8007E518 4B FF BA 21 */ bl Set__4cBgWFP6cBgD_tUlPA3_A4_f -/* 8007E51C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8007E520 41 82 00 0C */ beq lbl_8007E52C -/* 8007E524 38 60 00 00 */ li r3, 0 -/* 8007E528 48 00 00 08 */ b lbl_8007E530 -lbl_8007E52C: -/* 8007E52C 7F E3 FB 78 */ mr r3, r31 -lbl_8007E530: -/* 8007E530 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007E534 48 2E 3C F1 */ bl _restgpr_28 -/* 8007E538 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007E53C 7C 08 03 A6 */ mtlr r0 -/* 8007E540 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007E544 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/ChkNotReady__8dBgWKColCFv.s b/asm/d/bg/d_bg_w_kcol/ChkNotReady__8dBgWKColCFv.s deleted file mode 100644 index d5e3d84cd35..00000000000 --- a/asm/d/bg/d_bg_w_kcol/ChkNotReady__8dBgWKColCFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8007E86C: -/* 8007E86C 80 03 00 18 */ lwz r0, 0x18(r3) -/* 8007E870 7C 00 00 34 */ cntlzw r0, r0 -/* 8007E874 54 03 D9 7E */ srwi r3, r0, 5 -/* 8007E878 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/ChkShdwDrawThrough__8dBgWKColFP5dBgPc.s b/asm/d/bg/d_bg_w_kcol/ChkShdwDrawThrough__8dBgWKColFP5dBgPc.s deleted file mode 100644 index 84c50e52ca7..00000000000 --- a/asm/d/bg/d_bg_w_kcol/ChkShdwDrawThrough__8dBgWKColFP5dBgPc.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8007FF00: -/* 8007FF00 80 64 00 00 */ lwz r3, 0(r4) -/* 8007FF04 54 60 02 53 */ rlwinm. r0, r3, 0, 9, 9 -/* 8007FF08 41 82 00 0C */ beq lbl_8007FF14 -/* 8007FF0C 38 60 00 01 */ li r3, 1 -/* 8007FF10 4E 80 00 20 */ blr -lbl_8007FF14: -/* 8007FF14 54 63 7F FE */ rlwinm r3, r3, 0xf, 0x1f, 0x1f -/* 8007FF18 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetAttackThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetAttackThrough__8dBgWKColFi.s deleted file mode 100644 index e0cd2d6cf88..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetAttackThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082E40: -/* 80082E40 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082E44 7C 08 02 A6 */ mflr r0 -/* 80082E48 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082E4C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082E50 4B FF BD 21 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082E54 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082E58 54 03 01 8C */ rlwinm r3, r0, 0, 6, 6 -/* 80082E5C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082E60 7C 08 03 A6 */ mtlr r0 -/* 80082E64 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082E68 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetBnd__8dBgWKColCFv.s b/asm/d/bg/d_bg_w_kcol/GetBnd__8dBgWKColCFv.s deleted file mode 100644 index 8184aea0112..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetBnd__8dBgWKColCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8007EB28: -/* 8007EB28 38 63 00 20 */ addi r3, r3, 0x20 -/* 8007EB2C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 3d09b502f5b..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082E6C: -/* 80082E6C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082E70 7C 08 02 A6 */ mflr r0 -/* 80082E74 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082E78 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082E7C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082E80 4B FF BC F1 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082E84 80 01 00 10 */ lwz r0, 0x10(r1) -/* 80082E88 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80082E8C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082E90 7C 08 03 A6 */ mtlr r0 -/* 80082E94 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082E98 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetExitId__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetExitId__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 755f3bb3e32..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetExitId__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082A20: -/* 80082A20 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082A24 7C 08 02 A6 */ mflr r0 -/* 80082A28 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082A2C A0 84 00 00 */ lhz r4, 0(r4) -/* 80082A30 38 A1 00 08 */ addi r5, r1, 8 -/* 80082A34 4B FF C1 3D */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082A38 80 01 00 08 */ lwz r0, 8(r1) -/* 80082A3C 54 03 06 BE */ clrlwi r3, r0, 0x1a -/* 80082A40 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082A44 7C 08 03 A6 */ mtlr r0 -/* 80082A48 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082A4C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index a8ba6158ac9..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082DE4: -/* 80082DE4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082DE8 7C 08 02 A6 */ mflr r0 -/* 80082DEC 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082DF0 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082DF4 38 A1 00 08 */ addi r5, r1, 8 -/* 80082DF8 4B FF BD 79 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082DFC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082E00 54 03 6E FE */ rlwinm r3, r0, 0xd, 0x1b, 0x1f -/* 80082E04 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082E08 7C 08 03 A6 */ mtlr r0 -/* 80082E0C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082E10 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo.s deleted file mode 100644 index b48c37bebcf..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8007EB30: -/* 8007EB30 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007EB34 7C 08 02 A6 */ mflr r0 -/* 8007EB38 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007EB3C A0 04 00 00 */ lhz r0, 0(r4) -/* 8007EB40 80 83 00 18 */ lwz r4, 0x18(r3) -/* 8007EB44 80 84 00 08 */ lwz r4, 8(r4) -/* 8007EB48 54 00 20 36 */ slwi r0, r0, 4 -/* 8007EB4C 7C 84 02 14 */ add r4, r4, r0 -/* 8007EB50 A0 84 00 0E */ lhz r4, 0xe(r4) -/* 8007EB54 38 63 00 1C */ addi r3, r3, 0x1c -/* 8007EB58 4B FF 55 85 */ bl getGrpCode__6dBgPlcCFi -/* 8007EB5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007EB60 7C 08 03 A6 */ mtlr r0 -/* 8007EB64 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007EB68 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo.s deleted file mode 100644 index bd943dbff91..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_800829F0: -/* 800829F0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800829F4 7C 08 02 A6 */ mflr r0 -/* 800829F8 90 01 00 24 */ stw r0, 0x24(r1) -/* 800829FC A0 84 00 00 */ lhz r4, 0(r4) -/* 80082A00 38 A1 00 08 */ addi r5, r1, 8 -/* 80082A04 4B FF C1 6D */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082A08 80 01 00 18 */ lwz r0, 0x18(r1) -/* 80082A0C 54 03 66 3E */ rlwinm r3, r0, 0xc, 0x18, 0x1f -/* 80082A10 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082A14 7C 08 03 A6 */ mtlr r0 -/* 80082A18 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082A1C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 9dbc1e738e2..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082F5C: -/* 80082F5C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082F60 7C 08 02 A6 */ mflr r0 -/* 80082F64 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082F68 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082F6C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082F70 4B FF BC 01 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082F74 80 01 00 18 */ lwz r0, 0x18(r1) -/* 80082F78 54 03 AE 3E */ rlwinm r3, r0, 0x15, 0x18, 0x1f -/* 80082F7C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082F80 7C 08 03 A6 */ mtlr r0 -/* 80082F84 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082F88 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index ba6137bf9d1..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082A80: -/* 80082A80 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082A84 7C 08 02 A6 */ mflr r0 -/* 80082A88 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082A8C A0 84 00 00 */ lhz r4, 0(r4) -/* 80082A90 38 A1 00 08 */ addi r5, r1, 8 -/* 80082A94 4B FF C0 DD */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082A98 80 01 00 08 */ lwz r0, 8(r1) -/* 80082A9C 54 03 5F FE */ rlwinm r3, r0, 0xb, 0x1f, 0x1f -/* 80082AA0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082AA4 7C 08 03 A6 */ mtlr r0 -/* 80082AA8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082AAC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetIronBallThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetIronBallThrough__8dBgWKColFi.s deleted file mode 100644 index a665ef30934..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetIronBallThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082E14: -/* 80082E14 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082E18 7C 08 02 A6 */ mflr r0 -/* 80082E1C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082E20 38 A1 00 08 */ addi r5, r1, 8 -/* 80082E24 4B FF BD 4D */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082E28 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082E2C 54 03 01 CE */ rlwinm r3, r0, 0, 7, 7 -/* 80082E30 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082E34 7C 08 03 A6 */ mtlr r0 -/* 80082E38 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082E3C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index e2d016d2fe3..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082D24: -/* 80082D24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082D28 7C 08 02 A6 */ mflr r0 -/* 80082D2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082D30 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082D34 38 A1 00 08 */ addi r5, r1, 8 -/* 80082D38 4B FF BE 39 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082D3C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082D40 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80082D44 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082D48 7C 08 03 A6 */ mtlr r0 -/* 80082D4C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082D50 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 379548df9ed..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082B0C: -/* 80082B0C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082B10 7C 08 02 A6 */ mflr r0 -/* 80082B14 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082B18 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082B1C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082B20 4B FF C0 51 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082B24 80 01 00 08 */ lwz r0, 8(r1) -/* 80082B28 54 03 27 BE */ rlwinm r3, r0, 4, 0x1e, 0x1f -/* 80082B2C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082B30 7C 08 03 A6 */ mtlr r0 -/* 80082B34 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082B38 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index f9742229de3..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082B3C: -/* 80082B3C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082B40 7C 08 02 A6 */ mflr r0 -/* 80082B44 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082B48 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082B4C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082B50 4B FF C0 21 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082B54 80 01 00 08 */ lwz r0, 8(r1) -/* 80082B58 54 03 0F FE */ srwi r3, r0, 0x1f -/* 80082B5C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082B60 7C 08 03 A6 */ mtlr r0 -/* 80082B64 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082B68 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyArrowThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyArrowThrough__8dBgWKColFi.s deleted file mode 100644 index 4d14f7ae09c..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyArrowThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082BF0: -/* 80082BF0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082BF4 7C 08 02 A6 */ mflr r0 -/* 80082BF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082BFC 38 A1 00 08 */ addi r5, r1, 8 -/* 80082C00 4B FF BF 71 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082C04 80 01 00 08 */ lwz r0, 8(r1) -/* 80082C08 54 03 03 9C */ rlwinm r3, r0, 0, 0xe, 0xe -/* 80082C0C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082C10 7C 08 03 A6 */ mtlr r0 -/* 80082C14 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082C18 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index b58dfa1c816..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082D84: -/* 80082D84 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082D88 7C 08 02 A6 */ mflr r0 -/* 80082D8C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082D90 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082D94 38 A1 00 08 */ addi r5, r1, 8 -/* 80082D98 4B FF BD D9 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082D9C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082DA0 54 03 A7 3E */ rlwinm r3, r0, 0x14, 0x1c, 0x1f -/* 80082DA4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082DA8 7C 08 03 A6 */ mtlr r0 -/* 80082DAC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082DB0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 331b8b059de..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082DB4: -/* 80082DB4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082DB8 7C 08 02 A6 */ mflr r0 -/* 80082DBC 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082DC0 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082DC4 38 A1 00 08 */ addi r5, r1, 8 -/* 80082DC8 4B FF BD A9 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082DCC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082DD0 54 03 87 7E */ rlwinm r3, r0, 0x10, 0x1d, 0x1f -/* 80082DD4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082DD8 7C 08 03 A6 */ mtlr r0 -/* 80082DDC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082DE0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyBombThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyBombThrough__8dBgWKColFi.s deleted file mode 100644 index 2c2549f10b1..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyBombThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082CA0: -/* 80082CA0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082CA4 7C 08 02 A6 */ mflr r0 -/* 80082CA8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082CAC 38 A1 00 08 */ addi r5, r1, 8 -/* 80082CB0 4B FF BE C1 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082CB4 80 01 00 08 */ lwz r0, 8(r1) -/* 80082CB8 54 03 02 10 */ rlwinm r3, r0, 0, 8, 8 -/* 80082CBC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082CC0 7C 08 03 A6 */ mtlr r0 -/* 80082CC4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082CC8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyBoomerangThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyBoomerangThrough__8dBgWKColFi.s deleted file mode 100644 index 12bf0bf823d..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyBoomerangThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082C48: -/* 80082C48 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082C4C 7C 08 02 A6 */ mflr r0 -/* 80082C50 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082C54 38 A1 00 08 */ addi r5, r1, 8 -/* 80082C58 4B FF BF 19 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082C5C 80 01 00 08 */ lwz r0, 8(r1) -/* 80082C60 54 03 03 18 */ rlwinm r3, r0, 0, 0xc, 0xc -/* 80082C64 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082C68 7C 08 03 A6 */ mtlr r0 -/* 80082C6C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082C70 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyCamThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyCamThrough__8dBgWKColFi.s deleted file mode 100644 index 573819304d0..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyCamThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082B98: -/* 80082B98 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082B9C 7C 08 02 A6 */ mflr r0 -/* 80082BA0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082BA4 38 A1 00 08 */ addi r5, r1, 8 -/* 80082BA8 4B FF BF C9 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082BAC 80 01 00 08 */ lwz r0, 8(r1) -/* 80082BB0 54 03 04 20 */ rlwinm r3, r0, 0, 0x10, 0x10 -/* 80082BB4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082BB8 7C 08 03 A6 */ mtlr r0 -/* 80082BBC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082BC0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 9965b9db6d8..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082A50: -/* 80082A50 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082A54 7C 08 02 A6 */ mflr r0 -/* 80082A58 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082A5C A0 84 00 00 */ lhz r4, 0(r4) -/* 80082A60 38 A1 00 08 */ addi r5, r1, 8 -/* 80082A64 4B FF C1 0D */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082A68 80 01 00 08 */ lwz r0, 8(r1) -/* 80082A6C 54 03 D6 3E */ rlwinm r3, r0, 0x1a, 0x18, 0x1f -/* 80082A70 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082A74 7C 08 03 A6 */ mtlr r0 -/* 80082A78 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082A7C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 64aa01e9dc0..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082F2C: -/* 80082F2C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082F30 7C 08 02 A6 */ mflr r0 -/* 80082F34 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082F38 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082F3C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082F40 4B FF BC 31 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082F44 80 01 00 18 */ lwz r0, 0x18(r1) -/* 80082F48 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80082F4C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082F50 7C 08 03 A6 */ mtlr r0 -/* 80082F54 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082F58 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s deleted file mode 100644 index a8a9cc6d085..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082C1C: -/* 80082C1C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082C20 7C 08 02 A6 */ mflr r0 -/* 80082C24 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082C28 38 A1 00 08 */ addi r5, r1, 8 -/* 80082C2C 4B FF BF 45 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082C30 80 01 00 08 */ lwz r0, 8(r1) -/* 80082C34 54 03 03 5A */ rlwinm r3, r0, 0, 0xd, 0xd -/* 80082C38 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082C3C 7C 08 03 A6 */ mtlr r0 -/* 80082C40 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082C44 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyLinkThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyLinkThrough__8dBgWKColFi.s deleted file mode 100644 index 5a7166fd0e0..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyLinkThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082BC4: -/* 80082BC4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082BC8 7C 08 02 A6 */ mflr r0 -/* 80082BCC 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082BD0 38 A1 00 08 */ addi r5, r1, 8 -/* 80082BD4 4B FF BF 9D */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082BD8 80 01 00 08 */ lwz r0, 8(r1) -/* 80082BDC 54 03 03 DE */ rlwinm r3, r0, 0, 0xf, 0xf -/* 80082BE0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082BE4 7C 08 03 A6 */ mtlr r0 -/* 80082BE8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082BEC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyObjThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyObjThrough__8dBgWKColFi.s deleted file mode 100644 index 893b9322362..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyObjThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082B6C: -/* 80082B6C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082B70 7C 08 02 A6 */ mflr r0 -/* 80082B74 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082B78 38 A1 00 08 */ addi r5, r1, 8 -/* 80082B7C 4B FF BF F5 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082B80 80 01 00 08 */ lwz r0, 8(r1) -/* 80082B84 54 03 04 62 */ rlwinm r3, r0, 0, 0x11, 0x11 -/* 80082B88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082B8C 7C 08 03 A6 */ mtlr r0 -/* 80082B90 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082B94 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetPolyRopeThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetPolyRopeThrough__8dBgWKColFi.s deleted file mode 100644 index efb3f9493f2..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetPolyRopeThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082C74: -/* 80082C74 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082C78 7C 08 02 A6 */ mflr r0 -/* 80082C7C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082C80 38 A1 00 08 */ addi r5, r1, 8 -/* 80082C84 4B FF BE ED */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082C88 80 01 00 08 */ lwz r0, 8(r1) -/* 80082C8C 54 03 02 D6 */ rlwinm r3, r0, 0, 0xb, 0xb -/* 80082C90 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082C94 7C 08 03 A6 */ mtlr r0 -/* 80082C98 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082C9C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index b3c1672128c..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082E9C: -/* 80082E9C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082EA0 7C 08 02 A6 */ mflr r0 -/* 80082EA4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082EA8 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082EAC 38 A1 00 08 */ addi r5, r1, 8 -/* 80082EB0 4B FF BC C1 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082EB4 80 01 00 10 */ lwz r0, 0x10(r1) -/* 80082EB8 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f -/* 80082EBC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082EC0 7C 08 03 A6 */ mtlr r0 -/* 80082EC4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082EC8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index bd097f1c032..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082ECC: -/* 80082ECC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082ED0 7C 08 02 A6 */ mflr r0 -/* 80082ED4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082ED8 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082EDC 38 A1 00 08 */ addi r5, r1, 8 -/* 80082EE0 4B FF BC 91 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082EE4 80 01 00 10 */ lwz r0, 0x10(r1) -/* 80082EE8 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f -/* 80082EEC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082EF0 7C 08 03 A6 */ mtlr r0 -/* 80082EF4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082EF8 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 377127f4fe8..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082EFC: -/* 80082EFC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082F00 7C 08 02 A6 */ mflr r0 -/* 80082F04 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082F08 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082F0C 38 A1 00 08 */ addi r5, r1, 8 -/* 80082F10 4B FF BC 61 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082F14 80 01 00 10 */ lwz r0, 0x10(r1) -/* 80082F18 54 03 46 3E */ srwi r3, r0, 0x18 -/* 80082F1C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082F20 7C 08 03 A6 */ mtlr r0 -/* 80082F24 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082F28 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetShdwThrough__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetShdwThrough__8dBgWKColFi.s deleted file mode 100644 index 707dceac050..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetShdwThrough__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082CF8: -/* 80082CF8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082CFC 7C 08 02 A6 */ mflr r0 -/* 80082D00 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082D04 38 A1 00 08 */ addi r5, r1, 8 -/* 80082D08 4B FF BE 69 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082D0C 80 01 00 08 */ lwz r0, 8(r1) -/* 80082D10 54 03 57 FE */ rlwinm r3, r0, 0xa, 0x1f, 0x1f -/* 80082D14 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082D18 7C 08 03 A6 */ mtlr r0 -/* 80082D1C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082D20 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index 434909aea7e..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082AB0: -/* 80082AB0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80082AB4 7C 08 02 A6 */ mflr r0 -/* 80082AB8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80082ABC A0 84 00 00 */ lhz r4, 0(r4) -/* 80082AC0 81 83 00 04 */ lwz r12, 4(r3) -/* 80082AC4 81 8C 00 74 */ lwz r12, 0x74(r12) -/* 80082AC8 7D 89 03 A6 */ mtctr r12 -/* 80082ACC 4E 80 04 21 */ bctrl -/* 80082AD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80082AD4 7C 08 03 A6 */ mtlr r0 -/* 80082AD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80082ADC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFi.s deleted file mode 100644 index dbadd226c82..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082AE0: -/* 80082AE0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082AE4 7C 08 02 A6 */ mflr r0 -/* 80082AE8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082AEC 38 A1 00 08 */ addi r5, r1, 8 -/* 80082AF0 4B FF C0 81 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082AF4 80 01 00 08 */ lwz r0, 8(r1) -/* 80082AF8 54 03 47 3E */ rlwinm r3, r0, 8, 0x1c, 0x1f -/* 80082AFC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082B00 7C 08 03 A6 */ mtlr r0 -/* 80082B04 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082B08 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetTopUnder__8dBgWKColCFPfPf.s b/asm/d/bg/d_bg_w_kcol/GetTopUnder__8dBgWKColCFPfPf.s deleted file mode 100644 index 27a28b2d3b8..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetTopUnder__8dBgWKColCFPfPf.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_800829AC: -/* 800829AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800829B0 80 63 00 18 */ lwz r3, 0x18(r3) -/* 800829B4 C0 03 00 18 */ lfs f0, 0x18(r3) -/* 800829B8 D0 05 00 00 */ stfs f0, 0(r5) -/* 800829BC C0 45 00 00 */ lfs f2, 0(r5) -/* 800829C0 80 03 00 24 */ lwz r0, 0x24(r3) -/* 800829C4 7C 00 00 F8 */ nor r0, r0, r0 -/* 800829C8 C8 22 8D 50 */ lfd f1, lit_6099(r2) -/* 800829CC 90 01 00 0C */ stw r0, 0xc(r1) -/* 800829D0 3C 00 43 30 */ lis r0, 0x4330 -/* 800829D4 90 01 00 08 */ stw r0, 8(r1) -/* 800829D8 C8 01 00 08 */ lfd f0, 8(r1) -/* 800829DC EC 00 08 28 */ fsubs f0, f0, f1 -/* 800829E0 EC 02 00 2A */ fadds f0, f2, f0 -/* 800829E4 D0 04 00 00 */ stfs f0, 0(r4) -/* 800829E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800829EC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo.s deleted file mode 100644 index 6190fa78a6d..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8007E894: -/* 8007E894 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007E898 7C 08 02 A6 */ mflr r0 -/* 8007E89C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007E8A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007E8A4 A0 A5 00 00 */ lhz r5, 0(r5) -/* 8007E8A8 48 00 00 19 */ bl GetTriPla__8dBgWKColCFi -/* 8007E8AC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007E8B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007E8B4 7C 08 03 A6 */ mtlr r0 -/* 8007E8B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007E8BC 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFi.s b/asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFi.s deleted file mode 100644 index c01200447f9..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFi.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_8007E8C0: -/* 8007E8C0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8007E8C4 7C 08 02 A6 */ mflr r0 -/* 8007E8C8 90 01 00 34 */ stw r0, 0x34(r1) -/* 8007E8CC 39 61 00 30 */ addi r11, r1, 0x30 -/* 8007E8D0 48 2E 39 0D */ bl _savegpr_29 -/* 8007E8D4 7C 7D 1B 78 */ mr r29, r3 -/* 8007E8D8 7C 9E 23 78 */ mr r30, r4 -/* 8007E8DC 80 64 00 18 */ lwz r3, 0x18(r4) -/* 8007E8E0 80 63 00 08 */ lwz r3, 8(r3) -/* 8007E8E4 54 A0 20 36 */ slwi r0, r5, 4 -/* 8007E8E8 7F E3 02 14 */ add r31, r3, r0 -/* 8007E8EC 7F C3 F3 78 */ mr r3, r30 -/* 8007E8F0 7F E4 FB 78 */ mr r4, r31 -/* 8007E8F4 38 A1 00 08 */ addi r5, r1, 8 -/* 8007E8F8 4B FF FF 59 */ bl getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec -/* 8007E8FC 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8007E900 80 63 00 00 */ lwz r3, 0(r3) -/* 8007E904 A0 1F 00 04 */ lhz r0, 4(r31) -/* 8007E908 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8007E90C 7F E3 02 14 */ add r31, r3, r0 -/* 8007E910 80 61 00 08 */ lwz r3, 8(r1) -/* 8007E914 7F E4 FB 78 */ mr r4, r31 -/* 8007E918 48 2C 88 7D */ bl PSVECDotProduct -/* 8007E91C 3C 60 80 3A */ lis r3, __vt__8cM3dGPla@ha /* 0x803A37C0@ha */ -/* 8007E920 38 03 37 C0 */ addi r0, r3, __vt__8cM3dGPla@l /* 0x803A37C0@l */ -/* 8007E924 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8007E928 38 61 00 0C */ addi r3, r1, 0xc -/* 8007E92C 80 81 00 08 */ lwz r4, 8(r1) -/* 8007E930 7F E5 FB 78 */ mr r5, r31 -/* 8007E934 48 1F 0B F9 */ bl SetupNP__8cM3dGPlaFRC3VecRC3Vec -/* 8007E938 3C 60 80 3A */ lis r3, __vt__8cM3dGPla@ha /* 0x803A37C0@ha */ -/* 8007E93C 38 03 37 C0 */ addi r0, r3, __vt__8cM3dGPla@l /* 0x803A37C0@l */ -/* 8007E940 90 1D 00 10 */ stw r0, 0x10(r29) -/* 8007E944 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 8007E948 D0 1D 00 00 */ stfs f0, 0(r29) -/* 8007E94C C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8007E950 D0 1D 00 04 */ stfs f0, 4(r29) -/* 8007E954 C0 01 00 14 */ lfs f0, 0x14(r1) -/* 8007E958 D0 1D 00 08 */ stfs f0, 8(r29) -/* 8007E95C C0 01 00 18 */ lfs f0, 0x18(r1) -/* 8007E960 D0 1D 00 0C */ stfs f0, 0xc(r29) -/* 8007E964 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8007E968 39 61 00 30 */ addi r11, r1, 0x30 -/* 8007E96C 48 2E 38 BD */ bl _restgpr_29 -/* 8007E970 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8007E974 7C 08 03 A6 */ mtlr r0 -/* 8007E978 38 21 00 30 */ addi r1, r1, 0x30 -/* 8007E97C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s b/asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s deleted file mode 100644 index b0709b0aa0f..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8007E980: -/* 8007E980 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007E984 7C 08 02 A6 */ mflr r0 -/* 8007E988 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007E98C A0 84 00 00 */ lhz r4, 0(r4) -/* 8007E990 48 00 00 15 */ bl GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec -/* 8007E994 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007E998 7C 08 03 A6 */ mtlr r0 -/* 8007E99C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007E9A0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec.s b/asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec.s deleted file mode 100644 index 9221211c242..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8007E9A4: -/* 8007E9A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007E9A8 7C 08 02 A6 */ mflr r0 -/* 8007E9AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007E9B0 81 03 00 18 */ lwz r8, 0x18(r3) -/* 8007E9B4 81 08 00 08 */ lwz r8, 8(r8) -/* 8007E9B8 54 80 20 36 */ slwi r0, r4, 4 -/* 8007E9BC 7C 88 02 14 */ add r4, r8, r0 -/* 8007E9C0 48 00 00 15 */ bl GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec -/* 8007E9C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007E9C8 7C 08 03 A6 */ mtlr r0 -/* 8007E9CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007E9D0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetUnderwaterRoofCode__8dBgWKColFi.s b/asm/d/bg/d_bg_w_kcol/GetUnderwaterRoofCode__8dBgWKColFi.s deleted file mode 100644 index 96cdc529dc5..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetUnderwaterRoofCode__8dBgWKColFi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80082CCC: -/* 80082CCC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082CD0 7C 08 02 A6 */ mflr r0 -/* 80082CD4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082CD8 38 A1 00 08 */ addi r5, r1, 8 -/* 80082CDC 4B FF BE 95 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082CE0 80 01 00 08 */ lwz r0, 8(r1) -/* 80082CE4 54 03 00 42 */ rlwinm r3, r0, 0, 1, 1 -/* 80082CE8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082CEC 7C 08 03 A6 */ mtlr r0 -/* 80082CF0 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082CF4 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s b/asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s deleted file mode 100644 index f7cff369d67..00000000000 --- a/asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80082D54: -/* 80082D54 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80082D58 7C 08 02 A6 */ mflr r0 -/* 80082D5C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80082D60 A0 84 00 00 */ lhz r4, 0(r4) -/* 80082D64 38 A1 00 08 */ addi r5, r1, 8 -/* 80082D68 4B FF BE 09 */ bl getPolyCode__8dBgWKColCFiP5dBgPc -/* 80082D6C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80082D70 54 03 C7 3E */ rlwinm r3, r0, 0x18, 0x1c, 0x1f -/* 80082D74 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80082D78 7C 08 03 A6 */ mtlr r0 -/* 80082D7C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80082D80 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/__ct__8dBgWKColFv.s b/asm/d/bg/d_bg_w_kcol/__ct__8dBgWKColFv.s deleted file mode 100644 index dcb98c06ce7..00000000000 --- a/asm/d/bg/d_bg_w_kcol/__ct__8dBgWKColFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8007E6F4: -/* 8007E6F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007E6F8 7C 08 02 A6 */ mflr r0 -/* 8007E6FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007E700 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8007E704 7C 7F 1B 78 */ mr r31, r3 -/* 8007E708 4B FF FE A1 */ bl __ct__9dBgW_BaseFv -/* 8007E70C 3C 60 80 3B */ lis r3, __vt__8dBgWKCol@ha /* 0x803ABDC8@ha */ -/* 8007E710 38 03 BD C8 */ addi r0, r3, __vt__8dBgWKCol@l /* 0x803ABDC8@l */ -/* 8007E714 90 1F 00 04 */ stw r0, 4(r31) -/* 8007E718 38 7F 00 1C */ addi r3, r31, 0x1c -/* 8007E71C 4B FF 59 59 */ bl __ct__6dBgPlcFv -/* 8007E720 3C 60 80 3A */ lis r3, __vt__8cM3dGAab@ha /* 0x803A7218@ha */ -/* 8007E724 38 03 72 18 */ addi r0, r3, __vt__8cM3dGAab@l /* 0x803A7218@l */ -/* 8007E728 90 1F 00 38 */ stw r0, 0x38(r31) -/* 8007E72C 38 00 00 00 */ li r0, 0 -/* 8007E730 90 1F 00 18 */ stw r0, 0x18(r31) -/* 8007E734 7F E3 FB 78 */ mr r3, r31 -/* 8007E738 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007E73C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007E740 7C 08 03 A6 */ mtlr r0 -/* 8007E744 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007E748 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/create__8dBgWKColFPvPv.s b/asm/d/bg/d_bg_w_kcol/create__8dBgWKColFPvPv.s deleted file mode 100644 index 0be2420ca9e..00000000000 --- a/asm/d/bg/d_bg_w_kcol/create__8dBgWKColFPvPv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8007E804: -/* 8007E804 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8007E808 7C 08 02 A6 */ mflr r0 -/* 8007E80C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007E810 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007E814 48 2E 39 C9 */ bl _savegpr_29 -/* 8007E818 7C 7D 1B 78 */ mr r29, r3 -/* 8007E81C 7C 9E 23 78 */ mr r30, r4 -/* 8007E820 7C BF 2B 78 */ mr r31, r5 -/* 8007E824 4B FF FE 79 */ bl ClrDBgWBase__9dBgW_BaseFv -/* 8007E828 93 DD 00 18 */ stw r30, 0x18(r29) -/* 8007E82C 38 7D 00 1C */ addi r3, r29, 0x1c -/* 8007E830 7F E4 FB 78 */ mr r4, r31 -/* 8007E834 4B FF 58 89 */ bl setBase__6dBgPlcFPv -/* 8007E838 39 61 00 20 */ addi r11, r1, 0x20 -/* 8007E83C 48 2E 39 ED */ bl _restgpr_29 -/* 8007E840 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007E844 7C 08 03 A6 */ mtlr r0 -/* 8007E848 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007E84C 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/getPolyCode__8dBgWKColCFiP5dBgPc.s b/asm/d/bg/d_bg_w_kcol/getPolyCode__8dBgWKColCFiP5dBgPc.s deleted file mode 100644 index b7985d02482..00000000000 --- a/asm/d/bg/d_bg_w_kcol/getPolyCode__8dBgWKColCFiP5dBgPc.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8007EB70: -/* 8007EB70 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8007EB74 7C 08 02 A6 */ mflr r0 -/* 8007EB78 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007EB7C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8007EB80 7C BF 2B 78 */ mr r31, r5 -/* 8007EB84 80 A3 00 18 */ lwz r5, 0x18(r3) -/* 8007EB88 80 A5 00 08 */ lwz r5, 8(r5) -/* 8007EB8C 54 80 20 36 */ slwi r0, r4, 4 -/* 8007EB90 7C 85 02 14 */ add r4, r5, r0 -/* 8007EB94 A0 84 00 0E */ lhz r4, 0xe(r4) -/* 8007EB98 38 A1 00 08 */ addi r5, r1, 8 -/* 8007EB9C 38 63 00 1C */ addi r3, r3, 0x1c -/* 8007EBA0 4B FF 55 25 */ bl getCode__6dBgPlcCFiPP5sBgPc -/* 8007EBA4 7F E3 FB 78 */ mr r3, r31 -/* 8007EBA8 80 81 00 08 */ lwz r4, 8(r1) -/* 8007EBAC 4B FF 54 9D */ bl setCode__5dBgPcFR5sBgPc -/* 8007EBB0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8007EBB4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007EBB8 7C 08 03 A6 */ mtlr r0 -/* 8007EBBC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007EBC0 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_kcol/getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec.s b/asm/d/bg/d_bg_w_kcol/getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec.s deleted file mode 100644 index 11a11914c88..00000000000 --- a/asm/d/bg/d_bg_w_kcol/getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8007E850: -/* 8007E850 80 63 00 18 */ lwz r3, 0x18(r3) -/* 8007E854 80 63 00 04 */ lwz r3, 4(r3) -/* 8007E858 A0 04 00 06 */ lhz r0, 6(r4) -/* 8007E85C 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8007E860 7C 03 02 14 */ add r0, r3, r0 -/* 8007E864 90 05 00 00 */ stw r0, 0(r5) -/* 8007E868 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_sv/CopyBackVtx__6dBgWSvFv.s b/asm/d/bg/d_bg_w_sv/CopyBackVtx__6dBgWSvFv.s deleted file mode 100644 index 4d53eb37bcc..00000000000 --- a/asm/d/bg/d_bg_w_sv/CopyBackVtx__6dBgWSvFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_80083020: -/* 80083020 80 03 00 C0 */ lwz r0, 0xc0(r3) -/* 80083024 28 00 00 00 */ cmplwi r0, 0 -/* 80083028 4D 82 00 20 */ beqlr -/* 8008302C 80 03 00 9C */ lwz r0, 0x9c(r3) -/* 80083030 28 00 00 00 */ cmplwi r0, 0 -/* 80083034 40 82 00 08 */ bne lbl_8008303C -/* 80083038 4E 80 00 20 */ blr -lbl_8008303C: -/* 8008303C 38 E0 00 00 */ li r7, 0 -/* 80083040 38 80 00 00 */ li r4, 0 -/* 80083044 48 00 00 34 */ b lbl_80083078 -lbl_80083048: -/* 80083048 80 03 00 9C */ lwz r0, 0x9c(r3) -/* 8008304C 7C C0 22 14 */ add r6, r0, r4 -/* 80083050 80 03 00 C0 */ lwz r0, 0xc0(r3) -/* 80083054 7C A0 22 14 */ add r5, r0, r4 -/* 80083058 C0 06 00 00 */ lfs f0, 0(r6) -/* 8008305C D0 05 00 00 */ stfs f0, 0(r5) -/* 80083060 C0 06 00 04 */ lfs f0, 4(r6) -/* 80083064 D0 05 00 04 */ stfs f0, 4(r5) -/* 80083068 C0 06 00 08 */ lfs f0, 8(r6) -/* 8008306C D0 05 00 08 */ stfs f0, 8(r5) -/* 80083070 38 E7 00 01 */ addi r7, r7, 1 -/* 80083074 38 84 00 0C */ addi r4, r4, 0xc -lbl_80083078: -/* 80083078 80 A3 00 A0 */ lwz r5, 0xa0(r3) -/* 8008307C 80 05 00 00 */ lwz r0, 0(r5) -/* 80083080 7C 07 00 00 */ cmpw r7, r0 -/* 80083084 41 80 FF C4 */ blt lbl_80083048 -/* 80083088 4E 80 00 20 */ blr diff --git a/asm/d/bg/d_bg_w_sv/Set__6dBgWSvFP6cBgD_tUl.s b/asm/d/bg/d_bg_w_sv/Set__6dBgWSvFP6cBgD_tUl.s deleted file mode 100644 index a549e8336ef..00000000000 --- a/asm/d/bg/d_bg_w_sv/Set__6dBgWSvFP6cBgD_tUl.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_80082F98: -/* 80082F98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80082F9C 7C 08 02 A6 */ mflr r0 -/* 80082FA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80082FA4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80082FA8 93 C1 00 08 */ stw r30, 8(r1) -/* 80082FAC 7C 7E 1B 78 */ mr r30, r3 -/* 80082FB0 7C BF 2B 78 */ mr r31, r5 -/* 80082FB4 38 A0 00 63 */ li r5, 0x63 -/* 80082FB8 38 C0 00 00 */ li r6, 0 -/* 80082FBC 4B FF 6F 7D */ bl Set__4cBgWFP6cBgD_tUlPA3_A4_f -/* 80082FC0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80082FC4 41 82 00 0C */ beq lbl_80082FD0 -/* 80082FC8 38 60 00 01 */ li r3, 1 -/* 80082FCC 48 00 00 3C */ b lbl_80083008 -lbl_80082FD0: -/* 80082FD0 9B FE 00 C4 */ stb r31, 0xc4(r30) -/* 80082FD4 88 1E 00 C4 */ lbz r0, 0xc4(r30) -/* 80082FD8 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80082FDC 41 82 00 0C */ beq lbl_80082FE8 -/* 80082FE0 38 60 00 00 */ li r3, 0 -/* 80082FE4 48 00 00 24 */ b lbl_80083008 -lbl_80082FE8: -/* 80082FE8 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 80082FEC 80 03 00 00 */ lwz r0, 0(r3) -/* 80082FF0 1C 60 00 0C */ mulli r3, r0, 0xc -/* 80082FF4 48 24 BC D1 */ bl __nwa__FUl -/* 80082FF8 90 7E 00 C0 */ stw r3, 0xc0(r30) -/* 80082FFC 80 1E 00 C0 */ lwz r0, 0xc0(r30) -/* 80083000 7C 00 00 34 */ cntlzw r0, r0 -/* 80083004 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f -lbl_80083008: -/* 80083008 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8008300C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80083010 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80083014 7C 08 03 A6 */ mtlr r0 -/* 80083018 38 21 00 10 */ addi r1, r1, 0x10 -/* 8008301C 4E 80 00 20 */ blr diff --git a/asm/dolphin/gd/GDBase/GDFlushCurrToMem.s b/asm/dolphin/gd/GDBase/GDFlushCurrToMem.s deleted file mode 100644 index 56da5434eab..00000000000 --- a/asm/dolphin/gd/GDBase/GDFlushCurrToMem.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80360FB0: -/* 80360FB0 7C 08 02 A6 */ mflr r0 -/* 80360FB4 90 01 00 04 */ stw r0, 4(r1) -/* 80360FB8 94 21 FF F8 */ stwu r1, -8(r1) -/* 80360FBC 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80360FC0 80 64 00 00 */ lwz r3, 0(r4) -/* 80360FC4 80 84 00 04 */ lwz r4, 4(r4) -/* 80360FC8 4B FD A5 E5 */ bl DCFlushRange -/* 80360FCC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80360FD0 38 21 00 08 */ addi r1, r1, 8 -/* 80360FD4 7C 08 03 A6 */ mtlr r0 -/* 80360FD8 4E 80 00 20 */ blr diff --git a/asm/dolphin/gd/GDBase/GDInitGDLObj.s b/asm/dolphin/gd/GDBase/GDInitGDLObj.s deleted file mode 100644 index f27a7b43977..00000000000 --- a/asm/dolphin/gd/GDBase/GDInitGDLObj.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_80360F98: -/* 80360F98 90 83 00 00 */ stw r4, 0(r3) -/* 80360F9C 7C 04 2A 14 */ add r0, r4, r5 -/* 80360FA0 90 83 00 08 */ stw r4, 8(r3) -/* 80360FA4 90 03 00 0C */ stw r0, 0xc(r3) -/* 80360FA8 90 A3 00 04 */ stw r5, 4(r3) -/* 80360FAC 4E 80 00 20 */ blr diff --git a/asm/dolphin/gd/GDBase/GDOverflowed.s b/asm/dolphin/gd/GDBase/GDOverflowed.s deleted file mode 100644 index fec6767ce7c..00000000000 --- a/asm/dolphin/gd/GDBase/GDOverflowed.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_803610D4: -/* 803610D4 7C 08 02 A6 */ mflr r0 -/* 803610D8 90 01 00 04 */ stw r0, 4(r1) -/* 803610DC 94 21 FF F8 */ stwu r1, -8(r1) -/* 803610E0 81 8D 94 04 */ lwz r12, overflowcb(r13) -/* 803610E4 28 0C 00 00 */ cmplwi r12, 0 -/* 803610E8 41 82 00 0C */ beq lbl_803610F4 -/* 803610EC 7D 88 03 A6 */ mtlr r12 -/* 803610F0 4E 80 00 21 */ blrl -lbl_803610F4: -/* 803610F4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 803610F8 38 21 00 08 */ addi r1, r1, 8 -/* 803610FC 7C 08 03 A6 */ mtlr r0 -/* 80361100 4E 80 00 20 */ blr diff --git a/asm/dolphin/gd/GDBase/GDPadCurr32.s b/asm/dolphin/gd/GDBase/GDPadCurr32.s deleted file mode 100644 index 20e00cb2c09..00000000000 --- a/asm/dolphin/gd/GDBase/GDPadCurr32.s +++ /dev/null @@ -1,66 +0,0 @@ -lbl_80360FDC: -/* 80360FDC 80 6D 94 00 */ lwz r3, __GDCurrentDL(r13) -/* 80360FE0 80 03 00 08 */ lwz r0, 8(r3) -/* 80360FE4 54 00 06 FF */ clrlwi. r0, r0, 0x1b -/* 80360FE8 4D 82 00 20 */ beqlr -/* 80360FEC 28 00 00 20 */ cmplwi r0, 0x20 -/* 80360FF0 20 60 00 20 */ subfic r3, r0, 0x20 -/* 80360FF4 38 C0 00 00 */ li r6, 0 -/* 80360FF8 4C 80 00 20 */ bgelr -/* 80360FFC 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 80361000 7C 09 03 A6 */ mtctr r0 -/* 80361004 41 82 00 B0 */ beq lbl_803610B4 -lbl_80361008: -/* 80361008 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 8036100C 80 85 00 08 */ lwz r4, 8(r5) -/* 80361010 38 04 00 01 */ addi r0, r4, 1 -/* 80361014 90 05 00 08 */ stw r0, 8(r5) -/* 80361018 98 C4 00 00 */ stb r6, 0(r4) -/* 8036101C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80361020 80 85 00 08 */ lwz r4, 8(r5) -/* 80361024 38 04 00 01 */ addi r0, r4, 1 -/* 80361028 90 05 00 08 */ stw r0, 8(r5) -/* 8036102C 98 C4 00 00 */ stb r6, 0(r4) -/* 80361030 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80361034 80 85 00 08 */ lwz r4, 8(r5) -/* 80361038 38 04 00 01 */ addi r0, r4, 1 -/* 8036103C 90 05 00 08 */ stw r0, 8(r5) -/* 80361040 98 C4 00 00 */ stb r6, 0(r4) -/* 80361044 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80361048 80 85 00 08 */ lwz r4, 8(r5) -/* 8036104C 38 04 00 01 */ addi r0, r4, 1 -/* 80361050 90 05 00 08 */ stw r0, 8(r5) -/* 80361054 98 C4 00 00 */ stb r6, 0(r4) -/* 80361058 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 8036105C 80 85 00 08 */ lwz r4, 8(r5) -/* 80361060 38 04 00 01 */ addi r0, r4, 1 -/* 80361064 90 05 00 08 */ stw r0, 8(r5) -/* 80361068 98 C4 00 00 */ stb r6, 0(r4) -/* 8036106C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80361070 80 85 00 08 */ lwz r4, 8(r5) -/* 80361074 38 04 00 01 */ addi r0, r4, 1 -/* 80361078 90 05 00 08 */ stw r0, 8(r5) -/* 8036107C 98 C4 00 00 */ stb r6, 0(r4) -/* 80361080 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80361084 80 85 00 08 */ lwz r4, 8(r5) -/* 80361088 38 04 00 01 */ addi r0, r4, 1 -/* 8036108C 90 05 00 08 */ stw r0, 8(r5) -/* 80361090 98 C4 00 00 */ stb r6, 0(r4) -/* 80361094 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80361098 80 85 00 08 */ lwz r4, 8(r5) -/* 8036109C 38 04 00 01 */ addi r0, r4, 1 -/* 803610A0 90 05 00 08 */ stw r0, 8(r5) -/* 803610A4 98 C4 00 00 */ stb r6, 0(r4) -/* 803610A8 42 00 FF 60 */ bdnz lbl_80361008 -/* 803610AC 70 63 00 07 */ andi. r3, r3, 7 -/* 803610B0 4D 82 00 20 */ beqlr -lbl_803610B4: -/* 803610B4 7C 69 03 A6 */ mtctr r3 -lbl_803610B8: -/* 803610B8 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 803610BC 80 85 00 08 */ lwz r4, 8(r5) -/* 803610C0 38 04 00 01 */ addi r0, r4, 1 -/* 803610C4 90 05 00 08 */ stw r0, 8(r5) -/* 803610C8 98 C4 00 00 */ stb r6, 0(r4) -/* 803610CC 42 00 FF EC */ bdnz lbl_803610B8 -/* 803610D0 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/GXSetIndTexCoordScale.s b/asm/dolphin/gx/GXBump/GXSetIndTexCoordScale.s deleted file mode 100644 index 453328375e6..00000000000 --- a/asm/dolphin/gx/GXBump/GXSetIndTexCoordScale.s +++ /dev/null @@ -1,88 +0,0 @@ -lbl_8035EEA4: -/* 8035EEA4 2C 03 00 02 */ cmpwi r3, 2 -/* 8035EEA8 41 82 00 AC */ beq lbl_8035EF54 -/* 8035EEAC 40 80 00 14 */ bge lbl_8035EEC0 -/* 8035EEB0 2C 03 00 00 */ cmpwi r3, 0 -/* 8035EEB4 41 82 00 18 */ beq lbl_8035EECC -/* 8035EEB8 40 80 00 58 */ bge lbl_8035EF10 -/* 8035EEBC 48 00 01 1C */ b lbl_8035EFD8 -lbl_8035EEC0: -/* 8035EEC0 2C 03 00 04 */ cmpwi r3, 4 -/* 8035EEC4 40 80 01 14 */ bge lbl_8035EFD8 -/* 8035EEC8 48 00 00 D0 */ b lbl_8035EF98 -lbl_8035EECC: -/* 8035EECC 81 02 CB 80 */ lwz r8, __GXData(r2) -/* 8035EED0 38 C0 00 25 */ li r6, 0x25 -/* 8035EED4 38 00 00 61 */ li r0, 0x61 -/* 8035EED8 80 E8 01 28 */ lwz r7, 0x128(r8) -/* 8035EEDC 50 87 07 3E */ rlwimi r7, r4, 0, 0x1c, 0x1f -/* 8035EEE0 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8035EEE4 90 E8 01 28 */ stw r7, 0x128(r8) -/* 8035EEE8 80 88 01 28 */ lwz r4, 0x128(r8) -/* 8035EEEC 50 A4 26 36 */ rlwimi r4, r5, 4, 0x18, 0x1b -/* 8035EEF0 90 88 01 28 */ stw r4, 0x128(r8) -/* 8035EEF4 80 88 01 28 */ lwz r4, 0x128(r8) -/* 8035EEF8 50 C4 C0 0E */ rlwimi r4, r6, 0x18, 0, 7 -/* 8035EEFC 90 88 01 28 */ stw r4, 0x128(r8) -/* 8035EF00 98 03 80 00 */ stb r0, 0x8000(r3) /* 0xCC008000@l */ -/* 8035EF04 80 08 01 28 */ lwz r0, 0x128(r8) -/* 8035EF08 90 03 80 00 */ stw r0, -0x8000(r3) -/* 8035EF0C 48 00 00 CC */ b lbl_8035EFD8 -lbl_8035EF10: -/* 8035EF10 81 02 CB 80 */ lwz r8, __GXData(r2) -/* 8035EF14 38 C0 00 25 */ li r6, 0x25 -/* 8035EF18 38 00 00 61 */ li r0, 0x61 -/* 8035EF1C 80 E8 01 28 */ lwz r7, 0x128(r8) -/* 8035EF20 50 87 45 2E */ rlwimi r7, r4, 8, 0x14, 0x17 -/* 8035EF24 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8035EF28 90 E8 01 28 */ stw r7, 0x128(r8) -/* 8035EF2C 80 88 01 28 */ lwz r4, 0x128(r8) -/* 8035EF30 50 A4 64 26 */ rlwimi r4, r5, 0xc, 0x10, 0x13 -/* 8035EF34 90 88 01 28 */ stw r4, 0x128(r8) -/* 8035EF38 80 88 01 28 */ lwz r4, 0x128(r8) -/* 8035EF3C 50 C4 C0 0E */ rlwimi r4, r6, 0x18, 0, 7 -/* 8035EF40 90 88 01 28 */ stw r4, 0x128(r8) -/* 8035EF44 98 03 80 00 */ stb r0, 0x8000(r3) /* 0xCC008000@l */ -/* 8035EF48 80 08 01 28 */ lwz r0, 0x128(r8) -/* 8035EF4C 90 03 80 00 */ stw r0, -0x8000(r3) -/* 8035EF50 48 00 00 88 */ b lbl_8035EFD8 -lbl_8035EF54: -/* 8035EF54 81 02 CB 80 */ lwz r8, __GXData(r2) -/* 8035EF58 38 C0 00 26 */ li r6, 0x26 -/* 8035EF5C 38 00 00 61 */ li r0, 0x61 -/* 8035EF60 80 E8 01 2C */ lwz r7, 0x12c(r8) -/* 8035EF64 50 87 07 3E */ rlwimi r7, r4, 0, 0x1c, 0x1f -/* 8035EF68 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8035EF6C 90 E8 01 2C */ stw r7, 0x12c(r8) -/* 8035EF70 80 88 01 2C */ lwz r4, 0x12c(r8) -/* 8035EF74 50 A4 26 36 */ rlwimi r4, r5, 4, 0x18, 0x1b -/* 8035EF78 90 88 01 2C */ stw r4, 0x12c(r8) -/* 8035EF7C 80 88 01 2C */ lwz r4, 0x12c(r8) -/* 8035EF80 50 C4 C0 0E */ rlwimi r4, r6, 0x18, 0, 7 -/* 8035EF84 90 88 01 2C */ stw r4, 0x12c(r8) -/* 8035EF88 98 03 80 00 */ stb r0, 0x8000(r3) /* 0xCC008000@l */ -/* 8035EF8C 80 08 01 2C */ lwz r0, 0x12c(r8) -/* 8035EF90 90 03 80 00 */ stw r0, -0x8000(r3) -/* 8035EF94 48 00 00 44 */ b lbl_8035EFD8 -lbl_8035EF98: -/* 8035EF98 81 02 CB 80 */ lwz r8, __GXData(r2) -/* 8035EF9C 38 C0 00 26 */ li r6, 0x26 -/* 8035EFA0 38 00 00 61 */ li r0, 0x61 -/* 8035EFA4 80 E8 01 2C */ lwz r7, 0x12c(r8) -/* 8035EFA8 50 87 45 2E */ rlwimi r7, r4, 8, 0x14, 0x17 -/* 8035EFAC 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8035EFB0 90 E8 01 2C */ stw r7, 0x12c(r8) -/* 8035EFB4 80 88 01 2C */ lwz r4, 0x12c(r8) -/* 8035EFB8 50 A4 64 26 */ rlwimi r4, r5, 0xc, 0x10, 0x13 -/* 8035EFBC 90 88 01 2C */ stw r4, 0x12c(r8) -/* 8035EFC0 80 88 01 2C */ lwz r4, 0x12c(r8) -/* 8035EFC4 50 C4 C0 0E */ rlwimi r4, r6, 0x18, 0, 7 -/* 8035EFC8 90 88 01 2C */ stw r4, 0x12c(r8) -/* 8035EFCC 98 03 80 00 */ stb r0, 0x8000(r3) /* 0xCC008000@l */ -/* 8035EFD0 80 08 01 2C */ lwz r0, 0x12c(r8) -/* 8035EFD4 90 03 80 00 */ stw r0, -0x8000(r3) -lbl_8035EFD8: -/* 8035EFD8 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035EFDC 38 00 00 00 */ li r0, 0 -/* 8035EFE0 B0 03 00 02 */ sth r0, 2(r3) -/* 8035EFE4 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/GXSetIndTexMtx.s b/asm/dolphin/gx/GXBump/GXSetIndTexMtx.s deleted file mode 100644 index 40b5bf40bc7..00000000000 --- a/asm/dolphin/gx/GXBump/GXSetIndTexMtx.s +++ /dev/null @@ -1,101 +0,0 @@ -lbl_8035ED2C: -/* 8035ED2C 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 8035ED30 2C 03 00 08 */ cmpwi r3, 8 -/* 8035ED34 93 E1 00 6C */ stw r31, 0x6c(r1) -/* 8035ED38 93 C1 00 68 */ stw r30, 0x68(r1) -/* 8035ED3C 93 A1 00 64 */ stw r29, 0x64(r1) -/* 8035ED40 41 82 00 44 */ beq lbl_8035ED84 -/* 8035ED44 40 80 00 1C */ bge lbl_8035ED60 -/* 8035ED48 2C 03 00 04 */ cmpwi r3, 4 -/* 8035ED4C 41 82 00 38 */ beq lbl_8035ED84 -/* 8035ED50 40 80 00 24 */ bge lbl_8035ED74 -/* 8035ED54 2C 03 00 01 */ cmpwi r3, 1 -/* 8035ED58 40 80 00 14 */ bge lbl_8035ED6C -/* 8035ED5C 48 00 00 28 */ b lbl_8035ED84 -lbl_8035ED60: -/* 8035ED60 2C 03 00 0C */ cmpwi r3, 0xc -/* 8035ED64 40 80 00 20 */ bge lbl_8035ED84 -/* 8035ED68 48 00 00 14 */ b lbl_8035ED7C -lbl_8035ED6C: -/* 8035ED6C 38 03 FF FF */ addi r0, r3, -1 -/* 8035ED70 48 00 00 18 */ b lbl_8035ED88 -lbl_8035ED74: -/* 8035ED74 38 03 FF FB */ addi r0, r3, -5 -/* 8035ED78 48 00 00 10 */ b lbl_8035ED88 -lbl_8035ED7C: -/* 8035ED7C 38 03 FF F7 */ addi r0, r3, -9 -/* 8035ED80 48 00 00 08 */ b lbl_8035ED88 -lbl_8035ED84: -/* 8035ED84 38 00 00 00 */ li r0, 0 -lbl_8035ED88: -/* 8035ED88 C0 42 CC 10 */ lfs f2, lit_149(r2) -/* 8035ED8C 1F E0 00 03 */ mulli r31, r0, 3 -/* 8035ED90 C0 24 00 00 */ lfs f1, 0(r4) -/* 8035ED94 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 8035ED98 EC 22 00 72 */ fmuls f1, f2, f1 -/* 8035ED9C 39 45 00 11 */ addi r10, r5, 0x11 -/* 8035EDA0 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8035EDA4 7D 4A 07 74 */ extsb r10, r10 -/* 8035EDA8 39 80 00 61 */ li r12, 0x61 -/* 8035EDAC FC 20 08 1E */ fctiwz f1, f1 -/* 8035EDB0 3D 60 CC 01 */ lis r11, 0xCC01 /* 0xCC008000@ha */ -/* 8035EDB4 FC 00 00 1E */ fctiwz f0, f0 -/* 8035EDB8 3B C0 00 00 */ li r30, 0 -/* 8035EDBC 38 1F 00 06 */ addi r0, r31, 6 -/* 8035EDC0 D8 21 00 58 */ stfd f1, 0x58(r1) -/* 8035EDC4 55 48 F7 BE */ rlwinm r8, r10, 0x1e, 0x1e, 0x1f -/* 8035EDC8 38 FF 00 07 */ addi r7, r31, 7 -/* 8035EDCC 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035EDD0 D8 01 00 50 */ stfd f0, 0x50(r1) -/* 8035EDD4 81 21 00 5C */ lwz r9, 0x5c(r1) -/* 8035EDD8 3B A0 00 00 */ li r29, 0 -/* 8035EDDC 80 C1 00 54 */ lwz r6, 0x54(r1) -/* 8035EDE0 38 BF 00 08 */ addi r5, r31, 8 -/* 8035EDE4 51 3E 05 7E */ rlwimi r30, r9, 0, 0x15, 0x1f -/* 8035EDE8 39 3E 00 00 */ addi r9, r30, 0 -/* 8035EDEC 99 8B 80 00 */ stb r12, 0x8000(r11) /* 0xCC008000@l */ -/* 8035EDF0 50 C9 5A A8 */ rlwimi r9, r6, 0xb, 0xa, 0x14 -/* 8035EDF4 51 49 B2 12 */ rlwimi r9, r10, 0x16, 8, 9 -/* 8035EDF8 50 09 C0 0E */ rlwimi r9, r0, 0x18, 0, 7 -/* 8035EDFC 91 2B 80 00 */ stw r9, -0x8000(r11) -/* 8035EE00 55 46 E7 BE */ rlwinm r6, r10, 0x1c, 0x1e, 0x1f -/* 8035EE04 3B C0 00 00 */ li r30, 0 -/* 8035EE08 C0 24 00 04 */ lfs f1, 4(r4) -/* 8035EE0C 38 00 00 00 */ li r0, 0 -/* 8035EE10 C0 04 00 10 */ lfs f0, 0x10(r4) -/* 8035EE14 EC 22 00 72 */ fmuls f1, f2, f1 -/* 8035EE18 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8035EE1C 99 8B 80 00 */ stb r12, -0x8000(r11) -/* 8035EE20 FC 20 08 1E */ fctiwz f1, f1 -/* 8035EE24 FC 00 00 1E */ fctiwz f0, f0 -/* 8035EE28 D8 21 00 48 */ stfd f1, 0x48(r1) -/* 8035EE2C D8 01 00 40 */ stfd f0, 0x40(r1) -/* 8035EE30 81 41 00 4C */ lwz r10, 0x4c(r1) -/* 8035EE34 81 21 00 44 */ lwz r9, 0x44(r1) -/* 8035EE38 51 5D 05 7E */ rlwimi r29, r10, 0, 0x15, 0x1f -/* 8035EE3C 51 3D 5A A8 */ rlwimi r29, r9, 0xb, 0xa, 0x14 -/* 8035EE40 51 1D B2 12 */ rlwimi r29, r8, 0x16, 8, 9 -/* 8035EE44 50 FD C0 0E */ rlwimi r29, r7, 0x18, 0, 7 -/* 8035EE48 93 AB 80 00 */ stw r29, -0x8000(r11) -/* 8035EE4C C0 24 00 08 */ lfs f1, 8(r4) -/* 8035EE50 C0 04 00 14 */ lfs f0, 0x14(r4) -/* 8035EE54 EC 22 00 72 */ fmuls f1, f2, f1 -/* 8035EE58 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8035EE5C 99 8B 80 00 */ stb r12, -0x8000(r11) -/* 8035EE60 FC 20 08 1E */ fctiwz f1, f1 -/* 8035EE64 FC 00 00 1E */ fctiwz f0, f0 -/* 8035EE68 D8 21 00 38 */ stfd f1, 0x38(r1) -/* 8035EE6C D8 01 00 30 */ stfd f0, 0x30(r1) -/* 8035EE70 80 E1 00 3C */ lwz r7, 0x3c(r1) -/* 8035EE74 80 81 00 34 */ lwz r4, 0x34(r1) -/* 8035EE78 50 FE 05 7E */ rlwimi r30, r7, 0, 0x15, 0x1f -/* 8035EE7C 50 9E 5A A8 */ rlwimi r30, r4, 0xb, 0xa, 0x14 -/* 8035EE80 50 DE B2 12 */ rlwimi r30, r6, 0x16, 8, 9 -/* 8035EE84 50 BE C0 0E */ rlwimi r30, r5, 0x18, 0, 7 -/* 8035EE88 93 CB 80 00 */ stw r30, -0x8000(r11) -/* 8035EE8C B0 03 00 02 */ sth r0, 2(r3) -/* 8035EE90 83 E1 00 6C */ lwz r31, 0x6c(r1) -/* 8035EE94 83 C1 00 68 */ lwz r30, 0x68(r1) -/* 8035EE98 83 A1 00 64 */ lwz r29, 0x64(r1) -/* 8035EE9C 38 21 00 70 */ addi r1, r1, 0x70 -/* 8035EEA0 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/GXSetIndTexOrder.s b/asm/dolphin/gx/GXBump/GXSetIndTexOrder.s deleted file mode 100644 index ca44538b683..00000000000 --- a/asm/dolphin/gx/GXBump/GXSetIndTexOrder.s +++ /dev/null @@ -1,68 +0,0 @@ -lbl_8035EFE8: -/* 8035EFE8 2C 05 00 FF */ cmpwi r5, 0xff -/* 8035EFEC 40 82 00 08 */ bne lbl_8035EFF4 -/* 8035EFF0 38 A0 00 00 */ li r5, 0 -lbl_8035EFF4: -/* 8035EFF4 2C 04 00 FF */ cmpwi r4, 0xff -/* 8035EFF8 40 82 00 08 */ bne lbl_8035F000 -/* 8035EFFC 38 80 00 00 */ li r4, 0 -lbl_8035F000: -/* 8035F000 2C 03 00 02 */ cmpwi r3, 2 -/* 8035F004 41 82 00 64 */ beq lbl_8035F068 -/* 8035F008 40 80 00 14 */ bge lbl_8035F01C -/* 8035F00C 2C 03 00 00 */ cmpwi r3, 0 -/* 8035F010 41 82 00 18 */ beq lbl_8035F028 -/* 8035F014 40 80 00 34 */ bge lbl_8035F048 -/* 8035F018 48 00 00 8C */ b lbl_8035F0A4 -lbl_8035F01C: -/* 8035F01C 2C 03 00 04 */ cmpwi r3, 4 -/* 8035F020 40 80 00 84 */ bge lbl_8035F0A4 -/* 8035F024 48 00 00 64 */ b lbl_8035F088 -lbl_8035F028: -/* 8035F028 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035F02C 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F030 50 A0 07 7E */ rlwimi r0, r5, 0, 0x1d, 0x1f -/* 8035F034 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F038 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F03C 50 80 1E B8 */ rlwimi r0, r4, 3, 0x1a, 0x1c -/* 8035F040 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F044 48 00 00 60 */ b lbl_8035F0A4 -lbl_8035F048: -/* 8035F048 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035F04C 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F050 50 A0 35 F2 */ rlwimi r0, r5, 6, 0x17, 0x19 -/* 8035F054 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F058 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F05C 50 80 4D 2C */ rlwimi r0, r4, 9, 0x14, 0x16 -/* 8035F060 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F064 48 00 00 40 */ b lbl_8035F0A4 -lbl_8035F068: -/* 8035F068 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035F06C 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F070 50 A0 64 66 */ rlwimi r0, r5, 0xc, 0x11, 0x13 -/* 8035F074 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F078 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F07C 50 80 7B A0 */ rlwimi r0, r4, 0xf, 0xe, 0x10 -/* 8035F080 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F084 48 00 00 20 */ b lbl_8035F0A4 -lbl_8035F088: -/* 8035F088 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035F08C 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F090 50 A0 92 DA */ rlwimi r0, r5, 0x12, 0xb, 0xd -/* 8035F094 90 03 01 20 */ stw r0, 0x120(r3) -/* 8035F098 80 03 01 20 */ lwz r0, 0x120(r3) -/* 8035F09C 50 80 AA 14 */ rlwimi r0, r4, 0x15, 8, 0xa -/* 8035F0A0 90 03 01 20 */ stw r0, 0x120(r3) -lbl_8035F0A4: -/* 8035F0A4 38 00 00 61 */ li r0, 0x61 -/* 8035F0A8 80 82 CB 80 */ lwz r4, __GXData(r2) -/* 8035F0AC 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035F0B0 98 05 80 00 */ stb r0, 0x8000(r5) /* 0xCC008000@l */ -/* 8035F0B4 38 00 00 00 */ li r0, 0 -/* 8035F0B8 80 64 01 20 */ lwz r3, 0x120(r4) -/* 8035F0BC 90 65 80 00 */ stw r3, -0x8000(r5) -/* 8035F0C0 80 64 05 AC */ lwz r3, 0x5ac(r4) -/* 8035F0C4 60 63 00 03 */ ori r3, r3, 3 -/* 8035F0C8 90 64 05 AC */ stw r3, 0x5ac(r4) -/* 8035F0CC B0 04 00 02 */ sth r0, 2(r4) -/* 8035F0D0 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/GXSetNumIndStages.s b/asm/dolphin/gx/GXBump/GXSetNumIndStages.s deleted file mode 100644 index aa80419cc26..00000000000 --- a/asm/dolphin/gx/GXBump/GXSetNumIndStages.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8035F0D4: -/* 8035F0D4 80 82 CB 80 */ lwz r4, __GXData(r2) -/* 8035F0D8 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8035F0DC 80 64 02 04 */ lwz r3, 0x204(r4) -/* 8035F0E0 50 03 83 5E */ rlwimi r3, r0, 0x10, 0xd, 0xf -/* 8035F0E4 90 64 02 04 */ stw r3, 0x204(r4) -/* 8035F0E8 80 04 05 AC */ lwz r0, 0x5ac(r4) -/* 8035F0EC 60 00 00 06 */ ori r0, r0, 6 -/* 8035F0F0 90 04 05 AC */ stw r0, 0x5ac(r4) -/* 8035F0F4 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/GXSetTevDirect.s b/asm/dolphin/gx/GXBump/GXSetTevDirect.s deleted file mode 100644 index 794170ad5d2..00000000000 --- a/asm/dolphin/gx/GXBump/GXSetTevDirect.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8035F0F8: -/* 8035F0F8 7C 08 02 A6 */ mflr r0 -/* 8035F0FC 38 80 00 00 */ li r4, 0 -/* 8035F100 90 01 00 04 */ stw r0, 4(r1) -/* 8035F104 38 00 00 00 */ li r0, 0 -/* 8035F108 38 A0 00 00 */ li r5, 0 -/* 8035F10C 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8035F110 38 C0 00 00 */ li r6, 0 -/* 8035F114 38 E0 00 00 */ li r7, 0 -/* 8035F118 90 01 00 08 */ stw r0, 8(r1) -/* 8035F11C 39 00 00 00 */ li r8, 0 -/* 8035F120 39 20 00 00 */ li r9, 0 -/* 8035F124 90 01 00 0C */ stw r0, 0xc(r1) -/* 8035F128 39 40 00 00 */ li r10, 0 -/* 8035F12C 4B FF FB 95 */ bl GXSetTevIndirect -/* 8035F130 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8035F134 38 21 00 18 */ addi r1, r1, 0x18 -/* 8035F138 7C 08 03 A6 */ mtlr r0 -/* 8035F13C 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/GXSetTevIndirect.s b/asm/dolphin/gx/GXBump/GXSetTevIndirect.s deleted file mode 100644 index 5455e3b4a40..00000000000 --- a/asm/dolphin/gx/GXBump/GXSetTevIndirect.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_8035ECC0: -/* 8035ECC0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8035ECC4 38 00 00 00 */ li r0, 0 -/* 8035ECC8 50 80 07 BE */ rlwimi r0, r4, 0, 0x1e, 0x1f -/* 8035ECCC 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8035ECD0 7C 0B 03 78 */ mr r11, r0 -/* 8035ECD4 50 AB 17 3A */ rlwimi r11, r5, 2, 0x1c, 0x1d -/* 8035ECD8 81 81 00 3C */ lwz r12, 0x3c(r1) -/* 8035ECDC 8B E1 00 3B */ lbz r31, 0x3b(r1) -/* 8035ECE0 50 CB 26 76 */ rlwimi r11, r6, 4, 0x19, 0x1b -/* 8035ECE4 80 82 CB 80 */ lwz r4, __GXData(r2) -/* 8035ECE8 51 8B 3D F0 */ rlwimi r11, r12, 7, 0x17, 0x18 -/* 8035ECEC 50 EB 4C EC */ rlwimi r11, r7, 9, 0x13, 0x16 -/* 8035ECF0 51 0B 6C 24 */ rlwimi r11, r8, 0xd, 0x10, 0x12 -/* 8035ECF4 51 2B 83 5E */ rlwimi r11, r9, 0x10, 0xd, 0xf -/* 8035ECF8 53 EB 9B 18 */ rlwimi r11, r31, 0x13, 0xc, 0xc -/* 8035ECFC 38 00 00 61 */ li r0, 0x61 -/* 8035ED00 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035ED04 98 05 80 00 */ stb r0, 0x8000(r5) /* 0xCC008000@l */ -/* 8035ED08 38 03 00 10 */ addi r0, r3, 0x10 -/* 8035ED0C 51 4B A2 D6 */ rlwimi r11, r10, 0x14, 0xb, 0xb -/* 8035ED10 50 0B C0 0E */ rlwimi r11, r0, 0x18, 0, 7 -/* 8035ED14 91 65 80 00 */ stw r11, -0x8000(r5) -/* 8035ED18 38 00 00 00 */ li r0, 0 -/* 8035ED1C B0 04 00 02 */ sth r0, 2(r4) -/* 8035ED20 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8035ED24 38 21 00 30 */ addi r1, r1, 0x30 -/* 8035ED28 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/__GXFlushTextureState.s b/asm/dolphin/gx/GXBump/__GXFlushTextureState.s deleted file mode 100644 index 605efe0e9d0..00000000000 --- a/asm/dolphin/gx/GXBump/__GXFlushTextureState.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8035F174: -/* 8035F174 38 00 00 61 */ li r0, 0x61 -/* 8035F178 80 82 CB 80 */ lwz r4, __GXData(r2) -/* 8035F17C 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035F180 98 05 80 00 */ stb r0, 0x8000(r5) /* 0xCC008000@l */ -/* 8035F184 38 00 00 00 */ li r0, 0 -/* 8035F188 80 64 01 24 */ lwz r3, 0x124(r4) -/* 8035F18C 90 65 80 00 */ stw r3, -0x8000(r5) -/* 8035F190 B0 04 00 02 */ sth r0, 2(r4) -/* 8035F194 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXBump/__GXSetIndirectMask.s b/asm/dolphin/gx/GXBump/__GXSetIndirectMask.s deleted file mode 100644 index 8b31d40ddc3..00000000000 --- a/asm/dolphin/gx/GXBump/__GXSetIndirectMask.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8035F144: -/* 8035F144 80 E2 CB 80 */ lwz r7, __GXData(r2) -/* 8035F148 38 A0 00 61 */ li r5, 0x61 -/* 8035F14C 3C 80 CC 01 */ lis r4, 0xCC01 /* 0xCC008000@ha */ -/* 8035F150 80 C7 01 24 */ lwz r6, 0x124(r7) -/* 8035F154 50 66 06 3E */ rlwimi r6, r3, 0, 0x18, 0x1f -/* 8035F158 38 00 00 00 */ li r0, 0 -/* 8035F15C 90 C7 01 24 */ stw r6, 0x124(r7) -/* 8035F160 98 A4 80 00 */ stb r5, 0x8000(r4) /* 0xCC008000@l */ -/* 8035F164 80 67 01 24 */ lwz r3, 0x124(r7) -/* 8035F168 90 64 80 00 */ stw r3, -0x8000(r4) -/* 8035F16C B0 07 00 02 */ sth r0, 2(r7) -/* 8035F170 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXFifo/GXGetFifoBase.s b/asm/dolphin/gx/GXFifo/GXGetFifoBase.s deleted file mode 100644 index b6a8d9ff8ce..00000000000 --- a/asm/dolphin/gx/GXFifo/GXGetFifoBase.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8035ABD8: -/* 8035ABD8 80 63 00 00 */ lwz r3, 0(r3) -/* 8035ABDC 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXFifo/GXGetFifoSize.s b/asm/dolphin/gx/GXFifo/GXGetFifoSize.s deleted file mode 100644 index b07c9275a7f..00000000000 --- a/asm/dolphin/gx/GXFifo/GXGetFifoSize.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8035ABE0: -/* 8035ABE0 80 63 00 08 */ lwz r3, 8(r3) -/* 8035ABE4 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXFifo/GXInitFifoLimits.s b/asm/dolphin/gx/GXFifo/GXInitFifoLimits.s deleted file mode 100644 index fed8436a7bf..00000000000 --- a/asm/dolphin/gx/GXFifo/GXInitFifoLimits.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8035A7B8: -/* 8035A7B8 90 83 00 0C */ stw r4, 0xc(r3) -/* 8035A7BC 90 A3 00 10 */ stw r5, 0x10(r3) -/* 8035A7C0 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXFifo/GXSaveCPUFifo.s b/asm/dolphin/gx/GXFifo/GXSaveCPUFifo.s deleted file mode 100644 index 320d3a36be3..00000000000 --- a/asm/dolphin/gx/GXFifo/GXSaveCPUFifo.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8035AA8C: -/* 8035AA8C 7C 08 02 A6 */ mflr r0 -/* 8035AA90 90 01 00 04 */ stw r0, 4(r1) -/* 8035AA94 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8035AA98 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8035AA9C 7C 7F 1B 78 */ mr r31, r3 -/* 8035AAA0 48 00 14 2D */ bl GXFlush -/* 8035AAA4 7F E3 FB 78 */ mr r3, r31 -/* 8035AAA8 48 00 00 19 */ bl __GXSaveCPUFifoAux -/* 8035AAAC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8035AAB0 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8035AAB4 38 21 00 18 */ addi r1, r1, 0x18 -/* 8035AAB8 7C 08 03 A6 */ mtlr r0 -/* 8035AABC 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXFifo/__GXFifoInit.s b/asm/dolphin/gx/GXFifo/__GXFifoInit.s deleted file mode 100644 index 0544db2510c..00000000000 --- a/asm/dolphin/gx/GXFifo/__GXFifoInit.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8035AC2C: -/* 8035AC2C 7C 08 02 A6 */ mflr r0 -/* 8035AC30 3C 60 80 36 */ lis r3, GXCPInterruptHandler@ha /* 0x8035A5A8@ha */ -/* 8035AC34 90 01 00 04 */ stw r0, 4(r1) -/* 8035AC38 38 83 A5 A8 */ addi r4, r3, GXCPInterruptHandler@l /* 0x8035A5A8@l */ -/* 8035AC3C 38 60 00 11 */ li r3, 0x11 -/* 8035AC40 94 21 FF F8 */ stwu r1, -8(r1) -/* 8035AC44 4B FE 2A FD */ bl __OSSetInterruptHandler -/* 8035AC48 38 60 40 00 */ li r3, 0x4000 -/* 8035AC4C 4B FE 2E F9 */ bl __OSUnmaskInterrupts -/* 8035AC50 4B FE 60 35 */ bl OSGetCurrentThread -/* 8035AC54 38 00 00 00 */ li r0, 0 -/* 8035AC58 90 6D 93 D0 */ stw r3, __GXCurrentThread(r13) -/* 8035AC5C 90 0D 93 D8 */ stw r0, GXOverflowSuspendInProgress(r13) -/* 8035AC60 90 0D 93 C8 */ stw r0, CPUFifo(r13) -/* 8035AC64 90 0D 93 CC */ stw r0, GPFifo(r13) -/* 8035AC68 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8035AC6C 38 21 00 08 */ addi r1, r1, 8 -/* 8035AC70 7C 08 03 A6 */ mtlr r0 -/* 8035AC74 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/GXBegin.s b/asm/dolphin/gx/GXGeometry/GXBegin.s deleted file mode 100644 index 5b7b5b35ea6..00000000000 --- a/asm/dolphin/gx/GXGeometry/GXBegin.s +++ /dev/null @@ -1,61 +0,0 @@ -lbl_8035C764: -/* 8035C764 7C 08 02 A6 */ mflr r0 -/* 8035C768 90 01 00 04 */ stw r0, 4(r1) -/* 8035C76C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8035C770 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8035C774 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8035C778 3B C5 00 00 */ addi r30, r5, 0 -/* 8035C77C 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 8035C780 3B A4 00 00 */ addi r29, r4, 0 -/* 8035C784 93 81 00 18 */ stw r28, 0x18(r1) -/* 8035C788 3B 83 00 00 */ addi r28, r3, 0 -/* 8035C78C 80 C2 CB 80 */ lwz r6, __GXData(r2) -/* 8035C790 83 E6 05 AC */ lwz r31, 0x5ac(r6) -/* 8035C794 28 1F 00 00 */ cmplwi r31, 0 -/* 8035C798 41 82 00 58 */ beq lbl_8035C7F0 -/* 8035C79C 57 E0 07 FF */ clrlwi. r0, r31, 0x1f -/* 8035C7A0 41 82 00 08 */ beq lbl_8035C7A8 -/* 8035C7A4 48 00 20 4D */ bl __GXSetSUTexRegs -lbl_8035C7A8: -/* 8035C7A8 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e -/* 8035C7AC 41 82 00 08 */ beq lbl_8035C7B4 -/* 8035C7B0 48 00 29 91 */ bl __GXUpdateBPMask -lbl_8035C7B4: -/* 8035C7B4 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d -/* 8035C7B8 41 82 00 08 */ beq lbl_8035C7C0 -/* 8035C7BC 48 00 02 25 */ bl __GXSetGenMode -lbl_8035C7C0: -/* 8035C7C0 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c -/* 8035C7C4 41 82 00 08 */ beq lbl_8035C7CC -/* 8035C7C8 4B FF EB E5 */ bl __GXSetVCD -lbl_8035C7CC: -/* 8035C7CC 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b -/* 8035C7D0 41 82 00 08 */ beq lbl_8035C7D8 -/* 8035C7D4 4B FF F2 CD */ bl __GXSetVAT -lbl_8035C7D8: -/* 8035C7D8 57 E0 06 F9 */ rlwinm. r0, r31, 0, 0x1b, 0x1c -/* 8035C7DC 41 82 00 08 */ beq lbl_8035C7E4 -/* 8035C7E0 4B FF EC 89 */ bl __GXCalculateVLim -lbl_8035C7E4: -/* 8035C7E4 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035C7E8 38 00 00 00 */ li r0, 0 -/* 8035C7EC 90 03 05 AC */ stw r0, 0x5ac(r3) -lbl_8035C7F0: -/* 8035C7F0 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035C7F4 80 03 00 00 */ lwz r0, 0(r3) -/* 8035C7F8 28 00 00 00 */ cmplwi r0, 0 -/* 8035C7FC 40 82 00 08 */ bne lbl_8035C804 -/* 8035C800 48 00 00 35 */ bl __GXSendFlushPrim -lbl_8035C804: -/* 8035C804 7F A0 E3 78 */ or r0, r29, r28 -/* 8035C808 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8035C80C 98 03 80 00 */ stb r0, 0x8000(r3) /* 0xCC008000@l */ -/* 8035C810 B3 C3 80 00 */ sth r30, -0x8000(r3) -/* 8035C814 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8035C818 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8035C81C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8035C820 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 8035C824 83 81 00 18 */ lwz r28, 0x18(r1) -/* 8035C828 38 21 00 28 */ addi r1, r1, 0x28 -/* 8035C82C 7C 08 03 A6 */ mtlr r0 -/* 8035C830 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/GXEnableTexOffsets.s b/asm/dolphin/gx/GXGeometry/GXEnableTexOffsets.s deleted file mode 100644 index 598c700f62b..00000000000 --- a/asm/dolphin/gx/GXGeometry/GXEnableTexOffsets.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8035C93C: -/* 8035C93C 80 E2 CB 80 */ lwz r7, __GXData(r2) -/* 8035C940 54 63 10 3A */ slwi r3, r3, 2 -/* 8035C944 54 A0 06 3E */ clrlwi r0, r5, 0x18 -/* 8035C948 7C C7 1A 14 */ add r6, r7, r3 -/* 8035C94C 80 66 00 B8 */ lwz r3, 0xb8(r6) -/* 8035C950 50 83 93 5A */ rlwimi r3, r4, 0x12, 0xd, 0xd -/* 8035C954 3C 80 CC 01 */ lis r4, 0xCC01 /* 0xCC008000@ha */ -/* 8035C958 90 66 00 B8 */ stw r3, 0xb8(r6) -/* 8035C95C 38 60 00 61 */ li r3, 0x61 -/* 8035C960 80 A6 00 B8 */ lwz r5, 0xb8(r6) -/* 8035C964 50 05 9B 18 */ rlwimi r5, r0, 0x13, 0xc, 0xc -/* 8035C968 38 00 00 00 */ li r0, 0 -/* 8035C96C 90 A6 00 B8 */ stw r5, 0xb8(r6) -/* 8035C970 98 64 80 00 */ stb r3, 0x8000(r4) /* 0xCC008000@l */ -/* 8035C974 80 66 00 B8 */ lwz r3, 0xb8(r6) -/* 8035C978 90 64 80 00 */ stw r3, -0x8000(r4) -/* 8035C97C B0 07 00 02 */ sth r0, 2(r7) -/* 8035C980 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/GXSetCoPlanar.s b/asm/dolphin/gx/GXGeometry/GXSetCoPlanar.s deleted file mode 100644 index ab64f69b92b..00000000000 --- a/asm/dolphin/gx/GXGeometry/GXSetCoPlanar.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8035C9AC: -/* 8035C9AC 80 C2 CB 80 */ lwz r6, __GXData(r2) -/* 8035C9B0 38 80 00 61 */ li r4, 0x61 -/* 8035C9B4 3C 00 FE 08 */ lis r0, 0xfe08 -/* 8035C9B8 80 A6 02 04 */ lwz r5, 0x204(r6) -/* 8035C9BC 50 65 9B 18 */ rlwimi r5, r3, 0x13, 0xc, 0xc -/* 8035C9C0 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8035C9C4 90 A6 02 04 */ stw r5, 0x204(r6) -/* 8035C9C8 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */ -/* 8035C9CC 90 03 80 00 */ stw r0, -0x8000(r3) -/* 8035C9D0 98 83 80 00 */ stb r4, -0x8000(r3) -/* 8035C9D4 80 06 02 04 */ lwz r0, 0x204(r6) -/* 8035C9D8 90 03 80 00 */ stw r0, -0x8000(r3) -/* 8035C9DC 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/GXSetLineWidth.s b/asm/dolphin/gx/GXGeometry/GXSetLineWidth.s deleted file mode 100644 index 49b412a4702..00000000000 --- a/asm/dolphin/gx/GXGeometry/GXSetLineWidth.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8035C8BC: -/* 8035C8BC 80 E2 CB 80 */ lwz r7, __GXData(r2) -/* 8035C8C0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8035C8C4 38 60 00 61 */ li r3, 0x61 -/* 8035C8C8 80 C7 00 7C */ lwz r6, 0x7c(r7) -/* 8035C8CC 50 06 06 3E */ rlwimi r6, r0, 0, 0x18, 0x1f -/* 8035C8D0 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035C8D4 90 C7 00 7C */ stw r6, 0x7c(r7) -/* 8035C8D8 38 00 00 00 */ li r0, 0 -/* 8035C8DC 80 C7 00 7C */ lwz r6, 0x7c(r7) -/* 8035C8E0 50 86 83 5E */ rlwimi r6, r4, 0x10, 0xd, 0xf -/* 8035C8E4 90 C7 00 7C */ stw r6, 0x7c(r7) -/* 8035C8E8 98 65 80 00 */ stb r3, 0x8000(r5) /* 0xCC008000@l */ -/* 8035C8EC 80 67 00 7C */ lwz r3, 0x7c(r7) -/* 8035C8F0 90 65 80 00 */ stw r3, -0x8000(r5) -/* 8035C8F4 B0 07 00 02 */ sth r0, 2(r7) -/* 8035C8F8 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/GXSetPointSize.s b/asm/dolphin/gx/GXGeometry/GXSetPointSize.s deleted file mode 100644 index b90c3a0e6fb..00000000000 --- a/asm/dolphin/gx/GXGeometry/GXSetPointSize.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8035C8FC: -/* 8035C8FC 80 E2 CB 80 */ lwz r7, __GXData(r2) -/* 8035C900 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8035C904 38 60 00 61 */ li r3, 0x61 -/* 8035C908 80 C7 00 7C */ lwz r6, 0x7c(r7) -/* 8035C90C 50 06 44 2E */ rlwimi r6, r0, 8, 0x10, 0x17 -/* 8035C910 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035C914 90 C7 00 7C */ stw r6, 0x7c(r7) -/* 8035C918 38 00 00 00 */ li r0, 0 -/* 8035C91C 80 C7 00 7C */ lwz r6, 0x7c(r7) -/* 8035C920 50 86 9A 98 */ rlwimi r6, r4, 0x13, 0xa, 0xc -/* 8035C924 90 C7 00 7C */ stw r6, 0x7c(r7) -/* 8035C928 98 65 80 00 */ stb r3, 0x8000(r5) /* 0xCC008000@l */ -/* 8035C92C 80 67 00 7C */ lwz r3, 0x7c(r7) -/* 8035C930 90 65 80 00 */ stw r3, -0x8000(r5) -/* 8035C934 B0 07 00 02 */ sth r0, 2(r7) -/* 8035C938 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/__GXSendFlushPrim.s b/asm/dolphin/gx/GXGeometry/__GXSendFlushPrim.s deleted file mode 100644 index 49275acaf41..00000000000 --- a/asm/dolphin/gx/GXGeometry/__GXSendFlushPrim.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_8035C834: -/* 8035C834 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035C838 38 00 00 98 */ li r0, 0x98 -/* 8035C83C 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035C840 A0 C3 00 04 */ lhz r6, 4(r3) -/* 8035C844 38 80 00 00 */ li r4, 0 -/* 8035C848 A0 63 00 06 */ lhz r3, 6(r3) -/* 8035C84C 7C E6 19 D6 */ mullw r7, r6, r3 -/* 8035C850 98 05 80 00 */ stb r0, 0x8000(r5) /* 0xCC008000@l */ -/* 8035C854 B0 C5 80 00 */ sth r6, -0x8000(r5) -/* 8035C858 38 67 00 03 */ addi r3, r7, 3 -/* 8035C85C 28 07 00 00 */ cmplwi r7, 0 -/* 8035C860 54 63 F0 BE */ srwi r3, r3, 2 -/* 8035C864 40 81 00 48 */ ble lbl_8035C8AC -/* 8035C868 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 8035C86C 7C 09 03 A6 */ mtctr r0 -/* 8035C870 41 82 00 30 */ beq lbl_8035C8A0 -lbl_8035C874: -/* 8035C874 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C878 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C87C 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C880 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C884 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C888 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C88C 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C890 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C894 42 00 FF E0 */ bdnz lbl_8035C874 -/* 8035C898 70 63 00 07 */ andi. r3, r3, 7 -/* 8035C89C 41 82 00 10 */ beq lbl_8035C8AC -lbl_8035C8A0: -/* 8035C8A0 7C 69 03 A6 */ mtctr r3 -lbl_8035C8A4: -/* 8035C8A4 90 85 80 00 */ stw r4, -0x8000(r5) -/* 8035C8A8 42 00 FF FC */ bdnz lbl_8035C8A4 -lbl_8035C8AC: -/* 8035C8AC 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035C8B0 38 00 00 01 */ li r0, 1 -/* 8035C8B4 B0 03 00 02 */ sth r0, 2(r3) -/* 8035C8B8 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/__GXSetDirtyState.s b/asm/dolphin/gx/GXGeometry/__GXSetDirtyState.s deleted file mode 100644 index 2efc1c32756..00000000000 --- a/asm/dolphin/gx/GXGeometry/__GXSetDirtyState.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_8035C6E4: -/* 8035C6E4 7C 08 02 A6 */ mflr r0 -/* 8035C6E8 90 01 00 04 */ stw r0, 4(r1) -/* 8035C6EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8035C6F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8035C6F4 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035C6F8 83 E3 05 AC */ lwz r31, 0x5ac(r3) -/* 8035C6FC 57 E0 07 FF */ clrlwi. r0, r31, 0x1f -/* 8035C700 41 82 00 08 */ beq lbl_8035C708 -/* 8035C704 48 00 20 ED */ bl __GXSetSUTexRegs -lbl_8035C708: -/* 8035C708 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e -/* 8035C70C 41 82 00 08 */ beq lbl_8035C714 -/* 8035C710 48 00 2A 31 */ bl __GXUpdateBPMask -lbl_8035C714: -/* 8035C714 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d -/* 8035C718 41 82 00 08 */ beq lbl_8035C720 -/* 8035C71C 48 00 02 C5 */ bl __GXSetGenMode -lbl_8035C720: -/* 8035C720 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c -/* 8035C724 41 82 00 08 */ beq lbl_8035C72C -/* 8035C728 4B FF EC 85 */ bl __GXSetVCD -lbl_8035C72C: -/* 8035C72C 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b -/* 8035C730 41 82 00 08 */ beq lbl_8035C738 -/* 8035C734 4B FF F3 6D */ bl __GXSetVAT -lbl_8035C738: -/* 8035C738 57 E0 06 F9 */ rlwinm. r0, r31, 0, 0x1b, 0x1c -/* 8035C73C 41 82 00 08 */ beq lbl_8035C744 -/* 8035C740 4B FF ED 29 */ bl __GXCalculateVLim -lbl_8035C744: -/* 8035C744 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035C748 38 00 00 00 */ li r0, 0 -/* 8035C74C 90 03 05 AC */ stw r0, 0x5ac(r3) -/* 8035C750 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8035C754 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8035C758 38 21 00 10 */ addi r1, r1, 0x10 -/* 8035C75C 7C 08 03 A6 */ mtlr r0 -/* 8035C760 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/__GXSetGenMode.s b/asm/dolphin/gx/GXGeometry/__GXSetGenMode.s deleted file mode 100644 index ebde035de40..00000000000 --- a/asm/dolphin/gx/GXGeometry/__GXSetGenMode.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8035C9E0: -/* 8035C9E0 38 00 00 61 */ li r0, 0x61 -/* 8035C9E4 80 82 CB 80 */ lwz r4, __GXData(r2) -/* 8035C9E8 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 8035C9EC 98 05 80 00 */ stb r0, 0x8000(r5) /* 0xCC008000@l */ -/* 8035C9F0 38 00 00 00 */ li r0, 0 -/* 8035C9F4 80 64 02 04 */ lwz r3, 0x204(r4) -/* 8035C9F8 90 65 80 00 */ stw r3, -0x8000(r5) -/* 8035C9FC B0 04 00 02 */ sth r0, 2(r4) -/* 8035CA00 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXInitLightAttn.s b/asm/dolphin/gx/GXLight/GXInitLightAttn.s deleted file mode 100644 index 4b8f9e02395..00000000000 --- a/asm/dolphin/gx/GXLight/GXInitLightAttn.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8035D630: -/* 8035D630 D0 23 00 10 */ stfs f1, 0x10(r3) -/* 8035D634 D0 43 00 14 */ stfs f2, 0x14(r3) -/* 8035D638 D0 63 00 18 */ stfs f3, 0x18(r3) -/* 8035D63C D0 83 00 1C */ stfs f4, 0x1c(r3) -/* 8035D640 D0 A3 00 20 */ stfs f5, 0x20(r3) -/* 8035D644 D0 C3 00 24 */ stfs f6, 0x24(r3) -/* 8035D648 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXInitLightColor.s b/asm/dolphin/gx/GXLight/GXInitLightColor.s deleted file mode 100644 index d189dc4a1d8..00000000000 --- a/asm/dolphin/gx/GXLight/GXInitLightColor.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8035D8D8: -/* 8035D8D8 80 04 00 00 */ lwz r0, 0(r4) -/* 8035D8DC 90 03 00 0C */ stw r0, 0xc(r3) -/* 8035D8E0 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXInitLightDir.s b/asm/dolphin/gx/GXLight/GXInitLightDir.s deleted file mode 100644 index 67f005213a2..00000000000 --- a/asm/dolphin/gx/GXLight/GXInitLightDir.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8035D8BC: -/* 8035D8BC FC 80 08 50 */ fneg f4, f1 -/* 8035D8C0 FC 20 10 50 */ fneg f1, f2 -/* 8035D8C4 FC 00 18 50 */ fneg f0, f3 -/* 8035D8C8 D0 83 00 34 */ stfs f4, 0x34(r3) -/* 8035D8CC D0 23 00 38 */ stfs f1, 0x38(r3) -/* 8035D8D0 D0 03 00 3C */ stfs f0, 0x3c(r3) -/* 8035D8D4 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXInitLightDistAttn.s b/asm/dolphin/gx/GXLight/GXInitLightDistAttn.s deleted file mode 100644 index 648cf0f1500..00000000000 --- a/asm/dolphin/gx/GXLight/GXInitLightDistAttn.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_8035D7DC: -/* 8035D7DC C0 02 CB B8 */ lfs f0, lit_134(r2) -/* 8035D7E0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8035D7E4 40 80 00 08 */ bge lbl_8035D7EC -/* 8035D7E8 38 80 00 00 */ li r4, 0 -lbl_8035D7EC: -/* 8035D7EC C0 02 CB B8 */ lfs f0, lit_134(r2) -/* 8035D7F0 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8035D7F4 4C 40 13 82 */ cror 2, 0, 2 -/* 8035D7F8 41 82 00 14 */ beq lbl_8035D80C -/* 8035D7FC C0 02 CB D0 */ lfs f0, lit_140(r2) -/* 8035D800 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8035D804 4C 41 13 82 */ cror 2, 1, 2 -/* 8035D808 40 82 00 08 */ bne lbl_8035D810 -lbl_8035D80C: -/* 8035D80C 38 80 00 00 */ li r4, 0 -lbl_8035D810: -/* 8035D810 2C 04 00 02 */ cmpwi r4, 2 -/* 8035D814 41 82 00 3C */ beq lbl_8035D850 -/* 8035D818 40 80 00 14 */ bge lbl_8035D82C -/* 8035D81C 2C 04 00 00 */ cmpwi r4, 0 -/* 8035D820 41 82 00 70 */ beq lbl_8035D890 -/* 8035D824 40 80 00 14 */ bge lbl_8035D838 -/* 8035D828 48 00 00 68 */ b lbl_8035D890 -lbl_8035D82C: -/* 8035D82C 2C 04 00 04 */ cmpwi r4, 4 -/* 8035D830 40 80 00 60 */ bge lbl_8035D890 -/* 8035D834 48 00 00 40 */ b lbl_8035D874 -lbl_8035D838: -/* 8035D838 C0 A2 CB D0 */ lfs f5, lit_140(r2) -/* 8035D83C EC 02 00 72 */ fmuls f0, f2, f1 -/* 8035D840 C0 82 CB B8 */ lfs f4, lit_134(r2) -/* 8035D844 EC 25 10 28 */ fsubs f1, f5, f2 -/* 8035D848 EC 61 00 24 */ fdivs f3, f1, f0 -/* 8035D84C 48 00 00 50 */ b lbl_8035D89C -lbl_8035D850: -/* 8035D850 C0 A2 CB D0 */ lfs f5, lit_140(r2) -/* 8035D854 EC 82 00 72 */ fmuls f4, f2, f1 -/* 8035D858 C0 62 CB E4 */ lfs f3, lit_160(r2) -/* 8035D85C EC 45 10 28 */ fsubs f2, f5, f2 -/* 8035D860 EC 01 01 32 */ fmuls f0, f1, f4 -/* 8035D864 EC 23 00 B2 */ fmuls f1, f3, f2 -/* 8035D868 EC 61 20 24 */ fdivs f3, f1, f4 -/* 8035D86C EC 81 00 24 */ fdivs f4, f1, f0 -/* 8035D870 48 00 00 2C */ b lbl_8035D89C -lbl_8035D874: -/* 8035D874 EC 02 00 72 */ fmuls f0, f2, f1 -/* 8035D878 C0 A2 CB D0 */ lfs f5, lit_140(r2) -/* 8035D87C C0 62 CB B8 */ lfs f3, lit_134(r2) -/* 8035D880 EC 45 10 28 */ fsubs f2, f5, f2 -/* 8035D884 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8035D888 EC 82 00 24 */ fdivs f4, f2, f0 -/* 8035D88C 48 00 00 10 */ b lbl_8035D89C -lbl_8035D890: -/* 8035D890 C0 62 CB B8 */ lfs f3, lit_134(r2) -/* 8035D894 C0 A2 CB D0 */ lfs f5, lit_140(r2) -/* 8035D898 FC 80 18 90 */ fmr f4, f3 -lbl_8035D89C: -/* 8035D89C D0 A3 00 1C */ stfs f5, 0x1c(r3) -/* 8035D8A0 D0 63 00 20 */ stfs f3, 0x20(r3) -/* 8035D8A4 D0 83 00 24 */ stfs f4, 0x24(r3) -/* 8035D8A8 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXInitLightPos.s b/asm/dolphin/gx/GXLight/GXInitLightPos.s deleted file mode 100644 index c966c931857..00000000000 --- a/asm/dolphin/gx/GXLight/GXInitLightPos.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8035D8AC: -/* 8035D8AC D0 23 00 28 */ stfs f1, 0x28(r3) -/* 8035D8B0 D0 43 00 2C */ stfs f2, 0x2c(r3) -/* 8035D8B4 D0 63 00 30 */ stfs f3, 0x30(r3) -/* 8035D8B8 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXInitLightSpot.s b/asm/dolphin/gx/GXLight/GXInitLightSpot.s deleted file mode 100644 index 0437f2f08dc..00000000000 --- a/asm/dolphin/gx/GXLight/GXInitLightSpot.s +++ /dev/null @@ -1,105 +0,0 @@ -lbl_8035D64C: -/* 8035D64C 7C 08 02 A6 */ mflr r0 -/* 8035D650 90 01 00 04 */ stw r0, 4(r1) -/* 8035D654 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8035D658 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8035D65C 3B E4 00 00 */ addi r31, r4, 0 -/* 8035D660 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8035D664 3B C3 00 00 */ addi r30, r3, 0 -/* 8035D668 C0 02 CB B8 */ lfs f0, lit_134(r2) -/* 8035D66C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8035D670 4C 40 13 82 */ cror 2, 0, 2 -/* 8035D674 41 82 00 10 */ beq lbl_8035D684 -/* 8035D678 C0 02 CB BC */ lfs f0, lit_135(r2) -/* 8035D67C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8035D680 40 81 00 08 */ ble lbl_8035D688 -lbl_8035D684: -/* 8035D684 3B E0 00 00 */ li r31, 0 -lbl_8035D688: -/* 8035D688 C0 42 CB C0 */ lfs f2, lit_136(r2) -/* 8035D68C C0 02 CB C4 */ lfs f0, lit_137(r2) -/* 8035D690 EC 22 00 72 */ fmuls f1, f2, f1 -/* 8035D694 EC 21 00 24 */ fdivs f1, f1, f0 -/* 8035D698 48 00 F3 75 */ bl cosf -/* 8035D69C 28 1F 00 06 */ cmplwi r31, 6 -/* 8035D6A0 41 81 01 0C */ bgt lbl_8035D7AC -/* 8035D6A4 3C 60 80 3D */ lis r3, lit_145@ha /* 0x803D2578@ha */ -/* 8035D6A8 38 63 25 78 */ addi r3, r3, lit_145@l /* 0x803D2578@l */ -/* 8035D6AC 57 E0 10 3A */ slwi r0, r31, 2 -/* 8035D6B0 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8035D6B4 7C 09 03 A6 */ mtctr r0 -/* 8035D6B8 4E 80 04 20 */ bctr -/* 8035D6BC C0 02 CB C8 */ lfs f0, lit_138(r2) -/* 8035D6C0 C0 82 CB CC */ lfs f4, lit_139(r2) -/* 8035D6C4 EC 60 00 72 */ fmuls f3, f0, f1 -/* 8035D6C8 C0 C2 CB B8 */ lfs f6, lit_134(r2) -/* 8035D6CC 48 00 00 EC */ b lbl_8035D7B8 -/* 8035D6D0 C0 42 CB D0 */ lfs f2, lit_140(r2) -/* 8035D6D4 FC 00 08 50 */ fneg f0, f1 -/* 8035D6D8 C0 C2 CB B8 */ lfs f6, lit_134(r2) -/* 8035D6DC EC 22 08 28 */ fsubs f1, f2, f1 -/* 8035D6E0 EC 22 08 24 */ fdivs f1, f2, f1 -/* 8035D6E4 FC 80 08 90 */ fmr f4, f1 -/* 8035D6E8 EC 60 00 72 */ fmuls f3, f0, f1 -/* 8035D6EC 48 00 00 CC */ b lbl_8035D7B8 -/* 8035D6F0 C0 42 CB D0 */ lfs f2, lit_140(r2) -/* 8035D6F4 FC 00 08 50 */ fneg f0, f1 -/* 8035D6F8 C0 62 CB B8 */ lfs f3, lit_134(r2) -/* 8035D6FC EC 22 08 28 */ fsubs f1, f2, f1 -/* 8035D700 EC 22 08 24 */ fdivs f1, f2, f1 -/* 8035D704 FC C0 08 90 */ fmr f6, f1 -/* 8035D708 EC 80 00 72 */ fmuls f4, f0, f1 -/* 8035D70C 48 00 00 AC */ b lbl_8035D7B8 -/* 8035D710 C0 82 CB D0 */ lfs f4, lit_140(r2) -/* 8035D714 C0 42 CB D4 */ lfs f2, lit_141(r2) -/* 8035D718 EC 64 08 28 */ fsubs f3, f4, f1 -/* 8035D71C EC 01 10 28 */ fsubs f0, f1, f2 -/* 8035D720 EC 63 00 F2 */ fmuls f3, f3, f3 -/* 8035D724 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8035D728 EC 24 18 24 */ fdivs f1, f4, f3 -/* 8035D72C EC 61 00 32 */ fmuls f3, f1, f0 -/* 8035D730 EC 82 00 72 */ fmuls f4, f2, f1 -/* 8035D734 FC C0 08 50 */ fneg f6, f1 -/* 8035D738 48 00 00 80 */ b lbl_8035D7B8 -/* 8035D73C C0 A2 CB D0 */ lfs f5, lit_140(r2) -/* 8035D740 C0 62 CB D8 */ lfs f3, lit_142(r2) -/* 8035D744 EC 85 08 28 */ fsubs f4, f5, f1 -/* 8035D748 C0 42 CB DC */ lfs f2, lit_143(r2) -/* 8035D74C EC 05 08 2A */ fadds f0, f5, f1 -/* 8035D750 EC 84 01 32 */ fmuls f4, f4, f4 -/* 8035D754 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8035D758 EC 85 20 24 */ fdivs f4, f5, f4 -/* 8035D75C EC 43 01 32 */ fmuls f2, f3, f4 -/* 8035D760 EC 80 01 32 */ fmuls f4, f0, f4 -/* 8035D764 FC C0 10 90 */ fmr f6, f2 -/* 8035D768 EC 62 00 72 */ fmuls f3, f2, f1 -/* 8035D76C 48 00 00 4C */ b lbl_8035D7B8 -/* 8035D770 C0 A2 CB D0 */ lfs f5, lit_140(r2) -/* 8035D774 C0 02 CB D4 */ lfs f0, lit_141(r2) -/* 8035D778 EC 85 08 28 */ fsubs f4, f5, f1 -/* 8035D77C C0 42 CB DC */ lfs f2, lit_143(r2) -/* 8035D780 EC 60 00 72 */ fmuls f3, f0, f1 -/* 8035D784 C0 02 CB E0 */ lfs f0, lit_144(r2) -/* 8035D788 EC 42 00 72 */ fmuls f2, f2, f1 -/* 8035D78C EC 84 01 32 */ fmuls f4, f4, f4 -/* 8035D790 EC 23 00 72 */ fmuls f1, f3, f1 -/* 8035D794 EC 65 20 24 */ fdivs f3, f5, f4 -/* 8035D798 EC 23 00 72 */ fmuls f1, f3, f1 -/* 8035D79C EC 82 00 F2 */ fmuls f4, f2, f3 -/* 8035D7A0 EC C0 00 F2 */ fmuls f6, f0, f3 -/* 8035D7A4 EC 65 08 28 */ fsubs f3, f5, f1 -/* 8035D7A8 48 00 00 10 */ b lbl_8035D7B8 -lbl_8035D7AC: -/* 8035D7AC C0 82 CB B8 */ lfs f4, lit_134(r2) -/* 8035D7B0 C0 62 CB D0 */ lfs f3, lit_140(r2) -/* 8035D7B4 FC C0 20 90 */ fmr f6, f4 -lbl_8035D7B8: -/* 8035D7B8 D0 7E 00 10 */ stfs f3, 0x10(r30) -/* 8035D7BC D0 9E 00 14 */ stfs f4, 0x14(r30) -/* 8035D7C0 D0 DE 00 18 */ stfs f6, 0x18(r30) -/* 8035D7C4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8035D7C8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8035D7CC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8035D7D0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8035D7D4 7C 08 03 A6 */ mtlr r0 -/* 8035D7D8 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXLight/GXLoadLightObjImm.s b/asm/dolphin/gx/GXLight/GXLoadLightObjImm.s deleted file mode 100644 index ac3bf0c82af..00000000000 --- a/asm/dolphin/gx/GXLight/GXLoadLightObjImm.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_8035D8E4: -/* 8035D8E4 7C 80 00 34 */ cntlzw r0, r4 -/* 8035D8E8 20 00 00 1F */ subfic r0, r0, 0x1f -/* 8035D8EC 54 05 26 76 */ rlwinm r5, r0, 4, 0x19, 0x1b -/* 8035D8F0 3C 80 CC 01 */ lis r4, 0xCC01 /* 0xCC008000@ha */ -/* 8035D8F4 38 00 00 10 */ li r0, 0x10 -/* 8035D8F8 38 A5 06 00 */ addi r5, r5, 0x600 -/* 8035D8FC 98 04 80 00 */ stb r0, 0x8000(r4) /* 0xCC008000@l */ -/* 8035D900 64 A0 00 0F */ oris r0, r5, 0xf -/* 8035D904 94 04 80 00 */ stwu r0, -0x8000(r4) -/* 8035D908 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8035D90C 7C C6 32 78 */ xor r6, r6, r6 -/* 8035D910 E0 A3 00 10 */ psq_l f5, 16(r3), 0, 0 /* qr0 */ -/* 8035D914 E0 83 00 18 */ psq_l f4, 24(r3), 0, 0 /* qr0 */ -/* 8035D918 E0 63 00 20 */ psq_l f3, 32(r3), 0, 0 /* qr0 */ -/* 8035D91C E0 43 00 28 */ psq_l f2, 40(r3), 0, 0 /* qr0 */ -/* 8035D920 E0 23 00 30 */ psq_l f1, 48(r3), 0, 0 /* qr0 */ -/* 8035D924 E0 03 00 38 */ psq_l f0, 56(r3), 0, 0 /* qr0 */ -/* 8035D928 90 C4 00 00 */ stw r6, 0(r4) -/* 8035D92C 90 C4 00 00 */ stw r6, 0(r4) -/* 8035D930 90 C4 00 00 */ stw r6, 0(r4) -/* 8035D934 90 04 00 00 */ stw r0, 0(r4) -/* 8035D938 F0 A4 00 00 */ psq_st f5, 0(r4), 0, 0 /* qr0 */ -/* 8035D93C F0 84 00 00 */ psq_st f4, 0(r4), 0, 0 /* qr0 */ -/* 8035D940 F0 64 00 00 */ psq_st f3, 0(r4), 0, 0 /* qr0 */ -/* 8035D944 F0 44 00 00 */ psq_st f2, 0(r4), 0, 0 /* qr0 */ -/* 8035D948 F0 24 00 00 */ psq_st f1, 0(r4), 0, 0 /* qr0 */ -/* 8035D94C F0 04 00 00 */ psq_st f0, 0(r4), 0, 0 /* qr0 */ -/* 8035D950 80 62 CB 80 */ lwz r3, __GXData(r2) -/* 8035D954 38 00 00 01 */ li r0, 1 -/* 8035D958 B0 03 00 02 */ sth r0, 2(r3) -/* 8035D95C 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXConcat.s b/asm/dolphin/mtx/mtx/PSMTXConcat.s deleted file mode 100644 index 349692cf7c0..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXConcat.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_803464E4: -/* 803464E4 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 803464E8 E0 03 00 00 */ psq_l f0, 0(r3), 0, 0 /* qr0 */ -/* 803464EC D9 C1 00 08 */ stfd f14, 8(r1) -/* 803464F0 E0 C4 00 00 */ psq_l f6, 0(r4), 0, 0 /* qr0 */ -/* 803464F4 3C C0 80 45 */ lis r6, Unit01@ha /* 0x804509D0@ha */ -/* 803464F8 E0 E4 00 08 */ psq_l f7, 8(r4), 0, 0 /* qr0 */ -/* 803464FC D9 E1 00 10 */ stfd f15, 0x10(r1) -/* 80346500 38 C6 09 D0 */ addi r6, r6, Unit01@l /* 0x804509D0@l */ -/* 80346504 DB E1 00 28 */ stfd f31, 0x28(r1) -/* 80346508 E1 04 00 10 */ psq_l f8, 16(r4), 0, 0 /* qr0 */ -/* 8034650C 11 86 00 18 */ ps_muls0 f12, f6, f0 -/* 80346510 E0 43 00 10 */ psq_l f2, 16(r3), 0, 0 /* qr0 */ -/* 80346514 11 A7 00 18 */ ps_muls0 f13, f7, f0 -/* 80346518 E3 E6 00 00 */ psq_l f31, 0(r6), 0, 0 /* qr0 */ -/* 8034651C 11 C6 00 98 */ ps_muls0 f14, f6, f2 -/* 80346520 E1 24 00 18 */ psq_l f9, 24(r4), 0, 0 /* qr0 */ -/* 80346524 11 E7 00 98 */ ps_muls0 f15, f7, f2 -/* 80346528 E0 23 00 08 */ psq_l f1, 8(r3), 0, 0 /* qr0 */ -/* 8034652C 11 88 60 1E */ ps_madds1 f12, f8, f0, f12 -/* 80346530 E0 63 00 18 */ psq_l f3, 24(r3), 0, 0 /* qr0 */ -/* 80346534 11 C8 70 9E */ ps_madds1 f14, f8, f2, f14 -/* 80346538 E1 44 00 20 */ psq_l f10, 32(r4), 0, 0 /* qr0 */ -/* 8034653C 11 A9 68 1E */ ps_madds1 f13, f9, f0, f13 -/* 80346540 E1 64 00 28 */ psq_l f11, 40(r4), 0, 0 /* qr0 */ -/* 80346544 11 E9 78 9E */ ps_madds1 f15, f9, f2, f15 -/* 80346548 E0 83 00 20 */ psq_l f4, 32(r3), 0, 0 /* qr0 */ -/* 8034654C E0 A3 00 28 */ psq_l f5, 40(r3), 0, 0 /* qr0 */ -/* 80346550 11 8A 60 5C */ ps_madds0 f12, f10, f1, f12 -/* 80346554 11 AB 68 5C */ ps_madds0 f13, f11, f1, f13 -/* 80346558 11 CA 70 DC */ ps_madds0 f14, f10, f3, f14 -/* 8034655C 11 EB 78 DC */ ps_madds0 f15, f11, f3, f15 -/* 80346560 F1 85 00 00 */ psq_st f12, 0(r5), 0, 0 /* qr0 */ -/* 80346564 10 46 01 18 */ ps_muls0 f2, f6, f4 -/* 80346568 11 BF 68 5E */ ps_madds1 f13, f31, f1, f13 -/* 8034656C 10 07 01 18 */ ps_muls0 f0, f7, f4 -/* 80346570 F1 C5 00 10 */ psq_st f14, 16(r5), 0, 0 /* qr0 */ -/* 80346574 11 FF 78 DE */ ps_madds1 f15, f31, f3, f15 -/* 80346578 F1 A5 00 08 */ psq_st f13, 8(r5), 0, 0 /* qr0 */ -/* 8034657C 10 48 11 1E */ ps_madds1 f2, f8, f4, f2 -/* 80346580 10 09 01 1E */ ps_madds1 f0, f9, f4, f0 -/* 80346584 10 4A 11 5C */ ps_madds0 f2, f10, f5, f2 -/* 80346588 C9 C1 00 08 */ lfd f14, 8(r1) -/* 8034658C F1 E5 00 18 */ psq_st f15, 24(r5), 0, 0 /* qr0 */ -/* 80346590 10 0B 01 5C */ ps_madds0 f0, f11, f5, f0 -/* 80346594 F0 45 00 20 */ psq_st f2, 32(r5), 0, 0 /* qr0 */ -/* 80346598 10 1F 01 5E */ ps_madds1 f0, f31, f5, f0 -/* 8034659C C9 E1 00 10 */ lfd f15, 0x10(r1) -/* 803465A0 F0 05 00 28 */ psq_st f0, 40(r5), 0, 0 /* qr0 */ -/* 803465A4 CB E1 00 28 */ lfd f31, 0x28(r1) -/* 803465A8 38 21 00 40 */ addi r1, r1, 0x40 -/* 803465AC 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXCopy.s b/asm/dolphin/mtx/mtx/PSMTXCopy.s deleted file mode 100644 index 26410cb9363..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXCopy.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_803464B0: -/* 803464B0 E0 03 00 00 */ psq_l f0, 0(r3), 0, 0 /* qr0 */ -/* 803464B4 F0 04 00 00 */ psq_st f0, 0(r4), 0, 0 /* qr0 */ -/* 803464B8 E0 23 00 08 */ psq_l f1, 8(r3), 0, 0 /* qr0 */ -/* 803464BC F0 24 00 08 */ psq_st f1, 8(r4), 0, 0 /* qr0 */ -/* 803464C0 E0 43 00 10 */ psq_l f2, 16(r3), 0, 0 /* qr0 */ -/* 803464C4 F0 44 00 10 */ psq_st f2, 16(r4), 0, 0 /* qr0 */ -/* 803464C8 E0 63 00 18 */ psq_l f3, 24(r3), 0, 0 /* qr0 */ -/* 803464CC F0 64 00 18 */ psq_st f3, 24(r4), 0, 0 /* qr0 */ -/* 803464D0 E0 83 00 20 */ psq_l f4, 32(r3), 0, 0 /* qr0 */ -/* 803464D4 F0 84 00 20 */ psq_st f4, 32(r4), 0, 0 /* qr0 */ -/* 803464D8 E0 A3 00 28 */ psq_l f5, 40(r3), 0, 0 /* qr0 */ -/* 803464DC F0 A4 00 28 */ psq_st f5, 40(r4), 0, 0 /* qr0 */ -/* 803464E0 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXIdentity.s b/asm/dolphin/mtx/mtx/PSMTXIdentity.s deleted file mode 100644 index d8151cd00e0..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXIdentity.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80346484: -/* 80346484 C0 02 CB 0C */ lfs f0, lit_97(r2) -/* 80346488 C0 22 CB 08 */ lfs f1, lit_96(r2) -/* 8034648C F0 03 00 08 */ psq_st f0, 8(r3), 0, 0 /* qr0 */ -/* 80346490 10 40 0C 60 */ ps_merge01 f2, f0, f1 -/* 80346494 F0 03 00 18 */ psq_st f0, 24(r3), 0, 0 /* qr0 */ -/* 80346498 10 21 04 A0 */ ps_merge10 f1, f1, f0 -/* 8034649C F0 03 00 20 */ psq_st f0, 32(r3), 0, 0 /* qr0 */ -/* 803464A0 F0 43 00 10 */ psq_st f2, 16(r3), 0, 0 /* qr0 */ -/* 803464A4 F0 23 00 00 */ psq_st f1, 0(r3), 0, 0 /* qr0 */ -/* 803464A8 F0 23 00 28 */ psq_st f1, 40(r3), 0, 0 /* qr0 */ -/* 803464AC 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXInverse.s b/asm/dolphin/mtx/mtx/PSMTXInverse.s deleted file mode 100644 index 555ea2d1438..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXInverse.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_803465B0: -/* 803465B0 E0 03 80 00 */ psq_l f0, 0(r3), 1, 0 /* qr0 */ -/* 803465B4 E0 23 00 04 */ psq_l f1, 4(r3), 0, 0 /* qr0 */ -/* 803465B8 E0 43 80 10 */ psq_l f2, 16(r3), 1, 0 /* qr0 */ -/* 803465BC 10 C1 04 A0 */ ps_merge10 f6, f1, f0 -/* 803465C0 E0 63 00 14 */ psq_l f3, 20(r3), 0, 0 /* qr0 */ -/* 803465C4 E0 83 80 20 */ psq_l f4, 32(r3), 1, 0 /* qr0 */ -/* 803465C8 10 E3 14 A0 */ ps_merge10 f7, f3, f2 -/* 803465CC E0 A3 00 24 */ psq_l f5, 36(r3), 0, 0 /* qr0 */ -/* 803465D0 11 63 01 B2 */ ps_mul f11, f3, f6 -/* 803465D4 11 A5 01 F2 */ ps_mul f13, f5, f7 -/* 803465D8 11 05 24 A0 */ ps_merge10 f8, f5, f4 -/* 803465DC 11 61 59 F8 */ ps_msub f11, f1, f7, f11 -/* 803465E0 11 81 02 32 */ ps_mul f12, f1, f8 -/* 803465E4 11 A3 6A 38 */ ps_msub f13, f3, f8, f13 -/* 803465E8 11 43 01 32 */ ps_mul f10, f3, f4 -/* 803465EC 11 85 61 B8 */ ps_msub f12, f5, f6, f12 -/* 803465F0 11 20 01 72 */ ps_mul f9, f0, f5 -/* 803465F4 11 01 00 B2 */ ps_mul f8, f1, f2 -/* 803465F8 10 C6 30 28 */ ps_sub f6, f6, f6 -/* 803465FC 11 42 51 78 */ ps_msub f10, f2, f5, f10 -/* 80346600 10 E0 03 72 */ ps_mul f7, f0, f13 -/* 80346604 11 21 49 38 */ ps_msub f9, f1, f4, f9 -/* 80346608 10 E2 3B 3A */ ps_madd f7, f2, f12, f7 -/* 8034660C 11 00 40 F8 */ ps_msub f8, f0, f3, f8 -/* 80346610 10 E4 3A FA */ ps_madd f7, f4, f11, f7 -/* 80346614 10 07 30 40 */ ps_cmpo0 cr0, f7, f6 -/* 80346618 40 82 00 0C */ bne lbl_80346624 -/* 8034661C 38 60 00 00 */ li r3, 0 -/* 80346620 4E 80 00 20 */ blr -lbl_80346624: -/* 80346624 EC 00 38 30 */ fres f0, f7 -/* 80346628 10 C0 00 2A */ ps_add f6, f0, f0 -/* 8034662C 10 A0 00 32 */ ps_mul f5, f0, f0 -/* 80346630 10 07 31 7C */ ps_nmsub f0, f7, f5, f6 -/* 80346634 C0 23 00 0C */ lfs f1, 0xc(r3) -/* 80346638 11 AD 00 18 */ ps_muls0 f13, f13, f0 -/* 8034663C C0 43 00 1C */ lfs f2, 0x1c(r3) -/* 80346640 11 8C 00 18 */ ps_muls0 f12, f12, f0 -/* 80346644 C0 63 00 2C */ lfs f3, 0x2c(r3) -/* 80346648 11 6B 00 18 */ ps_muls0 f11, f11, f0 -/* 8034664C 10 AD 64 20 */ ps_merge00 f5, f13, f12 -/* 80346650 11 4A 00 18 */ ps_muls0 f10, f10, f0 -/* 80346654 10 8D 64 E0 */ ps_merge11 f4, f13, f12 -/* 80346658 11 29 00 18 */ ps_muls0 f9, f9, f0 -/* 8034665C F0 A4 00 00 */ psq_st f5, 0(r4), 0, 0 /* qr0 */ -/* 80346660 10 CD 00 72 */ ps_mul f6, f13, f1 -/* 80346664 F0 84 00 10 */ psq_st f4, 16(r4), 0, 0 /* qr0 */ -/* 80346668 11 08 00 18 */ ps_muls0 f8, f8, f0 -/* 8034666C 10 CC 30 BA */ ps_madd f6, f12, f2, f6 -/* 80346670 F1 44 80 20 */ psq_st f10, 32(r4), 1, 0 /* qr0 */ -/* 80346674 10 CB 30 FE */ ps_nmadd f6, f11, f3, f6 -/* 80346678 F1 24 80 24 */ psq_st f9, 36(r4), 1, 0 /* qr0 */ -/* 8034667C 10 EA 00 72 */ ps_mul f7, f10, f1 -/* 80346680 10 AB 34 20 */ ps_merge00 f5, f11, f6 -/* 80346684 F1 04 80 28 */ psq_st f8, 40(r4), 1, 0 /* qr0 */ -/* 80346688 10 8B 34 E0 */ ps_merge11 f4, f11, f6 -/* 8034668C F0 A4 00 08 */ psq_st f5, 8(r4), 0, 0 /* qr0 */ -/* 80346690 10 E9 38 BA */ ps_madd f7, f9, f2, f7 -/* 80346694 F0 84 00 18 */ psq_st f4, 24(r4), 0, 0 /* qr0 */ -/* 80346698 10 E8 38 FE */ ps_nmadd f7, f8, f3, f7 -/* 8034669C 38 60 00 01 */ li r3, 1 -/* 803466A0 F0 E4 80 2C */ psq_st f7, 44(r4), 1, 0 /* qr0 */ -/* 803466A4 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXQuat.s b/asm/dolphin/mtx/mtx/PSMTXQuat.s deleted file mode 100644 index 807a4c1a415..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXQuat.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_803469E8: -/* 803469E8 C0 22 CB 08 */ lfs f1, lit_96(r2) -/* 803469EC E0 84 00 00 */ psq_l f4, 0(r4), 0, 0 /* qr0 */ -/* 803469F0 E0 A4 00 08 */ psq_l f5, 8(r4), 0, 0 /* qr0 */ -/* 803469F4 EC 01 08 28 */ fsubs f0, f1, f1 -/* 803469F8 EC 41 08 2A */ fadds f2, f1, f1 -/* 803469FC 10 C4 01 32 */ ps_mul f6, f4, f4 -/* 80346A00 11 24 24 A0 */ ps_merge10 f9, f4, f4 -/* 80346A04 11 05 31 7A */ ps_madd f8, f5, f5, f6 -/* 80346A08 10 E5 01 72 */ ps_mul f7, f5, f5 -/* 80346A0C 10 68 42 14 */ ps_sum0 f3, f8, f8, f8 -/* 80346A10 11 49 01 5A */ ps_muls1 f10, f9, f5 -/* 80346A14 ED 60 18 30 */ fres f11, f3 -/* 80346A18 11 07 32 16 */ ps_sum1 f8, f7, f8, f6 -/* 80346A1C 10 63 12 FC */ ps_nmsub f3, f3, f11, f2 -/* 80346A20 10 E5 01 5A */ ps_muls1 f7, f5, f5 -/* 80346A24 10 6B 00 F2 */ ps_mul f3, f11, f3 -/* 80346A28 10 C6 31 94 */ ps_sum0 f6, f6, f6, f6 -/* 80346A2C EC 63 00 B2 */ fmuls f3, f3, f2 -/* 80346A30 11 64 3A 7A */ ps_madd f11, f4, f9, f7 -/* 80346A34 10 E4 3A 78 */ ps_msub f7, f4, f9, f7 -/* 80346A38 F0 03 80 0C */ psq_st f0, 12(r3), 1, 0 /* qr0 */ -/* 80346A3C 10 C6 08 FC */ ps_nmsub f6, f6, f3, f1 -/* 80346A40 11 08 08 FC */ ps_nmsub f8, f8, f3, f1 -/* 80346A44 F0 03 80 2C */ psq_st f0, 44(r3), 1, 0 /* qr0 */ -/* 80346A48 11 6B 00 F2 */ ps_mul f11, f11, f3 -/* 80346A4C 10 E7 00 F2 */ ps_mul f7, f7, f3 -/* 80346A50 F0 C3 80 28 */ psq_st f6, 40(r3), 1, 0 /* qr0 */ -/* 80346A54 11 24 51 5C */ ps_madds0 f9, f4, f5, f10 -/* 80346A58 10 AB 44 20 */ ps_merge00 f5, f11, f8 -/* 80346A5C 11 4A 48 BC */ ps_nmsub f10, f10, f2, f9 -/* 80346A60 10 88 3C A0 */ ps_merge10 f4, f8, f7 -/* 80346A64 F0 A3 00 10 */ psq_st f5, 16(r3), 0, 0 /* qr0 */ -/* 80346A68 11 29 00 F2 */ ps_mul f9, f9, f3 -/* 80346A6C 11 4A 00 F2 */ ps_mul f10, f10, f3 -/* 80346A70 F0 83 00 00 */ psq_st f4, 0(r3), 0, 0 /* qr0 */ -/* 80346A74 F1 23 80 08 */ psq_st f9, 8(r3), 1, 0 /* qr0 */ -/* 80346A78 10 EA 04 A0 */ ps_merge10 f7, f10, f0 -/* 80346A7C 11 6A 4C 60 */ ps_merge01 f11, f10, f9 -/* 80346A80 F0 E3 00 18 */ psq_st f7, 24(r3), 0, 0 /* qr0 */ -/* 80346A84 F1 63 00 20 */ psq_st f11, 32(r3), 0, 0 /* qr0 */ -/* 80346A88 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXRotTrig.s b/asm/dolphin/mtx/mtx/PSMTXRotTrig.s deleted file mode 100644 index 44dfcbe3846..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXRotTrig.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_80346718: -/* 80346718 FC A0 08 18 */ frsp f5, f1 -/* 8034671C FC 80 10 18 */ frsp f4, f2 -/* 80346720 C0 02 CB 0C */ lfs f0, lit_97(r2) -/* 80346724 C0 22 CB 08 */ lfs f1, lit_96(r2) -/* 80346728 60 80 00 20 */ ori r0, r4, 0x20 -/* 8034672C 10 40 28 50 */ ps_neg f2, f5 -/* 80346730 28 00 00 78 */ cmplwi r0, 0x78 -/* 80346734 41 82 00 18 */ beq lbl_8034674C -/* 80346738 28 00 00 79 */ cmplwi r0, 0x79 -/* 8034673C 41 82 00 38 */ beq lbl_80346774 -/* 80346740 28 00 00 7A */ cmplwi r0, 0x7a -/* 80346744 41 82 00 5C */ beq lbl_803467A0 -/* 80346748 48 00 00 7C */ b lbl_803467C4 -lbl_8034674C: -/* 8034674C F0 23 80 00 */ psq_st f1, 0(r3), 1, 0 /* qr0 */ -/* 80346750 F0 03 00 04 */ psq_st f0, 4(r3), 0, 0 /* qr0 */ -/* 80346754 10 65 24 20 */ ps_merge00 f3, f5, f4 -/* 80346758 F0 03 00 0C */ psq_st f0, 12(r3), 0, 0 /* qr0 */ -/* 8034675C 10 24 14 20 */ ps_merge00 f1, f4, f2 -/* 80346760 F0 03 00 1C */ psq_st f0, 28(r3), 0, 0 /* qr0 */ -/* 80346764 F0 03 80 2C */ psq_st f0, 44(r3), 1, 0 /* qr0 */ -/* 80346768 F0 63 00 24 */ psq_st f3, 36(r3), 0, 0 /* qr0 */ -/* 8034676C F0 23 00 14 */ psq_st f1, 20(r3), 0, 0 /* qr0 */ -/* 80346770 48 00 00 54 */ b lbl_803467C4 -lbl_80346774: -/* 80346774 10 64 04 20 */ ps_merge00 f3, f4, f0 -/* 80346778 10 20 0C 20 */ ps_merge00 f1, f0, f1 -/* 8034677C F0 03 00 18 */ psq_st f0, 24(r3), 0, 0 /* qr0 */ -/* 80346780 F0 63 00 00 */ psq_st f3, 0(r3), 0, 0 /* qr0 */ -/* 80346784 10 42 04 20 */ ps_merge00 f2, f2, f0 -/* 80346788 10 05 04 20 */ ps_merge00 f0, f5, f0 -/* 8034678C F0 63 00 28 */ psq_st f3, 40(r3), 0, 0 /* qr0 */ -/* 80346790 F0 23 00 10 */ psq_st f1, 16(r3), 0, 0 /* qr0 */ -/* 80346794 F0 03 00 08 */ psq_st f0, 8(r3), 0, 0 /* qr0 */ -/* 80346798 F0 43 00 20 */ psq_st f2, 32(r3), 0, 0 /* qr0 */ -/* 8034679C 48 00 00 28 */ b lbl_803467C4 -lbl_803467A0: -/* 803467A0 F0 03 00 08 */ psq_st f0, 8(r3), 0, 0 /* qr0 */ -/* 803467A4 10 65 24 20 */ ps_merge00 f3, f5, f4 -/* 803467A8 10 44 14 20 */ ps_merge00 f2, f4, f2 -/* 803467AC F0 03 00 18 */ psq_st f0, 24(r3), 0, 0 /* qr0 */ -/* 803467B0 F0 03 00 20 */ psq_st f0, 32(r3), 0, 0 /* qr0 */ -/* 803467B4 10 21 04 20 */ ps_merge00 f1, f1, f0 -/* 803467B8 F0 63 00 10 */ psq_st f3, 16(r3), 0, 0 /* qr0 */ -/* 803467BC F0 43 00 00 */ psq_st f2, 0(r3), 0, 0 /* qr0 */ -/* 803467C0 F0 23 00 28 */ psq_st f1, 40(r3), 0, 0 /* qr0 */ -lbl_803467C4: -/* 803467C4 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXScale.s b/asm/dolphin/mtx/mtx/PSMTXScale.s deleted file mode 100644 index 7e2cda2eac3..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXScale.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80346968: -/* 80346968 C0 02 CB 0C */ lfs f0, lit_97(r2) -/* 8034696C D0 23 00 00 */ stfs f1, 0(r3) -/* 80346970 F0 03 00 04 */ psq_st f0, 4(r3), 0, 0 /* qr0 */ -/* 80346974 F0 03 00 0C */ psq_st f0, 12(r3), 0, 0 /* qr0 */ -/* 80346978 D0 43 00 14 */ stfs f2, 0x14(r3) -/* 8034697C F0 03 00 18 */ psq_st f0, 24(r3), 0, 0 /* qr0 */ -/* 80346980 F0 03 00 20 */ psq_st f0, 32(r3), 0, 0 /* qr0 */ -/* 80346984 D0 63 00 28 */ stfs f3, 0x28(r3) -/* 80346988 D0 03 00 2C */ stfs f0, 0x2c(r3) -/* 8034698C 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXScaleApply.s b/asm/dolphin/mtx/mtx/PSMTXScaleApply.s deleted file mode 100644 index d14014ffc2e..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXScaleApply.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80346990: -/* 80346990 FC 20 08 18 */ frsp f1, f1 -/* 80346994 E0 83 00 00 */ psq_l f4, 0(r3), 0, 0 /* qr0 */ -/* 80346998 FC 40 10 18 */ frsp f2, f2 -/* 8034699C E0 A3 00 08 */ psq_l f5, 8(r3), 0, 0 /* qr0 */ -/* 803469A0 FC 60 18 18 */ frsp f3, f3 -/* 803469A4 10 84 00 58 */ ps_muls0 f4, f4, f1 -/* 803469A8 E0 C3 00 10 */ psq_l f6, 16(r3), 0, 0 /* qr0 */ -/* 803469AC 10 A5 00 58 */ ps_muls0 f5, f5, f1 -/* 803469B0 E0 E3 00 18 */ psq_l f7, 24(r3), 0, 0 /* qr0 */ -/* 803469B4 10 C6 00 98 */ ps_muls0 f6, f6, f2 -/* 803469B8 E1 03 00 20 */ psq_l f8, 32(r3), 0, 0 /* qr0 */ -/* 803469BC F0 84 00 00 */ psq_st f4, 0(r4), 0, 0 /* qr0 */ -/* 803469C0 10 E7 00 98 */ ps_muls0 f7, f7, f2 -/* 803469C4 E0 43 00 28 */ psq_l f2, 40(r3), 0, 0 /* qr0 */ -/* 803469C8 F0 A4 00 08 */ psq_st f5, 8(r4), 0, 0 /* qr0 */ -/* 803469CC 11 08 00 D8 */ ps_muls0 f8, f8, f3 -/* 803469D0 F0 C4 00 10 */ psq_st f6, 16(r4), 0, 0 /* qr0 */ -/* 803469D4 10 42 00 D8 */ ps_muls0 f2, f2, f3 -/* 803469D8 F0 E4 00 18 */ psq_st f7, 24(r4), 0, 0 /* qr0 */ -/* 803469DC F1 04 00 20 */ psq_st f8, 32(r4), 0, 0 /* qr0 */ -/* 803469E0 F0 44 00 28 */ psq_st f2, 40(r4), 0, 0 /* qr0 */ -/* 803469E4 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXTrans.s b/asm/dolphin/mtx/mtx/PSMTXTrans.s deleted file mode 100644 index a265d606fd4..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXTrans.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_803468E8: -/* 803468E8 C0 02 CB 0C */ lfs f0, lit_97(r2) -/* 803468EC C0 82 CB 08 */ lfs f4, lit_96(r2) -/* 803468F0 D0 23 00 0C */ stfs f1, 0xc(r3) -/* 803468F4 D0 43 00 1C */ stfs f2, 0x1c(r3) -/* 803468F8 F0 03 00 04 */ psq_st f0, 4(r3), 0, 0 /* qr0 */ -/* 803468FC F0 03 00 20 */ psq_st f0, 32(r3), 0, 0 /* qr0 */ -/* 80346900 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 80346904 D0 83 00 14 */ stfs f4, 0x14(r3) -/* 80346908 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 8034690C D0 83 00 28 */ stfs f4, 0x28(r3) -/* 80346910 D0 63 00 2C */ stfs f3, 0x2c(r3) -/* 80346914 D0 83 00 00 */ stfs f4, 0(r3) -/* 80346918 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/PSMTXTransApply.s b/asm/dolphin/mtx/mtx/PSMTXTransApply.s deleted file mode 100644 index f9bad2f3a0d..00000000000 --- a/asm/dolphin/mtx/mtx/PSMTXTransApply.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8034691C: -/* 8034691C E0 83 00 00 */ psq_l f4, 0(r3), 0, 0 /* qr0 */ -/* 80346920 FC 20 08 18 */ frsp f1, f1 -/* 80346924 E0 A3 00 08 */ psq_l f5, 8(r3), 0, 0 /* qr0 */ -/* 80346928 FC 40 10 18 */ frsp f2, f2 -/* 8034692C E0 E3 00 18 */ psq_l f7, 24(r3), 0, 0 /* qr0 */ -/* 80346930 FC 60 18 18 */ frsp f3, f3 -/* 80346934 E1 03 00 28 */ psq_l f8, 40(r3), 0, 0 /* qr0 */ -/* 80346938 F0 84 00 00 */ psq_st f4, 0(r4), 0, 0 /* qr0 */ -/* 8034693C 10 A1 29 56 */ ps_sum1 f5, f1, f5, f5 -/* 80346940 E0 C3 00 10 */ psq_l f6, 16(r3), 0, 0 /* qr0 */ -/* 80346944 F0 A4 00 08 */ psq_st f5, 8(r4), 0, 0 /* qr0 */ -/* 80346948 10 E2 39 D6 */ ps_sum1 f7, f2, f7, f7 -/* 8034694C E1 23 00 20 */ psq_l f9, 32(r3), 0, 0 /* qr0 */ -/* 80346950 F0 C4 00 10 */ psq_st f6, 16(r4), 0, 0 /* qr0 */ -/* 80346954 11 03 42 16 */ ps_sum1 f8, f3, f8, f8 -/* 80346958 F0 E4 00 18 */ psq_st f7, 24(r4), 0, 0 /* qr0 */ -/* 8034695C F1 24 00 20 */ psq_st f9, 32(r4), 0, 0 /* qr0 */ -/* 80346960 F1 04 00 28 */ psq_st f8, 40(r4), 0, 0 /* qr0 */ -/* 80346964 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtx/__PSMTXRotAxisRadInternal.s b/asm/dolphin/mtx/mtx/__PSMTXRotAxisRadInternal.s deleted file mode 100644 index f4081ff81a3..00000000000 --- a/asm/dolphin/mtx/mtx/__PSMTXRotAxisRadInternal.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_803467C8: -/* 803467C8 C1 42 CB 10 */ lfs f10, lit_190(r2) -/* 803467CC C1 22 CB 14 */ lfs f9, lit_191(r2) -/* 803467D0 FD 60 10 18 */ frsp f11, f2 -/* 803467D4 E0 44 00 00 */ psq_l f2, 0(r4), 0, 0 /* qr0 */ -/* 803467D8 FD 80 08 18 */ frsp f12, f1 -/* 803467DC C0 64 00 08 */ lfs f3, 8(r4) -/* 803467E0 10 82 00 B2 */ ps_mul f4, f2, f2 -/* 803467E4 ED 0A 50 2A */ fadds f8, f10, f10 -/* 803467E8 10 A3 20 FA */ ps_madd f5, f3, f3, f4 -/* 803467EC EC 2A 50 28 */ fsubs f1, f10, f10 -/* 803467F0 10 C5 20 D4 */ ps_sum0 f6, f5, f3, f4 -/* 803467F4 EC 08 58 28 */ fsubs f0, f8, f11 -/* 803467F8 FC E0 30 34 */ frsqrte f7, f6 -/* 803467FC EC 87 01 F2 */ fmuls f4, f7, f7 -/* 80346800 EC A7 02 B2 */ fmuls f5, f7, f10 -/* 80346804 EC 84 49 BC */ fnmsubs f4, f4, f6, f9 -/* 80346808 EC E4 01 72 */ fmuls f7, f4, f5 -/* 8034680C 11 6B 5C 20 */ ps_merge00 f11, f11, f11 -/* 80346810 10 42 01 D8 */ ps_muls0 f2, f2, f7 -/* 80346814 10 63 01 D8 */ ps_muls0 f3, f3, f7 -/* 80346818 10 C2 00 18 */ ps_muls0 f6, f2, f0 -/* 8034681C 11 42 03 18 */ ps_muls0 f10, f2, f12 -/* 80346820 10 E3 00 18 */ ps_muls0 f7, f3, f0 -/* 80346824 10 A6 00 9A */ ps_muls1 f5, f6, f2 -/* 80346828 10 86 00 98 */ ps_muls0 f4, f6, f2 -/* 8034682C 10 C6 00 D8 */ ps_muls0 f6, f6, f3 -/* 80346830 EC 03 2B 3C */ fnmsubs f0, f3, f12, f5 -/* 80346834 ED 03 2B 3A */ fmadds f8, f3, f12, f5 -/* 80346838 10 40 50 50 */ ps_neg f2, f10 -/* 8034683C 11 26 50 54 */ ps_sum0 f9, f6, f1, f10 -/* 80346840 10 84 58 14 */ ps_sum0 f4, f4, f0, f11 -/* 80346844 10 AB 2A 16 */ ps_sum1 f5, f11, f8, f5 -/* 80346848 10 02 30 54 */ ps_sum0 f0, f2, f1, f6 -/* 8034684C F1 23 00 08 */ psq_st f9, 8(r3), 0, 0 /* qr0 */ -/* 80346850 10 46 11 94 */ ps_sum0 f2, f6, f6, f2 -/* 80346854 F0 83 00 00 */ psq_st f4, 0(r3), 0, 0 /* qr0 */ -/* 80346858 10 E7 00 D8 */ ps_muls0 f7, f7, f3 -/* 8034685C F0 A3 00 10 */ psq_st f5, 16(r3), 0, 0 /* qr0 */ -/* 80346860 10 CA 30 96 */ ps_sum1 f6, f10, f2, f6 -/* 80346864 F0 03 00 18 */ psq_st f0, 24(r3), 0, 0 /* qr0 */ -/* 80346868 10 E7 58 54 */ ps_sum0 f7, f7, f1, f11 -/* 8034686C F0 C3 00 20 */ psq_st f6, 32(r3), 0, 0 /* qr0 */ -/* 80346870 F0 E3 00 28 */ psq_st f7, 40(r3), 0, 0 /* qr0 */ -/* 80346874 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtxvec/PSMTXMultVec.s b/asm/dolphin/mtx/mtxvec/PSMTXMultVec.s deleted file mode 100644 index 54bfee02176..00000000000 --- a/asm/dolphin/mtx/mtxvec/PSMTXMultVec.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80346D6C: -/* 80346D6C E0 04 00 00 */ psq_l f0, 0(r4), 0, 0 /* qr0 */ -/* 80346D70 E0 43 00 00 */ psq_l f2, 0(r3), 0, 0 /* qr0 */ -/* 80346D74 E0 24 80 08 */ psq_l f1, 8(r4), 1, 0 /* qr0 */ -/* 80346D78 10 82 00 32 */ ps_mul f4, f2, f0 -/* 80346D7C E0 63 00 08 */ psq_l f3, 8(r3), 0, 0 /* qr0 */ -/* 80346D80 10 A3 20 7A */ ps_madd f5, f3, f1, f4 -/* 80346D84 E1 03 00 10 */ psq_l f8, 16(r3), 0, 0 /* qr0 */ -/* 80346D88 10 C5 29 94 */ ps_sum0 f6, f5, f6, f5 -/* 80346D8C E1 23 00 18 */ psq_l f9, 24(r3), 0, 0 /* qr0 */ -/* 80346D90 11 48 00 32 */ ps_mul f10, f8, f0 -/* 80346D94 F0 C5 80 00 */ psq_st f6, 0(r5), 1, 0 /* qr0 */ -/* 80346D98 11 69 50 7A */ ps_madd f11, f9, f1, f10 -/* 80346D9C E0 43 00 20 */ psq_l f2, 32(r3), 0, 0 /* qr0 */ -/* 80346DA0 11 8B 5B 14 */ ps_sum0 f12, f11, f12, f11 -/* 80346DA4 E0 63 00 28 */ psq_l f3, 40(r3), 0, 0 /* qr0 */ -/* 80346DA8 10 82 00 32 */ ps_mul f4, f2, f0 -/* 80346DAC F1 85 80 04 */ psq_st f12, 4(r5), 1, 0 /* qr0 */ -/* 80346DB0 10 A3 20 7A */ ps_madd f5, f3, f1, f4 -/* 80346DB4 10 C5 29 94 */ ps_sum0 f6, f5, f6, f5 -/* 80346DB8 F0 C5 80 08 */ psq_st f6, 8(r5), 1, 0 /* qr0 */ -/* 80346DBC 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s b/asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s deleted file mode 100644 index 2da973cfdb1..00000000000 --- a/asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80346DC0: -/* 80346DC0 E1 A3 00 00 */ psq_l f13, 0(r3), 0, 0 /* qr0 */ -/* 80346DC4 E1 83 00 10 */ psq_l f12, 16(r3), 0, 0 /* qr0 */ -/* 80346DC8 38 C6 FF FF */ addi r6, r6, -1 -/* 80346DCC E1 63 00 08 */ psq_l f11, 8(r3), 0, 0 /* qr0 */ -/* 80346DD0 10 0D 64 20 */ ps_merge00 f0, f13, f12 -/* 80346DD4 38 A5 FF FC */ addi r5, r5, -4 -/* 80346DD8 E1 43 00 18 */ psq_l f10, 24(r3), 0, 0 /* qr0 */ -/* 80346DDC 10 2D 64 E0 */ ps_merge11 f1, f13, f12 -/* 80346DE0 7C C9 03 A6 */ mtctr r6 -/* 80346DE4 E0 83 00 20 */ psq_l f4, 32(r3), 0, 0 /* qr0 */ -/* 80346DE8 10 4B 54 20 */ ps_merge00 f2, f11, f10 -/* 80346DEC E0 A3 00 28 */ psq_l f5, 40(r3), 0, 0 /* qr0 */ -/* 80346DF0 10 6B 54 E0 */ ps_merge11 f3, f11, f10 -/* 80346DF4 E0 C4 00 00 */ psq_l f6, 0(r4), 0, 0 /* qr0 */ -/* 80346DF8 E4 E4 80 08 */ psq_lu f7, 8(r4), 1, 0 /* qr0 */ -/* 80346DFC 11 00 19 9C */ ps_madds0 f8, f0, f6, f3 -/* 80346E00 11 24 01 B2 */ ps_mul f9, f4, f6 -/* 80346E04 11 01 41 9E */ ps_madds1 f8, f1, f6, f8 -/* 80346E08 11 45 49 FA */ ps_madd f10, f5, f7, f9 -lbl_80346E0C: -/* 80346E0C E4 C4 00 04 */ psq_lu f6, 4(r4), 0, 0 /* qr0 */ -/* 80346E10 11 82 41 DC */ ps_madds0 f12, f2, f7, f8 -/* 80346E14 E4 E4 80 08 */ psq_lu f7, 8(r4), 1, 0 /* qr0 */ -/* 80346E18 11 AA 52 54 */ ps_sum0 f13, f10, f9, f10 -/* 80346E1C 11 00 19 9C */ ps_madds0 f8, f0, f6, f3 -/* 80346E20 11 24 01 B2 */ ps_mul f9, f4, f6 -/* 80346E24 F5 85 00 04 */ psq_stu f12, 4(r5), 0, 0 /* qr0 */ -/* 80346E28 11 01 41 9E */ ps_madds1 f8, f1, f6, f8 -/* 80346E2C F5 A5 80 08 */ psq_stu f13, 8(r5), 1, 0 /* qr0 */ -/* 80346E30 11 45 49 FA */ ps_madd f10, f5, f7, f9 -/* 80346E34 42 00 FF D8 */ bdnz lbl_80346E0C -/* 80346E38 11 82 41 DC */ ps_madds0 f12, f2, f7, f8 -/* 80346E3C 11 AA 52 54 */ ps_sum0 f13, f10, f9, f10 -/* 80346E40 F5 85 00 04 */ psq_stu f12, 4(r5), 0, 0 /* qr0 */ -/* 80346E44 F5 A5 80 08 */ psq_stu f13, 8(r5), 1, 0 /* qr0 */ -/* 80346E48 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s b/asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s deleted file mode 100644 index bf5b2ada4b8..00000000000 --- a/asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_80346EA0: -/* 80346EA0 E1 A3 00 00 */ psq_l f13, 0(r3), 0, 0 /* qr0 */ -/* 80346EA4 E1 83 00 10 */ psq_l f12, 16(r3), 0, 0 /* qr0 */ -/* 80346EA8 38 C6 FF FF */ addi r6, r6, -1 -/* 80346EAC E1 63 80 08 */ psq_l f11, 8(r3), 1, 0 /* qr0 */ -/* 80346EB0 10 0D 64 20 */ ps_merge00 f0, f13, f12 -/* 80346EB4 38 A5 FF FC */ addi r5, r5, -4 -/* 80346EB8 E1 43 80 18 */ psq_l f10, 24(r3), 1, 0 /* qr0 */ -/* 80346EBC 10 2D 64 E0 */ ps_merge11 f1, f13, f12 -/* 80346EC0 7C C9 03 A6 */ mtctr r6 -/* 80346EC4 E0 63 00 20 */ psq_l f3, 32(r3), 0, 0 /* qr0 */ -/* 80346EC8 10 4B 54 20 */ ps_merge00 f2, f11, f10 -/* 80346ECC E0 83 80 28 */ psq_l f4, 40(r3), 1, 0 /* qr0 */ -/* 80346ED0 E0 C4 00 00 */ psq_l f6, 0(r4), 0, 0 /* qr0 */ -/* 80346ED4 E4 E4 80 08 */ psq_lu f7, 8(r4), 1, 0 /* qr0 */ -/* 80346ED8 11 00 01 98 */ ps_muls0 f8, f0, f6 -/* 80346EDC 11 23 01 B2 */ ps_mul f9, f3, f6 -/* 80346EE0 11 01 41 9E */ ps_madds1 f8, f1, f6, f8 -/* 80346EE4 11 44 49 FA */ ps_madd f10, f4, f7, f9 -lbl_80346EE8: -/* 80346EE8 E4 C4 00 04 */ psq_lu f6, 4(r4), 0, 0 /* qr0 */ -/* 80346EEC 11 82 41 DC */ ps_madds0 f12, f2, f7, f8 -/* 80346EF0 E4 E4 80 08 */ psq_lu f7, 8(r4), 1, 0 /* qr0 */ -/* 80346EF4 11 AA 4A 54 */ ps_sum0 f13, f10, f9, f9 -/* 80346EF8 11 00 01 98 */ ps_muls0 f8, f0, f6 -/* 80346EFC 11 23 01 B2 */ ps_mul f9, f3, f6 -/* 80346F00 F5 85 00 04 */ psq_stu f12, 4(r5), 0, 0 /* qr0 */ -/* 80346F04 11 01 41 9E */ ps_madds1 f8, f1, f6, f8 -/* 80346F08 F5 A5 80 08 */ psq_stu f13, 8(r5), 1, 0 /* qr0 */ -/* 80346F0C 11 44 49 FA */ ps_madd f10, f4, f7, f9 -/* 80346F10 42 00 FF D8 */ bdnz lbl_80346EE8 -/* 80346F14 11 82 41 DC */ ps_madds0 f12, f2, f7, f8 -/* 80346F18 11 AA 4A 54 */ ps_sum0 f13, f10, f9, f9 -/* 80346F1C F5 85 00 04 */ psq_stu f12, 4(r5), 0, 0 /* qr0 */ -/* 80346F20 F5 A5 80 08 */ psq_stu f13, 8(r5), 1, 0 /* qr0 */ -/* 80346F24 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s b/asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s deleted file mode 100644 index d5dc0ebe9b5..00000000000 --- a/asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80346E4C: -/* 80346E4C E0 03 00 00 */ psq_l f0, 0(r3), 0, 0 /* qr0 */ -/* 80346E50 E0 C4 00 00 */ psq_l f6, 0(r4), 0, 0 /* qr0 */ -/* 80346E54 E0 43 00 10 */ psq_l f2, 16(r3), 0, 0 /* qr0 */ -/* 80346E58 11 00 01 B2 */ ps_mul f8, f0, f6 -/* 80346E5C E0 83 00 20 */ psq_l f4, 32(r3), 0, 0 /* qr0 */ -/* 80346E60 11 42 01 B2 */ ps_mul f10, f2, f6 -/* 80346E64 E0 E4 80 08 */ psq_l f7, 8(r4), 1, 0 /* qr0 */ -/* 80346E68 11 84 01 B2 */ ps_mul f12, f4, f6 -/* 80346E6C E0 63 00 18 */ psq_l f3, 24(r3), 0, 0 /* qr0 */ -/* 80346E70 11 08 42 14 */ ps_sum0 f8, f8, f8, f8 -/* 80346E74 E0 A3 00 28 */ psq_l f5, 40(r3), 0, 0 /* qr0 */ -/* 80346E78 11 4A 52 94 */ ps_sum0 f10, f10, f10, f10 -/* 80346E7C E0 23 00 08 */ psq_l f1, 8(r3), 0, 0 /* qr0 */ -/* 80346E80 11 8C 63 14 */ ps_sum0 f12, f12, f12, f12 -/* 80346E84 11 21 41 FA */ ps_madd f9, f1, f7, f8 -/* 80346E88 F1 25 80 00 */ psq_st f9, 0(r5), 1, 0 /* qr0 */ -/* 80346E8C 11 63 51 FA */ ps_madd f11, f3, f7, f10 -/* 80346E90 F1 65 80 04 */ psq_st f11, 4(r5), 1, 0 /* qr0 */ -/* 80346E94 11 A5 61 FA */ ps_madd f13, f5, f7, f12 -/* 80346E98 F1 A5 80 08 */ psq_st f13, 8(r5), 1, 0 /* qr0 */ -/* 80346E9C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/InquiryCallback.s b/asm/dolphin/os/OS/InquiryCallback.s deleted file mode 100644 index f29ecd170bd..00000000000 --- a/asm/dolphin/os/OS/InquiryCallback.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80339F24: -/* 80339F24 80 04 00 0C */ lwz r0, 0xc(r4) -/* 80339F28 2C 00 00 00 */ cmpwi r0, 0 -/* 80339F2C 41 82 00 08 */ beq lbl_80339F34 -/* 80339F30 48 00 00 20 */ b lbl_80339F50 -lbl_80339F34: -/* 80339F34 3C 60 80 45 */ lis r3, DriveInfo@ha /* 0x8044BA60@ha */ -/* 80339F38 38 63 BA 60 */ addi r3, r3, DriveInfo@l /* 0x8044BA60@l */ -/* 80339F3C A0 03 00 02 */ lhz r0, 2(r3) -/* 80339F40 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030E6@ha */ -/* 80339F44 60 00 80 00 */ ori r0, r0, 0x8000 -/* 80339F48 B0 03 30 E6 */ sth r0, 0x30E6(r3) /* 0x800030E6@l */ -/* 80339F4C 48 00 00 10 */ b lbl_80339F5C -lbl_80339F50: -/* 80339F50 38 00 00 01 */ li r0, 1 -/* 80339F54 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030E6@ha */ -/* 80339F58 B0 03 30 E6 */ sth r0, 0x30E6(r3) /* 0x800030E6@l */ -lbl_80339F5C: -/* 80339F5C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/OSDefaultExceptionHandler.s b/asm/dolphin/os/OS/OSDefaultExceptionHandler.s deleted file mode 100644 index 452fc77d483..00000000000 --- a/asm/dolphin/os/OS/OSDefaultExceptionHandler.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8033A7B4: -/* 8033A7B4 90 04 00 00 */ stw r0, 0(r4) -/* 8033A7B8 90 24 00 04 */ stw r1, 4(r4) -/* 8033A7BC 90 44 00 08 */ stw r2, 8(r4) -/* 8033A7C0 BC C4 00 18 */ stmw r6, 0x18(r4) -/* 8033A7C4 7C 11 E2 A6 */ mfspr r0, 0x391 -/* 8033A7C8 90 04 01 A8 */ stw r0, 0x1a8(r4) -/* 8033A7CC 7C 12 E2 A6 */ mfspr r0, 0x392 -/* 8033A7D0 90 04 01 AC */ stw r0, 0x1ac(r4) -/* 8033A7D4 7C 13 E2 A6 */ mfspr r0, 0x393 -/* 8033A7D8 90 04 01 B0 */ stw r0, 0x1b0(r4) -/* 8033A7DC 7C 14 E2 A6 */ mfspr r0, 0x394 -/* 8033A7E0 90 04 01 B4 */ stw r0, 0x1b4(r4) -/* 8033A7E4 7C 15 E2 A6 */ mfspr r0, 0x395 -/* 8033A7E8 90 04 01 B8 */ stw r0, 0x1b8(r4) -/* 8033A7EC 7C 16 E2 A6 */ mfspr r0, 0x396 -/* 8033A7F0 90 04 01 BC */ stw r0, 0x1bc(r4) -/* 8033A7F4 7C 17 E2 A6 */ mfspr r0, 0x397 -/* 8033A7F8 90 04 01 C0 */ stw r0, 0x1c0(r4) -/* 8033A7FC 7C B2 02 A6 */ mfdsisr r5 -/* 8033A800 7C D3 02 A6 */ mfdar r6 -/* 8033A804 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033A808 48 00 1F 90 */ b __OSUnhandledException diff --git a/asm/dolphin/os/OS/OSExceptionVector.s b/asm/dolphin/os/OS/OSExceptionVector.s deleted file mode 100644 index 9a4aef7f1a9..00000000000 --- a/asm/dolphin/os/OS/OSExceptionVector.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8033A718: -/* 8033A718 7C 90 43 A6 */ mtspr 0x110, r4 -/* 8033A71C 80 80 00 C0 */ lwz r4, 0xc0(r0) -/* 8033A720 90 64 00 0C */ stw r3, 0xc(r4) -/* 8033A724 7C 70 42 A6 */ mfspr r3, 0x110 -/* 8033A728 90 64 00 10 */ stw r3, 0x10(r4) -/* 8033A72C 90 A4 00 14 */ stw r5, 0x14(r4) -/* 8033A730 A0 64 01 A2 */ lhz r3, 0x1a2(r4) -/* 8033A734 60 63 00 02 */ ori r3, r3, 2 -/* 8033A738 B0 64 01 A2 */ sth r3, 0x1a2(r4) -/* 8033A73C 7C 60 00 26 */ mfcr r3 -/* 8033A740 90 64 00 80 */ stw r3, 0x80(r4) -/* 8033A744 7C 68 02 A6 */ mflr r3 -/* 8033A748 90 64 00 84 */ stw r3, 0x84(r4) -/* 8033A74C 7C 69 02 A6 */ mfctr r3 -/* 8033A750 90 64 00 88 */ stw r3, 0x88(r4) -/* 8033A754 7C 61 02 A6 */ mfxer r3 -/* 8033A758 90 64 00 8C */ stw r3, 0x8c(r4) -/* 8033A75C 7C 7A 02 A6 */ mfspr r3, 0x1a -/* 8033A760 90 64 01 98 */ stw r3, 0x198(r4) -/* 8033A764 7C 7B 02 A6 */ mfspr r3, 0x1b -/* 8033A768 90 64 01 9C */ stw r3, 0x19c(r4) -/* 8033A76C 7C 65 1B 78 */ mr r5, r3 diff --git a/asm/dolphin/os/OS/OSGetConsoleType.s b/asm/dolphin/os/OS/OSGetConsoleType.s deleted file mode 100644 index 273039f9117..00000000000 --- a/asm/dolphin/os/OS/OSGetConsoleType.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80339EFC: -/* 80339EFC 80 6D 90 80 */ lwz r3, BootInfo(r13) -/* 80339F00 28 03 00 00 */ cmplwi r3, 0 -/* 80339F04 41 82 00 10 */ beq lbl_80339F14 -/* 80339F08 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 80339F0C 28 03 00 00 */ cmplwi r3, 0 -/* 80339F10 40 82 00 10 */ bne lbl_80339F20 -lbl_80339F14: -/* 80339F14 3C 60 10 00 */ lis r3, 0x1000 /* 0x10000002@ha */ -/* 80339F18 38 63 00 02 */ addi r3, r3, 0x0002 /* 0x10000002@l */ -/* 80339F1C 48 00 00 04 */ b lbl_80339F20 -lbl_80339F20: -/* 80339F20 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/OSInit.s b/asm/dolphin/os/OS/OSInit.s index c5ebfc66a69..515541470ba 100644 --- a/asm/dolphin/os/OS/OSInit.s +++ b/asm/dolphin/os/OS/OSInit.s @@ -15,7 +15,7 @@ lbl_80339F60: /* 80339F94 38 00 00 01 */ li r0, 1 /* 80339F98 90 0D 90 A0 */ stw r0, AreWeInitialized(r13) /* 80339F9C 48 00 87 81 */ bl __OSGetSystemTime -/* 80339FA0 90 8D 90 B4 */ stw r4, data_80451634(r13) +/* 80339FA0 90 8D 90 B4 */ stw r4, __OSStartTime+0x4(r13) /* 80339FA4 90 6D 90 B0 */ stw r3, __OSStartTime(r13) /* 80339FA8 48 00 37 4D */ bl OSDisableInterrupts /* 80339FAC 38 7F 00 50 */ addi r3, r31, 0x50 diff --git a/asm/dolphin/os/OS/__DBVECTOR.s b/asm/dolphin/os/OS/__DBVECTOR.s deleted file mode 100644 index 69dc05d3656..00000000000 --- a/asm/dolphin/os/OS/__DBVECTOR.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8033A770: -/* 8033A770 60 00 00 00 */ nop -/* 8033A774 7C 60 00 A6 */ mfmsr r3 -/* 8033A778 60 63 00 30 */ ori r3, r3, 0x30 -/* 8033A77C 7C 7B 03 A6 */ mtspr 0x1b, r3 diff --git a/asm/dolphin/os/OS/__OSDBIntegrator.s b/asm/dolphin/os/OS/__OSDBIntegrator.s deleted file mode 100644 index fbf92332a20..00000000000 --- a/asm/dolphin/os/OS/__OSDBIntegrator.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8033A6C0: -/* 8033A6C0 38 A0 00 40 */ li r5, 0x40 -/* 8033A6C4 7C 68 02 A6 */ mflr r3 -/* 8033A6C8 90 65 00 0C */ stw r3, 0xc(r5) -/* 8033A6CC 80 65 00 08 */ lwz r3, 8(r5) -/* 8033A6D0 64 63 80 00 */ oris r3, r3, 0x8000 -/* 8033A6D4 7C 68 03 A6 */ mtlr r3 -/* 8033A6D8 38 60 00 30 */ li r3, 0x30 -/* 8033A6DC 7C 60 01 24 */ mtmsr r3 -/* 8033A6E0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/__OSDBJump.s b/asm/dolphin/os/OS/__OSDBJump.s deleted file mode 100644 index 1416fd73ed0..00000000000 --- a/asm/dolphin/os/OS/__OSDBJump.s +++ /dev/null @@ -1,2 +0,0 @@ -lbl_8033A6E4: -/* 8033A6E4 48 00 00 63 */ bla 0x60 diff --git a/asm/dolphin/os/OS/__OSEVEnd.s b/asm/dolphin/os/OS/__OSEVEnd.s deleted file mode 100644 index 40295aac38b..00000000000 --- a/asm/dolphin/os/OS/__OSEVEnd.s +++ /dev/null @@ -1,2 +0,0 @@ -lbl_8033A7B0: -/* 8033A7B0 60 00 00 00 */ nop diff --git a/asm/dolphin/os/OS/__OSEVSetNumber.s b/asm/dolphin/os/OS/__OSEVSetNumber.s deleted file mode 100644 index 0b9de6006ad..00000000000 --- a/asm/dolphin/os/OS/__OSEVSetNumber.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8033A780: -/* 8033A780 38 60 00 00 */ li r3, 0 -/* 8033A784 80 80 00 D4 */ lwz r4, 0xd4(r0) -/* 8033A788 54 A5 07 BD */ rlwinm. r5, r5, 0, 0x1e, 0x1e -/* 8033A78C 40 82 00 14 */ bne lbl_8033A7A0 -/* 8033A790 3C A0 80 34 */ lis r5, OSDefaultExceptionHandler@ha /* 0x8033A7B4@ha */ -/* 8033A794 38 A5 A7 B4 */ addi r5, r5, OSDefaultExceptionHandler@l /* 0x8033A7B4@l */ -/* 8033A798 7C BA 03 A6 */ mtspr 0x1a, r5 -/* 8033A79C 4C 00 00 64 */ rfi -lbl_8033A7A0: -/* 8033A7A0 54 65 15 BA */ rlwinm r5, r3, 2, 0x16, 0x1d -/* 8033A7A4 80 A5 30 00 */ lwz r5, 0x3000(r5) -/* 8033A7A8 7C BA 03 A6 */ mtspr 0x1a, r5 -/* 8033A7AC 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OS/__OSFPRInit.s b/asm/dolphin/os/OS/__OSFPRInit.s deleted file mode 100644 index c6a09e80373..00000000000 --- a/asm/dolphin/os/OS/__OSFPRInit.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_80339DD4: -/* 80339DD4 7C 60 00 A6 */ mfmsr r3 -/* 80339DD8 60 63 20 00 */ ori r3, r3, 0x2000 -/* 80339DDC 7C 60 01 24 */ mtmsr r3 -/* 80339DE0 7C 78 E2 A6 */ mfspr r3, 0x398 -/* 80339DE4 54 63 1F FF */ rlwinm. r3, r3, 3, 0x1f, 0x1f -/* 80339DE8 41 82 00 8C */ beq lbl_80339E74 -/* 80339DEC 3C 60 80 45 */ lis r3, ZeroPS@ha /* 0x80451618@ha */ -/* 80339DF0 38 63 16 18 */ addi r3, r3, ZeroPS@l /* 0x80451618@l */ -/* 80339DF4 E0 03 00 00 */ psq_l f0, 0(r3), 0, 0 /* qr0 */ -/* 80339DF8 10 20 00 90 */ ps_mr f1, f0 -/* 80339DFC 10 40 00 90 */ ps_mr f2, f0 -/* 80339E00 10 60 00 90 */ ps_mr f3, f0 -/* 80339E04 10 80 00 90 */ ps_mr f4, f0 -/* 80339E08 10 A0 00 90 */ ps_mr f5, f0 -/* 80339E0C 10 C0 00 90 */ ps_mr f6, f0 -/* 80339E10 10 E0 00 90 */ ps_mr f7, f0 -/* 80339E14 11 00 00 90 */ ps_mr f8, f0 -/* 80339E18 11 20 00 90 */ ps_mr f9, f0 -/* 80339E1C 11 40 00 90 */ ps_mr f10, f0 -/* 80339E20 11 60 00 90 */ ps_mr f11, f0 -/* 80339E24 11 80 00 90 */ ps_mr f12, f0 -/* 80339E28 11 A0 00 90 */ ps_mr f13, f0 -/* 80339E2C 11 C0 00 90 */ ps_mr f14, f0 -/* 80339E30 11 E0 00 90 */ ps_mr f15, f0 -/* 80339E34 12 00 00 90 */ ps_mr f16, f0 -/* 80339E38 12 20 00 90 */ ps_mr f17, f0 -/* 80339E3C 12 40 00 90 */ ps_mr f18, f0 -/* 80339E40 12 60 00 90 */ ps_mr f19, f0 -/* 80339E44 12 80 00 90 */ ps_mr f20, f0 -/* 80339E48 12 A0 00 90 */ ps_mr f21, f0 -/* 80339E4C 12 C0 00 90 */ ps_mr f22, f0 -/* 80339E50 12 E0 00 90 */ ps_mr f23, f0 -/* 80339E54 13 00 00 90 */ ps_mr f24, f0 -/* 80339E58 13 20 00 90 */ ps_mr f25, f0 -/* 80339E5C 13 40 00 90 */ ps_mr f26, f0 -/* 80339E60 13 60 00 90 */ ps_mr f27, f0 -/* 80339E64 13 80 00 90 */ ps_mr f28, f0 -/* 80339E68 13 A0 00 90 */ ps_mr f29, f0 -/* 80339E6C 13 C0 00 90 */ ps_mr f30, f0 -/* 80339E70 13 E0 00 90 */ ps_mr f31, f0 -lbl_80339E74: -/* 80339E74 C8 0D 90 90 */ lfd f0, ZeroF(r13) -/* 80339E78 FC 20 00 90 */ fmr f1, f0 -/* 80339E7C FC 40 00 90 */ fmr f2, f0 -/* 80339E80 FC 60 00 90 */ fmr f3, f0 -/* 80339E84 FC 80 00 90 */ fmr f4, f0 -/* 80339E88 FC A0 00 90 */ fmr f5, f0 -/* 80339E8C FC C0 00 90 */ fmr f6, f0 -/* 80339E90 FC E0 00 90 */ fmr f7, f0 -/* 80339E94 FD 00 00 90 */ fmr f8, f0 -/* 80339E98 FD 20 00 90 */ fmr f9, f0 -/* 80339E9C FD 40 00 90 */ fmr f10, f0 -/* 80339EA0 FD 60 00 90 */ fmr f11, f0 -/* 80339EA4 FD 80 00 90 */ fmr f12, f0 -/* 80339EA8 FD A0 00 90 */ fmr f13, f0 -/* 80339EAC FD C0 00 90 */ fmr f14, f0 -/* 80339EB0 FD E0 00 90 */ fmr f15, f0 -/* 80339EB4 FE 00 00 90 */ fmr f16, f0 -/* 80339EB8 FE 20 00 90 */ fmr f17, f0 -/* 80339EBC FE 40 00 90 */ fmr f18, f0 -/* 80339EC0 FE 60 00 90 */ fmr f19, f0 -/* 80339EC4 FE 80 00 90 */ fmr f20, f0 -/* 80339EC8 FE A0 00 90 */ fmr f21, f0 -/* 80339ECC FE C0 00 90 */ fmr f22, f0 -/* 80339ED0 FE E0 00 90 */ fmr f23, f0 -/* 80339ED4 FF 00 00 90 */ fmr f24, f0 -/* 80339ED8 FF 20 00 90 */ fmr f25, f0 -/* 80339EDC FF 40 00 90 */ fmr f26, f0 -/* 80339EE0 FF 60 00 90 */ fmr f27, f0 -/* 80339EE4 FF 80 00 90 */ fmr f28, f0 -/* 80339EE8 FF A0 00 90 */ fmr f29, f0 -/* 80339EEC FF C0 00 90 */ fmr f30, f0 -/* 80339EF0 FF E0 00 90 */ fmr f31, f0 -/* 80339EF4 FD FE 05 8E */ mtfsf 0xff, f0 -/* 80339EF8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/__OSGetExceptionHandler.s b/asm/dolphin/os/OS/__OSGetExceptionHandler.s deleted file mode 100644 index 9c9bfc0579c..00000000000 --- a/asm/dolphin/os/OS/__OSGetExceptionHandler.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033A704: -/* 8033A704 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8033A708 80 6D 90 A4 */ lwz r3, OSExceptionTable(r13) -/* 8033A70C 54 00 10 3A */ slwi r0, r0, 2 -/* 8033A710 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8033A714 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/__OSPSInit.s b/asm/dolphin/os/OS/__OSPSInit.s deleted file mode 100644 index 8b528b33057..00000000000 --- a/asm/dolphin/os/OS/__OSPSInit.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8033A80C: -/* 8033A80C 7C 08 02 A6 */ mflr r0 -/* 8033A810 90 01 00 04 */ stw r0, 4(r1) -/* 8033A814 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033A818 4B FF F5 75 */ bl PPCMfhid2 -/* 8033A81C 64 63 A0 00 */ oris r3, r3, 0xa000 -/* 8033A820 4B FF F5 75 */ bl PPCMthid2 -/* 8033A824 48 00 0E A1 */ bl ICFlashInvalidate -/* 8033A828 7C 00 04 AC */ sync -/* 8033A82C 38 60 00 00 */ li r3, 0 -/* 8033A830 7C 70 E3 A6 */ mtspr 0x390, r3 -/* 8033A834 7C 71 E3 A6 */ mtspr 0x391, r3 -/* 8033A838 7C 72 E3 A6 */ mtspr 0x392, r3 -/* 8033A83C 7C 73 E3 A6 */ mtspr 0x393, r3 -/* 8033A840 7C 74 E3 A6 */ mtspr 0x394, r3 -/* 8033A844 7C 75 E3 A6 */ mtspr 0x395, r3 -/* 8033A848 7C 76 E3 A6 */ mtspr 0x396, r3 -/* 8033A84C 7C 77 E3 A6 */ mtspr 0x397, r3 -/* 8033A850 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8033A854 38 21 00 08 */ addi r1, r1, 8 -/* 8033A858 7C 08 03 A6 */ mtlr r0 -/* 8033A85C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OS/__OSSetExceptionHandler.s b/asm/dolphin/os/OS/__OSSetExceptionHandler.s deleted file mode 100644 index c9fd6e61c3f..00000000000 --- a/asm/dolphin/os/OS/__OSSetExceptionHandler.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8033A6E8: -/* 8033A6E8 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8033A6EC 80 6D 90 A4 */ lwz r3, OSExceptionTable(r13) -/* 8033A6F0 54 00 10 3A */ slwi r0, r0, 2 -/* 8033A6F4 7C A3 02 14 */ add r5, r3, r0 -/* 8033A6F8 80 65 00 00 */ lwz r3, 0(r5) -/* 8033A6FC 90 85 00 00 */ stw r4, 0(r5) -/* 8033A700 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSAlarm/DecrementerExceptionHandler.s b/asm/dolphin/os/OSAlarm/DecrementerExceptionHandler.s deleted file mode 100644 index 30a713a315d..00000000000 --- a/asm/dolphin/os/OSAlarm/DecrementerExceptionHandler.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_8033AF88: -/* 8033AF88 90 04 00 00 */ stw r0, 0(r4) -/* 8033AF8C 90 24 00 04 */ stw r1, 4(r4) -/* 8033AF90 90 44 00 08 */ stw r2, 8(r4) -/* 8033AF94 BC C4 00 18 */ stmw r6, 0x18(r4) -/* 8033AF98 7C 11 E2 A6 */ mfspr r0, 0x391 -/* 8033AF9C 90 04 01 A8 */ stw r0, 0x1a8(r4) -/* 8033AFA0 7C 12 E2 A6 */ mfspr r0, 0x392 -/* 8033AFA4 90 04 01 AC */ stw r0, 0x1ac(r4) -/* 8033AFA8 7C 13 E2 A6 */ mfspr r0, 0x393 -/* 8033AFAC 90 04 01 B0 */ stw r0, 0x1b0(r4) -/* 8033AFB0 7C 14 E2 A6 */ mfspr r0, 0x394 -/* 8033AFB4 90 04 01 B4 */ stw r0, 0x1b4(r4) -/* 8033AFB8 7C 15 E2 A6 */ mfspr r0, 0x395 -/* 8033AFBC 90 04 01 B8 */ stw r0, 0x1b8(r4) -/* 8033AFC0 7C 16 E2 A6 */ mfspr r0, 0x396 -/* 8033AFC4 90 04 01 BC */ stw r0, 0x1bc(r4) -/* 8033AFC8 7C 17 E2 A6 */ mfspr r0, 0x397 -/* 8033AFCC 90 04 01 C0 */ stw r0, 0x1c0(r4) -/* 8033AFD0 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033AFD4 4B FF FD 84 */ b DecrementerExceptionCallback diff --git a/asm/dolphin/os/OSAlarm/OSCreateAlarm.s b/asm/dolphin/os/OSAlarm/OSCreateAlarm.s deleted file mode 100644 index d58f0eea700..00000000000 --- a/asm/dolphin/os/OSAlarm/OSCreateAlarm.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8033A8F8: -/* 8033A8F8 38 00 00 00 */ li r0, 0 -/* 8033A8FC 90 03 00 00 */ stw r0, 0(r3) -/* 8033A900 90 03 00 04 */ stw r0, 4(r3) -/* 8033A904 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSAlloc/DLInsert.s b/asm/dolphin/os/OSAlloc/DLInsert.s deleted file mode 100644 index 96100b4d68a..00000000000 --- a/asm/dolphin/os/OSAlloc/DLInsert.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_8033B078: -/* 8033B078 38 E3 00 00 */ addi r7, r3, 0 -/* 8033B07C 38 C0 00 00 */ li r6, 0 -/* 8033B080 48 00 00 14 */ b lbl_8033B094 -lbl_8033B084: -/* 8033B084 7C 04 38 40 */ cmplw r4, r7 -/* 8033B088 40 81 00 14 */ ble lbl_8033B09C -/* 8033B08C 7C E6 3B 78 */ mr r6, r7 -/* 8033B090 80 E7 00 04 */ lwz r7, 4(r7) -lbl_8033B094: -/* 8033B094 28 07 00 00 */ cmplwi r7, 0 -/* 8033B098 40 82 FF EC */ bne lbl_8033B084 -lbl_8033B09C: -/* 8033B09C 90 E4 00 04 */ stw r7, 4(r4) -/* 8033B0A0 28 07 00 00 */ cmplwi r7, 0 -/* 8033B0A4 90 C4 00 00 */ stw r6, 0(r4) -/* 8033B0A8 41 82 00 38 */ beq lbl_8033B0E0 -/* 8033B0AC 90 87 00 00 */ stw r4, 0(r7) -/* 8033B0B0 80 A4 00 08 */ lwz r5, 8(r4) -/* 8033B0B4 7C 04 2A 14 */ add r0, r4, r5 -/* 8033B0B8 7C 00 38 40 */ cmplw r0, r7 -/* 8033B0BC 40 82 00 24 */ bne lbl_8033B0E0 -/* 8033B0C0 80 07 00 08 */ lwz r0, 8(r7) -/* 8033B0C4 7C 05 02 14 */ add r0, r5, r0 -/* 8033B0C8 90 04 00 08 */ stw r0, 8(r4) -/* 8033B0CC 80 E7 00 04 */ lwz r7, 4(r7) -/* 8033B0D0 28 07 00 00 */ cmplwi r7, 0 -/* 8033B0D4 90 E4 00 04 */ stw r7, 4(r4) -/* 8033B0D8 41 82 00 08 */ beq lbl_8033B0E0 -/* 8033B0DC 90 87 00 00 */ stw r4, 0(r7) -lbl_8033B0E0: -/* 8033B0E0 28 06 00 00 */ cmplwi r6, 0 -/* 8033B0E4 41 82 00 38 */ beq lbl_8033B11C -/* 8033B0E8 90 86 00 04 */ stw r4, 4(r6) -/* 8033B0EC 80 A6 00 08 */ lwz r5, 8(r6) -/* 8033B0F0 7C 06 2A 14 */ add r0, r6, r5 -/* 8033B0F4 7C 00 20 40 */ cmplw r0, r4 -/* 8033B0F8 4C 82 00 20 */ bnelr -/* 8033B0FC 80 04 00 08 */ lwz r0, 8(r4) -/* 8033B100 28 07 00 00 */ cmplwi r7, 0 -/* 8033B104 7C 05 02 14 */ add r0, r5, r0 -/* 8033B108 90 06 00 08 */ stw r0, 8(r6) -/* 8033B10C 90 E6 00 04 */ stw r7, 4(r6) -/* 8033B110 4D 82 00 20 */ beqlr -/* 8033B114 90 C7 00 00 */ stw r6, 0(r7) -/* 8033B118 4E 80 00 20 */ blr -lbl_8033B11C: -/* 8033B11C 7C 83 23 78 */ mr r3, r4 -/* 8033B120 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSAlloc/OSCreateHeap.s b/asm/dolphin/os/OSAlloc/OSCreateHeap.s deleted file mode 100644 index 5265c93809e..00000000000 --- a/asm/dolphin/os/OSAlloc/OSCreateHeap.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8033B220: -/* 8033B220 80 CD 90 C4 */ lwz r6, NumHeaps(r13) -/* 8033B224 38 03 00 1F */ addi r0, r3, 0x1f -/* 8033B228 80 AD 90 C0 */ lwz r5, HeapArray(r13) -/* 8033B22C 54 07 00 34 */ rlwinm r7, r0, 0, 0, 0x1a -/* 8033B230 2C 06 00 00 */ cmpwi r6, 0 -/* 8033B234 7C C9 03 A6 */ mtctr r6 -/* 8033B238 54 84 00 34 */ rlwinm r4, r4, 0, 0, 0x1a -/* 8033B23C 38 60 00 00 */ li r3, 0 -/* 8033B240 40 81 00 44 */ ble lbl_8033B284 -lbl_8033B244: -/* 8033B244 80 05 00 00 */ lwz r0, 0(r5) -/* 8033B248 2C 00 00 00 */ cmpwi r0, 0 -/* 8033B24C 40 80 00 2C */ bge lbl_8033B278 -/* 8033B250 7C 07 20 50 */ subf r0, r7, r4 -/* 8033B254 90 05 00 00 */ stw r0, 0(r5) -/* 8033B258 38 80 00 00 */ li r4, 0 -/* 8033B25C 90 87 00 00 */ stw r4, 0(r7) -/* 8033B260 90 87 00 04 */ stw r4, 4(r7) -/* 8033B264 80 05 00 00 */ lwz r0, 0(r5) -/* 8033B268 90 07 00 08 */ stw r0, 8(r7) -/* 8033B26C 90 E5 00 04 */ stw r7, 4(r5) -/* 8033B270 90 85 00 08 */ stw r4, 8(r5) -/* 8033B274 4E 80 00 20 */ blr -lbl_8033B278: -/* 8033B278 38 A5 00 0C */ addi r5, r5, 0xc -/* 8033B27C 38 63 00 01 */ addi r3, r3, 1 -/* 8033B280 42 00 FF C4 */ bdnz lbl_8033B244 -lbl_8033B284: -/* 8033B284 38 60 FF FF */ li r3, -1 -/* 8033B288 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSAlloc/OSFreeToHeap.s b/asm/dolphin/os/OSAlloc/OSFreeToHeap.s deleted file mode 100644 index e727d748965..00000000000 --- a/asm/dolphin/os/OSAlloc/OSFreeToHeap.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_8033B124: -/* 8033B124 7C 08 02 A6 */ mflr r0 -/* 8033B128 38 C4 FF E0 */ addi r6, r4, -32 -/* 8033B12C 90 01 00 04 */ stw r0, 4(r1) -/* 8033B130 1C 03 00 0C */ mulli r0, r3, 0xc -/* 8033B134 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8033B138 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8033B13C 80 8D 90 C0 */ lwz r4, HeapArray(r13) -/* 8033B140 80 66 00 04 */ lwz r3, 4(r6) -/* 8033B144 7F E4 02 14 */ add r31, r4, r0 -/* 8033B148 28 03 00 00 */ cmplwi r3, 0 -/* 8033B14C 80 BF 00 08 */ lwz r5, 8(r31) -/* 8033B150 7C C4 33 78 */ mr r4, r6 -/* 8033B154 41 82 00 0C */ beq lbl_8033B160 -/* 8033B158 80 04 00 00 */ lwz r0, 0(r4) -/* 8033B15C 90 03 00 00 */ stw r0, 0(r3) -lbl_8033B160: -/* 8033B160 80 64 00 00 */ lwz r3, 0(r4) -/* 8033B164 28 03 00 00 */ cmplwi r3, 0 -/* 8033B168 40 82 00 0C */ bne lbl_8033B174 -/* 8033B16C 80 A4 00 04 */ lwz r5, 4(r4) -/* 8033B170 48 00 00 0C */ b lbl_8033B17C -lbl_8033B174: -/* 8033B174 80 04 00 04 */ lwz r0, 4(r4) -/* 8033B178 90 03 00 04 */ stw r0, 4(r3) -lbl_8033B17C: -/* 8033B17C 90 BF 00 08 */ stw r5, 8(r31) -/* 8033B180 80 7F 00 04 */ lwz r3, 4(r31) -/* 8033B184 4B FF FE F5 */ bl DLInsert -/* 8033B188 90 7F 00 04 */ stw r3, 4(r31) -/* 8033B18C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8033B190 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8033B194 38 21 00 18 */ addi r1, r1, 0x18 -/* 8033B198 7C 08 03 A6 */ mtlr r0 -/* 8033B19C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSAlloc/OSInitAlloc.s b/asm/dolphin/os/OSAlloc/OSInitAlloc.s deleted file mode 100644 index deb3aff0d8a..00000000000 --- a/asm/dolphin/os/OSAlloc/OSInitAlloc.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8033B1B0: -/* 8033B1B0 1C E5 00 0C */ mulli r7, r5, 0xc -/* 8033B1B4 90 6D 90 C0 */ stw r3, HeapArray(r13) -/* 8033B1B8 90 AD 90 C4 */ stw r5, NumHeaps(r13) -/* 8033B1BC 38 C0 00 00 */ li r6, 0 -/* 8033B1C0 38 66 00 00 */ addi r3, r6, 0 -/* 8033B1C4 39 00 00 00 */ li r8, 0 -/* 8033B1C8 38 A0 FF FF */ li r5, -1 -/* 8033B1CC 48 00 00 20 */ b lbl_8033B1EC -lbl_8033B1D0: -/* 8033B1D0 80 0D 90 C0 */ lwz r0, HeapArray(r13) -/* 8033B1D4 39 08 00 01 */ addi r8, r8, 1 -/* 8033B1D8 7D 20 32 14 */ add r9, r0, r6 -/* 8033B1DC 90 A9 00 00 */ stw r5, 0(r9) -/* 8033B1E0 38 C6 00 0C */ addi r6, r6, 0xc -/* 8033B1E4 90 69 00 08 */ stw r3, 8(r9) -/* 8033B1E8 90 69 00 04 */ stw r3, 4(r9) -lbl_8033B1EC: -/* 8033B1EC 80 0D 90 C4 */ lwz r0, NumHeaps(r13) -/* 8033B1F0 7C 08 00 00 */ cmpw r8, r0 -/* 8033B1F4 41 80 FF DC */ blt lbl_8033B1D0 -/* 8033B1F8 80 6D 90 C0 */ lwz r3, HeapArray(r13) -/* 8033B1FC 54 80 00 34 */ rlwinm r0, r4, 0, 0, 0x1a -/* 8033B200 38 80 FF FF */ li r4, -1 -/* 8033B204 90 0D 90 CC */ stw r0, ArenaEnd(r13) -/* 8033B208 7C 63 3A 14 */ add r3, r3, r7 -/* 8033B20C 38 03 00 1F */ addi r0, r3, 0x1f -/* 8033B210 90 8D 84 10 */ stw r4, __OSCurrHeap(r13) -/* 8033B214 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a -/* 8033B218 90 6D 90 C8 */ stw r3, ArenaStart(r13) -/* 8033B21C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSAlloc/OSSetCurrentHeap.s b/asm/dolphin/os/OSAlloc/OSSetCurrentHeap.s deleted file mode 100644 index b7da921e65e..00000000000 --- a/asm/dolphin/os/OSAlloc/OSSetCurrentHeap.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8033B1A0: -/* 8033B1A0 80 0D 84 10 */ lwz r0, __OSCurrHeap(r13) -/* 8033B1A4 90 6D 84 10 */ stw r3, __OSCurrHeap(r13) -/* 8033B1A8 7C 03 03 78 */ mr r3, r0 -/* 8033B1AC 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSArena/OSAllocFromArenaLo.s b/asm/dolphin/os/OSArena/OSAllocFromArenaLo.s deleted file mode 100644 index 8491455e9b2..00000000000 --- a/asm/dolphin/os/OSArena/OSAllocFromArenaLo.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8033B2AC: -/* 8033B2AC 80 0D 84 18 */ lwz r0, __OSArenaLo(r13) -/* 8033B2B0 38 84 FF FF */ addi r4, r4, -1 -/* 8033B2B4 7C 85 20 F8 */ nor r5, r4, r4 -/* 8033B2B8 7C 00 22 14 */ add r0, r0, r4 -/* 8033B2BC 7C A6 00 38 */ and r6, r5, r0 -/* 8033B2C0 7C 06 1A 14 */ add r0, r6, r3 -/* 8033B2C4 7C 00 22 14 */ add r0, r0, r4 -/* 8033B2C8 7C A0 00 38 */ and r0, r5, r0 -/* 8033B2CC 90 0D 84 18 */ stw r0, __OSArenaLo(r13) -/* 8033B2D0 7C C3 33 78 */ mr r3, r6 -/* 8033B2D4 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSArena/OSSetArenaHi.s b/asm/dolphin/os/OSArena/OSSetArenaHi.s deleted file mode 100644 index 51b9058a863..00000000000 --- a/asm/dolphin/os/OSArena/OSSetArenaHi.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8033B29C: -/* 8033B29C 90 6D 90 D0 */ stw r3, __OSArenaHi(r13) -/* 8033B2A0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSArena/OSSetArenaLo.s b/asm/dolphin/os/OSArena/OSSetArenaLo.s deleted file mode 100644 index 409e7a19201..00000000000 --- a/asm/dolphin/os/OSArena/OSSetArenaLo.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8033B2A4: -/* 8033B2A4 90 6D 84 18 */ stw r3, __OSArenaLo(r13) -/* 8033B2A8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCEnable.s b/asm/dolphin/os/OSCache/DCEnable.s deleted file mode 100644 index f135bf6d094..00000000000 --- a/asm/dolphin/os/OSCache/DCEnable.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033B56C: -/* 8033B56C 7C 00 04 AC */ sync -/* 8033B570 7C 70 FA A6 */ mfspr r3, 0x3f0 -/* 8033B574 60 63 40 00 */ ori r3, r3, 0x4000 -/* 8033B578 7C 70 FB A6 */ mtspr 0x3f0, r3 -/* 8033B57C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCFlushRange.s b/asm/dolphin/os/OSCache/DCFlushRange.s deleted file mode 100644 index 9070918a353..00000000000 --- a/asm/dolphin/os/OSCache/DCFlushRange.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8033B5AC: -/* 8033B5AC 28 04 00 00 */ cmplwi r4, 0 -/* 8033B5B0 4C 81 00 20 */ blelr -/* 8033B5B4 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B5B8 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B5BC 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B5C0 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B5C4 7C 89 03 A6 */ mtctr r4 -lbl_8033B5C8: -/* 8033B5C8 7C 00 18 AC */ dcbf 0, r3 -/* 8033B5CC 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B5D0 42 00 FF F8 */ bdnz lbl_8033B5C8 -/* 8033B5D4 44 00 00 02 */ sc -/* 8033B5D8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCFlushRangeNoSync.s b/asm/dolphin/os/OSCache/DCFlushRangeNoSync.s deleted file mode 100644 index f4985be9e54..00000000000 --- a/asm/dolphin/os/OSCache/DCFlushRangeNoSync.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8033B60C: -/* 8033B60C 28 04 00 00 */ cmplwi r4, 0 -/* 8033B610 4C 81 00 20 */ blelr -/* 8033B614 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B618 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B61C 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B620 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B624 7C 89 03 A6 */ mtctr r4 -lbl_8033B628: -/* 8033B628 7C 00 18 AC */ dcbf 0, r3 -/* 8033B62C 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B630 42 00 FF F8 */ bdnz lbl_8033B628 -/* 8033B634 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCInvalidateRange.s b/asm/dolphin/os/OSCache/DCInvalidateRange.s deleted file mode 100644 index 2a7679f837e..00000000000 --- a/asm/dolphin/os/OSCache/DCInvalidateRange.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8033B580: -/* 8033B580 28 04 00 00 */ cmplwi r4, 0 -/* 8033B584 4C 81 00 20 */ blelr -/* 8033B588 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B58C 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B590 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B594 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B598 7C 89 03 A6 */ mtctr r4 -lbl_8033B59C: -/* 8033B59C 7C 00 1B AC */ dcbi 0, r3 -/* 8033B5A0 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B5A4 42 00 FF F8 */ bdnz lbl_8033B59C -/* 8033B5A8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCStoreRange.s b/asm/dolphin/os/OSCache/DCStoreRange.s deleted file mode 100644 index efc793404aa..00000000000 --- a/asm/dolphin/os/OSCache/DCStoreRange.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8033B5DC: -/* 8033B5DC 28 04 00 00 */ cmplwi r4, 0 -/* 8033B5E0 4C 81 00 20 */ blelr -/* 8033B5E4 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B5E8 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B5EC 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B5F0 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B5F4 7C 89 03 A6 */ mtctr r4 -lbl_8033B5F8: -/* 8033B5F8 7C 00 18 6C */ dcbst 0, r3 -/* 8033B5FC 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B600 42 00 FF F8 */ bdnz lbl_8033B5F8 -/* 8033B604 44 00 00 02 */ sc -/* 8033B608 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCStoreRangeNoSync.s b/asm/dolphin/os/OSCache/DCStoreRangeNoSync.s deleted file mode 100644 index c5a116cc1f0..00000000000 --- a/asm/dolphin/os/OSCache/DCStoreRangeNoSync.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8033B638: -/* 8033B638 28 04 00 00 */ cmplwi r4, 0 -/* 8033B63C 4C 81 00 20 */ blelr -/* 8033B640 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B644 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B648 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B64C 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B650 7C 89 03 A6 */ mtctr r4 -lbl_8033B654: -/* 8033B654 7C 00 18 6C */ dcbst 0, r3 -/* 8033B658 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B65C 42 00 FF F8 */ bdnz lbl_8033B654 -/* 8033B660 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DCZeroRange.s b/asm/dolphin/os/OSCache/DCZeroRange.s deleted file mode 100644 index a02abdc0b6a..00000000000 --- a/asm/dolphin/os/OSCache/DCZeroRange.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8033B664: -/* 8033B664 28 04 00 00 */ cmplwi r4, 0 -/* 8033B668 4C 81 00 20 */ blelr -/* 8033B66C 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B670 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B674 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B678 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B67C 7C 89 03 A6 */ mtctr r4 -lbl_8033B680: -/* 8033B680 7C 00 1F EC */ dcbz 0, r3 -/* 8033B684 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B688 42 00 FF F8 */ bdnz lbl_8033B680 -/* 8033B68C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/ICEnable.s b/asm/dolphin/os/OSCache/ICEnable.s deleted file mode 100644 index 1ad62485e11..00000000000 --- a/asm/dolphin/os/OSCache/ICEnable.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033B6D4: -/* 8033B6D4 4C 00 01 2C */ isync -/* 8033B6D8 7C 70 FA A6 */ mfspr r3, 0x3f0 -/* 8033B6DC 60 63 80 00 */ ori r3, r3, 0x8000 -/* 8033B6E0 7C 70 FB A6 */ mtspr 0x3f0, r3 -/* 8033B6E4 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/ICFlashInvalidate.s b/asm/dolphin/os/OSCache/ICFlashInvalidate.s deleted file mode 100644 index a1a272bec63..00000000000 --- a/asm/dolphin/os/OSCache/ICFlashInvalidate.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8033B6C4: -/* 8033B6C4 7C 70 FA A6 */ mfspr r3, 0x3f0 -/* 8033B6C8 60 63 08 00 */ ori r3, r3, 0x800 -/* 8033B6CC 7C 70 FB A6 */ mtspr 0x3f0, r3 -/* 8033B6D0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/ICInvalidateRange.s b/asm/dolphin/os/OSCache/ICInvalidateRange.s deleted file mode 100644 index b02400d3c5e..00000000000 --- a/asm/dolphin/os/OSCache/ICInvalidateRange.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8033B690: -/* 8033B690 28 04 00 00 */ cmplwi r4, 0 -/* 8033B694 4C 81 00 20 */ blelr -/* 8033B698 54 65 06 FE */ clrlwi r5, r3, 0x1b -/* 8033B69C 7C 84 2A 14 */ add r4, r4, r5 -/* 8033B6A0 38 84 00 1F */ addi r4, r4, 0x1f -/* 8033B6A4 54 84 D9 7E */ srwi r4, r4, 5 -/* 8033B6A8 7C 89 03 A6 */ mtctr r4 -lbl_8033B6AC: -/* 8033B6AC 7C 00 1F AC */ icbi 0, r3 -/* 8033B6B0 38 63 00 20 */ addi r3, r3, 0x20 -/* 8033B6B4 42 00 FF F8 */ bdnz lbl_8033B6AC -/* 8033B6B8 7C 00 04 AC */ sync -/* 8033B6BC 4C 00 01 2C */ isync -/* 8033B6C0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/LCDisable.s b/asm/dolphin/os/OSCache/LCDisable.s deleted file mode 100644 index 657b394bba3..00000000000 --- a/asm/dolphin/os/OSCache/LCDisable.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8033B7EC: -/* 8033B7EC 3C 60 E0 00 */ lis r3, 0xE000 /* 0xE0000020@ha */ -/* 8033B7F0 38 80 02 00 */ li r4, 0x200 -/* 8033B7F4 7C 89 03 A6 */ mtctr r4 -lbl_8033B7F8: -/* 8033B7F8 7C 00 1B AC */ dcbi 0, r3 -/* 8033B7FC 38 63 00 20 */ addi r3, r3, 0x0020 /* 0xE0000020@l */ -/* 8033B800 42 00 FF F8 */ bdnz lbl_8033B7F8 -/* 8033B804 7C 98 E2 A6 */ mfspr r4, 0x398 -/* 8033B808 54 84 01 04 */ rlwinm r4, r4, 0, 4, 2 -/* 8033B80C 7C 98 E3 A6 */ mtspr 0x398, r4 -/* 8033B810 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/LCEnable.s b/asm/dolphin/os/OSCache/LCEnable.s deleted file mode 100644 index 0a9ea723043..00000000000 --- a/asm/dolphin/os/OSCache/LCEnable.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8033B7B4: -/* 8033B7B4 7C 08 02 A6 */ mflr r0 -/* 8033B7B8 90 01 00 04 */ stw r0, 4(r1) -/* 8033B7BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8033B7C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8033B7C4 48 00 1F 31 */ bl OSDisableInterrupts -/* 8033B7C8 7C 7F 1B 78 */ mr r31, r3 -/* 8033B7CC 4B FF FF 1D */ bl __LCEnable -/* 8033B7D0 7F E3 FB 78 */ mr r3, r31 -/* 8033B7D4 48 00 1F 49 */ bl OSRestoreInterrupts -/* 8033B7D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8033B7DC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8033B7E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8033B7E4 7C 08 03 A6 */ mtlr r0 -/* 8033B7E8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/LCQueueWait.s b/asm/dolphin/os/OSCache/LCQueueWait.s deleted file mode 100644 index a506680ac3f..00000000000 --- a/asm/dolphin/os/OSCache/LCQueueWait.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033B8E4: -/* 8033B8E4 7C 98 E2 A6 */ mfspr r4, 0x398 -/* 8033B8E8 54 84 47 3E */ rlwinm r4, r4, 8, 0x1c, 0x1f -/* 8033B8EC 7C 04 18 00 */ cmpw r4, r3 -/* 8033B8F0 41 81 FF F4 */ bgt LCQueueWait -/* 8033B8F4 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/LCStoreBlocks.s b/asm/dolphin/os/OSCache/LCStoreBlocks.s deleted file mode 100644 index 7fd5855de31..00000000000 --- a/asm/dolphin/os/OSCache/LCStoreBlocks.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8033B814: -/* 8033B814 54 A6 F6 FE */ rlwinm r6, r5, 0x1e, 0x1b, 0x1f -/* 8033B818 54 63 01 3E */ clrlwi r3, r3, 4 -/* 8033B81C 7C C6 1B 78 */ or r6, r6, r3 -/* 8033B820 7C DA E3 A6 */ mtspr 0x39a, r6 -/* 8033B824 54 A6 17 3A */ rlwinm r6, r5, 2, 0x1c, 0x1d -/* 8033B828 7C C6 23 78 */ or r6, r6, r4 -/* 8033B82C 60 C6 00 02 */ ori r6, r6, 2 -/* 8033B830 7C DB E3 A6 */ mtspr 0x39b, r6 -/* 8033B834 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/__LCEnable.s b/asm/dolphin/os/OSCache/__LCEnable.s deleted file mode 100644 index 452f1357f11..00000000000 --- a/asm/dolphin/os/OSCache/__LCEnable.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_8033B6E8: -/* 8033B6E8 7C A0 00 A6 */ mfmsr r5 -/* 8033B6EC 60 A5 10 00 */ ori r5, r5, 0x1000 -/* 8033B6F0 7C A0 01 24 */ mtmsr r5 -/* 8033B6F4 3C 60 80 00 */ lis r3, 0x8000 /* 0x80000020@ha */ -/* 8033B6F8 38 80 04 00 */ li r4, 0x400 -/* 8033B6FC 7C 89 03 A6 */ mtctr r4 -lbl_8033B700: -/* 8033B700 7C 00 1A 2C */ dcbt 0, r3 -/* 8033B704 7C 00 18 6C */ dcbst 0, r3 -/* 8033B708 38 63 00 20 */ addi r3, r3, 0x0020 /* 0x80000020@l */ -/* 8033B70C 42 00 FF F4 */ bdnz lbl_8033B700 -/* 8033B710 7C 98 E2 A6 */ mfspr r4, 0x398 -/* 8033B714 64 84 10 0F */ oris r4, r4, 0x100f -/* 8033B718 7C 98 E3 A6 */ mtspr 0x398, r4 -/* 8033B71C 60 00 00 00 */ nop -/* 8033B720 60 00 00 00 */ nop -/* 8033B724 60 00 00 00 */ nop -/* 8033B728 60 00 00 00 */ nop -/* 8033B72C 60 00 00 00 */ nop -/* 8033B730 60 00 00 00 */ nop -/* 8033B734 60 00 00 00 */ nop -/* 8033B738 60 00 00 00 */ nop -/* 8033B73C 60 00 00 00 */ nop -/* 8033B740 60 00 00 00 */ nop -/* 8033B744 60 00 00 00 */ nop -/* 8033B748 60 00 00 00 */ nop -/* 8033B74C 3C 60 E0 00 */ lis r3, 0xE000 /* 0xE0000002@h */ -/* 8033B750 60 63 00 02 */ ori r3, r3, 0x0002 /* 0xE0000002@l */ -/* 8033B754 7C 7F 83 A6 */ mtdbatl 3, r3 -/* 8033B758 60 63 01 FE */ ori r3, r3, 0x1fe -/* 8033B75C 7C 7E 83 A6 */ mtdbatu 3, r3 -/* 8033B760 4C 00 01 2C */ isync -/* 8033B764 3C 60 E0 00 */ lis r3, 0xE000 /* 0xE0000020@ha */ -/* 8033B768 38 C0 02 00 */ li r6, 0x200 -/* 8033B76C 7C C9 03 A6 */ mtctr r6 -/* 8033B770 38 C0 00 00 */ li r6, 0 -lbl_8033B774: -/* 8033B774 10 06 1F EC */ dcbz_l r6, r3 -/* 8033B778 38 63 00 20 */ addi r3, r3, 0x0020 /* 0xE0000020@l */ -/* 8033B77C 42 00 FF F8 */ bdnz lbl_8033B774 -/* 8033B780 60 00 00 00 */ nop -/* 8033B784 60 00 00 00 */ nop -/* 8033B788 60 00 00 00 */ nop -/* 8033B78C 60 00 00 00 */ nop -/* 8033B790 60 00 00 00 */ nop -/* 8033B794 60 00 00 00 */ nop -/* 8033B798 60 00 00 00 */ nop -/* 8033B79C 60 00 00 00 */ nop -/* 8033B7A0 60 00 00 00 */ nop -/* 8033B7A4 60 00 00 00 */ nop -/* 8033B7A8 60 00 00 00 */ nop -/* 8033B7AC 60 00 00 00 */ nop -/* 8033B7B0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSClearContext.s b/asm/dolphin/os/OSContext/OSClearContext.s deleted file mode 100644 index 5a414866201..00000000000 --- a/asm/dolphin/os/OSContext/OSClearContext.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8033C000: -/* 8033C000 38 A0 00 00 */ li r5, 0 -/* 8033C004 B0 A3 01 A0 */ sth r5, 0x1a0(r3) -/* 8033C008 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000D8@ha */ -/* 8033C00C B0 A3 01 A2 */ sth r5, 0x1a2(r3) -/* 8033C010 80 04 00 D8 */ lwz r0, 0x00D8(r4) /* 0x800000D8@l */ -/* 8033C014 7C 03 00 40 */ cmplw r3, r0 -/* 8033C018 40 82 00 08 */ bne lbl_8033C020 -/* 8033C01C 90 A4 00 D8 */ stw r5, 0xd8(r4) -lbl_8033C020: -/* 8033C020 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSFillFPUContext.s b/asm/dolphin/os/OSContext/OSFillFPUContext.s deleted file mode 100644 index 8b1a145ab03..00000000000 --- a/asm/dolphin/os/OSContext/OSFillFPUContext.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_8033C454: -/* 8033C454 7C A0 00 A6 */ mfmsr r5 -/* 8033C458 60 A5 20 00 */ ori r5, r5, 0x2000 -/* 8033C45C 7C A0 01 24 */ mtmsr r5 -/* 8033C460 4C 00 01 2C */ isync -/* 8033C464 D8 03 00 90 */ stfd f0, 0x90(r3) -/* 8033C468 D8 23 00 98 */ stfd f1, 0x98(r3) -/* 8033C46C D8 43 00 A0 */ stfd f2, 0xa0(r3) -/* 8033C470 D8 63 00 A8 */ stfd f3, 0xa8(r3) -/* 8033C474 D8 83 00 B0 */ stfd f4, 0xb0(r3) -/* 8033C478 D8 A3 00 B8 */ stfd f5, 0xb8(r3) -/* 8033C47C D8 C3 00 C0 */ stfd f6, 0xc0(r3) -/* 8033C480 D8 E3 00 C8 */ stfd f7, 0xc8(r3) -/* 8033C484 D9 03 00 D0 */ stfd f8, 0xd0(r3) -/* 8033C488 D9 23 00 D8 */ stfd f9, 0xd8(r3) -/* 8033C48C D9 43 00 E0 */ stfd f10, 0xe0(r3) -/* 8033C490 D9 63 00 E8 */ stfd f11, 0xe8(r3) -/* 8033C494 D9 83 00 F0 */ stfd f12, 0xf0(r3) -/* 8033C498 D9 A3 00 F8 */ stfd f13, 0xf8(r3) -/* 8033C49C D9 C3 01 00 */ stfd f14, 0x100(r3) -/* 8033C4A0 D9 E3 01 08 */ stfd f15, 0x108(r3) -/* 8033C4A4 DA 03 01 10 */ stfd f16, 0x110(r3) -/* 8033C4A8 DA 23 01 18 */ stfd f17, 0x118(r3) -/* 8033C4AC DA 43 01 20 */ stfd f18, 0x120(r3) -/* 8033C4B0 DA 63 01 28 */ stfd f19, 0x128(r3) -/* 8033C4B4 DA 83 01 30 */ stfd f20, 0x130(r3) -/* 8033C4B8 DA A3 01 38 */ stfd f21, 0x138(r3) -/* 8033C4BC DA C3 01 40 */ stfd f22, 0x140(r3) -/* 8033C4C0 DA E3 01 48 */ stfd f23, 0x148(r3) -/* 8033C4C4 DB 03 01 50 */ stfd f24, 0x150(r3) -/* 8033C4C8 DB 23 01 58 */ stfd f25, 0x158(r3) -/* 8033C4CC DB 43 01 60 */ stfd f26, 0x160(r3) -/* 8033C4D0 DB 63 01 68 */ stfd f27, 0x168(r3) -/* 8033C4D4 DB 83 01 70 */ stfd f28, 0x170(r3) -/* 8033C4D8 DB A3 01 78 */ stfd f29, 0x178(r3) -/* 8033C4DC DB C3 01 80 */ stfd f30, 0x180(r3) -/* 8033C4E0 DB E3 01 88 */ stfd f31, 0x188(r3) -/* 8033C4E4 FC 00 04 8E */ mffs f0 -/* 8033C4E8 D8 03 01 90 */ stfd f0, 0x190(r3) -/* 8033C4EC C8 03 00 90 */ lfd f0, 0x90(r3) -/* 8033C4F0 7C B8 E2 A6 */ mfspr r5, 0x398 -/* 8033C4F4 54 A5 1F FF */ rlwinm. r5, r5, 3, 0x1f, 0x1f -/* 8033C4F8 41 82 00 84 */ beq lbl_8033C57C -/* 8033C4FC F0 03 01 C8 */ psq_st f0, 456(r3), 0, 0 /* qr0 */ -/* 8033C500 F0 23 01 D0 */ psq_st f1, 464(r3), 0, 0 /* qr0 */ -/* 8033C504 F0 43 01 D8 */ psq_st f2, 472(r3), 0, 0 /* qr0 */ -/* 8033C508 F0 63 01 E0 */ psq_st f3, 480(r3), 0, 0 /* qr0 */ -/* 8033C50C F0 83 01 E8 */ psq_st f4, 488(r3), 0, 0 /* qr0 */ -/* 8033C510 F0 A3 01 F0 */ psq_st f5, 496(r3), 0, 0 /* qr0 */ -/* 8033C514 F0 C3 01 F8 */ psq_st f6, 504(r3), 0, 0 /* qr0 */ -/* 8033C518 F0 E3 02 00 */ psq_st f7, 512(r3), 0, 0 /* qr0 */ -/* 8033C51C F1 03 02 08 */ psq_st f8, 520(r3), 0, 0 /* qr0 */ -/* 8033C520 F1 23 02 10 */ psq_st f9, 528(r3), 0, 0 /* qr0 */ -/* 8033C524 F1 43 02 18 */ psq_st f10, 536(r3), 0, 0 /* qr0 */ -/* 8033C528 F1 63 02 20 */ psq_st f11, 544(r3), 0, 0 /* qr0 */ -/* 8033C52C F1 83 02 28 */ psq_st f12, 552(r3), 0, 0 /* qr0 */ -/* 8033C530 F1 A3 02 30 */ psq_st f13, 560(r3), 0, 0 /* qr0 */ -/* 8033C534 F1 C3 02 38 */ psq_st f14, 568(r3), 0, 0 /* qr0 */ -/* 8033C538 F1 E3 02 40 */ psq_st f15, 576(r3), 0, 0 /* qr0 */ -/* 8033C53C F2 03 02 48 */ psq_st f16, 584(r3), 0, 0 /* qr0 */ -/* 8033C540 F2 23 02 50 */ psq_st f17, 592(r3), 0, 0 /* qr0 */ -/* 8033C544 F2 43 02 58 */ psq_st f18, 600(r3), 0, 0 /* qr0 */ -/* 8033C548 F2 63 02 60 */ psq_st f19, 608(r3), 0, 0 /* qr0 */ -/* 8033C54C F2 83 02 68 */ psq_st f20, 616(r3), 0, 0 /* qr0 */ -/* 8033C550 F2 A3 02 70 */ psq_st f21, 624(r3), 0, 0 /* qr0 */ -/* 8033C554 F2 C3 02 78 */ psq_st f22, 632(r3), 0, 0 /* qr0 */ -/* 8033C558 F2 E3 02 80 */ psq_st f23, 640(r3), 0, 0 /* qr0 */ -/* 8033C55C F3 03 02 88 */ psq_st f24, 648(r3), 0, 0 /* qr0 */ -/* 8033C560 F3 23 02 90 */ psq_st f25, 656(r3), 0, 0 /* qr0 */ -/* 8033C564 F3 43 02 98 */ psq_st f26, 664(r3), 0, 0 /* qr0 */ -/* 8033C568 F3 63 02 A0 */ psq_st f27, 672(r3), 0, 0 /* qr0 */ -/* 8033C56C F3 83 02 A8 */ psq_st f28, 680(r3), 0, 0 /* qr0 */ -/* 8033C570 F3 A3 02 B0 */ psq_st f29, 688(r3), 0, 0 /* qr0 */ -/* 8033C574 F3 C3 02 B8 */ psq_st f30, 696(r3), 0, 0 /* qr0 */ -/* 8033C578 F3 E3 02 C0 */ psq_st f31, 704(r3), 0, 0 /* qr0 */ -lbl_8033C57C: -/* 8033C57C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSGetCurrentContext.s b/asm/dolphin/os/OSContext/OSGetCurrentContext.s deleted file mode 100644 index 075d4351204..00000000000 --- a/asm/dolphin/os/OSContext/OSGetCurrentContext.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8033BE94: -/* 8033BE94 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000D4@ha */ -/* 8033BE98 80 63 00 D4 */ lwz r3, 0x00D4(r3) /* 0x800000D4@l */ -/* 8033BE9C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSGetStackPointer.s b/asm/dolphin/os/OSContext/OSGetStackPointer.s deleted file mode 100644 index b6ac84a313b..00000000000 --- a/asm/dolphin/os/OSContext/OSGetStackPointer.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8033BFF8: -/* 8033BFF8 7C 23 0B 78 */ mr r3, r1 -/* 8033BFFC 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSInitContext.s b/asm/dolphin/os/OSContext/OSInitContext.s deleted file mode 100644 index 995cd95f711..00000000000 --- a/asm/dolphin/os/OSContext/OSInitContext.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_8033C024: -/* 8033C024 90 83 01 98 */ stw r4, 0x198(r3) -/* 8033C028 90 A3 00 04 */ stw r5, 4(r3) -/* 8033C02C 39 60 00 00 */ li r11, 0 -/* 8033C030 61 6B 90 32 */ ori r11, r11, 0x9032 -/* 8033C034 91 63 01 9C */ stw r11, 0x19c(r3) -/* 8033C038 38 00 00 00 */ li r0, 0 -/* 8033C03C 90 03 00 80 */ stw r0, 0x80(r3) -/* 8033C040 90 03 00 8C */ stw r0, 0x8c(r3) -/* 8033C044 90 43 00 08 */ stw r2, 8(r3) -/* 8033C048 91 A3 00 34 */ stw r13, 0x34(r3) -/* 8033C04C 90 03 00 0C */ stw r0, 0xc(r3) -/* 8033C050 90 03 00 10 */ stw r0, 0x10(r3) -/* 8033C054 90 03 00 14 */ stw r0, 0x14(r3) -/* 8033C058 90 03 00 18 */ stw r0, 0x18(r3) -/* 8033C05C 90 03 00 1C */ stw r0, 0x1c(r3) -/* 8033C060 90 03 00 20 */ stw r0, 0x20(r3) -/* 8033C064 90 03 00 24 */ stw r0, 0x24(r3) -/* 8033C068 90 03 00 28 */ stw r0, 0x28(r3) -/* 8033C06C 90 03 00 2C */ stw r0, 0x2c(r3) -/* 8033C070 90 03 00 30 */ stw r0, 0x30(r3) -/* 8033C074 90 03 00 38 */ stw r0, 0x38(r3) -/* 8033C078 90 03 00 3C */ stw r0, 0x3c(r3) -/* 8033C07C 90 03 00 40 */ stw r0, 0x40(r3) -/* 8033C080 90 03 00 44 */ stw r0, 0x44(r3) -/* 8033C084 90 03 00 48 */ stw r0, 0x48(r3) -/* 8033C088 90 03 00 4C */ stw r0, 0x4c(r3) -/* 8033C08C 90 03 00 50 */ stw r0, 0x50(r3) -/* 8033C090 90 03 00 54 */ stw r0, 0x54(r3) -/* 8033C094 90 03 00 58 */ stw r0, 0x58(r3) -/* 8033C098 90 03 00 5C */ stw r0, 0x5c(r3) -/* 8033C09C 90 03 00 60 */ stw r0, 0x60(r3) -/* 8033C0A0 90 03 00 64 */ stw r0, 0x64(r3) -/* 8033C0A4 90 03 00 68 */ stw r0, 0x68(r3) -/* 8033C0A8 90 03 00 6C */ stw r0, 0x6c(r3) -/* 8033C0AC 90 03 00 70 */ stw r0, 0x70(r3) -/* 8033C0B0 90 03 00 74 */ stw r0, 0x74(r3) -/* 8033C0B4 90 03 00 78 */ stw r0, 0x78(r3) -/* 8033C0B8 90 03 00 7C */ stw r0, 0x7c(r3) -/* 8033C0BC 90 03 01 A4 */ stw r0, 0x1a4(r3) -/* 8033C0C0 90 03 01 A8 */ stw r0, 0x1a8(r3) -/* 8033C0C4 90 03 01 AC */ stw r0, 0x1ac(r3) -/* 8033C0C8 90 03 01 B0 */ stw r0, 0x1b0(r3) -/* 8033C0CC 90 03 01 B4 */ stw r0, 0x1b4(r3) -/* 8033C0D0 90 03 01 B8 */ stw r0, 0x1b8(r3) -/* 8033C0D4 90 03 01 BC */ stw r0, 0x1bc(r3) -/* 8033C0D8 90 03 01 C0 */ stw r0, 0x1c0(r3) -/* 8033C0DC 4B FF FF 24 */ b OSClearContext diff --git a/asm/dolphin/os/OSContext/OSLoadContext.s b/asm/dolphin/os/OSContext/OSLoadContext.s deleted file mode 100644 index 78a7a791079..00000000000 --- a/asm/dolphin/os/OSContext/OSLoadContext.s +++ /dev/null @@ -1,58 +0,0 @@ -lbl_8033BF20: -/* 8033BF20 3C 80 80 34 */ lis r4, OSDisableInterrupts@ha /* 0x8033D6F4@ha */ -/* 8033BF24 80 C3 01 98 */ lwz r6, 0x198(r3) -/* 8033BF28 38 A4 D6 F4 */ addi r5, r4, OSDisableInterrupts@l /* 0x8033D6F4@l */ -/* 8033BF2C 7C 06 28 40 */ cmplw r6, r5 -/* 8033BF30 40 81 00 18 */ ble lbl_8033BF48 -/* 8033BF34 3C 80 80 34 */ lis r4, __RAS_OSDisableInterrupts_end@ha /* 0x8033D700@ha */ -/* 8033BF38 38 04 D7 00 */ addi r0, r4, __RAS_OSDisableInterrupts_end@l /* 0x8033D700@l */ -/* 8033BF3C 7C 06 00 40 */ cmplw r6, r0 -/* 8033BF40 40 80 00 08 */ bge lbl_8033BF48 -/* 8033BF44 90 A3 01 98 */ stw r5, 0x198(r3) -lbl_8033BF48: -/* 8033BF48 80 03 00 00 */ lwz r0, 0(r3) -/* 8033BF4C 80 23 00 04 */ lwz r1, 4(r3) -/* 8033BF50 80 43 00 08 */ lwz r2, 8(r3) -/* 8033BF54 A0 83 01 A2 */ lhz r4, 0x1a2(r3) -/* 8033BF58 54 85 07 BD */ rlwinm. r5, r4, 0, 0x1e, 0x1e -/* 8033BF5C 41 82 00 14 */ beq lbl_8033BF70 -/* 8033BF60 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d -/* 8033BF64 B0 83 01 A2 */ sth r4, 0x1a2(r3) -/* 8033BF68 B8 A3 00 14 */ lmw r5, 0x14(r3) -/* 8033BF6C 48 00 00 08 */ b lbl_8033BF74 -lbl_8033BF70: -/* 8033BF70 B9 A3 00 34 */ lmw r13, 0x34(r3) -lbl_8033BF74: -/* 8033BF74 80 83 01 A8 */ lwz r4, 0x1a8(r3) -/* 8033BF78 7C 91 E3 A6 */ mtspr 0x391, r4 -/* 8033BF7C 80 83 01 AC */ lwz r4, 0x1ac(r3) -/* 8033BF80 7C 92 E3 A6 */ mtspr 0x392, r4 -/* 8033BF84 80 83 01 B0 */ lwz r4, 0x1b0(r3) -/* 8033BF88 7C 93 E3 A6 */ mtspr 0x393, r4 -/* 8033BF8C 80 83 01 B4 */ lwz r4, 0x1b4(r3) -/* 8033BF90 7C 94 E3 A6 */ mtspr 0x394, r4 -/* 8033BF94 80 83 01 B8 */ lwz r4, 0x1b8(r3) -/* 8033BF98 7C 95 E3 A6 */ mtspr 0x395, r4 -/* 8033BF9C 80 83 01 BC */ lwz r4, 0x1bc(r3) -/* 8033BFA0 7C 96 E3 A6 */ mtspr 0x396, r4 -/* 8033BFA4 80 83 01 C0 */ lwz r4, 0x1c0(r3) -/* 8033BFA8 7C 97 E3 A6 */ mtspr 0x397, r4 -/* 8033BFAC 80 83 00 80 */ lwz r4, 0x80(r3) -/* 8033BFB0 7C 8F F1 20 */ mtcrf 0xff, r4 -/* 8033BFB4 80 83 00 84 */ lwz r4, 0x84(r3) -/* 8033BFB8 7C 88 03 A6 */ mtlr r4 -/* 8033BFBC 80 83 00 88 */ lwz r4, 0x88(r3) -/* 8033BFC0 7C 89 03 A6 */ mtctr r4 -/* 8033BFC4 80 83 00 8C */ lwz r4, 0x8c(r3) -/* 8033BFC8 7C 81 03 A6 */ mtxer r4 -/* 8033BFCC 7C 80 00 A6 */ mfmsr r4 -/* 8033BFD0 54 84 04 5E */ rlwinm r4, r4, 0, 0x11, 0xf -/* 8033BFD4 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d -/* 8033BFD8 7C 80 01 24 */ mtmsr r4 -/* 8033BFDC 80 83 01 98 */ lwz r4, 0x198(r3) -/* 8033BFE0 7C 9A 03 A6 */ mtspr 0x1a, r4 -/* 8033BFE4 80 83 01 9C */ lwz r4, 0x19c(r3) -/* 8033BFE8 7C 9B 03 A6 */ mtspr 0x1b, r4 -/* 8033BFEC 80 83 00 10 */ lwz r4, 0x10(r3) -/* 8033BFF0 80 63 00 0C */ lwz r3, 0xc(r3) -/* 8033BFF4 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OSContext/OSSaveContext.s b/asm/dolphin/os/OSContext/OSSaveContext.s deleted file mode 100644 index ab6ec61d33f..00000000000 --- a/asm/dolphin/os/OSContext/OSSaveContext.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8033BEA0: -/* 8033BEA0 BD A3 00 34 */ stmw r13, 0x34(r3) -/* 8033BEA4 7C 11 E2 A6 */ mfspr r0, 0x391 -/* 8033BEA8 90 03 01 A8 */ stw r0, 0x1a8(r3) -/* 8033BEAC 7C 12 E2 A6 */ mfspr r0, 0x392 -/* 8033BEB0 90 03 01 AC */ stw r0, 0x1ac(r3) -/* 8033BEB4 7C 13 E2 A6 */ mfspr r0, 0x393 -/* 8033BEB8 90 03 01 B0 */ stw r0, 0x1b0(r3) -/* 8033BEBC 7C 14 E2 A6 */ mfspr r0, 0x394 -/* 8033BEC0 90 03 01 B4 */ stw r0, 0x1b4(r3) -/* 8033BEC4 7C 15 E2 A6 */ mfspr r0, 0x395 -/* 8033BEC8 90 03 01 B8 */ stw r0, 0x1b8(r3) -/* 8033BECC 7C 16 E2 A6 */ mfspr r0, 0x396 -/* 8033BED0 90 03 01 BC */ stw r0, 0x1bc(r3) -/* 8033BED4 7C 17 E2 A6 */ mfspr r0, 0x397 -/* 8033BED8 90 03 01 C0 */ stw r0, 0x1c0(r3) -/* 8033BEDC 7C 00 00 26 */ mfcr r0 -/* 8033BEE0 90 03 00 80 */ stw r0, 0x80(r3) -/* 8033BEE4 7C 08 02 A6 */ mflr r0 -/* 8033BEE8 90 03 00 84 */ stw r0, 0x84(r3) -/* 8033BEEC 90 03 01 98 */ stw r0, 0x198(r3) -/* 8033BEF0 7C 00 00 A6 */ mfmsr r0 -/* 8033BEF4 90 03 01 9C */ stw r0, 0x19c(r3) -/* 8033BEF8 7C 09 02 A6 */ mfctr r0 -/* 8033BEFC 90 03 00 88 */ stw r0, 0x88(r3) -/* 8033BF00 7C 01 02 A6 */ mfxer r0 -/* 8033BF04 90 03 00 8C */ stw r0, 0x8c(r3) -/* 8033BF08 90 23 00 04 */ stw r1, 4(r3) -/* 8033BF0C 90 43 00 08 */ stw r2, 8(r3) -/* 8033BF10 38 00 00 01 */ li r0, 1 -/* 8033BF14 90 03 00 0C */ stw r0, 0xc(r3) -/* 8033BF18 38 60 00 00 */ li r3, 0 -/* 8033BF1C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSSaveFPUContext.s b/asm/dolphin/os/OSContext/OSSaveFPUContext.s deleted file mode 100644 index 085bd15858c..00000000000 --- a/asm/dolphin/os/OSContext/OSSaveFPUContext.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8033BE30: -/* 8033BE30 38 A3 00 00 */ addi r5, r3, 0 -/* 8033BE34 4B FF FE D4 */ b __OSSaveFPUContext diff --git a/asm/dolphin/os/OSContext/OSSetCurrentContext.s b/asm/dolphin/os/OSContext/OSSetCurrentContext.s deleted file mode 100644 index 4cffa1c1dd2..00000000000 --- a/asm/dolphin/os/OSContext/OSSetCurrentContext.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_8033BE38: -/* 8033BE38 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000D4@ha */ -/* 8033BE3C 90 64 00 D4 */ stw r3, 0x00D4(r4) /* 0x800000D4@l */ -/* 8033BE40 54 65 00 BE */ clrlwi r5, r3, 2 -/* 8033BE44 90 A4 00 C0 */ stw r5, 0xc0(r4) -/* 8033BE48 80 A4 00 D8 */ lwz r5, 0xd8(r4) -/* 8033BE4C 7C 05 18 00 */ cmpw r5, r3 -/* 8033BE50 40 82 00 20 */ bne lbl_8033BE70 -/* 8033BE54 80 C3 01 9C */ lwz r6, 0x19c(r3) -/* 8033BE58 60 C6 20 00 */ ori r6, r6, 0x2000 -/* 8033BE5C 90 C3 01 9C */ stw r6, 0x19c(r3) -/* 8033BE60 7C C0 00 A6 */ mfmsr r6 -/* 8033BE64 60 C6 00 02 */ ori r6, r6, 2 -/* 8033BE68 7C C0 01 24 */ mtmsr r6 -/* 8033BE6C 4E 80 00 20 */ blr -lbl_8033BE70: -/* 8033BE70 80 C3 01 9C */ lwz r6, 0x19c(r3) -/* 8033BE74 54 C6 04 E2 */ rlwinm r6, r6, 0, 0x13, 0x11 -/* 8033BE78 90 C3 01 9C */ stw r6, 0x19c(r3) -/* 8033BE7C 7C C0 00 A6 */ mfmsr r6 -/* 8033BE80 54 C6 04 E2 */ rlwinm r6, r6, 0, 0x13, 0x11 -/* 8033BE84 60 C6 00 02 */ ori r6, r6, 2 -/* 8033BE88 7C C0 01 24 */ mtmsr r6 -/* 8033BE8C 4C 00 01 2C */ isync -/* 8033BE90 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/OSSwitchFPUContext.s b/asm/dolphin/os/OSContext/OSSwitchFPUContext.s deleted file mode 100644 index 6f70f47d59b..00000000000 --- a/asm/dolphin/os/OSContext/OSSwitchFPUContext.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_8033C388: -/* 8033C388 7C A0 00 A6 */ mfmsr r5 -/* 8033C38C 60 A5 20 00 */ ori r5, r5, 0x2000 -/* 8033C390 7C A0 01 24 */ mtmsr r5 -/* 8033C394 4C 00 01 2C */ isync -/* 8033C398 80 A4 01 9C */ lwz r5, 0x19c(r4) -/* 8033C39C 60 A5 20 00 */ ori r5, r5, 0x2000 -/* 8033C3A0 7C BB 03 A6 */ mtspr 0x1b, r5 -/* 8033C3A4 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000D8@ha */ -/* 8033C3A8 80 A3 00 D8 */ lwz r5, 0x00D8(r3) /* 0x800000D8@l */ -/* 8033C3AC 90 83 00 D8 */ stw r4, 0xd8(r3) -/* 8033C3B0 7C 05 20 00 */ cmpw r5, r4 -/* 8033C3B4 41 82 00 14 */ beq lbl_8033C3C8 -/* 8033C3B8 2C 05 00 00 */ cmpwi r5, 0 -/* 8033C3BC 41 82 00 08 */ beq lbl_8033C3C4 -/* 8033C3C0 4B FF F9 49 */ bl __OSSaveFPUContext -lbl_8033C3C4: -/* 8033C3C4 4B FF F8 21 */ bl __OSLoadFPUContext -lbl_8033C3C8: -/* 8033C3C8 80 64 00 80 */ lwz r3, 0x80(r4) -/* 8033C3CC 7C 6F F1 20 */ mtcrf 0xff, r3 -/* 8033C3D0 80 64 00 84 */ lwz r3, 0x84(r4) -/* 8033C3D4 7C 68 03 A6 */ mtlr r3 -/* 8033C3D8 80 64 01 98 */ lwz r3, 0x198(r4) -/* 8033C3DC 7C 7A 03 A6 */ mtspr 0x1a, r3 -/* 8033C3E0 80 64 00 88 */ lwz r3, 0x88(r4) -/* 8033C3E4 7C 69 03 A6 */ mtctr r3 -/* 8033C3E8 80 64 00 8C */ lwz r3, 0x8c(r4) -/* 8033C3EC 7C 61 03 A6 */ mtxer r3 -/* 8033C3F0 A0 64 01 A2 */ lhz r3, 0x1a2(r4) -/* 8033C3F4 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d -/* 8033C3F8 B0 64 01 A2 */ sth r3, 0x1a2(r4) -/* 8033C3FC 80 A4 00 14 */ lwz r5, 0x14(r4) -/* 8033C400 80 64 00 0C */ lwz r3, 0xc(r4) -/* 8033C404 80 84 00 10 */ lwz r4, 0x10(r4) -/* 8033C408 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OSContext/__OSLoadFPUContext.s b/asm/dolphin/os/OSContext/__OSLoadFPUContext.s deleted file mode 100644 index 31d1bcf6c4b..00000000000 --- a/asm/dolphin/os/OSContext/__OSLoadFPUContext.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_8033BBE4: -/* 8033BBE4 A0 A4 01 A2 */ lhz r5, 0x1a2(r4) -/* 8033BBE8 54 A5 07 FF */ clrlwi. r5, r5, 0x1f -/* 8033BBEC 41 82 01 18 */ beq lbl_8033BD04 -/* 8033BBF0 C8 04 01 90 */ lfd f0, 0x190(r4) -/* 8033BBF4 FD FE 05 8E */ mtfsf 0xff, f0 -/* 8033BBF8 7C B8 E2 A6 */ mfspr r5, 0x398 -/* 8033BBFC 54 A5 1F FF */ rlwinm. r5, r5, 3, 0x1f, 0x1f -/* 8033BC00 41 82 00 84 */ beq lbl_8033BC84 -/* 8033BC04 E0 04 01 C8 */ psq_l f0, 456(r4), 0, 0 /* qr0 */ -/* 8033BC08 E0 24 01 D0 */ psq_l f1, 464(r4), 0, 0 /* qr0 */ -/* 8033BC0C E0 44 01 D8 */ psq_l f2, 472(r4), 0, 0 /* qr0 */ -/* 8033BC10 E0 64 01 E0 */ psq_l f3, 480(r4), 0, 0 /* qr0 */ -/* 8033BC14 E0 84 01 E8 */ psq_l f4, 488(r4), 0, 0 /* qr0 */ -/* 8033BC18 E0 A4 01 F0 */ psq_l f5, 496(r4), 0, 0 /* qr0 */ -/* 8033BC1C E0 C4 01 F8 */ psq_l f6, 504(r4), 0, 0 /* qr0 */ -/* 8033BC20 E0 E4 02 00 */ psq_l f7, 512(r4), 0, 0 /* qr0 */ -/* 8033BC24 E1 04 02 08 */ psq_l f8, 520(r4), 0, 0 /* qr0 */ -/* 8033BC28 E1 24 02 10 */ psq_l f9, 528(r4), 0, 0 /* qr0 */ -/* 8033BC2C E1 44 02 18 */ psq_l f10, 536(r4), 0, 0 /* qr0 */ -/* 8033BC30 E1 64 02 20 */ psq_l f11, 544(r4), 0, 0 /* qr0 */ -/* 8033BC34 E1 84 02 28 */ psq_l f12, 552(r4), 0, 0 /* qr0 */ -/* 8033BC38 E1 A4 02 30 */ psq_l f13, 560(r4), 0, 0 /* qr0 */ -/* 8033BC3C E1 C4 02 38 */ psq_l f14, 568(r4), 0, 0 /* qr0 */ -/* 8033BC40 E1 E4 02 40 */ psq_l f15, 576(r4), 0, 0 /* qr0 */ -/* 8033BC44 E2 04 02 48 */ psq_l f16, 584(r4), 0, 0 /* qr0 */ -/* 8033BC48 E2 24 02 50 */ psq_l f17, 592(r4), 0, 0 /* qr0 */ -/* 8033BC4C E2 44 02 58 */ psq_l f18, 600(r4), 0, 0 /* qr0 */ -/* 8033BC50 E2 64 02 60 */ psq_l f19, 608(r4), 0, 0 /* qr0 */ -/* 8033BC54 E2 84 02 68 */ psq_l f20, 616(r4), 0, 0 /* qr0 */ -/* 8033BC58 E2 A4 02 70 */ psq_l f21, 624(r4), 0, 0 /* qr0 */ -/* 8033BC5C E2 C4 02 78 */ psq_l f22, 632(r4), 0, 0 /* qr0 */ -/* 8033BC60 E2 E4 02 80 */ psq_l f23, 640(r4), 0, 0 /* qr0 */ -/* 8033BC64 E3 04 02 88 */ psq_l f24, 648(r4), 0, 0 /* qr0 */ -/* 8033BC68 E3 24 02 90 */ psq_l f25, 656(r4), 0, 0 /* qr0 */ -/* 8033BC6C E3 44 02 98 */ psq_l f26, 664(r4), 0, 0 /* qr0 */ -/* 8033BC70 E3 64 02 A0 */ psq_l f27, 672(r4), 0, 0 /* qr0 */ -/* 8033BC74 E3 84 02 A8 */ psq_l f28, 680(r4), 0, 0 /* qr0 */ -/* 8033BC78 E3 A4 02 B0 */ psq_l f29, 688(r4), 0, 0 /* qr0 */ -/* 8033BC7C E3 C4 02 B8 */ psq_l f30, 696(r4), 0, 0 /* qr0 */ -/* 8033BC80 E3 E4 02 C0 */ psq_l f31, 704(r4), 0, 0 /* qr0 */ -lbl_8033BC84: -/* 8033BC84 C8 04 00 90 */ lfd f0, 0x90(r4) -/* 8033BC88 C8 24 00 98 */ lfd f1, 0x98(r4) -/* 8033BC8C C8 44 00 A0 */ lfd f2, 0xa0(r4) -/* 8033BC90 C8 64 00 A8 */ lfd f3, 0xa8(r4) -/* 8033BC94 C8 84 00 B0 */ lfd f4, 0xb0(r4) -/* 8033BC98 C8 A4 00 B8 */ lfd f5, 0xb8(r4) -/* 8033BC9C C8 C4 00 C0 */ lfd f6, 0xc0(r4) -/* 8033BCA0 C8 E4 00 C8 */ lfd f7, 0xc8(r4) -/* 8033BCA4 C9 04 00 D0 */ lfd f8, 0xd0(r4) -/* 8033BCA8 C9 24 00 D8 */ lfd f9, 0xd8(r4) -/* 8033BCAC C9 44 00 E0 */ lfd f10, 0xe0(r4) -/* 8033BCB0 C9 64 00 E8 */ lfd f11, 0xe8(r4) -/* 8033BCB4 C9 84 00 F0 */ lfd f12, 0xf0(r4) -/* 8033BCB8 C9 A4 00 F8 */ lfd f13, 0xf8(r4) -/* 8033BCBC C9 C4 01 00 */ lfd f14, 0x100(r4) -/* 8033BCC0 C9 E4 01 08 */ lfd f15, 0x108(r4) -/* 8033BCC4 CA 04 01 10 */ lfd f16, 0x110(r4) -/* 8033BCC8 CA 24 01 18 */ lfd f17, 0x118(r4) -/* 8033BCCC CA 44 01 20 */ lfd f18, 0x120(r4) -/* 8033BCD0 CA 64 01 28 */ lfd f19, 0x128(r4) -/* 8033BCD4 CA 84 01 30 */ lfd f20, 0x130(r4) -/* 8033BCD8 CA A4 01 38 */ lfd f21, 0x138(r4) -/* 8033BCDC CA C4 01 40 */ lfd f22, 0x140(r4) -/* 8033BCE0 CA E4 01 48 */ lfd f23, 0x148(r4) -/* 8033BCE4 CB 04 01 50 */ lfd f24, 0x150(r4) -/* 8033BCE8 CB 24 01 58 */ lfd f25, 0x158(r4) -/* 8033BCEC CB 44 01 60 */ lfd f26, 0x160(r4) -/* 8033BCF0 CB 64 01 68 */ lfd f27, 0x168(r4) -/* 8033BCF4 CB 84 01 70 */ lfd f28, 0x170(r4) -/* 8033BCF8 CB A4 01 78 */ lfd f29, 0x178(r4) -/* 8033BCFC CB C4 01 80 */ lfd f30, 0x180(r4) -/* 8033BD00 CB E4 01 88 */ lfd f31, 0x188(r4) -lbl_8033BD04: -/* 8033BD04 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSContext/__OSSaveFPUContext.s b/asm/dolphin/os/OSContext/__OSSaveFPUContext.s deleted file mode 100644 index e2eedc40cc1..00000000000 --- a/asm/dolphin/os/OSContext/__OSSaveFPUContext.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_8033BD08: -/* 8033BD08 A0 65 01 A2 */ lhz r3, 0x1a2(r5) -/* 8033BD0C 60 63 00 01 */ ori r3, r3, 1 -/* 8033BD10 B0 65 01 A2 */ sth r3, 0x1a2(r5) -/* 8033BD14 D8 05 00 90 */ stfd f0, 0x90(r5) -/* 8033BD18 D8 25 00 98 */ stfd f1, 0x98(r5) -/* 8033BD1C D8 45 00 A0 */ stfd f2, 0xa0(r5) -/* 8033BD20 D8 65 00 A8 */ stfd f3, 0xa8(r5) -/* 8033BD24 D8 85 00 B0 */ stfd f4, 0xb0(r5) -/* 8033BD28 D8 A5 00 B8 */ stfd f5, 0xb8(r5) -/* 8033BD2C D8 C5 00 C0 */ stfd f6, 0xc0(r5) -/* 8033BD30 D8 E5 00 C8 */ stfd f7, 0xc8(r5) -/* 8033BD34 D9 05 00 D0 */ stfd f8, 0xd0(r5) -/* 8033BD38 D9 25 00 D8 */ stfd f9, 0xd8(r5) -/* 8033BD3C D9 45 00 E0 */ stfd f10, 0xe0(r5) -/* 8033BD40 D9 65 00 E8 */ stfd f11, 0xe8(r5) -/* 8033BD44 D9 85 00 F0 */ stfd f12, 0xf0(r5) -/* 8033BD48 D9 A5 00 F8 */ stfd f13, 0xf8(r5) -/* 8033BD4C D9 C5 01 00 */ stfd f14, 0x100(r5) -/* 8033BD50 D9 E5 01 08 */ stfd f15, 0x108(r5) -/* 8033BD54 DA 05 01 10 */ stfd f16, 0x110(r5) -/* 8033BD58 DA 25 01 18 */ stfd f17, 0x118(r5) -/* 8033BD5C DA 45 01 20 */ stfd f18, 0x120(r5) -/* 8033BD60 DA 65 01 28 */ stfd f19, 0x128(r5) -/* 8033BD64 DA 85 01 30 */ stfd f20, 0x130(r5) -/* 8033BD68 DA A5 01 38 */ stfd f21, 0x138(r5) -/* 8033BD6C DA C5 01 40 */ stfd f22, 0x140(r5) -/* 8033BD70 DA E5 01 48 */ stfd f23, 0x148(r5) -/* 8033BD74 DB 05 01 50 */ stfd f24, 0x150(r5) -/* 8033BD78 DB 25 01 58 */ stfd f25, 0x158(r5) -/* 8033BD7C DB 45 01 60 */ stfd f26, 0x160(r5) -/* 8033BD80 DB 65 01 68 */ stfd f27, 0x168(r5) -/* 8033BD84 DB 85 01 70 */ stfd f28, 0x170(r5) -/* 8033BD88 DB A5 01 78 */ stfd f29, 0x178(r5) -/* 8033BD8C DB C5 01 80 */ stfd f30, 0x180(r5) -/* 8033BD90 DB E5 01 88 */ stfd f31, 0x188(r5) -/* 8033BD94 FC 00 04 8E */ mffs f0 -/* 8033BD98 D8 05 01 90 */ stfd f0, 0x190(r5) -/* 8033BD9C C8 05 00 90 */ lfd f0, 0x90(r5) -/* 8033BDA0 7C 78 E2 A6 */ mfspr r3, 0x398 -/* 8033BDA4 54 63 1F FF */ rlwinm. r3, r3, 3, 0x1f, 0x1f -/* 8033BDA8 41 82 00 84 */ beq lbl_8033BE2C -/* 8033BDAC F0 05 01 C8 */ psq_st f0, 456(r5), 0, 0 /* qr0 */ -/* 8033BDB0 F0 25 01 D0 */ psq_st f1, 464(r5), 0, 0 /* qr0 */ -/* 8033BDB4 F0 45 01 D8 */ psq_st f2, 472(r5), 0, 0 /* qr0 */ -/* 8033BDB8 F0 65 01 E0 */ psq_st f3, 480(r5), 0, 0 /* qr0 */ -/* 8033BDBC F0 85 01 E8 */ psq_st f4, 488(r5), 0, 0 /* qr0 */ -/* 8033BDC0 F0 A5 01 F0 */ psq_st f5, 496(r5), 0, 0 /* qr0 */ -/* 8033BDC4 F0 C5 01 F8 */ psq_st f6, 504(r5), 0, 0 /* qr0 */ -/* 8033BDC8 F0 E5 02 00 */ psq_st f7, 512(r5), 0, 0 /* qr0 */ -/* 8033BDCC F1 05 02 08 */ psq_st f8, 520(r5), 0, 0 /* qr0 */ -/* 8033BDD0 F1 25 02 10 */ psq_st f9, 528(r5), 0, 0 /* qr0 */ -/* 8033BDD4 F1 45 02 18 */ psq_st f10, 536(r5), 0, 0 /* qr0 */ -/* 8033BDD8 F1 65 02 20 */ psq_st f11, 544(r5), 0, 0 /* qr0 */ -/* 8033BDDC F1 85 02 28 */ psq_st f12, 552(r5), 0, 0 /* qr0 */ -/* 8033BDE0 F1 A5 02 30 */ psq_st f13, 560(r5), 0, 0 /* qr0 */ -/* 8033BDE4 F1 C5 02 38 */ psq_st f14, 568(r5), 0, 0 /* qr0 */ -/* 8033BDE8 F1 E5 02 40 */ psq_st f15, 576(r5), 0, 0 /* qr0 */ -/* 8033BDEC F2 05 02 48 */ psq_st f16, 584(r5), 0, 0 /* qr0 */ -/* 8033BDF0 F2 25 02 50 */ psq_st f17, 592(r5), 0, 0 /* qr0 */ -/* 8033BDF4 F2 45 02 58 */ psq_st f18, 600(r5), 0, 0 /* qr0 */ -/* 8033BDF8 F2 65 02 60 */ psq_st f19, 608(r5), 0, 0 /* qr0 */ -/* 8033BDFC F2 85 02 68 */ psq_st f20, 616(r5), 0, 0 /* qr0 */ -/* 8033BE00 F2 A5 02 70 */ psq_st f21, 624(r5), 0, 0 /* qr0 */ -/* 8033BE04 F2 C5 02 78 */ psq_st f22, 632(r5), 0, 0 /* qr0 */ -/* 8033BE08 F2 E5 02 80 */ psq_st f23, 640(r5), 0, 0 /* qr0 */ -/* 8033BE0C F3 05 02 88 */ psq_st f24, 648(r5), 0, 0 /* qr0 */ -/* 8033BE10 F3 25 02 90 */ psq_st f25, 656(r5), 0, 0 /* qr0 */ -/* 8033BE14 F3 45 02 98 */ psq_st f26, 664(r5), 0, 0 /* qr0 */ -/* 8033BE18 F3 65 02 A0 */ psq_st f27, 672(r5), 0, 0 /* qr0 */ -/* 8033BE1C F3 85 02 A8 */ psq_st f28, 680(r5), 0, 0 /* qr0 */ -/* 8033BE20 F3 A5 02 B0 */ psq_st f29, 688(r5), 0, 0 /* qr0 */ -/* 8033BE24 F3 C5 02 B8 */ psq_st f30, 696(r5), 0, 0 /* qr0 */ -/* 8033BE28 F3 E5 02 C0 */ psq_st f31, 704(r5), 0, 0 /* qr0 */ -lbl_8033BE2C: -/* 8033BE2C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSError/__OSUnhandledException.s b/asm/dolphin/os/OSError/__OSUnhandledException.s index 34cf0d4bb4c..82beede0287 100644 --- a/asm/dolphin/os/OSError/__OSUnhandledException.s +++ b/asm/dolphin/os/OSError/__OSUnhandledException.s @@ -186,7 +186,7 @@ lbl_8033CA4C: /* 8033CA54 4C C6 31 82 */ crclr 6 /* 8033CA58 80 AD 90 F4 */ lwz r5, __OSLastInterruptSrr0(r13) /* 8033CA5C 80 ED 91 00 */ lwz r7, __OSLastInterruptTime(r13) -/* 8033CA60 81 0D 91 04 */ lwz r8, data_80451684(r13) +/* 8033CA60 81 0D 91 04 */ lwz r8, __OSLastInterruptTime+0x4(r13) /* 8033CA64 4B CC A0 59 */ bl OSReport /* 8033CA68 4B FF D2 99 */ bl PPCHalt /* 8033CA6C BA C1 00 18 */ lmw r22, 0x18(r1) diff --git a/asm/dolphin/os/OSExec/Callback.s b/asm/dolphin/os/OSExec/Callback.s deleted file mode 100644 index cd7d3312bfb..00000000000 --- a/asm/dolphin/os/OSExec/Callback.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8033CCB0: -/* 8033CCB0 38 00 00 01 */ li r0, 1 -/* 8033CCB4 90 0D 90 D8 */ stw r0, Prepared(r13) -/* 8033CCB8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSExec/Run.s b/asm/dolphin/os/OSExec/Run.s deleted file mode 100644 index b3074345183..00000000000 --- a/asm/dolphin/os/OSExec/Run.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8033CC08: -/* 8033CC08 7C 08 02 A6 */ mflr r0 -/* 8033CC0C 90 01 00 04 */ stw r0, 4(r1) -/* 8033CC10 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8033CC14 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8033CC18 7C 7F 1B 78 */ mr r31, r3 -/* 8033CC1C 4B FF EA A9 */ bl ICFlashInvalidate -/* 8033CC20 7C 00 04 AC */ sync -/* 8033CC24 4C 00 01 2C */ isync -/* 8033CC28 7F E8 03 A6 */ mtlr r31 -/* 8033CC2C 4E 80 00 20 */ blr -/* 8033CC30 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8033CC34 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8033CC38 38 21 00 18 */ addi r1, r1, 0x18 -/* 8033CC3C 7C 08 03 A6 */ mtlr r0 -/* 8033CC40 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s b/asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s deleted file mode 100644 index 4eb75782caf..00000000000 --- a/asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_8033DF10: -/* 8033DF10 90 04 00 00 */ stw r0, 0(r4) -/* 8033DF14 90 24 00 04 */ stw r1, 4(r4) -/* 8033DF18 90 44 00 08 */ stw r2, 8(r4) -/* 8033DF1C BC C4 00 18 */ stmw r6, 0x18(r4) -/* 8033DF20 7C 11 E2 A6 */ mfspr r0, 0x391 -/* 8033DF24 90 04 01 A8 */ stw r0, 0x1a8(r4) -/* 8033DF28 7C 12 E2 A6 */ mfspr r0, 0x392 -/* 8033DF2C 90 04 01 AC */ stw r0, 0x1ac(r4) -/* 8033DF30 7C 13 E2 A6 */ mfspr r0, 0x393 -/* 8033DF34 90 04 01 B0 */ stw r0, 0x1b0(r4) -/* 8033DF38 7C 14 E2 A6 */ mfspr r0, 0x394 -/* 8033DF3C 90 04 01 B4 */ stw r0, 0x1b4(r4) -/* 8033DF40 7C 15 E2 A6 */ mfspr r0, 0x395 -/* 8033DF44 90 04 01 B8 */ stw r0, 0x1b8(r4) -/* 8033DF48 7C 16 E2 A6 */ mfspr r0, 0x396 -/* 8033DF4C 90 04 01 BC */ stw r0, 0x1bc(r4) -/* 8033DF50 7C 17 E2 A6 */ mfspr r0, 0x397 -/* 8033DF54 90 04 01 C0 */ stw r0, 0x1c0(r4) -/* 8033DF58 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033DF5C 4B FF FC 70 */ b __OSDispatchInterrupt diff --git a/asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s b/asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s deleted file mode 100644 index fdc8a7f532c..00000000000 --- a/asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8033D6F4: -/* 8033D6F4 7C 60 00 A6 */ mfmsr r3 -/* 8033D6F8 54 64 04 5E */ rlwinm r4, r3, 0, 0x11, 0xf -/* 8033D6FC 7C 80 01 24 */ mtmsr r4 diff --git a/asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s b/asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s deleted file mode 100644 index b0ce87c01cd..00000000000 --- a/asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033D708: -/* 8033D708 7C 60 00 A6 */ mfmsr r3 -/* 8033D70C 60 64 80 00 */ ori r4, r3, 0x8000 -/* 8033D710 7C 80 01 24 */ mtmsr r4 -/* 8033D714 54 63 8F FE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f -/* 8033D718 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s b/asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s deleted file mode 100644 index 453a38bce02..00000000000 --- a/asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8033D71C: -/* 8033D71C 2C 03 00 00 */ cmpwi r3, 0 -/* 8033D720 7C 80 00 A6 */ mfmsr r4 -/* 8033D724 41 82 00 0C */ beq lbl_8033D730 -/* 8033D728 60 85 80 00 */ ori r5, r4, 0x8000 -/* 8033D72C 48 00 00 08 */ b lbl_8033D734 -lbl_8033D730: -/* 8033D730 54 85 04 5E */ rlwinm r5, r4, 0, 0x11, 0xf -lbl_8033D734: -/* 8033D734 7C A0 01 24 */ mtmsr r5 -/* 8033D738 54 83 8F FE */ rlwinm r3, r4, 0x11, 0x1f, 0x1f -/* 8033D73C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s b/asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s index a288371fc26..57410c3a73a 100644 --- a/asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s +++ b/asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s @@ -218,7 +218,7 @@ lbl_8033DE90: /* 8033DEA8 40 81 00 1C */ ble lbl_8033DEC4 /* 8033DEAC B3 AD 90 F8 */ sth r29, __OSLastInterrupt(r13) /* 8033DEB0 48 00 48 4D */ bl OSGetTime -/* 8033DEB4 90 8D 91 04 */ stw r4, data_80451684(r13) +/* 8033DEB4 90 8D 91 04 */ stw r4, __OSLastInterruptTime+0x4(r13) /* 8033DEB8 90 6D 91 00 */ stw r3, __OSLastInterruptTime(r13) /* 8033DEBC 80 1E 01 98 */ lwz r0, 0x198(r30) /* 8033DEC0 90 0D 90 F4 */ stw r0, __OSLastInterruptSrr0(r13) diff --git a/asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s b/asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s deleted file mode 100644 index b64dc0bd346..00000000000 --- a/asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033D75C: -/* 8033D75C 7C 60 07 34 */ extsh r0, r3 -/* 8033D760 80 6D 90 F0 */ lwz r3, InterruptHandlerTable(r13) -/* 8033D764 54 00 10 3A */ slwi r0, r0, 2 -/* 8033D768 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8033D76C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s b/asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s deleted file mode 100644 index 788410d7662..00000000000 --- a/asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8033D740: -/* 8033D740 7C 60 07 34 */ extsh r0, r3 -/* 8033D744 80 6D 90 F0 */ lwz r3, InterruptHandlerTable(r13) -/* 8033D748 54 00 10 3A */ slwi r0, r0, 2 -/* 8033D74C 7C A3 02 14 */ add r5, r3, r0 -/* 8033D750 80 65 00 00 */ lwz r3, 0(r5) -/* 8033D754 90 85 00 00 */ stw r4, 0(r5) -/* 8033D758 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s b/asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s deleted file mode 100644 index 0fcf5ca47a4..00000000000 --- a/asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8033D700: -/* 8033D700 54 63 8F FE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f -/* 8033D704 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSLink/OSSetStringTable.s b/asm/dolphin/os/OSLink/OSSetStringTable.s deleted file mode 100644 index cc6d13dc112..00000000000 --- a/asm/dolphin/os/OSLink/OSSetStringTable.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8033DF68: -/* 8033DF68 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030D0@ha */ -/* 8033DF6C 90 64 30 D0 */ stw r3, 0x30D0(r4) /* 0x800030D0@l */ -/* 8033DF70 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSLink/__OSModuleInit.s b/asm/dolphin/os/OSLink/__OSModuleInit.s deleted file mode 100644 index 6933d55f1fd..00000000000 --- a/asm/dolphin/os/OSLink/__OSModuleInit.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8033E97C: -/* 8033E97C 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030CC@ha */ -/* 8033E980 38 00 00 00 */ li r0, 0 -/* 8033E984 90 04 30 CC */ stw r0, 0x30CC(r4) /* 0x800030CC@l */ -/* 8033E988 90 04 30 C8 */ stw r0, 0x30c8(r4) -/* 8033E98C 90 04 30 D0 */ stw r0, 0x30d0(r4) -/* 8033E990 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMemory/Config24MB.s b/asm/dolphin/os/OSMemory/Config24MB.s deleted file mode 100644 index 4655295d354..00000000000 --- a/asm/dolphin/os/OSMemory/Config24MB.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8033EDD8: -/* 8033EDD8 38 E0 00 00 */ li r7, 0 -/* 8033EDDC 3C 80 00 00 */ lis r4, 0x0000 /* 0x00000002@ha */ -/* 8033EDE0 38 84 00 02 */ addi r4, r4, 0x0002 /* 0x00000002@l */ -/* 8033EDE4 3C 60 80 00 */ lis r3, 0x8000 /* 0x800001FF@ha */ -/* 8033EDE8 38 63 01 FF */ addi r3, r3, 0x01FF /* 0x800001FF@l */ -/* 8033EDEC 3C C0 01 00 */ lis r6, 0x0100 /* 0x01000002@ha */ -/* 8033EDF0 38 C6 00 02 */ addi r6, r6, 0x0002 /* 0x01000002@l */ -/* 8033EDF4 3C A0 81 00 */ lis r5, 0x8100 /* 0x810000FF@ha */ -/* 8033EDF8 38 A5 00 FF */ addi r5, r5, 0x00FF /* 0x810000FF@l */ -/* 8033EDFC 4C 00 01 2C */ isync -/* 8033EE00 7C F8 83 A6 */ mtdbatu 0, r7 -/* 8033EE04 7C 99 83 A6 */ mtdbatl 0, r4 -/* 8033EE08 7C 78 83 A6 */ mtdbatu 0, r3 -/* 8033EE0C 4C 00 01 2C */ isync -/* 8033EE10 7C F0 83 A6 */ mtibatu 0, r7 -/* 8033EE14 7C 91 83 A6 */ mtibatl 0, r4 -/* 8033EE18 7C 70 83 A6 */ mtibatu 0, r3 -/* 8033EE1C 4C 00 01 2C */ isync -/* 8033EE20 7C FC 83 A6 */ mtdbatu 2, r7 -/* 8033EE24 7C DD 83 A6 */ mtdbatl 2, r6 -/* 8033EE28 7C BC 83 A6 */ mtdbatu 2, r5 -/* 8033EE2C 4C 00 01 2C */ isync -/* 8033EE30 7C F4 83 A6 */ mtibatu 2, r7 -/* 8033EE34 7C D5 83 A6 */ mtibatl 2, r6 -/* 8033EE38 7C B4 83 A6 */ mtibatu 2, r5 -/* 8033EE3C 4C 00 01 2C */ isync -/* 8033EE40 7C 60 00 A6 */ mfmsr r3 -/* 8033EE44 60 63 00 30 */ ori r3, r3, 0x30 -/* 8033EE48 7C 7B 03 A6 */ mtspr 0x1b, r3 -/* 8033EE4C 7C 68 02 A6 */ mflr r3 -/* 8033EE50 7C 7A 03 A6 */ mtspr 0x1a, r3 -/* 8033EE54 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OSMemory/Config48MB.s b/asm/dolphin/os/OSMemory/Config48MB.s deleted file mode 100644 index 8b62804522d..00000000000 --- a/asm/dolphin/os/OSMemory/Config48MB.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8033EE58: -/* 8033EE58 38 E0 00 00 */ li r7, 0 -/* 8033EE5C 3C 80 00 00 */ lis r4, 0x0000 /* 0x00000002@ha */ -/* 8033EE60 38 84 00 02 */ addi r4, r4, 0x0002 /* 0x00000002@l */ -/* 8033EE64 3C 60 80 00 */ lis r3, 0x8000 /* 0x800003FF@ha */ -/* 8033EE68 38 63 03 FF */ addi r3, r3, 0x03FF /* 0x800003FF@l */ -/* 8033EE6C 3C C0 02 00 */ lis r6, 0x0200 /* 0x02000002@ha */ -/* 8033EE70 38 C6 00 02 */ addi r6, r6, 0x0002 /* 0x02000002@l */ -/* 8033EE74 3C A0 82 00 */ lis r5, 0x8200 /* 0x820001FF@ha */ -/* 8033EE78 38 A5 01 FF */ addi r5, r5, 0x01FF /* 0x820001FF@l */ -/* 8033EE7C 4C 00 01 2C */ isync -/* 8033EE80 7C F8 83 A6 */ mtdbatu 0, r7 -/* 8033EE84 7C 99 83 A6 */ mtdbatl 0, r4 -/* 8033EE88 7C 78 83 A6 */ mtdbatu 0, r3 -/* 8033EE8C 4C 00 01 2C */ isync -/* 8033EE90 7C F0 83 A6 */ mtibatu 0, r7 -/* 8033EE94 7C 91 83 A6 */ mtibatl 0, r4 -/* 8033EE98 7C 70 83 A6 */ mtibatu 0, r3 -/* 8033EE9C 4C 00 01 2C */ isync -/* 8033EEA0 7C FC 83 A6 */ mtdbatu 2, r7 -/* 8033EEA4 7C DD 83 A6 */ mtdbatl 2, r6 -/* 8033EEA8 7C BC 83 A6 */ mtdbatu 2, r5 -/* 8033EEAC 4C 00 01 2C */ isync -/* 8033EEB0 7C F4 83 A6 */ mtibatu 2, r7 -/* 8033EEB4 7C D5 83 A6 */ mtibatl 2, r6 -/* 8033EEB8 7C B4 83 A6 */ mtibatu 2, r5 -/* 8033EEBC 4C 00 01 2C */ isync -/* 8033EEC0 7C 60 00 A6 */ mfmsr r3 -/* 8033EEC4 60 63 00 30 */ ori r3, r3, 0x30 -/* 8033EEC8 7C 7B 03 A6 */ mtspr 0x1b, r3 -/* 8033EECC 7C 68 02 A6 */ mflr r3 -/* 8033EED0 7C 7A 03 A6 */ mtspr 0x1a, r3 -/* 8033EED4 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OSMemory/RealMode.s b/asm/dolphin/os/OSMemory/RealMode.s deleted file mode 100644 index a6e39168d6b..00000000000 --- a/asm/dolphin/os/OSMemory/RealMode.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8033EED8: -/* 8033EED8 54 63 00 BE */ clrlwi r3, r3, 2 -/* 8033EEDC 7C 7A 03 A6 */ mtspr 0x1a, r3 -/* 8033EEE0 7C 60 00 A6 */ mfmsr r3 -/* 8033EEE4 54 63 07 32 */ rlwinm r3, r3, 0, 0x1c, 0x19 -/* 8033EEE8 7C 7B 03 A6 */ mtspr 0x1b, r3 -/* 8033EEEC 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OSReboot/OSGetSaveRegion.s b/asm/dolphin/os/OSReboot/OSGetSaveRegion.s deleted file mode 100644 index cd09f28f551..00000000000 --- a/asm/dolphin/os/OSReboot/OSGetSaveRegion.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8033F64C: -/* 8033F64C 80 0D 91 08 */ lwz r0, SaveStart(r13) -/* 8033F650 90 03 00 00 */ stw r0, 0(r3) -/* 8033F654 80 0D 91 0C */ lwz r0, SaveEnd(r13) -/* 8033F658 90 04 00 00 */ stw r0, 0(r4) -/* 8033F65C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSReboot/OSSetSaveRegion.s b/asm/dolphin/os/OSReboot/OSSetSaveRegion.s deleted file mode 100644 index 8e9f846fdc4..00000000000 --- a/asm/dolphin/os/OSReboot/OSSetSaveRegion.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8033F640: -/* 8033F640 90 6D 91 08 */ stw r3, SaveStart(r13) -/* 8033F644 90 8D 91 0C */ stw r4, SaveEnd(r13) -/* 8033F648 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSReset/Reset.s b/asm/dolphin/os/OSReset/Reset.s deleted file mode 100644 index 87d9fd15e2e..00000000000 --- a/asm/dolphin/os/OSReset/Reset.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_8033F78C: -/* 8033F78C 48 00 00 20 */ b lbl_8033F7AC -lbl_8033F790: -/* 8033F790 7D 10 FA A6 */ mfspr r8, 0x3f0 -/* 8033F794 61 08 00 08 */ ori r8, r8, 8 -/* 8033F798 7D 10 FB A6 */ mtspr 0x3f0, r8 -/* 8033F79C 4C 00 01 2C */ isync -/* 8033F7A0 7C 00 04 AC */ sync -/* 8033F7A4 60 00 00 00 */ nop -/* 8033F7A8 48 00 00 08 */ b lbl_8033F7B0 -lbl_8033F7AC: -/* 8033F7AC 48 00 00 20 */ b lbl_8033F7CC -lbl_8033F7B0: -/* 8033F7B0 7C AC 42 E6 */ mftb r5, 0x10c -lbl_8033F7B4: -/* 8033F7B4 7C CC 42 E6 */ mftb r6, 0x10c -/* 8033F7B8 7C E5 30 50 */ subf r7, r5, r6 -/* 8033F7BC 28 07 11 24 */ cmplwi r7, 0x1124 -/* 8033F7C0 41 80 FF F4 */ blt lbl_8033F7B4 -/* 8033F7C4 60 00 00 00 */ nop -/* 8033F7C8 48 00 00 08 */ b lbl_8033F7D0 -lbl_8033F7CC: -/* 8033F7CC 48 00 00 20 */ b lbl_8033F7EC -lbl_8033F7D0: -/* 8033F7D0 3D 00 CC 00 */ lis r8, 0xCC00 /* 0xCC003000@h */ -/* 8033F7D4 61 08 30 00 */ ori r8, r8, 0x3000 /* 0xCC003000@l */ -/* 8033F7D8 38 80 00 03 */ li r4, 3 -/* 8033F7DC 90 88 00 24 */ stw r4, 0x24(r8) -/* 8033F7E0 90 68 00 24 */ stw r3, 0x24(r8) -/* 8033F7E4 60 00 00 00 */ nop -/* 8033F7E8 48 00 00 08 */ b lbl_8033F7F0 -lbl_8033F7EC: -/* 8033F7EC 48 00 00 0C */ b lbl_8033F7F8 -lbl_8033F7F0: -/* 8033F7F0 60 00 00 00 */ nop -/* 8033F7F4 4B FF FF FC */ b lbl_8033F7F0 -lbl_8033F7F8: -/* 8033F7F8 4B FF FF 98 */ b lbl_8033F790 diff --git a/asm/dolphin/os/OSResetSW/OSGetResetButtonState.s b/asm/dolphin/os/OSResetSW/OSGetResetButtonState.s index 2c7a55ff474..c774a6f3be7 100644 --- a/asm/dolphin/os/OSResetSW/OSGetResetButtonState.s +++ b/asm/dolphin/os/OSResetSW/OSGetResetButtonState.s @@ -129,7 +129,7 @@ lbl_8033FD98: /* 8033FDA8 41 82 00 A0 */ beq lbl_8033FE48 /* 8033FDAC 1D 40 00 3C */ mulli r10, r0, 0x3c /* 8033FDB0 80 05 00 F8 */ lwz r0, 0xf8(r5) -/* 8033FDB4 81 2D 90 B4 */ lwz r9, data_80451634(r13) +/* 8033FDB4 81 2D 90 B4 */ lwz r9, __OSStartTime+0x4(r13) /* 8033FDB8 81 0D 90 B0 */ lwz r8, __OSStartTime(r13) /* 8033FDBC 54 06 F0 BE */ srwi r6, r0, 2 /* 8033FDC0 7D 40 FE 70 */ srawi r0, r10, 0x1f diff --git a/asm/dolphin/os/OSSync/SystemCallVector.s b/asm/dolphin/os/OSSync/SystemCallVector.s deleted file mode 100644 index 85a863a4b94..00000000000 --- a/asm/dolphin/os/OSSync/SystemCallVector.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80340A20: -/* 80340A20 7D 30 FA A6 */ mfspr r9, 0x3f0 -/* 80340A24 61 2A 00 08 */ ori r10, r9, 8 -/* 80340A28 7D 50 FB A6 */ mtspr 0x3f0, r10 -/* 80340A2C 4C 00 01 2C */ isync -/* 80340A30 7C 00 04 AC */ sync -/* 80340A34 7D 30 FB A6 */ mtspr 0x3f0, r9 -/* 80340A38 4C 00 00 64 */ rfi diff --git a/asm/dolphin/os/OSSync/__OSSystemCallVectorEnd.s b/asm/dolphin/os/OSSync/__OSSystemCallVectorEnd.s deleted file mode 100644 index d6880a262f8..00000000000 --- a/asm/dolphin/os/OSSync/__OSSystemCallVectorEnd.s +++ /dev/null @@ -1,2 +0,0 @@ -lbl_80340A3C: -/* 80340A3C 60 00 00 00 */ nop diff --git a/asm/dolphin/os/OSThread/OSGetCurrentThread.s b/asm/dolphin/os/OSThread/OSGetCurrentThread.s deleted file mode 100644 index 44503b47187..00000000000 --- a/asm/dolphin/os/OSThread/OSGetCurrentThread.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80340C84: -/* 80340C84 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000E4@ha */ -/* 80340C88 80 63 00 E4 */ lwz r3, 0x00E4(r3) /* 0x800000E4@l */ -/* 80340C8C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSThread/OSGetThreadPriority.s b/asm/dolphin/os/OSThread/OSGetThreadPriority.s deleted file mode 100644 index f6ee7d00075..00000000000 --- a/asm/dolphin/os/OSThread/OSGetThreadPriority.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_80341E5C: -/* 80341E5C 80 63 02 D4 */ lwz r3, 0x2d4(r3) -/* 80341E60 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSThread/OSInitThreadQueue.s b/asm/dolphin/os/OSThread/OSInitThreadQueue.s deleted file mode 100644 index fd6c864bd1c..00000000000 --- a/asm/dolphin/os/OSThread/OSInitThreadQueue.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80340C74: -/* 80340C74 38 00 00 00 */ li r0, 0 -/* 80340C78 90 03 00 04 */ stw r0, 4(r3) -/* 80340C7C 90 03 00 00 */ stw r0, 0(r3) -/* 80340C80 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSThread/OSIsThreadTerminated.s b/asm/dolphin/os/OSThread/OSIsThreadTerminated.s deleted file mode 100644 index 718902b983e..00000000000 --- a/asm/dolphin/os/OSThread/OSIsThreadTerminated.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80340C90: -/* 80340C90 A0 63 02 C8 */ lhz r3, 0x2c8(r3) -/* 80340C94 38 00 00 01 */ li r0, 1 -/* 80340C98 28 03 00 08 */ cmplwi r3, 8 -/* 80340C9C 41 82 00 10 */ beq lbl_80340CAC -/* 80340CA0 28 03 00 00 */ cmplwi r3, 0 -/* 80340CA4 41 82 00 08 */ beq lbl_80340CAC -/* 80340CA8 38 00 00 00 */ li r0, 0 -lbl_80340CAC: -/* 80340CAC 2C 00 00 00 */ cmpwi r0, 0 -/* 80340CB0 41 82 00 0C */ beq lbl_80340CBC -/* 80340CB4 38 60 00 01 */ li r3, 1 -/* 80340CB8 4E 80 00 20 */ blr -lbl_80340CBC: -/* 80340CBC 38 60 00 00 */ li r3, 0 -/* 80340CC0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSThread/UnsetRun.s b/asm/dolphin/os/OSThread/UnsetRun.s deleted file mode 100644 index 705aad38688..00000000000 --- a/asm/dolphin/os/OSThread/UnsetRun.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_80340D44: -/* 80340D44 80 83 02 E0 */ lwz r4, 0x2e0(r3) -/* 80340D48 80 A3 02 DC */ lwz r5, 0x2dc(r3) -/* 80340D4C 28 04 00 00 */ cmplwi r4, 0 -/* 80340D50 80 C3 02 E4 */ lwz r6, 0x2e4(r3) -/* 80340D54 40 82 00 0C */ bne lbl_80340D60 -/* 80340D58 90 C5 00 04 */ stw r6, 4(r5) -/* 80340D5C 48 00 00 08 */ b lbl_80340D64 -lbl_80340D60: -/* 80340D60 90 C4 02 E4 */ stw r6, 0x2e4(r4) -lbl_80340D64: -/* 80340D64 28 06 00 00 */ cmplwi r6, 0 -/* 80340D68 40 82 00 0C */ bne lbl_80340D74 -/* 80340D6C 90 85 00 00 */ stw r4, 0(r5) -/* 80340D70 48 00 00 08 */ b lbl_80340D78 -lbl_80340D74: -/* 80340D74 90 86 02 E0 */ stw r4, 0x2e0(r6) -lbl_80340D78: -/* 80340D78 80 05 00 00 */ lwz r0, 0(r5) -/* 80340D7C 28 00 00 00 */ cmplwi r0, 0 -/* 80340D80 40 82 00 20 */ bne lbl_80340DA0 -/* 80340D84 80 03 02 D0 */ lwz r0, 0x2d0(r3) -/* 80340D88 38 80 00 01 */ li r4, 1 -/* 80340D8C 80 AD 91 40 */ lwz r5, RunQueueBits(r13) -/* 80340D90 20 00 00 1F */ subfic r0, r0, 0x1f -/* 80340D94 7C 80 00 30 */ slw r0, r4, r0 -/* 80340D98 7C A0 00 78 */ andc r0, r5, r0 -/* 80340D9C 90 0D 91 40 */ stw r0, RunQueueBits(r13) -lbl_80340DA0: -/* 80340DA0 38 00 00 00 */ li r0, 0 -/* 80340DA4 90 03 02 DC */ stw r0, 0x2dc(r3) -/* 80340DA8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSThread/__OSGetEffectivePriority.s b/asm/dolphin/os/OSThread/__OSGetEffectivePriority.s deleted file mode 100644 index 1a801ddc4a6..00000000000 --- a/asm/dolphin/os/OSThread/__OSGetEffectivePriority.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80340DAC: -/* 80340DAC 80 83 02 D4 */ lwz r4, 0x2d4(r3) -/* 80340DB0 80 A3 02 F4 */ lwz r5, 0x2f4(r3) -/* 80340DB4 48 00 00 24 */ b lbl_80340DD8 -lbl_80340DB8: -/* 80340DB8 80 65 00 00 */ lwz r3, 0(r5) -/* 80340DBC 28 03 00 00 */ cmplwi r3, 0 -/* 80340DC0 41 82 00 14 */ beq lbl_80340DD4 -/* 80340DC4 80 03 02 D0 */ lwz r0, 0x2d0(r3) -/* 80340DC8 7C 00 20 00 */ cmpw r0, r4 -/* 80340DCC 40 80 00 08 */ bge lbl_80340DD4 -/* 80340DD0 7C 04 03 78 */ mr r4, r0 -lbl_80340DD4: -/* 80340DD4 80 A5 00 10 */ lwz r5, 0x10(r5) -lbl_80340DD8: -/* 80340DD8 28 05 00 00 */ cmplwi r5, 0 -/* 80340DDC 40 82 FF DC */ bne lbl_80340DB8 -/* 80340DE0 7C 83 23 78 */ mr r3, r4 -/* 80340DE4 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSTime/OSGetTime.s b/asm/dolphin/os/OSTime/OSGetTime.s deleted file mode 100644 index 68dda67e660..00000000000 --- a/asm/dolphin/os/OSTime/OSGetTime.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_803426FC: -/* 803426FC 7C 6D 42 E6 */ mftbu r3 -/* 80342700 7C 8C 42 E6 */ mftb r4, 0x10c -/* 80342704 7C AD 42 E6 */ mftbu r5 -/* 80342708 7C 03 28 00 */ cmpw r3, r5 -/* 8034270C 40 82 FF F0 */ bne OSGetTime -/* 80342710 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionCheck__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/actionCheck__10daAlldie_cFv.s deleted file mode 100644 index 05b870da2ac..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionCheck__10daAlldie_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_804D5838: -/* 804D5838 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D583C 7C 08 02 A6 */ mflr r0 -/* 804D5840 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5844 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D5848 7C 7F 1B 78 */ mr r31, r3 -/* 804D584C 88 03 04 E2 */ lbz r0, 0x4e2(r3) -/* 804D5850 7C 03 07 74 */ extsb r3, r0 -/* 804D5854 4B B4 71 C9 */ bl fopAcM_myRoomSearchEnemy__FSc -/* 804D5858 28 03 00 00 */ cmplwi r3, 0 -/* 804D585C 40 82 00 14 */ bne lbl_804D5870 -/* 804D5860 38 00 00 02 */ li r0, 2 -/* 804D5864 98 1F 05 68 */ stb r0, 0x568(r31) -/* 804D5868 38 00 00 41 */ li r0, 0x41 -/* 804D586C B0 1F 05 6A */ sth r0, 0x56a(r31) -lbl_804D5870: -/* 804D5870 38 60 00 01 */ li r3, 1 -/* 804D5874 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D5878 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D587C 7C 08 03 A6 */ mtlr r0 -/* 804D5880 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5884 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionEvent__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/actionEvent__10daAlldie_cFv.s deleted file mode 100644 index f460e05dceb..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionEvent__10daAlldie_cFv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_804D59A0: -/* 804D59A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D59A4 7C 08 02 A6 */ mflr r0 -/* 804D59A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D59AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D59B0 93 C1 00 08 */ stw r30, 8(r1) -/* 804D59B4 7C 7E 1B 78 */ mr r30, r3 -/* 804D59B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D59BC 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D59C0 38 7F 4F F8 */ addi r3, r31, 0x4ff8 -/* 804D59C4 A8 9E 05 6C */ lha r4, 0x56c(r30) -/* 804D59C8 4B B7 20 B1 */ bl endCheck__16dEvent_manager_cFs -/* 804D59CC 2C 03 00 00 */ cmpwi r3, 0 -/* 804D59D0 41 82 00 58 */ beq lbl_804D5A28 -/* 804D59D4 38 7F 4E C8 */ addi r3, r31, 0x4ec8 -/* 804D59D8 4B B6 CA 91 */ bl reset__14dEvt_control_cFv -/* 804D59DC A8 1E 05 6E */ lha r0, 0x56e(r30) -/* 804D59E0 2C 00 FF FF */ cmpwi r0, -1 -/* 804D59E4 41 82 00 34 */ beq lbl_804D5A18 -/* 804D59E8 38 00 00 04 */ li r0, 4 -/* 804D59EC 98 1E 05 68 */ stb r0, 0x568(r30) -/* 804D59F0 7F C3 F3 78 */ mr r3, r30 -/* 804D59F4 A8 9E 05 6E */ lha r4, 0x56e(r30) -/* 804D59F8 A8 1E 05 70 */ lha r0, 0x570(r30) -/* 804D59FC 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 804D5A00 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 804D5A04 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 804D5A08 38 E0 00 00 */ li r7, 0 -/* 804D5A0C 39 00 00 01 */ li r8, 1 -/* 804D5A10 4B B4 5C 6D */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -/* 804D5A14 48 00 00 14 */ b lbl_804D5A28 -lbl_804D5A18: -/* 804D5A18 38 00 00 00 */ li r0, 0 -/* 804D5A1C 98 1E 05 68 */ stb r0, 0x568(r30) -/* 804D5A20 38 00 FF FF */ li r0, -1 -/* 804D5A24 B0 1E 05 70 */ sth r0, 0x570(r30) -lbl_804D5A28: -/* 804D5A28 38 60 00 01 */ li r3, 1 -/* 804D5A2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D5A30 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D5A34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5A38 7C 08 03 A6 */ mtlr r0 -/* 804D5A3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5A40 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionNext__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/actionNext__10daAlldie_cFv.s deleted file mode 100644 index ce7bd3100e4..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionNext__10daAlldie_cFv.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_804D5A44: -/* 804D5A44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D5A48 7C 08 02 A6 */ mflr r0 -/* 804D5A4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5A50 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D5A54 7C 7F 1B 78 */ mr r31, r3 -/* 804D5A58 A0 03 00 F8 */ lhz r0, 0xf8(r3) -/* 804D5A5C 28 00 00 02 */ cmplwi r0, 2 -/* 804D5A60 40 82 00 78 */ bne lbl_804D5AD8 -/* 804D5A64 A8 1F 05 6E */ lha r0, 0x56e(r31) -/* 804D5A68 B0 1F 05 6C */ sth r0, 0x56c(r31) -/* 804D5A6C 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 804D5A70 7C 04 07 74 */ extsb r4, r0 -/* 804D5A74 38 00 FF FF */ li r0, -1 -/* 804D5A78 B0 1F 05 6E */ sth r0, 0x56e(r31) -/* 804D5A7C A8 1F 05 70 */ lha r0, 0x570(r31) -/* 804D5A80 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 804D5A84 4B B6 DA 7D */ bl searchMapEventData__14dEvt_control_cFUcl -/* 804D5A88 28 03 00 00 */ cmplwi r3, 0 -/* 804D5A8C 41 82 00 30 */ beq lbl_804D5ABC -/* 804D5A90 88 03 00 05 */ lbz r0, 5(r3) -/* 804D5A94 B0 1F 05 70 */ sth r0, 0x570(r31) -/* 804D5A98 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D5A9C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D5AA0 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 804D5AA4 7F E4 FB 78 */ mr r4, r31 -/* 804D5AA8 A8 1F 05 70 */ lha r0, 0x570(r31) -/* 804D5AAC 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 804D5AB0 4B B7 1B E9 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D5AB4 B0 7F 05 6E */ sth r3, 0x56e(r31) -/* 804D5AB8 48 00 00 0C */ b lbl_804D5AC4 -lbl_804D5ABC: -/* 804D5ABC 38 00 FF FF */ li r0, -1 -/* 804D5AC0 B0 1F 05 70 */ sth r0, 0x570(r31) -lbl_804D5AC4: -/* 804D5AC4 38 00 00 05 */ li r0, 5 -/* 804D5AC8 98 1F 05 68 */ stb r0, 0x568(r31) -/* 804D5ACC 7F E3 FB 78 */ mr r3, r31 -/* 804D5AD0 4B FF FE D1 */ bl actionEvent__10daAlldie_cFv -/* 804D5AD4 48 00 00 24 */ b lbl_804D5AF8 -lbl_804D5AD8: -/* 804D5AD8 A8 9F 05 6E */ lha r4, 0x56e(r31) -/* 804D5ADC A8 1F 05 70 */ lha r0, 0x570(r31) -/* 804D5AE0 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 804D5AE4 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 804D5AE8 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 804D5AEC 38 E0 00 00 */ li r7, 0 -/* 804D5AF0 39 00 00 01 */ li r8, 1 -/* 804D5AF4 4B B4 5B 89 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -lbl_804D5AF8: -/* 804D5AF8 38 60 00 01 */ li r3, 1 -/* 804D5AFC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D5B00 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5B04 7C 08 03 A6 */ mtlr r0 -/* 804D5B08 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5B0C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionOrder__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/actionOrder__10daAlldie_cFv.s deleted file mode 100644 index 34a8ee23001..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionOrder__10daAlldie_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_804D5938: -/* 804D5938 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D593C 7C 08 02 A6 */ mflr r0 -/* 804D5940 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5944 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D5948 7C 7F 1B 78 */ mr r31, r3 -/* 804D594C A0 03 00 F8 */ lhz r0, 0xf8(r3) -/* 804D5950 28 00 00 02 */ cmplwi r0, 2 -/* 804D5954 40 82 00 10 */ bne lbl_804D5964 -/* 804D5958 38 00 00 05 */ li r0, 5 -/* 804D595C 98 1F 05 68 */ stb r0, 0x568(r31) -/* 804D5960 48 00 00 28 */ b lbl_804D5988 -lbl_804D5964: -/* 804D5964 4B FF FE B5 */ bl getEventNo__10daAlldie_cFv -/* 804D5968 7C 65 1B 78 */ mr r5, r3 -/* 804D596C 7F E3 FB 78 */ mr r3, r31 -/* 804D5970 A8 9F 05 6C */ lha r4, 0x56c(r31) -/* 804D5974 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 804D5978 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 804D597C 38 E0 00 00 */ li r7, 0 -/* 804D5980 39 00 00 01 */ li r8, 1 -/* 804D5984 4B B4 5C F9 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -lbl_804D5988: -/* 804D5988 38 60 00 01 */ li r3, 1 -/* 804D598C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D5990 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5994 7C 08 03 A6 */ mtlr r0 -/* 804D5998 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D599C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionTimer__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/actionTimer__10daAlldie_cFv.s deleted file mode 100644 index c4651573335..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/actionTimer__10daAlldie_cFv.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_804D5888: -/* 804D5888 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D588C 7C 08 02 A6 */ mflr r0 -/* 804D5890 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5894 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804D5898 93 C1 00 08 */ stw r30, 8(r1) -/* 804D589C 7C 7E 1B 78 */ mr r30, r3 -/* 804D58A0 88 03 04 E2 */ lbz r0, 0x4e2(r3) -/* 804D58A4 7C 03 07 74 */ extsb r3, r0 -/* 804D58A8 4B B4 71 75 */ bl fopAcM_myRoomSearchEnemy__FSc -/* 804D58AC 28 03 00 00 */ cmplwi r3, 0 -/* 804D58B0 41 82 00 10 */ beq lbl_804D58C0 -/* 804D58B4 38 00 00 01 */ li r0, 1 -/* 804D58B8 98 1E 05 68 */ stb r0, 0x568(r30) -/* 804D58BC 48 00 00 60 */ b lbl_804D591C -lbl_804D58C0: -/* 804D58C0 A8 7E 05 6A */ lha r3, 0x56a(r30) -/* 804D58C4 2C 03 00 00 */ cmpwi r3, 0 -/* 804D58C8 40 81 00 10 */ ble lbl_804D58D8 -/* 804D58CC 38 03 FF FF */ addi r0, r3, -1 -/* 804D58D0 B0 1E 05 6A */ sth r0, 0x56a(r30) -/* 804D58D4 48 00 00 48 */ b lbl_804D591C -lbl_804D58D8: -/* 804D58D8 A8 1E 05 6C */ lha r0, 0x56c(r30) -/* 804D58DC 2C 00 FF FF */ cmpwi r0, -1 -/* 804D58E0 40 82 00 10 */ bne lbl_804D58F0 -/* 804D58E4 38 00 00 00 */ li r0, 0 -/* 804D58E8 98 1E 05 68 */ stb r0, 0x568(r30) -/* 804D58EC 48 00 00 0C */ b lbl_804D58F8 -lbl_804D58F0: -/* 804D58F0 38 00 00 03 */ li r0, 3 -/* 804D58F4 98 1E 05 68 */ stb r0, 0x568(r30) -lbl_804D58F8: -/* 804D58F8 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804D58FC 7C 1F 07 74 */ extsb r31, r0 -/* 804D5900 7F C3 F3 78 */ mr r3, r30 -/* 804D5904 4B FF FF 21 */ bl getSwbit__10daAlldie_cFv -/* 804D5908 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 804D590C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D5910 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D5914 7F E5 FB 78 */ mr r5, r31 -/* 804D5918 4B B5 F8 E9 */ bl onSwitch__10dSv_info_cFii -lbl_804D591C: -/* 804D591C 38 60 00 01 */ li r3, 1 -/* 804D5920 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804D5924 83 C1 00 08 */ lwz r30, 8(r1) -/* 804D5928 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D592C 7C 08 03 A6 */ mtlr r0 -/* 804D5930 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5934 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 634ea11e180..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_804D5BF0: -/* 804D5BF0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 804D5BF4 7C 08 02 A6 */ mflr r0 -/* 804D5BF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 804D5BFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D5C00 4B E8 C5 DD */ bl _savegpr_29 -/* 804D5C04 7C 7F 1B 78 */ mr r31, r3 -/* 804D5C08 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 804D5C0C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 804D5C10 40 82 00 1C */ bne lbl_804D5C2C -/* 804D5C14 28 1F 00 00 */ cmplwi r31, 0 -/* 804D5C18 41 82 00 08 */ beq lbl_804D5C20 -/* 804D5C1C 4B B4 2F 49 */ bl __ct__10fopAc_ac_cFv -lbl_804D5C20: -/* 804D5C20 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 804D5C24 60 00 00 08 */ ori r0, r0, 8 -/* 804D5C28 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_804D5C2C: -/* 804D5C2C 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 804D5C30 7C 1E 07 74 */ extsb r30, r0 -/* 804D5C34 7F E3 FB 78 */ mr r3, r31 -/* 804D5C38 4B FF FB ED */ bl getSwbit__10daAlldie_cFv -/* 804D5C3C 54 64 06 3E */ clrlwi r4, r3, 0x18 -/* 804D5C40 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D5C44 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D5C48 7F C5 F3 78 */ mr r5, r30 -/* 804D5C4C 4B B5 F7 15 */ bl isSwitch__10dSv_info_cCFii -/* 804D5C50 2C 03 00 00 */ cmpwi r3, 0 -/* 804D5C54 40 82 00 10 */ bne lbl_804D5C64 -/* 804D5C58 38 00 00 01 */ li r0, 1 -/* 804D5C5C 98 1F 05 68 */ stb r0, 0x568(r31) -/* 804D5C60 48 00 00 0C */ b lbl_804D5C6C -lbl_804D5C64: -/* 804D5C64 38 00 00 00 */ li r0, 0 -/* 804D5C68 98 1F 05 68 */ stb r0, 0x568(r31) -lbl_804D5C6C: -/* 804D5C6C 38 00 00 00 */ li r0, 0 -/* 804D5C70 B0 1F 04 E8 */ sth r0, 0x4e8(r31) -/* 804D5C74 B0 1F 04 E4 */ sth r0, 0x4e4(r31) -/* 804D5C78 B0 1F 04 E0 */ sth r0, 0x4e0(r31) -/* 804D5C7C B0 1F 04 DC */ sth r0, 0x4dc(r31) -/* 804D5C80 7F E3 FB 78 */ mr r3, r31 -/* 804D5C84 4B FF FB 95 */ bl getEventNo__10daAlldie_cFv -/* 804D5C88 7C 65 1B 78 */ mr r5, r3 -/* 804D5C8C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804D5C90 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804D5C94 3B A3 4F F8 */ addi r29, r3, 0x4ff8 -/* 804D5C98 7F A3 EB 78 */ mr r3, r29 -/* 804D5C9C 7F E4 FB 78 */ mr r4, r31 -/* 804D5CA0 4B B7 19 F9 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D5CA4 B0 7F 05 6C */ sth r3, 0x56c(r31) -/* 804D5CA8 38 00 FF FF */ li r0, -1 -/* 804D5CAC B0 1F 05 70 */ sth r0, 0x570(r31) -/* 804D5CB0 B0 1F 05 6E */ sth r0, 0x56e(r31) -/* 804D5CB4 7F E3 FB 78 */ mr r3, r31 -/* 804D5CB8 4B FF FB 61 */ bl getEventNo__10daAlldie_cFv -/* 804D5CBC 7F C4 F3 78 */ mr r4, r30 -/* 804D5CC0 4B B6 D8 41 */ bl searchMapEventData__14dEvt_control_cFUcl -/* 804D5CC4 28 03 00 00 */ cmplwi r3, 0 -/* 804D5CC8 41 82 00 24 */ beq lbl_804D5CEC -/* 804D5CCC 88 03 00 05 */ lbz r0, 5(r3) -/* 804D5CD0 B0 1F 05 70 */ sth r0, 0x570(r31) -/* 804D5CD4 7F A3 EB 78 */ mr r3, r29 -/* 804D5CD8 7F E4 FB 78 */ mr r4, r31 -/* 804D5CDC A8 1F 05 70 */ lha r0, 0x570(r31) -/* 804D5CE0 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 804D5CE4 4B B7 19 B5 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc -/* 804D5CE8 B0 7F 05 6E */ sth r3, 0x56e(r31) -lbl_804D5CEC: -/* 804D5CEC A8 1F 05 6C */ lha r0, 0x56c(r31) -/* 804D5CF0 B0 1F 00 FC */ sth r0, 0xfc(r31) -/* 804D5CF4 7F E3 FB 78 */ mr r3, r31 -/* 804D5CF8 4B FF FB 21 */ bl getEventNo__10daAlldie_cFv -/* 804D5CFC 98 7F 00 FE */ stb r3, 0xfe(r31) -/* 804D5D00 38 60 00 04 */ li r3, 4 -/* 804D5D04 39 61 00 20 */ addi r11, r1, 0x20 -/* 804D5D08 4B E8 C5 21 */ bl _restgpr_29 -/* 804D5D0C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 804D5D10 7C 08 03 A6 */ mtlr r0 -/* 804D5D14 38 21 00 20 */ addi r1, r1, 0x20 -/* 804D5D18 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Delete__FP10daAlldie_c.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Delete__FP10daAlldie_c.s deleted file mode 100644 index 4dfd8fe106c..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Delete__FP10daAlldie_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_804D5BC0: -/* 804D5BC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D5BC4 7C 08 02 A6 */ mflr r0 -/* 804D5BC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5BCC 28 03 00 00 */ cmplwi r3, 0 -/* 804D5BD0 41 82 00 0C */ beq lbl_804D5BDC -/* 804D5BD4 38 80 00 00 */ li r4, 0 -/* 804D5BD8 4B B4 30 B5 */ bl __dt__10fopAc_ac_cFv -lbl_804D5BDC: -/* 804D5BDC 38 60 00 01 */ li r3, 1 -/* 804D5BE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5BE4 7C 08 03 A6 */ mtlr r0 -/* 804D5BE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5BEC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Execute__FP10daAlldie_c.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Execute__FP10daAlldie_c.s deleted file mode 100644 index 148e1399ce9..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Execute__FP10daAlldie_c.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_804D5B94: -/* 804D5B94 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D5B98 7C 08 02 A6 */ mflr r0 -/* 804D5B9C 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5BA0 4B FF FF 71 */ bl execute__10daAlldie_cFv -/* 804D5BA4 38 60 00 01 */ li r3, 1 -/* 804D5BA8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5BAC 7C 08 03 A6 */ mtlr r0 -/* 804D5BB0 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5BB4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/execute__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/execute__10daAlldie_cFv.s deleted file mode 100644 index a435fa8f7fa..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/execute__10daAlldie_cFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_804D5B10: -/* 804D5B10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804D5B14 7C 08 02 A6 */ mflr r0 -/* 804D5B18 90 01 00 14 */ stw r0, 0x14(r1) -/* 804D5B1C 88 03 05 68 */ lbz r0, 0x568(r3) -/* 804D5B20 2C 00 00 03 */ cmpwi r0, 3 -/* 804D5B24 41 82 00 38 */ beq lbl_804D5B5C -/* 804D5B28 40 80 00 14 */ bge lbl_804D5B3C -/* 804D5B2C 2C 00 00 01 */ cmpwi r0, 1 -/* 804D5B30 41 82 00 1C */ beq lbl_804D5B4C -/* 804D5B34 40 80 00 20 */ bge lbl_804D5B54 -/* 804D5B38 48 00 00 3C */ b lbl_804D5B74 -lbl_804D5B3C: -/* 804D5B3C 2C 00 00 05 */ cmpwi r0, 5 -/* 804D5B40 41 82 00 24 */ beq lbl_804D5B64 -/* 804D5B44 40 80 00 30 */ bge lbl_804D5B74 -/* 804D5B48 48 00 00 24 */ b lbl_804D5B6C -lbl_804D5B4C: -/* 804D5B4C 4B FF FC ED */ bl actionCheck__10daAlldie_cFv -/* 804D5B50 48 00 00 28 */ b lbl_804D5B78 -lbl_804D5B54: -/* 804D5B54 4B FF FD 35 */ bl actionTimer__10daAlldie_cFv -/* 804D5B58 48 00 00 20 */ b lbl_804D5B78 -lbl_804D5B5C: -/* 804D5B5C 4B FF FD DD */ bl actionOrder__10daAlldie_cFv -/* 804D5B60 48 00 00 18 */ b lbl_804D5B78 -lbl_804D5B64: -/* 804D5B64 4B FF FE 3D */ bl actionEvent__10daAlldie_cFv -/* 804D5B68 48 00 00 10 */ b lbl_804D5B78 -lbl_804D5B6C: -/* 804D5B6C 4B FF FE D9 */ bl actionNext__10daAlldie_cFv -/* 804D5B70 48 00 00 08 */ b lbl_804D5B78 -lbl_804D5B74: -/* 804D5B74 4B FF FC BD */ bl actionWait__10daAlldie_cFv -lbl_804D5B78: -/* 804D5B78 38 60 00 01 */ li r3, 1 -/* 804D5B7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804D5B80 7C 08 03 A6 */ mtlr r0 -/* 804D5B84 38 21 00 10 */ addi r1, r1, 0x10 -/* 804D5B88 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/getEventNo__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/getEventNo__10daAlldie_cFv.s deleted file mode 100644 index fc6db08aedb..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/getEventNo__10daAlldie_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5818: -/* 804D5818 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 804D581C 54 03 46 3E */ srwi r3, r0, 0x18 -/* 804D5820 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_alldie/d_a_alldie/getSwbit__10daAlldie_cFv.s b/asm/rel/d/a/d_a_alldie/d_a_alldie/getSwbit__10daAlldie_cFv.s deleted file mode 100644 index 50eddecd780..00000000000 --- a/asm/rel/d/a/d_a_alldie/d_a_alldie/getSwbit__10daAlldie_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_804D5824: -/* 804D5824 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 804D5828 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f -/* 804D582C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_swc00/d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s b/asm/rel/d/a/d_a_swc00/d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s deleted file mode 100644 index 2b34817d7d2..00000000000 --- a/asm/rel/d/a/d_a_swc00/d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A15DC: -/* 805A15DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A15E0 7C 08 02 A6 */ mflr r0 -/* 805A15E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A15E8 48 00 00 15 */ bl execute__9daSwc00_cFv -/* 805A15EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A15F0 7C 08 03 A6 */ mtlr r0 -/* 805A15F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A15F8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/create__10daTboxSw_cFv.s b/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/create__10daTboxSw_cFv.s deleted file mode 100644 index c1b7a70a17a..00000000000 --- a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/create__10daTboxSw_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_80D66860: -/* 80D66860 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D66864 7C 08 02 A6 */ mflr r0 -/* 80D66868 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D6686C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D66870 7C 7F 1B 78 */ mr r31, r3 -/* 80D66874 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D66878 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D6687C 40 82 00 1C */ bne lbl_80D66898 -/* 80D66880 28 1F 00 00 */ cmplwi r31, 0 -/* 80D66884 41 82 00 08 */ beq lbl_80D6688C -/* 80D66888 4B 2B 22 DD */ bl __ct__10fopAc_ac_cFv -lbl_80D6688C: -/* 80D6688C 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D66890 60 00 00 08 */ ori r0, r0, 8 -/* 80D66894 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D66898: -/* 80D66898 7F E3 FB 78 */ mr r3, r31 -/* 80D6689C 4B FF FF BD */ bl Create__10daTboxSw_cFv -/* 80D668A0 2C 03 00 00 */ cmpwi r3, 0 -/* 80D668A4 40 82 00 0C */ bne lbl_80D668B0 -/* 80D668A8 38 60 00 05 */ li r3, 5 -/* 80D668AC 48 00 00 08 */ b lbl_80D668B4 -lbl_80D668B0: -/* 80D668B0 38 60 00 04 */ li r3, 4 -lbl_80D668B4: -/* 80D668B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D668B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D668BC 7C 08 03 A6 */ mtlr r0 -/* 80D668C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D668C4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Create__FP10fopAc_ac_c.s deleted file mode 100644 index e24beb2dffc..00000000000 --- a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D669A8: -/* 80D669A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D669AC 7C 08 02 A6 */ mflr r0 -/* 80D669B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D669B4 4B FF FE AD */ bl create__10daTboxSw_cFv -/* 80D669B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D669BC 7C 08 03 A6 */ mtlr r0 -/* 80D669C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D669C4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Delete__FP10daTboxSw_c.s b/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Delete__FP10daTboxSw_c.s deleted file mode 100644 index e7f5f8509d3..00000000000 --- a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Delete__FP10daTboxSw_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D66988: -/* 80D66988 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6698C 7C 08 02 A6 */ mflr r0 -/* 80D66990 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66994 4B FF FF AD */ bl _delete__10daTboxSw_cFv -/* 80D66998 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6699C 7C 08 03 A6 */ mtlr r0 -/* 80D669A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D669A4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Draw__FP10daTboxSw_c.s b/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Draw__FP10daTboxSw_c.s deleted file mode 100644 index 142a0d85b9c..00000000000 --- a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Draw__FP10daTboxSw_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D66948: -/* 80D66948 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6694C 7C 08 02 A6 */ mflr r0 -/* 80D66950 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66954 4B FF FF E5 */ bl draw__10daTboxSw_cFv -/* 80D66958 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6695C 7C 08 03 A6 */ mtlr r0 -/* 80D66960 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66964 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Execute__FP10daTboxSw_c.s b/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Execute__FP10daTboxSw_c.s deleted file mode 100644 index 25dfee4367d..00000000000 --- a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Execute__FP10daTboxSw_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D66968: -/* 80D66968 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6696C 7C 08 02 A6 */ mflr r0 -/* 80D66970 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66974 4B FF FF 55 */ bl execute__10daTboxSw_cFv -/* 80D66978 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6697C 7C 08 03 A6 */ mtlr r0 -/* 80D66980 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66984 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/execute__10daTboxSw_cFv.s b/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/execute__10daTboxSw_cFv.s deleted file mode 100644 index 37527376e52..00000000000 --- a/asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/execute__10daTboxSw_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80D668C8: -/* 80D668C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D668CC 7C 08 02 A6 */ mflr r0 -/* 80D668D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D668D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D668D8 7C 7F 1B 78 */ mr r31, r3 -/* 80D668DC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D668E0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D668E4 38 63 09 58 */ addi r3, r3, 0x958 -/* 80D668E8 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D668EC 54 04 06 BE */ clrlwi r4, r0, 0x1a -/* 80D668F0 4B 2C DE F9 */ bl isTbox__12dSv_memBit_cCFi -/* 80D668F4 2C 03 00 00 */ cmpwi r3, 0 -/* 80D668F8 41 82 00 28 */ beq lbl_80D66920 -/* 80D668FC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D66900 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D66904 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D66908 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f -/* 80D6690C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D66910 7C 05 07 74 */ extsb r5, r0 -/* 80D66914 4B 2C E8 ED */ bl onSwitch__10dSv_info_cFii -/* 80D66918 7F E3 FB 78 */ mr r3, r31 -/* 80D6691C 4B 2B 33 61 */ bl fopAcM_delete__FP10fopAc_ac_c -lbl_80D66920: -/* 80D66920 38 60 00 01 */ li r3, 1 -/* 80D66924 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D66928 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6692C 7C 08 03 A6 */ mtlr r0 -/* 80D66930 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66934 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 6ac61b862be..00000000000 --- a/asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_80529B44: -/* 80529B44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80529B48 7C 08 02 A6 */ mflr r0 -/* 80529B4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80529B50 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80529B54 7C 7F 1B 78 */ mr r31, r3 -/* 80529B58 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80529B5C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80529B60 40 82 00 1C */ bne lbl_80529B7C -/* 80529B64 28 1F 00 00 */ cmplwi r31, 0 -/* 80529B68 41 82 00 08 */ beq lbl_80529B70 -/* 80529B6C 4B AE EF F9 */ bl __ct__10fopAc_ac_cFv -lbl_80529B70: -/* 80529B70 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80529B74 60 00 00 08 */ ori r0, r0, 8 -/* 80529B78 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80529B7C: -/* 80529B7C 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80529B80 98 1F 05 69 */ stb r0, 0x569(r31) -/* 80529B84 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80529B88 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 80529B8C 98 1F 05 68 */ stb r0, 0x568(r31) -/* 80529B90 A8 1F 04 DC */ lha r0, 0x4dc(r31) -/* 80529B94 B0 1F 05 6A */ sth r0, 0x56a(r31) -/* 80529B98 A8 1F 04 DE */ lha r0, 0x4de(r31) -/* 80529B9C B0 1F 05 6C */ sth r0, 0x56c(r31) -/* 80529BA0 A8 1F 04 E0 */ lha r0, 0x4e0(r31) -/* 80529BA4 98 1F 05 6E */ stb r0, 0x56e(r31) -/* 80529BA8 A8 1F 04 E0 */ lha r0, 0x4e0(r31) -/* 80529BAC 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 80529BB0 98 1F 05 6F */ stb r0, 0x56f(r31) -/* 80529BB4 88 7F 04 BA */ lbz r3, 0x4ba(r31) -/* 80529BB8 7C 60 07 74 */ extsb r0, r3 -/* 80529BBC 2C 00 FF FF */ cmpwi r0, -1 -/* 80529BC0 41 82 00 08 */ beq lbl_80529BC8 -/* 80529BC4 98 7F 05 68 */ stb r3, 0x568(r31) -lbl_80529BC8: -/* 80529BC8 38 60 00 04 */ li r3, 4 -/* 80529BCC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80529BD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80529BD4 7C 08 03 A6 */ mtlr r0 -/* 80529BD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80529BDC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Execute__FP13kytag14_class.s b/asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Execute__FP13kytag14_class.s deleted file mode 100644 index 1d5892900ee..00000000000 --- a/asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Execute__FP13kytag14_class.s +++ /dev/null @@ -1,113 +0,0 @@ -lbl_805299A0: -/* 805299A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 805299A4 7C 08 02 A6 */ mflr r0 -/* 805299A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 805299AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 805299B0 4B E3 88 25 */ bl _savegpr_27 -/* 805299B4 7C 7B 1B 78 */ mr r27, r3 -/* 805299B8 3B E0 00 01 */ li r31, 1 -/* 805299BC 3B C0 00 01 */ li r30, 1 -/* 805299C0 3B A0 00 01 */ li r29, 1 -/* 805299C4 3B 80 00 01 */ li r28, 1 -/* 805299C8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805299CC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805299D0 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 805299D4 38 80 13 01 */ li r4, 0x1301 -/* 805299D8 4B B0 AF E5 */ bl isEventBit__11dSv_event_cCFUs -/* 805299DC 2C 03 00 00 */ cmpwi r3, 0 -/* 805299E0 41 82 00 0C */ beq lbl_805299EC -/* 805299E4 38 60 00 01 */ li r3, 1 -/* 805299E8 48 00 01 34 */ b lbl_80529B1C -lbl_805299EC: -/* 805299EC A0 1B 05 6A */ lhz r0, 0x56a(r27) -/* 805299F0 28 00 FF FF */ cmplwi r0, 0xffff -/* 805299F4 41 82 00 38 */ beq lbl_80529A2C -/* 805299F8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805299FC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80529A00 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 80529A04 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 80529A08 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 80529A0C 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 80529A10 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80529A14 4B B0 AF A9 */ bl isEventBit__11dSv_event_cCFUs -/* 80529A18 2C 03 00 00 */ cmpwi r3, 0 -/* 80529A1C 41 82 00 0C */ beq lbl_80529A28 -/* 80529A20 3B E0 00 01 */ li r31, 1 -/* 80529A24 48 00 00 08 */ b lbl_80529A2C -lbl_80529A28: -/* 80529A28 3B E0 00 00 */ li r31, 0 -lbl_80529A2C: -/* 80529A2C A0 1B 05 6C */ lhz r0, 0x56c(r27) -/* 80529A30 28 00 FF FF */ cmplwi r0, 0xffff -/* 80529A34 41 82 00 38 */ beq lbl_80529A6C -/* 80529A38 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80529A3C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80529A40 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 80529A44 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 80529A48 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 80529A4C 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 80529A50 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80529A54 4B B0 AF 69 */ bl isEventBit__11dSv_event_cCFUs -/* 80529A58 2C 03 00 00 */ cmpwi r3, 0 -/* 80529A5C 40 82 00 0C */ bne lbl_80529A68 -/* 80529A60 3B C0 00 01 */ li r30, 1 -/* 80529A64 48 00 00 08 */ b lbl_80529A6C -lbl_80529A68: -/* 80529A68 3B C0 00 00 */ li r30, 0 -lbl_80529A6C: -/* 80529A6C 88 9B 05 6E */ lbz r4, 0x56e(r27) -/* 80529A70 28 04 00 FF */ cmplwi r4, 0xff -/* 80529A74 41 82 00 30 */ beq lbl_80529AA4 -/* 80529A78 3C 60 80 45 */ lis r3, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */ -/* 80529A7C 88 A3 0D 64 */ lbz r5, mStayNo__20dStage_roomControl_c+0x0@l(r3) /* 0x80450D64@l */ -/* 80529A80 7C A5 07 74 */ extsb r5, r5 -/* 80529A84 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80529A88 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80529A8C 4B B0 B8 D5 */ bl isSwitch__10dSv_info_cCFii -/* 80529A90 2C 03 00 00 */ cmpwi r3, 0 -/* 80529A94 41 82 00 0C */ beq lbl_80529AA0 -/* 80529A98 3B A0 00 01 */ li r29, 1 -/* 80529A9C 48 00 00 08 */ b lbl_80529AA4 -lbl_80529AA0: -/* 80529AA0 3B A0 00 00 */ li r29, 0 -lbl_80529AA4: -/* 80529AA4 88 9B 05 6F */ lbz r4, 0x56f(r27) -/* 80529AA8 28 04 00 FF */ cmplwi r4, 0xff -/* 80529AAC 41 82 00 30 */ beq lbl_80529ADC -/* 80529AB0 3C 60 80 45 */ lis r3, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */ -/* 80529AB4 88 A3 0D 64 */ lbz r5, mStayNo__20dStage_roomControl_c+0x0@l(r3) /* 0x80450D64@l */ -/* 80529AB8 7C A5 07 74 */ extsb r5, r5 -/* 80529ABC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80529AC0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80529AC4 4B B0 B8 9D */ bl isSwitch__10dSv_info_cCFii -/* 80529AC8 2C 03 00 00 */ cmpwi r3, 0 -/* 80529ACC 40 82 00 0C */ bne lbl_80529AD8 -/* 80529AD0 3B 80 00 01 */ li r28, 1 -/* 80529AD4 48 00 00 08 */ b lbl_80529ADC -lbl_80529AD8: -/* 80529AD8 3B 80 00 00 */ li r28, 0 -lbl_80529ADC: -/* 80529ADC 2C 1F 00 01 */ cmpwi r31, 1 -/* 80529AE0 40 82 00 38 */ bne lbl_80529B18 -/* 80529AE4 2C 1E 00 01 */ cmpwi r30, 1 -/* 80529AE8 40 82 00 30 */ bne lbl_80529B18 -/* 80529AEC 2C 1D 00 01 */ cmpwi r29, 1 -/* 80529AF0 40 82 00 28 */ bne lbl_80529B18 -/* 80529AF4 2C 1C 00 01 */ cmpwi r28, 1 -/* 80529AF8 40 82 00 20 */ bne lbl_80529B18 -/* 80529AFC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80529B00 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80529B04 38 64 00 58 */ addi r3, r4, 0x58 -/* 80529B08 38 84 4E 00 */ addi r4, r4, 0x4e00 -/* 80529B0C 88 BB 05 68 */ lbz r5, 0x568(r27) -/* 80529B10 88 DB 05 69 */ lbz r6, 0x569(r27) -/* 80529B14 4B B0 92 09 */ bl set__25dSv_player_return_place_cFPCcScUc -lbl_80529B18: -/* 80529B18 38 60 00 01 */ li r3, 1 -lbl_80529B1C: -/* 80529B1C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80529B20 4B E3 87 01 */ bl _restgpr_27 -/* 80529B24 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80529B28 7C 08 03 A6 */ mtlr r0 -/* 80529B2C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80529B30 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/__dt__13daTagGstart_cFv.s b/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/__dt__13daTagGstart_cFv.s deleted file mode 100644 index 3d75bbc7746..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/__dt__13daTagGstart_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_805A3514: -/* 805A3514 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A3518 7C 08 02 A6 */ mflr r0 -/* 805A351C 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3520 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A3524 93 C1 00 08 */ stw r30, 8(r1) -/* 805A3528 7C 7E 1B 79 */ or. r30, r3, r3 -/* 805A352C 7C 9F 23 78 */ mr r31, r4 -/* 805A3530 41 82 00 1C */ beq lbl_805A354C -/* 805A3534 38 80 00 00 */ li r4, 0 -/* 805A3538 4B A7 57 55 */ bl __dt__10fopAc_ac_cFv -/* 805A353C 7F E0 07 35 */ extsh. r0, r31 -/* 805A3540 40 81 00 0C */ ble lbl_805A354C -/* 805A3544 7F C3 F3 78 */ mr r3, r30 -/* 805A3548 4B D2 B7 F5 */ bl __dl__FPv -lbl_805A354C: -/* 805A354C 7F C3 F3 78 */ mr r3, r30 -/* 805A3550 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A3554 83 C1 00 08 */ lwz r30, 8(r1) -/* 805A3558 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A355C 7C 08 03 A6 */ mtlr r0 -/* 805A3560 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3564 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/create__13daTagGstart_cFv.s b/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/create__13daTagGstart_cFv.s deleted file mode 100644 index c5037b94312..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/create__13daTagGstart_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_805A3478: -/* 805A3478 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A347C 7C 08 02 A6 */ mflr r0 -/* 805A3480 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3484 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A3488 7C 7F 1B 78 */ mr r31, r3 -/* 805A348C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 805A3490 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 805A3494 40 82 00 1C */ bne lbl_805A34B0 -/* 805A3498 28 1F 00 00 */ cmplwi r31, 0 -/* 805A349C 41 82 00 08 */ beq lbl_805A34A4 -/* 805A34A0 4B A7 56 C5 */ bl __ct__10fopAc_ac_cFv -lbl_805A34A4: -/* 805A34A4 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 805A34A8 60 00 00 08 */ ori r0, r0, 8 -/* 805A34AC 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_805A34B0: -/* 805A34B0 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 805A34B4 98 1F 05 68 */ stb r0, 0x568(r31) -/* 805A34B8 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 805A34BC 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 805A34C0 98 1F 05 69 */ stb r0, 0x569(r31) -/* 805A34C4 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 805A34C8 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f -/* 805A34CC 98 1F 05 6A */ stb r0, 0x56a(r31) -/* 805A34D0 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 805A34D4 54 00 47 3E */ rlwinm r0, r0, 8, 0x1c, 0x1f -/* 805A34D8 98 1F 05 6B */ stb r0, 0x56b(r31) -/* 805A34DC 38 60 00 04 */ li r3, 4 -/* 805A34E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A34E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A34E8 7C 08 03 A6 */ mtlr r0 -/* 805A34EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A34F0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 0f948375fb7..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A34F4: -/* 805A34F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A34F8 7C 08 02 A6 */ mflr r0 -/* 805A34FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3500 4B FF FF 79 */ bl create__13daTagGstart_cFv -/* 805A3504 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A3508 7C 08 03 A6 */ mtlr r0 -/* 805A350C 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3510 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Delete__FP13daTagGstart_c.s b/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Delete__FP13daTagGstart_c.s deleted file mode 100644 index 7f46effab06..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Delete__FP13daTagGstart_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_805A3568: -/* 805A3568 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A356C 7C 08 02 A6 */ mflr r0 -/* 805A3570 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3574 38 80 FF FF */ li r4, -1 -/* 805A3578 4B FF FF 9D */ bl __dt__13daTagGstart_cFv -/* 805A357C 38 60 00 01 */ li r3, 1 -/* 805A3580 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A3584 7C 08 03 A6 */ mtlr r0 -/* 805A3588 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A358C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Execute__FP13daTagGstart_c.s b/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Execute__FP13daTagGstart_c.s deleted file mode 100644 index 09cd242cdaa..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Execute__FP13daTagGstart_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A3658: -/* 805A3658 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A365C 7C 08 02 A6 */ mflr r0 -/* 805A3660 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3664 4B FF FF 2D */ bl execute__13daTagGstart_cFv -/* 805A3668 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A366C 7C 08 03 A6 */ mtlr r0 -/* 805A3670 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3674 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/execute__13daTagGstart_cFv.s b/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/execute__13daTagGstart_cFv.s deleted file mode 100644 index 1740779243d..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/execute__13daTagGstart_cFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_805A3590: -/* 805A3590 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A3594 7C 08 02 A6 */ mflr r0 -/* 805A3598 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A359C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A35A0 7C 7F 1B 78 */ mr r31, r3 -/* 805A35A4 88 83 05 68 */ lbz r4, 0x568(r3) -/* 805A35A8 28 04 00 FF */ cmplwi r4, 0xff -/* 805A35AC 41 82 00 20 */ beq lbl_805A35CC -/* 805A35B0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A35B4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A35B8 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A35BC 7C 05 07 74 */ extsb r5, r0 -/* 805A35C0 4B A9 1D A1 */ bl isSwitch__10dSv_info_cCFii -/* 805A35C4 2C 03 00 00 */ cmpwi r3, 0 -/* 805A35C8 41 82 00 78 */ beq lbl_805A3640 -lbl_805A35CC: -/* 805A35CC 88 9F 05 69 */ lbz r4, 0x569(r31) -/* 805A35D0 28 04 00 FF */ cmplwi r4, 0xff -/* 805A35D4 41 82 00 20 */ beq lbl_805A35F4 -/* 805A35D8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A35DC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A35E0 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A35E4 7C 05 07 74 */ extsb r5, r0 -/* 805A35E8 4B A9 1D 79 */ bl isSwitch__10dSv_info_cCFii -/* 805A35EC 2C 03 00 00 */ cmpwi r3, 0 -/* 805A35F0 40 82 00 50 */ bne lbl_805A3640 -lbl_805A35F4: -/* 805A35F4 88 1F 05 6B */ lbz r0, 0x56b(r31) -/* 805A35F8 28 00 00 00 */ cmplwi r0, 0 -/* 805A35FC 40 82 00 1C */ bne lbl_805A3618 -/* 805A3600 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A3604 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A3608 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 805A360C 80 03 05 74 */ lwz r0, 0x574(r3) -/* 805A3610 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 805A3614 41 82 00 2C */ beq lbl_805A3640 -lbl_805A3618: -/* 805A3618 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A361C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A3620 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 805A3624 88 9F 05 6A */ lbz r4, 0x56a(r31) -/* 805A3628 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 805A362C 7C 05 07 74 */ extsb r5, r0 -/* 805A3630 81 83 06 28 */ lwz r12, 0x628(r3) -/* 805A3634 81 8C 01 84 */ lwz r12, 0x184(r12) -/* 805A3638 7D 89 03 A6 */ mtctr r12 -/* 805A363C 4E 80 04 21 */ bctrl -lbl_805A3640: -/* 805A3640 38 60 00 01 */ li r3, 1 -/* 805A3644 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A3648 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A364C 7C 08 03 A6 */ mtlr r0 -/* 805A3650 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3654 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__dt__12daTagHstop_cFv.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__dt__12daTagHstop_cFv.s deleted file mode 100644 index 7764fb59ef9..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__dt__12daTagHstop_cFv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_805A45F8: -/* 805A45F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A45FC 7C 08 02 A6 */ mflr r0 -/* 805A4600 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4604 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A4608 93 C1 00 08 */ stw r30, 8(r1) -/* 805A460C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 805A4610 7C 9F 23 78 */ mr r31, r4 -/* 805A4614 41 82 00 60 */ beq lbl_805A4674 -/* 805A4618 80 7E 05 6C */ lwz r3, 0x56c(r30) -/* 805A461C 28 03 00 00 */ cmplwi r3, 0 -/* 805A4620 41 82 00 0C */ beq lbl_805A462C -/* 805A4624 80 1E 05 68 */ lwz r0, 0x568(r30) -/* 805A4628 90 03 05 68 */ stw r0, 0x568(r3) -lbl_805A462C: -/* 805A462C 80 7E 05 68 */ lwz r3, 0x568(r30) -/* 805A4630 28 03 00 00 */ cmplwi r3, 0 -/* 805A4634 41 82 00 0C */ beq lbl_805A4640 -/* 805A4638 80 1E 05 6C */ lwz r0, 0x56c(r30) -/* 805A463C 90 03 05 6C */ stw r0, 0x56c(r3) -lbl_805A4640: -/* 805A4640 3C 60 80 45 */ lis r3, m_top__12daTagHstop_c@ha /* 0x80450DF8@ha */ -/* 805A4644 84 03 0D F8 */ lwzu r0, m_top__12daTagHstop_c@l(r3) /* 0x80450DF8@l */ -/* 805A4648 7C 00 F0 40 */ cmplw r0, r30 -/* 805A464C 40 82 00 0C */ bne lbl_805A4658 -/* 805A4650 80 1E 05 68 */ lwz r0, 0x568(r30) -/* 805A4654 90 03 00 00 */ stw r0, 0(r3) -lbl_805A4658: -/* 805A4658 7F C3 F3 78 */ mr r3, r30 -/* 805A465C 38 80 00 00 */ li r4, 0 -/* 805A4660 4B A7 46 2D */ bl __dt__10fopAc_ac_cFv -/* 805A4664 7F E0 07 35 */ extsh. r0, r31 -/* 805A4668 40 81 00 0C */ ble lbl_805A4674 -/* 805A466C 7F C3 F3 78 */ mr r3, r30 -/* 805A4670 4B D2 A6 CD */ bl __dl__FPv -lbl_805A4674: -/* 805A4674 7F C3 F3 78 */ mr r3, r30 -/* 805A4678 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A467C 83 C1 00 08 */ lwz r30, 8(r1) -/* 805A4680 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4684 7C 08 03 A6 */ mtlr r0 -/* 805A4688 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A468C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s deleted file mode 100644 index 0cc5e3a5ad7..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_805A4AD0: -/* 805A4AD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4AD4 7C 08 02 A6 */ mflr r0 -/* 805A4AD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4ADC 3C 60 80 5A */ lis r3, m_msgFlow__12daTagHstop_c@ha /* 0x805A4B8C@ha */ -/* 805A4AE0 38 63 4B 8C */ addi r3, r3, m_msgFlow__12daTagHstop_c@l /* 0x805A4B8C@l */ -/* 805A4AE4 4B CA 54 1D */ bl __ct__10dMsgFlow_cFv -/* 805A4AE8 3C 80 80 25 */ lis r4, __dt__10dMsgFlow_cFv@ha /* 0x80249F48@ha */ -/* 805A4AEC 38 84 9F 48 */ addi r4, r4, __dt__10dMsgFlow_cFv@l /* 0x80249F48@l */ -/* 805A4AF0 3C A0 80 5A */ lis r5, lit_3686@ha /* 0x805A4B80@ha */ -/* 805A4AF4 38 A5 4B 80 */ addi r5, r5, lit_3686@l /* 0x805A4B80@l */ -/* 805A4AF8 4B FF F8 81 */ bl __register_global_object -/* 805A4AFC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4B00 7C 08 03 A6 */ mtlr r0 -/* 805A4B04 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A4B08 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/create__12daTagHstop_cFv.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/create__12daTagHstop_cFv.s deleted file mode 100644 index 59f4f043ce4..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/create__12daTagHstop_cFv.s +++ /dev/null @@ -1,137 +0,0 @@ -lbl_805A43EC: -/* 805A43EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A43F0 7C 08 02 A6 */ mflr r0 -/* 805A43F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A43F8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A43FC 7C 7F 1B 78 */ mr r31, r3 -/* 805A4400 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 805A4404 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 805A4408 40 82 00 1C */ bne lbl_805A4424 -/* 805A440C 28 1F 00 00 */ cmplwi r31, 0 -/* 805A4410 41 82 00 08 */ beq lbl_805A4418 -/* 805A4414 4B A7 47 51 */ bl __ct__10fopAc_ac_cFv -lbl_805A4418: -/* 805A4418 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 805A441C 60 00 00 08 */ ori r0, r0, 8 -/* 805A4420 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_805A4424: -/* 805A4424 C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 805A4428 3C 60 80 5A */ lis r3, lit_3782@ha /* 0x805A4B20@ha */ -/* 805A442C C0 23 4B 20 */ lfs f1, lit_3782@l(r3) /* 0x805A4B20@l */ -/* 805A4430 EC 00 00 72 */ fmuls f0, f0, f1 -/* 805A4434 D0 1F 04 EC */ stfs f0, 0x4ec(r31) -/* 805A4438 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 805A443C EC 00 00 72 */ fmuls f0, f0, f1 -/* 805A4440 D0 1F 04 F0 */ stfs f0, 0x4f0(r31) -/* 805A4444 C0 1F 04 F4 */ lfs f0, 0x4f4(r31) -/* 805A4448 EC 00 00 72 */ fmuls f0, f0, f1 -/* 805A444C D0 1F 04 F4 */ stfs f0, 0x4f4(r31) -/* 805A4450 3C 60 80 45 */ lis r3, m_top__12daTagHstop_c@ha /* 0x80450DF8@ha */ -/* 805A4454 84 03 0D F8 */ lwzu r0, m_top__12daTagHstop_c@l(r3) /* 0x80450DF8@l */ -/* 805A4458 28 00 00 00 */ cmplwi r0, 0 -/* 805A445C 41 82 00 28 */ beq lbl_805A4484 -/* 805A4460 7C 03 03 78 */ mr r3, r0 -/* 805A4464 48 00 00 08 */ b lbl_805A446C -lbl_805A4468: -/* 805A4468 7C 03 03 78 */ mr r3, r0 -lbl_805A446C: -/* 805A446C 80 03 05 68 */ lwz r0, 0x568(r3) -/* 805A4470 28 00 00 00 */ cmplwi r0, 0 -/* 805A4474 40 82 FF F4 */ bne lbl_805A4468 -/* 805A4478 93 E3 05 68 */ stw r31, 0x568(r3) -/* 805A447C 90 7F 05 6C */ stw r3, 0x56c(r31) -/* 805A4480 48 00 00 08 */ b lbl_805A4488 -lbl_805A4484: -/* 805A4484 93 E3 00 00 */ stw r31, 0(r3) -lbl_805A4488: -/* 805A4488 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 805A448C 98 1F 05 70 */ stb r0, 0x570(r31) -/* 805A4490 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 805A4494 54 00 C7 3E */ rlwinm r0, r0, 0x18, 0x1c, 0x1f -/* 805A4498 98 1F 05 72 */ stb r0, 0x572(r31) -/* 805A449C 88 1F 05 72 */ lbz r0, 0x572(r31) -/* 805A44A0 28 00 00 0F */ cmplwi r0, 0xf -/* 805A44A4 40 82 00 0C */ bne lbl_805A44B0 -/* 805A44A8 38 00 00 00 */ li r0, 0 -/* 805A44AC 98 1F 05 72 */ stb r0, 0x572(r31) -lbl_805A44B0: -/* 805A44B0 7F E3 FB 78 */ mr r3, r31 -/* 805A44B4 48 00 02 05 */ bl setActive__12daTagHstop_cFv -/* 805A44B8 88 1F 05 72 */ lbz r0, 0x572(r31) -/* 805A44BC 28 00 00 02 */ cmplwi r0, 2 -/* 805A44C0 40 82 00 F8 */ bne lbl_805A45B8 -/* 805A44C4 4B BB B1 9D */ bl checkRoomRestartStart__9daPy_py_cFv -/* 805A44C8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 805A44CC 41 82 00 B4 */ beq lbl_805A4580 -/* 805A44D0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A44D4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A44D8 38 80 00 8A */ li r4, 0x8a -/* 805A44DC 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A44E0 7C 05 07 74 */ extsb r5, r0 -/* 805A44E4 4B A9 0E 7D */ bl isSwitch__10dSv_info_cCFii -/* 805A44E8 2C 03 00 00 */ cmpwi r3, 0 -/* 805A44EC 40 82 00 20 */ bne lbl_805A450C -/* 805A44F0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A44F4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A44F8 38 80 00 8A */ li r4, 0x8a -/* 805A44FC 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4500 7C 05 07 74 */ extsb r5, r0 -/* 805A4504 4B A9 0C FD */ bl onSwitch__10dSv_info_cFii -/* 805A4508 48 00 00 78 */ b lbl_805A4580 -lbl_805A450C: -/* 805A450C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4510 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4514 38 80 00 8B */ li r4, 0x8b -/* 805A4518 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A451C 7C 05 07 74 */ extsb r5, r0 -/* 805A4520 4B A9 0E 41 */ bl isSwitch__10dSv_info_cCFii -/* 805A4524 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4528 40 82 00 20 */ bne lbl_805A4548 -/* 805A452C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4530 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4534 38 80 00 8B */ li r4, 0x8b -/* 805A4538 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A453C 7C 05 07 74 */ extsb r5, r0 -/* 805A4540 4B A9 0C C1 */ bl onSwitch__10dSv_info_cFii -/* 805A4544 48 00 00 3C */ b lbl_805A4580 -lbl_805A4548: -/* 805A4548 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A454C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4550 38 80 00 8C */ li r4, 0x8c -/* 805A4554 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4558 7C 05 07 74 */ extsb r5, r0 -/* 805A455C 4B A9 0E 05 */ bl isSwitch__10dSv_info_cCFii -/* 805A4560 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4564 40 82 00 1C */ bne lbl_805A4580 -/* 805A4568 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A456C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4570 38 80 00 8C */ li r4, 0x8c -/* 805A4574 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4578 7C 05 07 74 */ extsb r5, r0 -/* 805A457C 4B A9 0C 85 */ bl onSwitch__10dSv_info_cFii -lbl_805A4580: -/* 805A4580 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4584 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4588 38 80 00 8C */ li r4, 0x8c -/* 805A458C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4590 7C 05 07 74 */ extsb r5, r0 -/* 805A4594 4B A9 0D CD */ bl isSwitch__10dSv_info_cCFii -/* 805A4598 2C 03 00 00 */ cmpwi r3, 0 -/* 805A459C 41 82 00 10 */ beq lbl_805A45AC -/* 805A45A0 38 00 00 00 */ li r0, 0 -/* 805A45A4 90 1F 05 74 */ stw r0, 0x574(r31) -/* 805A45A8 48 00 00 18 */ b lbl_805A45C0 -lbl_805A45AC: -/* 805A45AC 38 00 04 B0 */ li r0, 0x4b0 -/* 805A45B0 90 1F 05 74 */ stw r0, 0x574(r31) -/* 805A45B4 48 00 00 0C */ b lbl_805A45C0 -lbl_805A45B8: -/* 805A45B8 38 00 00 00 */ li r0, 0 -/* 805A45BC 90 1F 05 74 */ stw r0, 0x574(r31) -lbl_805A45C0: -/* 805A45C0 38 60 00 04 */ li r3, 4 -/* 805A45C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A45C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A45CC 7C 08 03 A6 */ mtlr r0 -/* 805A45D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A45D4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 7e365cb86d7..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A45D8: -/* 805A45D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A45DC 7C 08 02 A6 */ mflr r0 -/* 805A45E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A45E4 4B FF FE 09 */ bl create__12daTagHstop_cFv -/* 805A45E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A45EC 7C 08 03 A6 */ mtlr r0 -/* 805A45F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A45F4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Delete__FP12daTagHstop_c.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Delete__FP12daTagHstop_c.s deleted file mode 100644 index 1520133d464..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Delete__FP12daTagHstop_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_805A4690: -/* 805A4690 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4694 7C 08 02 A6 */ mflr r0 -/* 805A4698 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A469C 38 80 FF FF */ li r4, -1 -/* 805A46A0 4B FF FF 59 */ bl __dt__12daTagHstop_cFv -/* 805A46A4 38 60 00 01 */ li r3, 1 -/* 805A46A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A46AC 7C 08 03 A6 */ mtlr r0 -/* 805A46B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A46B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Execute__FP12daTagHstop_c.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Execute__FP12daTagHstop_c.s deleted file mode 100644 index 8958adc3b0f..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Execute__FP12daTagHstop_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A4AA8: -/* 805A4AA8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4AAC 7C 08 02 A6 */ mflr r0 -/* 805A4AB0 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4AB4 4B FF FC A9 */ bl execute__12daTagHstop_cFv -/* 805A4AB8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4ABC 7C 08 03 A6 */ mtlr r0 -/* 805A4AC0 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A4AC4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/execute__12daTagHstop_cFv.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/execute__12daTagHstop_cFv.s deleted file mode 100644 index ce451a1ebaf..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/execute__12daTagHstop_cFv.s +++ /dev/null @@ -1,223 +0,0 @@ -lbl_805A475C: -/* 805A475C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4760 7C 08 02 A6 */ mflr r0 -/* 805A4764 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4768 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A476C 7C 7F 1B 78 */ mr r31, r3 -/* 805A4770 A0 03 00 F8 */ lhz r0, 0xf8(r3) -/* 805A4774 28 00 00 01 */ cmplwi r0, 1 -/* 805A4778 40 82 00 A0 */ bne lbl_805A4818 -/* 805A477C 88 1F 05 73 */ lbz r0, 0x573(r31) -/* 805A4780 28 00 00 02 */ cmplwi r0, 2 -/* 805A4784 40 82 00 30 */ bne lbl_805A47B4 -/* 805A4788 3C 60 80 5A */ lis r3, m_msgFlow__12daTagHstop_c@ha /* 0x805A4B8C@ha */ -/* 805A478C 38 63 4B 8C */ addi r3, r3, m_msgFlow__12daTagHstop_c@l /* 0x805A4B8C@l */ -/* 805A4790 7F E4 FB 78 */ mr r4, r31 -/* 805A4794 A8 1F 04 E8 */ lha r0, 0x4e8(r31) -/* 805A4798 54 05 04 3E */ clrlwi r5, r0, 0x10 -/* 805A479C 38 C0 00 00 */ li r6, 0 -/* 805A47A0 38 E0 00 00 */ li r7, 0 -/* 805A47A4 4B CA 57 ED */ bl init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c -/* 805A47A8 38 00 00 03 */ li r0, 3 -/* 805A47AC 98 1F 05 73 */ stb r0, 0x573(r31) -/* 805A47B0 48 00 02 E0 */ b lbl_805A4A90 -lbl_805A47B4: -/* 805A47B4 3C 60 80 5A */ lis r3, m_msgFlow__12daTagHstop_c@ha /* 0x805A4B8C@ha */ -/* 805A47B8 38 63 4B 8C */ addi r3, r3, m_msgFlow__12daTagHstop_c@l /* 0x805A4B8C@l */ -/* 805A47BC 7F E4 FB 78 */ mr r4, r31 -/* 805A47C0 38 A0 00 00 */ li r5, 0 -/* 805A47C4 38 C0 00 00 */ li r6, 0 -/* 805A47C8 4B CA 5B 11 */ bl doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci -/* 805A47CC 2C 03 00 00 */ cmpwi r3, 0 -/* 805A47D0 41 82 02 C0 */ beq lbl_805A4A90 -/* 805A47D4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A47D8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A47DC 38 63 4E C8 */ addi r3, r3, 0x4ec8 -/* 805A47E0 4B A9 DC 89 */ bl reset__14dEvt_control_cFv -/* 805A47E4 38 00 00 00 */ li r0, 0 -/* 805A47E8 98 1F 05 73 */ stb r0, 0x573(r31) -/* 805A47EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A47F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A47F4 A8 83 5D F8 */ lha r4, 0x5df8(r3) -/* 805A47F8 A8 03 5D F4 */ lha r0, 0x5df4(r3) -/* 805A47FC 7C 00 22 14 */ add r0, r0, r4 -/* 805A4800 B0 03 5D F4 */ sth r0, 0x5df4(r3) -/* 805A4804 38 80 00 8D */ li r4, 0x8d -/* 805A4808 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A480C 7C 05 07 74 */ extsb r5, r0 -/* 805A4810 4B A9 09 F1 */ bl onSwitch__10dSv_info_cFii -/* 805A4814 48 00 02 7C */ b lbl_805A4A90 -lbl_805A4818: -/* 805A4818 80 1F 05 74 */ lwz r0, 0x574(r31) -/* 805A481C 2C 00 00 00 */ cmpwi r0, 0 -/* 805A4820 41 82 00 84 */ beq lbl_805A48A4 -/* 805A4824 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4828 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A482C 38 80 00 8F */ li r4, 0x8f -/* 805A4830 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4834 7C 05 07 74 */ extsb r5, r0 -/* 805A4838 4B A9 0B 29 */ bl isSwitch__10dSv_info_cCFii -/* 805A483C 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4840 41 82 00 10 */ beq lbl_805A4850 -/* 805A4844 38 00 00 00 */ li r0, 0 -/* 805A4848 90 1F 05 74 */ stw r0, 0x574(r31) -/* 805A484C 48 00 00 58 */ b lbl_805A48A4 -lbl_805A4850: -/* 805A4850 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4854 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4858 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 805A485C 81 83 06 28 */ lwz r12, 0x628(r3) -/* 805A4860 81 8C 01 48 */ lwz r12, 0x148(r12) -/* 805A4864 7D 89 03 A6 */ mtctr r12 -/* 805A4868 4E 80 04 21 */ bctrl -/* 805A486C 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4870 41 82 00 28 */ beq lbl_805A4898 -/* 805A4874 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4878 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A487C 38 80 00 8F */ li r4, 0x8f -/* 805A4880 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4884 7C 05 07 74 */ extsb r5, r0 -/* 805A4888 4B A9 09 79 */ bl onSwitch__10dSv_info_cFii -/* 805A488C 38 00 00 00 */ li r0, 0 -/* 805A4890 90 1F 05 74 */ stw r0, 0x574(r31) -/* 805A4894 48 00 00 10 */ b lbl_805A48A4 -lbl_805A4898: -/* 805A4898 80 7F 05 74 */ lwz r3, 0x574(r31) -/* 805A489C 38 03 FF FF */ addi r0, r3, -1 -/* 805A48A0 90 1F 05 74 */ stw r0, 0x574(r31) -lbl_805A48A4: -/* 805A48A4 7F E3 FB 78 */ mr r3, r31 -/* 805A48A8 4B FF FE 11 */ bl setActive__12daTagHstop_cFv -/* 805A48AC 88 9F 05 73 */ lbz r4, 0x573(r31) -/* 805A48B0 28 04 00 00 */ cmplwi r4, 0 -/* 805A48B4 41 82 00 98 */ beq lbl_805A494C -/* 805A48B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A48BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A48C0 80 A3 5D B8 */ lwz r5, 0x5db8(r3) -/* 805A48C4 88 1F 05 72 */ lbz r0, 0x572(r31) -/* 805A48C8 28 00 00 02 */ cmplwi r0, 2 -/* 805A48CC 40 82 00 18 */ bne lbl_805A48E4 -/* 805A48D0 88 03 00 EC */ lbz r0, 0xec(r3) -/* 805A48D4 28 00 00 00 */ cmplwi r0, 0 -/* 805A48D8 40 82 00 0C */ bne lbl_805A48E4 -/* 805A48DC 28 05 00 00 */ cmplwi r5, 0 -/* 805A48E0 40 82 00 10 */ bne lbl_805A48F0 -lbl_805A48E4: -/* 805A48E4 38 00 00 00 */ li r0, 0 -/* 805A48E8 98 1F 05 73 */ stb r0, 0x573(r31) -/* 805A48EC 48 00 01 A4 */ b lbl_805A4A90 -lbl_805A48F0: -/* 805A48F0 28 04 00 01 */ cmplwi r4, 1 -/* 805A48F4 40 82 00 24 */ bne lbl_805A4918 -/* 805A48F8 80 65 17 48 */ lwz r3, 0x1748(r5) -/* 805A48FC 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b -/* 805A4900 41 82 01 90 */ beq lbl_805A4A90 -/* 805A4904 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 -/* 805A4908 40 82 01 88 */ bne lbl_805A4A90 -/* 805A490C 38 00 00 02 */ li r0, 2 -/* 805A4910 98 1F 05 73 */ stb r0, 0x573(r31) -/* 805A4914 48 00 01 7C */ b lbl_805A4A90 -lbl_805A4918: -/* 805A4918 28 04 00 02 */ cmplwi r4, 2 -/* 805A491C 40 82 01 74 */ bne lbl_805A4A90 -/* 805A4920 80 05 17 48 */ lwz r0, 0x1748(r5) -/* 805A4924 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 805A4928 40 82 01 68 */ bne lbl_805A4A90 -/* 805A492C 7F E3 FB 78 */ mr r3, r31 -/* 805A4930 38 80 00 00 */ li r4, 0 -/* 805A4934 38 A0 00 00 */ li r5, 0 -/* 805A4938 4B A7 68 65 */ bl fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs -/* 805A493C A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 805A4940 60 00 00 01 */ ori r0, r0, 1 -/* 805A4944 B0 1F 00 FA */ sth r0, 0xfa(r31) -/* 805A4948 48 00 01 48 */ b lbl_805A4A90 -lbl_805A494C: -/* 805A494C 88 1F 05 72 */ lbz r0, 0x572(r31) -/* 805A4950 28 00 00 02 */ cmplwi r0, 2 -/* 805A4954 40 82 01 3C */ bne lbl_805A4A90 -/* 805A4958 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A495C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4960 88 03 4F AD */ lbz r0, 0x4fad(r3) -/* 805A4964 28 00 00 00 */ cmplwi r0, 0 -/* 805A4968 40 82 01 28 */ bne lbl_805A4A90 -/* 805A496C 88 03 00 EC */ lbz r0, 0xec(r3) -/* 805A4970 28 00 00 00 */ cmplwi r0, 0 -/* 805A4974 40 82 00 C0 */ bne lbl_805A4A34 -/* 805A4978 38 80 00 8D */ li r4, 0x8d -/* 805A497C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4980 7C 05 07 74 */ extsb r5, r0 -/* 805A4984 4B A9 09 DD */ bl isSwitch__10dSv_info_cCFii -/* 805A4988 2C 03 00 00 */ cmpwi r3, 0 -/* 805A498C 40 82 00 A8 */ bne lbl_805A4A34 -/* 805A4990 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4994 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4998 38 80 00 8D */ li r4, 0x8d -/* 805A499C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A49A0 7C 05 07 74 */ extsb r5, r0 -/* 805A49A4 4B A9 08 5D */ bl onSwitch__10dSv_info_cFii -/* 805A49A8 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 805A49AC 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 805A49B0 38 80 00 2B */ li r4, 0x2b -/* 805A49B4 38 A0 00 5A */ li r5, 0x5a -/* 805A49B8 38 C0 00 01 */ li r6, 1 -/* 805A49BC 4B C7 77 61 */ bl setFloatingFlow__13dMeter2Info_cFUssb -/* 805A49C0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A49C4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A49C8 38 80 00 8F */ li r4, 0x8f -/* 805A49CC 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A49D0 7C 05 07 74 */ extsb r5, r0 -/* 805A49D4 4B A9 09 8D */ bl isSwitch__10dSv_info_cCFii -/* 805A49D8 2C 03 00 00 */ cmpwi r3, 0 -/* 805A49DC 40 82 00 B4 */ bne lbl_805A4A90 -/* 805A49E0 38 00 04 B0 */ li r0, 0x4b0 -/* 805A49E4 90 1F 05 74 */ stw r0, 0x574(r31) -/* 805A49E8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A49EC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A49F0 38 80 00 8A */ li r4, 0x8a -/* 805A49F4 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A49F8 7C 05 07 74 */ extsb r5, r0 -/* 805A49FC 4B A9 08 B5 */ bl offSwitch__10dSv_info_cFii -/* 805A4A00 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4A04 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4A08 38 80 00 8B */ li r4, 0x8b -/* 805A4A0C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4A10 7C 05 07 74 */ extsb r5, r0 -/* 805A4A14 4B A9 08 9D */ bl offSwitch__10dSv_info_cFii -/* 805A4A18 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4A1C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4A20 38 80 00 8C */ li r4, 0x8c -/* 805A4A24 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4A28 7C 05 07 74 */ extsb r5, r0 -/* 805A4A2C 4B A9 08 85 */ bl offSwitch__10dSv_info_cFii -/* 805A4A30 48 00 00 60 */ b lbl_805A4A90 -lbl_805A4A34: -/* 805A4A34 80 1F 05 74 */ lwz r0, 0x574(r31) -/* 805A4A38 2C 00 00 00 */ cmpwi r0, 0 -/* 805A4A3C 40 82 00 54 */ bne lbl_805A4A90 -/* 805A4A40 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4A44 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4A48 38 80 00 8F */ li r4, 0x8f -/* 805A4A4C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4A50 7C 05 07 74 */ extsb r5, r0 -/* 805A4A54 4B A9 09 0D */ bl isSwitch__10dSv_info_cCFii -/* 805A4A58 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4A5C 40 82 00 34 */ bne lbl_805A4A90 -/* 805A4A60 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4A64 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4A68 38 80 00 8F */ li r4, 0x8f -/* 805A4A6C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4A70 7C 05 07 74 */ extsb r5, r0 -/* 805A4A74 4B A9 07 8D */ bl onSwitch__10dSv_info_cFii -/* 805A4A78 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4A7C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A4A80 38 80 00 8E */ li r4, 0x8e -/* 805A4A84 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4A88 7C 05 07 74 */ extsb r5, r0 -/* 805A4A8C 4B A9 07 75 */ bl onSwitch__10dSv_info_cFii -lbl_805A4A90: -/* 805A4A90 38 60 00 01 */ li r3, 1 -/* 805A4A94 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A4A98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4A9C 7C 08 03 A6 */ mtlr r0 -/* 805A4AA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A4AA4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/setActive__12daTagHstop_cFv.s b/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/setActive__12daTagHstop_cFv.s deleted file mode 100644 index dec5c6cc41c..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/setActive__12daTagHstop_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_805A46B8: -/* 805A46B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A46BC 7C 08 02 A6 */ mflr r0 -/* 805A46C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A46C4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A46C8 7C 7F 1B 78 */ mr r31, r3 -/* 805A46CC 88 83 05 70 */ lbz r4, 0x570(r3) -/* 805A46D0 28 04 00 FF */ cmplwi r4, 0xff -/* 805A46D4 41 82 00 60 */ beq lbl_805A4734 -/* 805A46D8 88 1F 05 72 */ lbz r0, 0x572(r31) -/* 805A46DC 28 00 00 02 */ cmplwi r0, 2 -/* 805A46E0 41 82 00 54 */ beq lbl_805A4734 -/* 805A46E4 28 00 00 00 */ cmplwi r0, 0 -/* 805A46E8 40 82 00 20 */ bne lbl_805A4708 -/* 805A46EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A46F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A46F4 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A46F8 7C 05 07 74 */ extsb r5, r0 -/* 805A46FC 4B A9 0C 65 */ bl isSwitch__10dSv_info_cCFii -/* 805A4700 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4704 40 82 00 30 */ bne lbl_805A4734 -lbl_805A4708: -/* 805A4708 88 1F 05 72 */ lbz r0, 0x572(r31) -/* 805A470C 28 00 00 01 */ cmplwi r0, 1 -/* 805A4710 40 82 00 30 */ bne lbl_805A4740 -/* 805A4714 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A4718 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A471C 88 9F 05 70 */ lbz r4, 0x570(r31) -/* 805A4720 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 805A4724 7C 05 07 74 */ extsb r5, r0 -/* 805A4728 4B A9 0C 39 */ bl isSwitch__10dSv_info_cCFii -/* 805A472C 2C 03 00 00 */ cmpwi r3, 0 -/* 805A4730 40 82 00 10 */ bne lbl_805A4740 -lbl_805A4734: -/* 805A4734 38 00 00 01 */ li r0, 1 -/* 805A4738 98 1F 05 71 */ stb r0, 0x571(r31) -/* 805A473C 48 00 00 0C */ b lbl_805A4748 -lbl_805A4740: -/* 805A4740 38 00 00 00 */ li r0, 0 -/* 805A4744 98 1F 05 71 */ stb r0, 0x571(r31) -lbl_805A4748: -/* 805A4748 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A474C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4750 7C 08 03 A6 */ mtlr r0 -/* 805A4754 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A4758 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 6eec180bbd0..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80D59AF8: -/* 80D59AF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D59AFC 7C 08 02 A6 */ mflr r0 -/* 80D59B00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D59B04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D59B08 7C 7F 1B 78 */ mr r31, r3 -/* 80D59B0C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D59B10 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D59B14 40 82 00 1C */ bne lbl_80D59B30 -/* 80D59B18 28 1F 00 00 */ cmplwi r31, 0 -/* 80D59B1C 41 82 00 08 */ beq lbl_80D59B24 -/* 80D59B20 4B 2B F0 45 */ bl __ct__10fopAc_ac_cFv -lbl_80D59B24: -/* 80D59B24 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D59B28 60 00 00 08 */ ori r0, r0, 8 -/* 80D59B2C 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D59B30: -/* 80D59B30 38 60 00 04 */ li r3, 4 -/* 80D59B34 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D59B38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D59B3C 7C 08 03 A6 */ mtlr r0 -/* 80D59B40 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D59B44 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Delete__FP11daTagInst_c.s b/asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Delete__FP11daTagInst_c.s deleted file mode 100644 index 1f199378c52..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Delete__FP11daTagInst_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80D59B48: -/* 80D59B48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D59B4C 7C 08 02 A6 */ mflr r0 -/* 80D59B50 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D59B54 28 03 00 00 */ cmplwi r3, 0 -/* 80D59B58 41 82 00 0C */ beq lbl_80D59B64 -/* 80D59B5C 38 80 00 00 */ li r4, 0 -/* 80D59B60 4B 2B F1 2D */ bl __dt__10fopAc_ac_cFv -lbl_80D59B64: -/* 80D59B64 38 60 00 01 */ li r3, 1 -/* 80D59B68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D59B6C 7C 08 03 A6 */ mtlr r0 -/* 80D59B70 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D59B74 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphBase/J3DVertex.h b/include/JSystem/J3DGraphBase/J3DVertex.h index 309194628a1..a8e67d578f7 100644 --- a/include/JSystem/J3DGraphBase/J3DVertex.h +++ b/include/JSystem/J3DGraphBase/J3DVertex.h @@ -94,8 +94,4 @@ struct VertexNormal { Vec data; }; -struct VertexPosition { - Vec data; -}; - #endif /* J3DVERTEX_H */ diff --git a/include/JSystem/J3DU/J3DUClipper.h b/include/JSystem/J3DU/J3DUClipper.h index b63f5e63250..d622fbde44e 100644 --- a/include/JSystem/J3DU/J3DUClipper.h +++ b/include/JSystem/J3DU/J3DUClipper.h @@ -2,6 +2,7 @@ #define J3DUCLIPPER_H #include "dolphin/mtx/vec.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" class J3DUClipper { diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h index 03976bde8c7..447e1483aa3 100644 --- a/include/JSystem/JUtility/JUTException.h +++ b/include/JSystem/JUtility/JUTException.h @@ -127,4 +127,9 @@ private: STATIC_ASSERT(sizeof(JUTException) == 0xA4); +struct JUTWarn { + JUTWarn& operator<<(const char*) { return *this; } + JUTWarn& operator<<(long) { return *this; } +}; + #endif /* JUTEXCEPTION_H */ diff --git a/include/MSL_C/MSL_Common/Src/float.h b/include/MSL_C/MSL_Common/Src/float.h index a41c15e2f30..794e5f853bc 100644 --- a/include/MSL_C/MSL_Common/Src/float.h +++ b/include/MSL_C/MSL_Common/Src/float.h @@ -2,6 +2,7 @@ #define MSL_COMMON_SRC_FLOAT_H #include "dolphin/types.h" +#include "fdlibm.h" #define FP_SNAN 0 #define FP_QNAN 1 @@ -42,8 +43,23 @@ inline int __fpclassifyf(float __value) { } inline int __fpclassifyd(double __value) { - // TODO: - return FP_INFINITE; + switch (__HI(__value) & 0x7ff00000) { + case 0x7ff00000: { + if ((__HI(__value) & 0x000fffff) || (__LO(__value) & 0xffffffff)) + return FP_QNAN; + else + return FP_INFINITE; + break; + } + case 0: { + if ((__HI(__value) & 0x000fffff) || (__LO(__value) & 0xffffffff)) + return FP_SUBNORMAL; + else + return FP_ZERO; + break; + } + } + return FP_NORMAL; } #endif /* MSL_COMMON_SRC_FLOAT_H */ diff --git a/include/MSL_C/math.h b/include/MSL_C/math.h index eaf436dc132..0bae081bf72 100644 --- a/include/MSL_C/math.h +++ b/include/MSL_C/math.h @@ -26,7 +26,7 @@ double exp(double); extern float __fabsf(float); inline double fabs(double f) { - return __fabsf(f); + return __fabs(f); } inline double fabsf2(float f) { return __fabsf(f); diff --git a/include/Runtime.PPCEABI.H/__va_arg.h b/include/Runtime.PPCEABI.H/__va_arg.h index f4ff105d989..64378bddb29 100644 --- a/include/Runtime.PPCEABI.H/__va_arg.h +++ b/include/Runtime.PPCEABI.H/__va_arg.h @@ -14,9 +14,9 @@ typedef struct __va_list_struct { typedef _va_list_struct __va_list[1]; #ifdef __cplusplus -extern "C" void __va_arg(void*, int); +extern "C" void* __va_arg(_va_list_struct*, int); #else -void __va_arg(void*, int); +void* __va_arg(_va_list_struct*, int); #endif #if IN_VSCODE_EDITOR diff --git a/include/Runtime.PPCEABI.H/ptmf.h b/include/Runtime.PPCEABI.H/ptmf.h index a3c9cab68c7..30060aefd27 100644 --- a/include/Runtime.PPCEABI.H/ptmf.h +++ b/include/Runtime.PPCEABI.H/ptmf.h @@ -1,6 +1,13 @@ #ifndef PTMF_H #define PTMF_H -#include "dolphin/types.h" +typedef struct __ptmf { + long this_delta; // self-explanatory + long v_offset; // vtable offset + union { + void* f_addr; // function address + long ve_offset; // virtual function entry offset (of vtable) + } f_data; +} __ptmf; #endif /* PTMF_H */ diff --git a/include/SSystem/SComponent/c_bg_s_chk.h b/include/SSystem/SComponent/c_bg_s_chk.h index eddabdabf30..7a832cf2715 100644 --- a/include/SSystem/SComponent/c_bg_s_chk.h +++ b/include/SSystem/SComponent/c_bg_s_chk.h @@ -27,6 +27,7 @@ public: u32 GetActorPid() const { return mActorPid; } void SetPolyPassChk(cBgS_PolyPassChk* p_chk) { mPolyPassChk = p_chk; } void SetGrpPassChk(cBgS_GrpPassChk* p_chk) { mGrpPassChk = p_chk; } + cBgS_PolyPassChk* GetPolyPassChk() const { return mPolyPassChk; } virtual ~cBgS_Chk(void); }; // Size: 0x14 diff --git a/include/SSystem/SComponent/c_bg_s_lin_chk.h b/include/SSystem/SComponent/c_bg_s_lin_chk.h index cfd9692cdfe..ca5c282fd24 100644 --- a/include/SSystem/SComponent/c_bg_s_lin_chk.h +++ b/include/SSystem/SComponent/c_bg_s_lin_chk.h @@ -8,15 +8,15 @@ #include "dolphin/types.h" class cBgS_LinChk : public cBgS_Chk, public cBgS_PolyInfo { -private: - /* 0x024 */ cM3dGLin mLinP; +public: + /* 0x024 */ cM3dGLin mLin; /* 0x040 */ cXyz field_0x40; /* 0x04C */ u32 field_0x4c; /* 0x050 */ bool mPreWallChk; /* 0x051 */ bool mPreGroundChk; /* 0x052 */ bool mPreRoofChk; - /* 0x053 */ u8 mFrontFlag; - /* 0x054 */ u8 mBackFlag; + /* 0x053 */ bool mFrontFlag; + /* 0x054 */ bool mBackFlag; public: cBgS_LinChk(); @@ -30,6 +30,13 @@ public: void ClrHit() { field_0x4c &= ~16; } void SetHit() { field_0x4c |= 16; } u32 ChkHit() const { return field_0x4c & 16; } + void SetCross(const cXyz& pos) { mLin.SetEnd(pos); } + cM3dGLin* GetLinP() { return &mLin; } + bool ChkBackFlag() const { return mBackFlag; } + bool ChkFrontFlag() const { return mFrontFlag; } + bool GetPreWallChk() const { return mPreWallChk; } + bool GetPreGroundChk() const { return mPreGroundChk; } + bool GetPreRoofChk() const { return mPreRoofChk; } }; #endif /* C_BG_S_LIN_CHK_H */ diff --git a/include/SSystem/SComponent/c_m3d_g_aab.h b/include/SSystem/SComponent/c_m3d_g_aab.h index d5c534a5810..ba1a556ef18 100644 --- a/include/SSystem/SComponent/c_m3d_g_aab.h +++ b/include/SSystem/SComponent/c_m3d_g_aab.h @@ -26,12 +26,12 @@ public: void PlusR(f32); const cXyz& getMaxP(void) const { return mMax; } const cXyz& getMinP(void) const { return mMin; } - const f32 GetMaxX(void) const { return mMax.GetX(); } - const f32 GetMaxY(void) const { return mMax.GetY(); } - const f32 GetMaxZ(void) const { return mMax.GetZ(); } - const f32 GetMinX(void) const { return mMin.GetX(); } - const f32 GetMinY(void) const { return mMin.GetY(); } - const f32 GetMinZ(void) const { return mMin.GetZ(); } + const f32 GetMaxX(void) const { return mMax.x; } + const f32 GetMaxY(void) const { return mMax.y; } + const f32 GetMaxZ(void) const { return mMax.z; } + const f32 GetMinX(void) const { return mMin.x; } + const f32 GetMinY(void) const { return mMin.y; } + const f32 GetMinZ(void) const { return mMin.z; } }; // Size = 0x1C STATIC_ASSERT(0x1C == sizeof(cM3dGAab)); diff --git a/include/SSystem/SComponent/c_m3d_g_pla.h b/include/SSystem/SComponent/c_m3d_g_pla.h index 387f074d5d8..bb628278f9a 100644 --- a/include/SSystem/SComponent/c_m3d_g_pla.h +++ b/include/SSystem/SComponent/c_m3d_g_pla.h @@ -2,26 +2,34 @@ #define C_M3C_G_PLA_H_ #include "SSystem/SComponent/c_xyz.h" +#include "SSystem/SComponent/c_m3d.h" #include "dolphin/types.h" // Plane with a normal class cM3dGPla { public: - cXyz mNormal; - f32 mD; + /* 0x00 */ cXyz mNormal; + /* 0x0C */ f32 mD; + /* 0x10 vtable */ + cM3dGPla() {} cM3dGPla(const cXyz*, f32); - virtual ~cM3dGPla() {} bool crossInfLin(const cXyz&, const cXyz&, cXyz&) const; void SetupNP0(const Vec&, const Vec&); void SetupNP(const Vec&, const Vec&); bool getCrossY(const cXyz&, f32*) const; bool getCrossYLessD(const Vec&, f32*) const; void Set(const cM3dGPla*); + void GetNP(); + + virtual ~cM3dGPla() {} + f32 getPlaneFunc(const Vec* pPoint) const { return mD + PSVECDotProduct(&mNormal, pPoint); } const cXyz& GetNP() const { return mNormal; } - void GetNP(); f32 GetD() const { return mD; } + void SetupFrom3Vtx(const Vec* v1, const Vec* v2, const Vec* v3) { + cM3d_CalcPla(v1, v2, v3, &mNormal, &mD); + } }; #endif \ No newline at end of file diff --git a/include/SSystem/SComponent/c_m3d_g_sph.h b/include/SSystem/SComponent/c_m3d_g_sph.h index 4d028ddcc44..de48572064d 100644 --- a/include/SSystem/SComponent/c_m3d_g_sph.h +++ b/include/SSystem/SComponent/c_m3d_g_sph.h @@ -29,9 +29,9 @@ public: void GetMinMaxCube(cXyz&, cXyz&) const; const cXyz& GetC(void) const { return mCenter; } const f32 GetR(void) const { return mRadius; } - f32 GetCX(void) const { return mCenter.GetX(); } - f32 GetCY(void) const { return mCenter.GetY(); } - f32 GetCZ(void) const { return mCenter.GetZ(); } + f32 GetCX(void) const { return mCenter.x; } + f32 GetCY(void) const { return mCenter.y; } + f32 GetCZ(void) const { return mCenter.z; } bool Cross(const cM3dGSph* other, f32* f) const { return cM3d_Cross_SphSph(this, other, f); } bool Cross(const cM3dGCps* cps, cXyz* xyz) const { return cM3d_Cross_CpsSph(*cps, *this, xyz); } diff --git a/include/SSystem/SComponent/c_m3d_g_tri.h b/include/SSystem/SComponent/c_m3d_g_tri.h index d2a009ca642..5bab254ea02 100644 --- a/include/SSystem/SComponent/c_m3d_g_tri.h +++ b/include/SSystem/SComponent/c_m3d_g_tri.h @@ -27,6 +27,9 @@ public: bool Cross(cM3dGTri const& other, cXyz* xyz) const { return cM3d_Cross_TriTri(*this, other, xyz); } + bool cross(const cM3dGLin* lin, Vec* xyz, bool param_2, bool param_3) const { + return cM3d_Cross_LinTri(lin, this, xyz, param_2, param_3); + } }; #endif \ No newline at end of file diff --git a/include/SSystem/SComponent/c_sxyz.h b/include/SSystem/SComponent/c_sxyz.h index bcc78040d0a..c595b8f495e 100644 --- a/include/SSystem/SComponent/c_sxyz.h +++ b/include/SSystem/SComponent/c_sxyz.h @@ -18,6 +18,18 @@ public: s16 GetX() const { return x; } s16 GetY() const { return y; } s16 GetZ() const { return z; } + + void set(s16 oX, s16 oY, s16 oZ) { + x = oX; + y = oY; + z = oZ; + } + + void setall(s16 val) { + x = val; + y = val; + z = val; + } }; #endif /* C_SXYZ_H */ diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index 8e7757685ad..3b7c4fb4e41 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -41,6 +41,8 @@ struct cXyz : Vec { /* 80266B84 */ cXyz operator*(f32) const; /* 80266BD0 */ cXyz operator*(Vec const&) const; /* 80266C18 */ cXyz operator/(f32) const; + /* 800977D8 */ // void operator=(cXyz const&); + void operator+=(f32 f) { x += f; y += f; @@ -72,6 +74,22 @@ struct cXyz : Vec { /* 80267128 */ s16 atan2sX_Z() const; /* 80267150 */ s16 atan2sY_XZ() const; + void set(f32 pX, f32 pY, f32 pZ) { + x = pX; + y = pY; + z = pZ; + } + + void set(const Vec& other) { + x = other.x; + y = other.y; + z = other.z; + } + + f32 getXDiff(const Vec* other) const { return x - other->x; } + f32 getYDiff(const Vec* other) const { return y - other->y; } + f32 getZDiff(const Vec* other) const { return z - other->z; } + void setAll(f32 f) { set(f, f, f); } void setMin(const cXyz& other) { diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h index d44129e45ae..dbd8e5783c0 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h @@ -3,4 +3,19 @@ #include "dolphin/types.h" +#define TRK_DISPATCH_CMD_CONNECT 1 /* Connect to the console */ +#define TRK_DISPATCH_CMD_DISCONNECT 2 /* Disconnect from the console */ +#define TRK_DISPATCH_CMD_RESET 3 /* Reset the debugger */ +#define TRK_DISPATCH_CMD_GETVERSION 4 /* Get debugger version */ +#define TRK_DISPATCH_CMD_GETSUPPORTMASK 5 /* Get Support Mask */ +#define TRK_DISPATCH_CMD_OVERRIDE 7 /* Override? */ +#define TRK_DISPATCH_CMD_READMEM 16 /* Reading from memory */ +#define TRK_DISPATCH_CMD_WRITEMEM 17 /* Writing to memory */ +#define TRK_DISPATCH_CMD_READREGS 18 /* Read a register value */ +#define TRK_DISPATCH_CMD_WRITEREGS 19 /* Set a register */ +#define TRK_DISPATCH_CMD_SETOPTION 23 /* Set an option? */ +#define TRK_DISPATCH_CMD_CONTINUE 24 /* Continue debugging */ +#define TRK_DISPATCH_CMD_STEP 25 /* Step through an instruction */ +#define TRK_DISPATCH_CMD_STOP 26 /* Stop the debugger */ + #endif /* METROTRK_PORTABLE_DISPATCH_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h index 93095570d2b..846291e307b 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h @@ -3,4 +3,6 @@ #include "dolphin/types.h" +void TRKNubMainLoop(void); + #endif /* METROTRK_PORTABLE_MAINLOOP_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h index afef167736e..c2a697ce455 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h @@ -3,4 +3,11 @@ #include "dolphin/types.h" +typedef struct _TRK_Msg { + u8 _00[8]; + u32 m_msgLength; + u32 _0C; + u32 m_msg; +} TRK_Msg; + #endif /* METROTRK_PORTABLE_MSG_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h index 7ba70b1904b..e4108ba657b 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h @@ -3,4 +3,15 @@ #include "dolphin/types.h" +typedef struct TRKBuffer { + u8 _00[4]; + u32 _04; + s32 _08; + u32 _0C; + u32 _10; + u8 m_buffer[0x87C]; +} TRKBuffer; + +s32 TRKSetBufferPosition(TRKBuffer*, u32); + #endif /* METROTRK_PORTABLE_MSGBUF_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h index 746f55a84b9..7c972fc07ca 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h @@ -2,5 +2,23 @@ #define METROTRK_PORTABLE_MSGHNDLR_H #include "dolphin/types.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" + +void SetTRKConnected(BOOL); +BOOL GetTRKConnected(void); +s32 TRKDoSetOption(TRKBuffer*); +s32 TRKDoStop(TRKBuffer*); +s32 TRKDoStep(TRKBuffer*); +s32 TRKDoContinue(TRKBuffer*); +s32 TRKDoWriteRegisters(TRKBuffer*); +s32 TRKDoReadRegisters(TRKBuffer*); +s32 TRKDoWriteMemory(TRKBuffer*); +s32 TRKDoReadMemory(TRKBuffer*); +s32 TRKDoSupportMask(TRKBuffer*); +s32 TRKDoVersions(TRKBuffer*); +s32 TRKDoOverride(TRKBuffer*); +s32 TRKDoReset(TRKBuffer*); +s32 TRKDoDisconnect(TRKBuffer*); +s32 TRKDoConnect(TRKBuffer*); #endif /* METROTRK_PORTABLE_MSGHNDLR_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h index bb0f572c748..a86fa52395a 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h @@ -3,4 +3,8 @@ #include "dolphin/types.h" +void TRKNubWelcome(void); +s32 TRKTerminateNub(void); +s32 TRKInitializeNub(void); + #endif /* METROTRK_PORTABLE_NUBINIT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h index 0a4b8ea5a98..c2bf8bfc813 100644 --- a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h @@ -3,4 +3,8 @@ #include "dolphin/types.h" +void UnreserveEXI2Port(); +void ReserveEXI2Port(); +s32 TRKWriteUARTN(const void*, u32); + #endif /* OS_DOLPHIN_DOLPHIN_TRK_GLUE_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h index 58031b5fd6e..c256aea9db6 100644 --- a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h @@ -3,4 +3,7 @@ #include "dolphin/types.h" +void TRKSwapAndGo(); +void TRKTargetSetStopped(s32); + #endif /* PPC_GENERIC_TARGIMPL_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h b/include/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h index 2e5a587ece0..35f9bb2fd05 100644 --- a/include/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h +++ b/include/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h @@ -3,4 +3,6 @@ #include "dolphin/types.h" +void MWTRACE(u8, char*, ...); + #endif /* UTILS_COMMON_MWTRACE_H */ diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index f0caef5526d..c142c1ec95f 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -74,7 +74,6 @@ public: /* 801266C0 */ virtual void draw(); /* 800CFDF4 */ virtual ~daAlink_sight_c(); -private: /* 0x4C */ bool mLockFlag; /* 0x4D */ u8 field_0x4d[3]; /* 0x50 */ daAlink_lockCursor_c mLockCursor; @@ -147,6 +146,8 @@ public: /* 800D0B8C */ virtual ~daAlink_matAnm_c(); /* 8009D90C */ virtual void calc(J3DMaterial*) const; + static void decMorfFrame() {} + private: /* 0x0F4 */ f32 field_0xf4; /* 0x0F8 */ f32 field_0xf8; @@ -155,9 +156,13 @@ private: /* 0x104 */ int mSetFlag; }; +struct daAlink_BckData { + /* 0x0 */ u16 m_underID; + /* 0x0 */ u16 m_upperID; +}; + struct daAlink_AnmData { - /* 0x0 */ u16 field_0x0; - /* 0x2 */ u16 field_0x2; + /* 0x0 */ daAlink_BckData field_0x0; /* 0x4 */ u8 field_0x4; /* 0x5 */ u8 field_0x5; /* 0x6 */ u16 field_0x6; @@ -196,57 +201,105 @@ typedef int (daAlink_c::*daAlink_procFunc)(); class daAlink_c : public daPy_py_c { public: enum daAlink_ANM { - /* 0x001 */ ANM_ATN_L_WALK_FORWARD = 1, - - /* 0x003 */ ANM_ATN_WALK_BACK = 3, - - /* 0x005 */ ANM_ATN_L_WALK_BACK = 5, - /* 0x006 */ ANM_ATN_HEAVY_WALK_LEFT, - /* 0x007 */ ANM_ATN_READY_LEFT, - /* 0x008 */ ANM_ATN_HEAVY_WALK_RIGHT, - /* 0x009 */ ANM_ATN_READY_RIGHT, - /* 0x00A */ ANM_ATN_WALK_LEFT, - /* 0x00B */ ANM_ATN_L_WALK_LEFT, - /* 0x00C */ ANM_ATN_WALK_RIGHT, - /* 0x00D */ ANM_ATN_L_WALK_RIGHT, - /* 0x00E */ ANM_HEAVY_WALK, - /* 0x00F */ ANM_ATN_HEAVY_WALK_BACK, - /* 0x010 */ ANM_HOOKSHOT_AIM, - /* 0x011 */ ANM_BOW_AIM, - - /* 0x013 */ ANM_RUN = 19, - - /* 0x015 */ ANM_WAIT_TURN = 0x15, - - /* 0x019 */ ANM_IDLE = 0x19, // name might be inaccurate, subjectivity - - /* 0x01B */ ANM_WAIT_INIT = 0x1B, - - /* 0x01D */ ANM_SIDE_STEP_LEFT = 0x1D, - /* 0x01E */ ANM_SIDE_STEP_RIGHT, - /* 0x01F */ ANM_SIDE_STEP_LEFT_LAND, - /* 0x020 */ ANM_SIDE_STEP_RIGHT_LAND, + /* 0x000 */ ANM_ATN_RETURN_FROM_WALK, + /* 0x001 */ ANM_ATN_RETURN_FROM_RUN, + /* 0x002 */ ANM_ATN_BACK_WALK, + /* 0x003 */ ANM_ATN_BACK_RUN, + /* 0x004 */ ANM_ATN_LOCK_BACK_WALK, + /* 0x005 */ ANM_ATN_LOCK_BACK_RUN, + /* 0x006 */ ANM_ATN_WALK_LEFT, + /* 0x007 */ ANM_ATN_LOCK_WALK_LEFT, + /* 0x008 */ ANM_ATN_WALK_RIGHT, + /* 0x009 */ ANM_ATN_LOCK_WALK_RIGHT, + /* 0x00A */ ANM_ATN_RUN_LEFT, + /* 0x00B */ ANM_ATN_LOCK_RUN_LEFT, + /* 0x00C */ ANM_ATN_RUN_RIGHT, + /* 0x00D */ ANM_ATN_LOCK_RUN_RIGHT, + /* 0x00E */ ANM_WALK_HEAVY, + /* 0x00F */ ANM_ATN_BACK_WALK_HEAVY, + /* 0x010 */ ANM_ATN_WAIT_LEFT, + /* 0x011 */ ANM_ATN_WAIT_RIGHT, + /* 0x012 */ ANM_WALK, + /* 0x013 */ ANM_RUN, + /* 0x014 */ ANM_SWIM_WAIT, + /* 0x015 */ ANM_STEP_TURN, + /* 0x016 */ ANM_SMALL_GUARD, + /* 0x017 */ ANM_STEP_TURN_TIRED, + /* 0x018 */ ANM_SMALL_GUARD_TIRED, + /* 0x019 */ ANM_WAIT, + /* 0x01A */ ANM_WAIT_B, + /* 0x01B */ ANM_WAIT_B_TO_A, + /* 0x01C */ ANM_RUN_B, + /* 0x01D */ ANM_SIDE_JUMP_LEFT, + /* 0x01E */ ANM_SIDE_JUMP_RIGHT, + /* 0x01F */ ANM_SIDE_JUMP_LEFT_LAND, + /* 0x020 */ ANM_SIDE_JUMP_RIGHT_LAND, /* 0x021 */ ANM_BACK_JUMP, /* 0x022 */ ANM_BACK_JUMP_LAND, /* 0x023 */ ANM_FRONT_ROLL, /* 0x024 */ ANM_ROLL_CRASH, - /* 0x025 */ ANM_BARRIER_RECOIL, + /* 0x025 */ ANM_BARRIER_RECOIL, // ? /* 0x026 */ ANM_BACKFLIP, /* 0x027 */ ANM_BACKFLIP_LAND, - - /* 0x02C */ ANM_SHIELD_GUARD = 0x2C, - - /* 0x02E */ ANM_SHIELD_ATTACK = 0x2E, + /* 0x028 */ ANM_SLIP, + /* 0x029 */ ANM_CROUCH, + /* 0x02A */ ANM_CROUCH_START, + /* 0x02B */ ANM_GUARD_LEFT, + /* 0x02C */ ANM_GUARD_RIGHT, + /* 0x02D */ ANM_CROUCH_DEF, // ? + /* 0x02E */ ANM_SHIELD_ATTACK, /* 0x02F */ ANM_SHIELD_ATTACK_RECOIL, - - /* 0x033 */ ANM_FALL_LAND = 0x33, // ? - - /* 0x036 */ ANM_PUSH_PULL_READY = 0x36, - /* 0x037 */ ANM_PUSH, - - /* 0x03A */ ANM_PULL = 0x3A, - - /* 0x062 */ ANM_CUT_NM_VERTICAL = 0x62, + /* 0x030 */ ANM_GUARD_BREAK, + /* 0x031 */ ANM_JUMP_START, + /* 0x032 */ ANM_JUMP, + /* 0x033 */ ANM_JUMP_LAND, + /* 0x034 */ ANM_CRAWL_START, + /* 0x035 */ ANM_CRAWL, + /* 0x036 */ ANM_WAIT_PUSH_PULL, + /* 0x037 */ ANM_PUSH_LIGHT, + /* 0x038 */ ANM_PUSH_START, + /* 0x039 */ ANM_PUSH, + /* 0x03A */ ANM_PULL_LIGHT, + /* 0x03B */ ANM_PULL_START, + /* 0x03C */ ANM_PULL, + /* 0x03D */ ANM_HORSE_MOUNT_LEFT, + /* 0x03E */ ANM_HORSE_MOUNT_RIGHT, + /* 0x03F */ ANM_HORSE_MOUNT_BACK, + /* 0x040 */ ANM_HORSE_GETOFF_LEFT, + /* 0x041 */ ANM_HORSE_GETOFF_RIGHT, + /* 0x042 */ ANM_HORSE_STOP, + /* 0x043 */ ANM_HORSE_STOP_TO_STAND, + /* 0x044 */ ANM_HORSE_STAND, + /* 0x045 */ ANM_HORSE_JUMP_START, + /* 0x046 */ ANM_HORSE_JUMP, + /* 0x047 */ ANM_HORSE_JUMP_LAND, + /* 0x048 */ ANM_HORSE_WAIT, + /* 0x049 */ ANM_HORSE_WALK_A, + /* 0x04A */ ANM_HORSE_WALK_B, + /* 0x04B */ ANM_HORSE_DASH_A, + /* 0x04C */ ANM_HORSE_DASH_B, + /* 0x04D */ ANM_WSTARTH, // ? + /* 0x04E */ ANM_HORSE_DASH_START, + /* 0x04F */ ANM_HORSE_LASH, + /* 0x050 */ ANM_HORSE_CUT_TURN, + /* 0x051 */ ANM_HORSE_WAIT_A, + /* 0x052 */ ANM_HORSE_WAIT_B, + /* 0x053 */ ANM_HORSE_DIE_RECOVER, + /* 0x054 */ ANM_HORSE_TURN_B, + /* 0x055 */ ANM_HORSE_CROUCH, + /* 0x056 */ ANM_HORSE_DMG_LEFT, + /* 0x057 */ ANM_HORSE_DMG_RIGHT, + /* 0x058 */ ANM_HORSE_HANG_LEFT, + /* 0x059 */ ANM_HORSE_HANG_RIGHT, + /* 0x05A */ ANM_HORSE_TURN_LEFT, + /* 0x05B */ ANM_HORSE_TURN_RIGHT, + /* 0x05C */ ANM_HORSE_RIDE_LEFT, + /* 0x05D */ ANM_HORSE_RIDE_RIGHT, + /* 0x05E */ ANM_HORSE_FALL_LEFT, + /* 0x05F */ ANM_HORSE_FALL_RIGHT, + /* 0x060 */ ANM_HORSE_TAME_WAIT_B, + /* 0x061 */ ANM_HORSE_TAME_WAIT_A_TO_B, + /* 0x062 */ ANM_CUT_NM_VERTICAL, /* 0x063 */ ANM_CUT_NM_LEFT, /* 0x064 */ ANM_CUT_NM_RIGHT, /* 0x065 */ ANM_CUT_COMBO_STAB, @@ -254,38 +307,45 @@ public: /* 0x067 */ ANM_CUT_FINISH_LEFT, /* 0x068 */ ANM_CUT_FINISH_VERTICAL, /* 0x069 */ ANM_CUT_FINISH_STAB, - - /* 0x06C */ ANM_CUT_FINISH_RIGHT = 0x6C, + /* 0x06A */ ANM_CUT_MORTAL_DRAW_A, + /* 0x06B */ ANM_CUT_MORTAL_DRAW_B, + /* 0x06C */ ANM_CUT_FINISH_RIGHT, /* 0x06D */ ANM_CUT_TWIRL, /* 0x06E */ ANM_CUT_TWIRL_LAND, - /* 0x06F */ ANM_CUT_RECOIL_1, - /* 0x070 */ ANM_CUT_RECOIL_2, + /* 0x06F */ ANM_CUT_RECOIL_A, + /* 0x070 */ ANM_CUT_RECOIL_B, /* 0x071 */ ANM_CUT_JUMP, /* 0x072 */ ANM_CUT_JUMP_LAND, /* 0x073 */ ANM_CUT_TURN_LEFT, /* 0x074 */ ANM_CUT_TURN_RIGHT, - /* 0x075 */ ANM_CUT_TURN_CHARGE_INIT, + /* 0x075 */ ANM_CUT_TURN_CHARGE_START, /* 0x076 */ ANM_CUT_TURN_CHARGE, - - /* 0x078 */ ANM_CUT_FINISHING_BLOW_JUMP = 0x78, + /* 0x077 */ ANM_CUT_TURN_CHARGE_MOVE, + /* 0x078 */ ANM_CUT_FINISHING_BLOW_JUMP, /* 0x079 */ ANM_CUT_FINISHING_BLOW_FALL, /* 0x07A */ ANM_CUT_FINISHING_BLOW_STAB, - - /* 0x07C */ ANM_CUT_HEAD_JUMP = 0x7C, + /* 0x07B */ ANM_CUT_FINISHING_BLOW_MISS, + /* 0x07C */ ANM_CUT_HEAD_JUMP, /* 0x07D */ ANM_CUT_HEAD, /* 0x07E */ ANM_CUT_HEAD_LAND, - /* 0x07F */ ANM_DMG_SMALL, - - /* 0x083 */ ANM_DMG_AIR = 0x83, + /* 0x07F */ ANM_DMG_SMALL_A, + /* 0x080 */ ANM_DMG_SMALL_B, + /* 0x081 */ ANM_DMG_SMALL_LEFT, + /* 0x082 */ ANM_DMG_SMALL_RIGHT, + /* 0x083 */ ANM_DMG_AIR_FRONT, /* 0x084 */ ANM_DMG_LARGE, - - /* 0x087 */ ANM_DMG_AIR_LAND = 0x87, + /* 0x085 */ ANM_DMG_AIR_LEFT, + /* 0x086 */ ANM_DMG_AIR_RIGHT, + /* 0x087 */ ANM_DMG_AIR_LAND, /* 0x088 */ ANM_DMG_LARGE_LAND, - - /* 0x08C */ ANM_DMG_LARGE_UP_INIT = 0x8C, - /* 0x08D */ ANM_DMG_LARGE_UP, - - /* 0x090 */ ANM_SERVICE_WAIT = 0x90, + /* 0x089 */ ANM_DMG_AIR_LEFT_LAND, + /* 0x08A */ ANM_DMG_AIR_RIGHT_LAND, + /* 0x08B */ ANM_DMG, + /* 0x08C */ ANM_DMG_FALL, + /* 0x08D */ ANM_DMG_FALL_RECOVER, + /* 0x08E */ ANM_FINISH, + /* 0x08F */ ANM_FINISH_END, + /* 0x090 */ ANM_SERVICE_WAIT, /* 0x091 */ ANM_CLIMB_JUMP, /* 0x092 */ ANM_HANG_READY, /* 0x093 */ ANM_CLIMB_TOP_SMALL, @@ -294,98 +354,433 @@ public: /* 0x096 */ ANM_HANG_ONE_HAND_MOVE, /* 0x097 */ ANM_HANG_MOVE_LEFT, /* 0x098 */ ANM_HANG_MOVE_RIGHT, - - /* 0x0A2 */ ANM_CLIMB_READY = 0xA2, - /* 0x0A3 */ ANM_CLIMB_UP_RIGHT, - /* 0x0A4 */ ANM_CLIMB_UP_LEFT, - /* 0x0A5 */ ANM_CLIMB_MOVE_LEFT, - /* 0x0A6 */ ANM_CLIMB_MOVE_RIGHT, - /* 0x0A7 */ ANM_FALL_ONE_HAND_GRAB, - - /* 0x0AF */ ANM_PICK_UP_INIT = 0xAF, - /* 0x0B0 */ ANM_PICK_UP, - /* 0x0B1 */ ANM_THROW_SMALL, - /* 0x0B2 */ ANM_THROW_LARGE, - /* 0x0B3 */ ANM_PICK_UP_LARGE_INIT, + /* 0x099 */ ANM_LADDER_UP_START, + /* 0x09A */ ANM_LADDER_UP_END_LEFT, + /* 0x09B */ ANM_LADDER_UP_END_RIGHT, + /* 0x09C */ ANM_LADDER_DOWN_START, + /* 0x09D */ ANM_LADDER_DOWN_END_LEFT, + /* 0x09E */ ANM_LADDER_DOWN_END_RIGHT, + /* 0x09F */ ANM_LADDER_RIGHT_TO_LEFT, + /* 0x0A0 */ ANM_LADDER_LEFT_TO_RIGHT, + /* 0x0A1 */ ANM_CLIMB_HANG, + /* 0x0A2 */ ANM_CLIMB_START, + /* 0x0A3 */ ANM_CLIMB_LEFT, + /* 0x0A4 */ ANM_CLIMB_RIGHT, + /* 0x0A5 */ ANM_CLIMB_SLIDE_LEFT, + /* 0x0A6 */ ANM_CLIMB_SLIDE_RIGHT, + /* 0x0A7 */ ANM_CLIMB_HANG_MISS, + /* 0x0A8 */ ANM_ROOF_UP, + /* 0x0A9 */ ANM_ROOF_HANG_WAIT, + /* 0x0AA */ ANM_ROOF_HANG_MOVE, + /* 0x0AB */ ANM_ROOF_HANG_LEFT, + /* 0x0AC */ ANM_ROOF_HANG_RIGHT, + /* 0x0AD */ ANM_ROOF_HANG_TURN, + /* 0x0AE */ ANM_ROOF_HANG, + /* 0x0AF */ ANM_GRAB_UP_START, + /* 0x0B0 */ ANM_GRAB_UP, + /* 0x0B1 */ ANM_THROW, + /* 0x0B2 */ ANM_THROW_HEAVY, + /* 0x0B3 */ ANM_PICK_UP_LARGE_START, /* 0x0B4 */ ANM_PICK_UP_LARGE, - - /* 0x0B6 */ ANM_TIRED_WAIT = 0xB6, - /* 0x0B7 */ ANM_TIRED_WAIT_INIT, - /* 0x0B8 */ ANM_NPC_SPEAK, - - /* 0x0BB */ ANM_BOOMERANG_CATCH = 0xBB, - - /* 0x0BD */ ANM_FORWARD_SLIDE = 0xBD, - /* 0x0BE */ ANM_BACKWARD_SLIDE, - /* 0x0BF */ ANM_BACKWARD_SLIDE_LAND, - /* 0x0C0 */ ANM_FORWARD_SLIDE_LAND, - - /* 0x0CE */ ANM_SWIM_FREEZE = 0xCE, - - /* 0x0D7 */ ANM_BOARD_SPINNER = 0xD7, - - /* 0x0F2 */ ANM_SPINNER_STAND = 0xF2, - - /* 0x0F4 */ ANM_SPINNER_RIDE = 0xF4, - - /* 0x0F7 */ ANM_SPINNER_ATTACK = 0xF7, - /* 0x0F8 */ ANM_SPINNER_ATTACK_LAND, - /* 0x0F9 */ ANM_SPINNER_PUSH, - - /* 0x0FD */ ANM_TRANSFORM_WOLF = 0xFD, // verify - - /* 0x100 */ ANM_BOTTLE_DRINK_OPEN = 0x100, + /* 0x0B5 */ ANM_CARRY, + /* 0x0B6 */ ANM_WAIT_TIRED, + /* 0x0B7 */ ANM_WAIT_TO_TIRED, + /* 0x0B8 */ ANM_TALK, + /* 0x0B9 */ ANM_WAIT_START, + /* 0x0BA */ ANM_FROZEN_FREE, // ? + /* 0x0BB */ ANM_BOOMERANG_CATCH, + /* 0x0BC */ ANM_WALK_SLOPE, + /* 0x0BD */ ANM_SLIDE_FORWARD, + /* 0x0BE */ ANM_SLIDE_BACKWARD, + /* 0x0BF */ ANM_SLIDE_FORWARD_END, + /* 0x0C0 */ ANM_SLIDE_BACKWARD_END, + /* 0x0C1 */ ANM_SWIM_A, + /* 0x0C2 */ ANM_SWIM_RESURFACE, + /* 0x0C3 */ ANM_ATN_SWIM_LEFT, + /* 0x0C4 */ ANM_ATN_SWIM_RIGHT, + /* 0x0C5 */ ANM_ATN_SWIM_BACK, + /* 0x0C6 */ ANM_SWIM_DASH, + /* 0x0C7 */ ANM_SWIM_DIVE, + /* 0x0C8 */ ANM_SWIM_ZORA_START, + /* 0x0C9 */ ANM_SWIM_C, + /* 0x0CA */ ANM_SWIM_DMG_FRONT, + /* 0x0CB */ ANM_SWIM_DMG_BACK, + /* 0x0CC */ ANM_SWIM_DMG_LEFT, + /* 0x0CD */ ANM_SWIM_DMG_RIGHT, + /* 0x0CE */ ANM_SWIM_DMG_FREEZE, + /* 0x0CF */ ANM_TRES_OPEN_SMALL, + /* 0x0D0 */ ANM_TRES_OPEN_KICK, + /* 0x0D1 */ ANM_TRES_OPEN_BIG, + /* 0x0D2 */ ANM_GET_A, + /* 0x0D3 */ ANM_GET_A_WAIT, + /* 0x0D4 */ ANM_GET_A_WAIT2, // same under anm, upper anm (0x26A) + /* 0x0D5 */ ANM_GET_HOLDOUT, + /* 0x0D6 */ ANM_TURN_BACK, + /* 0x0D7 */ ANM_VJUMP_START, + /* 0x0D8 */ ANM_WAIT_SIT, + /* 0x0D9 */ ANM_WAIT_CANOE_LEFT, + /* 0x0DA */ ANM_WAIT_CANOE_RIGHT, + /* 0x0DB */ ANM_CANOE_ROW_LEFT, + /* 0x0DC */ ANM_CANOE_ROW_RIGHT, + /* 0x0DD */ ANM_CANOE_ROW_LEFT_BACK, + /* 0x0DE */ ANM_CANOE_ROW_RIGHT_BACK, + /* 0x0DF */ ANM_CANOE_CHANGE_HAND, + /* 0x0E0 */ ANM_CANOE_FISH_LEFT, + /* 0x0E1 */ ANM_CANOE_FISH_RIGHT, + /* 0x0E2 */ ANM_CANOE_REEL, + /* 0x0E3 */ ANM_CANOE_RELEASE, + /* 0x0E4 */ ANM_CANOE_PADDLE_TO_ROD, + /* 0x0E5 */ ANM_REEL, + /* 0x0E6 */ ANM_REEL_LEFT_RIGHT, + /* 0x0E7 */ ANM_LAND_UP, // ? + /* 0x0E8 */ ANM_DOOR_OPEN_LEFT, + /* 0x0E9 */ ANM_DOOR_OPEN_RIGHT, + /* 0x0EA */ ANM_DOOR_OPEN_LOCK_LEFT, + /* 0x0EB */ ANM_DOOR_OPEN_LOCK_RIGHT, + /* 0x0EC */ ANM_DOOR_OPEN_ROLL, + /* 0x0ED */ ANM_DOOR_OPEN_SLIDE, + /* 0x0EE */ ANM_PICK_UP, + /* 0x0EF */ ANM_ROLL_JUMP, + /* 0x0F0 */ ANM_SIDE_ROLL_LEFT, + /* 0x0F1 */ ANM_SIDE_ROLL_RIGHT, + /* 0x0F2 */ ANM_RIDE_WAIT, + /* 0x0F3 */ ANM_RIDE_FRONT, + /* 0x0F4 */ ANM_RIDE_CROUCH, + /* 0x0F5 */ ANM_RIDE_STOP, + /* 0x0F6 */ ANM_RIDE_JUMP_START, + /* 0x0F7 */ ANM_RIDE_JUMP, + /* 0x0F8 */ ANM_RIDE_JUMP_LAND, + /* 0x0F9 */ ANM_RIDE_KICK, + /* 0x0FA */ ANM_RIDE_CUT_TURN_CHARGE, + /* 0x0FB */ ANM_RIDE_CUT_TURN, + /* 0x0FC */ ANM_ROPE_SWING, // monkey swing? + /* 0x0FD */ ANM_TRANSFORM_TO_WOLF, + /* 0x0FE */ ANM_TRANSFORM_TO_HUMAN, + /* 0x0FF */ ANM_WAIT_WIND, + /* 0x100 */ ANM_BOTTLE_DRINK_START, /* 0x101 */ ANM_BOTTLE_DRINK, /* 0x102 */ ANM_BOTTLE_DRINK_END, - - /* 0x107 */ ANM_BOTTLE_SWING = 0x107, - /* 0x108 */ ANM_GRASS_WHISTLE_GRAB, - - /* 0x10B */ ANM_LANTERN_SWING = 0x10B, - /* 0x10C */ ANM_OIL_BOTTLE_POUR_INIT, + /* 0x103 */ ANM_BOTTLE_DRINK_NASTY, + /* 0x104 */ ANM_BOTTLE_OPEN, + /* 0x105 */ ANM_BOTTLE_POUR, + /* 0x106 */ ANM_BOTTLE_FAIRY, + /* 0x107 */ ANM_BOTTLE_SWING, + /* 0x108 */ ANM_BOTTLE_SWING_DOWN, + /* 0x109 */ ANM_BOTTLE_GET, + /* 0x10A */ ANM_BOTTLE_SCOOP, + /* 0x10B */ ANM_LANTERN_SWING, + /* 0x10C */ ANM_OIL_BOTTLE_POUR_START, /* 0x10D */ ANM_OIL_BOTTLE_POUR, /* 0x10E */ ANM_OIL_BOTTLE_POUR_END, - - /* 0x110 */ ANM_GRASS_WHISTLE_PLAY = 0x110, + /* 0x10F */ ANM_GRASS_WHISTLE_START, + /* 0x110 */ ANM_GRASS_WHISTLE_PLAY, /* 0x111 */ ANM_HAWK_CATCH, - /* 0x112 */ ANM_HAWK_SUBJECT, - - /* 0x129 */ ANM_HOOKSHOT_PULL_TO = 0x129, - - /* 0x12B */ ANM_HOOKSHOT_SHOOT = 0x12B, - - /* 0x13E */ ANM_BOOTS_EQUIP = 0x13E, - - /* 0x181 */ ANM_CHAIN_PICK_UP = 0x181, + /* 0x112 */ ANM_HAWK_WAIT, + /* 0x113 */ ANM_WAIT_D_B, // ghost rats? + /* 0x114 */ ANM_HORSE_WAIT_D_B, // ? + /* 0x115 */ ANM_MG_KICK, // ? + /* 0x116 */ ANM_DIE, + /* 0x117 */ ANM_HORSE_DIE, + /* 0x118 */ ANM_SWIM_DIE, + /* 0x119 */ ANM_SWIM_DROWN, + /* 0x11A */ ANM_ATN_COW, + /* 0x11B */ ANM_COW_CATCH_START, + /* 0x11C */ ANM_COW_CATCH, + /* 0x11D */ ANM_COW_A_D, // ? + /* 0x11E */ ANM_COW_PRESS, + /* 0x11F */ ANM_COW_THROW_LEFT, + /* 0x120 */ ANM_COW_THROW_RIGHT, + /* 0x121 */ ANM_ATN_RIGHT, + /* 0x122 */ ANM_COW_MOVE_LEFT_RIGHT, + /* 0x123 */ ANM_COW_STROKE, + /* 0x124 */ ANM_ENTRANCE, + /* 0x125 */ ANM_FALL, + /* 0x126 */ ANM_APPEARANCE, + /* 0x127 */ ANM_S_JUMP_START, // ? + /* 0x128 */ ANM_S_JUMP_END, // ? + /* 0x129 */ ANM_HOOKSHOT_FLY_LEFT, + /* 0x12A */ ANM_HOOKSHOT_FLY_RIGHT, + /* 0x12B */ ANM_HOOKSHOT_SHOOT, + /* 0x12C */ ANM_HOOKSHOT_HANG_END_LEFT, + /* 0x12D */ ANM_HOOKSHOT_HANG_END_RIGHT, + /* 0x12E */ ANM_HOOKSHOT_HANG_LEFT, + /* 0x12F */ ANM_HOOKSHOT_HANG_RIGHT, + /* 0x130 */ ANM_HOOKSHOT_HANG_WAIT_LEFT, + /* 0x131 */ ANM_HOOKSHOT_HANG_WAIT_RIGHT, + /* 0x132 */ ANM_HOOKSHOT_HANG_SHOOT_LEFT, + /* 0x133 */ ANM_HOOKSHOT_HANG_SHOOT_RIGHT, + /* 0x134 */ ANM_HOOKSHOT_HANG_LEFT_START, + /* 0x135 */ ANM_HOOKSHOT_HANG_RIGHT_START, + /* 0x136 */ ANM_HOOKSHOT_WALL_END_LEFT, + /* 0x137 */ ANM_HOOKSHOT_WALL_END_RIGHT, + /* 0x138 */ ANM_HOOKSHOT_WALL_LEFT, + /* 0x139 */ ANM_HOOKSHOT_WALL_RIGHT, + /* 0x13A */ ANM_HOOKSHOT_WALL_WAIT_LEFT, + /* 0x13B */ ANM_HOOKSHOT_WALL_WAIT_RIGHT, + /* 0x13C */ ANM_HOOKSHOT_WALL_SHOOT_LEFT, + /* 0x13D */ ANM_HOOKSHOT_WALL_SHOOT_RIGHT, + /* 0x13E */ ANM_HVY_BOOTS_PUT_ON, + /* 0x13F */ ANM_SUMOU_MIAU, // ? + /* 0x140 */ ANM_SUMOU_HAKEYOI, // ? + /* 0x141 */ ANM_SUMOU_FIGHT_WAIT, + /* 0x142 */ ANM_SUMOU_FIGHT_STEP_LEFT, + /* 0x143 */ ANM_SUMOU_FIGHT_STEP_RIGHT, + /* 0x144 */ ANM_SUMOU_FIGHT_STEP, + /* 0x145 */ ANM_SUMOU_TACKLE, + /* 0x146 */ ANM_SUMOU_TACKLE_GORON, // ? + /* 0x147 */ ANM_SUMOU_DODGE_TACKLE, + /* 0x148 */ ANM_SUMOU_TACKLE_MISS, + /* 0x149 */ ANM_SUMOU_TACKLE_SHOCK, + /* 0x14A */ ANM_SUMOU_TACKLE_WAIT, + /* 0x14B */ ANM_SUMOU_TACKLE_WAIT_GORON, // ? + /* 0x14C */ ANM_SUMOU_TACKLE_STAGGER, + /* 0x14D */ ANM_SUMOU_TACKLE_STAGGER_GORON, // ? + /* 0x14E */ ANM_SUMOU_TACKLE_SHOCK_RETURN, + /* 0x14F */ ANM_SUMOU_PUNCH, + /* 0x150 */ ANM_SUMOU_PUNCH_MISS_SHOCK, + /* 0x151 */ ANM_SUMOU_PUNCH_MISS_SHOCK_RETURN, + /* 0x152 */ ANM_SUMOU_PUNCH_SHOCK, + /* 0x153 */ ANM_SUMOU_STAGGER, + /* 0x154 */ ANM_SUMOU_PUSH_BACK, + /* 0x155 */ ANM_SUMOU_PULL_BACK, + /* 0x156 */ ANM_SUMOU_PULL_BACK_GORON, // ? + /* 0x157 */ ANM_SUMOU_WIN, + /* 0x158 */ ANM_SUMOU_WIN_GORON, + /* 0x159 */ ANM_SUMOU_LOSE, + /* 0x15A */ ANM_SUMOU_LOSE_GORON, + /* 0x15B */ ANM_SUMOU_KNOCKED_DOWN, + /* 0x15C */ ANM_SUMOU_GET_UP, + /* 0x15D */ ANM_SUMOU_SHIKO, + /* 0x15E */ ANM_SUMOU_SHIKO_WAIT, + /* 0x15F */ ANM_DMG_FBW, // ? + /* 0x160 */ ANM_IRONBALL_WAIT, + /* 0x161 */ ANM_IRONBALL_WALK, + /* 0x162 */ ANM_IRONBALL_ATTACK, + /* 0x163 */ ANM_IRONBALL_TURN, + /* 0x164 */ ANM_IRONBALL_THROW, + /* 0x165 */ ANM_IRONBALL_PULL, + /* 0x166 */ ANM_IRONBALL_CATCH, + /* 0x167 */ ANM_IRONBALL_DEF, + /* 0x168 */ ANM_MORPHEEL_HANG, + /* 0x169 */ ANM_MORPHEEL_HANG_MISS, + /* 0x16A */ ANM_MORPHEEL_HANG_WAIT, + /* 0x16B */ ANM_MORPHEEL_HANG_WAIT_B, + /* 0x16C */ ANM_MORPHEEL_CUT, + /* 0x16D */ ANM_MORPHEEL_CUT_B, // final hit of cycles 1 and 2 + /* 0x16E */ ANM_MORPHEEL_CUT_FINAL, + /* 0x16F */ ANM_MORPHEEL_SPIT_OUT, + /* 0x170 */ ANM_DRAGON_HANG_LEFT, + /* 0x171 */ ANM_DRAGON_HANG_RIGHT, + /* 0x172 */ ANM_DRAGON_HANG, + /* 0x173 */ ANM_DRAGON_HANG_WAIT, + /* 0x174 */ ANM_DRAGON_HANG_WAIT_B, + /* 0x175 */ ANM_DRAGON_CUT, + /* 0x176 */ ANM_DRAGON_CUT_B, // final hit of cycles 1 and 2 + /* 0x177 */ ANM_DRAGON_CUT_FINAL, + /* 0x178 */ ANM_COPYROD_SWING, + /* 0x179 */ ANM_COPYROD_SWING_LARGE, + /* 0x17A */ ANM_GET_MASTER_SWORD, // ? + /* 0x17B */ ANM_WAIT_F, + /* 0x17C */ ANM_ELEC_STUN_GND, + /* 0x17D */ ANM_ELEC_STUN_AIR, + /* 0x17E */ ANM_KEY_CATCH, + /* 0x17F */ ANM_HORSE_GET_ITEM, + /* 0x180 */ ANM_TWGATE_PULLED_IN, + /* 0x181 */ ANM_CHAIN_PICK_UP, /* 0x182 */ ANM_CHAIN_PULL, - - /* 0x188 */ ANM_DUNGEON_WARP_READY_INIT = 0x188, - - /* 0x18B */ ANM_CUT_JUMP_LARGE_CHARGE = 0x18B, - /* 0x18C */ ANM_CUT_JUMP_LARGE_INIT, + /* 0x183 */ ANM_CHAIN_PULL_FYRUS, + /* 0x184 */ ANM_CHAIN_PULL_END, + /* 0x185 */ ANM_WAIT_INSECT, + /* 0x186 */ ANM_DEMO_MHOP, // ? + /* 0x187 */ ANM_PULL_IRONBALL_SWITCH, + /* 0x188 */ ANM_TRADE_ITEM_PULL_OUT, + /* 0x189 */ ANM_TRADE_ITEM_WAIT, + /* 0x18A */ ANM_DEMO_KAMAE, // ? + /* 0x18B */ ANM_CUT_JUMP_LARGE_CHARGE, + /* 0x18C */ ANM_CUT_JUMP_LARGE_START, /* 0x18D */ ANM_CUT_JUMP_LARGE, /* 0x18E */ ANM_CUT_JUMP_LARGE_LAND, - /* 0x18F */ ANM_MASTER_SWORD_STICK_INIT, - /* 0x190 */ ANM_MASTER_SWORD_STICK, - /* 0x191 */ ANM_MASTER_SWORD_PULL_INIT, - - /* 0x198 */ ANM_GANON_FINISH = 408, // name probably wrong, fix later + /* 0x18F */ ANM_DEMO_MASTER_SWORD_STICK, + /* 0x190 */ ANM_DEMO_MASTER_SWORD_WAIT, + /* 0x191 */ ANM_DEMO_MASTER_SWORD_PULL, + /* 0x192 */ ANM_GANON_CHANCE, + /* 0x193 */ ANM_GANON_CHANCE_LOSING, + /* 0x194 */ ANM_GANON_CHANCE_WINNING, + /* 0x195 */ ANM_GANON_CHANCE_WIN, + /* 0x196 */ ANM_GANON_CHANCE_LOSE, + /* 0x197 */ ANM_GANON_FINISH, + /* 0x198 */ ANM_GANON_FINISH_WAIT, + /* 0x199 */ ANM_GANON_ON_HORSE, + /* 0x19A */ ANM_DIVE_START, + /* 0x19B */ ANM_DIVE, + /* 0x19C */ ANM_ODOROKU, // ? + /* 0x19D */ ANM_ASHIMOTO, // ? }; enum daAlink_UPPER { - Unk0, - Unk1, - UPPER_NOW // needs better name. main upper anmheap idx checked for actions + UPPER_0, + UPPER_1, + UPPER_2, }; - enum daAlink_UNDER {}; + enum daAlink_UNDER { + UNDER_0, + UNDER_1, + UNDER_2, + }; + + enum daAlink_FTANM {}; enum daAlink_WARP_MAT_MODE {}; enum daAlink_WANM { - /* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94, - - /* 0x70 */ ANM_TRANFORM_HUMAN = 0x70, // verify + /* 0x00 */ WANM_WAIT, + /* 0x01 */ WANM_WALK_A, + /* 0x02 */ WANM_WALK_B, + /* 0x03 */ WANM_DASH_A, + /* 0x04 */ WANM_JUMP_ATTACK_START, + /* 0x05 */ WANM_JUMP_ATTACK, + /* 0x06 */ WANM_JUMP_ATTACK_END, + /* 0x07 */ WANM_WAIT_PP, // ? + /* 0x08 */ WANM_PUSH_LIGHT, + /* 0x09 */ WANM_PUSH_START, + /* 0x0A */ WANM_PUSH, + /* 0x0B */ WANM_SIT, + /* 0x0C */ WANM_CROUCH, + /* 0x0D */ WANM_CROUCH_WALK, + /* 0x0E */ WANM_WAIT_SIT, + /* 0x0F */ WANM_TRES_OPEN, + /* 0x10 */ WANM_VJMP_START, + /* 0x11 */ WANM_BUMP_START, + /* 0x12 */ WANM_BUMP_END, + /* 0x13 */ WANM_VJMP_CLIMB, + /* 0x14 */ WANM_VJMP_CLIMB_HANG, + /* 0x15 */ WANM_TURN_BACK, + /* 0x16 */ WANM_DMG_SMALL, + /* 0x17 */ WANM_WAIT_TIRED, + /* 0x18 */ WANM_WAIT_TO_TIRED, + /* 0x19 */ WANM_HANG, + /* 0x1A */ WANM_SLIP, + /* 0x1B */ WANM_TURN, + /* 0x1C */ WANM_ATN, + /* 0x1D */ WANM_WALK_SLOPE, + /* 0x1E */ WANM_SLIDE_BACKWARD, + /* 0x1F */ WANM_SLIDE_BACKWARD_END, + /* 0x20 */ WANM_SLIDE_FORWARD_START, + /* 0x21 */ WANM_ROPE_WALK, + /* 0x22 */ WANM_ROPE_CLIMB_LEFT, + /* 0x23 */ WANM_ROPE_CLIMB_RIGHT, + /* 0x24 */ WANM_ROPE_TURN, + /* 0x25 */ WANM_ROPE_WAIT, + /* 0x26 */ WANM_ROPE_FALTER, + /* 0x27 */ WANM_DASH_B, + /* 0x28 */ WANM_DMG_AIR_FRONT, + /* 0x29 */ WANM_DMG_AIR_BACK, + /* 0x2A */ WANM_DMG_AIR_LEFT, + /* 0x2B */ WANM_DMG_AIR_RIGHT, + /* 0x2C */ WANM_DMG_AIR_FRONT_GETUP, + /* 0x2D */ WANM_DMG_AIR_BACK_GETUP, + /* 0x2E */ WANM_DMG_AIR_LEFT_GETUP, + /* 0x2F */ WANM_DMG_AIR_RIGHT_GETUP, + /* 0x30 */ WANM_SERVICE_WAIT_A, + /* 0x31 */ WANM_WAIT_B, + /* 0x32 */ WANM_JUMP_B_START, + /* 0x33 */ WANM_JUMP_B_TURN_START, + /* 0x34 */ WANM_JUMP_B, + /* 0x35 */ WANM_JUMP_B_END, + /* 0x36 */ WANM_SWIM_RESURFACE, + /* 0x37 */ WANM_SWIM_WAIT, + /* 0x38 */ WANM_SWIM, + /* 0x39 */ WANM_SWIM_DASH, + /* 0x3A */ WANM_WAIT_SHAKE, + /* 0x3B */ WANM_WAIT_START, + /* 0x3C */ WANM_DMG_FRONT, + /* 0x3D */ WANM_DMG_BACK, + /* 0x3E */ WANM_DMG_LEFT, + /* 0x3F */ WANM_DMG_RIGHT, + /* 0x40 */ WANM_ATTACK_B_LEFT, + /* 0x41 */ WANM_ATTACK_B_RIGHT, + /* 0x42 */ WANM_ATTACK_B_FRONT, + /* 0x43 */ WANM_ATTACK_B_TAIL, + /* 0x44 */ WANM_ATN_LOCK_WALK_BACK, + /* 0x45 */ WANM_ATN_LOCK_WALK_FRONT, + /* 0x46 */ WANM_ATN_LOCK_RUN, + /* 0x47 */ WANM_PICKUP_A, + /* 0x48 */ WANM_SIDE_JUMP_LEFT_START, + /* 0x49 */ WANM_SIDE_JUMP_LEFT_END, + /* 0x4A */ WANM_SIDE_JUMP_RIGHT_START, + /* 0x4B */ WANM_SIDE_JUMP_RIGHT_END, + /* 0x4C */ WANM_BACK_JUMP_START, + /* 0x4D */ WANM_BACK_JUMP_END, + /* 0x4E */ WANM_PICKUP_B, + /* 0x4F */ WANM_PICKUP_THROW, + /* 0x50 */ WANM_ATTACK_A_START, + /* 0x51 */ WANM_ATTACK_A, + /* 0x52 */ WANM_ATTACK_A_END, + /* 0x53 */ WANM_ATTACK_A_END_FRONT, + /* 0x54 */ WANM_ATTACK_A_END_BACK, + /* 0x55 */ WANM_ATTACK_T_START, + /* 0x56 */ WANM_ATTACK_T, + /* 0x57 */ WANM_HANDLE_HANG, + /* 0x58 */ WANM_HANDLE_HANG_WAIT, + /* 0x59 */ WANM_HANDLE_HANG_SW, // ? + /* 0x5A */ WANM_CUT_TURN_LEFT, + /* 0x5B */ WANM_CUT_TURN_RIGHT, + /* 0x5C */ WANM_HOWL, + /* 0x5D */ WANM_HOWL_SIT, + /* 0x5E */ WANM_HOWL_SUCCESS, + /* 0x5F */ WANM_HOWL_END, + /* 0x60 */ WANM_FALL_LAND, + /* 0x61 */ WANM_FALL_LAND_START, + /* 0x62 */ WANM_ATTACK_POE_START, + /* 0x63 */ WANM_ATTACK_POE, + /* 0x64 */ WANM_ATTACK_POE_END, + /* 0x65 */ WANM_ATTACK_POE_MISS, + /* 0x66 */ WANM_BACKFLIP_START, + /* 0x67 */ WANM_BACKFLIP_END, + /* 0x68 */ WANM_DIG, + /* 0x69 */ WANM_DIG_IN, + /* 0x6A */ WANM_DIG_UNDER, + /* 0x6B */ WANM_SLIDE_W, // ? + /* 0x6C */ WANM_JUMP_KICK, + /* 0x6D */ WANM_PULL_OUT, + /* 0x6E */ WANM_CUT_TURN_CHARGE, + /* 0x6F */ WANM_TRANSFORM_TO_WOLF, + /* 0x70 */ WANM_TRANSFORM_TO_HUMAN, + /* 0x71 */ WANM_WAIT_WIND, + /* 0x72 */ WANM_SMELL, + /* 0x73 */ WANM_DASH_START, + /* 0x74 */ WANM_ATTACK_RECOIL_START, + /* 0x75 */ WANM_ATTACK_RECOIL_END, + /* 0x76 */ WANM_FLING_LEFT, + /* 0x77 */ WANM_FLING_RIGHT, + /* 0x78 */ WANM_CATCH_START, + /* 0x79 */ WANM_CATCH, + /* 0x7A */ WANM_ATTACK_RECOIL_GROUND, + /* 0x7B */ WANM_DIE, + /* 0x7C */ WANM_SWIM_DIE, + /* 0x7D */ WANM_SWIM_DROWN, + /* 0x7E */ WANM_WAIT_STUNNED, // ? + /* 0x7F */ WANM_WAIT_A_TO_S, // ? + /* 0x80 */ WANM_SERVICE_WAIT_D, + /* 0x81 */ WANM_MIDNA_SHOCK, + /* 0x82 */ WANM_ENTRANCE, + /* 0x83 */ WANM_GET_A, + /* 0x84 */ WANM_GET, + /* 0x85 */ WANM_WAIT_KARGOROK, + /* 0x86 */ WANM_CATCH_KARGOROK, + /* 0x87 */ WANM_DMG_ELEC_GROUND, + /* 0x88 */ WANM_DMG_ELEC_AIR, + /* 0x89 */ WANM_TWGATE_PULL, + /* 0x8A */ WANM_CHAIN_PULL, + /* 0x8B */ WANM_CHAIN_PULL_END, + /* 0x8C */ WANM_LISTEN, + /* 0x8D */ WANM_PIG_GANON_CATCH_ST, + /* 0x8E */ WANM_PIG_GANON_CATCH_END, + /* 0x8F */ WANM_PIG_GANON_THROW_LEFT_START, + /* 0x90 */ WANM_PIG_GANON_THROW_LEFT_END, + /* 0x91 */ WANM_PIG_GANON_THROW_RIGHT_START, + /* 0x92 */ WANM_PIG_GANON_THROW_RIGHT_END, }; enum MODE_FLG { @@ -655,8 +1050,8 @@ public: /* 0x0E8 */ PROC_MASTER_SWORD_STICK, /* 0x0E9 */ PROC_MASTER_SWORD_PULL, /* 0x0EA */ PROC_DUNGEON_WARP_READY, - /* 0x0EB */ PROC_DUNEGON_WARP, - /* 0x0EC */ PROC_DUNEGON_WARP_SCN_START, + /* 0x0EB */ PROC_DUNGEON_WARP, + /* 0x0EC */ PROC_DUNGEON_WARP_SCN_START, /* 0x0ED */ PROC_WOLF_HOWL_DEMO, /* 0x0EE */ PROC_WOLF_SERVICE_WAIT, /* 0x0EF */ PROC_WOLF_TIRED_WAIT, @@ -774,15 +1169,6 @@ public: /* 0x15F */ PROC_QUAKE_WAIT, }; - // this might be one of the above enums, but not clear yet - enum UPPER_ANM { - ANM_SMALL_GUARD = 22, - ANM_HUMAN_CHAIN_GRAB = 98, - ANM_WOLF_CHAIN_GRAB = 672, - ANM_WOLF_ENEMY_THROW_LEFT = 701, - ANM_WOLF_ENEMY_THROW_RIGHT, - }; - enum daAlink_ITEM_BTN { /* 0x01 */ BTN_X = (1 << 0), /* 0x02 */ BTN_Y = (1 << 1), @@ -880,13 +1266,13 @@ public: /* 800A7358 */ void setPolygonSpeed(); /* 800A7950 */ void checkWindSpeedOnAngle() const; /* 800A79EC */ void checkWindSpeedOnAngleAnime(int) const; - /* 800A7A5C */ void checkDashAnime() const; + /* 800A7A5C */ bool checkDashAnime() const; /* 800A7ABC */ void checkWindWallRate(cXyz const&); /* 800A7CB0 */ void setWindSpeed(); /* 800A8310 */ void setBodyPartPos(); /* 800A87F8 */ void setAttentionPos(); /* 800A8CE4 */ void setMatrix(); - /* 800A9248 */ static void simpleAnmPlay(J3DAnmBase*); + /* 800A9248 */ static int simpleAnmPlay(J3DAnmBase*); /* 800A92F0 */ void setSwordPos(); /* 800A9450 */ void setItemMatrix(int); /* 800A9F4C */ void setWolfItemMatrix(); @@ -904,10 +1290,10 @@ public: /* 800ABB84 */ void setCollisionPos(); /* 800ABDB8 */ void setCollision(); /* 800AC394 */ void setFrameCtrl(daPy_frameCtrl_c*, u8, s16, s16, f32, f32); - /* 800AC450 */ void getMainBckData(daAlink_c::daAlink_ANM) const; - /* 800AC558 */ void checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM) const; - /* 800AC5B4 */ void checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM) const; - /* 800AC610 */ void getUnderUpperAnime(daAlink_c::daAlink_ANM, J3DAnmTransform**, + /* 800AC450 */ const daAlink_BckData* getMainBckData(daAlink_c::daAlink_ANM) const; + /* 800AC558 */ BOOL checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM) const; + /* 800AC5B4 */ BOOL checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM) const; + /* 800AC610 */ int getUnderUpperAnime(daAlink_c::daAlink_ANM, J3DAnmTransform**, J3DAnmTransform**, int, u32); /* 800AC738 */ void setDoubleAnimeBlendRatio(f32); /* 800AC754 */ void commonDoubleAnime(J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*, @@ -918,8 +1304,8 @@ public: /* 800ACF80 */ void setSingleAnimeBase(daAlink_c::daAlink_ANM anmID); /* 800ACFB0 */ void setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anmID, f32); /* 800ACFE0 */ void setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM anmID, f32 speed, f32 morf); - /* 800AD00C */ void setSingleAnime(daAlink_c::daAlink_ANM anmID, f32 rate, f32 start, s16 endF, f32 morf); - /* 800AD0F4 */ void setSingleAnimeParam(daAlink_c::daAlink_ANM anmID, daAlinkHIO_anm_c const*); + /* 800AD00C */ int setSingleAnime(daAlink_c::daAlink_ANM anmID, f32 rate, f32 start, s16 endF, f32 morf); + /* 800AD0F4 */ int setSingleAnimeParam(daAlink_c::daAlink_ANM anmID, daAlinkHIO_anm_c const*); /* 800AD128 */ void animePlay(J3DAnmTransform*, daPy_frameCtrl_c*); /* 800AD170 */ void allAnimePlay(); /* 800AD2D8 */ void setUpperAnimeMorf(f32); @@ -930,13 +1316,13 @@ public: /* 800AD6F0 */ void setUpperAnimeParam(u16, daAlink_c::daAlink_UPPER, daAlinkHIO_anm_c const*); /* 800AD724 */ void resetUpperAnime(daAlink_c::daAlink_UPPER, f32); /* 800AD8F4 */ void setUnderAnimeMorf(f32); - /* 800AD964 */ void setUnderAnime(u16, daAlink_c::daAlink_UNDER, f32, f32, s16, f32); - /* 800ADAB8 */ void setUnderAnimeParam(u16, daAlink_c::daAlink_UNDER, daAlinkHIO_anm_c const*); + /* 800AD964 */ int setUnderAnime(u16, daAlink_c::daAlink_UNDER, f32, f32, s16, f32); + /* 800ADAB8 */ int setUnderAnimeParam(u16, daAlink_c::daAlink_UNDER, daAlinkHIO_anm_c const*); /* 800ADAEC */ void resetUnderAnime(daAlink_c::daAlink_UNDER, f32); /* 800ADB78 */ void setOldRootQuaternion(s16, s16, s16); - /* 800ADC50 */ void checkAtnLeftAnime(); - /* 800ADCEC */ void checkAtnRightAnime(); - /* 800ADD88 */ void getMoveGroundAngleSpeedRate(); + /* 800ADC50 */ BOOL checkAtnLeftAnime(); + /* 800ADCEC */ BOOL checkAtnRightAnime(); + /* 800ADD88 */ f32 getMoveGroundAngleSpeedRate(); /* 800ADE14 */ void setBlendMoveAnime(f32); /* 800AEA70 */ void setBlendAtnMoveAnime(f32); /* 800AF11C */ void setBlendAtnBackMoveAnime(f32); @@ -953,7 +1339,7 @@ public: /* 800AFC88 */ void resetFacePriTexture(); /* 800AFCBC */ void resetFacePriAnime(); /* 800AFCF0 */ void playFaceTextureAnime(); - /* 800B0098 */ void getGroundAngle(cBgS_PolyInfo*, s16); + /* 800B0098 */ s16 getGroundAngle(cBgS_PolyInfo*, s16); /* 800B0150 */ void getRoofAngle(cBgS_PolyInfo*, s16); /* 800B01FC */ void getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz*, int); /* 800B02BC */ void setFrontWallType(); @@ -966,7 +1352,7 @@ public: /* 800B1B68 */ BOOL checkNotItemSinkLimit(); /* 800B1BAC */ void setSandShapeOffset(); /* 800B1FB8 */ bool checkLv2MiddleBossBgRide(s16); - /* 800B1FD8 */ void getSlidePolygon(cM3dGPla*); + /* 800B1FD8 */ bool getSlidePolygon(cM3dGPla*); /* 800B21EC */ BOOL checkSlope() const; /* 800B25CC */ BOOL itemTriggerCheck(u8); /* 800B25E8 */ BOOL itemButtonCheck(u8); @@ -999,15 +1385,15 @@ public: /* 800B3F2C */ void getStickAngleDistanceRate(); /* 800B3FD4 */ void setSpeedAndAngleNormal(); /* 800B444C */ void setSpeedAndAngleAtn(); - /* 800B477C */ void checkRequestTalkActor(dAttList_c*, fopAc_ac_c*); + /* 800B477C */ int checkRequestTalkActor(dAttList_c*, fopAc_ac_c*); /* 800B47B4 */ void checkServiceWaitMode(); /* 800B48D0 */ void setJumpMode(); /* 800B4908 */ f32 getMetamorphoseNearDis() const; /* 800B4918 */ f32 getMetamorphoseFarDis() const; /* 800B4928 */ s16 getMetamorphoseFarAngle() const; /* 800B4938 */ void setMidnaMsg(); - /* 800B4950 */ bool notTalk(); - /* 800B4A08 */ void setTalkStatus(); + /* 800B4950 */ BOOL notTalk(); + /* 800B4A08 */ BOOL setTalkStatus(); /* 800B4B2C */ f32 getFrontRollRate(); /* 800B4B7C */ void decideCommonDoStatus(); /* 800B5284 */ void decideDoStatus(); @@ -1017,7 +1403,7 @@ public: /* 800B5C64 */ void setStepLandVibration(); /* 800B5CCC */ void checkLandAction(int); /* 800B5F6C */ BOOL checkSlideAction(); - /* 800B607C */ void checkAutoJumpAction(); + /* 800B607C */ BOOL checkAutoJumpAction(); /* 800B69CC */ bool checkCutJumpInFly(); /* 800B6A30 */ BOOL checkFrontWallTypeAction(); /* 800B6F28 */ void checkItemActionInitStart(); @@ -1031,8 +1417,8 @@ public: /* 800B7528 */ void checkItemButtonChange(); /* 800B75EC */ void checkUpperItemAction(); /* 800B7B7C */ void orderPeep(); - /* 800B7BF8 */ void orderTalk(int); - /* 800B80C4 */ void orderZTalk(); + /* 800B7BF8 */ int orderTalk(int); + /* 800B80C4 */ int orderZTalk(); /* 800B8374 */ void checkNormalAction(); /* 800B8930 */ bool checkReadyItem(); /* 800B8988 */ void checkItemAction(); @@ -1043,7 +1429,7 @@ public: /* 800B92D0 */ void checkOneHandItemEquipAnime() const; /* 800B92F8 */ void checkItemEquipAnime() const; /* 800B9340 */ BOOL checkEquipAnime() const; - /* 800B9398 */ void checkWindDashAnime() const; + /* 800B9398 */ BOOL checkWindDashAnime() const; /* 800B93CC */ void checkSwordTwirlAnime() const; /* 800B93F4 */ void swordEquip(int); /* 800B9580 */ void swordUnequip(); @@ -1078,9 +1464,9 @@ public: /* 800BDF60 */ void startRestartRoom(u32, int, int, int); /* 800BE26C */ void checkCoachGuardGame(); /* 800BE2C0 */ void checkRoofRestart(); - /* 800BE3E4 */ void checkRestartRoom(); + /* 800BE3E4 */ bool checkRestartRoom(); /* 800BE9D4 */ s16 getSceneExitMoveAngle(); - /* 800BEAF8 */ int checkSceneChange(int); + /* 800BEAF8 */ int checkSceneChange(int i_exitID); /* 800BF0B8 */ void voiceStartLevel(u32); /* 800BF0EC */ void seStartSwordCut(u32); /* 800BF194 */ void seStartMapInfo(u32); @@ -1194,7 +1580,7 @@ public: /* 800C84D0 */ void procFloorDownRebound(); /* 800C854C */ void procGoronRideWaitInit(fopAc_ac_c*); /* 800C85D8 */ void procGoronRideWait(); - /* 800C8700 */ void execute(); + /* 800C8700 */ int execute(); /* 800CAFC8 */ void setDrawHand(); /* 800CB480 */ bool checkSwordDraw(); /* 800CB53C */ bool checkShieldDraw(); @@ -1229,9 +1615,9 @@ public: /* 800CFF4C */ BOOL checkAttentionLock(); /* 800D0020 */ BOOL checkFmChainGrabAnime() const; /* 800D0048 */ BOOL checkSmallUpperGuardAnime() const; - /* 800D00EC */ BOOL checkReinRide() const; + /* 800D00EC */ u32 checkReinRide() const; /* 800D0110 */ BOOL checkWolfEnemyThrowAnime() const; - /* 800D0138 */ u16 checkSpecialDemoMode() const; + /* 800D0138 */ int checkSpecialDemoMode() const; /* 800D014C */ void setMidnaTalkStatus(u8); /* 800D0164 */ void set3DStatus(u8, u8); /* 800D018C */ u32 checkModeFlg(u32) const; @@ -1244,7 +1630,7 @@ public: /* 800D0F90 */ void initCutTurnAt(f32, int); /* 800D102C */ bool checkCutFinishJumpUp(); /* 800D1088 */ void changeCutFast(); - /* 800D10E0 */ void checkCutFastReady(); + /* 800D10E0 */ bool checkCutFastReady(); /* 800D1268 */ void setSwordModel(); /* 800D1310 */ void offSwordModel(); /* 800D13AC */ BOOL checkCutTypeNoBlur() const; @@ -1325,20 +1711,20 @@ public: /* 800D6F2C */ void checkNoLandDamageSlidePolygon(); /* 800D6FE0 */ void checkCutLandDamage(); /* 800D70A0 */ void checkCaughtEscapeCutTurn(); - /* 800D7208 */ void damageMagnification(int, int); + /* 800D7208 */ f32 damageMagnification(int, int); /* 800D72BC */ void setDamagePoint(int, int, int, int); /* 800D7478 */ void setDamagePointNormal(int); /* 800D74A4 */ void setLandDamagePoint(int); /* 800D74F4 */ void getDamageVec(dCcD_GObjInf*); /* 800D76C4 */ void setDashDamage(); /* 800D7768 */ void checkIcePolygonDamage(cBgS_PolyInfo*); - /* 800D77C8 */ void checkMagicArmorNoDamage(); + /* 800D77C8 */ BOOL checkMagicArmorNoDamage(); /* 800D7820 */ void checkPolyDamage(); /* 800D7A98 */ void checkElecReturnDamage(dCcD_GObjInf&, fopAc_ac_c**); /* 800D7B18 */ void damageTimerCount(); /* 800D7BE8 */ void checkHugeAttack(int) const; /* 800D7C14 */ void checkLargeAttack(int) const; - /* 800D7C40 */ void checkDamageAction(); + /* 800D7C40 */ BOOL checkDamageAction(); /* 800D8F3C */ void procDamageInit(dCcD_GObjInf*, int); /* 800D9514 */ void procDamage(); /* 800D96DC */ void procCoLargeDamageInit(int, int, s16, s16, dCcD_GObjInf*, int); @@ -1368,7 +1754,7 @@ public: /* 800DC474 */ void procCoSwimFreezeReturn(); /* 800DC548 */ static BOOL checkEnemyGroup(fopAc_ac_c*); /* 800DC5A4 */ static BOOL checkSpecialNpc(fopAc_ac_c*); - /* 800DC5DC */ void checkShieldAttackEmphasys(); + /* 800DC5DC */ bool checkShieldAttackEmphasys(); /* 800DC678 */ BOOL checkGuardActionChange(); /* 800DC79C */ void stickArrowIncrement(int); /* 800DC8C4 */ void setArrowShieldActor(fopAc_ac_c*, int); @@ -1458,7 +1844,7 @@ public: /* 800E1374 */ fopAc_ac_c* getCopyRodControllActor(); /* 800E1390 */ fopAc_ac_c* getCopyRodCameraActor(); /* 800E13AC */ void initCopyRodUpperAnimeSpeed(int); - /* 800E1408 */ BOOL checkForestOldCentury(); + /* 800E1408 */ static BOOL checkForestOldCentury(); /* 800E1530 */ void checkCopyRodAnime() const; /* 800E158C */ void setCopyRodControllAnime(); /* 800E15FC */ void setCopyRodControllUpperSpeedRate(); @@ -1515,7 +1901,7 @@ public: /* 800E3D6C */ void checkGrabHeavyActor(); /* 800E3D94 */ void checkGrabSideActor(); /* 800E3DBC */ void setGrabUpperAnime(f32); - /* 800E3F20 */ void checkGrabRooster(); + /* 800E3F20 */ BOOL checkGrabRooster(); /* 800E3F50 */ void setGrabItemPos(); /* 800E4BD4 */ void freeGrabItem(); /* 800E4DEC */ void setGrabUpperSpeedRate(); @@ -1552,7 +1938,7 @@ public: /* 800E76E0 */ void procPickPut(); /* 800E7894 */ void checkSetChainPullAnime(s16); /* 800E794C */ s16 getChainStickAngleY(s16) const; - /* 800E7994 */ void checkChainEmphasys(); + /* 800E7994 */ u8 checkChainEmphasys(); /* 800E79F8 */ void searchFmChainPos(); /* 800E7AEC */ void setFmChainPosFromOut(fopAc_ac_c*, cXyz*, int); /* 800E7C30 */ void procFmChainUpInit(); @@ -1560,7 +1946,7 @@ public: /* 800E7DD8 */ void procFmChainStrongPullInit(); /* 800E7E50 */ void procFmChainStrongPull(); /* 800E7ED0 */ void setWallGrabStatus(u8, u8); - /* 800E7EE4 */ void getWallGrabStatus(); + /* 800E7EE4 */ int getWallGrabStatus(); /* 800E7EF4 */ void wallGrabTrigger(); /* 800E7F18 */ void wallGrabButton(); /* 800E7F3C */ void setPushPullKeepData(dBgW_Base::PushPullLabel, int); @@ -1712,7 +2098,7 @@ public: /* 800F3C44 */ void getCanoeMaxRotSpeed() const; /* 800F3CCC */ void getCanoeLocalPaddleTop(); /* 800F3CF8 */ void checkCanoeRideTandem(); - /* 800F3D58 */ void checkFishingRodAndLureItem() const; + /* 800F3D58 */ BOOL checkFishingRodAndLureItem() const; /* 800F3DA0 */ void initFishingRodHand(); /* 800F3DFC */ void getCanoePaddleMatrix(); /* 800F3E4C */ void checkFishingRodGrab(fopAc_ac_c*) const; @@ -1897,12 +2283,12 @@ public: /* 80101890 */ BOOL checkZoraWearMaskDraw(); /* 801018E4 */ void checkAcceptUseItemInWater(u16) const; /* 80101934 */ void swimDeleteItem(); - /* 801019B8 */ void getZoraSwim() const; + /* 801019B8 */ bool getZoraSwim() const; /* 80101A18 */ void getSwimFrontMaxSpeed() const; /* 80101AA8 */ void getSwimMaxFallSpeed() const; /* 80101B44 */ void checkOxygenTimer(); /* 80101C94 */ void offOxygenTimer(); - /* 80101CB8 */ void checkPossibleWaterInMode() const; + /* 80101CB8 */ bool checkPossibleWaterInMode() const; /* 80101CF4 */ void setWaterInAnmRate(daPy_frameCtrl_c*, f32); /* 80101D70 */ void swimBgCheck(f32); /* 801023E4 */ void setSpeedAndAngleSwim(); @@ -2047,7 +2433,7 @@ public: /* 801107BC */ void checkWaterInKandelaar(f32); /* 80110840 */ void offKandelaarModel(); /* 801108EC */ void kandelaarModelCallBack(); - /* 80110C6C */ void checkKandelaarEquipAnime() const; + /* 80110C6C */ BOOL checkKandelaarEquipAnime() const; /* 80110C94 */ void preKandelaarDraw(); /* 80110E84 */ void setKandelaarModel(); /* 80110F88 */ void resetOilBottleModel(); @@ -2096,7 +2482,7 @@ public: /* 80115AA0 */ void procIronBallReturn(); /* 80115C20 */ BOOL checkEventRun() const; /* 80115C50 */ void createNpcTks(cXyz*, int, u32); - /* 80115EC0 */ void checkDemoAction(); + /* 80115EC0 */ int checkDemoAction(); /* 80116E60 */ void checkDemoMoveMode(u32) const; /* 80116E9C */ void setDemoMoveData(u32*, cXyz const*); /* 80117064 */ void setNoDrawSwordShield(int, u16); @@ -2106,7 +2492,7 @@ public: /* 80117C90 */ void resetSpecialEvent(); /* 80117CF8 */ void endDemoMode(); /* 801180EC */ void getDemoLookActor(); - /* 80118170 */ void checkFlyAtnWait(); + /* 80118170 */ bool checkFlyAtnWait(); /* 801181A0 */ void setGetItemFace(u16); /* 801182D4 */ void checkGrabTalkActor(fopAc_ac_c*); /* 80118308 */ void setTalkStartBack(cXyz*); @@ -2119,16 +2505,16 @@ public: /* 801188B0 */ void setDemoLeftHandIndex(u16); /* 8011894C */ void setDemoRide(u16); /* 801189F8 */ void setDemoBodyBck(dDemo_actor_c*, u16); - /* 80118AD0 */ void checkFinalBattle(); - /* 80118B34 */ void checkRestartDead(int, int); + /* 80118AD0 */ BOOL checkFinalBattle(); + /* 80118B34 */ BOOL checkRestartDead(int, int); /* 80118BF4 */ void setDeadRideSyncPos(); /* 80118C98 */ BOOL checkDeadHP(); - /* 80118D7C */ void checkDeadAction(int); + /* 80118D7C */ BOOL checkDeadAction(int); /* 80118FF8 */ void setHighModelBck(mDoExt_bckAnm*, u16); /* 801190A4 */ void setHighModelFaceBtk(u16); /* 80119134 */ void setDemoBrk(J3DAnmTevRegKey**, J3DModel*, u16); /* 801191C4 */ void setStickAnmData(J3DAnmBase*, int, int, u16, int); - /* 801195C0 */ void procDemoCommon(); + /* 801195C0 */ int procDemoCommon(); /* 801195F8 */ void procCoToolDemoInit(); /* 801196D8 */ void procCoToolDemo(); /* 80119D98 */ void procCoTalkInit(); @@ -2179,7 +2565,7 @@ public: /* 8011D544 */ void procCoGetReadySitInit(); /* 8011D64C */ void procCoGetReadySit(); /* 8011D6D0 */ void procCoTwGateInit(); - /* 8011D7D4 */ void procCoTwGate(); + /* 8011D7D4 */ int procCoTwGate(); /* 8011D82C */ void procWolfSnowEscapeInit(); /* 8011D8F8 */ void procWolfSnowEscape(); /* 8011DB04 */ void procZoraMoveInit(); @@ -2199,7 +2585,7 @@ public: /* 8011E9F8 */ void procGanonFinishInit(); /* 8011EA78 */ bool procGanonFinish(); /* 8011EAE8 */ void procCutFastReadyInit(); - /* 8011EB8C */ void procCutFastReady(); + /* 8011EB8C */ int procCutFastReady(); /* 8011EBDC */ int procMasterSwordStickInit(); /* 8011EC60 */ int procMasterSwordStick(); /* 8011ED18 */ int procMasterSwordPullInit(); @@ -2697,7 +3083,7 @@ public: bool i_checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); } BOOL i_checkAttentionLock() { return mAttention->Lockon(); } - bool checkUpperAnime(u16 pIdx) const { return mUpperAnime[UPPER_NOW].getIdx() == pIdx; } + bool checkUpperAnime(u16 pIdx) const { return mUpperAnmHeap[UPPER_2].getIdx() == pIdx; } bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); } bool checkHorseTurnLAnime() const { return checkUpperAnime(0x24C); } bool checkHorseTurnRAnime() const { return checkUpperAnime(0x24D); } @@ -2727,7 +3113,7 @@ public: return mEquipItem != 0x102 && checkBoomerangAnime(); } J3DAnmTransform* getNowAnmPackUpper(daAlink_UPPER param_0) { - return mNowAnmPack[param_0].getAnmTransform(); + return mNowAnmPackUpper[param_0].getAnmTransform(); } void setFacePriBck(u16 param_0) { setFaceBck(param_0, 1, 0xFFFF); } void cancelFmChainGrabFromOut() { @@ -2786,12 +3172,15 @@ public: bool checkResetRootMtx(int param_0) const { return field_0x2f90 != 0 && param_0 == 1; } + bool talkTrigger() const { return mItemTrigger & BTN_A; } + J3DAnmTransform* getNowAnmPackUnder(daAlink_UNDER i_idx) { return mNowAnmPackUnder[i_idx].getAnmTransform(); } + inline void startRestartRoomFromOut(int, u32, int); inline u16 getReadyItem(); - static u8 const m_mainBckShield[80]; - static u8 const m_mainBckSword[20]; - static u8 const m_mainBckFishing[112]; + static daAlink_BckData const m_mainBckShield[20]; + static daAlink_BckData const m_mainBckSword[5]; + static daAlink_BckData const m_mainBckFishing[28]; static daAlink_AnmData const m_anmDataTable[414]; static daAlink_WlAnmData const m_wlAnmDataTable[147]; static u8 const m_faceTexDataTable[652]; @@ -2830,7 +3219,7 @@ private: /* 0x00690 */ mDoExt_bckAnm* mpDemoFCTmpBck; /* 0x00694 */ J3DDeformData* mpDemoFCTmpBls; /* 0x00698 */ void* field_0x0698; - /* 0x0069C */ void* field_0x069c; + /* 0x0069C */ mDoExt_blkAnm* field_0x069c; /* 0x006A0 */ J3DModel* mpDemoHLTmpModel; /* 0x006A4 */ mDoExt_bckAnm* mpDemoHLTmpBck; /* 0x006A8 */ J3DModel* mpDemoHRTmpModel; @@ -2884,7 +3273,10 @@ private: /* 0x007A0 */ J3DModel* mpWlMidnaHatModel; /* 0x007A4 */ J3DModel* field_0x7a4; // related to wolf /* 0x007A8 */ J3DModel* mpWlMidnaHairModel; - /* 0x007AC */ u8 field_0x7ac[0x10]; + /* 0x007AC */ J3DAnmTevRegKey* field_0x7ac; + /* 0x007B0 */ J3DAnmTevRegKey* field_0x7b0; + /* 0x007B4 */ J3DAnmTevRegKey* field_0x7b4; + /* 0x007B8 */ J3DAnmTevRegKey* field_0x7b8; /* 0x007BC */ mDoExt_bckAnm* m_sWindowBck; /* 0x007C0 */ u32 mpWarpTexData; /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10]; @@ -2912,14 +3304,14 @@ private: /* 0x01E4C */ cBgS_PolyInfo mPolyInfo4; /* 0x01E5C */ dBgS_ObjLinChk mObjLinChk; /* 0x01ECC */ dBgS_ObjGndChk mObjGndChk; - /* 0x01F20 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x1f20; + /* 0x01F20 */ mDoExt_MtxCalcAnmBlendTbl* field_0x1f20; /* 0x01F24 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x1f24; - /* 0x01F28 */ mDoExt_AnmRatioPack field_0x1f28[3]; - /* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPack[3]; - /* 0x01F58 */ daPy_anmHeap_c mUnderAnime[3]; - /* 0x01F94 */ daPy_anmHeap_c mUpperAnime[3]; - /* 0x01FD0 */ daPy_frameCtrl_c mFrameCtrl1[3]; - /* 0x02018 */ daPy_frameCtrl_c mFrameCtrl2[3]; + /* 0x01F28 */ mDoExt_AnmRatioPack mNowAnmPackUnder[3]; + /* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPackUpper[3]; + /* 0x01F58 */ daPy_anmHeap_c mUnderAnmHeap[3]; + /* 0x01F94 */ daPy_anmHeap_c mUpperAnmHeap[3]; + /* 0x01FD0 */ daPy_frameCtrl_c mUnderFrameCtrl[3]; + /* 0x02018 */ daPy_frameCtrl_c mUpperFrameCtrl[3]; /* 0x02060 */ mDoExt_MtxCalcOldFrame* field_0x2060; /* 0x02064 */ daAlink_sight_c mSight; /* 0x020F0 */ daPy_anmHeap_c mAnmHeap3; @@ -2970,11 +3362,11 @@ private: /* 0x02A4C */ daAlink_footData_c mFootData2[2]; /* 0x02B94 */ f32* field_0x2b94; /* 0x02B98 */ f32 field_0x2b98; - /* 0x02B98 */ f32* field_0x2b9c; + /* 0x02B98 */ f32 field_0x2b9c; /* 0x02BA0 */ f32* field_0x2ba0; /* 0x02BA4 */ f32* field_0x2ba4; /* 0x02BA8 */ f32 mSinkShapeOffset; - /* 0x02BAC */ cXyz field_0x2bac; + /* 0x02BAC */ f32 field_0x2bac[3]; /* 0x02BB8 */ Mtx mInvMtx; /* 0x02BE8 */ Mtx field_0x2be8; /* 0x02C18 */ Mtx mRootMtx; @@ -3021,11 +3413,11 @@ private: /* 0x02FA2 */ u8 mActiveBombNum; /* 0x02FA3 */ u8 field_0x2fa3; /* 0x02FA4 */ u8 mRollCrashFlg; - /* 0x02FA5 */ u8 field_0x2fa5; + /* 0x02FA5 */ u8 mPolySound; /* 0x02FA6 */ u8 field_0x2fa6; /* 0x02FA7 */ u8 field_0x2fa7; /* 0x02FA8 */ u8 field_0x2fa8; - /* 0x02FA9 */ u8 field_0x2fa9; + /* 0x02FA9 */ u8 mWolfEyeUpTimer; /* 0x02FAA */ u8 mRideStatus; /* 0x02FAB */ u8 field_0x2fab; /* 0x02FAC */ u8 mExitDirection; @@ -3042,7 +3434,7 @@ private: /* 0x02FB7 */ u8 field_0x2fb7; /* 0x02FB8 */ u8 field_0x2fb8; /* 0x02FB9 */ u8 field_0x2fb9; - /* 0x02FBA */ u8 field_0x2fba; + /* 0x02FBA */ u8 mHotspringRecoverTimer; /* 0x02FBB */ u8 field_0x2fbb; /* 0x02FBC */ u8 field_0x2fbc; /* 0x02FBD */ u8 field_0x2fbd; @@ -3206,7 +3598,7 @@ private: /* 0x030FA */ s16 field_0x30fa; /* 0x030FC */ u16 field_0x30fc; /* 0x030FE */ u16 field_0x30fe; - /* 0x03100 */ u16 field_0x3100; + /* 0x03100 */ s16 field_0x3100; /* 0x03102 */ s16 field_0x3102; /* 0x03104 */ s16 field_0x3104; /* 0x03106 */ u16 field_0x3106; @@ -5802,16 +6194,26 @@ public: class mDoExt_morf_c; +typedef int (daMidna_c::*daMidna_func)(); class daMidna_c : public fopAc_ac_c { public: enum daMidna_ERFLG0 { - NO_SERVICE_WAIT = 128, - FORCE_PANIC = 8, + ERFLG0_NO_SERVICE_WAIT = 0x80, + ERFLG0_FORCE_PANIC = 8, }; - enum daMidna_FLG0 { NPC_NEAR = 0x100000, NPC_FAR = 0x40000, NO_DRAW = 0x2000 }; + enum daMidna_FLG0 { + FLG0_UNK_8000000 = 0x8000000, + FLG0_NPC_NEAR = 0x100000, + FLG0_NPC_FAR = 0x40000, + FLG0_NO_DRAW = 0x2000, + FLG0_UNK_200 = 0x200, + }; - enum daMidna_FLG1 { FORCE_NORMAL_COLOR = 8, FORCE_TIRED_COLOR = 4 }; + enum daMidna_FLG1 { + FLG1_FORCE_NORMAL_COL = 8, + FLG1_FORCE_TIRED_COL = 4, + }; enum daMidna_ANM {}; @@ -5873,9 +6275,14 @@ public: bool checkDemoTypeNone() const { return mDemoType == 0; } void changeOriginalDemo() { mDemoType = 3; } void changeDemoMode(u32 mode) { mDemoMode = mode; } - BOOL checkNpcNear() { return checkStateFlg0(NPC_NEAR); } - BOOL checkNpcFar() { return checkStateFlg0(NPC_FAR); } - BOOL checkNoDraw() const { return checkStateFlg0(NO_DRAW); } + BOOL checkNpcNear() { return checkStateFlg0(FLG0_NPC_NEAR); } + BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); } + BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); } + int checkMetamorphoseEnable() { return (this->*mpFunc)(); } + + bool checkPortalObjRide() const { + return checkStateFlg0(FLG0_UNK_8000000) && checkStateFlg0(FLG0_UNK_200); + } inline bool checkMidnaRealBody(); @@ -5883,72 +6290,73 @@ public: static u8 const m_anmDataTable[636]; private: - /* 0x0568 */ request_of_phase_process_class* field_0x568; - /* 0x056C */ u8 field_0x56c[4]; + /* 0x0568 */ request_of_phase_process_class mPhase; /* 0x0570 */ J3DModel* field_0x570; /* 0x0574 */ J3DModel* field_0x574; - /* 0x0578 */ mDoExt_morf_c* field_0x578; + /* 0x0578 */ mDoExt_McaMorfSO* field_0x578; /* 0x057C */ mDoExt_McaMorfCallBack1_c* field_0x57c; /* 0x0580 */ cXyz* field_0x580; /* 0x0584 */ mDoExt_bckAnm field_0x584; /* 0x05A0 */ mDoExt_bckAnm field_0x5a0; - /* 0x05BC */ u8 field_0x5bc[8]; + /* 0x05BC */ J3DAnmTexPattern* field_0x5bc; + /* 0x05C0 */ J3DAnmTextureSRTKey* field_0x5c0; /* 0x05C4 */ mDoExt_invisibleModel field_0x5c4; - /* 0x05CC */ mDoExt_invisibleModel field_0x5cc; - /* 0x05D4 */ mDoExt_invisibleModel field_0x5d4; - /* 0x05DC */ mDoExt_invisibleModel field_0x5dc; + /* 0x05CC */ mDoExt_invisibleModel mInvMaskBmd; + /* 0x05D4 */ mDoExt_invisibleModel mInvHandsBmd; + /* 0x05DC */ mDoExt_invisibleModel mInvHairhandBmd; /* 0x05E4 */ daPy_anmHeap_c field_0x5e4[3]; /* 0x0620 */ daPy_anmHeap_c field_0x620; /* 0x0634 */ daPy_anmHeap_c field_0x634; - /* 0x0648 */ J3DAnmBase* field_0x648; - /* 0x064C */ J3DAnmBase* field_0x64c; - /* 0x0650 */ J3DAnmBase* field_0x650; - /* 0x0654 */ J3DAnmBase* field_0x654; - /* 0x0658 */ u8 field_0x658[0x10]; - /* 0x0668 */ J3DAnmBase* field_0x668; - /* 0x066C */ J3DAnmBase* field_0x66c; - /* 0x0670 */ u8 field_0x670[4]; - /* 0x0674 */ J3DModel* field_0x674; - /* 0x0678 */ u8 field_0x678[4]; - /* 0x067C */ J3DModel* field_0x67c; - /* 0x0680 */ u8 field_0x680[4]; - /* 0x0684 */ J3DModel* field_0x684; - /* 0x0688 */ J3DModel* field_0x688; - /* 0x068C */ J3DModel* field_0x68c; - /* 0x0690 */ J3DModel* field_0x690; - /* 0x0694 */ J3DModel* field_0x694; - /* 0x0698 */ J3DModel* field_0x698; - /* 0x069C */ u8 field_0x98c[0x10]; - /* 0x06AC */ J3DModel* field_0x6ac; - /* 0x06B0 */ J3DModel* field_0x6b0; - /* 0x06B4 */ u8 field_0x6b4[4]; - /* 0x06B8 */ mDoExt_bckAnm* field_0x6b8; - /* 0x06BC */ J3DDeformData* field_0x6bc; - /* 0x06C0 */ u8 field_0x6c0[4]; - /* 0x06C4 */ J3DFrameCtrl* field_0x6c4; - /* 0x06C8 */ J3DModel* field_0x6c8; - /* 0x06CC */ mDoExt_bckAnm* field_0x6cc; - /* 0x06D0 */ J3DModel* field_0x6d0; - /* 0x06D4 */ mDoExt_bckAnm* field_0x6d4; - /* 0x06D8 */ J3DModel* field_0x6d8; - /* 0x06DC */ mDoExt_bckAnm* field_0x6dc; - /* 0x06E0 */ s16 field_0x6e0; - /* 0x06E2 */ s16 field_0x6e2; - /* 0x06E4 */ s16 field_0x6e4; - /* 0x06E6 */ s16 field_0x6e6; - /* 0x06E8 */ u8 field_0x6e8; - /* 0x06E9 */ u8 field_0x6e9; - /* 0x06EA */ u8 field_0x6ea; - /* 0x06EB */ u8 field_0x6eb; + /* 0x0648 */ J3DAnmTextureSRTKey* field_0x648; + /* 0x064C */ J3DAnmTextureSRTKey* field_0x64c; + /* 0x0650 */ J3DAnmTextureSRTKey* field_0x650; + /* 0x0654 */ J3DAnmTextureSRTKey* field_0x654; + /* 0x0658 */ J3DAnmTevRegKey* field_0x658; + /* 0x065C */ J3DAnmTevRegKey* field_0x65c; + /* 0x0660 */ J3DAnmTevRegKey* field_0x660; + /* 0x0664 */ J3DAnmTevRegKey* field_0x664; + /* 0x0668 */ J3DAnmTevRegKey* field_0x668; + /* 0x066C */ J3DAnmTevRegKey* field_0x66c; + /* 0x0670 */ J3DModel* field_0x670; + /* 0x0674 */ J3DModel* mpMaskBmd; + /* 0x0678 */ J3DModel* field_0x678; + /* 0x067C */ J3DModel* mpHandsBmd; + /* 0x0680 */ J3DModel* field_0x680; + /* 0x0684 */ J3DModel* mpHairhandBmd; + /* 0x0688 */ J3DModel* mpDemoBDTmpBmd; + /* 0x068C */ J3DModel* mpDemoBDMaskBmd; + /* 0x0690 */ J3DModel* mpDemoBDHandsBmd; + /* 0x0694 */ J3DModel* mpDemoBDHairhandBmd; + /* 0x0698 */ J3DModel* mpGokouBmd; + /* 0x069C */ J3DShape* field_0x69c; + /* 0x06A0 */ J3DShape* field_0x6a0; + /* 0x06A4 */ J3DShape* field_0x6a4; + /* 0x06A8 */ J3DShape* field_0x6a8; + /* 0x06AC */ J3DModel* mpDemoFCBlendBmd; + /* 0x06B0 */ J3DModel* mpDemoFCTongueBmd; + /* 0x06B4 */ J3DAnmTextureSRTKey* field_0x6b4; + /* 0x06B8 */ mDoExt_bckAnm* mpDemoFCTmpBck; + /* 0x06BC */ J3DDeformData* mpDemoFCTmpBls; + /* 0x06C0 */ J3DAnmCluster* field_0x6c0; + /* 0x06C4 */ mDoExt_blkAnm* field_0x6c4; + /* 0x06C8 */ J3DModel* mpDemoHLTmpBmd; + /* 0x06CC */ mDoExt_bckAnm* mpDemoHLTmpBck; + /* 0x06D0 */ J3DModel* mpDemoHRTmpBmd; + /* 0x06D4 */ mDoExt_bckAnm* mpDemoHRTmpBck; + /* 0x06D8 */ J3DModel* mpDemoHDTmpBmd; + /* 0x06DC */ mDoExt_bckAnm* mpDemoHDTmpBck; + /* 0x06E0 */ J3DGXColorS10 field_0x6e0; + /* 0x06E8 */ J3DGXColor field_0x6e8; /* 0x06EC */ u8 field_0x6ec; /* 0x06ED */ u8 field_0x6ed; /* 0x06EE */ u8 field_0x6ee; /* 0x06EF */ u8 field_0x6ef; - /* 0x06F0 */ u8 field_0x6f0[8]; + /* 0x06F0 */ void* field_0x6f0; + /* 0x06F4 */ void* field_0x6f4; /* 0x06F8 */ void* field_0x6f8; /* 0x06FC */ Z2Creature field_0x6fc; - /* 0x078C */ dMsgFlow_c field_0x78c; - /* 0x07D8 */ dBgS_LinkLinChk field_0x7d8; + /* 0x078C */ dMsgFlow_c mMsgFlow; + /* 0x07D8 */ dBgS_LinkLinChk mLinChk; /* 0x0848 */ u8 mMotionNum; /* 0x0849 */ u8 mFaceNum; /* 0x084A */ u8 field_0x84a[4]; @@ -5958,7 +6366,8 @@ private: /* 0x085A */ s16 field_0x85a; /* 0x085C */ u8 field_0x85c[0x22]; /* 0x087E */ s16 field_0x87e; - /* 0x0880 */ u8 field_0x880[0x10]; + /* 0x0880 */ u8 field_0x880[0xC]; + /* 0x088C */ int mStaffID; /* 0x0890 */ u32 mStateFlg0; /* 0x0894 */ u32 mStateFlg1; /* 0x0898 */ u32 mEndResetStateFlg0; @@ -5973,9 +6382,11 @@ private: /* 0x0964 */ cXyz field_0x964[5]; /* 0x09A0 */ u8 field_0x9a0[0x14]; /* 0x09C4 */ cXyz field_0x9c4; + /* 0x09D0 */ u8 field_0x9d0[4]; + /* 0x09D4 */ daMidna_func mpFunc; }; -static void* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1); +static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1); static void* daAlink_searchCanoe(fopAc_ac_c* param_0, void* param_1); static void* daAlink_searchBoar(fopAc_ac_c* param_0, void* param_1); static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1); diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index f026d1bfa89..ee49352f59c 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -78,6 +78,7 @@ public: void setBufferSize(u32 size) { mBufferSize = size; } void setBuffer(u8* buf) { mBuffer = buf; } u8* getBuffer() { return mBuffer; } + bool checkNoSetIdx() const { return mIdx == 0xFFFF; } private: /* 0x00 */ u16 mIdx; @@ -198,29 +199,38 @@ public: public: enum daPy_FLG0 { FLG0_UNK_40000000 = 0x40000000, - EQUIP_HEAVY_BOOTS = 0x2000000, - PLAYER_NO_DRAW = 0x8000000, + FLG0_EQUIP_HVY_BOOTS = 0x2000000, + FLG0_PLAYER_NO_DRAW = 0x8000000, + FLG0_UNK_10000000 = 0x10000000, FLG0_UNK_1000000 = 0x1000000, - UNDER_WATER_MOVEMENT = 0x800000, + FLG0_UNDERWATER = 0x800000, + FLG0_UNK_100000 = 0x100000, FLG0_UNK_80000 = 0x80000, FLG0_UNK_20000 = 0x20000, FLG0_UNK_8000 = 0x8000, FLG0_UNK_4000 = 0x4000, - MAGNE_BOOTS_ON = 0x1000, + FLG0_UNK_2000 = 0x2000, + FLG0_MAGNE_BOOTS_ON = 0x1000, + FLG0_UNK_100 = 0x100, FLG0_UNK_80 = 0x80, FLG0_UNK_40 = 0x40, FLG0_UNK_20 = 0x20, - UNK_F_ROLL_CRASH_2 = 0x10, - UNK_F_ROLL_CRASH_1 = 0x8, - MIDNA_RIDE = 4, + FLG0_UNK_10 = 0x10, + FLG0_UNK_8 = 0x8, + FLG0_MIDNA_RIDE = 4, + FLG0_UNK_2 = 2, - HEAVY_STATE_BOOTS = FLG0_UNK_40000000 | EQUIP_HEAVY_BOOTS | FLG0_UNK_20000, + FLG0_HVY_STATE = FLG0_UNK_40000000 | FLG0_EQUIP_HVY_BOOTS | FLG0_UNK_20000, }; enum daPy_FLG1 { - IS_WOLF = 0x2000000, + FLG1_UNK_10000000 = 0x10000000, + FLG1_IS_WOLF = 0x2000000, + FLG1_UNK_400000 = 0x400000, FLG1_UNK_10000 = 0x10000, - THROW_DAMAGE = 0x4000, + FLG1_THROW_DAMAGE = 0x4000, + FLG1_UNK_20 = 0x20, + FLG1_UNK_10 = 0x10, FLG1_UNK_4 = 4, FLG1_UNK_2 = 2, }; @@ -229,51 +239,78 @@ public: FLG2_UNK_20000000 = 0x20000000, FLG2_UNK_4080000 = 0x4080000, FLG2_UNK_2080000 = 0x2080000, - BOAR_SINGLE_BATTLE = 0x1800000, - STATUS_WINDOW_DRAW = 0x400000, + FLG2_BOAR_SINGLE_BATTLE = 0x1800000, + FLG2_UNK_1000000 = 0x1000000, + FLG2_UNK_800000 = 0x800000, + FLG2_STATUS_WINDOW_DRAW = 0x400000, FLG2_UNK_280000 = 0x280000, - UNK_ARMOR = 0x80000, - SCENE_CHANGE_START = 0x8000, + FLG2_UNK_200000 = 0x200000, + FLG2_UNK_80000 = 0x80000, + FLG2_UNK_40000 = 0x40000, + FLG2_UNK_20000 = 0x20000, + FLG2_SCN_CHG_START = 0x8000, FLG2_UNK_4000 = 0x4000, - UNK_FLG2_2 = 2, - UNK_DAPY_FLG2_1 = 1 + FLG2_UNK_80 = 0x80, + FLG2_UNK_40 = 0x40, + FLG2_UNK_10 = 0x10, + FLG2_UNK_8 = 8, + FLG2_UNK_2 = 2, + FLG2_UNK_1 = 1, + + FLG2_UNK_58 = FLG2_UNK_40 | FLG2_UNK_10 | FLG2_UNK_8, }; enum daPy_FLG3 { + FLG3_UNK_40000000 = 0x40000000, FLG3_UNK_2000000 = 0x2000000, FLG3_UNK_1000000 = 0x1000000, FLG3_UNK_100000 = 0x100000, - COPY_ROD_THROW_AFTER = 0x40000 + FLG3_UNK_80000 = 0x80000, + FLG3_COPY_ROD_THROW_AFTER = 0x40000, + FLG3_UNK_4000 = 0x4000, }; enum daPy_ERFLG0 { ERFLG0_UNK_8000000 = 0x8000000, + ERFLG0_UNK_2000000 = 0x2000000, ERFLG0_UNK_1000000 = 0x1000000, ERFLG0_UNK_800000 = 0x800000, + ERFLG0_UNK_400000 = 0x400000, + ERFLG0_UNK_200000 = 0x200000, ERFLG0_UNK_100000 = 0x100000, + ERFLG0_UNK_2000 = 0x2000, ERFLG0_UNK_400 = 0x400, + ERFLG0_UNK_100 = 0x100, ERFLG0_UNK_4 = 4, ERFLG0_UNK_2 = 2, ERFLG0_UNK_1 = 1, }; enum daPy_ERFLG1 { - GANON_FINISH = 0x80000000, - UNK_FORCE_PUT_POS = 0x2000, + ERFLG1_GANON_FINISH = 0x80000000, + ERFLG1_UNK_10000000 = 0x10000000, + ERFLG1_UNK_4000000 = 0x4000000, + ERFLG1_UNK_40000 = 0x40000, + ERFLG1_UNK_2000 = 0x2000, + ERFLG1_UNK_200 = 0x200, + ERFLG1_UNK_4 = 4, ERFLG1_UNK_2 = 2, ERFLG1_UNK_1 = 1, }; enum daPy_ERFLG2 { ERFLG2_UNK_100 = 0x100, + ERFLG2_UNK_20 = 0x20, }; enum daPy_RFLG0 { RFLG0_UNK_8000000 = 0x8000000, RFLG0_UNK_4000 = 0x4000, - ENEMY_ATTENTION_LOCK = 0x1000, + RFLG0_ENEMY_ATTN_LOCK = 0x1000, + RFLG0_UNK_400 = 0x400, RFLG0_UNK_80 = 0x80, RFLG0_UNK_40 = 0x40, + RFLG0_UNK_10 = 0x10, RFLG0_UNK_2 = 0x2, }; @@ -323,7 +360,7 @@ public: static BOOL checkTradeItem(int); static BOOL checkDungeonWarpItem(int); static BOOL checkMasterSwordEquip(); - void checkWoodShieldEquip(); + bool checkWoodShieldEquip(); f32 getAttentionOffsetY(); s16 checkNowWolfEyeUp(); static void forceRestartRoom(int, u32, int); @@ -345,10 +382,10 @@ public: static void setPlayerDamage(int, int); static void setMidnaMotionNum(int); static void setMidnaFaceNum(int); - int checkNoResetFlg0(daPy_FLG0) const; - int checkEquipHeavyBoots() const; - int checkBoarSingleBattle() const; - int checkEndResetFlg0(daPy_ERFLG0) const; + u32 checkNoResetFlg0(daPy_FLG0) const; + u32 checkEquipHeavyBoots() const; + u32 checkBoarSingleBattle() const; + u32 checkEndResetFlg0(daPy_ERFLG0) const; void onNoResetFlg2(daPy_py_c::daPy_FLG2); void offNoResetFlg0(daPy_py_c::daPy_FLG0); int checkEndResetFlg2(daPy_py_c::daPy_ERFLG2) const; @@ -356,14 +393,14 @@ public: int checkNoResetFlg3(daPy_py_c::daPy_FLG3) const; BOOL checkShieldGet(); void onNoResetFlg0(daPy_py_c::daPy_FLG0); - int checkEndResetFlg1(daPy_py_c::daPy_ERFLG1) const; + u32 checkEndResetFlg1(daPy_py_c::daPy_ERFLG1) const; void offNoResetFlg1(daPy_py_c::daPy_FLG1); void offNoResetFlg2(daPy_py_c::daPy_FLG2); - int checkWolf() const; + u32 checkWolf() const; BOOL checkSwordGet(); - int checkResetFlg0(daPy_py_c::daPy_RFLG0) const; - int checkNoResetFlg2(daPy_py_c::daPy_FLG2) const; - int checkMagneBootsOn() const; + u32 checkResetFlg0(daPy_py_c::daPy_RFLG0) const; + u32 checkNoResetFlg2(daPy_py_c::daPy_FLG2) const; + u32 checkMagneBootsOn() const; void changeDemoPos0(cXyz const*); void changeDemoMode(u32, int, int, s16); void changeDemoParam2(s16); @@ -379,6 +416,7 @@ public: /* 80182B9C */ void getRightHandPos() const; /* 8015DFD8 */ const cXyz getItemPos() const; /* 8015DFF4 */ const cXyz& getLeftHandPos() const; + /* 800977B4 */ bool checkMidnaRide() const; /* const cXyz* getItemPos() const { return &mItemPos; @@ -567,15 +605,15 @@ public: bool i_getSumouMode() const { return getSumouCameraMode(); } - bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); } + bool checkStatusWindowDraw() { return i_checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); } bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; } - bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(HEAVY_STATE_BOOTS); } - bool checkEnemyAttentionLock() const { return i_checkResetFlg0(ENEMY_ATTENTION_LOCK); } + bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(FLG0_HVY_STATE); } + bool checkEnemyAttentionLock() const { return i_checkResetFlg0(RFLG0_ENEMY_ATTN_LOCK); } bool checkCanoeSlider() const { return mSpecialMode == 0x2D; } u8 getCutType() const { return mCutType; } u16 getSwordAtUpTime() const { return mSwordUpTimer; } - bool checkWaterInMove() const { return i_checkNoResetFlg0(UNDER_WATER_MOVEMENT); } - bool checkSceneChangeAreaStart() const { return i_checkNoResetFlg2(SCENE_CHANGE_START); } + bool checkWaterInMove() const { return i_checkNoResetFlg0(FLG0_UNDERWATER); } + bool checkSceneChangeAreaStart() const { return i_checkNoResetFlg2(FLG2_SCN_CHG_START); } // some functions use these function as an inline // is there a better way to handle this? @@ -583,28 +621,36 @@ public: int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; } int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; } int i_checkNoResetFlg3(daPy_FLG3 pFlag) const { return mNoResetFlg3 & pFlag; } + void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; } void i_onNoResetFlg1(int pFlg) { mNoResetFlg1 |= pFlg; } void i_onNoResetFlg2(int pFlg) { mNoResetFlg2 |= pFlg; } void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; } + void i_offNoResetFlg0(int pFlg) { mNoResetFlg0 &= ~pFlg; } void i_offNoResetFlg2(int pFlg) { mNoResetFlg2 &= ~pFlg; } void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; } + void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; } void i_onResetFlg0(int flag) { mResetFlg0 |= flag; } void i_onResetFlg1(int flag) { mResetFlg1 |= flag; } + void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; } void i_onEndResetFlg2(int flag) { mEndResetFlg2 |= flag; } + int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; } + int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; } int i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 flag) const { return mEndResetFlg1 & flag; } + void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; } - u32 i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); } - BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); } - BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(MAGNE_BOOTS_ON); } - bool i_checkMidnaRide() const { return i_checkNoResetFlg0(MIDNA_RIDE); } - void i_onPlayerNoDraw() { i_onNoResetFlg0(PLAYER_NO_DRAW); } - void i_offPlayerNoDraw() { i_offNoResetFlg0(PLAYER_NO_DRAW); } + + u32 i_checkWolf() const { return i_checkNoResetFlg1(FLG1_IS_WOLF); } + BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); } + BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); } + bool i_checkMidnaRide() const { return i_checkNoResetFlg0(FLG0_MIDNA_RIDE); } + void i_onPlayerNoDraw() { i_onNoResetFlg0(FLG0_PLAYER_NO_DRAW); } + void i_offPlayerNoDraw() { i_offNoResetFlg0(FLG0_PLAYER_NO_DRAW); } inline static u32 i_getLastSceneMode(); inline static u32 getLastSceneMode(); diff --git a/include/d/bg/d_bg_pc.h b/include/d/bg/d_bg_pc.h index b1f91e96c29..260c530ad25 100644 --- a/include/d/bg/d_bg_pc.h +++ b/include/d/bg/d_bg_pc.h @@ -11,10 +11,57 @@ struct sBgPc { /* 0x10 */ u32 code4; }; // Size: 0x14 +enum dBgPc_ECode { + /* 0x00004000 */ CODE_OBJ_THRU = 0x4000, + /* 0x00008000 */ CODE_CAM_THRU = 0x8000, + /* 0x00010000 */ CODE_LINK_THRU = 0x10000, + /* 0x00020000 */ CODE_ARROW_THRU = 0x20000, + /* 0x00040000 */ CODE_HS_STICK = 0x40000, + /* 0x00080000 */ CODE_BOOMERANG_THRU = 0x80000, + /* 0x00100000 */ CODE_ROPE_THRU = 0x100000, + /* 0x00200000 */ CODE_HORSE_NO_ENTRY = 0x200000, + /* 0x00400000 */ CODE_SHDW_THRU = 0x400000, + /* 0x00800000 */ CODE_BOMB_THRU = 0x800000, + /* 0x01000000 */ CODE_IRON_BALL_THRU = 0x1000000, + /* 0x02000000 */ CODE_ATTACK_THRU = 0x2000000, + /* 0x40000000 */ CODE_UNDERWATER_ROOF = 0x40000000, +}; + class dBgPc { public: void setCode(sBgPc&); + u32 getHorseNoEntry() const { return m_code.code0 >> 0x15 & 1; } + u32 getSpl() const { return m_code.code0 >> 0x18 & 0xF; } + u32 getMagnet() const { return m_code.code0 >> 0x1C & 0x3; } + u32 getMonkeyBars() const { return m_code.code0 >> 0x1F; } + u32 getWallCode() const { return m_code.code1 >> 0x8 & 0xF; } + u32 getAtt0Code() const { return m_code.code1 >> 0xC & 0xF; } + u32 getAtt1Code() const { return m_code.code1 >> 0x10 & 0x7; } + u32 getGroundCode() const { return m_code.code1 >> 0x13 & 0x1F; } + u32 getObjThrough() const { return m_code.code0 & CODE_OBJ_THRU; } + u32 getCamThrough() const { return m_code.code0 & CODE_CAM_THRU; } + u32 getLinkThrough() const { return m_code.code0 & CODE_LINK_THRU; } + u32 getArrowThrough() const { return m_code.code0 & CODE_ARROW_THRU; } + u32 getHSStick() const { return m_code.code0 & CODE_HS_STICK; } + u32 getBoomerangThrough() const { return m_code.code0 & CODE_BOOMERANG_THRU; } + u32 getRopeThrough() const { return m_code.code0 & CODE_ROPE_THRU; } + u32 getBombThrough() const { return m_code.code0 & CODE_BOMB_THRU; } + u32 getIronBallThrough() const { return m_code.code1 & CODE_IRON_BALL_THRU; } + u32 getShdwThrough() const { return m_code.code0 & CODE_SHDW_THRU; } + u32 getUnderwaterRoof() const { return m_code.code0 & CODE_UNDERWATER_ROOF; } + u32 getAttackThrough() const { return m_code.code1 & CODE_ATTACK_THRU; } + u8 getRoom() const { return m_code.code4 >> 0x14; } + u8 getExit() const { return m_code.code0 & 0x3F; } + u8 getPolyCol() const { return m_code.code0 >> 6; } + u8 getLinkNo() const { return m_code.code1; } + u8 getCamMoveBG() const { return m_code.code2; } + u8 getRoomCam() const { return m_code.code2 >> 8; } + u8 getRoomPath() const { return m_code.code2 >> 0x10; } + u8 getRoomPathPnt() const { return m_code.code2 >> 0x18; } + u8 getRoomInf() const { return m_code.code4; } + u8 getSnd() const { return m_code.code4 >> 0xB; } + private: /* 0x0 */ sBgPc m_code; }; diff --git a/include/d/bg/d_bg_plc.h b/include/d/bg/d_bg_plc.h index ed0c55085f8..fde627bb51a 100644 --- a/include/d/bg/d_bg_plc.h +++ b/include/d/bg/d_bg_plc.h @@ -12,7 +12,7 @@ struct PLC { /* 0x0 */ u32 magic; /* 0x4 */ u16 m_code_size; /* 0x6 */ u16 m_num; - // ... + /* 0x8 */ sBgPc* field_0x8; }; class dBgPlc { @@ -21,7 +21,7 @@ public: /* 80074080 */ ~dBgPlc(); /* 800740BC */ void setBase(void*); /* 800740C4 */ void getCode(int, sBgPc**) const; - /* 800740DC */ void getGrpCode(int) const; + /* 800740DC */ u32 getGrpCode(int) const; private: /* 0x00 */ void* m_base; diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index f07fbc2ff5a..7c53bf3373b 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -78,7 +78,7 @@ public: int GetSpecialCode(cBgS_PolyInfo const&); int GetMagnetCode(cBgS_PolyInfo const&); int GetMonkeyBarsCode(cBgS_PolyInfo const&); - int GetUnderwaterRoofCode(cBgS_PolyInfo const&); + u32 GetUnderwaterRoofCode(cBgS_PolyInfo const&); s32 GetWallCode(cBgS_PolyInfo const&); int GetPolyAtt0(cBgS_PolyInfo const&); int GetPolyAtt1(cBgS_PolyInfo const&); @@ -87,7 +87,7 @@ public: s32 GetRoomCamId(cBgS_PolyInfo const&); s32 GetRoomPathId(cBgS_PolyInfo const&); s32 GetRoomPathPntNo(cBgS_PolyInfo const&); - s32 GetGrpSoundId(cBgS_PolyInfo const&); + u8 GetGrpSoundId(cBgS_PolyInfo const&); u32 ChkGrpInf(cBgS_PolyInfo const&, u32); s32 GetRoomId(cBgS_PolyInfo const&); bool GetPolyAttackThrough(cBgS_PolyInfo const&); diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h index 7a56b4d3d65..dce36370276 100644 --- a/include/d/bg/d_bg_s_acch.h +++ b/include/d/bg/d_bg_s_acch.h @@ -149,6 +149,7 @@ public: void SetGrndNone() { m_flags |= GRND_NONE; } void ClrGrndNone() { m_flags &= ~GRND_NONE; } bool ChkMoveBGOnly() const { return m_flags & MOVE_BG_ONLY; } + void SetWallHit() { m_flags |= WALL_HIT; } // inline dupe void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; } diff --git a/include/d/bg/d_bg_s_poly_pass_chk.h b/include/d/bg/d_bg_s_poly_pass_chk.h index c5aff507f4e..5eedc5e3e29 100644 --- a/include/d/bg/d_bg_s_poly_pass_chk.h +++ b/include/d/bg/d_bg_s_poly_pass_chk.h @@ -47,17 +47,17 @@ public: void SetUnderwaterRoof(); private: - bool mObject; - bool mCamera; - bool mLink; - bool mArrow; - bool mBomb; - bool mBoomerang; - bool mRope; - bool mUnderwaterRoof; - bool mHorse; - bool mStatue; - bool mIronBall; + /* 0x4 */ bool mObject; + /* 0x5 */ bool mCamera; + /* 0x6 */ bool mLink; + /* 0x7 */ bool mArrow; + /* 0x8 */ bool mBomb; + /* 0x9 */ bool mBoomerang; + /* 0xA */ bool mRope; + /* 0xB */ bool mUnderwaterRoof; + /* 0xC */ bool mHorse; + /* 0xD */ bool mStatue; + /* 0xE */ bool mIronBall; }; #endif /* D_BG_D_BG_S_POLY_PASS_CHK_H */ diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index 7872f4a5af8..a2eb1be880e 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -15,22 +15,23 @@ struct dBgS_CaptPoly {}; -class cBgW_TriElm : public cM3dGPla { +class cBgW_TriElm { public: - /* 80079754 */ cBgW_TriElm(); + /* 0x00 */ cM3dGPla m_plane; + /* 80079754 */ cBgW_TriElm(); /* 800796F8 */ virtual ~cBgW_TriElm(); -}; + + /* 0x14 vtable */ +}; // Size: 0x18 class cBgW_RwgElm { -private: - /* 0x0 */ u8 field_0x0[4]; - public: - /* 800791C4 */ cBgW_RwgElm(); + /* 0x0 */ u16 field_0x0; + /* 800791C4 */ cBgW_RwgElm(); /* 800791D4 */ virtual ~cBgW_RwgElm(); -}; +}; // Size: 0x8 class cBgW_NodeTree : public cM3dGAab { public: @@ -39,22 +40,81 @@ public: /* 80079238 */ virtual ~cBgW_NodeTree(); }; -class cBgW_GrpElm : public cM3dGAab { +class cBgW_GrpElm { public: /* 8007A1E4 */ cBgW_GrpElm(); /* 8007A184 */ virtual ~cBgW_GrpElm(); + + /* 0x4 */ cM3dGAab m_aab; }; -struct cBgD_t {}; +struct cBgW_unk_b_data { + /* 0x0 */ u16 field_0x0; + /* 0x2 */ u16 field_0x2; + /* 0x4 */ u16 field_0x4; +}; // Size: 0x6 + +struct dzb_tri_data { + /* 0x0 */ u16 field_0x0; + /* 0x2 */ u16 field_0x2; + /* 0x4 */ u16 field_0x4; + /* 0x6 */ u16 m_id; + /* 0x8 */ u16 m_grp; +}; // Size: 0xA + +struct dzb_ti_data { + /* 0x0 */ u32 m_info0; + /* 0x4 */ u32 m_info1; + /* 0x8 */ u32 m_info2; + /* 0xC */ u8 field_0xc[0x10 - 0xC]; +}; + +struct dzb_b_data { + /* 0x0 */ u16 field_0x0; +}; + +struct dzb_tree_data { + /* 0x0 */ u16 field_0x0; + /* 0x2 */ u16 field_0x2; + /* 0x4 */ u16 m_id[1]; + /* 0x6 */ u8 field_0x6[0x14 - 0x6]; +}; // Size: 0x14 + +struct dzb_g_data { + /* 0x00 */ u8 field_0x0[0x24 - 0x0]; + /* 0x24 */ u16 field_0x24; + /* 0x26 */ u8 field_0x26[0x28 - 0x26]; + /* 0x28 */ u16 field_0x28; + /* 0x2A */ u16 field_0x2a; + /* 0x2C */ u8 field_0x2c[0x2E - 0x2C]; + /* 0x2E */ u16 field_0x2e; + /* 0x30 */ u32 m_info; +}; // Size: 0x34 + +struct cBgD_t { + /* 0x00 */ int m_v_num; // vertex num + /* 0x04 */ Vec* m_v_tbl; // vertex table + /* 0x08 */ int m_t_num; // triangle num + /* 0x0C */ dzb_tri_data* m_t_tbl; // triangle table + /* 0x10 */ int m_b_num; // spatial? + /* 0x14 */ dzb_b_data* m_b_tbl; + /* 0x18 */ int m_tree_num; // face group? + /* 0x1C */ dzb_tree_data* m_tree_tbl; + /* 0x20 */ int m_g_num; // string group? + /* 0x24 */ dzb_g_data* m_g_tbl; + /* 0x28 */ int m_ti_num; // surface property? + /* 0x2C */ dzb_ti_data* m_ti_tbl; + /* 0x30 */ int field_0x30; +}; class cBgW : public dBgW_Base { public: /* 80079294 */ cBgW(); /* 800793A4 */ void FreeArea(); /* 800793C4 */ void GlobalVtx(); - /* 80079484 */ void SetVtx(); - /* 80079668 */ void SetTri(); + /* 80079484 */ bool SetVtx(); + /* 80079668 */ bool SetTri(); /* 80079770 */ void BlckConnect(u16*, int*, int); /* 8007998C */ void MakeBlckTransMinMax(cXyz*, cXyz*); /* 800799E0 */ void MakeBlckMinMax(int, cXyz*, cXyz*); @@ -63,37 +123,37 @@ public: /* 80079CC4 */ void MakeNodeTreeGrpRp(int); /* 80079DF0 */ void MakeNodeTree(); /* 80079F38 */ bool Set(cBgD_t*, u32, f32 (*)[3][4]); - /* 8007A200 */ void RwgLineCheck(u16, cBgS_LinChk*); - /* 8007A3A0 */ void LineCheckRp(cBgS_LinChk*, int); - /* 8007A52C */ void LineCheckGrpRp(cBgS_LinChk*, int, int); + /* 8007A200 */ bool RwgLineCheck(u16, cBgS_LinChk*); + /* 8007A3A0 */ bool LineCheckRp(cBgS_LinChk*, int); + /* 8007A52C */ bool LineCheckGrpRp(cBgS_LinChk*, int, int); /* 8007A680 */ void RwgGroundCheckCommon(f32, u16, cBgS_GndChk*); /* 8007A774 */ void RwgGroundCheckGnd(u16, cBgS_GndChk*); /* 8007A824 */ void RwgGroundCheckWall(u16, cBgS_GndChk*); /* 8007A8F4 */ void GroundCrossRp(cBgS_GndChk*, int); - /* 8007AA50 */ void GroundCrossGrpRp(cBgS_GndChk*, int, int); + /* 8007AA50 */ bool GroundCrossGrpRp(cBgS_GndChk*, int, int); /* 8007ABC4 */ void CopyOldMtx(); /* 8007AC10 */ void Move(); /* 8007ADF0 */ void RwgShdwDraw(int, cBgS_ShdwDraw*); /* 8007AEA4 */ void ShdwDrawRp(cBgS_ShdwDraw*, int); /* 8007AFC0 */ void ShdwDrawGrpRp(cBgS_ShdwDraw*, int); /* 8007B17C */ void GetTrans(cXyz*) const; - /* 8007B2F4 */ void GetPolyInfId(int) const; - /* 8007B30C */ void GetPolyInf0(int, u32, u32) const; - /* 8007B360 */ void GetMaskPolyInf0_NoShift(int, u32) const; - /* 8007B654 */ void GetPolyInf1(int, u32, u32) const; - /* 8007B78C */ void GetMaskPolyInf1_NoShift(int, u32) const; - /* 8007B824 */ void GetPolyInf2(int, u32, u32) const; - /* 8007B930 */ void GetTriGrp(int) const; + /* 8007B2F4 */ int GetPolyInfId(int) const; + /* 8007B30C */ u32 GetPolyInf0(int, u32, u32) const; + /* 8007B360 */ u32 GetMaskPolyInf0_NoShift(int, u32) const; + /* 8007B654 */ u32 GetPolyInf1(int, u32, u32) const; + /* 8007B78C */ u32 GetMaskPolyInf1_NoShift(int, u32) const; + /* 8007B824 */ u32 GetPolyInf2(int, u32, u32) const; + /* 8007B930 */ int GetTriGrp(int) const; /* 8007933C */ virtual ~cBgW(); - /* 80079EEC */ virtual void ChkMemoryError(); + /* 80079EEC */ virtual bool ChkMemoryError(); /* 8007B948 */ virtual bool ChkNotReady() const; /* 8007B958 */ virtual bool ChkLock() const; /* 8007B964 */ virtual bool ChkMoveBg() const; virtual u32 ChkMoveFlag() const = 0; /* 8007B270 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const; /* 8007B1B4 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const; - /* 8007B164 */ virtual void GetBnd() const; + /* 8007B164 */ virtual cM3dGAab* GetBnd() const; /* 8007B2B0 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const; virtual void OffMoveFlag() = 0; /* 8007B240 */ virtual void GetTopUnder(f32*, f32*) const; @@ -101,7 +161,7 @@ public: /* 8007AB9C */ virtual bool GroundCross(cBgS_GndChk*); /* 8007B084 */ virtual void ShdwDraw(cBgS_ShdwDraw*); virtual void CaptPoly(dBgS_CaptPoly&) = 0; - virtual void WallCorrect(dBgS_Acch*) = 0; + virtual bool WallCorrect(dBgS_Acch*) = 0; virtual void WallCorrectSort(dBgS_Acch*) = 0; virtual bool RoofChk(dBgS_RoofChk*) = 0; virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0; @@ -113,40 +173,43 @@ public: virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0; virtual int GetSpecialCode(int) = 0; virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0; - virtual void GetPolyObjThrough(int) = 0; - virtual void GetPolyCamThrough(int) = 0; - virtual void GetPolyLinkThrough(int) = 0; - virtual void GetPolyArrowThrough(int) = 0; + virtual u32 GetPolyObjThrough(int) = 0; + virtual u32 GetPolyCamThrough(int) = 0; + virtual u32 GetPolyLinkThrough(int) = 0; + virtual u32 GetPolyArrowThrough(int) = 0; virtual u32 GetPolyHSStick(int) = 0; - virtual void GetPolyBoomerangThrough(int) = 0; - virtual void GetPolyRopeThrough(int) = 0; - virtual void GetPolyBombThrough(int) = 0; - virtual void GetShdwThrough(int) = 0; - virtual int GetUnderwaterRoofCode(int) = 0; + virtual u32 GetPolyBoomerangThrough(int) = 0; + virtual u32 GetPolyRopeThrough(int) = 0; + virtual u32 GetPolyBombThrough(int) = 0; + virtual bool GetShdwThrough(int) = 0; + virtual u32 GetUnderwaterRoofCode(int) = 0; virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; + virtual int GetLinkNo(cBgS_PolyInfo const&) = 0; virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0; virtual int GetGroundCode(cBgS_PolyInfo const&) = 0; - virtual void GetIronBallThrough(int) = 0; + virtual u32 GetIronBallThrough(int) = 0; virtual u32 GetAttackThrough(int) = 0; virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomCamId(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0; - virtual void GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0; - virtual s32 GetGrpSoundId(cBgS_PolyInfo const&) = 0; + virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0; + virtual u8 GetGrpSoundId(cBgS_PolyInfo const&) = 0; virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; /* 80079564 */ virtual void CalcPlane(); /* 800797BC */ virtual void ClassifyPlane(); /* 8007B0A8 */ virtual bool ChkPolyThrough(int, cBgS_PolyPassChk*); - /* 8007B0B0 */ virtual void ChkShdwDrawThrough(int, cBgS_PolyPassChk*); + /* 8007B0B0 */ virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk*); /* 8007B0DC */ virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int); u32 GetOldInvMtx(Mtx m) { return PSMTXInverse(m_inv_mtx, m); } MtxP GetBaseMtxP() { return pm_base; } + bool ChkNoCalcVtx() { return field_0x88 & 2; } + bool ChkFlush() { return field_0x91 & 8; } public: /* 0x18 */ MtxP pm_base; @@ -161,9 +224,9 @@ public: /* 0x92 */ u16 field_0x92; /* 0x94 */ cBgW_TriElm* pm_tri; /* 0x98 */ cBgW_RwgElm* pm_rwg; - /* 0x9C */ VertexPosition* pm_vtx_tbl; // type not confirmed - /* 0xA0 */ void* pm_bgd; - /* 0xA4 */ void* field_0xa4; + /* 0x9C */ Vec* pm_vtx_tbl; + /* 0xA0 */ cBgD_t* pm_bgd; + /* 0xA4 */ cBgW_unk_b_data* field_0xa4; /* 0xA8 */ cBgW_GrpElm* pm_grp; /* 0xAC */ cBgW_NodeTree* pm_node_tree; }; @@ -180,28 +243,28 @@ public: /* 8007B9EC */ void positionWallCorrect(dBgS_Acch*, f32, cM3dGPla&, cXyz* pupper_pos, f32); /* 8007BA40 */ void RwgWallCorrect(dBgS_Acch*, u16); /* 8007C234 */ void WallCorrectRp(dBgS_Acch*, int); - /* 8007C360 */ void WallCorrectGrpRp(dBgS_Acch*, int, int); + /* 8007C360 */ bool WallCorrectGrpRp(dBgS_Acch*, int, int); /* 8007C4AC */ void RwgWallCorrectSort(dBgS_Acch*, u16); /* 8007C714 */ void WallCorrectRpSort(dBgS_Acch*, int); /* 8007C808 */ void WallCorrectGrpRpSort(dBgS_Acch*, int, int); /* 8007D0DC */ void RwgRoofChk(u16, dBgS_RoofChk*); /* 8007D208 */ void RoofChkRp(dBgS_RoofChk*, int); - /* 8007D330 */ void RoofChkGrpRp(dBgS_RoofChk*, int, int); + /* 8007D330 */ bool RoofChkGrpRp(dBgS_RoofChk*, int, int); /* 8007D498 */ void RwgSplGrpChk(u16, dBgS_SplGrpChk*); /* 8007D5C4 */ void SplGrpChkRp(dBgS_SplGrpChk*, int); - /* 8007D6F0 */ void SplGrpChkGrpRp(dBgS_SplGrpChk*, int, int); + /* 8007D6F0 */ bool SplGrpChkGrpRp(dBgS_SplGrpChk*, int, int); /* 8007D858 */ void RwgCaptPoly(int, dBgS_CaptPoly&); /* 8007D8E8 */ void CaptPolyRp(dBgS_CaptPoly&, int); /* 8007DA04 */ void CaptPolyGrpRp(dBgS_CaptPoly&, int, int); /* 8007DB20 */ void RwgSphChk(u16, dBgS_SphChk*, void*); /* 8007DC70 */ void SphChkRp(dBgS_SphChk*, void*, int); - /* 8007DDE0 */ void SphChkGrpRp(dBgS_SphChk*, void*, int, int); + /* 8007DDE0 */ bool SphChkGrpRp(dBgS_SphChk*, void*, int, int); /* 8007E548 */ virtual ~dBgW(); /* 8007E4B4 */ virtual u32 ChkMoveFlag() const; /* 8007E4A4 */ virtual void OffMoveFlag(); /* 8007DAF8 */ virtual void CaptPoly(dBgS_CaptPoly&); - /* 8007C484 */ virtual void WallCorrect(dBgS_Acch*); + /* 8007C484 */ virtual bool WallCorrect(dBgS_Acch*); /* 8007C910 */ virtual void WallCorrectSort(dBgS_Acch*); /* 8007D470 */ virtual bool RoofChk(dBgS_RoofChk*); /* 8007D830 */ virtual bool SplGrpChk(dBgS_SplGrpChk*); @@ -212,30 +275,30 @@ public: /* 8007B430 */ virtual int GetSpecialCode(cBgS_PolyInfo const&); /* 8007B460 */ virtual int GetSpecialCode(int); /* 8007B488 */ virtual int GetMagnetCode(cBgS_PolyInfo const&); - /* 8007B4E0 */ virtual void GetPolyObjThrough(int); - /* 8007B504 */ virtual void GetPolyCamThrough(int); - /* 8007B52C */ virtual void GetPolyLinkThrough(int); - /* 8007B550 */ virtual void GetPolyArrowThrough(int); + /* 8007B4E0 */ virtual u32 GetPolyObjThrough(int); + /* 8007B504 */ virtual u32 GetPolyCamThrough(int); + /* 8007B52C */ virtual u32 GetPolyLinkThrough(int); + /* 8007B550 */ virtual u32 GetPolyArrowThrough(int); /* 8007B574 */ virtual u32 GetPolyHSStick(int); - /* 8007B598 */ virtual void GetPolyBoomerangThrough(int); - /* 8007B5BC */ virtual void GetPolyRopeThrough(int); - /* 8007B5E0 */ virtual void GetPolyBombThrough(int); - /* 8007B604 */ virtual void GetShdwThrough(int); - /* 8007B630 */ virtual int GetUnderwaterRoofCode(int); + /* 8007B598 */ virtual u32 GetPolyBoomerangThrough(int); + /* 8007B5BC */ virtual u32 GetPolyRopeThrough(int); + /* 8007B5E0 */ virtual u32 GetPolyBombThrough(int); + /* 8007B604 */ virtual bool GetShdwThrough(int); + /* 8007B630 */ virtual u32 GetUnderwaterRoofCode(int); /* 8007B4B4 */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&); - /* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&); + /* 8007B6AC */ virtual int GetLinkNo(cBgS_PolyInfo const&); /* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&); /* 8007B704 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&); /* 8007B734 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&); /* 8007B760 */ virtual int GetGroundCode(cBgS_PolyInfo const&); - /* 8007B7DC */ virtual void GetIronBallThrough(int); + /* 8007B7DC */ virtual u32 GetIronBallThrough(int); /* 8007B800 */ virtual u32 GetAttackThrough(int); /* 8007B87C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&); /* 8007B8A8 */ virtual s32 GetRoomCamId(cBgS_PolyInfo const&); /* 8007B8D8 */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&); /* 8007B904 */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&); - /* 8007DF28 */ virtual void GetPolyGrpRoomInfId(cBgS_PolyInfo const&); - /* 8007DF58 */ virtual s32 GetGrpSoundId(cBgS_PolyInfo const&); + /* 8007DF28 */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&); + /* 8007DF58 */ virtual u8 GetGrpSoundId(cBgS_PolyInfo const&); /* 8007DF88 */ virtual void CrrPos(cBgS_PolyInfo const&, virtual void*, bool, cXyz*, csXyz*, csXyz*); /* 8007DFC4 */ virtual void TransPos(cBgS_PolyInfo const&, virtual void*, bool, cXyz*, csXyz*, @@ -244,11 +307,12 @@ public: csXyz*, csXyz*); /* 8007E444 */ virtual void CallRideCallBack(fopAc_ac_c*, fopAc_ac_c*); /* 8007E474 */ virtual void CallArrowStickCallBack(fopAc_ac_c*, fopAc_ac_c*, cXyz&); - /* 8007E02C */ virtual void ChkPolyThrough(int, cBgS_PolyPassChk*); - /* 8007E360 */ virtual void ChkShdwDrawThrough(int, cBgS_PolyPassChk*); - /* 8007E3D8 */ virtual void ChkGrpThrough(int, cBgS_GrpPassChk*, int); + /* 8007E02C */ virtual bool ChkPolyThrough(int, cBgS_PolyPassChk*); + /* 8007E360 */ virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk*); + /* 8007E3D8 */ virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int); void SetCrrFunc(dBgW_CrrFunc func) { m_crr_func = func; } + void OnMoveFlag() { m_flags |= 1; } private: /* 0xB0 */ dBgW_CrrFunc m_crr_func; diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h index fee8c30efda..0564f0f4a76 100644 --- a/include/d/bg/d_bg_w_base.h +++ b/include/d/bg/d_bg_w_base.h @@ -32,7 +32,7 @@ public: virtual u32 ChkMoveFlag() const = 0; virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const = 0; virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const = 0; - virtual void GetBnd() const = 0; + virtual cM3dGAab* GetBnd() const = 0; virtual u32 GetGrpInf(cBgS_PolyInfo const&) const = 0; virtual void OffMoveFlag() = 0; virtual void GetTopUnder(f32*, f32*) const = 0; @@ -41,7 +41,7 @@ public: virtual bool GroundCross(cBgS_GndChk*) = 0; virtual void ShdwDraw(cBgS_ShdwDraw*) = 0; virtual void CaptPoly(dBgS_CaptPoly&) = 0; - virtual void WallCorrect(dBgS_Acch*) = 0; + virtual bool WallCorrect(dBgS_Acch*) = 0; virtual void WallCorrectSort(dBgS_Acch*) = 0; virtual bool RoofChk(dBgS_RoofChk*) = 0; virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0; @@ -53,30 +53,30 @@ public: virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0; virtual int GetSpecialCode(int) = 0; virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0; - virtual void GetPolyObjThrough(int) = 0; - virtual void GetPolyCamThrough(int) = 0; - virtual void GetPolyLinkThrough(int) = 0; - virtual void GetPolyArrowThrough(int) = 0; + virtual u32 GetPolyObjThrough(int) = 0; + virtual u32 GetPolyCamThrough(int) = 0; + virtual u32 GetPolyLinkThrough(int) = 0; + virtual u32 GetPolyArrowThrough(int) = 0; virtual u32 GetPolyHSStick(int) = 0; - virtual void GetPolyBoomerangThrough(int) = 0; - virtual void GetPolyRopeThrough(int) = 0; - virtual void GetPolyBombThrough(int) = 0; - virtual void GetShdwThrough(int) = 0; - virtual int GetUnderwaterRoofCode(int) = 0; + virtual u32 GetPolyBoomerangThrough(int) = 0; + virtual u32 GetPolyRopeThrough(int) = 0; + virtual u32 GetPolyBombThrough(int) = 0; + virtual bool GetShdwThrough(int) = 0; + virtual u32 GetUnderwaterRoofCode(int) = 0; virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0; - virtual void GetLinkNo(cBgS_PolyInfo const&) = 0; + virtual int GetLinkNo(cBgS_PolyInfo const&) = 0; virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0; virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0; virtual int GetGroundCode(cBgS_PolyInfo const&) = 0; - virtual void GetIronBallThrough(int) = 0; + virtual u32 GetIronBallThrough(int) = 0; virtual u32 GetAttackThrough(int) = 0; virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomCamId(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0; - virtual void GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0; - virtual s32 GetGrpSoundId(cBgS_PolyInfo const&) = 0; + virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0; + virtual u8 GetGrpSoundId(cBgS_PolyInfo const&) = 0; virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h index a52e448cb8e..b3dee70ba3f 100644 --- a/include/d/bg/d_bg_w_kcol.h +++ b/include/d/bg/d_bg_w_kcol.h @@ -7,72 +7,91 @@ struct dBgS_CaptPoly; -struct KC_PrismData {}; +struct KC_PrismData { + /* 0x0 */ f32 field_0x0; + /* 0x4 */ u16 field_0x4; + /* 0x6 */ u16 field_0x6; + /* 0x8 */ u16 field_0x8; + /* 0xA */ u16 field_0xa; + /* 0xC */ u16 field_0xc; + /* 0xE */ u16 field_0xe; +}; // Size: 0x10 + +struct pkcdata { + /* 0x00 */ Vec* field_0x0; + /* 0x04 */ Vec* field_0x4; + /* 0x08 */ KC_PrismData* m_prism_data; + /* 0x0C */ KC_PrismData* m_block_data; + /* 0x10 */ u8 field_0x10[4]; + /* 0x14 */ Vec m_area_min_pos; + /* 0x20 */ u8 field_0x20[4]; + /* 0x24 */ u32 field_0x24; +}; class dBgWKCol : public dBgW_Base { public: /* 8007E6F4 */ dBgWKCol(); /* 8007E7D0 */ void initKCollision(void*); - /* 8007E804 */ void create(void*, void*); + /* 8007E804 */ void create(void* pprism, void* plc); /* 8007E850 */ void getTriNrm(KC_PrismData*, Vec**) const; - /* 8007E8C0 */ void GetTriPla(int) const; - /* 8007E9A4 */ void GetTriPnt(int, Vec*, Vec*, Vec*) const; - /* 8007E9D4 */ void GetTriPnt(KC_PrismData const*, Vec*, Vec*, Vec*) const; + /* 8007E8C0 */ cM3dGPla GetTriPla(int) const; + /* 8007E9A4 */ bool GetTriPnt(int, Vec*, Vec*, Vec*) const; + /* 8007E9D4 */ bool GetTriPnt(KC_PrismData const*, Vec*, Vec*, Vec*) const; /* 8007EB70 */ void getPolyCode(int, dBgPc*) const; - /* 8007EBC4 */ void chkPolyThrough(dBgPc*, cBgS_PolyPassChk*, cBgS_GrpPassChk*, cXyz&) const; - /* 8007FF00 */ void ChkShdwDrawThrough(dBgPc*); + /* 8007EBC4 */ bool chkPolyThrough(dBgPc*, cBgS_PolyPassChk*, cBgS_GrpPassChk*, cXyz&) const; + /* 8007FF00 */ bool ChkShdwDrawThrough(dBgPc*); /* 8007E74C */ virtual ~dBgWKCol(); /* 8007E86C */ virtual bool ChkNotReady() const; /* 8007E87C */ virtual bool ChkLock() const; /* 8007E884 */ virtual bool ChkMoveBg() const; - /* 8007E88C */ virtual bool ChkMoveFlag() const; + /* 8007E88C */ virtual u32 ChkMoveFlag() const; /* 8007E894 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const; - /* 8007E980 */ virtual void GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const; - /* 8007EB28 */ virtual void GetBnd() const; - /* 8007EB30 */ virtual void GetGrpInf(cBgS_PolyInfo const&) const; + /* 8007E980 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const; + /* 8007EB28 */ virtual cM3dGAab* GetBnd() const; + /* 8007EB30 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const; /* 8007EB6C */ virtual void OffMoveFlag(); /* 800829AC */ virtual void GetTopUnder(f32*, f32*) const; /* 8007EE34 */ virtual bool LineCheck(cBgS_LinChk*); /* 8007F628 */ virtual bool GroundCross(cBgS_GndChk*); /* 8007F9A4 */ virtual void ShdwDraw(cBgS_ShdwDraw*); /* 8007FF1C */ virtual void CaptPoly(dBgS_CaptPoly&); - /* 800811A0 */ virtual void WallCorrect(dBgS_Acch*); + /* 800811A0 */ virtual bool WallCorrect(dBgS_Acch*); /* 80080330 */ virtual void WallCorrectSort(dBgS_Acch*); /* 80081E18 */ virtual bool RoofChk(dBgS_RoofChk*); /* 80082184 */ virtual bool SplGrpChk(dBgS_SplGrpChk*); /* 800824EC */ virtual bool SphChk(dBgS_SphChk*, virtual void*); - /* 800829F0 */ virtual void GetGrpRoomIndex(cBgS_PolyInfo const&) const; - /* 80082A20 */ virtual void GetExitId(cBgS_PolyInfo const&); - /* 80082A50 */ virtual void GetPolyColor(cBgS_PolyInfo const&); - /* 80082A80 */ virtual void GetHorseNoEntry(cBgS_PolyInfo const&); + /* 800829F0 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const; + /* 80082A20 */ virtual s32 GetExitId(cBgS_PolyInfo const&); + /* 80082A50 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&); + /* 80082A80 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&); /* 80082AB0 */ virtual int GetSpecialCode(cBgS_PolyInfo const&); /* 80082AE0 */ virtual int GetSpecialCode(int); /* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&); - /* 80082B6C */ virtual void GetPolyObjThrough(int); - /* 80082B98 */ virtual void GetPolyCamThrough(int); - /* 80082BC4 */ virtual void GetPolyLinkThrough(int); - /* 80082BF0 */ virtual void GetPolyArrowThrough(int); + /* 80082B6C */ virtual u32 GetPolyObjThrough(int); + /* 80082B98 */ virtual u32 GetPolyCamThrough(int); + /* 80082BC4 */ virtual u32 GetPolyLinkThrough(int); + /* 80082BF0 */ virtual u32 GetPolyArrowThrough(int); /* 80082C1C */ virtual u32 GetPolyHSStick(int); - /* 80082C48 */ virtual void GetPolyBoomerangThrough(int); - /* 80082C74 */ virtual void GetPolyRopeThrough(int); - /* 80082CA0 */ virtual void GetPolyBombThrough(int); - /* 80082CF8 */ virtual void GetShdwThrough(int); - /* 80082CCC */ virtual int GetUnderwaterRoofCode(int); + /* 80082C48 */ virtual u32 GetPolyBoomerangThrough(int); + /* 80082C74 */ virtual u32 GetPolyRopeThrough(int); + /* 80082CA0 */ virtual u32 GetPolyBombThrough(int); + /* 80082CF8 */ virtual bool GetShdwThrough(int); + /* 80082CCC */ virtual u32 GetUnderwaterRoofCode(int); /* 80082B3C */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&); - /* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&); + /* 80082D24 */ virtual int GetLinkNo(cBgS_PolyInfo const&); /* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&); /* 80082D84 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&); /* 80082DB4 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&); /* 80082DE4 */ virtual int GetGroundCode(cBgS_PolyInfo const&); - /* 80082E14 */ virtual void GetIronBallThrough(int); - /* 80082E40 */ virtual void GetAttackThrough(int); - /* 80082E6C */ virtual void GetCamMoveBG(cBgS_PolyInfo const&); - /* 80082E9C */ virtual void GetRoomCamId(cBgS_PolyInfo const&); - /* 80082ECC */ virtual void GetRoomPathId(cBgS_PolyInfo const&); - /* 80082EFC */ virtual void GetRoomPathPntNo(cBgS_PolyInfo const&); - /* 80082F2C */ virtual void GetPolyGrpRoomInfId(cBgS_PolyInfo const&); - /* 80082F5C */ virtual void GetGrpSoundId(cBgS_PolyInfo const&); + /* 80082E14 */ virtual u32 GetIronBallThrough(int); + /* 80082E40 */ virtual u32 GetAttackThrough(int); + /* 80082E6C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&); + /* 80082E9C */ virtual s32 GetRoomCamId(cBgS_PolyInfo const&); + /* 80082ECC */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&); + /* 80082EFC */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&); + /* 80082F2C */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&); + /* 80082F5C */ virtual u8 GetGrpSoundId(cBgS_PolyInfo const&); /* 80082F8C */ virtual void CrrPos(cBgS_PolyInfo const&, virtual void*, bool, cXyz*, csXyz*, csXyz*); /* 80082F90 */ virtual void TransPos(cBgS_PolyInfo const&, virtual void*, bool, cXyz*, csXyz*, @@ -80,8 +99,11 @@ public: /* 80082F94 */ virtual void MatrixCrrPos(cBgS_PolyInfo const&, virtual void*, bool, cXyz*, csXyz*, csXyz*); + KC_PrismData* getPrismData(int poly_index) const { return &m_pkc_head->m_prism_data[poly_index]; } + void getTri1Pos(KC_PrismData* pd, Vec** nrm) const { *nrm = &m_pkc_head->field_0x0[pd->field_0x4]; } + private: - /* 0x18 */ void* m_pkc_head; + /* 0x18 */ pkcdata* m_pkc_head; /* 0x1C */ dBgPlc m_code; /* 0x20 */ cM3dGAab m_bnd; }; diff --git a/include/d/bg/d_bg_w_sv.h b/include/d/bg/d_bg_w_sv.h index 9a9190ae5c8..251b6047993 100644 --- a/include/d/bg/d_bg_w_sv.h +++ b/include/d/bg/d_bg_w_sv.h @@ -1,6 +1,22 @@ #ifndef D_BG_D_BG_W_SV_H #define D_BG_D_BG_W_SV_H -#include "dolphin/types.h" +#include "d/bg/d_bg_w.h" + +class dBgWSv : public dBgW { +public: + /* 80082F98 */ u8 Set(cBgD_t*, u32); + /* 80083020 */ void CopyBackVtx(); + /* 8008308C */ void CrrPosWork(cXyz*, int, int, int); + /* 80083300 */ void TransPosWork(cXyz*, int, int, int); + + /* 800835DC */ virtual ~dBgWSv(); + /* 80083244 */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); + /* 8008351C */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); + /* 800835D8 */ virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); + + /* 0xC0 */ Vec* field_0xc0; + /* 0xC4 */ u8 field_0xc4; +}; #endif /* D_BG_D_BG_W_SV_H */ diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 687eaf1aef7..51fda45e96e 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -276,12 +276,14 @@ public: int getOxygen() { return mOxygen; } void setMaxOxygen(int max) { mMaxOxygen = max; } int getMaxOxygen() { return mMaxOxygen; } + int getNowOxygen() { return mNowOxygen; } void setItemNowLife(u16 life) { mItemNowLife = life; } void setItemNowMagic(s16 magic) { mItemNowMagicCount = magic; } void setItemNowOil(s32 oil) { mItemNowOil = oil; } void setItemOilCount(s32 oil) { mItemOilCount += oil; } s16 getItemMaxLifeCount() { return mItemMaxLifeCount; } f32 getItemLifeCount() { return mItemLifeCount; } + s16 getItemMaxArrowNumCount() { return mItemMaxArrowNumCount; } void clearItemMaxLifeCount() { mItemMaxLifeCount = 0; } void clearItemLifeCount() { mItemLifeCount = 0.0f; @@ -396,9 +398,11 @@ public: bool& isPauseFlag() { return mPauseFlag; } void offPauseFlag() { mPauseFlag = false; } void onPauseFlag() { mPauseFlag = true; } + u8 getOxygenShowFlag() { return mOxygenShowFlag; } void show2dOn() { mShow2D = 1; } s8 getLayerOld() { return mLayerOld; } void setMesgCancelButton(u8 button) { mMesgCancelButton = button; } + void setMesgBgm(u8 param_0) { mMesgBgm = param_0; } int getMessageCountNumber() { return mMessageCountNum; } void setWindowNum(u8 num) { mWindowNum = num; } @@ -803,6 +807,10 @@ void dComIfGs_onStageSwitch(int i_stageNo, int i_no); void dComIfGs_offStageSwitch(int i_stageNo, int i_no); void dComIfGs_PolyDamageOff_Set(s8 param_0); u8 dComIfGs_staffroll_next_go_check(); +BOOL dComIfGs_isEventBit(u16 id); +int dComIfGs_isItemFirstBit(u8 i_no); +u16 dComIfGs_getRupee(); +static u16 dComIfGs_getLife(); inline void dComIfGs_init() { g_dComIfG_gameInfo.info.init(); @@ -1513,6 +1521,23 @@ JKRExpHeap* dComIfGp_getSubHeap2D(int flag); void dComIfGp_world_dark_set(u8); u8 dComIfGp_getNowLevel(); void dComIfGp_calcNowRegion(); +daHorse_c* dComIfGp_getHorseActor(); +static BOOL dComIfGp_event_runCheck(); +static s32 dComIfGp_evmng_getMyStaffId(const char* pName, fopAc_ac_c* pActor, int param_2); +static u16 dComIfGp_event_chkEventFlag(u16 flag); +static s8 dComIfGp_getPlayerCameraID(int idx); +static dEvent_manager_c& dComIfGp_getEventManager(); +static u32 dComIfGp_checkPlayerStatus0(int param_0, u32 param_1); +static u32 dComIfGp_checkPlayerStatus1(int param_0, u32 param_1); +static dEvt_control_c& dComIfGp_getEvent(); +static bool dComIfGp_evmng_startCheck(char const* param_0); +static dStage_stageDt_c* dComIfGp_getStage(); +void dComIfGp_setItemLifeCount(f32 amount, u8 type); +void dComIfGp_setItemRupeeCount(s32 param_0); +static u8 dComIfGp_getDoStatus(); +static u8 dComIfGp_getRStatus(); +static dAttCatch_c* dComIfGp_att_getCatghTarget(); +static void dComIfGp_setBottleStatus(u8 param_0, u8 param_1); inline void i_dComIfGp_setItemLifeCount(float amount, u8 type) { g_dComIfG_gameInfo.play.setItemLifeCount(amount, type); @@ -2082,6 +2107,14 @@ inline int dComIfGp_getOxygen() { return g_dComIfG_gameInfo.play.getOxygen(); } +inline int dComIfGp_getNowOxygen() { + return g_dComIfG_gameInfo.play.getNowOxygen(); +} + +inline u8 dComIfGp_getOxygenShowFlag() { + return g_dComIfG_gameInfo.play.getOxygenShowFlag(); +} + inline u8 dComIfGp_getNeedLightDropNum() { return g_dComIfG_gameInfo.play.getNeedLightDropNum(); } @@ -2130,6 +2163,10 @@ inline void dComIfGp_setMesgCancelButton(u8 button) { g_dComIfG_gameInfo.play.setMesgCancelButton(button); } +inline void dComIfGp_setMesgBgmOn() { + g_dComIfG_gameInfo.play.setMesgBgm(1); +} + inline s32 dComIfGp_checkStatus(u16 flags) { return g_dComIfG_gameInfo.play.checkStatus(flags); } @@ -2154,6 +2191,10 @@ inline f32 dComIfGp_getItemLifeCount() { return g_dComIfG_gameInfo.play.getItemLifeCount(); } +inline s16 dComIfGp_getItemMaxArrowNumCount() { + return g_dComIfG_gameInfo.play.getItemMaxArrowNumCount(); +} + inline void dComIfGp_clearItemMaxLifeCount() { g_dComIfG_gameInfo.play.clearItemMaxLifeCount(); } diff --git a/include/d/com/d_com_static.h b/include/d/com/d_com_static.h index 9f15a064987..ba51a8f5055 100644 --- a/include/d/com/d_com_static.h +++ b/include/d/com/d_com_static.h @@ -45,7 +45,7 @@ public: /* 80031248 */ void newData(s8, cXyz const&, cXyz const&, u8, u8, u8); /* 800313BC */ void reset(); /* 800314D4 */ static void check(fopAc_ac_c*); - /* 80031434 */ static bool check(s8, cXyz const&); + /* 80031434 */ static bool check(s8 i_roomNo, cXyz const& i_pos); /* 800315A4 */ static void execute(); static u8 mData[1152]; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index edc02abc6a4..6e6bdbe678b 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -900,13 +900,14 @@ static int dStage_fieldMapFiliInfo2Init(dStage_dt_c*, void*, int, void*); static int dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*); s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); -int dStage_changeScene(int, f32, u32, s8, s16, int); +int dStage_changeScene(int i_exitId, f32 i_speed, u32 i_mode, s8 i_roomNo, s16 i_angle, int i_layerOverride); void dStage_infoCreate(); u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer); int dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle); int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed, - u32 mode, s16 angle, int param_7); + u32 mode, s16 angle, int param_7); void dStage_Create(); +static s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0); inline s32 dStage_roomRead_dt_c_GetVrboxswitch(roomRead_data_class& data) { return data.field_0x2 & 8; diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index 8da3453ea69..3b2eb2e9bb6 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -103,7 +103,7 @@ public: void setPtI_Id(unsigned int id); void setPtD(void* ptr); void setGtItm(u8 itemNo); - void isOrderOK(); + BOOL isOrderOK(); /* 807DFAD8 */ void checkSkipEdge(); /* 807E2908 */ void startCheckSkipEdge(void*); diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index bf07ea3be10..3088f044877 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -49,6 +49,10 @@ class dMeter2_c; class J2DPicture; class dMeterMap_c; +enum dMeter2Info_warpStatus { + /* 0x3 */ WARP_DECIDED = 3, +}; + class dMeter2Info_c { public: class WarpInfo_c { @@ -246,6 +250,8 @@ void dMeter2Info_setCloth(u8 i_clothId, bool param_1); void dMeter2Info_setShield(u8 i_itemId, bool param_1); void dMeter2Info_set2DVibration(); void dMeter2Info_set2DVibrationM(); +static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bool pWakuVisible); +static void dMeter2Info_offUseButton(int pButton); inline void dMeter2Info_Initialize() { g_meter2_info.init(); @@ -495,6 +501,10 @@ inline void dMeter2Info_onDirectUseItem(int param_0) { g_meter2_info.onDirectUseItem(param_0); } +inline void dMeter2Info_setFloatingFlow(u16 param_0, s16 param_1, bool param_2) { + g_meter2_info.setFloatingFlow(param_0, param_1, param_2); +} + char* dMeter2Info_getNumberTextureName(int pIndex); void dMeter2Info_recieveLetter(); u8 dMeter2Info_getNewLetterNum(); diff --git a/include/dolphin/ar/ar.h b/include/dolphin/ar/ar.h index 1a76e3b2098..4e7621c45d8 100644 --- a/include/dolphin/ar/ar.h +++ b/include/dolphin/ar/ar.h @@ -3,10 +3,16 @@ #include "dolphin/types.h" +#ifdef __cplusplus extern "C" { +#endif + u32 ARInit(u32*, u32); u32 ARAlloc(u32); u32 ARGetSize(void); -} + +#ifdef __cplusplus +}; +#endif #endif /* AR_H */ diff --git a/include/dolphin/ar/arq.h b/include/dolphin/ar/arq.h index 49f8f4e08b4..b34cf555a1a 100644 --- a/include/dolphin/ar/arq.h +++ b/include/dolphin/ar/arq.h @@ -3,10 +3,14 @@ #include "dolphin/types.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef void (*ARQCallback)(u32 request_address); -struct ARQRequest { - ARQRequest* next; +typedef struct ARQRequest { + struct ARQRequest* next; u32 owner; u32 type; u32 priority; @@ -14,12 +18,14 @@ struct ARQRequest { u32 destination; u32 length; ARQCallback callback; -}; +} ARQRequest; -extern "C" { void ARQInit(void); void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source, u32 destination, u32 length, ARQCallback callback); -} + +#ifdef __cplusplus +}; +#endif #endif /* ARQ_H */ diff --git a/include/dolphin/dvd/dvd.h b/include/dolphin/dvd/dvd.h index 12316f432f8..bdf0da3b33f 100644 --- a/include/dolphin/dvd/dvd.h +++ b/include/dolphin/dvd/dvd.h @@ -3,7 +3,9 @@ #include "dolphin/types.h" +#ifdef __cplusplus extern "C" { +#endif typedef enum DVDState { DVD_STATE_END = 0x0, @@ -19,38 +21,37 @@ typedef enum DVDState { DVD_STATE_RETRY = 0xb, DVD_STATE_FATAL_ERROR = -1, } DVDState; -} -struct DVDDirectory { +typedef struct DVDDirectory { u32 entry_number; u32 location; u32 next; -}; +} DVDDirectory; -struct DVDDirectoryEntry { +typedef struct DVDDirectoryEntry { u32 entry_number; BOOL is_directory; char* name; -}; +} DVDDirectoryEntry; -struct DVDDiskID { - char game_name[4]; - char company[2]; - u8 disk_number; - u8 game_version; - u8 is_streaming; - u8 streaming_buffer_size; - u8 padding[22]; -}; +typedef struct DVDDiskID { + /* 0x00 */ char game_name[4]; + /* 0x04 */ char company[2]; + /* 0x06 */ u8 disk_number; + /* 0x07 */ u8 game_version; + /* 0x08 */ u8 is_streaming; + /* 0x09 */ u8 streaming_buffer_size; + /* 0x0A */ u8 padding[22]; +} DVDDiskID; struct DVDFileInfo; struct DVDCommandBlock; -typedef void (*DVDCBCallback)(s32 result, DVDCommandBlock* block); -typedef void (*DVDCallback)(s32 result, DVDFileInfo* info); +typedef void (*DVDCBCallback)(s32 result, struct DVDCommandBlock* block); +typedef void (*DVDCallback)(s32 result, struct DVDFileInfo* info); -struct DVDCommandBlock { - DVDCommandBlock* next; - DVDCommandBlock* prev; +typedef struct DVDCommandBlock { + struct DVDCommandBlock* next; + struct DVDCommandBlock* prev; u32 command; s32 state; u32 offset; @@ -61,31 +62,46 @@ struct DVDCommandBlock { DVDDiskID* disk_id; DVDCBCallback callback; void* user_data; -}; +} DVDCommandBlock; -struct DVDFileInfo { +typedef struct DVDFileInfo { DVDCommandBlock block; u32 start_address; u32 length; DVDCallback callback; -}; +} DVDFileInfo; -extern "C" { -s32 DVDOpen(const char*, DVDFileInfo*); -s32 DVDClose(DVDFileInfo*); -s32 DVDReadPrio(DVDFileInfo*, void*, s32, s32, s32); +typedef struct DVDDriveInfo { + /* 0x00 */ u16 field_0x0; + /* 0x02 */ u16 device_code; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ u32 field_0x8; + /* 0x0C */ u32 field_0xc; + /* 0x10 */ u32 field_0x10; + /* 0x14 */ u32 field_0x14; + /* 0x18 */ u32 field_0x18; + /* 0x1C */ u32 field_0x1c; +} DVDDriveInfo; + +void DVDInit(void); +BOOL DVDOpen(const char* filename, DVDFileInfo* fileinfo); +BOOL DVDClose(DVDFileInfo* fileinfo); +BOOL DVDReadPrio(DVDFileInfo* fileinfo, void*, s32, s32, s32); DVDDiskID* DVDGetCurrentDiskID(void); -s32 DVDFastOpen(long, DVDFileInfo*); -int DVDGetCommandBlockStatus(DVDCommandBlock*); -s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, DVDCallback, long); -s32 DVDConvertPathToEntrynum(const char*); +BOOL DVDFastOpen(long, DVDFileInfo* fileinfo); +BOOL DVDGetCommandBlockStatus(DVDCommandBlock*); +BOOL DVDReadAsyncPrio(DVDFileInfo* fileinfo, void*, long, long, DVDCallback, long); +BOOL DVDConvertPathToEntrynum(const char*); DVDState DVDGetDriveStatus(void); -s32 DVDCheckDisk(void); +BOOL DVDCheckDisk(void); -BOOL DVDChangeDir(const char*); -BOOL DVDCloseDir(DVDDirectory*); -BOOL DVDOpenDir(const char*, DVDDirectory*); -BOOL DVDReadDir(DVDDirectory*, DVDDirectoryEntry*); -} +BOOL DVDChangeDir(const char* dirname); +BOOL DVDCloseDir(DVDDirectory* dir); +BOOL DVDOpenDir(const char*, DVDDirectory* dir); +BOOL DVDReadDir(DVDDirectory* dir, DVDDirectoryEntry* entry); + +#ifdef __cplusplus +}; +#endif #endif /* DVD_H */ diff --git a/include/dolphin/gd/GDBase.h b/include/dolphin/gd/GDBase.h index 31f61bf11a8..417b8b0586e 100644 --- a/include/dolphin/gd/GDBase.h +++ b/include/dolphin/gd/GDBase.h @@ -3,12 +3,16 @@ #include "dolphin/types.h" -struct GDLObj { +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct GDLObj { /* 0x0 */ u8* start; /* 0x4 */ u32 length; /* 0x8 */ u8* ptr; /* 0xC */ u8* end; -}; // Size: 0x10 +} GDLObj; // Size: 0x10 extern GDLObj* __GDCurrentDL; @@ -20,11 +24,14 @@ inline u32 GDGetGDLObjOffset(GDLObj* obj) { return (u32)(obj->ptr - obj->start); } -extern "C" { - void GDInitGDLObj(GDLObj*, u8*, u32); void GDFlushCurrToMem(); void GDPadCurr32(); -} + +typedef void (*GDOverflowCallback)(void); + +#ifdef __cplusplus +}; +#endif #endif /* GDBASE_H */ diff --git a/include/dolphin/gd/GDGeometry.h b/include/dolphin/gd/GDGeometry.h index 2d09d0f2468..078eb39d709 100644 --- a/include/dolphin/gd/GDGeometry.h +++ b/include/dolphin/gd/GDGeometry.h @@ -4,11 +4,16 @@ #include "dolphin/gx/GX.h" #include "dolphin/types.h" +#ifdef __cplusplus extern "C" { +#endif void GDSetVtxDescv(GXVtxDescList*); void GDSetArray(GXAttr attr, const void* data, u8 stride); void GDSetArrayRaw(GXAttr attr, u32 data, u8 stride); -} + +#ifdef __cplusplus +}; +#endif #endif /* GDGEOMETRY_H */ diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index 3659f4e4614..eb8e47bafcf 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -1,235 +1,46 @@ #ifndef GX_H_ #define GX_H_ +#include "dolphin/gx/GXInit.h" +#include "dolphin/gx/GXAttr.h" +#include "dolphin/gx/GXBump.h" #include "dolphin/gx/GXDisplayList.h" -#include "dolphin/gx/GXStruct.h" -#include "dolphin/gx/GXEnum.h" -#include "dolphin/mtx/mtx.h" -#include "dolphin/mtx/mtx44.h" -#include "dolphin/types.h" -#include "global.h" +#include "dolphin/gx/GXFifo.h" +#include "dolphin/gx/GXFrameBuf.h" +#include "dolphin/gx/GXGeometry.h" +#include "dolphin/gx/GXLight.h" +#include "dolphin/gx/GXMisc.h" +#include "dolphin/gx/GXPerf.h" +#include "dolphin/gx/GXPixel.h" +#include "dolphin/gx/GXTev.h" +#include "dolphin/gx/GXTexture.h" +#include "dolphin/gx/GXTransform.h" #ifdef __cplusplus extern "C" { #endif -typedef struct _GXVtxDescList { - /* 0x0 */ GXAttr attr; - /* 0x4 */ GXAttrType type; -} GXVtxDescList; // Size: 0x08 - -typedef struct _GXVtxAttrFmtList { - /* 0x00 */ GXAttr mAttrib; - /* 0x04 */ GXCompCnt mCompCnt; - /* 0x08 */ GXCompType mCompType; - /* 0x0C */ u8 mCompShift; -} GXVtxAttrFmtList; // Size: 0x10 - -typedef GXTexRegion (*GXTexRegionCallback)(void); -typedef u32 (*GXTlutRegionCallback)(u32); - -typedef struct _GXData { - /* 0x000 */ u16 field_0x0; - /* 0x002 */ u16 field_0x2; - /* 0x004 */ u16 field_0x4; - /* 0x006 */ u16 field_0x6; - /* 0x008 */ u32 field_0x8; - /* 0x00C */ u32 field_0xc; - /* 0x010 */ u32 field_0x10; - /* 0x014 */ GXAttrType field_0x14; - /* 0x018 */ GXAttrType field_0x18; - /* 0x01C */ GXCompCnt field_0x1c[8]; - /* 0x03C */ GXCompCnt field_0x3c[8]; - /* 0x05C */ u32 field_0x5c[8]; - /* 0x07C */ u32 field_0x7c; - /* 0x080 */ u32 field_0x80; - /* 0x084 */ u32 field_0x84; - /* 0x088 */ u8 field_0x88[0xA8 - 0x88]; - /* 0x0A8 */ u32 field_0xa8[2]; - /* 0x0B0 */ u32 field_0xb0[2]; - /* 0x0B8 */ u32 field_0xb8[8]; // GX_MAX_TEXCOORD - /* 0x0D8 */ u32 field_0xd8[8]; // GX_MAX_TEXCOORD - /* 0x0F8 */ u32 field_0xf8; - /* 0x0FC */ u32 field_0xfc; - /* 0x100 */ u32 field_0x100[GX_MAX_TEVSTAGE / 2]; - /* 0x120 */ u32 field_0x120; - /* 0x124 */ u32 field_0x124; - /* 0x128 */ u8 field_0x128[0x130 - 0x128]; - /* 0x130 */ u32 field_0x130[GX_MAX_TEVSTAGE]; - /* 0x170 */ u32 field_0x170[GX_MAX_TEVSTAGE]; - /* 0x1B0 */ u32 field_0x1b0[GX_MAX_TEVSTAGE / 2]; - /* 0x1D0 */ u32 field_0x1d0; - /* 0x1D4 */ u32 field_0x1d4; - /* 0x1D8 */ u32 field_0x1d8; - /* 0x1DC */ u32 field_0x1dc; - /* 0x1E0 */ u32 field_0x1e0; - /* 0x1E4 */ u32 field_0x1e4; - /* 0x1E8 */ u32 field_0x1e8; - /* 0x1EC */ u32 field_0x1ec; - /* 0x1F0 */ u32 field_0x1f0; - /* 0x1F4 */ u32 field_0x1f4; - /* 0x1F8 */ u32 field_0x1f8; - /* 0x1FC */ u32 field_0x1fc; - /* 0x200 */ u8 field_0x200; - /* 0x204 */ u32 field_0x204; - /* 0x208 */ GXTexRegion field_0x208[8]; - /* 0x288 */ GXTexRegion field_0x288[8]; - /* 0x308 */ GXTexRegion field_0x308[8]; - /* 0x388 */ GXTlutRegion field_0x388[16]; - /* 0x488 */ GXTlutRegion field_0x488[4]; - /* 0x4C8 */ GXTexRegionCallback field_0x4c8; - /* 0x4CC */ GXTlutRegionCallback field_0x4cc; - /* 0x4D0 */ GXAttrType field_0x4d0; - /* 0x4D4 */ u8 field_0x4d4; - /* 0x4D5 */ u8 field_0x4d5; - /* 0x4D8 */ GXProjectionType field_0x4d8; - /* 0x4DC */ Mtx field_0x4dc; - /* 0x50C */ f32 field_0x50c; - /* 0x510 */ f32 field_0x510; - /* 0x514 */ u32 field_0x514[8]; - /* 0x534 */ u32 field_0x534[8]; - /* 0x554 */ u32 field_0x554; - /* 0x558 */ u32 field_0x558[8]; - /* 0x578 */ u8 field_0x578[0x594 - 0x578]; - /* 0x594 */ u32 field_0x594; - /* 0x598 */ u32 field_0x598; - /* 0x59C */ u32 field_0x59c; - /* 0x5A0 */ u8 field_0x5a0[4]; - /* 0x5A4 */ u32 field_0x5a4; - /* 0x5A8 */ u8 field_0x5a8; - /* 0x5A9 */ u8 field_0x5a9; - /* 0x5AA */ u8 field_0x5aa; - /* 0x5AB */ u8 field_0x5ab; - /* 0x5AC */ u32 field_0x5ac; -} GXData; // Size: 0x5B0 - -STATIC_ASSERT(sizeof(GXData) == 0x5B0); - -extern GXData* __GXData; - -extern u32* __piReg; -extern u16* __cpReg; +// Pack value into bitfield +// Pack value into bitfield +#define GX_BITFIELD_SET(field, pos, size, value) (field) = __rlwimi((field), (value), 31 - (pos) - (size) + 1, (pos), (pos) + (size)-1) #define GX_LOAD_BP_REG 0x61 #define GX_NOP 0 -f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height); -u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale); +typedef union { + u8 u8; + u16 u16; + u32 u32; + u64 u64; + s8 s8; + s16 s16; + s32 s32; + s64 s64; + f32 f32; + f64 f64; +} PPCWGPipe; -void GXBegin(GXPrimitive, GXVtxFmt, u16); -void GXLoadTexObj(GXTexObj*, GXTexMapID); -void GXInitTexObjLOD(GXTexObj*, GXTexFilter, GXTexFilter, f32, f32, f32, GXBool, GXBool, - GXAnisotropy); -void GXInitTexObj(GXTexObj*, void*, u16, u16, GXTexFmt, GXTexWrapMode, GXTexWrapMode, GXBool); -void GXInitTlutObj(GXTlutObj*, void*, GXTlutFmt, u16); -void GXLoadTlut(GXTlutObj*, u32); -void GXInitTexObjCI(GXTexObj*, void*, u16, u16, GXCITexFmt, GXTexWrapMode, GXTexWrapMode, GXBool, - u32); -void GXSetNumChans(u8); -void GXSetNumTevStages(u8); -void GXSetNumTexGens(u8); -void GXSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID); -void GXSetChanCtrl(GXChannelID, GXBool, GXColorSrc, GXColorSrc, u32, GXDiffuseFn, GXAttnFn); -void GXSetTevOp(GXTevStageID, GXTevMode); -void GXSetTevColor(GXTevRegID, GXColor); -void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, GXTevColorArg); -void GXSetTevAlphaIn(GXTevStageID, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg); -void GXSetTevColorOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, GXBool, GXTevRegID); -void GXSetTevAlphaOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, GXBool, GXTevRegID); -void GXSetTevIndirect(GXTevStageID, _GXIndTexStageID, GXIndTexFormat, GXIndTexBiasSel, - GXIndTexMtxID, GXIndTexWrap, GXIndTexWrap, GXBool, GXBool, GXIndTexAlphaSel); -void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp); -void GXSetVtxAttrFmt(GXVtxFmt, GXAttr, GXCompCnt, GXCompType, u32); -void GXClearVtxDesc(void); -void GXSetVtxDesc(GXAttr, GXAttrType); -void GXSetArray(GXAttr, void*, u8); -typedef void (*GXDrawDoneCallback)(void); -void GXSetDrawDoneCallback(GXDrawDoneCallback); -void GXDrawDone(void); -void GXAbortFrame(void); -void GXFlush(void); -void GXSetCopyClear(GXColor, u32); -void GXSetDispCopySrc(u16, u16, u16, u16); -void GXSetDispCopyDst(u16, u16); -u32 GXSetDispCopyYScale(f32); -void GXSetCopyClamp(GXFBClamp); -void GXSetDispCopyGamma(GXGamma); -void GXCopyDisp(void*, GXBool); -void GXSetPixelFmt(GXPixelFmt, GXZFmt16); - -struct OSThread; -OSThread* GXSetCurrentGXThread(void); -OSThread* GXGetCurrentGXThread(void); - -void GXCopyTex(void*, GXBool); -void GXGetProjectionv(f32*); -u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool is_mip_map, u8 max_lod); -void GXGetViewportv(f32*); -void GXInitLightColor(GXLightObj*, GXColor); -void GXInitLightDir(GXLightObj*, f32, f32, f32); -void GXInitLightDistAttn(GXLightObj*, f32, f32, GXDistAttnFn); -void GXInitLightPos(GXLightObj*, f32, f32, f32); -void GXInitLightSpot(GXLightObj*, f32, GXSpotFn); -void GXInvalidateTexAll(void); -void GXInitLightAttn(GXLightObj*, f32, f32, f32, f32, f32, f32); -void GXLoadLightObjImm(GXLightObj*, GXLightID); -void GXLoadPosMtxImm(Mtx, u32); -void GXLoadNrmMtxImm(Mtx, u32); -void GXLoadTexMtxImm(Mtx, u32, GXTexMtxType); -void GXPixModeSync(void); -void GXProject(f32, f32, f32, Mtx, f32*, f32*, f32*, f32*, f32*); -void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8); -void GXSetAlphaUpdate(GXBool); -void GXSetChanAmbColor(GXChannelID, GXColor); -void GXSetChanMatColor(GXChannelID, GXColor); -void GXSetClipMode(GXClipMode); -void GXSetCoPlanar(GXBool); -void GXSetColorUpdate(GXBool); -void GXSetCopyFilter(GXBool, u8[12][2], GXBool, u8[7]); -void GXSetCullMode(GXCullMode); -void GXSetCurrentMtx(u32); -void GXSetDither(GXBool); -void GXSetFog(GXFogType, f32, f32, f32, f32, GXColor); -void GXSetFogRangeAdj(GXBool, u16, GXFogAdjTable*); -void GXSetNumIndStages(u8); -void GXSetProjection(Mtx44, GXProjectionType); -void GXSetScissor(u32, u32, u32, u32); -void GXSetTevColorS10(GXTevRegID, GXColorS10); -void GXSetTevKAlphaSel(GXTevStageID, GXTevKAlphaSel); -void GXSetTevSwapMode(GXTevStageID, GXTevSwapSel, GXTevSwapSel); -void GXSetTevSwapModeTable(GXTevSwapSel, GXTevColor, GXTevColor, GXTevColor, GXTevColor); -void GXSetTexCoordGen2(GXTexCoordID, GXTexGenType, GXTexGenSrc, u32, GXBool, u32); -void GXSetTexCopyDst(u16, u16, GXTexFmt, GXBool); -void GXSetTexCopySrc(u16, u16, u16, u16); -void GXSetViewport(f32, f32, f32, f32, f32, f32); -void GXSetZCompLoc(GXBool); -void GXSetZMode(GXBool, GXCompare, GXBool); -void GXSetZTexture(GXZTexOp, GXTexFmt, u32); -void GXSetPointSize(u8, GXTexOffset); -void GXSetLineWidth(u8, GXTexOffset); -void GXSetTevDirect(GXTevStageID); -void GXSetTevKColor(GXTevKColorID, GXColor); -void GXSetTevKColorSel(GXTevStageID, GXTevKColorSel); -void GXGetScissor(u32*, u32*, u32*, u32*); -void GXSetIndTexMtx(GXIndTexMtxID, Mtx23, s8); -void GXSetIndTexCoordScale(GXIndTexStageID, GXIndTexScale, GXIndTexScale); -void GXSetIndTexOrder(GXIndTexStageID, GXTexCoordID, GXTexMapID); -void GXEnableTexOffsets(GXTexCoordID, GXBool, GXBool); -void GXSetDstAlpha(GXBool, u8); -u32 GXGetFifoSize(GXFifoObj*); -void* GXGetFifoBase(GXFifoObj*); -GXFifoObj* GXInit(void*, u32); -GXFifoObj* GXGetCPUFifo(void); -void GXGetGPStatus(GXBool*, GXBool*, GXBool*, GXBool*, GXBool*); -void GXReadXfRasMetric(u32*, u32*, u32*, u32*); -void GXInitFifoBase(GXFifoObj*, void*, u32); -void GXInitFifoPtrs(GXFifoObj*, void*, void*); -void GXSaveCPUFifo(GXFifoObj*); -void GXSetMisc(u32 opt, u32 val); -void GXInitTexCacheRegion(GXTexRegion* region, GXBool, u32, GXTexCacheSize, u32, GXTexCacheSize); -void GXPeekZ(u16 x, u16 y, u32* dst); -void __GXSetDirtyState(void); -void __GXSendFlushPrim(void); +volatile PPCWGPipe GXFIFO : 0xCC008000; #define GFX_FIFO(T) (*(volatile T*)0xCC008000) diff --git a/include/dolphin/gx/GXAttr.h b/include/dolphin/gx/GXAttr.h index 9280e4a5845..9b9bbdf4ee1 100644 --- a/include/dolphin/gx/GXAttr.h +++ b/include/dolphin/gx/GXAttr.h @@ -1,6 +1,39 @@ #ifndef GXATTR_H #define GXATTR_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _GXVtxDescList { + /* 0x0 */ GXAttr attr; + /* 0x4 */ GXAttrType type; +} GXVtxDescList; // Size: 0x08 + +typedef struct _GXVtxAttrFmtList { + /* 0x00 */ GXAttr mAttrib; + /* 0x04 */ GXCompCnt mCompCnt; + /* 0x08 */ GXCompType mCompType; + /* 0x0C */ u8 mCompShift; +} GXVtxAttrFmtList; // Size: 0x10 + +void GXSetVtxDesc(GXAttr attr, GXAttrType type); +void GXSetVtxDescv(GXVtxDescList* list); +void __GXSetVCD(void); +void __GXCalculateVLim(void); +void GXClearVtxDesc(void); +void GXSetVtxAttrFmt(GXVtxFmt fmt, GXAttr attr, GXCompCnt cnt, GXCompType type, u32); +void GXSetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList* list); +void __GXSetVAT(void); +void GXSetArray(GXAttr attr, void* base, u8); +void GXInvalidateVtxCache(void); +void GXSetTexCoordGen2(GXTexCoordID dst, GXTexGenType type, GXTexGenSrc src, u32 mtx, GXBool renormalize, u32 pt_mtx); +void GXSetNumTexGens(u8 numTexGens); + +#ifdef __cplusplus +}; +#endif #endif /* GXATTR_H */ diff --git a/include/dolphin/gx/GXBump.h b/include/dolphin/gx/GXBump.h index 79ed20bb9d8..29337920c79 100644 --- a/include/dolphin/gx/GXBump.h +++ b/include/dolphin/gx/GXBump.h @@ -1,6 +1,24 @@ #ifndef GXBUMP_H #define GXBUMP_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/mtx/mtx.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXSetTevIndirect(GXTevStageID tevStage, GXIndTexStageID texStage, GXIndTexFormat texFmt, + GXIndTexBiasSel biasSel, GXIndTexMtxID mtxID, GXIndTexWrap wrapS, + GXIndTexWrap wrapT, u8 addPrev, u8 utcLod, GXIndTexAlphaSel alphaSel); +void GXSetIndTexMtx(GXIndTexMtxID mtxID, f32 offset[6], s8 scale_exp); +void GXSetIndTexCoordScale(GXIndTexStageID texStage, GXIndTexScale scaleS, GXIndTexScale scaleT); +void GXSetIndTexOrder(GXIndTexStageID stage, GXTexCoordID coord, GXTexMapID map); +void GXSetNumIndStages(u8 num); +void GXSetTevDirect(GXTevStageID stage); + +#ifdef __cplusplus +}; +#endif #endif /* GXBUMP_H */ diff --git a/include/dolphin/gx/GXDisplayList.h b/include/dolphin/gx/GXDisplayList.h index 54845d6a46b..fc8a4d5358c 100644 --- a/include/dolphin/gx/GXDisplayList.h +++ b/include/dolphin/gx/GXDisplayList.h @@ -3,10 +3,16 @@ #include "dolphin/types.h" +#ifdef __cplusplus extern "C" { +#endif + void GXBeginDisplayList(void* list, u32 capacity); void GXEndDisplayList(void); void GXCallDisplayList(void* list, u32 nbytes); + +#ifdef __cplusplus }; +#endif #endif /* GXDISPLAYLIST_H */ diff --git a/include/dolphin/gx/GXEnum.h b/include/dolphin/gx/GXEnum.h index b8ab1cb40c4..591f873efdb 100644 --- a/include/dolphin/gx/GXEnum.h +++ b/include/dolphin/gx/GXEnum.h @@ -20,12 +20,14 @@ typedef enum _GXCullMode { /* 0x3 */ GX_CULL_ALL } GXCullMode; -typedef enum _GXBool { +typedef enum _GXBoolVal { /* 0x0 */ GX_FALSE, /* 0x1 */ GX_TRUE, /* 0x0 */ GX_DISABLE = 0, /* 0x1 */ GX_ENABLE -} GXBool; +} GXBoolVal; + +typedef u8 GXBool; typedef enum _GXTexMapID { /* 0x000 */ GX_TEXMAP0, @@ -429,11 +431,11 @@ typedef enum _GXAnisotropy { /* 0x3 */ GX_MAX_ANISOTROPY, } GXAnisotropy; -enum GXCITexFmt { +typedef enum _GXCITexFmt { /* 0x8 */ GX_TF_C4 = 8, /* 0x8 */ GX_TF_C8, /* 0xA */ GX_TF_C14X2 -}; +} GXCITexFmt; typedef enum _GXTexMtxType { /* 0x0 */ GX_MTX3x4, @@ -619,9 +621,11 @@ typedef enum _GXIndTexMtxID { /* 0x1 */ GX_ITM_0, /* 0x2 */ GX_ITM_1, /* 0x3 */ GX_ITM_2, + /* 0x4 */ GX_ITM_3, /* 0x5 */ GX_ITM_S0 = 5, /* 0x6 */ GX_ITM_S1, /* 0x7 */ GX_ITM_S2, + /* 0x8 */ GX_ITM_S3, /* 0x9 */ GX_ITM_T0 = 9, /* 0xA */ GX_ITM_T1, /* 0xB */ GX_ITM_T2, @@ -711,7 +715,7 @@ typedef enum _GXTexMtx { GX_TEXMTX8 = 30 + 8 * 3, GX_TEXMTX9 = 30 + 9 * 3, GX_IDENTITY = 60, -}; +} GXTexMtx; typedef enum _GXPTTexMtx { GX_PTTEXMTX0 = 64 + 0 * 3, @@ -735,7 +739,7 @@ typedef enum _GXPTTexMtx { GX_PTTEXMTX18 = 64 + 18 * 3, GX_PTTEXMTX19 = 64 + 19 * 3, GX_PTIDENTITY = 125, -}; +} GXPTTexMtx; typedef enum _GXFBClamp { /* 0x0 */ GX_CLAMP_NONE, @@ -776,4 +780,30 @@ typedef enum _GXClipMode { /* 0x1 */ GX_CLIP_DISABLE, } GXClipMode; +typedef enum _GXCopyMode { + /* 0x0 */ GX_COPY_PROGRESSIVE, + /* 0x1 */ GX_COPY_INTLC_EVEN, + /* 0x2 */ GX_COPY_INTLC_ODD, +} GXCopyMode; + +typedef enum _GXAlphaReadMode { + /* 0x0 */ GX_READ_00, + /* 0x1 */ GX_READ_FF, + /* 0x2 */ GX_READ_NONE, +} GXAlphaReadMode; + +typedef enum _GXTlutSize { + /* 0x001 */ GX_TLUT_16 = 1, + /* 0x002 */ GX_TLUT_32 = 2, + /* 0x004 */ GX_TLUT_64 = 4, + /* 0x008 */ GX_TLUT_128 = 8, + /* 0x010 */ GX_TLUT_256 = 16, + /* 0x020 */ GX_TLUT_512 = 32, + /* 0x040 */ GX_TLUT_1K = 64, + /* 0x080 */ GX_TLUT_2K = 128, + /* 0x100 */ GX_TLUT_4K = 256, + /* 0x200 */ GX_TLUT_8K = 512, + /* 0x400 */ GX_TLUT_16K = 1024, +} GXTlutSize; + #endif /* GXENUM_H */ \ No newline at end of file diff --git a/include/dolphin/gx/GXFifo.h b/include/dolphin/gx/GXFifo.h index 8de5a88972d..68f955e8265 100644 --- a/include/dolphin/gx/GXFifo.h +++ b/include/dolphin/gx/GXFifo.h @@ -1,6 +1,38 @@ #ifndef GXFIFO_H #define GXFIFO_H -#include "dolphin/types.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/os/OS.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXInitFifoBase(GXFifoObj* fifo, void* base, u32 size); +void GXInitFifoPtrs(GXFifoObj* fifo, void* read_ptr, void* write_ptr); +void GXSetCPUFifo(void); +void GXSetGPFifo(void); +void GXSaveCPUFifo(GXFifoObj* fifo); +void __GXSaveCPUFifoAux(GXFifoObj* fifo); +void GXGetGPStatus(GXBool* overhi, GXBool* underlo, GXBool* read_idle, GXBool* cmd_idle, GXBool* breakpoint); +void* GXGetFifoBase(GXFifoObj* fifo); +u32 GXGetFifoSize(GXFifoObj* fifo); +void GXSetBreakPtCallback(void); +void __GXFifoInit(void); +void __GXFifoReadEnable(void); +void __GXFifoReadDisable(void); +void __GXFifoLink(u8); +void __GXWriteFifoIntEnable(u8, u8); +void __GXWriteFifoIntReset(u8, u8); +void __GXCleanGPFifo(void); +OSThread* GXSetCurrentGXThread(void); +OSThread* GXGetCurrentGXThread(void); +GXFifoObj* GXGetCPUFifo(void); +u32 GXGetGPFifo(void); + +#ifdef __cplusplus +}; +#endif #endif /* GXFIFO_H */ diff --git a/include/dolphin/gx/GXFrameBuf.h b/include/dolphin/gx/GXFrameBuf.h index 91f4e496049..ffa428cb595 100644 --- a/include/dolphin/gx/GXFrameBuf.h +++ b/include/dolphin/gx/GXFrameBuf.h @@ -1,6 +1,31 @@ #ifndef GXFRAMEBUF_H #define GXFRAMEBUF_H -#include "dolphin/types.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXEnum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXSetDispCopySrc(u16 left, u16 top, u16 width, u16 height); +void GXSetTexCopySrc(u16 left, u16 top, u16 width, u16 height); +void GXSetDispCopyDst(u16 width, u16 height); +void GXSetTexCopyDst(u16 width, u16 height, GXTexFmt fmt, GXBool mipmap); +void GXSetDispCopyFrame2Field(GXCopyMode mode); +void GXSetCopyClamp(GXFBClamp clamp); +u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale); +f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height); +u32 GXSetDispCopyYScale(f32 y_scale); +void GXSetCopyClear(GXColor color, u32 clear_z); +void GXSetCopyFilter(GXBool antialias, u8 pattern[12][2], GXBool vf, u8 vfilter[7]); +void GXSetDispCopyGamma(GXGamma gamma); +void GXCopyDisp(void* dst, GXBool clear); +void GXCopyTex(void* dst, GXBool clear); +void GXClearBoundingBox(void); + +#ifdef __cplusplus +}; +#endif #endif /* GXFRAMEBUF_H */ diff --git a/include/dolphin/gx/GXGeometry.h b/include/dolphin/gx/GXGeometry.h index 0adddc6fdb2..49315693f30 100644 --- a/include/dolphin/gx/GXGeometry.h +++ b/include/dolphin/gx/GXGeometry.h @@ -1,6 +1,25 @@ #ifndef GXGEOMETRY_H #define GXGEOMETRY_H -#include "dolphin/types.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXEnum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void __GXSetDirtyState(void); +void GXBegin(GXPrimitive type, GXVtxFmt fmt, u16 vert_num); +void __GXSendFlushPrim(void); +void GXSetLineWidth(u8 width, GXTexOffset offsets); +void GXSetPointSize(u8 size, GXTexOffset offsets); +void GXEnableTexOffsets(GXTexCoordID coord, GXBool line, GXBool point); +void GXSetCullMode(GXCullMode mode); +void GXSetCoPlanar(GXBool enable); +void __GXSetGenMode(void); + +#ifdef __cplusplus +}; +#endif #endif /* GXGEOMETRY_H */ diff --git a/include/dolphin/gx/GXInit.h b/include/dolphin/gx/GXInit.h index 0fe7f0caf34..881ee2c24ae 100644 --- a/include/dolphin/gx/GXInit.h +++ b/include/dolphin/gx/GXInit.h @@ -1,6 +1,118 @@ #ifndef GXINIT_H #define GXINIT_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/mtx/mtx.h" +#include "global.h" + +typedef GXTexRegion (*GXTexRegionCallback)(GXTexObj* obj); +typedef GXTlutRegion* (*GXTlutRegionCallback)(u32 name); + +typedef struct _GXData { + /* 0x000 */ u16 field_0x0; + /* 0x002 */ u16 field_0x2; + /* 0x004 */ u16 field_0x4; + /* 0x006 */ u16 field_0x6; + /* 0x008 */ u32 field_0x8; + /* 0x00C */ u32 field_0xc; + /* 0x010 */ u32 field_0x10; + /* 0x014 */ u32 field_0x14; + /* 0x018 */ GXAttrType field_0x18; + /* 0x01C */ GXCompCnt field_0x1c[8]; + /* 0x03C */ GXCompCnt field_0x3c[8]; + /* 0x05C */ u32 field_0x5c[8]; + /* 0x07C */ u32 field_0x7c; + /* 0x080 */ u32 field_0x80; + /* 0x084 */ u32 field_0x84; + /* 0x088 */ u8 field_0x88[0xA8 - 0x88]; + /* 0x0A8 */ GXColor ambColors[2]; + /* 0x0B0 */ GXColor matColors[2]; + /* 0x0B8 */ u32 field_0xb8[8]; // GX_MAX_TEXCOORD + /* 0x0D8 */ u32 field_0xd8[8]; // GX_MAX_TEXCOORD + /* 0x0F8 */ u32 field_0xf8; + /* 0x0FC */ u32 field_0xfc; + /* 0x100 */ u32 field_0x100[GX_MAX_TEVSTAGE / 2]; + /* 0x120 */ u32 field_0x120; + /* 0x124 */ u32 field_0x124; + /* 0x128 */ u32 field_0x128; + /* 0x12C */ u32 field_0x12c; + /* 0x130 */ u32 field_0x130[GX_MAX_TEVSTAGE]; + /* 0x170 */ u32 field_0x170[GX_MAX_TEVSTAGE]; + /* 0x1B0 */ u32 field_0x1b0[GX_MAX_TEVSTAGE / 2]; + /* 0x1D0 */ u32 field_0x1d0; + /* 0x1D4 */ u32 field_0x1d4; + /* 0x1D8 */ u32 field_0x1d8; + /* 0x1DC */ u32 field_0x1dc; + /* 0x1E0 */ u32 field_0x1e0; + /* 0x1E4 */ u32 field_0x1e4; + /* 0x1E8 */ u32 field_0x1e8; + /* 0x1EC */ u32 field_0x1ec; + /* 0x1F0 */ u32 field_0x1f0; + /* 0x1F4 */ u32 field_0x1f4; + /* 0x1F8 */ u32 field_0x1f8; + /* 0x1FC */ u32 field_0x1fc; + /* 0x200 */ u8 field_0x200; + /* 0x204 */ u32 field_0x204; + /* 0x208 */ GXTexRegion field_0x208[8]; + /* 0x288 */ GXTexRegion field_0x288[8]; + /* 0x308 */ GXTexRegion field_0x308[8]; + /* 0x388 */ GXTlutRegion field_0x388[16]; + /* 0x488 */ GXTlutRegion field_0x488[4]; + /* 0x4C8 */ GXTexRegionCallback field_0x4c8; + /* 0x4CC */ GXTlutRegionCallback field_0x4cc; + /* 0x4D0 */ GXAttrType field_0x4d0; + /* 0x4D4 */ u8 field_0x4d4; + /* 0x4D5 */ u8 field_0x4d5; + /* 0x4D8 */ GXProjectionType field_0x4d8; + /* 0x4DC */ Mtx field_0x4dc; + /* 0x50C */ f32 field_0x50c; + /* 0x510 */ f32 field_0x510; + /* 0x514 */ u32 field_0x514[8]; + /* 0x534 */ u32 field_0x534[8]; + /* 0x554 */ u32 field_0x554; + /* 0x558 */ u32 field_0x558[8]; + /* 0x578 */ u8 field_0x578[0x594 - 0x578]; + /* 0x594 */ u32 field_0x594; + /* 0x598 */ u32 field_0x598; + /* 0x59C */ u32 field_0x59c; + /* 0x5A0 */ u8 field_0x5a0[4]; + /* 0x5A4 */ u32 field_0x5a4; + /* 0x5A8 */ u8 field_0x5a8; + /* 0x5A9 */ u8 field_0x5a9; + /* 0x5AA */ u8 field_0x5aa; + /* 0x5AB */ u8 field_0x5ab; + /* 0x5AC */ u32 field_0x5ac; +} GXData; // Size: 0x5B0 + +STATIC_ASSERT(sizeof(GXData) == 0x5B0); + +extern GXData* __GXData; + +extern u32* __piReg; +extern u16* __cpReg; +extern u8 __peReg[4]; +extern u8 __memReg[4]; + +inline void GXSetWasteFlags() { + GXData* data = __GXData; + data->field_0x5ac |= 0x3; + data->field_0x2 = 0; +} + +#ifdef __cplusplus +extern "C" { +#endif + +GXTexRegion* __GXDefaultTexRegionCallback(GXTexObj* obj, GXTexMapID mapID); +GXTlutRegion* __GXDefaultTlutRegionCallback(u32 tlut); +void __GXShutdown(s32); +void __GXInitRevisionBits(void); +GXFifoObj* GXInit(void* base, u32 size); +void __GXInitGX(void); + +#ifdef __cplusplus +}; +#endif #endif /* GXINIT_H */ diff --git a/include/dolphin/gx/GXLight.h b/include/dolphin/gx/GXLight.h index 817b2cb8163..82fd78a1b0b 100644 --- a/include/dolphin/gx/GXLight.h +++ b/include/dolphin/gx/GXLight.h @@ -1,6 +1,27 @@ #ifndef GXLIGHT_H #define GXLIGHT_H -#include "dolphin/types.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXEnum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXInitLightAttn(GXLightObj* obj, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2); +void GXInitLightSpot(GXLightObj* obj, f32 cutoff, GXSpotFn spot_fn); +void GXInitLightDistAttn(GXLightObj* obj, f32 dist, f32 brightness, GXDistAttnFn dist_fn); +void GXInitLightPos(GXLightObj* obj, f32 x, f32 y, f32 z); +void GXInitLightDir(GXLightObj* obj, f32 x, f32 y, f32 z); +void GXInitLightColor(GXLightObj* obj, GXColor color); +void GXLoadLightObjImm(GXLightObj* obj, GXLightID light); +void GXSetChanAmbColor(GXChannelID channel, GXColor color); +void GXSetChanMatColor(GXChannelID channel, GXColor color); +void GXSetNumChans(u8 chan_num); +void GXSetChanCtrl(GXChannelID channel, GXBool enable, GXColorSrc amb_src, GXColorSrc mat_src, u32 light_mask, GXDiffuseFn diff_fn, GXAttnFn attn_fn); + +#ifdef __cplusplus +}; +#endif #endif /* GXLIGHT_H */ diff --git a/include/dolphin/gx/GXMisc.h b/include/dolphin/gx/GXMisc.h index d5deba08205..5a22f30cc86 100644 --- a/include/dolphin/gx/GXMisc.h +++ b/include/dolphin/gx/GXMisc.h @@ -1,6 +1,38 @@ #ifndef GXMISC_H #define GXMISC_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXSetMisc(u32 id, u32 value); +void GXFlush(void); +void __GXAbort(void); +void GXAbortFrame(void); +void GXSetDrawDone(void); +void GXDrawDone(void); +void GXPixModeSync(void); +void GXPokeAlphaMode(GXCompare comp, u8 threshold); +void GXPokeAlphaRead(GXAlphaReadMode mode); +void GXPokeAlphaUpdate(GXBool enable_update); +void GXPokeBlendMode(GXBlendMode mode, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op); +void GXPokeColorUpdate(GXBool enable_update); +void GXPokeDstAlpha(GXBool enable, u8 alpha); +void GXPokeDither(GXBool enable); +void GXPokeZMode(GXBool enable_compare, GXCompare comp); +void GXPeekZ(u16 x, u16 y, u32* z); + +typedef void (*GXDrawSyncCallback)(u16 token); +void GXSetDrawSyncCallback(GXDrawSyncCallback callback); + +typedef void (*GXDrawDoneCallback)(void); +void GXSetDrawDoneCallback(GXDrawDoneCallback callback); +void __GXPEInit(void); + +#ifdef __cplusplus +}; +#endif #endif /* GXMISC_H */ diff --git a/include/dolphin/gx/GXPerf.h b/include/dolphin/gx/GXPerf.h index e03b2baf387..821c81b2b58 100644 --- a/include/dolphin/gx/GXPerf.h +++ b/include/dolphin/gx/GXPerf.h @@ -3,4 +3,16 @@ #include "dolphin/types.h" +#ifdef __cplusplus +extern "C" { +#endif + +void GXSetGPMetric(u32 perf0, u32 perf1); +void GXClearGPMetric(void); +void GXReadXfRasMetric(u32*, u32*, u32*, u32*); + +#ifdef __cplusplus +}; +#endif + #endif /* GXPERF_H */ diff --git a/include/dolphin/gx/GXPixel.h b/include/dolphin/gx/GXPixel.h index e95981c69b5..b9b3d3a60b5 100644 --- a/include/dolphin/gx/GXPixel.h +++ b/include/dolphin/gx/GXPixel.h @@ -1,6 +1,28 @@ #ifndef GXPIXEL_H #define GXPIXEL_H -#include "dolphin/types.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXEnum.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXSetFog(GXFogType type, f32 startZ, f32 endZ, f32 nearZ, f32 farZ, GXColor color); +void GXSetFogRangeAdj(GXBool enable, u16 center, GXFogAdjTable* table); +void GXSetBlendMode(GXBlendMode mode, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op); +void GXSetColorUpdate(GXBool enable_update); +void GXSetAlphaUpdate(GXBool enable_update); +void GXSetZMode(GXBool enable_compare, GXCompare comp, GXBool enable_update); +void GXSetZCompLoc(GXBool z_buf_before_tex); +void GXSetPixelFmt(GXPixelFmt pixel_fmt, GXZFmt16 z_fmt); +void GXSetDither(GXBool enable_dither); +void GXSetDstAlpha(GXBool enable, u8 alpha); +void GXSetFieldMask(GXBool odd_mask, GXBool even_mask); +void GXSetFieldMode(GXBool field_mode, GXBool half_aspect_ratio); + +#ifdef __cplusplus +}; +#endif #endif /* GXPIXEL_H */ diff --git a/include/dolphin/gx/GXStruct.h b/include/dolphin/gx/GXStruct.h index 4d15b6694f8..236a370ca4e 100644 --- a/include/dolphin/gx/GXStruct.h +++ b/include/dolphin/gx/GXStruct.h @@ -34,7 +34,7 @@ typedef struct _GXRenderModeObj { /* 0x32 */ u8 vfilter[7]; } GXRenderModeObj; -STATIC_ASSERT(sizeof(_GXRenderModeObj) == 60); +STATIC_ASSERT(sizeof(GXRenderModeObj) == 60); typedef struct _GXTexObj { /* 0x00 */ u32 texture_filter; @@ -56,7 +56,20 @@ typedef struct _GXTlutObj { } GXTlutObj; typedef struct _GXLightObj { - /* 0x0 */ u32 data[16]; + /* 0x00 */ u8 field_0x0[0xc]; + /* 0x0C */ GXColor color; + /* 0x10 */ f32 a0; + /* 0x14 */ f32 a1; + /* 0x18 */ f32 a2; + /* 0x1C */ f32 k0; + /* 0x20 */ f32 k1; + /* 0x24 */ f32 k2; + /* 0x28 */ f32 posX; + /* 0x2C */ f32 posY; + /* 0x30 */ f32 posZ; + /* 0x34 */ f32 dirX; + /* 0x38 */ f32 dirY; + /* 0x3C */ f32 dirZ; } GXLightObj; typedef struct _GXFogAdjTable { diff --git a/include/dolphin/gx/GXTev.h b/include/dolphin/gx/GXTev.h index 08ce1ee1b88..20da7b3850f 100644 --- a/include/dolphin/gx/GXTev.h +++ b/include/dolphin/gx/GXTev.h @@ -1,6 +1,37 @@ #ifndef GXTEV_H #define GXTEV_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXSetTevOp(GXTevStageID id, GXTevMode mode); +void GXSetTevColorIn(GXTevStageID stage, GXTevColorArg a, GXTevColorArg b, GXTevColorArg c, + GXTevColorArg d); +void GXSetTevAlphaIn(GXTevStageID stage, GXTevAlphaArg a, GXTevAlphaArg b, GXTevAlphaArg c, + GXTevAlphaArg d); +void GXSetTevColorOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, GXBool clamp, + GXTevRegID out_reg); +void GXSetTevAlphaOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, GXBool clamp, + GXTevRegID out_reg); +void GXSetTevColor(GXTevRegID id, GXColor color); +void GXSetTevColorS10(GXTevRegID id, GXColorS10 color); +void GXSetTevKColor(GXTevKColorID id, GXColor color); +void GXSetTevKColorSel(GXTevStageID stage, GXTevKColorSel color_sel); +void GXSetTevKAlphaSel(GXTevStageID stage, GXTevKAlphaSel alpha_sel); +void GXSetTevSwapMode(GXTevStageID stage, GXTevSwapSel ras_sel, GXTevSwapSel tex_sel); +void GXSetTevSwapModeTable(GXTevSwapSel select, GXTevColor r, GXTevColor g, GXTevColor b, + GXTevColor a); +void GXSetAlphaCompare(GXCompare comp0, u8 ref0, GXAlphaOp op, GXCompare comp1, u8 ref1); +void GXSetZTexture(GXZTexOp op, GXTexFmt fmt, u32 bias); +void GXSetTevOrder(GXTevStageID stage, GXTexCoordID coord, GXTexMapID map, GXChannelID color); +void GXSetNumTevStages(u8 num_stages); + +#ifdef __cplusplus +}; +#endif #endif /* GXTEV_H */ diff --git a/include/dolphin/gx/GXTexture.h b/include/dolphin/gx/GXTexture.h index 2f2bbfb6e04..d4d8efdb381 100644 --- a/include/dolphin/gx/GXTexture.h +++ b/include/dolphin/gx/GXTexture.h @@ -1,6 +1,49 @@ #ifndef GXTEXTURE_H #define GXTEXTURE_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXInit.h" + +#ifdef __cplusplus +extern "C" { +#endif + +u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod); +void __GetImageTileCount(); +void GXInitTexObj(GXTexObj* obj, void* image, u16 width, u16 height, GXTexFmt fmt, + GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap); +void GXInitTexObjCI(GXTexObj* obj, void* image, u16 width, u16 height, GXCITexFmt format, + GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap, u32 tlut_name); +void GXInitTexObjLOD(GXTexObj* obj, GXTexFilter min_filter, GXTexFilter max_filter, f32 min_lod, + f32 max_lod, f32 lod_bias, GXBool bias_clamp, GXBool edge_lod, + GXAnisotropy aniso); +u16 GXGetTexObjWidth(GXTexObj* obj); +u16 GXGetTexObjHeight(GXTexObj* obj); +GXTexFmt GXGetTexObjFmt(GXTexObj* obj); +GXTexWrapMode GXGetTexObjWrapS(GXTexObj* obj); +GXTexWrapMode GXGetTexObjWrapT(GXTexObj* obj); +GXBool GXGetTexObjMipMap(GXTexObj* obj); +u32 GXGetTexObjTlut(GXTexObj* obj); +void GXLoadTexObj(GXTexObj* obj, GXTexMapID id); +void GXInitTlutObj(GXTlutObj* obj, void* lut, GXTlutFmt fmt, u16 entry_num); +void GXLoadTlut(GXTlutObj* obj, u32 tlut_name); +void GXInitTexCacheRegion(GXTexRegion* region, GXBool is_32b_mipmap, u32 tmem_even, + GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd); +void GXInitTlutRegion(GXTlutRegion* region, u32 tmem_addr, GXTlutSize tlut_size); +void GXInvalidateTexAll(void); + +GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback); +GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback callback); + +void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 s_scale, u16 t_scale); + +void __SetSURegs(); +void __GXSetSUTexRegs(); +void __GXSetTmemConfig(); + +#ifdef __cplusplus +}; +#endif #endif /* GXTEXTURE_H */ diff --git a/include/dolphin/gx/GXTransform.h b/include/dolphin/gx/GXTransform.h index 5ea01f339bd..66175f257c1 100644 --- a/include/dolphin/gx/GXTransform.h +++ b/include/dolphin/gx/GXTransform.h @@ -1,6 +1,32 @@ #ifndef GXTRANSFORM_H #define GXTRANSFORM_H -#include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/mtx/mtx.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void GXProject(f32 model_x, f32 model_y, f32 model_z, Mtx model_mtx, f32* proj_mtx, f32* viewpoint, + f32* screen_x, f32* screen_y, f32* screen_z); +void GXSetProjection(Mtx44 mtx, GXProjectionType type); +void GXSetProjectionv(f32* p); +void GXGetProjectionv(f32* p); +void GXLoadPosMtxImm(Mtx mtx, u32 id); +void GXLoadNrmMtxImm(Mtx mtx, u32 id); +void GXSetCurrentMtx(u32 id); +void GXLoadTexMtxImm(Mtx mtx, u32 id, GXTexMtxType type); +void GXSetViewport(f32 x_orig, f32 y_orig, f32 width, f32 height, f32 near_z, f32 far_z); +void GXGetViewportv(f32* p); +void GXSetScissor(u32 left, u32 top, u32 width, u32 height); +void GXGetScissor(u32* left, u32* top, u32* width, u32* height); +void GXSetScissorBoxOffset(u32 x_offset, u32 y_offset); +void GXSetClipMode(GXClipMode mode); + +#ifdef __cplusplus +}; +#endif #endif /* GXTRANSFORM_H */ diff --git a/include/dolphin/mtx/mtx.h b/include/dolphin/mtx/mtx.h index 0cf5da75ff7..edd5dab9f60 100644 --- a/include/dolphin/mtx/mtx.h +++ b/include/dolphin/mtx/mtx.h @@ -6,13 +6,16 @@ #include "dolphin/mtx/vec.h" #include "dolphin/types.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef f32 Mtx[3][4]; typedef f32 Mtx33[3][3]; typedef f32 Mtx23[2][3]; typedef f32 (*MtxP)[4]; typedef const f32 (*CMtxP)[4]; // Change name later? -extern "C" { void PSMTXIdentity(Mtx m); void PSMTXCopy(const Mtx src, Mtx dst); void PSMTXConcat(const Mtx a, const Mtx b, Mtx ab); @@ -21,23 +24,20 @@ void PSMTXRotRad(Mtx m, u8 axis, f32 rad); void PSMTXRotTrig(Mtx m, u8 axis, f32 sin, f32 cos); f64 __PSMTXRotAxisRadInternal(f64 param_1, f64 param_2, int param_3, int param_4); void PSMTXRotAxisRad(Mtx m, const Vec* axis, f32 rad); -void PSMTXTrans(Mtx m, f32 x_trans, f32 y_trans, f32 z_trans); +void PSMTXTrans(Mtx m, f32 x, f32 y, f32 z); void PSMTXTransApply(const Mtx src, Mtx dst, f32 x, f32 y, f32 z); -void PSMTXScale(Mtx m, f32 x_scale, f32 y_scale, f32 z_scale); -void PSMTXScaleApply(const Mtx src, Mtx dst, f32 x_scale, f32 y_scale, f32 z_scale); +void PSMTXScale(Mtx m, f32 x, f32 y, f32 z); +void PSMTXScaleApply(const Mtx src, Mtx dst, f32 x, f32 y, f32 z); void PSMTXQuat(Mtx m, const Quaternion* q); -void PSMTXMultVec(const Mtx m, const Vec* src, Vec* dst); -void PSMTXMultVecSR(const Mtx m, const Vec* src, Vec* dst); -void PSMTXMultVec(const Mtx m, const Vec* src, Vec* dst); -void PSMTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count); -void PSMTXMultVecSR(const Mtx m, const Vec* src, Vec* dst); -void PSMTXMultVecArraySR(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count); void C_MTXLookAt(Mtx m, const Vec* camPos, const Vec* camUp, const Vec* target); void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, f32 scale_s, f32 scale_t, f32 trans_s, f32 trans_t); void C_MTXLightOrtho(Mtx m, f32 top, f32 bottom, f32 left, f32 right, f32 scale_s, f32 scale_t, f32 trans_s, f32 trans_t); -} + +#ifdef __cplusplus +}; +#endif #endif /* MTX_H */ diff --git a/include/dolphin/mtx/mtx44.h b/include/dolphin/mtx/mtx44.h index 69e2cc84f78..44ed7c7e220 100644 --- a/include/dolphin/mtx/mtx44.h +++ b/include/dolphin/mtx/mtx44.h @@ -3,11 +3,17 @@ #include "dolphin/types.h" -typedef float Mtx44[4][4]; +typedef f32 Mtx44[4][4]; +#ifdef __cplusplus extern "C" { +#endif + void C_MTXPerspective(Mtx44 m, f32 fovy, f32 aspect, f32 near, f32 far); void C_MTXOrtho(Mtx44 m, f32 top, f32 bottom, f32 left, f32 right, f32 near, f32 far); -} + +#ifdef __cplusplus +}; +#endif #endif /* MTX44_H */ diff --git a/include/dolphin/mtx/mtxvec.h b/include/dolphin/mtx/mtxvec.h index 171add0e61c..add098aac38 100644 --- a/include/dolphin/mtx/mtxvec.h +++ b/include/dolphin/mtx/mtxvec.h @@ -2,14 +2,18 @@ #define MTXVEC_H #include "dolphin/mtx/mtx.h" -#include "dolphin/mtx/vec.h" -#include "dolphin/types.h" +#ifdef __cplusplus extern "C" { -void PSMTXMultVec(const Mtx matrix, const Vec* src, Vec* dst); -void PSMTXMultVecArray(const Mtx matrix, const Vec* src, Vec* dst, u32 count); -void PSMTXMultVecSR(const Mtx matrix, const Vec* src, Vec* dst); -void PSMTXMultVecArraySR(const Mtx matrix, const Vec* src, Vec* dst, u32 count); -} +#endif + +void PSMTXMultVec(const Mtx m, const Vec* src, Vec* dst); +void PSMTXMultVecSR(const Mtx m, const Vec* src, Vec* dst); +void PSMTXMultVecArray(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count); +void PSMTXMultVecArraySR(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 count); + +#ifdef __cplusplus +}; +#endif #endif /* MTXVEC_H */ diff --git a/include/dolphin/mtx/quat.h b/include/dolphin/mtx/quat.h index 832c04eef11..42477bb63e4 100644 --- a/include/dolphin/mtx/quat.h +++ b/include/dolphin/mtx/quat.h @@ -2,16 +2,21 @@ #define QUAT_H #include "dolphin/mtx/vec.h" -#include "dolphin/types.h" - -struct Quaternion { - f32 x, y, z, w; -}; +#ifdef __cplusplus extern "C" { -void PSQUATMultiply(const Quaternion* src_a, const Quaternion* src_b, Quaternion* dst); +#endif + +typedef struct Quaternion { + f32 x, y, z, w; +} Quaternion; + +void PSQUATMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab); void C_QUATRotAxisRad(Quaternion* q, const Vec* axis, f32 rad); void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t); -} + +#ifdef __cplusplus +}; +#endif #endif /* QUAT_H */ diff --git a/include/dolphin/mtx/vec.h b/include/dolphin/mtx/vec.h index d52c79d4501..29b3961af78 100644 --- a/include/dolphin/mtx/vec.h +++ b/include/dolphin/mtx/vec.h @@ -3,47 +3,22 @@ #include "dolphin/types.h" -struct Vec { +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Vec { f32 x, y, z; - f32 GetX() const { return x; } - f32 GetY() const { return y; } - f32 GetZ() const { return z; } - f32 getXDiff(const Vec* other) const { return x - other->x; } - f32 getYDiff(const Vec* other) const { return y - other->y; } - f32 getZDiff(const Vec* other) const { return z - other->z; } - void set(f32 pX, f32 pY, f32 pZ) { - x = pX; - y = pY; - z = pZ; - } - void set(const Vec& other) { - x = other.x; - y = other.y; - z = other.z; - } -}; +} Vec; typedef Vec* VecPtr; typedef Vec Point3d; typedef Vec* Point3dPtr; -struct SVec { +typedef struct SVec { s16 x, y, z; +} SVec; - void set(s16 oX, s16 oY, s16 oZ) { - x = oX; - y = oY; - z = oZ; - } - - void setall(s16 val) { - x = val; - y = val; - z = val; - } -}; - -extern "C" { void PSVECAdd(const Vec* a, const Vec* b, Vec* ab); void PSVECSubtract(const Vec* a, const Vec* b, Vec* a_b); void PSVECScale(const Vec* src, Vec* dst, f32 scale); @@ -57,6 +32,9 @@ f32 PSVECDistance(const Vec* a, const Vec* b); void C_VECHalfAngle(const Vec* a, const Vec* b, Vec* half); void C_VECReflect(const Vec* src, const Vec* normal, Vec* dst); -} + +#ifdef __cplusplus +}; +#endif #endif /* VEC_H */ diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index 84c3e635221..d3516b8c06a 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -2,6 +2,8 @@ #define OS_H_ #include "Runtime.PPCEABI.H/__va_arg.h" +#include "dolphin/dvd/dvd.h" + #include "dolphin/os/OSAlarm.h" #include "dolphin/os/OSAlloc.h" #include "dolphin/os/OSArena.h" @@ -35,6 +37,20 @@ extern "C" { #define OS_MESSAGE_NON_BLOCKING 0 #define OS_MESSAGE_BLOCKING 1 +volatile u16 __OSDeviceCode : 0x800030E6; + +volatile u32 OS_PI_INTR_CAUSE : 0xCC003000; +volatile u32 OS_PI_INTR_MASK : 0xCC003004; + +volatile u16 OS_MI_INTR_MASK : 0xCC00401C; + +volatile u16 OS_DSP_DMA_ADDR_HI : 0xCC005030; +volatile u16 OS_DSP_DMA_ADDR_LO : 0xCC005032; +volatile u16 OS_DSP_INTR_MASK : 0xCC00500A; + +volatile u16 OS_ARAM_DMA_ADDR_HI : 0xCC005020; +volatile u16 OS_ARAM_DMA_ADDR_LO : 0xCC005022; + BOOL OSIsThreadSuspended(OSThread* thread); u32 OSGetConsoleType(void); @@ -58,20 +74,20 @@ void OSReportInit__Fv(void); // needed for inline asm u8* OSGetStackPointer(void); void __OSFPRInit(void); -static void InquiryCallback(u32 param_0, void* param_1); +static void InquiryCallback(u32 param_0, DVDCommandBlock* param_1); void OSInit(void); static void OSExceptionInit(void); void __OSDBIntegrator(void); void __OSDBJump(void); typedef void (*OSExceptionHandler)(OSException, OSContext*); -OSExceptionHandler __OSSetExceptionHandler(OSException exception, OSExceptionHandler handler); -OSExceptionHandler __OSGetExceptionHandler(OSException exception); +OSExceptionHandler __OSSetExceptionHandler(__OSException exception, OSExceptionHandler handler); +OSExceptionHandler __OSGetExceptionHandler(__OSException exception); static void OSExceptionVector(void); void __DBVECTOR(); void __OSEVSetNumber(); void __OSEVEnd(); -static void OSDefaultExceptionHandler(OSException exception, OSContext* context); +static void OSDefaultExceptionHandler(__OSException exception, OSContext* context); void __OSPSInit(void); void __OSGetDIConfig(void); void OSRegisterVersion(char* version); @@ -132,7 +148,17 @@ inline void i_OSInitFastCast(void) { // clang-format on } -#include "dolphin/dvd/dvd.h" +typedef struct OSBootInfo { + /* 0x00 */ DVDDiskID disk_info; + /* 0x20 */ u32 boot_code; + /* 0x24 */ u32 version; + /* 0x28 */ u32 memory_size; + /* 0x2C */ u32 console_type; + /* 0x30 */ void* arena_lo; + /* 0x34 */ void* arena_hi; + /* 0x38 */ void* fst_location; + /* 0x3C */ u32 fst_max_length; +} OSBootInfo; struct GLOBAL_MEMORY { DVDDiskID disk; diff --git a/include/dolphin/os/OSAlarm.h b/include/dolphin/os/OSAlarm.h index 536931baa85..56cf7975def 100644 --- a/include/dolphin/os/OSAlarm.h +++ b/include/dolphin/os/OSAlarm.h @@ -1,7 +1,6 @@ #ifndef OSALARM_H #define OSALARM_H -#include "dolphin/types.h" #include "dolphin/os/OSTime.h" #include "dolphin/os/OSError.h" @@ -14,7 +13,8 @@ typedef struct OSAlarmLink { /* 0x4 */ struct OSAlarm* next; } OSAlarmLink; -typedef void (*OSAlarmHandler)(struct OSAlarm* alarm, struct OSContext* context); +typedef struct OSAlarm; +typedef void (*OSAlarmHandler)(struct OSAlarm* alarm, OSContext* context); typedef struct OSAlarm { /* 0x00 */ OSAlarmHandler handler; @@ -31,8 +31,8 @@ static void InsertAlarm(OSAlarm* alarm, s64 time, OSAlarmHandler* handler); void OSSetAlarm(OSAlarm* alarm, s64 time, OSAlarmHandler* handler); void OSSetPeriodicAlarm(OSAlarm* alarm, s64 start, s64 period, OSAlarmHandler* handler); void OSCancelAlarm(OSAlarm* alarm); -static void DecrementerExceptionCallback(OSException* exception, struct OSContext* context); -static void DecrementerExceptionHandler(OSException* exception, struct OSContext* context); +static void DecrementerExceptionCallback(__OSException exception, OSContext* context); +static void DecrementerExceptionHandler(__OSException exception, OSContext* context); static s32 OnReset(s32 param_0); #ifdef __cplusplus diff --git a/include/dolphin/os/OSAlloc.h b/include/dolphin/os/OSAlloc.h index b5af8dbf2a2..5a5ff4c3f59 100644 --- a/include/dolphin/os/OSAlloc.h +++ b/include/dolphin/os/OSAlloc.h @@ -7,11 +7,34 @@ extern "C" { #endif +typedef struct OSHeapDescriptor { + /* 0x0 */ s32 size; + /* 0x4 */ struct OSHeapCell* freeList; + /* 0x8 */ struct OSHeapCell* usedList; +} OSHeapDescriptor; + +typedef struct OSHeapCell { + /* 0x00 */ struct OSHeapCell* prev; + /* 0x04 */ struct OSHeapCell* next; + /* 0x08 */ s32 size; + /* 0x0C */ struct OSHeapDescriptor* hd; + /* 0x10 */ s32 usedSize; + /* 0x14 */ char field_0x14[0x20 - 0x14]; +} OSHeapCell; + typedef u32 OSHeapHandle; -static void* DLInsert(void* param_0, void* param_1); -void OSFreeToHeap(OSHeapHandle heap, void* ptr); -void OSSetCurrentHeap(OSHeapHandle heap); +extern volatile s32 __OSCurrHeap; + +#define OSRoundUp(x, align) (((x) + (align)-1) & (-(align))) +#define OSRoundUpPtr(x, align) ((void*)((((u32)(x)) + (align)-1) & (~((align)-1)))) + +#define OSRoundDown(x, align) ((x) & (-(align))) +#define OSRoundDownPtr(x, align) ((void*)(((u32)(x)) & (~((align)-1)))) + +static OSHeapCell* DLInsert(OSHeapCell* list, OSHeapCell* child); +void OSFreeToHeap(OSHeapHandle handle, void* ptr); +s32 OSSetCurrentHeap(OSHeapHandle handle); void* OSInitAlloc(void* lo, void* hi, s32 maxHeaps); OSHeapHandle OSCreateHeap(void* start, void* end); diff --git a/include/dolphin/os/OSContext.h b/include/dolphin/os/OSContext.h index 0de4725bde5..7a22d6b231b 100644 --- a/include/dolphin/os/OSContext.h +++ b/include/dolphin/os/OSContext.h @@ -7,8 +7,6 @@ extern "C" { #endif -typedef void (*OSSwitchThreadCallback)(struct OSThread* from, struct OSThread* to); - typedef struct OSContext { /* 0x000 */ u32 gpr[32]; /* 0x080 */ u32 cr; @@ -16,7 +14,7 @@ typedef struct OSContext { /* 0x088 */ u32 ctr; /* 0x08C */ u32 xer; /* 0x090 */ f64 fpr[32]; - /* 0x190 */ u32 padding_1; + /* 0x190 */ u32 field_0x190; /* 0x194 */ u32 fpscr; /* 0x198 */ u32 srr0; /* 0x19C */ u32 srr1; @@ -26,8 +24,11 @@ typedef struct OSContext { /* 0x1C4 */ f64 ps[32]; } OSContext; +OSContext* OS_CURRENT_CONTEXT : 0x800000D4; +OSContext* OS_CURRENT_FPU_CONTEXT : 0x800000D8; + void __OSLoadFPUContext(void); -void __OSSaveFPUContext(OSContext* context); +void __OSSaveFPUContext(s32 unused0, s32 unused1, OSContext* context); void OSSaveFPUContext(OSContext* context); void OSSetCurrentContext(OSContext* context); OSContext* OSGetCurrentContext(void); @@ -36,7 +37,7 @@ void OSLoadContext(OSContext* context); void OSClearContext(OSContext* context); void OSInitContext(OSContext* context, u32 pc, u32 lr); void OSDumpContext(OSContext* context); -static void OSSwitchFPUContext(OSContext* context); +static void OSSwitchFPUContext(u8 err, OSContext* context); void __OSContextInit(void); void OSFillFPUContext(OSContext* context); diff --git a/include/dolphin/os/OSError.h b/include/dolphin/os/OSError.h index 7333e207a4e..6f5b41f57d1 100644 --- a/include/dolphin/os/OSError.h +++ b/include/dolphin/os/OSError.h @@ -1,18 +1,14 @@ #ifndef OSERROR_H #define OSERROR_H -#include "dolphin/types.h" +#include "dolphin/os/OSContext.h" #ifdef __cplusplus extern "C" { #endif -struct OSContext; - extern u32 __OSFpscrEnableBits; - typedef u16 OSError; -typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32); #define OS_ERROR_SYSTEM_RESET 0 #define OS_ERROR_MACHINE_CHECK 1 @@ -32,7 +28,7 @@ typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32); #define OS_ERROR_MEMORY_PROTECTION 15 #define OS_ERROR_FLOATING_POINT_EXCEPTION 16 -typedef enum OSException { +typedef enum { EXCEPTION_SYSTEM_RESET, EXCEPTION_MACHINE_CHECK, EXCEPTION_DSI, @@ -52,6 +48,10 @@ typedef enum OSException { EXCEPTION_FLOATING_POINT_EXCEPTION, } OSException; +typedef u8 __OSException; + +typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32); + OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler); void __OSUnhandledException(OSException exception, OSContext* context, u32 dsisr, u32 dar); diff --git a/include/dolphin/os/OSInterrupt.h b/include/dolphin/os/OSInterrupt.h index 130ed6255d4..ac5ccf97796 100644 --- a/include/dolphin/os/OSInterrupt.h +++ b/include/dolphin/os/OSInterrupt.h @@ -1,15 +1,52 @@ #ifndef OSINTERRUPT_H #define OSINTERRUPT_H -#include "dolphin/types.h" +#include "dolphin/os/OSContext.h" #ifdef __cplusplus extern "C" { #endif +typedef enum { + OS_INTR_MEM_0, + OS_INTR_MEM_1, + OS_INTR_MEM_2, + OS_INTR_MEM_3, + OS_INTR_MEM_ADDRESS, + OS_INTR_DSP_AI, + OS_INTR_DSP_ARAM, + OS_INTR_DSP_DSP, + OS_INTR_AI_AI, + OS_INTR_EXI_0_EXI, + OS_INTR_EXI_0_TC, + OS_INTR_EXI_0_EXT, + OS_INTR_EXI_1_EXI, + OS_INTR_EXI_1_TC, + OS_INTR_EXI_1_EXT, + OS_INTR_EXI_2_EXI, + OS_INTR_EXI_2_TC, + OS_INTR_PI_CP, + OS_INTR_PI_PE_TOKEN, + OS_INTR_PI_PE_FINISH, + OS_INTR_PI_SI, + OS_INTR_PI_DI, + OS_INTR_PI_RSW, + OS_INTR_PI_ERROR, + OS_INTR_PI_VI, + OS_INTR_PI_DEBUG, + OS_INTR_PI_HSP, + OS_INTR_PI_ACR, + OS_INTR_28, + OS_INTR_29, + OS_INTR_30, + OS_INTR_31, + + OS_INTR_MAX +} OSInterruptType; + typedef s16 OSInterrupt; typedef u32 OSInterruptMask; -typedef void (*OSInterruptHandler)(OSInterrupt interrupt, struct OSContext* context); +typedef void (*OSInterruptHandler)(OSInterrupt interrupt, OSContext* context); BOOL OSDisableInterrupts(void); void __RAS_OSDisableInterrupts_end(void); @@ -21,8 +58,11 @@ void __OSInterruptInit(void); static OSInterruptMask SetInterruptMask(OSInterruptMask param_0, OSInterruptMask param_1); OSInterruptMask __OSMaskInterrupts(OSInterruptMask mask); OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask mask); -void __OSDispatchInterrupt(OSInterrupt interrupt, struct OSContext* context); -static void ExternalInterruptHandler(OSInterrupt interrupt, struct OSContext* context); +void __OSDispatchInterrupt(OSInterrupt interrupt, OSContext* context); +static void ExternalInterruptHandler(OSInterrupt interrupt, OSContext* context); + +void __RAS_OSDisableInterrupts_begin(void); +void __RAS_OSDisableInterrupts_end(void); #ifdef __cplusplus }; diff --git a/include/dolphin/os/OSLink.h b/include/dolphin/os/OSLink.h index 454e6d04f81..06f1bb3015a 100644 --- a/include/dolphin/os/OSLink.h +++ b/include/dolphin/os/OSLink.h @@ -7,6 +7,14 @@ extern "C" { #endif +typedef struct OSModuleQueue { + int* first; + int* last; +} OSModuleQueue; + +OSModuleQueue __OSModuleList : 0x800030C8; +void* __OSStringTable : 0x800030D0; + typedef struct OSSectionInfo { u32 mOffset; u32 mSize; diff --git a/include/dolphin/os/OSMemory.h b/include/dolphin/os/OSMemory.h index e91de889485..7a1be5185c8 100644 --- a/include/dolphin/os/OSMemory.h +++ b/include/dolphin/os/OSMemory.h @@ -13,7 +13,7 @@ static void MEMIntrruptHandler(OSInterrupt interrupt, struct OSContext* context) void OSProtectRange(u32 channel, void* address, u32 nBytes, u32 control); static void Config24MB(void); static void Config48MB(void); -static void RealMode(void); +static void RealMode(void* config); void __OSInitMemoryProtection(void); #ifdef __cplusplus diff --git a/include/dolphin/os/OSMessage.h b/include/dolphin/os/OSMessage.h index d8a42deedad..d4ab6b36013 100644 --- a/include/dolphin/os/OSMessage.h +++ b/include/dolphin/os/OSMessage.h @@ -1,7 +1,6 @@ #ifndef OSMESSAGE_H #define OSMESSAGE_H -#include "dolphin/types.h" #include "dolphin/os/OSThread.h" #ifdef __cplusplus diff --git a/include/dolphin/os/OSMutex.h b/include/dolphin/os/OSMutex.h index 81d2c754351..a3815e294a2 100644 --- a/include/dolphin/os/OSMutex.h +++ b/include/dolphin/os/OSMutex.h @@ -1,24 +1,30 @@ #ifndef OSMUTEX_H #define OSMUTEX_H -#include "dolphin/types.h" #include "dolphin/os/OSThread.h" #ifdef __cplusplus extern "C" { #endif -void OSInitMutex(struct OSMutex* mutex); -void OSLockMutex(struct OSMutex* mutex); -void OSUnlockMutex(struct OSMutex* mutex); -void __OSUnlockAllMutex(struct OSThread* thread); -s32 OSTryLockMutex(struct OSMutex* mutex); -void OSInitCond(struct OSCond* cond); -void OSWaitCond(struct OSCond* cond, struct OSMutex* mutex); -void OSSignalCond(struct OSCond* cond); -s32 __OSCheckMutex(struct OSThread* thread); -BOOL __OSCheckDeadLock(struct OSThread* thread); -BOOL __OSCheckMutexes(struct OSThread* thread); +typedef struct OSMutex { + /* 0x00 */ OSThreadQueue queue; + /* 0x08 */ OSThread* thread; + /* 0x0C */ s32 count; + /* 0x10 */ OSMutexLink link; +} OSMutex; // Size: 0x18 + +void OSInitMutex(OSMutex* mutex); +void OSLockMutex(OSMutex* mutex); +void OSUnlockMutex(OSMutex* mutex); +void __OSUnlockAllMutex(OSThread* thread); +s32 OSTryLockMutex(OSMutex* mutex); +void OSInitCond(OSCond* cond); +void OSWaitCond(OSCond* cond, OSMutex* mutex); +void OSSignalCond(OSCond* cond); +s32 __OSCheckMutex(OSThread* thread); +BOOL __OSCheckDeadLock(OSThread* thread); +BOOL __OSCheckMutexes(OSThread* thread); #ifdef __cplusplus }; diff --git a/include/dolphin/os/OSReboot.h b/include/dolphin/os/OSReboot.h index 4b9438a1acf..4c9be11c434 100644 --- a/include/dolphin/os/OSReboot.h +++ b/include/dolphin/os/OSReboot.h @@ -9,7 +9,7 @@ extern "C" { void __OSReboot(u32 param_0, u32 param_1); void OSSetSaveRegion(void* start, void* end); -void OSGetSaveRegion(void* start, void* end); +void OSGetSaveRegion(void** start, void** end); #ifdef __cplusplus }; diff --git a/include/dolphin/os/OSSync.h b/include/dolphin/os/OSSync.h index d7fcc930f50..880f44dd901 100644 --- a/include/dolphin/os/OSSync.h +++ b/include/dolphin/os/OSSync.h @@ -10,6 +10,8 @@ extern "C" { static void SystemCallVector(void); void __OSInitSystemCall(void); +void __OSSystemCallVectorEnd(void); + #ifdef __cplusplus }; #endif diff --git a/include/dolphin/os/OSThread.h b/include/dolphin/os/OSThread.h index 0776ded1c1a..5b77de94122 100644 --- a/include/dolphin/os/OSThread.h +++ b/include/dolphin/os/OSThread.h @@ -1,8 +1,6 @@ #ifndef OSTHREAD_H #define OSTHREAD_H -#include "dolphin/types.h" -#include "dolphin/os/OSMutex.h" #include "dolphin/os/OSContext.h" #ifdef __cplusplus @@ -16,24 +14,6 @@ typedef u16 OSThreadState; #define OS_THREAD_STATE_WAITING 4 #define OS_THREAD_STATE_DEAD 8 -typedef struct OSMutexLink { - struct OSMutex* prev; - struct OSMutex* next; -} OSMutexLink; - -typedef struct OSMutexQueue { - struct OSMutex* prev; - struct OSMutex* next; -} OSMutexQueue; - -typedef struct OSMutex { - /* 0x00 */ //OSThreadQueue queue; - /* 0x08 */ //OSThread* thread; - /* 0x0C */ //s32 count; - /* 0x10 */ //OSMutexLink link; - u8 unk[24]; -} OSMutex; // Size: 0x18 - typedef struct OSThreadLink { struct OSThread* prev; struct OSThread* next; @@ -44,32 +24,45 @@ typedef struct OSThreadQueue { /* 0x4 */ struct OSThread* tail; } OSThreadQueue; +typedef struct OSMutexLink { + struct OSMutex* prev; + struct OSMutex* next; +} OSMutexLink; + +typedef struct OSMutexQueue { + struct OSMutex* prev; + struct OSMutex* next; +} OSMutexQueue; + typedef struct OSCond { - struct OSThreadQueue queue; + OSThreadQueue queue; } OSCond; -typedef void (*OSSwitchThreadCallback)(struct OSThread* from, struct OSThread* to); - typedef struct OSThread { - struct OSContext context; + OSContext context; OSThreadState state; u16 attributes; s32 suspend_count; - u32 effective_priority; + s32 effective_priority; u32 base_priority; void* exit_value; - struct OSThreadQueue* queue; - struct OSThreadLink link; - struct OSThreadQueue join_queue; + OSThreadQueue* queue; + OSThreadLink link; + OSThreadQueue join_queue; struct OSMutex* mutex; OSMutexQueue owned_mutexes; - struct OSThreadLink active_threads_link; + OSThreadLink active_threads_link; u8* stack_base; u8* stack_end; u8* error_code; void* data[2]; } OSThread; +typedef void (*OSSwitchThreadCallback)(OSThread* from, OSThread* to); + +OSThreadQueue OS_THREAD_QUEUE : 0x800000DC; +OSThread* OS_CURRENT_THREAD : 0x800000E4; + static void DefaultSwitchThreadCallback(OSThread* from, OSThread* to); OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback func); void __OSThreadInit(void); diff --git a/include/dolphin/os/OSTime.h b/include/dolphin/os/OSTime.h index ea432f587f8..38470ad7813 100644 --- a/include/dolphin/os/OSTime.h +++ b/include/dolphin/os/OSTime.h @@ -10,6 +10,8 @@ extern "C" { typedef s64 OSTime; typedef u32 OSTick; +OSTime OS_SYSTEM_TIME : 0x800030D8; + typedef struct OSCalendarTime { /* 0x00 */ s32 seconds; /* 0x04 */ s32 minutes; diff --git a/include/dolphin/pad/Pad.h b/include/dolphin/pad/Pad.h index db289f71020..984b69b2f6a 100644 --- a/include/dolphin/pad/Pad.h +++ b/include/dolphin/pad/Pad.h @@ -3,12 +3,11 @@ #include "dolphin/types.h" -typedef enum PADMask { - // PAD_CHAN3_BIT = (1 << 0), - // PAD_CHAN2_BIT = (1 << 1), - // PAD_CHAN1_BIT = (1 << 2), - // PAD_CHAN0_BIT = (1 << 3), +#ifdef __cplusplus +extern "C" { +#endif +typedef enum PADMask { PAD_CHAN3_BIT = (1 << 28), PAD_CHAN2_BIT = (1 << 29), PAD_CHAN1_BIT = (1 << 30), @@ -28,16 +27,18 @@ typedef struct PADStatus { /* 0xA */ s8 error; } PADStatus; -extern "C" { u32 PADInit(void); void PADSetAnalogMode(u32 mode); void PADSetSpec(int spec); -s32 PADReset(PADMask mask); +BOOL PADReset(u32 mask); void PADClampCircle(PADStatus* status); void PADClamp(PADStatus* status); -u32 PADRead(PADStatus* status); +void PADRead(PADStatus* status); void PADControlMotor(s32 channel, u32 command); -s32 PADRecalibrate(PADMask mask); -} +BOOL PADRecalibrate(u32 mask); + +#ifdef __cplusplus +}; +#endif #endif /* PAD_H */ diff --git a/include/dolphin/vi/vi.h b/include/dolphin/vi/vi.h index 350f64483d6..e3eb7c8902a 100644 --- a/include/dolphin/vi/vi.h +++ b/include/dolphin/vi/vi.h @@ -4,18 +4,26 @@ #include "dolphin/gx/GX.h" #include "dolphin/types.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef void (*VIRetraceCallback)(u32); -extern "C" void VIWaitForRetrace(void); -extern "C" void VISetNextFrameBuffer(void*); -extern "C" VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); -extern "C" VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); -extern "C" void VIInit(); -extern "C" void VIConfigure(GXRenderModeObj*); -extern "C" void VIFlush(); -extern "C" void* VIGetNextFrameBuffer(); -extern "C" void* VIGetCurrentFrameBuffer(); -extern "C" void VISetBlack(BOOL); -extern "C" u32 VIGetRetraceCount(); +void VIWaitForRetrace(void); +void VISetNextFrameBuffer(void*); +VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); +VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); +void VIInit(); +void VIConfigure(GXRenderModeObj*); +void VIFlush(); +void* VIGetNextFrameBuffer(); +void* VIGetCurrentFrameBuffer(); +void VISetBlack(BOOL); +u32 VIGetRetraceCount(); + +#ifdef __cplusplus +}; +#endif #endif /* VI_H */ diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 0fd60a1a982..828081077a9 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -412,6 +412,7 @@ s32 fopAcM_orderTreasureEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); void* fopAcM_getTalkEventPartner(const fopAc_ac_c*); void* fopAcM_getItemEventPartner(const fopAc_ac_c*); void* fopAcM_getEventPartner(const fopAc_ac_c*); +static void fopAcM_onSwitch(fopAc_ac_c const* param_0, int param_1); s32 fopAcM_createItemForPresentDemo(cXyz const* p_pos, int i_itemNo, u8 param_2, int i_itemBitNo, int i_roomNo, csXyz const* p_angle, cXyz const* p_scale); @@ -459,7 +460,7 @@ void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const s32 fopAcM_createBokkuri(u16, const cXyz*, int, int, int, const cXyz*, int, int); s32 fopAcM_createWarpHole(const cXyz*, const csXyz*, int, u8, u8, u8); -void fopAcM_myRoomSearchEnemy(s8 roomNo); +fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 roomNo); s32 fopAcM_createDisappear(const fopAc_ac_c*, const cXyz*, u8, u8, u8); void fopAcM_setCarryNow(fopAc_ac_c*, int); diff --git a/include/global.h b/include/global.h index fb785659817..8f0e1a3a788 100644 --- a/include/global.h +++ b/include/global.h @@ -31,11 +31,6 @@ #define STATIC_ASSERT(...) #endif -struct JUTWarn { - JUTWarn& operator<<(const char*) { return *this; } - JUTWarn& operator<<(long) { return *this; } -}; - // hack to make functions that return comparisons as int match extern int __cntlzw(unsigned int); inline BOOL checkEqual(s32 a, s32 b) { diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 8e2f27af0e5..f205d388d14 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -42,6 +42,9 @@ void mDoAud_resetProcess(); bool mDoAud_resetRecover(); void mDoAud_setSceneName(char const* spot, s32 room, s32 layer); s32 mDoAud_load1stDynamicWave(); +static void mDoAud_setLinkGroupInfo(u8 param_0); +static void mDoAud_setLinkHp(s32 param_0, s32 param_1); +static void mDoAud_seStartLevel(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3); inline void mDoAud_bgmSetSwordUsing(s32 id) { Z2AudioMgr::getInterface()->mSeqMgr.bgmSetSwordUsing(id); @@ -51,6 +54,10 @@ inline void mDoAud_bgmStart(u32 i_bgmID) { Z2AudioMgr::getInterface()->mSeqMgr.bgmStart(i_bgmID, 0, 0); } +inline void mDoAud_subBgmStart(u32 i_bgmID) { + Z2AudioMgr::getInterface()->mSeqMgr.subBgmStart(i_bgmID); +} + inline void mDoAud_bgmNowBattle(f32 param_0) { Z2AudioMgr::getInterface()->mSeqMgr.bgmNowBattle(param_0); } diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 7af5266ac03..550109b9c20 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -168,6 +168,8 @@ public: /* 8000DA08 */ int init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i_anmPlay, int i_attribute, f32 i_rate, s16 i_start, s16 param_6); + J3DAnmCluster* getBlkAnm() { return mpAnm; } + private: /* 0x14 */ J3DAnmCluster* mpAnm; }; @@ -381,7 +383,7 @@ struct mDoExt_MtxCalcAnmBlendTblOld }; // Size: 0xC struct mDoExt_MtxCalcAnmBlendTbl : public mDoExt_MtxCalcAnmBlendTblOld { - /* 800D00BC */ void getAnm(int); + /* 800D00BC */ J3DAnmTransform* getAnm(int); /* 80014F3C */ virtual ~mDoExt_MtxCalcAnmBlendTbl(); /* 8000F26C */ virtual void calc(); diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index a4a5e1b8c0a..1f9d82853c4 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -4,6 +4,7 @@ #include "SSystem/SComponent/c_sxyz.h" #include "SSystem/SComponent/c_xyz.h" #include "dolphin/mtx/mtx.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/mtx/quat.h" #include "dolphin/types.h" diff --git a/include/rel/d/a/d_a_alldie/d_a_alldie.h b/include/rel/d/a/d_a_alldie/d_a_alldie.h index 9e194ee137a..37bbe764a94 100644 --- a/include/rel/d/a/d_a_alldie/d_a_alldie.h +++ b/include/rel/d/a/d_a_alldie/d_a_alldie.h @@ -1,6 +1,36 @@ #ifndef D_A_ALLDIE_H #define D_A_ALLDIE_H -#include "dolphin/types.h" +#include "f_op/f_op_actor.h" + +class daAlldie_c : public fopAc_ac_c { +public: + enum EAction { + /* 0x0 */ ACT_WAIT, + /* 0x1 */ ACT_CHECK, + /* 0x2 */ ACT_TIMER, + /* 0x3 */ ACT_ORDER, + /* 0x4 */ ACT_NEXT, + /* 0x5 */ ACT_EVENT, + }; + + /* 804D5818 */ u8 getEventNo(); + /* 804D5824 */ u8 getSwbit(); + /* 804D5830 */ int actionWait(); + /* 804D5838 */ int actionCheck(); + /* 804D5888 */ int actionTimer(); + /* 804D5938 */ int actionOrder(); + /* 804D59A0 */ int actionEvent(); + /* 804D5A44 */ int actionNext(); + /* 804D5B10 */ int execute(); + + inline int create(); + + /* 0x568 */ u8 mAction; + /* 0x56A */ s16 mTimer; + /* 0x56C */ s16 mEventIdx; + /* 0x56E */ s16 mNextEventIdx; + /* 0x570 */ s16 mMapToolID; +}; // Size: 0x574 #endif /* D_A_ALLDIE_H */ diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h index fc9d8433aff..b109ebe2f7c 100644 --- a/include/rel/d/a/d_a_horse/d_a_horse.h +++ b/include/rel/d/a/d_a_horse/d_a_horse.h @@ -149,7 +149,7 @@ public: /* 80844CB0 */ daHorse_c(); bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; } - bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; } + bool checkResetStateFlg0(daHorse_RFLG0 flag) const { return mResetStateFlg0 & flag; } bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; } bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; } f32 getNormalMaxSpeedF() { return mNormalMaxSpeedF; } @@ -157,6 +157,10 @@ public: void setDemoStickR(f32 stick) { mDemoStickR = stick; } void i_changeDemoMode(u32 param_0, int param_1) { field_0x1740 = param_0; field_0x1728 = param_1; } void i_changeOriginalDemo() { field_0x16b8 = 3; field_0x1728 = 0; } + void i_setHorsePosAndAngle(cXyz const* i_pos, s16 i_angle) { (this->*mpSetHorsePosAngleFn)(i_pos, i_angle); } + + bool checkTurnStandCamera() const { return checkResetStateFlg0(TURN_STAND_CAMERA); } + bool checkTurnStand() const { return checkResetStateFlg0(TURN_STAND); } static u8 const m_footJointTable[8]; static f32 const m_callLimitDistance2; @@ -220,6 +224,15 @@ public: /* 0x1790 */ f32 mLashMaxSpeedF; /* 0x1794 */ u8 field_0x1794[0x30]; /* 0x17C4 */ cXyz mDemoPos0; + /* 0x17D0 */ u8 field_0x17d0[0x18A4 - 0x17D0]; + /* 0x18A4 */ int (daHorse_c::*mpProcFn)(); + /* 0x18A4 */ int (daHorse_c::*mpCheckSpecialWallHitFn)(const cXyz&); + /* 0x18A4 */ void (daHorse_c::*mpSetReinPosHandFn)(int); + /* 0x18A4 */ void (daHorse_c::*mpSetReinPosNormalFn)(); + /* 0x18A4 */ int (daHorse_c::*mpCallHorseFn)(const cXyz*); + /* 0x18A4 */ int (daHorse_c::*mpSetHorsePosAngleFn)(const cXyz* i_pos, s16 i_angle); + /* 0x18A4 */ void (daHorse_c::*mpOnRideFlgFn)(); + /* 0x18A4 */ void (daHorse_c::*mpOffRideFlgFn)(); }; #endif /* D_A_HORSE_H */ diff --git a/include/rel/d/a/d_a_tboxSw/d_a_tboxSw.h b/include/rel/d/a/d_a_tboxSw/d_a_tboxSw.h index 21506b62d51..d3a0c3cbd11 100644 --- a/include/rel/d/a/d_a_tboxSw/d_a_tboxSw.h +++ b/include/rel/d/a/d_a_tboxSw/d_a_tboxSw.h @@ -1,6 +1,20 @@ #ifndef D_A_TBOXSW_H #define D_A_TBOXSW_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daTboxSw_c : public fopAc_ac_c { +public: + /* 80D66858 */ int Create(); + /* 80D66860 */ int create(); + /* 80D668C8 */ int execute(); + /* 80D66938 */ int draw(); + /* 80D66940 */ int _delete(); +}; + +namespace daTboxSw_prm { + inline u8 getTboxNo(daTboxSw_c* p_tbox) { return fopAcM_GetParam(p_tbox) & 0x3F; } + inline u8 getSwNo(daTboxSw_c* p_tbox) { return fopAcM_GetParam(p_tbox) >> 8; } +}; #endif /* D_A_TBOXSW_H */ diff --git a/include/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h b/include/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h index 0be29bb18cf..84b6ffaa309 100644 --- a/include/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h +++ b/include/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h @@ -1,6 +1,17 @@ #ifndef D_A_KYTAG14_H #define D_A_KYTAG14_H -#include "dolphin/types.h" +#include "f_op/f_op_actor.h" + +class kytag14_class : public fopAc_ac_c { +public: + /* 0x568 */ s8 mSaveRoomNo; + /* 0x569 */ u8 mSavePoint; + /* 0x56A */ u16 mEventID1; + /* 0x56C */ u16 mEventID2; + /* 0x56E */ u8 mSwitchNo1; + /* 0x56F */ u8 mSwitchNo2; +}; + #endif /* D_A_KYTAG14_H */ diff --git a/include/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h b/include/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h index e698f6908ab..6600a090b53 100644 --- a/include/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h +++ b/include/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h @@ -1,6 +1,18 @@ #ifndef D_A_TAG_GSTART_H #define D_A_TAG_GSTART_H -#include "dolphin/types.h" +#include "f_op/f_op_actor.h" + +class daTagGstart_c : public fopAc_ac_c { +public: + /* 805A3478 */ int create(); + /* 805A3514 */ ~daTagGstart_c(); + /* 805A3590 */ int execute(); + + /* 0x568 */ u8 mSwNo; + /* 0x569 */ u8 mSwNo2; + /* 0x56A */ u8 field_0x56a; + /* 0x56B */ u8 mType; +}; #endif /* D_A_TAG_GSTART_H */ diff --git a/include/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h b/include/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h index 2dd21960c82..0e13a0c6f3c 100644 --- a/include/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h +++ b/include/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h @@ -1,6 +1,26 @@ #ifndef D_A_TAG_HSTOP_H #define D_A_TAG_HSTOP_H -#include "dolphin/types.h" +#include "f_op/f_op_actor.h" +#include "d/msg/d_msg_flow.h" + +class daTagHstop_c : public fopAc_ac_c { +public: + /* 805A43EC */ int create(); + /* 805A45F8 */ ~daTagHstop_c(); + /* 805A46B8 */ void setActive(); + /* 805A475C */ int execute(); + + static daTagHstop_c* m_top; + static dMsgFlow_c m_msgFlow; + + /* 0x568 */ daTagHstop_c* mNext; + /* 0x568 */ daTagHstop_c* mPrev; + /* 0x570 */ u8 mPrm0; + /* 0x571 */ bool mActive; + /* 0x572 */ u8 mPrm1; + /* 0x573 */ u8 field_0x573; + /* 0x574 */ int field_0x574; +}; #endif /* D_A_TAG_HSTOP_H */ diff --git a/include/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.h b/include/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.h index 5e28eadbf01..37637780d9e 100644 --- a/include/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.h +++ b/include/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.h @@ -1,6 +1,8 @@ #ifndef D_A_TAG_INSTRUCTION_H #define D_A_TAG_INSTRUCTION_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daTagInst_c : public fopAc_ac_c {}; #endif /* D_A_TAG_INSTRUCTION_H */ diff --git a/libs/JSystem/J2DGraph/J2DTevs.cpp b/libs/JSystem/J2DGraph/J2DTevs.cpp index e476ca3bc54..1c1e3bba44c 100644 --- a/libs/JSystem/J2DGraph/J2DTevs.cpp +++ b/libs/JSystem/J2DGraph/J2DTevs.cpp @@ -159,7 +159,7 @@ void J2DIndTevStage::load(u8 tevStage) { /* 802EA098-802EA0CC 2E49D8 0034+00 0/0 1/1 0/0 .text load__12J2DIndTexMtxFUc */ void J2DIndTexMtx::load(u8 indTexMtx) { - GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + indTexMtx), mIndTexMtxInfo.mMtx, + GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + indTexMtx), (f32*)mIndTexMtxInfo.mMtx, mIndTexMtxInfo.mScaleExp); } diff --git a/libs/JSystem/J3DGraphAnimator/J3DSkinDeform.cpp b/libs/JSystem/J3DGraphAnimator/J3DSkinDeform.cpp index caec400fcee..f4e4df32c48 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DSkinDeform.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DSkinDeform.cpp @@ -49,14 +49,12 @@ extern "C" u8 sWorkArea_MtxReg__13J3DSkinDeform[2048 + 8 /* padding */]; // SECTION_INIT void memcpy(); -extern "C" void OSReport(); extern "C" void* __nwa__FUl(); extern "C" void* __nwa__FUli(); extern "C" void __dl__FPv(); extern "C" void J3DGQRSetup7__FUlUlUlUl(); extern "C" void J3DPSCalcInverseTranspose__FPA4_fPA3_f(); extern "C" void makeVcdVatCmd__8J3DShapeFv(); -extern "C" void DCStoreRange(); extern "C" void __construct_new_array(); extern "C" void __save_gpr(); extern "C" void _savegpr_17(); diff --git a/libs/JSystem/J3DGraphBase/J3DGD.cpp b/libs/JSystem/J3DGraphBase/J3DGD.cpp index 1e3a42fdac8..50729c4045a 100644 --- a/libs/JSystem/J3DGraphBase/J3DGD.cpp +++ b/libs/JSystem/J3DGraphBase/J3DGD.cpp @@ -7,12 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXTlutSize {}; - // // Forward References: // diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index d4814e1ae34..20dd9a32ab3 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -484,7 +484,6 @@ extern "C" extern char const* const J3DMatBlock__stringBase0; // SECTION_INIT void memcpy(); -extern "C" void OSReport(); extern "C" void patchTexNoAndTexCoordScale__11J3DTevBlockFv(); extern "C" void patch__10J3DPEBlockFv(); extern "C" void patch__11J3DTevBlockFv(); @@ -577,7 +576,6 @@ extern "C" void patchTexNo_PtrToIdx__FUlRCUs(); extern "C" void __as__16J3DIndTexMtxInfoFRC16J3DIndTexMtxInfo(); extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo(); extern "C" void __as__15J3DNBTScaleInfoFRC15J3DNBTScaleInfo(); -extern "C" void DCStoreRange(); extern "C" void GDOverflowed(); extern "C" void __destroy_arr(); extern "C" void _savegpr_24(); diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index f9c1f4e7ddc..2b326a72b07 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -198,7 +198,7 @@ void J3DSys::drawInit() { u8 i; for (i = 0; i < 3; i++) - GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), indTexMtx, 1); + GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), (f32*)indTexMtx, 1); GXSetChanMatColor(GX_COLOR0A0, j3dDefaultColInfo); GXSetChanMatColor(GX_COLOR1A1, j3dDefaultColInfo); @@ -380,9 +380,9 @@ void J3DSys::reinitIndStages() { GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1); - GXSetIndTexMtx(GX_ITM_0, IndMtx, 1); - GXSetIndTexMtx(GX_ITM_1, IndMtx, 1); - GXSetIndTexMtx(GX_ITM_2, IndMtx, 1); + GXSetIndTexMtx(GX_ITM_0, (f32*)IndMtx, 1); + GXSetIndTexMtx(GX_ITM_1, (f32*)IndMtx, 1); + GXSetIndTexMtx(GX_ITM_2, (f32*)IndMtx, 1); } /* 80310E3C-80310ED0 30B77C 0094+00 1/1 0/0 0/0 .text reinitPixelProc__6J3DSysFv */ diff --git a/libs/JSystem/J3DGraphBase/J3DVertex.cpp b/libs/JSystem/J3DGraphBase/J3DVertex.cpp index 94affe40c91..1356041e342 100644 --- a/libs/JSystem/J3DGraphBase/J3DVertex.cpp +++ b/libs/JSystem/J3DGraphBase/J3DVertex.cpp @@ -97,7 +97,7 @@ void J3DVertexBuffer::setArray() const { s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flag) { if (flag & 1) { for (int i = 0; i < 2; i++) { - mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; + mVtxPosArray[i] = new (0x20) Vec[mVtxData->getVtxNum()]; if (mVtxPosArray[i] == NULL) { return kJ3DError_Alloc; @@ -109,7 +109,7 @@ s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flag) { mVtxPosArray[0] = mVtxData->getVtxPosArray(); if (mVtxPosArray[1] == NULL) { - mVtxPosArray[1] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; + mVtxPosArray[1] = new (0x20) Vec[mVtxData->getVtxNum()]; if (mVtxPosArray[1] == NULL) { return kJ3DError_Alloc; } @@ -209,7 +209,7 @@ s32 J3DVertexBuffer::allocTransformedVtxPosArray() { for (int i = 0; i < 2; i++) { if (i == 0 || mTransformedVtxPosArray[i] == NULL) { - mTransformedVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; + mTransformedVtxPosArray[i] = new (0x20) Vec[mVtxData->getVtxNum()]; if (mTransformedVtxPosArray[i] == NULL) return kJ3DError_Alloc; } diff --git a/libs/JSystem/JParticle/JPABaseShape.cpp b/libs/JSystem/JParticle/JPABaseShape.cpp index 025aadaa101..7f385824f9b 100644 --- a/libs/JSystem/JParticle/JPABaseShape.cpp +++ b/libs/JSystem/JParticle/JPABaseShape.cpp @@ -7,6 +7,7 @@ #include "JSystem/JParticle/JPAParticle.h" #include "JSystem/JParticle/JPAResource.h" #include "JSystem/JParticle/JPAResourceManager.h" +#include "dolphin/mtx/mtxvec.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JParticle/JPAEmitter.cpp b/libs/JSystem/JParticle/JPAEmitter.cpp index e8b601f4c87..105a6169489 100644 --- a/libs/JSystem/JParticle/JPAEmitter.cpp +++ b/libs/JSystem/JParticle/JPAEmitter.cpp @@ -10,6 +10,7 @@ #include "JSystem/JParticle/JPAResourceManager.h" #include "dol2asm.h" #include "dolphin/mtx/mtx.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" // diff --git a/libs/JSystem/JParticle/JPAParticle.cpp b/libs/JSystem/JParticle/JPAParticle.cpp index c4345888dfa..f3172369691 100644 --- a/libs/JSystem/JParticle/JPAParticle.cpp +++ b/libs/JSystem/JParticle/JPAParticle.cpp @@ -4,6 +4,7 @@ // #include "JSystem/JParticle/JPAParticle.h" +#include "dolphin/mtx/mtxvec.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JParticle/JPAResource.cpp b/libs/JSystem/JParticle/JPAResource.cpp index 3195955b8fb..d9430992d68 100644 --- a/libs/JSystem/JParticle/JPAResource.cpp +++ b/libs/JSystem/JParticle/JPAResource.cpp @@ -9,6 +9,7 @@ #include "JSystem/JParticle/JPAParticle.h" #include "dol2asm.h" #include "dolphin/mtx/mtx.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" // diff --git a/libs/JSystem/JStudio/JStudio/functionvalue.cpp b/libs/JSystem/JStudio/JStudio/functionvalue.cpp index b71f773d012..a79c09925d8 100644 --- a/libs/JSystem/JStudio/JStudio/functionvalue.cpp +++ b/libs/JSystem/JStudio/JStudio/functionvalue.cpp @@ -4,6 +4,7 @@ // #include "JSystem/JStudio/JStudio/functionvalue.h" +#include "JSystem/JUtility/JUTException.h" #include "MSL_C/math.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JStudio/JStudio/fvb.cpp b/libs/JSystem/JStudio/JStudio/fvb.cpp index 3cbafd02f76..f822d7cd099 100644 --- a/libs/JSystem/JStudio/JStudio/fvb.cpp +++ b/libs/JSystem/JStudio/JStudio/fvb.cpp @@ -4,6 +4,7 @@ // #include "JSystem/JStudio/JStudio/fvb.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JStudio/JStudio/stb.cpp b/libs/JSystem/JStudio/JStudio/stb.cpp index 3ff947cc70b..e624ce6b73f 100644 --- a/libs/JSystem/JStudio/JStudio/stb.cpp +++ b/libs/JSystem/JStudio/JStudio/stb.cpp @@ -1,4 +1,5 @@ #include "JSystem/JStudio/JStudio/stb.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/MSL_C/Makefile b/libs/MSL_C/Makefile index e5ab9f3fbd2..52659a9d8a8 100644 --- a/libs/MSL_C/Makefile +++ b/libs/MSL_C/Makefile @@ -121,6 +121,8 @@ LIBMSL_C_PPCEABI_BARE_H_A_O_FILES := \ LIBMSL_C_PPCEABI_BARE_H_A_CFLAGS := \ -O4,p \ -lang=c \ + -fp_contract on \ + -use_lmw_stmw on \ LIBMSL_C_PPCEABI_BARE_H_A_LDFLAGS := \ -nodefaults \ diff --git a/libs/MSL_C/Math/Double_precision/e_acos.c b/libs/MSL_C/Math/Double_precision/e_acos.c index f23b7f04630..38d048cd487 100644 --- a/libs/MSL_C/Math/Double_precision/e_acos.c +++ b/libs/MSL_C/Math/Double_precision/e_acos.c @@ -1,89 +1,106 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_acos -// -#include "MSL_C/Math/Double_precision/e_acos.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)e_acos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -// -// Forward References: -// +/* __ieee754_acos(x) + * Method : + * acos(x) = pi/2 - asin(x) + * acos(-x) = pi/2 + asin(x) + * For |x|<=0.5 + * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) + * For x>0.5 + * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) + * = 2asin(sqrt((1-x)/2)) + * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) + * = 2f + (2c + 2s*z*R(z)) + * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term + * for f so that f+c ~ sqrt(z). + * For x<-0.5 + * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) + * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) + * + * Special cases: + * if x is NaN, return x itself; + * if |x|>1, return NaN with invalid signal. + * + * Function needed: sqrt + */ -void __ieee754_acos(); +#include "fdlibm.h" +#include "MSL_C/math.h" -// -// External References: -// +#ifdef __STDC__ +static const double +#else +static double +#endif +one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ -void sqrt(); -extern u32 __float_nan; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80456678-80456680 004C78 0008+00 1/1 0/0 0/0 .sdata2 @83 */ -SECTION_SDATA2 static u8 lit_83[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80456680-80456688 004C80 0008+00 1/1 0/0 0/0 .sdata2 @84 */ -SECTION_SDATA2 static f64 lit_84 = 3.141592653589793; - -/* 80456688-80456690 004C88 0008+00 1/1 0/0 0/0 .sdata2 @85 */ -SECTION_SDATA2 static f64 lit_85 = 1.5707963267948966; - -/* 80456690-80456698 004C90 0008+00 1/1 0/0 0/0 .sdata2 @86 */ -SECTION_SDATA2 static f64 lit_86 = 6.123233995736766e-17; - -/* 80456698-804566A0 004C98 0008+00 1/1 0/0 0/0 .sdata2 @87 */ -SECTION_SDATA2 static f64 lit_87 = 1.0 / 6.0; - -/* 804566A0-804566A8 004CA0 0008+00 1/1 0/0 0/0 .sdata2 @88 */ -SECTION_SDATA2 static f64 lit_88 = -0.3255658186224009; - -/* 804566A8-804566B0 004CA8 0008+00 1/1 0/0 0/0 .sdata2 @89 */ -SECTION_SDATA2 static f64 lit_89 = 0.20121253213486293; - -/* 804566B0-804566B8 004CB0 0008+00 1/1 0/0 0/0 .sdata2 @90 */ -SECTION_SDATA2 static f64 lit_90 = -0.04005553450067941; - -/* 804566B8-804566C0 004CB8 0008+00 1/1 0/0 0/0 .sdata2 @91 */ -SECTION_SDATA2 static f64 lit_91 = 0.0007915349942898145; - -/* 804566C0-804566C8 004CC0 0008+00 1/1 0/0 0/0 .sdata2 @92 */ -SECTION_SDATA2 static f64 lit_92 = 3.479331075960212e-05; - -/* 804566C8-804566D0 004CC8 0008+00 1/1 0/0 0/0 .sdata2 @93 */ -SECTION_SDATA2 static f64 lit_93 = 1.0; - -/* 804566D0-804566D8 004CD0 0008+00 1/1 0/0 0/0 .sdata2 @94 */ -SECTION_SDATA2 static f64 lit_94 = -2.403394911734414; - -/* 804566D8-804566E0 004CD8 0008+00 1/1 0/0 0/0 .sdata2 @95 */ -SECTION_SDATA2 static f64 lit_95 = 2.0209457602335057; - -/* 804566E0-804566E8 004CE0 0008+00 1/1 0/0 0/0 .sdata2 @96 */ -SECTION_SDATA2 static f64 lit_96 = -0.6882839716054533; - -/* 804566E8-804566F0 004CE8 0008+00 1/1 0/0 0/0 .sdata2 @97 */ -SECTION_SDATA2 static f64 lit_97 = 0.07703815055590194; - -/* 804566F0-804566F8 004CF0 0008+00 1/1 0/0 0/0 .sdata2 @98 */ -SECTION_SDATA2 static f64 lit_98 = 0.5; - -/* 804566F8-80456700 004CF8 0008+00 1/1 0/0 0/0 .sdata2 @99 */ -SECTION_SDATA2 static f64 lit_99 = 2.0; - -/* 80369274-803694B0 363BB4 023C+00 0/0 1/1 0/0 .text __ieee754_acos */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_acos() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_acos/__ieee754_acos.s" -} -#pragma pop +#ifdef __STDC__ + double __ieee754_acos(double x) +#else + double __ieee754_acos(x) + double x; +#endif +{ + double z,p,q,r,w,s,c,df; + int hx,ix; + hx = __HI(x); + ix = hx&0x7fffffff; + if(ix>=0x3ff00000) { /* |x| >= 1 */ + if(((ix-0x3ff00000)|__LO(x))==0) { /* |x|==1 */ + if(hx>0) return 0.0; /* acos(1) = 0 */ + else return pi+2.0*pio2_lo; /* acos(-1)= pi */ + } + return *__float_nan; /* acos(|x|>1) is NaN */ + } + if(ix<0x3fe00000) { /* |x| < 0.5 */ + if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/ + z = x*x; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + return pio2_hi - (x - (pio2_lo-x*r)); + } else if (hx<0) { /* x < -0.5 */ + z = (one+x)*0.5; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + s = sqrt(z); + r = p/q; + w = r*s-pio2_lo; + return pi - 2.0*(s+w); + } else { /* x > 0.5 */ + z = (one-x)*0.5; + s = sqrt(z); + df = s; + __LO(df) = 0; + c = (z-df*df)/(s+df); + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + w = r*s+c; + return 2.0*(df+w); + } +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/e_asin.c b/libs/MSL_C/Math/Double_precision/e_asin.c index fa5656cf07b..e67a887f530 100644 --- a/libs/MSL_C/Math/Double_precision/e_asin.c +++ b/libs/MSL_C/Math/Double_precision/e_asin.c @@ -1,87 +1,117 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_asin -// -#include "MSL_C/Math/Double_precision/e_asin.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)e_asin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -// -// Forward References: -// +/* __ieee754_asin(x) + * Method : + * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ... + * we approximate asin(x) on [0,0.5] by + * asin(x) = x + x*x^2*R(x^2) + * where + * R(x^2) is a rational approximation of (asin(x)-x)/x^3 + * and its remez error is bounded by + * |(asin(x)-x)/x^3 - R(x^2)| < 2^(-58.75) + * + * For x in [0.5,1] + * asin(x) = pi/2-2*asin(sqrt((1-x)/2)) + * Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2; + * then for x>0.98 + * asin(x) = pi/2 - 2*(s+s*z*R(z)) + * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) + * For x<=0.98, let pio4_hi = pio2_hi/2, then + * f = hi part of s; + * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) + * and + * asin(x) = pi/2 - 2*(s+s*z*R(z)) + * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) + * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) + * + * Special cases: + * if x is NaN, return x itself; + * if |x|>1, return NaN with invalid signal. + * + */ -void __ieee754_asin(); +#include "fdlibm.h" +#include "MSL_C/math.h" -// -// External References: -// +#ifdef __STDC__ +static const double +#else +static double +#endif + one + = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ + huge = 1.000e+300, pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ + pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ + pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ + /* coefficient for R(x^2) */ + pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ + pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ + pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ + pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ + pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ + pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ + qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ + qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ + qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ + qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ -void sqrt(); -extern u32 __float_nan; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80456700-80456708 004D00 0008+00 1/1 0/0 0/0 .sdata2 @94 */ -SECTION_SDATA2 static f64 lit_94 = 1.5707963267948966; - -/* 80456708-80456710 004D08 0008+00 1/1 0/0 0/0 .sdata2 @95 */ -SECTION_SDATA2 static f64 lit_95 = 6.123233995736766e-17; - -/* 80456710-80456718 004D10 0008+00 1/1 0/0 0/0 .sdata2 @96 */ -SECTION_SDATA2 static f64 lit_96 = 1e+300; - -/* 80456718-80456720 004D18 0008+00 1/1 0/0 0/0 .sdata2 @97 */ -SECTION_SDATA2 static f64 lit_97 = 1.0; - -/* 80456720-80456728 004D20 0008+00 1/1 0/0 0/0 .sdata2 @98 */ -SECTION_SDATA2 static f64 lit_98 = 1.0 / 6.0; - -/* 80456728-80456730 004D28 0008+00 1/1 0/0 0/0 .sdata2 @99 */ -SECTION_SDATA2 static f64 lit_99 = -0.3255658186224009; - -/* 80456730-80456738 004D30 0008+00 1/1 0/0 0/0 .sdata2 @100 */ -SECTION_SDATA2 static f64 lit_100 = 0.20121253213486293; - -/* 80456738-80456740 004D38 0008+00 1/1 0/0 0/0 .sdata2 @101 */ -SECTION_SDATA2 static f64 lit_101 = -0.04005553450067941; - -/* 80456740-80456748 004D40 0008+00 1/1 0/0 0/0 .sdata2 @102 */ -SECTION_SDATA2 static f64 lit_102 = 0.0007915349942898145; - -/* 80456748-80456750 004D48 0008+00 1/1 0/0 0/0 .sdata2 @103 */ -SECTION_SDATA2 static f64 lit_103 = 3.479331075960212e-05; - -/* 80456750-80456758 004D50 0008+00 1/1 0/0 0/0 .sdata2 @104 */ -SECTION_SDATA2 static f64 lit_104 = -2.403394911734414; - -/* 80456758-80456760 004D58 0008+00 1/1 0/0 0/0 .sdata2 @105 */ -SECTION_SDATA2 static f64 lit_105 = 2.0209457602335057; - -/* 80456760-80456768 004D60 0008+00 1/1 0/0 0/0 .sdata2 @106 */ -SECTION_SDATA2 static f64 lit_106 = -0.6882839716054533; - -/* 80456768-80456770 004D68 0008+00 1/1 0/0 0/0 .sdata2 @107 */ -SECTION_SDATA2 static f64 lit_107 = 0.07703815055590194; - -/* 80456770-80456778 004D70 0008+00 1/1 0/0 0/0 .sdata2 @108 */ -SECTION_SDATA2 static f64 lit_108 = 0.5; - -/* 80456778-80456780 004D78 0008+00 1/1 0/0 0/0 .sdata2 @109 */ -SECTION_SDATA2 static f64 lit_109 = 2.0; - -/* 80456780-80456788 004D80 0008+00 1/1 0/0 0/0 .sdata2 @110 */ -SECTION_SDATA2 static f64 lit_110 = 0.7853981633974483; - -/* 803694B0-803696E8 363DF0 0238+00 0/0 1/1 0/0 .text __ieee754_asin */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_asin() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_asin/__ieee754_asin.s" -} -#pragma pop +#ifdef __STDC__ +double __ieee754_asin(double x) +#else +double __ieee754_asin(x) double x; +#endif +{ + double t, w, p, q, c, r, s; + int hx, ix; + hx = __HI(x); + ix = hx & 0x7fffffff; + if (ix >= 0x3ff00000) { /* |x|>= 1 */ + if (((ix - 0x3ff00000) | __LO(x)) == 0) + /* asin(1)=+-pi/2 with inexact */ + return x * pio2_hi + x * pio2_lo; + return *__float_nan; /* asin(|x|>1) is NaN */ + } else if (ix < 0x3fe00000) { /* |x|<0.5 */ + if (ix < 0x3e400000) { /* if |x| < 2**-27 */ + if (huge + x > one) + return x; /* return x with inexact if x!=0*/ + } else + t = x * x; + p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); + q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); + w = p / q; + return x + x * w; + } + /* 1> |x|>= 0.5 */ + w = one - fabs(x); + t = w * 0.5; + p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5))))); + q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4))); + s = sqrt(t); + if (ix >= 0x3FEF3333) { /* if |x| > 0.975 */ + w = p / q; + t = pio2_hi - (2.0 * (s + s * w) - pio2_lo); + } else { + w = s; + __LO(w) = 0; + c = (t - w * w) / (s + w); + r = p / q; + p = 2.0 * s * r - (pio2_lo - 2.0 * c); + q = pio4_hi - 2.0 * w; + t = pio4_hi - (p - q); + } + if (hx > 0) + return t; + else + return -t; +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/e_atan2.c b/libs/MSL_C/Math/Double_precision/e_atan2.c index db6f4e87426..5a7863be094 100644 --- a/libs/MSL_C/Math/Double_precision/e_atan2.c +++ b/libs/MSL_C/Math/Double_precision/e_atan2.c @@ -1,70 +1,143 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_atan2 -// -#include "MSL_C/Math/Double_precision/e_atan2.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)e_atan2.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ -// -// Forward References: -// +/* __ieee754_atan2(y,x) + * Method : + * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). + * 2. Reduce x to positive by (if x and y are unexceptional): + * ARG (x+iy) = arctan(y/x) ... if x > 0, + * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, + * + * Special cases: + * + * ATAN2((anything), NaN ) is NaN; + * ATAN2(NAN , (anything) ) is NaN; + * ATAN2(+-0, +(anything but NaN)) is +-0 ; + * ATAN2(+-0, -(anything but NaN)) is +-pi ; + * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; + * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; + * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; + * ATAN2(+-INF,+INF ) is +-pi/4 ; + * ATAN2(+-INF,-INF ) is +-3pi/4; + * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ -void __ieee754_atan2(); +#include "fdlibm.h" -// -// External References: -// +#ifdef __STDC__ +static const double +#else +static double +#endif + tiny + = 1.0e-300, + zero = 0.0, pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ + pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ + pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */ + pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ -void atan(); +#ifdef __STDC__ +double __ieee754_atan2(double y, double x) +#else +double __ieee754_atan2(y, x) double y, x; +#endif +{ + double z; + int k, m, hx, hy, ix, iy; + unsigned lx, ly; -// -// Declarations: -// + hx = __HI(x); + ix = hx & 0x7fffffff; + lx = __LO(x); + hy = __HI(y); + iy = hy & 0x7fffffff; + ly = __LO(y); + if (((ix | ((lx | -lx) >> 31)) > 0x7ff00000) || ((iy | ((ly | -ly) >> 31)) > 0x7ff00000)) /* x or y is NaN */ + return x + y; + if ((hx - 0x3ff00000 | lx) == 0) + return atan(y); /* x=1.0 */ + m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ -/* ############################################################################################## */ -/* 80456788-80456790 004D88 0008+00 1/1 0/0 0/0 .sdata2 @145 */ -SECTION_SDATA2 static f64 lit_145 = 3.141592653589793; + /* when y = 0 */ + if ((iy | ly) == 0) { + switch (m) { + case 0: + case 1: + return y; /* atan(+-0,+anything)=+-0 */ + case 2: + return pi + tiny; /* atan(+0,-anything) = pi */ + case 3: + return -pi - tiny; /* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if ((ix | lx) == 0) + return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; -/* 80456790-80456798 004D90 0008+00 1/1 0/0 0/0 .sdata2 @146 */ -SECTION_SDATA2 static f64 lit_146 = -3.141592653589793; + /* when x is INF */ + if (ix == 0x7ff00000) { + if (iy == 0x7ff00000) { + switch (m) { + case 0: + return pi_o_4 + tiny; /* atan(+INF,+INF) */ + case 1: + return -pi_o_4 - tiny; /* atan(-INF,+INF) */ + case 2: + return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ + case 3: + return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ + } + } else { + switch (m) { + case 0: + return zero; /* atan(+...,+INF) */ + case 1: + return -zero; /* atan(-...,+INF) */ + case 2: + return pi + tiny; /* atan(+...,-INF) */ + case 3: + return -pi - tiny; /* atan(-...,-INF) */ + } + } + } + /* when y is INF */ + if (iy == 0x7ff00000) + return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; -/* 80456798-804567A0 004D98 0008+00 1/1 0/0 0/0 .sdata2 @147 */ -SECTION_SDATA2 static f64 lit_147 = -1.5707963267948966; - -/* 804567A0-804567A8 004DA0 0008+00 1/1 0/0 0/0 .sdata2 @148 */ -SECTION_SDATA2 static f64 lit_148 = 1.5707963267948966; - -/* 804567A8-804567B0 004DA8 0008+00 1/1 0/0 0/0 .sdata2 @149 */ -SECTION_SDATA2 static f64 lit_149 = 0.7853981633974483; - -/* 804567B0-804567B8 004DB0 0008+00 1/1 0/0 0/0 .sdata2 @150 */ -SECTION_SDATA2 static f64 lit_150 = -0.7853981633974483; - -/* 804567B8-804567C0 004DB8 0008+00 1/1 0/0 0/0 .sdata2 @151 */ -SECTION_SDATA2 static f64 lit_151 = 2.356194490192345; - -/* 804567C0-804567C8 004DC0 0008+00 1/1 0/0 0/0 .sdata2 @152 */ -SECTION_SDATA2 static f64 lit_152 = -2.356194490192345; - -/* 804567C8-804567D0 004DC8 0008+00 1/1 0/0 0/0 .sdata2 @153 */ -SECTION_SDATA2 static u8 lit_153[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 804567D0-804567D8 004DD0 0008+00 1/1 0/0 0/0 .sdata2 @154 */ -SECTION_SDATA2 static f64 lit_154 = -0.0; - -/* 804567D8-804567E0 004DD8 0008+00 1/1 0/0 0/0 .sdata2 @155 */ -SECTION_SDATA2 static f64 lit_155 = 1.2246467991473532e-16; - -/* 803696E8-80369978 364028 0290+00 0/0 1/1 0/0 .text __ieee754_atan2 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_atan2() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_atan2/__ieee754_atan2.s" -} -#pragma pop + /* compute y/x */ + k = (iy - ix) >> 20; + if (k > 60) + z = pi_o_2 + 0.5 * pi_lo; /* |y/x| > 2**60 */ + else if (hx < 0 && k < -60) + z = 0.0; /* |y|/x < -2**60 */ + else + z = atan(__fabs(y / x)); /* safe to do y/x */ + switch (m) { + case 0: + return z; /* atan(+,+) */ + case 1: + __HI(z) ^= 0x80000000; + return z; /* atan(-,+) */ + case 2: + return pi - (z - pi_lo); /* atan(+,-) */ + default: /* case 3 */ + return (z - pi_lo) - pi; /* atan(-,-) */ + } +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/e_exp.c b/libs/MSL_C/Math/Double_precision/e_exp.c index 97c162b6820..4a2b28c81f7 100644 --- a/libs/MSL_C/Math/Double_precision/e_exp.c +++ b/libs/MSL_C/Math/Double_precision/e_exp.c @@ -1,104 +1,162 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_exp -// -#include "MSL_C/Math/Double_precision/e_exp.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)e_exp.c 1.6 04/04/22 */ +/* + * ==================================================== + * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -// -// Forward References: -// +/* __ieee754_exp(x) + * Returns the exponential of x. + * + * Method + * 1. Argument reduction: + * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. + * Given x, find r and integer k such that + * + * x = k*ln2 + r, |r| <= 0.5*ln2. + * + * Here r will be represented as r = hi-lo for better + * accuracy. + * + * 2. Approximation of exp(r) by a special rational function on + * the interval [0,0.34658]: + * Write + * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... + * We use a special Remes algorithm on [0,0.34658] to generate + * a polynomial of degree 5 to approximate R. The maximum error + * of this polynomial approximation is bounded by 2**-59. In + * other words, + * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 + * (where z=r*r, and the values of P1 to P5 are listed below) + * and + * | 5 | -59 + * | 2.0+P1*z+...+P5*z - R(z) | <= 2 + * | | + * The computation of exp(r) thus becomes + * 2*r + * exp(r) = 1 + ------- + * R - r + * r*R1(r) + * = 1 + r + ----------- (for better accuracy) + * 2 - R1(r) + * where + * 2 4 10 + * R1(r) = r - (P1*r + P2*r + ... + P5*r ). + * + * 3. Scale back to obtain exp(x): + * From step 1, we have + * exp(x) = 2^k * exp(r) + * + * Special cases: + * exp(INF) is INF, exp(NaN) is NaN; + * exp(-INF) is 0, and + * for finite argument, only exp(0)=1 is exact. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Misc. info. + * For IEEE double + * if x > 7.09782712893383973096e+02 then exp(x) overflow + * if x < -7.45133219101941108420e+02 then exp(x) underflow + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ -void __ieee754_exp(); +#include "fdlibm.h" -// -// External References: -// +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.0, +halF[2] = {0.5,-0.5,}, +huge = 1.0e+300, +twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ +o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ +u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */ +ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */ + -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */ +ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */ + -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */ +invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */ -// -// Declarations: -// +#ifdef __STDC__ +double __ieee754_exp(double x) /* default IEEE double exp */ +#else +double __ieee754_exp(x) /* default IEEE double exp */ + double x; +#endif +{ + double y, hi, lo, c, t; + int k, xsb; + unsigned hx; -/* ############################################################################################## */ -/* 803A2340-803A2350 02E9A0 0010+00 1/1 0/0 0/0 .rodata halF */ -SECTION_RODATA static u8 const halF[16] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A2340, &halF); + hx = __HI(x); /* high word of x */ + xsb = (hx >> 31) & 1; /* sign bit of x */ + hx &= 0x7fffffff; /* high word of |x| */ -/* 803A2350-803A2360 02E9B0 0010+00 0/1 0/0 0/0 .rodata ln2HI */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const ln2HI[16] = { - 0x3F, 0xE6, 0x2E, 0x42, 0xFE, 0xE0, 0x00, 0x00, 0xBF, 0xE6, 0x2E, 0x42, 0xFE, 0xE0, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A2350, &ln2HI); -#pragma pop + /* filter out non-finite argument */ + if (hx >= 0x40862E42) { /* if |x|>=709.78... */ + if (hx >= 0x7ff00000) { + if (((hx & 0xfffff) | __LO(x)) != 0) + return x + x; /* NaN */ + else + return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */ + } + if (x > o_threshold) + return huge * huge; /* overflow */ + if (x < u_threshold) + return twom1000 * twom1000; /* underflow */ + } -/* 803A2360-803A2370 02E9C0 0010+00 0/1 0/0 0/0 .rodata ln2LO */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const ln2LO[16] = { - 0x3D, 0xEA, 0x39, 0xEF, 0x35, 0x79, 0x3C, 0x76, 0xBD, 0xEA, 0x39, 0xEF, 0x35, 0x79, 0x3C, 0x76, -}; -COMPILER_STRIP_GATE(0x803A2360, &ln2LO); -#pragma pop + /* argument reduction */ + if (hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */ + if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ + hi = x - ln2HI[xsb]; + lo = ln2LO[xsb]; + k = 1 - xsb - xsb; + } else { + k = (int)(invln2 * x + halF[xsb]); + t = k; + hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */ + lo = t * ln2LO[0]; + } + x = hi - lo; + } else if (hx < 0x3e300000) { /* when |x|<2**-28 */ + if (huge + x > one) + return one + x; /* trigger inexact */ + } else + k = 0; -/* 804567E0-804567E8 004DE0 0008+00 1/1 0/0 0/0 .sdata2 @115 */ -SECTION_SDATA2 static u8 lit_115[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 804567E8-804567F0 004DE8 0008+00 1/1 0/0 0/0 .sdata2 @116 */ -SECTION_SDATA2 static f64 lit_116 = 709.782712893384; - -/* 804567F0-804567F8 004DF0 0008+00 1/1 0/0 0/0 .sdata2 @117 */ -SECTION_SDATA2 static f64 lit_117 = DOUBLE_INF; - -/* 804567F8-80456800 004DF8 0008+00 1/1 0/0 0/0 .sdata2 @118 */ -SECTION_SDATA2 static f64 lit_118 = -745.1332191019411; - -/* 80456800-80456808 004E00 0008+00 1/1 0/0 0/0 .sdata2 @119 */ -SECTION_SDATA2 static f64 lit_119 = 1.4426950408889634; - -/* 80456808-80456810 004E08 0008+00 1/1 0/0 0/0 .sdata2 @120 */ -SECTION_SDATA2 static f64 lit_120 = 1e+300; - -/* 80456810-80456818 004E10 0008+00 1/1 0/0 0/0 .sdata2 @121 */ -SECTION_SDATA2 static f64 lit_121 = 1.0; - -/* 80456818-80456820 004E18 0008+00 1/1 0/0 0/0 .sdata2 @122 */ -SECTION_SDATA2 static f64 lit_122 = 0.16666666666666602; - -/* 80456820-80456828 004E20 0008+00 1/1 0/0 0/0 .sdata2 @123 */ -SECTION_SDATA2 static f64 lit_123 = -0.0027777777777015593; - -/* 80456828-80456830 004E28 0008+00 1/1 0/0 0/0 .sdata2 @124 */ -SECTION_SDATA2 static f64 lit_124 = 6.613756321437934e-05; - -/* 80456830-80456838 004E30 0008+00 1/1 0/0 0/0 .sdata2 @125 */ -SECTION_SDATA2 static f64 lit_125 = -1.6533902205465252e-06; - -/* 80456838-80456840 004E38 0008+00 1/1 0/0 0/0 .sdata2 @126 */ -SECTION_SDATA2 static f64 lit_126 = 4.1381367970572385e-08; - -/* 80456840-80456848 004E40 0008+00 1/1 0/0 0/0 .sdata2 @127 */ -SECTION_SDATA2 static f64 lit_127 = 2.0; - -/* 80456848-80456850 004E48 0008+00 1/1 0/0 0/0 .sdata2 @128 */ -SECTION_SDATA2 static f64 lit_128 = 9.332636185032189e-302; - -/* 80456850-80456858 004E50 0008+00 1/1 0/0 0/0 .sdata2 @131 */ -SECTION_SDATA2 static f64 lit_131 = 4503601774854144.0 /* cast s32 to float */; - -/* 80369978-80369B9C 3642B8 0224+00 0/0 1/1 0/0 .text __ieee754_exp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_exp() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_exp/__ieee754_exp.s" -} -#pragma pop + /* x is now in primary range */ + t = x * x; + c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); + if (k == 0) + return one - ((x * c) / (c - 2.0) - x); + else + y = one - ((lo - (x * c) / (2.0 - c)) - hi); + if (k >= -1021) { + __HI(y) += (k << 20); /* add k to y's exponent */ + return y; + } else { + __HI(y) += ((k + 1000) << 20); /* add k to y's exponent */ + return y * twom1000; + } +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/e_pow.c b/libs/MSL_C/Math/Double_precision/e_pow.c index 77445aff0b1..e1bf8cf234f 100644 --- a/libs/MSL_C/Math/Double_precision/e_pow.c +++ b/libs/MSL_C/Math/Double_precision/e_pow.c @@ -1,166 +1,408 @@ +//======================================================================== // -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_pow +// e_pow.c // - -#include "MSL_C/Math/Double_precision/e_pow.h" -#include "dol2asm.h" -#include "dolphin/types.h" - +// Part of the standard mathematical function library // -// Forward References: +//======================================================================== +//####ECOSGPLCOPYRIGHTBEGIN#### +// ------------------------------------------- +// This file is part of eCos, the Embedded Configurable Operating System. +// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. // - -void __ieee754_pow(); - +// eCos is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 or (at your option) any later version. // -// External References: +// eCos is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. // - -void ldexp(); -void sqrt(); -extern u32 __float_nan; -extern u8 errno[4 + 4 /* padding */]; - +// You should have received a copy of the GNU General Public License along +// with eCos; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. // -// Declarations: +// As a special exception, if other files instantiate templates or use macros +// or inline functions from this file, or you compile this file and link it +// with other works to produce a work based on this file, this file does not +// by itself cause the resulting work to be covered by the GNU General Public +// License. However the source code for this file must still be made available +// in accordance with section (3) of the GNU General Public License. // +// This exception does not invalidate any other reasons why a work based on +// this file might be covered by the GNU General Public License. +// +// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. +// at http://sources.redhat.com/ecos/ecos-license/ +// ------------------------------------------- +//####ECOSGPLCOPYRIGHTEND#### +//======================================================================== +//#####DESCRIPTIONBEGIN#### +// +// Author(s): jlarmour +// Contributors: +// Date: 2001-07-20 +// Purpose: +// Description: +// Usage: +// +//####DESCRIPTIONEND#### +// +//======================================================================== -/* ############################################################################################## */ -/* 803A2380-803A2390 02E9E0 0010+00 1/1 0/0 0/0 .rodata bp */ -SECTION_RODATA static u8 const bp[16] = { - 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A2380, &bp); +// CONFIGURATION -/* 803A2390-803A23A0 02E9F0 0010+00 0/1 0/0 0/0 .rodata dp_h */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const dp_h[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xE2, 0xB8, 0x03, 0x40, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A2390, &dp_h); -#pragma pop +/* @(#)e_pow.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -/* 803A23A0-803A23B0 02EA00 0010+00 0/1 0/0 0/0 .rodata dp_l */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const dp_l[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x4C, 0xFD, 0xEB, 0x43, 0xCF, 0xD0, 0x06, -}; -COMPILER_STRIP_GATE(0x803A23A0, &dp_l); -#pragma pop +/* __ieee754_pow(x,y) return x**y + * + * n + * Method: Let x = 2 * (1+f) + * 1. Compute and return log2(x) in two pieces: + * log2(x) = w1 + w2, + * where w1 has 53-24 = 29 bit trailing zeros. + * 2. Perform y*log2(x) = n+y' by simulating muti-precision + * arithmetic, where |y'|<=0.5. + * 3. Return x**y = 2**n*exp(y'*log2) + * + * Special cases: + * 1. (anything) ** 0 is 1 + * 2. (anything) ** 1 is itself + * 3. (anything) ** NAN is NAN + * 4. NAN ** (anything except 0) is NAN + * 5. +-(|x| > 1) ** +INF is +INF + * 6. +-(|x| > 1) ** -INF is +0 + * 7. +-(|x| < 1) ** +INF is +0 + * 8. +-(|x| < 1) ** -INF is +INF + * 9. +-1 ** +-INF is NAN + * 10. +0 ** (+anything except 0, NAN) is +0 + * 11. -0 ** (+anything except 0, NAN, odd integer) is +0 + * 12. +0 ** (-anything except 0, NAN) is +INF + * 13. -0 ** (-anything except 0, NAN, odd integer) is +INF + * 14. -0 ** (odd integer) = -( +0 ** (odd integer) ) + * 15. +INF ** (+anything except 0,NAN) is +INF + * 16. +INF ** (-anything except 0,NAN) is +0 + * 17. -INF ** (anything) = -0 ** (-anything) + * 18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer) + * 19. (-anything except 0 and inf) ** (non-integer) is NAN + * + * Accuracy: + * pow(x,y) returns x**y nearly rounded. In particular + * pow(integer,integer) + * always returns the correct integer provided it is + * representable. + * + * Constants : + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ -/* 80456858-80456860 004E58 0008+00 1/1 0/0 0/0 .sdata2 @336 */ -SECTION_SDATA2 static f64 lit_336 = 1.0; +#include "types.h" +#include "errno.h" +#include "MSL_C/math.h" +#include "fdlibm.h" -/* 80456860-80456868 004E60 0008+00 1/1 0/0 0/0 .sdata2 @337 */ -SECTION_SDATA2 static u8 lit_337[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +#ifndef _DOUBLE_IS_32BITS -/* 80456868-80456870 004E68 0008+00 1/1 0/0 0/0 .sdata2 @338 */ -SECTION_SDATA2 static f64 lit_338 = DOUBLE_INF; +#ifdef __STDC__ +static const double +#else +static double +#endif +bp[] = {1.0, 1.5,}, +dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */ +dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */ +zero = 0.0, +one = 1.0, +two = 2.0, +two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */ +huge = 1.0e300, +tiny = 1.0e-300, + /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */ +L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */ +L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */ +L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */ +L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */ +L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */ +L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ +lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ +lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */ +lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */ +ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */ +cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */ +cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */ +cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/ +ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */ +ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ +ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ -/* 80456870-80456878 004E70 0008+00 1/1 0/0 0/0 .sdata2 @339 */ -SECTION_SDATA2 static f64 lit_339 = 0.5; +#ifdef __STDC__ +double __ieee754_pow(double x, double y) +#else +double __ieee754_pow(x, y) double x, y; +#endif +{ + double z, ax, z_h, z_l, p_h, p_l; + double y1, t1, t2, r, s, t, u, v, w; + double qqq; // necessary temp + int i0, i1, i, j, k, yisint, n; + int hx, hy, ix, iy; + u32 lx, ly; -/* 80456878-80456880 004E78 0008+00 1/1 0/0 0/0 .sdata2 @340 */ -SECTION_SDATA2 static f64 lit_340 = 1.0 / 3.0; + i0 = ((*(int*)&one) >> 29) ^ 1; + i1 = 1 - i0; + hx = __HI(x); + lx = __LO(x); + hy = __HI(y); + ly = __LO(y); + ix = hx & 0x7fffffff; + iy = hy & 0x7fffffff; -/* 80456880-80456888 004E80 0008+00 1/1 0/0 0/0 .sdata2 @341 */ -SECTION_SDATA2 static f64 lit_341 = 0.25; + /* y==zero: x**0 = 1 */ + if ((iy | ly) == 0) + return one; -/* 80456888-80456890 004E88 0008+00 1/1 0/0 0/0 .sdata2 @342 */ -SECTION_SDATA2 static f64 lit_342 = 1.4426950216293335; + /* +-NaN return x+y */ + if (ix > 0x7ff00000 || ((ix == 0x7ff00000) && (lx != 0)) || iy > 0x7ff00000 || ((iy == 0x7ff00000) && (ly != 0))) + return x + y; -/* 80456890-80456898 004E90 0008+00 1/1 0/0 0/0 .sdata2 @343 */ -SECTION_SDATA2 static f64 lit_343 = 1.9259629911266175e-08; + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + yisint = 0; + if (hx < 0) { + if (iy >= 0x43400000) + yisint = 2; /* even integer y */ + else if (iy >= 0x3ff00000) { + k = (iy >> 20) - 0x3ff; /* exponent */ + if (k > 20) { + j = ly >> (52 - k); + if ((j << (52 - k)) == ly) + yisint = 2 - (j & 1); + } else if (ly == 0) { + j = iy >> (20 - k); + if ((j << (20 - k)) == iy) + yisint = 2 - (j & 1); + } + } + } -/* 80456898-804568A0 004E98 0008+00 1/1 0/0 0/0 .sdata2 @344 */ -SECTION_SDATA2 static f64 lit_344 = 1.4426950408889634; + /* special value of y */ + if (ly == 0) { + if (iy == 0x7ff00000) { /* y is +-inf */ + if (((ix - 0x3ff00000) | lx) == 0) + return y - y; /* inf**+-1 is NaN */ + else if (ix >= 0x3ff00000) /* (|x|>1)**+-inf = inf,0 */ + return (hy >= 0) ? y : zero; + else /* (|x|<1)**-,+inf = inf,0 */ + return (hy < 0) ? -y : zero; + } + if (iy == 0x3ff00000) { /* y is +-1 */ + if (hy < 0) + return one / x; + else + return x; + } + if (hy == 0x40000000) + return x * x; /* y is 2 */ + if (hy == 0x3fe00000) { /* y is 0.5 */ + if (hx >= 0) /* x >= +0 */ + return sqrt(x); + } + } -/* 804568A0-804568A8 004EA0 0008+00 1/1 0/0 0/0 .sdata2 @345 */ -SECTION_SDATA2 static f64 lit_345 = 9007199254740992.0; + ax = __fabs(x); + qqq = ax; /*x is +-0,+-inf,+-1*/ + /* special value of x */ + if (lx == 0) { + if (ix == 0x7ff00000 || ix == 0 || ix == 0x3ff00000) { + z = qqq; /*x is +-0,+-inf,+-1*/ + if (hy < 0) + z = one / z; /* z = (1/|x|) */ + if (hx < 0) { + if (((ix - 0x3ff00000) | yisint) == 0) { + z = (z - z) / (z - z); /* (-1)**non-int is NaN */ + } else if (yisint == 1) + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + return z; + } + } -/* 804568A8-804568B0 004EA8 0008+00 1/1 0/0 0/0 .sdata2 @346 */ -SECTION_SDATA2 static f64 lit_346 = 0.5999999999999946; + /* (x<0)**(non-int) is NaN */ + /* CYGNUS LOCAL: This used to be + if((((hx>>31)+1)|yisint)==0) return (x-x)/(x-x); + but ANSI C says a right shift of a signed negative quantity is + implementation defined. */ -/* 804568B0-804568B8 004EB0 0008+00 1/1 0/0 0/0 .sdata2 @347 */ -SECTION_SDATA2 static f64 lit_347 = 0.4285714285785502; + if (((((int)hx >> 31) + 1) | yisint) == 0) { + errno = 33; + return (double)*__float_nan; + }; -/* 804568B8-804568C0 004EB8 0008+00 1/1 0/0 0/0 .sdata2 @348 */ -SECTION_SDATA2 static f64 lit_348 = 0.33333332981837743; + /* |y| is huge */ + if (iy > 0x41e00000) { /* if |y| > 2**31 */ + if (iy > 0x43f00000) { /* if |y| > 2**64, must o/uflow */ + if (ix <= 0x3fefffff) + return (hy < 0) ? huge * huge : tiny * tiny; + if (ix >= 0x3ff00000) + return (hy > 0) ? huge * huge : tiny * tiny; + } + /* over/underflow if x is not close to one */ + if (ix < 0x3fefffff) + return (hy < 0) ? huge * huge : tiny * tiny; + if (ix > 0x3ff00000) + return (hy > 0) ? huge * huge : tiny * tiny; + /* now |1-x| is tiny <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + t = x - 1; /* t has 20 trailing zeros */ + w = (t * t) * (0.5 - t * (0.3333333333333333333333 - t * 0.25)); + u = ivln2_h * t; /* ivln2_h has 21 sig. bits */ + v = t * ivln2_l - w * ivln2; + t1 = u + v; + __LO(t1) = 0; + t2 = v - (t1 - u); + } else { + double s2, s_h, s_l, t_h, t_l; + n = 0; + /* take care subnormal number */ + if (ix < 0x00100000) { + ax *= two53; + n -= 53; + ix = __HI(ax); + } + n += ((ix) >> 20) - 0x3ff; + j = ix & 0x000fffff; + /* determine interval */ + ix = j | 0x3ff00000; /* normalize ix */ + if (j <= 0x3988E) + k = 0; /* |x|> 1) | 0x20000000) + 0x00080000 + (k << 18); + t_l = ax - (t_h - bp[k]); + s_l = v * ((u - s_h * t_h) - s_h * t_l); + /* compute log(ax) */ + s2 = s * s; + r = s2 * s2 * (L1 + s2 * (L2 + s2 * (L3 + s2 * (L4 + s2 * (L5 + s2 * L6))))); + r += s_l * (s_h + s); + s2 = s_h * s_h; + t_h = 3.0 + s2 + r; + __LO(t_h) = 0; + t_l = r - ((t_h - 3.0) - s2); + /* u+v = s*(1+...) */ + u = s_h * t_h; + v = s_l * t_h + t_l * s; + /* 2/(3log2)*(s+...) */ + p_h = u + v; + __LO(p_h) = 0; + p_l = v - (p_h - u); + z_h = cp_h * p_h; /* cp_h+cp_l = 2/(3*log2) */ + z_l = cp_l * p_h + p_l * cp + dp_l[k]; + /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + t = (double)n; + t1 = (((z_h + z_l) + dp_h[k]) + t); + __LO(t1) = 0; + t2 = z_l - (((t1 - t) - dp_h[k]) - z_h); + } -/* 804568C8-804568D0 004EC8 0008+00 1/1 0/0 0/0 .sdata2 @350 */ -SECTION_SDATA2 static f64 lit_350 = 0.23066074577556175; + s = one; /* s (sign of result -ve**odd) = -1 else = 1 */ + if (((((int)hx >> 31) + 1) | (yisint - 1)) == 0) + s = -one; /* (-ve)**(odd int) */ -/* 804568D0-804568D8 004ED0 0008+00 1/1 0/0 0/0 .sdata2 @351 */ -SECTION_SDATA2 static f64 lit_351 = 0.20697501780033842; - -/* 804568D8-804568E0 004ED8 0008+00 1/1 0/0 0/0 .sdata2 @352 */ -SECTION_SDATA2 static f64 lit_352 = 3.0; - -/* 804568E0-804568E8 004EE0 0008+00 1/1 0/0 0/0 .sdata2 @353 */ -SECTION_SDATA2 static f64 lit_353 = 0.9617967009544373; - -/* 804568E8-804568F0 004EE8 0008+00 1/1 0/0 0/0 .sdata2 @354 */ -SECTION_SDATA2 static f64 lit_354 = -7.028461650952758e-09; - -/* 804568F0-804568F8 004EF0 0008+00 1/1 0/0 0/0 .sdata2 @355 */ -SECTION_SDATA2 static f64 lit_355 = 0.9617966939259756; - -/* 804568F8-80456900 004EF8 0008+00 1/1 0/0 0/0 .sdata2 @356 */ -SECTION_SDATA2 static f64 lit_356 = -1.0; - -/* 80456900-80456908 004F00 0008+00 1/1 0/0 0/0 .sdata2 @357 */ -SECTION_SDATA2 static f64 lit_357 = 1e+300; - -/* 80456908-80456910 004F08 0008+00 1/1 0/0 0/0 .sdata2 @358 */ -SECTION_SDATA2 static f64 lit_358 = 8.008566259537294e-17; - -/* 80456910-80456918 004F10 0008+00 1/1 0/0 0/0 .sdata2 @359 */ -SECTION_SDATA2 static f64 lit_359 = 1e-300; - -/* 80456918-80456920 004F18 0008+00 1/1 0/0 0/0 .sdata2 @360 */ -SECTION_SDATA2 static f64 lit_360 = 0.6931471824645996; - -/* 80456920-80456928 004F20 0008+00 1/1 0/0 0/0 .sdata2 @361 */ -SECTION_SDATA2 static f64 lit_361 = 0.6931471805599453; - -/* 80456928-80456930 004F28 0008+00 1/1 0/0 0/0 .sdata2 @362 */ -SECTION_SDATA2 static f64 lit_362 = -1.904654299957768e-09; - -/* 80456930-80456938 004F30 0008+00 1/1 0/0 0/0 .sdata2 @363 */ -SECTION_SDATA2 static f64 lit_363 = 0.16666666666666602; - -/* 80456938-80456940 004F38 0008+00 1/1 0/0 0/0 .sdata2 @364 */ -SECTION_SDATA2 static f64 lit_364 = -0.0027777777777015593; - -/* 80456940-80456948 004F40 0008+00 1/1 0/0 0/0 .sdata2 @365 */ -SECTION_SDATA2 static f64 lit_365 = 6.613756321437934e-05; - -/* 80456948-80456950 004F48 0008+00 1/1 0/0 0/0 .sdata2 @366 */ -SECTION_SDATA2 static f64 lit_366 = -1.6533902205465252e-06; - -/* 80456950-80456958 004F50 0008+00 1/1 0/0 0/0 .sdata2 @367 */ -SECTION_SDATA2 static f64 lit_367 = 4.1381367970572385e-08; - -/* 80456958-80456960 004F58 0008+00 1/1 0/0 0/0 .sdata2 @368 */ -SECTION_SDATA2 static f64 lit_368 = 2.0; - -/* 80456960-80456968 004F60 0008+00 1/1 0/0 0/0 .sdata2 @370 */ -SECTION_SDATA2 static f64 lit_370 = 4503601774854144.0 /* cast s32 to float */; - -/* 80369ED8-8036A708 364818 0830+00 0/0 1/1 0/0 .text __ieee754_pow */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_pow() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_pow/__ieee754_pow.s" + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + y1 = y; + __LO(y1) = 0; + p_l = (y - y1) * t1 + y * t2; + p_h = y1 * t1; + z = p_l + p_h; + j = __HI(z); + i = __LO(z); + if (j >= 0x40900000) { /* z >= 1024 */ + if (((j - 0x40900000) | i) != 0) /* if z > 1024 */ + return s * huge * huge; /* overflow */ + else { + if (p_l + ovt > z - p_h) + return s * huge * huge; /* overflow */ + } + } else if ((j & 0x7fffffff) >= 0x4090cc00) { /* z <= -1075 */ + if (((j - 0xc090cc00) | i) != 0) /* z < -1075 */ + return s * tiny * tiny; /* underflow */ + else { + if (p_l <= z - p_h) + return s * tiny * tiny; /* underflow */ + } + } + /* + * compute 2**(p_h+p_l) + */ + i = j & 0x7fffffff; + k = (i >> 20) - 0x3ff; + n = 0; + if (i > 0x3fe00000) { /* if |z| > 0.5, set n = [z+0.5] */ + n = j + (0x00100000 >> (k + 1)); + k = ((n & 0x7fffffff) >> 20) - 0x3ff; /* new k for n */ + t = zero; + __HI(t) = (n & ~(0x000fffff >> k)); + n = ((n & 0x000fffff) | 0x00100000) >> (20 - k); + if (j < 0) + n = -n; + p_h -= t; + } + t = p_l + p_h; + __LO(t) = 0; + u = t * lg2_h; + v = (p_l - (t - p_h)) * lg2 + t * lg2_l; + z = u + v; + w = v - (z - u); + t = z * z; + t1 = z - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); + r = (z * t1) / (t1 - two) - (w + z * w); + z = one - (r - z); + j = __HI(z); + j += (n << 20); + if ((j >> 20) <= 0) + z = ldexp(z, n); /* subnormal output */ + else + __HI(z) += (n << 20); + return s * z; } -#pragma pop + +#endif /* defined(_DOUBLE_IS_32BITS) */ + +// EOF e_pow.c \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/e_rem_pio2.c b/libs/MSL_C/Math/Double_precision/e_rem_pio2.c index d2d70f9f87f..ed82fba2158 100644 --- a/libs/MSL_C/Math/Double_precision/e_rem_pio2.c +++ b/libs/MSL_C/Math/Double_precision/e_rem_pio2.c @@ -1,105 +1,181 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_rem_pio2 -// -#include "MSL_C/Math/Double_precision/e_rem_pio2.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)e_rem_pio2.c 1.4 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ -// -// Forward References: -// +/* __ieee754_rem_pio2(x,y) + * + * return the remainder of x rem pi/2 in y[0]+y[1] + * use __kernel_rem_pio2() + */ -void __ieee754_rem_pio2(); +#include "fdlibm.h" +#include "MSL_C/math.h" -// -// External References: -// - -void __kernel_rem_pio2(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A23B0-803A24B8 02EA10 0108+00 1/1 0/0 0/0 .rodata two_over_pi */ -SECTION_RODATA static u8 const two_over_pi[264] = { - 0x00, 0xA2, 0xF9, 0x83, 0x00, 0x6E, 0x4E, 0x44, 0x00, 0x15, 0x29, 0xFC, 0x00, 0x27, 0x57, 0xD1, - 0x00, 0xF5, 0x34, 0xDD, 0x00, 0xC0, 0xDB, 0x62, 0x00, 0x95, 0x99, 0x3C, 0x00, 0x43, 0x90, 0x41, - 0x00, 0xFE, 0x51, 0x63, 0x00, 0xAB, 0xDE, 0xBB, 0x00, 0xC5, 0x61, 0xB7, 0x00, 0x24, 0x6E, 0x3A, - 0x00, 0x42, 0x4D, 0xD2, 0x00, 0xE0, 0x06, 0x49, 0x00, 0x2E, 0xEA, 0x09, 0x00, 0xD1, 0x92, 0x1C, - 0x00, 0xFE, 0x1D, 0xEB, 0x00, 0x1C, 0xB1, 0x29, 0x00, 0xA7, 0x3E, 0xE8, 0x00, 0x82, 0x35, 0xF5, - 0x00, 0x2E, 0xBB, 0x44, 0x00, 0x84, 0xE9, 0x9C, 0x00, 0x70, 0x26, 0xB4, 0x00, 0x5F, 0x7E, 0x41, - 0x00, 0x39, 0x91, 0xD6, 0x00, 0x39, 0x83, 0x53, 0x00, 0x39, 0xF4, 0x9C, 0x00, 0x84, 0x5F, 0x8B, - 0x00, 0xBD, 0xF9, 0x28, 0x00, 0x3B, 0x1F, 0xF8, 0x00, 0x97, 0xFF, 0xDE, 0x00, 0x05, 0x98, 0x0F, - 0x00, 0xEF, 0x2F, 0x11, 0x00, 0x8B, 0x5A, 0x0A, 0x00, 0x6D, 0x1F, 0x6D, 0x00, 0x36, 0x7E, 0xCF, - 0x00, 0x27, 0xCB, 0x09, 0x00, 0xB7, 0x4F, 0x46, 0x00, 0x3F, 0x66, 0x9E, 0x00, 0x5F, 0xEA, 0x2D, - 0x00, 0x75, 0x27, 0xBA, 0x00, 0xC7, 0xEB, 0xE5, 0x00, 0xF1, 0x7B, 0x3D, 0x00, 0x07, 0x39, 0xF7, - 0x00, 0x8A, 0x52, 0x92, 0x00, 0xEA, 0x6B, 0xFB, 0x00, 0x5F, 0xB1, 0x1F, 0x00, 0x8D, 0x5D, 0x08, - 0x00, 0x56, 0x03, 0x30, 0x00, 0x46, 0xFC, 0x7B, 0x00, 0x6B, 0xAB, 0xF0, 0x00, 0xCF, 0xBC, 0x20, - 0x00, 0x9A, 0xF4, 0x36, 0x00, 0x1D, 0xA9, 0xE3, 0x00, 0x91, 0x61, 0x5E, 0x00, 0xE6, 0x1B, 0x08, - 0x00, 0x65, 0x99, 0x85, 0x00, 0x5F, 0x14, 0xA0, 0x00, 0x68, 0x40, 0x8D, 0x00, 0xFF, 0xD8, 0x80, - 0x00, 0x4D, 0x73, 0x27, 0x00, 0x31, 0x06, 0x06, 0x00, 0x15, 0x56, 0xCA, 0x00, 0x73, 0xA8, 0xC9, - 0x00, 0x60, 0xE2, 0x7B, 0x00, 0xC0, 0x8C, 0x6B, -}; -COMPILER_STRIP_GATE(0x803A23B0, &two_over_pi); - -/* 803A24B8-803A2538 02EB18 0080+00 1/1 0/0 0/0 .rodata npio2_hw */ -SECTION_RODATA static u8 const npio2_hw[128] = { - 0x3F, 0xF9, 0x21, 0xFB, 0x40, 0x09, 0x21, 0xFB, 0x40, 0x12, 0xD9, 0x7C, 0x40, 0x19, 0x21, 0xFB, - 0x40, 0x1F, 0x6A, 0x7A, 0x40, 0x22, 0xD9, 0x7C, 0x40, 0x25, 0xFD, 0xBB, 0x40, 0x29, 0x21, 0xFB, - 0x40, 0x2C, 0x46, 0x3A, 0x40, 0x2F, 0x6A, 0x7A, 0x40, 0x31, 0x47, 0x5C, 0x40, 0x32, 0xD9, 0x7C, - 0x40, 0x34, 0x6B, 0x9C, 0x40, 0x35, 0xFD, 0xBB, 0x40, 0x37, 0x8F, 0xDB, 0x40, 0x39, 0x21, 0xFB, - 0x40, 0x3A, 0xB4, 0x1B, 0x40, 0x3C, 0x46, 0x3A, 0x40, 0x3D, 0xD8, 0x5A, 0x40, 0x3F, 0x6A, 0x7A, - 0x40, 0x40, 0x7E, 0x4C, 0x40, 0x41, 0x47, 0x5C, 0x40, 0x42, 0x10, 0x6C, 0x40, 0x42, 0xD9, 0x7C, - 0x40, 0x43, 0xA2, 0x8C, 0x40, 0x44, 0x6B, 0x9C, 0x40, 0x45, 0x34, 0xAC, 0x40, 0x45, 0xFD, 0xBB, - 0x40, 0x46, 0xC6, 0xCB, 0x40, 0x47, 0x8F, 0xDB, 0x40, 0x48, 0x58, 0xEB, 0x40, 0x49, 0x21, 0xFB, -}; -COMPILER_STRIP_GATE(0x803A24B8, &npio2_hw); - -/* 80456968-80456970 004F68 0008+00 1/1 0/0 0/0 .sdata2 @145 */ -SECTION_SDATA2 static u8 lit_145[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +/* + * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi + */ +#ifdef __STDC__ +static const int two_over_pi[] = { +#else +static int two_over_pi[] = { +#endif + 0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, + 0x246E3A, 0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, + 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, + 0x8B5A0A, 0x6D1F6D, 0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, 0xF17B3D, 0x0739F7, + 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, + 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B, }; -/* 80456970-80456978 004F70 0008+00 1/1 0/0 0/0 .sdata2 @146 */ -SECTION_SDATA2 static f64 lit_146 = 1.5707963267341256; +#ifdef __STDC__ +static const int npio2_hw[] = { +#else +static int npio2_hw[] = { +#endif + 0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, 0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, + 0x4032D97C, 0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, 0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, + 0x4042106C, 0x4042D97C, 0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, 0x404858EB, 0x404921FB, +}; -/* 80456978-80456980 004F78 0008+00 1/1 0/0 0/0 .sdata2 @147 */ -SECTION_SDATA2 static f64 lit_147 = 6.077100506506192e-11; +/* + * invpio2: 53 bits of 2/pi + * pio2_1: first 33 bit of pi/2 + * pio2_1t: pi/2 - pio2_1 + * pio2_2: second 33 bit of pi/2 + * pio2_2t: pi/2 - (pio2_1+pio2_2) + * pio2_3: third 33 bit of pi/2 + * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) + */ -/* 80456980-80456988 004F80 0008+00 1/1 0/0 0/0 .sdata2 @148 */ -SECTION_SDATA2 static f64 lit_148 = 6.077100506303966e-11; +#ifdef __STDC__ +static const double +#else +static double +#endif + zero + = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ + two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ + invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ + pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ + pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ + pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ + pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ + pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ + pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ -/* 80456988-80456990 004F88 0008+00 1/1 0/0 0/0 .sdata2 @149 */ -SECTION_SDATA2 static f64 lit_149 = 2.0222662487959506e-21; +#ifdef __STDC__ +int __ieee754_rem_pio2(double x, double* y) +#else +int __ieee754_rem_pio2(x, y) double x, y[]; +#endif +{ + double z, w, t, r, fn; + double tx[3]; + int e0, i, j, nx, n, ix, hx; -/* 80456990-80456998 004F90 0008+00 1/1 0/0 0/0 .sdata2 @150 */ -SECTION_SDATA2 static f64 lit_150 = 0.5; - -/* 80456998-804569A0 004F98 0008+00 1/1 0/0 0/0 .sdata2 @151 */ -SECTION_SDATA2 static f64 lit_151 = 0.6366197723675814; - -/* 804569A0-804569A8 004FA0 0008+00 1/1 0/0 0/0 .sdata2 @152 */ -SECTION_SDATA2 static f64 lit_152 = 2.0222662487111665e-21; - -/* 804569A8-804569B0 004FA8 0008+00 1/1 0/0 0/0 .sdata2 @153 */ -SECTION_SDATA2 static f64 lit_153 = 8.4784276603689e-32; - -/* 804569B0-804569B8 004FB0 0008+00 1/1 0/0 0/0 .sdata2 @154 */ -SECTION_SDATA2 static f64 lit_154 = 16777216.0; - -/* 804569B8-804569C0 004FB8 0008+00 1/1 0/0 0/0 .sdata2 @157 */ -SECTION_SDATA2 static f64 lit_157 = 4503601774854144.0 /* cast s32 to float */; - -/* 8036A708-8036AAA8 365048 03A0+00 0/0 3/3 0/0 .text __ieee754_rem_pio2 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_rem_pio2() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_rem_pio2/__ieee754_rem_pio2.s" -} -#pragma pop + hx = __HI(x); /* high word of x */ + ix = hx & 0x7fffffff; + if (ix <= 0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */ + { + y[0] = x; + y[1] = 0; + return 0; + } + if (ix < 0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */ + if (hx > 0) { + z = x - pio2_1; + if (ix != 0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z - pio2_1t; + y[1] = (z - y[0]) - pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z -= pio2_2; + y[0] = z - pio2_2t; + y[1] = (z - y[0]) - pio2_2t; + } + return 1; + } else { /* negative x */ + z = x + pio2_1; + if (ix != 0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z + pio2_1t; + y[1] = (z - y[0]) + pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z += pio2_2; + y[0] = z + pio2_2t; + y[1] = (z - y[0]) + pio2_2t; + } + return -1; + } + } + if (ix <= 0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */ + t = fabs(x); + n = (int)(t * invpio2 + half); + fn = (double)n; + r = t - fn * pio2_1; + w = fn * pio2_1t; /* 1st round good to 85 bit */ + if (n < 32 && ix != npio2_hw[n - 1]) { + y[0] = r - w; /* quick check no cancellation */ + } else { + j = ix >> 20; + y[0] = r - w; + i = j - (((__HI(y[0])) >> 20) & 0x7ff); + if (i > 16) { /* 2nd iteration needed, good to 118 */ + t = r; + r = t - fn * pio2_2; + w = fn * pio2_2t - ((t - r) - fn * pio2_2); + y[0] = r - w; + i = j - (((__HI(y[0])) >> 20) & 0x7ff); + if (i > 49) { /* 3rd iteration need, 151 bits acc */ + t = r; /* will cover all possible cases */ + w = fn * pio2_3; + r = t - w; + w = fn * pio2_3t - ((t - r) - w); + y[0] = r - w; + } + } + } + y[1] = (r - y[0]) - w; + if (hx < 0) { + y[0] = -y[0]; + y[1] = -y[1]; + return -n; + } else + return n; + } + /* + * all other (large) arguments + */ + if (ix >= 0x7ff00000) { /* x is inf or NaN */ + y[0] = y[1] = x - x; + return 0; + } + /* set z = scalbn(|x|,ilogb(x)-23) */ + __LO(z) = __LO(x); + e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */ + __HI(z) = ix - (e0 << 20); + for (i = 0; i < 2; i++) { + tx[i] = (double)((int)(z)); + z = (z - tx[i]) * two24; + } + tx[2] = z; + nx = 3; + while (tx[nx - 1] == zero) + nx--; /* skip zero term */ + n = __kernel_rem_pio2(tx, y, e0, nx, 2, two_over_pi); + if (hx < 0) { + y[0] = -y[0]; + y[1] = -y[1]; + return -n; + } + return n; +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/e_sqrt.c b/libs/MSL_C/Math/Double_precision/e_sqrt.c index 744a1755156..8eaf17d90ff 100644 --- a/libs/MSL_C/Math/Double_precision/e_sqrt.c +++ b/libs/MSL_C/Math/Double_precision/e_sqrt.c @@ -1,39 +1,462 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/e_sqrt -// +/* @(#)e_sqrt.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -#include "MSL_C/Math/Double_precision/e_sqrt.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* __ieee754_sqrt(x) + * Return correctly rounded sqrt. + * ------------------------------------------ + * | Use the hardware sqrt if you have one | + * ------------------------------------------ + * Method: + * Bit by bit method using integer arithmetic. (Slow, but portable) + * 1. Normalization + * Scale x to y in [1,4) with even powers of 2: + * find an integer k such that 1 <= (y=x*2^(2k)) < 4, then + * sqrt(x) = 2^k * sqrt(y) + * 2. Bit by bit computation + * Let q = sqrt(y) truncated to i bit after binary point (q = 1), + * i 0 + * i+1 2 + * s = 2*q , and y = 2 * ( y - q ). (1) + * i i i i + * + * To compute q from q , one checks whether + * i+1 i + * + * -(i+1) 2 + * (q + 2 ) <= y. (2) + * i + * -(i+1) + * If (2) is false, then q = q ; otherwise q = q + 2 . + * i+1 i i+1 i + * + * With some algebric manipulation, it is not difficult to see + * that (2) is equivalent to + * -(i+1) + * s + 2 <= y (3) + * i i + * + * The advantage of (3) is that s and y can be computed by + * i i + * the following recurrence formula: + * if (3) is false + * + * s = s , y = y ; (4) + * i+1 i i+1 i + * + * otherwise, + * -i -(i+1) + * s = s + 2 , y = y - s - 2 (5) + * i+1 i i+1 i i + * + * One may easily use induction to prove (4) and (5). + * Note. Since the left hand side of (3) contain only i+2 bits, + * it does not necessary to do a full (53-bit) comparison + * in (3). + * 3. Final rounding + * After generating the 53 bits result, we compute one more bit. + * Together with the remainder, we can decide whether the + * result is exact, bigger than 1/2ulp, or less than 1/2ulp + * (it will never equal to 1/2ulp). + * The rounding mode can be detected by checking whether + * huge + tiny is equal to huge, and whether huge - tiny is + * equal to huge for some floating point number "huge" and "tiny". + * + * Special cases: + * sqrt(+-0) = +-0 ... exact + * sqrt(inf) = inf + * sqrt(-ve) = NaN ... with invalid signal + * sqrt(NaN) = NaN ... with invalid signal for signaling NaN + * + * Other methods : see the appended file at the end of the program below. + *--------------- + */ -// -// Forward References: -// +#include "fdlibm.h" +#include "errno.h" +#include "MSL_C/math.h" -void __ieee754_sqrt(); +#ifdef __STDC__ +static const double one = 1.0, tiny = 1.0e-300; +#else +static double one = 1.0, tiny = 1.0e-300; +#endif -// -// External References: -// +#ifdef __STDC__ +double __ieee754_sqrt(double x) +#else +double __ieee754_sqrt(x) double x; +#endif +{ + double z; + int sign = (int)0x80000000; + unsigned r, t1, s1, ix1, q1; + int ix0, s0, q, m, t, i; -extern u32 __float_nan; -extern u8 errno[4 + 4 /* padding */]; + ix0 = __HI(x); /* high word of x */ + ix1 = __LO(x); /* low word of x */ -// -// Declarations: -// + /* take care of Inf and NaN */ + if ((ix0 & 0x7ff00000) == 0x7ff00000) { + errno = 33; + return x * x + x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf + sqrt(-inf)=sNaN */ + } + /* take care of zero */ + if (ix0 <= 0) { + if (((ix0 & (~sign)) | ix1) == 0) + return x; /* sqrt(+-0) = +-0 */ + else if (ix0 < 0) { + errno = 33; + return *__float_nan; + } /* sqrt(-ve) = sNaN */ + } + /* normalize x */ + m = (ix0 >> 20); + if (m == 0) { /* subnormal x */ + while (ix0 == 0) { + m -= 21; + ix0 |= (ix1 >> 11); + ix1 <<= 21; + } + for (i = 0; (ix0 & 0x00100000) == 0; i++) + ix0 <<= 1; + m -= i - 1; + ix0 |= (ix1 >> (32 - i)); + ix1 <<= i; + } + m -= 1023; /* unbias exponent */ + ix0 = (ix0 & 0x000fffff) | 0x00100000; + if (m & 1) { /* odd m, double x to make it even */ + ix0 += ix0 + ((ix1 & sign) >> 31); + ix1 += ix1; + } + m >>= 1; /* m = [m/2] */ -/* ############################################################################################## */ -/* 80456B48-80456B50 005148 0008+00 1/1 0/0 0/0 .sdata2 @164 */ -SECTION_SDATA2 static f64 lit_164 = 1.0; + /* generate sqrt(x) bit by bit */ + ix0 += ix0 + ((ix1 & sign) >> 31); + ix1 += ix1; + q = q1 = s0 = s1 = 0; /* [q,q1] = sqrt(x) */ + r = 0x00200000; /* r = moving bit from right to left */ -/* 8036C7A0-8036C9C4 3670E0 0224+00 0/0 1/1 0/0 .text __ieee754_sqrt */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ieee754_sqrt() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/e_sqrt/__ieee754_sqrt.s" + while (r != 0) { + t = s0 + r; + if (t <= ix0) { + s0 = t + r; + ix0 -= t; + q += r; + } + ix0 += ix0 + ((ix1 & sign) >> 31); + ix1 += ix1; + r >>= 1; + } + + r = sign; + while (r != 0) { + t1 = s1 + r; + t = s0; + if ((t < ix0) || ((t == ix0) && (t1 <= ix1))) { + s1 = t1 + r; + if (((t1 & sign) == sign) && (s1 & sign) == 0) + s0 += 1; + ix0 -= t; + if (ix1 < t1) + ix0 -= 1; + ix1 -= t1; + q1 += r; + } + ix0 += ix0 + ((ix1 & sign) >> 31); + ix1 += ix1; + r >>= 1; + } + + /* use floating add to find out rounding direction */ + if ((ix0 | ix1) != 0) { + z = one - tiny; /* trigger inexact flag */ + if (z >= one) { + z = one + tiny; + if (q1 == (unsigned)0xffffffff) { + q1 = 0; + q += 1; + } else if (z > one) { + if (q1 == (unsigned)0xfffffffe) + q += 1; + q1 += 2; + } else + q1 += (q1 & 1); + } + } + ix0 = (q >> 1) + 0x3fe00000; + ix1 = q1 >> 1; + if ((q & 1) == 1) + ix1 |= sign; + ix0 += (m << 20); + __HI(z) = ix0; + __LO(z) = ix1; + return z; } -#pragma pop + +/* +Other methods (use floating-point arithmetic) +------------- +(This is a copy of a drafted paper by Prof W. Kahan +and K.C. Ng, written in May, 1986) + + Two algorithms are given here to implement sqrt(x) + (IEEE double precision arithmetic) in software. + Both supply sqrt(x) correctly rounded. The first algorithm (in + Section A) uses newton iterations and involves four divisions. + The second one uses reciproot iterations to avoid division, but + requires more multiplications. Both algorithms need the ability + to chop results of arithmetic operations instead of round them, + and the INEXACT flag to indicate when an arithmetic operation + is executed exactly with no roundoff error, all part of the + standard (IEEE 754-1985). The ability to perform shift, add, + subtract and logical AND operations upon 32-bit words is needed + too, though not part of the standard. + +A. sqrt(x) by Newton Iteration + + (1) Initial approximation + + Let x0 and x1 be the leading and the trailing 32-bit words of + a floating point number x (in IEEE double format) respectively + + 1 11 52 ...widths + ------------------------------------------------------ + x: |s| e | f | + ------------------------------------------------------ + msb lsb msb lsb ...order + + + ------------------------ ------------------------ + x0: |s| e | f1 | x1: | f2 | + ------------------------ ------------------------ + + By performing shifts and subtracts on x0 and x1 (both regarded + as integers), we obtain an 8-bit approximation of sqrt(x) as + follows. + + k := (x0>>1) + 0x1ff80000; + y0 := k - T1[31&(k>>15)]. ... y ~ sqrt(x) to 8 bits + Here k is a 32-bit integer and T1[] is an integer array containing + correction terms. Now magically the floating value of y (y's + leading 32-bit word is y0, the value of its trailing word is 0) + approximates sqrt(x) to almost 8-bit. + + Value of T1: + static int T1[32]= { + 0, 1024, 3062, 5746, 9193, 13348, 18162, 23592, + 29598, 36145, 43202, 50740, 58733, 67158, 75992, 85215, + 83599, 71378, 60428, 50647, 41945, 34246, 27478, 21581, + 16499, 12183, 8588, 5674, 3403, 1742, 661, 130,}; + + (2) Iterative refinement + + Apply Heron's rule three times to y, we have y approximates + sqrt(x) to within 1 ulp (Unit in the Last Place): + + y := (y+x/y)/2 ... almost 17 sig. bits + y := (y+x/y)/2 ... almost 35 sig. bits + y := y-(y-x/y)/2 ... within 1 ulp + + + Remark 1. + Another way to improve y to within 1 ulp is: + + y := (y+x/y) ... almost 17 sig. bits to 2*sqrt(x) + y := y - 0x00100006 ... almost 18 sig. bits to sqrt(x) + + 2 + (x-y )*y + y := y + 2* ---------- ...within 1 ulp + 2 + 3y + x + + + This formula has one division fewer than the one above; however, + it requires more multiplications and additions. Also x must be + scaled in advance to avoid spurious overflow in evaluating the + expression 3y*y+x. Hence it is not recommended uless division + is slow. If division is very slow, then one should use the + reciproot algorithm given in section B. + + (3) Final adjustment + + By twiddling y's last bit it is possible to force y to be + correctly rounded according to the prevailing rounding mode + as follows. Let r and i be copies of the rounding mode and + inexact flag before entering the square root program. Also we + use the expression y+-ulp for the next representable floating + numbers (up and down) of y. Note that y+-ulp = either fixed + point y+-1, or multiply y by nextafter(1,+-inf) in chopped + mode. + + I := FALSE; ... reset INEXACT flag I + R := RZ; ... set rounding mode to round-toward-zero + z := x/y; ... chopped quotient, possibly inexact + If(not I) then { ... if the quotient is exact + if(z=y) { + I := i; ... restore inexact flag + R := r; ... restore rounded mode + return sqrt(x):=y. + } else { + z := z - ulp; ... special rounding + } + } + i := TRUE; ... sqrt(x) is inexact + If (r=RN) then z=z+ulp ... rounded-to-nearest + If (r=RP) then { ... round-toward-+inf + y = y+ulp; z=z+ulp; + } + y := y+z; ... chopped sum + y0:=y0-0x00100000; ... y := y/2 is correctly rounded. + I := i; ... restore inexact flag + R := r; ... restore rounded mode + return sqrt(x):=y. + + (4) Special cases + + Square root of +inf, +-0, or NaN is itself; + Square root of a negative number is NaN with invalid signal. + + +B. sqrt(x) by Reciproot Iteration + + (1) Initial approximation + + Let x0 and x1 be the leading and the trailing 32-bit words of + a floating point number x (in IEEE double format) respectively + (see section A). By performing shifs and subtracts on x0 and y0, + we obtain a 7.8-bit approximation of 1/sqrt(x) as follows. + + k := 0x5fe80000 - (x0>>1); + y0:= k - T2[63&(k>>14)]. ... y ~ 1/sqrt(x) to 7.8 bits + + Here k is a 32-bit integer and T2[] is an integer array + containing correction terms. Now magically the floating + value of y (y's leading 32-bit word is y0, the value of + its trailing word y1 is set to zero) approximates 1/sqrt(x) + to almost 7.8-bit. + + Value of T2: + static int T2[64]= { + 0x1500, 0x2ef8, 0x4d67, 0x6b02, 0x87be, 0xa395, 0xbe7a, 0xd866, + 0xf14a, 0x1091b,0x11fcd,0x13552,0x14999,0x15c98,0x16e34,0x17e5f, + 0x18d03,0x19a01,0x1a545,0x1ae8a,0x1b5c4,0x1bb01,0x1bfde,0x1c28d, + 0x1c2de,0x1c0db,0x1ba73,0x1b11c,0x1a4b5,0x1953d,0x18266,0x16be0, + 0x1683e,0x179d8,0x18a4d,0x19992,0x1a789,0x1b445,0x1bf61,0x1c989, + 0x1d16d,0x1d77b,0x1dddf,0x1e2ad,0x1e5bf,0x1e6e8,0x1e654,0x1e3cd, + 0x1df2a,0x1d635,0x1cb16,0x1be2c,0x1ae4e,0x19bde,0x1868e,0x16e2e, + 0x1527f,0x1334a,0x11051,0xe951, 0xbe01, 0x8e0d, 0x5924, 0x1edd,}; + + (2) Iterative refinement + + Apply Reciproot iteration three times to y and multiply the + result by x to get an approximation z that matches sqrt(x) + to about 1 ulp. To be exact, we will have + -1ulp < sqrt(x)-z<1.0625ulp. + + ... set rounding mode to Round-to-nearest + y := y*(1.5-0.5*x*y*y) ... almost 15 sig. bits to 1/sqrt(x) + y := y*((1.5-2^-30)+0.5*x*y*y)... about 29 sig. bits to 1/sqrt(x) + ... special arrangement for better accuracy + z := x*y ... 29 bits to sqrt(x), with z*y<1 + z := z + 0.5*z*(1-z*y) ... about 1 ulp to sqrt(x) + + Remark 2. The constant 1.5-2^-30 is chosen to bias the error so that + (a) the term z*y in the final iteration is always less than 1; + (b) the error in the final result is biased upward so that + -1 ulp < sqrt(x) - z < 1.0625 ulp + instead of |sqrt(x)-z|<1.03125ulp. + + (3) Final adjustment + + By twiddling y's last bit it is possible to force y to be + correctly rounded according to the prevailing rounding mode + as follows. Let r and i be copies of the rounding mode and + inexact flag before entering the square root program. Also we + use the expression y+-ulp for the next representable floating + numbers (up and down) of y. Note that y+-ulp = either fixed + point y+-1, or multiply y by nextafter(1,+-inf) in chopped + mode. + + R := RZ; ... set rounding mode to round-toward-zero + switch(r) { + case RN: ... round-to-nearest + if(x<= z*(z-ulp)...chopped) z = z - ulp; else + if(x<= z*(z+ulp)...chopped) z = z; else z = z+ulp; + break; + case RZ:case RM: ... round-to-zero or round-to--inf + R:=RP; ... reset rounding mod to round-to-+inf + if(x=(z+ulp)*(z+ulp) ...rounded up) z = z+ulp; + break; + case RP: ... round-to-+inf + if(x>(z+ulp)*(z+ulp)...chopped) z = z+2*ulp; else + if(x>z*z ...chopped) z = z+ulp; + break; + } + + Remark 3. The above comparisons can be done in fixed point. For + example, to compare x and w=z*z chopped, it suffices to compare + x1 and w1 (the trailing parts of x and w), regarding them as + two's complement integers. + + ...Is z an exact square root? + To determine whether z is an exact square root of x, let z1 be the + trailing part of z, and also let x0 and x1 be the leading and + trailing parts of x. + + If ((z1&0x03ffffff)!=0) ... not exact if trailing 26 bits of z!=0 + I := 1; ... Raise Inexact flag: z is not exact + else { + j := 1 - [(x0>>20)&1] ... j = logb(x) mod 2 + k := z1 >> 26; ... get z's 25-th and 26-th + fraction bits + I := i or (k&j) or ((k&(j+j+1))!=(x1&3)); + } + R:= r ... restore rounded mode + return sqrt(x):=z. + + If multiplication is cheaper then the foregoing red tape, the + Inexact flag can be evaluated by + + I := i; + I := (z*z!=x) or I. + + Note that z*z can overwrite I; this value must be sensed if it is + True. + + Remark 4. If z*z = x exactly, then bit 25 to bit 0 of z1 must be + zero. + + -------------------- + z1: | f2 | + -------------------- + bit 31 bit 0 + + Further more, bit 27 and 26 of z1, bit 0 and 1 of x1, and the odd + or even of logb(x) have the following relations: + + ------------------------------------------------- + bit 27,26 of z1 bit 1,0 of x1 logb(x) + ------------------------------------------------- + 00 00 odd and even + 01 01 even + 10 10 odd + 10 00 even + 11 01 even + ------------------------------------------------- + + (4) Special cases (see (4) of Section A). + + */ \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/k_cos.c b/libs/MSL_C/Math/Double_precision/k_cos.c index 1707287c246..5db423ec493 100644 --- a/libs/MSL_C/Math/Double_precision/k_cos.c +++ b/libs/MSL_C/Math/Double_precision/k_cos.c @@ -1,60 +1,93 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/k_cos -// -#include "MSL_C/Math/Double_precision/k_cos.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)k_cos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -// -// Forward References: -// +/* + * __kernel_cos( x, y ) + * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * + * Algorithm + * 1. Since cos(-x) = cos(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0. + * 3. cos(x) is approximated by a polynomial of degree 14 on + * [0,pi/4] + * 4 14 + * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x + * where the remez error is + * + * | 2 4 6 8 10 12 14 | -58 + * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 + * | | + * + * 4 6 8 10 12 14 + * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then + * cos(x) = 1 - x*x/2 + r + * since cos(x+y) ~ cos(x) - sin(x)*y + * ~ cos(x) - x*y, + * a correction term is necessary in cos(x) and hence + * cos(x+y) = 1 - (x*x/2 - (r - x*y)) + * For better accuracy when x > 0.3, let qx = |x|/4 with + * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. + * Then + * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). + * Note that 1-qx and (x*x/2-qx) is EXACT here, and the + * magnitude of the latter is at least a quarter of x*x/2, + * thus, reducing the rounding error in the subtraction. + */ -void __kernel_cos(); +#include "fdlibm.h" -// -// External References: -// +#ifdef __STDC__ +static const double +#else +static double +#endif + one + = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ + C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ + C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ + C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ + C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ + C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ + C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ -// -// Declarations: -// - -/* ############################################################################################## */ -/* 804569C0-804569C8 004FC0 0008+00 1/1 0/0 0/0 .sdata2 @65 */ -SECTION_SDATA2 static f64 lit_65 = 1.0; - -/* 804569C8-804569D0 004FC8 0008+00 1/1 0/0 0/0 .sdata2 @66 */ -SECTION_SDATA2 static f64 lit_66 = 0.0416666666666666; - -/* 804569D0-804569D8 004FD0 0008+00 1/1 0/0 0/0 .sdata2 @67 */ -SECTION_SDATA2 static f64 lit_67 = -0.001388888888887411; - -/* 804569D8-804569E0 004FD8 0008+00 1/1 0/0 0/0 .sdata2 @68 */ -SECTION_SDATA2 static f64 lit_68 = 2.480158728947673e-05; - -/* 804569E0-804569E8 004FE0 0008+00 1/1 0/0 0/0 .sdata2 @69 */ -SECTION_SDATA2 static f64 lit_69 = -2.7557314351390663e-07; - -/* 804569E8-804569F0 004FE8 0008+00 1/1 0/0 0/0 .sdata2 @70 */ -SECTION_SDATA2 static f64 lit_70 = 2.087572321298175e-09; - -/* 804569F0-804569F8 004FF0 0008+00 1/1 0/0 0/0 .sdata2 @71 */ -SECTION_SDATA2 static f64 lit_71 = -1.1359647557788195e-11; - -/* 804569F8-80456A00 004FF8 0008+00 1/1 0/0 0/0 .sdata2 @72 */ -SECTION_SDATA2 static f64 lit_72 = 0.5; - -/* 80456A00-80456A08 005000 0008+00 1/1 0/0 0/0 .sdata2 @73 */ -SECTION_SDATA2 static f64 lit_73 = 0.28125; - -/* 8036AAA8-8036AB9C 3653E8 00F4+00 0/0 2/2 0/0 .text __kernel_cos */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __kernel_cos() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/k_cos/__kernel_cos.s" -} -#pragma pop +#ifdef __STDC__ +double __kernel_cos(double x, double y) +#else +double __kernel_cos(x, y) double x, y; +#endif +{ + double a, hz, z, r, qx; + int ix; + ix = __HI(x) & 0x7fffffff; /* ix = |x|'s high word*/ + if (ix < 0x3e400000) { /* if x < 2**27 */ + if (((int)x) == 0) + return one; /* generate inexact */ + } + z = x * x; + r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6))))); + if (ix < 0x3FD33333) /* if |x| < 0.3 */ + return one - (0.5 * z - (z * r - x * y)); + else { + if (ix > 0x3fe90000) { /* x > 0.78125 */ + qx = 0.28125; + } else { + __HI(qx) = ix - 0x00200000; /* x/4 */ + __LO(qx) = 0; + } + hz = 0.5 * z - qx; + a = one - qx; + return a - (hz - (z * r - x * y)); + } +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/k_rem_pio2.c b/libs/MSL_C/Math/Double_precision/k_rem_pio2.c index e09d2b995bb..b08e3c9dee1 100644 --- a/libs/MSL_C/Math/Double_precision/k_rem_pio2.c +++ b/libs/MSL_C/Math/Double_precision/k_rem_pio2.c @@ -1,79 +1,353 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/k_rem_pio2 -// -#include "MSL_C/Math/Double_precision/k_rem_pio2.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)k_rem_pio2.c 1.2 95/01/04 */ +/* $Id: k_rem_pio2.c,v 1.2.14.1 2002/01/31 15:24:13 ceciliar Exp $ */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -// -// Forward References: -// +/* + * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + * double x[],y[]; int e0,nx,prec; int ipio2[]; + * + * __kernel_rem_pio2 return the last three digits of N with + * y = x - N*pi/2 + * so that |y| < pi/2. + * + * The method is to compute the integer (mod 8) and fraction parts of + * (2/pi)*x without doing the full multiplication. In general we + * skip the part of the product that are known to be a huge integer ( + * more accurately, = 0 mod 8 ). Thus the number of operations are + * independent of the exponent of the input. + * + * (2/pi) is represented by an array of 24-bit integers in ipio2[]. + * + * Input parameters: + * x[] The input value (must be positive) is broken into nx + * pieces of 24-bit integers in double precision format. + * x[i] will be the i-th 24 bit of x. The scaled exponent + * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 + * match x's up to 24 bits. + * + * Example of breaking a double positive z into x[0]+x[1]+x[2]: + * e0 = ilogb(z)-23 + * z = ldexp(z,-e0) + * for i = 0,1,2 + * x[i] = floor(z) + * z = (z-x[i])*2**24 + * + * + * y[] ouput result in an array of double precision numbers. + * The dimension of y[] is: + * 24-bit precision 1 + * 53-bit precision 2 + * 64-bit precision 2 + * 113-bit precision 3 + * The actual value is the sum of them. Thus for 113-bit + * precison, one may have to do something like: + * + * long double t,w,r_head, r_tail; + * t = (long double)y[2] + (long double)y[1]; + * w = (long double)y[0]; + * r_head = t+w; + * r_tail = w - (r_head - t); + * + * e0 The exponent of x[0] + * + * nx dimension of x[] + * + * prec an integer indicating the precision: + * 0 24 bits (single) + * 1 53 bits (double) + * 2 64 bits (extended) + * 3 113 bits (quad) + * + * ipio2[] + * integer array, contains the (24*i)-th to (24*i+23)-th + * bit of 2/pi after binary point. The corresponding + * floating value is + * + * ipio2[i] * 2^(-24(i+1)). + * + * External function: + * double ldexp(), floor(); + * + * + * Here is the description of some local variables: + * + * jk jk+1 is the initial number of terms of ipio2[] needed + * in the computation. The recommended value is 2,3,4, + * 6 for single, double, extended,and quad. + * + * jz local integer variable indicating the number of + * terms of ipio2[] used. + * + * jx nx - 1 + * + * jv index for pointing to the suitable ipio2[] for the + * computation. In general, we want + * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 + * is an integer. Thus + * e0-3-24*jv >= 0 or (e0-3)/24 >= jv + * Hence jv = max(0,(e0-3)/24). + * + * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. + * + * q[] double array with integral value, representing the + * 24-bits chunk of the product of x and 2/pi. + * + * q0 the corresponding exponent of q[0]. Note that the + * exponent for q[i] would be q0-24*i. + * + * PIo2[] double precision array, obtained by cutting pi/2 + * into 24 bits chunks. + * + * f[] ipio2[] in floating point + * + * iq[] integer array by breaking up q[] in 24-bits chunk. + * + * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] + * + * ih integer. If >0 it indicates q[] is >= 0.5, hence + * it also indicates the *sign* of the result. + * + */ -void __kernel_rem_pio2(); +/* + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ -// -// External References: -// +#include "fdlibm.h" -void _savefpr_25(); -void _restfpr_25(); -void floor(); -void ldexp(); +#ifdef __STDC__ +static const int init_jk[] = { 2, 3, 4, 6 }; +/* initial value for jk */ /*- cc 020130 -*/ +#else +static int init_jk[] = { 2, 3, 4, 6 }; /*- cc 020130 -*/ +#endif -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A2538-803A2548 02EB98 0010+00 1/1 0/0 0/0 .rodata init_jk */ -SECTION_RODATA static u8 const init_jk[16] = { - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, -}; -COMPILER_STRIP_GATE(0x803A2538, &init_jk); - -/* 803A2548-803A2588 02EBA8 0040+00 1/1 0/0 0/0 .rodata PIo2 */ -SECTION_RODATA static u8 const PIo2[64] = { - 0x3F, 0xF9, 0x21, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x3E, 0x74, 0x44, 0x2D, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0xF8, 0x46, 0x98, 0x80, 0x00, 0x00, 0x00, 0x3B, 0x78, 0xCC, 0x51, 0x60, 0x00, 0x00, 0x00, - 0x39, 0xF0, 0x1B, 0x83, 0x80, 0x00, 0x00, 0x00, 0x38, 0x7A, 0x25, 0x20, 0x40, 0x00, 0x00, 0x00, - 0x36, 0xE3, 0x82, 0x22, 0x80, 0x00, 0x00, 0x00, 0x35, 0x69, 0xF3, 0x1D, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A2548, &PIo2); - -/* 80456A08-80456A10 005008 0008+00 1/1 0/0 0/0 .sdata2 @436 */ -SECTION_SDATA2 static u8 lit_436[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#ifdef __STDC__ +static const double PIo2[] = { +#else +static double PIo2[] = { +#endif + 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ + 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ + 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ + 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ + 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ + 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ + 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ + 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ }; -/* 80456A10-80456A18 005010 0008+00 1/1 0/0 0/0 .sdata2 @437 */ -SECTION_SDATA2 static f64 lit_437 = 5.960464477539063e-08; +#ifdef __STDC__ +static const double +#else +static double +#endif + zero + = 0.0, + one = 1.0, two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ + twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ -/* 80456A18-80456A20 005018 0008+00 1/1 0/0 0/0 .sdata2 @438 */ -SECTION_SDATA2 static f64 lit_438 = 16777216.0; +#ifdef __STDC__ +int __kernel_rem_pio2(double* x, double* y, int e0, int nx, int prec, const int* ipio2) /*- cc 020130 -*/ +#else +int __kernel_rem_pio2(x, y, e0, nx, prec, ipio2) /*- cc 020130 -*/ + double x[], + y[]; +int e0, nx, prec; +int ipio2[]; /*- cc 020130 -*/ +#endif +{ + int jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih; /*- cc 020130 -*/ + double z, fw, f[20], fq[20], q[20]; -/* 80456A20-80456A28 005020 0008+00 1/1 0/0 0/0 .sdata2 @439 */ -SECTION_SDATA2 static f64 lit_439 = 8.0; + /* initialize jk*/ + jk = init_jk[prec]; + jp = jk; -/* 80456A28-80456A30 005028 0008+00 1/1 0/0 0/0 .sdata2 @440 */ -SECTION_SDATA2 static f64 lit_440 = 0.125; + /* determine jx,jv,q0, note that 3>q0 */ + jx = nx - 1; + jv = (e0 - 3) / 24; + if (jv < 0) + jv = 0; + q0 = e0 - 24 * (jv + 1); -/* 80456A30-80456A38 005030 0008+00 1/1 0/0 0/0 .sdata2 @441 */ -SECTION_SDATA2 static f64 lit_441 = 0.5; + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + j = jv - jx; + m = jx + jk; + for (i = 0; i <= m; i++, j++) + f[i] = (j < 0) ? zero : (double)ipio2[j]; -/* 80456A38-80456A40 005038 0008+00 1/1 0/0 0/0 .sdata2 @442 */ -SECTION_SDATA2 static f64 lit_442 = 1.0; + /* compute q[0],q[1],...q[jk] */ + for (i = 0; i <= jk; i++) { + for (j = 0, fw = 0.0; j <= jx; j++) + fw += x[j] * f[jx + i - j]; + q[i] = fw; + } -/* 80456A40-80456A48 005040 0008+00 1/1 0/0 0/0 .sdata2 @445 */ -SECTION_SDATA2 static f64 lit_445 = 4503601774854144.0 /* cast s32 to float */; + jz = jk; +recompute: + /* distill q[] into iq[] reversingly */ + for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) { + fw = (double)((int)(twon24 * z)); /*- cc 020130 -*/ + iq[i] = (int)(z - two24 * fw); /*- cc 020130 -*/ + z = q[j - 1] + fw; + } -/* 8036AB9C-8036B9F0 3654DC 0E54+00 0/0 1/1 0/0 .text __kernel_rem_pio2 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __kernel_rem_pio2() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/k_rem_pio2/__kernel_rem_pio2.s" -} -#pragma pop + /* compute n */ + z = ldexp(z, q0); /* actual value of z */ + z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */ + n = (int)z; /*- cc 020130 -*/ + z -= (double)n; + ih = 0; + if (q0 > 0) { /* need iq[jz-1] to determine n */ + i = (iq[jz - 1] >> (24 - q0)); + n += i; + iq[jz - 1] -= i << (24 - q0); + ih = iq[jz - 1] >> (23 - q0); + } else if (q0 == 0) + ih = iq[jz - 1] >> 23; + else if (z >= 0.5) + ih = 2; + + if (ih > 0) { /* q > 0.5 */ + n += 1; + carry = 0; + for (i = 0; i < jz; i++) { /* compute 1-q */ + j = iq[i]; + if (carry == 0) { + if (j != 0) { + carry = 1; + iq[i] = 0x1000000 - j; + } + } else + iq[i] = 0xffffff - j; + } + if (q0 > 0) { /* rare case: chance is 1 in 12 */ + switch (q0) { + case 1: + iq[jz - 1] &= 0x7fffff; + break; + case 2: + iq[jz - 1] &= 0x3fffff; + break; + } + } + if (ih == 2) { + z = one - z; + if (carry != 0) + z -= ldexp(one, q0); + } + } + + /* check if recomputation is needed */ + if (z == zero) { + j = 0; + for (i = jz - 1; i >= jk; i--) + j |= iq[i]; + if (j == 0) { /* need recomputation */ + for (k = 1; iq[jk - k] == 0; k++) + ; /* k = no. of terms needed */ + + for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */ + f[jx + i] = (double)ipio2[jv + i]; + for (j = 0, fw = 0.0; j <= jx; j++) + fw += x[j] * f[jx + i - j]; + q[i] = fw; + } + jz += k; + goto recompute; + } + } + + /* chop off zero terms */ + if (z == 0.0) { + jz -= 1; + q0 -= 24; + while (iq[jz] == 0) { + jz--; + q0 -= 24; + } + } else { /* break z into 24-bit if necessary */ + z = ldexp(z, -q0); + if (z >= two24) { + fw = (double)((int)(twon24 * z)); /*- cc 020130 -*/ + iq[jz] = (int)(z - two24 * fw); /*- cc 020130 -*/ + jz += 1; + q0 += 24; + iq[jz] = (int)fw; /*- cc 020130 -*/ + } else + iq[jz] = (int)z; /*- cc 020130 -*/ + } + + /* convert integer "bit" chunk to floating-point value */ + fw = ldexp(one, q0); + for (i = jz; i >= 0; i--) { + q[i] = fw * (double)iq[i]; + fw *= twon24; + } + + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + for (i = jz; i >= 0; i--) { + for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) + fw += PIo2[k] * q[i + k]; + fq[jz - i] = fw; + } + + /* compress fq[] into y[] */ + switch (prec) { + case 0: + fw = 0.0; + for (i = jz; i >= 0; i--) + fw += fq[i]; + y[0] = (ih == 0) ? fw : -fw; + break; + case 1: + case 2: + fw = 0.0; + for (i = jz; i >= 0; i--) + fw += fq[i]; + y[0] = (ih == 0) ? fw : -fw; + fw = fq[0] - fw; + for (i = 1; i <= jz; i++) + fw += fq[i]; + y[1] = (ih == 0) ? fw : -fw; + break; + case 3: /* painful */ + for (i = jz; i > 0; i--) { + fw = fq[i - 1] + fq[i]; + fq[i] += fq[i - 1] - fw; + fq[i - 1] = fw; + } + for (i = jz; i > 1; i--) { + fw = fq[i - 1] + fq[i]; + fq[i] += fq[i - 1] - fw; + fq[i - 1] = fw; + } + for (fw = 0.0, i = jz; i >= 2; i--) + fw += fq[i]; + if (ih == 0) { + y[0] = fq[0]; + y[1] = fq[1]; + y[2] = fw; + } else { + y[0] = -fq[0]; + y[1] = -fq[1]; + y[2] = -fw; + } + } + return n & 7; +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/k_sin.c b/libs/MSL_C/Math/Double_precision/k_sin.c index 7e4bd136d99..3d18dff3207 100644 --- a/libs/MSL_C/Math/Double_precision/k_sin.c +++ b/libs/MSL_C/Math/Double_precision/k_sin.c @@ -1,54 +1,80 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/k_sin -// -#include "MSL_C/Math/Double_precision/k_sin.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)k_sin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -// -// Forward References: -// +/* __kernel_sin( x, y, iy) + * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). + * + * Algorithm + * 1. Since sin(-x) = -sin(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0. + * 3. sin(x) is approximated by a polynomial of degree 13 on + * [0,pi/4] + * 3 13 + * sin(x) ~ x + S1*x + ... + S6*x + * where + * + * |sin(x) 2 4 6 8 10 12 | -58 + * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 + * | x | + * + * 4. sin(x+y) = sin(x) + sin'(x')*y + * ~ sin(x) + (1-x*x/2)*y + * For better accuracy, let + * 3 2 2 2 2 + * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) + * then 3 2 + * sin(x) = x + (S1*x + (x *(r-y/2)+y)) + */ -void __kernel_sin(); +#include "fdlibm.h" -// -// External References: -// +#ifdef __STDC__ +static const double +#else +static double +#endif + half + = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ + S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ + S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ + S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ + S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ + S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ + S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80456A48-80456A50 005048 0008+00 1/1 0/0 0/0 .sdata2 @60 */ -SECTION_SDATA2 static f64 lit_60 = 0.00833333333332249; - -/* 80456A50-80456A58 005050 0008+00 1/1 0/0 0/0 .sdata2 @61 */ -SECTION_SDATA2 static f64 lit_61 = -0.0001984126982985795; - -/* 80456A58-80456A60 005058 0008+00 1/1 0/0 0/0 .sdata2 @62 */ -SECTION_SDATA2 static f64 lit_62 = 2.7557313707070068e-06; - -/* 80456A60-80456A68 005060 0008+00 1/1 0/0 0/0 .sdata2 @63 */ -SECTION_SDATA2 static f64 lit_63 = -2.5050760253406863e-08; - -/* 80456A68-80456A70 005068 0008+00 1/1 0/0 0/0 .sdata2 @64 */ -SECTION_SDATA2 static f64 lit_64 = 1.58969099521155e-10; - -/* 80456A70-80456A78 005070 0008+00 1/1 0/0 0/0 .sdata2 @65 */ -SECTION_SDATA2 static f64 lit_65 = -0.16666666666666632; - -/* 80456A78-80456A80 005078 0008+00 1/1 0/0 0/0 .sdata2 @66 */ -SECTION_SDATA2 static f64 lit_66 = 0.5; - -/* 8036B9F0-8036BA90 366330 00A0+00 0/0 2/2 0/0 .text __kernel_sin */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __kernel_sin() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/k_sin/__kernel_sin.s" -} -#pragma pop +#ifdef __STDC__ +double __kernel_sin(double x, double y, int iy) +#else +double __kernel_sin(x, y, iy) double x, y; +int iy; /* iy=0 if y is zero */ +#endif +{ + double z, r, v; + int ix; + ix = __HI(x) & 0x7fffffff; /* high word of x */ + if (ix < 0x3e400000) /* |x| < 2**-27 */ + { + if ((int)x == 0) + return x; + } /* generate inexact */ + z = x * x; + v = z * x; + r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6))); + if (iy == 0) + return x + v * (S1 + z * r); + else + return x - ((z * (half * y - v * r) - y) - v * S1); +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/k_tan.c b/libs/MSL_C/Math/Double_precision/k_tan.c index 04f0eed1b7c..973be1c0e34 100644 --- a/libs/MSL_C/Math/Double_precision/k_tan.c +++ b/libs/MSL_C/Math/Double_precision/k_tan.c @@ -1,68 +1,181 @@ +//=========================================================================== // -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/k_tan +// k_tan.c // - -#include "MSL_C/Math/Double_precision/k_tan.h" -#include "dol2asm.h" -#include "dolphin/types.h" - +// Part of the standard mathematical function library // -// Forward References: +//=========================================================================== +//####ECOSGPLCOPYRIGHTBEGIN#### +// ------------------------------------------- +// This file is part of eCos, the Embedded Configurable Operating System. +// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. // - -void __kernel_tan(); - +// eCos is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 or (at your option) any later version. // -// External References: +// eCos is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. // - +// You should have received a copy of the GNU General Public License along +// with eCos; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. // -// Declarations: +// As a special exception, if other files instantiate templates or use macros +// or inline functions from this file, or you compile this file and link it +// with other works to produce a work based on this file, this file does not +// by itself cause the resulting work to be covered by the GNU General Public +// License. However the source code for this file must still be made available +// in accordance with section (3) of the GNU General Public License. // +// This exception does not invalidate any other reasons why a work based on +// this file might be covered by the GNU General Public License. +// +// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. +// at http://sources.redhat.com/ecos/ecos-license/ +// ------------------------------------------- +//####ECOSGPLCOPYRIGHTEND#### +//=========================================================================== +//#####DESCRIPTIONBEGIN#### +// +// Author(s): jlarmour +// Contributors: jlarmour +// Date: 1998-02-13 +// Purpose: +// Description: +// Usage: +// +//####DESCRIPTIONEND#### +// +//=========================================================================== -/* ############################################################################################## */ -/* 803A2588-803A25F0 02EBE8 0068+00 1/1 0/0 0/0 .rodata T */ -SECTION_RODATA static u8 const T[104] = { - 0x3F, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x63, 0x3F, 0xC1, 0x11, 0x11, 0x11, 0x10, 0xFE, - 0x7A, 0x3F, 0xAB, 0xA1, 0xBA, 0x1B, 0xB3, 0x41, 0xFE, 0x3F, 0x96, 0x64, 0xF4, 0x84, 0x06, - 0xD6, 0x37, 0x3F, 0x82, 0x26, 0xE3, 0xE9, 0x6E, 0x84, 0x93, 0x3F, 0x6D, 0x6D, 0x22, 0xC9, - 0x56, 0x03, 0x28, 0x3F, 0x57, 0xDB, 0xC8, 0xFE, 0xE0, 0x83, 0x15, 0x3F, 0x43, 0x44, 0xD8, - 0xF2, 0xF2, 0x65, 0x01, 0x3F, 0x30, 0x26, 0xF7, 0x1A, 0x8D, 0x10, 0x68, 0x3F, 0x14, 0x7E, - 0x88, 0xA0, 0x37, 0x92, 0xA6, 0x3F, 0x12, 0xB8, 0x0F, 0x32, 0xF0, 0xA7, 0xE9, 0xBE, 0xF3, - 0x75, 0xCB, 0xDB, 0x60, 0x53, 0x73, 0x3E, 0xFB, 0x2A, 0x70, 0x74, 0xBF, 0x7A, 0xD4, -}; -COMPILER_STRIP_GATE(0x803A2588, &T); +// Derived from code with the following copyright -/* 80456A80-80456A88 005080 0008+00 1/1 0/0 0/0 .sdata2 @94 */ -SECTION_SDATA2 static f64 lit_94 = 1.0; +/* @(#)k_tan.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -/* 80456A88-80456A90 005088 0008+00 1/1 0/0 0/0 .sdata2 @95 */ -SECTION_SDATA2 static f64 lit_95 = -1.0; +/* __kernel_tan( x, y, k ) + * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input k indicates whether tan (if k=1) or + * -1/tan (if k= -1) is returned. + * + * Algorithm + * 1. Since tan(-x) = -tan(x), we need only to consider positive x. + * 2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0. + * 3. tan(x) is approximated by a odd polynomial of degree 27 on + * [0,0.67434] + * 3 27 + * tan(x) ~ x + T1*x + ... + T13*x + * where + * + * |tan(x) 2 4 26 | -59.2 + * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 + * | x | + * + * Note: tan(x+y) = tan(x) + tan'(x)*y + * ~ tan(x) + (1+x*x)*y + * Therefore, for better accuracy in computing tan(x+y), let + * 3 2 2 2 2 + * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) + * then + * 3 2 + * tan(x+y) = x + (T1*x + (x *(r+y)+y)) + * + * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then + * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) + * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) + */ -/* 80456A90-80456A98 005090 0008+00 1/1 0/0 0/0 .sdata2 @96 */ -SECTION_SDATA2 static f64 lit_96 = 0.7853981633974483; +#include "fdlibm.h" +#include "MSL_C/math.h" +static const double one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ + pio4 = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ + pio4lo = 3.06161699786838301793e-17, /* 0x3C81A626, 0x33145C07 */ + T[] = { + 3.33333333333334091986e-01, /* 0x3FD55555, 0x55555563 */ + 1.33333333333201242699e-01, /* 0x3FC11111, 0x1110FE7A */ + 5.39682539762260521377e-02, /* 0x3FABA1BA, 0x1BB341FE */ + 2.18694882948595424599e-02, /* 0x3F9664F4, 0x8406D637 */ + 8.86323982359930005737e-03, /* 0x3F8226E3, 0xE96E8493 */ + 3.59207910759131235356e-03, /* 0x3F6D6D22, 0xC9560328 */ + 1.45620945432529025516e-03, /* 0x3F57DBC8, 0xFEE08315 */ + 5.88041240820264096874e-04, /* 0x3F4344D8, 0xF2F26501 */ + 2.46463134818469906812e-04, /* 0x3F3026F7, 0x1A8D1068 */ + 7.81794442939557092300e-05, /* 0x3F147E88, 0xA03792A6 */ + 7.14072491382608190305e-05, /* 0x3F12B80F, 0x32F0A7E9 */ + -1.85586374855275456654e-05, /* 0xBEF375CB, 0xDB605373 */ + 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */ + }; -/* 80456A98-80456AA0 005098 0008+00 1/1 0/0 0/0 .sdata2 @97 */ -SECTION_SDATA2 static f64 lit_97 = 3.061616997868383e-17; - -/* 80456AA0-80456AA8 0050A0 0008+00 1/1 0/0 0/0 .sdata2 @98 */ -SECTION_SDATA2 static u8 lit_98[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80456AA8-80456AB0 0050A8 0008+00 1/1 0/0 0/0 .sdata2 @99 */ -SECTION_SDATA2 static f64 lit_99 = 2.0; - -/* 80456AB0-80456AB8 0050B0 0008+00 1/1 0/0 0/0 .sdata2 @101 */ -SECTION_SDATA2 static f64 lit_101 = 4503601774854144.0 /* cast s32 to float */; - -/* 8036BA90-8036BCA4 3663D0 0214+00 0/0 1/1 0/0 .text __kernel_tan */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __kernel_tan() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/k_tan/__kernel_tan.s" +double __kernel_tan(double x, double y, int iy) +{ + double z, r, v, w, s; + int ix, hx; + hx = __HI(x); /* high word of x */ + ix = hx & 0x7fffffff; /* high word of |x| */ + if (ix < 0x3e300000) /* x < 2**-28 */ + { + if ((int)x == 0) { /* generate inexact */ + if (((ix | __LO(x)) | (iy + 1)) == 0) { + double ret = fabs(x); + return one / ret; + } else + return (iy == 1) ? x : -one / x; + } + } + if (ix >= 0x3FE59428) { /* |x|>=0.6744 */ + if (hx < 0) { + x = -x; + y = -y; + } + z = pio4 - x; + w = pio4lo - y; + x = z + w; + y = 0.0; + } + z = x * x; + w = z * z; + /* Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))); + v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))); + s = z * x; + r = y + z * (s * (r + v) + y); + r += T[0] * s; + w = x + r; + if (ix >= 0x3FE59428) { + v = (double)iy; + return (double)(1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r))); + } + if (iy == 1) + return w; + else { /* if allow error up to 2 ulp, + simply return -1.0/(x+r) here */ + /* compute -1.0/(x+r) accurately */ + double a, t; + z = w; + __LO(z) = 0; + v = r - (z - x); /* z+v = r+x */ + t = a = -1.0 / w; /* a = -1.0/w */ + __LO(t) = 0; + s = 1.0 + t * z; + return t + a * (s + t * v); + } } -#pragma pop + +// EOF k_tan.c \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/s_atan.c b/libs/MSL_C/Math/Double_precision/s_atan.c index f77db189e79..0f88ef2fc17 100644 --- a/libs/MSL_C/Math/Double_precision/s_atan.c +++ b/libs/MSL_C/Math/Double_precision/s_atan.c @@ -1,79 +1,143 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/s_atan -// -#include "MSL_C/Math/Double_precision/s_atan.h" -#include "dol2asm.h" -#include "dolphin/types.h" +/* @(#)s_atan.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ -// -// Forward References: -// +/* atan(x) + * Method + * 1. Reduce x to positive by atan(x) = -atan(-x). + * 2. According to the integer k=4t+0.25 chopped, t=x, the argument + * is further reduced to one of the following intervals and the + * arctangent of t is evaluated by the corresponding formula: + * + * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) + * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) + * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) + * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) + * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ -void atan(); +#include "fdlibm.h" -// -// External References: -// - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A25F0-803A2610 02EC50 0020+00 1/1 0/0 0/0 .rodata atanhi */ -SECTION_RODATA static u8 const atanhi[32] = { - 0x3F, 0xDD, 0xAC, 0x67, 0x05, 0x61, 0xBB, 0x4F, 0x3F, 0xE9, 0x21, 0xFB, 0x54, 0x44, 0x2D, 0x18, - 0x3F, 0xEF, 0x73, 0x0B, 0xD2, 0x81, 0xF6, 0x9B, 0x3F, 0xF9, 0x21, 0xFB, 0x54, 0x44, 0x2D, 0x18, +#ifdef __STDC__ +static const double atanhi[] = { +#else +static double atanhi[] = { +#endif + 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ + 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ + 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ + 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ }; -COMPILER_STRIP_GATE(0x803A25F0, &atanhi); -/* 803A2610-803A2630 02EC70 0020+00 0/1 0/0 0/0 .rodata atanlo */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const atanlo[32] = { - 0x3C, 0x7A, 0x2B, 0x7F, 0x22, 0x2F, 0x65, 0xE2, 0x3C, 0x81, 0xA6, 0x26, 0x33, 0x14, 0x5C, 0x07, - 0x3C, 0x70, 0x07, 0x88, 0x7A, 0xF0, 0xCB, 0xBD, 0x3C, 0x91, 0xA6, 0x26, 0x33, 0x14, 0x5C, 0x07, +#ifdef __STDC__ +static const double atanlo[] = { +#else +static double atanlo[] = { +#endif + 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ + 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ + 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ + 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ }; -COMPILER_STRIP_GATE(0x803A2610, &atanlo); -#pragma pop -/* 803A2630-803A2688 02EC90 0058+00 0/1 0/0 0/0 .rodata aT */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const aT[88] = { - 0x3F, 0xD5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x0D, 0xBF, 0xC9, 0x99, 0x99, 0x99, 0x98, 0xEB, - 0xC4, 0x3F, 0xC2, 0x49, 0x24, 0x92, 0x00, 0x83, 0xFF, 0xBF, 0xBC, 0x71, 0xC6, 0xFE, 0x23, - 0x16, 0x71, 0x3F, 0xB7, 0x45, 0xCD, 0xC5, 0x4C, 0x20, 0x6E, 0xBF, 0xB3, 0xB0, 0xF2, 0xAF, - 0x74, 0x9A, 0x6D, 0x3F, 0xB1, 0x0D, 0x66, 0xA0, 0xD0, 0x3D, 0x51, 0xBF, 0xAD, 0xDE, 0x2D, - 0x52, 0xDE, 0xFD, 0x9A, 0x3F, 0xA9, 0x7B, 0x4B, 0x24, 0x76, 0x0D, 0xEB, 0xBF, 0xA2, 0xB4, - 0x44, 0x2C, 0x6A, 0x6C, 0x2F, 0x3F, 0x90, 0xAD, 0x3A, 0xE3, 0x22, 0xDA, 0x11, +#ifdef __STDC__ +static const double aT[] = { +#else +static double aT[] = { +#endif + 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ + -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ + 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ + -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ + 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ + -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ + 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ + -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ + 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ + -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ + 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ }; -COMPILER_STRIP_GATE(0x803A2630, &aT); -#pragma pop -/* 80456AB8-80456AC0 0050B8 0008+00 1/1 0/0 0/0 .sdata2 @115 */ -SECTION_SDATA2 static f64 lit_115 = 1e+300; +#ifdef __STDC__ +static const double +#else +static double +#endif + one + = 1.0, + huge = 1.0e300; -/* 80456AC0-80456AC8 0050C0 0008+00 1/1 0/0 0/0 .sdata2 @116 */ -SECTION_SDATA2 static f64 lit_116 = 1.0; +#ifdef __STDC__ +double atan(double x) +#else +double atan(x) double x; +#endif +{ + double w, s1, s2, z; + int ix, hx, id; -/* 80456AC8-80456AD0 0050C8 0008+00 1/1 0/0 0/0 .sdata2 @117 */ -SECTION_SDATA2 static f64 lit_117 = 2.0; - -/* 80456AD0-80456AD8 0050D0 0008+00 1/1 0/0 0/0 .sdata2 @118 */ -SECTION_SDATA2 static f64 lit_118 = 1.5; - -/* 80456AD8-80456AE0 0050D8 0008+00 1/1 0/0 0/0 .sdata2 @119 */ -SECTION_SDATA2 static f64 lit_119 = -1.0; - -/* 8036BCA4-8036BEBC 3665E4 0218+00 0/0 2/2 0/0 .text atan */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void atan() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/s_atan/atan.s" -} -#pragma pop + hx = __HI(x); + ix = hx & 0x7fffffff; + if (ix >= 0x44100000) { /* if |x| >= 2^66 */ + if (ix > 0x7ff00000 || (ix == 0x7ff00000 && (__LO(x) != 0))) + return x + x; /* NaN */ + if (hx > 0) + return atanhi[3] + atanlo[3]; + else + return -atanhi[3] - atanlo[3]; + } + if (ix < 0x3fdc0000) { /* |x| < 0.4375 */ + if (ix < 0x3e200000) { /* |x| < 2^-29 */ + if (huge + x > one) + return x; /* raise inexact */ + } + id = -1; + } else { + x = __fabs(x); + if (ix < 0x3ff30000) { /* |x| < 1.1875 */ + if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */ + id = 0; + x = (2.0 * x - one) / (2.0 + x); + } else { /* 11/16<=|x|< 19/16 */ + id = 1; + x = (x - one) / (x + one); + } + } else { + if (ix < 0x40038000) { /* |x| < 2.4375 */ + id = 2; + x = (x - 1.5) / (one + 1.5 * x); + } else { /* 2.4375 <= |x| < 2^66 */ + id = 3; + x = -1.0 / x; + } + } + } + /* end of argument reduction */ + z = x * x; + w = z * z; + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); + s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); + if (id < 0) + return x - x * (s1 + s2); + else { + z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); + return (hx < 0) ? -z : z; + } +} \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/s_ceil.c b/libs/MSL_C/Math/Double_precision/s_ceil.c index 91d3d347344..d7f8c17d71b 100644 --- a/libs/MSL_C/Math/Double_precision/s_ceil.c +++ b/libs/MSL_C/Math/Double_precision/s_ceil.c @@ -34,57 +34,57 @@ double ceil(double x) double ceil(x) double x; #endif { - int i0, i1, j0; - unsigned i, j; - i0 = __HI(x); - i1 = __LO(x); - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff; - if (j0 < 20) { - if (j0 < 0) { /* raise inexact if x != 0 */ - if (huge + x > 0.0) { /* return 0*sign(x) if |x|<1 */ - if (i0 < 0) { - i0 = 0x80000000; - i1 = 0; - } else if ((i0 | i1) != 0) { - i0 = 0x3ff00000; - i1 = 0; - } - } - } else { - i = (0x000fffff) >> j0; - if (((i0 & i) | i1) == 0) - return x; /* x is integral */ - if (huge + x > 0.0) { /* raise inexact flag */ - if (i0 > 0) - i0 += (0x00100000) >> j0; - i0 &= (~i); - i1 = 0; - } - } - } else if (j0 > 51) { - if (j0 == 0x400) - return x + x; /* inf or NaN */ - else - return x; /* x is integral */ - } else { - i = ((unsigned)(0xffffffff)) >> (j0 - 20); - if ((i1 & i) == 0) - return x; /* x is integral */ - if (huge + x > 0.0) { /* raise inexact flag */ - if (i0 > 0) { - if (j0 == 20) - i0 += 1; - else { - j = i1 + (1 << (52 - j0)); - if (j < i1) - i0 += 1; /* got a carry */ - i1 = j; - } - } - i1 &= (~i); - } - } - __HI(x) = i0; - __LO(x) = i1; - return x; + int i0, i1, j0; + unsigned i, j; + i0 = __HI(x); + i1 = __LO(x); + j0 = ((i0 >> 20) & 0x7ff) - 0x3ff; + if (j0 < 20) { + if (j0 < 0) { /* raise inexact if x != 0 */ + if (huge + x > 0.0) { /* return 0*sign(x) if |x|<1 */ + if (i0 < 0) { + i0 = 0x80000000; + i1 = 0; + } else if ((i0 | i1) != 0) { + i0 = 0x3ff00000; + i1 = 0; + } + } + } else { + i = (0x000fffff) >> j0; + if (((i0 & i) | i1) == 0) + return x; /* x is integral */ + if (huge + x > 0.0) { /* raise inexact flag */ + if (i0 > 0) + i0 += (0x00100000) >> j0; + i0 &= (~i); + i1 = 0; + } + } + } else if (j0 > 51) { + if (j0 == 0x400) + return x + x; /* inf or NaN */ + else + return x; /* x is integral */ + } else { + i = ((unsigned)(0xffffffff)) >> (j0 - 20); + if ((i1 & i) == 0) + return x; /* x is integral */ + if (huge + x > 0.0) { /* raise inexact flag */ + if (i0 > 0) { + if (j0 == 20) + i0 += 1; + else { + j = i1 + (1 << (52 - j0)); + if (j < i1) + i0 += 1; /* got a carry */ + i1 = j; + } + } + i1 &= (~i); + } + } + __HI(x) = i0; + __LO(x) = i1; + return x; } \ No newline at end of file diff --git a/libs/MSL_C/Math/Double_precision/s_ldexp.c b/libs/MSL_C/Math/Double_precision/s_ldexp.c index 11de93eec04..ef927feb436 100644 --- a/libs/MSL_C/Math/Double_precision/s_ldexp.c +++ b/libs/MSL_C/Math/Double_precision/s_ldexp.c @@ -1,52 +1,59 @@ -// -// Generated By: dol2asm -// Translation Unit: Math/Double_precision/s_ldexp -// +/* @(#)s_ldexp.c 1.2 95/01/04 */ +/* $Id: s_ldexp.c,v 1.3.14.1 2002/01/31 15:24:14 ceciliar Exp $ */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ -#include "MSL_C/Math/Double_precision/s_ldexp.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "fdlibm.h" +#include "MSL_C/math.h" /* for isfinite macro */ +static const double -// -// Forward References: -// + two54 + = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ + twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */ + big = 1.0e+300, tiny = 1.0e-300; -void ldexp(); +double ldexp(double x, int n) +{ + s32 k, hx, lx; /*- cc 020130 -*/ + if (!isfinite(x) || x == 0.0) + return x; -// -// External References: -// - -void copysign(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80456B10-80456B18 005110 0008+00 1/1 0/0 0/0 .sdata2 @91 */ -SECTION_SDATA2 static u8 lit_91[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80456B18-80456B20 005118 0008+00 1/1 0/0 0/0 .sdata2 @92 */ -SECTION_SDATA2 static f64 lit_92 = 1.8014398509481984e+16; - -/* 80456B20-80456B28 005120 0008+00 1/1 0/0 0/0 .sdata2 @93 */ -SECTION_SDATA2 static f64 lit_93 = 1e-300; - -/* 80456B28-80456B30 005128 0008+00 1/1 0/0 0/0 .sdata2 @94 */ -SECTION_SDATA2 static f64 lit_94 = 1e+300; - -/* 80456B30-80456B38 005130 0008+00 1/1 0/0 0/0 .sdata2 @95 */ -SECTION_SDATA2 static f64 lit_95 = 5.551115123125783e-17; - -/* 8036C2D0-8036C494 366C10 01C4+00 0/0 3/3 0/0 .text ldexp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void ldexp() { - nofralloc -#include "asm/MSL_C/Math/Double_precision/s_ldexp/ldexp.s" -} -#pragma pop + hx = __HI(x); + lx = __LO(x); + k = (hx & 0x7ff00000) >> 20; /* extract exponent */ + if (k == 0) { /* 0 or subnormal x */ + if ((lx | (hx & 0x7fffffff)) == 0) + return x; /* +-0 */ + x *= two54; + hx = __HI(x); + k = ((hx & 0x7ff00000) >> 20) - 54; + if (n < -50000) + return tiny * x; /*underflow*/ + } + if (k == 0x7ff) + return x + x; /* NaN or Inf */ + k = k + n; + if (k > 0x7fe) + return big * copysign(big, x); /* overflow */ + if (k > 0) /* normal result */ + { + __HI(x) = (hx & 0x800fffff) | (k << 20); + return x; + } + if (k <= -54) + if (n > 50000) /* in case integer overflow in n+k */ + return big * copysign(big, x); /*overflow*/ + else + return tiny * copysign(tiny, x); /*underflow*/ + k += 54; /* subnormal result */ + __HI(x) = (hx & 0x800fffff) | (k << 20); + return x * twom54; +} \ No newline at end of file diff --git a/libs/Runtime.PPCEABI.H/CPlusLibPPC.cpp b/libs/Runtime.PPCEABI.H/CPlusLibPPC.cpp index 918645632ed..4d775b002ff 100644 --- a/libs/Runtime.PPCEABI.H/CPlusLibPPC.cpp +++ b/libs/Runtime.PPCEABI.H/CPlusLibPPC.cpp @@ -1,32 +1,18 @@ -// -// Generated By: dol2asm -// Translation Unit: CPlusLibPPC -// - #include "Runtime.PPCEABI.H/CPlusLibPPC.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void __copy(); - -// -// External References: -// - -// -// Declarations: -// /* 80361C3C-80361C6C 35C57C 0030+00 0/0 0/0 4/4 .text __copy */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __copy() { - nofralloc -#include "asm/Runtime.PPCEABI.H/CPlusLibPPC/__copy.s" +extern "C" void* __copy(char *dest, char *src, size_t size) { + char *p; + + if (dest && size) { + p = dest; + do { + *p = *src; + ++p; + ++src; + --size; + } while (size); + } + + return(dest); } -#pragma pop diff --git a/libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.c b/libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.c new file mode 100644 index 00000000000..b56b0fbc4ec --- /dev/null +++ b/libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.c @@ -0,0 +1,36 @@ +/** + * GCN_Mem_Alloc.c + * Description: + */ + +#include "Runtime.PPCEABI.H/GCN_mem_alloc.h" +#include "dolphin/os/OS.h" + +inline static void InitDefaultHeap(void) { + void* arenaLo; + void* arenaHi; + + OSReport("GCN_Mem_Alloc.c : InitDefaultHeap. No Heap Available\n"); + OSReport("Metrowerks CW runtime library initializing default heap\n"); + + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + + arenaLo = OSRoundUpPtr(arenaLo, 0x20); + arenaHi = OSRoundDownPtr(arenaHi, 0x20); + + OSSetCurrentHeap(OSCreateHeap(arenaLo, arenaHi)); + OSSetArenaLo(arenaLo = arenaHi); +} + +/* 80362914-803629CC 35D254 00B8+00 0/0 1/1 0/0 .text __sys_free */ +void __sys_free(void* p) { + if (__OSCurrHeap == -1) { + InitDefaultHeap(); + } + + OSFreeToHeap(__OSCurrHeap, p); +} diff --git a/libs/Runtime.PPCEABI.H/GCN_mem_alloc.cpp b/libs/Runtime.PPCEABI.H/GCN_mem_alloc.cpp deleted file mode 100644 index 02c0c4d2f6e..00000000000 --- a/libs/Runtime.PPCEABI.H/GCN_mem_alloc.cpp +++ /dev/null @@ -1,175 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: GCN_mem_alloc -// - -#include "Runtime.PPCEABI.H/GCN_mem_alloc.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void __sys_free(); - -// -// External References: -// - -extern "C" void OSReport(); -extern "C" void OSFreeToHeap(); -extern "C" void OSSetCurrentHeap(); -extern "C" void OSInitAlloc(); -extern "C" void OSCreateHeap(); -extern "C" void OSGetArenaHi(); -extern "C" void OSGetArenaLo(); -extern "C" void OSSetArenaLo(); -extern "C" extern u32 __OSCurrHeap[1 + 1 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A21A8-803A21E0 02E808 0036+02 1/1 0/0 0/0 .rodata @55 */ -SECTION_RODATA static u8 const lit_55[54 + 2 /* padding */] = { - 0x47, - 0x43, - 0x4E, - 0x5F, - 0x4D, - 0x65, - 0x6D, - 0x5F, - 0x41, - 0x6C, - 0x6C, - 0x6F, - 0x63, - 0x2E, - 0x63, - 0x20, - 0x3A, - 0x20, - 0x49, - 0x6E, - 0x69, - 0x74, - 0x44, - 0x65, - 0x66, - 0x61, - 0x75, - 0x6C, - 0x74, - 0x48, - 0x65, - 0x61, - 0x70, - 0x2E, - 0x20, - 0x4E, - 0x6F, - 0x20, - 0x48, - 0x65, - 0x61, - 0x70, - 0x20, - 0x41, - 0x76, - 0x61, - 0x69, - 0x6C, - 0x61, - 0x62, - 0x6C, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A21A8, &lit_55); - -/* 803A21E0-803A2220 02E840 0039+07 1/1 0/0 0/0 .rodata @56 */ -SECTION_RODATA static u8 const lit_56[57 + 7 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x77, - 0x65, - 0x72, - 0x6B, - 0x73, - 0x20, - 0x43, - 0x57, - 0x20, - 0x72, - 0x75, - 0x6E, - 0x74, - 0x69, - 0x6D, - 0x65, - 0x20, - 0x6C, - 0x69, - 0x62, - 0x72, - 0x61, - 0x72, - 0x79, - 0x20, - 0x69, - 0x6E, - 0x69, - 0x74, - 0x69, - 0x61, - 0x6C, - 0x69, - 0x7A, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x64, - 0x65, - 0x66, - 0x61, - 0x75, - 0x6C, - 0x74, - 0x20, - 0x68, - 0x65, - 0x61, - 0x70, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A21E0, &lit_56); - -/* 80362914-803629CC 35D254 00B8+00 0/0 1/1 0/0 .text __sys_free */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sys_free() { - nofralloc -#include "asm/Runtime.PPCEABI.H/GCN_mem_alloc/__sys_free.s" -} -#pragma pop diff --git a/libs/Runtime.PPCEABI.H/Makefile b/libs/Runtime.PPCEABI.H/Makefile index ef6d4d7d73c..1bb02dc5524 100644 --- a/libs/Runtime.PPCEABI.H/Makefile +++ b/libs/Runtime.PPCEABI.H/Makefile @@ -3,15 +3,15 @@ # LIBRUNTIME_PPCEABI_H_A_CPP_FILES := \ - libs/Runtime.PPCEABI.H/__va_arg.cpp \ + libs/Runtime.PPCEABI.H/__va_arg.c \ libs/Runtime.PPCEABI.H/global_destructor_chain.cpp \ libs/Runtime.PPCEABI.H/CPlusLibPPC.cpp \ libs/Runtime.PPCEABI.H/NMWException.cpp \ - libs/Runtime.PPCEABI.H/ptmf.cpp \ + libs/Runtime.PPCEABI.H/ptmf.c \ libs/Runtime.PPCEABI.H/runtime.cpp \ libs/Runtime.PPCEABI.H/__init_cpp_exceptions.cpp \ libs/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp \ - libs/Runtime.PPCEABI.H/GCN_mem_alloc.cpp \ + libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.c \ LIBRUNTIME_PPCEABI_H_A_O_FILES := \ $(BUILD_DIR)/libs/Runtime.PPCEABI.H/__va_arg.o \ @@ -22,9 +22,10 @@ LIBRUNTIME_PPCEABI_H_A_O_FILES := \ $(BUILD_DIR)/libs/Runtime.PPCEABI.H/runtime.o \ $(BUILD_DIR)/libs/Runtime.PPCEABI.H/__init_cpp_exceptions.o \ $(BUILD_DIR)/libs/Runtime.PPCEABI.H/Gecko_ExceptionPPC.o \ - $(BUILD_DIR)/libs/Runtime.PPCEABI.H/GCN_mem_alloc.o \ + $(BUILD_DIR)/libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.o \ LIBRUNTIME_PPCEABI_H_A_CFLAGS := \ + -O4,p \ LIBRUNTIME_PPCEABI_H_A_LDFLAGS := \ -nodefaults \ @@ -32,6 +33,10 @@ LIBRUNTIME_PPCEABI_H_A_LDFLAGS := \ -proc gekko \ -linkmode moreram \ +$(BUILD_DIR)/libs/Runtime.PPCEABI.H/GCN_Mem_Alloc.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -str readonly -RTTI off -maxerrors 5 -enum int $(INCLUDES) -lang=c +$(BUILD_DIR)/libs/Runtime.PPCEABI.H/__va_arg.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -str pool,readonly,reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES) -lang=c + + $(BUILD_DIR)/libRuntime.PPCEABI.H.a: $(LIBRUNTIME_PPCEABI_H_A_O_FILES) @echo linking... $(BUILD_DIR)/libRuntime.PPCEABI.H.a @echo $(LIBRUNTIME_PPCEABI_H_A_O_FILES) > build/LIBRUNTIME_PPCEABI_H_A_ofiles @@ -43,3 +48,8 @@ $(BUILD_DIR)/libs/Runtime.PPCEABI.H/%.o: libs/Runtime.PPCEABI.H/%.cpp @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp @$(CC) $(CFLAGS) $(LIBRUNTIME_PPCEABI_H_A_CFLAGS) -c -o $@ $(basename $@).cpp +$(BUILD_DIR)/libs/Runtime.PPCEABI.H/%.o: libs/Runtime.PPCEABI.H/%.c + @mkdir -p $(@D) + @echo building... $< + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(CC) $(CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/Runtime.PPCEABI.H/__init_cpp_exceptions.cpp b/libs/Runtime.PPCEABI.H/__init_cpp_exceptions.cpp index 5cfd89a6ed7..f50a5460191 100644 --- a/libs/Runtime.PPCEABI.H/__init_cpp_exceptions.cpp +++ b/libs/Runtime.PPCEABI.H/__init_cpp_exceptions.cpp @@ -52,11 +52,7 @@ SECTION_DTORS15 extern void* const __dtors_null_terminator = (void*)NULL; /* ############################################################################################## */ /* 80450AD0-80450AD8 000550 0004+04 2/2 0/0 0/0 .sdata fragmentID */ -SECTION_SDATA static u32 fragmentID[1 + 1 /* padding */] = { - 0xFFFFFFFE, - /* padding */ - 0x00000000, -}; +SECTION_SDATA static int fragmentID = -2; /* 8036283C-80362870 35D17C 0034+00 1/0 1/0 0/0 .text __fini_cpp_exceptions */ #pragma push diff --git a/libs/Runtime.PPCEABI.H/__va_arg.c b/libs/Runtime.PPCEABI.H/__va_arg.c new file mode 100644 index 00000000000..c6e8bc63d8f --- /dev/null +++ b/libs/Runtime.PPCEABI.H/__va_arg.c @@ -0,0 +1,50 @@ +#include "Runtime.PPCEABI.H/__va_arg.h" + +#undef __va_arg + +/* 80361B14-80361BDC 35C454 00C8+00 0/0 3/3 0/0 .text __va_arg */ +void* __va_arg(_va_list_struct* list, int type) { + char* addr; + char* reg = &(list->gpr); + int g_reg = list->gpr; + int maxsize = 8; + int size = 4; + int increment = 1; + int even = 0; + int fpr_offset = 0; + int regsize = 4; + + if (type == 3) { + reg = &(list->fpr); + g_reg = list->fpr; + size = 8; + fpr_offset = 32; + regsize = 8; + } + + if (type == 2) { + size = 8; + maxsize--; + if (g_reg & 1) { + even = 1; + } + increment = 2; + } + + if (g_reg < maxsize) { + g_reg += even; + addr = list->reg_save_area + fpr_offset + (g_reg * regsize); + *reg = g_reg + increment; + } else { + *reg = 8; + addr = list->input_arg_area; + addr = (char*)(((u32)(addr) + ((size)-1)) & ~((size)-1)); + list->input_arg_area = addr + size; + } + + if (type == 0) { + addr = *((char**)addr); + } + + return addr; +} diff --git a/libs/Runtime.PPCEABI.H/__va_arg.cpp b/libs/Runtime.PPCEABI.H/__va_arg.cpp deleted file mode 100644 index 968677be658..00000000000 --- a/libs/Runtime.PPCEABI.H/__va_arg.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: __va_arg -// - -#include "Runtime.PPCEABI.H/__va_arg.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -#undef __va_arg - -// -// Forward References: -// - -// -// External References: -// - -// -// Declarations: -// - -/* 80361B14-80361BDC 35C454 00C8+00 0/0 3/3 0/0 .text __va_arg */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __va_arg(void*, int) { - nofralloc -#include "asm/Runtime.PPCEABI.H/__va_arg/__va_arg.s" -} -#pragma pop diff --git a/libs/Runtime.PPCEABI.H/ptmf.c b/libs/Runtime.PPCEABI.H/ptmf.c new file mode 100644 index 00000000000..28cac8b026d --- /dev/null +++ b/libs/Runtime.PPCEABI.H/ptmf.c @@ -0,0 +1,73 @@ +#include "Runtime.PPCEABI.H/ptmf.h" + +/* ############################################################################################## */ +/* 803A2180-803A2190 02E7E0 000C+04 0/0 23/23 249/249 .rodata __ptmf_null */ +__ptmf const __ptmf_null = { + 0, + 0, + 0, +}; + +/* 80362018-80362048 35C958 0030+00 0/0 10/10 345/345 .text __ptmf_test */ +asm long __ptmf_test(register __ptmf* ptmf) { + // clang-format off + nofralloc + + lwz r5, __ptmf.this_delta(r3) + lwz r6, __ptmf.v_offset(r3) + lwz r7, __ptmf.f_data(r3) + li r3, 1 + cmpwi r5, 0 + cmpwi cr6, r6, 0 + cmpwi cr7, r7, 0 + bnelr + bnelr cr6 + bnelr cr7 + li r3, 0 + blr + // clang-format on +} + +/* 80362048-80362084 35C988 003C+00 0/0 0/0 217/217 .text __ptmf_cmpr */ +asm long __ptmf_cmpr(void) { + // clang-format off + nofralloc + + lwz r5, 0(r3) + lwz r6, 0(r4) + lwz r7, 4(r3) + lwz r8, 4(r4) + lwz r9, 8(r3) + lwz r10, 8(r4) + li r3, 1 + cmpw r5, r6 + cmpw cr6, r7, r8 + cmpw cr7, r9, r10 + bnelr + bnelr cr6 + bnelr cr7 + li r3, 0 + blr + // clang-format on +} + +/* 80362084-803620AC 35C9C4 0028+00 0/0 125/125 741/741 .text __ptmf_scall */ +asm void __ptmf_scall(...) { + // clang-format off + nofralloc + + lwz r0, 0(r12) + lwz r11, 4(r12) + lwz r12, 8(r12) + add r3, r3, r0 + cmpwi r11, 0 + blt lbl_803620A4 + + lwzx r12, r3, r12 + lwzx r12, r12, r11 + +lbl_803620A4: + mtctr r12 + bctr + // clang-format on +} \ No newline at end of file diff --git a/libs/Runtime.PPCEABI.H/ptmf.cpp b/libs/Runtime.PPCEABI.H/ptmf.cpp deleted file mode 100644 index 56f8a6becfe..00000000000 --- a/libs/Runtime.PPCEABI.H/ptmf.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: ptmf -// - -#include "Runtime.PPCEABI.H/ptmf.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; - -// -// External References: -// - -// -// Declarations: -// - -/* 80362018-80362048 35C958 0030+00 0/0 10/10 345/345 .text __ptmf_test */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ptmf_test() { - nofralloc -#include "asm/Runtime.PPCEABI.H/ptmf/__ptmf_test.s" -} -#pragma pop - -/* 80362048-80362084 35C988 003C+00 0/0 0/0 217/217 .text __ptmf_cmpr */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ptmf_cmpr() { - nofralloc -#include "asm/Runtime.PPCEABI.H/ptmf/__ptmf_cmpr.s" -} -#pragma pop - -/* 80362084-803620AC 35C9C4 0028+00 0/0 125/125 741/741 .text __ptmf_scall */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ptmf_scall() { - nofralloc -#include "asm/Runtime.PPCEABI.H/ptmf/__ptmf_scall.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803A2180-803A2190 02E7E0 000C+04 0/0 23/23 249/249 .rodata __ptmf_null */ -SECTION_RODATA extern u8 const __ptmf_null[12 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2180, &__ptmf_null); diff --git a/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp b/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp index 7789d948c9e..94b906a520c 100644 --- a/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp +++ b/libs/SSystem/SComponent/c_bg_s_lin_chk.cpp @@ -24,7 +24,7 @@ cBgS_LinChk::~cBgS_LinChk() {} /* 80267E48-80267ED0 262788 0088+00 1/1 0/0 0/0 .text ct__11cBgS_LinChkFv */ void cBgS_LinChk::ct() { cXyz xyz(cXyz::Zero); - mLinP.SetStartEnd(xyz, xyz); + mLin.SetStartEnd(xyz, xyz); field_0x40 = xyz; setActorPid(0xFFFFFFFF); field_0x4c = 0; @@ -34,7 +34,7 @@ void cBgS_LinChk::ct() { /* 80267ED0-80267F40 262810 0070+00 0/0 2/2 0/0 .text Set2__11cBgS_LinChkFPC4cXyzPC4cXyzUi */ void cBgS_LinChk::Set2(cXyz const* pStart, cXyz const* pEnd, unsigned int actorPid) { - mLinP.SetStartEnd(*pStart, *pEnd); + mLin.SetStartEnd(*pStart, *pEnd); field_0x40 = *pEnd; setActorPid(actorPid); field_0x4c &= ~0x10; diff --git a/libs/SSystem/SComponent/c_lib.cpp b/libs/SSystem/SComponent/c_lib.cpp index 69eeddf81a1..f789657c2bc 100644 --- a/libs/SSystem/SComponent/c_lib.cpp +++ b/libs/SSystem/SComponent/c_lib.cpp @@ -334,7 +334,7 @@ s16 cLib_targetAngleY(const Vec& lhs, const Vec& rhs) { s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) { cXyz diff = *param_1 - *param_0; f32 f1 = sqrtf(diff.getMagXZ()); - return cM_atan2s(diff.GetY(), f1); + return cM_atan2s(diff.y, f1); } /* 80270DC0-80270E24 26B700 0064+00 0/0 2/2 118/118 .text cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz diff --git a/libs/SSystem/SComponent/c_m3d.cpp b/libs/SSystem/SComponent/c_m3d.cpp index 914fb6b6f92..6fd69c5e49b 100644 --- a/libs/SSystem/SComponent/c_m3d.cpp +++ b/libs/SSystem/SComponent/c_m3d.cpp @@ -317,17 +317,17 @@ bool cM3d_Cross_AabCyl(const cM3dGAab* pAab, const cM3dGCyl* pCyl) { #ifdef NONMATCHING bool cM3d_Cross_AabSph(const cM3dGAab* pAab, const cM3dGSph* pSph) { f32 radius = pSph->GetR(); - if (pAab->GetMinX() > pSph->GetC().GetX() + radius) { // addition registers are flipped + if (pAab->GetMinX() > pSph->GetC().x + radius) { // addition registers are flipped return false; - } else if (pAab->GetMaxX() < pSph->GetC().GetX() - radius) { + } else if (pAab->GetMaxX() < pSph->GetC().x - radius) { return false; - } else if (pAab->GetMinZ() > pSph->GetC().GetZ() + radius) { + } else if (pAab->GetMinZ() > pSph->GetC().z + radius) { return false; - } else if (pAab->GetMaxZ() < pSph->GetC().GetZ() - radius) { + } else if (pAab->GetMaxZ() < pSph->GetC().z - radius) { return false; - } else if (pAab->GetMinY() > pSph->GetC().GetY() + radius) { + } else if (pAab->GetMinY() > pSph->GetC().y + radius) { return false; - } else if (pAab->GetMaxY() < pSph->GetC().GetY() - radius) { + } else if (pAab->GetMaxY() < pSph->GetC().y - radius) { return false; } else { return true; @@ -564,51 +564,51 @@ asm bool cM3d_Cross_MinMaxBoxLine(Vec const* param_0, Vec const* param_1, Vec co bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec* pVecA, const Vec* pVecB, const Vec* pVecC, const Vec* pVecD, f32 pF) { f32 min, max; - if (pVecA->GetX() < pVecB->GetX()) { - min = pVecA->GetX(); - max = pVecB->GetX(); + if (pVecA->x < pVecB->x) { + min = pVecA->x; + max = pVecB->x; } else { - min = pVecB->GetX(); - max = pVecA->GetX(); + min = pVecB->x; + max = pVecA->x; } - if (min > pVecC->GetX()) { - min = pVecC->GetX(); - } else if (max < pVecC->GetX()) { - max = pVecC->GetX(); + if (min > pVecC->x) { + min = pVecC->x; + } else if (max < pVecC->x) { + max = pVecC->x; } - if (min - pF > pVecD->GetX() || max + pF < pVecD->GetX()) { + if (min - pF > pVecD->x || max + pF < pVecD->x) { return false; } - if (pVecA->GetZ() < pVecB->GetZ()) { - min = pVecA->GetZ(); - max = pVecB->GetZ(); + if (pVecA->z < pVecB->z) { + min = pVecA->z; + max = pVecB->z; } else { - min = pVecB->GetZ(); - max = pVecA->GetZ(); + min = pVecB->z; + max = pVecA->z; } - if (min > pVecC->GetZ()) { - min = pVecC->GetZ(); - } else if (max < pVecC->GetZ()) { - max = pVecC->GetZ(); + if (min > pVecC->z) { + min = pVecC->z; + } else if (max < pVecC->z) { + max = pVecC->z; } - if (min - pF > pVecD->GetZ() || max + pF < pVecD->GetZ()) { + if (min - pF > pVecD->z || max + pF < pVecD->z) { return false; } - if (pVecA->GetY() < pVecB->GetY()) { - min = pVecA->GetY(); - max = pVecB->GetY(); + if (pVecA->y < pVecB->y) { + min = pVecA->y; + max = pVecB->y; } else { - min = pVecB->GetY(); - max = pVecA->GetY(); + min = pVecB->y; + max = pVecA->y; } - if (min > pVecC->GetY()) { - min = pVecC->GetY(); - } else if (max < pVecC->GetY()) { - max = pVecC->GetY(); + if (min > pVecC->y) { + min = pVecC->y; + } else if (max < pVecC->y) { + max = pVecC->y; } - if (min - pF > pVecD->GetY() || max + pF < pVecD->GetY()) { + if (min - pF > pVecD->y || max + pF < pVecD->y) { return false; } return true; diff --git a/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.cpp b/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.c similarity index 56% rename from libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.cpp rename to libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.c index 32ef6ffef95..6e85dc39257 100644 --- a/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.c @@ -11,38 +11,51 @@ // Forward References: // -extern "C" void ddh_cc_initinterrupts(); -extern "C" void ddh_cc_peek(); -extern "C" void ddh_cc_post_stop(); -extern "C" void ddh_cc_pre_continue(); -extern "C" void ddh_cc_write(); -extern "C" void ddh_cc_read(); -extern "C" bool ddh_cc_close(); -extern "C" void ddh_cc_open(); -extern "C" bool ddh_cc_shutdown(); -extern "C" void ddh_cc_initialize(); +void ddh_cc_initinterrupts(); +void ddh_cc_peek(); +void ddh_cc_post_stop(); +void ddh_cc_pre_continue(); +void ddh_cc_write(); +void ddh_cc_read(); +u8 ddh_cc_close(); +void ddh_cc_open(); +u8 ddh_cc_shutdown(); +void ddh_cc_initialize(); // // External References: // -extern "C" void CircleBufferReadBytes(); -extern "C" void CircleBufferWriteBytes(); -extern "C" void CircleBufferInitialize(); -extern "C" void CBGetBytesAvailableForRead(); -extern "C" void MWTRACE(); -extern "C" void EXI2_Init(); -extern "C" void EXI2_EnableInterrupts(); -extern "C" bool EXI2_Poll(); -extern "C" bool EXI2_ReadN(); -extern "C" bool EXI2_WriteN(); -extern "C" void EXI2_Reserve(); -extern "C" void EXI2_Unreserve(); +void CircleBufferReadBytes(); +void CircleBufferWriteBytes(); +void CircleBufferInitialize(); +void CBGetBytesAvailableForRead(); +void MWTRACE(); +void EXI2_Init(); +void EXI2_EnableInterrupts(); +u8 EXI2_Poll(); +u8 EXI2_ReadN(); +u8 EXI2_WriteN(); +void EXI2_Reserve(); +void EXI2_Unreserve(); // // Declarations: // +/* ############################################################################################## */ +/* 8044F830-80450030 07C550 0800+00 1/1 0/0 0/0 .bss gRecvBuf */ +static u8 gRecvBuf[2048]; + +/* 80450030-80450050 07CD50 001C+04 3/3 0/0 0/0 .bss gRecvCB */ +static u8 gRecvCB[28 + 4 /* padding */]; + +// copied from pikmin2. should try to find a real fix +static makeMainBSSOrderingWork() { + u8 buff[0x500]; + memcpy(buff, gRecvBuf, 0x500); +} + /* 8037235C-80372380 36CC9C 0024+00 0/0 1/1 0/0 .text ddh_cc_initinterrupts */ #pragma push #pragma optimization_level 0 @@ -53,13 +66,6 @@ asm void ddh_cc_initinterrupts() { } #pragma pop -/* ############################################################################################## */ -/* 8044F830-80450030 07C550 0800+00 1/1 0/0 0/0 .bss gRecvBuf */ -static u8 gRecvBuf[2048]; - -/* 80450030-80450050 07CD50 001C+04 3/3 0/0 0/0 .bss gRecvCB */ -static u8 gRecvCB[28 + 4 /* padding */]; - /* 80372380-803723F0 36CCC0 0070+00 0/0 1/1 0/0 .text ddh_cc_peek */ #pragma push #pragma optimization_level 0 @@ -92,72 +98,20 @@ asm void ddh_cc_pre_continue() { /* ############################################################################################## */ /* 803A2D10-803A2D24 02F370 0014+00 1/1 0/0 0/0 .rodata @318 */ -SECTION_RODATA static u8 const lit_318[20] = { - 0x63, 0x63, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x69, 0x6E, 0x69, - 0x74, 0x69, 0x61, 0x6C, 0x69, 0x7A, 0x65, 0x64, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_318[] = "cc not initialized\n"; COMPILER_STRIP_GATE(0x803A2D10, &lit_318); /* 803A2D24-803A2D50 02F384 0029+03 0/1 0/0 0/0 .rodata @319 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_319[41 + 3 /* padding */] = { - 0x63, - 0x63, - 0x5F, - 0x77, - 0x72, - 0x69, - 0x74, - 0x65, - 0x20, - 0x3A, - 0x20, - 0x4F, - 0x75, - 0x74, - 0x70, - 0x75, - 0x74, - 0x20, - 0x64, - 0x61, - 0x74, - 0x61, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_319[] = "cc_write : Output data 0x%08x %ld bytes\n"; COMPILER_STRIP_GATE(0x803A2D24, &lit_319); #pragma pop /* 803A2D50-803A2D6C 02F3B0 001C+00 0/1 0/0 0/0 .rodata @320 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_320[28] = { - 0x63, 0x63, 0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x69, - 0x6E, 0x67, 0x20, 0x25, 0x6C, 0x64, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_320[] = "cc_write sending %ld bytes\n"; COMPILER_STRIP_GATE(0x803A2D50, &lit_320); #pragma pop @@ -176,103 +130,11 @@ asm void ddh_cc_write() { /* ############################################################################################## */ /* 803A2D6C-803A2D94 02F3CC 0025+03 1/1 0/0 0/0 .rodata @342 */ -SECTION_RODATA static u8 const lit_342[37 + 3 /* padding */] = { - 0x45, - 0x78, - 0x70, - 0x65, - 0x63, - 0x74, - 0x65, - 0x64, - 0x20, - 0x70, - 0x61, - 0x63, - 0x6B, - 0x65, - 0x74, - 0x20, - 0x73, - 0x69, - 0x7A, - 0x65, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x28, - 0x25, - 0x6C, - 0x64, - 0x29, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_342[] = "Expected packet size : 0x%08x (%ld)\n"; COMPILER_STRIP_GATE(0x803A2D6C, &lit_342); /* 803A2D94-803A2DC4 02F3F4 002D+03 1/1 0/0 0/0 .rodata @343 */ -SECTION_RODATA static u8 const lit_343[45 + 3 /* padding */] = { - 0x63, - 0x63, - 0x5F, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3A, - 0x20, - 0x65, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x20, - 0x72, - 0x65, - 0x61, - 0x64, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x20, - 0x66, - 0x72, - 0x6F, - 0x6D, - 0x20, - 0x45, - 0x58, - 0x49, - 0x32, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_343[] = "cc_read : error reading bytes from EXI2 %ld\n"; COMPILER_STRIP_GATE(0x803A2D94, &lit_343); /* 803724F8-803725E4 36CE38 00EC+00 0/0 1/1 0/0 .text ddh_cc_read */ @@ -286,8 +148,8 @@ asm void ddh_cc_read() { #pragma pop /* 803725E4-803725EC 36CF24 0008+00 0/0 1/1 0/0 .text ddh_cc_close */ -bool ddh_cc_close() { - return false; +u8 ddh_cc_close() { + return 0; } /* 803725EC-80372610 36CF2C 0024+00 0/0 1/1 0/0 .text ddh_cc_open */ @@ -301,42 +163,17 @@ asm void ddh_cc_open() { #pragma pop /* 80372610-80372618 36CF50 0008+00 0/0 1/1 0/0 .text ddh_cc_shutdown */ -bool ddh_cc_shutdown() { - return false; +u8 ddh_cc_shutdown() { + return 0; } /* ############################################################################################## */ /* 803A2DC4-803A2DD8 02F424 0013+01 1/1 0/0 0/0 .rodata @349 */ -SECTION_RODATA static u8 const lit_349[19 + 1 /* padding */] = { - 0x43, - 0x41, - 0x4C, - 0x4C, - 0x49, - 0x4E, - 0x47, - 0x20, - 0x45, - 0x58, - 0x49, - 0x32, - 0x5F, - 0x49, - 0x6E, - 0x69, - 0x74, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_349[] = "CALLING EXI2_Init\n"; COMPILER_STRIP_GATE(0x803A2DC4, &lit_349); /* 803A2DD8-803A2DF0 02F438 0018+00 1/1 0/0 0/0 .rodata @350 */ -SECTION_RODATA static u8 const lit_350[24] = { - 0x44, 0x4F, 0x4E, 0x45, 0x20, 0x43, 0x41, 0x4C, 0x4C, 0x49, 0x4E, 0x47, - 0x20, 0x45, 0x58, 0x49, 0x32, 0x5F, 0x49, 0x6E, 0x69, 0x74, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_350[] = "DONE CALLING EXI2_Init\n"; COMPILER_STRIP_GATE(0x803A2DD8, &lit_350); /* 80372618-803726A0 36CF58 0088+00 0/0 1/1 0/0 .text ddh_cc_initialize */ diff --git a/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.cpp b/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.c similarity index 57% rename from libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.cpp rename to libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.c index d962b4cce6e..d1d349c3cad 100644 --- a/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.c @@ -11,38 +11,51 @@ // Forward References: // -extern "C" void gdev_cc_initinterrupts(); -extern "C" void gdev_cc_peek(); -extern "C" void gdev_cc_post_stop(); -extern "C" void gdev_cc_pre_continue(); -extern "C" void gdev_cc_write(); -extern "C" void gdev_cc_read(); -extern "C" bool gdev_cc_close(); -extern "C" void gdev_cc_open(); -extern "C" bool gdev_cc_shutdown(); -extern "C" void gdev_cc_initialize(); +void gdev_cc_initinterrupts(); +void gdev_cc_peek(); +void gdev_cc_post_stop(); +void gdev_cc_pre_continue(); +void gdev_cc_write(); +void gdev_cc_read(); +u8 gdev_cc_close(); +void gdev_cc_open(); +u8 gdev_cc_shutdown(); +void gdev_cc_initialize(); // // External References: // -extern "C" void CircleBufferReadBytes(); -extern "C" void CircleBufferWriteBytes(); -extern "C" void CircleBufferInitialize(); -extern "C" void CBGetBytesAvailableForRead(); -extern "C" void MWTRACE(); -extern "C" void DBClose(); -extern "C" void DBOpen(); -extern "C" void DBWrite(); -extern "C" void DBRead(); -extern "C" void DBQueryData(); -extern "C" void DBInitInterrupts(); -extern "C" void DBInitComm(); +void CircleBufferReadBytes(); +void CircleBufferWriteBytes(); +void CircleBufferInitialize(); +void CBGetBytesAvailableForRead(); +void MWTRACE(); +void DBClose(); +void DBOpen(); +void DBWrite(); +void DBRead(); +void DBQueryData(); +void DBInitInterrupts(); +void DBInitComm(); // // Declarations: // +/* ############################################################################################## */ +/* 80450050-80450550 07CD70 0500+00 1/1 0/0 0/0 .bss gRecvBuf */ +static u8 gRecvBuf[1280]; + +/* 80450550-8045056C 07D270 001C+00 3/3 0/0 0/0 .bss gRecvCB */ +static u8 gRecvCB[28]; + +// copied from pikmin2. should try to find a real fix +static makeMainBSSOrderingWork() { + u8 buff[0x500]; + memcpy(buff, gRecvBuf, 0x500); +} + /* 80372908-8037292C 36D248 0024+00 0/0 1/1 0/0 .text gdev_cc_initinterrupts */ #pragma push #pragma optimization_level 0 @@ -53,13 +66,6 @@ asm void gdev_cc_initinterrupts() { } #pragma pop -/* ############################################################################################## */ -/* 80450050-80450550 07CD70 0500+00 1/1 0/0 0/0 .bss gRecvBuf */ -static u8 gRecvBuf[1280]; - -/* 80450550-8045056C 07D270 001C+00 3/3 0/0 0/0 .bss gRecvCB */ -static u8 gRecvCB[28]; - /* 8037292C-8037299C 36D26C 0070+00 0/0 1/1 0/0 .text gdev_cc_peek */ #pragma push #pragma optimization_level 0 @@ -92,72 +98,20 @@ asm void gdev_cc_pre_continue() { /* ############################################################################################## */ /* 803A2DF0-803A2E04 02F450 0014+00 1/1 0/0 0/0 .rodata @318 */ -SECTION_RODATA static u8 const lit_318[20] = { - 0x63, 0x63, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x69, 0x6E, 0x69, - 0x74, 0x69, 0x61, 0x6C, 0x69, 0x7A, 0x65, 0x64, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_318[] = "cc not initialized\n"; COMPILER_STRIP_GATE(0x803A2DF0, &lit_318); /* 803A2E04-803A2E30 02F464 0029+03 0/1 0/0 0/0 .rodata @319 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_319[41 + 3 /* padding */] = { - 0x63, - 0x63, - 0x5F, - 0x77, - 0x72, - 0x69, - 0x74, - 0x65, - 0x20, - 0x3A, - 0x20, - 0x4F, - 0x75, - 0x74, - 0x70, - 0x75, - 0x74, - 0x20, - 0x64, - 0x61, - 0x74, - 0x61, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_319[] = "cc_write : Output data 0x%08x %ld bytes\n"; COMPILER_STRIP_GATE(0x803A2E04, &lit_319); #pragma pop /* 803A2E30-803A2E4C 02F490 001C+00 0/1 0/0 0/0 .rodata @320 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_320[28] = { - 0x63, 0x63, 0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x69, - 0x6E, 0x67, 0x20, 0x25, 0x6C, 0x64, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x0A, 0x00, -}; +SECTION_RODATA static u8 const lit_320[] = "cc_write sending %ld bytes\n"; COMPILER_STRIP_GATE(0x803A2E30, &lit_320); #pragma pop @@ -176,103 +130,11 @@ asm void gdev_cc_write() { /* ############################################################################################## */ /* 803A2E4C-803A2E74 02F4AC 0025+03 1/1 0/0 0/0 .rodata @341 */ -SECTION_RODATA static u8 const lit_341[37 + 3 /* padding */] = { - 0x45, - 0x78, - 0x70, - 0x65, - 0x63, - 0x74, - 0x65, - 0x64, - 0x20, - 0x70, - 0x61, - 0x63, - 0x6B, - 0x65, - 0x74, - 0x20, - 0x73, - 0x69, - 0x7A, - 0x65, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x28, - 0x25, - 0x6C, - 0x64, - 0x29, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_341[] = "Expected packet size : 0x%08x (%ld)\n"; COMPILER_STRIP_GATE(0x803A2E4C, &lit_341); /* 803A2E74-803A2EA4 02F4D4 002D+03 1/1 0/0 0/0 .rodata @342 */ -SECTION_RODATA static u8 const lit_342[45 + 3 /* padding */] = { - 0x63, - 0x63, - 0x5F, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3A, - 0x20, - 0x65, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x20, - 0x72, - 0x65, - 0x61, - 0x64, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x20, - 0x66, - 0x72, - 0x6F, - 0x6D, - 0x20, - 0x45, - 0x58, - 0x49, - 0x32, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_342[] = "cc_read : error reading bytes from EXI2 %ld\n"; COMPILER_STRIP_GATE(0x803A2E74, &lit_342); /* 80372AA4-80372B98 36D3E4 00F4+00 0/0 1/1 0/0 .text gdev_cc_read */ @@ -286,8 +148,8 @@ asm void gdev_cc_read() { #pragma pop /* 80372B98-80372BA0 36D4D8 0008+00 0/0 1/1 0/0 .text gdev_cc_close */ -bool gdev_cc_close() { - return false; +u8 gdev_cc_close() { + return 0; } /* 80372BA0-80372BC4 36D4E0 0024+00 0/0 1/1 0/0 .text gdev_cc_open */ @@ -301,42 +163,17 @@ asm void gdev_cc_open() { #pragma pop /* 80372BC4-80372BCC 36D504 0008+00 0/0 1/1 0/0 .text gdev_cc_shutdown */ -bool gdev_cc_shutdown() { - return false; +u8 gdev_cc_shutdown() { + return 0; } /* ############################################################################################## */ /* 803A2EA4-803A2EB8 02F504 0013+01 1/1 0/0 0/0 .rodata @348 */ -SECTION_RODATA static u8 const lit_348[19 + 1 /* padding */] = { - 0x43, - 0x41, - 0x4C, - 0x4C, - 0x49, - 0x4E, - 0x47, - 0x20, - 0x45, - 0x58, - 0x49, - 0x32, - 0x5F, - 0x49, - 0x6E, - 0x69, - 0x74, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_348[] = "CALLING EXI2_Init\n"; COMPILER_STRIP_GATE(0x803A2EA4, &lit_348); /* 803A2EB8-803A2ED0 02F518 0018+00 1/1 0/0 0/0 .rodata @349 */ -SECTION_RODATA static u8 const lit_349[24] = { - 0x44, 0x4F, 0x4E, 0x45, 0x20, 0x43, 0x41, 0x4C, 0x4C, 0x49, 0x4E, 0x47, - 0x20, 0x45, 0x58, 0x49, 0x32, 0x5F, 0x49, 0x6E, 0x69, 0x74, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_349[] = "DONE CALLING EXI2_Init\n"; COMPILER_STRIP_GATE(0x803A2EB8, &lit_349); /* 80372BCC-80372C54 36D50C 0088+00 0/0 1/1 0/0 .text gdev_cc_initialize */ diff --git a/libs/TRK_MINNOW_DOLPHIN/Makefile b/libs/TRK_MINNOW_DOLPHIN/Makefile index 525f37c7ed9..a53fe1194e0 100644 --- a/libs/TRK_MINNOW_DOLPHIN/Makefile +++ b/libs/TRK_MINNOW_DOLPHIN/Makefile @@ -3,35 +3,35 @@ # LIBTRK_MINNOW_DOLPHIN_A_CPP_FILES := \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.cpp \ - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.cpp \ - libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.cpp \ - libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.cpp \ - libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.cpp \ - libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.cpp \ - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.cpp \ - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.cpp \ - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.cpp \ - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.cpp \ - libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.cpp \ - libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.cpp \ - libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.cpp \ - libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.cpp \ - libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.cpp \ - libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.cpp \ - libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.cpp \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.c \ + libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.c \ + libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.c \ + libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.c \ + libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.c \ + libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.c \ + libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.c \ + libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.c \ + libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.c \ + libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.c \ + libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.c \ + libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.c \ + libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.c \ + libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.c \ + libs/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.c \ + libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.c \ + libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.c \ LIBTRK_MINNOW_DOLPHIN_A_O_FILES := \ $(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.o \ @@ -65,6 +65,9 @@ LIBTRK_MINNOW_DOLPHIN_A_O_FILES := \ $(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.o \ LIBTRK_MINNOW_DOLPHIN_A_CFLAGS := \ + -O4,p \ + -lang=c \ + -rostr LIBTRK_MINNOW_DOLPHIN_A_LDFLAGS := \ -nodefaults \ @@ -72,14 +75,15 @@ LIBTRK_MINNOW_DOLPHIN_A_LDFLAGS := \ -proc gekko \ -linkmode moreram \ +$(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -str reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES) -lang=c + $(BUILD_DIR)/libTRK_MINNOW_DOLPHIN.a: $(LIBTRK_MINNOW_DOLPHIN_A_O_FILES) @echo linking... $(BUILD_DIR)/libTRK_MINNOW_DOLPHIN.a @echo $(LIBTRK_MINNOW_DOLPHIN_A_O_FILES) > build/LIBTRK_MINNOW_DOLPHIN_A_ofiles @$(LD) -xm l $(LIBTRK_MINNOW_DOLPHIN_A_LDFLAGS) -o $(BUILD_DIR)/libTRK_MINNOW_DOLPHIN.a @build/LIBTRK_MINNOW_DOLPHIN_A_ofiles -$(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/%.o: libs/TRK_MINNOW_DOLPHIN/%.cpp +$(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/%.o: libs/TRK_MINNOW_DOLPHIN/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBTRK_MINNOW_DOLPHIN_A_CFLAGS) -c -o $@ $(basename $@).cpp - + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(CC) $(CFLAGS) $(LIBTRK_MINNOW_DOLPHIN_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.c similarity index 82% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.c index 03aa9b01c8d..52b5cc51c5c 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Export/mslsupp.c @@ -11,16 +11,16 @@ // Forward References: // -extern "C" void __TRK_write_console(); -extern "C" void __read_console(); +void __TRK_write_console(); +void __read_console(); // // External References: // -extern "C" void GetTRKConnected(); -extern "C" void TRKAccessFile(); -extern "C" void GetUseSerialIO(); +void GetTRKConnected(); +void TRKAccessFile(); +void GetUseSerialIO(); // // Declarations: diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.c b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.c new file mode 100644 index 00000000000..93a881c0705 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.c @@ -0,0 +1,70 @@ +/** + * dispatch.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h" + +/* 8036DB9C-8036DD0C 3684DC 0170+00 1/0 1/1 0/0 .text TRKDispatchMessage */ +s32 TRKDispatchMessage(TRKBuffer* buffer) { + u32 ret; + + ret = 0x500; + TRKSetBufferPosition(buffer, 0); + MWTRACE(1, "Dispatch command 0x%08x\n", buffer->m_buffer[0]); + + switch (buffer->m_buffer[0]) { + case TRK_DISPATCH_CMD_CONNECT: + ret = TRKDoConnect(buffer); + break; + case TRK_DISPATCH_CMD_DISCONNECT: + ret = TRKDoDisconnect(buffer); + break; + case TRK_DISPATCH_CMD_RESET: + ret = TRKDoReset(buffer); + break; + case TRK_DISPATCH_CMD_OVERRIDE: + ret = TRKDoOverride(buffer); + break; + case TRK_DISPATCH_CMD_GETVERSION: + ret = TRKDoVersions(buffer); + break; + case TRK_DISPATCH_CMD_GETSUPPORTMASK: + ret = TRKDoSupportMask(buffer); + break; + case TRK_DISPATCH_CMD_READMEM: + ret = TRKDoReadMemory(buffer); + break; + case TRK_DISPATCH_CMD_WRITEMEM: + ret = TRKDoWriteMemory(buffer); + break; + case TRK_DISPATCH_CMD_READREGS: + ret = TRKDoReadRegisters(buffer); + break; + case TRK_DISPATCH_CMD_WRITEREGS: + ret = TRKDoWriteRegisters(buffer); + break; + case TRK_DISPATCH_CMD_CONTINUE: + ret = TRKDoContinue(buffer); + break; + case TRK_DISPATCH_CMD_STEP: + ret = TRKDoStep(buffer); + break; + case TRK_DISPATCH_CMD_STOP: + ret = TRKDoStop(buffer); + break; + case TRK_DISPATCH_CMD_SETOPTION: + ret = TRKDoSetOption(buffer); + break; + } + + MWTRACE(1, "Dispatch complete err = %ld\n", ret); + return ret; +} + +/* 8036DD0C-8036DD14 36864C 0008+00 0/0 1/1 0/0 .text TRKInitializeDispatcher */ +u8 TRKInitializeDispatcher() { + return 0; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.cpp deleted file mode 100644 index e5408392f70..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: MetroTRK/Portable/dispatch -// - -#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRKDispatchMessage(); -extern "C" bool TRKInitializeDispatcher(); - -// -// External References: -// - -extern "C" void TRKSetBufferPosition(); -extern "C" void TRKDoSetOption(); -extern "C" void TRKDoStop(); -extern "C" void TRKDoStep(); -extern "C" void TRKDoContinue(); -extern "C" void TRKDoWriteRegisters(); -extern "C" void TRKDoReadRegisters(); -extern "C" void TRKDoWriteMemory(); -extern "C" void TRKDoReadMemory(); -extern "C" bool TRKDoSupportMask(); -extern "C" bool TRKDoVersions(); -extern "C" void TRKDoOverride(); -extern "C" void TRKDoReset(); -extern "C" void TRKDoDisconnect(); -extern "C" void TRKDoConnect(); -extern "C" void MWTRACE(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A2890-803A28AC 02EEF0 0019+03 1/1 0/0 0/0 .rodata @126 */ -SECTION_RODATA static u8 const lit_126[25 + 3 /* padding */] = { - 0x44, - 0x69, - 0x73, - 0x70, - 0x61, - 0x74, - 0x63, - 0x68, - 0x20, - 0x63, - 0x6F, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x64, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2890, &lit_126); - -/* 803A28AC-803A28D0 02EF0C 001D+07 1/1 0/0 0/0 .rodata @127 */ -SECTION_RODATA static u8 const lit_127[29 + 7 /* padding */] = { - 0x44, - 0x69, - 0x73, - 0x70, - 0x61, - 0x74, - 0x63, - 0x68, - 0x20, - 0x63, - 0x6F, - 0x6D, - 0x70, - 0x6C, - 0x65, - 0x74, - 0x65, - 0x20, - 0x65, - 0x72, - 0x72, - 0x20, - 0x3D, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A28AC, &lit_127); - -/* 803D3190-803D3200 -00001 006C+04 1/1 0/0 0/0 .data @128 */ -SECTION_DATA static void* lit_128[27 + 1 /* padding */] = { - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x60), - (void*)(((char*)TRKDispatchMessage) + 0x70), - (void*)(((char*)TRKDispatchMessage) + 0x80), - (void*)(((char*)TRKDispatchMessage) + 0xA0), - (void*)(((char*)TRKDispatchMessage) + 0xB0), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x90), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0xC0), - (void*)(((char*)TRKDispatchMessage) + 0xD0), - (void*)(((char*)TRKDispatchMessage) + 0xE0), - (void*)(((char*)TRKDispatchMessage) + 0xF0), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x13C), - (void*)(((char*)TRKDispatchMessage) + 0x130), - (void*)(((char*)TRKDispatchMessage) + 0x100), - (void*)(((char*)TRKDispatchMessage) + 0x110), - (void*)(((char*)TRKDispatchMessage) + 0x120), - /* padding */ - NULL, -}; - -/* 8036DB9C-8036DD0C 3684DC 0170+00 1/0 1/1 0/0 .text TRKDispatchMessage */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKDispatchMessage() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch/TRKDispatchMessage.s" -} -#pragma pop - -/* 8036DD0C-8036DD14 36864C 0008+00 0/0 1/1 0/0 .text TRKInitializeDispatcher */ -bool TRKInitializeDispatcher() { - return false; -} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.c b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.c new file mode 100644 index 00000000000..3ad956fbd04 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.c @@ -0,0 +1,27 @@ +/** + * main_TRK.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" +#include "TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h" +#include "dol2asm.h" + +/* 8044F818-8044F820 07C538 0004+04 1/1 0/0 0/0 .bss TRK_mainError */ +SECTION_BSS static s32 TRK_mainError; + +/* 80371B9C-80371BF4 36C4DC 0058+00 0/0 2/2 0/0 .text TRK_main */ +s32 TRK_main(void) { + MWTRACE(1, "TRK_Main \n"); + TRK_mainError = TRKInitializeNub(); + + if (!TRK_mainError) { + TRKNubWelcome(); + TRKNubMainLoop(); + } + + TRK_mainError = TRKTerminateNub(); + return TRK_mainError; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.cpp deleted file mode 100644 index a0ef2082ab7..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: MetroTRK/Portable/main_TRK -// - -#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRK_main(); - -// -// External References: -// - -extern "C" void TRKNubMainLoop(); -extern "C" void TRKNubWelcome(); -extern "C" void TRKTerminateNub(); -extern "C" void TRKInitializeNub(); -extern "C" void MWTRACE(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A2BF8-803A2C08 02F258 000B+05 1/1 0/0 0/0 .rodata @80 */ -SECTION_RODATA static u8 const lit_80[11 + 5 /* padding */] = { - 0x54, - 0x52, - 0x4B, - 0x5F, - 0x4D, - 0x61, - 0x69, - 0x6E, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2BF8, &lit_80); - -/* 8044F818-8044F820 07C538 0004+04 1/1 0/0 0/0 .bss TRK_mainError */ -SECTION_BSS static u8 TRK_mainError[4 + 4 /* padding */]; - -/* 80371B9C-80371BF4 36C4DC 0058+00 0/0 2/2 0/0 .text TRK_main */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRK_main() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK/TRK_main.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.c similarity index 51% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.c index a1259e658b8..a136e2c2124 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.c @@ -7,26 +7,20 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void TRKNubMainLoop(); - // // External References: // -extern "C" void TRKDestructEvent(); -extern "C" void TRKGetNextEvent(); -extern "C" void TRKGetBuffer(); -extern "C" void TRKGetInput(); -extern "C" void TRKDispatchMessage(); -extern "C" void TRKTargetStopped(); -extern "C" void TRKTargetSupportRequest(); -extern "C" void TRKTargetInterrupt(); -extern "C" void TRKTargetContinue(); -extern "C" extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; +void TRKDestructEvent(); +void TRKGetNextEvent(); +void TRKGetBuffer(); +void TRKGetInput(); +void TRKDispatchMessage(); +void TRKTargetStopped(); +void TRKTargetSupportRequest(); +void TRKTargetInterrupt(); +void TRKTargetContinue(); +extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; // // Declarations: @@ -36,7 +30,7 @@ extern "C" extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKNubMainLoop() { +asm void TRKNubMainLoop(void) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop/TRKNubMainLoop.s" } diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.c b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.c new file mode 100644 index 00000000000..22bf22e5118 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.c @@ -0,0 +1,58 @@ +/** + * mem_TRK.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" + +/* 8036F580-8036F638 369EC0 00B8+00 0/0 1/1 0/0 .text TRK_fill_mem */ +void TRK_fill_mem(void* dst, int val, u32 n) { + u32 v, i, j; + v = (u8)val; + + ((u8*)dst) = ((u8*)dst) - 1; + + if (n >= 32) { + i = (~(u32)dst) & 3; + + if (i) { + n -= i; + + do { + *++(((u8*)dst)) = v; + } while (--i); + } + + if (v) + v |= v << 24 | v << 16 | v << 8; + + ((u32*)dst) = ((u32*)(((u8*)dst) + 4)) - 1; + ((u32*)dst) = ((u32*)(((u8*)dst) + 1)) - 1; + + i = n / 32; + + if (i) { + do { + for (j = 0; j < 8; j++) + *++((u32*)dst) = v; + } while (--i); + } + + i = (n / 4) % 8; + + if (i) { + do { + *++((u32*)dst) = v; + } while (--i); + } + + ((u8*)dst) = ((u8*)(((u32*)dst) + 1)) - 1; + + n %= 4; + } + + if (n) + do { + *++((u8*)dst) = v; + } while (--n); +} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.cpp deleted file mode 100644 index ad6d5cecdce..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: MetroTRK/Portable/mem_TRK -// - -#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRK_fill_mem(); - -// -// External References: -// - -// -// Declarations: -// - -/* 8036F580-8036F638 369EC0 00B8+00 0/0 1/1 0/0 .text TRK_fill_mem */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRK_fill_mem() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK/TRK_fill_mem.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.c b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.c new file mode 100644 index 00000000000..590c7e1f145 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.c @@ -0,0 +1,15 @@ +/** + * msg.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h" + +/* 8036CFD8-8036D01C 367918 0044+00 0/0 6/6 0/0 .text TRKMessageSend */ +s32 TRKMessageSend(TRK_Msg* msg) { + u32 write_val = TRKWriteUARTN(&msg->m_msg, msg->m_msgLength); + MWTRACE(1, "MessageSend : cc_write returned %ld\n", write_val); + return 0; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.cpp deleted file mode 100644 index c9f077189ab..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: MetroTRK/Portable/msg -// - -#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRKMessageSend(); - -// -// External References: -// - -extern "C" void TRKWriteUARTN(); -extern "C" void MWTRACE(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803A26B8-803A26E0 02ED18 0025+03 1/1 0/0 0/0 .rodata @98 */ -SECTION_RODATA static u8 const lit_98[37 + 3 /* padding */] = { - 0x4D, - 0x65, - 0x73, - 0x73, - 0x61, - 0x67, - 0x65, - 0x53, - 0x65, - 0x6E, - 0x64, - 0x20, - 0x3A, - 0x20, - 0x63, - 0x63, - 0x5F, - 0x77, - 0x72, - 0x69, - 0x74, - 0x65, - 0x20, - 0x72, - 0x65, - 0x74, - 0x75, - 0x72, - 0x6E, - 0x65, - 0x64, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A26B8, &lit_98); - -/* 8036CFD8-8036D01C 367918 0044+00 0/0 6/6 0/0 .text TRKMessageSend */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKMessageSend() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg/TRKMessageSend.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.c similarity index 81% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.c index ec176bd4bf9..c42ce909d50 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.c @@ -11,20 +11,19 @@ // Forward References: // -extern "C" void TRKReadBuffer_ui32(); -extern "C" void TRKReadBuffer_ui8(); -extern "C" void TRKReadBuffer1_ui64(); -extern "C" void TRKAppendBuffer_ui32(); -extern "C" void TRKAppendBuffer_ui8(); -extern "C" void TRKAppendBuffer1_ui64(); -extern "C" void TRKReadBuffer(); -extern "C" void TRKAppendBuffer(); -extern "C" void TRKSetBufferPosition(); -extern "C" void TRKResetBuffer(); -extern "C" void TRKReleaseBuffer(); -extern "C" void TRKGetBuffer(); -extern "C" void TRKGetFreeBuffer(); -extern "C" void TRKInitializeMessageBuffers(); +void TRKReadBuffer_ui32(); +void TRKReadBuffer_ui8(); +void TRKReadBuffer1_ui64(); +void TRKAppendBuffer_ui32(); +void TRKAppendBuffer_ui8(); +void TRKAppendBuffer1_ui64(); +void TRKReadBuffer(); +void TRKAppendBuffer(); +void TRKResetBuffer(); +void TRKReleaseBuffer(); +void TRKGetBuffer(); +void TRKGetFreeBuffer(); +void TRKInitializeMessageBuffers(); // // External References: @@ -32,10 +31,10 @@ extern "C" void TRKInitializeMessageBuffers(); SECTION_INIT void TRK_memset(); SECTION_INIT void TRK_memcpy(); -extern "C" void usr_puts_serial(); -extern "C" bool TRKReleaseMutex(); -extern "C" bool TRKAcquireMutex(); -extern "C" bool TRKInitializeMutex(); +void usr_puts_serial(); +u8 TRKReleaseMutex(); +u8 TRKAcquireMutex(); +u8 TRKInitializeMutex(); SECTION_BSS extern u8 gTRKBigEndian[4 + 4 /* padding */]; // @@ -126,7 +125,7 @@ asm void TRKAppendBuffer() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKSetBufferPosition() { +asm s32 TRKSetBufferPosition(TRKBuffer*, u32) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf/TRKSetBufferPosition.s" } @@ -168,41 +167,7 @@ asm void TRKGetBuffer() { /* ############################################################################################## */ /* 803A26E0-803A2700 02ED40 001D+03 1/1 0/0 0/0 .rodata @618 */ -SECTION_RODATA static u8 const lit_618[29 + 3 /* padding */] = { - 0x45, - 0x52, - 0x52, - 0x4F, - 0x52, - 0x20, - 0x3A, - 0x20, - 0x4E, - 0x6F, - 0x20, - 0x62, - 0x75, - 0x66, - 0x66, - 0x65, - 0x72, - 0x20, - 0x61, - 0x76, - 0x61, - 0x69, - 0x6C, - 0x61, - 0x62, - 0x6C, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_618[] = "ERROR : No buffer available\n"; COMPILER_STRIP_GATE(0x803A26E0, &lit_618); /* 8036D71C-8036D7E4 36805C 00C8+00 0/0 6/6 0/0 .text TRKGetFreeBuffer */ diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.c similarity index 53% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.c index f0b55bf1fee..0dc5b184d16 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.c @@ -11,23 +11,7 @@ // Forward References: // -extern "C" void TRKDoSetOption(); -extern "C" void TRKDoStop(); -extern "C" void TRKDoStep(); -extern "C" void TRKDoContinue(); -extern "C" void TRKDoWriteRegisters(); -extern "C" void TRKDoReadRegisters(); -extern "C" void TRKDoWriteMemory(); -extern "C" void TRKDoReadMemory(); -extern "C" bool TRKDoSupportMask(); -extern "C" bool TRKDoVersions(); -extern "C" void TRKDoOverride(); -extern "C" void TRKDoReset(); -extern "C" void TRKDoDisconnect(); -extern "C" void TRKDoConnect(); -extern "C" void SetTRKConnected(); -extern "C" void GetTRKConnected(); -extern "C" void OutputData(); +void OutputData(); // // External References: @@ -35,31 +19,30 @@ extern "C" void OutputData(); SECTION_INIT void memset(); SECTION_INIT void __TRK_reset(); -extern "C" void TRKConstructEvent(); -extern "C" void TRKPostEvent(); -extern "C" void TRKMessageSend(); -extern "C" void TRKAppendBuffer_ui8(); -extern "C" void TRKReadBuffer(); -extern "C" void TRKAppendBuffer(); -extern "C" void TRKSetBufferPosition(); -extern "C" void TRKResetBuffer(); -extern "C" void usr_puts_serial(); -extern "C" void TRKTargetAccessARAM(); -extern "C" void TRKTargetStop(); -extern "C" void TRKTargetStopped(); -extern "C" void TRKTargetGetPC(); -extern "C" void TRKTargetStepOutOfRange(); -extern "C" void TRKTargetSingleStep(); -extern "C" void TRKTargetAccessExtended2(); -extern "C" void TRKTargetAccessExtended1(); -extern "C" void TRKTargetAccessFP(); -extern "C" void TRKTargetAccessDefault(); -extern "C" void TRKTargetAccessMemory(); -extern "C" void __TRK_copy_vectors(); -extern "C" void TRKWriteUARTN(); -extern "C" void TRKTargetContinue(); -extern "C" void SetUseSerialIO(); -extern "C" void MWTRACE(); +void TRKConstructEvent(); +void TRKPostEvent(); +void TRKMessageSend(); +void TRKAppendBuffer_ui8(); +void TRKReadBuffer(); +void TRKAppendBuffer(); +void TRKResetBuffer(); +void usr_puts_serial(); +void TRKTargetAccessARAM(); +void TRKTargetStop(); +void TRKTargetStopped(); +void TRKTargetGetPC(); +void TRKTargetStepOutOfRange(); +void TRKTargetSingleStep(); +void TRKTargetAccessExtended2(); +void TRKTargetAccessExtended1(); +void TRKTargetAccessFP(); +void TRKTargetAccessDefault(); +void TRKTargetAccessMemory(); +void __TRK_copy_vectors(); +void TRKWriteUARTN(); +void TRKTargetContinue(); +void SetUseSerialIO(); +void MWTRACE(); // // Declarations: @@ -67,70 +50,20 @@ extern "C" void MWTRACE(); /* ############################################################################################## */ /* 803A28D0-803A28F0 02EF30 001F+01 4/4 0/0 0/0 .rodata @321 */ -SECTION_RODATA static u8 const lit_321[31 + 1 /* padding */] = { - 0x0A, - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x4F, - 0x70, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x3A, - 0x20, - 0x53, - 0x65, - 0x72, - 0x69, - 0x61, - 0x6C, - 0x49, - 0x4F, - 0x20, - 0x2D, - 0x20, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_321[] = "\nMetroTRK Option : SerialIO - "; COMPILER_STRIP_GATE(0x803A28D0, &lit_321); /* 803A28F0-803A28F8 02EF50 0008+00 0/1 0/0 0/0 .rodata @322 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_322[8] = { - 0x45, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_322[] = "Enable\n"; COMPILER_STRIP_GATE(0x803A28F0, &lit_322); #pragma pop /* 803A28F8-803A2904 02EF58 0009+03 0/1 0/0 0/0 .rodata @323 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_323[9 + 3 /* padding */] = { - 0x44, - 0x69, - 0x73, - 0x61, - 0x62, - 0x6C, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_323[] = "Disable\n"; COMPILER_STRIP_GATE(0x803A28F8, &lit_323); #pragma pop @@ -138,7 +71,7 @@ COMPILER_STRIP_GATE(0x803A28F8, &lit_323); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoSetOption() { +asm s32 TRKDoSetOption(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoSetOption.s" } @@ -148,7 +81,7 @@ asm void TRKDoSetOption() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoStop() { +asm s32 TRKDoStop(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoStop.s" } @@ -158,7 +91,7 @@ asm void TRKDoStop() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoStep() { +asm s32 TRKDoStep(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoStep.s" } @@ -166,16 +99,14 @@ asm void TRKDoStep() { /* ############################################################################################## */ /* 803A2904-803A2910 02EF64 000C+00 1/1 0/0 0/0 .rodata @370 */ -SECTION_RODATA static u8 const lit_370[12] = { - 0x44, 0x6F, 0x43, 0x6F, 0x6E, 0x74, 0x69, 0x6E, 0x75, 0x65, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_370[] = "DoContinue\n"; COMPILER_STRIP_GATE(0x803A2904, &lit_370); /* 8036E084-8036E134 3689C4 00B0+00 0/0 1/1 0/0 .text TRKDoContinue */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoContinue() { +asm s32 TRKDoContinue(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoContinue.s" } @@ -185,117 +116,23 @@ asm void TRKDoContinue() { /* 803A2910-803A2930 02EF70 001F+01 0/0 0/0 0/0 .rodata @402 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_402[31 + 1 /* padding */] = { - 0x44, - 0x6F, - 0x46, - 0x6C, - 0x75, - 0x73, - 0x68, - 0x43, - 0x61, - 0x63, - 0x68, - 0x65, - 0x20, - 0x75, - 0x6E, - 0x69, - 0x6D, - 0x70, - 0x6C, - 0x65, - 0x6D, - 0x65, - 0x6E, - 0x74, - 0x65, - 0x64, - 0x21, - 0x21, - 0x21, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_402[] = "DoFlushCache unimplemented!!!\n"; COMPILER_STRIP_GATE(0x803A2910, &lit_402); #pragma pop /* 803A2930-803A2950 02EF90 001F+01 1/4 0/0 0/0 .rodata @403 */ -SECTION_RODATA static u8 const lit_403[31 + 1 /* padding */] = { - 0x53, - 0x65, - 0x6E, - 0x64, - 0x41, - 0x43, - 0x4B, - 0x20, - 0x3A, - 0x20, - 0x43, - 0x61, - 0x6C, - 0x6C, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x4D, - 0x65, - 0x73, - 0x73, - 0x61, - 0x67, - 0x65, - 0x53, - 0x65, - 0x6E, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_403[] = "SendACK : Calling MessageSend\n"; COMPILER_STRIP_GATE(0x803A2930, &lit_403); /* 803A2950-803A2968 02EFB0 0017+01 1/4 0/0 0/0 .rodata @404 */ -SECTION_RODATA static u8 const lit_404[23 + 1 /* padding */] = { - 0x4D, - 0x65, - 0x73, - 0x73, - 0x61, - 0x67, - 0x65, - 0x53, - 0x65, - 0x6E, - 0x64, - 0x20, - 0x65, - 0x72, - 0x72, - 0x20, - 0x3A, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_404[] = "MessageSend err : %ld\n"; COMPILER_STRIP_GATE(0x803A2950, &lit_404); /* 8036E134-8036E3C4 368A74 0290+00 0/0 1/1 0/0 .text TRKDoWriteRegisters */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoWriteRegisters() { +asm s32 TRKDoWriteRegisters(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoWriteRegisters.s" } @@ -305,201 +142,35 @@ asm void TRKDoWriteRegisters() { /* 803A2968-803A2990 02EFC8 0028+00 0/1 0/0 0/0 .rodata @462 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_462[40] = { - 0x44, 0x6F, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x20, 0x3A, 0x20, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x6C, 0x65, 0x6E, - 0x67, 0x74, 0x68, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_462[] = "DoReadRegisters : Buffer length 0x%08x\n"; COMPILER_STRIP_GATE(0x803A2968, &lit_462); #pragma pop /* 803A2990-803A29C8 02EFF0 0036+02 0/1 0/0 0/0 .rodata @463 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_463[54 + 2 /* padding */] = { - 0x44, - 0x6F, - 0x52, - 0x65, - 0x61, - 0x64, - 0x52, - 0x65, - 0x67, - 0x69, - 0x73, - 0x74, - 0x65, - 0x72, - 0x73, - 0x20, - 0x3A, - 0x20, - 0x45, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x20, - 0x72, - 0x65, - 0x61, - 0x64, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x20, - 0x64, - 0x65, - 0x66, - 0x61, - 0x75, - 0x6C, - 0x74, - 0x20, - 0x72, - 0x65, - 0x67, - 0x73, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_463[] = "DoReadRegisters : Error reading default regs 0x%08x\n"; COMPILER_STRIP_GATE(0x803A2990, &lit_463); #pragma pop /* 803A29C8-803A29F0 02F028 0028+00 0/1 0/0 0/0 .rodata @464 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_464[40] = { - 0x44, 0x6F, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x20, 0x3A, 0x20, 0x45, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x46, 0x50, 0x20, 0x72, - 0x65, 0x67, 0x73, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_464[] = "DoReadRegisters : Error FP regs 0x%08x\n"; COMPILER_STRIP_GATE(0x803A29C8, &lit_464); #pragma pop /* 803A29F0-803A2A20 02F050 002F+01 0/1 0/0 0/0 .rodata @465 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_465[47 + 1 /* padding */] = { - 0x44, - 0x6F, - 0x52, - 0x65, - 0x61, - 0x64, - 0x52, - 0x65, - 0x67, - 0x69, - 0x73, - 0x74, - 0x65, - 0x72, - 0x73, - 0x20, - 0x3A, - 0x20, - 0x45, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x20, - 0x65, - 0x78, - 0x74, - 0x65, - 0x6E, - 0x64, - 0x65, - 0x64, - 0x31, - 0x20, - 0x72, - 0x65, - 0x67, - 0x73, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_465[] = "DoReadRegisters : Error extended1 regs 0x%08x\n"; COMPILER_STRIP_GATE(0x803A29F0, &lit_465); #pragma pop /* 803A2A20-803A2A50 02F080 002F+01 0/1 0/0 0/0 .rodata @466 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_466[47 + 1 /* padding */] = { - 0x44, - 0x6F, - 0x52, - 0x65, - 0x61, - 0x64, - 0x52, - 0x65, - 0x67, - 0x69, - 0x73, - 0x74, - 0x65, - 0x72, - 0x73, - 0x20, - 0x3A, - 0x20, - 0x45, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x20, - 0x65, - 0x78, - 0x74, - 0x65, - 0x6E, - 0x64, - 0x65, - 0x64, - 0x32, - 0x20, - 0x72, - 0x65, - 0x67, - 0x73, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_466[] = "DoReadRegisters : Error extended2 regs 0x%08x\n"; COMPILER_STRIP_GATE(0x803A2A20, &lit_466); #pragma pop @@ -507,7 +178,7 @@ COMPILER_STRIP_GATE(0x803A2A20, &lit_466); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoReadRegisters() { +asm s32 TRKDoReadRegisters(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoReadRegisters.s" } @@ -517,57 +188,7 @@ asm void TRKDoReadRegisters() { /* 803A2A50-803A2A80 02F0B0 002D+03 0/1 0/0 0/0 .rodata @498 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_498[45 + 3 /* padding */] = { - 0x57, - 0x72, - 0x69, - 0x74, - 0x65, - 0x4D, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x79, - 0x20, - 0x28, - 0x30, - 0x78, - 0x25, - 0x30, - 0x32, - 0x78, - 0x29, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_498[] = "WriteMemory (0x%02x) : 0x%08x 0x%08x 0x%08x\n"; COMPILER_STRIP_GATE(0x803A2A50, &lit_498); #pragma pop @@ -583,7 +204,7 @@ SECTION_DATA static void* lit_499[7] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoWriteMemory() { +asm s32 TRKDoWriteMemory(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoWriteMemory.s" } @@ -593,11 +214,7 @@ asm void TRKDoWriteMemory() { /* 803A2A80-803A2AAC 02F0E0 002C+00 0/1 0/0 0/0 .rodata @535 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_535[44] = { - 0x52, 0x65, 0x61, 0x64, 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x28, 0x30, 0x78, 0x25, - 0x30, 0x32, 0x78, 0x29, 0x20, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x20, 0x30, - 0x78, 0x25, 0x30, 0x38, 0x78, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_535[] = "ReadMemory (0x%02x) : 0x%08x 0x%08x 0x%08x\n"; COMPILER_STRIP_GATE(0x803A2A80, &lit_535); #pragma pop @@ -613,27 +230,27 @@ SECTION_DATA static void* lit_536[7] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoReadMemory() { +asm s32 TRKDoReadMemory(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoReadMemory.s" } #pragma pop /* 8036EB24-8036EB2C 369464 0008+00 0/0 1/1 0/0 .text TRKDoSupportMask */ -bool TRKDoSupportMask() { - return false; +s32 TRKDoSupportMask(TRKBuffer*) { + return 0; } /* 8036EB2C-8036EB34 36946C 0008+00 0/0 1/1 0/0 .text TRKDoVersions */ -bool TRKDoVersions() { - return false; +s32 TRKDoVersions(TRKBuffer*) { + return 0; } /* 8036EB34-8036EB8C 369474 0058+00 0/0 1/1 0/0 .text TRKDoOverride */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoOverride() { +asm s32 TRKDoOverride(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoOverride.s" } @@ -643,7 +260,7 @@ asm void TRKDoOverride() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoReset() { +asm s32 TRKDoReset(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoReset.s" } @@ -657,7 +274,7 @@ SECTION_BSS static u8 IsTRKConnected[4 + 4 /* padding */]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoDisconnect() { +asm s32 TRKDoDisconnect(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoDisconnect.s" } @@ -667,7 +284,7 @@ asm void TRKDoDisconnect() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKDoConnect() { +asm s32 TRKDoConnect(TRKBuffer*) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/TRKDoConnect.s" } @@ -677,7 +294,7 @@ asm void TRKDoConnect() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void SetTRKConnected() { +asm void SetTRKConnected(BOOL) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/SetTRKConnected.s" } @@ -687,7 +304,7 @@ asm void SetTRKConnected() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GetTRKConnected() { +asm BOOL GetTRKConnected(void) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/GetTRKConnected.s" } @@ -695,25 +312,11 @@ asm void GetTRKConnected() { /* ############################################################################################## */ /* 803A2AAC-803A2AB4 02F10C 0006+02 1/1 0/0 0/0 .rodata @573 */ -SECTION_RODATA static u8 const lit_573[6 + 2 /* padding */] = { - 0x25, - 0x30, - 0x32, - 0x78, - 0x20, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_573[] = "%02x "; COMPILER_STRIP_GATE(0x803A2AAC, &lit_573); /* 803A2AB4-803A2AB8 02F114 0002+02 1/1 0/0 0/0 .rodata @574 */ -SECTION_RODATA static u16 const lit_574[1 + 1 /* padding */] = { - 0x0A00, - /* padding */ - 0x0000, -}; +SECTION_RODATA static char const lit_574[] = "\n"; COMPILER_STRIP_GATE(0x803A2AB4, &lit_574); /* 8036ECDC-8036ED84 36961C 00A8+00 0/0 1/1 0/0 .text OutputData */ diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.c b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.c new file mode 100644 index 00000000000..dc8dc05bb6a --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.c @@ -0,0 +1,21 @@ +/** + * mutex_TRK.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" + +/* 8036F498-8036F4A0 369DD8 0008+00 0/0 6/6 0/0 .text TRKReleaseMutex */ +u8 TRKReleaseMutex() { + return 0; +} + +/* 8036F4A0-8036F4A8 369DE0 0008+00 0/0 6/6 0/0 .text TRKAcquireMutex */ +u8 TRKAcquireMutex() { + return 0; +} + +/* 8036F4A8-8036F4B0 369DE8 0008+00 0/0 2/2 0/0 .text TRKInitializeMutex */ +u8 TRKInitializeMutex() { + return 0; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.cpp deleted file mode 100644 index c68739b11f2..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: MetroTRK/Portable/mutex_TRK -// - -#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" bool TRKReleaseMutex(); -extern "C" bool TRKAcquireMutex(); -extern "C" bool TRKInitializeMutex(); - -// -// External References: -// - -// -// Declarations: -// - -/* 8036F498-8036F4A0 369DD8 0008+00 0/0 6/6 0/0 .text TRKReleaseMutex */ -bool TRKReleaseMutex() { - return false; -} - -/* 8036F4A0-8036F4A8 369DE0 0008+00 0/0 6/6 0/0 .text TRKAcquireMutex */ -bool TRKAcquireMutex() { - return false; -} - -/* 8036F4A8-8036F4B0 369DE8 0008+00 0/0 2/2 0/0 .text TRKInitializeMutex */ -bool TRKInitializeMutex() { - return false; -} diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.c similarity index 71% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.c index 9470a2f1969..c2c56c21df0 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.c @@ -11,17 +11,17 @@ // Forward References: // -extern "C" void TRKDoNotifyStopped(); +void TRKDoNotifyStopped(); // // External References: // -extern "C" void TRKReleaseBuffer(); -extern "C" void TRKGetFreeBuffer(); -extern "C" void TRKRequestSend(); -extern "C" void TRKTargetAddExceptionInfo(); -extern "C" void TRKTargetAddStopInfo(); +void TRKReleaseBuffer(); +void TRKGetFreeBuffer(); +void TRKRequestSend(); +void TRKTargetAddExceptionInfo(); +void TRKTargetAddStopInfo(); // // Declarations: diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.c similarity index 85% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.c index dbb5a4a88b0..b812ae39b2b 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.c @@ -11,21 +11,21 @@ // Forward References: // -extern "C" void TRKDestructEvent(); -extern "C" void TRKConstructEvent(); -extern "C" void TRKPostEvent(); -extern "C" void TRKGetNextEvent(); -extern "C" void TRKInitializeEventQueue(); +void TRKDestructEvent(); +void TRKConstructEvent(); +void TRKPostEvent(); +void TRKGetNextEvent(); +void TRKInitializeEventQueue(); // // External References: // SECTION_INIT void TRK_memcpy(); -extern "C" void TRKReleaseBuffer(); -extern "C" bool TRKReleaseMutex(); -extern "C" bool TRKAcquireMutex(); -extern "C" bool TRKInitializeMutex(); +void TRKReleaseBuffer(); +u8 TRKReleaseMutex(); +u8 TRKAcquireMutex(); +u8 TRKInitializeMutex(); // // Declarations: diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.c similarity index 53% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.c index 14981865cb0..5ccaf088b65 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.c @@ -7,31 +7,23 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void TRKNubWelcome(); -extern "C" void TRKTerminateNub(); -extern "C" void TRKInitializeNub(); - // // External References: // -extern "C" void TRKInitializeEventQueue(); -extern "C" void TRKInitializeMessageBuffers(); -extern "C" bool TRKTerminateSerialHandler(); -extern "C" void TRKInitializeSerialHandler(); -extern "C" void usr_put_initialize(); -extern "C" bool TRKInitializeDispatcher(); -extern "C" void TRKTargetSetInputPendingPtr(); -extern "C" void TRKInitializeTarget(); -extern "C" void InitializeProgramEndTrap(); -extern "C" void TRK_board_display(); -extern "C" void TRKInitializeIntDrivenUART(); -extern "C" void MWTRACE(); -extern "C" extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; +void TRKInitializeEventQueue(); +void TRKInitializeMessageBuffers(); +u8 TRKTerminateSerialHandler(); +void TRKInitializeSerialHandler(); +void usr_put_initialize(); +u8 TRKInitializeDispatcher(); +void TRKTargetSetInputPendingPtr(); +void TRKInitializeTarget(); +void InitializeProgramEndTrap(); +void TRK_board_display(); +void TRKInitializeIntDrivenUART(); +void MWTRACE(); +extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; // // Declarations: @@ -39,44 +31,14 @@ extern "C" extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; /* ############################################################################################## */ /* 803A2688-803A26A4 02ECE8 001B+01 1/1 0/0 0/0 .rodata @133 */ -SECTION_RODATA static u8 const lit_133[27 + 1 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x66, - 0x6F, - 0x72, - 0x20, - 0x47, - 0x41, - 0x4D, - 0x45, - 0x43, - 0x55, - 0x42, - 0x45, - 0x20, - 0x76, - 0x32, - 0x2E, - 0x36, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_133[] = "MetroTRK for GAMECUBE v2.6"; COMPILER_STRIP_GATE(0x803A2688, &lit_133); /* 8036CE40-8036CE68 367780 0028+00 0/0 1/1 0/0 .text TRKNubWelcome */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKNubWelcome() { +asm void TRKNubWelcome(void) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit/TRKNubWelcome.s" } @@ -86,7 +48,7 @@ asm void TRKNubWelcome() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKTerminateNub() { +asm s32 TRKTerminateNub(void) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit/TRKTerminateNub.s" } @@ -94,29 +56,7 @@ asm void TRKTerminateNub() { /* ############################################################################################## */ /* 803A26A4-803A26B8 02ED04 0010+04 1/1 0/0 0/0 .rodata @154 */ -SECTION_RODATA static u8 const lit_154[16 + 4 /* padding */] = { - 0x49, - 0x6E, - 0x69, - 0x74, - 0x69, - 0x61, - 0x6C, - 0x69, - 0x7A, - 0x65, - 0x20, - 0x4E, - 0x55, - 0x42, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_154[] = "Initialize NUB\n"; COMPILER_STRIP_GATE(0x803A26A4, &lit_154); /* 8044D8B8-8044D8C0 07A5D8 0004+04 1/1 4/4 0/0 .bss gTRKBigEndian */ @@ -127,7 +67,7 @@ SECTION_BSS u8 gTRKBigEndian[4 + 4 /* padding */]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKInitializeNub() { +asm s32 TRKInitializeNub(void) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit/TRKInitializeNub.s" } diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.c b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.c new file mode 100644 index 00000000000..ba0deef4dea --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.c @@ -0,0 +1,167 @@ +// +// Generated By: dol2asm +// Translation Unit: MetroTRK/Portable/serpoll +// + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "dol2asm.h" +#include "dolphin/types.h" + +// +// Forward References: +// + +u8 TRKTerminateSerialHandler(); +void TRKInitializeSerialHandler(); +void TRKProcessInput(); +void TRKGetInput(); +void TRKTestForPacket(); +extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; + +// +// External References: +// + +void TRKConstructEvent(); +void TRKPostEvent(); +void TRKAppendBuffer_ui8(); +void TRKSetBufferPosition(); +void TRKReleaseBuffer(); +void TRKGetBuffer(); +void TRKGetFreeBuffer(); +void TRKReadUARTN(); +void TRKPollUART(); +void MWTRACE(); + +// +// Declarations: +// + +/* 8036D858-8036D860 368198 0008+00 0/0 1/1 0/0 .text TRKTerminateSerialHandler */ +u8 TRKTerminateSerialHandler() { + return 0; +} + +/* ############################################################################################## */ +/* 803A2700-803A2724 02ED60 0022+02 2/2 0/0 0/0 .rodata @121 */ +SECTION_RODATA static char const lit_121[] = "TRK_Packet_Header \t %ld bytes\n"; +COMPILER_STRIP_GATE(0x803A2700, &lit_121); + +/* 803A2724-803A2748 02ED84 0022+02 0/1 0/0 0/0 .rodata @122 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_122[] = "TRK_CMD_ReadMemory %ld bytes\n"; +COMPILER_STRIP_GATE(0x803A2724, &lit_122); +#pragma pop + +/* 803A2748-803A276C 02EDA8 0022+02 0/1 0/0 0/0 .rodata @123 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_123[] = "TRK_CMD_WriteMemory %ld bytes\n"; +COMPILER_STRIP_GATE(0x803A2748, &lit_123); +#pragma pop + +/* 803A276C-803A278C 02EDCC 0020+00 0/1 0/0 0/0 .rodata @124 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_124[] = "TRK_CMD_Connect \t %ld bytes\n"; +COMPILER_STRIP_GATE(0x803A276C, &lit_124); +#pragma pop + +/* 803A278C-803A27AC 02EDEC 0020+00 0/1 0/0 0/0 .rodata @125 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_125[] = "TRK_CMD_ReplyAck\t %ld bytes\n"; +COMPILER_STRIP_GATE(0x803A278C, &lit_125); +#pragma pop + +/* 803A27AC-803A27D0 02EE0C 0021+03 0/1 0/0 0/0 .rodata @126 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_126[] = "TRK_CMD_ReadRegisters\t%ld bytes\n"; +COMPILER_STRIP_GATE(0x803A27AC, &lit_126); +#pragma pop + +/* 8044F270-8044F288 07BF90 0014+04 3/3 0/0 0/0 .bss gTRKFramingState */ +static u8 gTRKFramingState[20 + 4 /* padding */]; + +/* 8036D860-8036D924 3681A0 00C4+00 0/0 1/1 0/0 .text TRKInitializeSerialHandler */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void TRKInitializeSerialHandler() { + nofralloc +#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKInitializeSerialHandler.s" +} +#pragma pop + +/* 8036D924-8036D974 368264 0050+00 0/0 1/1 0/0 .text TRKProcessInput */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void TRKProcessInput() { + nofralloc +#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKProcessInput.s" +} +#pragma pop + +/* 8036D974-8036D9D4 3682B4 0060+00 0/0 1/1 0/0 .text TRKGetInput */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void TRKGetInput() { + nofralloc +#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKGetInput.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803A27D0-803A27F4 02EE30 0024+00 0/1 0/0 0/0 .rodata @146 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_146[] = "TestForPacket : FreeBuffer is %ld\n"; +COMPILER_STRIP_GATE(0x803A27D0, &lit_146); +#pragma pop + +/* 803A27F4-803A2810 02EE54 001B+01 0/1 0/0 0/0 .rodata @147 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_147[] = "Reading payload %ld bytes\n"; +COMPILER_STRIP_GATE(0x803A27F4, &lit_147); +#pragma pop + +/* 803A2810-803A2844 02EE70 0031+03 0/1 0/0 0/0 .rodata @148 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_148[] = "TestForPacket : Invalid size of packet hdr.size\n"; +COMPILER_STRIP_GATE(0x803A2810, &lit_148); +#pragma pop + +/* 803A2844-803A286C 02EEA4 0028+00 0/1 0/0 0/0 .rodata @149 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_149[] = "TestForPacket : Invalid size of packet\n"; +COMPILER_STRIP_GATE(0x803A2844, &lit_149); +#pragma pop + +/* 803A286C-803A2890 02EECC 001D+07 0/1 0/0 0/0 .rodata @150 */ +#pragma push +#pragma force_active on +SECTION_RODATA static char const lit_150[] = "TestForPacket returning %ld\n"; +COMPILER_STRIP_GATE(0x803A286C, &lit_150); +#pragma pop + +/* 8036D9D4-8036DB10 368314 013C+00 1/1 1/1 0/0 .text TRKTestForPacket */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void TRKTestForPacket() { + nofralloc +#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKTestForPacket.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 804519B8-804519C0 000EB8 0004+04 0/0 2/2 0/0 .sbss gTRKInputPendingPtr */ +extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; +u8 gTRKInputPendingPtr[4 + 4 /* padding */]; diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.cpp deleted file mode 100644 index f661ad44ec1..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.cpp +++ /dev/null @@ -1,455 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: MetroTRK/Portable/serpoll -// - -#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" bool TRKTerminateSerialHandler(); -extern "C" void TRKInitializeSerialHandler(); -extern "C" void TRKProcessInput(); -extern "C" void TRKGetInput(); -extern "C" void TRKTestForPacket(); -extern "C" extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void TRKConstructEvent(); -extern "C" void TRKPostEvent(); -extern "C" void TRKAppendBuffer_ui8(); -extern "C" void TRKSetBufferPosition(); -extern "C" void TRKReleaseBuffer(); -extern "C" void TRKGetBuffer(); -extern "C" void TRKGetFreeBuffer(); -extern "C" void TRKReadUARTN(); -extern "C" void TRKPollUART(); -extern "C" void MWTRACE(); - -// -// Declarations: -// - -/* 8036D858-8036D860 368198 0008+00 0/0 1/1 0/0 .text TRKTerminateSerialHandler */ -bool TRKTerminateSerialHandler() { - return false; -} - -/* ############################################################################################## */ -/* 803A2700-803A2724 02ED60 0022+02 2/2 0/0 0/0 .rodata @121 */ -SECTION_RODATA static u8 const lit_121[34 + 2 /* padding */] = { - 0x54, - 0x52, - 0x4B, - 0x5F, - 0x50, - 0x61, - 0x63, - 0x6B, - 0x65, - 0x74, - 0x5F, - 0x48, - 0x65, - 0x61, - 0x64, - 0x65, - 0x72, - 0x20, - 0x09, - 0x20, - 0x20, - 0x20, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2700, &lit_121); - -/* 803A2724-803A2748 02ED84 0022+02 0/1 0/0 0/0 .rodata @122 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_122[34 + 2 /* padding */] = { - 0x54, - 0x52, - 0x4B, - 0x5F, - 0x43, - 0x4D, - 0x44, - 0x5F, - 0x52, - 0x65, - 0x61, - 0x64, - 0x4D, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x79, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2724, &lit_122); -#pragma pop - -/* 803A2748-803A276C 02EDA8 0022+02 0/1 0/0 0/0 .rodata @123 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_123[34 + 2 /* padding */] = { - 0x54, - 0x52, - 0x4B, - 0x5F, - 0x43, - 0x4D, - 0x44, - 0x5F, - 0x57, - 0x72, - 0x69, - 0x74, - 0x65, - 0x4D, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x79, - 0x20, - 0x20, - 0x20, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2748, &lit_123); -#pragma pop - -/* 803A276C-803A278C 02EDCC 0020+00 0/1 0/0 0/0 .rodata @124 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_124[32] = { - 0x54, 0x52, 0x4B, 0x5F, 0x43, 0x4D, 0x44, 0x5F, 0x43, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x20, - 0x09, 0x20, 0x20, 0x20, 0x20, 0x25, 0x6C, 0x64, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x0A, 0x00, -}; -COMPILER_STRIP_GATE(0x803A276C, &lit_124); -#pragma pop - -/* 803A278C-803A27AC 02EDEC 0020+00 0/1 0/0 0/0 .rodata @125 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_125[32] = { - 0x54, 0x52, 0x4B, 0x5F, 0x43, 0x4D, 0x44, 0x5F, 0x52, 0x65, 0x70, 0x6C, 0x79, 0x41, 0x63, 0x6B, - 0x09, 0x20, 0x20, 0x20, 0x20, 0x25, 0x6C, 0x64, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x0A, 0x00, -}; -COMPILER_STRIP_GATE(0x803A278C, &lit_125); -#pragma pop - -/* 803A27AC-803A27D0 02EE0C 0021+03 0/1 0/0 0/0 .rodata @126 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_126[33 + 3 /* padding */] = { - 0x54, - 0x52, - 0x4B, - 0x5F, - 0x43, - 0x4D, - 0x44, - 0x5F, - 0x52, - 0x65, - 0x61, - 0x64, - 0x52, - 0x65, - 0x67, - 0x69, - 0x73, - 0x74, - 0x65, - 0x72, - 0x73, - 0x09, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A27AC, &lit_126); -#pragma pop - -/* 8044F270-8044F288 07BF90 0014+04 3/3 0/0 0/0 .bss gTRKFramingState */ -static u8 gTRKFramingState[20 + 4 /* padding */]; - -/* 8036D860-8036D924 3681A0 00C4+00 0/0 1/1 0/0 .text TRKInitializeSerialHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKInitializeSerialHandler() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKInitializeSerialHandler.s" -} -#pragma pop - -/* 8036D924-8036D974 368264 0050+00 0/0 1/1 0/0 .text TRKProcessInput */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKProcessInput() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKProcessInput.s" -} -#pragma pop - -/* 8036D974-8036D9D4 3682B4 0060+00 0/0 1/1 0/0 .text TRKGetInput */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKGetInput() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKGetInput.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803A27D0-803A27F4 02EE30 0024+00 0/1 0/0 0/0 .rodata @146 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_146[36] = { - 0x54, 0x65, 0x73, 0x74, 0x46, 0x6F, 0x72, 0x50, 0x61, 0x63, 0x6B, 0x65, - 0x74, 0x20, 0x3A, 0x20, 0x46, 0x72, 0x65, 0x65, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x20, 0x25, 0x6C, 0x64, 0x0A, 0x00, -}; -COMPILER_STRIP_GATE(0x803A27D0, &lit_146); -#pragma pop - -/* 803A27F4-803A2810 02EE54 001B+01 0/1 0/0 0/0 .rodata @147 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_147[27 + 1 /* padding */] = { - 0x52, - 0x65, - 0x61, - 0x64, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x70, - 0x61, - 0x79, - 0x6C, - 0x6F, - 0x61, - 0x64, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x20, - 0x62, - 0x79, - 0x74, - 0x65, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -COMPILER_STRIP_GATE(0x803A27F4, &lit_147); -#pragma pop - -/* 803A2810-803A2844 02EE70 0031+03 0/1 0/0 0/0 .rodata @148 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_148[49 + 3 /* padding */] = { - 0x54, - 0x65, - 0x73, - 0x74, - 0x46, - 0x6F, - 0x72, - 0x50, - 0x61, - 0x63, - 0x6B, - 0x65, - 0x74, - 0x20, - 0x3A, - 0x20, - 0x49, - 0x6E, - 0x76, - 0x61, - 0x6C, - 0x69, - 0x64, - 0x20, - 0x73, - 0x69, - 0x7A, - 0x65, - 0x20, - 0x6F, - 0x66, - 0x20, - 0x70, - 0x61, - 0x63, - 0x6B, - 0x65, - 0x74, - 0x20, - 0x68, - 0x64, - 0x72, - 0x2E, - 0x73, - 0x69, - 0x7A, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A2810, &lit_148); -#pragma pop - -/* 803A2844-803A286C 02EEA4 0028+00 0/1 0/0 0/0 .rodata @149 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_149[40] = { - 0x54, 0x65, 0x73, 0x74, 0x46, 0x6F, 0x72, 0x50, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x20, - 0x3A, 0x20, 0x49, 0x6E, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, 0x73, 0x69, 0x7A, 0x65, - 0x20, 0x6F, 0x66, 0x20, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x0A, 0x00, -}; -COMPILER_STRIP_GATE(0x803A2844, &lit_149); -#pragma pop - -/* 803A286C-803A2890 02EECC 001D+07 0/1 0/0 0/0 .rodata @150 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_150[29 + 7 /* padding */] = { - 0x54, - 0x65, - 0x73, - 0x74, - 0x46, - 0x6F, - 0x72, - 0x50, - 0x61, - 0x63, - 0x6B, - 0x65, - 0x74, - 0x20, - 0x72, - 0x65, - 0x74, - 0x75, - 0x72, - 0x6E, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A286C, &lit_150); -#pragma pop - -/* 8036D9D4-8036DB10 368314 013C+00 1/1 1/1 0/0 .text TRKTestForPacket */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKTestForPacket() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll/TRKTestForPacket.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804519B8-804519C0 000EB8 0004+04 0/0 2/2 0/0 .sbss gTRKInputPendingPtr */ -extern u8 gTRKInputPendingPtr[4 + 4 /* padding */]; -u8 gTRKInputPendingPtr[4 + 4 /* padding */]; diff --git a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.cpp b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.c similarity index 52% rename from libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.cpp rename to libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.c index e4eb9f644b8..0b9efe10833 100644 --- a/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.c @@ -11,29 +11,29 @@ // Forward References: // -extern "C" void HandlePositionFileSupportRequest(); -extern "C" void HandleCloseFileSupportRequest(); -extern "C" void HandleOpenFileSupportRequest(); -extern "C" void TRKRequestSend(); -extern "C" void TRKSuppAccessFile(); +void HandlePositionFileSupportRequest(); +void HandleCloseFileSupportRequest(); +void HandleOpenFileSupportRequest(); +void TRKRequestSend(); +void TRKSuppAccessFile(); // // External References: // SECTION_INIT void memset(); -extern "C" void strlen(); -extern "C" void TRKMessageSend(); -extern "C" void TRKReadBuffer_ui8(); -extern "C" void TRKAppendBuffer_ui8(); -extern "C" void TRKSetBufferPosition(); -extern "C" void TRKReleaseBuffer(); -extern "C" void TRKGetBuffer(); -extern "C" void TRKGetFreeBuffer(); -extern "C" void TRKProcessInput(); -extern "C" void TRKTestForPacket(); -extern "C" void OutputData(); -extern "C" void MWTRACE(); +void strlen(); +void TRKMessageSend(); +void TRKReadBuffer_ui8(); +void TRKAppendBuffer_ui8(); +void TRKSetBufferPosition(); +void TRKReleaseBuffer(); +void TRKGetBuffer(); +void TRKGetFreeBuffer(); +void TRKProcessInput(); +void TRKTestForPacket(); +void OutputData(); +void MWTRACE(); // // Declarations: @@ -71,146 +71,27 @@ asm void HandleOpenFileSupportRequest() { /* ############################################################################################## */ /* 803A2AB8-803A2AD0 02F118 0015+03 1/1 0/0 0/0 .rodata @274 */ -SECTION_RODATA static u8 const lit_274[21 + 3 /* padding */] = { - 0x43, - 0x61, - 0x6C, - 0x6C, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x4D, - 0x65, - 0x73, - 0x73, - 0x61, - 0x67, - 0x65, - 0x53, - 0x65, - 0x6E, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_274[] = "Calling MessageSend\n"; COMPILER_STRIP_GATE(0x803A2AB8, &lit_274); /* 803A2AD0-803A2AF8 02F130 0028+00 0/1 0/0 0/0 .rodata @275 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_275[40] = { - 0x6D, 0x73, 0x67, 0x5F, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x3A, 0x20, - 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x20, 0x68, 0x64, 0x72, 0x2D, 0x3E, 0x63, 0x6D, - 0x64, 0x49, 0x44, 0x20, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_275[] = "msg_command : 0x%02x hdr->cmdID 0x%02x\n"; COMPILER_STRIP_GATE(0x803A2AD0, &lit_275); #pragma pop /* 803A2AF8-803A2B0C 02F158 0014+00 0/1 0/0 0/0 .rodata @276 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_276[20] = { - 0x6D, 0x73, 0x67, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, - 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_276[] = "msg_error : 0x%02x\n"; COMPILER_STRIP_GATE(0x803A2AF8, &lit_276); #pragma pop /* 803A2B0C-803A2B60 02F16C 0051+03 0/1 0/0 0/0 .rodata @277 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_277[81 + 3 /* padding */] = { - 0x52, - 0x65, - 0x71, - 0x75, - 0x65, - 0x73, - 0x74, - 0x53, - 0x65, - 0x6E, - 0x64, - 0x20, - 0x3A, - 0x20, - 0x42, - 0x61, - 0x64, - 0x20, - 0x61, - 0x63, - 0x6B, - 0x20, - 0x6F, - 0x72, - 0x20, - 0x6E, - 0x6F, - 0x6E, - 0x20, - 0x61, - 0x63, - 0x6B, - 0x20, - 0x72, - 0x65, - 0x63, - 0x65, - 0x69, - 0x76, - 0x65, - 0x64, - 0x20, - 0x6D, - 0x73, - 0x67, - 0x5F, - 0x63, - 0x6F, - 0x6D, - 0x6D, - 0x61, - 0x6E, - 0x64, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x32, - 0x78, - 0x20, - 0x6D, - 0x73, - 0x67, - 0x5F, - 0x65, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x32, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_277[] = "RequestSend : Bad ack or non ack received msg_command : 0x%02x msg_error 0x%02x\n"; COMPILER_STRIP_GATE(0x803A2B0C, &lit_277); #pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.cpp b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.c similarity index 54% rename from libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.cpp rename to libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.c index c5d5da84b1c..fe8aa33c747 100644 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.c @@ -1,75 +1,51 @@ -// -// Generated By: dol2asm -// Translation Unit: Os/dolphin/UDP_Stubs -// +/** + * UDP_Stubs.c + * Description: + */ #include "TRK_MINNOW_DOLPHIN/Os/dolphin/UDP_Stubs.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" s32 udp_cc_post_stop(); -extern "C" s32 udp_cc_pre_continue(); -extern "C" bool udp_cc_peek(); -extern "C" bool udp_cc_write(); -extern "C" bool udp_cc_read(); -extern "C" s32 udp_cc_close(); -extern "C" s32 udp_cc_open(); -extern "C" s32 udp_cc_shutdown(); -extern "C" s32 udp_cc_initialize(); - -// -// External References: -// - -// -// Declarations: -// /* 80372314-8037231C 36CC54 0008+00 0/0 1/1 0/0 .text udp_cc_post_stop */ -s32 udp_cc_post_stop() { +s32 udp_cc_post_stop(void) { return -1; } /* 8037231C-80372324 36CC5C 0008+00 0/0 1/1 0/0 .text udp_cc_pre_continue */ -s32 udp_cc_pre_continue() { +s32 udp_cc_pre_continue(void) { return -1; } /* 80372324-8037232C 36CC64 0008+00 0/0 1/1 0/0 .text udp_cc_peek */ -bool udp_cc_peek() { - return false; +u8 udp_cc_peek(void) { + return 0; } /* 8037232C-80372334 36CC6C 0008+00 0/0 1/1 0/0 .text udp_cc_write */ -bool udp_cc_write() { - return false; +u8 udp_cc_write(void) { + return 0; } /* 80372334-8037233C 36CC74 0008+00 0/0 1/1 0/0 .text udp_cc_read */ -bool udp_cc_read() { - return false; +u8 udp_cc_read(void) { + return 0; } /* 8037233C-80372344 36CC7C 0008+00 0/0 1/1 0/0 .text udp_cc_close */ -s32 udp_cc_close() { +s32 udp_cc_close(void) { return -1; } /* 80372344-8037234C 36CC84 0008+00 0/0 1/1 0/0 .text udp_cc_open */ -s32 udp_cc_open() { +s32 udp_cc_open(void) { return -1; } /* 8037234C-80372354 36CC8C 0008+00 0/0 1/1 0/0 .text udp_cc_shutdown */ -s32 udp_cc_shutdown() { +s32 udp_cc_shutdown(void) { return -1; } /* 80372354-8037235C 36CC94 0008+00 0/0 1/1 0/0 .text udp_cc_initialize */ -s32 udp_cc_initialize() { +s32 udp_cc_initialize(void) { return -1; } diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.cpp b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c similarity index 80% rename from libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.cpp rename to libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c index 26e7041fcbc..c65da3b2b7a 100644 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c @@ -7,48 +7,38 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct dBgW {}; - -struct daBgObj_c { - /* 80459BB4 */ void regist(dBgW*); -}; - // // Forward References: // -extern "C" void InitMetroTRK(); -extern "C" void InitMetroTRK_BBA(); -extern "C" void TRK__write_aram(); -extern "C" void TRK__read_aram(); -extern "C" void TRKInitializeTarget(); -extern "C" void __TRK_copy_vectors(); -extern "C" void TRKTargetTranslate(); -extern "C" void EnableMetroTRKInterrupts(); +void InitMetroTRK(); +void InitMetroTRK_BBA(); +void TRK__write_aram(); +void TRK__read_aram(); +void TRKInitializeTarget(); +void __TRK_copy_vectors(); +void TRKTargetTranslate(); +void EnableMetroTRKInterrupts(); // // External References: // SECTION_INIT void TRK_memcpy(); -extern "C" extern u8 const __TRK_unknown_data[7988]; -extern "C" void ARGetDMAStatus(); -extern "C" void ARStartDMA(); -extern "C" void __ARClearInterrupt(); -extern "C" void __ARGetInterruptStatus(); -extern "C" void TRK_flush_cache(); -extern "C" void __TRK_get_MSR(); -extern "C" void TRKSaveExtended1Block(); -extern "C" void TRK_main(); -extern "C" void EnableEXI2Interrupts(); -extern "C" void InitMetroTRKCommTable(); -extern "C" extern u8 gTRKState[164]; -extern "C" extern u8 gTRKCPUState[1072]; -extern "C" void regist__9daBgObj_cFP4dBgW(); +extern u8 const __TRK_unknown_data[7988]; +void ARGetDMAStatus(); +void ARStartDMA(); +void __ARClearInterrupt(); +void __ARGetInterruptStatus(); +void TRK_flush_cache(); +void __TRK_get_MSR(); +void TRKSaveExtended1Block(); +void TRK_main(); +void EnableEXI2Interrupts(); +void InitMetroTRKCommTable(); +extern u8 gTRKState[164]; +extern u8 gTRKCPUState[1072]; +void regist__9daBgObj_cFP4dBgW(); // // Declarations: diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.cpp b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.c similarity index 58% rename from libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.cpp rename to libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.c index bcc7fb4ff66..9caf7bb7b35 100644 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.c @@ -11,19 +11,16 @@ // Forward References: // -extern "C" static void TRKLoadContext(); -extern "C" void TRKUARTInterruptHandler(); -extern "C" void InitializeProgramEndTrap(); -extern "C" void TRK_board_display(); -extern "C" void UnreserveEXI2Port(); -extern "C" void ReserveEXI2Port(); -extern "C" void TRKWriteUARTN(); -extern "C" void TRKReadUARTN(); -extern "C" void TRKPollUART(); -extern "C" void EnableEXI2Interrupts(); -extern "C" void TRKInitializeIntDrivenUART(); -extern "C" void InitMetroTRKCommTable(); -extern "C" static void TRKEXICallBack(); +static void TRKLoadContext(); +void TRKUARTInterruptHandler(); +void InitializeProgramEndTrap(); +void TRK_board_display(); +void TRKReadUARTN(); +void TRKPollUART(); +void EnableEXI2Interrupts(); +void TRKInitializeIntDrivenUART(); +void InitMetroTRKCommTable(); +static void TRKEXICallBack(); SECTION_BSS extern u8 data_8044F828[8]; // @@ -31,43 +28,43 @@ SECTION_BSS extern u8 data_8044F828[8]; // SECTION_INIT void TRK_memcpy(); -extern "C" void OSReport(); -extern "C" void PPCHalt(); -extern "C" void DCFlushRange(); -extern "C" void ICInvalidateRange(); -extern "C" void OSEnableScheduler(); -extern "C" void TRKInterruptHandler(); -extern "C" s32 udp_cc_post_stop(); -extern "C" s32 udp_cc_pre_continue(); -extern "C" bool udp_cc_peek(); -extern "C" bool udp_cc_write(); -extern "C" bool udp_cc_read(); -extern "C" s32 udp_cc_close(); -extern "C" s32 udp_cc_open(); -extern "C" s32 udp_cc_shutdown(); -extern "C" s32 udp_cc_initialize(); -extern "C" void ddh_cc_initinterrupts(); -extern "C" void ddh_cc_peek(); -extern "C" void ddh_cc_post_stop(); -extern "C" void ddh_cc_pre_continue(); -extern "C" void ddh_cc_write(); -extern "C" void ddh_cc_read(); -extern "C" bool ddh_cc_close(); -extern "C" void ddh_cc_open(); -extern "C" bool ddh_cc_shutdown(); -extern "C" void ddh_cc_initialize(); -extern "C" void gdev_cc_initinterrupts(); -extern "C" void gdev_cc_peek(); -extern "C" void gdev_cc_post_stop(); -extern "C" void gdev_cc_pre_continue(); -extern "C" void gdev_cc_write(); -extern "C" void gdev_cc_read(); -extern "C" bool gdev_cc_close(); -extern "C" void gdev_cc_open(); -extern "C" bool gdev_cc_shutdown(); -extern "C" void gdev_cc_initialize(); -extern "C" bool AMC_IsStub(); -extern "C" bool Hu_IsStub(); +void OSReport(); +void PPCHalt(); +void DCFlushRange(); +void ICInvalidateRange(); +void OSEnableScheduler(); +void TRKInterruptHandler(); +s32 udp_cc_post_stop(); +s32 udp_cc_pre_continue(); +u8 udp_cc_peek(); +u8 udp_cc_write(); +u8 udp_cc_read(); +s32 udp_cc_close(); +s32 udp_cc_open(); +s32 udp_cc_shutdown(); +s32 udp_cc_initialize(); +void ddh_cc_initinterrupts(); +void ddh_cc_peek(); +void ddh_cc_post_stop(); +void ddh_cc_pre_continue(); +void ddh_cc_write(); +void ddh_cc_read(); +u8 ddh_cc_close(); +void ddh_cc_open(); +u8 ddh_cc_shutdown(); +void ddh_cc_initialize(); +void gdev_cc_initinterrupts(); +void gdev_cc_peek(); +void gdev_cc_post_stop(); +void gdev_cc_pre_continue(); +void gdev_cc_write(); +void gdev_cc_read(); +u8 gdev_cc_close(); +void gdev_cc_open(); +u8 gdev_cc_shutdown(); +void gdev_cc_initialize(); +u8 AMC_IsStub(); +u8 Hu_IsStub(); // // Declarations: @@ -110,7 +107,7 @@ asm void InitializeProgramEndTrap() { /* ############################################################################################## */ /* 803A2C0C-803A2C10 02F26C 0004+00 1/1 0/0 0/0 .rodata @165 */ -SECTION_RODATA static u32 const lit_165 = 0x25730A00; +SECTION_RODATA static char const lit_165[] = "%s\n"; COMPILER_STRIP_GATE(0x803A2C0C, &lit_165); /* 80371CD8-80371D08 36C618 0030+00 0/0 1/1 0/0 .text TRK_board_display */ @@ -155,7 +152,7 @@ asm void ReserveEXI2Port() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKWriteUARTN() { +asm s32 TRKWriteUARTN(const void*, u32) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue/TRKWriteUARTN.s" } @@ -209,285 +206,49 @@ asm void TRKInitializeIntDrivenUART() { /* 803A2C10-803A2C28 02F270 0015+03 0/1 0/0 0/0 .rodata @215 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_215[21 + 3 /* padding */] = { - 0x44, - 0x65, - 0x76, - 0x6B, - 0x69, - 0x74, - 0x20, - 0x73, - 0x65, - 0x74, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x3A, - 0x20, - 0x25, - 0x6C, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_215[] = "Devkit set to : %ld\n"; COMPILER_STRIP_GATE(0x803A2C10, &lit_215); #pragma pop /* 803A2C28-803A2C40 02F288 0017+01 0/1 0/0 0/0 .rodata @216 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_216[23 + 1 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x3A, - 0x20, - 0x53, - 0x65, - 0x74, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x42, - 0x42, - 0x41, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_216[] = "MetroTRK : Set to BBA\n"; COMPILER_STRIP_GATE(0x803A2C28, &lit_216); #pragma pop /* 803A2C40-803A2C64 02F2A0 0021+03 0/1 0/0 0/0 .rodata @217 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_217[33 + 3 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x3A, - 0x20, - 0x53, - 0x65, - 0x74, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x47, - 0x44, - 0x45, - 0x56, - 0x20, - 0x68, - 0x61, - 0x72, - 0x64, - 0x77, - 0x61, - 0x72, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_217[] = "MetroTRK : Set to GDEV hardware\n"; COMPILER_STRIP_GATE(0x803A2C40, &lit_217); #pragma pop /* 803A2C64-803A2C88 02F2C4 0024+00 0/1 0/0 0/0 .rodata @218 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_218[36] = { - 0x4D, 0x65, 0x74, 0x72, 0x6F, 0x54, 0x52, 0x4B, 0x20, 0x3A, 0x20, 0x53, - 0x65, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x41, 0x4D, 0x43, 0x20, 0x44, 0x44, - 0x48, 0x20, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_218[] = "MetroTRK : Set to AMC DDH hardware\n"; COMPILER_STRIP_GATE(0x803A2C64, &lit_218); #pragma pop /* 803A2C88-803A2CB4 02F2E8 002B+01 0/1 0/0 0/0 .rodata @219 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_219[43 + 1 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x3A, - 0x20, - 0x53, - 0x65, - 0x74, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x55, - 0x4E, - 0x4B, - 0x4E, - 0x4F, - 0x57, - 0x4E, - 0x20, - 0x68, - 0x61, - 0x72, - 0x64, - 0x77, - 0x61, - 0x72, - 0x65, - 0x2E, - 0x20, - 0x28, - 0x25, - 0x6C, - 0x64, - 0x29, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_219[] = "MetroTRK : Set to UNKNOWN hardware. (%ld)\n"; COMPILER_STRIP_GATE(0x803A2C88, &lit_219); #pragma pop /* 803A2CB4-803A2CE4 02F314 002F+01 0/1 0/0 0/0 .rodata @220 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_220[47 + 1 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x3A, - 0x20, - 0x49, - 0x6E, - 0x76, - 0x61, - 0x6C, - 0x69, - 0x64, - 0x20, - 0x68, - 0x61, - 0x72, - 0x64, - 0x77, - 0x61, - 0x72, - 0x65, - 0x20, - 0x49, - 0x44, - 0x20, - 0x70, - 0x61, - 0x73, - 0x73, - 0x65, - 0x64, - 0x20, - 0x66, - 0x72, - 0x6F, - 0x6D, - 0x20, - 0x4F, - 0x53, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_RODATA static char const lit_220[] = "MetroTRK : Invalid hardware ID passed from OS\n"; COMPILER_STRIP_GATE(0x803A2CB4, &lit_220); #pragma pop /* 803A2CE4-803A2D10 02F344 0028+04 0/1 0/0 0/0 .rodata @221 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const lit_221[40 + 4 /* padding */] = { - 0x4D, - 0x65, - 0x74, - 0x72, - 0x6F, - 0x54, - 0x52, - 0x4B, - 0x20, - 0x3A, - 0x20, - 0x44, - 0x65, - 0x66, - 0x61, - 0x75, - 0x6C, - 0x74, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x47, - 0x44, - 0x45, - 0x56, - 0x20, - 0x48, - 0x61, - 0x72, - 0x64, - 0x77, - 0x61, - 0x72, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_RODATA static char const lit_221[] = "MetroTRK : Defaulting to GDEV Hardware\n"; COMPILER_STRIP_GATE(0x803A2CE4, &lit_221); #pragma pop @@ -512,12 +273,9 @@ static asm void TRKEXICallBack() { #pragma pop /* ############################################################################################## */ -/* 8044F824-8044F828 07C544 0004+00 0/0 0/0 0/0 .bss _MetroTRK_Has_Framing */ -#pragma push -#pragma force_active on -SECTION_BSS static u8 _MetroTRK_Has_Framing[4]; -#pragma pop - /* 8044F828-8044F830 07C548 0008+00 0/0 2/2 0/0 .bss None */ SECTION_BSS extern u8 data_8044F828[8]; SECTION_BSS u8 data_8044F828[8]; + +/* 8044F824-8044F828 07C544 0004+00 0/0 0/0 0/0 .bss _MetroTRK_Has_Framing */ +SECTION_BSS /* static */ u8 _MetroTRK_Has_Framing[4]; diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.c b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.c new file mode 100644 index 00000000000..6fc1c4dea60 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.c @@ -0,0 +1,17 @@ +/** + * targcont.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +/* 8037214C-80372180 36CA8C 0034+00 0/0 2/2 0/0 .text TRKTargetContinue */ +s32 TRKTargetContinue(void) { + TRKTargetSetStopped(0); + UnreserveEXI2Port(); + TRKSwapAndGo(); + ReserveEXI2Port(); + return 0; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.cpp b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.cpp deleted file mode 100644 index ae3c0c02a42..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: Os/dolphin/targcont -// - -#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRKTargetContinue(); - -// -// External References: -// - -extern "C" void TRKSwapAndGo(); -extern "C" void TRKTargetSetStopped(); -extern "C" void UnreserveEXI2Port(); -extern "C" void ReserveEXI2Port(); - -// -// Declarations: -// - -/* 8037214C-80372180 36CA8C 0034+00 0/0 2/2 0/0 .text TRKTargetContinue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRKTargetContinue() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont/TRKTargetContinue.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.c b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.c new file mode 100644 index 00000000000..94afce762f9 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.c @@ -0,0 +1,19 @@ +/** + * target_options.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.h" +#include "dol2asm.h" + +SECTION_BSS static u8 useSerialIO; + +/* 80372180-80372190 36CAC0 0010+00 0/0 2/2 0/0 .text GetUseSerialIO */ +u8 GetUseSerialIO(void) { + return useSerialIO; +} + +/* 80372190-8037219C 36CAD0 000C+00 0/0 1/1 0/0 .text SetUseSerialIO */ +void SetUseSerialIO(u8 serialIO) { + useSerialIO = serialIO; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.cpp b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.cpp deleted file mode 100644 index 09f2df228c1..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: Os/dolphin/target_options -// - -#include "TRK_MINNOW_DOLPHIN/Os/dolphin/target_options.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void GetUseSerialIO(); -extern "C" void SetUseSerialIO(); - -// -// External References: -// - -SECTION_BSS extern u8 data_8044F828[8]; - -// -// Declarations: -// - -/* 80372180-80372190 36CAC0 0010+00 0/0 2/2 0/0 .text GetUseSerialIO */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GetUseSerialIO() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/GetUseSerialIO.s" -} -#pragma pop - -/* 80372190-8037219C 36CAD0 000C+00 0/0 1/1 0/0 .text SetUseSerialIO */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void SetUseSerialIO() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/target_options/SetUseSerialIO.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.c b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.c new file mode 100644 index 00000000000..67c6a862d6c --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.c @@ -0,0 +1,45 @@ +/** + * usr_put.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +// #include "dolphin/os/OS.h" + +// +// External References: +// + +// void OSReport(char* fmt, ...) causes extra crclr instruction. +// look into issue later +void OSReport(char* fmt); + +// +// Declarations: +// + +/* 8036DB10-8036DB14 368450 0004+00 0/0 1/1 0/0 .text usr_put_initialize */ +void usr_put_initialize() {} + +/* 8036DB14-8036DB9C 368454 0088+00 0/0 2/2 0/0 .text usr_puts_serial */ +BOOL usr_puts_serial(const char* msg) { + BOOL connect_ = FALSE; + char c; + char buf[2]; + + while (!connect_ && (c = *msg++) != '\0') { + BOOL connect = GetTRKConnected(); + + buf[0] = c; + buf[1] = '\0'; + + SetTRKConnected(FALSE); + OSReport(buf); + + SetTRKConnected(connect); + connect_ = FALSE; + } + + return connect_; +} diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.cpp b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.cpp deleted file mode 100644 index cfaca6299aa..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: Os/dolphin/usr_put -// - -#include "TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void usr_put_initialize(); -extern "C" void usr_puts_serial(); - -// -// External References: -// - -extern "C" void OSReport(); -extern "C" void SetTRKConnected(); -extern "C" void GetTRKConnected(); - -// -// Declarations: -// - -/* 8036DB10-8036DB14 368450 0004+00 0/0 1/1 0/0 .text usr_put_initialize */ -void usr_put_initialize() { - /* empty function */ -} - -/* 8036DB14-8036DB9C 368454 0088+00 0/0 2/2 0/0 .text usr_puts_serial */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void usr_puts_serial() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put/usr_puts_serial.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.cpp b/libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.c similarity index 72% rename from libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.cpp rename to libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.c index 7d068f57ab4..fa77d20ce7c 100644 --- a/libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.c @@ -1,28 +1,9 @@ -// -// Generated By: dol2asm -// Translation Unit: ppc/Export/targsupp -// +/** + * targsupp.c + * Description: + */ #include "TRK_MINNOW_DOLPHIN/ppc/Export/targsupp.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRKAccessFile(); -extern "C" void TRKOpenFile(); -extern "C" void TRKCloseFile(); -extern "C" void TRKPositionFile(); - -// -// External References: -// - -// -// Declarations: -// /* 803711D0-803711D8 -00001 0008+00 0/0 0/0 0/0 .text TRKAccessFile */ #pragma push diff --git a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.c b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.c new file mode 100644 index 00000000000..15259380563 --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.c @@ -0,0 +1,31 @@ +/** + * flush_cache.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" + +/* 8036F548-8036F580 369E88 0038+00 0/0 5/5 0/0 .text TRK_flush_cache */ +asm void TRK_flush_cache(void) { + // clang-format off + nofralloc + + lis r5, 0xFFFF + ori r5, r5, 0xFFF1 + and r5, r5, r3 + subf r3, r5, r3 + add r4, r4, r3 + +loop: + dcbst 0, r5 + dcbf 0, r5 + sync + icbi 0, r5 + addic r5, r5, 8 + addic. r4, r4, -8 + bge loop + + isync + blr + // clang-format on +} diff --git a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.cpp b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.cpp deleted file mode 100644 index 4c9467347de..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: ppc/Generic/flush_cache -// - -#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void TRK_flush_cache(); - -// -// External References: -// - -// -// Declarations: -// - -/* 8036F548-8036F580 369E88 0038+00 0/0 5/5 0/0 .text TRK_flush_cache */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TRK_flush_cache() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache/TRK_flush_cache.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.cpp b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.c similarity index 82% rename from libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.cpp rename to libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.c index fc4d1158872..18bc4fe3372 100644 --- a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.c @@ -11,15 +11,15 @@ // Forward References: // -extern "C" void TRKSaveExtended1Block(); -extern "C" void TRKRestoreExtended1Block(); +void TRKSaveExtended1Block(); +void TRKRestoreExtended1Block(); // // External References: // -extern "C" extern u8 gTRKRestoreFlags[9 + 3 /* padding */]; -extern "C" extern u8 gTRKCPUState[1072]; +extern u8 gTRKRestoreFlags[9 + 3 /* padding */]; +extern u8 gTRKCPUState[1072]; // // Declarations: diff --git a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.cpp b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.c similarity index 84% rename from libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.cpp rename to libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.c index 4bce50be5b2..eb3b4b282b0 100644 --- a/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.c @@ -11,61 +11,59 @@ // Forward References: // -extern "C" void __TRK_get_MSR(); -extern "C" void __TRK_set_MSR(); -extern "C" static void TRK_ppc_memcpy(); -extern "C" void TRKInterruptHandler(); -extern "C" static void TRKExceptionHandler(); -extern "C" void TRKSwapAndGo(); -extern "C" static void TRKInterruptHandlerEnableInterrupts(); -extern "C" static void ReadFPSCR(); -extern "C" static void WriteFPSCR(); -extern "C" void TRKTargetAccessARAM(); -extern "C" void TRKTargetSetInputPendingPtr(); -extern "C" void TRKTargetStop(); -extern "C" void TRKTargetSetStopped(); -extern "C" void TRKTargetStopped(); -extern "C" void TRKTargetSupportRequest(); -extern "C" void TRKTargetGetPC(); -extern "C" void TRKTargetStepOutOfRange(); -extern "C" void TRKTargetSingleStep(); -extern "C" void TRKTargetAddExceptionInfo(); -extern "C" void TRKTargetAddStopInfo(); -extern "C" void TRKTargetInterrupt(); -extern "C" static void TRKPostInterruptEvent(); -extern "C" void TRKTargetAccessExtended2(); -extern "C" void TRKTargetAccessExtended1(); -extern "C" void TRKTargetAccessFP(); -extern "C" void TRKTargetAccessDefault(); -extern "C" static void TRKTargetReadInstruction(); -extern "C" void TRKTargetAccessMemory(); -extern "C" static void TRKValidMemory32(); +void __TRK_get_MSR(); +void __TRK_set_MSR(); +static void TRK_ppc_memcpy(); +void TRKInterruptHandler(); +static void TRKExceptionHandler(); +static void TRKInterruptHandlerEnableInterrupts(); +static void ReadFPSCR(); +static void WriteFPSCR(); +void TRKTargetAccessARAM(); +void TRKTargetSetInputPendingPtr(); +void TRKTargetStop(); +void TRKTargetStopped(); +void TRKTargetSupportRequest(); +void TRKTargetGetPC(); +void TRKTargetStepOutOfRange(); +void TRKTargetSingleStep(); +void TRKTargetAddExceptionInfo(); +void TRKTargetAddStopInfo(); +void TRKTargetInterrupt(); +static void TRKPostInterruptEvent(); +void TRKTargetAccessExtended2(); +void TRKTargetAccessExtended1(); +void TRKTargetAccessFP(); +void TRKTargetAccessDefault(); +static void TRKTargetReadInstruction(); +void TRKTargetAccessMemory(); +static void TRKValidMemory32(); // // External References: // SECTION_INIT void memset(); -extern "C" void TRKConstructEvent(); -extern "C" void TRKPostEvent(); -extern "C" void TRKReadBuffer_ui32(); -extern "C" void TRKReadBuffer1_ui64(); -extern "C" void TRKAppendBuffer_ui32(); -extern "C" void TRKAppendBuffer_ui8(); -extern "C" void TRKAppendBuffer1_ui64(); -extern "C" void HandlePositionFileSupportRequest(); -extern "C" void HandleCloseFileSupportRequest(); -extern "C" void HandleOpenFileSupportRequest(); -extern "C" void TRKSuppAccessFile(); -extern "C" void TRKDoNotifyStopped(); -extern "C" void TRK_flush_cache(); -extern "C" void TRKSaveExtended1Block(); -extern "C" void TRKRestoreExtended1Block(); -extern "C" void TRK__write_aram(); -extern "C" void TRK__read_aram(); -extern "C" void TRKTargetTranslate(); -extern "C" void TRKUARTInterruptHandler(); -extern "C" void MWTRACE(); +void TRKConstructEvent(); +void TRKPostEvent(); +void TRKReadBuffer_ui32(); +void TRKReadBuffer1_ui64(); +void TRKAppendBuffer_ui32(); +void TRKAppendBuffer_ui8(); +void TRKAppendBuffer1_ui64(); +void HandlePositionFileSupportRequest(); +void HandleCloseFileSupportRequest(); +void HandleOpenFileSupportRequest(); +void TRKSuppAccessFile(); +void TRKDoNotifyStopped(); +void TRK_flush_cache(); +void TRKSaveExtended1Block(); +void TRKRestoreExtended1Block(); +void TRK__write_aram(); +void TRK__read_aram(); +void TRKTargetTranslate(); +void TRKUARTInterruptHandler(); +void MWTRACE(); // // Declarations: @@ -123,7 +121,7 @@ SECTION_DATA static u8 gTRKExceptionStatus[16] = { }; /* 8044F290-8044F294 07BFB0 0002+02 1/1 0/0 0/0 .bss TRK_saved_exceptionID */ -SECTION_BSS static u8 TRK_saved_exceptionID[2 + 2 /* padding */]; +SECTION_BSS static s32 TRK_saved_exceptionID = 0; /* 8044F294-8044F338 07BFB4 00A4+00 11/11 1/1 0/0 .bss gTRKState */ extern u8 gTRKState[164]; @@ -231,7 +229,7 @@ asm void TRKTargetStop() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void TRKTargetSetStopped() { +asm void TRKTargetSetStopped(s32) { nofralloc #include "asm/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl/TRKTargetSetStopped.s" } @@ -299,9 +297,7 @@ SECTION_RODATA static u8 const lit_290[40] = { COMPILER_STRIP_GATE(0x803A2BC0, &lit_290); /* 803A2BE8-803A2BF8 02F248 0010+00 3/3 0/0 0/0 .rodata @422 */ -SECTION_RODATA static u8 const lit_422[16] = { - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x6F, 0x53, 0x74, 0x65, 0x70, 0x28, 0x29, 0x0A, 0x00, -}; +SECTION_RODATA static char const lit_422[] = "TargetDoStep()\n"; COMPILER_STRIP_GATE(0x803A2BE8, &lit_422); /* 803D3254-803D3268 030374 0014+00 3/3 0/0 0/0 .data gTRKStepStatus */ diff --git a/libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.cpp b/libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.c similarity index 83% rename from libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.cpp rename to libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.c index 5271a3cc3c7..593a6012473 100644 --- a/libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.cpp +++ b/libs/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.c @@ -11,19 +11,19 @@ // Forward References: // -extern "C" void CircleBufferReadBytes(); -extern "C" void CircleBufferWriteBytes(); -extern "C" void CircleBufferInitialize(); -extern "C" void CBGetBytesAvailableForRead(); +void CircleBufferReadBytes(); +void CircleBufferWriteBytes(); +void CircleBufferInitialize(); +void CBGetBytesAvailableForRead(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void MWExitCriticalSection(); -extern "C" void MWEnterCriticalSection(); -extern "C" void MWInitializeCriticalSection(); +void MWExitCriticalSection(); +void MWEnterCriticalSection(); +void MWInitializeCriticalSection(); // // Declarations: diff --git a/libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.c b/libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.c new file mode 100644 index 00000000000..ffdc366e2ec --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.c @@ -0,0 +1,9 @@ +/** + * MWTrace.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h" + +/* 80372C54-80372CA4 36D594 0050+00 0/0 22/22 0/0 .text MWTRACE */ +void MWTRACE(u8, char*, ...) {} diff --git a/libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.cpp b/libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.cpp deleted file mode 100644 index bfcf3739bfe..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/utils/common/MWTrace.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: utils/common/MWTrace -// - -#include "TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void MWTRACE(); - -// -// External References: -// - -// -// Declarations: -// - -/* 80372C54-80372CA4 36D594 0050+00 0/0 22/22 0/0 .text MWTRACE */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void MWTRACE() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/utils/common/MWTrace/MWTRACE.s" -} -#pragma pop diff --git a/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.c b/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.c new file mode 100644 index 00000000000..80fab2ebb7c --- /dev/null +++ b/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.c @@ -0,0 +1,31 @@ +/** + * MWCriticalSection_gc.c + * Description: + */ + +#include "TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.h" +#include "dolphin/os/OS.h" + +/* 80372CA4-80372CC8 36D5E4 0024+00 0/0 2/2 0/0 .text MWExitCriticalSection */ +void MWExitCriticalSection(u32* section) { + OSRestoreInterrupts(*section); +} + +/* 80372CC8-80372CF8 36D608 0030+00 0/0 2/2 0/0 .text MWEnterCriticalSection */ +#ifdef NONMATCHING +void MWEnterCriticalSection(u32* section) { + *section = OSDisableInterrupts(); +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void MWEnterCriticalSection(u32* section) { + nofralloc +#include "asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWEnterCriticalSection.s" +} +#pragma pop +#endif + +/* 80372CF8-80372CFC 36D638 0004+00 0/0 1/1 0/0 .text MWInitializeCriticalSection */ +void MWInitializeCriticalSection() {} diff --git a/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.cpp b/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.cpp deleted file mode 100644 index 4f97f19c056..00000000000 --- a/libs/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: utils/gc/MWCriticalSection_gc -// - -#include "TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void MWExitCriticalSection(); -extern "C" void MWEnterCriticalSection(); -extern "C" void MWInitializeCriticalSection(); - -// -// External References: -// - -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); - -// -// Declarations: -// - -/* 80372CA4-80372CC8 36D5E4 0024+00 0/0 2/2 0/0 .text MWExitCriticalSection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void MWExitCriticalSection() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWExitCriticalSection.s" -} -#pragma pop - -/* 80372CC8-80372CF8 36D608 0030+00 0/0 2/2 0/0 .text MWEnterCriticalSection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void MWEnterCriticalSection() { - nofralloc -#include "asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWEnterCriticalSection.s" -} -#pragma pop - -/* 80372CF8-80372CFC 36D638 0004+00 0/0 1/1 0/0 .text MWInitializeCriticalSection */ -void MWInitializeCriticalSection() { - /* empty function */ -} diff --git a/libs/amcstubs/AmcExi2Stubs.c b/libs/amcstubs/AmcExi2Stubs.c new file mode 100644 index 00000000000..41cfa15a4ad --- /dev/null +++ b/libs/amcstubs/AmcExi2Stubs.c @@ -0,0 +1,38 @@ +/** + * AmcExi2Stubs.c + * Description: + */ + +#include "amcstubs/AmcExi2Stubs.h" + +/* 80372CFC-80372D00 36D63C 0004+00 0/0 1/1 0/0 .text EXI2_Init */ +void EXI2_Init(void) {} + +/* 80372D00-80372D04 36D640 0004+00 0/0 1/1 0/0 .text EXI2_EnableInterrupts */ +void EXI2_EnableInterrupts(void) {} + +/* 80372D04-80372D0C 36D644 0008+00 0/0 2/2 0/0 .text EXI2_Poll */ +u8 EXI2_Poll(void) { + return 0; +} + +/* 80372D0C-80372D14 36D64C 0008+00 0/0 2/2 0/0 .text EXI2_ReadN */ +u8 EXI2_ReadN(void*, u32) { + return 0; +} + +/* 80372D14-80372D1C 36D654 0008+00 0/0 1/1 0/0 .text EXI2_WriteN */ +u8 EXI2_WriteN(void*, u32) { + return 0; +} + +/* 80372D1C-80372D20 36D65C 0004+00 0/0 1/1 0/0 .text EXI2_Reserve */ +void EXI2_Reserve(void) {} + +/* 80372D20-80372D24 36D660 0004+00 0/0 1/1 0/0 .text EXI2_Unreserve */ +void EXI2_Unreserve(void) {} + +/* 80372D24-80372D2C 36D664 0008+00 0/0 1/1 0/0 .text AMC_IsStub */ +u8 AMC_IsStub(void) { + return 1; +} diff --git a/libs/amcstubs/AmcExi2Stubs.cpp b/libs/amcstubs/AmcExi2Stubs.cpp deleted file mode 100644 index 8f01cddfaab..00000000000 --- a/libs/amcstubs/AmcExi2Stubs.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: AmcExi2Stubs -// - -#include "amcstubs/AmcExi2Stubs.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void EXI2_Init(); -extern "C" void EXI2_EnableInterrupts(); -extern "C" bool EXI2_Poll(); -extern "C" bool EXI2_ReadN(); -extern "C" bool EXI2_WriteN(); -extern "C" void EXI2_Reserve(); -extern "C" void EXI2_Unreserve(); -extern "C" bool AMC_IsStub(); - -// -// External References: -// - -// -// Declarations: -// - -/* 80372CFC-80372D00 36D63C 0004+00 0/0 1/1 0/0 .text EXI2_Init */ -void EXI2_Init() { - /* empty function */ -} - -/* 80372D00-80372D04 36D640 0004+00 0/0 1/1 0/0 .text EXI2_EnableInterrupts */ -void EXI2_EnableInterrupts() { - /* empty function */ -} - -/* 80372D04-80372D0C 36D644 0008+00 0/0 2/2 0/0 .text EXI2_Poll */ -bool EXI2_Poll() { - return false; -} - -/* 80372D0C-80372D14 36D64C 0008+00 0/0 2/2 0/0 .text EXI2_ReadN */ -bool EXI2_ReadN() { - return false; -} - -/* 80372D14-80372D1C 36D654 0008+00 0/0 1/1 0/0 .text EXI2_WriteN */ -bool EXI2_WriteN() { - return false; -} - -/* 80372D1C-80372D20 36D65C 0004+00 0/0 1/1 0/0 .text EXI2_Reserve */ -void EXI2_Reserve() { - /* empty function */ -} - -/* 80372D20-80372D24 36D660 0004+00 0/0 1/1 0/0 .text EXI2_Unreserve */ -void EXI2_Unreserve() { - /* empty function */ -} - -/* 80372D24-80372D2C 36D664 0008+00 0/0 1/1 0/0 .text AMC_IsStub */ -bool AMC_IsStub() { - return true; -} diff --git a/libs/amcstubs/Makefile b/libs/amcstubs/Makefile index 30b800e5349..ec8f5ba003f 100644 --- a/libs/amcstubs/Makefile +++ b/libs/amcstubs/Makefile @@ -3,12 +3,14 @@ # LIBAMCSTUBS_A_CPP_FILES := \ - libs/amcstubs/AmcExi2Stubs.cpp \ + libs/amcstubs/AmcExi2Stubs.c \ LIBAMCSTUBS_A_O_FILES := \ $(BUILD_DIR)/libs/amcstubs/AmcExi2Stubs.o \ LIBAMCSTUBS_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBAMCSTUBS_A_LDFLAGS := \ -nodefaults \ @@ -21,9 +23,9 @@ $(BUILD_DIR)/libamcstubs.a: $(LIBAMCSTUBS_A_O_FILES) @echo $(LIBAMCSTUBS_A_O_FILES) > build/LIBAMCSTUBS_A_ofiles @$(LD) -xm l $(LIBAMCSTUBS_A_LDFLAGS) -o $(BUILD_DIR)/libamcstubs.a @build/LIBAMCSTUBS_A_ofiles -$(BUILD_DIR)/libs/amcstubs/%.o: libs/amcstubs/%.cpp +$(BUILD_DIR)/libs/amcstubs/%.o: libs/amcstubs/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBAMCSTUBS_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(CC) $(CFLAGS) $(LIBAMCSTUBS_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/ai/Makefile b/libs/dolphin/ai/Makefile index ac04dae90d7..4e1b30c82ba 100644 --- a/libs/dolphin/ai/Makefile +++ b/libs/dolphin/ai/Makefile @@ -3,12 +3,14 @@ # LIBAI_A_CPP_FILES := \ - libs/dolphin/ai/ai.cpp \ + libs/dolphin/ai/ai.c \ LIBAI_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/ai/ai.o \ LIBAI_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBAI_A_LDFLAGS := \ -nodefaults \ @@ -21,9 +23,8 @@ $(BUILD_DIR)/libai.a: $(LIBAI_A_O_FILES) @echo $(LIBAI_A_O_FILES) > build/LIBAI_A_ofiles @$(LD) -xm l $(LIBAI_A_LDFLAGS) -o $(BUILD_DIR)/libai.a @build/LIBAI_A_ofiles -$(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.cpp +$(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBAI_A_CFLAGS) -c -o $@ $(basename $@).cpp - + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBAI_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/ai/ai.cpp b/libs/dolphin/ai/ai.c similarity index 80% rename from libs/dolphin/ai/ai.cpp rename to libs/dolphin/ai/ai.c index 48cf43246f6..091025ddb63 100644 --- a/libs/dolphin/ai/ai.cpp +++ b/libs/dolphin/ai/ai.c @@ -11,38 +11,38 @@ // Forward References: // -extern "C" void AIRegisterDMACallback(); -extern "C" void AIInitDMA(); -extern "C" void AIStartDMA(); -extern "C" void AIStopDMA(); -extern "C" void AISetStreamPlayState(); -extern "C" static void AIGetStreamPlayState(); -extern "C" void AISetDSPSampleRate(); -extern "C" void AIGetDSPSampleRate(); -extern "C" void __AI_set_stream_sample_rate(); -extern "C" static void AIGetStreamSampleRate(); -extern "C" void AISetStreamVolLeft(); -extern "C" static void AIGetStreamVolLeft(); -extern "C" void AISetStreamVolRight(); -extern "C" static void AIGetStreamVolRight(); -extern "C" void AIInit(); -extern "C" void __AISHandler(); -extern "C" void __AIDHandler(); -extern "C" void __AICallbackStackSwitch(); -extern "C" void __AI_SRC_INIT(); +void AIRegisterDMACallback(); +void AIInitDMA(); +void AIStartDMA(); +void AIStopDMA(); +void AISetStreamPlayState(); +static void AIGetStreamPlayState(); +void AISetDSPSampleRate(); +void AIGetDSPSampleRate(); +void __AI_set_stream_sample_rate(); +static void AIGetStreamSampleRate(); +void AISetStreamVolLeft(); +static void AIGetStreamVolLeft(); +void AISetStreamVolRight(); +static void AIGetStreamVolRight(); +void AIInit(); +void __AISHandler(); +void __AIDHandler(); +void __AICallbackStackSwitch(); +void __AI_SRC_INIT(); // // External References: // -extern "C" void OSRegisterVersion(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void OSGetTime(); +void OSRegisterVersion(); +void OSSetCurrentContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSUnmaskInterrupts(); +void OSGetTime(); // // Declarations: @@ -197,81 +197,7 @@ static asm void AIGetStreamVolRight() { /* ############################################################################################## */ /* 803D1BA0-803D1BE8 02ECC0 0044+04 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[68 + 4 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x41, - 0x49, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x35, - 0x3A, - 0x30, - 0x32, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - AI\trelease build: Apr 5 2004 04:15:02 (0x2301) >>"; /* 80450A40-80450A48 -00001 0004+04 1/1 0/0 0/0 .sdata __AIVersion */ SECTION_SDATA static void* __AIVersion[1 + 1 /* padding */] = { diff --git a/libs/dolphin/ar/Makefile b/libs/dolphin/ar/Makefile index 032caaf45ed..26a079b70e5 100644 --- a/libs/dolphin/ar/Makefile +++ b/libs/dolphin/ar/Makefile @@ -3,14 +3,16 @@ # LIBAR_A_CPP_FILES := \ - libs/dolphin/ar/ar.cpp \ - libs/dolphin/ar/arq.cpp \ + libs/dolphin/ar/ar.c \ + libs/dolphin/ar/arq.c \ LIBAR_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/ar/ar.o \ $(BUILD_DIR)/libs/dolphin/ar/arq.o \ LIBAR_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBAR_A_LDFLAGS := \ -nodefaults \ @@ -23,9 +25,9 @@ $(BUILD_DIR)/libar.a: $(LIBAR_A_O_FILES) @echo $(LIBAR_A_O_FILES) > build/LIBAR_A_ofiles @$(LD) -xm l $(LIBAR_A_LDFLAGS) -o $(BUILD_DIR)/libar.a @build/LIBAR_A_ofiles -$(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.cpp +$(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBAR_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBAR_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/ar/ar.cpp b/libs/dolphin/ar/ar.c similarity index 74% rename from libs/dolphin/ar/ar.cpp rename to libs/dolphin/ar/ar.c index 68c93cc2226..58eae0f455a 100644 --- a/libs/dolphin/ar/ar.cpp +++ b/libs/dolphin/ar/ar.c @@ -11,29 +11,29 @@ // Forward References: // -extern "C" void ARRegisterDMACallback(); -extern "C" void ARGetDMAStatus(); -extern "C" void ARStartDMA(); -extern "C" void __ARHandler(); -extern "C" void __ARClearInterrupt(); -extern "C" void __ARGetInterruptStatus(); -extern "C" void __ARChecksize(); +void ARRegisterDMACallback(); +void ARGetDMAStatus(); +void ARStartDMA(); +void __ARHandler(); +void __ARClearInterrupt(); +void __ARGetInterruptStatus(); +void __ARChecksize(); // // External References: // SECTION_INIT void memset(); -extern "C" void PPCSync(); -extern "C" void OSRegisterVersion(); -extern "C" void DCInvalidateRange(); -extern "C" void DCFlushRange(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); +void PPCSync(); +void OSRegisterVersion(); +void DCInvalidateRange(); +void DCFlushRange(); +void OSSetCurrentContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSUnmaskInterrupts(); // // Declarations: @@ -104,81 +104,7 @@ asm u32 ARAlloc(u32) { /* ############################################################################################## */ /* 803D1BE8-803D1C30 02ED08 0044+04 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[68 + 4 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x41, - 0x52, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x35, - 0x3A, - 0x30, - 0x33, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - AR\trelease build: Apr 5 2004 04:15:03 (0x2301) >>"; /* 80450A48-80450A50 -00001 0004+04 1/1 0/0 0/0 .sdata __ARVersion */ SECTION_SDATA static void* __ARVersion[1 + 1 /* padding */] = { diff --git a/libs/dolphin/ar/arq.cpp b/libs/dolphin/ar/arq.c similarity index 74% rename from libs/dolphin/ar/arq.cpp rename to libs/dolphin/ar/arq.c index 2c268c9efb8..e068cea863e 100644 --- a/libs/dolphin/ar/arq.cpp +++ b/libs/dolphin/ar/arq.c @@ -11,20 +11,20 @@ // Forward References: // -extern "C" void __ARQServiceQueueLo(); -extern "C" void __ARQCallbackHack(); -extern "C" void __ARQInterruptServiceRoutine(); -extern "C" void ARQInit(); +void __ARQServiceQueueLo(); +void __ARQCallbackHack(); +void __ARQInterruptServiceRoutine(); +void ARQInit(); // // External References: // -extern "C" void OSRegisterVersion(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void ARRegisterDMACallback(); -extern "C" void ARStartDMA(); +void OSRegisterVersion(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void ARRegisterDMACallback(); +void ARStartDMA(); // // Declarations: @@ -85,81 +85,7 @@ asm void __ARQInterruptServiceRoutine() { /* ############################################################################################## */ /* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[69 + 3 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x41, - 0x52, - 0x51, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x35, - 0x3A, - 0x30, - 0x34, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>"; /* 80450A50-80450A58 -00001 0004+04 1/1 0/0 0/0 .sdata __ARQVersion */ SECTION_SDATA static void* __ARQVersion[1 + 1 /* padding */] = { diff --git a/libs/dolphin/card/CARDBios.cpp b/libs/dolphin/card/CARDBios.c similarity index 76% rename from libs/dolphin/card/CARDBios.cpp rename to libs/dolphin/card/CARDBios.c index 374d2be96bb..c4c2bcada93 100644 --- a/libs/dolphin/card/CARDBios.cpp +++ b/libs/dolphin/card/CARDBios.c @@ -11,63 +11,63 @@ // Forward References: // -extern "C" void __CARDDefaultApiCallback(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDExtHandler(); -extern "C" void __CARDExiHandler(); -extern "C" void __CARDTxHandler(); -extern "C" void __CARDUnlockedHandler(); -extern "C" void __CARDEnableInterrupt(); -extern "C" void __CARDReadStatus(); -extern "C" void __CARDReadVendorID(); -extern "C" void __CARDClearStatus(); -extern "C" static void TimeoutHandler(); -extern "C" static void Retry(); -extern "C" static void UnlockedCallback(); -extern "C" void __CARDStart(); -extern "C" void __CARDReadSegment(); -extern "C" void __CARDWritePage(); -extern "C" void __CARDEraseSector(); -extern "C" void CARDInit(); -extern "C" void __CARDGetFontEncode(); -extern "C" void __CARDSetDiskID(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void CARDFreeBlocks(); -extern "C" void __CARDSync(); -extern "C" static void OnReset(); -extern "C" void CARDGetFastMode(); +void __CARDDefaultApiCallback(); +void __CARDSyncCallback(); +void __CARDExtHandler(); +void __CARDExiHandler(); +void __CARDTxHandler(); +void __CARDUnlockedHandler(); +void __CARDEnableInterrupt(); +void __CARDReadStatus(); +void __CARDReadVendorID(); +void __CARDClearStatus(); +static void TimeoutHandler(); +static void Retry(); +static void UnlockedCallback(); +void __CARDStart(); +void __CARDReadSegment(); +void __CARDWritePage(); +void __CARDEraseSector(); +void CARDInit(); +void __CARDGetFontEncode(); +void __CARDSetDiskID(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void CARDFreeBlocks(); +void __CARDSync(); +static void OnReset(); +void CARDGetFastMode(); // // External References: // -extern "C" void OSRegisterVersion(); -extern "C" void OSInitAlarm(); -extern "C" void OSCreateAlarm(); -extern "C" void OSSetAlarm(); -extern "C" void OSCancelAlarm(); -extern "C" void OSGetFontEncode(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSRegisterResetFunction(); -extern "C" void OSInitThreadQueue(); -extern "C" void OSSleepThread(); -extern "C" void OSWakeupThread(); -extern "C" void EXIImm(); -extern "C" void EXIImmEx(); -extern "C" void EXIDma(); -extern "C" void EXISync(); -extern "C" void EXISetExiCallback(); -extern "C" void EXIProbe(); -extern "C" void EXISelect(); -extern "C" void EXIDeselect(); -extern "C" void EXILock(); -extern "C" void EXIUnlock(); -extern "C" void DSPInit(); -extern "C" void __CARDGetFatBlock(); -extern "C" void __CARDGetDirBlock(); -extern "C" void CARDUnmount(); +void OSRegisterVersion(); +void OSInitAlarm(); +void OSCreateAlarm(); +void OSSetAlarm(); +void OSCancelAlarm(); +void OSGetFontEncode(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void OSRegisterResetFunction(); +void OSInitThreadQueue(); +void OSSleepThread(); +void OSWakeupThread(); +void EXIImm(); +void EXIImmEx(); +void EXIDma(); +void EXISync(); +void EXISetExiCallback(); +void EXIProbe(); +void EXISelect(); +void EXIDeselect(); +void EXILock(); +void EXIUnlock(); +void DSPInit(); +void __CARDGetFatBlock(); +void __CARDGetDirBlock(); +void CARDUnmount(); // // Declarations: @@ -78,6 +78,11 @@ void __CARDDefaultApiCallback() { /* empty function */ } +/* ############################################################################################## */ +/* 8044CDE0-8044CE00 079B00 0020+00 0/1 3/3 0/0 .bss __CARDDiskNone */ +extern u8 __CARDDiskNone[32]; +u8 __CARDDiskNone[32]; + /* ############################################################################################## */ /* 8044CBC0-8044CDE0 0798E0 0220+00 16/16 27/27 0/0 .bss __CARDBlock */ extern u8 __CARDBlock[544]; @@ -245,81 +250,7 @@ asm void __CARDEraseSector() { /* ############################################################################################## */ /* 803D1E38-803D1E80 02EF58 0046+02 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[70 + 2 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x43, - 0x41, - 0x52, - 0x44, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x35, - 0x3A, - 0x33, - 0x35, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - CARD\trelease build: Apr 5 2004 04:15:35 (0x2301) >>"; /* 803D1E80-803D1EA0 -00001 0010+10 1/1 0/0 0/0 .data ResetFunctionInfo */ SECTION_DATA static void* ResetFunctionInfo[4 + 4 /* padding */] = { @@ -366,11 +297,6 @@ asm void __CARDGetFontEncode() { } #pragma pop -/* ############################################################################################## */ -/* 8044CDE0-8044CE00 079B00 0020+00 0/1 3/3 0/0 .bss __CARDDiskNone */ -extern u8 __CARDDiskNone[32]; -u8 __CARDDiskNone[32]; - /* 80353B7C-80353BB4 34E4BC 0038+00 1/1 0/0 0/0 .text __CARDSetDiskID */ #pragma push #pragma optimization_level 0 diff --git a/libs/dolphin/card/CARDBlock.cpp b/libs/dolphin/card/CARDBlock.c similarity index 80% rename from libs/dolphin/card/CARDBlock.cpp rename to libs/dolphin/card/CARDBlock.c index f1fd0be4869..9fd492ece3f 100644 --- a/libs/dolphin/card/CARDBlock.cpp +++ b/libs/dolphin/card/CARDBlock.c @@ -11,23 +11,23 @@ // Forward References: // -extern "C" void __CARDGetFatBlock(); -extern "C" static void WriteCallback(); -extern "C" static void EraseCallback(); -extern "C" void __CARDAllocBlock(); -extern "C" void __CARDUpdateFatBlock(); +void __CARDGetFatBlock(); +static void WriteCallback(); +static void EraseCallback(); +void __CARDAllocBlock(); +void __CARDUpdateFatBlock(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void DCStoreRange(); -extern "C" void __CARDEraseSector(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDWrite(); -extern "C" void __CARDCheckSum(); -extern "C" extern u8 __CARDBlock[544]; +void DCStoreRange(); +void __CARDEraseSector(); +void __CARDPutControlBlock(); +void __CARDWrite(); +void __CARDCheckSum(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDCheck.cpp b/libs/dolphin/card/CARDCheck.c similarity index 74% rename from libs/dolphin/card/CARDCheck.cpp rename to libs/dolphin/card/CARDCheck.c index 86c6a0e81dc..12531f4116e 100644 --- a/libs/dolphin/card/CARDCheck.cpp +++ b/libs/dolphin/card/CARDCheck.c @@ -11,13 +11,13 @@ // Forward References: // -extern "C" void __CARDCheckSum(); -extern "C" static void VerifyID(); -extern "C" static void VerifyDir(); -extern "C" static void VerifyFAT(); -extern "C" void __CARDVerify(); -extern "C" static void CARDCheckExAsync(); -extern "C" void CARDCheck(); +void __CARDCheckSum(); +static void VerifyID(); +static void VerifyDir(); +static void VerifyFAT(); +void __CARDVerify(); +static void CARDCheckExAsync(); +void CARDCheck(); // // External References: @@ -25,19 +25,19 @@ extern "C" void CARDCheck(); SECTION_INIT void memset(); SECTION_INIT void memcpy(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSLockSramEx(); -extern "C" void __OSUnlockSramEx(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDGetFontEncode(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void __CARDUpdateFatBlock(); -extern "C" void __CARDUpdateDir(); -extern "C" void __shr2i(); -extern "C" extern u8 __CARDBlock[544]; +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSLockSramEx(); +void __OSUnlockSramEx(); +void __CARDSyncCallback(); +void __CARDGetFontEncode(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDSync(); +void __CARDUpdateFatBlock(); +void __CARDUpdateDir(); +void __shr2i(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDCreate.cpp b/libs/dolphin/card/CARDCreate.c similarity index 61% rename from libs/dolphin/card/CARDCreate.cpp rename to libs/dolphin/card/CARDCreate.c index 436a23d22f2..4b96229d487 100644 --- a/libs/dolphin/card/CARDCreate.cpp +++ b/libs/dolphin/card/CARDCreate.c @@ -11,31 +11,31 @@ // Forward References: // -extern "C" static void CreateCallbackFat(); -extern "C" static void CARDCreateAsync(); -extern "C" void CARDCreate(); +static void CreateCallbackFat(); +static void CARDCreateAsync(); +void CARDCreate(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void OSGetTime(); -extern "C" void __CARDDefaultApiCallback(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void __CARDGetFatBlock(); -extern "C" void __CARDAllocBlock(); -extern "C" void __CARDGetDirBlock(); -extern "C" void __CARDUpdateDir(); -extern "C" void __CARDCompareFileName(); -extern "C" void __div2i(); -extern "C" void memcmp(); -extern "C" void strncpy(); -extern "C" void strlen(); -extern "C" extern u8 __CARDBlock[544]; +void OSGetTime(); +void __CARDDefaultApiCallback(); +void __CARDSyncCallback(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDSync(); +void __CARDGetFatBlock(); +void __CARDAllocBlock(); +void __CARDGetDirBlock(); +void __CARDUpdateDir(); +void __CARDCompareFileName(); +void __div2i(); +void memcmp(); +void strncpy(); +void strlen(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDDir.cpp b/libs/dolphin/card/CARDDir.c similarity index 78% rename from libs/dolphin/card/CARDDir.cpp rename to libs/dolphin/card/CARDDir.c index b21bc8dd005..0bd2900be99 100644 --- a/libs/dolphin/card/CARDDir.cpp +++ b/libs/dolphin/card/CARDDir.c @@ -11,22 +11,22 @@ // Forward References: // -extern "C" void __CARDGetDirBlock(); -extern "C" static void WriteCallback(); -extern "C" static void EraseCallback(); -extern "C" void __CARDUpdateDir(); +void __CARDGetDirBlock(); +static void WriteCallback(); +static void EraseCallback(); +void __CARDUpdateDir(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void DCStoreRange(); -extern "C" void __CARDEraseSector(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDWrite(); -extern "C" void __CARDCheckSum(); -extern "C" extern u8 __CARDBlock[544]; +void DCStoreRange(); +void __CARDEraseSector(); +void __CARDPutControlBlock(); +void __CARDWrite(); +void __CARDCheckSum(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDFormat.cpp b/libs/dolphin/card/CARDFormat.c similarity index 60% rename from libs/dolphin/card/CARDFormat.cpp rename to libs/dolphin/card/CARDFormat.c index cc6137bc353..b5c87f0dcb2 100644 --- a/libs/dolphin/card/CARDFormat.cpp +++ b/libs/dolphin/card/CARDFormat.c @@ -11,9 +11,9 @@ // Forward References: // -extern "C" static void FormatCallback(); -extern "C" void __CARDFormatRegionAsync(); -extern "C" void CARDFormat(); +static void FormatCallback(); +void __CARDFormatRegionAsync(); +void CARDFormat(); // // External References: @@ -21,23 +21,23 @@ extern "C" void CARDFormat(); SECTION_INIT void memset(); SECTION_INIT void memcpy(); -extern "C" void DCStoreRange(); -extern "C" void __OSLockSram(); -extern "C" void __OSLockSramEx(); -extern "C" void __OSUnlockSram(); -extern "C" void __OSUnlockSramEx(); -extern "C" void OSGetTime(); -extern "C" void __CARDDefaultApiCallback(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDEraseSector(); -extern "C" void __CARDGetFontEncode(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void __CARDWrite(); -extern "C" void __CARDCheckSum(); -extern "C" void __shr2i(); -extern "C" extern u8 __CARDBlock[544]; +void DCStoreRange(); +void __OSLockSram(); +void __OSLockSramEx(); +void __OSUnlockSram(); +void __OSUnlockSramEx(); +void OSGetTime(); +void __CARDDefaultApiCallback(); +void __CARDSyncCallback(); +void __CARDEraseSector(); +void __CARDGetFontEncode(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDSync(); +void __CARDWrite(); +void __CARDCheckSum(); +void __shr2i(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDMount.cpp b/libs/dolphin/card/CARDMount.c similarity index 70% rename from libs/dolphin/card/CARDMount.cpp rename to libs/dolphin/card/CARDMount.c index b46f8a4eaaa..88cc8d41633 100644 --- a/libs/dolphin/card/CARDMount.cpp +++ b/libs/dolphin/card/CARDMount.c @@ -11,53 +11,53 @@ // Forward References: // -extern "C" static void IsCard(); -extern "C" void CARDProbe(); -extern "C" void CARDProbeEx(); -extern "C" static void DoMount(); -extern "C" void __CARDMountCallback(); -extern "C" static void CARDMountAsync(); -extern "C" void CARDMount(); -extern "C" static void DoUnmount(); -extern "C" void CARDUnmount(); +static void IsCard(); +void CARDProbe(); +void CARDProbeEx(); +static void DoMount(); +void __CARDMountCallback(); +static void CARDMountAsync(); +void CARDMount(); +static void DoUnmount(); +void CARDUnmount(); // // External References: // -extern "C" void OSCancelAlarm(); -extern "C" void DCInvalidateRange(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSLockSramEx(); -extern "C" void __OSUnlockSramEx(); -extern "C" void EXISetExiCallback(); -extern "C" void EXIProbe(); -extern "C" void EXIProbeEx(); -extern "C" void EXIAttach(); -extern "C" void EXIDetach(); -extern "C" void EXILock(); -extern "C" void EXIUnlock(); -extern "C" void EXIGetState(); -extern "C" void EXIGetID(); -extern "C" void __CARDDefaultApiCallback(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDExtHandler(); -extern "C" void __CARDExiHandler(); -extern "C" void __CARDUnlockedHandler(); -extern "C" void __CARDEnableInterrupt(); -extern "C" void __CARDReadStatus(); -extern "C" void __CARDReadVendorID(); -extern "C" void __CARDClearStatus(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void CARDGetFastMode(); -extern "C" void __CARDUnlock(); -extern "C" void __CARDRead(); -extern "C" void __CARDVerify(); -extern "C" extern u8 __CARDBlock[544]; -extern "C" extern u8 struct_80450A70[8]; +void OSCancelAlarm(); +void DCInvalidateRange(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSLockSramEx(); +void __OSUnlockSramEx(); +void EXISetExiCallback(); +void EXIProbe(); +void EXIProbeEx(); +void EXIAttach(); +void EXIDetach(); +void EXILock(); +void EXIUnlock(); +void EXIGetState(); +void EXIGetID(); +void __CARDDefaultApiCallback(); +void __CARDSyncCallback(); +void __CARDExtHandler(); +void __CARDExiHandler(); +void __CARDUnlockedHandler(); +void __CARDEnableInterrupt(); +void __CARDReadStatus(); +void __CARDReadVendorID(); +void __CARDClearStatus(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDSync(); +void CARDGetFastMode(); +void __CARDUnlock(); +void __CARDRead(); +void __CARDVerify(); +extern u8 __CARDBlock[544]; +extern u8 struct_80450A70[8]; // // Declarations: diff --git a/libs/dolphin/card/CARDNet.cpp b/libs/dolphin/card/CARDNet.c similarity index 85% rename from libs/dolphin/card/CARDNet.cpp rename to libs/dolphin/card/CARDNet.c index 92ac40b8ef8..8c87a4acc41 100644 --- a/libs/dolphin/card/CARDNet.cpp +++ b/libs/dolphin/card/CARDNet.c @@ -11,15 +11,15 @@ // Forward References: // -extern "C" void CARDGetSerialNo(); -extern "C" extern u8 struct_80450A70[8]; +void CARDGetSerialNo(); +extern u8 struct_80450A70[8]; // // External References: // -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); // // Declarations: diff --git a/libs/dolphin/card/CARDOpen.cpp b/libs/dolphin/card/CARDOpen.c similarity index 80% rename from libs/dolphin/card/CARDOpen.cpp rename to libs/dolphin/card/CARDOpen.c index 986e1fda02d..78b2264e9c8 100644 --- a/libs/dolphin/card/CARDOpen.cpp +++ b/libs/dolphin/card/CARDOpen.c @@ -11,23 +11,23 @@ // Forward References: // -extern "C" void __CARDCompareFileName(); -extern "C" void __CARDAccess(); -extern "C" void __CARDIsWritable(); -extern "C" void __CARDIsReadable(); -extern "C" void CARDOpen(); -extern "C" void CARDClose(); +void __CARDCompareFileName(); +void __CARDAccess(); +void __CARDIsWritable(); +void __CARDIsReadable(); +void CARDOpen(); +void CARDClose(); // // External References: // -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDGetDirBlock(); -extern "C" void memcmp(); -extern "C" extern u8 __CARDDiskNone[32]; -extern "C" extern u8 struct_80450A70[8]; +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDGetDirBlock(); +void memcmp(); +extern u8 __CARDDiskNone[32]; +extern u8 struct_80450A70[8]; // // Declarations: diff --git a/libs/dolphin/card/CARDRdwr.cpp b/libs/dolphin/card/CARDRdwr.c similarity index 81% rename from libs/dolphin/card/CARDRdwr.cpp rename to libs/dolphin/card/CARDRdwr.c index 6fce3a0c3ca..5e2565a3844 100644 --- a/libs/dolphin/card/CARDRdwr.cpp +++ b/libs/dolphin/card/CARDRdwr.c @@ -11,19 +11,19 @@ // Forward References: // -extern "C" static void BlockReadCallback(); -extern "C" void __CARDRead(); -extern "C" static void BlockWriteCallback(); -extern "C" void __CARDWrite(); +static void BlockReadCallback(); +void __CARDRead(); +static void BlockWriteCallback(); +void __CARDWrite(); // // External References: // -extern "C" void __CARDReadSegment(); -extern "C" void __CARDWritePage(); -extern "C" void __CARDPutControlBlock(); -extern "C" extern u8 __CARDBlock[544]; +void __CARDReadSegment(); +void __CARDWritePage(); +void __CARDPutControlBlock(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDRead.cpp b/libs/dolphin/card/CARDRead.c similarity index 69% rename from libs/dolphin/card/CARDRead.cpp rename to libs/dolphin/card/CARDRead.c index 610badce895..3f6ae72bb95 100644 --- a/libs/dolphin/card/CARDRead.cpp +++ b/libs/dolphin/card/CARDRead.c @@ -11,26 +11,26 @@ // Forward References: // -extern "C" void __CARDSeek(); -extern "C" static void ReadCallback(); -extern "C" static void CARDReadAsync(); -extern "C" void CARDRead(); +void __CARDSeek(); +static void ReadCallback(); +static void CARDReadAsync(); +void CARDRead(); // // External References: // -extern "C" void DCInvalidateRange(); -extern "C" void __CARDDefaultApiCallback(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void __CARDRead(); -extern "C" void __CARDGetFatBlock(); -extern "C" void __CARDGetDirBlock(); -extern "C" void __CARDIsReadable(); -extern "C" extern u8 __CARDBlock[544]; +void DCInvalidateRange(); +void __CARDDefaultApiCallback(); +void __CARDSyncCallback(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDSync(); +void __CARDRead(); +void __CARDGetFatBlock(); +void __CARDGetDirBlock(); +void __CARDIsReadable(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDStat.cpp b/libs/dolphin/card/CARDStat.c similarity index 72% rename from libs/dolphin/card/CARDStat.cpp rename to libs/dolphin/card/CARDStat.c index cf84177e072..340690a561b 100644 --- a/libs/dolphin/card/CARDStat.cpp +++ b/libs/dolphin/card/CARDStat.c @@ -11,26 +11,26 @@ // Forward References: // -extern "C" static void UpdateIconOffsets(); -extern "C" void CARDGetStatus(); -extern "C" static void CARDSetStatusAsync(); -extern "C" void CARDSetStatus(); +static void UpdateIconOffsets(); +void CARDGetStatus(); +static void CARDSetStatusAsync(); +void CARDSetStatus(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void OSGetTime(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDGetControlBlock(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void __CARDGetDirBlock(); -extern "C" void __CARDUpdateDir(); -extern "C" void __CARDIsWritable(); -extern "C" void __CARDIsReadable(); -extern "C" void __div2i(); +void OSGetTime(); +void __CARDSyncCallback(); +void __CARDGetControlBlock(); +void __CARDPutControlBlock(); +void __CARDSync(); +void __CARDGetDirBlock(); +void __CARDUpdateDir(); +void __CARDIsWritable(); +void __CARDIsReadable(); +void __div2i(); // // Declarations: diff --git a/libs/dolphin/card/CARDUnlock.cpp b/libs/dolphin/card/CARDUnlock.c similarity index 86% rename from libs/dolphin/card/CARDUnlock.cpp rename to libs/dolphin/card/CARDUnlock.c index 0ece7c87a19..9a039ba1917 100644 --- a/libs/dolphin/card/CARDUnlock.cpp +++ b/libs/dolphin/card/CARDUnlock.c @@ -11,32 +11,32 @@ // Forward References: // -extern "C" static void bitrev(); -extern "C" static void ReadArrayUnlock(); -extern "C" static void DummyLen(); -extern "C" void __CARDUnlock(); -extern "C" static void InitCallback(); -extern "C" static void DoneCallback(); +static void bitrev(); +static void ReadArrayUnlock(); +static void DummyLen(); +void __CARDUnlock(); +static void InitCallback(); +static void DoneCallback(); // // External References: // SECTION_INIT void memset(); -extern "C" void DSPAddTask(); -extern "C" void DCInvalidateRange(); -extern "C" void DCFlushRange(); -extern "C" void OSGetTick(); -extern "C" void EXIImmEx(); -extern "C" void EXIProbe(); -extern "C" void EXISelect(); -extern "C" void EXIDeselect(); -extern "C" void EXIUnlock(); -extern "C" void DSPCheckMailToDSP(); -extern "C" void DSPSendMailToDSP(); -extern "C" void __CARDReadStatus(); -extern "C" void __CARDMountCallback(); -extern "C" extern u8 __CARDBlock[544]; +void DSPAddTask(); +void DCInvalidateRange(); +void DCFlushRange(); +void OSGetTick(); +void EXIImmEx(); +void EXIProbe(); +void EXISelect(); +void EXIDeselect(); +void EXIUnlock(); +void DSPCheckMailToDSP(); +void DSPSendMailToDSP(); +void __CARDReadStatus(); +void __CARDMountCallback(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/CARDWrite.cpp b/libs/dolphin/card/CARDWrite.c similarity index 65% rename from libs/dolphin/card/CARDWrite.cpp rename to libs/dolphin/card/CARDWrite.c index 18c8bd5b98c..144e7d30805 100644 --- a/libs/dolphin/card/CARDWrite.cpp +++ b/libs/dolphin/card/CARDWrite.c @@ -11,30 +11,30 @@ // Forward References: // -extern "C" static void WriteCallback(); -extern "C" static void EraseCallback(); -extern "C" static void CARDWriteAsync(); -extern "C" void CARDWrite(); +static void WriteCallback(); +static void EraseCallback(); +static void CARDWriteAsync(); +void CARDWrite(); // // External References: // -extern "C" void DCStoreRange(); -extern "C" void OSGetTime(); -extern "C" void __CARDDefaultApiCallback(); -extern "C" void __CARDSyncCallback(); -extern "C" void __CARDEraseSector(); -extern "C" void __CARDPutControlBlock(); -extern "C" void __CARDSync(); -extern "C" void __CARDWrite(); -extern "C" void __CARDGetFatBlock(); -extern "C" void __CARDGetDirBlock(); -extern "C" void __CARDUpdateDir(); -extern "C" void __CARDIsWritable(); -extern "C" void __CARDSeek(); -extern "C" void __div2i(); -extern "C" extern u8 __CARDBlock[544]; +void DCStoreRange(); +void OSGetTime(); +void __CARDDefaultApiCallback(); +void __CARDSyncCallback(); +void __CARDEraseSector(); +void __CARDPutControlBlock(); +void __CARDSync(); +void __CARDWrite(); +void __CARDGetFatBlock(); +void __CARDGetDirBlock(); +void __CARDUpdateDir(); +void __CARDIsWritable(); +void __CARDSeek(); +void __div2i(); +extern u8 __CARDBlock[544]; // // Declarations: diff --git a/libs/dolphin/card/Makefile b/libs/dolphin/card/Makefile index e6e68d4938f..962ff914422 100644 --- a/libs/dolphin/card/Makefile +++ b/libs/dolphin/card/Makefile @@ -3,20 +3,20 @@ # LIBCARD_A_CPP_FILES := \ - libs/dolphin/card/CARDBios.cpp \ - libs/dolphin/card/CARDUnlock.cpp \ - libs/dolphin/card/CARDRdwr.cpp \ - libs/dolphin/card/CARDBlock.cpp \ - libs/dolphin/card/CARDDir.cpp \ - libs/dolphin/card/CARDCheck.cpp \ - libs/dolphin/card/CARDMount.cpp \ - libs/dolphin/card/CARDFormat.cpp \ - libs/dolphin/card/CARDOpen.cpp \ - libs/dolphin/card/CARDCreate.cpp \ - libs/dolphin/card/CARDRead.cpp \ - libs/dolphin/card/CARDWrite.cpp \ - libs/dolphin/card/CARDStat.cpp \ - libs/dolphin/card/CARDNet.cpp \ + libs/dolphin/card/CARDBios.c \ + libs/dolphin/card/CARDUnlock.c \ + libs/dolphin/card/CARDRdwr.c \ + libs/dolphin/card/CARDBlock.c \ + libs/dolphin/card/CARDDir.c \ + libs/dolphin/card/CARDCheck.c \ + libs/dolphin/card/CARDMount.c \ + libs/dolphin/card/CARDFormat.c \ + libs/dolphin/card/CARDOpen.c \ + libs/dolphin/card/CARDCreate.c \ + libs/dolphin/card/CARDRead.c \ + libs/dolphin/card/CARDWrite.c \ + libs/dolphin/card/CARDStat.c \ + libs/dolphin/card/CARDNet.c \ LIBCARD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/card/CARDBios.o \ @@ -35,6 +35,8 @@ LIBCARD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/card/CARDNet.o \ LIBCARD_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBCARD_A_LDFLAGS := \ -nodefaults \ @@ -47,9 +49,9 @@ $(BUILD_DIR)/libcard.a: $(LIBCARD_A_O_FILES) @echo $(LIBCARD_A_O_FILES) > build/LIBCARD_A_ofiles @$(LD) -xm l $(LIBCARD_A_LDFLAGS) -o $(BUILD_DIR)/libcard.a @build/LIBCARD_A_ofiles -$(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.cpp +$(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBCARD_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBCARD_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/db/Makefile b/libs/dolphin/db/Makefile index aaf31529b8e..4bcef9c0fb5 100644 --- a/libs/dolphin/db/Makefile +++ b/libs/dolphin/db/Makefile @@ -3,12 +3,14 @@ # LIBDB_A_CPP_FILES := \ - libs/dolphin/db/db.cpp \ + libs/dolphin/db/db.c \ LIBDB_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/db/db.o \ LIBDB_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBDB_A_LDFLAGS := \ -nodefaults \ @@ -21,9 +23,9 @@ $(BUILD_DIR)/libdb.a: $(LIBDB_A_O_FILES) @echo $(LIBDB_A_O_FILES) > build/LIBDB_A_ofiles @$(LD) -xm l $(LIBDB_A_LDFLAGS) -o $(BUILD_DIR)/libdb.a @build/LIBDB_A_ofiles -$(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.cpp +$(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBDB_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBDB_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/db/db.cpp b/libs/dolphin/db/db.c similarity index 81% rename from libs/dolphin/db/db.cpp rename to libs/dolphin/db/db.c index cb0db52bccb..66f131c1d1d 100644 --- a/libs/dolphin/db/db.cpp +++ b/libs/dolphin/db/db.c @@ -11,19 +11,19 @@ // Forward References: // -extern "C" void DBInit(); -extern "C" void __DBExceptionDestinationAux(); -extern "C" void __DBExceptionDestination(); -extern "C" void __DBIsExceptionMarked(); -extern "C" void DBPrintf(); +void DBInit(); +void __DBExceptionDestinationAux(); +void __DBExceptionDestination(); +void __DBIsExceptionMarked(); +void DBPrintf(); // // External References: // -extern "C" void OSReport(); -extern "C" void PPCHalt(); -extern "C" void OSDumpContext(); +void OSReport(); +void PPCHalt(); +void OSDumpContext(); // // Declarations: @@ -48,10 +48,7 @@ asm void DBInit() { /* ############################################################################################## */ /* 803D1368-803D1380 02E488 0018+00 1/1 0/0 0/0 .data @9 */ -SECTION_DATA static u8 lit_9[24] = { - 0x44, 0x42, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6E, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x0A, 0x00, -}; +SECTION_DATA static char lit_9[] = "DBExceptionDestination\n";; /* 803463C0-80346408 340D00 0048+00 1/1 0/0 0/0 .text __DBExceptionDestinationAux */ #pragma push diff --git a/libs/dolphin/dsp/Makefile b/libs/dolphin/dsp/Makefile index 9b85f6c13b1..e4040f765b8 100644 --- a/libs/dolphin/dsp/Makefile +++ b/libs/dolphin/dsp/Makefile @@ -3,9 +3,9 @@ # LIBDSP_A_CPP_FILES := \ - libs/dolphin/dsp/dsp.cpp \ - libs/dolphin/dsp/dsp_debug.cpp \ - libs/dolphin/dsp/dsp_task.cpp \ + libs/dolphin/dsp/dsp.c \ + libs/dolphin/dsp/dsp_debug.c \ + libs/dolphin/dsp/dsp_task.c \ LIBDSP_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/dsp/dsp.o \ @@ -13,6 +13,8 @@ LIBDSP_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/dsp/dsp_task.o \ LIBDSP_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBDSP_A_LDFLAGS := \ -nodefaults \ @@ -25,9 +27,9 @@ $(BUILD_DIR)/libdsp.a: $(LIBDSP_A_O_FILES) @echo $(LIBDSP_A_O_FILES) > build/LIBDSP_A_ofiles @$(LD) -xm l $(LIBDSP_A_LDFLAGS) -o $(BUILD_DIR)/libdsp.a @build/LIBDSP_A_ofiles -$(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.cpp +$(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBDSP_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBDSP_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/dsp/dsp.cpp b/libs/dolphin/dsp/dsp.c similarity index 55% rename from libs/dolphin/dsp/dsp.cpp rename to libs/dolphin/dsp/dsp.c index e47ddbbfd26..4e1118a6fee 100644 --- a/libs/dolphin/dsp/dsp.cpp +++ b/libs/dolphin/dsp/dsp.c @@ -11,28 +11,28 @@ // Forward References: // -extern "C" void DSPCheckMailToDSP(); -extern "C" void DSPCheckMailFromDSP(); -extern "C" void DSPReadMailFromDSP(); -extern "C" void DSPSendMailToDSP(); -extern "C" void DSPAssertInt(); -extern "C" void DSPInit(); +void DSPCheckMailToDSP(); +void DSPCheckMailFromDSP(); +void DSPReadMailFromDSP(); +void DSPSendMailToDSP(); +void DSPAssertInt(); +void DSPInit(); // // External References: // -extern "C" void __DSPHandler(); -extern "C" void OSRegisterVersion(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void __DSP_debug_printf(); -extern "C" extern u8 __DSP_tmp_task[4]; -extern "C" extern u8 __DSP_last_task[4]; -extern "C" extern u8 __DSP_first_task[4]; -extern "C" extern u8 __DSP_curr_task[4]; +void __DSPHandler(); +void OSRegisterVersion(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSUnmaskInterrupts(); +void __DSP_debug_printf(); +extern u8 __DSP_tmp_task[4]; +extern u8 __DSP_last_task[4]; +extern u8 __DSP_first_task[4]; +extern u8 __DSP_curr_task[4]; // // Declarations: @@ -90,148 +90,24 @@ asm void DSPAssertInt() { /* ############################################################################################## */ /* 803D1C78-803D1CC0 02ED98 0045+03 2/1 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[69 + 3 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x44, - 0x53, - 0x50, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x35, - 0x3A, - 0x33, - 0x32, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - DSP\trelease build: Apr 5 2004 04:15:32 (0x2301) >>"; /* 803D1CC0-803D1CE0 02EDE0 001E+02 0/1 0/0 0/0 .data @19 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_19[30 + 2 /* padding */] = { - 0x44, - 0x53, - 0x50, - 0x49, - 0x6E, - 0x69, - 0x74, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x42, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x20, - 0x44, - 0x61, - 0x74, - 0x65, - 0x3A, - 0x20, - 0x25, - 0x73, - 0x20, - 0x25, - 0x73, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_19[] = "DSPInit(): Build Date: %s %s\n"; #pragma pop /* 803D1CE0-803D1CEC 02EE00 000C+00 0/1 0/0 0/0 .data @20 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_20[12] = { - 0x41, 0x70, 0x72, 0x20, 0x20, 0x35, 0x20, 0x32, 0x30, 0x30, 0x34, 0x00, -}; +SECTION_DATA static char lit_20[] = "Apr 5 2004"; #pragma pop /* 803D1CEC-803D1CF8 02EE0C 0009+03 0/1 0/0 0/0 .data @21 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_21[9 + 3 /* padding */] = { - 0x30, - 0x34, - 0x3A, - 0x31, - 0x35, - 0x3A, - 0x33, - 0x32, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_21[] = "04:15:32"; #pragma pop /* 80450A58-80450A60 -00001 0004+04 1/1 0/0 0/0 .sdata __DSPVersion */ diff --git a/libs/dolphin/dsp/dsp_debug.cpp b/libs/dolphin/dsp/dsp_debug.c similarity index 93% rename from libs/dolphin/dsp/dsp_debug.cpp rename to libs/dolphin/dsp/dsp_debug.c index 179cd6d28b9..8255a1a364c 100644 --- a/libs/dolphin/dsp/dsp_debug.cpp +++ b/libs/dolphin/dsp/dsp_debug.c @@ -11,7 +11,7 @@ // Forward References: // -extern "C" void __DSP_debug_printf(); +void __DSP_debug_printf(); // // External References: diff --git a/libs/dolphin/dsp/dsp_task.c b/libs/dolphin/dsp/dsp_task.c new file mode 100644 index 00000000000..032a0357b42 --- /dev/null +++ b/libs/dolphin/dsp/dsp_task.c @@ -0,0 +1,129 @@ +// +// Generated By: dol2asm +// Translation Unit: dsp_task +// + +#include "dolphin/dsp/dsp_task.h" +#include "dol2asm.h" +#include "dolphin/types.h" + +// +// Forward References: +// + +void __DSP_exec_task(); +void __DSP_boot_task(); +void __DSP_insert_task(); +void __DSP_remove_task(); + +// +// External References: +// + +void DSPCheckMailToDSP(); +void DSPCheckMailFromDSP(); +void DSPReadMailFromDSP(); +void DSPSendMailToDSP(); +void __DSP_debug_printf(); + +// +// Declarations: +// + +/* 803525D0-80352770 34CF10 01A0+00 0/0 1/1 0/0 .text __DSP_exec_task */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __DSP_exec_task() { + nofralloc +#include "asm/dolphin/dsp/dsp_task/__DSP_exec_task.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803D1CF8-803D1D18 02EE18 001D+03 1/1 0/0 0/0 .data @266 */ +SECTION_DATA static char lit_266[] = "DSP is booting task: 0x%08X\n"; + +/* 803D1D18-803D1D48 02EE38 002D+03 0/1 0/0 0/0 .data @267 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_267[] = "__DSP_boot_task() : IRAM MMEM ADDR: 0x%08X\n"; +#pragma pop + +/* 803D1D48-803D1D78 02EE68 002D+03 0/1 0/0 0/0 .data @268 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_268[] = "__DSP_boot_task() : IRAM DSP ADDR : 0x%08X\n"; +#pragma pop + +/* 803D1D78-803D1DA8 02EE98 002D+03 0/1 0/0 0/0 .data @269 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_269[] = "__DSP_boot_task() : IRAM LENGTH : 0x%08X\n"; +#pragma pop + +/* 803D1DA8-803D1DD8 02EEC8 002D+03 0/1 0/0 0/0 .data @270 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_270[] = "__DSP_boot_task() : DRAM MMEM ADDR: 0x%08X\n"; +#pragma pop + +/* 803D1DD8-803D1E08 02EEF8 002D+03 0/1 0/0 0/0 .data @271 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_271[] = "__DSP_boot_task() : Start Vector : 0x%08X\n"; +#pragma pop + +/* 80352770-803528FC 34D0B0 018C+00 0/0 1/1 0/0 .text __DSP_boot_task */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __DSP_boot_task() { + nofralloc +#include "asm/dolphin/dsp/dsp_task/__DSP_boot_task.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 80451914-80451918 000E14 0004+00 2/2 2/2 0/0 .sbss __DSP_curr_task */ +extern u8 __DSP_curr_task[4]; +u8 __DSP_curr_task[4]; + +/* 80451910-80451914 000E10 0004+00 2/2 2/2 0/0 .sbss __DSP_first_task */ +extern u8 __DSP_first_task[4]; +u8 __DSP_first_task[4]; + +/* 8045190C-80451910 000E0C 0004+00 2/2 1/1 0/0 .sbss __DSP_last_task */ +extern u8 __DSP_last_task[4]; +u8 __DSP_last_task[4]; + +/* 80451908-8045190C 000E08 0004+00 0/0 1/1 0/0 .sbss __DSP_tmp_task */ +extern u8 __DSP_tmp_task[4]; +u8 __DSP_tmp_task[4]; + +/* 803528FC-8035299C 34D23C 00A0+00 0/0 1/1 0/0 .text __DSP_insert_task */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __DSP_insert_task() { + nofralloc +#include "asm/dolphin/dsp/dsp_task/__DSP_insert_task.s" +} +#pragma pop + +/* 8035299C-80352A30 34D2DC 0094+00 0/0 1/1 0/0 .text __DSP_remove_task */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __DSP_remove_task() { + nofralloc +#include "asm/dolphin/dsp/dsp_task/__DSP_remove_task.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803D1E08-803D1E38 02EF28 002B+05 0/0 0/0 0/0 .data @294 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_294[] = "__DSP_add_task() : Added task : 0x%08X\n"; +#pragma pop diff --git a/libs/dolphin/dsp/dsp_task.cpp b/libs/dolphin/dsp/dsp_task.cpp deleted file mode 100644 index 97929137248..00000000000 --- a/libs/dolphin/dsp/dsp_task.cpp +++ /dev/null @@ -1,463 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: dsp_task -// - -#include "dolphin/dsp/dsp_task.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void __DSP_exec_task(); -extern "C" void __DSP_boot_task(); -extern "C" void __DSP_insert_task(); -extern "C" void __DSP_remove_task(); - -// -// External References: -// - -extern "C" void DSPCheckMailToDSP(); -extern "C" void DSPCheckMailFromDSP(); -extern "C" void DSPReadMailFromDSP(); -extern "C" void DSPSendMailToDSP(); -extern "C" void __DSP_debug_printf(); - -// -// Declarations: -// - -/* 803525D0-80352770 34CF10 01A0+00 0/0 1/1 0/0 .text __DSP_exec_task */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DSP_exec_task() { - nofralloc -#include "asm/dolphin/dsp/dsp_task/__DSP_exec_task.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803D1CF8-803D1D18 02EE18 001D+03 1/1 0/0 0/0 .data @266 */ -SECTION_DATA static u8 lit_266[29 + 3 /* padding */] = { - 0x44, - 0x53, - 0x50, - 0x20, - 0x69, - 0x73, - 0x20, - 0x62, - 0x6F, - 0x6F, - 0x74, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; - -/* 803D1D18-803D1D48 02EE38 002D+03 0/1 0/0 0/0 .data @267 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_267[45 + 3 /* padding */] = { - 0x5F, - 0x5F, - 0x44, - 0x53, - 0x50, - 0x5F, - 0x62, - 0x6F, - 0x6F, - 0x74, - 0x5F, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x28, - 0x29, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x49, - 0x52, - 0x41, - 0x4D, - 0x20, - 0x4D, - 0x4D, - 0x45, - 0x4D, - 0x20, - 0x41, - 0x44, - 0x44, - 0x52, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D1D48-803D1D78 02EE68 002D+03 0/1 0/0 0/0 .data @268 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_268[45 + 3 /* padding */] = { - 0x5F, - 0x5F, - 0x44, - 0x53, - 0x50, - 0x5F, - 0x62, - 0x6F, - 0x6F, - 0x74, - 0x5F, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x28, - 0x29, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x49, - 0x52, - 0x41, - 0x4D, - 0x20, - 0x44, - 0x53, - 0x50, - 0x20, - 0x41, - 0x44, - 0x44, - 0x52, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D1D78-803D1DA8 02EE98 002D+03 0/1 0/0 0/0 .data @269 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_269[45 + 3 /* padding */] = { - 0x5F, - 0x5F, - 0x44, - 0x53, - 0x50, - 0x5F, - 0x62, - 0x6F, - 0x6F, - 0x74, - 0x5F, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x28, - 0x29, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x49, - 0x52, - 0x41, - 0x4D, - 0x20, - 0x4C, - 0x45, - 0x4E, - 0x47, - 0x54, - 0x48, - 0x20, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D1DA8-803D1DD8 02EEC8 002D+03 0/1 0/0 0/0 .data @270 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_270[45 + 3 /* padding */] = { - 0x5F, - 0x5F, - 0x44, - 0x53, - 0x50, - 0x5F, - 0x62, - 0x6F, - 0x6F, - 0x74, - 0x5F, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x28, - 0x29, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x44, - 0x52, - 0x41, - 0x4D, - 0x20, - 0x4D, - 0x4D, - 0x45, - 0x4D, - 0x20, - 0x41, - 0x44, - 0x44, - 0x52, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D1DD8-803D1E08 02EEF8 002D+03 0/1 0/0 0/0 .data @271 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_271[45 + 3 /* padding */] = { - 0x5F, - 0x5F, - 0x44, - 0x53, - 0x50, - 0x5F, - 0x62, - 0x6F, - 0x6F, - 0x74, - 0x5F, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x28, - 0x29, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x53, - 0x74, - 0x61, - 0x72, - 0x74, - 0x20, - 0x56, - 0x65, - 0x63, - 0x74, - 0x6F, - 0x72, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 80352770-803528FC 34D0B0 018C+00 0/0 1/1 0/0 .text __DSP_boot_task */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DSP_boot_task() { - nofralloc -#include "asm/dolphin/dsp/dsp_task/__DSP_boot_task.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80451908-8045190C 000E08 0004+00 0/0 1/1 0/0 .sbss __DSP_tmp_task */ -extern u8 __DSP_tmp_task[4]; -u8 __DSP_tmp_task[4]; - -/* 8045190C-80451910 000E0C 0004+00 2/2 1/1 0/0 .sbss __DSP_last_task */ -extern u8 __DSP_last_task[4]; -u8 __DSP_last_task[4]; - -/* 80451910-80451914 000E10 0004+00 2/2 2/2 0/0 .sbss __DSP_first_task */ -extern u8 __DSP_first_task[4]; -u8 __DSP_first_task[4]; - -/* 80451914-80451918 000E14 0004+00 2/2 2/2 0/0 .sbss __DSP_curr_task */ -extern u8 __DSP_curr_task[4]; -u8 __DSP_curr_task[4]; - -/* 803528FC-8035299C 34D23C 00A0+00 0/0 1/1 0/0 .text __DSP_insert_task */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DSP_insert_task() { - nofralloc -#include "asm/dolphin/dsp/dsp_task/__DSP_insert_task.s" -} -#pragma pop - -/* 8035299C-80352A30 34D2DC 0094+00 0/0 1/1 0/0 .text __DSP_remove_task */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DSP_remove_task() { - nofralloc -#include "asm/dolphin/dsp/dsp_task/__DSP_remove_task.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803D1E08-803D1E38 02EF28 002B+05 0/0 0/0 0/0 .data @294 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_294[43 + 5 /* padding */] = { - 0x5F, - 0x5F, - 0x44, - 0x53, - 0x50, - 0x5F, - 0x61, - 0x64, - 0x64, - 0x5F, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x28, - 0x29, - 0x20, - 0x3A, - 0x20, - 0x41, - 0x64, - 0x64, - 0x65, - 0x64, - 0x20, - 0x74, - 0x61, - 0x73, - 0x6B, - 0x20, - 0x20, - 0x20, - 0x20, - 0x3A, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x58, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -#pragma pop diff --git a/libs/dolphin/dvd/Makefile b/libs/dolphin/dvd/Makefile index 89a730f084f..cc820f89607 100644 --- a/libs/dolphin/dvd/Makefile +++ b/libs/dolphin/dvd/Makefile @@ -3,14 +3,14 @@ # LIBDVD_A_CPP_FILES := \ - libs/dolphin/dvd/dvdlow.cpp \ - libs/dolphin/dvd/dvdfs.cpp \ - libs/dolphin/dvd/dvd.cpp \ - libs/dolphin/dvd/dvdqueue.cpp \ - libs/dolphin/dvd/dvderror.cpp \ - libs/dolphin/dvd/dvdidutils.cpp \ - libs/dolphin/dvd/dvdFatal.cpp \ - libs/dolphin/dvd/fstload.cpp \ + libs/dolphin/dvd/dvdlow.c \ + libs/dolphin/dvd/dvdfs.c \ + libs/dolphin/dvd/dvd.c \ + libs/dolphin/dvd/dvdqueue.c \ + libs/dolphin/dvd/dvderror.c \ + libs/dolphin/dvd/dvdidutils.c \ + libs/dolphin/dvd/dvdFatal.c \ + libs/dolphin/dvd/fstload.c \ LIBDVD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/dvd/dvdlow.o \ @@ -23,6 +23,8 @@ LIBDVD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/dvd/fstload.o \ LIBDVD_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBDVD_A_LDFLAGS := \ -nodefaults \ @@ -35,9 +37,9 @@ $(BUILD_DIR)/libdvd.a: $(LIBDVD_A_O_FILES) @echo $(LIBDVD_A_O_FILES) > build/LIBDVD_A_ofiles @$(LD) -xm l $(LIBDVD_A_LDFLAGS) -o $(BUILD_DIR)/libdvd.a @build/LIBDVD_A_ofiles -$(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.cpp +$(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBDVD_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBDVD_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/dvd/dvd.cpp b/libs/dolphin/dvd/dvd.c similarity index 77% rename from libs/dolphin/dvd/dvd.cpp rename to libs/dolphin/dvd/dvd.c index 8c1c9b20bc0..1167b07ae1d 100644 --- a/libs/dolphin/dvd/dvd.cpp +++ b/libs/dolphin/dvd/dvd.c @@ -11,96 +11,95 @@ // Forward References: // -extern "C" static void defaultOptionalCommandChecker(); -extern "C" void DVDInit(); -extern "C" static void stateReadingFST(); -extern "C" static void cbForStateReadingFST(); -extern "C" static void cbForStateError(); -extern "C" static void stateTimeout(); -extern "C" static void stateGettingError(); -extern "C" static void CategorizeError(); -extern "C" static void cbForStateGettingError(); -extern "C" static void cbForUnrecoveredError(); -extern "C" static void cbForUnrecoveredErrorRetry(); -extern "C" static void stateGoToRetry(); -extern "C" static void cbForStateGoToRetry(); -extern "C" static void stateCheckID(); -extern "C" static void stateCheckID3(); -extern "C" static void stateCheckID2a(); -extern "C" static void cbForStateCheckID2a(); -extern "C" static void stateCheckID2(); -extern "C" static void cbForStateCheckID1(); -extern "C" static void cbForStateCheckID2(); -extern "C" static void cbForStateCheckID3(); -extern "C" static void AlarmHandler(); -extern "C" static void stateCoverClosed(); -extern "C" static void stateCoverClosed_CMD(); -extern "C" static void cbForStateCoverClosed(); -extern "C" static void stateMotorStopped(); -extern "C" static void cbForStateMotorStopped(); -extern "C" static void stateReady(); -extern "C" static void stateBusy(); -extern "C" static void cbForStateBusy(); -extern "C" void DVDReadAbsAsyncPrio(); -extern "C" void DVDReadAbsAsyncForBS(); -extern "C" void DVDReadDiskID(); -extern "C" void DVDCancelStreamAsync(); -extern "C" void DVDInquiryAsync(); -extern "C" void DVDReset(); -extern "C" void DVDSetAutoInvalidation(); -extern "C" void DVDResume(); -extern "C" static void DVDCancelAsync(); -extern "C" void DVDCancel(); -extern "C" static void cbForCancelSync(); -extern "C" void __DVDPrepareResetAsync(); -extern "C" void __DVDTestAlarm(); +static void defaultOptionalCommandChecker(); +static void stateReadingFST(); +static void cbForStateReadingFST(); +static void cbForStateError(); +static void stateTimeout(); +static void stateGettingError(); +static void CategorizeError(); +static void cbForStateGettingError(); +static void cbForUnrecoveredError(); +static void cbForUnrecoveredErrorRetry(); +static void stateGoToRetry(); +static void cbForStateGoToRetry(); +static void stateCheckID(); +static void stateCheckID3(); +static void stateCheckID2a(); +static void cbForStateCheckID2a(); +static void stateCheckID2(); +static void cbForStateCheckID1(); +static void cbForStateCheckID2(); +static void cbForStateCheckID3(); +static void AlarmHandler(); +static void stateCoverClosed(); +static void stateCoverClosed_CMD(); +static void cbForStateCoverClosed(); +static void stateMotorStopped(); +static void cbForStateMotorStopped(); +static void stateReady(); +static void stateBusy(); +static void cbForStateBusy(); +void DVDReadAbsAsyncPrio(); +void DVDReadAbsAsyncForBS(); +void DVDReadDiskID(); +void DVDCancelStreamAsync(); +void DVDInquiryAsync(); +void DVDReset(); +void DVDSetAutoInvalidation(); +void DVDResume(); +static void DVDCancelAsync(); +void DVDCancel(); +static void cbForCancelSync(); +void __DVDPrepareResetAsync(); +void __DVDTestAlarm(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void OSReport(); -extern "C" void OSPanic(); -extern "C" void OSRegisterVersion(); -extern "C" void OSCreateAlarm(); -extern "C" void OSSetAlarm(); -extern "C" void DCInvalidateRange(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void OSInitThreadQueue(); -extern "C" void OSSleepThread(); -extern "C" void OSWakeupThread(); -extern "C" void __DVDInitWA(); -extern "C" void __DVDInterruptHandler(); -extern "C" void DVDLowRead(); -extern "C" void DVDLowSeek(); -extern "C" void DVDLowWaitCoverClose(); -extern "C" void DVDLowReadDiskID(); -extern "C" void DVDLowStopMotor(); -extern "C" void DVDLowRequestError(); -extern "C" void DVDLowInquiry(); -extern "C" void DVDLowAudioStream(); -extern "C" void DVDLowRequestAudioStatus(); -extern "C" void DVDLowAudioBufferConfig(); -extern "C" void DVDLowReset(); -extern "C" void DVDLowBreak(); -extern "C" void DVDLowClearCallback(); -extern "C" void __DVDLowTestAlarm(); -extern "C" void __DVDFSInit(); -extern "C" void __DVDClearWaitingQueue(); -extern "C" void __DVDPushWaitingQueue(); -extern "C" void __DVDPopWaitingQueue(); -extern "C" void __DVDCheckWaitingQueue(); -extern "C" void __DVDDequeueWaitingQueue(); -extern "C" void __DVDStoreErrorCode(); -extern "C" void DVDCompareDiskID(); -extern "C" void __DVDPrintFatalMessage(); -extern "C" void __fstLoad(); -extern "C" void memcmp(); -extern "C" extern u8 __DVDThreadQueue[8]; +void OSReport(); +void OSPanic(); +void OSRegisterVersion(); +void OSCreateAlarm(); +void OSSetAlarm(); +void DCInvalidateRange(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSUnmaskInterrupts(); +void OSInitThreadQueue(); +void OSSleepThread(); +void OSWakeupThread(); +void __DVDInitWA(); +void __DVDInterruptHandler(); +void DVDLowRead(); +void DVDLowSeek(); +void DVDLowWaitCoverClose(); +void DVDLowReadDiskID(); +void DVDLowStopMotor(); +void DVDLowRequestError(); +void DVDLowInquiry(); +void DVDLowAudioStream(); +void DVDLowRequestAudioStatus(); +void DVDLowAudioBufferConfig(); +void DVDLowReset(); +void DVDLowBreak(); +void DVDLowClearCallback(); +void __DVDLowTestAlarm(); +void __DVDFSInit(); +void __DVDClearWaitingQueue(); +void __DVDPushWaitingQueue(); +void __DVDPopWaitingQueue(); +void __DVDCheckWaitingQueue(); +void __DVDDequeueWaitingQueue(); +void __DVDStoreErrorCode(); +void DVDCompareDiskID(); +void __DVDPrintFatalMessage(); +void __fstLoad(); +void memcmp(); +extern u8 __DVDThreadQueue[8]; // // Declarations: @@ -113,98 +112,10 @@ static void defaultOptionalCommandChecker() { /* ############################################################################################## */ /* 803D1520-803D1568 02E640 0045+03 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[69 + 3 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x44, - 0x56, - 0x44, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x34, - 0x3A, - 0x35, - 0x31, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>"; /* 803D1568-803D1574 02E688 000A+02 1/1 0/0 0/0 .data @18 */ -SECTION_DATA static u8 lit_18[10 + 2 /* padding */] = { - 0x6C, - 0x6F, - 0x61, - 0x64, - 0x20, - 0x66, - 0x73, - 0x74, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_18[] = "load fst\n"; /* 804509E8-804509EC -00001 0004+00 1/1 0/0 0/0 .sdata __DVDVersion */ SECTION_SDATA static void* __DVDVersion = (void*)&lit_1; @@ -267,7 +178,7 @@ static u8 DVDInitialized[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DVDInit() { +asm void DVDInit(void) { nofralloc #include "asm/dolphin/dvd/dvd/DVDInit.s" } @@ -275,12 +186,7 @@ asm void DVDInit() { /* ############################################################################################## */ /* 803D1574-803D15A8 02E694 0034+00 2/2 0/0 0/0 .data @24 */ -SECTION_DATA static u8 lit_24[52] = { - 0x44, 0x56, 0x44, 0x43, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6B, - 0x28, 0x29, 0x3A, 0x20, 0x46, 0x53, 0x54, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x64, 0x69, 0x73, 0x63, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x6F, 0x6F, 0x20, 0x62, 0x69, 0x67, 0x2E, 0x20, 0x20, 0x20, 0x00, -}; +SECTION_DATA static char lit_24[] = "DVDChangeDisk(): FST in the new disc is too big. "; /* 8044C900-8044C920 079620 0020+00 8/8 0/0 0/0 .bss BB2 */ static u8 BB2[32]; @@ -292,17 +198,7 @@ SECTION_SDATA static u32 autoInvalidation = 0x00000001; SECTION_SDATA static void* checkOptionalCommand = (void*)defaultOptionalCommandChecker; /* 804509F4-804509FC 000474 0006+02 2/2 0/0 0/0 .sdata @23 */ -SECTION_SDATA static u8 lit_23[6 + 2 /* padding */] = { - 0x64, - 0x76, - 0x64, - 0x2E, - 0x63, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_SDATA static char lit_23[] = "dvd.c"; /* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss LastState */ static u8 LastState[4 + 4 /* padding */]; @@ -725,77 +621,7 @@ asm void DVDResume() { /* 803D15F8-803D163C 02E718 0041+03 0/0 0/0 0/0 .data @789 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_789[65 + 3 /* padding */] = { - 0x44, - 0x56, - 0x44, - 0x43, - 0x68, - 0x61, - 0x6E, - 0x67, - 0x65, - 0x44, - 0x69, - 0x73, - 0x6B, - 0x41, - 0x73, - 0x79, - 0x6E, - 0x63, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x59, - 0x6F, - 0x75, - 0x20, - 0x63, - 0x61, - 0x6E, - 0x27, - 0x74, - 0x20, - 0x73, - 0x70, - 0x65, - 0x63, - 0x69, - 0x66, - 0x79, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x63, - 0x6F, - 0x6D, - 0x70, - 0x61, - 0x6E, - 0x79, - 0x20, - 0x6E, - 0x61, - 0x6D, - 0x65, - 0x2E, - 0x20, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_789[] = "DVDChangeDiskAsync(): You can't specify NULL to company name. \n"; #pragma pop /* 803D163C-803D1670 -00001 0034+00 1/1 0/0 0/0 .data @956 */ @@ -873,7 +699,7 @@ SECTION_DATA static void* lit_1060[13 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm s32 DVDCheckDisk() { +asm BOOL DVDCheckDisk() { nofralloc #include "asm/dolphin/dvd/dvd/DVDCheckDisk.s" } diff --git a/libs/dolphin/dvd/dvdFatal.cpp b/libs/dolphin/dvd/dvdFatal.c similarity index 94% rename from libs/dolphin/dvd/dvdFatal.cpp rename to libs/dolphin/dvd/dvdFatal.c index 2a6e85c89ca..29b0376a641 100644 --- a/libs/dolphin/dvd/dvdFatal.cpp +++ b/libs/dolphin/dvd/dvdFatal.c @@ -11,7 +11,7 @@ // Forward References: // -extern "C" void __DVDPrintFatalMessage(); +void __DVDPrintFatalMessage(); // // External References: diff --git a/libs/dolphin/dvd/dvderror.cpp b/libs/dolphin/dvd/dvderror.c similarity index 90% rename from libs/dolphin/dvd/dvderror.cpp rename to libs/dolphin/dvd/dvderror.c index 4711f3ae523..9183c16a13f 100644 --- a/libs/dolphin/dvd/dvderror.cpp +++ b/libs/dolphin/dvd/dvderror.c @@ -11,15 +11,15 @@ // Forward References: // -extern "C" static void ErrorCode2Num(); -extern "C" void __DVDStoreErrorCode(); +static void ErrorCode2Num(); +void __DVDStoreErrorCode(); // // External References: // -extern "C" void __OSLockSramEx(); -extern "C" void __OSUnlockSramEx(); +void __OSLockSramEx(); +void __OSUnlockSramEx(); // // Declarations: diff --git a/libs/dolphin/dvd/dvdfs.cpp b/libs/dolphin/dvd/dvdfs.c similarity index 57% rename from libs/dolphin/dvd/dvdfs.cpp rename to libs/dolphin/dvd/dvdfs.c index e9372e8ea15..4a32ab3ace9 100644 --- a/libs/dolphin/dvd/dvdfs.cpp +++ b/libs/dolphin/dvd/dvdfs.c @@ -11,36 +11,36 @@ // Forward References: // -extern "C" void __DVDFSInit(); -extern "C" void DVDConvertPathToEntrynum(); -extern "C" void DVDFastOpen(); -extern "C" void DVDOpen(); -extern "C" void DVDClose(); -extern "C" static void entryToPath(); -extern "C" static void DVDConvertEntrynumToPath(); -extern "C" static void DVDGetCurrentDir(); -extern "C" void DVDChangeDir(); -extern "C" void DVDReadAsyncPrio(); -extern "C" static void cbForReadAsync(); -extern "C" void DVDReadPrio(); -extern "C" static void cbForReadSync(); -extern "C" void DVDOpenDir(); -extern "C" void DVDReadDir(); -extern "C" bool DVDCloseDir(); +void __DVDFSInit(); +void DVDConvertPathToEntrynum(); +void DVDFastOpen(); +void DVDOpen(); +void DVDClose(); +static void entryToPath(); +static void DVDConvertEntrynumToPath(); +static void DVDGetCurrentDir(); +void DVDChangeDir(); +void DVDReadAsyncPrio(); +static void cbForReadAsync(); +void DVDReadPrio(); +static void cbForReadSync(); +void DVDOpenDir(); +void DVDReadDir(); +u8 DVDCloseDir(); // // External References: // -extern "C" void OSReport(); -extern "C" void OSPanic(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSSleepThread(); -extern "C" void OSWakeupThread(); -extern "C" void DVDReadAbsAsyncPrio(); -extern "C" void DVDCancel(); -extern "C" void tolower(); +void OSReport(); +void OSPanic(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void OSSleepThread(); +void OSWakeupThread(); +void DVDReadAbsAsyncPrio(); +void DVDCancel(); +void tolower(); // // Declarations: @@ -71,30 +71,21 @@ asm void __DVDFSInit() { /* ############################################################################################## */ /* 803D1380-803D1448 02E4A0 00C8+00 1/1 0/0 0/0 .data @119 */ -SECTION_DATA static u8 lit_119[200] = { - 0x44, 0x56, 0x44, 0x43, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x45, 0x6E, 0x74, 0x72, 0x79, 0x6E, - 0x75, 0x6D, 0x54, 0x6F, 0x50, 0x61, 0x74, 0x68, 0x28, 0x70, 0x6F, 0x73, 0x73, 0x69, 0x62, 0x6C, - 0x79, 0x20, 0x44, 0x56, 0x44, 0x4F, 0x70, 0x65, 0x6E, 0x20, 0x6F, 0x72, 0x20, 0x44, 0x56, 0x44, - 0x43, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x44, 0x69, 0x72, 0x20, 0x6F, 0x72, 0x20, 0x44, 0x56, 0x44, - 0x4F, 0x70, 0x65, 0x6E, 0x44, 0x69, 0x72, 0x29, 0x3A, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6F, 0x72, 0x79, 0x20, 0x6F, 0x72, - 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x28, 0x25, 0x73, 0x29, 0x20, 0x64, 0x6F, 0x65, 0x73, 0x6E, - 0x27, 0x74, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x38, 0x2E, 0x33, 0x20, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x2E, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x6D, 0x70, 0x6F, 0x72, 0x61, 0x72, - 0x79, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x6E, - 0x64, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65, - 0x64, 0x20, 0x73, 0x6F, 0x6F, 0x6E, 0x0A, 0x00, -}; +SECTION_DATA static char lit_119[] = + "DVDConvertEntrynumToPath(possibly DVDOpen or DVDChangeDir or DVDOpenDir): specified directory " + "or file (%s) doesn't match standard 8.3 format. This is a temporary restriction and will be " + "removed soon\n"; /* 804509E0-804509E8 000460 0008+00 3/3 0/0 0/0 .sdata @118 */ -SECTION_SDATA static u8 lit_118[8] = { - 0x64, 0x76, 0x64, 0x66, 0x73, 0x2E, 0x63, 0x00, -}; +SECTION_SDATA static char lit_118[] = "dvdfs.c"; /* 80451768-8045176C 000C68 0004+00 4/4 0/0 0/0 .sbss currentDirectory */ static u8 currentDirectory[4]; +/* 80451770-80451778 000C70 0008+00 2/2 3/3 0/0 .sbss __DVDThreadQueue */ +extern u8 __DVDThreadQueue[8]; +u8 __DVDThreadQueue[8]; + /* 8045176C-80451770 000C6C 0004+00 1/1 1/1 0/0 .sbss __DVDLongFileNameFlag */ extern u8 __DVDLongFileNameFlag[4]; u8 __DVDLongFileNameFlag[4]; @@ -121,65 +112,7 @@ asm void DVDFastOpen() { /* ############################################################################################## */ /* 803D1448-803D1480 02E568 0037+01 1/1 0/0 0/0 .data @140 */ -SECTION_DATA static u8 lit_140[55 + 1 /* padding */] = { - 0x57, - 0x61, - 0x72, - 0x6E, - 0x69, - 0x6E, - 0x67, - 0x3A, - 0x20, - 0x44, - 0x56, - 0x44, - 0x4F, - 0x70, - 0x65, - 0x6E, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x66, - 0x69, - 0x6C, - 0x65, - 0x20, - 0x27, - 0x25, - 0x73, - 0x27, - 0x20, - 0x77, - 0x61, - 0x73, - 0x20, - 0x6E, - 0x6F, - 0x74, - 0x20, - 0x66, - 0x6F, - 0x75, - 0x6E, - 0x64, - 0x20, - 0x75, - 0x6E, - 0x64, - 0x65, - 0x72, - 0x20, - 0x25, - 0x73, - 0x2E, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_DATA static char lit_140[] = "Warning: DVDOpen(): file '%s' was not found under %s.\n"; /* 80348890-80348958 3431D0 00C8+00 0/0 3/3 1/1 .text DVDOpen */ #pragma push @@ -243,12 +176,7 @@ asm void DVDChangeDir() { /* ############################################################################################## */ /* 803D1480-803D14B4 02E5A0 0034+00 1/1 0/0 0/0 .data @239 */ -SECTION_DATA static u8 lit_239[52] = { - 0x44, 0x56, 0x44, 0x52, 0x65, 0x61, 0x64, 0x41, 0x73, 0x79, 0x6E, 0x63, 0x28, - 0x29, 0x3A, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x72, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x6F, 0x75, 0x74, 0x20, 0x6F, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x20, 0x00, -}; +SECTION_DATA static char lit_239[] = "DVDReadAsync(): specified area is out of the file "; /* 80348D54-80348E14 343694 00C0+00 0/0 2/2 0/0 .text DVDReadAsyncPrio */ #pragma push @@ -272,61 +200,7 @@ static asm void cbForReadAsync() { /* ############################################################################################## */ /* 803D14B4-803D14E4 02E5D4 002F+01 1/1 0/0 0/0 .data @265 */ -SECTION_DATA static u8 lit_265[47 + 1 /* padding */] = { - 0x44, - 0x56, - 0x44, - 0x52, - 0x65, - 0x61, - 0x64, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x73, - 0x70, - 0x65, - 0x63, - 0x69, - 0x66, - 0x69, - 0x65, - 0x64, - 0x20, - 0x61, - 0x72, - 0x65, - 0x61, - 0x20, - 0x69, - 0x73, - 0x20, - 0x6F, - 0x75, - 0x74, - 0x20, - 0x6F, - 0x66, - 0x20, - 0x74, - 0x68, - 0x65, - 0x20, - 0x66, - 0x69, - 0x6C, - 0x65, - 0x20, - 0x20, - 0x00, - /* padding */ - 0x00, -}; - -/* 80451770-80451778 000C70 0008+00 2/2 3/3 0/0 .sbss __DVDThreadQueue */ -extern u8 __DVDThreadQueue[8]; -u8 __DVDThreadQueue[8]; +SECTION_DATA static char lit_265[] = "DVDRead(): specified area is out of the file "; /* 80348E44-80348F5C 343784 0118+00 0/0 9/9 3/3 .text DVDReadPrio */ #pragma push @@ -350,69 +224,7 @@ static asm void cbForReadSync() { /* ############################################################################################## */ /* 803D14E4-803D1520 02E604 003A+02 1/1 0/0 0/0 .data @311 */ -SECTION_DATA static u8 lit_311[58 + 2 /* padding */] = { - 0x57, - 0x61, - 0x72, - 0x6E, - 0x69, - 0x6E, - 0x67, - 0x3A, - 0x20, - 0x44, - 0x56, - 0x44, - 0x4F, - 0x70, - 0x65, - 0x6E, - 0x44, - 0x69, - 0x72, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x66, - 0x69, - 0x6C, - 0x65, - 0x20, - 0x27, - 0x25, - 0x73, - 0x27, - 0x20, - 0x77, - 0x61, - 0x73, - 0x20, - 0x6E, - 0x6F, - 0x74, - 0x20, - 0x66, - 0x6F, - 0x75, - 0x6E, - 0x64, - 0x20, - 0x75, - 0x6E, - 0x64, - 0x65, - 0x72, - 0x20, - 0x25, - 0x73, - 0x2E, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_311[] = "Warning: DVDOpenDir(): file '%s' was not found under %s.\n"; /* 80348F80-80349040 3438C0 00C0+00 0/0 3/3 0/0 .text DVDOpenDir */ #pragma push @@ -435,6 +247,6 @@ asm void DVDReadDir() { #pragma pop /* 803490E4-803490EC 343A24 0008+00 0/0 3/3 0/0 .text DVDCloseDir */ -bool DVDCloseDir() { - return true; +u8 DVDCloseDir() { + return 1; } diff --git a/libs/dolphin/dvd/dvdidutils.cpp b/libs/dolphin/dvd/dvdidutils.c similarity index 88% rename from libs/dolphin/dvd/dvdidutils.cpp rename to libs/dolphin/dvd/dvdidutils.c index ee30874d052..5b5b1cc636d 100644 --- a/libs/dolphin/dvd/dvdidutils.cpp +++ b/libs/dolphin/dvd/dvdidutils.c @@ -11,13 +11,13 @@ // Forward References: // -extern "C" void DVDCompareDiskID(); +void DVDCompareDiskID(); // // External References: // -extern "C" void strncmp(); +void strncmp(); // // Declarations: diff --git a/libs/dolphin/dvd/dvdlow.cpp b/libs/dolphin/dvd/dvdlow.c similarity index 88% rename from libs/dolphin/dvd/dvdlow.cpp rename to libs/dolphin/dvd/dvdlow.c index 065334dbadf..d928e81efe5 100644 --- a/libs/dolphin/dvd/dvdlow.cpp +++ b/libs/dolphin/dvd/dvdlow.c @@ -11,43 +11,43 @@ // Forward References: // -extern "C" void __DVDInitWA(); -extern "C" void __DVDInterruptHandler(); -extern "C" static void AlarmHandler(); -extern "C" static void AlarmHandlerForTimeout(); -extern "C" static void Read(); -extern "C" static void SeekTwiceBeforeRead(); -extern "C" void DVDLowRead(); -extern "C" void DVDLowSeek(); -extern "C" void DVDLowWaitCoverClose(); -extern "C" void DVDLowReadDiskID(); -extern "C" void DVDLowStopMotor(); -extern "C" void DVDLowRequestError(); -extern "C" void DVDLowInquiry(); -extern "C" void DVDLowAudioStream(); -extern "C" void DVDLowRequestAudioStatus(); -extern "C" void DVDLowAudioBufferConfig(); -extern "C" void DVDLowReset(); -extern "C" void DVDLowBreak(); -extern "C" void DVDLowClearCallback(); -extern "C" void __DVDLowSetWAType(); -extern "C" void __DVDLowTestAlarm(); +void __DVDInitWA(); +void __DVDInterruptHandler(); +static void AlarmHandler(); +static void AlarmHandlerForTimeout(); +static void Read(); +static void SeekTwiceBeforeRead(); +void DVDLowRead(); +void DVDLowSeek(); +void DVDLowWaitCoverClose(); +void DVDLowReadDiskID(); +void DVDLowStopMotor(); +void DVDLowRequestError(); +void DVDLowInquiry(); +void DVDLowAudioStream(); +void DVDLowRequestAudioStatus(); +void DVDLowAudioBufferConfig(); +void DVDLowReset(); +void DVDLowBreak(); +void DVDLowClearCallback(); +void __DVDLowSetWAType(); +void __DVDLowTestAlarm(); // // External References: // -extern "C" void OSInitAlarm(); -extern "C" void OSCreateAlarm(); -extern "C" void OSSetAlarm(); -extern "C" void OSCancelAlarm(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSMaskInterrupts(); -extern "C" void __OSGetSystemTime(); -extern "C" void DVDGetCurrentDiskID(); +void OSInitAlarm(); +void OSCreateAlarm(); +void OSSetAlarm(); +void OSCancelAlarm(); +void OSSetCurrentContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSMaskInterrupts(); +void __OSGetSystemTime(); +void DVDGetCurrentDiskID(); // // Declarations: diff --git a/libs/dolphin/dvd/dvdqueue.cpp b/libs/dolphin/dvd/dvdqueue.c similarity index 86% rename from libs/dolphin/dvd/dvdqueue.cpp rename to libs/dolphin/dvd/dvdqueue.c index f5ca812af74..07e41a615b1 100644 --- a/libs/dolphin/dvd/dvdqueue.cpp +++ b/libs/dolphin/dvd/dvdqueue.c @@ -11,18 +11,18 @@ // Forward References: // -extern "C" void __DVDClearWaitingQueue(); -extern "C" void __DVDPushWaitingQueue(); -extern "C" void __DVDPopWaitingQueue(); -extern "C" void __DVDCheckWaitingQueue(); -extern "C" void __DVDDequeueWaitingQueue(); +void __DVDClearWaitingQueue(); +void __DVDPushWaitingQueue(); +void __DVDPopWaitingQueue(); +void __DVDCheckWaitingQueue(); +void __DVDDequeueWaitingQueue(); // // External References: // -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); // // Declarations: diff --git a/libs/dolphin/dvd/fstload.cpp b/libs/dolphin/dvd/fstload.c similarity index 55% rename from libs/dolphin/dvd/fstload.cpp rename to libs/dolphin/dvd/fstload.c index ea82a7c34c3..80795a70a15 100644 --- a/libs/dolphin/dvd/fstload.cpp +++ b/libs/dolphin/dvd/fstload.c @@ -11,21 +11,21 @@ // Forward References: // -extern "C" static void cb(); -extern "C" void __fstLoad(); +static void cb(); +void __fstLoad(); // // External References: // SECTION_INIT void memcpy(); -extern "C" void OSReport(); -extern "C" void OSGetArenaHi(); -extern "C" void OSSetArenaHi(); -extern "C" void DVDReadAbsAsyncForBS(); -extern "C" void DVDReadDiskID(); -extern "C" void DVDReset(); -extern "C" void DVDGetDriveStatus(); +void OSReport(); +void OSGetArenaHi(); +void OSSetArenaHi(); +void DVDReadAbsAsyncForBS(); +void DVDReadDiskID(); +void DVDReset(); +void DVDGetDriveStatus(); // // Declarations: @@ -53,95 +53,30 @@ static asm void cb() { /* ############################################################################################## */ /* 803D16F0-803D170C 02E810 001A+02 1/1 0/0 0/0 .data @38 */ -SECTION_DATA static u8 lit_38[26 + 2 /* padding */] = { - 0x20, - 0x20, - 0x47, - 0x61, - 0x6D, - 0x65, - 0x20, - 0x4E, - 0x61, - 0x6D, - 0x65, - 0x20, - 0x2E, - 0x2E, - 0x2E, - 0x20, - 0x25, - 0x63, - 0x25, - 0x63, - 0x25, - 0x63, - 0x25, - 0x63, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_38[] = " Game Name ... %c%c%c%c\n"; /* 803D170C-803D1724 02E82C 0016+02 0/1 0/0 0/0 .data @39 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_39[22 + 2 /* padding */] = { - 0x20, - 0x20, - 0x43, - 0x6F, - 0x6D, - 0x70, - 0x61, - 0x6E, - 0x79, - 0x20, - 0x2E, - 0x2E, - 0x2E, - 0x2E, - 0x2E, - 0x20, - 0x25, - 0x63, - 0x25, - 0x63, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_39[] = " Company ..... %c%c\n"; #pragma pop /* 803D1724-803D1738 02E844 0014+00 0/1 0/0 0/0 .data @40 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_40[20] = { - 0x20, 0x20, 0x44, 0x69, 0x73, 0x6B, 0x20, 0x23, 0x20, 0x2E, - 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x20, 0x25, 0x64, 0x0A, 0x00, -}; +SECTION_DATA static char lit_40[] = " Disk # ...... %d\n"; #pragma pop /* 803D1738-803D174C 02E858 0014+00 0/1 0/0 0/0 .data @41 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_41[20] = { - 0x20, 0x20, 0x47, 0x61, 0x6D, 0x65, 0x20, 0x76, 0x65, 0x72, - 0x20, 0x2E, 0x2E, 0x2E, 0x2E, 0x20, 0x25, 0x64, 0x0A, 0x00, -}; +SECTION_DATA static char lit_41[] = " Game ver .... %d\n"; #pragma pop /* 803D174C-803D1760 02E86C 0014+00 0/1 0/0 0/0 .data @44 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_44[20] = { - 0x20, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x69, 0x6E, - 0x67, 0x20, 0x2E, 0x2E, 0x2E, 0x20, 0x25, 0x73, 0x0A, 0x00, -}; +SECTION_DATA static char lit_44[] = " Streaming ... %s\n"; #pragma pop /* 8044C9B8-8044C9F8 0796D8 003F+01 1/1 0/0 0/0 .bss bb2Buf */ @@ -151,27 +86,13 @@ static u8 bb2Buf[63 + 1 /* padding */]; static u8 block[48]; /* 80450A00-80450A04 000480 0002+02 1/1 0/0 0/0 .sdata @37 */ -SECTION_SDATA static u16 lit_37[1 + 1 /* padding */] = { - 0x0A00, - /* padding */ - 0x0000, -}; +SECTION_SDATA static char lit_37[] = "\n"; /* 80450A04-80450A08 000484 0004+00 1/1 0/0 0/0 .sdata @42 */ -SECTION_SDATA static u32 lit_42 = 0x4F464600; +SECTION_SDATA static char lit_42[] = "OFF"; /* 80450A08-80450A10 000488 0003+05 1/1 0/0 0/0 .sdata @43 */ -SECTION_SDATA static u8 lit_43[3 + 5 /* padding */] = { - 0x4F, - 0x4E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_SDATA static char lit_43[] = "ON"; /* 8034BE04-8034BF6C 346744 0168+00 0/0 1/1 0/0 .text __fstLoad */ #pragma push diff --git a/libs/dolphin/gd/GDBase.c b/libs/dolphin/gd/GDBase.c new file mode 100644 index 00000000000..700d63635dc --- /dev/null +++ b/libs/dolphin/gd/GDBase.c @@ -0,0 +1,50 @@ +/** + * GDBase.c + * Description: + */ + +#include "dolphin/gd/GDBase.h" +#include "dolphin/os/OS.h" + +/* 80360F98-80360FB0 35B8D8 0018+00 0/0 6/6 0/0 .text GDInitGDLObj */ +void GDInitGDLObj(GDLObj* obj, u8* start, u32 len) { + obj->start = start; + obj->ptr = start; + obj->end = start + len; + obj->length = len; +} + +/* ############################################################################################## */ +/* 80451980-80451984 000E80 0004+00 2/2 100/100 0/0 .sbss __GDCurrentDL */ +GDLObj* __GDCurrentDL = NULL; + +/* ############################################################################################## */ +/* 80451984-80451988 000E84 0004+00 1/1 0/0 0/0 .sbss overflowcb */ +static GDOverflowCallback overflowcb = NULL; + +/* 80360FB0-80360FDC 35B8F0 002C+00 0/0 2/2 0/0 .text GDFlushCurrToMem */ +void GDFlushCurrToMem(void) { + DCFlushRange(__GDCurrentDL->start, __GDCurrentDL->length); +} + +static inline void __GDWrite(u8 data) { + *__GDCurrentDL->ptr++ = data; +} + +/* 80360FDC-803610D4 35B91C 00F8+00 0/0 2/2 0/0 .text GDPadCurr32 */ +void GDPadCurr32(void) { + u32 i = ((u32)__GDCurrentDL->ptr & 31); + + if (i) { + for (i; i < 32; i++) { + __GDWrite(0); + } + } +} + +/* 803610D4-80361104 35BA14 0030+00 0/0 41/41 0/0 .text GDOverflowed */ +void GDOverflowed(void) { + if (overflowcb != NULL) { + overflowcb(); + } +} diff --git a/libs/dolphin/gd/GDBase.cpp b/libs/dolphin/gd/GDBase.cpp deleted file mode 100644 index d75b7ad02ec..00000000000 --- a/libs/dolphin/gd/GDBase.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: GDBase -// - -#include "dolphin/gd/GDBase.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void GDFlushCurrToMem(); -extern "C" void GDPadCurr32(); -extern "C" void GDOverflowed(); - -// -// External References: -// - -extern "C" void DCFlushRange(); - -// -// Declarations: -// - -/* 80360F98-80360FB0 35B8D8 0018+00 0/0 6/6 0/0 .text GDInitGDLObj */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GDInitGDLObj(GDLObj* obj, u8* start, u32 len) { - nofralloc -#include "asm/dolphin/gd/GDBase/GDInitGDLObj.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80451980-80451984 000E80 0004+00 2/2 100/100 0/0 .sbss __GDCurrentDL */ -GDLObj* __GDCurrentDL; - -/* 80360FB0-80360FDC 35B8F0 002C+00 0/0 2/2 0/0 .text GDFlushCurrToMem */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GDFlushCurrToMem() { - nofralloc -#include "asm/dolphin/gd/GDBase/GDFlushCurrToMem.s" -} -#pragma pop - -/* 80360FDC-803610D4 35B91C 00F8+00 0/0 2/2 0/0 .text GDPadCurr32 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GDPadCurr32() { - nofralloc -#include "asm/dolphin/gd/GDBase/GDPadCurr32.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80451984-80451988 000E84 0004+00 1/1 0/0 0/0 .sbss overflowcb */ -static u8 overflowcb[4]; - -/* 803610D4-80361104 35BA14 0030+00 0/0 41/41 0/0 .text GDOverflowed */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GDOverflowed() { - nofralloc -#include "asm/dolphin/gd/GDBase/GDOverflowed.s" -} -#pragma pop diff --git a/libs/dolphin/gd/GDGeometry.cpp b/libs/dolphin/gd/GDGeometry.c similarity index 93% rename from libs/dolphin/gd/GDGeometry.cpp rename to libs/dolphin/gd/GDGeometry.c index b86e1627804..f25b2adc872 100644 --- a/libs/dolphin/gd/GDGeometry.cpp +++ b/libs/dolphin/gd/GDGeometry.c @@ -10,16 +10,16 @@ // Forward References: // -extern "C" void GDSetVtxDescv(); -extern "C" void GDSetArray(); -extern "C" void GDSetArrayRaw(); +void GDSetVtxDescv(); +void GDSetArray(); +void GDSetArrayRaw(); // // External References: // -extern "C" void GDOverflowed(); -extern "C" extern u8 __GDCurrentDL[4]; +void GDOverflowed(); +extern u8 __GDCurrentDL[4]; // // Declarations: diff --git a/libs/dolphin/gd/Makefile b/libs/dolphin/gd/Makefile index ee7580b9e68..630a6cf1060 100644 --- a/libs/dolphin/gd/Makefile +++ b/libs/dolphin/gd/Makefile @@ -3,14 +3,16 @@ # LIBGD_A_CPP_FILES := \ - libs/dolphin/gd/GDBase.cpp \ - libs/dolphin/gd/GDGeometry.cpp \ + libs/dolphin/gd/GDBase.c \ + libs/dolphin/gd/GDGeometry.c \ LIBGD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/gd/GDBase.o \ $(BUILD_DIR)/libs/dolphin/gd/GDGeometry.o \ LIBGD_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBGD_A_LDFLAGS := \ -nodefaults \ @@ -23,9 +25,9 @@ $(BUILD_DIR)/libgd.a: $(LIBGD_A_O_FILES) @echo $(LIBGD_A_O_FILES) > build/LIBGD_A_ofiles @$(LD) -xm l $(LIBGD_A_LDFLAGS) -o $(BUILD_DIR)/libgd.a @build/LIBGD_A_ofiles -$(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.cpp +$(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBGD_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBGD_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/gx/GXAttr.cpp b/libs/dolphin/gx/GXAttr.c similarity index 91% rename from libs/dolphin/gx/GXAttr.cpp rename to libs/dolphin/gx/GXAttr.c index 9833c030a7f..229a52e1571 100644 --- a/libs/dolphin/gx/GXAttr.cpp +++ b/libs/dolphin/gx/GXAttr.c @@ -4,32 +4,28 @@ // #include "dolphin/gx/GXAttr.h" +#include "dolphin/gx/GXInit.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: // -extern "C" void GXSetVtxDesc(); -extern "C" void GXSetVtxDescv(); -extern "C" void __GXSetVCD(); -extern "C" void __GXCalculateVLim(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetVtxAttrFmtv(); -extern "C" void __GXSetVAT(); -extern "C" void GXSetArray(); -extern "C" void GXInvalidateVtxCache(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); +void GXSetVtxDesc(); +void GXSetVtxDescv(); +void __GXSetVCD(); +void __GXCalculateVLim(); +void GXClearVtxDesc(); +void GXSetVtxAttrFmt(); +void GXSetVtxAttrFmtv(); +void __GXSetVAT(); +void GXInvalidateVtxCache(); // // External References: // -extern "C" void __GXSetMatrixIndex(); -extern "C" extern void* __GXData; +void __GXSetMatrixIndex(); // // Declarations: @@ -57,7 +53,7 @@ SECTION_DATA static void* lit_176[26] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetVtxDesc() { +asm void GXSetVtxDesc(GXAttr attr, GXAttrType type) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetVtxDesc.s" } @@ -85,7 +81,7 @@ SECTION_DATA static void* lit_223[26] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetVtxDescv() { +asm void GXSetVtxDescv(GXVtxDescList* list) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetVtxDescv.s" } @@ -95,7 +91,7 @@ asm void GXSetVtxDescv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXSetVCD() { +asm void __GXSetVCD(void) { nofralloc #include "asm/dolphin/gx/GXAttr/__GXSetVCD.s" } @@ -135,7 +131,7 @@ SECTION_SDATA static u8 tbl3[4 + 4 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXCalculateVLim() { +asm void __GXCalculateVLim(void) { nofralloc #include "asm/dolphin/gx/GXAttr/__GXCalculateVLim.s" } @@ -145,7 +141,7 @@ asm void __GXCalculateVLim() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXClearVtxDesc() { +asm void GXClearVtxDesc(void) { nofralloc #include "asm/dolphin/gx/GXAttr/GXClearVtxDesc.s" } @@ -169,7 +165,7 @@ SECTION_DATA static void* lit_476[17] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetVtxAttrFmt() { +asm void GXSetVtxAttrFmt(GXVtxFmt fmt, GXAttr attr, GXCompCnt cnt, GXCompType type, u32) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetVtxAttrFmt.s" } @@ -193,7 +189,7 @@ SECTION_DATA static void* lit_503[17] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetVtxAttrFmtv() { +asm void GXSetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList* list) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetVtxAttrFmtv.s" } @@ -203,7 +199,7 @@ asm void GXSetVtxAttrFmtv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXSetVAT() { +asm void __GXSetVAT(void) { nofralloc #include "asm/dolphin/gx/GXAttr/__GXSetVAT.s" } @@ -213,7 +209,7 @@ asm void __GXSetVAT() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetArray() { +asm void GXSetArray(GXAttr attr, void* base, u8) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetArray.s" } @@ -223,7 +219,7 @@ asm void GXSetArray() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInvalidateVtxCache() { +asm void GXInvalidateVtxCache(void) { nofralloc #include "asm/dolphin/gx/GXAttr/GXInvalidateVtxCache.s" } @@ -257,7 +253,7 @@ SECTION_DATA static void* lit_739[21] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTexCoordGen2() { +asm void GXSetTexCoordGen2(GXTexCoordID dst, GXTexGenType type, GXTexGenSrc src, u32 mtx, GXBool renormalize, u32 pt_mtx) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetTexCoordGen2.s" } @@ -267,7 +263,7 @@ asm void GXSetTexCoordGen2() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetNumTexGens() { +asm void GXSetNumTexGens(u8 numTexGens) { nofralloc #include "asm/dolphin/gx/GXAttr/GXSetNumTexGens.s" } diff --git a/libs/dolphin/gx/GXBump.c b/libs/dolphin/gx/GXBump.c new file mode 100644 index 00000000000..4a9fe9421e9 --- /dev/null +++ b/libs/dolphin/gx/GXBump.c @@ -0,0 +1,204 @@ +/** + * GXBump.c + * Description: + */ + +#include "dolphin/gx/GXBump.h" +#include "dolphin/gx/GX.h" +#include "dolphin/gx/GXInit.h" + +/* 8035ECC0-8035ED2C 359600 006C+00 1/1 3/3 0/0 .text GXSetTevIndirect */ +void GXSetTevIndirect(GXTevStageID tevStage, GXIndTexStageID texStage, GXIndTexFormat texFmt, + GXIndTexBiasSel biasSel, GXIndTexMtxID mtxID, GXIndTexWrap wrapS, + GXIndTexWrap wrapT, u8 addPrev, u8 utcLod, GXIndTexAlphaSel alphaSel) { + u32 field = 0; + u32 stage = tevStage + 0x10; + + GX_BITFIELD_SET(field, 30, 2, texStage); + GX_BITFIELD_SET(field, 28, 2, texFmt); + GX_BITFIELD_SET(field, 25, 3, biasSel); + GX_BITFIELD_SET(field, 23, 2, alphaSel); + GX_BITFIELD_SET(field, 19, 4, mtxID); + GX_BITFIELD_SET(field, 16, 3, wrapS); + GX_BITFIELD_SET(field, 13, 3, wrapT); + GX_BITFIELD_SET(field, 12, 1, utcLod); + GX_BITFIELD_SET(field, 11, 1, addPrev); + GX_BITFIELD_SET(field, 0, 8, stage); + + GXFIFO.u8 = 0x61; + GXFIFO.s32 = field; + + __GXData->field_0x2 = 0; +} + +/* 8035ED2C-8035EEA4 35966C 0178+00 0/0 4/4 1/1 .text GXSetIndTexMtx */ +void GXSetIndTexMtx(GXIndTexMtxID mtxID, f32 offset[6], s8 scale_exp) { + u32 val; + u32 field; + f32 mtx2[6]; + + scale_exp += 17; + + switch (mtxID) { + case GX_ITM_0: + case GX_ITM_1: + case GX_ITM_2: + val = mtxID - 1; + break; + case GX_ITM_S0: + case GX_ITM_S1: + case GX_ITM_S2: + val = mtxID - 5; + break; + case GX_ITM_T0: + case GX_ITM_T1: + case GX_ITM_T2: + val = mtxID - 9; + break; + case GX_ITM_3: + case GX_ITM_S3: + default: + val = 0; + } + + field = 0; + GX_BITFIELD_SET(field, 21, 11, 1024.0f * offset[0]); + GX_BITFIELD_SET(field, 10, 11, 1024.0f * offset[3]); + GX_BITFIELD_SET(field, 8, 2, (scale_exp >> 0) & 3); + GX_BITFIELD_SET(field, 0, 8, val * 3 + 6); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = field; + + field = 0; + GX_BITFIELD_SET(field, 21, 11, 1024.0f * offset[1]); + GX_BITFIELD_SET(field, 10, 11, 1024.0f * offset[4]); + GX_BITFIELD_SET(field, 8, 2, (scale_exp >> 2) & 3); + GX_BITFIELD_SET(field, 0, 8, val * 3 + 7); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = field; + + field = 0; + GX_BITFIELD_SET(field, 21, 11, 1024.0f * offset[2]); + GX_BITFIELD_SET(field, 10, 11, 1024.0f * offset[5]); + GX_BITFIELD_SET(field, 8, 2, (scale_exp >> 4) & 3); + GX_BITFIELD_SET(field, 0, 8, val * 3 + 8); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = field; + + __GXData->field_0x2 = 0; +} + +/* 8035EEA4-8035EFE8 3597E4 0144+00 0/0 5/5 0/0 .text GXSetIndTexCoordScale */ +void GXSetIndTexCoordScale(GXIndTexStageID texStage, GXIndTexScale scaleS, GXIndTexScale scaleT) { + GXData* data; + + switch (texStage) { + case GX_INDTEXSTAGE0: + data = __GXData; + GX_BITFIELD_SET(data->field_0x128, 28, 4, scaleS); + GX_BITFIELD_SET(data->field_0x128, 24, 4, scaleT); + GX_BITFIELD_SET(data->field_0x128, 0, 8, 0x25); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = data->field_0x128; + break; + case GX_INDTEXSTAGE1: + data = __GXData; + GX_BITFIELD_SET(data->field_0x128, 20, 4, scaleS); + GX_BITFIELD_SET(data->field_0x128, 16, 4, scaleT); + GX_BITFIELD_SET(data->field_0x128, 0, 8, 0x25); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = data->field_0x128; + break; + case GX_INDTEXSTAGE2: + data = __GXData; + GX_BITFIELD_SET(data->field_0x12c, 28, 4, scaleS); + GX_BITFIELD_SET(data->field_0x12c, 24, 4, scaleT); + GX_BITFIELD_SET(data->field_0x12c, 0, 8, 0x26); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = data->field_0x12c; + break; + case GX_INDTEXSTAGE3: + data = __GXData; + GX_BITFIELD_SET(data->field_0x12c, 20, 4, scaleS); + GX_BITFIELD_SET(data->field_0x12c, 16, 4, scaleT); + GX_BITFIELD_SET(data->field_0x12c, 0, 8, 0x26); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = data->field_0x12c; + break; + } + + __GXData->field_0x2 = 0; +} + +/* 8035EFE8-8035F0D4 359928 00EC+00 0/0 3/3 0/0 .text GXSetIndTexOrder */ +void GXSetIndTexOrder(GXIndTexStageID stage, GXTexCoordID coord, GXTexMapID map) { + GXData* data; + + if (map == 0xFF) { + map = GX_TEXMAP0; + } + + if (coord == 0xFF) { + coord = GX_TEXCOORD0; + } + + switch (stage) { + case GX_INDTEXSTAGE0: + data = __GXData; + GX_BITFIELD_SET(data->field_0x120, 29, 3, map); + GX_BITFIELD_SET(data->field_0x120, 26, 3, coord); + break; + case GX_INDTEXSTAGE1: + data = __GXData; + GX_BITFIELD_SET(data->field_0x120, 23, 3, map); + GX_BITFIELD_SET(data->field_0x120, 20, 3, coord); + break; + case GX_INDTEXSTAGE2: + data = __GXData; + GX_BITFIELD_SET(data->field_0x120, 17, 3, map); + GX_BITFIELD_SET(data->field_0x120, 14, 3, coord); + break; + case GX_INDTEXSTAGE3: + data = __GXData; + GX_BITFIELD_SET(data->field_0x120, 11, 3, map); + GX_BITFIELD_SET(data->field_0x120, 8, 3, coord); + break; + } + + GXFIFO.u8 = 0x61; + GXFIFO.s32 = __GXData->field_0x120; + GXSetWasteFlags(); +} + +/* 8035F0D4-8035F0F8 359A14 0024+00 0/0 43/43 7/7 .text GXSetNumIndStages */ +void GXSetNumIndStages(u8 num) { + GXData* data = __GXData; + GX_BITFIELD_SET(data->field_0x204, 13, 3, num); + data->field_0x5ac |= 0x6; +} + +/* 8035F0F8-8035F140 359A38 0048+00 0/0 16/16 0/0 .text GXSetTevDirect */ +void GXSetTevDirect(GXTevStageID stage) { + GXSetTevIndirect(stage, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, + GX_ITW_OFF, FALSE, FALSE, GX_ITBA_OFF); +} + +/* 8035F140-8035F144 359A80 0004+00 0/0 2/2 0/0 .text __GXUpdateBPMask */ +void __GXUpdateBPMask(void) {} + +/* 8035F144-8035F174 359A84 0030+00 0/0 1/1 0/0 .text __GXSetIndirectMask */ +void __GXSetIndirectMask(u32 mask) { + GXData* data = __GXData; + + GX_BITFIELD_SET(data->field_0x124, 24, 8, mask); + GXFIFO.u8 = 0x61; + GXFIFO.s32 = data->field_0x124; + data->field_0x2 = 0; +} + +/* 8035F174-8035F198 359AB4 0024+00 0/0 4/4 0/0 .text __GXFlushTextureState */ +void __GXFlushTextureState(void) { + GXFIFO.u8 = 0x61; + GXFIFO.s32 = __GXData->field_0x124; + __GXData->field_0x2 = 0; +} diff --git a/libs/dolphin/gx/GXBump.cpp b/libs/dolphin/gx/GXBump.cpp deleted file mode 100644 index 4e4c14303e4..00000000000 --- a/libs/dolphin/gx/GXBump.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: GXBump -// - -#include "dolphin/gx/GXBump.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void GXSetTevIndirect(); -extern "C" void GXSetIndTexMtx(); -extern "C" void GXSetIndTexCoordScale(); -extern "C" void GXSetIndTexOrder(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void __GXUpdateBPMask(); -extern "C" void __GXSetIndirectMask(); -extern "C" void __GXFlushTextureState(); - -// -// External References: -// - -extern "C" extern void* __GXData; - -// -// Declarations: -// - -/* 8035ECC0-8035ED2C 359600 006C+00 1/1 3/3 0/0 .text GXSetTevIndirect */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetTevIndirect() { - nofralloc -#include "asm/dolphin/gx/GXBump/GXSetTevIndirect.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80456610-80456618 004C10 0004+04 1/1 0/0 0/0 .sdata2 @149 */ -SECTION_SDATA2 static f32 lit_149[1 + 1 /* padding */] = { - 1024.0f, - /* padding */ - 0.0f, -}; - -/* 8035ED2C-8035EEA4 35966C 0178+00 0/0 4/4 1/1 .text GXSetIndTexMtx */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetIndTexMtx() { - nofralloc -#include "asm/dolphin/gx/GXBump/GXSetIndTexMtx.s" -} -#pragma pop - -/* 8035EEA4-8035EFE8 3597E4 0144+00 0/0 5/5 0/0 .text GXSetIndTexCoordScale */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetIndTexCoordScale() { - nofralloc -#include "asm/dolphin/gx/GXBump/GXSetIndTexCoordScale.s" -} -#pragma pop - -/* 8035EFE8-8035F0D4 359928 00EC+00 0/0 3/3 0/0 .text GXSetIndTexOrder */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetIndTexOrder() { - nofralloc -#include "asm/dolphin/gx/GXBump/GXSetIndTexOrder.s" -} -#pragma pop - -/* 8035F0D4-8035F0F8 359A14 0024+00 0/0 43/43 7/7 .text GXSetNumIndStages */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetNumIndStages() { - nofralloc -#include "asm/dolphin/gx/GXBump/GXSetNumIndStages.s" -} -#pragma pop - -/* 8035F0F8-8035F140 359A38 0048+00 0/0 16/16 0/0 .text GXSetTevDirect */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetTevDirect() { - nofralloc -#include "asm/dolphin/gx/GXBump/GXSetTevDirect.s" -} -#pragma pop - -/* 8035F140-8035F144 359A80 0004+00 0/0 2/2 0/0 .text __GXUpdateBPMask */ -void __GXUpdateBPMask() { - /* empty function */ -} - -/* 8035F144-8035F174 359A84 0030+00 0/0 1/1 0/0 .text __GXSetIndirectMask */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __GXSetIndirectMask() { - nofralloc -#include "asm/dolphin/gx/GXBump/__GXSetIndirectMask.s" -} -#pragma pop - -/* 8035F174-8035F198 359AB4 0024+00 0/0 4/4 0/0 .text __GXFlushTextureState */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __GXFlushTextureState() { - nofralloc -#include "asm/dolphin/gx/GXBump/__GXFlushTextureState.s" -} -#pragma pop diff --git a/libs/dolphin/gx/GXDisplayList.cpp b/libs/dolphin/gx/GXDisplayList.c similarity index 89% rename from libs/dolphin/gx/GXDisplayList.cpp rename to libs/dolphin/gx/GXDisplayList.c index a04d3196dae..f797a33f6df 100644 --- a/libs/dolphin/gx/GXDisplayList.cpp +++ b/libs/dolphin/gx/GXDisplayList.c @@ -1,7 +1,10 @@ +/** + * GXDisplayList.c + * Description: + */ + #include "dolphin/gx/GXDisplayList.h" #include "dolphin/gx/GX.h" -#include "dol2asm.h" -#include "dolphin/types.h" /* 8035FEF0-8035FF60 35A830 0070+00 0/0 20/20 4/4 .text GXCallDisplayList */ void GXCallDisplayList(void* list, u32 nbytes) { diff --git a/libs/dolphin/gx/GXFifo.cpp b/libs/dolphin/gx/GXFifo.c similarity index 78% rename from libs/dolphin/gx/GXFifo.cpp rename to libs/dolphin/gx/GXFifo.c index d170807548f..8755ba3f01d 100644 --- a/libs/dolphin/gx/GXFifo.cpp +++ b/libs/dolphin/gx/GXFifo.c @@ -5,37 +5,34 @@ #include "dolphin/gx/GXFifo.h" #include "dolphin/gx/GX.h" -#include "dolphin/os/OS.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: // -extern "C" static void GXCPInterruptHandler(OSInterrupt, OSContext* ctx); -extern "C" static void GXInitFifoLimits(void); -extern "C" void GXSetCPUFifo(void); -extern "C" void GXSetGPFifo(void); -extern "C" void __GXSaveCPUFifoAux(void); -extern "C" void GXSetBreakPtCallback(void); -extern "C" void __GXFifoInit(void); -extern "C" void __GXFifoReadEnable(void); -extern "C" void __GXFifoReadDisable(void); -extern "C" void __GXFifoLink(u8); -extern "C" void __GXWriteFifoIntEnable(u8, u8); -extern "C" void __GXWriteFifoIntReset(u8, u8); -extern "C" void __GXCleanGPFifo(void); -extern "C" u32 GXGetGPFifo(void); +static void GXCPInterruptHandler(OSInterrupt, OSContext* ctx); +static void GXInitFifoLimits(GXFifoObj* fifo, u32 hi_watermark, u32 lo_watermark); +void GXSetCPUFifo(void); +void GXSetGPFifo(void); +void GXSetBreakPtCallback(void); +void __GXFifoInit(void); +void __GXFifoReadEnable(void); +void __GXFifoReadDisable(void); +void __GXFifoLink(u8); +void __GXWriteFifoIntEnable(u8, u8); +void __GXWriteFifoIntReset(u8, u8); +void __GXCleanGPFifo(void); +u32 GXGetGPFifo(void); // // External References: // -extern "C" void PPCSync(void); -extern "C" void OSSetCurrentContext(OSContext*); -extern "C" void OSClearContext(OSContext*); -extern "C" void GXFlush(void); +void PPCSync(void); +void OSSetCurrentContext(OSContext*); +void OSClearContext(OSContext*); +void GXFlush(void); // // Declarations: @@ -110,7 +107,7 @@ static asm void GXCPInterruptHandler(OSInterrupt, OSContext* ctx) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitFifoBase(GXFifoObj*, void*, u32) { +asm void GXInitFifoBase(GXFifoObj* fifo, void* base, u32 size) { nofralloc #include "asm/dolphin/gx/GXFifo/GXInitFifoBase.s" } @@ -120,21 +117,17 @@ asm void GXInitFifoBase(GXFifoObj*, void*, u32) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitFifoPtrs(GXFifoObj*, void*, void*) { +asm void GXInitFifoPtrs(GXFifoObj* fifo, void* read_ptr, void* write_ptr) { nofralloc #include "asm/dolphin/gx/GXFifo/GXInitFifoPtrs.s" } #pragma pop /* 8035A7B8-8035A7C4 3550F8 000C+00 1/1 0/0 0/0 .text GXInitFifoLimits */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void GXInitFifoLimits(void) { - nofralloc -#include "asm/dolphin/gx/GXFifo/GXInitFifoLimits.s" +static void GXInitFifoLimits(GXFifoObj* fifo, u32 hi_watermark, u32 lo_watermark) { + fifo->high_wtrmark = hi_watermark; + fifo->low_wtrmark = lo_watermark; } -#pragma pop /* 8035A7C4-8035A8EC 355104 0128+00 1/1 1/1 0/0 .text GXSetCPUFifo */ #pragma push @@ -157,20 +150,16 @@ asm void GXSetGPFifo(void) { #pragma pop /* 8035AA8C-8035AAC0 3553CC 0034+00 0/0 1/1 0/0 .text GXSaveCPUFifo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSaveCPUFifo(GXFifoObj*) { - nofralloc -#include "asm/dolphin/gx/GXFifo/GXSaveCPUFifo.s" +void GXSaveCPUFifo(GXFifoObj* fifo) { + GXFlush(); + __GXSaveCPUFifoAux(fifo); } -#pragma pop /* 8035AAC0-8035AB88 355400 00C8+00 1/1 0/0 0/0 .text __GXSaveCPUFifoAux */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXSaveCPUFifoAux(void) { +asm void __GXSaveCPUFifoAux(GXFifoObj* fifo) { nofralloc #include "asm/dolphin/gx/GXFifo/__GXSaveCPUFifoAux.s" } @@ -180,31 +169,21 @@ asm void __GXSaveCPUFifoAux(void) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetGPStatus(GXBool*, GXBool*, GXBool*, GXBool*, GXBool*) { +asm void GXGetGPStatus(GXBool* overhi, GXBool* underlo, GXBool* read_idle, GXBool* cmd_idle, GXBool* breakpoint) { nofralloc #include "asm/dolphin/gx/GXFifo/GXGetGPStatus.s" } #pragma pop /* 8035ABD8-8035ABE0 355518 0008+00 0/0 1/1 0/0 .text GXGetFifoBase */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* GXGetFifoBase(GXFifoObj*) { - nofralloc -#include "asm/dolphin/gx/GXFifo/GXGetFifoBase.s" +void* GXGetFifoBase(GXFifoObj* fifo) { + return fifo->base; } -#pragma pop /* 8035ABE0-8035ABE8 355520 0008+00 0/0 1/1 0/0 .text GXGetFifoSize */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 GXGetFifoSize(GXFifoObj*) { - nofralloc -#include "asm/dolphin/gx/GXFifo/GXGetFifoSize.s" +u32 GXGetFifoSize(GXFifoObj* fifo) { + return fifo->size; } -#pragma pop /* 8035ABE8-8035AC2C 355528 0044+00 0/0 1/1 0/0 .text GXSetBreakPtCallback */ #pragma push @@ -217,14 +196,14 @@ asm void GXSetBreakPtCallback(void) { #pragma pop /* 8035AC2C-8035AC78 35556C 004C+00 0/0 1/1 0/0 .text __GXFifoInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __GXFifoInit(void) { - nofralloc -#include "asm/dolphin/gx/GXFifo/__GXFifoInit.s" +void __GXFifoInit(void) { + __OSSetInterruptHandler(0x11, GXCPInterruptHandler); + __OSUnmaskInterrupts(0x4000); + __GXCurrentThread = OSGetCurrentThread(); + GXOverflowSuspendInProgress = 0; + CPUFifo = NULL; + GPFifo = NULL; } -#pragma pop /* 8035AC78-8035AC9C 3555B8 0024+00 1/1 0/0 0/0 .text __GXFifoReadEnable */ #pragma push diff --git a/libs/dolphin/gx/GXFrameBuf.cpp b/libs/dolphin/gx/GXFrameBuf.c similarity index 84% rename from libs/dolphin/gx/GXFrameBuf.cpp rename to libs/dolphin/gx/GXFrameBuf.c index 61e1dfff6ed..b5504ae0cb5 100644 --- a/libs/dolphin/gx/GXFrameBuf.cpp +++ b/libs/dolphin/gx/GXFrameBuf.c @@ -11,34 +11,24 @@ // Forward References: // -extern "C" void GXSetDispCopySrc(); -extern "C" void GXSetTexCopySrc(); -extern "C" void GXSetDispCopyDst(); -extern "C" void GXSetTexCopyDst(); -extern "C" void GXSetDispCopyFrame2Field(); -extern "C" void GXSetCopyClamp(); -extern "C" void GXGetNumXfbLines(); -extern "C" void GXGetYScaleFactor(); -extern "C" void GXSetDispCopyYScale(); -extern "C" void GXSetCopyClear(); -extern "C" void GXSetCopyFilter(); -extern "C" void GXSetDispCopyGamma(); -extern "C" void GXCopyDisp(); -extern "C" void GXCopyTex(); -extern "C" void GXClearBoundingBox(); -extern "C" extern u8 GXNtsc480IntDf[60]; -extern "C" extern u8 GXNtsc480Int[60]; -extern "C" extern u8 GXMpal480IntDf[60]; -extern "C" extern u8 GXPal528IntDf[60]; -extern "C" extern u8 GXEurgb60Hz480IntDf[60 + 4 /* padding */]; +void GXSetDispCopyFrame2Field(); +void GXSetCopyClamp(); +void GXSetCopyClear(); +void GXSetDispCopyGamma(); +void GXClearBoundingBox(); +extern u8 GXNtsc480IntDf[60]; +extern u8 GXNtsc480Int[60]; +extern u8 GXMpal480IntDf[60]; +extern u8 GXPal528IntDf[60]; +extern u8 GXEurgb60Hz480IntDf[60 + 4 /* padding */]; // // External References: // -extern "C" void __GetImageTileCount(); -extern "C" void __cvt_fp2unsigned(); -extern "C" extern void* __GXData; +void __GetImageTileCount(); +void __cvt_fp2unsigned(); +extern void* __GXData; // // Declarations: @@ -48,7 +38,7 @@ extern "C" extern void* __GXData; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDispCopySrc() { +asm void GXSetDispCopySrc(u16 left, u16 top, u16 width, u16 height) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopySrc.s" } @@ -58,7 +48,7 @@ asm void GXSetDispCopySrc() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTexCopySrc() { +asm void GXSetTexCopySrc(u16 left, u16 top, u16 width, u16 height) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetTexCopySrc.s" } @@ -68,7 +58,7 @@ asm void GXSetTexCopySrc() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDispCopyDst() { +asm void GXSetDispCopyDst(u16 width, u16 height) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyDst.s" } @@ -78,7 +68,7 @@ asm void GXSetDispCopyDst() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTexCopyDst() { +asm void GXSetTexCopyDst(u16 width, u16 height, GXTexFmt fmt, GXBool mipmap) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetTexCopyDst.s" } @@ -88,7 +78,7 @@ asm void GXSetTexCopyDst() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDispCopyFrame2Field() { +asm void GXSetDispCopyFrame2Field(GXCopyMode mode) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyFrame2Field.s" } @@ -98,7 +88,7 @@ asm void GXSetDispCopyFrame2Field() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetCopyClamp() { +asm void GXSetCopyClamp(GXFBClamp clamp) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetCopyClamp.s" } @@ -116,7 +106,7 @@ SECTION_SDATA2 static f32 lit_179[1 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetNumXfbLines() { +asm u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXGetNumXfbLines.s" } @@ -130,7 +120,7 @@ SECTION_SDATA2 static f64 lit_234 = 4503599627370496.0 /* cast u32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetYScaleFactor() { +asm f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXGetYScaleFactor.s" } @@ -140,7 +130,7 @@ asm void GXGetYScaleFactor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDispCopyYScale() { +asm u32 GXSetDispCopyYScale(f32 y_scale) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyYScale.s" } @@ -150,7 +140,7 @@ asm void GXSetDispCopyYScale() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetCopyClear() { +asm void GXSetCopyClear(GXColor color, u32 clear_z) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetCopyClear.s" } @@ -160,7 +150,7 @@ asm void GXSetCopyClear() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetCopyFilter() { +asm void GXSetCopyFilter(GXBool antialias, u8 pattern[12][2], GXBool vf, u8 vfilter[7]) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetCopyFilter.s" } @@ -170,7 +160,7 @@ asm void GXSetCopyFilter() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDispCopyGamma() { +asm void GXSetDispCopyGamma(GXGamma gamma) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyGamma.s" } @@ -180,7 +170,7 @@ asm void GXSetDispCopyGamma() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXCopyDisp() { +asm void GXCopyDisp(void* dst, GXBool clear) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXCopyDisp.s" } @@ -190,7 +180,7 @@ asm void GXCopyDisp() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXCopyTex() { +asm void GXCopyTex(void* dst, GXBool clear) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXCopyTex.s" } @@ -200,7 +190,7 @@ asm void GXCopyTex() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXClearBoundingBox() { +asm void GXClearBoundingBox(void) { nofralloc #include "asm/dolphin/gx/GXFrameBuf/GXClearBoundingBox.s" } diff --git a/libs/dolphin/gx/GXGeometry.c b/libs/dolphin/gx/GXGeometry.c new file mode 100644 index 00000000000..78efffbc1ef --- /dev/null +++ b/libs/dolphin/gx/GXGeometry.c @@ -0,0 +1,166 @@ +/** + * GXGeometry.c + * Description: + */ + +#include "dolphin/gx/GXGeometry.h" +#include "dolphin/gx/GX.h" + +/* 8035C6E4-8035C764 357024 0080+00 0/0 4/4 0/0 .text __GXSetDirtyState */ +void __GXSetDirtyState(void) { + u32 dirtyFlags = __GXData->field_0x5ac; + + if (dirtyFlags & 1) { + __GXSetSUTexRegs(); + } + + if (dirtyFlags & 2) { + __GXUpdateBPMask(); + } + + if (dirtyFlags & 4) { + __GXSetGenMode(); + } + + if (dirtyFlags & 8) { + __GXSetVCD(); + } + + if (dirtyFlags & 0x10) { + __GXSetVAT(); + } + + if (dirtyFlags & 0x18) { + __GXCalculateVLim(); + } + + __GXData->field_0x5ac = 0; +} + +/* 8035C764-8035C834 3570A4 00D0+00 0/0 66/66 3/3 .text GXBegin */ +void GXBegin(GXPrimitive type, GXVtxFmt fmt, u16 vert_num) { + GXData* data = __GXData; + u32 dirtyFlags = data->field_0x5ac; + + if (data->field_0x5ac != 0) { + if (dirtyFlags & 1) { + __GXSetSUTexRegs(); + } + + if (dirtyFlags & 2) { + __GXUpdateBPMask(); + } + + if (dirtyFlags & 4) { + __GXSetGenMode(); + } + + if (dirtyFlags & 8) { + __GXSetVCD(); + } + + if (dirtyFlags & 0x10) { + __GXSetVAT(); + } + + if (dirtyFlags & 0x18) { + __GXCalculateVLim(); + } + + __GXData->field_0x5ac = 0; + } + + if (*(u32*)__GXData == 0) { + __GXSendFlushPrim(); + } + + GXFIFO.u8 = fmt | type; + GXFIFO.u16 = vert_num; +} + +/* 8035C834-8035C8BC 357174 0088+00 1/1 1/1 0/0 .text __GXSendFlushPrim */ +void __GXSendFlushPrim(void) { + u32 i; + u32 sz = __GXData->field_0x4 * __GXData->field_0x6; + + GXFIFO.u8 = 0x98; + GXFIFO.u16 = __GXData->field_0x4; + + for (i = 0; i < sz; i += 4) { + GXFIFO.s32 = 0; + } + + __GXData->field_0x2 = 1; +} + +/* 8035C8BC-8035C8FC 3571FC 0040+00 0/0 8/8 0/0 .text GXSetLineWidth */ +void GXSetLineWidth(u8 width, GXTexOffset offsets) { + GXData* data = __GXData; + + GX_BITFIELD_SET(data->field_0x7c, 24, 8, width); + GX_BITFIELD_SET(data->field_0x7c, 13, 3, offsets); + GXFIFO.u8 = 0x61; + GXFIFO.u32 = data->field_0x7c; + data->field_0x2 = 0; +} + +/* 8035C8FC-8035C93C 35723C 0040+00 0/0 5/5 0/0 .text GXSetPointSize */ +void GXSetPointSize(u8 size, GXTexOffset offsets) { + GXData* data = __GXData; + + GX_BITFIELD_SET(data->field_0x7c, 16, 8, size); + GX_BITFIELD_SET(data->field_0x7c, 10, 3, offsets); + GXFIFO.u8 = 0x61; + GXFIFO.u32 = data->field_0x7c; + data->field_0x2 = 0; +} + +/* 8035C93C-8035C984 35727C 0048+00 0/0 3/3 0/0 .text GXEnableTexOffsets */ +void GXEnableTexOffsets(GXTexCoordID coord, GXBool line, GXBool point) { + GXData* data = __GXData; + + GX_BITFIELD_SET(data->field_0xb8[coord], 13, 1, line); + GX_BITFIELD_SET(data->field_0xb8[coord], 12, 1, point); + GXFIFO.u8 = 0x61; + GXFIFO.u32 = data->field_0xb8[coord]; + data->field_0x2 = 0; +} + +/* 8035C984-8035C9AC 3572C4 0028+00 0/0 33/33 5/5 .text GXSetCullMode */ +// extra mr +#ifdef NONMATCHING +void GXSetCullMode(GXCullMode mode) { + GXData* data = __GXData; + + mode = (mode << 1 & 2 | mode >> 1 & 1); + GX_BITFIELD_SET(data->field_0x204, 16, 2, mode); + data->field_0x5ac |= 4; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void GXSetCullMode(GXCullMode mode) { + nofralloc +#include "asm/dolphin/gx/GXGeometry/GXSetCullMode.s" +} +#pragma pop +#endif + +/* 8035C9AC-8035C9E0 3572EC 0034+00 0/0 6/6 0/0 .text GXSetCoPlanar */ +void GXSetCoPlanar(GXBool enable) { + GXData* data = __GXData; + + GX_BITFIELD_SET(data->field_0x204, 12, 1, enable); + GXFIFO.u8 = 0x61; + GXFIFO.u32 = 0xFE080000; + GXFIFO.u8 = 0x61; + GXFIFO.u32 = data->field_0x204; +} + +/* 8035C9E0-8035CA04 357320 0024+00 2/2 0/0 0/0 .text __GXSetGenMode */ +void __GXSetGenMode(void) { + GXFIFO.u8 = 0x61; + GXFIFO.u32 = __GXData->field_0x204; + __GXData->field_0x2 = 0; +} diff --git a/libs/dolphin/gx/GXGeometry.cpp b/libs/dolphin/gx/GXGeometry.cpp deleted file mode 100644 index 6edd3bab017..00000000000 --- a/libs/dolphin/gx/GXGeometry.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: GXGeometry -// - -#include "dolphin/gx/GXGeometry.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void __GXSetDirtyState(); -extern "C" void GXBegin(); -extern "C" void __GXSendFlushPrim(); -extern "C" void GXSetLineWidth(); -extern "C" void GXSetPointSize(); -extern "C" void GXEnableTexOffsets(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetCoPlanar(); -extern "C" void __GXSetGenMode(); - -// -// External References: -// - -extern "C" void __GXSetVCD(); -extern "C" void __GXCalculateVLim(); -extern "C" void __GXSetVAT(); -extern "C" void __GXSetSUTexRegs(); -extern "C" void __GXUpdateBPMask(); -extern "C" extern void* __GXData; - -// -// Declarations: -// - -/* 8035C6E4-8035C764 357024 0080+00 0/0 4/4 0/0 .text __GXSetDirtyState */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __GXSetDirtyState() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/__GXSetDirtyState.s" -} -#pragma pop - -/* 8035C764-8035C834 3570A4 00D0+00 0/0 66/66 3/3 .text GXBegin */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXBegin() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXBegin.s" -} -#pragma pop - -/* 8035C834-8035C8BC 357174 0088+00 1/1 1/1 0/0 .text __GXSendFlushPrim */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __GXSendFlushPrim() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/__GXSendFlushPrim.s" -} -#pragma pop - -/* 8035C8BC-8035C8FC 3571FC 0040+00 0/0 8/8 0/0 .text GXSetLineWidth */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetLineWidth() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXSetLineWidth.s" -} -#pragma pop - -/* 8035C8FC-8035C93C 35723C 0040+00 0/0 5/5 0/0 .text GXSetPointSize */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetPointSize() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXSetPointSize.s" -} -#pragma pop - -/* 8035C93C-8035C984 35727C 0048+00 0/0 3/3 0/0 .text GXEnableTexOffsets */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXEnableTexOffsets() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXEnableTexOffsets.s" -} -#pragma pop - -/* 8035C984-8035C9AC 3572C4 0028+00 0/0 33/33 5/5 .text GXSetCullMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetCullMode() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXSetCullMode.s" -} -#pragma pop - -/* 8035C9AC-8035C9E0 3572EC 0034+00 0/0 6/6 0/0 .text GXSetCoPlanar */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetCoPlanar() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXSetCoPlanar.s" -} -#pragma pop - -/* 8035C9E0-8035CA04 357320 0024+00 2/2 0/0 0/0 .text __GXSetGenMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __GXSetGenMode() { - nofralloc -#include "asm/dolphin/gx/GXGeometry/__GXSetGenMode.s" -} -#pragma pop diff --git a/libs/dolphin/gx/GXInit.cpp b/libs/dolphin/gx/GXInit.c similarity index 78% rename from libs/dolphin/gx/GXInit.cpp rename to libs/dolphin/gx/GXInit.c index 609b8eeba36..bcde2384286 100644 --- a/libs/dolphin/gx/GXInit.cpp +++ b/libs/dolphin/gx/GXInit.c @@ -12,63 +12,48 @@ // Forward References: // -extern "C" void __GXDefaultTexRegionCallback(); -extern "C" void __GXDefaultTlutRegionCallback(); -extern "C" void __GXShutdown(); -extern "C" void __GXInitRevisionBits(); -extern "C" void __GXInitGX(); +void __GXShutdown(); +void __GXInitRevisionBits(); +void __GXInitGX(); // // External References: // -extern "C" void PPCSync(); -extern "C" void PPCMfhid2(); -extern "C" void PPCMthid2(); -extern "C" void PPCMtwpar(); -extern "C" void OSRegisterVersion(); -extern "C" void OSRegisterResetFunction(); -extern "C" void OSGetTime(); -extern "C" void VIGetTvFormat(); -extern "C" void GXSetCPUFifo(); -extern "C" void GXSetGPFifo(); -extern "C" void GXSetBreakPtCallback(); -extern "C" void __GXFifoInit(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmtv(); -extern "C" void GXInvalidateVtxCache(); -extern "C" void __GXAbort(); -extern "C" void GXPokeAlphaMode(); -extern "C" void GXPokeAlphaRead(); -extern "C" void GXPokeAlphaUpdate(); -extern "C" void GXPokeBlendMode(); -extern "C" void GXPokeColorUpdate(); -extern "C" void GXPokeDstAlpha(); -extern "C" void GXPokeDither(); -extern "C" void GXPokeZMode(); -extern "C" void GXSetDrawSyncCallback(); -extern "C" void __GXPEInit(); -extern "C" void GXSetDispCopyFrame2Field(); -extern "C" void GXClearBoundingBox(); -extern "C" void GXGetTexObjFmt(); -extern "C" void GXGetTexObjMipMap(); -extern "C" void GXInitTlutRegion(); -extern "C" void GXInvalidateTexAll(); -extern "C" void GXSetTexRegionCallback(); -extern "C" void GXSetTlutRegionCallback(); -extern "C" void __GXSetTmemConfig(); -extern "C" void __GXSetIndirectMask(); -extern "C" void __GXFlushTextureState(); -extern "C" void GXSetFieldMask(); -extern "C" void GXSetFieldMode(); -extern "C" void GXSetProjectionv(); -extern "C" void GXSetScissorBoxOffset(); -extern "C" void GXSetGPMetric(); -extern "C" void GXClearGPMetric(); -extern "C" extern u8 GXNtsc480IntDf[60]; -extern "C" extern u8 GXMpal480IntDf[60]; -extern "C" extern u8 GXPal528IntDf[60]; -extern "C" extern u8 GXEurgb60Hz480IntDf[60 + 4 /* padding */]; +void PPCSync(); +void PPCMfhid2(); +void PPCMthid2(); +void PPCMtwpar(); +void OSRegisterVersion(); +void OSRegisterResetFunction(); +void VIGetTvFormat(); +void GXSetCPUFifo(); +void GXSetGPFifo(); +void GXSetBreakPtCallback(); +void __GXFifoInit(); +void GXClearVtxDesc(); +void GXSetVtxAttrFmtv(); +void GXInvalidateVtxCache(); +void __GXAbort(); +void GXPokeAlphaRead(); +void GXPokeBlendMode(); +void GXSetDrawSyncCallback(); +void __GXPEInit(); +void GXSetDispCopyFrame2Field(); +void GXClearBoundingBox(); +void GXInitTlutRegion(); +void GXInvalidateTexAll(); +void __GXSetTmemConfig(); +void __GXSetIndirectMask(); +void __GXFlushTextureState(); +void GXSetProjectionv(); +void GXSetScissorBoxOffset(); +void GXSetGPMetric(); +void GXClearGPMetric(); +extern u8 GXNtsc480IntDf[60]; +extern u8 GXMpal480IntDf[60]; +extern u8 GXPal528IntDf[60]; +extern u8 GXEurgb60Hz480IntDf[60 + 4 /* padding */]; // // Declarations: @@ -88,54 +73,70 @@ SECTION_SDATA2 extern GXData* __GXData = &gxData; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXDefaultTexRegionCallback() { +asm GXTexRegion* __GXDefaultTexRegionCallback(GXTexObj* obj, GXTexMapID mapID) { nofralloc #include "asm/dolphin/gx/GXInit/__GXDefaultTexRegionCallback.s" } #pragma pop /* 80359318-8035933C 353C58 0024+00 1/1 0/0 0/0 .text __GXDefaultTlutRegionCallback */ +// blr instead of b +#ifdef NONMATCHING +GXTlutRegion* __GXDefaultTlutRegionCallback(u32 tlut) { + GXTlutRegion* region; + + if (tlut >= 20) { + region = NULL; + } else { + region = &__GXData->field_0x388[tlut]; + } + + return region; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXDefaultTlutRegionCallback() { +asm GXTlutRegion* __GXDefaultTlutRegionCallback(u32 tlut) { nofralloc #include "asm/dolphin/gx/GXInit/__GXDefaultTlutRegionCallback.s" } #pragma pop +#endif + +/* 80451944-80451948 000E44 0004+00 1/1 0/0 0/0 .sbss resetFuncRegistered$145 */ +/* static */ u8 resetFuncRegistered[4]; + +/* 80451940-80451944 000E40 0004+00 1/1 0/0 0/0 .sbss calledOnce$37 */ +/* static */ u8 calledOnce[4]; + +/* 8045193C-80451940 000E3C 0004+00 1/1 0/0 0/0 .sbss None */ +/* static */ u8 data_8045193C[4]; + +/* 80451938-8045193C 000E38 0004+00 1/1 0/0 0/0 .sbss time$36 */ +/* static */ u8 time[4]; + +/* 80451930-80451938 000E30 0004+04 1/1 0/0 0/0 .sbss peCount$35 */ +/* static */ u8 peCount[4 + 4 /* padding */]; + +/* 8045192C-80451930 000E2C 0004+00 2/2 2/2 0/0 .sbss __memReg */ +u8 __memReg[4]; + +/* 80451928-8045192C 000E28 0004+00 1/1 11/11 0/0 .sbss __peReg */ +u8 __peReg[4]; + +/* 80451924-80451928 000E24 0004+00 2/2 12/12 0/0 .sbss __cpReg */ +u16* __cpReg; /* ############################################################################################## */ /* 80451920-80451924 000E20 0004+00 1/1 2/2 0/0 .sbss __piReg */ u32* __piReg; -/* 80451924-80451928 000E24 0004+00 2/2 12/12 0/0 .sbss __cpReg */ -u16* __cpReg; - -/* 80451928-8045192C 000E28 0004+00 1/1 11/11 0/0 .sbss __peReg */ -extern u8 __peReg[4]; -u8 __peReg[4]; - -/* 8045192C-80451930 000E2C 0004+00 2/2 2/2 0/0 .sbss __memReg */ -extern u8 __memReg[4]; -u8 __memReg[4]; - -/* 80451930-80451938 000E30 0004+04 1/1 0/0 0/0 .sbss peCount$35 */ -static u8 peCount[4 + 4 /* padding */]; - -/* 80451938-8045193C 000E38 0004+00 1/1 0/0 0/0 .sbss time$36 */ -static u8 time[4]; - -/* 8045193C-80451940 000E3C 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_8045193C[4]; - -/* 80451940-80451944 000E40 0004+00 1/1 0/0 0/0 .sbss calledOnce$37 */ -static u8 calledOnce[4]; - /* 8035933C-803594CC 353C7C 0190+00 1/0 0/0 0/0 .text __GXShutdown */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXShutdown() { +asm void __GXShutdown(s32) { nofralloc #include "asm/dolphin/gx/GXInit/__GXShutdown.s" } @@ -145,7 +146,7 @@ asm void __GXShutdown() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXInitRevisionBits() { +asm void __GXInitRevisionBits(void) { nofralloc #include "asm/dolphin/gx/GXInit/__GXInitRevisionBits.s" } @@ -222,9 +223,6 @@ SECTION_DATA static void* GXResetFuncInfo[4 + 1 /* padding */] = { /* 80450A78-80450A80 -00001 0004+04 1/1 0/0 0/0 .sdata __GXVersion */ SECTION_SDATA static const char* __GXVersion = lit_1; -/* 80451944-80451948 000E44 0004+00 1/1 0/0 0/0 .sbss resetFuncRegistered$145 */ -static u8 resetFuncRegistered[4]; - /* 80456584-80456588 004B84 0004+00 1/1 0/0 0/0 .sdata2 @267 */ SECTION_SDATA2 static f32 lit_267 = 16777216.0f; @@ -240,7 +238,7 @@ SECTION_SDATA2 static u8 lit_268[4] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm GXFifoObj* GXInit(void*, u32) { +asm GXFifoObj* GXInit(void* base, u32 size) { nofralloc #include "asm/dolphin/gx/GXInit/GXInit.s" } @@ -274,7 +272,7 @@ SECTION_SDATA2 static f64 lit_334 = 4503599627370496.0 /* cast u32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXInitGX() { +asm void __GXInitGX(void) { nofralloc #include "asm/dolphin/gx/GXInit/__GXInitGX.s" } diff --git a/libs/dolphin/gx/GXLight.c b/libs/dolphin/gx/GXLight.c new file mode 100644 index 00000000000..60d857b207a --- /dev/null +++ b/libs/dolphin/gx/GXLight.c @@ -0,0 +1,232 @@ +/** + * GXLight.c + * Description: + */ + +#include "dolphin/gx/GXLight.h" +#include "MSL_C/math.h" +#include "dolphin/gx/GX.h" + +/* 8035D630-8035D64C 357F70 001C+00 0/0 1/1 0/0 .text GXInitLightAttn */ +void GXInitLightAttn(GXLightObj* obj, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2) { + obj->a0 = a0; + obj->a1 = a1; + obj->a2 = a2; + obj->k0 = k0; + obj->k1 = k1; + obj->k2 = k2; +} + +/* 8035D64C-8035D7DC 357F8C 0190+00 1/0 2/2 0/0 .text GXInitLightSpot */ +void GXInitLightSpot(GXLightObj* obj, f32 cutoff, GXSpotFn spot_fn) { + f32 rad; + f32 a, b, c, d; + + if (cutoff <= 0.0f || cutoff > 90.0f) { + spot_fn = GX_SP_OFF; + } + + rad = cosf((3.1415927f * cutoff) / 180.0f); + + switch (spot_fn) { + case GX_SP_FLAT: + a = -1000.0f * rad; + b = 1000.0f; + c = 0.0f; + break; + case GX_SP_COS: + b = 1.0f / (1.0f - rad); + a = -rad * b; + c = 0.0f; + break; + case GX_SP_COS2: + c = 1.0f / (1.0f - rad); + a = 0.0f; + b = -rad * c; + break; + case GX_SP_SHARP: + d = 1.0f / ((1.0f - rad) * (1.0f - rad)); + a = (rad * (rad - 2.0f)) * d; + b = 2.0f * d; + c = -d; + break; + case GX_SP_RING1: + d = 1.0f / ((1.0f - rad) * (1.0f - rad)); + c = -4.0f * d; + a = c * rad; + b = 4.0f * (1.0f + rad) * d; + break; + case GX_SP_RING2: + d = 1.0f / ((1.0f - rad) * (1.0f - rad)); + a = 1.0f - 2.0f * rad * rad * d; + b = 4.0f * rad * d; + c = -2.0f * d; + break; + case GX_SP_OFF: + default: + a = 1.0f; + b = 0.0f; + c = 0.0f; + break; + } + + obj->a0 = a; + obj->a1 = b; + obj->a2 = c; +} + +/* 8035D7DC-8035D8AC 35811C 00D0+00 0/0 2/2 0/0 .text GXInitLightDistAttn */ +void GXInitLightDistAttn(GXLightObj* obj, f32 dist, f32 brightness, GXDistAttnFn dist_fn) { + f32 a, b, c; + + if (dist < 0.0f) { + dist_fn = GX_DA_OFF; + } + + if (brightness <= 0.0f || brightness >= 1.0f) { + dist_fn = GX_DA_OFF; + } + + switch (dist_fn) { + case GX_DA_GENTLE: + a = 1.0f; + b = (1.0f - brightness) / (brightness * dist); + c = 0.0f; + break; + case GX_DA_MEDIUM: + a = 1.0f; + b = (0.5f * (1.0f - brightness)) / (brightness * dist); + c = (0.5f * (1.0f - brightness)) / (dist * (brightness * dist)); + break; + case GX_DA_STEEP: + a = 1.0f; + b = 0.0f; + c = (1.0f - brightness) / (dist * (brightness * dist)); + break; + case GX_DA_OFF: + default: + a = 1.0f; + b = 0.0f; + c = 0.0f; + break; + } + + obj->k0 = a; + obj->k1 = b; + obj->k2 = c; +} + +/* 8035D8AC-8035D8BC 3581EC 0010+00 0/0 3/3 0/0 .text GXInitLightPos */ +void GXInitLightPos(GXLightObj* obj, f32 x, f32 y, f32 z) { + obj->posX = x; + obj->posY = y; + obj->posZ = z; +} + +/* 8035D8BC-8035D8D8 3581FC 001C+00 0/0 3/3 0/0 .text GXInitLightDir */ +void GXInitLightDir(GXLightObj* obj, f32 x, f32 y, f32 z) { + obj->dirX = -x; + obj->dirY = -y; + obj->dirZ = -z; +} + +/* 8035D8D8-8035D8E4 358218 000C+00 0/0 3/3 0/0 .text GXInitLightColor */ +void GXInitLightColor(GXLightObj* obj, GXColor color) { + *(u32*)&obj->color = *(u32*)&color; +} + +/* 8035D8E4-8035D960 358224 007C+00 0/0 4/4 2/2 .text GXLoadLightObjImm */ +asm void GXLoadLightObjImm(register GXLightObj* obj, register GXLightID id) { + // clang-format off + nofralloc + + cntlzw r0, id + subfic r0, r0, 0x1f + rlwinm r5, r0, 4, 0x19, 0x1b + lis r4, 0xCC01 + li r0, 0x10 + addi r5, r5, 0x600 + stb r0, 0x8000(r4) + oris r0, r5, 0xf + stwu r0, -0x8000(r4) + lwz r0, 0xc(r3) + xor r6, r6, r6 + psq_l f5, 16(obj), 0, 0 + psq_l f4, 24(obj), 0, 0 + psq_l f3, 32(obj), 0, 0 + psq_l f2, 40(obj), 0, 0 + psq_l f1, 48(obj), 0, 0 + psq_l f0, 56(obj), 0, 0 + stw r6, 0(r4) + stw r6, 0(r4) + stw r6, 0(r4) + stw r0, 0(r4) + psq_st f5, 0(r4), 0, 0 + psq_st f4, 0(r4), 0, 0 + psq_st f3, 0(r4), 0, 0 + psq_st f2, 0(r4), 0, 0 + psq_st f1, 0(r4), 0, 0 + psq_st f0, 0(r4), 0, 0 + + lwz r3, __GXData(r2) + li r0, 1 + sth r0, 2(r3) + + blr + // clang-format on +} + +/* 8035D960-8035DA48 3582A0 00E8+00 0/0 7/7 4/4 .text GXSetChanAmbColor */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void GXSetChanAmbColor(GXChannelID channel, GXColor color) { + nofralloc +#include "asm/dolphin/gx/GXLight/GXSetChanAmbColor.s" +} +#pragma pop + +/* 8035DA48-8035DB30 358388 00E8+00 0/0 20/20 2/2 .text GXSetChanMatColor */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void GXSetChanMatColor(GXChannelID channel, GXColor color) { + nofralloc +#include "asm/dolphin/gx/GXLight/GXSetChanMatColor.s" +} +#pragma pop + +/* 8035DB30-8035DB6C 358470 003C+00 0/0 51/51 6/6 .text GXSetNumChans */ +// 1 wrong reg +#ifdef NONMATCHING +void GXSetNumChans(u8 chan_num) { + GXData* data = __GXData; + GX_BITFIELD_SET(data->field_0x204, 25, 3, chan_num); + + GXFIFO.u8 = 0x10; + GXFIFO.s32 = 0x1009; + GXFIFO.s32 = chan_num; + + data->field_0x5ac |= 0x4; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void GXSetNumChans(u8 chan_num) { + nofralloc +#include "asm/dolphin/gx/GXLight/GXSetNumChans.s" +} +#pragma pop +#endif + +/* 8035DB6C-8035DC1C 3584AC 00B0+00 0/0 34/34 4/4 .text GXSetChanCtrl */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void GXSetChanCtrl(GXChannelID channel, GXBool enable, GXColorSrc amb_src, GXColorSrc mat_src, + u32 light_mask, GXDiffuseFn diff_fn, GXAttnFn attn_fn) { + nofralloc +#include "asm/dolphin/gx/GXLight/GXSetChanCtrl.s" +} +#pragma pop diff --git a/libs/dolphin/gx/GXLight.cpp b/libs/dolphin/gx/GXLight.cpp deleted file mode 100644 index 56681864f25..00000000000 --- a/libs/dolphin/gx/GXLight.cpp +++ /dev/null @@ -1,201 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: GXLight -// - -#include "dolphin/gx/GXLight.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void GXInitLightAttn(); -extern "C" void GXInitLightSpot(); -extern "C" void GXInitLightDistAttn(); -extern "C" void GXInitLightPos(); -extern "C" void GXInitLightDir(); -extern "C" void GXInitLightColor(); -extern "C" void GXLoadLightObjImm(); -extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); - -// -// External References: -// - -extern "C" void cosf(); -extern "C" extern void* __GXData; - -// -// Declarations: -// - -/* 8035D630-8035D64C 357F70 001C+00 0/0 1/1 0/0 .text GXInitLightAttn */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXInitLightAttn() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXInitLightAttn.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803D2578-803D2598 -00001 001C+04 1/1 0/0 0/0 .data @145 */ -SECTION_DATA static void* lit_145[7 + 1 /* padding */] = { - (void*)(((char*)GXInitLightSpot) + 0x160), - (void*)(((char*)GXInitLightSpot) + 0x70), - (void*)(((char*)GXInitLightSpot) + 0x84), - (void*)(((char*)GXInitLightSpot) + 0xA4), - (void*)(((char*)GXInitLightSpot) + 0xC4), - (void*)(((char*)GXInitLightSpot) + 0xF0), - (void*)(((char*)GXInitLightSpot) + 0x124), - /* padding */ - NULL, -}; - -/* 804565B8-804565BC 004BB8 0004+00 2/2 0/0 0/0 .sdata2 @134 */ -SECTION_SDATA2 static u8 lit_134[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 804565BC-804565C0 004BBC 0004+00 1/1 0/0 0/0 .sdata2 @135 */ -SECTION_SDATA2 static f32 lit_135 = 90.0f; - -/* 804565C0-804565C4 004BC0 0004+00 1/1 0/0 0/0 .sdata2 @136 */ -SECTION_SDATA2 static f32 lit_136 = 3.1415927410125732f; - -/* 804565C4-804565C8 004BC4 0004+00 1/1 0/0 0/0 .sdata2 @137 */ -SECTION_SDATA2 static f32 lit_137 = 180.0f; - -/* 804565C8-804565CC 004BC8 0004+00 1/1 0/0 0/0 .sdata2 @138 */ -SECTION_SDATA2 static f32 lit_138 = -1000.0f; - -/* 804565CC-804565D0 004BCC 0004+00 1/1 0/0 0/0 .sdata2 @139 */ -SECTION_SDATA2 static f32 lit_139 = 1000.0f; - -/* 804565D0-804565D4 004BD0 0004+00 2/2 0/0 0/0 .sdata2 @140 */ -SECTION_SDATA2 static f32 lit_140 = 1.0f; - -/* 804565D4-804565D8 004BD4 0004+00 1/1 0/0 0/0 .sdata2 @141 */ -SECTION_SDATA2 static f32 lit_141 = 2.0f; - -/* 804565D8-804565DC 004BD8 0004+00 1/1 0/0 0/0 .sdata2 @142 */ -SECTION_SDATA2 static f32 lit_142 = -4.0f; - -/* 804565DC-804565E0 004BDC 0004+00 1/1 0/0 0/0 .sdata2 @143 */ -SECTION_SDATA2 static f32 lit_143 = 4.0f; - -/* 804565E0-804565E4 004BE0 0004+00 1/1 0/0 0/0 .sdata2 @144 */ -SECTION_SDATA2 static f32 lit_144 = -2.0f; - -/* 8035D64C-8035D7DC 357F8C 0190+00 1/0 2/2 0/0 .text GXInitLightSpot */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXInitLightSpot() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXInitLightSpot.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804565E4-804565E8 004BE4 0004+00 1/1 0/0 0/0 .sdata2 @160 */ -SECTION_SDATA2 static f32 lit_160 = 0.5f; - -/* 8035D7DC-8035D8AC 35811C 00D0+00 0/0 2/2 0/0 .text GXInitLightDistAttn */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXInitLightDistAttn() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXInitLightDistAttn.s" -} -#pragma pop - -/* 8035D8AC-8035D8BC 3581EC 0010+00 0/0 3/3 0/0 .text GXInitLightPos */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXInitLightPos() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXInitLightPos.s" -} -#pragma pop - -/* 8035D8BC-8035D8D8 3581FC 001C+00 0/0 3/3 0/0 .text GXInitLightDir */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXInitLightDir() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXInitLightDir.s" -} -#pragma pop - -/* 8035D8D8-8035D8E4 358218 000C+00 0/0 3/3 0/0 .text GXInitLightColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXInitLightColor() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXInitLightColor.s" -} -#pragma pop - -/* 8035D8E4-8035D960 358224 007C+00 0/0 4/4 2/2 .text GXLoadLightObjImm */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXLoadLightObjImm() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXLoadLightObjImm.s" -} -#pragma pop - -/* 8035D960-8035DA48 3582A0 00E8+00 0/0 7/7 4/4 .text GXSetChanAmbColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetChanAmbColor() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXSetChanAmbColor.s" -} -#pragma pop - -/* 8035DA48-8035DB30 358388 00E8+00 0/0 20/20 2/2 .text GXSetChanMatColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetChanMatColor() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXSetChanMatColor.s" -} -#pragma pop - -/* 8035DB30-8035DB6C 358470 003C+00 0/0 51/51 6/6 .text GXSetNumChans */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetNumChans() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXSetNumChans.s" -} -#pragma pop - -/* 8035DB6C-8035DC1C 3584AC 00B0+00 0/0 34/34 4/4 .text GXSetChanCtrl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetChanCtrl() { - nofralloc -#include "asm/dolphin/gx/GXLight/GXSetChanCtrl.s" -} -#pragma pop diff --git a/libs/dolphin/gx/GXMisc.cpp b/libs/dolphin/gx/GXMisc.c similarity index 76% rename from libs/dolphin/gx/GXMisc.cpp rename to libs/dolphin/gx/GXMisc.c index efe46362cc9..ed320eef64e 100644 --- a/libs/dolphin/gx/GXMisc.cpp +++ b/libs/dolphin/gx/GXMisc.c @@ -11,50 +11,43 @@ // Forward References: // -extern "C" void GXSetMisc(); -extern "C" void GXFlush(); -extern "C" void __GXAbort(); -extern "C" void GXAbortFrame(); -extern "C" void GXSetDrawDone(); -extern "C" void GXDrawDone(); -extern "C" void GXPixModeSync(); -extern "C" void GXPokeAlphaMode(); -extern "C" void GXPokeAlphaRead(); -extern "C" void GXPokeAlphaUpdate(); -extern "C" void GXPokeBlendMode(); -extern "C" void GXPokeColorUpdate(); -extern "C" void GXPokeDstAlpha(); -extern "C" void GXPokeDither(); -extern "C" void GXPokeZMode(); -extern "C" void GXPeekZ(); -extern "C" void GXSetDrawSyncCallback(); -extern "C" static void GXTokenInterruptHandler(); -extern "C" void GXSetDrawDoneCallback(); -extern "C" static void GXFinishInterruptHandler(); -extern "C" void __GXPEInit(); +void GXSetMisc(); +void GXFlush(); +void __GXAbort(); +void GXAbortFrame(); +void GXSetDrawDone(); +void GXDrawDone(); +void GXPixModeSync(); +void GXPokeAlphaRead(); +void GXPokeBlendMode(); +void GXSetDrawSyncCallback(); +static void GXTokenInterruptHandler(); +void GXSetDrawDoneCallback(); +static void GXFinishInterruptHandler(); +void __GXPEInit(); // // External References: // -extern "C" void PPCSync(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void OSInitThreadQueue(); -extern "C" void OSSleepThread(); -extern "C" void OSWakeupThread(); -extern "C" void OSGetTime(); -extern "C" void __GXInitRevisionBits(); -extern "C" void __GXCleanGPFifo(); -extern "C" void GXGetGPFifo(); -extern "C" void __GXSetDirtyState(); -extern "C" extern u8 __peReg[4]; -extern "C" extern u8 __memReg[4]; -extern "C" extern void* __GXData; +void PPCSync(); +void OSSetCurrentContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSUnmaskInterrupts(); +void OSInitThreadQueue(); +void OSSleepThread(); +void OSWakeupThread(); +void OSGetTime(); +void __GXInitRevisionBits(); +void __GXCleanGPFifo(); +void GXGetGPFifo(); +void __GXSetDirtyState(); +extern u8 __peReg[4]; +extern u8 __memReg[4]; +extern void* __GXData; // // Declarations: @@ -64,7 +57,7 @@ extern "C" extern void* __GXData; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetMisc() { +asm void GXSetMisc(u32 id, u32 value) { nofralloc #include "asm/dolphin/gx/GXMisc/GXSetMisc.s" } @@ -74,7 +67,7 @@ asm void GXSetMisc() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXFlush() { +asm void GXFlush(void) { nofralloc #include "asm/dolphin/gx/GXMisc/GXFlush.s" } @@ -84,7 +77,7 @@ asm void GXFlush() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXAbort() { +asm void __GXAbort(void) { nofralloc #include "asm/dolphin/gx/GXMisc/__GXAbort.s" } @@ -94,7 +87,7 @@ asm void __GXAbort() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXAbortFrame() { +asm void GXAbortFrame(void) { nofralloc #include "asm/dolphin/gx/GXMisc/GXAbortFrame.s" } @@ -114,7 +107,7 @@ static u8 data_80451970[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDrawDone() { +asm void GXSetDrawDone(void) { nofralloc #include "asm/dolphin/gx/GXMisc/GXSetDrawDone.s" } @@ -128,7 +121,7 @@ static u8 FinishQueue[8]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXDrawDone() { +asm void GXDrawDone(void) { nofralloc #include "asm/dolphin/gx/GXMisc/GXDrawDone.s" } @@ -138,7 +131,7 @@ asm void GXDrawDone() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPixModeSync() { +asm void GXPixModeSync(void) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPixModeSync.s" } @@ -148,7 +141,7 @@ asm void GXPixModeSync() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeAlphaMode() { +asm void GXPokeAlphaMode(GXCompare comp, u8 threshold) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeAlphaMode.s" } @@ -158,7 +151,7 @@ asm void GXPokeAlphaMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeAlphaRead() { +asm void GXPokeAlphaRead(GXAlphaReadMode mode) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeAlphaRead.s" } @@ -168,7 +161,7 @@ asm void GXPokeAlphaRead() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeAlphaUpdate() { +asm void GXPokeAlphaUpdate(GXBool enable_update) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeAlphaUpdate.s" } @@ -178,7 +171,7 @@ asm void GXPokeAlphaUpdate() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeBlendMode() { +asm void GXPokeBlendMode(GXBlendMode mode, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeBlendMode.s" } @@ -188,7 +181,7 @@ asm void GXPokeBlendMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeColorUpdate() { +asm void GXPokeColorUpdate(GXBool enable_update) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeColorUpdate.s" } @@ -198,7 +191,7 @@ asm void GXPokeColorUpdate() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeDstAlpha() { +asm void GXPokeDstAlpha(GXBool enable, u8 alpha) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeDstAlpha.s" } @@ -208,7 +201,7 @@ asm void GXPokeDstAlpha() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeDither() { +asm void GXPokeDither(GXBool enable) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeDither.s" } @@ -218,7 +211,7 @@ asm void GXPokeDither() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPokeZMode() { +asm void GXPokeZMode(GXBool enable_compare, GXCompare comp) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPokeZMode.s" } @@ -228,7 +221,7 @@ asm void GXPokeZMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXPeekZ() { +asm void GXPeekZ(u16 x, u16 y, u32* z) { nofralloc #include "asm/dolphin/gx/GXMisc/GXPeekZ.s" } @@ -238,7 +231,7 @@ asm void GXPeekZ() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDrawSyncCallback() { +asm void GXSetDrawSyncCallback(GXDrawSyncCallback callback) { nofralloc #include "asm/dolphin/gx/GXMisc/GXSetDrawSyncCallback.s" } @@ -258,7 +251,7 @@ static asm void GXTokenInterruptHandler() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDrawDoneCallback() { +asm void GXSetDrawDoneCallback(GXDrawDoneCallback callback) { nofralloc #include "asm/dolphin/gx/GXMisc/GXSetDrawDoneCallback.s" } @@ -278,7 +271,7 @@ static asm void GXFinishInterruptHandler() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXPEInit() { +asm void __GXPEInit(void) { nofralloc #include "asm/dolphin/gx/GXMisc/__GXPEInit.s" } diff --git a/libs/dolphin/gx/GXPerf.cpp b/libs/dolphin/gx/GXPerf.c similarity index 93% rename from libs/dolphin/gx/GXPerf.cpp rename to libs/dolphin/gx/GXPerf.c index f436e2daa26..c1b0c59cc84 100644 --- a/libs/dolphin/gx/GXPerf.cpp +++ b/libs/dolphin/gx/GXPerf.c @@ -11,16 +11,16 @@ // Forward References: // -extern "C" void GXSetGPMetric(); -extern "C" void GXClearGPMetric(); -extern "C" void GXReadXfRasMetric(); +void GXSetGPMetric(); +void GXClearGPMetric(); +void GXReadXfRasMetric(); // // External References: // -extern "C" extern u8 __cpReg[4]; -extern "C" extern void* __GXData; +extern u8 __cpReg[4]; +extern void* __GXData; // // Declarations: @@ -89,7 +89,7 @@ SECTION_DATA static void* lit_181[36 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetGPMetric() { +asm void GXSetGPMetric(u32 perf0, u32 perf1) { nofralloc #include "asm/dolphin/gx/GXPerf/GXSetGPMetric.s" } @@ -99,7 +99,7 @@ asm void GXSetGPMetric() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXClearGPMetric() { +asm void GXClearGPMetric(void) { nofralloc #include "asm/dolphin/gx/GXPerf/GXClearGPMetric.s" } @@ -109,7 +109,7 @@ asm void GXClearGPMetric() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXReadXfRasMetric() { +asm void GXReadXfRasMetric(u32* param_0, u32* param_1, u32* param_2, u32* param_3) { nofralloc #include "asm/dolphin/gx/GXPerf/GXReadXfRasMetric.s" } diff --git a/libs/dolphin/gx/GXPixel.cpp b/libs/dolphin/gx/GXPixel.c similarity index 83% rename from libs/dolphin/gx/GXPixel.cpp rename to libs/dolphin/gx/GXPixel.c index 01e2fef9ee0..c2b50379073 100644 --- a/libs/dolphin/gx/GXPixel.cpp +++ b/libs/dolphin/gx/GXPixel.c @@ -11,26 +11,16 @@ // Forward References: // -extern "C" void GXSetFog(); -extern "C" void GXSetFogRangeAdj(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetColorUpdate(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetPixelFmt(); -extern "C" void GXSetDither(); -extern "C" void GXSetDstAlpha(); -extern "C" void GXSetFieldMask(); -extern "C" void GXSetFieldMode(); +void GXSetBlendMode(); +void GXSetPixelFmt(); // // External References: // -extern "C" void __GXFlushTextureState(); -extern "C" void __cvt_fp2unsigned(); -extern "C" extern void* __GXData; +void __GXFlushTextureState(); +void __cvt_fp2unsigned(); +extern void* __GXData; // // Declarations: @@ -82,7 +72,7 @@ SECTION_SDATA2 static f64 lit_219 = 4503601774854144.0 /* cast s32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetFog() { +asm void GXSetFog(GXFogType type, f32 startZ, f32 endZ, f32 nearZ, f32 farZ, GXColor color) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetFog.s" } @@ -92,7 +82,7 @@ asm void GXSetFog() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetFogRangeAdj() { +asm void GXSetFogRangeAdj(GXBool enable, u16 center, GXFogAdjTable* table) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetFogRangeAdj.s" } @@ -102,7 +92,7 @@ asm void GXSetFogRangeAdj() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetBlendMode() { +asm void GXSetBlendMode(GXBlendMode mode, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetBlendMode.s" } @@ -112,7 +102,7 @@ asm void GXSetBlendMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetColorUpdate() { +asm void GXSetColorUpdate(GXBool enable_update) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetColorUpdate.s" } @@ -122,7 +112,7 @@ asm void GXSetColorUpdate() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetAlphaUpdate() { +asm void GXSetAlphaUpdate(GXBool enable_update) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetAlphaUpdate.s" } @@ -132,7 +122,7 @@ asm void GXSetAlphaUpdate() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetZMode() { +asm void GXSetZMode(GXBool enable_compare, GXCompare comp, GXBool enable_update) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetZMode.s" } @@ -142,7 +132,7 @@ asm void GXSetZMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetZCompLoc() { +asm void GXSetZCompLoc(GXBool z_buf_before_tex) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetZCompLoc.s" } @@ -159,7 +149,7 @@ SECTION_DATA static u8 p2f[32] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetPixelFmt() { +asm void GXSetPixelFmt(GXPixelFmt pixel_fmt, GXZFmt16 z_fmt) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetPixelFmt.s" } @@ -169,7 +159,7 @@ asm void GXSetPixelFmt() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDither() { +asm void GXSetDither(GXBool enable_dither) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetDither.s" } @@ -179,7 +169,7 @@ asm void GXSetDither() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetDstAlpha() { +asm void GXSetDstAlpha(GXBool enable, u8 alpha) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetDstAlpha.s" } @@ -189,7 +179,7 @@ asm void GXSetDstAlpha() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetFieldMask() { +asm void GXSetFieldMask(GXBool odd_mask, GXBool even_mask) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetFieldMask.s" } @@ -199,7 +189,7 @@ asm void GXSetFieldMask() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetFieldMode() { +asm void GXSetFieldMode(GXBool field_mode, GXBool half_aspect_ratio) { nofralloc #include "asm/dolphin/gx/GXPixel/GXSetFieldMode.s" } diff --git a/libs/dolphin/gx/GXTev.cpp b/libs/dolphin/gx/GXTev.c similarity index 76% rename from libs/dolphin/gx/GXTev.cpp rename to libs/dolphin/gx/GXTev.c index cb029509c42..9848efcf121 100644 --- a/libs/dolphin/gx/GXTev.cpp +++ b/libs/dolphin/gx/GXTev.c @@ -11,28 +11,24 @@ // Forward References: // -extern "C" void GXSetTevOp(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetTevColorS10(); -extern "C" void GXSetTevKColor(); -extern "C" void GXSetTevKColorSel(); -extern "C" void GXSetTevKAlphaSel(); -extern "C" void GXSetTevSwapMode(); -extern "C" void GXSetTevSwapModeTable(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetZTexture(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); +void GXSetTevOp(); +void GXSetTevColorIn(); +void GXSetTevAlphaIn(); +void GXSetTevColor(); +void GXSetTevColorS10(); +void GXSetTevKColor(); +void GXSetTevKColorSel(); +void GXSetTevKAlphaSel(); +void GXSetTevSwapMode(); +void GXSetTevSwapModeTable(); +void GXSetZTexture(); +void GXSetTevOrder(); // // External References: // -extern "C" extern void* __GXData; +extern void* __GXData; // // Declarations: @@ -49,7 +45,7 @@ SECTION_DATA static u8 TEVCOpTableST0[20] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevOp() { +asm void GXSetTevOp(GXTevStageID id, GXTevMode mode) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevOp.s" } @@ -59,7 +55,8 @@ asm void GXSetTevOp() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevColorIn() { +asm void GXSetTevColorIn(GXTevStageID stage, GXTevColorArg a, GXTevColorArg b, GXTevColorArg c, + GXTevColorArg d) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevColorIn.s" } @@ -69,7 +66,8 @@ asm void GXSetTevColorIn() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevAlphaIn() { +asm void GXSetTevAlphaIn(GXTevStageID stage, GXTevAlphaArg a, GXTevAlphaArg b, GXTevAlphaArg c, + GXTevAlphaArg d) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevAlphaIn.s" } @@ -79,7 +77,8 @@ asm void GXSetTevAlphaIn() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevColorOp() { +asm void GXSetTevColorOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, + GXBool clamp, GXTevRegID out_reg) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevColorOp.s" } @@ -89,7 +88,8 @@ asm void GXSetTevColorOp() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevAlphaOp() { +asm void GXSetTevAlphaOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, + GXBool clamp, GXTevRegID out_reg) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevAlphaOp.s" } @@ -99,7 +99,7 @@ asm void GXSetTevAlphaOp() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevColor() { +asm void GXSetTevColor(GXTevRegID id, GXColor color) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevColor.s" } @@ -109,7 +109,7 @@ asm void GXSetTevColor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevColorS10() { +asm void GXSetTevColorS10(GXTevRegID id, GXColorS10 color) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevColorS10.s" } @@ -119,7 +119,7 @@ asm void GXSetTevColorS10() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevKColor() { +asm void GXSetTevKColor(GXTevKColorID id, GXColor color) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevKColor.s" } @@ -129,7 +129,7 @@ asm void GXSetTevKColor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevKColorSel() { +asm void GXSetTevKColorSel(GXTevStageID stage, GXTevKColorSel color_sel) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevKColorSel.s" } @@ -139,7 +139,7 @@ asm void GXSetTevKColorSel() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevKAlphaSel() { +asm void GXSetTevKAlphaSel(GXTevStageID stage, GXTevKAlphaSel alpha_sel) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevKAlphaSel.s" } @@ -149,7 +149,7 @@ asm void GXSetTevKAlphaSel() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevSwapMode() { +asm void GXSetTevSwapMode(GXTevStageID stage, GXTevSwapSel ras_sel, GXTevSwapSel tex_sel) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevSwapMode.s" } @@ -159,7 +159,8 @@ asm void GXSetTevSwapMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevSwapModeTable() { +asm void GXSetTevSwapModeTable(GXTevSwapSel select, GXTevColor r, GXTevColor g, GXTevColor b, + GXTevColor a) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevSwapModeTable.s" } @@ -169,7 +170,7 @@ asm void GXSetTevSwapModeTable() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetAlphaCompare() { +asm void GXSetAlphaCompare(GXCompare comp0, u8 ref0, GXAlphaOp op, GXCompare comp1, u8 ref1) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetAlphaCompare.s" } @@ -179,7 +180,7 @@ asm void GXSetAlphaCompare() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetZTexture() { +asm void GXSetZTexture(GXZTexOp op, GXTexFmt fmt, u32 bias) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetZTexture.s" } @@ -262,7 +263,7 @@ SECTION_DATA static u8 c2r[36 + 4 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTevOrder() { +asm void GXSetTevOrder(GXTevStageID stage, GXTexCoordID coord, GXTexMapID map, GXChannelID color) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetTevOrder.s" } @@ -272,7 +273,7 @@ asm void GXSetTevOrder() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetNumTevStages() { +asm void GXSetNumTevStages(u8 num_stages) { nofralloc #include "asm/dolphin/gx/GXTev/GXSetNumTevStages.s" } diff --git a/libs/dolphin/gx/GXTexture.cpp b/libs/dolphin/gx/GXTexture.c similarity index 88% rename from libs/dolphin/gx/GXTexture.cpp rename to libs/dolphin/gx/GXTexture.c index b526a5e8d1f..dc89a7ffb1e 100644 --- a/libs/dolphin/gx/GXTexture.cpp +++ b/libs/dolphin/gx/GXTexture.c @@ -11,39 +11,22 @@ // Forward References: // -extern "C" void GXGetTexBufferSize(); -extern "C" void __GetImageTileCount(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjCI(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXGetTexObjWidth(); -extern "C" void GXGetTexObjHeight(); -extern "C" void GXGetTexObjFmt(); -extern "C" void GXGetTexObjWrapS(); -extern "C" void GXGetTexObjWrapT(); -extern "C" void GXGetTexObjMipMap(); -extern "C" void GXGetTexObjTlut(); -extern "C" static void GXLoadTexObjPreLoaded(); -extern "C" void GXLoadTexObj(); -extern "C" void GXInitTlutObj(); -extern "C" void GXLoadTlut(); -extern "C" void GXInitTexCacheRegion(); -extern "C" void GXInitTlutRegion(); -extern "C" void GXInvalidateTexAll(); -extern "C" void GXSetTexRegionCallback(); -extern "C" void GXSetTlutRegionCallback(); -extern "C" void GXSetTexCoordScaleManually(); -extern "C" void __SetSURegs(); -extern "C" void __GXSetSUTexRegs(); -extern "C" void __GXSetTmemConfig(); +void __GetImageTileCount(); +static void GXLoadTexObjPreLoaded(); +void GXLoadTexObj(); +void GXLoadTlut(); +void GXInitTlutRegion(); +void GXInvalidateTexAll(); +void __SetSURegs(); +void __GXSetSUTexRegs(); +void __GXSetTmemConfig(); // // External References: // SECTION_INIT void memset(); -extern "C" void __GXFlushTextureState(); -extern "C" extern void* __GXData; +void __GXFlushTextureState(); // // Declarations: @@ -89,7 +72,7 @@ SECTION_DATA static void* lit_104[61] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexBufferSize() { +asm u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexBufferSize.s" } @@ -177,7 +160,8 @@ SECTION_SDATA2 static f64 lit_222 = 4503599627370496.0 /* cast u32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitTexObj() { +asm void GXInitTexObj(GXTexObj* obj, void* image, u16 width, u16 height, GXTexFmt fmt, + GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInitTexObj.s" } @@ -187,7 +171,8 @@ asm void GXInitTexObj() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitTexObjCI() { +asm void GXInitTexObjCI(GXTexObj* obj, void* image, u16 width, u16 height, GXCITexFmt format, + GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap, u32 tlut_name) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInitTexObjCI.s" } @@ -269,7 +254,9 @@ SECTION_SDATA2 static f32 lit_293 = 10.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitTexObjLOD() { +asm void GXInitTexObjLOD(GXTexObj* obj, GXTexFilter min_filter, GXTexFilter max_filter, f32 min_lod, + f32 max_lod, f32 lod_bias, GXBool bias_clamp, GXBool edge_lod, + GXAnisotropy aniso) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInitTexObjLOD.s" } @@ -279,7 +266,7 @@ asm void GXInitTexObjLOD() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjWidth() { +asm u16 GXGetTexObjWidth(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjWidth.s" } @@ -289,7 +276,7 @@ asm void GXGetTexObjWidth() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjHeight() { +asm u16 GXGetTexObjHeight(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjHeight.s" } @@ -299,7 +286,7 @@ asm void GXGetTexObjHeight() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjFmt() { +asm GXTexFmt GXGetTexObjFmt(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjFmt.s" } @@ -309,7 +296,7 @@ asm void GXGetTexObjFmt() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjWrapS() { +asm GXTexWrapMode GXGetTexObjWrapS(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjWrapS.s" } @@ -319,7 +306,7 @@ asm void GXGetTexObjWrapS() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjWrapT() { +asm GXTexWrapMode GXGetTexObjWrapT(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjWrapT.s" } @@ -329,7 +316,7 @@ asm void GXGetTexObjWrapT() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjMipMap() { +asm GXBool GXGetTexObjMipMap(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjMipMap.s" } @@ -339,7 +326,7 @@ asm void GXGetTexObjMipMap() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetTexObjTlut() { +asm u32 GXGetTexObjTlut(GXTexObj* obj) { nofralloc #include "asm/dolphin/gx/GXTexture/GXGetTexObjTlut.s" } @@ -349,7 +336,7 @@ asm void GXGetTexObjTlut() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void GXLoadTexObjPreLoaded() { +static asm void GXLoadTexObjPreLoaded(GXTexObj* obj, GXTexRegion* region, GXTexMapID id) { nofralloc #include "asm/dolphin/gx/GXTexture/GXLoadTexObjPreLoaded.s" } @@ -359,7 +346,7 @@ static asm void GXLoadTexObjPreLoaded() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXLoadTexObj() { +asm void GXLoadTexObj(GXTexObj* obj, GXTexMapID id) { nofralloc #include "asm/dolphin/gx/GXTexture/GXLoadTexObj.s" } @@ -369,7 +356,7 @@ asm void GXLoadTexObj() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitTlutObj() { +asm void GXInitTlutObj(GXTlutObj* obj, void* lut, GXTlutFmt fmt, u16 entry_num) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInitTlutObj.s" } @@ -379,7 +366,7 @@ asm void GXInitTlutObj() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXLoadTlut() { +asm void GXLoadTlut(GXTlutObj* obj, u32 tlut_name) { nofralloc #include "asm/dolphin/gx/GXTexture/GXLoadTlut.s" } @@ -389,7 +376,8 @@ asm void GXLoadTlut() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitTexCacheRegion() { +asm void GXInitTexCacheRegion(GXTexRegion* region, GXBool is_32b_mipmap, u32 tmem_even, + GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInitTexCacheRegion.s" } @@ -399,7 +387,7 @@ asm void GXInitTexCacheRegion() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInitTlutRegion() { +asm void GXInitTlutRegion(GXTlutRegion* region, u32 tmem_addr, GXTlutSize tlut_size) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInitTlutRegion.s" } @@ -409,7 +397,7 @@ asm void GXInitTlutRegion() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXInvalidateTexAll() { +asm void GXInvalidateTexAll(void) { nofralloc #include "asm/dolphin/gx/GXTexture/GXInvalidateTexAll.s" } @@ -419,7 +407,7 @@ asm void GXInvalidateTexAll() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTexRegionCallback() { +asm GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback) { nofralloc #include "asm/dolphin/gx/GXTexture/GXSetTexRegionCallback.s" } @@ -429,7 +417,7 @@ asm void GXSetTexRegionCallback() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTlutRegionCallback() { +asm GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback callback) { nofralloc #include "asm/dolphin/gx/GXTexture/GXSetTlutRegionCallback.s" } @@ -439,7 +427,7 @@ asm void GXSetTlutRegionCallback() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetTexCoordScaleManually() { +asm void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 s_scale, u16 t_scale) { nofralloc #include "asm/dolphin/gx/GXTexture/GXSetTexCoordScaleManually.s" } diff --git a/libs/dolphin/gx/GXTransform.cpp b/libs/dolphin/gx/GXTransform.c similarity index 78% rename from libs/dolphin/gx/GXTransform.cpp rename to libs/dolphin/gx/GXTransform.c index df252e6c19a..c4c36e207b7 100644 --- a/libs/dolphin/gx/GXTransform.cpp +++ b/libs/dolphin/gx/GXTransform.c @@ -11,28 +11,26 @@ // Forward References: // -extern "C" void GXProject(); -extern "C" void GXSetProjection(); -extern "C" void GXSetProjectionv(); -extern "C" void GXGetProjectionv(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXLoadNrmMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXLoadTexMtxImm(); -extern "C" void __GXSetViewport(); -extern "C" void GXSetViewport(); -extern "C" void GXGetViewportv(); -extern "C" void GXSetScissor(); -extern "C" void GXGetScissor(); -extern "C" void GXSetScissorBoxOffset(); -extern "C" void GXSetClipMode(); -extern "C" void __GXSetMatrixIndex(); +void GXSetProjection(); +void GXSetProjectionv(); +void GXGetProjectionv(); +void GXLoadPosMtxImm(); +void GXLoadNrmMtxImm(); +void GXSetCurrentMtx(); +void GXLoadTexMtxImm(); +void __GXSetViewport(); +void GXGetViewportv(); +void GXSetScissor(); +void GXGetScissor(); +void GXSetScissorBoxOffset(); +void GXSetClipMode(); +void __GXSetMatrixIndex(); // // External References: // -extern "C" extern void* __GXData; +extern void* __GXData; // // Declarations: @@ -57,7 +55,8 @@ SECTION_SDATA2 static f32 lit_28 = 0.5f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXProject() { +asm void GXProject(f32 model_x, f32 model_y, f32 model_z, Mtx model_mtx, f32* proj_mtx, + f32* viewpoint, f32* screen_x, f32* screen_y, f32* screen_z) { nofralloc #include "asm/dolphin/gx/GXTransform/GXProject.s" } @@ -67,7 +66,7 @@ asm void GXProject() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetProjection() { +asm void GXSetProjection(Mtx44 mtx, GXProjectionType type) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetProjection.s" } @@ -77,7 +76,7 @@ asm void GXSetProjection() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetProjectionv() { +asm void GXSetProjectionv(f32* p) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetProjectionv.s" } @@ -87,7 +86,7 @@ asm void GXSetProjectionv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetProjectionv() { +asm void GXGetProjectionv(f32* p) { nofralloc #include "asm/dolphin/gx/GXTransform/GXGetProjectionv.s" } @@ -97,7 +96,7 @@ asm void GXGetProjectionv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXLoadPosMtxImm() { +asm void GXLoadPosMtxImm(Mtx mtx, u32 id) { nofralloc #include "asm/dolphin/gx/GXTransform/GXLoadPosMtxImm.s" } @@ -107,7 +106,7 @@ asm void GXLoadPosMtxImm() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXLoadNrmMtxImm() { +asm void GXLoadNrmMtxImm(Mtx mtx, u32 id) { nofralloc #include "asm/dolphin/gx/GXTransform/GXLoadNrmMtxImm.s" } @@ -117,7 +116,7 @@ asm void GXLoadNrmMtxImm() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetCurrentMtx() { +asm void GXSetCurrentMtx(u32 id) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetCurrentMtx.s" } @@ -127,7 +126,7 @@ asm void GXSetCurrentMtx() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXLoadTexMtxImm() { +asm void GXLoadTexMtxImm(Mtx mtx, u32 id, GXTexMtxType type) { nofralloc #include "asm/dolphin/gx/GXTransform/GXLoadTexMtxImm.s" } @@ -141,7 +140,7 @@ SECTION_SDATA2 static f32 lit_201 = 342.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXSetViewport() { +asm void __GXSetViewport(void) { nofralloc #include "asm/dolphin/gx/GXTransform/__GXSetViewport.s" } @@ -151,7 +150,7 @@ asm void __GXSetViewport() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetViewport() { +asm void GXSetViewport(f32 x_orig, f32 y_orig, f32 width, f32 height, f32 near_z, f32 far_z) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetViewport.s" } @@ -161,7 +160,7 @@ asm void GXSetViewport() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetViewportv() { +asm void GXGetViewportv(f32* p) { nofralloc #include "asm/dolphin/gx/GXTransform/GXGetViewportv.s" } @@ -171,7 +170,7 @@ asm void GXGetViewportv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetScissor() { +asm void GXSetScissor(u32 left, u32 top, u32 width, u32 height) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetScissor.s" } @@ -181,7 +180,7 @@ asm void GXSetScissor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXGetScissor() { +asm void GXGetScissor(u32* left, u32* top, u32* width, u32* height) { nofralloc #include "asm/dolphin/gx/GXTransform/GXGetScissor.s" } @@ -191,7 +190,7 @@ asm void GXGetScissor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetScissorBoxOffset() { +asm void GXSetScissorBoxOffset(u32 x_offset, u32 y_offset) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetScissorBoxOffset.s" } @@ -201,7 +200,7 @@ asm void GXSetScissorBoxOffset() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void GXSetClipMode() { +asm void GXSetClipMode(GXClipMode mode) { nofralloc #include "asm/dolphin/gx/GXTransform/GXSetClipMode.s" } @@ -211,7 +210,7 @@ asm void GXSetClipMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __GXSetMatrixIndex() { +asm void __GXSetMatrixIndex(u32 id) { nofralloc #include "asm/dolphin/gx/GXTransform/__GXSetMatrixIndex.s" } diff --git a/libs/dolphin/gx/Makefile b/libs/dolphin/gx/Makefile index 0b972d775e2..0f00f994e33 100644 --- a/libs/dolphin/gx/Makefile +++ b/libs/dolphin/gx/Makefile @@ -3,20 +3,20 @@ # LIBGX_A_CPP_FILES := \ - libs/dolphin/gx/GXInit.cpp \ - libs/dolphin/gx/GXFifo.cpp \ - libs/dolphin/gx/GXAttr.cpp \ - libs/dolphin/gx/GXMisc.cpp \ - libs/dolphin/gx/GXGeometry.cpp \ - libs/dolphin/gx/GXFrameBuf.cpp \ - libs/dolphin/gx/GXLight.cpp \ - libs/dolphin/gx/GXTexture.cpp \ - libs/dolphin/gx/GXBump.cpp \ - libs/dolphin/gx/GXTev.cpp \ - libs/dolphin/gx/GXPixel.cpp \ - libs/dolphin/gx/GXDisplayList.cpp \ - libs/dolphin/gx/GXTransform.cpp \ - libs/dolphin/gx/GXPerf.cpp \ + libs/dolphin/gx/GXInit.c \ + libs/dolphin/gx/GXFifo.c \ + libs/dolphin/gx/GXAttr.c \ + libs/dolphin/gx/GXMisc.c \ + libs/dolphin/gx/GXGeometry.c \ + libs/dolphin/gx/GXFrameBuf.c \ + libs/dolphin/gx/GXLight.c \ + libs/dolphin/gx/GXTexture.c \ + libs/dolphin/gx/GXBump.c \ + libs/dolphin/gx/GXTev.c \ + libs/dolphin/gx/GXPixel.c \ + libs/dolphin/gx/GXDisplayList.c \ + libs/dolphin/gx/GXTransform.c \ + libs/dolphin/gx/GXPerf.c \ LIBGX_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/gx/GXInit.o \ @@ -36,6 +36,7 @@ LIBGX_A_O_FILES := \ LIBGX_A_CFLAGS := \ -O4,p \ + -lang=c \ LIBGX_A_LDFLAGS := \ -nodefaults \ @@ -48,9 +49,9 @@ $(BUILD_DIR)/libgx.a: $(LIBGX_A_O_FILES) @echo $(LIBGX_A_O_FILES) > build/LIBGX_A_ofiles @$(LD) -xm l $(LIBGX_A_LDFLAGS) -o $(BUILD_DIR)/libgx.a @build/LIBGX_A_ofiles -$(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.cpp +$(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBGX_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBGX_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/mtx/Makefile b/libs/dolphin/mtx/Makefile index 0f488dad097..65c6ad64d1e 100644 --- a/libs/dolphin/mtx/Makefile +++ b/libs/dolphin/mtx/Makefile @@ -3,11 +3,11 @@ # LIBMTX_A_CPP_FILES := \ - libs/dolphin/mtx/mtx.cpp \ - libs/dolphin/mtx/mtxvec.cpp \ - libs/dolphin/mtx/mtx44.cpp \ - libs/dolphin/mtx/vec.cpp \ - libs/dolphin/mtx/quat.cpp \ + libs/dolphin/mtx/mtx.c \ + libs/dolphin/mtx/mtxvec.c \ + libs/dolphin/mtx/mtx44.c \ + libs/dolphin/mtx/vec.c \ + libs/dolphin/mtx/quat.c \ LIBMTX_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/mtx/mtx.o \ @@ -17,6 +17,8 @@ LIBMTX_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/mtx/quat.o \ LIBMTX_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBMTX_A_LDFLAGS := \ -nodefaults \ @@ -29,9 +31,9 @@ $(BUILD_DIR)/libmtx.a: $(LIBMTX_A_O_FILES) @echo $(LIBMTX_A_O_FILES) > build/LIBMTX_A_ofiles @$(LD) -xm l $(LIBMTX_A_LDFLAGS) -o $(BUILD_DIR)/libmtx.a @build/LIBMTX_A_ofiles -$(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.cpp +$(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBMTX_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/mtx/mtx.c b/libs/dolphin/mtx/mtx.c new file mode 100644 index 00000000000..5b44c151bf4 --- /dev/null +++ b/libs/dolphin/mtx/mtx.c @@ -0,0 +1,533 @@ +// +// Generated By: dol2asm +// Translation Unit: mtx +// + +#include "dolphin/mtx/mtx.h" +#include "MSL_C/math.h" +#include "dol2asm.h" +#include "dolphin/mtx/mtxvec.h" + +// +// Declarations: +// + +/* ############################################################################################## */ +/* 80456508-8045650C 004B08 0004+00 6/6 0/0 0/0 .sdata2 @96 */ +SECTION_SDATA2 static f32 lit_96 = 1.0f; + +/* 8045650C-80456510 004B0C 0004+00 6/6 0/0 0/0 .sdata2 @97 */ +SECTION_SDATA2 static u8 lit_97[4] = { + 0x00, + 0x00, + 0x00, + 0x00, +}; + +/* 80346484-803464B0 340DC4 002C+00 0/0 27/27 13/13 .text PSMTXIdentity */ +asm void PSMTXIdentity(register Mtx m) { + // clang-format off + nofralloc + + lfs f0, lit_97(r2) + lfs f1, lit_96(r2) + psq_st f0, 8(m), 0, 0 + ps_merge01 f2, f0, f1 + psq_st f0, 24(m), 0, 0 + ps_merge10 f1, f1, f0 + psq_st f0, 32(m), 0, 0 + psq_st f2, 16(m), 0, 0 + psq_st f1, 0(m), 0, 0 + psq_st f1, 40(m), 0, 0 + blr + // clang-format on +} + +/* 803464B0-803464E4 340DF0 0034+00 0/0 119/119 1436/1436 .text PSMTXCopy */ +asm void PSMTXCopy(register const Mtx src, register Mtx dst) { + // clang-format off + nofralloc + + psq_l f0, 0(src), 0, 0 + psq_st f0, 0(dst), 0, 0 + psq_l f1, 8(src), 0, 0 + psq_st f1, 8(dst), 0, 0 + psq_l f2, 16(src), 0, 0 + psq_st f2, 16(dst), 0, 0 + psq_l f3, 24(src), 0, 0 + psq_st f3, 24(dst), 0, 0 + psq_l f4, 32(src), 0, 0 + psq_st f4, 32(dst), 0, 0 + psq_l f5, 40(src), 0, 0 + psq_st f5, 40(dst), 0, 0 + blr + // clang-format on +} + +/* ############################################################################################## */ +/* 804509D0-804509D8 000450 0008+00 1/1 0/0 0/0 .sdata Unit01 */ +static f32 Unit01[2] = { + 0.0f, 1.0f, +}; + +/* 803464E4-803465B0 340E24 00CC+00 0/0 109/109 30/30 .text PSMTXConcat */ +asm void PSMTXConcat(register const Mtx a, register const Mtx b, register Mtx ab) { + // clang-format off + nofralloc + + stwu r1, -0x40(r1) + psq_l f0, 0(a), 0, 0 + stfd f14, 8(r1) + psq_l f6, 0(b), 0, 0 + lis r6, Unit01@ha + psq_l f7, 8(b), 0, 0 + stfd f15, 0x10(r1) + addi r6, r6, Unit01@l + stfd f31, 0x28(r1) + psq_l f8, 16(b), 0, 0 + ps_muls0 f12, f6, f0 + psq_l f2, 16(a), 0, 0 + ps_muls0 f13, f7, f0 + psq_l f31, 0(r6), 0, 0 + ps_muls0 f14, f6, f2 + psq_l f9, 24(b), 0, 0 + ps_muls0 f15, f7, f2 + psq_l f1, 8(a), 0, 0 + ps_madds1 f12, f8, f0, f12 + psq_l f3, 24(a), 0, 0 + ps_madds1 f14, f8, f2, f14 + psq_l f10, 32(b), 0, 0 + ps_madds1 f13, f9, f0, f13 + psq_l f11, 40(b), 0, 0 + ps_madds1 f15, f9, f2, f15 + psq_l f4, 32(a), 0, 0 + psq_l f5, 40(a), 0, 0 + ps_madds0 f12, f10, f1, f12 + ps_madds0 f13, f11, f1, f13 + ps_madds0 f14, f10, f3, f14 + ps_madds0 f15, f11, f3, f15 + psq_st f12, 0(ab), 0, 0 + ps_muls0 f2, f6, f4 + ps_madds1 f13, f31, f1, f13 + ps_muls0 f0, f7, f4 + psq_st f14, 16(ab), 0, 0 + ps_madds1 f15, f31, f3, f15 + psq_st f13, 8(ab), 0, 0 + ps_madds1 f2, f8, f4, f2 + ps_madds1 f0, f9, f4, f0 + ps_madds0 f2, f10, f5, f2 + lfd f14, 8(r1) + psq_st f15, 24(ab), 0, 0 + ps_madds0 f0, f11, f5, f0 + psq_st f2, 32(ab), 0, 0 + ps_madds1 f0, f31, f5, f0 + lfd f15, 0x10(r1) + psq_st f0, 40(ab), 0, 0 + lfd f31, 0x28(r1) + addi r1, r1, 0x40 + blr + // clang-format on +} + +/* 803465B0-803466A8 340EF0 00F8+00 0/0 43/43 39/39 .text PSMTXInverse */ +asm u32 PSMTXInverse(register const Mtx src, register Mtx inv) { + // clang-format off + nofralloc + + psq_l f0, 0(src), 1, 0 + psq_l f1, 4(src), 0, 0 + psq_l f2, 16(src), 1, 0 + ps_merge10 f6, f1, f0 + psq_l f3, 20(src), 0, 0 + psq_l f4, 32(src), 1, 0 + ps_merge10 f7, f3, f2 + psq_l f5, 36(src), 0, 0 + ps_mul f11, f3, f6 + ps_mul f13, f5, f7 + ps_merge10 f8, f5, f4 + ps_msub f11, f1, f7, f11 + ps_mul f12, f1, f8 + ps_msub f13, f3, f8, f13 + ps_mul f10, f3, f4 + ps_msub f12, f5, f6, f12 + ps_mul f9, f0, f5 + ps_mul f8, f1, f2 + ps_sub f6, f6, f6 + ps_msub f10, f2, f5, f10 + ps_mul f7, f0, f13 + ps_msub f9, f1, f4, f9 + ps_madd f7, f2, f12, f7 + ps_msub f8, f0, f3, f8 + ps_madd f7, f4, f11, f7 + ps_cmpo0 cr0, f7, f6 + bne lbl_80346624 + + li r3, 0 + blr + +lbl_80346624: + fres f0, f7 + ps_add f6, f0, f0 + ps_mul f5, f0, f0 + ps_nmsub f0, f7, f5, f6 + lfs f1, 0xc(src) + ps_muls0 f13, f13, f0 + lfs f2, 0x1c(src) + ps_muls0 f12, f12, f0 + lfs f3, 0x2c(src) + ps_muls0 f11, f11, f0 + ps_merge00 f5, f13, f12 + ps_muls0 f10, f10, f0 + ps_merge11 f4, f13, f12 + ps_muls0 f9, f9, f0 + psq_st f5, 0(inv), 0, 0 + ps_mul f6, f13, f1 + psq_st f4, 16(inv), 0, 0 + ps_muls0 f8, f8, f0 + ps_madd f6, f12, f2, f6 + psq_st f10, 32(inv), 1, 0 + ps_nmadd f6, f11, f3, f6 + psq_st f9, 36(inv), 1, 0 + ps_mul f7, f10, f1 + ps_merge00 f5, f11, f6 + psq_st f8, 40(inv), 1, 0 + ps_merge11 f4, f11, f6 + psq_st f5, 8(inv), 0, 0 + ps_madd f7, f9, f2, f7 + psq_st f4, 24(inv), 0, 0 + ps_nmadd f7, f8, f3, f7 + li r3, 1 + psq_st f7, 44(inv), 1, 0 + blr + // clang-format on +} + +/* 803466A8-80346718 340FE8 0070+00 0/0 17/17 0/0 .text PSMTXRotRad */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void PSMTXRotRad(Mtx m, u8 axis, f32 rad) { + nofralloc +#include "asm/dolphin/mtx/mtx/PSMTXRotRad.s" +} +#pragma pop + +/* 80346718-803467C8 341058 00B0+00 1/1 0/0 0/0 .text PSMTXRotTrig */ +asm void PSMTXRotTrig(register Mtx m, u8 axis, f32 sin, f32 cos) { + // clang-format off + nofralloc + + frsp f5, f1 + frsp f4, f2 + lfs f0, lit_97(r2) + lfs f1, lit_96(r2) + ori r0, r4, 0x20 + ps_neg f2, f5 + cmplwi r0, 0x78 + beq lbl_8034674C + cmplwi r0, 0x79 + beq lbl_80346774 + cmplwi r0, 0x7a + beq lbl_803467A0 + b lbl_803467C4 + +lbl_8034674C: + psq_st f1, 0(m), 1, 0 + psq_st f0, 4(m), 0, 0 + ps_merge00 f3, f5, f4 + psq_st f0, 12(m), 0, 0 + ps_merge00 f1, f4, f2 + psq_st f0, 28(m), 0, 0 + psq_st f0, 44(m), 1, 0 + psq_st f3, 36(m), 0, 0 + psq_st f1, 20(m), 0, 0 + b lbl_803467C4 + +lbl_80346774: + ps_merge00 f3, f4, f0 + ps_merge00 f1, f0, f1 + psq_st f0, 24(m), 0, 0 + psq_st f3, 0(m), 0, 0 + ps_merge00 f2, f2, f0 + ps_merge00 f0, f5, f0 + psq_st f3, 40(m), 0, 0 + psq_st f1, 16(m), 0, 0 + psq_st f0, 8(m), 0, 0 + psq_st f2, 32(m), 0, 0 + b lbl_803467C4 + +lbl_803467A0: + psq_st f0, 8(m), 0, 0 + ps_merge00 f3, f5, f4 + ps_merge00 f2, f4, f2 + psq_st f0, 24(m), 0, 0 + psq_st f0, 32(m), 0, 0 + ps_merge00 f1, f1, f0 + psq_st f3, 16(m), 0, 0 + psq_st f2, 0(m), 0, 0 + psq_st f1, 40(m), 0, 0 + +lbl_803467C4: + blr + // clang-format on +} + +/* ############################################################################################## */ +/* 80456510-80456514 004B10 0004+00 2/2 0/0 0/0 .sdata2 @190 */ +SECTION_SDATA2 static f32 lit_190 = 0.5f; + +/* 80456514-80456518 004B14 0004+00 1/1 0/0 0/0 .sdata2 @191 */ +SECTION_SDATA2 static f32 lit_191 = 3.0f; + +/* 803467C8-80346878 341108 00B0+00 1/1 0/0 0/0 .text __PSMTXRotAxisRadInternal */ +asm f64 __PSMTXRotAxisRadInternal(f64 param_1, f64 param_2, int param_3, int param_4) { + // clang-format off + nofralloc + + lfs f10, lit_190(r2) + lfs f9, lit_191(r2) + frsp f11, f2 + psq_l f2, 0(r4), 0, 0 + frsp f12, f1 + lfs f3, 8(r4) + ps_mul f4, f2, f2 + fadds f8, f10, f10 + ps_madd f5, f3, f3, f4 + fsubs f1, f10, f10 + ps_sum0 f6, f5, f3, f4 + fsubs f0, f8, f11 + frsqrte f7, f6 + fmuls f4, f7, f7 + fmuls f5, f7, f10 + fnmsubs f4, f4, f6, f9 + fmuls f7, f4, f5 + ps_merge00 f11, f11, f11 + ps_muls0 f2, f2, f7 + ps_muls0 f3, f3, f7 + ps_muls0 f6, f2, f0 + ps_muls0 f10, f2, f12 + ps_muls0 f7, f3, f0 + ps_muls1 f5, f6, f2 + ps_muls0 f4, f6, f2 + ps_muls0 f6, f6, f3 + fnmsubs f0, f3, f12, f5 + fmadds f8, f3, f12, f5 + ps_neg f2, f10 + ps_sum0 f9, f6, f1, f10 + ps_sum0 f4, f4, f0, f11 + ps_sum1 f5, f11, f8, f5 + ps_sum0 f0, f2, f1, f6 + psq_st f9, 8(r3), 0, 0 + ps_sum0 f2, f6, f6, f2 + psq_st f4, 0(r3), 0, 0 + ps_muls0 f7, f7, f3 + psq_st f5, 16(r3), 0, 0 + ps_sum1 f6, f10, f2, f6 + psq_st f0, 24(r3), 0, 0 + ps_sum0 f7, f7, f1, f11 + psq_st f6, 32(r3), 0, 0 + psq_st f7, 40(r3), 0, 0 + blr + // clang-format on +} + +/* 80346878-803468E8 3411B8 0070+00 0/0 6/6 8/8 .text PSMTXRotAxisRad */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void PSMTXRotAxisRad(Mtx m, const Vec* axis, f32 rad) { + nofralloc +#include "asm/dolphin/mtx/mtx/PSMTXRotAxisRad.s" +} +#pragma pop + +/* 803468E8-8034691C 341228 0034+00 0/0 38/38 471/471 .text PSMTXTrans */ +asm void PSMTXTrans(register Mtx m, f32 x, f32 y, f32 z) { + // clang-format off + nofralloc + + lfs f0, lit_97(r2) + lfs f4, lit_96(r2) + stfs f1, 0xc(m) + stfs f2, 0x1c(m) + psq_st f0, 4(m), 0, 0 + psq_st f0, 32(m), 0, 0 + stfs f0, 0x10(m) + stfs f4, 0x14(m) + stfs f0, 0x18(m) + stfs f4, 0x28(m) + stfs f3, 0x2c(m) + stfs f4, 0(m) + blr + // clang-format on +} + +/* 8034691C-80346968 34125C 004C+00 0/0 3/3 0/0 .text PSMTXTransApply */ +asm void PSMTXTransApply(register const Mtx src, register Mtx dst, f32 x, f32 y, f32 z) { + // clang-format off + nofralloc + + psq_l f4, 0(src), 0, 0 + frsp f1, f1 + psq_l f5, 8(src), 0, 0 + frsp f2, f2 + psq_l f7, 24(src), 0, 0 + frsp f3, f3 + psq_l f8, 40(src), 0, 0 + psq_st f4, 0(dst), 0, 0 + ps_sum1 f5, f1, f5, f5 + psq_l f6, 16(src), 0, 0 + psq_st f5, 8(dst), 0, 0 + ps_sum1 f7, f2, f7, f7 + psq_l f9, 32(src), 0, 0 + psq_st f6, 16(dst), 0, 0 + ps_sum1 f8, f3, f8, f8 + psq_st f7, 24(dst), 0, 0 + psq_st f9, 32(dst), 0, 0 + psq_st f8, 40(dst), 0, 0 + blr + // clang-format on +} + +/* 80346968-80346990 3412A8 0028+00 0/0 14/14 8/8 .text PSMTXScale */ +asm void PSMTXScale(register Mtx m, f32 x, f32 y, f32 z) { + // clang-format off + nofralloc + + lfs f0, lit_97(r2) + stfs f1, 0(m) + psq_st f0, 4(m), 0, 0 + psq_st f0, 12(m), 0, 0 + stfs f2, 0x14(m) + psq_st f0, 24(m), 0, 0 + psq_st f0, 32(m), 0, 0 + stfs f3, 0x28(m) + stfs f0, 0x2c(m) + blr + // clang-format on +} + +/* 80346990-803469E8 3412D0 0058+00 0/0 1/1 0/0 .text PSMTXScaleApply */ +asm void PSMTXScaleApply(register const Mtx src, register Mtx dst, f32 x, f32 y, f32 z) { + // clang-format off + nofralloc + + frsp f1, f1 + psq_l f4, 0(src), 0, 0 + frsp f2, f2 + psq_l f5, 8(src), 0, 0 + frsp f3, f3 + ps_muls0 f4, f4, f1 + psq_l f6, 16(src), 0, 0 + ps_muls0 f5, f5, f1 + psq_l f7, 24(src), 0, 0 + ps_muls0 f6, f6, f2 + psq_l f8, 32(src), 0, 0 + psq_st f4, 0(dst), 0, 0 + ps_muls0 f7, f7, f2 + psq_l f2, 40(src), 0, 0 + psq_st f5, 8(dst), 0, 0 + ps_muls0 f8, f8, f3 + psq_st f6, 16(dst), 0, 0 + ps_muls0 f2, f2, f3 + psq_st f7, 24(dst), 0, 0 + psq_st f8, 32(dst), 0, 0 + psq_st f2, 40(dst), 0, 0 + blr + // clang-format on +} + +/* 803469E8-80346A8C 341328 00A4+00 0/0 8/8 2/2 .text PSMTXQuat */ +asm void PSMTXQuat(register Mtx m, register const Quaternion* q) { + // clang-format off + nofralloc + + lfs f1, lit_96(r2) + psq_l f4, 0(q), 0, 0 + psq_l f5, 8(q), 0, 0 + fsubs f0, f1, f1 + fadds f2, f1, f1 + ps_mul f6, f4, f4 + ps_merge10 f9, f4, f4 + ps_madd f8, f5, f5, f6 + ps_mul f7, f5, f5 + ps_sum0 f3, f8, f8, f8 + ps_muls1 f10, f9, f5 + fres f11, f3 + ps_sum1 f8, f7, f8, f6 + ps_nmsub f3, f3, f11, f2 + ps_muls1 f7, f5, f5 + ps_mul f3, f11, f3 + ps_sum0 f6, f6, f6, f6 + fmuls f3, f3, f2 + ps_madd f11, f4, f9, f7 + ps_msub f7, f4, f9, f7 + psq_st f0, 12(m), 1, 0 + ps_nmsub f6, f6, f3, f1 + ps_nmsub f8, f8, f3, f1 + psq_st f0, 44(m), 1, 0 + ps_mul f11, f11, f3 + ps_mul f7, f7, f3 + psq_st f6, 40(m), 1, 0 + ps_madds0 f9, f4, f5, f10 + ps_merge00 f5, f11, f8 + ps_nmsub f10, f10, f2, f9 + ps_merge10 f4, f8, f7 + psq_st f5, 16(m), 0, 0 + ps_mul f9, f9, f3 + ps_mul f10, f10, f3 + psq_st f4, 0(m), 0, 0 + psq_st f9, 8(m), 1, 0 + ps_merge10 f7, f10, f0 + ps_merge01 f11, f10, f9 + psq_st f7, 24(m), 0, 0 + psq_st f11, 32(m), 0, 0 + blr + // clang-format on +} + +/* 80346A8C-80346C18 3413CC 018C+00 0/0 2/2 0/0 .text C_MTXLookAt */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void C_MTXLookAt(Mtx m, const Vec* camPos, const Vec* camUp, const Vec* target) { + nofralloc +#include "asm/dolphin/mtx/mtx/C_MTXLookAt.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 80456518-8045651C 004B18 0004+00 1/1 0/0 0/0 .sdata2 @206 */ +SECTION_SDATA2 static f32 lit_206 = 2.0f; + +/* 8045651C-80456520 004B1C 0004+00 1/1 0/0 0/0 .sdata2 @227 */ +SECTION_SDATA2 static f32 lit_227 = -1.0f; + +/* 80456520-80456528 004B20 0004+04 1/1 0/0 0/0 .sdata2 @230 */ +SECTION_SDATA2 static f32 lit_230[1 + 1 /* padding */] = { + 0.01745329238474369f, + /* padding */ + 0.0f, +}; + +/* 80346C18-80346CE4 341558 00CC+00 0/0 4/4 7/7 .text C_MTXLightPerspective */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, f32 scale_s, f32 scale_t, f32 trans_s, + f32 trans_t) { + nofralloc +#include "asm/dolphin/mtx/mtx/C_MTXLightPerspective.s" +} +#pragma pop + +/* 80346CE4-80346D6C 341624 0088+00 0/0 2/2 5/5 .text C_MTXLightOrtho */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void C_MTXLightOrtho(Mtx m, f32 top, f32 bottom, f32 left, f32 right, f32 scale_s, f32 scale_t, + f32 trans_s, f32 trans_t) { + nofralloc +#include "asm/dolphin/mtx/mtx/C_MTXLightOrtho.s" +} +#pragma pop diff --git a/libs/dolphin/mtx/mtx.cpp b/libs/dolphin/mtx/mtx.cpp deleted file mode 100644 index aabe3642ec0..00000000000 --- a/libs/dolphin/mtx/mtx.cpp +++ /dev/null @@ -1,215 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: mtx -// - -#include "dolphin/mtx/mtx.h" -#include "MSL_C/math.h" -#include "dol2asm.h" -#include "dolphin/mtx/mtxvec.h" -#include "dolphin/types.h" - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80456508-8045650C 004B08 0004+00 6/6 0/0 0/0 .sdata2 @96 */ -SECTION_SDATA2 static f32 lit_96 = 1.0f; - -/* 8045650C-80456510 004B0C 0004+00 6/6 0/0 0/0 .sdata2 @97 */ -SECTION_SDATA2 static u8 lit_97[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80346484-803464B0 340DC4 002C+00 0/0 27/27 13/13 .text PSMTXIdentity */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXIdentity(Mtx matrix) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXIdentity.s" -} -#pragma pop - -/* 803464B0-803464E4 340DF0 0034+00 0/0 119/119 1436/1436 .text PSMTXCopy */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXCopy(const Mtx src, Mtx dst) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXCopy.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804509D0-804509D8 000450 0008+00 1/1 0/0 0/0 .sdata Unit01 */ -SECTION_SDATA static u8 Unit01[8] = { - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, -}; - -/* 803464E4-803465B0 340E24 00CC+00 0/0 109/109 30/30 .text PSMTXConcat */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXConcat(const Mtx src_a, const Mtx src_b, Mtx dst) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXConcat.s" -} -#pragma pop - -/* 803465B0-803466A8 340EF0 00F8+00 0/0 43/43 39/39 .text PSMTXInverse */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 PSMTXInverse(const Mtx src, Mtx dst) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXInverse.s" -} -#pragma pop - -/* 803466A8-80346718 340FE8 0070+00 0/0 17/17 0/0 .text PSMTXRotRad */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXRotRad(Mtx matrix, u8 axis, float rad) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXRotRad.s" -} -#pragma pop - -/* 80346718-803467C8 341058 00B0+00 1/1 0/0 0/0 .text PSMTXRotTrig */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXRotTrig(Mtx matrix, u8 axis, float sin, float cos) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXRotTrig.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80456510-80456514 004B10 0004+00 2/2 0/0 0/0 .sdata2 @190 */ -SECTION_SDATA2 static f32 lit_190 = 0.5f; - -/* 80456514-80456518 004B14 0004+00 1/1 0/0 0/0 .sdata2 @191 */ -SECTION_SDATA2 static f32 lit_191 = 3.0f; - -/* 803467C8-80346878 341108 00B0+00 1/1 0/0 0/0 .text __PSMTXRotAxisRadInternal */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm double __PSMTXRotAxisRadInternal(double param_1, double param_2, int param_3, int param_4) { - nofralloc -#include "asm/dolphin/mtx/mtx/__PSMTXRotAxisRadInternal.s" -} -#pragma pop - -/* 80346878-803468E8 3411B8 0070+00 0/0 6/6 8/8 .text PSMTXRotAxisRad */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXRotAxisRad(Mtx matrix, const Vec* axis, float rad) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXRotAxisRad.s" -} -#pragma pop - -/* 803468E8-8034691C 341228 0034+00 0/0 38/38 471/471 .text PSMTXTrans */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXTrans(Mtx matrix, float x_trans, float y_trans, float z_trans) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXTrans.s" -} -#pragma pop - -/* 8034691C-80346968 34125C 004C+00 0/0 3/3 0/0 .text PSMTXTransApply */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXTransApply(const Mtx src, Mtx dst, float x, float y, float z) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXTransApply.s" -} -#pragma pop - -/* 80346968-80346990 3412A8 0028+00 0/0 14/14 8/8 .text PSMTXScale */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXScale(Mtx matrix, float x_scale, float y_scale, float z_scale) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXScale.s" -} -#pragma pop - -/* 80346990-803469E8 3412D0 0058+00 0/0 1/1 0/0 .text PSMTXScaleApply */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXScaleApply(const Mtx src, Mtx dst, float x_scale, float y_scale, float z_scale) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXScaleApply.s" -} -#pragma pop - -/* 803469E8-80346A8C 341328 00A4+00 0/0 8/8 2/2 .text PSMTXQuat */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXQuat(Mtx matrix, const Quaternion* quat) { - nofralloc -#include "asm/dolphin/mtx/mtx/PSMTXQuat.s" -} -#pragma pop - -/* 80346A8C-80346C18 3413CC 018C+00 0/0 2/2 0/0 .text C_MTXLookAt */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void C_MTXLookAt(Mtx param_1, const Vec* param_2, const Vec* param_3, const Vec* param_4) { - nofralloc -#include "asm/dolphin/mtx/mtx/C_MTXLookAt.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80456518-8045651C 004B18 0004+00 1/1 0/0 0/0 .sdata2 @206 */ -SECTION_SDATA2 static f32 lit_206 = 2.0f; - -/* 8045651C-80456520 004B1C 0004+00 1/1 0/0 0/0 .sdata2 @227 */ -SECTION_SDATA2 static f32 lit_227 = -1.0f; - -/* 80456520-80456528 004B20 0004+04 1/1 0/0 0/0 .sdata2 @230 */ -SECTION_SDATA2 static f32 lit_230[1 + 1 /* padding */] = { - 0.01745329238474369f, - /* padding */ - 0.0f, -}; - -/* 80346C18-80346CE4 341558 00CC+00 0/0 4/4 7/7 .text C_MTXLightPerspective */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void C_MTXLightPerspective(Mtx matrix, float fov_y, float aspect, float scale_s, float scale_t, - float trans_s, float trans_t) { - nofralloc -#include "asm/dolphin/mtx/mtx/C_MTXLightPerspective.s" -} -#pragma pop - -/* 80346CE4-80346D6C 341624 0088+00 0/0 2/2 5/5 .text C_MTXLightOrtho */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void C_MTXLightOrtho(Mtx matrix, float top, float bottom, float left, float right, - float scale_s, float scale_t, float trans_s, float trans_t) { - nofralloc -#include "asm/dolphin/mtx/mtx/C_MTXLightOrtho.s" -} -#pragma pop diff --git a/libs/dolphin/mtx/mtx44.cpp b/libs/dolphin/mtx/mtx44.c similarity index 85% rename from libs/dolphin/mtx/mtx44.cpp rename to libs/dolphin/mtx/mtx44.c index 3952c5507c1..bf7efb33b58 100644 --- a/libs/dolphin/mtx/mtx44.cpp +++ b/libs/dolphin/mtx/mtx44.c @@ -6,7 +6,6 @@ #include "dolphin/mtx/mtx44.h" #include "MSL_C/math.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Declarations: @@ -40,7 +39,7 @@ SECTION_SDATA2 static f32 lit_106 = 0.01745329238474369f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXPerspective(Mtx44 matrix, float fov_y, float aspect, float near, float far) { +asm void C_MTXPerspective(Mtx44 m, f32 fovy, f32 aspect, f32 near, f32 far) { nofralloc #include "asm/dolphin/mtx/mtx44/C_MTXPerspective.s" } @@ -50,8 +49,7 @@ asm void C_MTXPerspective(Mtx44 matrix, float fov_y, float aspect, float near, f #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXOrtho(Mtx44 matrix, float top, float bottom, float left, float right, float near, - float far) { +asm void C_MTXOrtho(Mtx44 m, f32 top, f32 bottom, f32 left, f32 right, f32 near, f32 far) { nofralloc #include "asm/dolphin/mtx/mtx44/C_MTXOrtho.s" } diff --git a/libs/dolphin/mtx/mtxvec.c b/libs/dolphin/mtx/mtxvec.c new file mode 100644 index 00000000000..7e858b14936 --- /dev/null +++ b/libs/dolphin/mtx/mtxvec.c @@ -0,0 +1,157 @@ +/** + * mtxvec.c + * Description: + */ + +#include "dolphin/mtx/mtxvec.h" + +/* 80346D6C-80346DC0 3416AC 0054+00 0/0 158/158 826/826 .text PSMTXMultVec */ +asm void PSMTXMultVec(register const Mtx m, register const Vec* src, register Vec* dst) { + // clang-format off + nofralloc + + psq_l f0, 0(src), 0, 0 + psq_l f2, 0(m), 0, 0 + psq_l f1, 8(src), 1, 0 + ps_mul f4, f2, f0 + psq_l f3, 8(m), 0, 0 + ps_madd f5, f3, f1, f4 + psq_l f8, 16(m), 0, 0 + ps_sum0 f6, f5, f6, f5 + psq_l f9, 24(m), 0, 0 + ps_mul f10, f8, f0 + psq_st f6, 0(dst), 1, 0 + ps_madd f11, f9, f1, f10 + psq_l f2, 32(m), 0, 0 + ps_sum0 f12, f11, f12, f11 + psq_l f3, 40(m), 0, 0 + ps_mul f4, f2, f0 + psq_st f12, 4(dst), 1, 0 + ps_madd f5, f3, f1, f4 + ps_sum0 f6, f5, f6, f5 + psq_st f6, 8(dst), 1, 0 + blr + // clang-format on +} + +/* 80346DC0-80346E4C 341700 008C+00 0/0 2/2 3/3 .text PSMTXMultVecArray */ +asm void PSMTXMultVecArray(register const Mtx m, register const Vec* srcBase, register Vec* dstBase, + register u32 count) { + // clang-format off + nofralloc + + psq_l f13, 0(m), 0, 0 + psq_l f12, 16(m), 0, 0 + addi count, count, -1 + psq_l f11, 8(m), 0, 0 + ps_merge00 f0, f13, f12 + addi dstBase, dstBase, -4 + psq_l f10, 24(m), 0, 0 + ps_merge11 f1, f13, f12 + mtctr count + psq_l f4, 32(m), 0, 0 + ps_merge00 f2, f11, f10 + psq_l f5, 40(m), 0, 0 + ps_merge11 f3, f11, f10 + psq_l f6, 0(srcBase), 0, 0 + psq_lu f7, 8(srcBase), 1, 0 + ps_madds0 f8, f0, f6, f3 + ps_mul f9, f4, f6 + ps_madds1 f8, f1, f6, f8 + ps_madd f10, f5, f7, f9 + +lbl_80346E0C: + psq_lu f6, 4(srcBase), 0, 0 + ps_madds0 f12, f2, f7, f8 + psq_lu f7, 8(srcBase), 1, 0 + ps_sum0 f13, f10, f9, f10 + ps_madds0 f8, f0, f6, f3 + ps_mul f9, f4, f6 + psq_stu f12, 4(dstBase), 0, 0 + ps_madds1 f8, f1, f6, f8 + psq_stu f13, 8(dstBase), 1, 0 + ps_madd f10, f5, f7, f9 + bdnz lbl_80346E0C + + ps_madds0 f12, f2, f7, f8 + ps_sum0 f13, f10, f9, f10 + psq_stu f12, 4(dstBase), 0, 0 + psq_stu f13, 8(dstBase), 1, 0 + blr + // clang-format on +} + +/* 80346E4C-80346EA0 34178C 0054+00 0/0 47/47 9/9 .text PSMTXMultVecSR */ +asm void PSMTXMultVecSR(register const Mtx m, register const Vec* src, register Vec* dst) { + // clang-format off + nofralloc + + psq_l f0, 0(m), 0, 0 + psq_l f6, 0(src), 0, 0 + psq_l f2, 16(m), 0, 0 + ps_mul f8, f0, f6 + psq_l f4, 32(m), 0, 0 + ps_mul f10, f2, f6 + psq_l f7, 8(src), 1, 0 + ps_mul f12, f4, f6 + psq_l f3, 24(m), 0, 0 + ps_sum0 f8, f8, f8, f8 + psq_l f5, 40(m), 0, 0 + ps_sum0 f10, f10, f10, f10 + psq_l f1, 8(m), 0, 0 + ps_sum0 f12, f12, f12, f12 + ps_madd f9, f1, f7, f8 + psq_st f9, 0(dst), 1, 0 + ps_madd f11, f3, f7, f10 + psq_st f11, 4(dst), 1, 0 + ps_madd f13, f5, f7, f12 + psq_st f13, 8(dst), 1, 0 + blr + // clang-format on +} + +/* 80346EA0-80346F28 3417E0 0088+00 0/0 2/2 0/0 .text PSMTXMultVecArraySR */ +asm void PSMTXMultVecArraySR(register const Mtx m, register const Vec* srcBase, + register Vec* dstBase, register u32 count) { + // clang-format off + nofralloc + + psq_l f13, 0(m), 0, 0 + psq_l f12, 16(m), 0, 0 + addi count, count, -1 + psq_l f11, 8(m), 1, 0 + ps_merge00 f0, f13, f12 + addi dstBase, dstBase, -4 + psq_l f10, 24(m), 1, 0 + ps_merge11 f1, f13, f12 + mtctr count + psq_l f3, 32(m), 0, 0 + ps_merge00 f2, f11, f10 + psq_l f4, 40(m), 1, 0 + psq_l f6, 0(srcBase), 0, 0 + psq_lu f7, 8(srcBase), 1, 0 + ps_muls0 f8, f0, f6 + ps_mul f9, f3, f6 + ps_madds1 f8, f1, f6, f8 + ps_madd f10, f4, f7, f9 + +lbl_80346EE8: + psq_lu f6, 4(srcBase), 0, 0 + ps_madds0 f12, f2, f7, f8 + psq_lu f7, 8(srcBase), 1, 0 + ps_sum0 f13, f10, f9, f9 + ps_muls0 f8, f0, f6 + ps_mul f9, f3, f6 + psq_stu f12, 4(dstBase), 0, 0 + ps_madds1 f8, f1, f6, f8 + psq_stu f13, 8(dstBase), 1, 0 + ps_madd f10, f4, f7, f9 + bdnz lbl_80346EE8 + + ps_madds0 f12, f2, f7, f8 + ps_sum0 f13, f10, f9, f9 + psq_stu f12, 4(dstBase), 0, 0 + psq_stu f13, 8(dstBase), 1, 0 + blr + // clang-format on +} diff --git a/libs/dolphin/mtx/mtxvec.cpp b/libs/dolphin/mtx/mtxvec.cpp deleted file mode 100644 index b23654fa584..00000000000 --- a/libs/dolphin/mtx/mtxvec.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: mtxvec -// - -#include "dolphin/mtx/mtxvec.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// - -/* 80346D6C-80346DC0 3416AC 0054+00 0/0 158/158 826/826 .text PSMTXMultVec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXMultVec(const Mtx matrix, const Vec* src, Vec* dst) { - nofralloc -#include "asm/dolphin/mtx/mtxvec/PSMTXMultVec.s" -} -#pragma pop - -/* 80346DC0-80346E4C 341700 008C+00 0/0 2/2 3/3 .text PSMTXMultVecArray */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXMultVecArray(const Mtx matrix, const Vec* src, Vec* dst, u32 count) { - nofralloc -#include "asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s" -} -#pragma pop - -/* 80346E4C-80346EA0 34178C 0054+00 0/0 47/47 9/9 .text PSMTXMultVecSR */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXMultVecSR(const Mtx matrix, const Vec* src, Vec* dst) { - nofralloc -#include "asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s" -} -#pragma pop - -/* 80346EA0-80346F28 3417E0 0088+00 0/0 2/2 0/0 .text PSMTXMultVecArraySR */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSMTXMultVecArraySR(const Mtx matrix, const Vec* src, Vec* dst, u32 count) { - nofralloc -#include "asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s" -} -#pragma pop diff --git a/libs/dolphin/mtx/quat.cpp b/libs/dolphin/mtx/quat.c similarity index 88% rename from libs/dolphin/mtx/quat.cpp rename to libs/dolphin/mtx/quat.c index 42764c6a01f..484aa625f2d 100644 --- a/libs/dolphin/mtx/quat.cpp +++ b/libs/dolphin/mtx/quat.c @@ -6,7 +6,6 @@ #include "dolphin/mtx/quat.h" #include "MSL_C/math.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Declarations: @@ -16,7 +15,7 @@ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSQUATMultiply(const Quaternion* src_a, const Quaternion* src_b, Quaternion* dst) { +asm void PSQUATMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab) { nofralloc #include "asm/dolphin/mtx/quat/PSQUATMultiply.s" } @@ -41,7 +40,7 @@ SECTION_SDATA2 static f32 lit_135 = 0.5f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_QUATRotAxisRad(Quaternion* quat, const Vec* axis, float rad) { +asm void C_QUATRotAxisRad(Quaternion* q, const Vec* axis, f32 rad) { nofralloc #include "asm/dolphin/mtx/quat/C_QUATRotAxisRad.s" } @@ -55,7 +54,7 @@ SECTION_SDATA2 static f32 lit_261 = 0.9999899864196777f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, float t) { +asm void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t) { nofralloc #include "asm/dolphin/mtx/quat/C_QUATSlerp.s" } diff --git a/libs/dolphin/mtx/vec.cpp b/libs/dolphin/mtx/vec.c similarity index 83% rename from libs/dolphin/mtx/vec.cpp rename to libs/dolphin/mtx/vec.c index 603490abce7..256d8b52cd8 100644 --- a/libs/dolphin/mtx/vec.cpp +++ b/libs/dolphin/mtx/vec.c @@ -15,7 +15,7 @@ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECAdd(const Vec* src_a, const Vec* src_b, Vec* dst) { +asm void PSVECAdd(const Vec* a, const Vec* b, Vec* ab) { nofralloc #include "asm/dolphin/mtx/vec/PSVECAdd.s" } @@ -25,7 +25,7 @@ asm void PSVECAdd(const Vec* src_a, const Vec* src_b, Vec* dst) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECSubtract(const Vec* a, const Vec* b, Vec* dst) { +asm void PSVECSubtract(const Vec* a, const Vec* b, Vec* a_b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECSubtract.s" } @@ -35,7 +35,7 @@ asm void PSVECSubtract(const Vec* a, const Vec* b, Vec* dst) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECScale(const Vec* src, Vec* dst, float scale) { +asm void PSVECScale(const Vec* src, Vec* dst, f32 scale) { nofralloc #include "asm/dolphin/mtx/vec/PSVECScale.s" } @@ -60,7 +60,7 @@ SECTION_SDATA2 static f32 lit_119 = 3.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECNormalize(const Vec* src, Vec* dst) { +asm void PSVECNormalize(const Vec* src, Vec* unit) { nofralloc #include "asm/dolphin/mtx/vec/PSVECNormalize.s" } @@ -70,7 +70,7 @@ asm void PSVECNormalize(const Vec* src, Vec* dst) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm float PSVECSquareMag(const Vec* vec) { +asm f32 PSVECSquareMag(const Vec* v) { nofralloc #include "asm/dolphin/mtx/vec/PSVECSquareMag.s" } @@ -80,7 +80,7 @@ asm float PSVECSquareMag(const Vec* vec) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm float PSVECMag(const Vec* data) { +asm f32 PSVECMag(const Vec* v) { nofralloc #include "asm/dolphin/mtx/vec/PSVECMag.s" } @@ -90,7 +90,7 @@ asm float PSVECMag(const Vec* data) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm float PSVECDotProduct(const Vec* a, const Vec* b) { +asm f32 PSVECDotProduct(const Vec* a, const Vec* b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECDotProduct.s" } @@ -100,7 +100,7 @@ asm float PSVECDotProduct(const Vec* a, const Vec* b) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECCrossProduct(const Vec* src_a, const Vec* src_b, Vec* dst) { +asm void PSVECCrossProduct(const Vec* a, const Vec* b, Vec* axb) { nofralloc #include "asm/dolphin/mtx/vec/PSVECCrossProduct.s" } @@ -110,7 +110,7 @@ asm void PSVECCrossProduct(const Vec* src_a, const Vec* src_b, Vec* dst) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_VECHalfAngle(const Vec* incident, const Vec* line_of_sight, Vec* out_half) { +asm void C_VECHalfAngle(const Vec* a, const Vec* b, Vec* half) { nofralloc #include "asm/dolphin/mtx/vec/C_VECHalfAngle.s" } @@ -124,7 +124,7 @@ SECTION_SDATA2 static f32 lit_161 = 2.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_VECReflect(const Vec* src, const Vec* surface_normal, Vec* dst) { +asm void C_VECReflect(const Vec* src, const Vec* normal, Vec* dst) { nofralloc #include "asm/dolphin/mtx/vec/C_VECReflect.s" } @@ -134,7 +134,7 @@ asm void C_VECReflect(const Vec* src, const Vec* surface_normal, Vec* dst) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm float PSVECSquareDistance(const Vec* a, const Vec* b) { +asm f32 PSVECSquareDistance(const Vec* a, const Vec* b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECSquareDistance.s" } @@ -144,7 +144,7 @@ asm float PSVECSquareDistance(const Vec* a, const Vec* b) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm float PSVECDistance(const Vec* a, const Vec* b) { +asm f32 PSVECDistance(const Vec* a, const Vec* b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECDistance.s" } diff --git a/libs/dolphin/os/Makefile b/libs/dolphin/os/Makefile index 0899b99d027..916f20e5ba9 100644 --- a/libs/dolphin/os/Makefile +++ b/libs/dolphin/os/Makefile @@ -3,29 +3,29 @@ # LIBOS_A_CPP_FILES := \ - libs/dolphin/os/OS.cpp \ - libs/dolphin/os/OSAlarm.cpp \ - libs/dolphin/os/OSAlloc.cpp \ - libs/dolphin/os/OSArena.cpp \ - libs/dolphin/os/OSAudioSystem.cpp \ - libs/dolphin/os/OSCache.cpp \ - libs/dolphin/os/OSContext.cpp \ - libs/dolphin/os/OSError.cpp \ - libs/dolphin/os/OSExec.cpp \ - libs/dolphin/os/OSFont.cpp \ - libs/dolphin/os/OSInterrupt.cpp \ - libs/dolphin/os/OSLink.cpp \ - libs/dolphin/os/OSMessage.cpp \ - libs/dolphin/os/OSMemory.cpp \ - libs/dolphin/os/OSMutex.cpp \ - libs/dolphin/os/OSReboot.cpp \ - libs/dolphin/os/OSReset.cpp \ - libs/dolphin/os/OSResetSW.cpp \ - libs/dolphin/os/OSRtc.cpp \ - libs/dolphin/os/OSSync.cpp \ - libs/dolphin/os/OSThread.cpp \ - libs/dolphin/os/OSTime.cpp \ - libs/dolphin/os/__ppc_eabi_init.cpp \ + libs/dolphin/os/OS.c \ + libs/dolphin/os/OSAlarm.c \ + libs/dolphin/os/OSAlloc.c \ + libs/dolphin/os/OSArena.c \ + libs/dolphin/os/OSAudioSystem.c \ + libs/dolphin/os/OSCache.c \ + libs/dolphin/os/OSContext.c \ + libs/dolphin/os/OSError.c \ + libs/dolphin/os/OSExec.c \ + libs/dolphin/os/OSFont.c \ + libs/dolphin/os/OSInterrupt.c \ + libs/dolphin/os/OSLink.c \ + libs/dolphin/os/OSMessage.c \ + libs/dolphin/os/OSMemory.c \ + libs/dolphin/os/OSMutex.c \ + libs/dolphin/os/OSReboot.c \ + libs/dolphin/os/OSReset.c \ + libs/dolphin/os/OSResetSW.c \ + libs/dolphin/os/OSRtc.c \ + libs/dolphin/os/OSSync.c \ + libs/dolphin/os/OSThread.c \ + libs/dolphin/os/OSTime.c \ + libs/dolphin/os/__ppc_eabi_init.c \ LIBOS_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/os/OS.o \ @@ -54,6 +54,7 @@ LIBOS_A_O_FILES := \ LIBOS_A_CFLAGS := \ -O4,p \ + -lang=c \ LIBOS_A_LDFLAGS := \ -nodefaults \ @@ -66,9 +67,9 @@ $(BUILD_DIR)/libos.a: $(LIBOS_A_O_FILES) @echo $(LIBOS_A_O_FILES) > build/LIBOS_A_ofiles @$(LD) -xm l $(LIBOS_A_LDFLAGS) -o $(BUILD_DIR)/libos.a @build/LIBOS_A_ofiles -$(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.cpp +$(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBOS_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBOS_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/os/OS.cpp b/libs/dolphin/os/OS.c similarity index 55% rename from libs/dolphin/os/OS.cpp rename to libs/dolphin/os/OS.c index 9d93ce9f8d5..ba545478b64 100644 --- a/libs/dolphin/os/OS.cpp +++ b/libs/dolphin/os/OS.c @@ -13,38 +13,38 @@ SECTION_INIT void memset(); SECTION_INIT void memcpy(); -extern "C" void PPCMtmmcr0(); -extern "C" void PPCMtmmcr1(); -extern "C" void PPCMtpmc1(); -extern "C" void PPCMtpmc2(); -extern "C" void PPCMtpmc3(); -extern "C" void PPCMtpmc4(); -extern "C" void PPCMfhid2(); -extern "C" void PPCMthid2(); -extern "C" void PPCDisableSpeculation(); -extern "C" void PPCSetFpNonIEEEMode(); -extern "C" void OSInitAlarm(); -extern "C" void __OSInitAudioSystem(); -extern "C" void __OSCacheInit(); -extern "C" void __OSContextInit(); -extern "C" void __OSInterruptInit(); -extern "C" void __OSModuleInit(); -extern "C" void __OSInitMemoryProtection(); -extern "C" void __OSResetSWInterruptHandler(); -extern "C" void __OSInitSram(); -extern "C" void __OSInitSystemCall(); -extern "C" void __OSThreadInit(); -extern "C" void EXIInit(); -extern "C" void SIInit(); -extern "C" void __DBIsExceptionMarked(); -extern "C" void DBPrintf(); -extern "C" void DVDInit(); -extern "C" void DVDInquiryAsync(); -extern "C" void EnableMetroTRKInterrupts(); -extern "C" extern u8 __DVDLongFileNameFlag[4]; -extern "C" extern u8 __PADSpec[4 + 4 /* padding */]; -extern "C" void _epilog(); -extern "C" void regist__9daBgObj_cFP4dBgW(); +void PPCMtmmcr0(); +void PPCMtmmcr1(); +void PPCMtpmc1(); +void PPCMtpmc2(); +void PPCMtpmc3(); +void PPCMtpmc4(); +void PPCMfhid2(); +void PPCMthid2(); +void PPCDisableSpeculation(); +void PPCSetFpNonIEEEMode(); +void OSInitAlarm(); +void __OSInitAudioSystem(); +void __OSCacheInit(); +void __OSContextInit(); +void __OSInterruptInit(); +void __OSModuleInit(); +void __OSInitMemoryProtection(); +void __OSResetSWInterruptHandler(); +void __OSInitSram(); +void __OSInitSystemCall(); +void __OSThreadInit(); +void EXIInit(); +void SIInit(); +void __DBIsExceptionMarked(); +void DBPrintf(); +void DVDInit(); +void DVDInquiryAsync(); +void EnableMetroTRKInterrupts(); +extern u8 __DVDLongFileNameFlag[4]; +extern u8 __PADSpec[4 + 4 /* padding */]; +void _epilog(); +void regist__9daBgObj_cFP4dBgW(); // // Declarations: @@ -52,61 +52,158 @@ extern "C" void regist__9daBgObj_cFP4dBgW(); /* ############################################################################################## */ /* 80451600-80451604 000B00 0004+00 2/2 0/0 0/0 .sbss BootInfo */ -static u8 BootInfo[4]; +static OSBootInfo* BootInfo; /* 80451604-80451608 000B04 0004+00 2/2 0/0 0/0 .sbss BI2DebugFlag */ -static u8 BI2DebugFlag[4]; +static volatile u32* BI2DebugFlag; /* 80451608-8045160C 000B08 0004+00 1/1 0/0 0/0 .sbss BI2DebugFlagHolder */ -static u8 BI2DebugFlagHolder[4]; +static u32* BI2DebugFlagHolder; -/* 8045160C-80451610 000B0C 0004+00 1/1 1/1 0/0 .sbss __OSIsGcam */ -extern u8 __OSIsGcam[4]; -u8 __OSIsGcam[4]; +/* 80451630-80451634 000B30 0004+00 1/1 1/1 0/0 .sbss __OSStartTime */ +extern OSTime __OSStartTime; +OSTime __OSStartTime; -/* 80451610-80451618 000B10 0008+00 1/1 0/0 0/0 .sbss ZeroF */ -static f64 ZeroF; +/* 80451628-80451630 000B28 0004+04 1/1 1/1 0/0 .sbss __OSInIPL */ +extern BOOL __OSInIPL; +BOOL __OSInIPL; + +/* 80451624-80451628 000B24 0004+00 3/3 0/0 0/0 .sbss OSExceptionTable */ +extern OSExceptionHandler* OSExceptionTable; +OSExceptionHandler* OSExceptionTable; + +/* 80451620-80451624 000B20 0004+00 1/1 0/0 0/0 .sbss AreWeInitialized */ +extern BOOL AreWeInitialized; +BOOL AreWeInitialized; /* 80451618-80451620 000B18 0008+00 1/1 0/0 0/0 .sbss ZeroPS */ -static u8 ZeroPS[8]; +extern f64 ZeroPS; +f64 ZeroPS; + +/* 80451610-80451618 000B10 0008+00 1/1 0/0 0/0 .sbss ZeroF */ +extern f64 ZeroF; +f64 ZeroF; + +/* 8045160C-80451610 000B0C 0004+00 1/1 1/1 0/0 .sbss __OSIsGcam */ +extern BOOL __OSIsGcam; +BOOL __OSIsGcam; /* 80339DD4-80339EFC 334714 0128+00 0/0 1/1 0/0 .text __OSFPRInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off asm void __OSFPRInit(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OS/__OSFPRInit.s" + + mfmsr r3 + ori r3, r3, 0x2000 + mtmsr r3 + + mfspr r3, 0x398 + rlwinm. r3, r3, 3, 0x1f, 0x1f + beq skip_ps_init + + lis r3, ZeroPS@ha + addi r3, r3, ZeroPS@l + psq_l f0, 0(r3), 0, 0 + ps_mr f1, f0 + ps_mr f2, f0 + ps_mr f3, f0 + ps_mr f4, f0 + ps_mr f5, f0 + ps_mr f6, f0 + ps_mr f7, f0 + ps_mr f8, f0 + ps_mr f9, f0 + ps_mr f10, f0 + ps_mr f11, f0 + ps_mr f12, f0 + ps_mr f13, f0 + ps_mr f14, f0 + ps_mr f15, f0 + ps_mr f16, f0 + ps_mr f17, f0 + ps_mr f18, f0 + ps_mr f19, f0 + ps_mr f20, f0 + ps_mr f21, f0 + ps_mr f22, f0 + ps_mr f23, f0 + ps_mr f24, f0 + ps_mr f25, f0 + ps_mr f26, f0 + ps_mr f27, f0 + ps_mr f28, f0 + ps_mr f29, f0 + ps_mr f30, f0 + ps_mr f31, f0 + +skip_ps_init: + lfd f0, ZeroF(r13) + fmr f1, f0 + fmr f2, f0 + fmr f3, f0 + fmr f4, f0 + fmr f5, f0 + fmr f6, f0 + fmr f7, f0 + fmr f8, f0 + fmr f9, f0 + fmr f10, f0 + fmr f11, f0 + fmr f12, f0 + fmr f13, f0 + fmr f14, f0 + fmr f15, f0 + fmr f16, f0 + fmr f17, f0 + fmr f18, f0 + fmr f19, f0 + fmr f20, f0 + fmr f21, f0 + fmr f22, f0 + fmr f23, f0 + fmr f24, f0 + fmr f25, f0 + fmr f26, f0 + fmr f27, f0 + fmr f28, f0 + fmr f29, f0 + fmr f30, f0 + fmr f31, f0 + + mtfsf 0xff, f0 + blr + // clang-format on } -#pragma pop /* 80339EFC-80339F24 33483C 0028+00 0/0 5/5 0/0 .text OSGetConsoleType */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 OSGetConsoleType(void) { - nofralloc -#include "asm/dolphin/os/OS/OSGetConsoleType.s" +u32 OSGetConsoleType(void) { + if (BootInfo == NULL || BootInfo->console_type == 0) { + return 0x10000002; // default console type + } + + return BootInfo->console_type; } -#pragma pop /* ############################################################################################## */ /* 8044BA60-8044BA80 078780 0020+00 2/2 0/0 0/0 .bss DriveInfo */ -static u8 DriveInfo[32]; +static DVDDriveInfo DriveInfo; /* 80339F24-80339F60 334864 003C+00 1/1 0/0 0/0 .text InquiryCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void InquiryCallback(u32 param_0, void* param_1) { - nofralloc -#include "asm/dolphin/os/OS/InquiryCallback.s" +static void InquiryCallback(u32 result, DVDCommandBlock* block) { + switch (block->state) { + case 0: + __OSDeviceCode = (u16)(0x8000 | DriveInfo.device_code); + break; + default: + __OSDeviceCode = 1; + break; + } } -#pragma pop /* ############################################################################################## */ /* 803CF288-803CF2CC 02C3A8 0044+00 3/2 0/0 0/0 .data @1 */ -SECTION_DATA static char lit_1[68] = "<< Dolphin SDK - OS release build: Nov 10 2004 06:26:41 (0x2301) >>"; +SECTION_DATA static char lit_1[68] = + "<< Dolphin SDK - OS release build: Nov 10 2004 06:26:41 (0x2301) >>"; /* 803CF2CC-803CF2DC 02C3EC 000D+03 0/1 0/0 0/0 .data @105 */ #pragma push @@ -202,24 +299,6 @@ SECTION_SDATA static void* __OSVersion = (void*)&lit_1; /* 80450984-8045098C 000404 0006+02 1/1 0/0 0/0 .sdata @116 */ SECTION_SDATA static char lit_116[6] = "%08x\n"; -/* 80451620-80451624 000B20 0004+00 1/1 0/0 0/0 .sbss AreWeInitialized */ -static u8 AreWeInitialized[4]; - -/* 80451624-80451628 000B24 0004+00 3/3 0/0 0/0 .sbss OSExceptionTable */ -static u8 OSExceptionTable[4]; - -/* 80451628-80451630 000B28 0004+04 1/1 1/1 0/0 .sbss __OSInIPL */ -extern u8 __OSInIPL[4 + 4 /* padding */]; -u8 __OSInIPL[4 + 4 /* padding */]; - -/* 80451630-80451634 000B30 0004+00 1/1 1/1 0/0 .sbss __OSStartTime */ -extern u8 __OSStartTime[4]; -u8 __OSStartTime[4]; - -/* 80451634-80451638 000B34 0004+00 1/1 1/1 0/0 .sbss None */ -extern u8 data_80451634[4]; -u8 data_80451634[4]; - extern void* __ArenaHi; extern void* _stack_end; @@ -237,11 +316,22 @@ asm void OSInit(void) { /* 803CF3AC-803CF3E8 02C4CC 003C+00 0/1 0/0 0/0 .data __OSExceptionLocations */ #pragma push #pragma force_active on -SECTION_DATA static u8 __OSExceptionLocations[60] = { - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, - 0x00, 0x0F, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, +SECTION_DATA static u32 __OSExceptionLocations[] = { + 0x00000100, // 0 System reset + 0x00000200, // 1 Machine check + 0x00000300, // 2 DSI - seg fault or DABR + 0x00000400, // 3 ISI + 0x00000500, // 4 External interrupt + 0x00000600, // 5 Alignment + 0x00000700, // 6 Program + 0x00000800, // 7 FP Unavailable + 0x00000900, // 8 Decrementer + 0x00000C00, // 9 System call + 0x00000D00, // 10 Trace + 0x00000F00, // 11 Performance monitor + 0x00001300, // 12 Instruction address breakpoint. + 0x00001400, // 13 System management interrupt + 0x00001700 // 14 Thermal interrupt }; #pragma pop @@ -280,107 +370,168 @@ static asm void OSExceptionInit(void) { #pragma pop /* 8033A6C0-8033A6E4 335000 0024+00 1/1 0/0 0/0 .text __OSDBIntegrator */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off asm void __OSDBIntegrator(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OS/__OSDBIntegrator.s" + + li r5, 0x40 + mflr r3 + stw r3, 0xc(r5) + lwz r3, 8(r5) + oris r3, r3, 0x8000 + mtlr r3 + li r3, 0x30 + mtmsr r3 + blr + // clang-format on } -#pragma pop /* 8033A6E4-8033A6E8 335024 0004+00 1/1 0/0 0/0 .text __OSDBJump */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSDBJump(void) { +asm void __OSDBJump(void){ + // clang-format off nofralloc -#include "asm/dolphin/os/OS/__OSDBJump.s" + + bla 0x60 + // clang-format on } -#pragma pop /* 8033A6E8-8033A704 335028 001C+00 1/1 3/3 0/0 .text __OSSetExceptionHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSExceptionHandler __OSSetExceptionHandler(OSException exception, OSExceptionHandler handler) { - nofralloc -#include "asm/dolphin/os/OS/__OSSetExceptionHandler.s" +OSExceptionHandler __OSSetExceptionHandler(__OSException exception, OSExceptionHandler handler) { + OSExceptionHandler old = OSExceptionTable[exception]; + OSExceptionTable[exception] = handler; + return old; } -#pragma pop /* 8033A704-8033A718 335044 0014+00 0/0 1/1 0/0 .text __OSGetExceptionHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSExceptionHandler __OSGetExceptionHandler(OSException exception) { - nofralloc -#include "asm/dolphin/os/OS/__OSGetExceptionHandler.s" +OSExceptionHandler __OSGetExceptionHandler(__OSException exception) { + return OSExceptionTable[exception]; } -#pragma pop /* 8033A718-8033A770 335058 0058+00 1/1 0/0 0/0 .text OSExceptionVector */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off static asm void OSExceptionVector(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OS/OSExceptionVector.s" -} -#pragma pop -// fake function? -/* 8033A770-8033A780 3350B0 0010+00 1/1 0/0 0/0 .text __DBVECTOR */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DBVECTOR() { - nofralloc -#include "asm/dolphin/os/OS/__DBVECTOR.s" -} -#pragma pop + mtspr 0x110, r4 -// fake function? -/* 8033A780-8033A7B0 3350C0 0030+00 1/1 0/0 0/0 .text __OSEVSetNumber */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSEVSetNumber() { - nofralloc -#include "asm/dolphin/os/OS/__OSEVSetNumber.s" -} -#pragma pop + lwz r4, 0xc0(r0) -/* 8033A7B0-8033A7B4 3350F0 0004+00 1/1 0/0 0/0 .text __OSEVEnd */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSEVEnd() { - nofralloc -#include "asm/dolphin/os/OS/__OSEVEnd.s" -} -#pragma pop + stw r3, 0xc(r4) + mfspr r3, 0x110 + stw r3, 0x10(r4) + stw r5, 0x14(r4) + + lhz r3, 0x1a2(r4) + ori r3, r3, 2 + sth r3, 0x1a2(r4) + + mfcr r3 + stw r3, 0x80(r4) + mflr r3 + stw r3, 0x84(r4) + mfctr r3 + stw r3, 0x88(r4) + mfxer r3 + stw r3, 0x8c(r4) + mfspr r3, 0x1a + stw r3, 0x198(r4) + mfspr r3, 0x1b + stw r3, 0x19c(r4) + mr r5, r3 + +entry __DBVECTOR + nop + + mfmsr r3 + ori r3, r3, 0x30 + mtspr 0x1b, r3 + +entry __OSEVSetNumber + li r3, 0 + + lwz r4, 0xd4(r0) + + rlwinm. r5, r5, 0, 0x1e, 0x1e + bne recoverable + lis r5, OSDefaultExceptionHandler@ha + addi r5, r5, OSDefaultExceptionHandler@l + mtspr 0x1a, r5 + rfi + +recoverable: + rlwinm r5, r3, 2, 0x16, 0x1d + lwz r5, 0x3000(r5) + mtspr 0x1a, r5 + rfi + +entry __OSEVEnd + nop + // clang-format on +} -// fake function? /* 8033A7B4-8033A80C 3350F4 0058+00 2/2 0/0 0/0 .text OSDefaultExceptionHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSDefaultExceptionHandler(OSException exception, OSContext* context) { +static asm void OSDefaultExceptionHandler(register __OSException exception, + register OSContext* context) { + // clang-format off nofralloc -#include "asm/dolphin/os/OS/OSDefaultExceptionHandler.s" + + stw r0, 0(context) + stw r1, 4(context) + stw r2, 8(context) + stmw r6, 0x18(context) + mfspr r0, 0x391 + stw r0, 0x1a8(context) + mfspr r0, 0x392 + stw r0, 0x1ac(context) + mfspr r0, 0x393 + stw r0, 0x1b0(context) + mfspr r0, 0x394 + stw r0, 0x1b4(context) + mfspr r0, 0x395 + stw r0, 0x1b8(context) + mfspr r0, 0x396 + stw r0, 0x1bc(context) + mfspr r0, 0x397 + stw r0, 0x1c0(context) + + mfdsisr r5 + mfdar r6 + + stwu r1, -8(r1) + b __OSUnhandledException + // clang-format on } -#pragma pop /* 8033A80C-8033A860 33514C 0054+00 0/0 1/1 0/0 .text __OSPSInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off asm void __OSPSInit(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OS/__OSPSInit.s" + + mflr r0 + stw r0, 4(r1) + stwu r1, -8(r1) + bl PPCMfhid2 + oris r3, r3, 0xa000 + bl PPCMthid2 + bl ICFlashInvalidate + sync + + li r3, 0 + mtspr 0x390, r3 + mtspr 0x391, r3 + mtspr 0x392, r3 + mtspr 0x393, r3 + mtspr 0x394, r3 + mtspr 0x395, r3 + mtspr 0x396, r3 + mtspr 0x397, r3 + + lwz r0, 0xc(r1) + addi r1, r1, 8 + mtlr r0 + blr + // clang-format on } -#pragma pop /* 8033A860-8033A874 3351A0 0014+00 0/0 1/1 0/0 .text __OSGetDIConfig */ #pragma push diff --git a/libs/dolphin/os/OSAlarm.cpp b/libs/dolphin/os/OSAlarm.c similarity index 66% rename from libs/dolphin/os/OSAlarm.cpp rename to libs/dolphin/os/OSAlarm.c index bccb9a21ba1..3ae3df79fbc 100644 --- a/libs/dolphin/os/OSAlarm.cpp +++ b/libs/dolphin/os/OSAlarm.c @@ -5,26 +5,27 @@ #include "dolphin/os/OSAlarm.h" #include "dol2asm.h" +#include "dolphin/os/OSReset.h" #include "dolphin/types.h" // // External References: // -extern "C" void PPCMtdec(); -extern "C" void __OSSetExceptionHandler(); -extern "C" void __OSGetExceptionHandler(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSLoadContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSRegisterResetFunction(); -extern "C" void OSDisableScheduler(); -extern "C" void OSEnableScheduler(); -extern "C" void __OSReschedule(); -extern "C" void __DVDTestAlarm(); -extern "C" void __div2i(); +void PPCMtdec(); +void __OSSetExceptionHandler(); +void __OSGetExceptionHandler(); +void OSSetCurrentContext(); +void OSLoadContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void OSRegisterResetFunction(); +void OSDisableScheduler(); +void OSEnableScheduler(); +void __OSReschedule(); +void __DVDTestAlarm(); +void __div2i(); // // Declarations: @@ -32,11 +33,11 @@ extern "C" void __div2i(); /* ############################################################################################## */ /* 803CF480-803CF490 -00001 0010+00 1/1 0/0 0/0 .data ResetFunctionInfo */ -SECTION_DATA static void* ResetFunctionInfo[4] = { - (void*)OnReset, - (void*)0xFFFFFFFF, - (void*)NULL, - (void*)NULL, +static OSResetFunctionInfo ResetFunctionInfo = { + OnReset, + 0xFFFFFFFF, + NULL, + NULL, }; /* 80451638-80451640 000B38 0008+00 5/5 0/0 0/0 .sbss AlarmQueue */ @@ -53,14 +54,10 @@ asm void OSInitAlarm(void) { #pragma pop /* 8033A8F8-8033A908 335238 0010+00 0/0 17/17 0/0 .text OSCreateAlarm */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSCreateAlarm(OSAlarm* alarm) { - nofralloc -#include "asm/dolphin/os/OSAlarm/OSCreateAlarm.s" +void OSCreateAlarm(OSAlarm* alarm) { + alarm->handler = NULL; + alarm->tag = 0; } -#pragma pop /* 8033A908-8033AB58 335248 0250+00 3/3 0/0 0/0 .text InsertAlarm */ #pragma push @@ -106,21 +103,40 @@ asm void OSCancelAlarm(OSAlarm* alarm) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void DecrementerExceptionCallback(OSException* exception, struct OSContext* context) { +static asm void DecrementerExceptionCallback(__OSException exception, OSContext* context) { nofralloc #include "asm/dolphin/os/OSAlarm/DecrementerExceptionCallback.s" } #pragma pop /* 8033AF88-8033AFD8 3358C8 0050+00 1/1 0/0 0/0 .text DecrementerExceptionHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DecrementerExceptionHandler(OSException* exception, struct OSContext* context) { +static asm void DecrementerExceptionHandler(register __OSException exception, + register OSContext* context) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSAlarm/DecrementerExceptionHandler.s" + + stw r0, 0(context) + stw r1, 4(context) + stw r2, 8(context) + stmw r6, 0x18(context) + mfspr r0, 0x391 + stw r0, 0x1a8(context) + mfspr r0, 0x392 + stw r0, 0x1ac(context) + mfspr r0, 0x393 + stw r0, 0x1b0(context) + mfspr r0, 0x394 + stw r0, 0x1b4(context) + mfspr r0, 0x395 + stw r0, 0x1b8(context) + mfspr r0, 0x396 + stw r0, 0x1bc(context) + mfspr r0, 0x397 + stw r0, 0x1c0(context) + stwu r1, -8(r1) + b DecrementerExceptionCallback + // clang-format on } -#pragma pop /* 8033AFD8-8033B078 335918 00A0+00 1/0 0/0 0/0 .text OnReset */ #pragma push diff --git a/libs/dolphin/os/OSAlloc.c b/libs/dolphin/os/OSAlloc.c new file mode 100644 index 00000000000..6f5ff3c4ec9 --- /dev/null +++ b/libs/dolphin/os/OSAlloc.c @@ -0,0 +1,144 @@ +// +// Translation Unit: OSAlloc +// + +#include "dolphin/os/OSAlloc.h" + +/* 8033B078-8033B124 3359B8 00AC+00 1/1 0/0 0/0 .text DLInsert */ +static OSHeapCell* DLInsert(OSHeapCell* list, OSHeapCell* child) { + OSHeapCell* prev = NULL; + OSHeapCell* next = list; + + for (; next != NULL; prev = next, next = next->next) { + if ((char*)child <= (char*)next) { + break; + } + } + + child->next = next; + child->prev = prev; + + if (next != NULL) { + next->prev = child; + + if ((char*)child + child->size == (char*)next) { + child->size += next->size; + next = next->next; + child->next = next; + if (next != NULL) { + next->prev = child; + } + } + } + + if (prev != NULL) { + prev->next = child; + + if ((char*)prev + prev->size == (char*)child) { + prev->size += child->size; + prev->next = next; + if (next != NULL) { + next->prev = prev; + } + } + + return list; + } else { + return child; + } +} + +inline OSHeapCell* DLExtract(OSHeapCell* list, OSHeapCell* child) { + if (child->next != NULL) { + child->next->prev = child->prev; + } + + if (child->prev == NULL) { + return child->next; + } + + child->prev->next = child->next; + return list; +} + +/* ############################################################################################## */ +/* 80451640-80451644 000B40 0004+00 3/3 0/0 0/0 .sbss HeapArray */ +static OSHeapDescriptor* HeapArray; + +/* 8033B124-8033B1A0 335A64 007C+00 0/0 1/1 0/0 .text OSFreeToHeap */ +void OSFreeToHeap(OSHeapHandle handle, void* ptr) { + OSHeapDescriptor* hd = &HeapArray[handle]; + OSHeapCell* cell = (OSHeapCell*)((char*)ptr - sizeof(OSHeapCell)); + hd->usedList = DLExtract(hd->usedList, cell); + hd->freeList = DLInsert(hd->freeList, cell); +} + +/* ############################################################################################## */ +/* 80450990-80450998 000410 0004+04 2/2 1/1 0/0 .sdata __OSCurrHeap */ +volatile s32 __OSCurrHeap = -1; + +/* 8033B1A0-8033B1B0 335AE0 0010+00 0/0 1/1 0/0 .text OSSetCurrentHeap */ +s32 OSSetCurrentHeap(OSHeapHandle handle) { + s32 old = __OSCurrHeap; + __OSCurrHeap = handle; + return old; +} + +/* ############################################################################################## */ +/* 80451644-80451648 000B44 0004+00 2/2 0/0 0/0 .sbss NumHeaps */ +static s32 NumHeaps; + +/* 80451648-8045164C 000B48 0004+00 1/1 0/0 0/0 .sbss ArenaStart */ +static void* ArenaStart; + +/* 8045164C-80451650 000B4C 0004+00 1/1 0/0 0/0 .sbss ArenaEnd */ +static void* ArenaEnd; + +/* 8033B1B0-8033B220 335AF0 0070+00 0/0 2/2 0/0 .text OSInitAlloc */ +void* OSInitAlloc(void* lo, void* hi, s32 maxHeaps) { + u32 totalSize = maxHeaps * sizeof(OSHeapDescriptor); + int i; + + HeapArray = lo; + NumHeaps = maxHeaps; + + for (i = 0; i < NumHeaps; i++) { + OSHeapDescriptor* hd = &HeapArray[i]; + hd->size = -1; + + hd->freeList = hd->usedList = NULL; + } + + __OSCurrHeap = -1; + + lo = (u8*)HeapArray + totalSize; + lo = OSRoundUpPtr(lo, 0x20); + + ArenaStart = lo; + ArenaEnd = OSRoundDownPtr(hi, 0x20); + + return ArenaStart; +} + +/* 8033B220-8033B28C 335B60 006C+00 0/0 1/1 0/0 .text OSCreateHeap */ +OSHeapHandle OSCreateHeap(void* start, void* end) { + int i; + OSHeapCell* cell = OSRoundUpPtr(start, 0x20); + end = OSRoundDownPtr(end, 0x20); + + for (i = 0; i < NumHeaps; i++) { + OSHeapDescriptor* hd = &HeapArray[i]; + + if (hd->size < 0) { + hd->size = (u8*)end - (u8*)cell; + cell->prev = NULL; + cell->next = NULL; + cell->size = hd->size; + hd->freeList = cell; + hd->usedList = NULL; + return i; + } + } + + return -1; +} diff --git a/libs/dolphin/os/OSAlloc.cpp b/libs/dolphin/os/OSAlloc.cpp deleted file mode 100644 index 0083e26f353..00000000000 --- a/libs/dolphin/os/OSAlloc.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: OSAlloc -// - -#include "dolphin/os/OSAlloc.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// - -/* 8033B078-8033B124 3359B8 00AC+00 1/1 0/0 0/0 .text DLInsert */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void* DLInsert(void* param_0, void* param_1) { - nofralloc -#include "asm/dolphin/os/OSAlloc/DLInsert.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80451640-80451644 000B40 0004+00 3/3 0/0 0/0 .sbss HeapArray */ -static u8 HeapArray[4]; - -/* 8033B124-8033B1A0 335A64 007C+00 0/0 1/1 0/0 .text OSFreeToHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSFreeToHeap(OSHeapHandle heap, void* ptr) { - nofralloc -#include "asm/dolphin/os/OSAlloc/OSFreeToHeap.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80450990-80450998 000410 0004+04 2/2 1/1 0/0 .sdata __OSCurrHeap */ -SECTION_SDATA extern u32 __OSCurrHeap[1 + 1 /* padding */] = { - 0xFFFFFFFF, - /* padding */ - 0x00000000, -}; - -/* 8033B1A0-8033B1B0 335AE0 0010+00 0/0 1/1 0/0 .text OSSetCurrentHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetCurrentHeap(OSHeapHandle heap) { - nofralloc -#include "asm/dolphin/os/OSAlloc/OSSetCurrentHeap.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80451644-80451648 000B44 0004+00 2/2 0/0 0/0 .sbss NumHeaps */ -static u8 NumHeaps[4]; - -/* 80451648-8045164C 000B48 0004+00 1/1 0/0 0/0 .sbss ArenaStart */ -static u8 ArenaStart[4]; - -/* 8045164C-80451650 000B4C 0004+00 1/1 0/0 0/0 .sbss ArenaEnd */ -static u8 ArenaEnd[4]; - -/* 8033B1B0-8033B220 335AF0 0070+00 0/0 2/2 0/0 .text OSInitAlloc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* OSInitAlloc(void* lo, void* hi, s32 maxHeaps) { - nofralloc -#include "asm/dolphin/os/OSAlloc/OSInitAlloc.s" -} -#pragma pop - -/* 8033B220-8033B28C 335B60 006C+00 0/0 1/1 0/0 .text OSCreateHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSHeapHandle OSCreateHeap(void* start, void* end) { - nofralloc -#include "asm/dolphin/os/OSAlloc/OSCreateHeap.s" -} -#pragma pop diff --git a/libs/dolphin/os/OSArena.cpp b/libs/dolphin/os/OSArena.c similarity index 54% rename from libs/dolphin/os/OSArena.cpp rename to libs/dolphin/os/OSArena.c index 1baf49fa839..8afdc5ff722 100644 --- a/libs/dolphin/os/OSArena.cpp +++ b/libs/dolphin/os/OSArena.c @@ -1,15 +1,9 @@ // -// Generated By: dol2asm // Translation Unit: OSArena // #include "dolphin/os/OSArena.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// +#include "dolphin/os/OSAlloc.h" /* ############################################################################################## */ /* 80451650-80451658 000B50 0004+04 2/1 0/0 0/0 .sbss __OSArenaHi */ @@ -17,44 +11,34 @@ static void* __OSArenaHi; /* 8033B28C-8033B294 -00001 0008+00 0/0 0/0 0/0 .text OSGetArenaHi */ void* OSGetArenaHi(void) { - return &*(u32*)__OSArenaHi; + return __OSArenaHi; } /* ############################################################################################## */ /* 80450998-804509A0 000418 0004+04 3/2 0/0 0/0 .sdata __OSArenaLo */ -SECTION_SDATA static u32 __OSArenaLo = 0xFFFFFFFF; +static void* __OSArenaLo = (void*)0xFFFFFFFF; /* 8033B294-8033B29C -00001 0008+00 0/0 0/0 0/0 .text OSGetArenaLo */ void* OSGetArenaLo(void) { - return &*(u32*)__OSArenaLo; + return __OSArenaLo; } /* 8033B29C-8033B2A4 335BDC 0008+00 0/0 5/5 0/0 .text OSSetArenaHi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetArenaHi(void* hi) { - nofralloc -#include "asm/dolphin/os/OSArena/OSSetArenaHi.s" +void OSSetArenaHi(void* hi) { + __OSArenaHi = hi; } -#pragma pop /* 8033B2A4-8033B2AC 335BE4 0008+00 0/0 5/5 0/0 .text OSSetArenaLo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetArenaLo(void* lo) { - nofralloc -#include "asm/dolphin/os/OSArena/OSSetArenaLo.s" +void OSSetArenaLo(void* lo) { + __OSArenaLo = lo; } -#pragma pop /* 8033B2AC-8033B2D8 335BEC 002C+00 0/0 4/4 0/0 .text OSAllocFromArenaLo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* OSAllocFromArenaLo(u32 size, s32 alignment) { - nofralloc -#include "asm/dolphin/os/OSArena/OSAllocFromArenaLo.s" +void* OSAllocFromArenaLo(u32 size, s32 alignment) { + u8* blk_start = OSRoundUpPtr(__OSArenaLo, alignment); + u8* blk_end = blk_start + size; + blk_end = OSRoundUpPtr(blk_end, alignment); + + __OSArenaLo = blk_end; + return blk_start; } -#pragma pop diff --git a/libs/dolphin/os/OSAudioSystem.cpp b/libs/dolphin/os/OSAudioSystem.c similarity index 92% rename from libs/dolphin/os/OSAudioSystem.cpp rename to libs/dolphin/os/OSAudioSystem.c index b72088fa954..2e851bb3cfd 100644 --- a/libs/dolphin/os/OSAudioSystem.cpp +++ b/libs/dolphin/os/OSAudioSystem.c @@ -12,9 +12,9 @@ // SECTION_INIT void memcpy(); -extern "C" void OSGetArenaHi(); -extern "C" void DCFlushRange(); -extern "C" void OSGetTick(); +void OSGetArenaHi(); +void DCFlushRange(); +void OSGetTick(); // // Declarations: @@ -22,7 +22,7 @@ extern "C" void OSGetTick(); /* ############################################################################################## */ /* 803CF490-803CF510 02C5B0 0080+00 1/1 0/0 0/0 .data DSPInitCode */ -SECTION_DATA static u8 DSPInitCode[128] = { +static u8 DSPInitCode[128] = { 0x02, 0x9F, 0x00, 0x10, 0x02, 0x9F, 0x00, 0x33, 0x02, 0x9F, 0x00, 0x34, 0x02, 0x9F, 0x00, 0x35, 0x02, 0x9F, 0x00, 0x36, 0x02, 0x9F, 0x00, 0x37, 0x02, 0x9F, 0x00, 0x38, 0x02, 0x9F, 0x00, 0x39, 0x12, 0x06, 0x12, 0x03, 0x12, 0x04, 0x12, 0x05, 0x00, 0x80, 0x80, 0x00, 0x00, 0x88, 0xFF, 0xFF, diff --git a/libs/dolphin/os/OSCache.c b/libs/dolphin/os/OSCache.c new file mode 100644 index 00000000000..8b7b018f4cf --- /dev/null +++ b/libs/dolphin/os/OSCache.c @@ -0,0 +1,513 @@ +// +// Generated By: dol2asm +// Translation Unit: OSCache +// + +#include "dolphin/os/OSCache.h" +#include "dol2asm.h" +#include "dolphin/os/OSError.h" +#include "dolphin/os/OSInterrupt.h" + +// +// External References: +// + +void OSReport(); +void PPCMfmsr(); +void PPCMtmsr(); +void PPCMfhid0(); +void PPCMfl2cr(); +void PPCMtl2cr(); +void PPCHalt(); +void PPCMfhid2(); +void PPCMthid2(); +void OSDumpContext(); +void DBPrintf(); + +// +// Declarations: +// + +/* 8033B56C-8033B580 335EAC 0014+00 1/1 0/0 0/0 .text DCEnable */ +static asm void DCEnable(void) { + // clang-format off + nofralloc + + sync + mfspr r3, 0x3F0 + ori r3, r3, 0x4000 + mtspr 0x3F0, r3 + + blr + // clang-format on +} + +/* 8033B580-8033B5AC 335EC0 002C+00 0/0 30/30 1/1 .text DCInvalidateRange */ +asm void DCInvalidateRange(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_invalidate: + dcbi 0, start + addi start, start, 0x20 + bdnz do_invalidate + + blr + // clang-format on +} + +/* 8033B5AC-8033B5DC 335EEC 0030+00 0/0 11/11 0/0 .text DCFlushRange */ +asm void DCFlushRange(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_flush: + dcbf 0, start + addi start, start, 0x20 + bdnz do_flush + sc + + blr + // clang-format on +} + +/* 8033B5DC-8033B60C 335F1C 0030+00 0/0 54/54 1/1 .text DCStoreRange */ +asm void DCStoreRange(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_store: + dcbst 0, start + addi start, start, 0x20 + bdnz do_store + sc + + blr + // clang-format on +} + +/* 8033B60C-8033B638 335F4C 002C+00 0/0 2/2 0/0 .text DCFlushRangeNoSync */ +asm void DCFlushRangeNoSync(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_flush: + dcbf 0, start + addi start, start, 0x20 + bdnz do_flush + + blr + // clang-format on +} + +/* 8033B638-8033B664 335F78 002C+00 0/0 13/13 3/3 .text DCStoreRangeNoSync */ +asm void DCStoreRangeNoSync(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_store: + dcbst 0, start + addi start, start, 0x20 + bdnz do_store + + blr + // clang-format on +} + +/* 8033B664-8033B690 335FA4 002C+00 0/0 1/1 1/1 .text DCZeroRange */ +asm void DCZeroRange(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_zero: + dcbz 0, start + addi start, start, 0x20 + bdnz do_zero + + blr + // clang-format on +} + +/* 8033B690-8033B6C4 335FD0 0034+00 0/0 6/6 0/0 .text ICInvalidateRange */ +asm void ICInvalidateRange(register void* start, register u32 nBytes) { + // clang-format off + nofralloc + + cmplwi nBytes, 0 + blelr + + clrlwi r5, start, 0x1B + add nBytes, nBytes, r5 + addi nBytes, nBytes, 0x1F + srwi nBytes, nBytes, 5 + mtctr nBytes + +do_invalidate: + icbi 0, start + addi start, start, 0x20 + bdnz do_invalidate + + sync + isync + + blr + // clang-format on +} + +/* 8033B6C4-8033B6D4 336004 0010+00 0/0 5/5 0/0 .text ICFlashInvalidate */ +asm void ICFlashInvalidate(void) { + // clang-format off + nofralloc + + mfspr r3, 0x3F0 + ori r3, r3, 0x800 + mtspr 0x3F0, r3 + + blr + // clang-format on +} + +/* 8033B6D4-8033B6E8 336014 0014+00 1/1 0/0 0/0 .text ICEnable */ +static asm void ICEnable(void) { + // clang-format off + nofralloc + + isync + mfspr r3, 0x3F0 + ori r3, r3, 0x8000 + mtspr 0x3F0, r3 + + blr + // clang-format on +} + +/* 8033B6E8-8033B7B4 336028 00CC+00 1/1 0/0 0/0 .text __LCEnable */ +asm void __LCEnable(void) { + // clang-format off + nofralloc + + mfmsr r5 + ori r5, r5, 0x1000 + mtmsr r5 + + lis r3, 0x8000 + li r4, 0x400 + mtctr r4 + +do_store: + dcbt 0, r3 + dcbst 0, r3 + addi r3, r3, 0x20 + bdnz do_store + + mfspr r4, 0x398 + oris r4, r4, 0x100F + mtspr 0x398, r4 + + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + + lis r3, 0xE000 + ori r3, r3, 0x0002 + mtdbatl 3, r3 + ori r3, r3, 0x1FE + mtdbatu 3, r3 + isync + + lis r3, 0xE000 + li r6, 0x200 + mtctr r6 + li r6, 0 +do_load: + dcbz_l r6, r3 + addi r3, r3, 0x0020 + bdnz do_load + + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + + blr + // clang-format on +} + +/* 8033B7B4-8033B7EC 3360F4 0038+00 0/0 0/0 1/1 .text LCEnable */ +void LCEnable(void) { + BOOL interrupt = OSDisableInterrupts(); + __LCEnable(); + OSRestoreInterrupts(interrupt); +} + +/* 8033B7EC-8033B814 33612C 0028+00 0/0 2/2 1/1 .text LCDisable */ +asm void LCDisable(void) { + // clang-format off + nofralloc + + lis r3, 0xE000 + li r4, 0x200 + mtctr r4 +do_invalidate: + dcbi 0, r3 + addi r3, r3, 0x20 + bdnz do_invalidate + + mfspr r4, 0x398 + rlwinm r4, r4, 0, 4, 2 + mtspr 0x398, r4 + + blr + // clang-format on +} + +/* 8033B814-8033B838 336154 0024+00 1/1 0/0 0/0 .text LCStoreBlocks */ +static asm void LCStoreBlocks(register void* destAddr, register void* srcAddr, + register u32 blockNum) { + // clang-format off + nofralloc + + rlwinm r6, blockNum, 0x1E, 0x1B, 0x1F + clrlwi destAddr, destAddr, 4 + or r6, r6, destAddr + mtspr 0x39A, r6 + rlwinm r6, blockNum, 2, 0x1C, 0x1D + or r6, r6, srcAddr + ori r6, r6, 2 + mtspr 0x39B, r6 + + blr + // clang-format on +} +/* 8033B838-8033B8E4 336178 00AC+00 0/0 0/0 3/3 .text LCStoreData */ +// matches with mwcc 1.2.5e +#ifdef NONMATCHING +u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) { + u32 blocks = (nBytes + 31) / 32; + u32 ret = (blocks + 127) / 128; + + while (blocks > 0) { + if (blocks < 128) { + LCStoreBlocks(destAddr, srcAddr, blocks); + blocks = 0; + } else { + LCStoreBlocks(destAddr, srcAddr, 0); + blocks -= 128; + + destAddr = (char*)destAddr + 0x1000; + srcAddr = (char*)srcAddr + 0x1000; + } + } + + return ret; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) { + nofralloc +#include "asm/dolphin/os/OSCache/LCStoreData.s" +} +#pragma pop +#endif + +/* 8033B8E4-8033B8F8 336224 0014+00 0/0 0/0 3/3 .text LCQueueWait */ +asm void LCQueueWait(register u32 len){ + // clang-format off + nofralloc + + mfspr r4, 0x398 + rlwinm r4, r4, 8, 28, 31 + cmpw r4, len + bgt LCQueueWait + + blr + // clang-format on +} + +/* ############################################################################################## */ +/* 803CF510-803CF53C 02C630 0029+03 3/3 0/0 0/0 .data @63 */ +SECTION_DATA static char lit_63[] = ">>> L2 INVALIDATE : SHOULD NEVER HAPPEN\n"; + +/* 8033B8F8-8033B990 336238 0098+00 1/1 0/0 0/0 .text L2GlobalInvalidate */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void L2GlobalInvalidate(void) { + nofralloc +#include "asm/dolphin/os/OSCache/L2GlobalInvalidate.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803CF53C-803CF554 02C65C 0018+00 0/1 0/0 0/0 .data @84 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_84[] = "Machine check received\n"; +#pragma pop + +/* 803CF554-803CF570 02C674 001B+01 0/1 0/0 0/0 .data @85 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_85[] = "HID2 = 0x%x SRR1 = 0x%x\n"; +#pragma pop + +/* 803CF570-803CF5A0 02C690 0030+00 0/1 0/0 0/0 .data @86 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_86[] = "Machine check was not DMA/locked cache related\n"; +#pragma pop + +/* 803CF5A0-803CF5DC 02C6C0 003C+00 0/1 0/0 0/0 .data @87 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_87[] = "DMAErrorHandler(): An error occurred while processing DMA.\n"; +#pragma pop + +/* 803CF5DC-803CF614 02C6FC 0037+01 0/1 0/0 0/0 .data @88 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_88[] = "The following errors have been detected and cleared :\n"; +#pragma pop + +/* 803CF614-803CF654 02C734 003F+01 0/1 0/0 0/0 .data @89 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_89[] = + "\t- Requested a locked cache tag that was already in the cache\n"; +#pragma pop + +/* 803CF654-803CF680 02C774 0029+03 0/1 0/0 0/0 .data @90 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_90[] = "\t- DMA attempted to access normal cache\n"; +#pragma pop + +/* 803CF680-803CF6A0 02C7A0 001D+03 0/1 0/0 0/0 .data @91 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_91[] = "\t- DMA missed in data cache\n"; +#pragma pop + +/* 803CF6A0-803CF6BC 02C7C0 0019+03 0/1 0/0 0/0 .data @92 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_92[] = "\t- DMA queue overflowed\n"; +#pragma pop + +/* 8033B990-8033BAF0 3362D0 0160+00 1/1 0/0 0/0 .text DMAErrorHandler */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void DMAErrorHandler(s32 error, OSContext* context) { + nofralloc +#include "asm/dolphin/os/OSCache/DMAErrorHandler.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803CF6BC-803CF6D8 02C7DC 0019+03 0/1 0/0 0/0 .data @104 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_104[] = "L1 i-caches initialized\n"; +#pragma pop + +/* 803CF6D8-803CF6F4 02C7F8 0019+03 0/1 0/0 0/0 .data @105 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_105[] = "L1 d-caches initialized\n"; +#pragma pop + +/* 803CF6F4-803CF70C 02C814 0016+02 0/1 0/0 0/0 .data @106 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_106[] = "L2 cache initialized\n"; +#pragma pop + +/* 803CF70C-803CF740 02C82C 002E+06 0/1 0/0 0/0 .data @107 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_107[] = "Locked cache machine check handler installed\n"; +#pragma pop + +/* 8033BAF0-8033BBE4 336430 00F4+00 0/0 2/2 0/0 .text __OSCacheInit */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __OSCacheInit(void) { + nofralloc +#include "asm/dolphin/os/OSCache/__OSCacheInit.s" +} +#pragma pop diff --git a/libs/dolphin/os/OSCache.cpp b/libs/dolphin/os/OSCache.cpp deleted file mode 100644 index 44defbaca43..00000000000 --- a/libs/dolphin/os/OSCache.cpp +++ /dev/null @@ -1,767 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: OSCache -// - -#include "dolphin/os/OSCache.h" -#include "dol2asm.h" -#include "dolphin/os/OSError.h" -#include "dolphin/types.h" - -// -// External References: -// - -extern "C" void OSReport(); -extern "C" void PPCMfmsr(); -extern "C" void PPCMtmsr(); -extern "C" void PPCMfhid0(); -extern "C" void PPCMfl2cr(); -extern "C" void PPCMtl2cr(); -extern "C" void PPCHalt(); -extern "C" void PPCMfhid2(); -extern "C" void PPCMthid2(); -extern "C" void OSDumpContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void DBPrintf(); - -// -// Declarations: -// - -/* 8033B56C-8033B580 335EAC 0014+00 1/1 0/0 0/0 .text DCEnable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DCEnable(void) { - nofralloc -#include "asm/dolphin/os/OSCache/DCEnable.s" -} -#pragma pop - -/* 8033B580-8033B5AC 335EC0 002C+00 0/0 30/30 1/1 .text DCInvalidateRange */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DCInvalidateRange(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/DCInvalidateRange.s" -} -#pragma pop - -/* 8033B5AC-8033B5DC 335EEC 0030+00 0/0 11/11 0/0 .text DCFlushRange */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DCFlushRange(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/DCFlushRange.s" -} -#pragma pop - -/* 8033B5DC-8033B60C 335F1C 0030+00 0/0 54/54 1/1 .text DCStoreRange */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DCStoreRange(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/DCStoreRange.s" -} -#pragma pop - -/* 8033B60C-8033B638 335F4C 002C+00 0/0 2/2 0/0 .text DCFlushRangeNoSync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DCFlushRangeNoSync(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/DCFlushRangeNoSync.s" -} -#pragma pop - -/* 8033B638-8033B664 335F78 002C+00 0/0 13/13 3/3 .text DCStoreRangeNoSync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DCStoreRangeNoSync(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/DCStoreRangeNoSync.s" -} -#pragma pop - -/* 8033B664-8033B690 335FA4 002C+00 0/0 1/1 1/1 .text DCZeroRange */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DCZeroRange(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/DCZeroRange.s" -} -#pragma pop - -/* 8033B690-8033B6C4 335FD0 0034+00 0/0 6/6 0/0 .text ICInvalidateRange */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void ICInvalidateRange(void* start, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/ICInvalidateRange.s" -} -#pragma pop - -/* 8033B6C4-8033B6D4 336004 0010+00 0/0 5/5 0/0 .text ICFlashInvalidate */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void ICFlashInvalidate(void) { - nofralloc -#include "asm/dolphin/os/OSCache/ICFlashInvalidate.s" -} -#pragma pop - -/* 8033B6D4-8033B6E8 336014 0014+00 1/1 0/0 0/0 .text ICEnable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void ICEnable(void) { - nofralloc -#include "asm/dolphin/os/OSCache/ICEnable.s" -} -#pragma pop - -/* 8033B6E8-8033B7B4 336028 00CC+00 1/1 0/0 0/0 .text __LCEnable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __LCEnable(void) { - nofralloc -#include "asm/dolphin/os/OSCache/__LCEnable.s" -} -#pragma pop - -/* 8033B7B4-8033B7EC 3360F4 0038+00 0/0 0/0 1/1 .text LCEnable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void LCEnable() { - nofralloc -#include "asm/dolphin/os/OSCache/LCEnable.s" -} -#pragma pop - -/* 8033B7EC-8033B814 33612C 0028+00 0/0 2/2 1/1 .text LCDisable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void LCDisable(void) { - nofralloc -#include "asm/dolphin/os/OSCache/LCDisable.s" -} -#pragma pop - -/* 8033B814-8033B838 336154 0024+00 1/1 0/0 0/0 .text LCStoreBlocks */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void LCStoreBlocks(void* destAddr, void* srcAddr, u32 blockNum) { - nofralloc -#include "asm/dolphin/os/OSCache/LCStoreBlocks.s" -} -#pragma pop - -/* 8033B838-8033B8E4 336178 00AC+00 0/0 0/0 3/3 .text LCStoreData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) { - nofralloc -#include "asm/dolphin/os/OSCache/LCStoreData.s" -} -#pragma pop - -/* 8033B8E4-8033B8F8 336224 0014+00 0/0 0/0 3/3 .text LCQueueWait */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void LCQueueWait(u32 len) { - nofralloc -#include "asm/dolphin/os/OSCache/LCQueueWait.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803CF510-803CF53C 02C630 0029+03 3/3 0/0 0/0 .data @63 */ -SECTION_DATA static u8 lit_63[41 + 3 /* padding */] = { - 0x3E, - 0x3E, - 0x3E, - 0x20, - 0x4C, - 0x32, - 0x20, - 0x49, - 0x4E, - 0x56, - 0x41, - 0x4C, - 0x49, - 0x44, - 0x41, - 0x54, - 0x45, - 0x20, - 0x3A, - 0x20, - 0x53, - 0x48, - 0x4F, - 0x55, - 0x4C, - 0x44, - 0x20, - 0x4E, - 0x45, - 0x56, - 0x45, - 0x52, - 0x20, - 0x48, - 0x41, - 0x50, - 0x50, - 0x45, - 0x4E, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; - -/* 8033B8F8-8033B990 336238 0098+00 1/1 0/0 0/0 .text L2GlobalInvalidate */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void L2GlobalInvalidate(void) { - nofralloc -#include "asm/dolphin/os/OSCache/L2GlobalInvalidate.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803CF53C-803CF554 02C65C 0018+00 0/1 0/0 0/0 .data @84 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_84[24] = { - 0x4D, 0x61, 0x63, 0x68, 0x69, 0x6E, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, - 0x6B, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x0A, 0x00, -}; -#pragma pop - -/* 803CF554-803CF570 02C674 001B+01 0/1 0/0 0/0 .data @85 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_85[27 + 1 /* padding */] = { - 0x48, - 0x49, - 0x44, - 0x32, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x78, - 0x20, - 0x20, - 0x20, - 0x53, - 0x52, - 0x52, - 0x31, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CF570-803CF5A0 02C690 0030+00 0/1 0/0 0/0 .data @86 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_86[48] = { - 0x4D, 0x61, 0x63, 0x68, 0x69, 0x6E, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x20, 0x77, 0x61, - 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x44, 0x4D, 0x41, 0x2F, 0x6C, 0x6F, 0x63, 0x6B, 0x65, 0x64, - 0x20, 0x63, 0x61, 0x63, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6C, 0x61, 0x74, 0x65, 0x64, 0x0A, 0x00, -}; -#pragma pop - -/* 803CF5A0-803CF5DC 02C6C0 003C+00 0/1 0/0 0/0 .data @87 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_87[60] = { - 0x44, 0x4D, 0x41, 0x45, 0x72, 0x72, 0x6F, 0x72, 0x48, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, - 0x28, 0x29, 0x3A, 0x20, 0x41, 0x6E, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x6F, 0x63, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x20, 0x77, 0x68, 0x69, 0x6C, 0x65, 0x20, 0x70, 0x72, - 0x6F, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x44, 0x4D, 0x41, 0x2E, 0x0A, 0x00, -}; -#pragma pop - -/* 803CF5DC-803CF614 02C6FC 0037+01 0/1 0/0 0/0 .data @88 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_88[55 + 1 /* padding */] = { - 0x54, - 0x68, - 0x65, - 0x20, - 0x66, - 0x6F, - 0x6C, - 0x6C, - 0x6F, - 0x77, - 0x69, - 0x6E, - 0x67, - 0x20, - 0x65, - 0x72, - 0x72, - 0x6F, - 0x72, - 0x73, - 0x20, - 0x68, - 0x61, - 0x76, - 0x65, - 0x20, - 0x62, - 0x65, - 0x65, - 0x6E, - 0x20, - 0x64, - 0x65, - 0x74, - 0x65, - 0x63, - 0x74, - 0x65, - 0x64, - 0x20, - 0x61, - 0x6E, - 0x64, - 0x20, - 0x63, - 0x6C, - 0x65, - 0x61, - 0x72, - 0x65, - 0x64, - 0x20, - 0x3A, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CF614-803CF654 02C734 003F+01 0/1 0/0 0/0 .data @89 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_89[63 + 1 /* padding */] = { - 0x09, - 0x2D, - 0x20, - 0x52, - 0x65, - 0x71, - 0x75, - 0x65, - 0x73, - 0x74, - 0x65, - 0x64, - 0x20, - 0x61, - 0x20, - 0x6C, - 0x6F, - 0x63, - 0x6B, - 0x65, - 0x64, - 0x20, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x20, - 0x74, - 0x61, - 0x67, - 0x20, - 0x74, - 0x68, - 0x61, - 0x74, - 0x20, - 0x77, - 0x61, - 0x73, - 0x20, - 0x61, - 0x6C, - 0x72, - 0x65, - 0x61, - 0x64, - 0x79, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x74, - 0x68, - 0x65, - 0x20, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CF654-803CF680 02C774 0029+03 0/1 0/0 0/0 .data @90 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_90[41 + 3 /* padding */] = { - 0x09, - 0x2D, - 0x20, - 0x44, - 0x4D, - 0x41, - 0x20, - 0x61, - 0x74, - 0x74, - 0x65, - 0x6D, - 0x70, - 0x74, - 0x65, - 0x64, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x61, - 0x63, - 0x63, - 0x65, - 0x73, - 0x73, - 0x20, - 0x6E, - 0x6F, - 0x72, - 0x6D, - 0x61, - 0x6C, - 0x20, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF680-803CF6A0 02C7A0 001D+03 0/1 0/0 0/0 .data @91 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_91[29 + 3 /* padding */] = { - 0x09, - 0x2D, - 0x20, - 0x44, - 0x4D, - 0x41, - 0x20, - 0x6D, - 0x69, - 0x73, - 0x73, - 0x65, - 0x64, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x64, - 0x61, - 0x74, - 0x61, - 0x20, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF6A0-803CF6BC 02C7C0 0019+03 0/1 0/0 0/0 .data @92 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_92[25 + 3 /* padding */] = { - 0x09, - 0x2D, - 0x20, - 0x44, - 0x4D, - 0x41, - 0x20, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x20, - 0x6F, - 0x76, - 0x65, - 0x72, - 0x66, - 0x6C, - 0x6F, - 0x77, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 8033B990-8033BAF0 3362D0 0160+00 1/1 0/0 0/0 .text DMAErrorHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DMAErrorHandler(s32 error, OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSCache/DMAErrorHandler.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803CF6BC-803CF6D8 02C7DC 0019+03 0/1 0/0 0/0 .data @104 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_104[25 + 3 /* padding */] = { - 0x4C, - 0x31, - 0x20, - 0x69, - 0x2D, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x73, - 0x20, - 0x69, - 0x6E, - 0x69, - 0x74, - 0x69, - 0x61, - 0x6C, - 0x69, - 0x7A, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF6D8-803CF6F4 02C7F8 0019+03 0/1 0/0 0/0 .data @105 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_105[25 + 3 /* padding */] = { - 0x4C, - 0x31, - 0x20, - 0x64, - 0x2D, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x73, - 0x20, - 0x69, - 0x6E, - 0x69, - 0x74, - 0x69, - 0x61, - 0x6C, - 0x69, - 0x7A, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF6F4-803CF70C 02C814 0016+02 0/1 0/0 0/0 .data @106 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_106[22 + 2 /* padding */] = { - 0x4C, - 0x32, - 0x20, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x20, - 0x69, - 0x6E, - 0x69, - 0x74, - 0x69, - 0x61, - 0x6C, - 0x69, - 0x7A, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF70C-803CF740 02C82C 002E+06 0/1 0/0 0/0 .data @107 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_107[46 + 6 /* padding */] = { - 0x4C, - 0x6F, - 0x63, - 0x6B, - 0x65, - 0x64, - 0x20, - 0x63, - 0x61, - 0x63, - 0x68, - 0x65, - 0x20, - 0x6D, - 0x61, - 0x63, - 0x68, - 0x69, - 0x6E, - 0x65, - 0x20, - 0x63, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x20, - 0x68, - 0x61, - 0x6E, - 0x64, - 0x6C, - 0x65, - 0x72, - 0x20, - 0x69, - 0x6E, - 0x73, - 0x74, - 0x61, - 0x6C, - 0x6C, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 8033BAF0-8033BBE4 336430 00F4+00 0/0 2/2 0/0 .text __OSCacheInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSCacheInit(void) { - nofralloc -#include "asm/dolphin/os/OSCache/__OSCacheInit.s" -} -#pragma pop diff --git a/libs/dolphin/os/OSContext.c b/libs/dolphin/os/OSContext.c new file mode 100644 index 00000000000..f07a80e95dd --- /dev/null +++ b/libs/dolphin/os/OSContext.c @@ -0,0 +1,660 @@ +// +// Generated By: dol2asm +// Translation Unit: OSContext +// + +#include "dolphin/os/OSContext.h" +#include "dol2asm.h" +#include "dolphin/os/OS.h" +#include "dolphin/os/OSInterrupt.h" +#include "dolphin/types.h" + +// +// External References: +// + +void __RAS_OSDisableInterrupts_end(); +void DBPrintf(); +void __cvt_fp2unsigned(); + +// +// Declarations: +// + +/* 8033BBE4-8033BD08 336524 0124+00 1/1 0/0 0/0 .text __OSLoadFPUContext */ +asm void __OSLoadFPUContext(void) { + // clang-format off + nofralloc + + lhz r5, 0x1A2(r4) + clrlwi. r5, r5, 0x1f + beq exit + + lfd f0, 0x190(r4) + mtfsf 0xFF, f0 + mfspr r5, 0x398 + rlwinm. r5, r5, 3, 0x1F, 0x1F + beq load_fprs + + psq_l f0, 0x1C8(r4), 0, 0 + psq_l f1, 0x1D0(r4), 0, 0 + psq_l f2, 0x1D8(r4), 0, 0 + psq_l f3, 0x1E0(r4), 0, 0 + psq_l f4, 0x1E8(r4), 0, 0 + psq_l f5, 0x1F0(r4), 0, 0 + psq_l f6, 0x1F8(r4), 0, 0 + psq_l f7, 0x200(r4), 0, 0 + psq_l f8, 0x208(r4), 0, 0 + psq_l f9, 0x210(r4), 0, 0 + psq_l f10, 0x218(r4), 0, 0 + psq_l f11, 0x220(r4), 0, 0 + psq_l f12, 0x228(r4), 0, 0 + psq_l f13, 0x230(r4), 0, 0 + psq_l f14, 0x238(r4), 0, 0 + psq_l f15, 0x240(r4), 0, 0 + psq_l f16, 0x248(r4), 0, 0 + psq_l f17, 0x250(r4), 0, 0 + psq_l f18, 0x258(r4), 0, 0 + psq_l f19, 0x260(r4), 0, 0 + psq_l f20, 0x268(r4), 0, 0 + psq_l f21, 0x270(r4), 0, 0 + psq_l f22, 0x278(r4), 0, 0 + psq_l f23, 0x280(r4), 0, 0 + psq_l f24, 0x288(r4), 0, 0 + psq_l f25, 0x290(r4), 0, 0 + psq_l f26, 0x298(r4), 0, 0 + psq_l f27, 0x2A0(r4), 0, 0 + psq_l f28, 0x2A8(r4), 0, 0 + psq_l f29, 0x2B0(r4), 0, 0 + psq_l f30, 0x2B8(r4), 0, 0 + psq_l f31, 0x2C0(r4), 0, 0 + +load_fprs: + lfd f0, 0x90(r4) + lfd f1, 0x98(r4) + lfd f2, 0xA0(r4) + lfd f3, 0xA8(r4) + lfd f4, 0xB0(r4) + lfd f5, 0xB8(r4) + lfd f6, 0xC0(r4) + lfd f7, 0xC8(r4) + lfd f8, 0xD0(r4) + lfd f9, 0xD8(r4) + lfd f10, 0xE0(r4) + lfd f11, 0xE8(r4) + lfd f12, 0xF0(r4) + lfd f13, 0xF8(r4) + lfd f14, 0x100(r4) + lfd f15, 0x108(r4) + lfd f16, 0x110(r4) + lfd f17, 0x118(r4) + lfd f18, 0x120(r4) + lfd f19, 0x128(r4) + lfd f20, 0x130(r4) + lfd f21, 0x138(r4) + lfd f22, 0x140(r4) + lfd f23, 0x148(r4) + lfd f24, 0x150(r4) + lfd f25, 0x158(r4) + lfd f26, 0x160(r4) + lfd f27, 0x168(r4) + lfd f28, 0x170(r4) + lfd f29, 0x178(r4) + lfd f30, 0x180(r4) + lfd f31, 0x188(r4) + +exit: + blr + // clang-format on +} + +/* 8033BD08-8033BE30 336648 0128+00 2/2 0/0 0/0 .text __OSSaveFPUContext */ +asm void __OSSaveFPUContext(s32 unused0, s32 unused1, register OSContext* context) { + // clang-format off + nofralloc + + lhz r3, 0x1A2(context) + ori r3, r3, 1 + sth r3, 0x1A2(context) + + stfd f0, 0x90(context) + stfd f1, 0x98(context) + stfd f2, 0xa0(context) + stfd f3, 0xa8(context) + stfd f4, 0xb0(context) + stfd f5, 0xb8(context) + stfd f6, 0xc0(context) + stfd f7, 0xc8(context) + stfd f8, 0xd0(context) + stfd f9, 0xd8(context) + stfd f10, 0xe0(context) + stfd f11, 0xe8(context) + stfd f12, 0xf0(context) + stfd f13, 0xf8(context) + stfd f14, 0x100(context) + stfd f15, 0x108(context) + stfd f16, 0x110(context) + stfd f17, 0x118(context) + stfd f18, 0x120(context) + stfd f19, 0x128(context) + stfd f20, 0x130(context) + stfd f21, 0x138(context) + stfd f22, 0x140(context) + stfd f23, 0x148(context) + stfd f24, 0x150(context) + stfd f25, 0x158(context) + stfd f26, 0x160(context) + stfd f27, 0x168(context) + stfd f28, 0x170(context) + stfd f29, 0x178(context) + stfd f30, 0x180(context) + stfd f31, 0x188(context) + + mffs f0 + stfd f0, 0x190(context) + lfd f0, 0x90(context) + mfspr r3, 0x398 + rlwinm. r3, r3, 3, 0x1f, 0x1f + beq exit + + psq_st f0, 456(context), 0, 0 + psq_st f1, 464(context), 0, 0 + psq_st f2, 472(context), 0, 0 + psq_st f3, 480(context), 0, 0 + psq_st f4, 488(context), 0, 0 + psq_st f5, 496(context), 0, 0 + psq_st f6, 504(context), 0, 0 + psq_st f7, 512(context), 0, 0 + psq_st f8, 520(context), 0, 0 + psq_st f9, 528(context), 0, 0 + psq_st f10, 536(context), 0, 0 + psq_st f11, 544(context), 0, 0 + psq_st f12, 552(context), 0, 0 + psq_st f13, 560(context), 0, 0 + psq_st f14, 568(context), 0, 0 + psq_st f15, 576(context), 0, 0 + psq_st f16, 584(context), 0, 0 + psq_st f17, 592(context), 0, 0 + psq_st f18, 600(context), 0, 0 + psq_st f19, 608(context), 0, 0 + psq_st f20, 616(context), 0, 0 + psq_st f21, 624(context), 0, 0 + psq_st f22, 632(context), 0, 0 + psq_st f23, 640(context), 0, 0 + psq_st f24, 648(context), 0, 0 + psq_st f25, 656(context), 0, 0 + psq_st f26, 664(context), 0, 0 + psq_st f27, 672(context), 0, 0 + psq_st f28, 680(context), 0, 0 + psq_st f29, 688(context), 0, 0 + psq_st f30, 696(context), 0, 0 + psq_st f31, 704(context), 0, 0 + +exit: + blr + // clang-format on +} + +/* 8033BE30-8033BE38 336770 0008+00 0/0 1/1 0/0 .text OSSaveFPUContext */ +asm void OSSaveFPUContext(register OSContext* context) { + // clang-format off + nofralloc + + addi r5, context, 0 + b __OSSaveFPUContext + // clang-format on +} + +/* 8033BE38-8033BE94 336778 005C+00 1/1 18/18 0/0 .text OSSetCurrentContext */ +asm void OSSetCurrentContext(register OSContext* context) { + // clang-format off + nofralloc + + lis r4, OS_CURRENT_CONTEXT@ha + stw context, OS_CURRENT_CONTEXT@l(r4) + clrlwi r5, context, 2 + stw r5, 0xc0(r4) + lwz r5, 0xd8(r4) + cmpw r5, context + bne lbl_800EE9AC + lwz r6, 0x19c(context) + ori r6, r6, 0x2000 + stw r6, 0x19c(context) + mfmsr r6 + ori r6, r6, 2 + mtmsr r6 + blr + +lbl_800EE9AC: + lwz r6, 0x19c(context) + rlwinm r6, r6, 0, 0x13, 0x11 + stw r6, 0x19c(context) + mfmsr r6 + rlwinm r6, r6, 0, 0x13, 0x11 + ori r6, r6, 2 + mtmsr r6 + isync + blr + // clang-format on +} + +/* 8033BE94-8033BEA0 3367D4 000C+00 0/0 2/2 0/0 .text OSGetCurrentContext */ +OSContext* OSGetCurrentContext(void) { + return OS_CURRENT_CONTEXT; +} + +/* 8033BEA0-8033BF20 3367E0 0080+00 0/0 1/1 0/0 .text OSSaveContext */ +asm void OSSaveContext(register OSContext* context) { + // clang-format off + nofralloc + + stmw r13, 0x34(context) + + mfspr r0, GQR1 + stw r0, 0x1a8(context) + mfspr r0, GQR2 + stw r0, 0x1ac(context) + mfspr r0, GQR3 + stw r0, 0x1b0(context) + mfspr r0, GQR4 + stw r0, 0x1b4(context) + mfspr r0, GQR5 + stw r0, 0x1b8(context) + mfspr r0, GQR6 + stw r0, 0x1bc(context) + mfspr r0, GQR7 + stw r0, 0x1c0(context) + + mfcr r0 + stw r0, 0x80(context) + mflr r0 + stw r0, 0x84(context) + stw r0, 0x198(context) + mfmsr r0 + stw r0, 0x19c(context) + mfctr r0 + stw r0, 0x88(context) + mfxer r0 + stw r0, 0x8c(context) + + stw r1, 4(context) + stw r2, 8(context) + + li r0, 1 + stw r0, 0xc(context) + + li r3, 0 + blr + // clang-format on +} + +/* 8033BF20-8033BFF8 336860 00D8+00 0/0 4/4 0/0 .text OSLoadContext */ +asm void OSLoadContext(register OSContext* context) { + // clang-format off + nofralloc + + lis r4, OSDisableInterrupts@ha + lwz r6, 0x198(context) + addi r5, r4, OSDisableInterrupts@l + cmplw r6, r5 + ble srr0_not_in_disableintr + lis r4, __RAS_OSDisableInterrupts_end@ha + addi r0, r4, __RAS_OSDisableInterrupts_end@l + cmplw r6, r0 + bge srr0_not_in_disableintr + stw r5, 0x198(context) + +srr0_not_in_disableintr: + lwz r0, 0(context) + lwz r1, 4(context) + lwz r2, 8(context) + lhz r4, 0x1a2(context) + rlwinm. r5, r4, 0, 0x1e, 0x1e + beq load_saved_gprs + rlwinm r4, r4, 0, 0x1f, 0x1d + sth r4, 0x1a2(context) + lmw r5, 0x14(context) + b load_special_regs + +load_saved_gprs: + lmw r13, 0x34(context) + +load_special_regs: + lwz r4, 0x1a8(context) + mtspr 0x391, r4 + lwz r4, 0x1ac(context) + mtspr 0x392, r4 + lwz r4, 0x1b0(context) + mtspr 0x393, r4 + lwz r4, 0x1b4(context) + mtspr 0x394, r4 + lwz r4, 0x1b8(context) + mtspr 0x395, r4 + lwz r4, 0x1bc(context) + mtspr 0x396, r4 + lwz r4, 0x1c0(context) + mtspr 0x397, r4 + lwz r4, 0x80(context) + mtcrf 0xff, r4 + lwz r4, 0x84(context) + mtlr r4 + lwz r4, 0x88(context) + mtctr r4 + lwz r4, 0x8c(context) + mtxer r4 + mfmsr r4 + rlwinm r4, r4, 0, 0x11, 0xf + rlwinm r4, r4, 0, 0x1f, 0x1d + mtmsr r4 + lwz r4, 0x198(context) + mtspr 0x1a, r4 + lwz r4, 0x19c(context) + mtspr 0x1b, r4 + lwz r4, 0x10(context) + lwz context, 0xc(context) + rfi + // clang-format on +} + +/* 8033BFF8-8033C000 336938 0008+00 0/0 5/5 0/0 .text OSGetStackPointer */ +asm u8* OSGetStackPointer(void) { + // clang-format off + nofralloc + + mr r3, r1 + blr + // clang-format on +} + +/* 8033C000-8033C024 336940 0024+00 1/1 20/20 0/0 .text OSClearContext */ +void OSClearContext(OSContext* context) { + context->mode = 0; + context->state = 0; + + if (context == OS_CURRENT_FPU_CONTEXT) { + OS_CURRENT_FPU_CONTEXT = NULL; + } +} + +/* 8033C024-8033C0E0 336964 00BC+00 0/0 1/1 0/0 .text OSInitContext */ +asm void OSInitContext(register OSContext* context, register u32 srr0, register u32 stack){ + // clang-format off + nofralloc + + stw srr0, 0x198(context) + stw stack, 4(context) + li r11, 0 + ori r11, r11, 0x9032 + stw r11, 0x19c(context) + li r0, 0 + stw r0, 0x80(context) + stw r0, 0x8c(context) + stw r2, 8(context) + stw r13, 0x34(context) + stw r0, 0xc(context) + stw r0, 0x10(context) + stw r0, 0x14(context) + stw r0, 0x18(context) + stw r0, 0x1c(context) + stw r0, 0x20(context) + stw r0, 0x24(context) + stw r0, 0x28(context) + stw r0, 0x2c(context) + stw r0, 0x30(context) + stw r0, 0x38(context) + stw r0, 0x3c(context) + stw r0, 0x40(context) + stw r0, 0x44(context) + stw r0, 0x48(context) + stw r0, 0x4c(context) + stw r0, 0x50(context) + stw r0, 0x54(context) + stw r0, 0x58(context) + stw r0, 0x5c(context) + stw r0, 0x60(context) + stw r0, 0x64(context) + stw r0, 0x68(context) + stw r0, 0x6c(context) + stw r0, 0x70(context) + stw r0, 0x74(context) + stw r0, 0x78(context) + stw r0, 0x7c(context) + stw r0, 0x1a4(context) + stw r0, 0x1a8(context) + stw r0, 0x1ac(context) + stw r0, 0x1b0(context) + stw r0, 0x1b4(context) + stw r0, 0x1b8(context) + stw r0, 0x1bc(context) + stw r0, 0x1c0(context) + + b OSClearContext + // clang-format on +} + +/* ############################################################################################## */ +/* 803CF740-803CF784 02C860 0044+00 1/1 0/0 0/0 .data @61 */ +SECTION_DATA + static char lit_61[] = "------------------------- Context 0x%08x -------------------------\n"; + +/* 803CF784-803CF7B4 02C8A4 0030+00 0/1 0/0 0/0 .data @62 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_62[] = "r%-2d = 0x%08x (%14d) r%-2d = 0x%08x (%14d)\n"; + +/* 803CF7B4-803CF7E4 02C8D4 002F+01 0/1 0/0 0/0 .data @63 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_63[] = "LR = 0x%08x CR = 0x%08x\n"; +#pragma pop + +/* 803CF7E4-803CF814 02C904 002F+01 0/1 0/0 0/0 .data @64 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_64[] = "SRR0 = 0x%08x SRR1 = 0x%08x\n"; +#pragma pop + +/* 803CF814-803CF828 02C934 0011+03 0/1 0/0 0/0 .data @65 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_65[] = "\nGQRs----------\n"; +#pragma pop + +/* 803CF828-803CF84C 02C948 0021+03 0/1 0/0 0/0 .data @66 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_66[] = "gqr%d = 0x%08x \t gqr%d = 0x%08x\n"; +#pragma pop + +/* 803CF84C-803CF860 02C96C 0012+02 0/1 0/0 0/0 .data @67 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_67[] = "\n\nFPRs----------\n"; +#pragma pop + +/* 803CF860-803CF87C 02C980 0019+03 0/1 0/0 0/0 .data @68 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_68[] = "fr%d \t= %d \t fr%d \t= %d\n"; +#pragma pop + +/* 803CF87C-803CF890 02C99C 0012+02 0/1 0/0 0/0 .data @69 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_69[] = "\n\nPSFs----------\n"; +#pragma pop + +/* 803CF890-803CF8B0 02C9B0 001D+03 0/1 0/0 0/0 .data @70 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_70[] = "ps%d \t= 0x%x \t ps%d \t= 0x%x\n"; +#pragma pop + +/* 803CF8B0-803CF8D8 02C9D0 0026+02 0/1 0/0 0/0 .data @71 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_71[] = "\nAddress: Back Chain LR Save\n"; +#pragma pop + +/* 803CF8D8-803CF8F4 02C9F8 001C+00 0/1 0/0 0/0 .data @72 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_72[] = "0x%08x: 0x%08x 0x%08x\n"; +#pragma pop + +/* 8033C0E0-8033C388 336A20 02A8+00 0/0 3/3 0/0 .text OSDumpContext */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSDumpContext(OSContext* context) { + nofralloc +#include "asm/dolphin/os/OSContext/OSDumpContext.s" +} +#pragma pop + +/* 8033C388-8033C40C 336CC8 0084+00 1/1 0/0 0/0 .text OSSwitchFPUContext */ +static asm void OSSwitchFPUContext(register u8 err, register OSContext* context) { + // clang-format off + nofralloc + + mfmsr r5 + ori r5, r5, 0x2000 + mtmsr r5 + isync + lwz r5, 0x19c(context) + ori r5, r5, 0x2000 + mtspr 0x1b, r5 + lis r3, OS_CURRENT_FPU_CONTEXT@ha + lwz r5, OS_CURRENT_FPU_CONTEXT@l(r3) + stw context, 0xd8(r3) + cmpw r5, context + beq context_is_curr_fpu_context + cmpwi r5, 0 + beq context_is_null + bl __OSSaveFPUContext + +context_is_null: + bl __OSLoadFPUContext + +context_is_curr_fpu_context: + lwz r3, 0x80(context) + mtcrf 0xff, r3 + lwz r3, 0x84(context) + mtlr r3 + lwz r3, 0x198(context) + mtspr 0x1a, r3 + lwz r3, 0x88(context) + mtctr r3 + lwz r3, 0x8c(context) + mtxer r3 + lhz r3, 0x1a2(context) + rlwinm r3, r3, 0, 0x1f, 0x1d + sth r3, 0x1a2(context) + lwz r5, 0x14(context) + lwz r3, 0xc(context) + lwz context, 0x10(context) + rfi + // clang-format on +} + +/* ############################################################################################## */ +/* 803CF8F4-803CF918 02CA14 0023+01 1/1 0/0 0/0 .data @76 */ +SECTION_DATA static char lit_76[] = "FPU-unavailable handler installed\n"; + +/* 8033C40C-8033C454 336D4C 0048+00 0/0 1/1 0/0 .text __OSContextInit */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __OSContextInit(void) { + nofralloc +#include "asm/dolphin/os/OSContext/__OSContextInit.s" +} +#pragma pop + +/* 8033C454-8033C580 336D94 012C+00 0/0 1/1 0/0 .text OSFillFPUContext */ +asm void OSFillFPUContext(register OSContext* context) { + // clang-format off + nofralloc + + mfmsr r5 + ori r5, r5, 0x2000 + mtmsr r5 + isync + + stfd f0, 0x90(context) + stfd f1, 0x98(context) + stfd f2, 0xa0(context) + stfd f3, 0xa8(context) + stfd f4, 0xb0(context) + stfd f5, 0xb8(context) + stfd f6, 0xc0(context) + stfd f7, 0xc8(context) + stfd f8, 0xd0(context) + stfd f9, 0xd8(context) + stfd f10, 0xe0(context) + stfd f11, 0xe8(context) + stfd f12, 0xf0(context) + stfd f13, 0xf8(context) + stfd f14, 0x100(context) + stfd f15, 0x108(context) + stfd f16, 0x110(context) + stfd f17, 0x118(context) + stfd f18, 0x120(context) + stfd f19, 0x128(context) + stfd f20, 0x130(context) + stfd f21, 0x138(context) + stfd f22, 0x140(context) + stfd f23, 0x148(context) + stfd f24, 0x150(context) + stfd f25, 0x158(context) + stfd f26, 0x160(context) + stfd f27, 0x168(context) + stfd f28, 0x170(context) + stfd f29, 0x178(context) + stfd f30, 0x180(context) + stfd f31, 0x188(context) + + mffs f0 + stfd f0, 0x190(context) + lfd f0, 0x90(context) + mfspr r5, 0x398 + rlwinm. r5, r5, 3, 0x1f, 0x1f + beq exit + + psq_st f0, 456(context), 0, 0 + psq_st f1, 464(context), 0, 0 + psq_st f2, 472(context), 0, 0 + psq_st f3, 480(context), 0, 0 + psq_st f4, 488(context), 0, 0 + psq_st f5, 496(context), 0, 0 + psq_st f6, 504(context), 0, 0 + psq_st f7, 512(context), 0, 0 + psq_st f8, 520(context), 0, 0 + psq_st f9, 528(context), 0, 0 + psq_st f10, 536(context), 0, 0 + psq_st f11, 544(context), 0, 0 + psq_st f12, 552(context), 0, 0 + psq_st f13, 560(context), 0, 0 + psq_st f14, 568(context), 0, 0 + psq_st f15, 576(context), 0, 0 + psq_st f16, 584(context), 0, 0 + psq_st f17, 592(context), 0, 0 + psq_st f18, 600(context), 0, 0 + psq_st f19, 608(context), 0, 0 + psq_st f20, 616(context), 0, 0 + psq_st f21, 624(context), 0, 0 + psq_st f22, 632(context), 0, 0 + psq_st f23, 640(context), 0, 0 + psq_st f24, 648(context), 0, 0 + psq_st f25, 656(context), 0, 0 + psq_st f26, 664(context), 0, 0 + psq_st f27, 672(context), 0, 0 + psq_st f28, 680(context), 0, 0 + psq_st f29, 688(context), 0, 0 + psq_st f30, 696(context), 0, 0 + psq_st f31, 704(context), 0, 0 + +exit: + blr + // clang-format on +} diff --git a/libs/dolphin/os/OSContext.cpp b/libs/dolphin/os/OSContext.cpp deleted file mode 100644 index 3cc5f31414d..00000000000 --- a/libs/dolphin/os/OSContext.cpp +++ /dev/null @@ -1,597 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: OSContext -// - -#include "dolphin/os/OSContext.h" -#include "dolphin/os/OSInterrupt.h" -#include "dolphin/os/OS.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// External References: -// - -extern "C" void __RAS_OSDisableInterrupts_end(); -extern "C" void DBPrintf(); -extern "C" void __cvt_fp2unsigned(); - -// -// Declarations: -// - -/* 8033BBE4-8033BD08 336524 0124+00 1/1 0/0 0/0 .text __OSLoadFPUContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSLoadFPUContext(void) { - nofralloc -#include "asm/dolphin/os/OSContext/__OSLoadFPUContext.s" -} -#pragma pop - -/* 8033BD08-8033BE30 336648 0128+00 2/2 0/0 0/0 .text __OSSaveFPUContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSSaveFPUContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/__OSSaveFPUContext.s" -} -#pragma pop - -/* 8033BE30-8033BE38 336770 0008+00 0/0 1/1 0/0 .text OSSaveFPUContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSaveFPUContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSSaveFPUContext.s" -} -#pragma pop - -/* 8033BE38-8033BE94 336778 005C+00 1/1 18/18 0/0 .text OSSetCurrentContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetCurrentContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSSetCurrentContext.s" -} -#pragma pop - -/* 8033BE94-8033BEA0 3367D4 000C+00 0/0 2/2 0/0 .text OSGetCurrentContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSContext* OSGetCurrentContext(void) { - nofralloc -#include "asm/dolphin/os/OSContext/OSGetCurrentContext.s" -} -#pragma pop - -/* 8033BEA0-8033BF20 3367E0 0080+00 0/0 1/1 0/0 .text OSSaveContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSaveContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSSaveContext.s" -} -#pragma pop - -/* 8033BF20-8033BFF8 336860 00D8+00 0/0 4/4 0/0 .text OSLoadContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSLoadContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSLoadContext.s" -} -#pragma pop - -/* 8033BFF8-8033C000 336938 0008+00 0/0 5/5 0/0 .text OSGetStackPointer */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u8* OSGetStackPointer(void) { - nofralloc -#include "asm/dolphin/os/OSContext/OSGetStackPointer.s" -} -#pragma pop - -/* 8033C000-8033C024 336940 0024+00 1/1 20/20 0/0 .text OSClearContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSClearContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSClearContext.s" -} -#pragma pop - -/* 8033C024-8033C0E0 336964 00BC+00 0/0 1/1 0/0 .text OSInitContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSInitContext(OSContext* context, u32 pc, u32 lr) { - nofralloc -#include "asm/dolphin/os/OSContext/OSInitContext.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803CF740-803CF784 02C860 0044+00 1/1 0/0 0/0 .data @61 */ -SECTION_DATA static u8 lit_61[68] = { - 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, - 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x20, 0x43, 0x6F, - 0x6E, 0x74, 0x65, 0x78, 0x74, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x20, 0x2D, - 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, - 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x0A, 0x00, -}; - -/* 803CF784-803CF7B4 02C8A4 0030+00 0/1 0/0 0/0 .data @62 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_62[48] = { - 0x72, 0x25, 0x2D, 0x32, 0x64, 0x20, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x20, - 0x28, 0x25, 0x31, 0x34, 0x64, 0x29, 0x20, 0x20, 0x72, 0x25, 0x2D, 0x32, 0x64, 0x20, 0x20, 0x3D, - 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x20, 0x28, 0x25, 0x31, 0x34, 0x64, 0x29, 0x0A, 0x00, -}; -#pragma pop - -/* 803CF7B4-803CF7E4 02C8D4 002F+01 0/1 0/0 0/0 .data @63 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_63[47 + 1 /* padding */] = { - 0x4C, - 0x52, - 0x20, - 0x20, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x43, - 0x52, - 0x20, - 0x20, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CF7E4-803CF814 02C904 002F+01 0/1 0/0 0/0 .data @64 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_64[47 + 1 /* padding */] = { - 0x53, - 0x52, - 0x52, - 0x30, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x53, - 0x52, - 0x52, - 0x31, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CF814-803CF828 02C934 0011+03 0/1 0/0 0/0 .data @65 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_65[17 + 3 /* padding */] = { - 0x0A, - 0x47, - 0x51, - 0x52, - 0x73, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF828-803CF84C 02C948 0021+03 0/1 0/0 0/0 .data @66 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_66[33 + 3 /* padding */] = { - 0x67, - 0x71, - 0x72, - 0x25, - 0x64, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x09, - 0x20, - 0x67, - 0x71, - 0x72, - 0x25, - 0x64, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF84C-803CF860 02C96C 0012+02 0/1 0/0 0/0 .data @67 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_67[18 + 2 /* padding */] = { - 0x0A, - 0x0A, - 0x46, - 0x50, - 0x52, - 0x73, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF860-803CF87C 02C980 0019+03 0/1 0/0 0/0 .data @68 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_68[25 + 3 /* padding */] = { - 0x66, - 0x72, - 0x25, - 0x64, - 0x20, - 0x09, - 0x3D, - 0x20, - 0x25, - 0x64, - 0x20, - 0x09, - 0x20, - 0x66, - 0x72, - 0x25, - 0x64, - 0x20, - 0x09, - 0x3D, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF87C-803CF890 02C99C 0012+02 0/1 0/0 0/0 .data @69 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_69[18 + 2 /* padding */] = { - 0x0A, - 0x0A, - 0x50, - 0x53, - 0x46, - 0x73, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x2D, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF890-803CF8B0 02C9B0 001D+03 0/1 0/0 0/0 .data @70 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_70[29 + 3 /* padding */] = { - 0x70, - 0x73, - 0x25, - 0x64, - 0x20, - 0x09, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x78, - 0x20, - 0x09, - 0x20, - 0x70, - 0x73, - 0x25, - 0x64, - 0x20, - 0x09, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF8B0-803CF8D8 02C9D0 0026+02 0/1 0/0 0/0 .data @71 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_71[38 + 2 /* padding */] = { - 0x0A, - 0x41, - 0x64, - 0x64, - 0x72, - 0x65, - 0x73, - 0x73, - 0x3A, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x42, - 0x61, - 0x63, - 0x6B, - 0x20, - 0x43, - 0x68, - 0x61, - 0x69, - 0x6E, - 0x20, - 0x20, - 0x20, - 0x20, - 0x4C, - 0x52, - 0x20, - 0x53, - 0x61, - 0x76, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF8D8-803CF8F4 02C9F8 001C+00 0/1 0/0 0/0 .data @72 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_72[28] = { - 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x3A, 0x20, 0x20, 0x20, 0x30, 0x78, 0x25, 0x30, - 0x38, 0x78, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, -}; -#pragma pop - -/* 8033C0E0-8033C388 336A20 02A8+00 0/0 3/3 0/0 .text OSDumpContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSDumpContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSDumpContext.s" -} -#pragma pop - -/* 8033C388-8033C40C 336CC8 0084+00 1/1 0/0 0/0 .text OSSwitchFPUContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSSwitchFPUContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSSwitchFPUContext.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803CF8F4-803CF918 02CA14 0023+01 1/1 0/0 0/0 .data @76 */ -SECTION_DATA static u8 lit_76[35 + 1 /* padding */] = { - 0x46, - 0x50, - 0x55, - 0x2D, - 0x75, - 0x6E, - 0x61, - 0x76, - 0x61, - 0x69, - 0x6C, - 0x61, - 0x62, - 0x6C, - 0x65, - 0x20, - 0x68, - 0x61, - 0x6E, - 0x64, - 0x6C, - 0x65, - 0x72, - 0x20, - 0x69, - 0x6E, - 0x73, - 0x74, - 0x61, - 0x6C, - 0x6C, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; - -/* 8033C40C-8033C454 336D4C 0048+00 0/0 1/1 0/0 .text __OSContextInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSContextInit(void) { - nofralloc -#include "asm/dolphin/os/OSContext/__OSContextInit.s" -} -#pragma pop - -/* 8033C454-8033C580 336D94 012C+00 0/0 1/1 0/0 .text OSFillFPUContext */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSFillFPUContext(OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSContext/OSFillFPUContext.s" -} -#pragma pop diff --git a/libs/dolphin/os/OSError.c b/libs/dolphin/os/OSError.c new file mode 100644 index 00000000000..e3c503ffba8 --- /dev/null +++ b/libs/dolphin/os/OSError.c @@ -0,0 +1,177 @@ +// +// Generated By: dol2asm +// Translation Unit: OSError +// + +#include "dolphin/os/OSError.h" +#include "dol2asm.h" +#include "dolphin/types.h" + +// +// External References: +// + +void OSReport(); +void PPCMfmsr(); +void PPCMtmsr(); +void PPCHalt(); +void PPCMffpscr(); +void PPCMtfpscr(); +void OSSaveFPUContext(); +void OSLoadContext(); +void OSDumpContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void OSDisableScheduler(); +void OSEnableScheduler(); +void __OSReschedule(); +void OSGetTime(); +extern u8 __OSLastInterruptSrr0[4]; +extern u8 __OSLastInterrupt[2 + 6 /* padding */]; +extern u8 __OSLastInterruptTime[4]; +extern u8 data_80451684[4]; + +// +// Declarations: +// + +/* ############################################################################################## */ +/* 8044BAD0-8044BB20 0787F0 0044+0C 2/2 2/2 0/0 .bss __OSErrorTable */ +extern OSErrorHandler __OSErrorTable[17 + 3 /* padding */]; +OSErrorHandler __OSErrorTable[17 + 3 /* padding */]; + +/* 804509A0-804509A4 000420 0004+00 1/1 2/2 0/0 .sdata __OSFpscrEnableBits */ +SECTION_SDATA extern u32 __OSFpscrEnableBits = 0xF8; + +/* 8033C580-8033C798 336EC0 0218+00 0/0 4/4 0/0 .text OSSetErrorHandler */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) { + nofralloc +#include "asm/dolphin/os/OSError/OSSetErrorHandler.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803CF918-803CF930 02CA38 0016+02 1/1 0/0 0/0 .data @13 */ +SECTION_DATA static char lit_13[] = " in \"%s\" on line %d.\n"; + +/* 803CF930-803CF958 02CA50 0026+02 0/0 0/0 0/0 .data @14 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_14[] = "\nAddress: Back Chain LR Save\n"; +#pragma pop + +/* 803CF958-803CF974 02CA78 001C+00 0/0 0/0 0/0 .data @15 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_15[] = "0x%08x: 0x%08x 0x%08x\n"; +#pragma pop + +/* 803CF974-803CF994 02CA94 001D+03 0/1 0/0 0/0 .data @74 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_74[] = "Non-recoverable Exception %d"; +#pragma pop + +/* 803CF994-803CF9AC 02CAB4 0017+01 0/1 0/0 0/0 .data @75 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_75[] = "Unhandled Exception %d"; +#pragma pop + +/* 803CF9AC-803CF9E0 02CACC 0031+03 0/1 0/0 0/0 .data @77 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_77[] = "\nDSISR = 0x%08x DAR = 0x%08x\n"; +#pragma pop + +/* 803CF9E0-803CF9F0 02CB00 0010+00 0/1 0/0 0/0 .data @78 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_78[] = "TB = 0x%016llx\n"; +#pragma pop + +/* 803CF9F0-803CFA50 02CB10 0060+00 0/1 0/0 0/0 .data @79 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_79[] = "\nInstruction at 0x%x (read from SRR0) attempted to access invalid address 0x%x (read from DAR)\n"; +#pragma pop + +/* 803CFA50-803CFA9C 02CB70 004C+00 0/0 0/0 0/0 .data @80 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_80[] = "\nAttempted to fetch instruction from invalid address 0x%x (read from SRR0)\n"; +#pragma pop + +/* 803CFA9C-803CFB00 02CBBC 0062+02 0/0 0/0 0/0 .data @81 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_81[] = "\nInstruction at 0x%x (read from SRR0) attempted to access unaligned address 0x%x (read from DAR)\n"; +#pragma pop + +/* 803CFB00-803CFB60 02CC20 0060+00 0/0 0/0 0/0 .data @82 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_82[] = "\nProgram exception : Possible illegal instruction/operation at or around 0x%x (read from SRR0)\n"; +#pragma pop + +/* 803CFB60-803CFB80 02CC80 001F+01 0/0 0/0 0/0 .data @83 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_83[] = "AI DMA Address = 0x%04x%04x\n"; +#pragma pop + +/* 803CFB80-803CFBA0 02CCA0 001F+01 0/0 0/0 0/0 .data @84 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_84[] = "ARAM DMA Address = 0x%04x%04x\n"; +#pragma pop + +/* 803CFBA0-803CFBBC 02CCC0 001B+01 0/0 0/0 0/0 .data @85 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_85[] = "DI DMA Address = 0x%08x\n"; +#pragma pop + +/* 803CFBBC-803CFBF4 02CCDC 0035+03 0/1 0/0 0/0 .data @86 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_86[] = "\nLast interrupt (%d): SRR0 = 0x%08x TB = 0x%016llx\n"; +#pragma pop + +/* 803CFBF4-803CFC38 -00001 0040+04 1/1 0/0 0/0 .data @87 */ +SECTION_DATA static void* lit_87[16 + 1 /* padding */] = { + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x20C), + (void*)(((char*)__OSUnhandledException) + 0x224), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x238), + (void*)(((char*)__OSUnhandledException) + 0x250), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x2B4), + (void*)(((char*)__OSUnhandledException) + 0x268), + /* padding */ + NULL, +}; + +/* 804509A4-804509A8 000424 0002+02 1/1 0/0 0/0 .sdata @76 */ +SECTION_SDATA static char lit_76[] = "\n"; + +/* 8033C798-8033CA80 3370D8 02E8+00 1/0 2/2 0/0 .text __OSUnhandledException */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __OSUnhandledException(OSException exception, OSContext* context, u32 dsisr, u32 dar) { + nofralloc +#include "asm/dolphin/os/OSError/__OSUnhandledException.s" +} +#pragma pop diff --git a/libs/dolphin/os/OSError.cpp b/libs/dolphin/os/OSError.cpp deleted file mode 100644 index 950c2c5160b..00000000000 --- a/libs/dolphin/os/OSError.cpp +++ /dev/null @@ -1,646 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: OSError -// - -#include "dolphin/os/OSError.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// External References: -// - -extern "C" void OSReport(); -extern "C" void PPCMfmsr(); -extern "C" void PPCMtmsr(); -extern "C" void PPCHalt(); -extern "C" void PPCMffpscr(); -extern "C" void PPCMtfpscr(); -extern "C" void OSSaveFPUContext(); -extern "C" void OSLoadContext(); -extern "C" void OSDumpContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSDisableScheduler(); -extern "C" void OSEnableScheduler(); -extern "C" void __OSReschedule(); -extern "C" void OSGetTime(); -extern "C" extern u8 __OSLastInterruptSrr0[4]; -extern "C" extern u8 __OSLastInterrupt[2 + 6 /* padding */]; -extern "C" extern u8 __OSLastInterruptTime[4]; -extern "C" extern u8 data_80451684[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 8044BAD0-8044BB20 0787F0 0044+0C 2/2 2/2 0/0 .bss __OSErrorTable */ -extern u8 __OSErrorTable[68 + 12 /* padding */]; -u8 __OSErrorTable[68 + 12 /* padding */]; - -/* 804509A0-804509A4 000420 0004+00 1/1 2/2 0/0 .sdata __OSFpscrEnableBits */ -SECTION_SDATA extern u32 __OSFpscrEnableBits = 0x000000F8; - -/* 8033C580-8033C798 336EC0 0218+00 0/0 4/4 0/0 .text OSSetErrorHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) { - nofralloc -#include "asm/dolphin/os/OSError/OSSetErrorHandler.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803CF918-803CF930 02CA38 0016+02 1/1 0/0 0/0 .data @13 */ -SECTION_DATA static u8 lit_13[22 + 2 /* padding */] = { - 0x20, - 0x69, - 0x6E, - 0x20, - 0x22, - 0x25, - 0x73, - 0x22, - 0x20, - 0x6F, - 0x6E, - 0x20, - 0x6C, - 0x69, - 0x6E, - 0x65, - 0x20, - 0x25, - 0x64, - 0x2E, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; - -/* 803CF930-803CF958 02CA50 0026+02 0/0 0/0 0/0 .data @14 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_14[38 + 2 /* padding */] = { - 0x0A, - 0x41, - 0x64, - 0x64, - 0x72, - 0x65, - 0x73, - 0x73, - 0x3A, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x42, - 0x61, - 0x63, - 0x6B, - 0x20, - 0x43, - 0x68, - 0x61, - 0x69, - 0x6E, - 0x20, - 0x20, - 0x20, - 0x20, - 0x4C, - 0x52, - 0x20, - 0x53, - 0x61, - 0x76, - 0x65, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF958-803CF974 02CA78 001C+00 0/0 0/0 0/0 .data @15 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_15[28] = { - 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x3A, 0x20, 0x20, 0x20, 0x30, 0x78, 0x25, 0x30, - 0x38, 0x78, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, -}; -#pragma pop - -/* 803CF974-803CF994 02CA94 001D+03 0/1 0/0 0/0 .data @74 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_74[29 + 3 /* padding */] = { - 0x4E, - 0x6F, - 0x6E, - 0x2D, - 0x72, - 0x65, - 0x63, - 0x6F, - 0x76, - 0x65, - 0x72, - 0x61, - 0x62, - 0x6C, - 0x65, - 0x20, - 0x45, - 0x78, - 0x63, - 0x65, - 0x70, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF994-803CF9AC 02CAB4 0017+01 0/1 0/0 0/0 .data @75 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_75[23 + 1 /* padding */] = { - 0x55, - 0x6E, - 0x68, - 0x61, - 0x6E, - 0x64, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x45, - 0x78, - 0x63, - 0x65, - 0x70, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CF9AC-803CF9E0 02CACC 0031+03 0/1 0/0 0/0 .data @77 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_77[49 + 3 /* padding */] = { - 0x0A, - 0x44, - 0x53, - 0x49, - 0x53, - 0x52, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x44, - 0x41, - 0x52, - 0x20, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CF9E0-803CF9F0 02CB00 0010+00 0/1 0/0 0/0 .data @78 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_78[16] = { - 0x54, 0x42, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x30, 0x31, 0x36, 0x6C, 0x6C, 0x78, 0x0A, 0x00, -}; -#pragma pop - -/* 803CF9F0-803CFA50 02CB10 0060+00 0/1 0/0 0/0 .data @79 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_79[96] = { - 0x0A, 0x49, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x74, 0x20, - 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, - 0x53, 0x52, 0x52, 0x30, 0x29, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6D, 0x70, 0x74, 0x65, 0x64, 0x20, - 0x74, 0x6F, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x69, 0x6E, 0x76, 0x61, 0x6C, 0x69, - 0x64, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x44, 0x41, 0x52, 0x29, 0x0A, 0x00, -}; -#pragma pop - -/* 803CFA50-803CFA9C 02CB70 004C+00 0/0 0/0 0/0 .data @80 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_80[76] = { - 0x0A, 0x41, 0x74, 0x74, 0x65, 0x6D, 0x70, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x66, 0x65, - 0x74, 0x63, 0x68, 0x20, 0x69, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, - 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x69, 0x6E, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x53, 0x52, 0x52, 0x30, 0x29, 0x0A, 0x00, -}; -#pragma pop - -/* 803CFA9C-803CFB00 02CBBC 0062+02 0/0 0/0 0/0 .data @81 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_81[98 + 2 /* padding */] = { - 0x0A, - 0x49, - 0x6E, - 0x73, - 0x74, - 0x72, - 0x75, - 0x63, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x61, - 0x74, - 0x20, - 0x30, - 0x78, - 0x25, - 0x78, - 0x20, - 0x28, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x66, - 0x72, - 0x6F, - 0x6D, - 0x20, - 0x53, - 0x52, - 0x52, - 0x30, - 0x29, - 0x20, - 0x61, - 0x74, - 0x74, - 0x65, - 0x6D, - 0x70, - 0x74, - 0x65, - 0x64, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x61, - 0x63, - 0x63, - 0x65, - 0x73, - 0x73, - 0x20, - 0x75, - 0x6E, - 0x61, - 0x6C, - 0x69, - 0x67, - 0x6E, - 0x65, - 0x64, - 0x20, - 0x61, - 0x64, - 0x64, - 0x72, - 0x65, - 0x73, - 0x73, - 0x20, - 0x30, - 0x78, - 0x25, - 0x78, - 0x20, - 0x28, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x66, - 0x72, - 0x6F, - 0x6D, - 0x20, - 0x44, - 0x41, - 0x52, - 0x29, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803CFB00-803CFB60 02CC20 0060+00 0/0 0/0 0/0 .data @82 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_82[96] = { - 0x0A, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, - 0x6F, 0x6E, 0x20, 0x3A, 0x20, 0x50, 0x6F, 0x73, 0x73, 0x69, 0x62, 0x6C, 0x65, 0x20, 0x69, 0x6C, - 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x69, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6F, - 0x6E, 0x2F, 0x6F, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x74, 0x20, 0x6F, - 0x72, 0x20, 0x61, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x53, 0x52, 0x52, 0x30, 0x29, 0x0A, 0x00, -}; -#pragma pop - -/* 803CFB60-803CFB80 02CC80 001F+01 0/0 0/0 0/0 .data @83 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_83[31 + 1 /* padding */] = { - 0x41, - 0x49, - 0x20, - 0x44, - 0x4D, - 0x41, - 0x20, - 0x41, - 0x64, - 0x64, - 0x72, - 0x65, - 0x73, - 0x73, - 0x20, - 0x3D, - 0x20, - 0x20, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x34, - 0x78, - 0x25, - 0x30, - 0x34, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CFB80-803CFBA0 02CCA0 001F+01 0/0 0/0 0/0 .data @84 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_84[31 + 1 /* padding */] = { - 0x41, - 0x52, - 0x41, - 0x4D, - 0x20, - 0x44, - 0x4D, - 0x41, - 0x20, - 0x41, - 0x64, - 0x64, - 0x72, - 0x65, - 0x73, - 0x73, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x34, - 0x78, - 0x25, - 0x30, - 0x34, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CFBA0-803CFBBC 02CCC0 001B+01 0/0 0/0 0/0 .data @85 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_85[27 + 1 /* padding */] = { - 0x44, - 0x49, - 0x20, - 0x44, - 0x4D, - 0x41, - 0x20, - 0x41, - 0x64, - 0x64, - 0x72, - 0x65, - 0x73, - 0x73, - 0x20, - 0x3D, - 0x20, - 0x20, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803CFBBC-803CFBF4 02CCDC 0035+03 0/1 0/0 0/0 .data @86 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_86[53 + 3 /* padding */] = { - 0x0A, - 0x4C, - 0x61, - 0x73, - 0x74, - 0x20, - 0x69, - 0x6E, - 0x74, - 0x65, - 0x72, - 0x72, - 0x75, - 0x70, - 0x74, - 0x20, - 0x28, - 0x25, - 0x64, - 0x29, - 0x3A, - 0x20, - 0x53, - 0x52, - 0x52, - 0x30, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x38, - 0x78, - 0x20, - 0x20, - 0x54, - 0x42, - 0x20, - 0x3D, - 0x20, - 0x30, - 0x78, - 0x25, - 0x30, - 0x31, - 0x36, - 0x6C, - 0x6C, - 0x78, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803CFBF4-803CFC38 -00001 0040+04 1/1 0/0 0/0 .data @87 */ -SECTION_DATA static void* lit_87[16 + 1 /* padding */] = { - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x20C), - (void*)(((char*)__OSUnhandledException) + 0x224), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x238), - (void*)(((char*)__OSUnhandledException) + 0x250), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x2B4), - (void*)(((char*)__OSUnhandledException) + 0x268), - /* padding */ - NULL, -}; - -/* 804509A4-804509A8 000424 0002+02 1/1 0/0 0/0 .sdata @76 */ -SECTION_SDATA static u16 lit_76[1 + 1 /* padding */] = { - 0x0A00, - /* padding */ - 0x0000, -}; - -/* 8033C798-8033CA80 3370D8 02E8+00 1/0 2/2 0/0 .text __OSUnhandledException */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSUnhandledException(OSException exception, OSContext* context, u32 dsisr, u32 dar) { - nofralloc -#include "asm/dolphin/os/OSError/__OSUnhandledException.s" -} -#pragma pop diff --git a/libs/dolphin/os/OSExec.cpp b/libs/dolphin/os/OSExec.c similarity index 63% rename from libs/dolphin/os/OSExec.cpp rename to libs/dolphin/os/OSExec.c index 877c7257c56..e014d256ddb 100644 --- a/libs/dolphin/os/OSExec.cpp +++ b/libs/dolphin/os/OSExec.c @@ -13,34 +13,34 @@ SECTION_INIT void memset(); SECTION_INIT void memcpy(); -extern "C" void OSReport(); -extern "C" void OSSetArenaLo(); -extern "C" void OSAllocFromArenaLo(); -extern "C" void ICInvalidateRange(); -extern "C" void ICFlashInvalidate(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSEnableInterrupts(); -extern "C" void __OSMaskInterrupts(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void OSGetSaveRegion(); -extern "C" void __OSDoHotReset(); -extern "C" void DVDInit(); -extern "C" void DVDReadAbsAsyncPrio(); -extern "C" void DVDCancelStreamAsync(); -extern "C" void DVDGetCommandBlockStatus(); -extern "C" void DVDSetAutoInvalidation(); -extern "C" void DVDResume(); -extern "C" void DVDGetCurrentDiskID(); -extern "C" void DVDCheckDisk(); -extern "C" void __DVDPrepareResetAsync(); -extern "C" void AISetStreamPlayState(); -extern "C" void AISetStreamVolLeft(); -extern "C" void AISetStreamVolRight(); -extern "C" void sprintf(); -extern "C" void strncmp(); -extern "C" void strcpy(); -extern "C" void strlen(); -extern "C" extern u8 __OSIsGcam[4]; +void OSReport(); +void OSSetArenaLo(); +void OSAllocFromArenaLo(); +void ICInvalidateRange(); +void ICFlashInvalidate(); +void OSDisableInterrupts(); +void OSEnableInterrupts(); +void __OSMaskInterrupts(); +void __OSUnmaskInterrupts(); +void OSGetSaveRegion(); +void __OSDoHotReset(); +void DVDInit(); +void DVDReadAbsAsyncPrio(); +void DVDCancelStreamAsync(); +void DVDGetCommandBlockStatus(); +void DVDSetAutoInvalidation(); +void DVDResume(); +void DVDGetCurrentDiskID(); +void DVDCheckDisk(); +void __DVDPrepareResetAsync(); +void AISetStreamPlayState(); +void AISetStreamVolLeft(); +void AISetStreamVolRight(); +void sprintf(); +void strncmp(); +void strcpy(); +void strlen(); +extern u8 __OSIsGcam[4]; // // Declarations: @@ -57,14 +57,28 @@ static asm s32 PackArgs(void* param_0, u32 param_1, void* param_2) { #pragma pop /* 8033CC08-8033CC44 337548 003C+00 1/1 0/0 0/0 .text Run */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off static asm void Run(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSExec/Run.s" + + mflr r0 + stw r0, 4(r1) + stwu r1, -0x18(r1) + stw r31, 0x14(r1) + mr r31, r3 + bl ICFlashInvalidate + sync + isync + mtlr r31 + blr + + lwz r0, 0x1c(r1) + lwz r31, 0x14(r1) + addi r1, r1, 0x18 + mtlr r0 + blr + // clang-format on } -#pragma pop /* 8033CC44-8033CCB0 337584 006C+00 1/1 0/0 0/0 .text ReadDisc */ #pragma push @@ -78,17 +92,12 @@ static asm void ReadDisc(void* param_0, s32 param_1, s32 param_2) { /* ############################################################################################## */ /* 80451658-8045165C 000B58 0004+00 2/2 0/0 0/0 .sbss Prepared */ -static u8 Prepared[4]; +static BOOL Prepared; /* 8033CCB0-8033CCBC 3375F0 000C+00 1/1 0/0 0/0 .text Callback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void Callback(void) { - nofralloc -#include "asm/dolphin/os/OSExec/Callback.s" +static void Callback(void) { + Prepared = TRUE; } -#pragma pop /* 8033CCBC-8033CCFC 3375FC 0040+00 0/0 1/1 0/0 .text __OSGetExecParams */ #pragma push @@ -102,7 +111,7 @@ asm void __OSGetExecParams(void* param_0) { /* ############################################################################################## */ /* 8045165C-80451660 000B5C 0004+00 2/2 0/0 0/0 .sbss apploaderPosition$69 */ -static u8 apploaderPosition[4]; +static s32 apploaderPosition; /* 8033CCFC-8033CDC0 33763C 00C4+00 1/1 0/0 0/0 .text GetApploaderPosition */ #pragma push @@ -116,25 +125,7 @@ static asm void GetApploaderPosition(void) { /* ############################################################################################## */ /* 803CFC38-803CFC48 02CD58 000B+05 1/1 0/0 0/0 .data @115 */ -SECTION_DATA static u8 lit_115[11 + 5 /* padding */] = { - 0x32, - 0x30, - 0x30, - 0x34, - 0x2F, - 0x30, - 0x32, - 0x2F, - 0x30, - 0x31, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_115[] = "2004/02/01"; /* 8033CDC0-8033D244 337700 0484+00 1/1 0/0 0/0 .text __OSBootDolSimple */ #pragma push @@ -148,17 +139,7 @@ asm void __OSBootDolSimple(u32 param_0, u32 param_1, void* param_2, void* param_ /* ############################################################################################## */ /* 804509A8-804509B0 000428 0003+05 1/1 0/0 0/0 .sdata @213 */ -SECTION_SDATA static u8 lit_213[3 + 5 /* padding */] = { - 0x25, - 0x64, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_SDATA static char lit_213[] = "%d"; /* 8033D244-8033D3E0 337B84 019C+00 0/0 1/1 0/0 .text __OSBootDol */ #pragma push diff --git a/libs/dolphin/os/OSFont.c b/libs/dolphin/os/OSFont.c new file mode 100644 index 00000000000..21df6608e04 --- /dev/null +++ b/libs/dolphin/os/OSFont.c @@ -0,0 +1,242 @@ +// +// Generated By: dol2asm +// Translation Unit: OSFont +// + +#include "dolphin/os/OSFont.h" +#include "dol2asm.h" +#include "dolphin/types.h" + +// +// Declarations: +// + +/* ############################################################################################## */ +/* 803CFC48-803CFDC8 02CD68 0180+00 1/1 0/0 0/0 .data HankakuToCode */ +SECTION_DATA static u8 HankakuToCode[384] = { + 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02, 0x13, + 0x02, 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x17, 0x02, 0x18, 0x02, 0x19, 0x02, 0x1A, 0x02, 0x1B, + 0x02, 0x1C, 0x02, 0x1D, 0x02, 0x1E, 0x02, 0x1F, 0x02, 0x20, 0x02, 0x21, 0x02, 0x22, 0x02, 0x23, + 0x02, 0x24, 0x02, 0x25, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28, 0x02, 0x29, 0x02, 0x2A, 0x02, 0x2B, + 0x02, 0x2C, 0x02, 0x2D, 0x02, 0x2E, 0x02, 0x2F, 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, + 0x02, 0x34, 0x02, 0x35, 0x02, 0x36, 0x02, 0x37, 0x02, 0x38, 0x02, 0x39, 0x02, 0x3A, 0x02, 0x3B, + 0x02, 0x3C, 0x02, 0x3D, 0x02, 0x3E, 0x02, 0x3F, 0x02, 0x40, 0x02, 0x41, 0x02, 0x42, 0x02, 0x43, + 0x02, 0x44, 0x02, 0x45, 0x02, 0x46, 0x02, 0x47, 0x02, 0x48, 0x02, 0x49, 0x02, 0x4A, 0x02, 0x4B, + 0x02, 0x4C, 0x02, 0x4D, 0x02, 0x4E, 0x02, 0x4F, 0x02, 0x50, 0x02, 0x51, 0x02, 0x52, 0x02, 0x53, + 0x02, 0x54, 0x02, 0x55, 0x02, 0x56, 0x02, 0x57, 0x02, 0x58, 0x02, 0x59, 0x02, 0x5A, 0x02, 0x5B, + 0x02, 0x5C, 0x02, 0x5D, 0x02, 0x5E, 0x02, 0x5F, 0x02, 0x60, 0x02, 0x61, 0x02, 0x62, 0x02, 0x63, + 0x02, 0x64, 0x02, 0x65, 0x02, 0x66, 0x02, 0x67, 0x02, 0x68, 0x02, 0x69, 0x02, 0x6A, 0x02, 0x0C, + 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, + 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, + 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, + 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, + 0x02, 0x0C, 0x02, 0x6B, 0x02, 0x6C, 0x02, 0x6D, 0x02, 0x6E, 0x02, 0x6F, 0x02, 0x70, 0x02, 0x71, + 0x02, 0x72, 0x02, 0x73, 0x02, 0x74, 0x02, 0x75, 0x02, 0x76, 0x02, 0x77, 0x02, 0x78, 0x02, 0x79, + 0x02, 0x7A, 0x02, 0x7B, 0x02, 0x7C, 0x02, 0x7D, 0x02, 0x7E, 0x02, 0x7F, 0x02, 0x80, 0x02, 0x81, + 0x02, 0x82, 0x02, 0x83, 0x02, 0x84, 0x02, 0x85, 0x02, 0x86, 0x02, 0x87, 0x02, 0x88, 0x02, 0x89, + 0x02, 0x8A, 0x02, 0x8B, 0x02, 0x8C, 0x02, 0x8D, 0x02, 0x8E, 0x02, 0x8F, 0x02, 0x90, 0x02, 0x91, + 0x02, 0x92, 0x02, 0x93, 0x02, 0x94, 0x02, 0x95, 0x02, 0x96, 0x02, 0x97, 0x02, 0x98, 0x02, 0x99, + 0x02, 0x9A, 0x02, 0x9B, 0x02, 0x9C, 0x02, 0x9D, 0x02, 0x9E, 0x02, 0x9F, 0x02, 0xA0, 0x02, 0xA1, + 0x02, 0xA2, 0x02, 0xA3, 0x02, 0xA4, 0x02, 0xA5, 0x02, 0xA6, 0x02, 0xA7, 0x02, 0xA8, 0x02, 0xA9, +}; + +/* 803CFDC8-803D0758 02CEE8 098A+06 1/1 0/0 0/0 .data Zenkaku2Code */ +SECTION_DATA static u8 Zenkaku2Code[2442] = { + 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, + 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, + 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, + 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, + 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, + 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, + 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, + 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, + 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x00, 0x47, + 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4F, + 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, + 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5F, + 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, + 0x00, 0x68, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, + 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, + 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x80, 0x00, 0x81, + 0x00, 0x82, 0x00, 0x83, 0x00, 0x84, 0x00, 0x85, 0x00, 0x86, 0x00, 0x87, 0x00, 0x88, 0x00, 0x89, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, + 0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8F, 0x00, 0x90, 0x00, 0x91, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x00, 0x94, 0x00, 0x95, 0x00, 0x96, 0x00, 0x97, + 0x00, 0x98, 0x00, 0x99, 0x00, 0x9A, 0x00, 0x9B, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x9E, 0x00, 0x9F, 0x00, 0xA0, + 0x00, 0xA1, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0xA6, 0x00, 0xA7, 0x00, 0xA8, + 0x00, 0xA9, 0x00, 0xAA, 0x00, 0xAB, 0x00, 0xAC, 0x00, 0xAD, 0x00, 0xAE, 0x00, 0xAF, 0x00, 0xB0, + 0x00, 0xB1, 0x00, 0xB2, 0x00, 0xB3, 0x00, 0xB4, 0x00, 0xB5, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0xBA, + 0x00, 0xBB, 0x00, 0xBC, 0x00, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, + 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, + 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, + 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDE, + 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE6, + 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xEE, + 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF6, + 0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFE, + 0x00, 0xFF, 0x01, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0x04, 0x01, 0x05, 0x01, 0x06, + 0x01, 0x07, 0x01, 0x08, 0x01, 0x09, 0x01, 0x0A, 0x01, 0x0B, 0x01, 0x0C, 0x01, 0x0D, 0x01, 0x0E, + 0x01, 0x0F, 0x01, 0x10, 0x01, 0x11, 0x01, 0x12, 0x01, 0x13, 0x01, 0x14, 0x01, 0x15, 0x01, 0x16, + 0x01, 0x17, 0x01, 0x18, 0x01, 0x19, 0x01, 0x1A, 0x01, 0x1B, 0x01, 0x1C, 0x01, 0x1D, 0x01, 0x1E, + 0x01, 0x1F, 0x01, 0x20, 0x01, 0x21, 0x01, 0x22, 0x01, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x24, 0x01, 0x25, 0x01, 0x26, 0x01, 0x27, 0x01, 0x28, 0x01, 0x29, 0x01, 0x2A, 0x01, 0x2B, + 0x01, 0x2C, 0x01, 0x2D, 0x01, 0x2E, 0x01, 0x2F, 0x01, 0x30, 0x01, 0x31, 0x01, 0x32, 0x01, 0x33, + 0x01, 0x34, 0x01, 0x35, 0x01, 0x36, 0x01, 0x37, 0x01, 0x38, 0x01, 0x39, 0x01, 0x3A, 0x01, 0x3B, + 0x01, 0x3C, 0x01, 0x3D, 0x01, 0x3E, 0x01, 0x3F, 0x01, 0x40, 0x01, 0x41, 0x01, 0x42, 0x01, 0x43, + 0x01, 0x44, 0x01, 0x45, 0x01, 0x46, 0x01, 0x47, 0x01, 0x48, 0x01, 0x49, 0x01, 0x4A, 0x01, 0x4B, + 0x01, 0x4C, 0x01, 0x4D, 0x01, 0x4E, 0x01, 0x4F, 0x01, 0x50, 0x01, 0x51, 0x01, 0x52, 0x01, 0x53, + 0x01, 0x54, 0x01, 0x55, 0x01, 0x56, 0x01, 0x57, 0x01, 0x58, 0x01, 0x59, 0x01, 0x5A, 0x01, 0x5B, + 0x01, 0x5C, 0x01, 0x5D, 0x01, 0x5E, 0x01, 0x5F, 0x01, 0x60, 0x01, 0x61, 0x01, 0x62, 0x01, 0x63, + 0x01, 0x64, 0x01, 0x65, 0x01, 0x66, 0x01, 0x67, 0x01, 0x68, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x6B, + 0x01, 0x6C, 0x01, 0x6D, 0x01, 0x6E, 0x01, 0x6F, 0x01, 0x70, 0x01, 0x71, 0x01, 0x72, 0x01, 0x73, + 0x01, 0x74, 0x01, 0x75, 0x01, 0x76, 0x01, 0x77, 0x01, 0x78, 0x01, 0x79, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7A, 0x01, 0x7B, + 0x01, 0x7C, 0x01, 0x7D, 0x01, 0x7E, 0x01, 0x7F, 0x01, 0x80, 0x01, 0x81, 0x01, 0x82, 0x01, 0x83, + 0x01, 0x84, 0x01, 0x85, 0x01, 0x86, 0x01, 0x87, 0x01, 0x88, 0x01, 0x89, 0x01, 0x8A, 0x01, 0x8B, + 0x01, 0x8C, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x8F, 0x01, 0x90, 0x01, 0x91, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x92, 0x01, 0x93, + 0x01, 0x94, 0x01, 0x95, 0x01, 0x96, 0x01, 0x97, 0x01, 0x98, 0x01, 0x99, 0x01, 0x9A, 0x01, 0x9B, + 0x01, 0x9C, 0x01, 0x9D, 0x01, 0x9E, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0xA1, 0x01, 0xA2, 0x01, 0xA3, + 0x01, 0xA4, 0x01, 0xA5, 0x01, 0xA6, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA9, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xAA, 0x01, 0xAB, 0x01, 0xAC, 0x01, 0xAD, + 0x01, 0xAE, 0x01, 0xAF, 0x01, 0xB0, 0x01, 0xB1, 0x01, 0xB2, 0x01, 0xB3, 0x01, 0xB4, 0x01, 0xB5, + 0x01, 0xB6, 0x01, 0xB7, 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xBB, 0x01, 0xBC, 0x01, 0xBD, + 0x01, 0xBE, 0x01, 0xBF, 0x01, 0xC0, 0x01, 0xC1, 0x01, 0xC2, 0x01, 0xC3, 0x01, 0xC4, 0x01, 0xC5, + 0x01, 0xC6, 0x01, 0xC7, 0x01, 0xC8, 0x01, 0xC9, 0x01, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xCB, 0x01, 0xCC, 0x01, 0xCD, 0x01, 0xCE, + 0x01, 0xCF, 0x01, 0xD0, 0x01, 0xD1, 0x01, 0xD2, 0x01, 0xD3, 0x01, 0xD4, 0x01, 0xD5, 0x01, 0xD6, + 0x01, 0xD7, 0x01, 0xD8, 0x01, 0xD9, 0x01, 0xDA, 0x01, 0xDB, 0x01, 0xDC, 0x01, 0xDD, 0x01, 0xDE, + 0x01, 0xDF, 0x01, 0xE0, 0x01, 0xE1, 0x01, 0xE2, 0x01, 0xE3, 0x01, 0xE4, 0x01, 0xE5, 0x01, 0xE6, + 0x01, 0xE7, 0x01, 0xE8, 0x01, 0xE9, 0x01, 0xEA, 0x01, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xEC, 0x01, 0xED, 0x01, 0xEE, 0x01, 0xEF, 0x01, 0xF0, 0x01, 0xF1, + 0x01, 0xF2, 0x01, 0xF3, 0x01, 0xF4, 0x01, 0xF5, 0x01, 0xF6, 0x01, 0xF7, 0x01, 0xF8, 0x01, 0xF9, + 0x01, 0xFA, 0x01, 0xFB, 0x01, 0xFC, 0x01, 0xFD, 0x01, 0xFE, 0x01, 0xFF, 0x02, 0x00, 0x02, 0x01, + 0x02, 0x02, 0x02, 0x03, 0x02, 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x07, 0x02, 0x08, 0x02, 0x09, + 0x02, 0x0A, 0x02, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0C, + 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02, 0x13, 0x02, 0x14, + 0x02, 0x15, 0x02, 0x16, 0x02, 0x17, 0x02, 0x18, 0x02, 0x19, 0x02, 0x1A, 0x02, 0x1B, 0x02, 0x1C, + 0x02, 0x1D, 0x02, 0x1E, 0x02, 0x1F, 0x02, 0x20, 0x02, 0x21, 0x02, 0x22, 0x02, 0x23, 0x02, 0x24, + 0x02, 0x25, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28, 0x02, 0x29, 0x02, 0x2A, 0x02, 0x2B, 0x02, 0x2C, + 0x02, 0x2D, 0x02, 0x2E, 0x02, 0x2F, 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, 0x02, 0x34, + 0x02, 0x35, 0x02, 0x36, 0x02, 0x37, 0x02, 0x38, 0x02, 0x39, 0x02, 0x3A, 0x02, 0x3B, 0x02, 0x3C, + 0x02, 0x3D, 0x02, 0x3E, 0x02, 0x3F, 0x02, 0x40, 0x02, 0x41, 0x02, 0x42, 0x02, 0x43, 0x02, 0x44, + 0x02, 0x45, 0x02, 0x46, 0x02, 0x47, 0x02, 0x48, 0x02, 0x49, 0x02, 0x4A, 0x02, 0x4B, 0x02, 0x4C, + 0x02, 0x4D, 0x02, 0x4E, 0x02, 0x4F, 0x02, 0x50, 0x02, 0x51, 0x02, 0x52, 0x02, 0x53, 0x02, 0x54, + 0x02, 0x55, 0x02, 0x56, 0x02, 0x57, 0x02, 0x58, 0x02, 0x59, 0x02, 0x5A, 0x02, 0x5B, 0x02, 0x5C, + 0x02, 0x5D, 0x02, 0x5E, 0x02, 0x5F, 0x02, 0x60, 0x02, 0x61, 0x02, 0x62, 0x02, 0x63, 0x02, 0x64, + 0x02, 0x65, 0x02, 0x66, 0x02, 0x67, 0x02, 0x68, 0x02, 0x69, 0x02, 0x6A, 0x02, 0x6B, 0x02, 0x6C, + 0x02, 0x6D, 0x02, 0x6E, 0x02, 0x6F, 0x02, 0x70, 0x02, 0x71, 0x02, 0x72, 0x02, 0x73, 0x02, 0x74, + 0x02, 0x75, 0x02, 0x76, 0x02, 0x77, 0x02, 0x78, 0x02, 0x79, 0x02, 0x7A, 0x02, 0x7B, 0x02, 0x7C, + 0x02, 0x7D, 0x02, 0x7E, 0x02, 0x7F, 0x02, 0x80, 0x02, 0x81, 0x02, 0x82, 0x02, 0x83, 0x02, 0x84, + 0x02, 0x85, 0x02, 0x86, 0x02, 0x87, 0x02, 0x88, 0x02, 0x89, 0x02, 0x8A, 0x02, 0x8B, 0x02, 0x8C, + 0x02, 0x8D, 0x02, 0x8E, 0x02, 0x8F, 0x02, 0x90, 0x02, 0x91, 0x02, 0x92, 0x02, 0x93, 0x02, 0x94, + 0x02, 0x95, 0x02, 0x96, 0x02, 0x97, 0x02, 0x98, 0x02, 0x99, 0x02, 0x9A, 0x02, 0x9B, 0x02, 0x9C, + 0x02, 0x9D, 0x02, 0x9E, 0x02, 0x9F, 0x02, 0xA0, 0x02, 0xA1, 0x02, 0xA2, 0x02, 0xA3, 0x02, 0xA4, + 0x02, 0xA5, 0x02, 0xA6, 0x02, 0xA7, 0x02, 0xA8, 0x02, 0xA9, 0x02, 0xAA, 0x02, 0xAB, 0x02, 0xAC, + 0x02, 0xAD, 0x02, 0xAE, 0x02, 0xAF, 0x02, 0xB0, 0x02, 0xB1, 0x02, 0xB2, 0x02, 0xB3, 0x02, 0xB4, + 0x02, 0xB5, 0x02, 0xB6, 0x02, 0xB7, 0x02, 0xB8, 0x02, 0xB9, 0x02, 0xBA, 0x02, 0xBB, 0x02, 0xBC, + 0x02, 0xBD, 0x02, 0xBE, 0x02, 0xBF, 0x02, 0xC0, 0x02, 0xC1, 0x02, 0xC2, 0x02, 0xC3, 0x02, 0xC4, + 0x02, 0xC5, 0x02, 0xC6, 0x02, 0xC7, 0x02, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0xC9, 0x02, 0xCA, 0x02, 0xCB, 0x02, 0xCC, 0x02, 0xCD, 0x02, 0xCE, 0x02, 0xCF, 0x02, 0xD0, + 0x02, 0xD1, 0x02, 0xD2, 0x02, 0xD3, 0x02, 0xD4, 0x02, 0xD5, 0x02, 0xD6, 0x02, 0xD7, 0x02, 0xD8, + 0x02, 0xD9, 0x02, 0xDA, 0x02, 0xDB, 0x02, 0xDC, 0x02, 0xDD, 0x02, 0xDE, 0x02, 0xDF, 0x02, 0xE0, + 0x02, 0xE1, 0x02, 0xE2, 0x02, 0xE3, 0x02, 0xE4, 0x02, 0xE5, 0x02, 0xE6, 0x00, 0x00, 0x02, 0xE7, + 0x02, 0xE8, 0x02, 0xE9, 0x02, 0xEA, 0x02, 0xEB, 0x02, 0xEC, 0x02, 0xED, 0x02, 0xEE, 0x02, 0xEF, + 0x02, 0xF0, 0x02, 0xF1, 0x02, 0xF2, 0x02, 0xF3, 0x02, 0xF4, 0x02, 0xF5, 0x02, 0xF6, 0x02, 0xF7, + 0x02, 0xF8, 0x02, 0xF9, 0x02, 0xFA, 0x02, 0xFB, 0x02, 0xFC, 0x02, 0xFD, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFE, 0x02, 0xFF, + 0x03, 0x00, 0x03, 0x01, 0x03, 0x02, 0x03, 0x03, 0x03, 0x04, 0x03, 0x05, 0x03, 0x06, 0x03, 0x07, + 0x03, 0x08, 0x03, 0x09, 0x03, 0x0A, 0x03, 0x0B, 0x03, 0x0C, 0x03, 0x0D, 0x03, 0x0E, 0x03, 0x0F, + 0x03, 0x10, 0x03, 0x11, 0x03, 0x12, 0x03, 0x13, 0x03, 0x14, 0x03, 0x15, 0x03, 0x16, 0x03, 0x17, + 0x03, 0x18, 0x03, 0x19, 0x03, 0x1A, 0x03, 0x1B, 0x00, 0x00, +}; + +/* 8033D3E0-8033D554 337D20 0174+00 1/1 0/0 0/0 .text GetFontCode */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm u32 GetFontCode(s16 param_0, u32 param_1) { + nofralloc +#include "asm/dolphin/os/OSFont/GetFontCode.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 804509B0-804509B8 000430 0002+06 1/1 0/0 0/0 .sdata FontEncode */ +SECTION_SDATA static u16 FontEncode = 0xFFFF; + +/* 80451660-80451664 000B60 0004+00 1/1 0/0 0/0 .sbss FontDataAnsi */ +static u8 FontDataAnsi[4]; + +/* 80451664-80451668 000B64 0004+00 1/1 0/0 0/0 .sbss FontDataSjis */ +static u8 FontDataSjis[4]; + +/* 80451668-80451670 000B68 0004+04 1/1 0/0 0/0 .sbss ParseString */ +static void* ParseString; + +/* 8033D554-8033D5B8 337E94 0064+00 0/0 1/1 0/0 .text OSGetFontEncode */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm u16 OSGetFontEncode(void) { + nofralloc +#include "asm/dolphin/os/OSFont/OSGetFontEncode.s" +} +#pragma pop + +/* 8033D5B8-8033D6F4 337EF8 013C+00 1/1 0/0 0/0 .text ParseStringS */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm char* ParseStringS(s16 param_0, char* param_1, void* param_2, u32* param_3, u32 param_4, + void* param_5) { + nofralloc +#include "asm/dolphin/os/OSFont/ParseStringS.s" +} +#pragma pop diff --git a/libs/dolphin/os/OSFont.cpp b/libs/dolphin/os/OSFont.cpp deleted file mode 100644 index 830e3fca6a9..00000000000 --- a/libs/dolphin/os/OSFont.cpp +++ /dev/null @@ -1,2543 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: OSFont -// - -#include "dolphin/os/OSFont.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803CFC48-803CFDC8 02CD68 0180+00 1/1 0/0 0/0 .data HankakuToCode */ -SECTION_DATA static u8 HankakuToCode[384] = { - 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02, 0x13, - 0x02, 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x17, 0x02, 0x18, 0x02, 0x19, 0x02, 0x1A, 0x02, 0x1B, - 0x02, 0x1C, 0x02, 0x1D, 0x02, 0x1E, 0x02, 0x1F, 0x02, 0x20, 0x02, 0x21, 0x02, 0x22, 0x02, 0x23, - 0x02, 0x24, 0x02, 0x25, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28, 0x02, 0x29, 0x02, 0x2A, 0x02, 0x2B, - 0x02, 0x2C, 0x02, 0x2D, 0x02, 0x2E, 0x02, 0x2F, 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, - 0x02, 0x34, 0x02, 0x35, 0x02, 0x36, 0x02, 0x37, 0x02, 0x38, 0x02, 0x39, 0x02, 0x3A, 0x02, 0x3B, - 0x02, 0x3C, 0x02, 0x3D, 0x02, 0x3E, 0x02, 0x3F, 0x02, 0x40, 0x02, 0x41, 0x02, 0x42, 0x02, 0x43, - 0x02, 0x44, 0x02, 0x45, 0x02, 0x46, 0x02, 0x47, 0x02, 0x48, 0x02, 0x49, 0x02, 0x4A, 0x02, 0x4B, - 0x02, 0x4C, 0x02, 0x4D, 0x02, 0x4E, 0x02, 0x4F, 0x02, 0x50, 0x02, 0x51, 0x02, 0x52, 0x02, 0x53, - 0x02, 0x54, 0x02, 0x55, 0x02, 0x56, 0x02, 0x57, 0x02, 0x58, 0x02, 0x59, 0x02, 0x5A, 0x02, 0x5B, - 0x02, 0x5C, 0x02, 0x5D, 0x02, 0x5E, 0x02, 0x5F, 0x02, 0x60, 0x02, 0x61, 0x02, 0x62, 0x02, 0x63, - 0x02, 0x64, 0x02, 0x65, 0x02, 0x66, 0x02, 0x67, 0x02, 0x68, 0x02, 0x69, 0x02, 0x6A, 0x02, 0x0C, - 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, - 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, - 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, - 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, 0x02, 0x0C, - 0x02, 0x0C, 0x02, 0x6B, 0x02, 0x6C, 0x02, 0x6D, 0x02, 0x6E, 0x02, 0x6F, 0x02, 0x70, 0x02, 0x71, - 0x02, 0x72, 0x02, 0x73, 0x02, 0x74, 0x02, 0x75, 0x02, 0x76, 0x02, 0x77, 0x02, 0x78, 0x02, 0x79, - 0x02, 0x7A, 0x02, 0x7B, 0x02, 0x7C, 0x02, 0x7D, 0x02, 0x7E, 0x02, 0x7F, 0x02, 0x80, 0x02, 0x81, - 0x02, 0x82, 0x02, 0x83, 0x02, 0x84, 0x02, 0x85, 0x02, 0x86, 0x02, 0x87, 0x02, 0x88, 0x02, 0x89, - 0x02, 0x8A, 0x02, 0x8B, 0x02, 0x8C, 0x02, 0x8D, 0x02, 0x8E, 0x02, 0x8F, 0x02, 0x90, 0x02, 0x91, - 0x02, 0x92, 0x02, 0x93, 0x02, 0x94, 0x02, 0x95, 0x02, 0x96, 0x02, 0x97, 0x02, 0x98, 0x02, 0x99, - 0x02, 0x9A, 0x02, 0x9B, 0x02, 0x9C, 0x02, 0x9D, 0x02, 0x9E, 0x02, 0x9F, 0x02, 0xA0, 0x02, 0xA1, - 0x02, 0xA2, 0x02, 0xA3, 0x02, 0xA4, 0x02, 0xA5, 0x02, 0xA6, 0x02, 0xA7, 0x02, 0xA8, 0x02, 0xA9, -}; - -/* 803CFDC8-803D0758 02CEE8 098A+06 1/1 0/0 0/0 .data Zenkaku2Code */ -SECTION_DATA static u8 Zenkaku2Code[2442 + 6 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x02, - 0x00, - 0x03, - 0x00, - 0x04, - 0x00, - 0x05, - 0x00, - 0x06, - 0x00, - 0x07, - 0x00, - 0x08, - 0x00, - 0x09, - 0x00, - 0x0A, - 0x00, - 0x0B, - 0x00, - 0x0C, - 0x00, - 0x0D, - 0x00, - 0x0E, - 0x00, - 0x0F, - 0x00, - 0x10, - 0x00, - 0x11, - 0x00, - 0x12, - 0x00, - 0x13, - 0x00, - 0x14, - 0x00, - 0x15, - 0x00, - 0x16, - 0x00, - 0x17, - 0x00, - 0x18, - 0x00, - 0x19, - 0x00, - 0x1A, - 0x00, - 0x1B, - 0x00, - 0x1C, - 0x00, - 0x1D, - 0x00, - 0x1E, - 0x00, - 0x1F, - 0x00, - 0x20, - 0x00, - 0x21, - 0x00, - 0x22, - 0x00, - 0x23, - 0x00, - 0x24, - 0x00, - 0x25, - 0x00, - 0x26, - 0x00, - 0x27, - 0x00, - 0x28, - 0x00, - 0x29, - 0x00, - 0x2A, - 0x00, - 0x2B, - 0x00, - 0x2C, - 0x00, - 0x2D, - 0x00, - 0x2E, - 0x00, - 0x2F, - 0x00, - 0x30, - 0x00, - 0x31, - 0x00, - 0x32, - 0x00, - 0x33, - 0x00, - 0x34, - 0x00, - 0x35, - 0x00, - 0x36, - 0x00, - 0x37, - 0x00, - 0x38, - 0x00, - 0x39, - 0x00, - 0x3A, - 0x00, - 0x3B, - 0x00, - 0x3C, - 0x00, - 0x3D, - 0x00, - 0x3E, - 0x00, - 0x3F, - 0x00, - 0x40, - 0x00, - 0x41, - 0x00, - 0x42, - 0x00, - 0x43, - 0x00, - 0x44, - 0x00, - 0x45, - 0x00, - 0x46, - 0x00, - 0x47, - 0x00, - 0x48, - 0x00, - 0x49, - 0x00, - 0x4A, - 0x00, - 0x4B, - 0x00, - 0x4C, - 0x00, - 0x4D, - 0x00, - 0x4E, - 0x00, - 0x4F, - 0x00, - 0x50, - 0x00, - 0x51, - 0x00, - 0x52, - 0x00, - 0x53, - 0x00, - 0x54, - 0x00, - 0x55, - 0x00, - 0x56, - 0x00, - 0x57, - 0x00, - 0x58, - 0x00, - 0x59, - 0x00, - 0x5A, - 0x00, - 0x5B, - 0x00, - 0x5C, - 0x00, - 0x5D, - 0x00, - 0x5E, - 0x00, - 0x5F, - 0x00, - 0x60, - 0x00, - 0x61, - 0x00, - 0x62, - 0x00, - 0x63, - 0x00, - 0x64, - 0x00, - 0x65, - 0x00, - 0x66, - 0x00, - 0x67, - 0x00, - 0x68, - 0x00, - 0x69, - 0x00, - 0x6A, - 0x00, - 0x6B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x6C, - 0x00, - 0x6D, - 0x00, - 0x6E, - 0x00, - 0x6F, - 0x00, - 0x70, - 0x00, - 0x71, - 0x00, - 0x72, - 0x00, - 0x73, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x74, - 0x00, - 0x75, - 0x00, - 0x76, - 0x00, - 0x77, - 0x00, - 0x78, - 0x00, - 0x79, - 0x00, - 0x7A, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x7B, - 0x00, - 0x7C, - 0x00, - 0x7D, - 0x00, - 0x7E, - 0x00, - 0x7F, - 0x00, - 0x80, - 0x00, - 0x81, - 0x00, - 0x82, - 0x00, - 0x83, - 0x00, - 0x84, - 0x00, - 0x85, - 0x00, - 0x86, - 0x00, - 0x87, - 0x00, - 0x88, - 0x00, - 0x89, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x8A, - 0x00, - 0x8B, - 0x00, - 0x8C, - 0x00, - 0x8D, - 0x00, - 0x8E, - 0x00, - 0x8F, - 0x00, - 0x90, - 0x00, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x92, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x93, - 0x00, - 0x94, - 0x00, - 0x95, - 0x00, - 0x96, - 0x00, - 0x97, - 0x00, - 0x98, - 0x00, - 0x99, - 0x00, - 0x9A, - 0x00, - 0x9B, - 0x00, - 0x9C, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x9D, - 0x00, - 0x9E, - 0x00, - 0x9F, - 0x00, - 0xA0, - 0x00, - 0xA1, - 0x00, - 0xA2, - 0x00, - 0xA3, - 0x00, - 0xA4, - 0x00, - 0xA5, - 0x00, - 0xA6, - 0x00, - 0xA7, - 0x00, - 0xA8, - 0x00, - 0xA9, - 0x00, - 0xAA, - 0x00, - 0xAB, - 0x00, - 0xAC, - 0x00, - 0xAD, - 0x00, - 0xAE, - 0x00, - 0xAF, - 0x00, - 0xB0, - 0x00, - 0xB1, - 0x00, - 0xB2, - 0x00, - 0xB3, - 0x00, - 0xB4, - 0x00, - 0xB5, - 0x00, - 0xB6, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xB7, - 0x00, - 0xB8, - 0x00, - 0xB9, - 0x00, - 0xBA, - 0x00, - 0xBB, - 0x00, - 0xBC, - 0x00, - 0xBD, - 0x00, - 0xBE, - 0x00, - 0xBF, - 0x00, - 0xC0, - 0x00, - 0xC1, - 0x00, - 0xC2, - 0x00, - 0xC3, - 0x00, - 0xC4, - 0x00, - 0xC5, - 0x00, - 0xC6, - 0x00, - 0xC7, - 0x00, - 0xC8, - 0x00, - 0xC9, - 0x00, - 0xCA, - 0x00, - 0xCB, - 0x00, - 0xCC, - 0x00, - 0xCD, - 0x00, - 0xCE, - 0x00, - 0xCF, - 0x00, - 0xD0, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xD1, - 0x00, - 0xD2, - 0x00, - 0xD3, - 0x00, - 0xD4, - 0x00, - 0xD5, - 0x00, - 0xD6, - 0x00, - 0xD7, - 0x00, - 0xD8, - 0x00, - 0xD9, - 0x00, - 0xDA, - 0x00, - 0xDB, - 0x00, - 0xDC, - 0x00, - 0xDD, - 0x00, - 0xDE, - 0x00, - 0xDF, - 0x00, - 0xE0, - 0x00, - 0xE1, - 0x00, - 0xE2, - 0x00, - 0xE3, - 0x00, - 0xE4, - 0x00, - 0xE5, - 0x00, - 0xE6, - 0x00, - 0xE7, - 0x00, - 0xE8, - 0x00, - 0xE9, - 0x00, - 0xEA, - 0x00, - 0xEB, - 0x00, - 0xEC, - 0x00, - 0xED, - 0x00, - 0xEE, - 0x00, - 0xEF, - 0x00, - 0xF0, - 0x00, - 0xF1, - 0x00, - 0xF2, - 0x00, - 0xF3, - 0x00, - 0xF4, - 0x00, - 0xF5, - 0x00, - 0xF6, - 0x00, - 0xF7, - 0x00, - 0xF8, - 0x00, - 0xF9, - 0x00, - 0xFA, - 0x00, - 0xFB, - 0x00, - 0xFC, - 0x00, - 0xFD, - 0x00, - 0xFE, - 0x00, - 0xFF, - 0x01, - 0x00, - 0x01, - 0x01, - 0x01, - 0x02, - 0x01, - 0x03, - 0x01, - 0x04, - 0x01, - 0x05, - 0x01, - 0x06, - 0x01, - 0x07, - 0x01, - 0x08, - 0x01, - 0x09, - 0x01, - 0x0A, - 0x01, - 0x0B, - 0x01, - 0x0C, - 0x01, - 0x0D, - 0x01, - 0x0E, - 0x01, - 0x0F, - 0x01, - 0x10, - 0x01, - 0x11, - 0x01, - 0x12, - 0x01, - 0x13, - 0x01, - 0x14, - 0x01, - 0x15, - 0x01, - 0x16, - 0x01, - 0x17, - 0x01, - 0x18, - 0x01, - 0x19, - 0x01, - 0x1A, - 0x01, - 0x1B, - 0x01, - 0x1C, - 0x01, - 0x1D, - 0x01, - 0x1E, - 0x01, - 0x1F, - 0x01, - 0x20, - 0x01, - 0x21, - 0x01, - 0x22, - 0x01, - 0x23, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x24, - 0x01, - 0x25, - 0x01, - 0x26, - 0x01, - 0x27, - 0x01, - 0x28, - 0x01, - 0x29, - 0x01, - 0x2A, - 0x01, - 0x2B, - 0x01, - 0x2C, - 0x01, - 0x2D, - 0x01, - 0x2E, - 0x01, - 0x2F, - 0x01, - 0x30, - 0x01, - 0x31, - 0x01, - 0x32, - 0x01, - 0x33, - 0x01, - 0x34, - 0x01, - 0x35, - 0x01, - 0x36, - 0x01, - 0x37, - 0x01, - 0x38, - 0x01, - 0x39, - 0x01, - 0x3A, - 0x01, - 0x3B, - 0x01, - 0x3C, - 0x01, - 0x3D, - 0x01, - 0x3E, - 0x01, - 0x3F, - 0x01, - 0x40, - 0x01, - 0x41, - 0x01, - 0x42, - 0x01, - 0x43, - 0x01, - 0x44, - 0x01, - 0x45, - 0x01, - 0x46, - 0x01, - 0x47, - 0x01, - 0x48, - 0x01, - 0x49, - 0x01, - 0x4A, - 0x01, - 0x4B, - 0x01, - 0x4C, - 0x01, - 0x4D, - 0x01, - 0x4E, - 0x01, - 0x4F, - 0x01, - 0x50, - 0x01, - 0x51, - 0x01, - 0x52, - 0x01, - 0x53, - 0x01, - 0x54, - 0x01, - 0x55, - 0x01, - 0x56, - 0x01, - 0x57, - 0x01, - 0x58, - 0x01, - 0x59, - 0x01, - 0x5A, - 0x01, - 0x5B, - 0x01, - 0x5C, - 0x01, - 0x5D, - 0x01, - 0x5E, - 0x01, - 0x5F, - 0x01, - 0x60, - 0x01, - 0x61, - 0x01, - 0x62, - 0x01, - 0x63, - 0x01, - 0x64, - 0x01, - 0x65, - 0x01, - 0x66, - 0x01, - 0x67, - 0x01, - 0x68, - 0x01, - 0x69, - 0x01, - 0x6A, - 0x01, - 0x6B, - 0x01, - 0x6C, - 0x01, - 0x6D, - 0x01, - 0x6E, - 0x01, - 0x6F, - 0x01, - 0x70, - 0x01, - 0x71, - 0x01, - 0x72, - 0x01, - 0x73, - 0x01, - 0x74, - 0x01, - 0x75, - 0x01, - 0x76, - 0x01, - 0x77, - 0x01, - 0x78, - 0x01, - 0x79, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x7A, - 0x01, - 0x7B, - 0x01, - 0x7C, - 0x01, - 0x7D, - 0x01, - 0x7E, - 0x01, - 0x7F, - 0x01, - 0x80, - 0x01, - 0x81, - 0x01, - 0x82, - 0x01, - 0x83, - 0x01, - 0x84, - 0x01, - 0x85, - 0x01, - 0x86, - 0x01, - 0x87, - 0x01, - 0x88, - 0x01, - 0x89, - 0x01, - 0x8A, - 0x01, - 0x8B, - 0x01, - 0x8C, - 0x01, - 0x8D, - 0x01, - 0x8E, - 0x01, - 0x8F, - 0x01, - 0x90, - 0x01, - 0x91, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0x92, - 0x01, - 0x93, - 0x01, - 0x94, - 0x01, - 0x95, - 0x01, - 0x96, - 0x01, - 0x97, - 0x01, - 0x98, - 0x01, - 0x99, - 0x01, - 0x9A, - 0x01, - 0x9B, - 0x01, - 0x9C, - 0x01, - 0x9D, - 0x01, - 0x9E, - 0x01, - 0x9F, - 0x01, - 0xA0, - 0x01, - 0xA1, - 0x01, - 0xA2, - 0x01, - 0xA3, - 0x01, - 0xA4, - 0x01, - 0xA5, - 0x01, - 0xA6, - 0x01, - 0xA7, - 0x01, - 0xA8, - 0x01, - 0xA9, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xAA, - 0x01, - 0xAB, - 0x01, - 0xAC, - 0x01, - 0xAD, - 0x01, - 0xAE, - 0x01, - 0xAF, - 0x01, - 0xB0, - 0x01, - 0xB1, - 0x01, - 0xB2, - 0x01, - 0xB3, - 0x01, - 0xB4, - 0x01, - 0xB5, - 0x01, - 0xB6, - 0x01, - 0xB7, - 0x01, - 0xB8, - 0x01, - 0xB9, - 0x01, - 0xBA, - 0x01, - 0xBB, - 0x01, - 0xBC, - 0x01, - 0xBD, - 0x01, - 0xBE, - 0x01, - 0xBF, - 0x01, - 0xC0, - 0x01, - 0xC1, - 0x01, - 0xC2, - 0x01, - 0xC3, - 0x01, - 0xC4, - 0x01, - 0xC5, - 0x01, - 0xC6, - 0x01, - 0xC7, - 0x01, - 0xC8, - 0x01, - 0xC9, - 0x01, - 0xCA, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xCB, - 0x01, - 0xCC, - 0x01, - 0xCD, - 0x01, - 0xCE, - 0x01, - 0xCF, - 0x01, - 0xD0, - 0x01, - 0xD1, - 0x01, - 0xD2, - 0x01, - 0xD3, - 0x01, - 0xD4, - 0x01, - 0xD5, - 0x01, - 0xD6, - 0x01, - 0xD7, - 0x01, - 0xD8, - 0x01, - 0xD9, - 0x01, - 0xDA, - 0x01, - 0xDB, - 0x01, - 0xDC, - 0x01, - 0xDD, - 0x01, - 0xDE, - 0x01, - 0xDF, - 0x01, - 0xE0, - 0x01, - 0xE1, - 0x01, - 0xE2, - 0x01, - 0xE3, - 0x01, - 0xE4, - 0x01, - 0xE5, - 0x01, - 0xE6, - 0x01, - 0xE7, - 0x01, - 0xE8, - 0x01, - 0xE9, - 0x01, - 0xEA, - 0x01, - 0xEB, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xEC, - 0x01, - 0xED, - 0x01, - 0xEE, - 0x01, - 0xEF, - 0x01, - 0xF0, - 0x01, - 0xF1, - 0x01, - 0xF2, - 0x01, - 0xF3, - 0x01, - 0xF4, - 0x01, - 0xF5, - 0x01, - 0xF6, - 0x01, - 0xF7, - 0x01, - 0xF8, - 0x01, - 0xF9, - 0x01, - 0xFA, - 0x01, - 0xFB, - 0x01, - 0xFC, - 0x01, - 0xFD, - 0x01, - 0xFE, - 0x01, - 0xFF, - 0x02, - 0x00, - 0x02, - 0x01, - 0x02, - 0x02, - 0x02, - 0x03, - 0x02, - 0x04, - 0x02, - 0x05, - 0x02, - 0x06, - 0x02, - 0x07, - 0x02, - 0x08, - 0x02, - 0x09, - 0x02, - 0x0A, - 0x02, - 0x0B, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x0C, - 0x02, - 0x0D, - 0x02, - 0x0E, - 0x02, - 0x0F, - 0x02, - 0x10, - 0x02, - 0x11, - 0x02, - 0x12, - 0x02, - 0x13, - 0x02, - 0x14, - 0x02, - 0x15, - 0x02, - 0x16, - 0x02, - 0x17, - 0x02, - 0x18, - 0x02, - 0x19, - 0x02, - 0x1A, - 0x02, - 0x1B, - 0x02, - 0x1C, - 0x02, - 0x1D, - 0x02, - 0x1E, - 0x02, - 0x1F, - 0x02, - 0x20, - 0x02, - 0x21, - 0x02, - 0x22, - 0x02, - 0x23, - 0x02, - 0x24, - 0x02, - 0x25, - 0x02, - 0x26, - 0x02, - 0x27, - 0x02, - 0x28, - 0x02, - 0x29, - 0x02, - 0x2A, - 0x02, - 0x2B, - 0x02, - 0x2C, - 0x02, - 0x2D, - 0x02, - 0x2E, - 0x02, - 0x2F, - 0x02, - 0x30, - 0x02, - 0x31, - 0x02, - 0x32, - 0x02, - 0x33, - 0x02, - 0x34, - 0x02, - 0x35, - 0x02, - 0x36, - 0x02, - 0x37, - 0x02, - 0x38, - 0x02, - 0x39, - 0x02, - 0x3A, - 0x02, - 0x3B, - 0x02, - 0x3C, - 0x02, - 0x3D, - 0x02, - 0x3E, - 0x02, - 0x3F, - 0x02, - 0x40, - 0x02, - 0x41, - 0x02, - 0x42, - 0x02, - 0x43, - 0x02, - 0x44, - 0x02, - 0x45, - 0x02, - 0x46, - 0x02, - 0x47, - 0x02, - 0x48, - 0x02, - 0x49, - 0x02, - 0x4A, - 0x02, - 0x4B, - 0x02, - 0x4C, - 0x02, - 0x4D, - 0x02, - 0x4E, - 0x02, - 0x4F, - 0x02, - 0x50, - 0x02, - 0x51, - 0x02, - 0x52, - 0x02, - 0x53, - 0x02, - 0x54, - 0x02, - 0x55, - 0x02, - 0x56, - 0x02, - 0x57, - 0x02, - 0x58, - 0x02, - 0x59, - 0x02, - 0x5A, - 0x02, - 0x5B, - 0x02, - 0x5C, - 0x02, - 0x5D, - 0x02, - 0x5E, - 0x02, - 0x5F, - 0x02, - 0x60, - 0x02, - 0x61, - 0x02, - 0x62, - 0x02, - 0x63, - 0x02, - 0x64, - 0x02, - 0x65, - 0x02, - 0x66, - 0x02, - 0x67, - 0x02, - 0x68, - 0x02, - 0x69, - 0x02, - 0x6A, - 0x02, - 0x6B, - 0x02, - 0x6C, - 0x02, - 0x6D, - 0x02, - 0x6E, - 0x02, - 0x6F, - 0x02, - 0x70, - 0x02, - 0x71, - 0x02, - 0x72, - 0x02, - 0x73, - 0x02, - 0x74, - 0x02, - 0x75, - 0x02, - 0x76, - 0x02, - 0x77, - 0x02, - 0x78, - 0x02, - 0x79, - 0x02, - 0x7A, - 0x02, - 0x7B, - 0x02, - 0x7C, - 0x02, - 0x7D, - 0x02, - 0x7E, - 0x02, - 0x7F, - 0x02, - 0x80, - 0x02, - 0x81, - 0x02, - 0x82, - 0x02, - 0x83, - 0x02, - 0x84, - 0x02, - 0x85, - 0x02, - 0x86, - 0x02, - 0x87, - 0x02, - 0x88, - 0x02, - 0x89, - 0x02, - 0x8A, - 0x02, - 0x8B, - 0x02, - 0x8C, - 0x02, - 0x8D, - 0x02, - 0x8E, - 0x02, - 0x8F, - 0x02, - 0x90, - 0x02, - 0x91, - 0x02, - 0x92, - 0x02, - 0x93, - 0x02, - 0x94, - 0x02, - 0x95, - 0x02, - 0x96, - 0x02, - 0x97, - 0x02, - 0x98, - 0x02, - 0x99, - 0x02, - 0x9A, - 0x02, - 0x9B, - 0x02, - 0x9C, - 0x02, - 0x9D, - 0x02, - 0x9E, - 0x02, - 0x9F, - 0x02, - 0xA0, - 0x02, - 0xA1, - 0x02, - 0xA2, - 0x02, - 0xA3, - 0x02, - 0xA4, - 0x02, - 0xA5, - 0x02, - 0xA6, - 0x02, - 0xA7, - 0x02, - 0xA8, - 0x02, - 0xA9, - 0x02, - 0xAA, - 0x02, - 0xAB, - 0x02, - 0xAC, - 0x02, - 0xAD, - 0x02, - 0xAE, - 0x02, - 0xAF, - 0x02, - 0xB0, - 0x02, - 0xB1, - 0x02, - 0xB2, - 0x02, - 0xB3, - 0x02, - 0xB4, - 0x02, - 0xB5, - 0x02, - 0xB6, - 0x02, - 0xB7, - 0x02, - 0xB8, - 0x02, - 0xB9, - 0x02, - 0xBA, - 0x02, - 0xBB, - 0x02, - 0xBC, - 0x02, - 0xBD, - 0x02, - 0xBE, - 0x02, - 0xBF, - 0x02, - 0xC0, - 0x02, - 0xC1, - 0x02, - 0xC2, - 0x02, - 0xC3, - 0x02, - 0xC4, - 0x02, - 0xC5, - 0x02, - 0xC6, - 0x02, - 0xC7, - 0x02, - 0xC8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xC9, - 0x02, - 0xCA, - 0x02, - 0xCB, - 0x02, - 0xCC, - 0x02, - 0xCD, - 0x02, - 0xCE, - 0x02, - 0xCF, - 0x02, - 0xD0, - 0x02, - 0xD1, - 0x02, - 0xD2, - 0x02, - 0xD3, - 0x02, - 0xD4, - 0x02, - 0xD5, - 0x02, - 0xD6, - 0x02, - 0xD7, - 0x02, - 0xD8, - 0x02, - 0xD9, - 0x02, - 0xDA, - 0x02, - 0xDB, - 0x02, - 0xDC, - 0x02, - 0xDD, - 0x02, - 0xDE, - 0x02, - 0xDF, - 0x02, - 0xE0, - 0x02, - 0xE1, - 0x02, - 0xE2, - 0x02, - 0xE3, - 0x02, - 0xE4, - 0x02, - 0xE5, - 0x02, - 0xE6, - 0x00, - 0x00, - 0x02, - 0xE7, - 0x02, - 0xE8, - 0x02, - 0xE9, - 0x02, - 0xEA, - 0x02, - 0xEB, - 0x02, - 0xEC, - 0x02, - 0xED, - 0x02, - 0xEE, - 0x02, - 0xEF, - 0x02, - 0xF0, - 0x02, - 0xF1, - 0x02, - 0xF2, - 0x02, - 0xF3, - 0x02, - 0xF4, - 0x02, - 0xF5, - 0x02, - 0xF6, - 0x02, - 0xF7, - 0x02, - 0xF8, - 0x02, - 0xF9, - 0x02, - 0xFA, - 0x02, - 0xFB, - 0x02, - 0xFC, - 0x02, - 0xFD, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xFE, - 0x02, - 0xFF, - 0x03, - 0x00, - 0x03, - 0x01, - 0x03, - 0x02, - 0x03, - 0x03, - 0x03, - 0x04, - 0x03, - 0x05, - 0x03, - 0x06, - 0x03, - 0x07, - 0x03, - 0x08, - 0x03, - 0x09, - 0x03, - 0x0A, - 0x03, - 0x0B, - 0x03, - 0x0C, - 0x03, - 0x0D, - 0x03, - 0x0E, - 0x03, - 0x0F, - 0x03, - 0x10, - 0x03, - 0x11, - 0x03, - 0x12, - 0x03, - 0x13, - 0x03, - 0x14, - 0x03, - 0x15, - 0x03, - 0x16, - 0x03, - 0x17, - 0x03, - 0x18, - 0x03, - 0x19, - 0x03, - 0x1A, - 0x03, - 0x1B, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8033D3E0-8033D554 337D20 0174+00 1/1 0/0 0/0 .text GetFontCode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm u32 GetFontCode(s16 param_0, u32 param_1) { - nofralloc -#include "asm/dolphin/os/OSFont/GetFontCode.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804509B0-804509B8 000430 0002+06 1/1 0/0 0/0 .sdata FontEncode */ -SECTION_SDATA static u16 FontEncode[1 + 3 /* padding */] = { - 0xFFFF, - /* padding */ - 0x0000, - 0x0000, - 0x0000, -}; - -/* 80451660-80451664 000B60 0004+00 1/1 0/0 0/0 .sbss FontDataAnsi */ -static u8 FontDataAnsi[4]; - -/* 80451664-80451668 000B64 0004+00 1/1 0/0 0/0 .sbss FontDataSjis */ -static u8 FontDataSjis[4]; - -/* 80451668-80451670 000B68 0004+04 1/1 0/0 0/0 .sbss ParseString */ -static u8 ParseString[4 + 4 /* padding */]; - -/* 8033D554-8033D5B8 337E94 0064+00 0/0 1/1 0/0 .text OSGetFontEncode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 OSGetFontEncode(void) { - nofralloc -#include "asm/dolphin/os/OSFont/OSGetFontEncode.s" -} -#pragma pop - -/* 8033D5B8-8033D6F4 337EF8 013C+00 1/1 0/0 0/0 .text ParseStringS */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm char* ParseStringS(s16 param_0, char* param_1, void* param_2, u32* param_3, u32 param_4, void* param_5) { - nofralloc -#include "asm/dolphin/os/OSFont/ParseStringS.s" -} -#pragma pop diff --git a/libs/dolphin/os/OSInterrupt.cpp b/libs/dolphin/os/OSInterrupt.c similarity index 52% rename from libs/dolphin/os/OSInterrupt.cpp rename to libs/dolphin/os/OSInterrupt.c index 7af70988f5d..e888111599b 100644 --- a/libs/dolphin/os/OSInterrupt.cpp +++ b/libs/dolphin/os/OSInterrupt.c @@ -5,6 +5,7 @@ #include "dolphin/os/OSInterrupt.h" #include "dol2asm.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" // @@ -12,80 +13,89 @@ // SECTION_INIT void memset(); -extern "C" void __OSSetExceptionHandler(); -extern "C" void OSLoadContext(); -extern "C" void OSDisableScheduler(); -extern "C" void OSEnableScheduler(); -extern "C" void __OSReschedule(); -extern "C" void OSGetTime(); +void OSLoadContext(); +void __OSReschedule(); // // Declarations: // /* 8033D6F4-8033D700 338034 000C+00 2/2 200/200 5/5 .text OSDisableInterrupts */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off asm BOOL OSDisableInterrupts(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s" -} -#pragma pop -/* 8033D700-8033D708 338040 0008+00 0/0 1/1 0/0 .text __RAS_OSDisableInterrupts_end */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __RAS_OSDisableInterrupts_end(void) { - nofralloc -#include "asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s" + entry __RAS_OSDisableInterrupts_begin + + mfmsr r3 + // Clear external interrupts bit + rlwinm r4, r3, 0, 17, 15 + mtmsr r4 + + entry __RAS_OSDisableInterrupts_end + + // Return old interrupt status + rlwinm r3, r3, 17, 31, 31 + blr + // clang-format on } -#pragma pop /* 8033D708-8033D71C 338048 0014+00 0/0 10/10 1/1 .text OSEnableInterrupts */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off asm BOOL OSEnableInterrupts(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s" + + mfmsr r3 + // Set external interrupts bit + ori r4, r3, (1 << 15) + mtmsr r4 + + // Return old interrupt status + rlwinm r3, r3, 17, 31, 31 + blr + // clang-format on } -#pragma pop /* 8033D71C-8033D740 33805C 0024+00 2/2 197/197 6/6 .text OSRestoreInterrupts */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL OSRestoreInterrupts(BOOL enable) { +asm BOOL OSRestoreInterrupts(register BOOL status) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s" + + cmpwi status, 0 + mfmsr r4 + beq disable + + // Set external interrupts bit + ori r5, r4, (1 << 15) + b set_msr + +disable: + // Clear external interrupts bit + rlwinm r5, r4, 0, 17, 15 + +set_msr: + mtmsr r5 + // Return old interrupt status + rlwinm r3, r4, 17, 31, 31 + blr + // clang-format on } -#pragma pop /* ############################################################################################## */ /* 80451670-80451674 000B70 0004+00 4/4 0/0 0/0 .sbss InterruptHandlerTable */ -static u8 InterruptHandlerTable[4]; +static OSInterruptHandler* InterruptHandlerTable; /* 8033D740-8033D75C 338080 001C+00 0/0 12/12 0/0 .text __OSSetInterruptHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSInterruptHandler __OSSetInterruptHandler(OSInterrupt interrupt, OSInterruptHandler handler) { - nofralloc -#include "asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s" +OSInterruptHandler __OSSetInterruptHandler(OSInterrupt type, OSInterruptHandler handler) { + OSInterruptHandler old = InterruptHandlerTable[type]; + InterruptHandlerTable[type] = handler; + return old; } -#pragma pop /* 8033D75C-8033D770 33809C 0014+00 0/0 1/1 0/0 .text __OSGetInterruptHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSInterruptHandler __OSGetInterruptHandler(s16 index) { - nofralloc -#include "asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s" +OSInterruptHandler __OSGetInterruptHandler(OSInterrupt type) { + return InterruptHandlerTable[type]; } -#pragma pop /* 8033D770-8033D7E4 3380B0 0074+00 0/0 1/1 0/0 .text __OSInterruptInit */ #pragma push @@ -129,90 +139,59 @@ asm OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask mask) { /* ############################################################################################## */ /* 803D0758-803D0788 02D878 002C+04 1/1 0/0 0/0 .data InterruptPrioTable */ -SECTION_DATA static u8 InterruptPrioTable[44 + 4 /* padding */] = { - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0xF8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00, - 0x00, - 0x30, - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0x03, - 0xFF, - 0x8C, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x40, - 0x00, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, +static u32 InterruptPrioTable[] = { + 0x00000100, 0x00000040, 0xF8000000, 0x00000200, 0x00000080, 0x00003000, + 0x00000020, 0x03FF8C00, 0x04000000, 0x00004000, 0xFFFFFFFF, }; -/* 80451674-80451678 000B74 0004+00 1/1 1/1 0/0 .sbss __OSLastInterruptSrr0 */ -extern u8 __OSLastInterruptSrr0[4]; -u8 __OSLastInterruptSrr0[4]; +/* 80451680-80451684 000B80 0004+00 1/1 1/1 0/0 .sbss __OSLastInterruptTime */ +extern OSTime __OSLastInterruptTime; +OSTime __OSLastInterruptTime; /* 80451678-80451680 000B78 0002+06 1/1 1/1 0/0 .sbss __OSLastInterrupt */ -extern u8 __OSLastInterrupt[2 + 6 /* padding */]; -u8 __OSLastInterrupt[2 + 6 /* padding */]; +extern s16 __OSLastInterrupt; +s16 __OSLastInterrupt; -/* 80451680-80451684 000B80 0004+00 1/1 1/1 0/0 .sbss __OSLastInterruptTime */ -extern u8 __OSLastInterruptTime[4]; -u8 __OSLastInterruptTime[4]; - -/* 80451684-80451688 000B84 0004+00 1/1 1/1 0/0 .sbss None */ -extern u8 data_80451684[4]; -u8 data_80451684[4]; +/* 80451674-80451678 000B74 0004+00 1/1 1/1 0/0 .sbss __OSLastInterruptSrr0 */ +extern u32 __OSLastInterruptSrr0; +u32 __OSLastInterruptSrr0; /* 8033DBCC-8033DF10 33850C 0344+00 1/1 0/0 0/0 .text __OSDispatchInterrupt */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __OSDispatchInterrupt(OSInterrupt interrupt, struct OSContext* context) { +asm void __OSDispatchInterrupt(OSInterrupt interrupt, OSContext* context) { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s" } #pragma pop /* 8033DF10-8033DF60 338850 0050+00 1/1 0/0 0/0 .text ExternalInterruptHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void ExternalInterruptHandler(OSInterrupt interrupt, struct OSContext* context) { +static asm void ExternalInterruptHandler(register OSInterrupt type, register OSContext* context) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s" + + stw r0, context->gpr[0] + stw r1, context->gpr[1] + stw r2, context->gpr[2] + stmw r6, context->gpr[6] + + mfspr r0, GQR1 + stw r0, context->gqr[1] + mfspr r0, GQR2 + stw r0, context->gqr[2] + mfspr r0, GQR3 + stw r0, context->gqr[3] + mfspr r0, GQR4 + stw r0, context->gqr[4] + mfspr r0, GQR5 + stw r0, context->gqr[5] + mfspr r0, GQR6 + stw r0, context->gqr[6] + mfspr r0, GQR7 + stw r0, context->gqr[7] + + stwu r1, -8(r1) + b __OSDispatchInterrupt + // clang-format on } -#pragma pop diff --git a/libs/dolphin/os/OSLink.cpp b/libs/dolphin/os/OSLink.c similarity index 62% rename from libs/dolphin/os/OSLink.cpp rename to libs/dolphin/os/OSLink.c index b9e6f5a7278..371d33dfd28 100644 --- a/libs/dolphin/os/OSLink.cpp +++ b/libs/dolphin/os/OSLink.c @@ -12,79 +12,28 @@ // SECTION_INIT void memset(); -extern "C" void OSReport(); -extern "C" void DCFlushRange(); -extern "C" void ICInvalidateRange(); +void OSReport(); +void DCFlushRange(); +void ICInvalidateRange(); // // Declarations: // /* 8033DF60-8033DF64 3388A0 0004+00 1/1 0/0 0/0 .text OSNotifyLink */ -static void OSNotifyLink(void) { - /* empty function */ -} +static void OSNotifyLink(void) {} /* 8033DF64-8033DF68 3388A4 0004+00 1/1 0/0 0/0 .text OSNotifyUnlink */ -static void OSNotifyUnlink(void) { - /* empty function */ -} +static void OSNotifyUnlink(void) {} /* 8033DF68-8033DF74 3388A8 000C+00 0/0 1/1 0/0 .text OSSetStringTable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetStringTable(void* string_table) { - nofralloc -#include "asm/dolphin/os/OSLink/OSSetStringTable.s" +void OSSetStringTable(void* string_table) { + __OSStringTable = string_table; } -#pragma pop /* ############################################################################################## */ /* 803D0788-803D07B0 02D8A8 0025+03 1/1 0/0 0/0 .data @62 */ -SECTION_DATA static u8 lit_62[37 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x4C, - 0x69, - 0x6E, - 0x6B, - 0x3A, - 0x20, - 0x75, - 0x6E, - 0x6B, - 0x6E, - 0x6F, - 0x77, - 0x6E, - 0x20, - 0x72, - 0x65, - 0x6C, - 0x6F, - 0x63, - 0x61, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x74, - 0x79, - 0x70, - 0x65, - 0x20, - 0x25, - 0x33, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_62[] = "OSLink: unknown relocation type %3d\n"; /* 8033DF74-8033E230 3388B4 02BC+00 1/1 0/0 0/0 .text Relocate */ #pragma push @@ -128,49 +77,7 @@ asm BOOL OSLinkFixed(OSModuleInfo* module, u32 param_1) { /* ############################################################################################## */ /* 803D07B0-803D07D8 02D8D0 0027+01 1/1 0/0 0/0 .data @189 */ -SECTION_DATA static u8 lit_189[39 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x55, - 0x6E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x3A, - 0x20, - 0x75, - 0x6E, - 0x6B, - 0x6E, - 0x6F, - 0x77, - 0x6E, - 0x20, - 0x72, - 0x65, - 0x6C, - 0x6F, - 0x63, - 0x61, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x74, - 0x79, - 0x70, - 0x65, - 0x20, - 0x25, - 0x33, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_DATA static char lit_189[] = "OSUnlink: unknown relocation type %3d\n"; /* 8033E570-8033E7A8 338EB0 0238+00 1/1 0/0 0/0 .text Undo */ #pragma push @@ -193,11 +100,8 @@ asm BOOL OSUnlink(OSModuleInfo* module) { #pragma pop /* 8033E97C-8033E994 3392BC 0018+00 0/0 1/1 0/0 .text __OSModuleInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSModuleInit(void) { - nofralloc -#include "asm/dolphin/os/OSLink/__OSModuleInit.s" +void __OSModuleInit(void) { + __OSModuleList.last = NULL; + __OSModuleList.first = NULL; + __OSStringTable = NULL; } -#pragma pop diff --git a/libs/dolphin/os/OSMemory.cpp b/libs/dolphin/os/OSMemory.c similarity index 53% rename from libs/dolphin/os/OSMemory.cpp rename to libs/dolphin/os/OSMemory.c index 193581d506a..14b93984540 100644 --- a/libs/dolphin/os/OSMemory.cpp +++ b/libs/dolphin/os/OSMemory.c @@ -5,17 +5,18 @@ #include "dolphin/os/OSMemory.h" #include "dol2asm.h" +#include "dolphin/os/OSReset.h" #include "dolphin/types.h" // // External References: // -extern "C" void DCInvalidateRange(); -extern "C" void DCFlushRange(); -extern "C" void __OSUnhandledException(); -extern "C" void OSRegisterResetFunction(); -extern "C" extern u8 __OSErrorTable[68 + 12 /* padding */]; +void DCInvalidateRange(); +void DCFlushRange(); +void __OSUnhandledException(); +void OSRegisterResetFunction(); +extern u8 __OSErrorTable[68 + 12 /* padding */]; // // Declarations: @@ -52,42 +53,106 @@ asm void OSProtectRange(u32 channel, void* address, u32 nBytes, u32 control) { #pragma pop /* 8033EDD8-8033EE58 339718 0080+00 1/1 0/0 0/0 .text Config24MB */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off static asm void Config24MB(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSMemory/Config24MB.s" + + li r7, 0 + lis r4, 0x0000 + addi r4, r4, 0x0002 + lis r3, 0x8000 + addi r3, r3, 0x01FF + lis r6, 0x0100 + addi r6, r6, 0x0002 + lis r5, 0x8100 + addi r5, r5, 0x00FF + isync + mtdbatu 0, r7 + mtdbatl 0, r4 + mtdbatu 0, r3 + isync + mtibatu 0, r7 + mtibatl 0, r4 + mtibatu 0, r3 + isync + mtdbatu 2, r7 + mtdbatl 2, r6 + mtdbatu 2, r5 + isync + mtibatu 2, r7 + mtibatl 2, r6 + mtibatu 2, r5 + isync + mfmsr r3 + ori r3, r3, 0x30 + mtspr 0x1b, r3 + mflr r3 + mtspr 0x1a, r3 + rfi + // clang-format on } -#pragma pop /* 8033EE58-8033EED8 339798 0080+00 1/1 0/0 0/0 .text Config48MB */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off static asm void Config48MB(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSMemory/Config48MB.s" + + li r7, 0 + lis r4, 0x0000 + addi r4, r4, 0x0002 + lis r3, 0x8000 + addi r3, r3, 0x03FF + lis r6, 0x0200 + addi r6, r6, 0x0002 + lis r5, 0x8200 + addi r5, r5, 0x01FF + isync + mtdbatu 0, r7 + mtdbatl 0, r4 + mtdbatu 0, r3 + isync + mtibatu 0, r7 + mtibatl 0, r4 + mtibatu 0, r3 + isync + mtdbatu 2, r7 + mtdbatl 2, r6 + mtdbatu 2, r5 + isync + mtibatu 2, r7 + mtibatl 2, r6 + mtibatu 2, r5 + isync + mfmsr r3 + ori r3, r3, 0x30 + mtspr 0x1b, r3 + mflr r3 + mtspr 0x1a, r3 + rfi + // clang-format on } -#pragma pop /* 8033EED8-8033EEF0 339818 0018+00 1/1 0/0 0/0 .text RealMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void RealMode(void) { +static asm void RealMode(register void* config){ + // clang-format off nofralloc -#include "asm/dolphin/os/OSMemory/RealMode.s" + + clrlwi config, config, 2 + mtspr 0x1a, config + mfmsr config + rlwinm config, config, 0, 0x1c, 0x19 + mtspr 0x1b, config + rfi + // clang-format on } -#pragma pop /* ############################################################################################## */ /* 803D07D8-803D07E8 -00001 0010+00 1/1 0/0 0/0 .data ResetFunctionInfo */ -SECTION_DATA static void* ResetFunctionInfo[4] = { - (void*)OnReset, - (void*)0x0000007F, - (void*)NULL, - (void*)NULL, +static OSResetFunctionInfo ResetFunctionInfo = { + OnReset, + 0x7F, + NULL, + NULL, }; /* 8033EEF0-8033F008 339830 0118+00 0/0 1/1 0/0 .text __OSInitMemoryProtection */ diff --git a/libs/dolphin/os/OSMessage.cpp b/libs/dolphin/os/OSMessage.c similarity index 94% rename from libs/dolphin/os/OSMessage.cpp rename to libs/dolphin/os/OSMessage.c index 162fc8a4897..024b6f3d028 100644 --- a/libs/dolphin/os/OSMessage.cpp +++ b/libs/dolphin/os/OSMessage.c @@ -11,8 +11,8 @@ // External References: // -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); // // Declarations: diff --git a/libs/dolphin/os/OSMutex.cpp b/libs/dolphin/os/OSMutex.c similarity index 97% rename from libs/dolphin/os/OSMutex.cpp rename to libs/dolphin/os/OSMutex.c index a6126138d53..a6a8cb80b0e 100644 --- a/libs/dolphin/os/OSMutex.cpp +++ b/libs/dolphin/os/OSMutex.c @@ -11,8 +11,8 @@ // External References: // -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); // // Declarations: diff --git a/libs/dolphin/os/OSReboot.cpp b/libs/dolphin/os/OSReboot.c similarity index 58% rename from libs/dolphin/os/OSReboot.cpp rename to libs/dolphin/os/OSReboot.c index 6088530534a..fb4c2092327 100644 --- a/libs/dolphin/os/OSReboot.cpp +++ b/libs/dolphin/os/OSReboot.c @@ -11,12 +11,12 @@ // External References: // -extern "C" void OSSetArenaHi(); -extern "C" void OSSetArenaLo(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void __OSBootDol(); -extern "C" void OSDisableInterrupts(); +void OSSetArenaHi(); +void OSSetArenaLo(); +void OSSetCurrentContext(); +void OSClearContext(); +void __OSBootDol(); +void OSDisableInterrupts(); // // Declarations: @@ -34,27 +34,19 @@ asm void __OSReboot(u32 param_0, u32 param_1) { /* ############################################################################################## */ /* 80451688-8045168C 000B88 0004+00 2/2 0/0 0/0 .sbss SaveStart */ -static u8 SaveStart[4]; +static void* SaveStart; /* 8045168C-80451690 000B8C 0004+00 2/2 0/0 0/0 .sbss SaveEnd */ -static u8 SaveEnd[4]; +static void* SaveEnd; /* 8033F640-8033F64C 339F80 000C+00 0/0 1/1 0/0 .text OSSetSaveRegion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetSaveRegion(void* start, void* end) { - nofralloc -#include "asm/dolphin/os/OSReboot/OSSetSaveRegion.s" +void OSSetSaveRegion(void* start, void* end) { + SaveStart = start; + SaveEnd = end; } -#pragma pop /* 8033F64C-8033F660 339F8C 0014+00 0/0 1/1 0/0 .text OSGetSaveRegion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSGetSaveRegion(void* start, void* end) { - nofralloc -#include "asm/dolphin/os/OSReboot/OSGetSaveRegion.s" +void OSGetSaveRegion(void** start, void** end) { + *start = SaveStart; + *end = SaveEnd; } -#pragma pop diff --git a/libs/dolphin/os/OSReset.cpp b/libs/dolphin/os/OSReset.c similarity index 62% rename from libs/dolphin/os/OSReset.cpp rename to libs/dolphin/os/OSReset.c index af54cf94a26..f3b53327490 100644 --- a/libs/dolphin/os/OSReset.cpp +++ b/libs/dolphin/os/OSReset.c @@ -12,20 +12,20 @@ // SECTION_INIT void memset(); -extern "C" void OSReport(); -extern "C" void __OSStopAudioSystem(); -extern "C" void ICFlashInvalidate(); -extern "C" void LCDisable(); -extern "C" void OSDisableInterrupts(); -extern "C" void __OSReboot(); -extern "C" void __OSLockSram(); -extern "C" void __OSUnlockSram(); -extern "C" void __OSSyncSram(); -extern "C" void OSDisableScheduler(); -extern "C" void OSEnableScheduler(); -extern "C" void OSCancelThread(); -extern "C" void __PADDisableRecalibration(); -extern "C" extern u8 __OSRebootParams[28 + 4 /* padding */]; +void OSReport(); +void __OSStopAudioSystem(); +void ICFlashInvalidate(); +void LCDisable(); +void OSDisableInterrupts(); +void __OSReboot(); +void __OSLockSram(); +void __OSUnlockSram(); +void __OSSyncSram(); +void OSDisableScheduler(); +void OSEnableScheduler(); +void OSCancelThread(); +void __PADDisableRecalibration(); +extern u8 __OSRebootParams[28 + 4 /* padding */]; // // Declarations: @@ -56,14 +56,58 @@ asm BOOL __OSCallResetFunctions(s32 param_0) { #pragma pop /* 8033F78C-8033F7FC 33A0CC 0070+00 2/2 0/0 0/0 .text Reset */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void Reset(s32 param_0) { +static asm void Reset(register s32 param_0) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSReset/Reset.s" + + b lbl_8033F7AC + +lbl_8033F790: + mfspr r8, 0x3f0 + ori r8, r8, 8 + mtspr 0x3f0, r8 + isync + sync + nop + b lbl_8033F7B0 + +lbl_8033F7AC: + b lbl_8033F7CC + +lbl_8033F7B0: + mftb r5, 0x10c + +lbl_8033F7B4: + mftb r6, 0x10c + subf r7, r5, r6 + cmplwi r7, 0x1124 + blt lbl_8033F7B4 + nop + b lbl_8033F7D0 + +lbl_8033F7CC: + b lbl_8033F7EC + +lbl_8033F7D0: + lis r8, 0xCC00 + ori r8, r8, 0x3000 + li r4, 3 + stw r4, 0x24(r8) + stw param_0, 0x24(r8) + nop + b lbl_8033F7F0 + +lbl_8033F7EC: + b lbl_8033F7F8 + +lbl_8033F7F0: + nop + b lbl_8033F7F0 + +lbl_8033F7F8: + b lbl_8033F790 + // clang-format on } -#pragma pop /* 8033F7FC-8033F864 33A13C 0068+00 1/1 0/0 0/0 .text KillThreads */ #pragma push @@ -87,89 +131,7 @@ asm void __OSDoHotReset(s32 param_0) { /* ############################################################################################## */ /* 803D07E8-803D0838 02D908 004E+02 1/1 0/0 0/0 .data @153 */ -SECTION_DATA static u8 lit_153[78 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x52, - 0x65, - 0x73, - 0x65, - 0x74, - 0x53, - 0x79, - 0x73, - 0x74, - 0x65, - 0x6D, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x59, - 0x6F, - 0x75, - 0x20, - 0x63, - 0x61, - 0x6E, - 0x27, - 0x74, - 0x20, - 0x73, - 0x70, - 0x65, - 0x63, - 0x69, - 0x66, - 0x79, - 0x20, - 0x54, - 0x52, - 0x55, - 0x45, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x66, - 0x6F, - 0x72, - 0x63, - 0x65, - 0x4D, - 0x65, - 0x6E, - 0x75, - 0x20, - 0x69, - 0x66, - 0x20, - 0x79, - 0x6F, - 0x75, - 0x20, - 0x72, - 0x65, - 0x73, - 0x74, - 0x61, - 0x72, - 0x74, - 0x2E, - 0x20, - 0x49, - 0x67, - 0x6E, - 0x6F, - 0x72, - 0x65, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_153[] = "OSResetSystem(): You can't specify TRUE to forceMenu if you restart. Ignored\n"; /* 80451698-804516A0 000B98 0004+04 1/1 0/0 0/0 .sbss bootThisDol */ static u8 bootThisDol[4 + 4 /* padding */]; diff --git a/libs/dolphin/os/OSResetSW.cpp b/libs/dolphin/os/OSResetSW.c similarity index 88% rename from libs/dolphin/os/OSResetSW.cpp rename to libs/dolphin/os/OSResetSW.c index 00cd383eabb..d6c7707ae6b 100644 --- a/libs/dolphin/os/OSResetSW.cpp +++ b/libs/dolphin/os/OSResetSW.c @@ -11,13 +11,12 @@ // External References: // -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSMaskInterrupts(); -extern "C" void __OSGetSystemTime(); -extern "C" void __div2i(); -extern "C" extern u8 __OSStartTime[4]; -extern "C" extern u8 data_80451634[4]; +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSMaskInterrupts(); +void __OSGetSystemTime(); +void __div2i(); +extern u8 __OSStartTime[4]; // // Declarations: diff --git a/libs/dolphin/os/OSRtc.cpp b/libs/dolphin/os/OSRtc.c similarity index 93% rename from libs/dolphin/os/OSRtc.cpp rename to libs/dolphin/os/OSRtc.c index aa3e393e92c..9b84faf09a9 100644 --- a/libs/dolphin/os/OSRtc.cpp +++ b/libs/dolphin/os/OSRtc.c @@ -11,17 +11,17 @@ // External References: // -extern "C" void DCInvalidateRange(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void EXIImm(); -extern "C" void EXIImmEx(); -extern "C" void EXIDma(); -extern "C" void EXISync(); -extern "C" void EXISelect(); -extern "C" void EXIDeselect(); -extern "C" void EXILock(); -extern "C" void EXIUnlock(); +void DCInvalidateRange(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void EXIImm(); +void EXIImmEx(); +void EXIDma(); +void EXISync(); +void EXISelect(); +void EXIDeselect(); +void EXILock(); +void EXIUnlock(); // // Declarations: diff --git a/libs/dolphin/os/OSSync.cpp b/libs/dolphin/os/OSSync.c similarity index 55% rename from libs/dolphin/os/OSSync.cpp rename to libs/dolphin/os/OSSync.c index e0d3042d3f2..2a38584f785 100644 --- a/libs/dolphin/os/OSSync.cpp +++ b/libs/dolphin/os/OSSync.c @@ -12,33 +12,30 @@ // SECTION_INIT void memcpy(); -extern "C" void DCFlushRangeNoSync(); -extern "C" void ICInvalidateRange(); +void DCFlushRangeNoSync(); +void ICInvalidateRange(); // // Declarations: // /* 80340A20-80340A3C 33B360 001C+00 1/1 0/0 0/0 .text SystemCallVector */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off static asm void SystemCallVector(void) { + // clang-format off nofralloc -#include "asm/dolphin/os/OSSync/SystemCallVector.s" -} -#pragma pop -// fake function? -/* 80340A3C-80340A40 33B37C 0004+00 1/1 0/0 0/0 .text __OSSystemCallVectorEnd */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSSystemCallVectorEnd(void) { - nofralloc -#include "asm/dolphin/os/OSSync/__OSSystemCallVectorEnd.s" + mfspr r9, 0x3F0 + ori r10, r9, 8 + mtspr 0x3F0, r10 + isync + sync + mtspr 0x3F0, r9 + rfi + + entry __OSSystemCallVectorEnd + nop + // clang-format on } -#pragma pop /* 80340A40-80340AA4 33B380 0064+00 0/0 1/1 0/0 .text __OSInitSystemCall */ #pragma push diff --git a/libs/dolphin/os/OSThread.c b/libs/dolphin/os/OSThread.c new file mode 100644 index 00000000000..8553c040324 --- /dev/null +++ b/libs/dolphin/os/OSThread.c @@ -0,0 +1,502 @@ +// +// Generated By: dol2asm +// Translation Unit: OSThread +// + +#include "dolphin/os/OSThread.h" +#include "dol2asm.h" +#include "dolphin/os/OSMutex.h" +#include "dolphin/types.h" + +// +// External References: +// + +void OSReport(); +void OSPanic(); +void OSGetStackPointer(); +void OSDisableInterrupts(); +void OSEnableInterrupts(); +void OSRestoreInterrupts(); +extern u8 __OSErrorTable[68 + 12 /* padding */]; +extern u32 __OSFpscrEnableBits; +void _epilog(); + +// +// Declarations: +// + +/* 80340AA4-80340AA8 33B3E4 0004+00 2/1 0/0 0/0 .text DefaultSwitchThreadCallback */ +static void DefaultSwitchThreadCallback(OSThread* from, OSThread* to) {} + +/* ############################################################################################## */ +/* 804509B8-804509BC -00001 0004+00 3/3 0/0 0/0 .sdata SwitchThreadCallback */ +SECTION_SDATA static OSSwitchThreadCallback SwitchThreadCallback = DefaultSwitchThreadCallback; + +/* 80340AA8-80340B1C 33B3E8 0074+00 0/0 1/1 0/0 .text OSSetSwitchThreadCallback */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback func) { + nofralloc +#include "asm/dolphin/os/OSThread/OSSetSwitchThreadCallback.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 8044BB78-8044BC78 078898 0100+00 6/6 0/0 0/0 .bss RunQueue */ +static OSThreadQueue RunQueue[32]; + +/* 8044BC78-8044BF90 078998 0318+00 0/0 0/0 0/0 .bss IdleThread */ +#pragma push +#pragma force_active on +static OSThread IdleThread; +#pragma pop + +/* 8044BF90-8044C2A8 078CB0 0318+00 0/1 0/0 0/0 .bss DefaultThread */ +#pragma push +#pragma force_active on +static OSThread DefaultThread; +#pragma pop + +/* 8044C2A8-8044C570 078FC8 02C8+00 0/2 0/0 0/0 .bss IdleContext */ +#pragma push +#pragma force_active on +static OSContext IdleContext; +#pragma pop + +/* 804516C0-804516C4 000BC0 0004+00 7/7 0/0 0/0 .sbss RunQueueBits */ +static u32 RunQueueBits; + +/* 804516C4-804516C8 000BC4 0004+00 11/11 0/0 0/0 .sbss RunQueueHint */ +static BOOL RunQueueHint; + +/* 804516C8-804516D0 000BC8 0004+04 4/4 0/0 0/0 .sbss Reschedule */ +static u8 Reschedule[4 + 4 /* padding */]; + +/* 80340B1C-80340C74 33B45C 0158+00 0/0 1/1 0/0 .text __OSThreadInit */ + +extern void* _stack_end; + +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __OSThreadInit(void) { + nofralloc +#include "asm/dolphin/os/OSThread/__OSThreadInit.s" +} +#pragma pop + +/* 80340C74-80340C84 33B5B4 0010+00 1/1 9/9 0/0 .text OSInitThreadQueue */ +void OSInitThreadQueue(OSThreadQueue* queue) { + queue->tail = NULL; + queue->head = NULL; +} + +/* 80340C84-80340C90 33B5C4 000C+00 0/0 20/20 0/0 .text OSGetCurrentThread */ +OSThread* OSGetCurrentThread(void) { + return OS_CURRENT_THREAD; +} + +/* 80340C90-80340CC4 33B5D0 0034+00 0/0 1/1 0/0 .text OSIsThreadTerminated */ +BOOL OSIsThreadTerminated(OSThread* thread) { + return thread->state == OS_THREAD_STATE_DEAD || thread->state == OS_THREAD_STATE_UNINITIALIZED ? + TRUE : + FALSE; +} + +/* 80340CC4-80340D04 33B604 0040+00 0/0 8/8 0/0 .text OSDisableScheduler */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm s32 OSDisableScheduler(void) { + nofralloc +#include "asm/dolphin/os/OSThread/OSDisableScheduler.s" +} +#pragma pop + +/* 80340D04-80340D44 33B644 0040+00 0/0 10/10 0/0 .text OSEnableScheduler */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm s32 OSEnableScheduler(void) { + nofralloc +#include "asm/dolphin/os/OSThread/OSEnableScheduler.s" +} +#pragma pop + +/* 80340D44-80340DAC 33B684 0068+00 3/3 0/0 0/0 .text UnsetRun */ +static void UnsetRun(OSThread* thread) { + OSThreadQueue* queue; + OSThread* next; + OSThread* prev; + + prev = thread->link.prev; + queue = thread->queue; + next = thread->link.next; + + if (prev == NULL) { + queue->tail = next; + } else { + prev->link.next = next; + } + + if (next == NULL) { + queue->head = prev; + } else { + next->link.prev = prev; + } + + if (queue->head == NULL) { + RunQueueBits &= ~(1 << 31 - thread->effective_priority); + } + + thread->queue = NULL; +} + +/* 80340DAC-80340DE8 33B6EC 003C+00 4/4 2/2 0/0 .text __OSGetEffectivePriority */ +s32 __OSGetEffectivePriority(OSThread* thread) { + s32 prio = thread->base_priority; + + OSMutex* mutex; + for (mutex = thread->owned_mutexes.prev; mutex != NULL; mutex = mutex->link.prev) { + OSThread* mutexThread = mutex->queue.head; + if (mutexThread != NULL && mutexThread->effective_priority < prio) { + prio = mutexThread->effective_priority; + } + } + + return prio; +} + +/* 80340DE8-80340FA8 33B728 01C0+00 5/5 0/0 0/0 .text SetEffectivePriority */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void SetEffectivePriority(OSThread* thread, s32 priority) { + nofralloc +#include "asm/dolphin/os/OSThread/SetEffectivePriority.s" +} +#pragma pop + +/* 80340FA8-80340FF8 33B8E8 0050+00 0/0 1/1 0/0 .text __OSPromoteThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __OSPromoteThread(OSThread* thread, s32 priority) { + nofralloc +#include "asm/dolphin/os/OSThread/__OSPromoteThread.s" +} +#pragma pop + +/* 80340FF8-80341220 33B938 0228+00 9/9 0/0 0/0 .text SelectThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void SelectThread(OSThread* thread) { + nofralloc +#include "asm/dolphin/os/OSThread/SelectThread.s" +} +#pragma pop + +/* 80341220-80341250 33BB60 0030+00 0/0 3/3 0/0 .text __OSReschedule */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void __OSReschedule(void) { + nofralloc +#include "asm/dolphin/os/OSThread/__OSReschedule.s" +} +#pragma pop + +/* 80341250-8034128C 33BB90 003C+00 0/0 2/2 0/0 .text OSYieldThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSYieldThread(void) { + nofralloc +#include "asm/dolphin/os/OSThread/OSYieldThread.s" +} +#pragma pop + +/* 8034128C-80341474 33BBCC 01E8+00 0/0 5/5 3/3 .text OSCreateThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm BOOL OSCreateThread(OSThread* thread, void* func, void* param, void* stackBase, u32 stackSize, + s32 priority, u16 attribute) { + nofralloc +#include "asm/dolphin/os/OSThread/OSCreateThread.s" +} +#pragma pop + +/* 80341474-80341558 33BDB4 00E4+00 1/1 1/1 0/0 .text OSExitThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSExitThread(void* exitValue) { + nofralloc +#include "asm/dolphin/os/OSThread/OSExitThread.s" +} +#pragma pop + +/* 80341558-80341714 33BE98 01BC+00 0/0 4/4 3/3 .text OSCancelThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSCancelThread(OSThread* thread) { + nofralloc +#include "asm/dolphin/os/OSThread/OSCancelThread.s" +} +#pragma pop + +/* 80341714-803417B4 33C054 00A0+00 0/0 2/2 0/0 .text OSDetachThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSDetachThread(OSThread* thread) { + nofralloc +#include "asm/dolphin/os/OSThread/OSDetachThread.s" +} +#pragma pop + +/* 803417B4-80341A3C 33C0F4 0288+00 0/0 13/13 3/3 .text OSResumeThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm s32 OSResumeThread(OSThread* thread) { + nofralloc +#include "asm/dolphin/os/OSThread/OSResumeThread.s" +} +#pragma pop + +/* 80341A3C-80341BAC 33C37C 0170+00 0/0 7/7 4/4 .text OSSuspendThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm s32 OSSuspendThread(OSThread* thread) { + nofralloc +#include "asm/dolphin/os/OSThread/OSSuspendThread.s" +} +#pragma pop + +/* 80341BAC-80341C98 33C4EC 00EC+00 0/0 12/12 0/0 .text OSSleepThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSSleepThread(OSThreadQueue* queue) { + nofralloc +#include "asm/dolphin/os/OSThread/OSSleepThread.s" +} +#pragma pop + +/* 80341C98-80341D9C 33C5D8 0104+00 3/3 13/13 0/0 .text OSWakeupThread */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm void OSWakeupThread(OSThreadQueue* queue) { + nofralloc +#include "asm/dolphin/os/OSThread/OSWakeupThread.s" +} +#pragma pop + +/* 80341D9C-80341E5C 33C6DC 00C0+00 0/0 1/1 0/0 .text OSSetThreadPriority */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm s32 OSSetThreadPriority(OSThread* thread, s32 priority) { + nofralloc +#include "asm/dolphin/os/OSThread/OSSetThreadPriority.s" +} +#pragma pop + +/* 80341E5C-80341E64 33C79C 0008+00 0/0 4/4 0/0 .text OSGetThreadPriority */ +s32 OSGetThreadPriority(OSThread* thread) { + return thread->base_priority; +} + +/* 80341E64-80341F00 33C7A4 009C+00 1/1 0/0 0/0 .text CheckThreadQueue */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm s32 CheckThreadQueue(OSThread* thread) { + nofralloc +#include "asm/dolphin/os/OSThread/CheckThreadQueue.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 803D0838-803D0898 02D958 005F+01 1/1 0/0 0/0 .data @831 */ +SECTION_DATA static char lit_831[] = "OSCheckActiveThreads: Failed RunQueue[prio].head != NULL && RunQueue[prio].tail != NULL in %d\n"; + +/* 803D0898-803D08A4 02D9B8 000B+01 0/1 0/0 0/0 .data @832 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_832[] = "OSThread.c"; +#pragma pop + +/* 803D08A4-803D0904 02D9C4 005F+01 0/1 0/0 0/0 .data @834 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_834[] = "OSCheckActiveThreads: Failed RunQueue[prio].head == NULL && RunQueue[prio].tail == NULL in %d\n"; +#pragma pop + +/* 803D0904-803D094C 02DA24 0046+02 0/1 0/0 0/0 .data @835 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_835[] = "OSCheckActiveThreads: Failed CheckThreadQueue(&RunQueue[prio]) in %d\n"; +#pragma pop + +/* 803D094C-803D09CC 02DA6C 007E+02 0/1 0/0 0/0 .data @836 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_836[] = "OSCheckActiveThreads: Failed __OSActiveThreadQueue.head == NULL || __OSActiveThreadQueue.head->linkActive.prev == NULL in %d\n"; +#pragma pop + +/* 803D09CC-803D0A4C 02DAEC 007E+02 0/1 0/0 0/0 .data @837 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_837[] = "OSCheckActiveThreads: Failed __OSActiveThreadQueue.tail == NULL || __OSActiveThreadQueue.tail->linkActive.next == NULL in %d\n"; +#pragma pop + +/* 803D0A4C-803D0AC8 02DB6C 007A+02 0/1 0/0 0/0 .data @838 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_838[] = "OSCheckActiveThreads: Failed thread->linkActive.next == NULL || thread == thread->linkActive.next->linkActive.prev in %d\n"; +#pragma pop + +/* 803D0AC8-803D0B44 02DBE8 007A+02 0/1 0/0 0/0 .data @839 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_839[] = "OSCheckActiveThreads: Failed thread->linkActive.prev == NULL || thread == thread->linkActive.prev->linkActive.next in %d\n"; +#pragma pop + +/* 803D0B44-803D0B98 02DC64 0051+03 0/1 0/0 0/0 .data @840 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_840[] = "OSCheckActiveThreads: Failed *(thread->stackEnd) == OS_THREAD_STACK_MAGIC in %d\n"; +#pragma pop + +/* 803D0B98-803D0C0C 02DCB8 0071+03 0/1 0/0 0/0 .data @841 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_841[] = "OSCheckActiveThreads: Failed OS_PRIORITY_MIN <= thread->priority && thread->priority <= OS_PRIORITY_MAX+1 in %d\n"; +#pragma pop + +/* 803D0C0C-803D0C48 02DD2C 0039+03 0/1 0/0 0/0 .data @842 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_842[] = "OSCheckActiveThreads: Failed 0 <= thread->suspend in %d\n"; +#pragma pop + +/* 803D0C48-803D0C94 02DD68 0049+03 0/1 0/0 0/0 .data @843 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_843[] = "OSCheckActiveThreads: Failed CheckThreadQueue(&thread->queueJoin) in %d\n"; +#pragma pop + +/* 803D0C94-803D0CE8 02DDB4 0051+03 0/1 0/0 0/0 .data @844 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_844[] = "OSCheckActiveThreads: Failed thread->queue == &RunQueue[thread->priority] in %d\n"; +#pragma pop + +/* 803D0CE8-803D0D3C 02DE08 0052+02 0/1 0/0 0/0 .data @845 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_845[] = "OSCheckActiveThreads: Failed IsMember(&RunQueue[thread->priority], thread) in %d\n"; +#pragma pop + +/* 803D0D3C-803D0D98 02DE5C 0059+03 0/1 0/0 0/0 .data @846 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_846[] = "OSCheckActiveThreads: Failed thread->priority == __OSGetEffectivePriority(thread) in %d\n"; +#pragma pop + +/* 803D0D98-803D0DDC 02DEB8 0042+02 0/1 0/0 0/0 .data @847 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_847[] = "OSCheckActiveThreads: Failed !IsSuspended(thread->suspend) in %d\n"; +#pragma pop + +/* 803D0DDC-803D0E18 02DEFC 003A+02 0/1 0/0 0/0 .data @848 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_848[] = "OSCheckActiveThreads: Failed thread->queue == NULL in %d\n"; +#pragma pop + +/* 803D0E18-803D0E54 02DF38 003A+02 0/1 0/0 0/0 .data @849 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_849[] = "OSCheckActiveThreads: Failed thread->queue != NULL in %d\n"; +#pragma pop + +/* 803D0E54-803D0E98 02DF74 0044+00 0/1 0/0 0/0 .data @850 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_850[] = "OSCheckActiveThreads: Failed CheckThreadQueue(thread->queue) in %d\n"; +#pragma pop + +/* 803D0E98-803D0EDC 02DFB8 0044+00 0/1 0/0 0/0 .data @851 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_851[] = "OSCheckActiveThreads: Failed IsMember(thread->queue, thread) in %d\n"; +#pragma pop + +/* 803D0EDC-803D0F18 02DFFC 003B+01 0/1 0/0 0/0 .data @852 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_852[] = "OSCheckActiveThreads: Failed thread->priority == 32 in %d\n"; +#pragma pop + +/* 803D0F18-803D0F58 02E038 003F+01 0/1 0/0 0/0 .data @853 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_853[] = "OSCheckActiveThreads: Failed !__OSCheckDeadLock(thread) in %d\n"; +#pragma pop + +/* 803D0F58-803D0FC0 02E078 0067+01 0/1 0/0 0/0 .data @854 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_854[] = "OSCheckActiveThreads: Failed thread->queueMutex.head == NULL && thread->queueMutex.tail == NULL in %d\n"; +#pragma pop + +/* 803D0FC0-803D1008 02E0E0 0045+03 0/1 0/0 0/0 .data @855 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_855[] = "OSCheckActiveThreads: Failed. unkown thread state (%d) of thread %p\n"; +#pragma pop + +/* 803D1008-803D1048 02E128 003D+03 0/1 0/0 0/0 .data @856 */ +#pragma push +#pragma force_active on +SECTION_DATA static char lit_856[] = "OSCheckActiveThreads: Failed __OSCheckMutexes(thread) in %d\n"; +#pragma pop + +/* 804509BC-804509C0 00043C 0001+03 1/1 0/0 0/0 .sdata @833 */ +SECTION_SDATA static char lit_833[] = ""; + +/* 80341F00-80342650 33C840 0750+00 0/0 1/1 0/0 .text OSCheckActiveThreads */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm s32 OSCheckActiveThreads(void) { + nofralloc +#include "asm/dolphin/os/OSThread/OSCheckActiveThreads.s" +} +#pragma pop + +/* 80342650-803426FC 33CF90 00AC+00 1/1 0/0 0/0 .text OSClearStack */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +static asm void OSClearStack(u32 value) { + nofralloc +#include "asm/dolphin/os/OSThread/OSClearStack.s" +} +#pragma pop + +/* ############################################################################################## */ +/* 804516D0-804516D8 000BD0 0008+00 0/0 2/1 0/0 .sbss None */ +extern u8 data_804516D0[8]; +u8 data_804516D0[8]; diff --git a/libs/dolphin/os/OSThread.cpp b/libs/dolphin/os/OSThread.cpp deleted file mode 100644 index 72965e74239..00000000000 --- a/libs/dolphin/os/OSThread.cpp +++ /dev/null @@ -1,2488 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: OSThread -// - -#include "dolphin/os/OSThread.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// External References: -// - -extern "C" void OSReport(); -extern "C" void OSPanic(); -extern "C" void OSGetStackPointer(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSEnableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" extern u8 __OSErrorTable[68 + 12 /* padding */]; -extern "C" extern u32 __OSFpscrEnableBits; -extern "C" void _epilog(); - -// -// Declarations: -// - -/* 80340AA4-80340AA8 33B3E4 0004+00 2/1 0/0 0/0 .text DefaultSwitchThreadCallback */ -static void DefaultSwitchThreadCallback(OSThread* from, OSThread* to) { - /* empty function */ -} - -/* ############################################################################################## */ -/* 804509B8-804509BC -00001 0004+00 3/3 0/0 0/0 .sdata SwitchThreadCallback */ -SECTION_SDATA static void* SwitchThreadCallback = (void*)DefaultSwitchThreadCallback; - -/* 80340AA8-80340B1C 33B3E8 0074+00 0/0 1/1 0/0 .text OSSetSwitchThreadCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback func) { - nofralloc -#include "asm/dolphin/os/OSThread/OSSetSwitchThreadCallback.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 8044BB78-8044BC78 078898 0100+00 6/6 0/0 0/0 .bss RunQueue */ -static u8 RunQueue[256]; - -/* 8044BC78-8044BF90 078998 0318+00 0/0 0/0 0/0 .bss IdleThread */ -#pragma push -#pragma force_active on -static u8 IdleThread[792]; -#pragma pop - -/* 8044BF90-8044C2A8 078CB0 0318+00 0/1 0/0 0/0 .bss DefaultThread */ -#pragma push -#pragma force_active on -static u8 DefaultThread[792]; -#pragma pop - -/* 8044C2A8-8044C570 078FC8 02C8+00 0/2 0/0 0/0 .bss IdleContext */ -#pragma push -#pragma force_active on -static u8 IdleContext[712]; -#pragma pop - -/* 804516C0-804516C4 000BC0 0004+00 7/7 0/0 0/0 .sbss RunQueueBits */ -static u8 RunQueueBits[4]; - -/* 804516C4-804516C8 000BC4 0004+00 11/11 0/0 0/0 .sbss RunQueueHint */ -static u8 RunQueueHint[4]; - -/* 804516C8-804516D0 000BC8 0004+04 4/4 0/0 0/0 .sbss Reschedule */ -static u8 Reschedule[4 + 4 /* padding */]; - -/* 80340B1C-80340C74 33B45C 0158+00 0/0 1/1 0/0 .text __OSThreadInit */ - -extern void* _stack_end; - -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSThreadInit(void) { - nofralloc -#include "asm/dolphin/os/OSThread/__OSThreadInit.s" -} -#pragma pop - -/* 80340C74-80340C84 33B5B4 0010+00 1/1 9/9 0/0 .text OSInitThreadQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSInitThreadQueue(OSThreadQueue* queue) { - nofralloc -#include "asm/dolphin/os/OSThread/OSInitThreadQueue.s" -} -#pragma pop - -/* 80340C84-80340C90 33B5C4 000C+00 0/0 20/20 0/0 .text OSGetCurrentThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSThread* OSGetCurrentThread(void) { - nofralloc -#include "asm/dolphin/os/OSThread/OSGetCurrentThread.s" -} -#pragma pop - -/* 80340C90-80340CC4 33B5D0 0034+00 0/0 1/1 0/0 .text OSIsThreadTerminated */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL OSIsThreadTerminated(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/OSIsThreadTerminated.s" -} -#pragma pop - -/* 80340CC4-80340D04 33B604 0040+00 0/0 8/8 0/0 .text OSDisableScheduler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSDisableScheduler(void) { - nofralloc -#include "asm/dolphin/os/OSThread/OSDisableScheduler.s" -} -#pragma pop - -/* 80340D04-80340D44 33B644 0040+00 0/0 10/10 0/0 .text OSEnableScheduler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSEnableScheduler(void) { - nofralloc -#include "asm/dolphin/os/OSThread/OSEnableScheduler.s" -} -#pragma pop - -/* 80340D44-80340DAC 33B684 0068+00 3/3 0/0 0/0 .text UnsetRun */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void UnsetRun(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/UnsetRun.s" -} -#pragma pop - -/* 80340DAC-80340DE8 33B6EC 003C+00 4/4 2/2 0/0 .text __OSGetEffectivePriority */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __OSGetEffectivePriority(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/__OSGetEffectivePriority.s" -} -#pragma pop - -/* 80340DE8-80340FA8 33B728 01C0+00 5/5 0/0 0/0 .text SetEffectivePriority */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void SetEffectivePriority(OSThread* thread, s32 priority) { - nofralloc -#include "asm/dolphin/os/OSThread/SetEffectivePriority.s" -} -#pragma pop - -/* 80340FA8-80340FF8 33B8E8 0050+00 0/0 1/1 0/0 .text __OSPromoteThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSPromoteThread(OSThread* thread, s32 priority) { - nofralloc -#include "asm/dolphin/os/OSThread/__OSPromoteThread.s" -} -#pragma pop - -/* 80340FF8-80341220 33B938 0228+00 9/9 0/0 0/0 .text SelectThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void SelectThread(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/SelectThread.s" -} -#pragma pop - -/* 80341220-80341250 33BB60 0030+00 0/0 3/3 0/0 .text __OSReschedule */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSReschedule(void) { - nofralloc -#include "asm/dolphin/os/OSThread/__OSReschedule.s" -} -#pragma pop - -/* 80341250-8034128C 33BB90 003C+00 0/0 2/2 0/0 .text OSYieldThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSYieldThread(void) { - nofralloc -#include "asm/dolphin/os/OSThread/OSYieldThread.s" -} -#pragma pop - -/* 8034128C-80341474 33BBCC 01E8+00 0/0 5/5 3/3 .text OSCreateThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL OSCreateThread(OSThread* thread, void* func, void* param, void* stackBase, - u32 stackSize, s32 priority, u16 attribute) { - nofralloc -#include "asm/dolphin/os/OSThread/OSCreateThread.s" -} -#pragma pop - -/* 80341474-80341558 33BDB4 00E4+00 1/1 1/1 0/0 .text OSExitThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSExitThread(void* exitValue) { - nofralloc -#include "asm/dolphin/os/OSThread/OSExitThread.s" -} -#pragma pop - -/* 80341558-80341714 33BE98 01BC+00 0/0 4/4 3/3 .text OSCancelThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSCancelThread(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/OSCancelThread.s" -} -#pragma pop - -/* 80341714-803417B4 33C054 00A0+00 0/0 2/2 0/0 .text OSDetachThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSDetachThread(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/OSDetachThread.s" -} -#pragma pop - -/* 803417B4-80341A3C 33C0F4 0288+00 0/0 13/13 3/3 .text OSResumeThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSResumeThread(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/OSResumeThread.s" -} -#pragma pop - -/* 80341A3C-80341BAC 33C37C 0170+00 0/0 7/7 4/4 .text OSSuspendThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSSuspendThread(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/OSSuspendThread.s" -} -#pragma pop - -/* 80341BAC-80341C98 33C4EC 00EC+00 0/0 12/12 0/0 .text OSSleepThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSleepThread(OSThreadQueue* queue) { - nofralloc -#include "asm/dolphin/os/OSThread/OSSleepThread.s" -} -#pragma pop - -/* 80341C98-80341D9C 33C5D8 0104+00 3/3 13/13 0/0 .text OSWakeupThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSWakeupThread(OSThreadQueue* queue) { - nofralloc -#include "asm/dolphin/os/OSThread/OSWakeupThread.s" -} -#pragma pop - -/* 80341D9C-80341E5C 33C6DC 00C0+00 0/0 1/1 0/0 .text OSSetThreadPriority */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSSetThreadPriority(OSThread* thread, s32 priority) { - nofralloc -#include "asm/dolphin/os/OSThread/OSSetThreadPriority.s" -} -#pragma pop - -/* 80341E5C-80341E64 33C79C 0008+00 0/0 4/4 0/0 .text OSGetThreadPriority */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSGetThreadPriority(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/OSGetThreadPriority.s" -} -#pragma pop - -/* 80341E64-80341F00 33C7A4 009C+00 1/1 0/0 0/0 .text CheckThreadQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 CheckThreadQueue(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSThread/CheckThreadQueue.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803D0838-803D0898 02D958 005F+01 1/1 0/0 0/0 .data @831 */ -SECTION_DATA static u8 lit_831[95 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x5D, - 0x2E, - 0x68, - 0x65, - 0x61, - 0x64, - 0x20, - 0x21, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x26, - 0x26, - 0x20, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x5D, - 0x2E, - 0x74, - 0x61, - 0x69, - 0x6C, - 0x20, - 0x21, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; - -/* 803D0898-803D08A4 02D9B8 000B+01 0/1 0/0 0/0 .data @832 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_832[11 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2E, - 0x63, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803D08A4-803D0904 02D9C4 005F+01 0/1 0/0 0/0 .data @834 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_834[95 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x5D, - 0x2E, - 0x68, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x26, - 0x26, - 0x20, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x5D, - 0x2E, - 0x74, - 0x61, - 0x69, - 0x6C, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803D0904-803D094C 02DA24 0046+02 0/1 0/0 0/0 .data @835 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_835[70 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x28, - 0x26, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x5D, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D094C-803D09CC 02DA6C 007E+02 0/1 0/0 0/0 .data @836 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_836[126 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x2E, - 0x68, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x7C, - 0x7C, - 0x20, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x2E, - 0x68, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x70, - 0x72, - 0x65, - 0x76, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D09CC-803D0A4C 02DAEC 007E+02 0/1 0/0 0/0 .data @837 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_837[126 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x2E, - 0x74, - 0x61, - 0x69, - 0x6C, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x7C, - 0x7C, - 0x20, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x2E, - 0x74, - 0x61, - 0x69, - 0x6C, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x6E, - 0x65, - 0x78, - 0x74, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0A4C-803D0AC8 02DB6C 007A+02 0/1 0/0 0/0 .data @838 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_838[122 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x6E, - 0x65, - 0x78, - 0x74, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x7C, - 0x7C, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x6E, - 0x65, - 0x78, - 0x74, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x70, - 0x72, - 0x65, - 0x76, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0AC8-803D0B44 02DBE8 007A+02 0/1 0/0 0/0 .data @839 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_839[122 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x70, - 0x72, - 0x65, - 0x76, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x7C, - 0x7C, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x70, - 0x72, - 0x65, - 0x76, - 0x2D, - 0x3E, - 0x6C, - 0x69, - 0x6E, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x2E, - 0x6E, - 0x65, - 0x78, - 0x74, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0B44-803D0B98 02DC64 0051+03 0/1 0/0 0/0 .data @840 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_840[81 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x2A, - 0x28, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x73, - 0x74, - 0x61, - 0x63, - 0x6B, - 0x45, - 0x6E, - 0x64, - 0x29, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4F, - 0x53, - 0x5F, - 0x54, - 0x48, - 0x52, - 0x45, - 0x41, - 0x44, - 0x5F, - 0x53, - 0x54, - 0x41, - 0x43, - 0x4B, - 0x5F, - 0x4D, - 0x41, - 0x47, - 0x49, - 0x43, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0B98-803D0C0C 02DCB8 0071+03 0/1 0/0 0/0 .data @841 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_841[113 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x4F, - 0x53, - 0x5F, - 0x50, - 0x52, - 0x49, - 0x4F, - 0x52, - 0x49, - 0x54, - 0x59, - 0x5F, - 0x4D, - 0x49, - 0x4E, - 0x20, - 0x3C, - 0x3D, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x20, - 0x26, - 0x26, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x20, - 0x3C, - 0x3D, - 0x20, - 0x4F, - 0x53, - 0x5F, - 0x50, - 0x52, - 0x49, - 0x4F, - 0x52, - 0x49, - 0x54, - 0x59, - 0x5F, - 0x4D, - 0x41, - 0x58, - 0x2B, - 0x31, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0C0C-803D0C48 02DD2C 0039+03 0/1 0/0 0/0 .data @842 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_842[57 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x30, - 0x20, - 0x3C, - 0x3D, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x73, - 0x75, - 0x73, - 0x70, - 0x65, - 0x6E, - 0x64, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0C48-803D0C94 02DD68 0049+03 0/1 0/0 0/0 .data @843 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_843[73 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x28, - 0x26, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x4A, - 0x6F, - 0x69, - 0x6E, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0C94-803D0CE8 02DDB4 0051+03 0/1 0/0 0/0 .data @844 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_844[81 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x26, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x5D, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0CE8-803D0D3C 02DE08 0052+02 0/1 0/0 0/0 .data @845 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_845[82 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x49, - 0x73, - 0x4D, - 0x65, - 0x6D, - 0x62, - 0x65, - 0x72, - 0x28, - 0x26, - 0x52, - 0x75, - 0x6E, - 0x51, - 0x75, - 0x65, - 0x75, - 0x65, - 0x5B, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x5D, - 0x2C, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0D3C-803D0D98 02DE5C 0059+03 0/1 0/0 0/0 .data @846 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_846[89 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x47, - 0x65, - 0x74, - 0x45, - 0x66, - 0x66, - 0x65, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x50, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x28, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0D98-803D0DDC 02DEB8 0042+02 0/1 0/0 0/0 .data @847 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_847[66 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x21, - 0x49, - 0x73, - 0x53, - 0x75, - 0x73, - 0x70, - 0x65, - 0x6E, - 0x64, - 0x65, - 0x64, - 0x28, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x73, - 0x75, - 0x73, - 0x70, - 0x65, - 0x6E, - 0x64, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0DDC-803D0E18 02DEFC 003A+02 0/1 0/0 0/0 .data @848 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_848[58 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0E18-803D0E54 02DF38 003A+02 0/1 0/0 0/0 .data @849 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_849[58 + 2 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x20, - 0x21, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop - -/* 803D0E54-803D0E98 02DF74 0044+00 0/1 0/0 0/0 .data @850 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_850[68] = { - 0x4F, 0x53, 0x43, 0x68, 0x65, 0x63, 0x6B, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3A, 0x20, 0x46, 0x61, 0x69, 0x6C, 0x65, 0x64, - 0x20, 0x43, 0x68, 0x65, 0x63, 0x6B, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x28, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x2D, 0x3E, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x29, 0x20, 0x69, 0x6E, 0x20, 0x25, 0x64, 0x0A, 0x00, -}; -#pragma pop - -/* 803D0E98-803D0EDC 02DFB8 0044+00 0/1 0/0 0/0 .data @851 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_851[68] = { - 0x4F, 0x53, 0x43, 0x68, 0x65, 0x63, 0x6B, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3A, 0x20, 0x46, 0x61, 0x69, 0x6C, 0x65, 0x64, - 0x20, 0x49, 0x73, 0x4D, 0x65, 0x6D, 0x62, 0x65, 0x72, 0x28, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x2D, 0x3E, 0x71, 0x75, 0x65, 0x75, 0x65, 0x2C, 0x20, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x29, 0x20, 0x69, 0x6E, 0x20, 0x25, 0x64, 0x0A, 0x00, -}; -#pragma pop - -/* 803D0EDC-803D0F18 02DFFC 003B+01 0/1 0/0 0/0 .data @852 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_852[59 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x70, - 0x72, - 0x69, - 0x6F, - 0x72, - 0x69, - 0x74, - 0x79, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x33, - 0x32, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803D0F18-803D0F58 02E038 003F+01 0/1 0/0 0/0 .data @853 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_853[63 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x21, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x44, - 0x65, - 0x61, - 0x64, - 0x4C, - 0x6F, - 0x63, - 0x6B, - 0x28, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803D0F58-803D0FC0 02E078 0067+01 0/1 0/0 0/0 .data @854 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_854[103 + 1 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x4D, - 0x75, - 0x74, - 0x65, - 0x78, - 0x2E, - 0x68, - 0x65, - 0x61, - 0x64, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x26, - 0x26, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x2D, - 0x3E, - 0x71, - 0x75, - 0x65, - 0x75, - 0x65, - 0x4D, - 0x75, - 0x74, - 0x65, - 0x78, - 0x2E, - 0x74, - 0x61, - 0x69, - 0x6C, - 0x20, - 0x3D, - 0x3D, - 0x20, - 0x4E, - 0x55, - 0x4C, - 0x4C, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; -#pragma pop - -/* 803D0FC0-803D1008 02E0E0 0045+03 0/1 0/0 0/0 .data @855 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_855[69 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x2E, - 0x20, - 0x75, - 0x6E, - 0x6B, - 0x6F, - 0x77, - 0x6E, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x73, - 0x74, - 0x61, - 0x74, - 0x65, - 0x20, - 0x28, - 0x25, - 0x64, - 0x29, - 0x20, - 0x6F, - 0x66, - 0x20, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x20, - 0x25, - 0x70, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 803D1008-803D1048 02E128 003D+03 0/1 0/0 0/0 .data @856 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_856[61 + 3 /* padding */] = { - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x41, - 0x63, - 0x74, - 0x69, - 0x76, - 0x65, - 0x54, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x73, - 0x3A, - 0x20, - 0x46, - 0x61, - 0x69, - 0x6C, - 0x65, - 0x64, - 0x20, - 0x5F, - 0x5F, - 0x4F, - 0x53, - 0x43, - 0x68, - 0x65, - 0x63, - 0x6B, - 0x4D, - 0x75, - 0x74, - 0x65, - 0x78, - 0x65, - 0x73, - 0x28, - 0x74, - 0x68, - 0x72, - 0x65, - 0x61, - 0x64, - 0x29, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x25, - 0x64, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; -#pragma pop - -/* 804509BC-804509C0 00043C 0001+03 1/1 0/0 0/0 .sdata @833 */ -SECTION_SDATA static u8 lit_833[1 + 3 /* padding */] = { - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; - -/* 80341F00-80342650 33C840 0750+00 0/0 1/1 0/0 .text OSCheckActiveThreads */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSCheckActiveThreads(void) { - nofralloc -#include "asm/dolphin/os/OSThread/OSCheckActiveThreads.s" -} -#pragma pop - -/* 80342650-803426FC 33CF90 00AC+00 1/1 0/0 0/0 .text OSClearStack */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSClearStack(u32 value) { - nofralloc -#include "asm/dolphin/os/OSThread/OSClearStack.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 804516D0-804516D8 000BD0 0008+00 0/0 2/1 0/0 .sbss None */ -extern u8 data_804516D0[8]; -u8 data_804516D0[8]; diff --git a/libs/dolphin/os/OSTime.cpp b/libs/dolphin/os/OSTime.c similarity index 64% rename from libs/dolphin/os/OSTime.cpp rename to libs/dolphin/os/OSTime.c index 470cd3e6778..0d7b86abe0a 100644 --- a/libs/dolphin/os/OSTime.cpp +++ b/libs/dolphin/os/OSTime.c @@ -5,41 +5,56 @@ #include "dolphin/os/OSTime.h" #include "dol2asm.h" -#include "dolphin/types.h" +#include "dolphin/os/OSInterrupt.h" // // External References: // -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __div2i(); -extern "C" void __mod2i(); +void __div2i(); +void __mod2i(); // // Declarations: // /* 803426FC-80342714 33D03C 0018+00 1/1 33/33 0/0 .text OSGetTime */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off asm OSTime OSGetTime(void) { - nofralloc -#include "asm/dolphin/os/OSTime/OSGetTime.s" -} -#pragma pop - -/* 80342714-8034271C -00001 0008+00 0/0 0/0 0/0 .text OSGetTick */ -asm OSTick OSGetTick(void) { // clang-format off nofralloc - mftb r3, 0x10c + + mftbu r3 + mftb r4, 0x10C + + mftbu r5 + cmpw r3, r5 + bne OSGetTime + + blr + // clang-format on +} + +/* 80342714-8034271C -00001 0008+00 0/0 0/0 0/0 .text OSGetTick */ +asm OSTick OSGetTick(void){ + // clang-format off + nofralloc + + mftb r3, 0x10C blr // clang-format on } /* 8034271C-80342780 33D05C 0064+00 0/0 16/16 0/0 .text __OSGetSystemTime */ +// matches with mwcc 1.2.5e +#ifdef NONMATCHING +OSTime __OSGetSystemTime(void) { + s32 pad; + const BOOL intr = OSDisableInterrupts(); + const OSTime time = OSGetTime() + OS_SYSTEM_TIME; + OSRestoreInterrupts(intr); + return time; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -48,6 +63,7 @@ asm OSTime __OSGetSystemTime(void) { #include "asm/dolphin/os/OSTime/__OSGetSystemTime.s" } #pragma pop +#endif /* 80342780-803427D8 33D0C0 0058+00 0/0 1/1 0/0 .text __OSTimeToSystemTime */ #pragma push @@ -61,17 +77,15 @@ asm OSTime __OSTimeToSystemTime(OSTime time) { /* ############################################################################################## */ /* 803D1048-803D1078 02E168 0030+00 1/1 0/0 0/0 .data YearDays */ -SECTION_DATA static u8 YearDays[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x5A, - 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xD4, - 0x00, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x01, 0x4E, +// End of each month in standard year +static s32 YearDays[] = { + 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, }; /* 803D1078-803D10A8 02E198 0030+00 1/1 0/0 0/0 .data LeapYearDays */ -SECTION_DATA static u8 LeapYearDays[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x5B, - 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xD5, - 0x00, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x01, 0x12, 0x00, 0x00, 0x01, 0x31, 0x00, 0x00, 0x01, 0x4F, +// End of each month in leap year +static s32 LeapYearDays[] = { + 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, }; /* 803427D8-80342974 33D118 019C+00 1/1 0/0 0/0 .text GetDates */ diff --git a/libs/dolphin/os/__ppc_eabi_init.cpp b/libs/dolphin/os/__ppc_eabi_init.c similarity index 90% rename from libs/dolphin/os/__ppc_eabi_init.cpp rename to libs/dolphin/os/__ppc_eabi_init.c index 758c52fc969..8aef4938994 100644 --- a/libs/dolphin/os/__ppc_eabi_init.cpp +++ b/libs/dolphin/os/__ppc_eabi_init.c @@ -11,15 +11,15 @@ // Forward References: // -extern "C" void __init_user(); -extern "C" void __init_cpp(); -extern "C" void _ExitProcess(); +void __init_user(); +void __init_cpp(); +void _ExitProcess(); // // External References: // -extern "C" void PPCHalt(); +void PPCHalt(); SECTION_CTORS10 extern void* const __init_cpp_exceptions_reference; // diff --git a/libs/dolphin/pad/Makefile b/libs/dolphin/pad/Makefile index e49e2cc240e..18a82510327 100644 --- a/libs/dolphin/pad/Makefile +++ b/libs/dolphin/pad/Makefile @@ -3,14 +3,16 @@ # LIBPAD_A_CPP_FILES := \ - libs/dolphin/pad/Padclamp.cpp \ - libs/dolphin/pad/Pad.cpp \ + libs/dolphin/pad/Padclamp.c \ + libs/dolphin/pad/Pad.c \ LIBPAD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/pad/Padclamp.o \ $(BUILD_DIR)/libs/dolphin/pad/Pad.o \ LIBPAD_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBPAD_A_LDFLAGS := \ -nodefaults \ @@ -23,9 +25,9 @@ $(BUILD_DIR)/libpad.a: $(LIBPAD_A_O_FILES) @echo $(LIBPAD_A_O_FILES) > build/LIBPAD_A_ofiles @$(LD) -xm l $(LIBPAD_A_LDFLAGS) -o $(BUILD_DIR)/libpad.a @build/LIBPAD_A_ofiles -$(BUILD_DIR)/libs/dolphin/pad/%.o: libs/dolphin/pad/%.cpp +$(BUILD_DIR)/libs/dolphin/pad/%.o: libs/dolphin/pad/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBPAD_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBPAD_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/pad/Pad.cpp b/libs/dolphin/pad/Pad.c similarity index 79% rename from libs/dolphin/pad/Pad.cpp rename to libs/dolphin/pad/Pad.c index da12bfaa2ed..b963c96a2ce 100644 --- a/libs/dolphin/pad/Pad.cpp +++ b/libs/dolphin/pad/Pad.c @@ -11,49 +11,49 @@ // Forward References: // -extern "C" static void UpdateOrigin(); -extern "C" static void PADOriginCallback(); -extern "C" static void PADOriginUpdateCallback(); -extern "C" static void PADProbeCallback(); -extern "C" static void PADTypeAndStatusCallback(); -extern "C" static void PADReceiveCheckCallback(); -extern "C" static void SPEC0_MakeStatus(); -extern "C" static void SPEC1_MakeStatus(); -extern "C" static void SPEC2_MakeStatus(); -extern "C" static void OnReset(); -extern "C" static void SamplingHandler(); -extern "C" static void PADSetSamplingCallback(); -extern "C" void __PADDisableRecalibration(); +static void UpdateOrigin(); +static void PADOriginCallback(); +static void PADOriginUpdateCallback(); +static void PADProbeCallback(); +static void PADTypeAndStatusCallback(); +static void PADReceiveCheckCallback(); +static void SPEC0_MakeStatus(); +static void SPEC1_MakeStatus(); +static void SPEC2_MakeStatus(); +static void OnReset(); +static void SamplingHandler(); +static void PADSetSamplingCallback(); +void __PADDisableRecalibration(); // // External References: // SECTION_INIT void memset(); -extern "C" void OSRegisterVersion(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSRegisterResetFunction(); -extern "C" void OSSetWirelessID(); -extern "C" void OSGetTime(); -extern "C" void SIBusy(); -extern "C" void SIIsChanBusy(); -extern "C" void SIRegisterPollingHandler(); -extern "C" void SIUnregisterPollingHandler(); -extern "C" void SIGetStatus(); -extern "C" void SISetCommand(); -extern "C" void SITransferCommands(); -extern "C" void SIEnablePolling(); -extern "C" void SIDisablePolling(); -extern "C" void SIGetResponse(); -extern "C" void SITransfer(); -extern "C" void SIGetType(); -extern "C" void SIGetTypeAsync(); -extern "C" void SIRefreshSamplingRate(); -extern "C" void __shr2i(); -extern "C" extern u8 __PADFixBits[4 + 4 /* padding */]; +void OSRegisterVersion(); +void OSSetCurrentContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void OSRegisterResetFunction(); +void OSSetWirelessID(); +void OSGetTime(); +void SIBusy(); +void SIIsChanBusy(); +void SIRegisterPollingHandler(); +void SIUnregisterPollingHandler(); +void SIGetStatus(); +void SISetCommand(); +void SITransferCommands(); +void SIEnablePolling(); +void SIDisablePolling(); +void SIGetResponse(); +void SITransfer(); +void SIGetType(); +void SIGetTypeAsync(); +void SIRefreshSamplingRate(); +void __shr2i(); +extern u8 __PADFixBits[4 + 4 /* padding */]; // // Declarations: @@ -61,81 +61,7 @@ extern "C" extern u8 __PADFixBits[4 + 4 /* padding */]; /* ############################################################################################## */ /* 803D1B48-803D1B90 02EC68 0045+03 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[69 + 3 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x50, - 0x41, - 0x44, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x34, - 0x3A, - 0x34, - 0x39, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - PAD\trelease build: Apr 5 2004 04:14:49 (0x2301) >>"; /* 8044CB70-8044CB80 079890 0010+00 3/3 0/0 0/0 .bss Type */ static u8 Type[16]; @@ -258,7 +184,7 @@ static asm void PADReceiveCheckCallback() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm s32 PADReset(PADMask mask) { +asm BOOL PADReset(u32 mask) { nofralloc #include "asm/dolphin/pad/Pad/PADReset.s" } @@ -268,7 +194,7 @@ asm s32 PADReset(PADMask mask) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm s32 PADRecalibrate(PADMask mask) { +asm BOOL PADRecalibrate(u32 mask) { nofralloc #include "asm/dolphin/pad/Pad/PADRecalibrate.s" } @@ -313,7 +239,7 @@ asm u32 PADInit() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm u32 PADRead(PADStatus*) { +asm void PADRead(PADStatus* status) { nofralloc #include "asm/dolphin/pad/Pad/PADRead.s" } diff --git a/libs/dolphin/pad/Padclamp.cpp b/libs/dolphin/pad/Padclamp.c similarity index 94% rename from libs/dolphin/pad/Padclamp.cpp rename to libs/dolphin/pad/Padclamp.c index 2c7f8f67033..aa5e4a5136a 100644 --- a/libs/dolphin/pad/Padclamp.cpp +++ b/libs/dolphin/pad/Padclamp.c @@ -11,10 +11,10 @@ // Forward References: // -extern "C" static void ClampStick(); -extern "C" static void ClampCircle(); -extern "C" void PADClamp(); -extern "C" void PADClampCircle(); +static void ClampStick(); +static void ClampCircle(); +void PADClamp(); +void PADClampCircle(); // // External References: diff --git a/libs/dolphin/si/Makefile b/libs/dolphin/si/Makefile index 0102fb62ac0..f79ca0af02a 100644 --- a/libs/dolphin/si/Makefile +++ b/libs/dolphin/si/Makefile @@ -3,14 +3,16 @@ # LIBSI_A_CPP_FILES := \ - libs/dolphin/si/SIBios.cpp \ - libs/dolphin/si/SISamplingRate.cpp \ + libs/dolphin/si/SIBios.c \ + libs/dolphin/si/SISamplingRate.c \ LIBSI_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/si/SIBios.o \ $(BUILD_DIR)/libs/dolphin/si/SISamplingRate.o \ LIBSI_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBSI_A_LDFLAGS := \ -nodefaults \ @@ -23,9 +25,9 @@ $(BUILD_DIR)/libsi.a: $(LIBSI_A_O_FILES) @echo $(LIBSI_A_O_FILES) > build/LIBSI_A_ofiles @$(LD) -xm l $(LIBSI_A_LDFLAGS) -o $(BUILD_DIR)/libsi.a @build/LIBSI_A_ofiles -$(BUILD_DIR)/libs/dolphin/si/%.o: libs/dolphin/si/%.cpp +$(BUILD_DIR)/libs/dolphin/si/%.o: libs/dolphin/si/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBSI_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBSI_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/si/SIBios.cpp b/libs/dolphin/si/SIBios.c similarity index 72% rename from libs/dolphin/si/SIBios.cpp rename to libs/dolphin/si/SIBios.c index c8a5e9656da..3b9e8044a67 100644 --- a/libs/dolphin/si/SIBios.cpp +++ b/libs/dolphin/si/SIBios.c @@ -11,45 +11,45 @@ // Forward References: // -extern "C" void SIBusy(); -extern "C" void SIIsChanBusy(); -extern "C" static void CompleteTransfer(); -extern "C" static void SIInterruptHandler(); -extern "C" static void SIEnablePollingInterrupt(); -extern "C" void SIRegisterPollingHandler(); -extern "C" void SIUnregisterPollingHandler(); -extern "C" void SIInit(); -extern "C" void __SITransfer(); -extern "C" void SIGetStatus(); -extern "C" void SISetCommand(); -extern "C" void SITransferCommands(); -extern "C" void SISetXY(); -extern "C" void SIEnablePolling(); -extern "C" void SIDisablePolling(); -extern "C" static void SIGetResponseRaw(); -extern "C" void SIGetResponse(); -extern "C" static void AlarmHandler(); -extern "C" void SITransfer(); -extern "C" static void GetTypeCallback(); -extern "C" void SIGetType(); -extern "C" void SIGetTypeAsync(); +void SIBusy(); +void SIIsChanBusy(); +static void CompleteTransfer(); +static void SIInterruptHandler(); +static void SIEnablePollingInterrupt(); +void SIRegisterPollingHandler(); +void SIUnregisterPollingHandler(); +void SIInit(); +void __SITransfer(); +void SIGetStatus(); +void SISetCommand(); +void SITransferCommands(); +void SISetXY(); +void SIEnablePolling(); +void SIDisablePolling(); +static void SIGetResponseRaw(); +void SIGetResponse(); +static void AlarmHandler(); +void SITransfer(); +static void GetTypeCallback(); +void SIGetType(); +void SIGetTypeAsync(); // // External References: // -extern "C" void OSRegisterVersion(); -extern "C" void OSSetAlarm(); -extern "C" void OSCancelAlarm(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void OSGetWirelessID(); -extern "C" void OSSetWirelessID(); -extern "C" void __OSGetSystemTime(); -extern "C" void SISetSamplingRate(); -extern "C" void VIGetCurrentLine(); +void OSRegisterVersion(); +void OSSetAlarm(); +void OSCancelAlarm(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSUnmaskInterrupts(); +void OSGetWirelessID(); +void OSSetWirelessID(); +void __OSGetSystemTime(); +void SISetSamplingRate(); +void VIGetCurrentLine(); // // Declarations: @@ -57,13 +57,7 @@ extern "C" void VIGetCurrentLine(); /* ############################################################################################## */ /* 803D11B8-803D11FC 02E2D8 0044+00 4/3 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[68] = { - 0x3C, 0x3C, 0x20, 0x44, 0x6F, 0x6C, 0x70, 0x68, 0x69, 0x6E, 0x20, 0x53, 0x44, 0x4B, - 0x20, 0x2D, 0x20, 0x53, 0x49, 0x09, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x20, - 0x62, 0x75, 0x69, 0x6C, 0x64, 0x3A, 0x20, 0x41, 0x70, 0x72, 0x20, 0x20, 0x35, 0x20, - 0x32, 0x30, 0x30, 0x34, 0x20, 0x30, 0x34, 0x3A, 0x31, 0x34, 0x3A, 0x31, 0x36, 0x20, - 0x28, 0x30, 0x78, 0x32, 0x33, 0x30, 0x31, 0x29, 0x20, 0x3E, 0x3E, 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - SI\trelease build: Apr 5 2004 04:14:16 (0x2301) >>"; /* 803D11FC-803D1210 02E31C 0014+00 8/11 0/0 0/0 .data Si */ SECTION_DATA static u8 Si[20] = { @@ -359,199 +353,67 @@ asm void SIGetTypeAsync() { /* 803D1220-803D122C 02E340 000C+00 0/0 0/0 0/0 .data @457 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_457[12] = { - 0x4E, 0x6F, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x65, 0x00, -}; +SECTION_DATA static char lit_457[] = "No response"; #pragma pop /* 803D122C-803D123C 02E34C 000F+01 0/0 0/0 0/0 .data @459 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_459[15 + 1 /* padding */] = { - 0x4E, - 0x36, - 0x34, - 0x20, - 0x63, - 0x6F, - 0x6E, - 0x74, - 0x72, - 0x6F, - 0x6C, - 0x6C, - 0x65, - 0x72, - 0x00, - /* padding */ - 0x00, -}; +SECTION_DATA static char lit_459[] = "N64 controller"; #pragma pop /* 803D123C-803D124C 02E35C 000F+01 0/0 0/0 0/0 .data @460 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_460[15 + 1 /* padding */] = { - 0x4E, - 0x36, - 0x34, - 0x20, - 0x6D, - 0x69, - 0x63, - 0x72, - 0x6F, - 0x70, - 0x68, - 0x6F, - 0x6E, - 0x65, - 0x00, - /* padding */ - 0x00, -}; +SECTION_DATA static char lit_460[] = "N64 microphone"; #pragma pop /* 803D124C-803D125C 02E36C 000D+03 0/0 0/0 0/0 .data @461 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_461[13 + 3 /* padding */] = { - 0x4E, - 0x36, - 0x34, - 0x20, - 0x6B, - 0x65, - 0x79, - 0x62, - 0x6F, - 0x61, - 0x72, - 0x64, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_461[] = "N64 keyboard"; #pragma pop /* 803D125C-803D1268 02E37C 000A+02 0/0 0/0 0/0 .data @462 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_462[10 + 2 /* padding */] = { - 0x4E, - 0x36, - 0x34, - 0x20, - 0x6D, - 0x6F, - 0x75, - 0x73, - 0x65, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_462[] = "N64 mouse"; #pragma pop /* 803D1268-803D1278 02E388 0010+00 0/0 0/0 0/0 .data @463 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_463[16] = { - 0x47, 0x61, 0x6D, 0x65, 0x42, 0x6F, 0x79, 0x20, 0x41, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, -}; +SECTION_DATA static char lit_463[] = "GameBoy Advance"; #pragma pop /* 803D1278-803D128C 02E398 0014+00 0/0 0/0 0/0 .data @464 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_464[20] = { - 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x63, - 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x6C, 0x65, 0x72, 0x00, -}; +SECTION_DATA static char lit_464[] = "Standard controller"; #pragma pop /* 803D128C-803D12A0 02E3AC 0012+02 0/0 0/0 0/0 .data @465 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_465[18 + 2 /* padding */] = { - 0x57, - 0x69, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x73, - 0x73, - 0x20, - 0x72, - 0x65, - 0x63, - 0x65, - 0x69, - 0x76, - 0x65, - 0x72, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_465[] = "Wireless receiver"; #pragma pop /* 803D12A0-803D12B4 02E3C0 0014+00 0/0 0/0 0/0 .data @466 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_466[20] = { - 0x57, 0x61, 0x76, 0x65, 0x42, 0x69, 0x72, 0x64, 0x20, 0x63, - 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x6C, 0x65, 0x72, 0x00, -}; +SECTION_DATA static char lit_466[] = "WaveBird controller"; #pragma pop /* 803D12B4-803D12C0 02E3D4 0009+03 0/0 0/0 0/0 .data @467 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_467[9 + 3 /* padding */] = { - 0x4B, - 0x65, - 0x79, - 0x62, - 0x6F, - 0x61, - 0x72, - 0x64, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_467[] = "Keyboard"; #pragma pop /* 803D12C0-803D12D0 02E3E0 0009+07 0/0 0/0 0/0 .data @468 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_468[9 + 7 /* padding */] = { - 0x53, - 0x74, - 0x65, - 0x65, - 0x72, - 0x69, - 0x6E, - 0x67, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_468[] = "Steering"; #pragma pop /* 8044C820-8044C830 079540 0010+00 0/0 0/0 0/0 .bss cmdFixDevice$327 */ diff --git a/libs/dolphin/si/SISamplingRate.cpp b/libs/dolphin/si/SISamplingRate.c similarity index 69% rename from libs/dolphin/si/SISamplingRate.cpp rename to libs/dolphin/si/SISamplingRate.c index bb7b4b4bdce..4bf5ca3d4a8 100644 --- a/libs/dolphin/si/SISamplingRate.cpp +++ b/libs/dolphin/si/SISamplingRate.c @@ -11,18 +11,18 @@ // Forward References: // -extern "C" void SISetSamplingRate(); -extern "C" void SIRefreshSamplingRate(); +void SISetSamplingRate(); +void SIRefreshSamplingRate(); // // External References: // -extern "C" void OSReport(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void SISetXY(); -extern "C" void VIGetTvFormat(); +void OSReport(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void SISetXY(); +void VIGetTvFormat(); // // Declarations: @@ -49,65 +49,7 @@ SECTION_DATA static u8 XYPAL[48] = { /* 803D1330-803D1368 02E450 0033+05 0/1 0/0 0/0 .data @16 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_16[51 + 5 /* padding */] = { - 0x53, - 0x49, - 0x53, - 0x65, - 0x74, - 0x53, - 0x61, - 0x6D, - 0x70, - 0x6C, - 0x69, - 0x6E, - 0x67, - 0x52, - 0x61, - 0x74, - 0x65, - 0x3A, - 0x20, - 0x75, - 0x6E, - 0x6B, - 0x6E, - 0x6F, - 0x77, - 0x6E, - 0x20, - 0x54, - 0x56, - 0x20, - 0x66, - 0x6F, - 0x72, - 0x6D, - 0x61, - 0x74, - 0x2E, - 0x20, - 0x55, - 0x73, - 0x65, - 0x20, - 0x64, - 0x65, - 0x66, - 0x61, - 0x75, - 0x6C, - 0x74, - 0x2E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_16[] = "SISetSamplingRate: unknown TV format. Use default."; #pragma pop /* 80451700-80451708 000C00 0004+04 2/2 0/0 0/0 .sbss SamplingRate */ diff --git a/libs/dolphin/vi/Makefile b/libs/dolphin/vi/Makefile index dd66f4e1a5c..08cfcd08058 100644 --- a/libs/dolphin/vi/Makefile +++ b/libs/dolphin/vi/Makefile @@ -3,12 +3,14 @@ # LIBVI_A_CPP_FILES := \ - libs/dolphin/vi/vi.cpp \ + libs/dolphin/vi/vi.c \ LIBVI_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/vi/vi.o \ LIBVI_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBVI_A_LDFLAGS := \ -nodefaults \ @@ -21,9 +23,9 @@ $(BUILD_DIR)/libvi.a: $(LIBVI_A_O_FILES) @echo $(LIBVI_A_O_FILES) > build/LIBVI_A_ofiles @$(LD) -xm l $(LIBVI_A_LDFLAGS) -o $(BUILD_DIR)/libvi.a @build/LIBVI_A_ofiles -$(BUILD_DIR)/libs/dolphin/vi/%.o: libs/dolphin/vi/%.cpp +$(BUILD_DIR)/libs/dolphin/vi/%.o: libs/dolphin/vi/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBVI_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBVI_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/libs/dolphin/vi/vi.cpp b/libs/dolphin/vi/vi.c similarity index 73% rename from libs/dolphin/vi/vi.cpp rename to libs/dolphin/vi/vi.c index 5807dfcf2f8..0fec2d2804c 100644 --- a/libs/dolphin/vi/vi.cpp +++ b/libs/dolphin/vi/vi.c @@ -11,42 +11,28 @@ // Forward References: // -extern "C" void __VIRetraceHandler(); -extern "C" static void getTiming(); -extern "C" void __VIInit(); -extern "C" static void setFbbRegs(); -extern "C" static void setVerticalRegs(); -extern "C" u32 VIGetRetraceCount(); -extern "C" static void GetCurrentDisplayPosition(); -extern "C" static void getCurrentFieldEvenOdd(); -extern "C" void VIGetNextField(); -extern "C" void VIGetCurrentLine(); -extern "C" void VIGetTvFormat(); -extern "C" void VIGetDTVStatus(); -extern "C" void __VIDisplayPositionToXY(); -extern "C" void __VIGetCurrentPosition(); +void __VIRetraceHandler(); +static void getTiming(); +void __VIInit(); +static void setFbbRegs(); +static void setVerticalRegs(); +u32 VIGetRetraceCount(); +static void GetCurrentDisplayPosition(); +static void getCurrentFieldEvenOdd(); +void VIGetNextField(); +void VIGetCurrentLine(); +void VIGetTvFormat(); +void VIGetDTVStatus(); +void __VIDisplayPositionToXY(); +void __VIGetCurrentPosition(); // // External References: // -extern "C" void OSReport(); -extern "C" void OSPanic(); -extern "C" void OSRegisterVersion(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void __OSLockSram(); -extern "C" void __OSUnlockSram(); -extern "C" void OSInitThreadQueue(); -extern "C" void OSSleepThread(); -extern "C" void OSWakeupThread(); -extern "C" void SIRefreshSamplingRate(); -extern "C" void __shl2i(); -extern "C" void __shr2u(); +void SIRefreshSamplingRate(); +void __shl2i(); +void __shr2u(); // // Declarations: @@ -147,13 +133,7 @@ asm VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback) { /* ############################################################################################## */ /* 803D1760-803D17A4 02E880 0044+00 4/3 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[68] = { - 0x3C, 0x3C, 0x20, 0x44, 0x6F, 0x6C, 0x70, 0x68, 0x69, 0x6E, 0x20, 0x53, 0x44, 0x4B, - 0x20, 0x2D, 0x20, 0x56, 0x49, 0x09, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x20, - 0x62, 0x75, 0x69, 0x6C, 0x64, 0x3A, 0x20, 0x41, 0x70, 0x72, 0x20, 0x20, 0x37, 0x20, - 0x32, 0x30, 0x30, 0x34, 0x20, 0x30, 0x34, 0x3A, 0x31, 0x33, 0x3A, 0x35, 0x39, 0x20, - 0x28, 0x30, 0x78, 0x32, 0x33, 0x30, 0x31, 0x29, 0x20, 0x3E, 0x3E, 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - VI\trelease build: Apr 7 2004 04:13:59 (0x2301) >>"; /* 803D17A4-803D1920 02E8C4 017C+00 0/1 0/0 0/0 .data timing */ #pragma push @@ -349,411 +329,47 @@ static asm void setVerticalRegs() { /* 803D19D0-803D19FC 02EAF0 0029+03 0/1 0/0 0/0 .data @355 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_355[41 + 3 /* padding */] = { - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x2A, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_355[] = "***************************************\n"; #pragma pop /* 803D19FC-803D1A28 02EB1C 0029+03 0/1 0/0 0/0 .data @356 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_356[41 + 3 /* padding */] = { - 0x20, - 0x21, - 0x20, - 0x21, - 0x20, - 0x21, - 0x20, - 0x43, - 0x20, - 0x41, - 0x20, - 0x55, - 0x20, - 0x54, - 0x20, - 0x49, - 0x20, - 0x4F, - 0x20, - 0x4E, - 0x20, - 0x21, - 0x20, - 0x21, - 0x20, - 0x21, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_356[] = " ! ! ! C A U T I O N ! ! ! \n"; #pragma pop /* 803D1A28-803D1A54 02EB48 0029+03 0/1 0/0 0/0 .data @357 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_357[41 + 3 /* padding */] = { - 0x54, - 0x68, - 0x69, - 0x73, - 0x20, - 0x54, - 0x56, - 0x20, - 0x66, - 0x6F, - 0x72, - 0x6D, - 0x61, - 0x74, - 0x20, - 0x22, - 0x44, - 0x45, - 0x42, - 0x55, - 0x47, - 0x5F, - 0x50, - 0x41, - 0x4C, - 0x22, - 0x20, - 0x69, - 0x73, - 0x20, - 0x6F, - 0x6E, - 0x6C, - 0x79, - 0x20, - 0x66, - 0x6F, - 0x72, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_357[] = "This TV format \"DEBUG_PAL\" is only for \n"; #pragma pop /* 803D1A54-803D1A80 02EB74 0029+03 0/1 0/0 0/0 .data @358 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_358[41 + 3 /* padding */] = { - 0x74, - 0x65, - 0x6D, - 0x70, - 0x6F, - 0x72, - 0x61, - 0x72, - 0x79, - 0x20, - 0x73, - 0x6F, - 0x6C, - 0x75, - 0x74, - 0x69, - 0x6F, - 0x6E, - 0x20, - 0x75, - 0x6E, - 0x74, - 0x69, - 0x6C, - 0x20, - 0x50, - 0x41, - 0x4C, - 0x20, - 0x44, - 0x41, - 0x43, - 0x20, - 0x62, - 0x6F, - 0x61, - 0x72, - 0x64, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_358[] = "temporary solution until PAL DAC board \n"; #pragma pop /* 803D1A80-803D1AAC 02EBA0 0029+03 0/1 0/0 0/0 .data @359 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_359[41 + 3 /* padding */] = { - 0x69, - 0x73, - 0x20, - 0x61, - 0x76, - 0x61, - 0x69, - 0x6C, - 0x61, - 0x62, - 0x6C, - 0x65, - 0x2E, - 0x20, - 0x50, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x64, - 0x6F, - 0x20, - 0x4E, - 0x4F, - 0x54, - 0x20, - 0x75, - 0x73, - 0x65, - 0x20, - 0x74, - 0x68, - 0x69, - 0x73, - 0x20, - 0x20, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_359[] = "is available. Please do NOT use this \n"; #pragma pop /* 803D1AAC-803D1AD8 02EBCC 0029+03 0/1 0/0 0/0 .data @360 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_360[41 + 3 /* padding */] = { - 0x6D, - 0x6F, - 0x64, - 0x65, - 0x20, - 0x69, - 0x6E, - 0x20, - 0x72, - 0x65, - 0x61, - 0x6C, - 0x20, - 0x67, - 0x61, - 0x6D, - 0x65, - 0x73, - 0x21, - 0x21, - 0x21, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x0A, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_360[] = "mode in real games!!! \n"; #pragma pop /* 803D1AD8-803D1B24 02EBF8 004B+01 0/1 0/0 0/0 .data @538 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_538[75 + 1 /* padding */] = { - 0x56, - 0x49, - 0x43, - 0x6F, - 0x6E, - 0x66, - 0x69, - 0x67, - 0x75, - 0x72, - 0x65, - 0x28, - 0x29, - 0x3A, - 0x20, - 0x54, - 0x72, - 0x69, - 0x65, - 0x64, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x63, - 0x68, - 0x61, - 0x6E, - 0x67, - 0x65, - 0x20, - 0x6D, - 0x6F, - 0x64, - 0x65, - 0x20, - 0x66, - 0x72, - 0x6F, - 0x6D, - 0x20, - 0x28, - 0x25, - 0x64, - 0x29, - 0x20, - 0x74, - 0x6F, - 0x20, - 0x28, - 0x25, - 0x64, - 0x29, - 0x2C, - 0x20, - 0x77, - 0x68, - 0x69, - 0x63, - 0x68, - 0x20, - 0x69, - 0x73, - 0x20, - 0x66, - 0x6F, - 0x72, - 0x62, - 0x69, - 0x64, - 0x64, - 0x65, - 0x6E, - 0x0A, - 0x00, - /* padding */ - 0x00, -}; +SECTION_DATA static char lit_538[] = "VIConfigure(): Tried to change mode from (%d) to (%d), which is forbidden\n"; #pragma pop /* 80450A14-80450A1C 000494 0005+03 1/1 0/0 0/0 .sdata @537 */ -SECTION_SDATA static u8 lit_537[5 + 3 /* padding */] = { - 0x76, - 0x69, - 0x2E, - 0x63, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_SDATA static char lit_537[] = "vi.c"; /* 80451840-80451848 000D40 0004+04 1/1 0/0 0/0 .sbss message$351 */ static u8 message[4 + 4 /* padding */]; diff --git a/libs/exi/EXIBios.cpp b/libs/exi/EXIBios.c similarity index 63% rename from libs/exi/EXIBios.cpp rename to libs/exi/EXIBios.c index 1d4b3326815..b857b70927b 100644 --- a/libs/exi/EXIBios.cpp +++ b/libs/exi/EXIBios.c @@ -11,50 +11,50 @@ // Forward References: // -extern "C" static void SetExiInterruptMask(); -extern "C" void EXIImm(); -extern "C" void EXIImmEx(); -extern "C" void EXIDma(); -extern "C" void EXISync(); -extern "C" static void EXIClearInterrupts(); -extern "C" void EXISetExiCallback(); -extern "C" void __EXIProbe(); -extern "C" void EXIProbe(); -extern "C" void EXIProbeEx(); -extern "C" void EXIAttach(); -extern "C" void EXIDetach(); -extern "C" void EXISelect(); -extern "C" void EXIDeselect(); -extern "C" static void EXIIntrruptHandler(); -extern "C" static void TCIntrruptHandler(); -extern "C" static void EXTIntrruptHandler(); -extern "C" void EXIInit(); -extern "C" void EXILock(); -extern "C" void EXIUnlock(); -extern "C" void EXIGetState(); -extern "C" static void UnlockedHandler(); -extern "C" void EXIGetID(); +static void SetExiInterruptMask(); +void EXIImm(); +void EXIImmEx(); +void EXIDma(); +void EXISync(); +static void EXIClearInterrupts(); +void EXISetExiCallback(); +void __EXIProbe(); +void EXIProbe(); +void EXIProbeEx(); +void EXIAttach(); +void EXIDetach(); +void EXISelect(); +void EXIDeselect(); +static void EXIIntrruptHandler(); +static void TCIntrruptHandler(); +static void EXTIntrruptHandler(); +void EXIInit(); +void EXILock(); +void EXIUnlock(); +void EXIGetState(); +static void UnlockedHandler(); +void EXIGetID(); // // External References: // -extern "C" void OSGetConsoleType(); -extern "C" void __OSGetDIConfig(); -extern "C" void OSRegisterVersion(); -extern "C" void OSSetCurrentContext(); -extern "C" void OSClearContext(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void __OSSetInterruptHandler(); -extern "C" void __OSGetInterruptHandler(); -extern "C" void __OSMaskInterrupts(); -extern "C" void __OSUnmaskInterrupts(); -extern "C" void OSGetTime(); -extern "C" void __OSEnableBarnacle(); -extern "C" void __div2i(); -extern "C" void memmove(); -extern "C" extern u8 __OSInIPL[4 + 4 /* padding */]; +void OSGetConsoleType(); +void __OSGetDIConfig(); +void OSRegisterVersion(); +void OSSetCurrentContext(); +void OSClearContext(); +void OSDisableInterrupts(); +void OSRestoreInterrupts(); +void __OSSetInterruptHandler(); +void __OSGetInterruptHandler(); +void __OSMaskInterrupts(); +void __OSUnmaskInterrupts(); +void OSGetTime(); +void __OSEnableBarnacle(); +void __div2i(); +void memmove(); +extern u8 __OSInIPL[4 + 4 /* padding */]; // // Declarations: @@ -236,81 +236,7 @@ static asm void EXTIntrruptHandler() { /* ############################################################################################## */ /* 803D10A8-803D10F0 02E1C8 0045+03 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static u8 lit_1[69 + 3 /* padding */] = { - 0x3C, - 0x3C, - 0x20, - 0x44, - 0x6F, - 0x6C, - 0x70, - 0x68, - 0x69, - 0x6E, - 0x20, - 0x53, - 0x44, - 0x4B, - 0x20, - 0x2D, - 0x20, - 0x45, - 0x58, - 0x49, - 0x09, - 0x72, - 0x65, - 0x6C, - 0x65, - 0x61, - 0x73, - 0x65, - 0x20, - 0x62, - 0x75, - 0x69, - 0x6C, - 0x64, - 0x3A, - 0x20, - 0x41, - 0x70, - 0x72, - 0x20, - 0x20, - 0x35, - 0x20, - 0x32, - 0x30, - 0x30, - 0x34, - 0x20, - 0x30, - 0x34, - 0x3A, - 0x31, - 0x34, - 0x3A, - 0x31, - 0x34, - 0x20, - 0x28, - 0x30, - 0x78, - 0x32, - 0x33, - 0x30, - 0x31, - 0x29, - 0x20, - 0x3E, - 0x3E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_1[] = "<< Dolphin SDK - EXI\trelease build: Apr 5 2004 04:14:14 (0x2301) >>"; /* 804509C0-804509C8 -00001 0004+04 1/1 0/0 0/0 .sdata __EXIVersion */ SECTION_SDATA static void* __EXIVersion[1 + 1 /* padding */] = { @@ -386,235 +312,71 @@ asm void EXIGetID() { /* 803D10F0-803D1100 02E210 000F+01 0/0 0/0 0/0 .data @473 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_473[15 + 1 /* padding */] = { - 0x4D, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x79, - 0x20, - 0x43, - 0x61, - 0x72, - 0x64, - 0x20, - 0x35, - 0x39, - 0x00, - /* padding */ - 0x00, -}; +SECTION_DATA static char lit_473[] = "Memory Card 59"; #pragma pop /* 803D1100-803D1110 02E220 0010+00 0/0 0/0 0/0 .data @474 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_474[16] = { - 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x43, 0x61, 0x72, 0x64, 0x20, 0x31, 0x32, 0x33, 0x00, -}; +SECTION_DATA static char lit_474[] = "Memory Card 123"; #pragma pop /* 803D1110-803D1120 02E230 0010+00 0/0 0/0 0/0 .data @475 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_475[16] = { - 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x43, 0x61, 0x72, 0x64, 0x20, 0x32, 0x35, 0x31, 0x00, -}; +SECTION_DATA static char lit_475[] = "Memory Card 251"; #pragma pop /* 803D1120-803D1130 02E240 0010+00 0/0 0/0 0/0 .data @476 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_476[16] = { - 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x43, 0x61, 0x72, 0x64, 0x20, 0x35, 0x30, 0x37, 0x00, -}; +SECTION_DATA static char lit_476[] = "Memory Card 507"; #pragma pop /* 803D1130-803D1144 02E250 0011+03 0/0 0/0 0/0 .data @477 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_477[17 + 3 /* padding */] = { - 0x4D, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x79, - 0x20, - 0x43, - 0x61, - 0x72, - 0x64, - 0x20, - 0x31, - 0x30, - 0x31, - 0x39, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_477[] = "Memory Card 1019"; #pragma pop /* 803D1144-803D1158 02E264 0011+03 0/0 0/0 0/0 .data @478 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_478[17 + 3 /* padding */] = { - 0x4D, - 0x65, - 0x6D, - 0x6F, - 0x72, - 0x79, - 0x20, - 0x43, - 0x61, - 0x72, - 0x64, - 0x20, - 0x32, - 0x30, - 0x34, - 0x33, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_478[] = "Memory Card 2043"; #pragma pop /* 803D1158-803D1164 02E278 000C+00 0/0 0/0 0/0 .data @479 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_479[12] = { - 0x55, 0x53, 0x42, 0x20, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x00, -}; +SECTION_DATA static char lit_479[] = "USB Adapter"; #pragma pop /* 803D1164-803D1170 02E284 0009+03 0/0 0/0 0/0 .data @485 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_485[9 + 3 /* padding */] = { - 0x4E, - 0x65, - 0x74, - 0x20, - 0x43, - 0x61, - 0x72, - 0x64, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_485[] = "Net Card"; #pragma pop /* 803D1170-803D1180 02E290 000D+03 0/0 0/0 0/0 .data @486 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_486[13 + 3 /* padding */] = { - 0x41, - 0x72, - 0x74, - 0x69, - 0x73, - 0x74, - 0x20, - 0x45, - 0x74, - 0x68, - 0x65, - 0x72, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_486[] = "Artist Ether"; #pragma pop /* 803D1180-803D1194 02E2A0 0012+02 0/0 0/0 0/0 .data @487 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_487[18 + 2 /* padding */] = { - 0x42, - 0x72, - 0x6F, - 0x61, - 0x64, - 0x62, - 0x61, - 0x6E, - 0x64, - 0x20, - 0x41, - 0x64, - 0x61, - 0x70, - 0x74, - 0x65, - 0x72, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_487[] = "Broadband Adapter"; #pragma pop /* 803D1194-803D11A4 02E2B4 000E+02 0/0 0/0 0/0 .data @489 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_489[14 + 2 /* padding */] = { - 0x53, - 0x74, - 0x72, - 0x65, - 0x61, - 0x6D, - 0x20, - 0x48, - 0x61, - 0x6E, - 0x67, - 0x65, - 0x72, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static char lit_489[] = "Stream Hanger"; #pragma pop /* 803D11A4-803D11B8 02E2C4 000E+06 0/0 0/0 0/0 .data @490 */ #pragma push #pragma force_active on -SECTION_DATA static u8 lit_490[14 + 6 /* padding */] = { - 0x49, - 0x53, - 0x2D, - 0x44, - 0x4F, - 0x4C, - 0x2D, - 0x56, - 0x49, - 0x45, - 0x57, - 0x45, - 0x52, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static char lit_490[] = "IS-DOL-VIEWER"; #pragma pop diff --git a/libs/exi/EXIUart.cpp b/libs/exi/EXIUart.c similarity index 80% rename from libs/exi/EXIUart.cpp rename to libs/exi/EXIUart.c index 5849104eb1f..16da2210a01 100644 --- a/libs/exi/EXIUart.cpp +++ b/libs/exi/EXIUart.c @@ -11,25 +11,25 @@ // Forward References: // -extern "C" static void ProbeBarnacle(); -extern "C" void __OSEnableBarnacle(); -extern "C" void InitializeUART(); -extern "C" void WriteUARTN(); +static void ProbeBarnacle(); +void __OSEnableBarnacle(); +void InitializeUART(); +void WriteUARTN(); // // External References: // -extern "C" void OSGetConsoleType(); -extern "C" void EXIImm(); -extern "C" void EXISync(); -extern "C" void EXIAttach(); -extern "C" void EXIDetach(); -extern "C" void EXISelect(); -extern "C" void EXIDeselect(); -extern "C" void EXILock(); -extern "C" void EXIUnlock(); -extern "C" void EXIGetID(); +void OSGetConsoleType(); +void EXIImm(); +void EXISync(); +void EXIAttach(); +void EXIDetach(); +void EXISelect(); +void EXIDeselect(); +void EXILock(); +void EXIUnlock(); +void EXIGetID(); // // Declarations: diff --git a/libs/exi/Makefile b/libs/exi/Makefile index 56e5b8f9a8b..f8ea01c4390 100644 --- a/libs/exi/Makefile +++ b/libs/exi/Makefile @@ -3,14 +3,16 @@ # LIBEXI_A_CPP_FILES := \ - libs/exi/EXIBios.cpp \ - libs/exi/EXIUart.cpp \ + libs/exi/EXIBios.c \ + libs/exi/EXIUart.c \ LIBEXI_A_O_FILES := \ $(BUILD_DIR)/libs/exi/EXIBios.o \ $(BUILD_DIR)/libs/exi/EXIUart.o \ LIBEXI_A_CFLAGS := \ + -O4,p \ + -lang=c \ LIBEXI_A_LDFLAGS := \ -nodefaults \ @@ -23,9 +25,9 @@ $(BUILD_DIR)/libexi.a: $(LIBEXI_A_O_FILES) @echo $(LIBEXI_A_O_FILES) > build/LIBEXI_A_ofiles @$(LD) -xm l $(LIBEXI_A_LDFLAGS) -o $(BUILD_DIR)/libexi.a @build/LIBEXI_A_ofiles -$(BUILD_DIR)/libs/exi/%.o: libs/exi/%.cpp +$(BUILD_DIR)/libs/exi/%.o: libs/exi/%.c @mkdir -p $(@D) @echo building... $< - @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp - @$(CC) $(CFLAGS) $(LIBEXI_A_CFLAGS) -c -o $@ $(basename $@).cpp + @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c + @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBEXI_A_CFLAGS) -c -o $@ $(basename $@).c diff --git a/rel/d/a/d_a_alldie/d_a_alldie.cpp b/rel/d/a/d_a_alldie/d_a_alldie.cpp index ddaeef7621b..333d8087b5a 100644 --- a/rel/d/a/d_a_alldie/d_a_alldie.cpp +++ b/rel/d/a/d_a_alldie/d_a_alldie.cpp @@ -6,221 +6,218 @@ #include "rel/d/a/d_a_alldie/d_a_alldie.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daAlldie_c { - /* 804D5818 */ void getEventNo(); - /* 804D5824 */ void getSwbit(); - /* 804D5830 */ bool actionWait(); - /* 804D5838 */ void actionCheck(); - /* 804D5888 */ void actionTimer(); - /* 804D5938 */ void actionOrder(); - /* 804D59A0 */ void actionEvent(); - /* 804D5A44 */ void actionNext(); - /* 804D5B10 */ void execute(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); - /* 80043500 */ void searchMapEventData(u8, s32); -}; - -struct dEvent_manager_c { - /* 80047698 */ void getEventIdx(fopAc_ac_c*, u8); - /* 80047A78 */ void endCheck(s16); -}; - -// -// Forward References: -// - -extern "C" void getEventNo__10daAlldie_cFv(); -extern "C" void getSwbit__10daAlldie_cFv(); -extern "C" bool actionWait__10daAlldie_cFv(); -extern "C" void actionCheck__10daAlldie_cFv(); -extern "C" void actionTimer__10daAlldie_cFv(); -extern "C" void actionOrder__10daAlldie_cFv(); -extern "C" void actionEvent__10daAlldie_cFv(); -extern "C" void actionNext__10daAlldie_cFv(); -extern "C" void execute__10daAlldie_cFv(); -extern "C" static bool daAlldie_Draw__FP10daAlldie_c(); -extern "C" static void daAlldie_Execute__FP10daAlldie_c(); -extern "C" static bool daAlldie_IsDelete__FP10daAlldie_c(); -extern "C" static void daAlldie_Delete__FP10daAlldie_c(); -extern "C" static void daAlldie_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_ALLDIE[12]; +#include "d/com/d_com_inf_game.h" // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void fopAcM_myRoomSearchEnemy__FSc(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void searchMapEventData__14dEvt_control_cFUcl(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // /* 804D5818-804D5824 000078 000C+00 2/2 0/0 0/0 .text getEventNo__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::getEventNo() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/getEventNo__10daAlldie_cFv.s" +u8 daAlldie_c::getEventNo() { + return fopAcM_GetParam(this) >> 0x18; } -#pragma pop /* 804D5824-804D5830 000084 000C+00 2/2 0/0 0/0 .text getSwbit__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::getSwbit() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/getSwbit__10daAlldie_cFv.s" +u8 daAlldie_c::getSwbit() { + return fopAcM_GetParam(this) >> 0x8; } -#pragma pop /* 804D5830-804D5838 000090 0008+00 1/1 0/0 0/0 .text actionWait__10daAlldie_cFv */ -bool daAlldie_c::actionWait() { - return true; +int daAlldie_c::actionWait() { + return 1; } /* 804D5838-804D5888 000098 0050+00 1/1 0/0 0/0 .text actionCheck__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::actionCheck() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionCheck__10daAlldie_cFv.s" +int daAlldie_c::actionCheck() { + s8 roomNo = fopAcM_GetRoomNo(this); + + if (fopAcM_myRoomSearchEnemy(roomNo) == NULL) { + mAction = ACT_TIMER; + mTimer = 65; + } + + return 1; } -#pragma pop /* 804D5888-804D5938 0000E8 00B0+00 1/1 0/0 0/0 .text actionTimer__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::actionTimer() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionTimer__10daAlldie_cFv.s" +int daAlldie_c::actionTimer() { + s8 roomNo = fopAcM_GetRoomNo(this); + + if (fopAcM_myRoomSearchEnemy(roomNo) != NULL) { + mAction = ACT_CHECK; + } else { + if (mTimer > 0) { + mTimer--; + } else { + if (mEventIdx == -1) { + mAction = ACT_WAIT; + } else { + mAction = ACT_ORDER; + } + + dComIfGs_onSwitch(getSwbit(), fopAcM_GetRoomNo(this)); + } + } + + return 1; } -#pragma pop /* 804D5938-804D59A0 000198 0068+00 1/1 0/0 0/0 .text actionOrder__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::actionOrder() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionOrder__10daAlldie_cFv.s" +int daAlldie_c::actionOrder() { + if (mEvtInfo.checkCommandDemoAccrpt()) { + mAction = ACT_EVENT; + } else { + fopAcM_orderOtherEventId(this, mEventIdx, getEventNo(), -1, 0, 1); + } + + return 1; } -#pragma pop /* 804D59A0-804D5A44 000200 00A4+00 2/2 0/0 0/0 .text actionEvent__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::actionEvent() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionEvent__10daAlldie_cFv.s" +int daAlldie_c::actionEvent() { + if (dComIfGp_evmng_endCheck(mEventIdx)) { + i_dComIfGp_getEvent().reset(); + + if (mNextEventIdx != -1) { + mAction = ACT_NEXT; + fopAcM_orderOtherEventId(this, mNextEventIdx, mMapToolID, -1, 0, 1); + } else { + mAction = ACT_WAIT; + mMapToolID = -1; + } + } + + return 1; } -#pragma pop /* 804D5A44-804D5B10 0002A4 00CC+00 1/1 0/0 0/0 .text actionNext__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::actionNext() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionNext__10daAlldie_cFv.s" +int daAlldie_c::actionNext() { + if (mEvtInfo.checkCommandDemoAccrpt()) { + mEventIdx = mNextEventIdx; + s8 roomNo = fopAcM_GetRoomNo(this); + + mNextEventIdx = -1; + dStage_MapEvent_dt_c* map_evt = dEvt_control_c::searchMapEventData(mMapToolID, roomNo); + + if (map_evt != NULL) { + mMapToolID = map_evt->field_0x5; + mNextEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, mMapToolID); + } else { + mMapToolID = -1; + } + + mAction = ACT_EVENT; + actionEvent(); + } else { + fopAcM_orderOtherEventId(this, mNextEventIdx, mMapToolID, -1, 0, 1); + } + + return 1; } -#pragma pop /* 804D5B10-804D5B8C 000370 007C+00 1/1 0/0 0/0 .text execute__10daAlldie_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlldie_c::execute() { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/execute__10daAlldie_cFv.s" +int daAlldie_c::execute() { + switch (mAction) { + case ACT_CHECK: + actionCheck(); + break; + case ACT_TIMER: + actionTimer(); + break; + case ACT_ORDER: + actionOrder(); + break; + case ACT_EVENT: + actionEvent(); + break; + case ACT_NEXT: + actionNext(); + break; + default: + actionWait(); + break; + } + + return 1; } -#pragma pop /* 804D5B8C-804D5B94 0003EC 0008+00 1/0 0/0 0/0 .text daAlldie_Draw__FP10daAlldie_c */ -static bool daAlldie_Draw(daAlldie_c* param_0) { - return true; +static int daAlldie_Draw(daAlldie_c*) { + return 1; } /* 804D5B94-804D5BB8 0003F4 0024+00 1/0 0/0 0/0 .text daAlldie_Execute__FP10daAlldie_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlldie_Execute(daAlldie_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Execute__FP10daAlldie_c.s" +static int daAlldie_Execute(daAlldie_c* i_this) { + i_this->execute(); + return 1; } -#pragma pop /* 804D5BB8-804D5BC0 000418 0008+00 1/0 0/0 0/0 .text daAlldie_IsDelete__FP10daAlldie_c */ -static bool daAlldie_IsDelete(daAlldie_c* param_0) { - return true; +static int daAlldie_IsDelete(daAlldie_c*) { + return 1; } /* 804D5BC0-804D5BF0 000420 0030+00 1/0 0/0 0/0 .text daAlldie_Delete__FP10daAlldie_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlldie_Delete(daAlldie_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Delete__FP10daAlldie_c.s" +static int daAlldie_Delete(daAlldie_c* i_this) { + i_this->~daAlldie_c(); + return 1; } -#pragma pop /* 804D5BF0-804D5D1C 000450 012C+00 1/0 0/0 0/0 .text daAlldie_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlldie_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Create__FP10fopAc_ac_c.s" +int daAlldie_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daAlldie_c(); + fopAcM_OnCondition(this, 8); + } + + s8 roomNo = fopAcM_GetRoomNo(this); + + if (!dComIfGs_isSwitch(getSwbit(), roomNo)) { + mAction = ACT_CHECK; + } else { + mAction = ACT_WAIT; + } + + mCollisionRot.z = 0; + mCollisionRot.x = 0; + current.angle.z = 0; + current.angle.x = 0; + + mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo()); + mMapToolID = -1; + mNextEventIdx = -1; + + dStage_MapEvent_dt_c* map_evt = dEvt_control_c::searchMapEventData(getEventNo(), roomNo); + if (map_evt != NULL) { + mMapToolID = map_evt->field_0x5; + mNextEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, mMapToolID); + } + + mEvtInfo.setEventId(mEventIdx); + mEvtInfo.setMapToolId(getEventNo()); + + return cPhs_COMPLEATE_e; +} + +static int daAlldie_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* ############################################################################################## */ /* 804D5D24-804D5D44 -00001 0020+00 1/0 0/0 0/0 .data l_daAlldie_Method */ SECTION_DATA static void* l_daAlldie_Method[8] = { - (void*)daAlldie_Create__FP10fopAc_ac_c, - (void*)daAlldie_Delete__FP10daAlldie_c, - (void*)daAlldie_Execute__FP10daAlldie_c, - (void*)daAlldie_IsDelete__FP10daAlldie_c, - (void*)daAlldie_Draw__FP10daAlldie_c, + (void*)daAlldie_Create, + (void*)daAlldie_Delete, + (void*)daAlldie_Execute, + (void*)daAlldie_IsDelete, + (void*)daAlldie_Draw, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/d_a_swc00/d_a_swc00.cpp b/rel/d/a/d_a_swc00/d_a_swc00.cpp index 061b7df3dbd..4c32ca25a01 100644 --- a/rel/d/a/d_a_swc00/d_a_swc00.cpp +++ b/rel/d/a/d_a_swc00/d_a_swc00.cpp @@ -6,47 +6,25 @@ #include "rel/d/a/d_a_swc00/d_a_swc00.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" // // Types: // -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daSwc00_c { - /* 805A15FC */ void execute(); +class daSwc00_c : public fopAc_ac_c { +public: + /* 805A15FC */ int execute(); /* 805A18E8 */ void event_proc_call(); /* 805A19A4 */ void actionWait(); /* 805A1A28 */ void actionOrderEvent(); /* 805A1A94 */ void actionEvent(); /* 805A1AF0 */ void actionDead(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -struct dEvent_manager_c { - /* 80047698 */ void getEventIdx(fopAc_ac_c*, u8); - /* 80047A78 */ void endCheck(s16); -}; - -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; + + /* 0x568 */ cXyz field_0x568; + /* 0x574 */ cXyz field_0x574; + /* 0x580 */ u16 mEventID; + /* 0x582 */ u8 mAction; }; // @@ -71,7 +49,6 @@ extern "C" extern void* g_profile_SWC00[12]; // External References: // -extern "C" void OSReport_Error(); extern "C" void mDoMtx_YrotS__FPA4_fs(); extern "C" void __ct__10fopAc_ac_cFv(); extern "C" void fopAcM_delete__FP10fopAc_ac_c(); @@ -84,12 +61,9 @@ extern "C" void reset__14dEvt_control_cFv(); extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc(); extern "C" void endCheck__16dEvent_manager_cFs(); extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void PSMTXMultVec(); extern "C" void __ptmf_scall(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 data_805A1F28[4]; // @@ -101,25 +75,71 @@ extern "C" extern u8 data_805A1F28[4]; SECTION_RODATA static f32 const lit_3708 = -100.0f; COMPILER_STRIP_GATE(0x805A1D94, &lit_3708); +inline u8 daSwc00_getCondition(daSwc00_c* i_this) { + return i_this->mCollisionRot.x; +} + +inline int daSwc00_getShape(daSwc00_c* i_this) { + return (fopAcM_GetParam(i_this) >> 0x12) & 3; +} + /* 805A13F8-805A15DC 000078 01E4+00 1/1 0/0 0/0 .text hitCheck__FP9daSwc00_c */ +// r30 / r31 swap +#ifdef NONMATCHING +static bool hitCheck(daSwc00_c* i_swc) { + fopAc_ac_c* playerAc = daPy_getPlayerActorClass(); + fopAc_ac_c* player; + + if (daSwc00_getCondition(i_swc) == 2) { + player = (fopAc_ac_c*)i_dComIfGp_getHorseActor(); + } else { + player = playerAc; + } + + if (player == NULL) { + return false; + } + + int shape = daSwc00_getShape(i_swc); + if (shape == 3) { + f32 xz_dist = fopAcM_searchActorDistanceXZ2(i_swc, player); + f32 y_dist = fopAcM_searchActorDistanceY(i_swc, player); + + if (xz_dist < i_swc->mScale.x && -100.0f < y_dist && y_dist < i_swc->mScale.y) { + return true; + } + } else if (shape == 0) { + cXyz tmp1 = i_swc->field_0x568 - i_swc->current.pos; + cXyz tmp2 = i_swc->field_0x574 - i_swc->current.pos; + cXyz player_dist = player->current.pos - i_swc->current.pos; + + mDoMtx_stack_c::YrotS(-i_swc->current.angle.y); + mDoMtx_stack_c::multVec(&player_dist, &player_dist); + + if ((tmp1.x <= player_dist.x && player_dist.x <= tmp2.x) && + (tmp1.y <= player_dist.y && player_dist.y <= tmp2.y) && + (tmp1.z <= player_dist.z && player_dist.z <= tmp2.z)) { + return true; + } + } + + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void hitCheck(daSwc00_c* param_0) { +static asm bool hitCheck(daSwc00_c* param_0) { nofralloc #include "asm/rel/d/a/d_a_swc00/d_a_swc00/hitCheck__FP9daSwc00_c.s" } #pragma pop +#endif /* 805A15DC-805A15FC 00025C 0020+00 1/0 0/0 0/0 .text daSwc00_Execute__FP9daSwc00_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daSwc00_Execute(daSwc00_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_swc00/d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s" +static int daSwc00_Execute(daSwc00_c* i_this) { + return i_this->execute(); } -#pragma pop /* ############################################################################################## */ /* 805A1DAC-805A1DAC 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -127,6 +147,7 @@ static asm void daSwc00_Execute(daSwc00_c* param_0) { #pragma force_active on SECTION_DEAD static char const* const stringBase_805A1DAC = "領域スイッチ:引数0が不正値<%d>です\n"; + // "Area Switch: arg 0 is an invalid value <%d>\n"; #pragma pop /* 805A1DD4-805A1DE0 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ @@ -171,7 +192,7 @@ SECTION_DATA static void* lit_3812[16] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daSwc00_c::execute() { +asm int daSwc00_c::execute() { nofralloc #include "asm/rel/d/a/d_a_swc00/d_a_swc00/execute__9daSwc00_cFv.s" } diff --git a/rel/d/a/d_a_tboxSw/d_a_tboxSw.cpp b/rel/d/a/d_a_tboxSw/d_a_tboxSw.cpp index 5b3b0a667d4..367c6747802 100644 --- a/rel/d/a/d_a_tboxSw/d_a_tboxSw.cpp +++ b/rel/d/a/d_a_tboxSw/d_a_tboxSw.cpp @@ -6,145 +6,85 @@ #include "rel/d/a/d_a_tboxSw/d_a_tboxSw.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daTboxSw_c { - /* 80D66858 */ bool Create(); - /* 80D66860 */ void create(); - /* 80D668C8 */ void execute(); - /* 80D66938 */ bool draw(); - /* 80D66940 */ bool _delete(); -}; - -struct dSv_memBit_c { - /* 800347E8 */ void isTbox(int) const; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); -}; - -// -// Forward References: -// - -extern "C" bool Create__10daTboxSw_cFv(); -extern "C" void create__10daTboxSw_cFv(); -extern "C" void execute__10daTboxSw_cFv(); -extern "C" bool draw__10daTboxSw_cFv(); -extern "C" bool _delete__10daTboxSw_cFv(); -extern "C" static void daTboxSw_Draw__FP10daTboxSw_c(); -extern "C" static void daTboxSw_Execute__FP10daTboxSw_c(); -extern "C" static void daTboxSw_Delete__FP10daTboxSw_c(); -extern "C" static void daTboxSw_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_TBOX_SW[12]; +#include "d/com/d_com_inf_game.h" // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void isTbox__12dSv_memBit_cCFi(); -extern "C" void onSwitch__10dSv_info_cFii(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // /* 80D66858-80D66860 000078 0008+00 1/1 0/0 0/0 .text Create__10daTboxSw_cFv */ -bool daTboxSw_c::Create() { - return true; +int daTboxSw_c::Create() { + return 1; } /* 80D66860-80D668C8 000080 0068+00 1/1 0/0 0/0 .text create__10daTboxSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTboxSw_c::create() { - nofralloc -#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/create__10daTboxSw_cFv.s" +int daTboxSw_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTboxSw_c(); + fopAcM_OnCondition(this, 8); + } + + if (!Create()) { + return cPhs_ERROR_e; + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D668C8-80D66938 0000E8 0070+00 1/1 0/0 0/0 .text execute__10daTboxSw_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTboxSw_c::execute() { - nofralloc -#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/execute__10daTboxSw_cFv.s" +int daTboxSw_c::execute() { + if (dComIfGs_isTbox(daTboxSw_prm::getTboxNo(this))) { + dComIfGs_onSwitch(daTboxSw_prm::getSwNo(this), fopAcM_GetHomeRoomNo(this)); + fopAcM_delete(this); + } + + return 1; } -#pragma pop /* 80D66938-80D66940 000158 0008+00 1/1 0/0 0/0 .text draw__10daTboxSw_cFv */ -bool daTboxSw_c::draw() { - return true; +int daTboxSw_c::draw() { + return 1; } /* 80D66940-80D66948 000160 0008+00 1/1 0/0 0/0 .text _delete__10daTboxSw_cFv */ -bool daTboxSw_c::_delete() { - return true; +int daTboxSw_c::_delete() { + return 1; } /* 80D66948-80D66968 000168 0020+00 1/0 0/0 0/0 .text daTboxSw_Draw__FP10daTboxSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTboxSw_Draw(daTboxSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Draw__FP10daTboxSw_c.s" +static int daTboxSw_Draw(daTboxSw_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80D66968-80D66988 000188 0020+00 1/0 0/0 0/0 .text daTboxSw_Execute__FP10daTboxSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTboxSw_Execute(daTboxSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Execute__FP10daTboxSw_c.s" +static int daTboxSw_Execute(daTboxSw_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D66988-80D669A8 0001A8 0020+00 1/0 0/0 0/0 .text daTboxSw_Delete__FP10daTboxSw_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTboxSw_Delete(daTboxSw_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Delete__FP10daTboxSw_c.s" +static int daTboxSw_Delete(daTboxSw_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 80D669A8-80D669C8 0001C8 0020+00 1/0 0/0 0/0 .text daTboxSw_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTboxSw_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Create__FP10fopAc_ac_c.s" +static int daTboxSw_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* ############################################################################################## */ /* 80D669D0-80D669F0 -00001 0020+00 1/0 0/0 0/0 .data l_daTboxSw_Method */ SECTION_DATA static void* l_daTboxSw_Method[8] = { - (void*)daTboxSw_Create__FP10fopAc_ac_c, - (void*)daTboxSw_Delete__FP10daTboxSw_c, - (void*)daTboxSw_Execute__FP10daTboxSw_c, + (void*)daTboxSw_Create, + (void*)daTboxSw_Delete, + (void*)daTboxSw_Execute, (void*)NULL, - (void*)daTboxSw_Draw__FP10daTboxSw_c, + (void*)daTboxSw_Draw, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp b/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp index 035d95a1c5f..fc951ee7e74 100644 --- a/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp +++ b/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp @@ -148,7 +148,7 @@ extern "C" void checkCommandDemoAccrpt__11dEvt_info_cFv(); extern "C" void __ct__4cXyzFv(); extern "C" static void fopAcM_SearchByName__Fs(); extern "C" static void fopAcM_SearchByID__FUi(unsigned int); -extern "C" static void dComIfGp_getHorseActor__Fv(); +extern "C" static daHorse_c* dComIfGp_getHorseActor__Fv(); extern "C" static void dComIfGp_getPlayer__Fi(int); extern "C" static void dComIfGp_getCamera__Fi(int); extern "C" static void dComIfGp_getPlayerCameraID__Fi(); @@ -4752,7 +4752,7 @@ extern "C" static asm void fopAcM_SearchByID__FUi(unsigned int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getHorseActor() { +static asm daHorse_c* dComIfGp_getHorseActor__Fv() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/dComIfGp_getHorseActor__Fv.s" } @@ -4782,7 +4782,7 @@ static asm void dComIfGp_getCamera__Fi(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getPlayerCameraID(int param_0) { +static asm s8 dComIfGp_getPlayerCameraID(int param_0) { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/dComIfGp_getPlayerCameraID__Fi.s" } @@ -4975,7 +4975,7 @@ asm void dEvt_control_c::startCheckSkipEdge(void* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getEvent() { +static asm dEvt_control_c& dComIfGp_getEvent() { nofralloc #include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/dComIfGp_getEvent__Fv.s" } diff --git a/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.cpp b/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.cpp index 01faa093708..0bc51a37ab5 100644 --- a/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.cpp +++ b/rel/d/a/kytag/d_a_kytag14/d_a_kytag14.cpp @@ -1,64 +1,18 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_kytag14 -// +/** + * d_a_kytag14.cpp + * Savmem + * Sets savefile spawn location + */ #include "rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct kytag14_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dSv_player_return_place_c { - /* 80032D1C */ void set(char const*, s8, u8); -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -// -// Forward References: -// - -extern "C" static bool daKytag14_Draw__FP13kytag14_class(); -extern "C" static void daKytag14_Execute__FP13kytag14_class(); -extern "C" static bool daKytag14_IsDelete__FP13kytag14_class(); -extern "C" static bool daKytag14_Delete__FP13kytag14_class(); -extern "C" static void daKytag14_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_KYTAG14[12]; // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void set__25dSv_player_return_place_cFPCcScUc(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_27(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; // // Declarations: @@ -66,49 +20,104 @@ extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; /* 80529998-805299A0 000078 0008+00 1/0 0/0 0/0 .text daKytag14_Draw__FP13kytag14_class */ -static bool daKytag14_Draw(kytag14_class* param_0) { - return true; +static int daKytag14_Draw(kytag14_class*) { + return 1; } /* 805299A0-80529B34 000080 0194+00 1/0 0/0 0/0 .text daKytag14_Execute__FP13kytag14_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag14_Execute(kytag14_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Execute__FP13kytag14_class.s" +static int daKytag14_Execute(kytag14_class* i_this) { + BOOL event1_set = true; + BOOL event2_unset = true; + BOOL switch1_set = true; + BOOL switch2_unset = true; + + if (dComIfGs_isTmpBit(0x1301)) { + return 1; + } + + if (i_this->mEventID1 != 0xFFFF) { + if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { + event1_set = true; + } else { + event1_set = false; + } + } + + if (i_this->mEventID2 != 0xFFFF) { + if (!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { + event2_unset = true; + } else { + event2_unset = false; + } + } + + if (i_this->mSwitchNo1 != 0xFF) { + s32 stayNo = dComIfGp_roomControl_getStayNo(); + if (dComIfGs_isSwitch(i_this->mSwitchNo1, stayNo)) { + switch1_set = true; + } else { + switch1_set = false; + } + } + + if (i_this->mSwitchNo2 != 0xFF) { + s32 stayNo = dComIfGp_roomControl_getStayNo(); + if (!dComIfGs_isSwitch(i_this->mSwitchNo2, stayNo)) { + switch2_unset = true; + } else { + switch2_unset = false; + } + } + + if (event1_set == true && event2_unset == true && switch1_set == true && switch2_unset == true) { + g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().set( + dComIfGp_getStartStageName(), i_this->mSaveRoomNo, i_this->mSavePoint); + } + + return 1; } -#pragma pop /* 80529B34-80529B3C 000214 0008+00 1/0 0/0 0/0 .text daKytag14_IsDelete__FP13kytag14_class */ -static bool daKytag14_IsDelete(kytag14_class* param_0) { - return true; +static int daKytag14_IsDelete(kytag14_class*) { + return 1; } /* 80529B3C-80529B44 00021C 0008+00 1/0 0/0 0/0 .text daKytag14_Delete__FP13kytag14_class */ -static bool daKytag14_Delete(kytag14_class* param_0) { - return true; +static int daKytag14_Delete(kytag14_class*) { + return 1; } /* 80529B44-80529BE0 000224 009C+00 1/0 0/0 0/0 .text daKytag14_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag14_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Create__FP10fopAc_ac_c.s" +static int daKytag14_Create(fopAc_ac_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) kytag14_class(); + fopAcM_OnCondition(i_this, 8); + } + kytag14_class* kytag = static_cast(i_this); + + kytag->mSavePoint = fopAcM_GetParam(kytag); + kytag->mSaveRoomNo = (fopAcM_GetParam(kytag) >> 8) & 0xFF; + kytag->mEventID1 = kytag->current.angle.x; + kytag->mEventID2 = kytag->current.angle.y; + kytag->mSwitchNo1 = kytag->current.angle.z; + kytag->mSwitchNo2 = (kytag->current.angle.z >> 8) & 0xFF; + + if (kytag->orig.mRoomNo != -1) { + kytag->mSaveRoomNo = kytag->orig.mRoomNo; + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* ############################################################################################## */ /* 80529BE8-80529C08 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag14_Method */ SECTION_DATA static void* l_daKytag14_Method[8] = { - (void*)daKytag14_Create__FP10fopAc_ac_c, - (void*)daKytag14_Delete__FP13kytag14_class, - (void*)daKytag14_Execute__FP13kytag14_class, - (void*)daKytag14_IsDelete__FP13kytag14_class, - (void*)daKytag14_Draw__FP13kytag14_class, + (void*)daKytag14_Create, + (void*)daKytag14_Delete, + (void*)daKytag14_Execute, + (void*)daKytag14_IsDelete, + (void*)daKytag14_Draw, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.cpp b/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.cpp index cf68a8d26a9..016702e8cab 100644 --- a/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.cpp +++ b/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.cpp @@ -4,132 +4,81 @@ // #include "rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagGstart_c { - /* 805A3478 */ void create(); - /* 805A3514 */ ~daTagGstart_c(); - /* 805A3590 */ void execute(); -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -// -// Forward References: -// - -extern "C" void create__13daTagGstart_cFv(); -extern "C" static void daTagGstart_Create__FP10fopAc_ac_c(); -extern "C" void __dt__13daTagGstart_cFv(); -extern "C" static void daTagGstart_Delete__FP13daTagGstart_c(); -extern "C" void execute__13daTagGstart_cFv(); -extern "C" static void daTagGstart_Execute__FP13daTagGstart_c(); -extern "C" static bool daTagGstart_Draw__FP13daTagGstart_c(); -extern "C" extern void* g_profile_Tag_Gstart[12]; - // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void __dl__FPv(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // /* 805A3478-805A34F4 000078 007C+00 1/1 0/0 0/0 .text create__13daTagGstart_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagGstart_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/create__13daTagGstart_cFv.s" +int daTagGstart_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagGstart_c(); + fopAcM_OnCondition(this, 8); + } + + mSwNo = fopAcM_GetParam(this); + mSwNo2 = fopAcM_GetParam(this) >> 8; + field_0x56a = fopAcM_GetParam(this) >> 0x10; + mType = (fopAcM_GetParam(this) >> 0x18) & 0xF; + + return cPhs_COMPLEATE_e; } -#pragma pop /* 805A34F4-805A3514 0000F4 0020+00 1/0 0/0 0/0 .text daTagGstart_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagGstart_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Create__FP10fopAc_ac_c.s" +static int daTagGstart_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 805A3514-805A3568 000114 0054+00 1/1 0/0 0/0 .text __dt__13daTagGstart_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagGstart_c::~daTagGstart_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/__dt__13daTagGstart_cFv.s" -} -#pragma pop +daTagGstart_c::~daTagGstart_c() {} /* 805A3568-805A3590 000168 0028+00 1/0 0/0 0/0 .text daTagGstart_Delete__FP13daTagGstart_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagGstart_Delete(daTagGstart_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Delete__FP13daTagGstart_c.s" +static int daTagGstart_Delete(daTagGstart_c* i_this) { + i_this->~daTagGstart_c(); + return 1; } -#pragma pop /* 805A3590-805A3658 000190 00C8+00 1/1 0/0 0/0 .text execute__13daTagGstart_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagGstart_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/execute__13daTagGstart_cFv.s" +int daTagGstart_c::execute() { + if ((mSwNo == 0xFF || dComIfGs_isSwitch(mSwNo, fopAcM_GetHomeRoomNo(this))) && + (mSwNo2 == 0xFF || !dComIfGs_isSwitch(mSwNo2, fopAcM_GetHomeRoomNo(this)))) { + if (mType != 0 || dComIfGp_getLinkPlayer()->i_checkWolf()) { + dComIfGp_getLinkPlayer()->onSceneChangeDead(field_0x56a, fopAcM_GetRoomNo(this)); + } + } + + return 1; } -#pragma pop /* 805A3658-805A3678 000258 0020+00 1/0 0/0 0/0 .text daTagGstart_Execute__FP13daTagGstart_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagGstart_Execute(daTagGstart_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Execute__FP13daTagGstart_c.s" +static int daTagGstart_Execute(daTagGstart_c* i_this) { + return i_this->execute(); } -#pragma pop /* 805A3678-805A3680 000278 0008+00 1/0 0/0 0/0 .text daTagGstart_Draw__FP13daTagGstart_c */ -static bool daTagGstart_Draw(daTagGstart_c* param_0) { - return true; +static int daTagGstart_Draw(daTagGstart_c*) { + return 1; } /* ############################################################################################## */ /* 805A3688-805A36A8 -00001 0020+00 1/0 0/0 0/0 .data l_daTagGstart_Method */ SECTION_DATA static void* l_daTagGstart_Method[8] = { - (void*)daTagGstart_Create__FP10fopAc_ac_c, - (void*)daTagGstart_Delete__FP13daTagGstart_c, - (void*)daTagGstart_Execute__FP13daTagGstart_c, + (void*)daTagGstart_Create, + (void*)daTagGstart_Delete, + (void*)daTagGstart_Execute, (void*)NULL, - (void*)daTagGstart_Draw__FP13daTagGstart_c, + (void*)daTagGstart_Draw, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp b/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp index 7740d4f0ffe..50d9b5f318a 100644 --- a/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp +++ b/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp @@ -4,211 +4,202 @@ // #include "rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagHstop_c { - /* 805A43EC */ void create(); - /* 805A45F8 */ ~daTagHstop_c(); - /* 805A46B8 */ void setActive(); - /* 805A475C */ void execute(); - - static u8 m_top[4 + 4 /* padding */]; - static u8 m_msgFlow[76]; -}; - -struct daPy_py_c { - /* 8015F660 */ void checkRoomRestartStart(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dMsgFlow_c { - /* 80249F00 */ dMsgFlow_c(); - /* 80249F48 */ ~dMsgFlow_c(); - /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); - /* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int); -}; - -struct dMeter2Info_c { - /* 8021C11C */ void setFloatingFlow(u16, s16, bool); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -// -// Forward References: -// - -extern "C" void create__12daTagHstop_cFv(); -extern "C" static void daTagHstop_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daTagHstop_cFv(); -extern "C" static void daTagHstop_Delete__FP12daTagHstop_c(); -extern "C" void setActive__12daTagHstop_cFv(); -extern "C" void execute__12daTagHstop_cFv(); -extern "C" static void daTagHstop_Execute__FP12daTagHstop_c(); -extern "C" static bool daTagHstop_Draw__FP12daTagHstop_c(); -extern "C" void __sinit_d_a_tag_hstop_cpp(); -extern "C" extern void* g_profile_Tag_Hstop[12]; -extern "C" u8 m_msgFlow__12daTagHstop_c[76]; +#include "rel/d/a/d_a_horse/d_a_horse.h" // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void checkRoomRestartStart__9daPy_py_cFv(); -extern "C" void setFloatingFlow__13dMeter2Info_cFUssb(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void __dl__FPv(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_meter2_info[248]; -extern "C" u8 m_top__12daTagHstop_c[4 + 4 /* padding */]; -extern "C" void __register_global_object(); // // Declarations: // -/* ############################################################################################## */ -/* 805A4B20-805A4B24 000000 0004+00 1/1 0/0 0/0 .rodata @3782 */ -SECTION_RODATA static f32 const lit_3782 = 100.0f; -COMPILER_STRIP_GATE(0x805A4B20, &lit_3782); - /* 805A43EC-805A45D8 0000EC 01EC+00 1/1 0/0 0/0 .text create__12daTagHstop_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHstop_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/create__12daTagHstop_cFv.s" +int daTagHstop_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagHstop_c(); + fopAcM_OnCondition(this, 8); + } + + mScale.x *= 100.0f; + mScale.y *= 100.0f; + mScale.z *= 100.0f; + + if (m_top != NULL) { + daTagHstop_c* last = m_top; + + while (last->mNext != NULL) { + last = last->mNext; + } + + last->mNext = this; + mPrev = last; + } else { + m_top = this; + } + + mPrm0 = fopAcM_GetParam(this); + mPrm1 = (fopAcM_GetParam(this) >> 8) & 0xF; + + if (mPrm1 == 15) { + mPrm1 = 0; + } + + setActive(); + + if (mPrm1 == 2) { + if (daPy_py_c::checkRoomRestartStart()) { + if (!dComIfGs_isSwitch(0x8A, fopAcM_GetHomeRoomNo(this))) { + dComIfGs_onSwitch(0x8A, fopAcM_GetHomeRoomNo(this)); + } else if (!dComIfGs_isSwitch(0x8B, fopAcM_GetHomeRoomNo(this))) { + dComIfGs_onSwitch(0x8B, fopAcM_GetHomeRoomNo(this)); + } else if (!dComIfGs_isSwitch(0x8C, fopAcM_GetHomeRoomNo(this))) { + dComIfGs_onSwitch(0x8C, fopAcM_GetHomeRoomNo(this)); + } + } + + if (dComIfGs_isSwitch(0x8C, fopAcM_GetHomeRoomNo(this))) { + field_0x574 = 0; + } else { + field_0x574 = 1200; + } + } else { + field_0x574 = 0; + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* 805A45D8-805A45F8 0002D8 0020+00 1/0 0/0 0/0 .text daTagHstop_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHstop_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Create__FP10fopAc_ac_c.s" +static int daTagHstop_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 805A45F8-805A4690 0002F8 0098+00 1/1 0/0 0/0 .text __dt__12daTagHstop_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagHstop_c::~daTagHstop_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__dt__12daTagHstop_cFv.s" +daTagHstop_c::~daTagHstop_c() { + if (mPrev != NULL) { + mPrev->mNext = mNext; + } + + if (mNext != NULL) { + mNext->mPrev = mPrev; + } + + if (m_top == this) { + m_top = mNext; + } } -#pragma pop /* 805A4690-805A46B8 000390 0028+00 1/0 0/0 0/0 .text daTagHstop_Delete__FP12daTagHstop_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHstop_Delete(daTagHstop_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Delete__FP12daTagHstop_c.s" +static int daTagHstop_Delete(daTagHstop_c* i_this) { + static_cast(i_this)->~daTagHstop_c(); + return 1; } -#pragma pop /* 805A46B8-805A475C 0003B8 00A4+00 2/2 0/0 0/0 .text setActive__12daTagHstop_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHstop_c::setActive() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/setActive__12daTagHstop_cFv.s" +void daTagHstop_c::setActive() { + if (mPrm0 == 0xFF || mPrm1 == 2 || + (mPrm1 == 0 && dComIfGs_isSwitch(mPrm0, fopAcM_GetHomeRoomNo(this))) || + (mPrm1 == 1 && !dComIfGs_isSwitch(mPrm0, fopAcM_GetHomeRoomNo(this)))) { + mActive = true; + } else { + mActive = false; + } } -#pragma pop - -/* ############################################################################################## */ -/* 805A4B80-805A4B8C 000008 000C+00 1/1 0/0 0/0 .bss @3686 */ -static u8 lit_3686[12]; /* 805A4B8C-805A4BD8 000014 004C+00 2/2 0/0 0/0 .bss m_msgFlow__12daTagHstop_c */ -u8 daTagHstop_c::m_msgFlow[76]; +dMsgFlow_c daTagHstop_c::m_msgFlow; /* 805A475C-805A4AA8 00045C 034C+00 1/1 0/0 0/0 .text execute__12daTagHstop_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHstop_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/execute__12daTagHstop_cFv.s" +int daTagHstop_c::execute() { + if (mEvtInfo.checkCommandTalk()) { + if (field_0x573 == 2) { + m_msgFlow.init(this, (u16)mCollisionRot.z, 0, NULL); + field_0x573 = 3; + } else if (m_msgFlow.doFlow(this, NULL, 0)) { + i_dComIfGp_getEvent().reset(); + field_0x573 = 0; + + s16 arrow_num = dComIfGp_getItemMaxArrowNumCount(); + dComIfGp_setItemArrowNumCount(arrow_num); + dComIfGs_onSwitch(0x8D, fopAcM_GetHomeRoomNo(this)); + } + } else { + if (field_0x574 != 0) { + if (dComIfGs_isSwitch(0x8F, fopAcM_GetHomeRoomNo(this))) { + field_0x574 = 0; + } else if (dComIfGp_getLinkPlayer()->checkSingleBoarBattleSecondBowReady()) { + dComIfGs_onSwitch(0x8F, fopAcM_GetHomeRoomNo(this)); + field_0x574 = 0; + } else { + field_0x574--; + } + } + + setActive(); + + if (field_0x573) { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (mPrm1 != 2 || dComIfGs_getArrowNum() != 0 || horse_p == NULL) { + field_0x573 = 0; + } else if (field_0x573 == 1) { + if (i_dComIfGp_getHorseActor()->checkTurnStand() && + !i_dComIfGp_getHorseActor()->checkTurnStandCamera()) { + field_0x573 = 2; + } + } else if (field_0x573 == 2 && !i_dComIfGp_getHorseActor()->checkTurnStand()) { + fopAcM_orderSpeakEvent(this, 0, 0); + mEvtInfo.i_onCondition(1); + } + } else if (mPrm1 == 2 && !i_dComIfGp_event_runCheck()) { + if (dComIfGs_getArrowNum() == 0 && + !dComIfGs_isSwitch(0x8D, fopAcM_GetHomeRoomNo(this))) { + dComIfGs_onSwitch(0x8D, fopAcM_GetHomeRoomNo(this)); + dMeter2Info_setFloatingFlow(43, 90, true); + + if (!dComIfGs_isSwitch(0x8F, fopAcM_GetHomeRoomNo(this))) { + field_0x574 = 1200; + dComIfGs_offSwitch(0x8A, fopAcM_GetHomeRoomNo(this)); + dComIfGs_offSwitch(0x8B, fopAcM_GetHomeRoomNo(this)); + dComIfGs_offSwitch(0x8C, fopAcM_GetHomeRoomNo(this)); + } + } else if (field_0x574 == 0 && !dComIfGs_isSwitch(0x8F, fopAcM_GetHomeRoomNo(this))) { + dComIfGs_onSwitch(0x8F, fopAcM_GetHomeRoomNo(this)); + dComIfGs_onSwitch(0x8E, fopAcM_GetHomeRoomNo(this)); + } + } + } + + return 1; } -#pragma pop /* 805A4AA8-805A4AC8 0007A8 0020+00 1/0 0/0 0/0 .text daTagHstop_Execute__FP12daTagHstop_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHstop_Execute(daTagHstop_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Execute__FP12daTagHstop_c.s" +static int daTagHstop_Execute(daTagHstop_c* i_this) { + return i_this->execute(); } -#pragma pop /* 805A4AC8-805A4AD0 0007C8 0008+00 1/0 0/0 0/0 .text daTagHstop_Draw__FP12daTagHstop_c */ -static bool daTagHstop_Draw(daTagHstop_c* param_0) { - return true; +static int daTagHstop_Draw(daTagHstop_c*) { + return 1; } -/* 805A4AD0-805A4B0C 0007D0 003C+00 0/0 1/0 0/0 .text __sinit_d_a_tag_hstop_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_a_tag_hstop_cpp() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x805A4AD0, __sinit_d_a_tag_hstop_cpp); -#pragma pop - /* ############################################################################################## */ /* 805A4B24-805A4B44 -00001 0020+00 1/0 0/0 0/0 .data l_daTagHstop_Method */ SECTION_DATA static void* l_daTagHstop_Method[8] = { - (void*)daTagHstop_Create__FP10fopAc_ac_c, - (void*)daTagHstop_Delete__FP12daTagHstop_c, - (void*)daTagHstop_Execute__FP12daTagHstop_c, + (void*)daTagHstop_Create, + (void*)daTagHstop_Delete, + (void*)daTagHstop_Execute, (void*)NULL, - (void*)daTagHstop_Draw__FP12daTagHstop_c, + (void*)daTagHstop_Draw, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.cpp b/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.cpp index fc472c08b2f..a9ade424690 100644 --- a/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.cpp +++ b/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction.cpp @@ -7,64 +7,38 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagInst_c {}; - -// -// Forward References: -// - -extern "C" static void daTagInst_Create__FP10fopAc_ac_c(); -extern "C" static void daTagInst_Delete__FP11daTagInst_c(); -extern "C" extern void* g_profile_Tag_Instruction[12]; - // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; // // Declarations: // /* 80D59AF8-80D59B48 000078 0050+00 1/0 0/0 0/0 .text daTagInst_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagInst_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Create__FP10fopAc_ac_c.s" +static int daTagInst_Create(fopAc_ac_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) daTagInst_c(); + fopAcM_OnCondition(i_this, 8); + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D59B48-80D59B78 0000C8 0030+00 1/0 0/0 0/0 .text daTagInst_Delete__FP11daTagInst_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagInst_Delete(daTagInst_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Delete__FP11daTagInst_c.s" +static int daTagInst_Delete(daTagInst_c* i_this) { + i_this->~daTagInst_c(); + return 1; } -#pragma pop /* ############################################################################################## */ /* 80D59B80-80D59BA0 -00001 0020+00 1/0 0/0 0/0 .data l_daTagInst_Method */ SECTION_DATA static void* l_daTagInst_Method[8] = { - (void*)daTagInst_Create__FP10fopAc_ac_c, - (void*)daTagInst_Delete__FP11daTagInst_c, + (void*)daTagInst_Create, + (void*)daTagInst_Delete, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 6183ed4c53b..787cc79044a 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -572,6 +572,7 @@ extern "C" static void dComIfGp_getRStatus__Fv(); extern "C" void checkAttentionLock__9daAlink_cFv(); extern "C" void dComIfGp_setItemLifeCount__FfUc(f32, u8); extern "C" static void cMtx_multVec__FPA4_CfPC3VecP3Vec(); +static void cMtx_multVec(f32 const (*param_0)[4], Vec const* param_1, Vec* param_2); extern "C" void getAnmMtx__8J3DModelFi(); extern "C" void setBaseTRMtx__8J3DModelFPA4_f(); extern "C" void checkFmChainGrabAnime__9daAlink_cCFv(); @@ -4971,19 +4972,22 @@ COMPILER_STRIP_GATE(0x8038FB5C, &l_wolfFootOnFrame); /* 8038FBBC-8038FBD4 01C21C 0018+00 1/1 0/0 0/0 .rodata l_insectNameList */ SECTION_RODATA static s16 const l_insectNameList[12] = { - 0x0140, 0x0141, 0x0142, 0x0149, 0x0143, 0x0144, 0x0145, 0x0146, 0x014B, 0x014A, 0x0147, 0x0148, + PROC_Obj_Kabuto, PROC_Obj_Cho, PROC_Obj_Kuw, + PROC_Obj_Batta, PROC_Obj_Nan, PROC_Obj_Dan, + PROC_Obj_Kam, PROC_Obj_Ten, PROC_Obj_Kat, + PROC_Obj_Tombo, PROC_Obj_Ari, PROC_Obj_Kag, }; COMPILER_STRIP_GATE(0x8038FBBC, &l_insectNameList); /* 8038FBD4-8038FC24 01C234 0050+00 0/1 0/0 0/0 .rodata m_mainBckShield__9daAlink_c */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlink_c::m_mainBckShield[80] = { - 0x00, 0x25, 0x00, 0x25, 0x00, 0x23, 0x00, 0x23, 0x00, 0x12, 0x00, 0x1B, 0x00, 0x10, 0x00, 0x1B, - 0x00, 0x21, 0x00, 0x21, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x2C, 0x00, 0x2C, - 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x30, 0x00, 0x28, 0x00, 0x28, - 0x00, 0x32, 0x00, 0x32, 0x00, 0x2A, 0x00, 0x2A, 0x02, 0x74, 0x00, 0x1B, 0x00, 0x20, 0x00, 0x1B, - 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x26, 0x00, 0x26, 0x02, 0x77, 0x00, 0x1B, 0x00, 0xCD, 0x00, 0x1B, +SECTION_RODATA daAlink_BckData const daAlink_c::m_mainBckShield[20] = { + {0x0025, 0x0025}, {0x0023, 0x0023}, {0x0012, 0x001B}, {0x0010, 0x001B}, + {0x0021, 0x0021}, {0x001E, 0x001E}, {0x003C, 0x003C}, {0x002C, 0x002C}, + {0x003E, 0x003E}, {0x002E, 0x002E}, {0x0030, 0x0030}, {0x0028, 0x0028}, + {0x0032, 0x0032}, {0x002A, 0x002A}, {0x0274, 0x001B}, {0x0020, 0x001B}, + {0x001B, 0x001B}, {0x0026, 0x0026}, {0x0277, 0x001B}, {0x00CD, 0x001B}, }; COMPILER_STRIP_GATE(0x8038FBD4, &daAlink_c::m_mainBckShield); #pragma pop @@ -4991,9 +4995,9 @@ COMPILER_STRIP_GATE(0x8038FBD4, &daAlink_c::m_mainBckShield); /* 8038FC24-8038FC38 01C284 0014+00 0/1 0/0 0/0 .rodata m_mainBckSword__9daAlink_c */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlink_c::m_mainBckSword[20] = { - 0x00, 0x1A, 0x00, 0x1A, 0x00, 0x1C, 0x00, 0x1C, 0x02, 0x77, - 0x02, 0x77, 0x00, 0xCD, 0x00, 0xCD, 0x02, 0x43, 0x02, 0x44, +SECTION_RODATA daAlink_BckData const daAlink_c::m_mainBckSword[5] = { + {0x001A, 0x001A}, {0x001C, 0x001C}, + {0x0277, 0x0277}, {0x00CD, 0x00CD}, {0x0243, 0x0244}, }; COMPILER_STRIP_GATE(0x8038FC24, &daAlink_c::m_mainBckSword); #pragma pop @@ -5001,14 +5005,14 @@ COMPILER_STRIP_GATE(0x8038FC24, &daAlink_c::m_mainBckSword); /* 8038FC38-8038FCA8 01C298 0070+00 0/1 0/0 0/0 .rodata m_mainBckFishing__9daAlink_c */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlink_c::m_mainBckFishing[112] = { - 0x00, 0x25, 0x02, 0x73, 0x00, 0x23, 0x00, 0xC8, 0x00, 0x12, 0x02, 0x73, 0x00, 0x10, 0x00, 0xC8, - 0x00, 0x21, 0x02, 0x73, 0x00, 0x1E, 0x00, 0xC8, 0x00, 0x3C, 0x02, 0x73, 0x00, 0x2C, 0x02, 0x73, - 0x00, 0x3E, 0x02, 0x73, 0x00, 0x2E, 0x02, 0x73, 0x00, 0x30, 0x00, 0xC8, 0x00, 0x28, 0x00, 0xC8, - 0x00, 0x32, 0x00, 0xC8, 0x00, 0x2A, 0x00, 0xC8, 0x02, 0x74, 0x02, 0x73, 0x00, 0x20, 0x02, 0x73, - 0x00, 0x1A, 0x02, 0x73, 0x00, 0x1C, 0x02, 0x73, 0x02, 0x77, 0x02, 0x73, 0x00, 0xCD, 0x00, 0xC8, - 0x02, 0x43, 0x02, 0x44, 0x02, 0x33, 0x02, 0x73, 0x02, 0x34, 0x02, 0x73, 0x02, 0x33, 0x02, 0x73, - 0x02, 0x34, 0x02, 0x73, 0x02, 0x6A, 0x02, 0x73, 0x02, 0x56, 0x02, 0x73, 0x02, 0x57, 0x02, 0x73, +SECTION_RODATA daAlink_BckData const daAlink_c::m_mainBckFishing[28] = { + {0x0025, 0x0273}, {0x0023, 0x00C8}, {0x0012, 0x0273}, {0x0010, 0x00C8}, + {0x0021, 0x0273}, {0x001E, 0x00C8}, {0x003C, 0x0273}, {0x002C, 0x0273}, + {0x003E, 0x0273}, {0x002E, 0x0273}, {0x0030, 0x00C8}, {0x0028, 0x00C8}, + {0x0032, 0x00C8}, {0x002A, 0x00C8}, {0x0274, 0x0273}, {0x0020, 0x0273}, + {0x001A, 0x0273}, {0x001C, 0x0273}, {0x0277, 0x0273}, {0x00CD, 0x00C8}, + {0x0243, 0x0244}, {0x0233, 0x0273}, {0x0234, 0x0273}, {0x0233, 0x0273}, + {0x0234, 0x0273}, {0x026A, 0x0273}, {0x0256, 0x0273}, {0x0257, 0x0273}, }; COMPILER_STRIP_GATE(0x8038FC38, &daAlink_c::m_mainBckFishing); #pragma pop @@ -6446,46 +6450,40 @@ JKRHeap* daAlink_c::setItemHeap() { return mItemHeap[field_0x2fa0].setAnimeHeap(); } +/** + * Sets the animation archive ID and resource ID based on combined ID + * The left most digit is the arcNo if not 0 + * The latter 3 digits are the resource ID + */ /* 800A3CE4-800A3D0C 09E624 0028+00 4/4 0/0 0/0 .text setIdxMask__9daAlink_cFPUsPUs */ -void daAlink_c::setIdxMask(u16* param_0, u16* param_1) { - if (*param_0 == 0xFFFF) { - u16 tmp = (*param_1 >> 12) & 0xF; - *param_1 &= 0xFFF; +void daAlink_c::setIdxMask(u16* o_arcNo, u16* o_resID) { + if (*o_arcNo == 0xFFFF) { + u16 arc_id = (*o_resID >> 12) & 0xF; + *o_resID &= 0xFFF; - if (tmp != 0) { - *param_0 = tmp; + if (arc_id != 0) { + *o_arcNo = arc_id; } } } /* 800A3D0C-800A3D7C 09E64C 0070+00 5/5 0/0 0/0 .text * getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl */ -// setIdxMask param loads backwards -#ifdef NONMATCHING -void* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 param_1, u32 buf_size) { +void* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 i_anmID, u32 buf_size) { + u16 arcNo; + u16 resID = i_anmID; + p_anmHeap->setBufferSize(buf_size); + arcNo = 0xFFFF; - u16 tmp2 = 0xFFFF; - u16* tmp1 = ¶m_1; + setIdxMask(&arcNo, &resID); - setIdxMask(tmp1, &tmp2); - - if (tmp2 == 0xFFFF) { - return p_anmHeap->loadDataIdx(*tmp1); - } else { - return p_anmHeap->loadDataDemoRID(*tmp1, tmp2); + if (arcNo == 0xFFFF) { + return p_anmHeap->loadDataIdx(resID); } + + return p_anmHeap->loadDataDemoRID(resID, arcNo); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32 param_2) { - nofralloc -#include "asm/d/a/d_a_alink/getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl.s" -} -#pragma pop -#endif /* 800A3D7C-800A3E30 09E6BC 00B4+00 16/16 0/0 0/0 .text initModel__9daAlink_cFP12J3DModelDataUlUl */ @@ -12194,7 +12192,7 @@ bool daPy_py_c::checkWoodSwordEquip() { } BOOL daPy_py_c::i_checkSwordGet() { - return dComIfGs_getSelectEquipSword() != 0xFF; + return dComIfGs_getSelectEquipSword() != NO_ITEM; } /* 800A4910-800A4BC8 09F250 02B8+00 5/5 0/0 0/0 .text setSelectEquipItem__9daAlink_cFi */ @@ -12227,7 +12225,7 @@ void daAlink_c::setSelectEquipItem(int param_0) { } if (mClothesChangeWaitTimer == 0 && - (temp != mSwordModel || i_checkNoResetFlg2(STATUS_WINDOW_DRAW))) { + (temp != mSwordModel || i_checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW))) { if (temp != mSwordModel) { mSwordChangeWaitTimer = 5; } @@ -12366,16 +12364,16 @@ void daAlink_c::playerInit() { field_0x2fe6 = mCollisionRot.y; for (u16 i = 0; i < 3; i++) { - u8* underBuf = mUnderAnime[0].getBuffer(); - mUnderAnime[i].setBuffer(underBuf + (i * 0x2C00)); - mUnderAnime[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_3); + u8* underBuf = mUnderAnmHeap[0].getBuffer(); + mUnderAnmHeap[i].setBuffer(underBuf + (i * 0x2C00)); + mUnderAnmHeap[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_3); } - mUpperAnime[0].setBuffer(mUnderAnime[0].getBuffer() + 0x8400); + mUpperAnmHeap[0].setBuffer(mUnderAnmHeap[0].getBuffer() + 0x8400); for (u16 i = 0; i < 3; i++) { - u8* upperBuf = mUpperAnime[0].getBuffer(); - mUpperAnime[i].setBuffer(upperBuf + (i * 0x2C00)); - mUpperAnime[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_3); + u8* upperBuf = mUpperAnmHeap[0].getBuffer(); + mUpperAnmHeap[i].setBuffer(upperBuf + (i * 0x2C00)); + mUpperAnmHeap[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_3); } mAnmHeap5.createHeap(daPy_anmHeap_c::HEAP_TYPE_1); @@ -12420,7 +12418,7 @@ void daAlink_c::playerInit() { field_0x3184 = -1; mExitID = 0x3F; - i_onNoResetFlg0(0x100); + i_onNoResetFlg0(FLG0_UNK_100); offOxygenTimer(); int startMode = getStartMode(); @@ -12499,7 +12497,7 @@ void daAlink_c::playerInit() { setSelectEquipItem(0); if (checkStageName("D_MN08") || checkStageName("D_MN08B") || checkStageName("D_MN08C")) { - i_onNoResetFlg3(0x40000000); + i_onNoResetFlg3(FLG3_UNK_40000000); } } @@ -12600,7 +12598,7 @@ int daAlink_c::create() { mAttentionInfo.mPosition.set(current.pos.x + cM_ssin(mCollisionRot.y) * 70.0f, current.pos.y + 80.0f, current.pos.z + cM_scos(mCollisionRot.y) * 70.0f); - i_onNoResetFlg1(0x2000000); + i_onNoResetFlg1(FLG1_IS_WOLF); } else if (horseStart) { mAttentionInfo.mPosition.y = current.pos.y + 150.0f; } else { @@ -12678,21 +12676,21 @@ int daAlink_c::create() { if (checkStageName("F_SP102") && fopAcM_GetRoomNo(this) == 0 && dComIfG_play_c::getLayerNo(0) == 4) { - i_onNoResetFlg2(0x800000); + i_onNoResetFlg2(FLG2_UNK_800000); } else if (checkStageName("F_SP123") && fopAcM_GetRoomNo(this) == 13 && dComIfG_play_c::getLayerNo(0) == 0) { - i_onNoResetFlg2(0x1000000); + i_onNoResetFlg2(FLG2_UNK_1000000); } J3DAnmTransform* at1; J3DAnmTransform* at2; - getUnderUpperAnime(ANM_IDLE, &at1, &at2, 0, 0x2C00); - field_0x1f28[0].setAnmTransform(at1); + getUnderUpperAnime(ANM_WAIT, &at1, &at2, 0, 0x2C00); + mNowAnmPackUnder[0].setAnmTransform(at1); if (at2 != NULL) { - mNowAnmPack[0].setAnmTransform(at2); + mNowAnmPackUpper[0].setAnmTransform(at2); } else { - mNowAnmPack[0].setAnmTransform(at1); + mNowAnmPackUpper[0].setAnmTransform(at1); } int prm = setStartProcInit(); @@ -12863,14 +12861,9 @@ asm void daAlink_c::checkWindSpeedOnAngleAnime(int param_0) const { #pragma pop /* 800A7A5C-800A7ABC 0A239C 0060+00 7/7 0/0 0/0 .text checkDashAnime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkDashAnime() const { - nofralloc -#include "asm/d/a/d_a_alink/checkDashAnime__9daAlink_cCFv.s" +bool daAlink_c::checkDashAnime() const { + return checkUnderMove0BckNoArc(ANM_RUN) || checkUnderMove0BckNoArc(ANM_RUN_B); } -#pragma pop /* 800A7ABC-800A7CB0 0A23FC 01F4+00 1/1 0/0 0/0 .text checkWindWallRate__9daAlink_cFRC4cXyz */ #pragma push @@ -12998,7 +12991,7 @@ int daAlink_c::setRollJump(f32 param_0, f32 param_1, s16 param_2) { field_0x3410 = param_0; field_0x3414 = param_1; field_0x30ee = param_2; - i_onEndResetFlg0(0x100); + i_onEndResetFlg0(ERFLG0_UNK_100); return 1; } @@ -13163,14 +13156,39 @@ asm void daAlink_c::setMatrix() { #pragma pop /* 800A9248-800A92F0 0A3B88 00A8+00 15/15 0/0 5/5 .text simpleAnmPlay__9daAlink_cFP10J3DAnmBase */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::simpleAnmPlay(J3DAnmBase* i_anm) { + if (i_anm == NULL) { + return 0; + } + + int ret = 0; + f32 frame = i_anm->getFrame() + 1.0f; + + if (frame >= i_anm->getFrameMax()) { + if (i_anm->getAttribute() == 2) { + frame -= i_anm->getFrameMax(); + } else { + frame = i_anm->getFrameMax(); + ret = 1; + } + } + + i_anm->setFrame(frame); + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::simpleAnmPlay(J3DAnmBase* param_0) { +asm int daAlink_c::simpleAnmPlay(J3DAnmBase* param_0) { nofralloc #include "asm/d/a/d_a_alink/simpleAnmPlay__9daAlink_cFP10J3DAnmBase.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80391FF8-80392004 01E658 000C+00 0/1 0/0 0/0 .rodata swordMoveLocal0$60438 */ @@ -13276,9 +13294,9 @@ asm void daAlink_c::setWolfItemMatrix() { /* 800AA2BC-800AA2E0 0A4BFC 0024+00 3/3 0/0 0/0 .text * setHandIndex__9daAlink_cFQ29daAlink_c11daAlink_ANM */ -void daAlink_c::setHandIndex(daAlink_c::daAlink_ANM anmID) { - field_0x2f92 = getAnmData(anmID)->field_0x4; - field_0x2f93 = getAnmData(anmID)->field_0x5; +void daAlink_c::setHandIndex(daAlink_c::daAlink_ANM i_anmID) { + field_0x2f92 = getAnmData(i_anmID)->field_0x4; + field_0x2f93 = getAnmData(i_anmID)->field_0x5; } /* 800AA2E0-800AA5E8 0A4C20 0308+00 1/1 0/0 0/0 .text setSwordAtCollision__9daAlink_cFi @@ -13419,98 +13437,148 @@ asm void daAlink_c::setCollision() { #pragma pop /* 800AC328-800AC378 0A6C68 0050+00 1/0 0/0 0/0 .text getBaseAnimeFrame__9daAlink_cCFv */ +// matches with literals +#ifdef NONMATCHING +f32 daAlink_c::getBaseAnimeFrame() const { + if (mProcID == PROC_SUMOU_ACTION && mSpeedModifier > 0.0f) { + return mCommonCounter; + } + + return mUnderFrameCtrl[0].getFrame(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm float daAlink_c::getBaseAnimeFrame() const { +asm f32 daAlink_c::getBaseAnimeFrame() const { nofralloc #include "asm/d/a/d_a_alink/getBaseAnimeFrame__9daAlink_cCFv.s" } #pragma pop +#endif /* 800AC378-800AC394 0A6CB8 001C+00 1/0 0/0 0/0 .text setAnimeFrame__9daAlink_cFf */ void daAlink_c::setAnimeFrame(f32 frame) { - mFrameCtrl1[0].setFrame(frame); - mFrameCtrl1[1].setFrame(frame); - mFrameCtrl1[2].setFrame(frame); - mFrameCtrl2[0].setFrame(frame); - mFrameCtrl2[1].setFrame(frame); - mFrameCtrl2[2].setFrame(frame); + mUnderFrameCtrl[0].setFrame(frame); + mUnderFrameCtrl[1].setFrame(frame); + mUnderFrameCtrl[2].setFrame(frame); + mUpperFrameCtrl[0].setFrame(frame); + mUpperFrameCtrl[1].setFrame(frame); + mUpperFrameCtrl[2].setFrame(frame); } /* 800AC394-800AC450 0A6CD4 00BC+00 6/6 0/0 0/0 .text * setFrameCtrl__9daAlink_cFP16daPy_frameCtrl_cUcssff */ void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* p_ctrl, u8 attr, s16 start, s16 end, f32 rate, f32 frame) { - if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { if (checkZoraWearAbility()) { rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed; } else { rate *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate; } } + p_ctrl->setFrameCtrl(attr, start, end, rate, frame); } /* ############################################################################################## */ /* 80453278-80453280 001878 0008+00 1/1 0/0 0/0 .sdata2 kandelaarAnm$62207 */ -SECTION_SDATA2 static u8 kandelaarAnm[8] = { - 0x02, 0x6A, 0x02, 0x68, 0x02, 0x66, 0x02, 0x64, +SECTION_SDATA2 static daAlink_BckData kandelaarAnm[2] = { + {0x026A, 0x0268}, // waits, waitk + {0x0266, 0x0264}, // waiths, waithk }; /* 800AC450-800AC558 0A6D90 0108+00 23/23 0/0 0/0 .text * getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getMainBckData(daAlink_c::daAlink_ANM param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/getMainBckData__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s" +const daAlink_BckData* daAlink_c::getMainBckData(daAlink_c::daAlink_ANM i_anmID) const { + if (mEquipItem == KANTERA) { + if (i_anmID == ANM_WAIT) { + return &kandelaarAnm[0]; + } + + if (i_anmID == ANM_HORSE_WAIT) { + return &kandelaarAnm[1]; + } + } + + if (checkUpperGuardAnime() && i_anmID < 0x14) { + return &m_mainBckShield[i_anmID]; + } + + if ((mEquipItem == 0x103 && i_anmID < 0x15 && i_anmID >= 0x10) || (i_anmID == ANM_SWIM_WAIT && mEquipItem != NO_ITEM)) { + return &m_mainBckSword[i_anmID - 0x10]; + } + + if (checkFishingRodAndLureItem() && i_anmID < 0x1C) { + return &m_mainBckFishing[i_anmID]; + } + + return &m_anmDataTable[i_anmID].field_0x0; } -#pragma pop + /* 800AC558-800AC5B4 0A6E98 005C+00 51/51 0/0 2/2 .text * checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/checkUnderMove0BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM.s" +BOOL daAlink_c::checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM i_anmID) const { + return mUnderAnmHeap[0].checkNoSetArcNo() && mUnderAnmHeap[0].getIdx() == getMainBckData(i_anmID)->m_underID; } -#pragma pop /* 800AC5B4-800AC610 0A6EF4 005C+00 4/4 0/0 0/0 .text * checkUnderMove1BckNoArc__9daAlink_cCFQ29daAlink_c11daAlink_ANM */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/func_800AC5B4.s" +BOOL daAlink_c::checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM i_anmID) const { + return mUnderAnmHeap[1].checkNoSetArcNo() && mUnderAnmHeap[1].getIdx() == getMainBckData(i_anmID)->m_underID; } -#pragma pop /* 800AC610-800AC738 0A6F50 0128+00 3/3 0/0 0/0 .text * getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getUnderUpperAnime(daAlink_c::daAlink_ANM param_0, J3DAnmTransform** param_1, - J3DAnmTransform** param_2, int param_3, u32 param_4) { - nofralloc -#include "asm/d/a/d_a_alink/getUnderUpperAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMPP15J3DAnmTransformPP15J3DAnmTransformiUl.s" +int daAlink_c::getUnderUpperAnime(daAlink_c::daAlink_ANM i_anmID, J3DAnmTransform** i_underBck, + J3DAnmTransform** i_upperBck, int i_anmPackID, u32 i_bufSize) { + s32 var_r31; + + const daAlink_BckData* bck_data = getMainBckData(i_anmID); + i_offNoResetFlg0(FLG0_UNK_2); + + *i_underBck = (J3DAnmTransform*)getAnimeResource(&mUnderAnmHeap[i_anmPackID], bck_data->m_underID, i_bufSize); + + if (*i_underBck != NULL) { + var_r31 = 1; + } else { + *i_underBck = getNowAnmPackUnder((daAlink_UNDER)i_anmPackID); + var_r31 = 0; + } + + if (bck_data->m_underID != bck_data->m_upperID) { + if (i_bufSize == 0x10800) { + i_bufSize = (3 - i_anmPackID) * 0x2C00; + } + + *i_upperBck = (J3DAnmTransform*)getAnimeResource(&mUpperAnmHeap[i_anmPackID], bck_data->m_upperID, i_bufSize); + if (*i_upperBck != NULL) { + var_r31 |= 1; + } else { + *i_upperBck = getNowAnmPackUpper((daAlink_UPPER)i_anmPackID); + } + } else { + if (!mUpperAnmHeap[i_anmPackID].checkNoSetIdx()) { + var_r31 |= 1; + } + + *i_upperBck = NULL; + mUpperAnmHeap[i_anmPackID].resetIdx(); + } + + return var_r31; } -#pragma pop /* 800AC738-800AC754 0A7078 001C+00 7/7 0/0 0/0 .text setDoubleAnimeBlendRatio__9daAlink_cFf */ void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) { f32 tmp = lit_6040; // remove later - field_0x1f28[0].setRatio(tmp - param_0); - field_0x1f28[1].setRatio(param_0); - mNowAnmPack[0].setRatio(tmp - param_0); - mNowAnmPack[1].setRatio(param_0); + mNowAnmPackUnder[0].setRatio(tmp - param_0); + mNowAnmPackUnder[1].setRatio(param_0); + mNowAnmPackUpper[0].setRatio(tmp - param_0); + mNowAnmPackUpper[1].setRatio(param_0); } /* 800AC754-800ACA14 0A7094 02C0+00 2/2 0/0 0/0 .text @@ -13554,64 +13622,112 @@ asm void daAlink_c::commonSingleAnime(J3DAnmTransform* param_0, J3DAnmTransform* /* 800ACF80-800ACFB0 0A78C0 0030+00 88/88 0/0 0/0 .text * setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM */ -void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM anm) { - setSingleAnime(anm, lit_6040, FLOAT_LABEL(lit_6108), -1, lit_6109); +void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM i_anmID) { + setSingleAnime(i_anmID, lit_6040, FLOAT_LABEL(lit_6108), -1, lit_6109); } /* 800ACFB0-800ACFE0 0A78F0 0030+00 27/27 0/0 0/0 .text * setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf */ -void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anm, f32 param_1) { - setSingleAnime(anm, lit_6040, FLOAT_LABEL(lit_6108), -1, param_1); +void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM i_anmID, f32 param_1) { + setSingleAnime(i_anmID, lit_6040, FLOAT_LABEL(lit_6108), -1, param_1); } /* 800ACFE0-800AD00C 0A7920 002C+00 77/77 0/0 0/0 .text * setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff */ -void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM anm, f32 param_1, f32 param_2) { - setSingleAnime(anm, param_1, FLOAT_LABEL(lit_6108), -1, param_2); +void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM i_anmID, f32 param_1, f32 param_2) { + setSingleAnime(i_anmID, param_1, FLOAT_LABEL(lit_6108), -1, param_2); } /* 800AD00C-800AD0F4 0A794C 00E8+00 58/58 0/0 0/0 .text * setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSingleAnime(daAlink_c::daAlink_ANM param_0, f32 param_1, f32 param_2, - s16 param_3, f32 param_4) { - nofralloc -#include "asm/d/a/d_a_alink/setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf.s" +int daAlink_c::setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_rate, f32 i_start, + s16 i_end, f32 i_morf) { + J3DAnmTransform* under_bck; + J3DAnmTransform* upper_bck; + + getUnderUpperAnime(i_anmID, &under_bck, &upper_bck, 0, 0x10800); + commonSingleAnime(under_bck, upper_bck, i_rate, i_start, i_end); + + if (i_morf >= FLOAT_LABEL(lit_6108)) { + field_0x2060->initOldFrameMorf(i_morf, 0, 35); + } + + setHandIndex(i_anmID); + setFaceBasicAnime(i_anmID); + + return 1; } -#pragma pop /* 800AD0F4-800AD128 0A7A34 0034+00 93/93 0/0 0/0 .text * setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSingleAnimeParam(daAlink_c::daAlink_ANM param_0, - daAlinkHIO_anm_c const* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c.s" +int daAlink_c::setSingleAnimeParam(daAlink_c::daAlink_ANM i_anmID, + daAlinkHIO_anm_c const* i_anmData) { + return setSingleAnime(i_anmID, i_anmData->mRate, i_anmData->mStart, i_anmData->mEndF, i_anmData->mInterpolation); } -#pragma pop /* 800AD128-800AD170 0A7A68 0048+00 1/1 0/0 0/0 .text * animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c */ -void daAlink_c::animePlay(J3DAnmTransform* param_0, daPy_frameCtrl_c* param_1) { - if (param_0 != NULL) { - param_1->updateFrame(); - param_0->setFrame(param_1->getFrame()); +void daAlink_c::animePlay(J3DAnmTransform* i_anm, daPy_frameCtrl_c* i_frameCtrl) { + if (i_anm != NULL) { + i_frameCtrl->updateFrame(); + i_anm->setFrame(i_frameCtrl->getFrame()); } } /* 800AD170-800AD2D8 0A7AB0 0168+00 2/2 0/0 0/0 .text allAnimePlay__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::allAnimePlay() { - nofralloc -#include "asm/d/a/d_a_alink/allAnimePlay__9daAlink_cFv.s" +void daAlink_c::allAnimePlay() { + J3DAnmTransform* under0_bck = getNowAnmPackUnder(UNDER_0); + J3DAnmTransform* under1_bck = getNowAnmPackUnder(UNDER_1); + J3DAnmTransform* upper0_bck = getNowAnmPackUpper(UPPER_0); + J3DAnmTransform* upper1_bck = getNowAnmPackUpper(UPPER_1); + + if (i_checkWolf()) { + setWolfAnmVoice(); + } + + for (int i = 0; i < 3; i++) { + animePlay(getNowAnmPackUnder((daAlink_UNDER)i), &mUnderFrameCtrl[i]); + } + + if (upper0_bck != under0_bck) { + animePlay(upper0_bck, &mUpperFrameCtrl[0]); + } + + if (upper1_bck != under1_bck) { + animePlay(upper1_bck, &mUpperFrameCtrl[1]); + } + + animePlay(getNowAnmPackUpper((daAlink_UPPER)2), &mUpperFrameCtrl[2]); + + if (field_0x2f92 == 0xFB && mpDemoHLTmpBck != NULL) { + mpDemoHLTmpBck->play(); + } + + if (field_0x2f93 == 0xFB && mpDemoHRTmpBck != NULL) { + mpDemoHRTmpBck->play(); + } + + if (i_checkNoResetFlg1(FLG1_UNK_10)) { + if (field_0x069c != NULL && field_0x069c->getBlkAnm() != NULL) { + simpleAnmPlay(field_0x069c->getBlkAnm()); + } + + if (field_0x068c != NULL) { + simpleAnmPlay(field_0x068c); + } + + if (mpDemoFCTmpBck != NULL) { + mpDemoFCTmpBck->play(); + } + } + + if (mpDemoHDTmpBck != NULL) { + mpDemoHDTmpBck->play(); + } + + simpleAnmPlay(field_0x06f4); + simpleAnmPlay(field_0x06f8); } -#pragma pop /* 800AD2D8-800AD340 0A7C18 0068+00 2/2 0/0 0/0 .text setUpperAnimeMorf__9daAlink_cFf */ #pragma push @@ -13704,7 +13820,7 @@ asm void daAlink_c::setUnderAnimeMorf(f32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setUnderAnime(u16 param_0, daAlink_c::daAlink_UNDER param_1, f32 param_2, +asm int daAlink_c::setUnderAnime(u16 param_0, daAlink_c::daAlink_UNDER param_1, f32 param_2, f32 param_3, s16 param_4, f32 param_5) { nofralloc #include "asm/d/a/d_a_alink/setUnderAnime__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERffsf.s" @@ -13713,15 +13829,10 @@ asm void daAlink_c::setUnderAnime(u16 param_0, daAlink_c::daAlink_UNDER param_1, /* 800ADAB8-800ADAEC 0A83F8 0034+00 2/2 0/0 0/0 .text * setUnderAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERPC16daAlinkHIO_anm_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setUnderAnimeParam(u16 param_0, daAlink_c::daAlink_UNDER param_1, - daAlinkHIO_anm_c const* param_2) { - nofralloc -#include "asm/d/a/d_a_alink/setUnderAnimeParam__9daAlink_cFUsQ29daAlink_c13daAlink_UNDERPC16daAlinkHIO_anm_c.s" +int daAlink_c::setUnderAnimeParam(u16 i_resID, daAlink_c::daAlink_UNDER i_packIdx, + daAlinkHIO_anm_c const* i_anmData) { + return setUnderAnime(i_resID, i_packIdx, i_anmData->mRate, i_anmData->mStart, i_anmData->mEndF, i_anmData->mInterpolation); } -#pragma pop /* 800ADAEC-800ADB78 0A842C 008C+00 17/17 0/0 0/0 .text * resetUnderAnime__9daAlink_cFQ29daAlink_c13daAlink_UNDERf */ @@ -13745,34 +13856,35 @@ asm void daAlink_c::setOldRootQuaternion(s16 param_0, s16 param_1, s16 param_2) #pragma pop /* 800ADC50-800ADCEC 0A8590 009C+00 2/2 0/0 0/0 .text checkAtnLeftAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkAtnLeftAnime() { - nofralloc -#include "asm/d/a/d_a_alink/checkAtnLeftAnime__9daAlink_cFv.s" +BOOL daAlink_c::checkAtnLeftAnime() { + return checkUnderMove0BckNoArc(ANM_ATN_WAIT_LEFT) || + checkUnderMove0BckNoArc(ANM_ATN_WALK_LEFT) || + checkUnderMove0BckNoArc(ANM_ATN_RUN_LEFT) || + checkUnderMove0BckNoArc(ANM_ATN_LOCK_WALK_LEFT) || + checkUnderMove0BckNoArc(ANM_ATN_LOCK_RUN_LEFT); } -#pragma pop /* 800ADCEC-800ADD88 0A862C 009C+00 1/1 0/0 0/0 .text checkAtnRightAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkAtnRightAnime() { - nofralloc -#include "asm/d/a/d_a_alink/checkAtnRightAnime__9daAlink_cFv.s" +BOOL daAlink_c::checkAtnRightAnime() { + return checkUnderMove0BckNoArc(ANM_ATN_WAIT_RIGHT) || + checkUnderMove0BckNoArc(ANM_ATN_WALK_RIGHT) || + checkUnderMove0BckNoArc(ANM_ATN_RUN_RIGHT) || + checkUnderMove0BckNoArc(ANM_ATN_LOCK_WALK_RIGHT) || + checkUnderMove0BckNoArc(ANM_ATN_LOCK_RUN_RIGHT); } -#pragma pop /* 800ADD88-800ADE14 0A86C8 008C+00 3/3 0/0 0/0 .text getMoveGroundAngleSpeedRate__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getMoveGroundAngleSpeedRate() { - nofralloc -#include "asm/d/a/d_a_alink/getMoveGroundAngleSpeedRate__9daAlink_cFv.s" +f32 daAlink_c::getMoveGroundAngleSpeedRate() { + s16 gnd_angle; + + if (field_0x3174 == 8 || i_checkMagneBootsOn() || !mLinkAcch.ChkGroundHit()) { + gnd_angle = 0; + } else { + gnd_angle = getGroundAngle(&mLinkAcch.m_gnd, current.angle.y); + } + + return fabsf((mNormalSpeed * cM_scos(gnd_angle)) / field_0x594); } -#pragma pop /* 800ADE14-800AEA70 0A8754 0C5C+00 20/20 0/0 0/0 .text setBlendMoveAnime__9daAlink_cFf */ @@ -13957,14 +14069,30 @@ asm void daAlink_c::playFaceTextureAnime() { /* 800B0098-800B0150 0AA9D8 00B8+00 14/14 0/0 0/0 .text * getGroundAngle__9daAlink_cFP13cBgS_PolyInfos */ +// matches but causes data issues +#ifdef NONMATCHING +s16 daAlink_c::getGroundAngle(cBgS_PolyInfo* i_poly, s16 i_angle) { + if (!dComIfG_Bgsp().ChkPolySafe(*i_poly)) { + return 0; + } + + cM3dGPla plane; + if (!dComIfG_Bgsp().GetTriPla(*i_poly, &plane) || !cBgW_CheckBGround(plane.mNormal.y)) { + return 0; + } + + return fopAcM_getPolygonAngle(&plane, i_angle); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { +asm s16 daAlink_c::getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { nofralloc #include "asm/d/a/d_a_alink/getGroundAngle__9daAlink_cFP13cBgS_PolyInfos.s" } #pragma pop +#endif /* 800B0150-800B01FC 0AAA90 00AC+00 1/1 0/0 0/0 .text getRoofAngle__9daAlink_cFP13cBgS_PolyInfos */ @@ -14040,14 +14168,13 @@ asm void daAlink_c::setHangWaterY() { #pragma pop /* 800B172C-800B1770 0AC06C 0044+00 3/3 0/0 0/0 .text setSandDownBgCheckWallH__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSandDownBgCheckWallH() { - nofralloc -#include "asm/d/a/d_a_alink/setSandDownBgCheckWallH__9daAlink_cFv.s" +void daAlink_c::setSandDownBgCheckWallH() { + if (!i_checkModeFlg(0x400)) { + for (int i = 0; i < 3; i++) { + field_0x18B0[i].SetWallH(field_0x2bac[i] + mSinkShapeOffset); + } + } } -#pragma pop /* ############################################################################################## */ /* 80453294-80453298 001894 0004+00 1/1 0/0 0/0 .sdata2 @64592 */ @@ -14107,15 +14234,15 @@ asm void daAlink_c::setSandShapeOffset() { #pragma pop /* 800B1FB8-800B1FD8 0AC8F8 0020+00 2/2 0/0 0/0 .text checkLv2MiddleBossBgRide__9daAlink_cFs */ -bool daAlink_c::checkLv2MiddleBossBgRide(short param_0) { - return param_0 == 0x7B || param_0 == 0x7D; +bool daAlink_c::checkLv2MiddleBossBgRide(s16 i_procName) { + return i_procName == PROC_OBJ_MSIMA || i_procName == PROC_B_ZANTS; } /* 800B1FD8-800B21EC 0AC918 0214+00 11/11 0/0 0/0 .text getSlidePolygon__9daAlink_cFP8cM3dGPla */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getSlidePolygon(cM3dGPla* param_0) { +asm bool daAlink_c::getSlidePolygon(cM3dGPla* param_0) { nofralloc #include "asm/d/a/d_a_alink/getSlidePolygon__9daAlink_cFP8cM3dGPla.s" } @@ -14128,8 +14255,6 @@ BOOL daAlink_c::checkSlope() const { /* 800B221C-800B23FC 0ACB5C 01E0+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi */ -// need to figure out member function pointer calls -#ifdef NONMATCHING void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2) { if (checkEventRun() || param_2 != 0 || mSpecialMode != 0) { if (p_pos != NULL) { @@ -14157,29 +14282,19 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 param_1, int param_2 field_0x3118 = mCollisionRot.y; } - if (checkHorseRide() || checkSpinnerRide()) { + if (checkHorseRide()) { + i_dComIfGp_getHorseActor()->i_setHorsePosAndAngle(¤t.pos, mCollisionRot.y); + } else if (checkSpinnerRide()) { fopAc_ac_c* rideAc = mRideAcKeep.getActor(); rideAc->current.pos = current.pos; rideAc->mCollisionRot.y = mCollisionRot.y; rideAc->current.angle.y = mCollisionRot.y; rideAc->mSpeed.y = FLOAT_LABEL(lit_6108); - } else { - i_dComIfGp_getHorseActor()->setHorsePosAndAngle(¤t.pos, mCollisionRot.y); } field_0x814.ClrCcMove(); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setPlayerPosAndAngle(cXyz const* param_0, s16 param_1, int param_2) { - nofralloc -#include "asm/d/a/d_a_alink/setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi.s" -} -#pragma pop -#endif /* 800B23FC-800B24F4 0ACD3C 00F8+00 1/0 0/0 0/0 .text * setPlayerPosAndAngle__9daAlink_cFPC4cXyzPC5csXyz */ @@ -14316,7 +14431,7 @@ void daAlink_c::setStickData() { field_0x33ac = 0.0f; mStickAngle = 0; dComIfGp_2dShowOff(); - i_onNoResetFlg2(0x80); + i_onNoResetFlg2(FLG2_UNK_80); var_r31 = 1; field_0x2fe4 = mCollisionRot.y; } else { @@ -14407,7 +14522,7 @@ void daAlink_c::setStickData() { mItemButton |= BTN_R; } - if (checkHeavyStateOn(1, 1) && (!checkBootsOrArmorHeavy() || !checkNoResetFlg0(0x800000))) { + if (checkHeavyStateOn(1, 1) && (!checkBootsOrArmorHeavy() || !checkNoResetFlg0(FLG0_UNDERWATER))) { if (i_checkWolf() && checkHeavyStateOn(1, 0) && mSinkShapeOffset < -30.0f) { mHeavySpeedMultiplier = daAlinkHIO_magneBoots_c0::m.mInputFactor * 0.4f; } else { @@ -14423,7 +14538,7 @@ void daAlink_c::setStickData() { field_0x33a8 *= mHeavySpeedMultiplier; } else if (i_checkWolf() && ((field_0x2fbc == 11 && checkWaterPolygonUnder()) || field_0x2fbb == 11)) { - i_onNoResetFlg0(0x40000000); + i_onNoResetFlg0(FLG0_UNK_40000000); field_0x33a8 *= daAlinkHIO_wolf_c0::m.mSwampInputRate; mHeavySpeedMultiplier = daAlinkHIO_wolf_c0::m.mSwampInputRate; } @@ -14445,11 +14560,11 @@ void daAlink_c::setStickData() { } if (!doButton()) { - i_offNoResetFlg0(0x10000000); + i_offNoResetFlg0(FLG0_UNK_10000000); } - if (!var_r31 && checkNoResetFlg2(0x80)) { - i_offNoResetFlg2(0x80); + if (!var_r31 && checkNoResetFlg2(FLG2_UNK_80)) { + i_offNoResetFlg2(FLG2_UNK_80); dComIfGp_2dShowOn(); } } @@ -14644,14 +14759,13 @@ asm void daAlink_c::setSpeedAndAngleAtn() { /* 800B477C-800B47B4 0AF0BC 0038+00 2/2 0/0 0/0 .text * checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkRequestTalkActor(dAttList_c* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/checkRequestTalkActor__9daAlink_cFP10dAttList_cP10fopAc_ac_c.s" +int daAlink_c::checkRequestTalkActor(dAttList_c* param_0, fopAc_ac_c* param_1) { + if (param_0 != NULL && (param_0->mType == 3 || (param_0->mType == 1 && mTargetedActor == param_1))) { + return true; + } + + return false; } -#pragma pop /* 800B47B4-800B48D0 0AF0F4 011C+00 4/4 0/0 0/0 .text checkServiceWaitMode__9daAlink_cFv */ @@ -14695,33 +14809,60 @@ void daAlink_c::setMidnaMsg() { } /* 800B4950-800B4A08 0AF290 00B8+00 3/3 0/0 0/0 .text notTalk__9daAlink_cFv */ -bool daAlink_c::notTalk() { - BOOL chk; +BOOL daAlink_c::notTalk() { + BOOL safe_poly; if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dBgS_CheckBGroundPoly(mLinkAcch.m_gnd)) { - chk = true; + safe_poly = true; } else { - chk = false; + safe_poly = false; } if ((mMidnaTalkDelayTimer != 0 || (i_checkMagneBootsOn() && !cBgW_CheckBGround(mMagneBootsTopVec.y))) || !i_checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP) && - !chk) { + !safe_poly) { return true; } return false; } /* 800B4A08-800B4B2C 0AF348 0124+00 11/11 0/0 0/0 .text setTalkStatus__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setTalkStatus() { - nofralloc -#include "asm/d/a/d_a_alink/setTalkStatus__9daAlink_cFv.s" +BOOL daAlink_c::setTalkStatus() { + if (i_checkEndResetFlg0(ERFLG0_UNK_400000) || field_0x27f4 == NULL) { + return 0; + } + + if (checkRequestTalkActor(mAttList, field_0x27f4)) { + if (notTalk()) { + setDoStatus(0x90); + } else { + if (field_0x27f4->mAttentionInfo.mFlags & 0x2000000) { + return 0; + } + + if (field_0x27f4->mAttentionInfo.mFlags & 0x800000) { + setDoStatus(0x3B); + } else if (field_0x27f4->mAttentionInfo.mFlags & 0x20000000) { + if (fopAcM_GetName(field_0x27f4) == PROC_OBJ_SSDRINK) { + setDoStatus(0x3C); + } else { + setDoStatus(8); + } + } else if (field_0x27f4->mAttentionInfo.mFlags & 0x40000000) { + setDoStatus(0x80); + } else if (field_0x27f4->mAttentionInfo.mFlags & 0x8000000) { + setDoStatus(0x1B); + } else { + setDoStatus(0x1C); + } + } + + return 1; + } + + return 0; } -#pragma pop /* 800B4B2C-800B4B7C 0AF46C 0050+00 1/1 0/0 0/0 .text getFrontRollRate__9daAlink_cFv */ f32 daAlink_c::getFrontRollRate() { @@ -14775,7 +14916,7 @@ void daAlink_c::setFallVoice() { void daAlink_c::setLandPassiveData() { if (field_0x30f0 == 0) { if (doTrigger()) { - field_0x30f0 = 0x41; + field_0x30f0 = 65; } } else { field_0x30f0--; @@ -14784,7 +14925,7 @@ void daAlink_c::setLandPassiveData() { /* 800B5C64-800B5CCC 0B05A4 0068+00 5/5 0/0 0/0 .text setStepLandVibration__9daAlink_cFv */ -// cXyz issues +// matches with literals #ifdef NONMATCHING void daAlink_c::setStepLandVibration() { int shock; @@ -14793,9 +14934,8 @@ void daAlink_c::setStepLandVibration() { } else { shock = 1; } - cXyz xyz(0.0f, 1.0f, 0.0f); - dComIfGp_getVibration().StartShock(shock, 15, xyz); + dComIfGp_getVibration().StartShock(shock, 15, cXyz(0.0f, 1.0f, 0.0f)); } #else #pragma push @@ -14833,7 +14973,7 @@ asm BOOL daAlink_c::checkSlideAction() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkAutoJumpAction() { +asm BOOL daAlink_c::checkAutoJumpAction() { nofralloc #include "asm/d/a/d_a_alink/checkAutoJumpAction__9daAlink_cFv.s" } @@ -14982,14 +15122,36 @@ void daAlink_c::orderPeep() { SECTION_SDATA2 static u16 itemTalkType[2] = {6, 7}; /* 800B7BF8-800B7D4C 0B2538 0154+00 13/13 0/0 0/0 .text orderTalk__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::orderTalk(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/orderTalk__9daAlink_cFi.s" +int daAlink_c::orderTalk(int i_checkZTalk) { + if (notTalk()) { + return 0; + } + + if ((i_dComIfGp_getDoStatus() == 0x1C || i_dComIfGp_getDoStatus() == 0x1B || i_dComIfGp_getDoStatus() == 0x80 || + i_dComIfGp_getDoStatus() == 0x3B || i_dComIfGp_getDoStatus() == 0x3C || i_dComIfGp_getDoStatus() == 0x8) && + talkTrigger()) { + fopAcM_orderTalkEvent(this, field_0x27f4, 0, 0); + return 1; + } + + if (!i_checkWolf() && checkRequestTalkActor(mAttList2, field_0x27f8)) { + for (int i = 0; i < 2; i++) { + u8 item = dComIfGp_getSelectItem(i); + + // check if pressed X or Y and if item on button is a trade item + if (checkTradeItem(item) && itemTriggerCheck(1 << i)) { + fopAcM_orderTalkItemBtnEvent(itemTalkType[i], this, field_0x27f8, 0, 0); + return 1; + } + } + } + + if (i_checkZTalk) { + return orderZTalk(); + } + + return 0; } -#pragma pop /* ############################################################################################## */ /* 804532B4-804532B8 0018B4 0004+00 1/1 0/0 0/0 .sdata2 @67554 */ @@ -15019,7 +15181,7 @@ static asm void daAlink_searchKolin(fopAc_ac_c* param_0, void* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::orderZTalk() { +asm int daAlink_c::orderZTalk() { nofralloc #include "asm/d/a/d_a_alink/orderZTalk__9daAlink_cFv.s" } @@ -15151,7 +15313,7 @@ asm BOOL daAlink_c::checkEquipAnime() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkWindDashAnime() const { +asm BOOL daAlink_c::checkWindDashAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkWindDashAnime__9daAlink_cCFv.s" } @@ -15197,7 +15359,7 @@ void daAlink_c::itemEquip(u16 item_id) { if (mThrowBoomerangAcKeep.getActor() == NULL || item_id != BOOMERANG) { field_0x2fde = item_id; dComIfGp_clearPlayerStatus0(0, 0x400000); - i_offNoResetFlg3(0x40000); + i_offNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); itemUnequip(field_0x2fde, lit_6041); } } @@ -15412,9 +15574,9 @@ asm void daAlink_c::initGravity() { */ void daAlink_c::setSpecialGravity(f32 gravity, f32 speed, int param_2) { if (param_2 != 0) { - i_offNoResetFlg3(0x4000); + i_offNoResetFlg3(FLG3_UNK_4000); } else { - i_onNoResetFlg3(0x4000); + i_onNoResetFlg3(FLG3_UNK_4000); } mGravity = gravity; mMaxFallSpeed = speed; @@ -15568,7 +15730,7 @@ SECTION_DEAD static char const* const stringBase_803925BA = "F_SP114"; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkRestartRoom() { +asm bool daAlink_c::checkRestartRoom() { nofralloc #include "asm/d/a/d_a_alink/checkRestartRoom__9daAlink_cFv.s" } @@ -15668,7 +15830,7 @@ int daAlink_c::checkSceneChange(int exitID) { exitMode = 1; } else if (i_checkModeFlg(0x1000000)) { exitSpeed = field_0x33a8; - if (mFrameCtrl1[0].getRate() >= 0.0f) { + if (mUnderFrameCtrl[0].getRate() >= 0.0f) { exitMode = 2; } else { exitMode = 3; @@ -15692,7 +15854,7 @@ int daAlink_c::checkSceneChange(int exitID) { sceneChanged = dStage_changeScene(mExitID, exitSpeed, exitMode, fopAcM_GetRoomNo(this), mCollisionRot.y, -1); if (sceneChanged) { - i_onNoResetFlg2(0x8000); + i_onNoResetFlg2(FLG2_SCN_CHG_START); if (mpScnChg != NULL && fopAcM_GetName(mpScnChg) == PROC_SCENE_EXIT) { mpScnChg->setSceneChangeOK(); } @@ -15711,13 +15873,13 @@ int daAlink_c::checkSceneChange(int exitID) { } if (sceneChanged) { - i_onNoResetFlg0(0x4000); + i_onNoResetFlg0(FLG0_UNK_4000); if (!mEvtInfo.i_checkCommandDoor()) { mDemo.setOriginalDemoType(); if (checkUpperReadyThrowAnime()) { - resetUpperAnime(UPPER_NOW, 3.0f); + resetUpperAnime(UPPER_2, 3.0f); } if (field_0x3174 == 5) { @@ -15980,7 +16142,7 @@ BOOL daAlink_c::setItemActor() { if (actor == NULL) { if (checkIronBallWaitAnime()) { - resetUpperAnime(UPPER_NOW, -1.0f); + resetUpperAnime(UPPER_2, -1.0f); } deleteEquipItem(FALSE, FALSE); return 0; @@ -16072,7 +16234,7 @@ BOOL daAlink_c::checkZoraWearAbility() const { wear_zora = true; } - if (wear_zora && !i_checkNoResetFlg2(UNK_ARMOR)) { + if (wear_zora && !i_checkNoResetFlg2(FLG2_UNK_80000)) { ret = true; } @@ -16099,7 +16261,7 @@ BOOL daAlink_c::checkMagicArmorWearAbility() const { wear_armor = true; } - if (wear_armor && !i_checkNoResetFlg2(UNK_ARMOR)) { + if (wear_armor && !i_checkNoResetFlg2(FLG2_UNK_80000)) { ret = true; } @@ -16391,9 +16553,9 @@ MtxP daAlink_c::getModelJointMtx(u16 param_0) { /* 800C1DE0-800C1E0C 0BC720 002C+00 1/0 0/0 0/0 .text onFrollCrashFlg__9daAlink_cFUci */ void daAlink_c::onFrollCrashFlg(u8 param_0, int param_1) { if (param_1 != 0) { - i_onNoResetFlg0(UNK_F_ROLL_CRASH_2); + i_onNoResetFlg0(FLG0_UNK_10); } else { - i_onNoResetFlg0(UNK_F_ROLL_CRASH_1); + i_onNoResetFlg0(FLG0_UNK_8); } mRollCrashFlg = param_0; } @@ -16706,7 +16868,7 @@ void daAlink_c::setClothesChange(int param_0) { return; } - i_onNoResetFlg2(0x200000); + i_onNoResetFlg2(FLG2_UNK_200000); } /* 80140064-80140070 13A9A4 000C+00 0/0 1/1 0/0 .text setShieldChange__9daAlink_cFv */ @@ -17089,7 +17251,7 @@ int dComIfGs_isItemFirstBit(u8 i_no) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { +static asm s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { nofralloc #include "asm/d/a/d_a_alink/dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class.s" } @@ -17099,7 +17261,7 @@ static asm u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getStage() { +static asm dStage_stageDt_c* dComIfGp_getStage() { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_getStage__Fv.s" } @@ -17107,8 +17269,8 @@ static asm void dComIfGp_getStage() { /* 801412B0-801412BC 13BBF0 000C+00 1/1 0/0 0/0 .text checkEquipHeavyBoots__9daPy_py_cCFv */ -BOOL daPy_py_c::checkEquipHeavyBoots() const { - return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); +u32 daPy_py_c::checkEquipHeavyBoots() const { + return i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); } /* 801412BC-801412C4 13BBFC 0008+00 1/1 4/4 0/0 .text fopAcM_GetName__FPv */ @@ -17132,7 +17294,7 @@ void daPy_py_c::onNoResetFlg0(daPy_FLG0 pFlag) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvt_control_c::isOrderOK() { +asm BOOL dEvt_control_c::isOrderOK() { nofralloc #include "asm/d/a/d_a_alink/isOrderOK__14dEvt_control_cFv.s" } @@ -17142,7 +17304,7 @@ asm void dEvt_control_c::isOrderOK() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getEvent() { +static asm dEvt_control_c& dComIfGp_getEvent() { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_getEvent__Fv.s" } @@ -17153,7 +17315,7 @@ static asm void dComIfGp_getEvent() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) { +static asm u32 dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_checkPlayerStatus0__FiUl.s" } @@ -17164,7 +17326,7 @@ static asm void dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_checkPlayerStatus1(int param_0, u32 param_1) { +static asm u32 dComIfGp_checkPlayerStatus1(int param_0, u32 param_1) { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_checkPlayerStatus1__FiUl.s" } @@ -17172,7 +17334,7 @@ static asm void dComIfGp_checkPlayerStatus1(int param_0, u32 param_1) { /* 80141340-8014134C 13BC80 000C+00 1/1 0/0 0/0 .text * checkEndResetFlg1__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG1 */ -int daPy_py_c::checkEndResetFlg1(daPy_ERFLG1 pFlag) const { +u32 daPy_py_c::checkEndResetFlg1(daPy_ERFLG1 pFlag) const { return mEndResetFlg1 & pFlag; } @@ -17233,8 +17395,8 @@ BOOL dComIfGs_isEventBit(u16 id) { } /* 801413CC-801413D8 13BD0C 000C+00 1/1 0/0 0/0 .text checkWolf__9daPy_py_cCFv */ -int daPy_py_c::checkWolf() const { - return i_checkNoResetFlg1(IS_WOLF); +u32 daPy_py_c::checkWolf() const { + return i_checkNoResetFlg1(FLG1_IS_WOLF); } /* 801413D8-801413F8 13BD18 0020+00 1/1 0/0 0/0 .text checkSwordGet__9daPy_py_cFv */ @@ -17244,7 +17406,7 @@ BOOL daPy_py_c::checkSwordGet() { /* 801413F8-80141404 13BD38 000C+00 1/1 0/0 0/0 .text * checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0 */ -int daPy_py_c::checkResetFlg0(daPy_RFLG0 pFlag) const { +u32 daPy_py_c::checkResetFlg0(daPy_RFLG0 pFlag) const { return mResetFlg0 & pFlag; } @@ -17255,7 +17417,7 @@ bool dBgS_Acch::ChkGroundHit() const { /* 80141410-8014141C 13BD50 000C+00 1/1 0/0 0/0 .text * checkNoResetFlg0__9daPy_py_cCFQ29daPy_py_c9daPy_FLG0 */ -int daPy_py_c::checkNoResetFlg0(daPy_FLG0 pFlag) const { +u32 daPy_py_c::checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; } @@ -17268,7 +17430,7 @@ static s32 dComIfGp_getPlayerCameraID(int i) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getPlayerCameraID(int param_0) { +static asm s8 dComIfGp_getPlayerCameraID(int param_0) { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_getPlayerCameraID__Fi.s" } @@ -17299,13 +17461,13 @@ static BOOL dComIfGp_event_runCheck() { /* 801414C0-801414CC 13BE00 000C+00 1/1 0/0 0/0 .text * checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2 */ -int daPy_py_c::checkNoResetFlg2(daPy_FLG2 pFlag) const { +u32 daPy_py_c::checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; } /* 801414CC-801414D8 13BE0C 000C+00 1/1 2/2 0/0 .text checkMagneBootsOn__9daPy_py_cCFv */ -int daPy_py_c::checkMagneBootsOn() const { - return i_checkNoResetFlg0(MAGNE_BOOTS_ON); +u32 daPy_py_c::checkMagneBootsOn() const { + return i_checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); } /* 801414D8-801414E8 13BE18 0010+00 1/1 2/2 0/0 .text dComIfGp_getHorseActor__Fv */ @@ -17314,13 +17476,13 @@ daHorse_c* dComIfGp_getHorseActor() { } /* 801414E8-801414F4 13BE28 000C+00 1/1 0/0 0/0 .text checkBoarSingleBattle__9daPy_py_cCFv */ -int daPy_py_c::checkBoarSingleBattle() const { - return i_checkNoResetFlg2(BOAR_SINGLE_BATTLE); +u32 daPy_py_c::checkBoarSingleBattle() const { + return i_checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); } /* 801414F4-80141500 13BE34 000C+00 1/1 0/0 0/0 .text * checkEndResetFlg0__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG0 */ -int daPy_py_c::checkEndResetFlg0(daPy_ERFLG0 pFlag) const { +u32 daPy_py_c::checkEndResetFlg0(daPy_ERFLG0 pFlag) const { return mEndResetFlg0 & pFlag; } @@ -18158,7 +18320,7 @@ fopAc_ac_c* daHorse_c::getZeldaActor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getDoStatus() { +static asm u8 dComIfGp_getDoStatus() { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_getDoStatus__Fv.s" } @@ -18212,18 +18374,18 @@ static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bo /* 801419F4-80141A04 13C334 0010+00 1/1 0/0 0/0 .text onForcePanic__9daMidna_cFv */ void daMidna_c::onForcePanic() { - onEndResetStateFlg0(FORCE_PANIC); + onEndResetStateFlg0(ERFLG0_FORCE_PANIC); } /* 80141A04-80141A10 13C344 000C+00 1/1 0/0 0/0 .text checkForceNormalColor__9daMidna_cCFv */ u32 daMidna_c::checkForceNormalColor() const { - return checkStateFlg1(FORCE_NORMAL_COLOR); + return checkStateFlg1(FLG1_FORCE_NORMAL_COL); } /* 80141A10-80141A1C 13C350 000C+00 1/1 0/0 0/0 .text checkForceTiredColor__9daMidna_cCFv */ u32 daMidna_c::checkForceTiredColor() const { - return checkStateFlg1(FORCE_TIRED_COLOR); + return checkStateFlg1(FLG1_FORCE_TIRED_COL); } /* 80141A1C-80141A84 13C35C 0068+00 1/1 0/0 0/0 .text checkMidnaTired__9daMidna_cFv */ @@ -18238,7 +18400,7 @@ asm bool daMidna_c::checkMidnaTired() { /* 80141A84-80141A94 13C3C4 0010+00 1/1 0/0 0/0 .text onNoServiceWait__9daMidna_cFv */ void daMidna_c::onNoServiceWait() { - onEndResetStateFlg0(NO_SERVICE_WAIT); + onEndResetStateFlg0(ERFLG0_NO_SERVICE_WAIT); } /* 80141A94-80141ACC 13C3D4 0038+00 1/1 0/0 0/0 .text setControllActorData__8daCrod_cFv diff --git a/src/d/a/d_a_alink_boom.inc b/src/d/a/d_a_alink_boom.inc index a487ce03fe8..258657501e8 100644 --- a/src/d/a/d_a_alink_boom.inc +++ b/src/d/a/d_a_alink_boom.inc @@ -126,11 +126,11 @@ void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) { if (!checkBoomerangThrowAnime()) { if (param_0 != 0) { f32 tmp = FLOAT_LABEL(lit_6108); - mFrameCtrl2[2].setRate(tmp); - mFrameCtrl2[2].setFrame(tmp); - getNowAnmPackUpper(UPPER_NOW)->setFrame(tmp); + mUpperFrameCtrl[2].setRate(tmp); + mUpperFrameCtrl[2].setFrame(tmp); + getNowAnmPackUpper(UPPER_2)->setFrame(tmp); } else { - mFrameCtrl2[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed); + mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed); } } } @@ -168,13 +168,13 @@ asm void daAlink_c::setBoomerangReadyAnime() { /* 800E05E8-800E0630 0DAF28 0048+00 2/2 0/0 0/0 .text setThrowBoomerangAnime__9daAlink_cFv */ void daAlink_c::setThrowBoomerangAnime() { - setUpperAnimeParam(0x53, UPPER_NOW, &daAlinkHIO_boom_c0::m.mThrowAnm); + setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm); cancelItemUseQuake(0); } /* 800E0630-800E06B8 0DAF70 0088+00 2/2 0/0 0/0 .text setBoomerangCatchAnime__9daAlink_cFv */ void daAlink_c::setBoomerangCatchAnime() { - setUpperAnimeParam(0x52, UPPER_NOW, &daAlinkHIO_boom_c0::m.mCatchAnm); + setUpperAnimeParam(0x52, UPPER_2, &daAlinkHIO_boom_c0::m.mCatchAnm); setFacePriBck(0xE8); field_0x2f97 = 254; if (mEquipItem != COPY_ROD) { diff --git a/src/d/a/d_a_alink_canoe.inc b/src/d/a/d_a_alink_canoe.inc index 2fd44bf4462..4e36f7cca95 100644 --- a/src/d/a/d_a_alink_canoe.inc +++ b/src/d/a/d_a_alink_canoe.inc @@ -85,7 +85,7 @@ asm void daAlink_c::checkCanoeRideTandem() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkFishingRodAndLureItem() const { +asm BOOL daAlink_c::checkFishingRodAndLureItem() const { nofralloc #include "asm/d/a/d_a_alink/checkFishingRodAndLureItem__9daAlink_cCFv.s" } diff --git a/src/d/a/d_a_alink_copyrod.inc b/src/d/a/d_a_alink_copyrod.inc index b712bfb6505..6c4044c00f7 100644 --- a/src/d/a/d_a_alink_copyrod.inc +++ b/src/d/a/d_a_alink_copyrod.inc @@ -56,11 +56,11 @@ asm void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) { /* void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) { if (checkCopyRodThrowAnime()) { if (param_1 == 0) { - mFrameCtrl2[2].setRate(); + mUpperFrameCtrl[2].setRate(); } f32 tmp = FLOAT_LABEL(lit_6108); - mFrameCtrl2[2].setRate(tmp); - mFrameCtrl2[2].setFrame(tmp); + mUpperFrameCtrl[2].setRate(tmp); + mUpperFrameCtrl[2].setFrame(tmp); } } */ @@ -173,7 +173,7 @@ void daAlink_c::throwCopyRod() { if (checkCopyRodTopUse()) { copy_rod->setThrow(); mCopyRodAcKeep = mItemAcKeep; - i_onNoResetFlg3(COPY_ROD_THROW_AFTER); + i_onNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); mItemAcKeep.clearData(); } dComIfGp_clearPlayerStatus0(0, 0x80); @@ -203,7 +203,7 @@ asm void daAlink_c::returnCopyRod() { #pragma pop /* void daAlink_c::returnCopyRod() { - i_offNoResetFlg3(COPY_ROD_THROW_AFTER); + i_offNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); if (mEquipItem == 0x46) { mItemAcKeep = mCopyRodAcKeep; diff --git a/src/d/a/d_a_alink_cut.inc b/src/d/a/d_a_alink_cut.inc index 50bbdadf28d..630267549c5 100644 --- a/src/d/a/d_a_alink_cut.inc +++ b/src/d/a/d_a_alink_cut.inc @@ -92,7 +92,7 @@ void daAlink_c::changeCutFast() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkCutFastReady() { +asm bool daAlink_c::checkCutFastReady() { nofralloc #include "asm/d/a/d_a_alink/checkCutFastReady__9daAlink_cFv.s" } @@ -128,7 +128,7 @@ void daAlink_c::offSwordModel() { */ BOOL daAlink_c::checkCutTypeNoBlur() const { return mCutType == TYPE_CUT_STAB || mCutType == TYPE_CUT_STAB_COMBO || - mCutType == TYPE_CUT_STAB_FINISH || i_checkNoResetFlg0(UNDER_WATER_MOVEMENT); + mCutType == TYPE_CUT_STAB_FINISH || i_checkNoResetFlg0(FLG0_UNDERWATER); } /* 800D13E4-800D1424 0CBD24 0040+00 7/7 0/0 0/0 .text checkCutTurnInput__9daAlink_cCFv */ @@ -283,13 +283,13 @@ void daAlink_c::setComboReserb() { field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration; } if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) { - i_onNoResetFlg2(UNK_FLG2_2); + i_onNoResetFlg2(FLG2_UNK_2); } } /* 800D2188-800D21D0 0CCAC8 0048+00 1/1 0/0 0/0 .text checkComboReserb__9daAlink_cFv */ BOOL daAlink_c::checkComboReserb() { - return i_checkNoResetFlg2(UNK_FLG2_2) && !checkEventRun(); + return i_checkNoResetFlg2(FLG2_UNK_2) && !checkEventRun(); } /* 800D21D0-800D2284 0CCB10 00B4+00 1/1 0/0 0/0 .text commonCutAction__9daAlink_cFv */ @@ -316,7 +316,7 @@ bool daAlink_c::commonCutAction() { /* 800D2284-800D22BC 0CCBC4 0038+00 13/13 0/0 0/0 .text setSwordVoiceSe__9daAlink_cFUl */ void daAlink_c::setSwordVoiceSe(u32 sfx_id) { - if (!i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (!i_checkNoResetFlg0(FLG0_UNDERWATER)) { voiceStart(sfx_id); } } @@ -477,7 +477,7 @@ asm void daAlink_c::checkCutAtnActorChange() { // literals, and small issue with JMAFastSqrt instructions #ifdef NONMATCHING void daAlink_c::setCutJumpSpeed(int cut_type) { - if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; } else if (checkHeavyStateOn(1, 1)) { @@ -666,7 +666,7 @@ bool daAlink_c::procCutJump() { } if (mLinkAcch.ChkGroundHit()) { procCutJumpLandInit(field_0x3198); - } else if (mFrameCtrl1[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) { + } else if (mUnderFrameCtrl[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) { if (!i_checkNoResetFlg0(FLG0_UNK_40)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_L); } @@ -883,7 +883,7 @@ asm void daAlink_c::procCutLargeJumpInit() { /* 800D6484-800D66C0 0D0DC4 023C+00 1/0 0/0 0/0 .text procCutLargeJump__9daAlink_cFv */ bool daAlink_c::procCutLargeJump() { - daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; if (field_0x3010 != 0) { field_0x2f99 = 4; diff --git a/src/d/a/d_a_alink_damage.inc b/src/d/a/d_a_alink_damage.inc index 21a74d5e902..a36565f3d9c 100644 --- a/src/d/a/d_a_alink_damage.inc +++ b/src/d/a/d_a_alink_damage.inc @@ -116,7 +116,7 @@ asm bool daAlink_c::setThrowDamage(s16 param_0, f32 param_1, f32 param_2, int pa #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::damageMagnification(int param_0, int param_1) { +asm f32 daAlink_c::damageMagnification(int param_0, int param_1) { nofralloc #include "asm/d/a/d_a_alink/damageMagnification__9daAlink_cFii.s" } @@ -189,7 +189,7 @@ asm void daAlink_c::checkIcePolygonDamage(cBgS_PolyInfo* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkMagicArmorNoDamage() { +asm BOOL daAlink_c::checkMagicArmorNoDamage() { nofralloc #include "asm/d/a/d_a_alink/checkMagicArmorNoDamage__9daAlink_cFv.s" } @@ -228,8 +228,8 @@ void daAlink_c::damageTimerCount() { i_offNoResetFlg1(1); } - if (checkDkCaught2Anime() && i_checkNoResetFlg0(0x20000)) { - i_offNoResetFlg0(0x20000); + if (checkDkCaught2Anime() && i_checkNoResetFlg0(FLG0_UNK_20000)) { + i_offNoResetFlg0(FLG0_UNK_20000); } } else if (mDamageColorTime != 0) { mDamageColorTime--; @@ -273,7 +273,7 @@ asm void daAlink_c::checkLargeAttack(int param_0) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkDamageAction() { +asm BOOL daAlink_c::checkDamageAction() { nofralloc #include "asm/d/a/d_a_alink/checkDamageAction__9daAlink_cFv.s" } diff --git a/src/d/a/d_a_alink_demo.inc b/src/d/a/d_a_alink_demo.inc index 93f76df74be..b9b983841f9 100644 --- a/src/d/a/d_a_alink_demo.inc +++ b/src/d/a/d_a_alink_demo.inc @@ -29,7 +29,7 @@ asm bool daAlink_c::checkSetNpcTks(cXyz* param_0, int param_1, int param_2) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkDemoAction() { +asm int daAlink_c::checkDemoAction() { nofralloc #include "asm/d/a/d_a_alink/checkDemoAction__9daAlink_cFv.s" } @@ -131,7 +131,7 @@ asm void daAlink_c::getDemoLookActor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkFlyAtnWait() { +asm bool daAlink_c::checkFlyAtnWait() { nofralloc #include "asm/d/a/d_a_alink/checkFlyAtnWait__9daAlink_cFv.s" } @@ -263,50 +263,50 @@ asm void daAlink_c::setDemoBodyBck(dDemo_actor_c* param_0, u16 param_1) { #pragma pop /* 80118AD0-80118B34 113410 0064+00 1/1 0/0 0/0 .text checkFinalBattle__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkFinalBattle() { - nofralloc -#include "asm/d/a/d_a_alink/checkFinalBattle__9daAlink_cFv.s" +BOOL daAlink_c::checkFinalBattle() { + return checkStageName("D_MN09B") && dComIfGs_isSaveDunSwitch(1); } -#pragma pop /* 80118B34-80118BF4 113474 00C0+00 3/3 0/0 0/0 .text checkRestartDead__9daAlink_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkRestartDead(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_alink/checkRestartDead__9daAlink_cFii.s" +BOOL daAlink_c::checkRestartDead(int i_dmgAmount, int param_1) { + i_dmgAmount *= (int)damageMagnification(param_1, 1); + + if (mProcID != PROC_DEAD && i_dmgAmount >= i_dComIfGs_getLife() && !checkMagicArmorNoDamage() && + !dComIfGs_checkBottle(FAIRY)) { + i_onNoResetFlg2(FLG2_UNK_40000); + procCoDeadInit(0); + return 1; + } + + return 0; } -#pragma pop /* 80118BF4-80118C98 113534 00A4+00 2/2 0/0 0/0 .text setDeadRideSyncPos__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setDeadRideSyncPos() { - nofralloc -#include "asm/d/a/d_a_alink/setDeadRideSyncPos__9daAlink_cFv.s" +void daAlink_c::setDeadRideSyncPos() { + if (i_checkModeFlg(MODE_RIDING) && mRideAcKeep.getActor() != NULL) { + if (i_checkReinRide()) { + setSyncRidePos(); + } else if (checkSpinnerRide()) { + s16 old_angle = mCollisionRot.y; + setSpinnerSyncPos(); + mCollisionRot.y = old_angle; + } + } } -#pragma pop /* 80118C98-80118D7C 1135D8 00E4+00 5/5 0/0 0/0 .text checkDeadHP__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daAlink_c::checkDeadHP() { - nofralloc -#include "asm/d/a/d_a_alink/checkDeadHP__9daAlink_cFv.s" +BOOL daAlink_c::checkDeadHP() { + return ((i_dComIfGs_getLife() == 0 && !i_checkResetFlg0(RFLG0_UNK_400)) && + !dComIfGs_checkBottle(FAIRY)) || + i_checkNoResetFlg2(FLG2_UNK_40000) || + (dComIfGp_getOxygenShowFlag() && dComIfGp_getNowOxygen() == 0); } -#pragma pop /* 80118D7C-80118FF8 1136BC 027C+00 3/3 0/0 0/0 .text checkDeadAction__9daAlink_cFi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkDeadAction(int param_0) { +asm BOOL daAlink_c::checkDeadAction(int param_0) { nofralloc #include "asm/d/a/d_a_alink/checkDeadAction__9daAlink_cFi.s" } @@ -374,14 +374,10 @@ static asm void daAlink_c_getDemoIDData(dDemo_actor_c* param_0, int* param_1, in #pragma pop /* 801195C0-801195F8 113F00 0038+00 7/0 0/0 0/0 .text procDemoCommon__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procDemoCommon() { - nofralloc -#include "asm/d/a/d_a_alink/procDemoCommon__9daAlink_cFv.s" +int daAlink_c::procDemoCommon() { + dComIfGp_evmng_cutEnd(field_0x3184); + return 1; } -#pragma pop /* 801195F8-801196D8 113F38 00E0+00 1/1 0/0 0/0 .text procCoToolDemoInit__9daAlink_cFv */ #pragma push @@ -464,14 +460,18 @@ asm void daAlink_c::procCoUnequip() { #pragma pop /* 8011A688-8011A6FC 114FC8 0074+00 4/4 0/0 0/0 .text setGetSubBgm__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setGetSubBgm(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setGetSubBgm__9daAlink_cFi.s" +void daAlink_c::setGetSubBgm(int param_0) { + u32 se_type = getSeType[param_0]; + + if (se_type == 3 && field_0x3010 == 0) { + se_type = 7; + } + + if (se_type != 8) { + mDoAud_subBgmStart(bgmLabel[se_type]); + dComIfGp_setMesgBgmOn(); + } } -#pragma pop /* 8011A6FC-8011A798 11503C 009C+00 1/0 0/0 0/0 .text checkTreasureRupeeReturn__9daAlink_cCFi */ // register issues. probably wrong order of operations @@ -919,14 +919,14 @@ asm void daAlink_c::procCoTwGateInit() { #pragma pop /* 8011D7D4-8011D82C 118114 0058+00 1/0 0/0 0/0 .text procCoTwGate__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procCoTwGate() { - nofralloc -#include "asm/d/a/d_a_alink/procCoTwGate__9daAlink_cFv.s" +int daAlink_c::procCoTwGate() { + if (mUnderFrameCtrl[0].checkAnmEnd()) { + dComIfGp_evmng_cutEnd(field_0x3184); + } + + field_0x2f99 = 7; + return 1; } -#pragma pop /* 8011D82C-8011D8F8 11816C 00CC+00 1/0 0/0 0/0 .text procWolfSnowEscapeInit__9daAlink_cFv */ #pragma push @@ -1102,10 +1102,10 @@ asm void daAlink_c::procGanonFinishInit() { /* 8011EA78-8011EAE8 1193B8 0070+00 1/0 0/0 0/0 .text procGanonFinish__9daAlink_cFv */ bool daAlink_c::procGanonFinish() { - i_onEndResetFlg1(GANON_FINISH); + i_onEndResetFlg1(ERFLG1_GANON_FINISH); current.pos = field_0x37c8; - if (mFrameCtrl1[0].checkAnmEnd()) { - setSingleAnimeBaseMorf(ANM_GANON_FINISH, lit_6041); + if (mUnderFrameCtrl[0].checkAnmEnd()) { + setSingleAnimeBaseMorf(ANM_GANON_FINISH_WAIT, lit_6041); } return true; } @@ -1122,14 +1122,13 @@ asm void daAlink_c::procCutFastReadyInit() { #pragma pop /* 8011EB8C-8011EBDC 1194CC 0050+00 1/0 0/0 0/0 .text procCutFastReady__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procCutFastReady() { - nofralloc -#include "asm/d/a/d_a_alink/procCutFastReady__9daAlink_cFv.s" +int daAlink_c::procCutFastReady() { + if (mUpperFrameCtrl[2].checkAnmEnd()) { + dComIfGp_evmng_cutEnd(field_0x3184); + } + + return 1; } -#pragma pop /* 8011EBDC-8011EC60 11951C 0084+00 1/0 0/0 0/0 .text procMasterSwordStickInit__9daAlink_cFv */ int daAlink_c::procMasterSwordStickInit() { @@ -1137,7 +1136,7 @@ int daAlink_c::procMasterSwordStickInit() { return 0; } - setSingleAnimeBase(ANM_MASTER_SWORD_STICK_INIT); + setSingleAnimeBase(ANM_DEMO_MASTER_SWORD_STICK); voiceStart(Z2SE_AL_V_MSTR_SW_STICK); mNormalSpeed = FLOAT_LABEL(lit_6108); current.angle.y = mCollisionRot.y; @@ -1149,13 +1148,13 @@ int daAlink_c::procMasterSwordStickInit() { /* 8011EC60-8011ED18 1195A0 00B8+00 1/0 0/0 0/0 .text procMasterSwordStick__9daAlink_cFv */ int daAlink_c::procMasterSwordStick() { - daPy_frameCtrl_c* fCtrl = &mFrameCtrl1[0]; + daPy_frameCtrl_c* fCtrl = &mUnderFrameCtrl[0]; if (mCommonCounter != 0) { dComIfGp_evmng_cutEnd(field_0x3184); } else if (fCtrl->checkAnmEnd()) { mCommonCounter = 1; - setSingleAnimeBaseMorf(ANM_MASTER_SWORD_STICK, lit_6041); + setSingleAnimeBaseMorf(ANM_DEMO_MASTER_SWORD_WAIT, lit_6041); dComIfGp_evmng_cutEnd(field_0x3184); } else if (fCtrl->getFrame() >= lit_14621) { field_0x2f93 = 5; @@ -1170,7 +1169,7 @@ int daAlink_c::procMasterSwordPullInit() { return 0; } - setSingleAnimeBase(ANM_MASTER_SWORD_PULL_INIT); + setSingleAnimeBase(ANM_DEMO_MASTER_SWORD_PULL); voiceStart(Z2SE_AL_V_MSTR_SW_PULLOUT); field_0x3010 = 0; @@ -1202,9 +1201,11 @@ int daAlink_c::procDungeonWarpReadyInit() { u32 id; if (checkItemSetButton(DUNGEON_EXIT) != 2) { - id = fopAcM_create(PROC_OBJ_TKS, 0, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1); + id = fopAcM_create(PROC_OBJ_TKS, 0, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot, + NULL, -1); } else { - id = fopAcM_create(PROC_NPC_TKC, 2, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot, NULL, -1); + id = fopAcM_create(PROC_NPC_TKC, 2, ¤t.pos, fopAcM_GetRoomNo(this), &mCollisionRot, + NULL, -1); } if (id == -1) { @@ -1213,7 +1214,7 @@ int daAlink_c::procDungeonWarpReadyInit() { mDemo.i_setSpecialDemoType(); commonProcInit(PROC_DUNGEON_WARP_READY); - setSingleAnimeBase(ANM_DUNGEON_WARP_READY_INIT); + setSingleAnimeBase(ANM_TRADE_ITEM_PULL_OUT); mNormalSpeed = FLOAT_LABEL(lit_6108); current.angle.y = mCollisionRot.y; field_0x32cc = id; @@ -1290,7 +1291,8 @@ int daAlink_c::procDungeonWarp() { if (mScale.x < 0.01f) { i_onNoResetFlg0(FLG0_UNK_8000000); if (checkItemGet(DUNGEON_EXIT, 1)) { - int escape = dStage_stagInfo_GetEscapeWarp(i_dComIfGp_getStage()->getStagInfo()); + int escape = + dStage_stagInfo_GetEscapeWarp(i_dComIfGp_getStage()->getStagInfo()); dStage_changeScene(escape, 0.0f, 12, -1, mCollisionRot.y, -1); dMeter2Info_warpOutProc(); } else { @@ -1345,16 +1347,55 @@ asm void daAlink_c::procDungeonWarpSceneStart() { #pragma pop /* 8011F5D4-8011F658 119F14 0084+00 2/2 0/0 0/0 .text daAlink_searchPortal__FP10fopAc_ac_cPv */ +// matches with literals +#ifdef NONMATCHING +static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* i_actor, void* i_data) { + if (fopAcM_GetName(i_actor) == PROC_KYTAG04) { + cXyz* pos = (cXyz*)i_data; + if (i_actor->current.pos.abs2XZ(*pos) < 1.0f) { + return i_actor; + } + } + + return NULL; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1) { +static asm fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1) { nofralloc #include "asm/d/a/d_a_alink/daAlink_searchPortal__FP10fopAc_ac_cPv.s" } #pragma pop +#endif /* 8011F658-8011F7D8 119F98 0180+00 1/1 0/0 0/0 .text checkAcceptWarp__9daAlink_cFv */ +// r3/r4 swap loading midna ptr +#ifdef NONMATCHING +bool daAlink_c::checkAcceptWarp() { + cM3dGPla plane; + + if (mLinkAcch.ChkGroundHit() && !i_checkModeFlg(MODE_PLAYER_FLY) && + !i_checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!getSlidePolygon(&plane) && !checkForestOldCentury()) { + if (i_checkMidnaRide() || getMidnaActor()->checkPortalObjRide()) { + if ((checkField() || checkCastleTown()) && !checkStageName("R_SP161")) { + if ((i_checkWolf() && + (i_checkModeFlg(MODE_UNK_1000) || i_dComIfGp_checkPlayerStatus0(0, 0x10))) || + (!i_checkWolf() && + (checkEventRun() || getMidnaActor()->checkMetamorphoseEnable()) && + (i_checkModeFlg(4) || i_dComIfGp_checkPlayerStatus0(0, 0x10)))) { + return true; + } + } + } + } + } + + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1363,6 +1404,7 @@ asm bool daAlink_c::checkAcceptWarp() { #include "asm/d/a/d_a_alink/checkAcceptWarp__9daAlink_cFv.s" } #pragma pop +#endif /* 8011F7D8-8011F8B8 11A118 00E0+00 2/2 0/0 0/0 .text dungeonReturnWarp__9daAlink_cFv */ void daAlink_c::dungeonReturnWarp() { @@ -1405,9 +1447,9 @@ void daAlink_c::skipPortalObjWarp() { /* 8011F9EC-8011FBC0 11A32C 01D4+00 1/1 0/0 0/0 .text checkWarpStart__9daAlink_cFv */ void daAlink_c::checkWarpStart() { if (dMeter2Info_getWarpStatus() != 0) { - if (dMeter2Info_getWarpStatus() == 3 || dComIfGp_event_compulsory(this, 0, 0xFFFF)) { - i_onNoResetFlg0(0x4000); - if (dMeter2Info_getWarpStatus() == 3) { + if (dMeter2Info_getWarpStatus() == WARP_DECIDED || dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + i_onNoResetFlg0(FLG0_UNK_4000); + if (dMeter2Info_getWarpStatus() == WARP_DECIDED) { const char* portal; if (!i_checkMidnaRide()) { if (dComIfGp_TargetWarpPt_get() == 3) { @@ -1434,8 +1476,8 @@ void daAlink_c::checkWarpStart() { mDemo.i_setSpecialDemoType(); if (dMeter2Info_getWarpStatus() == 1) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - u32 tmp = dStage_stagInfo_GetEscapeWarp(stag_info); - dStage_changeScene(tmp, FLOAT_LABEL(lit_6108), 0, -1, mCollisionRot.y, -1); + u32 exitID = dStage_stagInfo_GetEscapeWarp(stag_info); + dStage_changeScene(exitID, FLOAT_LABEL(lit_6108), 0, -1, mCollisionRot.y, -1); } else { dungeonReturnWarp(); } diff --git a/src/d/a/d_a_alink_grab.inc b/src/d/a/d_a_alink_grab.inc index f98beeb25fe..8afa86684a6 100644 --- a/src/d/a/d_a_alink_grab.inc +++ b/src/d/a/d_a_alink_grab.inc @@ -193,7 +193,7 @@ asm void daAlink_c::setGrabUpperAnime(f32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkGrabRooster() { +asm BOOL daAlink_c::checkGrabRooster() { nofralloc #include "asm/d/a/d_a_alink/checkGrabRooster__9daAlink_cFv.s" } @@ -558,7 +558,7 @@ asm void daAlink_c::procInsectCatchInit() { /* 800E71D4-800E7254 0E1B14 0080+00 1/0 0/0 0/0 .text procInsectCatch__9daAlink_cFv */ bool daAlink_c::procInsectCatch() { - daPy_frameCtrl_c* tmp = &mFrameCtrl1[0]; + daPy_frameCtrl_c* tmp = &mUnderFrameCtrl[0]; if (tmp->checkAnmEnd()) { checkNextAction(0); @@ -652,7 +652,7 @@ asm s16 daAlink_c::getChainStickAngleY(s16 param_0) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkChainEmphasys() { +asm u8 daAlink_c::checkChainEmphasys() { nofralloc #include "asm/d/a/d_a_alink/checkChainEmphasys__9daAlink_cFv.s" } @@ -685,8 +685,8 @@ bool daAlink_c::checkChainBlockPushPull() { fopAc_ac_c* actor = field_0x2844.getActor(); if (actor != NULL) { s16 name = fopAcM_GetName(actor); - // actor is Cblock || chainSw || Cwall - if (name == 0x7E || name == 0x16F || name == 0x7F) { + if (name == PROC_Obj_ChainBlock || name == PROC_Obj_SwChain || + name == PROC_Obj_ChainWall) { return true; } } @@ -750,7 +750,7 @@ asm void daAlink_c::setWallGrabStatus(u8 param_0, u8 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getWallGrabStatus() { +asm int daAlink_c::getWallGrabStatus() { nofralloc #include "asm/d/a/d_a_alink/getWallGrabStatus__9daAlink_cFv.s" } diff --git a/src/d/a/d_a_alink_guard.inc b/src/d/a/d_a_alink_guard.inc index 11cf4100822..13ee2abf87c 100644 --- a/src/d/a/d_a_alink_guard.inc +++ b/src/d/a/d_a_alink_guard.inc @@ -23,7 +23,7 @@ asm BOOL daAlink_c::checkSpecialNpc(fopAc_ac_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkShieldAttackEmphasys() { +asm bool daAlink_c::checkShieldAttackEmphasys() { nofralloc #include "asm/d/a/d_a_alink/checkShieldAttackEmphasys__9daAlink_cFv.s" } diff --git a/src/d/a/d_a_alink_hook.inc b/src/d/a/d_a_alink_hook.inc index 4d2dd35e96e..c2fe6d7661a 100644 --- a/src/d/a/d_a_alink_hook.inc +++ b/src/d/a/d_a_alink_hook.inc @@ -271,7 +271,7 @@ bool daAlink_c::cancelHookshotMove() { if (mFastShotTime == 0 && mHookshotMode == 0) { if (checkHookshotAnime() && (mTargetedActor == NULL && !i_checkAttentionLock() || !itemButton())) { - resetUpperAnime(UPPER_NOW, -1.0f); + resetUpperAnime(UPPER_2, -1.0f); return 1; } } diff --git a/src/d/a/d_a_alink_kandelaar.inc b/src/d/a/d_a_alink_kandelaar.inc index 0167abe9209..c0bf0c42631 100644 --- a/src/d/a/d_a_alink_kandelaar.inc +++ b/src/d/a/d_a_alink_kandelaar.inc @@ -120,7 +120,7 @@ asm bool daAlink_c::getKandelaarFlamePos() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkKandelaarEquipAnime() const { +asm BOOL daAlink_c::checkKandelaarEquipAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkKandelaarEquipAnime__9daAlink_cCFv.s" } diff --git a/src/d/a/d_a_alink_link.inc b/src/d/a/d_a_alink_link.inc index ecbcda371cb..4d4b6e1097e 100644 --- a/src/d/a/d_a_alink_link.inc +++ b/src/d/a/d_a_alink_link.inc @@ -62,7 +62,7 @@ int daAlink_c::procServiceWaitInit() { /* 800C30F0-800C3224 0BDA30 0134+00 1/0 0/0 0/0 .text procServiceWait__9daAlink_cFv */ int daAlink_c::procServiceWait() { - J3DFrameCtrl* ctrl = &mFrameCtrl1[0]; + J3DFrameCtrl* ctrl = &mUnderFrameCtrl[0]; if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && (checkEventRun() || checkGuardActionChange() || mCollisionRot.y != field_0x2fe6)) { ctrl->setRate(FLOAT_LABEL(lit_6108)); @@ -91,10 +91,10 @@ asm void daAlink_c::procTiredWaitInit() { /* 800C3338-800C33B8 0BDC78 0080+00 1/0 0/0 0/0 .text procTiredWait__9daAlink_cFv */ int daAlink_c::procTiredWait() { - daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; if (!checkNextAction(0)) { if (ctrl->checkAnmEnd()) { - setSingleAnimeBase(ANM_TIRED_WAIT); + setSingleAnimeBase(ANM_WAIT_TIRED); } else if (ctrl->getAttribute() == 2) { setTiredVoice(ctrl); } @@ -243,7 +243,7 @@ int daAlink_c::procWaitTurnInit() { return 0; } - setSingleAnimeBaseSpeed(ANM_WAIT_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, + setSingleAnimeBaseSpeed(ANM_STEP_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_basic_c0::m.mAnmBlendFactor); if (checkEventRun()) { mNormalSpeed = FLOAT_LABEL(lit_6108); @@ -339,10 +339,10 @@ int daAlink_c::procSideStepInit(int jump_type) { } else { daAlink_ANM anm_id; if (field_0x2f98 == 2) { - anm_id = ANM_SIDE_STEP_LEFT; + anm_id = ANM_SIDE_JUMP_LEFT; current.angle.y = mCollisionRot.y + 0x4000; } else { - anm_id = ANM_SIDE_STEP_RIGHT; + anm_id = ANM_SIDE_JUMP_RIGHT; current.angle.y = mCollisionRot.y - 0x4000; } setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm); @@ -350,7 +350,7 @@ int daAlink_c::procSideStepInit(int jump_type) { mSpeed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV; field_0x300a = 1; } - if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (i_checkNoResetFlg0(FLG0_UNDERWATER)) { mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; } @@ -412,10 +412,10 @@ int daAlink_c::procSideStepLandInit() { daAlink_ANM anm_id; u16 uvar3; if (field_0x2f98 == 2) { - anm_id = ANM_SIDE_STEP_LEFT_LAND; + anm_id = ANM_SIDE_JUMP_LEFT_LAND; uvar3 = 0x3F; } else { - anm_id = ANM_SIDE_STEP_RIGHT_LAND; + anm_id = ANM_SIDE_JUMP_RIGHT_LAND; uvar3 = 0x40; } setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideLandAnm); @@ -440,7 +440,7 @@ int daAlink_c::procSideStepLandInit() { /* 800C4278-800C4378 0BEBB8 0100+00 1/0 0/0 0/0 .text procSideStepLand__9daAlink_cFv */ int daAlink_c::procSideStepLand() { - daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; i_onEndResetFlg0(ERFLG0_UNK_8000000); if (field_0x2fcc != 0) { field_0x2fcc = 10; @@ -482,7 +482,7 @@ int daAlink_c::procSlideInit(s16 param_0) { if (cLib_distanceAngleS(param_0, mCollisionRot.y) < 0x3800 || field_0x300e != 0) { field_0x3198 = 1; - setSingleAnimeParam(ANM_FORWARD_SLIDE, &daAlinkHIO_slide_c0::m.mForwardSlideAnm); + setSingleAnimeParam(ANM_SLIDE_FORWARD, &daAlinkHIO_slide_c0::m.mForwardSlideAnm); dComIfGp_setPlayerStatus1(0, 0x100); onModeFlg(MODE_UNK_8000); onModeFlg(MODE_UNK_2000000); @@ -490,11 +490,11 @@ int daAlink_c::procSlideInit(s16 param_0) { mNormalSpeed = FLOAT_LABEL(lit_6108); field_0x2f9d = 4; setUpperAnimeBaseMorf(0xCE, lit_6041); - i_onNoResetFlg1(0x10000000); + i_onNoResetFlg1(FLG1_UNK_10000000); setFootEffectProcType(0); } else { field_0x3198 = 0; - setSingleAnimeParam(ANM_BACKWARD_SLIDE, &daAlinkHIO_slide_c0::m.mBackwardSlideAnm); + setSingleAnimeParam(ANM_SLIDE_BACKWARD, &daAlinkHIO_slide_c0::m.mBackwardSlideAnm); dComIfGp_setPlayerStatus1(0, 0x200); field_0x2f9d = 0x60; setFootEffectProcType(1); @@ -525,13 +525,13 @@ int daAlink_c::procSlideLandInit(int param_0) { commonProcInit(PROC_SLIDE_LAND); if (param_0 != 0) { - setSingleAnimeParam(ANM_BACKWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mForwardLandAnm); + setSingleAnimeParam(ANM_SLIDE_FORWARD_END, &daAlinkHIO_slide_c0::m.mForwardLandAnm); field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.field_0x10; field_0x3198 = 1; field_0x2f99 = 4; field_0x3588 = l_waitBaseAnime; } else { - setSingleAnimeParam(ANM_FORWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mBackwardLandAnm); + setSingleAnimeParam(ANM_SLIDE_BACKWARD_END, &daAlinkHIO_slide_c0::m.mBackwardLandAnm); field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.field_0x10; field_0x3198 = 0; } @@ -542,7 +542,7 @@ int daAlink_c::procSlideLandInit(int param_0) { /* 800C4894-800C494C 0BF1D4 00B8+00 1/0 0/0 0/0 .text procSlideLand__9daAlink_cFv */ int daAlink_c::procSlideLand() { - daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + daPy_frameCtrl_c* ctrl = &mUnderFrameCtrl[0]; cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), lit_7450); if (field_0x3198 != 0) { @@ -592,7 +592,7 @@ int daAlink_c::procFrontRollInit() { mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed; } - if (!i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (!i_checkNoResetFlg0(FLG0_UNDERWATER)) { if (checkHeavyStateOn(1, 1)) { mNormalSpeed *= mHeavySpeedMultiplier; } @@ -1025,7 +1025,7 @@ int daAlink_c::procCoMetamorphoseInit() { if (i_checkWolf()) { // Transform Wolf -> Human - setSingleAnimeWolfBase(ANM_TRANFORM_HUMAN); + setSingleAnimeWolfBase(WANM_TRANSFORM_TO_HUMAN); field_0x3588 = l_wolfBaseAnime; field_0x347c = 0.5f; field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed; @@ -1041,7 +1041,7 @@ int daAlink_c::procCoMetamorphoseInit() { if (mDemo.getDemoMode() == 0x39 && mDemo.getParam1() == 1) { voiceStart(Z2SE_AL_V_TRANSFORM); } - setSingleAnimeBase(ANM_TRANSFORM_WOLF); + setSingleAnimeBase(ANM_TRANSFORM_TO_WOLF); setMetamorphoseModel(1); field_0x3588 = l_waitBaseAnime; field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed; @@ -1235,8 +1235,8 @@ COMPILER_STRIP_GATE(0x8039207C, &lit_74748); /* 80392088-80392094 01E6E8 000C+00 0/1 0/0 0/0 .rodata localBoomCatchPos$74910 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const localBoomCatchPos[12] = { - 0x41, 0x95, 0x99, 0x9A, 0x43, 0x12, 0x4C, 0xCD, 0x42, 0x8A, 0x66, 0x66, +SECTION_RODATA static Vec const localBoomCatchPos = { + 18.7f, 146.3f, 69.2f, }; COMPILER_STRIP_GATE(0x80392088, &localBoomCatchPos); #pragma pop @@ -1258,14 +1258,940 @@ SECTION_DEAD static char const* const pad_8039263C = "\0\0\0"; #pragma pop /* 800C8700-800CAFA8 0C3040 28A8+00 1/1 0/0 0/0 .text execute__9daAlink_cFv */ +#ifdef NONMATCHING +int daAlink_c::execute() { + loadModelDVD(); + + if (checkEndResetFlg0(ERFLG0_UNK_2000000) && getMidnaActor() != NULL) { + getMidnaActor()->onNoServiceWait(); + } + + if (field_0x30fe != 0) { + *field_0x814.GetCCMoveP() = field_0x372c * (1.0f / (f32)field_0x30fe); + } + + if (checkHorseRide() && checkBoarSingleBattle() && dComIfGp_getHorseActor() != NULL) { + mCollisionRot.y = dComIfGp_getHorseActor()->mCollisionRot.y; + current.angle.y = mCollisionRot.y; + } else if (checkMagneBootsOn()) { + mCollisionRot.y = field_0x3118; + } else if (checkModeFlg(MODE_VINE_CLIMB) || checkCargoCarry()) { + mCollisionRot.y = field_0x3108; + } + + if (checkNoResetFlg2(FLG2_UNK_1) && mEquipItem != KANTERA && checkItemSetButton(KANTERA) == 2) { + offKandelaarModel(); + } + + mSwordChangeWaitTimer = 0; + setSelectEquipItem(0); + + if (dComIfGp_event_runCheck()) { + field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0); + + if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == 0x102) { + deleteEquipItem(FALSE, FALSE); + } + } + + if (mSwordUpTimer != 0) { + mSwordUpTimer--; + } + + field_0x317c = dComIfGp_getPlayerCameraID(0); + field_0x3510 = current.pos; + + if (checkMagneBootsOn()) { + if (checkNoResetFlg0(FLG0_UNK_2000) && dComIfG_Bgsp().ChkPolySafe(mMagneLineChk) && dComIfG_Bgsp().ChkMoveBG(mMagneLineChk)) { + s16 shape_angle_y = mCollisionRot.y; + s16 angle_y = current.angle.y; + f32 pos_y = current.pos.y; + + dComIfG_Bgsp().MoveBgCrrPos(mMagneLineChk, true, ¤t.pos, ¤t.angle, &mCollisionRot, false, false); + + if (field_0x3114 > 0x6000 || field_0x3114 == -0x8000) { + mCollisionRot.y = shape_angle_y - (s16)(mCollisionRot.y - shape_angle_y); + current.angle.y = angle_y - (s16)(current.angle.y - angle_y); + } + + dComIfG_Bgsp().MoveBgCrrPos(mMagneLineChk, true, &next.pos, NULL, NULL, false, false); + + if (getMoveBGActorName(mMagneLineChk, 0) == PROC_Obj_MagneArm) { + field_0x34c8.y += current.pos.y - pos_y; + } else { + field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; + } + } + } else if (mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(MODE_VINE_CLIMB | MODE_UNK_800) && mProcID != PROC_TOOL_DEMO && + mLinkAcch.GetGroundH() != -1000000000.0f && + dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) { + bool uvar23; + if (mProcID == PROC_SPINNER_READY) { + uvar23 = true; + } else { + uvar23 = mLinkAcch.ChkGroundHit(); + } + f32 pos_y = current.pos.y; + + dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, uvar23, ¤t.pos, ¤t.angle, &mCollisionRot, false, false); + dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, uvar23, &next.pos, NULL, NULL, false, false); + field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; + } + + field_0x3798 = next.pos; + field_0x2fe6 = mCollisionRot.y; + field_0x307c = mStickAngle; + field_0x33a4 = field_0x33ac; + + if (checkResetFlg0(RFLG0_UNK_8000000) && !checkCutDashAnime()) { + mCutType = 0; + } + + mResetFlg0 = 0; + mResetFlg1 = 0; + + daAlink_matAnm_c::decMorfFrame(); + field_0x2180[0]->offSetFlg(); + field_0x2180[1]->offSetFlg(); + + field_0x2f99 = 0; + field_0x2f9d = 0; + field_0x2fc1 = 6; + + if (!checkSwordGet() && mEquipItem == 0x103) { + deleteEquipItem(FALSE, FALSE); + } + + field_0x2fae = 0; + + setDoStatus(0); + setRStatus(0); + set3DStatus(0, 0); + setMidnaTalkStatus(0); + + if (checkWolf()) { + setBStatus(ACTION_STR_ATTACK); + setWolfDigStatus(ACTION_STR_NONE); + + // Have wolf sense ability + if (dComIfGs_isEventBit(0x4308)) { + setWolfSenceStatus(ACTION_STR_SENSE); + } else { + setWolfSenceStatus(ACTION_STR_NONE); + } + } else { + if (checkCanoeRide() && checkStageName("F_SP127")) { + setBStatus(ACTION_STR_NONE5); + } else if (checkSwordGet()) { + setBStatus(ACTION_STR_NONE3); + } else { + setBStatus(ACTION_STR_NONE); + } + } + + field_0x2f91 = 0; + + if (mProcID == PROC_BOTTLE_SWING && mEvtInfo.checkCommandCatch()) { + mDemo.setSpecialDemoType(); + } + + field_0x280c.setActor(); + mRideAcKeep.setActor(); + + if (checkNoResetFlg2(FLG2_UNK_58)) { + field_0x281c.setActor(); + if (field_0x281c.getActor() == NULL) { + offNoResetFlg2(FLG2_UNK_58); + } + } else { + field_0x281c.clearData(); + } + + field_0x2844.setActor(); + mThrowBoomerangAcKeep.setActor(); + mCopyRodAcKeep.setActor(); + + if (mCopyRodAcKeep.getActor() != NULL) { + static_cast(mCopyRodAcKeep.getActor())->setControllActorData(); + } + + mGrabItemAcKeep.setActor(); + field_0x284c.setActor(); + field_0x285c.setActor(); + + if (checkFishingRodAndLureItem() && mItemAcKeep.getActor() == NULL) { + fopAc_ac_c* item_actor = fopAcM_SearchByID(mItemAcKeep.getID()); + if (item_actor != NULL) { + mItemAcKeep.setData(item_actor); + } + } else { + mItemAcKeep.setActor(); + } + + if (checkWolf()) { + checkWolfLockData(); + } + + setAtnList(); + setDemoData(); + setStickData(); + + if (mFastShotTime < 0) { + mFastShotTime = 0; + } + + checkOxygenTimer(); + + if (field_0x2fce != 0) { + field_0x2fce--; + } + + if (field_0x2fcd != 0) { + field_0x2fcd--; + } + + if (field_0x3000 != 0) { + field_0x3000--; + } + + if (field_0x30fc != 0) { + field_0x30fc--; + } + + if (field_0x2fb4 != 0) { + field_0x2fb4--; + } + + if (field_0x30a4 != 0) { + field_0x30a4--; + } + + if (field_0x30a6 != 0) { + field_0x30a6--; + } + + if (field_0x30ec != 0) { + field_0x30ec--; + } + + if (mSwordFlourishTimer != 0) { + mSwordFlourishTimer--; + } + + if (field_0x3100 != 0) { + field_0x3100--; + } + + if (field_0x2fc4 != 0) { + field_0x2fc4--; + } + + if (field_0x30d2 != 0) { + field_0x30d2--; + } + + if (field_0x30d0 != 0) { + field_0x30d0--; + } else { + offNoResetFlg1(FLG1_UNK_400000); + } + + if (field_0x2fd2 != 0) { + field_0x2fd2--; + } + + if (field_0x2fd3 != 0 && mProcID != PROC_BOTTLE_DRINK && mProcID != PROC_CANOE_BOTTLE_DRINK && mProcID != PROC_HORSE_BOTTLE_DRINK) { + field_0x2fd3--; + } + + if (field_0x2fd4 != 0 && mProcID != PROC_GUARD_SLIP) { + field_0x2fd4--; + + if (field_0x2fd4 == 0) { + field_0x2fd5 = 0; + } + } + + if (checkWolfEyeUp()) { + fopAc_ac_c* partner = (fopAc_ac_c*)fopAcM_getTalkEventPartner(this); + + const char* event_name; + if (checkEventRun()) { + event_name = dComIfGp_getEventManager().getRunEventName(); + } else { + event_name = NULL; + } + + if (event_name != NULL) { + if (!strcmp(event_name, "kiko_yami") || !strcmp(event_name, "fire_insect") || + (checkStageName("F_SP108") && (!strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "yami_mog"))) || + (checkStageName("R_SP109") && (!strcmp(event_name, "MapToolCamera1") || !strcmp(event_name, "MapToolCamera2") || !strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "fire_insect"))) || + (checkStageName("F_SP115") && !strcmp(event_name, "MapToolCamera23"))) { + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime + 1; + } + } + + if (checkEndResetFlg1(ERFLG1_UNK_200) || (checkDungeon() && mEvtInfo.checkCommandDoor()) || + mProcID == PROC_WOLF_GET_SMELL || mProcID == PROC_WOLF_DIG || mProcID == PROC_WOLF_DIG_THROUGH || + checkNoResetFlg0(FLG0_UNK_4000) || dComIfGp_checkPlayerStatus1(0, 0x1000000) || + (checkEventRun() && partner != NULL && (partner->mAttentionInfo.mFlags & 0x400000)) || + !strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName)) { + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime; + } else if (mTargetedActor != NULL || dComIfGp_checkPlayerStatus0(0, 0x2000)) { + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime - 1; + } else if (!dComIfGp_getEvent().isOrderOK() && mProcID != PROC_GET_ITEM && + mWolfEyeUp <= daAlinkHIO_wolf_c0::m.mSensesLingerTime) { + offWolfEyeUp(); + } else { + mWolfEyeUp = 1; + } + } + + if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == 0x103) { + mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime; + } + + if ((checkWolf() && field_0x2fbc == 11 && checkWaterPolygonUnder()) || field_0x2fbb == 11) { + onNoResetFlg0(FLG0_UNK_40000000); + } + + fopAc_ac_c* item_actor = mGrabItemAcKeep.getActor(); + if (item_actor != NULL && (!fopAcM_checkCarryNow(item_actor) || (checkNoResetFlg0(FLG0_UNDERWATER) && (checkGrabRooster() || fopAcM_GetName(item_actor) == PROC_E_NEST || checkGrabCarryActor())))) { + freeGrabItem(); + } + + allAnimePlay(); + + if (mDamageTimer != 0) { + damageTimerCount(); + } + + if (checkEquipHeavyBoots()) { + int temp_r3_22 = checkItemSetButton(HVY_BOOTS); + if (temp_r3_22 == 2 || checkNotHeavyBootsStage()) { + if (!dComIfGp_checkPlayerStatus1(0, 0x10000) || !checkHookshotRoofLv7Boss()) { + setHeavyBoots(0); + } + } else { + dMeter2Info_onDirectUseItem(temp_r3_22); + } + } + + checkWarpStart(); + + if (!checkSpecialDemoMode() && mClothesChangeWaitTimer == 0) { + if (!checkDemoAction() && !checkDeadAction(0) && !checkNoResetFlg0(FLG0_UNK_100000) && !checkAutoJumpAction()) { + checkSwimAction(0); + } + + if (checkDamageAction() && mProcID == PROC_LARGE_DAMAGE && checkMagneBootsOn()) { + cancelMagneBootsOn(); + } + + checkBoomerangCatchAction(); + } + + offNoResetFlg1(FLG1_UNK_20); + + if (checkWolf()) { + checkWolfComboCnt(); + + if (checkWolfEnemyThrowAnime()) { + checkWolfEnemyThrowAction(); + } + } else { + checkItemButtonChange(); + setItemAction(); + checkComboCnt(); + setShieldGuard(); + + if (checkCutFastReady()) { + if (checkNoUpperAnime()) { + setUpperAnime(0x255, UPPER_2, daAlinkHIO_cut_c0::m.mEquipAnm.mRate, 12.0f, daAlinkHIO_cut_c0::m.mEquipAnm.mEndF, daAlinkHIO_cut_c0::m.mEquipAnm.mInterpolation); + onNoResetFlg0(FLG0_UNK_1000000); + } + } else if (checkNoResetFlg0(FLG0_UNK_1000000)) { + resetUpperAnime(UPPER_2, 5.0f); + } + + if (mEquipItem == KANTERA && checkNoUpperAnime() && !checkKandelaarEquipAnime() && (checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH)) { + if (checkReinRide()) { + setUpperAnimeBase(0x264); + } else { + setUpperAnimeBase(0x268); + } + + mNowAnmPackUpper[2].setRatio(0.0f); + } + } + + checkLightSwordMtrl(); + (this->*mpProcFunc)(); + + if (!checkEndResetFlg0(ERFLG0_UNK_2000) && checkWindDashAnime()) { + resetUpperAnime(UPPER_2, 3.0f); + } + + playFaceTextureAnime(); + + cXyz old_pos = current.pos; + posMove(); + + if (checkWolf()) { + wolfBgCheck(); + } else if (checkModeFlg(MODE_SWIMMING)) { + swimBgCheck(120.0f); + } + + cXyz pos = current.pos; + field_0x3528 = mSpeed; + + mLinkAcch.ClrGroundHit(); + mLinkAcch.CrrPos(dComIfG_Bgsp()); + + if (checkMagneBootsOn()) { + current.pos = pos; + } + + if (!mLinkAcch.ChkGroundHit() && !mLinkAcch.ChkRoofHit() && getZoraSwim()) { + current.pos.y = pos.y; + } + + iceSlipBgCheck(); + setWaterY(); + autoGroundHit(); + + if (checkNoResetFlg0(FLG0_UNDERWATER) || (checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_UNK_100))) { + f32 var_f31; + if (mProcID == PROC_HOOKSHOT_FLY) { + var_f31 = current.pos.y - (field_0x598 * 0.5f); + } else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) { + var_f31 = (-65.0f + current.pos.y) - daAlinkHIO_swim_c0::m.mInitHeight; + } else { + var_f31 = current.pos.y; + } + + if (!checkNoResetFlg0(FLG0_UNK_80) || mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mInitHeight) { + swimOutAfter(0); + } + } + + if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { + J3DTransformInfo ti; + field_0x1f20->getAnm(0)->getTransform(0, &ti); + mDoMtx_stack_c::transS(old_pos); + mDoMtx_stack_c::YrotM(mCollisionRot.y); + + Vec tmp; + mDoMtx_stack_c::multVec(&tmp, ¤t.pos); + mSpeed.y = 0.0f; + + if (field_0x3198 != 0) { + if (mLinkAcch.GetGroundH() != -1000000000.0f) { + current.pos.y = mLinkAcch.GetGroundH(); + } + } + } else if (mProcID == PROC_HOOKSHOT_FLY || mProcID == PROC_MAGNE_BOOTS_FLY || (checkModeFlg(MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING) && mProcID != PROC_HORSE_GETOFF && mProcID != PROC_WOLF_CHAIN_READY && !checkBoardRide())) { + current.pos = pos; + } else if (checkModeFlg(MODE_UNK_4000)) { + if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) { + current.pos.y = old_pos.y; + mSpeed.y = 0.0f; + } + current.pos.x = pos.x; + current.pos.z = pos.z; + } else if (checkFlyAtnWait() || mProcID == PROC_WARP) { + current.pos.y = old_pos.y; + mSpeed.y = 0.0f; + } + + field_0x3178 = field_0x3174; + + if (mLinkAcch.GetGroundH() != -1000000000.0f) { + setRoomInfo(); + + if (!checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn() && mProcID != PROC_TOOL_DEMO && mProcID != PROC_GANON_FINISH && mProcID != PROC_DUNGEON_WARP && (field_0x2f8c == 1 || field_0x2f8c == 3)) { + setStepsOffset(); + } else { + field_0x2b9c = 0.0f; + if (!checkModeFlg(MODE_SWIMMING)) { + field_0x2b98 = 0.0f; + } + } + + if (checkModeFlg(MODE_UNK_2000000)) { + setShapeAngleOnGround(); + } + + if (!checkRestartRoom() && !checkDeadHP()) { + checkSceneChange(dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd)); + } + + if (mLinkAcch.ChkGroundHit()) { + if (dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) { + dComIfG_Bgsp().MoveBgTransPos(mLinkAcch.m_gnd, true, &field_0x34ec, NULL, NULL); + } + + if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && mWaterY >= mLinkAcch.GetGroundH()) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { + mPolySound = 11; + } else { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); + } + + field_0x2ff0 = getGroundAngle(&mLinkAcch.m_gnd, mCollisionRot.y); + } else { + if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { + if (checkNoResetFlg0(FLG0_UNK_80) && mWaterY >= mLinkAcch.GetGroundH()) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { + mPolySound = 11; + } else { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); + } + } else if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_UNK_80)) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else { + mPolySound = 0; + } + + field_0x2ff0 = 0; + } + mDoAud_setLinkGroupInfo(dComIfG_Bgsp().GetGrpSoundId(mLinkAcch.m_gnd)); + } else { + field_0x3174 = -1; + field_0x2ff0 = 0; + field_0x2fbb = 16; + field_0x2fbd = 0; + field_0x2fa8 = 0; + + if (checkModeFlg(MODE_SWIMMING) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr)) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else { + mPolySound = 0; + } + + if (!checkRestartRoom() && !checkDeadHP()) { + checkSceneChange(0x3F); + } + } + + if (checkMagneBootsOn()) { + field_0x2fbd = 0; + field_0x2f5c.mPosition = current.pos; + field_0x2f5c.mPow = 100.0f; + + if (checkNoResetFlg0(FLG0_UNK_2000)) { + mPolySound = dKy_pol_sound_get(&mMagneLineChk); + field_0x2ff0 = 0; + field_0x3174 = dComIfG_Bgsp().GetGroundCode(mMagneLineChk); + field_0x2fbb = dComIfG_Bgsp().GetPolyAtt0(mMagneLineChk); + field_0x2fa8 = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk); + setMagneBootsMtx(&mMagneLineChk, 0); + } else { + mPolySound = 0; + field_0x2ff0 = 0; + field_0x3174 = -1; + field_0x2fbb = 16; + field_0x2fa8 = 0; + } + } else { + field_0x2f5c.mPow = 0.0f; + if (mProcID != PROC_MAGNE_BOOTS_FLY) { + mMagneBootsTopVec = cXyz::BaseY; + } + } + + if (dComIfGp_evmng_startCheck(l_peepEventName)) { + if (field_0x2ff2 > 0) { + field_0x2ff2--; + } else if (dComIfGp_evmng_startCheck(l_peepEventName)) { + startPeepChange(); + } + } + + if (checkModeFlg(MODE_VINE_CLIMB) && mCommonCounter != 0 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo1)) { + mZ2Link.framework(dKy_pol_sound_get(&mPolyInfo1), mVoiceReverbIntensity); + } else { + mZ2Link.framework(mPolySound, mVoiceReverbIntensity); + } + + if (field_0x2d7c != NULL) { + mZ2Link.updateAnime(field_0x2d7c->getFrame(), field_0x2d7c->getRate()); + } + + if (mProcID != PROC_DAMAGE && mProcID != PROC_SWIM_DAMAGE && mProcID != PROC_HORSE_DAMAGE) { + setMoveSlantAngle(); + + if (checkReinRide() && checkUpperGuardAnime()) { + setBodyAngleRideReadyAnime(); + } else if (!checkSmallUpperGuardAnime() && !checkWolf()) { + if (!checkModeFlg(MODE_UNK_20000000)) { + if (checkUpperGuardAnime()) { + setBodyAngleXReadyAnime(0); + } else if (!checkUpperReadyThrowAnime()) { + cLib_addCalcAngleS(&mLookAngleY, 0, 4, 0x0C00, 0x0180); + } + } + + if (!checkModeFlg(MODE_UNK_40000000)) { + cLib_addCalcAngleS(&field_0x59e, 0, 4, 0x0C00, 0x0180); + } + } + } + + setMatrix(); + setNeckAngle(); + + if (field_0x2fcc != 0) { + field_0x2fcc--; + } + + if (!checkWolf()) { + setHatAngle(); + + if (field_0x2fb0 != 0) { + field_0x2fb0--; + } + + footBgCheck(); + handBgCheck(); + + field_0x30c8 = field_0x59e >> 1; + modelCalc(mpLinkModel); + + if (field_0x2fcb != 0) { + if (checkWoodShieldEquip() && mWaterY < mShieldModel->getBaseTRMtx()[1][3]) { + field_0x2fcb--; + + if (field_0x2fcb == 0) { + dMeter2Info_setShield(NO_ITEM, true); + stickArrowIncrement(1); + setWoodShieldBurnOutEffect(); + + // "Your shield burned up..." + dMeter2Info_setFloatingMessage(2047, 90, false); + + stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo(); + if (dStage_stagInfo_GetSaveTbl(pstag) == 0x11 && !dComIfGs_isItemFirstBit(HYLIA_SHIELD)) { + fopAcM_onSwitch(this, 0x6F); + } + seStartOnlyReverb(Z2SE_AL_WOOD_SHIELD_BURN); + } + } else { + clearWoodShieldBurnEffect(); + } + } + + if (checkShieldGet() && !checkWoodShieldEquip()) { + stickArrowIncrement(1); + } + setItemMatrix(0); + } else { + daMidna_c* pmidna = getMidnaActor(); + + if (mClothesChangeWaitTimer == 0) { + if ((pmidna->checkMidnaTired() || pmidna->checkForceTiredColor()) && !pmidna->checkForceNormalColor()) { + field_0x79c->getModelData()->entryTevRegAnimator(field_0x7ac); + mpWlMidnaHatModel->getModelData()->entryTevRegAnimator(field_0x7b0); + field_0x7a4->getModelData()->entryTevRegAnimator(field_0x7b4); + mpWlMidnaHairModel->getModelData()->entryTevRegAnimator(field_0x7b8); + } else { + field_0x79c->getModelData()->removeTevRegAnimator(field_0x7ac); + mpWlMidnaHatModel->getModelData()->removeTevRegAnimator(field_0x7b0); + field_0x7a4->getModelData()->removeTevRegAnimator(field_0x7b4); + mpWlMidnaHairModel->getModelData()->removeTevRegAnimator(field_0x7b8); + } + } + + wolfFootBgCheck(); + setWolfTailAngle(); + modelCalc(mpLinkModel); + checkWolfUseAbility(); + + if (checkWolfEyeUp() != 0) { + mWolfEyeUpTimer++; + if (mWolfEyeUpTimer > 30) { + mWolfEyeUpTimer = 30; + } + } else if (mWolfEyeUpTimer != 0) { + mWolfEyeUpTimer--; + } + + setWolfItemMatrix(); + } + + if (checkFmChainGrabAnime()) { + mNowAnmPackUpper[2].setRatio(1.0f); + } + + setBodyPartPos(); + + if (!checkWolf() && checkEndResetFlg0(ERFLG0_UNK_800000)) { + setHatAngle(); + modelCalc(mpLinkModel); + } + + setHangWaterY(); + setCollision(); + setAttentionPos(); + setLight(); + setEffect(); + + if (mClothesChangeWaitTimer != 0) { + mDoMtx_stack_c::copy(mpLinkModel->getBaseTRMtx()); + + if (!checkWolf()) { + mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f); + } + + mpWlChangeModel->setBaseTRMtx(mDoMtx_stack_c::get()); + mpWlChangeModel->calc(); + } + + mSight.mLockCursor.update(); + setGrabItemPos(); + + checkRoofRestart(); + mExitID = 0x3F; + mpScnChg = NULL; + + cMtx_multVec(mpLinkModel->getAnmMtx(0), &localBoomCatchPos, &field_0x3534); + + if (checkResetFlg0(RFLG0_UNK_10)) { + mZ2Link.setResumeAttack(true); + } else { + mZ2Link.setResumeAttack(false); + } + + if (!checkEventRun() && checkNoResetFlg0(FLG0_UNK_80) && (mWaterY > current.pos.y + 40.0f || checkModeFlg(MODE_SWIMMING)) && getMoveBGActorName(mLinkAcch.m_wtr, 1) == PROC_Obj_Onsen) { + if (mHotspringRecoverTimer != 0) { + mHotspringRecoverTimer--; + } else { + mHotspringRecoverTimer = daAlinkHIO_basic_c0::m.mHotspringRecoverTime; + dComIfGp_setItemLifeCount(1.0f, 1); + } + } else { + mHotspringRecoverTimer = daAlinkHIO_basic_c0::m.mHotspringRecoverTime; + } + + if ((checkAttentionLock() || !checkUpperReadyThrowAnime()) && mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT) { + mFastShotTime = 0; + } + + if (checkDeadHP()) { + mEvtInfo.offCondition(2); + } else if (!checkMagneBootsOn()) { + f32 var_f31_2; + if (mLinkAcch.ChkGroundHit()) { + cM3dGPla plane; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &plane); + var_f31_2 = plane.mNormal.y; + } else { + var_f31_2 = -1.0f; + } + + if (cBgW_CheckBGround(var_f31_2) && !checkModeFlg(MODE_PLAYER_FLY)) { + mEvtInfo.onCondition(0x5D); + } else if (checkModeFlg(MODE_SWIMMING) || mProcID == PROC_WOLF_ROPE_MOVE || + ((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) && + !checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP))) { + mEvtInfo.onCondition(1); + if (checkReinRide() || checkCanoeRide()) { + mEvtInfo.onCondition(8); + } + } + } else if (checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) { + mEvtInfo.onCondition(1); + } + + if (checkEndResetFlg1(ERFLG1_UNK_40000) && checkMidnaRide() && checkWolf()) { + getMidnaActor()->onForcePanic(); + } + + field_0x30fe = 0; + field_0x372c = cXyz::Zero; + field_0x2fb8 = 0; + + if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { + if (checkMagicArmorNoDamage() && !checkEventRun()) { + if (field_0x2fc3 == 0) { + field_0x2fc3 = 10; + dComIfGp_setItemRupeeCount(-1); + } else { + field_0x2fc3--; + } + } + + if (dComIfGs_getRupee() == 0 && field_0x2fd7 != 0) { + setMagicArmorBrk(0); + seStartOnlyReverb(Z2SE_AL_M_ARMER_TURNOFF); + mZ2Link.setLinkState(5); + } else if (dComIfGs_getRupee() == 0 && field_0x2fd7 == 0) { + setMagicArmorBrk(1); + seStartOnlyReverb(Z2SE_AL_M_ARMER_RECOVER); + mZ2Link.setLinkState(4); + } + } + + if (!checkWolf()) { + for (int i = 0; i < 2; i++) { + u8 tmp = (i + 1) & 1; + if (dComIfGp_getSelectItem(i) == EMPTY_BOTTLE && (field_0x2fae & (1 << i)) && dComIfGp_getSelectItem(tmp) == EMPTY_BOTTLE) { + field_0x2fae |= (1 << tmp); + } + } + } + + for (int i = 0; i < 2; i++) { + if (!(field_0x2fae & (1 << i)) && !(field_0x2faf & (1 << i))) { + dMeter2Info_offUseButton(4 << i); + } + } + + if (!(field_0x2fae & 0x40) && !(field_0x2faf & 0x40)) { + dMeter2Info_offUseButton(0x40); + } + + if (!(field_0x2fae & 0x8) && !(field_0x2faf & 0x8)) { + dMeter2Info_offUseButton(2); + if (getSumouMode()) { + dMeter2Info_offUseButton(1); + } + } + + field_0x2faf = field_0x2fae; + + for (int i = 0; i < 4; i++) { + cXyz tmp(current.pos.x + 500.0f, current.pos.y + 500.0f, current.pos.z + 500.0f); + if (i != field_0x2fa3 - 1) { + field_0x354c[i] = tmp; + } + } + + if (checkEventRun()) { + if (mProcID != PROC_GRASS_WHISTLE_WAIT) { + setDoStatus(0); + } + setRStatus(0); + } else if (dComIfGp_getDoStatus() == 0x86 || dComIfGp_getDoStatus() == 0x8B) { + setDoStatus(3); + } else if (dComIfGp_getDoStatus() == 0x89) { + setDoStatus(8); + } else if (dComIfGp_getDoStatus() == 0x93) { + setDoStatusEmphasys(0x19); + } else if (dComIfGp_getDoStatus() == 0x8E) { + setDoStatusEmphasys(0x15); + } else { + if (dComIfGp_getDoStatus() == 0x8C) { + setDoStatus(0); + } else if (checkStageName("F_SP127") && checkCanoeRide() && dComIfGp_getDoStatus() == 4) { + setDoStatus(0); + } else if (dComIfGp_getDoStatus() == 0x90) { + setDoStatus(0); + } else if (dComIfGp_getDoStatus() == 0x98) { + setDoStatusEmphasys(0x39); + } else if (dComIfGp_getDoStatus() == 0x99) { + setDoStatusEmphasys(0x15); + } else if (dComIfGp_getDoStatus() == 0x91) { + if (checkWolf() || (field_0x27f4 != NULL && (field_0x27f4->mSpeedF > 0.1f || (checkGoatCatchActor(field_0x27f4) && fopAcM_GetName(field_0x27f4) != PROC_COW)))) { + setDoStatusEmphasys(0x15); + } else { + setDoStatus(0); + } + } else if (dComIfGp_getDoStatus() == 0x97) { + if (current.pos.y + 200.0f < mWaterY) { + setDoStatus(0x4C); + } else { + setDoStatus(0); + } + } else if (dComIfGp_getDoStatus() == 0x19 && dComIfGp_getHorseActor() != NULL && dComIfGp_getHorseActor()->getZeldaActor() != NULL) { + setDoStatus(0x19); + } else if (dComIfGp_getDoStatus() == 5 && field_0x27f4 != NULL && (fopAcM_GetName(field_0x27f4) == PROC_Obj_WindStone || fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone)) { + setDoStatusEmphasys(0x3B); + } else if (dComIfGp_getDoStatus() == 0x14) { + if (checkEndResetFlg1(ERFLG1_UNK_4000000)) { + setDoStatusEmphasys(0x61); + } else if (checkEndResetFlg1(ERFLG1_UNK_10000000)) { + setDoStatusEmphasys(0x14); + } + } + + int grab_status = getWallGrabStatus(); + if (checkWolf()) { + if (grab_status == 0x15) { + setWallGrabStatus(0x3F, 2); + } else if (grab_status == 0x96) { + setWallGrabStatus(0xC, checkChainEmphasys()); + } + } else { + if (grab_status == 0x96) { + setWallGrabStatus(0x15, checkChainEmphasys()); + } + + if (dComIfGp_getRStatus() == 0x3A && checkShieldAttackEmphasys() == 0) { + setRStatus(0); + } + } + } + + mDoAud_setLinkHp(dComIfGs_getLife(), dComIfGs_getMaxLifeGauge()); + + if (dComIfGp_att_getCatghTarget() != NULL && !checkWolf()) { + if (checkRideOn() && checkCastleTownUseItem(EMPTY_BOTTLE) ) { + dComIfGp_setBottleStatus(0x6C, 0); + } + } + + if (checkEndResetFlg2(ERFLG2_UNK_20) && dComIfGp_checkPlayerStatus0(0, 0x200000) && (field_0x310e != field_0x310a || field_0x3110 != field_0x310c)) { + mDoAud_seStartLevel(Z2SE_AL_HAWK_EYE_PAN, NULL, 0, 0); + } + + offNoResetFlg0(FLG0_UNK_40000000); + mEndResetFlg0 = 0; + + if (checkEndResetFlg1(ERFLG1_UNK_4)) { + onNoResetFlg2(FLG2_UNK_20000); + } else { + offNoResetFlg2(FLG2_UNK_20000); + } + + mEndResetFlg1 = 0; + mEndResetFlg2 = 0; + + field_0x3540 = next.pos; + field_0x3108 = mCollisionRot.y; + + if (checkHorseRide() && checkBoarSingleBattle()) { + if (abs(mCollisionRot.y) < 0x4000) { + mCollisionRot.y = 0; + } else { + mCollisionRot.y = -0x8000; + } + } else if (checkMagneBootsOn()) { + field_0x3118 = mCollisionRot.y; + mCollisionRot.y = getMagneBootsLocalAngleY(mCollisionRot.y, 0); + } else if (checkModeFlg(MODE_VINE_CLIMB)) { + field_0x3108 = mCollisionRot.y; + mCollisionRot.y += field_0x308c; + } else if (checkCargoCarry() && mCargoCarryAcKeep.getActor() != NULL) { + field_0x3108 = mCollisionRot.y; + mCollisionRot.y = mCargoCarryAcKeep.getActor()->mCollisionRot.y; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::execute() { +asm int daAlink_c::execute() { nofralloc #include "asm/d/a/d_a_alink/execute__9daAlink_cFv.s" } #pragma pop +#endif /* 800CAFA8-800CAFC8 0C58E8 0020+00 1/0 0/0 0/0 .text daAlink_Execute__FP9daAlink_c */ static void daAlink_Execute(daAlink_c* pLinkPtr) { @@ -1710,7 +2636,7 @@ MtxP daAlink_c::getRightItemMatrix() { /* 800CF344-800CF380 0C9C84 003C+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daAlink_cFv */ BOOL daAlink_c::checkPlayerNoDraw() { return dComIfGp_checkCameraAttentionStatus(field_0x317c, 2) || - i_checkNoResetFlg0(PLAYER_NO_DRAW); + i_checkNoResetFlg0(FLG0_PLAYER_NO_DRAW); } /* 800CF380-800CFC3C 0C9CC0 08BC+00 1/1 0/0 0/0 .text __ct__9daAlink_cFv */ @@ -1789,7 +2715,7 @@ static s32 dComIfGp_att_getCatghTarget() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_att_getCatghTarget() { +static asm dAttCatch_c* dComIfGp_att_getCatghTarget() { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_att_getCatghTarget__Fv.s" } @@ -1850,7 +2776,7 @@ void J3DModel::setBaseTRMtx(MtxP matrix) { /* 800D0020-800D0048 0CA960 0028+00 1/1 0/0 0/0 .text checkFmChainGrabAnime__9daAlink_cCFv */ BOOL daAlink_c::checkFmChainGrabAnime() const { - return checkUpperAnime(ANM_HUMAN_CHAIN_GRAB) || checkUpperAnime(ANM_WOLF_CHAIN_GRAB); + return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); } /* 800D0048-800D005C 0CA988 0014+00 1/1 0/0 0/0 .text checkSmallUpperGuardAnime__9daAlink_cCFv */ @@ -1862,7 +2788,7 @@ BOOL daAlink_c::checkSmallUpperGuardAnime() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_evmng_startCheck(char const* param_0) { +static asm bool dComIfGp_evmng_startCheck(char const* param_0) { nofralloc #include "asm/d/a/d_a_alink/dComIfGp_evmng_startCheck__FPCc.s" } @@ -1879,7 +2805,7 @@ static void mDoAud_setLinkGroupInfo(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_MtxCalcAnmBlendTbl::getAnm(int param_0) { +asm J3DAnmTransform* mDoExt_MtxCalcAnmBlendTbl::getAnm(int param_0) { nofralloc #include "asm/d/a/d_a_alink/getAnm__25mDoExt_MtxCalcAnmBlendTblFi.s" } @@ -1896,19 +2822,19 @@ void dBgS_Acch::ClrGroundHit() { } /* 800D00EC-800D0110 0CAA2C 0024+00 1/1 0/0 0/0 .text checkReinRide__9daAlink_cCFv */ -BOOL daAlink_c::checkReinRide() const { +u32 daAlink_c::checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } /* 800D0110-800D0138 0CAA50 0028+00 1/1 0/0 0/0 .text checkWolfEnemyThrowAnime__9daAlink_cCFv */ BOOL daAlink_c::checkWolfEnemyThrowAnime() const { - return checkUpperAnime(ANM_WOLF_ENEMY_THROW_LEFT) || - checkUpperAnime(ANM_WOLF_ENEMY_THROW_RIGHT); + return checkUpperAnime(0x2BD) || + checkUpperAnime(0x2BE); } /* 800D0138-800D014C 0CAA78 0014+00 1/1 0/0 0/0 .text checkSpecialDemoMode__9daAlink_cCFv */ -u16 daAlink_c::checkSpecialDemoMode() const { +int daAlink_c::checkSpecialDemoMode() const { return mDemo.getDemoType() == 5; } @@ -2039,7 +2965,7 @@ f32 daAlink_c::getGroundY() { /* 800D0358-800D0360 0CAC98 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daAlink_cCFv */ f32 daAlink_c::getBaseAnimeFrameRate() const { - return mFrameCtrl1[0].getRate(); + return mUnderFrameCtrl[0].getRate(); } /* 800D0360-800D0368 0CACA0 0008+00 1/0 0/0 0/0 .text getAtnActorID__9daAlink_cCFv */ @@ -2065,7 +2991,7 @@ s32 daAlink_c::getGrabActorID() const { */ void daAlink_c::setForcePutPos(cXyz const& pPutPos) { mForcePutPos = pPutPos; - i_onEndResetFlg1(UNK_FORCE_PUT_POS); + i_onEndResetFlg1(ERFLG1_UNK_2000); } /* 800D03B4-800D03C8 0CACF4 0014+00 1/0 0/0 0/0 .text checkPlayerFly__9daAlink_cCFv */ @@ -2463,7 +3389,7 @@ Z2WolfHowlMgr* daAlink_c::getWolfHowlMgrP() { /* 800D0AA4-800D0AC8 0CB3E4 0024+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daAlink_cCFv */ BOOL daAlink_c::checkWolfHowlSuccessAnime() const { - return checkUnderMove0BckNoArcWolf(ANM_WOLF_HOWL_SUCCESS); + return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS); } /* 800D0AC8-800D0AF0 0CB408 0028+00 1/0 0/0 0/0 .text checkOctaIealHang__9daAlink_cCFv */ diff --git a/src/d/a/d_a_alink_spinner.inc b/src/d/a/d_a_alink_spinner.inc index d8a7da3b70a..b5f5632282a 100644 --- a/src/d/a/d_a_alink_spinner.inc +++ b/src/d/a/d_a_alink_spinner.inc @@ -133,7 +133,7 @@ int daAlink_c::procSpinnerReadyInit() { commonProcInit(PROC_SPINNER_READY); mRideAcKeep.setData(spinner); - setSingleAnime(ANM_BOARD_SPINNER, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mRate, 6.0f, + setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mRate, 6.0f, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndF, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation); mNormalSpeed = 0.0f; @@ -205,7 +205,7 @@ int daAlink_c::procSpinnerWaitInit() { mRideStatus = 5; setBgCheckParam(); - setSingleAnimeBaseSpeed(ANM_SPINNER_RIDE, daAlinkHIO_board_c0::m.mSitAnmSpeed, 4.0f); + setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, 4.0f); mSpeed.y = 0.0f; setSpecialGravity(0.0f, mMaxFallSpeed, 0); mNormalSpeed = 0.0f; @@ -213,7 +213,7 @@ int daAlink_c::procSpinnerWaitInit() { field_0x300e = mCollisionRot.y; field_0x3010 = 0; - field_0x3198 = ANM_SPINNER_RIDE; + field_0x3198 = ANM_RIDE_CROUCH; field_0x33b0 = 70.0f; field_0x3012 = 0; field_0x37a4 = mRideAcKeep.getActor()->current.pos; @@ -277,7 +277,7 @@ int daAlink_c::procSpinnerWait() { return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation); } - daPy_frameCtrl_c* frameCtrl = mFrameCtrl1; + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; dMeter2Info_onDirectUseItem(itemSetBtn); if (spinner->checkPathMoveNow() == NULL) { @@ -295,10 +295,10 @@ int daAlink_c::procSpinnerWait() { field_0x3012 = 1; setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION); - if (field_0x3198 != ANM_SPINNER_PUSH && field_0x2060->getOldFrameRate() < 0.01f) { - setSingleAnimeBaseSpeed(ANM_SPINNER_RIDE, daAlinkHIO_board_c0::m.mSitAnmSpeed, + if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) { + setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, daAlinkHIO_board_c0::m.mFastPushInterpolation); - field_0x3198 = ANM_SPINNER_PUSH; + field_0x3198 = ANM_RIDE_KICK; fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0); } } else if (spinner->checkSpinnerTagInto()) { @@ -308,35 +308,35 @@ int daAlink_c::procSpinnerWait() { setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT); } - if ((field_0x3198 == ANM_SPINNER_PUSH && field_0x2060->getOldFrameRate() < 0.01f) || - (field_0x3198 != ANM_SPINNER_PUSH && field_0x3198 != ANM_SPINNER_STAND)) { - setSingleAnimeBaseSpeed(ANM_SPINNER_STAND, daAlinkHIO_board_c0::m.mStandAnmSpeed, + if ((field_0x3198 == ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) || + (field_0x3198 != ANM_RIDE_KICK && field_0x3198 != ANM_RIDE_WAIT)) { + setSingleAnimeBaseSpeed(ANM_RIDE_WAIT, daAlinkHIO_board_c0::m.mStandAnmSpeed, daAlinkHIO_board_c0::m.mStandInterpolation); - field_0x3198 = ANM_SPINNER_STAND; + field_0x3198 = ANM_RIDE_WAIT; } - } else if (spinner->getButtonJump() && field_0x3198 != ANM_SPINNER_ATTACK) { - field_0x3198 = ANM_SPINNER_ATTACK; - setSingleAnime(ANM_SPINNER_ATTACK, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStart, + } else if (spinner->getButtonJump() && field_0x3198 != ANM_RIDE_JUMP) { + field_0x3198 = ANM_RIDE_JUMP; + setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStart, daAlinkHIO_board_c0::m.mAirborneAnm.mEndF, daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation); field_0x3010 = 0; - } else if (field_0x3198 == ANM_SPINNER_ATTACK) { + } else if (field_0x3198 == ANM_RIDE_JUMP) { if (!spinner->getJumpFlg()) { - setSingleAnime(ANM_SPINNER_ATTACK_LAND, daAlinkHIO_board_c0::m.mLandAnm.mRate, + setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mRate, daAlinkHIO_board_c0::m.mLandAnm.mStart, 16, daAlinkHIO_board_c0::m.mLandAnm.mInterpolation); - field_0x3198 = ANM_SPINNER_ATTACK_LAND; + field_0x3198 = ANM_RIDE_JUMP_LAND; } else if (field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.01f) { - setSingleAnime(ANM_SPINNER_ATTACK, daAlinkHIO_board_c0::m.mAirborneAnm.mRate, + setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mRate, daAlinkHIO_board_c0::m.mAirborneAnm.mStart, daAlinkHIO_board_c0::m.mAirborneAnm.mEndF, -1.0f); field_0x3010 = 1; } - } else if ((field_0x3198 == ANM_SPINNER_ATTACK_LAND && frameCtrl->checkAnmEnd()) || - (field_0x3198 != ANM_SPINNER_ATTACK_LAND && field_0x3198 != ANM_SPINNER_RIDE)) { - setSingleAnimeBaseSpeed(ANM_SPINNER_RIDE, daAlinkHIO_board_c0::m.mSitAnmSpeed, + } else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) || + (field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) { + setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, daAlinkHIO_board_c0::m.mSitInterpolation); - field_0x3198 = ANM_SPINNER_RIDE; + field_0x3198 = ANM_RIDE_CROUCH; } } diff --git a/src/d/a/d_a_alink_swim.inc b/src/d/a/d_a_alink_swim.inc index 06b28b32ee3..271cd342330 100644 --- a/src/d/a/d_a_alink_swim.inc +++ b/src/d/a/d_a_alink_swim.inc @@ -33,7 +33,7 @@ asm void daAlink_c::swimDeleteItem() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getZoraSwim() const { +asm bool daAlink_c::getZoraSwim() const { nofralloc #include "asm/d/a/d_a_alink/getZoraSwim__9daAlink_cCFv.s" } @@ -85,7 +85,7 @@ asm void daAlink_c::offOxygenTimer() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkPossibleWaterInMode() const { +asm bool daAlink_c::checkPossibleWaterInMode() const { nofralloc #include "asm/d/a/d_a_alink/checkPossibleWaterInMode__9daAlink_cCFv.s" } diff --git a/src/d/a/d_a_alink_swindow.inc b/src/d/a/d_a_alink_swindow.inc index 6d5e0d17423..f7214b8ffd9 100644 --- a/src/d/a/d_a_alink_swindow.inc +++ b/src/d/a/d_a_alink_swindow.inc @@ -76,7 +76,7 @@ void daAlink_c::statusWindowDraw() { /* 80140AC8-80140B88 13B408 00C0+00 0/0 1/1 0/0 .text resetStatusWindow__9daAlink_cFv */ void daAlink_c::resetStatusWindow() { - i_offNoResetFlg2(0x400000); + i_offNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); if (i_checkWolf()) { changeModelDataDirectWolf(1); @@ -86,7 +86,7 @@ void daAlink_c::resetStatusWindow() { setMatrix(); mpLinkModel->calc(); - i_onNoResetFlg2(0x400000); + i_onNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); setSelectEquipItem(0); if (i_checkWolf()) { @@ -95,6 +95,6 @@ void daAlink_c::resetStatusWindow() { setItemMatrix(0); } - i_offNoResetFlg2(0x400000); + i_offNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); m_sWindowBck = NULL; } \ No newline at end of file diff --git a/src/d/a/d_a_alink_whistle.inc b/src/d/a/d_a_alink_whistle.inc index cc553bbc41c..9a4692f698f 100644 --- a/src/d/a/d_a_alink_whistle.inc +++ b/src/d/a/d_a_alink_whistle.inc @@ -62,7 +62,7 @@ int daAlink_c::procGrassWhistleGetInit() { current.angle.y = mCollisionRot.y; field_0x2f98 = 4; - setSingleAnimeParam(ANM_GRASS_WHISTLE_GRAB, &daAlinkHIO_bottle_c0::m.field_0x50); + setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.field_0x50); field_0x2f92 = 0xFE; field_0x280c.setData(field_0x27f4); @@ -91,7 +91,7 @@ asm int daAlink_c::procGrassWhistleGetInit() { /* 801119D8-80111A9C 10C318 00C4+00 1/0 0/0 0/0 .text procGrassWhistleGet__9daAlink_cFv */ int daAlink_c::procGrassWhistleGet() { - daPy_frameCtrl_c* frameCtrl = mFrameCtrl1; + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; if (frameCtrl->checkAnmEnd()) { procGrassWhistleWaitInit(mCommonCounter, field_0x300e, field_0x3010, field_0x3012, &field_0x37c8); diff --git a/src/d/a/d_a_alink_wolf.inc b/src/d/a/d_a_alink_wolf.inc index b429fb80e9f..7beb3b7252e 100644 --- a/src/d/a/d_a_alink_wolf.inc +++ b/src/d/a/d_a_alink_wolf.inc @@ -138,8 +138,8 @@ asm void daAlink_c::checkWolfAtnWait() { /* 8012880C-80128844 12314C 0038+00 27/27 0/0 0/0 .text * checkUnderMove0BckNoArcWolf__9daAlink_cCFQ29daAlink_c12daAlink_WANM */ BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM anm_id) const { - return mUnderAnime[0].checkNoSetArcNo() && - m_wlAnmDataTable[anm_id].field_0x0 == mUnderAnime[0].getIdx(); + return mUnderAnmHeap[0].checkNoSetArcNo() && + m_wlAnmDataTable[anm_id].field_0x0 == mUnderAnmHeap[0].getIdx(); } /* 80128844-80128F0C 123184 06C8+00 11/11 0/0 0/0 .text setBlendWolfMoveAnime__9daAlink_cFf */ diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 81c1161e016..f103a528fc4 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -485,16 +485,16 @@ void* daPy_anmHeap_c::loadData(u16 i_resId) { } /* 8015F068-8015F0D0 1599A8 0068+00 0/0 9/9 5/5 .text loadDataIdx__14daPy_anmHeap_cFUs */ -void* daPy_anmHeap_c::loadDataIdx(u16 id) { +void* daPy_anmHeap_c::loadDataIdx(u16 i_resID) { void* data; - if (id == mIdx && mArcNo == 0xFFFF) { + if (i_resID == mIdx && mArcNo == 0xFFFF) { data = NULL; } else { - mIdx = id; + mIdx = i_resID; mArcNo = 0xFFFF; if (mPriIdx == 0xFFFF) { - data = loadData(id); + data = loadData(i_resID); } else { data = NULL; } @@ -505,29 +505,29 @@ void* daPy_anmHeap_c::loadDataIdx(u16 id) { /* 8015F0D0-8015F118 159A10 0048+00 0/0 3/3 0/0 .text loadDataPriIdx__14daPy_anmHeap_cFUs */ -void* daPy_anmHeap_c::loadDataPriIdx(u16 id) { +void* daPy_anmHeap_c::loadDataPriIdx(u16 i_resID) { void* data; - if (id == mPriIdx || mArcNo != 0xFFFF) { + if (i_resID == mPriIdx || mArcNo != 0xFFFF) { data = NULL; } else { - mPriIdx = id; - data = loadData(id); + mPriIdx = i_resID; + data = loadData(i_resID); } return data; } /* 8015F118-8015F168 159A58 0050+00 0/0 5/5 5/5 .text loadDataDemoRID__14daPy_anmHeap_cFUsUs */ -void* daPy_anmHeap_c::loadDataDemoRID(u16 id, u16 arc_no) { +void* daPy_anmHeap_c::loadDataDemoRID(u16 i_resID, u16 i_arcNo) { void* data; - if (id == mIdx && arc_no == mArcNo) { + if (i_resID == mIdx && i_arcNo == mArcNo) { data = NULL; } else { - mIdx = id; - mArcNo = arc_no; - data = loadData(id); + mIdx = i_resID; + mArcNo = i_arcNo; + data = loadData(i_resID); } return data; @@ -635,7 +635,8 @@ BOOL daPy_py_c::checkMasterSwordEquip() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::checkWoodShieldEquip(){nofralloc +asm bool daPy_py_c::checkWoodShieldEquip() { + nofralloc #include "asm/d/a/d_a_player/checkWoodShieldEquip__9daPy_py_cFv.s" } #pragma pop diff --git a/src/d/bg/d_bg_plc.cpp b/src/d/bg/d_bg_plc.cpp index 9ae849296d0..13fe0796fe3 100644 --- a/src/d/bg/d_bg_plc.cpp +++ b/src/d/bg/d_bg_plc.cpp @@ -54,7 +54,7 @@ asm void dBgPlc::getCode(int param_0, sBgPc** param_1) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgPlc::getGrpCode(int param_0) const { +asm u32 dBgPlc::getGrpCode(int param_0) const { nofralloc #include "asm/d/bg/d_bg_plc/getGrpCode__6dBgPlcCFi.s" } diff --git a/src/d/bg/d_bg_s.cpp b/src/d/bg/d_bg_s.cpp index d4de8b490f4..087a1ad5293 100644 --- a/src/d/bg/d_bg_s.cpp +++ b/src/d/bg/d_bg_s.cpp @@ -568,7 +568,7 @@ int dBgS::GetMonkeyBarsCode(cBgS_PolyInfo const& poly) { /* 80074DAC-80074E00 06F6EC 0054+00 0/0 0/0 1/1 .text * GetUnderwaterRoofCode__4dBgSFRC13cBgS_PolyInfo */ -int dBgS::GetUnderwaterRoofCode(cBgS_PolyInfo const& poly) { +u32 dBgS::GetUnderwaterRoofCode(cBgS_PolyInfo const& poly) { int bg_index = poly.GetBgIndex(); if (m_chk_element[bg_index].ChkUsed()) { return m_chk_element[bg_index].m_bgw_base_ptr->GetUnderwaterRoofCode(poly.GetPolyIndex()); @@ -658,7 +658,7 @@ s32 dBgS::GetRoomPathPntNo(cBgS_PolyInfo const& poly) { } /* 80075080-800750D0 06F9C0 0050+00 0/0 2/2 0/0 .text GetGrpSoundId__4dBgSFRC13cBgS_PolyInfo */ -s32 dBgS::GetGrpSoundId(cBgS_PolyInfo const& poly) { +u8 dBgS::GetGrpSoundId(cBgS_PolyInfo const& poly) { int bg_index = poly.GetBgIndex(); if (m_chk_element[bg_index].ChkUsed()) { return m_chk_element[bg_index].m_bgw_base_ptr->GetGrpSoundId(poly); diff --git a/src/d/bg/d_bg_w.cpp b/src/d/bg/d_bg_w.cpp index e6972b6fc57..33648aa4615 100644 --- a/src/d/bg/d_bg_w.cpp +++ b/src/d/bg/d_bg_w.cpp @@ -5,10 +5,10 @@ #include "d/bg/d_bg_w.h" #include "JSystem/JMath/JMATrigonometric.h" +#include "SSystem/SComponent/c_math.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/mtx/mtxvec.h" -#include "dolphin/types.h" // // Forward References: @@ -458,44 +458,90 @@ void cBgW::FreeArea() { } /* 800793C4-80079484 073D04 00C0+00 2/2 0/0 1/1 .text GlobalVtx__4cBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GlobalVtx() { - nofralloc -#include "asm/d/bg/d_bg_w/GlobalVtx__4cBgWFv.s" +void cBgW::GlobalVtx() { + if (pm_base != NULL) { + if (!field_0x89) { + for (int i = 0; i < pm_bgd->m_v_num; i++) { + Vec* vtx = &pm_vtx_tbl[i]; + PSVECAdd(vtx, &field_0x7c, vtx); + } + } else { + for (int i = 0; i < pm_bgd->m_v_num; i++) { + PSMTXMultVec(pm_base, &pm_bgd->m_v_tbl[i], &pm_vtx_tbl[i]); + } + } + } } -#pragma pop /* 80079484-80079564 073DC4 00E0+00 1/1 0/0 0/0 .text SetVtx__4cBgWFv */ +// matches with literals +#ifdef NONMATCHING +int cBgW::SetVtx() { + if (field_0x88 & 0x10) { + pm_vtx_tbl = NULL; + } else if (field_0x88 & 0x1) { + pm_vtx_tbl = new Vec[pm_bgd->m_v_num]; + + if (pm_vtx_tbl == NULL) { + return true; + } + + if (field_0x88 & 0x40) { + for (int i = 0; i < pm_bgd->m_v_num; i++) { + pm_vtx_tbl[i].x = 0.0f; + pm_vtx_tbl[i].y = 0.0f; + pm_vtx_tbl[i].z = 0.0f; + } + } + + GlobalVtx(); + } else { + pm_vtx_tbl = pm_bgd->m_v_tbl; + } + + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cBgW::SetVtx() { +asm bool cBgW::SetVtx() { nofralloc #include "asm/d/bg/d_bg_w/SetVtx__4cBgWFv.s" } #pragma pop +#endif /* 80079564-80079668 073EA4 0104+00 2/0 1/0 0/0 .text CalcPlane__4cBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::CalcPlane() { - nofralloc -#include "asm/d/bg/d_bg_w/CalcPlane__4cBgWFv.s" +void cBgW::CalcPlane() { + dzb_tri_data* tri_data = pm_bgd->m_t_tbl; + + if (pm_vtx_tbl != NULL) { + if (!field_0x89) { + for (int i = 0; i < pm_bgd->m_t_num; i++) { + pm_tri[i].m_plane.mD -= PSVECDotProduct(&pm_tri[i].m_plane.mNormal, &field_0x7c); + } + } else { + for (int i = 0; i < pm_bgd->m_t_num; i++) { + pm_tri[i].m_plane.SetupFrom3Vtx(&pm_vtx_tbl[tri_data[i].field_0x0], + &pm_vtx_tbl[tri_data[i].field_0x2], + &pm_vtx_tbl[tri_data[i].field_0x4]); + } + } + } } -#pragma pop /* 80079668-800796F8 073FA8 0090+00 1/1 0/0 0/0 .text SetTri__4cBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::SetTri() { - nofralloc -#include "asm/d/bg/d_bg_w/SetTri__4cBgWFv.s" +bool cBgW::SetTri() { + pm_tri = new cBgW_TriElm[pm_bgd->m_t_num]; + + if (pm_tri == NULL) { + return true; + } + + CalcPlane(); + return false; } -#pragma pop /* 800796F8-80079754 074038 005C+00 2/1 0/0 0/0 .text __dt__11cBgW_TriElmFv */ #pragma push @@ -509,24 +555,21 @@ extern "C" asm void __dt__11cBgW_TriElmFv() { #pragma pop /* 80079754-80079770 074094 001C+00 1/1 0/0 0/0 .text __ct__11cBgW_TriElmFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cBgW_TriElm::cBgW_TriElm() { - nofralloc -#include "asm/d/bg/d_bg_w/__ct__11cBgW_TriElmFv.s" -} -#pragma pop +cBgW_TriElm::cBgW_TriElm() {} /* 80079770-800797BC 0740B0 004C+00 1/1 0/0 0/0 .text BlckConnect__4cBgWFPUsPii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::BlckConnect(u16* param_0, int* param_1, int param_2) { - nofralloc -#include "asm/d/bg/d_bg_w/BlckConnect__4cBgWFPUsPii.s" +void cBgW::BlckConnect(u16* param_0, int* param_1, int param_2) { + if (*param_0 == 0xFFFF) { + *param_0 = param_2; + } + + if (*param_1 != 0xFFFF) { + pm_rwg[*param_1].field_0x0 = param_2; + } + + *param_1 = param_2; + pm_rwg[*param_1].field_0x0 = 0xFFFF; } -#pragma pop /* 800797BC-8007998C 0740FC 01D0+00 2/0 1/0 0/0 .text ClassifyPlane__4cBgWFv */ #pragma push @@ -539,25 +582,40 @@ asm void cBgW::ClassifyPlane() { #pragma pop /* 8007998C-800799E0 0742CC 0054+00 1/1 0/0 0/0 .text MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::MakeBlckTransMinMax(cXyz* param_0, cXyz* param_1) { - nofralloc -#include "asm/d/bg/d_bg_w/MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz.s" +void cBgW::MakeBlckTransMinMax(cXyz* param_0, cXyz* param_1) { + PSVECAdd(param_0, &field_0x7c, param_0); + PSVECAdd(param_1, &field_0x7c, param_1); } -#pragma pop /* 800799E0-80079A68 074320 0088+00 1/1 0/0 0/0 .text MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::MakeBlckMinMax(int param_0, cXyz* param_1, cXyz* param_2) { - nofralloc -#include "asm/d/bg/d_bg_w/MakeBlckMinMax__4cBgWFiP4cXyzP4cXyz.s" +void cBgW::MakeBlckMinMax(int vtx_index, cXyz* param_1, cXyz* param_2) { + Vec* vtx = &pm_vtx_tbl[vtx_index]; + + if (param_1->x > vtx->x) { + param_1->x = vtx->x; + } + + if (param_2->x < vtx->x) { + param_2->x = vtx->x; + } + + if (param_1->y > vtx->y) { + param_1->y = vtx->y; + } + + if (param_2->y < vtx->y) { + param_2->y = vtx->y; + } + + if (param_1->z > vtx->z) { + param_1->z = vtx->z; + } + + if (param_2->z < vtx->z) { + param_2->z = vtx->z; + } } -#pragma pop /* ############################################################################################## */ /* 804526FC-80452700 000CFC 0004+00 1/1 0/0 0/0 .sdata2 @3935 */ @@ -570,6 +628,43 @@ SECTION_SDATA2 static f32 lit_3936 = -1000000000.0f; SECTION_SDATA2 static f32 lit_3937 = 1.0f; /* 80079A68-80079BDC 0743A8 0174+00 1/1 0/0 0/0 .text MakeBlckBnd__4cBgWFiP4cXyzP4cXyz */ +// matches with literals +#ifdef NONMATCHING +void cBgW::MakeBlckBnd(int param_0, cXyz* param_1, cXyz* param_2) { + int tmp = pm_bgd->m_b_tbl[param_0].field_0x0; + int tmp2; + + if (param_0 != pm_bgd->m_b_num - 1) { + tmp2 = pm_bgd->m_b_tbl[param_0 + 1].field_0x0 - 1; + } else { + tmp2 = pm_bgd->m_t_num - 1; + } + + if (field_0x89 == 0) { + MakeBlckTransMinMax(param_1, param_2); + } else { + param_1->z = 1000000000.0f; + param_1->y = 1000000000.0f; + param_1->x = 1000000000.0f; + param_2->z = -1000000000.0f; + param_2->y = -1000000000.0f; + param_2->x = -1000000000.0f; + + for (int i = tmp; i <= tmp2; i++) { + MakeBlckMinMax(pm_bgd->m_t_tbl[i].field_0x0, param_1, param_2); + MakeBlckMinMax(pm_bgd->m_t_tbl[i].field_0x2, param_1, param_2); + MakeBlckMinMax(pm_bgd->m_t_tbl[i].field_0x4, param_1, param_2); + } + + param_1->x -= 1.0f; + param_1->y -= 1.0f; + param_1->z -= 1.0f; + param_2->x += 1.0f; + param_2->y += 1.0f; + param_2->z += 1.0f; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -578,16 +673,37 @@ asm void cBgW::MakeBlckBnd(int param_0, cXyz* param_1, cXyz* param_2) { #include "asm/d/bg/d_bg_w/MakeBlckBnd__4cBgWFiP4cXyzP4cXyz.s" } #pragma pop +#endif /* 80079BDC-80079CC4 07451C 00E8+00 1/1 0/0 0/0 .text MakeNodeTreeRp__4cBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::MakeNodeTreeRp(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/MakeNodeTreeRp__4cBgWFi.s" +void cBgW::MakeNodeTreeRp(int param_0) { + dzb_tree_data* tree_data = &pm_bgd->m_tree_tbl[param_0]; + + if (tree_data->field_0x0 & 1) { + int tmp = tree_data->m_id[0]; + + if (tmp != 0xFFFF) { + cXyz* max = (cXyz*)&pm_node_tree[param_0].getMaxP(); + cXyz* min = (cXyz*)&pm_node_tree[param_0].getMinP(); + + MakeBlckBnd(tmp, min, max); + } + } else { + pm_node_tree[param_0].ClearForMinMax(); + + for (int i = 0; i < 8; i++) { + // this is probably wrong, fix later + u16* tmp_p = (u16*)tree_data; + int tmp = tmp_p[i + 2]; + + if (tmp != 0xFFFF) { + MakeNodeTreeRp(tmp); + pm_node_tree[param_0].SetMinMax(pm_node_tree[tmp].getMinP()); + pm_node_tree[param_0].SetMinMax(pm_node_tree[tmp].getMaxP()); + } + } + } } -#pragma pop /* 80079CC4-80079DF0 074604 012C+00 1/1 0/0 0/0 .text MakeNodeTreeGrpRp__4cBgWFi */ #pragma push @@ -599,6 +715,23 @@ asm void cBgW::MakeNodeTreeGrpRp(int param_0) { } #pragma pop +/* void cBgW::MakeNodeTreeGrpRp(int param_0) { + //u16 tmp = pm_bgd->m_g_tbl[param_0].field_0x2e; + + if (pm_bgd->m_g_tbl[param_0].field_0x2e != 0xFFFF) { + MakeNodeTreeRp(pm_bgd->m_g_tbl[param_0].field_0x2e); + pm_node_tree[param_0].SetMin(pm_grp[pm_bgd->m_g_tbl[param_0].field_0x2e].mMin); + pm_node_tree[param_0].SetMax(pm_grp[pm_bgd->m_g_tbl[param_0].field_0x2e].mMax); + } + + u16 tmp2 = pm_bgd->m_g_tbl[param_0].field_0x28; + while (tmp2 != 0xFFFF) { + MakeNodeTreeGrpRp(tmp2); + pm_grp[param_0].SetMin(pm_grp[tmp2].mMin); + pm_grp[param_0].SetMax(pm_node_tree[tmp2].mMax); + } +} */ + /* 80079DF0-80079EEC 074730 00FC+00 2/2 0/0 0/0 .text MakeNodeTree__4cBgWFv */ #pragma push #pragma optimization_level 0 @@ -610,28 +743,77 @@ asm void cBgW::MakeNodeTree() { #pragma pop /* 80079EEC-80079F38 07482C 004C+00 2/0 1/0 0/0 .text ChkMemoryError__4cBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::ChkMemoryError() { - nofralloc -#include "asm/d/bg/d_bg_w/ChkMemoryError__4cBgWFv.s" -} -#pragma pop +bool cBgW::ChkMemoryError() { + if (pm_tri == NULL || pm_rwg == NULL || field_0xa4 == NULL || pm_node_tree == NULL || + pm_grp == NULL) { + return true; + } -/* ############################################################################################## */ -/* 80452708-8045270C 000D08 0004+00 1/1 0/0 0/0 .sdata2 @4073 */ -SECTION_SDATA2 static f32 lit_4073 = 128.0f; + return false; +} /* 80079F38-8007A184 074878 024C+00 1/1 3/3 85/85 .text Set__4cBgWFP6cBgD_tUlPA3_A4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::Set(cBgD_t* param_0, u32 param_1, f32 (*param_2)[3][4]) { - nofralloc -#include "asm/d/bg/d_bg_w/Set__4cBgWFP6cBgD_tUlPA3_A4_f.s" +bool cBgW::Set(cBgD_t* pbgd, u32 param_1, Mtx* pbase_mtx) { + field_0x88 = 0x20; + pm_vtx_tbl = NULL; + pm_tri = NULL; + pm_rwg = NULL; + field_0xa4 = NULL; + pm_node_tree = NULL; + pm_grp = NULL; + field_0x90 = cM_rndF(128.0f); + + if (pbgd == NULL) { + return true; + } + + field_0x88 = param_1; + if (field_0x88 & 0x20) { + pm_base = NULL; + PSMTXIdentity(m_inv_mtx); + PSMTXIdentity(field_0x4c); + } else { + pm_base = *pbase_mtx; + PSMTXCopy(pm_base, m_inv_mtx); + PSMTXCopy(pm_base, field_0x4c); + } + + pm_bgd = pbgd; + + if (SetVtx() || SetTri()) { + FreeArea(); + return true; + } + + pm_rwg = new cBgW_RwgElm[pm_bgd->m_t_num]; + if (pm_rwg == NULL) { + FreeArea(); + return true; + } + + field_0xa4 = new cBgW_unk_b_data[pm_bgd->m_b_num]; + if (field_0xa4 == NULL) { + FreeArea(); + return true; + } + + pm_node_tree = new cBgW_NodeTree[pm_bgd->m_tree_num]; + if (pm_node_tree == NULL) { + FreeArea(); + return true; + } + + pm_grp = new cBgW_GrpElm[pm_bgd->m_g_num]; + if (pm_grp == NULL) { + FreeArea(); + return true; + } + + ClassifyPlane(); + field_0x89 = 1; + MakeNodeTree(); + return false; } -#pragma pop /* 8007A184-8007A1E4 074AC4 0060+00 2/1 0/0 0/0 .text __dt__11cBgW_GrpElmFv */ #pragma push @@ -645,24 +827,50 @@ extern "C" asm void __dt__11cBgW_GrpElmFv() { #pragma pop /* 8007A1E4-8007A200 074B24 001C+00 1/1 0/0 0/0 .text __ct__11cBgW_GrpElmFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cBgW_GrpElm::cBgW_GrpElm() { - nofralloc -#include "asm/d/bg/d_bg_w/__ct__11cBgW_GrpElmFv.s" -} -#pragma pop +cBgW_GrpElm::cBgW_GrpElm() {} /* 8007A200-8007A344 074B40 0144+00 1/1 0/0 0/0 .text RwgLineCheck__4cBgWFUsP11cBgS_LinChk */ +// loop needs work +#ifdef NONMATCHING +bool cBgW::RwgLineCheck(u16 poly_index, cBgS_LinChk* linchk) { + bool chk; + chk = false; + cM3dGTri tri; + + while (1) { + dzb_tri_data* tri_data = &pm_bgd->m_t_tbl[poly_index]; + + tri.setBg(&pm_vtx_tbl[tri_data->field_0x0], &pm_vtx_tbl[tri_data->field_0x2], + &pm_vtx_tbl[tri_data->field_0x4], &pm_tri[poly_index].m_plane); + + cXyz cross; + if (tri.cross(linchk->GetLinP(), &cross, linchk->ChkFrontFlag(), linchk->ChkBackFlag())) { + if (!ChkPolyThrough(poly_index, linchk->GetPolyPassChk())) { + linchk->SetCross(cross); + linchk->SetPolyIndex(poly_index); + chk = true; + } + } + + poly_index = pm_rwg[poly_index].field_0x0; + + if (poly_index != 0xFFFF) { + return chk; + } + } + + return chk; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cBgW::RwgLineCheck(u16 param_0, cBgS_LinChk* param_1) { +asm bool cBgW::RwgLineCheck(u16 param_0, cBgS_LinChk* param_1) { nofralloc #include "asm/d/bg/d_bg_w/RwgLineCheck__4cBgWFUsP11cBgS_LinChk.s" } #pragma pop +#endif /* 8007A344-8007A3A0 074C84 005C+00 1/0 0/0 0/0 .text __dt__8cM3dGTriFv */ #pragma push @@ -677,34 +885,81 @@ extern "C" asm void __dt__8cM3dGTriFv() { /* 8007A3A0-8007A52C 074CE0 018C+00 1/1 0/0 0/0 .text LineCheckRp__4cBgWFP11cBgS_LinChki */ +#ifdef NONMATCHING +bool cBgW::LineCheckRp(cBgS_LinChk* linchk, int param_1) { + cBgW_NodeTree* pnode0 = &pm_node_tree[param_1]; + cM3dGLin* lin = linchk->GetLinP(); + + if (!cM3d_Cross_MinMaxBoxLine(&pnode0->getMinP(), &pnode0->getMaxP(), &lin->GetStartP(), + &lin->GetEndP())) { + return false; + } + + dzb_tree_data* pnode = &pm_bgd->m_tree_tbl[param_1]; + bool chk = false; + + if (pnode->field_0x0 & 1) { + if (linchk->GetPreWallChk()) { + u16 tmp = field_0xa4[pnode->m_id[0]].field_0x2; + if (tmp != 0xFFFF && RwgLineCheck(tmp, linchk)) { + chk = true; + } + } + + if (linchk->GetPreGroundChk()) { + u16 tmp = field_0xa4[pnode->m_id[0]].field_0x4; + if (tmp != 0xFFFF && RwgLineCheck(tmp, linchk)) { + chk = true; + } + } + + if (linchk->GetPreRoofChk()) { + u16 tmp = field_0xa4[pnode->m_id[0]].field_0x0; + if (tmp != 0xFFFF && RwgLineCheck(tmp, linchk)) { + chk = true; + } + } + + return chk; + } + + for (int i = 0; i < 8; i++) { + // this is probably wrong, fix later + u16* tmp_p = (u16*)pnode; + u16 tmp = tmp_p[i + 2]; + + if (tmp != 0xFFFF && LineCheckRp(linchk, tmp)) { + chk = true; + } + } + + return chk; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cBgW::LineCheckRp(cBgS_LinChk* param_0, int param_1) { +asm bool cBgW::LineCheckRp(cBgS_LinChk* param_0, int param_1) { nofralloc #include "asm/d/bg/d_bg_w/LineCheckRp__4cBgWFP11cBgS_LinChki.s" } #pragma pop +#endif /* 8007A52C-8007A658 074E6C 012C+00 1/1 0/0 0/0 .text LineCheckGrpRp__4cBgWFP11cBgS_LinChkii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cBgW::LineCheckGrpRp(cBgS_LinChk* param_0, int param_1, int param_2) { +asm bool cBgW::LineCheckGrpRp(cBgS_LinChk* param_0, int param_1, int param_2) { nofralloc #include "asm/d/bg/d_bg_w/LineCheckGrpRp__4cBgWFP11cBgS_LinChkii.s" } #pragma pop /* 8007A658-8007A680 074F98 0028+00 2/0 1/0 0/0 .text LineCheck__4cBgWFP11cBgS_LinChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::LineCheck(cBgS_LinChk* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/LineCheck__4cBgWFP11cBgS_LinChk.s" +bool cBgW::LineCheck(cBgS_LinChk* pchk) { + return LineCheckGrpRp(pchk, field_0x92, 1); } -#pragma pop /* 8007A680-8007A774 074FC0 00F4+00 2/2 0/0 0/0 .text * RwgGroundCheckCommon__4cBgWFfUsP11cBgS_GndChk */ @@ -756,7 +1011,7 @@ asm void cBgW::GroundCrossRp(cBgS_GndChk* param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cBgW::GroundCrossGrpRp(cBgS_GndChk* param_0, int param_1, int param_2) { +asm bool cBgW::GroundCrossGrpRp(cBgS_GndChk* param_0, int param_1, int param_2) { nofralloc #include "asm/d/bg/d_bg_w/GroundCrossGrpRp__4cBgWFP11cBgS_GndChkii.s" } @@ -764,34 +1019,55 @@ asm void cBgW::GroundCrossGrpRp(cBgS_GndChk* param_0, int param_1, int param_2) /* 8007AB9C-8007ABC4 0754DC 0028+00 2/0 1/0 0/0 .text GroundCross__4cBgWFP11cBgS_GndChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::GroundCross(cBgS_GndChk* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GroundCross__4cBgWFP11cBgS_GndChk.s" +bool cBgW::GroundCross(cBgS_GndChk* pchk) { + return GroundCrossGrpRp(pchk, field_0x92, 1); } -#pragma pop /* 8007ABC4-8007AC10 075504 004C+00 1/1 0/0 0/0 .text CopyOldMtx__4cBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::CopyOldMtx() { - nofralloc -#include "asm/d/bg/d_bg_w/CopyOldMtx__4cBgWFv.s" +void cBgW::CopyOldMtx() { + if (pm_base != NULL) { + PSMTXCopy(field_0x4c, m_inv_mtx); + PSMTXCopy(pm_base, field_0x4c); + } } -#pragma pop /* 8007AC10-8007ADF0 075550 01E0+00 1/1 0/0 0/0 .text Move__4cBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::Move() { - nofralloc -#include "asm/d/bg/d_bg_w/Move__4cBgWFv.s" +void cBgW::Move() { + if (!ChkLock() && (field_0x88 & 1)) { + if (!ChkNoCalcVtx()) { + if (field_0x90 >= 0xFF || field_0x4c[0][0] != pm_base[0][0] || + field_0x4c[0][1] != pm_base[0][1] || field_0x4c[0][2] != pm_base[0][2] || + field_0x4c[1][0] != pm_base[1][0] || field_0x4c[1][1] != pm_base[1][1] || + field_0x4c[1][2] != pm_base[1][2] || field_0x4c[2][0] != pm_base[2][0] || + field_0x4c[2][1] != pm_base[2][1] || field_0x4c[2][2] != pm_base[2][2]) { + field_0x89 = 1; + } else if (field_0x4c[0][3] == pm_base[0][3] && field_0x4c[1][3] == pm_base[1][3] && + field_0x4c[2][3] == pm_base[2][3]) { + PSMTXCopy(pm_base, m_inv_mtx); + if (!ChkFlush()) { + return; + } + } else { + field_0x7c.x = pm_base[0][3] - field_0x4c[0][3]; + field_0x7c.y = pm_base[1][3] - field_0x4c[1][3]; + field_0x7c.z = pm_base[2][3] - field_0x4c[2][3]; + field_0x89 = 0; + } + + if (field_0x90 >= 0xFF) { + field_0x90 = 0; + } else { + field_0x90++; + } + GlobalVtx(); + } + + CopyOldMtx(); + CalcPlane(); + ClassifyPlane(); + MakeNodeTree(); + } } -#pragma pop /* 8007ADF0-8007AEA4 075730 00B4+00 1/1 0/0 0/0 .text RwgShdwDraw__4cBgWFiP13cBgS_ShdwDraw */ #pragma push @@ -825,14 +1101,9 @@ asm void cBgW::ShdwDrawGrpRp(cBgS_ShdwDraw* param_0, int param_1) { #pragma pop /* 8007B084-8007B0A8 0759C4 0024+00 2/0 1/0 0/0 .text ShdwDraw__4cBgWFP13cBgS_ShdwDraw */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::ShdwDraw(cBgS_ShdwDraw* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/ShdwDraw__4cBgWFP13cBgS_ShdwDraw.s" +void cBgW::ShdwDraw(cBgS_ShdwDraw* pshdw) { + ShdwDrawGrpRp(pshdw, field_0x92); } -#pragma pop /* 8007B0A8-8007B0B0 0759E8 0008+00 1/0 0/0 0/0 .text ChkPolyThrough__4cBgWFiP16cBgS_PolyPassChk */ @@ -842,14 +1113,9 @@ bool cBgW::ChkPolyThrough(int param_0, cBgS_PolyPassChk* param_1) { /* 8007B0B0-8007B0DC 0759F0 002C+00 1/0 0/0 0/0 .text * ChkShdwDrawThrough__4cBgWFiP16cBgS_PolyPassChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::ChkShdwDrawThrough(int param_0, cBgS_PolyPassChk* param_1) { - nofralloc -#include "asm/d/bg/d_bg_w/ChkShdwDrawThrough__4cBgWFiP16cBgS_PolyPassChk.s" +bool cBgW::ChkShdwDrawThrough(int param_0, cBgS_PolyPassChk* param_1) { + return ChkPolyThrough(param_0, param_1); } -#pragma pop /* 8007B0DC-8007B0E4 075A1C 0008+00 1/0 0/0 0/0 .text ChkGrpThrough__4cBgWFiP15cBgS_GrpPassChki */ bool cBgW::ChkGrpThrough(int param_0, cBgS_GrpPassChk* param_1, int param_2) { @@ -857,6 +1123,27 @@ bool cBgW::ChkGrpThrough(int param_0, cBgS_GrpPassChk* param_1, int param_2) { } /* 8007B0E4-8007B164 075A24 0080+00 2/0 1/0 0/0 .text GetGrpRoomIndex__4cBgWCFRC13cBgS_PolyInfo */ +// missing array access instruction generation +#ifdef NONMATCHING +s32 cBgW::GetGrpRoomIndex(cBgS_PolyInfo const& poly) const { + u16 poly_index = poly.GetPolyIndex(); + int grp_index = GetTriGrp(poly_index); + + u16 tmp = pm_bgd->m_g_tbl[grp_index].field_0x24; + int room_index; + + if (tmp == 0xFFFF || pm_bgd->m_g_tbl[tmp].field_0x24 == 0xFFFF) { + return 0xFF; + } + + int room_index = pm_bgd->m_g_tbl[tmp].field_0x2a; + if (room_index >= 0xFF) { + room_index = 0xFF; + } + + return room_index; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -865,477 +1152,284 @@ asm s32 cBgW::GetGrpRoomIndex(cBgS_PolyInfo const& param_0) const { #include "asm/d/bg/d_bg_w/GetGrpRoomIndex__4cBgWCFRC13cBgS_PolyInfo.s" } #pragma pop +#endif /* 8007B164-8007B17C 075AA4 0018+00 2/0 1/0 0/0 .text GetBnd__4cBgWCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetBnd() const { - nofralloc -#include "asm/d/bg/d_bg_w/GetBnd__4cBgWCFv.s" +cM3dGAab* cBgW::GetBnd() const { + return &pm_grp[field_0x92].m_aab; } -#pragma pop /* 8007B17C-8007B1B4 075ABC 0038+00 0/0 1/1 0/0 .text GetTrans__4cBgWCFP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetTrans(cXyz* param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetTrans__4cBgWCFP4cXyz.s" +void cBgW::GetTrans(cXyz* p_trans) const { + MtxP base = pm_base; + p_trans->x = base[0][3] - m_inv_mtx[0][3]; + p_trans->y = base[1][3] - m_inv_mtx[1][3]; + p_trans->z = base[2][3] - m_inv_mtx[2][3]; } -#pragma pop /* 8007B1B4-8007B240 075AF4 008C+00 2/0 1/0 0/0 .text * GetTriPnt__4cBgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::GetTriPnt(cBgS_PolyInfo const& param_0, cXyz* param_1, cXyz* param_2, - cXyz* param_3) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetTriPnt__4cBgWCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s" +bool cBgW::GetTriPnt(cBgS_PolyInfo const& poly, cXyz* p_pnt1, cXyz* p_pnt2, cXyz* p_pnt3) const { + u16 poly_index = poly.GetPolyIndex(); + dzb_tri_data* tri_data = &pm_bgd->m_t_tbl[poly_index]; + + p_pnt1->set(pm_vtx_tbl[tri_data->field_0x0]); + p_pnt2->set(pm_vtx_tbl[tri_data->field_0x2]); + p_pnt3->set(pm_vtx_tbl[tri_data->field_0x4]); + return true; } -#pragma pop /* 8007B240-8007B270 075B80 0030+00 2/0 1/0 0/0 .text GetTopUnder__4cBgWCFPfPf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetTopUnder(f32* param_0, f32* param_1) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetTopUnder__4cBgWCFPfPf.s" +void cBgW::GetTopUnder(f32* p_top, f32* p_under) const { + *p_under = pm_grp[field_0x92].m_aab.getMinP().y; + *p_top = pm_grp[field_0x92].m_aab.getMaxP().y; } -#pragma pop /* 8007B270-8007B2B0 075BB0 0040+00 2/0 1/0 0/0 .text GetTriPla__4cBgWCFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cM3dGPla cBgW::GetTriPla(cBgS_PolyInfo const& param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetTriPla__4cBgWCFRC13cBgS_PolyInfo.s" +cM3dGPla cBgW::GetTriPla(cBgS_PolyInfo const& poly) const { + u16 poly_index = poly.GetPolyIndex(); + return pm_tri[poly_index].m_plane; } -#pragma pop /* 8007B2B0-8007B2F4 075BF0 0044+00 2/0 1/0 0/0 .text GetGrpInf__4cBgWCFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 cBgW::GetGrpInf(cBgS_PolyInfo const& param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetGrpInf__4cBgWCFRC13cBgS_PolyInfo.s" +u32 cBgW::GetGrpInf(cBgS_PolyInfo const& poly) const { + int grp = GetTriGrp(poly.GetPolyIndex()); + return pm_bgd->m_g_tbl[grp].m_info; } -#pragma pop /* 8007B2F4-8007B30C 075C34 0018+00 5/5 0/0 0/0 .text GetPolyInfId__4cBgWCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetPolyInfId(int param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyInfId__4cBgWCFi.s" +int cBgW::GetPolyInfId(int poly_index) const { + return pm_bgd->m_t_tbl[poly_index].m_id; } -#pragma pop /* 8007B30C-8007B360 075C4C 0054+00 6/6 0/0 0/0 .text GetPolyInf0__4cBgWCFiUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetPolyInf0(int param_0, u32 param_1, u32 param_2) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyInf0__4cBgWCFiUlUl.s" +u32 cBgW::GetPolyInf0(int poly_index, u32 mask, u32 shift) const { + int id = GetPolyInfId(poly_index); + return (pm_bgd->m_ti_tbl[id].m_info0 & mask) >> shift; } -#pragma pop /* 8007B360-8007B3AC 075CA0 004C+00 10/10 0/0 0/0 .text GetMaskPolyInf0_NoShift__4cBgWCFiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetMaskPolyInf0_NoShift(int param_0, u32 param_1) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetMaskPolyInf0_NoShift__4cBgWCFiUl.s" +u32 cBgW::GetMaskPolyInf0_NoShift(int poly_index, u32 mask) const { + int id = GetPolyInfId(poly_index); + return (pm_bgd->m_ti_tbl[id].m_info0 & mask); } -#pragma pop /* 8007B3AC-8007B3D8 075CEC 002C+00 1/0 1/0 0/0 .text GetExitId__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetExitId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetExitId__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetExitId(cBgS_PolyInfo const& poly) { + return GetPolyInf0(poly.GetPolyIndex(), 0x3F, 0); } -#pragma pop /* 8007B3D8-8007B404 075D18 002C+00 1/0 1/0 0/0 .text GetPolyColor__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetPolyColor(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyColor__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetPolyColor(cBgS_PolyInfo const& poly) { + return GetPolyInf0(poly.GetPolyIndex(), 0x3FC0, 6); } -#pragma pop /* 8007B404-8007B430 075D44 002C+00 1/0 1/0 0/0 .text GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL dBgW::GetHorseNoEntry(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s" +BOOL dBgW::GetHorseNoEntry(cBgS_PolyInfo const& poly) { + return GetPolyInf0(poly.GetPolyIndex(), 0x200000, 21); } -#pragma pop /* 8007B430-8007B460 075D70 0030+00 1/0 1/0 0/0 .text GetSpecialCode__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetSpecialCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetSpecialCode(cBgS_PolyInfo const& poly) { + return GetSpecialCode(poly.GetPolyIndex()); } -#pragma pop /* 8007B460-8007B488 075DA0 0028+00 1/0 1/0 0/0 .text GetSpecialCode__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetSpecialCode(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetSpecialCode__4dBgWFi.s" +int dBgW::GetSpecialCode(int poly_index) { + return GetPolyInf0(poly_index, 0xF000000, 24); } -#pragma pop /* 8007B488-8007B4B4 075DC8 002C+00 1/0 1/0 0/0 .text GetMagnetCode__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetMagnetCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetMagnetCode(cBgS_PolyInfo const& poly) { + return GetPolyInf0(poly.GetPolyIndex(), 0x30000000, 28); } -#pragma pop /* 8007B4B4-8007B4E0 075DF4 002C+00 1/0 1/0 0/0 .text GetMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetMonkeyBarsCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetMonkeyBarsCode__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetMonkeyBarsCode(cBgS_PolyInfo const& poly) { + return GetPolyInf0(poly.GetPolyIndex(), 0x80000000, 31); } -#pragma pop /* 8007B4E0-8007B504 075E20 0024+00 1/0 1/0 0/0 .text GetPolyObjThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyObjThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyObjThrough__4dBgWFi.s" +u32 dBgW::GetPolyObjThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x4000); } -#pragma pop /* 8007B504-8007B52C 075E44 0028+00 1/0 1/0 0/0 .text GetPolyCamThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyCamThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyCamThrough__4dBgWFi.s" +u32 dBgW::GetPolyCamThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x8000); } -#pragma pop /* 8007B52C-8007B550 075E6C 0024+00 1/0 1/0 0/0 .text GetPolyLinkThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyLinkThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyLinkThrough__4dBgWFi.s" +u32 dBgW::GetPolyLinkThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x10000); } -#pragma pop /* 8007B550-8007B574 075E90 0024+00 1/0 1/0 0/0 .text GetPolyArrowThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyArrowThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyArrowThrough__4dBgWFi.s" +u32 dBgW::GetPolyArrowThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x20000); } -#pragma pop /* 8007B574-8007B598 075EB4 0024+00 1/0 1/0 0/0 .text GetPolyHSStick__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dBgW::GetPolyHSStick(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s" +u32 dBgW::GetPolyHSStick(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x40000); } -#pragma pop /* 8007B598-8007B5BC 075ED8 0024+00 1/0 1/0 0/0 .text GetPolyBoomerangThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyBoomerangThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyBoomerangThrough__4dBgWFi.s" +u32 dBgW::GetPolyBoomerangThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x80000); } -#pragma pop /* 8007B5BC-8007B5E0 075EFC 0024+00 1/0 1/0 0/0 .text GetPolyRopeThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyRopeThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyRopeThrough__4dBgWFi.s" +u32 dBgW::GetPolyRopeThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x100000); } -#pragma pop /* 8007B5E0-8007B604 075F20 0024+00 1/0 1/0 0/0 .text GetPolyBombThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyBombThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyBombThrough__4dBgWFi.s" +u32 dBgW::GetPolyBombThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x800000); } -#pragma pop /* 8007B604-8007B630 075F44 002C+00 1/0 1/0 0/0 .text GetShdwThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetShdwThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetShdwThrough__4dBgWFi.s" +bool dBgW::GetShdwThrough(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x400000) != 0; } -#pragma pop /* 8007B630-8007B654 075F70 0024+00 1/0 1/0 0/0 .text GetUnderwaterRoofCode__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetUnderwaterRoofCode(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetUnderwaterRoofCode__4dBgWFi.s" +u32 dBgW::GetUnderwaterRoofCode(int poly_index) { + return GetMaskPolyInf0_NoShift(poly_index, 0x40000000); } -#pragma pop /* 8007B654-8007B6AC 075F94 0058+00 6/6 0/0 0/0 .text GetPolyInf1__4cBgWCFiUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetPolyInf1(int param_0, u32 param_1, u32 param_2) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyInf1__4cBgWCFiUlUl.s" +u32 cBgW::GetPolyInf1(int poly_index, u32 mask, u32 shift) const { + int id = GetPolyInfId(poly_index); + return (pm_bgd->m_ti_tbl[id].m_info1 & mask) >> shift; } -#pragma pop /* 8007B6AC-8007B6D8 075FEC 002C+00 1/0 1/0 0/0 .text GetLinkNo__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetLinkNo(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetLinkNo__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetLinkNo(cBgS_PolyInfo const& poly) { + return GetPolyInf1(poly.GetPolyIndex(), 0xFF, 0); } -#pragma pop /* 8007B6D8-8007B704 076018 002C+00 1/0 1/0 0/0 .text GetWallCode__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetWallCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetWallCode__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetWallCode(cBgS_PolyInfo const& poly) { + return GetPolyInf1(poly.GetPolyIndex(), 0xF00, 8); } -#pragma pop /* 8007B704-8007B734 076044 0030+00 1/0 1/0 0/0 .text GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetPolyAtt0(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetPolyAtt0(cBgS_PolyInfo const& poly) { + return GetPolyInf1(poly.GetPolyIndex(), 0xF000, 12); } -#pragma pop /* 8007B734-8007B760 076074 002C+00 1/0 1/0 0/0 .text GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetPolyAtt1(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetPolyAtt1(cBgS_PolyInfo const& poly) { + return GetPolyInf1(poly.GetPolyIndex(), 0x70000, 16); } -#pragma pop /* 8007B760-8007B78C 0760A0 002C+00 1/0 1/0 0/0 .text GetGroundCode__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgW::GetGroundCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetGroundCode__4dBgWFRC13cBgS_PolyInfo.s" +int dBgW::GetGroundCode(cBgS_PolyInfo const& poly) { + return GetPolyInf1(poly.GetPolyIndex(), 0xF80000, 19); } -#pragma pop /* 8007B78C-8007B7DC 0760CC 0050+00 2/2 0/0 0/0 .text GetMaskPolyInf1_NoShift__4cBgWCFiUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetMaskPolyInf1_NoShift(int param_0, u32 param_1) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetMaskPolyInf1_NoShift__4cBgWCFiUl.s" +u32 cBgW::GetMaskPolyInf1_NoShift(int poly_index, u32 mask) const { + int id = GetPolyInfId(poly_index); + return (pm_bgd->m_ti_tbl[id].m_info1 & mask); } -#pragma pop /* 8007B7DC-8007B800 07611C 0024+00 1/0 1/0 0/0 .text GetIronBallThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetIronBallThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetIronBallThrough__4dBgWFi.s" +u32 dBgW::GetIronBallThrough(int poly_index) { + return GetMaskPolyInf1_NoShift(poly_index, 0x1000000); } -#pragma pop /* 8007B800-8007B824 076140 0024+00 1/0 1/0 0/0 .text GetAttackThrough__4dBgWFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dBgW::GetAttackThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetAttackThrough__4dBgWFi.s" +u32 dBgW::GetAttackThrough(int poly_index) { + return GetMaskPolyInf1_NoShift(poly_index, 0x2000000); } -#pragma pop /* 8007B824-8007B87C 076164 0058+00 4/4 0/0 0/0 .text GetPolyInf2__4cBgWCFiUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetPolyInf2(int param_0, u32 param_1, u32 param_2) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyInf2__4cBgWCFiUlUl.s" +u32 cBgW::GetPolyInf2(int poly_index, u32 mask, u32 shift) const { + int id = GetPolyInfId(poly_index); + return (pm_bgd->m_ti_tbl[id].m_info2 & mask) >> shift; } -#pragma pop /* 8007B87C-8007B8A8 0761BC 002C+00 1/0 1/0 0/0 .text GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetCamMoveBG(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetCamMoveBG__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetCamMoveBG(cBgS_PolyInfo const& poly) { + return GetPolyInf2(poly.GetPolyIndex(), 0xFF, 0); } -#pragma pop /* 8007B8A8-8007B8D8 0761E8 0030+00 1/0 1/0 0/0 .text GetRoomCamId__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetRoomCamId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetRoomCamId__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetRoomCamId(cBgS_PolyInfo const& poly) { + return GetPolyInf2(poly.GetPolyIndex(), 0xFF00, 8); } -#pragma pop /* 8007B8D8-8007B904 076218 002C+00 1/0 1/0 0/0 .text GetRoomPathId__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetRoomPathId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetRoomPathId__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetRoomPathId(cBgS_PolyInfo const& poly) { + return GetPolyInf2(poly.GetPolyIndex(), 0xFF0000, 16); } -#pragma pop /* 8007B904-8007B930 076244 002C+00 1/0 1/0 0/0 .text GetRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetRoomPathPntNo(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetRoomPathPntNo__4dBgWFRC13cBgS_PolyInfo.s" +s32 dBgW::GetRoomPathPntNo(cBgS_PolyInfo const& poly) { + return GetPolyInf2(poly.GetPolyIndex(), 0xFF000000, 24); } -#pragma pop /* 8007B930-8007B948 076270 0018+00 2/2 0/0 0/0 .text GetTriGrp__4cBgWCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void cBgW::GetTriGrp(int param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w/GetTriGrp__4cBgWCFi.s" +int cBgW::GetTriGrp(int poly_index) const { + return pm_bgd->m_t_tbl[poly_index].m_grp; } -#pragma pop /* 8007B948-8007B958 076288 0010+00 2/0 1/0 0/0 .text ChkNotReady__4cBgWCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::ChkNotReady() const { - nofralloc -#include "asm/d/bg/d_bg_w/ChkNotReady__4cBgWCFv.s" +bool cBgW::ChkNotReady() const { + return pm_vtx_tbl == NULL; } -#pragma pop /* 8007B958-8007B964 076298 000C+00 2/0 1/0 0/0 .text ChkLock__4cBgWCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::ChkLock() const { - nofralloc -#include "asm/d/bg/d_bg_w/ChkLock__4cBgWCFv.s" +bool cBgW::ChkLock() const { + return field_0x88 & 0x80; } -#pragma pop /* 8007B964-8007B970 0762A4 000C+00 2/0 1/0 0/0 .text ChkMoveBg__4cBgWCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool cBgW::ChkMoveBg() const { - nofralloc -#include "asm/d/bg/d_bg_w/ChkMoveBg__4cBgWCFv.s" +bool cBgW::ChkMoveBg() const { + return field_0x88 & 0x1; } -#pragma pop /* 8007B970-8007B9C0 0762B0 0050+00 1/1 2/2 87/87 .text __ct__4dBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dBgW::dBgW() { - nofralloc -#include "asm/d/bg/d_bg_w/__ct__4dBgWFv.s" +dBgW::dBgW() { + m_crr_func = NULL; + m_ride_callback = NULL; + m_arrow_stick_callback = NULL; + m_flags = 0; } -#pragma pop /* 8007B9C0-8007B9EC 076300 002C+00 0/0 2/2 115/115 .text Move__4dBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::Move() { - nofralloc -#include "asm/d/bg/d_bg_w/Move__4dBgWFv.s" +void dBgW::Move() { + OnMoveFlag(); + cBgW::Move(); } -#pragma pop /* 8007B9EC-8007BA40 07632C 0054+00 2/2 0/0 0/0 .text * positionWallCorrect__4dBgWFP9dBgS_AcchfR8cM3dGPlaP4cXyzf */ +// matches with literals +#ifdef NONMATCHING +void dBgW::positionWallCorrect(dBgS_Acch* param_0, f32 param_1, cM3dGPla& param_2, cXyz* pupper_pos, + f32 param_4) { + param_0->SetWallHit(); + + f32 tmp = param_4 - 1.0f; + if (tmp < 0.0f) { + tmp = 0.0f; + } + + f32 temp_f2 = tmp * param_1; + pupper_pos->x += temp_f2 * param_2.mNormal.x; + pupper_pos->z += temp_f2 * param_2.mNormal.z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1345,6 +1439,7 @@ asm void dBgW::positionWallCorrect(dBgS_Acch* param_0, f32 param_1, cM3dGPla& pa #include "asm/d/bg/d_bg_w/positionWallCorrect__4dBgWFP9dBgS_AcchfR8cM3dGPlaP4cXyzf.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80452710-80452718 000D10 0004+04 2/2 0/0 0/0 .sdata2 @4962 */ @@ -1380,31 +1475,32 @@ asm void dBgW::WallCorrectRp(dBgS_Acch* param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgW::WallCorrectGrpRp(dBgS_Acch* param_0, int param_1, int param_2) { +asm bool dBgW::WallCorrectGrpRp(dBgS_Acch* param_0, int param_1, int param_2) { nofralloc #include "asm/d/bg/d_bg_w/WallCorrectGrpRp__4dBgWFP9dBgS_Acchii.s" } #pragma pop /* 8007C484-8007C4AC 076DC4 0028+00 1/0 1/0 0/0 .text WallCorrect__4dBgWFP9dBgS_Acch */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::WallCorrect(dBgS_Acch* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/WallCorrect__4dBgWFP9dBgS_Acch.s" +bool dBgW::WallCorrect(dBgS_Acch* pacch) { + return WallCorrectGrpRp(pacch, field_0x92, 1); } -#pragma pop + +struct wcs_data { + /* 0x0 */ f32 field_0x0; + /* 0x4 */ u16 field_0x4; + /* 0x8 */ int field_0x8; +}; // Size: 0xC /* ############################################################################################## */ /* 80424B80-80424F70 0518A0 03F0+00 1/1 0/0 0/0 .bss l_wcsbuf */ -static u8 l_wcsbuf[1008]; +static wcs_data l_wcsbuf[84]; /* 80450F80-80450F84 000480 0004+00 2/2 0/0 0/0 .sbss l_start */ -static u8 l_start[4]; +static wcs_data* l_start; /* 80450F84-80450F88 000484 0004+00 2/2 0/0 0/0 .sbss l_wcsbuf_num */ -static u8 l_wcsbuf_num[4]; +static int l_wcsbuf_num; /* 8007C4AC-8007C714 076DEC 0268+00 1/1 0/0 0/0 .text RwgWallCorrectSort__4dBgWFP9dBgS_AcchUs */ #pragma push @@ -1473,21 +1569,16 @@ asm void dBgW::RoofChkRp(dBgS_RoofChk* param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgW::RoofChkGrpRp(dBgS_RoofChk* param_0, int param_1, int param_2) { +asm bool dBgW::RoofChkGrpRp(dBgS_RoofChk* param_0, int param_1, int param_2) { nofralloc #include "asm/d/bg/d_bg_w/RoofChkGrpRp__4dBgWFP12dBgS_RoofChkii.s" } #pragma pop /* 8007D470-8007D498 077DB0 0028+00 1/0 1/0 0/0 .text RoofChk__4dBgWFP12dBgS_RoofChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dBgW::RoofChk(dBgS_RoofChk* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/RoofChk__4dBgWFP12dBgS_RoofChk.s" +bool dBgW::RoofChk(dBgS_RoofChk* pchk) { + return RoofChkGrpRp(pchk, field_0x92, 1); } -#pragma pop /* 8007D498-8007D5C4 077DD8 012C+00 1/1 0/0 0/0 .text RwgSplGrpChk__4dBgWFUsP14dBgS_SplGrpChk */ #pragma push @@ -1513,7 +1604,7 @@ asm void dBgW::SplGrpChkRp(dBgS_SplGrpChk* param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgW::SplGrpChkGrpRp(dBgS_SplGrpChk* param_0, int param_1, int param_2) { +asm bool dBgW::SplGrpChkGrpRp(dBgS_SplGrpChk* param_0, int param_1, int param_2) { nofralloc #include "asm/d/bg/d_bg_w/SplGrpChkGrpRp__4dBgWFP14dBgS_SplGrpChkii.s" } @@ -1521,14 +1612,9 @@ asm void dBgW::SplGrpChkGrpRp(dBgS_SplGrpChk* param_0, int param_1, int param_2) /* 8007D830-8007D858 078170 0028+00 1/0 1/0 0/0 .text SplGrpChk__4dBgWFP14dBgS_SplGrpChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dBgW::SplGrpChk(dBgS_SplGrpChk* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/SplGrpChk__4dBgWFP14dBgS_SplGrpChk.s" +bool dBgW::SplGrpChk(dBgS_SplGrpChk* pchk) { + return SplGrpChkGrpRp(pchk, field_0x92, 1); } -#pragma pop /* 8007D858-8007D8E8 078198 0090+00 1/1 0/0 0/0 .text RwgCaptPoly__4dBgWFiR13dBgS_CaptPoly */ #pragma push @@ -1562,14 +1648,9 @@ asm void dBgW::CaptPolyGrpRp(dBgS_CaptPoly& param_0, int param_1, int param_2) { #pragma pop /* 8007DAF8-8007DB20 078438 0028+00 1/0 1/0 0/0 .text CaptPoly__4dBgWFR13dBgS_CaptPoly */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::CaptPoly(dBgS_CaptPoly& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/CaptPoly__4dBgWFR13dBgS_CaptPoly.s" +void dBgW::CaptPoly(dBgS_CaptPoly& poly) { + CaptPolyGrpRp(poly, field_0x92, 1); } -#pragma pop /* 8007DB20-8007DC70 078460 0150+00 1/1 0/0 0/0 .text RwgSphChk__4dBgWFUsP11dBgS_SphChkPv */ @@ -1597,42 +1678,27 @@ asm void dBgW::SphChkRp(dBgS_SphChk* param_0, void* param_1, int param_2) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgW::SphChkGrpRp(dBgS_SphChk* param_0, void* param_1, int param_2, int param_3) { +asm bool dBgW::SphChkGrpRp(dBgS_SphChk* param_0, void* param_1, int param_2, int param_3) { nofralloc #include "asm/d/bg/d_bg_w/SphChkGrpRp__4dBgWFP11dBgS_SphChkPvii.s" } #pragma pop /* 8007DF00-8007DF28 078840 0028+00 1/0 1/0 0/0 .text SphChk__4dBgWFP11dBgS_SphChkPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dBgW::SphChk(dBgS_SphChk* param_0, void* param_1) { - nofralloc -#include "asm/d/bg/d_bg_w/SphChk__4dBgWFP11dBgS_SphChkPv.s" +bool dBgW::SphChk(dBgS_SphChk* pchk, void* param_1) { + return SphChkGrpRp(pchk, param_1, field_0x92, 1); } -#pragma pop /* 8007DF28-8007DF58 078868 0030+00 1/0 1/0 0/0 .text GetPolyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::GetPolyGrpRoomInfId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetPolyGrpRoomInfId__4dBgWFRC13cBgS_PolyInfo.s" +u8 dBgW::GetPolyGrpRoomInfId(cBgS_PolyInfo const& poly) { + return GetGrpInf(poly) & 0xFF; } -#pragma pop /* 8007DF58-8007DF88 078898 0030+00 1/0 1/0 0/0 .text GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgW::GetGrpSoundId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w/GetGrpSoundId__4dBgWFRC13cBgS_PolyInfo.s" +u8 dBgW::GetGrpSoundId(cBgS_PolyInfo const& poly) { + return GetGrpInf(poly) >> 11; } -#pragma pop /* 8007DF88-8007DFC4 0788C8 003C+00 1/0 0/0 0/0 .text * CrrPos__4dBgWFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */ @@ -1672,31 +1738,101 @@ asm void dBgW::MatrixCrrPos(cBgS_PolyInfo const& param_0, void* param_1, bool pa /* 8007E02C-8007E360 07896C 0334+00 1/0 1/0 0/0 .text ChkPolyThrough__4dBgWFiP16cBgS_PolyPassChk */ +// should match when dHorse_c member function table is setup +#ifdef NONMATCHING +bool dBgW::ChkPolyThrough(int poly_index, cBgS_PolyPassChk* ppass_chk) { + if (ppass_chk == NULL) { + return false; + } + dBgS_PolyPassChk* chk = (dBgS_PolyPassChk*)ppass_chk; + + if (chk->ChkObj() && GetPolyObjThrough(poly_index)) { + return true; + } + + if (chk->ChkCam() && GetPolyCamThrough(poly_index)) { + return true; + } + + if ((chk->ChkLink() && GetPolyLinkThrough(poly_index)) || + (chk->ChkHorse() && GetPolyLinkThrough(poly_index))) { + return true; + } + + if (chk->ChkArrow() && GetPolyArrowThrough(poly_index)) { + return true; + } + + if (chk->ChkBomb() && GetPolyBombThrough(poly_index)) { + return true; + } + + if (chk->ChkBoomerang() && GetPolyBoomerangThrough(poly_index)) { + return true; + } + + if (chk->ChkRope() && GetPolyRopeThrough(poly_index)) { + return true; + } + + if (chk->ChkUnderwaterRoof() && GetUnderwaterRoofCode(poly_index)) { + return true; + } + + int info_f00 = GetPolyInf1(poly_index, 0xF00, 8); + if (info_f00 == 8 && chk->ChkNoHorse()) { + return true; + } + + if (info_f00 == 9) { + if (chk->ChkNoHorse()) { + return true; + } + + cXyz pos(pm_tri[poly_index].m_plane.mNormal); + if (chk->ChkHorse() && i_dComIfGp_getHorseActor() != NULL) { + if (!i_dComIfGp_getHorseActor()->checkSpecialWallHit(pos)) { + return true; + } + } + } + + if (chk->ChkStatue() && GetSpecialCode(poly_index) == 7) { + return true; + } + + if (chk->ChkIronBall() && GetIronBallThrough(poly_index)) { + return true; + } + + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgW::ChkPolyThrough(int param_0, cBgS_PolyPassChk* param_1) { +asm bool dBgW::ChkPolyThrough(int param_0, cBgS_PolyPassChk* param_1) { nofralloc #include "asm/d/bg/d_bg_w/ChkPolyThrough__4dBgWFiP16cBgS_PolyPassChk.s" } #pragma pop +#endif /* 8007E360-8007E3D8 078CA0 0078+00 1/0 1/0 0/0 .text * ChkShdwDrawThrough__4dBgWFiP16cBgS_PolyPassChk */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::ChkShdwDrawThrough(int param_0, cBgS_PolyPassChk* param_1) { - nofralloc -#include "asm/d/bg/d_bg_w/ChkShdwDrawThrough__4dBgWFiP16cBgS_PolyPassChk.s" +bool dBgW::ChkShdwDrawThrough(int poly_index, cBgS_PolyPassChk*) { + if (GetShdwThrough(poly_index)) { + return true; + } + + return GetPolyArrowThrough(poly_index); } -#pragma pop /* 8007E3D8-8007E444 078D18 006C+00 1/0 1/0 0/0 .text ChkGrpThrough__4dBgWFiP15cBgS_GrpPassChki */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgW::ChkGrpThrough(int param_0, cBgS_GrpPassChk* param_1, int param_2) { +asm bool dBgW::ChkGrpThrough(int param_0, cBgS_GrpPassChk* param_1, int param_2) { nofralloc #include "asm/d/bg/d_bg_w/ChkGrpThrough__4dBgWFiP15cBgS_GrpPassChki.s" } @@ -1704,14 +1840,11 @@ asm void dBgW::ChkGrpThrough(int param_0, cBgS_GrpPassChk* param_1, int param_2) /* 8007E444-8007E474 078D84 0030+00 1/0 1/0 0/0 .text * CallRideCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::CallRideCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/bg/d_bg_w/CallRideCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_c.s" +void dBgW::CallRideCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1) { + if (m_ride_callback != NULL) { + m_ride_callback(this, param_0, param_1); + } } -#pragma pop /* 8007E474-8007E4A4 078DB4 0030+00 1/0 1/0 0/0 .text * CallArrowStickCallBack__4dBgWFP10fopAc_ac_cP10fopAc_ac_cR4cXyz */ @@ -1725,34 +1858,29 @@ asm void dBgW::CallArrowStickCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1, #pragma pop /* 8007E4A4-8007E4B4 078DE4 0010+00 1/0 1/0 0/0 .text OffMoveFlag__4dBgWFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW::OffMoveFlag() { - nofralloc -#include "asm/d/bg/d_bg_w/OffMoveFlag__4dBgWFv.s" +void dBgW::OffMoveFlag() { + m_flags &= ~1; } -#pragma pop /* 8007E4B4-8007E4C0 078DF4 000C+00 1/0 1/0 0/0 .text ChkMoveFlag__4dBgWCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dBgW::ChkMoveFlag() const { - nofralloc -#include "asm/d/bg/d_bg_w/ChkMoveFlag__4dBgWCFv.s" +u32 dBgW::ChkMoveFlag() const { + return m_flags & 1; } -#pragma pop /* 8007E4C0-8007E548 078E00 0088+00 0/0 0/0 1/1 .text dBgW_NewSet__FP6cBgD_tUlPA3_A4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgW_NewSet(cBgD_t* param_0, u32 param_1, f32 (*param_2)[3][4]) { - nofralloc -#include "asm/d/bg/d_bg_w/dBgW_NewSet__FP6cBgD_tUlPA3_A4_f.s" +dBgW* dBgW_NewSet(cBgD_t* pbgd, u32 param_1, Mtx* pbase_mtx) { + dBgW* nw = new dBgW(); + + if (nw == NULL) { + return NULL; + } + + if (nw->Set(pbgd, param_1, pbase_mtx)) { + return NULL; + } + + return nw; } -#pragma pop /* 8007E548-8007E5A8 078E88 0060+00 1/0 0/0 0/0 .text __dt__4dBgWFv */ #pragma push diff --git a/src/d/bg/d_bg_w_kcol.cpp b/src/d/bg/d_bg_w_kcol.cpp index 2075e56fbe1..63d4c0e23fd 100644 --- a/src/d/bg/d_bg_w_kcol.cpp +++ b/src/d/bg/d_bg_w_kcol.cpp @@ -206,14 +206,9 @@ SECTION_DATA extern void* __vt__8dBgWKCol[60] = { }; /* 8007E6F4-8007E74C 079034 0058+00 0/0 0/0 1/1 .text __ct__8dBgWKColFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dBgWKCol::dBgWKCol() { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/__ct__8dBgWKColFv.s" +dBgWKCol::dBgWKCol() { + m_pkc_head = NULL; } -#pragma pop /* 8007E74C-8007E7D0 07908C 0084+00 1/0 0/0 0/0 .text __dt__8dBgWKColFv */ #pragma push @@ -237,35 +232,22 @@ asm void dBgWKCol::initKCollision(void* param_0) { #pragma pop /* 8007E804-8007E850 079144 004C+00 0/0 0/0 1/1 .text create__8dBgWKColFPvPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::create(void* param_0, void* param_1) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/create__8dBgWKColFPvPv.s" +void dBgWKCol::create(void* pprism, void* plc) { + ClrDBgWBase(); + m_pkc_head = (pkcdata*)pprism; + m_code.setBase(plc); } -#pragma pop /* 8007E850-8007E86C 079190 001C+00 1/1 0/0 0/0 .text getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::getTriNrm(KC_PrismData* param_0, Vec** param_1) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/getTriNrm__8dBgWKColCFP12KC_PrismDataPP3Vec.s" +void dBgWKCol::getTriNrm(KC_PrismData* pkc, Vec** nrm) const { + *nrm = &m_pkc_head->field_0x4[pkc->field_0x6]; } -#pragma pop /* 8007E86C-8007E87C 0791AC 0010+00 1/0 0/0 0/0 .text ChkNotReady__8dBgWKColCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dBgWKCol::ChkNotReady() const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/ChkNotReady__8dBgWKColCFv.s" +bool dBgWKCol::ChkNotReady() const { + return m_pkc_head == NULL; } -#pragma pop /* 8007E87C-8007E884 0791BC 0008+00 1/0 0/0 0/0 .text ChkLock__8dBgWKColCFv */ bool dBgWKCol::ChkLock() const { @@ -278,58 +260,53 @@ bool dBgWKCol::ChkMoveBg() const { } /* 8007E88C-8007E894 0791CC 0008+00 1/0 0/0 0/0 .text ChkMoveFlag__8dBgWKColCFv */ -bool dBgWKCol::ChkMoveFlag() const { - return false; +u32 dBgWKCol::ChkMoveFlag() const { + return 0; } /* 8007E894-8007E8C0 0791D4 002C+00 1/0 0/0 0/0 .text GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cM3dGPla dBgWKCol::GetTriPla(cBgS_PolyInfo const& param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFRC13cBgS_PolyInfo.s" +cM3dGPla dBgWKCol::GetTriPla(cBgS_PolyInfo const& poly) const { + int poly_index = poly.GetPolyIndex(); + return GetTriPla(poly_index); } -#pragma pop /* 8007E8C0-8007E980 079200 00C0+00 3/3 0/0 0/0 .text GetTriPla__8dBgWKColCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetTriPla(int param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetTriPla__8dBgWKColCFi.s" +cM3dGPla dBgWKCol::GetTriPla(int poly_index) const { + KC_PrismData* pd = getPrismData(poly_index); + + Vec* tri_nrm; + getTriNrm(pd, &tri_nrm); + + Vec* tri_pos; + getTri1Pos(pd, &tri_pos); + PSVECDotProduct(tri_nrm, tri_pos); + + cM3dGPla plane; + plane.SetupNP(*tri_nrm, *tri_pos); + + return plane; } -#pragma pop /* 8007E980-8007E9A4 0792C0 0024+00 1/0 0/0 0/0 .text * GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetTriPnt(cBgS_PolyInfo const& param_0, cXyz* param_1, cXyz* param_2, - cXyz* param_3) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFRC13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz.s" +bool dBgWKCol::GetTriPnt(cBgS_PolyInfo const& poly, cXyz* param_1, cXyz* param_2, + cXyz* param_3) const { + int poly_index = poly.GetPolyIndex(); + return GetTriPnt(poly_index, param_1, param_2, param_3); } -#pragma pop /* 8007E9A4-8007E9D4 0792E4 0030+00 3/3 0/0 0/0 .text GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetTriPnt(int param_0, Vec* param_1, Vec* param_2, Vec* param_3) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFiP3VecP3VecP3Vec.s" +bool dBgWKCol::GetTriPnt(int poly_index, Vec* param_1, Vec* param_2, Vec* param_3) const { + KC_PrismData* pd = getPrismData(poly_index); + return GetTriPnt(pd, param_1, param_2, param_3); } -#pragma pop /* 8007E9D4-8007EB28 079314 0154+00 3/3 0/0 0/0 .text * GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgWKCol::GetTriPnt(KC_PrismData const* param_0, Vec* param_1, Vec* param_2, +asm bool dBgWKCol::GetTriPnt(KC_PrismData const* param_0, Vec* param_1, Vec* param_2, Vec* param_3) const { nofralloc #include "asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec.s" @@ -337,47 +314,37 @@ asm void dBgWKCol::GetTriPnt(KC_PrismData const* param_0, Vec* param_1, Vec* par #pragma pop /* 8007EB28-8007EB30 079468 0008+00 1/0 0/0 0/0 .text GetBnd__8dBgWKColCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetBnd() const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetBnd__8dBgWKColCFv.s" +cM3dGAab* dBgWKCol::GetBnd() const { + return (cM3dGAab*)&m_bnd; } -#pragma pop /* 8007EB30-8007EB6C 079470 003C+00 1/0 0/0 0/0 .text GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetGrpInf(cBgS_PolyInfo const& param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetGrpInf__8dBgWKColCFRC13cBgS_PolyInfo.s" +u32 dBgWKCol::GetGrpInf(cBgS_PolyInfo const& poly) const { + u16 poly_index = poly.GetPolyIndex(); + KC_PrismData* pd = getPrismData(poly_index); + + return m_code.getGrpCode(pd->field_0xe); } -#pragma pop /* 8007EB6C-8007EB70 0794AC 0004+00 1/0 0/0 0/0 .text OffMoveFlag__8dBgWKColFv */ -void dBgWKCol::OffMoveFlag() { - /* empty function */ -} +void dBgWKCol::OffMoveFlag() {} /* 8007EB70-8007EBC4 0794B0 0054+00 39/39 0/0 0/0 .text getPolyCode__8dBgWKColCFiP5dBgPc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::getPolyCode(int param_0, dBgPc* param_1) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/getPolyCode__8dBgWKColCFiP5dBgPc.s" +void dBgWKCol::getPolyCode(int poly_index, dBgPc* pbgpc) const { + KC_PrismData* pd = getPrismData(poly_index); + + sBgPc* code; + m_code.getCode(pd->field_0xe, &code); + pbgpc->setCode(*code); } -#pragma pop /* 8007EBC4-8007EE34 079504 0270+00 8/8 0/0 0/0 .text * chkPolyThrough__8dBgWKColCFP5dBgPcP16cBgS_PolyPassChkP15cBgS_GrpPassChkR4cXyz */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgWKCol::chkPolyThrough(dBgPc* param_0, cBgS_PolyPassChk* param_1, +asm bool dBgWKCol::chkPolyThrough(dBgPc* param_0, cBgS_PolyPassChk* param_1, cBgS_GrpPassChk* param_2, cXyz& param_3) const { nofralloc #include "asm/d/bg/d_bg_w_kcol/chkPolyThrough__8dBgWKColCFP5dBgPcP16cBgS_PolyPassChkP15cBgS_GrpPassChkR4cXyz.s" @@ -441,18 +408,17 @@ asm void dBgWKCol::ShdwDraw(cBgS_ShdwDraw* param_0) { #pragma pop /* 8007FF00-8007FF1C 07A840 001C+00 1/1 0/0 0/0 .text ChkShdwDrawThrough__8dBgWKColFP5dBgPc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::ChkShdwDrawThrough(dBgPc* param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/ChkShdwDrawThrough__8dBgWKColFP5dBgPc.s" +bool dBgWKCol::ChkShdwDrawThrough(dBgPc* pbgpc) { + if (pbgpc->getShdwThrough()) { + return true; + } + + return pbgpc->getArrowThrough(); } -#pragma pop /* ############################################################################################## */ /* 80424F70-80424F94 051C90 0024+00 1/1 0/0 0/0 .bss vtx_tbl$4582 */ -static u8 vtx_tbl_4582[36]; +static Vec vtx_tbl_4582[3]; /* 8007FF1C-80080330 07A85C 0414+00 1/0 0/0 0/0 .text CaptPoly__8dBgWKColFR13dBgS_CaptPoly */ #pragma push @@ -501,7 +467,7 @@ asm void dBgWKCol::WallCorrectSort(dBgS_Acch* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dBgWKCol::WallCorrect(dBgS_Acch* param_0) { +asm bool dBgWKCol::WallCorrect(dBgS_Acch* param_0) { nofralloc #include "asm/d/bg/d_bg_w_kcol/WallCorrect__8dBgWKColFP9dBgS_Acch.s" } @@ -530,7 +496,7 @@ asm bool dBgWKCol::SplGrpChk(dBgS_SplGrpChk* param_0) { /* ############################################################################################## */ /* 80425384-804253A8 0520A4 0024+00 1/1 0/0 0/0 .bss vtx_tbl$5950 */ -static u8 vtx_tbl_5950[36]; +static Vec vtx_tbl_5950[3]; /* 800824EC-800829AC 07CE2C 04C0+00 1/0 0/0 0/0 .text SphChk__8dBgWKColFP11dBgS_SphChkPv */ @@ -543,358 +509,297 @@ asm bool dBgWKCol::SphChk(dBgS_SphChk* param_0, void* param_1) { } #pragma pop -/* ############################################################################################## */ -/* 80452750-80452758 000D50 0008+00 1/1 0/0 0/0 .sdata2 @6099 */ -SECTION_SDATA2 static f64 lit_6099 = 4503599627370496.0 /* cast u32 to float */; - /* 800829AC-800829F0 07D2EC 0044+00 1/0 0/0 0/0 .text GetTopUnder__8dBgWKColCFPfPf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetTopUnder(f32* param_0, f32* param_1) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetTopUnder__8dBgWKColCFPfPf.s" +void dBgWKCol::GetTopUnder(f32* param_0, f32* param_1) const { + *param_1 = m_pkc_head->m_area_min_pos.y; + *param_0 = *param_1 + (f32)~m_pkc_head->field_0x24; } -#pragma pop /* 800829F0-80082A20 07D330 0030+00 1/0 0/0 0/0 .text * GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetGrpRoomIndex(cBgS_PolyInfo const& param_0) const { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetGrpRoomIndex__8dBgWKColCFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetGrpRoomIndex(cBgS_PolyInfo const& poly) const { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getRoom(); } -#pragma pop /* 80082A20-80082A50 07D360 0030+00 1/0 0/0 0/0 .text GetExitId__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetExitId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetExitId__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetExitId(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getExit(); } -#pragma pop /* 80082A50-80082A80 07D390 0030+00 1/0 0/0 0/0 .text GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyColor(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyColor__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetPolyColor(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getPolyCol(); } -#pragma pop /* 80082A80-80082AB0 07D3C0 0030+00 1/0 0/0 0/0 .text GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetHorseNoEntry(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetHorseNoEntry__8dBgWKColFRC13cBgS_PolyInfo.s" +BOOL dBgWKCol::GetHorseNoEntry(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getHorseNoEntry(); } -#pragma pop /* 80082AB0-80082AE0 07D3F0 0030+00 1/0 0/0 0/0 .text GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetSpecialCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetSpecialCode(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + return GetSpecialCode(poly_index); } -#pragma pop /* 80082AE0-80082B0C 07D420 002C+00 1/0 0/0 0/0 .text GetSpecialCode__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetSpecialCode(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetSpecialCode__8dBgWKColFi.s" +int dBgWKCol::GetSpecialCode(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getSpl(); } -#pragma pop /* 80082B0C-80082B3C 07D44C 0030+00 1/0 0/0 0/0 .text GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetMagnetCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetMagnetCode(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getMagnet(); } -#pragma pop /* 80082B3C-80082B6C 07D47C 0030+00 1/0 0/0 0/0 .text * GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetMonkeyBarsCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetMonkeyBarsCode__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetMonkeyBarsCode(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getMonkeyBars(); } -#pragma pop /* 80082B6C-80082B98 07D4AC 002C+00 1/0 0/0 0/0 .text GetPolyObjThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyObjThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyObjThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyObjThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getObjThrough(); } -#pragma pop /* 80082B98-80082BC4 07D4D8 002C+00 1/0 0/0 0/0 .text GetPolyCamThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyCamThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyCamThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyCamThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getCamThrough(); } -#pragma pop /* 80082BC4-80082BF0 07D504 002C+00 1/0 0/0 0/0 .text GetPolyLinkThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyLinkThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyLinkThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyLinkThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getLinkThrough(); } -#pragma pop /* 80082BF0-80082C1C 07D530 002C+00 1/0 0/0 0/0 .text GetPolyArrowThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyArrowThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyArrowThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyArrowThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getArrowThrough(); } -#pragma pop /* 80082C1C-80082C48 07D55C 002C+00 1/0 0/0 0/0 .text GetPolyHSStick__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 dBgWKCol::GetPolyHSStick(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyHSStick(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getHSStick(); } -#pragma pop /* 80082C48-80082C74 07D588 002C+00 1/0 0/0 0/0 .text GetPolyBoomerangThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyBoomerangThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyBoomerangThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyBoomerangThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getBoomerangThrough(); } -#pragma pop /* 80082C74-80082CA0 07D5B4 002C+00 1/0 0/0 0/0 .text GetPolyRopeThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyRopeThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyRopeThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyRopeThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getRopeThrough(); } -#pragma pop /* 80082CA0-80082CCC 07D5E0 002C+00 1/0 0/0 0/0 .text GetPolyBombThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyBombThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyBombThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetPolyBombThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getBombThrough(); } -#pragma pop /* 80082CCC-80082CF8 07D60C 002C+00 1/0 0/0 0/0 .text GetUnderwaterRoofCode__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetUnderwaterRoofCode(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetUnderwaterRoofCode__8dBgWKColFi.s" +u32 dBgWKCol::GetUnderwaterRoofCode(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getUnderwaterRoof(); } -#pragma pop /* 80082CF8-80082D24 07D638 002C+00 1/0 0/0 0/0 .text GetShdwThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetShdwThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetShdwThrough__8dBgWKColFi.s" +bool dBgWKCol::GetShdwThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getShdwThrough(); } -#pragma pop /* 80082D24-80082D54 07D664 0030+00 1/0 0/0 0/0 .text GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetLinkNo(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetLinkNo__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetLinkNo(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getLinkNo(); } -#pragma pop /* 80082D54-80082D84 07D694 0030+00 1/0 0/0 0/0 .text GetWallCode__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetWallCode__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getWallCode(); } -#pragma pop /* 80082D84-80082DB4 07D6C4 0030+00 1/0 0/0 0/0 .text GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getAtt0Code(); } -#pragma pop /* 80082DB4-80082DE4 07D6F4 0030+00 1/0 0/0 0/0 .text GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetPolyAtt1(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetPolyAtt1(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getAtt1Code(); } -#pragma pop /* 80082DE4-80082E14 07D724 0030+00 1/0 0/0 0/0 .text GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dBgWKCol::GetGroundCode(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetGroundCode__8dBgWKColFRC13cBgS_PolyInfo.s" +int dBgWKCol::GetGroundCode(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getGroundCode(); } -#pragma pop /* 80082E14-80082E40 07D754 002C+00 1/0 0/0 0/0 .text GetIronBallThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetIronBallThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetIronBallThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetIronBallThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getIronBallThrough(); } -#pragma pop /* 80082E40-80082E6C 07D780 002C+00 1/0 0/0 0/0 .text GetAttackThrough__8dBgWKColFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetAttackThrough(int param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetAttackThrough__8dBgWKColFi.s" +u32 dBgWKCol::GetAttackThrough(int poly_index) { + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + + return bgpc.getAttackThrough(); } -#pragma pop /* 80082E6C-80082E9C 07D7AC 0030+00 1/0 0/0 0/0 .text GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetCamMoveBG(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetCamMoveBG__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetCamMoveBG(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getCamMoveBG(); } -#pragma pop /* 80082E9C-80082ECC 07D7DC 0030+00 1/0 0/0 0/0 .text GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetRoomCamId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetRoomCamId__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetRoomCamId(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getRoomCam(); } -#pragma pop /* 80082ECC-80082EFC 07D80C 0030+00 1/0 0/0 0/0 .text GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetRoomPathId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetRoomPathId__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetRoomPathId(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getRoomPath(); } -#pragma pop /* 80082EFC-80082F2C 07D83C 0030+00 1/0 0/0 0/0 .text * GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetRoomPathPntNo(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetRoomPathPntNo__8dBgWKColFRC13cBgS_PolyInfo.s" +s32 dBgWKCol::GetRoomPathPntNo(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getRoomPathPnt(); } -#pragma pop /* 80082F2C-80082F5C 07D86C 0030+00 1/0 0/0 0/0 .text * GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetPolyGrpRoomInfId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetPolyGrpRoomInfId__8dBgWKColFRC13cBgS_PolyInfo.s" +u8 dBgWKCol::GetPolyGrpRoomInfId(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getRoomInf(); } -#pragma pop /* 80082F5C-80082F8C 07D89C 0030+00 1/0 0/0 0/0 .text GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWKCol::GetGrpSoundId(cBgS_PolyInfo const& param_0) { - nofralloc -#include "asm/d/bg/d_bg_w_kcol/GetGrpSoundId__8dBgWKColFRC13cBgS_PolyInfo.s" +u8 dBgWKCol::GetGrpSoundId(cBgS_PolyInfo const& poly) { + u16 poly_index = poly.GetPolyIndex(); + + dBgPc bgpc; + getPolyCode(poly_index, &bgpc); + return bgpc.getSnd(); } -#pragma pop /* 80082F8C-80082F90 07D8CC 0004+00 1/0 0/0 0/0 .text * CrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */ void dBgWKCol::CrrPos(cBgS_PolyInfo const& param_0, void* param_1, bool param_2, cXyz* param_3, - csXyz* param_4, csXyz* param_5) { - /* empty function */ -} + csXyz* param_4, csXyz* param_5) {} /* 80082F90-80082F94 07D8D0 0004+00 1/0 0/0 0/0 .text * TransPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */ void dBgWKCol::TransPos(cBgS_PolyInfo const& param_0, void* param_1, bool param_2, cXyz* param_3, - csXyz* param_4, csXyz* param_5) { - /* empty function */ -} + csXyz* param_4, csXyz* param_5) {} /* 80082F94-80082F98 07D8D4 0004+00 1/0 0/0 0/0 .text * MatrixCrrPos__8dBgWKColFRC13cBgS_PolyInfoPvbP4cXyzP5csXyzP5csXyz */ void dBgWKCol::MatrixCrrPos(cBgS_PolyInfo const& param_0, void* param_1, bool param_2, - cXyz* param_3, csXyz* param_4, csXyz* param_5) { - /* empty function */ -} + cXyz* param_3, csXyz* param_4, csXyz* param_5) {} diff --git a/src/d/bg/d_bg_w_sv.cpp b/src/d/bg/d_bg_w_sv.cpp index b39c5048a7e..5d292313b02 100644 --- a/src/d/bg/d_bg_w_sv.cpp +++ b/src/d/bg/d_bg_w_sv.cpp @@ -5,118 +5,6 @@ #include "d/bg/d_bg_w_sv.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c {}; - -struct cBgD_t {}; - -struct cBgS_PolyInfo {}; - -struct csXyz {}; - -struct cXyz {}; - -struct dBgWSv { - /* 80082F98 */ void Set(cBgD_t*, u32); - /* 80083020 */ void CopyBackVtx(); - /* 8008308C */ void CrrPosWork(cXyz*, int, int, int); - /* 80083244 */ void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); - /* 80083300 */ void TransPosWork(cXyz*, int, int, int); - /* 8008351C */ void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); - /* 800835D8 */ void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); - /* 800835DC */ ~dBgWSv(); -}; - -struct cBgS_GrpPassChk {}; - -struct cBgS_PolyPassChk {}; - -struct dBgS_SplGrpChk {}; - -struct dBgS_Acch {}; - -struct dBgS_SphChk {}; - -struct dBgS_RoofChk {}; - -struct dBgS_CaptPoly {}; - -struct dBgW { - /* 8007B3AC */ void GetExitId(cBgS_PolyInfo const&); - /* 8007B3D8 */ void GetPolyColor(cBgS_PolyInfo const&); - /* 8007B404 */ void GetHorseNoEntry(cBgS_PolyInfo const&); - /* 8007B430 */ int GetSpecialCode(cBgS_PolyInfo const&); - /* 8007B460 */ int GetSpecialCode(int); - /* 8007B488 */ void GetMagnetCode(cBgS_PolyInfo const&); - /* 8007B4B4 */ int GetMonkeyBarsCode(cBgS_PolyInfo const&); - /* 8007B4E0 */ void GetPolyObjThrough(int); - /* 8007B504 */ void GetPolyCamThrough(int); - /* 8007B52C */ void GetPolyLinkThrough(int); - /* 8007B550 */ void GetPolyArrowThrough(int); - /* 8007B574 */ void GetPolyHSStick(int); - /* 8007B598 */ void GetPolyBoomerangThrough(int); - /* 8007B5BC */ void GetPolyRopeThrough(int); - /* 8007B5E0 */ void GetPolyBombThrough(int); - /* 8007B604 */ void GetShdwThrough(int); - /* 8007B630 */ int GetUnderwaterRoofCode(int); - /* 8007B6AC */ void GetLinkNo(cBgS_PolyInfo const&); - /* 8007B6D8 */ void GetWallCode(cBgS_PolyInfo const&); - /* 8007B704 */ void GetPolyAtt0(cBgS_PolyInfo const&); - /* 8007B734 */ void GetPolyAtt1(cBgS_PolyInfo const&); - /* 8007B760 */ int GetGroundCode(cBgS_PolyInfo const&); - /* 8007B7DC */ void GetIronBallThrough(int); - /* 8007B800 */ void GetAttackThrough(int); - /* 8007B87C */ void GetCamMoveBG(cBgS_PolyInfo const&); - /* 8007B8A8 */ void GetRoomCamId(cBgS_PolyInfo const&); - /* 8007B8D8 */ void GetRoomPathId(cBgS_PolyInfo const&); - /* 8007B904 */ void GetRoomPathPntNo(cBgS_PolyInfo const&); - /* 8007C484 */ void WallCorrect(dBgS_Acch*); - /* 8007C910 */ void WallCorrectSort(dBgS_Acch*); - /* 8007D470 */ void RoofChk(dBgS_RoofChk*); - /* 8007D830 */ bool SplGrpChk(dBgS_SplGrpChk*); - /* 8007DAF8 */ void CaptPoly(dBgS_CaptPoly&); - /* 8007DF00 */ void SphChk(dBgS_SphChk*, void*); - /* 8007DF28 */ void GetPolyGrpRoomInfId(cBgS_PolyInfo const&); - /* 8007DF58 */ void GetGrpSoundId(cBgS_PolyInfo const&); - /* 8007E02C */ void ChkPolyThrough(int, cBgS_PolyPassChk*); - /* 8007E360 */ void ChkShdwDrawThrough(int, cBgS_PolyPassChk*); - /* 8007E3D8 */ void ChkGrpThrough(int, cBgS_GrpPassChk*, int); - /* 8007E444 */ void CallRideCallBack(fopAc_ac_c*, fopAc_ac_c*); - /* 8007E474 */ void CallArrowStickCallBack(fopAc_ac_c*, fopAc_ac_c*, cXyz&); - /* 8007E4A4 */ void OffMoveFlag(); - /* 8007E4B4 */ void ChkMoveFlag() const; -}; - -struct cBgS_ShdwDraw {}; - -struct cBgS_LinChk {}; - -struct cBgS_GndChk {}; - -struct cBgW { - /* 8007933C */ ~cBgW(); - /* 80079564 */ void CalcPlane(); - /* 800797BC */ void ClassifyPlane(); - /* 80079EEC */ void ChkMemoryError(); - /* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]); - /* 8007A658 */ bool LineCheck(cBgS_LinChk*); - /* 8007AB9C */ bool GroundCross(cBgS_GndChk*); - /* 8007B084 */ void ShdwDraw(cBgS_ShdwDraw*); - /* 8007B0E4 */ void GetGrpRoomIndex(cBgS_PolyInfo const&) const; - /* 8007B164 */ void GetBnd() const; - /* 8007B1B4 */ void GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const; - /* 8007B240 */ void GetTopUnder(f32*, f32*) const; - /* 8007B270 */ void GetTriPla(cBgS_PolyInfo const&) const; - /* 8007B2B0 */ void GetGrpInf(cBgS_PolyInfo const&) const; - /* 8007B948 */ bool ChkNotReady() const; - /* 8007B958 */ void ChkLock() const; - /* 8007B964 */ void ChkMoveBg() const; -}; // // Forward References: @@ -201,31 +89,36 @@ extern "C" void __dl__FPv(); extern "C" void _savegpr_27(); extern "C" void _restgpr_27(); extern "C" extern void* __vt__4dBgW[65]; -extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */]; // // Declarations: // /* 80082F98-80083020 07D8D8 0088+00 0/0 0/0 2/2 .text Set__6dBgWSvFP6cBgD_tUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWSv::Set(cBgD_t* param_0, u32 param_1) { - nofralloc -#include "asm/d/bg/d_bg_w_sv/Set__6dBgWSvFP6cBgD_tUl.s" +u8 dBgWSv::Set(cBgD_t* pbgd, u32 param_1) { + if (cBgW::Set(pbgd, 99, NULL)) { + return 1; + } + + field_0xc4 = param_1; + if (field_0xc4 & 1) { + return 0; + } + + field_0xc0 = new Vec[pm_bgd->m_v_num]; + return field_0xc0 == NULL; } -#pragma pop /* 80083020-8008308C 07D960 006C+00 0/0 0/0 3/3 .text CopyBackVtx__6dBgWSvFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dBgWSv::CopyBackVtx() { - nofralloc -#include "asm/d/bg/d_bg_w_sv/CopyBackVtx__6dBgWSvFv.s" +void dBgWSv::CopyBackVtx() { + if (field_0xc0 == NULL || pm_vtx_tbl == NULL) { + return; + } + + for (int i = 0; i < pm_bgd->m_v_num; i++) { + field_0xc0[i] = pm_vtx_tbl[i]; + } } -#pragma pop /* 8008308C-80083244 07D9CC 01B8+00 1/1 0/0 0/0 .text CrrPosWork__6dBgWSvFP4cXyziii */ #pragma push @@ -366,7 +259,8 @@ SECTION_DATA extern void* __vt__6dBgWSv[65 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgWSv::~dBgWSv() { +// asm dBgWSv::~dBgWSv() { +extern "C" asm void __dt__6dBgWSvFv() { nofralloc #include "asm/d/bg/d_bg_w_sv/__dt__6dBgWSvFv.s" } diff --git a/src/d/cc/d_cc_mass_s.cpp b/src/d/cc/d_cc_mass_s.cpp index e3e1a781ad1..ef0b179a287 100644 --- a/src/d/cc/d_cc_mass_s.cpp +++ b/src/d/cc/d_cc_mass_s.cpp @@ -46,8 +46,14 @@ dCcMassS_Obj::dCcMassS_Obj() {} void dCcMassS_Mng::Ct() { field_0x202 = 0; mResultCam = 0; - mCamTopPos.set(0, -1000000000.0f, 0); - mCamBottomPos.set(0, -1000000000.0f, 0); + mCamTopPos.x = 0.0f; + mCamTopPos.y = -1000000000.0f; + mCamTopPos.z = 0.0f; + + mCamBottomPos.x = 0.0f; + mCamBottomPos.y = -1000000000.0f; + mCamBottomPos.z = 0.0f; + Clear(); } @@ -98,9 +104,14 @@ void dCcMassS_Mng::Prepare() { mDivideArea.CalcDivideInfo(&mDivideInfo, mCpsAttr.GetWorkAab(), 0); } - mCamTopPos.set(0, -1000000000.0f, 0); + mCamTopPos.x = 0.0f; + mCamTopPos.y = -1000000000.0f; + mCamTopPos.z = 0.0f; mCamTopDist = 1000000000.0f; - mCamBottomPos.set(0, -1000000000.0f, 0); + + mCamBottomPos.x = 0.0f; + mCamBottomPos.y = -1000000000.0f; + mCamBottomPos.z = 0.0f; mCamBottomDist = 1000000000.0f; } diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index 5464fc52885..aff853bd748 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -360,7 +360,7 @@ asm void daSus_c::reset() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool daSus_c::check(s8 param_0, cXyz const& param_1) { +asm bool daSus_c::check(s8 i_roomNo, cXyz const& i_pos) { nofralloc #include "asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s" } diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index b7623f1ee9c..772ac395b58 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -201,11 +201,6 @@ extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); extern "C" void draw__13J3DDrawBufferCFv(); extern "C" void GXClearVtxDesc(); extern "C" void GXPixModeSync(); -extern "C" void GXGetTexObjWidth(); -extern "C" void GXGetTexObjHeight(); -extern "C" void GXGetTexObjWrapS(); -extern "C" void GXGetTexObjWrapT(); -extern "C" void GXGetTexObjTlut(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savefpr_26(); @@ -240,7 +235,6 @@ extern "C" extern u32 g_blackColor; extern "C" extern u32 g_whiteColor; extern "C" f32 mSystemFar__14mDoLib_clipper; extern "C" f32 mFovyRate__14mDoLib_clipper; -extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */]; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index 6bac26a1f2f..816a2a1f71a 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -1764,7 +1764,7 @@ void fopAcM_myRoomSearchEnemy(s8 roomNo) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void fopAcM_myRoomSearchEnemy(s8 param_0) { +asm fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 param_0) { nofralloc #include "asm/f_op/f_op_actor_mng/fopAcM_myRoomSearchEnemy__FSc.s" } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 6351b2d3744..f1aa65aea33 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -401,9 +401,6 @@ extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void JMAEulerToQuat__FsssP10Quaternion(); extern "C" void JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion(); extern "C" void GXClearVtxDesc(); -extern "C" void GXGetTexObjWidth(); -extern "C" void GXGetTexObjHeight(); -extern "C" void GXSetTexCoordScaleManually(); extern "C" void __construct_new_array(); extern "C" void _savegpr_15(); extern "C" void _savegpr_18(); diff --git a/tools/decompctx.py b/tools/decompctx.py new file mode 100644 index 00000000000..abf997e91fa --- /dev/null +++ b/tools/decompctx.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 + +import argparse +import os +import re + +script_dir = os.path.dirname(os.path.realpath(__file__)) +root_dir = os.path.abspath(os.path.join(script_dir, "..")) +src_dir = os.path.join(root_dir, "src") +include_dir = os.path.join(root_dir, "include") + +include_pattern = re.compile(r'^#include\s*[<"](.+?)[>"]$') +guard_pattern = re.compile(r'^#ifndef\s+(.*)$') + +defines = set() + +def import_h_file(in_file, r_path) -> str: + rel_path = os.path.join(root_dir, r_path, in_file) + inc_path = os.path.join(include_dir, in_file) + if os.path.exists(rel_path): + return import_c_file(rel_path) + elif os.path.exists(inc_path): + return import_c_file(inc_path) + else: + print("Failed to locate", in_file) + exit(1) + +def import_c_file(in_file) -> str: + in_file = os.path.relpath(in_file, root_dir) + out_text = '' + + with open(in_file, encoding="shift-jis") as file: + for idx, line in enumerate(file): + guard_match = guard_pattern.match(line.strip()) + if idx == 0: + if guard_match: + if guard_match[1] in defines: + break + defines.add(guard_match[1]) + print("Processing file", in_file) + include_match = include_pattern.match(line.strip()) + if include_match: + out_text += f"/* \"{in_file}\" line {idx} \"{include_match[1]}\" */\n" + out_text += import_h_file(include_match[1], os.path.dirname(in_file)) + out_text += f"/* end \"{include_match[1]}\" */\n" + else: + out_text += line + + return out_text + +def main(): + parser = argparse.ArgumentParser( + description="""Create a context file which can be used for decomp.me""" + ) + parser.add_argument( + "c_file", + help="""File from which to create context""", + ) + args = parser.parse_args() + + output = import_c_file(args.c_file) + + with open(os.path.join(root_dir, "ctx.c"), "w", encoding="shift-jis") as f: + f.write(output) + + +if __name__ == "__main__": + main() \ No newline at end of file