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

Author Topic: [SNES] StarOcean translation into Spanish  (Read 6193 times)

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
[SNES] StarOcean translation into Spanish
« on: January 12, 2017, 05:36:38 am »
Hi everybody,

As I announced some months ago in this board, I have been messing up with Star Ocean for SNES in order to make a complete spanish translation. I've done all the work from scratch from the original Japanese version, without re-using any code from Dejap. However, items and dialogue script have been translated partially from japanese, and the rest of text was extracted from the amazing Dejap version.

What's done so far:

 * Inserted a customized text decompressor (LZH)
 * Inserted all spanish dialogues



 * Automatic line-wrapping based on pixel width
 * Main character names up to 8 letters


 * Re-written most of the menu routines: I changed layouts in each screen to put more letters for item and abilities names




 * Changed some 16x16 text routines in the menus in order to print messages using tabulated patterns



 * Fixed a bug with the cursor in the naming screen in both english and japanese versions
 * Fixed a bug with the element linked to an item, which wasn't erased from screen after pointing to other item

Before:
->

After:
->

 * Changed battle window layout in order to fit more text: 8 letters for names, 10 letters for techs, 9 letters for enemies
 * Colored battle window text



What's left to do:

 * Allocate more RAM for sprite editing: I want to change those AWFUL numbers that appear each strike you receive from enemies or you blow to them. I personally think it's hard to read a number which first figure is bigger than the others. However, to do such an easy change I have to allocate more RAM to $7E:6100 buffer, which only allows 6 sub-sprites per sprite.

 * Format all dialogue text
 * Change some graphics


Hope you like it XD

mikeprado30

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #1 on: January 12, 2017, 07:28:36 pm »
That's very nice!!!  We'll be keeping an eye over this one  :)

patuli

  • Jr. Member
  • **
  • Posts: 78
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #2 on: January 12, 2017, 10:55:19 pm »
Looks good!
btw, Did you fix the nasty hang up bug, when trying to learn talents?

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
Re: [SNES] StarOcean translation into Spanish
« Reply #3 on: January 13, 2017, 01:46:28 am »
btw, Did you fix the nasty hang up bug, when trying to learn talents?

No, not yet. It didn't happen during the development stage, hope it will do when I start testing the game. I have to beat the game at least twice to discover most of the situations that make hang the game or show special texts. If you have any savestate that could show me the bug, I'd be glad to fix it.

