Nostalgist.js is a TypeScript library that provides a simplified API for running retro console emulators in web browsers using RetroArch compiled via Emscripten. It handles the complex setup of Emscripten modules, virtual file systems, and RetroArch configuration, allowing developers to launch games with minimal code. The library supports a wide range of consoles (NES, SNES, Game Boy, etc.) with sensible defaults for loading cores and ROMs from CDNs, while also allowing custom resolvers. It includes features like save/load states, SRAM management, screenshot capture, and programmatic input control. The codebase is well-structured with strong TypeScript types, comprehensive tests (integration and e2e), and a clean class hierarchy. Notable highlights include a flexible file resolution system that handles various input formats (URLs, Blobs, ArrayBuffers, etc.) and a clever patching mechanism for importing Emscripten modules as ES modules.
RetroAssembly is a full-stack web application for self-hosting a personal retro game collection and playing it directly in the browser via emulation. It provides a complete library management system for ROMs, save states, favorites, and launch history, with a rich UI built on React 19, Radix UI, and Tailwind CSS 4. The backend uses Hono with Drizzle ORM and SQLite (Node.js) or Cloudflare D1 (Workers), with file storage abstracted for local filesystem or Cloudflare R2. Emulation is powered by Nostalgist.js using libretro cores, supporting dozens of platforms with per-platform core options, BIOS validation, shaders, rewind, and auto-save. The app features multi-user accounts with shared library mode, keyboard/gamepad navigation via spatial navigation, a virtual gamepad for touch devices, internationalization with 12 languages, and a Docker-first deployment model. The architecture is dual-runtime (Node.js or Cloudflare Workers), with a Vite-based build system and pnpm workspaces. While the codebase is well-structured and demonstrates strong engineering patterns, it carries medium technical drift due to pinned CDN commit hashes, patched third-party packages for SSR compatibility, and the complexity of maintaining dual runtimes.
This repository is a curated 'awesome list' for Game Boy and Game Boy Color development — a community-maintained directory of resources rather than a software application. Its production function is curation: organizing and continuously validating links to documentation (Pan Docs, opcode references, hardware schematics), emulators (SameBoy, mGBA, BGB), development toolchains (RGBDS, GBDK), homebrew games, and reverse-engineering projects. The main README.md is meticulously organized into roughly 15 categories, with EMULATORS.md and MORE.md serving as supplementary lists for open-source emulators and lower-tier resources respectively. The contribution guidelines (CONTRIBUTING.md) define a clear triage process between the main list and MORE.md, establishing quality gates for what qualifies as 'awesome'. The only executable code is the GitHub Actions CI workflow (.github/workflows/ci.yml), which runs two validation jobs: awesome-lint (installed from a custom fork, gbdev/list-linter) to enforce markdown formatting standards, and brok (a dead-link checker) to detect broken URLs across all markdown files. The workflow runs on push, pull request, a weekly schedule, and manual dispatch, and it deliberately ignores tcrf.net due to that site's DDoS protection — a thoughtful, reusable pattern for any awesome-list maintainer. The repository also ships CartridgeList.csv, a structured dataset cataloging thousands of Game Boy cartridge dumps with columns for mapper type (MBC1/MBC3/MBC5/RUMBLE/CAMERA/etc.), ROM size, RAM size, battery presence, RTC presence, and game title — a valuable reference for emulator developers, cartridge hardware projects, and ROM preservation efforts. Maintenance is active: the last commit is recent, the CI pipeline runs on a weekly schedule, and the community is engaged (4,497 stars, 21 open issues, active Discord). The repo is the de facto canonical starting point for Game Boy development. While it contains no application code in the traditional sense, its curation quality, CI infrastructure, and reference data make it a high-value, well-maintained resource.