News:

11 March 2016 - Forum Rules

Main Menu

Seiken Densetsu 3 - Creating a new table

Started by papermanzero, February 21, 2015, 03:17:53 AM

Previous topic - Next topic

papermanzero

Hi everyone,

I would like to start a new translation for Seiken Densetsu 3.
As baseline I would like to use the german version (http://www.secretofmana2.de/).
However I already spent some days to create a table for the text in the main menu, unfortunately without success.



I already know that the font is stored at 3E5900 (visible with tile layer pro).



Furthermore the font is dual tile encoded. Means, if I delete the letter "r" in tile layer pro also the letter "s" will disappear.



This is the main reason why I cannot create the table. I tried relative search and I changed the hex value of every search result, but the text still remains. Moreover I checked every available documentation (http://slickproductions.org/slickwiki/index.php/Seiken_Densetsu_3_Hacking), but I don't have any clue, how to create the table. :(

Can somebody help me to create a text table?
If anyone could give an advice how to create the table and to change the text, it would be highly appreciated.


VicVergil

About the font, you open it with Crystaltile2 for example, offset 3E5900, mode solid 1bpp, width 8, height 16. You can then modify the characters in the font individually. If you see letters jumbled that way, chances are your mode isn't right - of course exceptions exist like Final Fantasy 6, SN Hajimari no Ishi and others, but even those have each tile dedicated to exactly one character.
Check near the font offset but with the hex editor part, while looking at the scary hex values and you'll probably find the widths for each character.

And the text is probably compressed in some way if the relative search doesn't return anything.
But it should be uncompressed in the RAM (after all, the game needs to read it). Get a SNES emulator with debugging options (higan, Snes9X's Geiger build, Marmelade, no$sns...), dump the game's RAM in a separate file and do your relative search on that one so that you have at least a table file. (You can also use the cheat engine to know the table if you have a naming screen in SD3).

Then, you can try to figure out with assembly how the game compresses/decompresses the text. That cumbersome part could be not necessary in case the French/German/English translation romhackers shared their stuff, but it doesn't seem to be the case here sadly..

papermanzero

Thanks a lot!!!
I was already able to display the full font.

You are right, the text is compressed.
I tried vsnes and bsnes debug functionality to get the RAM table (snes9x geiger isn't working on my Windows7 PC).
So I already dumped the VRAM/WRAM and I will analyse it later.

SD3 has a naming screen. But I don't know how to find out the table with the cheat engine in bsnes/higan.

Unfortunately the european romhackers didn't release any documentation. :(
If I find out how to modify the text, I will definitely post and release my knowledge.

VicVergil

You don't need "documentation", but rather the compressor/decompressor utility they used. Thankfully you can learn ASM and read the code the game loads to get the text decompressed, then make those utilities on your own. In short, you may as well want to learn Snes ASM now to expand your horizons.

As for the cheat engine method, if you're familiar with how to search for the values for HP/MP/money for cheat purposes in other games, you can apply the same method but with the variable being the first letter in the naming screen.
Put "A" as first letter, reset search, put "B" instead, pick "value increased", search, put "A" instead, put "value decreased", search... until the search results list gets smaller and smaller, leaving only one or two addresses in the end.
Now you have the address, you can "add cheat code" and try assigning various values for it, and the letter should change magically in-game.. write down those values until you have your table. This method has the advantage of testing even character values not included normally in-game as available letters for names.


KingMike

Quote from: papermanzero on February 21, 2015, 06:09:07 AM
I tried vsnes and bsnes debug functionality to get the RAM table (snes9x geiger isn't working on my Windows7 PC).
That is correct. Geiger's uses an outdated version of Visual C++ or something (I think it was labeled a security risk by MS and unsupported). I got it to work but only after getting the missing DLLs from the Internet.
IIRC you could just dump the DLLs into the same folder as Geigers.
"My watch says 30 chickens" Google, 2018

RedScorpion

Hi,

in which language want you translate the SD3 version?

Mana 2 uses a set of text compression. The snes-projects version uses MTE/DTE with some huffman coding. So i think it would be difficult to find the text in the rom?!

Maybe Special Man could say something about it.

Thanks

red

Special-Man

#6
Hi papermanzero,

As Red already stated, hacking Seiken Densetsu 3 is a rather difficult task. You won't be able to accomplish any major changes without advanced programming and ROM hacking knowledge.
The game uses a combination of several compression techniques (lzh, lz77, huffmann, ...) for text and graphics.

Do you plan to translate the game to another language, or do you want to modify our German version?

papermanzero

I tried to translate it to Hungarian.
But it's more difficult than I originally thought.
Especially due to several obstacles which I did not see at the beginning.
Meanwhile it's only a learning project.
I was already able to translate the texts in the start menu (after tracing the pointers I found the text in the rom between FB3500 and FB3700).
Maybe I will start with an easier game and come back to that one later.

Thanks to everyone for the support.
And a big thank you to special-man and g-trans for the great translation. :)

Special-Man

#8
Btw, with v2.03 we will release some bonus patches, which are also compatible with the English ROM.