Unable to open S11.VBS error message

Bill Poje

Poj
Joined
Aug 26, 2013
Messages
23
Reaction score
2
Points
4
Favorite Pinball Machine
Attack From Mars
Hello Everyone!

Yep...I am the guy who had the video card issue 6 months ago. I never pursued the issue beyond the point of last thread because I have been busy and I suspected a new PC purchase was in the offing. I was right....a new PC has been acquired.

I got a Dell Inspiron with Windows 8 and 16 GB of RAM with a 4th Generation Intel i5-4460 processor (6m cache, up to 3.4 ghz). For me this works.

So...I came to the site and ran the Phoenix install. Then I went to get a Table...always a tough choice of what game to try. "TAXI! TAXI! Comrade TAXI! Give Gorby a ride!"

I downloaded the zipped table file to my desktop and then copied the zip file into Program Files (x86)\Pinball\Tables. I then extracted the zip file and placed the unzipped file into the same Tables subdirectory. During this process I got the "Need to allow Administrator" privileges notice.

I then went and got the Taxi ROM files and placed them into the ROM subdirectory. I left the files zipped.

So...I then click on the Taxi (Taxi_JP_5.0) icon to activate the program. I get the error message above of "Unable to open S11.vbs. Ensure that it is in the same folder as this table. Variable undefined."

I look in the Tables subdirectory and I see that the S11 file is located in the same subdirectory as the Taxi file.

Clicking in the error brings up the next message: "Can't Load VPinMAME. Variable undefined."

Next message: "VPinMAME over 01530000 required."

Next message: "S11.VBS ver 3.1 or higher required."

Next message = Script Error = "Line 182 Variable is undefined: 'SolCallback is undefined."
=========================
So...any suggestions? :p
 
More information on Error Message

The first step was to check my brothers PC to see if the setup on his machine is the same. I don't know the tech specs on his PC other than to say that his machine is an HP running Windows 7 that was purchased in the last year. His work bought him the PC so that is why I don't know the specs. However, I was the one who successfully ran the Phoenix install program on his PC.

I confirmed that we have the same Taxi file in the Tables subdirectory. The unzipped file is Taxi_JP_5.0 at 4,304 KB.

I confirmed that we both have a file named S11 that is a VBScript Script File at 5KB.

I confirmed that we both have zipped ROMS taxi_l3 (68KB), taxi_l4 (176kb), taxi_lg1 (79KB) & Williams 1988_Taxi_GameRom_L3_Marilyn (180 kb) in the ROM subdirectory.

I confirmed I could play Taxi on his machine. I got both the Passenger jackpot and also the double ramp 1 Million jackpot (OOOH...Million!) and scored a game just over 4.5 Million to outdo the default high score for first time playing the game on a new PC.
===================================
I retried Taxi on my machine by first going to the Pinball subdirectory and double clicking the VPinball application file (1,560 KB) (same place the program file resides on my brothers PC). The application file brings up the base dialogue box.

I then goto the File\Open menu and see the Table in the Tables subdirectory. I double click on the table and the base prototype table layout shows in the background.

I then click on the Play Icon and I get the same error messages already defined in the first post. I also get an error text box that I have copied and pasted below
==========================

' Taxi 5.0 by JPSalas
' August - 2007

Option Explicit
Randomize

LoadVPM "01530000", "S11.VBS", 3.10

Sub LoadVPM(VPMver, VBSfile, VBSver)
On Error Resume Next
If ScriptEngineMajorVersion<5 Then MsgBox "VB Script Engine 5.0 or higher required"
ExecuteGlobal GetTextFile(VBSfile)
If Err Then MsgBox "Unable to open " & VBSfile & ". Ensure that it is in the same folder as this table. " & vbNewLine & Err.Description
Set Controller=CreateObject("VPinMAME.Controller")
If Err Then MsgBox "Can't Load VPinMAME." & vbNewLine & Err.Description
If VPMver>"" Then If Controller.Version<VPMVER ? required.?
If VPinMAMEDriverVer<VBSVER ? required.?
On Error Goto 0
End Sub

Const cGameName="taxi_l4" ' Lola roms
'Const cGameName = "taxi_l3" ' Marilyn rom

Const UseSolenoids=1
Const UseLamps=0
Const UseGI=0
Const UseSync=0
Const HandleMech=0

' Standard Sounds
Const SSolenoidOn="Solenoid"
Const SSolenoidOff=""
Const SFlipperOn="FlipperUp"
Const SFlipperOff="FlipperDown"
Const SCoin="Coin"

dim bsTrough, bsLock, bsJoyRide, b3, bsSpinout, dtR, dtC
dim Msg(25), x, mSpin, Velocity, plungerIM, bumper1, bumper2

' Keyboard handling

Sub Taxi_KeyDown(ByVal keycode)
If vpmKeyDown(keycode) Then Exit Sub
If keycode=PlungerKey Then PlungerIM.Pullback : Pcount=0 : PTime.Enabled=1
If keycode=KeyRules Then Rules
End Sub

Sub Taxi_KeyUp(ByVal keycode)
If vpmKeyUp(keycode) Then Exit Sub
If keycode=PlungerKey Then PlungerIM.Fire : ResetPlunger
End Sub

' Init table

Sub Taxi_Init()
With Controller
.GameName=cGameName
If Err Then MsgBox "Can't start Game: " & cGameName & vbNewLine & Err.Description : Exit Sub
.SplashInfoLine="Taxi (Williams 1988)" & vbNewLine & "VPM table by JPSalas v5.0"
.HandleMechanics=0
.ShowDMDOnly=1
.ShowFrame=0
.ShowTitle=0
.DIP(0)=&H00
.Hidden=1
.SetDisplayPosition 1600, 1600, GetPlayerHWnd
On Error Resume Next
.Run GetPlayerHWnd
If Err Then MsgBox Err.Description
On Error Goto 0
End With

On Error Goto 0

' Nudging
vpmNudge.TiltSwitch=swTilt
vpmNudge.Sensitivity=5
vpmNudge.TiltObj=Array(LBumper, RBumper, LowerBumper, LeftSlingshot, RightSlingshot)

' Trough handler
Set bsTrough=New cvpmBallStack
bsTrough.InitSw 10, 11, 12, 0, 0, 0, 0, 0
bsTrough.InitKick BallRelease, 60, 6
bsTrough.Balls=2
bsTrough.InitEntrySnd "Solenoid", "Solenoid"
bsTrough.InitExitSnd "BallRel", "Solenoid"

Set bsLock=New cvpmBallStack
bsLock.InitSaucer RightLock, 36, 180, 10
bsLock.InitExitSnd "Solenoid", "Solenoid"

Set bsJoyRide=New cvpmBallStack
bsJoyRide.InitSaucer JoyrideEject, 13, 220, 11
bsJoyRide.InitExitSnd "Solenoid", "Solenoid"

Set b3=New cvpmBallStack
b3.InitSw 0, 35, 0, 0, 0, 0, 0, 0
b3.InitKick Catapult, 0, 70
b3.KickZ=20
b3.InitExitSnd "Solenoid", "Solenoid"

Set bsSpinout=New cvpmBallStack
bsSpinout.InitSw 0, 43, 0, 0, 0, 0, 0, 0
bsSpinout.InitKick SpinoutKicker, 330, 15
bsSpinout.KickAngleVar=2
bsSpinout.KickForceVar=3
bsSpinout.InitExitSnd "Solenoid", "Solenoid"

Set dtR=New cvpmDropTarget
dtR.InitDrop Array(PinbotT, PinbotM, PinbotB), Array(30, 31, 32)
dtR.InitSnd "droptarget", "resetdrop"
dtR.CreateEvents "dtR"

Set dtC=New cvpmDropTarget
dtC.InitDrop Array(LolaL, LolaM, LolaR), Array(27, 28, 29)
dtC.InitSnd "droptarget", "resetdrop"
dtC.CreateEvents "dtC"

' Impulse Plunger
Const IMPowerSetting=60 ' Plunger Power
Const IMTime=0.7 ' Time in seconds for Full Plunge
Set plungerIM=New cvpmImpulseP
With plungerIM
.InitImpulseP ShooterLane, IMPowerSetting, IMTime
.Random 0.3
.InitExitSnd "plunger2", "plunger"
.CreateEvents "plungerIM"
End With

