Changes

1,233 bytes added ,  14:18, 11 July 2017
MCU firmware diff
Line 150: Line 150:  
==New 2DS XL Version==
 
==New 2DS XL Version==
 
On June 15, 2017 a new version of 11.4.0-37E was released pre-installed with the AU/NZ debut of the New 2DS XL model of the 3ds family. There are 13 updated titles over the base NUS version included this new model, apparently to ensure compatibility with the New 2DS XL's unique 3D-less hardware configuration. A list of changed titles can be found [https://gist.github.com/ihaveamac/bffc8694ac209207c8db86a98f6c4238 here].
 
On June 15, 2017 a new version of 11.4.0-37E was released pre-installed with the AU/NZ debut of the New 2DS XL model of the 3ds family. There are 13 updated titles over the base NUS version included this new model, apparently to ensure compatibility with the New 2DS XL's unique 3D-less hardware configuration. A list of changed titles can be found [https://gist.github.com/ihaveamac/bffc8694ac209207c8db86a98f6c4238 here].
 +
 +
===[[MCU Services|MCU sysmodule]]===
 +
Differences between v8192 and v9216 (New2DSXL):
 +
 +
* The SDK crt0 and functions seem to have been updated
 +
* The MCU sysmodule has been moved into .rodata
 +
* Other minor changes (?)
 +
 +
The MCU firmware itself was updated, see below.
 +
 +
====MCU firmware====
 +
With <code>u16 *g_model = (u16 *)0x000ff908;</code>, the function that were actually changed are:
 +
 +
* 00000189: adds <code>if(*g_model == 2DS) *g_model == N2DSXL;</code> in the function that converts model numbers to their XL versions. However the function hardcodes N3DS even on N2DSXL.
 +
* <code>*(u8 *)0xffe3a |= (model == N3DS || model == N3DSXL) ? 8 : 0;</code> becomes <code>*(u8 *)0xffe3a |= (model == N3DS || model == N3DSXL || model == N2DSXL) ? 8 : 0</code>
 +
* 00002be5 (previously 00002be1):
 +
    u8 *v = (u8 *)0xffe3b;
 +
    if(g_model == N3DS || g_model == N3DSXL)
 +
    {
 +
        v[0] = 0x54;
 +
        v[1] = 0x44;
 +
    }
 +
    +else if(g_model == N2DSXL)
 +
    +{
 +
    +    v[0] = 0x4e;
 +
    +    v[1] = 0x3f;
 +
    +}
 +
    else
 +
    {
 +
        v[0] = 0x4b;
 +
        v[1] = 0x3d; 
 +
    }
 +
 +
Reminder: The MCU is similar to the rl78-g13 model; to build a reconstruct the MCU firmware, copy 0x1000 bytes after "jhl" ''twice'', and 0x1000 bytes thereafter.
 +
 
==See Also==
 
==See Also==
 
System update report(s):
 
System update report(s):
 
* [https://yls8.mtheall.com/ninupdates/reports.php?date=04-10-17_08-00-38&sys=ctr]
 
* [https://yls8.mtheall.com/ninupdates/reports.php?date=04-10-17_08-00-38&sys=ctr]
 
* [https://yls8.mtheall.com/ninupdates/reports.php?date=04-10-17_08-00-47&sys=ktr]
 
* [https://yls8.mtheall.com/ninupdates/reports.php?date=04-10-17_08-00-47&sys=ktr]