{"id":22318398,"url":"https://github.com/kaishuu0123/chibines","last_synced_at":"2025-07-29T12:31:32.161Z","repository":{"id":40613042,"uuid":"502301719","full_name":"kaishuu0123/chibines","owner":"kaishuu0123","description":"NES emulator \u0026 NSF Player written in Go.","archived":false,"fork":false,"pushed_at":"2022-09-04T08:50:55.000Z","size":2736,"stargazers_count":15,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T10:05:33.516Z","etag":null,"topics":["emulator","famicom","go","nes","nsf"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaishuu0123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-11T09:13:14.000Z","updated_at":"2024-03-25T05:14:15.000Z","dependencies_parsed_at":"2022-08-09T23:50:38.902Z","dependency_job_id":null,"html_url":"https://github.com/kaishuu0123/chibines","commit_stats":null,"previous_names":["kaishuu0123/toynes"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaishuu0123%2Fchibines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaishuu0123%2Fchibines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaishuu0123%2Fchibines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaishuu0123%2Fchibines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaishuu0123","download_url":"https://codeload.github.com/kaishuu0123/chibines/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228012204,"owners_count":17855984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emulator","famicom","go","nes","nsf"],"created_at":"2024-12-03T23:13:18.193Z","updated_at":"2024-12-03T23:13:18.891Z","avatar_url":"https://github.com/kaishuu0123.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChibiNES \u003c!-- omit in toc --\u003e\n\n[![Godoc Reference](https://pkg.go.dev/badge/github.com/kaishuu0123/chibines)](https://pkg.go.dev/github.com/kaishuu0123/chibines)\n[![GitHub Release](https://img.shields.io/github/v/release/kaishuu0123/chibines)](https://github.com/kaishuu0123/chibines/releases)\n[![Github Actions Release Workflow](https://github.com/kaishuu0123/chibines/actions/workflows/release.yml/badge.svg)](https://github.com/kaishuu0123/chibines/actions/workflows/release.yml)\n[![Go Report Card](https://goreportcard.com/badge/kaishuu0123/chibines)](https://goreportcard.com/report/kaishuu0123/chibines)\n\nChibiNES is NES emulator written by Go. This is my favorite hobby project!\n\nPorting [libretro/Mesen](https://github.com/libretro/Mesen/) to Go. Priority was given to mimicking Mesen's behavior rather than refactoring.\n\n- [Screenshots](#screenshots)\n  - [`cmd/chibines` (NES Console)](#cmdchibines-nes-console)\n  - [`cmd/chibines-nsf` (NSF Player)](#cmdchibines-nsf-nsf-player)\n- [Download](#download)\n- [Spec](#spec)\n- [Key binding](#key-binding)\n- [Build \u0026 Run](#build--run)\n- [Dependencies](#dependencies)\n- [FAQ](#faq)\n  - [Why do you only support these mappers?](#why-do-you-only-support-these-mappers)\n- [ToDO](#todo)\n- [Reference](#reference)\n  - [Emulator](#emulator)\n  - [Documents](#documents)\n- [Credit](#credit)\n\n## Screenshots\n\n### `cmd/chibines` (NES Console)\n\n![Screenshots](https://raw.github.com/kaishuu0123/chibines/main/screenshots/screenshots001.jpg)\n\n### `cmd/chibines-nsf` (NSF Player)\n\nhttps://user-images.githubusercontent.com/1567423/175847470-15224c46-65da-4cf0-87a8-ef876d67629f.mp4\n\n## Download\n\n- [See Release page](https://github.com/kaishuu0123/chibines/releases)\n\n## Spec\n\n- NTSC only\n  - PAL, Dendy is not supported yet.\n- Basic APU sound only (The following sound sources are currently not supported)\n  - NAMCOT 16x (N160/N163)\n  - MMC5\n  - SUNSOFT 5B\n  - VRC\n- Mapper Support\n  - [x] Mapper 0\n  - [x] Mapper 1\n  - [x] Mapper 2\n  - [x] Mapper 3\n  - [x] Mapper 4\n  - [x] Mapper 16\n  - [x] Mapper 31\n    - For NSF Player\n\n## Key binding\n\nPlayer 1\n\n|NES|Key|\n|---|---|\n| UP, DOWN, LEFT, RIGHT | Arrow Keys |\n| Start | Enter |\n| Select | Right Shift |\n| A | Z |\n| B | X |\n\nPlayer 2\n\n|NES|Key|\n|---|---|\n| UP, DOWN, LEFT, RIGHT | I, K, J, L |\n| Start | E |\n| Select | Left Shift |\n| A | A |\n| B | S |\n\n## Build \u0026 Run\n\n- Install Library\n  - portaudio\n\nMacOSX\n\n```shell\nbrew install portaudio\n```\n\n- build\n\n```shell\ngo build cmd/chibines/main.go\n```\n\n- or go run\n\n```shell\ngo run cmd/chibines/main.go\n```\n\n## Dependencies\n\n- Dear ImGUI ([inkyblackness/imgui-go](https://github.com/inkyblackness/imgui-go))\n- GLFW\n- portaudio\n\n## FAQ\n\n### Why do you only support these mappers?\n\nBecause it's my favorite games \u0026 for [nes-test-roms](https://github.com/christopherpow/nes-test-roms)\n\n- Mapper0\n  - [Super Mario Bros](https://nescartdb.com/profile/view/1486/)\n- Mapper1\n  - [Dragon Quest III](https://nescartdb.com/profile/view/1527/)\n- Mapper16\n  - [SD Gundam Gaiden: Knight Gundam Monogatari 2: Hikari no Kishi](https://nescartdb.com/profile/view/1752/)\n  - [SD Gundam Gaiden: Knight Gundam Monogatari 3: Densetsu no Kishi Dan](https://nescartdb.com/profile/view/1753/)\n\n## ToDO\n\n- [X] CPU\n- [X] PPU\n- [X] APU\n- [X] NSF Player (cmd/chibines-nsf)\n  - like VirtuaNES\n- [ ] 6502 compiler\n  - like cc65\n- [ ] disassembler\n- [ ] Interpreter (cmd/chibines-interpreter)\n- [ ] Sprite extractor (cmd/chibines-sprites)\n- [ ] ROM info CLI (cmd/chibines-rominfo)\n- [ ] Debugger (like [Mesen's Debugging tools](https://www.mesen.ca/docs/debugging.html))\n- [ ] Test\n  - [ ] [nes-test-roms](https://github.com/christopherpow/nes-test-roms/)\n    - like [tetanes README.md](https://github.com/lukexor/tetanes)\n  - [ ] go testing (like integration test)\n    - [ ] CPU\n    - [ ] PPU\n    - [ ] APU\n\n## Reference\n\n### Emulator\n\n- CPU, PPU, APU, Mapper etc ...\n  - [libretro/Mesen](https://github.com/libretro/Mesen/)\n  - [fogleman/nes](https://github.com/fogleman/nes)\n  - [eteran/pretendo](https://github.com/eteran/pretendo)\n  - [lukexor/tetanes](https://github.com/lukexor/tetanes)\n  - [ivysnow/virtuanes](https://github.com/ivysnow/virtuanes/)\n  - [sairoutine/faithjs](https://github.com/sairoutine/faithjs/)\n- NSF Player\n  - [theinternetftw/famigo](https://github.com/theinternetftw/famigo)\n\n### Documents\n\n- [Nesdev Wiki](https://www.nesdev.org/wiki/Nesdev_Wiki)\n  - [CPU - NESdev Wiki](https://www.nesdev.org/wiki/CPU)\n  - [PPU - NESdev Wiki](https://www.nesdev.org/wiki/PPU)\n  - [APU - NESdev Wiki](https://www.nesdev.org/wiki/APU)\n  - [Mapper - NESdev Wiki](https://www.nesdev.org/wiki/Mapper)\n- [6502 Instruction Set](https://www.masswerk.at/6502/6502_instruction_set.html)\n- [NesCartDB - Home](https://nescartdb.com/)\n\n## Credit\n\n- Font\n  - [itouhiro/PixelMplus](https://github.com/itouhiro/PixelMplus)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaishuu0123%2Fchibines","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaishuu0123%2Fchibines","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaishuu0123%2Fchibines/lists"}