Repository navigation
feat(3ds): deploy the console binary over the dev connection - #25
Merged
Merged
Conversation
`bun run deploy` builds the .3dsx, the running shell writes it to sdmc:/3ds/pocketshell-main.3dsx and the console restarts into it through the Homebrew Launcher's loader, running the guest the new file embeds. ftpd is now needed once, to pair; `deploy --ftp --host <ip>` copies one binary through ftpd for a Runtime older than this. The PocketJS pin moves to pocket-nexus/pocketjs#504, which adds .3dsx install and launch to the 3DS dev connection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
doodlewind
marked this pull request as ready for review
October 1, 2026 00:46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
bun run deployreplaces the ftpd round trip for console binaries: it builds the.3dsx, the running shell writes it tosdmc:/3ds/pocketshell-main.3dsx, and the console restarts into it through the Homebrew Launcher's loader, running the guest the new file embeds. ftpd is needed once, to pair.vendor/pocketjsmoves to the squash commit of pocket-nexus/pocketjs#504 before this merges (a squash-merge orphans the PR-branch commit).Validation
Old 3DS at 192.168.8.159 (Luma3DS 13.0.2), after one bootstrap copy through ftpd:
bun run deploy×4: staged the running.3dsx(2,829,836 bytes, 11.6–12.7 s on the wire), restarted without input, returned running the embedded guest each time; a deploy over a newer push (guest A pushed,.3dsxembedding B) ran B.bun run check— asset review, typecheck, all shells (3DS 40, ipod 72, desktop 59/4/3/6/66).bun run goldens— 24/24 byte-identical against the new runtime (Azahar 2125.1.2), re-run after the review round.The console is left on main's guest
654785b8e2e1f1c9, installed bydeploy.🤖 Generated with Claude Code