How we fit an NES game into 40 Kilobytes [video]
Retro City Rampage for NES did something similar (32KB program ROM, 256KB graphics ROM), but the author also developed a High Level Assembler so you he could write structured code more directly: 
<a href="https://www.youtube.com/watch?v=Hvx4xXhZMrU" rel="nofollow">https://www.youtube.com/watch?v=Hvx4xXhZMrU</a>