42

... und dem ganzen Rest

Einrichten des Emulators kc85emu in RetroPie

Die Liste der in RetroPie unterstützten Systeme ist sehr lang. Die Kleincomputer der KC85-Serie (HC900, KC85/2, KC85/3, KC85/4 und /5) aus dem VEB Mikroelektronik Mühlhausen in der DDR tauchen dabei nicht auf.
Diese Anleitung soll Abhilfe schaffen.
Ziel ist es, Spiele komplett ohne Tastatur nur mit einem Controller zu verwenden. Dazu sind bereits ca. 75 Spiele fertig konfiguriert vorinstalliert. Natürlich ist auch eine normale Nutzung des Emulators mittels Tastatur möglich.

An dieser Stelle möchte ich mich für die freundliche Unterstützung bei Frank und Thomas Ludwig und Alexander Lang bedanken.

Getestet wurde diese Anleitung

Für die Installation wird eine Tastatur am Raspberry Pi benötigt.

April 2022

Inhalt

1. Grundidee
2. Downloads
3. DOSBox installieren
4. Dateien und Ordner kopieren
5. Datei es_system.cfg anpassen
6. Das kc85emu-Menü
7. Controller
8. Andere KC85-Spiele/Programme hinzufügen
9. Die .opt-Datei
10. Angebot

1. Grundidee

Da es sich beim Emulator kc85emu um ein DOS-Programm handelt, wird dieses unter DOSBox gestartet. Um einen Controller einzubinden, wird die Möglichkeit genutzt, unter DOSBox Controller-Aktionen auf Tastatur-Aktionen umzuleiten. Um Programme automatisch mit passenden Einstellungen von kc85emu laden zu lassen, werden die Optionen der Kommandozeile des Emulators verwendet.

2. Downloads

Lade dir an einem PC die Datei kc85emu_retro.zip und entpacke diese auf einen USB-Stick.

Es entsteht folgende Ordnerstruktur:
carbon
    ➞kc85emu
carbon-2021
config
    ➞kc85emu
diverses
roms
    ➞kc85emu

Stecke den USB-Stick am Raspberry ein.

Für die Nutzung des kc85emu-Emulators ist es notwendig, dass DOSBox installiert ist. Wenn das bei dir bereits der Fall ist, geht es hier weiter.

3. DOSBox installieren

Dazu im RetroPie-Menü den Punkt RETROPIE SETUP wählen.

RetroPie-Setup

Manage packages

Manage packages wählen.

Manage optional

Manage optional packages wählen.

DOSBox

Dosbox wählen

pre-compiled

Install from pre-compiled binary wählen.

Danach jeweils über ‹ Back › und ‹ Exit › zurück zum RetroPie-Menü.

4. Dateien und Ordner kopieren

Dafür kannst du den FileManager nutzen.

Retropie FileManager

Hinweis zur Bedienung des FileManagers (eine Auswahl):
[F10]-Filemanger beenden
[Tab]-Wechsel zwischen rechter und linker Spalte

Folgende Tasten beziehen sich auf die markierte Datei oder den markierten Ordner
[F5]-Kopieren
[F8]-Löschen

Folgende Tasten beziehen sich auf eine markierte Datei
[F3]-zur Ansicht öffnen
[F4]-zum Bearbeiten öffen

Zur Ansicht geöffnete Datei schließen=[Esc]

Zur Bearbeitung geöffnete Datei:
[Strg][O]-speichern, mit [Enter] bestätigen
[Strg][X]-Editor verlassen

Jedes System in der EmulationStation wird in der Datei es_systems.cfg definiert. Die Standardversion dieser Datei befindet sich im Ordner /etc/emulationstation. Eine Kopie liegt üblicherweise im Ordner /opt/retropie/configs/all/emulationstation. Weiter unten wirst du diese Kopie noch bearbeiten müssen.

Falls also bei dir im Ordner /opt/retropie/configs/all/emulationstation keine es_system.cfg existiert, kopiere /etc/emulationstation/es_system.cfg dorthin.
Wenn /opt/retropie/configs/all/emulationstation/es_system.cfg schon vorhanden ist, gibt es nichts zu tun.
Vorsicht: Wenn eine bereits existierende Datei /opt/retropie/configs/all/emulationstation/es_system.cfg überschrieben wird, werden möglicherweise vorher installierte Emulatoren nicht mehr angezeigt.

