js/html5 port (in progress, no font, no sound)