The 8.0.0-18 system update was released on July 7, 2014.

Change-log

Official change-log:

  • Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

System Titles

eShop, NVer, CVer, and the NZone hotspots list were updated. The 0004009B00012302 USA title(and the equivalent titleIDs for the other regions) was updated. The "masterkey.bin" file in the CVer RomFS was updated(different u32 value at offset 0x0 and different random data). The "cup_list" file was removed from the CVer RomFS as well.

All non-SAFE_MODE system modules were updated. In certain system modules, code was added for using svcGetProcessInfo with type=20, the output value is written to a state field. Since this function is called from the crt0 code, this is likely a CTRSDK change, therefore all system modules likely have this change. Certain modules had the actual module code updated as well, such as GSP and IR, and likely others.

ErrDisp, eShop mint applet(used for accessing eShop outside of the eShop application, like DLC), and SNOTE_AP were updated, these now use the v7.0 NCCH encryption. None of the other updated titles use the v7.0 NCCH encryption(besides the ones which use it already). Due to ErrDisp being updated, this likely breaks booting 8.0.0-18 on physical <=v4.x systems where the key-data for the v7.0 NCCH crypto wasn't initialized correctly.

FIRM

NATIVE_FIRM was updated. Process9, the ARM11-kernel, and all of the ARM11 FIRM-modules were updated.

Process9 had minor / various other changes, including gamecard-related code changes. Support for new exheader/accessdesc fields were implemented. FSPXI:GetSpecialContentIndex was updated to add support for a new value(unknown where the field for that originates). Process9 now uses VRAM size 0x600000 instead of 0x400000 for FIRM(during FIRM launch) section address+size verification, and for the memory-clear code for the FIRM-launch panic function.

Most of the ARM11 FIRM-modules changes are likely minor. In pm-module, code was updated which handles programIDs/etc.

ARM11 kernel changes(besides various other (minor) changes):

  • Multiple SVCs were stubbed(that is, these only return an error now).
  • The code for svcControlMemory was updated.
  • The code for svcGetProcessInfo was updated: previously a total of 9 type values were handled, this now handles a total of 24 type values.
  • The code for svcStartInterProcessDma was updated. When the DmaConfig userland->kernelmode data-copy fails(like when the DmaConfig address is not readable from userland), this SVC now returns an error. Certain fields in the DmaConfig structure are now validated.
  • The end-address for process memory has been changed from virtual-address 0x20000000, to 0x40000000. Therefore, the L1 MMU table size for each process is now 0x1000-bytes, previously it was 0x800-bytes.
  • The KProcess structure was changed.
  • The privileged-mode memory layout was changed, see here.

See Also