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
- SDCC muss installiert sein (getestet mit Version 4.2.0 oder neuer)
- Python (für Hilfsskripte, optional)
- Ein Sega Master System Emulator (empfohlen: Meka oder Gearsystem)
- 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
- Lege ein Verzeichnis für dein Spiel an:
mkdir mein-spiel
cd mein-spiel
- 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();
}
}
- 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
.ggROMs 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()undPSGSFXStop()
Weiterführende Links
- devkitSMS GitHub Repository
- SDCC Compiler Dokumentation
- SMS Power! – Sega Master System Entwicklerressourcen
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.