So is there any information that disassembling a ROM is going to give me? Like new insights as to which aspects of the game are stored where? Or will it just make editing and reading the code simpler?
If you know how to read it, and maybe help yourself out a little bit with some information from an emulator then yes it will. Simply firing the ROM through a disassembler is not going to directly give you the sort of info you find on a datacrystal page ( http://datacrystal.romhacking.net/wiki/Mega_Man_IV:ROM_map
) or anything.
A somewhat skilled assembly programmer could probably plough through it and generate something like it, it would be a somewhat tedious way of setting about it but a wholly bad way. It is called static disassembly if you just take the ROM/exe and disassemble it. Sometimes that is all you have, for a game console like this though you have an emulator, a great one even in fceux, and not using that option would be really silly. Sometimes we can suggest doing things manually once or twice just to get used to the underlying concepts but I don't think it would do much good here. If instead you, say, had a long train commute or something and you did not have a laptop, phone... then you could make useful progress in reasonable time on a printed version of the disassembly, especially if you had a little push from an emulator to tell you where to look first of all. Compare that to say staring a printout of the hex of a ROM which would probably gain you nothing and teach you even less.
This is all somewhat abstract though, and obvious once you know what you are doing, so I will change up to avoid confusing matters. I reckon what you want to do is try converting a cheat into an assembly hack or finding out something using assembly skills.
In the game you will have a lives counter. You might have a cheat to give you infinite lives. Almost by definition that cheat will contain the memory location, and if your game does not then pick another game as at least 95% of games on any system will be that simple.
If you are doing a proper assembly hack you would the set a breakpoint on write ( http://www.fceux.com/web/help/Debugger.html
) to that location, it would then tell you when something wrote there and instruction was doing it. Depending upon the system then that instruction might just be a write but the ones preceding it will be the things doing maths on it.
On systems without that capability (we saw it many times early on in the DS) or without a debugger you can instead take the static disassembly and search for anything that writes close to or around that location. From there you can try to go backwards and see what led to it.
Finding out something then. Move on from infinite lives and go instead to health in a RPG or something. Here you will hopefully have a DEF stat which changes damage done. Work backwards from a simple health loss and hopefully you will see where the DEF stat is found in memory, try to change that (change armour or something) and work backwards from there. Pretty soon you will find where the DEF change came from in the ROM and you hopefully not have the table of values that make up the item stats. That sort of thing does get into datacrystal and can be found using assembly hacking like this. It is not the only way but it is very good, very accurate and can be very fast where having to use simpler ways can take far longer and actually be far more fiddly