- Supported flashcards
+ Flashcard supportate
{{ flashcards | markdownify }}
PC:
-- A 64 bit OS
+- Un OS a 64 bit
- [Forwarder3-DS](https://www.dropbox.com/s/b9de5ii6vm3dxfn/Forwarder3DS-v2.9.6.zip?dl=0)
-- Java 8 Update 251
-- **Linux users:** JavaFX
+- Aggiornamento Java 8 251
+- **Utenti Linux:** JavaFX
-### Part 1: Getting Started
+### Parte 1: Per Iniziare
{% capture tab-sd-card %}
-1. Download the [SD card forwarder pack](https://www.dropbox.com/s/k5uaa4jzbtkgm0z/DS%20Game%20Forwarder%20pack%20%283DS%20SD%20Card%29.7z?dl=0)
-1. Extract the contents of the `for SD card root` folder to the root of your 3DS's SD card
+1. Scarica il pacchetto [scorciatoia della scheda SD](https://www.dropbox.com/s/k5uaa4jzbtkgm0z/DS%20Game%20Forwarder%20pack%20%283DS%20SD%20Card%29.7z?dl=0)
+1. Estrae il contenuto della cartella `per la scheda SD` nella directory principale della scheda SD del tuo 3DS
After you extract the pack, you can edit `sd:/_nds/nds-bootstrap.ini` and change the settings:
- `BOOST_CPU`: If set to 1, TWL clock speed is used, so lags begone
diff --git a/pages/_it-IT/ds-index/hardmod.md b/pages/_it-IT/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_it-IT/ds-index/hardmod.md
+++ b/pages/_it-IT/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_it-IT/twilightmenu/custom-dsi-3ds-skins.md b/pages/_it-IT/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_it-IT/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_it-IT/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_it-IT/twilightmenu/faq.md b/pages/_it-IT/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_it-IT/twilightmenu/faq.md
+++ b/pages/_it-IT/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_ja-JP/ds-index/hardmod.md b/pages/_ja-JP/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_ja-JP/ds-index/hardmod.md
+++ b/pages/_ja-JP/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_ja-JP/twilightmenu/custom-dsi-3ds-skins.md b/pages/_ja-JP/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_ja-JP/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_ja-JP/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_ja-JP/twilightmenu/faq.md b/pages/_ja-JP/twilightmenu/faq.md
index 18024e24..ced82401 100644
--- a/pages/_ja-JP/twilightmenu/faq.md
+++ b/pages/_ja-JP/twilightmenu/faq.md
@@ -1,57 +1,100 @@
---
-lang: en-US
+lang: ja-JP
layout: wiki
section: twilightmenu
category: other
-title: FAQ & Troubleshooting
+title: よくある質問とトラブルシューティング
---
-For more FAQs, please visit the [GBAtemp thread](https://gbatemp.net/threads/ds-i-3ds-twilight-menu-gui-for-ds-i-games-and-ds-i-menu-replacement.472200/).
+もっとよくある質問ため、[GBAtempスレッド](https://gbatemp.net/threads/ds-i-3ds-twilight-menu-gui-for-ds-i-games-and-ds-i-menu-replacement.472200/)にアクセスしてください。
{:.alert .alert-info}
-#### Q: Why does my 3DS / 2DS get stuck on black screens, crash, power off, etc when launching TWiLight Menu++?
-A: TWL_FIRM might've somehow got corrupted. Follow this guide to fix the issue:
+#### Q:TWiLight Menu++を起動する時に、3DS/2DSが黒い画面で動かなく、クラッシュする、電源を切るなどのはなぜですか?
+A:TWL_FIRMは何らかの方法で破損している可能性があります。 このガイドに従って問題を解決してください:[ https://3ds.hacks.guide/troubleshooting#dsi--ds-functionality-is-broken-after-completing-the-guide](https://3ds.hacks.guide/troubleshooting#dsi--ds-functionality-is-broken-after-completing-the-guide)
-#### Q: How do I fix getting a white screen when booting TWiLight Menu++?
-A:
-- First, try putting the console in sleep mode (e.g. closing the console's lid, or pressing the sleep button on the O2DS), then wake up the console from it
-- If that doesn't work, format your SD card to FAT32 with 32KB cluster/allocation size
-- If that also doesn't work, try a different SD card
+#### Q:TWiLight Menu++を起動する時に、白い画面が表示されるを修正するにはどうすればよいですか?
+A:
+- まず、本体をスリープモードにしてから(例:本体の蓋を閉じるか、古い2DSのスリープバタンを押す)、本体をスリープモードから復帰します
+- それがうまくいかない場合は、SDカードを32KBクラスタ/割り当てサイズでFAT32にフォーマットしてください
+- それでもうまくいかない場合は、別のSDカードをお試してください
-#### Q: Why do I get a white screen when trying to load a game from SD Card?
-A:
-- First, check [the nds-bootstrap compatibility list](https://docs.google.com/spreadsheets/d/1LRTkXOUXraTMjg1eedz_f7b5jiuyMv2x6e_jY_nyHSc/htmlview#gid=0) and make sure your game is compatible
-- Try with all cheats disabled for that game as some cheats are not compatible with nds-bootstrap at the moment, you can use L to disable all cheats for a game
-- If the game you're trying to launch is a DSi Enhanced game, then make sure that TWiLight Menu++ is set to use `DS Mode`
-- If it worked before, delete the `fatTable` and `patchOffsetCache` folders in `sd:/_nds/nds-bootstrap/`
+#### Q:SDカードからゲームを読み込みようとすると、白い画面が表示されるのはなぜですか?
+A:
+- まず、[nds-bootstrapの互換性リスト](https://docs.google.com/spreadsheets/d/1LRTkXOUXraTMjg1eedz_f7b5jiuyMv2x6e_jY_nyHSc/htmlview#gid=0)を確認して、ゲームに互換性があることを確認してください
+- いくつかのチートは現時点でnds-bootstrapと互換性がないため、そのゲームのすべてのチートを無効にしましたをお試してください。Lを使って、ゲームのすべてのチートを無効にできます。
+- 起動しようとしているゲームがDSi対応ゲーム場合は、TWiLight Menu++は`DS Mode`に設定されていることを確認します。
+- 以前に機能した場合は、`sd:/_nds/nds-bootstrap/`で`fatTable`と`patchOffsetCache`フォルダ削除してください。
-#### Q: How do I use cheats?
-A: You need to have a cheat DB in the form of a `usrcheat.dat` file in the `sd:/_nds/TWiLightMenu/extras/` folder. The most updated cheat database is [DeadSkullzJr's](https://gbatemp.net/threads/deadskullzjrs-flashcart-cheat-databases.488711/). Alternatively, you can use [r4cce](http://hp.vector.co.jp/authors/VA013928/soft_en.html) to create your own cheat DB.
+#### Q:チートはどうのように使いますか?
+A:`sd:/_nds/TWiLightMenu/extras/`フォルダ内に`usrcheat.dat`ファイルの形式でチートデータベースが必要です。 最新のチートデータベースは、[DeadSkullzJrのデータベース](https://gbatemp.net/threads/deadskullzjrs-flashcart-cheat-databases.488711/)です。 あるいは、[r4cce](http://hp.vector.co.jp/authors/VA013928/soft.html)を使って独自のチートデータベースを作成できます。
-#### Q: How do I show a custom picture on the top screen of the DSi theme?
-A: A random `.png` image in `sd:/_nds/TWiLightMenu/dsimenu/photos/` will be shown each time the menu is loaded.
+#### Q:DSiテーマの上画面にカスタム画像を表示するにはどうすればよいですか?
+A:`sd:/_nds/TWiLightMenu/dsimenu/photos/`内のランダムな`.png`画像はメニューが読み込まれるたびに表示されます。
-- The images(s) must be no bigger than 208x156
-- If you have errors, it's most likely an error with the image size. Please use [tinypng](https://tinypng.com) to reduce the size
+- 画像は208x156以下である必要があります
+- エラーがある場合は、画像サイズのエラーの可能性が最も高いです。 サイズを小さくするには、[tinypng](https://tinypng.com)を使ってください
-#### Q: How do I get games?
-A: You can download homebrew games from [Universal-DB](https://db.universal-team.net/ds) and [GameBrew](https://www.gamebrew.org/wiki/List_of_DS_homebrew_applications). To get dumps of your retail games:
-- On DS you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your GBA games and, if you have a Slot-2 flashcard, DS games
-- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
-- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
+#### Q:ゲームを入手するにはどうすればよいですか?
+A:[Universal-DB](https://db.universal-team.net/ds)と[GameBrew](https://www.gamebrew.org/wiki/List_of_DS_homebrew_applications)から自作ゲームをダウンロードできます。 小売ゲームのダンプを取得するには:
+- DSでは、[GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases)を使ってGBAゲームをダンプでき、Slot-1フラッシュカートを持っている場合はDSゲームをダンプできます
+- DSiでは、[GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases)を使ってDSゲームとDSiウェアをダンプできます
+- 3DSでは、[GodMode9](https://github.com/d0k3/GodMode9/releases)を使ってDSゲーム、DSiウェア、バーチァルコンソールのゲームをダンプできます
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
-A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
+#### Q:ゲームカードからSDカードにセーブファイルを取得するまたは逆にことはできますか?
+A:はい、DSiと3DSで[GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases)、3DSで[Checkpoint](https://github.com/FlagBrew/Checkpoint/releases)を使えます。
-#### Q: How do I change TWiLight Menu++'s language?
-A:
-1. Open TWiLight Menu++ settings, you can do this by holding SELECT while loading TWiLight Menu++
-1. Press L or Y once (on flashcard / 3DS) or twice (on DSi)
-1. Change the first option until you see the language you want, then exit settings
- - You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q:TWiLight Menu++の言語を変更するにはどうしたらよいですか?
+A:
+1. TWiLight Menu++設定を開きます。これを行うには、TWiLight Menu++を読み込んでいる間にSELECTを押し続けます
+1. LまたはYを1回(フラッシュカード・3DS上)または2回(DSi上)を押します
+1. 言語が表示されるまで最初のオプションを変更し、設定を終了します。
+ - DSゲームの言語とTWiLight Menu++にそれのタイトルを制御するため、次の2つのオプションを変更することもできます
-#### Q: Why isn't touch input working on sudokuhax?
-A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
+#### Q:TWiLight Menu++はどのシステムに対応ですか?
-#### Q: Can The Biggest Loser boot TWiLight Menu++?
-A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+A:
+
+| 本体 | ローダー | 拡張子 | セーブファイル |
+| ------------------------ | ------------------------------------------ | ---------------------------------- | ---------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | ネイティブ | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs]、フラッシュカードのカーネル、ネイティブ | `.nds`、`.dsi`、`.ids`、`.srl`、`.app` | `saves/[ROMの名前].sav`
(小売ROMのみ) |
+| DSiウェア | [Unlaunch][unlaunch] | `.nds`、`.dsi`、`.ids`、`.srl`、`.app` | `[ROMの名前].pub`、`[ROMの名前].prv` |
+| DSTWOプラグイン | [DSTWO][dstwo](DSTWOフラッシュカードが必要) | `.plg` | |
+| ゲームボーイ(カラー) | [GameYob][gameyob] | `.gb`、`.sgb`、`.gbc` | `[ROMの名前].sav` |
+| ゲームボーイアドバンス | [GBARunner2][gbarunner2]、ネイティブ | `.agb`、`.gba`、`.mb` | `[ROMの名前].sav` |
+| ゲームギア | [S8DS][s8ds] | `.gg` | `[ROMの名前].gg.sav` |
+| メガドライブ・Genesis | [jEnesisDS][jenesis]、[PicoDriveTWL][pdtwl] | `.gen` | `[ROMの名前].srm`
(jEnesisDSでフラッシュカードのみ) |
+| マスターシステム | [S8DS][s8ds] | `.sms` | `[ROMの名前].sms.sav` |
+| MPEG4ビデオ | [MPEG4プレイヤー][mpeg4player] | `.mp4` | |
+| ファミリーコンピュータ・NES | [nesDS][nesds] | `.nes`、`.fds` | `[ROMの名前].sav` |
+| PCエンジン・TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVIDビデオ | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| スーパーファミコン | [SNEmulDS][snemulds] | `.smc`、`.sfc` | `[ROMの名前].srm`
(フラッシュカードのみ) |
+
+
+#### Q:sudokuhaxからタッチ入力がうまくいかないのはなぜですか?
+A:sudokuhaxのセーブファイルによっては、タッチ画面の入力が動作しない場合があります。
+
+#### Q:The Biggest LoserはTWiLight Menu++を起動できますか?
+A:いいえ。 The Biggest LoserはSlot-1ゲームです、DSiウェアではない、Slot-1カードを実行する時にSDアクセスが無効になります。
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_ko-KR/ds-index/hardmod.md b/pages/_ko-KR/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_ko-KR/ds-index/hardmod.md
+++ b/pages/_ko-KR/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_ko-KR/twilightmenu/custom-dsi-3ds-sfx.md b/pages/_ko-KR/twilightmenu/custom-dsi-3ds-sfx.md
index 80db5cd3..e353c102 100644
--- a/pages/_ko-KR/twilightmenu/custom-dsi-3ds-sfx.md
+++ b/pages/_ko-KR/twilightmenu/custom-dsi-3ds-sfx.md
@@ -3,32 +3,32 @@ lang: ko-KR
layout: wiki
section: twilightmenu
category: customization
-title: DSi / 3DS skins - 커스텀 SFX
+title: DSi / 3DS skins - 커스텀 사운드 효과
---
-TWiLightMenu supports custom sound files in themes. Place your sound files under the `sound` subdirectory in your theme folder, for example for the `white` theme, you would place the files at `themes/white/sound/sfx.bin` and `themes/sound/bgm.pcm.raw` respectively. Both files are optional, if one is missing the default music will be used. You should then also set the music option in settings to "Theme".
+TWiLightMenu는 테마에서 커스텀 사운드를 지원합니다. 사용할 사운드 파일을 테마 폴더 안의 `sound` 디렉토리에 넣습니다. 예를 들어, `white`라는 테마가 있다고 치면 파일을 각각 `themes/white/sound/sfx.bin` 그리고 `themes/sound/bgm.pcm.raw`으로 해서 넣어둡니다. 두 파일들은 굳이 넣어야 할 필요는 없고, 둘 중 하나가 사라지면 기본 사운드를 사용합니다. 파일을 잘 넣어놨다면, 설정의 음악 옵션을 "테마"로 설정합니다.
-These instructions assume you have devkitPro installed with mmutil. You can get devkitPro at the [devkitPro website](https://devkitpro.org/wiki/Getting_Started).
+이 설명은 mmutil이 설치된 devkitPro를 갖고있다는 전제 하에 적용됩니다. [devkitPro 웹사이트](https://devkitpro.org/wiki/Getting_Started)에서 devkitPro를 받으실 수 있습니다.
-## Sound Effect Bank
-The sound effect bank contains sound effects such as the icon select sound, etc.
+## 사운드 효과 뱅크
+사운드 효과 뱅크에서는 아이콘 선택 사운드와 같은 사운드 효과를 포함합니다.
-| File | Description |
-| ----------- | -------------------------------------------------------------------------------------- |
-| startup.wav | Played on startup. See the section on [Startup sound](#startup-sound) for more details |
-| back.wav | Back |
-| launch.wav | Played when launching a game |
-| select.wav | Played when moving the select cursor |
-| wrong.wav | Played when reaching the end of the page |
-| switch.wav | Played when switching pages |
-| stop.wav | Played on the DSi Theme when the select cursor stops moving |
-| bgm.pcm.raw | Not part of the soundbank. See the section on [Menu BGM](#menu-bgm) for more details |
+| 파일 | 설명 |
+| ----------- | --------------------------------------------------------------- |
+| startup.wav | 시스템을 시작할 때 재생합니다. 더 자세한 설명은 [부팅 음악](#startup-sound) 섹션을 참고해주세요. |
+| back.wav | 뒤로갈때 재생됩니다. |
+| launch.wav | 게임을 실행할 때 재생됩니다. |
+| select.wav | 선택 커서를 움직일 때 재생됩니다. |
+| wrong.wav | 페이지의 끝에 다다랐을 때 재생됩니다. |
+| switch.wav | 페이지를 전환할 때 재생됩니다. |
+| stop.wav | DSi 테마에서 선택커서가 움직임을 멈출 때 재생됩니다. |
+| bgm.pcm.raw | 사운드 목록의 일부분이 아닙니다. 더 자세한 설명은 [메뉴 배경음악](#menu-bgm) 섹션을 참고해주세요. |
-You can then run `make` to make the sound effect bank. All files listed above, except *bgm.pcm.raw* are required, but you can make them silent.
+사운드 효과 뱅크를 만들기 위해 `make`를 실행할 수 있습니다. All files listed above, except *bgm.pcm.raw* are required, but you can make them silent.
Your resulting *sfx.bin* **must be under 512000B = 512KB**. Any larger will result in either crashes or some sounds not playing fully.
-### Startup sound
+### 부팅 음악
While the other sound effects will work with any WAV file, the startup sound must be in a specific format in order to work properly, otherwise there will be a gap between when the startup sound stops and the background music begins.
The startup.wav file must be **16-bit 16kHz**. You can use [Audacity](https://www.audacityteam.org/download/) for example to convert to this format. Once the file is loaded in Audacity, change the **Project Rate (Hz)** to **16000**, then press **Shift+M**, and change the **Format** to **16-bit PCM**.
@@ -38,7 +38,7 @@ If your file is in Stereo, you should also go to **Tracks > Mix > Mix Stereo dow
You must set `PlayStartupJingle=1` in your `theme.ini` for the startup jingle to play.
-## Menu BGM
+## 메뉴 배경음악
Menu BGM needs to be a **16-bit 16kHz Mono** raw PCM file. You can use [Audacity](https://www.audacityteam.org/download/) for example to convert to this format. Once the file is loaded in Audacity, change the **Project Rate (Hz)** to **16000**, then press **Shift+M**, and change the **Format** to **16-bit PCM**.
diff --git a/pages/_ko-KR/twilightmenu/custom-dsi-3ds-skins.md b/pages/_ko-KR/twilightmenu/custom-dsi-3ds-skins.md
index 85367b14..845cca61 100644
--- a/pages/_ko-KR/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_ko-KR/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_ko-KR/twilightmenu/faq.md b/pages/_ko-KR/twilightmenu/faq.md
index 39914362..7a3ea69c 100644
--- a/pages/_ko-KR/twilightmenu/faq.md
+++ b/pages/_ko-KR/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_ko-KR/twilightmenu/updating-3ds-manual.md b/pages/_ko-KR/twilightmenu/updating-3ds-manual.md
index f9e76a1b..082c79e1 100644
--- a/pages/_ko-KR/twilightmenu/updating-3ds-manual.md
+++ b/pages/_ko-KR/twilightmenu/updating-3ds-manual.md
@@ -17,7 +17,7 @@ v16.4.0보다 낮은 버전에서 업데이트 한다면, `saves`폴더를 DS
1. SD 카드 루트에 `.cia` 파일 두 개를 복사합니다.
1. 3DS 본체의 FBI에서 두 CIA 파일들을 설치합니다.
-### Flashcard 단을 위해서 더 할 것
+### Flashcard를 위한 추가적인 단계
TWLMenu++내의 SD 카드와 Flashcard 간의 내용물을 전환하고 싶거나, Flashcard의 TWLMenu++가 v16.3.0 이후의 버전이라면, 이 단계를 따르도록 합니다.
diff --git a/pages/_ko-KR/twilightmenu/updating-3ds.md b/pages/_ko-KR/twilightmenu/updating-3ds.md
index 61cc5e86..51f20630 100644
--- a/pages/_ko-KR/twilightmenu/updating-3ds.md
+++ b/pages/_ko-KR/twilightmenu/updating-3ds.md
@@ -16,7 +16,7 @@ v16.4.0보다 낮은 버전에서 업데이트 한다면, `saves`폴더를 DS
1. 사이드바에서 A를 누르거나 다운로드 아이콘을 터치한 후, `TWiLight Menu++`를 선택해서 설치를 진행하세요.
- 시간이 조금 걸릴 수 있습니다.
-### Flashcard 단을 위해서 더 할 것
+### Flashcard를 위한 추가적인 단계
TWLMenu++내의 SD 카드와 Flashcard 간의 내용물을 전환하고 싶거나, Flashcard의 TWLMenu++가 v16.3.0 이후의 버전이라면, 이 단계를 따르도록 합니다.
diff --git a/pages/_ko-KR/twilightmenu/updating-dsi.md b/pages/_ko-KR/twilightmenu/updating-dsi.md
index 49082733..456124b1 100644
--- a/pages/_ko-KR/twilightmenu/updating-dsi.md
+++ b/pages/_ko-KR/twilightmenu/updating-dsi.md
@@ -16,7 +16,7 @@ v16.4.0보다 낮은 버전에서 업데이트 한다면, `saves`폴더를 DS
1. SD 카드 루트에 `BOOT.NDS` 파일을 복사합니다.
1. **hiyaCFW 이용자:** SD 카드 루트에 `title` 폴더를 복사합니다.
-### Flashcard 단을 위해서 더 할 것
+### Flashcard를 위한 추가적인 단계
TWLMenu++내의 SD 카드와 Flashcard 간의 내용물을 전환하고 싶거나, Flashcard의 TWLMenu++가 v16.3.0 이후의 버전이라면, 이 단계를 따르도록 합니다.
diff --git a/pages/_ko-KR/twilightmenu/updating-flashcard.md b/pages/_ko-KR/twilightmenu/updating-flashcard.md
index a36d5ce0..a9232a10 100644
--- a/pages/_ko-KR/twilightmenu/updating-flashcard.md
+++ b/pages/_ko-KR/twilightmenu/updating-flashcard.md
@@ -15,7 +15,7 @@ v16.4.0보다 낮은 버전에서 업데이트 한다면, `saves`폴더를 DS
1. Flashcard의 SD 카드 루트에 `_nds` 폴더를 복사합니다.
1. Flashcard의 SD 카드 루트에 `BOOT.NDS` 파일을 복사합니다.
-### DSi/3DS SD 카드 단을 위해서 더 할 것
+### DSi/3DS SD 카드를 위한 추가적인 단계
TWLMenu++내의 SD 카드와 Flashcard 간의 내용물을 전환하고 싶거나, Flashcard의 TWLMenu++가 v16.3.0 이후의 버전이라면, 이 단계를 따르도록 합니다.
diff --git a/pages/_no-NO/ds-index/hardmod.md b/pages/_no-NO/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_no-NO/ds-index/hardmod.md
+++ b/pages/_no-NO/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_no-NO/twilightmenu/custom-dsi-3ds-skins.md b/pages/_no-NO/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_no-NO/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_no-NO/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_no-NO/twilightmenu/faq.md b/pages/_no-NO/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_no-NO/twilightmenu/faq.md
+++ b/pages/_no-NO/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_pl-PL/ds-index/hardmod.md b/pages/_pl-PL/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_pl-PL/ds-index/hardmod.md
+++ b/pages/_pl-PL/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_pl-PL/twilightmenu/custom-dsi-3ds-skins.md b/pages/_pl-PL/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_pl-PL/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_pl-PL/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_pl-PL/twilightmenu/faq.md b/pages/_pl-PL/twilightmenu/faq.md
index 030fa056..1257348c 100644
--- a/pages/_pl-PL/twilightmenu/faq.md
+++ b/pages/_pl-PL/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_pt-PT/ds-index/hardmod.md b/pages/_pt-PT/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_pt-PT/ds-index/hardmod.md
+++ b/pages/_pt-PT/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_pt-PT/twilightmenu/custom-dsi-3ds-skins.md b/pages/_pt-PT/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_pt-PT/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_pt-PT/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_pt-PT/twilightmenu/faq.md b/pages/_pt-PT/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_pt-PT/twilightmenu/faq.md
+++ b/pages/_pt-PT/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_ru-RU/ds-index/hardmod.md b/pages/_ru-RU/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_ru-RU/ds-index/hardmod.md
+++ b/pages/_ru-RU/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_ru-RU/ds-index/index.md b/pages/_ru-RU/ds-index/index.md
index 217d80d9..c2c9ae1d 100644
--- a/pages/_ru-RU/ds-index/index.md
+++ b/pages/_ru-RU/ds-index/index.md
@@ -2,11 +2,11 @@
lang: en-US
layout: wiki
section: ds-index
-title: Nintendo DS Modding Index
+title: Индекс модов Nintendo DS
description: An explanation of all things DS modding
---
-Welcome to the Nintendo DS modding resources section. This will attempt to explain most things related to Nintendo DS modding as well as be a basic introduction to the NTR firmware of the Nintendo DS, the TWL firmware of the Nintendo DSi, and TWL_FIRM of the Nintendo 3DS.
+Добро пожаловать в раздел ресурсов моддинга (модификации) Nintendo DS. Этот раздел постарается объяснить большинство моментов, связанных с модификацией Nintendo DS, а также ввести базовую информацию о NTR прошивке Nintendo DS, TWL прошивке Nintendo DSi, а также прошивке TWL_FIRM для Nintendo 3DS.
-If you need help, ask the [DS(i) Mode Hacking!](https://ds-homebrew.com/discord) Discord server. (English only)
+Если вам нужна помощь, спросите в [DS(i) Mode Hacking!](https://ds-homebrew.com/discord) сервер Discord. (ВНИМАНИЕ: Сервер только на английском языке!)
{:.alert .alert-info}
diff --git a/pages/_ru-RU/index.md b/pages/_ru-RU/index.md
index 8ef5f891..e0a82fb3 100644
--- a/pages/_ru-RU/index.md
+++ b/pages/_ru-RU/index.md
@@ -1,11 +1,11 @@
---
lang: en-US
layout: default
-title: Home
+title: Главная
---
-# Welcome to the DS-Homebrew Wiki!
+# Добро пожаловать в Вики (Википедию), посвященную хоумбрю Nintendo DS (DS-Homebrew Wiki)!
-This site is where you can find wikis for TWiLight Menu++ and other DS-Homebrew projects. Click on one of the sections at the top, then a list of pages will be on the left.
+Здесь вы можете найти вики для TWiLight Menu++ и других DS Хоумбрю (DS-Homebrew) проектов. Щелкните по одному из разделов вверху, затем нажмите на список страниц слева.
-If you would like to help contribute you can find the source code on [GitHub](https://github.com/{{ site.repo }}) or help translate on [Crowdin](https://crowdin.com/project/ds-homebrew-wiki). To discuss this or get help with anything on it, please join the [DS(i) Mode Hacking](https://ds-homebrew.com/discord) Discord server (English only).
+Если вы хотите помочь внести свой вклад, вы можете найти исходный код на [GitHub](https://github.com/{{ site.repo }}) или помочь с переводом на [Crowdin](https://crowdin.com/project/ds-homebrew-wiki). Чтобы обсудить это или получить помощь, пожалуйста, присоединитесь к [DS(i) Mode Hacking](https://ds-homebrew.com/discord) серверу Discord (ВНИМАНИЕ: сервер на английском языке).
diff --git a/pages/_ru-RU/twilightmenu/custom-dsi-3ds-skins.md b/pages/_ru-RU/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_ru-RU/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_ru-RU/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_ru-RU/twilightmenu/faq.md b/pages/_ru-RU/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_ru-RU/twilightmenu/faq.md
+++ b/pages/_ru-RU/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_ru-RU/twilightmenu/index.md b/pages/_ru-RU/twilightmenu/index.md
index 5b66fb9f..ddbfd4ea 100644
--- a/pages/_ru-RU/twilightmenu/index.md
+++ b/pages/_ru-RU/twilightmenu/index.md
@@ -2,11 +2,11 @@
lang: en-US
layout: wiki
section: twilightmenu
-title: Home
+title: Главная
---
-# Welcome to the TWiLight Menu++ wiki!
+# Добро пожаловать в TWiLight Menu++ вики!
-TWiLight Menu++ is an open-source DSi Menu upgrade/replacement, and frontend for nds-bootstrap for DSi, 3DS, and flashcards.
+TWiLight Menu++ — программа с открытым исходным кодом, обновление/замена DSi Меню и интерфейса для nds-bootstrap для DSi, 3DS и флеш-карточек.
-For info on how to install, click on the page in the sidebar for your console in the Installing section.
+Для получения информации о том, как установить, нажмите на страницу в боковой панели для игровой консоли в секции Установка.
diff --git a/pages/_ru-RU/twilightmenu/installing-3ds-manual.md b/pages/_ru-RU/twilightmenu/installing-3ds-manual.md
index 8e46fe47..6e2df40a 100644
--- a/pages/_ru-RU/twilightmenu/installing-3ds-manual.md
+++ b/pages/_ru-RU/twilightmenu/installing-3ds-manual.md
@@ -3,14 +3,14 @@ lang: en-US
layout: wiki
section: twilightmenu
category: installing
-title: Installing (3DS, Manual)
+title: Установка (3DS, руководство)
---
-You will first need to have Custom Firmware on your 3DS, follow [3ds.hacks.guide](https://3ds.hacks.guide) to install it
+Первым делом, вам нужно будет иметь кастомную прошивку на вашем 3DS ([3ds.hacks.guide](https://3ds.hacks.guide)) для её установки.
{:.alert .alert-info}
-### Installing
-1. Download the latest version of `TWiLightMenu-3DS.7z` from [the releases page](https://github.com/DS-Homebrew/TWiLightMenu/releases)
+### Установка
+1. Загрузите последнюю версию `TWiLightMenu-3DS.7z` со [страницы релизов](https://github.com/DS-Homebrew/TWiLightMenu/releases).
1. Extract `TWiLightMenu-3DS.7z`
1. Copy the `_nds` folder to your SD card root
1. Copy the `BOOT.NDS` file to your SD card root
diff --git a/pages/_ru-RU/twilightmenu/installing-3ds.md b/pages/_ru-RU/twilightmenu/installing-3ds.md
index 5b99eec7..4c6dbde0 100644
--- a/pages/_ru-RU/twilightmenu/installing-3ds.md
+++ b/pages/_ru-RU/twilightmenu/installing-3ds.md
@@ -3,31 +3,31 @@ lang: en-US
layout: wiki
section: twilightmenu
category: installing
-title: Installing (3DS)
+title: Установка (3DS)
---
-You will first need to have Custom Firmware on your 3DS, follow [3ds.hacks.guide](https://3ds.hacks.guide) to install it
+Первым делом, вам нужно будет иметь кастомную прошивку на вашем 3DS ([3ds.hacks.guide](https://3ds.hacks.guide)) для её установки.
{:.alert .alert-info}
-### Installing (Working Camera)
-1. Open FBI and select `Remote Install`, then `Scan QR Code`
-1. Scan this QR code to install the latest version of [Universal-Updater](https://github.com/Universal-Team/Universal-Updater)

-1. Close FBI and launch Universal-Updater
- - If it doesn't show up on your home menu, reboot your 3DS
-1. Find TWiLight Menu++ in the app grid, you can search with the 3rd tab on the sidebar if you have trouble finding it
- - It has this icon: 
-1. Press A or tap the download icon in the sidebar and select `TWiLight Menu++` to install it
- - This will take a while
+### Установка (С рабочей камерой)
+1. Откройте FBI и выберите `Удаленная установка`, затем `Сканируйте QR-код`
+1. Сканируйте этот QR-код для установки последней версии [Universal-Updater](https://github.com/Universal-Team/Universal-Updater).

+1. Закройте FBI и запустите Universal-Updater.
+ - Если оно не появляется в главном меню, перезагрузите 3DS.
+1. Найдите TWiLight Menu + + в сетке приложений, вы сможете найти с помощью третьей вкладки на боковой панели, если у вас возникли проблемы с ее нахождением, то:
+ - Оно имеет такую иконку: 
+1. Нажмите A или нажмите на значок загрузки в боковой панели и выберите `TWiLight Menu++` для его установки.
+ - Загрузка может занять некоторое время.
-### Installing (Non-Working Camera)
-1. Download the `Universal-Updater.cia` file from the [Universal-Updater release page](https://github.com/Universal-Team/Universal-Updater/releases)
-1. Place the `Universal-Updater.cia` file anywhere on your SD card
-1. Launch FBI on your Nintendo 3DS
-1. In FBI, go to the place you pasted the `Universal-Updater.cia` file
-1. Select the `Universal-Updater.cia` file and hit "Install & Delete"
-1. Close FBI and launch Universal-Updater
- - If it doesn't show up on your home menu, reboot your 3DS
-1. Find TWiLight Menu++ in the app grid, you can search with the 3rd tab on the sidebar if you have trouble finding it
- - It has this icon: 
-1. Press A or tap the download icon in the sidebar and select `TWiLight Menu++` to install it
- - This will take a while
+### Установка (Без камеры / С нерабочей камерой)
+1. Зугрузите файл `Universal-Updater.cia` со [страницы релиза Universal-Updater](https://github.com/Universal-Team/Universal-Updater/releases)
+1. Поместите файл `Universal-Updater.cia` в любом месте на вашей SD-карте.
+1. Запустите FBI на вашей Nintendo 3DS.
+1. В FBI, перейдите на место, где вы вставили файл `Universal-Updater.cia`.
+1. Выберите файл `Universal-Updater.cia` и нажмите "Install & Delete" ("Загрузить & Удалить").
+1. Закройте FBI и запустите Universal-Updater.
+ - Если оно не появляется в главном меню, перезагрузите 3DS.
+1. Найдите TWiLight Menu + + в сетке приложений, вы сможете найти с помощью третьей вкладки на боковой панели, если у вас возникли проблемы с ее нахождением, то:
+ - Оно имеет такую иконку: 
+1. Нажмите A или нажмите на значок загрузки в боковой панели и выберите `TWiLight Menu++` для его установки.
+ - Загрузка может занять некоторое время.
diff --git a/pages/_ru-RU/twilightmenu/installing-flashcard.md b/pages/_ru-RU/twilightmenu/installing-flashcard.md
index 57e71262..861ac88c 100644
--- a/pages/_ru-RU/twilightmenu/installing-flashcard.md
+++ b/pages/_ru-RU/twilightmenu/installing-flashcard.md
@@ -3,29 +3,29 @@ lang: en-US
layout: wiki
section: twilightmenu
category: installing
-title: Installing (Flashcard)
+title: Установка (Флеш-картридж)
---
-### Installing
-1. Download the latest version of `TWiLightMenu-Flashcard.7z` from [the releases page](https://github.com/DS-Homebrew/TWiLightMenu/releases)
-1. Extract `TWiLightMenu-Flashcard.7z`
-1. Copy the `_nds` folder to your flashcard's microSD card root
-1. Copy the `BOOT.NDS` file to your flashcard's microSD card root
-1. Copy the `roms` folder to your flashcard's microSD card root
-1. If you already have save data, move your `.sav` files, which are in your DS ROM location, to a new folder called `saves`, which also goes in the DS ROM location
+### Установка
+1. Загрузите последнюю версию `TWiLightMenu-Flashcard.7z` со [страницы релизов](https://github.com/DS-Homebrew/TWiLightMenu/releases).
+1. Извлеките архив `TWiLightMenu-Flashcard.7z`.
+1. Скопируйте папку `_nds` в корень карты microSD, которая будет вставлена в вашу флеш-карточку.
+1. Скопируйте файл `BOOT.NDS` в корень карты microSD, которая будет вставлена в вашу флеш-картридж.
+1. Скопируйте папку `roms` в корень карты microSD, которая будет вставлена в вашу флеш-картридж.
+1. Если у вас уже есть данные, переместите файлы `.sav`, которые находятся в вашей DS ROM, в новую папку с именем `saves`, которая также идет в DS ROM
1. ...
- - **DS Phat/lite users:** If booting `BOOT.NDS` causes a white screen lock-up, insert a DS Memory Expansion Pak, and try again
- - **DSi/3DS users:** Run TWLMenu++ on the console's SD card, and turn on `SCFG access in Slot-1`
- - This will let you use TWL clock speed and/or VRAM boost on your flashcard games, as well as accessing the console's SD card
+ - **DS Fat/Lite пользователи:** Если загрузка `BOOT.NDS` вызывает блокировку белого экрана, вставьте DS Memory Expansion Pak, и повторите попытку.
+ - **DSi/3DS пользователи:** Запустите TWLMenu++ на SD-карте и включите `SCFG доступ в Slot-1`.
+ - Это позволит вам использовать тактовую скорость TWL и/или VRAM ускорение в играх с флеш-картами, а также доступ к SD-карте консоли.
-### To run games using your flashcard firmware
-1. Extract what's in `Flashcart Loader/(your flashcard)` to the root of the flashcard's microSD card
- - If you done so, continue to step 3. If not, follow the steps below the flashcard list below
+### Для запуска игр с помощью прошивки флеш-картриджа
+1. Извлеките всё, что есть в `Flashcart Loader/(ваш флеш-картридж)` в корень карты microSD флеш-картриджа.
+ - Если вы это сделали, перейдите к шагу 3. Иначе, выполните шаги, указанные ниже:
-1. For these flashcards:
+1. Для этих флешкартриджей:
- R4i-SDHC
- - r4isdhc.com cards
- - r4isdhc.hk cards
+ - r4isdhc.com карты
+ - r4isdhc.hkcom карты
- R4i SDHC Upgrade Revolution
- R4DSiXL3D
- R4i Advance
@@ -35,13 +35,13 @@ title: Installing (Flashcard)
- R4i Gold (v1.4.1) (3DS)
- R4xDS
- Install YSMenu from [here](https://gbatemp.net/threads/retrogamefan-updates-releases.267243/)
- - Make sure you have `YSMenu.nds` and `TTMenu` folder (renamed from `YSMenu`, if existed) on the flashcard microSD root
-1. Set `Use nds-bootstrap (B4DS)` to `No`, so the flashcard firmware will be used instead of nds-bootstrap
+ Установите YSMenu [здесь](https://gbatemp.net/threads/retrogamefan-updates-releases.267243/).
+ - Убедитесь, что у вас есть папка `YSMenu.nds` и `TTMenu` (Возьмите из папки `YSMenu`, если существует) на microSD корне флеш-картриджа.
+1. Установите `Use nds-bootstrap (B4DS)` на `No`, чтобы запуск TWLMenu++ был как в вашем флеш-картридже вместо nds-bootstrap.
-### Autobooting TWiLight Menu++
-1. Extract the content(s) of `Autoboot/(your flashcard)` to the root of the flashcard's microSD card
- - Skip this, if you don't see your flashcard
+### Автозагрузка TWiLight Menu++
+1. Извлеките всё содержимое из `Autoboot/(ваш флеш-картридж)` в корень карты microSD флеш-картриджа.
+ - Пропустите прошлый пункт, если вы не видите название своего флеш-картриджа
1. ...
- - **DS Phat/DS Lite users:** Go to settings in the DS menu, and turn on auto-start, so your flashcard will start on boot
- - **DSi/3DS users:** Run TWLMenu++ on the console's SD card, and turn on `Auto-start Slot-1`
+ - **DS Fat/DS Lite пользователи:** Перейдите в настройки в меню DS, и включите автозапуск, чтобы ваш флеш-картридж мог запустится после загрузки стартового экрана DS.
+ - **DSi/3DS пользователи:** Запустите TWLMenu++ на SD-карте и включите `Auto-start Slot-1`.
diff --git a/pages/_sv-SE/ds-index/hardmod.md b/pages/_sv-SE/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_sv-SE/ds-index/hardmod.md
+++ b/pages/_sv-SE/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_sv-SE/twilightmenu/custom-dsi-3ds-skins.md b/pages/_sv-SE/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_sv-SE/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_sv-SE/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_sv-SE/twilightmenu/faq.md b/pages/_sv-SE/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_sv-SE/twilightmenu/faq.md
+++ b/pages/_sv-SE/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_tr-TR/ds-index/hardmod.md b/pages/_tr-TR/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_tr-TR/ds-index/hardmod.md
+++ b/pages/_tr-TR/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_tr-TR/twilightmenu/custom-dsi-3ds-skins.md b/pages/_tr-TR/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_tr-TR/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_tr-TR/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_tr-TR/twilightmenu/faq.md b/pages/_tr-TR/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_tr-TR/twilightmenu/faq.md
+++ b/pages/_tr-TR/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_uk-UA/ds-index/hardmod.md b/pages/_uk-UA/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_uk-UA/ds-index/hardmod.md
+++ b/pages/_uk-UA/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_uk-UA/twilightmenu/custom-dsi-3ds-skins.md b/pages/_uk-UA/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_uk-UA/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_uk-UA/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_uk-UA/twilightmenu/faq.md b/pages/_uk-UA/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_uk-UA/twilightmenu/faq.md
+++ b/pages/_uk-UA/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_zh-CN/ds-index/hardmod.md b/pages/_zh-CN/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_zh-CN/ds-index/hardmod.md
+++ b/pages/_zh-CN/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_zh-CN/twilightmenu/custom-dsi-3ds-skins.md b/pages/_zh-CN/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_zh-CN/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_zh-CN/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_zh-CN/twilightmenu/faq.md b/pages/_zh-CN/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_zh-CN/twilightmenu/faq.md
+++ b/pages/_zh-CN/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm
diff --git a/pages/_zh-TW/ds-index/hardmod.md b/pages/_zh-TW/ds-index/hardmod.md
index 5ef24af4..8fb813f5 100644
--- a/pages/_zh-TW/ds-index/hardmod.md
+++ b/pages/_zh-TW/ds-index/hardmod.md
@@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding is when you physically solder the motherboard of the Nintendo DSi to an SD card adapter in order to be read on a computer. This is useful for restoring NAND backups, viewing NAND on your PC, etc...
+
### Nintendo DS
-
+[](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
-Follow the "Hardware NAND Mod Guide" and "Decrypting your NAND" of [this](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guide.
+
+To hardmod a Nintendo DSi / DSi XL (LL) you will need:
+ - [Pencil tipped soldering iron](https://www.amazon.com/dp/B01N4571Q6)
+ - [Very fine wire](https://www.amazon.com/dp/B01MXGNTA4), 28AWG or smaller, preferably 30AWG+
+ - SD to microSD adapter
+ - An SD card reader able to read eMMC chips running in single data-line mode. [Here's a known working one](https://www.amazon.com/dp/B006T9B6R2)
+ - [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) and [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) if on Windows
+ - A valid NAND backup of the DSi you are hardmodding
+ - To be comfortable soldering to pads that are as small as 0.5mm in diameter
+
+#### DSi side A pinouts
+[](/assets/images/dsi-hardmod/side_a.jpg)
+#### DSi side B pinouts
+[](/assets/images/dsi-hardmod/side_b.png)
+#### DSi XL side B pinouts
+[](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
+
+- You will need to solder the points on the motherboard to the microSD card adapter
+ - CMD to pin 2
+ - GND to pins 3 and 6
+ - CLK to pin 5
+ - DAT0 to pin 7
+
+#### Soldered microSD adapter example
+[](/assets/images/dsi-hardmod/sd.jpg)
+
+- Insert the microSD card adapter into your computer
+ - **WARNING** - Windows will ask you to format it: **DO NOT** format it - this might cause irrepairable damage
+
+#### Removing the no$gba footer
+You will first need to remove the NOCASH footer from the backup you are flashing to the DSi. This can be done by running the hiyaCFW helper application found [here](https://github.com/mondul/HiyaCFW-Helper/releases/latest).
+
+1. Download the version for the operating system you are using
+1. Run the script, selecting the NAND backup you wish to flash to your DSi
+1. Switch to NAND mode with the button to the left of the file path
+1. Click `Start` to create the NAND backup without the no$gba footer
+
+- Once the script completes, there should be a file with a long name ending in `-no-footer.bin` in the folder where your terminal is open
+ - Use this file as the NAND image you flash onto the DSi
+
+
+#### Windows instructions (skip for macOS / Linux)
+
+1. Open Win32DiskImager
+1. Click the folder icon and browse to your desktop. In the text box, write `NAND_0.bin`. When selecting type, choose `All types *.*`
+1. Choose the device that is the DSi and click read
+1. Once it is done, click the folder icon, change the name to `NAND_1.bin` and read again
+1. Open HxD and drag both files into the editor. Go to the top bar, click "Analysis", click "File compare" from the drop down menu, then click "Compare".
+1. Choose to compare both files then click OK when done
+ - If it says "The chosen files are identical.", you are good to go to the next section
+ - If it doesn't say that, and both NANDs aren't around 240MB, dump NAND_1/NAND_0 again
+1. Open Win32DiskImager, click the folder icon and choose your existing NAND backup you created before
+1. Flash it with the `Write` button
+1. Unplug the SD card adapter and attempt to turn on the DSi
+
+#### Linux / macOS instructions (skip if on Windows)
+
+
+1. Work out where the SD card is mounted
+ - Linux:
+ 1. Unplug the SD card adapter
+ 1. Run `lbslk` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `lbslk` again
+ 1. This time a new device should appear
+ - It may be called `/dev/sdb`, make sure you note down what it is called on *your* terminal
+
+ - macOS:
+ 1. Unplug the SD card adapter
+ 1. Run `df` on a terminal
+ 1. Plug in the SD card adapter
+ 1. Run `df` again
+ 1. A new device should appear in the list
+ - It may be called `/dev/disk1s1`, make sure you note down what it is called on *your* terminal
+
+1. Dump the NAND
+ - Run the following command on a terminal:
+ - `cat {device-name} > nand0.bin`
+ - Replace `{device-name}` with the SD card mount location
+ - E.g `cat /dev/sdb > nand0.bin`
+ - Then run `cat {device-name} > nand1.bin`
+
+
+1. Compare NAND dumps
+ 1. Run the following command:
+ - Linux: `md5sum nand0.bin nand1.bin`
+ - macOS: `md5 -r nand0.bin nand1.bin`
+ 1. Check that the hash generated matches each other
+ 1. If not, redump the NAND, adjusting the wiring if necessary
+ 1. Keep on redumping the NAND until the hashes are identical
+
+1. Flash NAND
+ 1. Locate the NAND backup you created before on the console
+ 1. Run the following command:
+ - `cat {existing-nand-backup} > {device-name}`
+ - Replace `{existing-nand-backup}` with the location and name of your old NAND backup
+ - Replace `{device-name}` with the mount point of the SD card
+
+At this point you may unplug the SD card adapter and attempt to turn on the DSi. If all went well, the DSi should have booted to the state it was when the backup was created!
diff --git a/pages/_zh-TW/twilightmenu/custom-dsi-3ds-skins.md b/pages/_zh-TW/twilightmenu/custom-dsi-3ds-skins.md
index 0dfef6c8..1eb9dd2b 100644
--- a/pages/_zh-TW/twilightmenu/custom-dsi-3ds-skins.md
+++ b/pages/_zh-TW/twilightmenu/custom-dsi-3ds-skins.md
@@ -12,7 +12,7 @@ Changes to paletted textures are more involved. Within the `grit` and `backgroun
```bash
$ make
```
-in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the advanced theming section below.
+in order to compile your themes into Grit RIFF Format. This will compile your paletted textures into **.grf** format in the `grf` folder. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
Be aware the paletted textures come with more restrictions than BMP textures, the primary being an absolute maximum of 16 colors per texture. However, some textures may have even tighter default palette restrictions, which can be modified at the risk of running out of palette memory (see below).
@@ -37,7 +37,7 @@ The `volume` and `battery` textures are self explanatory.
| Texture | Description | Palette Restrictions (if less than 16) |
| ------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| bips | The bips displayed on the bottom of the scrollbar (DSi Theme) | |
-| box | The box texture, containing both full and empty textures (for DSi Theme) | |
+| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | The texture displayed for an empty box (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| box_full | The texture displayed for a box with an icon (3DS Theme) | On the 3DS theme, the transparent color is `#E0DAD9` by default |
| brace | The brace texture shown past the first and last icon (DSi theme) | 4 Colors |
@@ -65,7 +65,7 @@ The `volume` and `battery` textures are self explanatory.
| scroll_window | The part of the scrollbar that indicates the icons that are in view | 7 Colors |
| small_cart | The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme) | |
| start_border | The border with animation frames that indicates the selected icon (DSi Theme) | |
-| start_text | The text displayed for the start border on the (DSi Theme) | 4 Colors |
+| start_text | The text displayed on the start border (DSi Theme) | 4 Colors |
| wirelessicons | The icons displayed to indicate a game has wireless support | 7 Colors |
### UI textures (`ui` folder)
@@ -101,17 +101,17 @@ You may configure various options on how the theme is drawn in the `theme.ini` t
| `ShoulderLRenderX` | The X position on the top screen to draw the left shoulder | 0 | 0 |
| `ShoulderRRenderY` | The Y position on the top screen to draw the right shoulder | 172 | 172 |
| `ShoulderRRenderX` | The X position on the top screen to draw the right shoulder | 178 | 178 |
-| `VolumeRenderX` | The X position on the top screen to draw the right shoulder | 4 | 4 |
+| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | The Y position on the top screen to draw the volume icon | 16 | 16 |
| `BatteryRenderY` | The Y position on the top screen to draw the battery icon | 5 | 5 |
| `BatteryRenderX` | The X position on the top screen to draw the battery icon | 235 | 235 |
| `RenderPhoto` | Whether or not to draw a photo on the top screen | 0 | 1 |
-| `StartTextUserPalette` | Assign the DSi Profile Theme to the palette of the start text | N/A | 1 |
-| `StartBorderUserPalette` | Assign the DSi Profile Theme Palette to the palette of the start border | N/A | 1 |
-| `ButtonArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
-| `MovingArrowUserPalette` | Assign the DSi Profile Theme Palette to the palette of the arrow shown when moving icons | N/A | 1 |
-| `LaunchDotsUserPalette` | Assign the DSi Profile Theme Palette to the palette of the launch dots | N/A | 1 |
-| `DialogBoxUserPalette` | Assign the DSi Profile Theme Palette to the palette of the dialog box | N/A | 1 |
+| `StartTextUserPalette` | Whether to use the DS Profile color for the palette of the start text | N/A | 1 |
+| `StartBorderUserPalette` | Whether to use the DS Profile color for the palette of the start border | N/A | 1 |
+| `ButtonArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | N/A | 1 |
+| `MovingArrowUserPalette` | Whether to use the DS Profile color for the palette of the arrow shown when moving icons | N/A | 1 |
+| `LaunchDotsUserPalette` | Whether to use the DS Profile color for the palette of the launch dots | N/A | 1 |
+| `DialogBoxUserPalette` | Whether to use the DS Profile color for the palette of the dialog box | N/A | 1 |
## Advanced theming
@@ -119,12 +119,12 @@ Occasionally, you may require more than the default number of colors for some pa
For example, in `scroll_window.grit`, you may edit `-pn7` and change `7` to `16` for 16 colors. Be aware that if you remove the entire `-pn` line, you may encounter unexpected results.
-Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of palettes to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
+Also note that the absolute maximum of 16 colors per texture is enforced in code and can not be modified. Even if you increase the number of colors in the palette to above 16, no more than 16 colors worth of palette data will be loaded. With the amount of textures loaded in, there may not be enough palette memory to hold 16 colors worth of palettes for every texture. Keep this in mind when adjusting palette sizes.
Additionally, paletted textures must have dimensions that are a multiple of 2. Paletted textures sizes can not be changed except for `bubble` and `start_border`, which can have configurable sprite dimensions in `theme.ini`. However, note that doing so may have unexpected consequences.
Paletted textures are not checked for validity. An invalid texture should be rare if created with the provided makefile, but in certain cases a corrupted texture will cause the menu to not load at all.
-## Custom background music and sound fonts.
+## Custom background music and sound effects
The DSi Menu and 3DS themes also support custom music. See [DSi / 3DS skins - Custom SFX](custom-dsi-3ds-sfx) for more details.
diff --git a/pages/_zh-TW/twilightmenu/faq.md b/pages/_zh-TW/twilightmenu/faq.md
index 18024e24..b54953db 100644
--- a/pages/_zh-TW/twilightmenu/faq.md
+++ b/pages/_zh-TW/twilightmenu/faq.md
@@ -40,7 +40,7 @@ A: You can download homebrew games from [Universal-DB](https://db.universal-team
- On DSi you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) to dump your DS games and DSiWare
- On 3DS you can use [GodMode9](https://github.com/d0k3/GodMode9/releases) to dump your DS games, DSiWare, and Virtual Console titles
-#### Q: Can I get the save files from my cartridges onto my SD card or vise versa?
+#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
A: Yes, you can use [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) on DSi and 3DS or [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) on 3DS.
#### Q: How do I change TWiLight Menu++'s language?
@@ -50,8 +50,51 @@ A:
1. Change the first option until you see the language you want, then exit settings
- You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++
+#### Q: What systems does TWiLight Menu++ support?
+
+A:
+
+| Console | Loader | Extensions | Save file |
+| ------------------------- | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- |
+| [ARGV][nds-hb-menu-argv] | Native | `.argv` | |
+| Atari 2600 | [StellaDS][stellads] | `.a26` | |
+| Atari 5200 | [A5200DS][a5200ds] | `.a52` | |
+| Atari 7800 | [A7800DS][a7800ds] | `.a78` | |
+| DS | [nds-bootstrap][ndsbs], flashcard kernel, native | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `saves/[rom name].sav`
(retail ROMs only) |
+| DSiWare | [Unlaunch][unlaunch] | `.nds`, `.dsi`, `.ids`, `.srl`, `.app` | `[rom name].pub`, `[rom name].prv` |
+| DSTWO Plugin | [DSTWO][dstwo] (requires DSTWO flashcard) | `.plg` | |
+| Game Boy (Color) | [GameYob][gameyob] | `.gb`, `.sgb`, `.gbc` | `[rom name].sav` |
+| Game Boy Advance | [GBARunner2][gbarunner2], native | `.agb`, `.gba`, `.mb` | `[rom name].sav` |
+| Game Gear | [S8DS][s8ds] | `.gg` | `[rom name].gg.sav` |
+| Genesis / Mega Drive | [jEnesisDS][jenesis], [PicoDriveTWL][pdtwl] | `.gen` | `[rom name].srm`
(flashcard only for jEnesisDS) |
+| Master System | [S8DS][s8ds] | `.sms` | `[rom name].sms.sav` |
+| MPEG4 Video | [MPEG4 Player][mpeg4player] | `.mp4` | |
+| NES / Famicom | [nesDS][nesds] | `.nes`, `.fds` | `[rom name].sav` |
+| PC Engine / TurboGrafx-16 | [NitroGrafx][nitrografx] | `.pce` | |
+| RVID Video | [Rocket Video Player][rvidplayer] | `.rvid` | |
+| SNES | [SNEmulDS][snemulds] | `.smc`, `.sfc` | `[rom name].srm`
(flashcard only) |
+
+
#### Q: Why isn't touch input working on sudokuhax?
A: Depending on the save file of sudokuhax, the touch screen inputs may not work.
#### Q: Can The Biggest Loser boot TWiLight Menu++?
A: No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
+
+[a5200ds]: https://github.com/wavemotion-dave/A5200DS
+[a7800ds]: https://github.com/wavemotion-dave/A7800DS
+[dstwo]: http://eng.supercard.sc
+[gameyob]: https://github.com/Drenn1/GameYob
+[gbarunner2]: https://github.com/Gericom/GBARunner2
+[jenesis]: https://www.gamebrew.org/wiki/JEnesisDS
+[mpeg4player]: https://gbatemp.net/threads/544095
+[ndsbs]: https://github.com/DS-Homebrew/nds-bootstrap
+[nds-hb-menu-argv]: https://github.com/devkitPro/nds-hb-menu#passing-arguments
+[nesds]: https://github.com/DS-Homebrew/NesDS
+[nitrografx]: https://www.gamebrew.org/wiki/NitroGrafx
+[pdtwl]: https://github.com/DS-Homebrew/PicoDriveTWL
+[rvidplayer]: https://gbatemp.net/threads/539163
+[s8ds]: https://www.gamebrew.org/wiki/S8DS
+[snemulds]: https://www.gamebrew.org/wiki/SNEmulDS
+[stellads]: https://github.com/wavemotion-dave/StellaDS
+[unlaunch]: https://problemkaputt.de/unlaunch.htm