ROM Hack So... Would anyone here care about a translation of Rocket Slime 3?

TariqSoftDev

~Zexceil
Member
Joined
Sep 18, 2013
Messages
716
Trophies
1
Location
London
XP
1,018
Country
Tell me how long is the story line in this and I might just be willing to do some translation for fun :P , Man I adore this game played it on DS it was awesome.
 

lgnmcrules

Well-Known Member
Member
Joined
Jan 13, 2016
Messages
139
Trophies
0
XP
1,258
Country
United States
Tell me how long is the story line in this and I might just be willing to do some translation for fun :P , Man I adore this game played it on DS it was awesome.
The actual story is really not super-amazing. The story is basically just a few events occurring and you going to various lands to solve the town's problems.

And your dastardly rival, Slival, coming to ruin the fun!
 

TariqSoftDev

~Zexceil
Member
Joined
Sep 18, 2013
Messages
716
Trophies
1
Location
London
XP
1,018
Country
The actual story is really not super-amazing. The story is basically just a few events occurring and you going to various lands to solve the town's problems.

And your dastardly rival, Slival, coming to ruin the fun!
Ooooh never done translation on 3DS but I'm experienced in other game consoles, alright give me till the end of this month or maybe 3 months if my studies get hard

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

alright I've managed to extract the raw files from the game :P time to take a little ponder
 

ultramario1998

no woof tipsic
OP
Member
Joined
May 7, 2014
Messages
456
Trophies
0
Age
25
Location
Not Here
XP
695
Country
United States
Is there any incentive for Z6N4/Helmax, the main TW3D hacker, to, greatly, assist in this project? Is it only in his interest because of it being a DQ title? Is there any confirmation that he will help, or is he too 'busy' with other obligations? What makes you hopeful about his inclusion? I am asking these questions because I know from experience that ambitious undertakers of these projects usually die off without any confirmation. (Looking at the large expanse of long-unfinished translations across this forum and the others)
If you'll look back in this very thread, you'll see that he's the one who initially contacted me. He and other team members have expressed quite a bit of interest.

If it doesn't end up panning out, you guys will know.
 

WraithGR

Well-Known Member
Member
Joined
Oct 25, 2002
Messages
68
Trophies
0
Age
41
Website
Visit site
XP
367
Country
Haven't posted in forever but just had to when I noticed this.. Hope this project is still alive, would be enough of an excuse for me to actually get a flashcart..!
 

qwertoman

Well-Known Member
Newcomer
Joined
Dec 14, 2014
Messages
49
Trophies
0
Age
44
XP
133
Country
United States
might be able to help some, though I am going to be quite busy lately, we'll see as I'd love to get this going
 

lgnmcrules

Well-Known Member
Member
Joined
Jan 13, 2016
Messages
139
Trophies
0
XP
1,258
Country
United States
So, I was messing around with the game's files, and I made a proof of concept edit. (I don't have pictures because I don't have NTR or a capture card)

I was able to inject, badly, translated text into the game's files and replace music with music of my choice.
 

samcambolt270

Well-Known Member
Member
Joined
Dec 24, 2014
Messages
1,167
Trophies
0
XP
2,888
Country
United States
So, I was messing around with the game's files, and I made a proof of concept edit. (I don't have pictures because I don't have NTR or a capture card)

I was able to inject, badly, translated text into the game's files and replace music with music of my choice.
you could probably just take a pic with your phone.
 

CakeLancelot

Active Member
Newcomer
Joined
Jan 1, 2016
Messages
35
Trophies
0
XP
1,427
Country
United States
translated.png

Started translating some menu stuff - probably also going to do items as well but anything other than that (dialogue, etc.) is beyond me.
 

GuyInDogSuit

Your friendly neighborhood guy in a dog suit.
Member
Joined
Aug 1, 2008
Messages
1,856
Trophies
1
Age
42
Location
Sacramento, CA
Website
www.sniffglueworshipsatan.com
XP
1,679
Country
United States
Recently, I got my hands on a cart of Slime Morimori Dragon Quest 3: Taikaizoku To Shippo Dan, the third entry in the series commonly known in English as Dragon Quest Heroes: Rocket Slime. (If you haven't played the DS one, you are missing out!)

I'm not a translator (or really, much of a hacker) by any stretch of the imagination, but I've been poking around with the ROMFS a bit in EFE. Its files seem to be pretty compatible (it's a TON easier to mess with than Rhythm Heaven TB+) My question is, is there anyone else on GBATemp who would want to see this game in English?

EDIT: I've been able to extract text data. More info to come.
I haven't ever gotten into those, as I enjoy the main series more (c'mon, S-E, release DQVIII state-side already!) and hope they'll remake DQIX as well. I mean, I see this, and I'm like, "WTF is this?"

747981-932684_20060822_001.jpg
 
  • Like
Reactions: lgnmcrules

ultramario1998

no woof tipsic
OP
Member
Joined
May 7, 2014
Messages
456
Trophies
0
Age
25
Location
Not Here
XP
695
Country
United States
I'm just now realizing that this project will be much, much harder than I first assumed.

As you may have noticed, @lgnmcrules and @CakeLancelot have both been able to sub text in to the game. Why haven't I been able to make a similar update?

The reasons for this are actually extremely technical.

If you've been following the project closely, you'd know that the ROM of Rocket Slime 3 is unique in that the vast majority of the text is stored in exefs, which is where the executable code is stored. We've been able to view this text with a hex editor, and been able to accomplish rudimentary edits by just using the hex editor.

However, this won't work for the whole thing, and here's a (probably very flawed) explanation of why.

One thing that you have to keep in mind is the physical size of the text. English is physically larger than Japanese-on average, the number of characters that is required to write a sentance in English is greater than the number of characters that is required to write that same sentance in Japanese. And this can cause some problems.

Let's say that we have a block of text that we're translating that is exactly 50 characters long in Japanese. We'll call this block, Block A. Our English-translated version of Block A is exactly 125 characters long. So, we sub in our text using our hex editor and we try to test it.

Our first 50 characters in Block A display just fine, but only those 50 characters display. Instead, the game assumes that our remaining 75 characters are part of Block B, or Block C, and if we were to read text from those blocks, the remainder of our subbed script would display instead.

This is due to pointers. (And probably quite a bit of other stuff that we don't know about yet) Pointers are addresses in hex that tell the game where the different blocks of text are located. The pointer that corresponds to Block A would state that Block A exists from Point 1 to Point 2, so in order to make our modified text fit, we'd need to add 0x4B to the ending segment of our pointer.

This would cause another conflict with Block B. Pointer B states that Block B exists from Point 2 to Point 3, but we've just overwritten some or all of the space allocated to Block B by adding to Block A's pointer, so we'd need to add to Block B's pointer, which would mess with Block C, so we'd need to add to Block C's pointer... and so on.

The only reliable way to edit text in this case would be to use a program that would recalculate these pointers for us. Problem is, it's hard to even know which pointers correspond to which block. We would need to reverse engineer quite a lot of files-code.bin and the NCCH header, which has pointers of its own.


This means that in order to get this translation done, someone would have to do the following:

1:
Figure out how to split the code.bin according to the NCCH header
2: Create a map that shows what text goes where and which pointers correspond to each block
3: Create a program that would allow us to edit these blocks and their respective pointers in both code.bim and the header
4: Do the same for the battle text (which wouldn't be nearly as hard)

This would be a massive amount of effort. It's not impossible, it's not an insurmountable obstacle. But we would need someone experienced with code.bin editing or maybe even reverse engineering.

If anyone can point me to any resources that will assist in code.bin hacking/editing, or knows how to accomplish the above and is interested in helping, please please let me know!

TL;DR:
This is actually going to be pretty difficult. We need someone who knows what they're doing in regards to code.bin editing.

Also I kinda suck at writing so I'm sorry if everything I just posted is utterly nonsensical
 
  • Like
Reactions: lgnmcrules

lgnmcrules

Well-Known Member
Member
Joined
Jan 13, 2016
Messages
139
Trophies
0
XP
1,258
Country
United States
I'm just now realizing that this project will be much, much harder than I first assumed.

As you may have noticed, @lgnmcrules and @CakeLancelot have both been able to sub text in to the game. Why haven't I been able to make a similar update?

The reasons for this are actually extremely technical.

If you've been following the project closely, you'd know that the ROM of Rocket Slime 3 is unique in that the vast majority of the text is stored in exefs, which is where the executable code is stored. We've been able to view this text with a hex editor, and been able to accomplish rudimentary edits by just using the hex editor.

However, this won't work for the whole thing, and here's a (probably very flawed) explanation of why.

One thing that you have to keep in mind is the physical size of the text. English is physically larger than Japanese-on average, the number of characters that is required to write a sentance in English is greater than the number of characters that is required to write that same sentance in Japanese. And this can cause some problems.

Let's say that we have a block of text that we're translating that is exactly 50 characters long in Japanese. We'll call this block, Block A. Our English-translated version of Block A is exactly 125 characters long. So, we sub in our text using our hex editor and we try to test it.

Our first 50 characters in Block A display just fine, but only those 50 characters display. Instead, the game assumes that our remaining 75 characters are part of Block B, or Block C, and if we were to read text from those blocks, the remainder of our subbed script would display instead.

This is due to pointers. (And probably quite a bit of other stuff that we don't know about yet) Pointers are addresses in hex that tell the game where the different blocks of text are located. The pointer that corresponds to Block A would state that Block A exists from Point 1 to Point 2, so in order to make our modified text fit, we'd need to add 0x4B to the ending segment of our pointer.

This would cause another conflict with Block B. Pointer B states that Block B exists from Point 2 to Point 3, but we've just overwritten some or all of the space allocated to Block B by adding to Block A's pointer, so we'd need to add to Block B's pointer, which would mess with Block C, so we'd need to add to Block C's pointer... and so on.

The only reliable way to edit text in this case would be to use a program that would recalculate these pointers for us. Problem is, it's hard to even know which pointers correspond to which block. We would need to reverse engineer quite a lot of files-code.bin and the NCCH header, which has pointers of its own.


This means that in order to get this translation done, someone would have to do the following:

1:
Figure out how to split the code.bin according to the NCCH header
2: Create a map that shows what text goes where and which pointers correspond to each block
3: Create a program that would allow us to edit these blocks and their respective pointers in both code.bim and the header
4: Do the same for the battle text (which wouldn't be nearly as hard)

This would be a massive amount of effort. It's not impossible, it's not an insurmountable obstacle. But we would need someone experienced with code.bin editing or maybe even reverse engineering.

If anyone can point me to any resources that will assist in code.bin hacking/editing, or knows how to accomplish the above and is interested in helping, please please let me know!

TL;DR:
This is actually going to be pretty difficult. We need someone who knows what they're doing in regards to code.bin editing.

Also I kinda suck at writing so I'm sorry if everything I just posted is utterly nonsensical

According to this, I have no idea how to help. The only plausible solution to be done with our current skillsets is to just cut out a lot of translated text, and just use paraphrased English text. That way we wouldn't need to mess with the pointers and instead focus on bare-bones text.

Of course, this is an awful solution for a quality product.

Shortening the text we could use in game could shorten key elements such as the following:
"To prove yourself, you must get the 4 Pink Duck parts, yo!" to "Get 4 Pink Duck Parts"

As you can see from my proposed solution, the personality of the character seems to be lost in translation. Not only would simply shortening the translated text make the characters less memorable, it may make the quests and in-game challenges just seem like a chore. Personally, when I play a game with a lot of characters that speak, getting a variety of tasks or challenges to complete without exciting or engaging dialogue turns me off from the game. It hurts the experience.

Going back to what @ultramario1998 said, without a way to properly split code.bin or easily fix block issues, the translation seems insurmountable. The solution to our problems, of course, would be that the TWL team aids GREATLY in this process.

tl;dr Just shortening the text wouldn't work.
 

CakeLancelot

Active Member
Newcomer
Joined
Jan 1, 2016
Messages
35
Trophies
0
XP
1,427
Country
United States
I'm just now realizing that this project will be much, much harder than I first assumed.

As you may have noticed, @lgnmcrules and @CakeLancelot have both been able to sub text in to the game. Why haven't I been able to make a similar update?

The reasons for this are actually extremely technical.

If you've been following the project closely, you'd know that the ROM of Rocket Slime 3 is unique in that the vast majority of the text is stored in exefs, which is where the executable code is stored. We've been able to view this text with a hex editor, and been able to accomplish rudimentary edits by just using the hex editor.

However, this won't work for the whole thing, and here's a (probably very flawed) explanation of why.

One thing that you have to keep in mind is the physical size of the text. English is physically larger than Japanese-on average, the number of characters that is required to write a sentance in English is greater than the number of characters that is required to write that same sentance in Japanese. And this can cause some problems.

Let's say that we have a block of text that we're translating that is exactly 50 characters long in Japanese. We'll call this block, Block A. Our English-translated version of Block A is exactly 125 characters long. So, we sub in our text using our hex editor and we try to test it.

Our first 50 characters in Block A display just fine, but only those 50 characters display. Instead, the game assumes that our remaining 75 characters are part of Block B, or Block C, and if we were to read text from those blocks, the remainder of our subbed script would display instead.

This is due to pointers. (And probably quite a bit of other stuff that we don't know about yet) Pointers are addresses in hex that tell the game where the different blocks of text are located. The pointer that corresponds to Block A would state that Block A exists from Point 1 to Point 2, so in order to make our modified text fit, we'd need to add 0x4B to the ending segment of our pointer.

This would cause another conflict with Block B. Pointer B states that Block B exists from Point 2 to Point 3, but we've just overwritten some or all of the space allocated to Block B by adding to Block A's pointer, so we'd need to add to Block B's pointer, which would mess with Block C, so we'd need to add to Block C's pointer... and so on.

The only reliable way to edit text in this case would be to use a program that would recalculate these pointers for us. Problem is, it's hard to even know which pointers correspond to which block. We would need to reverse engineer quite a lot of files-code.bin and the NCCH header, which has pointers of its own.


This means that in order to get this translation done, someone would have to do the following:

1:
Figure out how to split the code.bin according to the NCCH header
2: Create a map that shows what text goes where and which pointers correspond to each block
3: Create a program that would allow us to edit these blocks and their respective pointers in both code.bim and the header
4: Do the same for the battle text (which wouldn't be nearly as hard)

This would be a massive amount of effort. It's not impossible, it's not an insurmountable obstacle. But we would need someone experienced with code.bin editing or maybe even reverse engineering.

If anyone can point me to any resources that will assist in code.bin hacking/editing, or knows how to accomplish the above and is interested in helping, please please let me know!

TL;DR:
This is actually going to be pretty difficult. We need someone who knows what they're doing in regards to code.bin editing.

Also I kinda suck at writing so I'm sorry if everything I just posted is utterly nonsensical
Thank you for the detailed writeup. I am just a beginner in this as well however I think I may have an idea... I will edit this post in a few hours with the details

EDIT: I have definitely overestimated the amount of skill required. I will still continue to attempt my method of editing text, but don't hold your breath.
 
Last edited by CakeLancelot,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/WUOq1dlZWxI?si=LBlEJwZfwtWShljP lol Denmark can't handle the spice