Zophar's Message Domain

Go Back   Zophar's Message Domain > Emulation Talk > Rom Hack

Reply
 
Thread Tools Display Modes
Old 08-14-2009, 05:29 AM   #1
shadowdorothy
Regular Member
 
shadowdorothy's Avatar
 
Join Date: Feb 2009
Location: where i want to
Posts: 88
Default a bunch of good questions.

so I thought of some good questions, and an idea.
1: is it possible to bind hex values? aka make 2 hex strings = 2 or more letters? or just a word. this is also the idea if it hasn't been done yet.
2: how do you use blank space in a rom? you know those values that have no use but to take up space. could you put a value string where a blank is?
3: is there a way to rip the roms values, change them and then dump them back into a rom? aka change the words in a rom and them dump the changes into it.
4: whats the best way to save your backups? individual backups for everything that you change.
5: HOW are images inserted in a rom? and if I change a value for that image does it become glitched?
6: can I delete unneeded values from the rom?
7: ... forgot the last one. when I remember I'll edit this post or just post it later.
as you can tell I'm still a noob, but I also don't have a lot of time. so a faster way to hack would be good.
__________________
College is not all partying. It's mostly hard labor and studying.
shadowdorothy is offline   Reply With Quote
Old 08-14-2009, 11:46 AM   #2
InVerse
Senior Member
 
Join Date: Jul 2002
Location: Midwest, U.S.
Posts: 1,489
Default

Quote:
Originally Posted by shadowdorothy View Post
so I thought of some good questions, and an idea.
1: is it possible to bind hex values? aka make 2 hex strings = 2 or more letters? or just a word. this is also the idea if it hasn't been done yet.
What you're describing could either be Dual/Multi-Tile Encoding (where a single hex byte is equal to more than one tile, e.g. instead of 40=A it would be 40=AR or 40=LLO) or dictionary compression (where a single byte will display a corresponding word from a list, e.g. where 40=Solid Snake or 41=Big Boss.)

It is possible to add either DTE/MTE or dictionary compression to a ROM. It's even possible to add BOTH of them to a ROM. There are tutorials available on how to do this. However, it requires understanding of assembly programming and is not something you'll likely be able to do successfully without programming experience.

To see examples of these, you can check out the original Final Fantasy for DTE and Metal Gear for the MSX for dictionary compression. I'm sure there are plenty of other examples, these are just the two that come to mind. Look at a table file for either of these games and you'll see two character combinations and entire words.

Quote:
2: how do you use blank space in a rom? you know those values that have no use but to take up space. could you put a value string where a blank is?
The most common use is to place text there and redirect the pointers there. Of course, this requires that the pointers be of sufficient size. NES pointers are always (or at least almost always) 16bit, which limits the area they cover. Gameboy pointers are often 24bit, which covers a lot more area. On more than one occasion, I've expanded a Gameboy ROM to double it's original size by adding blank space onto the end of it, inserting the script into that blank space and redirecting the pointers to that new blank space. (FYI: Gameboy ROMs also have a byte in the header that indicates the size of the ROM, so you need to change this byte to reflect the new size.)

Quote:
3: is there a way to rip the roms values, change them and then dump them back into a rom? aka change the words in a rom and them dump the changes into it.
Yes. This is called script insertion and extraction. It's how any competent translators handles anything bigger than a tiny script. ROM Juice is the most common tool used to extract a script. There is another tool by the name of Cartographer that allows you to do quite a bit more in regard to extraction but the author hasn't made an official release of it yet due to various bugs, so you'll have to search the RHDN forums to find it. Atlas is the most commonly used script inserter. Also, may hackers will write custom tools to insert/extract the script of a particular game.

Quote:
4: whats the best way to save your backups? individual backups for everything that you change.
Just make a bunch of copies. And copy those copies to a thumb drive. And also email those copies to yourself. More ROM hacking work has been lost due to dead hard drives than any other cause.

Quote:
5: HOW are images inserted in a rom? and if I change a value for that image does it become glitched?
There are some utilities that can extract/insert images but they're generally edited within the ROM. The only reason it would become glitched is if the game has some sort of copy protection scheme, in which case the game probably wouldn't run.

Quote:
6: can I delete unneeded values from the rom?
Generally speaking, no. If you'll look, ROMs are generally of specific sizes. For instance, you'll see many NES ROMs that are 256K in size, but if you see one that's 255K or 257K, they're corrupt in some manner.

Quote:
7: ... forgot the last one. when I remember I'll edit this post or just post it later.
as you can tell I'm still a noob, but I also don't have a lot of time. so a faster way to hack would be good.
The only way to get faster at hacking is to do it constantly and read everything there is to read about advanced techniques. Or else only do crappy hacks using tools made for specific games. The entire point of hacking is the process, not the result.
InVerse is offline   Reply With Quote
Old 08-14-2009, 11:30 PM   #3
shadowdorothy
Regular Member
 
shadowdorothy's Avatar
 
Join Date: Feb 2009
Location: where i want to
Posts: 88
Default

k. thanks again inverse. what I meant by deleting unneeded values is deleting a set of characters and adding a different one in.
__________________
College is not all partying. It's mostly hard labor and studying.
shadowdorothy is offline   Reply With Quote
Old 08-15-2009, 12:03 AM   #4
InVerse
Senior Member
 
Join Date: Jul 2002
Location: Midwest, U.S.
Posts: 1,489
Default

If you're talking about font tiles then yes, you can do whatever you want with them. The game doesn't know what those characters are, it just knows it's supposed to display whatever is there at certain points in the game. It could be a the letter A or it could be a naked picture of Mario, it doesn't make any difference to the game.
InVerse is offline   Reply With Quote
Old 08-15-2009, 08:31 AM   #5
nes_j
Junior Member
 
Join Date: Aug 2009
Posts: 2
Default Increase of number of startup lives

Hi!

I would like to know how to increase the startup lives in nes roms. Then I would like to increase the number of startup lives of following games:
heavy barrel.nes and balloon fight.nes

Is it possible? If yes, how?
nes_j is offline   Reply With Quote
Old 08-15-2009, 11:34 AM   #6
InVerse
Senior Member
 
Join Date: Jul 2002
Location: Midwest, U.S.
Posts: 1,489
Default

Is it possible? Absolutely. Anything is possible in ROM hacking.

How do you do it? Well, that would be different in every single game.

If you want to make it a permanent change in the ROM, I assume you would have to use a debugger to trace the code and figure out where it stored the number of lives you have. That's not something I have any experience in doing, so I can't really explain how to do it.

It's a lot easier to do with save state hacking, you just make a save state, die and make a second save state as close as possible to your original save state and then compare the two, looking for differences.
InVerse is offline   Reply With Quote
Old 08-15-2009, 03:22 PM   #7
nes_j
Junior Member
 
Join Date: Aug 2009
Posts: 2
Unhappy

Quote:
Originally Posted by InVerse View Post
Is it possible? Absolutely. Anything is possible in ROM hacking.
I didnt understand you well...
I have edited the game and its states in hex editor a thousand times. It doesnt matter what I do in hex viewer, the game changes not....

I have fce ultra, it contains a debugger, but I dont know how to use it...

Please give me some advices...
nes_j is offline   Reply With Quote
Old 08-19-2009, 09:35 AM   #8
D--
Senior Member
 
D--'s Avatar
 
Join Date: Oct 2001
Location: Chaoyang, Beijing, China
Posts: 826
Default

Quote:
Originally Posted by InVerse View Post
Is it possible? Absolutely. Anything is possible in ROM hacking.
Not when you're working on a Famicom cart and there is no mapper that you can hack to, to access a convenient solution. I suppose if you could just design a whole new board if you were creating hardware for your hack, or hack an emulator to support whatever memory map you just invented.

But that's cheating.
__________________
portfolio :: deviantArt :: 微博 :: Twitter
D-- is offline   Reply With Quote
Old 08-28-2009, 07:55 AM   #9
Kilyle
Junior Member
 
Kilyle's Avatar
 
Join Date: May 2009
Location: Stuck in the black hole that is TVTropes.org
Posts: 24
Cool Possibilities

I'd go with "Anything is possible, but some changes are a lot harder to make than other changes."

Assuming the graphics are easily accessible in Tile Layer Pro, changing the graphics is usually a snap. I just changed part of Dragon Warrior IV to the graphics from Ultima: Quest of the Avatar - easy.

Assuming the script is straight-forward and neither MTE nor compressed, changing a few words is easy, and changing the whole script is easy but time-consuming. You do have to put up with some limitations (can't make a line of text any longer than the line in the game), but even a beginner can start doing this the first day.

If the script is MTE, it's a little harder to figure out, so let's call it somewhere between easy and medium.

Once you start working with pointers, you're at medium difficulty. But at that point, you can change the length of the lines of text without too much trouble.

Doing something like changing the battle engine? That's beyond hard. It requires you to learn assembly language, it may take you years to figure out what you're doing, and you may not have the patience or programming skill to even achieve your goal. But it's possible. That's the thing.

So let's see, changing the number of lives you start with? Well, it's just a variable stored somewhere. Changing it is the easy part. Finding it is the hard part.

Also, nes_j, if you can't even manage to make the game change at all, you probably need help figuring out how to use a Hex Editor (such as WindHex) and maybe help with the basic theory of hacking. I suggest you start a new thread to ask for help on that issue, and someone here can at least walk you through the basics (or direct you to a good tutorial).
__________________
Only the curious have, if they live, a tale worth telling at all.
Kilyle is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:53 AM.

Contact Us - Zophar's Domain - Archive - Top

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.