The first two videos are the GBA in mode 4, where a palette of 256 colours is used for the background and the VRAM is split into two 8bit pages.
In the first demo, I am decode a PCX image into video memory and its palette into the palette memory of the GBA. Pressing Left/Right modifies the palette to be negative, dark, greyscale, no-green, no-blue, no-red, yellow'd.
In the second demo, I decode a PCX image of the
Quake2 PC colour palette, this is basically a 256 colour palette but with a reference image that arranges it to fake 64 brightness levels of the 256 colours and have a table of colour blending.
Pressing left/right will cycle between loading a PCX image into VRAM and loading two PCX images into memory, blending their palette indexes using the Quake2 blend table, and then writing the new indexes into VRAM, creating a "blend" between two images.
The third demo is in mode 3 graphics, where no palettes are used and the VRAM is one single 16bit page, meaning everything is rendered directly to the screen - so you will see the pixels slowly change. It is an intense mathematical calculation for displaying "
fractal patterns" from two sets.
The GBA isn't even close to being powerful enough to calculate these kind of patterns, so I lowered the quality of the render massively - which hasn't helped as much as you'd think it would.
The goal is for me to get very comfortable with utilising the GBA hardware, figuring out what it is good for and what it isn't good for and learning about all the hardware registers. The first demo proves it is very good at modifying colour palettes, the second demo proves that it isn't very good for blending large images, even with the blend colour pre-calculated, and the 3rd demo proves it's absolutely awful for complex calculations and the limiting factor is definitely the processing power.
EDIT: New demos
http://www.youtube.com/watch?v=UWlsDjprPWA http://www.youtube.com/watch?v=BDMe8IiZ4sY