NDS Emulator (DraStic) for Handheld Devices

March 25, 2026 · View on GitHub

This repository contains all necessary resources - including the customized SDL2 and ALSA source code - required for supported devices. The NDS emulator used in this project is DraStic (closed-source), extracted from the RetroPie package. The provided ELF binary is compiled for ARM32, not AArch64. The specific DraStic version is v2.5.0.4 with the SHA-1 checksum ae9c215bdea88359cbcb3c259ce0d60a1f59986c. This port primarily focuses on integrating and customizing the SDL2 and ALSA libraries, along with extensive modifications to the DraStic emulator itself. As a result, several internal hooking points are used to ensure proper functionality. Please ensure that you are using the exact DraStic version specified above. Suggestions and issue reports are welcome via GitHub. However, please note that I cannot guarantee that all reported issues or feature requests will be resolved or included in future release builds. Finally, since the SDL2 library in this repository is heavily customized, it is not recommended for general-purpose use on other supported devices.

 

Miyoo Mini Plus

image

Device

Model: MY354  
Operating System: 202305052130 Onion_v4.3.1-1  

Building Source

# Debian 12

$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-mini/mini_toolchain-v1.0.tar.gz
$ tar xvf mini_toolchain-v1.0.tar.gz
$ sudo mv mini /opt
$ sudo mv prebuilt /opt

$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.miyoo_mini clean
$ make -f Makefile.miyoo_mini

Installation

Copy the "drastic" folder to "Emu/"

Layout
image

Button

( Keypad Mode )(Function)
R2Swap Screen
L2Switch Keypad or Touch Mode
HOTKEY + UPToggle Microphone
HOTKEY + DOWNToggle LCD Hinge
HOTKEY + LEFTChange Layout Mode
HOTKEY + RIGHTChange Layout Mode
HOTKEY + AAlternate Layout Mode
HOTKEY + BChange Filter (Blur or Pixel)
HOTKEY + YChange Background Image
HOTKEY + L1Quit Emulator
HOTKEY + L2Load State
HOTKEY + R1Fast Forward
HOTKEY + R2Save State
HOTKEY + SELECTEnter DraStic Menu
HOTKEY + STARTEnter SDL2 Menu
( Touch Mode )
DPADMove Touch
ATouch Screen
R1Lower Moving Speed
HOTKEY + YChange Touch Image
( SDL2 Menu )
HOTKEY + YChange Background Image
( DraStic Menu )
HOTKEY + YChange Background Image

P.S. The HOTKEY is user-configurable and can be rebound to the MENU or SELECT key via the SDL2 menu.

 

Known Issues

No sound in MinUI
   https://github.com/steward-fu/nds/issues/36#issuecomment-1890998225

 

Miyoo Flip

image

Device

Model: MY355  
Operating System: 20250526143414

Building Source

# Debian 12

$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-flip/flip-toolchain-v1.0.tar.gz
$ tar xvf flip-toolchain-v1.0.tar.gz
$ sudo mv flip /opt

$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.miyoo_flip clean
$ make -f Makefile.miyoo_flip

Installation

Copy the "drastic" folder to "Emu/"

Layout
image

Button

( Keypad Mode )(Function)
R2Swap Screen
L2Switch Keypad or Touch Mode
HOTKEY + UPToggle Microphone
HOTKEY + DOWNToggle LCD Hinge
HOTKEY + LEFTChange Layout Mode
HOTKEY + RIGHTChange Layout Mode
HOTKEY + AAlternate Layout Mode
HOTKEY + BChange Filter (Blur or Pixel)
HOTKEY + YChange Background Image
HOTKEY + L1Quit Emulator
HOTKEY + L2Load State
HOTKEY + R1Fast Forward
HOTKEY + R2Save State
HOTKEY + SELECTEnter DraStic Menu
HOTKEY + STARTEnter SDL2 Menu
( Touch Mode )
DPADMove Touch
ATouch Screen
R1Lower Moving Speed
HOTKEY + YChange Touch Image
( SDL2 Menu )
HOTKEY + YChange Background Image
( DraStic Menu )
HOTKEY + YChange Background Image

P.S. The HOTKEY is user-configurable and can be rebound to the MENU or SELECT key via the SDL2 menu.

 

Trimui Smart

image

Device

Model: TG2040  
Operating System: 1.0.0 UI_20240510 Kernel_3.4.39  

Building Source

# Debian 12

$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-mini/mini_toolchain-v1.0.tar.gz
$ tar xvf mini_toolchain-v1.0.tar.gz
$ sudo mv mini /opt
$ sudo mv prebuilt /opt

$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.trimui_smart clean
$ make -f Makefile.trimui_smart

Installation

Copy the "drastic" folder to "Emus/"

Layout N0
image

Layout N1
image

Button

( Keypad Mode )(Function)
MENU + UPToggle Microphone
MENU + DOWNToggle LCD Hinge
MENU + RIGHTSwap Screen
MENU + LEFTSwitch Keypad or Touch Mode
MENU + AChange Layout Mode
MENU + YChange Background Image
MENU + L1Sabe State
MENU + R1Load State
MENU + SELECTEnter DraStic Menu
MENU + STARTQuit Emulator
( Touch Mode )
DPADMove Touch
ATouch Screen
R1Lower Moving Speed
MENU + YChange Touch Image
( DraStic Menu )
MENU + YChange Background Image

 

Trimui Brick

image

Device

Model: TG3040  
Operating System: 1.1.0 UI_20250610 Kernel_4.9.191  

Building Source

# Debian 12

$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-mini/mini_toolchain-v1.0.tar.gz
$ tar xvf mini_toolchain-v1.0.tar.gz
$ sudo mv mini /opt
$ sudo mv prebuilt /opt

$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.trimui_brick clean
$ make -f Makefile.trimui_brick

Installation

Copy the "drastic" folder to "Emus/"

Layout
image

Button

( Keypad Mode )(Function)
F1Save State
F2Load State
R2Swap Screen
L2Switch Keypad or Touch Mode
HOTKEY + UPToggle Microphone
HOTKEY + DOWNToggle LCD Hinge
HOTKEY + LEFTChange Layout Mode
HOTKEY + RIGHTChange Layout Mode
HOTKEY + AAlternate Layout Mode
HOTKEY + BChange Filter (Blur or Pixel)
HOTKEY + YChange Background Image
HOTKEY + L1Quit Emulator
HOTKEY + L2Save State
HOTKEY + R1Fast Forward
HOTKEY + R2Load State
HOTKEY + SELECTEnter DraStic Menu
HOTKEY + STARTEnter SDL2 Menu
( Touch Mode )
DPADMove Touch
ATouch Screen
R1Lower Moving Speed
HOTKEY + YChange Touch Image
( SDL2 Menu )
HOTKEY + YChange Background Image
( DraStic Menu )
HOTKEY + YChange Background Image

P.S. The HOTKEY is user-configurable and can be rebound to the MENU or SELECT key via the SDL2 menu.

 

GKD Pixel 2

image

Device

Model: GKD Pixel 2  
Operating System: IUX UI_v2.5_Jan_15_2025 Kernel_5.10.198  

Building Source

# Debian 12

$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-mini/mini_toolchain-v1.0.tar.gz
$ tar xvf mini_toolchain-v1.0.tar.gz
$ sudo mv mini /opt
$ sudo mv prebuilt /opt

$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.gkd_pixel2 clean
$ make -f Makefile.gkd_pixel2

Installation

1. Copy the "drastic" folder to "STORAGE/"
2. Copy the "14nds" file to "STORAGE/iux/sections/handheld/14nds"

Layout
image

Button

