Line 176:
Line 176:
| 0xC
| 0xC
| 0x2
| 0x2
−
| [[#Flag1|Flag1]] and [[#Flag2|Flag2]]
+
| [[#Flag1|Flag1]] and [[#Flag2|Flag2]] (both implemented starting from [[8.0.0-18]]).
|-
|-
| 0xE
| 0xE
Line 223:
Line 223:
During a FIRM-launch when a titleinfo structure was specified, the field at offset [[FIRM#FIRM_Launch_Parameters|0x400]] in the FIRM-launch parameters is set to the SystemMode of the specified title(however in some cases other values are written there). With [[8.0.0-18]] NS will now check the output of [[PTM|PTMSYSM]] command 0x040A0000, when the output is non-zero and a certain NS state field is value-zero, the following is executed otherwise this is skipped. With that check passed on [[8.0.0-18]], NS will then check (Flag2 & 0xf). When that's value2, the output value(used for the FIRM-launcher parameter field mentioned above) is set to value7. Otherwise, when that value is non-zero, the output value is set to 6.
During a FIRM-launch when a titleinfo structure was specified, the field at offset [[FIRM#FIRM_Launch_Parameters|0x400]] in the FIRM-launch parameters is set to the SystemMode of the specified title(however in some cases other values are written there). With [[8.0.0-18]] NS will now check the output of [[PTM|PTMSYSM]] command 0x040A0000, when the output is non-zero and a certain NS state field is value-zero, the following is executed otherwise this is skipped. With that check passed on [[8.0.0-18]], NS will then check (Flag2 & 0xf). When that's value2, the output value(used for the FIRM-launcher parameter field mentioned above) is set to value7. Otherwise, when that value is non-zero, the output value is set to 6.
−
==== Flag1 and Flag2 ====
+
==== Flag1 ====
−
Support for these two u8 fields were implemented with [[8.0.0-18]].
−
−
===== Flag1 =====
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 248:
Line 245:
When launching titles / perhaps other things with APT, [[NS]] uses [[PTMSYSM:ConfigureNew3DSCPU]] with data which originally came from these flags(NS does this regardless of what the running 3DS system is). However, due to a bug(?) in NS the value sent to that command is always either 0x0 or 0x3. When calculating that value, the code only ever uses the cpuspeed field, not the cache field: code to actually load and check the value of the cache field appears to be missing.
When launching titles / perhaps other things with APT, [[NS]] uses [[PTMSYSM:ConfigureNew3DSCPU]] with data which originally came from these flags(NS does this regardless of what the running 3DS system is). However, due to a bug(?) in NS the value sent to that command is always either 0x0 or 0x3. When calculating that value, the code only ever uses the cpuspeed field, not the cache field: code to actually load and check the value of the cache field appears to be missing.
−
===== Flag2 =====
+
==== Flag2 ====
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-