Mega Man Movement Vectors
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]
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.
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.
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.
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.
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.
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.
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.
Visit http://www.mugsgames.com
Stroids, a retro style mini-game for Windows PC. http://barryskellern.itch.io/stroids
Mugs Games on Twitter: [twitter]MugsGames[/twitter] and Facebook: www.facebook.com/mugsgames
Me on Twitter [twitter]BarrySkellern[/twitter]
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.
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement