← Zurück zur Blogübersicht

plus4emu – Der C/C++-Ritt durch die Hölle

Commodore plus4 Retrokram C C++ Mac Emulator Programming 26.06.2026

Eigentlich war das Ganze überhaupt nicht geplant.

Während wir auf neue Testpakete für den MeDFLIstvan Editor warteten, entstand plötzlich die Idee:

_"Wenn wir gerade sowieso einen Mac mit funktionierender Entwicklungsumgebung haben ... könnte man doch eigentlich auch gleich den plus4emu kompilieren."_

Schließlich stammt der Emulator ebenfalls von István Varga und gilt bis heute als einer der präzisesten Commodore Plus/4 Emulatoren überhaupt.

Also schnell das Repository geklont.

Was sollte schon schiefgehen?

Erste Runde: FLTK sagt Nein


Der erste Buildversuch endete nach wenigen Sekunden.

Checking for package FLTK... no
* error configuring FLTK

Kein Problem.

FLTK war bereits installiert.

Nur wusste das Buildsystem offenbar nichts davon.

Also begann die Fehlersuche.

pkg-config

fltk-config

PKG_CONFIG_PATH

Homebrew.

Include-Pfade.

Library-Pfade.

Eigentlich war alles vorhanden.

Nur SCons behauptete weiterhin hartnäckig das Gegenteil.

Willkommen in der SConstruct


Irgendwann war klar:

Nicht das System war das Problem.

Das Build-Skript selbst musste angepasst werden.

Also wurde die SConstruct Datei geöffnet.

Eigentlich wollte ich dort nur kurz nachsehen.

Am Ende hatten wir:
  • zusätzliche Include-Pfade
  • Library-Pfade ergänzt
  • Homebrew-Verzeichnisse eingetragen
  • Debug-Ausgaben eingebaut
  • einzelne Paketprüfungen teilweise umgangen

Aus einem "mal kurz kompilieren" wurde langsam ein chirurgischer Eingriff am Buildsystem.

Boss Nummer zwei bis fünf


Kaum war FLTK erledigt, erschienen die nächsten Gegner.

Checking for package sndfile... no

Dann:

Checking for package PortAudio... no

Danach:

SDL/SDL.h file not found

Und als endlich fast alles kompiliert war:

ld: symbol(s) not found for architecture arm64

An diesem Punkt wurde deutlich:

Der eigentliche Gegner war längst nicht mehr der Emulator.

Es war das Buildsystem.

Jedes gelöste Problem brachte zuverlässig das nächste hervor.

Schritt für Schritt Richtung Ziel


Anstatt aufzugeben, arbeiteten wir uns einfach weiter durch.

Ein Paket nach dem anderen.

Eine Fehlermeldung nach der anderen.

Homebrew lieferte die Bibliotheken.

Die SConstruct-Datei bekam weitere Anpassungen.

SDL wurde auf die aktuelle macOS-Installation angepasst.

Irgendwann hatte man das Gefühl, nicht mehr den Emulator zu bauen, sondern das komplette Buildsystem umzuerziehen.

Der schönste Satz des Tages


Nach unzähligen Fehlermeldungen erschien schließlich:

scons: done building targets. 🥳

Fast schon ungewohnt.

Kein "error".

Kein "package not found".

Einfach fertig.

Der Emulator war tatsächlich erfolgreich für Apple Silicon kompiliert.

Und dann wartete die nächste Überraschung


Der Emulator startete. 🤩

Allerdings erschien zunächst nur die bekannte Meldung, dass die Commodore-ROMs fehlen würden.

Also kurz in den Projektordner geschaut.

Und tatsächlich:

Der komplette roms-Ordner lag bereits im Repository.

Einfach den Pfad einstellen.

Neustart.

COMMODORE BASIC V3.5

60671 BYTES FREE

READY.
(plus blinkender Cursor 🫡)

Dieser Moment war wahrscheinlich das eigentliche Highlight des gesamten Projekts.

Nach Stunden voller Buildfehler erschien plötzlich wieder genau derselbe Startbildschirm, den ich Jahrzehnte zuvor auf echter Commodore-Hardware gesehen hatte.

Fazit


Rückblickend war das wahrscheinlich eines der verrücktesten "Nebenprojekte", die ich je gestartet habe.

Eigentlich wollten wir lediglich die Zeit überbrücken, bis neue Testversionen des MeDFLIstvan Editors eintrafen.

Stattdessen kompilierten wir unterwegs noch den Emulator seines Autors komplett neu für Apple Silicon.

Was als kleiner Zeitvertreib begann, entwickelte sich zu einem echten C/C++-Abenteuer voller Homebrew-Pakete, Build-Skripte, Linkerfehler und SCons-Eigenheiten.

Und trotzdem hat sich jede Minute gelohnt.

Denn am Ende stand wieder dieser eine Bildschirm:

READY.

Manchmal reicht genau das, um sich für einen kurzen Moment wieder wie der Junge zu fühlen, der damals zum ersten Mal einen Commodore Plus/4 eingeschaltet hat.

Ähnliche Artikel


💬 Kommentare

Noch keine Kommentare vorhanden.

🗣 Kommentar schreiben







Dein Kommentar wird nach Freigabe sichtbar.

⬅️ Zurück zur Übersicht