Introduction
Immaterial and Missing Power, or IaMP, is a rather odd fighting game based on the Touhou, or Shrinemaiden Shmups series. While ZUN typically does all the programming for the shooters, he turned over the production of IaMP to Tasofro, the makers of Eternal Fighter Zero.
What Tasofro did was make a fighting game that recalled elements of shmup play. IaMP tends to confuse most players of traditional fighters on first play, as it plays nothing like a traditional fighter.
Game Mechanics
Controls
IaMP uses four buttons and one joystick.
In general the buttons follow this pattern:
- A, used for weak melee attacks close up and projectiles at long range.
- B, used for strong melee attacks close up and projectiles at long range.
- C, used for projectiles at all ranges.
- D, used for dashing/grazing, hyper-jumping, and air dashing.
Yes, you read that right, at long range ALL your normal attack buttons shoot projectiles.
Directional command notation is as follows:
.- up (u) | up+back (ub) - 7 8 9 - up+forward (uf) back (b) - 4 6 - forward (f) down+back (db) - 1 2 3 - down+foward (df) | `- down (d)
Note: These numbers can be easily referenced by looking at your keyboard "numpad". Think of it as a joystick/controller that is facing to the right. "5" is used to signify "neutral".
Universal Maneuvers
These are techniques that all characters have access to.
- Walk Towards: Hold 6
- Walk Away: Hold 4
- Dash/Run Towards: Tap 66 or 6D
- Dash Away: Tap 44 or 4D
- Crouch: Hold 1, 2, or 3
- Jump Up: Tap 8
- Jump Towards: Tap 9
- Jump Away: Tap 7
- Hyper Jump: Tap 1, 2, or 3 then 7, 8, or 9, or 7D, 8D, 9D
- Airdash Towards: Tap 66 or 6D in the air
- Airdash Away: Tap 44 or 4D in the air
- Air Recovery: While in the air, press any button and a direction after hitstun ends
- Bomb: Tap 22C
- Spellcard mode: Tap 22D
Meters and Mechanics
Life Gauge
↓1P Side Gauge ↓2P Side Gauge
File:Iamp system life1.jpg
↑1P Side Face & Name
↑2P Side Face & Name
The bar above the character portrait is the life gauge.
Like regular fighting games, hitting your opponent will decrease their life gauge.
Once you reduce their life to 0, you win the round and the first spellcard they chose becomes inactive. They now automatically are able to use their second one.
Basic Strategy
Watch your spirit gauge. Throwing too many random consecutive projectiles is not cost effective against an opponent who knows how to graze well and leaves you open to being guard broken.
Use bombs to get out of tight situations like corner traps or to regain momentum. Hitting enemies with melee attacks while they are throwing projectiles frequently gives you bombs back.
There is almost NO real wake up game. The roll once you are knocked down is pretty invincible and moves quite a distance. That being said, it is almost always better to be in the air when someone is getting up so you can chase down where they roll very quickly with dashes.
Try to go into spellcard when you are low on life, but not when you are being repeatedly attacked, as your activation can be interrupted. A very common tactic is to bomb or knockdown an opponent, then go into spellcard.
Advanced Strategy
Superjump Cancelling
Characters
Playing Immaterial and Missing Power Over the Internet
Even though Internet play is not natively supported in IaMP, people have hacked it into the game -- and it works extremely well (partially due to the fairly well done nature of the hack, and partially due to the nature of IaMP working better in an online enviroment than most fighters). The implementation is nearly identical to how XBand worked way back in the SNES/Genesis era, from the direct peer-to-peer connections to the menu hijacking to the random desynch issues.
Performance is quite good: 120ms or under gives you 60fps with little input lag most of the time, even with spectators. This game is playable on a conentinal connection, and even international matches are possible (if you are willing to tolerate some lag and Japanese ownage). Tested distances: New York to California (60fps, with spectators), New York to Sweden (60fps, however with one spectator frame rate dropped), California to Singapore (~40 fps).
To do this, you need to download the latest version of Caster Netplay (not listed or hosted here; the program is constantly updated) -- the page is in Japanese, but all of the downloadable zips are timestamped. Copy the executable from the zip file into the folder where IaMP was installed, and run the program. (If you have a bunch of random files in your zip file, you downloaded the source). On startup, you will see the following options:
Menu Explanation
<Startup> 0 : Exit 1 : UDP.7500 2 : UDP.0 3 : Specific Port Input > _
- Selecting option zero exits the program (dur).
- Selectiong option one sets the port to look for incoming connections to UDP port 7500.
- Selecting option two sets the port to look for incoming connections to a random UDP port. Not recemmonded, as groups of players typically agree on a specific port (or range of ports) to connect to. This is more useful in an LAN enviroment, where you may have multiple games going and a fixed port would cause collisions.
- Selecting option three allows you to specifiy the port. Useful if there is an alternate port defined because one player is having issues with their firewall or routing.
If you are running the alternative version of Caster, you will [i]not[/i] have to make a choice here; it will just take you to the main menu.
Once you have selected your port, the main menu appears:
<Menu> Escape key will take you back to here. 0 : Exit 1 : Wait for access 2 : Try access to UDP.7500 3 : Try access to specific port 4 : Broadcast 5 : Get Information 6 : Try access ( Tough ) 7 : Standby 9 : Debug ( 127.0.0.1 ) Input > _
- Option zero exits the program (dur again)
- Option one puts the program into host mode, and it will await a connection.
- Option two will try to connect to a given IP at UDP port 7500.
- Option three will try to connect to a given IP at a UDP port you specify.
- Option four will put the program into host mode, but will automatically start the game and put you at the character select screen. When someone connects, they too will be dumped directly into character select.
- Option five will query a given IP and port, and will return the latency to the server and the state of the server (if a Caster host is actively being run).
- Option six will try to connect to a given IP at a given UDP port, but will not time out after a couple of seconds. It will keep trying to connect until it either connects to something or your computer blows up (or you tell it to stop trying by hitting Escape).
- Option seven asks for a IP and port to connect to and... does something.
- Option nine establishes a loopback connection, for testing purposes. Only useful to make sure everything works, or if you are dicking with the source code.
Hitting escape at any point while playing IaMP will bring you back to this menu (and will exit any game in progress).
Caster will not resolve hostnames! You must type in the numeric IP addresses when asked. If you need to convert a hostname to a numeric IP (and have no idea what this is referring to), use the DNS lookup tool on [dnsstuff.com]. Leave the dropbox as its default (A); the result you are looking for is the first number listed in the table.
Once a connection is established, the server will see:
<delay> About XXX.X[ms] delay exists in a round. ( DelayTime[ms] = 16[ms] x Input ) Input > _
and the client will see:
<Delay> Now waiting for buffer margin value.
The client will have to wait while the host picks how many frames input is going to be lagged by. The higher the number, the more delay there is between when a player hits a button and when their character takes an action in game. The "about xxx.xms delay exists in a round" text is telling you what your average ping is between you and your opponent. The server suggest that the number of frames to delay should be the ping time listed divided by sixteen, which will guarantee no stuttering (assuming network performance remains consistent). You can experiement with lower-than-suggested values; this will improve responiveness at the cost of random stuttering (as the program locks the game up for a split-second to maitain sync). If this value is too low or the latency is too much, the game will desynch and everything will go to pot.
Quickstart: To Host a Game
Quickstart: To Join a Game
Quickstart: To Observe a Game in Progress
Caster allows people to observe games in progress!
Troubleshooting
Please stop downloading all of your illegal music and toddlerkon while playing. IaMP is a latencey-sensitive game, and having a saturated Internet connection will quickly degrade the quality of the experience to trash.
Make sure you are configured to be playing on the player one side. The program automatically remaps you to player two when necessary, so you do not have to worry about it.
References
For Dicussion
- Doujin Fighter Forum at dustloop.com
- World of Eternity
- Maidens of the Kalidoscope (Touhou-general)
- The IaMP section of the TouhouWiki. Has a lot of non-gameplay specific information -- character backgrounds, storylines, etc..
- Eternal Romanica (has been since shut down by the feds for lolicon distribution)
Useful Downloads
- The latest version of Immaterial and Missing Power, currently 1.11s. Select one of the links associated with the box labeled "東方萃夢想 パッチ Ver.1.11".
- A score file that will automatically unlock everything in Immaterial and Missing Power. Just copy it into the main directory, overwriting your old file.
- Caster Netplay, a tool that allows one to play Immaterial and Missing Power over the Internet. See Playing Immaterial and Missing Power Over the Internet for more information. Source code for the program is also available. Some people perfer using an alternative version, which forces some defaults in terms of settings (to make pairing up with other players easier. These versions have tended to default to running on port 78.