Better gaming throught chemistry
Display your games collection into responsive galleries, manage game metadata, cover art and emulator configuration. Launch your games in style.
Website β’ Download β’ Documentation β’ GitHub mirror (releases) β’ Blog β’ Cracktro
- Flexible Storage - Your games / ROMs can be anywhere, across multiple drives / NAS, etc.
- Universal Input - Keyboard, mouse, or any game controller
- Responsive UX - Adapts perfectly to any screen size / orientation
- Smart emulator management - Emulsion uses your installed emulator, or installs it ; Standard and up to date.
- Flexible Metadata Management - Manual curation, and / or batch automation. Downloads from multiple sources, Wikipedia API default ; All manageable from the platform page.
Emulsion is reproducible - one single config file - and arcade ready ; Perfect for driving an arcade cabinet.
- Linux Debian / Ubuntu
- Linux RPM
- Linux AppImage
- Linux Arch
- FreeBSD (testers needed)
- Windows
- Mac OS (testers needed)
β οΈ Note: If your Linux distro uses Wayland you 1-are a very brave person and 2-may have to run Emulsion like this:emulsion --enable-features=UseOzonePlatform --ozone-platform=x11until it (Wayland) is finally ready for production.
npm install && npm start- Get some games - Let's say NES ROMs
- Open Emulsion β NES
- Games Directory: Click Browse, navigate to your NES games folder
- Emulator:
- Click Install, choose... Let's try
nestopia. - Click Select
- Click Enable, click Save
- Click Install, choose... Let's try
- Done - That's it, your NES Platform is set up forever.
When you're done, optionally set "disabled platforms: hide" in the global setting menu, so you only see the enabled platforms. Also enable "Recents" and "Favorites" ; I guess we're all set now. You are welcome π
π‘ Pro Tip: Your config lives in
~/.config/emulsion/preferences.json- back it up!
| Setting | Description |
|---|---|
| Games Directory | Where your ROMs are for this platform |
| Emulator | The emulator executable (use the install button to install / select emulator) |
| Emulator Arguments | Optional flags (most emulators don't need any) |
| Extensions | File types to scan for (already set if you use the Install / Select dialog) |
Emulsion finds your emulators, helps you install the ones you donβt have, and sets them up with sensible defaults (file extensions and CLI arguments) β all configurable. Emulsion is flexible: You can put all your Vic20 games in the C64 page if you want.
Emulsion keeps up-to-date on platforms emulators and their extensions and arguments.
β οΈ Note: Automatic emulator installation / selection is currently only available on Linux. On BSD, macOS and Windows, emulators must be installed manually. No biggie, the result is the same anyway: setup and forget.
For Windows, we're thinking of implementing something like Scoop or WinGet, when we find the time and motivation. Again, it's not a big deal: Install youe emulator, select it with the "Browse" button, save (optionally tweak the arguments) and you are done.
Press β‘ or I to select the cover art for the selected platform / game.
By default, Emulsion uses Wikipedia to fetch cover images and game metadata β so even without any setup, you get images, release info, and other useful text details automatically.
Want more options and higher-quality covers? Add free API keys to expand Emulsionβs reach:
- Login at steamgriddb.com
- Get your API key from Preferences
- Paste it into Emulsion Settings
- Register at giantbomb.com/api
- Paste your free key into Emulsion Settings
- Wikipedia β API (default) text metadata (title, release date, description, etc.)
- WikiMedia β API (default) good coverage
- SteamGridDB β API, best coverage & high-quality images
- GiantBomb β API, actually quite poor, thinking of removing it.
All images and metadata are saved alongside your platform games / ROMs, keeping your collection organized.
The console carousel
| Action | Keyboard | Controller |
|---|---|---|
| Navigate consoles | β β | β βΊ D-Pad |
| Select console | Enter | ‫ A/Cross |
| Go to 1st (settings) platform | Home / End | |
| Exit | Ctrl+Q | β B/Circle |
The games gallery
| Action | Keyboard | Controller |
|---|---|---|
| Browse games | β β β β | D-Pad |
| Switch consoles | Shift+β Shift+β | L1 R1 |
| Jump 10 rows | PgUp PgDn | - |
| LAUNCH GAME | Enter | ‫ A/Cross |
| Cover art menu | I | β‘ X/Square |
| Back to home | Esc | β B/Circle |
They work everywhere
| Action | Keyboard | Controller |
|---|---|---|
| Display Emulation menu | / | Start |
| Exit emulator / Game (return to Emulsion) | Ctrl+Shift+K | Select + βΌ D-Pad Down |
| Reload Emulsion | F5 | - |
| Restart Emulsion | Shift+F5 | Select + β² D-Pad Up |
- Left Click: Launch game / Select cover art
- Right Click: Open game cover menu
- Scroll Wheel: Navigate
emulsion [options]
Options:
--kiosk Read-only mode (perfect for kids/arcade)
--full-screen Start fullscreen
--auto-select=PLATFORM Jump directly to a platform
--help Show this help
Available consoles:
atari spectrum c64 nes sms pcengine amiga megadrive
gameboy lynx gamegear snes jaguar saturn psx n64
dreamcast ps2 gamecube xbox psp ps3 3ds xbox360 ps4
recents settingsExample:
emulsion --kiosk --full-screen --auto-select=snesUse Emulsion? Consider supporting development:
Report it on GitLab - We track everything there!
Open an issue and let's discuss it!
Check out our issues - contributions welcome!
Emulsion is open source under the GPL V3 and brought to you for free by yPhil. You are welcome.




