Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Rom Hacking: |
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Originally posted by beneficii 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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Originally posted by Jigglysaint 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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Originally posted by BGNG 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 |
| ||
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 |
| ||
Originally posted by BGNG 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. | | | |