11 March 2016 - Forum Rules

Main Menu

Help With Mega Man (NES)

Started by MASKEDCHEATER, January 28, 2018, 06:01:32 PM

Previous topic - Next topic


Very recently I downloaded a patch from this site for Mega Man for the NES called Mega Man Remastered.  I tried it and it looks great!  I noticed that the guy who made this patch got rid of the score tally at the end of every stage.  This gave me an idea.  You know that in later Mega Man games,  at the end of every Robot Master stage there's a screen stating "YOU GOT (ROBOT MASTER WEAPON NAME)"?  Well, the first Mega Man doesn't have that, and I think it would be great if I could add text where the score tally was at the end of every Robot Master stage to say what weapon I got from which Robot Master I beat!  That, I think, would put the original Mega Man truly in line with the other games in the series.

I still know next to nothing about ROM coding, though.  However, the Remastered guy left a README in his zip file detailing where he made changes.  Look at this sentence:

This is where the score-display code was.  This is now free space! :)

0x3D384 - 0x3D3A8

This is from the Main Notes included in the zip file.  Is there a way to add text in that free space???  How do I go about doing it without messing up the game???  Any and all help would be appreciated!  Thank you!  :)


You would have to write assembly code to display the new text.  And you would have to put the actual names of the robot master weapons somewhere in the ROM as well.
This signature is an illusion and is a trap devisut by Satan. Go ahead dauntlessly! Make rapid progres!


Presumably, that memory address had a subroutine to update the score. You'd have to find some free space in the same bank then just store the weapon names as plain-text. In that now free-space you'd make a new subroutine (linked somewhere else in the ROM), that would basically be an if-statement. Somewhere in the game there is a bit or byte where it stores information about every boss you have defeated and all the weapons you obtained.

(For example, 00 may mean no bosses defeated. 04 may mean boss 1 defeated. 20 may mean boss 2 and 3 defeated only, etc.) So basically it would just check to see if any new bosses/weapons have changed values, then if so link to a pointer and display that text there (briefly before the next screen loads).

If you're new to hex/asm this may be a good project for you. It will probably take 3wks to a month to get it working properly. 1wk or so to download programs get familiar with them. 2 weeks to learn asm/hex. 3 weeks to write your code and debug. Good luck!
"Programming in itself is beauty,
whether or not the operating system actually functions." - Steve Wozniak