News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: [GBA-Translation] How would you approach this GBA card game translation?  (Read 226 times)

Krownyh

  • Newbie
  • *
  • Posts: 2
    • View Profile
I'm new to ROM Hacking and my programming knowledge is limited but I thought I'd at least give this a honest shot since I've always had some interest. Nice to meet y'all!

My main goal is to make a GBA JPN card game at the very least playable, in other words I want to have the card effects translated in-game. If you're curious the game in question is "Shaman King Chou Senjiryokketsu 3".

Now I've read the "Getting Started" and skimmed some parts of the guide written by the user "FAST6191" to get a feel for what I should be doing. So far I learned that the game, as far as I checked, is encoded in Shift-JIS(Katakana, hiragana, english alphabet, numbers, special characters and every kanji I tested). Great! Things are going well.

The problem is that if there is not a more efficient way to do that it will be extremely time consuming, so I'd love some input.
Here's the thing, the steps I'm taking for each card goes as follows:

i- Check card effect in game, word by word;
ii- Find parts that are mostly Katakana/Hiragana(Because I can't read Kanji);
iii- Convert to Shift-JIS HEX;
iv- Use Hex Workshop to search for that value;
*If there are many results, I have to start comparing the Kanji;
v- Once I know where the text is, I can substitute the Hexadecimal values;

What would you do instead? I guess I can download a Shift-JIS table and use WindHex feature to write values instead, but the main issue is still that it takes too long to find where the text of each card is. Now, don't get me wrong. I will still get it done, I don't mind hard work but I'm sure there must be a better way to do this.

Oh, I guess I could try to find the card text in the web, will have to try it tomorrow!
Anyways how'd you approach this little project? Thanks for you time :(

FAST6191

  • Hero Member
  • *****
  • Posts: 2577
    • View Profile
Re: [GBA-Translation] How would you approach this GBA card game translation?
« Reply #1 on: September 11, 2019, 02:34:22 pm »
Heh. There are not so many shiftJIS games on the GBA.

While your method is not the most efficient it will likely get there in the end, my main reservation there would be pointer issues meaning you have to try to constrain yourself in length. That said if it is a card game I have seen card effect lists be a fixed length before.

Anyway for iii I imagine the following will help a bit
https://www.romhacking.net/utilities/504/

Hopefully you have a nice Japanese text editor like JWPCE or Njstar.

Also while you can use hex workshop and have it search for shiftJIS after a fashion then you might do better with crystaltile2 which has it natively and might even allow you to simply type (or at least copy and paste from JWPCE or something).

What I would do is find where the script (or card descriptions in this case) is stored in the ROM. I usually find the pointers for it and figure it out from there. If it is fixed length then there will tend to be a pattern in there somewhere.
Dump this text into something more amenable to work than a hex editor. Translate accordingly and insert it back in, taking care of any pointers or necessary padding.

Krownyh

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: [GBA-Translation] How would you approach this GBA card game translation?
« Reply #2 on: September 12, 2019, 08:38:49 pm »
Hey, thanks for the input!

Well turns out it's not really shiftJIS. Kind of. I had to download a shiftJIS table, remove the 1 byte entries and modify the 2 bytes american alphabet and special characters to accept my keyboard input. But dang, "crystaltile2" is very nice indeed

And yeah, just like you said! There is a pattern here, albeit kind of weird ( Still deciphering it all )
See, in this "Leader"-type card for example we always have a section at the end that goes (Kinda) :
-'... If you have [ x ] Leader, heal 50 hp.' ( x is Leader name )
What doesn't make much sense to me is that the whole phrase is repeated multiple times in the code instead of just

Nvm, figured out as I was typing lol

So does 'crystaltile2' support multiple selection or a way to substitute every instance of a sequence of bytes?
Thanks for all the help :)

FAST6191

  • Hero Member
  • *****
  • Posts: 2577
    • View Profile
Re: [GBA-Translation] How would you approach this GBA card game translation?
« Reply #3 on: September 13, 2019, 05:31:44 pm »
Even on the DS and PSP the games not supporting the 8 bit parts of normal PC style shiftJIS is nothing rare at all (indeed a given game supporting such things would be the rare event), but most people still call it shiftJIS. JWPCE and such usually have a mode though that will support the Roman alphabet characters that the 16bit shiftJIS tends to have though (have not got it in front of me but it is probably in the 3 buttons that have A, a Japanese symbol and J if memory serves, most of the default fonts used with be wide though so it should be obvious, obviously you will want to press save as and then select shiftJIS).

I am not aware of a find-replace option for crystaltile2 -- such things tend to be the domain of a general purpose hex editor or programming notepad (notepad++, geany...)