Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Need help with something | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Rockman

Flurry
Level: 26

Posts: 56/250
EXP: 96387
For next: 5888

Since: 03-17-04

Since last post: 18 days
Last activity: 16 days
Posted on 10-30-04 05:24 AM Link | Quote
If you put graphics in a different place in your ROM, how do you call upon them? For example, say you expanded your ROM, so you have more free space available. Now, you put graphics in that new free space. How do you use those graphics in your hack? How do you get them to show up in your pattern table?

Also, are there any helpful documents related to this?
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 767/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 10-30-04 05:28 AM Link | Quote
Well you should say which system you're inquiring about.
Rockman

Flurry
Level: 26

Posts: 57/250
EXP: 96387
For next: 5888

Since: 03-17-04

Since last post: 18 days
Last activity: 16 days
Posted on 10-30-04 05:32 AM Link | Quote
The NES.
Dish

Spiny
Level: 38

Posts: 151/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 10-30-04 05:54 AM Link | Quote
Depends.

If the game uses CHR-ROM swapping, you'll have to figure out where in the code the game loads the bank number to swap in those graphics, and change the value so that it swaps to a different bank. It might be as simple as:

LDA #$[[[bank number here]]]
JSR CHR_Swap_Routine

Finding that code might be difficult... and even the code itself might be more complicated. You might try finding it by setting breakpoints on CHR swapping registers and watching for when the game swaps in the bank you want to change... then backtracking the code until you find where the change needs to be made.


If the game uses CHR-RAM it's a bit more difficult... although the idea might still be the same. At any rate... I doubt the game in question uses CHR-RAM, (for reasons I won't get into ;D)
Rockman

Flurry
Level: 26

Posts: 58/250
EXP: 96387
For next: 5888

Since: 03-17-04

Since last post: 18 days
Last activity: 16 days
Posted on 10-30-04 06:08 AM Link | Quote
The game I'm working with is Super Mario Bros. 3. There's a lot of data on the game, but I don't know if that data will help me or not.

http://board.acmlm.org/thread.php?id=2380&page=0

Other than what you told me, I have no clue what to do.
dan

Snap Dragon
Level: 43

Posts: 214/782
EXP: 534516
For next: 30530

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 10-30-04 02:43 PM Link | Quote
You look up the registers that control the pattern table for the mapper the game is using using Firebug's document. Then, you put breakpoints on the register when you find the place in the game where you want to change the pattern table.

However, as SMB3 uses MMC3, this could take a while, because to initiate a swap of the pattern table using MMC3, you have to write to $8000, then to $8001, which is the same method used to swap PRG banks out.

Hope that actually made some sense.
iamhiro1112

Armos
Level: 35

Posts: 100/487
EXP: 259927
For next: 20009

Since: 03-27-04
From: sd

Since last post: 18 days
Last activity: 7 days
Posted on 10-31-04 03:16 AM Link | Quote
One day, in a galaxy far far away...they might make SMB3 editors that are as advanced as the lunar magic. It sure would be nice to be able to add extra enemies wihtout having to replace the ones that are already there.
dan

Snap Dragon
Level: 43

Posts: 220/782
EXP: 534516
For next: 30530

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 10-31-04 04:07 PM Link | Quote
The enemy adding might be possible (with an efficient level management system in place), but actual expansion of the PRG ROM to give you more free space to work with is probably impossible. NES hacking will always be limited by the small size of banks in NES ROMs.
Jaspile

Red Koopa
Level: 20

Posts: 65/133
EXP: 37467
For next: 4972

Since: 03-15-04
From: Paris, France

Since last post: 20 hours
Last activity: 11 hours
Posted on 11-03-04 03:30 PM Link | Quote
DahrkDaiz found all the data you need :

$719 = First 2K Bank of GFX (upper left of pattern table, $0000-$07FF)
$71A = Second 2K Bank of GFX (lower left of pattern table, $0800-$0FFF)
$71B = First 1K bank of GFX (upper right of pattern table, $1000-$13FF)
$71C = Second 1K bank of GFX (second from upper right of pattern table, $1400-$17FF)
$71D = Third 1K bank of GFX (second from lower right of pattern table, $1800-$1BFF)
$71E = Fourth 1K bank of GFX (lower right of pattern table, $1C00-$1FFF)
$71F = Current bank @ 0xA000
$720 = Current bank @ 0xC000

Now you just have to write a value to one of these adresses to select the new graphics you want. Now to know on which gfx page are your graphics, it works as this ; each graphic page you can see on YY-CHR = 2 gfx pages for your game, 1st page from tiles 00-7F, 2nd page from tiles 80-FF ; each gfx page should be an even number, so for example, on the first Smb3's YY-CHR page (raccoon mario), we have gfx pages 0 and 2.
Now try to change $719 to 0 with a cheat console, and you'll see some graphics messed up with raccoon mario tiles.
Hope this has been clear enough...
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Need help with something | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.076 seconds.