( Keypad Mode )(Function)
R2Swap Screen
L2Switch Keypad or Touch Mode
HOTKEY + UPToggle Microphone
HOTKEY + DOWNToggle LCD Hinge
HOTKEY + LEFTChange Layout Mode
HOTKEY + RIGHTChange Layout Mode
HOTKEY + AAlternate Layout Mode
HOTKEY + BChange Filter (Blur or Pixel)
HOTKEY + YChange Background Image
HOTKEY + L1Quit Emulator
HOTKEY + L2Load State
HOTKEY + R1Fast Forward
HOTKEY + R2Save State
HOTKEY + SELECTEnter DraStic Menu
HOTKEY + STARTEnter SDL2 Menu
( Touch Mode )
DPADMove Touch
ATouch Screen
R1Lower Moving Speed
HOTKEY + YChange Touch Image
( SDL2 Menu )
HOTKEY + YChange Background Image
( DraStic Menu )
HOTKEY + YChange Background Image

P.S. The HOTKEY is user-configurable and can be rebound to the MENU or SELECT key via the SDL2 menu.

 

GKD Mini Plus

image

Device

Model: GKD Mini Plus   
Operating System: IUX Jul_14_2025  

Building Source

# Debian 12

$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-mini/mini_toolchain-v1.0.tar.gz
$ tar xvf mini_toolchain-v1.0.tar.gz
$ sudo mv mini /opt
$ sudo mv prebuilt /opt

$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.gkd_pixel2 clean
$ make -f Makefile.gkd_pixel2

Installation

1. Copy the "drastic" folder to "STORAGE/"
2. Copy the "14nds" file to "STORAGE/miniplus/sections/02handheld/14nds"

Layout
image

Button

( Keypad Mode )(Function)
F1Fast Forward
F2HOTKEY
R2Swap Screen
L2Switch Keypad or Touch Mode
R3Save State
L3Load State
HOTKEY + UPToggle Microphone
HOTKEY + DOWNToggle LCD Hinge
HOTKEY + LEFTChange Layout Mode
HOTKEY + RIGHTChange Layout Mode
HOTKEY + AAlternate Layout Mode
HOTKEY + BChange Filter (Blur or Pixel)
HOTKEY + YChange Background Image
HOTKEY + L1Quit Emulator
HOTKEY + L2Load State
HOTKEY + R1Fast Forward
HOTKEY + R2Save State
HOTKEY + SELECTEnter DraStic Menu
HOTKEY + STARTEnter SDL2 Menu
( Touch Mode )
DPADMove Touch
ATouch Screen
R1Lower Moving Speed
HOTKEY + YChange Touch Image
( SDL2 Menu )
HOTKEY + YChange Background Image
( DraStic Menu )
HOTKEY + YChange Background Image

P.S. The HOTKEY is user-configurable and can be rebound to the F2 or SELECT key via the SDL2 menu.

 

Motorola Photon Q

image

Device

Model: XT897
Operating System: Sailfish OS 4.4.0.68

Building Source

# Sailfish OS 4.4.0.68

$ cd
$ git clone https://github.com/steward-fu/nds
$ cd nds
$ make -f Makefile.moto_xt897 clean
$ make -f Makefile.moto_xt897

Layout
image

Button

( Keypad Mode )(Function)
APOSTROPHESwap Screen
BACKSPACESwitch Keypad or Touch Mode
1Save State
0Load State
WUP
SDOWN
ALEFT
DRIGHT
LA
KB
OX
IY
QL1
ER1
COMMASELECT
PERIODSTART
SPACE + WToggle Microphone
SPACE + SToggle LCD Hinge
SPACE + AChange Layout Mode
SPACE + DChange Layout Mode
SPACE + LAlternate Layout Mode
SPACE + KChange Filter (Blur or Pixel)
SPACE + IChange Background Image
ENTERQuit Emulator
SPACE + COMMAEnter DraStic Menu
SPACE + PERIODEnter SDL2 Menu
( Touch Mode )
WASDMove Touch
LTouch Screen
ELower Moving Speed
SPACE + KChange Touch Image
( SDL2 Menu )
SPACE + IChange Background Image
( DraStic Menu )
SPACE + IChange Background Image

 

Unit Test

Run Unit Test

$ make -f Makefile.ut

 

Credits

image