News:

11 March 2016 - Forum Rules

Main Menu

Megaman 1 hacking topic

Started by Timaeus, February 26, 2020, 01:33:10 PM

Previous topic - Next topic

Timaeus

  I decided to create this topic for my questions about Megaman 1 hacking to avoid spamming every question in different topics.

  I decided to change the musics for the future, and focusing on weapon hacking and enemies hacking, however I am having problems at making the Super Arm fire the block debris without needing to pick a block. I am still using hex editor and fceux by the way. Any hints about how to do that?
Do little by little, one thing at a time, and never forget why you do what it should be done!

redmagejoe

I would imagine you'd need to chase down routines to find the moment that a thrown block impacts something, and set a breakpoint there, then chase around code to find out specifically what's responsible for spawning and moving those projectiles.

Vanya

#2
Judging from the normal behaviour of the Super Arm, there is likely a routine somewhere that toggles a flag that changes Megaman's graphics to holding the big block and another that creates the debris blocks as redmagejoe suggested.

If I'm right, then you'd have to remove the check for this flag so that it always assumes you are already holding a big block.

This *could* cause Megaman to always be carrying a stone block while using the Super Arm.
If so, you may want to find the code that makes this happen and remove it too.

At that point, it should do what you want it to... I *think*.

Timaeus

#3
  With the hints, I made it work just like Rockman Claw's (making Megaman being able to create a rock without any rocks nearby, but with a different debris angle). Thanks guys. As for my next task, I wanna make the weapons shot more than one time at the same time. I tried, but the max I could do is to make the weapon's gauge waste properly after every fire button being pressed, but I could not think of how to make it actually shot while the other projectile is on the screen. So far I am only using hex editor and fceux.
  Any hints?
Do little by little, one thing at a time, and never forget why you do what it should be done!

Vanya

Glad it's working out.
To change the fire rate I think you're going to have to look at the code that runs when the fire button is pressed.
There should be some RAM flags for which button is being pressed.
That should lead to whatever code it is that controls what happens when you fire a shot.
Probably it'll check if you are firing and what weapon you have equipped then branch to whatever code is needed.

Timaeus

  I am having problems with a music loop. I edit the musics by hex, and before the loop, the breaks work just fine, but when the loop command triggers, the breaks become shorter, messing with the sync. The only thing I changed before the looping was the channel's pitch (the pitch changes were on the part that does not loop).
 
  Any suggestion on how to fix this?
Do little by little, one thing at a time, and never forget why you do what it should be done!

Cyneprepou4uk

Probably the loop pointer should be changed as well if you have shifted channel data

Timaeus

#7
  I do not think that may be the case, since the looping part starts with a note before the breaks, and that first note plays correctly. Also, one specific note does not play correctly for some reason (it repeats itself without me writing it to). I changed the channels tempo and pitch before the loop, if that can be it. I will try to change the pointer again tomorrow and take a pic of what I have done when I can.

  EDIT: I managed to fix the breaks after the loop, and the loop pointer is set correctly, but the first note does not play. It does not affect things so badly so I do not think it is a big issue. Thank you.
Do little by little, one thing at a time, and never forget why you do what it should be done!

Timaeus

#8
  I am having a huge problem with Super Arm. I made it so that creates guts blocks without needing to find one in the stage, and I managed to disable the part of the code that makes it replace the art from the block with something else, but in a way that still works when it gets hit by Thunder Beam. Everything was ok until a few days ago, when I changed something that I cannot remember what it was, and that made the guts blocks remove the graphics and solidification of the boss doors. I tried alot to find what I did wrong and I could not find where the error lies, and I looked at the code for the Super Arm, its weapon firing code, codes related to the door actives, and everything looks normal. My last backup was from a week ago and I really do not want to redo all the work of that last week. I use bisqwit's disassembly file.
Do little by little, one thing at a time, and never forget why you do what it should be done!

Timaeus

#9
  How can I skip the wily saucer cutscene? I want to make the game go directly to the fortress stages without loading the animation (since the animation loading is causing a crash). Any ideas?
Do little by little, one thing at a time, and never forget why you do what it should be done!

Vanya

This could be as simple as finding an event flag that tells the game the saucer scene has already been done and trigger it early.

However, it might be better to figure out what is causing the crash.
You may want to be a bit more strict with yourself about making backups so you can tell more easily what you did that might be causing an issue.
It helps me a lot to also keep detailed notes about every change I make to the game.

Timaeus

  I managed to fix the crashing issue with a good friend motivating me. Thank you for the reply and advice. I will start making notes of every change I make from here on. I do make backups, but that glitch happened two months ago (the first built that had the issue was in March), so I could not rely on my latest ones. Now there is only the Fireman door glitch to fix. Thanks!
Do little by little, one thing at a time, and never forget why you do what it should be done!

Timaeus

  I want to add the names of my custom robot masters on the stage select screen, but it only allows 7 letters. Do you guys know how can I increase the number of letters on each name? Thanks.
Do little by little, one thing at a time, and never forget why you do what it should be done!