Nintendo 64 - Nintendo Switch Online: Difference between revisions

No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 47: Line 47:
The struct passed as the InBuffer to [[JIT_services#Control|Control]] is now 0xE00-bytes instead of 0xEB0-bytes. The internal workmem offsets / layout changed. Various funcs were updated etc.
The struct passed as the InBuffer to [[JIT_services#Control|Control]] is now 0xE00-bytes instead of 0xEB0-bytes. The internal workmem offsets / layout changed. Various funcs were updated etc.


The 0xE00-byte controldata struct has the following structure (all addrs/data are from the emulator user-process):
With v2.9.0 the controldata is now 0xE08-bytes.
 
The controldata struct has the following structure (all addrs/data are from the emulator user-process):


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 113: Line 115:
| 0x96C || 0x4 || Array count for the the following array.
| 0x96C || 0x4 || Array count for the the following array.
|-
|-
| 0x970 || 0x280 (0x20*0x14) || Array data with the above count, each entry is 0x14-bytes. The emulator loads this from config array "SpecialInst". +0 = u32 emu_pc_addr (config "Addr"), +4 = u32 instruction_value (config "Inst"), +8 = u32 flags. The emulator sets the flags to 0 by default, then compares config "Type" with various strings to determine the value. Flags: bit0 = Type "BreakLoop", bit5 = Type "LoadFrameBuffer", bit6 = Type "Lua_BeforeInst", bit7 = Type "Lua_AfterInst".
| 0x970 || 0x280 (0x20*0x14) || Array data with the above count, each entry is 0x14-bytes. The emulator loads this from config array "SpecialInst". +0 = u32 emu_pc_addr (config "Addr"), +4 = u32 instruction_value (config "Inst"), +8 = u32 flags. The emulator sets the flags to 0 by default, then compares config "Type" with various strings to determine the value. Flags: bit0 = Type "BreakLoop", bit5 = Type "LoadFrameBuffer", bit6 = Type "Lua_BeforeInst", bit7 = Type "Lua_AfterInst", bit9 (v2.9.0+) = unknown.


When the config for {any of the previously mentioned Type strings} is set to value 1, the emulator will also enable the corresponding flags bit mentioned above. Likewise with config "Return", which sets flags bit8.
When the config for {any of the previously mentioned Type strings} is set to value 1, the emulator will also enable the corresponding flags bit mentioned above. Likewise with config "Return", which sets flags bit8.
Line 132: Line 134:
|-
|-
| 0xDFC || 0x4 || Set to 0 by default by the emulator. With config <code>"Cmp", "CodeMultiAddr"</code> this is set to 1. Config <code>"Cmp", "BlockDynamicPC"</code> from [[Super_Mario_3D_All-Stars|SM3DAS]] is not supported. The plugin doesn't use this field, since support for "BlockDynamicPC" was removed. All code which used to use this now assumes val!=2, with code for ==2 being removed.
| 0xDFC || 0x4 || Set to 0 by default by the emulator. With config <code>"Cmp", "CodeMultiAddr"</code> this is set to 1. Config <code>"Cmp", "BlockDynamicPC"</code> from [[Super_Mario_3D_All-Stars|SM3DAS]] is not supported. The plugin doesn't use this field, since support for "BlockDynamicPC" was removed. All code which used to use this now assumes val!=2, with code for ==2 being removed.
|-
| 0xE00 || 0x4 || Added with v2.9.0, see below.
|}
|}


Line 243: Line 247:


== v2.0.0 ==
== v2.0.0 ==
The SDK version was updated to 13.3.0.
The SDK version was updated to 13.3.0. The Pia* versions were updated to v5.38.0, previously it was v5.36.0. The version for Pia itself was changed to v5.38.0.59024 from v5.36.0.57074.


ExeFs:
ExeFs:
Line 452: Line 456:
*** .cfg, .pcb, and .nro updated. In the .cfg two entries were removed from "RendererSetting".
*** .cfg, .pcb, and .nro updated. In the .cfg two entries were removed from "RendererSetting".
** "N-4813_e/", "N-4813_p/" added (Wave Race 64)
** "N-4813_e/", "N-4813_p/" added (Wave Race 64)
== v2.7.0 ==
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
RomFs:
* "/bootapp/init.json" updated
* "/bootapp/resources/fonts/": Various fonts updated.
* "/bootapp/resources/scripts/states/ui/statedisplaymode.lua" updated
* "/bootapp/resources/scripts/sys/sysingame.lua" updated
* "/bootapp/resources/strings/": Various localization data updated.
* "/.nrr/": The NRRs were updated, and added "N-3783_e.nrr"/"N-3783_p.nrr".
* "/Pipeline.cache" updated
* "/shader_vulkan_v2_vert.spv" added
* "titles/":
** "lclassics.titlesdb" updated
** "N-2456_e/N-2456_e.dtz" updated (F-Zero X)
*** .cfg, .pcb, .nro, and .lua updated. In the .cfg the "MaxTaskPerFrame" field in "RSP" was removed.
** "N-4371_e/N-4371_e.dtz" updated (Mario Golf)
*** .cfg, .pcb, .nro, and .lua updated. In the .cfg the formatting was adjusted. Under "RSP" the "FramesPerGTask" field was removed, and fields "RDPIntDelay"/"RDPIntDelayRelative" were added. The value of all "Comment" fields are now blank ("").
** "N-3783_e/", "N-3783_p/" added (Pilot Wings 64)
== v2.8.0 ==
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
RomFs:
* "/bootapp/init.json" updated
* "/bootapp/resources/fonts/": Various fonts updated.
* "/bootapp/resources/scripts/states/ui/stateingameentrance.lua" updated
* "/bootapp/resources/scripts/states/ui/stateingame.lua" updated
* "/bootapp/resources/scripts/sys/sysnotifier.lua" updated
* "/bootapp/resources/strings/": Various localization data updated.
* "/.nrr/": The NRRs were updated, and added "N-1053_e.nrr"/"N-1053_p.nrr" + "N-4737_e.nrr"/"N-4737_p.nrr".
* "titles/":
** "lclassics.titlesdb" updated
** No existing title data was changed here, only dirs for the new games were added: "N-1053_e"/"N-1053_p" (Mario Party 2) and "N-4737_e"/"N-4737_p" (Mario Party 3).
== v2.9.0 ==
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
RomFs:
* "/bootapp/init.json" updated
* "/bootapp/resources/fonts/": Various fonts updated.
* "/bootapp/resources/scripts/sys/sysingame.lua" updated
* "/bootapp/resources/scripts/sys/sysnotifier.lua" updated
* "/bootapp/resources/scripts/sys/sysresidentinformation.lua" updated
* "/bootapp/resources/scripts/system/inputdevicemanager.lua" updated
* "/bootapp/resources/strings/": Various localization data updated.
* "/nro/libHovercraftJITPlugin.nro" updated
* "/.nrr/": The NRRs were updated, and added "N-4631_e.nrr".
* "/Pipeline.cache" updated
* "/shader_vulkan_v2_vert.spv" added
* "titles/":
** "lclassics.titlesdb" updated
** "N-1053_e/N-1053_e.dtz" updated (Mario Party 2)
*** .pcb and .nro were updated.
** "N-4737_e/N-4737_e.dtz" updated (Mario Party 3)
*** .pcb and .nro were updated.
** "N-4631_e" added (GoldenEye 007)
libHovercraftJITPlugin updated two funcs:
* L_1060, prev ver at L_1060: calling L_4990 (codegen func) is now skipped if u32 controldata+0xE00 is non-zero (this applies to 2 of the 3 calls to L_4990 in this func).
* L_1d90, prev ver at L_1d80:
** The code at 0x1ebc no longer calls L_910 from prev ver. Code was also added for handling bit9 in the array at controldata+0x970.
== v2.10.0 ==
The module name for the main-NSO was changed from "{path}\l-classics-app.nss" to "l-classics".
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
RomFs:
* "/bootapp/init.json" updated
* "/bootapp/resources/anims/" Added various .spriteanim files.
* "/bootapp/resources/fonts/" Various fonts updated/removed.
* "/bootapp/resources/prefabs/sys/deviceconfig/sysdeviceconfig.scn" updated
* "/bootapp/resources/prefabs/sys/hudguide/syshudguide.scn" removed
* "/bootapp/resources/prefabs/sys/hudguide/syshudlabelgroup.scn" added
* "/bootapp/resources/prefabs/sys/hudguide/syshudlabel.scn" added
* "/bootapp/resources/prefabs/sys/operationguide/operationguideelements.scn" updated
* "/bootapp/resources/prefabs/sys/popupguide/popupguideelements.scn" updated
* "/bootapp/resources/prefabs/sys/sysdialoggeneric.scn" updated
* "/bootapp/resources/prefabs/sys/sysdialogprogress.scn" updated
* "/bootapp/resources/prefabs/sys/sysgamecard.scn" updated
* "/bootapp/resources/prefabs/sys/syssidemenubuttoninvite.scn" removed
* "/bootapp/resources/prefabs/sys/sysuserinfolist.scn" updated
* "/bootapp/resources/scenes/sys/sysdisplaymodelayout.scn" updated
* "/bootapp/resources/scenes/sys/": Removed "sysfingercursors.scn", "syslocalmenu.scn", "syssidemenu.scn".
* "/bootapp/resources/scenes/sys/sysmain.scn" updated
* "/bootapp/resources/scenes/sys/syspausemenu.scn" updated
* "/bootapp/resources/scenes/sys/sysworld.scn" updated
* "/bootapp/resources/scripts/": Added "constants.lua" and "constants_nuse.lua".
* "/bootapp/resources/scripts/gui/gui_nine_patches.lua" updated
* "/bootapp/resources/scripts/states/network/statelogin.lua" updated
* "/bootapp/resources/scripts/states/network/stateonline.lua" updated
* "/bootapp/resources/scripts/states/network/statesessioncreate.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionemusyncstatesharing.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionestablished.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionestablishedstandby.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionidle.lua" updated
* "/bootapp/resources/scripts/states/network/statesessioninitial.lua" updated
* "/bootapp/resources/scripts/states/network/statesessioninitialsharing.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionjoin.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionleave.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionquitconfirmation.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionready.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionrecovery.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionsearch.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionstandby.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionstartup.lua" updated
* "/bootapp/resources/scripts/states/network/statesessionthumbnailsharing.lua" updated
* "/bootapp/resources/scripts/states/network/statesuspendpointsharing.lua" updated
* "/bootapp/resources/scripts/states/ui/stateboot.lua" updated
* "/bootapp/resources/scripts/states/ui/statechangenetplaymode.lua" updated
* "/bootapp/resources/scripts/states/ui/statecheckcontroller.lua" updated
* "/bootapp/resources/scripts/states/ui/statedisplaymode.lua" updated
* "/bootapp/resources/scripts/states/ui/stateerrorfailedtojoin.lua" updated
* "/bootapp/resources/scripts/states/ui/stateerrorlostconnectioningame.lua" updated
* "/bootapp/resources/scripts/states/ui/stategamedetails.lua" updated
* "/bootapp/resources/scripts/states/ui/stategamelistedit.lua" updated
* "/bootapp/resources/scripts/states/ui/stategamelist.lua" updated
* "/bootapp/resources/scripts/states/ui/stategameselection.lua" updated
* "/bootapp/resources/scripts/states/ui/stateingameentrance.lua" updated
* {a number of lua scripts updated}
* "/bootapp/resources/scripts/states/ui/statelocalmenu.lua" removed
* "/bootapp/resources/scripts/states/ui/staterewind.lua" removed
* "/bootapp/resources/scripts/states/ui/statestartupnewsspecial.lua" removed
* "/bootapp/resources/scripts/states/ui/stateswapplayers_4p.lua" removed
* "/bootapp/resources/scripts/states/ui/stateswapplayers.lua" added
* "/bootapp/resources/scripts/sys/sysdialognewsspecial.lua" removed
* "/bootapp/resources/scripts/sys/syshudlabelgroup.lua" added
* "/bootapp/resources/scripts/sys/syslanguagelabel.lua" added
* "/bootapp/resources/scripts/sys/syslocalmenu.lua" removed
* "/bootapp/resources/scripts/sys/sysplayercountmenu.lua" added
* "/bootapp/resources/scripts/sys/sysplayerswaplist_4p.lua" removed
* "/bootapp/resources/scripts/sys/sysplayerswaplist.lua" added
* "/bootapp/resources/scripts/sys/": Removed "sysrewindchapterlist.lua", "sysrewindchapter.lua", "sysrewind.lua", "syssidemenulocalbutton.lua", "sysversion.lua".
* "/bootapp/resources/scripts/sys/syssidemenumultiplayerbutton.lua" added
* "/bootapp/resources/scripts/system/appsettings.lua" removed
* "/bootapp/resources/shaders/" Various shaders updated.
* "/bootapp/resources/sprites/" Various PNGs updated.
* "/bootapp/resources/strings/": Various localization data updated.
* "/bootapp/resources.json" updated
* "/nro/libHovercraftJITPlugin.nro" updated. Rebuilt, .nrs module path differs.
* "/.nrr/": The NRRs were updated, and added "N-4590_e.nrr"/"N-4590_p.nrr".
* "/Pipeline.cache" updated
* "/titles/lclassics.titlesdb" updated
* "/titles/": Almost all "{id}.png" files were updated.
** Added "N-4590_e"/"N-4590_pd"/"N-4590_pf"/"N-4590_pi"/"N-4590_ps" (Pokemon Stadium).
== v2.10.1 ==
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
RomFs:
* "/bootapp/init.json" updated
* "/bootapp/resources/scripts/states/ui/stateingameentrance.lua" updated
* "/nro/libHovercraftJITPlugin.nro" Updated, just a rebuild.
* "/.nrr/" NRRs updated.
* "/Pipeline.cache" updated
* "/titles/N-4590_{e/pd/pf/pi/ps}/{id}.dtz" updated (Pokemon Stadium)
** .cfg, .pcb, .nro, .lua, .ppl, and .spv updated. In the .cfg two entries were added to the "SpecialInst" array, with type "Lua_AfterInst". Various renderer config was also adjusted.
== v2.11.0 ==
The NintendoSDK version was updated from 13.3.0 to 13.3.11.
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
* rtld/sdk/subsdk0/subsdk1: updated
RomFs:
* "/bootapp/init.json" updated
* "/bootapp/resources/fonts/" Various fonts updated.
* "/bootapp/resources/scenes/sys/sysworld.scn" updated
* "/bootapp/resources/scripts/" Various scripts updated.
* "/bootapp/resources/shaders/":
** "blur.spirv" updated
** "downscale2.spirv" and "downscale5.spirv" added.
* "/bootapp/resources/strings/": Various localization data updated.
* "/bootapp/resources.json" updated
* "/nro/libHovercraftJITPlugin.nro" updated. Only 1 func was updated, changes seem to be minor.
* "/.nrr/": The NRRs were updated, and added "N-1848_pd.nrr"/"N-1848_pf.nrr". Added "N-3240_pd.nrr"/"N-3240_pf.nrr"/"N-3240_pi.nrr"/"N-3240_ps.nrr"/"N-3309_e.nrr"/"N-3309_pd.nrr"/"N-3309_pf.nrr"/"N-3309_pi.nrr"/"N-3309_ps.nrr". Added "N-4590_pd.nrr"/"N-4590_pf.nrr"/"N-4590_pi.nrr"/"N-4590_ps.nrr". Removed "N-1848_p.nrr"/"N-3240_p.nrr"/"N-4590_p.nrr".
* "/Pipeline.cache" updated
* "/titles":
** "lclassics.titlesdb" updated
** Added "N-3309_e"/"N-3309_pd"/"N-3309_pf"/"N-3309_pi"/"N-3309_ps" (Pokemon Stadium 2)
** "N-4590_{e/pd/pf/pi/ps}/{id}.dtz" updated (Pokemon Stadium)
*** .cfg, .pcb, .nro, .lua, .ppl, and .spv updated. In the .cfg various renderer settings were adjusted, which includes adding fields "SoftResetNeedUpdate" and "SoftResetNeedForce".
== v2.17.0 ==
The NintendoSDK version was updated from 13.3.11 to 13.3.14.
In the [[CNMT]], RequiredSystemVersion was updated: [[18.1.0]] is now required, previously [[17.0.1]] was required. {other CNMT changes}
ExeFs:
* NPDM only had the usual ACID pubkey/signature update.
* main: updated
* sdk/subsdk0/subsdk1: updated
RomFs:
* Various changes, including updating "/nro/libHovercraftJITPlugin.nro" and adding "/titles/N-1226_{e|p}/" (Banjo-Tooie).
== v3.0.0 ==
The NintendoSDK version was updated from 13.3.14 to 18.3.2.
In the [[CNMT]], RequiredSystemVersion was updated: [[19.0.1]] is now required, previously [[18.1.0]] was required. {other CNMT changes}
Pia* was updated from v5.38.0 to v6.34.0. NEX was removed, and NPLN was added (v1.27.0). NintendoSDK_Mnpp was added. PiaLocal/PiaNplnd/PiaSync/Pia_ZStandard were added.
ExeFs:
* Service access for [[SPL_services|csrng]] was added to the NPDM.
* main: updated
* rtld/sdk/subsdk0/subsdk1: updated
RomFs:
* Various changes, including updating "/nro/libHovercraftJITPlugin.nro" and adding "/titles/N-1730_e/" (Ridge Racer 64).