Naomi NetBoot (mit Piforcetools Modifikation)

  • 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)


    netdimmtools.zip