This is a remake of Minesweeper for the Zeal 8-bit OS, written in C for the Z80. It ships as a single keyboard-driven init program that boots straight from the OS disk and stays inside the kernel's 48 KiB init RAM limit.
Version: v0.1.0-rc1
| Title screen | Game |
|---|---|
![]() |
![]() |
- Classic minesweeper: reveal a cell, flag a mine, chord (reveal neighbors) by pressing an already-open cell
- Fixed 14x12 board with 30 mines.
- HUD row: mines left counter, sapper banner, and an MM:SS timer.
- Keyboard and gamepad controls (arrows/WASD, Z/Space, X, R, Q).
- Levels are determined by the generated data; the seed value incorporates hardware entropy at the start.
| Action | Keys | SNES controller |
|---|---|---|
| Move the cursor | Arrows / W A S D | D-pad |
| Reveal / chord | Z / Space | B |
| Flag a mine | X | A |
| Restart | R | R shoulder |
| Quit (back to the OS) | Q | L shoulder |
Requirements:
- Zeal 8-bit OS SDK and CMake
toolchain (
ZOS_PATH) - Zeal VideoBoard SDK
(
ZVB_SDK_PATH) - zeal-game-dev-kit (
ZGDK_PATH) - zeal-coreutils (
COREUTILS_PATH) - SDCC, CMake >= 3.16
- Python 3 with Pillow (asset pipeline, checks)
Configure a zealenv.sh -style environment that exports the paths above, then:
source zealenv.sh
cmake -S . -B build
cmake --build build -jThe result lands in bin/zealmine.bin. The tile assets are regenerated from
the source GIFs and Tiled layouts in assets/ at build time.
The Zeal Dev Environment supplies the toolchain and SDK paths. From the project directory, run:
zde cmakeIn the reference emulator, with the OS image that carries the disk:
zeal-native --rom path/to/zos/os_with_romdisk.img -u bin/zealmine.binThe binary can also simply be copied to the SD card and run from the OS shell
(note the drive letter, h: is the SD card by default):
h:/zealmine.binThis game has been tested only under the Zeal 8-bit OS reference emulator — the author does not have a Zeal 8-bit computer at hand. There is no guarantee it works on real hardware (timing, video timing, SD/ROM behaviour and input can all differ), although nothing platform-specific is used beyond the standard SDK APIs. Testing on real hardware is very welcome.
Host-side unit tests for the field logic:
cc -std=c99 -Wall -Wextra -o test_field tests/test_field.c src/field.c
./test_fieldAsset sanity checks live in tools/:
python tools/check_digits.py --zts build/assets/tiles.zts \
--ztp build/assets/tiles.ztp --header src/zealmine.h
python tools/dump_tiles.py
python tools/preview_title.py -a build/assetsassets/ board, divider, soldier atlases; Tiled layouts; title GIF
src/ game, renderer, field logic, LZ77 tileset decoder
tools/ asset packing, checks, emulator driver (run_emu.py)
tests/ host C and asset regression tests
docs/ screenshots
bin/ prebuilt release binary (RC1)
This project is a non-commercial fan remake created for preservation and educational purposes.

