When I was in high school, I wrote a Chip8 interpreter for Android in Java. My goal was to learn how a CPU works, and it was an incredibly fun project. After that, I wrote a slow but functional GameBoy emulator, but that's another story :).
Anyway, I've been trying to get into emulators again, so I decided to rewrite my Chip8 interpreter in TypeScript. I'll probably try emulating Space Invaders next.