Skip to content
forked from SourMesen/Mesen2

About

Mesen Orion is a multi-system emulator (NES, SNES, GB, GBA, PCE, SMS/GG, WS) for Windows, Linux and macOS

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

3,563 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mesen Orion

mesenorion-128x128

Mesen Orion is a multi-system emulator (NES, SNES, Game Boy, Game Boy Advance, PC Engine, SMS/Game Gear, WonderSwan) for Windows, Linux and macOS.

It is a fork of Mesen2 by Sour (whose 2.x line is no longer maintained), continuing development with a renewed UI and rendering-pipeline improvements. The first release of this fork is v3.0.0.

Repository: https://github.com/javocsoft/MesenOrion

Mesen Orion is based on Mesen2 and continues its development. It is not affiliated with the original Mesen project or with MesenCE.

What's new in Mesen Orion

Building on Mesen 2.1.1, this fork adds:

Rendering (Windows & Linux / OpenGL)

  • GLSL shader support via an OpenGL rendering path on both Windows and Linux. Drop libretro-style shaders (.glslp multi-pass presets or single .glsl files) into a Shaders folder and select them from the UI. The folder is searched next to the binary, in the Mesen data folder, and — on Linux — in /usr/share/mesen-orion/shaders (so packaged installs can ship a system-wide shader collection).
  • On Windows, a native WGL/OpenGL renderer is used in place of DirectX, enabling the same GLSL pipeline available on Linux.
  • Switching between the OpenGL renderer and the Software renderer no longer requires a restart — the change applies immediately from the settings.
  • A dedicated Shaders tab in Options → Video with shader selection, favorites management, and live, adjustable shader parameters (#pragma parameter) with a Reset to defaults option.
  • A Favorite Shader entry in the main menu for quick switching.
  • In-game shader switching:
    • Page Down / Page Up — next / previous shader
    • Shift + Page Down / Shift + Page Up — next / previous favorite shader
    • All bindable to a gamepad in Preferences → Shortcut Keys.

Picture presets

  • Save/apply/rename/reorder named picture presets (brightness, contrast, hue, saturation, scanlines, bilinear) in the Picture tab.
  • Cycle presets in-game with Shift + P.
  • Export/Import of presets and shader favorites to share configurations.

Net Play

  • The Start Server dialog shows your local IP and can fetch your public IP (on demand), each with a copy button, plus a port-forwarding hint.
  • Password fields now mask input with an eye toggle to reveal, and a copy button.
  • A Test connection button in the Connect to server dialog.

RetroAchievements

  • Built-in RetroAchievements support (powered by the official rcheevos library) for NES, SNES, Game Boy / Game Boy Color and Game Boy Advance.
  • Log in from Tools → RetroAchievements… (press Enter to submit); only the session token is stored (not your password), so you're logged in automatically on the next launch. The window shows your avatar, display name and points (hardcore + softcore) and a live, colour-coded connection status.
  • Achievements unlock as you play, with an animated on-screen toast (badge + name + points that fades in/out over the game) and an optional unlock sound — both toggleable, on by default. Simultaneous unlocks queue and show one after another instead of overwriting each other.
  • An achievements window lists the current game's achievements — badge, points, live progress and locked/unlocked state — with the game's icon and title, a mastery progress bar, filter (all / unlocked / locked) and sort options. It updates live as you earn them, and clicking an achievement opens it on retroachievements.org.
  • On-screen challenge indicators — small badges shown while you're actively satisfying an achievement's condition (hover for its name and description); can be toggled off in settings.
  • Mastery celebration — a special toast when you complete (master) a game.
  • Leaderboards — a live on-screen tracker while an attempt is in progress, a Leaderboards window (View Leaderboards…) listing the game's leaderboards and which are active, and a rank notification when you submit a new entry.
  • Rich Presence — your current in-game status (the same text shown on your retroachievements.org profile) is displayed in the status bar.
  • The status bar shows whether RA is active (RA: On / RA: Off / RA: Hardcore).
  • Hardcore mode is enforced locally: save states, rewind, cheats, speed changes and the debugger are disabled while it's active (locked menu items show a 🔒), with a confirmation prompt when enabling it mid-game. Official approval by retroachievements.org is still pending for Mesen Orion, so hardcore unlocks don't count on the server yet — but the restrictions apply locally. Softcore is fully supported.

Game library

  • A Game Library (File → Game Library…) that scans your configured ROM folders and lists every game, grouped/filterable by system (detected by extension — including by peeking inside .zip archives), with a search box, favorites, and an adjustable thumbnail size (1×–3×).
  • Box-art uses each game's captured cover (the Ctrl + Shift + F12 cover, or its most recent screenshot) when available, otherwise a system icon.
  • Double-click to launch; right-click for Play, View in folder (reveals the ROM in your file manager) and favorite toggling. The scan is cached so the window opens instantly; re-scan on demand with the Rescan button.

On-screen quick menu (controller-friendly)

  • A RetroArch-style quick menu drawn over the running game, fully navigable with a controller or the keyboard. It works in Steam Deck Game Mode / Gamescope because it's painted on the game canvas (not a pop-up window).
  • Open it with L2 + R2 on a gamepad (or Ctrl + F1); move with the D-pad/arrows, A/Enter to select, B/Backspace to go back. Every binding is configurable in Preferences → Shortcut Keys.
  • Actions: Resume, Load Game, Save State, Load State, Reset, Power Cycle, Power Off. Load Game lists your library favorites so you can switch games without leaving the couch. The game is paused while the menu is open.

Recording & capture

  • Built-in GIF recorder with Shift + G to toggle Record / Stop, plus Tools → GIF Recorder menu entries.
  • An always-visible on-screen indicator while recording, and a notification showing where each GIF was saved.
  • Automatic, timestamped filenames; the output folder is configurable (defaults to a dedicated Gif folder).
  • Video recording can be toggled with Ctrl + Shift + V.

Interface & usability

  • An optional, auto-hiding status bar (toggle from the menu or settings) showing the running core, emulation speed, video size, active video filter, current shader, aspect ratio and vsync state. It auto-hides together with the menu bar.
  • Right-click context menu on the recent-games list to launch a game or remove it from the list.
  • Custom recent-game cover: press Ctrl + Shift + F12 while playing to capture the current frame and use it as that game's thumbnail on the recent-games screen (instead of the automatic one taken when the game stops). The chosen frame is kept per game.
  • Take Screenshot moved to Shift + F12 (plain F12 is left free for the developer tools). Both keys are rebindable in Preferences → Shortcut Keys.
  • A View Shortcuts window (Tools → View Shortcuts) lists the main in-game shortcuts (screenshot, game cover, shader switching, picture presets, GIF/video recording) with their currently configured keys, in a window placed beside the emulator.
  • A Capture Gallery (Tools → Capture Gallery…) to browse your screenshots and recorded GIFs as thumbnails — click one to open it, or jump straight to its folder.
  • Game Statistics (Tools → Game Statistics…) — automatic per-game playtime and last-played tracking.
  • Named save states (File → Named Save States…) — save and load states under custom names (with thumbnails), kept separate from the numbered slots.
  • Display language — Preferences → General lets you switch the UI language (English / Español); any untranslated strings fall back to English.
  • The online auto-update check has been disabled and the Check for updates entry hidden (this fork is distributed independently).

Quality, performance & accessibility

  • Fixes and clean-ups in the SDL/Linux layer (video blit, audio ring-buffer thread-safety, deferred exclusive-fullscreen handling).
  • Optional NATIVE=true build flag to optimize for the local CPU.
  • Localized strings and accessibility names for the new controls.

Releases

Pre-built releases are published on the fork's releases page. All of them bundle the emulator, the required libraries and the full Shaders collection:

  • Windows (x64): a ready-to-run ZIP.
  • Linux (x64):
    • mesen-orion_<version>_amd64.deb — Debian/Ubuntu package. Install with sudo dpkg -i mesen-orion_<version>_amd64.deb (or sudo apt install ./mesen-orion_<version>_amd64.deb).
    • MesenOrion-<version>-x86_64.AppImage — portable, no installation needed. Just chmod +x it and run.
    • Flatpak — a manifest and a build-flatpak.sh helper are provided to build/install it (see Compiling).

Prefer to build it yourself? You can — see Compiling below. (macOS is build-from-source only for now.)

Compiling

See COMPILING.md.

Windows: a PowerShell script handles the full workflow — build, publish, and ZIP packaging:

.\build-windows.ps1 -Package        # Release + distributable ZIP
.\build-windows.ps1 -Configuration All  # Debug + Release

Run from a Developer PowerShell for VS prompt. See COMPILING.md for all options.

Linux: building with GCC is recommended:

USE_GCC=true make -j$(nproc)
# Optional: optimize for your CPU (non-portable binary)
USE_GCC=true NATIVE=true make -j$(nproc)

To build and produce a ready-to-install Debian package (mesen-orion_<version>_amd64.deb), a helper script handles the whole workflow (clean, build, stage files, dpkg-deb):

./build-linux.sh                # make clean + build (GCC) + package .deb
./build-linux.sh --skip-build   # only repackage the existing build output

Run ./build-linux.sh --help for all options.

Or build a portable AppImage (bundles the Shaders collection and AppStream metadata):

./Linux/appimage/appimage.sh          # x86_64  -> MesenOrion-<version>-x86_64.AppImage
./Linux/appimage/appimage-arm64.sh    # ARM64   -> MesenOrion-<version>-aarch64.AppImage

The file name follows AppImageHub's standard nomenclature (MesenOrion-3.0.2-x86_64.AppImage); the version is read from distributable/mesen-orion/DEBIAN/control.

Or build a Flatpak (packages the built binary; auto-resolves the SDL2 source hash and offers to install flatpak-builder if it's missing):

./build-flatpak.sh              # build the app + export MesenOrion-<version>.flatpak
./build-flatpak.sh --install    # also install it for the current user

Run ./build-flatpak.sh --help for all options. See flatpak/README.md for details.

For how to publish a GitHub Release and list the AppImage on AppImageHub, see publishin-a-release.md.

GLSL shaders require the OpenGL renderer. On Linux this is the default; on Windows it is used automatically (requires OpenGL 2.0). Set MESEN_NO_GL=1 (Linux) or enable Use Software Renderer in settings (Windows) to fall back to the non-GL renderer.

Credits

Mesen Orion is built on top of Mesen / Mesen2 by Sour. Huge thanks to Sour and to all the original Mesen contributors. See the About window for the full list of acknowledgements and third-party software.

License

Mesen Orion is available under the GPL V3 license. Full text here: http://www.gnu.org/licenses/gpl-3.0.en.html

Copyright (C) 2014-2026 Sour Copyright (C) 2026 JavocSoft and Mesen Orion contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

Mesen Orion is a multi-system emulator (NES, SNES, GB, GBA, PCE, SMS/GG, WS) for Windows, Linux and macOS

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages