User talk:Kozarovv: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(32 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 17: Line 10:
* --detect-idle-intc
* --detect-idle-intc
* --detect-idle-chcr
* --detect-idle-chcr
====Sound - SPU2 behavior====
* --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====
Allegrex (usage - remove AX_):
*AX_GetPC
*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_:
*EM_SetTextureHashMode
*EM_SetTextureScaleOffset
*EM_SetTextureSaveSubdir
*EM_SetSampleTitle
*EM_SetDrawEDRam
*EM_ToggleTextures
*EM_PadRead
*EM_PadReadPitch
*EM_PadReadRoll
*EM_PadVibrate
*EM_PadRegisterSamples
*EM_PadSetButtonsMode
*EM_AddVsyncHook
*EM_RemoveVsyncHook
*EM_ThrottleMax
*EM_ThrottleNormal
*EM_Log
*EM_GetLanguage
*EM_GetNativeLanguage
*EM_DisplayManual
*EM_LoadConfig
*EM_SaveConfig
*EM_LoadMIDI
*EM_GetMIDINotesAtTick
*EM_LoadSlideshow
*EM_StartSlideshow
*EM_LoadState
*EM_SaveState
===config psp===
Desc: https://pastebin.com/CXRpVLdd
<br>1,0 is done by true/false commands.
*--boot [disc0:/PSP_GAME/SYSDIR/BOOT.BIN - path (no loaders support like on PS3? vide ct2, psc)]
*--notrophies
*--texsave
*--texmissingsave
*--samplesave
*--texreplace
*--samplereplace
*--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/
*_patches.lua
*feature_data/
*_features.lua
*tooling/
*_tooling.lua
*trophy_data/
*_trophies.lua


====other====
====other====


*_config.txt
* --force-point-sampling
*--vms
* Project Snowblind US mipmap offset 0019506C bc1f    loc_19508C
*
*videos/
*.mp4
*videos/%08x.mp4
*audio/%08x.ogg
*--texswitch [original, replacement]
 
Paths:
 
*/app0/
*/download0/
*/savedata
*/host/
*/hostapp/
*/data/
 
====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
 
=====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=====
====vu====


*sceGeEdramGetAddr
Looks like VU sync always(?), not like ps2.
*sceGeEdramGetSize
*sceGeGetCmd
*sceGeGetMtx
*sceGeListEnQueue
*sceGeListEnQueueHead
*sceGeListDeQueue
*sceGeListSync
*sceGeListUpdateStallAddr
*sceGeDrawSync
*sceGeSetCallback
*sceGeUnsetCallback
*sceGeBreak
*sceGeContinue
*interruptCallback


=====HLEsceImpose=====
====todo====


*sceImposeGetLanguageMode
seems to be like internal threads, not real threads. Emu print with that.
*sceImposeSetLanguageMode
<pre>_____________________________________________________________________________
*sceImposeSetUMDPopup
| 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            |
|-----------------------|-------------------------------|-------------------|</pre>


=====HLEsceMpeg=====
==Shaders==


*sceMpegInit
===SB header===
*sceMpegFinish
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
*sceMpegCreate
|- bgcolor="#cccccc"
*sceMpegDelete
! Offset !! Size !! Description !! Example
*sceMpegQueryMemSize
|-
*sceMpegMallocAvcEsBuf
| 0x00 || 2 bytes || SB Version || 00 04 (00.04)
*sceMpegFreeAvcEsBuf
|-
*sceMpegInitAu
| 0x02 || 2 bytes || Compiler Version || F9 F1 (63985)
*sceMpegGetAvcAu
|-
*sceMpegGetAtracAu
| 0x04 || 8 bytes || Association Hash || B2 09 E0 A5 00 00 00 00
*sceMpegQueryAtracEsSize
|-
*sceMpegAtracDecode
| 0x0C || 1 byte || Shader Type || 02
*sceMpegRingbufferQueryMemSize
|-
*sceMpegRingbufferConstruct
| 0x0D || 1 byte || Code Type || 01
*sceMpegRingbufferDestruct
|-
*sceMpegRingbufferPut
| 0x0E || 1 byte || UseShaderResourceTable || 00/01 (true/false)
*sceMpegRingbufferAvailableSize
|-
*sceMpegAvcCsc
| 0x0F || 1 byte || Compiler Type || 03
*sceMpegAvcDecodeMode
|-
*sceMpegAvcDecodeDetail
| 0x10 || 4 bytes || Code Size || E8 00 00 00 (232)
*sceMpegAvcDecodeFlush
|-
*sceMpegAvcQueryYCbCrSize
| 0x14 || 4 bytes || ? || 00 00 00 00
*sceMpegAvcInitYCbCr
|-
*sceMpegAvcDecodeYCbCr
| 0x18 || 12 bytes? || System Attribute Info - Num Threads || 40 00 01 00  01 00 00 00  00 00 00 00
*sceMpegAvcDecodeStopYCbCr
|-
*sceMpegRegistStream
|}
*sceMpegUnRegistStream
<pre>
*sceMpegQueryStreamSize
'''Shader Type'''
*sceMpegQueryStreamOffset
*sceMpegFlushAllStream


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


