Update translations

This commit is contained in:
Pk11 2021-01-21 19:37:54 -06:00
parent b9f2205a54
commit 369ef8d10e
73 changed files with 3178 additions and 483 deletions

View File

@ -2,33 +2,33 @@
"ds-index": [
{
"key": "guides",
"title": "Guides"
"title": "Guide"
},
{
"key": "reference",
"title": "Reference"
"title": "Riferimento"
}
],
"twilightmenu": [
{
"key": "installing",
"title": "Installing"
"title": "Installazione"
},
{
"key": "updating",
"title": "Updating"
"title": "Aggiornamento"
},
{
"key": "customization",
"title": "Customization"
"title": "Personalizzazione"
},
{
"key": "other",
"title": "Other"
"title": "Altro"
},
{
"key": "uninstalling",
"title": "Uninstalling"
"title": "Disinstallazione"
}
]
}

View File

@ -1,6 +1,6 @@
[
{
"title": "Home",
"title": "Главная",
"url": "/"
},
{
@ -8,7 +8,7 @@
"url": "/twilightmenu"
},
{
"title": "DS Index",
"title": "Индекс DS",
"url": "/ds-index"
}
]

View File

@ -1,10 +1,10 @@
{
"by": "By: $1",
"by": "От: $1",
"description": "Wikis for DS-Homebrew projects",
"discord-server": "Discord server (English only)",
"published-with": "Published with <a href=\"https://pages.github.com\">GitHub Pages</a>, view <a href=\"https://github.com/$1\">the source</a> on GitHub.",
"source": "Source",
"translate-here": "Translate here",
"translate-on-crowdin": "Translate on Crowdin",
"discord-server": "Сервер Discord (Только на английском языке)",
"published-with": "Опубликовано с помощью <a href=\"https://pages.github.com\">GitHub страниц</a>. <a href=\"https://github.com/$1\"> Смотреть источник</a> на GitHub.",
"source": "Источники (GitHub)",
"translate-here": "Перевести здесь",
"translate-on-crowdin": "Перевести с помощью Crowdin",
"title": "DS-Homebrew Wiki"
}

1
assets/js/i18n/ru-RU.js Normal file
View File

