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 - I'm kinda new at rom hacking, can somone give me some tips. | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
geterkikzkid

Level: 6

Posts: 3/15
EXP: 715
For next: 192

Since: 06-04-05
From: Earth

Since last post: 142 days
Last activity: 7 days
Posted on 06-04-05 04:00 AM Link | Quote
Hey,
I am new at rom hacking, but I am very interested in it, I have hacked some games before though.
Since I am A beginner, can somone tell me what prorams I can use untill I get better at it?
The games I am most interested in is Zelda:ALTTP, and mabey starfox64,
I mostly wanna do sprite/tile editing but also level, textual and action editing as well.
I have tried some programs people let me in on, but my computer is not compatible with dos programs (must not believe in dinosaurs, hehe) well can somone tell me some programs and tips please? I would appriciate it.


(edited by geterkikzkid on 06-03-05 12:16 PM)
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 06-04-05 04:10 AM Link | Quote
The two most effective hacking methods are analysis of resource data and what I like to call "Zero Set."

In many games, you can find out a lot about how the software works by looking at the resources used: be it text, images or audio. These are typically a mix of compressed and uncompressed data, so it might be tricky hunting it down.

The hunting down issue can be done very easily with "Zero Set," which gets its name for how it got started. By setting all bytes in a certain section of a ROM to a single value (like 0) and playing the changed ROM in an emulator, you can observe the resource in question to see if it changed. If it changed, then some of the bytes that you set to that value MUST be some of the bytes used in that resource.
__________

For example, when I was cracking F-Zero X last year, I set some bytes to 0 and went into Mute City. I figured that if all 0's will set track control points to the origin (0, 0, 0), then there will be a definite, observable change in the course. Sure enough, I the first time I found it, the first half of Mute City warped around at hung around the origin for a while, then went back to where it was supposed to be.

Since then, I've developed a program to perform this "Zero Set" method with any value and even perform a shell command afterwards (useful for correcting N64 CRCs), but I don't have any way to host it and my e-mail service doesn't like EXEs in ZIP files, so...

Anyone care to put this file up for grabs somehow?
beneficii

Lakitu
Level: 36

Posts: 102/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-04-05 04:12 AM Link | Quote
geter,

Hey, you need to change your background picture. I can't read your message without selecting it.

EDIT: Read the FAQ btw.

EDIT 2: Welcome to the board, btw.


(edited by beneficii on 06-03-05 11:12 AM)
(edited by beneficii on 06-03-05 11:18 AM)
geterkikzkid

Level: 6

Posts: 4/15
EXP: 715
For next: 192

Since: 06-04-05
From: Earth

Since last post: 142 days
Last activity: 7 days
Posted on 06-04-05 04:23 AM Link | Quote
Originally posted by beneficii
geter,

Hey, you need to change your background picture. I can't read your message without selecting it.

EDIT: Read the FAQ btw.

EDIT 2: Welcome to the board, btw.

Umm yeah, that backrounds been causing trouble, I tried to get rid of it, so it will probbably go.
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: 4769/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-04-05 05:02 AM Link | Quote
BGNG's technique (aka ROM Corrupting) is good, but I suggest using something like 1 or 0x20 instead of 0. You can recognize the results more easily. Suppose you zeroed out an area and the graphics blanked out - how do you know what happened? You might have wiped out the graphics, tile arrangements, palettes, etc. With, say, 0x20 the graphics will generally have an easily-recognizable pattern (most likely all just a straight line of a certain colour repeated over and over), making it easy to tell what happened.

