(flowplayer module removed)
Game objectives
- Collect 12 artifacts and defeat the final boss to reach the game credits
- Takes no damage
- Manipulates luck
- Makes entertainment and speed tradeoffs
- Emulator used: DesMuMe 0.9.6 with Advanced Timing disabled
Game description and overview of levels
Adapted from the
Wikipedia entry: Metroid Prime Pinball is a pinball video game themed after the Metroid series. The game uses the graphical style and various story elements from Metroid Prime and uses the basic mechanics of pinball, along with typical pinball items. New mechanics are introduced, such as wall jumping and the ability to fire weapons. The Nintendo DS's touchscreen can be nudged with a finger to alter the pinball's trajectory while in motion. The game consists of six pinball tables, each inspired by a different area of Metroid Prime. Each table is shown across both screens of the Nintendo DS.
The game initially offers two "adventure" tables: Pirate Frigate and Tallon Overworld. After each Adventure table is completed a new Boss table is unlocked: Phendrana Drifts and Phazon Mines. To complete the game twelve Artifacts must be collected which are prizes that are awarded after completing objectives such as winning minigames (modes) or beating bosses. Once having acquired twelve Artifacts, the player is granted access to a table called the Artifact Temple, which places six balls on the table at the same time. To complete the table, twelve different targets must be hit with the balls while they are bombarded by attacks from Meta Ridley, one of the antagonists of the Metroid Prime series. Upon completing the Artifact Temple, access is granted to the final table, Impact Crater. After the player defeats the Metroid Prime creature on the Impact Crater table, the game rolls the credit sequence and subsequently unlocks a higher difficulty level, Expert mode (which contains harder enemies but no additional content).
Game mechanics
Frame limitations: Like other console video pinball games there are a limited number of possible shots, or to say that differently if the ball is moving quickly across the flipper and the goal is to hit a specific ramp there is a high probability that there will not be a frame on which activating the flipper will cause the ball to successfully make it up the ramp. In some cases certain shots can't be made even when nudging is employed (described below).
Flipper behavior: Holding the flipper down for three frames as opposed to only one frame can have a significant impact on the velocity (literally speed and direction) of the ball. However, the physics simulation doesn't take into account effects that can be seen on a real pinball machine such as dead drop stops and true preservation of inertia; this game does a better job than some at it but it's not perfect.
Nudging: The table can be moved underneath the ball. Swiping the bottom screen from right to left causes the objects on the playfield to move toward the left. There is no tilt mechanism on the game so the nudging ability can be used to make shots that otherwise wouldn't have worked to be possible.
Bombs: True to the Metroid series it is possible to lay up to three bombs on the playfield at a time; running over a bomb that has been set causes Samus (i.e. the ball) to jump in the air while generally preserving the previous velocity, sometimes over playfield components or enemies. Bombs can also be used to damage enemies.
Level elements: Various objects in the game can have a significant impact on ball velocity. For instance, during Phazon Multiball the game duplicates Samus into a red and a blue ball (that has got to be an out of body experience but I digress). In this mode if the red ball hits a blue Phazon the ball will be violently ejected at high velocity. Some creatures deflect the ball when hit (such as Triclops) while others are squashed by it (Parasites and Burrowers).
Lag: Lag usually isn't influenced by player actions, or at least not ones that the player has any ability to avoid - some animations such as collecting an artifact cause a couple of lag frames regardless of what's on the screen but the artifacts must be collected to complete the game so it's generally unavoidable. Lag can be caused by nudging the table but this can usually be avoided by nudging on different frames.
Separated screen: This typically has no impact on game mechanics but it's worth noting that the game is designed to take into account the screen separation between the top and bottom screens on the DS. Action can and does take place in the space between the screens, such as being able to drop bombs on enemies that can't even be seen. The screen separation / border is 48 pixels, per Flygon.
I opted to work through the tables in the order of Pirate Frigate -> Phendrana Drifts -> Tallon Overworld -> Phazon Mines. There's a fair amount of discussion about the best possible "route" or order of tables and modes; additional information can be found under the Potential Improvements section.
Section by section notes
Pirate Frigate:
Completed modes:
- Parasite Purge
- Walljump
- Space Pirate Panic
- Metroid Mania
- Phazon Multiball (done at the same time as Metroid Mania)
It is not possible to continue to another table while multiball is in progress so one of the two balls was forcibly shoved STDM directly before exiting the level. This level ends with two uncollected artifacts; on all levels after each mode is completed an artifact symbol appears on the bottom screen but in this case two artifacts are not yet collected until subsequent levels.
Phendrana Drifts:
Completed modes:
The power bomb was collected on this level and used against Thardus to make the battle go faster. I attempted to luck manipulate the random award spinner on the upper left into giving out a power bomb as an award but I was never able to do so.
Tallon Overworld:
Completed modes:
- Burrower Bash
- Triclops Terror
- Metroid Mania
- Phazon Multiball (done at the same time as Metroid Mania)
- Hurry-up award (triggered while in Phazon Multiball but not collectable until it's over)
This was the last opportunity to pick up the remaining Artifacts to reach 12 Artifacts total after completing the Phazon Mines table boss. This unfortunately meant that Metroid Mania and Phazon Multiball were again performed simultaneously but luckily the two look very different. Through a fair amount of trial and error I was able to manipulate one of the metroids into dropping a power bomb which I put to good use against the Omega Pirate.
Phazon Mines:
Completed modes:
Missiles are collected on this level. The poor Omega Pirate never gets a chance to shoot.
Artifact Temple:
At the beginning of this stage the ball is launched nearly but not quite far enough to reach the target on the top screen that must be hit to start the Artifact Temple 6-ball multiball. I tried everything I could including bombs to get up there on the initial launch but without success. Update: Mothrayas has noted that he has successfully gotten the center target to stick in realtime so perhaps a different set of inputs leading up to this level would make it possible.
There are essentially three waves - as balls are captured by the waiting targets the number of balls in play drops. When only one ball remains in play the targets sink into the floor or walls and new balls are launched into play. Ridley pelts the area mercilessly but no balls were harmed in the making of this TAS. Please, never quote me on that.
Impact Crater:
The Force Ball is collected on this level. Fighting Metroid Prime wouldn't be nearly as interesting without them as they do an obscene amount of damage although the ramp to activate the Force Ball is very steep and somewhat difficult to navigate. Avoiding damage on this level was incredibly tricky. Samus does not take any damage when in combat mode and I had a full compliment of missiles so I was able to do some decent damage while camping out in combat mode. Two final hits from the force ball were enough to take out Metroid Prime's second form which triggered the game credits. Awesome.
Potential improvements
There are a very small number of speed and entertainment tradeoffs - for instance, in the Impact Crater I chose to wait to fire the final missile during Combat Mode (an action which immediately ends the mode) for a few frames in order to ensure both metroids on the table were destroyed prior to firing the final shot. While the number of frames traded for entertainment was minimal I feel the disclaimer in the run objectives is warranted.
There are a few potential improvements such as taking different routes and removing the constraint of "takes no damage".
Alternate routes:
Mothrayas proposed this potential route:
Tallon Overworld
- Phazon Multiball (1)
- Burrower Bash (2)
- Triclops Terror (3)
- Metroid Mania (4)
Phendrana Drifts
Phazon Mines
Pirate Frigate
- Parasite Purge (power bomb) (7)
- Space Pirate Panic (8)
- Metroid Mania (9)
Other artifacts, can be collected in any of the major areas (not determined yet):
- Wall Jump (10)
- Hurry Up (11)
- 4-Way Combo (12)
I opted to do Pirate Frigate first because that was the first level listed on the selection screen (all in the name of saving two frames although I'm not sure if it was worth it
:). One potential reason Mothrayas brought up for doing Pirate Frigate after Phendrana Drifts would be to get the power bomb to use in the Parisite Purge but I opted to use the power bomb to defeat Thardus quickly instead. I was unable to luck manipulate the random award in Phendrana Drifts to get another power bomb that way but I *was* able to luck manipulate a metroid into dropping one in Tallon Overworld at the expense of two lag frames due to nudging. With that said the route I chose may or may not be as good as Mothrayas's proposed route.
There are essentially an infinite number of "routes" or orders of levels and modes so a truly optimum route will likely take extensive testing.
Taking damage: While being damaged isn't typically beneficial in the game there may be points where it would have saved a few frames through damage boosting.
Memory addresses
- Address: Function
- 023FFC3C Frame counter (4 bytes unsigned)
- 02099900 Vertical Position (4 bytes unsigned)
- 020998FC Horizontal Position (4 bytes unsigned)
- 0209991C Vertical Speed (4 bytes unsigned)
- 02099918 Horizontal Speed (4 bytes unsigned)
- 0209E7A9 Timer for purple safety net (1 byte unsigned)
- 023C787D Boss damage (inconsistent when boss is low on health)
Encodes
None yet; Flygon is working on an encode at this time, however.
Thanks
Props go to:
- Mothrayas for his experience from making an initial WIP some time ago and for sharing his experience with the game.
- jlun2 for the memory addresses
- Flygon for offering to encode the run with the proper screen separation
- ...and several other folks on IRC who offered their opinions on the run while it was still gestating
Flygon: Added Flowplayer module.
Samsara: What if... No? (removed defunct flowplayer module)