@ -0,0 +1 @@
export default { 'pageIsInYourLanguage': 'Эта страница доступна на русский языке!' };

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -8,8 +8,107 @@ description: An explanation of all things DS modding
---
Hardmodding es cuando sueldas físicamente la placa base de la Nintendo DSi a un adaptador de tarjeta SD para poder leerla en una computadora. Esto es útil para restaurar copias de seguridad NAND, ver NAND en su PC, etc...
### Nintendo DS
![Placa base DS original con puntos de contacto etiquetados](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
Siga la "Guía de modificación de NAND de hardware" y "Descifrando su NAND" de [esta](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) guía.
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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -8,8 +8,107 @@ description: Une explication de tout le modding DS
---
Le Hardmodding est quand vous soudez physiquement la carte mère de la Nintendo DSi à un adaptateur de carte SD afin d'être lu sur un ordinateur. Ceci est utile pour restaurer les sauvegardes de la NAND, pour visualiser la NAND sur votre PC, etc...
### Nintendo DS
![Carte mère DS originale avec points étiquetés](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
Suivez le "Guide des mods NAND Hardware" et "Décrypter votre NAND" de [ce guide](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/).
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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -8,8 +8,107 @@ description: הסברים על כל מה שקשור למודינג של DS
---
המושג Hardmod מתייחס למצב שבו מלחימים ללוח האם של הDSi מתאם לכרטיס SD, על מנת שהוא יוכל להקרא באמצעות מחשב. זה יעיל לשחזור גיבויי NAND, צפייה בNAND על המחשב ועוד...
### Nintendo DS
![לוח אם של DS מקורי עם נקודות מגע עם תוויות](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
עקבו אחרי החלקים "Hardware NAND Mod Guide" ו"Decrypting your NAND" של המדריך ה[זה](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/).
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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -12,11 +12,11 @@ title: איך להכין סקינים לDSi / 3DS
```bash
$ make
```
על מנת לקמפל את ערכות הנושא לפורמט Grit RIFF. זה יקמפל את הטקסטורות עם פלטת הצבעים לתוך פורמט **.grf** לתיקיית `grf`. אל תבצעו שינויים לקבצי `.grit` עד שתקראו את הפרק על הכנת ערכות נושא מתקדמת בהמשך.
על מנת לקמפל את ערכות הנושא לפורמט Grit RIFF. זה יקמפל את הטקסטורות עם פלטת הצבעים לתוך פורמט **.grf** לתיקיית `grf`. Do not make changes to the `.grit` files until you have read the [advanced theming](#advanced-theming) section below.
שימו לב שטקסטרות עם פלטת צבעים מגיעות עם יותר מגבלות מאשר טקסטורות BMP, כשהעיקרי מביניהם הם מקסימום של 16 צבעים לכל טקסטורה. למרות הנאמר, חלק מהטקסטורות עלולות להיות עם מגבלות חמורות יותר, אך ניתן לערוך אותם עם סיכון של העדר זיכרון ללוח הצבעים (ראו מטה).
The example themes are in the [`romsel_dsimenutheme/resources/dsimenu_theme_examples` folder](https://github.com/DS-Homebrew/TWiLightMenu/tree/master/romsel_dsimenutheme/resources/dsimenu_theme_examples) in TWiLight Menu++'s repository. To download them, [download the repository](https://github.com/DS-Homebrew/TWiLightMenu/archive/master.zip) or clone it with git, then find that folder.
ערכות הנשוא לדוגמא נמצאות במאגר של TWiLight Menu++, במיקום [`romsel_dsimenutheme/resources/dsimenu_theme_examples` folder](https://github.com/DS-Homebrew/TWiLightMenu/tree/master/romsel_dsimenutheme/resources/dsimenu_theme_examples). על מנת להוריד אותם [הורידו את המאגר](https://github.com/DS-Homebrew/TWiLightMenu/archive/master.zip) או שכפלו אותו עם git ואז מצאו את התיקיה.
## תיאורי קבצי ערכת הנושא
@ -37,7 +37,7 @@ The example themes are in the [`romsel_dsimenutheme/resources/dsimenu_theme_exam
| טקסטורה | תיאור | מגבלות לוח צבעים (אם מתחת ל16) |
| ------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| bips | הנקודות המוצגות בתחתית פס הגלילה (ערכת נושא DSi) | |
| box | הטקסטורה של הקופסה, מכילה טקסטורות גם לקופסה מלאה וגם לריקה (ערכת נושא DSi) | |
| box | The box texture, containing both full and empty textures (DSi Theme) | |
| box_empty | הטסקסטורה המוצגת עבור קופסה ריקה (ערכת נושא 3DS) | בערכת הנושא 3DS, ברירת המחדל של הצבע השקוף הוא `#E0DAD9` |
| box_full | הטסקסטורה המוצגת עבור קופסה ריקה עם אייקון (ערכת נושא 3DS) | בערכת הנושא 3DS, ברירת המחדל של הצבע השקוף הוא `#E0DAD9` |
| brace | טקסטורת המסגרת המוצגת לפני האייקון הראשון ואחרי האייקון האחרון (ערכת נושא DSi) | 4 צבעים |
@ -65,7 +65,7 @@ The example themes are in the [`romsel_dsimenutheme/resources/dsimenu_theme_exam
| scroll_window | חלקו של פס הגלילה המציג את האייקון בצפייה | 7 צבעים |
| small_cart | האייקונים המוצגים בחלק העליון (ערכת נושא 3DS) ובתפריט הSELECT (ערכת נושא DSi) | |
| start_border | המסגרת עם פריימים מונפשים שמצביעים על האייקון הנבחר (ערכת נושא DSi) | |
| start_text | הטקסט המוצג במסגרת ההתחלה (ערכת נושא DSi) | 4 צבעים |
| start_text | The text displayed on the start border (DSi Theme) | 4 צבעים |
| wirelessicons | האייקונים המוצגים כאשר למשחק יש תמיכה ברשת אלחוטית | 7 צבעים |
### טקסטורות UI (תיקיית`ui`)
@ -92,26 +92,26 @@ The example themes are in the [`romsel_dsimenutheme/resources/dsimenu_theme_exam
| `StartBorderSpriteW` | הרוחב של ספרייט מסגרת ההתחלה. שימו לב שטקסטורות מסגרת ההתחלה היא בדיוק חצי מהמסגרת המלאה. | 32 | 32 |
| `StartBorderSpriteH` | הגובה של ספרייט מסגרת ההתחלה | 64 | 80 |
| `TitleboxRenderY` | מיקום הY ההתחלתי של טקסט הכותרת שמוצגת | 96 | 85 |
| `BubbleTipRenderY` | מיקום הY של הקצה העליות של הבועה שמוצגת מעל מסגרת ההתחלה | 98 | 80 |
| `BubbleTipRenderX` | מיקום הX של הקצה העליות של הבועה שמוצגת מעל מסגרת ההתחלה | 125 | 22 |
| `BubbleTipSpriteH` | The height of the bubble tip sprite | 7 | 8 |
| `BubbleTipSpriteW` | The width of the bubble tip sprite | 7 | 11 |
| `RotatingCubesRenderY` | The Y position on the top screen to draw the rotating cubes | 78 | N/A |
| `ShoulderLRenderY` | The Y position on the top screen to draw the left shoulder | 172 | 172 |
| `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 |
| `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 |
| `BubbleTipRenderY` | מיקום הX של בועת העצה המוצגת מעל מסגרת ההתחלה | 98 | 80 |
| `BubbleTipRenderX` | מיקום הX של בועת העצה המוצגת מעל מסגרת ההתחלה | 125 | 22 |
| `BubbleTipSpriteH` | הגובה של ספיירט בועת העצה | 7 | 8 |
| `BubbleTipSpriteW` | הרוחב של ספיירט בועת העצה | 7 | 11 |
| `RotatingCubesRenderY` | מיקום הY במסך העליון להצגת הקוביות המסתובבות | 78 | לא זמין |
| `ShoulderLRenderY` | מיקום הY במסך העליון להצגת הפינה השמאלית | 172 | 172 |
| `ShoulderLRenderX` | מיקום הX במסך העליון להצגת הפינה השמאלית | 0 | 0 |
| `ShoulderRRenderY` | מיקום הY במסך העליון להצגת הפינה הימנית | 172 | 172 |
| `ShoulderRRenderX` | מיקום הX במסך העליון להצגת הפינה הימנית | 178 | 178 |
| `VolumeRenderX` | The X position on the top screen to draw the volume icon | 4 | 4 |
| `VolumeRenderY` | מיקום הY במסך העליון להצגת האייקון של עוצמת הקול | 16 | 16 |
| `BatteryRenderY` | מיקום הY במסך העליון להצגת האייקון של הסוללה | 5 | 5 |
| `BatteryRenderX` | מיקום הX במסך העליון להצגת האייקון של הסוללה | 235 | 235 |
| `RenderPhoto` | האם להציג תמונה על המסך העליון | 0 | 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.

View File

@ -40,7 +40,7 @@ title: שאלות ותשובות & פתרון בעיות
- על מכשיר DSi ניתן להשתמש ב[GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) על מנת להשיג את הגיבויים של משחקי הDS והDSiWare שלכם
- על מכשיר 3DS ניתן להשתמש ב[GodMode9](https://github.com/d0k3/GodMode9/releases) על מנת להשיג את הגיבויים של משחקי DS, DSiWare ומשחקי Virtual Console
#### ש: האם ניתן להעביר את השמירות מהקלטות משחק שלי אל הSD וההפך?
#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
ת: כן, ניתן להשתמש ב [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases) על DSi או 3DS, או ב[Checkpoint](https://github.com/FlagBrew/Checkpoint/releases) על 3DS.
#### ש: איך אני משנה את השפה שלTWiLight Menu++?
@ -50,8 +50,51 @@ title: שאלות ותשובות & פתרון בעיות
1. שנו את האופציה הראשונה עד שתראו את השפה שתרצו, ואז תצאו מההגדרות
- ייתכן ותרצו לשנות את שתי האופציות הבאות, מאחר והן שולטות בשפה של משחקי DS ובשמות של המשחקים בTWiLight Menu++
#### ש: למה מסך המגע לא עובד עם sudokuhax?
ת: תלוי בשמירה של sudokuhax, מסך המגע עשוי לא לעבוד.
#### Q: What systems does TWiLight Menu++ support?
#### ש: האם ניתן להשתמש בThe Biggest Loser על מנת להפעיל את TWiLight Menu++?
ת: לא. מאחר וThe Biggest Loser הוא משחק Slot-1 ולא משחק DSiWare. גישה לSD נחסמת כאשר מריצים משחקי Slot-1.
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`<br>(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`<br>(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`<br>(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

View File

@ -8,8 +8,107 @@ description: Minden a DS moddolásról
---
A Hardmodding az az amikor fizikailag hozzá forrasztasz a egy SD kártya adaptert a Nintendo DSi alaplapjához, hogy olvasható legyen számítógépről. Ez hasznos lehet a NAND mentés visszaállításához, a NAND megtekintéséhez a PC-den, stb...
### Nintendo DS
![Eredeti DS alaplap az érintési pontokat jelölve](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Eredeti DS alaplap az érintési pontokat jelölve](/assets/images/ds-hardmod/mobo_pinout.png)](/assets/images/ds-hardmod/mobo_pinout.png)
### Nintendo DSi
Kövesd a "Hardware NAND Mod Guide" és "Decrypting your NAND" fejezeteket [ebből](https://gbatemp.net/threads/dsi-downgrading-the-complete-guide.393682/) az útmutatóból.
A Nintendo DSi / DSi XL (LL) hardmod-hoz a következőre lesz szükséged:
- [Ceruza hegyű forrasztó](https://www.amazon.com/dp/B01N4571Q6)
- [Nagyon vékony drót](https://www.amazon.com/dp/B01MXGNTA4), 28AWG vagy kisebb, preferált a 30AWG+
- SD->microSD adapter
- Egy SD kártya olvasó, ami képes eMMC chippet olvasni egy vezetékes adat-vonal módban. [Itt található egy működő](https://www.amazon.com/dp/B006T9B6R2)
- [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/) és [HxD](https://mh-nexus.de/en/downloads.php?product=HxD20) ha Windowson vagy
- Egy érvényes NAND mentés a DSi-ről, amit hardmoddolni szeretnél
- Legyél komfortos azzal, hogy forrasz olyan forrasztási helyre, aminek az átmérője 0,5 mm-nél kisebb
#### DSi A oldal pin kiosztás
[![DSi A oldal pin kiosztás](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi B oldal pin kiosztás
[![DSi B oldal pin kiosztás](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL B oldal pin kiosztás
[![DSi XL B oldal pin kiosztás](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/assets/images/dsi-hardmod/dsi_xl_side_b.png)
- Az alaplapon található pontokat kell hozzáforrasztania a microSD kártya adapterhez
- CMD a pin 2-höz
- GND a pin 3-hoz és 6-hoz
- CLK a pin 5-höz
- DAT0 a pin 7-hez
#### Forrasztott microSD adapter példa
[![microSD példa](/assets/images/dsi-hardmod/sd.jpg)](/assets/images/dsi-hardmod/sd.jpg)
- Csatlakoztasd a microSD kártya adaptert a számítógépedhez
- **FIGYELEM** - a Windows szertné majd formázni: **NE FORMÁZD**, mert visszafordíthatatlan károkat okozhat
#### A no$gba lábléc eltávolítása
Először el kell távolítanod a NOCASH láblécet a mentésről, amit flashelni fogsz a DSi-re. Ezt a a hiyaCFW helper alkalmazással lehet megtenni, ami [itt](https://github.com/mondul/HiyaCFW-Helper/releases/latest) található.
1. Töltsd le az operációs rendszerednek megfelelő verziót
1. Futtasd a scriptet, kiválasztva a NAND mentést, amit majd flashelni szeretnél a DSi-be
1. Kapcsolj NAND módra a gombbal, ami fájl útvonaltól balra található
1. Kattints a `Start`-ram hogy létrehozz egy NAND mentés a a no$gba lábléc nélkül
- Ha a szkript végzett, akkor létre kell jönni egy fájlnak a hosszú `-no-footer.bin` végződéssel abban a mappában, ahol a terminál megnyitásra került
- Használd ezt a fájl, mint NAND képfájlt, amit flashelsz a DSi-re
#### Windows lépések (ugord át, ha macOS / Linux rendszert használsz)
1. Nyisd meg a Win32DiskImager-t
1. Kattints a mappa ikonon és tallózd az asztali géped. A szövegdobozba írd: `NAND_0.bin`. A típus kiválasztásakor válaszd az `All types *.*` opciót
1. Válaszd ki az eszközt, ami a DSi-hez tartozik és kattins a Read-ra
1. Ha kész, kattints a mappa ikonra és módosítsd a nevet `NAND_1.bin`-re és klikkelj a Read-re újra
1. Nyisd meg a HxD-t és húzd be mindkét fájlt az editorba. Menj a felső sávra, és kattints az "Analysis"-re, majd a "File compare"-re a lenyíló menüben, és kattints a "Compare"-re.
1. Választ a "compare both files" opciót, majd kattints az OK-ra, ha kész
- Ha azt mondja, hogy "The chosen files are identical.", akkor jól csináltad, és tovább léphetsz a következő szakaszra
- Ha nem mondja ezt, és egyik NAND sem 240MB, akkor dumpold újra NAND_1/NAND_0-t
1. Nyisd meg a Win32DiskImager-t, kattints a mappa ikonra és válaszd ki a meglévő NAND mentésedet, amit korábban csináltál
1. Flasheld `Write` gombbal
1. Húzd ki az SD kártya adaptert, és próbáld meg bekapcsolni a DSi-t
#### Linux / macOS lépések (ugord át ha Windows-on vagy)
1. Derítsük ki, hogyaz SD kártya hova lett felcsatolva
- Linux:
1. Húzd ki az SD kártya adaptert
1. Futtasd a `lbslk` parancsot a terminálban
1. Dugd be az SD kártya adaptert
1. Futtasd a `lbslk` parancsot újra
1. Ez alkalommal egy új eszköznek kell megjelennie
- Lehet, hogy `/dev/sdb`-nek hívják, jegyezd fel, hogyan hívják a *te* terminálodban
- macOS:
1. Húzd ki az SD kártya adaptert
1. Futtasd a `df` parancsot a terminálban
1. Dugd be az SD kártya adaptert
1. Futtasd a `df` parancsot újra
1. Egy új eszköznek kell megjelennie a listában
- Lehet, hogy `/dev/disk1s1`-nek hívják, jegyezd fel, hogyan hívják a *te* terminálodban
1. A NAND dumpolása
- Futtasd a következő parancsot a terminálban:
- `cat {device-name} > nand0.bin`
- Cseréld a `{device-name}` részt az SD kártya csatolási pontjára
- Pl.: `cat /dev/sdb > nand0.bin`
- Utána futtasd a következőt: `cat {device-name} > nand1.bin`
1. NAND dumpok összehasonlítása
1. Futtasd a következő parancsot:
- Linux: `md5sum nand0.bin nand1.bin`
- macOS: `md5 -r nand0.bin nand1.bin`
1. Ellenőrizd, hogy a generált hash-ek megegyeznek-e
1. Ha nem, dumpold újra, a vezetékelést igazítva, ha szükséges
1. Egészen addig csináld a NAND dumpolást, amíg a két hash nem egyezik
1. NAND flashelése
1. Keresd meg a NAND mentés, amit a konzolról csináltál
1. Futtasd a következő parancsot:
- `cat {existing-nand-backup} > {device-name}`
- Cseréld az `{existing-nand-backup}` részt a helyére és a nevére a NAND mentésednek
- Cseréld a `{device-name}` részt az SD kártya csatolási pontjára
Ezen a ponton kihúzhatod az SD kártya adapter, és megpróbálhatod bekapcsolni a DSi-t. Ha minden rendben ment a DSi-nek be kell bootolnia abba az állapotba, amin a mentés készült!

View File

@ -12,7 +12,7 @@ A palettás textúrák változásai jobban érintettek. A `grit` és a `backgrou
```bash
$ make
```
parancsot, hogy lefordítsd a témádat Grit RIFF formátumra. Ez lefordítja a palettás textúrákat **.grf** formátumra, a `grf` mappába. Ne módosítsd a `.grit` fájlokat addig, amíg nem olvastad a Fejlett témázás fejezetet lentebb.
parancsot, hogy lefordítsd a témádat Grit RIFF formátumra. Ez lefordítja a palettás textúrákat **.grf** formátumra, a `grf` mappába. Ne módosítsd a `.grit` fájlokat addig, amíg nem olvastad a [Fejlett témázás](#advanced-theming) fejezetet lentebb.
Tartsd szem előtt, hogy a palettás textúrák több korlátozással rendelkeznek, mint a BMP textúrák, a 16 szín textúránként az abszolút maximum. Azonban néhány textúra esetén még ennél is erősebb az alapértelmezett korlátozás, ami annak függvényében módosítható, hogy kifutsz a paletta memóriából (lásd lentebb).
@ -101,17 +101,17 @@ Különböző opciókat konfigurálhatsz arról, hogy hogyan kerüljön rajzolá
| `ShoulderLRenderX` | Az X pozíciója bal vállnak a felső képernyőn | 0 | 0 |
| `ShoulderRRenderY` | Az Y pozíciója jobb vállnak a felső képernyőn | 172 | 172 |
| `ShoulderRRenderX` | Az X pozíciója jobb vállnak a felső képernyőn | 178 | 178 |
| `VolumeRenderX` | Az X pozíciója jobb vállnak a felső képernyőn | 4 | 4 |
| `VolumeRenderX` | Az X pozíciója a hangerő ikonnak a felső képernyőn | 4 | 4 |
| `VolumeRenderY` | Az Y pozíciója a hangerő ikonnak a felső képernyőn | 16 | 16 |
| `BatteryRenderY` | Az Y pozíciója az elem ikonnak a felső képernyőn | 5 | 5 |
| `BatteryRenderX` | Az X pozíciója az elem ikonnak a felső képernyőn | 235 | 235 |
| `RenderPhoto` | Kerüljön vagy ne kerüljön fénykép rajzolásra a felső képernyőn | 0 | 1 |
| `StartTextUserPalette` | A DSi profil téma paletta hozzárendelése a kezdő szöveg palettájához | N/A | 1 |
| `StartBorderUserPalette` | A DSi profil téma paletta hozzárendelése a kezdő keret palettájához | N/A | 1 |
| `ButtonArrowUserPalette` | A DSi profil téma paletta hozzárendelése a nyíl gombok palettájához, amik a képernyő alján kerülnek megjelenítésre | N/A | 1 |
| `MovingArrowUserPalette` | A DSi profil téma paletta hozzárendelése a nyilak palettájához, amik ikonok mozgatásakor kerülnek megjelenítésre | N/A | 1 |
| `LaunchDotsUserPalette` | A DSi profil téma paletta hozzárendelése az indítási pontok palettájához | N/A | 1 |
| `DialogBoxUserPalette` | A DSi profil téma paletta hozzárendelése a párbeszéd ablak palettájához | N/A | 1 |
| `StartTextUserPalette` | Használja-e a DSi profil színt a kezdő szöveg palettájához | N/A | 1 |
| `StartBorderUserPalette` | Használja-e a DSi profil színt a kezdő keret palettájához | N/A | 1 |
| `ButtonArrowUserPalette` | Használja-e a DSi profil színt a nyíl gombok palettájához, amik a képernyő alján kerülnek megjelenítésre | N/A | 1 |
| `MovingArrowUserPalette` | Használja-e a DSi profil színt a nyilak palettájához, amik ikonok mozgatásakor kerülnek megjelenítésre | N/A | 1 |
| `LaunchDotsUserPalette` | Használja-e a DSi profil színt az indítási pontok palettájához | N/A | 1 |
| `DialogBoxUserPalette` | Használja-e a DSi profil színt a párbeszéd ablak palettájához | N/A | 1 |
## Fejlett témázás
@ -119,7 +119,7 @@ Alkalmanként az alapértelmezettnél számúnál több színre van szükséged,
Például a `scroll_window.grit`-ben szerkesztheted a `-pn7`-et és módosíthatod a `7`-et `16`-ra, hogy 16 színed legyen. Figyelj arra, hogy ha eltávolítod a teljes `-pn` sort, nem várt eredményt kaphatsz.
Szintén figyelj arra, hogy az abszolút maximum 16 szín textúránként kódból betartatott, és így az nem módosítható. Még ha növeled is a paletták számát 16 felé, nem több, mint 16 szín kerül betöltésre a a palettából. A betöltött textúrák mennyiségétől függően, előfordulhat, hogy nincs elég paletta memória ahhoz, hogy 16 színű paletta legyen minden textúrához. Tartsd ezt észben, amikor a paletta méreteket állítod.
Szintén figyelj arra, hogy az abszolút maximum 16 szín textúránként kódból betartatott, és így az nem módosítható. Még ha növeled is a paletta színeinek számát 16 felé, nem több, mint 16 szín kerül betöltésre a a palettából. A betöltött textúrák mennyiségétől függően, előfordulhat, hogy nincs elég paletta memória ahhoz, hogy 16 színű paletta legyen minden textúrához. Tartsd ezt észben, amikor a paletta méreteket állítod.
Továbbá a palettás textúráknak a méretei oszthatók kell legyenek 2-vel. A palettás textúrák mérete nem módosíthatók, kivéve a `bubble` és a `start_border`, amik konfigurálható sprite mérettel rendelkezhetnek a `theme.ini`-ben. Azonban ezek módosítása nem várt eredményeket is okozhat.

View File

@ -40,7 +40,7 @@ V: Homebrew játékokat az [Universal-DB](https://db.universal-team.net/ds)-ből
- DSi-n használhatod a [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases)-t a DS játékaid és a DSiWare dumpolásához
- 3DS-n használhatod a [GodMode9](https://github.com/d0k3/GodMode9/releases)-t a DS játékaid, DSiWare és Virtual Console címek dumpolásához
#### K: A cardridge-ekből a mentéseimet ki tudom rakni az SD kártyámra és visszafelé?
#### Q: Can I get the save files from my game cards onto my SD card or vise versa?
V: Igen, használhatod erre a [GodMode9i](https://github.com/DS-Homebrew/GodMode9i/releases)-t DSi-n és 3DS-en vagy a [Checkpoint](https://github.com/FlagBrew/Checkpoint/releases)-ot 3DS-en.
#### K: Hogyan állítom be a TWiLight Menu++-ban a nyelvet?
@ -50,8 +50,51 @@ V:
1. Módosítsd az első opciót, amíg nem látod a nyelvet, amit szeretnél, majd lépj ki a beállításokból
- Elképzelhető, hogy módosítanád a következő két opciót, ami a DS játékok és címeik nyelvét befolyásolja a a TWiLight Menu++-ben
#### K: Miért nem működik az érintő képernyő a sudokuhax-szal?
V: A sudokuhax mentés fájljától függően az érintő képernyő bevitel előfordulhat, hogy nem működik.
#### Q: What systems does TWiLight Menu++ support?
#### K: Tud a The Biggest Loser bebootolni TWiLight Menu++-vel?
V: Nem. A The Biggest Loser egy Slot-1 játék és nem egy DSiWare játék; az SD hozzáférés tiltott, ha Slot-1 kártyát futtatunk.
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`<br>(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`<br>(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`<br>(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

View File

@ -8,8 +8,107 @@ description: crwdns14932:0crwdne14932:0
---
crwdns12638:0crwdne12638:0 crwdns12640:0crwdne12640:0
### crwdns12642:0crwdne12642:0
![crwdns14476:0crwdne14476:0](crwdns14474:0crwdne14474:0)
[![crwdns15874:0crwdne15874:0](crwdns15872:0crwdne15872:0)](crwdns15870:0crwdne15870:0)
### crwdns12646:0crwdne12646:0
crwdns14478:0crwdne14478:0
crwdns15876:0crwdne15876:0
- [crwdns15880:0crwdne15880:0](crwdns15878:0crwdne15878:0)
- crwdns15882:0crwdne15882:0
- crwdns15884:0crwdne15884:0
- crwdns15886:0crwdne15886:0 crwdns15888:0crwdne15888:0
- crwdns15890:0crwdne15890:0
- crwdns15892:0crwdne15892:0
- crwdns15894:0crwdne15894:0
#### crwdns15896:0crwdne15896:0
[![crwdns15902:0crwdne15902:0](crwdns15900:0crwdne15900:0)](crwdns15898:0crwdne15898:0)
#### crwdns15904:0crwdne15904:0
[![crwdns15910:0crwdne15910:0](crwdns15908:0crwdne15908:0)](crwdns15906:0crwdne15906:0)
#### crwdns15912:0crwdne15912:0
[![crwdns15918:0crwdne15918:0](crwdns15916:0crwdne15916:0)](crwdns15914:0crwdne15914:0)
- crwdns15920:0crwdne15920:0
- crwdns15922:0crwdne15922:0
- crwdns15924:0crwdne15924:0
- crwdns15926:0crwdne15926:0
- crwdns15928:0crwdne15928:0
#### crwdns15930:0crwdne15930:0
[![crwdns15936:0crwdne15936:0](crwdns15934:0crwdne15934:0)](crwdns15932:0crwdne15932:0)
- crwdns15938:0crwdne15938:0
- crwdns15940:0crwdne15940:0
#### crwdns15942:0$gbacrwdne15942:0
crwdns15944:0crwdne15944:0 crwdns15946:0crwdne15946:0
1. crwdns15948:0crwdne15948:0
1. crwdns15950:0crwdne15950:0
1. crwdns15952:0crwdne15952:0
1. crwdns15954:0$gbacrwdne15954:0
- crwdns15956:0crwdne15956:0
- crwdns15958:0crwdne15958:0
#### crwdns15960:0crwdne15960:0
1. crwdns15962:0crwdne15962:0
1. crwdns15964:0crwdne15964:0 crwdns16064:0crwdne16064:0 crwdns16066:0crwdne16066:0
1. crwdns15970:0crwdne15970:0
1. crwdns16068:0crwdne16068:0
1. crwdns15974:0crwdne15974:0 crwdns15976:0crwdne15976:0
1. crwdns15978:0crwdne15978:0
- crwdns15980:0crwdne15980:0
- crwdns15982:0crwdne15982:0
1. crwdns15984:0crwdne15984:0
1. crwdns15986:0crwdne15986:0
1. crwdns15988:0crwdne15988:0
#### crwdns15990:0crwdne15990:0
1. crwdns15992:0crwdne15992:0
- crwdns15994:0crwdne15994:0
1. crwdns15996:0crwdne15996:0
1. crwdns15998:0crwdne15998:0
1. crwdns16000:0crwdne16000:0
1. crwdns16002:0crwdne16002:0
1. crwdns16004:0crwdne16004:0
- crwdns16006:0crwdne16006:0
- crwdns16008:0crwdne16008:0
1. crwdns16010:0crwdne16010:0
1. crwdns16012:0crwdne16012:0
1. crwdns16014:0crwdne16014:0
1. crwdns16016:0crwdne16016:0
1. crwdns16018:0crwdne16018:0
- crwdns16020:0crwdne16020:0
1. crwdns16022:0crwdne16022:0
- crwdns16024:0crwdne16024:0
- `crwdns16026:0{device-name}crwdne16026:0`
- crwdns16070:0{device-name}crwdne16070:0
- crwdns16030:0crwdne16030:0
- crwdns16032:0{device-name}crwdne16032:0
1. crwdns16034:0crwdne16034:0
1. crwdns16036:0crwdne16036:0
- crwdns16072:0crwdne16072:0
- crwdns16074:0crwdne16074:0
1. crwdns16042:0crwdne16042:0
1. crwdns16044:0crwdne16044:0
1. crwdns16046:0crwdne16046:0
1. crwdns16048:0crwdne16048:0
1. crwdns16050:0crwdne16050:0
1. crwdns16052:0crwdne16052:0
- `crwdns16054:0{existing-nand-backup}crwdnd16054:0{device-name}crwdne16054:0`
- crwdns16056:0{existing-nand-backup}crwdne16056:0
- crwdns16058:0{device-name}crwdne16058:0
crwdns16060:0crwdne16060:0 crwdns16062:0crwdne16062:0

View File

@ -12,7 +12,7 @@ crwdns12668:0crwdne12668:0 crwdns12670:0crwdne12670:0 crwdns12672:0crwdne12672:0
```bash
crwdns12676:0crwdne12676:0
```
crwdns12678:0crwdne12678:0 crwdns12680:0crwdne12680:0 crwdns14752:0crwdne14752:0
crwdns12678:0crwdne12678:0 crwdns12680:0crwdne12680:0 crwdns16076:0crwdne16076:0
crwdns12684:0crwdne12684:0 crwdns12686:0crwdne12686:0
@ -37,7 +37,7 @@ crwdns15760:0crwdne15760:0
| crwdns12720:0crwdne12720:0 | crwdns12722:0crwdne12722:0 | crwdns12724:0crwdne12724:0 |
| -------------------------- | -------------------------- | -------------------------- |
| crwdns12726:0crwdne12726:0 | crwdns12728:0crwdne12728:0 | |
| crwdns12730:0crwdne12730:0 | crwdns14754:0crwdne14754:0 | |
| crwdns12730:0crwdne12730:0 | crwdns16078:0crwdne16078:0 | |
| crwdns12734:0crwdne12734:0 | crwdns12736:0crwdne12736:0 | crwdns12738:0crwdne12738:0 |
| crwdns12740:0crwdne12740:0 | crwdns12742:0crwdne12742:0 | crwdns12744:0crwdne12744:0 |
| crwdns12746:0crwdne12746:0 | crwdns12748:0crwdne12748:0 | crwdns12750:0crwdne12750:0 |
@ -65,7 +65,7 @@ crwdns15760:0crwdne15760:0
| crwdns12878:0crwdne12878:0 | crwdns12880:0crwdne12880:0 | crwdns12882:0crwdne12882:0 |
| crwdns12884:0crwdne12884:0 | crwdns12886:0crwdne12886:0 | |
| crwdns12888:0crwdne12888:0 | crwdns12890:0crwdne12890:0 | |
| crwdns12892:0crwdne12892:0 | crwdns14756:0crwdne14756:0 | crwdns12896:0crwdne12896:0 |
| crwdns12892:0crwdne12892:0 | crwdns16080:0crwdne16080:0 | crwdns12896:0crwdne12896:0 |
| crwdns12898:0crwdne12898:0 | crwdns12900:0crwdne12900:0 | crwdns12902:0crwdne12902:0 |
### crwdns12904:0crwdne12904:0
@ -101,17 +101,17 @@ crwdns15772:0crwdne15772:0
| `crwdns15366:0crwdne15366:0` | crwdns15368:0crwdne15368:0 | crwdns15370:0crwdne15370:0 | crwdns15372:0crwdne15372:0 |
| `crwdns15374:0crwdne15374:0` | crwdns15376:0crwdne15376:0 | crwdns15378:0crwdne15378:0 | crwdns15380:0crwdne15380:0 |
| `crwdns15382:0crwdne15382:0` | crwdns15384:0crwdne15384:0 | crwdns15386:0crwdne15386:0 | crwdns15388:0crwdne15388:0 |
| `crwdns15390:0crwdne15390:0` | crwdns15392:0crwdne15392:0 | crwdns15394:0crwdne15394:0 | crwdns15396:0crwdne15396:0 |
| `crwdns15390:0crwdne15390:0` | crwdns16082:0crwdne16082:0 | crwdns15394:0crwdne15394:0 | crwdns15396:0crwdne15396:0 |
| `crwdns15398:0crwdne15398:0` | crwdns15400:0crwdne15400:0 | crwdns15402:0crwdne15402:0 | crwdns15404:0crwdne15404:0 |
| `crwdns15406:0crwdne15406:0` | crwdns15408:0crwdne15408:0 | crwdns15410:0crwdne15410:0 | crwdns15412:0crwdne15412:0 |
| `crwdns15414:0crwdne15414:0` | crwdns15416:0crwdne15416:0 | crwdns15418:0crwdne15418:0 | crwdns15420:0crwdne15420:0 |
| `crwdns15422:0crwdne15422:0` | crwdns15424:0crwdne15424:0 | crwdns15426:0crwdne15426:0 | crwdns15428:0crwdne15428:0 |
| `crwdns15430:0crwdne15430:0` | crwdns15432:0crwdne15432:0 | crwdns15434:0crwdne15434:0 | crwdns15436:0crwdne15436:0 |
| `crwdns15438:0crwdne15438:0` | crwdns15440:0crwdne15440:0 | crwdns15442:0crwdne15442:0 | crwdns15444:0crwdne15444:0 |
| `crwdns15446:0crwdne15446:0` | crwdns15448:0crwdne15448:0 | crwdns15450:0crwdne15450:0 | crwdns15452:0crwdne15452:0 |
| `crwdns15454:0crwdne15454:0` | crwdns15456:0crwdne15456:0 | crwdns15458:0crwdne15458:0 | crwdns15460:0crwdne15460:0 |
| `crwdns15462:0crwdne15462:0` | crwdns15464:0crwdne15464:0 | crwdns15466:0crwdne15466:0 | crwdns15468:0crwdne15468:0 |
| `crwdns15470:0crwdne15470:0` | crwdns15472:0crwdne15472:0 | crwdns15474:0crwdne15474:0 | crwdns15476:0crwdne15476:0 |
| `crwdns15430:0crwdne15430:0` | crwdns16084:0crwdne16084:0 | crwdns15434:0crwdne15434:0 | crwdns15436:0crwdne15436:0 |
| `crwdns15438:0crwdne15438:0` | crwdns16086:0crwdne16086:0 | crwdns15442:0crwdne15442:0 | crwdns15444:0crwdne15444:0 |
| `crwdns15446:0crwdne15446:0` | crwdns16088:0crwdne16088:0 | crwdns15450:0crwdne15450:0 | crwdns15452:0crwdne15452:0 |
| `crwdns15454:0crwdne15454:0` | crwdns16090:0crwdne16090:0 | crwdns15458:0crwdne15458:0 | crwdns15460:0crwdne15460:0 |
| `crwdns15462:0crwdne15462:0` | crwdns16092:0crwdne16092:0 | crwdns15466:0crwdne15466:0 | crwdns15468:0crwdne15468:0 |
| `crwdns15470:0crwdne15470:0` | crwdns16094:0crwdne16094:0 | crwdns15474:0crwdne15474:0 | crwdns15476:0crwdne15476:0 |
## crwdns13192:0crwdne13192:0
@ -119,12 +119,12 @@ crwdns15778:0crwdne15778:0 crwdns15780:0crwdne15780:0
crwdns15782:0crwdne15782:0 crwdns15784:0crwdne15784:0
crwdns15786:0crwdne15786:0 crwdns15788:0crwdne15788:0 crwdns15790:0crwdne15790:0 crwdns15792:0crwdne15792:0
crwdns15786:0crwdne15786:0 crwdns16096:0crwdne16096:0 crwdns15790:0crwdne15790:0 crwdns15792:0crwdne15792:0
crwdns15794:0crwdne15794:0 crwdns15796:0crwdne15796:0 crwdns15798:0crwdne15798:0
crwdns15800:0crwdne15800:0 crwdns15802:0crwdne15802:0
## crwdns14774:0crwdne14774:0
## crwdns16098:0crwdne16098:0
crwdns15804:0crwdne15804:0 crwdns15806:0crwdne15806:0

View File

@ -40,7 +40,7 @@ crwdns15602:0crwdne15602:0 crwdns15710:0crwdne15710:0
- crwdns15716:0crwdne15716:0
- crwdns15718:0crwdne15718:0
#### crwdns15606:0crwdne15606:0
#### crwdns16274:0crwdne16274:0
crwdns15608:0crwdne15608:0
#### crwdns15610:0crwdne15610:0
@ -50,8 +50,47 @@ crwdns15612:0crwdne15612:0
1. crwdns15618:0crwdne15618:0
- crwdns15620:0crwdne15620:0
#### crwdns15622:0crwdne15622:0
crwdns15624:0crwdne15624:0
#### crwdns16104:0crwdne16104:0
#### crwdns15626:0crwdne15626:0
crwdns15628:0crwdne15628:0 crwdns15630:0crwdne15630:0
crwdns16106:0crwdne16106:0
| crwdns16108:0crwdne16108:0 | crwdns16110:0crwdne16110:0 | crwdns16112:0crwdne16112:0 | crwdns16114:0crwdne16114:0 |
| ---------------------------------------------- | ----------------------------------------- | ---------------------------- | ---------------------------- |
| [crwdns16118:0crwdne16118:0][nds-hb-menu-argv] | crwdns16120:0crwdne16120:0 | `crwdns16122:0crwdne16122:0` | |
| crwdns16124:0crwdne16124:0 | [crwdns16128:0crwdne16128:0][stellads] | `crwdns16130:0crwdne16130:0` | |
| crwdns16132:0crwdne16132:0 | [crwdns16136:0crwdne16136:0][a5200ds] | `crwdns16138:0crwdne16138:0` | |
| crwdns16140:0crwdne16140:0 | [crwdns16144:0crwdne16144:0][a7800ds] | `crwdns16146:0crwdne16146:0` | |
| crwdns16148:0crwdne16148:0 | crwdns16150:0crwdne16150:0 | crwdns16152:0crwdne16152:0 | crwdns16154:0crwdne16154:0 |
| crwdns16156:0crwdne16156:0 | [crwdns16160:0crwdne16160:0][unlaunch] | crwdns16162:0crwdne16162:0 | crwdns16164:0crwdne16164:0 |
| crwdns16166:0crwdne16166:0 | crwdns16168:0crwdne16168:0 | `crwdns16170:0crwdne16170:0` | |
| crwdns16172:0crwdne16172:0 | [crwdns16176:0crwdne16176:0][gameyob] | crwdns16178:0crwdne16178:0 | `crwdns16180:0crwdne16180:0` |
| crwdns16182:0crwdne16182:0 | crwdns16184:0crwdne16184:0 | crwdns16186:0crwdne16186:0 | `crwdns16188:0crwdne16188:0` |
| crwdns16190:0crwdne16190:0 | [crwdns16194:0crwdne16194:0][s8ds] | `crwdns16196:0crwdne16196:0` | `crwdns16198:0crwdne16198:0` |
| crwdns16200:0crwdne16200:0 | crwdns16202:0crwdne16202:0 | `crwdns16204:0crwdne16204:0` | crwdns16206:0crwdne16206:0 |
| crwdns16208:0crwdne16208:0 | [crwdns16212:0crwdne16212:0][s8ds] | `crwdns16214:0crwdne16214:0` | `crwdns16216:0crwdne16216:0` |
| crwdns16218:0crwdne16218:0 | [crwdns16222:0crwdne16222:0][mpeg4player] | `crwdns16224:0crwdne16224:0` | |
| crwdns16226:0crwdne16226:0 | [crwdns16230:0crwdne16230:0][nesds] | crwdns16232:0crwdne16232:0 | `crwdns16234:0crwdne16234:0` |
| crwdns16236:0crwdne16236:0 | [crwdns16240:0crwdne16240:0][nitrografx] | `crwdns16242:0crwdne16242:0` | |
| crwdns16244:0crwdne16244:0 | [crwdns16248:0crwdne16248:0][rvidplayer] | `crwdns16250:0crwdne16250:0` | |
| crwdns16252:0crwdne16252:0 | [crwdns16256:0crwdne16256:0][snemulds] | crwdns16258:0crwdne16258:0 | crwdns16260:0crwdne16260:0 |
#### crwdns16262:0crwdne16262:0
crwdns16264:0crwdne16264:0
#### crwdns16266:0crwdne16266:0
crwdns16268:0crwdne16268:0 crwdns16270:0crwdne16270:0
[a5200ds]: crwdns16134:0crwdne16134:0
[a7800ds]: crwdns16142:0crwdne16142:0
[gameyob]: crwdns16174:0crwdne16174:0
[mpeg4player]: crwdns16220:0crwdne16220:0
[nds-hb-menu-argv]: crwdns16116:0crwdne16116:0
[nesds]: crwdns16228:0crwdne16228:0
[nitrografx]: crwdns16238:0crwdne16238:0
[rvidplayer]: crwdns16246:0crwdne16246:0
[s8ds]: crwdns16192:0crwdne16192:0
[s8ds]: crwdns16210:0crwdne16210:0
[snemulds]: crwdns16254:0crwdne16254:0
[stellads]: crwdns16126:0crwdne16126:0
[unlaunch]: crwdns16158:0crwdne16158:0

View File

@ -1,36 +1,36 @@
---
lang: en-US
lang: it-IT
layout: wiki
section: ds-index
category: guides
title: DS game forwarders (3DS)
description: How to create CIA forwarders to have your DS games on your 3DS's home menu
title: Scorciatoie giochi del DS (3DS)
description: Come creare scorciatoie CIA per avere i tuoi giochi DS nel menu home del tuo 3DS
---
If you have any issues, check the FAQs on the [GBAtemp thread](https://gbatemp.net/threads/nds-forwarder-cias-for-your-home-menu.426174/).
Se hai qualche problema, controlla le FAQ sul thread [GBAtemp](https://gbatemp.net/threads/nds-forwarder-cias-for-your-home-menu.426174/).
{:.alert .alert-warning}
### Requirements
### Requisiti
3DS:
- [Luma3DS](https://github.com/lumateam/luma3ds/releases), or any other CFW that patches TWL_NAND
- [FBI](https://github.com/Steveice10/FBI/releases) to install CIA files
- (Optional) A supported DS flashcard
- [Luma3DS](https://github.com/lumateam/luma3ds/releases), o qualsiasi altro CFW che patcha TWL_NAND
- [FBI](https://github.com/Steveice10/FBI/releases) per installare i file CIA
- (Facoltativa) Una flashcard DS supportata
{% capture flashcards %}
The recommended flashcards are the DSTT and Acekard 2i. If you want perfect game compatibility, get the SuperCard DSTWO / DSTWO PLUS. The only downside is that it drains your system battery faster.
Le flashcard raccomandate sono DSTT e Acekard 2i. Se vuoi una perfetta compatibilità con i giochi, prendi la SuperCard DSTWO / DSTWO PLUS. L'unico svantaggio è che svuota la batteria del sistema più velocemente.
If you have a flashcard that works with Apache Thunder's NTR Launcher, feel free to request it [on the GBAtemp thread](https://gbatemp.net/threads/nds-forwarder-cias-for-your-home-menu.426174/). Be sure to specify which build you're using (Normal or Alt), and if `RESETSLOT1` is set to `0` or `1` in `sd:/nds/ntr_launcher.ini`.
Se hai una flashcard che funziona con il Launcher NTR di Apache Thunder, non esitare a richiederla [sul thread GBAtemp](https://gbatemp.net/threads/nds-forwarder-cias-for-your-home-menu.426174/). Assicurati di specificare quale build stai usando (Normale o Alt), e se `RESETSLOT1` è impostato a `0` o `1` in `sd:/nds/ntr_launcher. ni`.
Compatible:
- [Acekard 2(i)](http://www.nds-card.com/ProShow.asp?ProID=160) (DSi-Enhanced games, including newer NTR games, don't work.)
Compatibile:
- [Acekard 2(i)](http://www.nds-card.com/ProShow.asp?ProID=160) (i giochi DSi-Enhanced, compresi i giochi più recenti NTR, non funzionano.)
- [Acekard RPG](http://wiki.gbatemp.net/wiki/Acekard_RPG)
- [DSTT](http://www.nds-card.com/ProShow.asp?ProID=157)
- [DSTT Advance](http://kaze-tado.way-nifty.com/moo/images/2008/11/19/200811202.jpg)
- Galaxy Eagle
- M3 DS Real
- [M3 DS Simply](https://farm2.static.flickr.com/1333/752793411_d91b182eb7.jpg) (uses <2GB microSD card)
- [R4 DS](http://www.nds-card.com/ProShow.asp?ProID=141) (Original Non-SDHC version, uses <2GB microSD card)
- [M3 DS Simply](https://farm2.static.flickr.com/1333/752793411_d91b182eb7.jpg) (utilizza una <scheda microSD da 2GB)
- [R4 DS](http://www.nds-card.com/ProShow.asp?ProID=141) (versione originale non-SDHC, utilizza una <scheda microSD da 2GB)
- [R4 SDHC Snoopy](http://www.nds-card.com/ProShow.asp?ProID=567)
- [R4 SDHC RTS LITE](http://www.nds-card.com/ProShow.asp?ProID=450) ([www.r4isdhc.com](http://www.r4isdhc.com/))
- R4 SDHC Upgrade ([www.r4i-sdhc.com](http://www.r4i-sdhc.com/))
@ -38,48 +38,48 @@ Compatible:
- [R4iDSN](http://3ds-flashcard.com/home/28-r4idsn-3ds.html)
- [R4i Gold](http://www.nds-card.com/ProShow.asp?ProID=330)
- [R4i Gold RTS](http://www.nds-card.com/ProShow.asp?ProID=149) ([www.r4ids.cn](http://www.r4ids.cn/))
- [R4i-SDHC](http://www.nds-card.com/ProShow.asp?ProID=146) ([www.r4i-sdhc.com](http://www.r4i-sdhc.com)) (Normal and RTS versions)
- R4iTT ([www.r4itt.net](http://www.r4itt.net/)) (Purple card may be incompatible)
- [R4i-SDHC](http://www.nds-card.com/ProShow.asp?ProID=146) ([www.r4i-sdhc.com](http://www.r4i-sdhc.com)) (Versione Normale e RTS)
- R4iTT ([www.r4itt.net](http://www.r4itt.net/)) (La Purple card potrebbe essere incompatible)
- [SuperCard DSONE](http://wiki.gbatemp.net/wiki/SuperCard_DSONEi)
- [SuperCard DSTWO](http://www.nds-card.com/ProShow.asp?ProID=135) (Normal and Plus versions)
- [SuperCard DSTWO](http://www.nds-card.com/ProShow.asp?ProID=135) (versioni Normale e Plus)
Untested:
- R4i3D NEW (Use R4iDSN template and pack)
Non Testato:
- R4i3D NUOVO (utilizza modello e pacchetto R4iDSN)
Partially compatible:
- Ace 3DS+ (Game compatibility is bad, so saving/loading save file results in crashing.)
- Gateway Blue Card (Game compatibility is bad, so saving/loading save file results in crashing.)
- EX4DS (Game compatibility is bad, so saving/loading save file results in crashing.)
- R4iLS (Game compatibility is bad, so saving/loading save file results in crashing.)
- Cards with [www.r4isdhc.com.cn](http://www.r4isdhc.com.cn/) (Game compatibility is bad, so saving/loading save file results in crashing.)
Parzialmente compatibile:
- Ace 3DS+ (compatibilità con i giochi pessima, quindi il salvataggio/caricamento dei file di salvataggio risulta in un crash.)
- Gateway Blue Card (compatibilità con i giochi pessima, quindi il salvataggio/caricamento dei file di salvataggio risulta in un crash.)
- EX4DS (compatibilità con i giochi pessima, quindi il salvataggio/caricamento dei file di salvataggio risulta in un crash.)
- R4iLS (compatibilità con i giochi pessima, quindi il salvataggio/caricamento dei file di salvataggio risulta in un crash.)
- Le flashcard con [www.r4isdhc.com.cn](http://www.r4isdhc.com.cn/) (La compatibilità con i giochi è pessima, quindi il salvataggio/caricamento dei file risulta in crash.)
Incompatible:
- CycloDS (i)Evolution (Can autoboot ROMs, but it works differently than other flashcards.)
- (i)Edge (Unable to autoboot a .nds ROM)
- R4 Gold Pro ([www.r4i-gold.com](http://www.r4i-gold.com)/[www.r4i-gold.me](http://www.r4i-gold.me)) (YSMenu (not the forwarder process) bricks the card)
Incompatibile:
- CycloDS (i)Evolution (Può auto-avviare le ROM, ma funziona in modo diverso rispetto ad altre flashcard.)
- (i)Edge (Impossibile effettuare l'autoboot di una .nds ROM)
- R4 Gold Pro ([www.r4i-gold.com](http://www.r4i-gold.com)/[www.r4i-gold.me](http://www.r4i-gold.me)) (YSMenu (non il processo di scorciatoia) rende inutilizzabile la card)
- R4i3D (2012)
- R4 Infinity Dual Core
- R4 SDHC
- R4 SDHC Dual-Core ([www.r4isdhc.com](http://www.r4isdhc.com/)) (YSMenu (not the forwarder process) bricks the card)
- R4 SDHC Dual-Core ([www.r4isdhc.com](http://www.r4isdhc.com/)) (YSMenu (non il processo di scorciatoia) rende inutilizzabile la card)
{% endcapture %}
<details>
<summary>Supported flashcards</summary>
<summary>Flashcard supportate</summary>
<div class="details-content">
{{ flashcards | markdownify }}
</div>
</details>
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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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: <https://3ds.hacks.guide/troubleshooting#dsi--ds-functionality-is-broken-after-completing-the-guide>
#### QTWiLight Menu++を起動する時に、3DS2DSが黒い画面で動かなく、クラッシュする、電源を切るなどのはなぜですか
ATWL_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
#### QTWiLight 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 <kbd class="l">L</kbd> 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/`
#### QSDカードからゲームを読み込みようとすると、白い画面が表示されるのはなぜですか
A
- まず、[nds-bootstrapの互換性リスト](https://docs.google.com/spreadsheets/d/1LRTkXOUXraTMjg1eedz_f7b5jiuyMv2x6e_jY_nyHSc/htmlview#gid=0)を確認して、ゲームに互換性があることを確認してください
- いくつかのチートは現時点でnds-bootstrapと互換性がないため、そのゲームのすべてのチートを無効にしましたをお試してください。<kbd class="l">L</kbd>を使って、ゲームのすべてのチートを無効にできます。
- 起動しようとしているゲームが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.
#### QDSiテーマの上画面にカスタム画像を表示するにはどうすればよいですか
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 <kbd>SELECT</kbd> while loading TWiLight Menu++
1. Press <kbd class="l">L</kbd> or <kbd class="face">Y</kbd> 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++
#### QTWiLight Menu++の言語を変更するにはどうしたらよいですか?
A
1. TWiLight Menu++設定を開きます。これを行うには、TWiLight Menu++を読み込んでいる間に<kbd>SELECT</kbd>を押し続けます
1. <kbd class="l">L</kbd>または<kbd class="face">Y</kbd>を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.
#### QTWiLight 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`<br>小売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`<br>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`<br>(フラッシュカードのみ) |
#### Qsudokuhaxからタッチ入力がうまくいかないのはなぜですか
Asudokuhaxのセーブファイルによっては、タッチ画面の入力が動作しない場合があります。
#### QThe 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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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**.

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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 이후의 버전이라면, 이 단계를 따르도록 합니다.

View File

@ -16,7 +16,7 @@ v16.4.0보다 낮은 버전에서 업데이트 한다면, `saves`폴더를 DS
1. 사이드바에서 <kbd class="face">A</kbd>를 누르거나 다운로드 아이콘을 터치한 후, `TWiLight Menu++`를 선택해서 설치를 진행하세요.
- 시간이 조금 걸릴 수 있습니다.
### Flashcard 단을 위해서 더 할 것
### Flashcard를 위한 추가적인 단계
TWLMenu++내의 SD 카드와 Flashcard 간의 내용물을 전환하고 싶거나, Flashcard의 TWLMenu++가 v16.3.0 이후의 버전이라면, 이 단계를 따르도록 합니다.

View File

@ -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 이후의 버전이라면, 이 단계를 따르도록 합니다.

View File

@ -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 이후의 버전이라면, 이 단계를 따르도록 합니다.

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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<sup>(i)</sup> Mode Hacking!](https://ds-homebrew.com/discord) Discord server. (English only)
Если вам нужна помощь, спросите в [DS<sup>(i)</sup> Mode Hacking!](https://ds-homebrew.com/discord) сервер Discord. (ВНИМАНИЕ: Сервер только на английском языке!)
{:.alert .alert-info}

View File

@ -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<sup>(i)</sup> 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<sup>(i)</sup> Mode Hacking](https://ds-homebrew.com/discord) серверу Discord (ВНИМАНИЕ: сервер на английском языке).

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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.
Для получения информации о том, как установить, нажмите на страницу в боковой панели для игровой консоли в секции Установка.

View File

@ -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

View File

@ -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)<br> ![Universal-Updater QR code](https://db.universal-team.net/assets/images/qr/universal-updater.cia.png)
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: ![TWiLight Menu++ icon](https://raw.githubusercontent.com/DS-Homebrew/TWiLightMenu/master/booter/icon.bmp)
1. Press <kbd class="face">A</kbd> 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).<br> ![Universal-Updater QR код](https://db.universal-team.net/assets/images/qr/universal-updater.cia.png)
1. Закройте FBI и запустите Universal-Updater.
- Если оно не появляется в главном меню, перезагрузите 3DS.
1. Найдите TWiLight Menu + + в сетке приложений, вы сможете найти с помощью третьей вкладки на боковой панели, если у вас возникли проблемы с ее нахождением, то:
- Оно имеет такую иконку: ![TWiLight Menu++ icon](https://raw.githubusercontent.com/DS-Homebrew/TWiLightMenu/master/booter/icon.bmp)
1. Нажмите <kbd class="face">A</kbd> или нажмите на значок загрузки в боковой панели и выберите `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: ![TWiLight Menu++ icon](https://raw.githubusercontent.com/DS-Homebrew/TWiLightMenu/master/booter/icon.bmp)
1. Press <kbd class="face">A</kbd> 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 + + в сетке приложений, вы сможете найти с помощью третьей вкладки на боковой панели, если у вас возникли проблемы с ее нахождением, то:
- Оно имеет такую иконку: ![Иконка TWiLight Menu++](https://raw.githubusercontent.com/DS-Homebrew/TWiLightMenu/master/booter/icon.bmp)
1. Нажмите <kbd class="face">A</kbd> или нажмите на значок загрузки в боковой панели и выберите `TWiLight Menu++` для его установки.
- Загрузка может занять некоторое время.

View File

@ -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`.

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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

View File

@ -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
![Original DS motherboard with touch-points labeled](https://media.discordapp.net/attachments/547986366357700620/736370094392999947/mobo_pinout.png)
[![Original DS motherboard with touch-points labeled](/assets/images/ds-hardmod/mobo_pinout.png)](/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
[![DSi side A pinouts](/assets/images/dsi-hardmod/side_a.jpg)](/assets/images/dsi-hardmod/side_a.jpg)
#### DSi side B pinouts
[![DSi side B pinouts](/assets/images/dsi-hardmod/side_b.png)](/assets/images/dsi-hardmod/side_b.png)
#### DSi XL side B pinouts
[![DSi XL side B pinouts](/assets/images/dsi-hardmod/dsi_xl_side_b.png)](/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
[![microSD example](/assets/images/dsi-hardmod/sd.jpg)](/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!

View File

@ -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.

View File

@ -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`<br>(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`<br>(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`<br>(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