Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MSPA-3DS: Difference between revisions

From GameBrew
Created page with "{{Infobox 3DS Homebrews |title=MSPA-3DS |image=MSPA3DS.png |description=A Homestuck (and in the future, other MSPA's) reader for the 3DS. |author=Animalino5 |lastupdated=2026/06/27 |type=Other Apps |version=0.5.0 |license=N/A |download=https://github.com/Animalino5/MSPA-3DS/releases |website=https://github.com/Animalino5/MSPA-3DS |source=https://github.com/Animalino5/MSPA-3DS }}<!--MSPA3DS.7z--> A Homestuck (and other MSPA comics) reader for the Nintendo 3DS. It lets you..."
 
No edit summary
Line 6: Line 6:
|lastupdated=2026/06/27
|lastupdated=2026/06/27
|type=Other Apps
|type=Other Apps
|version=0.5.0
|version=v1.0.0
|license=N/A
|license=N/A
|download=https://github.com/Animalino5/MSPA-3DS/releases
|download=https://github.com/Animalino5/MSPA-3DS/releases
Line 12: Line 12:
|source=https://github.com/Animalino5/MSPA-3DS
|source=https://github.com/Animalino5/MSPA-3DS
}}<!--MSPA3DS.7z-->
}}<!--MSPA3DS.7z-->
A Homestuck (and other MSPA comics) reader for the Nintendo 3DS. It lets you read MS Paint Adventures webcomics on your 3DS.  
A Homestuck (and other MSPA comics) reader for the Nintendo 3DS. It lets you read MS Paint Adventures webcomics on your 3DS.


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.
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:'''
'''Fully Supported Comics:'''
* Jailbreak
* Jailbreak
* Problem Sleuth
* Problem Sleuth
* Homestuck (all pages including <code>[S]</code> animations)
'''Also supported:'''
* Any MSPFA (MS Paint Fan Adventures) story via <code>mspfa.com</code>
== How does it work? ==
'''On your PC: The Bundle Builder'''
Run the included Python GUI tool to download comic pages and package them into '''bundles''':
* 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 <code>.tex</code> textures for instant loading
* Extracts <code>[S]</code> 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
'''On your 3DS: The Reader'''


'''Incomplete Comics:'''
* Browse your installed packs from the main menu
* Homestuck
* Navigate with A (next page), B (previous page), X (back to menu)
* Animated GIFs play automatically as frame sequences
* <code>[S]</code> pages play as animations with audio
* Scroll text on the bottom screen with D-Pad Up/Down
* Resumes from last-read page -- each pack remembers where you left off


== Installation ==
== Installation ==
'''What you need:'''
'''3DS App'''
* A hacked 3DS with homebrew access (CFW + Luma3DS recommended)
 
* Python 3.8+ + ffmpeg to run the bundle builder on your PC
* Download <code>MSPA-3DS.3dsx</code> from the latest release.
* An SD card with enough space (The entire ACT 1 of homestuck is around 1GB)
* Copy <code>MSPA-3DS.3dsx</code> to <code>/3ds/MSPA-3DS/</code> on your SD card.
 
'''Bundle Builder (PC)'''
 
* Download <code>MSPA-3DS-Builder.exe</code> from the latest release, it's a standalone executable, no Python needed.
 
'''Or run from source:'''
 
'''Requirements:'''
 
* Python 3.8+
* <code>pip install requests beautifulsoup4 Pillow yt-dlp</code>
* 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
 
<pre>
python build_gui.py
</pre>
 
== Transferring bundles to your 3DS ==
After building a pack, copy its folder to:
 
<pre>
sdmc:/3ds/MSPA-3DS/packs/
</pre>
 
The folder structure looks like:
 
<pre>
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
      ...
</pre>


'''Instructions:'''
== File format notes ==
* Run the included Python GUI tool.
* Enter a comic URL or slug (e.g. <code>homestuck</code>, <code>jailbreak</code>, or a full URL).
* Set the page range and pack name.
* Click "Build Bundle".
* Copy the output folder to sdmc:/3ds/MSPA-3DS/packs/ on your SD card.
* Copy MSPA-3DS.3dsx to sdmc:/3ds/ on your SD card.


'''File format notes:'''
* <code>.tex</code> - 3DS GPU texture (format 0x80 = untiled RGBA, format 0x00 = GPU-tiled)
* .tex - 3DS GPU texture (format 0x80 = untiled RGBA, format 0x00 = GPU-tiled)
* <code>.anim</code> - Animation manifest: frame count + per-frame delays (ms)
* .anim - Animation manifest: frame count + per-frame delays (ms)
* <code>.wav</code> - PCM audio (44100Hz stereo) for <code>[S]</code> pages
* .wav - PCM audio for <code>[S]</code> pages
* <code>.gif</code> - Original GIF (fallback for on-device conversion)
* .gif - Original GIF (fallback for on-device conversion)
* <code>.json</code> - Page metadata (command, text, media references, next page)
* .mpg - Legacy video format (no longer used — frame sequences replace these)
* <code>manifest.json</code> - Pack metadata (title, page range, schema version)
* <code>bookmark.txt</code> - Last-read page number (auto-generated by 3DS app)


== User guide ==
== User guide ==
Line 49: Line 123:
Browse your installed packs from the main menu.
Browse your installed packs from the main menu.


Navigate with A (next page), B (previous page), X (back to menu).
Navigate with A (next page), B (previous page), X (back to menu).


Animated GIFs play automatically as frame sequences.
Animated GIFs play automatically as frame sequences.


<code>[S]</code> pages play as animations with audio.
<code>[S]</code> pages play as animations with audio.
 
Scroll text on the bottom screen with D-Pad Up/Down.


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.


== Controls ==
== Controls ==
Line 63: Line 139:


X - Return to pack selection
X - Return to pack selection
START - Exit app


D-Pad Up/Down - Scroll text
D-Pad Up/Down - Scroll text
== Media type support ==
'''MSPA Mirror (MSPA To Go)'''
* Static images (GIF/PNG/JPEG) → converted to <code>.tex</code> textures
* Flash <code>[S]</code> pages → SWF extracted via FFDec → frame sequences at 6 FPS + WAV audio
* Multi-image pages → split into separate sub-pages
'''MSPFA (fan adventures)'''
* <code>[img]</code> tags → converted to <code>.tex</code> textures
* <code>[flash]</code> tags → SWF extracted via FFDec → frame sequences
* YouTube embeds → downloaded via yt-dlp → frame sequences
* Direct video (<code><video></code> tags, MP4/WebM) → downloaded and converted via ffmpeg
* <code>@mspfa audio</code> CSS → audio downloaded and resampled to WAV


== Limitations ==
== Limitations ==
* <code>[S]</code> pages are converted to 6 FPS frame sequences. smooth but not full video quality
 
* Audio for <code>[S]</code> pages is extracted from the video file; some pages may have audio sync issues
* <code>[S]</code> pages are converted to 6 FPS frame sequences. Smooth but not full video quality.
* No internet connectivity from the 3DS. all content must be pre-built on PC
* Interactive Flash pages (with ActionScript games) may not convert correctly. FFDec can only extract timeline animations, not interactive content.
* Very long animations may use significant SD card space
* Audio for <code>[S]</code> 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).
 
== Dependencies ==
The Bundle Builder depends on:
 
* Python 3.8+ with <code>requests</code>, <code>beautifulsoup4</code>, <code>Pillow</code>, <code>yt-dlp</code>
* ffmpeg — video/audio conversion (system install)
* Java JRE 11+ — runs FFDec for SWF conversion (system install)
* FFDec — JPEXS Free Flash Decompiler, auto-downloaded on first run
* yt-dlp — YouTube video downloading (pip install)
 
== License ==
This project is open source. The Homestuck webcomic and all MSPA/MSPFA content belong to their respective creators.
 
FFDec is © JPEX and is distributed under its own license.


== Changelog ==
== 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 -- <code>[S]</code> 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 <code><video></code> 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'''
'''v0.5.0'''
* What works
* What works

