Cracking an NES rom without the source code--is it possible?

Discussion in 'Other Consoles & Oldies' started by Aldrich, Jun 27, 2017.

  1. Aldrich
    OP

    Aldrich Newbie

    Newcomer
    6
    4
    Jun 25, 2017
    United States
    I'm sure the answer should be obvious for anyone with experience working with the software, but as a rank amateur I'm in the dark.

    As I mentioned in my introductory post, I have a few pipe dreams concerning a handful of nes games and fulfilling those involves some figurative heavy lifting. Before any of that can take place, I need to know if its even possible to work with a rom without having the source code at hand. For one example, what I would like to do is add two extra sprites for each enemy in Earthbound zero/beginnings as a form of pseudo-animation--an attacking sprite and a wounded sprite to be displayed when its the enemy's turn and during the flashing section once they've taken damage. In order to organize and install these new images, how much of the game's code would I need to fully grasp?

    EBZ is relatively fortunate as a few tutorial pages exist on romhacking.net's wiki, but I am not sure if these would help matters very much:
    http://datacrystal.romhacking.net/wiki/EarthBound_Zero:ROM_map


    Again, any sort of advice or guidance is immensely appreciated!
     
  2. VinsCool

    VinsCool Delusional

    Member
    GBAtemp Patron
    VinsCool is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    11,705
    27,733
    Jan 7, 2014
    Canada
    Another World
    Well it may be possible to decompile a game, and add the modified code, then finally recompile.
    I'm not any more knowledgeable though. Hopefully someone else will add more information to this post.
     
  3. CeeDee

    CeeDee hm?

    Member
    3,804
    5,309
    May 4, 2014
    United States
    somewhere
    Absolutely. That's the whole basis of ROM hacking. It'd be quite hard to do, though.
     
  4. nl255

    nl255 GBAtemp Addict

    Member
    2,570
    360
    Apr 9, 2004
    Yes it is, the catch is that you are going to have to learn how to not only write in low level assembly language, but be able to read it as well, and said assembly language is different for each CPU. In this case, you need to learn 6502 assembly language. Keep in mind that ASM is considered to be the hardest type of programming to learn, especially on systems as primitive as the NES (or C64/Apple2/etc). To give you an idea, you can't multiply, divide, or do a square root unless you do so manually using addition (hint: addition with negative numbers is subtraction).

    If you still plan on learning 6502 ASM and doing some romhacking then good luck.
     
    Last edited by nl255, Jun 27, 2017
  5. Aldrich
    OP

    Aldrich Newbie

    Newcomer
    6
    4
    Jun 25, 2017
    United States
    Much obliged to everyone whose responded, I appreciate the tips!It sounds like an uphill struggle, but that just means it'll be more satisfying once I've completed the project.

    On a similar note in regards to animation, any clues as to whether it might be possible to add in psi animations to battle? I know the nes only has so many layers as to what it can display, but I imagine its possible to layer one sprite over another without too many issues, or at the very least briefly flicker the enemy sprites out to allow the two frame animation to play.
     
  6. MrCatFace

    MrCatFace GBAtemp Regular

    Member
    134
    62
    Jun 3, 2017
    Home (Is where the heart is, so my chest?)
    The folks over at https://forum.starmen.net/forum/Community/PKHack might be able to help, but they do mostly Earthbound hacking, not Mother 1. Ask around there.