Changes

239 bytes removed ,  14:47, 23 April 2014
m
Line 1: Line 1:  
== Overview ==
 
== Overview ==
 
This is the file format for the [[Title list#00040138 - System Firmware|3DS' Firmware]], it contains four 'sections' of ARM code (ARM9 and ARM11). The firmware sections are not encrypted in the FIRM format.
 
This is the file format for the [[Title list#00040138 - System Firmware|3DS' Firmware]], it contains four 'sections' of ARM code (ARM9 and ARM11). The firmware sections are not encrypted in the FIRM format.
  −
  −
A structural example of a FIRM file (created using the specs in [https://github.com/3dshax/ctr ctrtool]) can be found [http://depositfiles.com/files/lzpo8yqyo here] (Note it does not contain any ARM code, it's just a structural example)
      
The ARM9 section contains the ARM9 kernel and the ARM9 process(exheader process name is "Process9"). The ARM11 section(s) contains the ARM11 kernel, and the ARM11 process(es). For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the FIRM ARM11 modules ExeFS .code, the exheader compression bit is not checked.
 
The ARM9 section contains the ARM9 kernel and the ARM9 process(exheader process name is "Process9"). The ARM11 section(s) contains the ARM11 kernel, and the ARM11 process(es). For NATIVE_FIRM/SAFE_MODE_FIRM these ARM11 processes are sm, fs, pm, loader, and pxi. Normally the 4th section is not used. The code loaded from FIRM is constantly running on the system until another FIRM is launched. The ARM11 kernel is hard-coded to always decompress the FIRM ARM11 modules ExeFS .code, the exheader compression bit is not checked.
839

edits