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.
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.
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...
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.
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.)
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
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
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
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:
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!
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
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
Hi there. I just tested the tool using the .moflex files I always use, and I have to say it works really well for decoding and encoding them. I did notice one issue, though: audio decoding doesn't work for 3D .moflex videos, whereas it does work for 2D videos (though I should note that I tested this with a 2D .moflex file where the audio was created using your tool, so I'm not sure how valid that test is). The only other detail is that I tried creating a 3D .moflex video for some games (Ace Attorney again), and it crashed again, whereas 2D .moflex files worked normally. That said, the crash happened at a different point than last time; previously, it crashed right on the loading screen, but now it crashes just as the loading screen finishes. Otherwise, it works beautifully. The video I made when I first discovered your tool doesn't show any weird jitter or excessive blurriness—it looks exactly like it did in my MP4 file—and the other test videos I created work, look, and sound great. This tool has evolved and improved significantly in a very short time; congratulations on the great work.
Edit: I just tried Moonshell's conversion mode for DPG videos, but they caused the program to crash...
@eviltrainer@Leonmike Well, at least that's some progress. Sorry to hear about the problems.
I will admit I sorta rushed out this build without making sure everything worked due to stress. When I get around to updating it yet again I'll let you know
Thanks for the motivating words! Currently I'm working on a fork of Wiimms SZS Tools which will allow DS, Wii, Wii U, 3DS, Switch games to be way more intuitive to slice open and extract all the assets. You can say, in a way, it's a companion app to mobipeg
OMG, that's awesome! Please try and use Super Princess Peach as a case of study for sprite/tileset/tilemap/palette extraction and MORE IMPORTANTLY repacking! I'm a fan translator as well, just like @Leonmike and I desperately need repacking all the time haha! I tried vibecoding some stuff for this game so I could translate it (since I couldn't get Tinke and Crystal Tile to work with it due to multiple palettes per tilesets/tilemaps. And actually because all the HUD/signs were in the arm9.bin and overlay stuff that I'm not familiar at all since I'm no programmer) and got some stuff working but the majority of others not...
@eviltrainer@Leonmike Well, at least that's some progress. Sorry to hear about the problems.
I will admit I sorta rushed out this build without making sure everything worked due to stress. When I get around to updating it yet again I'll let you know
Oh no, don't worry about it—just release your versions however you can, otherwise things might get complicated for you later on. Also, as a fellow programmer, I recommend keeping some documentation handy so you have the info you need right there or can refresh your memory if you forget something. I’m sharing this because, speaking as a programmer myself, I think your skills in creating a tool like this are incredible; you’re a really good programmer.
Thanks for the motivating words! Currently I'm working on a fork of Wiimms SZS Tools which will allow DS, Wii, Wii U, 3DS, Switch games to be way more intuitive to slice open and extract all the assets. You can say, in a way, it's a companion app to mobipeg
Oh, that sounds interesting—and I think it would be a brilliant idea. You see, I know of a tool called Tinke; I’ve used it for small mods on DS games—things like changing audio or graphics—but it has compatibility issues with many games because their assets can't always be opened. Plus, some assets are actually located within the game's `arm9.bin` file. For instance, in *Ace Attorney Investigations 2* for the DS, the font table and its mapping are stored in the `arm9`. I’ve only managed to create a simple tool to view the main font texture so far, but if you were to build a tool capable of handling that, it would be a huge help to anyone wanting to mod DS games. I actually know someone who wants to re-translate a *Dragon Ball* DS game because the existing Spanish translation is poor. Anyway, if you do go ahead with it, I can help out as a tester, as always. One piece of advice, though: focus on one project at a time so you don't get overwhelmed—I speak from experience. I’m currently working on a public tool for editing scripts in *Ace Attorney* games on Nintendo handhelds that lack public tools—specifically *The Great Ace Attorney 2* (3DS) and *Ace Attorney Investigations 2* (DS)—though I should mention that these tools are based on older code from another user who gave me permission to release them publicly.
Oh no, don't worry about it—just release your versions however you can, otherwise things might get complicated for you later on. Also, as a fellow programmer, I recommend keeping some documentation handy so you have the info you need right there or can refresh your memory if you forget something. I’m sharing this because, speaking as a programmer myself, I think your skills in creating a tool like this are incredible; you’re a really good programmer.
Post automatically merged:
Oh, that sounds interesting—and I think it would be a brilliant idea. You see, I know of a tool called Tinke; I’ve used it for small mods on DS games—things like changing audio or graphics—but it has compatibility issues with many games because their assets can't always be opened. Plus, some assets are actually located within the game's `arm9.bin` file. For instance, in *Ace Attorney Investigations 2* for the DS, the font table and its mapping are stored in the `arm9`. I’ve only managed to create a simple tool to view the main font texture so far, but if you were to build a tool capable of handling that, it would be a huge help to anyone wanting to mod DS games. I actually know someone who wants to re-translate a *Dragon Ball* DS game because the existing Spanish translation is poor. Anyway, if you do go ahead with it, I can help out as a tester, as always. One piece of advice, though: focus on one project at a time so you don't get overwhelmed—I speak from experience. I’m currently working on a public tool for editing scripts in *Ace Attorney* games on Nintendo handhelds that lack public tools—specifically *The Great Ace Attorney 2* (3DS) and *Ace Attorney Investigations 2* (DS)—though I should mention that these tools are based on older code from another user who gave me permission to release them publicly.
The arm9.bin situation is exactly what's the issue with Super Princess Peach DS: all the UI graphics that need to be edited for the sake of a translation/localization is located exactly there. I managed to create a tool that could read, extract and reinsert them into the arm9.bin but I couldn't for the life of me figure out all the messy "multi-palette for one graphic situation" the game has. I suck at dealing with these stuff for older games tiles, tilemaps, palettes and etc). The game does have standard NCER, NCG and etc that I somewhat managed to get working with Nitropaint and all, but most of them simply didn't line up correctly or generated correct colors for the extracted graphics. I gave up for the time being because that was driving me crazy haha
The arm9.bin situation is exactly what's the issue with Super Princess Peach DS: all the UI graphics that need to be edited for the sake of a translation/localization is located exactly there. I managed to create a tool that could read, extract and reinsert them into the arm9.bin but I couldn't for the life of me figure out all the messy "multi-palette for one graphic situation" the game has. I suck at dealing with these stuff for older games tiles, tilemaps, palettes and etc). The game does have standard NCER, NCG and etc that I somewhat managed to get working with Nitropaint and all, but most of them simply didn't line up correctly or generated correct colors for the extracted graphics. I gave up for the time being because that was driving me crazy haha
Oh, I see. Well, regarding the incorrect colors... I discovered that you have to limit the colors to the exact ones in the palette—take an AAI2 graphic as an example; if it doesn't use the exact palette colors, it fails. Personally, when creating graphics using GIMP and Tinke, I make the graphic, import the palette into GIMP, index the image to limit the colors, and then switch it back to RGB to avoid issues during insertion.
But as for the system of using multiple palettes for the same graphic... I really wouldn't know what to tell you there.
Ocarina of Time is back in style as the upcoming Switch 2 remake looms on the horizon. But what's a fan of the game to do over the next few months? If you've been...
It's a good time to be a first generation Pokemon fan. But when was it not a good time to be one? In recent weeks we've seen a native LOVE2D recreation of Pokemon Red...
If you've been waiting for an excuse to replay Super Mario Sunshine and happen to have up to nine friends, do I have some good news for you. Released earlier today...
Images for the rumoured Zelda-themed limited edition Switch 2 for The Legend of Zelda's 40th Anniversary have started to leak online.
The leak shows only the...
Hoenn to the ROM hacking scene is like Kanto to the official games. It's everywhere. At this point you've probably played through Pokemon Emerald with a party of...
The golden age of emulation on the Switch continues as a native Dolphin port was released by @Nagaa earlier today. Included in this port, we're looking at cover art...
After being announced last year, the fan-made remake Gamma Emerald has finally gotten its first early access release. A complete rebuild of fan-favourite Pokemon...
With the latest entry to the Fire Emblem series, Fortune's Weave, set to launch in September, Nintendo have today announced a new Nintendo Direct to put it soundly in...
Harbour Masters were cutting it close with this one, promising a release of their Banjo Kazooie PC port "Lighthouse" by the end of this month. And they did not...
So I got pretty lucky on this one. Having ordered the physical version of Oblivion Remastered on Switch 2, I had it delivered earlier today, beating out the official...
Images for the rumoured Zelda-themed limited edition Switch 2 for The Legend of Zelda's 40th Anniversary have started to leak online.
The leak shows only the...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
After being announced last year, the fan-made remake Gamma Emerald has finally gotten its first early access release. A complete rebuild of fan-favourite Pokemon...
Ocarina of Time is back in style as the upcoming Switch 2 remake looms on the horizon. But what's a fan of the game to do over the next few months? If you've been...
With the latest entry to the Fire Emblem series, Fortune's Weave, set to launch in September, Nintendo have today announced a new Nintendo Direct to put it soundly in...
Over the past week, rumors have started swirling as Redditors (probably correctly) deduced the title of the upcoming Elder Scrolls game, which will apparently be...
It's a good time to be a first generation Pokemon fan. But when was it not a good time to be one? In recent weeks we've seen a native LOVE2D recreation of Pokemon Red...
So I got pretty lucky on this one. Having ordered the physical version of Oblivion Remastered on Switch 2, I had it delivered earlier today, beating out the official...
Hoenn to the ROM hacking scene is like Kanto to the official games. It's everywhere. At this point you've probably played through Pokemon Emerald with a party of...
Over the weekend, SQUARE ENIX and Disney & Pixar Games shared the release window for the highly anticipated action-RPG Kingdom Hearts IV. A new trailer also...