topos_3ds-video-player v1.12.3.4 by mockmodular
Video player for side-by-side 3D and normal 2D video, forked from Core 2 Extreme's player
Install on your 3DS
Method 1Scan the QR code
With FBI (Remote Install › Scan QR Code) or 3dsDL (Scan QR Code). Either one installs it.
Method 2Send it to your 3DS
Open 3dsDL › Receive on the same Wi-Fi, then press:
Send to 3dsDL Not working?
Other ways to install
Send can't find your 3DS? Type the address 3dsDL shows on Receive, then press Send.
Send to 3dsDL
Files
| File | Size | SHA-256 | |
|---|---|---|---|
| topos.cia | 9.5 MB | 553d62ca…3de3 | Download |
Screenshots
About topos_3ds-video-player
mockmodular rewrote most of Core 2 Extreme's Video player for 3DS for this fork. Side-by-side video gets split into left and right images for the 3D screen. In auto mode, anything 240 pixels high and at least 640 wide counts as SBS, or you can force 3D or 2D. Everything is drawn in RGB888, so gradients don't band.
On a New 3DS, H.264 goes through the MVD hardware decoder. An Old 3DS decodes MPEG-2 in software. The author now only recommends it for New 3DS, because SBS video on an Old 3DS drifts behind the audio.
The releases come with FFmpeg .bat scripts for encoding SBS video to 800x240, H.264 for New 3DS and MPEG-2 for Old 3DS, and a test clip of the Avatar: Fire and Ash trailer.
On a New 3DS, H.264 goes through the MVD hardware decoder. An Old 3DS decodes MPEG-2 in software. The author now only recommends it for New 3DS, because SBS video on an Old 3DS drifts behind the audio.
The releases come with FFmpeg .bat scripts for encoding SBS video to 800x240, H.264 for New 3DS and MPEG-2 for Old 3DS, and a test clip of the Avatar: Fire and Ash trailer.
Release notes
v1.12.3.4 · Nov 2, 2026
1.12.3.4
Direct decoded-frame input for Y2R x2
- Software-decoded YUV420P frames can now feed Y2R x2 directly in both 2D and side-by-side 3D playback, eliminating the intermediate YUV buffer allocation and frame copy.
- Transfer the AVFrame reference to the conversion thread and retain it until hardware conversion completes or cancellation is acknowledged. Use the actual plane addresses and row strides.
- Keep compatibility with input layouts that require copying. Preserve the existing RGB output fallback for 2D playback with 1024-wide textures while still avoiding the YUV input copy.
- Represent each contiguous decoded-image allocation with one correctly sized AVBufferRef and a single release callback.
Audio track selection
- Add
trackimmediately belowvolumein the root settings menu, with choices3,2,1, and0. The default is0. - Save the preferred track in persistent settings. Existing settings files default to track
0. - Apply the current in-memory preference when opening a video. If the requested track does not exist, use track
0without overwriting the preference. - Changing the setting does not switch the current playback session. Reopening the same video starts it from the beginning with the new selection; seeking retains the session's active track.
- Use the active track's audio parameters for speaker setup, buffer timing, and codec display.
Validation
- Built and linked the Nintendo 3DS application and generated the CIA package.
- Passed host checks for frame-reference lifetime, DMA addressing, conversion error handling, audio-track routing, settings round-trips, and compatibility with older settings files.
- Passed the existing CIA package structure checks.
Download
topos.cia
