Dumb buildfile (and discord) questions

Hi everyone, I’m here again to ask a couple of stupid new questions
As a matter of flexibility, and mainly because FEbuilder GBA consumes a lot of space, I decided to slowly transfer my works completely to a buildfile, I haven’t had much trouble until now … except for extending the addresses, but following this tutorial it seems I did it without too much pain.
now … getting to the point of the question, I have a bit of a problem with the background table, I didn’t think I got all these problems from something that I thought was simple, instead I find the most complicated, in practice I have expanded this table through the csv method:

event file of the csv
#define csvmacro001(arg000,arg001,arg002) "WORD arg000 arg001 arg002 "

PUSH
ORG $E894
POIN NewBackgroundTable
ORG $ECF4
POIN NewBackgroundTable
ORG $EDF8
POIN NewBackgroundTable
ORG $10E44
POIN NewBackgroundTable
POP
ALIGN 4
NewBackgroundTable:
csvmacro001(0x88D2700,0x88D5D24,0x88D61D8)
csvmacro001(0x88D62D8,0x88D9FF4,0x88DA4A8)
csvmacro001(0x88DA5A8,0x88DD8F4,0x88DDDA8)
csvmacro001(0x88DDEA8,0x88E0E20,0x88E12D4)
csvmacro001(0x88DDEA8,0x88E0E20,0x88E13D4)
csvmacro001(0x88E14D4,0x88E5340,0x88E57F4)
csvmacro001(0x88E14D4,0x88E5340,0x88E58F4)
csvmacro001(0x88E59F4,0x88E81AC,0x88E8660)
csvmacro001(0x88E8760,0x88EB6C8,0x88EBB7C)
csvmacro001(0x88EBC7C,0x88EE960,0x88EEE14)
csvmacro001(0x88EEF14,0x88F0B58,0x88F100C)
csvmacro001(0x88EEF14,0x88F0B58,0x88F110C)
csvmacro001(0x88F120C,0x88F5AF4,0x88F5FA8)
csvmacro001(0x88F120C,0x88F5AF4,0x88F60A8)
csvmacro001(0x88F61A8,0x88F9598,0x88F9A4C)
csvmacro001(0x88F61A8,0x88F9598,0x88F9B4C)
csvmacro001(0x88F9C4C,0x88FB350,0x88FB804)
csvmacro001(0x88F9C4C,0x88FB350,0x88FB904)
csvmacro001(0x88FBA04,0x88FD424,0x88FD8D8)
csvmacro001(0x88FD9D8,0x89018A0,0x8901D54)
csvmacro001(0x88FD9D8,0x89018A0,0x8901E54)
csvmacro001(0x8901F54,0x8904DEC,0x89052A0)
csvmacro001(0x8901F54,0x8904DEC,0x89053A0)
csvmacro001(0x89054A0,0x890792C,0x8907DE0)
csvmacro001(0x8907EE0,0x8909C64,0x890A118)
csvmacro001(0x8907EE0,0x8909C64,0x890A218)
csvmacro001(0x8907EE0,0x8909C64,0x890A318)
csvmacro001(0x890A418,0x890C7D4,0x890CC88)
csvmacro001(0x890CD88,0x890E7E8,0x890EC9C)
csvmacro001(0x890ED9C,0x8912060,0x8912514)
csvmacro001(0x890ED9C,0x8912060,0x8912614)
csvmacro001(0x890ED9C,0x8912060,0x8912714)
csvmacro001(0x890ED9C,0x8912060,0x8912814)
csvmacro001(0x8912914,0x8914CB8,0x891516C)
csvmacro001(0x891526C,0x89195BC,0x8919A70)
csvmacro001(0x8919B70,0x891E9D4,0x891EE88)
csvmacro001(0x891EF88,0x8922974,0x8922E28)
csvmacro001(0x8922F28,0x89260E8,0x892659C)
csvmacro001(0x892669C,0x8929210,0x89296C4)
csvmacro001(0x892669C,0x8929210,0x89297C4)
csvmacro001(0x89298C4,0x892D5E4,0x892DA98)
csvmacro001(0x892DB98,0x893226C,0x8932720)
csvmacro001(0x8932820,0x8937134,0x89375E8)
csvmacro001(0x89376E8,0x893C47C,0x893C930)
csvmacro001(0x893CA30,0x893F1D4,0x893F688)
csvmacro001(0x893CA30,0x893F1D4,0x893F788)
csvmacro001(0x893F888,0x8942B38,0x8942FEC)
csvmacro001(0x89430EC,0x8947398,0x894784C)
csvmacro001(0x894794C,0x8949F70,0x894A424)
csvmacro001(0x894A524,0x894EEF8,0x894F3AC)
csvmacro001(0x894F4AC,0x8953538,0x89539EC)
csvmacro001(0x8953AEC,0x89584A4,0x8958958)
csvmacro001(0x8958A58,0x895D1A8,0x895D65C)
csvmacro001(0x895D75C,0x895D768,0x895DC1C)
csvmacro001(TitansImage,TitansTsa,TitansPalette)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)
csvmacro001(0x0,0x0,0x0)

My csv

PUSH

ORG $E894
POIN BackgroundTable
ORG $ECF4
POIN BackgroundTable
ORG $EDF8
POIN BackgroundTable
ORG $10E44
POIN BackgroundTable

POP

this is my event which should move the original address,

#define BackgroundTable NewBackgroundTable
#define SetConvoBackgroundBackground(Index, ImagePointer, TSAPointer, PalettePointer) "PUSH; ORG NewBackgroundTable + (Index * 0xC); POIN ImagePointer TSAPointer PalettePointer; POP"

these are the definitions I used for the new table and insert new backgrounds
(from here I followed this tutorial)

the rest I did instead is in this link

#ifdef _FE8_
    #include "EAstdlib.event"
    #include "Custom Definitions.event"

    ORG FreeSpace
	
    #include "repointedTextTable.event"
	
    //Text first for Text ID definitions
    #include "Text/Install Text Data.event"
    MESSAGE Used text space ends at currentOffset
    
    #include "Repoint/backgroundrepoint.event"
	#include "Repoint/PortraitsRepoint.event"
    //#include "Background\Background.event"
    ALIGN 4 
	
    //CSV tables
    #include "Tables/Table Installer.event"
    MESSAGE Used table space ends at currentOffset

  	//Graphics
    //#include "Graphics/Master Graphics Installer.event"
	ALIGN 4
	#include "Mugs/Mug Installer.event"
    ALIGN 4  
	#include "Background\Background.event"
    ALIGN 4
	
    //Engine Hacks
    #include "Engine Hacks/_MasterHackInstaller.event"
    MESSAGE Used hax space ends at currentOffset

    //Events
    #include "Events/Release_map.event"
    #include "Events/WorldMapEvents.event"

    //Maps
    #include "Maps/Master Map Installer.event"
	
    MESSAGE Used free space ends at currentOffset
#else
    ERROR You are not assembling FE8 events!
#endif

this is how I inserted things in my buildfile instead, mine was the original one from the SkillSystem

When I go to build the ROM, it does not give me any errors, only that when I go to open it with FEbuilderGBA it does not find my background, if I do not insert the “new” files, instead 255 entries come out, so I think I did well the expansion part of the board? but I am unable to insert the new backgrounds, without replacing those of the base game, I don’t know what was wrong…can someone enlighten me? :sweat_smile: :smile:

I also ask one more thing, I am inserting everything when in the FREESPACE standars, the one over 1.000.000, but I think I have seen that there are other areas that I can use to insert stuff like animations / music?

and I promise this is the last question today, but I have seen a lot of people use Discord to comunicate, now I am out of the world of social networks, it’s worth getting me a discord account to follow FEUniverse? I know it may seem like a ridiculous or stupid question, but I really don’t know anything about social networks, this is why I ask it as a total ignorant of this matter
and as always I apologize for my english, and thanks to everyone who reads my post

1 Like
  1. Backgrounds are actually a bit hardcoded - standard BG display event codes wont function on backgrounds above 0x37 (which is itself reserved for fades iirc). You can get around this with this fix:

PUSH
ORG 0xE836
BYTE 0x04 0xE0
POP

  1. There are various blocks of freespace in ROM, but there’s not a lot of point trying to fill them up. The reality is that you have twice the original size of the ROM available at 0x1000000. I’ve never seen a buildfile come close to using up that much space.

  2. The Discord is helpful if you need to ask any questions and want live responses / discussion.

4 Likes

Ah, okay so I have to put this extra piece in the right repoint?
as soon as I can I do a test

I’m used to seeing FEbuilderGBA taking up a lot of memory for even “simple” things sometimes, so I was scared :sweat_smile:
in the end I can safely use from that point on

Sometimes I think it’s better to have a quick feedback, because I don’t have a lot of time to work on my project, and a quick comparison can help here

Thanks a lot for the answers

2 Likes

now i put the code in my file … and nothing seems to have changed, I think I did something wrong :sweat_smile:

PUSH

ORG $E894
POIN BackgroundTable
ORG $ECF4
POIN BackgroundTable
ORG $EDF8
POIN BackgroundTable
ORG $10E44
POIN BackgroundTable

POP

PUSH
ORG 0xE836
BYTE 0x04 0xE0
POP

I hope someone tells me that I was wrong to put it in this same file in this sequence and nothing else…
also because if I don’t insert the new background file, the game sees all 255 points (address) … I don’t know how to call them, the background entries, I also tried to see if it was displayed in an event but it seems not to work.

I also made the Discord account, but as soon as I entered the FEU server, but it seems like a maze, now I try to write there too, hoping not to mess something :sweat_smile:

It certainly can! Buildfiles are definitely more efficient with space. With febuilder, whenever you repoint data, it usually gets moved to the end of your rom (with the old data replaced with 0s). This is done to maximize compatibility with patches, I believe, as on rare occasion the data was getting mixed up. So a hack made with febuilder will often still have plenty of space available, but it just isn’t used by febuilder automatically. You can access this free space by using the rom rebuild tool and rebuilding only the data past 0x1000000. (If you rebuild below that you will probably brick the rom.)

I hope this tangental explanation was helpful somehow. Good luck with the buildfiles!

1 Like

let’s say that the thing that made me change the main “tool” of my project was the fact that for some reason changing many text addresses completely stole 2-3 Mb of memory from 21Mb to 24 in an instant , it frightened me because I was translating a lot of things into English and I hadn’t finished yet, without considering that my project is not even halfway through my “plans” … let’s say it led me to the decision to move completely to Buildfile.

I also tried to use the Rebuild, and it actually saved me the lost space, but it also corrupted all the magical animations at the same time and the minimugs got corrupted.

Now I’m going to move my progress to a buildfile, even if it’s not easy compared to FEbuilderGBA, thank you so much for the support

I wanted to inform, that I have definitively solved my problem, I forgot to write in the csv, in the box that I was using the definition “|IsPointer”, now it works, hurray :smile: