Author
|
Topic: Ask about Rom expanding (Read 2 times)
|
Rappa
Guest
|
|
« on: February 01, 2009, 08:00:03 am » |
|
Hi everyone. Sorry for my third post I often heard the phrase "Rom expanding". Ofcourse I know Nes Rom expanding is near to impossible, so it's not the case here. I want to ask that what is the use of expanding the Rom? Does Rom expanding provide us more space for the translated text? I don't find any document explain about this. The second I want to ask, I have seen many different Snes header. Some of the begin at 0000080000AA.... while other begin at 01000200....... So I want to ask why do them so variable? I think the header must be the same for all Roms. Do headers influence the Rom? I mean, copy the header from Rom A and paste to Rom B, does it screw up the game? These may be stupid questions, but I'm curious about them. Thank you very much.
|
|
|
|
Gideon Zhi
Guest
|
|
« Reply #1 on: February 01, 2009, 08:30:58 am » |
|
There are two kinds of headers in an SNES game - a copier header and a cartridge header. The cartridge header, theoretically, is kind of a proof-of-manufacture tag; it should contain the name of the game, its size, whether it has sram or not, a byte that shows who made it, that sort of thing. Unfortunately this information is often inaccurate and is rarely ever used. I'm pretty sure just about the only things ever used in the cart header are reset vectors and the like. Cart headers take up the last 64 bytes or so of the first bank - 7FC0-7FFF and FFC0-FFFF for lorom and hirom respectively.
Copier headers are 512 bytes of data tacked onto the *front* of the rom and are used by backup devices to compensate for the inaccuracies in the cartridge headers. They're largely vestigial and any emulator worth its salt will ignore them completely. They're kind of like tonsils - they don't serve any useful function (at least, not unless you're planning on playing the game on a copier) and get in the way more often than not. If you're hacking any roms, I strongly recommend removing copier headers. If you ARE using a backup device to play a game, you can always re-add its copier header before loading the game up.
|
|
|
|
Rappa
Guest
|
|
« Reply #2 on: February 07, 2009, 07:18:08 am » |
|
Thank you very much! By the way, are you the one at "JUST DO IT IDIOT!"? I made me scare to piss reading the instruction. Thanks for making it. Very funny.
But I can't find vol 2 and more any where.
|
|
|
|
Next gen Cowboy
Guest
|
|
« Reply #3 on: February 07, 2009, 01:48:33 pm » |
|
Volume 2 will be released posthumously Sorry Gid just picking a bit. http://www.romhacking.net/community/335/ - Docs Gid has submitted here. http://agtp.romhack.net/docs.php - Docs from his site.. RedComet - tried to fix the link so it owuldn't break the board. >_>
|
|
« Last Edit: February 07, 2009, 09:14:42 pm by RedComet »
|
|
|
|
GenoBlast
Guest
|
|
« Reply #4 on: February 07, 2009, 02:01:25 pm » |
|
Why don't Gideon's documents show up in his forum profile? That's really bizarre...
...I've figured out the answer while posting, but maybe it's still worth bringing up. His forum profile shows files submitted by Aeon Genesis, but not Gideon Zhi. Is there anything that can be done about that? Maybe in RHDN 2.1? (Or 2.2, I forget which version we're on)
|
|
|
|
InVerse
Guest
|
|
« Reply #5 on: February 07, 2009, 02:48:15 pm » |
|
Why don't Gideon's documents show up in his forum profile? That's really bizarre...
...I've figured out the answer while posting, but maybe it's still worth bringing up. His forum profile shows files submitted by Aeon Genesis, but not Gideon Zhi. Is there anything that can be done about that? Maybe in RHDN 2.1? (Or 2.2, I forget which version we're on)
It can easily be fixed, just not by anyone who actually has the ability to fix it, and most of the people who know how to go about it aren't interested in working with the powers that be.
|
|
|
|
creaothceann
Guest
|
|
« Reply #6 on: February 07, 2009, 07:05:03 pm » |
|
I have seen many different Snes header. Some of the begin at $0000080000AA.... while other begin at $01000200....... So I want to ask why do them so variable? I think the header must be the same for all Roms.
The 200 is from the copier header. (512 decimal is 200 hexadecimal.) The internal header is supposed to be at $FFB0; but when the cartridge gets addresses, it can transform them to something else. In case of LoROM the 16th address line is ignored, so $FFB0 becomes $7FB0.
|
|
« Last Edit: February 07, 2009, 07:22:32 pm by creaothceann »
|
|
|
|
Spinner 8
Guest
|
|
« Reply #7 on: February 07, 2009, 10:32:31 pm » |
|
It can easily be fixed, just not by anyone who actually has the ability to fix it, and most of the people who know how to go about it aren't interested in working with the powers that be.
Hey InVerse, clear out your inbox already. (mods: I apologize for this off-topic post; please feel free to lock this thread)
|
|
|
|
GenoBlast
Guest
|
|
« Reply #8 on: February 07, 2009, 11:15:35 pm » |
|
Hey InVerse, clear out your inbox already.
(mods: I apologize for this off-topic post; please feel free to lock this thread)
...I think he's going through every single thread in Gaming Discussion. It'll probably be a while before he sees this. I've actually been trying to PM him, too, for like an hour. :banghead:
|
|
|
|
InVerse
Guest
|
|
« Reply #9 on: February 14, 2009, 02:17:15 pm » |
|
Well, I just now saw the notes to me in this thread, but I deleted a few messages already anyway. I'd actually noticed a few days ago that it was full but decided to leave it that way since there's no convenient way to save pertinent information and I'm opposed to the low limits of the message quota.
|
|
|
|
Rappa
Guest
|
|
« Reply #10 on: March 05, 2009, 07:19:24 am » |
|
I'm done with Fireemblem 3. It's safe to expand that Rom with Lunar Expand.
I have moved to Fireemblelm 4, which is a Hirom and it's already 4Mb. It's not enough space for the translated text. So I intend to expand it. But Lunar Expand doesn't have the option to expand Hirom above 4Mb (all I see are exhirom and exlorom from its menu). So I used an hex editor to add a bunch of 00000000 at the end of the Rom. Currently it works (now the Rom is 6Mb) properly (can't see any error). But I wonder if everyone can expand his Rom easily by hand like this, why use Lunar Expand because it's limitted to just some type of Rom.
So I think I'm wrong. It would be great if anyone teach me wethere I'm wrong or not when expanding Rom manually.
Thank you in advance.
|
|
|
|
KingMike
Guest
|
|
« Reply #11 on: March 05, 2009, 08:50:17 am » |
|
It's because the EX addressing modes aren't certain to be compatible. (the extra space is accessed using addresses that are mirrors in lower address modes)
(if you look at LoROM and HiROM address maps, you'll see they both have a physical limit of 4MB)
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #12 on: March 05, 2009, 09:37:26 am » |
|
You probably won't see any errors on emulators. The only thing that will happen is you just won't be able to access any of the data you put in the expanded area. Have you tried that? I'd imagine that will fail. You have to set your ROM up to mimic one of the other supported ROMs above 4MB. The reason being is you have to use something emulators will be able to map correctly. Up to 4MB, in most cases, you could just expand it by hand. But you aren't understanding what's going on. Lunar Expand isn't limited to 'just some type of ROM'. It's limited to the cart mappings that cover most commercial carts. You can't just make up a cart mapping and expect an emulator or copier to support it out of the box. The reason you can expand most HiROM and LoROM games by hand up to 4MB is because the ROM space is linearly mapped. And the way system addressing works is you can address that full 4MB area whether there's actual data there or not. So for games that don't use it all, simply adding it in manually works just fine. This is simplified but that's the general idea. Nonetheless, before I go off on a rant that will probably fly over your head, I'll give you some recommend reading so you can attempt to understand what you're doing and what's going on with these expansions. http://www.romhacking.net/docs/193/Fully understanding SNES addressing and cart mapping is a bit of difficult subject to grasp at first, especially for cases that deviates from the the most common. You have to try and look at it from the SNES perspective. All it can see are these addresses from 00:0000 to FF:FFFF. It doesn't care what's at the other end. What actually is on the other end can vary and be influenced by the world and hardware around it. In the case of regions that aren't mapped to the system internally, the hardware on the cart controls what actual ROM data will respond to the address that makes it out to the cart. It just so happens that most carts used either LoROM or HiROM mapping. Theoretically you could create a cart that responds to only a single address, say C0:0000, but has mapping and/or other special hardware on board that would swap in and return any desired ROM data at C0:000. That would be a dumb cart to make and not work on any emulators or copiers, but it should put things in perspective for you. All the SNES does is yell out on the address bus 'I want data for C0:0000' What actually comes back on the data bus could be damn near anything from any piece of hardware, register, or device that responds to that.
|
|
|
|
Rappa
Guest
|
|
« Reply #13 on: March 06, 2009, 05:56:37 am » |
|
Thank you very much, Nightcrawler. Your explaination is clear. I was totally wrong and all the data in the expanded space don't work!
|
|
|
|
|