A Nintendo Entertainment System (NES) emulator written in Go with OpenGL graphics and audio support.
fogleman/nes is a Nintendo Entertainment System (NES) emulator implemented in Go. It allows users to play classic NES games on modern computers by emulating the console's hardware components, including the CPU, PPU (Picture Processing Unit), and APU (Audio Processing Unit). The project focuses on accuracy and performance while providing a graphical interface for browsing and selecting ROMs.
Developers and hobbyists interested in retro gaming emulation, particularly those with experience in Go who want to study or contribute to emulator development. It also targets users seeking a cross-platform NES emulator written in a modern, compiled language.
Developers choose this emulator for its clean, modular Go codebase, which emphasizes accuracy in hardware emulation. Its unique selling points include cross-platform support via OpenGL and GLFW for graphics, PortAudio for sound, and an integrated ROM browser with automatic thumbnail downloads from an online database.
NES emulator written in Go.
Runs on Linux, macOS, and Windows using Go's portability with OpenGL/GLFW for graphics and PortAudio for sound, as shown in the installation and dependency sections.
Includes a graphical menu that automatically downloads game thumbnails from an online database, enhancing user experience for browsing and selecting ROMs, as detailed in the usage section.
Written in Go with a modular focus on NES hardware accuracy, making it valuable for developers learning emulator internals, supported by documentation links in the README.
Emphasizes accurate CPU, PPU, and APU emulation in a compiled language for better performance, aligning with the project's philosophy stated in the summary.
Only implements six mappers covering about 85% of NES games, meaning many titles won't work, as admitted in the mappers section.
Requires manual PortAudio installation with development headers on some systems, adding a setup hurdle compared to more integrated emulators, as noted in the dependencies.
Joystick button mappings are hard-coded and not user-configurable, limiting customization for different controllers, as mentioned in the controls section.
Easily and securely send things from one computer to another :crocodile: :package:
Fast, secure, efficient backup program
GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
JuiceFS is a distributed POSIX file system built on top of Redis and S3.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.