Difference between revisions of "11.4.0-37"
Line 13: | Line 13: | ||
This is to fix [[3DS_System_Flaws#Process9|safehax]]. | This is to fix [[3DS_System_Flaws#Process9|safehax]]. | ||
+ | |||
+ | ====New3DS kernel9loader==== | ||
+ | New3DS kernel9loader wasn't updated. | ||
====ARM11 kernel==== | ====ARM11 kernel==== | ||
Line 20: | Line 23: | ||
* A new SVC, [[SVC|svc 0x5A]] has been introduced, to enable or disable wifi | * A new SVC, [[SVC|svc 0x5A]] has been introduced, to enable or disable wifi | ||
* The code handling [[SVC|svcArbitrateAddress]] with type = SIGNAL, has been changed. It now counts the actual number of threads arbitrating on that address, and if it is non-zero, it executes the following hack: <code>if(coreId == 0 && currentThread->dynamicPriority >= 50) waitCycles(0x64E)</code>. This supposedly works around the lag issue in some games, which has been introduced on [[11.3.0-36]] | * The code handling [[SVC|svcArbitrateAddress]] with type = SIGNAL, has been changed. It now counts the actual number of threads arbitrating on that address, and if it is non-zero, it executes the following hack: <code>if(coreId == 0 && currentThread->dynamicPriority >= 50) waitCycles(0x64E)</code>. This supposedly works around the lag issue in some games, which has been introduced on [[11.3.0-36]] | ||
+ | |||
+ | ===Modules=== | ||
+ | No FIRM ARM11 sysmodule was changed. | ||
===[[NWM_Services|NWM-sysmodule]]=== | ===[[NWM_Services|NWM-sysmodule]]=== |
Revision as of 11:05, 11 April 2017
The Old3DS+New3DS 11.4.0-37 system update was released on April 10, 2017. This Old3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN. This New3DS update was released for the following regions: USA, EUR, JPN, CHN, KOR, and TWN.
Security flaws fixed: yes.
Change-log
Official USA change-log:
- Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience
System Titles
NATIVE_FIRM
Process9
The global boolean preventing SAFE_FIRM from being launched is now set in Process9's crt0 if CFG9_BOOTENV has bit0 set, that is to say, if it has been launched from a firmlaunch (this register is set to 1 just before a firmlaunch). The following code has also been added in the firmlaunch function itself: if(!(CFG9_BOOTENV & 1) /* not a firmlaunch */ || (CFG9_BOOTENV & 6) /* firmlaunched from LGY_FIRM (if even possible at all) */) goto panic
.
This is to fix safehax.
New3DS kernel9loader
New3DS kernel9loader wasn't updated.
ARM11 kernel
There are at least, and likely, three changes:
- CFG11_WIFIUNK is now set to 0x10 in Kernel11's crt0
- A new SVC, svc 0x5A has been introduced, to enable or disable wifi
- The code handling svcArbitrateAddress with type = SIGNAL, has been changed. It now counts the actual number of threads arbitrating on that address, and if it is non-zero, it executes the following hack:
if(coreId == 0 && currentThread->dynamicPriority >= 50) waitCycles(0x64E)
. This supposedly works around the lag issue in some games, which has been introduced on 11.3.0-36
Modules
No FIRM ARM11 sysmodule was changed.
NWM-sysmodule
The CONFIG11_Registers are no longer directly mapped under userland for NWM-sysmodule. This prevents anything under NWM-module from modifying the GPUPROT register.
The codebin was updated.
The crt0-poke in PDN that NWM previously did:
0x1EC4010C |= 0x10
.. has been removed from NWM. This one has been moved into kernel bootup.
Accesses to 0x1EC40180 have been replaced by a new syscall, 0x5A.
A new string was added at 0x13E200: "used"(with 3 0xFF bytes afterwards). The wifi-fw was moved from .data to .rodata.
See Also
System update report(s):