Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Useful tools for hacking ROMs. | |
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
blackhole89

LOLSEALS
Moderator of ROM hacking
EmuNET IRC network admin
Head GM of TwilightRO
Level: 47

Posts: 736/971
EXP: 739208
For next: 26995

Since: 03-15-04
From: Dresden/Germany

Since last post: 14 hours
Last activity: 12 hours
Posted on 06-23-05 06:26 PM Link | Quote
Well, I thought it was about time someone posted a thread similar to the countless FAQ threads in SMW hacking here. Feel free to reply any additions if you think I missed anything (I am confident I missed a lot, but... the basics are here, heh).

This is what you basically will need to do some actual hacking (which, as opposed to editing, involves some actual work and a moderate amount of spare time):

A hex(adecimal) editor.
This is the most basic and powerful weapon of any ROM hacker. It allows you to directly view the ROM's (or any file's) bytes as hexadecimal numbers and changing them.
I suggest using XVI32, as it is stable and is capable everything you will need without being too bulky.

A (dis)assembler.
Assembler is a more "human-readable" variant of machine code. If you want to read the actual code of a game, you will most probably favor it against raw hex(adecimal) op(eration)codes. A disassembler basically translates a ROM to this easier-to-read version.
For the SNES (65c816), I recommend using the SNES ASM development kit.. Although it is quite buggy, it is great for doing edits and stuff. If you want a more or less bug-free one, I suggest D816.
A NES disassembler would be NESDIS. (NES is not my area of expertise, so tell me if you know a better one)

