Line 6: |
Line 6: |
| | | |
| Each game uses different methods of emulation. | | Each game uses different methods of emulation. |
| + | |
| + | The pause-menu when pressing the '-' button in each game uses the Offline web-applet with [[Internet_Browser#WebSession|WebSession]]. |
| + | |
| + | = NPDM = |
| + | This section documents the [[NPDM]] for the launcher and each game. |
| + | * Launcher: Roughly the same as most Switch games' NPDM. |
| + | * SuperMario64: Locked down since this uses [[JIT_services|JIT]]. Compared to the Launcher NPDM (besides ProgramId): |
| + | ** ProgramIdMin/ProgramIdMax is 010049900F546001-010049900F546001, with other NPDMs it's the normal full Application-range. |
| + | ** Access to [[SVC|svcMapPhysicalMemory]]/[[SVC|svcUnmapPhysicalMemory]] was removed, and access to [[SVC|svcCreateCodeMemory]] was added. |
| + | ** The only other difference is service-access-control: this was locked down, and only has the following services: [[Account_services|acc:u0]], [[NS_Services|aoc:u]], [[PPC_services#apm|apm]], [[Applet_Manager_services|appletOE]], [[Audio_services|audren:u]], [[Filesystem_services|fsp-srv]], [[HID_services|hid]], [[JIT_services|jit:u]], [[RO_services|ldr:ro]], [[Log_services|lm]], [[NV_services|nvdrv]], [[Parental_Control_services|pctl]], [[BCAT_services|prepo:u]], [[Settings_services|set]], [[PCV_services|time:u]], [[Display_services|vi:u]]. |
| + | ** Note that aoc:u, pctl, and lm are only accessible since sdknso automatically initializes these during startup, the main-codebin itself doesn't use these. |
| + | * SuperMarioSunshine: Same as Launcher (besides ProgramId), except [[NPDM#Flags|flag]] OptimizeMemoryAllocation is set. |
| + | * SuperMarioGalaxy: Same as Launcher (besides ProgramId), except [[NPDM#Flags|flags]] is 0x4: Is64BitInstruction=0(AArch32) and ProcessAddressSpace=0x2. |
| | | |
| = SuperMario64 = | | = SuperMario64 = |