Gameboy Color Shader
I've been enjoying implementing gameboy color features in my emulator. Particularly the video features. The gameboy color has two banks of VRAM as opposed to the DMG's one. That means you can store more tiles but it also means that you get some awesome built in backwards compatibility for the tile map. That's because each entry in the tile map refers to 1 of 256 tiles (offset from 4 possible locations in the color with another 2 offsets for sprite tiles). These sprites have 2 bit colour which works quite naturally for the 4 colour original gameboy but doesn't work for the color. To help make games backwards compatible you can choose from one of 8 4 colour palettes so the tile format remains the same. The palette is set with other properties for each tile map entry in the second bank at the same address as the tile maps. That means that if your game is plugged into a gameboy color you just need to add the palette details. Long story short, after some rewriting of my shader some games which were made to be backwards compatible are working.
Unfortunately, my CPU intensive methods of doing video processing is starting to create problems with speed. Need to do some profiling. In the meantime a new CPU to replace my 9 year old one will likely fix my problem temporarily anyway.