Line 10: |
Line 10: |
| | 0x00010082 | | | 0x00010082 |
| | | | | |
− | | | + | | Yes |
| | [[GSPGPU:WriteHWRegs|WriteHWRegs]] | | | [[GSPGPU:WriteHWRegs|WriteHWRegs]] |
| |- | | |- |
| | 0x00020084 | | | 0x00020084 |
| | | | | |
− | | | + | | Yes |
| | [[GSPGPU:WriteHWRegsWithMask|WriteHWRegsWithMask]] | | | [[GSPGPU:WriteHWRegsWithMask|WriteHWRegsWithMask]] |
| |- | | |- |
| | 0x00030082 | | | 0x00030082 |
| | | | | |
− | | | + | | Yes |
| | [[GSPGPU:WriteHWRegRepeat|WriteHWRegRepeat]] | | | [[GSPGPU:WriteHWRegRepeat|WriteHWRegRepeat]] |
| |- | | |- |
| | 0x00040080 | | | 0x00040080 |
| | | | | |
− | | | + | | Yes |
| | [[GSPGPU:ReadHWRegs|ReadHWRegs]] | | | [[GSPGPU:ReadHWRegs|ReadHWRegs]] |
| |- | | |- |
| | 0x00050200 | | | 0x00050200 |
| | | | | |
− | | | + | | Yes |
| | [[GSPGPU:SetBufferSwap|SetBufferSwap]] | | | [[GSPGPU:SetBufferSwap|SetBufferSwap]] |
| |- | | |- |
| | 0x00060082 | | | 0x00060082 |
| | | | | |
− | | | + | | No |
| | SetCommandList (Stubbed) | | | SetCommandList (Stubbed) |
| |- | | |- |
| | 0x000700C2 | | | 0x000700C2 |
| | | | | |
− | | | + | | No |
| | RequestDma (Stubbed) | | | RequestDma (Stubbed) |
| |- | | |- |
Line 55: |
Line 55: |
| | 0x000A0044 | | | 0x000A0044 |
| | | | | |
− | | | + | | No |
| | RegisterInterruptEvents | | | RegisterInterruptEvents |
| |- | | |- |
| | 0x000B0040 | | | 0x000B0040 |
| | | | | |
− | | | + | | See below |
| | [[GSPGPU:SetLcdForceBlack|SetLcdForceBlack]] | | | [[GSPGPU:SetLcdForceBlack|SetLcdForceBlack]] |
| |- | | |- |
| | 0x000C0000 | | | 0x000C0000 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]] | | | [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]] |
| |- | | |- |
| | 0x000D0140 | | | 0x000D0140 |
| | | | | |
− | | | + | | No |
| | SetDisplayTransfer (Stubbed) | | | SetDisplayTransfer (Stubbed) |
| |- | | |- |
| | 0x000E0180 | | | 0x000E0180 |
| | | | | |
− | | | + | | No |
| | SetTextureCopy (Stubbed) | | | SetTextureCopy (Stubbed) |
| |- | | |- |
| | 0x000F0200 | | | 0x000F0200 |
| | | | | |
− | | | + | | No |
| | SetMemoryFill (Stubbed) | | | SetMemoryFill (Stubbed) |
| |- | | |- |
| | 0x00100040 | | | 0x00100040 |
| | | | | |
− | | | + | | No |
| | SetAxiConfigQoSMode | | | SetAxiConfigQoSMode |
| |- | | |- |
| | 0x00110040 | | | 0x00110040 |
| | | | | |
− | | | + | | No |
| | SetPerfLogMode | | | SetPerfLogMode |
| |- | | |- |
| | 0x00120000 | | | 0x00120000 |
| | | | | |
− | | | + | | No |
| | GetPerfLog | | | GetPerfLog |
| |- | | |- |
| | 0x00130042 | | | 0x00130042 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:RegisterInterruptRelayQueue|RegisterInterruptRelayQueue]] | | | [[GSPGPU:RegisterInterruptRelayQueue|RegisterInterruptRelayQueue]] |
| |- | | |- |
| | 0x00140000 | | | 0x00140000 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:UnregisterInterruptRelayQueue|UnregisterInterruptRelayQueue]] | | | [[GSPGPU:UnregisterInterruptRelayQueue|UnregisterInterruptRelayQueue]] |
| |- | | |- |
| | 0x00150002 | | | 0x00150002 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:TryAcquireRight|TryAcquireRight]] | | | [[GSPGPU:TryAcquireRight|TryAcquireRight]] |
| |- | | |- |
| | 0x00160042 | | | 0x00160042 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:AcquireRight|AcquireRight]] | | | [[GSPGPU:AcquireRight|AcquireRight]] |
| |- | | |- |
| | 0x00170000 | | | 0x00170000 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:ReleaseRight|ReleaseRight]] | | | [[GSPGPU:ReleaseRight|ReleaseRight]] |
| |- | | |- |
| | 0x00180000 | | | 0x00180000 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:ImportDisplayCaptureInfo|ImportDisplayCaptureInfo]] | | | [[GSPGPU:ImportDisplayCaptureInfo|ImportDisplayCaptureInfo]] |
| |- | | |- |
| | 0x00190000 | | | 0x00190000 |
| | | | | |
− | | | + | | See below |
| | [[GSPGPU:SaveVramSysArea|SaveVramSysArea]] | | | [[GSPGPU:SaveVramSysArea|SaveVramSysArea]] |
| |- | | |- |
| | 0x001A0000 | | | 0x001A0000 |
| | | | | |
− | | | + | | See below |
| | [[GSPGPU:RestoreVramSysArea|RestoreVramSysArea]] | | | [[GSPGPU:RestoreVramSysArea|RestoreVramSysArea]] |
| |- | | |- |
| | 0x001B0000 | | | 0x001B0000 |
| | | | | |
− | | | + | | Yes |
| | [[GSPGPU:ResetGpuCore|ResetGpuCore]] | | | [[GSPGPU:ResetGpuCore|ResetGpuCore]] |
| |- | | |- |
| | 0x001C0040 | | | 0x001C0040 |
| | | | | |
− | | | + | | No |
| | [[GSPGPU:SetLedForceOff|SetLedForceOff]] | | | [[GSPGPU:SetLedForceOff|SetLedForceOff]] |
| |- | | |- |
| | 0x001D0040 | | | 0x001D0040 |
| | | | | |
− | | | + | | No |
| | SetTestCommand (Stubbed) | | | SetTestCommand (Stubbed) |
| |- | | |- |
| | 0x001E0080 | | | 0x001E0080 |
| | | | | |
− | | | + | | No |
| | SetInternalPriorities | | | SetInternalPriorities |
| |- | | |- |
| | 0x001F0082 | | | 0x001F0082 |
| | [[8.0.0-18]] | | | [[8.0.0-18]] |
− | | | + | | No |
| | [[GSPGPU:StoreDataCache|StoreDataCache]] | | | [[GSPGPU:StoreDataCache|StoreDataCache]] |
| |} | | |} |
| | | |
| The GSP module starts a thread for handling commands for each service session, a maximum of 4 processes can use this service at once. Official applications have an optional code-path which [[GSPGPU:WriteHWRegs|writes]] to registers during initialization, this is normally not used however. | | The GSP module starts a thread for handling commands for each service session, a maximum of 4 processes can use this service at once. Official applications have an optional code-path which [[GSPGPU:WriteHWRegs|writes]] to registers during initialization, this is normally not used however. |
| + | |
| + | If a process has acquired rights, attempting to [[GSPGPU:SetLcdForceBlack|set LCDs to black]] from another process will fail. |
| + | Saving/restoring VRAM requires bit0 of process [[GSPGPU:RegisterInterruptRelayQueue|flags]] to be set. |
| | | |
| = GSP service "gsp::Lcd" = | | = GSP service "gsp::Lcd" = |