MSPA-3DS
More actions
| MSPA-3DS | |
|---|---|
| General | |
| Author | Animalino5 |
| Type | Other Apps |
| Version | 1.0.0 |
| License | N/A |
| Last Updated | 2026/06/27 |
| Links | |
| Download | |
| Website | |
| Source | |
A Homestuck (and other MSPA comics) reader for the Nintendo 3DS. It lets you read MS Paint Adventures webcomics on your 3DS.
It comes with a companion PC tool that downloads and pre-converts comic pages into a format the 3DS can display instantly. No internet connection needed on the console itself.
Fully Supported Comics:
- Jailbreak
- Problem Sleuth
- Homestuck (all pages including
[S]animations)
Also supported:
- Any MSPFA (MS Paint Fan Adventures) story via
mspfa.com
Installation
3DS app
Download MSPA-3DS.3dsx from the latest release.
Copy MSPA-3DS.3dsx to /3ds/MSPA-3DS/ on your SD card.
Bundle builder (PC)
Option 1. Standalone EXE:
Download MSPA-3DS-Builder.exe from the latest release and run it, it's a standalone executable, no Python needed.
Option 2. Run from source:
Requirements:
- Python 3.8+
pip install requests beautifulsoup4 Pillow yt-dlp- ffmpeg (required for video/audio conversion — install via your package manager)
- Java (required for SWF/Flash conversion — install JRE 11+)
- yt-dlp (for YouTube videos — installed via pip above)
- FFDec is auto-downloaded on first run, no manual install needed
Run python build_gui.py.
Using the bundle builder:
- Pick a source tab (MSPA Mirror or MSPFA).
- Enter a URL, slug, or story ID.
- Set the page range and pack name.
- Click Build Bundle.
- Copy the generated folder to your 3DS SD card.
The builder handles everything:
- Downloads pages and images from the MSPA mirror or MSPFA's JSON API.
- Converts GIFs and images to 3DS-native
.textextures for instant loading. - Extracts
[S]page Flash animations via FFDec → frame sequences at 6 FPS with WAV audio. - Downloads YouTube videos from MSPFA pages via yt-dlp → frame sequences.
- Downloads direct video files (MP4/WebM) from MSPFA pages → frame sequences.
- Extracts and resamples audio to 44100Hz stereo WAV for 3DS playback.
- Splits multi-image pages into separate navigable pages.
Transferring bundles to 3DS
After building a pack, copy its folder to: sdmc:/3ds/MSPA-3DS/packs/
The folder structure looks like:
packs/
homestuck-1-100/
manifest.json
bookmark.txt
pages/
190100.json
190200.json
...
media/
001901_0-000.tex
001901_0.anim
001901.wav
001902_0.gif
001902_0-000.tex
...
File format notes
.tex- 3DS GPU texture (format 0x80 = untiled RGBA, format 0x00 = GPU-tiled).anim- Animation manifest: frame count + per-frame delays (ms).wav- PCM audio (44100Hz stereo) for[S]pages.gif- Original GIF (fallback for on-device conversion).json- Page metadata (command, text, media references, next page)manifest.json- Pack metadata (title, page range, schema version)bookmark.txt- Last-read page number (auto-generated by 3DS app)
User guide
Run MSPA-3DS (reader) on the 3DS.
Browse your installed packs from the main menu.
Navigate with A (next page), B (previous page), X (back to menu).
Animated GIFs play automatically as frame sequences.
[S] pages play as animations with audio.
Scroll text on the bottom screen with D-Pad Up/Down.
Each pack remembers where you left off and resumes from the last-read page.
Media type support
MSPA Mirror (MSPA To Go):
- Static images (GIF/PNG/JPEG) → converted to
.textextures - Flash
[S]pages → SWF extracted via FFDec → frame sequences at 6 FPS + WAV audio - Multi-image pages → split into separate sub-pages
MSPFA (fan adventures):
[img]tags → converted to.textextures[flash]tags → SWF extracted via FFDec → frame sequences- YouTube embeds (
<iframe>) → downloaded via yt-dlp → frame sequences - Direct video (
<video>tags, MP4/WebM) → downloaded and converted via ffmpeg @mspfa audioCSS → audio downloaded and resampled to WAV
Controls
A - Next page (or next image on multi-image pages)
B - Previous page
X - Return to pack selection
START - Exit app
D-Pad Up/Down - Scroll text
Limitations
[S]pages are converted to 6 FPS frame sequences. Smooth but not full video quality.- Interactive Flash pages (with ActionScript games) may not convert correctly. FFDec can only extract timeline animations, not interactive content.
- Audio for
[S]pages is extracted from the source; some pages may have audio sync issues. - No internet connectivity from the 3DS. all content must be pre-built on PC.
- Very long animations may use significant SD card space (~1MB per 10 seconds at 6 FPS).
Changelog
v1.0.0
- What's new in v1.0.0
- MSPFA support -- build packs from any fan adventure on mspfa.com via the JSON API
- SWF conversion --
[S]page Flash animations are automatically extracted to frame sequences using JPEXS FFDec (auto-downloaded on first run) - YouTube support -- MSPFA pages with YouTube embeds are automatically downloaded via yt-dlp
- Direct video support -- MSPFA pages with
<video>tags (MP4/WebM) are downloaded and converted - Per-pack bookmarks -- the 3DS app remembers where you left off in each pack individually
- Auto-downloaded FFDec -- no manual installation needed, the builder fetches it from GitHub
- Two-column builder GUI -- compact layout that fits on smaller screens
- Builder EXE -- for those who hate python!
v0.5.0
- What works
- Full comic reading -- navigate pages with A/B, scroll text with D-pad
- Animated GIFs -- pre-converted to frame sequences, play smoothly
- pages -- converted to 6 FPS frame sequences with WAV audio
- Multi-image pages -- automatically split into separate navigable pages
- Multiple comics -- Homestuck, Jailbreak, and Problem Sleuth supported
- Pack system -- each comic pack is a folder on SD, easy to add/remove
- PC bundle builder -- GUI tool downloads, converts, and packages everything
- Known issues
- Audio quirks -- some [S] pages may have audio sync or playback issues
- No Bard Quest -- excluded because it has branching paths (multiple "next" links per page) which the reader doesn't support
- No Homestuck Beta -- excluded because it's flash-only with no static images
- pages are 6 FPS -- smooth enough for reading, but not full video quality
- Large [S] pages use more space -- frame sequences are bigger than video files (roughly 300KB/frame at 320x240)
v0.1.0
- FEATURES PRESENT SO FAR:
- You can read most homestuck pages
- You have their gif showing up at the top screen
- You can scroll down
- You can teleport to whatever page you want
- You can save your progress
- LIMITATIONS SO FAR:
- Pages with double images just render one
- Flashes are not usable
- Depending on gif complexity, FPS may fall
- Pesterlogs aren't colored