(Switch 2) Compatibility Mode: Difference between revisions

Ootulp (talk | contribs)
Ootulp (talk | contribs)
 
(4 intermediate revisions by the same user not shown)
Line 7: Line 7:
These binaries are compiled with PAC enabled.
These binaries are compiled with PAC enabled.


= NPDM Adjustments =
* Game has access to SVC 0x80 even though it's not in the game NPDM.
* Game has CoreMask 0x3F (so access to core0-5) even though the game NPDM only has CoreMask 0x7.
* It's unknown if the service whitelist is updated for the game when running in Compatibility mode.


= Hooking =
= Hooking =
Line 48: Line 52:
| 2 || PreventShaderCacheOpenDirectory || Prevents game from opening directory: "host:/shaders/build/"
| 2 || PreventShaderCacheOpenDirectory || Prevents game from opening directory: "host:/shaders/build/"
|-
|-
| 4 || SerializeSavedataAccess || Global mutex is taken when file starting with "savedata" is opened, and held until the file has been closed.
| 4 || SerializeSavedataAccess || A global mutex is taken when a file starting with "savedata" is opened, and held until the file has been closed. Commit-action also takes the mutex, so the commit will not complete until the file has been closed.
|-
| 6 || PreventNegativeVibrationValue ||
|-
|-
| 10 || NeedsWaitingLaunchLogo ||
| 10 || NeedsWaitingLaunchLogo ||
Line 83: Line 89:
| nn::audio::GetAudioInName || If the primary audio in name is "XUac", it returns the secondary device name instead. Presumably, the "XUac" device has been removed in Switch 2. ||  
| nn::audio::GetAudioInName || If the primary audio in name is "XUac", it returns the secondary device name instead. Presumably, the "XUac" device has been removed in Switch 2. ||  
|-
|-
| nn::audio::GetReleasedWaveBuffer || Now returns NULL under certain circumstances. ||  
| nn::audio::GetReleasedWaveBuffer || Now returns NULL under certain circumstances. || AudioControlData bit0
|-
|-
| nn::web::OfflineWebSession::Appear || Added sleep 50000000 before calling the original function. || MiscControlData bit13
| nn::web::OfflineWebSession::Appear || Added sleep 50000000 before calling the original function. || MiscControlData bit13
Line 96: Line 102:
|-
|-
| nn::os::QueryMemoryInfo,nn::os::QueryMemoryInfoForDebug || Hides stolen Heap memory that it uses for itself... ||
| nn::os::QueryMemoryInfo,nn::os::QueryMemoryInfoForDebug || Hides stolen Heap memory that it uses for itself... ||
|-
| nn::hid::VibrationPlayer::SetCurrentPosition || If position is negative, drop the call. || MiscControlData bit6
|}
|}


Line 106: Line 114:
|-
|-
| nn::os::ConvertToTick || Uses conversion ratio 31250000 instead of 19200000.
| nn::os::ConvertToTick || Uses conversion ratio 31250000 instead of 19200000.
|-
| gl*, _gl*, egl* || OpenGL API translation for new GPU?
|-
| vk* || Vulkan API translation for new GPU?
|-
| NvOsFopen ||
|-
| NvOsGetTimeMS || Adjusted for new clock frequency.
|-
| nn::vi::* || Translation layer because vi:u was removed?
|}
|}