A Nintendo Entertainment System (NES) emulator for the VMUPro handheld device, based on the Nofrendo emulator core.
This project ports the popular Nofrendo NES emulator to run on the VMUPro platform, allowing you to play classic NES games on your VMUPro device. The emulator includes support for multiple mappers and provides smooth gameplay with accurate emulation.
- Full NES emulation using the Nofrendo core
- Support for multiple mapper types (MMC1, MMC3, UNROM, CNROM, etc.)
- Audio Processing Unit (APU) emulation for authentic sound
- Picture Processing Unit (PPU) emulation for accurate graphics
- Frame rate monitoring and performance statistics
- Built-in ROM browser and launcher
- Save state functionality
- Controller input support via VMUPro buttons
The emulator supports a wide range of NES mappers including:
- Mapper 000 (NROM)
- Mapper 001 (MMC1)
- Mapper 002 (UNROM)
- Mapper 003 (CNROM)
- Mapper 004 (MMC3)
- And many more (see
src/main/nofrendo/mappers/for complete list)
- VMUPro device
- VMUPro SDK (included as submodule)
- ESP-IDF development framework
- NES ROM files (.nes format)
- Install ESP-IDF and set up your development environment
- Clone this repository with submodules:
git clone --recursive https://github.com/8BitMods/vmupro-nofrendo.git cd vmupro-nofrendo/src
-
Build the project:
idf.py build
-
Package the application:
./pack.sh
Or on Windows:
./pack.ps1 -
Deploy to VMUPro:
./send.sh
Or on Windows:
./send.ps1
- Place your NES ROM files on the VMUPro device
- Launch the Nofrendo emulator from the VMUPro menu
- Select a ROM file from the browser
- Use VMUPro controls to play:
- D-pad: NES D-pad
- A/B buttons: NES A/B buttons
- Start/Select: NES Start/Select
src/
├── main/
│ ├── main.cpp # Main emulator entry point
│ └── nofrendo/ # Nofrendo emulator core
│ ├── nes/ # NES system components
│ ├── mappers/ # Cartridge mapper implementations
│ └── docs/ # Emulator documentation
├── metadata.json # VMUPro app metadata
├── icon.bmp # Application icon
├── pack.sh/pack.ps1 # Packaging scripts
└── send.sh/send.ps1 # Deployment scripts
- Platform: ESP32-based VMUPro
- Framework: ESP-IDF with VMUPro SDK
- Emulator Core: Nofrendo
- Display: VMUPro LCD with custom rendering
- Audio: VMUPro audio system
- Input: VMUPro button mapping
The emulator includes frame rate monitoring and performance statistics:
- Real-time FPS counter
- Frame time averaging
- Performance optimization for VMUPro hardware
- Nofrendo Emulator: Original NES emulator core
- 8BitMods: VMUPro porting and optimization
- VMUPro SDK: Platform-specific libraries and tools
This project is licensed under the GNU General Public License v2.0. See the LICENSE file for details.
The Nofrendo emulator core maintains its original licensing terms. See src/main/nofrendo/COPYING for details.
Contributions are welcome! Please feel free to submit issues and pull requests.
For support and questions:
- Check the VMUPro documentation
- Report issues on the project repository
- Join the 8BitMods community
Enjoy playing classic NES games on your VMUPro device!