Very simply, the DSi's stage2 is what loads and verifies the DSi home menu. DSiBrew explains it in depth: https://dsibrew.org/wiki/Stage2
These are the typical stage2s that behave like DSiBrew mentions:
Version | Works | Displays error | Unlaunch | Source | Hash (SHA1) |
---|---|---|---|---|---|
v2725-9336 (dev) | Yes | Yes | Yes | TwlIPL | A28B2CDC58613E47ACE482DC127255ED447A7B1D |
v2665-9336 (prod) | Yes | Yes | Yes | TwlIPL | 386389789BDBDFC216B0F245416F6E0F825D49B6 |
v2435-8325 (dev) | Yes | Yes | Yes | All release dev DSis | 894D75C09DFD481676C8E93FB33D4D5D61C5EA45 |
v2435-8325 (prod) | Yes | Yes | Yes | All release prod DSis | 447348EC5090125E33205EF2EBE600173760DCD6 |
v2262-8067 (dev) | Yes | No | No | PRE_IMPORT (factory firmware) | C2281409BB22F212D4CE2583DB92F38138D0AD50 |
v2262-8067 (prod) | Yes | No | No | PRE_IMPORT (factory firmware) | 3D832FB846F0D1B5CA7BE0F75FED3E8AA8E8EFBF |
v1935-7470 (dev) | Yes | Yes | No | TwlIPL | C88D8C7179A23E10E4FD1FC762E11C4D900F6EC5 |
v1935-7470 (prod) | Yes | Yes | No | TwlIPL | D18F3609FFAA35FBA0E7F7A8ED6ECB38B9205A35 |
vNONE-NONE (dev) | No | X4 prototype DSi | 9A1334CC96339FEAABC0682104E12BD46AB650A1 | vNONE-NONE (prod) | Yes | No | No | X6 prototype DSi | 967B1288F4C2D1EAAB2693E17DA7B9A5E551B1A3 | vNONE-NONE (dev) | Yes | No | No | TwlIPL | F4B8ADC6EE3A982BF0FD68C1105CE2376E91D429 | vNONE-NONE (dev) | No | No | Unknown | 0AB3F139AFA960983374A96EEC2FA00361BE1BF1 |
These are stage2s for the 3DS NATIVE_FIRM like shown on 3DBrew https://www.3dbrew.org/wiki/Memory_layout. Since these were designed for a 3DS, they will not boot a DSi. I am unsure how to test them.
Version | Works | Displays error | Unlaunch | Source | Hash (SHA1) |
---|---|---|---|---|---|
v2968-11370 (3DS) | N/A | N/A | Unknown | 1C4922786D7023E7CE5D8CD3E1D51F16345391D5 | |
v2869-10333 (3DS) | N/A | N/A | TwlIPL | 25D9C63740CF8ADE37B465F42B33350F5A115D20 |
This stage2- officially called "SDMC Launcher"- is designed to boot an SRL off of the root of the SD card. The SRL must be signed for the target console. SDMC Launcher's source code can be found at TwlIPL/trunk/build/nandfirm/sdmc-launcher
This one is a bit weird. The dev version will "boot" on prod, and vice versa. The stage2 halts because its own code checks the console signing, but it's interesting that it should boot at all.
Version | Works | Displays error | Unlaunch | Source | Hash (SHA1) |
---|---|---|---|---|---|
2008/08/21 13:42:55 (dev) | Yes | N/A | N/A | TWL EVA | 6DE9FD40F11332417E302C048A82219B743EF03C |
2008/08/21 14:02:58 (prod) | Yes | N/A | N/A | TWL EVA | 1BA5D916898FEDCD4A166426DE5AC3B0059AF3DB |
This is a very different stage2. It is only made to print the boot time as a test. This is the source code ( source source)
void TwlMain( void )
{
OS_TPrintf( "\nNOR Boot time is %d msec.\n",
OS_TicksToMilliSecondsBROM32(OS_GetTick()));
OS_InitFIRM();
OS_TPrintf( "\nARM9 starts.\n" );
OS_TPrintf( "\nARM9 ends.\n" );
OS_Terminate();
}
Version | Works | Displays error | Unlaunch | Source | Hash (SHA1) |
---|---|---|---|---|---|
N/A | No | N/A | N/A | TwlIPL | CBD829032CEB6C3B387A102D426A4AEDA89255A3 |