Im Screenshot ist die zu kopierende Datei im rechten und der Zielordner im linken Fenster zu sehen.

FileManager es_system.cfg

Anschließend sind die notwendigen Dateien vom USB-Stick zu kopieren, der das entpackte Archiv von kc85emu_retro.zip enthält. Den USB-Stick findest du im FileManager üblicherweise unter /media/usb0 (oder /media/usb1, wie es bei mir der Fall ist).

Zu kopieren sind:

a) Das kc85emu-Thema für RetroPie Version v4.8.

Dazu den art-Ordner von /media/usb0/carbon-2021 nach /etc/emulationstation/themes/carbon-2021 kopieren.

FileManager carbon

b) Das kc85emu-Thema für die, die noch RetroPie Version v4.7.1. verwenden

Dazu den kc85emu-Ordner von /media/usb0/carbon nach /etc/emulationstation/themes/carbon kopieren.

FileManager carbon

Es wird nur für das Carbon-Thema ein Eintrag für den Emulator kc85emu mitgeliefert.
Wenn du ein anderes Thema verwendest, kannst du einen dort enthaltenen Ordner (z.B. daphne) in kc85emu umbennen. Dann weißt du, das in der Emulationstation Daphne eigentlich für kc85emu steht. Das ist aber nur eine provisorische Lösung. Um eine optische Anpassung an kc85emu müsstest du dich selbst kümmern.

c) Der kc85emu-Configs-Ordner

Dazu den kc85emu-Ordner von /media/usb0/configs nach /opt/retropie/configs kopieren.

FileManager configs

d) Der kc85emu-Roms-Ordner

Dazu den kc85emu-Ordner von /media/usb0/roms nach /home/pi/RetroPie/roms kopieren.

FileManager roms

5. Datei es_system.cfg anpassenn

Um den kc85emu-Emulator endgültig in die Emulationstation zu integrieren, musst du abschließend die Datei
/opt/retropie/configs/all/emulationstation/es_system.cfg bearbeiten.

Dazu die Datei im FileManager orten und zum Bearbeiten öffnen ( [F4] ).

Im Editor sind folgende Zeilen einzufügen (beliebige Stelle, aber nach einer Zeile </system>):

<system>
  <name>kc85emu</name>
  <fullname>KC85/3</fullname>
  <path>/home/pi/RetroPie/roms/kc85emu</path>
  <extension>.sh .SH .tap .TAP .kcc .KCC .853</extension>
  <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ kc85emu %ROM%</command>
  <platform>kc85emu</platform>
  <theme>kc85emu</theme>
</system>

Dieser Text ist auch im entpackten Ordner diverses als Datei es_systems_kc.txt enthalten.

es_systems.cfg

Anschließend Datei speichern ( [Strg][O], [Enter] ) und den Editor verlassen ( [Strg][X] ). Dann den FileManager verlassen ( [F10] ).

Um die Emulationstation zu aktualisieren, kannst du den Raspberry neu booten. Dann geht es für dich hier weiter.
Oder du führst nur für die Emulationstation einen Restart auf folgende Weise durch.
Main Menu aufrufen (Controller [Start]-Button).

ES-MAIN MENU

Quit wählen.

ES-MAIN MENU Quit

RESTART EMULATIONSTATION wählen und anschließend YES bestätigen.

Nun sollte auch der kc85emu-Emulator in der Emulationstation angezeigt werden.

KC85EMU

6. Das kc85emu-Menü

KC85EMU Menü

Im kc85emu-Menü gibt es diese 4 Auswahlmöglichkeiten:

a) +KC85EMU

Startet nur den Emulator , Bedienung entsprechend dem kc85emu-Handbuch, welches auch im entpackten Ordner diverses als Datei readme.pdf enthalten ist.
Der Emulator wird beendet durch die Tastenkombination [Alt]+[F4]. Dies gilt auch allgemein.

b) NUR_KEYB

Enthält Spiele/Programme, für die unbedingt eine Tastatur benötigt wird.

c) PAD_STND

Enthält Spiele, die alle die gleiche Zuordnung zwischen Controller- und Keyboard-Tasten haben. Diese Spiele lassen sich neben der Tastatur auch nur mit dem Controller bedienen. Für diese Spiele gilt folgende Belegung des Controllers:

Standard Belegung kc85emu

d) PAD_XTRA

