Would you like to react to this message? Create an account in a few clicks or log in to continue.
A forum to show appreciation and respect for classic video game systems and games. Whether you're a modder, a programmer, or just a collector, this forum is about appreciating classic games and systems in a constructive community environment.
Posts : 1607 Join date : 2012-01-25 Location : Canada
Subject: Starfox hacking Fri Aug 22, 2014 10:03 am
After messing around with lunar compress I managed to alter the starfox "push start" graphic so it fits with my starfox hack:
In this overclocking compatible hack you can hold up to 10 bombs instead of 5. I reprogrammed the sprite drawing routine to draw the bomb graphics in two stacked rows otherwise the bomb graphics would cover text messages from your partners which was no good. I hacked the game so you don't lose your gun level when you get wing damage or when you die. Here's a play through of the hack recorded before I altered the title screen:
I think I've run out of things I wanted to change with this game.
The graphic change was a fairly complicated process. To do this I needed to find and uncompress the graphics of the game using the helpful sniff utility. Once I found the right uncompressed graphic I was able to edit it in tile layer pro. The image data needs to be either the same size or smaller than the original data when recompressed otherwise it won't fit into the rom when you re-insert it. To make the data small enough to fit after altering it I removed the black border around the text to save enough space. I found it best when re-inserting the data to recompress it to its own file, pad the file manually and re-insert it manually using a hex editor.
Unfortunately sniff lists the rom area this data was taken from incorrectly because the data is actually read backwards. The place that the sniff log file lists as the beginning of where the data is taken from is actually the end of where it was taken from. To be certain I was playing with the correct rom area I selected the range it was taken from in a hex editor and filled that range with "00", I suppose I should have used "ea" or "ff" but 00 worked. The idea is all that data should just be compressed image data and not programming. When I did this sure enough the image I wanted to change became a bunch of other tiles but the game still ran fine, this proved I was in the right place.
When I recompressed the data it was completely different from the original data even though I only changed a small part of it, I suppose that's the magic of compressed data. Looking at the recompressed data in a hex editor it was smaller than the original data so it needed padding. I tried padding the end of the data like you normally would but this didn't work. I speculated since the document claims the data is "read backwards" that the padding should instead go at the beginning of the data. I inserted the padding at the beginning and sure enough it suddenly worked just fine.
For anyone who's interested the compressed graphic data for "push start" and the starfox team heads (busts?) is located in the following range on an unheadered rom: