Project mobipeg - World's first OSS video encoder for Wii, 3DS, and DS Mobiclip Video

  • Thread starter Thread starter quatric
  • Start date Start date
  • Views Views 787
  • Replies Replies 7
  • Likes Likes 14

quatric

Member
Newcomer
Joined
May 28, 2026
Messages
9
Reaction score
26
Trophies
0
XP
66
Country
United States

1782705104514.png

mobipeg is a fork of FFmpeg with added support for encoding and decoding Nintendo MobiClip video formats. It uses a modified version of x264 for encoding and bundles a GUI tool for easy use.

Features
  • Allows encoding and decoding Mobiclip videos for Wii, 3DS, and DS
  • Allows ADPCM, FastAudio and PCM audio for Wii, 3DS, and DS (along with Vorbis for Wii)
  • Allows encoding 3D video for 3DS
  • Has a GUI for easy use to encode or decode videos, also can be used with CLI
  • Works on Windows, Mac, and Linux - no Mobiclip SDK needed, and no license needed
 
Last edited by quatric,
mobiclip v1.1 released

  • New format and codec support: Added encoders and decoders for VX (Actimagine/MobiclipDS video), RVID (Rocket Video), KWZ (Flipnote Studio 3D), PPM Flipnote, and THP (GameCube/Wii video). VX includes full CAVLC video codec, audio encoder/decoder, and both mux/demux.
  • MODS improvements: Extended MODS encoder/decoder with broader audio support; Codebook (SX/FastAudio-SX) audio is now fully decodable (previously errored).
  • ADPCM encoder: Major expansion of the ADPCM encoder (adpcmenc.c) with ~535 lines of new encoding logic.
  • encode.py / encode_gui.py: Added YCgCo inverse colorspace correction (fixes green/magenta cast on MODS/VX decode), auto-detection of YCgCo sources via ffprobe, per-format demuxer forcing (PPM, KWZ, THP, RVID), duration/FPS probing, and MOBICLIP_KEYINT_MAX cap (90 frames, matching retail Wii .mo cadence).
  • RVID tools: Added rvid.py, rvid_decode.py, and rvid_lz.c for standalone RVID unpacking with LZ compression
 
mobiclip v1.1 released

  • New format and codec support: Added encoders and decoders for VX (Actimagine/MobiclipDS video), RVID (Rocket Video), KWZ (Flipnote Studio 3D), PPM Flipnote, and THP (GameCube/Wii video). VX includes full CAVLC video codec, audio encoder/decoder, and both mux/demux.
  • MODS improvements: Extended MODS encoder/decoder with broader audio support; Codebook (SX/FastAudio-SX) audio is now fully decodable (previously errored).
  • ADPCM encoder: Major expansion of the ADPCM encoder (adpcmenc.c) with ~535 lines of new encoding logic.
  • encode.py / encode_gui.py: Added YCgCo inverse colorspace correction (fixes green/magenta cast on MODS/VX decode), auto-detection of YCgCo sources via ffprobe, per-format demuxer forcing (PPM, KWZ, THP, RVID), duration/FPS probing, and MOBICLIP_KEYINT_MAX cap (90 frames, matching retail Wii .mo cadence).
  • RVID tools: Added rvid.py, rvid_decode.py, and rvid_lz.c for standalone RVID unpacking with LZ compression
I tested this with replacing the Kirby Return to Dreamlands opening and it went smoothly!

There is some weird scaling issue but I think thats due to incorrect setting of Scale (I set it to 640x320, maybe I need to change it?)

I also tried doing the original cutscene by decoding and reencoding that, however that had another weird issue where the game hung at the end (metafortress? something else?) on top the incorrect scale

Overall though really great tool, and I wonder where this goes next!
 
I tested this with replacing the Kirby Return to Dreamlands opening and it went smoothly!

There is some weird scaling issue but I think thats due to incorrect setting of Scale (I set it to 640x320, maybe I need to change it?)

I also tried doing the original cutscene by decoding and reencoding that, however that had another weird issue where the game hung at the end (metafortress? something else?) on top the incorrect scale

Overall though really great tool, and I wonder where this goes next!

I'm not sure why it hung, but you will want to ensure you're using the same resolution that the cutscene uses. The VeggieTales clip with Bob the Tomato seems to be squished due to that

mobipeg v1.2 released

New format support

- Native FastVideoDS (.fv) demuxer/codec and TiVo Series 3 / TMF (.ty+/.tmf) support

GUI

- Replaced the 2-pass encode option with a single Highest Quality toggle, and made it interchangeable with the advanced quality fields

Build & tooling

- Dropped the FastVideo C# and s3tots binary dependencies in favor of native FFmpeg drivers

- Fixed compilation warnings/errors in fastaudio.c and fastvideo.c, and a codec-ID ordering bug breaking CI builds

- Fixed build-gui failures on linux-x86/armhf/arm64 and a windows-arm64 Vorbis pkg-config lookup issue with llvm-mingw

- Repo cleanup: stopped tracking __pycache__/bytecode and removed stray root mp4/x264 build artifacts

Docs

- Linked The Mobiclip Formats technical reference from the README
 
Last edited by quatric,
mobiclip v1.1 released

  • New format and codec support: Added encoders and decoders for VX (Actimagine/MobiclipDS video), RVID (Rocket Video), KWZ (Flipnote Studio 3D), PPM Flipnote, and THP (GameCube/Wii video). VX includes full CAVLC video codec, audio encoder/decoder, and both mux/demux.
  • MODS improvements: Extended MODS encoder/decoder with broader audio support; Codebook (SX/FastAudio-SX) audio is now fully decodable (previously errored).
  • ADPCM encoder: Major expansion of the ADPCM encoder (adpcmenc.c) with ~535 lines of new encoding logic.
  • encode.py / encode_gui.py: Added YCgCo inverse colorspace correction (fixes green/magenta cast on MODS/VX decode), auto-detection of YCgCo sources via ffprobe, per-format demuxer forcing (PPM, KWZ, THP, RVID), duration/FPS probing, and MOBICLIP_KEYINT_MAX cap (90 frames, matching retail Wii .mo cadence).
  • RVID tools: Added rvid.py, rvid_decode.py, and rvid_lz.c for standalone RVID unpacking with LZ compression
Sorry, I was wondering if you could help clear up a few questions I have... I tested the program to convert a video for a translation I'm working on, but the resulting Moflex file is slightly larger than the original and plays back a bit slower. Also, I got an error message once the encoding finished... What could be causing that?
 
I tested the program to convert a video for a translation I'm working on, but the resulting Moflex file is slightly larger than the original and plays back a bit slower.
The newest release adds a "high quality" checkbox, which does make a bigger file size. Make sure you use the same width / height as the original file. You can decode with the tool, and then check that. Be sure to check the FPS as well.
Also, I got an error message once the encoding finished... What could be causing that?
What error message?
 
What error message?

Regarding the error... here is an image of what I got... this appeared both when encoding and decoding the videos...
error.png


Regarding the video speed... I did what you said, and it turned out the video had too high a frame rate, which explains the speed. However, the file size still puzzles me a bit: the original .moflex is 944 KB, while the resulting file is 1.452 MB. Plus, the output has a sort of... slight distortion effect... even though I convert it from the start using the exact same resolution as the original and the correct frame rate.



Here is a video comparing the two. The differences are subtle, but I’d like to know if I’m doing something wrong... or what the issue might be. That said, the tool was incredibly useful—I hadn't been able to figure out how to convert that video for my translation otherwise.

so... Thanks for create this Great Tool
 
Last edited by Leonmike,
  • Like
Reactions: eviltrainer
First of all, AMAZING WORK Quadric! As a Nintendo-only fan translator, this is something I've been expecting for a LONG TIME now! I'm loving Mobipeg so far! I'm trying to fix a video from Pandora's Tower undub (the undub patch uses the japanese video which has japanese hardcoded subtitles on it, which collides on-screen with the western subtitles when it is played, so I need to demux both versions of the video and remux the USA/PAL video with the JAP audio in order to have a raw video with softsubs) and I got the same error from @Leonmike (file not found) BUT I end up with a mp4 with a crackling sound throughout the whole video. I'm sending the video sample and the resulting mp4 from Moobipeg. Again, I can't thank you enough for this amazing tool! Please keep up the good work!

https://gofile.io/d/G4DNy9
 
  • Like
Reactions: Leonmike

Site & Scene News

Popular threads in this forum