Skip to content

Undine1/moonstone-reborn

Repository files navigation

Moonstone Reborn

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.


⚠️ You must own Moonstone and supply your own game data

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.


Play it (prebuilt)

  1. Download the latest release from the Releases page and unzip it.
  2. Put your three original .adf disk images into the data/ folder (see above).
  3. Double‑click moonstone.exe (or Play 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.

Controls

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.

Build from source

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.

How it works

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.

License

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.

About

Moonstone: A Hard Days Knight (Amiga, 1991) running natively on Windows — no emulator, no Kickstart ROM. Bring your own game data.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors