Acmlm's Board - I2 Archive - Rom Hacking - Question - Working with rom space
User | Post |
d4s
Posts: 114/325 |
whoops, sorrry! i somehow took mario bros 2 for mario world 2. anyway, keep that in mind if you ever start to work on an snes game
|
BMF98567
Posts: 600/1261 |
He's talking about Super Mario Bros. 2, an NES game, not SNES. NES expansion is way different and generally much more difficult. However, in SMB2's case, you can expand the VROM data without any problems. Acmlm did it in Strange Mario Bros. 2, if I'm not mistaken.
If you move the entire animation into expanded VROM space right after the ending sequence, change the following bytes:
$1FB05: A0 $1FB09: 80 $1FE3F: 80
This will cause the animation to cycle through banks 80-9E, instead of the usual 18-24. You'll probably also need to modify the iNES header and specify how much extra VROM you've added. |
d4s
Posts: 113/325 |
you dont have to modify the routine itself, just the pointer that points to the graphics.(forget the latter if the bank is hardcoded or somehow derived from the pointer number, though
no, theres no way in hell you could make a bank bigger. the reason for this whole banking stuff is a limitation of the cpu. what you can do is convert a lorom game(32k banks) to hirom, thus having 64kb banks. however, the lower 32k of these banks can only be accessed from sneshi bank $c0 onwards.
sidenote: you can also access the rom lorom style in hirom mode (sneslo $00-80) if you want to keep loading routines simple for example. however, the accessed data has to be in the upper 32k for that.
accessing lorom carts hirom style is possible as well but theres hardly any advantage to that cause every bank is mirrored due to a physically not connected adress line on the cartrigde pcb. ($0000-$7fff access the same data as $8000-$ffff)
hope that answers your question.
|
Rockman
Posts: 99/250 |
I know how to expand a ROM at the end, which is basically adding a free bank to use. But is it possible to make a bank bigger than what it already is?
Its hard to explain, so I'll use an example:
I managed to add 16 frames of animation to Super Mario Bros. 2, but not without overwriting existing pages of graphics. Is there a way I can move these pages over, or is it possible to add the new 8 frames, and put them somewhere else, and call upon them? I would probably have to modify/add new code to do this right? If anyone can help me out I would appreciate it.
EDIT - Wait. I think I found the answer for myself. Basically, what I can do, is expand the ROM at the end as I normally would, add the 16 frames there, and modify the animation calling routine!! |
|