From GameBrew

AuthorDave Bernazzani (wavemotion)
Last Updated2021/12/13

XEGS-DS is an Atari 8-bit computer emulator. Specifically, it's designed around the XE gaming system which is the 8-bit console version of Atari's venerable computer line.

The stock XEGS had 64KB of RAM and was generally not upgradable unless you really knew the insides of the machine. But thanks to emulation, XEGS-DS comes equipped with 128KB of RAM which will run the larger programs. This is essentially the same as a 130XE machine.

XEGS-DS goes beyond the normal XL/XE 128K machine and provides two alternative configurations: the XE 320K (RAMBO) and 1088K for a few large games and demos and an older Atari 800 48K machine for backwards compatibility with some older games that don't play nice with a more modern XL/XE setup.

As such, it's really grown to be more capable than a stock XEGS machine but the purpose of this emulator is to allow someone to play nearly the entire 8-bit line up of games on their Nitendo DS/DSi handhelds.


  • Most things you should expect from an emulator.
  • Supports multi-disk games.
  • Built-in Altirra BASIC 1.55.


There is a built-in Altirra BIOS (thanks to Avery Lee) which is fairly compatibile with many games. However, a few games will require the original ATARI BIOS - and, unfortunately, there were many variations of those BIOS over the years to support various Atari computer models released over a decade.

XEGS-DS supports 3 optional Atari BIOS and BASIC files as follows:

  • atarixl.rom - This is the 16k XL/XE version of the Atari BIOS for XL/XE Machines.
  • atariosb.rom - This is the 12k Atari 800 OS-B revision BIOS for older games.
  • ataribas.rom - This is the 8k Atari BASIC cartridge (recommend Rev C).

You can install zero, one or more of these files and if you want to use these real ROMs. They must reside in the same folder as the XEGS-DS.NDS emulator (or, optionally, you can place your BIOS files in /roms/bios/ or /data/bios/) and these files must be exactly so named as shown above.

User guide

Supported formats

The emulator comes equipped with the ability to run executable images or disk images which are the two most popular types.

It does not support cart types (despite the cart slot as the on-screen mechanism for choosing a game).

Virtually everything that can be run on an 8-bit system has been converted into an Executable image (.xex) or a Disk image (.atr) and, unlike cart ROM images, there is no complicated setup to pick the right banking setup.

Multi-disk games

When you need to load a subsequent disk for a game, just use the Y button to disable Boot-Load which will simply just insert the new disk and you can continue to run.

Not all games will utilize a 2nd disk drive but D2: is available for those games that do.

It's handy to have a few blank 90K single-sided disks available on your setup which you can find easily online - these can be used as save disks.

BASIC interpreter

The emulator has the built-in Altirra BASIC 1.55 which is a drop-in replacement for the Atari Basic Rev C (only more full-featured). Normally you can leave this disabled but a few games require the BASIC cart be present and you can toggle this with the START button when you load a game.

If you try to load a game and it crashes, most likely you need to have BASIC enabled. Most games don't want it enabled so that's the default.

If you want to play around with BASIC, enable the BASIC cart and pick a DOS disk of some kind to get drive support and you can have fun writing programs. Be aware that the Altirra BASIC is faster than normal ATARI BASIC and so games might run at the wrong speed unless you're using the actual ATARI REV C rom.


In order to get proper speed on the older hardwares, Frame Skip option is default to ON for DS Lite and DS Phat (and OFF for DSi or above). Though some games do not run properly with Fram Skip ON. Notably: Caverns of Mars, Jumpman and Buried Bucks.

If a game is particularlly struggling to keep up on older hardawre, there is an experimental Agressive frameskip option which should help, but use with caution.


Most games run as-is. Pick game, load game, play game, enjoy game. If you load a game and it doesn't load properly, just load it again or hit the RESET button which will re-initialize the XEGS machine.

If a game crashes (crash message shows at bottom of screen or game does not otherwise run properly), check these in the order they are shown:

  • Try turning BASIC ON - some games (even a handful of well-known commercial games) require the BASIC cartridge be enabled.
    • If the game runs but is too fast with BASIC on, use the Atari Rev C Basic (slower but should run at proper speed).
    • If BASIC ON didn't do the trick, turn it back off and switch from the ALTIRRA OS to the real ATARI XL OS (you will need atarixl.rom in the same directory as the emulator).
    • Some games don't play nice unless you have the original Atari BIOS.
  • Next try switching from NTSC to PAL or vice-versa and restart the game.
  • A few older games require the older Atari 800 48k machine and Atari OS-B. If you have atariosb.rom where your emulator is located, you can try selecting this as the OS of choice.
  • Lastly, try switching the DISKS SPEEDUP option to OFF to slow down I/O. Some games check this as a form of basic copy-protection to ensure you're running from a legit disk.

With those tips, you should be able to get 99% of all games running. There are still a few odd games of little or no consequence (i.e. not major titles) that will not run with the emulator.


D-Pad - Joystick

A - Fire button

B - Alternate Fire button

X - Space Bar

R/L+X - Return/Escape key (useful to start a few games)

R+D-Pad - Shift Screen Up/Down (necessary to center screen)

L+D-Pad - Scale Screen Up/Down (generally try not to shrink the screen too much as pixel rows disappear)

L+R+A - Swap Screens

Y - Option console button

Start - Start console button

Select - Select console button

Tap the XEX icon or the Disk Drive to load a new game.




V2.9 2021/12/12

  • Reverted back to ARM7 SoundLib (a few games missing key sounds).

V2.8 2021/11/30

  • Switched to maxmod audio library for improved sound.
  • Try to start in /roms or /roms/a800 if possible.

V2.7 2021/11/04

  • New sound output processing to eliminate Zingers.
  • bios files can now optionally be in /roms/bios or /data/bios.
  • Left/Right now selects the next/previous option (rather than A button to only cycle forward).
  • Other cleanups as time permitted.

V2.6 2021/07/11

  • Reduced down to one screen buffer - this cleans up ghosting visible sometimes on dark backgrounds.
  • If atarixl.rom exists, it is used by default (previously had still been defaulting to Altirra rom).
  • Minor cleanups as time permitted.

V2.5 2021/04/08

  • Major cleanup of unused code to get down to a small but efficient code base.
  • Added LCD swap using L+R+A (hold for half second to toggle screens).
  • Cleanup of text-on-screen handling and other minor bug fixes.

V2.4 2021/04/02

  • New bank switching handling that is much faster (in some cases 10x faster) to support all of the larger 128K, 320K and even the 1088K games (AtariBlast).
  • ATX format now supported for copy protected disk images.

V2.3 2021/03/31

  • Added Atari 800 (48K) mode with OS-B for compatiblity with older games.
  • L+X and R+X shortcuts for keys '1' and '2' which are useful to start some games.
  • Cleanup of options and main screen for better display of current emulator settings.

V2.2 2021/03/25

  • Added simplified keyboard option for easy use on Text Adventures, etc.

V2.1 2021/03/21

  • Cleanup of the big 2.0 release.
  • Allow .XEX and D1 to both be loaded for XEX games that allow save/restore.
  • Fixed long-standing file select offset bug.

V2.0 2021/03/19

  • Major overhaul of UI.
  • Added second disk drive.

Release notes.

External links