16.1 Ursache zur Fehlermeldung bei „Ghostbusters“-Tischen
Für Ghostbusters-Tische von Stern ist eine spezielle VPinMAME-Version „VPinSPA“ notwendig, die allerdings gegen Copyrightschutz von Stern verstößt. Daher wird auch keine zusätzliche Information Download usw. beschrieben.
Ohne diese kommt beim Start diese Fehlermeldung:
"Can't load SPA"
❗Hintergrund:
Neuere Stern Tables werden von den VPinMAME-Programmierern nicht emuliert aus Copyrightgründen, dementsprechend sind die ROMS auch nicht frei verfügbar. Stern stellt diese ROMS zwar auf ihrer Seite zur Verfügung, diese sind aber nur lauffähig mit der Sterneigenen kommerziellen Pinballsoftware.
16.2 ScreenRes-Identifier Tool zur Konfiguration der Displays
Mit dem Tool „B2S_ScreenResIdentifier.exe“ lässt sich die Konfiguration und Position der Displays konfigurieren. Die ScreenRes-Datei wird dann dementsprechend angepasst.
Beispiel vom Test-Rechner (daher 150% zoom), damit die Fenster auf den Screenshot passen
16.3 Nudge in DOFLinx für Future Pinball konfigurieren
💡 zum Testen von Nudge und Tilt mit FP gibt es den Tisch „FlexTilt_v1.fpt“ Hier: https://pinballnirvana.com/forums/attachments/flextilt_v1-zip.34582
16.3.1 Voraussetzungen
In der Konfiguration von FP muss in „Games und Key controls“ der Pinscape-controller korrekt erkannt werden und aktiviert sein:
⚠️ Es darf nicht, wie in älteren Forenbeiträgen zu lesen ist, bei einem nicht-engl. Windows, die engl. DirectX-datei dinput8.dll ins Verzeichnis von Future Pinball kopiert werden, um Nudge zu ermöglichen. In dem Fall wird der Pinscape-controller nicht mehr als Joypad-Controller erkannt und ist nicht auswählbar. Weiter unten in dem Fenster wird der Analog Plungerpart konfiguriert. Hier muss es möglich sein, die entsprechenden Achsen zuzuordnen.
💡 Wenn dort nur „none“ möglich ist, steht Windows nicht auf engl. Anzeigesprache und muss umgestellt werden.
16.3.2 Umstellen der Anzeigesprache von Windows in Englisch
(Quelle 5)
Nudge mit FP funktioniert nur mit auf Engl. umgestelltem Windows. Die Umstellung sollte direkt am Anfang erfolgen, nochmal die Anleitung: Hierzu unter „Einstellungen“, „Zeit und Sprache“, links den Punkt „Sprache“ auswählen Wenn „Englisch“ nicht zur Auswahl steht, dann auf „Sprache Hinzufügen“ klicken und „English United States“ auswählen. Dann wird die Sprache heruntergeladen. Danach muss man sich neu anmelden oder bootet den Rechner.
⚠️Das Thema der „falschen Sprachversion“ der DirectX-Datei „dinput8.dll“ bei einem Nicht-Engl. Windows ist nur halbrichtig. (Darauf wird hier eingegangen. https://pinballnirvana.com/forums/threads/analog-nudge-in-fp.19833) Als Ursache wird FP angegeben. Das funktioniert nicht. Wenn man diese DLL in das Future Pinball Verzeichnis kopiert, wird Pinscape in FP nicht mehr als Joypad erkannt und kann auch in „Game keys and Controls“
nicht mehr ausgewählt werden.
Zur Erklärung mit der Sprachumstellung: Die Speicherorte der Datei dinput8.dll in Windows
Wird jetzt die engl. Sprachversion zusätzlich installiert, installiert Windows diese Dateien in einem entsprechenden Sprachenverzeichnis und ersetzt dann jeweils diese Dateien im Verzeichnis „System32“ durch die eingestellten Sprachdateien.
Hier ist gerade engl-US Windows eingestellt. Wird DE-Windows eingestellt, steht dort als Language „Deutsch“. Demnach ist das Umstellen auf Engl. Windows der einzige Weg.
16.3.3 - Abgleich der Nudge-Werte
Zum Abgleich nur DOFLinx starten (im Debug-mode), Future Pinball wird nicht benötigt.
Dann mit der rechten Maustaste in das Log-Fenster klicken und „Test Joystick“ auswählen. In dem dann folgenden Fenster die Joystick Nr. wählen, mit der keine Error-Info angezeigt wird. Normalerweise ist dies die #1.
Dann müssen schon bei „X Relative Position“ / „Y Relative Position“ sich schnelle ändernde Zahlen angezeigt werden (>0 ist wichtig) und bei den 3 Nudge Feldern wird „NUDGE“ angezeigt, zumindest wenn man leicht am Cabinet wackelt.
Sollte in „Relative Position“ nur 0 stehen, stimmt mit dem Controller was nicht, bzw. dessen Erkennung in USB, so wie hier in dem Beispiel:
sollte dieser Zustand vorhanden sein, dass kein Sensorwerte kommen, liegt eine fehlerhafte Erkennung des Kontrollers als Joystick in USB vor.
Zur Behebung siehe “Korrektur eines inkorrekt erkannten KL25Z-Controller in USB“ Nudge in FP funktioniert aber trotzdem.
Jetzt auf „Get Offset“ klicken, um die Werte zu nullen und die min/max-Grenzen zu bestimmen
Dann das Cabinet leicht anstoßen in den 3 versch. Richtungen (re, li, vorne) um zu sehen welche Werte dabei zu einer „NUDGE“ Anzeige führen und die Achsen stimmen.
Dabei in die 3 Nudge Point Felder die Werte eintragen, bei denen das NUDGE nicht mehr übermäßig ausgelöst wird, wenn man die einzelnen Richtungen testet.
Hier musste bei „L Nudge Point“ ein negativer Wert eingetragen werden.
💡 Sobald man einen Wert in den Feldern löscht um diesen zu ändern, kommen im DOFLinx- Fenster zahlreiche log-Fehler, da die Software versucht das leere Feld in integer zu wandeln. Ist nichts schlimmes , irritiert nur beim ersten Mal.
Nun die DOFLinx.ini editieren und folgende Parameter am Ende einfügen mit den Werten aus dem Jostick-test.
Dabei entspricht:
- JOY_PORT=Joystick #
- JOY_X_OFFSET=X Offset
- JOY_Y_OFFSET=Y Offset
- NUDGE_LEFT_POINT=L Nudge Point
- NUDGE_RIGHT_POINT=R Nudge Point
- NUDGE_FORWARD_POINT=F Nudge Point
Im Folgenden muss der ASCII-code der Tasten eingetragen werden, welche in der Endanwendung (z.B. FP) für die Nudge-Richtungen definiert sind.
- NUDGE_LEFT_KEY=ASCII-code aus der Key-Definition des Endprogramms z.B. ist in FP „Nudge Left“ mit „Z“ belegt, dann muss hier „5A“ eingetragen werden.
- NUDGE_RIGHT_KEY= ASCII-code aus der Key-Definition des Endprogramms ist in FP mit „/“ belegt, muss man sehen ob das mit DE-Tastatur geht, da ein Shift-Wert
- NUDGE_FORWARD_KEY= ASCII-code aus der Key-Definition des Endprogramms heißt in FP „Nudge up“ und ist mit „Leertaste“ belegt, also ASCII-code „20“
Diese letzten beiden Werte werden nur benötigt, wenn zusätzlich das Nudge über z.B. die Magnasavebuttons mit L-Ctrl und R-Ctrl funktionieren soll. Daher werden folgende Werte hier mit „#“ ausmarkiert
- NUDGE_LEFT_INPUT=
- NUDGE_RIGHT_INPUT=
ASCII-Tabelle: https://learn.microsoft.com/en-gb/windows/win32/inputdev/virtual-key-codes
Somit ergeben sich diese Einträge, vorzugsweise ans Ende der DOFLinx.ini eingefügt:
###### Parameters for Nudge #####
JOY_PORT=1
JOY_X_OFFSET=32751
JOY_Y_OFFSET=32768
NUDGE_LEFT_POINT=-300
NUDGE_RIGHT_POINT=300
NUDGE_FORWARD_POINT=200
NUDGE_LEFT_KEY=5A
NUDGE_RIGHT_KEY=BF
NUDGE_FORWARD_KEY=20
# NUDGE_LEFT_INPUT=
# NUDGE_RIGHT_INPUT=
💡 „BF“= Forward Slash, ist in DE-Tastatur normalerweise nur über Shift erreichbar.
Hier ist es bei Nudge aber so, dass DOFLinx den Tastencode dann direkt an FP schickt. Das läuft nicht über Windows oder Pinscape. Pinscape liefert nur die Werte des Beschleunigungssensors. Bei der Flipper-Software (Emulatoren) ist es immer so, dass diese den direkten Tastencode verarbeiten. Da sitzt kein Windows dazwischen, was entsprechend der eingestellten Tastatur z.B. aus einem „5A“ (Z in EN) ein „Y“ mit DE-Tastatur macht.
Dann noch ggf. die Gain-Werte in FP anpassen. Diese sind mit „1“ zu niedrig. Die max. Werte gehen nur bis 2, so dass in der Registry der Einstellbereich vergrößert werden muss.
So lässt sich ein max. Wert auf 16 einstellen, sollte ausreichend sein, muss man probieren.
Aber so gut funktioniert das Nudge nicht. Egal wie hoch man in X,Y den Wert einstellt. Der Ball bewegt sich immer nur in Z-Richtung. Obwohl im DOFLinx-Joystick-Test die Werte für x, Y sauber als Nudge erkannt werden. Z-Richtung gibt’s da ja nicht, das ist der Plunger.
16.4 - Konfiguration zu virtuellen DMDs
In VPX laufen Tische mit ROM über VPinMAME und haben zum großen Teil ein DMD. (Hier wird nur auf ein virtuelles DMD eingegangen).
EM-Tische haben normalerweise kein DMD, ebenso einige SS-Tische.
Die über PinMAME laufenden Tische können ein internes oder externes DMD haben (bezogen auf die Art des Ansprechens über jeweils eine DLL.
Dann gibt es mit den PUP-Packs noch eine Variante ohne ROM / PinMAME, bei denen das DMD über PUP als Captureframe dargestellt wird.
16.4.1 - Standard-Einstellungen zu VPinMAME
Mit den beiden Setup-Dateien im VPinMAME Verzeichnis erfolgt die Standard-Einstellung für die VPX-Tische, die PinMAME nutzen.
„use external DMD (dll)“ : DMDext wird genutzt, statt DMD von PinMAME
„colorize DMD“: das DMD wird über DMDext mit den 4 Farben, die rechts definiert sind, angezeigt.
„Alt Sound mode“: hiermit nutzt der Tisch Soundfiles, die im Verz. „altsound“ abgelegt sind.
(siehe unter 25.11.1)
Diese Einstellungen gelten dann für die Tische, wenn nicht im Tisch selbst die Einstellung tischbezogen geändert wird. (oben in der Fensterleiste steht „Default Options“. Bei Aufruf über einen Tisch steht dort der Tischname und in Klammern der ROM-name)
💡 Diese Default-Einstellung greift nicht, wenn sie konfiguriert wurde, nachdem der Tisch schon mal gestartet wurde. Diese Einstellung überschreibt also nicht eine bestehende für den Tisch. Sonst wäre eine tischbezogene Einstellung nicht möglich.
Die globalen Werte werden in HKCU\SOFTWARE\Freeware\Visual PinMame\default gespeichert
Um schnell die Standardeinstellung für einen Tisch zu wiederherzustellen, muss der entsprechende Zweig mit dessen ROM-name in der Registry gelöscht werden.
16.4.2 - Tisch-bezogene Einstellung zu VPinMAME
Dadurch, dass es verschiedene Typen von Tischen gibt (EM-Tables, SS-Tables), ist deren DMD-Einstellung unterschiedlich. EM-Tische haben z.B. kein DMD.
Die tischbezogene Konfiguration erfolgt, wenn der Tisch gestartet wurde.
Mit „F1“ kommt man in die Konfiguration von PinMAME. Diese wird pro Tisch in der Registry gespeichert. (das Playfield muss dazu den Focus haben)
Bei Mata Hari würde das externe DMD stören, daher ist es hier disabled.
Die Einstellungen für PinMAME werden hierdurch für jeden Tisch in der Registry gespeichert unter
HKCU\SOFTWARE\Freeware\Visual PinMame\<Tischname>.
Mit „Tischname“ ist der ROM-Name gemeint, nicht der Dateiname des Tischs.
Für das Externe DMD („use external DMD“) der key:
Der Wert „0“ bedeuted: Ext.DMD wird nicht angezeigt, bei „1“ wird es angezeigt.
Für das interne DMD („Show DMD/Display window“):
Bei manchen Tischen (vor allem EM) ist es notwendig, beide DMDs zu deaktivieren.
16.4.3 - Beispiel der DMD-Konfiguration für den Tisch „250cc (1992)“:
Hier sind alle DMD-Varianten enabled
Die verschiedenen Fenster v. links nach rechts:
- Bild links: Das B2S-DMD (externes DMD)
- Bild Mitte: Der Table (z. Vereinfachung im Desktop-mode)
- Bild rechts: Das externe DMD
- Bild: Der VPX-Editor
- Bild: Das B2S-Backglass
16.4.4 - Einstellungen für Externes DMD
Wenn im VpinMAME-Fenster „Use external DMD“ gewählt würde, startet VPinMAME damit „dmdext.exe“. Dieses hat eine eigene Konfiguration, die Global oder für Tische einzeln vergeben werden kann. Die Konfiguration hierzu wird in „dmdevice.ini“ gespeichert.
Hier ist dann auch die Einzel-Konfiguration für bestimmte Tische abgelegt.
Aufruf durch „Rechte-Maustaste-klick“ auf das DMD, hier im Bild die Default-Einstellungen.
Tischspezifische Einstellungen können mit „Apply to <ROM-Name>“ gespeichert werden.
Diese landen dann in der „dmddevice.ini“
16.5 - Anpassen der Einstellungen für VPX
16.5.1 - Anpassung der Tische für VPX
In FP erfolgt die zentrale Konfiguration der Tische über BAM.
In VPX ist das anders gehandhabt:
- Eine zentrale Konfiguration ist ab Version 10.7 möglich
- VPX nutzt ab 10.7 die hinterlegte POV-Datei (im Table Verzeichnis), wenn diese den gleichen Namen hat wie der Tisch.
- Aufruf der VPX-EXE-Datei "VP /?" zeigt die Parameter die VPX kennt, hier VPX mit "-POVedit <Tischname>" aufrufen und erst mal an einem Tisch die Einstellung vornehmen.
- Bei Verlassen des Tisches mit dem Startbutton wird die Einstellung als <Tischname>.pov-datei gespeichert.
Die Einstellungen in dieser Datei sind immer vorrangig, auch vor der Datei „autopov.pov“ - Ebenso seit V10.7.x kann eine "Autopov.pov"-datei im Tables-verzeichnis hinterlegt werden, die dann immer gezogen wird und die entsprechenden Einstellungen überschreibt. So muss die vpx-datei selbst nicht geändert werden.
16.5.2 - Anpassen der Keyzuordungen für den vPinMAME-Teil von VPX
Dadurch, dass die Lautstärke von Future Pinball über die Flipperbuttons reguliert werden soll und in FP einige Keys nicht umkonfigurierbar sind, überschneiden sich diese mit Keys, welche in vPinMAME definiert sind. Es handelt sich hier um:
Funktion |
Key |
Nummer |
Geändert nach |
Slam Tilt |
HOME |
199 |
999 |
Coin door switch |
END |
207 |
46 |
Show Rules |
R |
19 |
35 (H) |
Diese wurden geändert in Keys die frei sind. Die Verarbeitung von SlamTilt ist in jedem Systemscript vorhanden, daher war es am einfachsten, dessen Nummer auf 999 zu setzen. Deaktivieren des SlamTilt geht nicht so einfach mal eben, ohne ein Menge Scripte anzupassen.
Erläuterung am Beispiel für den Coindoor-Schalter:
Der für VPX/vPinMAME definierte key „End“ für den Coindoor-Schalter überschneidet sich mit der Einstellung des Soundvolumes in Future Pinball. Daher muss der Key umdefiniert werden.
In VPX selbst können von PinMAME genutzte Tasten nicht umdefiniert werden, dort können nur die in Pinscape konfigurierten Buttons zugeordnet werden.
Die Definition der Keys ist in der Datei „VPMKeys.vbs“ im Scripts-Verz. von VPX hinterlegt.
Hier muss dazu folgende Zeile geändert werden:
Oberhalb der auskommentierte Originalwert, darunter die Änderung auf Buchstaben „c“. Entsprechend muss dieser key auch in Pinscape konfiguriert sein. Ebenso in PinVol, da diese Änderung ja für VPX gilt.
Da in FP diese Keys nicht änderbar sind, kann so mit Hilfe der Flippertasten die Lautstärke in FP-Tischen angepasst werden.
16.6 - Unterscheidung von Tischen mit gleichem ROM, mit und ohne PUP-Pack
Wenn Tische das gleiche ROM nutzen, aber ein unterschiedliches Backglass haben, z.B. hat der eine Tisch ein PUP-pack und der andere ein Backglass über den B2S-Server, dann muss man diese irgendwie unterschiedlich konfigurieren können.
Ähnlich ist es auch, wenn zwei Tische in unterschiedlichen Ausführungen erstellt sind, z.B. ein Starlion-Table mit B2S-Grill und der gleiche Tisch in „normaler“ Ausführung, z.B. als Tisch ohne Backglass mit Grill. Dazu kann dann noch eine Ausführung mit PUP-pack kommen. Das macht dann schon 3 Varianten eines Tisches.
Um das Problem zu lösen, gibt es verschiedene Möglichkeiten:
16.6.1 - Unterscheidung von gleichen Tischen mit und ohne PUP-Pack über eigenen Emulator
Diese Variante ist der einfachste Weg. Es wird dazu ein zusätzlicher Emulator für die VPX-Tables mit PUP-Pack erstellt. Dieser ist gleich konfiguriert, bis auf den Games-Folder und das Media-Verzeichnis. Im Feld „Games-Folder“ wird das neue Tables-Verzeichnis eingetragen z.B. „Tables-PUP“ für die Tische mit PUP-Pack, ebenso das entsprechende Media-Verzeichnis, was dann mit seiner Struktur erstellt wird.
Das Launch- und Closescript wird von dem Emulator „Visual Pinball X“ übernommen, da es gleich ist.
Da in dem Verzeichnis „Tables-PUP“ nur die Tischdatei ohne das Backglass liegt, wird dieses auch nicht aufgerufen. Damit die BG-Datei nicht wegkommt, sollte diese in einem Verzeichnis „_directb2s“ dort abgelegt werden.
16.6.2 - Unterscheidung von gleichen Tischen mit und ohne PUP-Pack über das Table-Script
Eine weitere Möglichkeit ist es, die Tische mit und ohne PUP im gleichen Table-Verzeichnis zu belassen und das Table-Skript bei dem Tisch, der kein PUP, also das B2S-Backglass anzeigen soll, zu ändern.
Hierzu den Tisch mit dem BG im VPX-Editor aufrufen und das Table-Skript öffnen.
Dann den Programmteil suchen, in dem der Tisch initialisiert wird. Das sieht dann so aus wie hier beim X-Men:
Vorher |
Nachher |
Der Befehl „PupHide=1“ bewirkt, dass das Controller-modul das Pup-pack nicht startet.
Man kann es auch andersherum machen und bei dem Tisch mit PUP-pack das Backglass nicht anzeigen lassen. Dann wird in dem Init-part eingetragen:
„.LaunchBackglass=0“
Wichtig: den Punkt am Anfang nicht vergessen, da es sich um eine Objekteigenschaft des Controllers handelt, die angesprochen wird mit „with Controller…“
Es sollte dann noch der Tablename des Tables mit PUP am Ende um „_PUP“ ergänzt und in der PUP-Datenbank geändert werden, um diesen unterscheiden zu können.
16.6.3 - Steuerung Anzeige des Backglass oder PUP-Pack über das Launchscript und Table-Script
Noch eine Möglichkeit zur Unterscheidung wäre die Kombination von entspr. Launchparameter im Gamesmanager und Anpassung im Tablescript. Entspricht etwa dem oberen Fall.
Dazu wird kein eigener Emulator benötigt. Es muss nur der Tisch wieder kopiert und umbenannt werden mit „_PUP“ am Ende, damit der Gamemanager diese unterscheiden kann.
Dann wird im Gamemanager der Tisch ausgewählt und unter „Custom launch parameter“ “PUP“ eingetragen.
Damit dann beim Start dieser Parameter gelesen wird, muss noch im Table-script wieder in dem Part „Sub Table_Init“ bei „with controller“ eingetragen werden:
if GetCustomParam(1)= "PUP" then .LaunchBackglass=0
Das kann man auch wieder andersherum machen, bei „custom launch parameter“ „NOPUP“ eintragen und im Tablescript:
if GetCustomParam(1)= "NOPUP" then .PupHide=1
Nachteilig ist hier, dass an zwei Stellen geändert werden muss.
Dann kann man beide Varianten kombinieren und im Table-Script unter „with controller“ abfragen ob der Parameter „NOPUP“ oder „PUP“ gesetzt ist.
Hierzu nutzt man den Parameterbefehl „-c1“, den VPX kennt (Anzeige mit „VPinballX.exe /?“)
Dann ergänzen im table-script:
if GetCustomParam(1)= "NOPUP" then .PupHide=1
if GetCustomParam(1)= "PUP" then .LaunchBackglass=0
16.6.4 - Unterscheidung von gleichen Tischen mit gleichem ROM, anderem Backglass mit VPMAlias.txt
Die Unterscheidung der Tische, die VPinMAME, also ROMs nutzen, erfolgt dann über die Datei VPMAlias.txt
Die Verwendung der Datei „VPMAlias.txt“ ermöglicht die Verwendung von Tischen mit gleichem ROM, einmal als Tisch mit PUP-pack und als „normaler“ Tisch mit B2S-Backglass.
Im Verzeichnis „\VisualPinball\VPinMAME“ befindet sich dazu die Datei „VPMAlias.txt“.
Diese enthält in einer Liste die ROM-Namen bestimmter Tables, z.B.
blaze,csmic_l1
FF,gw_l5
In der Liste bezeichnet das erste Feld den neuen ROM-namen, also den Alias, und das zweite Feld den orig. ROM-Namen, auf den umgemappt wird.
<neuer AliasName>,<vorhandener ROMName>
Beispiel am Table „X-Men LE (Stern 2012) v2.0.1“:
Diesen gibt es in verschiedenen Variationen, hier geht es um den Tisch im Table-verz. mit einem B2S-Backglass und der gleiche Tisch „X-Men LE (Stern 2012) v2.0.1“ als PUP-Variante mit dem PUP-Pack-Verzeichnis:
„C:\VPinball\PinUPSystem\PUPVideos\xmn_151h“, da diese Tische das ROM „xmn_151h“ nutzen.
Einsehbar in dem Table-script: Const cGameName = "xmn_151h"
Vorgabe:
Es soll so sein, dass die PUP-Tische diejenigen sind, auf die die Konfiguration angepasst wird und nicht die „normalen“ Tische im Tables-Verzeichnis von VPX.
Somit laden dann die „normalen“ Tische den PUP-Part nicht mehr.
Die Tische im Tables-verz. bleiben also wie sie sind.
Für die PUP-Tische muss angepasst werden:
Der Aliasname wird der bestehende ROMname mit „_PUP“ am Ende, so dass diese ROM-Einstellungen leicht wiedergefunden werden können.
Die VPX-Tische bekommen dann am Ende der VPX-datei auch ein „_PUP“ angehängt.
- Die „VPMAlias.txt“ erweitern um „xmn_151h_PUP,xmn_151h“.
- Im Verz. „c:\VPinball\VisualPinball\Tables_PUP“ den Tisch „X-Men LE (Stern 2012) v2.0.1“ im VPX-Editor aufrufen und den Gamenamen ändern:
Const cGameName = "xmn_151h_PUP" - Die VPX-Datei umbenennen in „X-Men LE (Stern 2012) v2.0.1_PUP.vpx“
- Das Altcolor-Verzeichnis in „c:\VPinball\VisualPinball\VPinMAME\altcolor\xmn_151h“ kopieren und die Kopie in „xmn_151_PUP umbenennen.
- Das PUP-Pack-Verz. „\PinUPSystem\PUPVideos\xmn_151h“ kopieren und das bestende umbenennen in „xmn_151h_PUP.
Zuletzt noch den Tisch-namen in der Datenbank von PUP anpassen
16.6.5 - Gleiche Tische mit und ohne PUP-Pack unterscheiden mittels „PUPHideNext.txt“
Eine weitere Möglichkeit, den Start des PuP-Packs bei einem Tisch zu verhindern, kann über eine Konfiguration im Gamemanager und Anpassung des Launchscripts im Emulator erfolgen.
PUP hat das Feature, dass wenn die Datei „PUPHideNext.txt“ in dem PUP-Packverzeichnis eines Tisches liegt, dieses PUP-pack dann nicht zu starten. Nach dem Start wird die Datei dann gelöscht, damit das PUP-pack mit dem anderen Tisch gestartet werden kann.
Daher muss an zwei Stellen angepasst werden:
- Im Gamemanager wird im Feld „Custom Lauch Param“ z.B. der Wert „PUPHIDE“ eingetragen für diesen Tisch.
- Dann wird im Launchscript die Abfrage auf diese Variable ergänzt und wenn gesetzt, wird im PUP-packverzeichnis die Datei „PUPHideNext.txt“ erstellt.
das sieht dann so aus:
if "[CUSTOM1]"=="HIDEPUP" (
echo 1>> "[STARTDIR]PUPVideos\[?ROM?]\PUPHideNext.txt"
)
16.6.6 - Kurze Zusammenfassung der Anpassungen zu VPMAlias, Table-script und Tablename
Zuerst wird in einer neuen Zeile der gewünschte Aliasname eingetragen, gefolgt von dem „echten“ ROM-Namen:
“xmen_PUP,xmn_151h“
Zur leichteren Erkennbarkeit hat die Aliasbezeichnung „_PUP“ am Ende.
Der cGameName im Tablescript wird auf den Aliasnamen geändert, damit PUP diesen verwendet, der Originalname wird auskommentiert:
Ebenso wird am besten der Dateiname der VPX-Datei um „_PUP“ erweitert:
Es wir das bestehende PUP-Verzeichnis umbenannt mit „_PUP“ am Ende. Das muss den gleichen Namen bekommen wie der Aliasname.
16.7 - Erweiterungen des Popper-Operatormenüs
Es ist gerade in der Installationsphase für die Einrichtung einer größeren Anzahl von Tischen in VPX hilfreich, wenn Einstellungen über die Buttons im Spiel innerhalb von Popper erfolgen können, so dass keine Tastatur benötigt wird.
Die Versionen von Popper ab 1.4.6 beinhalten ein über Hotkey aufrufbares "Operatormenü", mit dem bestimmte systemnahe Einstellungen vorgenommen werden können, ohne den Tisch bzw. das Programm zu verlassen. Das Operatormenü kann erweitert werden.
Nailbuster hat hierzu ein Video in YT eingestellt:
Video: https://www.youtube.com/watch?v=_xHTKeexozA
und auf seiner Seite in „POVedit via Cabinet-keys“ wird aber leider nicht beschrieben wie man das Operatormenu anpasst. Daher hier eine Beschreibung.
Hierzu Kapitel: Erläuterungen zu der PUP-datei „PopperOperatorMenu.pup“
16.7.1 - Voraussetzungen für das Operatormenü
- Um das Operatormenü aufrufen zu können, muss zuerst im Popper Setup unter "Controller Setup" im Punkt "Operator Menu" eine freie Taste zugewiesen sein. (Von der Baller-Installation her ist das "O", welche hier über den Fire-button als "Shift-Taste" in Pinscape dem Left-Magnasave-Button zugewiesen ist)
- Es müssen folgende Dateien in PinUPSystem vorhanden sein (was bei der aktuellen Version auch der Fall ist):
- im PinUPSystemverz. "PopperOperatorEdit.exe" z. Editieren des Operatormenüs.
- im PinUPSystemverz. "PopperOperatorMenu.pup", das eigentliche Operatormenu
- im Verzeichnis \PinUpSystem\Launch die Datei "POPGAME_VPXPOV Edit.bat". Eine Batchdatei, die VPX im POVEdit-Mode startet
- im Verzeichnis \PinUpSystem\Launch die Datei "CloseVPXEditor.exe". Eine AutoHotkey-datei, die den Editorpart schließt, bevor VPX im POVEdit-Mode gestartet wird
16.7.2 - Das Standard-Operatormenü nach der Installation:
Es gibt Funktionen im Operatormenü, z.B. Show Help, die nur eine Grafik anzeigen und nach nochmaligem Hotkey geschlossen werden.
16.7.3 - Erläuterungen zu der PUP-datei „PopperOperatorMenu.pup“
- Spalte "Parentmenu": die Ebene des Menüs, ausgenommen hier die 3 letzten Zeilen, die mit "dont touch" erläutert sind, diese ermöglichen Ja/Nein-Bestätigungsfenster
- Spalte Display: Der Anzeigetext für den Menüpunkt, außer für "config", dort ist die Konfiguration des Menüs abgelegt, also z.B.Schriftart, Grösse.
Mit der displayID kann man angeben auf welchem der Monitore das Menu erscheinen soll. Normalerweise die ID des Playfields, welche im Popper-setup angegeben wurde. - Wert "rotation": die Drehung des Menus, normalerweise 270 Grad, wie bei dem Playfield.
- Die Werte in "extra2" in den Zeilen "record" entsprechen den Werten für die Zeiten, die im Media-manager im "Batch Auto recording" eingetragen wurden.
- Die Spalte "function" enthält den internen Befehl für Popper, was hier gemacht werden soll. Eine Doku, welche internen Funktionen zur Verfügung stehen, ist mir nicht bekannt.
- Die Spalte „ingame“ hat die Werte „1“ oder „2“.
ingame=1: Der Menüpunkt wird auch angezeigt, wenn kein geladen ist (also auch im Popper.
ingame=2: Menüpunkt wird nur angezeigt, wenn ein Tisch gestartet ist. - Displaybreak=1: nach Aufruf des Menüpunkts wird das Operatormenu beendet.
- Der Wert "0" oder "1" in Spalte "active" blendet den Menüpunkt aus oder ein.
16.7.4 - Bedienung für Einstellung mit POV-Datei:
- zuerst einen Tisch aus der Playliste auswählen und starten
- dann das Operatormenü aufrufen (mit der entspr. Hotkeytaste) und den POVEdit-Menüpunkt auswählen mit den Flippertasten
- das laufende VPX wird beendet und mit dem hinterlegten Tisch über Parameter %2 neu gestartet im POVEdit-mode, erkennbar an den im Bereich links unten angezeigten Werten
- mit den verschiedenen Tasten können dann Einstellungen vorgenommen werden. Die geltenden Keys/Werte werden links unten angezeigt.
- Gespeichert werden die Werte mit dem Startbutton, verlassen ohne zu Speichern mit der Coin-taste.
Dabei wird eine POV-Datei erstellt: <Tablemame.pov>
16.7.5 - Generelle Einstellmöglichkeit für alle Tische mittels Datei „autopov.pov“:
- VPX nutzt ab 10.7.2 die hinterlegte POV-Datei (im Table Verzeichnis), wenn diese den gleichen Namen hat wie der Tisch.
- Ebenso seit V10.7.2 kann eine "Autopov.pov"-datei im Tables-verzeichnis hinterlegt werden, die dann immer gezogen wird und die entsprechenden Einstellungen überschreibt. So müssen ggf. die einzelnen Tische oder die vpx-Datei nicht geändert werden.
16.7.6 - Erweiterungen des Operatormenüs
Das Operatormenü wird über den Hotkey „O“ (Firebutton+Right Magnasave) aktiviert und ist nur bei VPX-Tischen sinnvoll. Wenn kein VPX-Tisch gestartet wurde, also in der PUP-Oberfläche, werden die meisten Punkte daher auch nicht angezeigt.
Das Operatormenu wurde um einige hilfreiche Punkte erweitert:
- VPX-POVEdit:
den aktuellen Tisch im Modus „POVEdit“ starten, um dessen Abmessungen anpassen zu können. - Anaglyph-3D Mode
den aktuellen Tisch nach VPX-Neustart im 3D-Mode anzeigen. Es wurde der Mode für 3D-Brille mit Rot/cyan gläsern gewählt. Dies funktioniert nur mit VPX ab 10.8. Das hinterlegte Script startet VPX neu und ändert dabei die betreffenden Registrywerte. Nach nochmaligen Aufruf werden die Werte wieder zurückgestellt. - B2SDMD Config
hiermit kann das B2S-DMD aktiviert bzw. deaktiviert werden. - Ext.DMD Config
das Externe DMD und auch das interne DMD von VPinMAME über das Operatormenü deaktivieren bzw. aktivieren.
EM-Tische haben z.B. kein externes DMD und es gibt auch SS-Tische, die weder internes noch externes DMD benötigen. - Set Volume, Einstellen der Lautstärke
- Mute Volume, Sound deaktivieren
- Show Help, Hilfe zum Tisch anzeigen
- Show Info, Info card zum Tisch anzeigen
- Show other, ? unklar, es ist jedenfalls nicht „other2“ aus dem Mediamanager.
- Set Ratings, Bewertung (1-5) zum Tisch abgeben
- Record Displays
die verschiedenen Screens zum Tisch einzeln oder alle Screens aufzeichnen,
sowie der Aufruf zu „PopperAutoRecord“ und „Automated Testing“ (PopperAutoQA.exe) - Set Status of Tables
neue Funktion in V1.5. Man kann den Tisch auf “WIP“ (Work in Progress, in Arbeit) setzen, auf „hidden“ setzen oder disablen - Custom Scripts, hier stehen zusätzliche Funktionen
- System function
Sonder-Funktionen wie PC-Neustart oder Herunterfahren
Fast alle Punkte haben noch entsprechende Unterpunkte.
Das Operatormenu ist in der Datei „PopperOperatorMenu.pup“ hinterlegt und kann mit dem Tool „PopperOperatorEdit.exe“ im PinUpSystem-Verzeichnis geändert werden.
So sieht das erweiterte Operatormenüs und ein Teil der PUP-Datei mit den neuen Punkten aus:
Die komplette Datei ist in der Doku zu den Scripts aufgeführt.
16.8 - Zur Erst-Konfiguration des DMD mit Hilfe des Emulators in PUP
Da die VPX-Tische am Anfang noch keine Konfiguration haben bezgl. des DMD, kann über einen Parameter in dem Game-Manager und nachfolgende Auswertung im Launchscript automatisch konfiguriert werden, welches DMD oder ob überhaupt eines, angezeigt werden soll.
Diese Konfiguration muss per Table gespeichert werden und steht in der Registry unter
HKCU\SOFTWARE\Freeware\Visual PinMame\<Tischname>.
Der Tischname ist aber nicht der Dateiname, sondern der Name des ROMs, den dieser nutzt.
Da sich der Name nicht einfach per Script finden läßt wird der Standardwert in der Registry vor dem Tischstart geändert und nach dem Verlassen wieder auf „Enabled“ gesetzt.
VPinMAME übernimmt beim ersten Aufruf die Werte aus dem Defaultzweig und schreibt diese in den neuen ROM-Zweig es aufgerufenen Tischs.
Die default-Werte stehen in:
HKCU\SOFTWARE\Freeware\Visual PinMame\default
Hierzu muss das Launch- und Closescript von PUP angepasst und im Game Manager für den „Emulator Visual Pinball X“ im Feld „Custom Launch Param „eingetragen werden:
Diesen Parameter am besten in „Lookups“ vorgeben
Im Launchscript wird dann das entsprechende DMD über den Registrywert disabled.
if "[LaunchCustomVar]"=="noExtDMD" REG ADD "HKCU\Software\Freeware\Visual PinMame\default" /v "showpindmd" /t REG_DWORD /d 0 /f
Es wird der default-wert geändert, PinMame übernimmt diesen dann in den neuen Hive des Tables.
Im Closescript wird der Wert dann wieder aktiviert, so dass beim nächsten neuen Tisch DMD wieder angezeigt wird, falls notwendig
if "[LaunchCustomVar]"=="noExtDMD" REG ADD "HKCU\Software\Freeware\Visual PinMame\default" /v "showpindmd" /t REG_DWORD /d 1 /f
⚠️ das funktioniert nur bei Tischen, die noch nicht gestartet wurden, da Pinmame die Werte nur beim ersten Start übernimmt.
Wenn Tische im Nachhinein angepasst werden sollen, geht das nur über das Operatormenü einzeln für den Tisch, oder man löscht dessen Einträge in der Registry.
Das entspricht dann einem Erststart.
16.9 - Implementierung eines virtuellen FullDMD
Wenn ein LCD-Monitor für das DMD verwendet wird, der ein übliches Seitenverhältnis von 16:9 oder 5:4 hat, steht ausreichend Platz zur Verfügung um ein sog. FullDMD zu konfigurieren.
Dies bedeuted, dass ober- und unterhalb des DMD-Anzeigebereichs dieser Teil mit tischbezogenen Motiven (oder einem generellen Hintergrund) ausgefüllt wird.
Hier ein tablespezifische Hintergrundvideo, in dem Rahmen wird das DMD positioniert.
Hierzu muss an 3 Stellen konfiguriert werden:
- Die Screen-Einstellung am PUPpack des PinUpMenus selbst
- Im Popper-setup die Einstellung für „Displays“
- Anpassung von „Keep Displays On“ in der Konfiguration des Emulators
- Schließlich, wenn man einen table-spezifischen FullDMD Hintergrund haben möchte, Download der entspr. Mediadateien im Mediamanager
Die Schritte im Einzelnen:
16.9.1 - Screen-Einstellung PinUPMenü-PUPpack
- PinUpMenüSetup.exe aufrufen, dort im Reiter „Popper Setup“ auf „Screens/Theme“ klicken. Es wird dann das Pup-Pack des PinUpMenüs geladen.
- Dort Topper und DMD auf „off“, FullDMD auf „ForceBack“ einstellen
oben das neue Menü aus der 5er Version, dort gibt es den Screen 5 „FullDMD“
Das Menü aus einer 1.4er Version vor Änderung, hier heißt der Screen 5 noch „“Menu“
Man kann den Namen einfach ändern, PUP geht nach der Screennummer, wie dieser heißt ist aber egal. - Danach auf „Save PUP-pack“ klicken und den PUPpack editor verlassen, Popper-Setup geöffnet lassen.
⚠️ Sobald im PinUpmenu-PuPpack die Anzeige des FullDMD aktiviert ist, wird dieses nach dem Aufruf des Pupmenüs angezeigt, also nicht nur nach Table-start, sondern auch bei der PuP-Oberfläche. Diese Einstellung gilt also auch für alle Tische in diesem Emulator.
Ist für den angewählten Tisch kein FullDMD vorhanden, wird das Default-FullDMD genommen.
Screen 5 ist default off gewesen und würde sonst in der Oberfläche das Video in
„POPMedia\Default\Menu\pl_Home.mp4 anzeigen. Da PUP 11 Screens verwalten kann, wurde der nicht benutzte Screen 5 für das Menü (also die Oberfläche) in der neuen 1.5er Version für das fehlende FullDMD genutzt.
16.9.2 - Einstellen der Displays
- Im Popper-Setup auf „Global config“ klicken und den Reiter „Displays“ auswählen
- Hier „Apron/FullDMD“ einstellen auf „Active and Update“
- Auf „Save“ klicken und die Global Settings schließen, Popper-Setup geöffnet lassen.
16.9.3 - Anpassen der Emulatorkonfiguration
Jetzt muss noch konfiguriert werden, dass das FullDMD geöffnet bleibt, wenn ein Tisch gestartet wurde. Dies geschieht in der Emulator-Konfiguration.
- Im Reiter „Popper Setup“ auf „Emulators“ klicken
- einen Emulator auswählen, z.B. „Visual Pinball X“
- Dort unter „Displays On“ die ScreenNr. 5 eintragen oder aus dem Dialogfenster wählen
Damit wird das FullDMD nach Tischstart weiter angezeigt für Visual Pinball X
16.9.4 - Positionieren des FullDMDs
Um die Position des FullDMDs anzupassen:
- PinUpPopper-Setup aufrufen
- Reiter „Popper Setup“ klicken, dann „Screens / Theme“
- Auf „Configure Display / Locations“ klicken
- In dem neuen Fenster dann „Configure Screens“
- Dann in dem Fenster aus der Liste „Apron/FullDMD“ auswählen
- Das FullDMD-Fenster dann an die richtige Stelle schieben und die Größe anpassen
- Die Einstellungen speichern mit „Save Settings“, PUPpack Editor schließen und Popper setup verlassen.
16.9.5 - Tisch-spezifische FullDMDs
Im letzten Schritt können den Tischen eigene FullDMDs mittels Download über den Mediamanager zugeordnet werden.
Im Mediamanager den betreffenden Emulator auswählen, einen Table wählen, der ein DMD hat.Hier z.B. „Airwolf“
Das Video über Preview anzeigen lassen und bei Gefallen „Download & Use Video“ klicken.
Damit ist dieses FullDMD korrekt benannt und mit dem Tischnamen abgelegt.
Jetzt hat der Tisch ein eigenes FullDMD-video. Es fehlt aber noch für PUP die komplette Videoaufname von FullDMD mit eingebettetem DMD. Hierzu wird das Tool „PopperAutorecord“ verwendet.
Mit diesem können die fehlenden Videos automatisch aufgenommen werden.
Nach Klick auf „Start Auto-record“ startet das Programm nacheinander die Tische und nimmt das FullDMD auf, speichert es im richtigen Verzeichnis mit dem korrekten Namen ab.
⚠️ Da für FullDMD der Screen „Menu“, der eigentlich für das PUPmenu gedacht war, verwendet wird, hat dann auch jede Playlist ein FullDMD, was jetzt sinnfrei ist.
Es wird dann das Default Video mit Schriftzug „Pinup Popper“ angezeigt.
Und es ist zu beachten, dass daher die zugewiesenen FullDMD-Videos für VPX im Verzeichnis c:\vPinball\PinUPSystem\POPMedia\Visual Pinball X\Menu landen, da dieses der ursprüngliche Zweck gewesen ist.
16.9.6 - Fazit zu FullDMD:
Der Umkonfigurationsaufwand für die einzelnen Tische ist recht hoch. Es gibt Tische die ein BG mit Grill haben und für die es FullDMD gibt. Dann muss entweder das BG umkonfiguriert werden, oder das FullDMD wird nicht verwendet, es wird aber dann das Default-FullDMD angezeigt. Bei EM- und SS-Tischen etwas unschön.
Die Idee im Popper-setup unter „Displays“ den FullDMD-Screen auf „Active (if media found)“ zu setzen, funktioniert nur so halbwegs.
Dann wird zwar standardmäßig kein FullDMD mehr angezeigt. Aber wenn ein entsprechendes FullDMD vorhanden ist, wird das Fenster dazu beim Weiterscrollen zu einem anderen Tisch nicht geschlossen. Es bleibt dessen Fenster als schwarzer Bereich stehen, da wohl die Einstellung unter „Keep Displays on“ dies so bewirkt.
16.10 - Anpassen des Coindoor-keys entsprechend der Zuordnung in Pinscape
Standardmäßig ist für den Coindoor-Schalter die „END“-Taste zugeordnet in VPX. Dies überschneidet sich in Future-Pinball aber mit „Sound-volume down“.
Daher muss diese Taste in der Konfiguration von Pinscape und für VPX umdefiniert werden auf die Taste „c“.
Diese Keys werden in VPX von VpinMAME verarbeitet. Diese key-Zuordnungen erfolgen in der Datei „VPMKeys.vbs“ im Scripts-verzeichnis. Dieser Eintrag ist entsprechend zu ändern:
Ebenso wurde die Zuordnung in Pinscape angepasst.