Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dune Amiga → SDL (WIP)

Cryo/Virgin Dune (Amiga, 1992) reverse-engineering toward a portable C++ / SDL build (AGA enhancements later).

Authority for formats and gameplay is the Amiga binary (extracted/dunetools/disasm/dune_ira.asm), not the PC port.

Repo https://github.com/Vairn/Dune
Docs wiki (in-repo) docs/README.md
Formats docs/formats/ · format_dictionary.md
Game systems docs/game_systems_map.md
Tools docs/tools.md
Git / local trees docs/git.md

Layout

Path Role
extracted/ ADF images + unpacked disk 1 (dune, dir.0, dir.1, …) — local, gitignored
ripped/ Assets ripped from disks 2–3 — local, do not redistribute
export/ PNG / atlas / data / audio review trees — local, gitignored
src/ SDL port (hsq, sprite, viewer)
tools/ Ripper, exporters, GUIs, disasm drivers
docs/ Format dictionary, systems map, tools & git notes
build/ CMake output — local

Quick start

1. Rip assets (no emulator / ROM)

Keep your own ADFs under extracted/, then:

python tools/rip_dune_adfs.py -o ripped

Writes ripped/<asset> + ripped/manifest.tsv.

2. Browse / rebuild review assets

python tools/view_data.py          # catalog / hex / decode GUI
python tools/save_editor.py        # dune10sN.sav editor
python tools/save_editor.py ripped/dune10s0.sav

# Fresh PNG + categorized atlases under export/assets/
python tools/build_assets.py

Python deps for exporters / atlases: Pillow. Tracker UI also needs NumPy. GUIs use stdlib tkinter.

3. Build SDL remake

Requires MSYS2 UCRT64 toolchain + SDL2:

cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="C:/msys64/ucrt64"
cmake --build build

# Playable remake shell (palace explore + dialogue/map/combat stubs)
./build/dune_sdl.exe

# Debug asset viewer (legacy CLI still works)
./build/dune_sdl.exe --view fresk.hsq
./build/dune_sdl.exe fresk.hsq

Optional: DUNE_DATA=ripped, --scale N.

In-game controls: Left/Right or side pads = rooms · click hotspots · D dialogue · M map · 14 place types (palace/sietch/village/hark) · Enter = demo cutscene · Esc pause · S/L save/load · Q quit.

src/ layout: catalog cache, 320×152 compositor, .sam rooms, face/font/phrases, condit/dialogue/script VMs, combat/economy, save RLE, FLT4 tracker.

4. Disassemble (extracted/dune)

IRA (Amiga-aware labels/reassembly) + Capstone (fast M68000 listing):

# build IRA once (MinGW)
mingw32-make -C tools/external/ira -f Makefile

python tools/disasm_amiga.py

Outputs under tools/disasm/ (mostly gitignored .asm / analysis dumps):

  • dune_ira.asm — IRA V2 with labels / PREPROC
  • dune_capstone.asm — Capstone linear listing + LVO hints

Documentation map

Start at docs/README.md. Short version:

Doc Covers
docs/formats/ All file-format families + catalog 0…102 map
docs/format_dictionary.md Deep HSQ / sprites / palettes / faces / FLT4 / data
docs/game_systems_map.md Systems TOC + entry-point map
docs/systems/*.md Main loop, handlers, VMs, combat, save, music, …
docs/tools.md Every user-facing tool + pipelines
docs/git.md What is tracked, remotes, hygiene

Legal

You need your own Amiga Dune ADFs. Do not commit or redistribute extracted/, ripped/, or decoded export/ game assets.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages