it's quiet simple - abuse the palette-ram with some special sprites!

some ideas for use this in a game:
- raycasting (wolf3d, doom...)
- mode7 (snes) racing game like mariokart or f-zero
- semi 3d tunnel-shooter like stardust
- simple voxel-engine (go to '1:00')

Examples - precompiled (check mame/roms/puzzledp), needs mame & vasmm68k
there are to examples:
- simple (like the image above)
- advanced, different mappings (used in 'DIFF')
'DIFF' uses the advanced one but copy is done in VBLANK-routine with some doublebuffering.
Youtube
pro:
- very flexible (75x50, 60x60, 90x42...)
- mix different pixelsizes (3, 3, 3, 4...) to stetch
con:
- only 30fps (some tearing) -> write only to palette-ram during VBLANK, only ~130 palettes can by copied without random pixels on screen (snow) - frame #1 => copy upper screen half, frame #2 => copy lower screen half
- need 40 sprites (75x50)
- need a lot of palette-ram