Changes

197 bytes added ,  04:11, 23 January 2016
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.