diff --git a/docs/coreinit_exports.txt b/docs/coreinit_exports.txt
new file mode 100644
index 0000000..d67f282
--- /dev/null
+++ b/docs/coreinit_exports.txt
@@ -0,0 +1,1235 @@
+0x020147D4 COSError
+0x02014918 COSInfo
+0x02014798 COSVReport
+0x020149D0 COSVerbose
+0x02014860 COSWarn
+0x02033690 CoreInitDefaultHeap
+0x020098C0 DCBlockFlush
+0x02009048 DCCoreFlushAll
+0x02009900 DCFlushRange
+0x02009970 DCFlushRangeNoSync
+0x020098D4 DCInvalidateRange
+0x0200993C DCStoreRange
+0x020099A4 DCStoreRangeNoSync
+0x020099FC DCTouchRange
+0x020099D0 DCZeroRange
+0x0204C3E4 DK_BlockClose
+0x0204C388 DK_BlockOpen
+0x0204C4C4 DK_BlockRead
+0x0204C684 DK_BlockReadAsync
+0x0204C7AC DK_BlockWrite
+0x0204C8D0 DK_BlockWriteAsync
+0x0204CAD0 DK_CharClose
+0x0204CA74 DK_CharOpen
+0x0204CBB0 DK_CharRead
+0x0204CD88 DK_CharReadAsync
+0x0204CE7C DK_CharWrite
+0x0204CF98 DK_CharWriteAsync
+0x0204D83C DK_PCharClose
+0x0204E334 DK_PCharFlushWrite
+0x0204E390 DK_PCharGetStatistics
+0x0204D734 DK_PCharOpen
+0x0204D9A8 DK_PCharReadAsync
+0x0204E110 DK_PCharWrite
+0x0204E1A0 DK_PCharWriteAsync
+0x0204C310 DK_PPCBlockShimInit
+0x0204C9F8 DK_PPCCharShimInit
+0x0204E648 DK_ShimInit
+0x02002ED4 DisassemblePPCOpcode
+0x02002FC8 DisassemblePPCRange
+0x02073014 ENVGetEnvironmentVariable
+0x02056898 FSAAddClient
+0x02054CDC FSAAppendFile
+0x020571BC FSAAppendFileAsync
+0x02054D9C FSAAppendFileEx
+0x02057218 FSAAppendFileExAsync
+0x02052804 FSAChangeDir
+0x020569FC FSAChangeDirAsync
+0x02055D4C FSAChangeMode
+0x02057548 FSAChangeModeAsync
+0x0205347C FSACloseDir
+0x02056C6C FSACloseDirAsync
+0x0205498C FSACloseFile
+0x0205710C FSACloseFileAsync
+0x02051ED0 FSADelClient
+0x020547E4 FSAFlushFile
+0x020570B4 FSAFlushFileAsync
+0x02055BA4 FSAFlushMultiQuota
+0x020574F0 FSAFlushMultiQuotaAsync
+0x020555EC FSAFlushQuota
+0x020573E8 FSAFlushQuotaAsync
+0x0205529C FSAFlushVolume
+0x02057338 FSAFlushVolumeAsync
+0x02051CA8 FSAFreeAsyncResult
+0x02051CB0 FSAGetAsyncResult
+0x020567A4 FSAGetBadBlockInfo
+0x02057880 FSAGetBadBlockInfoAsync
+0x02051FA4 FSAGetClientNum
+0x020529AC FSAGetCwd
+0x02056A54 FSAGetCwdAsync
+0x02056774 FSAGetDeviceInfo
+0x02057618 FSAGetDeviceInfoAsync
+0x0205672C FSAGetDirSize
+0x02057670 FSAGetDirSizeAsync
+0x02056744 FSAGetEntryNum
+0x020576C8 FSAGetEntryNumAsync
+0x02056264 FSAGetError
+0x020575B0 FSAGetErrorAsync
+0x020560BC FSAGetFileBlockAddress
+0x02057988 FSAGetFileBlockAddressAsync
+0x0205675C FSAGetFileSystemInfo
+0x02057720 FSAGetFileSystemInfoAsync
+0x020567BC FSAGetFragmentBlockInfo
+0x020578D8 FSAGetFragmentBlockInfoAsync
+0x020566FC FSAGetFreeSpaceSize
+0x02057778 FSAGetFreeSpaceSizeAsync
+0x02056714 FSAGetJournalFreeSpaceSize
+0x020577D0 FSAGetJournalFreeSpaceSizeAsync
+0x020540EC FSAGetPosFile
+0x02056F44 FSAGetPosFileAsync
+0x0205678C FSAGetStat
+0x02057828 FSAGetStatAsync
+0x02054608 FSAGetStatFile
+0x0205705C FSAGetStatFileAsync
+0x02051FB0 FSAGetStatusStr
+0x020567D4 FSAGetTransactionBlockPoolAttributes
+0x02052610 FSAGetVolumeInfo
+0x020569A4 FSAGetVolumeInfoAsync
+0x02051CD8 FSAInit
+0x02054460 FSAIsEof
+0x02057004 FSAIsEofAsync
+0x02052BC8 FSAMakeDir
+0x02056A9C FSAMakeDirAsync
+0x02052D70 FSAMakeQuota
+0x02056B04 FSAMakeQuotaAsync
+0x020522A8 FSAMount
+0x020568D4 FSAMountAsync
+0x02052F1C FSAOpenDir
+0x02056B64 FSAOpenDirAsync
+0x02053624 FSAOpenFile
+0x02056CC4 FSAOpenFileAsync
+0x02055EFC FSAOpenFileByStat
+0x02057930 FSAOpenFileByStatAsync
+0x020537EC FSAOpenFileEx
+0x02056D2C FSAOpenFileExAsync
+0x020530F8 FSAReadDir
+0x02056BBC FSAReadDirAsync
+0x020539CC FSAReadFile
+0x02056D94 FSAReadFileAsync
+0x02053B8C FSAReadFileWithPos
+0x02056DFC FSAReadFileWithPosAsync
+0x020559FC FSARegisterFlushQuota
+0x02057498 FSARegisterFlushQuotaAsync
+0x02054F4C FSARemove
+0x02057278 FSARemoveAsync
+0x020550F4 FSARename
+0x020572D0 FSARenameAsync
+0x020532D4 FSARewindDir
+0x02056C14 FSARewindDirAsync
+0x02055794 FSARollbackQuota
+0x02057440 FSARollbackQuotaAsync
+0x0205593C FSARollbackQuotaForce
+0x02055444 FSARollbackVolume
+0x02057390 FSARollbackVolumeAsync
+0x020542C0 FSASetPosFile
+0x02056F9C FSASetPosFileAsync
+0x02051DA0 FSAShutdown
+0x02054B34 FSATruncateFile
+0x02057164 FSATruncateFileAsync
+0x02052468 FSAUnmount
+0x0205693C FSAUnmountAsync
+0x02053D5C FSAWriteFile
+0x02056E6C FSAWriteFileAsync
+0x02053F1C FSAWriteFileWithPos
+0x02056ED4 FSAWriteFileWithPosAsync
+0x02059E28 FSAddClient
+0x02059A28 FSAddClientEx
+0x020607B0 FSAppendFile
+0x0205BEA4 FSAppendFileAsync
+0x02060274 FSBindMount
+0x0205B0DC FSBindMountAsync
+0x020602E4 FSBindUnmount
+0x0205B3C8 FSBindUnmountAsync
+0x0205A14C FSCancelAllCommands
+0x0205A0D8 FSCancelCommand
+0x02060364 FSChangeDir
+0x0205B5D4 FSChangeDirAsync
+0x02060EB8 FSChangeMode
+0x0205CB88 FSChangeModeAsync
+0x02060B68 FSCloseDir
+0x0205C510 FSCloseDirAsync
+0x020604F0 FSCloseFile
+0x0205B898 FSCloseFileAsync
+0x02059E34 FSDelClient
+0x0205D9F8 FSDumpLastErrorLog
+0x020608A8 FSFlushFile
+0x0205C008 FSFlushFileAsync
+0x020611B0 FSFlushMultiQuota
+0x0205D188 FSFlushMultiQuotaAsync
+0x02060F30 FSFlushQuota
+0x0205CE78 FSFlushQuotaAsync
+0x0205A070 FSGetAsyncResult
+0x0205A064 FSGetClientNum
+0x0205DFF8 FSGetCmdPriority
+0x0205A20C FSGetCurrentCmdBlock
+0x02060CD8 FSGetCwd
+0x0205C760 FSGetCwdAsync
+0x02061310 FSGetDirSize
+0x0205D448 FSGetDirSizeAsync
+0x0205E11C FSGetEmulatedError
+0x02061380 FSGetEntryNum
+0x0205D45C FSGetEntryNumAsync
+0x0205DA00 FSGetErrorCodeForViewer
+0x0205DE60 FSGetFSMessage
+0x020615E4 FSGetFileBlockAddress
+0x0205D874 FSGetFileBlockAddressAsync
+0x020613F0 FSGetFileSystemInfo
+0x0205D470 FSGetFileSystemInfoAsync
+0x020612A0 FSGetFreeSpaceSize
+0x0205D434 FSGetFreeSpaceSizeAsync
+0x0205D9C4 FSGetLastError
+0x0205DE30 FSGetLastErrorCodeForViewer
+0x0206008C FSGetMountSource
+0x0205AA34 FSGetMountSourceAsync
+0x020600FC FSGetMountSourceNext
+0x0205A920 FSGetMountSourceNextAsync
+0x02060928 FSGetPosFile
+0x0205C0BC FSGetPosFileAsync
+0x02061230 FSGetStat
+0x0205D420 FSGetStatAsync
+0x02060A08 FSGetStatFile
+0x0205C248 FSGetStatFileAsync
+0x0205A078 FSGetStateChangeInfo
+0x0205A1E0 FSGetUserData
+0x02061574 FSGetVolumeInfo
+0x0205D748 FSGetVolumeInfoAsync
+0x0205A24C FSGetVolumeState
+0x020597F4 FSInit
+0x0205A080 FSInitCmdBlock
+0x02060A78 FSIsEof
+0x0205C330 FSIsEofAsync
+0x02060D48 FSMakeDir
+0x0205C88C FSMakeDirAsync
+0x020614E0 FSMakeLink
+0x0205D640 FSMakeLinkAsync
+0x02060FB0 FSMakeQuota
+0x0205CC78 FSMakeQuotaAsync
+0x0206017C FSMount
+0x0205AAE4 FSMountAsync
+0x02060AF8 FSOpenDir
+0x0205C3E4 FSOpenDirAsync
+0x020603E4 FSOpenFile
+0x0205B860 FSOpenFileAsync
+0x02061460 FSOpenFileByStat
+0x0205D484 FSOpenFileByStatAsync
+0x0206045C FSOpenFileEx
+0x0205B6D8 FSOpenFileExAsync
+0x02060BE8 FSReadDir
+0x0205C5C4 FSReadDirAsync
+0x02060570 FSReadFile
+0x0205BC34 FSReadFileAsync
+0x020605FC FSReadFileWithPos
+0x0205BC70 FSReadFileWithPosAsync
+0x02061130 FSRegisterFlushQuota
+0x0205D084 FSRegisterFlushQuotaAsync
+0x02060DC8 FSRemove
+0x0205C994 FSRemoveAsync
+0x02061030 FSRemoveQuota
+0x0205CD74 FSRemoveQuotaAsync
+0x02060E48 FSRename
+0x0205CA98 FSRenameAsync
+0x02060C58 FSRewindDir
+0x0205C6AC FSRewindDirAsync
+0x020610B0 FSRollbackQuota
+0x0205CF7C FSRollbackQuotaAsync
+0x0205DF1C FSSetCmdPriority
+0x0205E054 FSSetEmulatedError
+0x02060998 FSSetPosFile
+0x0205C1A4 FSSetPosFileAsync
+0x0205A280 FSSetStateChangeNotification
+0x0205A1B4 FSSetUserData
+0x02059964 FSShutdown
+0x02062264 FSTimeToCalendarTime
+0x02060828 FSTruncateFile
+0x0205BF54 FSTruncateFileAsync
+0x020601F4 FSUnmount
+0x0205AED8 FSUnmountAsync
+0x02060690 FSWriteFile
+0x0205BE34 FSWriteFileAsync
+0x0206071C FSWriteFileWithPos
+0x0205BE70 FSWriteFileWithPosAsync
+0x02066818 HIOClose
+0x02066304 HIOInit
+0x02066598 HIOOpenEx
+0x02066968 HIORead
+0x020669B0 HIOReadAsyncEx
+0x0206653C HIOShutdown
+0x02066B90 HIOWrite
+0x02066BF8 HIOWriteAsyncEx
+0x02009AB8 ICBlockInvalidate
+0x02009A28 ICInvalidateRange
+0x02073DC4 IMDisableAPD
+0x02073F14 IMDisableDim
+0x02073DD0 IMEnableAPD
+0x02073F50 IMEnableDim
+0x02073E84 IMEndAPDVideoMode
+0x02073E18 IMGetAPDPeriod
+0x02074014 IMGetDimEnableDRC
+0x02074008 IMGetDimEnableTV
+0x02073FCC IMGetDimPeriod
+0x02073E30 IMGetTimeBeforeAPD
+0x02073FE4 IMGetTimeBeforeDimming
+0x02073E24 IMIsAPDEnabled
+0x02073F08 IMIsAPDEnabledBySysSettings
+0x02073FD8 IMIsDimEnabled
+0x02073FFC IMSetDimEnableDRC
+0x02073FF0 IMSetDimEnableTV
+0x02073E3C IMStartAPDVideoMode
+0x020737A8 IM_CancelGetEventNotify
+0x02073290 IM_Close
+0x02073720 IM_GetEventNotify
+0x0207381C IM_GetHomeButtonParams
+0x0207338C IM_GetNvParameter
+0x020739A8 IM_GetNvParameterWithoutHandleAndItb
+0x02073494 IM_GetParameter
+0x02073AD8 IM_GetParameters
+0x02073BFC IM_GetRuntimeParameter
+0x02073524 IM_GetTimerRemaining
+0x02073D2C IM_GetTimerRemainingSeconds
+0x02073280 IM_Open
+0x02073628 IM_SetDeviceState
+0x020736A4 IM_SetDeviceStateEx
+0x02073894 IM_SetHomeButtonParams
+0x02073314 IM_SetNvParameter
+0x02073910 IM_SetNvParameterWithoutHandleAndItb
+0x0207341C IM_SetParameter
+0x02073C94 IM_SetRuntimeParameter
+0x02073294 IM_SetSystemPolicy
+0x020735B0 IM_SetTimerElpasedSeconds
+0x0203AD24 IOS_Close
+0x0203AE20 IOS_CloseAsync
+0x0203AF28 IOS_CloseAsyncEx
+0x0203BC6C IOS_Ioctl
+0x0203BE20 IOS_IoctlAsync
+0x0203BFF0 IOS_IoctlAsyncEx
+0x0203C1C0 IOS_Ioctlv
+0x0203C2F0 IOS_IoctlvAsync
+0x0203C43C IOS_IoctlvAsyncEx
+0x0203A980 IOS_Open
+0x0203AAB4 IOS_OpenAsync
+0x0203ABEC IOS_OpenAsyncEx
+0x0203B030 IOS_Read
+0x0203B190 IOS_ReadAsync
+0x0203B30C IOS_ReadAsyncEx
+0x0203B8E0 IOS_Seek
+0x0203B9FC IOS_SeekAsync
+0x0203BB34 IOS_SeekAsyncEx
+0x0203B488 IOS_Write
+0x0203B5E8 IOS_WriteAsync
+0x0203B764 IOS_WriteAsyncEx
+0x0203A79C IPCBufPoolAllocate
+0x0203A598 IPCBufPoolCreate
+0x0203A84C IPCBufPoolFree
+0x0203A8F0 IPCBufPoolGetAttributes
+0x0203CAE8 IPCDriverClose
+0x0203CB38 IPCDriverDisplayStatistics
+0x0203C708 IPCDriverInit
+0x0203C988 IPCDriverOpen
+0x02008BF8 LCAlloc
+0x02008DB0 LCDealloc
+0x02008FB4 LCDisableDMA
+0x02008EF0 LCEnableDMA
+0x02008B18 LCGetAllocatableSize
+0x02009B20 LCGetDMAQueueLength
+0x02008AE0 LCGetMaxSize
+0x02008AE8 LCGetUnallocated
+0x02008924 LCHardwareIsAvailable
+0x02008FE0 LCIsDMAEnabled
+0x0200897C LCLoadDMABlocks
+0x02008A30 LCStoreDMABlocks
+0x02009B2C LCWaitDMAQueue
+0x0206DF58 MCPFlush_Finalize
+0x0206E540 MCPFlush_FlushLockedRootQuota
+0x0206E484 MCPFlush_FlushRootQuota
+0x0206DFDC MCPFlush_GetRootQuotaPath
+0x0206DED4 MCPFlush_Initialize
+0x0206E184 MCPFlush_LockRootQuota
+0x0206E6F4 MCPFlush_RollbackLockedRootQuota
+0x0206E30C MCPFlush_UnlockRootQuota
+0x0206DBC0 MCP_AocCloseTitle
+0x0206D9C8 MCP_AocGetOpenInfo
+0x0206DC3C MCP_AocLockTitle
+0x0206DB2C MCP_AocOpenTitle
+0x0206DD34 MCP_AocTestScanned
+0x0206DCB8 MCP_AocUnlockTitle
+0x02070938 MCP_AppTagCreate
+0x020708C8 MCP_AppTagFlush
+0x020707F4 MCP_AppTagGetEnability
+0x020709A8 MCP_AppTagGetSize
+0x02070B2C MCP_AppTagReadWithPos
+0x02070970 MCP_AppTagRemove
+0x02070900 MCP_AppTagRollback
+0x02070734 MCP_AppTagSetEnability
+0x02070A6C MCP_AppTagTruncateWithPos
+0x02070BFC MCP_AppTagWriteWithPos
+0x0206E9CC MCP_ChangeEcoSettings
+0x0206EB18 MCP_ChangeEcoWDSetting
+0x0206EC68 MCP_ChangeStandbySettings
+0x0206CF24 MCP_ChangeSystemMemoryEmuMode
+0x0206CD54 MCP_ChangeSystemMode
+0x020673A8 MCP_Close
+0x02067470 MCP_CompatCopyFile
+0x020678D0 MCP_CompatExLaunch
+0x02067904 MCP_CompatExPrepareLaunch
+0x020675DC MCP_CompatGetVersion
+0x020679C0 MCP_CompatHaiCreateCompanionFile
+0x02070248 MCP_CompatListOwnedTitles
+0x020677DC MCP_CompatLoadAVFile
+0x0206740C MCP_CompatWagonCreateContext
+0x02067458 MCP_CompatWagonDeleteArchiveHash
+0x02067440 MCP_CompatWagonDeleteContext
+0x020673F4 MCP_CompatWagonDestinationComplete
+0x020673DC MCP_CompatWagonDestinationPrepare
+0x020673C4 MCP_CompatWagonSourceComplete
+0x020673AC MCP_CompatWagonSourcePrepare
+0x0206AC6C MCP_CopyGetRequiredSize
+0x0206B288 MCP_CopyTitleAbort
+0x0206B094 MCP_CopyTitleAsync
+0x0206B0A4 MCP_CopyTitleDoneAsync
+0x0206B09C MCP_CopyTitleWithoutFlushAsync
+0x0206C758 MCP_CreateLinkedTitlePackage
+0x0206AAA4 MCP_DeleteContentAsync
+0x0206C950 MCP_DeleteLinkedTitlePackage
+0x0206A854 MCP_DeleteTicketsAsync
+0x0206A6D0 MCP_DeleteTitleAbort
+0x0206A6C0 MCP_DeleteTitleAsync
+0x0206A6E8 MCP_DeleteTitleDoneAsync
+0x0206A6C8 MCP_DeleteTitleWithoutFlushAsync
+0x0206C184 MCP_DeleteUserData
+0x0206C108 MCP_DeleteUserDataWithException
+0x0206D798 MCP_DemoLaunchGetRemainder
+0x0206DEAC MCP_DeviceList
+0x0206DEBC MCP_DisablePowerOffOnCrash
+0x0206D010 MCP_ExternalStorageLock
+0x0206D108 MCP_ExternalStorageUnlock
+0x020704D0 MCP_FindContentInfos
+0x0206CCAC MCP_FormatExternalStorage
+0x0206DEB4 MCP_FullDeviceList
+0x0206F348 MCP_Get4SecondOffStatus
+0x02070688 MCP_GetCompatDeviceId
+0x02070310 MCP_GetContentInfos
+0x0206D60C MCP_GetDefaultEcoTitleId
+0x0206D4E0 MCP_GetDefaultTitleId
+0x020705DC MCP_GetDeviceId
+0x0206EA54 MCP_GetEcoSettings
+0x0206EBA8 MCP_GetEcoWDSetting
+0x0206D200 MCP_GetErrorCodeForViewer
+0x0206CEC8 MCP_GetFastRelaunchEnable
+0x02069524 MCP_GetInstalledContentCount
+0x02069350 MCP_GetInstalledContentIndices
+0x0206FF94 MCP_GetInstalledTitleVersion
+0x0206D254 MCP_GetLastRawError
+0x0206894C MCP_GetOverlayAppInfo
+0x02067D40 MCP_GetOwnTitleInfo
+0x0206FA2C MCP_GetPatchedTitleId
+0x02069110 MCP_GetPreciseTitleSize
+0x0206F54C MCP_GetSATALimiterState
+0x0206ECF8 MCP_GetStandbySettings
+0x0206BFB8 MCP_GetSysProdSettings
+0x0206F384 MCP_GetSyslogFilterMask
+0x0206CC50 MCP_GetSystemCrashFlag
+0x0206CB20 MCP_GetSystemCrashLog
+0x0206CBA0 MCP_GetSystemCrashLogDescription
+0x0206CAA0 MCP_GetSystemLog
+0x0206CFB4 MCP_GetSystemMemoryEmuMode
+0x0206CDE4 MCP_GetSystemMode
+0x02070264 MCP_GetSystemVersion
+0x02069C14 MCP_GetTicketItemRights
+0x02069A54 MCP_GetTicketViews
+0x02069698 MCP_GetTitleId
+0x02068714 MCP_GetTitleInfo
+0x02068850 MCP_GetTitleInfoByDevice
+0x020684F8 MCP_GetTitleInfoByTitleAndDevice
+0x020687A8 MCP_GetTitleInfoByTitleAndDeviceType
+0x02068604 MCP_GetTitleInfoByTitleAndIndexedDevice
+0x0206F674 MCP_GetTitleSATALimiterState
+0x02068F88 MCP_GetTitleSize
+0x0206C190 MCP_InitializeIvs
+0x02070168 MCP_InstallCleanupAbort
+0x02069A3C MCP_InstallCleanupAsync
+0x02069A48 MCP_InstallCleanupWithoutFlushAsync
+0x0206A510 MCP_InstallGetAocSize
+0x0206A320 MCP_InstallGetAocSize2
+0x0206FE50 MCP_InstallGetAvailableUpdateOp
+0x02069E94 MCP_InstallGetInfo
+0x02069E44 MCP_InstallGetProgress
+0x0206A19C MCP_InstallGetRequiredSize
+0x0206A018 MCP_InstallGetSize
+0x0206FB8C MCP_InstallGetTargetDevice
+0x0206B2A0 MCP_InstallSetCache
+0x0206FAE8 MCP_InstallSetTargetDevice
+0x0206ADF0 MCP_InstallSetTargetUsb
+0x020698C4 MCP_InstallTitleAbort
+0x02069744 MCP_InstallTitleAsync
+0x020698B8 MCP_InstallTitleWithPatchMountAsync
+0x0206FC30 MCP_InstallUtilGetTitleEnability
+0x0206FF08 MCP_InstallUtilIsResumeAvailable
+0x020676EC MCP_LaunchCompat
+0x0207022C MCP_ListOwnedTitles
+0x02070CCC MCP_NominalTitleGetTitleId
+0x02067398 MCP_Open
+0x0206C544 MCP_PatchCheckTitleVersion
+0x0206C3AC MCP_PatchCheckTitleVersionByPath
+0x0206C6A4 MCP_PatchDeleteVersionList
+0x0206C268 MCP_PatchGetLatestVersion
+0x0206C2B8 MCP_PatchGetVersion
+0x02070180 MCP_PatchGetVersionListVersion
+0x0206F734 MCP_PatchSetLatestVersion
+0x0206F720 MCP_PatchSetRequiredVersion
+0x0206F748 MCP_PatchSetVersionListVersion
+0x0206D354 MCP_PreloadTitleFolder
+0x0206F53C MCP_RequestPowerOff
+0x0206E8A8 MCP_ResetOnPanicEnable
+0x0206E934 MCP_ResetOnPanicState
+0x0206D6A4 MCP_RightCheckLaunchable
+0x0206D578 MCP_SetDefaultEcoTitleId
+0x0206D44C MCP_SetDefaultTitleId
+0x0206CE38 MCP_SetFastRelaunchEnable
+0x0206F5E4 MCP_SetSATALimiterState
+0x0206C060 MCP_SetSysProdSettings
+0x0206F41C MCP_SetSyslogFilterMask
+0x02067AB0 MCP_TitleCount
+0x02067AF0 MCP_TitleList
+0x02068180 MCP_TitleListByAppAndDevice
+0x020682A4 MCP_TitleListByAppAndDeviceType
+0x02067BD4 MCP_TitleListByAppType
+0x0206835C MCP_TitleListByAppTypeFlagsAndDeviceType
+0x02067FE4 MCP_TitleListByDevice
+0x020680D0 MCP_TitleListByDeviceType
+0x02068BFC MCP_TitleListByUniqueId
+0x02068CB0 MCP_TitleListByUniqueIdAndDeviceType
+0x02068DAC MCP_TitleListByUniqueIdAndDeviceTypeAndAppType
+0x02068EB0 MCP_TitleListByUniqueIdAndIndexedDeviceAndAppType
+0x02069304 MCP_TitleListUpdateCancel
+0x020692B0 MCP_TitleListUpdateGetNext
+0x0206CC20 MCP_TriggerCrashLogCollection
+0x0206CC38 MCP_TriggerCrashLogCollectionEx
+0x0206A938 MCP_UninstallTitleAsync
+0x0206B2A8 MCP_UpdateCheckAsync
+0x0206BDFC MCP_UpdateCheckContext
+0x0206BD68 MCP_UpdateCheckResume
+0x0206B414 MCP_UpdateCheckUpdaterVersion
+0x0206BC6C MCP_UpdateClearContextAsync
+0x0206BF20 MCP_UpdateContextReadUserFlag
+0x0206BE90 MCP_UpdateContextSetUserFlag
+0x0206B554 MCP_UpdateGetPathByAppTypeAsync
+0x0206BCC0 MCP_UpdateGetProgress
+0x0206BADC MCP_UpdateGetUpdater
+0x0206B9D0 MCP_UpdateLaunchUpdater
+0x0206BAF8 MCP_UpdatePerformAsync
+0x0206B798 MCP_UpdatePrepareUpdaterAsync
+0x0206BA38 MCP_UpdateSetUpdater
+0x0206F114 MCP_WagonUCheckArchiveExists
+0x0206EE2C MCP_WagonUCreateArchive
+0x0206F1A4 MCP_WagonUDeleteArchive
+0x0206F050 MCP_WagonUEstimateArchiveSize
+0x0206EF94 MCP_WagonUEstimateArchiveSizeEx
+0x0206F234 MCP_WagonUFormatDestination
+0x0206F074 MCP_WagonUGetProgress
+0x0206EEE0 MCP_WagonUInstallArchive
+0x0206F2B4 MCP_WagonUSetSessionId
+0x02038AF0 MEMAddBlockHeapTracking
+0x020357F8 MEMAdjustExpHeap
+0x020369F0 MEMAdjustFrmHeap
+0x02033070 MEMAllocFromAllocator
+0x02039114 MEMAllocFromBlockHeapAt
+0x0203925C MEMAllocFromBlockHeapEx
+0x02034AB4 MEMAllocFromExpHeapEx
+0x0203644C MEMAllocFromFrmHeapEx
+0x020388EC MEMAllocFromUnitHeap
+0x02037FCC MEMAppendListObject
+0x02038AD0 MEMCalcHeapSizeForUnitHeap
+0x020358EC MEMCheckExpHeap
+0x02035B34 MEMCheckForMBlockExpHeap
+0x02037D04 MEMCheckHeap
+0x0203855C MEMCountFreeBlockForUnitHeap
+0x02034978 MEMCreateExpHeapEx
+0x02036310 MEMCreateFrmHeapEx
+0x02038708 MEMCreateUnitHeapEx
+0x02033380 MEMCreateUserHeapHandle
+0x02038DD0 MEMDestroyBlockHeap
+0x02034A3C MEMDestroyExpHeap
+0x020363D4 MEMDestroyFrmHeap
+0x02038874 MEMDestroyUnitHeap
+0x02037C04 MEMDumpHeap
+0x02037914 MEMFindContainHeap
+0x02037A7C MEMFindParentHeap
+0x02036894 MEMFreeByStateToFrmHeap
+0x020330DC MEMFreeToAllocator
+0x02039438 MEMFreeToBlockHeap
+0x02034EB4 MEMFreeToExpHeap
+0x020365A4 MEMFreeToFrmHeap
+0x020389E8 MEMFreeToUnitHeap
+0x0203579C MEMGetAllocDirForMBlockExpHeap
+0x0203532C MEMGetAllocModeForExpHeap
+0x02039908 MEMGetAllocatableSizeForBlockHeapEx
+0x0203508C MEMGetAllocatableSizeForExpHeapEx
+0x0203665C MEMGetAllocatableSizeForFrmHeapEx
+0x02033340 MEMGetArena
+0x02033250 MEMGetBaseHeapHandle
+0x02036C9C MEMGetFillValForHeap
+0x02035558 MEMGetGroupIDForExpHeap
+0x02035744 MEMGetGroupIDForMBlockExpHeap
+0x02038398 MEMGetNextListObject
+0x0203849C MEMGetNthListObject
+0x0203841C MEMGetPrevListObject
+0x020356EC MEMGetSizeForMBlockExpHeap
+0x02039804 MEMGetTotalFreeSizeForBlockHeap
+0x02034FD0 MEMGetTotalFreeSizeForExpHeap
+0x020397A0 MEMGetTrackingLeftInBlockHeap
+0x020331B0 MEMInitAllocatorForBlockHeap
+0x020331F8 MEMInitAllocatorForDefaultHeap
+0x02033150 MEMInitAllocatorForExpHeap
+0x02033170 MEMInitAllocatorForFrmHeap
+0x02033190 MEMInitAllocatorForUnitHeap
+0x02038C6C MEMInitBlockHeap
+0x02037EC0 MEMInitList
+0x02038184 MEMInsertListObject
+0x020380AC MEMPrependListObject
+0x02036794 MEMRecordStateForFrmHeap
+0x020382A4 MEMRemoveListObject
+0x02034C18 MEMResizeForMBlockExpHeap
+0x02036AC0 MEMResizeForMBlockFrmHeap
+0x02035278 MEMSetAllocModeForExpHeap
+0x02033290 MEMSetBaseHeapHandle
+0x02037E34 MEMSetFillValForHeap
+0x0203548C MEMSetGroupIDForExpHeap
+0x020353CC MEMUseMarginOfAlignmentForExpHeap
+0x020355F4 MEMVisitAllocatedForExpHeap
+0x02036100 MEMiGetFreeEndForFrmHeap
+0x02036098 MEMiGetFreeStartForFrmHeap
+0x0203520C MEMiIsEmptyExpHeap
+0x02072988 MPDequeTask
+0x02072A10 MPDequeTasks
+0x02072898 MPEnqueTask
+0x02072E78 MPGetTaskInfo
+0x02072300 MPGetTaskQInfo
+0x02073004 MPGetTaskUserData
+0x02072E3C MPInitTask
+0x02072240 MPInitTaskQ
+0x02072BDC MPPrintTaskQStats
+0x02072ADC MPResetTaskQ
+0x02072EA0 MPRunTask
+0x020723DC MPRunTasksFromTaskQ
+0x0207300C MPSetTaskUserData
+0x02072370 MPStartTaskQ
+0x0207258C MPStopTaskQ
+0x02072E70 MPTermTask
+0x020722F8 MPTermTaskQ
+0x02072600 MPWaitTaskQ
+0x020726F0 MPWaitTaskQWithTimeout
+0x0204B930 MasterAgent_LoadNotify
+0x02074214 NSYSTEST_Do
+0x0202254C OSAcquireSpinLock
+0x02008100 OSAddAtomic
+0x02007ACC OSAddAtomic64
+0x020074B8 OSAllocFromSystem
+0x020307B0 OSAllocSysHealth
+0x0201D574 OSAllocVirtAddr
+0x02008138 OSAndAtomic
+0x02007C04 OSAndAtomic64
+0x0202F0DC OSBlockLogSave
+0x0201C278 OSBlockMove
+0x0201C694 OSBlockSet
+0x0203146C OSBlockThreadsOnExit
+0x0202CE20 OSCalendarTimeToTicks
+0x0200600C OSCancelAlarm
+0x0200687C OSCancelAlarms
+0x0202C090 OSCancelThread
+0x0202B318 OSCheckActiveThreads
+0x020221F0 OSCheckStopwatch
+0x0202A928 OSCheckThreadStackUsage
+0x02009E38 OSClearContext
+0x0202B3D4 OSClearStack
+0x0202B568 OSClearThreadStackUsage
+0x0201D604 OSCodegenCopy
+0x02022E0C OSCoherencyBarrier
+0x02008188 OSCompareAndSwapAtomic
+0x02007DD0 OSCompareAndSwapAtomic64
+0x020081B0 OSCompareAndSwapAtomicEx
+0x02007E80 OSCompareAndSwapAtomicEx64
+0x02012E18 OSConsoleWrite
+0x0202BE74 OSContinueThread
+0x02030C10 OSCopyFromClipboard
+0x02030B3C OSCopyToClipboard
+0x02004E00 OSCreateAlarm
+0x02004F34 OSCreateAlarmEx
+0x0202A88C OSCreateThread
+0x0202A8B4 OSCreateThreadType
+0x020315DC OSDeRegisterSystemModeCallback
+0x0202AD44 OSDetachThread
+0x0202E95C OSDisableAllThreadFPUException
+0x0202E9EC OSDisableContextFPUException
+0x020192C4 OSDisableInterrupts
+0x0201CF40 OSDisableOverlayArena
+0x0201CFAC OSDisableOverlayArenaDev
+0x0201CF9C OSDisableOverlayArenaWithTimeout
+0x0201D05C OSDisableOverlayArenaWithTimeoutDev
+0x0202E8F4 OSDisableThreadFPUException
+0x0200D154 OSDriver_CopyFromSaveArea
+0x0200D2A4 OSDriver_CopyToSaveArea
+0x0200C4F4 OSDriver_Deregister
+0x0200BF4C OSDriver_Register
+0x02009B4C OSDumpContext
+0x020222E0 OSDumpStopwatch
+0x0200FFD0 OSDynLoad_Acquire
+0x0200FFD8 OSDynLoad_AcquireContainingModule
+0x020118C8 OSDynLoad_AddNofifyCallback
+0x020117B8 OSDynLoad_AddNotifyCallback
+0x020118CC OSDynLoad_DelNotifyCallback
+0x02011444 OSDynLoad_FindExport
+0x02012C08 OSDynLoad_FindTag
+0x0200D524 OSDynLoad_GetAllocator
+0x0200D8E4 OSDynLoad_GetLoaderHeapStatistics
+0x02011614 OSDynLoad_GetModuleName
+0x02012658 OSDynLoad_GetNumberOfRPLs
+0x020126D4 OSDynLoad_GetRPLInfo
+0x0200D704 OSDynLoad_GetTLSAllocator
+0x020101B8 OSDynLoad_IsModuleLoaded
+0x02012390 OSDynLoad_Release
+0x0200D43C OSDynLoad_SetAllocator
+0x0200D5E4 OSDynLoad_SetTLSAllocator
+0x02003264 OSEffectiveToPhysical
+0x0202E814 OSEnableAllThreadFPUException
+0x02020978 OSEnableForegroundExit
+0x020208BC OSEnableHomeButtonMenu
+0x020193B8 OSEnableInterrupts
+0x0201CB68 OSEnableOverlayArena
+0x0201CBF0 OSEnableOverlayArenaDev
+0x0201CBD0 OSEnableOverlayArenaWithTimeout
+0x0201CCAC OSEnableOverlayArenaWithTimeoutDev
+0x0202E7A4 OSEnableThreadFPUException
+0x0200ACD8 OSEnforceInorderIO
+0x0202A9D8 OSExitThread
+0x02032C1C OSFastCond_Init
+0x02033000 OSFastCond_Signal
+0x02032C78 OSFastCond_Wait
+0x02031FF0 OSFastMutex_Init
+0x02031D20 OSFastMutex_Lock
+0x02031EF8 OSFastMutex_TryLock
+0x02031DF8 OSFastMutex_Unlock
+0x020173F8 OSFatal
+0x0201BF3C OSForceFullRelaunch
+0x02030948 OSFreeSysHealth
+0x020075BC OSFreeToSystem
+0x0201D580 OSFreeVirtAddr
+0x0202C51C OSGetActiveThreadLink
+0x02004B1C OSGetAlarmFromQueue
+0x02006C3C OSGetAlarmUserData
+0x0200783C OSGetArgcArgv
+0x0200799C OSGetAtomic64
+0x0201D4AC OSGetAvailPhysAddrRange
+0x0200391C OSGetBootPMFlags
+0x020202A4 OSGetCallArgs
+0x0201D52C OSGetCodegenCore
+0x0201D550 OSGetCodegenMode
+0x0201D4EC OSGetCodegenVirtAddrRange
+0x020031CC OSGetConsoleType
+0x0200A8E0 OSGetCoreCount
+0x0200A8E8 OSGetCoreId
+0x02016880 OSGetCrashDumpType
+0x02015E94 OSGetCrashInfo
+0x02009F44 OSGetCurrentContext
+0x0200A6F0 OSGetCurrentFPUContext
+0x02003934 OSGetCurrentPMState
+0x0202C5C0 OSGetCurrentThread
+0x0201D46C OSGetDataPhysAddrRange
+0x0200B1E4 OSGetDefaultAppIOQueue
+0x0202A1B0 OSGetDefaultThread
+0x0201F170 OSGetForegroundBucket
+0x02018040 OSGetForegroundBucketFreeArea
+0x02031CC8 OSGetHardwareBoardRevision
+0x02031CB8 OSGetHardwareBoardType
+0x02031C78 OSGetHardwareVersion
+0x02018C2C OSGetInfo
+0x02015D2C OSGetLastError
+0x02003928 OSGetLastPMState
+0x0200A8A8 OSGetMainCoreId
+0x0201D42C OSGetMapVirtAddrRange
+0x0200763C OSGetMemBound
+0x02003320 OSGetOSID
+0x020032F8 OSGetPFID
+0x0202F18C OSGetPerformanceNumbers
+0x0202051C OSGetProcessInfo
+0x020180CC OSGetScreenCapturePermission
+0x02018154 OSGetScreenCapturePermissionEx
+0x0201D5F8 OSGetSecCodeGenMode
+0x02007900 OSGetSecurityLevel
+0x02021F74 OSGetSemaphoreCount
+0x0202FE5C OSGetSharedData
+0x0201F1D8 OSGetShutdownFlags
+0x0201F1CC OSGetShutdownReason
+0x0200A720 OSGetStackPointer
+0x020151AC OSGetSymbolName
+0x02030958 OSGetSysHealth
+0x020031C0 OSGetSystemInfo
+0x0201F164 OSGetSystemMessageQueue
+0x02031498 OSGetSystemMode
+0x0202D1B0 OSGetSystemTick
+0x0202D198 OSGetSystemTime
+0x02030CE0 OSGetSystemVersion
+0x0202BC1C OSGetThreadAffinity
+0x0202BD5C OSGetThreadCoreTime
+0x0202BD10 OSGetThreadName
+0x0202B230 OSGetThreadPriority
+0x0202B64C OSGetThreadSpecific
+0x0202C7D0 OSGetTick
+0x0202C78C OSGetTime
+0x02003310 OSGetTitleID
+0x02003304 OSGetUPID
+0x0200A230 OSGetUserStackPointer
+0x02018AB4 OSHandle_AddRef
+0x02018938 OSHandle_Alloc
+0x020188B8 OSHandle_InitTable
+0x02018B38 OSHandle_Release
+0x020189EC OSHandle_TranslateAndAddRef
+0x02004A80 OSInitAlarmQueue
+0x02004AE0 OSInitAlarmQueueEx
+0x0201E854 OSInitCond
+0x0201E8C8 OSInitCondEx
+0x0200A0F4 OSInitContext
+0x0202D21C OSInitCoroutine
+0x02016B1C OSInitEvent
+0x02016BB0 OSInitEventEx
+0x0201D610 OSInitMessageQueue
+0x0201D6E8 OSInitMessageQueueEx
+0x0201DDBC OSInitMutex
+0x0201DE40 OSInitMutexEx
+0x02022978 OSInitRendezvous
+0x02021BEC OSInitSemaphore
+0x02021C78 OSInitSemaphoreEx
+0x020224E4 OSInitSpinLock
+0x0202204C OSInitStopwatch
+0x0202B760 OSInitThreadQueue
+0x0202BAD4 OSInitThreadQueueEx
+0x0201B864 OSIopShell_InjectCommand
+0x02009000 OSIsAddressRangeDCValid
+0x0201D0D4 OSIsAddressValid
+0x0203147C OSIsBlockThreadsOnExit
+0x020038AC OSIsColdBoot
+0x0200390C OSIsCompatBoot
+0x0204BB84 OSIsDebuggerInitialized
+0x020031D8 OSIsDebuggerPresent
+0x020038DC OSIsECOBoot
+0x02003954 OSIsECOMode
+0x0201C878 OSIsEnabledOverlayArena
+0x0201C884 OSIsEnabledOverlayArenaDev
+0x020203A0 OSIsHomeButtonMenuEnabled
+0x020192D4 OSIsInterruptEnabled
+0x0200A8B0 OSIsMainCore
+0x020038CC OSIsNormalBoot
+0x020038FC OSIsOffBoot
+0x02003940 OSIsProdMode
+0x0202853C OSIsSchedulerLocked
+0x020038BC OSIsSelfRefreshBoot
+0x020038EC OSIsStandbyBoot
+0x0202B8E8 OSIsThreadSuspended
+0x0202B97C OSIsThreadTerminated
+0x0202AAE8 OSJoinThread
+0x0201BCD8 OSLaunchTitleByPathl
+0x0201BDF0 OSLaunchTitleByPathv
+0x0201BBA8 OSLaunchTitlel
+0x0201BCC0 OSLaunchTitlev
+0x0200A65C OSLoadContext
+0x0202D32C OSLoadCoroutine
+0x0200A2EC OSLoadFPUContext
+0x0201E1D0 OSLockMutex
+0x0202EB08 OSLogArgs
+0x0202EB04 OSLogBuffer
+0x0202EB0C OSLogFunc
+0x0202EB10 OSLogPrintf
+0x0202EC30 OSLogReport
+0x0202EBF0 OSLogRetrieve
+0x0202F0E0 OSLogSaveCrashDump
+0x0202F134 OSLogSetFilterPolicy
+0x0201D5D4 OSMapMemory
+0x02022E00 OSMemoryBarrier
+0x0200AC80 OSModifyRegister16
+0x0200811C OSOrAtomic
+0x02007B68 OSOrAtomic64
+0x020168B4 OSPanic
+0x0201DC94 OSPeekMessage
+0x0201D58C OSQueryVirtAddr
+0x0200ABC8 OSReadRegister16
+0x0200ABB0 OSReadRegister32
+0x02015FD4 OSRebootCrash
+0x0201DA60 OSReceiveMessage
+0x0203149C OSRegisterSystemModeCallback
+0x0201FCB8 OSReleaseForeground
+0x020228E4 OSReleaseSpinLock
+0x02014C88 OSReport
+0x02014B30 OSReportInfo
+0x02014BDC OSReportVerbose
+0x02014A8C OSReportWarn
+0x0201F92C OSRequestFastExit
+0x0202A214 OSReschedule
+0x02017078 OSResetEvent
+0x02022288 OSResetStopwatch
+0x02015EF0 OSRestartCrashedApp
+0x0201BE14 OSRestartGame
+0x020193DC OSRestoreInterrupts
+0x0202AEB0 OSResumeThread
+0x0202BA18 OSRunThread
+0x02031488 OSRunThreadsOnExit
+0x0200A508 OSSaveContext
+0x0202D228 OSSaveCoroutine
+0x0200A3F8 OSSaveFPUContext
+0x0201FCB4 OSSavesDone_ReadyToRelease
+0x02021568 OSScreenClearBufferEx
+0x02020C60 OSScreenEnableEx
+0x02021480 OSScreenFlipBuffersEx
+0x020212F8 OSScreenGetBufferSizeEx
+0x0202125C OSScreenInit
+0x02021B24 OSScreenPutFontEx
+0x02021614 OSScreenPutPixelEx
+0x02021354 OSScreenSetBufferEx
+0x020212C4 OSScreenShutdown
+0x0201FF58 OSSendAppSwitchRequest
+0x02030748 OSSendFatalError
+0x0201D724 OSSendMessage
+0x02020680 OSSendPolicyRequest
+0x02005010 OSSetAlarm
+0x020054E8 OSSetAlarmEx
+0x020067C8 OSSetAlarmTag
+0x02006BBC OSSetAlarmUserData
+0x02007A38 OSSetAtomic64
+0x02016884 OSSetCrashDumpType
+0x02009E60 OSSetCurrentContext
+0x0200A6FC OSSetCurrentFPUContext
+0x0202E6F8 OSSetDABR
+0x0202E6BC OSSetExceptionCallback
+0x0202E6CC OSSetExceptionCallbackEx
+0x0202E730 OSSetIABR
+0x02018BE0 OSSetInfo
+0x02007718 OSSetMemBound
+0x0201529C OSSetPanicCallback
+0x0201F024 OSSetPerformanceMonitor
+0x020059E4 OSSetPeriodicAlarm
+0x02005DE8 OSSetPeriodicAlarmEx
+0x02018084 OSSetScreenCapturePermission
+0x020180F4 OSSetScreenCapturePermissionEx
+0x02023068 OSSetSwitchThreadCallback
+0x0202BB44 OSSetThreadAffinity
+0x0202C20C OSSetThreadCancelState
+0x0202C244 OSSetThreadCleanupCallback
+0x0202C320 OSSetThreadDeallocator
+0x0202BCAC OSSetThreadName
+0x0202B0B0 OSSetThreadPriority
+0x0202C3FC OSSetThreadRunQuantum
+0x0202B5CC OSSetThreadSpecific
+0x0202B4B4 OSSetThreadStackUsage
+0x02003ADC OSShutdown
+0x0201EAF4 OSSignalCond
+0x02016BEC OSSignalEvent
+0x02016DF4 OSSignalEventAll
+0x02021EB0 OSSignalSemaphore
+0x0202AF6C OSSleepThread
+0x0202B7C4 OSSleepTicks
+0x02022098 OSStartStopwatch
+0x020220FC OSStopStopwatch
+0x0202F280 OSStopWatchLap
+0x0202F2F4 OSStopWatchReset
+0x0202F1D0 OSStopWatchStart
+0x0202F21C OSStopWatchStop
+0x020152E8 OSSupressConsoleOutput
+0x0202BF24 OSSuspendThread
+0x02008170 OSSwapAtomic
+0x02007D3C OSSwapAtomic64
+0x0202D1DC OSSwitchCoroutine
+0x0200A780 OSSwitchFiber
+0x0200A814 OSSwitchFiberEx
+0x0201D5EC OSSwitchSecCodeGenMode
+0x0200A728 OSSwitchStack
+0x02008208 OSTestAndClearAtomic
+0x02008020 OSTestAndClearAtomic64
+0x020081E0 OSTestAndSetAtomic
+0x02007F3C OSTestAndSetAtomic64
+0x0202C1B8 OSTestThreadCancel
+0x0202F9B8 OSTest_Do
+0x0202CAFC OSTicksToCalendarTime
+0x0202262C OSTryAcquireSpinLock
+0x02022748 OSTryAcquireSpinLockWithTimeout
+0x0201E674 OSTryLockMutex
+0x02021DF8 OSTryWaitSemaphore
+0x0202907C OSUninterruptibleSpinLock_Acquire
+0x02029448 OSUninterruptibleSpinLock_Release
+0x02029168 OSUninterruptibleSpinLock_TryAcquire
+0x02029294 OSUninterruptibleSpinLock_TryAcquireWithTimeout
+0x0201E2C4 OSUnlockMutex
+0x0201D5E0 OSUnmapMemory
+0x02014D18 OSVReport
+0x020061BC OSWaitAlarm
+0x0201E904 OSWaitCond
+0x02016F7C OSWaitEvent
+0x02017228 OSWaitEventWithTimeout
+0x0202D028 OSWaitMicroseconds
+0x020229E0 OSWaitRendezvous
+0x02022ACC OSWaitRendezvousWithTimeout
+0x02021D10 OSWaitSemaphore
+0x0202B010 OSWakeupThread
+0x0200AC24 OSWriteRegister16
+0x0200AC0C OSWriteRegister32
+0x02008154 OSXorAtomic
+0x02007CA0 OSXorAtomic64
+0x0202A2CC OSYieldThread
+0x020004D8 PMBegin
+0x02000540 PMCycles
+0x02000524 PMEnd
+0x0200054C PMInstructions
+0x02000544 PML1FetchMisses
+0x02000548 PML1MissCycles
+0x0200034C PPCAndCMsr
+0x02000340 PPCAndMsr
+0x020002D4 PPCDisableSpeculation
+0x0200039C PPCEieio
+0x020002BC PPCEnableSpeculation
+0x0200025C PPCHalt
+0x020004C8 PPCIsync
+0x02000388 PPCMfdec
+0x02000480 PPCMfdmaL
+0x02000478 PPCMfdmaU
+0x02000428 PPCMffpscr
+0x02000358 PPCMfhid0
+0x02000368 PPCMfhid1
+0x02000450 PPCMfhid2
+0x020004B0 PPCMfhid4
+0x02000370 PPCMfl2cr
+0x020003B8 PPCMfmmcr0
+0x020003C8 PPCMfmmcr1
+0x02000324 PPCMfmsr
+0x020004C0 PPCMfpir
+0x020003D8 PPCMfpmc1
+0x020003E8 PPCMfpmc2
+0x020003F8 PPCMfpmc3
+0x02000408 PPCMfpmc4
+0x02000498 PPCMfpvr
+0x02000418 PPCMfsia
+0x020004D0 PPCMfsprg0
+0x02000460 PPCMfwpar
+0x02000258 PPCMtdec
+0x02000490 PPCMtdmaL
+0x02000488 PPCMtdmaU
+0x02000438 PPCMtfpscr
+0x02000360 PPCMthid0
+0x02000458 PPCMthid2
+0x020002EC PPCMthid4
+0x02000378 PPCMtl2cr
+0x020003C0 PPCMtmmcr0
+0x020003D0 PPCMtmmcr1
+0x0200032C PPCMtmsr
+0x020003E0 PPCMtpmc1
+0x020003F0 PPCMtpmc2
+0x02000400 PPCMtpmc3
+0x02000410 PPCMtpmc4
+0x02000420 PPCMtsia
+0x02000470 PPCMtwpar
+0x02000334 PPCOrMsr
+0x020004A0 PPCSetFpIEEEMode
+0x020004A8 PPCSetFpNonIEEEMode
+0x02000390 PPCSync
+0x02071484 UCClose
+0x02071DA0 UCDeleteSysConfig
+0x02071D84 UCDeleteSysConfigAsync
+0x02072064 UCListSysConfig
+0x02071E80 UCListSysConfigAsync
+0x02071384 UCOpen
+0x02072238 UCQuerySysConfig
+0x0207206C UCQuerySysConfigAsync
+0x020716A8 UCReadSysConfig
+0x02071488 UCReadSysConfigAsync
+0x02071AD4 UCWriteSysConfig
+0x02071AB8 UCWriteSysConfigAsync
+0x02000AB0 _Exit
+0x0205141C __FSAShimAllocateBuffer
+0x02051BD4 __FSAShimCheckClientHandle
+0x0204F8E0 __FSAShimDecodeIosErrorToFsaStatus
+0x020519E4 __FSAShimFreeBuffer
+0x02006EDC __KernelAllocateTimer
+0x02006EE8 __KernelFreeTimer
+0x02018DE0 __KernelGetInfo
+0x02006EC4 __KernelPrimeTimer
+0x020190A4 __KernelSendICI
+0x02007898 __KernelSetUserModeExHandler
+0x02006ED0 __KernelStopTimer
+0x02022CE8 __OSAcquireIdLock
+0x02018240 __OSAppendCopyData
+0x020282B4 __OSBoostThreadPriority
+0x0202D0E8 __OSCalendarTimeToPOSIXTime
+0x02019440 __OSClearAndEnableInterrupt
+0x02015E60 __OSClearAppCrash
+0x0201820C __OSClearCopyData
+0x02017AE0 __OSClearSavedFrame
+0x02016888 __OSConsoleWrite
+0x0202A900 __OSCreateThreadType
+0x0202837C __OSDeboostThreadPrioriy
+0x02019428 __OSDisableInterrupt
+0x02025014 __OSDisableScheduler
+0x02029D7C __OSDumpActiveThreads
+0x02025074 __OSEnableScheduler
+0x02022C80 __OSFairSpinLock
+0x02022CA4 __OSFairSpinUnlock
+0x02015DBC __OSGetAppCrashControl
+0x020033C0 __OSGetAppFlags
+0x02018384 __OSGetCopyArea
+0x02018354 __OSGetCopyDataPtr
+0x0201831C __OSGetCopyDataSize
+0x02016210 __OSGetCosReportMasks
+0x020152B4 __OSGetCrashDetailLevel
+0x02016304 __OSGetCrashRecovery
+0x02025318 __OSGetEffectivePriority
+0x0201928C __OSGetKernelStatistics
+0x02018D54 __OSGetProcDataBounds
+0x02020988 __OSGetProcessSDKVersion
+0x0201870C __OSGetSavedAudioFlags
+0x02017CD0 __OSGetSavedFrame
+0x02017D90 __OSGetSavedFrameA
+0x02017E58 __OSGetSavedFrameB
+0x0201856C __OSGetSavedFrameGammaA
+0x0201863C __OSGetSavedFrameGammaB
+0x02017BF8 __OSGetSavedFramePtr
+0x02017C74 __OSGetSavedFramePtrForRead
+0x02017C9C __OSGetSavedFramePtrForWrite
+0x02017924 __OSGetSavedFrames
+0x0201797C __OSGetSavedFramesA
+0x02017990 __OSGetSavedFramesB
+0x0202F380 __OSGetStatistics
+0x0202084C __OSGetSwitchTarget
+0x02014F08 __OSGetSymbolName
+0x02016164 __OSGetTestSetting
+0x020209C4 __OSGetTitleVersion
+0x02018194 __OSGetTransitionAudioBuffer
+0x020181FC __OSGetTransitionAudioSize
+0x02018CD4 __OSGetWriteGatherRegs
+0x02003964 __OSHandleECOPowerEventOnBoot
+0x02007950 __OSHandlePowerEvents
+0x020205DC __OSIsProcessRunning
+0x02023138 __OSLockScheduler
+0x0202F35C __OSLogReportKernel
+0x02003B4C __OSPhysicalToEffectiveCached
+0x02003B58 __OSPhysicalToEffectiveUncached
+0x0200AB9C __OSReadRegister32Ex
+0x020209CC __OSRecycle
+0x02022D1C __OSReleaseIdLock
+0x0202A268 __OSReschedule
+0x02017BC4 __OSResetSavedFrame
+0x020182D0 __OSResizeCopyData
+0x02020A38 __OSRootLoadShared
+0x0201647C __OSSaveCosReportMasks
+0x020166F8 __OSSaveCrashDetailLevel
+0x02016338 __OSSaveCrashRecovery
+0x02018DAC __OSSaveWGData
+0x0201D914 __OSSendMessageInternal
+0x0202C64C __OSSetAbsoluteSystemTime
+0x0202C6AC __OSSetAbsoluteSystemTimeUserMode
+0x02009EBC __OSSetAndLoadContext
+0x02015E14 __OSSetAppCrashControl
+0x0201F030 __OSSetCoreTrace
+0x0201628C __OSSetCosReportMasks
+0x020166C4 __OSSetCrashDetailLevel
+0x020162D0 __OSSetCrashRecovery
+0x02009EA4 __OSSetCurrentUserContext
+0x0202E6D0 __OSSetDABR
+0x02015B74 __OSSetDumpMode
+0x0202E708 __OSSetIABR
+0x020190EC __OSSetInterruptHandler
+0x02015D74 __OSSetLastError
+0x0201FF44 __OSSetLaunchTimeout
+0x0201871C __OSSetSavedAudioFlags
+0x020179A4 __OSSetSavedFrame
+0x020183F8 __OSSetSavedFrameGamma
+0x02016018 __OSSetTestSetting
+0x020181E0 __OSSetTransitionAudioSize
+0x02022C80 __OSSpinLock
+0x02022CA4 __OSSpinUnlock
+0x02026D6C __OSSuspendThreadNolock
+0x02022E3C __OSTestAssistReadPhysical32
+0x02031C1C __OSTestSystemMode
+0x02029D84 __OSTouchSchedulerLock
+0x02028464 __OSTryLockScheduler
+0x02022C50 __OSTrySpinLock
+0x02023828 __OSUnlockScheduler
+0x02003B70 __OSValidateAddressSpaceRange
+0x0200ABF8 __OSWriteRegister32Ex
+0x02003B7C __OSZeroProcessMemory
+0x02000170 __PPCExit
+0x020003A4 __PPCHalt
+0x02029004 __get_eh_globals
+0x02029010 __get_eh_init_block
+0x02029030 __get_eh_mem_manage
+0x02029018 __get_eh_store_globals
+0x02029024 __get_eh_store_globals_tdeh
+0x0202903C __gh_errno_ptr
+0x02029564 __gh_get_errno
+0x02000BCC __gh_iob_init
+0x020005B0 __gh_lock_init
+0x02029054 __gh_set_errno
+0x02000630 __ghsLock
+0x0200063C __ghsUnlock
+0x02000B58 __ghs_at_exit
+0x02000A64 __ghs_at_exit_cleanup
+0x02000648 __ghs_flock_create
+0x02000720 __ghs_flock_destroy
+0x020007B4 __ghs_flock_file
+0x02000B98 __ghs_flock_ptr
+0x020008C4 __ghs_ftrylock_file
+0x02000844 __ghs_funlock_file
+0x020009A0 __ghs_mtx_dst
+0x02000958 __ghs_mtx_init
+0x020009E4 __ghs_mtx_lock
+0x020009EC __ghs_mtx_unlock
+0x02014D74 __os_snprintf
+0x0200E044 __tls_get_addr
+0x02039E48 bspGetConsoleTypeRaw
+0x02039C84 bspGetEntityVersion
+0x02039D94 bspGetHardwareVersion
+0x0203A1C8 bspInitialize
+0x0203A468 bspInitializeShimInterface
+0x02039B1C bspQuery
+0x02039EF4 bspRead
+0x0203A31C bspShutdown
+0x0203A05C bspWrite
+0x02000AF4 exit
+0x0201BF50 memclr
+0x0201BF5C memcpy
+0x0201BF64 memmove
+0x0201BF48 memset
+0x0204EAEC smdPpcClose
+0x0204EC4C smdPpcGetCtrlTableVectors
+0x0204EBA0 smdPpcGetInterfaceState
+0x0204E808 smdPpcInit
+0x0204EA38 smdPpcOpen
+0x0204F200 smdPpcReceive
+0x0204EDC0 smdPpcSendMessage
+0x0204F0FC smdPpcSendVector
+0x0204EE80 smdPpcSendVectorSpec
+0x0204F648 smdSimpleBufAlloc
+0x0204F744 smdSimpleBufFree
+0x0204F824 smdSimpleBufGetStatistics
+0x0204F534 smdSimpleBufPoolCreate
+0x100FF8B8 MEMAllocFromDefaultHeap
+0x1005B640 MEMAllocFromDefaultHeapEx
+0x100FF8BC MEMFreeToDefaultHeap
+0x100C88A8 OSDynLoad_gLoaderLock
+0x100A1D78 __OSCurrentThread
+0x100AA930 __OSPlatformInfo
+0x100A0000 __OSSchedulerLock
+0x100A93F4 __atexit_cleanup
+0x1005182C __cpp_exception_cleanup_ptr
+0x10051828 __cpp_exception_init_ptr
+0x1001E9AC __gh_FOPEN_MAX
+0x100A933C __ghs_cpp_locks
+0x100A93F8 __stdio_cleanup
+0x100A93FC _iob
+0x100A953C _iob_lock
+0x100A93EC environ
+0x100EEEA4 errno
\ No newline at end of file
diff --git a/docs/coreinit_unimpl.txt b/docs/coreinit_unimpl.txt
new file mode 100644
index 0000000..ab3fcde
--- /dev/null
+++ b/docs/coreinit_unimpl.txt
@@ -0,0 +1,1006 @@
+Unimplemented function exports 985/1218:
+COSError
+COSInfo
+COSVReport
+COSVerbose
+COSWarn
+CoreInitDefaultHeap
+DCBlockFlush
+DCCoreFlushAll
+DK_BlockClose
+DK_BlockOpen
+DK_BlockRead
+DK_BlockReadAsync
+DK_BlockWrite
+DK_BlockWriteAsync
+DK_CharClose
+DK_CharOpen
+DK_CharRead
+DK_CharReadAsync
+DK_CharWrite
+DK_CharWriteAsync
+DK_PCharClose
+DK_PCharFlushWrite
+DK_PCharGetStatistics
+DK_PCharOpen
+DK_PCharReadAsync
+DK_PCharWrite
+DK_PCharWriteAsync
+DK_PPCBlockShimInit
+DK_PPCCharShimInit
+DK_ShimInit
+DisassemblePPCOpcode
+DisassemblePPCRange
+ENVGetEnvironmentVariable
+FSAAddClient
+FSAAppendFile
+FSAAppendFileAsync
+FSAAppendFileEx
+FSAAppendFileExAsync
+FSAChangeDir
+FSAChangeDirAsync
+FSAChangeMode
+FSAChangeModeAsync
+FSACloseDir
+FSACloseDirAsync
+FSACloseFile
+FSACloseFileAsync
+FSADelClient
+FSAFlushFile
+FSAFlushFileAsync
+FSAFlushMultiQuota
+FSAFlushMultiQuotaAsync
+FSAFlushQuota
+FSAFlushQuotaAsync
+FSAFlushVolume
+FSAFlushVolumeAsync
+FSAFreeAsyncResult
+FSAGetAsyncResult
+FSAGetBadBlockInfo
+FSAGetBadBlockInfoAsync
+FSAGetClientNum
+FSAGetCwd
+FSAGetCwdAsync
+FSAGetDeviceInfo
+FSAGetDeviceInfoAsync
+FSAGetDirSize
+FSAGetDirSizeAsync
+FSAGetEntryNum
+FSAGetEntryNumAsync
+FSAGetError
+FSAGetErrorAsync
+FSAGetFileBlockAddress
+FSAGetFileBlockAddressAsync
+FSAGetFileSystemInfo
+FSAGetFileSystemInfoAsync
+FSAGetFragmentBlockInfo
+FSAGetFragmentBlockInfoAsync
+FSAGetFreeSpaceSize
+FSAGetFreeSpaceSizeAsync
+FSAGetJournalFreeSpaceSize
+FSAGetJournalFreeSpaceSizeAsync
+FSAGetPosFile
+FSAGetPosFileAsync
+FSAGetStat
+FSAGetStatAsync
+FSAGetStatFile
+FSAGetStatFileAsync
+FSAGetStatusStr
+FSAGetTransactionBlockPoolAttributes
+FSAGetVolumeInfo
+FSAGetVolumeInfoAsync
+FSAInit
+FSAIsEof
+FSAIsEofAsync
+FSAMakeDir
+FSAMakeDirAsync
+FSAMakeQuota
+FSAMakeQuotaAsync
+FSAMount
+FSAMountAsync
+FSAOpenDir
+FSAOpenDirAsync
+FSAOpenFile
+FSAOpenFileAsync
+FSAOpenFileByStat
+FSAOpenFileByStatAsync
+FSAOpenFileEx
+FSAOpenFileExAsync
+FSAReadDir
+FSAReadDirAsync
+FSAReadFile
+FSAReadFileAsync
+FSAReadFileWithPos
+FSAReadFileWithPosAsync
+FSARegisterFlushQuota
+FSARegisterFlushQuotaAsync
+FSARemove
+FSARemoveAsync
+FSARename
+FSARenameAsync
+FSARewindDir
+FSARewindDirAsync
+FSARollbackQuota
+FSARollbackQuotaAsync
+FSARollbackQuotaForce
+FSARollbackVolume
+FSARollbackVolumeAsync
+FSASetPosFile
+FSASetPosFileAsync
+FSAShutdown
+FSATruncateFile
+FSATruncateFileAsync
+FSAUnmount
+FSAUnmountAsync
+FSAWriteFile
+FSAWriteFileAsync
+FSAWriteFileWithPos
+FSAWriteFileWithPosAsync
+FSAddClientEx
+FSAppendFile
+FSAppendFileAsync
+FSBindMount
+FSBindMountAsync
+FSBindUnmount
+FSBindUnmountAsync
+FSCancelAllCommands
+FSCancelCommand
+FSChangeMode
+FSChangeModeAsync
+FSDumpLastErrorLog
+FSFlushFile
+FSFlushFileAsync
+FSFlushMultiQuota
+FSFlushMultiQuotaAsync
+FSFlushQuota
+FSFlushQuotaAsync
+FSGetAsyncResult
+FSGetCmdPriority
+FSGetCurrentCmdBlock
+FSGetCwdAsync
+FSGetDirSize
+FSGetDirSizeAsync
+FSGetEmulatedError
+FSGetEntryNum
+FSGetEntryNumAsync
+FSGetErrorCodeForViewer
+FSGetFSMessage
+FSGetFileBlockAddress
+FSGetFileBlockAddressAsync
+FSGetFileSystemInfo
+FSGetFileSystemInfoAsync
+FSGetFreeSpaceSize
+FSGetFreeSpaceSizeAsync
+FSGetLastError
+FSGetMountSource
+FSGetMountSourceAsync
+FSGetMountSourceNext
+FSGetMountSourceNextAsync
+FSGetStateChangeInfo
+FSGetUserData
+FSGetVolumeInfo
+FSGetVolumeInfoAsync
+FSIsEof
+FSIsEofAsync
+FSMakeDir
+FSMakeDirAsync
+FSMakeLink
+FSMakeLinkAsync
+FSMakeQuota
+FSMakeQuotaAsync
+FSMount
+FSMountAsync
+FSOpenFileByStat
+FSOpenFileByStatAsync
+FSOpenFileEx
+FSOpenFileExAsync
+FSRegisterFlushQuota
+FSRegisterFlushQuotaAsync
+FSRemove
+FSRemoveAsync
+FSRemoveQuota
+FSRemoveQuotaAsync
+FSRename
+FSRenameAsync
+FSRewindDir
+FSRewindDirAsync
+FSRollbackQuota
+FSRollbackQuotaAsync
+FSSetEmulatedError
+FSSetUserData
+FSTimeToCalendarTime
+FSTruncateFile
+FSTruncateFileAsync
+FSUnmount
+FSUnmountAsync
+FSWriteFile
+FSWriteFileAsync
+FSWriteFileWithPos
+FSWriteFileWithPosAsync
+HIOClose
+HIOInit
+HIOOpenEx
+HIORead
+HIOReadAsyncEx
+HIOShutdown
+HIOWrite
+HIOWriteAsyncEx
+ICBlockInvalidate
+ICInvalidateRange
+IMDisableAPD
+IMDisableDim
+IMEnableAPD
+IMEnableDim
+IMEndAPDVideoMode
+IMGetAPDPeriod
+IMGetDimEnableDRC
+IMGetDimEnableTV
+IMGetDimPeriod
+IMGetTimeBeforeAPD
+IMGetTimeBeforeDimming
+IMIsAPDEnabled
+IMIsAPDEnabledBySysSettings
+IMIsDimEnabled
+IMSetDimEnableDRC
+IMSetDimEnableTV
+IMStartAPDVideoMode
+IM_CancelGetEventNotify
+IM_Close
+IM_GetEventNotify
+IM_GetHomeButtonParams
+IM_GetNvParameter
+IM_GetNvParameterWithoutHandleAndItb
+IM_GetParameter
+IM_GetParameters
+IM_GetRuntimeParameter
+IM_GetTimerRemaining
+IM_GetTimerRemainingSeconds
+IM_Open
+IM_SetDeviceState
+IM_SetDeviceStateEx
+IM_SetHomeButtonParams
+IM_SetNvParameter
+IM_SetNvParameterWithoutHandleAndItb
+IM_SetParameter
+IM_SetRuntimeParameter
+IM_SetSystemPolicy
+IM_SetTimerElpasedSeconds
+IOS_Close
+IOS_CloseAsync
+IOS_CloseAsyncEx
+IOS_Ioctl
+IOS_IoctlAsync
+IOS_IoctlAsyncEx
+IOS_Ioctlv
+IOS_IoctlvAsync
+IOS_IoctlvAsyncEx
+IOS_Open
+IOS_OpenAsync
+IOS_OpenAsyncEx
+IOS_Read
+IOS_ReadAsync
+IOS_ReadAsyncEx
+IOS_Seek
+IOS_SeekAsync
+IOS_SeekAsyncEx
+IOS_Write
+IOS_WriteAsync
+IOS_WriteAsyncEx
+IPCBufPoolAllocate
+IPCBufPoolCreate
+IPCBufPoolFree
+IPCBufPoolGetAttributes
+IPCDriverClose
+IPCDriverDisplayStatistics
+IPCDriverInit
+IPCDriverOpen
+LCAlloc
+LCDealloc
+LCDisableDMA
+LCEnableDMA
+LCGetAllocatableSize
+LCGetDMAQueueLength
+LCGetMaxSize
+LCGetUnallocated
+LCHardwareIsAvailable
+LCIsDMAEnabled
+LCLoadDMABlocks
+LCStoreDMABlocks
+LCWaitDMAQueue
+MCPFlush_Finalize
+MCPFlush_FlushLockedRootQuota
+MCPFlush_FlushRootQuota
+MCPFlush_GetRootQuotaPath
+MCPFlush_Initialize
+MCPFlush_LockRootQuota
+MCPFlush_RollbackLockedRootQuota
+MCPFlush_UnlockRootQuota
+MCP_AocCloseTitle
+MCP_AocGetOpenInfo
+MCP_AocLockTitle
+MCP_AocOpenTitle
+MCP_AocTestScanned
+MCP_AocUnlockTitle
+MCP_AppTagCreate
+MCP_AppTagFlush
+MCP_AppTagGetEnability
+MCP_AppTagGetSize
+MCP_AppTagReadWithPos
+MCP_AppTagRemove
+MCP_AppTagRollback
+MCP_AppTagSetEnability
+MCP_AppTagTruncateWithPos
+MCP_AppTagWriteWithPos
+MCP_ChangeEcoSettings
+MCP_ChangeEcoWDSetting
+MCP_ChangeStandbySettings
+MCP_ChangeSystemMemoryEmuMode
+MCP_ChangeSystemMode
+MCP_Close
+MCP_CompatCopyFile
+MCP_CompatExLaunch
+MCP_CompatExPrepareLaunch
+MCP_CompatGetVersion
+MCP_CompatHaiCreateCompanionFile
+MCP_CompatListOwnedTitles
+MCP_CompatLoadAVFile
+MCP_CompatWagonCreateContext
+MCP_CompatWagonDeleteArchiveHash
+MCP_CompatWagonDeleteContext
+MCP_CompatWagonDestinationComplete
+MCP_CompatWagonDestinationPrepare
+MCP_CompatWagonSourceComplete
+MCP_CompatWagonSourcePrepare
+MCP_CopyGetRequiredSize
+MCP_CopyTitleAbort
+MCP_CopyTitleAsync
+MCP_CopyTitleDoneAsync
+MCP_CopyTitleWithoutFlushAsync
+MCP_CreateLinkedTitlePackage
+MCP_DeleteContentAsync
+MCP_DeleteLinkedTitlePackage
+MCP_DeleteTicketsAsync
+MCP_DeleteTitleAbort
+MCP_DeleteTitleAsync
+MCP_DeleteTitleDoneAsync
+MCP_DeleteTitleWithoutFlushAsync
+MCP_DeleteUserData
+MCP_DeleteUserDataWithException
+MCP_DemoLaunchGetRemainder
+MCP_DeviceList
+MCP_DisablePowerOffOnCrash
+MCP_ExternalStorageLock
+MCP_ExternalStorageUnlock
+MCP_FindContentInfos
+MCP_FormatExternalStorage
+MCP_FullDeviceList
+MCP_Get4SecondOffStatus
+MCP_GetCompatDeviceId
+MCP_GetContentInfos
+MCP_GetDefaultEcoTitleId
+MCP_GetDefaultTitleId
+MCP_GetDeviceId
+MCP_GetEcoSettings
+MCP_GetEcoWDSetting
+MCP_GetErrorCodeForViewer
+MCP_GetFastRelaunchEnable
+MCP_GetInstalledContentCount
+MCP_GetInstalledContentIndices
+MCP_GetInstalledTitleVersion
+MCP_GetLastRawError
+MCP_GetOverlayAppInfo
+MCP_GetOwnTitleInfo
+MCP_GetPatchedTitleId
+MCP_GetPreciseTitleSize
+MCP_GetSATALimiterState
+MCP_GetStandbySettings
+MCP_GetSysProdSettings
+MCP_GetSyslogFilterMask
+MCP_GetSystemCrashFlag
+MCP_GetSystemCrashLog
+MCP_GetSystemCrashLogDescription
+MCP_GetSystemLog
+MCP_GetSystemMemoryEmuMode
+MCP_GetSystemMode
+MCP_GetSystemVersion
+MCP_GetTicketItemRights
+MCP_GetTicketViews
+MCP_GetTitleId
+MCP_GetTitleInfo
+MCP_GetTitleInfoByDevice
+MCP_GetTitleInfoByTitleAndDevice
+MCP_GetTitleInfoByTitleAndDeviceType
+MCP_GetTitleInfoByTitleAndIndexedDevice
+MCP_GetTitleSATALimiterState
+MCP_GetTitleSize
+MCP_InitializeIvs
+MCP_InstallCleanupAbort
+MCP_InstallCleanupAsync
+MCP_InstallCleanupWithoutFlushAsync
+MCP_InstallGetAocSize
+MCP_InstallGetAocSize2
+MCP_InstallGetAvailableUpdateOp
+MCP_InstallGetInfo
+MCP_InstallGetProgress
+MCP_InstallGetRequiredSize
+MCP_InstallGetSize
+MCP_InstallGetTargetDevice
+MCP_InstallSetCache
+MCP_InstallSetTargetDevice
+MCP_InstallSetTargetUsb
+MCP_InstallTitleAbort
+MCP_InstallTitleAsync
+MCP_InstallTitleWithPatchMountAsync
+MCP_InstallUtilGetTitleEnability
+MCP_InstallUtilIsResumeAvailable
+MCP_LaunchCompat
+MCP_ListOwnedTitles
+MCP_NominalTitleGetTitleId
+MCP_Open
+MCP_PatchCheckTitleVersion
+MCP_PatchCheckTitleVersionByPath
+MCP_PatchDeleteVersionList
+MCP_PatchGetLatestVersion
+MCP_PatchGetVersion
+MCP_PatchGetVersionListVersion
+MCP_PatchSetLatestVersion
+MCP_PatchSetRequiredVersion
+MCP_PatchSetVersionListVersion
+MCP_PreloadTitleFolder
+MCP_RequestPowerOff
+MCP_ResetOnPanicEnable
+MCP_ResetOnPanicState
+MCP_RightCheckLaunchable
+MCP_SetDefaultEcoTitleId
+MCP_SetDefaultTitleId
+MCP_SetFastRelaunchEnable
+MCP_SetSATALimiterState
+MCP_SetSysProdSettings
+MCP_SetSyslogFilterMask
+MCP_TitleCount
+MCP_TitleList
+MCP_TitleListByAppAndDevice
+MCP_TitleListByAppAndDeviceType
+MCP_TitleListByAppType
+MCP_TitleListByAppTypeFlagsAndDeviceType
+MCP_TitleListByDevice
+MCP_TitleListByDeviceType
+MCP_TitleListByUniqueId
+MCP_TitleListByUniqueIdAndDeviceType
+MCP_TitleListByUniqueIdAndDeviceTypeAndAppType
+MCP_TitleListByUniqueIdAndIndexedDeviceAndAppType
+MCP_TitleListUpdateCancel
+MCP_TitleListUpdateGetNext
+MCP_TriggerCrashLogCollection
+MCP_TriggerCrashLogCollectionEx
+MCP_UninstallTitleAsync
+MCP_UpdateCheckAsync
+MCP_UpdateCheckContext
+MCP_UpdateCheckResume
+MCP_UpdateCheckUpdaterVersion
+MCP_UpdateClearContextAsync
+MCP_UpdateContextReadUserFlag
+MCP_UpdateContextSetUserFlag
+MCP_UpdateGetPathByAppTypeAsync
+MCP_UpdateGetProgress
+MCP_UpdateGetUpdater
+MCP_UpdateLaunchUpdater
+MCP_UpdatePerformAsync
+MCP_UpdatePrepareUpdaterAsync
+MCP_UpdateSetUpdater
+MCP_WagonUCheckArchiveExists
+MCP_WagonUCreateArchive
+MCP_WagonUDeleteArchive
+MCP_WagonUEstimateArchiveSize
+MCP_WagonUEstimateArchiveSizeEx
+MCP_WagonUFormatDestination
+MCP_WagonUGetProgress
+MCP_WagonUInstallArchive
+MCP_WagonUSetSessionId
+MEMAddBlockHeapTracking
+MEMAllocFromAllocator
+MEMAllocFromBlockHeapAt
+MEMAllocFromBlockHeapEx
+MEMCheckExpHeap
+MEMCheckForMBlockExpHeap
+MEMCheckHeap
+MEMCreateUserHeapHandle
+MEMDestroyBlockHeap
+MEMDumpHeap
+MEMFindContainHeap
+MEMFindParentHeap
+MEMFreeToAllocator
+MEMFreeToBlockHeap
+MEMGetAllocatableSizeForBlockHeapEx
+MEMGetFillValForHeap
+MEMGetTotalFreeSizeForBlockHeap
+MEMGetTrackingLeftInBlockHeap
+MEMInitAllocatorForBlockHeap
+MEMInitAllocatorForDefaultHeap
+MEMInitAllocatorForExpHeap
+MEMInitAllocatorForFrmHeap
+MEMInitAllocatorForUnitHeap
+MEMInitBlockHeap
+MEMSetFillValForHeap
+MEMUseMarginOfAlignmentForExpHeap
+MEMVisitAllocatedForExpHeap
+MEMiGetFreeEndForFrmHeap
+MEMiGetFreeStartForFrmHeap
+MEMiIsEmptyExpHeap
+MasterAgent_LoadNotify
+NSYSTEST_Do
+OSAddAtomic
+OSAllocFromSystem
+OSAllocSysHealth
+OSAllocVirtAddr
+OSAndAtomic
+OSBlockLogSave
+OSBlockMove
+OSBlockSet
+OSBlockThreadsOnExit
+OSCheckStopwatch
+OSClearContext
+OSClearStack
+OSCodegenCopy
+OSCoherencyBarrier
+OSCompareAndSwapAtomic
+OSCompareAndSwapAtomicEx
+OSCopyFromClipboard
+OSCopyToClipboard
+OSCreateThreadType
+OSDeRegisterSystemModeCallback
+OSDisableAllThreadFPUException
+OSDisableContextFPUException
+OSDisableInterrupts
+OSDisableOverlayArena
+OSDisableOverlayArenaDev
+OSDisableOverlayArenaWithTimeout
+OSDisableOverlayArenaWithTimeoutDev
+OSDisableThreadFPUException
+OSDriver_CopyFromSaveArea
+OSDriver_CopyToSaveArea
+OSDriver_Deregister
+OSDriver_Register
+OSDumpContext
+OSDumpStopwatch
+OSDynLoad_AcquireContainingModule
+OSDynLoad_AddNofifyCallback
+OSDynLoad_AddNotifyCallback
+OSDynLoad_DelNotifyCallback
+OSDynLoad_FindTag
+OSDynLoad_GetLoaderHeapStatistics
+OSDynLoad_GetModuleName
+OSDynLoad_GetNumberOfRPLs
+OSDynLoad_GetRPLInfo
+OSDynLoad_GetTLSAllocator
+OSDynLoad_IsModuleLoaded
+OSDynLoad_SetTLSAllocator
+OSEffectiveToPhysical
+OSEnableAllThreadFPUException
+OSEnableForegroundExit
+OSEnableHomeButtonMenu
+OSEnableInterrupts
+OSEnableOverlayArena
+OSEnableOverlayArenaDev
+OSEnableOverlayArenaWithTimeout
+OSEnableOverlayArenaWithTimeoutDev
+OSEnableThreadFPUException
+OSEnforceInorderIO
+OSForceFullRelaunch
+OSFreeSysHealth
+OSFreeToSystem
+OSFreeVirtAddr
+OSGetAlarmFromQueue
+OSGetArgcArgv
+OSGetAvailPhysAddrRange
+OSGetBootPMFlags
+OSGetCallArgs
+OSGetCodegenCore
+OSGetCodegenMode
+OSGetCodegenVirtAddrRange
+OSGetConsoleType
+OSGetCrashDumpType
+OSGetCrashInfo
+OSGetCurrentContext
+OSGetCurrentFPUContext
+OSGetCurrentPMState
+OSGetDataPhysAddrRange
+OSGetDefaultAppIOQueue
+OSGetForegroundBucket
+OSGetForegroundBucketFreeArea
+OSGetHardwareBoardRevision
+OSGetHardwareBoardType
+OSGetHardwareVersion
+OSGetInfo
+OSGetLastError
+OSGetLastPMState
+OSGetMapVirtAddrRange
+OSGetMemBound
+OSGetOSID
+OSGetPFID
+OSGetPerformanceNumbers
+OSGetProcessInfo
+OSGetScreenCapturePermission
+OSGetScreenCapturePermissionEx
+OSGetSecCodeGenMode
+OSGetSecurityLevel
+OSGetSharedData
+OSGetShutdownFlags
+OSGetShutdownReason
+OSGetSymbolName
+OSGetSysHealth
+OSGetSystemInfo
+OSGetSystemMode
+OSGetSystemVersion
+OSGetThreadCoreTime
+OSGetTitleID
+OSGetUPID
+OSGetUserStackPointer
+OSHandle_AddRef
+OSHandle_Alloc
+OSHandle_InitTable
+OSHandle_Release
+OSHandle_TranslateAndAddRef
+OSInitContext
+OSInitCoroutine
+OSInitStopwatch
+OSIopShell_InjectCommand
+OSIsAddressRangeDCValid
+OSIsAddressValid
+OSIsBlockThreadsOnExit
+OSIsColdBoot
+OSIsCompatBoot
+OSIsDebuggerInitialized
+OSIsDebuggerPresent
+OSIsECOBoot
+OSIsECOMode
+OSIsEnabledOverlayArena
+OSIsEnabledOverlayArenaDev
+OSIsHomeButtonMenuEnabled
+OSIsInterruptEnabled
+OSIsNormalBoot
+OSIsOffBoot
+OSIsProdMode
+OSIsSchedulerLocked
+OSIsSelfRefreshBoot
+OSIsStandbyBoot
+OSLaunchTitleByPathl
+OSLaunchTitleByPathv
+OSLaunchTitlel
+OSLaunchTitlev
+OSLoadContext
+OSLoadCoroutine
+OSLoadFPUContext
+OSLogArgs
+OSLogBuffer
+OSLogFunc
+OSLogPrintf
+OSLogReport
+OSLogRetrieve
+OSLogSaveCrashDump
+OSLogSetFilterPolicy
+OSMapMemory
+OSMemoryBarrier
+OSModifyRegister16
+OSOrAtomic
+OSQueryVirtAddr
+OSReadRegister16
+OSReadRegister32
+OSRebootCrash
+OSRegisterSystemModeCallback
+OSReleaseForeground
+OSReportInfo
+OSReportVerbose
+OSReportWarn
+OSRequestFastExit
+OSReschedule
+OSResetStopwatch
+OSRestartCrashedApp
+OSRestartGame
+OSRestoreInterrupts
+OSRunThreadsOnExit
+OSSaveContext
+OSSaveCoroutine
+OSSaveFPUContext
+OSSavesDone_ReadyToRelease
+OSScreenClearBufferEx
+OSScreenEnableEx
+OSScreenFlipBuffersEx
+OSScreenGetBufferSizeEx
+OSScreenInit
+OSScreenPutFontEx
+OSScreenPutPixelEx
+OSScreenSetBufferEx
+OSScreenShutdown
+OSSendAppSwitchRequest
+OSSendFatalError
+OSSendPolicyRequest
+OSSetAlarmEx
+OSSetCrashDumpType
+OSSetCurrentContext
+OSSetCurrentFPUContext
+OSSetDABR
+OSSetIABR
+OSSetInfo
+OSSetMemBound
+OSSetPanicCallback
+OSSetPerformanceMonitor
+OSSetPeriodicAlarmEx
+OSSetScreenCapturePermission
+OSSetScreenCapturePermissionEx
+OSSetSwitchThreadCallback
+OSShutdown
+OSStartStopwatch
+OSStopStopwatch
+OSStopWatchLap
+OSStopWatchReset
+OSStopWatchStart
+OSStopWatchStop
+OSSupressConsoleOutput
+OSSwapAtomic
+OSSwitchCoroutine
+OSSwitchFiber
+OSSwitchFiberEx
+OSSwitchSecCodeGenMode
+OSSwitchStack
+OSTestAndClearAtomic
+OSTestAndSetAtomic
+OSTest_Do
+OSUnmapMemory
+OSVReport
+OSWaitMicroseconds
+OSWriteRegister16
+OSWriteRegister32
+OSXorAtomic
+PMBegin
+PMCycles
+PMEnd
+PMInstructions
+PML1FetchMisses
+PML1MissCycles
+PPCAndCMsr
+PPCAndMsr
+PPCDisableSpeculation
+PPCEieio
+PPCEnableSpeculation
+PPCHalt
+PPCIsync
+PPCMfdec
+PPCMfdmaL
+PPCMfdmaU
+PPCMffpscr
+PPCMfhid0
+PPCMfhid1
+PPCMfhid2
+PPCMfhid4
+PPCMfl2cr
+PPCMfmmcr0
+PPCMfmmcr1
+PPCMfmsr
+PPCMfpir
+PPCMfpmc1
+PPCMfpmc2
+PPCMfpmc3
+PPCMfpmc4
+PPCMfpvr
+PPCMfsia
+PPCMfsprg0
+PPCMfwpar
+PPCMtdec
+PPCMtdmaL
+PPCMtdmaU
+PPCMtfpscr
+PPCMthid0
+PPCMthid2
+PPCMthid4
+PPCMtl2cr
+PPCMtmmcr0
+PPCMtmmcr1
+PPCMtmsr
+PPCMtpmc1
+PPCMtpmc2
+PPCMtpmc3
+PPCMtpmc4
+PPCMtsia
+PPCMtwpar
+PPCOrMsr
+PPCSetFpIEEEMode
+PPCSetFpNonIEEEMode
+PPCSync
+UCClose
+UCDeleteSysConfig
+UCDeleteSysConfigAsync
+UCListSysConfig
+UCListSysConfigAsync
+UCOpen
+UCQuerySysConfig
+UCQuerySysConfigAsync
+UCReadSysConfig
+UCReadSysConfigAsync
+UCWriteSysConfig
+UCWriteSysConfigAsync
+__FSAShimAllocateBuffer
+__FSAShimCheckClientHandle
+__FSAShimDecodeIosErrorToFsaStatus
+__FSAShimFreeBuffer
+__KernelAllocateTimer
+__KernelFreeTimer
+__KernelGetInfo
+__KernelPrimeTimer
+__KernelSendICI
+__KernelSetUserModeExHandler
+__KernelStopTimer
+__OSAcquireIdLock
+__OSAppendCopyData
+__OSBoostThreadPriority
+__OSCalendarTimeToPOSIXTime
+__OSClearAndEnableInterrupt
+__OSClearAppCrash
+__OSClearCopyData
+__OSClearSavedFrame
+__OSConsoleWrite
+__OSCreateThreadType
+__OSDeboostThreadPrioriy
+__OSDisableInterrupt
+__OSDisableScheduler
+__OSDumpActiveThreads
+__OSEnableScheduler
+__OSFairSpinLock
+__OSFairSpinUnlock
+__OSGetAppCrashControl
+__OSGetAppFlags
+__OSGetCopyArea
+__OSGetCopyDataPtr
+__OSGetCopyDataSize
+__OSGetCosReportMasks
+__OSGetCrashDetailLevel
+__OSGetCrashRecovery
+__OSGetEffectivePriority
+__OSGetKernelStatistics
+__OSGetProcDataBounds
+__OSGetProcessSDKVersion
+__OSGetSavedAudioFlags
+__OSGetSavedFrame
+__OSGetSavedFrameA
+__OSGetSavedFrameB
+__OSGetSavedFrameGammaA
+__OSGetSavedFrameGammaB
+__OSGetSavedFramePtr
+__OSGetSavedFramePtrForRead
+__OSGetSavedFramePtrForWrite
+__OSGetSavedFrames
+__OSGetSavedFramesA
+__OSGetSavedFramesB
+__OSGetStatistics
+__OSGetSwitchTarget
+__OSGetSymbolName
+__OSGetTestSetting
+__OSGetTitleVersion
+__OSGetTransitionAudioBuffer
+__OSGetTransitionAudioSize
+__OSGetWriteGatherRegs
+__OSHandleECOPowerEventOnBoot
+__OSHandlePowerEvents
+__OSIsProcessRunning
+__OSLockScheduler
+__OSLogReportKernel
+__OSPhysicalToEffectiveCached
+__OSPhysicalToEffectiveUncached
+__OSReadRegister32Ex
+__OSRecycle
+__OSReleaseIdLock
+__OSReschedule
+__OSResetSavedFrame
+__OSResizeCopyData
+__OSRootLoadShared
+__OSSaveCosReportMasks
+__OSSaveCrashDetailLevel
+__OSSaveCrashRecovery
+__OSSaveWGData
+__OSSendMessageInternal
+__OSSetAbsoluteSystemTime
+__OSSetAbsoluteSystemTimeUserMode
+__OSSetAndLoadContext
+__OSSetAppCrashControl
+__OSSetCoreTrace
+__OSSetCosReportMasks
+__OSSetCrashDetailLevel
+__OSSetCrashRecovery
+__OSSetCurrentUserContext
+__OSSetDABR
+__OSSetDumpMode
+__OSSetIABR
+__OSSetInterruptHandler
+__OSSetLastError
+__OSSetLaunchTimeout
+__OSSetSavedAudioFlags
+__OSSetSavedFrame
+__OSSetSavedFrameGamma
+__OSSetTestSetting
+__OSSetTransitionAudioSize
+__OSSpinLock
+__OSSpinUnlock
+__OSSuspendThreadNolock
+__OSTestAssistReadPhysical32
+__OSTestSystemMode
+__OSTouchSchedulerLock
+__OSTryLockScheduler
+__OSTrySpinLock
+__OSUnlockScheduler
+__OSValidateAddressSpaceRange
+__OSWriteRegister32Ex
+__OSZeroProcessMemory
+__PPCExit
+__PPCHalt
+__get_eh_globals
+__get_eh_init_block
+__get_eh_mem_manage
+__get_eh_store_globals
+__get_eh_store_globals_tdeh
+__gh_errno_ptr
+__gh_get_errno
+__gh_iob_init
+__gh_lock_init
+__gh_set_errno
+__ghsLock
+__ghsUnlock
+__ghs_at_exit
+__ghs_at_exit_cleanup
+__ghs_flock_create
+__ghs_flock_destroy
+__ghs_flock_file
+__ghs_flock_ptr
+__ghs_ftrylock_file
+__ghs_funlock_file
+__ghs_mtx_dst
+__ghs_mtx_init
+__ghs_mtx_lock
+__ghs_mtx_unlock
+__os_snprintf
+__tls_get_addr
+bspGetConsoleTypeRaw
+bspGetEntityVersion
+bspGetHardwareVersion
+bspInitialize
+bspInitializeShimInterface
+bspQuery
+bspRead
+bspShutdown
+bspWrite
+memclr
+memcpy
+memmove
+memset
+smdPpcClose
+smdPpcGetCtrlTableVectors
+smdPpcGetInterfaceState
+smdPpcInit
+smdPpcOpen
+smdPpcReceive
+smdPpcSendMessage
+smdPpcSendVector
+smdPpcSendVectorSpec
+smdSimpleBufAlloc
+smdSimpleBufFree
+smdSimpleBufGetStatistics
+smdSimpleBufPoolCreate
+
+Unimplemented data exports 985/1218:
+MEMAllocFromDefaultHeap
+MEMAllocFromDefaultHeapEx
+MEMFreeToDefaultHeap
+OSDynLoad_gLoaderLock
+__OSCurrentThread
+__OSPlatformInfo
+__OSSchedulerLock
+__atexit_cleanup
+__cpp_exception_cleanup_ptr
+__cpp_exception_init_ptr
+__gh_FOPEN_MAX
+__ghs_cpp_locks
+__stdio_cleanup
+_iob
+_iob_lock
+environ
+errno
+
diff --git a/docs/gx2_exports.txt b/docs/gx2_exports.txt
new file mode 100644
index 0000000..0b63bfa
--- /dev/null
+++ b/docs/gx2_exports.txt
@@ -0,0 +1,367 @@
+0x020610B4 GX2AllocateTilingApertureEx
+0x0200671C GX2BeginDisplayListEx
+0x0203DF14 GX2CPUTimeToGPUTime
+0x0205EA90 GX2CalcColorBufferAuxInfo
+0x020032F4 GX2CalcDRCSize
+0x0205E56C GX2CalcDepthBufferHiZInfo
+0x02009680 GX2CalcFetchShaderSizeEx
+0x02049330 GX2CalcGeometryShaderInputRingBufferSize
+0x02049344 GX2CalcGeometryShaderOutputRingBufferSize
+0x0205C6A8 GX2CalcSurfaceSizeAndAlignment
+0x0200314C GX2CalcTVSize
+0x02006A2C GX2CallDisplayList
+0x0205C450 GX2CheckSurfaceUseVsFormat
+0x02001BB4 GX2ClearBuffersEx
+0x02001094 GX2ClearColor
+0x02001468 GX2ClearDepthStencilEx
+0x02061F0C GX2ConvertDepthBufferToTextureSurface
+0x020044C0 GX2CopyColorBufferToScanBuffer
+0x02006F1C GX2CopyDisplayList
+0x0205E3B0 GX2CopySurface
+0x0205EAD4 GX2CopySurfaceEx
+0x0200F96C GX2DebugCaptureEnd
+0x0200FA20 GX2DebugCaptureFrame
+0x0200FACC GX2DebugCaptureFrames
+0x0200F818 GX2DebugCaptureStart
+0x0200FEAC GX2DebugTagUserString
+0x0200FD58 GX2DebugTagUserStringVA
+0x02006D5C GX2DirectCallDisplayList
+0x02008D2C GX2DispatchCompute
+0x0200E204 GX2DrawDone
+0x020082F8 GX2DrawEx
+0x020085A4 GX2DrawEx2
+0x0200775C GX2DrawIndexedEx
+0x02007B14 GX2DrawIndexedEx2
+0x02007F08 GX2DrawIndexedImmediateEx
+0x02008890 GX2DrawStreamOut
+0x020068C8 GX2EndDisplayList
+0x02061970 GX2ExpandAAColorBuffer
+0x02061C04 GX2ExpandDepthBuffer
+0x0200E2A8 GX2Flush
+0x0206132C GX2FreeTilingAperture
+0x0203DF88 GX2GPUTimeToCPUTime
+0x02041A84 GX2GetAAMaskReg
+0x02040DD8 GX2GetAlphaTestReg
+0x02041158 GX2GetAlphaToMaskReg
+0x0200953C GX2GetAttribFormatBits
+0x02043014 GX2GetBlendConstantColorReg
+0x02042D00 GX2GetBlendControlReg
+0x02041D94 GX2GetColorControlReg
+0x0205AD94 GX2GetContextStateDisplayList
+0x020332C4 GX2GetCounterResult
+0x020331F8 GX2GetCounterResultEx
+0x02032F00 GX2GetCounterResultSize
+0x02032E18 GX2GetCounterSetting
+0x020071D8 GX2GetCurrentDisplayList
+0x02003F28 GX2GetCurrentScanBuffer
+0x020064AC GX2GetDRCGamma
+0x020064F4 GX2GetDRCGammaEx
+0x02002D4C GX2GetDRCVerticalInfo
+0x0200C428 GX2GetDefaultAllocator
+0x0203F8C4 GX2GetDepthStencilControlReg
+0x020071C4 GX2GetDisplayListWriteStatus
+0x0200EA5C GX2GetEventCallback
+0x0203DFFC GX2GetGPUSystemClock
+0x0200F80C GX2GetGPUTimeout
+0x02049974 GX2GetGeometryShaderGPRs
+0x020499BC GX2GetGeometryShaderStackEntries
+0x02006234 GX2GetLastFrame
+0x02006694 GX2GetLastFrameGamma
+0x0200653C GX2GetLastFrameGammaA
+0x020065E8 GX2GetLastFrameGammaB
+0x02000294 GX2GetLastSubmittedTimeStamp
+0x02043C24 GX2GetLineWidthReg
+0x0200DFCC GX2GetMainCoreId
+0x020101EC GX2GetMiscParam
+0x0203B130 GX2GetPerfMetricF32
+0x0201C02C GX2GetPerfMetricType
+0x0203A49C GX2GetPerfMetricU64
+0x0204998C GX2GetPixelShaderGPRs
+0x020499D4 GX2GetPixelShaderStackEntries
+0x020438AC GX2GetPointLimitsReg
+0x02043440 GX2GetPointSizeReg
+0x0203FF28 GX2GetPolygonControlReg
+0x020413E8 GX2GetPolygonOffsetReg
+0x02000724 GX2GetRetiredTimeStamp
+0x02044404 GX2GetScissorReg
+0x020402B4 GX2GetStencilMaskReg
+0x0205B2E4 GX2GetSurfaceFormatBits
+0x0205C244 GX2GetSurfaceMipPitch
+0x0205C370 GX2GetSurfaceMipSliceSize
+0x0205B46C GX2GetSurfaceSwizzle
+0x0205B3B4 GX2GetSurfaceSwizzleOffset
+0x02005E50 GX2GetSwapInterval
+0x020059A8 GX2GetSwapStatus
+0x02002C98 GX2GetSystemDRCMode
+0x02002CF8 GX2GetSystemDRCScanMode
+0x02002C44 GX2GetSystemTVAspectRatio
+0x02002C1C GX2GetSystemTVScanMode
+0x02002C6C GX2GetSystemTVStereoDisplayCapability
+0x0200641C GX2GetTVGamma
+0x02006464 GX2GetTVGammaEx
+0x020417B0 GX2GetTargetChannelMasksReg
+0x0204995C GX2GetVertexShaderGPRs
+0x020499A4 GX2GetVertexShaderStackEntries
+0x0204403C GX2GetViewportReg
+0x0200D584 GX2Init
+0x02041A60 GX2InitAAMaskReg
+0x02040D3C GX2InitAlphaTestReg
+0x0204101C GX2InitAlphaToMaskReg
+0x02043000 GX2InitBlendConstantColorReg
+0x02042BAC GX2InitBlendControlReg
+0x0205ED18 GX2InitColorBufferRegs
+0x02041CC8 GX2InitColorControlReg
+0x02032D74 GX2InitCounterInfo
+0x0205FB1C GX2InitDepthBufferHiZEnable
+0x0205FB40 GX2InitDepthBufferRangeBase
+0x0205F388 GX2InitDepthBufferRegs
+0x0203F708 GX2InitDepthStencilControlReg
+0x0200A8F0 GX2InitFetchShaderEx
+0x0205FA50 GX2InitHiStencilInfoRegs
+0x02043B08 GX2InitLineWidthReg
+0x02038FBC GX2InitPerfMetric
+0x0204369C GX2InitPointLimitsReg
+0x02043230 GX2InitPointSizeReg
+0x0203FE48 GX2InitPolygonControlReg
+0x020413C0 GX2InitPolygonOffsetReg
+0x0204B31C GX2InitSampler
+0x0204B968 GX2InitSamplerBorderType
+0x0204B3F4 GX2InitSamplerClamping
+0x0204BA30 GX2InitSamplerDepthCompare
+0x0204BA94 GX2InitSamplerFilterAdjust
+0x0204B600 GX2InitSamplerLOD
+0x0204BB20 GX2InitSamplerLODAdjust
+0x0204B9CC GX2InitSamplerRoundingMode
+0x0204B4A0 GX2InitSamplerXYFilter
+0x0204B564 GX2InitSamplerZMFilter
+0x02044318 GX2InitScissorReg
+0x02040280 GX2InitStencilMaskReg
+0x02041644 GX2InitTargetChannelMasksReg
+0x0205CA4C GX2InitTextureRegs
+0x02043E7C GX2InitViewportReg
+0x0200E450 GX2Invalidate
+0x02002C94 GX2IsVideoOutReady
+0x020105C0 GX2LogSetMisc
+0x020043C0 GX2MarkScanBufferCopied
+0x0204D894 GX2NotifyMemAlloc
+0x0204DB8C GX2NotifyMemFree
+0x020105C4 GX2PatchDisplayList
+0x02015730 GX2PerfFrameEnd
+0x02015688 GX2PerfFrameStart
+0x0201233C GX2PerfFree
+0x02032C84 GX2PerfGetCollectionMethod
+0x020157A0 GX2PerfGetNumPasses
+0x02032C18 GX2PerfGetPassCoherEnable
+0x0201C0E4 GX2PerfGetResultByFrame
+0x0201C274 GX2PerfGetResultByTagId
+0x0201C39C GX2PerfGetResultByTagSequence
+0x020121B0 GX2PerfInit
+0x02013F30 GX2PerfMetricEnable
+0x0201404C GX2PerfMetricGetEnabled
+0x020141D0 GX2PerfMetricIsEnabled
+0x0201243C GX2PerfMetricsClear
+0x02015D18 GX2PerfPassEnd
+0x02015BE0 GX2PerfPassStart
+0x02032798 GX2PerfPrintFrameResults
+0x0203293C GX2PerfPrintTagResults
+0x020123C4 GX2PerfSetCollectionMethod
+0x02032BA0 GX2PerfSetPassCoherEnable
+0x02014428 GX2PerfTagDisableAll
+0x020142D8 GX2PerfTagEnable
+0x02014390 GX2PerfTagEnableAll
+0x0201BE1C GX2PerfTagEnd
+0x020144C0 GX2PerfTagIsEnabled
+0x0201BC34 GX2PerfTagStart
+0x020102BC GX2PrintGPUStatus
+0x020063E4 GX2ProtectLastFrame
+0x0203F14C GX2QueryBegin
+0x0203E008 GX2QueryBeginConditionalRender
+0x0203F250 GX2QueryEnd
+0x0203E2CC GX2QueryEndConditionalRender
+0x0203F354 GX2QueryGetOcclusionResult
+0x0203F568 GX2QueryGetStreamOutStatsResult
+0x02052550 GX2RBeginDisplayListEx
+0x02051070 GX2RBufferExists
+0x02052808 GX2RCallDisplayList
+0x020504FC GX2RCreateBuffer
+0x02050760 GX2RCreateBufferUserMemory
+0x02058FF4 GX2RCreateSurface
+0x02059254 GX2RCreateSurfaceUserMemory
+0x020509A8 GX2RDestroyBufferEx
+0x020594B8 GX2RDestroySurfaceEx
+0x0205292C GX2RDirectCallDisplayList
+0x02052220 GX2RDrawIndexed
+0x020523C8 GX2RDrawIndexedImmediate
+0x020526A8 GX2REndDisplayList
+0x020503E0 GX2RGetBufferAlignment
+0x020504E4 GX2RGetBufferAllocationSize
+0x02052E30 GX2RGetBufferGuardBandSize
+0x020517B8 GX2RGetBufferName
+0x02053040 GX2RGetDebugOptions
+0x0205A15C GX2RGetSurfaceName
+0x02052CD8 GX2RInitFetchShader
+0x02052D38 GX2RInvalidateBuffer
+0x02052D14 GX2RInvalidateMemory
+0x0205A2CC GX2RInvalidateSurface
+0x02053008 GX2RIsUserMemory
+0x02050B44 GX2RLockBufferEx
+0x02050D7C GX2RLockBufferRegionEx
+0x0205961C GX2RLockSurfaceEx
+0x02053014 GX2RSetAllocator
+0x020518E0 GX2RSetAttributeBuffer
+0x020516B4 GX2RSetBufferName
+0x02053028 GX2RSetDebugOptions
+0x02052A50 GX2RSetGeometryShaderInputRingBuffer
+0x02052B94 GX2RSetGeometryShaderOutputRingBuffer
+0x02051CC4 GX2RSetGeometryUniformBlock
+0x02051ECC GX2RSetPixelUniformBlock
+0x020520D4 GX2RSetStreamOutBuffer
+0x0205A018 GX2RSetSurfaceName
+0x02051ABC GX2RSetVertexUniformBlock
+0x020599A0 GX2RSurfaceExists
+0x02050E68 GX2RUnlockBufferEx
+0x020597E0 GX2RUnlockSurfaceEx
+0x02032CF0 GX2ResetCounterInfo
+0x02032FEC GX2ResetCounters
+0x02010234 GX2ResetGPU
+0x02061390 GX2ResolveAAColorBuffer
+0x0203DC78 GX2SampleBottomGPUCycle
+0x020331F0 GX2SampleCounters
+0x0203313C GX2SampleCountersEx
+0x0203D9EC GX2SampleTopGPUCycle
+0x02049EBC GX2SaveStreamOutContext
+0x02041C8C GX2SetAAMask
+0x02041AB0 GX2SetAAMaskReg
+0x02060360 GX2SetAAMode
+0x020605BC GX2SetAAModeEx
+0x02040FE8 GX2SetAlphaTest
+0x02040E08 GX2SetAlphaTestReg
+0x0204138C GX2SetAlphaToMask
+0x020411D4 GX2SetAlphaToMaskReg
+0x02007224 GX2SetAttribBuffer
+0x02043208 GX2SetBlendConstantColor
+0x02043038 GX2SetBlendConstantColorReg
+0x02042F88 GX2SetBlendControl
+0x02042D5C GX2SetBlendControlReg
+0x02002890 GX2SetClearDepth
+0x020026B4 GX2SetClearDepthStencil
+0x02002A6C GX2SetClearStencil
+0x0206080C GX2SetColorBuffer
+0x02041FC8 GX2SetColorControl
+0x02041DCC GX2SetColorControlReg
+0x0204C124 GX2SetComputeSampler
+0x0204CAA8 GX2SetComputeSamplerBorderColor
+0x02048B68 GX2SetComputeShader
+0x020600C8 GX2SetComputeTexture
+0x02047468 GX2SetComputeUniformBlock
+0x0205AC7C GX2SetContextState
+0x02032F78 GX2SetCounterInfo
+0x02040230 GX2SetCullOnlyControl
+0x020038C4 GX2SetDRCBuffer
+0x02002D48 GX2SetDRCConnectCallback
+0x02003BD4 GX2SetDRCEnable
+0x02003BC4 GX2SetDRCGamma
+0x02003BBC GX2SetDRCScale
+0x0200E3FC GX2SetDebugMode
+0x0200C39C GX2SetDefaultAllocator
+0x0200D1A0 GX2SetDefaultState
+0x02060C94 GX2SetDepthBuffer
+0x0203FDE8 GX2SetDepthOnlyControl
+0x0203FD4C GX2SetDepthStencilControl
+0x0203F95C GX2SetDepthStencilControlReg
+0x0200E940 GX2SetEventCallback
+0x020488C0 GX2SetFetchShader
+0x0200F07C GX2SetGPUFence
+0x0200F7FC GX2SetGPUTimeout
+0x0204C01C GX2SetGeometrySampler
+0x0204C4A8 GX2SetGeometrySamplerBorderColor
+0x02047C24 GX2SetGeometryShader
+0x0204934C GX2SetGeometryShaderInputRingBuffer
+0x02049654 GX2SetGeometryShaderOutputRingBuffer
+0x0205FF9C GX2SetGeometryTexture
+0x02046B00 GX2SetGeometryUniformBlock
+0x0203FB6C GX2SetHiStencilInfo
+0x020102B0 GX2SetInterruptCountLimit
+0x02043E50 GX2SetLineWidth
+0x02043C70 GX2SetLineWidthReg
+0x0204A6AC GX2SetMaxTessellationLevel
+0x0204A8CC GX2SetMinTessellationLevel
+0x020100F0 GX2SetMiscParam
+0x0204C0A0 GX2SetPixelSampler
+0x0204C7A8 GX2SetPixelSamplerBorderColor
+0x02048310 GX2SetPixelShader
+0x02060034 GX2SetPixelTexture
+0x02046FB4 GX2SetPixelUniformBlock
+0x020455E8 GX2SetPixelUniformReg
+0x02043ADC GX2SetPointLimits
+0x020438FC GX2SetPointLimitsReg
+0x02043670 GX2SetPointSize
+0x02043490 GX2SetPointSizeReg
+0x020401B0 GX2SetPolygonControl
+0x0203FF98 GX2SetPolygonControlReg
+0x0204161C GX2SetPolygonOffset
+0x02041424 GX2SetPolygonOffsetReg
+0x020075A8 GX2SetPrimitiveRestartIndex
+0x02042488 GX2SetRasterizerClipControl
+0x0204221C GX2SetRasterizerClipControlEx
+0x02044684 GX2SetRasterizerClipControlHalfZ
+0x02044648 GX2SetScissor
+0x02044440 GX2SetScissorReg
+0x0200F308 GX2SetSemaphore
+0x02048FD4 GX2SetShaderExportBuffer
+0x020447E0 GX2SetShaderModeEx
+0x0204294C GX2SetSpecialState
+0x020404D0 GX2SetStencilMask
+0x020402F0 GX2SetStencilMaskReg
+0x020499EC GX2SetStreamOutBuffer
+0x0204A170 GX2SetStreamOutContext
+0x0204A4D4 GX2SetStreamOutEnable
+0x0205B4DC GX2SetSurfaceSwizzle
+0x02005A7C GX2SetSwapInterval
+0x0200354C GX2SetTVBuffer
+0x02003BC8 GX2SetTVEnable
+0x02003BC0 GX2SetTVGamma
+0x02003BA8 GX2SetTVScale
+0x02003BE0 GX2SetTVStereoMode
+0x020419E8 GX2SetTargetChannelMasks
+0x0204180C GX2SetTargetChannelMasksReg
+0x0204AAEC GX2SetTessellation
+0x0204CDBC GX2SetVerifyCallback
+0x0204CDB0 GX2SetVerifyLevel
+0x0204BF98 GX2SetVertexSampler
+0x0204C1A8 GX2SetVertexSamplerBorderColor
+0x0204746C GX2SetVertexShader
+0x0205FF04 GX2SetVertexTexture
+0x0204664C GX2SetVertexUniformBlock
+0x02044E90 GX2SetVertexUniformReg
+0x02006698 GX2SetVideoEncodingHint
+0x020442F0 GX2SetViewport
+0x020440A0 GX2SetViewportReg
+0x0205AB30 GX2SetupContextStateEx
+0x0200DE60 GX2Shutdown
+0x0203305C GX2StartCounters
+0x020330CC GX2StopCounters
+0x0200EBE8 GX2SubmitUserTimeStamp
+0x0205B39C GX2SurfaceIsCompressed
+0x0200517C GX2SwapScanBuffers
+0x02062518 GX2TempDumpGPUResourceContext
+0x020624D0 GX2TempDumpResources
+0x020623E4 GX2TempGetGPUVersion
+0x020624AC GX2TempGetNonUserMemoryResourceCount
+0x02062488 GX2TempGetResourceCount
+0x0204CD9C GX2UDAGetLastAlert
+0x0204CDA4 GX2UDAResetAlertFireCount
+0x0204CDAC GX2UDASetAlertEnable
+0x0204CDA8 GX2UDASetAlertLevel
+0x02004FF8 GX2WaitForFlip
+0x0200407C GX2WaitForFreeScanBuffer
+0x02004FEC GX2WaitForVsync
+0x020002A4 GX2WaitTimeStamp
+0x0200C4A0 _GX2DebugSetCaptureInterface
+0x0200630C _GX2GetLastFrameB
+0x020332D0 _GX2InitCounterInfo
+0x02036570 _GX2ResetCounters
+0x020372C0 _GX2SampleCounters
+0x02033B3C _GX2SetCounterInfo
+0x02036748 _GX2StartCounters
+0x02036D68 _GX2StopCounters
\ No newline at end of file
diff --git a/docs/gx2_unimpl.txt b/docs/gx2_unimpl.txt
new file mode 100644
index 0000000..e225617
--- /dev/null
+++ b/docs/gx2_unimpl.txt
@@ -0,0 +1,233 @@
+Unimplemented function exports 231/367:
+GX2AllocateTilingApertureEx
+GX2CPUTimeToGPUTime
+GX2CalcColorBufferAuxInfo
+GX2CalcFetchShaderSizeEx
+GX2CalcGeometryShaderInputRingBufferSize
+GX2CalcGeometryShaderOutputRingBufferSize
+GX2CheckSurfaceUseVsFormat
+GX2ConvertDepthBufferToTextureSurface
+GX2CopySurfaceEx
+GX2DebugCaptureEnd
+GX2DebugCaptureFrame
+GX2DebugCaptureFrames
+GX2DebugCaptureStart
+GX2DebugTagUserString
+GX2DebugTagUserStringVA
+GX2DispatchCompute
+GX2DrawEx2
+GX2DrawIndexedEx2
+GX2DrawIndexedImmediateEx
+GX2DrawStreamOut
+GX2ExpandAAColorBuffer
+GX2ExpandDepthBuffer
+GX2Flush
+GX2FreeTilingAperture
+GX2GPUTimeToCPUTime
+GX2GetAttribFormatBits
+GX2GetCounterResult
+GX2GetCounterResultEx
+GX2GetCounterResultSize
+GX2GetCounterSetting
+GX2GetCurrentScanBuffer
+GX2GetDRCGamma
+GX2GetDRCGammaEx
+GX2GetDRCVerticalInfo
+GX2GetDefaultAllocator
+GX2GetGPUSystemClock
+GX2GetGPUTimeout
+GX2GetGeometryShaderGPRs
+GX2GetGeometryShaderStackEntries
+GX2GetLastFrameGammaA
+GX2GetLastFrameGammaB
+GX2GetMainCoreId
+GX2GetMiscParam
+GX2GetPerfMetricF32
+GX2GetPerfMetricType
+GX2GetPerfMetricU64
+GX2GetPixelShaderGPRs
+GX2GetPixelShaderStackEntries
+GX2GetPolygonControlReg
+GX2GetSurfaceFormatBits
+GX2GetSurfaceMipPitch
+GX2GetSurfaceMipSliceSize
+GX2GetSurfaceSwizzleOffset
+GX2GetSwapStatus
+GX2GetSystemDRCScanMode
+GX2GetSystemTVAspectRatio
+GX2GetSystemTVStereoDisplayCapability
+GX2GetTVGamma
+GX2GetTVGammaEx
+GX2GetVertexShaderGPRs
+GX2GetVertexShaderStackEntries
+GX2InitCounterInfo
+GX2InitDepthBufferRangeBase
+GX2InitFetchShaderEx
+GX2InitHiStencilInfoRegs
+GX2InitPerfMetric
+GX2Invalidate
+GX2IsVideoOutReady
+GX2LogSetMisc
+GX2MarkScanBufferCopied
+GX2NotifyMemAlloc
+GX2NotifyMemFree
+GX2PatchDisplayList
+GX2PerfFrameEnd
+GX2PerfFrameStart
+GX2PerfFree
+GX2PerfGetCollectionMethod
+GX2PerfGetNumPasses
+GX2PerfGetPassCoherEnable
+GX2PerfGetResultByFrame
+GX2PerfGetResultByTagId
+GX2PerfGetResultByTagSequence
+GX2PerfInit
+GX2PerfMetricEnable
+GX2PerfMetricGetEnabled
+GX2PerfMetricIsEnabled
+GX2PerfMetricsClear
+GX2PerfPassEnd
+GX2PerfPassStart
+GX2PerfPrintFrameResults
+GX2PerfPrintTagResults
+GX2PerfSetCollectionMethod
+GX2PerfSetPassCoherEnable
+GX2PerfTagDisableAll
+GX2PerfTagEnable
+GX2PerfTagEnableAll
+GX2PerfTagEnd
+GX2PerfTagIsEnabled
+GX2PerfTagStart
+GX2PrintGPUStatus
+GX2ProtectLastFrame
+GX2QueryBegin
+GX2QueryBeginConditionalRender
+GX2QueryEnd
+GX2QueryEndConditionalRender
+GX2QueryGetOcclusionResult
+GX2QueryGetStreamOutStatsResult
+GX2RBeginDisplayListEx
+GX2RBufferExists
+GX2RCallDisplayList
+GX2RCreateBuffer
+GX2RCreateBufferUserMemory
+GX2RCreateSurface
+GX2RCreateSurfaceUserMemory
+GX2RDestroyBufferEx
+GX2RDestroySurfaceEx
+GX2RDirectCallDisplayList
+GX2RDrawIndexed
+GX2RDrawIndexedImmediate
+GX2REndDisplayList
+GX2RGetBufferAlignment
+GX2RGetBufferAllocationSize
+GX2RGetBufferGuardBandSize
+GX2RGetBufferName
+GX2RGetDebugOptions
+GX2RGetSurfaceName
+GX2RInitFetchShader
+GX2RInvalidateBuffer
+GX2RInvalidateMemory
+GX2RInvalidateSurface
+GX2RIsUserMemory
+GX2RLockBufferEx
+GX2RLockBufferRegionEx
+GX2RLockSurfaceEx
+GX2RSetAllocator
+GX2RSetAttributeBuffer
+GX2RSetBufferName
+GX2RSetDebugOptions
+GX2RSetGeometryShaderInputRingBuffer
+GX2RSetGeometryShaderOutputRingBuffer
+GX2RSetGeometryUniformBlock
+GX2RSetPixelUniformBlock
+GX2RSetStreamOutBuffer
+GX2RSetSurfaceName
+GX2RSetVertexUniformBlock
+GX2RSurfaceExists
+GX2RUnlockBufferEx
+GX2RUnlockSurfaceEx
+GX2ResetCounterInfo
+GX2ResetCounters
+GX2ResetGPU
+GX2ResolveAAColorBuffer
+GX2SampleBottomGPUCycle
+GX2SampleCounters
+GX2SampleCountersEx
+GX2SampleTopGPUCycle
+GX2SaveStreamOutContext
+GX2SetAAMode
+GX2SetAAModeEx
+GX2SetComputeSampler
+GX2SetComputeSamplerBorderColor
+GX2SetComputeShader
+GX2SetComputeTexture
+GX2SetComputeUniformBlock
+GX2SetCounterInfo
+GX2SetDRCConnectCallback
+GX2SetDRCGamma
+GX2SetDebugMode
+GX2SetDefaultAllocator
+GX2SetFetchShader
+GX2SetGPUFence
+GX2SetGPUTimeout
+GX2SetGeometrySampler
+GX2SetGeometrySamplerBorderColor
+GX2SetGeometryShader
+GX2SetGeometryShaderInputRingBuffer
+GX2SetGeometryShaderOutputRingBuffer
+GX2SetGeometryUniformBlock
+GX2SetHiStencilInfo
+GX2SetInterruptCountLimit
+GX2SetMaxTessellationLevel
+GX2SetMinTessellationLevel
+GX2SetMiscParam
+GX2SetPixelSampler
+GX2SetPixelSamplerBorderColor
+GX2SetPixelShader
+GX2SetPixelUniformBlock
+GX2SetPixelUniformReg
+GX2SetRasterizerClipControl
+GX2SetRasterizerClipControlEx
+GX2SetRasterizerClipControlHalfZ
+GX2SetSemaphore
+GX2SetShaderExportBuffer
+GX2SetShaderModeEx
+GX2SetSpecialState
+GX2SetStreamOutBuffer
+GX2SetStreamOutContext
+GX2SetStreamOutEnable
+GX2SetTVGamma
+GX2SetTVStereoMode
+GX2SetTessellation
+GX2SetVerifyCallback
+GX2SetVerifyLevel
+GX2SetVertexSampler
+GX2SetVertexSamplerBorderColor
+GX2SetVertexShader
+GX2SetVertexUniformBlock
+GX2SetVertexUniformReg
+GX2SetVideoEncodingHint
+GX2StartCounters
+GX2StopCounters
+GX2SubmitUserTimeStamp
+GX2SurfaceIsCompressed
+GX2TempDumpGPUResourceContext
+GX2TempDumpResources
+GX2TempGetGPUVersion
+GX2TempGetNonUserMemoryResourceCount
+GX2TempGetResourceCount
+GX2UDAGetLastAlert
+GX2UDAResetAlertFireCount
+GX2UDASetAlertEnable
+GX2UDASetAlertLevel
+GX2WaitForFreeScanBuffer
+_GX2DebugSetCaptureInterface
+_GX2GetLastFrameB
+_GX2InitCounterInfo
+_GX2ResetCounters
+_GX2SampleCounters
+_GX2SetCounterInfo
+_GX2StartCounters
+_GX2StopCounters
+
diff --git a/tools/implcheck/implcheck.vcxproj b/tools/implcheck/implcheck.vcxproj
new file mode 100644
index 0000000..87fcb92
--- /dev/null
+++ b/tools/implcheck/implcheck.vcxproj
@@ -0,0 +1,154 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}
+ Win32Proj
+ implcheck
+ 8.1
+
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)\bin\
+
+
+ true
+ $(SolutionDir)\bin\
+
+
+ false
+ $(SolutionDir)\bin\
+
+
+ false
+ $(SolutionDir)\bin\
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/implcheck/implcheck.vcxproj.filters b/tools/implcheck/implcheck.vcxproj.filters
new file mode 100644
index 0000000..0d8d9e4
--- /dev/null
+++ b/tools/implcheck/implcheck.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/tools/implcheck/main.cpp b/tools/implcheck/main.cpp
new file mode 100644
index 0000000..aefd7f4
--- /dev/null
+++ b/tools/implcheck/main.cpp
@@ -0,0 +1,100 @@
+#include
+#include
+#include
+#include
+
+int main(int argc, char **argv)
+{
+ std::set funcExports, dataExports;
+ std::string line;
+ std::ifstream in;
+ std::ofstream out;
+
+ if (argc < 4) {
+ std::cout << argv[0] << " " << std::endl;
+ return 0;
+ }
+
+ in.open(argv[1]);
+
+ if (!in.is_open()) {
+ std::cout << "Could not open file " << argv[1] << " for reading" << std::endl;
+ return -1;
+ }
+
+
+ while (!in.eof()) {
+ std::string strAddr, name;
+ in >> strAddr >> name;
+
+ auto addr = std::stoul(strAddr, nullptr, 16);
+
+ if (addr >= 0x10000000) {
+ dataExports.insert(name);
+ } else {
+ funcExports.insert(name);
+ }
+ }
+
+ in.close();
+ in.open(argv[2]);
+
+ if (!in.is_open()) {
+ std::cout << "Could not open file " << argv[2] << " for reading" << std::endl;
+ return -1;
+ }
+
+ auto funcCount = funcExports.size();
+ auto dataCount = funcExports.size();
+
+ while (std::getline(in, line)) {
+ if (line.find("EXPORT(") == 0) {
+ auto name = line.substr(strlen("EXPORT("));
+ name = name.erase(name.find(')'), 2);
+
+ auto funcItr = funcExports.find(name);
+
+ if (funcItr != funcExports.end()) {
+ funcExports.erase(funcItr);
+ }
+
+ auto dataItr = dataExports.find(name);
+
+ if (dataItr != dataExports.end()) {
+ dataExports.erase(funcItr);
+ }
+ }
+ }
+
+ auto unimplFuncCount = funcExports.size();
+ auto unimplDataCount = funcExports.size();
+
+ out.open(argv[3]);
+
+ if (!out.is_open()) {
+ std::cout << "Could not open file " << argv[3] << " for writing" << std::endl;
+ return -1;
+ }
+
+ if (funcExports.size()) {
+ out << "Unimplemented function exports " << unimplFuncCount << "/" << funcCount << ":" << std::endl;
+
+ for (auto &name : funcExports) {
+ out << name << std::endl;
+ }
+
+ out << std::endl;
+ }
+
+ if (dataExports.size()) {
+ out << "Unimplemented data exports " << unimplDataCount << "/" << dataCount << ":" << std::endl;
+
+ for (auto &name : dataExports) {
+ out << name << std::endl;
+ }
+
+ out << std::endl;
+ }
+
+ return 0;
+}
diff --git a/tools/tools.sln b/tools/tools.sln
index 7f07d47..1590fa1 100644
--- a/tools/tools.sln
+++ b/tools/tools.sln
@@ -7,6 +7,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "elf2rpl", "elf2rpl\elf2rpl.
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readrpl", "readrpl\readrpl.vcxproj", "{F6442B08-9323-4D98-ABA6-8856467B148A}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "implcheck", "implcheck\implcheck.vcxproj", "{08008ADA-439B-4852-8102-40A8D6EDB46D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -31,6 +33,14 @@ Global
{F6442B08-9323-4D98-ABA6-8856467B148A}.Release|x64.Build.0 = Release|x64
{F6442B08-9323-4D98-ABA6-8856467B148A}.Release|x86.ActiveCfg = Release|Win32
{F6442B08-9323-4D98-ABA6-8856467B148A}.Release|x86.Build.0 = Release|Win32
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Debug|x64.ActiveCfg = Debug|x64
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Debug|x64.Build.0 = Debug|x64
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Debug|x86.ActiveCfg = Debug|Win32
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Debug|x86.Build.0 = Debug|Win32
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Release|x64.ActiveCfg = Release|x64
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Release|x64.Build.0 = Release|x64
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Release|x86.ActiveCfg = Release|Win32
+ {08008ADA-439B-4852-8102-40A8D6EDB46D}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE