A full-featured multi-system emulator frontend for Windows โ built with WPF and .NET 8 โ that turns your game collection into a clean, console-organized library spanning 37 systems from the 8-bit era through PlayStation 3, with your Windows games and apps on the same shelf. Emulation is handled by libretro cores loaded at runtime; no cores or BIOS files are bundled.
Two ways to play: a full-power desktop library at your monitor, or EmuTV โ a controller-only, big-screen mode for the couch.
Also available for Linux and Apple Silicon Mac.
- ๐ฎ 37 systems โ 8-bit classics through PlayStation 3 (PS2 via LRPS2, PS3 via RPCS3)
- ๐ช Windows games and apps โ add programs, shortcuts and Steam links to their own Windows category and launch them from the library or EmuTV
- ๐๏ธ Clean, console-organized library with box art and rich metadata (OpenVGDB + ScreenScraper), and a sidebar you can reorder and trim to the consoles you use
- ๐ RetroAchievements โ full hardcore-mode compliance, in-game unlock toasts, and per-game stats
- ๐บ EmuTV โ a controller-only, couch-friendly console mode for the living room (renders ES-DE themes)
- ๐จ Deep theming โ a visual editor with live preview and 44 color tokens
- โ๏ธ GitHub cloud sync โ each PC backs up its battery saves, memory cards and library to its own private repository, with optional encryption
- ๐ง ROM hacks & HD mods โ IPS / BPS / UPS soft-patching on every core (originals untouched), NES HD packs via Mesen, and HD Mode 7 + widescreen SNES via bsnes-hd
- ๐ In-app game manuals ยท ๐ฅ gameplay recording ยท ๐ per-game notes
- ๐๏ธ Full controller support โ analog-as-D-pad, gamepad save states, disk swapping, and per-system cheats
EmuTV turns Emutastic into a couch-first console interface โ browse your entire library, launch games, and load save states with only a controller, no keyboard or mouse. Think Steam Big Picture or LaunchBox Big Box, built for your TV and living-room setup.
It renders ES-DE themes out of the box โ carousels, wheels, grids, box art, and metadata โ so your shelf looks exactly how you want it. Same Emutastic underneath; a completely different experience on the couch.
Legal notice: This project is a frontend only. It does not include, distribute, or facilitate the acquisition of any copyrighted software, ROM images, BIOS files, or other proprietary system files. You are solely responsible for ensuring you have the legal right to use any software you load into this application.
- Windows 10/11 x64
- .NET 8 Desktop Runtime
- Visual C++ Redistributable 2015โ2022 (x64) โ required by most libretro cores
- libretro core
.dllfiles (downloadable in-app โ Preferences โ Cores) SDL3.dll(x64) for controller support beyond bare XInput: real device names, choosing which controller each player uses (Preferences โ Controls โ Input Device), and DirectInput / generic-HID pads (Retrolink, ShanWan / Hyperkin adapters, arcade sticks). With it every player reads through SDL3 and an unbound player takes the next free pad; without it only XInput pads work, addressed by slot. (Downloadable in-app โ Preferences โ Extras)- Optional:
ffmpeg.exefor video recording, DAT files for ROM identification (also in Preferences โ Extras)
Windows SmartScreen: Emutastic is not code-signed. Click "More info" then "Run anyway" on first launch.
37 systems across 11 manufacturers (click to expand)
| System | Tag | Core (priority order) | BIOS |
|---|---|---|---|
| NES | NES | nestopia โ quicknes โ fceumm | No |
| Famicom Disk System | FDS | nestopia | disksys.rom |
| SNES | SNES | snes9x โ bsnes โ bsnes-hd beta | No |
| Nintendo 64 | N64 | parallel_n64 โ mupen64plus_next | No |
| GameCube | GameCube | dolphin | No |
| Game Boy | GB | mgba โ gambatte โ sameboy | No |
| Game Boy Color | GBC | mgba โ gambatte โ sameboy | No |
| Game Boy Advance | GBA | mgba | Optional |
| Nintendo 3DS | 3DS | azahar | No |
| Nintendo DS | NDS | desmume โ melonds | No |
| Virtual Boy | VirtualBoy | mednafen_vb | No |
| Genesis / Mega Drive | Genesis | genesis_plus_gx โ picodrive | No |
| Sega CD / Mega CD | SegaCD | genesis_plus_gx | bios_CD_U.bin (USA), bios_CD_E.bin (EU), bios_CD_J.bin (JP) |
| Sega 32X | Sega32X | picodrive | No |
| Sega Saturn | Saturn | mednafen_saturn โ kronos โ yabause | Kronos: kronos/saturn_bios.bin. Beetle: sega_101.bin / mpr-17933.bin (JP), mpr-17941.bin (USA/EU) |
| Master System | SMS | genesis_plus_gx โ picodrive | No |
| Game Gear | GameGear | genesis_plus_gx | No |
| SG-1000 | SG1000 | genesis_plus_gx | No |
| Dreamcast | Dreamcast | flycast | No |
| PlayStation | PS1 | mednafen_psx_hw โ mednafen_psx | USA: scph5501.bin / scph1001.bin / scph7001.bin, EU: scph5502.bin, JP: scph5500.bin |
| PlayStation 2 | PS2 | pcsx2 (LRPS2) | Region dump, any filename (e.g. SCPH-39001.bin) |
| PlayStation 3 | PS3 | RPCS3 (installed via Cores / Extras) | System firmware (PS3UPDAT.PUP), user-provided |
| PSP | PSP | ppsspp | No |
| TurboGrafx-16 | TG16 | mednafen_pce โ mednafen_pce_fast | No |
| TurboGrafx-CD | TGCD | mednafen_pce โ mednafen_pce_fast | Any of syscard3.pce / syscard2.pce / syscard1.pce |
| Neo Geo Pocket | NGP | mednafen_ngp | No |
| Neo Geo Pocket Color | NGPC | mednafen_ngp | No |
| Neo Geo | NeoGeo | geolith | neogeo.zip + aes.zip |
| Neo Geo CD | NeoCD | geolith | neogeo.zip + aes.zip + neocdz.zip |
| Arcade | Arcade | fbneo + mame2003-plus | No |
| Atari 2600 | Atari2600 | stella | No |
| Atari 7800 | Atari7800 | prosystem | No |
| Atari Jaguar | Jaguar | virtualjaguar | No |
| ColecoVision | ColecoVision | gearcoleco โ bluemsx | No |
| Vectrex | Vectrex | vecx | No |
| 3DO | 3DO | opera | Any of panafz10.bin (Panasonic) / panafz1j.bin (JP) / goldstar.bin (GoldStar) |
| Philips CD-i | CDi | same_cdi | No |
Alongside them, Windows (tag Windows) holds your own PC games and apps. They run as the programs they are โ no core, no BIOS.
For per-system BIOS filenames and placement, known-broken arcade hardware, the Saturn BIOS naming nuance, and Neo Geo / Neo Geo CD specifics, see the Wiki.
Drag and drop ROMs onto the library or use Import ROMs. The app detects the console from file extension, cleans the title, and hashes the ROM. For ambiguous formats (.chd, .iso, .cue, .bin), a SHA1 lookup against DAT files is attempted first โ if no match, a console picker is shown.
Multi-disc games (Final Fantasy VII, Metal Gear Solid, etc.) are auto-bundled into a single library entry โ drop a folder containing the disc files (.cue/.bin or .chd) and Emutastic writes an .m3u playlist alongside them so the game shows up once, not three times. Hand-authored .m3u files in the folder are honored as-is.
Important: Download DAT files in Preferences โ Cores / Extras before importing. Without them, disc images and some cartridge ROMs may be assigned to the wrong system during import.
Windows games and apps โ drop a program (.exe), a shortcut (.lnk), a Steam or Epic link (.url) or a batch file onto the library, from any view, and it's added under Windows. With Windows selected you can also drop a folder: a game's install folder adds that game, a folder of game folders (such as steamapps\common) adds one entry per game, and a folder of shortcuts adds its shortcuts โ installers, uninstallers, crash reporters and updaters are left out. Apps are never copied; each entry opens the program where it's installed, so shortcuts keep their arguments. Every app gets its own icon as a cover straight away, Steam links get Steam's cover and details, and ScreenScraper or SteamGridDB (when set up) can fill in the rest. Launches and play time are recorded like any other game.
Click to expand the full feature list
EmuTV โ Big-Screen Couch Mode
A controller-only, 10-foot front end for the TV. Open it from the library with the L3 + R3 + L2 + R2 chord (the same chord quits a running game back to EmuTV). Browse your consoles and games, launch with a button, and pull up save states with Start โ no keyboard or mouse needed.
EmuTV renders themes built for EmulationStation Desktop Edition (ES-DE): drop an ES-DE theme into your EmuTV themes folder, or download one from the built-in theme browser (press Y), which pulls from the official ES-DE themes list. Carousels (including wheel layouts), grids, text lists, game metadata, rating stars, favorite/completed badges, and WebP artwork all render per the ES-DE spec.
ES-DE is a large, evolving spec โ not every theme is fully supported yet, so some may render with missing or imperfect elements. The bundled EmuTV Default theme always works as a known-good fallback. Rebind EmuTV's controls and review every controller combo in Preferences โ EmuTV.
Themes
Four built-in themes: Dark (default), Light, OLED Black, Midnight Blue. Full visual editor with 44 color tokens and live preview. Set custom background images with zoom, pan, and tile controls. Export/import themes as .emutheme files.
Artwork & Metadata
Box art, titles, developers, genres, and descriptions are filled in automatically โ no account required. By default Emutastic matches your games against OpenVGDB, a built-in local database, and pulls box art from the libretro thumbnail server. (Only the OpenVGDB match is offline; the artwork itself still downloads over the internet.)
Sign in to ScreenScraper in Preferences โ Snaps to promote it to the primary source โ community-edited, region-aware metadata with fuller coverage, plus 3D box art and downloadable game manuals. OpenVGDB stays on as the backup that fills anything ScreenScraper misses.
Controllers
Controllers are read through SDL3 during gameplay (XInput is the fallback when SDL3.dll is absent). Xbox, DualSense/DualShock, and hundreds of other controllers are identified by product name; generic USB adapters and arcade sticks SDL has no profile for are read positionally and can be mapped like any other pad. Choose which controller each player uses in Preferences โ Controls โ Input Device โ the choice is saved per system, follows the controller across unplug/replug, and two identical pads are listed as the name and the name "(2)". A player with no choice takes the next controller no one else has claimed, and a controller dropping out mid-game frees only that player's slot; the others keep theirs. Button mappings are configurable per system and player in the same panel. (Emutastic.exe --selftest-input runs a headless check of this routing over SDL3 virtual joysticks; the report lands in Logs\input-selftest.log.)
Left analog stick works as movement input on every old console with a digital joystick or D-pad โ push the stick on the NES, SNES, Genesis, Game Boy line, Saturn, Neo Geo, Atari, ColecoVision, TurboGrafx, arcade games, and more, and your character moves. Diagonals are honored (pushing NE registers as up + right simultaneously). The D-pad still works exactly as before โ use whichever you prefer.
Save and load states from the gamepad โ hold L3 then press R2 to save, or L2 to load your latest state, in any game (no overlay needed). A quick on-screen toast confirms each action, and the buttons are configurable per console in Preferences โ Controls.
RetroAchievements
Earn achievements while playing via RetroAchievements. Enable in Preferences โ Achievements with your RA username and password; paste your Web API Key (from retroachievements.org โ Settings) in the same place to unlock per-game stats on the detail card.
The detail card for any game you've launched with achievements enabled shows:
- An achievement progress bar with
X / Y unlocked ยท Z pts, gold-tinted when you've mastered the set - Coming up โ three suggested achievement badges. If you've made in-game progress in your last session, these are the ones you're closest to ("73% ยท 3 of 5"); otherwise they're picked from the community's fastest-typical unlocks for the game
- Typical run caption:
beat ~Xh ยท master ~Yhbased on community medians - Hardcore mode aware โ all numbers and "Coming up" picks reflect hardcore unlocks when Hardcore is on
In-game, achievements appear as toast notifications when you unlock them.
Hardcore mode โ Emutastic enforces every RetroAchievements hardcore-mode rule (save-state loading blocked, cheats blocked including the cores' own cheat options, disc swaps verified by rcheevos, no rewind/slow-motion/frame-advance features, unique User-Agent, persistent on-screen indicator). Server-side hardcore credit requires RA's formal approval, which a frontend can apply for after six months of public availability; Emutastic's application was submitted in October 2026 and is awaiting review. See the Hardcore Compliance wiki page for a line-by-line audit of every requirement on RA's checklist, with code cross-references.
About & Updates
Preferences โ About shows the current version, build date, and credits. On open, it checks GitHub for the latest release โ if a newer version is available, you can download and install it in-app. The update is staged in a temp folder and applied by a small companion updater (Emutastic.Updater.exe) that replaces the running binary while the app restarts. No telemetry.
- Core Options โ Per-core settings (internal resolution, graphics plugins, etc.) in Preferences โ Core Options
- Play Time Tracking โ The game detail card shows your total accumulated play time per game, recorded each session
- Sidebar Layout โ Choose which consoles the sidebar lists and in what order in Preferences โ Library: hide a console or a whole manufacturer, move consoles within their group or move a group with its consoles, and optionally hide consoles with no games. Changes apply immediately, hidden consoles' games stay under All Games, and Restore Default Layout puts everything back
Cloud Sync
Back up each PC's battery saves, memory cards and library database to a private GitHub repository. The library database carries your game metadata, ratings, favorites, play time, and per-game notes, so a restore brings all of that back. Sign in with one click in Preferences โ Backups โ a private emutastic-saves-<pc-name> repo is created automatically under your account. Every PC keeps its own repository, so a new or reinstalled PC can never overwrite another PC's saves, and signing in again on a reinstalled PC with the same name restores its backup. Battery saves and memory cards upload on game close โ or also every 15 minutes during play, if you choose โ and Manual only leaves every transfer to Sync Now, which backs up everything that changed and restores anything missing, with its progress in the status bar. HD texture packs, BIOS and console system files, shader caches and save states stay out of the backup.
Optional AES-256-GCM encryption with a user-chosen passphrase โ saves are encrypted before they leave your machine. Your saves repo is a normal private GitHub repo you can browse anytime. See the Cloud Sync wiki page for details on encryption, storage limits, and troubleshooting.
Disk Swapping (FDS, PS1, Saturn, Sega CD)
Press L3 + Start in-game to flip between discs/sides on systems that need it. Rebindable to any two-button chord (controller or keyboard) in Preferences โ Controls โ Disk Swap. The status bar shows the new disc number on each swap.
Multi-disc games are auto-bundled at import time โ see the ROM Import section. See the wiki page for per-console specifics and troubleshooting.
Game Notes
Keep free-form notes on any game โ passwords, where you left off, strategies โ in a floating editor with line numbers, find, and word-wrap/monospace toggles. Open notes from the library right-click menu, a game's detail card, or the in-game overlay. Notes autosave as you type and ride your Cloud Sync backup across PCs. The window can be pinned on top and rolled up to its title bar โ handy beside a running game on a single monitor.
Game Manuals
Download a game's original PDF manual and read it in a built-in viewer โ zoom, search, page thumbnails โ that reopens on your last-read page. Pull it up in-game from the overlay without closing your game. Manuals are sourced from ScreenScraper (requires a ScreenScraper login); coverage is best for popular console titles.
Cheats
Per-game cheats from the in-game cog menu or the library detail card's โฏ menu. Game Genie / GameShark / raw codes depending on system. See Cheats in the wiki for code formats per system, storage paths, and the list of cores where cheats aren't supported.
ROM Hacks
Apply an IPS, BPS, or UPS patch to a base game right from the library (right-click โ Apply ROM Hack) โ you can pick the patch file or its downloaded zip directly. The patched game becomes its own library entry โ with its own saves โ while your original ROM is left untouched. Patches work on every core (cores that load by file path get an automatically staged patched copy), and BPS/UPS patches are checksum-verified against your ROM, so a mismatched or wrong-region copy is caught before it loads. Available on cartridge systems (SNES, GBA, Game Boy / Game Boy Color, NES, Genesis, Nintendo 64, and more). NES also supports Mesen HD packs โ install from the same right-click menu and switch mods from the game card's โฆ menu.
See ROM Hacks in the wiki for the full system list, supported patch formats, how patched ROMs are scraped, and tips on matching a patch to the right base ROM.
Per-system configuration, known issues, teardown fixes, and technical details are documented in the Wiki.
Requires Visual Studio 2022+ with .NET desktop development workload.
git clone <repo>
cd Emutastic
dotnet build .\Emutastic.sln -c Release
Credits
Emulation is handled by libretro cores maintained by their upstream authors. Emutastic bundles none of them โ the in-app core manager downloads from the libretro build servers on demand. Please support these projects directly.
| Core | Upstream author(s) |
|---|---|
| Azahar | Azahar team (successor to Citra / Lime3DS) |
| Beetle PSX / Saturn / PCE / VB / NGP | Mednafen team (Ryphecha) |
| blueMSX | blueMSX team (Daniel Vik and contributors) |
| bsnes | byuu / near and contributors |
| bsnes-hd beta (SNES HD Mode 7 / widescreen) | DerKoun and contributors |
| DeSmuME | DeSmuME team |
| Dolphin | Dolphin team |
| FBNeo (FinalBurn Neo) | FBNeo team |
| MAME 2003-Plus | MAME team / libretro contributors |
| FCEUmm | FCEUmm team |
| Flycast | flyinghead and contributors |
| Gambatte | Sindre Aamรฅs (sinamas) |
| Gearcoleco | Ignacio Sรกnchez (drhelius) |
| Genesis Plus GX | Eke-Eke |
| Geolith | R. Danbrook (rdanbrook) |
| Kronos | Kronos team |
| LRPS2 | PCSX2 team / libretro maintenance |
| melonDS | Arisotura |
| mGBA | Vicki Pfau (endrift) |
| Mesen (NES HD packs) | Sour and contributors |
| Mupen64Plus-Next | libretro team |
| Nestopia UE | Nestopia UE team |
| Opera | libretro team (3DO) |
| ParaLLEl-N64 | libretro team (Themaister and contributors) |
| Picodrive | notaz |
| PPSSPP | Henrik Rydgรฅrd and contributors |
| ProSystem | Greg Stanton (upstream) / libretro maintenance |
| QuickNES | Shay Green (blargg) |
| RPCS3 (PlayStation 3, experimental โ standalone emulator, fetched on demand from its own builds and run as a separate process) | RPCS3 team |
| SAME CDi | CDi community (MAME derivative) |
| Snes9x | Snes9x team |
| Stella | Stella team |
| VecX | Valavan Manohararajah (upstream) / libretro maintenance |
| Virtual Jaguar | Virtual Jaguar team |
| Yabause | Yabause team |
| Library | Purpose | License |
|---|---|---|
| rcheevos | RetroAchievements client | MIT |
| libchdr | CHD format reader (CHD-based achievement hashing) | BSD 3-Clause |
| libwebp (dwebp) | Google's WebP decoder โ renders WebP art in EmuTV themes | BSD 3-Clause |
Full license texts in NOTICES.txt.
Optional downloadable extras (Preferences โ Cores/Extras). Emutastic bundles none of these โ the in-app downloader fetches them from the sources below on demand.
| Project | Purpose | License |
|---|---|---|
| librashader | Runtime that renders slang shader presets | MPL-2.0 (runtime) / MIT (headers) |
| libretro slang-shaders | Community multi-pass shader preset collection | Various (per shader) |
| The Bezel Project | Arcade & Neo Geo bezel artwork | Community artwork |
EmuTV renders themes built for EmulationStation Desktop Edition (ES-DE), and the in-app theme browser downloads from the official ES-DE themes list. Themes are created by their respective authors under their own licenses โ please support them on their project pages. Emutastic is not affiliated with or endorsed by ES-DE.
Artwork from OpenEmuControllerArt (BSD 3-Clause). Not affiliated with or endorsed by OpenEmu.
| Artist | Controllers |
|---|---|
| David McLeod (@Mucx) | 32X, FDS, GB, GBA, Game Gear, SMS, NES, Sega CD, Genesis, SNES |
| Ricky Romero (@RickyRomero) | Atari 2600/5200, N64, NDS, Odysseyยฒ, PS1, PSP, Saturn, SG-1000, Vectrex, Virtual Boy |
| Craig Erskine (@qrayg) | GameCube, Neo Geo Pocket, PC Engine / TG16 |
| Salvo Zummo / David Everly / Kate Schroeder | Atari 7800, 3DO, ColecoVision |
Emutastic's clean, library-first design was inspired by OpenEmu, the superb multi-system emulator for macOS โ the project that started it all. Not affiliated with or endorsed by OpenEmu.