Retro is a PC/XT emulator written in Java. It can boot DOS, Minix and Windows 2.0, and it runs many applications and games from the CGA era.
Getting Retro
Since Retro is written in Java, it is possible to run it from a web browser as a Java Applet. Follow the link below to test the emulator and play some old PC games:
To run Retro as a normal application, download the source code and/or the compiled JAR file from the table below.
Package | File | Date |
---|---|---|
Retro 0.4 source code | retro-0.4.tar.gz | 2007-12-31 |
Retro 0.4 JAR file | retro-0.4.jar | 2007-12-31 |
Retro 0.3 source code | retro-0.3.tar.gz | 2007-09-30 |
Retro 0.2 source code | retro-0.2.tar.gz | 2007-07-29 |
Retro 0.1 source code | retro-0.1.tar.gz | 2006-12-24 |
Improvements in version 0.4
- Hardware-level emulation of the floppy disk controller.
- Bugfixes in DMA, interrupt controller, timer.
- Retro can now run Minix.
Features
Retro is far from a polished product. Simple DOS programs work on it, but many things do not work at all. If you are looking for a complete and usable PC emulator, this is the wrong place; have a look at Qemu or JPC instead.
Feature | Status |
---|---|
8086/8088 CPU | done |
Color Graphics Adapter (CGA) | done, needs more testing |
I8254 timer | seems to work, needs testing |
I8259 interrupt controller | seems to work, needs testing |
DMA controller | seems to work, needs testing |
keyboard controller | done |
custom BIOS code | incomplete but seems to work |
floppy drive BIOS-level emulation | seems to work |
floppy drive hardware emulation | seems to work, needs more testing |
harddisk | missing |
speaker | missing |
serial port | missing |
parallel port | missing |
Note that Retro emulates an IBM PC/XT, not a modern PC. It will never be possible to run modern (32-bit) operating systems on Retro.
Usage
You can start Retro directly from the JAR file:
java -jar retro.jar --floppyaimg disk.img
where disk.img
is a floppy disk image file of exactly
320k, 360k, 720k, 1200k, 1440k, or 2880k.
The disk image is opened read-only by default. To override this,
add '--floppyareadonly false
' to the command line.
Configuration settings can be passed on the command line, as in the above
examples, or through a configuration file. The sample file retro.cfg
gives an overview of the configurable settings.
For best results, run the emulator on Linux with the Sun Java JRE 1.4.2
or later. Earlier JRE versions and non-Sun Java environments are in general
too buggy; in particular there are many problems with keyboard events
under X.
The emulator does run on Windows and MacOS, but the screen may look ugly
because even the monospaced font tends to be variable width on these systems.
Development
This project is currently not actively developed or maintained. It is just a hobby, not a product.
I plan to implement at least some of the features that are listed as missing in the table above. The long term goal is to get the simulation functionally as close as possible to an actual PC/XT. Efficiency and practical usability are not primary goals; several advanced and usable PC emulators are readily available, so it doesn't make sense to compete in that area.
Contact
Comments, suggestions, bug reports are welcome at joris (a) jorisvr.nl