According to the game itself, the objective is to "Bring the android to life!". My specific goals were:
- Aims to max out every game counter (Power Up value, bumper value, Android Millions, bonus multiplier, AI, Physical Systems, and Physical Systems tests) and bring the android to life
- Manipulates luck
- Makes entertainment and speed tradeoffs
- Uses default angle settings
- Emulator used: JPC-RR r10
Epic Pinball Shareware was widely distributed in the mid 1990's and consisted of a single table named Android (although the playfield art reads Super Android in versions after 1.1). The Android table was arguably the most complete and entertaining table in the Epic Pinball series. As was often the case at the time, the authors released the best they had as shareware and heavily promoted the full game. The shareware version contained many well-known cheat codes and several mostly unhelpful glitches. The general difficulty of the game and the excellent graphics and sound gave the game a very high replayability factor for being a free-as-in-lunch game. The game still holds a lot of nostalgia for many PC users of the time.
Because this is a shareware game it can be freely downloaded from a number of sources. This run was created with shareware version 2.1 found at the excellent http://www.classicdosgames.com
site on the Epic Pinball page
(and also mirrored here
) with an MD5 sum of 5ff1e90b8225c330c010ea76427008d6 (the primary executable PINBALL.EXE has an MD5 sum of caf0205c1f92dc7275227ffbdedd98ad). I have confirmed that this run syncs with both the 2.1 and the 2.0 version of the game but it will not sync with version 1.1 as that version lacks the left ramp sinkhole and accompanying diverter. The actual disk image I created for JPC-RR can be found at http://sonic.net/~ac/tas/EpicPinball
Emulator notes: This run was created with JPC-RR version r.10. JPC-RR cannot be played in real-time with any currently available computer hardware and version r.10 does not have a quick way to output the video to watch it in real-time. This means that the only way to truly see the result of a run is to dump the video which also happens at a fraction of real-time and thus is very time consuming (it was at a minimum a three hour process using my fastest system). Also of note is that DOS samples the keyboard up to 250 times a "frame" making sub-frame manipulation possible and in some cases necessary. To say that differently, attempting a TAS in a DOS environment with JPC-RR has unique challenges and advantages in comparison to console runs.
Game physics: The physics simulation used in the Epic Pinball series has some unusual characteristics.
- The balls themselves seem to have an internal energy - if you trap and hold a ball with the flipper the ball will continue to move on its own, slowly rolling up the inlane and then back onto the flipper before repeating ad nauseum.
- Momentum is not properly calculated when the ball collides with objects at high speeds which is primarily visible when the ball is bouncing back and forth between the slingshots as the ball's speed can suddenly drop significantly.
- The ball sometimes comes to a dead stop when nearing the apex of a ramp, typically when another ball is at or above the same level on the playfield. This is demonstrated once or twice during the run.
- When the ball is on or near the flipper and the flipper is triggered the ball's resulting velocity (literally speed and direction) is artificially limited to a small subset of possibilities. This above all else is the most limiting restriction as a shot that seems like it would be possible, well, isn't. The net result is that the run contains a lot of points where the ball is fired in a haphazard-looking direction in order to set up a subsequent shot. This is especially true when aiming for the far left Testing sinkhole, the left lane, and the far right Physical Systems sinkhole.
- The drop target collision detection is very poor. If the ball is at all traveling quickly the shot will not register making it very hard to hit them successfully leading to some very creative methods of backhanding the ball to the left side of the playfield.
- Balls frequently get stuck and copied in various different sinkholes meaning the next shot to that sinkhole doesn't take, although it does clear the copied ball out of the hole.
- If an exit sinkhole (such as the Power sinkhole which is the exit for the testing sinkhole) has a copied ball in it the next shot to the entrance sinkhole will not register.
- Occasionally shots fired at a sinkhole are immediately fired back out without registering even when there's no ball stuck in the sinkhole. This annoying behavior along with the stuck ball characteristic is very noticeable when playing normally outside of a TAS and can be very frustrating as there really isn't a great way to avoid it (these glitches nearly drove me to insanity when I was playing this game in the 90's).
- If a ball is transitioning from one sinkhole to another and another ball on the playfield is at the same height or higher the first ball may drop out of the sinkhole and fall completely off of the table. This is demonstrated a couple of times in the run although it isn't generally detrimental to the run.
- If multiball is in progress when a second multiball is started all balls in play may be instantly transported to the plunger lane and auto-fired; this may be a feature but it looks very unnatural.
- When starting multiball the view may get stuck at the bottom of the playfield; this can be cleared by showing the score and then re-hiding it. This is demonstrated during the second multiball in the run.
Game setup and configuration: The first time PINBALL.EXE is executed it runs through a series of several screens to set up the sound card IRQ, DMA, and fidelity settings. Luckily, this only takes a few frames to complete thanks to sub-frame keyboard entry. I opted to start the game without making any customizations to the angle (tilt level) controls meaning this run uses the default Normal angle setting. As soon as the game starts I removed the score display so more of the playfield was visible. Also of note is that about a third of the way into the run I adjusted the "tracking" setting to Slow; this has no impact on gameplay outside of altering the RNG but it does make it so the view doesn't jerk around as much which looks a little better when multiball starts.
Section by section notes
Completing AI: There are two major tasks to complete. The first is bringing up the Artificial Intelligence system and the second is bringing up the Physical System. The AI system is started by shooting the right ramp to link the computer to the android and then shooting the left ramp which prints text on the screen telling the player what action to perform to install the next AI. In some cases in this run the text is skipped to save time but the instructions usually boil down to "hit all ramps" or "hit all sinkholes". Installing the final AI scores the super jackpot and brings the android to life. This happens about halfway through the run and scores 100M points.
Completing Physical Systems: The Physical Systems sinkhole is on the far lower right side of the playfield and is enabled by dropping all three of the targets on the left side of the playfield. A two ball multiball is started when some of the physical systems are completed such as the right arm. Most of these multiballs are ended through creative displays of the various glitches in the game. A three ball multiball starts when the final Physical System, the Torso, is completed. (By the way, I can't possibly see how you could activate an arm before activating the torso unless you're dyslexic and watching the Black Knight from Monty Python but I digress... :)
Maxing all game counters:
- Power Up value: This is the center sinkhole. 10M is awarded when the power is Maxed out.
- Bumper value: This is accomplished by hitting the left lane which activates the center ramp which subsequently raises the value of the pop bumpers. I kept going until it stopped printing new bumper values on the screen.
- Android millions: This is accomplished by lighting up the red and white circle placed above the left slingshot by rolling over it and then shooting the left ramp. This maxes out at 9 million per shot. This is the shot that usually has balls drop out of it although it isn't the only place it can happen.
- Bonus multiplier: This is accomplished by completing the four rollovers above the pop bumpers and maxes out at 5x.
- Physical Systems tests: This can be done for each physical system up to level 5. I tested each physical system to at least level 1 and I tested the Torso, the final Physical System, to level 5 which awards 249M, the highest single award in the game. I show the score counter right before the final shot so the awarded value can be seen more easily.
Bonus count and ending: Take note that this run ends very abruptly. After completing the final Physical Systems test which is the final award needed I allow all of the balls to drain (OK, I actually force one of them to drain faster :) which allows the bonus count to complete although it's only on the screen for one frame. As soon as the bonus count is added up I quit the game, enter my initials, and exit the game completely to roll the credits (and advertisements). The time it takes to exit the game properly is minimal given the game length and I feel it is a much more natural way to complete the game but the run could just as easily be considered complete the frame the bonus is counted.
This run makes entertainment and speed tradeoffs as overly "optimal" play wouldn't have as much character, wouldn't show off as many glitches, and would require extensive luck manipulation which is non-trivial given the current state and speed of JPC-RR. Many segments in this run contain sub-optimal looking shots which are necessary to set up a subsequent shot based on the various physics restrictions (although some of these transitions could probably be improved in a future run). At some point in the distant future when a DOS emulator can run at full speed this run should probably be revisited as I'm positive being able to view the sequence of events in realtime would aid in reducing the number of transition shots without sacrificing entertainment. Also, despite the fact that it's not the highest scoring award in the game it may make sense in a future run to bring the android to life as the last task instead of halfway through the middle of the run.
I did a first pass encode of the final WIP (equivalent to the final submission) which used the wrong resolution and did not contain any info screen or TAS disclaimer; this is not the preferred encode but is currently still available thanks to the generosity of Grunt at Mediafire:http://www.mediafire.com/?9g104w5k2axknwy
. Note that I previously hosted the run on my own ISP but I have exceeded my 1G/month bandwidth limit so I've pulled that link for now.
Any point where a ball is glitching off of the table would be a good choice. The final bonus screen in the game or the final high score screen would both make good screenshots and would help to show the final score which is only visible for a couple of frames (Ilari's encode does have a hardcoded subtitle to show the final score, however).
More than anyone else Ilari made this run possible, both by creating JPC-RR as well as by supporting my initial efforts by fixing bugs I discovered in the development version of JPC-RR. I look forward to his future improvements in JPC-RR. Additional thanks go to Grunt and Undie who both stepped up post-submission to offer additional hosting for the encode.
: Since there aren't vocal opponents regarding how this movie ends, I'll accept it as is. Thanks everyone who provided feedback, and of course to dwangoAC for making this movie.
: I am about to publish Ilari's encode. Stay tuned.