Das MIST Board: Klassische Computer per FPGA neu implementiert

Vor einiger Zeit besorgte ich mir einen Raspberry Pi und experimentierte mit verschiedenen Emulatoren herum. Daraus wurde eine kleine Bastelei: Der Raspberry Pi wurde zusammen mit einem Tastatur-Interface (Keyrah V2 von Individual Computers) in ein C64 Geh√§use eingebaut und der Emulator VICE sorgte f√ľr die Nachbildung des C64. Die Vor- und Nachteile diese L√∂sung k√∂nnen hier nachgelesen werden.

Jetzt konnte ich ausprobieren, wie gut eine Re-Implementierung des C64 auf einem FPGA funktioniert. Es wird dabei der C64 nicht in Software nachgebildet, sondern die Funktion des gesamten Rechners wird auf einem FPGA neu implementiert. Es gibt verschiedene Projekte, die Rechner per FPGA nachbilden, wie z.B. C-One, Turbo Chameleon 64, FPGA-64, MEGA65, Commodore 64 on FPGA und ein paar weitere. Einige davon sind auf den C64 fixiert, andere erlauben es auch andere Rechner nachzubilden.

MIST Board Projekt

Ich habe mich f√ľr das MIST Board entschieden, das vollst√§ndig aufgebaut bei der polnischen Firma Lotharek gekauft werden kann (siehe auch hier). Mit 199 EUR ist es zwar nicht ganz g√ľnstig, bietet aber eine Unterst√ľtzung f√ľr mehrere Systeme, die √ľber sogenannte FPGA-Cores nachgebildet werden:

Computer: Acorn Archimedes (in Arbeit), Amiga (AGA in Beta-Status), Amstrad CPC, Apple II+, Atari ST, Atari 800, Commodore 64, Commodore VIC-20, MSX, ZX Spectrum, ZX81

Konsolen: Atari 2600, Atari 5200, Bally Astrocade, Chip8, Colecovision, Sega Master System, NES, PC Engine, VideoPac

Arcades: Galaxian, Moon Patrol, Pacman, Pengo, Space Invaders

Der MIST wird von Lotharek in einem kleinen Metallgeh√§use geliefert, welches √ľber zahlreiche Anschl√ľsse verf√ľgt: Micro USB-Anschluss (f√ľr die Stromversorgung und zum Flashen per USB-Kabel), VGA-Monitoranschluss, drei Signal-LEDs, drei Taster, 3,5 mm Stereo-Klinkenstecker (Audio-Out), Ein-/Ausschalter, SD-Karten Anschluss, zwei DB9-Stecker (f√ľr Joysticks) und vier USB-Anschl√ľsse (f√ľr Tastatur, Maus, Joysticks und Gamepads).

Wer noch etwas basteln m√∂chte, der kann sich das Platinenlayout von der Projektseite besorgen, die Platine selbst √§tzen und anschlie√üend best√ľcken. Diese Arbeit habe ich mir diesmal erspart.

Betrieb des MIST Boards

Zum Betrieb des MIST Boards wird mindestens ein geeigneter VGA-Monitor (dazu sp√§ter), eine Tastatur, ein USB-Netzteil (der MIST kann aufgrund der geringen Stromaufnahme auch aus einem USB-Anschluss versorgt werden) und eine Speicherkarte (am Besten 1-2 GB gro√ü, es werden prinzipiell aber auch gr√∂√üere Karten unterst√ľtzt, wenn auch nicht zwangsweise vom verwendeten Core) ben√∂tigt. Je nach nachgebildeten System ist auch eine USB-Maus sinnvoll, z.B. beim Atari ST oder Amiga. Die Atari ST oder Amiga Maus k√∂nnen derzeit nicht verwendet werden. Leider gibt es derzeit keine L√∂sung die Originaltastaturen an dem MIST zu betreiben. Sch√∂n w√§re ein einfacher USB-Adapter, der es erm√∂glichen w√ľrde z.B. eine C64- oder Atari-ST Tastatur an den MIST anzuschlie√üen.

MIST C64 50 Hz ProblemAufgrund der vorhandenen Implementierung liefern einzelne Cores nicht ganz VGA-konforme Signale. So liefern die Cores im PAL-Betrieb 50 Hz, VGA setzt aber mindestens 56 Hz voraus. Auch liegen die 15 kHz des TV-Modus einiger weniger Cores weit unter den VGA-Anforderungen von mindestens 31,5 kHz. Entweder man hat Gl√ľck und der eigene Monitor vertr√§gt diese geringen Frequenzen oder das Bild l√§uft durch (siehe Bild). Im letzteren Fall sollte man versuchen den Core auf NTSC (60 Hz) umzuschalten (ggf. auch den MIST noch ein oder zweimal neu booten). Teilweise muss auch noch ein geeignetes ROM (z.B. ein amerikanisches TOS f√ľr den Atari ST) verwendet werden. Ich setze einen etwas √§lteren Samsung SyncMaster 193T am MIST ein, der im NTSC Modus ganz gut funktioniert, im PAL Modus aber meistens nur ein flackerndes Bild liefert. Auf der Projektseite gibt es eine (sehr kurze) Liste von getesteten Monitoren.

Konfiguration

Die Konfiguration ist sehr einfach: Von der Projektseite l√§dt man den gew√ľnschten Core herunter und legt ihn, ggf. zusammen mit einem Image des Betriebssystems, auf einer SD-Karte ab. Dazu kommt noch die Software, die je nach Core als Disketten-Image oder einzelne Programmdatei vorliegen muss.

F√ľr die Implementierung des C64 ben√∂tigt man nur eine einzelne Datei: Den C64 Core. Derzeit ist der Core in der Version fpga64_140710_r298.rbf aktuell. Legt man diesen unbenannt in core.rbf auf der Speicherkarte ab, l√§dt das MIST Board ihn direkt nach dem Einschalten automatisch. Die C64-Programme landen als *.PRG Datei auf der Speicherkarte. Die popul√§ren D64 Disketten-Images werden leider nicht unterst√ľtzt. Mit dem kostenlosen Tool DirMaster k√∂nnen Programme aber sehr leicht aus einem D64 oder T64-Image extrahiert werden.

Die C64-Implementierung

MIST C64 CoreHat man den C64-Core (und ggf. einige Programme) auf der SD-Karte abgelegt, muss die Karte nur noch in den MIST eingelegt und dieser eingeschaltet werden. Nach ein paar Sekunden sollte dann der C64 Bildschirm erscheinen.

Die Implementierung des C64 ist erstaunlich gut gelungen, wenn auch mit einigen Einschr√§nkungen. Viele Programme laufen problemlos, es ist aber nicht m√∂glich Programme, die aus mehreren Dateien bestehen, zu starten. Das liegt darin begr√ľndet, dass √ľber das OSD (On Screen Display, mit F12 oder der mittleren MIST Taste aufrufbar) nur eine einzelne PRG-Datei ausgew√§hlt werden kann, die dann direkt in den Speicher injiziert und damit gestartet wird. Hier ist das MIST Board also l√§ngst nicht so flexibel, wie ein herk√∂mmlichen C64-Emulator in Software, der praktisch alles lesen kann.

CGA2VGADie Video- und Soundausgabe ist gut und auch die klassischen Joystick-Anschl√ľsse funktionieren. Es sollen auch einige USB-Joysticks und USB-Pads funktionieren, was ich mangels Peripherie nicht testen konnte. Auf der Projektseite gibt es dazu eine Aufstellung.

Falls der Bildschirm flackert wird der verwendete Monitor die 50 Hz des PAL Modus vermutlich nicht vertragen. Mit dem OSD kann auf NTSC (60 Hz) umgeschaltet werden und nicht vergessen √ľber das OSD diese Einstellung zu speichern, damit beim n√§chsten Start direkt der NTSC Modus verwendet wird. Leider funktionieren aufgrund des etwas „kaputten“ Timings auch im NTSC-Modus noch l√§ngst nicht alle Monitore problemlos. Wer dann das VGA-Signal mit einem Adapter noch auf HDMI umsetzen m√∂chte, wird st√§ndig Bildaussetzer haben. Es gibt aber f√ľr ca. 25-30 EUR eine L√∂sung: Ein „CGA/EGA/YUV to VGA“ Umsetzer wandelt das etwas untertaktete VGA-Signal in ein sauberes VGA-Signal. Danach kann dieses mit einem „VGA auf HDMI“-Wandler in ein HDMI-Signal gewandelt werden. Diesen Umweg ben√∂tigt man aber nur f√ľr den C64 Core. Alle anderen Cores liefern ein sauberes VGA-Signal.

Die Belegung der Tastatur ist auch gut gelungen, diese ist aber nat√ľrlich nicht so komfortabel wie eine original C64-Tastatur, falls man Sonderzeichen verwenden m√∂chte.

Fazit

MIST C64 Fort ApocalypseDie Re-Implementierung des C64 per FPGA ist eine interessante L√∂sung. Auf einer einzigen SD-Karte kann man die Cores verschiedenster Systeme mit zig Programmen unterbringen und komfortabel zwischen diesen wechseln. Das Retro-Feeling ist bei einer FPGA Nachbildung meiner Meinung nach h√∂her als bei einem Windows-Rechner mit Software-Emulator. Aber man muss auch mit einigen Einschr√§nkungen leben, wie z.B. der sehr eingeschr√§nkten Unterst√ľtzung von Dateiformaten.

Die nachfolgende Tabelle zeigt die Stärken und Schwächen der C64 Re-Implementierung auf dem MIST Board im Vergleich zum Emulator per Software auf dem Raspberry Pi (mit Keyrah-Interface) bzw. einem Windows PC, z.B. mit VICE:

Bereich MIST Emulator (Raspberry Pi mit Keyrah V2) Emulator (Windows)
Vollständigkeit der Emulation bzw. Implementierung o [1] ++ ++
Videoausgabe + [2] ++ ++
Audioausgabe + [3]  ++  ++
Kompatibilität o [4] ++ ++
Kosten — (199 EUR) o (ca. 65 EUR) ++ (kostenlos)
Retro-Feeling + ++ [5] o
  • [1] Keine Unterst√ľtzung von virtuellen Diskettenlaufwerken (D64), Tapes (T64) oder Cartridges.
  • [2] M√∂gliche Probleme mit nicht 100% konformen VGA-Signal.
  • [3] Keine Auswahl verschiedener SID-Typen.
  • [4] Nur einzelne PRG-Dateien werden unterst√ľtzt, keine „Mehrteiler“.
  • [5] Umbau im C64-Geh√§use mit Tastatur-Interface.

Die Nachbildung eines Rechners per FPGA ist trotz der obigen Wertung sehr interessant und es macht Spa√ü sich damit zu besch√§ftigen. Ich habe auch die anderen Cores bereits ausprobiert und werde bestimmt in den kommenden Wochen √ľber meine Erfahrungen berichten.

Bild: Platine – MIST Board Projekt

2 Antworten auf “Das MIST Board: Klassische Computer per FPGA neu implementiert”

  1. Till

    Der aktuelle C64-Core bildet auch die Floppy 1541 nach und kann damit fast alle c64-Programme nutzen.

    Was man zu den Bildschirmen dazu sagen sollte: Ja, nicht jeder Bildschirm laeuft am Mist, weil es das Originaltiming verwendet. Aber: Wenn es erstmal geht, dann ist die Darstellung viel besser als bei allen Emulatoren. Vor allem butterweiches horizontales Scrolling ist die Koenigsdisziplin. Ein C64, der mit 50 Bildern pro Sekunde fluessig scrollt kann einfach nicht sauber auf einem 60Hz-Bildschirm dargestellt werden.

    Antwort

Schreibe einen Kommentar zu Till Antworten abbrechen

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