haroldo-ok

Dangerous Dave Sms — Development skill for Claude Code

Development community

A W.I.P. vibe port of "Dangerous Dave", originally from MS-DOS, into a Sega Master System ROM using Claude.

How to install Dangerous Dave Sms

This entry records only its repository, not the path inside it, so there is no exact command to give. Open haroldo-ok/dangerous-dave-sms and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Dangerous Dave Sms does

A W.I.P. vibe port of "Dangerous Dave", originally from MS-DOS, into a Sega Master System ROM using Claude.

Alternatives in Development

  • Vibe Kanban — Get 10X more out of Claude Code, Gemini CLI, Codex, Amp and other coding agents 23.5k ★
  • Hapi — App for Claude Code / Codex / Gemini / OpenCode, vibe coding anytime, anywhere 3.6k ★
  • Agent Of Empires — Manage multiple Claude Code, OpenCode agents from either TUI or Web for easy access on mobile 3.1k ★

README

Dangerous Dave – Sega Master System Port

A port of the Allegro/C++ Dangerous Dave remake to the Sega Master System, built with [devkitSMS](https://github.com/sverx/devkitSMS) and SDCC.


Project Status

Component Status
Game engine (physics, collision, logic) ✅ Complete
Level maps (3 placeholder levels) ✅ Structural skeleton
Graphics tile data ⚠️ Placeholder (all-zero) — needs art pipeline
Sound effects ⚠️ Stub functions — needs PSG data
ROM builds and passes ihx2sms ✅ Yes (32 KB)

The ROM compiles and links cleanly. To produce a *playable* game you need to run the art pipeline described below.


Building

Prerequisites

Tool Version Where to get
SDCC ≥ 4.x http://sdcc.sourceforge.net/
devkitSMS latest https://github.com/sverx/devkitSMS

devkitSMS is included partially under `SMSlib/` and `crt0_sms.rel`. `ihx2sms` is the Linux binary from devkitSMS.

make          # builds dave.sms
make clean    # removes generated files
make run      # launches in Meka emulator (if installed)

Architecture

Original vs. SMS

Aspect Original (Allegro/C++) SMS Port
Resolution 640 × 480 256 × 192
Colour depth 16-bit RGB 6-bit (64 colours, 2 palettes of 16)
Graphics Runtime BMP load (load_bitmap) Compiled-in tile arrays
Collision getpixel() on hidden bitmaps Tile-flag lookup in RAM copy of tilemap
Input key[] array (Allegro) SMS_getKeysStatus()
Audio None in source PSG stubs (PSGlib-ready)
Game loop while(!key[KEY_ESC]) busy loop SMS_waitForVBlank() locked to 60 Hz
Enemy movement sin/cos via floats 8-bit sin LUT, integer arithmetic
Levels Single level (level 6 active) 3 levels with transition logic

Coordinate scaling

The original uses a 640 × 480 canvas with Dave starting at (66, 345). Scaling to 256 × 192 (factor ≈ 0.40 H, 0.40 V):

  • Dav