I believe it's 5 times and suicide should work between tries so you don't have to redo the level. You'll need full energy tanks, all of the hearts, AND all four upgrades. Best of luck.
5 times, 5th time is when hadouken capsule is there. You need to have all upgrades for that 5th visit and have full health for the capsule to be there. If you don't have all upgrades or full health for the other visits they will still count, but last visit has to have both those requirements met.
Also, if you need to grind for lives to get above 5, there's a bat towards the beginning of the level that will drop lives if it drops anything. I imagine you knew this already, but jic....
You need all items, but IIRC the energy tanks themselves don't have to be full. Also, that's why Caleb and Tiki get the 1up in chameleon's stage with the cutter. You only need one extra since one visit you don't die (The time when you actually beat the level). Hope that all makes sense.
You need to see the edge of the screen behind the health capsule for a visit (in other words until the screen can't scroll right anymore).
For reference:
This is the bare minimum you can do to get a visit, but this is something you'd only get with TAS, otherwise you can still get really good visits die without having to land on the ledge before the door. Rule of thumb is if you saw the health capsule, you probably got a visit.
Blue = Megaman X's vulnerability White = Megaman X's Projectiles Red = Enemy Hitboxes/Hurt boxes Yellow = Enemy Projectiles/Pickups (life etc...)
Known issues:
Sometimes enemy projectiles or their shields don't show up, because there is another way the game sometimes stores memory and for some reason has these box values hard coded despite being the same enemy type from other stages (shield guys at hawk dude's stage is one example, their shield doesn't show).
Sometimes a large line is displayed on screen because the game didn't flush the object from memory, doesn't happen often and it's easily ignored.
EDIT:
I fixed the issue with the 1st boss's hitbox on his punch not showing up and possibly very few other enemy attacks. I have to set a breakpoint because there are 3 different box pointers that are used within the same frame! So I made a toggle called 'Draw_instantbox' which is defaulted to false. If you want to see his hitbox on his attacks, toggle this to true, but it has a side effect during some stages/enemies of drawing boxes that aren't valid, so if you don't see a box for an attack a boss does, try toggling this on to see if it gets displayed.
Here's an example with it toggled on:
Normally you can't see that fist attack box without the 'instantbox' toggle.
I'm pretty new to LUA and RAM searching. How do you typically find the height and width values for the different objects? I was working on a hitbox script for Ninja Gaiden; tracking positions is easy enough, but I could never actually find the bounding boxes for objects, as I'm guessing it's all pretty much hard coded. Glancing over your script for Mega Man X, it looks like that the game actually puts an object's left, right, top, and bottom into memory so you can see each side of the AABB change value. Any tips?
In megaman X, none of the boxes are in memory. Every object structure had a pointer at [Object base] + 0x20, that pointed to ROM data which contained the box bounderies. NES games can be difficult to find hitboxes with because a lot of the time the bounderies are indeed hard coded but not only that, sometimes the data is located inside of the mapper ROM or worse, there are hard coded assembly instructions that contain hitbox bounderies as constants located inside the NES's mapper ROM (Journey to Silius does this).
You need some assembly knowledge of the system your working with to find them. I basically start by finding player x, y, life, camera x, camera y, enemy x, enemy y. I then do an assembly trace and get hit by an enemy setting a breakpoint when the player life is written to. Then work my way backwards to determine what caused the hit, and put all the pieces together.
I'm pretty new to LUA and RAM searching. How do you typically find the height and width values for the different objects? I was working on a hitbox script for Ninja Gaiden; tracking positions is easy enough, but I could never actually find the bounding boxes for objects, as I'm guessing it's all pretty much hard coded. Glancing over your script for Mega Man X, it looks like that the game actually puts an object's left, right, top, and bottom into memory so you can see each side of the AABB change value. Any tips?
Just noticed you asked a question here I didn't answer.
For finding X,Y, sometimes it's easy, sometimes it's a pain. Basically start a search, then move the character right, try a value has increased, and then jump straight up and down (assuming this doesn't move the char left or right) and while in mid air, pause the emulator and do a "unchanged value" search. Then just keep moving him right and do an increase, move him left and do a decrease until you narrow it down enough to where you can test the small list of addresses by changing the numbers in memory and seeing if it moves the character, if it does, that's the correct address. Sometimes moving right will decrease the value so try doing the opposite approach (move left, search for increase, move right search for decrease, etc...)
When it's not so easy, sometimes the game uses other calculations to save memory space, or multiplies one value to get the final x value. These sort of things usually just take experience to find. Sometimes you'll also end up with values that are just copies in memory that hold the X value, but don't affect the characters x position at all.
Erm. So I thought this was common knowledge but then it occurred to me that it might not be. In that case, here's how to fight Crawfish (MMX3, ofc) in 100% route:
I honestly don't remember how I found that. I don't remember seeing a video of it, but at the same time I don't remember stumbling upon it. :/ So yea, it's highly likely it's been known.
Blue = Megaman X's vulnerability White = Megaman X's Projectiles Red = Enemy Hitboxes/Hurt boxes Yellow = Enemy Projectiles/Pickups (life etc...)
Known issues:
Sometimes enemy projectiles or their shields don't show up, because there is another way the game sometimes stores memory and for some reason has these box values hard coded despite being the same enemy type from other stages (shield guys at hawk dude's stage is one example, their shield doesn't show).
Sometimes a large line is displayed on screen because the game didn't flush the object from memory, doesn't happen often and it's easily ignored.
EDIT:
I fixed the issue with the 1st boss's hitbox on his punch not showing up and possibly very few other enemy attacks. I have to set a breakpoint because there are 3 different box pointers that are used within the same frame! So I made a toggle called 'Draw_instantbox' which is defaulted to false. If you want to see his hitbox on his attacks, toggle this to true, but it has a side effect during some stages/enemies of drawing boxes that aren't valid, so if you don't see a box for an attack a boss does, try toggling this on to see if it gets displayed.
Here's an example with it toggled on:
Normally you can't see that fist attack box without the 'instantbox' toggle.
Enjoy!
how did you get such smooth sprites in mmx?what's the filter?
Wow big bump to this thread. First off here's a method I made to do X3 100% Supreme Elevator Skip using the simplest techniques.
Next I have a question that deals with refights in X3 100% (z saber is gotten). I have full Hyper C entering Doppler 3. My current method is to manually charge to z saber on blast hornet first and then finish it off with Hyper C. After that fight I then go to neon tiger and use Hyper C on him 2x (when using Hyper C neon tiger does not attempt to block any of the shots...so he is best to use it on). After this I try to do the remaining fights so that I hit them with z saber as soon as I can but still take damage as I'm charging up. Using this method I have to pick up the health pellet before the doppler door. I should have Hyper C filled during doppler fight as his damage output is great. Is this the best method (using Hyper C 3 times) or is it worth it to use Hyper C 4 times and get a health drop from that health/energy dispensor?
There is however a run of this done by a Japanese runner on nico that uses ePSXe1.7.0 which is an emulator and has much faster load times (about 1 minute or so). Time was 42:44. So you be the judge of who's time is faster.
While this is bumped, thought I'd share a glitch found a few months ago (I think) in Ground Scaravich's stage. This clip is from a race I did on SRL, but it basically skips all of the hologram totems in Ground Scaravich's Stage. Any future runners of X6 might find this useful, although this does result in skipping Speedster.