Golden Sun Hacking Community

General Hacking => General Editor => : Lord Wolfram June 25, 2014, 05:34:18 AM



: Making text editor.
: Lord Wolfram June 25, 2014, 05:34:18 AM
There is a game Summon night 3 and The project is dead.
However there is still a hope and I want to ask how to make text editor so the game could be translated.
Please need some advice.


: Re: Making text editor.
: Luna_blade June 25, 2014, 05:52:07 AM
There is a game Summon night 3
You mean like a game night in your neighbourhood?
and The project is dead.
The Revival Project dead? How? Why?
However there is still a hope and I want to ask how to make text editor so the game could be translated.
Please need some advice.
I can't help you with that... but If you see KyleRunner, ask him, because he already did a fantranslation.


: Re: Making text editor.
: Lord Wolfram June 25, 2014, 06:52:22 AM
Summon Night Craft Sword Monogatari
This is the game.
any advice in making translation?


: Re: Making text editor.
: Luna_blade June 25, 2014, 02:27:16 PM
Summon Night Craft Sword Monogatari
This is the game.
any advice in making translation?
Oh now I get it!  :idea: :happy: You want to translate that game yourself!
Well two things:
 :NeutralStar:The GS Editor will very probably not be able to be a tool in translation. Why?
Because it's a totally different game.
 :NeutralStar:For advice, go to Romhacking (http://www.romhacking.net/ (http://www.romhacking.net/)) and ask some people there. Or perhaps the people who originally started translating, ask them.

BTW, there seem to be some translations that "are good enough to play the game". So were you looking for a translation or really wanted to do it yourself?

BTWBTW, the game you're are talkin about looks an afwul lot like the Mana series... (Trailer for the GBA game https://www.youtube.com/watch?v=EnE3e13z1LA (https://www.youtube.com/watch?v=EnE3e13z1LA))
Have you played that? It might be worth to check it out.


: Re: Making text editor.
: Lord Wolfram June 25, 2014, 04:25:05 PM
I see but how to make an editor because those tools which are made are confusing.
And I can't get them.
BTW did you meant :NeutralStar: this symbol just interested what is it.


: Re: Making text editor.
: Luna_blade June 25, 2014, 04:35:39 PM
I see but how to make an editor because those tools which are made are confusing.
And I can't get them.
BTW did you meant :NeutralStar: this symbol just interested what is it.
How to make an editor? You must know every single piece of data in a rom and it's meaning. Then you can make an editor using various programs, such as VB.NET, Gamemaker (like Atrius IIRC), Java & some others.
It's really not that easy.

I indeed meant that symbol. I guess it got lost because of all the edit I made to that post.


: Re: Making text editor.
: Lord Wolfram June 25, 2014, 06:47:48 PM
I see but how to make an editor because those tools which are made are confusing.
And I can't get them.
BTW did you meant :NeutralStar: this symbol just interested what is it.
How to make an editor? You must know every single piece of data in a ROM and it's meaning. Then you can make an editor using various programs, such as VB.NET, Gamemaker (like Atrius IIRC), Java & some others.
It's really not that easy.

I indeed meant that symbol. I guess it got lost because of all the edit I made to that post.
Well I am looking for some advice. maybee we can Analise that room as a group so then we could find that text data and then making an editor right now I will download java so I can access javascripts and then keep studying them.


: Re: Making text editor.
: Luna_blade June 25, 2014, 07:10:28 PM
Well I am looking for some advice. maybee we can Analise that room as a group so then we could find that text data and then making an editor right now I will download java so I can access javascripts and then keep studying them.
If you're going to use Java, I guess Majora knows some of that stuff. Teawater maybe?
I can only give you advice, because I got lots of other stuff to do. Even if I would have the time to help you , I really lack the knowledge about the GBA and roms. I can do a bit with VB.NET, but reading roms is way above my amateurism.


: Re: Making text editor.
: Rolina June 26, 2014, 11:10:10 AM
Summon Night Craft Sword Monogatari
This is the game.
any advice in making translation?
Oh god, that game.  Best in the series, and they didn't bother to port it.  I'm still mad about that.

Yeah, a solid translation would be nice.  We'd need a text editor like with the hacking tools to make sure we got everything though.  I can totally see why you're looking for one.


: Re: Making text editor.
: Lord Wolfram July 01, 2014, 06:08:35 AM
I have access to gamemaker 8.0 so I will use it.
I think to use something from Atrius TLA editor.
Small scripts.
I will give him some credits and that way that wont hurt for anyone.
Some Advice?
BTW.Datahandler.dll for gs is made by Atrius himself or such a things can be found?


: Re: Making text editor.
: Fox July 01, 2014, 08:08:15 AM
If you want my opinion, I don't recommend GameMaker, but you can use it if you want.

Datahandler.dll was created by Atrius. It's used to do I/O loading and decompressing of data from ROM, as well as other tid-bits like managing free space, Anyway, the I/O bit is definitely useful for speed. Unfortunately, the decompression methods create files that he accesses byte by byte in the editor, which may slow things down... (See Maps Editor and Data Viewer.)

Did anyone notice this incomplete project?: https://github.com/wangds/sncsm3 (Posting a link to it since it wasn't linked in this topic.)


: Re: Making text editor.
: Lord Wolfram July 01, 2014, 08:14:36 AM
If you want my opinion, I don't recommend GameMaker, but you can use it if you want.
Hello Tea It is good to see you are back.
Which you recommend then?
BTW.Can you assist me in this job?
Helpful hand is rely in need.


: Re: Making text editor.
: Fox July 01, 2014, 08:35:10 AM
Hello Tea It is good to see you are back.
Not that I was gone the entire time, since I did visit as a guest a couple times... ( Salanewt mentioned me in his earlier posts from another topic, anyway.)

Which you recommend then?
Hard to say.

My best language at the moment is VB.NET, but I can still work with Java a little bit.


As for what I documented for sn3, it was this:

02013000 = Char data


08B704A4 = Font table??? (Indexes to chars?)
08B6D5D0 = Font table??? (If arg=-1)
08B6D624 = Font table??? (Indexes to chars?)
08B71498 = Text?
08BDA40C = Text/convo bank
094D446C = Font/char bank
 094D6C88 = Font table??? (0x18 bytes/entry) Char data    (Edit: I probably should remove this line, since it's right in the middle of a table.)
 09586368 = Graphic tiles for a Japanese text screen.

096B16E5 = ?
09718FFC = bank
098C8D9C = bank
09DA9302 = ?
09E2261C = bank
09FBB1F0 = Free space


And then I guess I got bored or something?

By the way, Char data means pixel data... I use the word Char beause of the Char Base thing in one of VBA's viewers... ; It's still formatted differently, though.


And before I forget ....

Happy Canada Day!


: Re: Making text editor.
: FrozenWrath July 01, 2014, 02:55:44 PM
Yyyyyyyyyyaaaaaaaaaaaaaaaaaaaaayyyyyyyyyy!


: Re: Making text editor.
: Luna_blade July 01, 2014, 03:07:33 PM
I have access to gamemaker 8.0 so I will use it.
I think to use something from Atrius TLA editor.
Small scripts.
I will give him some credits and that way that wont hurt for anyone.
Some Advice?
BTW.Datahandler.dll for gs is made by Atrius himself or such a things can be found?
I don't know where you got it, but nice!
Have you found sources or documentation on the ROM? It would be handy to get as much info as possible.
: Teawater
If you want my opinion, I don't recommend GameMaker, but you can use it if you want.

Datahandler.dll was created by Atrius. It's used to do I/O loading and decompressing of data from ROM, as well as other tid-bits like managing free space, Anyway, the I/O bit is definitely useful for speed. Unfortunately, the decompression methods create files that he accesses byte by byte in the editor, which may slow things down... (See Maps Editor and Data Viewer.)

Did anyone notice this incomplete project?: https://github.com/wangds/sncsm3 (Posting a link to it since it wasn't linked in this topic.)
Well I didn't notice it for sure.
Also, the DataHandler.dll works for everything that can use a dll right?
I wouldn't see the need in using GM for it, especially if you know a bit about other languages already...


: Re: Making text editor.
: Lord Wolfram July 04, 2014, 05:30:17 PM
I can't get VB.NET
Dam'n!
Tell me Fox(Teawater) why not gamemaker?
Using java...How?
Can you please make data handler for me Please!

Anybody! Help me giving more some advice!


: Re: Making text editor.
: Luna_blade July 04, 2014, 05:42:16 PM
I can't get VB.NET
Dam'n!
Tell me Fox(Teawater) why not gamemaker?
Using java...How?
Can you please make data handler for me Please!

Anybody! Help me giving more some advice!
Oh yeah I forgot the real VB.NET (or visual studio) is hella overpriced.

Again, I think you should look for existing documentation.


: Re: Making text editor.
: Fox July 05, 2014, 02:34:46 AM
Some reasons why I don't like Game Maker:

-Atrius's editor has a high CPU usage, which is unnecessary.
-All of your controls have to be made from scratch. VB.Net/Java/etc. has some built-in controls that may make the process easier. (Think textbox, combo-box, numerics, etc.)
-Atrius needed to use a DLL to do I/O loading, and I think it'd be better to have a stand-alone executable if that's all you'd need a DLL for.
-Navigation in the creation program may be more of a pain.


The overpriced version of Visual Studio can be gotten for free.. if you look for the product key off site somewhere... but the latest VS does require W8, I think. so it might not be much use to you right now. You can still do Visual Basic Express, though. (Which is 100% legally free.)

@Java: You need two things... JDK and an IDE: @IDE: Either Eclipse or NetBeans if you want the popular Java IDEs.

(Although, I'm not sure if Eclipse has the JDK already built-in to it or not, but... hm...)

Happy U.S. Independence Day!


: Re: Making text editor.
: Luna_blade July 05, 2014, 08:28:52 AM
: Fox
The overpriced version of Visual Studio can be gotten for free.. if you look for the product key off site somewhere... but the latest VS does require W8, I think. so it might not be much use to you right now. You can still do Visual Basic Express, though. (Which is 100% legally free.)
Oh I'm also almost sure that the newest requires Windows 8. Maybe a 64bit windows 7 also works?
Anyway, I used VS2012 like 3 years ago for a short while. But since starting again I have used 2008, which works fine on Windows XP. I didn't know 'bout product keys yet :um:


: Re: Making text editor.
: Lord Wolfram July 05, 2014, 04:07:07 PM
Something is wrong with any version of VB.net
To the hell with it! :fury:
                          :Saturos:

@Fox. So in other words to translate that game I don't need datahandler.
Happy U.S. Independence Day!
Happy! I will calibrate with you!

I look forward to get some staff for Java then...


: Re: Making text editor.
: FrozenWrath July 05, 2014, 07:29:10 PM
You're not a computer, Saturos.

You're a Proxian. So celebrate with us!


: Re: Making text editor.
: Lord Wolfram July 06, 2014, 07:02:26 AM
You're not a computer, Saturos.

You're a Proxian. So celebrate with us!
Hahaha!
Thank you Scarlet!
By reading this my mood has become better.
What a terible morning for me it was.
Hahaha
 :happy:   :happy:   :happy: :happy:
 :Saturos: :Menardi: :Agatio::Karst:


: Re: Making text editor.
: Luna_blade July 06, 2014, 08:34:45 AM
And you're absolutely sure you installed the right .NET Framework?
Otherwise, I don't have a clue what the problem is and then it might indeed be more usefull to switch to Java.
 :happy:
:Babi:
 :um:
:Luna_blade:
If it only would have worked...


: Re: Making text editor.
: Fox July 06, 2014, 09:48:09 AM
And you're absolutely sure you installed the right .NET Framework?
By the way, which one was it again? Almost forgot that that was the problem... So thanks for mentioning.

@Swithcing to Java: How would it be more 'useful'? Are you referring to multi-platformness, or something else?


@Fox. So in other words to translate that game I don't need datahandler.
Correct. A DLL is a Dynamic Link Library... Basically, it's like storing functions/code in an external file. I think they're useful for when you want to code in multiple languages. But I don't think you'll be needing it. (Unless you are trying to learn to code.)

Having DLLs may also be useful if you have many programs that use the same functions. (I think) Since it may save space, assuming programs cannot easily access code in other programs. ; However, I doubt that applies to us right now.


: Re: Making text editor.
: Lord Wolfram July 06, 2014, 05:47:06 PM
I will dawnload JDK real soon.
Once I get it how will I use this(For What purpose?)?

And IDE...
For what will I use it?


: Re: Making text editor.
: Fox July 06, 2014, 06:03:48 PM
JDK = Java Development Kit - I'm guessing it's the compiler, or something. (Read http://en.wikipedia.org/wiki/Java_Development_Kit for contents.)  I know it has to be downloaded separately if you use NetBeans, but I'm not sure about if you use Eclipse.
IDE = Integrated Development Environment - This is the program you code in.


: Re: Making text editor.
: Luna_blade July 06, 2014, 08:31:57 PM
By the way, which one was it again? Almost forgot that that was the problem... So thanks for mentioning.

@Swithcing to Java: How would it be more 'useful'? Are you referring to multi-platformness, or something else?
VS 2008 supports 3.5 and later 4.0 I think...
More usefull because he fails to use VS... I guess a bad choice of words there.
Correct. A DLL is a Dynamic Link Library... Basically, it's like storing functions/code in an external file. I think they're useful for when you want to code in multiple languages. But I don't think you'll be needing it. (Unless you are trying to learn to code.)

Having DLLs may also be useful if you have many programs that use the same functions. (I think) Since it may save space, assuming programs cannot easily access code in other programs. ; However, I doubt that applies to us right now.
I forgot DLLs in .Net Framework are actually multi-language. I'd love to have a little discussion about why and how DLLs...

@Saturos: Good luck.


: Re: Making text editor.
: Lord Wolfram July 07, 2014, 10:41:26 AM
Which kit you suggest?which is needed?
I can't download too much because of limits of internet...


: Re: Making text editor.
: Fox July 08, 2014, 05:48:26 AM
Java SE might be the one you're interested in.

I think SE means Standard Edition, and EE means Enterprise Edition.

Not sure of the main differences between the two at the moment, but it seems like EE does web applications...

Mouse over the plus signs on the left if it helps.


: Re: Making text editor.
: Lord Wolfram July 08, 2014, 01:56:31 PM
Alright downloading SE.
Downloading in process :um: :um: :um: :fury: :irate: :idea: hmm while it is loading I am thinking.
I downloaded this JDK file Name (jdk1.8.0_05) :?: is this correct file? or I must look for other?
I have to wait 6 minutes...I hate to wait sometimes :irate:

Now once again there is a problem! :!:
To instal this I need JDK in special folder or something :um:
I will ask help to my sister because I must go well then lets hope she will success.


: Re: Making text editor.
: Fox July 08, 2014, 06:38:22 PM
jdk-7u45-windows-x64 = This is what's in my Downloads folder, so this might be the one.   File Description says... Java(TM) Platform SE binary

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

I think the latest might be u60.


Hmm... an ad advertising Java 8? I guess I'll have to put that on my list of things to keep an eye on. (Assuming it's not out yet?)


: Re: Making text editor.
: Lord Wolfram July 09, 2014, 04:12:22 PM
shows error message.
it is not valid win 32 aplication.
oh well then I will look for other wersion.


: Re: Making text editor.
: Fox July 09, 2014, 04:18:23 PM
That's because x64 is for 64-bit computers like mine. I think you have a 32-bit one, so you'll have to get the 32-bit version.

Which I believe is this one:
 Windows x86   127.91 MB     jdk-7u60-windows-i586.exe


: Re: Making text editor.
: Luna_blade July 09, 2014, 05:40:11 PM
That's because x64 is for 64-bit computers like mine. I think you have a 32-bit one, so you'll have to get the 32-bit version.

Which I believe is this one:
 Windows x86   127.91 MB     jdk-7u60-windows-i586.exe
There's about 99% chance he has 32bit, because he runs XP IIRC.


: Re: Making text editor.
: Fox July 09, 2014, 09:35:41 PM
So does 64-bit support start at Vista? (I use to use that until I got a new computer that uses W8... about 7-ish months ago.)

Oh, and Java 8 JDK page: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


: 1.step(getting started)
: Lord Wolfram July 11, 2014, 04:12:31 AM
We can celebrate because I successfully installed everything I the mighty Saturos need!
 :happy:
 :Saturos:

So Fox what we shall do now?
There are always support teem.
http://gbatemp.net/threads/summon-night-craft-sword-monogatari.227224/page-21

Hahaha. yeah it is me!


: Re: Making text editor.
: Fox July 11, 2014, 05:09:30 AM
I think I saw that topic (And your posts there) when I first looked up that topic after you first mentioned summon night at one point... I also looked up the topic at romhacking.net, and that's when I believe I found that github project... I think.

As for where to start? It depends on what you want to do. I do know it helps a lot to know assembly.

(By what you want to do.. I mean like... what do you want to translate at the current moment? In case there are several different script tables or something... Not sure, since I haven't documented much of the game beause of laziness... it's a huge file.)

Edit: I guess for starters, you can at least add in code that can load the ROM to a buffer and later save back to the file: (FYI: This is in my GS Editor for Java.) You'll need to call the two functions openFile and saveFile when necessary. The dialog argument is whether to use the current path or ask for a new one. (If there's no current path, it'll ask for a new one.) For example, saveFile(0) for Save, and saveFile(1) for Save As...

   byte[] buffer;
   int pos = 0;
   String path;

   void openFile(int dialog) {
      if ((path == null) || (dialog == 1)) {
         final JFileChooser fc = new JFileChooser();
         switch (fc.showOpenDialog(null)) {
         case JFileChooser.APPROVE_OPTION:
            path = fc.getSelectedFile().getAbsolutePath();
            break;
         case JFileChooser.CANCEL_OPTION:
            buffer = null;
            return;
         }
      }
      try {
         FileInputStream input = new FileInputStream(new File(path));
         byte[] data = new byte[input.available()];
         input.read(data);
         input.close();
         buffer = data;
         return;
      } catch (FileNotFoundException ex) {
         // Messagebox FileNotFound
         javax.swing.JOptionPane.showMessageDialog(null, "File not found: "
               + path);// , "InfoBox: " + location,
                     // JOptionPane.INFORMATION_MESSAGE);
         buffer = null;
         return;
      } catch (IOException ex) {
         javax.swing.JOptionPane
               .showMessageDialog(null, "IO error: " + path);
         buffer = null;
         return;
      }
      // return null;
   }

   int saveFile(int dialog) {
      if ((path == null) || (dialog == 1)) {
         final JFileChooser fc = new JFileChooser();
         switch (fc.showSaveDialog(null)) {
         case JFileChooser.APPROVE_OPTION:
            path = fc.getSelectedFile().getAbsolutePath();
            break;
         case JFileChooser.CANCEL_OPTION:
            return -1;
         }
      }
      try {
         FileOutputStream output = new FileOutputStream(new File(path));
         // byte fileData[] = new byte[output.available()];
         output.write(buffer);
         output.close();
         // return fileData;
         return 0;
      } catch (FileNotFoundException ex) {
         return -1;
         // Messagebox FileNotFound
         // javax.swing.JOptionPane.showMessageDialog(null,"File not found.")//,
         // "InfoBox: " + location, JOptionPane.INFORMATION_MESSAGE);
      } catch (IOException ex) {
         return -1;
      }
   }


: Re: Making text editor.
: Lord Wolfram July 11, 2014, 09:52:38 AM
It is said by Pablitox :
The translation of the script is 100% complete
about text insertion:
Objects 100%
magic 100%
Weapons 100%
Techniques 99%some are missing
bestiary 99% pending boss data
script 5 % up till murno first conversation
howewer the scripts were destroyed or something.(don't understand exactly what happened with them.)
in other words we must translate dialogue and what tells villages.
make it like Atrius did.


: Re: Making text editor.
: Fox July 11, 2014, 12:06:59 PM
Whoops... I guess I had poor wording. I meant which part of the game should we alter first? But I see it's between Techniques, Bestiary, and Script.

By the way, which place do you recommend to grab the translations from?

I know there is this: http://sntranslation.vacau.com/index.php , but I've been too lazy to register there at the moment. Edit: Until now.

I have a feeling that we won't have to worry much about String lengths, and instead, the length of the entire section, but I'll have to look into it to make sure. It all just depends on if I can make a program that can repoint all strings in the section. (It's probably better that I not mention this until I have a better understanding on what's going on...)


: must be done
: Lord Wolfram July 11, 2014, 01:33:00 PM
So this is that post about what must be done to finish project. so what do you all think can we do this?

    Here is what needs to be done

    VERY HIGH LEVEL OVERVIEW Richburn had developed tools which don't seem to be able to handle pointers changes correctly, and which use their own very specific formats for tables (i.e. characters matching to hex), for text dumped, for translation and opcodes. In my humble opinion, improving them to work ok in terms of pointers would be a real pain. However, the folders which Pablitox has been putting together contain good info, so it is worthy looking into them to understand the info available - with a view to re-creating a dumper and an inserter, with pointers accounted for this time. This is what I will detail here. Wastor, on his end, has done everything ok on Summon Nights 1, and has shared the info of "how" with us. So it is good to read all he gave us, try and get familiar with how it works on Summon Nights 1, and then see how much of that can be applied to Summon Nights 3.

    So step zero is to read all that has been shared. Info that is not useful: - Richburn's tools code is very not easy to read to me. So I wouldn't bother with the code. Do however read any txt/doc that comes with it. - There's a guy who did a font attempt with 2 ASCII characters for each 2-byte code used by the game. That's a waste of time in my opinion, because it was done to reduce the size of the text, and Pablitox's counting of the characters shows that we don't need to worry.

    Step 0 should also include reading all the PM's I sent to Pablitox :) :) and looking into the ROM itself while reading them.

    REPRODUCING WHAT WASTOR HAS DONE -SIMPLE STEP ALL IN JAPANESE Start with Summon Nights 1. Look into the ROM. Look for "PSI3" and you will find many occurrences. These mark the start of a block of text. There are many of them PSI3's, because the text is split into small sections, each section is "played" by the game when dialogue is presented. It is not 1 section per character chat, but one section for a few. The text is not directly readable, because it has been compressed. To be more precise, there are 2 layers: - PSI3 encapsulation (this one should be a simple matter of cutting out the bytes) - LZsomething compression. (Cue has created tools that handle that one - I haven't tried, so I don't know what parameters to use, but Wastor knows. Maybe you can even read it in one of his PM's. He was referring to http://www.romhacking.net/utilities/826/ if I understood well.) So there you have to: - split the PSI3 sections out of the ROM (write a specific program for that, in your vaforite language) - apply CUE's decompressor to them (batch file calling for each of them thousands of extraced files. Get parameters from Wastor.) - enjoy reading the Japanese text - get Pablitox to confirm this indeed seems to be the script, and point out the first few sentences (for later test). Also, you should be reading here that there are "non-text bytes" in the text. These are "opcodes", i.e. commands given to the game's engine to do extra things while presenting the text. Some typical ones are "press any key to display the next window of text", "change character portrait to show surprised look", etc. Each game has its own set of opcodes. Don't dig too much into these ones here, except for the ones that insert pointers. (See the text file that has some opcodes explained in it for Summon Nights 3.)

    And now it's time to re-insert. One complexity here: CUE's encrypter will not produce the same result as the gamer originally did. Right now, it is a pain because, if I got it well, I think it means you have to handle the in-text pointers right away. Not sure. Try to recompress and play directly. If it works, be happy! :) To rehash, take the same steps as before in reverse order: - compress the Jap' text with CUE's tool - re-create the PSI3 headers - insert the PSI3 sections back into the ROM. Note: you will probably need to insert useless bytes at the end of the PSI3 sections because the new ones are a bit shorter than the original ones. Play and verify that it works. Debug if it does not. :)

    REPRODUCING WHAT WASTOR HAS DONE - A BIT OF ENGLISH Now that this works, it's time to insert a bit of English and get familiar with these in-text pointers. Translate a bit of text (preferably at the start of the game, for ease of texting), making it longer than it was. the goal is to have longer text in English than when you re-compress with CUE's tool, but stay within the size of the re-compressed Japanese text. Insert line breaks /new window opcodes as needed for it to look ok. There should be pointers in the text. Ask Pablitox about them - from what I understand, they give a "jump" order depending on which of the heros you are playing, and probably other things. The "bad" thing here is that they are really offsets (either relative to the PSI3, or absolute offsetsin the ROM, I am not sure. I was not able to make Wastor explain that correctly, probably because of my limited Spanish, but you can try and be a pain to Pablitox until he gets the right explaination. Right, Pablitox? ;)) So, because you inserted larger text than in Japanese, the pointers will be wrong. You need to correct them. It's ok to start doing that manually in the insertion process, to test it out. Then re-run the rest of the chain (CUE encryption, PSI3 encapsulation, ROM insertion, play!) until you get them right. Once you have them right, you have to get your program to do it automatically for you (i.e. understand how they are calculated and make the program handle it).

    Once that is ok, you will have done all you can with Summon Nights 1. Training is over, it is time to go into the tough part! :) :) Just kidding. Anything from now on is related to Summon Nights 3.

    MORE INFO ON CREATING THE DUMPER You need to check the PSI3 struccture, to see if your tool from Summon Nights 1 to extract them and de-capsulate is still working or needs adapting. After that, you run CUE's tool and cross fingers that it works. If it doesn't, try and understand why (I mean - what difference do you see in the bytes?) and see if you can tweak any parameter the tool takes in order to make it work. If it doesn't, call for Cue's help through Pablitox. ;) If all goes well, then you have a long japanese text in front of you (split into many files). Get Pablitox to confirm that this is indeed the right thing, jut to be sure. Then you are on for the same thing as we did with Summon Nights 1. Re-insert the japanese as-is in order to get your toolchain ok. (Especially: if you changed things during the dumping, expect to change things during the insertion.) Once that works, translate a small part, correcting the pointers, with the same constrinats (don't get the compressed size bigger than the original compressed Japanese, but do get it bigger than the CUE-re-compressed Japanese.)

    FITTING INSIDE THE ROM After that, we are almost done preparing the tools. Almost. The last problem to take care of is to make it that text will fit inside the ROM. A bit of background info here: the ROM size for Summon Nights 3 is already at the maximum accepted by the GBA. So there is no magic here. And you can look for free sections that can be overwritten, but they are not very numerous and not very large, except for about 200KB at the end of the ROM. so keep in mind that you have that space to look forward to for later. You will have to sue 2 techniques to fit inside the ROM: change character encoding to ASCII, and relocate text. Text is currently encoded in SJIS. (You used the table of that name to get to the Japanese.) This means that, when you insert English back into the ROM, it is still encoded in SJIS. SJIS's encoding of A-Z and a-z characters is using 2 bytes for each character, which is a waste of space. So your mission is to replace SJIS with ASCII. What this means is: - you need to get your tool to produce ASCII instead of SJIS. Depends on how your tool is done - I leave that up to you. Maybe you only need to change the encoding of the text files, after text has been translated? (Notepad++ allows that for instance.) - you need to get the game to understand ASCII. This is the trickiest part. . First, locate the font's graphics in the ROM. CrystalTile2 or TileGGD can be used for that. I'm not good at it, so I can only wish you luck. . Then you need to find the routine that translates "character codes" (i.e. bytes in the table) to offsets within the font. You should start from a breakpoint on the location of the text, and step instructions until you find the right calculation. Have the address of the font at hand, it will help recognize an address that is within the range of the font. By "font" I really mean the font's graphics, here. Once you find it, you are ready for changes. The SJIS encoding of "A" is 8260. The ASCII encoding is 41. After that, characters are in the same order. So you need to add 8220 to the characgter codes read byb the game, before it goes on with its usual processing of the letters to display them. And that's it - you just divided by 2 the amount of space required!!!

    GETTING ENOUGH SPACE ON SCREEN Of course, there is more to do. One item comes to mind: you will need to use a variable-width font in order for the text to have enough space on screen to be displayed properly. As this is one of the last items you will get to,and i am not really that familiar with it yet, I suggest we tackle it (or you call for help on RHDN) once you get there.

    USING THE EXISTING TRANSLATION Pablitox has an existing translation of all of the Japanese text into English. Which is great, right? But we just changed the format in which the text was dumped, in order to match your new tools, and the format that Pablitox used was not insertable anyways, because all of the opcodes were erased... So, time for a new program, right? The translated text takes the following format: Japanese English Translator's name Note also that the name of the file containsthe initial address of the PSI3 block that contained it in the Japanese ROM.

    Good news: we don't care about the translator's name (sorry guys ;)). So you can create a program that will load in RAM all of the text in format "Japanese, original offset, English". Try and match it with the dumped text. Cross fingers that these guys didn't remove too many opcodes. If it doesn't work, then get these guys back to manual work to insert their translations into the dumped text. (After all, this is the only way to get things back into the ROM.)



: 2.step(finding text in room)
: Lord Wolfram July 13, 2014, 05:15:42 PM
Am I correct? this is second step?
So Fox if you need some answers then ask them to support team in gbatemp.net
And how far you find out things?


: Summon night 3 translation project (Pablitox you must look here!)
: Lord Wolfram July 16, 2014, 07:24:40 PM
I apologize for triple post but This must be read by anybody who wants to assist summon night 3 translation project.
so here we must keep discussions in topic because in chat-box is a bit hard to do this (to me).
Anyway here we will discuss all things and first thing is which tool is suggested to insert scripts.
Link please if you can.


: Re: Making text editor.
: pablitox July 16, 2014, 08:04:23 PM
problem is, there is no tools, as I said the ones used by Ritchburn are pointless, new ones should be made


: Re: Making text editor.
: Fox July 17, 2014, 12:32:37 AM
Hmm... While I agree that new tools should be made, I doubt I'd call Ritchburn's tools pointless.  It could help with documenting data in game. (Sort of.)

patch_str(0x00bd5744, 12, "~Ritchburn");
For example, this (^), should put "~Ritchburn" at offset 0x00BD5744 with a char limit of 12.


What I'd like to look into is if it's possible to remove the need to keep putting in a new address if the next address comes right after. That, and remove the need for a char limit on a single string. (And instead, have it on the whole section, therefore repointing quite a bit of stuff...)


: Re: Making text editor.
: Lord Wolfram July 17, 2014, 04:46:35 AM
Alright things are ongoing that's good to hear.
And Fox can be right we must upgrade Ritchburn's tools.
Or maybe something like I trough Text editor.


: Re: Making text editor.
: Fox July 17, 2014, 02:51:55 PM
Alright things are ongoing that's good to hear.
(Although, I haven't decided how much I'm going to look into this...)

Text is currently encoded in SJIS. (You used the table of that name to get to the Japanese.) This means that, when you insert English back into the ROM, it is still encoded in SJIS. SJIS's encoding of A-Z and a-z characters is using 2 bytes for each character, which is a waste of space. So your mission is to replace SJIS with ASCII.
For Ritchburn's tools... 2 bytes for every character or pair of characters... see the NAME ENTRY space? (Although, I'm guessing this is patched, but I'm just saying it isn't ASCII, either.)

R = 0x7182
it = 0xEE8A
ch = 0xD58D
bu = 0x9E93
rn = 0x958B

10 bytes put up Ritchburn. And I'm guessing that's what the function labeled "should_generate_pair(char a, char b)" is for. (When a 16-bit represents one or two characters?)


: Re: Making text editor.
: pablitox July 17, 2014, 03:56:02 PM
I haven't the slightest idea about the questions, as i am no romhacker. But sadly this project won't. keep up until someone dedicates it entirely rather than just giving advice. that's my opinion.

You should ask blackdog61 at romhacking.net, he may know more of this stuff.


: Re: Making text editor.
: Lord Wolfram July 18, 2014, 06:29:56 AM
Alright. Anybody, we all will meat new friend.
In other words we will meet blackdog.
He is going to assist me in translation project so get ready to great our new friend.

 :happy:
 :Saturos:

FITTING INSIDE THE ROM After that, we are almost done preparing the tools. Almost. The last problem to take care of is to make it that text will fit inside the ROM. A bit of background info here: the ROM size for Summon Nights 3 is already at the maximum accepted by the GBA. So there is no magic here.And you can look for free sections that can be overwritten, but they are not very numerous and not very large, except for about 200KB at the end of the ROM.
Is this going to be a big problem?

Richburn had developed tools which don't seem to be able to handle pointers changes correctly, and which use their own very specific formats for tables (i.e. characters matching to hex), for text dumped, for translation and opcodes. In my humble opinion, improving them to work ok in terms of pointers would be a real pain.

We could fix that maybe...if it is need.
All right I will be on my way see ya all.


: Re: Making text editor.
: BlackDog61 July 18, 2014, 06:37:58 PM
Alright. Anybody, we all will meat new friend.
Hi Saturos & team!

I'm the guy who wrote that plan of action Pablitox posted over at romhacking.net and that got copied here too.
Just to clarify: I can do consulting, but I have another projecct that keeps me busy and will prevent me from being hands on here. But I will still provide my understanding.

First, back to our goal currently: the goal is to use the text translation that is already available and somehow insert it in the ROM. That translation has a format with 3 lines following eachother:
Japanese
English
Author.

If anyone's done romhacking before, this should immediately ring a bell that something is missing; "something" is where on Earth to re-insert this text back.

The tools that Richburn developed expect a special format that indicates that.
On top of that, from the tests Pablitox made, it looks like those tools are not able to handle pointers correctly.

"Pointers" here are used (from what I gather) in order to indicate to the game what text to use if you are Richburn vs what text to use if you are not. (There probably are other conditions under which the game chooses one text or another to show to the player.) The pointers are within the text strings. They point to RAM addresses, which means that if you make the text before them longer, then they will be screwed. You need to update their values to take into account the added or removed characters.

This is not an easy thing to do, but it is feasible. However, if you have to add that to code you don't know, I don't think it is easy at all.

That's why I suggested to create your own tools.

If you really, really want to update Richburn's tools, you will anyways need to start with re-dumping all the Japanese text while retaining enough info to allow re-insertion. So both possibilities start the same: you havve to re-do the dumping.

Are we in sync so far?
What do you want to do?

Alright things are ongoing that's good to hear.
(Although, I haven't decided how much I'm going to look into this...)

Text is currently encoded in SJIS. (You used the table of that name to get to the Japanese.) This means that, when you insert English back into the ROM, it is still encoded in SJIS. SJIS's encoding of A-Z and a-z characters is using 2 bytes for each character, which is a waste of space. So your mission is to replace SJIS with ASCII.
For Ritchburn's tools... 2 bytes for every character or pair of characters... see the NAME ENTRY space? (Although, I'm guessing this is patched, but I'm just saying it isn't ASCII, either.)

R = 0x7182
it = 0xEE8A
ch = 0xD58D
bu = 0x9E93
rn = 0x958B

10 bytes put up Ritchburn. And I'm guessing that's what the function labeled "should_generate_pair(char a, char b)" is for. (When a 16-bit represents one or two characters?)

Right. That tool uses a dual-tile encoding. This means a 16-bit (2 bytes) can represent either one or two characters. The goal here is to be compatible with the game's text display engine (which is used to Japanese = 2 bytes per character, so it always gets text 2 bytes at a time and processes them together) while trying to limit the amount of ROM space needed to store the text (because storing each letter over 2 bytes is a waste of space).
Check my posts on pablitox's thread there: http://www.romhacking.net/forum/index.php/topic,16818.20.html (http://www.romhacking.net/forum/index.php/topic,16818.20.html)
Hopefully that helps make sense of all this.

Still, dual-tile encoding requires you to go to the image that contains the font (each character) and replace Japanese with a lot of pairs of characters. Obviously, someone has done it for Summon Nights 3 and uses the tools accordingly; But i have not been able to find the font graphics that go with it. Without the graphics, the dual-tile encoding cannot work.

So, if you want to keep using this, you have to find the font back. Maybe from the patched ROM itself?

Note: The alternative (my favourite path) would be to not use dual-tile encoding, but instead make the game support ASCII characters (1 byte per character), thus saving a lot of space in the ROM. It requires ASM hacking to see how the game's text engine renders text and to change it to do things one byte at a time instead of two, then changing the font to position ASCII characters where they should be (instead of where the game placed them).
Since room in the ROM is very little, you have to find a way to win space.

But which path you go is up to you. There may even be others.


: Re: Making text editor.
: pablitox July 18, 2014, 07:48:03 PM
Glad to see this still alive. The least I could do is upload the script without the translators, here it is: https://www.mediafire.com/?5ffh9393ewqnlh3

Is there something else that should be done with the script? I was thinking about this, as the opcodes details which character portrait should be uploaded, could that info be in the script? Next to each line I mean, that could be useful after the opcodes have been identified.



Just to clarify, the game's title is Summon Night craftsword monogatari: hajimari no ishi which translates to Summon Night Swordcraft Story : stone of beginnings, don't confuse with summon night 3 for ps2 psp.


: Re: Making text editor.
: Lord Wolfram July 19, 2014, 04:39:19 AM
I suppose there are some problems with my pc.
本編
Original Story


自由行動
Free Time


サウンドテスト
Sound Test


おまけ
Bonus


通信
Communication


0話
Prologue


護衛獣
Guardian Beast


ヴィー
V.E


レミィ
Lemmy


ジェイド
Jade


ティエ
Tier


1話
Chapter 1


2話
Chapter 2


3話
Chapter 3


4話
Chapter 4


次へ
Next


5話
Chapter 5


6話
Chapter 6


7話
Chapter 7


8話
Chapter 8


9話
Chapter 9


次へ
Next


10話
Chapter 10


11話
Chapter 11


12話
Chapter 12


エンディング
Ending


EX
nt


戻る
Back


E01
nt


E02
nt


E03
nt


E04
nt


E05
nt


次へ
Next


E06
nt


E07
nt


E08
nt


E09
nt


E10
nt


次へ
Next


E11
nt


E12
nt


E13
nt


E14
nt


E15
nt


次へ
Next


E16
nt


E17
nt


E18
nt


E19
nt


E20
nt


次へ
Next


E21
nt


戻る
Back


E00
nt


E01
nt


E02
nt


E03
nt


E04
nt


次へ
Next


E05
nt


E06
nt


E07
nt


E08
nt


E09
nt


次へ
Next


E10
nt


E11
nt


E12
nt


E13
nt


E14
nt


次へ
Next


E15
nt


E16
nt


E17
nt


E18
nt


E19
nt


次へ
Next


E20
nt


E21
nt


E22
nt


E23
nt


E24
nt


次へ
Next


E25
nt


E26
nt


E27
nt


E28
nt


E29
nt


次へ
Next


E30
nt


戻る
Back


ミューノ
Murno


護衛獣
Guardian Beast


ヴィー
V.E


レミィ
Lemmy


ジェイド
Jade


ティエ
Tier


ミューノ
Murno


護衛獣
Guardian Beast


ヴィー
V.E


レミィ
Lemmy


ジェイド
Jade


ティエ
Tier


ミューノ
Murno


護衛獣
Guardian Beast


ヴィー
V.E


レミィ
Lemmy


ジェイド
Jade


ティエ
Tier


ミューノ
Murno


this is how I see it on net.
but ''problem" is how I see it on pc


: Re: Making text editor.
: Luna_blade July 19, 2014, 07:43:19 AM
I suppose there are some problems with my pc.

this is how I see it on net.
but ''problem" is how I see it on pc
You're lucking out that I can help you with that, since I have word 2003 and Japanese character DO work in there.
I've looked around and you should probably install or Japanese support for your windows (not advised, I've tried it, but XP lacks the right updates or you're saddled up with a computer that can only show and type japanese.)
Or the better option, install a pack for your word that supports japanese.

So what I've got here that you can try:
http://www.microsoft.com/office/orkarchive/2003ddl.htm (http://www.microsoft.com/office/orkarchive/2003ddl.htm)
(http://s18.postimg.org/8604ke4ft/For_Satu.png)
You must take the lowest (Resource Kit) and try if that works.


: Re: Making text editor.
: toastyfishsticks July 19, 2014, 06:36:59 PM
Hello *waves* I'm new here and I'd be willing to help out with whatever I can ;;


: Re: Making text editor.
: pablitox July 19, 2014, 07:35:10 PM
Hello *waves* I'm new here and I'd be willing to help out with whatever I can ;;

Have you got any knowledge in gba asm hacking? that'd be the most useful.

If you not, you can help by editing the script I uploaded earlier.


: Re: Making text editor.
: leaf July 19, 2014, 08:39:30 PM
*glances through script*

Okay, this definitely needs some editing. I'd be glad to go through it and fix up the various grammatical errors and stuff, but I can't really help with the technical side.


: Re: Making text editor.
: pablitox July 19, 2014, 09:26:37 PM
*glances through script*

Okay, this definitely needs some editing. I'd be glad to go through it and fix up the various grammatical errors and stuff, but I can't really help with the technical side.

You don't know how grateful I am right now. No yeah, seriously.

At least that takes care of grammar mistakes and such, I don't know if adding the character speaking the current line is important, that has to do more with context I guess, but if it's important I'll gladly help in doing that.


: Re: Making text editor.
: Rolina July 19, 2014, 09:58:08 PM
If you need any testing to be done in-game, I can give it a shot.  I tend to be a completionist, so anything that gets cut off in menus or conversations I should be able to catch.


: Re: Making text editor.
: leaf July 19, 2014, 11:49:57 PM
Uh... anyone know a fix for making this read properly in wordpad? The japanese seems to shows up correctly in notepad, but it bunches all the lines together making it really hard to read. Meanwhile, wordpad seems to interpret the characters incorrectly.

edit: Nevermind. I found the problem. The files need to be saved as ANSI, not UTF-8. That means I might end up needing to resave every single one of these if they all have that problem, but it does fix the issue of it not showing correctly.

edit2: Okay, slight problem I'm running into. Since none of the lines are tagged as to who is speaking, it can be hard to tell where one block of text ends and another begins. It isn't getting in the way too much yet, but as the text gets more involved, I could see it causing some headaches. For example, in the third file, we get this lovely set:

お休みもらってここに来たんだけど
I came here on my break but

正解だったみたいね
it seems like that was the right choice

いろんな意味で
In many ways

何やら良くない事が起きそうじゃ(...)
It seems like something bad is about to happen(...)
The lack of punctuation makes it impossible to tell whether "in many ways" is supposed to be tied to the first two phrases or the last one, or if it's even a completely different speaker entirely. In this case, it means I can't go inserting punctuation yet, and will have to come back to these lines later.

Additionally, in the same file, we get this:
ここから先は乙女の秘密(heart)
From here on is a maiden's secret(heart)
It's an accurate translation, but it doesn't read well in english. I can think of multiple ways this line could be edited to read better, but it would help to know the original context to ensure the best accuracy.



: Re: Making text editor.
: pablitox July 20, 2014, 01:08:51 AM
Uh... anyone know a fix for making this read properly in wordpad? The japanese seems to shows up correctly in notepad, but it bunches all the lines together making it really hard to read. Meanwhile, wordpad seems to interpret the characters incorrectly.

edit: Nevermind. I found the problem. The files need to be saved as ANSI, not UTF-8. That means I might end up needing to resave every single one of these if they all have that problem, but it does fix the issue of it not showing correctly.

I use notepad++ for those things, I can see moonrunes just perfectly, also I can replace words in a group of files.

If you need any testing to be done in-game, I can give it a shot.  I tend to be a completionist, so anything that gets cut off in menus or conversations I should be able to catch.

Your help is greatly appreciated also :3, I will try finishing translating boss names in the game, after that I'll request that you check it to see it's accurate. Also I was  wondering about this, as the opcodes details which character portrait should be uploaded, could that info be in the script? Next to each line I mean, that could be useful after the opcodes have been identified.

I'll wait for Blackdog61 response in regards to that, if it's needed then I'll glady help you.

edit2: Okay, slight problem I'm running into. Since none of the lines are tagged as to who is speaking, it can be hard to tell where one block of text ends and another begins. It isn't getting in the way too much yet, but as the text gets more involved, I could see it causing some headaches. For example, in the third file, we get this lovely set:

お休みもらってここに来たんだけど
I came here on my break but

正解だったみたいね
it seems like that was the right choice

いろんな意味で
In many ways

何やら良くない事が起きそうじゃ(...)
It seems like something bad is about to happen(...)
The lack of punctuation makes it impossible to tell whether "in many ways" is supposed to be tied to the first two phrases or the last one, or if it's even a completely different speaker entirely. In this case, it means I can't go inserting punctuation yet, and will have to come back to these lines later.

Additionally, in the same file, we get this:
ここから先は乙女の秘密(heart)
From here on is a maiden's secret(heart)
It's an accurate translation, but it doesn't read well in english. I can think of multiple ways this line could be edited to read better, but it would help to know the original context to ensure the best accuracy.


[/quote]

Hmmm, so context will be needed for that, I should've figured it out too. You'll find this useful, its a save data from each boss battle in the main story: http://www.mediafire.com/download/a2cwut2rvq827cu/Bosses_Mainstory.7z  That way you don't necessarily have to complete the game.


: Re: Making text editor.
: leaf July 20, 2014, 03:06:42 AM
Thanks, that'll be useful.

I think it makes the most sense to work on editing while I play, rather than just going down the list of scripts without any context. It does mean having to find the right script for every major scene as I go, but... ah well. The scripts do seem to be roughly placed together, which is good, but it's still pretty disorganized.

As an aside, I *really* hope the script titles are the addresses in memory that they're supposed to be located at, because I have no idea how all of this is going to be reinserted if they aren't. There's 1052 script files, and while a lot of them seem to be one or two lines, that doesn't change the fact that all of them have to go in the right places.


: Re: Making text editor.
: pablitox July 20, 2014, 04:24:44 AM
Thanks, that'll be useful.

I think it makes the most sense to work on editing while I play, rather than just going down the list of scripts without any context. It does mean having to find the right script for every major scene as I go, but... ah well. The scripts do seem to be roughly placed together, which is good, but it's still pretty disorganized.

As an aside, I *really* hope the script titles are the addresses in memory that they're supposed to be located at, because I have no idea how all of this is going to be reinserted if they aren't. There's 1052 script files, and while a lot of them seem to be one or two lines, that doesn't change the fact that all of them have to go in the right places.

yup, the starting point is 0x017bcb2c.txt

following:
0x017bd14c.txt
0x017be5ec.txt
0x017beaa.txt
0x017bf60c.txt

Also I got a message about missing lines and such, god damn, we had to rip the files from the site as the previous owner dissapeared


: Re: Making text editor.
: leaf July 20, 2014, 12:17:28 PM
Cool. If you have a list of which scripts are grouped together, that would be really useful. If not, I'll find them eventually.

And yeah... if it's only those five files, it's missing lines. I'm not sure if the missing scene is located in a faraway location but *is* actually in there, or if it's just flat-up missing the lines.

This entire exchange is missing (happens immediately after the first battle, so it should be the scene following the 017bcb2c stuff):

Richburn:
やった!
勝ったぞ!

Vii:
強くなったねぇ(...)
アンタのハンマーから
鍛えた魂がわってきたよ (not sure on the first kanji here, since it's so small in game)
カッコよかったぞ

Richburn:
あ(...)!
ありがとう、ヴぃーねちゃん!

???:
よくやったな、(Richburn)!

Richburn:
ロブ(...)親方!!

Rob:
お前もこれで一人前だな(...)
おめでとう(...)
(Richie)(...)

Richburn:
親方(...)?

Rob:
(...)

Richburn:
親方(...)!?
おやかたあ!! (big text)

Vii:
どういうことなんだい?
ボスタフ(...)!

White text on black background:
ヴィーねえちゃん(...)
泣いてるのか?

???:
オレが見つけた時は
もう手おくれだった(...)
これを、あんたにって(...)

White text on black background:
あれは(...)
ロブ親方の(...)!

Vii:
そんな(...)
ロブが(...)
はぐれ召喚獣(...)

White text on red background:
ころされた(...)!

White text on black background:
親方あ!! (big text)

Vii:
なんだい、(Richie)?

Richburn:
あ(...)
あれ(...)?

Vii:
いつまでたっても帰ってこないと
思ったら
お気に人りの場所でお昼寝とは(...)
いい気なもんだねぇ(...)

Richburn:
やっぱ、ひるねをするには
ここに限るね(...)
じゃなくて!
あの(...)これは(...)

Vii:
どうせまた、いつもみたいに
調子のいいマンガみたいな夢
みてたんだろ?
このアタシをやっつけるとかね?

Richburn:
うっわ!? すっげぇ!
なんでわかったのさ
ヴィーねえちゃん?

(...)ってーな!
なにすんだよ!

Vii:
誰がねえちゃんだよ、ダレが!?
親方って呼べって言ってるだろ?
ヴィー親方!

...and then it finally transitions into the scene in 017bd14c.

Man, I would not have typed all that had I realized just how much was missing, but it felt weird to stop partway through. I did learn some new kanji at least, so that's a plus.

Anyway, you said you had to rip the files because the previous owner disappeared. Was that the main translator, or do you still have translators working on this? I mean, I could probably help on the translation end somewhat, but I'm not sure how useful I would be.

I would also like to inquire about "V.E." being used as the translation for ヴィー's name. Is it later stated in the game text that ヴィー actually is the acronym V.E. and thus stands for something, or was that just the closest thing to sounding the same in english? If it's the latter, I think Vii or Vee would be more appropriate, depending on your aesthetic sense.


: Re: Making text editor.
: Aent July 20, 2014, 08:14:41 PM
The scene is in 017bd14c.txt, but it appears that it's not in the exact order as it appears in the game nor the uncompressed PSI3 segments when ripped from the game. Try scrolling down to about line 585 to get the start of the conversation taking place after you fight V.E. It's probably safe to say that other parts are a bit out of order as well so you may have to do some searching.

For instance, the やった! line is right at the start of when it shows text in the PSI3 segment. I haven't investigated the opcodes yet though.
(http://oi57.tinypic.com/2ly0j84.jpg)


: Re: Making text editor.
: pablitox July 20, 2014, 08:28:13 PM
Cool. If you have a list of which scripts are grouped together, that would be really useful. If not, I'll find them eventually.

And yeah... if it's only those five files, it's missing lines. I'm not sure if the missing scene is located in a faraway location but *is* actually in there, or if it's just flat-up missing the lines.

This entire exchange is missing (happens immediately after the first battle, so it should be the scene following the 017bcb2c stuff):

Richburn:
やった!
勝ったぞ!

Vii:
強くなったねぇ(...)
アンタのハンマーから
鍛えた魂がわってきたよ (not sure on the first kanji here, since it's so small in game)
カッコよかったぞ

Richburn:
あ(...)!
ありがとう、ヴぃーねちゃん!

???:
よくやったな、(Richburn)!

Richburn:
ロブ(...)親方!!

Rob:
お前もこれで一人前だな(...)
おめでとう(...)
(Richie)(...)

Richburn:
親方(...)?

Rob:
(...)

Richburn:
親方(...)!?
おやかたあ!! (big text)

Vii:
どういうことなんだい?
ボスタフ(...)!

White text on black background:
ヴィーねえちゃん(...)
泣いてるのか?

???:
オレが見つけた時は
もう手おくれだった(...)
これを、あんたにって(...)

White text on black background:
あれは(...)
ロブ親方の(...)!

Vii:
そんな(...)
ロブが(...)
はぐれ召喚獣(...)

White text on red background:
ころされた(...)!

White text on black background:
親方あ!! (big text)

Vii:
なんだい、(Richie)?

Richburn:
あ(...)
あれ(...)?

Vii:
いつまでたっても帰ってこないと
思ったら
お気に人りの場所でお昼寝とは(...)
いい気なもんだねぇ(...)

Richburn:
やっぱ、ひるねをするには
ここに限るね(...)
じゃなくて!
あの(...)これは(...)

Vii:
どうせまた、いつもみたいに
調子のいいマンガみたいな夢
みてたんだろ?
このアタシをやっつけるとかね?

Richburn:
うっわ!? すっげぇ!
なんでわかったのさ
ヴィーねえちゃん?

(...)ってーな!
なにすんだよ!

Vii:
誰がねえちゃんだよ、ダレが!?
親方って呼べって言ってるだろ?
ヴィー親方!

...and then it finally transitions into the scene in 017bd14c.

Man, I would not have typed all that had I realized just how much was missing, but it felt weird to stop partway through. I did learn some new kanji at least, so that's a plus.

Anyway, you said you had to rip the files because the previous owner disappeared. Was that the main translator, or do you still have translators working on this? I mean, I could probably help on the translation end somewhat, but I'm not sure how useful I would be.

I would also like to inquire about "V.E." being used as the translation for ヴィー's name. Is it later stated in the game text that ヴィー actually is the acronym V.E. and thus stands for something, or was that just the closest thing to sounding the same in english? If it's the latter, I think Vii or Vee would be more appropriate, depending on your aesthetic sense.


























That sucks, i will see what i can do, worst case qe have to look at the script again in the proje ts page. as for V.E that's the official name used at the intro scene so we just left it like that


: Re: Making text editor.
: leaf July 21, 2014, 01:54:40 AM
Okay, I see now. I'll have to ctrl+f for stuff buried in the texts next time I run into this problem. I was expecting it to be at the start of a file, not more than halfway down lol

Anyway, here's the editing I've done so far. Context provided, but long sections without any edits are omitted. OTL = original translation, RTL = revised translation.

鍛冶師とは!
Craftknight!

  武器作りの名手であると同時に 
OTL: They are craftsmen who are experts at crafting weapons and, at the same time,
RTL: An artisan expert in crafting weapons, and at the same time,

   剣の達人でもある『匠』   
OTL: masters of the sword.
RTL: a master of the sword.

Explanation: The original translation switched between treating "Craftknight" as a singular and as a plural. Since it was later referred to as "a special title," I figured sticking with singular would be best. I opted to use "artisan" over "craftsman" for a couple reasons: 1) it's gender neutral, 2) it avoids repeating the word "craft" too much, and 3) I believe it captures the meaning of 『匠』 better in this context.

   鍛え抜かれ研ぎすまされた   
It is a special title

  心と体の持ち主にのみ与えられる
OTL: only given those who possess hearts and body
RTL: given only to those whose hearts and body

      特別な称号       
OTL: that have completely forged and totally polished.
RTL: have been honed through training.

Explanation: The addition of "to" should be self-evident. The rest could be a bit more controversial. From my understanding of the original japanese, it's saying that their hearts and body have been trained and sharpened, without any reference to forging or polishing. If I'm wrong on this, please correct me.

---

本当に立派だったぞ
OTL: You're quite skilled.

Explanation: I wanted to single this line out, since while there's nothing necessarily "wrong" with it, and it doesn't interrupt the flow of text at all, it seems it could be more accurate to the original. The original text here makes no reference to skillfulness or mastery, instead saying something closer to "Truly well done" or "You've done great." I haven't changed it yet, but I thought I should bring it up.

---

ふふ(...)
Haha(...)

良いハンマーだよ
It's a great hammer.

アンタの魂がこもってる(...)
It's filled with your soul(...)

そりゃそうさ!
OTL: Exactly!
RTL: Well, of course!

そりゃそうだよ!
OTL: Well, of course!
RTL: Well, of course it is!

Explanation: On this one, I felt the flow of conversation from "It's filled with your soul..." to "Exactly!" felt... off. You wouldn't normally respond with "exactly!" when someone says something that's obvious to you; that's usually reserved for situations in which someone agrees with you, and you're surprised that they do. I think "of course!" matches the intent much better here.

---

それがアンタが鍛冶師になるための(...)
OTL: This will be your(...)
RTL: To become a Craftknight, this will be(...)

最終試験だ!
OTL: Final test in becoming a Craftknight!
RTL: Your final test!

Explanation: I think this not only preserves the suspense of the original text better, but it also will actually fit on the screen. 「最終試験だ!」 is in *large text* in game, and if you tried to fit too much on screen, it just wouldn't work.

やった!
OTL: Yay!
RTL: Alright!

勝ったぞ!
I won!

やったぁ!
OTL: Yeah!
RTL: Yay!

勝っちゃった!
I've won!

強くなったねぇ(...)
You've become strong(...)

Explanation: Okay, I'm being nitpicky, I know. Basically, given the speaking style of the characters, I feel the girl's is closer to "yay" than the boy's, and "yeah!" isn't commonly used in english in this context, at least not in my experience (usually it's used more as a "that's right!" kind of thing, whereas this is more "I did it!"). As an aside, this seems like a good chance to mention that I am firmly on the "alright" side of the "alright vs all right" debate. Something can be "alright," but that doesn't mean it's all "right."

アンタのハンマーから
I could feel you put your soul

鍛えた魂が伝わってきたよ
into your hammer.

カッコよかったぞ
You were really cool.

あ(...)!
OTL: Ah(...)!

ありがとう、ヴィーねえちゃん!
Thank you, sister!

あ(...)!
OTL: Ah(...)!

ありがとう、ヴィー姉!
Thank you, sis!

Explanation: As you can see, I haven't edited these lines yet, since I wanted to talk about it first. Anyway, I think the 「あ(...)!」 here is supposed to be a stutter, or at least that how it came across to me when I was reading it in game. In which case, it might be more accurate for that line to be translated as "Thank(...)!"

The use of "sister" and "sis" has also been bothering me, because there isn't really a good solution for it. I do appreciate that whoever originally translated this made a point of using different words in english for the different ways that the MCs refer to ヴィー, but I feel this is a case where fluency should trump accuracy, since it just doesn't read naturally like this. I haven't been making any edits to these lines yet because the last thing I want to do is mess up consistency, but it's something I'd like to come back to later. In my experience, when dealing with honorifics, it's usually best to go either completely literal (keeping the honorifics in the translation) or completely localized (trimming them anywhere that doesn't sound 100% natural in the target language). It's when they're kept somewhere in between like this that it reads awkwardly. It's a shame, too, because the multitude of different ways that people refer to each other in japanese culture can be an easy way to tell what kind of relationship they have at a glance.

よくやったな、(Ritchburn)!
You did really well, (Ritchburn)!

ロブ(...)親方!!
OTL: Master(...)Rob!!
RTL: Master(...) Master Rob!!

Explanation: This was a tough one. In japanese, it works without any repetition because 「親方」 is being used as an honorific. But in english, the equivalent would be placed before the name, which makes the same effect impossible without repetition. There wouldn't be any question had the original line been 「ロブ(...)ロブ親方!!」 instead, but alas, accuracy has to be compromised somewhere. "Master(...) Rob," "Rob(...) Master Rob," and "Master(...) Master Rob" all have their upsides and downsides. The first maintains the lack of repetition, but feels a bit informal, as if he's correcting himself by calling him just "Rob," which is definitely not the original intent. The second operates closer to how the japanese use honorifics, and allows richburn to correct himself for formality. The third tries to maintain consistency with how richburn later calls rob just 「親方」, but might be less accurate than the second. I opted for the third translation because I feel consistency is important here, but it certainly is something open for debate.

---

そんな(...)
Impossible(...)

ロブが(...)
OTL: Rob was(...)
RTL: Rob(...)

はぐれ召喚獣に(...)
A stray summon(...)

ころされた(...)!
OTL: killed him!
RTL: killed him(...)!

Explanation: In this case, trying to translate が as its own word just makes the english sound awkward. Its purpose was to mark the subject, something we can do well enough by just giving the name here. Personally, I'd have translated 「そんな(...)」 as "no way(...)," since that still shows disbelief without the implied outright rejection of "impossible(...)," but eh, I can't really complain. I left it as is for now.
I still need to finish 017bd14c, but that's what I've gone through so far.

as for V.E that's the official name used at the intro scene so we just left it like that
Ah, okay then. I just haven't gotten to that part yet, I guess.


: Re: Making text editor.
: Fox July 21, 2014, 02:47:52 AM
Awesome work on the transations, leaf.

and "yeah!" isn't commonly used in english in this context, at least not in my experience (usually it's used more as a "that's right!" kind of thing, whereas this is more "I did it!").
...Somehow, this had me thinking of that sound effect Mario says in Mario Kart (N64) ... "Yeah! Hahaha!"  I believe it was... (Hopefully I remembered it correctly. I also think Toad might have said "Yeah!" with laughter as well?) but yeah... "Yay!" probably works better. (And is more obvious.)

Edit: For those who don't remember, check out the sound clips:  http://themushroomkingdom.net/media/mk64/wav


: Re: Making text editor.
: leaf July 21, 2014, 03:26:21 AM
Uh... mk64 probably isn't the best example, considering most of the voices we hear in the US release are actually the same as the JP one. Only luigi, peach, wario, and toad got new voices in the english version (https://www.youtube.com/watch?v=-lJjWcmZoag). Also, the "yeah!" line you're thinking of (http://youtu.be/zwCwzyTv_xE?t=49s) was originally this engrish (http://youtu.be/0AjyaahP3Mc?t=5m7s), and they just kept the same script.


: Re: Making text editor.
: Fox July 21, 2014, 03:53:51 AM
Okay...

I guess there are not many good examples... There's a "Yeah" in the Pokemon theme song, but it doesn't imply winning at anything... ... there's also a yeah in f-yeah.... but I'd rather not use that one as an example... hm...

---

Perhaps  I can use this definition? Heheh...

http://dictionary.reference.com/browse/yes

interjection
7. (used as a strong expression of joy, pleasure, or approval.)

And "yeah" is an informal substitute for "yes."


: Re: Making text editor.
: leaf July 21, 2014, 04:16:04 AM
...I get the feeling you're just trying to be contrary at this point. Let's not derail the topic over this.


: Re: Making text editor.
: Fox July 21, 2014, 04:19:57 AM
I was merely saying that I thought the "Yeah!" in the dialogue was probably a valid interjection... But I'm not saying that we should keep it, since I already stated "Yay!" would likely be better due to it being more obvious.

@derailment... Okay.

[/topic]


: Re: Making text editor.
: BlackDog61 July 22, 2014, 09:47:31 PM
Is there something else that should be done with the script? I was thinking about this, as the opcodes details which character portrait should be uploaded, could that info be in the script? Next to each line I mean, that could be useful after the opcodes have been identified.

Hey guys,

I cannot answer this. The person who takes up the technical work on this, starting with either re-dumping the script with a new tool or with an update to be compatible with Richburn's tools, is the person to decide after some probing around.
I'm not yet clear on who'll be able to do this, though. Would it be you, Saturos?

I think it makes the most sense to work on editing while I play, rather than just going down the list of scripts without any context. It does mean having to find the right script for every major scene as I go, but... ah well. The scripts do seem to be roughly placed together, which is good, but it's still pretty disorganized.

As an aside, I *really* hope the script titles are the addresses in memory that they're supposed to be located at, because I have no idea how all of this is going to be reinserted if they aren't. There's 1052 script files, and while a lot of them seem to be one or two lines, that doesn't change the fact that all of them have to go in the right places.
I'm not sure of how this will be done in the end. I still have this feeling that manual or partially manual edits will be needed at some point, but let's wait and see.


: Re: Making text editor.
: Lord Wolfram July 23, 2014, 05:05:39 PM
Me?
I will think of it after week.
IO had so much project's in work so I refused to do a lot...
I am taking break for week as I said to think about some staff.(See topic rosario vampire)
Then I will give you answer after the week.


: Re: Making text editor.
: pablitox July 23, 2014, 08:34:13 PM
Is there something else that should be done with the script? I was thinking about this, as the opcodes details which character portrait should be uploaded, could that info be in the script? Next to each line I mean, that could be useful after the opcodes have been identified.

Hey guys,

I cannot answer this. The person who takes up the technical work on this, starting with either re-dumping the script with a new tool or with an update to be compatible with Richburn's tools, is the person to decide after some probing around.
I'm not yet clear on who'll be able to do this, though. Would it be you, Saturos?

I think it makes the most sense to work on editing while I play, rather than just going down the list of scripts without any context. It does mean having to find the right script for every major scene as I go, but... ah well. The scripts do seem to be roughly placed together, which is good, but it's still pretty disorganized.

As an aside, I *really* hope the script titles are the addresses in memory that they're supposed to be located at, because I have no idea how all of this is going to be reinserted if they aren't. There's 1052 script files, and while a lot of them seem to be one or two lines, that doesn't change the fact that all of them have to go in the right places.
I'm not sure of how this will be done in the end. I still have this feeling that manual or partially manual edits will be needed at some point, but let's wait and see.

So we'll have to wait until the script is dumped, makes sense. Is there anything I can help with? I thought fox could do this, but if they need any help, just ask, I don't know much about hacking, but I'll see what I can do. Aent seems to have a bit of knowledge about it too!

The scene is in 017bd14c.txt, but it appears that it's not in the exact order as it appears in the game nor the uncompressed PSI3 segments when ripped from the game. Try scrolling down to about line 585 to get the start of the conversation taking place after you fight V.E. It's probably safe to say that other parts are a bit out of order as well so you may have to do some searching.

For instance, the やった! line is right at the start of when it shows text in the PSI3 segment. I haven't investigated the opcodes yet though.
(http://oi57.tinypic.com/2ly0j84.jpg)

Hmm, I really thought they were ordered, I hope this doesn't makes things too complex. About the opcodes, we got a lot of info about them, so if you want I can share it, It applies to the first of the swordcraft story series, but I guess some of the opcodes could be used for the third one (the second one qualifies too, I guess)

To leaf: wise words from our wise translator:

FYI, tell Leaf to look up what 鍛え even means. 研ぎ too. Considering one of the character's motto seems to be 'before you forge a weapon, you must forge yourself,' yeah, taking the more literal route is totes justified, yeah. Mm, there are some legit translation errors that I spotted when going through the script before deleting it, but eh. To be honest, the 'stray summon killed rob' line is actually more like 'rob was killed by a stray summon,' but passive voice isn't any fun.


About the missing bits of translastion, can you point out where you find them? i'm looking for them but every file is complete for me.


: Re: Making text editor.
: leaf July 24, 2014, 12:45:51 AM
FYI, tell Leaf to look up what 鍛え even means. 研ぎ too. Considering one of the character's motto seems to be 'before you forge a weapon, you must forge yourself,' yeah, taking the more literal route is totes justified, yeah. Mm, there are some legit translation errors that I spotted when going through the script before deleting it, but eh. To be honest, the 'stray summon killed rob' line is actually more like 'rob was killed by a stray summon,' but passive voice isn't any fun.
Ah, I see. I didn't know 鍛え could mean forging. That decision makes more sense now. I actually had to look up 研ぎ before, but the only definition that I was able to find then was sharpening. I guess that's why I'm doing editing rather than the main translation work, heh.

Anyway, here's the re-edited line with 100% more forging and polishing:

   鍛え抜かれ研ぎすまされた   
It is a special title

  心と体の持ち主にのみ与えられる
OTL: only given those who possess hearts and body
RTL: given only to those whose hearts and body

      特別な称号       
OTL: that have completely forged and totally polished.
RTL: have been completely forged and totally polished.

---

As for the stray summon line, its most literal form would be "Rob was... by a stray summon... killed...!" Which obviously sounds terrible in english, but the fact they broke it up into three lines rather than presenting it all at once means that delaying the verb was important to the original script. I think it makes the most sense, presentation-wise, to keep it as active voice. In game it would read as <white text on black background> "a stray summon..." <white text on red background> "killed him...!" You can't create the same effect using passive voice.


: Re: Making text editor.
: Rolina July 24, 2014, 09:50:55 AM
Nice cleanups.  With stuff like that, I think you'd make a great proofreader/editor. ^-^


: Re: Making text editor.
: Aent July 25, 2014, 04:09:27 AM
Hmm, I really thought they were ordered, I hope this doesn't makes things too complex. About the opcodes, we got a lot of info about them, so if you want I can share it, It applies to the first of the swordcraft story series, but I guess some of the opcodes could be used for the third one (the second one qualifies too, I guess)

Nah, as long as they're mostly/all there then hopefully we can rig up a find/replace script when the time comes. As for the opcodes, if the ones you're speaking of were included in sncsm3-master then I have them. If you have others, by all means, do share. =p


: Re: Making text editor.
: pablitox July 25, 2014, 09:48:06 PM
Hmm, I really thought they were ordered, I hope this doesn't makes things too complex. About the opcodes, we got a lot of info about them, so if you want I can share it, It applies to the first of the swordcraft story series, but I guess some of the opcodes could be used for the third one (the second one qualifies too, I guess)

Nah, as long as they're mostly/all there then hopefully we can rig up a find/replace script when the time comes. As for the opcodes, if the ones you're speaking of were included in sncsm3-master then I have them. If you have others, by all means, do share. =p

Honestly it was more like, info in how to get them, I hope it's useful. Just a question, could you do a redump? that'd be useful as the opcodes are there, and we need the script to translate it again. This is the info about the opcodes in the first one of the series (swordcraft story)


Well, I send you a file and its conversion table, is a bit sketchy, but it serves to visualize correctly. I imagine you know how to use an editor, but if not CrystalTile will be useful:

https://www.mediafire.com/?d48lx9m9w7qi19r

The PSI3 files that i sent you have some pointers in and control codes that allow the game to put a dialog or another to play with one character or another, but is incomplete.

Like many games, the dialogues have some pointers that tell the game where to read, obviously by modifying the lengths of the original text,they don't point where they should and so the game is broken or runs showing strange characters.The way the game locates the pointers is using markers. These files are like a jukebox, the game begins reading, and things appear on the screen and at some pointit has to read the text, that is the role of markers:

Search:
Code:
02 00 40 00 01 00 00
,which are found in this file in x94, x784 and X314.

In front of each of them is the corresponding pointer (reverse order):

Code:

Of x00000094 is x00B6
Of x00000314 is x0356
Of x00000784 is x082E


These pointers lead to the control codes that are associated with no more than a sum with x0C:

Code:

In x00B6 + xC = x00C2 is the control code x0300DC00
In xC = x0356 + x0362 is the control code x0300B603
In x082E + xC = x083A is the control code x0300D808


These control codes are responsible for giving the appropriate breaks dialogues, just turn them over and sum them xF:

XXYY x0300 -> + xC xYYXX leads to the same 0300 XXYY

I'll catch you the first one:

x0300 DC00 -> x00DC + xC = x00E8.
In x00E8 is back: x0300DC00, the control code.

Check with the other two to make sure you got it. These markers serve the game to skip the dialogue for the proper character of the two that we can choose.

these are CUE Tools

http://www.mediafire.com/?k9nw2nw02fq029w

as said, you can ask blackdog61 at romhacking as he does have a lot of info. Either way you can also turn to CUE or wastor to help

I think the same could apply to the second on, swordcraft story 2


: Re: Making text editor.
: Luna_blade July 27, 2014, 02:25:38 PM
So saturos/lord wolfram, can you see Japanese in Word now?
Or is it unnecessary?


: Re: Making text editor.
: Lord Wolfram July 27, 2014, 02:34:15 PM
So saturos/lord wolfram, can you see Japanese in Word now?
Or is it unnecessary?
Well at first welcome back!
@Lord Wolfram Why I changed name is because Two reasons first
Because I had to make my own custom avatar. Made by myself
And
My third name will be Wolfram. Interesting isn't it?

That is if you wan't to know about it something.

@Japanese in Word
I haven't done anything because I have OpenOffice.org 3.3 on my computer.
So that look like it


: Re: Making text editor.
: Luna_blade July 27, 2014, 03:04:24 PM
Well at first welcome back!
@Lord Wolfram Why I changed name is because Two reasons first
Because I had to make my own custom avatar. Made by myself
And
My third name will be Wolfram. Interesting isn't it?
Yeah I've read why you done it earlier. It was also kind of confusing sometimes. Anyway, nice avatar!
@Japanese in Word
I haven't done anything because I have OpenOffice.org 3.3 on my computer.
So that look like it
OpenOffice? Lol. NOW I understand why you can't see Japanese. OpenOffice is just Word with less functions, but free.

Do you have Word 2003 or any version? Because you might be able to read Japanese with it.


: Re: Making text editor.
: pablitox July 29, 2014, 04:21:36 AM
Well at first welcome back!
@Lord Wolfram Why I changed name is because Two reasons first
Because I had to make my own custom avatar. Made by myself
And
My third name will be Wolfram. Interesting isn't it?
Yeah I've read why you done it earlier. It was also kind of confusing sometimes. Anyway, nice avatar!
@Japanese in Word
I haven't done anything because I have OpenOffice.org 3.3 on my computer.
So that look like it
OpenOffice? Lol. NOW I understand why you can't see Japanese. OpenOffice is just Word with less functions, but free.

Do you have Word 2003 or any version? Because you might be able to read Japanese with it.


Weird, at least it works, though I had more success with notepad++, it's a very strong program.
In unrelated news, no$gba 2.7c freeware debugger announced.


: Re: Making text editor.
: Lord Wolfram July 31, 2014, 06:58:33 PM
Alright team we right now are waiting for Leaf to Fix our script.
While messing around with fire emblem editor I finally understand what Pablitox meant.
We must find scripts take them out then replace with translated ones and here you go our project is done.
sounds simple but it is not because as we know that we must double space.Make good tools.
I was about to start make ones in java. and use them.
Oh one thing is there a way to increase free space using hex?
and of curse we have new member of translation project: Batsquid.


: Re: Making text editor.
: pablitox July 31, 2014, 08:06:59 PM
Alright team we right now are waiting for Leaf to Fix our script.
While messing around with fire emblem editor I finally understand what Pablitox meant.
We must find scripts take them out then replace with translated ones and here you go our project is done.
sounds simple but it is not because as we know that we must double space.Make good tools.
I was about to start make ones in java. and use them.
Oh one thing is there a way to increase free space using hex?
and of curse we have new member of translation project: Batsquid.


a new translation member? awesome!. though I'm inclined to ask if they have good knowledge of the summon night swordcraft story series.                                                                  

It relies on various things from older games so the bettet the knowledge couls be awesome.

as far as things goes i think that aent taking care of the hacking part as he must be decyphering the missing opcodes. that is an useful part. as you say now we need to find a way to make the script fit.


: Re: Making text editor.
: Aent August 01, 2014, 05:04:56 AM
as far as things goes i think that aent taking care of the hacking part as he must be decyphering the missing opcodes. that is an useful part. as you say now we need to find a way to make the script fit.

I've been working on it on and off in my spare time, but I am pretty new to all this. That tutorial you posted was quite helpful so my thanks to whomever wrote it and to you for posting it.

Ideally I want to break the limit of the current text blocks(PSI3 segments which is what is shown in my last post) so we can have a fuller translation. As it is now, each text block links to the others either by an index number to an array of pointers or a pointer of it's hex location. Still investigating that. If for instance, you take one segment, say the mine entrance right after the intro, and replace it with another. As soon as you leave after fighting VE it will warp you to the new location instead of the mine. In my case it was from there to the shop in the first town. If I walked out of the shop then, it took me outside into the town as it normally would. This tells me that the locations that they lead to aren't linked to the current text blocks location in the game file. If we were to pull out all the text blocks, put our full translation in and put them back in, they would run out of room. Sort of like putting 4 rectangles where 4 squares are supposed to fit. The way to fix this is put them in as normal and once we run out of room for the next one to fit, move it to free space and adjust the pointers as needed for all the text blocks. With luck it will be some sort of array, but I'm not sure honestly. I have located a value that if changed links to various locations and battles but more investigating is needed. As for the max rom space issue of 32mb, I'm not sure how close we'll come to that. I forget how much free space was said in the other thread. Something like 280kb? I'll have more on that situation soon I hope.

Download here (https://www.mediafire.com/?rr6djrlhhhn7374).
I'm gonna include the program I use to dump the text blocks as well as a .bat file to use with DSDecmp (https://code.google.com/p/dsdecmp/downloads/list). Just unzip to a folder with "sn3.gba" in it.(without the quotes). Doubleclick dumptexts.exe and it will dump the encrypted texts to the folder "output". Their names will be in the form of "decimal_hex". Then, with DSDecmp.exe in the original folder, doubleclick dsdecmp_folder.bat and it should make a folder called output_dec. Those will be the decompressed ones as shown in my last post. They include the original script, events, etc, albeit in a fairly unreadable form except for the actual script. For those of you who wish to see the code of dumptexts.exe, it's in src. You'll need GCC (https://gcc.gnu.org/) to compile most likely. I plan to include any programs/tools I create and their source as I don't want my progress for better or worse to be lost if something beyond my control should happen, lol. Beware I have some experience with C, but am certainly no expert and use google quite often.

If any questions/comments/tips/criticisms, etc I'll try and be more active here to see them. I can't promise I'm the answer to what you've been looking for, but I'm willing to try and help, lol. My apologies for the late response as well as the text-wall.


p.s. Offsets.txt will be created as well. It's just a list of all the starting locations of the compressed segments in hex. Also, not all the txt files will be story dialogue. Some are just empty rooms or lead to battles and such. Also, some might be two different parts of one location. For instance, in the first game I had one for the intro dialogue and one for map items. ("...may..." cutscene for the dialogue and in a separate text for picking up the entrance ticket as well as the placement and teleport location of the stairs)


: Re: Making text editor.
: pablitox August 01, 2014, 03:30:09 PM
as far as things goes i think that aent taking care of the hacking part as he must be decyphering the missing opcodes. that is an useful part. as you say now we need to find a way to make the script fit.

I've been working on it on and off in my spare time, but I am pretty new to all this. That tutorial you posted was quite helpful so my thanks to whomever wrote it and to you for posting it.

Ideally I want to break the limit of the current text blocks(PSI3 segments which is what is shown in my last post) so we can have a fuller translation. As it is now, each text block links to the others either by an index number to an array of pointers or a pointer of it's hex location. Still investigating that. If for instance, you take one segment, say the mine entrance right after the intro, and replace it with another. As soon as you leave after fighting VE it will warp you to the new location instead of the mine. In my case it was from there to the shop in the first town. If I walked out of the shop then, it took me outside into the town as it normally would. This tells me that the locations that they lead to aren't linked to the current text blocks location in the game file. If we were to pull out all the text blocks, put our full translation in and put them back in, they would run out of room. Sort of like putting 4 rectangles where 4 squares are supposed to fit. The way to fix this is put them in as normal and once we run out of room for the next one to fit, move it to free space and adjust the pointers as needed for all the text blocks. With luck it will be some sort of array, but I'm not sure honestly. I have located a value that if changed links to various locations and battles but more investigating is needed. As for the max rom space issue of 32mb, I'm not sure how close we'll come to that. I forget how much free space was said in the other thread. Something like 280kb? I'll have more on that situation soon I hope.

Download here (https://www.mediafire.com/?rr6djrlhhhn7374).
I'm gonna include the program I use to dump the text blocks as well as a .bat file to use with DSDecmp (https://code.google.com/p/dsdecmp/downloads/list). Just unzip to a folder with "sn3.gba" in it.(without the quotes). Doubleclick dumptexts.exe and it will dump the encrypted texts to the folder "output". Their names will be in the form of "decimal_hex". Then, with DSDecmp.exe in the original folder, doubleclick dsdecmp_folder.bat and it should make a folder called output_dec. Those will be the decompressed ones as shown in my last post. They include the original script, events, etc, albeit in a fairly unreadable form except for the actual script. For those of you who wish to see the code of dumptexts.exe, it's in src. You'll need GCC (https://gcc.gnu.org/) to compile most likely. I plan to include any programs/tools I create and their source as I don't want my progress for better or worse to be lost if something beyond my control should happen, lol. Beware I have some experience with C, but am certainly no expert and use google quite often.

If any questions/comments/tips/criticisms, etc I'll try and be more active here to see them. I can't promise I'm the answer to what you've been looking for, but I'm willing to try and help, lol. My apologies for the late response as well as the text-wall.


p.s. Offsets.txt will be created as well. It's just a list of all the starting locations of the compressed segments in hex. Also, not all the txt files will be story dialogue. Some are just empty rooms or lead to battles and such. Also, some might be two different parts of one location. For instance, in the first game I had one for the intro dialogue and one for map items. ("...may..." cutscene for the dialogue and in a separate text for picking up the entrance ticket as well as the placement and teleport location of the stairs)


That was certainly helpful! I can't thank you enough aent! this looks good.

What we should do with the translated script? it belongs to other dump, so i guess we should need to export it to yours and translate the missing bits of text, is that right?


: Re: Making text editor.
: Lord Wolfram August 01, 2014, 04:48:34 PM
Hold a sec!
Leaf is doing some work with scripts
so we must wait for him to show up.
And then we put scripts little by little in forum so we can work easier on project.


: Re: Making text editor.
: pablitox August 01, 2014, 05:17:09 PM
Hold a sec!
Leaf is doing some work with scripts
so we must wait for him to show up.
And then we put scripts little by little in forum so we can work easier on project.


yup, you're right.


: Re: Making text editor.
: BlackDog61 August 01, 2014, 06:22:43 PM
Hi!
So many things happening - good job, Aent!
I was under the impression that the PSI3 marker might have a length shortly after it. Doesn't it?
(If it did, then that would explain why there's often a lot of garbage after the dumped text. ;)

You're probably already planning everything, so just a humble suggestion: how about starting to encapsulate non-text stuff in XML-like tags? In the end, that's probably how you'll want to isolate opcodes from the rest of the text.

I don't think Aent needs to wait for anyone else's return to keep parsing the opcodes. Or did I miss anything?

EDIT: I assume you've already looked into the file called "Dialogue enconding.txt"? It tells about some opcodes that were parsed by previous project members. Here is a quote:
Here is a (likely incomplete) list, from my own observations:

    02 00 xx xx - conditional jump, for example to Rif's text.

    03 00 xx xx - jump, for example to merge back from story arc.

    07 00 xx xx - Function call, for example to set portaits, etc
                  Returns from function with 08.

    13 03 xx xx and
    14 03 xx xx - jump when the menu item is selected.


Hopefully that's useful. ;)


: Re: Making text editor.
: pablitox August 01, 2014, 09:39:09 PM
Hi!
So many things happening - good job, Aent!
I was under the impression that the PSI3 marker might have a length shortly after it. Doesn't it?
(If it did, then that would explain why there's often a lot of garbage after the dumped text. ;)

You're probably already planning everything, so just a humble suggestion: how about starting to encapsulate non-text stuff in XML-like tags? In the end, that's probably how you'll want to isolate opcodes from the rest of the text.

I don't think Aent needs to wait for anyone else's return to keep parsing the opcodes. Or did I miss anything?

EDIT: I assume you've already looked into the file called "Dialogue enconding.txt"? It tells about some opcodes that were parsed by previous project members. Here is a quote:
Here is a (likely incomplete) list, from my own observations:

    02 00 xx xx - conditional jump, for example to Rif's text.

    03 00 xx xx - jump, for example to merge back from story arc.

    07 00 xx xx - Function call, for example to set portaits, etc
                  Returns from function with 08.

    13 03 xx xx and
    14 03 xx xx - jump when the menu item is selected.


Hopefully that's useful. ;)

Oh yeah, this is the .txt

https://github.com/wangds/sncsm3/blob/master/resources/Dialogue%20Encoding.txt


: Re: Making text editor.
: Aent August 05, 2014, 11:55:00 PM
I was under the impression that the PSI3 marker might have a length shortly after it. Doesn't it?
Yep, the 2 bytes right after are the length of the uncompressed text. The bytes between the compressed PSI3 segments are all 0x00's and are there for padding to align to 0xC for the next PSI3 segments.
You're probably already planning everything, so just a humble suggestion: how about starting to encapsulate non-text stuff in XML-like tags? In the end, that's probably how you'll want to isolate opcodes from the rest of the text.
I actually planned on dumping only the script and it's offsets for the translation part, but got caught up in other work and haven't got back to it just yet. The PSI3 segment dumps were more just to show that some progress was being made and I was still working on it. =p I'll try and come up with something more suitable when we're a bit further along. The guys working on the text should keep up with however they're doing it and when it comes time to adapt it to a standardized way for it to insert the text, I'll do it.
EDIT: I assume you've already looked into the file called "Dialogue enconding.txt"? It tells about some opcodes that were parsed by previous project members.
Yep, and it's been a good help. There's still quite a few I need to check out mostly dealing with stuff that's not in the first two cutscenes, lol. In particular the various guardian beasts. I'll get back to them soon.


The main reason I wanted to post today is I solved one of the major hurdles we were facing with the locations of the pointers to the PSI3 segments. As I mentioned before, we were limited to the sizes of the compressed PSI3 segments because if they got even 1 byte bigger, they would overlap others causing a crash. My other post explains it all a bit better, but the good news is I'm able to move any PSI3 segment to a new location, including the end of the data(282kb free space roughly). So, when we put all the translated ones in, I'll be able to re-point to their new locations; whether it be adjusted down to accommodate newly added text or at the end of the file.

I'll write a small explanation on how it's done exactly sometime soon. I just need to test it a bit more.


: Re: Making text editor.
: Aent August 05, 2014, 11:56:45 PM
Doh, hit quote instead of modify. lol. Relevant post is the one before this.

Would a kind moderator please delete this post?  :sad:


: Re: Making text editor.
: pablitox August 06, 2014, 03:21:28 AM
I was under the impression that the PSI3 marker might have a length shortly after it. Doesn't it?
Yep, the 2 bytes right after are the length of the uncompressed text. The bytes between the compressed PSI3 segments are all 0x00's and are there for padding to align to 0xC for the next PSI3 segments.
You're probably already planning everything, so just a humble suggestion: how about starting to encapsulate non-text stuff in XML-like tags? In the end, that's probably how you'll want to isolate opcodes from the rest of the text.
I actually planned on dumping only the script and it's offsets for the translation part, but got caught up in other work and haven't got back to it just yet. The PSI3 segment dumps were more just to show that some progress was being made and I was still working on it. =p I'll try and come up with something more suitable when we're a bit further along. The guys working on the text should keep up with however they're doing it and when it comes time to adapt it to a standardized way for it to insert the text, I'll do it.
EDIT: I assume you've already looked into the file called "Dialogue enconding.txt"? It tells about some opcodes that were parsed by previous project members.
Yep, and it's been a good help. There's still quite a few I need to check out mostly dealing with stuff that's not in the first two cutscenes, lol. In particular the various guardian beasts. I'll get back to them soon.


The main reason I wanted to post today is I solved one of the major hurdles we were facing with the locations of the pointers to the PSI3 segments. As I mentioned before, we were limited to the sizes of the compressed PSI3 segments because if they got even 1 byte bigger, they would overlap others causing a crash. My other post explains it all a bit better, but the good news is I'm able to move any PSI3 segment to a new location, including the end of the data(282kb free space roughly). So, when we put all the translated ones in, I'll be able to re-point to their new locations; whether it be adjusted down to accommodate newly added text or at the end of the file.

I'll write a small explanation on how it's done exactly sometime soon. I just need to test it a bit more.

That's a pretty good job Aent, please keep it up! Also, I saw that the english script is (almost) twice the length of the japanese one, will those 282 kb be enough for the script? Or we'll have to solve it any other way? I'm asking out of curiosity.

About the offsets, a spanish user by the name of CUE said that they could be of 7 bits, and they could be between 00 and 1F. What happens once we find them? should be test them to see where they lead to?


: Re: Making text editor.
: Aent August 06, 2014, 08:41:34 AM
That's a pretty good job Aent, please keep it up! Also, I saw that the english script is (almost) twice the length of the japanese one, will those 282 kb be enough for the script? Or we'll have to solve it any other way? I'm asking out of curiosity.
That's a bit tough to answer right now. With compression, adding in opcodes for linebreaks, etc, it can vary greatly. I'm going to switch it to reading 1 byte instead of 2 for each character. I plan on doing that as my next priority. I ran a few numbers and we should be alright, but I won't say anything for certain atm.
About the offsets, a spanish user by the name of CUE said that they could be of 7 bits, and they could be between 00 and 1F. What happens once we find them? should be test them to see where they lead to?
Once all of them are found I'm going to redump the script with hex offsets to exactly where the opcodes are so if they need changed, I can change them as we go. For instance if we add 10 more characters to a line, it will count this and adjust all the locations of text and such accordingly. From there, I'll probably insert a bunch of random script just to test and make sure everything's working OK and that I didn't miss any opcodes. Then if everything seems alright, the proper script gets inserted next.

My current plans for myself:
1) Get 1 byte character reading working.
2) Finish opcode duty
3) Work on a proper dumper with hex offsets and manually edit in some script
3) Make an automated inserter using the hex offsets.
4) Insert random long script into game to test size and missing opcodes
5) Work on a variable width font? This would be a bit of a learning experience.
6) Adjust proper script to work with the inserter

There is of course more to it. I haven't looked into the graphics editing and "nameplates" yet. My main focus atm is just getting a working script into the game.


: Re: Making text editor.
: pablitox August 06, 2014, 03:11:14 PM
That sounds like a solid plan of action ! I completely agre with it and yeah, the graphics part will be done after that.


: Re: Making text editor.
: leaf August 07, 2014, 05:35:29 AM
Hello guys. I'm back from my trip now, so I can get back to work on editing. Unfortunately, I did not get a whole lot done while I was away, so I don't have anything new for you guys yet.

Can I ask what kind of timetable you guys are looking at? If you guys are trying to get this done quickly, I can speed up my editing by only going through the original japanese when the context is uncertain. What I've been doing is reading the original japanese, reading the provided translation, and then making edits as necessary. It's been a nice way to work on my japanese, but I'll admit it's horrendously slow compared to normal proofreading.


: Re: Making text editor.
: pablitox August 07, 2014, 05:12:17 PM
Hello guys. I'm back from my trip now, so I can get back to work on editing. Unfortunately, I did not get a whole lot done while I was away, so I don't have anything new for you guys yet.

Can I ask what kind of timetable you guys are looking at? If you guys are trying to get this done quickly, I can speed up my editing by only going through the original japanese when the context is uncertain. What I've been doing is reading the original japanese, reading the provided translation, and then making edits as necessary. It's been a nice way to work on my japanese, but I'll admit it's horrendously slow compared to normal proofreading.

Yo leaf! Long time no see !

About the timetable, the thing is we dont have one, i will need to ask around to be sure, but the only thing we have is a google sheet with the common terms used in the translation.

Though you can use this site to get a good day by day reference of the game (up until 8 day, there're 12 if I remember correctly)
http://swordcraftfuntimes.blogspot.com.ar/?m=1

Edit: I don't know if it's a good idea or not but if multiple proofreaders will work on this, could it be a good idea to upload the files to github? that way all the proofreaders can see the changes.

I was thinking of changing this phrase 疲れが取れた! to You feel refreshed! as it's the one used in swordcraft story 2, I say it because there aresome lines were it's translated differently, meanwhile I'll locate the phrases and when it's done I'll write them here.



: Re: Making text editor.
: pablitox August 15, 2014, 03:35:37 PM
Alright things are ongoing that's good to hear.
And Fox can be right we must upgrade Ritchburn's tools.
Or maybe something like I trough Text editor.


I doubt that will be necessary, as ritchburn tools are kinda inneficient, or so I was told. Aent in on the job of getting opcoded and reducing character size, so I bet it will be a long task, as there must be a lot of opcodes between 00 and 1F. I believe whenthey have made good progress they will post here.


: Re: Making text editor.
: Lord Wolfram August 15, 2014, 04:13:57 PM
You know how old this post is....
anyway when the scripts will be rewritten by leaf than If it will be necessarily we should change
 [it is to it's] and so go on...


: Re: Making text editor.
: pablitox August 15, 2014, 06:45:56 PM
You know how old this post is....
anyway when the scripts will be rewritten by leaf than If it will be necessarily we should change
 [it is to it's] and so go on...

I do? just wanted to reply your post.

Anyway yeah, leaf is already taking care of that, which is good. I played the second game to make use of system dialogues and put them on the third game.


: Re: Making text editor.
: Aent August 20, 2014, 06:17:41 PM
My current plans for myself:
1) Get 1 byte character reading working.
2) Finish opcode duty
3) Work on a proper dumper with hex offsets and manually edit in some script
3) Make an automated inserter using the hex offsets.
4) Insert random long script into game to test size and missing opcodes
5) Work on a variable width font? This would be a bit of a learning experience.
6) Adjust proper script to work with the inserter

1) I've narrowed down this quite a bit. I'm literally learning a bit of ASM as I go, so has been quite a fun experience for me.
2) Did most of the important ones such as dialogue, female text, some jumps, etc.
3) I have a dumper that dumps the dialogue of the compressed texts. Think of something like we have already, except it has the offsets in it. This way I know exactly where to put the texts and the new locations once we make the strings longer.
4-6) Still working on.

For the most part, my biggest challenge is finding time throughout the week, lol. I've done most of this work on the weekend. Heopfully I'll have something a bit more flashy to show, like screenshots or something next time. =p


: Re: Making text editor.
: pablitox August 20, 2014, 07:33:02 PM
My current plans for myself:
1) Get 1 byte character reading working.
2) Finish opcode duty
3) Work on a proper dumper with hex offsets and manually edit in some script
3) Make an automated inserter using the hex offsets.
4) Insert random long script into game to test size and missing opcodes
5) Work on a variable width font? This would be a bit of a learning experience.
6) Adjust proper script to work with the inserter

1) I've narrowed down this quite a bit. I'm literally learning a bit of ASM as I go, so has been quite a fun experience for me.
2) Did most of the important ones such as dialogue, female text, some jumps, etc.
3) I have a dumper that dumps the dialogue of the compressed texts. Think of something like we have already, except it has the offsets in it. This way I know exactly where to put the texts and the new locations once we make the strings longer.
4-6) Still working on.

For the most part, my biggest challenge is finding time throughout the week, lol. I've done most of this work on the weekend. Heopfully I'll have something a bit more flashy to show, like screenshots or something next time. =p

That's a lot of good progress! Thanks Aent!

I do know about being busy too, as I started Uni again, so not gonna connected as much as I used to be. Anyway that's a lot of progress! Looking forward to some screenshots too!

Oh yeah, I wanted to ask you a question regarding system messages. I used Ritchburn tools to translate some missing system messages, like this:

In Main.c:

patch_str(0x000baf84,  16, "Buy how many?");
patch_str(0x000baf98,  16, "Sell how many?");
patch_str(0x000bafac,  18, "Create how many?");
patch_str(0x000bafbe,  16, "Use how many?");
patch_str(0x000bafd4,  22, "Is it okay to sell?");
patch_str(0x000bafea,  22, "Equip it right away?");


Here's a screenshot:
(http://imagizer.imageshack.us/v2/150x100q90/911/7LuBRu.png) (http://imageshack.com/f/pb7LuBRup)
(http://imagizer.imageshack.us/v2/150x100q90/539/OrLZvj.png) (http://imageshack.com/f/ezOrLZvjp)
(http://imagizer.imageshack.us/v2/150x100q90/537/dyE08t.png) (http://imageshack.com/f/exdyE08tp)
(http://imagizer.imageshack.us/v2/150x100q90/911/miH5lq.png) (http://imageshack.com/f/pbmiH5lqp)

I hope it does not get in the way of the dialogue translation.My question is, is there a method to do this that does not involve trial and error? Usually when using the wrong hex address the string overlaps with another one, but besides that no other bugs.

Thanks for the good job!


: Re: Making text editor.
: Lord Wolfram August 20, 2014, 07:58:59 PM
My current plans for myself:
1) Get 1 byte character reading working.
2) Finish opcode duty
3) Work on a proper dumper with hex offsets and manually edit in some script
3) Make an automated inserter using the hex offsets.
4) Insert random long script into game to test size and missing opcodes
5) Work on a variable width font? This would be a bit of a learning experience.
6) Adjust proper script to work with the inserter

1) I've narrowed down this quite a bit. I'm literally learning a bit of ASM as I go, so has been quite a fun experience for me.
2) Did most of the important ones such as dialogue, female text, some jumps, etc.
3) I have a dumper that dumps the dialogue of the compressed texts. Think of something like we have already, except it has the offsets in it. This way I know exactly where to put the texts and the new locations once we make the strings longer.
4-6) Still working on.

For the most part, my biggest challenge is finding time throughout the week, lol. I've done most of this work on the weekend. Heopfully I'll have something a bit more flashy to show, like screenshots or something next time. =p
magnificent! Well I am working on chronicles so i am busy too.


: Re: Making text editor.
: Aent August 21, 2014, 11:31:15 AM
That's a lot of good progress! Thanks Aent!

I do know about being busy too, as I started Uni again, so not gonna connected as much as I used to be. Anyway that's a lot of progress! Looking forward to some screenshots too!

Oh yeah, I wanted to ask you a question regarding system messages. I used Ritchburn tools to translate some missing system messages, like this:

In Main.c:

patch_str(0x000baf84,  16, "Buy how many?");
patch_str(0x000baf98,  16, "Sell how many?");
patch_str(0x000bafac,  18, "Create how many?");
patch_str(0x000bafbe,  16, "Use how many?");
patch_str(0x000bafd4,  22, "Is it okay to sell?");
patch_str(0x000bafea,  22, "Equip it right away?");


Here's a screenshot:
(http://imagizer.imageshack.us/v2/150x100q90/911/7LuBRu.png) (http://imageshack.com/f/pb7LuBRup)
(http://imagizer.imageshack.us/v2/150x100q90/539/OrLZvj.png) (http://imageshack.com/f/ezOrLZvjp)
(http://imagizer.imageshack.us/v2/150x100q90/537/dyE08t.png) (http://imageshack.com/f/exdyE08tp)
(http://imagizer.imageshack.us/v2/150x100q90/911/miH5lq.png) (http://imageshack.com/f/pbmiH5lqp)

I hope it does not get in the way of the dialogue translation.My question is, is there a method to do this that does not involve trial and error? Usually when using the wrong hex address the string overlaps with another one, but besides that no other bugs.

Thanks for the good job!

First off, nice work. =)
It looks like there might be a pointer table for it. I haven't checked too far into them yet though. For now I'd just try to get a good translation and estimate the size of it. If we need to adjust the length or the graphics later, we'll worry about it then. Sorry for the not so helpful response. e_e When we have a proper dumper/inserter it won't be so bad.

On a side note, the "PAUSE!" text is single-byte naturally, lol.


: Re: Making text editor.
: BlackDog61 August 21, 2014, 07:17:22 PM
My current plans for myself:
1) Get 1 byte character reading working.
2) Finish opcode duty
3) Work on a proper dumper with hex offsets and manually edit in some script
3) Make an automated inserter using the hex offsets.
4) Insert random long script into game to test size and missing opcodes
5) Work on a variable width font? This would be a bit of a learning experience.
6) Adjust proper script to work with the inserter

1) I've narrowed down this quite a bit. I'm literally learning a bit of ASM as I go, so has been quite a fun experience for me.
2) Did most of the important ones such as dialogue, female text, some jumps, etc.
3) I have a dumper that dumps the dialogue of the compressed texts. Think of something like we have already, except it has the offsets in it. This way I know exactly where to put the texts and the new locations once we make the strings longer.
4-6) Still working on.

For the most part, my biggest challenge is finding time throughout the week, lol. I've done most of this work on the weekend. Heopfully I'll have something a bit more flashy to show, like screenshots or something next time. =p

Hi Aent,

Congrat's on your efficient work. I love the action plan. If I was asked, I'd say you're on the right track.
Ping me on RHDN (PM or IRC) if you want to discuss VWF when the time comes, or if you hit a wall and your morale gets low.

Keep it up!!

Black


: Re: Making text editor.
: pablitox August 25, 2014, 06:01:44 AM
That's a lot of good progress! Thanks Aent!

I do know about being busy too, as I started Uni again, so not gonna connected as much as I used to be. Anyway that's a lot of progress! Looking forward to some screenshots too!

Oh yeah, I wanted to ask you a question regarding system messages. I used Ritchburn tools to translate some missing system messages, like this:

In Main.c:

patch_str(0x000baf84,  16, "Buy how many?");
patch_str(0x000baf98,  16, "Sell how many?");
patch_str(0x000bafac,  18, "Create how many?");
patch_str(0x000bafbe,  16, "Use how many?");
patch_str(0x000bafd4,  22, "Is it okay to sell?");
patch_str(0x000bafea,  22, "Equip it right away?");


Here's a screenshot:
(http://imagizer.imageshack.us/v2/150x100q90/911/7LuBRu.png) (http://imageshack.com/f/pb7LuBRup)
(http://imagizer.imageshack.us/v2/150x100q90/539/OrLZvj.png) (http://imageshack.com/f/ezOrLZvjp)
(http://imagizer.imageshack.us/v2/150x100q90/537/dyE08t.png) (http://imageshack.com/f/exdyE08tp)
(http://imagizer.imageshack.us/v2/150x100q90/911/miH5lq.png) (http://imageshack.com/f/pbmiH5lqp)

I hope it does not get in the way of the dialogue translation.My question is, is there a method to do this that does not involve trial and error? Usually when using the wrong hex address the string overlaps with another one, but besides that no other bugs.

Thanks for the good job!

First off, nice work. =)
It looks like there might be a pointer table for it. I haven't checked too far into them yet though. For now I'd just try to get a good translation and estimate the size of it. If we need to adjust the length or the graphics later, we'll worry about it then. Sorry for the not so helpful response. e_e When we have a proper dumper/inserter it won't be so bad.



It's okay, think i got the trick about how it works, so it's doing well, here's moar screenshots:

(http://imagizer.imageshack.us/v2/150x100q90/539/yqLZ6K.png) (http://imageshack.com/f/ezyqLZ6Kp)
(http://imagizer.imageshack.us/v2/150x100q90/674/lvNCKI.png) (http://imageshack.com/f/iqlvNCKIp)
(http://imagizer.imageshack.us/v2/150x100q90/539/vGgPHV.png) (http://imageshack.com/f/ezvGgPHVp)
(http://imagizer.imageshack.us/v2/150x100q90/537/zGe7Rj.png) (http://imageshack.com/f/exzGe7Rjp)
(http://imagizer.imageshack.us/v2/150x100q90/661/ZGqca5.png) (http://imageshack.com/f/idZGqca5p)

I think I kind of messed up in that yes/no, but only on that screen. Other than that, the other screens show the message well.

On a side note, the "PAUSE!" text is single-byte naturally, lol.

Oh damn, xD!

Edit: I´m done with the boss data, the system messages too, though some forge messages are missing. I will continue later when the script's already inserted.


: Re: Making text editor.
: Aent September 04, 2014, 10:11:13 AM
I'm need to go through and change a bunch of the non-dialogue messages to single byte, so your translations and offsets will come in handy very soon. =p

My main goal since my last post was getting the single byte character loading working. I'm happy to report it's working quite well. Almost too well. I'll show you what I mean:

These ones were manually edited in. The original dialogue read "みぃ~". I wanted to extend it quite a bit and use line breaks. I can also add in the player's name via 0xFE. It's not shown here as my name is the default; doubled in length, lol.
(http://oi58.tinypic.com/jsk5yu.jpg)
(http://oi61.tinypic.com/28jcdgi.jpg)
These ones weren't edited at all, so this is the single byte reading where they were previously 2 bytes per character. You'll notice the one line runs over when talking to the guy outside the cave. This is because his first message is quite long in japanese and doubled in size in english. This actually caused the game to freeze.
(http://oi57.tinypic.com/2lw2k8z.jpg)
(http://oi60.tinypic.com/2mdngjm.jpg)
For example, 0x8260 used to give us the character 'A'. Now, just 0x60 produces the same character so we save a fair amount of space for adding in the translation. Another thing to notice is the gaps between letters. This will have to be repaired with a variable width font when the time comes. That will most likely be one of the last things I do.

Ping me on RHDN (PM or IRC) if you want to discuss VWF when the time comes, or if you hit a wall and your morale gets low.

I'll certainly keep that in mind when the time comes and I appreciate the offer. =)

Aside from that, I made a patcher which allows me to patch the single byte automatically. Soon I hope to add to it all the non-compressed information similar to Ritchburn's tools, only in single byte format. It should be easy enough as there is already translations for most. After that, I need to transfer some of the font characters to be after the alpha-numeric characters.(roman numerals, greek alphabet, circled numbers, etc) The total comes up to something like 212/255 in case we need to add more. After all that comes a proper inserter so I can stop doing it manually. e_e


: Re: Making text editor.
: pablitox September 04, 2014, 06:14:01 PM
I'm need to go through and change a bunch of the non-dialogue messages to single byte, so your translations and offsets will come in handy very soon. =p

My main goal since my last post was getting the single byte character loading working. I'm happy to report it's working quite well. Almost too well. I'll show you what I mean:

These ones were manually edited in. The original dialogue read "みぃ~". I wanted to extend it quite a bit and use line breaks. I can also add in the player's name via 0xFE. It's not shown here as my name is the default; doubled in length, lol.
(http://oi58.tinypic.com/jsk5yu.jpg)
(http://oi61.tinypic.com/28jcdgi.jpg)
These ones weren't edited at all, so this is the single byte reading where they were previously 2 bytes per character. You'll notice the one line runs over when talking to the guy outside the cave. This is because his first message is quite long in japanese and doubled in size in english. This actually caused the game to freeze.
(http://oi57.tinypic.com/2lw2k8z.jpg)
(http://oi60.tinypic.com/2mdngjm.jpg)
For example, 0x8260 used to give us the character 'A'. Now, just 0x60 produces the same character so we save a fair amount of space for adding in the translation. Another thing to notice is the gaps between letters. This will have to be repaired with a variable width font when the time comes. That will most likely be one of the last things I do.

Ping me on RHDN (PM or IRC) if you want to discuss VWF when the time comes, or if you hit a wall and your morale gets low.

I'll certainly keep that in mind when the time comes and I appreciate the offer. =)

Aside from that, I made a patcher which allows me to patch the single byte automatically. Soon I hope to add to it all the non-compressed information similar to Ritchburn's tools, only in single byte format. It should be easy enough as there is already translations for most. After that, I need to transfer some of the font characters to be after the alpha-numeric characters.(roman numerals, greek alphabet, circled numbers, etc) The total comes up to something like 212/255 in case we need to add more. After all that comes a proper inserter so I can stop doing it manually. e_e


Dem screenshots... :happy:

Awesome job aent! I won't stop saying this until it's over!
The font is really good, and it will be even better with that VWF.

So, IIf I read this right, are you going to start inserting the script after finishing this? Is there something that needs to be done with that?


Cheers!

Aside from that, I made a patcher which allows me to patch the single byte automatically. Soon I hope to add to it all the non-compressed information similar to Ritchburn's tools, only in single byte format. It should be easy enough as there is already translations for most. After that, I need to transfer some of the font characters to be after the alpha-numeric characters.(roman numerals, greek alphabet, circled numbers, etc) The total comes up to something like 212/255 in case we need to add more. After all that comes a proper inserter so I can stop doing it manually. e_e

A new patcher...That's awesome! If you want I'll copy paste the latest system message I could translate, I bet that with the VWF we will have a result like the second of the swordcraft story series where the boxes are kinda lengthy.

BTW, about the character name you can add via 0xFE, that will come handy as a late-game boss has the MC's name.


: Re: Making text editor.
: Aent September 05, 2014, 08:06:36 AM
So, IIf I read this right, are you going to start inserting the script after finishing this? Is there something that needs to be done with that?

A new patcher...That's awesome! If you want I'll copy paste the latest system message I could translate, I bet that with the VWF we will have a result like the second of the swordcraft story series where the boxes are kinda lengthy.

BTW, about the character name you can add via 0xFE, that will come handy as a late-game boss has the MC's name.

Yep, insertion is next after doing the system messages, items, start menu, etc. Those shouldn't take long at all. Just wanna get it all in so I can look into spacing issues and such.

With the inserter:
  • First we check to make sure it's writing correctly by taking the original script and write the same script back in.
  • From there, if everything is ok, we switch to random single characters and add line breaks where necessary, but still try and keep it the same size.
  • Next we try random english again, but shorten and make it longer at different points. I'll probably do a version with the name of the text file containing the scene's dialogue here as well. That way we know exactly where to look should an edit need to be made in the future.
  • Once everything seems good from there, we put a properly translated script in. The one Leaf was working on if he's still around. If not, then I'm not sure. The sntranslation site one could probably be inserted, but it has a lot of inconsistencies and I'd like to put out the best patch we can in the end.

VWF is definitely a must-have for me. The second looks so much better, lol. I'll have to look through how it does it's font drawing and see if I can use it as a reference. Also, please do post any non-story translations you've done. If you can include the address and/or the original japanese, that will help me figure out where to put them as well. =p

//edit
I also have skype if you'd prefer to message over it. I generally respond much quicker that way since I leave my pc up all the time. =p


: Re: Making text editor.
: leaf September 05, 2014, 09:47:03 AM
Great work, aent.

And yeah, I'm still around. I just don't check gshc that often.


: Re: Making text editor.
: pablitox September 05, 2014, 12:38:03 PM
So, IIf I read this right, are you going to start inserting the script after finishing this? Is there something that needs to be done with that?

A new patcher...That's awesome! If you want I'll copy paste the latest system message I could translate, I bet that with the VWF we will have a result like the second of the swordcraft story series where the boxes are kinda lengthy.

BTW, about the character name you can add via 0xFE, that will come handy as a late-game boss has the MC's name.

Yep, insertion is next after doing the system messages, items, start menu, etc. Those shouldn't take long at all. Just wanna get it all in so I can look into spacing issues and such.

With the inserter:
  • First we check to make sure it's writing correctly by taking the original script and write the same script back in.
  • From there, if everything is ok, we switch to random single characters and add line breaks where necessary, but still try and keep it the same size.
  • Next we try random english again, but shorten and make it longer at different points. I'll probably do a version with the name of the text file containing the scene's dialogue here as well. That way we know exactly where to look should an edit need to be made in the future.
  • Once everything seems good from there, we put a properly translated script in. The one Leaf was working on if he's still around. If not, then I'm not sure. The sntranslation site one could probably be inserted, but it has a lot of inconsistencies and I'd like to put out the best patch we can in the end.

VWF is definitely a must-have for me. The second looks so much better, lol. I'll have to look through how it does it's font drawing and see if I can use it as a reference. Also, please do post any non-story translations you've done. If you can include the address and/or the original japanese, that will help me figure out where to put them as well. =p

//edit
I also have skype if you'd prefer to message over it. I generally respond much quicker that way since I leave my pc up all the time. =p

I will help you out on this one. Here you have all the system messages I could translate, and the other tables that were translated by Ritchburn and finished by me. I added the start address so you will find exactly were to insert them. Also the original translations are on the site, if you want I can post them here next to each translation.

translate_name_entry_menu(void)
There were no problems or overlapping here, though TBH I had to guess the numbers in the patch_str and i'm not sure how they work, nonetheless that is the right address as I tested It and saw no game breaking bugs.

http://sntranslation.vacau.com/tlnames.php pages 0 through 4

patch_str(0x00bd5680, 22, "Is it correct?");  これでいいですか?
patch_str(0x00bd5696, 8, " Yes"); は い
patch_str(0x00bd569e, 4, "No"); いいえ
patch_str(0x00bd56c0, 32, "Enter the hero's nickname"); 主人公の愛称を入力して下さい
patch_str(0x00bd56e4, 24, "Enter the hero's name"); 主人公の名前を入力して下さい
patch_str(0x00bd5708, 22, "Enter partner's name");  膩パートナーの名前を入力して下さい
patch_str(0x00bd5730, 6, "Name"); 名前
patch_str(0x00bd5736, 6, "Nick"); 愛称
patch_str(0x00bd5744, 12, "~Ritchburn"); リッチバーン
patch_str(0x00bd5752, 12, "~Rifmonica"); リフモニカ   
patch_str(0x00bd575e, 10, "Rundor"); ランドル  //Should be RUN-DOR
patch_str(0x00bd5768,  8, "Enzi"); エンジ   
patch_str(0x00bd5770, 12, "Killfith"); キルフィス   
patch_str(0x00bd577c, 12, "Rufeel"); ルフィール   
patch_str(0x00bd57a0, 10, "~Ritchie"); リッチー
patch_str(0x00bd57aa,  6, "~Rif"); リフ

translate_main_menu(void)

/* First menu. */
This one also worked really well..

patch_str(0x000bacf0,  8, "Equip"  );   /* equipment */
patch_str(0x000bace4, 12, "Support");
patch_str(0x000bacd8, 12, "Item  " );
patch_str(0x000bacd0,  8, "Magic"  );
patch_str(0x000bacc8,  8, "Weapon" );
patch_str(0x000bacbc, 12, "Status" );
/* Second menu. */
This too..

patch_str(0x000bad38,  8, "Quest"  );   /* quest items */
patch_str(0x000bad2c, 12, "Rank"   );   /* craft rank */
patch_str(0x000bad24,  8, "Tech"   );   /* techniques */
patch_str(0x000bad1c,  8, "Spec"   );   /* special attack */
patch_str(0x000bad10, 12, "Effect" );
patch_str(0x000bad04, 12, "Beasts" );   /* bestiary */
patch_str(0x000bacf8, 12, "Config" );   /* options */

/* Rank/Techniques submenu. */

patch_str(0x000bad78,  8, "Sword"  );
patch_str(0x000bad70,  8, "Axe"    );
patch_str(0x000bad68,  8, "Spear"  );
patch_str(0x000bad5c, 12, "Fist");
patch_str(0x000bad54,  8, "Drill"  );
patch_str(0x000bad4c,  8, "Bow"    );

/* Item types. */

patch_str(0x000baeb4,  8, "Recovr");    /* Recover*/
patch_str(0x000baeac,  8, "ItmMat");    /* itm Mat */
patch_str(0x000baea4,  8, "Spec");      /* special */
patch_str(0x000bae9c,  8, "WpnMat");    /* Wpn Mat */
patch_str(0x000badcc,  22, "You have no weapons");
patch_str(0x000bade4,  18, "Can't use magic");
patch_str(0x000badfc,  26, "You don't have any items");
//those quoted are because I couldn't find the text to test if there was any overlapping or not
//patch_str(0x000bae44,  18, "No weapon effects");
//patch_str(0x000bae54,  18, "No special moves");
patch_str(0x000bae64,  18, "No quest items");
//patch_str(0x000bae84,  24, "No techniques learned");     /* imbue material */
patch_str(0x000bae94,  10, "Imbue");     /* imbue material */
/* Note: 'equipment' comes from the string at 0x000bacf0. */

/* Forge. */
patch_str(0x000baf1c,  8, "Create");
patch_str(0x000baf00,  8, "Strgth");    /* strengthen: this option was added for this game only, think it's possible for the VWF to fit?*/
/* Note: 'imbue' comes from the string at 0x000bae94. */ //this one should be Upgrade but it has the same proble as strengthen
patch_str(0x000baef8,  8, "Disass");    /* disassemble */
patch_str(0x000baee4,  8, "Repair");

/* Spell types. */

patch_str(0x000baf34,  8, "Any");       /* any recover */
patch_str(0x000baf24,  8, "Field");     /* field support */
patch_str(0x000baf44,  8, "Aux");       /* battle/field support */
patch_str(0x000baf2c,  8, "Battle");    /* battle attack/support */
patch_str(0x000baf3c,  8, "Attack");    /* battle attack */
patch_str(0x000baf4c,  8, "Attack");    /* battle attack */

/* Equip self/guardian beast. */

patch_str(0x000baf5c,  8, "Equip");     /* equipment */
patch_str(0x000baf64,  8, "Magic");
/* Note: 'item' comes from the string at 0x000bacd8. */
patch_str(0x000baf54,  8, "Remove");    /* unequip/remove */

/* Shop menu. */
again couldn't try most of them
patch_str(0x000baf7c,  8, "Buy");
patch_str(0x000baf74,  8, "Sell");
patch_str(0x000baf6c,  8, "Create");
patch_str(0x000baf84,  16, "Buy how many?");
patch_str(0x000baf98,  16, "Sell how many?");
patch_str(0x000bafac,  18, "Create how many?");
patch_str(0x000bafbe,  16, "Use how many?");
patch_str(0x000bafd4,  22, "Is it okay to sell?");
patch_str(0x000bafec,  22, "Equip it right away?");
patch_str(0x000bb004,  18, "Not enough money");
patch_str(0x000bb018,  18, "Out of materials");
patch_str(0x000bb02c,  22, "Can't carry anymore");
// patch_str(0x000bb04e,  22, "Item can't be sold");
// patch_str(0x000bb074,  22, "Item does not exist");
// patch_str(0x000bb096,  22, "Not enough points.");
// patch_str(0x000bb0b8,  22, "Item has disappeared");
patch_str(0x000bb0a8,  30, "Can't recover. Needs repair.");
patch_str(0x000bb0c8,  30, "Can't equip. Needs repair.");
//patch_str(0x000bb0ea,  30, "Returning to item list");
patch_str(0x000bb100,  20, "Use this item?");
// patch_str(0x000bb120,  22, "Item does not exist");
// patch_str(0x000bb142,  22, "Not enough points.");
patch_str(0x000bb13c,  18, "Overwrite data?");
patch_str(0x000bb150,  18, "Load game data?");
patch_str(0x000bb164,  16, "Save the game?");
patch_str(0x000bb274,  18, "Now Loading..");
patch_str(0x000bb288,  22, "Save complete");
patch_str(0x000bb29c,  24, "Load complete");
patch_str(0x000bb2e4,  6, " Yes");//I had problem with this one as in the save screen and confirmation screen they appear different, not game breaking luckily, if you want I'll show a screen later
patch_str(0x000bb2dc,  6, " No");
patch_str(0x000bb308,  14, "No materials");
patch_str(0x000bb31c,  22, "No weapons to imbue");
patch_str(0x000bb33c,  22, "No weapons to modify");
patch_str(0x000bb35c,  22, "Disassemble?");
patch_str(0x000bb36c,  22, "Select ability");
patch_str(0x000bb37c,  16, "Select effect");
patch_str(0x000bb38c,  26, "Craftknight rank too low");
patch_str(0x000bb3a8,  18, "Already enhanced");
patch_str(0x000bb3bc,  22, "No items to upgrade");
patch_str(0x000bb3d4,  22, "No item has been set");
patch_str(0x000bb3f4,  24, "There are points left");
patch_str(0x000bb40c,  18, "Proceed anyway?");
patch_str(0x000bb420,  22, "~2~5~5 TEC required");//Ritchburn uses this to put the numbers, should be 255
patch_str(0x000bb468,  22, "~1 point increases");

patch_str(0x000bb47c,  26, "Weapon smithing rank up");

//problem regarding this, as the original translation is: (Guardian)鍛冶ランクが(Option1)になりました
and it means: (Guardian) smithing rank is now (Option1)
where (Guardian) should be weapon type (bow,spear,axe,sword...) and (Option1) should be weapon rank (I think it is 1/2/3? not sure. There         should be a way to spot the original choice, I will post a screen later.
It's not complete though, those in comments line are there because I couldn't fin the flag that makes the message appear

translate_bestiary();
http://sntranslation.vacau.com/tlnames.php?page=13
http://sntranslation.vacau.com/tlnames.php?page=14
http://sntranslation.vacau.com/tlnames.php?page=15
http://sntranslation.vacau.com/tlnames.php?page=16

patch_table(0x00b75114 +  0, 120, NUM_BEASTS, 18, k_beast_name);//Bestiary, includes mid-bosses
patch_table(0x00b75114 + 64, 120, NUM_BEASTS, 56, k_beast_desc);//bosses descriptions, don't include mid-bosses
patch_table(0x00b75114 - 120 * 99, 120, NUM_BOSSES, 18, k_boss_name);//Bosses
//here is the list of mid-bosses that follows the last enemy of the bestiary    
        /* 140 */ , "Slime"//yup, the first Slime you find when you chase the GB
   /* 141*/  ,  "Spell Saucer"
   /* 142 */ ,  "Guard Fighter"
   /* 143 */ ,  "Spell Knight"
   /* 144 */ ,  "Metal Horse"
   /* 145 */ ,  "Bruiser"
   /* 146 */ ,  "Dran"
   /* 147 */ ,  "Search Eye"
   /* 148 */ ,  "Ghost Hat"
   /* 149 */ ,  "Chapeau Ghost"
   /* 150 */ ,  "Dullahan"
   /* 151 */ ,  "Blue Ogre"
   /* 152 */ ,  "Yellow Ogre"
   /* 153 */ ,  "Red Ogre"
   /* 154 */ ,  "Death"
   /* 155 */ ,  "Phantom Dragon"
   /* 156 */ ,  "Magdrad"//one missing!      
   /* 157 */ ,  "Nue"
   /* 158 */ ,  "Crimson Wing"   
   /* 159 */ ,  "Exploder"      
   /* 160 */ ,  "Magdrad"   
   /* 161 */ ,  "Dark Dorado"   
   /* 162 */ ,  "Magdrad"   
   /* 163 */ ,  "Magdrad"//second magdrad missing
//actually the latest one were pretty much trial and error, sorry >_< oh yeah, there's an untranslated boss with just ONE kanji (third to last boss Welworen), I think it's translation is "Sword Bolt" but I guess just sword would be great if there's still space issues.
//Main storyline bosses
        /* -99 */    "V.E"
   /* 100 */ ,  "Man A"
   /* 101 */ ,  "Man ~B"
   /* 102 */ ,  "Lemmy"
   /* 103 */ ,  "Man C"
   /* 104 */ ,  "Jade"
   /* 105 */ ,  "V.E"
   /* 105 */ ,  "Tier"
   /* 105 */ ,  "Guard A"
   /* 105 */ ,  "Guard ~B"
   /* 106 */ ,  "Man A"
   /* 107 */ ,  "Man ~B"
   /* 107 */ ,  "Pike"
   /* 108 */ ,  "Gillan"
   /* 109 */ ,  "Anise"
   /* 110 */ ,  "Mirage Tier"
   /* 111 */ ,  "Mirage V.E"
   /* 112 */ ,  "Mirave Jade"
    /* 112 */ ,  ""//problem! I think here's where the boss is the MC's illusion, you could use that 0xFE thing you were talking about xD I think that does not happen when you fight your Guardian Beast illusion though.
   /* 114 */ ,  "Tram"   //one missing? Couldn't make head or tails
   /* 114 */ ,  "Tram"
   /* 115 */ ,  "Lemmy"
   /* 105 */ ,  "Guard A"
   /* 105 */ ,  "Guard ~B"
   /* 107 */ ,  "Pike"//Missing?
   /* 107 */ ,  "Pike"
   /* 108 */ ,  "Gillan"
   /* 109 */ ,  "Anise"
   /* 109 */ ,  "Jade"
   /* 109 */ ,  "V.E"
   /* 115 */ ,  "Lemmy"
   /* 105 */ ,  "Tier"
   /* 105 */ ,  "Guard A"
   /* 105 */ ,  "Guard ~B"
   /* 107 */ ,  "Pike"
   /* 108 */ ,  "Gillan"//missing sword last to final boss
   /* 109 */ ,  "Anise"
   /* 109 */ ,  "Bostaph"
   /* 109 */ ,  "Velworen"
http://sntranslation.vacau.com/tlnames.php?page=17
Oh yeah, there's a bunch of Explanation messages afterwards in this page, are they useful?
};

translate_items();
patch_table(0x00bbca9c +  0, 84, NUM_ITEMS, 18, k_item_name);
patch_table(0x00bbca9c + 44, 84, NUM_ITEMS, 38, k_item_desc);
http://sntranslation.vacau.com/tlnames.php?page=18
http://sntranslation.vacau.com/tlnames.php?page=19
http://sntranslation.vacau.com/tlnames.php?page=20
http://sntranslation.vacau.com/tlnames.php?page=21
http://sntranslation.vacau.com/tlnames.php?page=22

/*   0 */   "Bandage"
   /*   1 */ , "Kicker Potion"
   /*   2 */ , "Heartleaf Potion"
   /*   3 */ , "Softboiled Egg"
   /*   4 */ , "Egg Fried Rice"
   /*   5 */ , "Spicy Curry"
   /*   6 */ , "Med Kit"
   /*   7 */ , "Rubstone"
   /*   8 */ , "Whetstone"
   /*   9 */ , "Grinding Stone"
   /*  10 */ , "Anywhere Diary"
   /*  11 */ , "Portal Fragment"
   /*  12 */ , "Repellent Amulet"
   /*  13 */ , "Lure Charm"
   /*  14 */ , "Kicker fruit"
   /*  15 */ , "Heartleaf Berry"
   /*  16 */ , "Klotzen Fruit"
   /*  17 */ , "Sticky Tree Sap"
   /*  18 */ , "Ripe Berry"
   /*  19 */ , "Flat Stone"
   /*  20 */ , "Polish Stone"
   /*  21 */ , "Zasso Leaf"
   /*  22 */ , "Fluff Grass"
   /*  23 */ , "Premium Paper"
   /*  24 */ , "Tree Branch"
   /*  25 */ , "Clean Paper"
   /*  26 */ , "Stinky Garlic"
   /*  27 */ , "Sweet Nectar"
   /*  28 */ , "Soft Leather"
   /*  29 */ , "Durable Leather"
   /*  30 */ , "Quality Leather"
   /*  31 */ , "Hot Curry Spice"
   /*  32 */ , "Mystery Crops"
   /*  33 */ , "Sweet Water"
   /*  34 */ , "Mystery Egg"
   /*  35 */ , "Pretty Egg"
   /*  36 */ , "Small Worm"
   /*  37 */ , "Dumpling"
   /*  38 */ , "Dried Shrimp"
   /*  39 */ , "Lobster"
   /*  40 */ , "Gourmet Clam"
   /*  41 */ , "Small Bomb"
   /*  42 */ , "Medium Bomb"
   /*  43 */ , "Large Bomb"
   /*  44 */ , "Poison Bomb"
   /*  45 */ , "Paralysis Bomb"
   /*  46 */ , "Sleep Bomb"
   /*  47 */ , "Rust Bomb"
   /*  48 */ , "Lottery Ticket"
   /*  49 */ , NULL

   /*           123456789-123456 */
   /*  50 */ , "Iron Ore"
   /*  51 */ , "Slender Crystal"
   /*  52 */ , "Cutting Ore"
   /*  53 */ , "Reaper Stone"
   /*  54 */ , "Large Ore"
   /*  55 */ , "RockStar Crystal"
   /*  56 */ , "Wing Fossil"
   /*  57 */ , "Vorpal Iron"
   /*  58 */ , "Large Iron Ore"
   /*  59 */ , "Heavy Metal Ore"
   /*  60 */ , "Ranger Mineral"
   /*  61 */ , "Elegant Ore"
   /*  62 */ , "Cute Crystal"
   /*  63 */ , "Shell Fossil"
   /*  64 */ , "Ore of Darkness"
   /*  65 */ , "Illusion Stone"
   /*  66 */ , "Common Crystal"
   /*  67 */ , "Banish Mineral"
   /*  68 */ , "Sash Ore"
   /*  69 */ , "Gallic Ore"
   /*  70 */ , "Kitchen Ore"
   /*  71 */ , "Iron Edge Stone"
   /*  72 */ , "Noble Crystal"
   /*  73 */ , "Twin-Snake Ore"
   /*  74 */ , "Splendid Mineral"
   /*  75 */ , "Excellent Ore"
   /*  76 */ , "Petrified Wood"
   /*  77 */ , "Resistor Crystal"
   /*  78 */ , "Refined Ore"
   /*  79 */ , "SecretRune Stone"
   /*  80 */ , "Frenzy Dance Ore"
   /*  81 */ , "WiseEdge Mineral"
   /*  82 */ , "Steel Fang Ore"
   /*  83 */ , "Gardening Ore"
   /*  84 */ , "Evil Ninja Ore"
   /*  85 */ , "Fossilized Paw"
   /*  86 */ , "Mecha Crystal"
   /*  87 */ , "Blood Lotus Ore"
   /*  88 */ , "Cursed Ore"
   /*  89 */ , "Gem of Light"
   /*  90 */ , NULL
   /*  91 */ , NULL
   /*  92 */ , NULL
   /*  93 */ , NULL
   /*  94 */ , NULL
   /*  95 */ , NULL
   /*  96 */ , NULL
   /*  97 */ , NULL
   /*  98 */ , NULL
   /*  99 */ , NULL

   /*           123456789-123456 */
   /* 100 */ , "Battery"
   /* 101 */ , "Thunder Charm"
   /* 102 */ , "Thunder Shard"
   /* 103 */ , "Thunder Crystal"
   /* 104 */ , "Lighter"
   /* 105 */ , "Flare Charm"
   /* 106 */ , "Flare Shard"
   /* 107 */ , "Flare Crystal"
   /* 108 */ , "Water Tank"
   /* 109 */ , "Torrent Charm"
   /* 110 */ , "Water Shard"
   /* 111 */ , "Water Crystal"
   /* 112 */ , "Wind Fan"
   /* 113 */ , "Gale Charm"
   /* 114 */ , "Gale Shard"
   /* 115 */ , "Gale Crystal"
   /* 116 */ , "Light Bulb"
   /* 117 */ , "Flash Charm"
   /* 118 */ , "Draining Needle"
   /* 119 */ , "Dark Sunglasses"
   /* 120 */ , "Speed Winder"
   /* 121 */ , "Accelerator"
   /* 122 */ , "Spirit Headband"
   /* 123 */ , "Four-Leaf Clover"
   /* 124 */ , "Switch Lever"
   /* 125 */ , "Secret Scroll"
   /* 126 */ , "Combat Scroll"
   /* 127 */ , "Workout Guide"
   /* 128 */ , "Rationate Widget"
   /* 129 */ , "Switch of Ruin"
   /* 130 */ , "Paralysis Powder"
   /* 131 */ , "Poison Powder"
   /* 132 */ , "Sleeping Powder"
   /* 133 */ , "Rust Powder"
   /* 134 */ , "Power Crest"
   /* 135 */ , "Endurance Crest"
   /* 136 */ , "Expertise Crest"
   /* 137 */ , "Legendary Spring"
   /* 138 */ , "Insight Glasses"
   /* 139 */ , "Fighting Manual"
   /* 140 */ , "Lucky Charm"
   /* 141 */ , "Healthy Sandals"
   /* 142 */ , "Legendary Bamboo"
   /* 143 */ , "Old Rubstone"
   /* 144 */ , "Repair Parts"
   /* 145 */ , "Legendary Kebab "
   /* 146 */ , "Death Note"
   /* 147 */ , "Ultimate Motor"
   /* 148 */ , NULL
   /* 149 */ , NULL

   /*           123456789-123456 */
   /* 150 */ , "Simple Ring"
   /* 151 */ , "Travel Ring"
   /* 152 */ , "Iron Ring"
   /* 153 */ , "Sharp Ring"
   /* 154 */ , "Survival Ring"
   /* 155 */ , "Shell Ring"
   /* 156 */ , "Common Ring"
   /* 157 */ , "Gale Ring"
   /* 158 */ , "Celebrity Ring"
   /* 159 */ , "High Ring"
   /* 160 */ , "Running Ring"
   /* 161 */ , "Simple Bracelet"
   /* 162 */ , "Travel Bracelet"
   /* 163 */ , "Iron Bracelet"
   /* 164 */ , "Sharp Bracelet"
   /* 165 */ , "Survival Armlet"
   /* 166 */ , "Shell Bracelet"
   /* 167 */ , "Common Bracelet"
   /* 168 */ , "Gale Bracelet"
   /* 169 */ , "Celeb Bracelet"
   /* 170 */ , "High Bracelet"
   /* 171 */ , "Running Bracelet"
   /* 172 */ , "Simple Boots"
   /* 173 */ , "Travel Boots"
   /* 174 */ , "Iron Boots"
   /* 175 */ , "Sharp Boots"
   /* 176 */ , "Survival Boots"
   /* 177 */ , "Shell Boots"
   /* 178 */ , "Common Boots"
   /* 179 */ , "Gale Boots"
   /* 180 */ , "Celeb Boots"
   /* 181 */ , "High Boots"
   /* 182 */ , "Running Boots"
   /* 183 */ , "Combat Boots"
   /* 184 */ , "Escape Boots"
   /* 185 */ , "Friend Ring"
   /* 186 */ , "Friendly Ring"
   /* 187 */ , "Friendship Ring"
   /* 188 */ , "Speed Bracelet"
   /* 189 */ , "Guard Bracelet"
   /* 190 */ , "Attack Bracelet"
   /* 191 */ , "Ultra Move Ring"
   /* 192 */ , "Magic Bracelet"
   /* 193 */ , "Active Ring"
   /* 194 */ , "Insomnia Ring"
   /* 195 */ , "Detox Ring"
   /* 196 */ , "Plated Ring"
   /* 197 */ , "Boss Ring ~1" /* unused? */
   /* 198 */ , "Boss Ring ~2"/* unused? */
   /* 199 */ , "Craftlord Ring"

   /*           123456789-123456 */
   /* 200 */ , "Old Fishing Rod"
   /* 201 */ , "Quality Rod"
   /* 202 */ , "Legendary Rod"
   /* 203 */ , "Chopping Manual" /* unused? */
   /* 204 */ , "Stone of Mistery" /* unused? */
   /* 205 */ , "Summonite" /* unused? */
   /* 206 */ , "Membership Card"
   /* 207 */ , "Stray Cat" /* unused? */
   /* 208 */ , "Weapon Order" /* unused? */
   /* 209 */ , "Weapon Order"  /* unused? */
   /* 210 */ , "Weapon Order"  /* unused? */
   /* 211 */ , "Weapon Order"  /* unused? */
   /* 212 */ , "Weapon Order"  /* unused? */
   /* 213 */ , "Weapon Order"  /* unused? */
   /* 214 */ , "Weapon Order"  /* unused? */
   /* 215 */ , "Weapon Order"  /* unused? */
   /* 216 */ , "Weapon Order"  /* unused? */
   /* 217 */ , "Jade's Order"  /* unused? */
   /* 218 */ , "Zakk's Order" /* unused? */
   /* 219 */ , "Tier's Order" /* unused? */
   /* 220 */ , "Complaint letter" /* unused? */
   /* 221 */ , "Complaint letter" /* unused? */
   /* 222 */ , "Complaint letter" /* unused? */
   /* 223 */ , "Master's Weapons" /* unused? */
   /* 224 */ , "Axe Mastery"
   /* 225 */ , "Fist Mastery"
   /* 226 */ , "Sword Mastery"
   /* 227 */ , "Bow Mastery"
   /* 228 */ , "Spear Mastery"
   /* 229 */ , "Crafter Secrets" /* unused? */
   /* 230 */ , "Drill Mastery"
   /* 231 */ , "Speech Station" /* unused? */
   /* 232 */ , "AquaDragon Scale"
   /* 233 */ , "War Ticket"
   /* 234 */ , "Tickets"
   /* 235 */ , "Entry Form one"
   /* 236 */ , "Entry Form two"
   /* 237 */ , "Kicker Medicine"
   /* 238 */ , "Jade's Luggage"
   /* 239 */ , "Faction Request"
   /* 240 */ , "Zakk's Hammer"
   /* 241 */ , "Jade's Complaint"
   /* 242 */ , "Zakk's Complaint"
};

const char * const k_item_desc[NUM_ITEMS] = {
   /*           123456789-123456789-123456789-123456 */
   /*   0 */   "Put on wound to regain a little HP."
   /*   1 */ , "Drinking it restores some HP."
   /*   2 */ , "Delicious drink that restores HP."
   /*   3 */ , "Gotta love its soft texture."
   /*   4 */ , "So delicious you could eat forever."
   /*   5 */ , "It has an exciting spicy taste."
   /*   6 */ , "Recovers HP and revives."
   /*   7 */ , "Restores a bit of DUR"
   /*   8 */ , "Restores a large amount of DUR"
   /*   9 */ , "Completely restores DUR"
   /*  10 */ , "Allows you to save the game any time"
   /*  11 */ , "Escape from a dungeon to a set place"
   /*  12 */ , "Lowers enemy encounter rate"
   /*  13 */ , "Raises enemy encounter rate"
   /*  14 */ , "Somewhat sour but smells nice."
   /*  15 */ , "A fruit with an enjoyable crunch."
   /*  16 */ , "Very sweet fruit with medical uses."
   /*  17 */ , "A jar of gooey sap."
   /*  18 */ , "A fruit that is too ripe to be tasty"
   /*  19 */ , "A tender, fine-rained stone."
   /*  20 */ , "Stone fragment for repairing weapons"
   /*  21 */ , "A leaf that grows anywhere"
   /*  22 */ , "A very soft grass with medical uses"
   /*  23 */ , "Durable paper, good for books"
   /*  24 */ , "A handy twig that can be held easily"
   /*  25 */ , "An extremely clean pure white cloth"
   /*  26 */ , "Smelly, but good for the body"
   /*  27 */ , "Nectar with a really sweet smell"
   /*  28 */ , "A well crafted soft piece of fur"
   /*  29 */ , "Durable piece of fur, slightly hard"
   /*  30 */ , "Brilliant piece of quality fur"
   /*  31 */ , "Spice with a strong smell"
   /*  32 */ , "A mysterious white powder"
   /*  33 */ , "Clear and nutritious natural water"
   /*  34 */ , "Common but don't know what it's from"
   /*  35 */ , "A pretty egg with a different colour"
   /*  36 */ , "Fish bait, but some people eat it"
   /*  37 */ , "Potato buns, often used for fishing"
   /*  38 */ , "Tasty but also used as fish bait"
   /*  39 */ , "Very high grade, wasted as fish bait"
   /*  40 */ , "Rare and expensive fishing bait"
   /*  41 */ , "Deals a bit of damage when thrown"
   /*  42 */ , "Deals average damage when thrown"
   /*  43 */ , "Deals a lot of damage when thrown"
   /*  44 */ , "Can poison enemies"
   /*  45 */ , "Can paralyze enemies"
   /*  46 */ , "Can put enemies to sleep"
   /*  47 */ , "Corrodes enemy weapons"
   /*  48 */ , "Needed to participate in the lottery"
   /*  49 */ , NULL

   /*           123456789-123456789-123456789-123456 */
   /*  50 */ , "A small clump of iron"
   /*  51 */ , "Mysteriously creates slender weapons"
   /*  52 */ , "More durable than usual"
   /*  53 */ , "Seems reliable, for some reason"
   /*  54 */ , "Makes very large, tasteless weapons"
   /*  55 */ , "Emits sound when hammered upon"
   /*  56 */ , "Used to create lightweight weapons"
   /*  57 */ , "High grade, but a bit hard to work"
   /*  58 */ , "A very large clump of iron ore"
   /*  59 */ , "its weight makes it hard to process"
   /*  60 */ , "Let's you feel nature's embrace"
   /*  61 */ , "Often used in expensive ornaments"
   /*  62 */ , "Loved by women due to its appearance"
   /*  63 */ , "Well-preserved fossiled shellfish"
   /*  64 */ , "Its contents are pitch-black as well"
   /*  65 */ , "Shines with mysterious patterns"
   /*  66 */ , "Plain stone with hidden powers"
   /*  67 */ , "Used to make ceremonial tools"
   /*  68 */ , "Makes strong weapons, hard to work"
   /*  69 */ , "It's very fragile. Handle with care"
   /*  70 */ , "Said to make legendary cooking armor"
   /*  71 */ , "Flexible and difficult to break"
   /*  72 */ , "Material that requires skill to use"
   /*  73 */ , "Snakes seem to be encased within"
   /*  74 */ , "Hard to get your hands on this one"
   /*  75 */ , "Used to test a Craftknight's skills"
   /*  76 */ , "Very hard, made of old and fine wood"
   /*  77 */ , "Especially hard, for weapon-breaking"
   /*  78 */ , "Named so because of its appearance"
   /*  79 */ , "Stone that sparkles like a diamond"
   /*  80 */ , "Contains an untamed spirit"
   /*  81 */ , "Most precious of common mined metals"
   /*  82 */ , "Difficult to work, rarely used"
   /*  83 */ , "The wisdom of nature slumbers within"
   /*  84 */ , "Ore used to create killing tools"
   /*  85 */ , "Even though it's a rock, it's soft"
   /*  86 */ , "Appears to be a part of some machine"
   /*  87 */ , "Can only be processed by masters"
   /*  88 */ , "You feel an evil aura surrounding it"
   /*  89 */ , "Mysteriously, light shines from it"
   /*  90 */ , NULL
   /*  91 */ , NULL
   /*  92 */ , NULL
   /*  93 */ , NULL
   /*  94 */ , NULL
   /*  95 */ , NULL
   /*  96 */ , NULL
   /*  97 */ , NULL
   /*  98 */ , NULL
   /*  99 */ , NULL

   /*           123456789-123456789-123456789-123456 */
   /* 100 */ , "A box that discharges electricity"
   /* 101 */ , "Amulet imbued with furious lighting"
   /* 102 */ , "Piece of crystal with thunder power"
   /* 103 */ , "Strange crystal filled with thunder"
   /* 104 */ , "Has a fire warning on the back"
   /* 105 */ , "Amulet imbued with powerful fire"
   /* 106 */ , "A piece of crystal with flame power"
   /* 107 */ , "Mysterious crystal filled with fire"
   /* 108 */ , "Tank containing clear water"
   /* 109 */ , "Amulet imbued with forceful water"
   /* 110 */ , "A piece of crystal with water power"
   /* 111 */ , "Mysterious crystal with water power"
   /* 112 */ , "Strange machine that blows one way"
   /* 113 */ , "Amulet imbued with lively wind"
   /* 114 */ , "A piece of crystal with wind power"
   /* 115 */ , "Mysterious crystal with wind power"
   /* 116 */ , "Backlight that shines bright"
   /* 117 */ , "Amulet imbued with noble light"
   /* 118 */ , "Seems to be made to draw blood"
   /* 119 */ , "Used by sensitive to light people"
   /* 120 */ , "Can be wound up. Unknown purpose"
   /* 121 */ , "Faster as you'd ever imagine"
   /* 122 */ , "You get fired up when wearing it"
   /* 123 */ , "Its four leaves will make you happy"
   /* 124 */ , "Some kind of suspicious switch..."
   /* 125 */ , "Do not remove from the premises"
   /* 126 */ , "Scroll filled with all martial arts"
   /* 127 */ , "Books about how to train your body"
   /* 128 */ , "A device meant only to ration"
   /* 129 */ , "It would be better to not press it"
   /* 130 */ , "Physical contact causes paralyzation"
   /* 131 */ , "Iron scrap containing deadly poison"
   /* 132 */ , "Cures insomnia. Don't use it daily"
   /* 133 */ , "troublesome good that rusts weapons"
   /* 134 */ , "Proof of supernatural strength"
   /* 135 */ , "Proof of a person's strong body"
   /* 136 */ , "Proof that the person is an expert"
   /* 137 */ , "Its jumping ability is legendary"
   /* 138 */ , "Glasses that may reveal the truth"
   /* 139 */ , "Its contents are about martial arts"
   /* 140 */ , "Charm which may increase your luck"
   /* 141 */ , "Stimulate your reflexology"
   /* 142 */ , "Step on it and it becomes healthier"
   /* 143 */ , "A whetstone that has been well-used"
   /* 144 */ , "Used to repair something..."
   /* 145 */ , "A legendary grade iron kebab"
   /* 146 */ , "Written while ready to die, heavy"
   /* 147 */ , "Machine with tremendous power"
   /* 148 */ , NULL
   /* 149 */ , NULL

   /*           123456789-123456789-123456789-123456 */
   /* 150 */ , "Rustic ring without any decorations"
   /* 151 */ , "Ring that often used by travelers"
   /* 152 */ , "Ring with an amazing strengh"
   /* 153 */ , "Shaped like a sharp cutting edge"
   /* 154 */ , "Said to be loved by an explorer once"
   /* 155 */ , "Possesses overlapping complex parts"
   /* 156 */ , "Likely to be anywhere but effective"
   /* 157 */ , "Illusory ring with great ATK, DEF"
   /* 158 */ , "Its appearance makes it worthy"
   /* 159 */ , "Both performs well and is beautiful"
   /* 160 */ , "First-class ring with achievements"
   /* 161 */ , "Rustic armlet without any decoration"
   /* 162 */ , "Bracelet often used by travelers"
   /* 163 */ , "Bracelet with an amazing strengh"
   /* 164 */ , "Shaped like a sharp cutting edge"
   /* 165 */ , "Said to be loved by an explorer once"
   /* 166 */ , "Possesses overlapping complex parts"
   /* 167 */ , "Likely to be anywhere but effective"
   /* 168 */ , "Illusory item with great ATK, DEF"
   /* 169 */ , "Its appearance makes it worthy"
   /* 170 */ , "Both performs well and is beautiful"
   /* 171 */ , "A first-class item with achievements"
   /* 172 */ , "Rustic boots without any decoration"
   /* 173 */ , "Boots often used by travelers"
   /* 174 */ , "Boots with an amazing strengh"
   /* 175 */ , "Shaped like a sharp cutting edge"
   /* 176 */ , "Said to be loved by an explorer once"
   /* 177 */ , "Possess overlapping complex parts"
   /* 178 */ , "Likely to be anywhere but effective"
   /* 179 */ , "Illusory item with great ATK, DEF"
   /* 180 */ , "Its appearance makes it worthy"
   /* 181 */ , "Both performs well and is beautiful"
   /* 182 */ , "A first-class item with achievements"
   /* 183 */ , "Makes you fight instead of run"
   /* 184 */ , "Fear and pressure make escape likely"
   /* 185 */ , "Extends summon duration briefly"
   /* 186 */ , "Extends summon duration moderately"
   /* 187 */ , "Extends summon duration greatly"
   /* 188 */ , "Increase the partner's speed"
   /* 189 */ , "Increase the partner's defense"
   /* 190 */ , "Increase the partner's power"
   /* 191 */ , "Enhances weapon, lowers action cost"
   /* 192 */ , "Filled with magic, raises mag attack"
   /* 193 */ , "Provides resistance to paralysis"
   /* 194 */ , "Provides resistance to sleep"
   /* 195 */ , "Provides resistance to poison"
   /* 196 */ , "Provides resistance to rust"
   /* 197 */ , "Explanation" /* unused? */
   /* 198 */ , "Explanation" /* unused? */
   /* 199 */ , "Makes you resist magic"
       

//those unused are storyline items, they are used thouh, sorry!
   /*           123456789-123456789-123456789-123456 */
   /* 200 */ , "Cheap, but it still catches fish"
   /* 201 */ , "Expensive and made of fine materials"
   /* 202 */ , "Beloved weapon of a legendary fisher"
   /* 203 */ , "Will this make you a master?" /* unused? */
   /* 204 */ , "This stone is a mistery" /* unused? */
   /* 205 */ , "A gem used to summon your partner" /* unused? */
   /* 206 */ , "Allows you to enter the lottery"
   /* 207 */ , "It ran away from its owner" /* unused? */
   /* 208 */ , "Craft an Amateur Spear." /* unused? */
   /* 209 */ , "Craft a Hard Motor." /* unused? */
   /* 210 */ , "Craft some Iron Arrows." /* unused? */
   /* 211 */ , "Craft a pair of Slice Knuckles." /* unused? */
   /* 212 */ , "Craft a Survivor Sword." /* unused? */
   /* 213 */ , "Craft a Common Axe." /* unused? */
   /* 214 */ , "Craft a Gimmick Sword." /* unused? */
   /* 215 */ , "Craft a Celebrity Spear." /* unused? */
   /* 216 */ , "Craft a Resistor Motor." /* unused? */
   /* 217 */ , "Create a weapon with over ~3~5 ATK." /* unused? *///should be 35 30 and 21 respectively
   /* 218 */ , "Create a weapon with over ~3~0 DEF." /* unused? */
   /* 219 */ , "Create a weapon with over ~2~1 AGL." /* unused? */
   /* 220 */ , "I will never ask you again!" /* unused? */
   /* 221 */ , "Please keep your promise." /* unused? */
   /* 222 */ , "You won't keep your promise!" /* unused? */
   /* 223 */ , "Weapons Chief asked be repaired" /* unused? */
   /* 224 */ , "Contains info about forging axes"
   /* 225 */ , "Contains info about forging fists"
   /* 226 */ , "Contains info about forging swords"
   /* 227 */ , "Contains info about forging bows"
   /* 228 */ , "Contains info about forging spears"
   /* 229 */ , "Reveals a Craftknight's secrets"/* unused? */
   /* 230 */ , "Contains info about forging drills"
   /* 231 */ , "Strange machine that releases sounds" /* unused? */
   /* 232 */ , "A scale with the Phantom's power"
   /* 233 */ , "Join the war is written on it"
   /* 234 */ , "You'll watch something huge with it"
   /* 235 */ , "The headline reads: ~E~X~1"//should be EX1 EX2
   /* 236 */ , "The headline reads: ~E~X~2"
   /* 237 */ , "Medicine for Murno"
   /* 238 */ , "Luggage Jade asked be delivered"
   /* 239 */ , "dunno what this ones for"
   /* 240 */ , "Zakk's favorite hammer"
   /* 241 */ , "Keep promise if ya are a Crafknight!"
   /* 242 */ , "I shouldn't have asked you!"
};

translate_magics();
   patch_table(0x00bc73dc +  0, 64, NUM_MAGICS, 18, k_magic_name);
   patch_table(0x00bc73dc + 24, 64, NUM_MAGICS, 38, k_magic_desc);
http://sntranslation.vacau.com/tlnames.php?page=28
http://sntranslation.vacau.com/tlnames.php?page=29
   /*           123456789-123456 */
   /*   0 */   "Healing"
   /*   1 */ , "Escape"
   /*   2 */ , "Quick Move"
   /*   3 */ , "Astral Guard"
   /*   4 */ , "Weapon Shield"
   /*   5 */ , "Enchant Spark"
   /*   6 */ , "Enchant Flare"
   /*   7 */ , "Enchant Aqua"
   /*   8 */ , "Enchant Wind"

   /*   9 */ , "Revive"
   /*  10 */ , "Recover Weapon"
   /*  11 */ , "Vampirism"
   /*  12 */ , "Magic Barrier"

   /*  13 */ , "Tri-Spark"
   /*  14 */ , "Flare Burn"
   /*  15 */ , "Aqua Ball"
   /*  16 */ , "Burst Gale"
   /*  17 */ , "Thunder Chain"
   /*  18 */ , "Burning Wall"
   /*  19 */ , "Mega Splash"
   /*  20 */ , "Hurricane Wall"

   /*  21 */ , "Tag Partner"
   /*  22 */ , "Tag Partner"
   /*  23 */ , "Tag Partner"
   /*  24 */ , "Tag Partner"
   /*  25 */ , "Tag True Partner"
   /*  26 */ , "Tag True Partner"
   /*  27 */ , "Tag True Partner"
   /*  28 */ , "Tag True Partner"

   /*  29 */ , "Full Burst"
   /*  30 */ , "FierceTiger Blow"
   /*  31 */ , "Judgement Blade"
   /*  32 */ , "Sonic Dancer"
};

const char * const k_magic_desc[NUM_MAGICS] = {
   /*           123456789-123456789-123456789-123456 */
   /*   0 */   "Recovers HP"
   /*   1 */ , "Return to dungeon entrance"
   /*   2 */ , "Raises AGL for a brief duration"
   /*   3 */ , "Raises DEF for a brief duration"
   /*   4 */ , "Prevents DUR damage for a duration"
   /*   5 */ , "Enchant weapon with lightning"
   /*   6 */ , "Enchant weapon with fire"
   /*   7 */ , "Enchant weapon with water"
   /*   8 */ , "Enchant weapon with wind"

   /*   9 */ , "Recovers HP or revives when fallen"
   /*  10 */ , "DUR recovers when weapon breaks"
   /*  11 */ , "Damage inflicted recovers HP"
   /*  12 */ , "Damage caused by magic is reduced"

   /*  13 */ , "Mid-range lightning attack"
   /*  14 */ , "Mid-range fire attack"
   /*  15 */ , "Mid-range water attack"
   /*  16 */ , "Mid-range wind attack"
   /*  17 */ , "Wide-range lightning attack"
   /*  18 */ , "Wide-range fire attack"
   /*  19 */ , "Wide-range water attack"
   /*  20 */ , "Wide-range wind attack"

   /*  21 */ , "Switch to your partner"
   /*  22 */ , "Switch to your partner"
   /*  23 */ , "Switch to your partner"
   /*  24 */ , "Switch to your partner"
   /*  25 */ , "Switch to your true partner"
   /*  26 */ , "Switch to your true partner"
   /*  27 */ , "Switch to your true partner"
   /*  28 */ , "Switch to your true partner"

   /*  29 */ , "Powerful magic against all enemies"
   /*  30 */ , "Powerful magic against all enemies"
   /*  31 */ , "Powerful magic against all enemies"
   /*  32 */ , "Powerful magic against all enemies"
};


: Re: Making text editor.
: pablitox September 05, 2014, 02:27:12 PM
Continued from last post:


translate_weapons();
   patch_table(0x00bc1e9c +  0, 88, NUM_WEAPONS, 18, k_weapon_name);
   patch_table(0x00bc1e9c + 50, 88, NUM_WEAPONS, 38, k_weapon_desc);
http://sntranslation.vacau.com/tlnames.php?page=23
http://sntranslation.vacau.com/tlnames.php?page=24
http://sntranslation.vacau.com/tlnames.php?page=25
http://sntranslation.vacau.com/tlnames.php?page=26
http://sntranslation.vacau.com/tlnames.php?page=27

   /*   0 */   "Amateur Knife"
   /*   1 */ , "Needle Rapier"
   /*   2 */ , "Hard Dagger"
   /*   3 */ , "Grave Edge"
   /*   4 */ , "Iron Sword"
   /*   5 */ , "Synthesizer Edge"
   /*   6 */ , "Feather Sword"
   /*   7 */ , "Slicer Sabre"
   /*   8 */ , "Large Saber"
   /*   9 */ , "Punisher Sword"
   /*  10 */ , "Survivor Sword"
   /*  11 */ , "Elegant Knife"
   /*  12 */ , "Ribbon Saber"
   /*  13 */ , "Shell Sword"
   /*  14 */ , "Black Kunai"
   /*  15 */ , "Vanity Fleuret"
   /*  16 */ , "Common Saber"
   /*  17 */ , "Judgement Dagger"
   /*  18 */ , "Sash Sword"
   /*  19 */ , "Gimmick Sword"
   /*  20 */ , "Return Knife"
   /*  21 */ , "Iron Cudgel"
   /*  22 */ , "Celebrity Killer"
   /*  23 */ , "Twin Snake Edge"
   /*  24 */ , "Splendid Sword"
   /*  25 */ , "Excellent Saber"
   /*  26 */ , "High Blade"
   /*  27 */ , "Resistor Sabre"
   /*  28 */ , "Graceful Fleuret"
   /*  29 */ , "Rune Edge"
   /*  30 */ , "Wild Rapier"
   /*  31 */ , "Wise Edge"
   /*  32 */ , "Fang Saber"
   /*  33 */ , "Garden Snake"
   /*  34 */ , "Ninja Sword"
   /*  35 */ , "Meow Buster"
   /*  36 */ , "Chain Sword"
   /*  37 */ , "Blood Lotus Edge"
   /*  38 */ , "Curse Weaver"
   /*  39 */ , "Astral Edge"

   /*           123456789-123456 */
   /*  40 */ , "Amateur Axe"
   /*  41 */ , "Needle Axe"
   /*  42 */ , "Hard Axe"
   /*  43 */ , "Grave Axe"
   /*  44 */ , "Iron Axe"
   /*  45 */ , "Lead Axe"
   /*  46 */ , "Feather Axe"
   /*  47 */ , "Slice Axe"
   /*  48 */ , "Large Axe"
   /*  49 */ , "Punisher Axe"
   /*  50 */ , "Survivor Axe"
   /*  51 */ , "Elegant Axe"
   /*  52 */ , "Ribbon Crusher"
   /*  53 */ , "Shell Hatchet"
   /*  54 */ , "Black Kama"
   /*  55 */ , "Vanity Maul"
   /*  56 */ , "Common Axe"
   /*  57 */ , "Judgement Axe"
   /*  58 */ , "Sash Hammer"
   /*  59 */ , "Gimmick Chopper"
   /*  60 */ , "Burn Axe"
   /*  61 */ , "Iron Mace"
   /*  62 */ , "Celeb Crusher"
   /*  63 */ , "Twin-Snake Axe"
   /*  64 */ , "Splendid Axe"
   /*  65 */ , "Excellent Axe"
   /*  66 */ , "High Axe"
   /*  67 */ , "Resistor Axe"
   /*  68 */ , "Graceful Basher"
   /*  69 */ , "Rune Battle Axe"
   /*  70 */ , "Sledge Judge"
   /*  71 */ , "Wise Axe"
   /*  72 */ , "Fang Axe"
   /*  73 */ , "Gardening Axe"
   /*  74 */ , "Large Shuriken"
   /*  75 */ , "Meowxe"
   /*  76 */ , "Gear Axe"
   /*  77 */ , "Blood Lotus Axe"
   /*  78 */ , "Curse Madder"
   /*  79 */ , "Astral Axe"

   /*           123456789-123456 */
   /*  80 */ , "Amateur Spear"
   /*  81 */ , "Needle Spear"
   /*  82 */ , "Hard Pole"
   /*  83 */ , "Grave Spear"
   /*  84 */ , "Iron Pole"
   /*  85 */ , "Piercing Vocals"
   /*  86 */ , "Feather Pole"
   /*  87 */ , "Slicer Pike"
   /*  88 */ , "Large Pole"
   /*  89 */ , "Punisher Spear"
   /*  90 */ , "Survivor Spear"
   /*  91 */ , "Elegant Pole"
   /*  92 */ , "Ribbon Staff"
   /*  93 */ , "Shell Spear"
   /*  94 */ , "Black Halberd"
   /*  95 */ , "Vanity Lance"
   /*  96 */ , "Common Spear"
   /*  97 */ , "Judgement Spear"
   /*  98 */ , "Sash Pike"
   /*  99 */ , "Gimmick Spear"
   /* 100 */ , "Battle Fork"
   /* 101 */ , "Hexagonal Pole"
   /* 102 */ , "Celebrity Spear"
   /* 103 */ , "Twin-Snake Lance"
   /* 104 */ , "Splendid Pike"
   /* 105 */ , "Excellent Pike"
   /* 106 */ , "High Pole"
   /* 107 */ , "Resistor Pole"
   /* 108 */ , "Graceful Staff"
   /* 109 */ , "Rune Sting"
   /* 110 */ , "Wild Zephyr"
   /* 111 */ , "Wise Pole"
   /* 112 */ , "Fang Spear"
   /* 113 */ , "Plant Pole"
   /* 114 */ , "Secret Rod"
   /* 115 */ , "Meow Killer"
   /* 116 */ , "Metal Arm"
   /* 117 */ , "Blood Lotus Pike"
   /* 118 */ , "Curse Trident"
   /* 119 */ , "Astral Pike"

   /*           123456789-123456 */
   /* 120 */ , "Amateur Knuckles"
   /* 121 */ , "Needle Claws"
   /* 122 */ , "Hard Knuckles"
   /* 123 */ , "Grave Knuckles"
   /* 124 */ , "Iron Claws"
   /* 125 */ , "Beat Knuckles"
   /* 126 */ , "Feather Knuckles"
   /* 127 */ , "Slice Knuckles"
   /* 128 */ , "Large Knuckles"
   /* 129 */ , "Punisher Fists"
   /* 130 */ , "Survivor Knucks"
   /* 131 */ , "Elegant Claws"
   /* 132 */ , "Ribbon Claws"
   /* 133 */ , "Shell Talons"
   /* 134 */ , "Black Fists"
   /* 135 */ , "Vanity Knuckles"
   /* 136 */ , "Common Tooth"
   /* 137 */ , "Hand of Judgment"
   /* 138 */ , "Sash Claws"
   /* 139 */ , "Gimmick Knuckles"
   /* 140 */ , "Quilt Knuckles"
   /* 141 */ , "Iron Fists"
   /* 142 */ , "Celebrity Hitter"
   /* 143 */ , "Twin-Snake Claws"
   /* 144 */ , "Splendid Blow"
   /* 145 */ , "Excel Knuckles"
   /* 146 */ , "High Tusks"
   /* 147 */ , "Resistor Claws"
   /* 148 */ , "Grace Gloves"
   /* 149 */ , "Rune Gauntlets"
   /* 150 */ , "Sledge Ilk"
   /* 151 */ , "Wise Knuckles"
   /* 152 */ , "Fang Claws"
   /* 153 */ , "Garden Knuckles"
   /* 154 */ , "Secret Companion"
   /* 155 */ , "Meowkles"
   /* 156 */ , "Shaft Knuckles"
   /* 157 */ , "Blood Lotus Claw"
   /* 158 */ , "Curse Taker"
   /* 159 */ , "Astral Arm"

   /*           123456789-123456 */
   /* 160 */ , "Amateur Drill"
   /* 161 */ , "Needle Motor"
   /* 162 */ , "Hard Motor"
   /* 163 */ , "Grave Motor"
   /* 164 */ , "Iron Drill"
   /* 165 */ , "Beat Rotor"
   /* 166 */ , "Feather Drill"
   /* 167 */ , "Slice Drill"
   /* 168 */ , "Large Drill"
   /* 169 */ , "Punisher Machine"
   /* 170 */ , "Survivor Turbine"
   /* 171 */ , "Elegant Drill"
   /* 172 */ , "Ribbon Rotor"
   /* 173 */ , "Shell Drill"
   /* 174 */ , "Black Machine"
   /* 175 */ , "Vanity Motor"
   /* 176 */ , "Common Drill"
   /* 177 */ , "Judgement Drill"
   /* 178 */ , "Sash Motor"
   /* 179 */ , "Gimmick Drill"
   /* 180 */ , "Hell Mixer"
   /* 181 */ , "Iron Mincer"
   /* 182 */ , "Celebrity Motor"
   /* 183 */ , "Twin-Snake Gear"
   /* 184 */ , "Splendid Drill"
   /* 185 */ , "Excel Motor"
   /* 186 */ , "High Needle"
   /* 187 */ , "Resistor Rotor"
   /* 188 */ , "Graceful Mixer"
   /* 189 */ , "Rune Mixer"
   /* 190 */ , "Sledge Eater"
   /* 191 */ , "Wise Rotor"
   /* 192 */ , "Fang Rotor"
   /* 193 */ , "Garden Eater"
   /* 194 */ , "Ninja Motive"
   /* 195 */ , "Meowrill"
   /* 196 */ , "Gear Rotor"
   /* 197 */ , "Blood Lotus Gear"
   /* 198 */ , "Curse Tearer"
   /* 199 */ , "Astral Spin"

   /*           123456789-123456 */
   /* 200 */ , "Amateur Bow"
   /* 201 */ , "Needle Bow"
   /* 202 */ , "Hard Bow"
   /* 203 */ , "Glaive Arrow"
   /* 204 */ , "Iron Arrow"
   /* 205 */ , "Lead Arrow"
   /* 206 */ , "Feather Bow"
   /* 207 */ , "Slice Arrow"
   /* 208 */ , "Large Bow"
   /* 209 */ , "Punisher Bow"
   /* 210 */ , "Survival Bow"
   /* 211 */ , "Elegant Arrow"
   /* 212 */ , "Ribbon Arrow"
   /* 213 */ , "Shell Bow"
   /* 214 */ , "Black Bow"
   /* 215 */ , "Vanity Arrow"
   /* 216 */ , "Common Arrow"
   /* 217 */ , "Bow of Judgment"
   /* 218 */ , "Sash Bow"
   /* 219 */ , "Gimmick Bow"
   /* 220 */ , "Spoon Arrow"
   /* 221 */ , "Iron Globe Bow"
   /* 222 */ , "Celebrity Needle"
   /* 223 */ , "Twin-Snake Arrow"
   /* 224 */ , "Splendid Bow"
   /* 225 */ , "Excellent Arrow"
   /* 226 */ , "High Arrow"
   /* 227 */ , "Resistor Arrow"
   /* 228 */ , "Graceful Bow"
   /* 229 */ , "Rune Dipper"
   /* 230 */ , "Sledge-volver"
   /* 231 */ , "Wise Bow"
   /* 232 */ , "Fang Arrow"
   /* 233 */ , "Garden Gun"
   /* 234 */ , "Ninja Bow"
   /* 235 */ , "Meowrrow"
   /* 236 */ , "Clock Arrow"
   /* 237 */ , "Blood Lotus Bow"
   /* 238 */ , "Curse Holder"
   /* 239 */ , "Astral Arrow"

   /*           123456789-123456 */
   /* 240 */ , "Sword Shapestone"
   /* 241 */ , "Axe Shapestone"
   /* 242 */ , "Spear Shapestone"
   /* 243 */ , "Fist Shapestone"
   /* 244 */ , "Drill Shapestone"
   /* 245 */ , "Bow Shapestone"
};

const char * const k_weapon_desc[NUM_WEAPONS] = {
   /*           123456789-123456789-123456789-123456 */
   /*   0 */   "Basic, multi-purpose knife"
   /*   1 */ , "Despite being thin it's very durable"
   /*   2 */ , "Small, light, solid, easy to use"
   /*   3 */ , "Excellently crafted, fine detailing"
   /*   4 */ , "Made to be wide and durable"
   /*   5 */ , "Uniquely shaped, but a fine weapon"
   /*   6 */ , "Light as a feather and easy to use"
   /*   7 */ , "Designed to handle air resistance"
   /*   8 */ , "Has a very large blade but heavy"
   /*   9 */ , "Hard to carry, thick and heavy"
   /*  10 */ , "Easy to use, loved by adventurers"
   /*  11 */ , "Its elegance gives it high value"
   /*  12 */ , "Ribbons increase its performance"
   /*  13 */ , "There's light in its complex work"
   /*  14 */ , "Said to be used by assassins..."
   /*  15 */ , "Its strange shape creates a mirage"
   /*  16 */ , "Appears commonly, but efficient"
   /*  17 */ , "Often used in rites to test power"
   /*  18 */ , "High performance, difficult to use"
   /*  19 */ , "Complexity led to better results"
   /*  20 */ , "Use this to make a splendid comeback"
   /*  21 */ , "Makes blunt weapon lovers groan"
   /*  22 */ , "Cut in a way that resembles jewels"
   /*  23 */ , "Filled with its maker's malice"
   /*  24 */ , "Shares its elegance with its wielder"
   /*  25 */ , "Prominent as weapon and as ornament"
   /*  26 */ , "Unrefined but still performs well"
   /*  27 */ , "Shines more the more you use it"
   /*  28 */ , "There's roughness inside that grace"
   /*  29 */ , "Illusory sword said to be lost"
   /*  30 */ , "A destructive weapon full of hate"
   /*  31 */ , "Beautifully crafted and deadly"
   /*  32 */ , "A rough weapon like a large fang"
   /*  33 */ , "Let's you feel the wonders of nature"
   /*  34 */ , "A rare sword with one sharp edge"
   /*  35 */ , "Now, end it, Meow Buster"
   /*  36 */ , "It's not even a mechanized sword"
   /*  37 */ , "Easily exceeds the work of a master"
   /*  38 */ , "So disgusting it's not even a sword"
   /*  39 */ , "Those beautiful wings are like..."

   /*           123456789-123456789-123456789-123456 */
      /*  40 */ , "Easy to wield axe for beginners"
   /*  41 */ , "Despite being thin it's very durable"
   /*  42 */ , "Small, light, solid, easy to use"
   /*  43 */ , "Excellently crafted, fine detailing"
   /*  44 */ , "Made to be wide and durable"
   /*  45 */ , "Uniquely shaped, but a fine weapon"
   /*  46 */ , "Light as a feather and easy to use"
   /*  47 */ , "Designed to handle air resistance"
   /*  48 */ , "Has a very large blade but heavy"
   /*  49 */ , "Hard to carry, thick and heavy"
   /*  50 */ , "Easy to use, loved by adventurers"
   /*  51 */ , "Its elegance gives it high value"
   /*  52 */ , "Ribbons give it a glamorous touch"
   /*  53 */ , "There's light in its complex work"
   /*  54 */ , "Said to be used by assassins..."
   /*  55 */ , "Its strange shape creates a mirage"
   /*  56 */ , "Appears commonly, but efficient"
   /*  57 */ , "Often used in rites to test power"
   /*  58 */ , "High performance, difficult to use"
   /*  59 */ , "Complexity led to better results"
   /*  60 */ , "Rave reviews for its burning looks"
   /*  61 */ , "Makes blunt weapon lovers groan"
   /*  62 */ , "Cut in a way that resembles jewels"
   /*  63 */ , "Filled with its maker's malice"
   /*  64 */ , "Shares its elegance with its wielder"
   /*  65 */ , "Prominent as weapon and as ornament"
   /*  66 */ , "Unrefined but still performs well"
   /*  67 */ , "Shines more the more you use it"
    /*  68 */ , "There's roughness inside that grace"
   /*  69 */ , "Illusory axe said to be lost"
   /*  70 */ , "A destructive weapon full of hate"
   /*  71 */ , "Beautifully crafted and deadly"
   /*  72 */ , "A rough weapon like a large fang"
   /*  73 */ , "Let's you feel the wonders of nature"
   /*  74 */ , "Is it a cross or a large axe?"
   /*  75 */ , "Meow it has excellent power meow"
   /*  76 */ , "Based on the meshing of gears..."
   /*  77 */ , "Easily exceeds the work of a master"
   /*  78 */ , "Too grotesque to be an axe..."
   /*  79 */ , "Wings of justice cuts through evil"

   /*           123456789-123456789-123456789-123456 */
   /*  80 */ , "Easy to wield spear for beginners"
   /*  81 */ , "Despite being thin it's very durable"
   /*  82 */ , "Small, light, solid, easy to use"
   /*  83 */ , "Excellently crafted, fine detailing"
   /*  84 */ , "Made to be wide and durable"
   /*  85 */ , "Uniquely shaped, but a fine weapon"
   /*  86 */ , "Light as a feather and easy to use"
   /*  87 */ , "Designed to handle air resistance"
   /*  88 */ , "Has a very large blade but heavy"
   /*  89 */ , "Hard to carry, thick and heavy"
   /*  90 */ , "Easy to use, loved by adventurers"
   /*  91 */ , "Its elegance gives it high value"
   /*  92 */ , "The ribbons increase its performance"
   /*  93 */ , "There's light in its complex work"
   /*  94 */ , "Said to be used by assassins..."
   /*  95 */ , "Its strange shape creates a mirage"
   /*  96 */ , "Common, but efficient"
   /*  97 */ , "Often used in ritual tests of power"
   /*  98 */ , "High performance, difficult to use"
   /*  99 */ , "Complex structure boosts efficiency"
   /* 100 */ , "Using a spoon is heresy"
   /* 101 */ , "Makes blunt weapon lovers groan"
   /* 102 */ , "Cut in a way that resembles jewels"
   /* 103 */ , "Filled with its maker's malice"
   /* 104 */ , "Shares its elegance with its wielder"
   /* 105 */ , "Prominent as weapon and as ornament"
   /* 106 */ , "Unrefined but still performs well"
   /* 107 */ , "Shines more the more you use it"
   /* 108 */ , "There's roughness inside that grace"
   /* 109 */ , "Illusory sting said to be lost"
   /* 110 */ , "A destructive weapon full of hate"
   /* 111 */ , "Despite its power, it's beautiful"
   /* 112 */ , "A rough weapon like a large fang"
   /* 113 */ , "Lets you feel the wonders of nature"
   /* 114 */ , "Sharp, and the hooked tip tears"
   /* 115 */ , "Would scare even a cat, meow killer"
   /* 116 */ , "Can't capture distant prey"
   /* 117 */ , "Easily exceeds the work of a master"
   /* 118 */ , "Requires courage to call it a spear"
   /* 119 */ , "Pierce evil with those pure wings"
   /*           123456789-123456789-123456789-123456 */
   /* 120 */ , "Easy to wear knuckles for beginners"
   /* 121 */ , "Despite being thin it's very durable"
   /* 122 */ , "Small, light, solid, easy to use"
   /* 123 */ , "Excellently crafted, fine detailing"
   /* 124 */ , "Made to be wide and durable"
   /* 125 */ , "An elegant weapon in special form"
   /* 126 */ , "Light as a feather and easy to use"
   /* 127 */ , "Designed to handle air resistance"
   /* 128 */ , "Very large, but heavy"
   /* 129 */ , "Hard to carry, thick and heavy"
   /* 130 */ , "Easy-to-use, loved by adventurers"
   /* 131 */ , "Its elegance gives it high value"
   /* 132 */ , "The ribbons increase its performance"
   /* 133 */ , "There's light in its complex work"
   /* 134 */ , "Said to be used by assassins..."
   /* 135 */ , "Its strange shape creates a mirage"
   /* 136 */ , "Appears commonly, but efficient"
   /* 137 */ , "Often used in rites to test power"
   /* 138 */ , "High performance, difficult to use"
   /* 139 */ , "Complexity led to better results"
   /* 140 */ , "Not even hot pots scare me now"
   /* 141 */ , "Makes blunt weapon lovers groan"
   /* 142 */ , "Cut in a way that resembles jewels"
   /* 143 */ , "Filled with its maker's malice"
   /* 144 */ , "Shares its elegance with its wielder"
   /* 145 */ , "Prominent as weapon and as ornament"
   /* 146 */ , "Unrefined but still performs well"
   /* 147 */ , "Shines more the more you use it"
   /* 148 */ , "There's roughness inside that grace"
   /* 149 */ , "Illusory gauntlets said to be lost"
   /* 150 */ , "A destructive weapon full of hate"
   /* 151 */ , "Beautifully crafted and deadly"
   /* 152 */ , "A rough weapon like a large fang"
   /* 153 */ , "Lets you feel the wonders of nature"
   /* 154 */ , "Its blow is like an animal's claws"
   /* 155 */ , "Meow Punch, meow"
   /* 156 */ , "Strengthens attacks, but..."
   /* 157 */ , "Easily exceeds the work of a master"
   /* 158 */ , "Makes you shiver just from having it"
   /* 159 */ , "Those wings' fist crush evil"

   /*           123456789-123456789-123456789-123456 */
   /* 160 */ , "Easy to handle drill for beginners"
   /* 161 */ , "Despite being thin it's very durable"
   /* 162 */ , "Small, light, solid, easy to use"
   /* 163 */ , "Excellently crafted, fine detailing"
   /* 164 */ , "Made to be wide and durable"
   /* 165 */ , "Uniquely shaped, but a fine weapon"
   /* 166 */ , "Light as a feather and easy to use"
   /* 167 */ , "Designed to handle air resistance"
   /* 168 */ , "Has a very large blade but heavy"
   /* 169 */ , "Hard to carry, thick and heavy"
   /* 170 */ , "Easy to use, loved by adventurers"
   /* 171 */ , "Its elegance gives it high value"
   /* 172 */ , "The ribbons increase its performance"
   /* 173 */ , "There's light in its complex work"
   /* 174 */ , "Said to be used by assassins..."
   /* 175 */ , "Its strange shape creates a mirage"
   /* 176 */ , "Appears commonly, but efficient"
   /* 177 */ , "Often used in rites to test power"
   /* 178 */ , "High performance, difficult to use"
   /* 179 */ , "Complexity led to better results"
   /* 180 */ , "Can handle smashing and churning"
   /* 181 */ , "Makes blunt weapon lovers groan"
   /* 182 */ , "Cut in a way that resembles jewels"
   /* 183 */ , "Filled with its maker's malice"
   /* 184 */ , "Shares its elegance with its wielder"
   /* 185 */ , "Prominent as weapon and as ornament"
   /* 186 */ , "Unrefined but still performs well"
   /* 187 */ , "Shines more the more you use it"
   /* 188 */ , "There's roughness inside that grace"
   /* 189 */ , "Weapon of illusion, said to be lost"
   /* 190 */ , "A destructive weapon full of hate"
   /* 191 */ , "Despite its power, it's beautiful"
   /* 192 */ , "A rough weapon like a large fang"
   /* 193 */ , "Let's you feel the wonders of nature"
   /* 194 */ , NULL
   /* 195 */ , "Rotates using cat power, meow"
   /* 196 */ , "Has sharp edges unlike a drill's"
   /* 197 */ , "Easily exceeds the work of a master"
   /* 198 */ , "Its appearance, the noise, terrible"
   /* 199 */ , "White wings create a just sound"

   /*           123456789-123456789-123456789-123456 */
   /* 200 */ , "Best for amateurs and praticing"
   /* 201 */ , "Holds strength despite its thinness"
   /* 202 */ , "Easy to use, small, light, tough"
   /* 203 */ , "An excellent weapon, fine detailing"
   /* 204 */ , "A wide and durable weapon"
   /* 205 */ , "A fine weapon, unique in appearance"
   /* 206 */ , "Light as a feather and easy to use"
   /* 207 */ , "Designed to deal with air resistance"
   /* 208 */ , "Very long range, but heavy"
   /* 209 */ , "Hard to carry, thick and heavy"
   /* 210 */ , "Easy-to-use, loved by adventurers"
   /* 211 */ , "That elegance earned high ratings"
   /* 212 */ , "Ribbons rapidly increase performance"
   /* 213 */ , "There's light within the complexity"
   /* 214 */ , "Said to be used by assassins..."
   /* 215 */ , "Its strange shape creates a mirage"
   /* 216 */ , "Common appearance, sure skill"
   /* 217 */ , "Often used in rites to test power"
   /* 218 */ , "High performance, difficult to use"
   /* 219 */ , "Complexity led to better results"
   /* 220 */ , "Just a fork isn't enough"
   /* 221 */ , "Makes blunt weapon lovers groan"
   /* 222 */ , "Has a cut that resembles jewels"
   /* 223 */ , "Filled with its maker's malice"
   /* 224 */ , "Elegant, makes its wielder elegant"
   /* 225 */ , "Conspicuous as a weapon or ornament"
   /* 226 */ , "Unrefined, still performs well"
   /* 227 */ , "Shines more the more you use it"
   /* 228 */ , "There's roughness inside that grace"
   /* 229 */ , "Weapon of illusion, said to be lost"
   /* 230 */ , "A destructive weapon full of hate"
   /* 231 */ , "Despite its power, it's beautiful"
   /* 232 */ , "A rough weapon like a large fang"
   /* 233 */ , "Let's you feel the wonders of nature"
   /* 234 */ , "When shot, disappears from view"
   /* 235 */ , "Settle it with your paw, meow"
   /* 236 */ , "The clock declares the time of death"
   /* 237 */ , "Easily exceeds the work of a master"
   /* 238 */ , "Pull the string and a scream..."
   /* 239 */ , "Now, pierce through, miracle wings"

   /*           123456789-123456789-123456789-123456 */
   /* 240 */ , "Base material for swords"
   /* 241 */ , "Base material for axes"
   /* 242 */ , "Base material for spears"
   /* 243 */ , "Base material for knuckles"
   /* 244 */ , "Base material for drills"
   /* 245 */ , "Base material for bows"
};

translate_specials(); //special techniques, related to weapons
   patch_table(0x00bc81dc +  0, 68, NUM_SPECIALS, 18, k_special_name);
   patch_table(0x00bc81dc + 28, 68, NUM_SPECIALS, 38, k_special_desc);
http://sntranslation.vacau.com/tlnames.php?page=28 last one
http://sntranslation.vacau.com/tlnames.php?page=29


translate_effects();
   patch_table(0x00bc9100 +  0, 68, NUM_EFFECTS, 18, k_effect_name);
   patch_table(0x00bc9100 + 28, 68, NUM_EFFECTS, 38, k_effect_desc);
http://sntranslation.vacau.com/tlnames.php?page=30
/*           123456789-123456 */
   /*   0 */   "Bolt"
   /*   1 */ , "Bolt Spike"
   /*   2 */ , "Bolt Burst"
   /*   3 */ , "Flare"
   /*   4 */ , "Flare Burn"
   /*   5 */ , "Flare Burst"
   /*   6 */ , "Aqua"
   /*   7 */ , "Aqua Bash"
   /*   8 */ , "Aqua Burst"
   /*   9 */ , "Wind"
   /*  10 */ , "Wind Storm"
   /*  11 */ , "Wind Burst"

   /*  12 */ , "Vampire"
   /*  13 */ , "Vampire +"
   /*  14 */ , "Vampire + +"
   /*  15 */ , "Heal"
   /*  16 */ , "Heal+"
   /*  17 */ , "Heal+ +"
   /*  18 */ , "Repair"
   /*  19 */ , "Repair+"
   /*  20 */ , "Repair+ +"
   /*  21 */ , "Costdown"
   /*  22 */ , "Costdown+"
   /*  23 */ , "Costdown+ +"
   /*  24 */ , "Luck"
   /*  25 */ , "Luck+"
   /*  26 */ , "Luck+ +"

   /*  27 */ , "Knock Back"
   /*  28 */ , "TEC Up"
   /*  29 */ , "Thrust Down"
   /*  30 */ , "Piercing"
   /*  31 */ , "Quick Hit"
   /*  32 */ , "Parry"
   /*  33 */ , "Critical"
   /*  34 */ , "Desperation ATK"
   /*  35 */ , "Desperation DEF"
   /*  36 */ , "Paralyse Attack"
   /*  37 */ , "Sleep Attack"
   /*  38 */ , "Poison Attack"
   /*  39 */ , "Rust Attack"
};

const char * const k_effect_desc[NUM_EFFECTS] = {
   /*           123456789-123456789-123456789-123456 */
   /*   0 */   "Weak lightning element attack"
   /*   1 */ , "Medium lightning element attack"
   /*   2 */ , "Strong lightning element attack"
   /*   3 */ , "Weak fire element attack"
   /*   4 */ , "Medium fire element attack"
   /*   5 */ , "Strong fire element attack"
   /*   6 */ , "Weak water element attack"
   /*   7 */ , "Medium water element attack"
   /*   8 */ , "Strong water element attack"
   /*   9 */ , "Weak wind element attack"
   /*  10 */ , "Medium wind element attack"
   /*  11 */ , "Strong wind element attack"

   /*  12 */ , "Small chance of absorbing little HP"
   /*  13 */ , "Small chance of absorbing some HP"
   /*  14 */ , "Small chance of absorbing lots of HP"
   /*  15 */ , "Recover ~1 HP every ~4 seconds"
   /*  16 */ , "Recover ~5 HP every ~4 seconds"
   /*  17 */ , "Recover ~1~0 HP every ~4 seconds"
   /*  18 */ , "Recover ~1 DUR every  ~8 seconds"
   /*  19 */ , "Recover ~1 DUR every  ~4 seconds"
   /*  20 */ , "Recover ~1 DUR every  ~2 seconds"
   /*  21 */ , "Small reduction for special skills"
   /*  22 */ , "Medium reduction for special skills"
   /*  23 */ , "Large reduction for special skills"
   /*  24 */ , "+ ~5%% chance for enemy item drops"
   /*  25 */ , "+ ~1~0%% chance for enemy item drops"
   /*  26 */ , "+ ~1~5%% chance for enemy item drops"

   /*  27 */ , "Attacks knock the enemies back"
   /*  28 */ , "TEC increases a bit faster"
   /*  29 */ , "In mid-air, Down+ A to attack below"
   /*  30 */ , "Can hit multiple enemies"
   /*  31 */ , "Attack speed is slightly increased"
   /*  32 */ , "Higher chance of parrying"
   /*  33 */ , "Higher critical attack rate"
   /*  34 */ , "In a critical state, increases ATK"
   /*  35 */ , "In a critical state, increases DEF"
   /*  36 */ , "Adds a chance to cause paralysis"
   /*  37 */ , "Adds a chance to cause sleep"
   /*  38 */ , "Adds a chance to cause poison"
   /*  39 */ , "Adds a chance to cause rust"
};

That's all, I will try and do some others later (mainly those related to the level up! screen) I Will post them. The tables were the easier part, I wish you luck with the pointer table! finding that will make this part a lot easier. If you need anything PM me!

Good luck Aent!


: Re: Making text editor.
: Aent September 29, 2014, 11:43:47 AM
A quick post for now and a more extensive one once I get this worked out. I apologize for the delay as well. Life has been keeping me busy. =p

I've been working with various things on and off since my last post. The script dumper works well and will pretty much only be changed now if new script text opcodes are found. I'd also like to add a sort of "notes" line for identifying text types as well. It accounts for both regular and zoomed text. (In hindsight I never did add an error check for zoomed text length.)
(http://oi61.tinypic.com/11ljwch.jpg)
Disregard the "Deikle Village" vs "Deckell Town" inconsistency for now. The 4 black bytes in between are where there was linebreaks. I originally had it like the script ripped from the site, where each dialogue line was a separate entry, but this caused problems when you wanted to remove a line or when a line ran over 18 characters and an automatic linebreak was added. You'd end up with something like:

"This is a rather long
sentence
to be speaking."

The way I have it now, it will automatically put in a line break after 18 characters. It also accounts for where words end so it doesn't line break in the middle of a word. I'll add in the ability to do manual linebreaks as well for situations like:

"Ritchburn...[nl]Why do you have a cat on your head?"

Where [nl] will insert the linebreak. This way it will show as:

"Ritchburn...
Why do you have a
cat on your head?"

At the moment the patcher needs the pointer part of the code rewritten as it doesn't work when the english text size is bigger than the japanese text size.(Keep in mind I'm speaking in byte size here since the japanese text is 2 byte per char and the english is 1 byte per char) While I was able to get it working for smaller english text, I've been meaning to rewrite it for a couple days now since it's rather convoluted and just plain can't work for larger text the way I have it now.

The program to insert everything back into the gba file works well and seems to adjust the pointers accordingly. It adds the PSI3 segments to the end of the file if it is too big to fit where it's supposed to. All good there.

Once the patcher is sorted out, I'll begin moving the translated script over to the new script format. Depending if I can whip something up to do it for me or not, it might be lots of copy/pasting from old to new, lol. I'll also start on the VWF as it's almost to the point where it's necessary to have for me to continue working on certain things.

Hopefully I'll post again in a day or so.


p.s.
Good work on those system messages btw. =]


: Re: Making text editor.
: pablitox September 29, 2014, 08:45:04 PM
I really like them lenghty posts :).

A quick post for now and a more extensive one once I get this worked out. I apologize for the delay as well. Life has been keeping me busy. =p

I've been working with various things on and off since my last post. The script dumper works well and will pretty much only be changed now if new script text opcodes are found. I'd also like to add a sort of "notes" line for identifying text types as well. It accounts for both regular and zoomed text. (In hindsight I never did add an error check for zoomed text length.)


Oh yeah,there's Zoomed text, well if I remember correctly most of them are magdrad/ phantom dragon demon cries, and there's the motto which the MC uses  at the beginning. It goes like:

For a Craftknight!
A hammer is fellowship!
-A hammer is strength!
-A hammer is life!

There's another one used in the script. Also there are some quotes used by bosses, I caught them in Pike 1st battle.

(http://oi61.tinypic.com/11ljwch.jpg)
Disregard the "Deikle Village" vs "Deckell Town" inconsistency for now. The 4 black bytes in between are where there was linebreaks. I originally had it like the script ripped from the site, where each dialogue line was a separate entry, but this caused problems when you wanted to remove a line or when a line ran over 18 characters and an automatic linebreak was added. You'd end up with something like:

"This is a rather long
sentence
to be speaking."

The way I have it now, it will automatically put in a line break after 18 characters. It also accounts for where words end so it doesn't line break in the middle of a word. I'll add in the ability to do manual linebreaks as well for situations like:

"Ritchburn...[nl]Why do you have a cat on your head?"

Where [nl] will insert the linebreak. This way it will show as:

"Ritchburn...
Why do you have a
cat on your head?"

At the moment the patcher needs the pointer part of the code rewritten as it doesn't work when the english text size is bigger than the japanese text size.(Keep in mind I'm speaking in byte size here since the japanese text is 2 byte per char and the english is 1 byte per char) While I was able to get it working for smaller english text, I've been meaning to rewrite it for a couple days now since it's rather convoluted and just plain can't work for larger text the way I have it now.

woha, still bigger? that's a hell of a script!

The program to insert everything back into the gba file works well and seems to adjust the pointers accordingly. It adds the PSI3 segments to the end of the file if it is too big to fit where it's supposed to. All good there.
Awesome, one thing left to do :).
Once the patcher is sorted out, I'll begin moving the translated script over to the new script format. Depending if I can whip something up to do it for me or not, it might be lots of copy/pasting from old to new, lol. I'll also start on the VWF as it's almost to the point where it's necessary to have for me to continue working on certain things.

That's awesome! I stumbled upon a source of info regardinf VWF on a GBA, though it was specifically used for dragon quest monsters: caravan heart for the gba it had quite a good info on how it could be done on any GBA rom, if you want I can send it to you.
Hopefully I'll post again in a day or so.


p.s.
Good work on those system messages btw. =]


thanks! Glad to be of help.

Good luck Aent!

Cheers!


: Re: Making text editor.
: BlackDog61 October 25, 2014, 10:06:06 PM
Hi there!

Hopefully everyone is doing good and busy in real life. Just thought I'd come by and say hello.  :happy:
How are things?

Black


: Re: Making text editor.
: pablitox October 26, 2014, 08:43:42 PM
Hi there!

Hopefully everyone is doing good and busy in real life. Just thought I'd come by and say hello.  :happy:
How are things?

Black

Howdy black!!! Long time no see, how are you doing?

We are waiting for aent's input in the inserter, they have been kind of busy so not much progress has been made. Everyones busy so progress is kinda slow right now, I have faith in those guys though.


: Re: Making text editor.
: pablitox December 22, 2014, 03:09:40 PM
I came back, kinda lol. I will need some graphics translations as another user of the gbatemp forums can insert then ingame Leaf. Do you mind translating some of them?

Here's the link: http://www.mediafire.com/download/akb7db17d8iu5nu/HnI_Graphics.rar



: Re: Making text editor.
: leaf December 24, 2014, 09:40:53 AM
They can do the image editing then? Here's the translations.

Choose 1:
主人公選択
Select Hero

Choose partner:
パートナー選択
Select Partner

Enzi:
スピード型
Speedy [lit. "Speed type"]
スピードが速く
扱いやすいが攻撃力は低め。
Fast and easy to use, but attack power is low.

A: Confirm
B: Cancel


Fishing minigame:
ゲーム説明
How to play [lit. "Game description"]
手順1:Aボタンでパワーゲージを止めて、ウキを投げます。
Step 1: Press the A button to stop the Power Gauge and throw the float.
手順2:ウキの次むタイミングを見てAボタンで引き上げます。
Step 2: When the float sinks, press the A button to reel in.
手順3:「FISH ON」表示の後、パワーゲージを数回止めて釣り上げましょう。
Step 3: When "FISH ON" appears, stop the Power Gauge repeatedly to catch the fish.

[Or just use the SN2 description, since it seems to be the same minigame, and after looking at it, I think I prefer their translation.]

Killfith:
飛行型
Flying [lit. "Flight type"]
空中を移動できて
使いやすいが体力は低め。
Able to fly through the air. Easy to use, but stamina is low.


OP narration:
ここは異世界りィンバウム(...)かつて楽園とも呼ばれていた地
This is the world of Lyndbaum(...) a land once called paradise.

Rufeel:
平均型
Balanced [lit. "Average type"]
バランスが良く
扱いやすいが魔力は低め。
Well balanced and easy to use, but magic power is low.

RUN-DOR:
パワー型
Power [lit. "Power type"]
攻撃力と防御力が高いがスピードは遅め。
Attack and defense power are high, but speed is low.

SN3GBA-NPCNames: [Uh, that's a lot of names. I don't wanna romanize something differently here from the rest of the game, so I'll have to come back to this after cross-referencing the script.]

Summon Night Swordcraft Story Stone of Beginnings: [...do I really need to?]
サモンナイト
Summon Night
クラフトソード物語
Swordcraft Story
~はじまりの石~
~Stone of Beginnings~

Summon Night - Craft Sword Monogatari - Hajimari no Ishi (Japan) [numbers]:
ゲーム説明
How to play [lit. "Game description"]
Xんでくるマキを武器を使って割ろう。
制限時間や時々Xんでくるハンマーには気を付けよう。

[Last one, and probably the most difficult. The "X" is a placeholder for a kanji I can't quite make out. It looks kinda like 「飛」、 but that doesn't really make sense. The first line says something about cutting wood with a weapon. The second line says to beware the time limit and something about the hammer, but I can't figure out what the missing kanji is supposed to be from the context.]


: Re: Making text editor.
: pablitox December 24, 2014, 06:30:29 PM

Thanks leaf! yeah I got help from another user who can do some graphics hacking, here's a sample (credits to GHANMI of course):

https://dl.dropboxusercontent.com/u/144606983/sn3/SN3%20HnI%20Intro.png
https://dl.dropboxusercontent.com/u/144606983/sn3/SN3%20HnI%20Sample.png


They can do the image editing then? Here's the translations.

Choose 1:
主人公選択
Select Hero

Choose partner:
パートナー選択
Select Partner

Enzi:
スピード型
Speedy [lit. "Speed type"]
スピードが速く
扱いやすいが攻撃力は低め。
Fast and easy to use, but attack power is low.

A: Confirm
B: Cancel


Fishing minigame:
ゲーム説明
How to play [lit. "Game description"]
手順1:Aボタンでパワーゲージを止めて、ウキを投げます。
Step 1: Press the A button to stop the Power Gauge and throw the float.
手順2:ウキの次むタイミングを見てAボタンで引き上げます。
Step 2: When the float sinks, press the A button to reel in.
手順3:「FISH ON」表示の後、パワーゲージを数回止めて釣り上げましょう。
Step 3: When "FISH ON" appears, stop the Power Gauge repeatedly to catch the fish.

[Or just use the SN2 description, since it seems to be the same minigame, and after looking at it, I think I prefer their translation.]

Killfith:
飛行型
Flying [lit. "Flight type"]
空中を移動できて
使いやすいが体力は低め。
Able to fly through the air. Easy to use, but stamina is low.


OP narration:
ここは異世界りィンバウム(...)かつて楽園とも呼ばれていた地
This is the world of Lyndbaum(...) a land once called paradise.

Rufeel:
平均型
Balanced [lit. "Average type"]
バランスが良く
扱いやすいが魔力は低め。
Well balanced and easy to use, but magic power is low.

RUN-DOR:
パワー型
Power [lit. "Power type"]
攻撃力と防御力が高いがスピードは遅め。
Attack and defense power are high, but speed is low.

SN3GBA-NPCNames: [Uh, that's a lot of names. I don't wanna romanize something differently here from the rest of the game, so I'll have to come back to this after cross-referencing the script.]

Summon Night Swordcraft Story Stone of Beginnings: [...do I really need to?]
サモンナイト
Summon Night
クラフトソード物語
Swordcraft Story
~はじまりの石~
~Stone of Beginnings~

Summon Night - Craft Sword Monogatari - Hajimari no Ishi (Japan) [numbers]:
ゲーム説明
How to play [lit. "Game description"]
Xんでくるマキを武器を使って割ろう。
制限時間や時々Xんでくるハンマーには気を付けよう。

[Last one, and probably the most difficult. The "X" is a placeholder for a kanji I can't quite make out. It looks kinda like 「飛」、 but that doesn't really make sense. The first line says something about cutting wood with a weapon. The second line says to beware the time limit and something about the hammer, but I can't figure out what the missing kanji is supposed to be from the context.]
The last one is about a minigame where the firechopper literally throws logs at you, and you have to hit them with a weapon of your choice, this is to raise that weapon's TEC stat. I'll search for a more clear image.!

Anyway, thanks for the translations, really, I'm playing the game so I'll help with some romanizations, Here are some:

戦士: soldier
サージ: Serge
マグドラド:Magdrad

Oh boy,I'm writing in moonrunes!  :happy:


: Re: Making text editor.
: leaf December 24, 2014, 07:59:13 PM
Oh wow, then it probably *is* 飛んでくるマキ

Literally, "flying firewood"

I assume it sometimes throws a hammer at you instead?

飛んでくるマキを武器を使って割ろう。
Try to cut the firewood with your weapon.

制限時間や時々飛んでくるハンマーには気を付けよう。
Beware the time limit and occasional hammer.


: Re: Making text editor.
: pablitox December 25, 2014, 01:32:35 AM
Oh wow, then it probably *is* 飛んでくるマキ

Literally, "flying firewood"

I assume it sometimes throws a hammer at you instead?

飛んでくるマキを武器を使って割ろう。
Try to cut the firewood with your weapon.

制限時間や時々飛んでくるハンマーには気を付けよう。
Beware the time limit and occasional hammer.

Yup, that's it, the flying firewood minigame, google translator gives: maki assign game, lol.

That one, many thanks leaf! We have something to do while we wait for aent's update.


: Re: Making text editor.
: leaf December 25, 2014, 11:13:20 AM
Google translate can be really finicky. If you ever get an accurate translation for a complete sentence, consider yourself lucky lol

It usually works pretty well for small parts, though, and I often make use of it when I encounter kanji I'm not familiar with.


: Re: Making text editor.
: pablitox December 27, 2014, 05:22:19 AM
Google translate can be really finicky. If you ever get an accurate translation for a complete sentence, consider yourself lucky lol

It usually works pretty well for small parts, though, and I often make use of it when I encounter kanji I'm not familiar with.

ahaha, yeah, I've tried it, God you can't understand most of the phrases.



: Re: Making text editor.
: pablitox December 30, 2014, 12:56:13 AM
I want to announce a new patch release :D after some months there was a lot of progress in the graphics of the game, which are also quite important, this includes in-game portraits, partner's naming screen, and minigame description (the firewood minigame one).

http://www.mediafire.com/download/l1suy7m816i8sm5/sn3gba_graphic_menus_v0.6_Jrombase.ups

Thanks and kudos to Ghanmi from the gbatemp forums for the big graphic help, mz, Almagest and FAST for helping with kanji identification for a handful of graphical NPC names.TsubasaShaoranExel and Leaf, as well as the previous translators, for names.

To leaf, hope the script is treating you well, xD If you need any type of context of when a char is saying anything and how ask me right away, I'll be glad to help.


: Re: Making text editor.
: pablitox February 09, 2015, 10:38:03 PM
Hey there, wanted o make a bit of a post.

I did change some graphics, thanks to ghanmi for the quick tutorial, so this leaves only compressed graphics and the script insertion. I did not receive any news from Aent of whatsoever, so I'm looking for help again. I hope that aent can share with use what they have if they decide to answer again.


: Re: Making text editor.
: pablitox April 12, 2015, 02:11:56 AM
I am still taking appliances to finish this translation, romhackers needed


: Re: Making text editor.
: pablitox June 22, 2015, 09:05:44 PM
This is still going!

(http://i.imgur.com/P154Uic.jpg)
This thread will be used to give an update on the translation of this game. The old thread had a lot of outdated information and broken links, so I decided to make a new one with the latest patch and information available.

A bit of story - Translation

As far as it goes, the translation had it's problems since the beginning: translators and hackers leaving with a half unfinished job were the most common.
Two years ago, the project was revived by oil_ who made a site the translation:

http://sntranslation.vacau.com (http://sntranslation.vacau.com)

A lot of people did contribute to it (kind of an open translation) though some parts of it still bother me a bit (some stiff translations, untranslated lines, etc). Luckily, another user is making a TLC and proofreading, so when I receive the polished version I'll post it. Meanwhile, here's the current version of the script: https://github.com/wangds/sncsm3/blob/master/resources/scriptTXT.7z (https://github.com/wangds/sncsm3/blob/master/resources/scriptTXT.7z)

Hacking the game

Well, that's all about the translation so far. The hacking front wasn't as lucky as the other one, but some progress has been made since oil_ left:

Graphical front: following parakarry's footsteps, ghanmi could make use of their awesome skills and translated some graphics:

(http://i.imgur.com/nCHQgQx.png)
(http://i.imgur.com/0JKpdIY.png)
(http://i.imgur.com/C0vOpOn.png)

Though some of them are still missing:

+Select Hero: (http://i.imgur.com/6uvmcld.png)
+Select Partner: (http://i.imgur.com/eYIFZkF.png)
+"Tsushin" (Link) in-menu graphic
+"Omake" (Extras) in-menu graphic
+Similar in-menu graphics in Engrish that may need fixing
+Fishing tutorial: (http://i.imgur.com/3itpbih.png)
+Names in Credits

and some minor problems:

+Title screen, third and fourth options: I messed up inserting one of the four frames for "2P" ("tsushin/link" option, the graphic probably needs to be redone) and didn't touch omake "bonus".
For those two I'll need to use the no$gba debugger to move the sprites anyways removing the gaps for a proper translation.
+Opening lines not fixed yet to use the proper translation ("a land called paradise"). This should be possible (called "a paradise land" once). The wording is awkward because of tiles repeating and imposing draconian limitations on the thing, but it should be possible if the tilemap is modified.
+The glow effect doesn't match the crude shitty new English logo. It needs heavy tile map reworking.

All the NPC and character's grahpics were translated. I'll try searching for the missing ones, but if someone wants to help it could be good too. Here are some files which will be useful:

Parakarry's old files: https://www.mediafire.com/folder/3ltu3ztzon6t7/patch (https://www.mediafire.com/folder/3ltu3ztzon6t7/patch)


Script front: This one's the most difficult so far. For what I gathered asking the process involve finding some opcodes of the game (pointers that indicate what the game has to do, example load V.E's portrait, wait for user's input to advance, etc). Luckily, another user from the last thread, Earthdarkness, has decided to lend us a helping hand making tools that can overcome the character limits of each line. We'll have to wait for their input on the tools, but im sure it will be done.

About the system messages, Ritchburn's tools did provide a good help to translate things like weapons, items. So far the progress in that front is:

Weapons: 100% translated (with each weapon's description).
Items (includes equipables, imbue, recovery, ores): 100% translated.
Quest Items (99% translated; did find a problem with some of them, more on that in a while).
Magic: 100% translated. (even the guardian beast special attack).
Special Skills: 100% translated.
Bestiary: 100% translated (proofreading could be awesome).
Boss data: 90%
Other system messages:~50% Translated.

The process involved a lot of trial and error, so I left it kind of unfinished. Also there's certain problems I found with some messages:
  • One of them is a boss which
    should have the same name as the main character, same as with your partner
    I found no way to assing it. If someone could look that one up, it could be awesome.
  • In the same way, one system message goes roughly like: (Guardian) smithing rank is now (Option1) (in runes: (Guardian)鍛冶ランクが(Option1)になりました) where (Guardian) means the type of weapon (sword, axe, spear, fist, drill, bow) and (option1) is the rank (Usually 1, 2 or 3).
If anyone could help me and take a look at them, It'd be useful too.

The patch

Here's the latest patch released:

http://www.mediafire.com/download/l1suy7m816i8sm5/sn3gba_graphic+menus_v0.6_Jrombase.ups (http://www.mediafire.com/download/l1suy7m816i8sm5/sn3gba_graphic+menus_v0.6_Jrombase.ups)

it includes the graphics done by ghanmi and some of my translated system messages.

Credits:

translation:
macaronron
salixa
X_Wings
xswordcraftx
cyan
haruka-123
Zynk
Akiron
Chronomoogle
TheZu
gangrelion

hacking
Ritchburn
Aent
TLZ
Earthdarkness
Ghanmi
and everyone else involved I may have forgotten, lol.

Contact

PM me or send a message to pablofernandez409@hotmail.com , I'd strongly advice NOT to use the sntranslation chatroom as the site is totally outdated.

Updates

soon.


: Re: Making text editor.
: pablitox November 29, 2017, 06:29:38 PM
Hey everyone! sorry for necro bumping this post again.


I'm still working on Hajimari no Ishi, and while we made a LOT of progress translating the script, we need help inserting it back into the rom.

Hopefully Aent is not busy enough to help us back, or another person with similar hacking knowledge.


Thank you! :happy:


: Re: Making text editor.
: Fox November 30, 2017, 06:46:08 AM
I should probably look into this again.

Would be fun if I could find a way to make it use Golden Sun's text compression!

Just remember, I make *no promises*, though.... Esp. since that last time I looked at it (years ago),.... it turned out I didn't make much progress...  I forget if we documented any of the code or not. So I'll need to find those addresses again. - It'll likely be a complex task...


@Script = So do we have it in a text document? One line per index? (If the game does it by index? Forget. Edit: Oh yes, you have it one per file by address... went to the link in the earlier post.) I know that lines can have funny stuff going on in them, though. But I'll need to think what's actually needed in the event /all/ the text is being compressed at the same time. (And with the possibility of modifying the code.)


For now, I will just look... then decide if I'll do anything a bit later.


---
I think I'll document the functions.... There's likely going to be a lot of code editing(?) if this goes through?
And with the compression format theory, you don't really have to go to 8-bit char... could keep it 16-bit. (Maybe, at least with a slightly modified version of the compression format.) ... Since that's what would be in the char trees... where-as, the text data would be variable bits. (In theory.) ; But I think I'm interested in making it 8-bits when it is in the char trees... should I ever have a decent enough plan....


: Re: Making text editor.
: pablitox November 30, 2017, 08:33:37 PM
I should probably look into this again.

Would be fun if I could find a way to make it use Golden Sun's text compression!

Just remember, I make *no promises*, though.... Esp. since that last time I looked at it (years ago),.... it turned out I didn't make much progress...  I forget if we documented any of the code or not. So I'll need to find those addresses again. - It'll likely be a complex task...


@Script = So do we have it in a text document? One line per index? (If the game does it by index? Forget. Edit: Oh yes, you have it one per file by address... went to the link in the earlier post.) I know that lines can have funny stuff going on in them, though. But I'll need to think what's actually needed in the event /all/ the text is being compressed at the same time. (And with the possibility of modifying the code.)


For now, I will just look... then decide if I'll do anything a bit later.


---
I think I'll document the functions.... There's likely going to be a lot of code editing(?) if this goes through?
And with the compression format theory, you don't really have to go to 8-bit char... could keep it 16-bit. (Maybe, at least with a slightly modified version of the compression format.) ... Since that's what would be in the char trees... where-as, the text data would be variable bits. (In theory.) ; But I think I'm interested in making it 8-bits when it is in the char trees... should I ever have a decent enough plan....

That would be definitely useful fox! Hopefully your try yields good results this time.

As a reminder of where we are right now: the script is currently compressed using LZ77, and it's made of PSI3 files or varying lengths. Each of this script files have a subset of different control codes, that tell the game how to show the information (portraits, type of text box, if the dialogue branches etc) A lot of them have been identified and I'm doing my best to document them, it will take a day or two though. It's not a complete list but I'm sure it'll be useful too.


: Re: Making text editor.
: Fox November 30, 2017, 11:17:13 PM
Well, any work to bring the translation project 1 step closer to finishing is good work.... (Even if it's minor.)

Sounds good. Where might I find the most updated English script, anyway?  Not too familiar with PSI3 files, but I'll look at them. I think before I was studying system related text (Uncompressed)... But all that is nice to know.



Thinking about it a little more, should we not fully do 8-bits... (If 16-bits are easier.)... we can still do the GS Compression, and still do 8-bits in the char tables (Since I just realized 16-bits there would be clumsy regardless/Would have made sense for normal Huffman, though.), but have those values look up the 16-bit codes. Hm! (That'd be a max 0x200 byte table (Likely less) + whatever code to make it work.) Each 16-bit would represent a single character, though... So double characters should be avoided... to do variable length characters) -- But of course, I'd like to do a bit of research on Summon Night's code, so a lot of this could just be empty thoughts.


: Re: Making text editor.
: pablitox December 01, 2017, 12:04:28 AM
Well, any work to bring the translation project 1 step closer to finishing is good work.... (Even if it's minor.)

Sounds good. Where might I find the most updated English script, anyway?  Not too familiar with PSI3 files, but I'll look at them. I think before I was studying system related text (Uncompressed)... But all that is nice to know.

The most updated english script is here: https://github.com/salixa/SNSC3-Translation

As you can see, it's formatted differently because some progress was made in identyfying the control codes. Alas I don't have all the info available.

Arount here, page 5-6 there's some tools to rip and uncompress the english script, using a C function first and passing the scripts through DSDECMP


: Re: Making text editor.
: Fox December 01, 2017, 01:08:23 AM
Okay. Thanks! Wow. A lot to take in.

And that sounds nice. I kind of wish there was a key. (Hex values that represent each control code.) I'll probably get them as I document the game code. (Depending on how much time I devote to it.) ; (Though, I guess you're working on that... if going by your posts.)

@rip/uncompress = If it is compressed in the ROM, another option is to just dig it out of the game's RAM where it is decompressed?


: Re: Making text editor.
: pablitox December 01, 2017, 03:46:14 AM
Okay. Thanks! Wow. A lot to take in.

And that sounds nice. I kind of wish there was a key. (Hex values that represent each control code.) I'll probably get them as I document the game code. (Depending on how much time I devote to it.) ; (Though, I guess you're working on that... if going by your posts.)

@rip/uncompress = If it is compressed in the ROM, another option is to just dig it out of the game's RAM where it is decompressed?

if it's useful, the uncompressed script inside the gba are stored at 0x02006000 which is in the WRAM. Some control codes were documented with their hex value, once I'm done I'll share them.


: Re: Making text editor.
: pablitox December 03, 2017, 04:41:21 AM
Okay. Thanks! Wow. A lot to take in.

And that sounds nice. I kind of wish there was a key. (Hex values that represent each control code.) I'll probably get them as I document the game code. (Depending on how much time I devote to it.) ; (Though, I guess you're working on that... if going by your posts.)

@rip/uncompress = If it is compressed in the ROM, another option is to just dig it out of the game's RAM where it is decompressed?

I have collected everything I know about how the control codes work in-game, with some examples. Also, how the script is read by the game.

Here's the file: https://www.mediafire.com/file/os9sqb59xpdbbw7/List%20of%20Hajimari%20no%20Ishi%20Control%20Codes.txt


: Re: Making text editor.
: Fox December 03, 2017, 06:49:48 PM
Oh cool. That's nice.

One thing, though.  It looks a bit unorganized and rushed.

I'd prefer the commands written the 16-bit way (That is the way they are written, right?).... and for them to be in order by their number... So like....

Something like below, but I'll have to work quite a bit on it....

---

General / Control Flow?
0000
0001
0002 = conditional jump, test player's gender
0003 = simple jump
0004 = End of script
0005
0006
0007 = function call

(Not sure if there are categories for 0100+ and 0200+)


???
0300
0301
0302
0303
0304
0305
0306
0307 = Set variable
0308 = Normal Text box
0309 = for text that spans 3 lines
030A
030B = Text box with large letters
030C = for one line
030D = options
030E = End
030F
0310
0311 =  Box with Title (Where will you go?)
0312 = Box without Title (just a text box)
0313 = default option (no option chose)
0314 = option (Deikle Village)
0315 = end of menu
0316
0317 = popup message: This are special text boxes that are really small and appear in the middle of the screen
0318 = wait for key press on pop up text box??

0363 = set actual place in the game's menu

037D = set name sprite
037E = set visible or invisible (portrait) Invisible are for NPC which doesn't have any portraits


???
0478 = sets portrait.
0479 = sets eye expression and mouth expression.
047A
047B
047C
047D = adds extra sprites if the portrait is wider.


: Re: Making text editor.
: pablitox December 03, 2017, 07:29:49 PM
Oh cool. That's nice.

One thing, though.  It looks a bit unorganized and rushed.

I'd prefer the commands written the 16-bit way (That is the way they are written, right?).... and for them to be in order by their number... So like....

Something like below, but I'll have to work quite a bit on it....

---

General / Control Flow?
0000
0001
0002 = conditional jump, test player's gender
0003 = simple jump
0004 = End of script
0005
0006
0007 = function call

(Not sure if there are categories for 0100+ and 0200+)


???
0300
0301
0302
0303
0304
0305
0306
0307 = Set variable
0308 = Normal Text box
0309 = for text that spans 3 lines
030A
030B = Text box with large letters
030C = for one line
030D = options
030E = End
030F
0310
0311 =  Box with Title (Where will you go?)
0312 = Box without Title (just a text box)
0313 = default option (no option chose)
0314 = option (Deikle Village)
0315 = end of menu
0316
0317 = popup message: This are special text boxes that are really small and appear in the middle of the screen
0318 = wait for key press on pop up text box??

0363 = set actual place in the game's menu

037D = set name sprite
037E = set visible or invisible (portrait) Invisible are for NPC which doesn't have any portraits


???
0478 = sets portrait.
0479 = sets eye expression and mouth expression.
047A
047B
047C
047D = adds extra sprites if the portrait is wider.

Yeah, it's a bit rushed, sorry >_< they are written by how you'd find them on the script files.



: Re: Making text editor.
: Fox December 03, 2017, 08:37:01 PM
Oh no, you're fine. It's no problem.... This'll be very useful during research.
Was more or less saying that going forward, I will be trying to use this other way. (I might include the arguments too. though I left those out of my example.)


: Re: Making text editor.
: pablitox December 04, 2017, 12:34:51 PM
Oh no, you're fine. It's no problem.... This'll be very useful during research.
Was more or less saying that going forward, I will be trying to use this other way. (I might include the arguments too. though I left those out of my example.)

I see. Glad it was useful!

One question, suppose all the functions have been identified properly, I guess we'll have to code them to make a decent dumper/inserter that, in case of the dumper writes down the XML plus the japanese text, and in the case of the inserter, reads up the xml formatted text and writes down the opcodes + translated text, am I right?

of course, we'd need to take into consideration the fact that the sizes of each script will be different, and thus we'll need to modify the script table...I think that's how it was supposed to go down.




: Re: Making text editor.
: Fox December 07, 2017, 01:05:44 AM
Yeah, sounds like a good way to go... Especially if we ever want those tools to be used for more than just translating...
As for the script table? I am not sure exactly what that refers to, but I don't imagine it to be a problem? (Re-pointing is easy if you got the space. Right?)
(A bit random, but I kind of hate Python when it comes to file management. C# does a pretty good job, though.)

I've already started documenting. The document is at https://docs.google.com/document/d/19HGbHkmIUfvd7fc0_gEpcuAjtwagtr7HpLv2dwE5jPg/edit
It it is to list most of the functions in the game. (Functions being the code blocks that were intended to be called.)

This is just the start, and there's a long way to go. But it's nice seeing the first section (0000+) only has a small number of commands.

0000 = Unused (Pointer is 00000000)
0001 xxxx xxxx EXPR = Set var to EXPR (xxxx=Type (2/3) , xxxx (2nd) =Index)
0002 xxxx EXPR = Conditional jump (in script) if EXPR=0.
0003 xxxx = Simple Jump
0004 = Related to ending script?
0005 EXPR = Loads PSI3 file. (Index being EXPR) Current position is not saved.
0006 EXPR = Loads/calls PSI3 file. (Index being EXPR) Current position is saved.
0007 xxxx = Function call (For same 0x1C byte entry)
0008 = Return from sub-function. (Does nothing if in main function?)
0009 xxxx = Function call? (Another 0x1C byte entry?)
000A EXPR = Sets slot EXPR (0-7) to type 0x9.
000B EXPR = Gets the on flags for the engine block EXPR (0/1)
000C = Nothing (Just returns 0 to continue script.)
000D = Sets PSI3 file id(Not sure?) to 0000, but doesn't load it? (Unknown purpose.)
000E = Unused (Pointer is 00000000)
000F = Unused (Pointer is 00000000)

In the code, these ^ are pretty much separated into two groups, interesting enough. 0001,0004-0009 in the first group, 0002,0003,000A-000D in the other group.


: Re: Making text editor.
: pablitox December 07, 2017, 02:19:18 AM
Yeah, sounds like a good way to go... Especially if we ever want those tools to be used for more than just translating...
As for the script table? I am not sure exactly what that refers to, but I don't imagine it to be a problem? (Re-pointing is easy if you got the space. Right?)
(A bit random, but I kind of hate Python when it comes to file management. C# does a pretty good job, though.)

I've already started documenting. The document is at https://docs.google.com/document/d/19HGbHkmIUfvd7fc0_gEpcuAjtwagtr7HpLv2dwE5jPg/edit
It it is to list most of the functions in the game. (Functions being the code blocks that were intended to be called.)

This is just the start, and there's a long way to go. But it's nice seeing the first section (0000+) only has a small number of commands.

0000 = Unused (Pointer is 00000000)
0001 xxxx xxxx EXPR = Set var to EXPR (xxxx=Type (2/3) , xxxx (2nd) =Index)
0002 xxxx EXPR = Conditional jump (in script) if EXPR=0.
0003 xxxx = Simple Jump
0004 = Related to ending script?
0005 EXPR = Loads PSI3 file. (Index being EXPR) Current position is not saved.
0006 EXPR = Loads/calls PSI3 file. (Index being EXPR) Current position is saved.
0007 xxxx = Function call (For same 0x1C byte entry)
0008 = Return from sub-function. (Does nothing if in main function?)
0009 xxxx = Function call? (Another 0x1C byte entry?)
000A EXPR = Sets slot EXPR (0-7) to type 0x9.
000B EXPR = Gets the on flags for the engine block EXPR (0/1)
000C = Nothing (Just returns 0 to continue script.)
000D = Sets PSI3 file id(Not sure?) to 0000, but doesn't load it? (Unknown purpose.)
000E = Unused (Pointer is 00000000)
000F = Unused (Pointer is 00000000)

In the code, these ^ are pretty much separated into two groups, interesting enough. 0001,0004-0009 in the first group, 0002,0003,000A-000D in the other group.

Amazing!! Well the dumper's ready then (i'll send you a link to a drive folder so you can post there all your findings if you want and check what we have done so far).


Nice, I'll bookmark the file to check it out throughly. I'll edit this post if I have any questions!


: Re: Making text editor.
: Fox December 07, 2017, 02:37:27 AM
You are welcome. Still got to document the other commands, though. = Hopefully I can get at least half of those in this month. (?)

Sounds good. I also have it in my Hacking Docs folder. (Misc. Docs link in my signature.)


: Re: Making text editor.
: pablitox December 10, 2017, 05:04:06 AM
You are welcome. Still got to document the other commands, though. = Hopefully I can get at least half of those in this month. (?)

Sounds good. I also have it in my Hacking Docs folder. (Misc. Docs link in my signature.)


That'll be most helpful! thanks fox

Meanwhile I'll keep working on the graphic task.


: Re: Making text editor.
: Fox December 11, 2017, 01:35:39 AM
Alright.. I have a tiny bit of info...


"in this case the opcode is: 16 03 01 00 18 01 00 00 83 C1 00 00 The text in this opcode is 83 C1 which is translated to your partner name. Soon after this opcode we have a 0B 03 (big text) with 83 C1 81 49 81 49 that is: (Partner name) + "!!" But when testing I only saw the :(Partner name) + "!!", when the character summons him/her. I didn't see the summon name by it self as the 16 03 opcode is sugesting. That opcode is kinda weird, maybe this opcode will need some brute force search. t's not like there is much text in that opcode format. About all of it is or user created names and or '!' and or '?'. The only thing we need to take a look is that player name + 'Da'(japanese) + '!'. I think its the only of those 16 03 opcodes we might need to change. Do you have any clue to why a japanse would put a 'Da' after a name? (maybe something we need to translate)
When I looked at the code on this, it looked like this command (0316) is for getting the number of characters in the text string.

0316 EXPR TEXT
EXPR = Refers to where in memory to set the number of characters in text to.
TEXT = The text to check (Using CX83 will read from the text variables)

Does that make any sense?


: Re: Making text editor.
: pablitox December 11, 2017, 01:47:08 AM
Alright.. I have a tiny bit of info...


"in this case the opcode is: 16 03 01 00 18 01 00 00 83 C1 00 00 The text in this opcode is 83 C1 which is translated to your partner name. Soon after this opcode we have a 0B 03 (big text) with 83 C1 81 49 81 49 that is: (Partner name) + "!!" But when testing I only saw the :(Partner name) + "!!", when the character summons him/her. I didn't see the summon name by it self as the 16 03 opcode is sugesting. That opcode is kinda weird, maybe this opcode will need some brute force search. t's not like there is much text in that opcode format. About all of it is or user created names and or '!' and or '?'. The only thing we need to take a look is that player name + 'Da'(japanese) + '!'. I think its the only of those 16 03 opcodes we might need to change. Do you have any clue to why a japanse would put a 'Da' after a name? (maybe something we need to translate)
When I looked at the code on this, it looked like this command (0316) is for getting the number of characters in the text string.

0316 EXPR TEXT
EXPR = Refers to where in memory to set the number of characters in text to.
TEXT = The text to check (Using CX83 will read from the text variables)

Does that make any sense?


I think it does make sense for this control code.

It's not like there is much text in that opcode format as earth said. I think we can leave it like that. What do you say?


: Re: Making text editor.
: pablitox December 13, 2017, 04:13:06 PM
I'm gonna addsome functions to the drive you made, these ones were identified by normmatt:

ROM:08003BC0 ; unsigned int __fastcall DrawCharacter(int src, int dest, int src_offset, int bg_color)
ROM:08003BC0 DrawCharacter
ROM:08003EB8 ; unsigned int __fastcall DrawCharacter_0(int src, int dest, int src_offset, int bg_color)
ROM:08003EB8 DrawCharacter_0
ROM:08001F14 DrawString
ROM:0800348C GetCharacterAddressInFont

One of the drawcharacter is for the normal font, while the other is for the big characters font (no clue which one's which)


: Re: Making text editor.
: Fox December 14, 2017, 04:14:51 AM
Are there only like ~two ARM functions in this game (and the rest is THUMB.) or am I missing something?


---
@What do you say?
Sure, I guess.

---

@Next post: Thanks! I've added them, but I need to figure out those others in the area...
08001D0C = Stores table addresses to RAM.
 03002970 | 08BDA40C 098C8D9C 09718FFC 094D446C 09E2261C
08001D3C = File look up(table number, index of file) ; Returns address
08001D5C = File look up(table number, index of file) ; Returns size
08001D78 = File look up(table address, index of file) ; Returns address
08001D88 = File look up(table address, index of file) ; Returns size

08001D94 =
08001D98 =
08001DC4 =
08001DE8 =
08001E14 =
08001E38 =
08001E4C =
08001E64 =
08001E70 =
08001EA0 =
08001ED4 =
08001EE4 =
08001EFC =
08001F14 = DrawString(dest, textAddr, , src_offset (16-bit), bg_color)
080020A8 = (Text related)
080022B4 = (Text related) - Alternates between calling 08003B9C and 08003BA8 for each text character. No idea if it was meant to clear character.
08002388 =
080026CC =
08002A64 =
08002CB4 =
080031E8 =
0800348C = GetCharacterAddressInFont(text character id)
0800350C =
08003620 =
08003664 =
080036C4 =
080036F8 = (Text related) Draw string? (dest?,srcText,?)
0800379C = “
08003840 =
0800393C =
08003A20 =
08003B9C =
08003BA8 =
08003BC0 = DrawCharacter(src, dest, src_offset, bg_color)
08003EB8 = DrawCharacter_0(src, dest, src_offset, bg_color)
080041C8 =
080043E4 =

080044B0 = -- From here on down - I/O stuff (Indirectly)

Those two: DrawCharacter and DrawCharacter_0... Seem like each are called alternatingly... (Every other character using one, the other "every other character" using the other? Hmm.... But as with what I have in the quote, there's clearly more stuff to look into... so...


: Re: Making text editor.
: pablitox December 14, 2017, 02:14:35 PM
Are there only like ~two ARM functions in this game (and the rest is THUMB.) or am I missing something?


---
@What do you say?
Sure, I guess.

---

@Next post: Thanks! I've added them, but I need to figure out those others in the area...
08001D0C = Stores table addresses to RAM.
 03002970 | 08BDA40C 098C8D9C 09718FFC 094D446C 09E2261C
08001D3C = File look up(table number, index of file) ; Returns address
08001D5C = File look up(table number, index of file) ; Returns size
08001D78 = File look up(table address, index of file) ; Returns address
08001D88 = File look up(table address, index of file) ; Returns size

08001D94 =
08001D98 =
08001DC4 =
08001DE8 =
08001E14 =
08001E38 =
08001E4C =
08001E64 =
08001E70 =
08001EA0 =
08001ED4 =
08001EE4 =
08001EFC =
08001F14 = DrawString(dest, textAddr, , src_offset (16-bit), bg_color)
080020A8 = (Text related)
080022B4 = (Text related) - Alternates between calling 08003B9C and 08003BA8 for each text character. No idea if it was meant to clear character.
08002388 =
080026CC =
08002A64 =
08002CB4 =
080031E8 =
0800348C = GetCharacterAddressInFont(text character id)
0800350C =
08003620 =
08003664 =
080036C4 =
080036F8 = (Text related) Draw string? (dest?,srcText,?)
0800379C = “
08003840 =
0800393C =
08003A20 =
08003B9C =
08003BA8 =
08003BC0 = DrawCharacter(src, dest, src_offset, bg_color)
08003EB8 = DrawCharacter_0(src, dest, src_offset, bg_color)
080041C8 =
080043E4 =

080044B0 = -- From here on down - I/O stuff (Indirectly)

Those two: DrawCharacter and DrawCharacter_0... Seem like each are called alternatingly... (Every other character using one, the other "every other character" using the other? Hmm.... But as with what I have in the quote, there's clearly more stuff to look into... so...

Glad it was useful!! One question about your first statement, how you differentiatie between ARM and THUMB functions? I though THUMB was just a subset of ARM, just with 16bits instructions.

So that area is where the functions are stored is that right? As in, each call in the control codes refer to the functions in that place you pointed out.

As normmatt explained us, at least one DrawCharacter is called to draw normal text, while the other is called when the text box contains BIG characters (if you play the game, just the first text to show up will have a bigger font and be displayed in the middle of the screen)


: Re: Making text editor.
: Fox December 14, 2017, 06:00:30 PM
Well, yes.... That is basically it. THUMB is cut-down ARM. However, I usually say ARM for 32-bit instructions, and THUMB for 16-bit instructions. (Kind of how it is labeled in VBA's Tools>Disassemble...)

So that area is where the functions are stored is that right? As in, each call in the control codes refer to the functions in that place you pointed out.
Well, kind of indirectly. I guess you can kind of think of it like a tree, but the root/parent functions for the control codes/commands aren't in this area. (However, they may call some of these functions, may need to check into that.)
In what I posted, I was going through the code to list what looked like functions that can be called. (Generally.) Usually they're easy to tell because most functions (not all) are nested in push and pop instructions.

As normmatt explained us, at least one DrawCharacter is called to draw normal text, while the other is called when the text box contains BIG characters (if you play the game, just the first text to show up will have a bigger font and be displayed in the middle of the screen)
Maybe. What I read from a quick read of the code /seemed/ to contradict your statement (at least at first)... But until I have figured out where everything is. I can't say whether I've misread or not... While Summon Night's code seems easy to read (compared to some games), I do make mistakes....

08001F14 calls
- 08003BC0
- 08003EB8

080020A8 calls
- 0800348C then 080041C8
- 080043E4 (at end)


: Re: Making text editor.
: pablitox December 18, 2017, 06:04:24 PM
Well, yes.... That is basically it. THUMB is cut-down ARM. However, I usually say ARM for 32-bit instructions, and THUMB for 16-bit instructions. (Kind of how it is labeled in VBA's Tools>Disassemble...)

So that area is where the functions are stored is that right? As in, each call in the control codes refer to the functions in that place you pointed out.
Well, kind of indirectly. I guess you can kind of think of it like a tree, but the root/parent functions for the control codes/commands aren't in this area. (However, they may call some of these functions, may need to check into that.)
In what I posted, I was going through the code to list what looked like functions that can be called. (Generally.) Usually they're easy to tell because most functions (not all) are nested in push and pop instructions.

As normmatt explained us, at least one DrawCharacter is called to draw normal text, while the other is called when the text box contains BIG characters (if you play the game, just the first text to show up will have a bigger font and be displayed in the middle of the screen)
Maybe. What I read from a quick read of the code /seemed/ to contradict your statement (at least at first)... But until I have figured out where everything is. I can't say whether I've misread or not... While Summon Night's code seems easy to read (compared to some games), I do make mistakes....

08001F14 calls
- 08003BC0
- 08003EB8

080020A8 calls
- 0800348C then 080041C8
- 080043E4 (at end)


I see, thanks for the explanation! Glad it's not as hard to read as other functions! That's a slight relief :P


Sorry, the copyright must be in the template.
Please notify this forum's administrator that this site is missing the copyright message for SMF so they can rectify the situation. Display of copyright is a legal requirement. For more information on this please visit the Simple Machines website.