Well, while zkip is correct there is a slightly better way. Instead of using a hex editor, make a patch that way changes can be tracked and easily remove. In conjunction with xkas it is also recommended that you use either the snes9x and bsnes debuggers. Assuming you are on windows, you could automate most of the process to make it quicker. For example, below is a simple batch file that would allow you to delete the "dirty" ROM, copy a clean ROM, patch it and then run the ROM.
copy clean_some_rom.smc some_rom.smc
xkas.exe patch.asm some_rom.smc
An important note is that, for the last line to work it assumes that your default file association is to launch the ROM in an emulator. You would obviously need to change the file names as needed.
* Keep frequent notes, document everything!!
* A disassembler is always handy, but remember they can NOT disassemble full ROMs you need to specify which portions of the ROM you want to disassemble.
* Get a list of hex values that correspond to each opcode.(Hex2ascii in the documents section will work for that.)
* If you need to find a place to start to looking for the location of the reset vector in the ROM header.
* Look for every know PAR (pro action reply) code you can find! By setting breakpoints on those RAM addresses(and sometimes even ROM addresses) you can learn massive amounts of information.
* And remember patience is key.
Hope this helps you get started on your road to hacking other ROMs!