Multi-System Emulator: RetroArch fĂŒr Raspberry Pi

Vor einer Woche habe ich im Beitrag USB-Adapter fĂŒr Commodore Tastaturen einen C64-Emulator basierend auf Vice 2.4, dem Raspberry Pi und dem USB-Adapter Keyrah vorgestellt.

Inzwischen habe ich zusĂ€tzlich RetroArch installiert. RetroArch ist ein einfaches Frontend fĂŒr libretro, welches zig Emulatoren vereinigt, z.B. NES, SNES, GameBoy (Advance, Color), MAME, C64, ZX Spectrum, Apple II, Atari 800, Amiga, Sega Game Gear, Sega Genesis, u.a. Sinnvoll ist auch noch ein Benutzer-Frontend wie Emulatorstation mit dem man Spiele bequem auswĂ€hlen kann.

Leider ist das ganze aufgrund der vielen zusĂ€tzlich benötigten Bibliotheken nicht ganz einfach zu installieren. Aber fĂŒr eine Installation auf dem Raspberry Pi gibt es eine Lösung: RetroPie-Setup. Hiermit können alle benötigten Bibliotheken, RetroArch und Emulatorstation auf einmal installiert werden. Leider war die Installationsmöglichkeit, dass man selbst kompiliert und somit die aktuellsten Stand der Emulatoren erhĂ€lt, bei mir nicht lauffĂ€hig. Nach ca. 8 Stunden war die Übersetzung zwar beendet, aber fast kein Emulator lauffĂ€hig. Die Binary-Installation installierte danach aber problemlos in ein paar Minuten alle Emulatoren und funktionierte.

Wie schon beschrieben, habe ich an den Raspberry Pi eine original C64 Tastatur ĂŒber Keyrah angeschlossen. Leider gab es nach der Installation von RetroArch ein kleines Problem: Der USB-Adapter Keyrah schien nicht mehr zu funktionieren. Es stellte sich heraus, dass der Raspberry-Pi erst gebootet werden musste und dann Keyrah per USB angeschlossen werden durfte. Ich habe dieses jetzt ĂŒber einen Schalter an der RĂŒckseite des C64 GehĂ€uses gelöst. Leider gilt auch hier wieder fĂŒr den Einsatz von Keyrah unter anderen Emulatoren als Vice das im letzten Beitrag erwĂ€hnte Problem.

USB-Adapter fĂŒr Commodore Tastaturen

Vor einiger Zeit hatte ich mir ĂŒberlegt, einen Raspberry Pi in ein altes C64 GehĂ€use einzubauen und mit Hilfe eines Emulators, wie z.B. VICE, einen „modernisierten“ C64 zu bauen. Leider fand ich damals keine Möglichkeit die C64 Tastatur mit wenig Aufwand mit dem Raspberry Pi zu verbinden. Zwar hat dieser fĂŒr solche Zwecke GPIOs zur VerfĂŒgung, aber man hĂ€tte außer etwas Logik auch noch ein geeignetes Skript auf dem Raspberry Pi gebraucht, um die TastendrĂŒcke zu simulieren. Leider erkennen nicht alle Emulatoren diese simulierten TastendrĂŒcke, so dass ich diese Möglichkeit wieder verwarf.

Der USB Tastatur-Adapter

Keyrah v2 mit Raspberry Pi im C64 GehĂ€useAber ĂŒber dieses Problem haben sich auch schon andere Gedanken gemacht: Von der Firma Individual Computers gibt es einen USB-Adapter mit dem eine C64 Tastatur (wahlweise auch VC20, C128(D), C16, C116, Plus/4, Amiga 1200/600) per USB an einen PC (und damit auch an einen Raspberry Pi) betrieben werden kann. Mit einem Preis von 35-40 EUR ist der Adapter zwar nicht gerade gĂŒnstig, aber durch sein Platinendesign passt er perfekt in ein C64 GehĂ€use und vereinfacht den Aufbau eines C64 Clones ungemein.

Übersetzungsprobleme unter Windows/Linux

