10.4.0-29: Difference between revisions

Line 39: Line 39:


===NS===
===NS===
NS added [[APT:IsTitleAllowed|a new APT command]] used by Home Menu which now checks whether IronFall is on the latest version before launching; if it is on an exploitable version and the function is called to launch IronFall the system will reboot. This check is done again before launching the title, throwing an error if it fails.
NS added [[APT:IsTitleAllowed|a new APT command]] used by Home Menu which now checks whether IronFall is on the latest version before launching; if it is on an exploitable version and the function is called to launch IronFall the system will refuse to launch the title(it's unknown what exactly caused a "reboot" here). This check is done again before launching the title, throwing an error if it fails.


All [[NS]] code changes:
All [[NS]] code changes:
Line 54: Line 54:
** Then it loads the uniqueid from the input struct, for determining which entry to use from a table in .rodata. The uniqueid is compared with hard-coded constants in the function code itself, even though the table contains the uniqueids too. The code looks like: "if(uniqueid == constant0) {entryptr = addr0} else if ...". When no entry is found, this immediately returns 1.
** Then it loads the uniqueid from the input struct, for determining which entry to use from a table in .rodata. The uniqueid is compared with hard-coded constants in the function code itself, even though the table contains the uniqueids too. The code looks like: "if(uniqueid == constant0) {entryptr = addr0} else if ...". When no entry is found, this immediately returns 1.
** Lastly, if input_version_value is <= u16 entry+4, this returns 0, otherwise 1 is returned.
** Lastly, if input_version_value is <= u16 entry+4, this returns 0, otherwise 1 is returned.
* L_10df40(prev ver at L_10ddd4): This appears to be the main function used by NS for launching titles in general. Code was added for calling L_10d598() in two locations. The version value passed to L_10d598 here is the title NCCH remaster-version.
* L_10df40(prev ver at L_10ddd4): This appears to be the main function used by NS for launching titles in general(minus [[NSS:LaunchTitle]] used by the *hax payloads). Code was added for calling L_10d598() in two locations. The version value passed to L_10d598 here is the title NCCH remaster-version. When that function returns <blocked>, this code returns error 0xC8A0CC04.


See [[APT:IsTitleAllowed|here]] regarding the contents of that table.
See [[APT:IsTitleAllowed|here]] regarding the contents of that table.