4.0.0: Difference between revisions

m Change-log: Removed overzealous Nintendo format matching (red color).
 
(10 intermediate revisions by 5 users not shown)
Line 31: Line 31:
* Changed the specification which hid wireless networks using TKIP security from the network search results.  Wireless networks using TKIP security will now display in search results as a grayed-out selection instead of not being displayed
* Changed the specification which hid wireless networks using TKIP security from the network search results.  Wireless networks using TKIP security will now display in search results as a grayed-out selection instead of not being displayed
** The Nintendo Switch console supports WEP, WPA-PSK(AES), and WPA2-PSK(AES). If your router is using a different security type (e.g. WPA-PSK(TKIP)), you will need to change this security type within your router's settings.
** The Nintendo Switch console supports WEP, WPA-PSK(AES), and WPA2-PSK(AES). If your router is using a different security type (e.g. WPA-PSK(TKIP)), you will need to change this security type within your router's settings.
==Unofficial Changes==
* Added support for Wii U GameCube Adapter and Headsets [[List of compatible USB devices | over USB]]


==System Titles==
==System Titles==
Line 37: Line 40:
* Every single system title was updated, except for: 0100000000000805("Chinese and Korean dictionaries"), 0100000000000808("European, English and Japanese dictionaries"), and 010000000000080C("EULA").
* Every single system title was updated, except for: 0100000000000805("Chinese and Korean dictionaries"), 0100000000000808("European, English and Japanese dictionaries"), and 010000000000080C("EULA").
* 4 new sysmodules were added, and new FIRM-package title 010000000000081C was added.
* 4 new sysmodules were added, and new FIRM-package title 010000000000081C was added.
* [[Flog]] was stubbed: official code for launching it was removed from [[qlaunch|the home menu]], and *all* code was overwritten with garbage. Thus, even attempts to launch it manually will result in [[Loader services|loader]] returning error 0xA09.
==Kernel==
* Kernel startup code was updated:
** A new (unused?) function was added, this is roughly the same as the code which originally directly read a MC register (0x70019050) for [[Memory_layout|getting]] the DRAM size, except [[SMC]] ReadWriteRegister is used for the read instead.
** The code which originally read the above register directly was replaced with an inlined version of the above function.
* All RTTI symbols were removed, can no longer know official name of kernel objects. :(
* JIT syscalls were added.
** New MemoryType bit for "JIT allowed".
** New MemoryTypes for JitWritable and JitReadOnly.
* New synchronization syscalls 0x34, 0x35 added: These ones allow implementation of synchronization primitives without a mutex+condvar pair. This is more efficient because when a thread wakes up from a condvar, the mutex is held and needs to perform a syscall to unlock it. If you have N threads blocking on a condvar, you need N-1 syscalls to wake all the threads. With the new syscalls, you can wake up all N with a single syscall.
* Added new syscall svcDumpInfoNew, but it's stubbed.
* The linked-list node for KAutoObjects was added to the struct itself instead of being a separate allocation.
* svcGetInfo now exposes the first and last process id for built-in modules.
** This is used by some services to make sure we can't connect to them from outside a privileged module.
* svcReadWriteRegister was updated, now always goes through TZ for both PMC and MC. Whitelist for MC remains the same.
* Support was added for loading non-KIP processes into the Secure pool via a flag in SvcCreateProcess.
** This is used by only for es, to prevent attackers from using GPU DMA to take over the es sysmodule to pirate games.
** Correspondingly, the KHeapArrange calculation of the secure pool size now has an extra 0x13A000 factored in (to ensure there is enough space for es).


===FIRM===
===FIRM===
Line 42: Line 67:


The package1 entrypoint address specified by BCT was increased by 0x20-bytes, since there's now an additional 0x20-bytes at the start of package1. The additional data is identical to the 0x20-byte block before it.
The package1 entrypoint address specified by BCT was increased by 0x20-bytes, since there's now an additional 0x20-bytes at the start of package1. The additional data is identical to the 0x20-byte block before it.
In SafeMode Firmware the [[Bus_services|Bus]], [[PCV_services|PCV]] and [[PSC_services|psc]] sysmodules are now bundled with the kernel.
Sysmodules:
* spl was updated to split the [[SPL services#spl:|IGeneralService]] ("spl:") into many usage-case specific services.
** spl: no longer contains commands for doing AES/RSA cryptographic operations
** spl:mig was added, supporting crypto commands used by the new migration sysmodule.
** spl:ssl was added, supporting crypto commands used by the [[SSL services|ssl]] sysmodule
** spl:es was added, supporting crypto commands used by the es sysmodule.
** spl:fs was added, supporting crypto commands used by the [[Filesystem services|fs]] FIRM sysmodule.


====Package1====
====Package1====