Skip to content

yphil-dev/Emulsion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI/CD Release License LiberaPay Ko-fi

Emulsion

Better gaming throught chemistry

Display your games collection into responsive galleries, manage game metadata, cover art and emulator configuration. Launch your games in style.

WebsiteDownloadDocumentationGitHub mirror (releases)BlogCracktro

Emulsion Hero

Features

  • 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.

emulsion-screenshot_02

Installation

Packages

All Releases

⚠️ 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=x11 until it (Wayland) is finally ready for production.

From Source

npm install && npm start

Configuration

Quick Start

  1. Get some games - Let's say NES ROMs
  2. Open EmulsionNES
    • Games Directory: Click Browse, navigate to your NES games folder
    • Emulator:
      • Click Install, choose... Let's try nestopia.
      • Click Select
      • Click Enable, click Save
  3. 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!

Settings Screenshot

Per-Console Settings

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)

Emulators management

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.

Emulators management

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.

Other OSes

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.

Game Metadata & Cover Art

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.

Optional: Add API Keys for More Images & Data

Want more options and higher-quality covers? Add free API keys to expand Emulsion’s reach:

SteamGridDB
  • Login at steamgriddb.com
  • Get your API key from Preferences
  • Paste it into Emulsion Settings
GiantBomb
  • Register at giantbomb.com/api
  • Paste your free key into Emulsion Settings

Text Sources

  • Wikipedia – API (default) text metadata (title, release date, description, etc.)

Image Sources

  • 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.

Global settings

Global settings

Controls

Home

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

Gallery

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

Global Shortcuts

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

Mouse Support

  • Left Click: Launch game / Select cover art
  • Right Click: Open game cover menu
  • Scroll Wheel: Navigate

Command Line

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 settings

Example:

emulsion --kiosk --full-screen --auto-select=snes

Contributing

Support the Project

Use Emulsion? Consider supporting development:

LiberaPay Ko-fi

Found a Bug?

Report it on GitLab - We track everything there!

Have an Idea?

Open an issue and let's discuss it!

Want to Code?

Check out our issues - contributions welcome!

License

Emulsion is open source under the GPL V3 and brought to you for free by yPhil. You are welcome.

Links


Help ❤️ your global coder

This repository is a mirror of the official GitLab repo

Back to top

About

Better gaming through chemistry

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Contributors 2

  •  
  •