Skip to content
← All articles
Article

Handheld streaming and homebrew — Artemis-Switch, moonlight-N3DS, sm64coopdx-switch

Listen to the audio story

Streaming a PC to a Switch and a 3DS · 2:07 · AI-written script, synthetic voices

Transcript

Ava: A Nintendo 3DS from 2015 with a four hundred by two-forty top screen, streaming a PC game over Wi-Fi. Should that even work?

Andrew: I'd have bet against it. Who does that?

Ava: Antoine does, on the side. He maintains three homebrew repos that share one itch: run something interesting on hardware that wasn't designed for it.

Andrew: Start with the Switch one.

Ava: Artemis-Switch. It's his fork of Moonlight-Switch, wired for Apollo hosts, which is Sunshine-style streaming, instead of classic NVIDIA GameStream. He streams Steam Big Picture from his desktop and uses an in-app overlay.

Andrew: What's in the overlay?

Ava: A Quick tab with window-management shortcuts, keyboard presets and host scripts, handy when the host is a Windows box and the Switch is just the display. And a Performance tab: around twelve megabits per second in his capture, Wi-Fi bars, and receive, decode and render timings.

Andrew: How do you read those timings?

Ava: Render is usually the bottleneck on the Switch. If receive and decode are under a millisecond, the network and decoder are healthy and the frame budget goes mostly to compositing.

Andrew: And the 3DS?

Ava: moonlight-N3DS, a GameStream client for the New 3DS, which has extra RAM and CPU. Antoine's fork is where he experiments with build fixes. The constraints are brutal: software decode, an old handheld's Wi-Fi, so lower bitrate and higher latency than on the Switch. The win is simply having a Moonlight path at all. Most of the community interest, around three hundred stars, lives on the upstream repo.

Andrew: And the third one?

Ava: sm64coopdx-switch, a Switch port of the cooperative Super Mario 64 project, with online co-op and Lua mods. A legal note on the page: like every port, you supply your own legally obtained ROM. The repo builds the port, it doesn't ship game assets.

Andrew: So what ties them together?

Ava: Curiosity, mostly. The full write-up has the overlay screenshot and links to all three repos.

Artemis performance overlay — bitrate, Wi-Fi signal, receive/decode/render latency
Table of contents

Three repos I maintain on the side: Artemis-Switch[1] for Apollo/Sunshine streaming on Switch, moonlight-N3DS[2] for GameStream on New 3DS, and sm64coopdx-switch[3] as a Switch build of cooperative Super Mario 64. They share the same itch — run something interesting on hardware that was not designed for it — but the stack and constraints differ.

1. Artemis-Switch — PC streaming on Switch

Artemis-Switch[1] is my fork of XITRIX/Moonlight-Switch[4], wired for Apollo (Sunshine) hosts instead of classic NVIDIA GameStream. I stream Steam Big Picture from my desktop (AntoinePC) and use the in-app overlay for quick host shortcuts and a live performance panel.

Artemis quick menu — host shortcuts and keyboard presets while streaming Steam Big Picture

The Quick tab exposes window-management shortcuts (Win+Shift+Left / Right), keyboard presets, and Apollo host scripts without leaving the stream. Handy when the host is a Windows box and the Switch is just the display.

Performance shows bitrate (~12 Mbps in this capture), Switch Wi-Fi bars, and receive / decode / render timings. Render is usually the bottleneck on Switch; sub-millisecond receive and decode means the network and decoder are healthy and the frame budget is mostly compositing.

Repo: github.com/antoinebou12/Artemis-Switch[1] (★ 12). Upstream Moonlight-Switch work also shows up on my CV as merged toolchain fixes[4] for newer devkitPro toolchains — separate from the Artemis fork, same Moonlight lineage.

2. moonlight-N3DS — GameStream on New 3DS

moonlight-N3DS[2] tracks zoeyjodon/moonlight-N3DS[5], a GameStream client for New 3DS (extra RAM and CPU vs OG 3DS). My fork is where I experiment with build fixes and integration; star count on my repo is still low — the community interest lives on upstream (~300★), which is the right place to look for installs and issues.

Constraints are brutal: 400×240 top screen, software decode, Wi-Fi on a 2015 handheld. Expect lower bitrate and higher latency than Switch; the win is having any Moonlight path on 3DS at all.

Repo: github.com/antoinebou12/moonlight-N3DS[2].

3. sm64coopdx-switch — co-op Mario 64 on Switch

sm64coopdx-switch[3] ports coop-deluxe/sm64coopdx[6] to Switch homebrew. sm64coopdx is the continuation of sm64ex-coop: online co-op, Lua mods, and QoL the decomp scene added over years.

Legal note: like every SM64 port, you must supply your own legally obtained ROM. The repo builds the port; it does not ship game assets.

Repo: github.com/antoinebou12/sm64coopdx-switch[3].

4. How these fit together

ProjectPlatformUpstreamRole
Artemis-SwitchSwitchXITRIX/Moonlight-SwitchApollo/Sunshine streaming + overlay UX
moonlight-N3DSNew 3DSzoeyjodon/moonlight-N3DSGameStream client experiments
sm64coopdx-switchSwitchcoop-deluxe/sm64coopdxHomebrew port of co-op SM64

Project pages: Artemis-Switch, moonlight-N3DS, sm64coopdx-switch.

References

  1. antoinebou12. (). Artemis-Switch. [Software repository] github.com.
  2. antoinebou12. (). moonlight-N3DS. [Software repository] github.com.
  3. antoinebou12. (). sm64coopdx-switch. [Software repository] github.com.
  4. XITRIX. (). Moonlight-Switch. [Software repository] github.com.
  5. zoeyjodon. (). moonlight-N3DS. [Software repository] github.com.
  6. coop-deluxe. (). sm64coopdx. [Software repository] github.com.

References use this article’s publication date.