' SpinoutPull
Set mSpin=New cvpmMagnet
With mSpin
.InitMagnet SpinoutPull, 6 ' Pull Strength
.GrabCenter=0
.MagnetOn=1
.CreateEvents "mSpin"
End With

' Init dropwalls
CarryPassenger2.IsDropped=1
Ring1a.IsDropped=1 : Ring1b.IsDropped=1 : Ring1c.IsDropped=1
Ring2a.IsDropped=1 : Ring2b.IsDropped=1 : Ring2c.IsDropped=1
f1.IsDropped=1 : f2.IsDropped=1 : f3.IsDropped=1 : f4.IsDropped=1
f5.IsDropped=1 : f6.IsDropped=1 : f7.IsDropped=1
f15.IsDropped=1 : f16.IsDropped=1
ResetPlunger

' Main Timer init
PinMAMETimer.Interval=PinMAMEInterval
PinMAMETimer.Enabled=1
End Sub

Sub taxi_Paused : Controller.Pause=1 : End Sub
Sub taxi_unPaused : Controller.Pause=0 : End Sub

'********
'Plunger
'********

dim PCount : Pcount=0
dim Plungers : Plungers=Array(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)

Sub PTime_Timer()
If Pcount<12 Then
Plungers(Pcount).Isdropped=1
Pcount=Pcount+1
Plungers(Pcount).Isdropped=0
Else
PTime.Enabled=0
End If
End Sub

Sub ResetPlunger()
PTime.Enabled=0
For x=1 to 12 : Plungers(x).Isdropped=1 : Next
Plungers(0).Isdropped=0
End Sub

'**********
' Solenoids
'**********

SolCallback(1)="bsTrough.SolIn"
SolCallback(2)="bsTrough.SolOut"
SolCallback(7)="bsSpinOut.SolOut"
SolCallback(8)="bsLock.SolOut"
SolCallback(9)="vpmSolWall Cheatwall, 0, " ' 0 = no sound
SolCallback(3)="b3.SolOut"
SolCallback(5)="bsJoyRide.SolOut"
SolCallback(23)="vpmNudge.SolGameOn"
SolCallback(6)="dtR.SolDropUp"
SolCallback(4)="dtC.SolDropUp"
SolCallback(14)="vpmSolSound ""knocker"","
SolCallback(13)="vpmSolSound ""bellring"","

SolCallback(sLRFlipper)="vpmSolFlipper RightFlipper,Nothing,"
SolCallback(sLLFlipper)="vpmSolFlipper LeftFlipper,Nothing,"

SolCallback(25)="SolFlasher01"
SolCallback(26)="SolFlasher02"
SolCallback(27)="SolFlasher03"
SolCallback(28)="SolFlasher04"
SolCallback(29)="SolFlasher05"
SolCallback(30)="SolFlasher06"
SolCallback(31)="SolFlasher07"
SolCallback(32)="SolFlasher08"
SolCallback(15)="SolFlasher15"
SolCallback(16)="SolFlasher16"

Sub SolFlasher01(enabled)
If Enabled Then
f1.IsDropped=0
else
f1.IsDropped=1
end if
end Sub

Sub SolFlasher02(enabled)
If Enabled Then
f2.IsDropped=0
else
f2.IsDropped=1
end if
end Sub

Sub SolFlasher03(enabled)
If Enabled Then
f3.IsDropped=0
else
f3.IsDropped=1
end if
end Sub

Sub SolFlasher04(enabled)
If Enabled Then
f4.IsDropped=0
else
f4.IsDropped=1
end if
end Sub

Sub SolFlasher05(enabled)
If Enabled Then
f5.IsDropped=0
else
f5.IsDropped=1
end if
end Sub

Sub SolFlasher06(enabled)
If Enabled Then
f6.IsDropped=0
else
f6.IsDropped=1
end if
end Sub

Sub SolFlasher07(enabled)
If Enabled Then
f7.IsDropped=0
else
f7.IsDropped=1
end if
end Sub

Sub SolFlasher08(enabled)
If Enabled Then
f8.state=1
else
f8.state=0
end if
End Sub

Sub SolFlasher15(enabled)
If Enabled Then
f15.IsDropped=0
else
f15.IsDropped=1
end if
end Sub

Sub SolFlasher16(enabled)
If Enabled Then
f16.IsDropped=0
else
f16.IsDropped=1
end if
end Sub

Sub Outhole_Hit() : Playsound "Drain" : bsTrough.AddBall Me : End Sub

Sub RightLock_Hit() : bsLock.AddBall Me : End Sub

Sub Catapult_Hit() : b3.AddBall Me : End Sub

Sub JoyrideEject_Hit() : bsJoyRide.AddBall Me : End Sub

Sub SpinHelp_Hit() : ActiveBall.VelY=1.4*ActiveBall.VelY : End Sub

Sub SpinoutKicker1_Hit() : SpinoutKicker1.DestroyBall : bsSpinOut.addball Me : End Sub

Sub SpinoutTrigger_Hit() : vpmTimer.pulsesw 44 : End Sub

'*********
' Switches
'*********

Sub LeftSlingshot_slingshot() : vpmtimer.pulsesw 18 : Playsound "slingshot" : End Sub
Sub RightSlingshot_Slingshot() : vpmtimer.pulsesw 20 : Playsound "slingshot" : End Sub

Sub LBumper_Hit() : vpmTimer.pulsesw 17 : bumper1=1 : Playsound "bumper" : LBumpera.state=1 : Me.TimerEnabled=1 : End Sub
Sub LBumper_Timer()
Select Case bumper1
Case 1 : Ring1a.IsDropped=0 : bumper1=2
Case 2 : Ring1b.IsDropped=0 : Ring1a.IsDropped=1 : bumper1=3
Case 3 : Ring1c.IsDropped=0 : Ring1b.IsDropped=1 : bumper1=4
Case 4 : Ring1c.IsDropped=1 : LBumpera.state=0 : Me.TimerEnabled=0
End Select
End Sub

Sub RBumper_Hit() : vpmTimer.pulsesw 19 : bumper2=1 : Playsound "bumper" : RBumpera.state=1 : Me.TimerEnabled=1 : End Sub
Sub RBumper_Timer()
Select Case bumper2
Case 1 : Ring2a.IsDropped=0 : bumper2=2
Case 2 : Ring2b.IsDropped=0 : Ring2a.IsDropped=1 : bumper2=3
Case 3 : Ring2c.IsDropped=0 : Ring2b.IsDropped=1 : bumper2=4
Case 4 : Ring2c.IsDropped=1 : RBumpera.state=0 : Me.TimerEnabled=0
End Select
End Sub

Sub LowerBumper_Hit() : vpmTimer.pulsesw 21 : Playsound "bumper" : End Sub

Sub ShooterLane_Hit() : Controller.Switch(22)=1 : End Sub
Sub ShooterLane_Unhit() : Controller.Switch(22)=0 : End Sub

Sub LeftRampEntry_Hit() : Controller.Switch(25)=1 : End Sub
Sub LeftRampEntry_UnHit() : Controller.Switch(25)=0 : End Sub

Sub LeftRampExit_Hit() : Controller.Switch(34)=1 : End Sub
Sub LeftRampExit_UnHit() : Controller.Switch(34)=0 : End Sub

Sub RightRampEntry_Hit() : Controller.Switch(26)=1 : End Sub
Sub RightRampEntry_UnHit() : Controller.Switch(26)=0 : End Sub

Sub RightRampExit_Hit() : Controller.Switch(33)=1 : End Sub
Sub RightRampExit_UnHit() : Controller.Switch(33)=0 : End Sub

Sub UpperLaneEntry_Hit() : Controller.Switch(23)=1 : End Sub
Sub UpperLaneEntry_UnHit() : Controller.Switch(23)=0 : End Sub

Sub LeftOutlane_Hit() : Controller.Switch(37)=1 : Playsound "sensor" : SWall1.IsDropped=1 : SWall2.IsDropped=1 : End Sub
Sub LeftOutlane_UnHit() : Controller.Switch(37)=0 : SWall1.IsDropped=0 : SWall2.IsDropped=0 : End Sub

Sub LeftInlane_Hit() : Controller.Switch(38)=1 : Playsound "sensor" : SWall3.IsDropped=1 : SWall4.IsDropped=1 : End Sub
Sub LeftInlane_UnHit() : Controller.Switch(38)=0 : SWall3.IsDropped=0 : SWall4.IsDropped=0 : End Sub

Sub RightInlane_Hit() : Controller.Switch(40)=1 : Playsound "sensor" : SWall5.IsDropped=1 : SWall6.IsDropped=1 : End Sub
Sub RightInlane_UnHit() : Controller.Switch(40)=0 : SWall5.IsDropped=0 : SWall6.IsDropped=0 : End Sub

Sub RightOutlane_Hit() : Controller.Switch(39)=1 : Playsound "sensor" : SWall7.IsDropped=1 : SWall8.IsDropped=1 : End Sub
Sub RightOutlane_UnHit() : Controller.Switch(39)=0 : SWall7.IsDropped=0 : SWall8.IsDropped=0 : End Sub

Sub CLane_Hit() : Controller.Switch(14)=1 : Playsound "sensor" : SWall9.IsDropped=1 : SWall10.IsDropped=1 : End Sub
Sub CLane_Unhit() : Controller.Switch(14)=0 : SWall9.IsDropped=0 : SWall10.IsDropped=0 : End Sub

Sub ALane_Hit() : Controller.Switch(15)=1 : Playsound "sensor" : SWall11.IsDropped=1 : SWall12.IsDropped=1 : End Sub
Sub ALane_Unhit() : Controller.Switch(15)=0 : SWall11.IsDropped=0 : SWall12.IsDropped=0 : End Sub

Sub BLane_Hit() : Controller.Switch(16)=1 : Playsound "sensor" : SWall13.IsDropped=1 : SWall14.IsDropped=1 : End Sub
Sub BLane_Unhit() : Controller.Switch(16)=0 : SWall13.IsDropped=0 : SWall14.IsDropped=0 : End Sub

Sub CarryPassengers_Hit()
Playsound "target"
vpmTimer.PulseSwitch 24, 0, ""
CarryPassengers.IsDropped=1
CarryPassenger2.IsDropped=0
CarryPassengers.TimerEnabled=1
End Sub

Sub CarryPassengers_Timer() : CarryPassengers.IsDropped=0 : CarryPassenger2.IsDropped=1 : End Sub

Sub LeftRampEnd_Hit() : Me.TimerEnabled=1 : ActiveBall.VelY=1 : End Sub
Sub LeftRampEnd_Timer() : Me.TimerEnabled=0 : PlaySound "ballhit" : End Sub
Sub RightRampEnd_Hit() : Me.TimerEnabled=1 : ActiveBall.VelY=1 : End Sub
Sub RightRampEnd_Timer() : Me.TimerEnabled=0 : PlaySound "ballhit" : End Sub

Sub DracKickerIn_Hit()
DracKickerIn.DestroyBall
DracKickerOut.CreateBall
DracKickerOut.Kick 15, 25
End Sub

Sub Spinner1_Spin() : Playsound "spinner" : End Sub
Sub Spinner2_Spin() : Playsound "spinner" : End Sub
Sub Spinner3_Spin() : Playsound "spinner" : End Sub

Sub LeftRampHelp
If ActiveBall.VelY<-20 then ActiveBall.VelY=-20
ActiveBall.VelZ=-0.1
End Sub

Sub RightRampHelp
If ActiveBall.VelY<-20 then ActiveBall.VelY=-20
ActiveBall.VelZ=-0.1
End Sub

Sub RLockSpeed()
If ActiveBall.VelY>2 Then
ActiveBall.VelY=2
End If
End Sub

'******
' Rules
'******

Sub Rules()
Msg(0)="TAXI - Williams 1988" &Chr(10) &Chr(10)
Msg(1)="[F] key turns on/off lights fading"
Msg(2)="SHOOTER SKILL SHOT: # of spins in SPINOUT advance scores 1K, 5K"
Msg(3)=" 10K, 25K & Spot Passenger, 50K, 75K, 100K."
Msg(4)=""
Msg(5)="C-A-B LANES: Increase JACKPOT value, Advance BONUS MULTIPLIER"
Msg(6)=" & Lite EXTRA BALL at Dracula Shot."
Msg(7)="AIRPORT:Return lanes lite Right & Left Airport Ramp shots for 20K,"
Msg(8)=" 40K, 60K, 80K, 100K, & Lite Million Shot."
Msg(9)=""
Msg(10)="JACKPOT: Pick up 5 passengers to lite JACKPOT. Collect JACKPOT via"
Msg(11)=" next Gorbie shot"
Msg(12)=""
Msg(13)="CARRY PASSENGERS:pick up Lola or Pin*Bot to lite Carry Passenger"
Msg(14)=" target(upper left). Hit lit target to retain spotted"
Msg(15)=" passengers on next ball for JACKPOT."
Msg(16)=""
Msg(17)="MULTI-BALL: Lock at right Eject. Release at left Airport Ramp Shot."
Msg(18)=""
Msg(19)="EXPRESS LANES: During MULTI-BALL play, Lock ball in Right Eject"
Msg(20)=" first; then, lock 2nd ball by Dracula Shot."
Msg(21)=""
Msg(22)="JOYRIDE: Right Return lane lites JOYRIDE. take JOYRIDE to score 10K,"
Msg(23)=" Spot Passenger, Mystery Score, EXTRA BALL, or SPECIAL."
For X=1 To 24
Msg(0)=Msg(0)+Msg(X) &Chr(13)
Next

MsgBox Msg(0), , " Instructions and Rule Card"
End Sub

'*************
' Update Lamps
'*************

For x=1 to 64 : DisplayLamps x, 0 : Next
Set LampCallback=GetRef("UpdateLamps")

Sub UpdateLamps()
Dim ChgLamp, ii
ChgLamp=Controller.ChangedLamps
If Not IsEmpty(ChgLamp) Then
For ii=0 To UBound(ChgLamp)
DisplayLamps chgLamp(ii, 0), chgLamp(ii, 1)
Next
End If
End Sub

Sub DisplayLamps(idx, Stat)
Select Case idx
Case 1 : l1.State=stat
Case 2 : l2.State=stat
Case 3 : l3.State=stat
Case 4 : l4.State=stat
Case 5 : l5.State=stat
Case 6 : l6.State=stat
Case 7 : l7.State=stat
Case 8 : l8.State=stat
Case 9 : l9.isDropped=1-stat
Case 10 : l10.isDropped=1-stat
Case 11 : l11.isDropped=1-stat
Case 12 : l12.isDropped=1-stat
Case 13 : l13.isDropped=1-stat
Case 14 : l14.isDropped=1-stat
Case 15 : l15.isDropped=1-stat
Case 16 : l16.isDropped=1-stat
Case 17 : l17.isDropped=1-stat
Case 18 : l18.isDropped=1-stat
Case 19 : l19.isDropped=1-stat
Case 20 : l20.isDropped=1-stat
Case 21 : l21.isDropped=1-stat
Case 22 : l22.isDropped=1-stat
Case 23 : l23.isDropped=1-stat
Case 24 : l24.isDropped=1-stat
Case 25 : l25.isDropped=1-stat
Case 26 : l26.isDropped=1-stat
Case 27 : l27.isDropped=1-stat
Case 28 : l28.isDropped=1-stat
Case 29 : l29.isDropped=1-stat
Case 30 : l30.isDropped=1-stat
Case 31 : l31.isDropped=1-stat
Case 32 : l32.isDropped=1-stat
Case 33 : l33.isDropped=1-stat
Case 34 : l34.isDropped=1-stat
Case 35 : l35.isDropped=1-stat
Case 36 : l36.isDropped=1-stat
Case 37 : l37.isDropped=1-stat
Case 38 : l38.isDropped=1-stat
Case 39 : l39.isDropped=1-stat
Case 40 : l40.isDropped=1-stat
Case 41 : l41.isDropped=1-stat
Case 42 : l42.isDropped=1-stat
Case 43 : l43.isDropped=1-stat
Case 44 : l44.isDropped=1-stat
Case 45 : l45.isDropped=1-stat
Case 46 : l46.isDropped=1-stat
Case 47 : l47.isDropped=1-stat
Case 48 : l48.isDropped=1-stat
'Case 49: l49.isDropped = 1 - stat
'Case 50: l50.isDropped = 1 - stat
'Case 51: l51.isDropped = 1 - stat
'Case 52: l52.isDropped = 1 - stat
Case 53 : l53.State=stat
Case 54 : l54.State=stat
Case 55 : l55.State=stat
Case 56 : l56.State=stat
Case 57 : l57.State=stat
Case 58 : l58.State=stat
Case 59 : l59.State=stat
Case 60 : l60.State=stat
Case 61 : l61.State=stat
Case 62 : l62.State=stat
Case 63 : l63.State=stat
Case 64 : l64.State=stat
End Select
End Sub

' LED display
' Based on the Eala's rutine

Dim Digits(38)
Digits(0)=Array(a00, a05, a0c, a0d, a08, a01, a06, a0f, a02, a03, a04, a07, a0b, a0a, a09, a0e)
Digits(1)=Array(a10, a15, a1c, a1d, a18, a11, a16, a1f, a12, a13, a14, a17, a1b, a1a, a19, a1e)
Digits(2)=Array(a20, a25, a2c, a2d, a28, a21, a26, a2f, a22, a23, a24, a27, a2b, a2a, a29, a2e)
Digits(3)=Array(a30, a35, a3c, a3d, a38, a31, a36, a3f, a32, a33, a34, a37, a3b, a3a, a39, a3e)
Digits(4)=Array(a40, a45, a4c, a4d, a48, a41, a46, a4f, a42, a43, a44, a47, a4b, a4a, a49, a4e)
Digits(5)=Array(a50, a55, a5c, a5d, a58, a51, a56, a5f, a52, a53, a54, a57, a5b, a5a, a59, a5e)
Digits(6)=Array(a60, a65, a6c, a6d, a68, a61, a66, a6f, a62, a63, a64, a67, a6b, a6a, a69, a6e)
Digits(7)=Array(a70, a75, a7c, a7d, a78, a71, a76, a7f, a72, a73, a74, a77, a7b, a7a, a79, a7e)
Digits(8)=Array(a80, a85, a8c, a8d, a88, a81, a86, a8f, a82, a83, a84, a87, a8b, a8a, a89, a8e)
Digits(9)=Array(a90, a95, a9c, a9d, a98, a91, a96, a9f, a92, a93, a94, a97, a9b, a9a, a99, a9e)
Digits(10)=Array(aa0, aa5, aac, aad, aa8, aa1, aa6, aaf, aa2, aa3, aa4, aa7, aab, aaa, aa9, aae)
Digits(11)=Array(ab0, ab5, abc, abd, ab8, ab1, ab6, abf, ab2, ab3, ab4, ab7, abb, aba, ab9, abe)
Digits(12)=Array(ac0, ac5, acc, acd, ac8, ac1, ac6, acf, ac2, ac3, ac4, ac7, acb, aca, ac9, ace)
Digits(13)=Array(ad0, ad5, adc, add, ad8, ad1, ad6, adf, ad2, ad3, ad4, ad7, adb, ada, ad9, ade)
Digits(14)=Array(ae0, ae5, aec, aed, ae8, ae1, ae6, aef, ae2, ae3, ae4, ae7, aeb, aea, ae9, aee)
Digits(15)=Array(af0, af5, afc, afd, af8, af1, af6, aff, af2, af3, af4, af7, afb, afa, af9, afe)

Digits(16)=Array(b00, b02, b05, b06, b04, b01, b03, b07)
Digits(17)=Array(b10, b12, b15, b16, b14, b11, b13, b17)
Digits(18)=Array(b20, b22, b25, b26, b24, b21, b23, b27)
Digits(19)=Array(b30, b32, b35, b36, b34, b31, b33, b37)
Digits(20)=Array(b40, b42, b45, b46, b44, b41, b43, b47)
Digits(21)=Array(b50, b52, b55, b56, b54, b51, b53, b57)
Digits(22)=Array(b60, b62, b65, b66, b64, b61, b63, b67)
Digits(23)=Array(b70, b72, b75, b76, b74, b71, b73, b77)
Digits(24)=Array(b80, b82, b85, b86, b84, b81, b83, b87)
Digits(25)=Array(b90, b92, b95, b96, b94, b91, b93, b97)
Digits(26)=Array(ba0, ba2, ba5, ba6, ba4, ba1, ba3, ba7)
Digits(27)=Array(bb0, bb2, bb5, bb6, bb4, bb1, bb3, bb7)
Digits(28)=Array(bc0, bc2, bc5, bc6, bc4, bc1, bc3, bc7)
Digits(29)=Array(bd0, bd2, bd5, bd6, bd4, bd1, bd3, bd7)
Digits(30)=Array(be0, be2, be5, be6, be4, be1, be3, be7)
Digits(31)=Array(bf0, bf2, bf5, bf6, bf4, bf1, bf3, bf7)

Digits(32)=Array(c00, c02, c05, c06, c04, c01, c03, c07)
Digits(33)=Array(c10, c12, c15, c16, c14, c11, c13)
Digits(34)=Array(c20, c22, c25, c26, c24, c21, c23)
Digits(35)=Array(c30, c32, c35, c36, c34, c31, c33, c37)
Digits(36)=Array(c40, c42, c45, c46, c44, c41, c43)
Digits(37)=Array(c50, c52, c55, c56, c54, c51, c53)
Digits(38)=Array(c60, c62, c65, c66, c64, c61, c63)

Sub Leds_Timer
Dim ChgLED, ii, jj, num, chg, stat, obj, b, x
ChgLED=Controller.ChangedLEDs(&Hffffffff, &Hffffffff)
If Not IsEmpty(ChgLED) Then
For ii=0 To UBound(chgLED)
num=chgLED(ii, 0) : chg=chgLED(ii, 1) : stat=chgLED(ii, 2)
For Each obj In Digits(num)
If chg And 1 Then obj.State=stat And 1
chg=chg\2 : stat=stat\2
Next
Next
End If
End Sub
 
Subsequent Test: KISS Machine

I decided to try a simpler game from a simpler time: The frustrating KISS game that is nearly impossible to beat.

I downloaded and unzipped file Kiss_JP_5.1_VP8 and put it in the Tables subdirectory.

I downloaded and placed the following zipped files in the ROMS subdirectory: Bally_1979_Kiss_ROMS + kiss + kissb

I then started VPinball and I get to see the background of the table.

I then click Play and I get a different "cannot find file error" message: "Unable to open Bally.vbs. Ensure that it is in the same folder as this table. Variable is undefined."

I click OK and get the following message: "Can't load VPinMAME. Variable is undefined."

I click OK and get the following message: "VPin MAME ver 01550000 required."

I click OK and get the following message: "Bally.vbs ver 3.26 or higher required."

I click OK and get an error message and then the text posted below. The error message is "Line 40. variable is undefined: 'Lamp callback'

' Kiss - Bally 1979
' VPM version by JPSalas August 2007, version 5.1
' Uses 7 digits ROM bootleg
' You need both roms: kiss.zip and kissb.zip

Option Explicit
Randomize

LoadVPM "01550000", "Bally.vbs", 3.26

Sub LoadVPM(VPMver, VBSfile, VBSver)
On Error Resume Next
If ScriptEngineMajorVersion < 5 Then MsgBox "VB Script Engine 5.0 or higher required"
ExecuteGlobal GetTextFile(VBSfile)
If Err Then MsgBox "Unable to open " & VBSfile & ". Ensure that it is in the same folder as this table. " & vbNewLine & Err.Description
Set Controller = CreateObject("VPinMAME.Controller")
If Err Then MsgBox "Can't Load VPinMAME." & vbNewLine & Err.Description
If VPMver > "" Then If Controller.Version < VPMver Or Err Then MsgBox "VPinMAME ver " & VPMver & " required."
If VPinMAMEDriverVer < VBSver Or Err Then MsgBox VBSFile & " ver " & VBSver & " or higher required."
On Error Goto 0
End Sub

Dim bsTrough, dtBank1, x,plungerIM
Dim bump1, bump2, bump3, bump4

Const cGameName = "kissb"

Const UseSolenoids = 1
Const UseLamps = 0
Const UseGI = 0
Const UseSync = 0
Const HandleMech = 0

' Standard Sounds
Const SSolenoidOn = "Solenoid"
Const SSolenoidOff = ""
Const SFlipperOn = "FlipperUp"
Const SFlipperOff = "FlipperDown"
Const SCoin = "Coin"

Set LampCallback = GetRef("UpdateLamps")

'************
' Table init.
'************

Sub kiss_Init
vpmInit me
With Controller
.GameName = cGameName
If Err Then MsgBox "Can't start Game" & cGameName & vbNewLine & Err.Description : Exit Sub
.SplashInfoLine = "Kiss - Bally 1979" & vbNewLine & "vpm table by JPSalas v5.1"
.HandleKeyboard = 0
.ShowTitle = 0
.ShowDMDOnly = 1
.ShowFrame = 0
.HandleMechanics = 0
.Hidden = 1
.SetDisplayPosition 1600, 1600, GetPlayerHWnd
On Error Resume Next
.Run GetPlayerHWnd
If Err Then MsgBox Err.Description
On Error Goto 0
End With

' Nudging
vpmNudge.TiltSwitch = swTilt
vpmNudge.Sensitivity = 5
vpmNudge.TiltObj = Array(Bumper1, Bumper2, Bumper3, Bumper4, LeftSlingshot, RightSlingshot, Sling1, Sling2)

' Trough
Set bsTrough = New cvpmBallStack
With bsTrough
.InitSw 0, 8, 0, 0, 0, 0, 0, 0
.InitKick BallRelease, 80, 6
.InitEntrySnd "Solenoid", "Solenoid"
.InitExitSnd "ballrel", "Solenoid"
.Balls = 1
End With

' Drop targets
set dtbank1 = new cvpmdroptarget
With dtbank1
.initdrop array(sw1, sw2, sw3, Array(sw4, sw4a) ), array(1, 2, 3, 4)
.initsnd "droptarget", "resetdrop"
End With

' Impulse Plunger
Const IMPowerSetting=40 ' Plunger Power
Const IMTime=0.6 ' Time in seconds for Full Plunge
Set plungerIM=New cvpmImpulseP
With plungerIM
.InitImpulseP swplunger,IMPowerSetting,IMTime
.Random 0.3
.InitExitSnd "plunger2","plunger"
.CreateEvents "plungerIM"
End With

' Main Timer init
PinMAMETimer.Interval = PinMAMEInterval
PinMAMETimer.Enabled = 1

' Init Bumper Rings and targets
Ring1a.IsDropped = 1 : Ring2a.IsDropped = 1 : Ring3a.IsDropped = 1 : Ring4a.IsDropped = 1
Ring1b.IsDropped = 1 : Ring2b.IsDropped = 1 : Ring3b.IsDropped = 1 : Ring4b.IsDropped = 1
Ring1c.IsDropped = 1 : Ring2c.IsDropped = 1 : Ring3c.IsDropped = 1 : Ring4c.IsDropped = 1
sw12a.IsDropped = 1 : sw13a.IsDropped = 1 : sw14a.IsDropped = 1 : sw15a.IsDropped = 1
sw17a.IsDropped = 1 : sw18a.IsDropped = 1 : sw19a.IsDropped = 1 : sw20a.IsDropped = 1
ResetPlungers
End Sub

Sub kiss_Paused : Controller.Pause = 1 : End Sub
Sub kiss_unPaused : Controller.Pause = 0 : End Sub

'**********
' Keys
'**********

Sub kiss_KeyDown(ByVal Keycode)
If vpmKeyDown(keycode) Then Exit Sub
If keycode = PlungerKey Then PlungerIM.Pullback:pcount=0:pTime.Enabled=1
If keycode = KeyRules Then Rules
End Sub

Sub kiss_KeyUp(ByVal Keycode)
If vpmKeyUp(keycode) Then Exit Sub
If keycode = PlungerKey Then PlungerIM.Fire:pTime.Enabled=0: Pcount = 0 :pTime2.Enabled =1
End Sub

'********
'Plunger
'********

dim PCount : Pcount = 0
dim Plungers : Plungers = Array (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)

Sub PTime_Timer
If Pcount <12 Then
Pcount = Pcount + 1
Plungers (Pcount - 1).Isdropped = 1
Plungers (Pcount).Isdropped = 0
End If
End Sub

Sub PTime2_Timer
Select Case Pcount
Case 0: ResetPlungers
Case 1: Plungers (0).Isdropped = 1: Plungers (2).Isdropped = 0
Case 2: Plungers (2).Isdropped = 1: Plungers (0).Isdropped = 0
Case 3: Me.Enabled = 0
End Select
Pcount = Pcount +1
End Sub

Sub ResetPlungers
For x = 1 to 12 : Plungers (x).Isdropped = 1 : Next
Plungers (0).Isdropped = 0
End Sub
'*********
' Switches
'*********

' Slings
Sub LeftSlingshot_SlingShot : PlaySound "SlingShot" : vpmTimer.PulseSw 36 : End Sub
Sub RightSlingshot_SlingShot : PlaySound "SlingShot" : vpmTimer.PulseSw 35 : End Sub
Sub Sling1_Hit : PlaySound "Rubber" : vpmTimer.PulseSw 25 : End Sub
Sub Sling2_Hit : PlaySound "Rubber" : vpmTimer.PulseSw 25 : End Sub
Sub Sling3_Hit : PlaySound "Rubber" : vpmTimer.PulseSw 25 : End Sub

' Bumpers
Sub Bumper1_Hit : vpmTimer.PulseSw 38 : PlaySound "bumper" : bump1 = 1 : Me.TimerEnabled = 1 : End Sub
Sub Bumper1_Timer()
Select Case bump1
Case 1 : Ring1a.IsDropped = 0 : bump1 = 2
Case 2 : Ring1b.IsDropped = 0 : Ring1a.IsDropped = 1 : bump1 = 3
Case 3 : Ring1c.IsDropped = 0 : Ring1b.IsDropped = 1 : bump1 = 4
Case 4 : Ring1c.IsDropped = 1 : Me.TimerEnabled = 0
End Select
End Sub

Sub Bumper2_Hit : vpmTimer.PulseSw 40 : PlaySound "bumper" : bump2 = 1 : Me.TimerEnabled = 1 : End Sub
Sub Bumper2_Timer()
Select Case bump2
Case 1 : Ring2a.IsDropped = 0 : bump2 = 2
Case 2 : Ring2b.IsDropped = 0 : Ring2a.IsDropped = 1 : bump2 = 3
Case 3 : Ring2c.IsDropped = 0 : Ring2b.IsDropped = 1 : bump2 = 4
Case 4 : Ring2c.IsDropped = 1 : Me.TimerEnabled = 0
End Select
End Sub

Sub Bumper3_Hit : vpmTimer.PulseSw 37 : PlaySound "bumper" : bump3 = 1 : Me.TimerEnabled = 1 : End Sub
Sub Bumper3_Timer()
Select Case bump3
Case 1 : Ring3a.IsDropped = 0 : bump3 = 2
Case 2 : Ring3b.IsDropped = 0 : Ring3a.IsDropped = 1 : bump3 = 3
Case 3 : Ring3c.IsDropped = 0 : Ring3b.IsDropped = 1 : bump3 = 4
Case 4 : Ring3c.IsDropped = 1 : Me.TimerEnabled = 0
End Select
End Sub

Sub Bumper4_Hit : vpmTimer.PulseSw 39 : PlaySound "bumper" : bump4 = 1 : Me.TimerEnabled = 1 : End Sub
Sub Bumper4_Timer()
Select Case bump4
Case 1 : Ring4a.IsDropped = 0 : bump4 = 2
Case 2 : Ring4b.IsDropped = 0 : Ring4a.IsDropped = 1 : bump4 = 3
Case 3 : Ring4c.IsDropped = 0 : Ring4b.IsDropped = 1 : bump4 = 4
Case 4 : Ring4c.IsDropped = 1 : Me.TimerEnabled = 0
End Select
End Sub

' Drain holes
Sub Drain_Hit : Playsound "drain" : bsTrough.AddBall Me : End Sub

' Rollovers
Sub sw34_Hit : la1.IsDropped = 1 : la2.IsDropped = 1 : Controller.Switch(34) = 1 : PlaySound "sensor" : End Sub
Sub sw34_UnHit : la1.IsDropped = 0 : la2.IsDropped = 0 : Controller.Switch(34) = 0 : End Sub

Sub sw27_Hit : la3.IsDropped = 1 : la4.IsDropped = 1 : Controller.Switch(27) = 1 : PlaySound "sensor" : End Sub
Sub sw27_UnHit : la3.IsDropped = 0 : la4.IsDropped = 0 : Controller.Switch(27) = 0 : End Sub

Sub sw26_Hit : la5.IsDropped = 1 : la6.IsDropped = 1 : Controller.Switch(26) = 1 : PlaySound "sensor" : End Sub
Sub sw26_UnHit : la5.IsDropped = 0 : la6.IsDropped = 0 : Controller.Switch(26) = 0 : End Sub

Sub sw33_Hit : la7.IsDropped = 1 : la8.IsDropped = 1 : Controller.Switch(33) = 1 : PlaySound "sensor" : End Sub
Sub sw33_UnHit : la7.IsDropped = 0 : la8.IsDropped = 0 : Controller.Switch(33) = 0 : End Sub

Sub sw24_Hit : la9.IsDropped = 1 : la10.IsDropped = 1 : Controller.Switch(24) = 1 : PlaySound "sensor" : End Sub
Sub sw24_UnHit : la9.IsDropped = 0 : la10.IsDropped = 0 : Controller.Switch(24) = 0 : End Sub

Sub sw23_Hit : la11.IsDropped = 1 : la12.IsDropped = 1 : Controller.Switch(23) = 1 : PlaySound "sensor" : End Sub
Sub sw23_UnHit : la11.IsDropped = 0 : la12.IsDropped = 0 : Controller.Switch(23) = 0 : End Sub

Sub sw5_Hit : la13.IsDropped = 1 : la14.IsDropped = 1 : Controller.Switch(5) = 1 : PlaySound "sensor" : End Sub
Sub sw5_UnHit : la13.IsDropped = 0 : la14.IsDropped = 0 : Controller.Switch(5) = 0 : End Sub

Sub sw22_Hit : la15.IsDropped = 1 : la16.IsDropped = 1 : Controller.Switch(22) = 1 : PlaySound "sensor" : End Sub
Sub sw22_UnHit : la15.IsDropped = 0 : la16.IsDropped = 0 : Controller.Switch(22) = 0 : End Sub

Sub sw21_Hit : la17.IsDropped = 1 : la18.IsDropped = 1 : Controller.Switch(21) = 1 : PlaySound "sensor" : End Sub
Sub sw21_UnHit : la17.IsDropped = 0 : la18.IsDropped = 0 : Controller.Switch(21) = 0 : End Sub

'Spinners
Sub SPinner1_Spin() : vpmTimer.PulseSw 31 : PlaySound "spinner" : End Sub
Sub SPinner2_Spin() : vpmTimer.PulseSw 30 : PlaySound "spinner" : End Sub

' Droptargets
Sub sw1_Hit : dtbank1.Hit 1 : End Sub
Sub sw2_Hit : dtbank1.Hit 2 : End Sub
Sub sw3_Hit : dtbank1.Hit 3 : End Sub
Sub sw4_Hit : dtbank1.Hit 4 : End Sub

' Targets
Sub sw12_Hit : vpmTimer.PulseSw 12 : sw12.IsDropped = 1 : sw12a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw13_Hit : vpmTimer.PulseSw 13 : sw13.IsDropped = 1 : sw13a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw14_Hit : vpmTimer.PulseSw 14 : sw14.IsDropped = 1 : sw14a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw15_Hit : vpmTimer.PulseSw 15 : sw15.IsDropped = 1 : sw15a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw17_Hit : vpmTimer.PulseSw 17 : sw17.IsDropped = 1 : sw17a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw18_Hit : vpmTimer.PulseSw 18 : sw18.IsDropped = 1 : sw18a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw19_Hit : vpmTimer.PulseSw 19 : sw19.IsDropped = 1 : sw19a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub
Sub sw20_Hit : vpmTimer.PulseSw 20 : sw20.IsDropped = 1 : sw20a.IsDropped = 0 : Me.TimerEnabled = 1 : PlaySound "target" : End Sub

Sub sw12_Timer : sw12.IsDropped = 0 : sw12a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw13_Timer : sw13.IsDropped = 0 : sw13a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw14_Timer : sw14.IsDropped = 0 : sw14a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw15_Timer : sw15.IsDropped = 0 : sw15a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw17_Timer : sw17.IsDropped = 0 : sw17a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw18_Timer : sw18.IsDropped = 0 : sw18a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw19_Timer : sw19.IsDropped = 0 : sw19a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub
Sub sw20_Timer : sw20.IsDropped = 0 : sw20a.IsDropped = 1 : Me.TimerEnabled = 0 : End Sub

' Gates
Sub Gate1_Hit() : PlaySound "gate" : End Sub
Sub Gate2_Hit() : PlaySound "gate" : End Sub
Sub Gate3_Hit() : PlaySound "gate" : End Sub

' LaunchBall
Sub LaunchBall_Hit()
If ActiveBall.VelY < 0 Then Playsound "launchball"
End Sub

' Ball Sound

Sub Rolling_Hit () : PlaySound "ballrolling" : End Sub

'*********
'Solenoids
'*********

SolCallback(6) = "vpmSolSound ""knocker"","
SolCallback(7) = "bsTrough.SolOut"
SolCallback(14) = "dtbank1.SolDropUp"
SolCallback(17) = "vpmSolDiverter Gate,False,Not"
SolCallback(19) = "vpmNudge.SolGameOn"

SolCallback(sLRFlipper) = "vpmSolFlipper RightFlipper,Nothing,"
SolCallback(sLLFlipper) = "vpmSolFlipper LeftFlipper,Nothing,"

'************************************
' LEDs Display
'Based on Scapino's 7 digit Reel LEDs
'************************************

Dim Digits(32)
Dim Patterns(11)
Dim Patterns2(11)
Patterns(0) = 0 'empty
Patterns(1) = 63 '0
Patterns(2) = 6 '1
Patterns(3) = 91 '2
Patterns(4) = 79 '3
Patterns(5) = 102 '4
Patterns(6) = 109 '5
Patterns(7) = 125 '6
Patterns(8) = 7 '7
Patterns(9) = 127 '8
Patterns(10)= 111 '9

Patterns2(0) = 128 'empty
Patterns2(1) = 191 '0
Patterns2(2) = 134 '1
Patterns2(3) = 219 '2
Patterns2(4) = 207 '3
Patterns2(5) = 230 '4
Patterns2(6) = 237 '5
Patterns2(7) = 253 '6
Patterns2(8) = 135 '7
Patterns2(9) = 255 '8
Patterns2(10)= 239 '9
Set Digits(0) = a0
Set Digits(1) = a1
Set Digits(2) = a2
Set Digits(3) = a3
Set Digits(4) = a4
Set Digits(5) = a5
Set Digits(6) = a6
Set Digits(7) = b0
Set Digits(8) = b1
Set Digits(9) = b2
Set Digits(10) = b3
Set Digits(11) = b4
Set Digits(12) = b5
Set Digits(13) = b6
Set Digits(14) = c0
Set Digits(15) = c1
Set Digits(16) = c2
Set Digits(17) = c3
Set Digits(18) = c4
Set Digits(19) = c5
Set Digits(20) = c6
Set Digits(21) = d0
Set Digits(22) = d1
Set Digits(23) = d2
Set Digits(24) = d3
Set Digits(25) = d4
Set Digits(26) = d5
Set Digits(27) = d6
Set Digits(28) = e0
Set Digits(29) = e1
Set Digits(30) = e2
Set Digits(31) = e3
Sub LEDs_Timer
On Error Resume Next
Dim ChgLED,ii,jj,chg,stat
ChgLED = Controller.ChangedLEDs(&HFF, &HFFFF)
If Not IsEmpty(ChgLED) Then
For ii = 0 To UBound(ChgLED)
chg = chgLED(ii, 1) : stat = chgLED(ii, 2)
For jj = 0 to 10
If stat = Patterns(jj) OR stat = Patterns2(jj) then Digits(chgLED(ii, 0)).SetValue jj
Next
Next
End IF
End Sub

