Has it really been a year??? Presenting Skateball 3.0...
While the last major update included vastly improved graphics and  gameplay accuracy, 
version 3 delivers changes that really make this revision of SkateballVP "feel more like the 
original … namely authentic sound and light sequence animation.
From the ambient ocean surf, to the light and sound wave with each new ball, Skateball 3 
acts more like the real thing. If version 2 brought us closer to original gameplay 
duplication, this release advances the “look and feel” experience of playing the real 
table. There have been a couple minor graphics tweaks (as always), but simulating 
authentic sound and lighting was the real goal of the excersize.
Thanks go out (in no small part) to Apocalypse (and of course the VpinMame team), who's 
diligence has brought us closer to full emulation of this primo example of early 80's solid 
state arcade entertainment. Without their work on the emulation side of things,  this 
straight  VP simulation would not have been possible.
The key word though is “simulation”.  Although sounds were ripped from the original 
ROMS, no original Bally code was used or emulated, leaving room for both unintentional 
inaccuracies and creative interpretations. Light sequences were re-created by playing 
back the originals (over and over and over and over), and simply observing how they 
worked so that timers could be set up to best duplicate them (Sorry Black, no light 
sequencers this time!).  Additionally, emulation of this table is still quite incomplete, 
requiring 'best-guess' solutions to many table elements.
 
SOUNDS GOOD TO ME... 
Who could believe that the original sounds could change so much…
My original plan was to simply supplement my existing sounds with a few from the 
ROM, but after hearing the table sound flow, I decided that only 2 or 3 of my 
custom sounds would survive the update..
All table element sounds are now the originals with the following exceptions…
Analog sounds (the physical sounds of the ball hitting a target, rebounds, 
kicker ejects etc.) have been mixed into the original Bally digital sounds. 
Mixing these sounds rather than keeping them separate saved the use 
some timers, and kept file size down by reducing the number of samples 
required.
The original table had no “alert” for holding a bonus level or attaining an 
extra ball (or at least they aren’t emulated yet). In these instances I’ve 
either mixed my own sounds, or re-used table sounds from other events.
All “mission” completions used the same sounds on the original 
table…here comes that creative interpretation I mentioned… Completing 
the SKATE targets or top targets sequence will bring up my own mix that 
contains no samples from the table. I think you’ll find that this works well, 
and I strived to use samples that fit in well with the real sounds. ALL other 
table event sounds are authentic. If you hate that I did this, the center 
target uses the correct sound, just change other mission completion 
sounds to that one, and you'll effectively remove my sounds. 
Sound chips from this era allowed a very limited number of sounds to be 
played simultaneously (usually restricted to 3 sound and  1 or 2 noise 
generators). This caused many sounds to suddenly cut out if too many 
were playing at once. I kept this intact for many elements, but others just 
sounded better (and I’m sure closer to the designers’ original vision) if I let 
them play on top of each other.
The bonus count-down routine emulation on the VPM version of the table is 
inaccurate and gave me no reference with which to base my work. The 
20000/30000/50000 collection from the saucer however, was emulated 
correctly, and so I used this as the main bonus collection routine as well (I 
figure that’s probably right anyway)
The ambient digital “ocean” sound was cool for the time, but it ended up 
being a little annoying after awhile (it was probably fine in a noisy arcade, 
but in my quiet office, it was driving me crazy). My solution – I mixed the 
original chip based sound effect with a recording of actual ocean surf. It’s 
subtle…if I hadn’t mention it here, you’d probably not have noticed, but it’s 
a far sight less grating.
The hardest thing for me to do on an emotional level, was to kill my intro theme 
music. The real table had a very cool initial sound and light choreography, and my 
theme music just didn’t fit in anymore. I originally kept my “skateball” voice bit 
which worked in pretty well, but finally but decided to nix that as well. 
 
YOU LIGHT UP MY LIFE:
The original designers went to great lengths to get lighting and sound to work in tandem…
This was the main impetus in getting me to decide to get rid of 99% of my custom 
sounds.From the warm up, to the “next-player” routines, waves of lights play with 
perfect timing to the sounds of the game.
As I mentioned earlier, the bonus collection routine is not emulated properly….it 
plays WAY too fast. Even capturing the animation and slowing it down in video 
editing software, made it very difficult to ascertain what was happening. One thing 
is certain though, it worked in the same way as most tables from this era…bonus 
collection was repeated sequentially for each bonus multiplier value. Where the 
emulated version plays too fast, my version may actually be a bit slow. You 
decide.
Also on this topic, collecting a 40,000 or 60,000 bonus times 5X would have taken 
forever if rewarded in 1000 increments (even at a fraction of a second for each light). 
I therefore kept intact my averaging routine, which reduces the countdown by a 
factor or 10 if the bonus is higher than 10,000. This created a problem, as an 
amount like…let's say 13,000… leaves us with a fraction by the end of the routine 
(the lowest light value is 1000, but at 13,000 you’re left with 300 (or .30) after 
dividing by 10). To correct this I converted the values to integers on the fly. This 
means that some of the countdown looks incorrect, but rest assured that the 
correct score is being applied since actual score is handled by a separate routine. 
(and I think it all happens so quick, that its hardly noticeable). Anyway, I'll fix this 
when I have some frame of reference on which to base a duplication of the original.
I loved the attract mode initialization routine so much, that I added a short delay to 
simulate the table warm-up so that you'd notice the intro more. This has been 
greatly reduced from the 15 seconds or so you'd wait for the real machine, but it 
still means that you can't insert a coin until the “Insert Coin” is lit (a wait of about 3 
seconds). If you hate it, I'll get rid of it. – maybe.
The table shut down and sound at the end of the final ball for each player (as well 
as the flashing plastics throughout gameplay) are not part of the original table's 
design. Plastics may have flashed, but I have no idea where or when, and I doubt if 
all the lights dimmed either(outside of a tilt). There's that "creative interpretation" 
rearing it's ugly head again.
Speaking of which - About the amber LED...
You may notice that the VPM version of the table doesn't have a working amber 
display on the backglass...there's a good reason for that...on the original table, this 
was just the Ball-In-Play backglass light. Because of the limited space for 
backglass elements in VP, I decided to use it for all backglass message flashers 
except for the TILT. Now, a backglass light couldn't flash a different message at the 
same location, so I decided to change this to an LED to make it more "possible". 
This also allowed me to add a few custom messages like "Spinner Is Lit" and 
"BonusX Is Lit"....the original table did NOT have this.
 
TO BE CONTINUED:
Most of the e-mail I receive asks for an operator mode. I promise everyone who's asked 
that this is my next project (as soon as I get some of the contrived scripting cleaned up).
PLEASE email me a report of any bugs you may find…this is the third time I’ve patched my 
original script for a major update, and things are getting a little messy (a cleaned and 
optimized release is a MUST for further development). As a result, things may crop up that 
I did not find or anticipate. I ask that all members of the community partake in this table’s 
development by simply letting me know when something goes wrong.
PeBo ( paul_b@sympatico.ca )
(so 4eyes, do YOU read readme's??) hehe
