ROM Hack Dragon Quest Builders 2

voltorben

Member
Newcomer
Joined
Jul 16, 2007
Messages
13
Trophies
0
XP
164
Country
Denmark
LayeredFS can't check if file is broken, so if it was, then game would crash or translated lines would be broken.
So you have 3 options:
1. TitleID is wrong (probably not)
2. You have put files in wrong folder
3. Your modified files in real are not responsible for translation (f.e. dummy files)

Ok, that's good to know! Maybe i should try removing some files, and see if i can get the game to crash - this way i can at least confirm that it's working :P I'll try that tonight.
I have checked the title folder with Kip Select, and it does recognise "Dragon quest builder 2" (and it is enabled) so i'm very certain that the title ID is correct.

In regards of 2., i have copied the file structure I see when inspecting the romfs.istorage with XCI explorer, so i assume it's correct. Any idea on another method to check the file structure for the title folder?
Could it perhaps be that i need to add some stuff to exefs?

Thanks for the input!
 

Falo

Well-Known Member
Member
Joined
Jul 22, 2012
Messages
680
Trophies
2
XP
2,628
Country
Germany
"linkdata.exe inject {path_to_modified_file} {file_index} {path_to_linkdata_idx_or_bin}"

my tool injects the file at the end of LINKDATA.BIN and modifies the offset & size & compression flag in LINKDATA.IDX
only uncompressed files are suported, because compressed files have a custom header in LINKDATA.BIN,
therefore replacing files at the original position is not possible!

IDX Format:
Code:
        public struct IDX_ENTRY
        {
            public Uint64 Offset;
           public Uint64 UncompressedSize;
           public Uint64 CompressedSize;
           public Uint64 IsCompressed;
        }

BIN Format:
if uncompressed: no special extra, just filedata + padding

if compressed:
Code:
ChunkHeader:
{
4 Byte = 0x10000
4 Byte = ChunkCount
4 Byte = UncompressedSize
ChunkCount * 4 Byte = ChunkSize Table
}(Padded with 0x80)

Each chunk has another compression check, if the first 4 byte are "ChunkSize - 4", then it's compressed, otherwise it's uncompressed
or in the case of "ChunkSize - 4 == 0", it not even there and you just write 4 0x00 byte.

I only tested my tool with the demo version, but since the full version is exactly the same (even the files are almost 100% identical) it should also work with the full version.
 

voltorben

Member
Newcomer
Joined
Jul 16, 2007
Messages
13
Trophies
0
XP
164
Country
Denmark
"linkdata.exe inject {path_to_modified_file} {file_index} {path_to_linkdata_idx_or_bin}"

my tool injects the file at the end of LINKDATA.BIN and modifies the offset & size & compression flag in LINKDATA.IDX
only uncompressed files are suported, because compressed files have a custom header in LINKDATA.BIN,
therefore replacing files at the original position is not possible!

IDX Format:
Code:
        public struct IDX_ENTRY
        {
            public Uint64 Offset;
           public Uint64 UncompressedSize;
           public Uint64 CompressedSize;
           public Uint64 IsCompressed;
        }

BIN Format:
if uncompressed: no special extra, just filedata + padding

if compressed:
Code:
ChunkHeader:
{
4 Byte = 0x10000
4 Byte = ChunkCount
4 Byte = UncompressedSize
ChunkCount * 4 Byte = ChunkSize Table
}(Padded with 0x80)

Each chunk has another compression check, if the first 4 byte are "ChunkSize - 4", then it's compressed, otherwise it's uncompressed
or in the case of "ChunkSize - 4 == 0", it not even there and you just write 4 0x00 byte.

I only tested my tool with the demo version, but since the full version is exactly the same (even the files are almost 100% identical) it should also work with the full version.

I used your tools, and it appends the uncompressed files to the BIN and modifies the pointers in the IDX just nicely (i figured out the IDX/BIN format by looking at the files after using your tools - i even made a quickbms script that worked (based of arslan.bms) - just for learning).

I have translated some strings that i know are only there once, and i have injected the edited files them with:
Code:
  linkdata.exe inject {path_to_modified_file} {file_index} {path_to_linkdata_idx_or_bin}
And i can confirm that the contents of the files is at the end of BIN, and that the IDX points to those offsets.

But, the strings are unchanged in game :(

Can you confirm that this is the right folder structure?
Code:
010050000705E000
  └ romfs
      └ LINKDATA.BIN
      └ LINKDATA.IDX
and that i need nothing else for the mod to work?

I have found the NSP for the demo, so i'll give it a go with your tools later tonight.
It might have something to do with my switch...

Oh, and thanks for the info about the ChunkHeader - i was actually trying to figure that one out, but never got it quite working :)
 

Falo

Well-Known Member
Member
Joined
Jul 22, 2012
Messages
680
Trophies
2
XP
2,628
Country
Germany
Code:
sd:\atmosphere\titles\010050000705e000\romfs\LINKDATA.IDX
sd:\atmosphere\titles\010050000705e000\romfs\LINKDATA.BIN
or repacked:
sd:\atmosphere\titles\010050000705e000\romfs.bin
are correct and should work if layeredfs is enabled.
The demo is "010002700c646000".
 

voltorben

Member
Newcomer
Joined
Jul 16, 2007
Messages
13
Trophies
0
XP
164
Country
Denmark
Code:
sd:\atmosphere\titles\010050000705e000\romfs\LINKDATA.IDX
sd:\atmosphere\titles\010050000705e000\romfs\LINKDATA.BIN
or repacked:
sd:\atmosphere\titles\010050000705e000\romfs.bin
are correct and should work if layeredfs is enabled.
The demo is "010002700c646000".

I could not get it to work with the demo either.
But then i found an old 32 GB micro SD and reformatted it to fat32 and added the mods, and they both work now!

Thank you so much for the help, and sorry for being such a noob! I should have tried another SD card so much earlier :wacko:

If i release a patcher, can i use your excel.exe and/or linkdata.exe if i credit you?
Might write them myself, for practice, but depends on time :P

EDIT: nv, i made my own tools :)
 
Last edited by voltorben,

HotdogWithMustard

Member
Newcomer
Joined
Jan 12, 2019
Messages
11
Trophies
0
Age
34
XP
254
Country
United States
Using @Falo's tools I went ahead and dumped all the files and wrote a script to remove the junk files and translate the valid ones.
The whole process took about 8 hours but I've gotten mostly everything translated and cut the total file count down to about 3.4k.
I've attached a zip with the original text, the translations, and 2 batch scripts to convert and inject the files.

Additional notes:
  • The tools to convert/inject the files are not included in this zip, you can find those in @Falo's comment on the first page of this thread.
  • There might still be some Japanese characters here and there as my RegEx pattern might of missed a few or the translator might of spit back out a few.
  • The translations are not 100% accurate and some of them contain swears.
  • This is purely to help make the game more playable until an English release, I don't intend to update the translations.
Enjoy. ^_^
 

Attachments

  • Data.zip
    6.9 MB · Views: 295
Last edited by HotdogWithMustard,
  • Like
Reactions: hausa51

samcambolt270

Well-Known Member
Member
Joined
Dec 24, 2014
Messages
1,163
Trophies
0
XP
2,840
Country
United States
Using @Falo's tools I went ahead and dumped all the files and wrote a script to remove the junk files and translate the valid ones.
The whole process took about 8 hours but I've gotten mostly everything translated and cut the total file count down to about 3.4k.
I've attached a zip with the original text, the translations, and 2 batch scripts to convert and inject the files.

Additional notes:
  • The tools to convert/inject the files are not included in this zip, you can find those in @Falo's comment on the first page of this thread.
  • There might still be some Japanese characters here and there as my RegEx pattern might of missed a few or the translator might of spit back out a few.
  • The translations are not 100% accurate and some of them contain swears.
  • This is purely to help make the game more playable until an English release, I don't intend to update the translations.
Enjoy. ^_^
so, what are the steps one would go through for it? I'm assuming I need to use falo's tool to dump the files first, but that's all I know What files would I take from the dump, which order to use the bats, where to put files, etc. are a mystery to me.
 

HotdogWithMustard

Member
Newcomer
Joined
Jan 12, 2019
Messages
11
Trophies
0
Age
34
XP
254
Country
United States
so, what are the steps one would go through for it? I'm assuming I need to use falo's tool to dump the files first, but that's all I know What files would I take from the dump, which order to use the bats, where to put files, etc. are a mystery to me.

My zip contains the dumped files, you just need to convert them back into .bin files and inject them. First you'll need LINKDATA.BIN and LINKDATA.IDX, you can get them by extracting romfs from the base game with hactool, you can find instructions on how to do this on the forum. (Sorry, can't link you, account is still new.)

After that create a new folder and place the two LINKDATA files in that folder.
Download both zips, extract my zip to that folder then extract the following files from the other zip to that folder: excel.exe, LibBuilders.dll, and linkdata.exe.

Your file structure should now look like this:

.
│ Convert.bat
│ excel.exe
│ Inject.bat
│ LibBuilders.dll
│ LINKDATA.BIN
│ linkdata.exe
│ LINKDATA.IDX

├───Data
│ │ FILE_00000.txt
│ │ FILE_00001.txt
│ │ FILE_00002.txt
│ │ ETC, ETC...
│ │
│ └───Translated
│ FILE_00000.txt
│ FILE_00001.txt
│ FILE_00002.txt
│ ETC, ETC...

└───MenuText
FILE_00009.txt
FILE_00011.txt
FILE_00012.txt
ETC, ETC...

Once you've done that, run "Convert.bat" to convert the .txt files back into .bin files then run "Inject.bat" to inject the files back into the LINKDATA files.
Now just place the two LINKDATA files on your SD in: /<YOUR CFW>/titles/010050000705e000/romfs/
 
Last edited by HotdogWithMustard,
  • Like
Reactions: hausa51

samcambolt270

Well-Known Member
Member
Joined
Dec 24, 2014
Messages
1,163
Trophies
0
XP
2,840
Country
United States
My zip contains the dumped files, you just need to convert them back into .bin files and inject them. First you'll need LINKDATA.BIN and LINKDATA.IDX, you can get them by extracting romfs from the base game with hactool, you can find instructions on how to do this on the forum. (Sorry, can't link you, account is still new.)

After that create a new folder and place the two LINKDATA files in that folder.
Download both zips, extract my zip to that folder then extract the following files from the other zip to that folder: excel.exe, LibBuilders.dll, and linkdata.exe.

Your file structure should now look like this:



Once you've done that, run "Convert.bat" to convert the .txt files back into .bin files then run "Inject.bat" to inject the files back into the LINKDATA files.
Now just place the two LINKDATA files on your SD in: /<YOUR CFW>/titles/010050000705e000/romfs/
Awesome, thanks.

--------------------- MERGED ---------------------------

So, I was browsing through the files, and I found one whose text doesn't look like its in game dialogue. I think it may be a developer conversation or perhaps sample dialogue? It talks about looping dialogue until yes is selected and scrolling text. It also says "There is no hen.<br>It's just like an umbilical cord...<key>" which... what the heck even? It's not important, but I found it interesting.
 

HotdogWithMustard

Member
Newcomer
Joined
Jan 12, 2019
Messages
11
Trophies
0
Age
34
XP
254
Country
United States
Awesome, thanks.

--------------------- MERGED ---------------------------

So, I was browsing through the files, and I found one whose text doesn't look like its in game dialogue. I think it may be a developer conversation or perhaps sample dialogue? It talks about looping dialogue until yes is selected and scrolling text. It also says "There is no hen.<br>It's just like an umbilical cord...<key>" which... what the heck even? It's not important, but I found it interesting.

Not sure on that. A lot of the translations are inaccurate so could just be an extremely bad translation.
I know there are some debug lines in there, if you use a tool to search the files for the word "Debug" you'll find a couple of different interesting lines.
 

samcambolt270

Well-Known Member
Member
Joined
Dec 24, 2014
Messages
1,163
Trophies
0
XP
2,840
Country
United States
Oh goodness. I just cannot get hactool to cooperate. I guess I'll just have to wait for someone here to make the layeredfs folder and post it somewhere T_T
 
Last edited by samcambolt270,

samcambolt270

Well-Known Member
Member
Joined
Dec 24, 2014
Messages
1,163
Trophies
0
XP
2,840
Country
United States
I think I did something wrong. I'v gotten the linkdata files in the folder as directed, but when I run convert.bat, it just repeats "Dragon quest builders toolpack - excel tool v1.0.0.0" repeatedly forever
 

F1234

New Member
Newbie
Joined
Feb 24, 2010
Messages
1
Trophies
0
Location
China
XP
13
Country
Switzerland
Using @Falo's tools I went ahead and dumped all the files and wrote a script to remove the junk files and translate the valid ones.
The whole process took about 8 hours but I've gotten mostly everything translated and cut the total file count down to about 3.4k.
I've attached a zip with the original text, the translations, and 2 batch scripts to convert and inject the files.

Additional notes:
  • The tools to convert/inject the files are not included in this zip, you can find those in @Falo's comment on the first page of this thread.
  • There might still be some Japanese characters here and there as my RegEx pattern might of missed a few or the translator might of spit back out a few.
  • The translations are not 100% accurate and some of them contain swears.
  • This is purely to help make the game more playable until an English release, I don't intend to update the translations.
Enjoy. ^_^


Hello @HotdogWithMustard and @Falo, do you know which one is the font file? I and my friends are going to translate the game into Chinese, but I cannot find the font file. Chinese language has much more characters than Japanese language, the font file has to be modified to display necessary characters. Thank you!
 
Last edited by F1234,

HotdogWithMustard

Member
Newcomer
Joined
Jan 12, 2019
Messages
11
Trophies
0
Age
34
XP
254
Country
United States
Hello @HotdogWithMustard and @Falo, do you know which one is the font file? I and my friends are going to translate the game into Chinese, but I cannot find the font file. Chinese language has much more characters than Japanese language, the font file has to be modified to display necessary characters. Thank you!

I do not, sorry. :sad:

I think I did something wrong. I'v gotten the linkdata files in the folder as directed, but when I run convert.bat, it just repeats "Dragon quest builders toolpack - excel tool v1.0.0.0" repeatedly forever

That's normal. Excel tool prints that message when it is run and the batch script runs excel multiple times.
 

samcambolt270

Well-Known Member
Member
Joined
Dec 24, 2014
Messages
1,163
Trophies
0
XP
2,840
Country
United States
It also says "There is no hen.<br>It's just like an umbilical cord...<key>" which... what the heck even?
I found where that text pops up in game. It's for multiple dead characters on a shore...? I have no idea what the heck the original text could possibly have suppose to have been XD
 

Minalia

New Member
Newbie
Joined
Feb 10, 2019
Messages
3
Trophies
0
Age
39
XP
59
Country
United States
The game doesn't seem to have proper word wrap support for english, you need a break every 39 characters <br>. I'd personally use break at the end of the last word that fits. If you want to improve the translation, I could help some... not great at japanese but know enough to help correct a very bad and obvious auto translation.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=8ptLqnNMcQk