One ROM – Praxisbeispiel: Zwei Firmware-Versionen

One ROM – Praxisbeispiel: Zwei Firmware-Versionen in einem Retro-System

Nach den bisherigen Grundlagen und den Custom Images schauen wir uns diesmal ein konkretes Beispiel aus der Praxis an.

👉 Ziel: Zwei unterschiedliche ROM-Inhalte in einem Gerät nutzen – umschaltbar per Hardware

Das ist einer der Fälle, in denen One ROM seine Stärken voll ausspielt.


Ausgangssituation

Viele Retro-Systeme (z. B. alte Computer, Steuerungen oder Spielekonsolen) arbeiten mit fest verbauten ROMs.

Typische Probleme:

  • Original-ROM ist schwer zu bekommen
  • EPROMs müssen gebrannt werden
  • mehrere Versionen lassen sich nur umständlich testen

👉 Genau hier kommt One ROM ins Spiel.


Ziel des Projekts

In diesem Beispiel wollen wir:

  • Original-Firmware behalten
  • modifizierte Firmware testen
  • zwischen beiden Versionen umschalten können

Und das Ganze ohne EPROM-Brenner.


Benötigte Hardware

  • One ROM (Fire oder Ice – je nach Aufbau)
  • Zielsystem mit gesockeltem ROM
  • optional: Jumper oder Schalter für Umschaltung

Vorbereitung der ROM-Dateien

Du brauchst zwei Dateien:
  1. Original-ROM
    → ausgelesen oder aus dem Netz
  2. Modifiziertes ROM
    → gepatcht / angepasst

Wichtig:

  • beide müssen die gleiche Größe haben
  • typischerweise .bin-Dateien

👉 Falls die Größe nicht passt, kannst du sie mit Tools einfach anpassen (padding).


Custom Image erstellen

Jetzt geht’s ins Web-Interface: https://onerom.org/web/

Schritt 1: Verbinden

  • One ROM anschließen
  • „Connect“ klicken

Schritt 2: Custom Image auswählen

Im Bereich Programming → Custom Image wechseln.


Schritt 3: ROM-Slots belegen

Jetzt legst du zwei Slots an:
  • Slot 0 → Original-ROM
  • Slot 1 → modifiziertes ROM

Beide bekommen:

  • gleiche Größe
  • gleiche Adresszuordnung

Schritt 4: Umschaltung konfigurieren

Jetzt kommt der spannende Teil.

Du definierst, wie zwischen den ROMs gewechselt wird:

  • über einen GPIO-Pin
  • oder eine Steuerleitung (z. B. Axx / CS)

👉 Einfachste Variante:
Ein Pin wird als „Select“ verwendet:

  • LOW → Slot 0
  • HIGH → Slot 1

Schritt 5: Flashen

  • „Program“ klicken
  • warten, bis „Erasing“ und „Programming“ durch sind

👉 Fertig.


Einbau ins Zielsystem

Jetzt wird das One ROM wie ein normales ROM eingesetzt:

  • in den Sockel stecken
  • auf richtige Ausrichtung achten (!)

Falls du einen Umschalter nutzt:

  • Schalter zwischen GND und Signalpin
  • ggf. Pull-Up/Pull-Down beachten

Testlauf

Beim Einschalten kannst du jetzt testen:

  • Stellung 1 → Original-Firmware
  • Stellung 2 → modifizierte Version

👉 Das Umschalten funktioniert je nach System sogar im laufenden Betrieb – aber vorsichtig testen!


Typische Anwendungen

Dieses Setup ist extrem vielseitig:

  • Debug vs. Release-Firmware
  • verschiedene Software-Versionen
  • Sprachversionen
  • Test- und Experimentierumgebungen

Häufige Fehler

❌ System startet nicht

  • falscher ROM-Typ eingestellt
  • Adressleitungen passen nicht

❌ falsche Inhalte

  • ROM falsch zugeordnet
  • Image nicht korrekt erstellt

❌ Umschaltung funktioniert nicht

  • falscher Pin gewählt
  • kein sauberer Pegel

👉 Tipp: Erst mit nur einem ROM testen, dann erweitern.


Erfahrung aus der Praxis

Gerade beim Experimentieren ist das ein riesiger Vorteil:

Früher:

  • EPROM brennen
  • einsetzen
  • testen
  • wieder rausnehmen
  • EPROM mit UV-Löschgerät löschen

Heute:

  • im Browser klicken
  • flashen
  • fertig

👉 Das spart enorm Zeit – und schont die Hardware.


Fazit

Dieses Beispiel zeigt sehr gut, warum One ROM so interessant ist:

  • ersetzt mehrere EPROMs gleichzeitig
  • ermöglicht schnelles Testen
  • reduziert Hardware-Aufwand

Und das alles mit einem kleinen Board und einem Browser.


Ausblick

Mögliche nächste Themen:

  • Mehr als zwei ROMs (Bank-Switching)
  • komplexe Mapping-Strategien
  • Timing-Probleme und Lösungen
  • konkrete Systeme (z. B. C64, Arcade-Boards, etc.)
Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert