/bones

A NES emulation library for go

Primary LanguageGoGNU General Public License v3.0GPL-3.0

BoNES

BoNES is a NES emulation library for go, as well as a cli for NES related utilities. For in depth documentation on the cli, run bones -h for general usage or bones [command] -h for detailed information.

Installation

BoNES is written in go, and requires golang to be installed on your computer. I recommend installing go and compiling as described below (really quick and easy), but if you are in a hurry or just can't be bothered, you can get the pre-compiled binaries of the latest release in the releases page.

NOTE: If you can't find the binaries for your platform, you will need to compile it yourself.

Build deps

Building bones on a debian based distro requires the following packages to be installed:

  • libgl1-mesa-dev
  • xorg-dev

Building and installing

For information about installing go, you can visit Golang's download page.

After installing the lastest version of go, you can execute the following command to get and compile from source:

go get -u github.com/m4ntis/bones/bones

Make sure that you add Go's bin directory to your PATH environment variable as explained the language's installation instructions.

Caveats

BoNES currently implements most hardware features, but not many mappers. There are still some small timing issues that may cause some games to crash (such as super mario bros), meaning that harder to emulate games such as the ones listed here aren't yet fully supported.

Oh, and the APU is still non existant :P.

Currently being implemented:

  • Timing issue fixes
  • Some advanced optimization such as Catch up
  • Nice-to-have interactive debugger features
  • Additional mappers (You can request a specific one with an issue)

Build Status

Build Status Go Report Card Godoc