Example #1
0
        private void addFunctionNid(int moduleAddress, SceModule module, string name)
        {
            int nid = HLEModuleManager.Instance.getNIDFromFunctionName(name);

            if (nid != 0)
            {
                int address = module.text_addr + moduleAddress;
                LoadCoreForKernelModule.addFunctionNid(address, nid);
            }
        }
Example #2
0
        private void addFunctionNames(SceModule rebootModule)
        {
            // These function names are taken from uOFW (https://github.com/uofw/uofw)
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0080, "sceInit.patchGames");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0218, "sceInit.InitCBInit");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x02E0, "sceInit.ExitInit");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x03F4, "sceInit.ExitCheck");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0438, "sceInit.PowerUnlock");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x048C, "sceInit.invoke_init_callback");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x05F0, "sceInit.sub_05F0");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x06A8, "sceInit.CleanupPhase1");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0790, "sceInit.CleanupPhase2");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x08F8, "sceInit.ProtectHandling");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0CFC, "sceInit.sub_0CFC_IsModuleInUserPartition");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0D4C, "sceInit.ClearFreeBlock");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x0DD0, "sceInit.sub_0DD0_IsApplicationTypeGame");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x1038, "sceInit.LoadModuleBufferAnchorInBtcnf");
            LoadCoreForKernelModule.addFunctionName("sceInit", 0x1240, "sceInit.InitThreadEntry");
            LoadCoreForKernelModule.addFunctionName("sceLoaderCore", 0x56B8, "sceLoaderCore.PspUncompress");
            LoadCoreForKernelModule.addFunctionName("sceGE_Manager", 0x0258, "sceGE_Manager.sceGeInit");
            LoadCoreForKernelModule.addFunctionName("sceMeCodecWrapper", 0x1C04, "sceMeCodecWrapper.decrypt");
            LoadCoreForKernelModule.addFunctionName("sceAudio_Driver", 0x0000, "sceAudio_Driver.updateAudioBuf");
            LoadCoreForKernelModule.addFunctionName("sceAudio_Driver", 0x137C, "sceAudio_Driver.audioOutput");
            LoadCoreForKernelModule.addFunctionName("sceAudio_Driver", 0x0530, "sceAudio_Driver.audioOutputDmaCb");
            LoadCoreForKernelModule.addFunctionName("sceAudio_Driver", 0x01EC, "sceAudio_Driver.dmaUpdate");
            LoadCoreForKernelModule.addFunctionName("sceAudio_Driver", 0x1970, "sceAudio_Driver.audioIntrHandler");
            LoadCoreForKernelModule.addFunctionName("sceAudio_Driver", 0x02B8, "sceAudio_Driver.audioMixerThread");
            LoadCoreForKernelModule.addFunctionName("sceSYSCON_Driver", 0x0A10, "sceSYSCON_Driver._sceSysconGpioIntr");
            LoadCoreForKernelModule.addFunctionName("sceSYSCON_Driver", 0x2434, "sceSYSCON_Driver._sceSysconPacketEnd");
            LoadCoreForKernelModule.addFunctionName("sceDisplay_Service", 0x04EC, "sceDisplay_Service.sceDisplayInit");
            LoadCoreForKernelModule.addFunctionName("scePower_Service", 0x0000, "scePower_Service.scePowerInit");
            LoadCoreForKernelModule.addFunctionName("sceHP_Remote_Driver", 0x0704, "sceHP_Remote_Driver.sceHpRemoteThreadEntry");
            LoadCoreForKernelModule.addFunctionName("sceLowIO_Driver", 0x9C7C, "sceNandTransferDataToNandBuf");

            // Mapping of subroutines defined in
            //     https://github.com/uofw/uofw/blob/master/src/reboot/unk.c
            // and https://github.com/uofw/uofw/blob/master/src/reboot/nand.c
            addFunctionNid(0x0000EFCC, rebootModule, "sceNandInit2");
            addFunctionNid(0x0000F0C4, rebootModule, "sceNandIsReady");
            addFunctionNid(0x0000F0D4, rebootModule, "sceNandSetWriteProtect");
            addFunctionNid(0x0000F144, rebootModule, "sceNandLock");
            addFunctionNid(0x0000F198, rebootModule, "sceNandReset");
            addFunctionNid(0x0000F234, rebootModule, "sceNandReadId");
            addFunctionNid(0x0000F28C, rebootModule, "sceNandReadAccess");
            addFunctionNid(0x0000F458, rebootModule, "sceNandWriteAccess");
            addFunctionNid(0x0000F640, rebootModule, "sceNandEraseBlock");
            addFunctionNid(0x0000F72C, rebootModule, "sceNandReadExtraOnly");
            addFunctionNid(0x0000F8A8, rebootModule, "sceNandReadStatus");
            addFunctionNid(0x0000F8DC, rebootModule, "sceNandSetScramble");
            addFunctionNid(0x0000F8EC, rebootModule, "sceNandReadPages");
            addFunctionNid(0x0000F930, rebootModule, "sceNandWritePages");
            addFunctionNid(0x0000F958, rebootModule, "sceNandReadPagesRawExtra");
            addFunctionNid(0x0000F974, rebootModule, "sceNandWritePagesRawExtra");
            addFunctionNid(0x0000F998, rebootModule, "sceNandReadPagesRawAll");
            addFunctionNid(0x0000F9D0, rebootModule, "sceNandTransferDataToNandBuf");
            addFunctionNid(0x0000FC40, rebootModule, "sceNandIntrHandler");
            addFunctionNid(0x0000FF60, rebootModule, "sceNandTransferDataFromNandBuf");
            addFunctionNid(0x000103C8, rebootModule, "sceNandWriteBlockWithVerify");
            addFunctionNid(0x0001047C, rebootModule, "sceNandReadBlockWithRetry");
            addFunctionNid(0x00010500, rebootModule, "sceNandVerifyBlockWithRetry");
            addFunctionNid(0x00010650, rebootModule, "sceNandEraseBlockWithRetry");
            addFunctionNid(0x000106C4, rebootModule, "sceNandIsBadBlock");
            addFunctionNid(0x00010750, rebootModule, "sceNandDoMarkAsBadBlock");
            addFunctionNid(0x000109DC, rebootModule, "sceNandDetectChipMakersBBM");
            addFunctionNid(0x00010D1C, rebootModule, "sceNandGetPageSize");
            addFunctionNid(0x00010D28, rebootModule, "sceNandGetPagesPerBlock");
            addFunctionNid(0x00010D34, rebootModule, "sceNandGetTotalBlocks");
        }