SWOTS is an experimental motion-cue overlay for Atmosphère and Tesla Menu. It draws animated edge dots from the Switch's handheld six-axis data.
Important
SWOTS is not a medical device and does not guarantee relief. Stop and rest if you feel unwell; seek medical advice for persistent or severe symptoms.
Atmosphère, Tesla Menu, and nx-ovlloader. Building also requires devkitPro switch-dev.
Only handheld mode is supported. SWOTS deliberately ignores detached, wireless, and docked controller sources. Compatibility is still limited; see compatibility.
SWOTS starts on the console's built-in
SevenSixAxisSensor and restores the original 640x360 render resolution with
two RGBA4444 framebuffers. It passively probes the attached Handheld sensor,
but switches only after the stream proves physical responsiveness and remains
structurally valid for 600 ms; an advancing static placeholder cannot qualify.
While Handheld is active, the same placeholder is checked continuously, so
returning from a game to HOME falls back to Console after 800 ms. Console uses
its fused orientation; Handheld retains the release-tested acceleration
gravity estimate for translation and uses its fused direction matrix for
horizon roll. A three-second anti-flapping cooldown applies, and sensor
switches never change the 640x360 framebuffer. Console horizon compensation
is 100%; the Handheld fused direction is hardware-tuned to 95%.
-
Verify the release ZIP with its published SHA-256.
-
Extract it to the SD card root.
-
Confirm these files exist:
atmosphere/contents/4200000000007E09/exefs.nsp atmosphere/contents/4200000000007E09/toolbox.json switch/.overlays/SWOTS.ovl -
Restart the Switch.
-
Open Tesla → SWOTS →
Motion cues→On.
The package must not contain boot2.flag; Tesla starts the renderer when needed.
- Configure opacity, dot radius, sensitivity, and smoothing in Tesla → SWOTS,
then press
Ato save the complete configuration. Leaving the page any other way cancels the draft. - Press
Bon the SWOTS main screen to close the overlay and resume cues. - Select
Stop and return to Teslato stop cues and return to Tesla. - The Tesla shortcut also opens and closes the overlay.
Offremoves the cues and stops the renderer.- Settings can be saved while cues are On; the new values take effect when Tesla closes.
- Cues respond only to physical motion of the handheld Switch, not the in-game camera or a detached controller.
- While the screen is upright enough to define a horizon, the dot rows remain level with the real world as the Switch is rolled like a steering wheel.
Settings and logs: /config/swots/settings.cfg, /config/swots/renderer.log,
and /config/swots/sensor.log.
See troubleshooting for 0x0000FC01,
0x00010801, missing cues, sensor problems, or Tesla conflicts.
source scripts/env.sh
make setup-libtesla
make verify -j2
./scripts/deploy.sh /path/to/SWITCH_SDHost tests do not need devkitPro:
env -u DEVKITPRO make testBuild and verify the release:
make dist -j2
cd dist
sha256sum -c SWOTS-v0.1.0-alpha.5.zip.sha256The renderer uses a bounded 3 MiB heap, and make verify checks its ELF code
plus 0x30000 main-thread stack against the late-launch startup budget. NPDM
compatibility depends on the tested ffff0400 capability bytes. Changes to
the memory budget, toolchain, permissions, VI, HID, or PM require hardware
testing. The development lifecycle must stop sys-ftpd before starting SWOTS;
the two System processes are not budgeted to coexist. Title ID:
4200000000007E09.
Turn cues Off before replacing files. The overlay and renderer must come from
the same release. Restart after upgrading; settings remain in
/config/swots/settings.cfg. If upgrading from an internal development build,
delete the obsolete switch/.overlays/SWOTS-Lab.ovl.
To uninstall, turn cues Off, restart, then delete:
atmosphere/contents/4200000000007E09/
switch/.overlays/SWOTS.ovl
/config/swots/ (optional)
SWOTS is alpha software with broad legacy-compatible NPDM permissions. Use trusted builds and verify release hashes. See contributing, security, and third-party notices.
SWOTS is independent and is not affiliated with KineStop or Nintendo.
Licensed under GPL-2.0-or-later.