A full Java-based reimplementation ("superemulator") of the engine for Dragon Wars (1990), with several bug fixes, improvements, and quality-of-life additions.
This project is dedicated to the memory of Rebecca "Burger Becky" Heineman, the original developer of Dragon Wars, who tragically died of lung cancer complications in November 2025. Her long history of reverse engineering, archiving, preserving, and developing video game source code is a constant source of inspiration to me.
- All the original EGA graphics and animation, with video scaling selectable as an in-app preference.
- All the original sound, but without the tinny PC speaker harshness! Volume levels can be set as an in-app preference.
- Save-compatible with the original game.
- Combat delay can be set as an in-app preference.
- Automatically shows the paragraphs from the manual when you step on the right square.
- Contains a list of spells for quick reference, including fixing some places where the manual is inaccurate.
- Displays, on request, a full copy of the map from the in-memory map data.
- Lets you peek at the party's data, including hidden flags and information about your inventory.
- Lets you peek at and edit the game's state flags on the fly.
- Hit Ctrl-B in travel mode to "auto-Bandage" everyone in your party.
- Fixed some bugs (see list below).
Note: In order to use this program, you'll need a copy of the game's data files (PC version). As of this writing, someone operating the "Interplay Entertainment" license seems to be re-issuing the company's old IP on more modern platforms (basically, a bundled version of DOSBOX plus the data files). In an effort to not violate their copyright, I will not distribute those data files. You can currently buy a copy of Dragon Wars on Steam or GOG for around 10 USD. Or, you can head over to the Internet Archive and play a copy for free in your browser, although you won't be able to download it.
I'm Ben Cordes, aka FraterRisus. I'm a giant fan of Dragon Wars, and have been since 1990 or so when I bought a copy of it for the family PC and played it to death. (I got real quick on stopping the blaring title music so as to not annoy the rest of my family, which is why adding a persistent sound preference was one of the first things I did after I got the music working.)
I'm also the author of what I think is the most comprehensive walkthrough ever written for this game, based not only on dozens of playthroughs but also all the work that went into reverse engineering the source code and the data files to figure out what makes them tick. Which is how we arrived here: with a complete reimplementation of the game's engine.
If you like what I'm doing here and want to encourage me to do more (or to fix bugs in this superemulator), you can drop a few bucks in my tip jar at BuyMeACoffee.
You'll need a Java runtime that supports at least Java 22, with Java 24 recommended. I use OpenJDK; other versions should also work.
- Download the latest release from the Releases page (.zip or .tar.bz2, your choice, they're the same)
- Uncompress the archive somewhere useful.
- (Recommended) Copy
DRAGON.COM,DATA1, andDATA2into thedragonjarsdirectory. - Run
bin/dragonjars(Linux, MacOS) orbin/dragonjars.bat(Windows) - Open File > Preferences and point the game at the three data files.
- Mouse support.
- Support for multiple, quicker save game slots.
- Better threading safety.
Several of these can be toggled in the Preferences dialog window, if you're looking for a """more authentic""" experience. (Although really, you can just go play in DOSBOX if you want that.)
- If you attacked with a Thrown Weapon, the original used your Fistfighting skill when determining your combat skill. This was clearly a bug, because the Thrown Weapons skill is right there!
- Thrown Weapons can now be used from the back row (slots 5-7). This one might be controversial, but I genuinely think this was a mistake by the developers rather than an intentional design choice. (Disable via preferences)
- Each combat round, the game recalculates temporary AV/DV/AC values based on your combat action. However, it inexplicably doesn't check for spell actions (which are encoded strangely), which causes it to run way off the end of some hardcoded arrays whose job is to translate your combat action into an AV/DV modifier. As a result, when a PC casts a spell, they wind up with a temporary AV/DV that doesn't make any sense. (Disable via preferences)
- Most players have never heard of the Dwarf Hammer, because the game state bit that determines whether you can see it (it's in the Dwarf Ruins) is the same as the bit for the chest behind the wizard's house in the Slave Camp. I can't think of a reason why the two would be mutually exclusive, so now the Dwarf Hammer chest is on a different bit. (Disable via preferences)
- I patched some places where leaving a map moves you to a space on the Dilmun map that doesn't make sense. Leaving Purgatory to the North should drop you at (13,5) but you end up at (15,5). Likewise, the Pilgrim Dock's exits were all off by a couple squares.
- Large Shields at Ryan's Armor in Freeport now cost the normal $1000 instead of an inexplicable $100. Sorry not sorry.
- Fixed some typos in the game's text (misplaced apostrophes, misspelled words, etc.)
- If you look closely, the automap doesn't draws walls along its eastern edge. Mine does.
- The "icy winds" region just outside your starting spot in the Depths of Nisir had a couple of mistakes, including a misplaced spinner and a square that doesn't have the right special code. Those are fixed.
- There's an occasional display bug based on a set of hardcoded "regions" in the display. The region for the party space has its Y offset set to the wrong value. You probably won't even notice I fixed this.