Skip to content
This repository was archived by the owner on Jan 22, 2026. It is now read-only.

Nintendo DS (nds)

southoz edited this page Dec 27, 2025 · 13 revisions

Emulator Details

Emulator Advanced Drastic - ArkOS4Clone Build
Version 2.5.2.0
Backend Custom SDL2 libSDL2-2.0.so.0.3200.10
ArkOS Details Christians GitHub
EASYROMS Folder nds
Linux Path /roms/nds
BIOS File /bios/nds_bios_arm7.bin
BIOS File /bios/nds_bios_arm9.bin
  • Exit Emulator through the Drastic Menu via the function key.

Controls

Emulator Game Controls

NDS G80CA-MB
A Button A Button (Right)
B Button B Button (Bottom)
X Button X Button (Top)
Y Button Y Button (Left)
Left Sholder L1 Button
Right Sholder R1 Button
D-Pad Up D-Pad Up
D-Pad Down D-Pad Down
D-Pad Left D-Pad Left
D-Pad Right D-Pad Right
Select Select Button
Start Start Button
Stylus Up Left Analogue Up
Stylus Down Left Analogue Down
Stylus Left Left Analogue Left
Stylus Right Left Analogue Right

Emulator Controls

Swap Layout will change between screens when a single screen is focused.

Action Key
Drastic Menu Function
Focus Screen R2
Swap Layout L2

Drastic Menu Controls

The back button serves as a delete key in some submenus and should not be confused with the exit or previous menu functions.

Drastic G80CA-MB
Select A Button (Right)
Exit B Button (Bottom)
Back/Delete Y Button (Left)
Menu Up D-Pad Up
Menu Down D-Pad Down
Menu Left D-Pad Left
Menu Right D-Pad Right

Files and configuration

Emulator Directories

Directory Purpose
/opt/drastic Drastic install folder with binary, libs, assets and configs

Drastic Configuration

/opt/drastic/config/drastic.cfg

frameskip_type = 2
frameskip_value = 1
safe_frameskip = 0
show_frame_counter = 0
screen_orientation = 1
screen_scaling = 2
screen_swap = 0
savestate_number = 0
fast_forward = 0
enable_sound = 1
clock_speed = 0
threaded_3d = 0
mirror_touch = 0
compress_savestates = 1
savestate_snapshot = 1
unzip_roms = 0
backup_in_savestates = 1
ignore_gamecard_limit = 0
frame_interval = 0
trim_roms = 0
fix_main_2d_screen = 0
disable_edge_marking = 0
hires_3d = 0
use_rtc_custom_time = 0
rtc_custom_time = 0
rtc_system_time = 0
slot2_device_type = 0
rumble_frames = 3
firmware.username = Dr Drastic
firmware.language = 1
firmware.favorite_color = 0
firmware.birthday_month = 1
firmware.birthday_day = 1
enable_cheats = 1
controls_a[CONTROL_INDEX_UP] = 1038
controls_a[CONTROL_INDEX_DOWN] = 1039
controls_a[CONTROL_INDEX_LEFT] = 1040
controls_a[CONTROL_INDEX_RIGHT] = 1041
controls_a[CONTROL_INDEX_A] = 1024
controls_a[CONTROL_INDEX_B] = 1025
controls_a[CONTROL_INDEX_X] = 1026
controls_a[CONTROL_INDEX_Y] = 1027
controls_a[CONTROL_INDEX_L] = 1028
controls_a[CONTROL_INDEX_R] = 1029
controls_a[CONTROL_INDEX_START] = 1033
controls_a[CONTROL_INDEX_SELECT] = 1032
controls_a[CONTROL_INDEX_HINGE] = 65535
controls_a[CONTROL_INDEX_TOUCH_CURSOR_UP] = 1217
controls_a[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 1153
controls_a[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 1216
controls_a[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 1152
controls_a[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 1036
controls_a[CONTROL_INDEX_MENU] = 1037
controls_a[CONTROL_INDEX_SAVE_STATE] = 65535
controls_a[CONTROL_INDEX_LOAD_STATE] = 65535
controls_a[CONTROL_INDEX_FAST_FORWARD] = 65336
controls_a[CONTROL_INDEX_SWAP_SCREENS] = 65535
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_A] = 1030
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_B] = 1031
controls_a[CONTROL_INDEX_LOAD_GAME] = 65535
controls_a[CONTROL_INDEX_QUIT] = 65535
controls_a[CONTROL_INDEX_FAKE_MICROPHONE] = 65535
controls_a[CONTROL_INDEX_UI_UP] = 1038
controls_a[CONTROL_INDEX_UI_DOWN] = 1039
controls_a[CONTROL_INDEX_UI_LEFT] = 1040
controls_a[CONTROL_INDEX_UI_RIGHT] = 1041
controls_a[CONTROL_INDEX_UI_SELECT] = 1024
controls_a[CONTROL_INDEX_UI_BACK] = 1027
controls_a[CONTROL_INDEX_UI_EXIT] = 1025
controls_a[CONTROL_INDEX_UI_PAGE_UP] = 331
controls_a[CONTROL_INDEX_UI_PAGE_DOWN] = 334
controls_a[CONTROL_INDEX_UI_SWITCH] = 0
controls_b[CONTROL_INDEX_UP] = 65535
controls_b[CONTROL_INDEX_DOWN] = 65535
controls_b[CONTROL_INDEX_LEFT] = 65535
controls_b[CONTROL_INDEX_RIGHT] = 65535
controls_b[CONTROL_INDEX_A] = 65535
controls_b[CONTROL_INDEX_B] = 65535
controls_b[CONTROL_INDEX_X] = 65535
controls_b[CONTROL_INDEX_Y] = 65535
controls_b[CONTROL_INDEX_L] = 65535
controls_b[CONTROL_INDEX_R] = 65535
controls_b[CONTROL_INDEX_START] = 65535
controls_b[CONTROL_INDEX_SELECT] = 65535
controls_b[CONTROL_INDEX_HINGE] = 65535
controls_b[CONTROL_INDEX_TOUCH_CURSOR_UP] = 65535
controls_b[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 65535
controls_b[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 65535
controls_b[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 65535
controls_b[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 65535
controls_b[CONTROL_INDEX_MENU] = 65535
controls_b[CONTROL_INDEX_SAVE_STATE] = 65535
controls_b[CONTROL_INDEX_LOAD_STATE] = 65535
controls_b[CONTROL_INDEX_FAST_FORWARD] = 65535
controls_b[CONTROL_INDEX_SWAP_SCREENS] = 65535
controls_b[CONTROL_INDEX_SWAP_ORIENTATION_A] = 65535
controls_b[CONTROL_INDEX_SWAP_ORIENTATION_B] = 65535
controls_b[CONTROL_INDEX_LOAD_GAME] = 65535
controls_b[CONTROL_INDEX_QUIT] = 65535
controls_b[CONTROL_INDEX_FAKE_MICROPHONE] = 65535
controls_b[CONTROL_INDEX_UI_UP] = 65535
controls_b[CONTROL_INDEX_UI_DOWN] = 65535
controls_b[CONTROL_INDEX_UI_LEFT] = 65535
controls_b[CONTROL_INDEX_UI_RIGHT] = 65535
controls_b[CONTROL_INDEX_UI_SELECT] = 65535
controls_b[CONTROL_INDEX_UI_BACK] = 65535
controls_b[CONTROL_INDEX_UI_EXIT] = 65535
controls_b[CONTROL_INDEX_UI_PAGE_UP] = 65535
controls_b[CONTROL_INDEX_UI_PAGE_DOWN] = 65535
controls_b[CONTROL_INDEX_UI_SWITCH] = 65535

Drastic Configuration 2

/opt/drastic/config/drastic.cfg2

00000000: 4453 4332 0200 0000 0000 0000 0000 0000  DSC2............
00000010: 2f6f 7074 2f64 7261 7374 6963 0000 0000  /opt/drastic....
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000200: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000210: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000220: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000230: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000240: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000250: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000260: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000270: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000280: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000290: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000300: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000310: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000320: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000330: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000340: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000360: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000370: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000400: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000410: 0000 0000                                ....

Drastic Emulation Station Start Script

/usr/local/bin/drastic.sh

#!/bin/bash

directory="$(dirname "$1" | cut -d "/" -f2)"

if  [[ ! -d "/${directory}/nds/backup" ]]; then
  mkdir /${directory}/nds/backup
fi
if  [[ ! -d "/${directory}/nds/cheats" ]]; then
  mkdir /${directory}/nds/cheats
fi
if  [[ ! -d "/${directory}/nds/savestates" ]]; then
  mkdir /${directory}/nds/savestates
fi
if  [[ ! -d "/${directory}/nds/slot2" ]]; then
  mkdir /${directory}/nds/slot2
fi

cd /opt/drastic

LD_PRELOAD=./libs/libSDL2-2.0.so.0.3200.10 ./drastic "$1"

sudo systemctl restart oga_events &

Home

Guides

Arcade Systems

Console Systems

Handheld Systems

Computer Systems

Ports and Recompilations

Advanced

Clone this wiki locally