'*************
' Update Lamps
'*************

For x=1 to 64:DisplayLamps x,0:Next

Sub UpdateLamps()
Dim ChgLamp,ii
ChgLamp=Controller.ChangedLamps
If Not IsEmpty(ChgLamp)Then
For ii=0 To UBound(ChgLamp)
DisplayLamps chgLamp(ii,0),chgLamp(ii,1)
Next
End If
End Sub

Sub DisplayLamps(idx,Stat)
Select Case idx
Case 1:l1.isDropped=1 - stat
Case 2:l2.isDropped=1 - stat
Case 3:l3.isDropped=1 - stat
Case 4:l4.isDropped=1 - stat
Case 5:l5.isDropped=1 - stat
Case 6:l6.isDropped=1 - stat
Case 7:l7.isDropped=1 - stat
Case 8:l8.isDropped=1 - stat
Case 9:l9a.isDropped=1 - stat:l9b.isDropped=1 - stat
Case 10:l10.isDropped=1 - stat
Case 11:If stat Then l11.text="Same Player Shoots Again" Else l11.text=""
Case 12:l12.isDropped=1 - stat
Case 13:If stat Then l13.text="Ball In Play" Else l13.text=""
Case 15:l15.isDropped=1 - stat
Case 17:l17.isDropped=1 - stat
Case 18:l18.isDropped=1 - stat
Case 19:l19.isDropped=1 - stat
Case 20:l20.isDropped=1 - stat
Case 21:l21.isDropped=1 - stat
Case 22:l22.isDropped=1 - stat
Case 23:l23.isDropped=1 - stat
Case 24:l24.isDropped=1 - stat
Case 25:l25a.isDropped=1 - stat:l25b.isDropped=1 - stat
Case 26:bumper1.State=stat:bumper3.State=stat:Bumper1a.IsDropped=stat:Bumper3a.IsDropped=stat
Case 27:If stat Then l27.text="Match" Else l27.text=""
Case 28:l28.isDropped=1 - stat
Case 29:If stat Then l29.text="High Score to Date" Else l29.text=""
Case 30:l30.isDropped=1 - stat
Case 31:l31.isDropped=1 - stat
Case 33:l33.isDropped=1 - stat
Case 34:l34.isDropped=1 - stat
Case 35:l35.isDropped=1 - stat
Case 36:l36.isDropped=1 - stat
Case 37:l37.isDropped=1 - stat
Case 38:l38.isDropped=1 - stat
Case 39:l39.isDropped=1 - stat
Case 40:l40.isDropped=1 - stat
Case 41:l41a.isDropped=1 - stat:l41b.isDropped=1 - stat
Case 42:bumper2.State=stat:bumper4.State=stat:Bumper2a.IsDropped=stat:Bumper4a.IsDropped=stat
Case 43:l43.isDropped=1 - stat
Case 44:l44.isDropped=1 - stat
Case 45:If stat Then l45.text="Game Over" Else l45.text=""
Case 46:l46.isDropped=1 - stat
Case 47:l47.isDropped=1 - stat
Case 49:l49.isDropped=1 - stat
Case 50:l50.isDropped=1 - stat
Case 51:l51.isDropped=1 - stat
Case 52:l52.isDropped=1 - stat
Case 53:l53.isDropped=1 - stat
Case 54:l54.isDropped=1 - stat
Case 55:l55.isDropped=1 - stat
Case 56:l56.isDropped=1 - stat
Case 57:l57a.isDropped=1 - stat:l57b.isDropped=1 - stat
Case 58:l58.isDropped=1 - stat
Case 59:l59.isDropped=1 - stat
Case 60:l60.isDropped=1 - stat
Case 61:If stat Then l61.text="TILT" Else l61.text=""
Case 62:l62.isDropped=1 - stat
Case 63:l63.isDropped=1 - stat
End Select
End Sub
'******
' Rules
'******
Dim Msg(20)
Sub Rules()
Msg(0) = "Kiss - Bally 1979" &Chr(10) &Chr(10)
Msg(1) = ""
Msg(2) = "Ball thru top lanes or hitting side targets lites corresponding letters k-i-s-s."
Msg(3) = "Knocking down all targets or ball thru top center lane when lit spots k-i-s-s."
Msg(4) = "Bonus arrows are lit by completing a vertical or horizontal line."
Msg(5) = "Each lit letter k-i-s-s scores 1000 bonus points, and an arrow scores 3000"
Msg(6) = " bonus points."
Msg(7) = "Making entire k-i-s-s card:"
Msg(8) = "1st time lites super bonus."
Msg(9) = "2nd time lites colossal bonus."
Msg(10) = "3rd time lites k-i-s-s special and outlane special."
Msg(11) = "Making a-b-c-d:"
Msg(12) = "1st time lites 2x."
Msg(13) = "2nd time scores 25,000 points when extra ball is lit."
Msg(14) = "3rd and each additional time scores 50,000 points when special is lit."
Msg(15) = "Ball thru center lane lites spinners and opens ball return gate when lit."
Msg(16) = "Special when lit score 50,000 points."
Msg(17) = "Bumpers score 1000 points when lit."
Msg(18) = "Maximum - 1 extra ball per ball in play."
Msg(19) = "Tilt penalty - ball in play."
Msg(20) = ""
For X = 1 To 20
Msg(0) = Msg(0) + Msg(X) &Chr(13)
Next

MsgBox Msg(0), , " Instructions and Rule Card"
End Sub

'Bally Kiss
'added by Inkochnito
Sub editDips
Dim vpmDips : Set vpmDips = New cvpmDips
With vpmDips
.AddForm 700, 400, "Kiss - DIP switches"
.AddChk 2, 10, 180, Array("Match feature", &H00100000) 'dip 21
.AddChk 205, 10, 115, Array("Credits display", &H00080000) 'dip 20
.AddFrame 2, 30, 190, "Maximum credits", &H00070000, Array("5 credits", 0, "10 credits", &H00010000, "15 credits", &H00020000, "20 credits", &H00030000, "25 credits", &H00040000, "30 credits", &H00050000, "35 credits", &H00060000, "40 credits", &H00070000) 'dip 17&18&19
.AddFrame 2, 160, 190, "Sound features", &H80000080, Array("chime effects", &H80000000, "chime and tunes", 0, "noise", &H00000080, "noises and tunes", &H80000080) 'dip 8&32
.AddFrame 2, 235, 190, "High score to date", &H00000060, Array("no award", 0, "1 credit", &H00000020, "2 credits", &H00000040, "3 credits", &H00000060) 'dip 6&7
.AddFrame 2, 310, 190, "High score feature", &H00006000, Array("no award", 0, "extra ball", &H00004000, "replay", &H00006000) 'dip 14&15
.AddFrame 205, 30, 190, "Balls per game", 32768, Array("3 balls", 0, "5 balls", 32768) 'dip 16
.AddFrame 205, 76, 190, "After completing KISS card 3 times", &H00200000, Array("any letter made is not held over", 0, "any letter made is held over", &H00200000) 'dip 22
.AddFrame 205, 122, 190, "Light-a-line lite", &H00400000, Array("goes on and off", 0, "stays lit", &H00400000) 'dip 23
.AddFrame 205, 168, 190, "KISS special lites", &H00800000, Array("after 'colossal' lite", 0, "with 'colossal' lite", &H00800000) 'dip 24
.AddFrame 205, 214, 190, "'Opens gate when lit' lite", &H10000000, Array("remains lit", 0, "lites 1 in 3", &H10000000) 'dip 29
.AddFrame 205, 260, 190, "Light-a-line lite", &H20000000, Array("lites for next ball", 0, "comes up same as last ball", &H20000000) 'dip 30
.AddFrame 205, 306, 190, "Any A-B-C-D made is", &H40000000, Array("not held in memory", 0, "held in memory for next ball", &H40000000) 'dip 31
.AddLabel 50, 382, 300, 20, "After hitting OK, press F3 to reset game with new settings."
.ViewDips
End With
End Sub

Set vpmShowDips = GetRef("editDips")
 
Administrative Rights issue?

So...as I think about this further it seems to me that perhaps I...as the only user of the pc...do not have Administrative rights when opening the files...or...that the Tables programs do not have Administrative Rights to "see" the files in the Program files subdirectory and that perhaps this is what is causing the conflict.

Just a thought that something may have changed with Windows 8 that is screwing this up.
 
Right now I am feeling your pain Sir. I didn't see this, and I am truly sorry that nobody else did.

Try a Right-Click > choose Properties on the VPinball.exe and if you see the BLOCKED message "This program came from another computer", click the button to UNBLOCK the program, and then try it. Windows security has changed much in the last several versions.

If that doesn't do it, try Right-Click > Run as Administrator. If that doesn't work, you probably need to check or update the .VBS files (Unzip them to the Tables folder and overwrite the old ones) and the VPMAME add-on from www.vpforums.org. They maintain the latest versions now.

And also, if the table was created using a pre VP9, say, Visual Pinball Ver 8.1, then you will need to use VPinball 8.1 to play it. The VP ver. 9 and up uses a different sizing that messes up the older tables, and a different code that will crash tables designed for version 8.1. So if you are playing a VP9, download VPinball 9, and if you are playing a VP 8 table, make sure to use VPinball 8.1.

But when the error is something like "Unable to open s11.vbs", and the file is in the Tables folder, then it is probably an error between an older set of .vbs files that need to be updated to the version that the table uses, or the VPinMAME add-on needs to be updated. And if neither work, I would jettison the Phoenixx install; uninstall it from Control Panel > Add/Remove (or in Win 8 terms, from Remove Programs).
The Phoenixx VIP installer was great in it's day, but it is now very old.
Again, www.vpforums.org has the current versions, as well as VPinball 8.1.

And once again, I am very sorry for missing this.
You Sir have a fine wit.
 
Hello Sleepy!

Ha Ha...no apologies from anyone are necessary! I appreciate the input. I literally just got back from the IAAPA Trade Show...where if I could attach the picture I would prove that I was THE Emmitt Smith at the show...Emmitt could not make so his badge came to me. I told everyone that I was hot so hard playing football it knock the melanin out of me!

While at the show I got to play a couple games of Jersey Jack's The Wizard of Oz pinball game. I like the vision that Jersey Jack has for their games. The Wizard of Oz game was waaayyy cool. There are a series of sub games and 4 different flipper modes that become active during multiball. Plus the work put into the back display has a modern slot game feel while the 3-D props on the table itself were very well thought out and done.

Since I have been on the road for a few days and I already know Monday and Tuesday are slammed I won't be able to get back to your suggestions for a week. I need to have a clear head and focus when going through somewhat technical debug test.

I am not surprised to hear that the Phoenixx program is now outdated. That is the bitter pill of information systems work...all the upgrades eventually obsolete other programs.

Lastly...I am definitely in no "pain"...I am 100% "Painless"! My first novel...constructed to be a big budget motion picture (there are more products constructed and ready to go...while at IAAPA I was working separately on the animation and marketing of a Kickstarter\Indiegogo presentation for maybe mid-2015). Anyway...no "pain" at all...feel free to check out "painless-poje(dot) com" or "poje(dot)biz"...those are the prototypes.

Thanks again and I will advise when I get through the above suggestions.

Bill
 
Well congratulations! Is the film project listed at imdb.com?
I see two films using that title.

And be careful. Not everyone in the biz is honest. Not even family.
BTW, what was Sergio Leone's literary contribution? I know something about him, and Matheson, but I'm not familiar with any books by him.
 
Sergio was a filmmaker \director\screenplay writer most noted for the 3 Clint Eastwood films done which are "A Few Dollars More", "A Fistful of Dollars" & "The Good, The Bad And The Ugly".

He also made "A Fistful of Dynamite (aka) Duck you Sucker" & "Once Upon A Time In The West" & "Once Upon a Time in America." The films are all lengthy and are about people and business and social issues such as war. "Duck You Sucker" is actually one of the greatest anti-war movies of all time but the perspective is one of choice about being involved in the business of war.

Gotta run...TTYL
 
Oh...the project is not listed on imdb...premature for that. I also understand the scum part of the business...that is why I have been developing over 7 years and still own everything and have proper Beverly Hills Wilshire Boulevard legal counsel. It's easy to get taken for a ride in this game, for sure. That is why I have been selling the public more than selling to corporations. if I build the public support then the corporations will come. That's the reason for the Kickstarter\Indiegogo taking what I have done 1-to-1 and translating it to 1-to many.

TTYL
 
Oh yeah. I know about Sergio. This kid once suggested, in separate and private thoughts with trusted friends and family (who claimed not to be in the biz)... trapping a fly in a shotgun barrel, a villain holding an evil grin in the sun straight into the camera, a violent immolation, and a western with less talk and more strategy...don't know the name.

All a part of my lifelong struggles with being on the out, and their liabilities.

My first t.v. concept was "Clutch Cargo" with the superimposed live-action mouths.
My first record was "Tequilla" in 1956. I was two years old playing on my Aunt's piano with all two fingers.
My first musical was a couple of songs in "The Sound of Music".
My first OSCAR nom was for The Theme from Tammy and the Bachelor.
There have been many rips here. I have never been involved. My family holds their silence.

Currently Charlie Brown is still using my "Lucy and Linus" (Guaraldi-credited) tune for their next movie.

Family managed to put me in at Warner Bros. Records as a temp without revealing anything. The demo dept. I was helping to ship albums with my tunes on them, and No Recognition of the fact. And not a dime yet for any of it.

Be very careful, and let me know when IMDB posts the project. Make sure to get credit. Have you filed the script with WGA? Are you a member?
I have misgivings about any Hollywood organization since they are usually controlled by the industry, but get paper on it. Paper will come in handy later if needed.
 
I take that back. The "fly in the shotgun" was a school chum whose family made a career out of "the downtown restaurant trade". They claimed to have known mobsters.
Their friend Rocky played a Morlock in George Pal's "The Time Machine.

My Father presented himself as a one-handed gas station mechanic. One of his friends also ran a gas station. Flying A Gasoline. John Marley. My Pa claimed to know Rip Torn from the station. I never met him. John Boorman shot a scene for the film "Point Blank" there.

And Jerry was a frustrated actor who made good as a makeup man for "Animal House".
He lived next door. I knew his son. We discussed movies such as The Godfather before they were shot. I met Jeff Burton at his place. Jeff was in Planet of the Apes.
Jerry once took us to see "God Forgives, I Don't", a really bad spaghetti western with absolutely no explanation. Jerry fell asleep in the middle of it.
The co-feature was "Hell's Angels '69". Wasted.

It doesn't matter to my wallet though. Still zilch for the use.
 
The reson this worked so well around me was, because family and friends pretended not to be connected. They went as far as posing as being employed in other business interests that they likely owned.

With many in the industry, they deny the fact to others. They may rely on aliases and frontmen. You can be dealing with a major talent, but talking to their frontmen and never know it. So always, always make sure to get everything signed and in writing, ESPECIALLY IF YOU DISCLOSE ANY PART OF THE PROJECT TO THEM.
Get a prior Disclosure Agreement not to use, or disclose to anyone else, any part of your work without your consent BEFORE SHOWING ANYBODY ANYTHING.

You have an advantage if your book has a copyright. That helps.
 
Last edited:
Very Interesting posts. I'd like to discuss further but I do not think this is the proper forum. Can you send me an e-mail? This way I can provide better background. My e-mail is "poj-man(at)prodigy.net"
 
Forum activity
Help Users
You can interact with the ChatGPT Bot in any Chat Room and there is a dedicated room. The command is /ai followed by a space and then your ? or inquiry.
ie: /ai What is a EM Pinball Machine?
  • No one is chatting at the moment.
      Mibs Mibs: GeorgeH has posted a new reply in the thread "Sounds library".
      Back
      Top