Nintendo DS on the GKD Pixel 2: DSperate and DraStic
The Nintendo DS had two screens, one of them a touch screen, and the GKD Pixel 2 has one 4:3 screen and no touch. So a DS game on the Pixel 2 needs a way to show both screens and to touch. ZyperOS gives you two emulators to choose from and a stylus you steer with the d-pad. This guide covers both emulators, the buttons and your saves.
On this page
Two emulators, one shelf
| DSperate | DraStic | |
|---|---|---|
| On the card | Ships with ZyperOS | Not shipped: you copy it to Emulators/DraStic/ |
| License | GPL-3.0 | Closed freeware |
| How it runs | Inside ZyperOS's emulator, Diatom, as a libretro core | As a program of its own |
| In-game menu | ZyperOS's own: save, load, screens, stylus | DraStic's own |
DSperate is an emulator that reimplements DraStic's techniques under an open license. ZyperOS builds it with Thwonp's libretro wrapper from plorpOS. DraStic is a closed program, so ZyperOS cannot ship it, but it runs it if you add it.
To choose, open the Nintendo DS shelf, press MENU and change the Core row. A card with DraStic on it still starts on DSperate until you choose DraStic there.
Adding DS games
Put .nds files, or .zip files with one inside, in Roms/Nintendo DS. The adding games guide shows the three ways to send them.
Most DS sets are decrypted dumps, and those boot on DSperate's own free BIOS, with nothing else to add. An encrypted dump needs the DS's bios7.bin, bios9.bin and firmware.bin, loose in Bios/.
A DS game reads its language from the firmware, and a firmware.bin carries the language of the console it was dumped from. ZyperOS tells DSperate which language to use with each game, and your firmware.bin is left as it is. Open the Nintendo DS shelf, press MENU and change Game Language: Auto follows MENU > Language where the DS has it (English, Español, Français, Deutsch, Italiano and 日本語) and is English where it does not (Português (Brasil) and 简体中文), or pick one of the languages outright. The row is there while DSperate runs the games. A game resumed from its saved state keeps the language it was saved in; Reset in the in-game menu starts it again in the new one, and the battery save stays.
The buttons on DSperate
A game starts with the top screen alone, full size. The shoulders do the rest:
- L1 and R1 are the DS's L and R.
- L2 shows the other screen.
- R2 shows the bottom screen and turns the stylus on: the d-pad moves a cursor and A touches. R2 again turns the stylus off and goes back.
- MENU opens ZyperOS's in-game menu. Controls there has a page for the two screens and the stylus.
Three screen layouts
The in-game menu has a Screens row with three layouts, plus Swap Screens and Stylus:
- Single: one screen alone, filling the Pixel 2's 640x480 panel exactly, since a DS screen is 4:3 like the panel. This is where a game starts. L2 shows the other screen.
- Stacked: both screens, one over the other, as a 320x480 picture in the middle of the panel.
- Top Focus: one screen large, at twice the DS's size, and the other a quarter of its size beside it at the bottom.
Swap Screens puts the bottom screen first: on top in Stacked, the large one in Top Focus, the one shown in Single. While the stylus is on, the screen you touch is always the large or the shown one.
Single is the best fit for games played mostly on one screen. Stacked suits games that use both all the time, such as a map below the action.
Moving your saves from DraStic
DraStic keeps a game's battery save as Saves/<game>.dsv. The first time that game runs on DSperate with no save of its own, ZyperOS takes the .dsv over: it keeps the save chip's bytes, writes them as DSperate's .srm, and never touches an .srm that is already there. After that, each emulator keeps its own file.
So a card moved from another system with DraStic saves picks up where you left off on DSperate.
Using DraStic
- Copy DraStic to
Emulators/DraStic/on the card. - Open the Nintendo DS shelf, press MENU and set Core to DraStic.
- Start a game. DraStic runs on its own, with its own menus, and ZyperOS comes back when you quit.
Sources
- ZyperOS README, Supported systems: the Nintendo DS paragraph, the folder and file types, the BIOS files.
- config/systems.cfg: the two cores, DSperate's license, DraStic not shipped, the free BIOS and saves carried over.
- THIRD-PARTY-LICENSES.md: DSperate and its libretro wrapper, thwonp/dsperate-lr with beebono/DSperate.
- src/dsv.h: how DraStic's
.dsvsaves are taken over.