Jump to content
  • Advertisement
Sign in to follow this  
Nate Hale

Mega Man Movement Vectors

This topic is 3126 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm making Mega Man 2 (NES) clone in SDL and I'm at the point where I'm tweaking his acceleration and speed vectors. I'd like to get these values as close to the original game as possible, but am having difficulty observing both the speed and acceleration vectors from the original game. I've tried capturing videos of my own gameplay and observing the pixels traveled over time as well as playing my clone simultaneously with the actual game, but it's still very difficult to observe. Is this information available anywhere? I've tried Googling "mega man movement speed" and such and couldn't find anything relevant. No doubt someone has tried this before. Maybe there's already an open source clone out there? Suggestions, advice and links would be appreciated. Thank you. EDIT: After asking around some more, a kind soul pointed me to this website: http://tasvideos.org/RockmanData.html It contains all the information I described =) thanks for your suggestions, everyone. [Edited by - Nate Hale on November 3, 2009 12:13:06 AM]

Share this post


Link to post
Share on other sites
Advertisement
If you want it to be perfectly precise, I'm trying to learn some 6502 Assembly, so I'd be interested in disassembling it and hunting out the code for the exact speed. I'll be on that anyway, though I'm sure someone will find the answer before I do.

Share this post


Link to post
Share on other sites
Quote:
Original post by Portugal StewI'm trying to learn some 6502 Assembly, so I'd be interested in disassembling it and hunting out the code for the exact speed.


Wow that's hardcore.

Share this post


Link to post
Share on other sites
Well the trickiest part is that I have to write my own comments, but as long as I can figure out how to decompile everything assembly is super straightforward. Easy to read, no, elegant, no, but certainly straightforward.

Share this post


Link to post
Share on other sites
I've used it before, but narrowing down a set of 4 specific numbers (if they exist in that form at all) might be impossible.

Share this post


Link to post
Share on other sites
You can try using the Game Maker program to help approximate speeds if you need to. You can track fps and general movement per pixel speed. Just create a little tech protype to help you in your study.

Share this post


Link to post
Share on other sites
Quote:
Original post by Zido_Z
You can try using the Game Maker program to help approximate speeds if you need to. You can track fps and general movement per pixel speed. Just create a little tech protype to help you in your study.


Mega Man has certain acceleration values. When you start running, he doesn't run at his full speed and when you stop, he slides a bit. Observing BOTH acceleration AND speed vectors by eye is difficult for me to do in this way (Don't ask me why. I thought it'd be easier than it is).

The engine I've written is sufficient for testing the speed and acceleration members. They only need to be altered (I think) in order to get him to move the way he ought to.

Share this post


Link to post
Share on other sites
Sounds like you're assuming that the thing you're missing is some constant coefficients in an equation of motion. But it's possible that your equation of motion itself is not the same as the original. In particular, how do you know that the acceleration you're applying is the same? Is yours constant, with velocity capped at a certain magnitude? Or does acceleration decrease as velocity increases, leading to a kind of terminal velocity at which acceleration drops to zero? Note that both cases are the same but with a different dependency of acceleration on velocity - one is a step function, the other is some smooth attenuation, possibly linear. But, this dependency could be absolutely anything, and what you choose will lead to a different 'feel' to the acceleration profile of the player. It may be that NO combination of constants in your current implementation will give you the exact feel of the original, because it's the equation, not the coefficients, that is different.

Share this post


Link to post
Share on other sites
Quote:
Original post by PKLoki
It may be that NO combination of constants in your current implementation will give you the exact feel of the original, because it's the equation, not the coefficients, that is different.


THAT'S why I don't think decompiling everything and observing random variables in assembly is going to show anything that makes much sense.

My method is the first you described, a maxVelocity value caps off a constant acceleration value which is continuously added to a velocity member. Being that the original Nintendo was a simple piece of hardware this method makes sense to me and I've got some values which make the movement of the character very close to the original, but not as accurate as I'd like.

Share this post


Link to post
Share on other sites
Make some macros and scripts for a NES emulator that move your character in an exact way. Have it iterate through all kinds of button combination timings, and record the movement. Plot out a graph showing the relationship between input times and character movement. Estimate the equation and coefficients from this graph.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!