| |||
Views: 88,434,795 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-19-24 06:13 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 3 guests | 2 bots |
Main - ROM Hacking - Rom expanding | New thread | New reply |
born2party |
| ||
Level: 15 Posts: 28/35 EXP: 15849 Next: 535 Since: 04-04-08 Last post: 5246 days Last view: 4845 days |
I don't get it! I used Windhex32 to expand the rom so i could put in longer text on the translated version of Glory Heracles 2 nes and still got bad results of garbled or text from other parts of the game. I even tried dragon warrior nes and pratically the same results. I also went as far as adding the games line breaks and such to keep from over running on one line. "No luck!".
I'm well familiar with working with dragon warrior. Like a lot of other rom hackers,I've text changed, palette changed ,sprite changed and rearranged the games tiles. But never could figure out to expand one to add more text or w/e to it. Any help would be highly appreciated |
KP9000 |
| |||
Boomboom Level: 90 Posts: 789/1975 EXP: 6949364 Next: 239245 Since: 02-19-07 Last post: 3573 days Last view: 3197 days |
|
smkdan |
| ||
Ninji Level: 36 Posts: 211/238 EXP: 288481 Next: 19629 Since: 05-26-07 Last post: 4055 days Last view: 4004 days |
if you want to expand a NES ROM you have to be familiar with the mapper it uses and either modify the code/data that accesses banks to point to the new bank if that's what you need or patch the original code so that the game can actually switch to the new bank and make use of whatever data. if you don't know assembly then you won't get very far unless the data is laid out in an extremely friendly format, it's not as easy as expanding a SNES or genesis rom for example. |
Jigglysaint |
| ||
Red Paragoomba Level: 20 Posts: 42/62 EXP: 38517 Next: 3922 Since: 04-04-07 Last post: 4610 days Last view: 2347 days |
I found out recently that it's very easy to exapand a Gameboy rom. As for NES, I don't know. I do know that the main data bank is typically the last, but there are many games that have CHR ROM which is after the main program. |
Kawa |
| ||
CHIKKN NI A BAAZZKIT!!! 80's Cheerilee is best pony Level: 138 Posts: 1764/5344 EXP: 30927121 Next: 735860 Since: 02-20-07 From: The Netherlands Last post: 4491 days Last view: 2626 days |
Posted by smkdanOr GBA, up to 32 MiB. Not sure about larger than that though... Still, smkdan's thing about mappers is correct. *** Correct me if I'm wrong here *** Simple games like Super Mario Bros 1 and the very very first NES games have only two chips: one PRG-ROM and one CHR-ROM. These contain all the program code and non-character data 512 tiles worth of character data respectively. These are saved as a single .NES file, with the header specifying how many of each. The NES itself can only read one of each. Adding a memory mapper allows you to (among other effects specific to said mapper) switch in a different chip at will, usually with a certain divisor. For example, you could switch in up to four different program banks at a given time, or split the tileset into several pieces. This is how basic animated tilesets are done, actually. The better the mapper, usually, the bigger the divisor. One thing they all share though is that the game must actually set certain registers to cause these bank switches. Different mappers have different registers and values. ____________________ Wife make lunch - Shampoo Opera - give it a spin Spare some of your free time? <GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered Kawa rocks — byuu |
never-obsolete |
| ||
Rat Level: 24 Posts: 46/96 EXP: 74453 Next: 3672 Since: 02-22-07 From: Phoenix, AZ Last post: 2589 days Last view: 2589 days |
A trick I used in messing with Castlevania 2 was to have two banks of text. The first bank was the same as the original text and the second was all my new text. The new text had all its pointers have an address that was:
$0000 < addr < $8000 when the string routine read the pointer it checked if the msb was >= $80. If so, it went about its business as normal. If the msb < $80, it would be ORed with $80, the new bank swapped in, then it goes about its business. The same effect could have been achieved by using the string id#, ...if greater the "x" swap banks, else not. Also, did you update the header? |
born2party |
| ||
Level: 15 Posts: 29/35 EXP: 15849 Next: 535 Since: 04-04-08 Last post: 5246 days Last view: 4845 days |
I googled and found some asm tutorials and even read the one here. I think i'm just gonna stick to the basics.
But thanks a lot for your responses! |
Main - ROM Hacking - Rom expanding | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 52, rows: 79/79, time: 0.016 seconds. |