Adding an Intro to FF3us
This short tutorial will cover how to add an intro, or commonly called splash screen, to FF3us. The code and process is based on a more general tutorial that is somewhat outdated due to the utilities used not being able to run on x64 systems.
Requirements
You'll need the following to complete the tutorial:
- superfamiconv (or snesgfx262)
- snesgfx262 (or superfamiconv)
- an image editor (as an example Gimp)
- a hex editor (optional, as an example HxD)
- an IPS patching utility (optional, as an example Floating IPS)
- an expanded FF6 ROM (32Mbit is enough)
Preparing the Image
You'll need first to have an image in PNG format. The image must be 256×224 and indexed to 256 colors. The image can have less than 256 colors though. This preparation can be done with Gimp and showing in detail how to do these steps is a bit out of scope for this tutorial. However to index to 256 color, you need to select Image → mode → Indexed and then select an optimal palette of 256 colors.
The image used in this tutorial is the following one and was based on this.
Using superfamiconv
This is the most straightforward conversion method. If you really want a GUI application, go to next section right away.
You simply put your image (here test.png) in same folder as the superfamiconv utility and type the following in Windows command prompt (after moving in said directory):
superfamiconv -i test.png -p palette.bin -t tiles.bin -m map.bin --no-flip --bpp 8 --map-width 32 --map-height 28
This will generate 3 files: tiles.bin, palette.bin and map.bin. Alternatively, if you named your image test.png, you can simply move the superfamiconv.bat file in the utility folder and execute it to do the conversion. You can now skip next section and continue after.
Using snesgfx262
You can also use this GUI utility to generate the files needed. Here are the suggested settings:
Now after the conversion you'll need to rename the 3 files:
test.bin → tiles.bin
pal.mw3 → palette.bin
test_map_16.bin → map.bin
You can optionally trim the last two bytes of palette file and the extra $100 byte on map file but anyway the DMA transfers coded are transferring 0x200 and 0x700 bytes so there is no worry. These extra step will make you save a bit of space that's all.
Assembling the intro
When you have your 3 files ready, move them in same directory as bass and intro.asm. You can edit the ASM file to specify a bank for your code and data; since the hack take almost a full bank, it is suggested to input an offset of a bank start, here $F30000. You can also specify if you need to press a key to proceed to the beginning of FF6 intro or not. In this case input a 1 instead of the 0 on the varKeyPress variable:
After this all is needed is assembling the hack with bass:
bass -o romname.smc intro.asm
Alternatively, if you named your rom “rom.smc”, you can simply run the bass.bat file to assemble the hack.
Removing the white FF3us logo
If you want to remove this logo, you can simply remeove the JSR here:
7E/501A: 20F750 JSR $50F7 (Handler for white logo)
If you have a vanilla $C2 compressed block, no need to decompress and recompress it, the 3 bytes are directly accessible:
A patch is available for this small hack in the archive you are supposed to have downloaded. A patch for the splash screen use in this tutorial is also available.
That is all for this tutorial!