u/Oakleaf_1

Image 1 — I built a clean, offline-first emulator frontend in C# (hash-based ROMs, no scraping) – Linux + Android
Image 2 — I built a clean, offline-first emulator frontend in C# (hash-based ROMs, no scraping) – Linux + Android
Image 3 — I built a clean, offline-first emulator frontend in C# (hash-based ROMs, no scraping) – Linux + Android
Image 4 — I built a clean, offline-first emulator frontend in C# (hash-based ROMs, no scraping) – Linux + Android
Image 5 — I built a clean, offline-first emulator frontend in C# (hash-based ROMs, no scraping) – Linux + Android
▲ 12 r/EmulationOnAndroid+1 crossposts

I built a clean, offline-first emulator frontend in C# (hash-based ROMs, no scraping) – Linux + Android

I got tired of messy emulator frontends relying on scraping and fragile filename matching, so I started building my own.

EutherDrive is a multi-system emulator frontend + core collection written in C# with Avalonia UI.

The main idea is to keep things deterministic and offline-friendly:

- ROMs are identified by hash (not filenames)

- Cover art is cached locally (Libretro thumbnails + No-Intro DAT matching)

- No scraping or online dependency once cached

- Shared savestates, playtime tracking, stars, etc.

Currently supports:

- Mega Drive / Genesis + Sega CD

- Master System / Game Gear

- Game Boy / Color / Advance

- NES / SNES

- PC Engine + CD

- PSX

- (N64 is wired but still WIP)

Runs on Linux, Windows, macOS (Avalonia), plus an Android frontend.

This started as a Mega Drive project and just kept growing.

Would love feedback from people who care about clean architecture / deterministic behavior.

Repo:

https://github.com/NichlasEk/EutherDrive\_Android

u/Oakleaf_1 — 17 hours ago