{"id":16309451,"url":"https://github.com/ichirin2501/rgnes","last_synced_at":"2025-10-07T01:43:55.879Z","repository":{"id":39655876,"uuid":"244665016","full_name":"ichirin2501/rgnes","owner":"ichirin2501","description":"Yet Another NES Emulator","archived":false,"fork":false,"pushed_at":"2025-01-27T13:32:52.000Z","size":5157,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T09:23:25.997Z","etag":null,"topics":["emulator","famicom","golang","nes"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ichirin2501.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-03T14:58:12.000Z","updated_at":"2025-01-27T13:32:55.000Z","dependencies_parsed_at":"2024-06-21T16:49:05.329Z","dependency_job_id":"ad116597-8dee-4070-8b50-d66e68d56d07","html_url":"https://github.com/ichirin2501/rgnes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ichirin2501/rgnes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichirin2501%2Frgnes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichirin2501%2Frgnes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichirin2501%2Frgnes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichirin2501%2Frgnes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ichirin2501","download_url":"https://codeload.github.com/ichirin2501/rgnes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichirin2501%2Frgnes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278708051,"owners_count":26031932,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","golang","nes"],"created_at":"2024-10-10T21:21:09.889Z","updated_at":"2025-10-07T01:43:55.866Z","avatar_url":"https://github.com/ichirin2501.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rgnes\n\n[![Scheduled-test](https://github.com/ichirin2501/rgnes/actions/workflows/scheduled-test.yml/badge.svg)](https://github.com/ichirin2501/rgnes/actions/workflows/scheduled-test.yml)\n[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)\n\nThis NES emulator is implemented for my study\n\nMost of the code in rgnes was based on the following.\nIt's great because it's written so simple.\n\n- https://github.com/fogleman/nes\n\n## TODOs\n\n- Refactoring\n- Many bug fixes\n- Support for many mappers\n\n.. and tons more\n\n## Screenshots\n\n\u003cp\u003e\n  \u003cimg src=\"images/smb.gif\" alt=\"Super Mario Bros\"/\u003e\n  \u003cimg src=\"images/nestest.gif\" alt=\"nestest.nes\"/\u003e\n  \u003cimg src=\"images/RasterDemo.gif\" alt=\"RasterDemo.NES\"/\u003e\n  \u003cimg src=\"images/RasterTest1.gif\" alt=\"RasterTest1.NES\"/\u003e\n  \u003cimg src=\"images/scanline.gif\" alt=\"scanline.nes\"/\u003e\n  \u003cimg src=\"images/sprite.gif\" alt=\"SPRITE.NES\"/\u003e\n\u003c/p\u003e\n\n## Controls\n\n| Nintendo | Emulator |\n| - | - |\n| Up, Down, Left, Right\t| Arrow Keys |\n| Start | Enter |\n| Select | Space |\n| Reset | R |\n| A | Z |\n| B | X |\n\n## Test ROM Results\n\n| Test | SingleRom | Result |\n| - | - | - |\n| apu_mixer | dmc.nes | ✅ |\n| apu_mixer | noise.nes | ✅ |\n| apu_mixer | square.nes | ✅ |\n| apu_mixer | triangle.nes | ✅ |\n| apu_test | 1-len_ctr.nes | ✅ |\n| apu_test | 2-len_table.nes | ✅ |\n| apu_test | 3-irq_flag.nes | ✅ |\n| apu_test | 4-jitter.nes | ✅ |\n| apu_test | 5-len_timing.nes | ✅ |\n| apu_test | 6-irq_flag_timing.nes | ✅ |\n| apu_test | 7-dmc_basics.nes | ✅ |\n| apu_test | 8-dmc_rates.nes | ✅ |\n| apu_reset | 4015_cleared.nes | ✅ |\n| apu_reset | 4017_timing.nes  | ❌ |\n| apu_reset | 4017_written.nes  | ❌ |\n| apu_reset | irq_flag_cleared.nes | ✅ |\n| apu_reset | len_ctrs_enabled.nes | ✅ |\n| apu_reset | works_immediately.nes | ❌ |\n| blargg_apu_2005.07.30 | 01.len_ctr.nes | ✅ |\n| blargg_apu_2005.07.30 | 02.len_table.nes  | ✅ |\n| blargg_apu_2005.07.30 | 03.irq_flag.nes | ✅ |\n| blargg_apu_2005.07.30 | 04.clock_jitter.nes  | ✅ |\n| blargg_apu_2005.07.30 | 05.len_timing_mode0.nes | ✅ |\n| blargg_apu_2005.07.30 | 06.len_timing_mode1.nes | ✅ |\n| blargg_apu_2005.07.30 | 07.irq_flag_timing.nes | ✅ |\n| blargg_apu_2005.07.30 | 08.irq_timing.nes | ✅ |\n| blargg_apu_2005.07.30 | 09.reset_timing.nes | ✅ |\n| blargg_apu_2005.07.30 | 10.len_halt_timing.nes | ❌ |\n| blargg_apu_2005.07.30 | 11.len_reload_timing.nes | ❌ |\n| blargg_ppu_tests_2005.09.15b | palette_ram.nes | ✅ |\n| blargg_ppu_tests_2005.09.15b | power_up_palette.nes | ✅ |\n| blargg_ppu_tests_2005.09.15b | sprite_ram.nes  | ✅ |\n| blargg_ppu_tests_2005.09.15b | vbl_clear_time.nes | ✅ |\n| blargg_ppu_tests_2005.09.15b | vram_access.nes  | ✅ |\n| branch_timing_tests | 1.Branch_Basics.nes | ✅ |\n| branch_timing_tests | 2.Backward_Branch.nes | ✅ |\n| branch_timing_tests | 3.Forward_Branch.nes  | ✅ |\n| cpu_dummy_reads | cpu_dummy_reads.nes | ✅ |\n| cpu_dummy_writes | cpu_dummy_writes_oam.nes | ✅ |\n| cpu_dummy_writes | cpu_dummy_writes_ppumem.nes | ✅ |\n| cpu_exec_space | test_cpu_exec_space_apu.nes | ❌ |\n| cpu_exec_space | test_cpu_exec_space_ppuio.nes | ✅ |\n| cpu_interrupts_v2 | 1-cli_latency.nes | ✅ |\n| cpu_interrupts_v2 | 2-nmi_and_brk.nes | ✅ |\n| cpu_interrupts_v2 | 3-nmi_and_irq.nes | ✅ |\n| cpu_interrupts_v2 | 4-irq_and_dma.nes | ✅ |\n| cpu_interrupts_v2 | 5-branch_delays_irq.nes | ❌ |\n| cpu_reset | ram_after_reset.nes | ❌ |\n| cpu_reset | registers.nes | ❌ |\n| cpu_timing_test6 | cpu_timing_test.nes | ✅ |\n| dmc_dma_during_read4 | dma_2007_read.nes | ❌ |\n| dmc_dma_during_read4 | dma_2007_write.nes | ✅ |\n| dmc_dma_during_read4 | dma_4016_read.nes | ❌ |\n| dmc_dma_during_read4 | double_2007_read.nes | ❌ |\n| dmc_dma_during_read4 | read_write_2007.nes | ✅ |\n| dpcmletterbox | dpcmletterbox.nes | ✅ |\n| instr_misc | 01-abs_x_wrap.nes | ✅ |\n| instr_misc | 02-branch_wrap.nes | ✅ |\n| instr_misc | 03-dummy_reads.nes | ✅ |\n| instr_misc | 04-dummy_reads_apu.nes | ❌ |\n| instr_test-v5 | 01-basics.nes | ✅ |\n| instr_test-v5 | 02-implied.nes | ✅ |\n| instr_test-v5 | 03-immediate.nes | ✅ |\n| instr_test-v5 | 04-zero_page.nes | ✅ |\n| instr_test-v5 | 05-zp_xy.nes | ✅ |\n| instr_test-v5 | 06-absolute.nes | ✅ |\n| instr_test-v5 | 07-abs_xy.nes | ✅ |\n| instr_test-v5 | 08-ind_x.nes | ✅ |\n| instr_test-v5 | 09-ind_y.nes | ✅ |\n| instr_test-v5 | 10-branches.nes | ✅ |\n| instr_test-v5 | 11-stack.nes | ✅ |\n| instr_test-v5 | 12-jmp_jsr.nes | ✅ |\n| instr_test-v5 | 13-rts.nes | ✅ |\n| instr_test-v5 | 14-rti.nes | ✅ |\n| instr_test-v5 | 15-brk.nes | ✅ |\n| instr_test-v5 | 16-special.nes | ✅ |\n| nestest | nestest.nes | ✅ |\n| oam_read | oam_read.nes | ✅ |\n| oam_stress | oam_stress.nes | ✅ |\n| ppu_open_bus | ppu_open_bus.nes | ✅ |\n| ppu_read_buffer | test_ppu_read_buffer.nes | ✅ |\n| ppu_vbl_nmi | 01-vbl_basics.nes | ✅ |\n| ppu_vbl_nmi | 02-vbl_set_time.nes | ✅ |\n| ppu_vbl_nmi | 03-vbl_clear_time.nes | ✅ |\n| ppu_vbl_nmi | 04-nmi_control.nes  | ✅ |\n| ppu_vbl_nmi | 05-nmi_timing.nes  | ✅ |\n| ppu_vbl_nmi | 06-suppression.nes | ✅ |\n| ppu_vbl_nmi | 07-nmi_on_timing.nes | ✅ |\n| ppu_vbl_nmi | 08-nmi_off_timing.nes | ✅ |\n| ppu_vbl_nmi | 09-even_odd_frames.nes | ✅ |\n| ppu_vbl_nmi | 10-even_odd_timing.nes | ❌ |\n| sprdma_and_dmc_dma | sprdma_and_dmc_dma.nes | ❌ |\n| sprdma_and_dmc_dma | sprdma_and_dmc_dma_512.nes | ❌ |\n| sprite_hit_tests_2005.10.05 | 01.basics.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 02.alignment.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 03.corners.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 04.flip.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 05.left_clip.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 06.right_edge.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 07.screen_bottom.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 08.double_height.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 09.timing_basics.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 10.timing_order.nes | ✅ |\n| sprite_hit_tests_2005.10.05 | 11.edge_timing.nes | ✅ |\n| sprite_overflow_tests | 1.Basics.nes | ✅ |\n| sprite_overflow_tests | 2.Details.nes | ✅ |\n| sprite_overflow_tests | 3.Timing.nes | ✅ |\n| sprite_overflow_tests | 4.Obscure.nes | ✅ |\n| sprite_overflow_tests | 5.Emulator.nes | ✅ |\n| square_timer_div2 | square_timer_div2.nes | ✅ |\n| vbl_nmi_timing | 1.frame_basics.nes | ✅ |\n| vbl_nmi_timing | 2.vbl_timing.nes | ✅ |\n| vbl_nmi_timing | 3.even_odd_frames.nes | ✅ |\n| vbl_nmi_timing | 4.vbl_clear_timing.nes | ✅ |\n| vbl_nmi_timing | 5.nmi_suppression.nes | ✅ |\n| vbl_nmi_timing | 6.nmi_disable.nes | ✅ |\n| vbl_nmi_timing | 7.nmi_timing.nes | ✅ |\n\n## References\n\n- https://www.nesdev.org/wiki/NES_reference_guide\n- https://github.com/fogleman/nes\n- [ファミコンエミュレータの創り方　- Hello, World!編 -](https://qiita.com/bokuweb/items/1575337bef44ae82f4d3)\n- [Writing NES Emulator in Rust](https://bugzmanov.github.io/nes_ebook/chapter_1.html)\n- [ｷﾞｺ猫でもわかるファミコンプログラミング](http://gikofami.fc2web.com/index.html)\n- [NES研究室](http://hp.vector.co.jp/authors/VA042397/nes/index.html)\n- [NES on FPGA](https://pgate1.at-ninja.jp/NES_on_FPGA/index.html)\n- [Index of /~ant/nes-tests](https://www.slack.net/~ant/nes-tests/)\n\n## License\nrgnes is licensed under the MIT license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichirin2501%2Frgnes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fichirin2501%2Frgnes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichirin2501%2Frgnes/lists"}