I'm making an NES emulator in Scratch
I've been working on an emulator for the Nintendo Entertainment System (NES), the 8-bit video game console from the 1980s, and I'm writing it in Scratch. My project faithfully emulates the NES's hardware, consisting of an 8-bit 6502 CPU, a picture processing unit (PPU) used to generate a video signal, and an audio processing unit (APU), which generates sound.
Here's a video of the emulator running Alter Ego, a game by Shiru, Kulor, and Denis Grachev:
The emulator can also run .nsf (NES Sound Format) files, which contain 6502 code that can be used to play music. When making this I discovered that the soundtrack for the game Shovel Knight was composed by Jake Kaufman in FamiTracker, a piece of software for composing music that can be run on real Famicom and NES hardware, and that it had been released in NSF format. Here's a recording of the Shovel Knight Main Theme playing in my emulator:
Right now I'm focusing on improving the emulator's performance. Once I've gotten it running well, I'll release it.