Enthält Spiele, die jeweils eine eigene Zuordnung zwischen Controller- und Keyboard-Tasten haben. Diese Zuordnungen sind schon erstellt und sind als .opt-Dateien zu jedem Spiel bereits enthalten. Auch diese Spiele benötigen nicht unbedingt eine Tastatur, lassen sich also mit dem Controller bedienen.

Die Belegungen des Controllers zu den jeweiligen Spielen findest du hier.

Hinweis zur Verbesserung der Lesbarkeit des Menüs

Dieser Abschnitt ist optional und kann übersprungen werden.

Zunächst Dank an Thomas Ludwig für den Tipp.
Um verständlichere Namen der Ordner und Spiele im Menü anzuzeigen, kann eine Datei /home/pi/.emulationstation/gamelists/KC85EMU/gamelist.xml angelegt bzw. bearbeitet werden. Eine Beispieldatei befindet sich im Ordner /home/pi/RetroPie/roms/KC85EMU/gamelist.xml oder hier. Diese Datei einfach nach /home/pi/.emulationstation/gamelists/KC85EMU/gamelist.xml kopieren. Eine eventuell schon existierende Datei kann überschrieben werden. Danach ist die Emulationstation neu zu starten.
Bei Problemen einfach die Datei löschen.

7. Controller

Bei jedem Controller erzeugt das Betätigen eines Buttons eine entsprechende Nummer, die für die Auswertung dieser Aktion verwendet wird. Leider sind die erzeugten Nummern nicht für alle Controller gleich. Auch besitzen die Controller häufig eine unterschiedliche Anzahl von Buttons und Sticks.
Bei der Verwendung in den Spielen des KC85-Emulators werden im Rahmen dieser Anleitung und Installation als Standard nur folgende Button verwendet und diese dazugehörige Nummern angenommen:

Standard Controller
Um zu ermitteln, welche Nummern dein Controller erzeugt, hast du zwei Möglickeiten:

Du kannst auf Consolen-Ebene (erreichst du über [F4] in der Emulationstation) mit dem Kommando
jstest /dev/input/js0 oder jstest /dev/input/js1 die Zuordnung ermitteln. Für weitergehende Infos hierzu bitte ich dich, eine Suchmaschine zu strapazieren.

Die andere Möglichkeit geht über die Analyse der zu deinem Controller gehörenden .cfg-Datei im Ordner
/opt/retropie/configs/all/retroarch/autoconfig. Für meinen Controller heißt die Datei zum Beispiel: Microntek USB Joystick .cfg und hat folgende für uns relevanten Einträge:

input_x_btn = "0"
input_a_btn = "1"
input_b_btn = "2"
input_y_btn = "3"
input_l_btn = "4"
input_r_btn = "5"
input_select_btn = "8"
input_start_btn = "9"

Wenn du Glück hast, hat der von dir verwendete Controller die gleichen Zuordnungen und du musst hier nicht unbedingt weiterlesen, kannst die Anleitung verlassen und mit dem Spielen beginnen.

Für alle anderen ist noch eine Aufgabe zu erledigen. Im Ordner /home/pi/RetroPie/roms/kc85emu musst du die Datei mein_pad bearbeiten. Der erforderliche Inhalt der Textdatei mein_pad soll an einem Beispiel, meinem Zweit-Controller Controller SWITCH CO.,LTD. Controller (Dinput), erläutert werden.

Die obigen Einträge in der SWITCH CO.,LTD. Controller (Dinput).cfg lauten hier:

input_x_btn = "9"
input_a_btn = "8"
input_b_btn = "0"
input_y_btn = "3"
input_l_btn = "4"
input_r_btn = "5"
input_select_btn = "6"
input_start_btn = "12"

Wie du siehst, unterscheiden sich die Werte bei input_x_btn, input_a_btn, input_b_btn, input_select_btn und input_start_btn. Die Datei mein_pad bekommt dann folgende Textzeilen:

alt0="button 0"
neu0="button  9"
alt1="button 1"
neu1="button  8"
alt2="button 2"
neu2="button  0"
alt3="button 8"
neu3="button  6"
alt4="button 9"
neu4="button  12"

Zu jedem Button gehören demzufolge zwei Zeilen, die beschreiben, welcher alte Button jetzt welche neue Nummer hat. Also hat in diesem Beispiel der bisherige Button mit der Nummer 0 jetzt neu die Nummer 9. So müssen für alle Button, deren Nummern sich ändern, jeweils zwei Zeilen in die Datei mein_pad geschrieben werden.

Wichtig ist, dass bei alt immer nur genau ein Leerzeichen nach button und bei neu nach button immer genau 2 Leerzeichen folgen.

Das klingt für dich viel zu anstrengend? Kein Problem. Siehe mein Angebot.

Mit der bearbeiteten Datei mein_pad sollte jetzt dein Controller funktionieren.

Beispiel-Dateien für mein_pad liegen im entpackten Ordner diverses vor.

Nun ist der KC85-Emulator einsatzbereit und du kannst starten.

Die Belegungen des Controllers zu den jeweiligen Spielen findest du hier.

8. Andere KC85-Spiele/Programme hinzufügen

Vielleicht fehlen dir bei den mitgelieferten Programmen noch einige. Dann erfährst du jetzt, wie du weitere KC85-Programme ergänzen kannst.

a) Spiele, die im Emulator kc85emu per Anweisung %LOAD geladen werden

Du kannst alle Dateien, mit von kc85emu unterstütztem Dateiformat, in einen Ordner unterhalb von /home/pi/RetroPie/roms/kc85emu/ kopieren.

Falls du einen neuen Ordner anlegst, ist zu beachten, dass der Ordnername nicht länger als 8 Zeichen ist und keine Leerzeichen enthält.

Dann startest du in der Emulationstation den Emulator +KC85EMU und lädst über %LOAD die gewünschte Datei. Dabei ist eine Tastatur am Raspberry zwingend erforderlich. Hier findest du noch mal das kc85emu-Handbuch

b) Spiel soll direkt in der Emulationstation ausgewählt werden

Soll das Spiel/Programm später direkt in der Emulationstation ausgewählt werden, so ist zu beachten, dass sich nur Programme vom Typ TAP, KCC oder 853 starten lassen (Einschränkung von mir).
Um individuelle Konfigurationen vorzunehmen, sollte zu jedem Spiel/Programm eine .opt-Datei angelegt werden. Diese Dateien liegen schon bei den bereits installierten Spielen vor. Programme, die mit den Einstellungen bezüglich Zuordnung Controller- zu Keyboard-Tasten der Standard-Belegung entsprechen, sollten in den Ordner /home/pi/RetroPie/roms/kc85emu/PAD_STND/ kopiert werden. Für Programme, die eine andere Zuordnung benötigen, ist der Ordner /home/pi/RetroPie/roms/kc85emu/PAD_XTRA/ vorgesehen. Diese Einteilung ist nicht zwingend aber empfohlen. Fehlt die .opt-Datei, so werden Standard-Optionen für den Aufruf des Emulators kc85emu verwendet.

Was bei den .opt-Dateien zu beachten ist, erfährst du im folgenden Abschnitt. Das klingt für dich schon wieder nach viel zu viel Arbeit? Kein Problem. Siehe mein Angebot.

9. Die .opt-Datei

Beim Start eines Spieles im Emulator, sollten diesem über Kommadozeilen-Parameter diverse Vorgaben gemacht werden. Diese Parameter werden in einer .opt-Datei gespeichert. Besonders wichtig für die Bedienung mittels Controller ist die Festlegung, welcher Controller-Taste welche Keyboard-Taste zugeordnet ist.

Bevor es ans Anlegen der .opt-Datei geht, musst du erst herausbekommen, welche Tasten dein Spiel benötigt. Das ist leider oft von Spiel zu Spiel verschieden. Meist erfährt man es erst, wenn das Spiel läuft. Deshalb wirst du an dieser Stelle wieder eine Tastatur brauchen. Das Spiel hast du z.B. fürs Erste in den Ordner /home/pi/RetroPie/roms/kc85emu/NUR_KEYB kopiert. Starte dann nur den Emulator +KC85EMU und lade dir das Spiel mit dem Befehl %LOAD. Versuche herauszubekommen, welche Tasten das Spiel verwendet.

Am Spiel BURG-UVS.TAP möchte ich das weitere Vorgehen erläutern.

Die Syntax für den Name der .opt-Datei ist streng vorgeschrieben (daran habe auch wieder ich die Schuld). Er setzt sich zusammen aus dem Dateinamen des Spiels und der weiteren Endung .opt. Dabei ist auf Groß/Kleinschreibung zu achten.

Dateiname des Spieles: BURG-UVS.TAP
Dateiname der .opt-Datei: BURG-UVS.TAP.opt

