lua could probably handle Gameboy without much trouble, it's actually pretty fast. You'd have to change the number representation to integers though, if I remember correctly there's a #define for that (by default, lua does ALL math with double precision floating point numbers, which is not what you want for emulation for many reasons). Also, you'd have to write some well designed wrapper functions in C to allow lua to write to some kind of display, get input etc.