10.0.0-27: Difference between revisions
No edit summary |
|||
Line 14: | Line 14: | ||
=== Process9 === | === Process9 === | ||
One of the changes was that main() was updated. Three functions( | One of the changes was that main() was updated. Three functions(two initialization functions + launch_firm()) which were previously called directly are now called via a wrapper function with a funcptr parameter. As a result, the main() prologue/epilog changed. This is for temporarily relocating the stack elsewhere(same relocated-stack-addr for all func-calls), just for calling the funcptr(all registers except for r0..r3 are saved/restored before/after calling the funcptr). | ||
Some FS-related code seems to have been changed. | |||
There's also some new UTF-16 strings in the .(ro)data, but there's no(?) known code which actually uses these. | |||
==== New3DS-only ==== | ==== New3DS-only ==== | ||
No actual code/data was changed in the arm9loader. | No actual code/data was changed in the arm9loader. | ||
During loading, kernel9 copies the entire Process9 NCCH to a relocated base-addr, which is: endaddr - ncchsize. On Old3DS, endaddr is 0x080fffe0. On New3DS, endaddr was 0x080fffe0 prior to v10.0-FIRM, now it's 0x0817ffe0. | |||
The Process9 .bss(which contains the proc9 heaps too) is larger now: previously the .bss ended at address 0x080ff080, now it ends at 0x08117040. | |||
==See Also== | ==See Also== |