In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

NAND Boot Program: Difference between revisions

From WiiBrew
Jump to navigation Jump to search
Hallowizer (talk | contribs)
←Created page with ''''NAND BOOT PROGRAM''' is a developer tool found in IOS21 and the Wii Shop Channel, as well as pre-4.3 versions of IOS15. While its purpose is not known, i...'
 
Hallowizer (talk | contribs)
looks like v1.1 doesn't have the ESP stuff
 
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''NAND BOOT PROGRAM''' is a developer tool found in [[IOS21]] and the [[Wii Shop Channel]], as well as pre-[[4.3]] versions of [[IOS15]]. While its purpose is not known, it mentions many things that were probably used internally.
The '''NAND Boot Program''' is a [[DOL]] that is the boot content of every [[Broadway]] title (except the [[System Menu]]). It is linked with [[Revolution OS]], though a separate copy from the game itself. It is responsible for loading the main content from index 1 of a [[title]]; newer versions are able to apply an LZ11 decompression.


== Revolution OS and ESP ==
Similar to the System Menu, the NAND Boot Program is governed by its own [[/BS2|BS2]] with far fewer states.
Error messages for <code>ES_InitLib</code>, <code>ES_GetTitleId</code>, <code>ESP_OpenContentFile</code>, <code>ESP_ReadContentFile</code>, <code>ESP_CloseContentFile</code>, and <code>ESP_CloseLib</code> can be found near the beginning of the strings. This suggests that ESP may have been a separate module from ES; possibly the same thing the P stands for in [[IOSP]].


Additionally, something called "Revolution OS" can be found in the strings, shortly after <code>RVL_SDK - OS</code>. This may mean the SDK is called the OS, and ESP is the SDK library sending messages to [[ES]].
== SDK libraries ==
These libraries were taken from the version in Mii Channel v6.


== Revolution Emulator ==
{| class="wikitable"
Shortly after, strings for "Revolution Emulator," "Emulation platform," and "TDEV-based emulation HW" can be found. Revolution Emulator was most likely an official Wii emulator.
! Name
! Build timestamp
|-
| [[Revolution OS|OS]]
| Aug 8 2007 02:06:24 (0x4199_60831)
|-
| EXI
| Aug 8 2007 01:59:22 (0x4199_60831)
|-
| SI
| Aug 8 2007 02:07:10 (0x4199_60831)
|-
| VI
| Aug 8 2007 02:07:17 (0x4199_60831)
|-
| DVD
| Aug 8 2007 01:59:13 (0x4199_60831)
|-
| [[NAND (SDK)|NAND]]
| Aug 8 2007 02:08:58 (0x4199_60831)
|-
| [[SC]]
| Aug 8 2007 02:09:03 (0x4199_60831)
|-
| [[PAD]]
| Aug 8 2007 02:07:08 (0x4199_60831)
|}


== Dev units ==
== ESP ==
There is a string saying "Set Device Code : [RVA]", which probably means dev units used code RVA instead of RVL. Strings also exist saying <code>OS ERROR: boot program is not for RVL target. Please use correct boot program.</code> and <code>OS ERROR: apploader[D].img is not for RVL target. Please use correct apploader[D].img.</code>, supporting this distinction.
Error messages for <code>ES_InitLib</code>, <code>ES_GetTitleId</code>, <code>ESP_OpenContentFile</code>, <code>ESP_ReadContentFile</code>, <code>ESP_CloseContentFile</code>, and <code>ESP_CloseLib</code> can be found in <code>BS2Tick</code> in v1.21 (and possibly v1.4). It is not clear what ESP is; the lists of function names in [[SEL]] files list all of these functions as [[ES]] functions, so it is possible that this was simply a typo, hence the inconsistency in <code>ES_InitLib</code> and <code>ESP_CloseLib</code>.


There are also strings for NDEV 1.0, 1.1, 1.2, 2.0, and 2.1, which might be versions of the NDEV [[System Menu]].
== RVA ==
There is a logic used to determine whether the current device is an [[Wii#RVA|RVA]] system; this is done by checking if [[:/title/00000001/00000002/data/RVA.txt]] exists.


There are also pre-production board types <code>1</code>, <code>2-1</code>, and <code>2-2</code>.
== Internet Channel patches ==
Versions 1.21 and above perform a "MEM1 patch" and a "MEM2 patch" on the [[Internet Channel]]. The details of this patch are currently not known.


TDEV is probably a different type of dev unit from NDEV.
== Version history ==
=== v1.4 ===
* Replaced <code>DEVELOPMENT MODE</code> in the heading string with <code>%s</code>, possibly indicating that this was meant to be the first version released
* Main binary is now uncompressed (using [[LZ11]]) before booting


== OSDBIntegrator ==
=== v1.21 ===
There is a string saying <code>Installing OSDBIntegrator</code>. No other strings mention this tool, but it might be found in the NAND BOOT PROGRAM binary.
* Replaced the version in the heading string with <code>%s</code> (with the version stored elsewhere)


[[Category:Official software]]
=== v1.1 ===
Found in many public [[channel]]s. Differences from v1.0 are unknown.
 
=== v1.0 ===
First release. Probably a beta version, since the only known appearance is in [[Forecast Channel dummy]] and [[News Channel dummy]] v0.
 
[[Category:NAND Boot Program]]

Latest revision as of 05:49, 19 August 2022

The NAND Boot Program is a DOL that is the boot content of every Broadway title (except the System Menu). It is linked with Revolution OS, though a separate copy from the game itself. It is responsible for loading the main content from index 1 of a title; newer versions are able to apply an LZ11 decompression.

Similar to the System Menu, the NAND Boot Program is governed by its own BS2 with far fewer states.

SDK libraries

These libraries were taken from the version in Mii Channel v6.

Name Build timestamp
OS Aug 8 2007 02:06:24 (0x4199_60831)
EXI Aug 8 2007 01:59:22 (0x4199_60831)
SI Aug 8 2007 02:07:10 (0x4199_60831)
VI Aug 8 2007 02:07:17 (0x4199_60831)
DVD Aug 8 2007 01:59:13 (0x4199_60831)
NAND Aug 8 2007 02:08:58 (0x4199_60831)
SC Aug 8 2007 02:09:03 (0x4199_60831)
PAD Aug 8 2007 02:07:08 (0x4199_60831)

ESP

Error messages for ES_InitLib, ES_GetTitleId, ESP_OpenContentFile, ESP_ReadContentFile, ESP_CloseContentFile, and ESP_CloseLib can be found in BS2Tick in v1.21 (and possibly v1.4). It is not clear what ESP is; the lists of function names in SEL files list all of these functions as ES functions, so it is possible that this was simply a typo, hence the inconsistency in ES_InitLib and ESP_CloseLib.

RVA

There is a logic used to determine whether the current device is an RVA system; this is done by checking if /title/00000001/00000002/data/RVA.txt exists.

Internet Channel patches

Versions 1.21 and above perform a "MEM1 patch" and a "MEM2 patch" on the Internet Channel. The details of this patch are currently not known.

Version history

v1.4

  • Replaced DEVELOPMENT MODE in the heading string with %s, possibly indicating that this was meant to be the first version released
  • Main binary is now uncompressed (using LZ11) before booting

v1.21

  • Replaced the version in the heading string with %s (with the version stored elsewhere)

v1.1

Found in many public channels. Differences from v1.0 are unknown.

v1.0

First release. Probably a beta version, since the only known appearance is in Forecast Channel dummy and News Channel dummy v0.