This guide covers the process of inserting conversation backgrounds in your buildfile, without the aid of FEBuilder.
This guide is geared towards 16 color backgrounds, as 64 color backgrounds aren’t easily insertable without FEBuilder.
This guide assumes that you have a basic knowledge of Event Assembler, and how it works.
it will also assume you have properly formatted conversation background images.
For a long while, inserting conversation backgrounds has been…less than ideal for people using buildfiles.
I seek to change that with this document.
Thanks to tmx2tsa, made by @Snakey1, we don’t need to rely on FEBuilder to create our TSA for us.
We can instead make one TSA for every background we insert.
Extra details on tmx2tsa can be found here:
First off, get tmx2tsa. It can be found in the Snake’s Pit of ASM.
Place it in an easy to reach directory.
Once you have tmx2tsa, get your formatted conversation background image, and put it the same directory as tmxt2tsa.
Creating the TSA
Open Tiled, and create a TMX map with 8x8 tiles, with a 32 tile width and a 20 tile height.
Add your conversation background image as a tileset, with 8x8 tiles.
Once you do this, select the whole tileset, then place it on the map. The map itself should look something like this:
Now save the TMX map to the same directory as the conversation background image you used as a tileset.
Next, run tmx2tsa on the TMX file with the palette index set to 0.
This can be done via a command line.
For Windows users, this would look like:
tmx2tsa -p 0 TMXFile.tmx TSAFile.dmp
For everyone else, you’ll need to use the python script like so:
python3 tmx2tsa.py -p 0 TMXFile.tmx TSAFile.dmp
This should output the TSA file that you need.
Including the files in your buildfile
Open a .event file to be used as your conversation background installer.
#incbin the TSA file you made and give it a label:
ALIGN 4 BGTSA: #incbin "BackgroundTSA.dmp"
#incbin your conversation background image (lz77 compressed), and its palette:
ALIGN 4 BackgroundImage: #incbin "Background.lz77" ALIGN 4 BackgroundPalette: #incbin "Background.pal"
Using the background
To apply your background to the background table, use this macro:
#define ConvoBackgroundTable 0x95DD1C //Vanilla table #define SetConvoBackground(Index, ImagePointer, TSAPointer, PalettePointer) "PUSH; ORG ConvoBackgroundTable + (Index * 0xC); POIN ImagePointer TSAPointer PalettePointer; POP" //Let's replace Woodland since it's used in the prologue of vanilla SetConvoBackground(Woodland, BackgroundImage, BGTSA, BackgroundPalette)
BGTSA can be used for any new conversation backgrounds you want to add.
You should be able to use the background the same way you’d use any other background.
Now assemble your ROM. The background should be in place.
Make sure not to overwrite conversation background ID 0x35.
It’s the pure black background and the game uses it.
Background ID 0x37 is used to select a random background for the support viewer.
It should also be left alone, unless you know what you’re doing.
It’s worth mentioning that you can repoint and expand the conversation background table.
The addresses to repoint are as follows:
PUSH ORG 0xE894 POIN ConvoBackgroundTable ORG 0xECF4 POIN ConvoBackgroundTable ORG 0xEDF8 POIN ConvoBackgroundTable ORG 0x10E44 POIN ConvoBackgroundTable POP
For more information on repointing and expanding tables and lists, read Clendo’s Guide on Repointing and Expanding Tables.
Snakey1 for tmx2tsa.
The JP Hack team for the
@Vesly for the documentation on repointing the conversation background table.