{"adoption": {"forks": 355, "observed_at": "2026-08-28T04:04:20.346327+00:00", "stars": 1313}, "canonical_url": "https://ross.abutalabs.com/products/retro-go", "card": {"archived": false, "artifact_type": "application", "description": "Retro emulation for the ODROID-GO and other ESP32 devices", "domain": ["gaming-tools", "embedded-systems", "entertainment"], "enriched": true, "function": ["game-engine", "gui", "embedded"], "health_score": 74, "homepage": null, "language": "C", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["ducalex/retro-go"], "name": "ducalex/retro-go", "platform": ["embedded", "iot"], "pushed_at": "2026-01-19T19:01:17+00:00", "repo": "ducalex/retro-go", "stars": 1313, "tags": ["retro-gaming", "emulator", "firmware", "odroid-go", "esp32", "gameboy", "nes", "snes", "doom", "launcher"], "topics": ["odroid-go", "launcher", "lynx", "nes", "gameboy", "pce", "pceengine", "turbografx-16", "sms", "mastersystem", "gamegear", "snes", "emulator", "sega", "nintendo", "mrgc-g32", "esp32", "doom", "esp32s3"], "urls": [], "use_cases": ["play retro games on ODROID-GO", "emulate gameboy on esp32 handheld", "flash custom firmware to retro handheld", "run doom on esp32 device", "play nes and snes roms on portable console", "manage roms over wifi on handheld emulator", "turn myretrogamecase g32 into multi-system emulator"], "what_it_is": "Retro-Go is a firmware for ESP32-based handheld devices (ODROID-GO, MRBC-G32, and others) that provides a launcher and heavily optimized emulators for retro game consoles. It supports NES, SNES, Game Boy, Sega systems, PC Engine, Atari Lynx, and even DOOM, with features like save states, fast forward, and a WiFi file manager.", "when_to_avoid": ["you want to emulate retro games on a PC, phone, or Raspberry Pi", "your device is not ESP32-based and has no port available", "you need accurate SNES emulation at full speed on weak hardware", "you prefer building your own emulator setup from individual emulators"], "when_to_choose": ["you own an ODROID-GO, MRGC-G32, or other supported ESP32 handheld", "you want a single firmware with many emulators and a unified launcher", "you need optimized performance on low-power embedded hardware", "you want save states, fast forward, and cover art on a retro handheld"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/retro-go", "repo": "ducalex/retro-go", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:20.346327+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:48:51.424841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "621347e12a474353d0da7977b355e47c4bba6fe4d9a84eb1ddaa5b7f3882bec8", "fetched_at": "2026-08-28T04:04:20.346327+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ducalex/retro-go"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 63, "longevity": 100, "rhythm": 32}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2406, "days_push": 226, "days_rel": 299, "gap_med": 138.5, "n_releases_24m": 3}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}