The 1991 Amiga classic Moonstone: A Hard Days Knight, running natively on Windows — no emulator.
The real Amiga 68000 game code runs directly under an embedded CPU core on top of a
from-scratch model of the Amiga's custom chips — the blitter, the copper, bitplane
display, hardware sprites, and 4‑channel Paula audio. There is no WinUAE, no FS‑UAE,
no Kickstart ROM. Just moonstone.exe.
Why this exists: the publicly available ways to play Moonstone are rough — buggy, and they need a lot of emulator fiddling that often never quite works. This is an attempt to make the game just run: double‑click, controller in hand, no tuning.
It plays the whole game: cracktro → intro → main menu → select knight → custom name entry → equip/altar → the overland Stonehenge map → wilderness combat → towns (merchant, tavern, healer, temple) → the Valley and the Guardian → victory. Single player and 2–4 player hot‑seat, with gamepad, keyboard, and mouse support.
This project contains NO game data — none of the original graphics, audio, or code
is included or distributed here. It is only the engine that runs your own legally‑owned
copy of the game. All you need are the three original floppy disk images in a data/
folder:
| File | What it is |
|---|---|
Moonstone - A Hard Days Knight_Disk1.adf |
floppy disk image 1 |
Moonstone - A Hard Days Knight_Disk2.adf |
floppy disk image 2 |
Moonstone - A Hard Days Knight_Disk3.adf |
floppy disk image 3 |
That's it — drop those three .adf images in and run. Everything else the game needs is
read straight from the disks automatically; you never have to extract anything by hand.
(The .adf names may be shortened to Disk1.adf/Disk2.adf/Disk3.adf.)
Moonstone © 1991 Mindscape International / Rob Anderson. This project is an independent, non‑commercial reimplementation of the runtime and is not affiliated with or endorsed by the rights holders.
- Download the latest release from the Releases page and unzip it.
- Put your three original
.adfdisk images into thedata/folder (see above). - Double‑click
moonstone.exe(orPlay Moonstone.cmd).
Requires 64‑bit Windows. SDL2.dll must stay next to the exe. If something goes wrong,
the game writes moonstone.log next to the exe and pops a message box with the reason —
attach that log to a bug report.
| Controller (recommended) | Keyboard / Mouse | |
|---|---|---|
| Move / cursor | Left stick or D‑pad | Arrow keys / mouse |
| Attack · select · confirm | A / RB / RT / Start | Space / Ctrl / Enter / Left‑click |
| Cancel / back | B | Right‑click |
| Quit | — | Esc |
- Name entry (Select Knight): type on the keyboard; Backspace edits, Enter confirms.
- Selection popup (a spot offering two choices, e.g. wilderness vs. city): push Up
for the first option, Down for the second (or press
1/2). - Some screens (equip/altar, the overland map) are cursor‑based — move the pointer and press fire to act.
- Choose Practice from the main menu to drop straight into a combat arena.
You need Zig 0.13+ on your PATH (it provides zig cc,
a drop‑in C compiler — no MSVC or separate toolchain required).
bash build.sh # -> build/moonstone.exe (+ SDL2.dll)
bash package.sh # -> dist/MoonstoneReborn/ (engine only, no game data)Then put your game data in build/data/ (or dist/MoonstoneReborn/data/) and run the exe.
| Layer | What it does |
|---|---|
| CPU | Musashi 68000 core runs the original game code unmodified. |
| Chipset | From‑scratch OCS model: custom registers, CIA‑A/B timers, interrupts, copper, bitplane display + hardware sprites, blitter (area + line), Paula 4‑channel audio, cycle‑accurate beam. |
| AmigaOS HLE | Minimal exec/dos stubs so the game's own loaders, memory allocation, and file‑by‑name asset loads work. |
| Trackdisk | A faithful MFM floppy model serves the game's raw disk reads from your .adf images, with seamless automatic disk swapping. |
| Host | SDL2 for window, input (keyboard/mouse/gamepad), and audio. |
The entire engine is a single C translation unit, src/moon.c. The deep
reverse‑engineering log — every screen, FSM, and key memory address discovered along the
way — is in RE_NOTES.md.
The Moonstone Reborn engine is licensed under the GNU GPL v3.0 — see LICENSE. You're free to study, modify, and redistribute it, but any derivative you distribute must also be open‑source under the GPL. The GPL does not cover the original Moonstone game data, which remains the property of its rights holders and is never included here.
Third‑party components (Musashi, SDL2) retain their own licenses — see THIRD_PARTY.md.