DragonDC. Based On XRoar 0.11
Ported to Dreamcast by Quzar & Ron.

XRoar - a Dragon/Tandy Coco emulator
Copyright (C) 2003-2005 Ciaran Anscomb <xroar@6809.org.uk>

Homepage: http://www.6809.org.uk/dragon/xroar.shtml


The aim of this project is to develop a fully usable Dragon emulator for
Unix-like operating systems and the GP32 handheld device.  Because the
architecture of the Tandy CoCo 2 was very similar to the Dragon, it is
also possible to use it to emulate those machines too (the only major
differences are: ROM BASIC, keyboard layout).


COMPILING

Note: Al source provided with this release is just for Dreamcast, parts of code must be cleaned.

$ make

Note by RON: Actually a Dreamcast Keyboard is needed, but source includes the original XRoar
virtual Keyboard, as for example gp32 version.

Binary will be built as DragonDC.bin

At this moment all Dragon storage is based in /rd
A gui is needed too , or try to rescue the XRoar original one.




DEPENDENCIES

http://www.libsdl.org/download-1.2.php
	- SDL (including MinGW32 runtime and development libraries)
http://www.gtk.org/
	- GTK+
http://www.cobbleware.com/gp32/gp32toolchain.html
	- contains links to the GP32 SDK libraries


INSTALLATION

You will need a Dragon or CoCo ROM and optionally a DragonDOS (or
compatible) ROM.  Although I personally think that such ROMs should
be freely available, the copyright holders may think differently (and
given that Microsoft wrote the BASIC ROM, it's quite likely they do),
so I don't feel comfortable offering them up myself.  .dgn format ROMs
as used in Paul Burgin's emulators are fine.

ROM names are searched in order, with .rom or .dgn extensions.  Here are
the base names of what is searched for:

Dragon 32 ROM: dragon32, d32rom, d32, dragon
Dragon 64 ROM 1: d64rom1, d64_1, dragon64, d64, dragrom
Dragon 64 ROM 2: d64rom2, d64_2
DragonDOS ROM: sdose6, ddos10
Tandy CoCo ROM: coco, tandyrom, coco_pa, cocodisk


KEYBOARD TRANSLATION (UNIX ONLY)

Keys on the host keyboard are mapped to the emulated keyboard in
either raw or translated mode.  In raw mode, the Dragon keyboard
layout is simulated, so host keycaps might not match what is typed.
In translated mode, host keys are translated to the appropriate Dragon
sequence of keypresses, including 'pressing' shift where required.

As a side-effect of how translated mode is implemented, you can generally
type quicker on the Dragon without losing characters too.  This is less
of an issue when emulating a CoCo, as they seem to have had a better
keyboard scanning routine anyway.

A few host keyboard layouts are currently supported (only applicable in
'raw' mode), and can be selected by running XRoar with the command line
option '-keymap code', where code is one of:

Code	Keyboard layout
----	---------------
de	Germany
fr	France
uk	United Kingdom
us	United States


UNIX CONTROLS

Full keyboard support plus:
Ctrl+A	......	Cycle through artifacted video modes (hi-res only).
Ctrl+S	......	Save a snapshot.
Ctrl+L	......	Load a snapshot.
Ctrl+R	......	Reset emulated machine.  Hold shift as well for hard reset.
Ctrl+E	......	Toggle DOS emulation on/off - reset to take effect.
Ctrl+T	......	Insert virtual cassette.
Ctrl+D	......	Insert disk into drive 1 (load a virtual disk file).
Ctrl+[1-4] ...	Insert disk into numbered drive.
Ctrl+M	......	Toggle between Dragon and CoCo emulation (resets machine).
Ctrl+K	......	Toggle between Dragon and CoCo keyboard layout.
Ctrl+Z	......	Toggle between raw and translated keyboard mode.
Ctrl+C	......	Quit emulator.

Joystick support is very basic and unconfigurable at the moment, and is
based on using a PS2 controller through a PS2-USB converter (although
any joystick that SDL can see should work).


GP32 CONTROLS

The controller can be cycled through four modes by pressing the left
shoulder button.  These modes are:

 * KEYBOARD - D-pad selects a key, B presses a key, hold down right shoulder
              button to press shift.
 * CURSORS  - D-pad map to Dragon cursor keys.  B is shift, A is space, right
              shoulder button is enter.
 * RIGHT JOYSTICK - D-pad controls right joystick motion.  B is fire button.
                    A is space, right shoulder button is enter.
 * LEFT JOYSTICK - D-pad controls left joystick motion, with other controls
                   as with right joystick mode.

At any time, pressing select will bring up a menu allowing you to perform
various actions.  At present, there is no way to save a snapshot, but
you can generate them with the Unix version and upload them.

You can autoload programs from virtual cassette files from the menu.
If you manually type 'CLOADM' or 'CLOAD', remember to also manually
attach a cassette image.


CASSETTE IMAGES

Tools exist online to generate .CAS cassette images, but they only
work under DOS (or presumably Windows).  Check the software section of
http://www.dragon-archive.co.uk/ for details.  That site also includes
quite a few titles that have already been converted for your convenience.
If you wish to play the game 'Buzzard Bait' (an excellent Joust clone),
you'll *have* to download the version there, because the original
required a dongle to be inserted, and obviously I don't emulate that.
Please note that site's usage requirements, and don't abuse the archive.


SNAPSHOTS

Snapshot files are *not* compatible with the traditional .PAK files used
in other emulators.  I may support them in future, but the file format
looks pretty horrible.  This snapshot format is subject to change,
but a snapshot made in this release may well work fine in later ones.
At the moment, the most reliable way of loading programs is to use
cassette images or virtual disks, but if you have a Unix-like box,
you'll probably want to generate snapshots for your own convenience.


BUGS

Also a lot known at time of release!


ACKNOWLEDGEMENTS

The macros for manipulating the 'V' bit of the condition code register
are based on those used in the MAME 6809 core.  The rest is the result
of reading too many datasheets.


COPYING

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

See the file 'COPYING' for the full terms.
