User talk:Kozarovv: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(26 intermediate revisions by 4 users not shown)
Line 3: Line 3:
==psfour2pstwo==
==psfour2pstwo==


====gs====
====idle detect====
 
* --gs-kernel-cl="DarkCloud2"
* --gs-kernel-cl="fantavision"
 
Special case kernel plugins?
 
====possible speed/comp hacks====


* --detect-idle-vif
* --detect-idle-vif
Line 18: Line 11:
* --detect-idle-chcr
* --detect-idle-chcr


====Sound - SPU2 behavior====
====other====
 
* --spu2-update-deferral
* --spu2-reverb
* --spu2-c0-memin-to-bgm
* --spu2-c1-memin-to-bgm
* --spu2Trace
 
 
==PSPHD==
 
===LUA===
 
====basic====
 
*axInsnReplace (mem, org opcode, new opcode) - Replace allegrex memory
*axFuncReplace - Replace allegrex function
 


====hooks/registers====
* --force-point-sampling
* Project Snowblind US mipmap offset 0019506C  bc1f    loc_19508C


Allegrex (usage - remove AX_):
====vu====


*AX_GetPC
Looks like VU sync always(?), not like ps2.
*AX_SetPC
*AX_GetHi
*AX_SetHi
*AX_GetLo
*AX_SetLo
*AX_GetReg
*AX_SetReg
*AX_GetFpr
*AX_SetFpr
*AX_ReadMem8
*AX_ReadMem16
*AX_ReadMem32
*AX_ReadMemFloat
*AX_ReadMemString
*AX_WriteMem8
*AX_WriteMem16
*AX_WriteMem32
*AX_WriteMemFloat
*AX_WriteMemString
*AX_WriteMemStringZ
*AX_AddHook
*AX_RemoveHook
*AX_Overlay
*AX_InsnReplace
*AX_FuncReplace


Media Engine usage - remove EM_:
====todo====


*EM_SetTextureHashMode
seems to be like internal threads, not real threads. Emu print with that.
*EM_SetTextureScaleOffset
<pre>_____________________________________________________________________________
*EM_SetTextureSaveSubdir
| Emotion Engine:      | Input Output Processor (iop)  | x Extra?          |
*EM_SetSampleTitle
|-----------------------|-------------------------------|-------------------|
*EM_SetDrawEDRam
| e-dbg                | i-fw                          | x-stdlib          |
*EM_ToggleTextures
| e-r59                | i-debug                      | x-emu            |
*EM_PadRead
| e-mem                | i-cdvd                        | x-lpnr            |
*EM_PadReadPitch
| e-dmac                | i-dmac                        | x-cdvd            |
*EM_PadReadRoll
| e-timer              | i-gmif                        | x-isofs          |
*EM_PadVibrate
| e-sio                | i-intc                        | x-log            |
*EM_PadRegisterSamples
| e-dramc              | i-mem                        | x-mcd            |
*EM_PadSetButtonsMode
| e-intc                | i-memcard                    | x-replay          |
*EM_AddVsyncHook
| e-sif                | i-mtap                        | x-rtc            |
*EM_RemoveVsyncHook
| e-gif                | i-pad                        | x-save            |
*EM_ThrottleMax
| e-vif0                | i-pif                        | x-osd            |
*EM_ThrottleNormal
| e-vif1                | i-sched                      | x-snap            |
*EM_Log
| e-ipu                | i-sif                        | x-host            |
*EM_GetLanguage
| e-jit                | i-sio2                        | x-trphy          |
*EM_GetNativeLanguage
| e-hook                | i-timer                      | x-audio          |
*EM_DisplayManual
| e-Lua                | i-usb                        | x-pad            |
*EM_LoadConfig
| e-gs                  | i-spu2                        | x-srvc            |
*EM_SaveConfig
| e-sched              | i-EndSlice                    | x-dialog          |
*EM_LoadMIDI
|                      | i-r30                        | x-dlc            |
*EM_GetMIDINotesAtTick
|                      | i-jit                        | x-stream          |
*EM_LoadSlideshow
|                      | i-Lua                        | x-mem            |
*EM_StartSlideshow
|                      | i-thread                      | x-core            |
*EM_LoadState
|-----------------------|-------------------------------|-------------------|</pre>
*EM_SaveState


