Vor 35 Jahren: Pac Man erblickt das Licht der Welt

1980 war Toru Iwatani die üblichen Ballerspiele leid, sogar die seines eigenen Unternehmens Namco, wie z.B. Galaxian. Er möchte ein Videospiel entwickeln, das mehr an ein Comic erinnert, als an ein Videospiel und das sowohl Frauen als auch Männer gleichermaßen anspricht. Inspiriert durch die Pizza, in der ein Stück herausgeschnitten wurde, ist sein ursprünglicher Entwurf eine animierte Pizza mit einer fehlenden Ecke als Mund, die sich durch ein Labyrinth bewegt und alles, was ihr in den Weg kommt, frisst. Aufgrund der beschränkten graphischen Fähigkeiten in dieser Zeit, wird die Pizza nur als solider gelber Kreis dargestellt. Die fehlende Ecke als Mund bleibt aber erhalten.

Puckman wird am 22. Mai 1980 in einer Spielhalle im Tokioter Viertel Shibuya öffentlich getestet, fertig ist es aber erst im Juli. Es ist in Japan ein absoluter Hit und verursacht wie zuvor Space Invaders eine Münzknappheit als zehntausende von Automaten aufgestellt werden.

Midway unterschreibt schon kurz darauf ein Lizenzabkommen und veröffentlicht es in Nordamerika. Für die Umsetzung wird der Name des Spiels und des Hauptdarstellers geändert und zwar in Pac-Man, damit Vandalen das “P” nicht durch ein “F” ersetzen können.

Mehr über Pac-Man uns seiner Entstehung gibt es in diesem Bericht.

Vor 30 Jahren: Das Atari 7800 ProSystem wird angekündigt

Vor 30 Jahren, am 21.5.1984, kündigte Atari das Atari 7800 ProSystem als Nachfolger der Atari 5200 Konsole auf der Summer Consumer Electronics Show (CES) an. Aufgrund des Verkaufs von Atari an Jack Tramiel zog sich der Verkaufsstart der neuen Konsole aber noch bis zum Januar 1986 hin, es kamen aber dennoch einige wenige Geräte bereits im Juni 1984 in Südkalifornien auf den Markt.

Das Atari 7800 ProSystem besaß einfache digitale Joysticks und war fast vollständig kompatibel zum Atari 2600. Technisch war es ein Atari 2600 mit besserer CPU (Atari SALLY 6502C) und neuem Grafikchip (MARIA). Das Besondere am 7800 ProSystem war, dass es sehr viele Objekte flackerfrei darstellen konnte. Leider wurde nur der alte Soundchip (TIA) vom 2600 verbaut. Besserer Sound sollte durch den Einsatz eines besseren Chips (z.B. dem POKEY) im Spielmodul ermöglicht werden.

Auf der CES wurden 13 Spiele angekündigt: Ballblazer, Centipede, Desert Falcon, Dig Dug, Food Fight, Galaga, Joust, Ms. Pac-Man, Pole Position II, Rescue on Fractalus! Robotron: 2084, Track und Field und Xevious.

Leider dominierte das Nintendo Entertainment System bereits den Markt, so dass das 7800 ProSystem keine wirkliche Chance auf große Marktanteile besaß. Obwohl es sich in den USA recht gut verkaufte und es auf Platz 2 der Verkaufscharts schaffte, lag es mit ca. 3,77 Mio. verkauften Geräten weit hinter dem NES mit über 34 Mio. Geräten.

Mehr über Atari und das Atari 7800 ProSystem gibt es in diesem Beitrag.

Bild: Atari 7800, CC-BY-SA Evan Amos

Das MIST Board: Klassische Computer per FPGA neu implementiert (Teil 2)

In diesem Beitrag hatte ich über das MIST Board und dessen Implementierung des C64 berichtet. Das MIST Board kann aber auch noch zahlreiche weitere Systeme implementieren, wie z.B. den Atari ST, Atari 2600, Atari 5200 oder Atari 800 (XL/XE).

Atari ST

MIST Atari ST DesktopDie Konfiguration des Atari ST ist einfach: Den gewünschten Core von der Projektseite herunterladen und ihn zusammen mit einem Image des TOS Betriebssystems auf einer SD-Karte ablegen. Für meinen Test verwendete ich den Core core_150413_r1017.rbf und ein amerikanisches TOS 2.06. Damit das System direkt startet wurde der Core in core.rbf umbenannt, das TOS muss als tos.img auf der SD-Karte gespeichert werden. Damit der Systemstart nicht ewig dauert, sollte zudem auch das Diskettenimage disk_a.st und (optional) das Harddiskimage harddisk.hd vorhanden sein. Vorbereitete Images bekommt man ebenfalls von der Projektseite. Sinnvoll ist auch noch die Datei system.fnt, damit der originale Atari ST Zeichensatz angezeigt wird.

MIST Atari ST LemmingeDer Atari Core kann Programme nicht direkt von der SD-Karte laden, sondern nur aus Disketten- oder Harddiskimages. Man muss also vorher seine Software entsprechend in einem solchen Image speichern. Mit dem Atari Emulator “Hatari” ist das recht leicht möglich. Mit diesem legt man zunächst ein leeres Image an, mountet dann ein Windows-Verzeichnis als zweites Laufwerk und kopiert die gewünschten Dateien auf das Image. Das ist unnötig umständlich, aber derzeit leider nicht anders möglich.

