pinball
construction
kit für bally-35 / bally-17 und stern
english
Inhaltsverzeichniss
Einführung
Was braucht es...
Wie geht es...
Source Statements
So wird getestet
Übersetzen
Tools
faq
Einführung
Das pinball construction kit besteht im wesentlichen aus einem neuen U6 game rom und einigen Routinen damit man einen bestehenden Bally Flipper (1978 - 1983) oder stern Flipper umprogrammieren kann.
Bis auf einen PC und einen Eprombrenner braucht es keine zusätzliche Hardware...
Wenn du eine Bally-35 Mpu näher betrachtest, siehst du zwei oder mehr Game roms. (Hier mit roten und mit blauen Kreis).
Die anderen ICs auf der Platine sind nicht spielespezifisch.
Wenn du die Bally-35 Mpu von einem Flipper in einen anderen wechseln willst, musst du diese Game Roms tauschen.
Pck-bally ersetzt den bestehenden U6 Chip. Mit den Hilfsmitteln hier auf dieser Seite, kannst du für deinen Bally Flipper neue Spielregeln definieren und einen neuen U2 Chip machen. Beide Chip sind entweder 2732 oder 2532 Epromtypen.
Was braucht es...
1) Ein Bally oder Stern Flipper
2) Programmiererfahrung (am besten mit dem Motorola 6800 Chip oder ein anderer 8 Bit Prozessor)
3) Gute Kenntnisse von der Bally Hardware
4) Und ein Haufen guter Ideen für neue Spielregeln...
Flipper
Es braucht ein Flipper mit einer Bally-35 / Bally-17 oder Stern-100 / Stern-200 mpu...
Programmiererfahrung
Das pck-bally basiert auf dem 6800 assembler und einen Haufen Makros. Das heisst, es wird reiner Assemblercode geschrieben und einige vordefinierte Makros verwendet.
Hier die wichtigsten Dokumente (alles nur englisch...):
Programming the 6800
Datasheet for the 6800 (u9)
Datasheet for the 6821 (u10 and u11)
Ohne ausreichenende Programmiererfahrung (> 2 Jahre) und Kenntnisse von Hexzahlen wird es arg mühsam...
Hier ist der super 6800 Assembler (version 1.31) von Frank A. Vorstenbosch.
Natürlich als erstes das Manual lesen (besonders den Teil über die Makros)...
Bally hardware
Bally hat freundlicherweise eine super Abhandlung geschrieben
Hier wird im Detail beschrieben wie die Bally-35 Mpu funktioniert:
Bally Theory of Operation
Neue Spielregeln
Das ist schwieriger als man denkt. Am besten mal im Detail die bestehenden Regeln aufschreiben und überlegen was man anderes / besser machen kann...
Wie geht es...
Um ein neues U2 Game Rom zu machen gehst du wie folgt vor:
a) Erzeuge oder modifiziere eine Game Source mit einem Texteditor (notepad reicht...). Du kannst dich auf die spielespezifischen Sachen beschränken. Alle generellen Sachen, wie Punktzählen, Spulen ansteueren, Lampen, Anzeigen, Schalter prüfen, Selbsttest und die Verwaltung von bis zu vier Spielern wird durch das pck-bally gemacht.
Syntax:
Erst einmal alles kommentieren in der Source. Verwende separate Zeilen die mit ";" beginnen.
Wenn du Makros anwendest, füge auf der rechten Seite keine Leerzeichen oder Bemerkungen ein. Sonst kommt der Assembler unter Umständen etwas ins Schleudern...
b) Als nächster Schritt wird die Source mit dem 6800 assembler übersetzt. Dafür hat es eine . bat Datei. (asspck < Dateiname > )
c) Zum Testen hat sich die debug Version von pinmame bewährt (im folgenden Text nur pindebug genannt...).
d) Wenn dieser Test okay is, brenn das neue u2 game rom auf ein Eprom und teste das Ganze im Flipper...
(Achtung: Wenn du Schrott programmierst hast, kannst du unter Umständen eine oder mehrere Spulen verbrennen, ich bin nicht verantwortlich für irgendwelche Schäden...)
Source Statements
Spulen
Zuerst müssen die Spulen definiert werden.
Maximal können 30 momentan Spulen definiert werden. 15 Spulen werden direkt angesprochen, die anderen 15 Spulen über ein Solenoid Expander Board. Ebenso können 4 permanente Spulen definiert werden.
Momentan Spulen
Die meistvewendete Spule im Flipper ist die momentan Spule. Diese Spule wird für eine bestimmte Zeit aktiviert vom Game rom.
Schnell-Spulen
Einige Spulen (Schlagtürme und Slingshots) reagieren sehr schnell während dem Spiel. Williams hat das Problem mit zusätzliche Hardware gelöst. (Da hat es zwei Schalter für eine Spule...)
Bally hat dieses Problem mit der Software gelöst: Jeder Schnell-Spule ist direkt ein Schalter zugeordnet. Wenn dieser Schalter als geschlossen erkannt wird, wird die Spulenaktivierung direkt vom pck-bally rom ausgelöst.
Permanet Spulen
Maximal können 4 permaneten Spulen angesteuert werden. Zwei sind aber immer in Gebrauch:
Das Flipper Enable K1 Relais auf dem Spulenboard und die Münzsperrspule. Diese zwei Spulen werden auch durch das pck angesteuert. Zwei zusätzliche permanente Spulen können noch angesteuert werden. Damit lassen sich zum Beispiel Ballgates ansteuern.
Beispiel
; Assembler statements
;
; coil definition for mata hari
;
; all solenoids must be defined once with a soldef
; first param (nr) is addr from U2 74ls154 on solenoid board, drives Q...
; if (nr) > 14 then solenoid expander is used...
; second param (type) defines coil usage
; (type) = 100 norm (rest)
; (type) = 101 perm (coin lockout=1,flipperenable=4)
; (type) = (swnr) Quick (bumper)
; K1 relais
soldef 4,101
; coin lockout
soldef 1,101
; saucer Q2
soldef 0,100
; chime 10 Q1
soldef 1,100
; chime 100 Q5
soldef 2,100
; chime 1000 q6
soldef 3,100
; extra chime q7
soldef 4,100
; knocker q3
soldef 5,100
; outhole q4
soldef 6,100
; left botton bumper q8
soldef 7,38
; left top bumper q13
soldef 8,40
; right top bumper q14
soldef 9,39
; right bottom bumper q9
soldef 10,37
; left sling q10
soldef 11,36
; left drop target reset q12
soldef 12,100
; right sling q11
soldef 13,35
; right drop target reset q16
soldef 14,100
;
Aktivieren einer momentanen Spule:
; all targets down, reset both targets bank
solon 12,10
solon 14,10
Der solon Makro akiviert die Spule (erster Parameter) für eine bestimmte Zeit (zweiter Parameter).
Nach dieser Zeit wird die Spule deaktiviert.
Hier einige Zeiten die für bestimmte Spulentypen verwendet werden sollten:
; knocker -> 0c
; kickout ball (outhole) -> 0a
; saucer -> 0c
; targetbank reset -> 10
; chimes -> 00
Aktivierung einer Schnell-Spule:
Schnell-Spulen müssen nicht speziell mit einem solon Makro aktiviert werden, diese Spulen werden automatisch durch pck angesteuert.
Aktivierung einer permanenten Spule:
Zum Aktivieren:
; k1 solenoid board
sonk1
; coin lockout
sonco
; permanet coil 2
sonp2
; permanet coil 3
sonp3
Diese Spulen bleiben an, bis dass diese wieder ausgeschaltet werden.
Zum Ausschalten:
soffk1
soffco
soffp2
soffp3
Schalter
Alle Schalter im Flipper müssen definiert werden. Im Maximum werden 48 Schalter unterstützt.
Hinter jedem Schalter wird ein Einsprungspunkt in dem Programm definiert. Dieser Punkt wird angesprungen wenn der dazugehöriger Schalter geschlossen ist. Eine permanet geschlossener Schalter wird nur einmal erkannt.
Beispiel:
; Here you define the 16 first switches (mata hari)
; credit button
swdef 06,swcredit
; tilt
swdef 07,swtilt
; outhole switch
swdef 08,swouthole
; coin 2
swdef 09,swcoin
; coin 3
swdef 10,swcoin
; coin 1
swdef 11,swcoin
; slamtilt
swdef 16,swlam
Wenn der Kreditknopf gedrückt ist, wird die Routine "swcredit" aufgerufen.
Diese Routine muss mit rts (return from subroutine) verlassen werden. Mit dem Registaer A können gewissen Funktionen vom pck gesteuert werden..
; return code
;
; if reg A = 0, everything okay
; if reg A = 1, ball drained,
; if no score, serve nextball for this player
; else if extraball (macro givex) was lit,
; serve next ball (jsr xball) for this player
; else next player (stopplayer , player + 1,
; startplayer)
; if reg A = 2 ball locked serve next ball
; for multiball (jsr xball)
; if reg A = 4 add one player if possibile
; if reg A = 5 tilt this ball
; if reg a = 6 slamtilt entire pinball
; if reg a = 7 add credits number of credits in reg b
; if b = 0 give one freegame with knocker
Hier sind die Assembler Routinen für die definierten Schalter:
swouthole: ; ball in outhole, finish
ldaa #$01
rts
swcredit: ; add one player
ldaa #$04
rts
swcoin: ; always two credits with one coin
jsr sound3
ldab #$02
ldaa #$07
rts
swtilt: ; pinball is tilted
; trigger upper saucer (maybe the ball is there...)
solon 00,0A
ldaa #$05
rts
swlam: ; slamtilt
ldaa #$06
rts
Schalter können aber auch expilziet abgefragt werden.
Zum prüfen, ob der Schalter 12 geschlossen ist, folgendes Coding verwenden:
csw 12,open12
close12:
Wenn ein Schalter permanent geschlossen ist, wird die dazugehörige Routine nur einmal aufgerufen. Wenn der Makro rsw verwendet wird, dann wird der dazugehörige Schalter zurückgesetzt. Wenn dann der Schalter immer noch geschlossen ist, wird die dazugehörige Routine erneut aufgerufen.
rsw 12
Lampen
Lampen müssen nicht expizit definiert werden, die Lampen werden direkt auf einen spezifischen Speicherbereich eingeblendet.
Das erste Lampenbord wird auf folgenden Speicherbereich gemappt:
$200 - $20E
Das Hilfslampenboard (oder das zweite Lampenboard) ist auf diesen Speicherbereich gemappt:
$20F - $21D
Vier Lampen können direkt auf einmal mit einem Zugriff auf eine Speicherstelle (z.B. Variable X0200) manipuliert werden.
Wenn das Bit der korrespondierenden Lampe auf 1 ist, ist die Lampe aus. Wenn das Bit auf 0 ist, ist die Lampe an.
Hier ist das Lampenschema von Mata Hari:
; mata hari lamp schemas Connector
; $0200 8765FFFF
; 8 -> bonus 4k q57 J3 1
; 7 -> bonus 3k q36 j3 26
; 6 -> bonus 2k q29 j1 1
; 5 -> bonus 1k q14 j1 18
; $0201 8765FFFF
; 8 -> bonus 8k q50 j3 12
; 7 -> bonus 7k q38 j3 25
; 6 -> bonus 6k q27 j1 9
; 5 -> bonus 5k q12 j1 19
; $0202 8765FFFF
; 8 -> drop target spec q51 j3 15
; 7 -> bonus 20k q44 j3 19
; 6 -> bonus 10k q28 j1 8
; 5 -> bonus 9k q13 j1 17
; $0203 8765FFFF
; 8 -> a target (2) q54 j3 11
; 7 -> b target (2) q49 j3 17
; 6 -> n/u q35 j1 3
; 5 -> n/u q8 j1 23
; $0204 8765FFFF
; 8 -> n/u q55 j3 9
; 7 -> n/u q48 j3 16
; 6 -> n/u q34 j1 2
; 5 -> n/u q9 j1 14
; $0205 8765FFFF
; 8 -> ab value 4k q16 j3 3
; 7 -> ab value 3k q37 j3 23
; 6 -> ab value 2k q22 j1 10
; 5 -> ab value 1k q10 j1 15
; $0206 8765FFFF
; 8 -> n/u q59 j3 4
; 7 -> ab value spec q32 j3 27
; 6 -> ab value extra q26 j1 7
; 5 -> ab value 5k q11 j1 16
; $0207 8765FFFF
; 8 -> lt outlane 50k q58 j3 2
; 7 -> rt outlane 50k q20 j1 13
; 6 -> n/u q25 j1 6
; 5 -> n/u q4 j1 28
; $0208 8765FFFF
; 8 -> lt bottom bumpe q56 j3 10
; 7 -> rt bottom bumpe q42 j3 21
; 6 -> n/u q24 j1 5
; 5 -> n/u q1 j1 24
; $0209 8765FFFF
; 8 -> 2 x potential q46 j3 18
; 7 -> 3 x potential q41 j3 20
; 6 -> 5 x potential q17 j1 11
; 5 -> n/u q2 j1 25
; $020A 8765FFFF
; 8 -> credit indicator j3 13
; 7 -> S.P. SHOOT AGAIN j3 22
; 6 -> MATCH j2 8 / j1 4
; 5 -> SHOOT AGAIN j1 26 / j2 21
; $020B 8765FFFF
; 8 -> 2 x multi q30 j3 14
; 7 -> 3 x multi q39 j3 24
; 6 -> 5 x multi q21 j1 12 / j2 12
; 5 -> n/u q7 j1 27 / j2 13
; $020C 8765FFFF
; 8 -> Tilt j2 10
; 7 -> Game over j2 11
; 6 -> High score to date j2 23
; 5 -> Ball in play j2 22
; $020D 8765FFFF
; 8 -> n player 4 q43 j2 7
; 7 -> n player 3 q30 j2 6
; 6 -> n player 2 q18 j2 20
; 5 -> n player 1 q5 j2 16
; $020E 8765FFFF
; 8 -> player up 4 q45 j2 1
; 7 -> player up 3 q31 j2 2
; 6 -> player up 2 q19 j2 15
; 5 -> player up 1 q6 j2 14
Pck steuert direkt die Lampen von den Adressen $20A und $20C an.
Um eine einzelne Lampe anzusteuern (zum Beispiel den 3x multi) verwende folgenden Makro:
lampon 4B
Die zweite Hälfte vom Byte spezifiziert die Adresse (beginnend bei der Adresse 200), hier 20b. Das erste Halbbyte spezifiziert die Bitposition (Überprüfe die obige Tabelle um die Lampe zu finden , Bitposition 4 ist die Lampe Nummer 7)
Um die gleiche Lampe auszuschalten, verwende:
lampoff 4B
Um zu prüfen ob diese Lampe an ist (3x multi) verwende:
laonq 4B,score3x
score1x:
...
Wenn diese Lampe an ist, geht die Verarbeitung bei score3x weiter, andernfalls bei score1x.
Um zu prüfen ob dieses Lampe aus ist:
laoffq 4B,sc2off
sc1off:
sc2off:
...
Wenn diese Lampe aus ist, geht die Verarbeitung beim Punkt sc2off weiter, andernfalls bei sc1off.
Für das zweite Lampenbord gibt es ähnliche Makros:
lamponx
lampofx
laonqx
laoffqx
Der einzige Unterschied zu den anderen Makros ist, dass die erste verwendete Adresse $20f ist.
Anzeigen
Es muss nur definiert werden, ob 6 oder 7 stelligen Anzeigen verwendet werden. Der Rest wird durch das pck gehändelt.
Dip Schalter
Alle Dip Schalter können mit den folgenden Makros in das Register A gelesen werden.
dip18
dip916
dip1724
dip2532
Zum Abfragen vom Schalter 24 kann folgendes Coding verwendet werden.
dip1724
bita #$80
bne closed24
open24:
Punktezählen...
Es hat einige Makros zum Punktezählen:
; add 10 to the score
as100 0010
; add 10'000 to the score
as10t 0001
; add 1'000'000 to the score (pending)
as1mp 01
; add 100'000 to the score (pending)
as100tp 01
; add 5'000 to score (pending)
as1tp 05
; add 500 to score (pending)
as100p 05
; add 20 to score (pending)
as10p 02
Pck verwaltet den Punktestand pro Spieler und überprüft auch die drei Freispiellevels und ebenso den High-Score.
Wait
Falls es nötig ist, bei der Ausführung vom Coding zu warten (z.B. eine Pause beim Bonus Countdown) dann kann man den Makro wait verwenden macro wait
wait 10
Überprüfen Game Status
Zum feststellen ob das Spiel getilt ist, oder die Game Over Lampe leuchtet kann der Marko gaoff verwendet werden.
gaoff gtilt
gameon:
Wenn die game over oder Tilt Lampe an ist, wird die Verarbeitung beim Punkt gtilt fortgesetzt, andernfalls beim Punkt gameon. Dieser Makro kann verwendet werden um den Bonus Countdown nach einem Tilt nicht durchzuführen.
Wenn nur überprüft werden soll, ob die game over Lampe an ist, kann der Marko gaatt verwendet werden.
gaatt attra
gameon:
Auch hier: Wenn die Lampe game over an ist, Verarbeitung bei attra fortsetzten, andernfalls bei gameon. Diese Makro kann verwendet werden, um spezielle Animationen im Attract-Modus zu programmieren..
Extra ball geben
Um während dem Spiel einen Extra Ball zu geben kann der Makro givex verwendet werden.
giveex
Special (Freispiel) geben
Um während dem Spiel ein Freispiel zu gebne, kann der Makro givesp verwendet werden.
givesp
Versionsnummer
Auf jeden Fall eine eindeutige Versionnummer verwenden.
Callback Routinen
Für spezielle Ereignisse (z.B. ein Spielstart) wird eine spezifische Routine aufgerufen.
In dieser Routine kann dann spielspezifisches Coding hinzugefügt werden.
Mit dem Return Code können in Pck spezielle Verarbeitungen ausgelösst werde (z.B. ein Freispiel geben, oder einen Spieler hinzufügen...)
Die folgenden Einsprungspunkte werden unterstützt:
startpin Nach dem Power on vom Flipper
startgame Wenn ein Spiel gestartet wird
endgame Wenn ein Spiel beendet wird, doer gecancelt oder anch Power on.
addplayer Wenn ein Spieler mit dem Creditknopf hinzugefügt wird.
startplayer Wenn ein Ball für einen Spieler ausgeworfen werden soll
stopplayer Wenn ein Ball für einen Spieler im Outhole istr
xball Wenn ein Ball zum Spieler ausgeworfen werden soll (auch Extra oder Multiball)
firstcount Wenn die ersten Punkte für einen Spieler gezählt wurden
zerocross Wenn die zero cross Routine aktiviert ist nach dem generellen Timer update und bevor das Lampenbord upgedatet wird
afterla Wenn die zero cross Routine aktiviert ist nach dem generellen Timer update und nachdem das Lampenbord upgedatet wurde
afterqu Wenn die zero cross Routine aktiviert ist nach dem generellen Timer update und bevor das Lampenbord upgedatet wird und nach der Schnell Spulen Routine
afterdisp Wenn das Display interrupt activiert wurde für eine Stelle (kann für ein sechstes Display verwendet werden...)
befscor bevor der Punktestand erhöht wird
addpends während eine pendenter Punktestand erhöht wird (1 Stelle )
addscor Nach der Überprüfung auf Freispiel
afersco Nach dem Punktestand erhöht wurde, hier kann der attract modus progammiert werden
knock Wenn der Knocker aktiviert werden soll (bei einem Freispiel)
digitup Update von einer Stelle während dem Punktezählen...
makeso Aktivieren vom Sound
killso kill running sound
attract wird nur aktiviert wenn der Flipper im attract Modus ist...
Variablen
Basierend auf der limitierten Hardware (dem 6810 ram) können maximal 19 zusätzliche 8 bit Variablen (Wertebereich von 0 bis 255, oder hex 00 bis ff)
Während dem attract Modus können weitere vier zusätzliche 8 bit Variablen verwendet werden....
Zusätzlich können 114 weitere 4 bit Variablen definiert werden. (im 5101 ram). Jede Variable kann nur 16 verschiedene Werte annehmen. (hex 0F,1F,2F,3F,4F,5F,6F,7F,8F,9F,aF,bF,cF,dF,EF,FF)
Achtung: Die Variablen müssen an der vorgegeben Stelle in dem Sourcefile definiet werden...
Soundboards S&T
Mit Version 9 (r 2) wird das S&T Soundboard (aus eight ball deluxe, vector und anderen Flipper) pinballs is supported.
Folgende Punkte müssen in der Source eingefügt sein.
1) Füge das Include pckst.inc in deiner Source ein (Das File exstt.asm beinhaltet ein Beispiel)
2) Füge die Variable
swsound db $00
in der 4 bit Area ein.
3) Benutze den marco ystone einmal.
;
; s&T soundboard once
;
ystone
4) Füge einen zusätzlichen jsr in dem afterqu Event ein (Suche nach zcross3 im Beispiel File)
Diesen Aufruf braucht es, weil bei jedem Soundkommando kann eine Zeit mitgegeben werden, in der kein weitere Sound abgespielt werden kann.
;
; s&T soundboard in the fast react soleonid routine
;
jsr ysnddi ; decrease delay timer of sound board
;
;
;
clra
rts
4) Jedesmall, wenn du einen Sound triggeren willst, verwende den marco yst.
;
yst 50,10
;
; first parameter is the value from the s&t board for the specfic sample or the sound
; be aware that sometimes the s&t boards replaces the phrases
; for example SINK THE is sometimes replaced with GO FOR
; Here are some examples from the eigt ball delxue...
; 0f -> whops to much english...
; 50 -> go for deluxe
; 51 -> eight ball deluxe two ball
; 52 -> eight ball deluxe three ball
;
; second parameter is the delay after the cmd (no other sound played during this time, this value is decreased in a specific event...)
;
Soundboards 32/50
Mit Version 10 (r 2) wird das Soundboard -32 / 50 board (verwendet in Harlem, Paragon, Star Trek und anderen) unterstützt.
Folgende Punkte müssen in der Source eingefügt sein.
1) Füge das Include pckst32.inc in deiner Source ein (Das File exst32.asm beinhaltet ein Beispiel)
2) Benutze den marco ystone einmal.
;
; soundcard 32 / -50 soundboard once
;
ystone
3) Füge einen zusätzlichen jsr in dem afterqu Event ein (Suche nach zcross3 im Beispiel File)
Dieser jsr ist notwendig, weil du eine ganze Tabelle an Soundcommands definieren kannst.
Mit diesem Aufruf wird ein weiterer Sound abgespielt...
;
; soundboard in the fast react soleonid routine
;
jsr ysnddi ; send next sound to sound board (out of soundcmd x) in async mode
;
clra
rts
4) Wenn du ein Soundcmd abspielen willst verwende marco yst32.
; Load register x with the adress of a soundcmd
ldx # SOUN5
yst32
;
; structure of soundcmd
; $nn $mm $oo $pp
; store first byte in x0030
; if x0030 = 1XXX XXXX sound is played sync, XXX XXX holds wait time between sound
; if x0030 = 0XXX XXXX sound is played in async, XXX XXX holds wait time between sound (decreased by zero cross ysnddi )
; loop
; increase x until contest of xx eq FF -> Sound cmd finished; break
; increase x until contest of xx eq 00 -> refill X0030, go to loop
; otherwise play sound (5 bits relevant)
; if sound should be in sync go to loop until end
; if sound should be in assync copy x0030 -> X0034 and save X in X0032 / X0033, then routine is called again by zero cross if X0034 reaches zero
; example of soundcmd
SOUN5: ; Sound Data Game over guess which pinball
db $04, $05, $86, $05
db $86, $05, $86, $05
db $86, $05, $86, $05
db $86, $06, $87, $07
db $88, $08, $89, $0A
db $8A, $0B, $8B, $0C
db $8C, $0D, $8D, $0E
db $1F, $0C, $89, $2F
db $88, $89, $86, $87
db $2F, $86, $87, $81
db $84, $82, $00, $01
db $11, $1F, $11, $1F
db $11, $1F, $12, $1F
db $11, $00, $08, $0F
db $00, $01, $11, $1F
db $11, $1F, $11, $1F
db $12, $1F, $11, $1F
db $FF
Übersetzen
Es hat die Batch Datei asspck.bat.
Damit kann die Sourcedatei übersetzt werden. Dannach wird automatisch das Game spezifische U2 rom erzeugt und die nötige Prüfsumme wird berechnet und im Game rom gespeichert.
asspck < filename >
Testen
Mit pindebug kann das Game rom getestet.
Zuerst muss das Game rom und pck-Bally in ein zip Archiv kopiert werden.
So kann getestet werden...
pindebug gamename -d
Als Beispiel mal die Datei matatest.zip in das pinmame rom Verzeichniss kopieren. Dann
pindebug matatest -d
ausführen...
Im Assemblerlsiting können Haltepunkte identifiziert werden...
Relevante Kommandos im Debugger:
bp -> setzte Haltepunkt bei einer spezifischen Adresse..
wp -> Wenn die definierte Speicherstelle den Wert ändert, wird die Auführung unterbrochen...
tr -> Die Traceinformation wird in eine Datei geschrieben...
Tools
Entpacke diese Datei in ein separates Verzeichnis pck version 10 R 2
pck version 10 old version
pck version 7 old version
pck version 9 R 2 old version
Dort hat es die folgenden Dateien:
AS02.EXE -> 6800 assembler
AS02.MAN -> 6800 manual
asspck.bat -> use asspck < filename >
calcbal.exe -> calculate checksum for u2 rom
copypck.bat -> create u2 rom
examp.asm -> example source
exstt.asm -> example source for soundcard s&t board (eight ball deluxe, with version 9)
exst32.asm -> example source for soundcard 32/50 board (harkem,paragon, star trek, with version 10 r2)
fsp.exe -> file splitter
info.txt -> info
infomata.txt -> infomata hari
infoexstt.txt -> infomata for the soundcard s&t board
matatest.zip -> custom game roms for mata hari (version 7)
matat0.asm -> source for mata hari
matat0N.U2 -> u2 rom for mata hari
pck1.inc -> include definition for macros
pckst.inc -> include definition for macros and the soundcard s&t board (with version 9)
pckst32.inc -> include definition for macros and the soundcard 32/50 board (with version 10 R2)
ptestN.U6 -> u6 rom (pck version 9) <- nicht länger benutzt (ab Version 10)
pck10N.U6 -> u6 rom (pck version 9)
pindebug -> pinmame linked with -debug option, copy this file in your pinmame directory
Frequently Asked Questions
Naja, der einzige Grund warum ich es gemacht habe: Ich möchte einen Early Bally Flipper vom Grund auf bauen...
mail me your feedback please