===config psp===
==Shaders==


Desc: https://pastebin.com/CXRpVLdd
===SB header===
<br>1,0 is done by true/false commands.
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
|- bgcolor="#cccccc"
! Offset !! Size !! Description !! Example
|-
| 0x00 || 2 bytes || SB Version || 00 04 (00.04)
|-
| 0x02 || 2 bytes || Compiler Version || F9 F1 (63985)
|-
| 0x04 || 8 bytes || Association Hash || B2 09 E0 A5 00 00 00 00
|-
| 0x0C || 1 byte || Shader Type || 02
|-
| 0x0D || 1 byte || Code Type || 01
|-
| 0x0E || 1 byte || UseShaderResourceTable || 00/01 (true/false)
|-
| 0x0F || 1 byte || Compiler Type || 03
|-
| 0x10 || 4 bytes || Code Size || E8 00 00 00 (232)
|-
| 0x14 || 4 bytes || ? || 00 00 00 00
|-
| 0x18 || 12 bytes? || System Attribute Info - Num Threads || 40 00 01 00  01 00 00 00  00 00 00 00
|-
|}
<pre>
'''Shader Type'''


*--boot [disc0:/PSP_GAME/SYSDIR/BOOT.BIN - path (no loaders support like on PS3? vide ct2, psc)]
*(unknown)             0
*--notrophies
*kShaderTypeVsShader  1
*--texsave
*kShaderTypeFsShader  2
*--texmissingsave
*kShaderTypeCsShader  3
*--samplesave
*kShaderTypeGsShader  4
*--texreplace
*kShaderTypeHsShader  5
*--samplereplace
*kShaderTypeDsShader  6
*--replacementalpha [true]
*--parappaalphahack
*--locorocomeshsmooth
*--replacementfilter
*--gputhread
*--antialias [MSAA4x, SSAA4x]
*--texcachemode [drawbounds, drawboundsloco]
*--texclutmode [filter, full]
*--texloadmode [launch, ondemand_lz4]
*--parappajapanesefonthack
*--parappareplacecolor [%08x (rgb?)]
*--volume [  ? (Adjusting volume level to %d%%)]
*--image [umd0 ,disc0]
*--addon
*--host [host0, flash0]


====Standard: ====


*patches/
'''Code type'''
*_patches.lua
*feature_data/
*_features.lua
*tooling/
*_tooling.lua
*trophy_data/
*_trophies.lua


====other====
*kCodeTypeIl  0
*kCodeTypeIsa  1
*kCodeTypeScu  2


*_config.txt
*--vms
*--autoresampler [true]


*videos/
'''UseShaderResourceTable'''
*.mp4
*videos/%08x.mp4
*audio/%08x.ogg
*--texswitch [original, replacement]


Paths:
*false  0
*true  1


*/app0/
*/download0/
*/savedata
*/host/
*/hostapp/
*/data/


====sample====
'''Compiler Type'''


<pre>; PS4 configuration file for PSPHD
; Game Image
--image="data/USER_L0.IMG"
; Redirect host0: to a specific directory (uncomment to enable).
; By default it's mapped to either "/hostapp/" if available, or "/app0/" if "/hostapp/" is not available.
;--host="/hostapp/"
; To dump the original video in PMF format, uncomment the --dumpvideos line
; For example, with the current setting, it will save them in a "videos" directory inside the File Serving Directory
;--dumpvideos="host0:videos"
; To dump the original audio in Atrac3 format, uncomment the --dumpaudio line
; For example, with the current setting, it will save them in a "audio" directory inside the File Serving Directory
;--dumpaudio="host0:audio"
   
   
; To replace atrac3 audio samples, use this.
*kCompilerTypeUnspecified 0
--samplereplace="host0:samplereplace"
*kCompilerTypeOrbisPsslc 1
   
*kCompilerTypeOrbisEsslc 2
; To save the in-game textures as the game runs, uncomment the --texsave line
*kCompilerTypeOrbisWave  3
; For example, with the current setting, it will save them in a "texdump" directory inside the File Serving Directory
*kCompilerTypeOrbisCuAs  4</pre>
;--texsave="host0:texdump"
;--texmissingsave="host0:texdump"
   
; To replace specific textures as the game runs, uncomment the --texreplace line
; For example, with the current setting, it will load them from the "texreplace" directory inside the File Serving Directory
--texreplace="host0:texreplace"
; This forces alpha blending to on for replaced textures. (uncomment to enable)
; With this we can freely make use of a normal alpha channel on replacement textures
--replacementalpha=true
; This enables bilinear filtering on replaced textures. (uncomment to enable)
--replacementfilter=true
; Antialiasing mode. SSAA4x looks best, MSAA4x only smooths edges.
; Choices: off, SSAA4x, MSAA4x
--antialias=SSAA4x
; Enable switching between original and replacement textures at runtime using the L3 button on a DS4 or the 'T' key on Windows
;--texswitch=true
; Turns on the auto-resampler. Assumes textures in texreplace are at 8x resolution and resamples them at load
--autoresampler=true
; Parappa Alpha Hack
--parappaalphahack=true
; Adjust overall volume level (does not include pad speaker volume). Range from 0.0 (min) to 1.0 (max)
--volume="0.25"
; Special thanks to Matsuura, Rodney, Allan and all the awesome people at Japan Studio! Also HUUUUGE thanks to Ernesto, Adam, Henrick, Taku, Tim, Nick, Mayene, Tyler, Dave Thach and Scott Rohde whose support made this project of love possible! PaRappa-4-Ever!!!!!
; If you're reading this message, congratulations! you win !!!
; we love you so much. you’ve made hacking great again.</pre>
 
