From GameBrew

AuthorCiaran Anscomb
Last Updated2009/11/30

XRoar is a Dragon emulator for Linux, Unix, Mac OS X and Windows. Due to hardware similarities, XRoar also emulates the Tandy Colour Computer (CoCo) models 1 & 2.

It was originally written to run on Solaris, Linux and the GP32 handheld. It was ported to the Nintendo DS and support has been dropped for the GP32 and NDS as emulation accuracy, and thus the CPU requirement, has increased. XRoar is easily built from source under Linux, and binary packages are provided for Mac OS X and Windows.


  • Emulates Dragon 32, Dragon 64, Tano Dragon, Tandy CoCo 1 & 2.
  • Emulates DragonDOS, Delta and RSDOS disk systems.
  • Raw and translated keyboard modes.
  • Reads and writes virtual cassettes (‘.cas’ files).
  • Reads audio files as cassette input.
  • Reads and writes VDK, JVC and DMK format virtual floppy diskettes.
  • Save and load snapshots.


Note: You will need to prepare BASIC ROM images-binary dumps of the firmware from an original machine. The originals were part-written by Microsoft, so they are not distributed in the XRoar packages.

Unpack the downloaded ZIP file and copy xroar.nds to your flash cartridge. Older flash cartridges may need you to DLDI patch the binary in order for the emulator to see files on it.

Create a directory on your flash cartridge called /dragon/roms/ and copy any firmware ROM images into this directory.

How to start the XRoar application will depend on your flash cartridge, but you probably just need to pick it from a menu (it should appear with a Dragon logo).

User guide

Emulated machines

XRoar will emulate the following machines:

  • dragon32 - Dragon 32 (PAL).
  • dragon64 - Dragon 64 (PAL).
  • tano - Tano Dragon (NTSC).
  • coco - Tandy Colour Computer (PAL).
  • cocous - Tandy Color Computer (NTSC).

XRoar will try and find a default machine to emulate based on which ROM images you have installed, but you can change it by using the following command line arguement:

-machine MACHINE

A complete list of commands can be found in the PDF file.

Supported file types

Supported file extensions are DMK, JVC, DSK, VDK, BIN, SNA, HEX, CAS, WAV, ROM.

Images are expected to have certain names. Please refer to the enclosed PDF for the ROM search order for different machines.

User interface

The touch screen interface is currently quite basic, but functional. Files can be loaded by selecting Load..., the emulated machine can be changed in the Machine Configuration menu, and snapshots can be taken with Save Snapshot.

In the Input Configuration menu, each of the DS buttons can be mapped to an input function: a keypress, a joystick direction or an emulator configuration command.

Swapping screens (Start by default) now maps the touch screen to Analog Joystick input (good for games like Katerpillar Attack).


D-Pad - Right joystick

A - Right firebutton

Y - Swap Joysticks

Start - Swapping screens


Version 0.23 Monday 2009/11/30

  • Full CoCo RAM select emulation.
  • Implemented SAM FAST mode.
  • Fullscreen fixes.
  • Better handling of -load and -run options.
  • Include "dark orange" VDG text mode colour.
  • Initial ALSA sound module (-ao alsa).
  • Read a configuration file on startup.
  • Sun audio fixes.
  • Experimental curses user interface.
  • Run first non-option argument.
  • WD279x fix.
  • Fixed segfault in SDL joystick code.
  • Work around nasty hang bug in SDL's pulseaudio module.
  • Add ROM search path to Windows build.
  • Add -gl-filter option to select OpenGL texture filter.
  • Support directly loading ASCII files (.bas, .asc) as gapped ASCII BASIC.
  • Write-back support for VDK and JVC disk images.
  • Request filename when creating a blank disk.


Made reference to the MAME 6809 core for clues on how the overflow bit in the condition code register was handled.

Thanks to all the people on the Dragon Archive Forums for helpful feedback and insight.

Darren Atkinson’s Motorola 6809 and Hitachi 6309 Programmers Reference has been very useful for 6309 support and fleshing out some of the illegal instructions on the 6809.

Alan Cox contributed the IDE code.

External links