diff --git a/config/SOUE01/config.yml b/config/SOUE01/config.yml index 073afa3a..73050e28 100644 --- a/config/SOUE01/config.yml +++ b/config/SOUE01/config.yml @@ -29,6 +29,10 @@ force_active: [ "ModuleConstructorsX", "ModuleDestructorsX", ] +block_relocations: + # OSInit + - source: 0x803a2a9c + - source: 0x803a2b04 extract: - symbol: DOL_BACKUP_FONT header: d/dol_backup_error_font.inc diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index dcb58d9f..ad8cb1ed 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2513,35 +2513,275 @@ revolution/ai/ai.c: .sdata start:0x805748F8 end:0x80574900 .sbss start:0x80575E00 end:0x80575E40 -RVL_SDK/arc/ARC.c: +revolution/arc/arc.c: .text start:0x8039B570 end:0x8039BF58 align:16 + .data start:0x8054D8C8 end:0x8054D938 + .sdata start:0x80574900 end:0x80574908 -RVL_SDK/ax/AX.c: - .text start:0x8039BF60 end:0x803A1CA0 align:16 +revolution/ax/AX.c: + .text start:0x8039BF60 end:0x8039BFC8 align:16 -RVL_SDK/os/OS.c: - .text start:0x803A1CA0 end:0x803B059C align:16 +revolution/ax/AXAlloc.c: + .text start:0x8039BFD0 end:0x8039C4BC align:16 -RVL_SDK/exi/EXI.c: - .text start:0x803B05A0 end:0x803B2368 align:16 +revolution/ax/AXAux.c: + .text start:0x8039C4C0 end:0x8039CD54 align:16 -RVL_SDK/si/SI.c: - .text start:0x803B2370 end:0x803B3498 align:16 +revolution/ax/AXCL.c: + .text start:0x8039CD60 end:0x8039D858 align:16 -RVL_SDK/vi/VI.c: - .text start:0x803B34A0 end:0x803B7F3C align:16 +revolution/ax/AXOut.c: + .text start:0x8039D860 end:0x8039E098 align:16 -RVL_SDK/mtx/MTX.c: - .text start:0x803B7F40 end:0x803B98FC align:16 +revolution/ax/AXSPB.c: + .text start:0x8039E0A0 end:0x8039E4CC align:16 -RVL_SDK/gx/GX.c: - .text start:0x803B9900 end:0x803C3060 align:16 +revolution/ax/AXVPB.c: + .text start:0x8039E4D0 end:0x8039F288 align:16 -RVL_SDK/dvd/DVD.c: - .text start:0x803C3060 end:0x803CC0A8 align:16 +revolution/ax/AXProf.c: + .text start:0x8039F290 end:0x8039F2D0 align:16 -RVL_SDK/mem/MEM.c: - .text start:0x803CC0B0 end:0x803CDD20 align:16 +revolution/axfx/AXFXReverbHi.c: + .text start:0x8039F2D0 end:0x8039F374 align:16 + +revolution/axfx/AXFXReverbHiExp.c: + .text start:0x8039F380 end:0x803A01A4 align:16 + +revolution/axfx/AXFXReverbStdExp.c: + .text start:0x803A01B0 end:0x803A0EDC align:16 + +revolution/axfx/AXFXReverbStdExpDpl2.c: + .text start:0x803A0EE0 end:0x803A1C50 align:16 + +revolution/axfx/AXFXHooks.c: + .text start:0x803A1C50 end:0x803A1C94 align:16 + .sdata start:0x80574918 end:0x80574920 + +revolution/base/PPCArch.c: + .text start:0x803A1CA0 end:0x803A1EC0 align:16 + +revolution/os/OS.c: + .text start:0x803A1EC0 end:0x803A33A0 align:16 + +revolution/os/OSAlarm.c: + .text start:0x803A33A0 end:0x803A3C58 align:16 + +revolution/os/OSAlloc.c: + .text start:0x803A3C60 end:0x803A3F80 align:16 + +revolution/os/OSArena.c: + .text start:0x803A3F80 end:0x803A4074 align:16 + +revolution/os/OSAudioSystem.c: + .text start:0x803A4080 end:0x803A4540 align:16 + +revolution/os/OSCache.c: + .text start:0x803A4540 end:0x803A4B98 align:16 + +revolution/os/OSContext.c: + .text start:0x803A4BA0 end:0x803A559C align:16 + +revolution/os/OSError.c: + .text start:0x803A55A0 end:0x803A5B2C align:16 + +revolution/os/OSExec.c: + .text start:0x803A5B30 end:0x803A73D8 align:16 + +revolution/os/OSFatal.c: + .text start:0x803A73E0 end:0x803A8008 align:16 + +revolution/os/OSFont.c: + .text start:0x803A8010 end:0x803A8CF8 align:16 + +revolution/os/OSInterrupt.c: + .text start:0x803A8D00 end:0x803A94D0 align:16 + +revolution/os/OSLink.c: + .text start:0x803A94D0 end:0x803A9FF4 align:16 + +revolution/os/OSMessage.c: + .text start:0x803AA000 end:0x803AA20C align:16 + +revolution/os/OSMemory.c: + .text start:0x803AA210 end:0x803AAA8C align:16 + +revolution/os/OSMutex.c: + .text start:0x803AAA90 end:0x803AADAC align:16 + +revolution/os/OSReboot.c: + .text start:0x803AADB0 end:0x803AAE34 align:16 + +revolution/os/OSReset.c: + .text start:0x803AAE40 end:0x803AB84C align:16 + +revolution/os/OSRtc.c: + .text start:0x803AB850 end:0x803AC300 align:16 + +revolution/os/OSSync.c: + .text start:0x803AC300 end:0x803AC380 align:16 + +revolution/os/OSThread.c: + .text start:0x803AC380 end:0x803ADAE8 align:16 + +revolution/os/OSTime.c: + .text start:0x803ADAF0 end:0x803ADF1C align:16 + +revolution/os/OSUtf.c: + .text start:0x803ADF20 end:0x803AE170 align:16 + +revolution/os/OSIpc.c: + .text start:0x803AE170 end:0x803AE1A8 align:16 + +revolution/os/OSStateTM.c: + .text start:0x803AE1B0 end:0x803AE8B4 align:16 + +revolution/os/OSPlayRecord.c: + .text start:0x803AE8C0 end:0x803AEFDC align:16 + +revolution/os/OSStateFlags.c: + .text start:0x803AEFE0 end:0x803AF1F8 align:16 + +revolution/os/OSNet.c: + .text start:0x803AF200 end:0x803AF79C align:16 + +revolution/os/OSNandbootInfo.c: + .text start:0x803AF7A0 end:0x803AF9A8 align:16 + +revolution/os/OSPlayTime.c: + .text start:0x803AF9B0 end:0x803B0188 align:16 + +revolution/os/OSCrc.c: + .text start:0x803B0190 end:0x803B02C4 align:16 + +revolution/os/OSLaunch.c: + .text start:0x803B02D0 end:0x803B04D4 align:16 + +revolution/os/__ppc_eabi_init.c: + .text start:0x803B04E0 end:0x803B059C align:16 + +revolution/exi/EXIBios.c: + .text start:0x803B05A0 end:0x803B1E98 align:16 + +revolution/exi/EXIUart.c: + .text start:0x803B1EA0 end:0x803B21DC align:16 + +revolution/exi/EXICommon.c: + .text start:0x803B21E0 end:0x803B2368 align:16 + +revolution/si/SIBios.c: + .text start:0x803B2370 end:0x803B33A4 align:16 + +revolution/si/SISamplingRate.c: + .text start:0x803B33B0 end:0x803B3498 align:16 + +revolution/vi/vi.c: + .text start:0x803B34A0 end:0x803B5EF0 align:16 + +revolution/vi/i2c.c: + .text start:0x803B5EF0 end:0x803B6804 align:16 + +revolution/vi/vi3in1.c: + .text start:0x803B6810 end:0x803B7F3C align:16 + +revolution/mtx/mtx.c: + .text start:0x803B7F40 end:0x803B8CF8 align:16 + +revolution/mtx/mtxvec.c: + .text start:0x803B8D00 end:0x803B8ED8 align:16 + +revolution/mtx/mtx44.c: + .text start:0x803B8EE0 end:0x803B9108 align:16 + +revolution/mtx/vec.c: + .text start:0x803B9110 end:0x803B9584 align:16 + +revolution/mtx/quat.c: + .text start:0x803B9590 end:0x803B98FC align:16 + +revolution/gx/GXInit.c: + .text start:0x803B9900 end:0x803BAA90 align:16 + +revolution/gx/GXFifo.c: + .text start:0x803BAA90 end:0x803BB6C8 align:16 + +revolution/gx/GXAttr.c: + .text start:0x803BB6D0 end:0x803BC954 align:16 + +revolution/gx/GXMisc.c: + .text start:0x803BC960 end:0x803BD214 align:16 + +revolution/gx/GXGeometry.c: + .text start:0x803BD220 end:0x803BD824 align:16 + +revolution/gx/GXFrameBuf.c: + .text start:0x803BD830 end:0x803BE338 align:16 + +revolution/gx/GXLight.c: + .text start:0x803BE340 end:0x803BEAA4 align:16 + +revolution/gx/GXTexture.c: + .text start:0x803BEAB0 end:0x803BFD50 align:16 + +revolution/gx/GXBump.c: + .text start:0x803BFD50 end:0x803C0394 align:16 + +revolution/gx/GXTev.c: + .text start:0x803C03A0 end:0x803C0A64 align:16 + +revolution/gx/GXPixel.c: + .text start:0x803C0A70 end:0x803C1270 align:16 + +revolution/gx/GXDraw.c: + .text start:0x803C1270 end:0x803C1E80 align:16 + +revolution/gx/GXDisplayList.c: + .text start:0x803C1E80 end:0x803C2064 align:16 + +revolution/gx/GXTransform.c: + .text start:0x803C2070 end:0x803C2828 align:16 + +revolution/gx/GXPerf.c: + .text start:0x803C2830 end:0x803C3060 align:16 + +revolution/dvd/dvdfs.c: + .text start:0x803C3060 end:0x803C3A58 align:16 + +revolution/dvd/dvd.c: + .text start:0x803C3A60 end:0x803C8864 align:16 + +revolution/dvd/dvdqueue.c: + .text start:0x803C8870 end:0x803C8AF0 align:16 + +revolution/dvd/dvderror.c: + .text start:0x803C8AF0 end:0x803C9508 align:16 + +revolution/dvd/dvdidutils.c: + .text start:0x803C9510 end:0x803C9600 align:16 + +revolution/dvd/dvdFatal.c: + .text start:0x803C9600 end:0x803C9768 align:16 + +revolution/dvd/dvdDeviceError.c: + .text start:0x803C9770 end:0x803C99FC align:16 + +revolution/dvd/dvd_broadway.c: + .text start:0x803C9A00 end:0x803CC0A8 align:16 + +revolution/mem/mem_heapCommon.c: + .text start:0x803CC0B0 end:0x803CC93C align:16 + +revolution/mem/mem_expHeap.c: + .text start:0x803CC940 end:0x803CD598 align:16 + +revolution/mem/mem_frameHeap.c: + .text start:0x803CD5A0 end:0x803CDBA0 align:16 + +revolution/mem/mem_allocator.c: + .text start:0x803CDBA0 end:0x803CDBFC align:16 + +revolution/mem/mem_list.c: + .text start:0x803CDC00 end:0x803CDD20 align:16 RVL_SDK/dsp/DSP.c: .text start:0x803CDD20 end:0x803CE868 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index b7aa3c87..64eee440 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -1,4 +1,4 @@ -__check_pad3_80004000 = .init:0x80004000; // type:function size:0x28 scope:local +__check_pad3 = .init:0x80004000; // type:function size:0x28 scope:local __set_debug_bba = .init:0x80004030; // type:function size:0xC scope:local __get_debug_bba = .init:0x80004040; // type:function size:0x8 scope:local __start = .init:0x80004050; // type:function size:0x168 scope:weak @@ -21708,16 +21708,16 @@ AXSetVoicePriority = .text:0x8039C420; // type:function size:0x9C __AXAuxInit = .text:0x8039C4C0; // type:function size:0x114 __AXGetAuxAInput = .text:0x8039C5E0; // type:function size:0x34 __AXGetAuxAOutput = .text:0x8039C620; // type:function size:0x1C -fn_8039C640 = .text:0x8039C640; // type:function size:0x20 -fn_8039C660 = .text:0x8039C660; // type:function size:0x20 -fn_8039C680 = .text:0x8039C680; // type:function size:0x20 -fn_8039C6A0 = .text:0x8039C6A0; // type:function size:0x20 +__AXGetAuxAInputDpl2 = .text:0x8039C640; // type:function size:0x20 +__AXGetAuxAOutputDpl2R = .text:0x8039C660; // type:function size:0x20 +__AXGetAuxAOutputDpl2Ls = .text:0x8039C680; // type:function size:0x20 +__AXGetAuxAOutputDpl2Rs = .text:0x8039C6A0; // type:function size:0x20 __AXGetAuxBInput = .text:0x8039C6C0; // type:function size:0x34 __AXGetAuxBOutput = .text:0x8039C700; // type:function size:0x1C -fn_8039C720 = .text:0x8039C720; // type:function size:0x20 -fn_8039C740 = .text:0x8039C740; // type:function size:0x20 -fn_8039C760 = .text:0x8039C760; // type:function size:0x20 -fn_8039C780 = .text:0x8039C780; // type:function size:0x20 +__AXGetAuxBInputDpl2 = .text:0x8039C720; // type:function size:0x20 +__AXGetAuxBOutputDpl2R = .text:0x8039C740; // type:function size:0x20 +__AXGetAuxBOutputDpl2Ls = .text:0x8039C760; // type:function size:0x20 +__AXGetAuxBOutputDpl2Rs = .text:0x8039C780; // type:function size:0x20 __AXGetAuxCInput = .text:0x8039C7A0; // type:function size:0x34 __AXGetAuxCOutput = .text:0x8039C7E0; // type:function size:0x1C __AXProcessAux = .text:0x8039C800; // type:function size:0x3AC @@ -21733,7 +21733,7 @@ __AXNextFrame = .text:0x8039CDA0; // type:function size:0x9BC __AXClInit = .text:0x8039D760; // type:function size:0x50 AXSetMode = .text:0x8039D7B0; // type:function size:0x8 AXGetMode = .text:0x8039D7C0; // type:function size:0x8 -fn_8039D7D0 = .text:0x8039D7D0; // type:function size:0x8 +AXSetCompressor = .text:0x8039D7D0; // type:function size:0x8 AXGetAuxAReturnVolume = .text:0x8039D7E0; // type:function size:0x8 AXGetAuxBReturnVolume = .text:0x8039D7F0; // type:function size:0x8 AXGetAuxCReturnVolume = .text:0x8039D800; // type:function size:0x8 @@ -21743,35 +21743,35 @@ AXSetAuxBReturnVolume = .text:0x8039D840; // type:function size:0x8 AXSetAuxCReturnVolume = .text:0x8039D850; // type:function size:0x8 __AXOutNewFrame = .text:0x8039D860; // type:function size:0x260 __AXOutAiCallback = .text:0x8039DAC0; // type:function size:0xB0 -fn_8039DB70 = .text:0x8039DB70; // type:function size:0xC -fn_8039DB80 = .text:0x8039DB80; // type:function size:0x54 +__AXDSPInitCallback = .text:0x8039DB70; // type:function size:0xC +__AXDSPResumeCallback = .text:0x8039DB80; // type:function size:0x54 __AXDSPDoneCallback = .text:0x8039DBE0; // type:function size:0x10 -fn_8039DBF0 = .text:0x8039DBF0; // type:function size:0x4 +__AXDSPRequestCallback = .text:0x8039DBF0; // type:function size:0x4 __AXOutInitDSP = .text:0x8039DC00; // type:function size:0xEC __AXOutInit = .text:0x8039DCF0; // type:function size:0x1F8 AXRegisterCallback = .text:0x8039DEF0; // type:function size:0x44 AXRmtGetSamplesLeft = .text:0x8039DF40; // type:function size:0x2C AXRmtGetSamples = .text:0x8039DF70; // type:function size:0xC4 AXRmtAdvancePtr = .text:0x8039E040; // type:function size:0x58 -fn_8039E0A0 = .text:0x8039E0A0; // type:function size:0xC -fn_8039E0B0 = .text:0x8039E0B0; // type:function size:0x6C -fn_8039E120 = .text:0x8039E120; // type:function size:0x6C +__AXGetStudio = .text:0x8039E0A0; // type:function size:0xC +__AXDepopFadeMain = .text:0x8039E0B0; // type:function size:0x6C +__AXDepopFadeRmt = .text:0x8039E120; // type:function size:0x6C __AXPrintStudio = .text:0x8039E190; // type:function size:0x178 -fn_8039E310 = .text:0x8039E310; // type:function size:0x58 -fn_8039E370 = .text:0x8039E370; // type:function size:0x15C -fn_8039E4D0 = .text:0x8039E4D0; // type:function size:0x8 -fn_8039E4E0 = .text:0x8039E4E0; // type:function size:0x550 +__AXSPBInit = .text:0x8039E310; // type:function size:0x58 +__AXDepopVoice = .text:0x8039E370; // type:function size:0x15C +__AXGetNumVoices = .text:0x8039E4D0; // type:function size:0x8 +__AXServiceVPB = .text:0x8039E4E0; // type:function size:0x550 __AXSyncPBs = .text:0x8039EA30; // type:function size:0x310 -fn_8039ED40 = .text:0x8039ED40; // type:function size:0x8 -fn_8039ED50 = .text:0x8039ED50; // type:function size:0x40 -fn_8039ED90 = .text:0x8039ED90; // type:function size:0x30 -fn_8039EDC0 = .text:0x8039EDC0; // type:function size:0x28C +__AXGetPBs = .text:0x8039ED40; // type:function size:0x8 +__AXSetPBDefault = .text:0x8039ED50; // type:function size:0x40 +__AXVPBInit = .text:0x8039ED90; // type:function size:0x30 +__AXVPBInitCommon = .text:0x8039EDC0; // type:function size:0x28C AXSetVoiceState = .text:0x8039F050; // type:function size:0x70 AXSetVoiceAddr = .text:0x8039F0C0; // type:function size:0xE8 AXGetLpfCoefs = .text:0x8039F1B0; // type:function size:0xBC AXSetMaxDspCycles = .text:0x8039F270; // type:function size:0x8 AXGetMaxVoices = .text:0x8039F280; // type:function size:0x8 -__AXGetCurrentProfile = .text:0x8039F290; // type:function size:0x40 scope:local +__AXGetCurrentProfile = .text:0x8039F290; // type:function size:0x40 AXFXReverbHiInit = .text:0x8039F2D0; // type:function size:0x64 AXFXReverbHiShutdown = .text:0x8039F340; // type:function size:0x24 AXFXReverbHiCallback = .text:0x8039F370; // type:function size:0x4 @@ -21781,7 +21781,7 @@ AXFXReverbHiExpCallback = .text:0x8039F580; // type:function size:0x524 __AllocDelayLine = .text:0x8039FAB0; // type:function size:0x174 scope:local __BzeroDelayLines = .text:0x8039FC30; // type:function size:0x124 scope:local __FreeDelayLine = .text:0x8039FD60; // type:function size:0x114 scope:local -fn_8039FE80 = .text:0x8039FE80; // type:function size:0x324 +__InitParams = .text:0x8039FE80; // type:function size:0x324 scope:local AXFXReverbStdExpGetMemSize = .text:0x803A01B0; // type:function size:0x60 AXFXReverbStdExpInit = .text:0x803A0210; // type:function size:0x17C AXFXReverbStdExpSettings = .text:0x803A0390; // type:function size:0xD0 @@ -21809,7 +21809,7 @@ AXFXGetHooks = .text:0x803A1C80; // type:function size:0x14 PPCMfmsr = .text:0x803A1CA0; // type:function size:0x8 scope:global PPCMtmsr = .text:0x803A1CB0; // type:function size:0x8 scope:global PPCMfhid0 = .text:0x803A1CC0; // type:function size:0x8 scope:global -fn_803A1CD0 = .text:0x803A1CD0; // type:function size:0x8 +PPCMthid0 = .text:0x803A1CD0; // type:function size:0x8 PPCMfl2cr = .text:0x803A1CE0; // type:function size:0x8 scope:global PPCMtl2cr = .text:0x803A1CF0; // type:function size:0x8 scope:global PPCMtdec = .text:0x803A1D00; // type:function size:0x8 scope:weak @@ -21825,7 +21825,7 @@ PPCMffpscr = .text:0x803A1DA0; // type:function size:0x20 scope:global PPCMtfpscr = .text:0x803A1DC0; // type:function size:0x28 scope:global PPCMfhid2 = .text:0x803A1DF0; // type:function size:0x8 scope:global PPCMthid2 = .text:0x803A1E00; // type:function size:0x8 scope:global -fn_803A1E10 = .text:0x803A1E10; // type:function size:0xC +PPCMfwpar = .text:0x803A1E10; // type:function size:0xC PPCMtwpar = .text:0x803A1E20; // type:function size:0x8 scope:global PPCDisableSpeculation = .text:0x803A1E30; // type:function size:0x28 scope:global PPCSetFpNonIEEEMode = .text:0x803A1E60; // type:function size:0x8 scope:global @@ -21934,26 +21934,26 @@ PackArgs = .text:0x803A5B30; // type:function size:0x180 Utf16ToArg = .text:0x803A5CB0; // type:function size:0x158 PackInstallerArgs = .text:0x803A5E10; // type:function size:0x1CC Run = .text:0x803A5FE0; // type:function size:0x3C -Callback = .text:0x803A6020; // type:function size:0xC +Callback = .text:0x803A6020; // type:function size:0xC scope:local __OSGetExecParams = .text:0x803A6030; // type:function size:0x24 scope:global callback = .text:0x803A6060; // type:function size:0x8 __OSLaunchNextFirmware = .text:0x803A6070; // type:function size:0x7FC __OSLaunchMenu = .text:0x803A6870; // type:function size:0xC8 scope:global __OSBootDolSimple = .text:0x803A6940; // type:function size:0x754 __OSBootDol = .text:0x803A70A0; // type:function size:0x1E0 -OSExec = .text:0x803A7280; // type:function size:0x158 +OSExecl = .text:0x803A7280; // type:function size:0x158 ScreenReport = .text:0x803A73E0; // type:function size:0x328 ConfigureVideo = .text:0x803A7710; // type:function size:0x120 OSFatal = .text:0x803A7830; // type:function size:0x1E8 scope:global Halt = .text:0x803A7A20; // type:function size:0x5E8 GetFontCode = .text:0x803A8010; // type:function size:0x138 Decode = .text:0x803A8150; // type:function size:0x1A8 -OSGetFontEncode = .text:0x803A8300; // type:function size:0x78 scope:global -OSSetFontEncode = .text:0x803A8380; // type:function size:0x310 -ReadFont = .text:0x803A8690; // type:function size:0x118 -OSLoadFont = .text:0x803A87B0; // type:function size:0xF8 -ParseStringS = .text:0x803A88B0; // type:function size:0x1B4 -ParseStringW = .text:0x803A8A70; // type:function size:0x288 +OSSetFontEncode = .text:0x803A8300; // type:function size:0x78 scope:global +ReadFont = .text:0x803A8380; // type:function size:0x310 +OSLoadFont = .text:0x803A8690; // type:function size:0x118 +ParseStringS = .text:0x803A87B0; // type:function size:0xF8 +ParseStringW = .text:0x803A88B0; // type:function size:0x1B4 +OSGetFontTexel = .text:0x803A8A70; // type:function size:0x288 OSDisableInterrupts = .text:0x803A8D00; // type:function size:0x14 scope:global OSEnableInterrupts = .text:0x803A8D20; // type:function size:0x14 scope:global OSRestoreInterrupts = .text:0x803A8D40; // type:function size:0x24 scope:global @@ -21985,53 +21985,53 @@ OSGetPhysicalMem1Size = .text:0x803AA210; // type:function size:0xC OSGetPhysicalMem2Size = .text:0x803AA220; // type:function size:0xC scope:global OSGetConsoleSimulatedMem1Size = .text:0x803AA230; // type:function size:0xC scope:global OSGetConsoleSimulatedMem2Size = .text:0x803AA240; // type:function size:0xC scope:global -fn_803AA250 = .text:0x803AA250; // type:function size:0x3C +OnShutdown = .text:0x803AA250; // type:function size:0x3C scope:local MEMIntrruptHandler = .text:0x803AA290; // type:function size:0x48 scope:local -fn_803AA2E0 = .text:0x803AA2E0; // type:function size:0xC8 -fn_803AA3B0 = .text:0x803AA3B0; // type:function size:0x80 -fn_803AA430 = .text:0x803AA430; // type:function size:0xD4 -fn_803AA510 = .text:0x803AA510; // type:function size:0xD4 -fn_803AA5F0 = .text:0x803AA5F0; // type:function size:0xA8 -fn_803AA6A0 = .text:0x803AA6A0; // type:function size:0xD4 -fn_803AA780 = .text:0x803AA780; // type:function size:0xA8 +OSProtectRange = .text:0x803AA2E0; // type:function size:0xC8 +ConfigMEM1_24MB = .text:0x803AA3B0; // type:function size:0x80 +ConfigMEM2_52MB = .text:0x803AA430; // type:function size:0xD4 +ConfigMEM2_56MB = .text:0x803AA510; // type:function size:0xD4 +ConfigMEM2_64MB = .text:0x803AA5F0; // type:function size:0xA8 +ConfigMEM2_112MB = .text:0x803AA6A0; // type:function size:0xD4 +ConfigMEM2_128MB = .text:0x803AA780; // type:function size:0xA8 RealMode = .text:0x803AA830; // type:function size:0x18 BATConfig = .text:0x803AA850; // type:function size:0x120 scope:local -fn_803AA970 = .text:0x803AA970; // type:function size:0x44 +__OSRestoreCodeExecOnMEM1 = .text:0x803AA970; // type:function size:0x44 __OSInitMemoryProtection = .text:0x803AA9C0; // type:function size:0xCC scope:global OSInitMutex = .text:0x803AAA90; // type:function size:0x38 OSLockMutex = .text:0x803AAAD0; // type:function size:0xDC OSUnlockMutex = .text:0x803AABB0; // type:function size:0xC8 __OSUnlockAllMutex = .text:0x803AAC80; // type:function size:0x6C OSTryLockMutex = .text:0x803AACF0; // type:function size:0xBC -fn_803AADB0 = .text:0x803AADB0; // type:function size:0x6C +__OSReboot = .text:0x803AADB0; // type:function size:0x6C OSGetSaveRegion = .text:0x803AAE20; // type:function size:0x14 OSRegisterShutdownFunction = .text:0x803AAE40; // type:function size:0x88 scope:global __OSCallShutdownFunctions = .text:0x803AAED0; // type:function size:0xB0 __OSShutdownDevices = .text:0x803AAF80; // type:function size:0x180 scope:global -fn_803AB100 = .text:0x803AB100; // type:function size:0xE0 -fn_803AB1E0 = .text:0x803AB1E0; // type:function size:0x11C -fn_803AB300 = .text:0x803AB300; // type:function size:0xD4 +OSRebootSystem = .text:0x803AB100; // type:function size:0xE0 +OSShutdownSystem = .text:0x803AB1E0; // type:function size:0x11C +OSRestart = .text:0x803AB300; // type:function size:0xD4 __OSReturnToMenu = .text:0x803AB3E0; // type:function size:0x288 scope:local OSReturnToMenu = .text:0x803AB670; // type:function size:0x40 scope:global -fn_803AB6B0 = .text:0x803AB6B0; // type:function size:0x40 -fn_803AB6F0 = .text:0x803AB6F0; // type:function size:0xA4 -fn_803AB7A0 = .text:0x803AB7A0; // type:function size:0x58 +OSReturnToDataManager = .text:0x803AB6B0; // type:function size:0x40 +__OSReturnToMenuForError = .text:0x803AB6F0; // type:function size:0xA4 +__OSHotResetForError = .text:0x803AB7A0; // type:function size:0x58 OSGetResetCode = .text:0x803AB800; // type:function size:0x30 scope:global OSResetSystem = .text:0x803AB830; // type:function size:0x1C scope:global -fn_803AB850 = .text:0x803AB850; // type:function size:0x138 +WriteSramCallback = .text:0x803AB850; // type:function size:0x138 __OSInitSram = .text:0x803AB990; // type:function size:0x200 scope:global UnlockSram = .text:0x803ABB90; // type:function size:0x2E0 scope:local __OSSyncSram = .text:0x803ABE70; // type:function size:0x10 scope:global -fn_803ABE80 = .text:0x803ABE80; // type:function size:0x124 +__OSReadROM = .text:0x803ABE80; // type:function size:0x124 OSGetWirelessID = .text:0x803ABFB0; // type:function size:0x78 OSSetWirelessID = .text:0x803AC030; // type:function size:0x9C __OSGetRTCFlags = .text:0x803AC0D0; // type:function size:0x11C scope:global __OSClearRTCFlags = .text:0x803AC1F0; // type:function size:0x110 scope:global __OSSystemCallVectorStart = .text:0x803AC300; // type:label scope:global -fn_803AC300 = .text:0x803AC300; // type:function size:0x20 +SystemCallVector = .text:0x803AC300; // type:function size:0x20 __OSSystemCallVectorEnd = .text:0x803AC31C; // type:label scope:global __OSInitSystemCall = .text:0x803AC320; // type:function size:0x60 scope:global -fn_803AC380 = .text:0x803AC380; // type:function size:0x4 +DefaultSwitchThreadCallback = .text:0x803AC380; // type:function size:0x4 OSSetSwitchThreadCallback = .text:0x803AC390; // type:function size:0x70 __OSThreadInit = .text:0x803AC400; // type:function size:0x284 scope:global OSInitThreadQueue = .text:0x803AC690; // type:function size:0x10 scope:global @@ -22056,31 +22056,31 @@ OSSuspendThread = .text:0x803AD670; // type:function size:0x18C OSSleepThread = .text:0x803AD800; // type:function size:0xF0 scope:global OSWakeupThread = .text:0x803AD8F0; // type:function size:0xF8 OSSetThreadPriority = .text:0x803AD9F0; // type:function size:0xEC -OSThreadGetBasePriority = .text:0x803ADAE0; // type:function size:0x8 +OSGetThreadPriority = .text:0x803ADAE0; // type:function size:0x8 OSGetTime = .text:0x803ADAF0; // type:function size:0x18 scope:global OSGetTick = .text:0x803ADB10; // type:function size:0x8 scope:global __OSGetSystemTime = .text:0x803ADB20; // type:function size:0x64 scope:global __OSTimeToSystemTime = .text:0x803ADB90; // type:function size:0x58 -fn_803ADBF0 = .text:0x803ADBF0; // type:function size:0x32C +OSTicksToCalendarTime = .text:0x803ADBF0; // type:function size:0x32C OSUTF8to32 = .text:0x803ADF20; // type:function size:0x114 OSUTF16to32 = .text:0x803AE040; // type:function size:0x70 -fn_803AE0B0 = .text:0x803AE0B0; // type:function size:0x7C +OSUTF32toANSI = .text:0x803AE0B0; // type:function size:0x7C OSUTF32toSJIS = .text:0x803AE130; // type:function size:0x40 __OSGetIPCBufferHi = .text:0x803AE170; // type:function size:0x8 __OSGetIPCBufferLo = .text:0x803AE180; // type:function size:0x8 __OSInitIPCBuffer = .text:0x803AE190; // type:function size:0x18 scope:global -fn_803AE1B0 = .text:0x803AE1B0; // type:function size:0xEC -fn_803AE2A0 = .text:0x803AE2A0; // type:function size:0xEC +OSSetResetCallback = .text:0x803AE1B0; // type:function size:0xEC +OSSetPowerCallback = .text:0x803AE2A0; // type:function size:0xEC __OSInitSTM = .text:0x803AE390; // type:function size:0x118 scope:global -fn_803AE4B0 = .text:0x803AE4B0; // type:function size:0x7C +__OSShutdownToSBY = .text:0x803AE4B0; // type:function size:0x7C __OSHotReset = .text:0x803AE530; // type:function size:0x74 scope:global -fn_803AE5B0 = .text:0x803AE5B0; // type:function size:0xF8 +__OSSetVIForceDimming = .text:0x803AE5B0; // type:function size:0xF8 __OSUnRegisterStateEvent = .text:0x803AE6B0; // type:function size:0x78 scope:global -fn_803AE730 = .text:0x803AE730; // type:function size:0x10 +__OSVIDimReplyHandler = .text:0x803AE730; // type:function size:0x10 __OSDefaultResetCallback = .text:0x803AE740; // type:function size:0x4 scope:local __OSDefaultPowerCallback = .text:0x803AE750; // type:function size:0x4 scope:local __OSStateEventHandler = .text:0x803AE760; // type:function size:0x154 scope:local -fn_803AE8C0 = .text:0x803AE8C0; // type:function size:0xC +PlayRecordAlarmCallback = .text:0x803AE8C0; // type:function size:0xC PlayRecordCallback = .text:0x803AE8D0; // type:function size:0x4B4 scope:local __OSStartPlayRecord = .text:0x803AED90; // type:function size:0x54 scope:global __OSStopPlayRecord = .text:0x803AEDF0; // type:function size:0x1EC scope:global @@ -22090,22 +22090,22 @@ __OSInitNet = .text:0x803AF200; // type:function size:0xB4 scope:global NWC24iPrepareShutdown = .text:0x803AF2C0; // type:function size:0xB8 scope:global NWC24iSynchronizeRtcCounter = .text:0x803AF380; // type:function size:0x94 scope:global NWC24SuspendScheduler = .text:0x803AF420; // type:function size:0x100 scope:global -fn_803AF520 = .text:0x803AF520; // type:function size:0x6C -fn_803AF590 = .text:0x803AF590; // type:function size:0xB8 -fn_803AF650 = .text:0x803AF650; // type:function size:0x124 -fn_803AF780 = .text:0x803AF780; // type:function size:0x1C -fn_803AF7A0 = .text:0x803AF7A0; // type:function size:0xB0 -fn_803AF850 = .text:0x803AF850; // type:function size:0x158 +NWC24iRequestShutdown = .text:0x803AF520; // type:function size:0x6C +NWC24Shutdown_ = .text:0x803AF590; // type:function size:0xB8 +NWC24iSetRtcCounter_ = .text:0x803AF650; // type:function size:0x124 +CallbackAsyncIpc = .text:0x803AF780; // type:function size:0x1C +__OSCreateNandbootInfo = .text:0x803AF7A0; // type:function size:0xB0 +__OSWriteNandbootInfo = .text:0x803AF850; // type:function size:0x158 OSPlayTimeIsLimited = .text:0x803AF9B0; // type:function size:0x18 scope:global -fn_803AF9D0 = .text:0x803AF9D0; // type:function size:0x1BC -fn_803AFB90 = .text:0x803AFB90; // type:function size:0x114 +__OSPlayTimeFadeLastAIDCallback = .text:0x803AF9D0; // type:function size:0x1BC +__OSWriteExpiredFlag = .text:0x803AFB90; // type:function size:0x114 __OSWriteExpiredFlagIfSet = .text:0x803AFCB0; // type:function size:0x18 scope:global -fn_803AFCD0 = .text:0x803AFCD0; // type:function size:0xEC +__OSPlayTimeRebootThread = .text:0x803AFCD0; // type:function size:0xEC __OSPlayTimeAlarmExpired = .text:0x803AFDC0; // type:function size:0xA0 scope:local __OSGetPlayTime = .text:0x803AFE60; // type:function size:0x1CC scope:global __OSInitPlayTime = .text:0x803B0030; // type:function size:0x158 scope:global OSCalcCRC32 = .text:0x803B0190; // type:function size:0x134 -fn_803B02D0 = .text:0x803B02D0; // type:function size:0x204 +__OSRelaunchTitle = .text:0x803B02D0; // type:function size:0x204 __init_user = .text:0x803B04E0; // type:function size:0x20 scope:global __init_cpp = .text:0x803B0500; // type:function size:0x48 scope:local exit = .text:0x803B0550; // type:function size:0x4C scope:weak @@ -22131,18 +22131,18 @@ EXIGetID = .text:0x803B1AF0; // type:function size:0x3A8 scope:global ProbeBarnacle = .text:0x803B1EA0; // type:function size:0x178 __OSEnableBarnacle = .text:0x803B2020; // type:function size:0x1BC scope:global EXIWriteReg = .text:0x803B21E0; // type:function size:0x188 -fn_803B2370 = .text:0x803B2370; // type:function size:0x2F4 +CompleteTransfer = .text:0x803B2370; // type:function size:0x2F4 SIInterruptHandler = .text:0x803B2670; // type:function size:0x3EC scope:local SIInit = .text:0x803B2A60; // type:function size:0xC0 scope:global -fn_803B2B20 = .text:0x803B2B20; // type:function size:0x1B0 +__SITransfer = .text:0x803B2B20; // type:function size:0x1B0 SISetXY = .text:0x803B2CD0; // type:function size:0x5C scope:global -fn_803B2D30 = .text:0x803B2D30; // type:function size:0x8C +AlarmHandler = .text:0x803B2D30; // type:function size:0x8C SITransfer = .text:0x803B2DC0; // type:function size:0x16C scope:global GetTypeCallback = .text:0x803B2F30; // type:function size:0x2B4 scope:local SIGetType = .text:0x803B31F0; // type:function size:0x1B4 scope:global SISetSamplingRate = .text:0x803B33B0; // type:function size:0xD4 scope:global -fn_803B3490 = .text:0x803B3490; // type:function size:0x8 -OnShutdown = .text:0x803B34A0; // type:function size:0x198 +SIRefreshSamplingRate = .text:0x803B3490; // type:function size:0x8 +OnShutdown = .text:0x803B34A0; // type:function size:0x198 scope:local __VIRetraceHandler = .text:0x803B3640; // type:function size:0x80C VISetPreRetraceCallback = .text:0x803B3E50; // type:function size:0x44 VISetPostRetraceCallback = .text:0x803B3EA0; // type:function size:0x44 @@ -22170,22 +22170,22 @@ VISetTimeToDimming = .text:0x803B5DC0; // type:function size:0xF8 VIResetDimmingCount = .text:0x803B5EC0; // type:function size:0x14 __VIResetRFIdle = .text:0x803B5EE0; // type:function size:0x10 WaitMicroTime = .text:0x803B5EF0; // type:function size:0x88 -sendWorkerAddr = .text:0x803B5F80; // type:function size:0x348 +sendSlaveAddr = .text:0x803B5F80; // type:function size:0x348 __VISendI2CData = .text:0x803B62D0; // type:function size:0x534 __VISetYUVSEL = .text:0x803B6810; // type:function size:0xA0 __VISetFilter4EURGB60 = .text:0x803B68B0; // type:function size:0x40 __VISetCGMS = .text:0x803B68F0; // type:function size:0x58 -fn_803B6950 = .text:0x803B6950; // type:function size:0x64 +__VISetWSS = .text:0x803B6950; // type:function size:0x64 __VISetClosedCaption = .text:0x803B69C0; // type:function size:0x6C -fn_803B6A30 = .text:0x803B6A30; // type:function size:0xD78 -fn_803B77B0 = .text:0x803B77B0; // type:function size:0x160 -fn_803B7910 = .text:0x803B7910; // type:function size:0x10 +__VISetMacrovision = .text:0x803B6A30; // type:function size:0xD78 +__VISetGammaImm = .text:0x803B77B0; // type:function size:0x160 +__VISetGamma1_0 = .text:0x803B7910; // type:function size:0x10 __VISetGamma = .text:0x803B7920; // type:function size:0x18 __VISetTrapFilter = .text:0x803B7940; // type:function size:0x5C -fn_803B79A0 = .text:0x803B79A0; // type:function size:0x84 -fn_803B7A30 = .text:0x803B7A30; // type:function size:0x10 +__VISetRGBOverDrive = .text:0x803B79A0; // type:function size:0x84 +VISetRGBModeImm = .text:0x803B7A30; // type:function size:0x10 __VISetRGBModeImm = .text:0x803B7A40; // type:function size:0x48 scope:global -fn_803B7A90 = .text:0x803B7A90; // type:function size:0x4AC +__VISetRevolutionModeSimple = .text:0x803B7A90; // type:function size:0x4AC PSMTXIdentity = .text:0x803B7F40; // type:function size:0x2C PSMTXCopy = .text:0x803B7F70; // type:function size:0x34 PSMTXConcat = .text:0x803B7FB0; // type:function size:0xCC @@ -22341,7 +22341,7 @@ GXGetTexObjAll = .text:0x803BF090; // type:function size:0x54 GXGetTexObjData = .text:0x803BF0F0; // type:function size:0xC GXGetTexObjWidth = .text:0x803BF100; // type:function size:0x14 GXGetTexObjHeight = .text:0x803BF120; // type:function size:0x14 -GXGetTexObjFormat = .text:0x803BF140; // type:function size:0x8 +GXGetTexObjFmt = .text:0x803BF140; // type:function size:0x8 GXGetTexObjWrapS = .text:0x803BF150; // type:function size:0xC GXGetTexObjWrapT = .text:0x803BF160; // type:function size:0xC GXGetTexObjMipMap = .text:0x803BF170; // type:function size:0xC @@ -22359,7 +22359,7 @@ GXInvalidateTexAll = .text:0x803BF610; // type:function size:0x48 GXSetTexRegionCallback = .text:0x803BF660; // type:function size:0x14 GXSetTlutRegionCallback = .text:0x803BF680; // type:function size:0x14 GXSetTexCoordScaleManually = .text:0x803BF6A0; // type:function size:0x7C -SetTexCoordCylWrap = .text:0x803BF720; // type:function size:0x64 +GXSetTexCoordCylWrap = .text:0x803BF720; // type:function size:0x64 GXSetTexCoordBias = .text:0x803BF790; // type:function size:0x64 __SetSURegs = .text:0x803BF800; // type:function size:0x90 __GXSetSUTexRegs = .text:0x803BF890; // type:function size:0x164 @@ -22451,36 +22451,36 @@ DVDCloseDir = .text:0x803C3A50; // type:function size:0x8 StampCommand = .text:0x803C3A60; // type:function size:0xB4 defaultOptionalCommandChecker = .text:0x803C3B20; // type:function size:0x4 DVDInit = .text:0x803C3B30; // type:function size:0x154 scope:global -fn_803C3C90 = .text:0x803C3C90; // type:function size:0x178 -fn_803C3E10 = .text:0x803C3E10; // type:function size:0x184 -fn_803C3FA0 = .text:0x803C3FA0; // type:function size:0x4 -fn_803C3FB0 = .text:0x803C3FB0; // type:function size:0x110 -fn_803C40C0 = .text:0x803C40C0; // type:function size:0x14 -fn_803C40E0 = .text:0x803C40E0; // type:function size:0x3C +stateReadingFST = .text:0x803C3C90; // type:function size:0x178 +cbForStateReadingFST = .text:0x803C3E10; // type:function size:0x184 +FatalAlarmHandler = .text:0x803C3FA0; // type:function size:0x4 +cbForStateError = .text:0x803C3FB0; // type:function size:0x110 +cbForStoreErrorCode1 = .text:0x803C40C0; // type:function size:0x14 +cbForStoreErrorCode2 = .text:0x803C40E0; // type:function size:0x3C CategorizeError = .text:0x803C4120; // type:function size:0xF4 -fn_803C4220 = .text:0x803C4220; // type:function size:0xC4 -fn_803C42F0 = .text:0x803C42F0; // type:function size:0x504 -fn_803C4800 = .text:0x803C4800; // type:function size:0x1E0 +cbForStoreErrorCode3 = .text:0x803C4220; // type:function size:0xC4 +cbForStateGettingError = .text:0x803C42F0; // type:function size:0x504 +cbForUnrecoveredError = .text:0x803C4800; // type:function size:0x1E0 cbForUnrecoveredErrorRetry = .text:0x803C49E0; // type:function size:0xD4 -fn_803C4AC0 = .text:0x803C4AC0; // type:function size:0x240 -fn_803C4D00 = .text:0x803C4D00; // type:function size:0x338 -fn_803C5040 = .text:0x803C5040; // type:function size:0x1A0 -fn_803C51E0 = .text:0x803C51E0; // type:function size:0x47C -fn_803C5660 = .text:0x803C5660; // type:function size:0x188 -fn_803C57F0 = .text:0x803C57F0; // type:function size:0x164 -fn_803C5960 = .text:0x803C5960; // type:function size:0x1C8 -fn_803C5B30 = .text:0x803C5B30; // type:function size:0x194 -fn_803C5CD0 = .text:0x803C5CD0; // type:function size:0xC4 -fn_803C5DA0 = .text:0x803C5DA0; // type:function size:0x250 -fn_803C5FF0 = .text:0x803C5FF0; // type:function size:0xE4 -fn_803C60E0 = .text:0x803C60E0; // type:function size:0xC8 -fn_803C61B0 = .text:0x803C61B0; // type:function size:0x240 -fn_803C63F0 = .text:0x803C63F0; // type:function size:0x178 -fn_803C6570 = .text:0x803C6570; // type:function size:0xD8 -fn_803C6650 = .text:0x803C6650; // type:function size:0x188 -fn_803C67E0 = .text:0x803C67E0; // type:function size:0x24 -fn_803C6810 = .text:0x803C6810; // type:function size:0x31C -fn_803C6B30 = .text:0x803C6B30; // type:function size:0x5B0 +cbForStateGoToRetry = .text:0x803C4AC0; // type:function size:0x240 +stateCheckID = .text:0x803C4D00; // type:function size:0x338 +cbForStateReadingTOC = .text:0x803C5040; // type:function size:0x1A0 +cbForStateReadingPartitionInfo = .text:0x803C51E0; // type:function size:0x47C +cbForStateOpenPartition = .text:0x803C5660; // type:function size:0x188 +cbForStateOpenPartition2 = .text:0x803C57F0; // type:function size:0x164 +cbForStateCheckID1 = .text:0x803C5960; // type:function size:0x1C8 +cbForStateCheckID2 = .text:0x803C5B30; // type:function size:0x194 +stateCoverClosed = .text:0x803C5CD0; // type:function size:0xC4 +ResetAlarmHandler = .text:0x803C5DA0; // type:function size:0x250 +cbForStateReset = .text:0x803C5FF0; // type:function size:0xE4 +stateDownRotation = .text:0x803C60E0; // type:function size:0xC8 +cbForStateDownRotation = .text:0x803C61B0; // type:function size:0x240 +stateCoverClosed_CMD = .text:0x803C63F0; // type:function size:0x178 +cbForStateCoverClosed = .text:0x803C6570; // type:function size:0xD8 +cbForPrepareCoverRegister = .text:0x803C6650; // type:function size:0x188 +CoverAlarmHandler = .text:0x803C67E0; // type:function size:0x24 +stateReady = .text:0x803C6810; // type:function size:0x31C +stateBusy = .text:0x803C6B30; // type:function size:0x5B0 cbForStateBusy = .text:0x803C70E0; // type:function size:0x9E0 DVDReadAbsAsyncPrio = .text:0x803C7AC0; // type:function size:0xE4 DVDInquiryAsync = .text:0x803C7BB0; // type:function size:0xD8 scope:global @@ -22495,7 +22495,7 @@ __BS2DVDLowCallback = .text:0x803C82A0; // type:function size:0x8 __DVDGetCoverStatus = .text:0x803C82B0; // type:function size:0xCC scope:global DVDCheckDiskAsync = .text:0x803C8380; // type:function size:0x238 __DVDPrepareResetAsync = .text:0x803C85C0; // type:function size:0x11C -Callback2 = .text:0x803C86E0; // type:function size:0xC +Callback = .text:0x803C86E0; // type:function size:0xC scope:local __DVDPrepareReset = .text:0x803C86F0; // type:function size:0x138 scope:global __DVDTestAlarm = .text:0x803C8830; // type:function size:0x20 __DVDStopMotorAsync = .text:0x803C8850; // type:function size:0x8 @@ -22506,77 +22506,77 @@ __DVDPopWaitingQueue = .text:0x803C8920; // type:function size:0xA0 __DVDCheckWaitingQueue = .text:0x803C89C0; // type:function size:0x58 __DVDGetNextWaitingQueue = .text:0x803C8A20; // type:function size:0x64 __DVDDequeueWaitingQueue = .text:0x803C8A90; // type:function size:0x60 -fn_803C8AF0 = .text:0x803C8AF0; // type:function size:0x2C -fn_803C8B20 = .text:0x803C8B20; // type:function size:0x5C -fn_803C8B80 = .text:0x803C8B80; // type:function size:0xFC -fn_803C8C80 = .text:0x803C8C80; // type:function size:0x154 -fn_803C8DE0 = .text:0x803C8DE0; // type:function size:0xBC -fn_803C8EA0 = .text:0x803C8EA0; // type:function size:0xE8 -fn_803C8F90 = .text:0x803C8F90; // type:function size:0xA0 -fn_803C9030 = .text:0x803C9030; // type:function size:0x100 -fn_803C9130 = .text:0x803C9130; // type:function size:0x11C -fn_803C9250 = .text:0x803C9250; // type:function size:0xA0 +cbForNandClose = .text:0x803C8AF0; // type:function size:0x2C +cbForNandWrite = .text:0x803C8B20; // type:function size:0x5C +cbForNandSeek = .text:0x803C8B80; // type:function size:0xFC +cbForNandWrite0 = .text:0x803C8C80; // type:function size:0x154 +cbForNandSeek2 = .text:0x803C8DE0; // type:function size:0xBC +cbForNandRead = .text:0x803C8EA0; // type:function size:0xE8 +cbForNandSeek0 = .text:0x803C8F90; // type:function size:0xA0 +cbForNandSeek1 = .text:0x803C9030; // type:function size:0x100 +cbForNandOpen = .text:0x803C9130; // type:function size:0x11C +cbForNandCreate = .text:0x803C9250; // type:function size:0xA0 cbForNandCreateDir = .text:0x803C92F0; // type:function size:0x94 -fn_803C9390 = .text:0x803C9390; // type:function size:0x90 -fn_803C9420 = .text:0x803C9420; // type:function size:0x78 -fn_803C94A0 = .text:0x803C94A0; // type:function size:0x68 +cbForPrepareControlRegister = .text:0x803C9390; // type:function size:0x90 +cbForPrepareStatusRegister = .text:0x803C9420; // type:function size:0x78 +__DVDStoreErrorCode = .text:0x803C94A0; // type:function size:0x68 DVDCompareDiskID = .text:0x803C9510; // type:function size:0xF0 __DVDShowFatalMessage = .text:0x803C9600; // type:function size:0xCC scope:global DVDSetAutoFatalMessaging = .text:0x803C96D0; // type:function size:0x5C scope:global -fn_803C9730 = .text:0x803C9730; // type:function size:0x14 -fn_803C9750 = .text:0x803C9750; // type:function size:0x18 +__DVDGetAutoFatalMessaging = .text:0x803C9730; // type:function size:0x14 +__DVDPrintFatalMessage = .text:0x803C9750; // type:function size:0x18 lowCallback = .text:0x803C9770; // type:function size:0x10 scope:local __DVDCheckDevice = .text:0x803C9780; // type:function size:0x27C scope:global -fn_803C9A00 = .text:0x803C9A00; // type:function size:0xB8 -fn_803C9AC0 = .text:0x803C9AC0; // type:function size:0xBC -fn_803C9B80 = .text:0x803C9B80; // type:function size:0x50 +doTransactionCallback = .text:0x803C9A00; // type:function size:0xB8 +doPrepareCoverRegisterCallback = .text:0x803C9AC0; // type:function size:0xBC +DVDLowFinalize = .text:0x803C9B80; // type:function size:0x50 DVDLowInit = .text:0x803C9BD0; // type:function size:0x264 scope:global -fn_803C9E40 = .text:0x803C9E40; // type:function size:0x18C -fn_803C9FD0 = .text:0x803C9FD0; // type:function size:0x26C -fn_803CA240 = .text:0x803CA240; // type:function size:0x264 -fn_803CA4B0 = .text:0x803CA4B0; // type:function size:0x210 -fn_803CA6C0 = .text:0x803CA6C0; // type:function size:0x298 -fn_803CA960 = .text:0x803CA960; // type:function size:0x168 +DVDLowReadDiskID = .text:0x803C9E40; // type:function size:0x18C +DVDLowOpenPartition = .text:0x803C9FD0; // type:function size:0x26C +DVDLowOpenPartitionWithTmdAndTicketView = .text:0x803CA240; // type:function size:0x264 +DVDLowGetNoDiscBufferSizes = .text:0x803CA4B0; // type:function size:0x210 +DVDLowGetNoDiscOpenPartitionParams = .text:0x803CA6C0; // type:function size:0x298 +DVDLowClosePartition = .text:0x803CA960; // type:function size:0x168 DVDLowUnencryptedRead = .text:0x803CAAD0; // type:function size:0x198 scope:global -fn_803CAC70 = .text:0x803CAC70; // type:function size:0x198 -fn_803CAE10 = .text:0x803CAE10; // type:function size:0x16C +DVDLowStopMotor = .text:0x803CAC70; // type:function size:0x198 +DVDLowInquiry = .text:0x803CAE10; // type:function size:0x16C DVDLowRequestError = .text:0x803CAF80; // type:function size:0x168 scope:global -fn_803CB0F0 = .text:0x803CB0F0; // type:function size:0xC -fn_803CB100 = .text:0x803CB100; // type:function size:0x17C -fn_803CB280 = .text:0x803CB280; // type:function size:0x198 +DVDLowSetSpinupFlag = .text:0x803CB0F0; // type:function size:0xC +DVDLowReset = .text:0x803CB100; // type:function size:0x17C +DVDLowAudioBufferConfig = .text:0x803CB280; // type:function size:0x198 DVDLowReportKey = .text:0x803CB420; // type:function size:0x198 scope:global -fn_803CB5C0 = .text:0x803CB5C0; // type:function size:0x184 -fn_803CB750 = .text:0x803CB750; // type:function size:0x1B0 -fn_803CB900 = .text:0x803CB900; // type:function size:0x180 -fn_803CBA80 = .text:0x803CBA80; // type:function size:0x10 -fn_803CBA90 = .text:0x803CBA90; // type:function size:0xC -fn_803CBAA0 = .text:0x803CBAA0; // type:function size:0xC -fn_803CBAB0 = .text:0x803CBAB0; // type:function size:0x16C -fn_803CBC20 = .text:0x803CBC20; // type:function size:0x16C -fn_803CBD90 = .text:0x803CBD90; // type:function size:0x16C +DVDLowSetMaximumRotation = .text:0x803CB5C0; // type:function size:0x184 +DVDLowRead = .text:0x803CB750; // type:function size:0x1B0 +DVDLowSeek = .text:0x803CB900; // type:function size:0x180 +DVDLowGetCoverRegister = .text:0x803CBA80; // type:function size:0x10 +DVDLowGetStatusRegister = .text:0x803CBA90; // type:function size:0xC +DVDLowGetControlRegister = .text:0x803CBAA0; // type:function size:0xC +DVDLowPrepareCoverRegister = .text:0x803CBAB0; // type:function size:0x16C +DVDLowPrepareStatusRegister = .text:0x803CBC20; // type:function size:0x16C +DVDLowPrepareControlRegister = .text:0x803CBD90; // type:function size:0x16C DVDLowGetImmBufferReg = .text:0x803CBF00; // type:function size:0xC scope:global DVDLowUnmaskStatusInterrupts = .text:0x803CBF10; // type:function size:0x8 scope:global DVDLowMaskCoverInterrupt = .text:0x803CBF20; // type:function size:0x8 scope:global -fn_803CBF30 = .text:0x803CBF30; // type:function size:0x168 -fn_803CC0A0 = .text:0x803CC0A0; // type:function size:0x8 +DVDLowClearCoverInterrupt = .text:0x803CBF30; // type:function size:0x168 +__DVDLowTestAlarm = .text:0x803CC0A0; // type:function size:0x8 FindContainHeap_ = .text:0x803CC0B0; // type:function size:0x140 -MemSearchHandleInner = .text:0x803CC1F0; // type:function size:0x14C -MEMInitHeapHead = .text:0x803CC340; // type:function size:0x1C0 -fn_803CC500 = .text:0x803CC500; // type:function size:0x16C -findSomethingInListObject = .text:0x803CC670; // type:function size:0x140 -MEMFindContainHeap = .text:0x803CC7B0; // type:function size:0x18C +FindParentHeap_ = .text:0x803CC1F0; // type:function size:0x14C +MEMiInitHeapHead = .text:0x803CC340; // type:function size:0x1C0 +MEMiFinalizeHeap = .text:0x803CC500; // type:function size:0x16C +MEMFindContainHeap = .text:0x803CC670; // type:function size:0x140 +MEMFindParentHeap = .text:0x803CC7B0; // type:function size:0x18C AllocUsedBlockFromFreeBlock_ = .text:0x803CC940; // type:function size:0x22C AllocFromHead_ = .text:0x803CCB70; // type:function size:0xDC AllocFromTail_ = .text:0x803CCC50; // type:function size:0xC8 -fn_803CCD20 = .text:0x803CCD20; // type:function size:0x168 +RecycleRegion_ = .text:0x803CCD20; // type:function size:0x168 MEMCreateExpHeapEx = .text:0x803CCE90; // type:function size:0xB0 MEMDestroyExpHeap = .text:0x803CCF40; // type:function size:0x30 MEMAllocFromExpHeapEx = .text:0x803CCF70; // type:function size:0xB0 MEMResizeForMBlockExpHeap = .text:0x803CD020; // type:function size:0x1FC MEMFreeToExpHeap = .text:0x803CD220; // type:function size:0xC4 -MEMGetAllocatableSizeForExpHeap = .text:0x803CD2F0; // type:function size:0x7C +MEMGetTotalFreeSizeForExpHeap = .text:0x803CD2F0; // type:function size:0x7C MEMGetAllocatableSizeForExpHeapEx = .text:0x803CD370; // type:function size:0xD8 -MEMSetGroupIdForExpHeap = .text:0x803CD450; // type:function size:0x58 +MEMSetAllocModeForExpHeap = .text:0x803CD450; // type:function size:0x58 MEMGetSizeForMBlockExpHeap = .text:0x803CD4B0; // type:function size:0x8 MEMAdjustExpHeap = .text:0x803CD4C0; // type:function size:0xD8 MEMCreateFrmHeapEx = .text:0x803CD5A0; // type:function size:0x84 @@ -22593,9 +22593,9 @@ AllocatorFreeForExpHeap_ = .text:0x803CDBB0; // type:function size:0x8 MEMAllocFromAllocator = .text:0x803CDBC0; // type:function size:0x10 MEMFreeToAllocator = .text:0x803CDBD0; // type:function size:0x10 MEMInitAllocatorForExpHeap = .text:0x803CDBE0; // type:function size:0x1C -fn_803CDC00 = .text:0x803CDC00; // type:function size:0x18 -fn_803CDC20 = .text:0x803CDC20; // type:function size:0x70 -fn_803CDC90 = .text:0x803CDC90; // type:function size:0x6C +MEMInitList = .text:0x803CDC00; // type:function size:0x18 +MEMAppendListObject = .text:0x803CDC20; // type:function size:0x70 +MEMRemoveListObject = .text:0x803CDC90; // type:function size:0x6C MEMGetNextListObject = .text:0x803CDD00; // type:function size:0x20 DSPCheckMailToDSP = .text:0x803CDD20; // type:function size:0x10 DSPCheckMailFromDSP = .text:0x803CDD30; // type:function size:0x10 @@ -26217,7 +26217,7 @@ free__Q23EGG7ExpHeapFPv = .text:0x80495E50; // type:function size:0x68 resizeForMBlock__Q23EGG7ExpHeapFPvUl = .text:0x80495EC0; // type:function size:0x8 getTotalFreeSize__Q23EGG7ExpHeapFv = .text:0x80495ED0; // type:function size:0x8 getAllocatableSize__Q23EGG7ExpHeapFl = .text:0x80495EE0; // type:function size:0x8 -setGroupID__Q23EGG7ExpHeapFUs = .text:0x80495EF0; // type:function size:0x8 +setAllocMode__Q23EGG7ExpHeapFUs = .text:0x80495EF0; // type:function size:0x8 adjust__Q23EGG7ExpHeapFv = .text:0x80495F00; // type:function size:0x78 getSizeForMBlock__Q23EGG7ExpHeapFPCv = .text:0x80495F80; // type:function size:0x4 getHeapKind__Q23EGG7ExpHeapCFv = .text:0x80495F90; // type:function size:0x8 @@ -37811,8 +37811,8 @@ lbl_8054D810 = .data:0x8054D810; // type:object size:0x48 lbl_8054D858 = .data:0x8054D858; // type:object size:0xA data:string lbl_8054D864 = .data:0x8054D864; // type:object size:0x15 data:string lbl_8054D880 = .data:0x8054D880; // type:object size:0x48 -lbl_8054D8C8 = .data:0x8054D8C8; // type:object size:0x24 -lbl_8054D8EC = .data:0x8054D8EC; // type:object size:0x4C +lbl_8054D8C8 = .data:0x8054D8C8; // type:object size:0x22 data:string +lbl_8054D8EC = .data:0x8054D8EC; // type:object size:0x46 data:string lbl_8054D938 = .data:0x8054D938; // type:object size:0x48 lbl_8054D980 = .data:0x8054D980; // type:object size:0x80 lbl_8054DA00 = .data:0x8054DA00; // type:object size:0x20 @@ -38043,7 +38043,8 @@ lbl_80560F94 = .data:0x80560F94; // type:object size:0x3C lbl_80560FD0 = .data:0x80560FD0; // type:object size:0x3C data:string lbl_8056100C = .data:0x8056100C; // type:object size:0x3C lbl_80561048 = .data:0x80561048; // type:object size:0x30 -lbl_80561078 = .data:0x80561078; // type:object size:0x60 +@3815 = .data:0x80561078; // type:object size:0x32 scope:local data:string +lbl_805610AA = .data:0x805610AA; // type:object size:0x2E lbl_805610D8 = .data:0x805610D8; // type:object size:0xEA8 lbl_80561F80 = .data:0x80561F80; // type:object size:0x80 lbl_80562000 = .data:0x80562000; // type:object size:0x140 @@ -38818,7 +38819,7 @@ lbl_80570928 = .data:0x80570928; // type:object size:0x1C lbl_80570944 = .data:0x80570944; // type:object size:0x34 lbl_80570978 = .data:0x80570978; // type:object size:0x18 lbl_80570990 = .data:0x80570990; // type:object size:0x28 -lbl_805709B8 = .data:0x805709B8; // type:object size:0x48 +_current_locale = .data:0x805709B8; // type:object size:0x48 jumptable_80570A00 = .data:0x80570A00; // type:object size:0xE0 scope:local @2934 = .data:0x80570AE0; // type:object size:0x150 scope:local jumptable_80570C30 = .data:0x80570C30; // type:object size:0xE0 scope:local @@ -40904,7 +40905,7 @@ lbl_805748E0 = .sdata:0x805748E0; // type:object size:0x8 lbl_805748E8 = .sdata:0x805748E8; // type:object size:0x8 __KPRVersion = .sdata:0x805748F0; // type:object size:0x8 data:4byte __AIVersion = .sdata:0x805748F8; // type:object size:0x8 data:4byte -lbl_80574900 = .sdata:0x80574900; // type:object size:0x8 +lbl_80574900 = .sdata:0x80574900; // type:object size:0x6 data:string lbl_80574908 = .sdata:0x80574908; // type:object size:0x8 data:4byte lbl_80574910 = .sdata:0x80574910; // type:object size:0x2 data:2byte lbl_80574912 = .sdata:0x80574912; // type:object size:0x2 data:2byte @@ -42035,7 +42036,7 @@ lbl_80575FD8 = .sbss:0x80575FD8; // type:object size:0x4 data:4byte lbl_80575FDC = .sbss:0x80575FDC; // type:object size:0x4 data:4byte __OSArenaHi = .sbss:0x80575FE0; // type:object size:0x4 scope:local data:4byte s_mem2ArenaHi = .sbss:0x80575FE4; // type:object size:0x4 scope:local data:4byte -lbl_80575FE8 = .sbss:0x80575FE8; // type:object size:0x4 data:4byte +__OSNextPartitionType = .sbss:0x80575FE8; // type:object size:0x4 data:4byte lbl_80575FEC = .sbss:0x80575FEC; // type:object size:0x4 data:4byte lbl_80575FF0 = .sbss:0x80575FF0; // type:object size:0x4 data:4byte __OSInReboot = .sbss:0x80575FF4; // type:object size:0x4 scope:global data:4byte @@ -42169,17 +42170,17 @@ FstStringStart = .sbss:0x80576244; // type:object size:0x4 scope:local data:4byt FstStart = .sbss:0x80576248; // type:object size:0x4 scope:local data:4byte BootInfo = .sbss:0x8057624C; // type:object size:0x4 scope:local data:4byte lbl_80576260 = .sbss:0x80576260; // type:object size:0x4 data:4byte -lbl_80576264 = .sbss:0x80576264; // type:object size:0x4 data:4byte +PauseFlag = .sbss:0x80576264; // type:object size:0x4 scope:local data:4byte PausingFlag = .sbss:0x80576268; // type:object size:0x4 scope:local data:4byte FatalErrorFlag = .sbss:0x8057626C; // type:object size:0x4 scope:local data:4byte lbl_80576270 = .sbss:0x80576270; // type:object size:0x4 data:4byte -lbl_80576274 = .sbss:0x80576274; // type:object size:0x4 data:4byte +ResumeFromHere = .sbss:0x80576274; // type:object size:0x4 scope:local data:4byte lbl_80576278 = .sbss:0x80576278; // type:object size:0x4 data:4byte FirstTimeInBootrom = .sbss:0x8057627C; // type:object size:0x4 scope:local data:4byte lbl_80576280 = .sbss:0x80576280; // type:object size:0x4 data:4byte -lbl_80576284 = .sbss:0x80576284; // type:object size:0x4 data:4byte -lbl_80576288 = .sbss:0x80576288; // type:object size:0x4 data:4byte -lbl_8057628C = .sbss:0x8057628C; // type:object size:0x4 data:4byte +WaitingForCoverOpen = .sbss:0x80576284; // type:object size:0x4 scope:local data:4byte +WaitingForCoverClose = .sbss:0x80576288; // type:object size:0x4 scope:local data:4byte +MotorStopped = .sbss:0x8057628C; // type:object size:0x4 scope:local data:4byte lbl_80576290 = .sbss:0x80576290; // type:object size:0x4 data:4byte lbl_80576294 = .sbss:0x80576294; // type:object size:0x4 data:4byte __DVDLayoutFormat = .sbss:0x80576298; // type:object size:0x4 scope:global data:4byte @@ -42195,28 +42196,28 @@ lbl_805762CC = .sbss:0x805762CC; // type:object size:0x4 data:4byte MotorState = .sbss:0x805762D0; // type:object size:0x4 scope:local data:4byte lbl_805762D4 = .sbss:0x805762D4; // type:object size:0x4 data:4byte lbl_805762D8 = .sbss:0x805762D8; // type:object size:0x4 data:4byte -lbl_805762DC = .sbss:0x805762DC; // type:object size:0x4 data:4byte +CancelLastError = .sbss:0x805762DC; // type:object size:0x4 scope:local data:4byte lbl_805762E0 = .sbss:0x805762E0; // type:object size:0x4 data:4byte -lbl_805762E4 = .sbss:0x805762E4; // type:object size:0x4 data:4byte +CurrCommand = .sbss:0x805762E4; // type:object size:0x4 scope:local data:4byte bootInfo = .sbss:0x805762E8; // type:object size:0x4 scope:local data:4byte IDShouldBe = .sbss:0x805762EC; // type:object size:0x4 scope:local data:4byte executing = .sbss:0x805762F0; // type:object size:0x4 scope:local data:4byte lbl_805762F4 = .sbss:0x805762F4; // type:object size:0x4 data:4byte lbl_805762F8 = .sbss:0x805762F8; // type:object size:0x4 data:4byte lbl_805762FC = .sbss:0x805762FC; // type:object size:0x4 data:4byte -lbl_80576300 = .sbss:0x80576300; // type:object size:0x8 data:4byte +Callback = .sbss:0x80576300; // type:object size:0x4 scope:local data:4byte FatalFunc = .sbss:0x80576308; // type:object size:0x4 scope:local data:4byte lowIntType = .sbss:0x80576310; // type:object size:0x4 scope:local data:4byte -lbl_80576318 = .sbss:0x80576318; // type:object size:0x1 data:byte +requestInProgress = .sbss:0x80576318; // type:object size:0x1 scope:local data:byte lbl_80576319 = .sbss:0x80576319; // type:object size:0x1 data:byte -lbl_8057631C = .sbss:0x8057631C; // type:object size:0x4 data:4byte -lbl_80576320 = .sbss:0x80576320; // type:object size:0x4 data:4byte +freeCommandBuf = .sbss:0x8057631C; // type:object size:0x4 scope:local data:4byte +freeDvdContext = .sbss:0x80576320; // type:object size:0x4 scope:local data:4byte lbl_80576324 = .sbss:0x80576324; // type:object size:0x1 data:byte lbl_80576325 = .sbss:0x80576325; // type:object size:0x1 data:byte -lbl_80576328 = .sbss:0x80576328; // type:object size:0x4 data:4byte +spinUpValue = .sbss:0x80576328; // type:object size:0x4 scope:local data:4byte lbl_8057632C = .sbss:0x8057632C; // type:object size:0x4 data:4byte lbl_80576330 = .sbss:0x80576330; // type:object size:0x4 data:4byte -lbl_80576334 = .sbss:0x80576334; // type:object size:0x4 data:4byte +diCommand = .sbss:0x80576334; // type:object size:0x4 scope:local data:4byte lbl_80576338 = .sbss:0x80576338; // type:object size:0x8 data:byte lbl_80576340 = .sbss:0x80576340; // type:object size:0x8 data:4byte lbl_80576348 = .sbss:0x80576348; // type:object size:0x8 data:4byte @@ -49253,8 +49254,7 @@ lbl_8057E700 = .sdata2:0x8057E700; // type:object size:0x4 align:4 data:float lbl_8057E704 = .sdata2:0x8057E704; // type:object size:0x4 align:4 data:float lbl_8057E708 = .sdata2:0x8057E708; // type:object size:0x4 align:4 data:float lbl_8057E710 = .sdata2:0x8057E710; // type:object size:0x8 align:8 data:double -lbl_8057E718 = .sdata2:0x8057E718; // type:object size:0x4 data:4byte -lbl_8057E71C = .sdata2:0x8057E71C; // type:object size:0x4 data:4byte +lbl_8057E718 = .sdata2:0x8057E718; // type:object size:0x8 data:4byte lbl_8057E720 = .sdata2:0x8057E720; // type:object size:0x4 align:4 data:float lbl_8057E728 = .sdata2:0x8057E728; // type:object size:0x8 align:8 data:double __EXIFreq = .sdata2:0x8057E730; // type:object size:0x8 data:4byte @@ -51824,7 +51824,7 @@ __DVDTmdBuffer = .bss:0x805E9140; // type:object size:0x4A00 scope:local lbl_805EDB40 = .bss:0x805EDB40; // type:object size:0x20 DummyCommandBlock = .bss:0x805EDB60; // type:object size:0x30 scope:local lbl_805EDB90 = .bss:0x805EDB90; // type:object size:0x30 -lbl_805EDBC0 = .bss:0x805EDBC0; // type:object size:0x40 +CoverAlarm = .bss:0x805EDBC0; // type:object size:0x30 scope:local lbl_805EDC00 = .bss:0x805EDC00; // type:object size:0x20 lbl_805EDC20 = .bss:0x805EDC20; // type:object size:0x20 lbl_805EDC40 = .bss:0x805EDC40; // type:object size:0x20 @@ -51835,8 +51835,8 @@ lbl_805EDD20 = .bss:0x805EDD20; // type:object size:0x8C lbl_805EDDAC = .bss:0x805EDDAC; // type:object size:0xD4 __ErrorInfo = .bss:0x805EDE80; // type:object size:0x80 scope:global data:byte CheckBuffer = .bss:0x805EDF80; // type:object size:0x20 scope:local -lbl_805EDFA0 = .bss:0x805EDFA0; // type:object size:0x80 data:4byte -lbl_805EE020 = .bss:0x805EE020; // type:object size:0x20 data:4byte +dvdContexts = .bss:0x805EDFA0; // type:object size:0x80 scope:local data:4byte +diRegValCache = .bss:0x805EE020; // type:object size:0x20 scope:local data:4byte lbl_805EE040 = .bss:0x805EE040; // type:object size:0x20 data:4byte lbl_805EE060 = .bss:0x805EE060; // type:object size:0xC0 data:4byte lbl_805EE120 = .bss:0x805EE120; // type:object size:0x20 data:4byte diff --git a/configure.py b/configure.py index 60e11451..9cd74e13 100644 --- a/configure.py +++ b/configure.py @@ -1314,16 +1314,95 @@ config.libs = [ Object(NonMatching, "revolution/thp/THPAudio.c"), Object(NonMatching, "revolution/kpr/kpr_lib.c"), Object(NonMatching, "revolution/ai/ai.c"), - Object(NonMatching, "RVL_SDK/arc/ARC.c"), - Object(NonMatching, "RVL_SDK/ax/AX.c"), - Object(NonMatching, "RVL_SDK/os/OS.c"), - Object(NonMatching, "RVL_SDK/exi/EXI.c"), - Object(NonMatching, "RVL_SDK/si/SI.c"), - Object(NonMatching, "RVL_SDK/vi/VI.c"), - Object(NonMatching, "RVL_SDK/mtx/MTX.c"), - Object(NonMatching, "RVL_SDK/gx/GX.c"), - Object(NonMatching, "RVL_SDK/dvd/DVD.c"), - Object(NonMatching, "RVL_SDK/mem/MEM.c"), + Object(NonMatching, "revolution/arc/arc.c"), + Object(NonMatching, "revolution/ax/AX.c"), + Object(NonMatching, "revolution/ax/AXAlloc.c"), + Object(NonMatching, "revolution/ax/AXAux.c"), + Object(NonMatching, "revolution/ax/AXCL.c"), + Object(NonMatching, "revolution/ax/AXOut.c"), + Object(NonMatching, "revolution/ax/AXSPB.c"), + Object(NonMatching, "revolution/ax/AXVPB.c"), + Object(NonMatching, "revolution/ax/AXProf.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbHi.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbHiExp.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbStdExp.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbStdExpDpl2.c"), + Object(NonMatching, "revolution/axfx/AXFXHooks.c"), + Object(NonMatching, "revolution/base/PPCArch.c"), + Object(NonMatching, "revolution/os/OS.c"), + Object(NonMatching, "revolution/os/OSAlarm.c"), + Object(NonMatching, "revolution/os/OSAlloc.c"), + Object(NonMatching, "revolution/os/OSArena.c"), + Object(NonMatching, "revolution/os/OSAudioSystem.c"), + Object(NonMatching, "revolution/os/OSCache.c"), + Object(NonMatching, "revolution/os/OSContext.c"), + Object(NonMatching, "revolution/os/OSError.c"), + Object(NonMatching, "revolution/os/OSExec.c"), + Object(NonMatching, "revolution/os/OSFatal.c"), + Object(NonMatching, "revolution/os/OSFont.c"), + Object(NonMatching, "revolution/os/OSInterrupt.c"), + Object(NonMatching, "revolution/os/OSLink.c"), + Object(NonMatching, "revolution/os/OSMessage.c"), + Object(NonMatching, "revolution/os/OSMemory.c"), + Object(NonMatching, "revolution/os/OSMutex.c"), + Object(NonMatching, "revolution/os/OSReboot.c"), + Object(NonMatching, "revolution/os/OSReset.c"), + Object(NonMatching, "revolution/os/OSRtc.c"), + Object(NonMatching, "revolution/os/OSSync.c"), + Object(NonMatching, "revolution/os/OSThread.c"), + Object(NonMatching, "revolution/os/OSTime.c"), + Object(NonMatching, "revolution/os/OSUtf.c"), + Object(NonMatching, "revolution/os/OSIpc.c"), + Object(NonMatching, "revolution/os/OSStateTM.c"), + Object(NonMatching, "revolution/os/OSPlayRecord.c"), + Object(NonMatching, "revolution/os/OSStateFlags.c"), + Object(NonMatching, "revolution/os/OSNet.c"), + Object(NonMatching, "revolution/os/OSNandbootInfo.c"), + Object(NonMatching, "revolution/os/OSPlayTime.c"), + Object(NonMatching, "revolution/os/OSCrc.c"), + Object(NonMatching, "revolution/os/OSLaunch.c"), + Object(NonMatching, "revolution/os/__ppc_eabi_init.c"), + Object(NonMatching, "revolution/exi/EXIBios.c"), + Object(NonMatching, "revolution/exi/EXIUart.c"), + Object(NonMatching, "revolution/exi/EXICommon.c"), + Object(NonMatching, "revolution/si/SIBios.c"), + Object(NonMatching, "revolution/si/SISamplingRate.c"), + Object(NonMatching, "revolution/vi/vi.c"), + Object(NonMatching, "revolution/vi/i2c.c"), + Object(NonMatching, "revolution/vi/vi3in1.c"), + Object(NonMatching, "revolution/mtx/mtx.c"), + Object(NonMatching, "revolution/mtx/mtxvec.c"), + Object(NonMatching, "revolution/mtx/mtx44.c"), + Object(NonMatching, "revolution/mtx/vec.c"), + Object(NonMatching, "revolution/mtx/quat.c"), + Object(NonMatching, "revolution/gx/GXInit.c"), + Object(NonMatching, "revolution/gx/GXFifo.c"), + Object(NonMatching, "revolution/gx/GXAttr.c"), + Object(NonMatching, "revolution/gx/GXMisc.c"), + Object(NonMatching, "revolution/gx/GXGeometry.c"), + Object(NonMatching, "revolution/gx/GXFrameBuf.c"), + Object(NonMatching, "revolution/gx/GXLight.c"), + Object(NonMatching, "revolution/gx/GXTexture.c"), + Object(NonMatching, "revolution/gx/GXBump.c"), + Object(NonMatching, "revolution/gx/GXTev.c"), + Object(NonMatching, "revolution/gx/GXPixel.c"), + Object(NonMatching, "revolution/gx/GXDraw.c"), + Object(NonMatching, "revolution/gx/GXDisplayList.c"), + Object(NonMatching, "revolution/gx/GXTransform.c"), + Object(NonMatching, "revolution/gx/GXPerf.c"), + Object(NonMatching, "revolution/dvd/dvdfs.c"), + Object(NonMatching, "revolution/dvd/dvd.c"), + Object(NonMatching, "revolution/dvd/dvdqueue.c"), + Object(NonMatching, "revolution/dvd/dvderror.c"), + Object(NonMatching, "revolution/dvd/dvdidutils.c"), + Object(NonMatching, "revolution/dvd/dvdFatal.c"), + Object(NonMatching, "revolution/dvd/dvdDeviceError.c"), + Object(NonMatching, "revolution/dvd/dvd_broadway.c"), + Object(NonMatching, "revolution/mem/mem_heapCommon.c"), + Object(NonMatching, "revolution/mem/mem_expHeap.c"), + Object(NonMatching, "revolution/mem/mem_frameHeap.c"), + Object(NonMatching, "revolution/mem/mem_allocator.c"), + Object(NonMatching, "revolution/mem/mem_list.c"), Object(NonMatching, "RVL_SDK/dsp/DSP.c"), Object(NonMatching, "RVL_SDK/es/ES.c"), Object(NonMatching, "RVL_SDK/cx/CX.c"), diff --git a/include/egg/core/eggExpHeap.h b/include/egg/core/eggExpHeap.h index e1c7eb8d..83fa0ed5 100644 --- a/include/egg/core/eggExpHeap.h +++ b/include/egg/core/eggExpHeap.h @@ -24,7 +24,7 @@ public: ExpHeap(MEMiHeapHead *heapHead); static ExpHeap *create(void *block, size_t size, u16 attr); static ExpHeap *create(size_t size, Heap *heap, u16 attr); - void setGroupID(u16 groupId); + void setAllocMode(u16 allocMode); static u32 getSizeForMBlock(const void *block); // Placement new for ::create diff --git a/include/rvl/GX/GXTexture.h b/include/rvl/GX/GXTexture.h index e6428e51..a8ae5f59 100644 --- a/include/rvl/GX/GXTexture.h +++ b/include/rvl/GX/GXTexture.h @@ -52,7 +52,7 @@ void GXSetTexCoordBias(GXTexCoordID, GXBool, GXBool); u16 GXGetTexObjWidth(const GXTexObj *obj); u16 GXGetTexObjHeight(const GXTexObj *obj); -GXTexFmt GXGetTexObjFormat(const GXTexObj *obj); +GXTexFmt GXGetTexObjFmt(const GXTexObj *obj); GXBool GXGetTexObjMipMap(const GXTexObj *obj); GXTexWrapMode GXGetTexObjWrapS(const GXTexObj *obj); u32 GXGetTexObjTlut(const GXTexObj *); diff --git a/include/rvl/MEM/mem_expHeap.h b/include/rvl/MEM/mem_expHeap.h index b39f9c9f..65c27cf4 100644 --- a/include/rvl/MEM/mem_expHeap.h +++ b/include/rvl/MEM/mem_expHeap.h @@ -56,10 +56,12 @@ void *MEMAllocFromExpHeapEx(struct MEMiHeapHead *heap, u32 size, s32 align); u32 MEMResizeForMBlockExpHeap(struct MEMiHeapHead *heap, void *memBlock, u32 size); void MEMFreeToExpHeap(struct MEMiHeapHead *heap, void *memBlock); u32 MEMGetAllocatableSizeForExpHeap(struct MEMiHeapHead *heap); +u32 MEMGetTotalFreeSizeForExpHeap(struct MEMiHeapHead *heap); u32 MEMGetAllocatableSizeForExpHeapEx(struct MEMiHeapHead *heap, s32 align); -void MEMSetGroupIdForExpHeap(MEMiHeapHead *mHeapHandle, u16 groupId); +void MEMSetGroupIdForExpHeap(struct MEMiHeapHead *mHeapHandle, u16 groupId); u32 MEMAdjustExpHeap(struct MEMiHeapHead *heap); u32 MEMGetSizeForMBlockExpHeap(const void *block); +void MEMSetAllocModeForExpHeap(struct MEMiHeapHead *heap, u16 allocMode); static inline struct MEMiHeapHead *MEMCreateExpHeap(void *start, u32 size) { return MEMCreateExpHeapEx(start, size, 0); diff --git a/include/rvl/MEM/mem_heapCommon.h b/include/rvl/MEM/mem_heapCommon.h index aa7f97ad..60f3d8bd 100644 --- a/include/rvl/MEM/mem_heapCommon.h +++ b/include/rvl/MEM/mem_heapCommon.h @@ -37,6 +37,7 @@ typedef struct MEMiHeapHead { void MEMiInitHeapHead(MEMiHeapHead *heap, u32 magic, void *start, void *end, u16 opt); void MEMiFinalizeHeap(MEMiHeapHead *heap); MEMiHeapHead *MEMFindContainHeap(const void *memBlock); +MEMiHeapHead *MEMFindParentHeap(const MEMiHeapHead *pHandle); static inline int GetUIntPtr(const void *p) { return (int)p; diff --git a/include/rvl/OS/OSContext.h b/include/rvl/OS/OSContext.h index bc87b69c..80b7c493 100644 --- a/include/rvl/OS/OSContext.h +++ b/include/rvl/OS/OSContext.h @@ -27,6 +27,7 @@ typedef struct OSContext { f64 psfs[32]; // at 0x1C8 } OSContext; +void OSFillFPUContext(OSContext *ctx); void OSSaveFPUContext(OSContext *ctx); void OSSetCurrentContext(OSContext *ctx); OSContext *OSGetCurrentContext(void); diff --git a/include/rvl/OS/OSMemory.h b/include/rvl/OS/OSMemory.h index 5a186e1b..af917d94 100644 --- a/include/rvl/OS/OSMemory.h +++ b/include/rvl/OS/OSMemory.h @@ -11,11 +11,22 @@ extern "C" { #define OS_MEM_IS_MEM1(addr) (((u32)(addr) & 0x30000000) == 0) #define OS_MEM_IS_MEM2(addr) (((u32)(addr) & 0x30000000) == 0x10000000) +#define OS_PROTECT_CHAN0 0 +#define OS_PROTECT_CHAN1 1 +#define OS_PROTECT_CHAN2 2 +#define OS_PROTECT_CHAN3 3 + +#define OS_PROTECT_CONTROL_NONE 0x00 +#define OS_PROTECT_CONTROL_READ 0x01 +#define OS_PROTECT_CONTROL_WRITE 0x02 +#define OS_PROTECT_CONTROL_RDWR (OS_PROTECT_CONTROL_READ | OS_PROTECT_CONTROL_WRITE) + u32 OSGetPhysicalMem1Size(void); u32 OSGetPhysicalMem2Size(void); u32 OSGetConsoleSimulatedMem1Size(void); u32 OSGetConsoleSimulatedMem2Size(void); void __OSInitMemoryProtection(void); +void OSProtectRange(u32 chan, void* addr, u32 nBytes, u32 control); #ifdef __cplusplus } diff --git a/src/d/d_heap.cpp b/src/d/d_heap.cpp index d2d4fa0a..e5b926a3 100644 --- a/src/d/d_heap.cpp +++ b/src/d/d_heap.cpp @@ -32,7 +32,7 @@ void dHeapAllocator::onAlloc(EGG::HeapAllocArg *arg) { EGG::ExpHeap *dHeap::init(const char *name, size_t size, EGG::Heap *parent) { heap = EGG::ExpHeap::create(size, parent, 4); if (heap != nullptr) { - heap->setGroupID(0); + heap->setAllocMode(0); heap->mName = name; } return heap; diff --git a/src/egg/core/eggExpHeap.cpp b/src/egg/core/eggExpHeap.cpp index 13296e54..a210c654 100644 --- a/src/egg/core/eggExpHeap.cpp +++ b/src/egg/core/eggExpHeap.cpp @@ -100,15 +100,15 @@ u32 ExpHeap::resizeForMBlock(void *block, u32 size) { } u32 ExpHeap::getTotalFreeSize() { - return MEMGetAllocatableSizeForExpHeap(mHeapHandle); + return MEMGetTotalFreeSizeForExpHeap(mHeapHandle); } u32 ExpHeap::getAllocatableSize(s32 align) { return MEMGetAllocatableSizeForExpHeapEx(mHeapHandle, align); } -void ExpHeap::setGroupID(u16 groupId) { - MEMSetGroupIdForExpHeap(mHeapHandle, groupId); +void ExpHeap::setAllocMode(u16 allocMode) { + MEMSetAllocModeForExpHeap(mHeapHandle, allocMode); } u32 ExpHeap::adjust() { diff --git a/src/egg/core/eggHeap.cpp b/src/egg/core/eggHeap.cpp index 531585ef..49297691 100644 --- a/src/egg/core/eggHeap.cpp +++ b/src/egg/core/eggHeap.cpp @@ -106,7 +106,7 @@ Heap *Heap::findHeap(MEMiHeapHead *head) { /* 80495730 */ Heap *Heap::findParentHeap() { Heap *retHeap = nullptr; - MEMiHeapHead *heap = MEMFindContainHeap(mHeapHandle); + MEMiHeapHead *heap = MEMFindParentHeap(mHeapHandle); if (heap) { retHeap = findHeap(heap); } @@ -114,12 +114,10 @@ Heap *Heap::findParentHeap() { return retHeap; } -extern "C" MEMiHeapHead *findSomethingInListObject(const void *memBlock); - /* 80495780 */ Heap *Heap::findContainHeap(const void *memBlock) { Heap *retHeap = nullptr; - MEMiHeapHead *heap = findSomethingInListObject(memBlock); + MEMiHeapHead *heap = MEMFindContainHeap(memBlock); if (heap) { retHeap = findHeap(heap); } @@ -130,7 +128,7 @@ Heap *Heap::findContainHeap(const void *memBlock) { /* 804957c0 */ void Heap::free(void *ptr, Heap *heap) { if (heap == nullptr) { - MEMiHeapHead *iheap = findSomethingInListObject(ptr); + MEMiHeapHead *iheap = MEMFindContainHeap(ptr); if (iheap == nullptr) { return; } diff --git a/src/egg/gfx/eggCpuTexture.cpp b/src/egg/gfx/eggCpuTexture.cpp index f86a8bd3..6fb11fcc 100644 --- a/src/egg/gfx/eggCpuTexture.cpp +++ b/src/egg/gfx/eggCpuTexture.cpp @@ -98,7 +98,7 @@ CpuTexture::CpuTexture(const GXTexObj *pObj) { mWidth = GXGetTexObjWidth(pObj); mHeight = GXGetTexObjHeight(pObj); - mTexFormat = GXGetTexObjFormat(pObj); + mTexFormat = GXGetTexObjFmt(pObj); mWrapS = GXGetTexObjWrapS(pObj); mWrapT = GXGetTexObjWrapT(pObj); mMinFilt = GXGetTexObjMinFilt(pObj); diff --git a/src/m/m_heap.cpp b/src/m/m_heap.cpp index dcdd01d2..f2767ac0 100644 --- a/src/m/m_heap.cpp +++ b/src/m/m_heap.cpp @@ -149,7 +149,7 @@ mHeap::~mHeap() { EGG::ExpHeap *mHeap::createHeap(size_t size, EGG::Heap *block, const char *name) { EGG::ExpHeap *heap = EGG::ExpHeap::create(size, block, 4); if (heap != nullptr) { - heap->setGroupID(0); + heap->setAllocMode(0); if (name != nullptr) { heap->mName = name; } diff --git a/src/nw4r/db/db_exception.cpp b/src/nw4r/db/db_exception.cpp index 700e93ec..29b575fb 100644 --- a/src/nw4r/db/db_exception.cpp +++ b/src/nw4r/db/db_exception.cpp @@ -74,8 +74,6 @@ void Exception_Init() { } extern "C" u32 PPCMfmsr(); extern "C" void PPCMtmsr(u32); -extern "C" void OSFillFPUContext(OSContext *ctx); -extern "C" void fn_803AA2E0(u32, u32, u32, u32); static void DumpException_(const ExceptionCallbackParam *); @@ -85,10 +83,10 @@ void ErrorHandler_(u16 error, OSContext *ctx, u32 dsisr, u32 dar) { OSFillFPUContext(ctx); OSSetErrorHandler(error, nullptr); if (error == 0xf) { - fn_803AA2E0(0, 0, 0, 3); - fn_803AA2E0(1, 0, 0, 3); - fn_803AA2E0(2, 0, 0, 3); - fn_803AA2E0(3, 0, 0, 3); + OSProtectRange(OS_PROTECT_CHAN0, 0, 0, OS_PROTECT_CONTROL_RDWR); + OSProtectRange(OS_PROTECT_CHAN1, 0, 0, OS_PROTECT_CONTROL_RDWR); + OSProtectRange(OS_PROTECT_CHAN2, 0, 0, OS_PROTECT_CONTROL_RDWR); + OSProtectRange(OS_PROTECT_CHAN3, 0, 0, OS_PROTECT_CONTROL_RDWR); } ExceptionCallbackParam param; diff --git a/src/nw4r/g3d/platform/g3d_tmem.cpp b/src/nw4r/g3d/platform/g3d_tmem.cpp index 2dc55708..1688bd97 100644 --- a/src/nw4r/g3d/platform/g3d_tmem.cpp +++ b/src/nw4r/g3d/platform/g3d_tmem.cpp @@ -213,7 +213,7 @@ void SetTMemLayout(TMemLayout layout) { } // namespace nw4r static GXTexRegion *TexRegionCallback(const GXTexObj *pObj, GXTexMapID map) { - GXTexFmt fmt = GXGetTexObjFormat(pObj); + GXTexFmt fmt = GXGetTexObjFmt(pObj); GXBool mipmap = GXGetTexObjMipMap(pObj); switch (fmt) {