Author
|
Topic: Graphic hacking in Romancing Saga 3 (Read 1323 times)
|
JohnTheRonso
Guest
|
|
« on: March 08, 2007, 01:35:45 pm » |
|
I've started to learn how to hack roms, but it's already hard... I'm trying to change the graphic in the game, but it took me a hour to find the character sprites and now I tried editing it, but the pallete has about 12 colors, and I just don't know if these are the right ones and I once took the color that is yellow on the sprite of an other character and used it on the one I was editing, but the color that was yellow for that other one, was grey for this one I edited. Is it a bug of tlp? Do I not understand something? Please help
|
|
|
|
Ryusui
Guest
|
|
« Reply #1 on: March 08, 2007, 02:01:18 pm » |
|
The colors you see in TLP have no relation to what is actually displayed: it's a placeholder palette showing you which pixels will be different colors. If you "take a yellow" from one sprite and draw it on another, then the yellow you see in TLP will be the corresponding color in that sprite's palette in the actual game. It's like a paint-by-numbers game: color #5 might be red in one picture's palette but blue in another one.
|
|
|
|
JohnTheRonso
Guest
|
|
« Reply #2 on: March 08, 2007, 02:03:30 pm » |
|
I see....but look at this http://www.youtube.com/watch?v=ImTgOaazWOYhere the guy somehow managed to copy HIMSELF in a really swell quality into the game! HOW?
|
|
|
|
Ryusui
Guest
|
|
« Reply #3 on: March 08, 2007, 02:26:41 pm » |
|
That, assuming it's legit and not a video edit, requires palette hacking. It's not something you can do in Tile Layer Pro, and under normal circumstances, it requires extensive hardware knowledge.
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #4 on: March 08, 2007, 03:09:36 pm » |
|
It's quite a pain in the ass to stick custom sprites that use their own new palette/s like that. I've done it. Hacking in the sprite is one thing. Getting a new palette to load and the sprite to reference it is another. You can't edit existing palettes used in the game because it will affect the colors of ALL things using it. You need to do some assembly hacks to load a new palette, but ONLY when that sprite is going to be on the screen. Otherwise, you've tied up one of the palette locations that the game may need to use. Furthermore, if the game happens to be actively using ALL available palettes at the time your sprite is displayed, you're probably SOL. You'll have to use the existing colors.
Bottom line is you can't do something like that without assembly hacks. And potentially annoying ones at that. I had a tough time find a good place in the code to load my custom palette without affecting anything else in the game. In retrospect, it was fun, but probably not worth the time.
|
|
|
|
Suzaku
Guest
|
|
« Reply #5 on: March 08, 2007, 03:25:29 pm » |
|
Silly question from a romhacking dumbass.
Would it be at all possible to load multiple palettes for a single sprite? And have, say, the hair pull from one palette, the skintone from another palette, and the clothes from another?
Just curious.
|
|
|
|
creaothceann
Guest
|
|
« Reply #6 on: March 08, 2007, 04:30:31 pm » |
|
There are two kinds of sprites: hardware sprites and "software" sprites. For example, the player's protagonist in Street Fighter or Yoshi's Island is constructed from several hardware sprites.
Each hardware sprite can then have it's own subpalette index (which indicates which 16-color section of the 256-color palette it uses).
|
|
|
|
Suzaku
Guest
|
|
« Reply #7 on: March 08, 2007, 04:59:27 pm » |
|
Okay, that makes sense. Does that make a software sprite a collection of hardware sprites, or is it something completely different? Again, this is just idle curiosity.
|
|
|
|
Ryusui
Guest
|
|
« Reply #8 on: March 08, 2007, 05:31:52 pm » |
|
I've never heard the term "software sprite" used before, but yes.
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #9 on: March 08, 2007, 05:53:56 pm » |
|
The SNES uses 4bpp sprites. By definition that means each pixel can be one of 16 different colors.
That means, each single sprite can access ONE sub palette or row of 16 colors out of the 256 total. The sub palette index the sprite uses is set in the OAM(sprite definition) table.
If you put several sprites together to make one large sprite, it would then be possible to access 16 different colors per section of the sprite. With some trickery you could potentially have many colors for a single 'sprite'. But in reality this sprite is still subject to all the same rules and is made up of more than one hardware sprite.
You're still limited to only 16 colors per hardware sprite regardless.
|
|
|
|
creaothceann
Guest
|
|
« Reply #10 on: March 08, 2007, 06:34:30 pm » |
|
Unless you change colors or attributes between scanlines ... but nobody does that. Ryusui: That's when videogame magazines said "This game has huge sprites!" etc.
|
|
|
|
Suzaku
Guest
|
|
« Reply #11 on: March 08, 2007, 06:38:40 pm » |
|
Cool. Thanks for the explanation. That actually makes perfect sense. Each pixel in a SNES hardware sprite can be any one of the 16 colors in that sprite's subpalette. You can combine multiple hardware sprites together to form one big sprite, and each hardware sprite can use a separate palette (but each pixel is limited to being one of the 16 colors in that chosen palette). Thus, you can have a "sprite" composed of, say, two hardware sprites, sporting a total of 32 colors.
On the one hand, that can't be easy to code. On the other hand, one could come up with some interesting effects. Heck, font shading alone could be cool. Likely pointless, but cool nonetheless.
|
|
|
|
JohnTheRonso
Guest
|
|
« Reply #12 on: March 09, 2007, 01:24:51 am » |
|
I got no idea how I deserve the title dumbass, but anyways I'll try the pallete thing for now
|
|
|
|
Ryusui
Guest
|
|
« Reply #13 on: March 09, 2007, 01:44:06 am » |
|
Unless you change colors or attributes between scanlines ... but nobody does that. Ryusui: That's when videogame magazines said "This game has huge sprites!" etc. I meant I'm familiar with the concept. It's the only way you can get huge sprites; I know full well that there's a maximum OAM sprite size (which I vaguely recall being 32x32, but I am very likely wrong). I just never heard the phrases "hardware sprite" and "software sprite" used to define the actual OAM sprites versus, for example, the full pic of Ryu or Guile or Chun-Li or whoever before.
|
|
|
|
Spikeman
Guest
|
|
« Reply #14 on: March 09, 2007, 01:49:01 am » |
|
I'm pretty sure Suzaku was referring to himself as the dumbass. Also, from my experience, palette hacking is actually pretty easy. Assuming, of course, that no other sprites are using the palette. Just find the palette in memory, search for those values in the ROM, and edit it.
|
|
|
|
|