And you should always avoid using random values. You may need to be able to reproduce the effect, or the combination may end up crashing the game sometimes, which can be very annoying. (Or the random numbers could end up being a chunk of ASM code that does something cool... but don't count on it. )
beneficii

Lakitu
Level: 36

Posts: 103/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-04-05 06:17 AM Link | Quote
You may want to familiarize yourself with asm. Also, you don't know which of those bytes caused a change and the data could be in chunks, so experiment with different things. Try to find the first byte of a stage too.
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 06-04-05 10:20 AM Link | Quote
Having successfully created a fully-functional level editor for an N64 game based entirely on data that I found with the method I described and absolutely no assembly references, I can assure you that it is a quick and effective way to go about doing things.

The method, which doesn't technically corrupt the data, is only effective for locating resource data, so changes in programming will need other devices.

Like HyperHacker noted, 0 is not always the best value to use. In most cases, however, it is sufficient.
__________

And as HyperHacker and beneficii both described, if you're trying to hack level data and notice a change in the level when you play it in an emulator, you may very well have only altered graphics data. The way to verify this is to use more passes by zeroing-out (or using whatever value you pick) a different range of bytes.

For example, let's say bytes 0x500 to 0x600 made a change. So you know the change was caused be some of the bytes in that range. The next pass could be 0x500 to 0x580, but the change does not occur. That means that the change is triggered by bytes from 0x580 to 0x600. So the next pass could be 0x580 to 0x5C0 and so forth until you find out what changed. If it was graphics data, then just move on to 0x600 to 0x700 and the rest is history.
geterkikzkid

Level: 6

Posts: 6/15
EXP: 715
For next: 192

Since: 06-04-05
From: Earth

Since last post: 142 days
Last activity: 7 days
Posted on 06-07-05 01:55 AM Link | Quote
Scince i'm kinda new, can somone give me a list of programs that can be used to hack starfox64's sprites and graphics that I can use untill I get better?
Fx3

Shyguy
Level: 13

Posts: 36/80
EXP: 10252
For next: 15

Since: 04-11-05
From: Brazil

Since last post: 98 days
Last activity: 34 days
Posted on 06-07-05 02:12 AM Link | Quote
You're kinda new and wanna a magic wand, eh? Sorry.
Try messing up with a single hexa editor (Hex Workshop). There's no tools for N64 hacking, but a lot for SuperNES and NES 8 bits. Just don't ask how to replace MegaMan64 by Sonic, okay?
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: 4830/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-07-05 06:21 AM Link | Quote
Nope, sorry to say we haven't made much progress beyond SNES. It's being worked on, but between 3D, major proprietary compression, much bigger ROMs, and weird instruction sets it's a lot harder. 3D games aren't anywhere near as forgiving as 2D ones... If you corrupt the graphics or levels in a 3D game, chances are it'll just crash.
Jigglysaint

Red Cheep-cheep
Level: 24

Posts: 186/215
EXP: 76907
For next: 1218

Since: 03-17-04

Since last post: 7 days
Last activity: 3 days
Posted on 06-07-05 08:26 AM Link | Quote
I shall impart to you the secret of rom-corruptiong:

First, play the game and think about it. Ask yourself these questions: What way can the level data be arranged? Is it tiles, structures, compressed or uncompressed? What are the statistical values? Are fractions used?

If you make guesses as to how data could be stored, you stand a greater chance of getting a match sooner. Also, go on known values. Let's say that you assume that a blank space is represented by 00(is normally common). If you replace 00 with another value you might find level data. The trick is to find a known value, and use this to find unknown values. Also, use logic. Stage 1 should always be expressed as 00 unless the game is organized in a different matter. In most cases you can guess the values by examining the game while playing it.

Once you find a value you know works(game genie codes are great for this), you can then search and then change those values. On occasions a value might be used in ASM code. Let's say you find the enemy data, but you want robots to shoot fish instead of bullets. To do that, one possibe way is to find out if the sprite index has an entry for bullets. If it does, you can then search for that value and change it to a known enemy value. In many cases, you will find a match somewhere.

Games can be unique. Some games have weird formats and ways of rendering data. My tips work in most cases, but not always. Rom hacking really is a hands on experence, and it takes lots of time and patience. Oh, and ALWAYS back up your roms. You will make mistakes and mess up the game. If you accidentially break the game beyond repair, delete and copy the origional rom back to the same exact filename(for savestate compatability). One suggestion I have is to shortform games, and place the number 1 in front of it. For example, say I wanted to hack Metroid. What I would do is copy the metroid rom and rename that copy as "1met.nes". What this does is it appears at the very beginning. This saves time in finding the roms quickly, so you don't have to scroll to the middle of a big rom list.

Rom corruption is powerful in the rright hands, and can actually be faster than ASM tracing. I've kicked some of the top hackers asses when it came to speed on finding certain data. While it took them like 5 miniutes to trace an ASM code, I just made a quick guess, get a value, and then just search quickly. I don't call myself the God of Corruption just because I like to be blasphamous. I really am THAT good!
Kefka
Indefinitely Unbanned
Level: 81

Posts: 3134/3392
EXP: 4826208
For next: 166641

Since: 03-15-04
From: Pomona, CALIFORNIA BABY!

Since last post: 4 hours
Last activity: 4 hours
Posted on 06-07-05 09:40 AM Link | Quote
Originally posted by Jigglysaint
I don't call myself the God of Corruption just because I like to be blasphamous. I really am THAT good!


I'll attest to that. He really is THAT good! I was looking for some level data once in Kirby, and had asked for help in the IRC chat. He and DahrkDaiz both went at it, and even though DD did find it and gave the info to me after he had traced it, Jiggly had already given me the stuff I needed a minute and a half or so earlier. Sorry DD, no harm meant here. But JS was FAST, dawg! It seriously only took him a minute or so to do it all.

Anyway, what should I say to add on to this topic...

This is likely just common sense, but I remember I did this when I was just starting. Do not corrupt a ridiculously large range of bytes, such as 20000 to 30000. I used to conveniently forget that this was much more than 10000 bytes that I was covering, and the game would always crash. Don't try looking for stuff by corrupting the entire rom, unless you know exactly what you're doing. Look for things in small chunks. Say, 500 bytes. 1000 bytes. 5000 is getting a little big, but I guess in some cases you can get away with it, if you have figured out that certain types of data are in the range you are corrupting.

What I said may have sounded completely retarded to many of you guys, but trust me, I always used to have a problem with corrupting too wide a range. I just don't want it to happen to this guy.

Oh, and BGNG, if you truly have a working N64 game editor, you can likely email it to like, anyone who visits this forum and they will probably be able to get it over to someone who can host it. Or you can just email me, whatever. I'd have to see this sucker to believe it. :O
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 06-07-05 11:47 PM Link | Quote
Kefka:

I've already posted a topic about it in this forum, but as stated: I didn't wish to let the cat out of the bag so soon. I was just hunting down Heian-794 because he offered to supply some data... I should check up on him again.

Anyhoo, the previously mentioned topic is called F-Zero X (Heian-794). In there are some links to videos and development screenshots of the editor. I can give you a little course extractor/inserter, but I'm not willing to hand over the editor just yet. It's not done. It can edit data, but the graphics engine is still being written.
geterkikzkid

Level: 6

Posts: 8/15
EXP: 715
For next: 192

Since: 06-04-05
From: Earth

Since last post: 142 days
Last activity: 7 days
Posted on 06-08-05 12:13 AM Link | Quote
Well what I really need is somthing that I can use to edit zelda 3 sprites untill I get better at hacking is what I need, i'm already hacking script.
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 06-08-05 12:47 AM Link | Quote
I think the sprites in that game are uncompressed, so Tile Molester will get the job done.
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: 4848/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-08-05 03:46 AM Link | Quote
I usually do 0x4000 bytes at a time, the size of a bank on most systems.
geterkikzkid

Level: 6

Posts: 10/15
EXP: 715
For next: 192

Since: 06-04-05
From: Earth

Since last post: 142 days
Last activity: 7 days
Posted on 06-09-05 02:34 AM Link | Quote
Originally posted by BGNG
I think the sprites in that game are uncompressed, so Tile Molester will get the job done.

I've had TM at one point, can somone tell me how to get the newer one to work?
I tried alot of stuff.
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 06-09-05 06:22 AM Link | Quote
You'll need the absolute latest version of Java to get it to load. It's not one bit compatible with older versions.
geterkikzkid

Level: 6

Posts: 12/15
EXP: 715
For next: 192

Since: 06-04-05
From: Earth

Since last post: 142 days
Last activity: 7 days
Posted on 06-09-05 10:58 PM Link | Quote
Originally posted by BGNG
You'll need the absolute latest version of Java to get it to load. It's not one bit compatible with older versions.

I do have the latest version of Java, when I try to start tm a window comes up telling me, "Java Virtual Machine Launcher_Could not find the main class. Program will exit" then there is a button that says OK.
I tried to read the FAQ but it just got more confusing, So I don't know what to do.
That's why I cannot get the thing to work.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - I'm kinda new at rom hacking, can somone give me some tips. | |


ABII


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



Page rendered in 0.020 seconds.