===NIDs in HLE,  without.. NIDs :( ===
 
=====HLEInterruptManager=====
 
*sceKernelRegisterSubIntrHandler
*sceKernelReleaseSubIntrHandler
*sceKernelEnableSubIntr
 
=====HLEStdioForUser=====
 
*sceIoOpen
*sceIoClose
*sceIoRead
*sceIoWrite
*sceIoLseek
*sceIoLseek32
*sceIoDopen
*sceIoDread
*sceIoDclose
*sceIoChdir
*sceIoGetstat
*sceIoDevctl
*sceIoRename
*sceIoMkDir
*sceIoChstat
*sceIoRemove
*sceIoRmdir
*sceIoOpenAsync
*sceIoReadAsync
*sceIoIoctlAsync
*sceIoWaitAsync
*sceIoWaitAsyncCB
*sceIoCloseAsync
*sceIoSetAsyncCallback
*sceIoPollAsync
*sceIoLseekAsync
*sceIoGetAsyncStat
*asyncWaitTimerCallback
*asyncCallbackTimerCallback
*sceKernelStdin
*sceKernelStdout
*sceKernelStderr
 
=====HLELoadExecForUser=====
 
*sceKernelCpuSuspendIntr
*sceKernelCpuResumeIntr
*sceKernelIsCpuIntrEnable
*sceKernelExitGame
*sceKernelRegisterExitCallback
*sceKernelLoadModule
*sceKernelUnloadModule
*sceKernelStartModule
*sceKernelStopModule
*sceKernelStopUnloadSelfModule
*sceKernelGetModuleIdByAddress
*sceKernelStopUnloadSelfModuleWithStatus
*sceKernelGetModuleId
 
=====HLEsceAtrac3plus=====
 
*sceAtracReinit
*sceAtracDecodeData
*sceAtracGetNextDecodePosition
*sceAtracSetHalfwayBufferAndGetID
*sceAtracGetSoundSample
*sceAtracGetStreamDataInfo
*sceAtracGetRemainFrame
*sceAtracSetLoopNum
*sceAtracResetPlayPosition
*sceAtracReleaseAtracID
*sceAtracGetAtracID
*sceAtracGetNextSample
*sceAtracSetData
*sceAtracAddStreamData
 
=====HLEsceAudio=====
 
*sceAudioChReserve
*sceAudioChRelease
*sceAudioOutputBlocking
*sceAudioChangeChannelConfig
*sceAudioGetChannelRestLength
*sceAudioChangeChannelVolume
*sceAudioSetChannelDataLen
*sceAudioOutputPanned
*sceAudioOutputPannedBlocking
*sceAudioGetChannelRestLen
*sceAudioOutput2Reserve
*sceAudioOutput2OutputBlocking
*sceAudioOutput2Release
*outputCallback
 
=====HLEsceCtrl=====
 
*sceCtrlSetSamplingCycle
*sceCtrlSetSamplingMode
*sceCtrlReadBufferPositive
*sceCtrlReadBufferNegative
*sceCtrlPeekBufferPositive
*sceCtrlPeekBufferNegative
*sceCtrlGetIdleCancelThreshold
*sceCtrlSetIdleCancelThreshold
*sceCtrlReadLatch
*sceCtrlPeekLatch
*sampleControllerCallback
*vibrationControllerCallback
 
=====HLEsceDisplay=====
 
*sceDisplaySetMode
*sceDisplaySetFramebuf
*sceDisplayGetFramebuf
*sceDisplayGetVcount
*sceDisplayWaitVblankStart
*sceDisplayWaitVblankStartCB
*sceDisplayGetCurrentHcount
*sceDisplayGetAccumulatedHcount
*sceDisplayGetFramePerSec
*sceDisplayWaitVblank
*sceDisplayWaitVblankCB
*sceDisplayIsVblank
*sceDisplaySetHoldMode
*vblankStart
*vblankEnd
 
=====HLEsceGe_user=====
 
*sceGeEdramGetAddr
*sceGeEdramGetSize
*sceGeGetCmd
*sceGeGetMtx
*sceGeListEnQueue
*sceGeListEnQueueHead
*sceGeListDeQueue
*sceGeListSync
*sceGeListUpdateStallAddr
*sceGeDrawSync
*sceGeSetCallback
*sceGeUnsetCallback
*sceGeBreak
*sceGeContinue
*interruptCallback
 
=====HLEsceImpose=====
 
*sceImposeGetLanguageMode
*sceImposeSetLanguageMode
*sceImposeSetUMDPopup
 
=====HLEsceMpeg=====
 
*sceMpegInit
*sceMpegFinish
*sceMpegCreate
*sceMpegDelete
*sceMpegQueryMemSize
*sceMpegMallocAvcEsBuf
*sceMpegFreeAvcEsBuf
*sceMpegInitAu
*sceMpegGetAvcAu
*sceMpegGetAtracAu
*sceMpegQueryAtracEsSize
*sceMpegAtracDecode
*sceMpegRingbufferQueryMemSize
*sceMpegRingbufferConstruct
*sceMpegRingbufferDestruct
*sceMpegRingbufferPut
*sceMpegRingbufferAvailableSize
*sceMpegAvcCsc
*sceMpegAvcDecodeMode
*sceMpegAvcDecodeDetail
*sceMpegAvcDecodeFlush
*sceMpegAvcQueryYCbCrSize
*sceMpegAvcInitYCbCr
*sceMpegAvcDecodeYCbCr
*sceMpegAvcDecodeStopYCbCr
*sceMpegRegistStream
*sceMpegUnRegistStream
*sceMpegQueryStreamSize
*sceMpegQueryStreamOffset
*sceMpegFlushAllStream
 
=====HLEsceNet=====
 
*sceNetInit
*sceNetInetGetsockopt
*sceNetInetSetsockopt
*sceNetInetGetErrno
 
=====HLEscePower=====
 
*scePowerRegisterCallback
*scePowerUnregisterCallback
*scePowerSetClockFrequency
*scePowerSetCpuClockFrequency
*scePowerSetBusClockFrequency
 
=====HLEscePsmf=====
 
*scePsmfVerifyPsmf
*scePsmfSetPsmf
*scePsmfSpecifyStreamWithStreamTypeNumber
*scePsmfCheckEPmap
*scePsmfGetVideoInfo
*scePsmfGetNumberOfStreams
*scePsmfGetNumberOfEPentries
*scePsmfGetEPWithId
*scePsmfGetPsmfVersion
*scePsmfGetNumberOfSpecificStreams
*scePsmfSpecifyStream
*scePsmfGetCurrentStreamType
 
=====HLEscePsmfPlayer=====
 
*scePsmfPlayerCreate
*scePsmfPlayerDelete
*scePsmfPlayerSetPsmf
*scePsmfPlayerReleasePsmf
*scePsmfPlayerStart
*scePsmfPlayerGetAudioOutSize
*scePsmfPlayerStop
*scePsmfPlayerUpdate
*scePsmfPlayerGetVideoData
*scePsmfPlayerGetAudioData
*scePsmfPlayerGetCurrentStatus
*scePsmfPlayerGetPsmfInfo
*scePsmfPlayerConfigPlayer
*scePsmfPlayerBreak
*scePsmfPlayerChangePlayMode
 
=====HLEsceRtc=====
 
*sceRtcGetCurrentTick
*sceRtcGetAccumulativeTime
*sceRtcGetCurrentClockLocalTime
 
=====HLEsceSasCore=====
 
*sceSasInit
*sceSasCore
*sceSasCoreWithMix
*sceSasGetEndFlag
*sceSasGetPauseFlag
*sceSasGetEnvelopeHeight
*sceSasGetAllEnvelopeHeights
*sceSasGetOutputMode
*sceSasSetOutputMode
*sceSasGetGrain
*sceSasSetGrain
*sceSasSetVoice
*sceSasSetNoise
*sceSasSetPitch
*sceSasSetVolume
*sceSasSetSimpleADSR
*sceSasSetKeyOn
*sceSasSetKeyOff
*sceSasSetPause
*sceSasSetSL
*sceSasSetADSR
*sceSasSetADSRMode
*sceSasRevEVOL
*sceSasRevType
*sceSasRevParam
*sceSasRevVON
 
=====HLEsceSuspendForUser=====
 
*sceKernelPowerTick
*sceKernelPowerLock
*sceKernelPowerUnlock
*sceKernelVolatileMemTryLock
*sceKernelVolatileMemUnlock
*sceKernelVolatileMemLock
 
=====HLEsceUmdUser=====
 
*sceUmdActivate
*sceUmdGetDriveStat
*sceUmdCheckMedium
*sceUmdRegisterUMDCallback
*sceUmdUnRegisterUMDCallBack
*sceUmdWaitDriveStat
*sceUmdWaitDriveStatWithTimer
*sceUmdWaitDriveStatCB
*sceUmdCancelWaitDriveStat
*_UmdWaitDriveTimeout
 
=====HLEsceUtility=====
 
*sceUtilityLoadModule
*sceUtilityUnloadModule
*sceUtilityLoadNetModule
*sceUtilityUnloadNetModule
*sceUtilityLoadAvModule
*sceUtilityUnloadAvModule
*sceUtilityGetSystemParamInt
*sceUtilityGetSystemParamString
*sceUtilitySavedataGetStatus
*sceUtilitySavedataShutdownStart
*sceUtilitySavedataInitStart
*sceUtilitySavedataUpdate
*sceUtilityMsgDialogGetStatus
*sceUtilityMsgDialogShutdownStart
*sceUtilityMsgDialogInitStart
*sceUtilityMsgDialogUpdate
*sceUtilityMsgDialogAbort
*sceUtilityOskGetStatus
*sceUtilityOskShutdownStart
*sceUtilityOskInitStart
*sceUtilityOskUpdate
*saveDataUpdateCallback
*oskUpdateCallback
 
=====HLEsceWlanDrv=====
 
*sceWlanGetSwitchState
*sceWlanGetEtherAddr
 
=====HLESysMemUserForUser=====
 
*sceKernelMaxFreeMemSize
*sceKernelTotalFreeMemSize
*sceKernelQueryMemoryInfo
*sceKernelDevkitVersion
*sceKernelPrintf
*sceKernelGetPTRIG
*sceKernelSetPTRIG
*sceKernelAllocPartitionMemory
*sceKernelFreePartitionMemory
*sceKernelGetBlockHeadAddr
*sceKernelGetMemoryBlockAddr
*sceKernelAllocMemoryBlock
*sceKernelFreeMemoryBlock
*sceKernelSetCompilerVersion
*sceKernelGetCompiledSdkVersion
*sceKernelSetCompiledSdkVersion
*sceKernelSetCompiledSdkVersion370
*sceKernelSetCompiledSdkVersion380_390
*sceKernelSetCompiledSdkVersion395
*sceKernelSetCompiledSdkVersion401_402
*sceKernelSetCompiledSdkVersion500_505
*sceKernelSetCompiledSdkVersion507
*sceKernelSetCompiledSdkVersion600_602
*sceKernelSetCompiledSdkVersion603_605
*sceKernelSetCompiledSdkVersion606
*sceKernelSetUsersystemLibWork
*sceKernelSysMemUserForUser_ACBD88CA
*sceKernelSysMemUserForUser_D8DE5C1E
*sceKernelSysMemUserForUser_945E45DA
 
=====HLEThreadManForUser=====
 
*sceKernelDelayThread
*sceKernelDelayThreadCB
*sceKernelCreateCallback
*sceKernelDeleteCallback
*sceKernelSleepThread
*sceKernelSleepThreadCB
*sceKernelWakeupThread
*sceKernelCreateMsgPipe
*sceKernelDeleteMsgPipe
*sceKernelSendMsgPipe
*sceKernelTrySendMsgPipe
*sceKernelReceiveMsgPipe
*sceKernelTryReceiveMsgPipe
*sceKernelReferMsgPipeStatus
*sceKernelCreateThread
*sceKernelStartThread
*sceKernelExitThread
*sceKernelDeleteThread
*sceKernelExitDeleteThread
*sceKernelGetThreadExitStatus
*sceKernelTerminateThread
*sceKernelTerminateDeleteThread
*sceKernelWaitThreadEnd
*sceKernelWaitThreadEndCB
*sceKernelRotateThreadReadyQueue
*sceKernelReferThreadStatus
*sceKernelSuspendDispatchThread
*sceKernelResumeDispatchThread
*sceKernelSuspendThread
*sceKernelResumeThread
*sceKernelCancelWakeupThread
*sceKernelGetThreadStackFreeSize
*sceKernelGetSystemTimeLow
*sceKernelGetSystemTime
*sceKernelGetSystemTimeWide
*sceKernelGetThreadCurrentPriority
*sceKernelChangeCurrentThreadAttr
*sceKernelGetThreadId
*sceKernelChangeThreadPriority
*sceKernelReferThreadProfiler
*sceKernelCheckCallback
*sceKernelCancelSema
*sceKernelCreateSema
*sceKernelDeleteSema
*sceKernelPollSema
*sceKernelSignalSema
*sceKernelReferSemaStatus
*sceKernelWaitSema
*sceKernelWaitSemaCB
*sceKernelCreateFpl
*sceKernelDeleteFpl
*sceKernelAllocateFpl
*sceKernelAllocateFplCB
*sceKernelTryAllocateFpl
*sceKernelFreeFpl
*sceKernelCancelFpl
*sceKernelReferFplStatus
*sceKernelCreateVpl
*sceKernelDeleteVpl
*sceKernelAllocateVpl
*sceKernelAllocateVplCB
*sceKernelTryAllocateVpl
*sceKernelFreeVpl
*sceKernelCancelVpl
*sceKernelReferVplStatus
*sceKernelCreateEventFlag
*sceKernelSetEventFlag
*sceKernelDeleteEventFlag
*sceKernelClearEventFlag
*sceKernelWaitEventFlag
*sceKernelWaitEventFlagCB
*sceKernelPollEventFlag
*sceKernelCancelEventFlag
*sceKernelReferEventFlagStatus
*sceKernelCreateMbx
*sceKernelDeleteMbx
*sceKernelSendMbx
*sceKernelReceiveMbx
*sceKernelReceiveMbxCB
*sceKernelPollMbx
*sceKernelCancelReceiveMbx
*sceKernelReferMbxStatus
*sceKernelCreateMutex
*sceKernelDeleteMutex
*sceKernelLockMutex
*sceKernelLockMutexCB
*sceKernelTryLockMutex
*sceKernelUnlockMutex
*sceKernelCancelMutex
*sceKernelReferMutexStatus
*_sceKernelDelayThreadCallback
*_sceKernelWaitThreadEndTimeout
*_sceKernelAllocateFplTimeout
*_sceKernelAllocateVplTimeout
*_sceKernelWaitEventFlagTimeout
*_sceKernelMsgPipeTimeout
*_sceKernelLockMutexTimeout
 
=====HLEUtilsForKernel=====
 
*sceKernelIcacheInvalidateRange
 
=====HLEUtilsForUser=====
 
*sceKernelIcacheInvalidateRange
*sceKernelDcacheInvalidateRange
*sceKernelDcacheWritebackInvalidateRange
*sceKernelDcacheWritebackAll
*sceKernelDcacheWritebackRange
*sceKernelDcacheWritebackInvalidateAll
*sceKernelSetGPO
*sceKernelGetGPI
*sceKernelLibcClock
*sceKernelLibcTime
*sceKernelLibcGettimeofday
 
===Unimplemented functions?===


*sceIoChdir() unimplemented, ignoring
===GNM Header===
*sceIoChstat unimplemented, ignoring
*sceKernelExitGame() unimplemented
*sceKernelStopUnloadSelfModule() unimplemented
*sceKernelStopUnloadSelfModuleWithStatus() unimplemented
*sceGeGetMtx() unimplemented
*sceGeListDeQueue() unimplemented
*sceGeBreak unimplemented
*sceGeContinue unimplemented
*sceNetInetGetsockopt() unimplemented
*sceNetInetSetsockopt() unimplemented
*sceNetInetGetErrno() unimplemented
*sceWlanGetEtherAddr unimplemented
*sceKernelQueryMemoryInfo() unimplemented
*sceKernelGetPTRIG() unimplemented
*sceKernelSetPTRIG() unimplemented
*sceKernelSetCompiledSdkVersion401_402() unimplemented
*sceKernelSetCompiledSdkVersion507() unimplemented
*sceKernelSetCompiledSdkVersion600_602() unimplemented
*sceKernelSetCompiledSdkVersion603_605() unimplemented
*sceKernelSetUsersystemLibWork() unimplemented
*sceKernelSysMemUserForUser_ACBD88CA() unimplemented
*sceKernelSysMemUserForUser_D8DE5C1E() unimplemented -- sceKernelSafetyCheck0
*sceKernelSysMemUserForUser_945E45DA() unimplemented
*sceKernelTerminateDeleteThread() unimplemented
*sceKernelCancelSema unimplemented
*sceKernelCancelFpl unimplemented
*sceKernelReferFplStatus unimplemented
*sceKernelCancelVpl unimplemented
*sceKernelCreateMbx unimplemented
*sceKernelDeleteMbx unimplemented
*sceKernelSendMbx unimplemented
*sceKernelReceiveMbx unimplemented
*sceKernelReceiveMbxCB unimplemented
*sceKernelPollMbx unimplemented
*sceKernelCancelReceiveMbx unimplemented
*sceKernelReferMbxStatus unimplemented


Restricted:
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
*scePowerRegisterCallback - ignoring
|- bgcolor="#cccccc"
*scePowerUnregisterCallback - ignoring
! Offset !! Size !! Description !! Example
*scePowerSetClockFrequency - ignoring
|-
*scePowerSetCpuClockFrequency(%d) - ignoring
| 0x00 || 4 bytes || Magic || 72 64 68 53 Shdr
*scePowerSetBusClockFrequency(%d) - ignoring
|-
*sceUtilityMsgDialogInitStart ignored
| 0x04 || 4 bytes || Version || 00 07 00 02 (0007.0002)
|-
| 0x08 || 1 byte || Shader type || 04 (Compute)
|-
| 0x09 || 1 byte || Shader header size in DW || 0D (13)  
|-
| 0x0A || 1 byte || Has shader aux data || 00/01 ? 
|-
| 0x0B || 1 byte || Target GPU types || 03 (Base|NEO)
|-
| 0x0C || 4 bytes || padding || 00 00 00 00
|-
|}

