# Snes Hacking tools?



## ShinyJellicent12 (May 24, 2011)

I am planning to make a hack of Mortal Kombat II.
Any programs I can use to do that?
I need to edit the sprites and text.
Any suggestions on utilities that I can use to hack Mortal Kombat II?


----------



## ShinyJellicent12 (May 24, 2011)

I actually tried some from zophar.net, but they didn't help:{(


----------



## cris92x (May 27, 2011)

There are no programs like that, you will have to manually edit everything with hex editing.


----------



## ShinyJellicent12 (May 31, 2011)

Can you recommend the _best_ hex editor?


----------



## FAST6191 (Jun 1, 2011)

Regarding the original post yeah there does not seem to by anything in the way of game specific hacking programs meaning you are going to have to go manual. Equally I did not see any game data although I did not look quite so hard (if it did not appear with the searches and places I looked I would be quite surprised if it did exist mind).

It seems you are very new to rom hacking in which case absolute basics- equally I would strongly suggest you learn some hacking methods before you try to undertake your hack.

SNES roms do not tend to be able to broken apart with simple tools unlike the DS and most optical media based consoles- the rom is a self contained piece of code until you figure out where things are.
You can edit whatever you like with a hex editor although it pointless doing for some things as there are other methods that are far simpler.

4 main areas of rom hacking

*Text*
Most games (although one so simple as this might have it as an image) have a method of displaying text as stored in a text file (that is to say not as a row of pictures).
The method of encoding though is not standard by any means and games love to use custom formats and often quite complex ones to boot.
Assuming it is not text in graphics one finds out the encoding (usually easier said than done) and makes a so called table file of the encoding. You load this into a capable hex editor or other program and it attempts to decode the text as defined by the table file. Most then dump this text and edit it before inserting it again. This not the end of the story though as there are pointers as well (you and I can read but a computer tends to have no idea unless you tell it where to look/stop unless you dedicate valuable resources to figuring it out- systems as old as the SNES do not tend to waste resources, indeed few systems anywhere do).
http://www.romhacking.net/utils/ should be able to drum up some tools for you (you want a table maker, hex editor with table support and probably a relative search tool).

*Graphics*
Consoles tend to have 3 graphics types-
Sprites aka objects
Backgrounds aka BG
Bitmaps- more of an encoding but different enough to warrant their own 

The basic tools to edit graphics are known as tile editors. These work as the consoles tend to have hardware with known configurations and it is pointless converting them at runtime so games tend to store things
I like crystaltile2 and http://home.arcor.de/minako.aino/TilEd2002/ myself although some of the links to come will net you some more if you do not like those.

*Game code*
This is the actual code the console processor(s) run. The tool to read this is known as a disassembler which is a tool that attempts to decode the game into assembly instructions; when it comes to it all code can be converted to assembly regardless of what it started out as but it is quite complex compared to higher level languages. Indeed you would be exceptionally lucky to be able to convert the game code back into the original language (such a thing is more or less what keeps the entire software industry working the way it does as well as forming a fundamental tenet of computing).
http://www.romhacking.net/?category=18&amp...itle=&desc= has some tools and a disassembly viewer or something named similarly will usually be present in your chosen emulator (if not others certainly have one).

Most disassemblers are extremely crude and you will have to poke and prod them or suffer a large amount of noise in with the useful stuff (developers will often have text, features and other stuff buried in the code that the disassembler will turn into gibberish). Even the "good" ones have this problem but they will tend to have some methods to make life easier.

In with this I am going to have pointers; these are parts of the rom that direct whatever lands at it (point if you will) to another part of the code. The SNES stuff might well be simpler than some newer consoles in some regards but still annoying to deal with. I tend to use the contents page of a book analogy- stick a few new pages in and all the old numbers break so you either overwrite what is there. Text will tend to do this for the end of a sentence (and section) and maybe to start a new line as well (remember the part about computers not knowing when to stop).

*Game features*
Code is one thing but on top of this sometimes developers like to separate out parts of the game- the move sets of characters might well be other parts of the rom so the game developers can just drop things into the memory and work with that rather than have to encode it every time in the game code. This is where a hex editor usually gets used although mainly only in the initial stages (people tend to extract the code and manipulate it in some other manner; anything from a text editor to a spreadsheet to a custom program).

Video and music I am bundling with this although they warrant their own topics and even sites as they can be that in depth.

As for best hex editor best for what?

Some hex editors have some assembly support.
Some hex editors have nice table support (custom text in the game)
Some hex editors have great function support
Some hex editors have great 
Some hex editors can jump into graphics easily.

There are countless more things some people wish for in a hex editor.

My time is usually split between hex workshop (mainly because I know it and it has functions I like) for day to day stuff although there are many others and crystaltile2 (because it has a bunch of other really nice features that follow through from whatever I happen to be doing in the hex editor or vice versa) these days although I have loads of others.
http://www.romhacking.net/?category=13&amp...itle=&desc=
http://filetrip.net/f23649-CrystalTile2-2010-09-06.html
Cystaltile2 ( http://filetrip.net/f23649-CrystalTile2-2010-09-06.html ) does have SNES support for various things (the tile editor certainly) but it is more or a GBA and DS tool.
Tapping "list of hex editors" in your search engine will probably drag up a bunch of more general purpose ones as well.

Most hackers will have several they use for various things- it is kind of like asking for the best document related tool.

Equally all of what I just said is scarcely more useful than "rom hacking is the act of trying to change a rom image of some form to change something that the hacker desires changed in the resulting program" or if you prefer analogies then it is a bit like giving someone a dictionary and asking them to produce a good translation of something; language has all sorts of little quirks that trip such simple methods up and cause them to fall over and rom hacking is exactly the same.


----------

