{"id":19445678,"url":"https://github.com/s5bug/emufish","last_synced_at":"2026-04-06T06:03:48.824Z","repository":{"id":37842549,"uuid":"365671365","full_name":"s5bug/EmuFish","owner":"s5bug","description":"Extensible emulator framework","archived":false,"fork":false,"pushed_at":"2023-12-13T14:02:52.000Z","size":164,"stargazers_count":7,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-01T13:21:42.246Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s5bug.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-05-09T05:03:59.000Z","updated_at":"2023-07-01T11:35:28.000Z","dependencies_parsed_at":"2024-11-10T16:11:33.309Z","dependency_job_id":null,"html_url":"https://github.com/s5bug/EmuFish","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/s5bug/EmuFish","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s5bug%2FEmuFish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s5bug%2FEmuFish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s5bug%2FEmuFish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s5bug%2FEmuFish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s5bug","download_url":"https://codeload.github.com/s5bug/EmuFish/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s5bug%2FEmuFish/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31461534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"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":[],"created_at":"2024-11-10T16:11:29.437Z","updated_at":"2026-04-06T06:03:48.809Z","avatar_url":"https://github.com/s5bug.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# development currently paused\n\nI am waiting for an Avalonia-independent way to pass a Vulkan or OpenGL context\naround (most likely from Silk.NET) before I work on this project further.\n\n[AvaloniaUI/Avalonia#7753](https://github.com/AvaloniaUI/Avalonia/pull/7753)\nprovides this functionality. I am waiting for that to be merged, or otherwise\nusable.\n\n# EmuFish\n\nEmuFish aims to be a highly-scriptable emulator framework, like BizHawk, except\nmultiplatform (not Windows-only) and with better support and less input lag for\nnewer/less-retro systems (such as the Nintendo 64).\n\n## build instructions\n\nEmuFish is a standard dotnet solution. If you have `dotnet` installed already,\nthen\n```\ndotnet publish --self-contained false --configuration Release\n```\nshould create a working build.\n\nOtherwise, you may be able to grab builds from GitHub actions, however these\nare built in `Debug` mode.\n\nModern Macs require all applications and libraries to be `codesign`ed. At the\npresent moment, this is not built-in to the GitHub Actions workflow, and if you\nare a Mac user, you will have to `codesign` EmuFish along with its libraries\nyourself.\n\nTo force an ad-hoc signing on Mac:\n```\ncodesign --sign - --force --deep EmuFish.app\n```\n\nOn a release, GitHub actions artifacts will be attached, built in `Release`\nmode, but as of writing no releases exist. Release builds should, at some point,\ncome with signatures for both Windows and Mac. When that happens, these\ninstructions will be updated to include how to distinguish an official release\nbinary.\n\n## progress\n\n- [ ] Emulation\n  - [ ] Basic display-synced emulation\n  - [ ] Smart frame advance\n  - [ ] JIT framework\n    - [ ] Aggressive JIT during fast-forward\n  - [ ] Scripting API\n    - [ ] Reading memory\n    - [ ] Writing memory safely\n    - [ ] Virtual input\n    - [ ] Drawing over main canvas\n    - [ ] External windows\n      - [ ] Avalonia.FuncUI bindings for NLua?\n  - [ ] Segment-aware memory viewer/editor\n- [ ] Input\n  - [ ] Keyboard input\n  - [ ] Generic HID input\n  - [ ] Remapping\n    - [ ] Thresholds for buttons controlled by an analog signal\n    - [ ] Stick/axis calibration\n- [ ] Base Targets\n  - [ ] Early Nintendo Handhelds\n    - [ ] GameBoy (EmuFish.SharkBoy)\n    - [ ] GameBoy Advance (EmuFish.LavaGirl)\n  - [ ] Early Nintendo Consoles\n    - [ ] Nintendo Entertainment System\n    - [ ] Super Nintendo Entertainment System\n  - [ ] BizHawk-replacement stretch goals\n    - [ ] Nintendo 64\n- [ ] Additional Targets\n  - [ ] Guide on how to develop cores\n  - [ ] Example external core project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs5bug%2Femufish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs5bug%2Femufish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs5bug%2Femufish/lists"}