Dies ist eine Anleitung für eine Modifikation der piforcetools von cabane für Raspberry Pi 1 mit LCD.
Das Thema ist nicht neu, jedoch konnte ich mit keinem der ursprünglichen Skriptprogrammierer Kontakt auftnehmem, darum veröffentliche ich es in diesem Rahmen.
Das vorliegende Script mit den beschriebenen Modifikationen läuft bei mir seit ca. 1 Jahr.
Funktionen:
bestehende Funktionen (piforcetools):
+ Bedienung des Raspberry Pi mit einem Display und Cursor Buttons
+ Auswahl von ROMs aus einer Liste wobei fehlende ROMs aus der Liste automatisch entfernt werden
neue Funktionen
+ Einstellungen per .cfg Datei möglich
+ Auswahl der Targets (Naomi Geräte) aus einer Liste wobei nicht vorhandene Geräte aus der Liste automatisch entfernt werden
+ ROMs können in Subordner pro Modell abgelegt werden
+ ROMs können optional auf einen USB Stick abgelegt werden
+ weitere Funktionen hinzugefügt
+ einheitliches Design bzw. Meldungen
Anleitung Installation:
Die Anleitung ist für Fortgeschritttene bzw. ich übergebe nur meine Modifikationen. Das Know-How zur durchführung bitte ich euch selbst zu erarbeiten.
Schritt 1: Basis Image von cabane laden und auf eine SD Karte "backen"
http://downloads.capane.us/piforcetools.img.zip
Schritt 2: IP Setup des Raspberry Pi an das vorhandene Netzwerk anpassen
Datei /net-config editieren
Im Image von Capane ist der Raspberry Pi der DHCP Server und kann mit einem oder mehreren Naomis direkt verbunden werden.
Optional steckt der Raspberry Pi in einem Netzwerk mit vorhandenen DHCP Server, dann muss der DHCP Server vom Raspberry Pi deaktiviert werden.
Optional werden statische IP Adressen verwendet.
Schritt 3: USB Stick für ROMs vorbereiten
die Namen der ROMs können dem Script entnommen werden, die ROMs werden nur erkannt, wenn die Bennenung gleichlautend ist.
Verzeichnisstruktur (kann natürlich ebenfalls durch Scriptänderung modifiziert werden)
Naomi BIOS: /Documents/EMU/Sega Naomi/BIOS
Naomi ROMS: /Documents/EMU/Sega Naomi/ROMS
Naomi 2 BIOS: /Documents/EMU/Sega Naomi 2/BIOS
Naomi 2 ROMS: /Documents/EMU/Sega Naomi 2/ROMS
Atomiswave ROMS: /Documents/EMU/Sega Atomiswave/ROMS
Chihiro ROMS: /Documents/EMU/Sega Chihiro/ROMS
Triforce ROMS: /Documents/EMU/Sega Triforce/ROMS
Schritt 4: USB Stick beim Booten automatisch einbinden
Folgende Zeile in die Datei fstab hinzufügen
/dev/sda1 /mnt/ vfat defaults 0 0
Schritt 5: modifiziertes Script
Die Datei "piforcetools.py" in den piforcetools Ordner kopieren (vorhandene Datei überschreiben)
Schritt 6: cfg Datei vorbereiten
Die Datei "NetDIMMTools.cfg" in den piforcetools Ordner kopieren
Die Datei "NetDIMMTools.cfg" nochmal auf den USB Stick in einen neuen Ordner /Documents/Config kopieren
Parameter:
Parameter File: <Pfad zur Parameter Datei>
(mir persönlich ist es angenehmer, wenn ich die cfg Datei auf dem USB mit meinem Computer ändern kann, deshalb prüft das Script ob ein weiterer Pfad zu einer cfg Datei existiert und verwendet dann diese, wenn der Name mit der ersten cfg Datei übereinstimmt, wird diese Datei genommen)
[für Witzbolde: es sollte funktionieren, daß man n cfg Dateien verwendet und in jeder auf die nächste verweist - die letzte wird dann tatsächlich verwendet]
Startup Wait:
0=Programm läuft durch
1=Programm wartet auf [OK]
1 ist z.b. sinnvoll, wenn DHCP vom Raspberry Pi verwendet wird -> das Programm würde starten, bevor eine IP vergeben wird uns somit wäre noch kein Naomi erreichbar wenn das Script läuft.
Target Discover:
0=Alle Targets verbleiben in der Liste
1=Nicht erreichbarer Targets werden aus der Liste entfernt
Sleep Message:
=Sekunden Pause nach einer Meldung
Sleep Error:
=Sekunden Pause nach einem Fehler
Targets:
Hier werden alle verfügbaren Naomi Geräte eingetragen
(Anmerkung: Es lässt sich natürlich so umprogrammieren, daß alle IPs von 1 bis 254 durchsucht werden - aber ich denke, daß die Anzahl derjenigen, die soviele Geräte besitzen eher gering ist und den Aufwand nicht lohnt)
im weiteren Script können auch die restlichen Parameter modifiziert werden wie ROM Pfade usw.
Anleitung Skript:
1. Einschaltreihenfolge
je nachdem wer DHCP Server ist bzw. woher die IP Adresse bezogen wird, müssen die Naomis oder der Raspberry Pi zuerst aufgedreht werden
z.B. Raspberry Pi ist DHCP Server
- Zuerst Raspberry Pi einschalten mit der Option „auf OK warten“ (in der cfg Datei einstellen)
- Dann Naomis aufdrehen
- wenn die Naomis gestartet sind am Pi auf "OK" drücken
2. Funktionen am Display
Start
- falls Konfiguriert, wartet der Pi auf (OK), ansonsten läuft das Script weiter
- Prüfung, welche Targets (Naomis) verfügbar, nicht gefundene werden aus der Auswahl gelöscht
- Prüfung, welche ROMs im konfigurierten Ordner verfügbar sind, nicht gefundene werden aus der Auswahl gelöscht
- Abhängig davon, ob zumindest 1 Naomi und zumindest 1 ROM gefunden wurde, wird die Menüauswahl eingeschränkt
(Ohne Naomi bzw. ohne ROM kann man nichts machen)
Programm
- bei mehreren Targets wird das erste gewählt, möchte man die ROMs zu einem andere senden, muss dieses manuell gewählt werden
<Cursor links> Modus "games" -> <Cursor rauf/runter> ROM wählen
<Cursor rechts> Modus "command" -> <Cursor rauf/runter> Funktionen wählen
Modus "games"
Aus der Auswahlliste das gewünschte ROM wählen und am Raspberry Pi LCD die Enter Taste drücken
- das ROM wird über die Netzwerkschnittstelle zum Naomi übertragen und man kann am Bildschirm zusehen wie es geladen wird
Modus "command"
Ping Target -> ein Ping wird zum ausgewählten Target gesendet
Reset Target -> ein Software Reset wird am gewählten Target durchgeführt (funktioniert bei den meisten ROMS bzw. wenn kein ROM gestartet ist)
Select Target -> durch drücken der Taste kann man zwischen allen IP Adressen in der Liste wählen
Restart Program -> das Python Script wird neu gestartet
Restart System -> der Raspberry Pi wird neu gestartet
Shutdown System -> der Raspberry Pi wird heruntergefahren (nicht notwendige wegen dem RO Filesystem, aber ordentlich)