Der Core bildet den ST sehr gut nach. Sowohl die Monochrom-Auflösung als auch die beiden Farbauflösungen funktionieren wie erwartet. Anwenderprogramme, wie 1st Wordplus oder Calamus, liefen problemlos. Auch Spiele (inklusive Sound) funktionieren fehlerfrei und verwenden die angeschlossene USB-Tastatur bzw. USB-Maus als Eingabegeräte. Eine Atari-Maus kann am MIST nicht verwendet werden. Hat man das MIST Board um MIDI-Anschlüsse erweitert, sollen diese ebenfalls unterstützt werden, austesten konnte ich dieses Feature nicht.

Atari 2600

MIST Atari 2600

Sehr viel einfacher als ein Atari ST ist der Atari 2600 zu implementieren. So waren mit dem verwendeten Core a2600_141212_r719.rbf auch keine Probleme zu erwarten. Erfreulich ist, dass der Core *.a26 Dateien direkt von der SD-Karte lesen kann. Es reicht also aus die Spiele auf die SD-Karte zu kopieren.

Die Implementierung ist fehlerfrei. Alle getesteten Spiele liefen problemlos. Die Steuerung erfolgt über die Tastatur oder über einen Joystick bzw. Gamepad.

Atari 5200 / Atari 800 (XL/XE)

MIST Atari 5200Die Atari 5200 / Atari 800 (XL/XE) Implementierung ist etwas komplizierter einzurichten. Es müssen mehrere Verzeichnisse angelegt werden: \atari800, \atari800\rom, \atari800\user, \atar5200, \atar5200\rom, \atar5200\user (man beachte das fehlende “i” bei “atar5200″). In den rom-Ordner gehören beim Atari 800 die Dateien ataribas.rom, atariosb.rom und atarixl.rom und beim Atari 5200 nur die Datei 5200.rom.

Die Spiele werden in den jeweiligen user-Ordner kopiert. Dabei sind mehrere Formate möglich: *.a52, *.atr, *.xfd, *.xex sowie *.car und *.bin. Die Core Datei liegt wieder im Hauptverzeichnis. Ich benutzte den atari5200core.rbf Core vom 22.4.2015.

Die Implementierung ist tadellos. Auch hier funktionierten alle getesteten Programme problemlos. Gewöhnungsbedürftig ist die Simulation eines Atari 5200 Gamepad über die Tastatur. Es kann aber auch ein normaler Atari Joystick angeschlossen werden.

Fazit

Als Fazit ist festzuhalten, dass die Implementierung der Atari-Systeme sehr gut gelungen ist. Bei der Implementierung des Atari STs würde ich mir noch wünschen, dass der Core direkt Dateien aus dem Dateisystem der SD-Karte lesen könnte bzw. die SD-Karte als Harddisk zur Verfügung stellen könnte. Die MIST Menüs der 8-Bitter sollten zur Bequemlichkeit den Wechsel zurück zu einem anderen Core ermöglichen ohne extra einen Reset ausführen zu müssen.

Bild des Tages: Eine Uhr für die moderne, informationsorientierte Gesellschaft

Gut 32 Jahre vor der Apple Watch gab es bereits “smarte” Uhren. Seiko brachte 1983 das Modell M516-4009 heraus. Mit den zwei eingebauten 16 kbit Speichermodulen (4 KByte) konnte dieses Modell eine Sprachnachricht von vier oder acht Sekunden Länge aufzeichnen.

Dieses Feature war Grund genug, um im Handbuch zu schreiben:

Sie sind nun stolzer Besitzer einer SEIKO Digitaluhr Kal. M516, die mit einer Sprachspeicherfunktion versehen ist, um den Ansprüchen der modernen, informationsorientierten Gesellschaft gerecht zu werden.

Auf YouTube gibt es einige Videos, die zeigen, wie gut bzw. schlecht dieses kuriose Feature funktionierte. Es war so “modern”, dass sogar die Geisterjäger im Film Ghostbusters diese Uhr trugen.

In den 1980ern gab es einige Digitaluhren mit Features, über die man sich heute amüsiert. Wer erinnert sich nicht an die ersten Uhren mit Taschenrechner, deren Tasten so klein waren, dass man eine Nadel brauchte, um die Ziffern einzugeben, wie z.B. bei diesem Modell aus dem Jahre 1981.

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

Tipp: Spiel das Spiel

Stage 4 Level 5Ultimative Play the Game entwickelt sich Anfang der 80er Jahre zu einem hoch gelobten Entwickler von Videospielen der frühen Heimcomputer-Ära. Nach dem Verkauf an U.S. Gold und Rückkauf durch Rare, Limited, entwickelte Ultimate erfolgreich Spiele für das NES. Seit dem Aufkauf durch Microsoft in 2002 entwickeln sie Spiele für die Xbox.

Zum Artikel: Computerspiele – Spiel das Spiel

MAME/MESS 0.161 veröffentlicht

Heute wurden neue Versionen des MAME (Multiple Arcade Machine Emulator) und des MESS (Multiple Emulator Super System) veröffentlicht.

Die aktuelle Statistik für MAME 0.161:

Active Sets 31002
·Parents 4541
·Clones 20750
·Others 5641
·BIOS 70

Active ROMs 228444
·Parents 41622
·Clones 139319
·Others 43074
·bad dumps 1341
·no dumps 2746
·verified dumps 0
·BIOS 342

Active CHDs 829
·Parents 88
·Clones 128
·Others 299
·bad dumps 185
·no dumps 128
·verified dumps 0
·BIOS 1

Active Samples 9008
·Parents 605
·Clones 8219

Active Bytes 175gb (407gb mit CHDs)

Auf der MAME Homepage stehen wie immer die Binaries zum Download bereit.