Skip to content

Commit 3c03e4a

Browse files
authored
Add a documentation page for melonDS DS (#1019)
* Add an entry for melonDS DS - Also retitle the older core as "melonDS 2021" * First draft of melonDS DS doc page * Update some melonDS DS doc links * Update docs about melonDS DS's BIOs usage * Add the melonDS 2021 migration guide * Update info about the core geometry * Fix incorrect info about DSiWare metadata * Add details about subsystems * Fix some incorrect footnotes * Add more info about melonDS DS * Add a line about the virtual cursor * Actually, it looks nicer here
1 parent d52f139 commit 3c03e4a

11 files changed

+312
-10
lines changed

docs/development/licenses.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ See below for a summary of the licenses behind RetroArch and its cores:
147147
| MAME 2010 | [MAME (Non-commercial)](https://github.com/libretro/mame2010-libretro/blob/master/docs/mame.txt) | Non-commercial |
148148
| MAME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial |
149149
| MAME 2016 | [BSD-3-Clause & GNU GPLv2](http://mamedev.org/legal.html) | |
150-
| [melonDS](../library/melonds.md) | [GPLv3](https://github.com/libretro/melonDS/blob/master/LICENSE) | |
150+
| [melonDS 2021](../library/melonds.md) | [GPLv3](https://github.com/libretro/melonDS/blob/master/LICENSE) | |
151+
| [melonDS DS](../library/melonds_ds.md) | [GPLv3](https://github.com/JesseTG/melonds-ds/blob/main/LICENSE) | |
151152
| [Mesen](../library/mesen.md) | [GPLv3](https://github.com/SourMesen/Mesen/blob/master/README.md) | |
152153
| [Mesen-S](../library/mesen-s.md) | [GPLv3](https://github.com/SourMesen/Mesen-S/blob/master/README.md) | |
153154
| MESS 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial |
@@ -202,7 +203,7 @@ See below for a summary of the licenses behind RetroArch and its cores:
202203
| [TyrQuake](../library/tyrquake.md) | [GPLv2](https://github.com/libretro/tyrquake/blob/master/gnu.txt) | |
203204
| UME 2014 | [MAME (Non-commercial)](https://github.com/libretro/mame2014-libretro/blob/master/docs/license.txt) | Non-commercial |
204205
| [Uzem](../library/uzem.md) | [GPLv3](https://github.com/Uzebox/uzebox/blob/master/gpl-3.0.txt) | |
205-
| [VaporSpec](../library/vaporspec.md) | [MIT](https://github.com/minkcv/vm/blob/master/LICENSE.md)
206+
| [VaporSpec](../library/vaporspec.md) | [MIT](https://github.com/minkcv/vm/blob/master/LICENSE.md)
206207
| [VBA-M](../library/vba_m.md) | [GPLv2](https://github.com/libretro/vbam-libretro/blob/master/doc/gpl.txt) | |
207208
| [VBA Next](../library/vba_next.md) | [GPLv2](https://github.com/libretro/vba-next/blob/master/LICENSE) | |
208209
| [vecx](../library/vecx.md) | [GPLv3](https://github.com/libretro/libretro-vecx/blob/master/LICENSE.md) | |

docs/guides/core-list.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@
121121
| MAME 2010 | Arcade/Console/various | (See MAME note) |
122122
| MAME 2015 | Arcade/Console/various | (See MAME note) |
123123
| MAME 2016 | Arcade/Console/various | (See MAME note) |
124-
| melonDS | Nintendo DS | |
124+
| melonDS 2021 | Nintendo DS | |
125+
| melonDS DS | Nintendo DS/DSi | Enhanced remake of the melonDS core based on a newer version of the emulator. |
125126
| Mesen | Nintendo NES/Famicom | |
126127
| Mesen-S | Nintendo SNES/SFC/Game Boy/Color | |
127128
| MESS 2015 | Multi (various) | (See MAME note) |

docs/guides/retroachievements.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,8 @@ You can also check the progress of your friends and add comments on their trophi
181181

182182
| Core | Supported | Notes |
183183
|---------------------------------------------------------|:---------:|:------|
184-
| [MelonDS](https://github.com/libretro/melonDS) || External BIOS recommended, but no longer required. RetroArch 1.9.14 nightly or newer required for hashing to work. DSi mode currently is not supported for achievements. |
184+
| [MelonDS 2021](https://github.com/libretro/melonDS) || External BIOS recommended, but no longer required. RetroArch 1.9.14 nightly or newer required for hashing to work. DSi mode currently is not supported for achievements. |
185+
| [MelonDS DS](https://github.com/JesseTG/melonds-ds) || Achievements supported for DS and DSi mode. |
185186
| [DeSmuME](https://github.com/libretro/desmume) || External BIOS recommended, needs to be enabled in core options |
186187
| [DeSmuME 2015](https://github.com/libretro/desmume2015) || |
187188

docs/guides/softpatching.md

+6
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ rom.ips2
2727
|--------------------------------------------|:---------:|
2828
| [Gearcoleco](../library/gearcoleco.md) ||
2929

30+
### Nintendo - DS
31+
32+
| Core | Supported |
33+
|------------------------------------|:---------:|
34+
| [melonDS DS](../library/melonds_ds.md) ||
35+
3036
### Nintendo - Game Boy / Color
3137

3238
| Core | Supported |

docs/library/bios.md

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ Arcade | SAME_CDI | [BIOS information](same_cdi
5353
ColecoVision | Gearcoleco | [BIOS information](gearcoleco.md#bios)
5454
Dreamcast | Flycast | [BIOS information](flycast.md#bios)
5555
DS | DeSmuME | [BIOS information](desmume.md#bios)
56+
DS | melonDS DS | [BIOS information](melonds_ds.md#bios)
5657
Elektronika - BK-0010/BK-0011 | bk | [BIOS information](bk.md#bios)
5758
Enterprise 128 | ep128emu | [BIOS information](ep128emu.md#bios)
5859
GameBoy/GameBoy Color | Emux GB | [BIOS information](emux_gb.md#bios)

docs/library/desmume.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -406,4 +406,5 @@ Same as upstream standalone.
406406
#### Nintendo - Nintendo DS + Decrypted + (Download Play)
407407

408408
- [Nintendo - DS (DeSmuME 2015)](desmume_2015.md)
409-
- [Nintendo - DS (melonDS)](melonds.md)
409+
- [Nintendo - DS (melonDS 2021)](melonds.md)
410+
- [Nintendo - DS (melonDS DS)](melonds_ds.md)

docs/library/desmume_2015.md

+6-3
Original file line numberDiff line numberDiff line change
@@ -377,14 +377,17 @@ The DeSmuME 2015 core supports the following device type(s) in the controls menu
377377
#### Nintendo - Nintendo DS (Download Play)
378378

379379
- [Nintendo - DS (DeSmuME)](desmume.md)
380-
- [Nintendo - DS (melonDS)](melonds.md)
380+
- [Nintendo - DS (melonDS 2021)](melonds.md)
381+
- [Nintendo - DS (melonDS DS)](melonds_ds.md)
381382

382383
#### Nintendo - Nintendo DS Decrypted
383384

384385
- [Nintendo - DS (DeSmuME)](desmume.md)
385-
- [Nintendo - DS (melonDS)](melonds.md)
386+
- [Nintendo - DS (melonDS 2021)](melonds.md)
387+
- [Nintendo - DS (melonDS DS)](melonds_ds.md)
386388

387389
#### Nintendo - Nintendo DS
388390

389391
- [Nintendo - DS (DeSmuME)](desmume.md)
390-
- [Nintendo - DS (melonDS)](melonds.md)
392+
- [Nintendo - DS (melonDS 2021)](melonds.md)
393+
- [Nintendo - DS (melonDS DS)](melonds_ds.md)

docs/library/melonds.md

+7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
An up-and-coming Nintendo DS emulator by Arisotura, ported to libretro.
66

7+
!!! warning "This is the older version!"
8+
This version of the melonDS core is obsolete and unmaintained.
9+
You are encouraged to migrate to [melonDS DS](melonds_ds.md),
10+
which is based on a newer version of the original emulator,
11+
has more features, and is easier to use.
12+
713
### Author/License
814

915
The melonDS core has been authored by
@@ -149,3 +155,4 @@ The melonDS core supports the following device type(s) in the controls menu, bol
149155

150156
- [Nintendo - DS (DeSmuME 2015)](desmume_2015.md)
151157
- [Nintendo - DS (DeSmuME)](desmume.md)
158+
- [Nintendo - DS (melonDS DS)](melonds_ds.md)

docs/library/melonds_ds.md

+279
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
1+
# Nintendo - DS (melonDS DS)
2+
3+
## Background
4+
5+
A Nintendo DS emulator (with DSi support) by Arisotura and friends,
6+
ported to libretro by Jesse Talavera.
7+
8+
!!! info "This is the newer version!"
9+
This version of the melonDS core is based on a newer version of the original emulator,
10+
and has more features than the older [melonDS core](melonds.md).
11+
Use this one unless you're not ready to migrate.
12+
13+
14+
### Author/License
15+
16+
The melonDS DS core has been authored by
17+
18+
- Jesse Talavera
19+
20+
The melonDS DS core is licensed under
21+
22+
- [GPLv3](https://github.com/JesseTG/melonds-ds/blob/main/LICENSE)
23+
24+
A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md).
25+
26+
## Extensions
27+
28+
Content that can be loaded by the melonDS core has one of the following file extensions:
29+
30+
- .nds
31+
- .dsi
32+
- .ids
33+
34+
## Databases
35+
36+
RetroArch database(s) that are associated with the melonDS DS core:
37+
38+
- [Nintendo - Nintendo DS](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DS.rdb)
39+
- [Nintendo - Nintendo DSi](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%20DSi.rdb)
40+
41+
## BIOS
42+
43+
Required or optional firmware files go in the frontend's `system` directory.
44+
45+
| Filename | Description | md5sum |
46+
|:----------------:|:------------------------------------:|:--------------------------------:|
47+
| bios7.bin | NDS ARM7 BIOS - Optional | df692a80a5b1bc90728bc3dfc76cd948 |
48+
| bios9.bin | NDS ARM9 BIOS - Optional | a392174eb3e572fed6447e956bde4b25 |
49+
| firmware.bin | NDS Firmware - Optional | Varies |
50+
| dsi_bios7.bin | DSi ARM7 BIOS - Required in DSi mode | |
51+
| dsi_bios9.bin | DSi ARM9 BIOS - Required in DSi mode | |
52+
| dsi_firmware.bin | DSi Firmware - Required in DSi mode | Varies |
53+
| dsi_nand.bin | DSi NAND - Required in DSi mode | Varies |
54+
55+
## Features
56+
57+
Frontend-level settings or features that melonDS DS respects.
58+
59+
| Feature | Supported |
60+
|-------------------|:---------:|
61+
| Restart ||
62+
| Screenshots ||
63+
| Saves ||
64+
| States |[^1] |
65+
| Rewind |[^1] |
66+
| Netplay |[^2] |
67+
| Core Options ||
68+
| RetroAchievements ||
69+
| RetroArch Cheats ||
70+
| Native Cheats ||
71+
| Controls ||
72+
| Remapping ||
73+
| Multi-Mouse ||
74+
| Rumble ||
75+
| Sensors ||
76+
| Camera ||
77+
| Location ||
78+
| Subsystem ||
79+
| [Softpatching](../guides/softpatching.md) ||
80+
| Disk Control ||
81+
| Username ||
82+
| Language ||
83+
| Crop Overscan ||
84+
| LEDs ||
85+
86+
### Directories
87+
88+
The melonDS DS core's library name is 'melonDS DS'
89+
90+
The melonDS DS core saves/loads to/from these directories.
91+
92+
#### Frontend's Save directory
93+
94+
| File | Description |
95+
|:--------------------:|:---------------------------:|
96+
| *.srm | Cartridge battery save |
97+
| dldi_sd_card.bin | Homebrew SD card image |
98+
| dldi_sd_card.bin.idx | Homebrew SD card file index |
99+
| dsi_sd_card.bin | DSi SD card image |
100+
| dsi_sd_card.bin.idx | DSi SD card file index |
101+
| *.public.sav | DSiWare public save data |
102+
| *.private.sav | DSiWare private save data |
103+
| *.banner.sav | DSiWare icon save data |
104+
105+
#### Frontend's System directory
106+
107+
| File | Description |
108+
|:--------------------:|:--------------------------------------:|
109+
| melonDS DS/tmd/*.tmd | DSiWare title ID file |
110+
| wfcsettings.bin | DS Wi-Fi settings (built-in BIOS only) |
111+
112+
#### Frontend's State directory
113+
114+
| File | Description |
115+
|:--------:|:-----------:|
116+
| *.state# | State |
117+
118+
### Geometry and timing
119+
120+
- The melonDS DS core's core provided FPS is 59.898307800293 FPS.
121+
- The melonDS DS core's core provided sample rate is 32768 Hz.
122+
- The melonDS DS core's base width depends on the screen layout and configured renderer.
123+
- The melonDS DS core's base height depends on the screen layout and configured renderer.
124+
- The melonDS DS core's max width depends on the screen layout and configured renderer.
125+
- The melonDS DS core's max height depends on the screen layout and configured renderer.
126+
- The melonDS DS core's core-provided aspect ratio depends on the screen layout and configured renderer.
127+
128+
## Subsystems
129+
130+
melonDS DS uses subsystems to enable inserting GBA ROMs into the emulated Slot-2.
131+
GBA save data (if any) must be loaded explicitly.
132+
Subsystems are not used for DSi mode.
133+
134+
| Subsystem | Description |
135+
|:---------:|--------------------------------------------------------------|
136+
| gba | NDS ROM in Slot-1, GBA ROM in Slot-2 with optional save data |
137+
| gbanosav | NDS ROM in Slot-1, GBA ROM in Slot-2 with no GBA save data |
138+
139+
!!! info "Not for playing GBA games."
140+
melonDS can load Game Boy Advance ROMs and save data for the purpose of Slot-2 connectivity,
141+
but it cannot actually play GBA games.
142+
Use a GBA core instead.
143+
144+
Additional BIOS images are not required.
145+
146+
## Wi-Fi
147+
148+
melonDS DS fully supports emulating Nintendo WFC services on all platforms.
149+
You can choose from one of several preconfigured servers in the core options menu,
150+
with [Kaeru WFC](https://kaeru.world/projects/wfc) being the default.
151+
152+
If there's another server you'd like to use, you can set its DNS address from within the emulated console's Wi-Fi settings menu.
153+
154+
!!! info "Not related to netplay!"
155+
Wi-fi emulation is not related to LAN-based netplay.
156+
157+
## LAN Netplay
158+
159+
Coming soon...
160+
161+
## DSi
162+
163+
melonDS DS supports DSi mode, which allows you to play DSi-enhanced games and DSiWare.
164+
**There is no need to prepare a NAND image externally;**
165+
when selecting a DSiWare game from RetroArch,
166+
it (and its previously-exported save data) will be
167+
temporarily installed on the configured NAND image.
168+
At the end of the session,
169+
the save data will be exported to the frontend's save directory
170+
and the DSiWare will be uninstalled.
171+
172+
## Screen Layouts
173+
174+
melonDS DS supports a variety of screen layouts, including sideways rotation;
175+
you can configure a particular sequence of available layouts in the core options,
176+
and cycle through them with the `Next Screen Layout` button.
177+
Best used with per-game core option overrides.
178+
179+
## Controllers
180+
181+
The melonDS DS core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):
182+
183+
### User 1 device types
184+
185+
- None - Doesn't disable input. There's no reason to switch to this.
186+
- **Nintendo DS** - Joypad - Stay on this.
187+
188+
Future device types may be added
189+
to include peripherals that provided additional inputs.
190+
191+
### Device tables
192+
193+
#### Joypad
194+
195+
![](../image/controller/nds.png)
196+
197+
| User 1 input descriptors | RetroPad Inputs |
198+
|--------------------------|---------------------------------------------|
199+
| B | ![](../image/retropad/retro_b.png) |
200+
| Y | ![](../image/retropad/retro_y.png) |
201+
| Select | ![](../image/retropad/retro_select.png) |
202+
| Start | ![](../image/retropad/retro_start.png) |
203+
| Up | ![](../image/retropad/retro_dpad_up.png) |
204+
| Down | ![](../image/retropad/retro_dpad_down.png) |
205+
| Left | ![](../image/retropad/retro_dpad_left.png) |
206+
| Right | ![](../image/retropad/retro_dpad_right.png) |
207+
| A | ![](../image/retropad/retro_a.png) |
208+
| X | ![](../image/retropad/retro_x.png) |
209+
| L | ![](../image/retropad/retro_l1.png) |
210+
| R | ![](../image/retropad/retro_r1.png) |
211+
| Microphone | ![](../image/retropad/retro_l2.png) |
212+
| Next Screen Layout | ![](../image/retropad/retro_r2.png) |
213+
| Move Virtual Cursor | ![](../image/retropad/retro_right_stick.png) |
214+
| Close Lid | ![](../image/retropad/retro_l3.png) |
215+
| Touch Virtual Cursor | ![](../image/retropad/retro_r3.png) |
216+
217+
## Migrating from melonDS 2021
218+
219+
melonDS DS is intended to replace the [legacy melonDS core](melonds.md).
220+
If you have existing data you'd like to migrate, follow these steps.
221+
222+
### Save Files
223+
224+
The save data format is unchanged between the legacy core and melonDS DS.
225+
However, the method used to save game data internally has changed.
226+
227+
You'll need to do two things:
228+
229+
1. Go to the RetroArch save directory and rename the "melonDS" folder to "melonDS DS" (if it exists)
230+
2. Rename the save files from `.sav` to `.srm`.
231+
232+
### Savestates
233+
234+
**Savestates taken in the legacy core cannot be migrated to melonDS DS.**
235+
In the time since the last release of the legacy core,
236+
the savestate format has changed upstream.
237+
_Save your game normally before migrating your data to melonDS DS._
238+
239+
### Config Files
240+
241+
Rename the following directories to `melonDS DS`:
242+
243+
- `$RETROARCH_ROOT/config/melonDS` to `melonDS DS`.
244+
- `$RETROARCH_ROOT/config/remaps/melonDS` to `melonDS DS`.
245+
- Rename any files inside these directories named `melonDS.opt` to `melonDS DS.opt`.
246+
247+
### Cheats
248+
249+
Rename `$RETROARCH_ROOT/cheats/melonDS` to `melonDS DS`.
250+
Cheat support is unchanged.
251+
252+
### System Files
253+
254+
melonDS DS will detect system files (BIOS, firmware, NAND) in the system directory,
255+
so no action is required from you.
256+
However, melonDS DS will prefer system files in the "melonDS DS" subdirectory.
257+
258+
## Compatibility
259+
260+
- [Upstream melonDS Forums Compatibility section](http://melonds.kuribo64.net/board/forum.php?id=3)
261+
262+
## External Links
263+
264+
- [Official melonDS Website](http://melonds.kuribo64.net/)
265+
- [Official melonDS GitHub Repository](https://github.com/melonDS-emu/melonDS)
266+
- [Libretro melonDS DS Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/melondsds_libretro.info)
267+
- [Libretro melonDS DS Github Repository](https://github.com/JesseTG/melonds-ds)
268+
- [Report Libretro melonDS DS Core Issues Here](https://github.com/JesseTG/melonds-ds/issues)
269+
270+
### See also
271+
272+
#### Nintendo - Nintendo DS + Decrypted + (Download Play)
273+
274+
- [Nintendo - DS (DeSmuME 2015)](desmume_2015.md)
275+
- [Nintendo - DS (DeSmuME)](desmume.md)
276+
- [Nintendo - DS (melonDS 2021)](melonds.md)
277+
278+
[^1]: Not available in DSi mode.
279+
[^2]: LAN only. (No, VPNs won't work.)

docs/meta/see-also.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ This is a list of cores that are related to each other in some way.
109109

110110
- [Nintendo - DS (DeSmuME 2015)](../library/desmume_2015.md)
111111
- [Nintendo - DS (DeSmuME)](../library/desmume.md)
112-
- [Nintendo - DS (melonDS)](../library/melonds.md)
112+
- [Nintendo - DS (melonDS 2021)](../library/melonds.md)
113+
- [Nintendo - DS (melonDS DS)](../library/melonds_ds.md)
113114

114115
## NES
115116

0 commit comments

Comments
 (0)