Revision as of 18:03, 30 September 2019

Rough draft

psfour2pstwo

idle detect

  • --detect-idle-vif
  • --detect-idle-ee
  • --detect-idle-iop
  • --detect-idle-intc
  • --detect-idle-chcr

other

  • --force-point-sampling
  • Project Snowblind US mipmap offset 0019506C bc1f loc_19508C

vu

Looks like VU sync always(?), not like ps2.

todo

seems to be like internal threads, not real threads. Emu print with that.

_____________________________________________________________________________
| Emotion Engine:       | Input Output Processor (iop)  | x Extra?          |
|-----------------------|-------------------------------|-------------------|
| e-dbg                 | i-fw                          | x-stdlib          |
| e-r59                 | i-debug                       | x-emu             |
| e-mem                 | i-cdvd                        | x-lpnr            |
| e-dmac                | i-dmac                        | x-cdvd            |
| e-timer               | i-gmif                        | x-isofs           |
| e-sio                 | i-intc                        | x-log             |
| e-dramc               | i-mem                         | x-mcd             |
| e-intc                | i-memcard                     | x-replay          |
| e-sif                 | i-mtap                        | x-rtc             |
| e-gif                 | i-pad                         | x-save            |
| e-vif0                | i-pif                         | x-osd             |
| e-vif1                | i-sched                       | x-snap            |
| e-ipu                 | i-sif                         | x-host            |
| e-jit                 | i-sio2                        | x-trphy           |
| e-hook                | i-timer                       | x-audio           |
| e-Lua                 | i-usb                         | x-pad             |
| e-gs                  | i-spu2                        | x-srvc            |
| e-sched               | i-EndSlice                    | x-dialog          |
|                       | i-r30                         | x-dlc             |
|                       | i-jit                         | x-stream          |
|                       | i-Lua                         | x-mem             |
|                       | i-thread                      | x-core            |
|-----------------------|-------------------------------|-------------------|

Shaders

SB header

Offset Size Description Example
0x00 2 bytes SB Version 00 04 (00.04)
0x02 2 bytes Compiler Version F9 F1 (63985)
0x04 8 bytes Association Hash B2 09 E0 A5 00 00 00 00
0x0C 1 byte Shader Type 02
0x0D 1 byte Code Type 01
0x0E 1 byte UseShaderResourceTable 00/01 (true/false)
0x0F 1 byte Compiler Type 03
0x10 4 bytes Code Size E8 00 00 00 (232)
0x14 4 bytes ? 00 00 00 00
0x18 12 bytes? System Attribute Info - Num Threads 40 00 01 00 01 00 00 00 00 00 00 00
'''Shader Type'''

*(unknown)             0
*kShaderTypeVsShader   1
*kShaderTypeFsShader   2
*kShaderTypeCsShader   3
*kShaderTypeGsShader   4
*kShaderTypeHsShader   5
*kShaderTypeDsShader   6


'''Code type'''

*kCodeTypeIl   0
*kCodeTypeIsa  1
*kCodeTypeScu  2


'''UseShaderResourceTable'''

*false  0
*true   1


'''Compiler Type'''

 
*kCompilerTypeUnspecified 0
*kCompilerTypeOrbisPsslc  1
*kCompilerTypeOrbisEsslc  2
*kCompilerTypeOrbisWave   3
*kCompilerTypeOrbisCuAs   4

GNM Header

Offset Size Description Example
0x00 4 bytes Magic 72 64 68 53 Shdr
0x04 4 bytes Version 00 07 00 02 (0007.0002)
0x08 1 byte Shader type 04 (Compute)
0x09 1 byte Shader header size in DW 0D (13)
0x0A 1 byte Has shader aux data 00/01 ?
0x0B 1 byte Target GPU types NEO)
0x0C 4 bytes padding 00 00 00 00