Wo Licht ist, gibt es aber auch Schatten…

Die Idee eines solchen Adapters ist eigentlich die Tastaturmatrix der Commodore Tastatur auszuwerten und geeignete Scancodes an den angeschlossenen PC zurĂŒck zu liefern, so dass auf diesem die korrekten Zeichen erscheinen. Prinzipiell unterstĂŒtzt Keyrah auch zwei Modi: In dem einem Mode werden Scancodes geliefert, die eine Verwendung unter Windows oder Linux ermöglichen sollen, der zweite Mode solle einen problemlosen Betrieb unter Vice ermöglichen.

Egal welchen Mode man unter Windows/Linux verwendet: Es werden praktisch nur die alphanumerischen Tasten mit wenigen Sondertasten korrekt zurĂŒckgeliefert. Dabei wirbt individual Computers noch „the ‚middle‘ position [is] for everyday use. The emulator mapping is as easy as it can get: Every keypress will cause the exact thing that you’d expect the original machine to do when you press that key„. Darunter versteht man dann im „everyday mode“ die folgende Umsetzung: Ein Druck auf „@“ liefert „\“ oder „|“ (US Layout ohne und mit Shift) oder „Ü“ (DE Layout). Ok, so kommt man auch an Umlaute, wenn man Windows oder Linux arbeitet, intuitiv ist das aber nicht. Unter „everyday use“ verstehe ich, dass mit der C64 Tastatur unter Windows oder Linux die Zeichen geliefert werden, die auf der C64 Tastatur auch aufgedruckt sind und in Zusammenspiel mit der Control-, Commodore- oder Umschalt-Taste dann weitere Keycodes generiert werden, die eine normale C64 Tastatur nicht besitzt, z.B. F9-F12, Windows, Alt gr, Umlaute, Cursorblock etc.

Ich will mit der Tastatur aber auch nicht unter Windows oder Linux arbeiten, sondern unter Vice. Wie schlĂ€gt sich der Keyrah im Modus fĂŒr Vice?

Betrieb unter Vice

Schon vorweg: Auch der Betrieb unter Vice ist nicht 100% optimal, aber durchaus brauchbar. Die Umsetzung lĂ€uft dabei wie folgt ab: Auf einer Windows Tastatur stehen einige Tasten einer C64-Tastatur nicht zur VerfĂŒgung, so dass diese durch andere Tasten simuliert werden mĂŒssen (z.B. die Commodore Taste durch die Alt Taste), i.d.R. sind diese bei einem Emulator auch konfigurierbar. Ein guter Tastaturadapter sollte jetzt alle Zeichen, die von einer C64 Tastatur geliefert werden, auf die entsprechenden Codes der Windows Tastatur umsetzen inkl. der Ersatztasten. Der Emulator, z.B. Vice, sollte diese dann wieder fĂŒr das simulierte System zurĂŒck auf die Originaltasten umsetzen (also z.B. Control links wieder auf die Commodore Taste). So die Idee in der Theorie. Leider setzt Keyrah einige wenige Tasten abhĂ€ngig zum Tastaturlayout nicht optimal um, so dass Programmieren unter Vice mit einer C64 Tastatur unter UmstĂ€nden nur bedingt möglich ist, weil gerade diese Taste nicht erreichbar ist. Mit dem deutschen Tastaturlayout (German, DE) unter Raspbian ist es mir nicht gelungen ein „-“ (Minus) mit der C64 Tastatur einzugeben. „showkey -a“ liefert dafĂŒr keinen Code zurĂŒck (mit der Option „-s“ wird der Scancode 0B 8B zurĂŒckgegeben). Mit dem englischen Layout (English, US) klappt es besser, hier sind alle Tasten erreichbar, sogar die Grafikzeichen.

Damit das aber problemlos klappt, muss unter Vice die passende Keymap geladen sein. Meine Erfahrungen mit den vorhanden Keymaps sind bis Vice 2.2 durchwachsen. Der Hersteller stellt inzwischen im SVN an den Keyrah angepasste Keymaps zur VerfĂŒgung. Die deutsche Umsetzung ist (bis auf das Problem mit der „-“ Taste) brauchbar, fĂŒr eine englische Tastaturbelegung wĂ€re die bei Vice beiliegende Umsetzung (sdl_sym.vkm) in Ordnung (die vom Hersteller zu diesem Zeitpunkt bereitgestellte Keymap lief bei mir nicht), wĂ€re dort nicht ein kleiner Fehler vorhanden: FĂŒr die Umsetzung von „-“ nach „+“ ist anstelle von „43 5 0 8“ der Wert „45 5 0 8“ korrekt. Eine korrigierte Version fĂŒr Vice 2.2 habe ich verlinkt. Mit dem aktuellen Vice 2.4 ist dieser Fehler korrigiert.

Die wirklich „wichtigen“ Kommandos LOAD „$“,8 : LIST und LOAD „program“,8,1:RUN können aber problemlos unter jeder Vice Version eingegeben werden.

Spielen unter Vice

Ein eindeutiger Pluspunkt des Keyrah sind die zwei Joystick-Ports. Im „everyday mode“ liefert Port 2 numerische Keycodes (Rechts=6, Links=4, Hoch=8, Runter=2, Feuer=5) und Port 1 die Cursorkeys mit Leertaste als Feuertaste. Im Emulationsmode bleibt Port 2 wie er ist, Port 1 liefert ebenfalls numerische Codes (Rechts=1, Links=7, Hoch=9, Runter=3, Feuer=0). Möchte man unter Vice einen Joystick verwenden, definiert man ein Keyset mit genau diesen Tasten und weist dieses Joystick 1 oder 2 zu. DrĂŒck man jetzt den Feuerknopf, liefert Keyrah z.B. „0“ an den Emulator, der diesen Code wiederum auf den Feuerknopf des zugewiesenen Joystick Ports umsetzt. So sollten 99% der Spiele ohne EinschrĂ€nkung funktionieren. Ich habe aber zusĂ€tzlich eine PC Tastatur an den Raspberry Pi angeschlossen, damit das OptionsmenĂŒ des Emulators mit F12 aufgerufen werden kann. Wer möchte, kann dieses aber auch auf eine andere Taste legen und so auch ĂŒber die C64 Tastatur aufrufen. Allerdings ist das MenĂŒ ĂŒber diese recht schlecht zu bedienen.

Verwendung unter anderen Emulatoren

Theoretisch kann man Keyrah auch mit jedem beliebigen anderen Emulator einsetzen. Ich habe die drei Speccy Emulatoren Fuse, Unreal und Fbzx probiert. Im Prinzip kann man die C64 Tastatur auch hier einsetzen, aber sinnvoll mit dem simulierten Rechner arbeiten geht aufgrund der fehlenden Sondertasten des Speccys natĂŒrlich nicht. Da Keyrah nicht programmierbar ist, kann man ihm auch nicht beibringen bei Druck auf die Commodore-Taste z.B. die Windows-Taste zurĂŒck zu liefern, die der Emulator dann beispielsweise als „Symbol Shift“ interpretiert.

Durchaus interessant ist aber, ob man zumindest die Joystick-Ports des Keyrah verwenden kann. Kurz gesagt: Man könnte, theoretisch… Unter Fuse muss das Spiel zuerst geladen werden, dann den Joystick auswĂ€hlen (z.B. Kempston) und das Spiel ĂŒber das SpielmenĂŒ starten. Dann das Spiel schnell unterbrechen und in den Emulator-Optionen dem Kempston Interface die korrekten Tasten zuweisen. Da beim Speccy die AuswahlmenĂŒs hĂ€ufig ĂŒber die numerischen Tasten gesteuert werden (z.B. bei Jetpac: 1=1 Spieler, 2=2 Spieler, 3=Keyboard, 4=Kempston, 5=Start), darf noch nicht der Joystickmodus aktiviert sein, da sonst keine Auswahl per Tastatur mehr möglich ist. Bei Unreal gibt es ein anderes Problem: Unreal verwendet die Cursorkeys der Windows-Tastatur, die Keyrah im „everyday mode“ auch liefert. Leider versteht dieser die Leertaste nicht als Feuerknopf, er möchte die Alt-Taste, die der Keyrah nur ĂŒber die Tastatur liefert. Hier lĂ€sst sich leider nichts umdefinieren, Ă€hnlich sieht es beim Fbzx aus.

Fazit

Keyrah ist zwar ein praktisches USB Interface, welches aber ein paar Chancen grundlos verschenkt. In dem verwendeten Szenario mit Raspbian Linux, Vice 2.4, Keyrah Interface und C64 Tastatur ist programmieren unterm Emulator mit einem englischen Tastaturlayout (English, US) möglich. Spielen funktioniert problemlos, wenn das Programm die alphanumerischen Tasten (z.B. The Hobbit) oder die Joystick Ports (z.B. Fort Apocalypse) verwendet.

Theoretisch könnte man den Adapter auch mit jedem anderen Emulator benutzen, wenn die Tastaturumsetzung entweder im Emulator oder besser am Adapter Ă€nderbar wĂ€re. An diesem hat der Hersteller aber sogar die Chipbeschriftung entfernt, vermutlich weil man Nachbauten fĂŒrchtet. WĂ€re der Adapter programmierbar (vielleicht ist er es sogar), wĂŒrde die Community bestimmt schnell weitere Anpassungen liefern. Schade.

Möchte man Keyrah einsetzen, sollte man das US Tastaturlayout unter Linux einstellen. Die C64 Tasten sind dann unter Windows/Linux nicht immer wie erwartet, aber die Belegung ist sinnvoller als im deutschen Layout. Ich habe zusĂ€tzlich zu der C64 Tastatur an den Keyrah noch eine Funk-Tastatur an den Raspberry Pi angeschlossen. So kann man Raspberry Pi und den Emulator vernĂŒnftig bedienen.

Kompilieren von Vice

Die aktuelle Version 2.4 von Vice steht derzeit unter Raspbian “wheezy” (noch) nicht zur VerfĂŒgung, sondern muss selbst kompiliert werden (im Repository vom VorgĂ€nger „squeeze“ findet man derzeit die Version 2.1). Das Kompilieren dauert auf dem Raspberry Pi ca. 2-3 Stunden:

sudo apt-get install libsdl1.2-dev
wget http://sourceforge.net/projects/vice-emu/files/releases/vice-2.4.tar.gz
tar -xf vice-2.4.tar.gz
cd vice-2.4
./configure --enable-sdlui --with-sdlsound
sudo make
sudo make install

Danach Vice mit

x64 -sdlbitdepth 16

starten.

Alternativen

Viele Alternativen zum Keyrah gibt es leider nicht. Kommerzielle sind mir keine bekannt, aber es gibt einige interessante Projekte:

Mikkel Holm Olsen verwendet fĂŒr seinen Tastaturadapter einen ATmega16 mit softwarebasierten USB Stack (V-USB). Er stellt Platinenlayout und Treiber auf seiner Website zur VerfĂŒgung.

Antoniotrkdz verwendet einen Arduino 168/328P ebenfalls mit der V-USB Library. Auch er stellt BauplĂ€ne und Software auf seiner Website zur VerfĂŒgung.

Das ausgereifteste Interface dĂŒrfte von Simon Inns kommen. Seine Lösung verwendet einen PIC Microcontroller der Keyboard und beide Joystick Ports (inkl. ADC fĂŒr Paddles) unterstĂŒtzt. Auf seiner Website stellt er Platinenlayout und Firmware zur VerfĂŒgung. Er erklĂ€rt auch sehr deutlich, wie eine gute Tastaturumsetzung aussehen sollte.

Webtipp: Retro-Asylum

Retro AsylumAls 8-Bit-Retro-Fan, insbesondere des Speccy, C64 und Co, möchte ich heute das Retro-Asylum empfehlen. Auf dieser Website findet man nicht nur regelmĂ€ĂŸig Podcasts und Reviews zum Thema Retro-Gaming, sondern auch ein paar schöne Videos zum Thema 8- und 16-Bit-Retro-Games. Viele dieser Videos vergleichen vorgestellte Spiele auf den Plattformen ZX Spectrum, C64 und Amstrad CPC – so sieht man die unterschiedlichen FĂ€higkeiten in Grafik und Sound der damaligen Heimcomputer.

Im Video wird Bubble Bobble auf dem ZX Spectrum, Amstrad CPC und C64 verglichen:

Video: Retro-Asylum

Retro-Asylum bietet noch viele weitere Videos zu 8-Bit Games oder 16-Bit Games.

Vortrag von Paola Antonelli

Seit November 2012 sind 14 Computerspiele im New Yorker Museum of Modern Arts zu sehen. Paola Antonelli ist fĂŒr die AnkĂ€ufe des MoMA im Bereich Design zustĂ€ndig und sorgte damals dafĂŒr, dass Pac-Man (1980), Tetris (1984), Another World (1991), Myst (1993), SimCity 2000 (1994), vib-ribbon (1999), The Sims (2000), Katamari Damacy (2004), EVE Online (2003), Dwarf Fortress (2006), Portal (2007), flOw (2006), Passage (2008) und Canabalt (2009) in die Sammlung aufgenommen wurden und nun mit Werken von Picasso oder Warhol ausgestellt werden.

In einem Vortrag bei TED Talks erlĂ€utert sie, warum sie diese Spiele fĂŒr das MoMA akquiriert hat: Videospiele wie Pac-Man und Tetris besĂ€ĂŸen ein „herausragendes Interaktions-Design“.

Video: TED Talks

Weiterer Apple I fĂŒr 300.000 EUR versteigert

Dieses Jahr scheint ein guter Zeitpunkt fĂŒr die noch verbleibenden 48 Apple I Besitzer zu sein ihre GerĂ€te gewinnbringend zu verkaufen. Nach den Versteigerungen im Mai diesen Jahres und im Juni 2012, wurde jetzt erneut ein Apple I fĂŒr die Summe von 388.000 US$ (ca. 300.000 EUR) bei Christie’s per Online-Auktion versteigert. Damit erreichte er zwar nicht die Rekordsumme von 671.400 US$ vom Mai diesen Jahres, aber selbst 388.000 US$ sind fĂŒr ein GerĂ€t, welches ursprĂŒnglich fĂŒr 666,66 US$ zu haben war, ganz ordentlich.

Bei dem versteigerten GerĂ€t handelt es sich um einen Apple I mit der Seriennummer 01-0025 aus dem Jahr 1976. Auf dem Motherboard befindet sich zudem die Signatur „Woz“. Der Gewinner der Auktion darf sich zudem ĂŒber ein Kopie des Handbuchs, SchaltplĂ€ne, ein signiertes Foto, eine zusĂ€tzliche Tastatur und einem Nachbau aus dem Jahr 2006 freuen.

Neuauflage des Microbee

Nach ĂŒber 20 Jahren Abwesenheit vom Computermarkt, gibt es wieder einen Microbee, Australiens einzigen Heimcomputer. Er wird als Bausatz fĂŒr 399 AUS$ (ca. 280 EUR) angeboten. Der Premium Plus Microbee verfĂŒgt ĂŒber ein neues Motherboard, auf dem zwei(!) Prozessoren arbeiten: Eine Z80 CPU @ 3.375 MHz, mit der der Premium Plus Microbee kompatibel zum Original ist, und einen Freescale Coldfire (MCF52259) @ 80 MHz, unter dem uClinux bootet. Ein paar spezielle Schnittstellen, wie fĂŒr SD Karten oder Ethernet, sind ebenfalls vorhanden.

Wer schon immer einen Heimcomputer selbst bauen wollte, der hat jetzt die Möglichkeit, jedoch muss man sich sputen, denn es sind laut Webseite des Herstellers nur noch wenige der 100 produzierten BausĂ€tze verfĂŒgbar.

Bild: Microbee Technology Ltd.