
Ultima I Unity
Rebuilding the 1987 DOS Remake of
Ultima I: The First Age of Darkness
Pulling apart the original DOS binaries to figure out how they work, filling in the gaps where things aren't clear, and putting it back together in Unity, one commit at a time.
Please consider purchasing the official release of Ultima I from GOG.com before downloading this fan project.
Trying to Rebuild a Classic
This project works from the binary data files and decompiled executables of the 1987 DOS remake. Some things map cleanly, others take a lot of trial and error. Where the original data runs out, the project borrows assets and ideas from other versions of the game.
Binary Archaeology
Digging through the original DOS binary formats: EGA row-planar tiles, nibble-packed overworld maps, column-major town data. Some structures decoded cleanly; others required guesswork and testing against the running game.
Switchable Graphics
The original EGA and CGA palettes are in, alongside Tandy, VGA, C64, FM Towns, and IIGS looks, plus borrowed tilesets from Ultima II, III, IV, and V. Graphics can be set per context in the options menu, so the world can be seen through different eras of the series.
Complete World
168×156 overworld, 40 enterable locations (8 castles, 32 cities), multi-level dungeons, and a full star system. Town coordinates came from cross-referencing multiple sources where the binary data alone wasn't conclusive.
Game Systems
Turn-based combat, space battles, XP-based leveling, inventory, vehicles, and NPC dialogue. Combat formulas were decompiled from the original EXE where possible. Some edge cases are best-effort recreations.
Community References
Where the binary data alone wasn't enough, these community resources helped fill in the gaps, documenting game mechanics, formulas, sprites, and quirks that would have taken far longer to reverse-engineer from scratch.
Ultima Dragons
Special thanks to members of the Ultima Dragons Discord who dug through their own archives and helped track down sprites that weren't available anywhere else:
Music
Several selectable soundtracks bring the game to life beyond the original PC speaker beeps, from the FM Towns and PC-98 versions through arrangements borrowed from later Ultima games, along with original arrangements contributed by community musicians.
▶Uncle Willy Tracks on MajuularcadeSystems Implemented
Overworld Exploration
168×156 tile overworld with towns, castles, dungeons, and encounters. Spawn tables are approximated from observed behavior since the exact original logic isn't fully understood.
Towns & Castles
40 interior maps with NPCs, shops, kings, and princesses. Some NPC placement was reconstructed from partial data and cross-referenced with community maps.
Dungeon Crawling
First-person wireframe dungeons with trap doors, coffins, and treasure. Optional FM Towns and Ultima V textured wall modes for a different look.
Space Combat
Cockpit-view battles, station docking, and hyperspace jumps. The behavior is a best guess from decompiling SPACE.EXE, close but probably not byte-exact.
Sound & Music
The 1987 DOS original was mostly PC speaker beeps, so the fuller soundtracks come from later ports. Several selectable music sets and SFX packs are included, spanning the FM Towns and PC-98 versions and arrangements borrowed from later Ultima games.
Multi-Tileset Rendering
A growing set of tilesets: the original EGA and CGA plus Tandy and VGA, C64, FM Towns, and IIGS, alongside borrowed art from Ultima II, III, IV, and V. Graphics can be chosen per context in the options menu, with animated sprites and depth-based water shaders in the newer modes.
On the Roadmap
Planned work, in no particular order. Nothing here is promised or scheduled.
Dungeon Fixes
Closed doors like the FM Towns version, corner draw bugs, east-west-only door limits matching the original, and dungeon pit trap detection with spiked rope saves.
More Sound Effects & Music
Import sound effects from Ultima II through V. Add NES Exodus and NES Ultima IV soundtracks, plus MSX2 and PC-88 Ultima I music and effects.
More Tile & Sprite Sets
CGA Ultima I space graphics, NES Exodus and NES/Master System Ultima IV overland and town sets, Apple IIGS overland tiles and dungeon sprite cleanup, plus MSX2, PC-88, and PC-98 Ultima I tilesets.
Visual & Graphics Options
CRT and Apple II graphic filters, Apple II/Atari borderless UI and space modes, a directional sprite toggle for overland, ranged attacks using Ultima III/IV/V projectile sprites, custom UI color selection, and removing the tracking pixel from the Fujitsu opening.
Gameplay & Quality of Life
Prompts to equip newly acquired gear and spells (with a toggle), an attribute-point check during character creation, a gameplay tutorial, a fix for sex selection in the 1981 Apple II character gen, and a congratulations screen with a shareable certificate when the game is beaten.
Input & Accessibility
Mouse support for character creation, selection menus, stores, and king's quest prompts. An Android build with touch screen controls.
Mod Support
Let players load their own custom sound, music, and tile/sprite packs.
Code & Housekeeping
Identify areas for code organization and execution improvement. Edit and finalize the credits.