Posts Projects //TODO /posts/2023-09-07_building-dave-part-ii$_

Building Dave Part II

So yesterday I finished up hitting an assertion in brownout, one of the tools that comes with the brown versions of the GCC compiler, and I seem to recall it does some format conversion of, well, something.

brownout: brownout.cpp:418: std::map >::iterator get_section_for_va(elfsectionboundsmap_t&, uint32_t): Assertion `_va >= reference_bound->second.first' failed.
make: *** [Makefile:190: lolworld.elf] Aborted (core dumped)
make: *** Deleting file 'lolworld.elf'
rm lolworld.o

This post isn't realtime because I figured (correctly) that things might move faster if I spend less time writing prose while working. Tonight's path took a different direction. First off I explored the other examples folder, barebones-interop and that proved interesting. First I got a build running quite quickly, secondly there were no Makefiles in sight. Instead, this uses fbuild or Fastbuild, which I'd not heard of before, but am already quite impressed with. I fully intend to learn more, and possibly use it to build Dave.

Once that was installed, compiling the barebones-interop demo was simple, and so I switched my attention back to my previous issue. Full disclaimer: I'm not any further ahead on that front, but I don't necessarily need to be either. I realised I wouldn't solve this puzzle on my own so went straight to ggn to ask what the deal was, and he said it's a known complicated issue that still needs resolving, but in the meantime he'd been working at converting AGTs demos over to Fastbuild, and to that end has a repo called "Portable build system for Atari Game Tools by dml" with some pre-built toolchain binaries. This does exactly what it says on the tin, and within a minute or so of him pointing me at the repo I'd successfully built the abreed (a POC Alien Breed) demo that comes with AGT:

Screenshot of the abree demo boot screen Screenshot of the abree demo running

That just about brings things up to speed for where I am right now. Next step is to get on with actually trying to build my own code once more, and that seems like a good opportunity to learn more about Fastbuild. ggn also told me about it's neat report generation, whereby it can generate a HTML report of build times, so naturally I had to try that and you can view the output from it's build of the abreed demo if you so wish.