Repository navigation
Settings
github-actions[bot] edited this page Oct 16, 2026
·
1 revision
Settings live in gba-ds.cfg: /storage/roms/ports/gba-ds/gba-ds.cfg on ROCKNIX (commented, with every option), GBA DS/gba-ds.cfg on Android (create it, with just the lines you want to change). Lines are key = value; lines starting with # are ignored. Every option can also be given on the command line with dashes for underscores, e.g. launch.sh --map-interval=60 --swap.
Three files are read in order, later ones winning:
-
gba-ds.cfg; -
states/prefs.cfg: what you chose in the pause menu (screens swapped, scaling, LCD grid, overlays, map animations, map refresh, FPS counter, frame buffer). GBA DS rewrites this file; to change those settings, use the menu, or delete the line fromprefs.cfg. -
states/library.cfg: the game list's view (list or grid) and, on Android, the ROM folder.
Upgrading GBA DS on ROCKNIX replaces gba-ds.cfg, so keep a copy of your changes.
| Option | Default | |
|---|---|---|
rom_dir |
/storage/roms/gba (Android: ROMs/gba) |
Folders to list, subfolders included. Several: separate with :. |
show_all |
0 |
1 lists every GBA ROM, not just games with second-screen support. The others play on one screen. |
name_tags |
0 |
1 keeps tags like (USA) and (En,Fr,De) in game names. |
library_view |
list |
list (names) or grid (logos). Also switched with X in the list; remembered in library.cfg. |
auto_resume |
1 |
Save a state when you leave a game, and pick up from it next time. |
| Option | Default | |
|---|---|---|
layout |
auto |
auto detects the screens. On ROCKNIX's sway, GBA DS makes its window full screen across both outputs and splits it. span-h / span-v: one window over two screens side by side / stacked. dual: one window per display. single: one screen; L2 flips between game and second screen. |
swap |
0 |
1 puts the second screen first (top) and the game second. The menu's Swap Screens and L2 are remembered in prefs.cfg and win over this. |
touch_screen |
second |
first or second: the screen with the touch panel. The menu and game list are drawn there. |
sway |
1 |
On ROCKNIX, ask the sway compositor to make the window full screen across both outputs. 0 leaves the window as it is. |
touch_map |
window |
How touch coordinates map: across the whole window, or screen (just the touch screen). Try screen if taps land in the wrong place. |
| Option | Default | |
|---|---|---|
scale / map_scale
|
integer |
Game screen / second screen: integer (pixel perfect: sharp, whole-number scale, 4× on the RG DS Plus, with a small border), fit (full width, keeps the shape, stays sharp: scaled up by a whole number on the GPU, then filtered down), zoom (fills the height, the left and right edges are cut off), stretch (fills the screen, distorts the shape). |
lcd_grid |
0 |
A pixel grid like a GBA screen's, on both screens. Drawn on the GPU, so it costs almost nothing. |
lcd_strength |
35 |
How dark the grid lines are, 0-100. |
smooth |
0 |
Plain bilinear filtering instead of sharp scaling (blurry; usually leave off). |
vsync |
0 |
Present frames in step with the display. Off is smoother on these devices. |
overlays |
both |
primary, secondary, both or none: see Map screen surrounds and overlays. |
border_color |
000000 |
Colour behind the map image where nothing else is drawn (RRGGBB). |
show_fps |
0 |
Frames per second and % of full speed above the game. |
frame_buffer |
0 |
Prepare the next frame while the current one is shown: smoother, one frame (about 17 ms) more input delay. Also in the pause menu. |
| Option | Default | |
|---|---|---|
map |
1 |
0 turns the second screen off: every game plays like an ordinary GBA game (the Metroids' corner mini-map comes back). |
map_interval |
90 |
Frames (60 a second) between map refreshes: 90 is every 1.5 s. The pause menu's Map Refresh offers 180 / 90 / 60 / 30. The map also refreshes right after every room transition. Each refresh runs the hidden copy of the game for a moment on another CPU core, so on a slower device very short intervals can make the sound crackle (the log reports it). |
map_crop |
1 |
The Metroid map screens, tidied (labels erased, prompts and minimap removed; see Supported games). 0 shows them exactly as the games draw them. |
map_animations |
1 |
Blinking map markers. 0 shows one still frame, the one where the markers are most visible. |
What map_crop changes in the Metroid map screens:
- Zero Mission keeps its whole pause screen, frame included, and only the lettering is erased: the L and R key letters, SLEEP, the area name, STATUS, and the A on the button beside the minimap. The keys, plates and button stay; the blank plates (magenta) and L/R keys (orange) are recoloured to the dark grey-green of the curved pieces beside the area name. The corner minimap gives way to the map underneath, and its "SELECT / CHANGE AREAS" prompt is covered by a piece of the bezel.
- Fusion also keeps its whole pause screen. The L and R key letters, SLEEP, the area name and STATUS are erased, and the plates (which cycle through four colours) are recoloured to the frame's greys. The "A OBJECTIVE" prompt and the row of ticked item icons are removed, and the map grid behind them rebuilt.
| Option | Default | |
|---|---|---|
ab_swap |
0 |
GBA A is the right face button and GBA B the bottom one, like a GBA. 1 flips them. |
hotkey |
guide |
The button that opens the menu and is the modifier for the HOME + button shortcuts: guide (HOME) or back (SELECT; then SELECT alone still reaches the game when tapped). |
home_button |
-1 |
If HOME does nothing: launch once with GBADS_DEBUG=1 (see Troubleshooting), press HOME, and put the "raw joystick ... button N" number from gba-ds.log here. |
menu_combo |
none (Android: select+start) |
select+start: SELECT and START pressed together also open the menu. The game doesn't see the pair; either button alone still reaches the game. |
ff_speed |
3 |
Fast-forward speed (hold R2). |
| Option | Default | |
|---|---|---|
save_dir |
empty | Battery saves (.sav). Empty: next to the ROM. An existing RetroArch .srm is copied to .sav the first time you play a game. |
state_dir |
empty | Save states, resume points, menu settings and extracted art. Empty: gba-ds/states. |
screenshot_dir |
/storage/roms/screenshots |
Where Take Screenshot saves its PNGs. |
cheat_dir |
RetroArch's cheat folders |
.cht folders, searched two levels deep, :-separated. |
asset_dir |
empty | The folder holding your logos/ and overlays/. Empty: the GBA DS folder. |
es_config_dir |
/storage/.config/emulationstation |
Where GBA DS in EmulationStation puts its two files. |
| Option | Default | |
|---|---|---|
retroachievements |
auto |
auto: on when RetroAchievements is switched on in EmulationStation with an account signed in (ROCKNIX's system.cfg). 1 on, 0 off. |
ra_username, ra_password
|
empty | Use another account than EmulationStation's. After the first sign-in GBA DS keeps a token instead (states/ra/login.cfg). |
| Option | Default | |
|---|---|---|
audio_latency |
64 |
Sound buffer in milliseconds. Raise it if the sound crackles; lower is snappier. |
| Option | Default | |
|---|---|---|
pin_cores |
0 |
1 keeps the game thread on a CPU core of its own. It made no difference on the RG DS Plus; there for testing. |