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 - SMB: Changing Individual Enemy Palettes? | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
icegoom

Goomba
Level: 7

Posts: 2/22
EXP: 1278
For next: 170

Since: 06-02-05
From: North America

Since last post: 3 days
Last activity: 3 days
Posted on 10-14-05 02:19 PM Link | Quote
For each level type in Super Mario Bros, there are three palettes that enemies can have. Above ground, for example, Goombas, Buzzy Beetles, and Bullet Bills share one palette, while Green Koopas, Pirahna Plants, Hammer Bros, and Lakitu share another one.

I'm wondering if it's possible to change an enemy from one palette group to another one. Say I wanted to make Goombas red and share a palette with Red Koopas and Spinies. I know how to change the three palettes themselves, and I see where the data is for which tiles the enemies will be made from, but I can't find any data that seems to indicate which of the three palettes a specific sprite will use.

Can anyone who's done this before point me towards what I need to change?
dan

Snap Dragon
Level: 43

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

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 10-14-05 03:45 PM Link | Quote
At $686b in the ROM, there is a table that contains the palette indexes that each enemy uses.
icegoom

Goomba
Level: 7

Posts: 3/22
EXP: 1278
For next: 170

Since: 06-02-05
From: North America

Since last post: 3 days
Last activity: 3 days
Posted on 10-14-05 05:17 PM Link | Quote
Bear with me, I'm very inexperienced with hex editing.

I went into Transhexlation and typed 686b without the dollar sign. (Because Transhexlation didn't think it was a valid offset with the dollar sign in front) It took me to the middle of a row, to 07 followed by E8. I really don't know what to do with that, so I just tried changing 07 to 08 to see if anything would happen. I played through several levels and didn't see any enemies that had changed color. So then I tried changing the next couple of lines to all 00's and seeing if that would change anything. It didn't seem to have any effect in-game.

So I guess I'm going to have to be stupid and n00bish and ask someone to tell me exactly which number I need to change to what in order to get results.
dan

Snap Dragon
Level: 43

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

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 10-14-05 06:05 PM Link | Quote
Not sure how Transhexlation works, but the offset is definitely at 686b. Try using FCEUXD's hex editor, although, I might just whip up a DRDHack module for this.

Edit - I created a DRDHack module for this, grab it here. The enemy names might be slightly incorrect or mixed up, I just took the listing from the listing in SMB Utility.


(edited by dan on 10-14-05 09:27 AM)
(edited by dan on 10-14-05 09:27 AM)
Mattrizzle

Paragoomba
Level: 14

Posts: 67/75
EXP: 12123
For next: 948

Since: 11-19-04
From: Louisville, Kentucky, USA

Since last post: 3 days
Last activity: 5 hours
Posted on 10-14-05 07:50 PM Link | Quote
You must put an x in front of the address in Translhextion for it to read it in hex. Otherwise, it reads it in decimal, removing any letters.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 10-14-05 09:21 PM Link | Quote
Originally posted by Mattrizzle
You must put an x in front of the address in Translhextion for it to read it in hex. Otherwise, it reads it in decimal, removing any letters.


That's an awfully stupid "feature". Who the hell is going to input offsets in decimal?

I think Thingy did that too.. but it's been a while since I used any of those.
icegoom

Goomba
Level: 7

Posts: 4/22
EXP: 1278
For next: 170

Since: 06-02-05
From: North America

Since last post: 3 days
Last activity: 3 days
Posted on 10-15-05 03:08 AM Link | Quote
Ah, I needed to stick an "x" on the front of the offset. Everything makes sense now that I'm in the right place.

I guess I really should try to find FCEUXD and learn how to use that.

Out of curiosity, are sprites' palettes arranged in a similar way in other games, or is just SMB like this?
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 7726/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-15-05 05:04 AM Link | Quote
It's a fairly straightforward format, so it's probably used in a few other games, but it's all up to the programmers in the end. Some may define palettes for each tile of the sprite, store them in some other format, etc.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - SMB: Changing Individual Enemy Palettes? | |


ABII


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



Page rendered in 0.013 seconds.