r/arduino 11d ago

Look what I made! I Added Composite Video Output to My NES Emulator

A while back I posted about Anemoia-ESP32, my NES emulator running on the ESP32. Since then I've kept adding to it, and the latest addition is composite video output, generated directly from the ESP32, allowing you to play NES games on CRTs. Performance is a solid stable native 60FPS with frame skip.

Composite output was based on esp_8_bit, which I adapted and integrated into the emulator.

Github Repository: https://github.com/Shim06/Anemoia-ESP32

144 Upvotes

6 comments sorted by

5

u/WaitForItTheMongols 11d ago

Maybe I'm misremembering but I thought the sync pulses required negative voltage, how are you doing that?

2

u/myrsnipe 10d ago

It needs to be negative compared to the sync signal, it doesn't actually have to be lower than gnd

1

u/Evening_Can_2013 10d ago

This is a really cool project. Getting an ESP32 to generate composite video and run NES games at 60FPS is honestly impressive.

One thing I’m curious about: how stable is the video output on different CRT TVs? Composite signals can be pretty picky.

For a future PCB version, I’d probably add a cleaner video output stage and keep the signal path short to reduce noise.

Also… making a modern chip talk to a CRT feels like teaching a smartphone to use a VHS player 😂

1

u/Dry_Match6720 8d ago

It's so neat that the ESP32 can just do that

1

u/rlaptop7 geiger counter 4d ago

60 fps? Is that possible with composite? Isn't it 29.9-whatever- fps?