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 (Stubbed) |
| |- | | |- |
| | 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 | + | | [[GSPGPU:SetAxiConfigQoSMode|SetAxiConfigQoSMode]] |
| |- | | |- |
| | 0x00110040 | | | 0x00110040 |
| | | | | |
− | | | + | | No |
− | | SetPerfLogMode | + | | [[GSPGPU:SetPerfLogMode|SetPerfLogMode]] |
| |- | | |- |
| | 0x00120000 | | | 0x00120000 |
| | | | | |
− | | | + | | No |
− | | GetPerfLog | + | | [[GSPGPU: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 | + | | [[GSPGPU: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" = |
Line 175: |
Line 178: |
| | 0x00010040 | | | 0x00010040 |
| | | | | |
− | | ? | + | | [[GSPLCD:EnableABL|EnableABL]] |
| |- | | |- |
| | 0x00020040 | | | 0x00020040 |
| | | | | |
− | | ? | + | | [[GSPLCD:DisableABL|DisableABL]] |
| |- | | |- |
| | 0x00030080 | | | 0x00030080 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetRSLut|SetRSLut]] |
| |- | | |- |
| | 0x000400C0 | | | 0x000400C0 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetRSParams|SetRSParams]] |
| |- | | |- |
| | 0x00050140 | | | 0x00050140 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetABLArea|SetABLArea]] |
| |- | | |- |
| | 0x00060140 | | | 0x00060140 |
Line 199: |
Line 202: |
| | 0x00070080 | | | 0x00070080 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetInertia|SetInertia]] |
| |- | | |- |
| | 0x000800C0 | | | 0x000800C0 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetDitherMode|SetDitherMode]] |
| |- | | |- |
| | 0x00090140 | | | 0x00090140 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetDitherParams|SetDitherParams]] |
| |- | | |- |
| | 0x000A0080 | | | 0x000A0080 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetBrightnessRaw|SetBrightnessRaw]] |
| |- | | |- |
| | 0x000B0080 | | | 0x000B0080 |
| | | | | |
− | | ? | + | | [[GSPLCD:SetBrightness|SetBrightness]] |
| |- | | |- |
| | 0x000C0040 | | | 0x000C0040 |
| | | | | |
− | | ? | + | | [[GSPLCD:ReloadConfig|ReloadConfig]] |
| |- | | |- |
| | 0x000D0040 | | | 0x000D0040 |
| | | | | |
− | | ? | + | | [[GSPLCD:RestoreConfig|RestoreConfig]] |
| |- | | |- |
| | 0x000E0000 | | | 0x000E0000 |
| | | | | |
− | | ? | + | | [[GSPLCD:GetPowerState|GetPowerState]] |
| |- | | |- |
| | 0x000F0000 | | | 0x000F0000 |
Line 251: |
Line 254: |
| | 0x00140000 | | | 0x00140000 |
| | [[8.0.0-18]] | | | [[8.0.0-18]] |
− | | New3DS-only, stubbed on Old3DS: This only returns an error. Uninitialized data(not set by this command itself) is also written to u8 cmdreply_word[2]. | + | | [[GSPLCD:GetVendor|GetVendor]] New3DS-only, stubbed on Old3DS: This only returns an error. Uninitialized data(not set by this command itself) is also written to u8 cmdreply_word[2]. |
| |- | | |- |
− | | 0x00150000 | + | | 0x00150040 |
| | [[8.0.0-18]] | | | [[8.0.0-18]] |
− | | New3DS-only, stubbed on Old3DS: This only returns an error. Uninitialized data(not set by this command itself) is also written to u32 cmdreply_word[2]. | + | | [[GSPLCD:GetBrightness|GetBrightness]] New3DS-only, stubbed on Old3DS: This only returns an error. Uninitialized data(not set by this command itself) is also written to u32 cmdreply_word[2]. |
| |} | | |} |
| | | |