nichruby Status Update #1

Penned on the 8th day of July, 2020. It was a Wednesday.

This is the first of hopefully many status updates regarding what I’ve been up to with nichruby and the FHTK. It’s also a post to outline my thinking with this in-depth.

First of all, mangledeggs is complete, after a week and a half of work. I realised I needed a more well-thought-out answer to the task of symbol mangling as I was porting the gfx2o utility to C, as it uses a very hacky approach of replacing path separators with underscores.

Speaking of gfx2o, that is now what I am working on! This is a (relatively) simple program that coordinates grit and the linker. It reads in multi-dotted file extensions from sources to recognise what kind of output image is desired, creates a symbol name with the repo-relative path to the image using mangledeggslib, and then transforms it into assembly so the data can be tagged and passed to the assembler, giving us an object code file (ofile). With this tool in hand, the compilation of graphics into the ROM from human-friendly PNG sources will be easy and straightforward.

After I am done with gfx2o, I will probably be moving on to the scripting system. This is something I have a good deal of existing work on, but like the old gfx2o script, I have to dig a lot of it out of old git repos that I have luckily not lost entirely.

It will use a two-tier language system; one will be a lower-level format called ‘scrip’ that will try to be as close to 1:1 with the actual bytecode format in use by the games, and one will be a higher-level format that is more recognisably turing-complete, for use in game design.

I am most excited about this because both formats will truly take advantage of mangledeggs to implement scoping of identifiers with an import/export system. No longer shall scripts need to be written with hopelessly long names, lest they get lost or mistaken. Best of all, it will all play nice with ANSI C.

Until next time,
Alexander Nicholi