NEShim 3.0

kastar

Member
NEShim v3.0 — Linux support and multi-game publishing

NEShim is a NES emulator built on BizHawk's core with native Steam integration, for publishing NES games on Steam without touching the ROM. v3.0 is the biggest update since the initial release.

Linux is now a first-class target.
Previous versions only ran on Windows. Proton worked perfectly fine but Linux but wasn't a real native path. Getting there meant rewriting the entire rendering, windowing, and input stack off WinForms/GDI+ and onto SDL3, which ended up touching basically everything, including the Windows build. Every video filter, color effect, motion effect, and picture adjustment that used to be Windows/D3D11-only now works identically on Linux through SDL_GPU/Vulkan. Same for the Steam overlay. E.g. if your Deck sleeps mid-game, it now recovers from a lost GPU device on its own instead of crashing.

One binary, multiple games.
If you want to publish an anthology or a series, you can now do it as a single build instead of maintaining N separate ones. Each game gets its own ROM/config/saves/achievements, and players pick from a carousel with box art and per-game descriptions. Games can bundle directly or sell as separate Steam DLC, and you can mix both in the same build. There's optional signed anti-tamper protection if you're selling DLC-gated content. None of this affects existing single-game publishers as it's an entirely separate configuration path.

Controllers overhaul.
Input moved off Windows-only XInput onto SDL3's cross-platform gamepad API, so a
lot more controllers are recognized properly now — DualShock, Switch Pro, Steam Deck controller. Binding screens also show the actual glyphs for whatever's plugged in instead of a text.

Local multiplayer, up to 4 players.
New opt-in `playerCount` setting (1-4, defaults to 1 so nothing changes unless you turn it on) using the Four Score / Famicom 4-Player Adapter the NES core already emulates so no ROM changes needed. Each player gets their own rebindable gamepad and keyboard controls, with glyphs matching their own actual controller.

Smaller stuff: a new lightweight GUI for sealing achievements if you don't want to use the CLI, D-pad/analog-stick linkage, held-repeat on slider navigation, and a pile of menu polish (text overflow, scaling, localization gaps).

No breaking changes, existing configs keep working as-is. If you're publishing on Linux for the first time, there's one extra step (renaming the Steamworks native lib after copying it in) covered in the publishing guide.

Repo: https://github.com/karimhadjsalem/NEShim/releases/tag/v3.0.0
Docs: https://karimhadjsalem.github.io/NEShim/versions/v3.0.0/
 
Top Bottom