Spiderman Pinball

In addition to writing books, I have a couple of other esoteric, creative-type hobbies. One such being pinball. I love to play pinball. Something about the kinetic, real-world physics aspect of slapping a ball and hitting targets, some unexpectedly, that I find satisfying. Since I am a creative, I couldn't stop at just playing. I tinker too.

There are actually three different pinball machines that had the spiderman theme. The one I had and modified was made by the Stern pinball company in 2007. By most ratings, it is the best of the three and many rate in as one of the top ten (or at least 20) pinball machines of all time. It's a lot of fun.

I had mind to make some tweaks to the game, even though it is near perfect, but in the end, all I changed was the game music.

The soundtrack, as is, is not horrible, but I felt it lacked the edgy, in-your-face component that a lot of other aggressive, confrontational games had. I ended up swapping out the custom soundtrack in the game for snippets of electronic music, mostly house, EDM, trap, dubstep, and the like.

The original game had music that flowed fairly well and, personally, I thought, blended a little too well. I like the music to signal when a game is in a particular mode so that just by listening for a certain soundtrack, I know what targets to shoot for. Unfortunately, this wasn't the originally the case. So, for the soundtracks I chose, they are of similar vein, but different enough from each other that you definately know what mode you're in.

Here is a mapping of the sound calls, their code addresses, what modes they are played during, and the music that I switched it to.

request address length what mode replaced with
26 0xC4 10s668ms plunge if nothing running Faithless - Jailbait
27 0xC3 42s655ms main game Faithless - Jailbait
46 0xC5 29s548ms amazing spiderman (timed mode) feed me - pink lady
57 0xB9 27s765ms end credits leave original
112 0xBB 33s883ms ? leave original
113 0x99 04s195ms doc ock MB end / black suit MB end leave original
114 0xC0 07s703ms plunge if goblin is running afrojack - pacha on acid
115 0xC6 31s679ms goblin 1, 2, 3 afrojack - pacha on acid
143 0xC7 13s892ms ? leave original
144 0xC8 30s489ms doc ock 1, 2, 3 kill the noise - thumbs up
195 0xC1 08s612ms plunge if sandman running subfocus - rock it
196 0xC2 17s306ms Sandman 1, 2, 3 subfocus - rock it
232 0xB6 37s783ms venom 1 (timed mode) dmitri vegas and like mike - wakanda
233 0xB4 5m999ms plunge if venom 2-3 is running feed me - one click head shot
234 0xB5 29s994ms venom 2, 3 feed me - one click head shot
250 0xBA 36s012ms bonesaw (timed mode) stoneface and terminal – leaving earth
262 0xBD 25s623ms daily bugle (timed mode) mat zo - caller ID
270 0xB8 33s375ms new goblin (timed mode) birdy nam nam - going in
282 0xB7 28s270ms rescue MJ (timed mode) justice - Helix
318 0xBE 07s905ms black suit MB start john dish - karmma
319 0xBC 21s356ms black suit MB john dish - karmma
339 0xB3 40s012ms battle royale wizard mode zeds dead - dimention
348 0xB2 37s502ms superhero leave original
357 0xBF 06s009ms superhero start leave original


One of the things you might notice is that most mode songs in the list above are listed twice. The reason is that there are two different times the music is queued up to play. The longer times are for during the game, the shorter ones for when the ball has yet to be plunged, but the mode is still active. For example, if a non-timed game mode was started on ball number one and then the ball drained, the mode would still be running at the start of ball 2.

Having two different chucks of music to signal the same mode leads to some interesting problems because the new music and the old were not of the same lengths or tempo (beats per minute). So changing the music forced me to tweak the music on my part, both length and tempo.

For example, for the Sandman mode I used one of Subfocus's bigger hits, Rockit, but the Sandman mode music only plays for 17.3 seconds. If the mode runs longer (unless you're having a really bad go of it, it will) the music will loop back around and play from the beginning seemlessly, meaning there is no gap when the track restarts. This is really illustrated on the 339 track above although your browser may or may not stutter on the replay (the pinball machine will not). Anyway, clearly, we don't want the music to start at the beginning, but somewhere in the middle and to loop exactly at 17.3 seconds. However, since Rockit is not at the same BPM as the original music, it doesn't fold properly. How did I fix this?

The answer was obviously to change the tempo of Rockit to match the loop time I needed. Rockit has a standard 4/4 time signature, so I needed the 4th measure to end at exactly 17.3 seconds. I used a program called Audacity and sped or slowed the time of the tracks accordingly until it was where I wanted it.

As far as the smaller, intro track, this was much harder as the amount of track time that I had to play with was shorter. In the end, the intro track had to be slowed more than the other. I found this acceptable because the speed of the track, for me, indicates the level of aggressiveness and attention from the player and having the slower track play before the ball is plunged, then once the game starts, the faster track plays, feels right to me.


Here is a crappy video also illustrating the game playing to demonstrate some of the music. By the way, I no longer own this pinball machine. It was sold some time ago so I will not be working on this anymore. For those of you interested in changing your game sounds, I highly recommend it. It's a lot of fun!