Want to be an editor? Request an account by joining the SRK Wiki Discord and follow the instructions in #server-info
Immaterial and Missing Power
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.
IaMP uses four buttons and one joystick per player.
The buttons are assigned as follows:
- 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".
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
- Health bar: Shows how much health your character has left. Do not let this run out. Refer to the section on the section on the life gauge for more information.
- Regainable health: Shows how much health you will recover when you activiate your spellcard. Refer to the section on the section on the life gauge for more information.
- Combo counter: Shows how many hits have been done in the current combo, the amount of damage listed (as xxx damage), and the damage scaling of the next hit (as xxx power -- divide by 1000 to get the damage reduction value).
- Magic stock: This is in two parts -- a number (representing the number of times you can use your spellcard) and a meter (when it fills, it resets and increments the number by one). Refer to the section on spelltrance for more information.
- Spirit gauge: Shows how much spirit your character has left. Refer to the section on spirit for more information.
- Bomb counter: Shows how many bombs your character currently has available. Refer to the section on bombs for more information.
- Character state: Shows the current state of the character -- either normal (in blue kanji) or overdrive (in red kanji). This affects the spellcard available. Refer to the section on spelltrance for more information.
The bar above the character portrait (label #1) is the life gauge. Like regular fighting games, hitting your opponent will decrease their life gauge. However, a portion of the damage done before a character activates their spellcard can be regained, and is represented by the red bar that extends beyond the normal health bar (label #2). Once you reduce their life to below zero, you win the round and the first spellcard they chose becomes inactive. They are now forced to use their second chosen spellcard for the following rounds.
The maximum heath is 10000.
Chip damage will never end the round -- you can only chip someone down to zero health.
In the instance where both players are knocked out at the same time, the round is considered a draw and will be replayed.
Spirit (and the Spirit Gauge)
Spirit is a limited resource that is used up whenever you perform certain actions. These actions include:
- Throwing projectiles.
- Using special moves and spellcards.
- Blocking projectiles.
- Invoking autoguard.
- Blocking in the air.
If you try to do any of these actions and do not have sufficent spirit to cover the cost of the action, you will empty the meter and will become spirit drained. In this state, your spirit restores at the normal rate and you can not perform any of the aforementioned actions until you have restored all of your spirit (even if you would have normally
Spirit normally regenerates over time once you do not use any spirit for a short amount of time (about a second). Gaining spirit tiles (by hitting your opponent while they have projectiles on screen or knocking them down) will accelerate the regeneration, and hitting your opponent with a defensive bomb restores all of your spirit.
Grazing is the act of nullifying projectiles with a dash or superjump. Any dash will graze through projectiles, and all projectiles and most supers can be grazed through.
Some projectiles can be grazed through but will not be removed once grazed. This typically happens with beam-based attacks and persistent objects (like Alice's dolls, Reimu's barriers, etc.).
Grazing is a fundamental part of Immaterial and Missing Power, and it is strongly suggested that one reads the section pertaining to movement for a better understanding.
Spelltrance is the state you enter once you invoke your spellcard. The act of activiating a spellcard is done with 22D, and doing so takes quite a bit of time (about 60 frames), but once the spellcard is activiated your character is absolutely invincible for the rest of the animation.
Entering spelltrance does two things: Your character instantly restores any recoverable life (shown as a dark red in the life bar), and your spellcard-specific move becomes available for a limited time (via 236D (and 214D if applicable)). This time is shown as a number counting down on the upper-right part of your screen, right below your health bar. The amount of time you have to use your spellcards is directly proportional to how much magic you had when you activiated the spellcard. You start with ten seconds, and for every point of magic obtained, you are given an extra one-onehundreth of a second (so 1000 magic points = 1 spellcard usage = 10 extra seconds). You can still gain magic while in spelltrance, but any gained points therein will not extend spelltrance.
Autoguard is activiated whenever you are in a valid blocking state on the ground, but happen to be blocking at the wrong level. For example, if you block a move that hits high while in crouching block, autoguard will activiate and you will block high -- at a cost of some of your spirit. You will know autoguard was used when the opponent has spirit left and the block spark is red (normally it is blue).
There are some moves that if blocked the wrong way will automatically drain all of your opponent's spirit, and as such they can not be autoguarded (they get guard crushed if they try).
Bombs come in two types: Offensive and defensive.
Offensive bombs are done when a player attempts to use a bomb during the recovery of any ground-based attack. The bomb will cut the recovery of the move short and activiate on its own. If your opponent is in hitstun when the bomb hits them, they will be launched up in the air (and they can not tech.) This is used to either extend combos (as this will allow you to launch off of moves that normally do not launch) or to make unsafe moves safe on block.
Defensive bombs are done whenever a player tries to bomb out of a neutral state or during blockstun on the ground. A player is invincible from the first frame of the startup of the bomb until the bomb itself actually hits, and as such it will hit opponents out of any move that do not have their own invinciblity. However, moves with invinciblity frames can still beat a bomb out (as the period from startup to activiation is very short), and a completely whiffed bomb can be punished by any attack (the window is fairly short, however).
Bombs can be blocked (but confer no advantage or disadvantage on block), and do not be deceived by the bomb flash -- it's actual range is quite short (about a character width). You can carry a maximum of two bombs, and you start matches with two bombs. The number of bombs you have does not reset from round to round -- instead, you gain extra bombs every three times you get spirit tiles from your opponent. (You will know this has happened when one of the tiles is a green B instead). If you already have two bombs, the gained one is lost.
Immaterial and Missing Power is much more momentum-based fighter than your typical fighter. Damage potentinal is relatively small (relative to how much effective life characters have vis-a-vis most other figthers), and initative is so overbearing that the times where a cure solution to turn the tides during a confrontation where you do not have the advantage is uncommon. Fundamentally, the way the game works is to spam bullets and force one of two results: induce a block, or induce a dash. From there, you defeat either option by using meele attacks or guard crush attacks to deal damage, and then the process repeats itself upon wakeup. Of course, the game is not that simple: you have to nullify bullets with your own, graze creatively so you don't get caught by anticipation melee, and force the momentum in your favor.
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 (spellcard activiation has about 60 frames of startup). A very common tactic is to bomb or knockdown an opponent, then go into spellcard.
Mastering the fundamentals of how dashing and jumping works is vital to learn. Dashes have a defensive use and an offensive use (on top of the positioning they offer).
Their defensive use is obvious -- while you are dashing (and for the entire duration of the dash), you can not be hit by any projectile in the game. However, while you are dashing, you can not block. So if someone gets close to you and decides to kick you in the face, you are getting kicked in the face.
Their use on offense and keeping pressure up is not nearly as obvious, though. Most projectile attacks in IaMP can be cancelled into a superjump (for ground-based moves) or a dash (for air-based projectiles) several frames before you can do anything else (including block). Doing the cancel is easy -- you just superjump or dash like you would normally, and the recovery of the move is automaigically cut short. A superjump or dash cancel has been successfuly done when you see the character leave a blue shadow trail of sprites behind them during the jump/dash. A player can get many more projectiles on screen by shooting one, dashing, and then shooting again instead of just standing there shooting. There is also the added defensive benefit of the dash, preventing a stray bullet (or a hundred of them) from hitting you and turning your newly shot projectiles into meter for your opponent. This has a profound effect on the game, and is pretty much required for any character to be played properly.
Keep in mind your possible vectors: from a ground move, you can dash in five directions (back, up-back, straight up, up-forward, and forward) on the ground, and only two in the air (straight forward and straight back). Ground dashes can be cancelled into superjumps at any time (but not into another ground dash), and you can cancel an air dash into another air dash. However, you only get two air dashes once you get into the air -- once you have used them, you can not do it again until you hit the ground.
- Reimu Hakurei
- Marisa Kirisame
- Sakuya Izayoi
- Alice Margatroid
- Patchouli Knowledge
- Youmu Konpaku
- Remilia Scarlet
- Yuyuko Saigyouji
- Yukari Yakumo
- Suika Ibuki
- Hong Meirin
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:
<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, running a local game. This is intended for people who want to broadcast a game of Touhou to remote viewers where both players are local.
- 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), or you have no idea what your IP address is, whatismyip.com will tell you what your IP address is.
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
- Open the program
- Hit 1 to host on UDP 7500, or hit 3 to pick a specific port.
- Hit 1 to put the program into host mode.
- Give your IP to someone who wants to play and wait for them to connect.
- Set the number of frames to delay input (lower is more responsive, but requires a better connection. A good baseline is to start at the ping time divided by 16).
- The game will now start.
Quickstart: To Join a Game
- Open the program
- The port you choose does not matter, but it DOES need to be available.
- Select 2 (if they are running on port 7500) or select 3 (if they are running on another port).
- Enter the IP and port number as asked.
- Wait for the game to start.
Quickstart: To Observe a Game in Progress
Caster allows people to observe games in progress! When you connect to a host that is already running a game, you will instead observe it.
- Open the program.
- Pick any port. It does not matter what, but Caster must be able to open it.
- Select option 2 (if on port 7500) or option 3 (if host is on another port).
- Enter the IP and the port number of the host as asked.
- You will be told that there is a game in progress. Hit option 1 to observe the game.
- Watch little girls get shot in the face.
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.
If you see the intro to IaMP when Caster throws you into the game, it will not work. No one knows why this happens or how to fix it. Try a clean install of the game, make sure you are running the latest version of both IaMP and Caster, and wave some dead chickens and virgin schoolgirls at your computer. This may or may not sovle your problem.
Your firewall software or Internet router may be giving you connection issues. Solving this is a problem that is way beyond the scope of this wiki, but there are resources available on the Internet. These links may solve your problem: Port forwarding on a Linksys router, port forwarding on a Netgear router, or dealing with firewall issues for Internet games (this is directed torward Gamespy Arcade, but the information is applicable for any Internet-based game). Besides, if you are smart enough to play IaMP and to be reading this, you are smart enough to figure this out. :p
- IaMP Wiki Has strategies and attack information for almost every character.
- 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)
- 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 79.