Artemis Switch feature-parity notes (optional inspiration) - #325
Artemis Switch feature-parity notes (optional inspiration)#325antoinebou12 wants to merge 89 commits into
Conversation
…tion Artemis Switch: consolidated benchmark, tuning, UI, Apollo and CI
ci: retrigger Switch dist build
ci: retry Switch NRO build with 60-minute timeout
Trigger the one-shot cancellation workflow through a normal merge push.
Unify Fit/Fill/Stretch/Zoom/Full Range presentation, preserve FSR/RCAS/dithering, simplify Quick Actions and settings, expand performance telemetry, refresh artemi-switch branding, and keep README limited to implemented features.
Thank you XITRIX — Moonlight-Switch is the foundation. This doc only maps Switch-focused ideas from the Artemis Switch fork as optional inspiration, not a request to merge Artemis code as-is. Co-authored-by: Cursor <cursoragent@cursor.com>
|
I’ve been working on Artemis-Switch, my fork of XITRIX/Moonlight-Switch, with the goal of turning the Nintendo Switch into a more complete game-streaming client, especially when paired with Apollo. writting by chatgpt and cursor, but tested on my switch oled GitHub: I'm not trying to rewrite Moonlight. The idea is to build Switch-specific features around it and take advantage of additional functionality exposed by Apollo. Why make a Switch-specific fork?The Switch is a pretty unusual streaming device. It has:
So instead of treating the Switch like a generic Moonlight client, Artemis tries to optimize the whole experience around the hardware. Better video presentationI reworked how the video is presented so the different display modes use the same Switch/deko3d rendering path. There are now proper:
Fit maintains the correct aspect ratio and produces stable black bars. Fill crops the source properly instead of distorting it. Stretch fills the complete Switch output when you actually want that. Zoom/Pan performs the crop on the GPU side. The existing Switch post-processing pipeline is still usable:
If a filtering resource isn't available, the client falls back without randomly changing your selected Fit/Fill/Stretch mode. More useful streaming profilesArtemis exposes:
without requiring a separate "unlock high FPS" setting. There are also:
I know 90/120 FPS sounds strange on a 60 Hz Switch display, but I want the client configuration to remain flexible for testing, latency experiments, different hosts and future use cases rather than artificially hiding valid Moonlight stream configurations. Performance diagnosticsOne thing I really wanted was to be able to answer: "Why does streaming feel bad on my Switch?" Artemis exposes much more runtime information, including things like:
I'm also adding Switch-specific diagnostics such as:
The clock information is read-only. Artemis isn't automatically overclocking your Switch. Benchmarking / Auto TuneAnother part I'm experimenting with is a real streaming benchmark system. Instead of choosing a bitrate because somebody on Reddit said "use 20 Mbps", Artemis can collect performance information from the actual Switch stream and use metrics like latency, frame delivery and queue behavior. Better controller/input toolsI'm also expanding the input side. Current work includes:
The goal is for Artemis to eventually feel more like a native remote-PC interface and less like "video + gamepad". Apollo integrationThis is one of the main reasons I started expanding the fork. Sunshine remains fully supported. Apollo-specific functionality is detected through capabilities, so pairing Artemis with a normal Sunshine server shouldn't suddenly expose a bunch of buttons that don't work. When an Apollo capability exists, Artemis can expose the corresponding functionality. Current development includes things such as:
One of the bigger things I'm interested in next is Apollo virtual-display integration. For example, launching a game from the Switch and having Apollo create/configure the appropriate virtual display for that stream. That requires more work because resolution changes generally need to be coordinated with the stream lifecycle rather than pretending that Moonlight can magically renegotiate everything in the middle of a session. Cleaner in-game UII also simplified the overlay. Quick Actions are intended for things you actually want while playing:
More advanced benchmark, diagnostics, filtering and tuning settings stay in their own sections rather than turning Quick Actions into a giant debug menu. The overall goalI'm basically trying to answer this question: "What would Moonlight look like if the Nintendo Switch was treated as a first-class streaming platform and Apollo was used as more than just a Sunshine-compatible server?" I still want Artemis to remain compatible with the existing Moonlight ecosystem rather than becoming some completely separate protocol. So the direction is: **Moonlight-Switch foundation
If there's a Moonlight/Apollo feature you think would actually make sense specifically on Switch, I'd also like to hear it. |
Summary
docs/ARTEMIS_FEATURE_PARITY.mdas a non-code inspiration map of Switch-focused ideas from the Artemis Switch fork.Why this PR
Artemis Switch keeps Moonlight-Switch architecture and explores Switch-specific UX: performance visibility, dual-motor rumble diagnostics, clearer mouse speed, host web config for adding apps, and capability-gated Apollo extras. Maintainers may want to cherry-pick ideas; this document explains them without dumping a large code PR.
What is not requested
Related
Test plan
docs/ARTEMIS_FEATURE_PARITY.mdfor tone and accuracy