Prospect of Mobile Suit Gundam DX English Translation

Moderators: pcwzrd13, deluxux, VasiliyRS

toastedgreedo
shadow
Posts: 5

Prospect of Mobile Suit Gundam DX English Translation

Post#1 » Mon Mar 04, 2024 11:06 pm

Hi all,

It seems there is no standalone English patch for Mobile Suit Gundam Federation vs. Zeon. I do know however, some translation work has already done in the GDXSV build of Flycast, which replaces the menu textures with English-translated versions. These custom textures can be loaded into Flycast and provides some basic translation of the game's menus. I've attached a screenshot of the textures and them running in the emulator.
image.png
image2.png

I was wondering if it might be possible to replace these textures in the game's GDI itself, however it doesn't seem that straightforward. I've extracted the GDI and everything is obscured within the binary. I can't seem to locate any of the texture data, and it doesn't appear to be in a more common format like PVR. I've also attached a screenshot of what the extracted GDI looks like. I have no experience in modding DC games, so I was wondering if anyone here could help?
Attachments
image3.png

User avatar
fraggle200
Graffiti Grind
Posts: 313

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#2 » Tue Mar 05, 2024 10:59 am

I suspect they're all locked away inside those BIN files. does any of the tools linked at the top of viewtopic.php?f=5&t=13952&hilit=megathread help ?

User avatar
ateam
Animated Violence
Posts: 490

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#3 » Tue Mar 05, 2024 12:17 pm

A lot of the text has been translated too. If I recall correctly, this game has native ASCII support.

https://github.com/inada-s/flycast/blob ... tch_utf8.h
Find me on...

DreamcastForever.com
GitHub
Reddit
SegaXtreme
Twitter
YouTube
• Discord: derek.ateam

toastedgreedo
shadow
Posts: 5

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#4 » Tue Mar 05, 2024 3:26 pm

fraggle200 wrote:I suspect they're all locked away inside those BIN files. does any of the tools linked at the top of viewtopic.php?f=5&t=13952&hilit=megathread help ?


Thanks for the reply, I also believe they are in those BIN files. I've downloaded the tools but it seems they mainly deal with PVR format textures. There is only one PVR texture when I use PVR Viewer and it is an image of the disc art. The rest of the files are either MLT or BIN files, which have either a 'TEX', 'PZZ', or 'MDL' suffix. As an example there is BR12_PZZ.BIN, BR12_MDL.BIN, AND BR12_TEX.BIN.

My assumption is that TEX is a texture, and MDL is a model, but I'm not sure how to access them as they are all binary. I haven't found any tools to deal with these. Do you recognize this format, or any other translations that have had to deal with the data structured this way?

toastedgreedo
shadow
Posts: 5

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#5 » Tue Mar 05, 2024 3:33 pm

ateam wrote:A lot of the text has been translated too. If I recall correctly, this game has native ASCII support.

https://github.com/inada-s/flycast/blob ... tch_utf8.h


Hey ateam, some of the users in the SEGA Online Discord actually referred me to you :lol:

I did see that the in-game text has also been translated, was interested in that as well. In the link you provided, there are memory addresses for each translated line. Are these the addresses where the text appears in-game? And if so, where and how would one go about modifying the game files to replace the Japanese text with the translation? I've seen your Anatomy of a Dreamcast Hack video and though I'm not at all experienced in rom hacking, but would be curious to learn more about it.

User avatar
ateam
Animated Violence
Posts: 490

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#6 » Tue Mar 05, 2024 5:07 pm

toastedgreedo wrote:Hey ateam, some of the users in the SEGA Online Discord actually referred me to you :lol:

I did see that the in-game text has also been translated, was interested in that as well. In the link you provided, there are memory addresses for each translated line. Are these the addresses where the text appears in-game? And if so, where and how would one go about modifying the game files to replace the Japanese text with the translation? I've seen your Anatomy of a Dreamcast Hack video and though I'm not at all experienced in rom hacking, but would be curious to learn more about it.


Based on the looks of it, these are the absolute addresses inside the game executable (1ST_READ.BIN). You can open the game executable in a hex editor and try going to one of the addresses from that document.

For example, on line 1985, we see "戦場選択画面に移動します 前往戰場選擇畫面" is supposed to be at offset 0x1C0780.

From there, I believe that video tutorial of mine shows the basics of extracting/rebuilding a GDI.
Find me on...

DreamcastForever.com
GitHub
Reddit
SegaXtreme
Twitter
YouTube
• Discord: derek.ateam

toastedgreedo
shadow
Posts: 5

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#7 » Tue Mar 05, 2024 6:50 pm

ateam wrote:
Based on the looks of it, these are the absolute addresses inside the game executable (1ST_READ.BIN). You can open the game executable in a hex editor and try going to one of the addresses from that document.

For example, on line 1985, we see "戦場選択画面に移動します 前往戰場選擇畫面" is supposed to be at offset 0x1C0780.

From there, I believe that video tutorial of mine shows the basics of extracting/rebuilding a GDI.


You're right! I was able to modify the first text line (line 17) directly in 1ST_READ.BIN with the translated text.
edit_1st_rd.png
ingame.png

Though it would be a bit time consuming, I could definitely replace each translated line.

In my hex editor, the decoded text does not seem to render any Japanese or English characters. Is there a setting to fix that?
og_1st_rd.png

TapamN
letterbomb
Posts: 149

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#8 » Tue Mar 05, 2024 9:57 pm

I took a quick look at some of the files with a (very incomplete, buggy, and rough) raw texture viewer I made a while ago.

Looking at PR04BTEX.MLT...
texture view.png


That block at the top left looks like a codebook for a VQ texture, but it's too short and has out of place pixels, so the MLT files are probably a compressed archive. Those bright red, green, and blue pixels in the middle of the gray block are probably decompression codes.

It's not that hard to find decompression code with Ghidra. Find a string with a file name, find a place that uses that string, and a call to the decompressor should be nearby. Likely the game either passes the string to a generic load file function, then manually calls decompression on it afterwards, or it calls a function that does both.

Some files look uncompressed, like EM00_TEX.BIN...
uncompressed c.png

You can see the block for the codebook in the top left, and it looks like there's a second VQ texture in this file as well. Adjusting the start of the texture and viewing it as VQ compressed...
uncompressed2 c.png

...gets a valid texture.

User avatar
ateam
Animated Violence
Posts: 490

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#9 » Tue Mar 05, 2024 11:31 pm

toastedgreedo wrote:In my hex editor, the decoded text does not seem to render any Japanese or English characters. Is there a setting to fix that?


Look for character encoding settings in your hex editor, or find one with Shift-JIS support. I use 010 Editor.

For text replacement, you should write a tool to do the automated insertion based on the contents of that translation file. Of course, include logic for throwing warnings/errors when English text exceeds space allotted by the original Japanese.

Better yet, your tool should take all of the string locations from that document, add the game's base address (likely 0x8c010000), do an endian swap (e.g., 8c010123 becomes 2301018c), then automatically locate the position of all those text strings' pointers inside the game executable.

Assuming the game is using absolute pointers rather than relative ones for strings stored in the game executable, your text insertion tool can shift text around to maximize space, then calculate each string's new location and update its pointer accordingly. This prevents the need for squeezing English (which consumes more glyphs to express an idea) into small spaces in the executable originally holding Japanese text (which consumes fewer glyphs to express an idea, usually).

If writing such a tool is new territory for you, my humble suggestion would be to learn how to do so. It'll empower you in many romhacking endeavors, and ultimately save time while also breeding efficiency.

On top of that, the vast majority of games require the writing of custom tools, with some exceptions of course. Unless a game has very little text, at best you'll spend tons of time manually replacing it (and even more if you need to maximize space and adjust pointers), and at worst the translation will suffer immensely due to text space restrictions.

That said, if a game (like Gundam here) has native ASCII support (a rarity), right off the bat you get double space for storing English text. This is because ASCII character encoding uses 1 byte per character, whereas Shift-JIS uses 2 bytes.

If the concept of pointers is new to you, try searching for romhacking beginner guides on pointers. Likewise, try finding guides on working with binary data for purposes of writing custom tools, which can be done in many programming/scripting languages.
Find me on...

DreamcastForever.com
GitHub
Reddit
SegaXtreme
Twitter
YouTube
• Discord: derek.ateam

toastedgreedo
shadow
Posts: 5

Re: Prospect of Mobile Suit Gundam DX English Translation

Post#10 » Thu Mar 07, 2024 7:53 pm

TapamN wrote:I took a quick look at some of the files with a (very incomplete, buggy, and rough) raw texture viewer I made a while ago.

Looking at PR04BTEX.MLT...
texture view.png

That block at the top left looks like a codebook for a VQ texture, but it's too short and has out of place pixels, so the MLT files are probably a compressed archive. Those bright red, green, and blue pixels in the middle of the gray block are probably decompression codes.

It's not that hard to find decompression code with Ghidra. Find a string with a file name, find a place that uses that string, and a call to the decompressor should be nearby. Likely the game either passes the string to a generic load file function, then manually calls decompression on it afterwards, or it calls a function that does both.

Some files look uncompressed, like EM00_TEX.BIN...
uncompressed c.png
You can see the block for the codebook in the top left, and it looks like there's a second VQ texture in this file as well. Adjusting the start of the texture and viewing it as VQ compressed...
uncompressed2 c.png
...gets a valid texture.


Wow it's good to know that the TEX files do indeed contain texture data. Unfortunately I wasn't able to get your tool to run for me, but it's pretty neat that you have that. Do you happen to know if LOGO_TXT.MLT or LOGB_TEX.BIN contains logo or menu textures? I have the translated textures, and thought it would be as simple as converting to the right format and replacing it in the extracted GDI, but with the format being compressed, it's a bit more complicated than that huh.

  • Similar Topics
    Replies
    Views
    Last post

Return to “Modifications”

Who is online

Users browsing this forum: No registered users