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.

Website β€’ Download β€’ Documentation β€’ GitHub mirror (releases) β€’ Blog β€’ Cracktro

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

  •  
  •