Jump to content
Sign in to follow this  
Choppasmith

I HAVE DONE IT! DQ1-3 script extraction!

Recommended Posts

Wow that sounds awesome.  I love the scripts used in the mobile ports of 1-3.  It would be awesome to patch them into other versions of the games. 

Like someone said above the SNES version with the mobile script would be the ultimate version of DQ 3.  

Share this post


Link to post
Share on other sites
Just for the fun of it, I decided to take a few minutes to muck about with the Dragon Warrior III ROM. Turns out editing the script is much much easier than I would have thought.
First of all, the text isn't compressed at all, it's all stored as completely plain text.
Second, dialogues aren't indexed to have a specific size/length/number of paragraphs. It just uses one character to indicate a pause/button prompt, and another to indicate the end of the dialogue. This means you don't really have to change anything to have essentially much, much longer pieces of dialogue. Hell, with compression you could even fit much more dialogue into the same space, but it would be easier to just increase the ROM size, and store the dialogue somewhere else.
If I find a few hours to do it, I could make a small application to load any script into the game, replacing all the original dialogue.
What would happen in cases where there are differences between versions? For example, isn't there extra content in the SNES and mobile versions of III. What would happen if you ported the script over to the NES version? Would you have to manually detect the excess dialogue?

Share this post


Link to post
Share on other sites
12 minutes ago, AustNerevar said:

What would happen in cases where there are differences between versions? For example, isn't there extra content in the SNES and mobile versions of III. What would happen if you ported the script over to the NES version? Would you have to manually detect the excess dialogue?

Unless anyone has some ingenious idea, I'd say you'd have to manually map _every single line_ of dialogue to the corresponding line in the NES version, since there is no way to give an indication of where any of them is used.

I made a quick mock-up of an application to handle all the DW3 dialogue here: http://dw3.eternal.dk It's online and doesn't require downloading anything.

You just click the button and select a dump of the Dragon Warrior 3 ROM data, it will list all the dialogue it can detect in the file. It's a bit crude right now of course.
It's made to recognize iNES files (.nes files), so it can't be zipped, and if you're dumping the data from your own cart, you have to add a 16 byte header in the top.

There seems to be around 1300 individual pieces of dialogue in the game.

Share this post


Link to post
Share on other sites

If you ask me, the ultimate version of the game is SNES version with mobile script and the mobile sprites modded in. I’m still looking at ways to pull off the latter, but if done it’ll be superior to the PS4 version of the game.

Share this post


Link to post
Share on other sites

I thought the mobile version was essentially the SNES version anyway, in terms of graphics.

Share this post


Link to post
Share on other sites
59 minutes ago, Sackchief said:

If you ask me, the ultimate version of the game is SNES version with mobile script and the mobile sprites modded in. I’m still looking at ways to pull off the latter, but if done it’ll be superior to the PS4 version of the game.

Absolutely, but isn't the existing translation already known for having multiple bugs?

Share this post


Link to post
Share on other sites
23 hours ago, AustNerevar said:

@Choppasmith how goes the progress on the script transplants?

DW1 is pretty much done. Just waiting to hear back on insertion with a newly added compression routine added (it had no compression before, and my new script is almost DOUBLE in size). If all goes well, I’ll have it out for release very soon.

 

Oh and can I just give a huge shoutout of thanks to @aerynb for her DW1 script? It was a huge help in making sure I knew what string goes where. You rock!

 

DW2 is tricky because it has some CRAZY compression for its text, it might take a little timer to get it all sorted, but because I’m not the only one interested in hacking DW right now, it’s getting a lot of attention over at RHDN, and things look good for a script replacement.

 

DQ1+2 - A couple years ago, someone was interested in overhauling the translation replacing the names and spells with proper S-E terms, but he eventually lost interest. I just contacted him again and my ripped script has renewed his interest. His hack had some nice fixes including longer enemy names, so things are looking good there too.

5 hours ago, Sumez said:

Just for the fun of it, I decided to take a few minutes to muck about with the Dragon Warrior III ROM. Turns out editing the script is much much easier than I would have thought.

First of all, the text isn't compressed at all, it's all stored as completely plain text.

Second, dialogues aren't indexed to have a specific size/length/number of paragraphs. It just uses one character to indicate a pause/button prompt, and another to indicate the end of the dialogue. This means you don't really have to change anything to have essentially much, much longer pieces of dialogue. Hell, with compression you could even fit much more dialogue into the same space, but it would be easier to just increase the ROM size, and store the dialogue somewhere else.

If I find a few hours to do it, I could make a small application to load any script into the game, replacing all the original dialogue.

I haven’t even looked at DW3 yet, but that’d be great. So is it like DW1 and 2 where it’s basically a bunch of lines that the game counts “end line “ bytes to get to the desired string? As I said above there’s another guy interested who’s interested in text hacking (he wants to make a delocalized and uncensored version of the DQ NES games, so we have some common interests and want to help each other out where possible)

Share this post


Link to post
Share on other sites
4 minutes ago, Choppasmith said:

Oh and can I just give a huge shoutout of thanks to @aerynb for her DW1 script? It was a huge help in making sure I knew what string goes where. You rock!

You're very welcome. :) I really need to buckle down and get some more game scripts done. With the text dumps from all the versions it shouldn't be problematic, just time consuming.

Good job sticking with the script inserts. Can't wait to see how it looks!

Share this post


Link to post
Share on other sites
I thought the mobile version was essentially the SNES version anyway, in terms of graphics.

The graphics of mobile and SNES are identical. The only difference is the sprites of all the party members have been updated to look more like the DS remakes. And they look much better.

Share this post


Link to post
Share on other sites
15 hours ago, Choppasmith said:

So is it like DW1 and 2 where it’s basically a bunch of lines that the game counts “end line “ bytes to get to the desired string?

Yes!

At the start of every piece of dialogue, it's loaded with a bank, and address offset, and a number of "end line" bytes to skip, the end line byte apparently being either $EF, $EE or $FF. I'm not sure what the difference is between those, but EF seems to be consistently used for dialogue boxes, while the others are for more dynamic menu and battle stuff?
It's kind of funny that the game engine is doing stuff that you'd normally do with your data pipeline, but considering what they had to work with in 1987, it was probably the easiest solution.

I think having to fit an entirely new script into this system would be very difficult, so I'd stick with adding new PRG banks at the end of the current ones. The game loads all text output into a temporary memory buffer anyway. The game is already a huge 512KB ROM, the maximum allowed for an MMC1 game, and around 90 KB is used for dialogue alone. I guess the only realistic way to fit more text into the game is to compress the hell out of it...

How big is the "modern" DQ3 script? (assuming each individual character is a byte)

Edited by Sumez

Share this post


Link to post
Share on other sites
On 9/26/2018 at 1:58 AM, Sumez said:

Yes!

At the start of every piece of dialogue, it's loaded with a bank, and address offset, and a number of "end line" bytes to skip, the end line byte apparently being either $EF, $EE or $FF. I'm not sure what the difference is between those, but EF seems to be consistently used for dialogue boxes, while the others are for more dynamic menu and battle stuff?
It's kind of funny that the game engine is doing stuff that you'd normally do with your data pipeline, but considering what they had to work with in 1987, it was probably the easiest solution.

I think having to fit an entirely new script into this system would be very difficult, so I'd stick with adding new PRG banks at the end of the current ones. The game loads all text output into a temporary memory buffer anyway. The game is already a huge 512KB ROM, the maximum allowed for an MMC1 game, and around 90 KB is used for dialogue alone. I guess the only realistic way to fit more text into the game is to compress the hell out of it...

How big is the "modern" DQ3 script? (assuming each individual character is a byte)

Well the file I have is about 900k but it has a lot of junk, the remake-exclusive stuff, a bunch of duplicate menu stuff, so I would think all together that size is at least half that. Still big though.

By the way speaking of size, I'm afraid my new script for DW1 is too big by about 5KB with compression.

 

EDIT: Never mind, getting help on getting the script inserted via expansion.

Edited by Choppasmith

Share this post


Link to post
Share on other sites

Dragon Warrior 1 is only a 64KB ROM, with a similar MMC1 mapper, so I'm assuming that one should be easy to expand.

I guess it would also be possible to convert DW3 to a MMC5 game, which should support a 1024KB ROM size.

Share this post


Link to post
Share on other sites

Oh boy I can't wait to play Dragon Quest 1&2 and 3 SNES with the current translation especially since Square has not seemed to indicate we are ever getting the ports they released on PS4 and 3DS in Japan and I despise mobile controls.

Share this post


Link to post
Share on other sites

I'd love to see the GBC-exclusive content make it's way to the SNES versions in a patch. For the most part it's just better laid out towns in 1&2, but that extra dungeon from 3 would be super cool. It'd probably be a lot of work though.

This might be of use to you, @Choppasmith The font used in Dragon Quest XI: Garrick (Bold) https://fontzone.net/download/garrick-bold

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Erdrick The Hero said:

I'd love to see the GBC-exclusive content make it's way to the SNES versions in a patch. For the most part it's just better laid out towns in 1&2, but that extra dungeon from 3 would be super cool. It'd probably be a lot of work though.

This might be of use to you, @Choppasmith The font used in Dragon Quest XI: Garrick (Bold) https://fontzone.net/download/garrick-bold

 

Yeah that kind of work would be WAY beyond my skill level, sorry ^^;;

Share this post


Link to post
Share on other sites
8 hours ago, Choppasmith said:

 

Yeah that kind of work would be WAY beyond my skill level, sorry ^^;;

Oh, I never meant to push it on you, it was more just a thought.

Share this post


Link to post
Share on other sites
I'd love to see the GBC-exclusive content make it's way to the SNES versions in a patch. For the most part it's just better laid out towns in 1&2, but that extra dungeon from 3 would be super cool. It'd probably be a lot of work though.
This might be of use to you, [mention=82118]Choppasmith[/mention] The font used in Dragon Quest XI: Garrick (Bold) https://fontzone.net/download/garrick-bold

That would be the coolest project. The sprites and script from the mobile ports and the dungeons of the GBC port. Dragon Quest III: Definitive Edition.

Share this post


Link to post
Share on other sites
On 10/4/2018 at 2:37 PM, Sackchief said:


That would be the coolest project. The sprites and script from the mobile ports and the dungeons of the GBC port. Dragon Quest III: Definitive Edition.

Your work here will at least pave the way for somebody else to do that later.

 

For me, I'll be happy with the official scripts in the old games.

Share this post


Link to post
Share on other sites

I hope somebody does something similar for DQs 4 - 6. I'd love to go back and play some of the earlier versions of those games with the DQ-ified scripts.

Share this post


Link to post
Share on other sites
13 hours ago, AustNerevar said:

I hope somebody does something similar for DQs 4 - 6. I'd love to go back and play some of the earlier versions of those games with the DQ-ified scripts.

DQ6's English script needs some work, no matter which version you play.

Share this post


Link to post
Share on other sites

Really wish I had the know how to do things like this. I would definitely spend some time on porting the new scripts to all the old games if I did.

Share this post


Link to post
Share on other sites

For those interested, I've made a thread in the Fan Games section to document my progress. Have a look see!

 

 

Edited by Choppasmith
  • Like 2

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...