The only way it could crash is if airspeed_tape is invalid. Make sure it's loaded or created correctly by checking return values from al_load_bitmap and/or al_create_bitmap (or however you're loading that bitmap.)

First, I comment out only the al_draw_tinted_bitmap line, and the code runs, alters the existing bitmap, and shows it on the display.

Second, I added this test: if(!airspeed_tape){ fprintf(stderr, "Failed to initialize airspeed.\n"); return -1; }When run as above, the code operates normally, and proceeds until it generates the aforementioned debug error. When I changed the test to "(airspeed_tape)" it exits on the error. (eliminating the !)

I tried substituting any of the other 6 clipped bitmaps, and they all generate the debug error. There's no doubt that they exist.

Should it matter that they are all sub bitmaps?

I thought I'd read somewhere in the docs that tint support required an include.

I thought I'd read somewhere in the docs that tint support required an include.

This doesn't really make sense. You'll understand why when you learn more about C (hint: feature support can't be turned on or off with an include, includes are used to tell the compiler it's ok to use a function named x with parameters y -- if you don't get a compile error, the include has nothing to do with it.)

On: Try this in a loop; clear screen, draw images on bitmap(buffer), draw buffer(bitmap) on screen, check to see if it's time to stop, if not, clear screen, draw images on bitmap(buffer), draw buffer(bitmap) on screen, check to see if it's time to stop, if not, clear screen, draw images on bitmap(buffer), draw buffer(bitmap) on screen, check to see if it's time to stop, if not, clear screen, draw images on bitmap(buffer), draw buffer(bitmap) on screen, check to see if it's time to stop, if no....if it IS, exit loop and then return.