This repository was archived by the owner on Jan 22, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Nintendo DS (nds)
southoz edited this page Dec 27, 2025
·
13 revisions
| 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.
| 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 |
Swap Layout will change between screens when a single screen is focused.
| Action | Key |
|---|---|
| Drastic Menu | Function |
| Focus Screen | R2 |
| Swap Layout | L2 |
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 |
| Directory | Purpose |
|---|---|
| /opt/drastic | Drastic install folder with binary, libs, assets and configs |
/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
/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 ....
/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 &
- Arcade (arcade)
- CAPCOM Play System 1 (cps1)
- CAPCOM Play System 2 (cps2)
- CAPCOM Play System 3 (cps3)
- MAME 2003 (mame2003)
- MAME 2010 (mame)
- Amiga CD32 (amigacd32)
- Atari 2600 (atari2600)
- Atari 5200 (atari5200)
- Atari 7800 (atari7800)
- Mattel Intellivision (intellivision)
- NEC PCE Engine (pcengine)
- NEC PC Engine CD (pcenginecd)
- NEC Turbografx 16 (turbografx)
- NEC Turbografx 16 CD (turbografxcd)
- Nintendo Entertainment System (nes)
- Nintendo Famicom (famicom)
- Nintendo Famicom Disk System (fds)
- Nintendo Super Nintendo Entertainment System (snes)
- Nintendo Super Famicom (sfc)
- Nintendo 64 (n64)
- Sega SG‐1000 (sg‐1000)
- Sega Master System (mastersystem)
- Sega Megadrive (megadrive)
- Sega Genesis (genesis)
- Sega CD (segacd)
- Sega 32x (sega32x)
- Sega Saturn (saturn)
- Sega Dreamcast (dc)
- SNK Neo Geo (neogeo)
- SNK Neo Geo CD (neogeocd)
- Sony Playstation (psx)
- Atari Lynx (atarilynx}
- Bandai WonderSwan (wonderswan)
- Bandai WonderSwan Color (wonderswancolor)
- Nintendo GameBoy (gb)
- Nintendo Gameboy Advanced (gba)
- Nintendo Gameboy Color (gbc)
- Nintendo DS (nds)
- Sega Game Gear (gamegear)
- SNK Neo Geo Pocket (ngp)
- SNK Neo Geo Pocket Color (ngpc)
- Sony Playstation Portable (psp)
