Programming
~MENU~

Main
Image
Manga
Music
Program
Link
Dev Blog
This section is almost never updated, because programming takes so long to finish anything, but it's what I spend most of my time doing, so it deserves a section

Demos/games
Animanatee v1.5b (DS) An animation program for Nintendo DS. Inspired by Colors!, Mario Paint, and an old DOS program called Animagican.

.anm to .avi file converter for PC (src)

History:
v1.5b (src)
Preview is now loaded one frame at a time, to reduce memory usage (this was effectively cutting the maximum animation size in half).

v1.5a (src)
Fixed a silly palette window bug.

v1.5 (src)
Onion skinning can now be turned on for previous frame, next frame, or both.
Onion skinning works while zoomed in.
Added halftone brushes.
Added 16x zoom level.
Added Merge Layers button, to combine both layers into one.
Added page buttons to save/load menu, so you can now use up to 100 slots.
Added Up/X tool selection. You can now switch between Fill, Eraser, and Dropper.

v1.4a (src)
Fixed crash when trying to preview an empty slot. Added an OK button to load/save menu, so you click a slot to preview, then OK to actually load/save. Fixed frame corruption when drawing at the bottom of the BG layer with a large brush.

v1.4 (src)
Full undo system rewrite to fix bugs.
Zoom (1x, 2x, 4x, 8x).
Copy/paste (currently only copies full layer).
Brush size up to 16 pixels, plus pressure sensitivity.
Calibration tweak, if the draw position feels a couple pixels off.
1 and 2 pixel gap tolerance for fill, because tiny gaps are annoying.
Layer visibility controls.
Scroll (offsets a layer, handy for moving backgrounds over time).
Top screen preview for load/save menus.
Fix for Save As not setting the selected save slot unless exporting an AVI. Mask/remask (mask=don't draw on a specific color, remask=don't draw on any other).
Frames before/frames after, to loop a small portion of the animation near the current frame. Much quicker to check movement when working on a long animation.

v1.3b (src)
Fixed an undo-related memory corruption bug.

v1.3a (src)
Added cache flushes in hopes of fixing some saving problems people are having.

v1.3 (src)
Error checking on file access.
Changed export format to .avi instead of .flc.
Added a button so you can save without exporting, since it takes a while.
Added a progress bar when saving.

v1.2 (src)
Larger brush sizes.
"Virtual" frames (advance past end, frames are spawned up to current when you draw).
Fill cursor, so you can see where the seed point is.
Basic stylus jump filtering, not too good yet.
Basic sleep mode when cover is closed. Must press a key to wake up, and ARM7 doesn't sleep.

v1.1 (src)
Added .flc export.
Load/save buttons change color when filled.

v1.0 (src)
Initial release.
Mediocre Oiram World (PC, Allegro) Entry for a 3-day compo. Actually made in 2 (crazy) days though, so it does have plenty of bugs. The rules were to make it a parody of something, to use sine waves, to have a troll, and have something unlockable.
You'll need alleg40.dll (315KB) in your Windows\System folder to run it. All the graphics (and maps, even) are bitmaps, so you can change them if you want :) Source
Buried at Moat (GBA) Entry for another GBA compo about a year ago, and I forgot to upload it here-_-
Made using my RPG's engine, so most of the work was in the graphics. Go get VisualBoy Advance to run it.
Eternity (GBA) My entry for the GBADev 2003 competition. And here's the source, if anyone's curious about any of the effects.
Sound Mixer (GBA) Old sound mixer I wrote with source and a demo. Not all that stable, but maybe someone would like to look at it. 6 channels, 2 left, 2 right pitched MOD channels, and 2 non-pitched, panning SFX channels. Takes a constant 11% CPU, less than 1/2 KB IWRAM. Check the readme for details.
Particle demo (GBA) Made in about an hour or 2, just for fun. You'll need VisualBoyAdvance to run it
Sproing (GBA) 4KB string simulator, which placed 7th (out of 21) in GBAEmu's 4K competition. You'll need VisualBoyAdvance to run it. Source
Cats (Verge) My first real programming project. I never got past making the battle system, but I learned a lot making it

Tools
MOD Player (DS, 58KB) DS version of the MOD player developed in the GBA sound tutorial. Loads from straight un-converted .mod files, easy to append to a ROM. Should integrate easily with ndslib projects.
Quither (20KB) Image quantizing/dithering tool for GBA 16-color tile mode. You can specify the palette size and number of palettes for it to use.
View comparisons (palettes are screwed up by program I used to save as GIF, so they're not actually tiled anymore), or a zip of the bitmaps used, which do have proper palettes (540KB).

Articles
GBA sound mixer tutorial This is a series stepping you through everything necessary to create a sound system for the Gameboy Advance.
Day 1, Day 2, Day 3, Day 4, Day 5, Day 6, Day 7, Day 8
C-buffer How to implement a C-buffer to eliminate overdraw in software 3D engines.