Tuesday, April 7, 2009

Week 07 Update

I'm not really sure where to start with this thing, since there's so much to go over since we've started. I suppose the best thing to do is start with where I'm at now and try to work my back backwards as I find more time to update. I was trying to focus on graphics this week (more specifically, sprites), and ended up look into how to swap out palettes for certain graphics. Essentially in a super nintendo tile there are 16 color slots which can be used to make up any single tile. The tile then refers to a palette, which tells the super nintendo what color values to put in those slots. It's a great concept for saving space, but can be a headache when you open up the tileset of a rom and get this because you don't have the right palette data:

So what that means is you have to find a way to decode the palette data for the tile you're looking to edit, as well as find where the palette data is referred to in the game (if, for example, you wanted to make Ryu's robe neon green). Conceptually its actually quite simple, and this wonderful person Digisalt has released this wonderful set of programs with an equally wonderful tutorial to accomplish this task (available here). Of course though, as things seem to go with this, my computer seems to have some disagreement with some form of software required or another. I don't think it's Digisalt's programs, which seem to be doing exactly what they're suppsosed to, but rather Tile Layer Pro, which is having a hard time loading palette data extracted from Digisalt's exe's (or rather, not loading any palette data at all). I'm working on figuring this out now, and I have a hunch it might be my computer (Windows XP and my graphics card seem to be very disagreeable with a lot of these programs floating around for rom hacking), so we'll see what happens with that. It's a nice trick to be able to have under your belt, and is actually quite simple as long as everything works properly.

Either way, that ended up not working, but as a result I did end up developing a (very crude) method of translating palette data from the game so that I could edit the "color slots" of the graphics (not the paletta data, but the acutal image itself). When first looking at that mess of tiles in Tile Layer Pro (see above) I thought, "Man, I'm never going to be able to do anything with this." But, after three weeks of staring at these tile sets and reorganizing them, they actually start to get pretty clear.

By focusing on a very distinct tile, such as the single tile that makes up Ryu's left foot when he's standing, it isn't too hard to sort through the tileset until you find what you're looking for. Then, taking a screenshot from ZSNES, i simply compared the actual in game palette colors to what was being read in Tile Layer Pro. After that it was a simple matter of copying over the 16 RGB values and all of a sudden the tile set is as easy to read as a Dr. Suess book. You can see a comparison below.

Once you get it to that point you can really do with it as you please. Of course, a videogame is an animation, not a still image, so even doing one little change would require you to modify every frame where that change is visible. As a test I added a little stupid red mask to Ryu. Kind of tedius, yes, and very pointless, yes, but it shows what can be done with this. I was even able to find in the tileset where Ryu's portraits were located so I could put the mask on the character select screen, as well as a badass scar on Ryu's right cheek (the portraits, by the way, required me to define a different palette to read them, which is always exciting). You can see a screengrab and a little video below of masked Ryu in action. You can see there are a few frames of his face I missed, and man, did i draw a lot of little red masks on little red faces.

(I just realized how bad the quality on this video is, sorry. But it gets the idea across)

On another note, I found out that the text in Street Fighter II is in fact editable. I was worried that the text would simply be some simple graphics located somewhere in the rom because really, how much text is there in Street Fighter? Well, more than I remember, apparently, because there's a whole lot you can change around, which is pretty exciting. In fact, pretty much every word in that game is changeable due to the fact that the amount of text in the game is so small. It makes it very easy to single out what you want to change and just go for it. Some screen shots below, I'm not really sure where to go with this, just that it's a very fun thing to have control over. I'll go over the process of translation/text editing sometime this next week, it's really quite easy and wonderful.

This is just a brief runover of what I've been up to this week, I'll keep in mind more thorough and clear explanations of this for the future. I also spent a lot of time messing around with F-Zero, which I unfortunately never really got a chance to play on the super nintendo as a child--a tragic story. It's so beautiful, i really would love to do something with it, but with its fancy "3D Engine" and bells and whistles, everything I did to it just made it crash and beep at me. Maybe I'll find something out with it in the future.


No comments:

Post a Comment