# Projects

This is the main project page, where you can find descriptions of my main projects and links to their downloads.

### Excellut

2007-10-11 – 22:43.

Excellut is an Excel file with some VBA macros that allow you to export columns as lookup tables (luts). Luts can come in very handy in game programming as mathematical functions can be quite slow. The benefit of having something like Excel create the luts for you is that you can test whether they're good enough for your purposes, and because spreadsheet apps are supposed to be good with formulas, you can create any lut you can think of with ease.

### grit - GBA Raster Image Transmogrifier

2007-10-10 – 22:03.

Grit and its GUI version Wingrit are my image converters for the GBA (and NDS I guess). They can do most of the simple things like reading an image (pretty much any type of bitmap thanks to FreeImage) and converting it to binary data of various bitdepths which can be directly put into VRAM, but also more complicated matters such as tiling and metatiling (for 1D object mapping for example), making a tilemap along with a reduced tileset (or using an external tileset), popular map layouts, and compression compatible with the GBA's BIOS routines. The capability for an NDS alphabit has been added recently as well. Output can be C/asm arrays, raw binary, GBFS, and a RIFF-based format called GRF.

Not good enough? Well, the source code is available too, so you're free to modify it. The code should be platform independent right now, or at least very nearly so; the catch being that you might have add or remove some type definitions and maybe create your own makefile for compilation.

#### Documentation

Current version: 0.8.6

Previous versions

### SaveChem - a SpaceChem savegame tool

2014-08-25 – 23:54.

As awesome as the SpaceChem is, there are still a few features that you can't (and maybe shouldn't?) do in-game. Things like viewing level-stats at a glance, removing the insane amount of undo information that can build up, and saving and reloading entire solutions.

SaveChem tries to remedy this. It gives you a simple overview of the level statistics (with the amount of undos for each level), remove undo info to keep your savegames small (useful for uploading to solutionNet, as well as Steam Cloud) and, most importantly, allows you to export and import solutions. More features will probably be added later, but for now this should be useful enough already (and no, those features will not include simulating solutions. That's what the game is for).

NOTE: this is a C#/WPF application using .NET 4.0. If you're running Windows you probably have .NET 4.0 already, but if not, you can get it here.

Also, this is still somewhat of an alpha.

### SpaceChem web tools

2013-04-01 – 17:17.

One of the nice things about spacechem is the fact that you can create your own missions. However, before you can see what those missions are, you need to enter them in-game, and you might not be in a place where you have access to the game when you get a mission code.

For that reason, I created an online mission viewer (where you can also make rudimentary edits to the mission code to insert special elements and break the bond limit). It parses a mission code and displays what the mission is about.

I've also created an overview of all researchnet missions, so that you can view all of those outside of the game as well.

### Tonc - GBA Programming in rot13

2007-10-11 – 22:41.

Tonc is my reasonably successful tutorial on GBA programming, covering most aspects of the hardware in all its technical glory. Tonc explains the GBA hardware in detail, and how you should and should not work with it. Prior programming knowledge is required, an affinity for mathematics is also recommended.

1.4 is the final version, but I will try to fix errors when they are found. Look in the errata for details.

(2018-06-24) A recent change in devkitArm (probably 48?) changed the way ctype.h works, resulting in a broken libtonc.a. To fix it, recompile libtonc manually. Go to the tonclib folder and do make clean and make. That should do it.

(2013-03-24) fixed for change in DKA r41 prefix (the arm-none-eabi thing).

(2012-05-20) alright, 1.4 was supposed the final version, but GCC 4.7 requires an extra line for assembly routines, so I had to check and fix a number of things. Code's at 1.4.1 now and the rest will follow soon (hopefully).

Current (and final) version: v1.4 / v1.4.2

Older versions:

NOTE. I've had a report a while back that the CHM version didn't work. The reason seems to be the silly security settings in Windows that block downloaded CHM files to open properly. If you get this too, open the file's properties and click Unblock`' (Thanks for pointing this out, Kevin.)

### Usenti - A bitmap editor

2007-10-10 – 19:41.

Usenti is a simple bitmap editor for paletted images, it is the result of me being completely fed up with the lack of dec^H^H^Hany palette support in Paint, and finding the bigger photo applications a little too big for comfort. The basic toolset is very similar to MS-Paint, but often less annoying. The various palette/color manipulation tools like the palette-bar palette swapper, and variable zooms and gridlines can make drawing basic things a lot easier.

The main drive for Usenti has always been for use in GBA development. As such, it has a good exporter to GBA-usable formats. The same one as in grit in fact, so I'll refer you to that for further details.