A web-based NES and SNES emulator served by the M5 Cardputer (ESP32),
running locally in the user's browser using EmulatorJS.
The ESP32 hosts a web interface and game files, while all emulation is performed on the client device inside the browser.
- 📟 Designed for the M5 Cardputer (ESP32)
- 🌐 Browser-based NES and SNES emulation
- 🧠 Emulation runs locally in the browser
- 🎮 ROM selection via web UI
- 📦 ROMs stored on the ESP32 (SD)
- ⚡ No emulation performed on the ESP32 itself
- 📱 Works on desktop and mobile browsers
- The ESP32 runs a local web server
- The user connects to the Cardputer via Wi-Fi
- A web interface is loaded in the browser
- The user selects a game from the available ROM list
- The selected ROM and the emulator files are transferred to the browser
- The emulator runs entirely on the client device
- Performance depends on the client device
- Input latency may vary by browser
- Large ROMs may load slowly over Wi-Fi
ROMs must be:
- Legally obtained
- Dumped from cartridges you own
- Added manually to the ESP32’s filesystem
The ROMs are served only over the local network and are never distributed through this repository.
- The Cardputer’s screen will turn off after 60 seconds to save power. Press G0 to turn it back on.
This project does not include a favicon by default.
If you want, you can add your own favicon.ico in the ESP32EJS folder (the same folder where index.html is).
Browsers will automatically use it when loading the page.
This project uses EmulatorJS, an open-source web emulator framework.
- EmulatorJS repository:
https://github.com/EmulatorJS/EmulatorJS
Please refer to the EmulatorJS license for details.
This project is licensed under the MIT License.
See the LICENSE file for more information.