*sceNetInit
*sceNetInetGetsockopt
*sceNetInetSetsockopt
*sceNetInetGetErrno


=====HLEscePower=====
'''Code type'''


*scePowerRegisterCallback
*kCodeTypeIl  0
*scePowerUnregisterCallback
*kCodeTypeIsa  1
*scePowerSetClockFrequency
*kCodeTypeScu  2
*scePowerSetCpuClockFrequency
*scePowerSetBusClockFrequency


=====HLEscePsmf=====


*scePsmfVerifyPsmf
'''UseShaderResourceTable'''
*scePsmfSetPsmf
*scePsmfSpecifyStreamWithStreamTypeNumber
*scePsmfCheckEPmap
*scePsmfGetVideoInfo
*scePsmfGetNumberOfStreams
*scePsmfGetNumberOfEPentries
*scePsmfGetEPWithId
*scePsmfGetPsmfVersion
*scePsmfGetNumberOfSpecificStreams
*scePsmfSpecifyStream
*scePsmfGetCurrentStreamType


=====HLEscePsmfPlayer=====
*false  0
*true  1


*scePsmfPlayerCreate
*scePsmfPlayerDelete
*scePsmfPlayerSetPsmf
*scePsmfPlayerReleasePsmf
*scePsmfPlayerStart
*scePsmfPlayerGetAudioOutSize
*scePsmfPlayerStop
*scePsmfPlayerUpdate
*scePsmfPlayerGetVideoData
*scePsmfPlayerGetAudioData
*scePsmfPlayerGetCurrentStatus
*scePsmfPlayerGetPsmfInfo
*scePsmfPlayerConfigPlayer
*scePsmfPlayerBreak
*scePsmfPlayerChangePlayMode


=====HLEsceRtc=====
'''Compiler Type'''


*sceRtcGetCurrentTick
*sceRtcGetAccumulativeTime
*kCompilerTypeUnspecified 0
*sceRtcGetCurrentClockLocalTime
*kCompilerTypeOrbisPsslc  1
*kCompilerTypeOrbisEsslc  2
*kCompilerTypeOrbisWave  3
*kCompilerTypeOrbisCuAs  4</pre>


=====HLEsceSasCore=====
===GNM Header===


*sceSasInit
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
*sceSasCore
|- bgcolor="#cccccc"
*sceSasCoreWithMix
! Offset !! Size !! Description !! Example
*sceSasGetEndFlag
|-
*sceSasGetPauseFlag
| 0x00 || 4 bytes || Magic || 72 64 68 53 Shdr
*sceSasGetEnvelopeHeight
|-
*sceSasGetAllEnvelopeHeights
| 0x04 || 4 bytes || Version || 00 07 00 02 (0007.0002)
*sceSasGetOutputMode
|-
*sceSasSetOutputMode
| 0x08 || 1 byte || Shader type || 04 (Compute)
*sceSasGetGrain
|-
*sceSasSetGrain
| 0x09 || 1 byte || Shader header size in DW || 0D (13)
*sceSasSetVoice
|-
*sceSasSetNoise
| 0x0A || 1 byte || Has shader aux data || 00/01 ? 
*sceSasSetPitch
|-
*sceSasSetVolume
| 0x0B || 1 byte || Target GPU types || 03 (Base|NEO)
*sceSasSetSimpleADSR
|-
*sceSasSetKeyOn
| 0x0C || 4 bytes || padding || 00 00 00 00
*sceSasSetKeyOff
|-
*sceSasSetPause
|}
*sceSasSetSL
*sceSasSetADSR
*sceSasSetADSRMode
*sceSasRevEVOL
*sceSasRevType
*sceSasRevParam
*sceSasRevVON

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