Desmume or MelonDS

Thanks again @r043v. I never would have thought to run it without a rom loaded.

I’ve put together a config file with settings that work well with the Gameshell. Either edit your existing config, or make a new file called drastic.cfg saved in ~apps/emulators/drastic/config/ or wherever you saved your drastic directory.

frameskip_type = 2
frameskip_value = 4
show_frame_counter = 0
screen_orientation = 2
screen_scaling = 2
screen_swap = 0
savestate_number = 0
fast_forward = 0
enable_sound = 1
clock_speed = 0
threaded_3d = 1
mirror_touch = 0
compress_savestates = 1
savestate_snapshot = 1
unzip_roms = 1
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
firmware.username = Gameshell
firmware.language = 1
firmware.favorite_color = 0
firmware.birthday_month = 1
firmware.birthday_day = 2
enable_cheats = 1
controls_a[CONTROL_INDEX_UP] = 338
controls_a[CONTROL_INDEX_DOWN] = 337
controls_a[CONTROL_INDEX_LEFT] = 336
controls_a[CONTROL_INDEX_RIGHT] = 335
controls_a[CONTROL_INDEX_A] = 107
controls_a[CONTROL_INDEX_B] = 106
controls_a[CONTROL_INDEX_X] = 105
controls_a[CONTROL_INDEX_Y] = 117
controls_a[CONTROL_INDEX_L] = 121
controls_a[CONTROL_INDEX_R] = 111
controls_a[CONTROL_INDEX_START] = 13
controls_a[CONTROL_INDEX_SELECT] = 32
controls_a[CONTROL_INDEX_HINGE] =
controls_a[CONTROL_INDEX_TOUCH_CURSOR_UP] =
controls_a[CONTROL_INDEX_TOUCH_CURSOR_DOWN] =
controls_a[CONTROL_INDEX_TOUCH_CURSOR_LEFT] =
controls_a[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] =
controls_a[CONTROL_INDEX_TOUCH_CURSOR_PRESS] =
controls_a[CONTROL_INDEX_MENU] = 8
controls_a[CONTROL_INDEX_SAVE_STATE] =
controls_a[CONTROL_INDEX_LOAD_STATE] =
controls_a[CONTROL_INDEX_FAST_FORWARD] = 27
controls_a[CONTROL_INDEX_SWAP_SCREENS] =
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_A] = 108
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_B] = 104
controls_a[CONTROL_INDEX_LOAD_GAME] =
controls_a[CONTROL_INDEX_QUIT] =
controls_a[CONTROL_INDEX_UI_UP] = 338
controls_a[CONTROL_INDEX_UI_DOWN] =337
controls_a[CONTROL_INDEX_UI_LEFT] = 336
controls_a[CONTROL_INDEX_UI_RIGHT] = 335
controls_a[CONTROL_INDEX_UI_SELECT] = 107
controls_a[CONTROL_INDEX_UI_BACK] = 106
controls_a[CONTROL_INDEX_UI_EXIT] = 27
controls_a[CONTROL_INDEX_UI_PAGE_UP] = 111
controls_a[CONTROL_INDEX_UI_PAGE_DOWN] = 121
controls_a[CONTROL_INDEX_UI_SWITCH] = 32
controls_b[CONTROL_INDEX_UP] =
controls_b[CONTROL_INDEX_DOWN] =
controls_b[CONTROL_INDEX_LEFT] =
controls_b[CONTROL_INDEX_RIGHT] =
controls_b[CONTROL_INDEX_A] =
controls_b[CONTROL_INDEX_B] =
controls_b[CONTROL_INDEX_X] =
controls_b[CONTROL_INDEX_Y] =
controls_b[CONTROL_INDEX_L] =
controls_b[CONTROL_INDEX_R] =
controls_b[CONTROL_INDEX_START] =
controls_b[CONTROL_INDEX_SELECT] =
controls_b[CONTROL_INDEX_HINGE] =
controls_b[CONTROL_INDEX_TOUCH_CURSOR_UP] =
controls_b[CONTROL_INDEX_TOUCH_CURSOR_DOWN] =
controls_b[CONTROL_INDEX_TOUCH_CURSOR_LEFT] =
controls_b[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] =
controls_b[CONTROL_INDEX_TOUCH_CURSOR_PRESS] =
controls_b[CONTROL_INDEX_MENU] =
controls_b[CONTROL_INDEX_SAVE_STATE] =
controls_b[CONTROL_INDEX_LOAD_STATE] =
controls_b[CONTROL_INDEX_FAST_FORWARD] =
controls_b[CONTROL_INDEX_SWAP_SCREENS] =
controls_b[CONTROL_INDEX_SWAP_ORIENTATION_A] =
controls_b[CONTROL_INDEX_SWAP_ORIENTATION_B] =
controls_b[CONTROL_INDEX_LOAD_GAME] =
controls_b[CONTROL_INDEX_QUIT] =
controls_b[CONTROL_INDEX_UI_UP] =
controls_b[CONTROL_INDEX_UI_DOWN] =
controls_b[CONTROL_INDEX_UI_LEFT] =
controls_b[CONTROL_INDEX_UI_RIGHT] =
controls_b[CONTROL_INDEX_UI_SELECT] =
controls_b[CONTROL_INDEX_UI_BACK] =
controls_b[CONTROL_INDEX_UI_EXIT] =
controls_b[CONTROL_INDEX_UI_PAGE_UP] =
controls_b[CONTROL_INDEX_UI_PAGE_DOWN] =
controls_b[CONTROL_INDEX_UI_SWITCH] =

In game:
DS Controls = Same mapping as gameshell, except for hinge control. It doesn’t seem to want to wake up from the closed state.
Quit = Menu (hard coded seemingly - can’t change this)
Access the menu = Shift + Menu
Switch screen = R2 (Shift + A)
Change from full screen/dual screen = L2 (Shift + B)
(It starts in full single screen mode)

Menu navigation: (extremely hard to read)
Select = A
Back = B
Page up = R1 (Shift + X)
Page down = L1 (Shift + Y)

Strangely, while using it plugged in via HDMI, it wouldn’t load; saying it can’t find the correct bios files etc. I’ll look into it later, but for now it isn’t too much of a problem.

So far I’ve tried for about 5 mins each:
New Super Mario Bros. - Works Perfectly

Casltavania Dawn of Sorrow - Works Perfectly (you’ll need the mouse mod in the arduino to sign your name)
Castlevania Portrait of Ruin - Works Perfectly! (you’ll need the mouse mod to draw your emblem)
Castlevania Order of Ecclesia - Works Perfectly (you might need the touchpad use for magnesis… it’s been a while!)

Super Mario 64 - Works Perfectly (you’ll want the light bar key attachment)
Mariokart DS - Works Perfectly (you’ll want to use the light bar key attachment)
Mario and Luigi Partners in Time - Works Perfectly!

Legend of Zelda Phantom Hourglass - Works Perfectly (you’ll need the mouse mode in the arduino to … well play the game - I strongly recommend the D-Pad patch)
Legend of Zelda Spirit Tracks - Works Perfectly (Same as above - get the patch here

Phoenix Wright Ace Attorney - Works Perfectly
Children of Mana - Works Perfectly!

I was honestly expecting to bump into more hurdles, but this seemingly runs practically perfect for every game I’ve tried. I was going to report back on more games, but I think I know what the results are going to be.

2 Likes