A tracer.
Tracing is a very important and powerful technique to figure out the deepest secrets of a ROM. Tracing means logging the executed assembler instructions during runtime. You can either log everything that happens, or (considering yolitically neutral" vour disassembler has this feature) wait for a certain ROM location/command to be executed. The main point of tracing is figuring out what piece of code is responsible for a visible process like message boxes popping up or *insert a jump'n'run hero character name here* jumping.
As is FCEUXD(copy'n'paste link) for the NES, Evil Peer's Snes9x tracer mark 8 is the yet-to-be-beaten tracer for the SNES. Although mark 9 has even more features, it forces you to remove your ROM's header (thus making it incompatible with many other specialized hacking tools out there), so I decided to post the "persion here instead.
For Game Boy, use No$GMB (Credit for link goes to HyperHacker).

A graphics editor/viewer.
Extremely useful for finding/modifying graphics and, in some cases, also level data.
YY-CHR (Copy'n'paste link) has proven capable of everything you would need.
For converting whatever graphics to the SNES format (output files of this can either be included by hand or imported with programmes like Lunar Magic), I recommend GIF2SOPT (note: only works with uncommented 16 or 256 colour GIFs. Programmes like Corel Photopaint automatically set the comment field, therefore I recommend The GIMP for conversion). Its twin brother, PCX2SOPT, was originally bundled with the package, but as I know of no modern software to output PCX files PCX2SOPT accepts, I just leaved it out.

As I said above, feel free to add~
blackhole89.


(edited by blackhole89 on 06-23-05 09:27 AM)
(edited by blackhole89 on 06-23-05 09:37 AM)
(edited by blackhole89 on 06-24-05 08:14 AM)
(edited by blackhole89 on 06-24-05 08:15 AM)
BGNG

Snifit
Level: 22

Posts: 72/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 06-23-05 09:57 PM Link | Quote
If you're only searching for resource data, however, I suggest using a utility called a "ROM Corrupter," which sets a range of bytes in a file to a certain value, which is handy to detect changes in resource representation when emulating the ROM.

I have created a utility of the such for personal use, but I do not know of any commonly-used programs for this. Anyone know of one?
The Great Guy

Octoballoon
Level: 22

Posts: 167/170
EXP: 53084
For next: 5266

Since: 04-08-04

Since last post: 130 days
Last activity: 73 days
Posted on 06-24-05 12:23 AM Link | Quote
You could just search for one on google. But on Disch's site there's one he made that he states in the description is not the best, but there is also a good site I found a while back on google with lots of good stuff on it, http://www.romhacking.com/ Theres probably a few good ones there.
tuna
...
Level: 3

Posts: 353/2
EXP: 51
For next: 77

Since: 12-02-04

Since last post: 1 day
Last activity: 1 day
Posted on 06-24-05 01:30 AM Link | Quote
Corruptster is a good one too.

And so is the AoRH doc by Vagla, under the documents section (obviously)

There are quite a few good ones out there, but most of them are here. However, I also throw out Hexposure (DOS, NOT THE WINDOWS ONE) and Tile Layer DOS (NOT THE PRO ONE). Transhexlation is also a very good one if you need some hex editin' in winderz.

(believe me, TLD > TLP)
The Great Guy

Octoballoon
Level: 22

Posts: 169/170
EXP: 53084
For next: 5266

Since: 04-08-04

Since last post: 130 days
Last activity: 73 days
Posted on 06-24-05 02:37 AM Link | Quote
Originally posted by Alexa
Corruptster is a good one too.


Corrupster is the one by Disch I mentioned above.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5218/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 06-24-05 05:39 AM Link | Quote
For graphics editing, Tile Molestor is nice and supports a lot of formats, though it's buggy and requires Java. Tile Layer Pro is another good editor; less bugs and runs on Windows but doesn't support as much.

No$GMB is (for now) probably the best Gameboy debugger you'll find. BGB is another emulator; its debugger is a crappy knock-off of No$GMB's but the emulation is more accurate.

Hex Workshop is a nice hex editor, but has crappy table support (only using its own table format) and costs 50 bucks. Translhextion and Hexecute are good free ones; Translhextion's a little buggy but more powerful and doesn't have a huge memory leak like Hexecute does.
Spralwers

Micro-Goomba
Level: 5

Posts: 6/13
EXP: 519
For next: 10

Since: 07-02-05
From: Bolton, MA

Since last post: 118 days
Last activity: 66 days
Posted on 07-04-05 07:26 AM Link | Quote
The link for Evil Peer's Snes9x tracer mark 8 doesnt come with the .dll files, so I download them, and it asks for ZLIBMT.DLL except when I look for it, there are no results. . . Is there a specific place where I'm supposed to put the file in? Speaking of which, does anyone have the SNES9x tracer working?

For hex editting, hackman another great hex editor, and it's been more compatible for me than other hex editors. It's free too.


(edited by Spralwers on 07-05-05 10:48 PM)
(edited by Spralwers on 07-06-05 11:44 AM)
(edited by Spralwers on 07-06-05 11:46 AM)
Spel werdz rite

Koopa
Level: 14

Posts: 50/108
EXP: 11151
For next: 1920

Since: 07-26-05
From: Murrieta CA

Since last post: 8 hours
Last activity: 8 hours
Posted on 08-04-05 11:55 PM Link | Quote
I like AXE v3.0
I always use it and I've made some major ASM hacks with it. (Read bottom of my sig)
Ice Ranger

Leever
Level: 23

Posts: 180/183
EXP: 60462
For next: 7261

Since: 03-16-04

Since last post: 82 days
Last activity: 3 days
Posted on 08-05-05 12:03 AM Link | Quote
You can check for updates on FCEUXDSP (another hacker adding more debugging features to FCEUXD) at its update page, which contains a lot of information on Faxanadu as well. The source code is available for adding more features to make debugging easier.
tachyon

Octorok
Level: 7

Posts: 9/23
EXP: 1089
For next: 359

Since: 07-28-05

Since last post: 5 days
Last activity: 10 hours
Posted on 08-05-05 06:52 AM Link | Quote
does anyone know of a tracer for the n64? multiple Google searches turned up nothing.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 6301/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 08-05-05 08:07 AM Link | Quote
Only N64 debugger I know of is Nemu. Good luck. (Or you can do a bit of simple stuff like memory editing/viewing and breakpoints in RAM if you have a real N64 and Gameshark.)
Cellar Dweller

Flurry
!!!
Level: 27

Posts: 234/269
EXP: 107817
For next: 8342

Since: 03-15-04
From: Arkansas

Since last post: 16 days
Last activity: 34 min.
Posted on 08-05-05 03:22 PM Link | Quote
There is the possiblity of adding debuging features to existing emulators. 1964 is GPLd, so the source code is available for the most recent version. Also, an older version of Project 64 is avilable in source code form. The biggest problem, at least with 1964, is that a somewhat recent version if MSVC is needed to compile it. VC 4.0, Dev-C++, and the free command line compiler toolkit that MS released can't use the project file.
aioria1981

Ninji
Level: 20

Posts: 5/234
EXP: 36701
For next: 5738

Since: 07-20-05
From: Viña del Mar, Chile

Since last post: 5 days
Last activity: 5 days
Posted on 08-07-05 04:50 AM Link | Quote
Here's another useful tools for Text Hacking
1) SearchRx

