Skip to content

Add macOS/Linux support, true widescreen, and Steam Deck validation - #10

Closed
navjack wants to merge 24 commits into
mstan:mainfrom
navjack:main
Closed

Add macOS/Linux support, true widescreen, and Steam Deck validation#10
navjack wants to merge 24 commits into
mstan:mainfrom
navjack:main

Conversation

@navjack

@navjack navjack commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR contributes the cross-platform runtime work developed in the fork:

  • Native macOS Metal, Core Audio, and GameController support.
  • Linux and Steam Deck runtime UI parity, including F1 and Alt+W controls.
  • Engine-level true widescreen rendering with persisted configuration.
  • NTSC CRT display options and runtime save/load-state controls.
  • Steam Deck controller fallback handling.
  • Build and packaging updates for macOS and Linux.
  • Documentation of Linux/Steam Deck completion validation with widescreen enabled.

Validation

Tester littlerobotfairy completed the game on Linux running on Steam Deck with true widescreen enabled. The playthrough is documented here:

https://www.twitch.tv/videos/2820912518

Native arm64 macOS CMake configure and build were also validated locally. The original game ROM is not included in the repository or its Git history.

Attribution

These modifications were made with informed input from the repository owner’s personal knowledge and assistance from ChatGPT 5.6, Luna, Sol, and Terra.

mstan pushed a commit that referenced this pull request Jul 17, 2026
Broken out of PR #10 (navjack). When SDL reports a joystick that has no
game-controller mapping (e.g. Steam's virtual gamepad on Steam Deck in
some modes), fall back to opening it as a raw SDL_Joystick and map its
buttons via the standard Xbox raw layout. Also closes the duplicate
SDL_GameController handle when a device is seen twice.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mstan added a commit that referenced this pull request Jul 17, 2026
…NG, README rework

navjack docs/packaging split from PR #10, landed now that the repo
matches what it documents (LLE-first execution, snesrecomp + recomp-ui
as pinned submodules, bootstrap.sh gitlink verification). Kept: the
idempotent bootstrap, macOS/Linux/mingw build + AppImage scripts,
Steam Deck README/config text, CONTRIBUTING, and the README rework.

Corrections applied on top of the automerge, so the docs describe THIS
repo rather than the fork: framework/clone URLs point at mstan (not the
navjack fork), the incorrect embedded-snes9x-core claim is replaced with
the real LLE-first runner description (snes9x was removed from the
project long ago for licensing), the stale 1.0.5/no-known-issues status
now defers to Releases + ISSUES.md, sections describing not-yet-merged
features (native macOS Metal backend, F1 ImGui menu, NTSC-CRT, Linux
in-game menu) are replaced with a pointer to their staging branches, and
the widescreen section states the true current state: merged, hidden,
WIP per the ISSUES.md ledger. Steam Deck completion credit retained
(fork build). Direct v2_emit invocation gains --cfg-roots to match
regen.sh.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mstan

mstan commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Hello! Thank you for the contribution. For good hygiene, it is typically better to split this up into smaller PRs. As a courtesy, I've gone ahead and split these up into smaller branches.

✅ pr10/input-raw-joystick | contains the joystick fallback for steam deck. Merged
⚠️ pr10/widescreen | a notable improvement over early tests, but there is still some y mis-alignment in the 16:9 area. Enemy spawn and culling is still also not quite there. I've merged the work that's been added thus far; but I don't think it's quite production ready, so it is not exposed on the UI yet
✅ pr10/build-packaging-docs | goes over docs updates. These are merged
❌ pr10/imgui-vendor-launcher | A good choice to use imgui! I've been unhappy with rmlui in general, so I have gone ahead and refactored all of my ecosystems to use imgui over at https://github.com/mstan/recomp-ui , this includes Megaman X, which supercedes the work here.
🔲 pr10/linux-ingame-ui | an ingame UI would be beneficial. I would like to vendor this into recomp-ui as an extension
🔲 pr10/macos-native | Also a welcome addition. We need to untangle it a bit from the ImgUI work there that's been superceded. I'd say let's pick the discussion up over there.

Thank you very much for the contributions! I've gone ahead and pieced our this PR to more bite sized conversations; so I'll close it out. We can keep conversations there. For tasks outstanding like widescreen, I encourage we open a new PR/issue for that one.

@mstan mstan closed this Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants