Zum Inhalt springen

Arduino Pinball Controller


Black Knight

Empfohlene Beiträge

Ja, habe ich mich verguckt, das war der 'B' ... 32,50€ ist richtig.

Schöne Werkstatt ( alte Küche umfunktioniert? 😉 )

Log sieht schon gut aus, allerdings sieht man dass pinmame die Aktualiserung der Displays 'in Etappen' vornimmt

Das zweite Paket kommt 52ms nach dem ersten, mal schauen ob man dass mit dem Auge wahrnimmt

Ich mach Montag weiter ... noch ein schönes WE

 

 

[262.987912][0.000110] LISY80 option: debug
[262.987923][0.000011] LISY80 option: autostart
LISY_Mini: we are emulating jngld_l2
This is LISY (Lisy_w) by bontango, Version 05.015
loading rom 0: ic14.716
loading rom 1: ic17.532
loading rom 2: ic20.716
loading rom 3: ic26.716
done
[263.069172][0.081249] display change detected

Player1:      00
Player2:
Player3:
Player4:
Credits: 00
Balls: 00

[266.947398][3.878226] display change detected

Player1: 2000000
Player2:
Player3: 20000
Player4:
Credits: 00
Balls: 00

[267.005183][0.057785] display change detected

Player1: 2000000
Player2: 2000000
Player3: 2000000
Player4: 2000000
Credits: 00
Balls: 00

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 1,6Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

  • Black Knight

    642

  • bontango

    438

  • Volley

    100

  • jabdoa

    97

Top-Benutzer in diesem Thema

Veröffentlichte Bilder

Ja, die alte Küche passte exakt in meine Werkstatt, da dürfte sie dann bleiben.

Ich glaube nicht, dass man eine Verzögerung von 52ms wahrnimmt. Die Refreshzeit der Displays liegt ja schon bei 16ms und das Flackern merkt man ja auch nicht.

Sind Credit und Balls für den PinMame zwei getrennte Displays? Momentan ist das bei mir beides Display0 und wird hintereinander übertragen (also 4 stellig, erst Balls dann Credit wenn ich mich nicht irre). Wenn ich das trennen soll müssten wir die Displaynummern festlegen.

Frank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist bei mi auch 4-stellig (Display0), ich geb das nur getrennt im Log aus weil ich mir nie merken kann wo was steht 🙄

Ich fang jetzt gerade mit der Switchmatrix an, geht bei Williams alles über die Matrix oder gibt es noch spezielle einzelne Swicthes

die ich extra abfragen muss?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Ralf,

29 minutes ago, bontango said:

weil ich mir nie merken kann wo was steht

Ich habe gerade auch in meinem Code nachsehen müssen. 😉

Es gibt bei Williams noch ein paar Switches außerhalb der Matrix. Meines Wissens nach sind es 9, davon gehören 6 zu Special Solenoids, d.h. die können dir egal sein, da wir die sowieso über HW Rules abfangen. Bleiben 3 übrig, die an die CPU gehen:

- Memory Protect -> Switch 71 - detektiert, ob die Kassentür offen ist. Keine Ahnung, ob der für PinMame interessant ist.

- Advance -> Switch 72 - der ist wichtig, da darüber die Menüs gesteuert werden.

- Up/Down -> rastet in Down-Stellung ein wenn man ihn drückt. Bei nochmaliger Betätigung kommt er wieder hoch. Wird auch für Menüs benutzt.

Normalerweise haben diese Switches keine Nummer (zumindest keine, die im Manual steht), aber im APC bekommen alle eine, bis auf Up/Down. Dem müssten wir dann eine Nummer zuweisen. Eins ist noch wichtig: bei diesem Schalter ist eigentlich nur der Zustand interessant ist (oben oder unten), daher wird der bei mir nicht regelmäßig auf eine Statusänderung überprüft, sondern nur gezielt abgefragt. D.h. der würde bei Befehl 41 (get changed switches) nicht auftauchen, sondern müsste über Befehl 40 (get Status of switch #) abgefragt werden. Da müssen wir halt sehen, ob das reicht oder ob ich das noch ändern muss.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Advance & Up/Down habe ich gefunden

pia_set_input_ca1(S7_PIA3, core_getSw(S7_SWADVANCE));
pia_set_input_cb1(S7_PIA3, core_getSw(S7_SWUPDN));

Ich check mal wie die reagieren, über den 'core_getSW' Aufruf könnte ich den via Befehl40 abfragen, ich befürchte nur dass er das zu oft abfragt, d.h. ne Nummer und Rückgabe in Befehl 41 für den UP/down wäre gut

Den Memory Protect habe ich in der source nicht gefunden. Ist der evtl. nur in Hardware auf dem CPU Board verdrahtet? Dann brauchen wir den für Pinmame nicht.

Diese Special Switches hat pinmame für S7:

/*-- S7 switch numbers --*/
#define S7_SWADVANCE     -7
#define S7_SWUPDN        -6
#define S7_SWCPUDIAG     -5
#define S7_SWSOUNDDIAG   -4
#define S7_ENTER         -3


SOUNDDIAG nehme ich an ist auf dem Soundboard. Sagt Dir CPUDIAG und ENTER etwas?

Enter könnte was mit den beiden DIP Switch Bänken zu tun haben:

/*-----------------------------------------------------------------
  Dip switch support
-------------------------------------------------------------------
  Dips are returned to a4-7 and are read by pulsing of a0-3 (same as digSel).
  Dips are matrixed.. Column 0 = Function Switches 1-4, Column 1 = Function Switches 5-8
                      Column 2 = Data Switches 1-4, Column 3 = Data Switches 5-8
  Game expects on=0, off=1 from dip switches.
  Game expects 0xFF for function dips when ENTER-key is not pressed.
*/
static READ_HANDLER(s7_dips_r) {
  int val=0;
  int dipcol = (s7locals.digSel & 0x03);  /* which column is requested */
  if (core_getSw(S7_ENTER))               /* enter switch must be down to return dips */
    val = (core_getDip(dipcol/2+1) << (4*(1-(dipcol&0x01)))) & 0xf0;
  return ~val;                            /* game wants bits inverted */
}

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich sollte der Up/Down nicht so oft abgefragt werden, denn das Ding wird meines Wissens nach nur zusammen mit anderen Switches benutzt. Wenn du z.B. im Settings-Menu bist und Advance drückst, dann wird Up/Down einmal abgefragt, um festzustellen ob man vor- oder rückwärts durch das Menu gehen möchte - so'n Zeug halt.

CPUDIAG dürfte der HW Diagnose-Schalter sein, mit dem man einen HW Selbsttest der CPU auslösen kann. SOUNDDIAG ist das Gleiche für's Soundboard. Wundert mich, dass der PinMame diese Schalter benutzt, denn die machen ja nur bei der alten HW Sinn.

ENTER habe ich bei Sys7 gar nicht gefunden, aber bei Sys4. Da ist er in der Tat als Bestätigung der DIP-Switch Kommandos gedacht. Das ist wohl nur wegen der Abwärtskompatibilität noch in Sys7 drin, denn die werden da nicht benutzt. Das Board hat wohl noch die Plätze dafür, aber normalerweise wurden die DIPs bei Sys7 wohl gar nicht mehr bestückt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb Black Knight:

Es gibt bei Williams noch ein paar Switches außerhalb der Matrix. Meines Wissens nach sind es 9, davon gehören 6 zu Special Solenoids, d.h. die können dir egal sein, da wir die sowieso über HW Rules abfangen. Bleiben 3 übrig, die an die CPU gehen:

Für MPF wäre es cool wenn wir alle switches bekommen würden. Auch die mit rules. Up/Down wäre auch einfacher wenn das ginge. Ansonsten würden wir den dauerhaft pollen denke ich.

 

Klingt alles schon sehr gut!

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 36 Minuten schrieb Black Knight:

Das ist wohl nur wegen der Abwärtskompatibilität noch in Sys7 drin

ja denke ich auch, dass die ein Überbleibsel von Sys4 sind. Wos sitzt dieser Enter-Switch denn?

 

vor 37 Minuten schrieb Black Knight:

Eigentlich sollte der Up/Down nicht so oft abgefragt werden

 

hab grad mal einen testlog eingefügt, pinmame fragt den up/down zusammen mit dem Advance im Millisekundenbereich ab (ist dort auch nur ne Abfrage auf ne interne Variable).

Wenn Du den noch mit zurückgeben könntest, würde mir das die Sache einfacher machen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ach ja, bzgl der Nummerierung: kannst Du den UP/down dann als #70 zurück geben?

Dann würde ich intern die 8*8 Matrix um eine Column erweitern, welche die Schalter 65 .. 72 speichern könnte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, jabdoa said:

Für MPF wäre es cool wenn wir alle switches bekommen würden. Auch die mit rules. Up/Down wäre auch einfacher wenn das ginge. Ansonsten würden wir den dauerhaft pollen denke ich

Ich glaube nicht, dass wir den ständig pollen müssten, da er selbst kein Ereignis auslöst. Das Ereignis wird durch Advance oder den Start-Knopf ausgelöst und dann erst wird gezielt der Status des Up/Down abgefragt, um zu wissen in welche Richtung man durch das Menu laufen will. Für andere Zwecke wird der meines Wissens nicht benutzt. Der PinMame braucht den Status vom Up/Down also erst, wenn vorher der Advance betätigt wurde.

Wenn ihr ihn gerne in der Liste der aktivierten Schalter haben möchtet (Befehl 41), dann kann ich das machen, müsste dazu aber etwas umbauen.

28 minutes ago, bontango said:

Dann würde ich intern die 8*8 Matrix um eine Column erweitern, welche die Schalter 65 .. 72 speichern könnte.

Das macht der APC auch so, allerdings sind die 8 Schalter schon voll. Nach den 64 Schaltern in der Matrix kommen erst die 6 Schalter der Special Solenoids (65-70), dann der Memory Protect (71) und der Advance Knopf (72). Wenn ihr den Up/Down also noch haben wollt, dann müsste der die 73 kriegen oder wir lassen was anderes weg.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der DIAG Switch sitzt bei Williams auf den CPU Board. Der macht normalerweise ne kurze Diagnose der Platine, der Rams und Roms. Bei Sys1 3 bis 6 blinken dann die LEDs entsprechend (beide 2x wenn alles OK ist, sonst bleiben eine der beiden oder beide an). Bei Sys 3 und 4 wird der Schalter auch zum programmieren der Features und Freispiele gebraucht (zusammen mit den Dip Switches). Bei Sys7 erfolgt die Anzeige der Testergebnisse mit einer 7-Segmentanzeige. Sys 9/11 muss jemand andetes was zu sagen.

Der Advance Schalter startet den Selbsttest. Je nachdem wie der up/down steht landet man nach dem drücken des Advance entweder in den Einstellungen in denen man dann mit Advance vorwärts/rückwärts blättern kann (up/down) oder in den Selbsttests (Displays/Lampen/Kontakte/Spulen und Sound). Sound wird bis Sys 7 als Spule angesprochen. Williams hat glaube ich max 6 (ohne Garantie) Select zum Soundboard die damit das Adressmuster zur Soundauswahl generieren. Dann kam da noch ein Impuls auf ner anderen Leitung der dem Soundboard sagt Nu Spiel mal schön....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ihr es hinbekommt auch bei Sys 3 bis Sys 4 Spielen die Programmierung von der Kassentür zu machen (ab Sys 6 z.B Flash Standart), dann könntrcser Sieg Schalter entfallen!. Wenn ich es richtig im Kopf habe geht der im Original auch nicht auf die Switch Matrix sondern direkt an einen PIA oder CPU Eingang!

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Black Knight:

Wenn ihr den Up/Down also noch haben wollt, dann müsste der die 73 kriegen oder wir lassen was anderes weg.

Ne, nur wenn es noch frei gewesen wäre, 73 ist OK, das eine Byte spendier ich noch 😉

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na gut, dann baue ich das noch so ein.

Diese CPUDIAG und so lassen wir dann einfach weg, oder? 

15 hours ago, Volley said:

Wenn ihr es hinbekommt auch bei Sys 3 bis Sys 4 Spielen die Programmierung von der Kassentür zu machen

Die DIPs und ENTER ändern bei Sys3 und 4 vermutlich einfach die Einstellungen im NVRAM. D.h. wir könnten das Einstellungsmenu für mein USB_control 'Spiel' benutzen, um die DIP Einstellungen vorzunehmen und direkt in deine NVRAM Emulation zu speichern. Damit würde man die DIP Einstellungen ebenfalls von der Kassentüre aus machen.

Ich habe den Advance Knopf nämlich jetzt so programmiert, dass nur kurzes drücken <1s eine Switch Meldung am USB erzeugt. Wenn man länger drückt landet man im normalen Settings Menu des APC (sonst käme man aus USB_control ja auch nie wieder raus). Von da kann man dann die Game Settings aufrufen - da hat USB_control also sein eigenes Menu. In diesem Menu könnte man die DIP Settings speichern und verändern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Black Knight:

Na gut, dann baue ich das noch so ein.

Diese CPUDIAG und so lassen wir dann einfach weg, oder?  

Wunderbar, und ja denke CPUDIAG brauchen wir nicht

 

vor einer Stunde schrieb Black Knight:

Ich habe den Advance Knopf nämlich jetzt so programmiert, dass nur kurzes drücken <1s eine Switch Meldung am USB erzeugt.

Guter Hinweis, so mache ich es normalerweise auch bei LISY um ins dortige Testmenu zu kommen 🙄

Könnte man das evtl. so lösen, dass es auch abhänig vom UP/Down ist? Z.B. UP + langes drücken -> APC Testmenu,

Down + langes drücken -> APC reicht das so weiter, und LISY fängt es ab und ruft LISY-Testmenu auf ... ???

Link zu diesem Kommentar
Auf anderen Seiten teilen

6 minutes ago, bontango said:

Down + langes drücken -> APC reicht das so weiter, und LISY fängt es ab und ruft LISY-Testmenu auf ... ???

Kein Problem, das baue ich so ein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Volley

Gibt es bei System3 eigentlich irgendwelche Schalter in der Kassentüre oder benutzen die für alles DIP Schalter?

Ich suche gerade nach einer sinnvollen Tastenkombination, um die Displayeinstellung zu wechseln, ohne dass Menü sehen zu können. Diese alten Nummerndisplays zeigen nämlich wirklich gar nichts an, wenn die Einstellung nicht stimmt und dann kann man auch den richtigen Menüpunkt nicht finden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sys 3 und 4 haben die selben Schalter in der Kassentür. Man kann auch dort die Tests starten. Nur halt nicht die Freipiele usw einstellen. Das geht erst ab Sys 6. Denke das ist dann im Flipper Rom programmiert. Wenn man jemanden kennt der Maschinrngprache kann, kann man die Roms sicherlich such ändern!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was ist mit den Schaltern, die nicht für die Menüs benutzt werden, wie 'High Score Reset' oder 'Memory Protect' (der prüft ob die Kassentüre offen ist)?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hugh Score Reset fällt mit bis Sys 6/7 keiner ein. Für Memory Orotektcauch nicht. Ich schaue aber heute Abend mal in die Pläne. 

Wo sollen die beiden angeschlossen.sein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

In den Plänen finde ich auch nichts, daher gibt's da vermutlich auch nichts. Dann muss ich mir halt irgendwas mit Up/Down und Advance einfallen lassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Spricht was dagegen die Schalter der Münzeinwürfe doppelt zu belegen Verdrahrung dann auf dem.Board oder mit Zwischenstecker) ?

Z.B Münster 1 mehrxalsx3 den = Testknopf und dann den münuer 2 als up Schalter nehmen und den Schalter in der Tür parallel zu münzer 2 verkabeln?

Man müsste dann nur darauf achten das der im Spiel Off ist....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm, da müsste man mal herausfinden, ob die Münzprüfer immer dieselben Schalter in der SW-Matrix belegen. Wenn ja ist das gar keine schlechte Idee. Man müsste da noch nicht einmal was neu verkabeln, sondern einfach nur einen Münzkontakt gedrückt halten, während man z.B. Advance drückt o.ä.

Ich habe es jetzt anders gelöst, indem ich die Displayeinstellung ganz an den Anfang des Settings Menüs geschoben habe. Das wird man hoffentlich auch im Blindflug noch finden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also laut pinmame hat die erste Spalte, wo die Coin-Switches, Tilt, credit, ... liegt, immer die selbe Belegung

Edit: Ich nutze dass in LISY auch für mein 'Freeplay' -> Credit Button länger gedrückt halten gibt Credits ...

@Black Knight

Bin gerade bei den Solenoids, das Signal/Solenoid GAME_ON welches nach dem Spielstart auf ON geht,

( ich nehme mal an das ist ein Relais? ) hat in pinmame die Nummer 25, kann ich Dir das so rüberschicken?

Ansonsten hab ich für den Black Knight diese Nummerierung gefunden, passt das?


/*---------------------
/ Solenoid definitions
/----------------------*/
#define sOuthole     1 // Ball release
#define sLLDropReset 2
#define sLRDropReset 3
#define sULDropReset 4
#define sURDropReset 5
#define sBallRel     6 // Ramp thrower
#define sLockRel     7 // Multiball release
#define sEjectRel    8
#define sRMagnet     9
#define sLMagnet    10
#define sKnocker    11
#define sBell       15 //??
#define sCoinLock   16
#define sLSling     17
#define sRSling     18
#define sBumper     19

 

Bearbeitet von bontango
Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, bontango said:

hat in pinmame die Nummer 25, kann ich Dir das so rüberschicken?

Das wird vermutlich das Flipper-Relais sein. Bei mir sind die beiden Flipper einfach die Spulen 23 und 24. Kannst du das zuordnen oder soll ich das machen?

Die Liste vom Black Knight sieht gut aus, allerdings gibt es bei Sys7 keine Knocker. Laut Manual ist Spule 11 ein Special Relais, was auch immer das tut - ist mir noch nie aufgefallen.

Ich hänge immer noch an den blöden numerischen Displays 🤮 Ich wusste schon, warum ich die Dinger bisher ignoriert habe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

×
×
  • Neu erstellen...

Wichtige Information

Datenschutzerklärung und Registrierungsbedingungen