https://github.com/raphadam/nesgo
👾 NES emulator simulating the 6502 cpu in go.
https://github.com/raphadam/nesgo
Last synced: 11 months ago
JSON representation
👾 NES emulator simulating the 6502 cpu in go.
- Host: GitHub
- URL: https://github.com/raphadam/nesgo
- Owner: raphadam
- Created: 2024-08-02T05:04:19.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-18T10:51:30.000Z (almost 2 years ago)
- Last Synced: 2025-06-01T23:26:50.443Z (about 1 year ago)
- Language: Go
- Size: 229 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

## Introduction
Pure Go implementation of the NES CPU emulator, capable of running binary CPU instructions designed for the 6502 architecture. This project accurately emulates the 6502's clock cycles, registers and memory layout.
## Features
- **Accurate Emulation:** Implements all registers, including stack pointer, program counter, and index registers (X, Y) and precise clock cycle emulation.
- **Memory Management:** Handles memory layout and mappers, aiming for valid and accurate emulation.
- **Extendable Cartridge Support:** Allows for custom cartridges with the potential to integrate new chipsets and support a wide range of programs.
- **Game Engine Integration:** Includes a client with a custom game engine to play a Snake game, written entirely in 6502 assembly.
## Demo
You can try the webassembly program in my personal website or build the project yourself.
### Installation
1. Clone the repository:
```bash
git clone https://github.com/raphadam/nesgo.git
cd nesgo
```
Run the project:
```bash
go mod tidy
go run .
```
## Roadmap
- Add more sample games.
- Implement support for additional 6502-compatible chipsets.
- Improve documentation with more code examples.
- Integrate a debugger for step-by-step execution analysis.