Question on Dragon Quest 3
Moderator: Dejap Staff
Question on Dragon Quest 3
Hi, I was trying to look at the smc file of Dragon Quest 3 the other day using Tile Layer Pro. I found the tiles containing the letters that shown on the menus, option, items, etc. but unfortunately i can't find the tiles containing the letters that relates to the scripts / texts. Is there anyone who know? Please help me
-
- Veteran
- Posts: 970
- Joined: Fri Jan 21, 2005 11:15 am
- Location: Montana, United States
You will not be able to read the script using Tile Layer Pro. The script is (dont know how to eplain am not well versed in romhacking anymore), more or less going to look like code, or just plain static in tile layer. There may be a utility a two that can help you if you want to see and possibly change the script, as long as its not compressed?? (anyone feel free to correct me on this) Good areas to check would be the "Translation / Romhacking Documents" listed under "Technical Documents", and "Utilities-Game Modification-Text Hacking and Possibly Hex editors" over at Zophar's Domain. www.zophar.net
EDIT: Thunderclaw has a much better explanation of viewing a game's script or text in this thread (hes a few posts down):
http://board.zsnes.com/phpBB2/viewtopic.php?t=2368
EDIT: Thunderclaw has a much better explanation of viewing a game's script or text in this thread (hes a few posts down):
http://board.zsnes.com/phpBB2/viewtopic.php?t=2368
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
You better do some more reading if you plan to be able to change anything because you don't understand the fundementals.
A tile viewer such as Tile Layer Pro simply takes all the data in the ROM and displays the bytes in such a way(such as a 4 bit plane arrangement for one of the widely used SNES graphics format) that you will be able to see uncompressed graphics while scrolling through.
Graphics are the ONLY thing you will see in these editors. Code, text, and other data will not show up as anything but garbage.
The text you see on the the game screen is NOT graphics in the way you think they are. Only the letters are. The letters appear ONCE in the ROM and all the text is stored in data format referencing the letters in some way such as by tables or VRAM reference.
I would suggest you get your butt over to http://www.romhacking.com and start reading. Read up on what 'tables' are and understand what a 'bitplane' is.
Unfortunately, the other news I have for you is.. you will not be able to change the text in Dragon Quest III. It is compressed. For that, you're going to need to learn 65c816 assembly and locate the decompression routine and write your own to decompress the script. That is far beyond the scope of a newcomer and it's doubtful you could progress that far this year, let alone anytime in the immediate future, but hey.. someone with good technical aptitude who is a really quick learner could probably do it. It's not impossible.
A tile viewer such as Tile Layer Pro simply takes all the data in the ROM and displays the bytes in such a way(such as a 4 bit plane arrangement for one of the widely used SNES graphics format) that you will be able to see uncompressed graphics while scrolling through.
Graphics are the ONLY thing you will see in these editors. Code, text, and other data will not show up as anything but garbage.
The text you see on the the game screen is NOT graphics in the way you think they are. Only the letters are. The letters appear ONCE in the ROM and all the text is stored in data format referencing the letters in some way such as by tables or VRAM reference.
I would suggest you get your butt over to http://www.romhacking.com and start reading. Read up on what 'tables' are and understand what a 'bitplane' is.
Unfortunately, the other news I have for you is.. you will not be able to change the text in Dragon Quest III. It is compressed. For that, you're going to need to learn 65c816 assembly and locate the decompression routine and write your own to decompress the script. That is far beyond the scope of a newcomer and it's doubtful you could progress that far this year, let alone anytime in the immediate future, but hey.. someone with good technical aptitude who is a really quick learner could probably do it. It's not impossible.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
I know that letters in Tile Layer Pro only appears once each and I also know how to use table and pointers to change the text, but if I can't change the letters from Japanese appearance to English appearance, how do I change the text? - Locating the appearance of these Japanese characters is what i'm loooking for. But as you say, it is compressed, i gotta do more researches. Thanks for the info.
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
Ok.. now I understand what you're asking. You can't find the FONT used in the dialog text right?
That's probably because it's compressed as well. If you can't find it after looking through using 1bp, 2bp, or 4bp, it's compressed and you won't be able to see it.
That's probably because it's compressed as well. If you can't find it after looking through using 1bp, 2bp, or 4bp, it's compressed and you won't be able to see it.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
Yes, the font was what i was talking about.
I did located the Font for the Menus, Items, Character Name, Options, etc. but as I change it to English appearance, the text / dialogs between characters in the game is still in complete japanese. (I was expecting them to turn into some weird arrangement of english alphabet so i can rearrange them, but unfortunately not as I expected)
So i conclude that there must be another groups of Fonts somewhere else, but if the fonts are compressed, why not compressed both fonts but only one.???
I tried to look at the partially English translated version too, and no where in the file I can find these fonts in dialogs between characters.
If it is compressed, how do I decompress it?
I did located the Font for the Menus, Items, Character Name, Options, etc. but as I change it to English appearance, the text / dialogs between characters in the game is still in complete japanese. (I was expecting them to turn into some weird arrangement of english alphabet so i can rearrange them, but unfortunately not as I expected)
So i conclude that there must be another groups of Fonts somewhere else, but if the fonts are compressed, why not compressed both fonts but only one.???
I tried to look at the partially English translated version too, and no where in the file I can find these fonts in dialogs between characters.
If it is compressed, how do I decompress it?
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
Right. There is another font used for the dialog and that font is compressed.
Why compress that one?
Because it's much larger than the others. It contains hundreds if not over a thousand Kanji characters and all the kana.
The partially translated English version probably recompressed an English font in the Japanese font's place, so again, you wouldn't see it if that is the case.
To decompress it, you need to get Evil Peer's SNES9x tracer or some other tracing and/or debugging program for the SNES. ZSNES has a logger you can use, but let's not go there.
You need to use the tracer to dump code to a file when you think the characters are being decompressed. You can get an idea of this by taking various savestates and looking at RAM and VRAM.
In any event, you will get the offset in RAM and/or VRAM that these letters are going to and you can work with that. You can search the code for references to these locations. If it's VRAM, you'll need to know how the VRAM registers and/or DMA or WRAM(there are a few ways the game may send the data to VRAM) work to identify the address correctly.
It's easier to work with RAM. Then you need to reverse engineer from there how the decompression routine works and write your own in the programming language of your choice to go into the ROM and decompress the font to a file.
Then you can do whatever you want to fhe font. After that you can either write a program to recompress the new English font or you can modify the decompression routine in the ROM to work with an uncompressed font. Your choice.
Why compress that one?
Because it's much larger than the others. It contains hundreds if not over a thousand Kanji characters and all the kana.
The partially translated English version probably recompressed an English font in the Japanese font's place, so again, you wouldn't see it if that is the case.
To decompress it, you need to get Evil Peer's SNES9x tracer or some other tracing and/or debugging program for the SNES. ZSNES has a logger you can use, but let's not go there.
You need to use the tracer to dump code to a file when you think the characters are being decompressed. You can get an idea of this by taking various savestates and looking at RAM and VRAM.
In any event, you will get the offset in RAM and/or VRAM that these letters are going to and you can work with that. You can search the code for references to these locations. If it's VRAM, you'll need to know how the VRAM registers and/or DMA or WRAM(there are a few ways the game may send the data to VRAM) work to identify the address correctly.
It's easier to work with RAM. Then you need to reverse engineer from there how the decompression routine works and write your own in the programming language of your choice to go into the ROM and decompress the font to a file.
Then you can do whatever you want to fhe font. After that you can either write a program to recompress the new English font or you can modify the decompression routine in the ROM to work with an uncompressed font. Your choice.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
Ok, i downloaded the Peer SNES9x, load the rom and traced.
This is what I got. Would you mind help and tell me what are these symbols stand for or where can i find a document that teach me about this
here is something i got from the text file after tracing:
$C0/297E AD 28 7F LDA $7F28 [$7E:7F28] A:FFFF X:0038 Y:0008 D:0000 DB:7E S:08C6 P:eNvmxdIzcHC:0272 VC:000 00 FL:62586
$C0/2981 1A INC A A:0038 X:0038 Y:0008 D:0000 DB:7E S:08C6 P:envmxdIzcHC:0306 VC:000 00 FL:62586
This is what I got. Would you mind help and tell me what are these symbols stand for or where can i find a document that teach me about this
here is something i got from the text file after tracing:
$C0/297E AD 28 7F LDA $7F28 [$7E:7F28] A:FFFF X:0038 Y:0008 D:0000 DB:7E S:08C6 P:eNvmxdIzcHC:0272 VC:000 00 FL:62586
$C0/2981 1A INC A A:0038 X:0038 Y:0008 D:0000 DB:7E S:08C6 P:envmxdIzcHC:0306 VC:000 00 FL:62586
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
I give you credit for getting this far. You are showing more self motivation than most newbies.Gery wrote:Ok, i downloaded the Peer SNES9x, load the rom and traced.
This is what I got. Would you mind help and tell me what are these symbols stand for or where can i find a document that teach me about this
here is something i got from the text file after tracing:
$C0/297E AD 28 7F LDA $7F28 [$7E:7F28] A:FFFF X:0038 Y:0008 D:0000 DB:7E S:08C6 P:eNvmxdIzcHC:0272 VC:000 00 FL:62586
$C0/2981 1A INC A A:0038 X:0038 Y:0008 D:0000 DB:7E S:08C6 P:envmxdIzcHC:0306 VC:000 00 FL:62586
What you are seeing is a dissassembly of the CPU instructions that were executed during your trace period.
$C0/297E is the ROM address at which the instruction LDA $7F28 was executed. The 'AD 28 7F' is the actual hex representation of the opcode and parameters for this instruction.
AD is the opcode to tell the CPU to LDA(load) a value from a 16bit address which is the parameter 28 7F which when read in is actually $7F28. Multi bytes are stored in reverse order for the SNES , a storage method referred to as 'Big Endian'.
The [7E:7F28] is the full 24-bit address being read by this instruction. That is a RAM location. You should read some documents on the SNES memory map so you understand where the ROM is mapped and where the RAM, registers etc. is.
I will give you a helpful hint and tell you that your ROM is a Hi-ROM, so use that memory map. There can be Lo-ROM as well.
The rest of the data is just the CPU registers and their status. A, X, Y, D, DB, S, and P are all registers inside the CPU. You need to read a document on the 65c816(CPU used in the SNES) to understand what these all are.
Go to THIS site and go to the documents section for documents about the SNES.
Zophar's Domain also has a good deal of information on the SNES.
You'll probably want to look up an assembly language tuturial or two if the documents are a bit over your head that just give you the instruction set with little explanation.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
-
- Devil Summoner
- Posts: 232
- Joined: Fri Jul 30, 2004 3:46 pm
- Contact:
You may also be interested in DMA Transfers, Compression, And You which to my knowledge is not featured anywhere but on my own site. (Could be wrong on this.) It will help you locate and recognize decompressed data in RAM, the routine that does the actual decompressing, and provides a hacky solution to completely reverse-engineering the compression routines built into the game.
[url=http://agtp.romhack.net]Aeon Genesis ~ We eat ham and jam and spam-alot[/url]
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
Yes, I forgot about that. That would probably be pretty useful in his situation. You should go nag someone at Zophar or romhacking.com to put your doc up.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
-
- Devil Summoner
- Posts: 232
- Joined: Fri Jul 30, 2004 3:46 pm
- Contact:
-
- Dark Wind
- Posts: 1271
- Joined: Thu Jul 29, 2004 8:58 pm
- Location: Texas
- Contact:
Use AdBlock with Filterset.G. Make sure to read the instructions for the filter set.Louis Cypher wrote:You're right, it is on ZD (I determine after wading through three online casino popups.) Except ZD fucking sucks, so it doesn't count. I mean, geez. They're the ones that Mozilla can't block (yet) too.
[u][url=http://bash.org/?577451]#577451[/url][/u]