CHIP-8 emulator in 1189 bytes
implemented using terse JS then packed with RegPack
the CHIP-8 has a 16 key input system that is mapped:
1234
QWER
ASDF
ZXCV
the ROMs tend to just use random keys
ROMs are specified by passing a base64'd copy of the ROM in the URL querystring
you can use node romToUrl.js romname.ch8 to generate these URLs from your own ROMs
some examples;