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 2,503
  • Replies Replies 31
  • Likes Likes 19
No, you need Mobipeg GUI, compiled. I made some experimental changes to split 3D moflex into 2 files. Please try it out, you too @Leonmike

https://gofile.io/d/GFMghe
I just tested this version, and the decoded video is still the unified one that seems to shake... and I tested it with the other one that doesn't get decoded, and it's the same story.



Here, I'm giving you the sample files I'm using.
 
I just tested this version, and the decoded video is still the unified one that seems to shake... and I tested it with the other one that doesn't get decoded, and it's the same story.



Here, I'm giving you the sample files I'm using.

Do these video have no sound? And did you manage to decode both of them and get the "shaky" output?
 
Do these video have no sound? And did you manage to decode both of them and get the "shaky" output?
I only managed to decode one—which has no audio and is shaky—whereas I can't seem to decode the other one (which I know has audio from a mod); the program says it finished, but no resulting video appears...
 
@eviltrainer @Leonmike I fixed the moflex decoding, please try it out. And about playing video, I'm working on it (but it might not work on this commit) https://gofile.io/d/vBEVuI
Hi, I just tested the decoding; the videos that wouldn't decode before are now decoding, but without audio. However, the resulting videos are still shaky, even if I select the option for just the left side...

I also want to point out a caveat: with the version prior to the one you shared, I created a *moflex* file with audio and the game accepted it as valid. I’m not sure if the audio decoding isn't happening during the process... but this is already a significant step forward; you're very close to having the definitive tool.
 
Last edited by Leonmike,
@Leonmike We should have a winner: http://gofile.io/d/Sv3tPx/

This decodes the moflex in 2 files properly. For the one you gave me with no sound, please try reencoding with this version
Hi, I’ve just tested the tool and it works wonderfully. The encoding is solid; I no longer have the issue where videos generated by the tool—even in high-quality mode in previous versions—seemed to have slight motion artifacts or blurriness. Speaking of previous versions, I also noticed a substantial improvement in file size when using that mode. Before, the generated files were quite heavy; for instance, if my MP4 was 400KB, the file created in base mode would be 1MB (or 1.5MB in high-quality mode). Now, however, the files are much lighter: if the MP4 is 400KB, the resulting Moflex file is 480KB—a great size for high-quality conversion—while a file without that mode is just 115KB. That is an excellent file size for translation mods or other projects that require it.

Moving on to decoding—it works wonderfully. Having the two MoFlex views is a huge help for anyone wanting to create MoFlex files with subtitles in their own languages. The only things I think are missing are: first, the decoder should detect if a MoFlex file contains audio and extract it separately (I mention this because I know MoFlex files with audio exist—I actually sent you one that has it); and second, the program should indicate the Mob3dLayout mode during decoding so it can be configured correctly. In my tests with 3D MoFlex files, the games kept crashing—I’m not sure if it’s due to the layout or what, but it happens—whereas the game runs perfectly fine when using a 2D MoFlex file.

That said, I hope this feedback helps you improve the tool. It’s been amazing for me, as I’ve been looking for a way to create MoFlex files for 3DS fan translations. So, a huge thank you for considering my feedback, and thanks again for creating such a useful and wonderful tool.

By the way, I made a video on my channel discussing your tool alongside others, and judging by the comments, people are really happy that your tool exists.

P.S. Sorry if my replies sound a bit odd; I’m using Google Translate to respond and comment... sorry!

(Edit: I just realized that, although the short Moflex file I created loads correctly in the game I’m translating, the test video I made for a different game now causes a crash—even in 2D mode—whereas before it worked fine and the game loaded it normally. The version of the tool where the Moflex file still worked is this one: https://gofile.io/d/GolYSo

If I may make a recommendation, I suggest comparing both versions and trying to give the tool the functionality of the old one, while incorporating the new version's file size optimization and improved output video quality. If you need a sample video showing what happens, let me know and I can quickly make one so you can see what I mean.)
 
Last edited by Leonmike,
@Leonmike Glad to know it's working better.

For the moflex which crashed, can you try this one?

http://gofile.io/d/WTNEvM/
Hi, sorry for the delay. I’ve tested it, and this version works perfectly again; the resulting file size is good, the file plays back correctly, and I think I notice a slight improvement in video quality when using high-quality mode. The only issue is that the game still crashes when creating a 3D Moflex file, whereas it works perfectly with a 2D Moflex file.

As for this version here... I tested it, and its decoder works fine—just like the other one—but the game crashed when generating the Moflex files; it didn't matter if it was a 3D or 2D Moflex, the game crashed...

So, having said that, I think the winner between these two versions is this one: http://gofile.io/d/WTNEvM/

In my tests, this version worked wonderfully; I even tested a Moflex file with audio, and the game requiring it loaded normally and ran very well. The only things I think this version needs are: decoding the audio when decoding a Moflex file (if the file contains audio); setting the video decoding frame rate to 24 (which, based on my tests, is the standard for avoiding slowdowns); and fixing the issue where 3D Moflex files crash the game (since 2D ones work perfectly). Otherwise, I think it's excellent—especially when comparing the file size of the original Moflex to the one created with your tool; the new one is slightly lighter while maintaining good quality and normal playback speed.
 
I should have a big update to mobipeg in a few days - I decided to deck all out on new features for it. It'll be using encoding closer to the true Mobiclip codec thanks to @Helwettpackardenterprise and... yeah I won't spoil the rest. But what I will say is that I figured out how to implement support to decode those strange GBA Video ROMs, so now I was able to get the worst copy of Shrek / Shark Tale you will ever watch
 
  • Like
Reactions: Leonmike
mobipeg v2.0

New format support


GBA Video (biggest addition this release — five previously-undocumented cartridge codec families, all reverse-engineered from scratch):
  • VX++ (ActImagine) — full native decoder: intra + inter prediction, motion vectors, residual/macroblock path
  • VXGB — the original ActImagine VX revision that preceded VX++
  • Caimans 2.2 and CaimansPro — native decoders for both stream variants, video and audio
  • FVMV — native decoding of the Nintendo/Pokémon FVMV cartridge format
  • ADS-era (Majesco/"Hydrogen") — full decode support plus a new ads_gba encoder (in-house k-means codebook compressor) and a matching LZMA encoder for the Inflate-compressed variant

TiVo TyStream (.ty / .ty+ / .tmf) — native Series 1–3 support, replacing the external s3tots binary dependency; added a ty muxer for Series 2 encoding, and fixed legacy resource audio/trailer handling

FastVideoDS (.fv) — native demuxer/codec, replacing the FastVideo C# dependency

HVQM4 (.h4m) — added P-picture encoding (per-8x8 integer motion search) on top of the existing intra-only encoder/muxer

New containers, decode + encode:
  • BPK1 (.bpk / .bpk1 / .apd) — Nintendo 3DS Swapdoodle / Swapnote
  • DPG — Nintendo DS (MoonShell)
  • BNS — Wii banner sound
  • BTSND — Wii U boot sound
  • BRSTM / BFSTM / BCSTM — muxers added (decode already existed)
  • DSP-ADPCM (.dsp) — standalone GameCube/Wii/3DS container
  • MOC2 / MOC3 demuxer
  • AFC ADPCM encoder, and AST muxing with ADPCM

Mobiclip encoding accuracy

Credit to @Helwettpackardenterpris, whose MODS_Encoder_v43_2 — a verified-accurate C translation of the retail Mobiclip VfW encoder — is now the reference the quatric/x264 Mobiclip encoder matches:
  • Forward integer DCTs, H.264 MF/dequant scale matrices, and the exact (1 << shift) / 3 rounding bias now match retail bit-for-bit
  • Retail-correct quantizer scaling (shift = 15 + q/6 for 4x4, 16 + q/6 for 8x8)
  • Retail-named rate-control parameters exposed, including the CQ policy
  • Two-pass encoding and a working --hq (Highest Quality) flag
  • Fixed ADPCM/embedded-audio corruption from a video/audio split mismatch, and an IMA ADPCM predictor bug in moenc

GUI

  • Replaced the two-pass checkbox with a single Highest Quality toggle, interchangeable with the advanced quality fields
  • Exposed TiVo TY encoding, DPG, and the new audio formats in the encode/decode front ends
  • Expandable, grid-based decoder format list; playback mode with per-eye stereoscopic soundtrack
  • Merged Output Dir + Output File into one field on the decode tab; auto-split stereo eyes
  • Fixed dark-mode field rendering and macOS layout/window-sizing regressions
  • Windows build now embeds a VERSIONINFO resource in mobipeg-gui.exe

Build & tooling

  • Dropped the FastVideo C# and s3tots binary dependencies entirely in favor of native FFmpeg drivers
  • Enabled optimized x264 assembly in CI builds
  • Added a generate-patches job that diffs x264 and mobipeg against upstream
  • Fixed build-gui failures on linux-x86/armhf/arm64 and a windows-arm64 Vorbis pkg-config lookup issue under llvm-mingw
  • Various Windows/macOS CI fixes (Opus, pkg-config, mingw packages, dependency caching)
  • Repo cleanup: stopped tracking __pycache__/bytecode and stray build artifacts
  • Routine sync with upstream FFmpeg (security fixes, DSP/x86 cleanups, swscale/vulkan work)

Docs

  • Documented every new format in the README codec tables
  • Documented ADS-era GBA Video decoding and the new LZMA encoder
  • Added the Helwettpackardenterprise MODS encoder reference to CREDITS_MOBICLIP.md

Downloads

  • CLI (ffmpeg/ffprobe/ffplay): mobipeg-<platform> archives
  • GUI (mobipeg-gui): mobipeg-gui-<platform> archives

All builds produced by GitHub Actions from commit eb2c7d2..31c9cfd
 
  • Love
Reactions: eviltrainer
So, just tried the latest build from releases (the one from 19 hours ago) and sadly, Pandora's Tower's .mo files still are converted to a mp4 with noisy audio 😢
Also, I still get the 'File not found' error. Dunno what is missing here. All I do is download both CLI and GLI .zip from the repo and just run mobipeg-gui.exe. Then, after decode, I get a mp4 out of my .mo with the noisy sound and the 'file not found' at the same time. Here's the decoded .mo file:

https://gofile.io/d/RbltIJWt

1786740991746.png


Other than that, the tool is working wonderfully! I guess the only missing function for me is a "Undub" function which actually could be called "Demux/Remux" so we can swap streams around and get a new file for undub purposes. That would be dope!
 

Site & Scene News

Popular threads in this forum