Got rid of the m12-symbols.sym file that I was manually curating; moved
it into m2-hack.asm instead, in the form of .definelabel directives. This
allows existing ROM symbols to be resolved gracefully when the assembler
exports everything, so that we can call existing ROM subroutines, etc.
from our compiled code.
Also added label definitions for hardcoded strings. Makes it easy to refer
to such strings in our compiled code as well.
Updated build scripts to reflect this.
For now, this is just window header and navigation stuff, like "To:(X)",
"Weapons" when equipping with huge weapon inventories, etc. Still need to
fix the pointers to some of these.
This is a dumb build script that manages all the cross-compiling and
linking nonsense. You need the arm-none-eabi GNU toolchain to use any
of this.
Some more details in compiled/workflow.txt.
This is a problem because the game doesn't do auto newlines lazily; that
is, it will greedily scroll the text box on overflow, even if there's
nothing left to be printed.
This behaviour causes a problem when displaying "Which?" in the Equip
screens, because the width of that string is exactly the width of the
window. Because the window is only one line tall, the game was scrolling
down and the string would get erased.
Previously this was worked around by increasing the width of the window,
but recently I have found that it looks weird with the Goods window open.
So this is a slightly different workaround. I don't think we ever wanted
auto-newline-on-overflow _anyway_ since we're putting manual linebreaks
everywhere. Hopefully this doesn't cause problems.