Add SDMC Launcher release

This commit is contained in:
Lillian Skinner 2024-11-01 15:29:20 -04:00
parent 0521236a75
commit d83959c7be
10 changed files with 119 additions and 8 deletions

53
_layouts/catindex.html Normal file
View File

@ -0,0 +1,53 @@
---
layout: dsiware
---
<div id="content-wrap">
<div class="devinfo-container-main releasepage colorbox">
<img src="{{ site.imgui }}menu/green/dsi_widebarnoprompt_u.png" style="width: 100%;position: static;display: block;" class="pixelate">
<div style="background-image: url('{{ site.imgui }}menu/dsi_widepromptnobar.png');background-size:100% 100%;position: static;display: inline-block;width: 100%;">
<div class="devinfo-main" style="position:relative;">
<div style="text-align:right;"><a href="https://github.com/rvtr/rvtr.github.io/edit/master{{ page.url }}" target="_blank">Edit</a></div>
<!-- Generate list for programs sets like TWL EVA -->
{% for sc in page.category -%}
<!-- I am NOT happy with liquid right now -->
<h1>{% assign first_char = sc | slice: 0 %}{{ first_char | upcase }}{{ sc | remove_first: first_char }}</h1>
<table class="category-table">
<tr>
<th class="colordiv category-header" style="/*dummystyle*/">
<a href="/dsidev/{{ sc | replace: ' ', '_' | downcase }}/index.html">{{ first_char | upcase }}{{ sc | remove_first: first_char }}</a> programs
</th>
</tr>
<tr>
<td style="line-height: 1.9;">
<!-- I enjoy eliptical indentation -->
{% assign i = 0 %}
{%- for page in site.pages -%}
{% for TEST in site.data.dsinfo -%}
{%- if TEST.PROGRAM == page.app -%}
{%- if TEST.PUBLISHED == "TRUE" -%}
{%- if page.group == true -%}
{%- for pc in page.category -%}
{%- if pc == sc %}
{%- if i != 0 and page.sequence == true %}
<!-- Overly fancy arrows to show an order in a list. Counter to not display on the first loop -->
-->
{% endif -%}
{% assign i = i | plus: 1 %}
<a class="category-list" href="{{ page.url }}">{{ page.altname }}</a>
{% endif -%}
{%- endfor -%}
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endfor %}
{%- endfor -%}
</td>
</tr>
</table>
{%- endfor %}
{{ content }}
</div>
</div>
<img src="{{ site.imgui }}menu/green/dsi_widebarnoprompt_d.png" style="width: 100%;display: block;" class="pixelate">
</div>
</div>

View File

@ -1,6 +1,21 @@
---
layout: dsiware
---
<!--
Do you remember a reaaaaaally long time ago when you first created dsinfo.csv?
And remember how everything duplicated a bajillion times?
This is why there's currently "if ENTRY.PUBLISHED == 'TRUE'"
The first entry for a set of programs will have PUBLISHED set to TRUE.
That makes sure that only ONE content is made for ONE entry of the same program.
Let's uhhhh maybe fix that later. Do something that doesn't require needing this PUBLISHED flag.
It also prevents unpublished pages from showing content, even though they'll still be generated.
(I was genuinely confused on what this was for during the last few months and had no idea)
-->
{% for ENTRY in site.data.dsinfo -%}
{%- if ENTRY.PUBLISHED == "TRUE" -%}
{%- if ENTRY.PROGRAM == page.app -%}
@ -16,8 +31,9 @@ layout: dsiware
{% for sc in page.category -%}
<table class="category-table">
<tr>
<!-- dummystyle gets replaced with the CSS for the current theme in /theme.js -->
<th class="colordiv category-header" style="/*dummystyle*/">
Other {{ sc }} programs
Other <!--<a href="/dsidev/{{ sc | replace: ' ', '_' | downcase }}/index.html">{{ sc }}</a>-->{{ sc }} programs
</th>
</tr>
<tr>

View File

@ -56,7 +56,7 @@
<div id="content-wrap">
<div class="devinfo-container-main releasepage colorbox">
<img src="{{ site.imgui }}menu/green/dsi_widebarnoprompt_u.png" style="width: 100%;position: static;display: block;" class="pixelate">
<div style="background-image: url('{{ site.imgui }}menu/dsi_widepromptnobar.png');background-size:100% 100%;position: static;display: inline-block;">
<div style="background-image: url('{{ site.imgui }}menu/dsi_widepromptnobar.png');background-size:100% 100%;position: static;display: inline-block;width: 100%;">
<div class="devinfo-main" style="position:relative;">
<div style="text-align:right;"><a href="https://github.com/rvtr/rvtr.github.io/edit/master{{ page.url }}" target="_blank">Edit</a></div>
{{ content }}

View File

@ -0,0 +1,22 @@
---
title: SDMC Launcher DSi
layout: release
releaseslug: sdmclauncher
preview: /photos/launcher.png
---
<h1>SDMC Launcher DSi</h1>
<p>Thanks to <b>BrolyBroMan</b> we're releasing a DSi NAND with the <a href="/dsidev/sdmc_launcher.html">SDMC Launcher</a> bootloader. This bootloader is installed during the first stage of factory testing (the <a href="/dsidev/twlboardchecker.html">BOARD</a> test) when the DSi has no firmware or any other data in NAND. SDMC Launcher will load SRLs off of the SD card, and is the only way to boot software early on.
<div class="screenshot">
<a href="{{ site.releasedir }}{{ page.releaseslug }}/photos/launcher.png" target="_blank"><img src="{{ site.releasedir }}{{ page.releaseslug }}/photos/launcher.png" alt="SDMC Launcher main screen"></a>
</div>
The specific NAND we have originally passed factory testing, got sold to a customer, then was later returned to the factory and went through the BOARD test a second time. The only change was the addition of SDMC Launcher, with the original v1.4.4U firmware and system files left intact.
<h3>Download</h3>
The original NAND dump had a bad MBR, so most tools will refuse to decrypt it. The "fixed" version of the NAND has been edited to have the correct MBR.
<br><br>
<a href="{{ site.releasedir }}{{ page.releaseslug }}/files/TW739103942_SDMC_Launcher_prod_BrolyBroMan.zip">SDMC Launcher NAND</a><br>
<a href="{{ site.releasedir }}{{ page.releaseslug }}/files/TW739103942_SDMC_Launcher_prod_BrolyBroMan_fixed_MBR.zip">SDMC Launcher NAND (fixed)</a>
<br><br>
<div class="screenshot">
<a href="{{ site.releasedir }}{{ page.releaseslug }}/photos/board_front.jpg" target="_blank"><img src="{{ site.releasedir }}{{ page.releaseslug }}/photos/board_front.jpg" alt="DSi motherboard front"></a>
<a href="{{ site.releasedir }}{{ page.releaseslug }}/photos/board_back.jpg" target="_blank"><img src="{{ site.releasedir }}{{ page.releaseslug }}/photos/board_back.jpg" alt="DSi motherboard back"></a>
</div>

View File

@ -5,6 +5,23 @@ redirect_from: /dsidev/index.html
---
<!-- The copy/pasting here is criminal... but so is adding another copy/paste jekyll layout -->
<!-- Have you thought about autogenerating based on tags and including previews in the boxes? -->
<div style="margin:1%;">
<div class="devinfo-container-main releasepage colorbox">
<img src="{{ site.imgui }}menu/green/dsi_widebarnoprompt_u.png" style="width: 100%;position: static;display: block;" class="pixelate">
<div style="background-image: url('{{ site.imgui }}menu/dsi_widepromptnobar.png');background-size:100% 100%;position: static;display: inline-block;width:100%;">
<div class="devinfo-main" style="position:relative;"><br>
<h3 style="padding-top:0;"><a href="/dsidev/release/sdmc-launcher.html">SDMC Launcher DSi</a></h3>
<p style="width:100%;">
A retail DSi from the factory that is still running the unique SDMC Launcher bootloader. Thanks to <b>BrolyBroMan</b> for sharing!
</p>
</div>
</div>
<img src="{{ site.imgui }}menu/green/dsi_widebarnoprompt_d.png" style="width: 100%;display: block;" class="pixelate">
</div>
</div>
<div style="margin:1%;">
<div class="devinfo-container-main releasepage colorbox">
<img src="{{ site.imgui }}menu/green/dsi_widebarnoprompt_u.png" style="width: 100%;position: static;display: block;" class="pixelate">

View File

@ -4,7 +4,7 @@ app: SDMC_Launcher
preview: /preview.png
---
This is a special <a href="https://dsibrew.org/wiki/Stage2" target="_blank">stage2</a> bootloader that boots an SRL off of the SD card. Only used in factories, this bootloader is installed on every DSi when it enters the <a href="/dsidev/twlboardchecker.html">BOARD</a> phase of testing. This allows the DSi to run tools like <a href="/dsidev/twlboardchecker.html">PRE_IMPORT</a> that will install an actual firmware. SDMC Launcher is found in most copies of TWL EVA and is treated as a fallback bootloader in case certain NAND writing operations fail. <br>SRLs must be signed for the target console in order to be booted.
This is a special <a href="https://dsibrew.org/wiki/Stage2" target="_blank">stage2</a> bootloader that boots an SRL off of the SD card. Only used in factories, this bootloader is installed on every DSi when it enters the <a href="/dsidev/twlboardchecker.html">BOARD</a> phase of testing. This allows the DSi to run tools like <a href="/dsidev/twl_eva_pre_import.html">PRE_IMPORT</a> that will install an actual firmware. SDMC Launcher is found in most copies of TWL EVA and is treated as a fallback bootloader in case certain NAND writing operations fail. <br>SRLs must be signed for the target console in order to be booted.
<br><br>
The source code for SDMC Launcher can be found in <a target="_blank" href="https://github.com/rvtr/TwlIPL/tree/trunk/build/nandfirm/sdmc-launcher">TwlIPL</a>.
<div class="screenshot">

3
dsidev/twl_eva.html Normal file
View File

@ -0,0 +1,3 @@
---
redirect_to: /dsidev/twl_eva_pre_import.html
---

View File

@ -7,8 +7,8 @@ sequence: TRUE
redirect_from: /dsidev/twl_eva_pre_import.html
group: true
---
When a DSi has gone through the factory's <a target="_blank" href="/dsidev/twlboardchecker.html">BOARD</a> testing, it is left with no firmware and only the <a href="/dsidev/sdmc_launcher.html">SDMC Launcher</a> bootloader. This bootloader is used to launch <b>PRE_IMPORT</b> off of the SD card. PRE_IMPORT will then install factory firmware and a bootloader that is functionally like the release version.
<br><br>Factory firmware is like any other prototype firmware except for the fact that it contains an autoboot only <a href="./launcher.html">Launcher</a>. This means that it has no accessible menu and is only able to run inserted cartridges. Autobooting is all prototype firmware needs since it is just used to launch other versions of TWL EVA. This firmware is deleted once <a href="/dsidev/twl_eva_import.html">IMPORT</a> installs the final firmware, but headers can often still be found in unused DSis. Below is a list of all the titles and versions that make up factory firmware for retail and dev consoles.<br><br>
When a DSi has gone through the factory's <a href="/dsidev/twlboardchecker.html">BOARD</a> testing, it is left with no firmware and only the <a href="/dsidev/sdmc_launcher.html">SDMC Launcher</a> bootloader. This bootloader is used to launch <b>PRE_IMPORT</b> off of the SD card. PRE_IMPORT will then install factory firmware and a bootloader that is functionally like the release version.
<br><br>Factory firmware is like any other prototype firmware except for the fact that it contains an autoboot only Launcher. This means that it has no accessible menu and is only able to run inserted cartridges. Autobooting is all prototype firmware needs since it is just used to launch other versions of TWL EVA. This firmware is deleted once <a href="/dsidev/twl_eva_import.html">IMPORT</a> installs the final firmware, but headers can often still be found in unused DSis. Below is a list of all the titles and versions that make up factory firmware for retail and dev consoles.<br><br>
<table class="menu" style="width:100%">
<tr>
<th class="menuheader">Version</th>

View File

@ -4,6 +4,6 @@ app: TWL_EVA
altname: ----
category: [TWL EVA]
sequence: TRUE
redirect_from: /dsidev/twl_eva.html
redirect_from: /dsidev/twl_eva_unknown.html
group: true
---

View File

@ -21,14 +21,14 @@ if (new Date().getMonth() == 5) {
colorTre = 'white';
colorFor = 'blue';
seasonal = true;
} else if (new Date().getMonth() == 10) {
/* } else if (new Date().getMonth() == 10) {
// October
colorOne = 'black';
colorTwo = 'white';
colorTre = 'black';
colorFor = 'white';
colorOtr = 'background-color: #ffffff;border: 2px solid #c6c6c6;';
seasonal = true;
seasonal = true; */
} else if (new Date().getMonth() == 11) {
// Christmas
colorOne = 'red';