Revision as of 05:18, 28 June 2026

MSPA-3DS
General
AuthorAnimalino5
TypeOther Apps
Versionv1.0.0
LicenseN/A
Last Updated2026/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

How does it work?

On your PC: The Bundle Builder

Run the included Python GUI tool to download comic pages and package them into bundles:

  • 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 .tex textures 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

On your 3DS: The Reader

  • 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
  • Resumes from last-read page -- each pack remembers where you left off

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)

  • Download MSPA-3DS-Builder.exe from the latest release, it's a standalone executable, no Python needed.

Or 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
python build_gui.py

Transferring bundles to your 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.

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

Media type support

MSPA Mirror (MSPA To Go)

  • Static images (GIF/PNG/JPEG) → converted to .tex textures
  • 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 .tex textures
  • [flash] tags → SWF extracted via FFDec → frame sequences
  • YouTube embeds → downloaded via yt-dlp → frame sequences
  • Direct video (<video> tags, MP4/WebM) → downloaded and converted via ffmpeg
  • @mspfa audio CSS → audio downloaded and resampled to WAV

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).

Dependencies

The Bundle Builder depends on:

  • Python 3.8+ with requests, beautifulsoup4, Pillow, yt-dlp
  • ffmpeg — video/audio conversion (system install)
  • Java JRE 11+ — runs FFDec for SWF conversion (system install)
  • FFDec — JPEXS Free Flash Decompiler, auto-downloaded on first run
  • yt-dlp — YouTube video downloading (pip install)

License

This project is open source. The Homestuck webcomic and all MSPA/MSPFA content belong to their respective creators.

FFDec is © JPEX and is distributed under its own license.

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

External links

Advertising: