http://www.psdevwiki.com/ps4/api.php?action=feedcontributions&user=Red-EyeX32&feedformat=atom PS4 Developer wiki - User contributions [en] 2024-03-28T16:48:21Z User contributions MediaWiki 1.39.6 http://www.psdevwiki.com/ps4/index.php?title=Libraries&diff=276614 Libraries 2017-06-29T11:37:06Z <p>Red-EyeX32: </p> <hr /> <div>A list of library names can be found in libSceSysmodule.sprx which can be dumped from within the WebKit process.<br /> <br /> == Libraries available since firmware [[4.07]] ==<br /> {| class=&quot;wikitable sortable&quot;<br /> |-<br /> ! (s)prx !! Name !! ID !! <br /> |-<br /> | libc || - || - || C/C++ standard libraries<br /> |-<br /> | libSceFios2 || - || - || File Input/Output Scheduler 2<br /> |-<br /> | libMonoCompilerBridge || || || <br /> |-<br /> | libMonoCompiler || || || <br /> |-<br /> | libMonoVirtualMachineBridge || || || <br /> |-<br /> | libMonoVirtualMachine || || || <br /> |-<br /> | libSceAbstractLocal || || || ps4<br /> |-<br /> | libSceAbstractStorage || || || <br /> |-<br /> | libSceAbstractTwitter || || || <br /> |-<br /> | libSceAc3Enc || || || <br /> |-<br /> | libSceAjm || || || <br /> |-<br /> | libSceAppContent || SCE_SYSMODULE_APP_CONTENT || 0x00B4 || AppContent<br /> |-<br /> | libSceAppInstUtil || || || <br /> |-<br /> | libSceAudio3d || SCE_SYSMODULE_AUDIO_3D || 0x00A7 || Audio3d library <br /> |-<br /> | libSceAudiodec || SCE_SYSMODULE_AUDIODEC || 0x0088 || Audiodec library <br /> |-<br /> | libSceAudiodecCpu || || || <br /> |-<br /> | libSceAudiodecCpuDdp || || || <br /> |-<br /> | libSceAudiodecCpuM4aac || || || <br /> |-<br /> | libSceAudioIn || || || <br /> |-<br /> | libSceAudioOut || || || <br /> |-<br /> | libSceAvcap || || || <br /> |-<br /> | libSceAvPlayer || SCE_SYSMODULE_AV_PLAYER || 0x00A5 || AvPlayer library<br /> |-<br /> | libSceAvSetting || || || <br /> |-<br /> | libSceBeisobmf || || || <br /> |-<br /> | libSceBemp2sys || || || <br /> |-<br /> | libSceBgft || || || <br /> |-<br /> | libSceCamera || || || <br /> |-<br /> | libSceCdlgUtilServer || || || <br /> |-<br /> | libSceCommonDialog || || || <br /> |-<br /> | libSceCompanionHttpd || SCE_SYSMODULE_COMPANION_HTTPD || 0x00AA || CompanionHttpd library<br /> |-<br /> | libSceCompanionUtil || SCE_SYSMODULE_COMPANION_UTIL || 0x0082 || CompanionUtil library<br /> |-<br /> | libSceCompositeExt || || || <br /> |-<br /> | libSceContentExport || SCE_SYSMODULE_CONTENT_EXPORT || 0x00A6 || ContentExport library<br /> |-<br /> | libSceContentSearch || SCE_SYSMODULE_CONTENT_SEARCH || 0x00C7 || ContentSearch library<br /> |-<br /> | libSceCtrlp || || || <br /> |-<br /> | libSceDbg || || || <br /> |-<br /> | libSceDbgKeyboard || SCE_SYSMODULE_DEBUG_KEYBOARD || 0x00A3 || DbgKeyboard library<br /> |-<br /> | libSceDepth || SCE_SYSMODULE_DEPTH || 0x0092 || Depth library<br /> |-<br /> | libSceDtsEnc || || || <br /> |-<br /> | libSceErrorDialog || SCE_SYSMODULE_ERROR_DIALOG || 0x00AC || ErrorDialog library<br /> |-<br /> | libSceFace || SCE_SYSMODULE_FACE || 0x0038 || Face library<br /> |-<br /> | libSceFiber || SCE_SYSMODULE_FIBER || 0x0006 || Fiber library<br /> |-<br /> | libSceFont || SCE_SYSMODULE_FONT || 0x0084 || Font library<br /> |-<br /> | libSceFontFt || SCE_SYSMODULE_FONT_FT || 0x0098 || Font interface for the Font library<br /> |-<br /> | libSceFreeTypeOt || SCE_SYSMODULE_FREETYPE_OT || 0x0099 || Font driver for the Font library (OpenType only)<br /> |-<br /> | libSceFreeTypeOl || SCE_SYSMODULE_FREETYPE_OL || 0x009A || Font driver for the Font library (overall outline fonts including OpenType)<br /> |-<br /> | libSceFreeTypeOptOl || SCE_SYSMODULE_FREETYPE_OPT_OL || 0x009B || Font driver for the Font library (outline fonts other than OpenType)<br /> |-<br /> | libSceHand || SCE_SYSMODULE_HAND || 0x0093 || Hand library<br /> |-<br /> | libSceGameCustomDataDialog || SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG || 0x00B8 || GameCustomDataDialog library<br /> |-<br /> | libSceGameLiveStreaming || SCE_SYSMODULE_GAME_LIVE_STREAMING || 0x0081 || GameLiveStreaming library<br /> |-<br /> | libSceGvMp4Parser || || || <br /> |-<br /> | libSceHidControl || || || <br /> |-<br /> | libSceHttp || || || <br /> |-<br /> | libSceIme || SCE_SYSMDOULE_LIBIME || 0x0095 || Ime library<br /> |-<br /> | libSceImeDialog || SCE_SYSMODULE_IME_DIALOG || 0x0096 || ImeDialog library<br /> |-<br /> | libSceInjectedBundle || || || <br /> |-<br /> | libSceInvitationDialog || SCE_SYSMODULE_INVITATION_DIALOG || 0x00A2 || InvitationDialog library<br /> |-<br /> | libSceIpmi || || || <br /> |-<br /> | libSceJitBridge || || || <br /> |-<br /> | libSceJpegDec || SCE_SYSMODULE_JPEG_DEC || 0x008A || JpegDec library<br /> |-<br /> | libSceJpegEnc || SCE_SYSMODULE_JPEG_ENC || 0x008B || JpegEnc library<br /> |-<br /> | libSceJpegParser || || || <br /> |-<br /> | libSceJscCompiler || || || <br /> |-<br /> | libSceJson || || || <br /> |-<br /> | libSceKbEmulate || || || <br /> |-<br /> | libSceKeyboard || || || <br /> |-<br /> | libSceM4aacEnc || SCE_SYSMODULE_M4AAC_ENC || 0x00BC || M4aacEnc library<br /> |-<br /> | libSceManxWtf || || || <br /> |-<br /> | libSceMbus || || || <br /> |-<br /> | libSceMetadataReaderWriter || || || <br /> |-<br /> | libSceMouse || SCE_SYSMODULE_MOUSE || 0x00A9 || Mouse library<br /> |-<br /> | libSceMove || SCE_SYSMODULE_MOVE || 0x008F || Move library<br /> |-<br /> | libSceMoveTracker || SCE_SYSMODULE_MOVE_TRACKER || 0x00B1 || MoveTracker library<br /> |-<br /> | libSceMsgDialog || SCE_SYSMODULE_MESSAGE_DIALOG || 0x00A4 || MsgDialog library<br /> |-<br /> | libSceMusicCoreServerClientJsEx || || || <br /> |-<br /> | libSceMusicCoreServerClient || || || <br /> |-<br /> | libSceNetCtl || || || <br /> |-<br /> | libSceNet || || || <br /> |-<br /> | libSceNgs2 || SCE_SYSMODULE_NGS2 || 0x000B || Ngs2 library<br /> |-<br /> | libSceNpAuth || SCE_SYSMODULE_NP_AUTH || 0x009D || NpAuth library<br /> |-<br /> | libSceNpCommerce || SCE_SYSMODULE_NP_COMMERCE || 0x00A8 || NpCommerce, NpCommerceDialog libraries<br /> |-<br /> | libSceNpCommon || || || <br /> |-<br /> | libSceNpFriendListDialog || SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG || 0x00B3 || NpFriendListDialog library<br /> |-<br /> | libSceNpManager || || || <br /> |-<br /> | libSceNpMatching2 || SCE_SYSMODULE_NP_MATCHING2 || 0x001C || NpMatching2 library<br /> |-<br /> | libSceNpParty || SCE_SYSMODULE_NP_PARTY || 0x0097 || Nparty library<br /> |-<br /> | libSceNpProfileDialog || SCE_SYSMODULE_NP_PROFILE_DIALOG || 0x00B2 || NpProfileDialog library<br /> |-<br /> | libSceNpScore || SCE_SYSMODULE_NP_SCORE_RANKING || 0x001E || NpScore library<br /> |-<br /> | libSceNpSignaling || SCE_SYSMODULE_NP_SIGNALING || 0x00B5 || NpSignaling library<br /> |-<br /> | libSceNpSns || SCE_SYSMODULE_NP_SNS_FACEBOOK || 0x00B0 || NpSnsFacebook library<br /> |-<br /> | libSceNpTrophy || SCE_SYSMODULE_NP_TROPHY || 0x00AD || NpTrophy library<br /> |-<br /> | libSceNpTus || SCE_SYSMODULE_NP_TUS || 0x002C || NpTus library<br /> |-<br /> | libSceNpUtility || SCE_SYSMODULE_NP_UTILITY || 0x0019 || NpBandwidthTest, NpLookup, NpWordFilter libraries<br /> |-<br /> | libSceNpWebApi || || || <br /> |-<br /> | libSceOrbisCompat || || || <br /> |-<br /> | libScePad || || || <br /> |-<br /> | libScePadTracker || SCE_SYSMODULE_PAD_TRACKER || 0x0091 || PadTracker library<br /> |-<br /> | libScePigletv2VSH || || || <br /> |-<br /> | libScePlayGoDev || SCE_SYSMODULE_PLAYGO || 0x0083 || PlayGo library<br /> |-<br /> | libScePngDec || SCE_SYSMODULE_PNG_DEC || 0x008C || PngDec library<br /> |-<br /> | libScePngEnc || SCE_SYSMODULE_PNG_ENC || 0x008D || PngEnc library<br /> |-<br /> | libScePsm || || || <br /> |-<br /> | libSceRazorGpuThreadTrace || SCE_SYSMODULE_RAZOR_GPU_THREAD_TRACE || 0x00BF || RazorGpuThreadTrace library<br /> |-<br /> | libSceRandom || || || <br /> |-<br /> | libSceRegMgr || || || <br /> |-<br /> | libSceRemotePlay || SCE_SYSMODULE_REMOTE_PLAY || 0x00B6 || Remoteplay library<br /> |-<br /> | libSceRtc || || || <br /> |-<br /> | libSceRudp || SCE_SYSMODULE_RUDP || 0x0021 || Rudp library<br /> |-<br /> | libSceS3DConversion || SCE_SYSMDOULE_S3DCONVERSION || 0x0086 || S3DConversion library<br /> |-<br /> | libSceSaveData || SCE_SYSMODULE_SAVE_DATA_DIALOG || 0x00A0 || SaveDataDialog library<br /> |-<br /> | libSceScreenShot || SCE_SYSMODULE_SCREEN_SHOT || 0x009C || ScreenShot library<br /> |-<br /> | libSceShaccVSH || || || <br /> |-<br /> | libSceSmart || SCE_SYSMODULE_SMART || 0x0039 || Smart library<br /> |-<br /> | libSceSsl || || || <br /> |-<br /> | libSceSulpha || SCE_SYSMODULE_SULPHA || 0x009F || Sulpha library<br /> |-<br /> | libSceSysmodule || || || <br /> |-<br /> | libSceSystemGesture || SCE_SYSMODULE_SYSTEM_GESTURE || 0x00CE || SystemGesture library<br /> |-<br /> | libSceSystemService || || || <br /> |-<br /> | libSceSysUtil || || || <br /> |-<br /> | libSceUpdateService || || || <br /> |-<br /> | libSceUlt || SCE_SYSMODULE_ULT || 0x0007 || Ult library<br /> |-<br /> | libSceUsbd || SCE_SYSMODULE_USBD || 0x00B7 || Usbd library<br /> |-<br /> | libSceUserService || || || <br /> |-<br /> | libSceVdecCore || || || <br /> |-<br /> | libSceVencCore || || || <br /> |-<br /> | libSceVideoCoreServerInterface || || || <br /> |-<br /> | libSceVideodec || SCE_SYSMODULE_VIDEODEC || 0x008E || Videodec library<br /> |-<br /> | libSceVideoRecording || SCE_SYSMODULE_VIDEO_RECORDING || 0x0085 || VideoRecording library<br /> |-<br /> | libSceVisionManager || || || <br /> |-<br /> | libSceVoice || SCE_SYSMODULE_VOICE || 0x001A || Voice library<br /> |-<br /> | libSceVoiceQos || SCE_SYSMODULE_VOICEQOS || 0x001B || VoiceQos library<br /> |-<br /> | libSceVsh_aot || || || <br /> |-<br /> | libSceVshCommon_aot || || || <br /> |-<br /> | libSceWebKit2 || || || <br /> |-<br /> | libSceWeb || || || <br /> |-<br /> | libSceWebBrowserDialog || SCE_SYSMODULE_WEB_BROWSER_DIALOG || 0x00AB || WebBrowserDialog library<br /> |-<br /> | libSceXml || SCE_SYSMODULE_XML || 0x0017 || Xml library<br /> |-<br /> |}<br /> <br /> == Libraries on firmware 4.07 ==<br /> {| class=&quot;wikitable sortable&quot;<br /> |-<br /> ! sprx !! Yes. !! &lt;abbr title=&quot;Loadable from Internet Browser?&quot;&gt;Loadable&lt;/abbr&gt;<br /> |-<br /> | libkernel || || <br /> |-<br /> | libcInternal || 0x04 || {{Yes2}} Yes <br /> |-<br /> | libSceFios2 || 0x03 || {{Yes2}} Yes <br /> |-<br /> | lbSceNet || || <br /> |-<br /> | libSceIpmi || || <br /> |-<br /> | libSceMbus || || <br /> |-<br /> | libSceRegMgr || || <br /> |-<br /> | libSceRtc || || <br /> |-<br /> | librt || || <br /> |-<br /> | libSceAvSetting || 0x0b || {{Yes2}} Yes <br /> |-<br /> | libSceVideoOut || || <br /> |-<br /> | libSceGnmDriver || 0x0d || {{Yes2}} Yes <br /> |-<br /> | libSceAudioOut || 0x0e || {{Yes2}} Yes <br /> |-<br /> | libSceAudioIn || 0x0f || {{Yes2}} Yes <br /> |-<br /> | libSceAjm || 0x10 || {{Yes2}} Yes <br /> |-<br /> | libScePad || || <br /> |-<br /> | libSceDbg || || <br /> |-<br /> | libSceNetCtl || || <br /> |-<br /> | libSceHttp || 0x14 || {{Yes2}} Yes <br /> |-<br /> | libSceSsl || || <br /> |-<br /> | libSceNpCommon || 0x16 || {{Yes2}} Yes <br /> |-<br /> | libSceNpManager || || <br /> |-<br /> | libSceNpWebApi || 0x18 || {{Yes2}} Yes <br /> |-<br /> | libSceSaveData || 0x19 || {{Yes2}} Yes <br /> |-<br /> | libSceSystemService || || <br /> |-<br /> | libSceUserService || 0x1b || {{Yes2}} Yes <br /> |-<br /> | libSceCommonDialog || 0x1c || {{Yes2}} Yes <br /> |-<br /> | libSceSysUtil || 0x1d || {{Yes2}} Yes <br /> |-<br /> | libScePerf || || <br /> |-<br /> | libSceCamera || 0x1f || {{Yes2}} Yes <br /> |-<br /> | libSceWebKit2ForVideoService || 0x20 || {{Yes2}} Yes <br /> |-<br /> | libSceOrbisCompatForVideoService || 0x21 || {{Yes2}} Yes <br /> |-<br /> | libSceDiscMap || 0x22 || {{Yes2}} Yes <br /> |-<br /> | libSceFiber || 0x31 || {{Yes2}} Yes <br /> |-<br /> | libSceUlt || 0x32 || {{Yes2}} Yes <br /> |-<br /> | libSceNgs2 || 0x33 || {{Yes2}} Yes <br /> |-<br /> | libSceXml || 0x34 || {{Yes2}} Yes <br /> |-<br /> | libSceNpUtility || || <br /> |-<br /> | libSceVoice || 0x36 || {{Yes2}} Yes <br /> |-<br /> | libSceNpMatching2 || 0x37 || {{Yes2}} Yes <br /> |-<br /> | libSceNpScoreRanking || || <br /> |-<br /> | libSceRudp || 0x39 || {{Yes2}} Yes <br /> |-<br /> | libSceNpTus || || <br /> |-<br /> | libSceFace || || <br /> |-<br /> | libSceSmart || || <br /> |-<br /> | libSceJson || 0x3d || {{Yes2}} Yes <br /> |-<br /> | libSceGameLiveStreaming || 0x3e || {{Yes2}} Yes <br /> |-<br /> | libSceCompanionUtil || 0x3f || {{Yes2}} Yes <br /> |-<br /> | libScePlayGo || 0x40 || {{Yes2}} Yes <br /> |-<br /> | libSceFont || 0x41 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoRecording || || <br /> |-<br /> | libSceAudiodec || || <br /> |-<br /> | libSceJpegDec || 0x44 || {{Yes2}} Yes <br /> |-<br /> | libSceJpegEnc || 0x45 || {{Yes2}} Yes <br /> |-<br /> | libScePngDec || 0x46 || {{Yes2}} Yes <br /> |-<br /> | libScePngEnc || 0x47 || {{Yes2}} Yes <br /> |-<br /> | libSceVideodec || 0x48 || {{Yes2}} Yes <br /> |-<br /> | libSceMove || 0x49 || {{Yes2}} Yes <br /> |-<br /> | libScePadTracker || 0x4b || {{Yes2}} Yes <br /> |-<br /> | libSceDepth || 0x4c || {{Yes2}} Yes <br /> |-<br /> | libSceHand || || <br /> |-<br /> | libSceIme || 0x4e || {{Yes2}} Yes <br /> |-<br /> | libSceImeDialog || 0x4f || {{Yes2}} Yes <br /> |-<br /> | libSceVdecCore || 0x50 || {{Yes2}} Yes <br /> |-<br /> | libSceNpParty || 0x51 || {{Yes2}} Yes <br /> |-<br /> | libSceAvcap || 0x52 || {{Yes2}} Yes <br /> |-<br /> | libSceFontFt || 0x53 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOt || 0x54 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOl || 0x55 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOptOl || 0x56 || {{Yes2}} Yes <br /> |-<br /> | libSceScreenShot || 0x57 || {{Yes2}} Yes <br /> |-<br /> | libSceNpAuth || || <br /> |-<br /> | libSceVoiceQos || 0x59 || {{Yes2}} Yes <br /> |-<br /> | libSceSysCore || || <br /> |-<br /> | libSceM4aacEnc || || <br /> |-<br /> | libSceAudiodecCpu || 0x5c || {{Yes2}} Yes <br /> |-<br /> | libSceCdlgUtilServer || || <br /> |-<br /> | libSceSulpha || || <br /> |-<br /> | libSceSaveDataDialog || 0x5f || {{Yes2}} Yes <br /> |-<br /> | libSceInvitationDialog || 0x60 || {{Yes2}} Yes <br /> |-<br /> | libSceKeyboard || 0x61 || {{Yes2}} Yes <br /> |-<br /> | libSceMsgDialog || 0x63 || {{Yes2}} Yes <br /> |-<br /> | libSceAvPlayer || 0x64 || {{Yes2}} Yes <br /> |-<br /> | libSceContentExport || 0x65 || {{Yes2}} Yes <br /> |-<br /> | libSceVisionManager || || <br /> |-<br /> | libSceAc3Enc || || <br /> |-<br /> | libSceAppInstUtil || || <br /> |-<br /> | libSceVencCore || || <br /> |-<br /> | libSceAudio3d || 0x6a || {{Yes2}} Yes <br /> |-<br /> | libSceNpCommerce || 0x6b || {{Yes2}} Yes <br /> |-<br /> | libSceHidControl || 0x6c || {{Yes2}} Yes <br /> |-<br /> | libSceMouse || 0x6d || {{Yes2}} Yes <br /> |-<br /> | libSceCompanionHttpd || 0x6e || {{Yes2}} Yes <br /> |-<br /> | libSceWebBrowserDialog || 0x6f || {{Yes2}} Yes <br /> |-<br /> | libSceErrorDialog || 0x70 || {{Yes2}} Yes <br /> |-<br /> | libSceNpTrophy || || <br /> |-<br /> | ulobjmgr || 0x72 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoCoreInterface || 0x73 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoCoreServerInterface || || <br /> |-<br /> | libSceNpSns || || <br /> |-<br /> | libSceNpSnsFacebookDialog || 0x76 || {{Yes2}} Yes <br /> |-<br /> | libSceMoveTracker || 0x77 || {{Yes2}} Yes <br /> |-<br /> | libSceNpProfileDialog || 0x78 || {{Yes2}} Yes <br /> |-<br /> | libSceNpFriendListDialog || 0x79 || {{Yes2}} Yes <br /> |-<br /> | libSceAppContent || 0x7a || {{Yes2}} Yes <br /> |-<br /> | libSceMarlin || || <br /> |-<br /> | libSceDtsEnc || || <br /> |-<br /> | libSceNpSignaling || 0x7d || {{Yes2}} Yes <br /> |-<br /> | libSceRemotePlay || 0x7e || {{Yes2}} Yes <br /> |-<br /> | libSceUsbd || 0x7f || {{Yes2}} Yes <br /> |-<br /> | libSceGameCustomDataDialog || 0x80 || {{Yes2}} Yes <br /> |-<br /> | libSceNpEulaDialog || 0x81 || {{Yes2}} Yes <br /> |-<br /> | libSceRandom || 0x82 || {{Yes2}} Yes <br /> |-<br /> | libSceDipsw || || <br /> |-<br /> | libSceS3DConversion || || <br /> |-<br /> | libSceOttvCapture || || <br /> |-<br /> | libSceBgft || 0x86 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDdp || 0x87 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuM4aac || 0x88 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDts || || <br /> |-<br /> | libSceAudiodecCpuDtsHdLbr || 0x8a || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDtsHdMa || || <br /> |-<br /> | libSceAudiodecCpuLpcm || || <br /> |-<br /> | libSceBemp2sys || 0x8d || {{Yes2}} Yes <br /> |-<br /> | libSceBeisobmf || 0x8e || {{Yes2}} Yes 566552<br /> |-<br /> | libScePlayReady || 0x8f || {{Yes2}} Yes <br /> |-<br /> | libSceVideoNativeExtEssential || 0x90 || {{Yes2}} Yes <br /> |-<br /> | libSceZlib || 0x91 || {{Yes2}} Yes <br /> |-<br /> | libSceIduUtil || 0x92 || {{Yes2}} Yes <br /> |-<br /> | libScePsm || 0x93 || {{Yes2}} Yes <br /> |-<br /> | libSceDtcpIp || 0x94 || {{Yes2}} Yes <br /> |-<br /> | libSceKbEmulate || 0x95 || {{Yes2}} Yes <br /> |-<br /> | libSceAppChecker || || <br /> |-<br /> | libSceNpGriefReport || 0x97 || {{Yes2}} Yes <br /> |-<br /> | libSceContentSearch || 0x98 || {{Yes2}} Yes <br /> |-<br /> | libSceShareUtility || 0x99 || {{Yes2}} Yes <br /> |-<br /> | libSceWeb || 0x9a || {{Yes2}} Yes <br /> |-<br /> | libSceWebKit2 || || <br /> |-<br /> | libSceDeci4h || || <br /> |-<br /> | libSceHeadTracker || || <br /> |-<br /> | libSceGameUpdate || 0x9e || {{Yes2}} Yes <br /> |-<br /> | libSceAutoMounterClient || 0x9f || {{Yes2}} Yes <br /> |-<br /> | libSceSystemGesture || 0xa0 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecSavc || 0xa1 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecSavc2 || 0xa2 || {{Yes2}} Yes <br /> |-<br /> | libSceVideodec2 || 0xa3 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecwrap || 0xa4 || {{Yes2}} Yes<br /> |-<br /> | libSceConvertKeycode || 0xa5 || {{Yes2}} Yes<br /> |}<br /> <br /> == List of Stubs ==<br /> &lt;pre&gt;<br /> libkernel_stub_weak<br /> libSceAjm_stub_weak<br /> libSceAppContent_stub_weak<br /> libSceAt9Enc_stub_weak<br /> libSceAudio3d_stub_weak<br /> libSceAudiodec_stub_weak<br /> libSceAudiodecCpu_stub_weak<br /> libSceAudiodecCpuHevag_stub_weak<br /> libSceAudioIn_stub_weak<br /> libSceAudioLatencyEstimation_stub_weak<br /> libSceAudioOut_stub_weak<br /> libSceAvPlayer_stub_weak<br /> libSceCamera_stub_weak<br /> libSceCommonDialog_stub_weak<br /> libSceCompanionHttpd_stub_weak<br /> libSceCompanionUtil_stub_weak<br /> libSceContentDelete_stub_weak<br /> libSceContentExport_stub_weak<br /> libSceContentSearch_stub_weak<br /> libSceConvertKeycode_stub_weak<br /> libSceCoredump_stub_weak<br /> libSceDbg_stub_weak<br /> libSceDbgAddressSanitizer_stub_weak<br /> libSceDbgAudioOut_stub_weak<br /> libSceDbgKeyboard_stub_weak<br /> libSceDbgPlayGo_stub_weak<br /> libSceDbgUBSanitizer_stub_weak<br /> libSceDbgVideoOut_stub_weak<br /> libSceDeci4h_stub_weak<br /> libSceDepth_stub_weak<br /> libSceEditMp4_stub_weak<br /> libSceErrorDialog_stub_weak<br /> libSceFace_stub_weak<br /> libSceFaceTracker_stub_weak<br /> libSceFiber_stub_weak<br /> libSceFios2_debug_stub_weak<br /> libSceFios2_stub_weak<br /> libSceFont_stub_weak<br /> libSceFontFt_stub_weak<br /> libSceGameCustomDataDialog_stub_weak<br /> libSceGameLiveStreaming_stub_weak<br /> libSceGnmDriver_stub_weak<br /> libSceGpuDebugger_stub_weak<br /> libSceHand_stub_weak<br /> libSceHandTracker_stub_weak<br /> libSceHeadTracker_stub_weak<br /> libSceHmd_stub_weak<br /> libSceHmdSetupDialog_stub_weak<br /> libSceHttp_stub_weak<br /> libSceIme_stub_weak<br /> libSceImeBackend_stub_weak<br /> libSceImeDialog_stub_weak<br /> libSceInvitationDialog_stub_weak<br /> libSceJobManager_stub_weak<br /> libSceJpegDec_stub_weak<br /> libSceJpegEnc_stub_weak<br /> libSceJson2_stub_weak<br /> libSceLoginDialog_stub_weak<br /> libSceLoginService_stub_weak<br /> libSceM4aacEnc_stub_weak<br /> libSceMat_stub_weak<br /> libSceMouse_stub_weak<br /> libSceMove_stub_weak<br /> libSceMoveTracker_stub_weak<br /> libSceMsgDialog_stub_weak<br /> libSceNet_stub_weak<br /> libSceNetCtl_stub_weak<br /> libSceNetCtlAp_stub_weak<br /> libSceNetCtlApDialog_stub_weak<br /> libSceNetDebug_stub_weak<br /> libSceNgs2_stub_weak<br /> libSceNpAuth_stub_weak<br /> libSceNpCommerce_stub_weak<br /> libSceNpCommon_stub_weak<br /> libSceNpFriendListDialog_stub_weak<br /> libSceNpManager_stub_weak<br /> libSceNpMatching2_stub_weak<br /> libSceNpParty_stub_weak<br /> libSceNpProfileDialog_stub_weak<br /> libSceNpScore_stub_weak<br /> libSceNpSignaling_stub_weak<br /> libSceNpSns_stub_weak<br /> libSceNpSnsFacebookDialog_stub_weak<br /> libSceNpToolkit_stub_weak<br /> libSceNpTrophy_stub_weak<br /> libSceNpTus_stub_weak<br /> libSceNpUtility_stub_weak<br /> libSceNpWebApi_stub_weak<br /> libScePad_stub_weak<br /> libScePadTracker_stub_weak<br /> libScePerf_stub_weak<br /> libScePlayGo_stub_weak<br /> libScePlayGoDialog_stub_weak<br /> libScePngDec_stub_weak<br /> libScePngEnc_stub_weak<br /> libScePosix_stub_weak<br /> libSceRandom_stub_weak<br /> libSceRazorGpuThreadTrace_stub_weak566<br /> libSceRemoteplay_stub_weak<br /> libSceRtc_stub_weak<br /> libSceRudp_stub_weak<br /> libSceS3DConversion_stub_weak<br /> libSceSaveData_stub_weak<br /> libSceSaveDataDialog_stub_weak<br /> libSceScreenShot_stub_weak<br /> libSceSharePlay_stub_weak<br /> libSceShareUtility_stub_weak<br /> libSceSigninDialog_stub_weak<br /> libSceSmart_stub_weak<br /> libSceSocialScreen_stub_weak<br /> libSceSsl_stub_weak<br /> libSceSulpha_stub_weak<br /> libSceSysmodule_stub_weak<br /> libSceSystemGesture_stub_weak<br /> libSceSystemService_stub_weak<br /> libSceUlt_stub_weak<br /> libSceUsbd_stub_weak<br /> libSceUserService_stub_weak<br /> libSceVideodec_stub_weak<br /> libSceVideodec2_stub_weak<br /> libSceVideoOut_stub_weak<br /> libSceVideoRecording_stub_weak<br /> libSceVoice_stub_weak<br /> libSceVoiceQoS_stub_weak<br /> libSceVrServiceDialog_stub_weak<br /> libSceVrTracker_stub_weak<br /> libSceWebBrowserDialog_stub_weak<br /> libSceXml_stub_weak<br /> libSceZlib_stub_weak<br /> &lt;/pre&gt;<br /> <br /> * Total Count: 131<br /> {{Reverse Engineering}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Package_Files&diff=276612 Package Files 2017-06-29T00:05:20Z <p>Red-EyeX32: /* Title XML */</p> <hr /> <div>{{wikify}}<br /> For more information, see {{talk}}<br /> <br /> == Package Structure ==<br /> === File Header ===<br /> While most of the PS4 is little endian, the package file header still uses big endianness as the headers are based on their PS3 predecessors.<br /> <br /> typedef struct {<br /> uint32_t pkg_magic; // 0x000<br /> uint16_t pkg_revision; // 0x004<br /> uint16_t pkg_type; // 0x006<br /> uint32_t pkg_unk; // 0x008 - unknown field<br /> uint32_t pkg_file_count; // 0x00C<br /> uint32_t pkg_table_ents; // 0x010<br /> uint16_t pkg_sys_ents; // 0x014<br /> uint16_t pkg_unk; // 0x016 - unknown field<br /> uint32_t pkg_table_offset; // 0x018 - file table offset<br /> uint32_t pkg_ent_data_size; // 0x01C<br /> uint32_t pkg_unk; // 0x020 - unknown field<br /> uint32_t pkg_body_offset; // 0x024 - seems to always be 0x200<br /> uint32_t pkg_body_unk; // 0x028 - unknown field<br /> uint32_t pkg_body_size; // 0x02C&lt;br&gt;<br /> unsigned char pkg_padding[0x10]; // 0x030 - 16 bytes padding<br /> unsigned char pkg_content_id[0x24]; // 0x040 - packages' content ID as a 36-byte string<br /> unsigned char pkg_padding[0x10]; // 0x064 - 16 bytes padding<br /> unsigned char pkg_unknown[0x8C]; // 0x074 - unknown data&lt;br&gt;<br /> /* Digest table */<br /> unsigned char digest_entries1[0x20]; // 0x100 - sha256 digest for main entry 1<br /> unsigned char digest_entries2[0x20]; // 0x120 - sha256 digest for main entry 2<br /> unsigned char digest_table_digest[0x20]; // 0x140 - sha256 digest for digest table<br /> unsigned char digest_body_digest[0x20]; // 0x160 - sha256 digest for main table<br /> }<br /> <br /> === Files ===<br /> The file table contains a pointer to a list of files in a package file when the package is of &quot;CNT&quot; magic, this pointer can be found as a 32-bit unsigned integer at 0x2B30. File names are separated by null bytes, and packages typically contain the following files:<br /> <br /> param.sfo - contains information critical to the app / game<br /> playgo-chunk.dat - contains data regarding playgo (see [http://www.psdevwiki.com/ps4/PlayGo Playgo])<br /> playgo-chunk.sha - contains hash of playgo (see [http://www.psdevwiki.com/ps4/PlayGo Playgo])<br /> playgo-manifest.xml - contains manifest for playgo (see [http://www.psdevwiki.com/ps4/PlayGo Playgo])<br /> pronunciation.xml - contains word definitions for PS4's voice recognition software<br /> pronunciation.sig - signature of definition file<br /> pic0.png - small game preview icon<br /> pic1.png - large game preview icon<br /> icon0.png - small icon<br /> icon1.png - large icon<br /> <br /> == Delivery ==<br /> === Title XML ===<br /> The PS4 fetches information about pkg files (including where to download them) from an XML file. <br /> This XML file contains information such as if the latest patch is mandatory, the latest package version, the manifest, as well as param.sfo information. Below is an example of a typical title XML file:<br /> <br /> &lt;titlepatch titleid=&quot;CUSAXXXXX&quot;&gt;<br /> &lt;tag name=&quot;37&quot; mandatory=&quot;true&quot;&gt;&lt;br&gt;<br /> &lt;package version=&quot;01.xx&quot; size=&quot;&quot; digest=&quot;&quot; manifest_url=&quot;&quot; content_id=&quot;&quot; system_ver=&quot;&quot; type=&quot;cumulative&quot; remaster=&quot;false&quot; patchgo=&quot;true&quot;&gt;<br /> &lt;delta_info_set url=&quot;&quot; /&gt;&lt;br&gt;<br /> &lt;paramsfo&gt;<br /> &lt;title&gt;&lt;/title&gt;<br /> ...<br /> &lt;/paramsfo&gt;<br /> &lt;/package&gt;&lt;br&gt;<br /> &lt;latest_playgo_manifest url=&quot;&quot; /&gt;<br /> &lt;/tag&gt;<br /> &lt;/titlepatch&gt;<br /> <br /> Notes:<br /> * The 'size' attribute of the 'package' node is in bytes<br /> * The 'system_ver' attribute of the 'package' node should be converted to hexadecimal for system firmware version<br /> * The 'delta_info_set' node may or may not be present depending on the package<br /> <br /> === Manifest ===<br /> It should be noted that PS4 package files have a maximum size of 4GB (or 4096MB), therefore large (most) games are split into chunks or pieces. This is kept track of in the manifest file, which contains json fields which document things such as the size of the final package after the chunks are spliced together, the digest of the final package, the number of chunks, as well as information for each chunk such as the pkg url, offset for splicing, size of the file, and the sha1 hash value of the individual chunk.<br /> <br /> originalFileSize: [size]<br /> packageDigest: &quot;[sha256 digest]&quot;<br /> numberOfSplitFiles: [num]<br /> <br /> pieces:<br /> [n]:<br /> url: &quot;[url of pkg chunk]&quot;<br /> fileOffset: [offset]<br /> fileSize: [size, often 4294967296 until last chunk]<br /> hashValue: &quot;[sha1 hash of chunk]&quot;<br /> <br /> == Sample Packages ==<br /> === Apps/Games ===<br /> * Amazon/LOVEFiLM App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00126_00/1/f_012ccf9936265867696e3906c9bd9f0fd1869111fa372b2d1fad0ca4127ba67b/f/EP4183-CUSA00126_00-AIV00000000000EU.pkg<br /> * Headset Begleit-App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00468_00/2/f_2e42a175df474235aa4e1fd5e5b6fe744433ce5165a109d9f25e8a56cc2dae02/f/EP9000-CUSA00468_00-HEADSETCOMPANION.pkg<br /> * IGN App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00268_00/2/f_d505314f45cf63825aba7b0d12e8d4d11248d43cb9da25ade13319a4dfc0835d/f/EP4436-CUSA00268_00-WEBMAF0000000IGN.pkg<br /> * Maxdome App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00115_00/5/f_ce26675e7d8ea8a746486ebe08772d680a597603293b866a1ac79efc519362eb/f/EP4374-CUSA00115_00-MAXDOMEFULLAPP00.pkg<br /> * Netflix App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00127_00/1/f_7ebe28278e8c18913cb0118bdb960e852d44aec490c238e74e899749c793cbaf/f/EP4350-CUSA00127_00-NETFLIXPOLLUX001.pkg<br /> * SingStar App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00033_00/3/f_3228ceaa0d67c882a7d21d67790e1216dd6dd1a5c69e93a3d6bf6edb46bcaca2/f/EP9000-CUSA00033_00-SINGSTARE3XX2013.pkg<br /> * VidZone App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA00235_00/5/f_6e74c11865320274ad56655f051502a3935bf33de4af448a268cac707e50025a/f/EP4071-CUSA00235_00-0000000000000000.pkg<br /> * YouTube App<br /> http://gs2.ww.prod.dl.playstation.net/gs2/appkgo/prod/CUSA01116_00/3/f_46f1700767dd845e919dd18aeb8fc1e96c4ba8ac6053b75f5ff3a0b8745d524a/f/EP4381-CUSA01116_00-YOUTUBESCEE00000.pkg<br /> <br /> === Themes ===<br /> * 20th Anniversary Dynamic Theme<br /> http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/5/f_3074fd8eb8322540c8742865a722c6773b031f68d517df3e18d7037fe58af7b0/f/EP9000-CUSA01501_00-20THANNITHEME001.pkg<br /> <br /> * AR-Roboter Dynamic Theme<br /> http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA00001_00/13/f_aef3a991112dfa798166c951f32b20870b1313f586bdc7788678ba6659671259/f/IP9100-CUSA00001_00-PLAYROOM0THEME01.pkg<br /> <br /> * Rechtecke Dynamic Theme<br /> http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/3/f_65216ee84a210c1541f395558498b451952b1a81fd4a9a0ae77e32b97aeb6122/f/EP9000-CUSA01501_00-0000000000000002.pkg<br /> <br /> * Papierskulptur Dynamic Theme<br /> http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/2/f_fc5c05478edf8847dc118d07225d6e58c630f088f5eae4d0559c88bdda674de6/f/EP9000-CUSA01501_00-0000000000000001.pkg<br /> <br /> * Spiralen Dynamic Theme<br /> http://gs2.ww.prod.dl.playstation.net/gs2/acpkgo/prod/CUSA01501_00/1/f_a6fb07c75a9776ca2f71e557a98620318bf11378c69d812f147c9f0fe12ee1c6/f/EP9000-CUSA01501_00-0000000000000003.pkg<br /> <br /> <br /> '''Source:''' https://boerse.to/thema/datenbank-fuer-ps4-psn-links.1979635/<br /> <br /> See also: [[PKG_files/rawlist1]], [[PKG_files/rawlist2]]<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Libraries&diff=276610 Libraries 2017-06-28T23:18:05Z <p>Red-EyeX32: </p> <hr /> <div>A list of library names can be found in libSceSysmodule.sprx which can be dumped from within the WebKit process.<br /> <br /> == Libraries available since firmware [[4.07]] ==<br /> {| class=&quot;wikitable sortable&quot;<br /> |-<br /> ! (s)prx !! Name !! ID !! <br /> |-<br /> | libc || - || - || C/C++ standard libraries<br /> |-<br /> | libSceFios2 || - || - || File Input/Output Scheduler 2<br /> |-<br /> | libMonoCompilerBridge || || || <br /> |-<br /> | libMonoCompiler || || || <br /> |-<br /> | libMonoVirtualMachineBridge || || || <br /> |-<br /> | libMonoVirtualMachine || || || <br /> |-<br /> | libSceAbstractLocal || || || ps4<br /> |-<br /> | libSceAbstractStorage || || || <br /> |-<br /> | libSceAbstractTwitter || || || <br /> |-<br /> | libSceAc3Enc || || || <br /> |-<br /> | libSceAjm || || || <br /> |-<br /> | libSceAppContent || SCE_SYSMODULE_APP_CONTENT || 0x00B4 || AppContent<br /> |-<br /> | libSceAppInstUtil || || || <br /> |-<br /> | libSceAudio3d || SCE_SYSMODULE_AUDIO_3D || 0x00A7 || Audio3d library <br /> |-<br /> | libSceAudiodec || SCE_SYSMODULE_AUDIODEC || 0x0088 || Audiodec library <br /> |-<br /> | libSceAudiodecCpu || || || <br /> |-<br /> | libSceAudiodecCpuDdp || || || <br /> |-<br /> | libSceAudiodecCpuM4aac || || || <br /> |-<br /> | libSceAudioIn || || || <br /> |-<br /> | libSceAudioOut || || || <br /> |-<br /> | libSceAvcap || || || <br /> |-<br /> | libSceAvPlayer || SCE_SYSMODULE_AV_PLAYER || 0x00A5 || AvPlayer library<br /> |-<br /> | libSceAvSetting || || || <br /> |-<br /> | libSceBeisobmf || || || <br /> |-<br /> | libSceBemp2sys || || || <br /> |-<br /> | libSceBgft || || || <br /> |-<br /> | libSceCamera || || || <br /> |-<br /> | libSceCdlgUtilServer || || || <br /> |-<br /> | libSceCommonDialog || || || <br /> |-<br /> | libSceCompanionHttpd || SCE_SYSMODULE_COMPANION_HTTPD || 0x00AA || CompanionHttpd library<br /> |-<br /> | libSceCompanionUtil || SCE_SYSMODULE_COMPANION_UTIL || 0x0082 || CompanionUtil library<br /> |-<br /> | libSceCompositeExt || || || <br /> |-<br /> | libSceContentExport || SCE_SYSMODULE_CONTENT_EXPORT || 0x00A6 || ContentExport library<br /> |-<br /> | libSceContentSearch || SCE_SYSMODULE_CONTENT_SEARCH || 0x00C7 || ContentSearch library<br /> |-<br /> | libSceCtrlp || || || <br /> |-<br /> | libSceDbg || || || <br /> |-<br /> | libSceDbgKeyboard || SCE_SYSMODULE_DEBUG_KEYBOARD || 0x00A3 || DbgKeyboard library<br /> |-<br /> | libSceDepth || SCE_SYSMODULE_DEPTH || 0x0092 || Depth library<br /> |-<br /> | libSceDtsEnc || || || <br /> |-<br /> | libSceErrorDialog || SCE_SYSMODULE_ERROR_DIALOG || 0x00AC || ErrorDialog library<br /> |-<br /> | libSceFace || SCE_SYSMODULE_FACE || 0x0038 || Face library<br /> |-<br /> | libSceFiber || SCE_SYSMODULE_FIBER || 0x0006 || Fiber library<br /> |-<br /> | libSceFont || SCE_SYSMODULE_FONT || 0x0084 || Font library<br /> |-<br /> | libSceFontFt || SCE_SYSMODULE_FONT_FT || 0x0098 || Font interface for the Font library<br /> |-<br /> | libSceFreeTypeOt || SCE_SYSMODULE_FREETYPE_OT || 0x0099 || Font driver for the Font library (OpenType only)<br /> |-<br /> | libSceFreeTypeOl || SCE_SYSMODULE_FREETYPE_OL || 0x009A || Font driver for the Font library (overall outline fonts including OpenType)<br /> |-<br /> | libSceFreeTypeOptOl || SCE_SYSMODULE_FREETYPE_OPT_OL || 0x009B || Font driver for the Font library (outline fonts other than OpenType)<br /> |-<br /> | libSceHand || SCE_SYSMODULE_HAND || 0x0093 || Hand library<br /> |-<br /> | libSceGameCustomDataDialog || SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG || 0x00B8 || GameCustomDataDialog library<br /> |-<br /> | libSceGameLiveStreaming || SCE_SYSMODULE_GAME_LIVE_STREAMING || 0x0081 || GameLiveStreaming library<br /> |-<br /> | libSceGvMp4Parser || || || <br /> |-<br /> | libSceHidControl || || || <br /> |-<br /> | libSceHttp || || || <br /> |-<br /> | libSceIme || SCE_SYSMDOULE_LIBIME || 0x0095 || Ime library<br /> |-<br /> | libSceImeDialog || SCE_SYSMODULE_IME_DIALOG || 0x0096 || ImeDialog library<br /> |-<br /> | libSceInjectedBundle || || || <br /> |-<br /> | libSceInvitationDialog || SCE_SYSMODULE_INVITATION_DIALOG || 0x00A2 || InvitationDialog library<br /> |-<br /> | libSceIpmi || || || <br /> |-<br /> | libSceJitBridge || || || <br /> |-<br /> | libSceJpegDec || SCE_SYSMODULE_JPEG_DEC || 0x008A || JpegDec library<br /> |-<br /> | libSceJpegEnc || SCE_SYSMODULE_JPEG_ENC || 0x008B || JpegEnc library<br /> |-<br /> | libSceJpegParser || || || <br /> |-<br /> | libSceJscCompiler || || || <br /> |-<br /> | libSceJson || || || <br /> |-<br /> | libSceKbEmulate || || || <br /> |-<br /> | libSceKeyboard || || || <br /> |-<br /> | libSceM4aacEnc || SCE_SYSMODULE_M4AAC_ENC || 0x00BC || M4aacEnc library<br /> |-<br /> | libSceManxWtf || || || <br /> |-<br /> | libSceMbus || || || <br /> |-<br /> | libSceMetadataReaderWriter || || || <br /> |-<br /> | libSceMouse || SCE_SYSMODULE_MOUSE || 0x00A9 || Mouse library<br /> |-<br /> | libSceMove || SCE_SYSMODULE_MOVE || 0x008F || Move library<br /> |-<br /> | libSceMoveTracker || SCE_SYSMODULE_MOVE_TRACKER || 0x00B1 || MoveTracker library<br /> |-<br /> | libSceMsgDialog || SCE_SYSMODULE_MESSAGE_DIALOG || 0x00A4 || MsgDialog library<br /> |-<br /> | libSceMusicCoreServerClientJsEx || || || <br /> |-<br /> | libSceMusicCoreServerClient || || || <br /> |-<br /> | libSceNetCtl || || || <br /> |-<br /> | libSceNet || || || <br /> |-<br /> | libSceNgs2 || SCE_SYSMODULE_NGS2 || 0x000B || Ngs2 library<br /> |-<br /> | libSceNpAuth || SCE_SYSMODULE_NP_AUTH || 0x009D || NpAuth library<br /> |-<br /> | libSceNpCommerce || SCE_SYSMODULE_NP_COMMERCE || 0x00A8 || NpCommerce, NpCommerceDialog libraries<br /> |-<br /> | libSceNpCommon || || || <br /> |-<br /> | libSceNpFriendListDialog || SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG || 0x00B3 || NpFriendListDialog library<br /> |-<br /> | libSceNpManager || || || <br /> |-<br /> | libSceNpMatching2 || SCE_SYSMODULE_NP_MATCHING2 || 0x001C || NpMatching2 library<br /> |-<br /> | libSceNpParty || SCE_SYSMODULE_NP_PARTY || 0x0097 || Nparty library<br /> |-<br /> | libSceNpProfileDialog || SCE_SYSMODULE_NP_PROFILE_DIALOG || 0x00B2 || NpProfileDialog library<br /> |-<br /> | libSceNpScore || SCE_SYSMODULE_NP_SCORE_RANKING || 0x001E || NpScore library<br /> |-<br /> | libSceNpSignaling || SCE_SYSMODULE_NP_SIGNALING || 0x00B5 || NpSignaling library<br /> |-<br /> | libSceNpSns || SCE_SYSMODULE_NP_SNS_FACEBOOK || 0x00B0 || NpSnsFacebook library<br /> |-<br /> | libSceNpTrophy || SCE_SYSMODULE_NP_TROPHY || 0x00AD || NpTrophy library<br /> |-<br /> | libSceNpTus || SCE_SYSMODULE_NP_TUS || 0x002C || NpTus library<br /> |-<br /> | libSceNpUtility || SCE_SYSMODULE_NP_UTILITY || 0x0019 || NpBandwidthTest, NpLookup, NpWordFilter libraries<br /> |-<br /> | libSceNpWebApi || || || <br /> |-<br /> | libSceOrbisCompat || || || <br /> |-<br /> | libScePad || || || <br /> |-<br /> | libScePadTracker || SCE_SYSMODULE_PAD_TRACKER || 0x0091 || PadTracker library<br /> |-<br /> | libScePigletv2VSH || || || <br /> |-<br /> | libScePlayGoDev || SCE_SYSMODULE_PLAYGO || 0x0083 || PlayGo library<br /> |-<br /> | libScePngDec || SCE_SYSMODULE_PNG_DEC || 0x008C || PngDec library<br /> |-<br /> | libScePngEnc || SCE_SYSMODULE_PNG_ENC || 0x008D || PngEnc library<br /> |-<br /> | libScePsm || || || <br /> |-<br /> | libSceRazorGpuThreadTrace || SCE_SYSMODULE_RAZOR_GPU_THREAD_TRACE || 0x00BF || RazorGpuThreadTrace library<br /> |-<br /> | libSceRandom || || || <br /> |-<br /> | libSceRegMgr || || || <br /> |-<br /> | libSceRemotePlay || SCE_SYSMODULE_REMOTE_PLAY || 0x00B6 || Remoteplay library<br /> |-<br /> | libSceRtc || || || <br /> |-<br /> | libSceRudp || SCE_SYSMODULE_RUDP || 0x0021 || Rudp library<br /> |-<br /> | libSceS3DConversion || SCE_SYSMDOULE_S3DCONVERSION || 0x0086 || S3DConversion library<br /> |-<br /> | libSceSaveData || SCE_SYSMODULE_SAVE_DATA_DIALOG || 0x00A0 || SaveDataDialog library<br /> |-<br /> | libSceScreenShot || SCE_SYSMODULE_SCREEN_SHOT || 0x009C || ScreenShot library<br /> |-<br /> | libSceShaccVSH || || || <br /> |-<br /> | libSceSmart || SCE_SYSMODULE_SMART || 0x0039 || Smart library<br /> |-<br /> | libSceSsl || || || <br /> |-<br /> | libSceSulpha || SCE_SYSMODULE_SULPHA || 0x009F || Sulpha library<br /> |-<br /> | libSceSysmodule || || || <br /> |-<br /> | libSceSystemGesture || SCE_SYSMODULE_SYSTEM_GESTURE || 0x00CE || SystemGesture library<br /> |-<br /> | libSceSystemService || || || <br /> |-<br /> | libSceSysUtil || || || <br /> |-<br /> | libSceUpdateService || || || <br /> |-<br /> | libSceUlt || SCE_SYSMODULE_ULT || 0x0007 || Ult library<br /> |-<br /> | libSceUsbd || SCE_SYSMODULE_USBD || 0x00B7 || Usbd library<br /> |-<br /> | libSceUserService || || || <br /> |-<br /> | libSceVdecCore || || || <br /> |-<br /> | libSceVencCore || || || <br /> |-<br /> | libSceVideoCoreServerInterface || || || <br /> |-<br /> | libSceVideodec || SCE_SYSMODULE_VIDEODEC || 0x008E || Videodec library<br /> |-<br /> | libSceVideoRecording || SCE_SYSMODULE_VIDEO_RECORDING || 0x0085 || VideoRecording library<br /> |-<br /> | libSceVisionManager || || || <br /> |-<br /> | libSceVoice || SCE_SYSMODULE_VOICE || 0x001A || Voice library<br /> |-<br /> | libSceVoiceQos || SCE_SYSMODULE_VOICEQOS || 0x001B || VoiceQos library<br /> |-<br /> | libSceVsh_aot || || || <br /> |-<br /> | libSceVshCommon_aot || || || <br /> |-<br /> | libSceWebKit2 || || || <br /> |-<br /> | libSceWeb || || || <br /> |-<br /> | libSceWebBrowserDialog || SCE_SYSMODULE_WEB_BROWSER_DIALOG || 0x00AB || WebBrowserDialog library<br /> |-<br /> | libSceXml || SCE_SYSMODULE_XML || 0x0017 || Xml library<br /> |-<br /> |}<br /> <br /> == Libraries on firmware 4.07 ==<br /> {| class=&quot;wikitable sortable&quot;<br /> |-<br /> ! sprx !! Yes. !! &lt;abbr title=&quot;Loadable from Internet Browser?&quot;&gt;Loadable&lt;/abbr&gt;<br /> |-<br /> | libkernel || || <br /> |-<br /> | libcInternal || 0x04 || {{Yes2}} Yes <br /> |-<br /> | libSceFios2 || 0x03 || {{Yes2}} Yes <br /> |-<br /> | lbSceNet || || <br /> |-<br /> | libSceIpmi || || <br /> |-<br /> | libSceMbus || || <br /> |-<br /> | libSceRegMgr || || <br /> |-<br /> | libSceRtc || || <br /> |-<br /> | librt || || <br /> |-<br /> | libSceAvSetting || 0x0b || {{Yes2}} Yes <br /> |-<br /> | libSceVideoOut || || <br /> |-<br /> | libSceGnmDriver || 0x0d || {{Yes2}} Yes <br /> |-<br /> | libSceAudioOut || 0x0e || {{Yes2}} Yes <br /> |-<br /> | libSceAudioIn || 0x0f || {{Yes2}} Yes <br /> |-<br /> | libSceAjm || 0x10 || {{Yes2}} Yes <br /> |-<br /> | libScePad || || <br /> |-<br /> | libSceDbg || || <br /> |-<br /> | libSceNetCtl || || <br /> |-<br /> | libSceHttp || 0x14 || {{Yes2}} Yes <br /> |-<br /> | libSceSsl || || <br /> |-<br /> | libSceNpCommon || 0x16 || {{Yes2}} Yes <br /> |-<br /> | libSceNpManager || || <br /> |-<br /> | libSceNpWebApi || 0x18 || {{Yes2}} Yes <br /> |-<br /> | libSceSaveData || 0x19 || {{Yes2}} Yes <br /> |-<br /> | libSceSystemService || || <br /> |-<br /> | libSceUserService || 0x1b || {{Yes2}} Yes <br /> |-<br /> | libSceCommonDialog || 0x1c || {{Yes2}} Yes <br /> |-<br /> | libSceSysUtil || 0x1d || {{Yes2}} Yes <br /> |-<br /> | libScePerf || || <br /> |-<br /> | libSceCamera || 0x1f || {{Yes2}} Yes <br /> |-<br /> | libSceWebKit2ForVideoService || 0x20 || {{Yes2}} Yes <br /> |-<br /> | libSceOrbisCompatForVideoService || 0x21 || {{Yes2}} Yes <br /> |-<br /> | libSceDiscMap || 0x22 || {{Yes2}} Yes <br /> |-<br /> | libSceFiber || 0x31 || {{Yes2}} Yes <br /> |-<br /> | libSceUlt || 0x32 || {{Yes2}} Yes <br /> |-<br /> | libSceNgs2 || 0x33 || {{Yes2}} Yes <br /> |-<br /> | libSceXml || 0x34 || {{Yes2}} Yes <br /> |-<br /> | libSceNpUtility || || <br /> |-<br /> | libSceVoice || 0x36 || {{Yes2}} Yes <br /> |-<br /> | libSceNpMatching2 || 0x37 || {{Yes2}} Yes <br /> |-<br /> | libSceNpScoreRanking || || <br /> |-<br /> | libSceRudp || 0x39 || {{Yes2}} Yes <br /> |-<br /> | libSceNpTus || || <br /> |-<br /> | libSceFace || || <br /> |-<br /> | libSceSmart || || <br /> |-<br /> | libSceJson || 0x3d || {{Yes2}} Yes <br /> |-<br /> | libSceGameLiveStreaming || 0x3e || {{Yes2}} Yes <br /> |-<br /> | libSceCompanionUtil || 0x3f || {{Yes2}} Yes <br /> |-<br /> | libScePlayGo || 0x40 || {{Yes2}} Yes <br /> |-<br /> | libSceFont || 0x41 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoRecording || || <br /> |-<br /> | libSceAudiodec || || <br /> |-<br /> | libSceJpegDec || 0x44 || {{Yes2}} Yes <br /> |-<br /> | libSceJpegEnc || 0x45 || {{Yes2}} Yes <br /> |-<br /> | libScePngDec || 0x46 || {{Yes2}} Yes <br /> |-<br /> | libScePngEnc || 0x47 || {{Yes2}} Yes <br /> |-<br /> | libSceVideodec || 0x48 || {{Yes2}} Yes <br /> |-<br /> | libSceMove || 0x49 || {{Yes2}} Yes <br /> |-<br /> | libScePadTracker || 0x4b || {{Yes2}} Yes <br /> |-<br /> | libSceDepth || 0x4c || {{Yes2}} Yes <br /> |-<br /> | libSceHand || || <br /> |-<br /> | libSceIme || 0x4e || {{Yes2}} Yes <br /> |-<br /> | libSceImeDialog || 0x4f || {{Yes2}} Yes <br /> |-<br /> | libSceVdecCore || 0x50 || {{Yes2}} Yes <br /> |-<br /> | libSceNpParty || 0x51 || {{Yes2}} Yes <br /> |-<br /> | libSceAvcap || 0x52 || {{Yes2}} Yes <br /> |-<br /> | libSceFontFt || 0x53 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOt || 0x54 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOl || 0x55 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOptOl || 0x56 || {{Yes2}} Yes <br /> |-<br /> | libSceScreenShot || 0x57 || {{Yes2}} Yes <br /> |-<br /> | libSceNpAuth || || <br /> |-<br /> | libSceVoiceQos || 0x59 || {{Yes2}} Yes <br /> |-<br /> | libSceSysCore || || <br /> |-<br /> | libSceM4aacEnc || || <br /> |-<br /> | libSceAudiodecCpu || 0x5c || {{Yes2}} Yes <br /> |-<br /> | libSceCdlgUtilServer || || <br /> |-<br /> | libSceSulpha || || <br /> |-<br /> | libSceSaveDataDialog || 0x5f || {{Yes2}} Yes <br /> |-<br /> | libSceInvitationDialog || 0x60 || {{Yes2}} Yes <br /> |-<br /> | libSceKeyboard || 0x61 || {{Yes2}} Yes <br /> |-<br /> | libSceMsgDialog || 0x63 || {{Yes2}} Yes <br /> |-<br /> | libSceAvPlayer || 0x64 || {{Yes2}} Yes <br /> |-<br /> | libSceContentExport || 0x65 || {{Yes2}} Yes <br /> |-<br /> | libSceVisionManager || || <br /> |-<br /> | libSceAc3Enc || || <br /> |-<br /> | libSceAppInstUtil || || <br /> |-<br /> | libSceVencCore || || <br /> |-<br /> | libSceAudio3d || 0x6a || {{Yes2}} Yes <br /> |-<br /> | libSceNpCommerce || 0x6b || {{Yes2}} Yes <br /> |-<br /> | libSceHidControl || 0x6c || {{Yes2}} Yes <br /> |-<br /> | libSceMouse || 0x6d || {{Yes2}} Yes <br /> |-<br /> | libSceCompanionHttpd || 0x6e || {{Yes2}} Yes <br /> |-<br /> | libSceWebBrowserDialog || 0x6f || {{Yes2}} Yes <br /> |-<br /> | libSceErrorDialog || 0x70 || {{Yes2}} Yes <br /> |-<br /> | libSceNpTrophy || || <br /> |-<br /> | ulobjmgr || 0x72 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoCoreInterface || 0x73 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoCoreServerInterface || || <br /> |-<br /> | libSceNpSns || || <br /> |-<br /> | libSceNpSnsFacebookDialog || 0x76 || {{Yes2}} Yes <br /> |-<br /> | libSceMoveTracker || 0x77 || {{Yes2}} Yes <br /> |-<br /> | libSceNpProfileDialog || 0x78 || {{Yes2}} Yes <br /> |-<br /> | libSceNpFriendListDialog || 0x79 || {{Yes2}} Yes <br /> |-<br /> | libSceAppContent || 0x7a || {{Yes2}} Yes <br /> |-<br /> | libSceMarlin || || <br /> |-<br /> | libSceDtsEnc || || <br /> |-<br /> | libSceNpSignaling || 0x7d || {{Yes2}} Yes <br /> |-<br /> | libSceRemotePlay || 0x7e || {{Yes2}} Yes <br /> |-<br /> | libSceUsbd || 0x7f || {{Yes2}} Yes <br /> |-<br /> | libSceGameCustomDataDialog || 0x80 || {{Yes2}} Yes <br /> |-<br /> | libSceNpEulaDialog || 0x81 || {{Yes2}} Yes <br /> |-<br /> | libSceRandom || 0x82 || {{Yes2}} Yes <br /> |-<br /> | libSceDipsw || || <br /> |-<br /> | libSceS3DConversion || || <br /> |-<br /> | libSceOttvCapture || || <br /> |-<br /> | libSceBgft || 0x86 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDdp || 0x87 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuM4aac || 0x88 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDts || || <br /> |-<br /> | libSceAudiodecCpuDtsHdLbr || 0x8a || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDtsHdMa || || <br /> |-<br /> | libSceAudiodecCpuLpcm || || <br /> |-<br /> | libSceBemp2sys || 0x8d || {{Yes2}} Yes <br /> |-<br /> | libSceBeisobmf || 0x8e || {{Yes2}} Yes 566552<br /> |-<br /> | libScePlayReady || 0x8f || {{Yes2}} Yes <br /> |-<br /> | libSceVideoNativeExtEssential || 0x90 || {{Yes2}} Yes <br /> |-<br /> | libSceZlib || 0x91 || {{Yes2}} Yes <br /> |-<br /> | libSceIduUtil || 0x92 || {{Yes2}} Yes <br /> |-<br /> | libScePsm || 0x93 || {{Yes2}} Yes <br /> |-<br /> | libSceDtcpIp || 0x94 || {{Yes2}} Yes <br /> |-<br /> | libSceKbEmulate || 0x95 || {{Yes2}} Yes <br /> |-<br /> | libSceAppChecker || || <br /> |-<br /> | libSceNpGriefReport || 0x97 || {{Yes2}} Yes <br /> |-<br /> | libSceContentSearch || 0x98 || {{Yes2}} Yes <br /> |-<br /> | libSceShareUtility || 0x99 || {{Yes2}} Yes <br /> |-<br /> | libSceWeb || 0x9a || {{Yes2}} Yes <br /> |-<br /> | libSceWebKit2 || || <br /> |-<br /> | libSceDeci4h || || <br /> |-<br /> | libSceHeadTracker || || <br /> |-<br /> | libSceGameUpdate || 0x9e || {{Yes2}} Yes <br /> |-<br /> | libSceAutoMounterClient || 0x9f || {{Yes2}} Yes <br /> |-<br /> | libSceSystemGesture || 0xa0 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecSavc || 0xa1 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecSavc2 || 0xa2 || {{Yes2}} Yes <br /> |-<br /> | libSceVideodec2 || 0xa3 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecwrap || 0xa4 || {{Yes2}} Yes<br /> |-<br /> | libSceConvertKeycode || 0xa5 || {{Yes2}} Yes<br /> |}<br /> <br /> == List of Stubs ==<br /> &lt;pre&gt;<br /> libkernel_stub_weak<br /> libSceAjm_stub_weak<br /> libSceAppContent_stub_weak<br /> libSceAt9Enc_stub_weak<br /> libSceAudio3d_stub_weak<br /> libSceAudiodec_stub_weak<br /> libSceAudiodecCpu_stub_weak<br /> libSceAudiodecCpuHevag_stub_weak<br /> libSceAudioIn_stub_weak<br /> libSceAudioLatencyEstimation_stub_weak<br /> libSceAudioOut_stub_weak<br /> libSceAvPlayer_stub_weak<br /> libSceCamera_stub_weak<br /> libSceCommonDialog_stub_weak<br /> libSceCompanionHttpd_stub_weak<br /> libSceCompanionUtil_stub_weak<br /> libSceContentDelete_stub_weak<br /> libSceContentExport_stub_weak<br /> libSceContentSearch_stub_weak<br /> libSceConvertKeycode_stub_weak<br /> libSceCoredump_stub_weak<br /> libSceDbg_stub_weak<br /> libSceDbgAddressSanitizer_stub_weak<br /> libSceDbgAudioOut_stub_weak<br /> libSceDbgKeyboard_stub_weak<br /> libSceDbgPlayGo_stub_weak<br /> libSceDbgUBSanitizer_stub_weak<br /> libSceDbgVideoOut_stub_weak<br /> libSceDeci4h_stub_weak<br /> libSceDepth_stub_weak<br /> libSceEditMp4_stub_weak<br /> libSceErrorDialog_stub_weak<br /> libSceFace_stub_weak<br /> libSceFaceTracker_stub_weak<br /> libSceFiber_stub_weak<br /> libSceFios2_debug_stub_weak<br /> libSceFios2_stub_weak<br /> libSceFont_stub_weak<br /> libSceFontFt_stub_weak<br /> libSceGameCustomDataDialog_stub_weak<br /> libSceGameLiveStreaming_stub_weak<br /> libSceGnmDriver_stub_weak<br /> libSceGpuDebugger_stub_weak<br /> libSceHand_stub_weak<br /> libSceHandTracker_stub_weak<br /> libSceHeadTracker_stub_weak<br /> libSceHmd_stub_weak<br /> libSceHmdSetupDialog_stub_weak<br /> libSceHttp_stub_weak<br /> libSceIme_stub_weak<br /> libSceImeBackend_stub_weak<br /> libSceImeDialog_stub_weak<br /> libSceInvitationDialog_stub_weak<br /> libSceJobManager_stub_weak<br /> libSceJpegDec_stub_weak<br /> libSceJpegEnc_stub_weak<br /> libSceJson2_stub_weak<br /> libSceLoginDialog_stub_weak<br /> libSceLoginService_stub_weak<br /> libSceM4aacEnc_stub_weak<br /> libSceMat_stub_weak<br /> libSceMouse_stub_weak<br /> libSceMove_stub_weak<br /> libSceMoveTracker_stub_weak<br /> libSceMsgDialog_stub_weak<br /> libSceNet_stub_weak<br /> libSceNetCtl_stub_weak<br /> libSceNetCtlAp_stub_weak<br /> libSceNetCtlApDialog_stub_weak<br /> libSceNetDebug_stub_weak<br /> libSceNgs2_stub_weak<br /> libSceNpAuth_stub_weak<br /> libSceNpCommerce_stub_weak<br /> libSceNpCommon_stub_weak<br /> libSceNpFriendListDialog_stub_weak<br /> libSceNpManager_stub_weak<br /> libSceNpMatching2_stub_weak<br /> libSceNpParty_stub_weak<br /> libSceNpProfileDialog_stub_weak<br /> libSceNpScore_stub_weak<br /> libSceNpSignaling_stub_weak<br /> libSceNpSns_stub_weak<br /> libSceNpSnsFacebookDialog_stub_weak<br /> libSceNpToolkit_stub_weak<br /> libSceNpTrophy_stub_weak<br /> libSceNpTus_stub_weak<br /> libSceNpUtility_stub_weak<br /> libSceNpWebApi_stub_weak<br /> libScePad_stub_weak<br /> libScePadTracker_stub_weak<br /> libScePerf_stub_weak<br /> libScePlayGo_stub_weak<br /> libScePlayGoDialog_stub_weak<br /> libScePngDec_stub_weak<br /> libScePngEnc_stub_weak<br /> libScePosix_stub_weak<br /> libSceRandom_stub_weak<br /> libSceRazorGpuThreadTrace_stub_weak566<br /> libSceRemoteplay_stub_weak<br /> libSceRtc_stub_weak<br /> libSceRudp_stub_weak<br /> libSceS3DConversion_stub_weak<br /> libSceSaveData_stub_weak<br /> libSceSaveDataDialog_stub_weak<br /> libSceScreenShot_stub_weak<br /> libSceSharePlay_stub_weak<br /> libSceShareUtility_stub_weak<br /> libSceSigninDialog_stub_weak<br /> libSceSmart_stub_weak<br /> libSceSocialScreen_stub_weak<br /> libSceSsl_stub_weak<br /> libSceSulpha_stub_weak<br /> libSceSysmodule_stub_weak<br /> libSceSystemGesture_stub_weak<br /> libSceSystemService_stub_weak<br /> libSceUlt_stub_weak<br /> libSceUsbd_stub_weak<br /> libSceUserService_stub_weak<br /> libSceVideodec_stub_weak<br /> libSceVideodec2_stub_weak<br /> libSceVideoOut_stub_weak<br /> libSceVideoRecording_stub_weak<br /> libSceVoice_stub_weak<br /> libSceVoiceQoS_stub_weak<br /> libSceVrServiceDialog_stub_weak<br /> libSceVrTracker_stub_weak<br /> libSceWebBrowserDialog_stub_weak<br /> libSceXml_stub_weak<br /> libSceZlib_stub_weak<br /> &lt;/pre&gt;<br /> <br /> * Total Count: 131<br /> {{Reverse Engineering}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Libraries&diff=276609 Libraries 2017-06-28T23:17:16Z <p>Red-EyeX32: /* List of Stubs */</p> <hr /> <div>A list of library names can be found in libSceSysmodule.sprx which can be dumped from within the WebKit process.<br /> <br /> == Libraries available since firmware [[4.07]] ==<br /> {| class=&quot;wikitable sortable&quot;<br /> |-<br /> ! (s)prx !! Name !! ID !! <br /> |-<br /> | libc || - || - || C/C++ standard libraries<br /> |-<br /> | libSceFios2 || - || - || File Input/Output Scheduler 2<br /> |-<br /> | libMonoCompilerBridge || || || <br /> |-<br /> | libMonoCompiler || || || <br /> |-<br /> | libMonoVirtualMachineBridge || || || <br /> |-<br /> | libMonoVirtualMachine || || || <br /> |-<br /> | libSceAbstractLocal || || || ps4<br /> |-<br /> | libSceAbstractStorage || || || <br /> |-<br /> | libSceAbstractTwitter || || || <br /> |-<br /> | libSceAc3Enc || || || <br /> |-<br /> | libSceAjm || || || <br /> |-<br /> | libSceAppContent || SCE_SYSMODULE_APP_CONTENT || 0x00B4 || AppContent<br /> |-<br /> | libSceAppInstUtil || || || <br /> |-<br /> | libSceAudio3d || SCE_SYSMODULE_AUDIO_3D || 0x00A7 || Audio3d library <br /> |-<br /> | libSceAudiodec || SCE_SYSMODULE_AUDIODEC || 0x0088 || Audiodec library <br /> |-<br /> | libSceAudiodecCpu || || || <br /> |-<br /> | libSceAudiodecCpuDdp || || || <br /> |-<br /> | libSceAudiodecCpuM4aac || || || <br /> |-<br /> | libSceAudioIn || || || <br /> |-<br /> | libSceAudioOut || || || <br /> |-<br /> | libSceAvcap || || || <br /> |-<br /> | libSceAvPlayer || SCE_SYSMODULE_AV_PLAYER || 0x00A5 || AvPlayer library<br /> |-<br /> | libSceAvSetting || || || <br /> |-<br /> | libSceBeisobmf || || || <br /> |-<br /> | libSceBemp2sys || || || <br /> |-<br /> | libSceBgft || || || <br /> |-<br /> | libSceCamera || || || <br /> |-<br /> | libSceCdlgUtilServer || || || <br /> |-<br /> | libSceCommonDialog || || || <br /> |-<br /> | libSceCompanionHttpd || SCE_SYSMODULE_COMPANION_HTTPD || 0x00AA || CompanionHttpd library<br /> |-<br /> | libSceCompanionUtil || SCE_SYSMODULE_COMPANION_UTIL || 0x0082 || CompanionUtil library<br /> |-<br /> | libSceCompositeExt || || || <br /> |-<br /> | libSceContentExport || SCE_SYSMODULE_CONTENT_EXPORT || 0x00A6 || ContentExport library<br /> |-<br /> | libSceContentSearch || SCE_SYSMODULE_CONTENT_SEARCH || 0x00C7 || ContentSearch library<br /> |-<br /> | libSceCtrlp || || || <br /> |-<br /> | libSceDbg || || || <br /> |-<br /> | libSceDbgKeyboard || SCE_SYSMODULE_DEBUG_KEYBOARD || 0x00A3 || DbgKeyboard library<br /> |-<br /> | libSceDepth || SCE_SYSMODULE_DEPTH || 0x0092 || Depth library<br /> |-<br /> | libSceDtsEnc || || || <br /> |-<br /> | libSceErrorDialog || SCE_SYSMODULE_ERROR_DIALOG || 0x00AC || ErrorDialog library<br /> |-<br /> | libSceFace || SCE_SYSMODULE_FACE || 0x0038 || Face library<br /> |-<br /> | libSceFiber || SCE_SYSMODULE_FIBER || 0x0006 || Fiber library<br /> |-<br /> | libSceFont || SCE_SYSMODULE_FONT || 0x0084 || Font library<br /> |-<br /> | libSceFontFt || SCE_SYSMODULE_FONT_FT || 0x0098 || Font interface for the Font library<br /> |-<br /> | libSceFreeTypeOt || SCE_SYSMODULE_FREETYPE_OT || 0x0099 || Font driver for the Font library (OpenType only)<br /> |-<br /> | libSceFreeTypeOl || SCE_SYSMODULE_FREETYPE_OL || 0x009A || Font driver for the Font library (overall outline fonts including OpenType)<br /> |-<br /> | libSceFreeTypeOptOl || SCE_SYSMODULE_FREETYPE_OPT_OL || 0x009B || Font driver for the Font library (outline fonts other than OpenType)<br /> |-<br /> | libSceHand || SCE_SYSMODULE_HAND || 0x0093 || Hand library<br /> |-<br /> | libSceGameCustomDataDialog || SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG || 0x00B8 || GameCustomDataDialog library<br /> |-<br /> | libSceGameLiveStreaming || SCE_SYSMODULE_GAME_LIVE_STREAMING || 0x0081 || GameLiveStreaming library<br /> |-<br /> | libSceGvMp4Parser || || || <br /> |-<br /> | libSceHidControl || || || <br /> |-<br /> | libSceHttp || || || <br /> |-<br /> | libSceIme || SCE_SYSMDOULE_LIBIME || 0x0095 || Ime library<br /> |-<br /> | libSceImeDialog || SCE_SYSMODULE_IME_DIALOG || 0x0096 || ImeDialog library<br /> |-<br /> | libSceInjectedBundle || || || <br /> |-<br /> | libSceInvitationDialog || SCE_SYSMODULE_INVITATION_DIALOG || 0x00A2 || InvitationDialog library<br /> |-<br /> | libSceIpmi || || || <br /> |-<br /> | libSceJitBridge || || || <br /> |-<br /> | libSceJpegDec || SCE_SYSMODULE_JPEG_DEC || 0x008A || JpegDec library<br /> |-<br /> | libSceJpegEnc || SCE_SYSMODULE_JPEG_ENC || 0x008B || JpegEnc library<br /> |-<br /> | libSceJpegParser || || || <br /> |-<br /> | libSceJscCompiler || || || <br /> |-<br /> | libSceJson || || || <br /> |-<br /> | libSceKbEmulate || || || <br /> |-<br /> | libSceKeyboard || || || <br /> |-<br /> | libSceM4aacEnc || SCE_SYSMODULE_M4AAC_ENC || 0x00BC || M4aacEnc library<br /> |-<br /> | libSceManxWtf || || || <br /> |-<br /> | libSceMbus || || || <br /> |-<br /> | libSceMetadataReaderWriter || || || <br /> |-<br /> | libSceMouse || SCE_SYSMODULE_MOUSE || 0x00A9 || Mouse library<br /> |-<br /> | libSceMove || SCE_SYSMODULE_MOVE || 0x008F || Move library<br /> |-<br /> | libSceMoveTracker || SCE_SYSMODULE_MOVE_TRACKER || 0x00B1 || MoveTracker library<br /> |-<br /> | libSceMsgDialog || SCE_SYSMODULE_MESSAGE_DIALOG || 0x00A4 || MsgDialog library<br /> |-<br /> | libSceMusicCoreServerClientJsEx || || || <br /> |-<br /> | libSceMusicCoreServerClient || || || <br /> |-<br /> | libSceNetCtl || || || <br /> |-<br /> | libSceNet || || || <br /> |-<br /> | libSceNgs2 || SCE_SYSMODULE_NGS2 || 0x000B || Ngs2 library<br /> |-<br /> | libSceNpAuth || SCE_SYSMODULE_NP_AUTH || 0x009D || NpAuth library<br /> |-<br /> | libSceNpCommerce || SCE_SYSMODULE_NP_COMMERCE || 0x00A8 || NpCommerce, NpCommerceDialog libraries<br /> |-<br /> | libSceNpCommon || || || <br /> |-<br /> | libSceNpFriendListDialog || SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG || 0x00B3 || NpFriendListDialog library<br /> |-<br /> | libSceNpManager || || || <br /> |-<br /> | libSceNpMatching2 || SCE_SYSMODULE_NP_MATCHING2 || 0x001C || NpMatching2 library<br /> |-<br /> | libSceNpParty || SCE_SYSMODULE_NP_PARTY || 0x0097 || Nparty library<br /> |-<br /> | libSceNpProfileDialog || SCE_SYSMODULE_NP_PROFILE_DIALOG || 0x00B2 || NpProfileDialog library<br /> |-<br /> | libSceNpScore || SCE_SYSMODULE_NP_SCORE_RANKING || 0x001E || NpScore library<br /> |-<br /> | libSceNpSignaling || SCE_SYSMODULE_NP_SIGNALING || 0x00B5 || NpSignaling library<br /> |-<br /> | libSceNpSns || SCE_SYSMODULE_NP_SNS_FACEBOOK || 0x00B0 || NpSnsFacebook library<br /> |-<br /> | libSceNpTrophy || SCE_SYSMODULE_NP_TROPHY || 0x00AD || NpTrophy library<br /> |-<br /> | libSceNpTus || SCE_SYSMODULE_NP_TUS || 0x002C || NpTus library<br /> |-<br /> | libSceNpUtility || SCE_SYSMODULE_NP_UTILITY || 0x0019 || NpBandwidthTest, NpLookup, NpWordFilter libraries<br /> |-<br /> | libSceNpWebApi || || || <br /> |-<br /> | libSceOrbisCompat || || || <br /> |-<br /> | libScePad || || || <br /> |-<br /> | libScePadTracker || SCE_SYSMODULE_PAD_TRACKER || 0x0091 || PadTracker library<br /> |-<br /> | libScePigletv2VSH || || || <br /> |-<br /> | libScePlayGoDev || SCE_SYSMODULE_PLAYGO || 0x0083 || PlayGo library<br /> |-<br /> | libScePngDec || SCE_SYSMODULE_PNG_DEC || 0x008C || PngDec library<br /> |-<br /> | libScePngEnc || SCE_SYSMODULE_PNG_ENC || 0x008D || PngEnc library<br /> |-<br /> | libScePsm || || || <br /> |-<br /> | libSceRazorGpuThreadTrace || SCE_SYSMODULE_RAZOR_GPU_THREAD_TRACE || 0x00BF || RazorGpuThreadTrace library<br /> |-<br /> | libSceRandom || || || <br /> |-<br /> | libSceRegMgr || || || <br /> |-<br /> | libSceRemotePlay || SCE_SYSMODULE_REMOTE_PLAY || 0x00B6 || Remoteplay library<br /> |-<br /> | libSceRtc || || || <br /> |-<br /> | libSceRudp || SCE_SYSMODULE_RUDP || 0x0021 || Rudp library<br /> |-<br /> | libSceS3DConversion || SCE_SYSMDOULE_S3DCONVERSION || 0x0086 || S3DConversion library<br /> |-<br /> | libSceSaveData || SCE_SYSMODULE_SAVE_DATA_DIALOG || 0x00A0 || SaveDataDialog library<br /> |-<br /> | libSceScreenShot || SCE_SYSMODULE_SCREEN_SHOT || 0x009C || ScreenShot library<br /> |-<br /> | libSceShaccVSH || || || <br /> |-<br /> | libSceSmart || SCE_SYSMODULE_SMART || 0x0039 || Smart library<br /> |-<br /> | libSceSsl || || || <br /> |-<br /> | libSceSulpha || SCE_SYSMODULE_SULPHA || 0x009F || Sulpha library<br /> |-<br /> | libSceSysmodule || || || <br /> |-<br /> | libSceSystemGesture || SCE_SYSMODULE_SYSTEM_GESTURE || 0x00CE || SystemGesture library<br /> |-<br /> | libSceSystemService || || || <br /> |-<br /> | libSceSysUtil || || || <br /> |-<br /> | libSceUpdateService || || || <br /> |-<br /> | libSceUlt || SCE_SYSMODULE_ULT || 0x0007 || Ult library<br /> |-<br /> | libSceUsbd || SCE_SYSMODULE_USBD || 0x00B7 || Usbd library<br /> |-<br /> | libSceUserService || || || <br /> |-<br /> | libSceVdecCore || || || <br /> |-<br /> | libSceVencCore || || || <br /> |-<br /> | libSceVideoCoreServerInterface || || || <br /> |-<br /> | libSceVideodec || SCE_SYSMODULE_VIDEODEC || 0x008E || Videodec library<br /> |-<br /> | libSceVideoRecording || SCE_SYSMODULE_VIDEO_RECORDING || 0x0085 || VideoRecording library<br /> |-<br /> | libSceVisionManager || || || <br /> |-<br /> | libSceVoice || SCE_SYSMODULE_VOICE || 0x001A || Voice library<br /> |-<br /> | libSceVoiceQos || SCE_SYSMODULE_VOICEQOS || 0x001B || VoiceQos library<br /> |-<br /> | libSceVsh_aot || || || <br /> |-<br /> | libSceVshCommon_aot || || || <br /> |-<br /> | libSceWebKit2 || || || <br /> |-<br /> | libSceWeb || || || <br /> |-<br /> | libSceWebBrowserDialog || SCE_SYSMODULE_WEB_BROWSER_DIALOG || 0x00AB || WebBrowserDialog library<br /> |-<br /> | libSceXml || SCE_SYSMODULE_XML || 0x0017 || Xml library<br /> |-<br /> |}<br /> <br /> == Libraries on firmware 4.07 ==<br /> {| class=&quot;wikitable sortable&quot;<br /> |-<br /> ! sprx !! Yes. !! &lt;abbr title=&quot;Loadable from Internet Browser?&quot;&gt;Loadable&lt;/abbr&gt;<br /> |-<br /> | libkernel || || <br /> |-<br /> | libcInternal || 0x04 || {{Yes2}} Yes <br /> |-<br /> | libSceFios2 || 0x03 || {{Yes2}} Yes <br /> |-<br /> | lbSceNet || || <br /> |-<br /> | libSceIpmi || || <br /> |-<br /> | libSceMbus || || <br /> |-<br /> | libSceRegMgr || || <br /> |-<br /> | libSceRtc || || <br /> |-<br /> | librt || || <br /> |-<br /> | libSceAvSetting || 0x0b || {{Yes2}} Yes <br /> |-<br /> | libSceVideoOut || || <br /> |-<br /> | libSceGnmDriver || 0x0d || {{Yes2}} Yes <br /> |-<br /> | libSceAudioOut || 0x0e || {{Yes2}} Yes <br /> |-<br /> | libSceAudioIn || 0x0f || {{Yes2}} Yes <br /> |-<br /> | libSceAjm || 0x10 || {{Yes2}} Yes <br /> |-<br /> | libScePad || || <br /> |-<br /> | libSceDbg || || <br /> |-<br /> | libSceNetCtl || || <br /> |-<br /> | libSceHttp || 0x14 || {{Yes2}} Yes <br /> |-<br /> | libSceSsl || || <br /> |-<br /> | libSceNpCommon || 0x16 || {{Yes2}} Yes <br /> |-<br /> | libSceNpManager || || <br /> |-<br /> | libSceNpWebApi || 0x18 || {{Yes2}} Yes <br /> |-<br /> | libSceSaveData || 0x19 || {{Yes2}} Yes <br /> |-<br /> | libSceSystemService || || <br /> |-<br /> | libSceUserService || 0x1b || {{Yes2}} Yes <br /> |-<br /> | libSceCommonDialog || 0x1c || {{Yes2}} Yes <br /> |-<br /> | libSceSysUtil || 0x1d || {{Yes2}} Yes <br /> |-<br /> | libScePerf || || <br /> |-<br /> | libSceCamera || 0x1f || {{Yes2}} Yes <br /> |-<br /> | libSceWebKit2ForVideoService || 0x20 || {{Yes2}} Yes <br /> |-<br /> | libSceOrbisCompatForVideoService || 0x21 || {{Yes2}} Yes <br /> |-<br /> | libSceDiscMap || 0x22 || {{Yes2}} Yes <br /> |-<br /> | libSceFiber || 0x31 || {{Yes2}} Yes <br /> |-<br /> | libSceUlt || 0x32 || {{Yes2}} Yes <br /> |-<br /> | libSceNgs2 || 0x33 || {{Yes2}} Yes <br /> |-<br /> | libSceXml || 0x34 || {{Yes2}} Yes <br /> |-<br /> | libSceNpUtility || || <br /> |-<br /> | libSceVoice || 0x36 || {{Yes2}} Yes <br /> |-<br /> | libSceNpMatching2 || 0x37 || {{Yes2}} Yes <br /> |-<br /> | libSceNpScoreRanking || || <br /> |-<br /> | libSceRudp || 0x39 || {{Yes2}} Yes <br /> |-<br /> | libSceNpTus || || <br /> |-<br /> | libSceFace || || <br /> |-<br /> | libSceSmart || || <br /> |-<br /> | libSceJson || 0x3d || {{Yes2}} Yes <br /> |-<br /> | libSceGameLiveStreaming || 0x3e || {{Yes2}} Yes <br /> |-<br /> | libSceCompanionUtil || 0x3f || {{Yes2}} Yes <br /> |-<br /> | libScePlayGo || 0x40 || {{Yes2}} Yes <br /> |-<br /> | libSceFont || 0x41 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoRecording || || <br /> |-<br /> | libSceAudiodec || || <br /> |-<br /> | libSceJpegDec || 0x44 || {{Yes2}} Yes <br /> |-<br /> | libSceJpegEnc || 0x45 || {{Yes2}} Yes <br /> |-<br /> | libScePngDec || 0x46 || {{Yes2}} Yes <br /> |-<br /> | libScePngEnc || 0x47 || {{Yes2}} Yes <br /> |-<br /> | libSceVideodec || 0x48 || {{Yes2}} Yes <br /> |-<br /> | libSceMove || 0x49 || {{Yes2}} Yes <br /> |-<br /> | libScePadTracker || 0x4b || {{Yes2}} Yes <br /> |-<br /> | libSceDepth || 0x4c || {{Yes2}} Yes <br /> |-<br /> | libSceHand || || <br /> |-<br /> | libSceIme || 0x4e || {{Yes2}} Yes <br /> |-<br /> | libSceImeDialog || 0x4f || {{Yes2}} Yes <br /> |-<br /> | libSceVdecCore || 0x50 || {{Yes2}} Yes <br /> |-<br /> | libSceNpParty || 0x51 || {{Yes2}} Yes <br /> |-<br /> | libSceAvcap || 0x52 || {{Yes2}} Yes <br /> |-<br /> | libSceFontFt || 0x53 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOt || 0x54 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOl || 0x55 || {{Yes2}} Yes <br /> |-<br /> | libSceFreeTypeOptOl || 0x56 || {{Yes2}} Yes <br /> |-<br /> | libSceScreenShot || 0x57 || {{Yes2}} Yes <br /> |-<br /> | libSceNpAuth || || <br /> |-<br /> | libSceVoiceQos || 0x59 || {{Yes2}} Yes <br /> |-<br /> | libSceSysCore || || <br /> |-<br /> | libSceM4aacEnc || || <br /> |-<br /> | libSceAudiodecCpu || 0x5c || {{Yes2}} Yes <br /> |-<br /> | libSceCdlgUtilServer || || <br /> |-<br /> | libSceSulpha || || <br /> |-<br /> | libSceSaveDataDialog || 0x5f || {{Yes2}} Yes <br /> |-<br /> | libSceInvitationDialog || 0x60 || {{Yes2}} Yes <br /> |-<br /> | libSceKeyboard || 0x61 || {{Yes2}} Yes <br /> |-<br /> | libSceMsgDialog || 0x63 || {{Yes2}} Yes <br /> |-<br /> | libSceAvPlayer || 0x64 || {{Yes2}} Yes <br /> |-<br /> | libSceContentExport || 0x65 || {{Yes2}} Yes <br /> |-<br /> | libSceVisionManager || || <br /> |-<br /> | libSceAc3Enc || || <br /> |-<br /> | libSceAppInstUtil || || <br /> |-<br /> | libSceVencCore || || <br /> |-<br /> | libSceAudio3d || 0x6a || {{Yes2}} Yes <br /> |-<br /> | libSceNpCommerce || 0x6b || {{Yes2}} Yes <br /> |-<br /> | libSceHidControl || 0x6c || {{Yes2}} Yes <br /> |-<br /> | libSceMouse || 0x6d || {{Yes2}} Yes <br /> |-<br /> | libSceCompanionHttpd || 0x6e || {{Yes2}} Yes <br /> |-<br /> | libSceWebBrowserDialog || 0x6f || {{Yes2}} Yes <br /> |-<br /> | libSceErrorDialog || 0x70 || {{Yes2}} Yes <br /> |-<br /> | libSceNpTrophy || || <br /> |-<br /> | ulobjmgr || 0x72 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoCoreInterface || 0x73 || {{Yes2}} Yes <br /> |-<br /> | libSceVideoCoreServerInterface || || <br /> |-<br /> | libSceNpSns || || <br /> |-<br /> | libSceNpSnsFacebookDialog || 0x76 || {{Yes2}} Yes <br /> |-<br /> | libSceMoveTracker || 0x77 || {{Yes2}} Yes <br /> |-<br /> | libSceNpProfileDialog || 0x78 || {{Yes2}} Yes <br /> |-<br /> | libSceNpFriendListDialog || 0x79 || {{Yes2}} Yes <br /> |-<br /> | libSceAppContent || 0x7a || {{Yes2}} Yes <br /> |-<br /> | libSceMarlin || || <br /> |-<br /> | libSceDtsEnc || || <br /> |-<br /> | libSceNpSignaling || 0x7d || {{Yes2}} Yes <br /> |-<br /> | libSceRemotePlay || 0x7e || {{Yes2}} Yes <br /> |-<br /> | libSceUsbd || 0x7f || {{Yes2}} Yes <br /> |-<br /> | libSceGameCustomDataDialog || 0x80 || {{Yes2}} Yes <br /> |-<br /> | libSceNpEulaDialog || 0x81 || {{Yes2}} Yes <br /> |-<br /> | libSceRandom || 0x82 || {{Yes2}} Yes <br /> |-<br /> | libSceDipsw || || <br /> |-<br /> | libSceS3DConversion || || <br /> |-<br /> | libSceOttvCapture || || <br /> |-<br /> | libSceBgft || 0x86 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDdp || 0x87 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuM4aac || 0x88 || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDts || || <br /> |-<br /> | libSceAudiodecCpuDtsHdLbr || 0x8a || {{Yes2}} Yes <br /> |-<br /> | libSceAudiodecCpuDtsHdMa || || <br /> |-<br /> | libSceAudiodecCpuLpcm || || <br /> |-<br /> | libSceBemp2sys || 0x8d || {{Yes2}} Yes <br /> |-<br /> | libSceBeisobmf || 0x8e || {{Yes2}} Yes 566552<br /> |-<br /> | libScePlayReady || 0x8f || {{Yes2}} Yes <br /> |-<br /> | libSceVideoNativeExtEssential || 0x90 || {{Yes2}} Yes <br /> |-<br /> | libSceZlib || 0x91 || {{Yes2}} Yes <br /> |-<br /> | libSceIduUtil || 0x92 || {{Yes2}} Yes <br /> |-<br /> | libScePsm || 0x93 || {{Yes2}} Yes <br /> |-<br /> | libSceDtcpIp || 0x94 || {{Yes2}} Yes <br /> |-<br /> | libSceKbEmulate || 0x95 || {{Yes2}} Yes <br /> |-<br /> | libSceAppChecker || || <br /> |-<br /> | libSceNpGriefReport || 0x97 || {{Yes2}} Yes <br /> |-<br /> | libSceContentSearch || 0x98 || {{Yes2}} Yes <br /> |-<br /> | libSceShareUtility || 0x99 || {{Yes2}} Yes <br /> |-<br /> | libSceWeb || 0x9a || {{Yes2}} Yes <br /> |-<br /> | libSceWebKit2 || || <br /> |-<br /> | libSceDeci4h || || <br /> |-<br /> | libSceHeadTracker || || <br /> |-<br /> | libSceGameUpdate || 0x9e || {{Yes2}} Yes <br /> |-<br /> | libSceAutoMounterClient || 0x9f || {{Yes2}} Yes <br /> |-<br /> | libSceSystemGesture || 0xa0 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecSavc || 0xa1 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecSavc2 || 0xa2 || {{Yes2}} Yes <br /> |-<br /> | libSceVideodec2 || 0xa3 || {{Yes2}} Yes <br /> |-<br /> | libSceVdecwrap || 0xa4 || {{Yes2}} Yes<br /> |-<br /> | libSceConvertKeycode || 0xa5 || {{Yes2}} Yes<br /> |}<br /> <br /> == List of Stubs ==<br /> libkernel_stub_weak<br /> libSceAjm_stub_weak<br /> libSceAppContent_stub_weak<br /> libSceAt9Enc_stub_weak<br /> libSceAudio3d_stub_weak<br /> libSceAudiodec_stub_weak<br /> libSceAudiodecCpu_stub_weak<br /> libSceAudiodecCpuHevag_stub_weak<br /> libSceAudioIn_stub_weak<br /> libSceAudioLatencyEstimation_stub_weak<br /> libSceAudioOut_stub_weak<br /> libSceAvPlayer_stub_weak<br /> libSceCamera_stub_weak<br /> libSceCommonDialog_stub_weak<br /> libSceCompanionHttpd_stub_weak<br /> libSceCompanionUtil_stub_weak<br /> libSceContentDelete_stub_weak<br /> libSceContentExport_stub_weak<br /> libSceContentSearch_stub_weak<br /> libSceConvertKeycode_stub_weak<br /> libSceCoredump_stub_weak<br /> libSceDbg_stub_weak<br /> libSceDbgAddressSanitizer_stub_weak<br /> libSceDbgAudioOut_stub_weak<br /> libSceDbgKeyboard_stub_weak<br /> libSceDbgPlayGo_stub_weak<br /> libSceDbgUBSanitizer_stub_weak<br /> libSceDbgVideoOut_stub_weak<br /> libSceDeci4h_stub_weak<br /> libSceDepth_stub_weak<br /> libSceEditMp4_stub_weak<br /> libSceErrorDialog_stub_weak<br /> libSceFace_stub_weak<br /> libSceFaceTracker_stub_weak<br /> libSceFiber_stub_weak<br /> libSceFios2_debug_stub_weak<br /> libSceFios2_stub_weak<br /> libSceFont_stub_weak<br /> libSceFontFt_stub_weak<br /> libSceGameCustomDataDialog_stub_weak<br /> libSceGameLiveStreaming_stub_weak<br /> libSceGnmDriver_stub_weak<br /> libSceGpuDebugger_stub_weak<br /> libSceHand_stub_weak<br /> libSceHandTracker_stub_weak<br /> libSceHeadTracker_stub_weak<br /> libSceHmd_stub_weak<br /> libSceHmdSetupDialog_stub_weak<br /> libSceHttp_stub_weak<br /> libSceIme_stub_weak<br /> libSceImeBackend_stub_weak<br /> libSceImeDialog_stub_weak<br /> libSceInvitationDialog_stub_weak<br /> libSceJobManager_stub_weak<br /> libSceJpegDec_stub_weak<br /> libSceJpegEnc_stub_weak<br /> libSceJson2_stub_weak<br /> libSceLoginDialog_stub_weak<br /> libSceLoginService_stub_weak<br /> libSceM4aacEnc_stub_weak<br /> libSceMat_stub_weak<br /> libSceMouse_stub_weak<br /> libSceMove_stub_weak<br /> libSceMoveTracker_stub_weak<br /> libSceMsgDialog_stub_weak<br /> libSceNet_stub_weak<br /> libSceNetCtl_stub_weak<br /> libSceNetCtlAp_stub_weak<br /> libSceNetCtlApDialog_stub_weak<br /> libSceNetDebug_stub_weak<br /> libSceNgs2_stub_weak<br /> libSceNpAuth_stub_weak<br /> libSceNpCommerce_stub_weak<br /> libSceNpCommon_stub_weak<br /> libSceNpFriendListDialog_stub_weak<br /> libSceNpManager_stub_weak<br /> libSceNpMatching2_stub_weak<br /> libSceNpParty_stub_weak<br /> libSceNpProfileDialog_stub_weak<br /> libSceNpScore_stub_weak<br /> libSceNpSignaling_stub_weak<br /> libSceNpSns_stub_weak<br /> libSceNpSnsFacebookDialog_stub_weak<br /> libSceNpToolkit_stub_weak<br /> libSceNpTrophy_stub_weak<br /> libSceNpTus_stub_weak<br /> libSceNpUtility_stub_weak<br /> libSceNpWebApi_stub_weak<br /> libScePad_stub_weak<br /> libScePadTracker_stub_weak<br /> libScePerf_stub_weak<br /> libScePlayGo_stub_weak<br /> libScePlayGoDialog_stub_weak<br /> libScePngDec_stub_weak<br /> libScePngEnc_stub_weak<br /> libScePosix_stub_weak<br /> libSceRandom_stub_weak<br /> libSceRazorGpuThreadTrace_stub_weak566<br /> libSceRemoteplay_stub_weak<br /> libSceRtc_stub_weak<br /> libSceRudp_stub_weak<br /> libSceS3DConversion_stub_weak<br /> libSceSaveData_stub_weak<br /> libSceSaveDataDialog_stub_weak<br /> libSceScreenShot_stub_weak<br /> libSceSharePlay_stub_weak<br /> libSceShareUtility_stub_weak<br /> libSceSigninDialog_stub_weak<br /> libSceSmart_stub_weak<br /> libSceSocialScreen_stub_weak<br /> libSceSsl_stub_weak<br /> libSceSulpha_stub_weak<br /> libSceSysmodule_stub_weak<br /> libSceSystemGesture_stub_weak<br /> libSceSystemService_stub_weak<br /> libSceUlt_stub_weak<br /> libSceUsbd_stub_weak<br /> libSceUserService_stub_weak<br /> libSceVideodec_stub_weak<br /> libSceVideodec2_stub_weak<br /> libSceVideoOut_stub_weak<br /> libSceVideoRecording_stub_weak<br /> libSceVoice_stub_weak<br /> libSceVoiceQoS_stub_weak<br /> libSceVrServiceDialog_stub_weak<br /> libSceVrTracker_stub_weak<br /> libSceWebBrowserDialog_stub_weak<br /> libSceXml_stub_weak<br /> libSceZlib_stub_weak<br /> &lt;/pre&gt;<br /> <br /> * Total Count: 131<br /> {{Reverse Engineering}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=276319 Trophy00.trp 2016-10-15T18:40:00Z <p>Red-EyeX32: /* Structure */</p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> unsigned int magic; // &quot;Ü¢M &quot; (0xDCA24D00)<br /> unsigned int version;<br /> unsigned long file_size; // size of full trp file<br /> unsigned int entry_num; // num entries<br /> unsigned int entry_size; // size of entry<br /> unsigned int dev_flag; // 1: dev<br /> unsigned char digest[20]; //sha1 hash<br /> unsigned int key_index;<br /> unsigned char padding[44];<br /> } trp_header;<br /> <br /> typedef struct {<br /> signed char entry_name[32];<br /> unsigned long entry_pos;<br /> unsigned long entry_len;<br /> unsigned int flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> unsigned char padding[12];<br /> } trp_entry;<br /> &lt;/source&gt;<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> ==== Killzone Shadow Fall (NPWR05506_00) TROP.ESFM ====<br /> &lt;source lang=&quot;xml&quot;&gt;<br /> &lt;!--Sce-Np-Trophy-Signature: 4c39b98c01000000000000008f5af5d6dbb6b31920c95b6df6592d9aa59de49893cf9bc69c060e21a1e599933eba7b3343ef26703dc553245022e4bb3ab67e27f5f6ac52c07480e8fe424854b226009ec06defb00d72dcdf4be793421ac2cc4d246439fcc1644e317465bcc1c7311afffa8094ba53adad0e4717a56954c7d34ffd6771b06883535389d484391fe67ac5123b1e557b4d22eec6b7c3201c916bad--&gt;<br /> &lt;trophyconf version=&quot;1.1&quot; platform=&quot;ps4&quot; policy=&quot;large&quot;&gt;<br /> &lt;npcommid&gt;NPWR05506_00&lt;/npcommid&gt;<br /> &lt;trophyset-version&gt;01.07&lt;/trophyset-version&gt;<br /> &lt;parental-level license-area=&quot;default&quot;&gt;0&lt;/parental-level&gt;<br /> &lt;title-name&gt;Killzone Shadow Fall&lt;/title-name&gt;<br /> &lt;title-detail&gt;Killzone Shadow Fall trophy set&lt;/title-detail&gt;<br /> &lt;group id=&quot;001&quot;&gt;<br /> &lt;name&gt;Insurgent Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Insurgent Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;group id=&quot;002&quot;&gt;<br /> &lt;name&gt;Intercept Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Intercept Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;trophy id=&quot;000&quot; hidden=&quot;no&quot; ttype=&quot;P&quot; pid=&quot;-1&quot;&gt;<br /> &lt;name&gt;Hero&lt;/name&gt;<br /> &lt;detail&gt;Obtain all Killzone Shadow Fall trophies&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;001&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Father&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Father'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;002&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Shadow&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Shadow'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;003&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Deniable&lt;/name&gt;<br /> &lt;detail&gt;In 'The Shadow', operate without raising an alarm or disabling the security mainframe&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;004&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Doctor&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Doctor'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;005&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Patriot&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Patriot'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;006&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Helghast&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Helghast'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;007&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Agent&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Agent'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;008&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Handler&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Handler'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;009&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Dead&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Dead'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;010&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Destroyer&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Destroyer'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;011&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;New Shadow&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', complete the mission without being spotted&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;012&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Violence is the answer?&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', kill 20 soldiers and still complete the mission&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;013&quot; hidden=&quot;yes&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Savior&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Savior' and prevent the escalation of a new war&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;014&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outsmarted&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, get a quadruple kill with a single Frag Grenade&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;015&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outgunned&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 6 Helghast with headshots within a single adrenaline rush&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;016&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outmaneuvered&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 5 Helghast with gunfire while ziplining&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;017&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Elite Shadow Marshal&lt;/name&gt;<br /> &lt;detail&gt;Complete all missions on Hard difficulty&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;018&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Conscientious Killer&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without shooting any civilians&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;019&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Shadows Cannot Be Killed&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without dying&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;020&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Gatherer&lt;/name&gt;<br /> &lt;detail&gt;Find 50% of the collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;021&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Knowledge&lt;/name&gt;<br /> &lt;detail&gt;Find all collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;022&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Tourist&lt;/name&gt;<br /> &lt;detail&gt;Complete a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;023&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Dominator&lt;/name&gt;<br /> &lt;detail&gt;Win a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;024&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;On Your Way&lt;/name&gt;<br /> &lt;detail&gt;Complete 200 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;025&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Multiplayer Elite&lt;/name&gt;<br /> &lt;detail&gt;Complete 400 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;026&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Million Points&lt;/name&gt;<br /> &lt;detail&gt;Get a total of 1,000,000 points in multiplayer&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;027&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Scout&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Scout ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;028&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Support&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Support ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;029&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Assault&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Assault ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;030&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Jack Of All Trades&lt;/name&gt;<br /> &lt;detail&gt;Max out all upgradable abilities&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;031&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Weapons Specialist&lt;/name&gt;<br /> &lt;detail&gt;Unlock all attachments for all weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;032&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Decorated&lt;/name&gt;<br /> &lt;detail&gt;Earn a total of 500 accolades&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;033&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Hacktivist&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Hacking Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;034&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Kleptomania&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Stealing Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;035&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;All Flavors&lt;/name&gt;<br /> &lt;detail&gt;Make a kill with all primary weapons as an Insurgent&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;036&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Finders Keepers&lt;/name&gt;<br /> &lt;detail&gt;Collect 25 Online Collectibles&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;037&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Remember me?&lt;/name&gt;<br /> &lt;detail&gt;Make 25 kills with each one of the Retro weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;038&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;New Toys!&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the E-Pulse Emitter, Tactical Echo Emitter, and Guard Drone&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;039&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Like a Boss&lt;/name&gt;<br /> &lt;detail&gt;Finish the campaign in Elite mode&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;040&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Pyromaniac&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Assault's Breacher automatic shotgun in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;041&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;High And Dry&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Marksman's LS70 sniper rifle in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;042&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Necromancer&lt;/name&gt;<br /> &lt;detail&gt;Revive 50 Team mates in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;043&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Tactical Triplets&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Tactician Turrets in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;044&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Bare Hands&lt;/name&gt;<br /> &lt;detail&gt;Get 5 brutal melee kills as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;045&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Wallstreet Banker&lt;/name&gt;<br /> &lt;detail&gt;Bank 2500 points as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;046&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Co-op Captain&lt;/name&gt;<br /> &lt;detail&gt;Win 50 co-op games&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;/trophyconf&gt;<br /> &lt;/source&gt;<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=276318 Trophy00.trp 2016-10-15T18:39:26Z <p>Red-EyeX32: /* Structure */</p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> unsigned int magic; // &quot;Ü¢M &quot; (0xDCA24D00)<br /> unsigned int version;<br /> unsigned long file_size; // size of full trp file<br /> unsigned int entry_num; // num entries<br /> unsigned int entry_size; // size of entry<br /> unsigned int dev_flag; // 1: dev<br /> unsigned char digest[20]; //sha1 hash<br /> unsigned int key_index;<br /> unsigned char padding[44];<br /> } trp_header;<br /> &lt;/source&gt;<br /> <br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> signed char entry_name[32];<br /> unsigned long entry_pos;<br /> unsigned long entry_len;<br /> unsigned int flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> unsigned char padding[12];<br /> } trp_entry;<br /> &lt;/source&gt;<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> ==== Killzone Shadow Fall (NPWR05506_00) TROP.ESFM ====<br /> &lt;source lang=&quot;xml&quot;&gt;<br /> &lt;!--Sce-Np-Trophy-Signature: 4c39b98c01000000000000008f5af5d6dbb6b31920c95b6df6592d9aa59de49893cf9bc69c060e21a1e599933eba7b3343ef26703dc553245022e4bb3ab67e27f5f6ac52c07480e8fe424854b226009ec06defb00d72dcdf4be793421ac2cc4d246439fcc1644e317465bcc1c7311afffa8094ba53adad0e4717a56954c7d34ffd6771b06883535389d484391fe67ac5123b1e557b4d22eec6b7c3201c916bad--&gt;<br /> &lt;trophyconf version=&quot;1.1&quot; platform=&quot;ps4&quot; policy=&quot;large&quot;&gt;<br /> &lt;npcommid&gt;NPWR05506_00&lt;/npcommid&gt;<br /> &lt;trophyset-version&gt;01.07&lt;/trophyset-version&gt;<br /> &lt;parental-level license-area=&quot;default&quot;&gt;0&lt;/parental-level&gt;<br /> &lt;title-name&gt;Killzone Shadow Fall&lt;/title-name&gt;<br /> &lt;title-detail&gt;Killzone Shadow Fall trophy set&lt;/title-detail&gt;<br /> &lt;group id=&quot;001&quot;&gt;<br /> &lt;name&gt;Insurgent Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Insurgent Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;group id=&quot;002&quot;&gt;<br /> &lt;name&gt;Intercept Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Intercept Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;trophy id=&quot;000&quot; hidden=&quot;no&quot; ttype=&quot;P&quot; pid=&quot;-1&quot;&gt;<br /> &lt;name&gt;Hero&lt;/name&gt;<br /> &lt;detail&gt;Obtain all Killzone Shadow Fall trophies&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;001&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Father&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Father'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;002&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Shadow&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Shadow'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;003&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Deniable&lt;/name&gt;<br /> &lt;detail&gt;In 'The Shadow', operate without raising an alarm or disabling the security mainframe&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;004&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Doctor&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Doctor'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;005&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Patriot&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Patriot'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;006&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Helghast&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Helghast'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;007&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Agent&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Agent'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;008&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Handler&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Handler'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;009&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Dead&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Dead'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;010&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Destroyer&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Destroyer'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;011&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;New Shadow&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', complete the mission without being spotted&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;012&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Violence is the answer?&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', kill 20 soldiers and still complete the mission&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;013&quot; hidden=&quot;yes&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Savior&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Savior' and prevent the escalation of a new war&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;014&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outsmarted&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, get a quadruple kill with a single Frag Grenade&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;015&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outgunned&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 6 Helghast with headshots within a single adrenaline rush&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;016&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outmaneuvered&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 5 Helghast with gunfire while ziplining&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;017&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Elite Shadow Marshal&lt;/name&gt;<br /> &lt;detail&gt;Complete all missions on Hard difficulty&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;018&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Conscientious Killer&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without shooting any civilians&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;019&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Shadows Cannot Be Killed&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without dying&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;020&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Gatherer&lt;/name&gt;<br /> &lt;detail&gt;Find 50% of the collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;021&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Knowledge&lt;/name&gt;<br /> &lt;detail&gt;Find all collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;022&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Tourist&lt;/name&gt;<br /> &lt;detail&gt;Complete a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;023&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Dominator&lt;/name&gt;<br /> &lt;detail&gt;Win a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;024&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;On Your Way&lt;/name&gt;<br /> &lt;detail&gt;Complete 200 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;025&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Multiplayer Elite&lt;/name&gt;<br /> &lt;detail&gt;Complete 400 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;026&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Million Points&lt;/name&gt;<br /> &lt;detail&gt;Get a total of 1,000,000 points in multiplayer&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;027&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Scout&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Scout ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;028&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Support&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Support ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;029&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Assault&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Assault ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;030&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Jack Of All Trades&lt;/name&gt;<br /> &lt;detail&gt;Max out all upgradable abilities&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;031&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Weapons Specialist&lt;/name&gt;<br /> &lt;detail&gt;Unlock all attachments for all weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;032&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Decorated&lt;/name&gt;<br /> &lt;detail&gt;Earn a total of 500 accolades&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;033&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Hacktivist&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Hacking Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;034&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Kleptomania&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Stealing Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;035&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;All Flavors&lt;/name&gt;<br /> &lt;detail&gt;Make a kill with all primary weapons as an Insurgent&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;036&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Finders Keepers&lt;/name&gt;<br /> &lt;detail&gt;Collect 25 Online Collectibles&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;037&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Remember me?&lt;/name&gt;<br /> &lt;detail&gt;Make 25 kills with each one of the Retro weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;038&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;New Toys!&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the E-Pulse Emitter, Tactical Echo Emitter, and Guard Drone&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;039&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Like a Boss&lt;/name&gt;<br /> &lt;detail&gt;Finish the campaign in Elite mode&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;040&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Pyromaniac&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Assault's Breacher automatic shotgun in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;041&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;High And Dry&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Marksman's LS70 sniper rifle in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;042&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Necromancer&lt;/name&gt;<br /> &lt;detail&gt;Revive 50 Team mates in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;043&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Tactical Triplets&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Tactician Turrets in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;044&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Bare Hands&lt;/name&gt;<br /> &lt;detail&gt;Get 5 brutal melee kills as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;045&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Wallstreet Banker&lt;/name&gt;<br /> &lt;detail&gt;Bank 2500 points as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;046&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Co-op Captain&lt;/name&gt;<br /> &lt;detail&gt;Win 50 co-op games&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;/trophyconf&gt;<br /> &lt;/source&gt;<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=276317 Trophy00.trp 2016-10-15T18:36:50Z <p>Red-EyeX32: /* Killzone Shadow Fall (NPWR05506_00) TROP.ESFM */</p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> unsigned int magic; // &quot;Ü¢M &quot; (0xDCA24D00)<br /> unsigned int version;<br /> unsigned long file_size; // size of full trp file<br /> unsigned int entry_num; // num entries<br /> unsigned int entry_size; // size of entry<br /> unsigned int dev_flag; // 1: dev<br /> unsigned char digest[32]; //sha1 hash<br /> unsigned int key_index;<br /> unsigned char padding[44];<br /> } trp_header;<br /> &lt;/source&gt;<br /> <br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> signed char entry_name[32];<br /> unsigned long entry_pos;<br /> unsigned long entry_len;<br /> unsigned int flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> unsigned char padding[12];<br /> } trp_entry;<br /> &lt;/source&gt;<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> ==== Killzone Shadow Fall (NPWR05506_00) TROP.ESFM ====<br /> &lt;source lang=&quot;xml&quot;&gt;<br /> &lt;!--Sce-Np-Trophy-Signature: 4c39b98c01000000000000008f5af5d6dbb6b31920c95b6df6592d9aa59de49893cf9bc69c060e21a1e599933eba7b3343ef26703dc553245022e4bb3ab67e27f5f6ac52c07480e8fe424854b226009ec06defb00d72dcdf4be793421ac2cc4d246439fcc1644e317465bcc1c7311afffa8094ba53adad0e4717a56954c7d34ffd6771b06883535389d484391fe67ac5123b1e557b4d22eec6b7c3201c916bad--&gt;<br /> &lt;trophyconf version=&quot;1.1&quot; platform=&quot;ps4&quot; policy=&quot;large&quot;&gt;<br /> &lt;npcommid&gt;NPWR05506_00&lt;/npcommid&gt;<br /> &lt;trophyset-version&gt;01.07&lt;/trophyset-version&gt;<br /> &lt;parental-level license-area=&quot;default&quot;&gt;0&lt;/parental-level&gt;<br /> &lt;title-name&gt;Killzone Shadow Fall&lt;/title-name&gt;<br /> &lt;title-detail&gt;Killzone Shadow Fall trophy set&lt;/title-detail&gt;<br /> &lt;group id=&quot;001&quot;&gt;<br /> &lt;name&gt;Insurgent Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Insurgent Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;group id=&quot;002&quot;&gt;<br /> &lt;name&gt;Intercept Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Intercept Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;trophy id=&quot;000&quot; hidden=&quot;no&quot; ttype=&quot;P&quot; pid=&quot;-1&quot;&gt;<br /> &lt;name&gt;Hero&lt;/name&gt;<br /> &lt;detail&gt;Obtain all Killzone Shadow Fall trophies&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;001&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Father&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Father'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;002&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Shadow&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Shadow'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;003&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Deniable&lt;/name&gt;<br /> &lt;detail&gt;In 'The Shadow', operate without raising an alarm or disabling the security mainframe&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;004&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Doctor&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Doctor'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;005&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Patriot&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Patriot'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;006&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Helghast&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Helghast'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;007&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Agent&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Agent'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;008&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Handler&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Handler'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;009&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Dead&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Dead'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;010&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Destroyer&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Destroyer'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;011&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;New Shadow&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', complete the mission without being spotted&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;012&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Violence is the answer?&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', kill 20 soldiers and still complete the mission&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;013&quot; hidden=&quot;yes&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Savior&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Savior' and prevent the escalation of a new war&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;014&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outsmarted&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, get a quadruple kill with a single Frag Grenade&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;015&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outgunned&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 6 Helghast with headshots within a single adrenaline rush&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;016&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outmaneuvered&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 5 Helghast with gunfire while ziplining&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;017&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Elite Shadow Marshal&lt;/name&gt;<br /> &lt;detail&gt;Complete all missions on Hard difficulty&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;018&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Conscientious Killer&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without shooting any civilians&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;019&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Shadows Cannot Be Killed&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without dying&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;020&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Gatherer&lt;/name&gt;<br /> &lt;detail&gt;Find 50% of the collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;021&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Knowledge&lt;/name&gt;<br /> &lt;detail&gt;Find all collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;022&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Tourist&lt;/name&gt;<br /> &lt;detail&gt;Complete a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;023&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Dominator&lt;/name&gt;<br /> &lt;detail&gt;Win a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;024&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;On Your Way&lt;/name&gt;<br /> &lt;detail&gt;Complete 200 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;025&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Multiplayer Elite&lt;/name&gt;<br /> &lt;detail&gt;Complete 400 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;026&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Million Points&lt;/name&gt;<br /> &lt;detail&gt;Get a total of 1,000,000 points in multiplayer&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;027&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Scout&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Scout ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;028&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Support&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Support ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;029&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Assault&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Assault ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;030&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Jack Of All Trades&lt;/name&gt;<br /> &lt;detail&gt;Max out all upgradable abilities&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;031&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Weapons Specialist&lt;/name&gt;<br /> &lt;detail&gt;Unlock all attachments for all weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;032&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Decorated&lt;/name&gt;<br /> &lt;detail&gt;Earn a total of 500 accolades&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;033&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Hacktivist&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Hacking Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;034&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Kleptomania&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Stealing Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;035&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;All Flavors&lt;/name&gt;<br /> &lt;detail&gt;Make a kill with all primary weapons as an Insurgent&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;036&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Finders Keepers&lt;/name&gt;<br /> &lt;detail&gt;Collect 25 Online Collectibles&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;037&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Remember me?&lt;/name&gt;<br /> &lt;detail&gt;Make 25 kills with each one of the Retro weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;038&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;New Toys!&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the E-Pulse Emitter, Tactical Echo Emitter, and Guard Drone&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;039&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Like a Boss&lt;/name&gt;<br /> &lt;detail&gt;Finish the campaign in Elite mode&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;040&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Pyromaniac&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Assault's Breacher automatic shotgun in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;041&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;High And Dry&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Marksman's LS70 sniper rifle in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;042&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Necromancer&lt;/name&gt;<br /> &lt;detail&gt;Revive 50 Team mates in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;043&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Tactical Triplets&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Tactician Turrets in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;044&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Bare Hands&lt;/name&gt;<br /> &lt;detail&gt;Get 5 brutal melee kills as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;045&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Wallstreet Banker&lt;/name&gt;<br /> &lt;detail&gt;Bank 2500 points as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;046&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Co-op Captain&lt;/name&gt;<br /> &lt;detail&gt;Win 50 co-op games&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;/trophyconf&gt;<br /> &lt;/source&gt;<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=276316 Trophy00.trp 2016-10-15T18:34:02Z <p>Red-EyeX32: </p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> unsigned int magic; // &quot;Ü¢M &quot; (0xDCA24D00)<br /> unsigned int version;<br /> unsigned long file_size; // size of full trp file<br /> unsigned int entry_num; // num entries<br /> unsigned int entry_size; // size of entry<br /> unsigned int dev_flag; // 1: dev<br /> unsigned char digest[32]; //sha1 hash<br /> unsigned int key_index;<br /> unsigned char padding[44];<br /> } trp_header;<br /> &lt;/source&gt;<br /> <br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> signed char entry_name[32];<br /> unsigned long entry_pos;<br /> unsigned long entry_len;<br /> unsigned int flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> unsigned char padding[12];<br /> } trp_entry;<br /> &lt;/source&gt;<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> ==== Killzone Shadow Fall (NPWR05506_00) TROP.ESFM ====<br /> &lt;source lang=&quot;xml&quot;&gt;<br /> &lt;!--Sce-Np-Trophy-Signature: 4c39b98c01000000000000008f5af5d6dbb6b31920c95b6df6592d9aa59de49893cf9bc69c060e21a1e599933eba7b3343ef26703dc553245022e4bb3ab67e27f5f6ac52c07480e8fe424854b226009ec06defb00d72dcdf4be793421ac2cc4d246439fcc1644e317465bcc1c7311afffa8094ba53adad0e4717a56954c7d34ffd6771b06883535389d484391fe67ac5123b1e557b4d22eec6b7c3201c916bad--&gt;<br /> &lt;trophyconf version=&quot;1.1&quot; platform=&quot;ps4&quot; policy=&quot;large&quot;&gt;<br /> &lt;npcommid&gt;NPWR05506_00&lt;/npcommid&gt;<br /> &lt;trophyset-version&gt;01.07&lt;/trophyset-version&gt;<br /> &lt;parental-level license-area=&quot;default&quot;&gt;0&lt;/parental-level&gt;<br /> &lt;title-name&gt;Killzone Shadow Fall&lt;/title-name&gt;<br /> &lt;title-detail&gt;Killzone Shadow Fall trophy set&lt;/title-detail&gt;<br /> &lt;group id=&quot;001&quot;&gt;<br /> &lt;name&gt;Insurgent Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Insurgent Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;group id=&quot;002&quot;&gt;<br /> &lt;name&gt;Intercept Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Intercept Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;trophy id=&quot;000&quot; hidden=&quot;no&quot; ttype=&quot;P&quot; pid=&quot;-1&quot;&gt;<br /> &lt;name&gt;Hero&lt;/name&gt;<br /> &lt;detail&gt;Obtain all Killzone Shadow Fall trophies&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;001&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Father&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Father'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;002&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Shadow&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Shadow'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;003&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Deniable&lt;/name&gt;<br /> &lt;detail&gt;In 'The Shadow', operate without raising an alarm or disabling the security mainframe&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;004&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Doctor&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Doctor'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;005&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Patriot&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Patriot'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;006&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Helghast&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Helghast'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;007&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Agent&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Agent'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;008&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Handler&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Handler'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;009&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Dead&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Dead'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;010&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Destroyer&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Destroyer'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;011&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;New Shadow&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', complete the mission without being spotted&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;012&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Violence is the answer?&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', kill 20 soldiers and still complete the mission&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;013&quot; hidden=&quot;yes&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Savior&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Savior' and prevent the escalation of a new war&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;014&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outsmarted&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, get a quadruple kill with a single Frag Grenade&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;015&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outgunned&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 6 Helghast with headshots within a single adrenaline rush&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;016&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outmaneuvered&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 5 Helghast with gunfire while ziplining&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;017&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Elite Shadow Marshal&lt;/name&gt;<br /> &lt;detail&gt;Complete all missions on Hard difficulty&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;018&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Conscientious Killer&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without shooting any civilians&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;019&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Shadows Cannot Be Killed&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without dying&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;020&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Gatherer&lt;/name&gt;<br /> &lt;detail&gt;Find 50% of the collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;021&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Knowledge&lt;/name&gt;<br /> &lt;detail&gt;Find all collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;022&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Tourist&lt;/name&gt;<br /> &lt;detail&gt;Complete a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;023&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Dominator&lt;/name&gt;<br /> &lt;detail&gt;Win a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;024&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;On Your Way&lt;/name&gt;<br /> &lt;detail&gt;Complete 200 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;025&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Multiplayer Elite&lt;/name&gt;<br /> &lt;detail&gt;Complete 400 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;026&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Million Points&lt;/name&gt;<br /> &lt;detail&gt;Get a total of 1,000,000 points in multiplayer&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;027&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Scout&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Scout ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;028&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Support&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Support ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;029&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Assault&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Assault ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;030&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Jack Of All Trades&lt;/name&gt;<br /> &lt;detail&gt;Max out all upgradable abilities&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;031&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Weapons Specialist&lt;/name&gt;<br /> &lt;detail&gt;Unlock all attachments for all weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;032&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Decorated&lt;/name&gt;<br /> &lt;detail&gt;Earn a total of 500 accolades&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;033&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Hacktivist&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Hacking Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;034&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Kleptomania&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Stealing Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;035&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;All Flavors&lt;/name&gt;<br /> &lt;detail&gt;Make a kill with all primary weapons as an Insurgent&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;036&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Finders Keepers&lt;/name&gt;<br /> &lt;detail&gt;Collect 25 Online Collectibles&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;037&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Remember me?&lt;/name&gt;<br /> &lt;detail&gt;Make 25 kills with each one of the Retro weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;038&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;New Toys!&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the E-Pulse Emitter, Tactical Echo Emitter, and Guard Drone&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;039&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Like a Boss&lt;/name&gt;<br /> &lt;detail&gt;Finish the campaign in Elite mode&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;040&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Pyromaniac&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Assault's Breacher automatic shotgun in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;041&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;High And Dry&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Marksman's LS70 sniper rifle in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;042&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Necromancer&lt;/name&gt;<br /> &lt;detail&gt;Revive 50 Team mates in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;043&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Tactical Triplets&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Tactician Turrets in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;044&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Bare Hands&lt;/name&gt;<br /> &lt;detail&gt;Get 5 brutal melee kills as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;045&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Wallstreet Banker&lt;/name&gt;<br /> &lt;detail&gt;Bank 2500 points as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;046&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Co-op Captain&lt;/name&gt;<br /> &lt;detail&gt;Win 50 co-op games&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;/trophyconf&gt;<br /> &lt;/source&gt;<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=276315 Trophy00.trp 2016-10-15T18:12:47Z <p>Red-EyeX32: Undo revision 275914 by Red-EyeX32 (talk)</p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct {<br /> u32 magic; //&quot;Ü¢M &quot; (0xDCA24D00)<br /> u32 version; //#3 on ps4 (1: PS3, 2: PS3 &amp; PS VITA)<br /> u64 file_size; //size of full trp file<br /> u32 entry_num; //num entries<br /> u32 entry_size; // size of entry<br /> u32 dev_flag; // 1: dev<br /> u8 digest[20]; //sha1 hash<br /> u32 key_index;<br /> u8 padding[0x2C];<br /> } trp_header;<br /> <br /> typedef struct{<br /> signed char entry_name[0x20];<br /> u64 entry_pos; //relative to &amp;buffer<br /> u64 entry_len;<br /> u32 flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 padding[0xC];<br /> } trp_entry;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> ==== Killzone Shadow Fall (NPWR05506_00) TROP.ESFM ====<br /> &lt;nowiki&gt;&lt;!--Sce-Np-Trophy-Signature: 4c39b98c01000000000000008f5af5d6dbb6b31920c95b6df6592d9aa59de49893cf9bc69c060e21a1e599933eba7b3343ef26703dc553245022e4bb3ab67e27f5f6ac52c07480e8fe424854b226009ec06defb00d72dcdf4be793421ac2cc4d246439fcc1644e317465bcc1c7311afffa8094ba53adad0e4717a56954c7d34ffd6771b06883535389d484391fe67ac5123b1e557b4d22eec6b7c3201c916bad--&gt;<br /> &lt;trophyconf version=&quot;1.1&quot; platform=&quot;ps4&quot; policy=&quot;large&quot;&gt;<br /> &lt;npcommid&gt;NPWR05506_00&lt;/npcommid&gt;<br /> &lt;trophyset-version&gt;01.07&lt;/trophyset-version&gt;<br /> &lt;parental-level license-area=&quot;default&quot;&gt;0&lt;/parental-level&gt;<br /> &lt;title-name&gt;Killzone Shadow Fall&lt;/title-name&gt;<br /> &lt;title-detail&gt;Killzone Shadow Fall trophy set&lt;/title-detail&gt;<br /> &lt;group id=&quot;001&quot;&gt;<br /> &lt;name&gt;Insurgent Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Insurgent Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;group id=&quot;002&quot;&gt;<br /> &lt;name&gt;Intercept Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Intercept Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;trophy id=&quot;000&quot; hidden=&quot;no&quot; ttype=&quot;P&quot; pid=&quot;-1&quot;&gt;<br /> &lt;name&gt;Hero&lt;/name&gt;<br /> &lt;detail&gt;Obtain all Killzone Shadow Fall trophies&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;001&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Father&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Father'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;002&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Shadow&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Shadow'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;003&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Deniable&lt;/name&gt;<br /> &lt;detail&gt;In 'The Shadow', operate without raising an alarm or disabling the security mainframe&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;004&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Doctor&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Doctor'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;005&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Patriot&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Patriot'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;006&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Helghast&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Helghast'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;007&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Agent&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Agent'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;008&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Handler&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Handler'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;009&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Dead&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Dead'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;010&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Destroyer&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Destroyer'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;011&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;New Shadow&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', complete the mission without being spotted&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;012&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Violence is the answer?&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', kill 20 soldiers and still complete the mission&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;013&quot; hidden=&quot;yes&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Savior&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Savior' and prevent the escalation of a new war&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;014&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outsmarted&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, get a quadruple kill with a single Frag Grenade&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;015&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outgunned&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 6 Helghast with headshots within a single adrenaline rush&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;016&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outmaneuvered&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 5 Helghast with gunfire while ziplining&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;017&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Elite Shadow Marshal&lt;/name&gt;<br /> &lt;detail&gt;Complete all missions on Hard difficulty&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;018&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Conscientious Killer&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without shooting any civilians&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;019&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Shadows Cannot Be Killed&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without dying&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;020&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Gatherer&lt;/name&gt;<br /> &lt;detail&gt;Find 50% of the collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;021&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Knowledge&lt;/name&gt;<br /> &lt;detail&gt;Find all collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;022&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Tourist&lt;/name&gt;<br /> &lt;detail&gt;Complete a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;023&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Dominator&lt;/name&gt;<br /> &lt;detail&gt;Win a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;024&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;On Your Way&lt;/name&gt;<br /> &lt;detail&gt;Complete 200 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;025&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Multiplayer Elite&lt;/name&gt;<br /> &lt;detail&gt;Complete 400 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;026&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Million Points&lt;/name&gt;<br /> &lt;detail&gt;Get a total of 1,000,000 points in multiplayer&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;027&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Scout&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Scout ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;028&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Support&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Support ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;029&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Assault&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Assault ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;030&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Jack Of All Trades&lt;/name&gt;<br /> &lt;detail&gt;Max out all upgradable abilities&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;031&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Weapons Specialist&lt;/name&gt;<br /> &lt;detail&gt;Unlock all attachments for all weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;032&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Decorated&lt;/name&gt;<br /> &lt;detail&gt;Earn a total of 500 accolades&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;033&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Hacktivist&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Hacking Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;034&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Kleptomania&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Stealing Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;035&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;All Flavors&lt;/name&gt;<br /> &lt;detail&gt;Make a kill with all primary weapons as an Insurgent&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;036&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Finders Keepers&lt;/name&gt;<br /> &lt;detail&gt;Collect 25 Online Collectibles&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;037&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Remember me?&lt;/name&gt;<br /> &lt;detail&gt;Make 25 kills with each one of the Retro weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;038&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;New Toys!&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the E-Pulse Emitter, Tactical Echo Emitter, and Guard Drone&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;039&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Like a Boss&lt;/name&gt;<br /> &lt;detail&gt;Finish the campaign in Elite mode&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;040&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Pyromaniac&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Assault's Breacher automatic shotgun in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;041&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;High And Dry&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Marksman's LS70 sniper rifle in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;042&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Necromancer&lt;/name&gt;<br /> &lt;detail&gt;Revive 50 Team mates in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;043&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Tactical Triplets&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Tactician Turrets in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;044&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Bare Hands&lt;/name&gt;<br /> &lt;detail&gt;Get 5 brutal melee kills as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;045&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Wallstreet Banker&lt;/name&gt;<br /> &lt;detail&gt;Bank 2500 points as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;046&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Co-op Captain&lt;/name&gt;<br /> &lt;detail&gt;Win 50 co-op games&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;/trophyconf&gt;&lt;/nowiki&gt;<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Sealedkey_/_pfsSKKey&diff=276288 Sealedkey / pfsSKKey 2016-10-07T05:36:01Z <p>Red-EyeX32: </p> <hr /> <div>This key can be found on different places and will be used for eg. SaveGame or Trophy Data decryption and encryption.<br /> ==== Paths ====<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Kind !! Path<br /> |-<br /> | Trophys || /user/home/[[User ID|user Id]]/trophy/data/[[sce_trop]]/sealedkey<br /> |-<br /> | SaveGames || /user/home/[[User ID|user Id]]/[[NP Title ID|title Id]]/[[save data directory]]/[[sce_sys]]/<br /> |}<br /> <br /> == Structure ==<br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || Magic (&quot;pfsSKKey&quot;) (?playstation file system sealed key key?)<br /> |-<br /> | 08 || 0F || Version (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Sealed Key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> '''C'''<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> const char magic[8];<br /> unsigned long version;<br /> unsigned char iv[16];<br /> unsigned char key[32];<br /> unsigned char digest[32];<br /> } sealed_key;<br /> &lt;/source&gt;<br /> <br /> == De/En -Crypting ==<br /> Can be decrypted by asking the OS to do it for you. You will need kernel rights to be able to ask the PS4 for it.<br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* Decryption */<br /> #define USER1 10000000<br /> #define usb0 &quot;/mnt/usb0/&quot;<br /> #define usb1 &quot;/mnt/usb1/&quot;<br /> #define pfs &quot;decrypted_pfsSKKey.key&quot;<br /> <br /> char usb_error = &quot;[-] ERROR: Can't access usb0 nor usb1!\n[-] Will return now to caller.\n&quot;<br /> char usb0path, usb1path;<br /> unsigned char pfsSKKey[96];<br /> <br /> // Get's the encrypted sealed key based on user id.<br /> int get_pfsSKKey(int userID)<br /> {<br /> FILE *pfskey = fopen(&quot;host0:/user/home/&quot; + userID + &quot;/trophy/data/sce_trop/sealedkey&quot;, &quot;r&quot;);<br /> <br /> if (pfskey == NULL)<br /> return 0;<br /> <br /> fread(pfsSKKey, 96, 1, pfskey);<br /> fclose(pfskey);<br /> return 1;<br /> }<br /> <br /> // Dump the sealedkey. Send over tcp and save to file.<br /> void dumpDecryptedSealedKey(int to)<br /> {<br /> int y = get_pfsSKKey(user1); // First load the key into a buffer.<br /> if (!y) {<br /> knet_printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> kernel.printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> return -1;<br /> }<br /> <br /> unsigned char decyrpted_pfsSKKey[16];<br /> int i = kernel.sceSblSsDecryptSealedKey(pfsSKKey, decrpyted_pfsSKKey); // Now decrpyt the key.<br /> knet_printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i);<br /> kernel.printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i); <br /> <br /> if (i) { // Sending over tcp.<br /> knet_printf(&quot;[+] Your save game key = &quot;);<br /> kernel.printf(&quot;[+] Your save game key = &quot;); <br /> <br /> for(int x =0; x &lt; 0x10; x++) {<br /> knet_printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> kernel.printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> }<br /> knet_printf(&quot;\n&quot;);<br /> kernel.printf(&quot;\n&quot;);<br /> <br /> <br /> if (to == 1) { // Saving to file.<br /> knet_printf(&quot;[+] Will try to save to file...&quot;);<br /> kernel.printf(&quot;[+] Will try to save to file...&quot;);<br /> <br /> usb0path = usb0 + pfs;<br /> usb1path = usb1 + pfs;<br /> FILE *dump = fopen(usb0path, &quot;w&quot;);<br /> <br /> if (dump == NULL) {<br /> dump = fopen(usb1path, &quot;w&quot;);<br /> if (dump == NULL) {<br /> knet_printf(&quot;fail!\n&quot; + usb_error);<br /> kernel.printf(&quot;fail!\n&quot; + usb_error);<br /> return -1;<br /> }<br /> }<br /> fwrite(dec_pfsSKKey, 0x10, 1, dump);<br /> knet_printf(&quot;done!\n&quot;);<br /> kernel.printf(&quot;done!\n&quot;);<br /> fclose(dump);<br /> }<br /> }<br /> else {<br /> knet_printf(&quot;[+] Error!\n&quot;);<br /> kernel.printf(&quot;[+] Error!\n&quot;);<br /> }<br /> }<br /> &lt;/source&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Sealedkey_/_pfsSKKey&diff=276287 Sealedkey / pfsSKKey 2016-10-07T05:35:26Z <p>Red-EyeX32: </p> <hr /> <div>This key can be found on different places and will be used for eg. SaveGame or Trophy Data decryption and encryption.<br /> ==== Paths ====<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Kind !! Path<br /> |-<br /> | Trophys || /user/home/[[User ID|user Id]]/trophy/data/[[sce_trop]]/sealedkey<br /> |-<br /> | SaveGames || /user/home/[[User ID|user Id]]/[[NP Title ID|title Id]]/[[save data directory]]/[[sce_sys]]/<br /> |}<br /> <br /> == Structure ==<br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || Magic (&quot;pfsSKKey&quot;) (?playstation file system sealed key key?)<br /> |-<br /> | 08 || 0F || Version (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Sealed Key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> '''C'''<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> const char magic;<br /> unsigned long version;<br /> unsigned char iv[16];<br /> unsigned char key[32];<br /> unsigned char digest[32];<br /> } sealed_key;<br /> &lt;/source&gt;<br /> <br /> == De/En -Crypting ==<br /> Can be decrypted by asking the OS to do it for you. You will need kernel rights to be able to ask the PS4 for it.<br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* Decryption */<br /> #define USER1 10000000<br /> #define usb0 &quot;/mnt/usb0/&quot;<br /> #define usb1 &quot;/mnt/usb1/&quot;<br /> #define pfs &quot;decrypted_pfsSKKey.key&quot;<br /> <br /> char usb_error = &quot;[-] ERROR: Can't access usb0 nor usb1!\n[-] Will return now to caller.\n&quot;<br /> char usb0path, usb1path;<br /> unsigned char pfsSKKey[96];<br /> <br /> // Get's the encrypted sealed key based on user id.<br /> int get_pfsSKKey(int userID)<br /> {<br /> FILE *pfskey = fopen(&quot;host0:/user/home/&quot; + userID + &quot;/trophy/data/sce_trop/sealedkey&quot;, &quot;r&quot;);<br /> <br /> if (pfskey == NULL)<br /> return 0;<br /> <br /> fread(pfsSKKey, 96, 1, pfskey);<br /> fclose(pfskey);<br /> return 1;<br /> }<br /> <br /> // Dump the sealedkey. Send over tcp and save to file.<br /> void dumpDecryptedSealedKey(int to)<br /> {<br /> int y = get_pfsSKKey(user1); // First load the key into a buffer.<br /> if (!y) {<br /> knet_printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> kernel.printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> return -1;<br /> }<br /> <br /> unsigned char decyrpted_pfsSKKey[16];<br /> int i = kernel.sceSblSsDecryptSealedKey(pfsSKKey, decrpyted_pfsSKKey); // Now decrpyt the key.<br /> knet_printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i);<br /> kernel.printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i); <br /> <br /> if (i) { // Sending over tcp.<br /> knet_printf(&quot;[+] Your save game key = &quot;);<br /> kernel.printf(&quot;[+] Your save game key = &quot;); <br /> <br /> for(int x =0; x &lt; 0x10; x++) {<br /> knet_printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> kernel.printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> }<br /> knet_printf(&quot;\n&quot;);<br /> kernel.printf(&quot;\n&quot;);<br /> <br /> <br /> if (to == 1) { // Saving to file.<br /> knet_printf(&quot;[+] Will try to save to file...&quot;);<br /> kernel.printf(&quot;[+] Will try to save to file...&quot;);<br /> <br /> usb0path = usb0 + pfs;<br /> usb1path = usb1 + pfs;<br /> FILE *dump = fopen(usb0path, &quot;w&quot;);<br /> <br /> if (dump == NULL) {<br /> dump = fopen(usb1path, &quot;w&quot;);<br /> if (dump == NULL) {<br /> knet_printf(&quot;fail!\n&quot; + usb_error);<br /> kernel.printf(&quot;fail!\n&quot; + usb_error);<br /> return -1;<br /> }<br /> }<br /> fwrite(dec_pfsSKKey, 0x10, 1, dump);<br /> knet_printf(&quot;done!\n&quot;);<br /> kernel.printf(&quot;done!\n&quot;);<br /> fclose(dump);<br /> }<br /> }<br /> else {<br /> knet_printf(&quot;[+] Error!\n&quot;);<br /> kernel.printf(&quot;[+] Error!\n&quot;);<br /> }<br /> }<br /> &lt;/source&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Sealedkey_/_pfsSKKey&diff=276286 Sealedkey / pfsSKKey 2016-10-07T05:34:32Z <p>Red-EyeX32: </p> <hr /> <div>This key can be found on different places and will be used for eg. SaveGame or Trophy Data decryption and encryption.<br /> ==== Paths ====<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Kind !! Path<br /> |-<br /> | Trophys || /user/home/[[User ID|user Id]]/trophy/data/[[sce_trop]]/sealedkey<br /> |-<br /> | SaveGames || /user/home/[[User ID|user Id]]/[[NP Title ID|title Id]]/[[save data directory]]/[[sce_sys]]/<br /> |}<br /> <br /> == Structure ==<br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || Magic (&quot;pfsSKKey&quot;) (?playstation file system sealed key key?)<br /> |-<br /> | 08 || 0F || Version (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Sealed Key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> '''C'''<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> const char magic;<br /> unsigned long version;<br /> unsigned char iv[16];<br /> unsigned char key[32];<br /> unsigned char digest[32];<br /> } sealed_key;<br /> &lt;/source&gt;<br /> <br /> Note: You can't use a const byte[] defination in C#. It need to be a static byte[].<br /> <br /> == De/En -Crypting ==<br /> Can be decrypted by frindly asking the OS to do it for you. You will need kernel rights to be able to ask the PS4 for it.<br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* Decryption */<br /> #define USER1 10000000<br /> #define usb0 &quot;/mnt/usb0/&quot;<br /> #define usb1 &quot;/mnt/usb1/&quot;<br /> #define pfs &quot;decrypted_pfsSKKey.key&quot;<br /> <br /> char usb_error = &quot;[-] ERROR: Can't access usb0 nor usb1!\n[-] Will return now to caller.\n&quot;<br /> char usb0path, usb1path;<br /> unsigned char pfsSKKey[96];<br /> <br /> // Get's the encrypted sealed key based on user id.<br /> int get_pfsSKKey(int userID)<br /> {<br /> FILE *pfskey = fopen(&quot;host0:/user/home/&quot; + userID + &quot;/trophy/data/sce_trop/sealedkey&quot;, &quot;r&quot;);<br /> <br /> if (pfskey == NULL)<br /> return 0;<br /> <br /> fread(pfsSKKey, 96, 1, pfskey);<br /> fclose(pfskey);<br /> return 1;<br /> }<br /> <br /> // Dump the sealedkey. Send over tcp and save to file.<br /> void dumpDecryptedSealedKey(int to)<br /> {<br /> int y = get_pfsSKKey(user1); // First load the key into a buffer.<br /> if (!y) {<br /> knet_printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> kernel.printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> return -1;<br /> }<br /> <br /> unsigned char decyrpted_pfsSKKey[16];<br /> int i = kernel.sceSblSsDecryptSealedKey(pfsSKKey, decrpyted_pfsSKKey); // Now decrpyt the key.<br /> knet_printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i);<br /> kernel.printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i); <br /> <br /> if (i) { // Sending over tcp.<br /> knet_printf(&quot;[+] Your save game key = &quot;);<br /> kernel.printf(&quot;[+] Your save game key = &quot;); <br /> <br /> for(int x =0; x &lt; 0x10; x++) {<br /> knet_printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> kernel.printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> }<br /> knet_printf(&quot;\n&quot;);<br /> kernel.printf(&quot;\n&quot;);<br /> <br /> <br /> if (to == 1) { // Saving to file.<br /> knet_printf(&quot;[+] Will try to save to file...&quot;);<br /> kernel.printf(&quot;[+] Will try to save to file...&quot;);<br /> <br /> usb0path = usb0 + pfs;<br /> usb1path = usb1 + pfs;<br /> FILE *dump = fopen(usb0path, &quot;w&quot;);<br /> <br /> if (dump == NULL) {<br /> dump = fopen(usb1path, &quot;w&quot;);<br /> if (dump == NULL) {<br /> knet_printf(&quot;fail!\n&quot; + usb_error);<br /> kernel.printf(&quot;fail!\n&quot; + usb_error);<br /> return -1;<br /> }<br /> }<br /> fwrite(dec_pfsSKKey, 0x10, 1, dump);<br /> knet_printf(&quot;done!\n&quot;);<br /> kernel.printf(&quot;done!\n&quot;);<br /> fclose(dump);<br /> }<br /> }<br /> else {<br /> knet_printf(&quot;[+] Error!\n&quot;);<br /> kernel.printf(&quot;[+] Error!\n&quot;);<br /> }<br /> }<br /> &lt;/source&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Sealedkey_/_pfsSKKey&diff=276284 Sealedkey / pfsSKKey 2016-10-05T19:20:47Z <p>Red-EyeX32: </p> <hr /> <div>This key can be found on different places and will be used for eg. SaveGame or Trophy Data decryption and encryption.<br /> ==== Paths ====<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Kind !! Path<br /> |-<br /> | Trophys || /user/home/[[User ID|user Id]]/trophy/data/[[sce_trop]]/sealedkey<br /> |-<br /> | SaveGames || /user/home/[[User ID|user Id]]/[[NP Title ID|title Id]]/[[save data directory]]/[[sce_sys]]/<br /> |}<br /> <br /> == Structure ==<br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || Magic (&quot;pfsSKKey&quot;) (?playstation file system sealed key key?)<br /> |-<br /> | 08 || 0F || Version (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Sealed Key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> '''C'''<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct {<br /> const char magic;<br /> unsigned long version;<br /> unsigned char iv[16];<br /> unsigned char key[32];<br /> unsigned char digest[32];<br /> } sealed_key;<br /> &lt;/source&gt;<br /> <br /> '''CSharp'''<br /> &lt;source lang=&quot;csharp&quot;&gt;<br /> private struct sealed_key {<br /> public string magic;<br /> public ulong version;<br /> public byte[] iv; // 16 bytes<br /> public byte[] key; // 32 bytes<br /> public byte[] digest; // 32 bytes<br /> }<br /> &lt;/source&gt;<br /> <br /> Note: You can't use a const byte[] defination in C#. It need to be a static byte[].<br /> <br /> == De/En -Crypting ==<br /> Can be decrypted by frindly asking the OS to do it for you. You will need kernel rights to be able to ask the PS4 for it.<br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* Decryption */<br /> #define USER1 10000000<br /> #define usb0 &quot;/mnt/usb0/&quot;<br /> #define usb1 &quot;/mnt/usb1/&quot;<br /> #define pfs &quot;decrypted_pfsSKKey.key&quot;<br /> <br /> char usb_error = &quot;[-] ERROR: Can't access usb0 nor usb1!\n[-] Will return now to caller.\n&quot;<br /> char usb0path, usb1path;<br /> unsigned char pfsSKKey[96];<br /> <br /> // Get's the encrypted sealed key based on user id.<br /> int get_pfsSKKey(int userID)<br /> {<br /> FILE *pfskey = fopen(&quot;host0:/user/home/&quot; + userID + &quot;/trophy/data/sce_trop/sealedkey&quot;, &quot;r&quot;);<br /> <br /> if (pfskey == NULL)<br /> return 0;<br /> <br /> fread(pfsSKKey, 96, 1, pfskey);<br /> fclose(pfskey);<br /> return 1;<br /> }<br /> <br /> // Dump the sealedkey. Send over tcp and save to file.<br /> void dumpDecryptedSealedKey(int to)<br /> {<br /> int y = get_pfsSKKey(user1); // First load the key into a buffer.<br /> if (!y) {<br /> knet_printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> kernel.printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> return -1;<br /> }<br /> <br /> unsigned char decyrpted_pfsSKKey[16];<br /> int i = kernel.sceSblSsDecryptSealedKey(pfsSKKey, decrpyted_pfsSKKey); // Now decrpyt the key.<br /> knet_printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i);<br /> kernel.printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i); <br /> <br /> if (i) { // Sending over tcp.<br /> knet_printf(&quot;[+] Your save game key = &quot;);<br /> kernel.printf(&quot;[+] Your save game key = &quot;); <br /> <br /> for(int x =0; x &lt; 0x10; x++) {<br /> knet_printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> kernel.printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> }<br /> knet_printf(&quot;\n&quot;);<br /> kernel.printf(&quot;\n&quot;);<br /> <br /> <br /> if (to == 1) { // Saving to file.<br /> knet_printf(&quot;[+] Will try to save to file...&quot;);<br /> kernel.printf(&quot;[+] Will try to save to file...&quot;);<br /> <br /> usb0path = usb0 + pfs;<br /> usb1path = usb1 + pfs;<br /> FILE *dump = fopen(usb0path, &quot;w&quot;);<br /> <br /> if (dump == NULL) {<br /> dump = fopen(usb1path, &quot;w&quot;);<br /> if (dump == NULL) {<br /> knet_printf(&quot;fail!\n&quot; + usb_error);<br /> kernel.printf(&quot;fail!\n&quot; + usb_error);<br /> return -1;<br /> }<br /> }<br /> fwrite(dec_pfsSKKey, 0x10, 1, dump);<br /> knet_printf(&quot;done!\n&quot;);<br /> kernel.printf(&quot;done!\n&quot;);<br /> fclose(dump);<br /> }<br /> }<br /> else {<br /> knet_printf(&quot;[+] Error!\n&quot;);<br /> kernel.printf(&quot;[+] Error!\n&quot;);<br /> }<br /> }<br /> &lt;/source&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Sealedkey_/_pfsSKKey&diff=276274 Sealedkey / pfsSKKey 2016-09-28T14:12:53Z <p>Red-EyeX32: /* Structure */</p> <hr /> <div>This key can be found on different places and will be used for eg. SaveGame or Trophy Data decryption and encryption.<br /> ==== Paths ====<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Kind !! Path<br /> |-<br /> | Trophys || /user/home/[[User ID|user Id]]/trophy/data/[[sce_trop]]/sealedkey<br /> |-<br /> | SaveGames || /user/home/[[User ID|user Id]]/[[NP Title ID|title Id]]/[[save data directory]]/[[sce_sys]]/<br /> |}<br /> <br /> == Structure ==<br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || Magic (&quot;pfsSKKey&quot;) (?playstation file system sealed key key?)<br /> |-<br /> | 08 || 0F || Version (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Sealed Key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> '''C'''<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct sealedkey {<br /> const unsigned char MAGIC;<br /> const unsigned char CAT;<br /> const unsigned char IV;<br /> const unsigned char KEY;<br /> const unsigned char SHA256;<br /> } selaedkey;<br /> &lt;/source&gt;<br /> <br /> '''CSharp'''<br /> &lt;source lang=&quot;csharp&quot;&gt;<br /> protected internal struct sealedkey {<br /> internal static byte[] MAGIC = new byte[8];<br /> internal static byte[] CAT = new byte[8];<br /> internal static byte[] IV = new byte[16];<br /> internal static byte[] KEY = new byte[32];<br /> internal static byte[] SHA256 = new byte[32];<br /> }<br /> &lt;/source&gt;<br /> <br /> Note: You can't use a const byte[] defination in C#. It need to be a static byte[].<br /> <br /> == De/En -Crypting ==<br /> Can be decrypted by frindly asking the OS to do it for you. You will need kernel rights to be able to ask the PS4 for it.<br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* Decryption */<br /> #define USER1 10000000<br /> #define usb0 &quot;/mnt/usb0/&quot;<br /> #define usb1 &quot;/mnt/usb1/&quot;<br /> #define pfs &quot;decrypted_pfsSKKey.key&quot;<br /> <br /> char usb_error = &quot;[-] ERROR: Can't access usb0 nor usb1!\n[-] Will return now to caller.\n&quot;<br /> char usb0path, usb1path;<br /> unsigned char pfsSKKey[96];<br /> <br /> // Get's the encrypted sealed key based on user id.<br /> int get_pfsSKKey(int userID)<br /> {<br /> FILE *pfskey = fopen(&quot;host0:/user/home/&quot; + userID + &quot;/trophy/data/sce_trop/sealedkey&quot;, &quot;r&quot;);<br /> <br /> if (pfskey == NULL)<br /> return 0;<br /> <br /> fread(pfsSKKey, 96, 1, pfskey);<br /> fclose(pfskey);<br /> return 1;<br /> }<br /> <br /> // Dump the sealedkey. Send over tcp and save to file.<br /> void dumpDecryptedSealedKey(int to)<br /> {<br /> int y = get_pfsSKKey(user1); // First load the key into a buffer.<br /> if (!y) {<br /> knet_printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> kernel.printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> return -1;<br /> }<br /> <br /> unsigned char decyrpted_pfsSKKey[16];<br /> int i = kernel.sceSblSsDecryptSealedKey(pfsSKKey, decrpyted_pfsSKKey); // Now decrpyt the key.<br /> knet_printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i);<br /> kernel.printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i); <br /> <br /> if (i) { // Sending over tcp.<br /> knet_printf(&quot;[+] Your save game key = &quot;);<br /> kernel.printf(&quot;[+] Your save game key = &quot;); <br /> <br /> for(int x =0; x &lt; 0x10; x++) {<br /> knet_printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> kernel.printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> }<br /> knet_printf(&quot;\n&quot;);<br /> kernel.printf(&quot;\n&quot;);<br /> <br /> <br /> if (to == 1) { // Saving to file.<br /> knet_printf(&quot;[+] Will try to save to file...&quot;);<br /> kernel.printf(&quot;[+] Will try to save to file...&quot;);<br /> <br /> usb0path = usb0 + pfs;<br /> usb1path = usb1 + pfs;<br /> FILE *dump = fopen(usb0path, &quot;w&quot;);<br /> <br /> if (dump == NULL) {<br /> dump = fopen(usb1path, &quot;w&quot;);<br /> if (dump == NULL) {<br /> knet_printf(&quot;fail!\n&quot; + usb_error);<br /> kernel.printf(&quot;fail!\n&quot; + usb_error);<br /> return -1;<br /> }<br /> }<br /> fwrite(dec_pfsSKKey, 0x10, 1, dump);<br /> knet_printf(&quot;done!\n&quot;);<br /> kernel.printf(&quot;done!\n&quot;);<br /> fclose(dump);<br /> }<br /> }<br /> else {<br /> knet_printf(&quot;[+] Error!\n&quot;);<br /> kernel.printf(&quot;[+] Error!\n&quot;);<br /> }<br /> }<br /> &lt;/source&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Sealedkey_/_pfsSKKey&diff=276273 Sealedkey / pfsSKKey 2016-09-28T14:12:31Z <p>Red-EyeX32: /* Structure */</p> <hr /> <div>This key can be found on different places and will be used for eg. SaveGame or Trophy Data decryption and encryption.<br /> ==== Paths ====<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Kind !! Path<br /> |-<br /> | Trophys || /user/home/[[User ID|user Id]]/trophy/data/[[sce_trop]]/sealedkey<br /> |-<br /> | SaveGames || /user/home/[[User ID|user Id]]/[[NP Title ID|title Id]]/[[save data directory]]/[[sce_sys]]/<br /> |}<br /> <br /> == Structure ==<br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || Magic (&quot;pfsSKKey&quot;) (?playstation file system sealed key key?)<br /> |-<br /> | 08 || 0F || Version (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Encrypted key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> '''C'''<br /> &lt;source lang=&quot;c&quot;&gt;<br /> typedef struct sealedkey {<br /> const unsigned char MAGIC;<br /> const unsigned char CAT;<br /> const unsigned char IV;<br /> const unsigned char KEY;<br /> const unsigned char SHA256;<br /> } selaedkey;<br /> &lt;/source&gt;<br /> <br /> '''CSharp'''<br /> &lt;source lang=&quot;csharp&quot;&gt;<br /> protected internal struct sealedkey {<br /> internal static byte[] MAGIC = new byte[8];<br /> internal static byte[] CAT = new byte[8];<br /> internal static byte[] IV = new byte[16];<br /> internal static byte[] KEY = new byte[32];<br /> internal static byte[] SHA256 = new byte[32];<br /> }<br /> &lt;/source&gt;<br /> <br /> Note: You can't use a const byte[] defination in C#. It need to be a static byte[].<br /> <br /> == De/En -Crypting ==<br /> Can be decrypted by frindly asking the OS to do it for you. You will need kernel rights to be able to ask the PS4 for it.<br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* Decryption */<br /> #define USER1 10000000<br /> #define usb0 &quot;/mnt/usb0/&quot;<br /> #define usb1 &quot;/mnt/usb1/&quot;<br /> #define pfs &quot;decrypted_pfsSKKey.key&quot;<br /> <br /> char usb_error = &quot;[-] ERROR: Can't access usb0 nor usb1!\n[-] Will return now to caller.\n&quot;<br /> char usb0path, usb1path;<br /> unsigned char pfsSKKey[96];<br /> <br /> // Get's the encrypted sealed key based on user id.<br /> int get_pfsSKKey(int userID)<br /> {<br /> FILE *pfskey = fopen(&quot;host0:/user/home/&quot; + userID + &quot;/trophy/data/sce_trop/sealedkey&quot;, &quot;r&quot;);<br /> <br /> if (pfskey == NULL)<br /> return 0;<br /> <br /> fread(pfsSKKey, 96, 1, pfskey);<br /> fclose(pfskey);<br /> return 1;<br /> }<br /> <br /> // Dump the sealedkey. Send over tcp and save to file.<br /> void dumpDecryptedSealedKey(int to)<br /> {<br /> int y = get_pfsSKKey(user1); // First load the key into a buffer.<br /> if (!y) {<br /> knet_printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> kernel.printf(&quot;[-] Can not load the sealed key!\n&quot;);<br /> return -1;<br /> }<br /> <br /> unsigned char decyrpted_pfsSKKey[16];<br /> int i = kernel.sceSblSsDecryptSealedKey(pfsSKKey, decrpyted_pfsSKKey); // Now decrpyt the key.<br /> knet_printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i);<br /> kernel.printf(&quot;[+] sceSblSsDecryptSealedKey returned %d\n&quot;, i); <br /> <br /> if (i) { // Sending over tcp.<br /> knet_printf(&quot;[+] Your save game key = &quot;);<br /> kernel.printf(&quot;[+] Your save game key = &quot;); <br /> <br /> for(int x =0; x &lt; 0x10; x++) {<br /> knet_printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> kernel.printf(&quot;%02X&quot;, dec_pfsSKKey[x]);<br /> }<br /> knet_printf(&quot;\n&quot;);<br /> kernel.printf(&quot;\n&quot;);<br /> <br /> <br /> if (to == 1) { // Saving to file.<br /> knet_printf(&quot;[+] Will try to save to file...&quot;);<br /> kernel.printf(&quot;[+] Will try to save to file...&quot;);<br /> <br /> usb0path = usb0 + pfs;<br /> usb1path = usb1 + pfs;<br /> FILE *dump = fopen(usb0path, &quot;w&quot;);<br /> <br /> if (dump == NULL) {<br /> dump = fopen(usb1path, &quot;w&quot;);<br /> if (dump == NULL) {<br /> knet_printf(&quot;fail!\n&quot; + usb_error);<br /> kernel.printf(&quot;fail!\n&quot; + usb_error);<br /> return -1;<br /> }<br /> }<br /> fwrite(dec_pfsSKKey, 0x10, 1, dump);<br /> knet_printf(&quot;done!\n&quot;);<br /> kernel.printf(&quot;done!\n&quot;);<br /> fclose(dump);<br /> }<br /> }<br /> else {<br /> knet_printf(&quot;[+] Error!\n&quot;);<br /> kernel.printf(&quot;[+] Error!\n&quot;);<br /> }<br /> }<br /> &lt;/source&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=275914 Trophy00.trp 2016-06-22T19:20:09Z <p>Red-EyeX32: </p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct {<br /> u32 magic; //&quot;Ü¢M &quot; (0xDCA24D00)<br /> u32 version; //#3 on ps4 (1: PS3, 2: PS3 &amp; PS VITA)<br /> u64 file_size; //size of full trp file<br /> u32 entry_num; //num entries<br /> u32 entry_size; // size of entry<br /> u32 dev_flag; // 1: dev<br /> u8 digest[20]; //sha1 hash<br /> u32 key_index;<br /> u8 padding[0x2C];<br /> } trp_header;<br /> <br /> typedef struct{<br /> signed char entry_name[0x20];<br /> u64 entry_pos; //relative to &amp;buffer<br /> u64 entry_len;<br /> u32 flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 padding[0xC];<br /> } trp_entry;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=275906 Trophy00.trp 2016-06-21T05:10:41Z <p>Red-EyeX32: </p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct {<br /> u32 magic; //&quot;Ü¢M &quot; (0xDCA24D00)<br /> u32 version; //#3 on ps4 (1: PS3, 2: PS3 &amp; PS VITA)<br /> u64 file_size; //size of full trp file<br /> u32 entry_num; //num entries<br /> u32 entry_size; // size of entry<br /> u32 dev_flag; // 1: dev<br /> u8 digest[20]; //sha1 hash<br /> u32 key_index;<br /> u8 padding[0x2C];<br /> } trp_header;<br /> <br /> typedef struct{<br /> signed char entry_name[0x20];<br /> u64 entry_pos; //relative to &amp;buffer<br /> u64 entry_len;<br /> u32 flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 padding[0xC];<br /> } trp_entry;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> ==== Killzone Shadow Fall (NPWR05506_00) TROP.ESFM ====<br /> &lt;nowiki&gt;&lt;!--Sce-Np-Trophy-Signature: 4c39b98c01000000000000008f5af5d6dbb6b31920c95b6df6592d9aa59de49893cf9bc69c060e21a1e599933eba7b3343ef26703dc553245022e4bb3ab67e27f5f6ac52c07480e8fe424854b226009ec06defb00d72dcdf4be793421ac2cc4d246439fcc1644e317465bcc1c7311afffa8094ba53adad0e4717a56954c7d34ffd6771b06883535389d484391fe67ac5123b1e557b4d22eec6b7c3201c916bad--&gt;<br /> &lt;trophyconf version=&quot;1.1&quot; platform=&quot;ps4&quot; policy=&quot;large&quot;&gt;<br /> &lt;npcommid&gt;NPWR05506_00&lt;/npcommid&gt;<br /> &lt;trophyset-version&gt;01.07&lt;/trophyset-version&gt;<br /> &lt;parental-level license-area=&quot;default&quot;&gt;0&lt;/parental-level&gt;<br /> &lt;title-name&gt;Killzone Shadow Fall&lt;/title-name&gt;<br /> &lt;title-detail&gt;Killzone Shadow Fall trophy set&lt;/title-detail&gt;<br /> &lt;group id=&quot;001&quot;&gt;<br /> &lt;name&gt;Insurgent Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Insurgent Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;group id=&quot;002&quot;&gt;<br /> &lt;name&gt;Intercept Expansion trophies&lt;/name&gt;<br /> &lt;detail&gt;Intercept Expansion&lt;/detail&gt;<br /> &lt;/group&gt;<br /> &lt;trophy id=&quot;000&quot; hidden=&quot;no&quot; ttype=&quot;P&quot; pid=&quot;-1&quot;&gt;<br /> &lt;name&gt;Hero&lt;/name&gt;<br /> &lt;detail&gt;Obtain all Killzone Shadow Fall trophies&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;001&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Father&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Father'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;002&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Shadow&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Shadow'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;003&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Deniable&lt;/name&gt;<br /> &lt;detail&gt;In 'The Shadow', operate without raising an alarm or disabling the security mainframe&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;004&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Doctor&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Doctor'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;005&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Patriot&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Patriot'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;006&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Helghast&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Helghast'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;007&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Agent&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Agent'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;008&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Handler&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Handler'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;009&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Dead&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Dead'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;010&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Destroyer&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Destroyer'&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;011&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;New Shadow&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', complete the mission without being spotted&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;012&quot; hidden=&quot;yes&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Violence is the answer?&lt;/name&gt;<br /> &lt;detail&gt;In 'The Savior', kill 20 soldiers and still complete the mission&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;013&quot; hidden=&quot;yes&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Savior&lt;/name&gt;<br /> &lt;detail&gt;Complete level 'The Savior' and prevent the escalation of a new war&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;014&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outsmarted&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, get a quadruple kill with a single Frag Grenade&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;015&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outgunned&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 6 Helghast with headshots within a single adrenaline rush&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;016&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Outmaneuvered&lt;/name&gt;<br /> &lt;detail&gt;In singleplayer, kill 5 Helghast with gunfire while ziplining&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;017&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Elite Shadow Marshal&lt;/name&gt;<br /> &lt;detail&gt;Complete all missions on Hard difficulty&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;018&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Conscientious Killer&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without shooting any civilians&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;019&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Shadows Cannot Be Killed&lt;/name&gt;<br /> &lt;detail&gt;Complete the campaign on any difficulty without dying&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;020&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Gatherer&lt;/name&gt;<br /> &lt;detail&gt;Find 50% of the collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;021&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;The Knowledge&lt;/name&gt;<br /> &lt;detail&gt;Find all collectibles in the campaign&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;022&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Tourist&lt;/name&gt;<br /> &lt;detail&gt;Complete a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;023&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Dominator&lt;/name&gt;<br /> &lt;detail&gt;Win a match on every multiplayer map&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;024&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;On Your Way&lt;/name&gt;<br /> &lt;detail&gt;Complete 200 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;025&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Multiplayer Elite&lt;/name&gt;<br /> &lt;detail&gt;Complete 400 challenges&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;026&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Million Points&lt;/name&gt;<br /> &lt;detail&gt;Get a total of 1,000,000 points in multiplayer&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;027&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Scout&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Scout ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;028&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Support&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Support ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;029&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Assault&lt;/name&gt;<br /> &lt;detail&gt;Max out any upgradable Assault ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;030&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Jack Of All Trades&lt;/name&gt;<br /> &lt;detail&gt;Max out all upgradable abilities&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;031&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Weapons Specialist&lt;/name&gt;<br /> &lt;detail&gt;Unlock all attachments for all weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;032&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;000&quot;&gt;<br /> &lt;name&gt;Decorated&lt;/name&gt;<br /> &lt;detail&gt;Earn a total of 500 accolades&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;033&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Hacktivist&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Hacking Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;034&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Kleptomania&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the Stealing Ability&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;035&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;All Flavors&lt;/name&gt;<br /> &lt;detail&gt;Make a kill with all primary weapons as an Insurgent&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;036&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Finders Keepers&lt;/name&gt;<br /> &lt;detail&gt;Collect 25 Online Collectibles&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;037&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Remember me?&lt;/name&gt;<br /> &lt;detail&gt;Make 25 kills with each one of the Retro weapons&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;038&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;New Toys!&lt;/name&gt;<br /> &lt;detail&gt;Reach the maximum level for the E-Pulse Emitter, Tactical Echo Emitter, and Guard Drone&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;039&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;001&quot;&gt;<br /> &lt;name&gt;Like a Boss&lt;/name&gt;<br /> &lt;detail&gt;Finish the campaign in Elite mode&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;040&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Pyromaniac&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Assault's Breacher automatic shotgun in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;041&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;High And Dry&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Marksman's LS70 sniper rifle in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;042&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Necromancer&lt;/name&gt;<br /> &lt;detail&gt;Revive 50 Team mates in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;043&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Tactical Triplets&lt;/name&gt;<br /> &lt;detail&gt;Get 250 kills with the Tactician Turrets in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;044&quot; hidden=&quot;no&quot; ttype=&quot;B&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Bare Hands&lt;/name&gt;<br /> &lt;detail&gt;Get 5 brutal melee kills as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;045&quot; hidden=&quot;no&quot; ttype=&quot;S&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Wallstreet Banker&lt;/name&gt;<br /> &lt;detail&gt;Bank 2500 points as each of the four Combat Roles in co-op&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;trophy id=&quot;046&quot; hidden=&quot;no&quot; ttype=&quot;G&quot; pid=&quot;-1&quot; gid=&quot;002&quot;&gt;<br /> &lt;name&gt;Co-op Captain&lt;/name&gt;<br /> &lt;detail&gt;Win 50 co-op games&lt;/detail&gt;<br /> &lt;/trophy&gt;<br /> &lt;/trophyconf&gt;&lt;/nowiki&gt;<br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=275905 Trophy00.trp 2016-06-18T23:34:56Z <p>Red-EyeX32: /* Entries */</p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct {<br /> u32 magic; //&quot;Ü¢M &quot; (0xDCA24D00)<br /> u32 version; //#3 on ps4 (1: PS3, 2: PS3 &amp; PS VITA)<br /> u64 file_size; //size of full trp file<br /> u32 entry_num; //num entries<br /> u32 entry_size; // size of entry<br /> u32 dev_flag; // 1: dev<br /> u8 digest[20]; //sha1 hash<br /> u32 key_index;<br /> u8 padding[0x2C];<br /> } trp_header;<br /> <br /> typedef struct{<br /> signed char entry_name[0x20];<br /> u64 entry_pos; //relative to &amp;buffer<br /> u64 entry_len;<br /> u32 flag; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 padding[0xC];<br /> } trp_entry;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> Seemes to be 2 types of entries. Encrypted and Non - Encrypted.<br /> <br /> Non-Encrypted files seem to be just png image files.<br /> Encrypted files seem to be just ESFM files, (encrypted container for trophy.sfm files)<br /> <br /> Each ESFM file in the .trp file contain the same first 512 bits.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> ESFM is just an encrypted XML format. It consists of IV of 0x10 bytes and the data itself. A key is generated by encrypting '''NP communication ID''' with keygen ERK/keygen IV (stored inside system library) using AES-CBC-128. Then you can decrypt data using this key and IV from the header.<br /> <br /> NP Com ID for above Buffer: NPWR05506_00<br /> ESFM IV: 0x0 - 0x10<br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Save_Data&diff=275050 Save Data 2015-12-10T01:46:32Z <p>Red-EyeX32: </p> <hr /> <div>===Location===<br /> Savegames are stored encrypted inside /user/home/[[user Id]]/[[title Id]]/[[save data directory]]/sce_sys/<br /> <br /> files contained within:<br /> * [[param.sfo]]<br /> * [[icon0.png]]<br /> <br /> ==== External ====<br /> Savegames may be copied from PS4 to a USB mass storage device.<br /> <br /> They will be located at USB:\PS4\SAVEDATA\[[user Id]]\[[title Id]]\<br /> <br /> ===Files===<br /> Every savegame contains 2 files:<br /> <br /> 1) Data file<br /> <br /> - size frequently 10.485.760 bytes (bf4 : 18.874.368 bytes)<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 0000 || 00AF || Header (176 bytes)<br /> |-<br /> | 00B0 || 00B7 || Magic Block (8 bytes)<br /> |-<br /> | 00B8 || 036F || Block (704 bytes)<br /> |-<br /> | 0370 || 039F || Block (48 bytes)<br /> |-<br /> | 03A0 || 7FFF || Empty Block (31.840 bytes)<br /> |-<br /> | 8000 || eof || Data Block (? bytes)<br /> |}<br /> <br /> 2) Key file<br /> <br /> - size always 96 bytes<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! From !! To !! Description<br /> |-<br /> | 00 || 07 || MAGIC (&quot;pfsSKKey&quot;) (playstation filesystem, SealedKey Key ?)<br /> |-<br /> | 08 || 0F || Category (game=1 or version ?)<br /> |-<br /> | 10 || 1F || IV (16 bytes)<br /> |-<br /> | 20 || 3F || Encrypted key (32 bytes)<br /> |-<br /> | 40 || 5F || SHA-256 (32 bytes)<br /> |}<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266657 Playgo-chunk.dat 2014-04-28T13:02:55Z <p>Red-EyeX32: /* Structure */</p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===Structure===<br /> <br /> #define PLGO_H 0x6F676C70<br /> #define CHUNK_COUNT 8<br /> <br /> #define IndexTable 0<br /> #define Table2 1 //u16's<br /> #define KeyTable 2<br /> #define Table4 3 //unknown length.. same size as table8<br /> #define Table5 4 //table of random stuff, &amp;table5[0x18] u16's<br /> #define Table6 5 //u16's<br /> #define Table7 6 //string 'Scenario #X' , count possibly greater than 1 on some cases<br /> #define Table8 7 //size of table4<br /> <br /> #pragma pack(push, 1)<br /> <br /> typedef char* key_t;<br /> <br /> typedef struct{<br /> u32 id; // 1, 2, 3, 4...<br /> u32 unk[4]; //ignore<br /> <br /> u16 unk1; //idk but valueable<br /> u16 entryCount; //of the index table<br /> u16 table6_entryCount;<br /> } table5_t; //header_t-&gt;table5_count<br /> <br /> typedef struct{<br /> u32 offest; //offset??<br /> u32 unk;<br /> } table4_t;<br /> <br /> typedef struct{<br /> u64 indexMagic; //80 00 03<br /> u32 unk1;<br /> u32 unk2; //sometimes hold value of 1<br /> u32 unk3; //ff's.. sometimes different<br /> u32 unk5; //ff's.. sometimes different<br /> u32 unk6; //holds value of 2 or increments by 2<br /> u32 keyTableOffset;<br /> } index_t; //header_t-&gt;indexCount<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version; //maybe not<br /> u16 indexCount;<br /> u16 Table2Count; //table 6 and table 2 have same length (filled with u16's)<br /> u16 Table5Count;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char title[0x80];<br /> chunk_t chunks[CHUNK_COUNT];<br /> } header_t;<br /> <br /> class PlayGo<br /> {<br /> public:<br /> PlayGo(u8* data);<br /> <br /> header_t header;<br /> <br /> /* only implemented indexData and keyData */<br /> index_t* indexData;//header_t-&gt;indexCount<br /> u16* table2;<br /> key_t* keyData;<br /> table4_t* table4; //size unknown??<br /> table5_t* table5; //header-&gt;table5_count<br /> u16* table6; //table5_t-&gt;table6_entryCount<br /> key_t* table7; //header-&gt;table5_count<br /> table4_t* table8; //table 8 == table 4<br /> <br /> };<br /> <br /> #pragma pack(pop)<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266655 Playgo-chunk.dat 2014-04-28T02:20:41Z <p>Red-EyeX32: </p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===Structure===<br /> <br /> #define PLGO_H 0x6F676C70<br /> <br /> class PlayGo<br /> {<br /> public:<br /> PlayGo();<br /> <br /> index_t* indexData;<br /> char** indexKey; //header_t-&gt;indexCount<br /> <br /> private:<br /> };<br /> <br /> typedef struct{<br /> u8 unk[0x1C];<br /> u32 keyTableOffset;<br /> } index_t; //header_t-&gt;indexCount<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version;<br /> u16 indexCount;<br /> u32 unk;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char content_id[0x80];<br /> chunk_t chunks[8];<br /> } header_t;<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266654 Playgo-chunk.dat 2014-04-28T02:20:18Z <p>Red-EyeX32: </p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===Structure===<br /> <br /> #define PLGO_H 0x6F676C70<br /> <br /> class PlayGo<br /> {<br /> public:<br /> PlayGo();<br /> <br /> index_t* indexData;<br /> char** indexKey; //header_t-&gt;indexCount<br /> <br /> private:<br /> };<br /> typedef struct{<br /> u8 unk[0x1C];<br /> u32 keyTableOffset;<br /> } index_t; //header_t-&gt;indexCount<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version;<br /> u16 indexCount;<br /> u32 unk;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char content_id[0x80];<br /> chunk_t chunks[8];<br /> } header_t;<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266653 Playgo-chunk.dat 2014-04-28T02:18:38Z <p>Red-EyeX32: </p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===Structure===<br /> #define PLGO_H 0x6F676C70<br /> <br /> class PlayGo<br /> {<br /> public:<br /> PlayGo();<br /> <br /> <br /> index_t* indexData;<br /> char** indexKey; //header_t-&gt;indexCount<br /> <br /> private:<br /> };<br /> <br /> typedef struct{<br /> u8 unk[0x1C];<br /> u32 keyTableOffset;<br /> } index_t; //header_t-&gt;indexCount<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version;<br /> u16 indexCount;<br /> u32 unk;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char content_id[0x80];<br /> chunk_t chunks[8];<br /> } header_t;<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266652 Playgo-chunk.dat 2014-04-28T02:16:41Z <p>Red-EyeX32: </p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===Structure===<br /> #define PLGO_H 0x6F676C70<br /> <br /> class PlayGo<br /> {<br /> public:<br /> PlayGo();<br /> <br /> index_t* indexData;<br /> char** indexKey; //header_t-&gt;indexCount<br /> <br /> private:<br /> };<br /> <br /> typedef struct{<br /> u8 unk[0x1C];<br /> u32 keyTableOffset;<br /> } index_t; //header_t-&gt;indexCount<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version;<br /> u16 indexCount;<br /> u32 unk;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char content_id[0x80];<br /> chunk_t chunks[8];<br /> } header_t;<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266651 Playgo-chunk.dat 2014-04-28T02:10:47Z <p>Red-EyeX32: </p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===Structure===<br /> <br /> Struct by Jakes625, Any revisions feel free to make...<br /> <br /> #define PLGO_H 0x6F676C70<br /> <br /> class PlayGo<br /> {<br /> public:<br /> PlayGo();<br /> <br /> <br /> index_t* indexData;<br /> char** indexKey; //header_t-&gt;indexCount<br /> <br /> private:<br /> };<br /> <br /> typedef struct{<br /> u8 unk[0x1C];<br /> u32 keyTableOffset;<br /> } index_t; //header_t-&gt;indexCount<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version;<br /> u16 indexCount;<br /> u32 unk;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char content_id[0x80];<br /> chunk_t chunks[8];<br /> } header_t;<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Playgo-chunk.dat&diff=266649 Playgo-chunk.dat 2014-04-28T02:04:49Z <p>Red-EyeX32: </p> <hr /> <div>==Internal Structure Examples==<br /> <br /> ===C Structure===<br /> <br /> Temporary C Struct by Jakes625, Any revisions feel free to make...<br /> <br /> typedef struct{<br /> u8 unk[0x1C];<br /> u32 keyTableOffset;<br /> } index_t;<br /> <br /> typedef struct{<br /> u32 offset;<br /> u32 length;<br /> } chunk_t;<br /> <br /> typedef struct{<br /> u64 magic;<br /> u16 version;<br /> u16 indexTableLen;<br /> u32 unk1;<br /> u32 fileSize;<br /> u32 unk2;<br /> u64 unk3;<br /> u8 unk4[0x20];<br /> char content_id[0x80];<br /> chunk_t chunks[8];<br /> index_t indexTable[indexTableLen]; //not valid C, index_t* indexTable = new index_t[ this-&gt;indexTableLen ];<br /> } header_t;<br /> <br /> ===Header===<br /> 0x00 &lt;span style=&quot;background:#ff6666;&quot;&gt;70 6C 67 6F&lt;/span&gt; 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............<br /> 0x10 &lt;span style=&quot;background:#66ff66;&quot;&gt;40 0A 00 00&lt;/span&gt; 00 00 01 00 00 00 00 00 00 00 00 00 @...............<br /> 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br /> 0x40 &lt;span style=&quot;background:#ffff66;&quot;&gt;55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32&lt;/span&gt; UP2102-CUSA00042<br /> 0x50 &lt;span style=&quot;background:#ffff66;&quot;&gt;5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F&lt;/span&gt; _00-BLACKLIGHT2O<br /> 0x60 &lt;span style=&quot;background:#ffff66;&quot;&gt;52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; RBIS............<br /> 0x70 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x80 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0x90 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xA0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xB0 &lt;span style=&quot;background:#ffff66;&quot;&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/span&gt; ................<br /> 0xC0 &lt;span style=&quot;background:#6666ff;&quot;&gt;00 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;80 03 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;80 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; ....€...€...8...<br /> 0xD0 &lt;span style=&quot;background:#6666ff;&quot;&gt;C0 04 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;88 01 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;50 06 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; À...ˆ...P...À...<br /> 0xE0 &lt;span style=&quot;background:#6666ff;&quot;&gt;D0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;20 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;F0 09 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;38 00 00 00&lt;/span&gt; Ð... ...ð...8...<br /> 0xF0 &lt;span style=&quot;background:#6666ff;&quot;&gt;30 0A 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;0C 00 00 00&lt;/span&gt; &lt;span style=&quot;background:#6666ff;&quot;&gt;10 08 00 00&lt;/span&gt; &lt;span style=&quot;background:#dd00dd;&quot;&gt;C0 01 00 00&lt;/span&gt; 0...........À...<br /> <br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | 0x00 || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''magic''' || 70 6C 67 6F || plgo (utf-8) ||<br /> |-<br /> | style=&quot;background-color:#66ff66;&quot; | 0x10 || style=&quot;background-color:#66ff66;&quot; | 0x04 || '''plgo_length''' || 40 0A 00 00 || 0xA40 (Little endian) ||<br /> |-<br /> | style=&quot;background-color:#ffff66;&quot; | 0x40 || style=&quot;background-color:#ffff66;&quot; | 0x80 || '''title''' || 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... || UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) || Padded<br /> |-<br /> | style=&quot;background-color:#6666ff;&quot; | 0xC0 || style=&quot;background-color:#6666ff;&quot; | 0x04 || '''chunk_offset''' || 00 01 00 00 || 0x100 (Little endian) || index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8<br /> |-<br /> | style=&quot;background-color:#dd00dd;&quot; | 0xC4 || style=&quot;background-color:#dd00dd;&quot; | 0x04 || '''chunk_length''' || 80 03 00 00 || 0x380 (Little endian) || index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8<br /> |}<br /> <br /> ===Index Table (Offset/Length 1)===<br /> 0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €...............<br /> 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;00 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;04 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;0B 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;12 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;18 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ........<br /> 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;27 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....'...<br /> 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;37 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....7...<br /> 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;44 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....D...<br /> 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;52 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....R...<br /> 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5D 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....]...<br /> 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;69 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....i...<br /> 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7E 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....~...<br /> 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;94 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....”...<br /> 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;A3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....£...<br /> 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;B3 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....³...<br /> 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;C5 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ ...Å...<br /> 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;D8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&quot;...Ø...<br /> 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;E8 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ$...è...<br /> 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;F9 00 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ&amp;...ù...<br /> 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;06 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ(.......<br /> 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;14 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ*.......<br /> 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;23 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ,...#...<br /> 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €...............<br /> 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;33 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....3...<br /> 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;41 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ....A...<br /> 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;50 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ0...P...<br /> 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;5F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ2..._...<br /> 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;6F 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ4...o...<br /> 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €...............<br /> 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 &lt;span style=&quot;background:#ff6666;&quot;&gt;7B 01 00 00&lt;/span&gt; ÿÿÿÿÿÿÿÿ6...{...<br /> {| class=&quot;wikitable&quot;<br /> |-<br /> ! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes<br /> |-<br /> | style=&quot;background-color:#ff6666;&quot; | - || style=&quot;background-color:#ff6666;&quot; | 0x04 || '''key_table_offset''' || 7B 01 00 00 || 0x17B (Little endian) || plgo Offset: key_table_start + key_table_offset<br /> |}<br /> <br /> ===? (Offset/Length 2)===<br /> 0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................<br /> 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................<br /> 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................<br /> 0x4B0 10 00 0F 00 15 00 14 00 ........<br /> <br /> ===Key Table (Offset/Length 3)===<br /> 0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP<br /> 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE<br /> 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER<br /> 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_<br /> 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT<br /> 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER<br /> 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA<br /> 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE<br /> 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D<br /> 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T<br /> 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA<br /> 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY<br /> 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA<br /> 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM<br /> 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM<br /> 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC<br /> 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D<br /> 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T<br /> 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA<br /> 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC<br /> 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA.<br /> 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P<br /> 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V<br /> 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI<br /> 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.<br /> <br /> ===? (Offset/Length 4)===<br /> 0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........).....<br /> 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è.....<br /> 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1.....<br /> 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý.....<br /> 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò.....<br /> 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F.....<br /> 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q&gt;............<br /> 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J.....<br /> 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾.....<br /> 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù.....<br /> 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t.....<br /> 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............<br /> 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á.....<br /> 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............<br /> 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............<br /> 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø.....<br /> 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š.....<br /> 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö.....<br /> 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z.....<br /> 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 ..&quot;¾......Ø.....<br /> 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D.....<br /> 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..&lt;Â............<br /> 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é.....<br /> 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#....<br /> 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©.....<br /> 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(....<br /> 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê.....<br /> 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....<br /> <br /> ===? (Offset/Length 5)===<br /> 0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<br /> 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................<br /> <br /> ===? (Offset/Length 6)===<br /> 0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................<br /> 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................<br /> 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................<br /> 0xA20 18 00 19 00 1A 00 1B 00 ........<br /> <br /> ===? (Offset/Length 7)===<br /> 0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.<br /> <br /> ===? (Offset/Length 8)===<br /> 0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................<br /> 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’.....<br /> 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z.....<br /> 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&amp;......¯?....<br /> 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@.....<br /> 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(....<br /> 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M.....<br /> 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(....<br /> 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù.....<br /> 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+....<br /> 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~.....<br /> 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç.....<br /> 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......».....<br /> 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq....<br /> 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............<br /> 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸.....<br /> 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2....<br /> 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C.....<br /> 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8.....<br /> 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&amp;ÿ......#.....<br /> 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú.....<br /> 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î.....<br /> 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1&quot;......=.....<br /> 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q]....<br /> 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............<br /> 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..&gt;•......êd....<br /> 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é.....<br /> 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....<br /> <br /> <br /> <br /> {{File Formats}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=SLB2&diff=266585 SLB2 2014-03-23T05:46:02Z <p>Red-EyeX32: </p> <hr /> <div>== SLB2 structure ==<br /> [[File:PS4 SLB PUP container format - SKFU.png|thumb|PS4 SLB PUP container format - SKFU]]<br /> <br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* file structure of SLB goes as following, if unpacking make sure you use 64 bits little endian on windows os */<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct{<br /> u32 offset; //1 block is headersize (512 padded)<br /> u32 cryptSize;<br /> u64 reserved; //probably file alignment<br /> u8 fileName[32];<br /> } fileEntry;<br /> <br /> typedef struct{<br /> u32 magic; //SLB2<br /> u64 version; //1<br /> u32 fileCount;<br /> u32 blockCount;<br /> u8 reserved[12];<br /> fileEntry files[10];<br /> } ps4pup;<br /> &lt;/source&gt;<br /> <br /> === SLB2 files to play with ===<br /> [[1.500.000]]:<br /> * http://www.mirrorcreator.com/files/056CKD7J/PS4UPDATE.PUP.rar_links<br /> &lt;span style=&quot;text-decoration: line-through;&quot;&gt;* https://mega.co.nz/#!WE8zUAyb!ZuZy5Vxrd4eCc4bTvFW_ZC7lu7Ub0tcdyE08xbJtrok (Main)&lt;/span&gt;<br /> * https://mega.co.nz/#!GEdQkRRR!KSCLLQEGlWfQwsA3yBo3pkZqqqE6w-Jwk-5CvLd4GR0 (Recovery)<br /> <br /> [[1.501.000]] : <br /> * http://dus01.ps4.update.playstation.net/update/ps4/image/2013_1112/sys_df008b5601f4a214a3cc65030a02ac4a/PS4UPDATE.PUP?dest=us (Main)<br /> * http://dus01.ps4.update.playstation.net/update/ps4/image/2013_1112/rec_cedada625478db608d5878c019454380/PS4UPDATE.PUP?dest=us (Recovery)<br /> <br /> === Unpacking ===<br /> * http://pastie.org/private/4wgojewhp2pq7declhkhw (flatz)<br /> * [http://www.eurasia.nu/modules.php?name=Downloads&amp;d_op=viewdownloaddetails&amp;lid=10234&amp;ttitle=PS4_PUP_Extractor_v2 PS4 PUP Extractor v2] (xerpi)<br /> * [http://www.skfu.xxx/2013/11/release-ps4-fw-tool-100.html PS4 FW Tool v1.0.0] (skfu)<br /> * https://github.com/Hykem/ps4tools (hykem, based on flatz)<br /> * https://github.com/Jakes625/PS4-PUP-Tool (Jakes625)<br /> <br /> === SLB PUP Files ===<br /> These files are contained inside of SLB2 containers. They contain data pertaining to system firmware.<br /> <br /> You are able to decrypt inner pup files using the follow keys:<br /> * erk=DB7A24EC38BDB45B98CCD7D363EA2AF0C326E65081E0630CB9AB2D215865878A<br /> * riv=C9205F46F6021697E670F13DFA726212<br /> * pub=A8FD6DB24532D094EFA08BD35C9A72287D905C6B27B42BE4AB925AAF4AFFF34D41EEB54DD128700D<br /> * priv=001AD976FCDE86F5B8F63453EF3A7F94E861975BA3<br /> * ctype=30<br /> <br /> 1st 40 bytes are encrypted with aes-256-cbc and the result is used as erk and riv for the next 240 bytes.now that is decrypted through aes-128-ctr and now you can find the location for encrypted sections+hmac key+erk/riv keys<br /> the rest sections are also encrypted with aes-128-ctr<br /> <br /> {{Software}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=SLB2&diff=266584 SLB2 2014-03-23T05:40:34Z <p>Red-EyeX32: </p> <hr /> <div>== SLB2 structure ==<br /> [[File:PS4 SLB PUP container format - SKFU.png|thumb|PS4 SLB PUP container format - SKFU]]<br /> <br /> &lt;source lang=&quot;c&quot;&gt;<br /> /* file structure of SLB goes as following, if unpacking make sure you use 64 bits little endian on windows os */<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct{<br /> u32 offset; //1 block is headersize (512 padded)<br /> u32 cryptSize;<br /> u64 reserved; //probably file alignment<br /> u8 fileName[32];<br /> } fileEntry;<br /> <br /> typedef struct{<br /> u32 magic; //SLB2<br /> u64 version; //1<br /> u32 fileCount;<br /> u32 blockCount;<br /> u8 reserved[12];<br /> fileEntry files[10];<br /> } ps4pup;<br /> &lt;/source&gt;<br /> <br /> === SLB2 files to play with ===<br /> [[1.500.000]]:<br /> * http://www.mirrorcreator.com/files/056CKD7J/PS4UPDATE.PUP.rar_links<br /> &lt;span style=&quot;text-decoration: line-through;&quot;&gt;* https://mega.co.nz/#!WE8zUAyb!ZuZy5Vxrd4eCc4bTvFW_ZC7lu7Ub0tcdyE08xbJtrok (Main)&lt;/span&gt;<br /> * https://mega.co.nz/#!GEdQkRRR!KSCLLQEGlWfQwsA3yBo3pkZqqqE6w-Jwk-5CvLd4GR0 (Recovery)<br /> <br /> [[1.501.000]] : <br /> * http://dus01.ps4.update.playstation.net/update/ps4/image/2013_1112/sys_df008b5601f4a214a3cc65030a02ac4a/PS4UPDATE.PUP?dest=us (Main)<br /> * http://dus01.ps4.update.playstation.net/update/ps4/image/2013_1112/rec_cedada625478db608d5878c019454380/PS4UPDATE.PUP?dest=us (Recovery)<br /> <br /> === Unpacking ===<br /> * http://pastie.org/private/4wgojewhp2pq7declhkhw (flatz)<br /> * [http://www.eurasia.nu/modules.php?name=Downloads&amp;d_op=viewdownloaddetails&amp;lid=10234&amp;ttitle=PS4_PUP_Extractor_v2 PS4 PUP Extractor v2] (xerpi)<br /> * [http://www.skfu.xxx/2013/11/release-ps4-fw-tool-100.html PS4 FW Tool v1.0.0] (skfu)<br /> * https://github.com/Hykem/ps4tools (hykem, based on flatz)<br /> * https://github.com/Jakes625/PS4-PUP-Tool (Jakes625)<br /> <br /> === SLB PUP Files ===<br /> These files are contained inside of SLB2 containers. They contain data pertaining to system firmware.<br /> <br /> You are able to decrypt inner pup files using the follow keys:<br /> erk=DB7A24EC38BDB45B98CCD7D363EA2AF0C326E65081E0630CB9AB2D215865878A<br /> riv=C9205F46F6021697E670F13DFA726212<br /> pub=A8FD6DB24532D094EFA08BD35C9A72287D905C6B27B42BE4AB925AAF4AFFF34D41EEB54DD128700D<br /> priv=001AD976FCDE86F5B8F63453EF3A7F94E861975BA3<br /> ctype=30<br /> <br /> 1st 40 bytes are encrypted with aes-256-cbc and the result is used as erk and riv for the next 240 bytes.now that is decrypted through aes-128-ctr and now you can find the location for encrypted sections+hmac key+erk/riv keys<br /> the rest sections are also encrypted with aes-128-ctr<br /> <br /> {{Software}}<br /> &lt;noinclude&gt;[[Category:Main]]&lt;/noinclude&gt;</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=266563 Trophy00.trp 2014-03-15T17:12:58Z <p>Red-EyeX32: </p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned char u8;<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct{<br /> u32 magic; //Ü¢M.<br /> u32 version; //#3 on ps4<br /> u64 fileSize; //size of full trp file<br /> u32 entryCount; //num entries<br /> u32 entrySize; // size of entry<br /> u32 unk1; //padding probably<br /> u8 hash[20]; //sha1 hash<br /> u32 unk2; // 0x30313000 ??<br /> u8 padding[0x2C];<br /> } header_t<br /> <br /> typedef struct{<br /> signed char name[0x20];<br /> u64 entryStart; //relative to &amp;buffer<br /> u64 entryLength;<br /> u32 unk1; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 unk2[0xC];<br /> } entry_t;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> So far (from what I've seen) there are only 2 types of entries.<br /> <br /> ESFM which are encrypted, and PNG which are not encrypted.<br /> <br /> PNG is plain image data<br /> <br /> ESFM is encrypted but seems to contain the same bytes at the top.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> A digest? A Table? Encryption??<br /> <br /> What do you think?<br /> <br /> <br /> <br /> That's all so far<br /> ~Jakes625<br /> <br /> Edited By: Red-EyeX32</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=266558 Trophy00.trp 2014-03-14T22:49:29Z <p>Red-EyeX32: </p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct{<br /> u32 magic; //Ü¢M.<br /> u32 version; //#3 on ps4<br /> u64 fileSize; //size of full trp file<br /> u32 entryCount; //num entries<br /> u32 entrySize; // size of entry<br /> u32 unk1; //padding probably<br /> u8 hash[20]; //sha1 hash<br /> u32 unk2; // 0x30313000 ??<br /> u8 padding[0x2C];<br /> } header_t<br /> <br /> typedef struct{<br /> signed char name[0x20];<br /> u64 entryStart; //relative to &amp;buffer<br /> u64 entryLength;<br /> u32 unk1; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 unk2[0xC];<br /> } entry_t;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> So far (from what I've seen) there are only 2 types of entries.<br /> <br /> ESFM which are encrypted, and PNG which are not encrypted.<br /> <br /> PNG is plain image data<br /> <br /> ESFM is encrypted but seems to contain the same bytes at the top.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> A digest? A Table? Encryption??<br /> <br /> What do you think?<br /> <br /> <br /> <br /> That's all so far<br /> ~Jakes625<br /> <br /> Edited By: Red-EyeX32</div> Red-EyeX32 http://www.psdevwiki.com/ps4/index.php?title=Trophy00.trp&diff=266557 Trophy00.trp 2014-03-14T22:41:59Z <p>Red-EyeX32: </p> <hr /> <div>== Background ==<br /> This is used for storage of trophy packs, simular to PS3<br /> <br /> === PS3 side references ===<br /> * http://www.psdevwiki.com/ps3/Trophy<br /> * http://www.psdevwiki.com/ps3/TROPHY.TRP<br /> * http://www.psdevwiki.com/ps3/Trophy_files<br /> * http://www.psdevwiki.com/ps3/Trophy_livelist<br /> <br /> == Structure ==<br /> Note: This isn't complete.<br /> typedef unsigned long int u32;<br /> typedef unsigned long long int u64;<br /> <br /> typedef struct{<br /> u32 magic; //Ü¢M.<br /> u32 version; //#3 on ps4<br /> u64 fileSize; //size of full trp file<br /> u32 entryCount; //num entries<br /> u32 entrySize;<br /> u32 unk1; //padding probably<br /> u8 hash[20]; //sha1 hash<br /> u32 unk5; // 0x30313000 ??<br /> u8 unk6[0x2C];<br /> } header_t<br /> <br /> typedef struct{<br /> signed char name[0x20];<br /> u64 entryStart; //relative to &amp;buffer<br /> u64 entryLen;<br /> u32 unk1; //3 on some, 0 on others, could be flags or an enum to determine if encrypted or not?<br /> u8 unk2[0xC];<br /> } entry_t;<br /> <br /> Image of Header + Entries:<br /> http://puu.sh/7uOAN/1c17920d61.png<br /> <br /> Image of Encrypted Entry Data:<br /> http://puu.sh/7uOEl/6eb00e8a19.png<br /> <br /> === Entries ===<br /> So far (from what I've seen) there are only 2 types of entries.<br /> <br /> ESFM which are encrypted, and PNG which are not encrypted.<br /> <br /> PNG is plain image data<br /> <br /> ESFM is encrypted but seems to contain the same bytes at the top.<br /> <br /> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<br /> <br /> 00000000 0B 29 DE DE CB D5 62 61 C6 5C 75 24 9B 0C A4 08 .)ÞÞËÕbaÆ\u$›.¤.<br /> 00000010 0E 40 AE C1 7C 92 1F 1E 6D D7 B6 CC 59 2D DB B8 .@®Á|’..m׶ÌY-Û¸<br /> 00000020 5C 26 E7 9E 3F F6 54 9E A2 E4 94 2F 58 7F D6 9D \&amp;çž?öTž¢ä”/X.Ö.<br /> 00000030 CD 96 49 16 B7 9D 1C F4 DE D9 A7 DD FB A0 1A 68 Í–I.·..ôÞÙ§Ýû .h<br /> <br /> A digest? A Table? Encryption??<br /> <br /> What do you think?<br /> <br /> <br /> <br /> That's all so far<br /> ~Jakes625<br /> <br /> Edited By: Red-EyeX32</div> Red-EyeX32