patuli

  • Jr. Member
  • **
  • Posts: 78
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #4 on: January 13, 2017, 04:01:53 pm »
I don't have a save state, because I'm playing the game in sd2snes, However that bug is well documented on real Japanese cards and real hardware.
I will upload my .srm file if that helps.
the bug occur as following; when trying to learn a new talent:
Go to special -music-  perform- violin 2 ( a char that already know Pitch and Rhythmic Sense)
Now before the music stops, go to:
Item - Item creation- cooking Ratix or Milly (those two are the ones, I don't have the "Sense of Taste" talent
Now, try to do it as fast as you can before the music stops.
If the music stop and you don't learn "Sense of Taste" try again!
if you succeed a music will pop up,  to inform you that you learn the talent.
However if you push the button, (I was jamming the button, because learning a new talent is long and tedious process)
the game will freeze.
supposedly the bug will occur less if you try to learn talents in the overworld map and more greatly inside a town,cave or dungeon
but I see no difference in the occurring.
I really hope you can track this one down.

justin3009

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 1510
  • Welp
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #5 on: January 14, 2017, 12:54:16 pm »
I'm rather curious.. Could you display a screenshot of the new battle layout?  I was pretty certain there was no way to have 8 letter names on each character unless they were basically interconnected into a giant mess, that, or they were moved up and down 8x8 pixels per PC.
'We have to find some way to incorporate the general civilians in the plot.'

'We'll kill off children in the Juuban district with an infection where they cough up blood and are found hanging themselves from cherry blossom trees.'

mziab

  • Full Member
  • ***
  • Posts: 189
    • View Profile
    • mteam
Re: [SNES] StarOcean translation into Spanish
« Reply #6 on: January 14, 2017, 01:05:35 pm »
* Inserted a customized text decompressor (LZH)

In other words, your compression beats out the old DeJap one? I've actually managed to crack it, but ran into some snags with recompression. At any rate, the whole thing seemed a bit over-engineered, to say the least. And your project seems to prove it really was overkill. Anyway, how well does your LZH compressor perform compared to the original DeJap one? I'm pretty curious.

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
Re: [SNES] StarOcean translation into Spanish
« Reply #7 on: January 15, 2017, 01:25:14 pm »
I'm rather curious.. Could you display a screenshot of the new battle layout?  I was pretty certain there was no way to have 8 letter names on each character unless they were basically interconnected into a giant mess, that, or they were moved up and down 8x8 pixels per PC.

Yes, of course! Here they are:





In other words, your compression beats out the old DeJap one? I've actually managed to crack it, but ran into some snags with recompression. At any rate, the whole thing seemed a bit over-engineered, to say the least. And your project seems to prove it really was overkill. Anyway, how well does your LZH compressor perform compared to the original DeJap one? I'm pretty curious.

Well, I think my compressor beats out that of Dejap's; both decompressors are more or less similar (words stored in dictionary in lower case which can be converted to caps or added a blank after it, LZH compression and DTE-coded dictionary storage). When I started to program my C compressor, I managed to compress Dejap's script better that the one inside the ROM: the improvement was about 1Kbyte, mainly thanks to a better coding of commands (I used a special byte to signal a command is appearing in the script, whilst Dejap used the same coding as Japanese $808X) and better selection of Huffman codes: dual-byte symbols are re-ordered after the most probable bytes in the script.
I changed lot of things since then that improve compression, but I didn't check how many bytes were my latest compressor better than Dejap's. One of these improvements were that my text pointers haven't to be stored in increasing order, but they can be in any order. Dejap's used that to calculate where each Huffman chunk ends because they can start bit-aligned. I decided to use byte-aligned pointers that can be stored in any way at ROM (BTW, I compress those pointer with Huffman and Dejap's not) so I can use 2 pointers to point to the same compressed chunk. A lot of dialogues are repeated exactly inside the same text block, so you get a high improvement if those dialogues can be stored once in ROM and then pointed twice (or even three, four, five... times) from the pointer table.
Besides, I moved some data blocks to allocate more room for text dictionary in ROM.

In short, spanish script is 20 kbytes longer than english one in the original format, 3kbytes smaller than english one after deleting duplicated dialogues, and it has 16 special characters (so less bytes for DTE-style dictionary) and even that, the script takes up less than the english one.
« Last Edit: January 15, 2017, 01:42:38 pm by magno »

patuli

  • Jr. Member
  • **
  • Posts: 78
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #8 on: January 15, 2017, 09:22:20 pm »
Well I easily reproduce the talent bug, by doing all the things, you are not supposed to do, when learning talents
(Learn talents inside town, button smash after the music pop up)
Here's the save state right before the talent freeze bug.

Now about the save state, if you push "A" while the violin 2 music is still playing, you will receive the message, that you unlock the talent "sense of taste"
receive the skill points for learning the talent and the game will freeze, now here's the thing, if you wait for the music to stop and push "A" nothing will happen and you can continue the game normally.
This only proves one thing, that violin music must be playing, in order to learn new talents; and that the violin music is the cause of the freeze.
I will try to use violin 1 and see if the game freezes.
ok here's a save state with violin 1, the same problem as the above.

BTW I'm wondering if is possible to add AI for Ratix, I remember 4 or maybe 5 years ago, saw a Japanese nico douga video, where Ratix was swap outside of battle;
and the party consist of four girls.

Anyway hope you find the save state useful, and thank you for taking the time in translating this game to Spanish.

« Last Edit: January 15, 2017, 10:40:07 pm by patuli »

mziab

  • Full Member
  • ***
  • Posts: 189
    • View Profile
    • mteam
Re: [SNES] StarOcean translation into Spanish
« Reply #9 on: January 18, 2017, 07:32:37 am »
Well, I think my compressor beats out that of Dejap's; both decompressors are more or less similar (words stored in dictionary in lower case which can be converted to caps or added a blank after it, LZH compression and DTE-coded dictionary storage). When I started to program my C compressor, I managed to compress Dejap's script better that the one inside the ROM: the improvement was about 1Kbyte, mainly thanks to a better coding of commands (I used a special byte to signal a command is appearing in the script, whilst Dejap used the same coding as Japanese $808X) and better selection of Huffman codes: dual-byte symbols are re-ordered after the most probable bytes in the script.
I changed lot of things since then that improve compression, but I didn't check how many bytes were my latest compressor better than Dejap's. One of these improvements were that my text pointers haven't to be stored in increasing order, but they can be in any order. Dejap's used that to calculate where each Huffman chunk ends because they can start bit-aligned. I decided to use byte-aligned pointers that can be stored in any way at ROM (BTW, I compress those pointer with Huffman and Dejap's not) so I can use 2 pointers to point to the same compressed chunk. A lot of dialogues are repeated exactly inside the same text block, so you get a high improvement if those dialogues can be stored once in ROM and then pointed twice (or even three, four, five... times) from the pointer table.
Besides, I moved some data blocks to allocate more room for text dictionary in ROM.

In short, spanish script is 20 kbytes longer than english one in the original format, 3kbytes smaller than english one after deleting duplicated dialogues, and it has 16 special characters (so less bytes for DTE-style dictionary) and even that, the script takes up less than the english one.

Thanks for the detailed response. It's been a while since I last looked into it, so I don't remember the exact details, but I think the part that tripped me up wasn't Huffman, nor dictionary compression, but the scheme used to compress the substring list due to the way the two-byte entries could be chained. I don't fully understand that part enough to make an efficient recompressor. The rest was relatively straightforward, all things considered. In theory, this part of the compression could be removed without affecting the size of the blocks, but you'd have to find a chunk of free space big enough to contain the uncompressed substring list.

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
Re: [SNES] StarOcean translation into Spanish
« Reply #10 on: January 19, 2017, 02:32:54 am »
Anyway hope you find the save state useful, and thank you for taking the time in translating this game to Spanish.

Yes, of course they are useful. I couldn't reproduce the bug in the SRM file you attached though, but I'll keep trying. The Snes9x savestates can't be used in Geiger's Snes9x debugger because it is version 1.51 and yours seems to be 1.53. Anyway, I'll use them in the regular emulator to know what I must do exactly to reproduce the bug and then, I'll try on the debugger.


Thanks for the detailed response. It's been a while since I last looked into it, so I don't remember the exact details, but I think the part that tripped me up wasn't Huffman, nor dictionary compression, but the scheme used to compress the substring list due to the way the two-byte entries could be chained. I don't fully understand that part enough to make an efficient recompressor. The rest was relatively straightforward, all things considered. In theory, this part of the compression could be removed without affecting the size of the blocks, but you'd have to find a chunk of free space big enough to contain the uncompressed substring list.

Well, the substring list (that's what I call "the dictionary") is compressed using a totally different table than the game. You need to do this to reduce the substring list size the most. To compress this "dictionary", each two letters are asigned a byte code, what we all know as "DTE", so the dictionary is compressed roughly half the original size. The problem is that maybe not all the words in the dictionary has an even number of letters, so those "lonely" letters must have an entry in the DTE too. For example, if the letter "e" appears on its own, the corresponding DTE entry could be "0x34 0xFF", considering 0xFF as "no text". However, Dejap codes this "lonely" "e" letter in two ways:  "0x34 0xFF" if "e" appears last in a word and then it ends dictionary decoding at once (saving an extra code for "end of string"), and "0x34 0x05" if it appears in the middle of a word, and then a new DTE-coded byte must be read from the dictionary.
You can do this if your DTE table is not fully filled after coding the dictionary, but I decided to do in a different way: "e" is always coded as "0x34 0xFF" and thus, I don't waste a DTE entry for "0x34 0x05".
In my tests, Dejap implementation works better with english words since lots of pair of letters are repeated usually in the words. For spanish text, which usually has a greater variety of paired letters, my solution works slightly better than Dejap's.

patuli

  • Jr. Member
  • **
  • Posts: 78
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #11 on: January 19, 2017, 09:47:55 pm »
Here's the save state in Snes9X1.51.ep10r2  Geiger's debugger
It says the following at the crash "sound CPU execution stops at ff20ff stop a:f  x:90 y:00 s:fb p:Nvpbhizc 164 01380174 (this one change)

Save state with violin 2
If you push "A" and learn the talent while the music is playing, you get the above error message, if you let the music continue, you don't learn nothing and the game continues normally.

I will try violin 1 and upload the save state
save state with violin 1
If you push "A" and learn the talent the game will freeze, if you let the music continue nothing happend

take care!
« Last Edit: January 25, 2017, 10:34:38 pm by patuli »

Angry Helder

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #12 on: February 04, 2017, 10:00:34 am »
Here's the save state in Snes9X1.51.ep10r2  Geiger's debugger
It says the following at the crash "sound CPU execution stops at ff20ff stop a:f  x:90 y:00 s:fb p:Nvpbhizc 164 01380174 (this one change)

Save state with violin 2
If you push "A" and learn the talent while the music is playing, you get the above error message, if you let the music continue, you don't learn nothing and the game continues normally.

I will try violin 1 and upload the save state
save state with violin 1
If you push "A" and learn the talent the game will freeze, if you let the music continue nothing happend

take care!

Already made the code and it can easily be patched into the rom that fixes the bug.

Talent Bug Fix (Raw):
CA3FEE:00

Talent Bug Fix (Game Genie):
DD73-E7C8

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
Re: [SNES] StarOcean translation into Spanish
« Reply #13 on: February 11, 2017, 06:37:47 pm »
Already made the code and it can easily be patched into the rom that fixes the bug.

Talent Bug Fix (Raw):
CA3FEE:00

Talent Bug Fix (Game Genie):
DD73-E7C8

I'm studying why that simple change fixes the issuse; you just changed a branch but I can't figure out yet what the value means.

In the meanwhile, I changed the layout of the shops, with a new feature that changes the option text depending of you are selling or buying items.

-->>

mrrichard999

  • Hero Member
  • *****
  • Posts: 667
  • So Goooood! :D
    • View Profile
    • GameFAQS Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #14 on: February 11, 2017, 07:35:00 pm »
What ever happened with Romancing SaGa 3 in English?
:woot!: Seeking translators for some small project work!
8x8 Icons

patuli

  • Jr. Member
  • **
  • Posts: 78
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #15 on: February 11, 2017, 09:47:08 pm »
With Helder code the talents will be learned, without violin music playing, with about 80% succeed rate.
If you use violin music, the game still hangs inside towns and a bit less in the battle field (like real Japanese carts)

Now about the talent "Sixth Sense" in the guides it says to just change "Scout" in the special menu and wait a while to try again.
I was changing 1 to 3  screen's, try to change the encounter rate, change screen, fight some enemies and try again, the talent never unlock!
I did that around 200 times no succeed.

Tried a different approach with Sixth Sense; sleep at a inn, go to battle field and change the scout encounter rate.
tried around 300 times no succeed.

I started the game again enough times (around 20), to cover all the talents learnable by Ratix and Milly, to try Helder code.
tried different starting talents with both chars, to see if the code work, with all the talents and different combinations.
The code works!

Now about "Sixth sense" after all that, I think is unlearnable in gameplay, unless the char starts with it!
no matter what i tried never learned. and yes I have the right skills.
thanks for everything Helder and Magno, for taking the time to look in the freezing issue,
even if no one can fix that, the above code make it less stressful to learn talents! (now you can button smash, without worries of freezing)

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6174
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: [SNES] StarOcean translation into Spanish
« Reply #16 on: February 13, 2017, 03:10:57 pm »
What ever happened with Romancing SaGa 3 in English?
I thought magno was looking for someone who could do a direct Japanese-to-English translation.
Quote
Sir Howard Stringer, chief executive of Sony, on Christmas sales of the PS3:
"It's a little fortuitous that the Wii is running out of hardware."

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
Re: [SNES] StarOcean translation into Spanish
« Reply #17 on: February 14, 2017, 02:08:50 am »
I thought magno was looking for someone who could do a direct Japanese-to-English translation.

Yes, but I'm not an english native, so the translation is being made by some good japanese translator from scratch. It's going on slowly, but the results are great.

You can see the progress here.

February 14, 2017, 06:25:41 am - (Auto Merged - Double Posts are not allowed before 7 days.)
This is one of the changes I wanted the most: it is somewhat confusing to know which skills grants a new hability to the character. When all skills for a hability are al level 1 at least, then you can check the information pushing 'X' button in the "Skills" menu. I removed this limitation, so now you can check which skills are needed to master a hablity even if they are at level 0:

-->>

Also changed a bit the shop screen:

1) Main screen


2) Buying:


3) Paying:


3) Or selling:


« Last Edit: February 14, 2017, 06:25:42 am by magno »

Pennywise

  • Hero Member
  • *****
  • Posts: 2135
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: [SNES] StarOcean translation into Spanish
« Reply #18 on: February 14, 2017, 02:48:59 pm »
Is it remotely possible to get a VWF for the 8x8 menu text? Just curious.

magno

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
    • Traducciones Magno
Re: [SNES] StarOcean translation into Spanish
« Reply #19 on: February 14, 2017, 04:28:49 pm »
Is it remotely possible to get a VWF for the 8x8 menu text? Just curious.

I suppose it could be possible, but it would need a total re-work of the bank $CA. In fact, everything can be done with hard work and a lot of free time.
It could have some side-effects, though, like an extra delay, a more complex VRAM management, lack of free RAM.


February 20, 2017, 11:48:47 am - (Auto Merged - Double Posts are not allowed before 7 days.)
New update:

« Last Edit: February 20, 2017, 11:48:47 am by magno »