http://usuarios.lycos.es/darkwizardff/files/searchrx.zip
With this, you can do relative searchs to find text for text hacking. Supports normal search (1 byte for each character) and 2 bytes (16 bit) searching. It shows the addresses in wich the text appears in decimal and also shows the convertion between the characters and the values assigned to them (i.e 'a' is #$3e, 'b' is #$3f, 'c' is #$40 and so on)

2) Table Manager
http://www.emuxhaven.net/download/utils/TableManager.zip
It generates tables to assing a character to a byte value. It displays a 16x16 matrix (from #$0 to #$f in boths sides of the matrix). You can fill automatically values from A-Z, a-z or 0-9 by right-clicking on any matrix position

3) Thingy32
http://www.emuxhaven.net/download/utils/Thingy32.zip
With this you can open the tables generated eith Table Manager (*.tbl). Basically to edit the text you must use the addresses given by SearchRx and the table itself. Jump to the location with the given addresses (in decimal) and edit the text by pressing space where you want to start editing and space where you want to end editing. Then you can type the text you want
-Layout fixed-


(edited by aioria1981 on 08-19-05 04:39 PM)
NooNooKKM

Koopa
Level: 18

Posts: 115/118
EXP: 29180
For next: 717

Since: 06-02-04

Since last post: 78 days
Last activity: 13 days
Posted on 08-13-05 08:10 AM Link | Quote
Anyone have a tracer for the GBA?
Xenesis Xenon

Level: 10

Posts: 36/44
EXP: 4114
For next: 300

Since: 04-17-05
From: Australia

Since last post: 1 day
Last activity: 1 day
Posted on 08-18-05 04:46 PM Link | Quote
If you're a mac user looking for a Hex editor, I'd recommend using HexEdit

It's quite decent, and it's one of the few mac hex editors there are.


(edited by Xenesis Xenon on 08-18-05 07:47 AM)
(edited by Xenesis Xenon on 08-24-05 06:58 AM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 6457/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 08-21-05 11:00 PM Link | Quote
Is there one that's not crammed with ridiculous amounts of ads?
Xenesis Xenon

Level: 10

Posts: 37/44
EXP: 4114
For next: 300

Since: 04-17-05
From: Australia

Since last post: 1 day
Last activity: 1 day
Posted on 08-24-05 03:59 PM Link | Quote
Yep, I managed to find the original page again, and updated the URL accordingly.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 6547/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 08-26-05 05:18 AM Link | Quote
Er... I could have sworn that used to link to Geiger's Snes9x Debugger.
subanark
Newcomer
Level: 3

Posts: 3/3
EXP: 56
For next: 72

Since: 07-06-05

Since last post: 62 days
Last activity: 5 days
Posted on 09-01-05 06:02 AM Link | Quote
Often if I want to find something I just hack in a hashtable into the emulator so that memory values that are read from ROM are printed out the first time they are read, this allows me to wander around some area for a while, ignoring the output, and then enter a new area and record the data there. This filters out stuff like sound output, which I can usually find some entrypoint into the level data for that room. I have never found tracing very effictive.

I have only done hacking with the gba though, so Im not sure if its a different story for other platforms (although Im sure you can do something similar).
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 6754/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-01-05 02:03 PM Link | Quote
One awesome utility that not many people know about is IPSelect. It lets you take an IPS patch, and choose which parts of the patch to apply. It's great when your ROM suddenly becomes corrupt while you're hacking it. Just make a patch, apply all but one part to a fresh ROM and see what happens. Keep doing this, choosing different parts, until it works again.

Unfortunately the link doesn't seem to work (it showed up on Google, but the last time it was cached was in December), so I've uploaded a copy here. I'm not sure if it's the latest version, but it works.
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Useful tools for hacking ROMs. | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.021 seconds.