I’m in!
As the rules require, a link to the personal base code I’ll be using is here. I’ll be writing my entry in C99 and am using libSDL1.2 as is reflected in the base code. I’ll be compiling my submission for Windows (32bit) and Linux (x86 and ARM11). I spent some time today trying to make sure I didn’t miss any bugs in the base code, and checking it works smoothly, but if I do need to make changes I’ll simply update the zip file I linked to above.

I also wanted to include a run down of the base code I intend to use (though I may abandon some of it depending on the game idea / theme), brace yourself:
video.c
Everything to do with the display through software rendering. Software rendering lets you do a lot of fun and retro effects very easily (as well as some cool lighting stuff), and since I tend to stick to large-pixeled games, speed is never an issue at all, and compatibility is always good. Some of the functionality includes:
- Opens a window and draws a scaled pixel buffer to it
- Basic sprites which can be blitted to the screen or one another. They have multiple blending modes (like the ones in photoshop), viewport support, alpha blending, per-pixel alpha, color masking, rotation, clipping (for sprite sheets) and .TGA loading.
- Bitmap fonts (shares the same functionality as a sprite, and can be blitted to sprites)
audio.c
Handles the loading and playing of 11025hz 8bit mono PCM sounds and music.
input.c
Provides functions for checking whether keyboard keys are up or down, or were pressed on this frame.
tween.c
Written during LD25 (and then expanded on later). Handles tweening of values (ints, unsigned bytes, floats, RGB colors).
entity.c
Written for LD25, handles basic rectangular collision detection (like flixel’s) and movement (like flixel’s) and grouping (like flixel’s). I may not use this depending on what type of game I make and how adventurous I’m feeling.
mem.c
Wraps memory allocating and freeing, I also keep count of the current unfreed allocations and at the end of the program if it’s not zero I’ve either accidentally not freed some allocated memory or freed something twice (both of these cases would be bad). This helps me catch any problems as I go along.