Legacy FIRM PXI: Difference between revisions

Riley (talk | contribs)
document command 0xA
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 9: Line 9:
| 0x0001....
| 0x0001....
| [[1.0.0-0]]
| [[1.0.0-0]]
|?
| Shuts down LgyP9, puts ARM9 into a <code>while(1) svcSleepThread(1*1000*1000);</code> loop at the end of <code>main()</code>
|-
|-
| 0x00020080
| 0x00020080
Line 17: Line 17:
| 0x00030080
| 0x00030080
| [[1.0.0-0]]
| [[1.0.0-0]]
| PrepareArm9ForAgb(u64 application_titleID) This launches the specified GBA VC title.
| PrepareArm9ForAgb(u64 application_titleID) This launches the specified GBA VC title. On success, returns u64 GBA VC title exeFS .code length in cmdbuf[2].
|-
|-
| 0x00040080
| 0x00040080 / 0x00040000
| [[1.0.0-0]]
| [[1.0.0-0]]
| Process9 will eventually wait for the ARM11 to send this command, see [[FIRM|here]]. The command input parameters are not used.
| Process9 will eventually wait for the ARM11 to send this command after PrepareArm9ForTwl/PrepareArm9ForAgb is called, see [[FIRM|here]]. The input parameters should be 0 and 0x00040000 as this is a nested message of which the ITCM code consumes the first half. Returns 0 after going into AGB mode
|-
|-
| 0x0005....
| 0x00050040
| [[1.0.0-0]]
| [[1.0.0-0]]
|?
| (u8 unk) Does some lowlevel sd/emmc register setting (different for unk=0 and unk=1). If unk=1, sets a flag, code ran during the pxi main-func loop detects this and calls <code>svcKernelSetState(2,0)</code>.
|-
|-
| 0x0006....
| 0x0006....
| [[1.0.0-0]]
| [[1.0.0-0]]
|?
| (DateTime datetimetoset,u8 shouldRead) - Sets the P9 date/time (calling the same function used by cmd 0xA for this), then reads (if shouldRead is not 0) or writes (if shouldRead is 0) ARM7_RTC_LO/HI registers to or from agbsave_in_ram+0x60. AgbBg doesn't appear to use this command at all.
|-
|-
| 0x0007....
| 0x0007....
| [[1.0.0-0]]
| [[1.0.0-0]]
|?
| Returns u8, IsSdCardInserted maybe?
|-
|-
| 0x0008....
| 0x0008....
Line 47: Line 47:
| Sets Process9's internal date/time, see below.
| Sets Process9's internal date/time, see below.
|-
|-
| 0x000B0040
| 0x000B0240
| [[1.0.0-0]]
| [[1.0.0-0]]
| This is used for TWL initialization, prior to using command 0x00020080.
| This is used for TWL initialization, prior to using command 0x00020080. Arguments: u8 <2 if card, else 3>, u8 <bit 1 from firmlaunchparams+0x460>, u64 tid, u8 bannerHmac[0x14]
|-
|-
| 0x000C0800
| 0x000C0800