3DS Store › Apps › topos_3ds-video-player

topos_3ds-video-player changelog

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 track immediately below volume in the root settings menu, with choices 3, 2, 1, and 0. The default is 0.
  • 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 0 without 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

v0.12.3.3 · Nov 2, 2026

Changes

Remove redundant texture cache flushes across all playback paths

  • Remove the remaining 12 per-texture cache flush calls across hardware decoding, software decoding, AV1, 2D, and SBS 3D playback.
  • Remove the MPEG-2-specific condition from the Y2R x2 SBS path so all codecs on that path use the same behavior.
  • Retain the final whole-linear-memory cache flush before GPU execution and the existing intermediate DMA cache handling.

Check MVD availability before hardware initialization

  • Check whether the actual mvd:STD service is registered before allocating MVD buffers or requesting the service, including during initialization after a seek.
  • If the service is absent or the availability query fails, return immediately and let the existing logic fall back to software decoding. This prevents an Old 3DS with fake model mode enabled from waiting indefinitely for a New 3DS-only service.
  • Preserve the sw / hw(auto) selection and fake model settings.

Lowercase UI text and improve status readability

  • Use lowercase menu options and hard-coded UI/status labels.
  • Display FFmpeg's short video/audio codec names instead of their long names, and use k for memory readings.
  • Display the complete sbs:0/1 and 3d:0/1 indicators in the same white as the resolution and frame rate.

Download

The only attached binary is topos.cia. Source archives are available from GitHub for this release tag.

Validation

  • Full build and CIA packaging checks passed.
  • Targeted MVD initialization tests passed for an absent service, query failures, repeated initialization attempts, and an available service.
  • On-device playback validation is still pending for this build.

v0.12.3.2 · Oct 31, 2026

  1. Volume Control: Changed the volume slider to directly control the output volume of the NDSP playback channel, allowing queued audio buffers that have not yet been played to use the updated volume immediately, without waiting for buffers using the previous volume to finish playing. Removed the previous per-sample volume scaling and its associated overload state. Preserved the 0–100 volume range and settings persistence (save/load).
  1. MPEG-2 3D Texture Refresh: Skipped the two per-eye partial texture cache flushes only in the MPEG-2 + SBS 3D + Y2R×2 path, while retaining the final full-heap cache flush before GPU execution to reduce redundant cache flush overhead.
  1. Seek Gate Scope: Only require waiting until the first frame enters the display pipeline before allowing seeking when H.264 hardware decoding is actually enabled. For other video formats, audio-only files, and H.264 streams that fall back to software decoding after hardware decoder initialization fails, seeking is allowed immediately after initialization completes. Removed the two existing audio-specific seek unlock checks.

v0.12.3.1 · May 2, 2026

No notes for this release.

v0.12.3 · May 2, 2026

No notes for this release.

v0.12.2 · Apr 29, 2026

No notes for this release.

v0.12.0 · Apr 13, 2026

No notes for this release.

v0.11.0 · Apr 11, 2026

No notes for this release.

topos_v0.1 · Apr 8, 2026

topos_video player for 3ds_0.1! release!
The o3ds can smoothly software-decode and play MPEG2 800×240 24fps SBS video. The n3ds can hardware-decode and play H.264 800×240 24fps SBS video with almost zero CPU usage.
and the best bat script for transcoding SBS video with ffmpeg
and the AvatarFireAshtrailer sbs trailer h264 and mpeg2 version just for you to test and try.

enjoy it , the world only glasses-free 3d video player

nintendo designed it with hardware decoding support for H.264 at 800×240, so it can naturally achieve hardware-decoded H.264 SBS 3D playback.
it just should be.

love you !