CommunityCodierung & Entwicklunggithub.com

haroldo-ok/sega-master-system-skill-for-claude

Sega Master System Spielentwicklung & Portierung (devkitSMS) – Ein Claude-Skill: Verwandle eine Idee oder ein vorhandenes Spiel in ein **spielbares, verifiziertes Sega Master System `.sms` ROM** (Game Gear `.gg` und SG‑1000 ebenfalls), geschrieben in C mit **SDCC** und **devkitSMS** (sverx's SMSlib + PSGlib).

Was ist sega-master-system-skill-for-claude?

Dieser Skill ermöglicht es Entwicklern und KI-Agenten wie Claude, vollständige Sega Master System ROMs aus Ideen oder vorhandenen Spielen zu erstellen. Er nutzt die **devkitSMS**-Bibliothek (SMSlib und PSGlib) von sverx und den **SDCC**-Compiler, um C-Code in `.sms` (Master System), `.gg` (Game Gear) und SG‑1000 ROMs zu kompilieren. Der Skill unterstützt den gesamten Entwicklungsprozess: vom Schreiben von C-Sprites und Tilemaps über die Sounderzeugung mit PSGlib bis hin zur ROM-Generierung und Verifizierung. Er ist besonders nützlich für Retro-Game-Entwickler, die schnell Prototypen erstellen oder klassische Spiele auf diese Plattformen portieren möchten. Der Skill ist für Claude Code, Cursor und andere KI-Entwicklungsumgebungen optimiert und enthält Anleitungen zur Verwendung von Makefiles, Bank-Switching und Hardware-spezifischen Funktionen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add haroldo-ok/sega-master-system-skill-for-claude

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht sega-master-system-skill-for-claude?

Sega Master System Spielentwicklung & Portierung (devkitSMS) – Ein Claude-Skill: Verwandle eine Idee oder ein vorhandenes Spiel in ein spielbares, verifiziertes Sega Master System .sms ROM (Game Gear .gg und SG‑1000 ebenfalls), geschrieben in C mit SDCC und devkitSMS (sverx's SMSlib + PSGlib).

Übersicht

Dieser Skill bietet eine vollständige Entwicklungsumgebung für Sega Master System, Game Gear und SG‑1000. Er basiert auf:

  • devkitSMS von sverx – eine hochwertige C-Bibliothek für Sega-8-Bit-Konsolen
  • SDCC (Small Device C Compiler) – der Compiler für Z80-basierte Systeme
  • Emulatoren wie Meka, Gearsystem oder Emulicious zum Testen

Voraussetzungen

  1. SDCC muss installiert sein (getestet mit Version 4.2.0 oder neuer)
  2. Python (für Hilfsskripte, optional)
  3. Ein Sega Master System Emulator (empfohlen: Meka oder Gearsystem)
  4. Make (für Build-Automation)

Installation von SDCC unter macOS:

brew install sdcc

Unter Debian/Ubuntu:

sudo apt-get install sdcc make

Verwendung

Neues Projekt starten

  1. Lege ein Verzeichnis für dein Spiel an:
mkdir mein-spiel
cd mein-spiel
  1. Erstelle eine main.c-Datei mit folgendem Grundgerüst:
#include "sms.h"
#include "psg.h"

void main() {
    SMS_init();
    SMS_displayOff();
    
    // Dein Code hier
    
    SMS_displayOn();
    
    while(1) {
        SMS_waitForVBlank();
    }
}
  1. Erstelle ein Makefile:
rom = mein-spiel.sms

include $(DEVKITSMS)/Makefile.inc

Build

export DEVKITSMS=/pfad/zu/devkitSMS
make

Funktionsumfang

  • Tilemap-Verwaltung – Zeichne Hintergründe mit 8×8 Pixeln großen Tiles
  • Sprite-Handling – Bewege bis zu 64 Sprites gleichzeitig
  • PSG-Sound – Erzeuge Soundeffekte und Musik mit dem internen PSG-Chip
  • Bank-Switching – Nutze mehrere 16 KB Bänke für größere Spiele
  • Game Gear Unterstützung – Erstelle .gg ROMs durch aktivieren des GG-Modus
  • SG‑1000 Kompatibilität – Vereinfachte Grafikroutinen für SG‑1000

Beispiele

Ein einfaches Sprite anzeigen

#include "sms.h"

void main() {
    unsigned char sprite_data[16] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    };
    
    SMS_init();
    SMS_setSpriteData(0, sprite_data, SPRITEMODE_NORMAL);
    SMS_setSpritePalette(0, 0x15);
    
    SMS_displayOn();
    
    while(1) {
        SMS_waitForVBlank();
        SMS_initSprites();
        SMS_addSprite(128, 96, 0); // x, y, Tile-Nummer
        SMS_finalizeSprites();
    }
}

Tipps & Tricks

  • Verwende SMS_mapROMBank() für Bank-Switching bei Spielen > 32 KB
  • Die VBlank-Routine ist wichtig für flüssige Animationen
  • Teste mit verschiedenen Emulatoren, um Kompatibilität zu gewährleisten
  • Für Soundeffekte: PSGlib bietet PSGSFXPlay() und PSGSFXStop()

Weiterführende Links

Lizenz

Dieses Skill und das generierte ROM unterliegen den jeweiligen Lizenzen von devkitSMS (zumeist Public Domain oder MIT) und SDCC (GPL). Beachte die Lizenzbestimmungen bei der Verwendung von Drittanbieter-Bibliotheken.

Verwandte Skills