Wenn also das Spiel im Verzeichnis /home/pi/RetroPie/roms/kc85emu/NUR_KEYB liegt, dann ist eine Textdatei /home/pi/RetroPie/roms/kc85emu/NUR_KEYB/BURG-UVS.TAP.opt anzulegen. Dies erreichst du am einfachsten, wenn du die bestehende Datei /home/pi/RetroPie/roms/kc85emu/copyme.opt kopierst, umbenennst und später bearbeitest. Die Datei copyme.opt ist bereits mit Standard-Vorgaben versehen, die du gegebenenfalls ändern musst.

Folgende Tasten verwendet das Spiel:

S = Start
H = Hinweise
E = Ende
ENTER für Bestätigungen
Kursor oben (↑) für Zahlenwerte erhöhen
Kursor unten (↓) für Zahlenwerte verringern

Die Zuordnung Button ⇒ Keyboard bezieht sich immer auf den von mir definierten Standard-Controller und wir legen sie beispielsweise so fest:

Standard Controller

Button 1 = E
Button 5 = Enter
Button 3 = S
Button 4 = H
DigitalPad hoch = Taste↑
DigitalPad tief = Taste↓

Um den Emulator beenden zu können, sind die Zuordnungen
Button 9 = F4
Button 8 = Alt
bereits unabhängig von der .opt-Datei festgelegt und brauchen deshalb nicht extra beachtet werden. Diese Button stehen also für selbstgewählte Zuordnungen nicht zur Verfügung.

Der für die Zuordnung verwendete Kommandozeilen-Parameter ist /J und hat folgenden Aufbau:
/JLINKS,RECHTS,UNTEN,OBEN,0,1,2,3,4,5
Die jeweils zugeordneten Tasten sind in hexadezimaler Schreibweise anzugeben.
Die dafür benötigte Tabelle findest du hier und für unser Beispiel gilt:

45 = Button 1 = E
0D = Button 5 = Enter
53 = Button 3 = S
48 = Button 4 = H
0B = DigitalPad hoch = Taste↑
0A = DigitalPad tief = Taste↓

Die nicht benötigten Controller-Tasten können wir frei zuordnen und wählen:
50 = Button 0 = P
20 = Button 2 = Leertaste
08 = DigitalPad links = Taste←
09 = DigitalPad rechts = Taste→

Somit lautet der Parameter:

/J08,09,0A,0B,50,45,20,53,48,0D

Informationen zu weiteren Kommandozeilen-Parameter findest im kc85emu-Handbuch, welches auch im entpackten Ordner diverses als Datei readme.pdf enthalten ist.
Folgende Parameter verwende ich üblicherweise in den von mir bereits erstellten .opt-Dateien (die aber unter Umständen an das jeweilige Spiel anzupassen sind):

/4 = Betriebssystem CAOS4.2
/F0 = damit Joystick-Modul M021 nicht eingeschaltet ist.
/K1 = Tastatureinstellung Direkt-MC
/B=100 = originale KC-Geschwindigkeit

Öffne nun - entsprechend dem obigen Beispiel - die Datei /home/pi/RetroPie/roms/kc85emu/NUR_KEYB/BURG-UVS.TAP.opt im FileManger zum Bearbeiten [F4] und füge folgende (einzige) Zeile ein (eine existierende Zeile überschreiben!):

/4 /F0 /K1 /B=100 /J08,09,0A,0B,50,45,20,53,48,0D

Danach die Datei speichern ([Strg][O], [Enter], [Strg][X]). Damit wäre die passende .opt-Datei zum Spiel BURG-UVS.TAP erstellt und die Spiele können beginnen.

Bei Problemen verweise ich mal wieder auf mein nachfolgendes Angebot.

10. Angebot

Du kommst bei deinem Controller nicht klar, wie die Datei mein_pad aussehen soll?
Kein Problem. Schick mir alles, was du über deinen Controller weisst und wenn möglich, die für deinen Controller vorliegende .cfg-Datei aus dem Ordner /opt/retropie/configs/all/retroarch/autoconfig und auch die Datei /opt/retropie/configs/all/emulationstation/es_input.cfg. Dann schicke ich dir die fertige Datei mein_pad zu.

Dir ist das mit der .opt Datei beim Hinzufügen weiterer Spiele zu stressig. Kein Problem. Schick mir einfach deine KC85-Datei und ich erledige das für dich. Dann schicke ich dir die notwendigen Dateien.

Anregungen, Fragen, Verbesserungsvorschläge oder ähnliches gerne per E-Mail an mich.