Jump to content
bontango

LISY_Mini pinmame system7 support für APC

Recommended Posts

System7 support für Jungle Lord und Black Knight ist jetzt drin, bitte nimm "lisy_update_APC.tgz" für das Update auf LISY_VERSION_5.26-3

Sollte grundsätzlich laufen, Displays könnten noch etwas komisch ausschauen.

Dann habe ich einen merkwürdigen Effekt beim Sound, da scheint der APC aus dem Tritt zu kommen,

bzw, der Soundbefehl meine Switch Status Abfrage zu stören, passiert aber nur bei Sys7 & Sys9 nicht bei Sys11

Log aus dem Aufruf Black Knight:

loading rom 0: ic14.716
loading rom 1: ic17.532
loading rom 2: ic20.716
loading rom 3: ic26.716
done
[493.604226][0.076395] LISY_W sound_handler: board:0 0x7f (127)
[493.604425][0.000199] play soundindex 127 on board 0
[493.604525][0.000100] USB_write(3 bytes): 0x32 0x01 0x7f
[493.610983][0.006458] USB_write(2 bytes): 0x28 0x01
[493.611148][0.000165] USB_write(2 bytes): 0x28 0x02
[493.611268][0.000120] USB_write(2 bytes): 0x28 0x03
[493.611383][0.000115] USB_write(2 bytes): 0x28 0x04
[493.611500][0.000117] USB_write(2 bytes): 0x28 0x05
[493.611615][0.000115] USB_write(2 bytes): 0x28 0x06
[493.611738][0.000123] USB_write(2 bytes): 0x28 0x07
Error reading from serial switch status, return:0 No such file or directory
[493.716227][0.104489] USB_write(2 bytes): 0x28 0x08
Error reading from serial switch status, return:0 No such file or directory
[493.826151][0.109924] USB_write(2 bytes): 0x28 0x09
Error reading from serial switch status, return:0 No such file or directory
[493.936142][0.109991] USB_write(2 bytes): 0x28 0x0a
Error reading from serial switch status, return:0 No such file or directory
[494.046139][0.109997] USB_write(2 bytes): 0x28 0x0b
Error reading from serial switch status, return:0 No such file or directory
[494.156142][0.110003] USB_write(2 bytes): 0x28 0x0c
[494.159145][0.003003] USB_write(2 bytes): 0x28 0x0d
[494.163143][0.003998] USB_write(2 bytes): 0x28 0x0e
[494.167144][0.004001] USB_write(2 bytes): 0x28 0x0f
[494.171143][0.003999] USB_write(2 bytes): 0x28 0x10
[494.175142][0.003999] USB_write(2 bytes): 0x28 0x11

 

Share this post


Link to post
Share on other sites

Vermutlich ist 0x7f das Stop Sound Kommando. So war's auch bei Sys11, allerdings kam dieses Kommando da auf Kanal 2. Für Kanal 1 ist dieses Kommando daher bisher nicht definiert, so dass er auf der SD-Karte nach der Sounddatei 1_7f.snd sucht und das kann ein paar ms dauern.

Du kannst 0x7f auch für Kanal 1 als Stop Kommando definieren, in dem du in USBcontrol.ino -> void USB_SerialCommand() folgende Änderung vornimmst:

case 50:
  if (SerialBuffer[0] == 1) {                               // channel 1?
    if (!SerialBuffer[1] || (SerialBuffer[1] == 127)) {     // stop sound
      AfterSound = 0;
      StopPlayingSound();
      break;}

Damit sollte 0x7f (127) als Stop Befehl erkannt werden und keinen Suchvorgang auf der SD-Karte mehr auslösen.

Share this post


Link to post
Share on other sites

System7 Implementierung sieht schon ganz gut aus 🙂 Frank hat fleissig getestet,

Ein Problem haben wir noch, Spule 1 (Outhole) zieht nach Spielstart dauerhaft an.

Habe das mal nachvollzogen:

LISY bekommt innerhalb von pinmame die Aufforderung Spule 25 einzuschalten,
bei Geräten mit A/C Relais ist das die erste Spule der 'C-Seite' daher habe ich bislang die
Spulen 25-33 auf 1-8 gemappt und verlasse mich darauf dass dasACRelais richtig steht.
Beim System7 ohne AC-Relais schaltet er dann Spule 1 ein ...
Welche Spule aber könnte er mit Spule 25 beim BlackKnight meinen??

Share this post


Link to post
Share on other sites

OK, beim SYS7 ist intern Spule 25 wohl  das 'Flipper_enable' Relais

aus s7.h:

/* GameOn Solenoid */
#define S7_GAMEONSOL 25


bei System9 und Sys11 war es #23 ...

Update folgt ...

Share this post


Link to post
Share on other sites

Das sieht sehr gut aus.

Ich denke, dass der Throttle-Wert noch nicht stimmt, denn er spielt sich noch etwas hakelig. Das werde ich also noch etwas abstimmen müssen und dann mache ich mich an den Sound.

Von deiner Seite aus ist da aber erst mal nichts mehr zu tun, du kannst dich also um deinen Comet kümmern. 👍

Mal sehen, was beim Sound noch auf uns zu kommt.

Share this post


Link to post
Share on other sites

Wie stelle ich den Windows PinMame denn um auf Black Knight, damit ich mir die Sounds raus holen kann? Ich finde schon nicht, wo das ROM File hin muss.

Share this post


Link to post
Share on other sites
vor 14 Stunden schrieb Black Knight:

Oder kommt tatsächlich nur das ZIP der Roms in den PinMame Ordner?

Ich muss zugeben da habe ich mir etwas zurechtgefrickelt, waraber auch ursprünglich nur für mich und nie für den 'Produktionseinsatz' geplant.

Aktuell rufe ich die verschiedenen Pins jeweils mit einer angepassten Batchdatei aus dem Hauptverzeichnis auf.

In der Batch steht nur der Pfad der exe die '-window' option, dann das Rom-Verzeichnis mit Option -rp angegeben

(Das ist hier nur ".." also eins unter dem Vezeichnis wo die Batch steht) und dann der Name der rom-Zip (ohne zip extension)

Beispiel für den Blackknight

.\obj\VC2019\PinMAME\Win32\Release\PinMAME_VC2019 -window -rp .. bk_l4

wobei dann bk_l4.zip in das Romverzeichnis muss

Share this post


Link to post
Share on other sites

Kannst du die Auswahl nicht in die Webtools verlegen? Das er z.B. die vorhandenen Games in einer Auswahlliste anzeigt und man sich dort eines aussuchen kann?

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb Volley:

Kannst du die Auswahl nicht in die Webtools verlegen?

ging hier um die Windowsversion, die brauchen wir nur um die Sounds zu rippen.

Die Settings am Flipper laufen dann über die Menueauswahl des APC

 

Share this post


Link to post
Share on other sites
Am 19.5.2020 um 08:38 schrieb bontango:

waraber auch ursprünglich nur für mich und nie für den 'Produktionseinsatz' geplant.

Sehe auch auch nicht als deine Baustelle an, da es ja nichts mit Lisy zu tun hat.

Am 19.5.2020 um 08:38 schrieb bontango:

(Das ist hier nur ".." also eins unter dem Vezeichnis wo die Batch steht) und dann der Name der rom-Zip (ohne zip extension)

Ja, nachdem mir wieder eingefallen ist, dass wir den PinMame ja über ein Skript aufrufen, habe ich das dann auch irgendwann kapiert.🤪

 

Share this post


Link to post
Share on other sites

Kennst du dich mit Bash-Skripten aus?

Ich versuche gerade, die Audiodateien von Black Knight zu erstellen. Bei Sys7 erzeugen einige Audiobefehle allerdings Tonsequenzen, die sich bei erneutem Aufruf leicht ändern (anschwellen), so dass man es mit hunderten von Dateien zu tun hat.

Was ich jetzt als Skript bräuchte wäre z.B.

- Kopiere Datei Black_Knight_068.wav um in Data.wav

- Starte mein AudioSave Skript.

-Benenne Data.bin um in 0_2e_01.snd

Dabei müssten die Nummern in den Dateinamen entsprechend hoch zählen.

Weißt du spontan wie sowas geht?

Share this post


Link to post
Share on other sites

Hatte da mal was for meine Konvertierung geschrieben, sollte sich einfach anpassen lassen:


#!/bin/bash
for i in {0..255}
do
  if [ -f $i.wav ]; then
   cp $i.wav Data.wav
   ../AudioSave.pl
   mv Data.bin $i.BIN
   echo "$i.BIN created"
  fi
done

 

Share this post


Link to post
Share on other sites

Ja, super. Das war der Anschub, den ich gebraucht habe.

Jetzt sollte ich alle Sound-Dateien haben und kann mich an die Implementierung der Soundkommandos machen.

Hast du schon was an deinem Comet ausprobiert? Der scheint ja die gleiche Sound HW zu haben und es würde mich interessieren, ob die Kommandos auch die gleichen sind.

Bei Sys7 scheint 0x2c z.B. das Sound-Stop Kommando zu sein und 0x2e ist das Hintergrundgedudel, was bei jedem erneuten 0x2e etwas schriller wird. Das dudelt dann immer weiter, bis es durch 0x2c oder durch 0x34 (Bonus Count) beendet wird.

Gibt noch ein paar weitere, aber es ist wohl nicht viel. Das sollte ich also relativ schnell eingebaut haben.

Share this post


Link to post
Share on other sites

Sys7 läuft vom Sound her schon fast perfekt. Trotzdem werde ich auch noch einen Modus einbauen, um das Original-Soundboard über das HW_ext Interface ansteuern zu können.

Ich habe auch immer noch das Gefühl, dass die Emulation nicht ganz rund läuft - irgendwie scheint er leicht zu stocken.

Ich muss morgen nochmal den Pinbot spielen, wenn der das gleiche Problem plötzlich auch hat, dann haben wir bei unserer I2C Integration möglicherweise was am USB-Handling zerdeppert.

Share this post


Link to post
Share on other sites

Kann das am Debug-Mode von Lisy gelegen haben? Kaum ist der aus, läuft alles schon viel besser.

Eigentlich läuft er für den ersten Schuss erstaunlich gut. Die Soundsamples, die ich verwendet habe sind leider nicht alle gleich laut, da muss ich also wohl nochmal ran.

Es scheint nur noch ein echtes Problem zu geben: wenn er den Multiball startet gerät das Ganze deutlich ins Stocken. Ich muss mal versuchen Sound u.s.w. abzuschalten, um herauszufinden, was das sein kann. Er macht da schon ein ziemliches Spektakel, flackert mit den Lampen rum u.s.w. Ich frage mich also ob vielleicht der USB Bus nicht hinterher kommt.

Share this post


Link to post
Share on other sites
vor 11 Stunden schrieb Black Knight:

Kann das am Debug-Mode von Lisy gelegen haben? Kaum ist der aus, läuft alles schon viel besser.

Ja, da schreibt er, abhängig auch davon welche Jumper Du gesetzt hast, recht viel mit.

Im Moment glaube ich sogar jedes Byte, das hatte ich mal zum USB Debug ingefügt, nehme ich wieder raus ...

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb bontango:

Im Moment glaube ich sogar jedes Byte, das hatte ich mal zum USB Debug ingefügt, nehme ich wieder raus ...

Ich weiß nicht, ob wir es wieder raus nehmen sollten; das kann ja auch sehr praktisch sein. Vielleicht eine zusätzlich Debug-Option 'USB'? Oder besser 'Data', denn es kann in Zukunft ja auch I2C sein. Wenn wir die APC Settings nutzen, bist du ja jetzt nicht mehr an die Debug-Jumper gebunden, sondern kannst frei wählen, was du haben möchtest, da wäre eine 'Data' Option also kein Problem.

Wir müssen sowieso nochmal über die Settings reden. Ich kann den Status der DIP-Schalter als Dezimal-Byte abbilden. Der Nutzer müsste also ins Handbuch schauen, heraussuchen welche Bits gesetzt sein sollen und das Ganze in einen Dezimalwert umrechnen. Ich kann die Werteeingabe auch binär machen, dann braucht er wenigstens nicht umzurechnen.

Wir könnten es jetzt aber auch komfortabler machen und z.B. für die DIP-Schalter, die den Lisy-Modus festlegen diese als Textmenü auslegen. Da könnte es für den Lisy_Modus dann Einträge geben wie PinMame, Debug, MPF, MPF 7-Digit u.s.w.

Kannst dir ja mal überlegen, ob das Sinn macht.

Share this post


Link to post
Share on other sites

Das Stocken zu Beginn des Multiballs liegt wohl an den Zugriffszeiten der SD-Karte.

Er spielt da so ein Stakkato an Tönen, fast schon wie ein  Maschinengewehr. Da jeder dieser Töne ein neuer Soundaufruf ist, öffnet der APC jedes mal auf's neue die entsprechende Sounddatei. Irgendwann kommt die SD-Karte wohl nicht mehr mit und dann kommt alles ins Stocken.

Der Arduino hat nicht genug RAM, um den Sound zu puffern, also bleibt wohl nur, die ganze Soundsequenz auf die Karte zu packen und abzuspielen. Das habe ich das bei meinem eigenen Black Knight Programm auch gemacht. Ist nicht schön, aber für reine PinMame Nutzer werde ich sowieso noch was einbauen, damit sie das alte Audioboard anschließen können. Wer seine Sounds verändern möchte muss sich die Arbeit ja sowieso machen.

Oder man sucht so lange nach einer schnelleren SD-Karte, bei der das Problem nicht auftritt.

Der Advance Schalter (Nummer 72) funktioniert übrigens nicht, da muss die Schalternummer für PinMame vermutlich noch angepasst werden - ich meine mich zu erinnern, dass dies bei System11 genauso war.

Share this post


Link to post
Share on other sites
vor 18 Stunden schrieb Black Knight:

Der Advance Schalter (Nummer 72) funktioniert übrigens nicht, da muss die Schalternummer für PinMame vermutlich noch angepasst werden - ich meine mich zu erinnern, dass dies bei System11 genauso war.

Habe das gerade mal gecheckt, sollte eigentlich funktionieren. Ich habe derzeit zwar keine Abfrage speziell fuer system7, aber die defines

in pinmame fuer system7 und 11 sind gleich ... kannst du mal nen debug mit eingeschaltetem switch debug machen?

s11.h:#define S11_SWADVANCE     -7
s11.h:#define S11_SWUPDN        -6
s11.h:#define S11_SWCPUDIAG     -5
s11.h:#define S11_SWSOUNDDIAG   -4

s7.h:#define S7_SWADVANCE     -7
s7.h:#define S7_SWUPDN        -6
s7.h:#define S7_SWCPUDIAG     -5
s7.h:#define S7_SWSOUNDDIAG   -4

 

Share this post


Link to post
Share on other sites

Gibt's was Neues bezüglich des Advance Schalters?

Ich habe übrigens noch ein Problem, wo PinMame schräge Dinge tut obwohl das Log einwandfrei aussieht: Wenn ein Ball im Outhole liegt (Switch 20), dann soll er die Spule 1 aktivieren, um das Ding in die Balltruhe zu schubsen. Das tut er auch, allerdings macht er das meistens noch ein zweites (oder auch drittes) mal, obwohl da gar kein Ball mehr liegt. Das wäre ja noch nicht so schlimm, aber wenn ein Multiball läuft dann wertet er jede dieser Aktivierungen als einen verlorenen Ball. Dadurch sind die meisten Multibälle nach dem ersten Ball zu Ende und er gibt einen neuen Ball, obwohl noch welche im Spiel sind.

Im Log sieht das so aus:

[464.256754][2.674438] API_write: 0x29
[464.256865][0.000111] API_read_byte: 0x94
[464.256888][0.000023] LISY_W_SWITCH_READER: changed switch reported: returnbyte:148
[464.256904][0.000016] LISY_W_SWITCH_READER: return switch: 20, action: 1
[464.256921][0.000017] LISY_W_SWITCH_HANDLER Switch#:20 action:1
[464.296510][0.039589] API_write(2 bytes): 0x15 0x01
[464.296606][0.000096] STATISTICS: API_write 2991 bytes since last log
[464.296698][0.000092] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 1 ( no AC Relais) 
[464.306789][0.010091] API_write: 0x29
[464.306815][0.000026] API_read_byte: 0x14
[464.306908][0.000093] LISY_W_SWITCH_READER: changed switch reported: returnbyte:20
[464.306927][0.000019] LISY_W_SWITCH_READER: return switch: 20, action: 0
[464.306943][0.000016] LISY_W_SWITCH_HANDLER Switch#:20 action:0
[464.425123][0.118180] API_write(2 bytes): 0x16 0x01
[464.425235][0.000112] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 0 ( no AC Relais) 
[464.970175][0.544940] API_write(2 bytes): 0x15 0x01
[464.970283][0.000108] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 1 ( no AC Relais) 
[464.977762][0.007479] API_write: 0x29
[464.977789][0.000027] API_read_byte: 0x94
[464.977859][0.000070] LISY_W_SWITCH_READER: changed switch reported: returnbyte:148
[464.977883][0.000024] LISY_W_SWITCH_READER: return switch: 20, action: 1
[464.977900][0.000017] LISY_W_SWITCH_HANDLER Switch#:20 action:1
[465.037891][0.059991] API_write: 0x29
[465.037923][0.000032] API_read_byte: 0x14
[465.038014][0.000091] LISY_W_SWITCH_READER: changed switch reported: returnbyte:20
[465.038033][0.000019] LISY_W_SWITCH_READER: return switch: 20, action: 0
[465.038050][0.000017] LISY_W_SWITCH_HANDLER Switch#:20 action:0
[465.083081][0.045031] API_write(2 bytes): 0x16 0x01
[465.083135][0.000054] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 0 ( no AC Relais) 

Man sieht, dass bis [464.425235] alles gut läuft, bis er die Spule 1dann in [464.970175] plötzlich wieder betätigt.

Lustigerweise scheint das Problem zu verschwinden, wenn PinMame länger läuft. D.h. das erste Spiel geht normalerweise gar nicht und ab dem dritten scheint das Problem meistens weg zu sein. Hast du da irgendeine Idee? 

Abgesehen davon läuft übrigens alles gut: der Sys7 APC Sound klappt weitestgehend und ich habe auch das System7 Audioboard am laufen. Wer keine Lust hat, die Sounds aus PinMame heraus zu kitzeln kann sein altes Audioboard also an den HW_ext Anschluss des APC stöpseln und fertig.

Share this post


Link to post
Share on other sites
vor 18 Stunden schrieb Black Knight:

Gibt's was Neues bezüglich des Advance Schalters?

Hab ich mich noch nicht drum kümmern können, im Moment laufen die ersten GOSOF Tests .. https://lisy.dev/gosof80.html

vor 18 Stunden schrieb Black Knight:

Ich habe übrigens noch ein Problem, wo PinMame schräge Dinge tut obwohl das Log einwandfrei aussieht

Ich habe die relevanten Teile mals rausgeschnitten

[464.256921][0.000017] LISY_W_SWITCH_HANDLER Switch#:20 action:1
[464.296698][0.000092] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 1 ( no AC Relais)
[464.306943][0.000016] LISY_W_SWITCH_HANDLER Switch#:20 action:0
[464.425235][0.000112] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 0 ( no AC Relais)
...
[464.970283][0.000108] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 1 ( no AC Relais)
[464.977900][0.000017] LISY_W_SWITCH_HANDLER Switch#:20 action:1
[465.038050][0.000017] LISY_W_SWITCH_HANDLER Switch#:20 action:0
[465.083135][0.000054] LISY_W_SOLENOID_HANDLER: Solenoid:1, changed to 0 ( no AC Relais)

Auffällig ist ja auch dass danach noch makl eimn Wechsel Switch #20 gemeldet wir ???

 

Edited by bontango

Share this post


Link to post
Share on other sites

Eventuell ist der Schalter zu knapp justiert?

 

vor 18 Stunden schrieb Black Knight:

und ich habe auch das System7 Audioboard am laufen.

das ist gut, die meisten werden das bevorzugen

Share this post


Link to post
Share on other sites
vor 55 Minuten schrieb bontango:

Auffällig ist ja auch dass danach noch makl eimn Wechsel Switch #20 gemeldet wir ???

Das stimmt, aber das kommt ja erst nachdem die Spule zum zweiten mal angezogen hat. Ich nehme daher an, dass der Schalter durch das Anziehen der Spule nochmal ausgelöst wird.

So wie ich dich verstehe, hast du aber auch erst mal keine spontane Idee was das sein könnte.

Ich werde das Ganze als nächstes mal im Jungle Lord probieren - mal sehen, ob das Problem da auch auftritt.

vor 54 Minuten schrieb bontango:

das ist gut, die meisten werden das bevorzugen

Das denke ich auch, obwohl man dann natürlich nur die Originalsounds verwenden kann. Ich könnte jetzt halt per Option das Hintergundgedudel abschalten und auf dem zweiten Audiokanal stattdessen Musik abspielen.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Privacy Policy and Community Guidelines