Grandia English Patch

Translating Grandia 1.1.1

Here are my saves, the first is after the battle but before seeing the FMV. The second is before getting the Sulfa Weed.

Ok, I've been able to fix these issues. They'll be in the next patch release:

ULxy1Lb.png

CHgt5Pu.png

nOhHWzT.png
 
Well here i am again, found another (two) bugs: on Feenas house, right after you heal Rem you are supposed to hear him play the flute, but for some reason you don't hear it. I loaded the untouched ISO and you hear him perfectly, also there is another bug on the military train with the camera placement after Justin rigs the engine and the trio yells your name. I will be attaching the saves shortly with pictures.
 
@Jackafur : if other user(s) report similar problem with Pseudo Saturn Kai, then we shall conclude that something needs to be fixed there. But until that time, I guess it's only an affinity problem between your Saturn, your CD-Rs, or your drive to burn CD-Rs ... or anything else :)

(It took several days for me to reply about your problem to reduce the aggressiveness after reading something like "My game on CD-R game doesn't works. Please fix Pseudo Saturn Kai !" in my mail box. If more and more customer support means more people and getting interested in Saturn then that's cool, but I'm not a call center about things that can be fixed without external help ...)
 
Here are the saves and screenshots of the train bug, of course the flute bug is a sound one so there is no screenshot.
grandia eng.png grandia jap.png
 

Attachments

  • grandia.zip
    2 KB · Views: 169
Judging by the screenshot, the font of the dialogs needs alignment (the letters jump around on height). And the VWF will not prevent.
 
Judging by the screenshot, the font of the dialogs needs alignment (the letters jump around on height). And the VWF will not prevent.

It is slightly out of alignment, but I'm pretty sure the English PS1 version is like that as well. And neither the 8x16 Saturn Font or the English PS1 font are Variable Width Fonts. They're both Fixed Width.

When I go in to fix some of the character order I'll take a look at realigning it.
 
@Jackafur : if other user(s) report similar problem with Pseudo Saturn Kai, then we shall conclude that something needs to be fixed there. But until that time, I guess it's only an affinity problem between your Saturn, your CD-Rs, or your drive to burn CD-Rs ... or anything else :)

(It took several days for me to reply about your problem to reduce the aggressiveness after reading something like "My game on CD-R game doesn't works. Please fix Pseudo Saturn Kai !" in my mail box. If more and more customer support means more people and getting interested in Saturn then that's cool, but I'm not a call center about things that can be fixed without external help ...)
hey man thats cool. Yea I definitely wasnt trying to definitively say psk was the issue. I've happily used psk for years now with out problems.
 
Got it booting on my Saturn past the title menu! I opened the Saturn up and ended up turning the POT a teensy tiny bit clockwise (after trying counter-clockwise to no avail). Exciting!
 
@Jackafur Here's something you could take a crack at, it worked for my earlier issue but it's potentially real risky business:


There's also a snazzy video if you have a digital multimerer kickin' around:


I personally only turned it the TIIIINIEST bit clockwise, there's some videos out there where the people twist the thing like crazy, it makes me wince!
 
I personally only turned it the TIIIINIEST bit clockwise, there's some videos out there where the people twist the thing like crazy, it makes me wince!

And that same people will then claim that their optical drive no longer works few months after hacking it :D That's the reason why I don't detail publicly (on my homepage or on forums) about this potentiometer.
 
So I took a look at the compression algorithm used for the battle menu tiles. I rewrote the decompression in C and I'm able to decode the first image (the yellow cursor triangle) successfully. The C code isn't beautiful, but it isn't too cryptical either and I think I have gained at least a basic understanding of what's going on. Now obviously decoding the data isn't too helpful since you could just as well let the game do the work and simply dump the VDP1 RAM at the right time. I wrote the function mainly to understand the compression. I'm hopeful that I'll be able to write a re-compression function with this understanding, though it should be noted that I've no real in depth knowledge of compression/decompression so I won't rule out failure. If I can't figure it out I'll write down what I learned and publish it here.
 
So I took a look at the compression algorithm used for the battle menu tiles. I rewrote the decompression in C and I'm able to decode the first image (the yellow cursor triangle) successfully. The C code isn't beautiful, but it isn't too cryptical either and I think I have gained at least a basic understanding of what's going on. Now obviously decoding the data isn't too helpful since you could just as well let the game do the work and simply dump the VDP1 RAM at the right time. I wrote the function mainly to understand the compression. I'm hopeful that I'll be able to write a re-compression function with this understanding, though it should be noted that I've no real in depth knowledge of compression/decompression so I won't rule out failure. If I can't figure it out I'll write down what I learned and publish it here.

That's great to hear actually and I thank you for looking at it. I was recently able to get what I believe is the decompiled function from Ghidra. I've attached it along with what I believe is the compressed data to this post if you want to compare it to what you have and see if it sheds any light on it. C and Compression aren't really my strong suit so I haven't had much luck figuring out what exactly is going on from looking at it.
 

Attachments

  • GrandiaDecomp2.zip
    12.6 KB · Views: 163
Thanks, I've already identified, disassembled and reversed the decompression function. My function does work correctly until some position into the second tile, then it breaks and produces garbage. I've already a suspicion why this happens and I think the function will be done today. Then comes the hard part, writing the compression function.

I don't want to jump too far a head, but at some point we need the tile data from the English ps1 version. Do you already have the translated tiles?
 
Sometimes, if there is free space and the amount of data is small, you can place there the already unpacked data by the game itself. Thereafter you need to prohibit access to the unpacking procedure. Unpacked data will be directly read from disk to the desired address in RAM, and then written to video memory.
In this case, you do not need to spend time analyzing the algorithm for packing data and writing a decompressor / compressor.
PS: I have used this method in many games, including Linkle Liver Story.
 
Thanks, I've already identified, disassembled and reversed the decompression function. My function does work correctly until some position into the second tile, then it breaks and produces garbage. I've already a suspicion why this happens and I think the function will be done today. Then comes the hard part, writing the compression function.

I don't want to jump too far a head, but at some point we need the tile data from the English ps1 version. Do you already have the translated tiles?
Making the tile data isn't hard. I've done it for a few other parts already. So that shouldn't be an issue.

Sometimes, if there is free space and the amount of data is small, you can place there the already unpacked data by the game itself. Thereafter you need to prohibit access to the unpacking procedure. Unpacked data will be directly read from disk to the desired address in RAM, and then written to video memory.
In this case, you do not need to spend time analyzing the algorithm for packing data and writing a decompressor / compressor.
PS: I have used this method in many games, including Linkle Liver Story.

I'm not sure how well that would work here though. The data is in an 11MB file that has graphics for a lot of other stuff, some compressed, some uncompressed. I haven't really figured out how this file is parsed and read to know what kind of impact that kind of change would have on everything else. The uncompressed graphics I'm looking at for this part look to be about 3x as big as the compressed data.
 
Back
Top