Tuesday, October 27, 2020

Growlanser 1 Fan Translation is currently being worked on!

The last few weeks my team and i have been helping out HOPE_MAN on the technical aspects of a possible Growlanser 1 (PS1/PSP) fan translation.
We made quite a lot of progress and even received the work of a kind soul which already managed to implement 1 byte character, a new font and a working VWF!
So, to summarize what is possible right now:

PSP
- Dump and rebuild the game's .ISO using "UMDGen"
- Unpack some of the games archive (.DAT) files using "quickBMS" with custom file scripts
- Read the script files that have a custom encoding with WindHex32 (HEX Editor that supports custom table files)
- Extract, translate and reinsert the games script using abcde's "Atlas" and "Cartographer"


PS1
- Dump and rebuild the game's .BIN using "psximager"
- Unpack some of the games archive (.DAT) files using "quickBMS" with custom file scripts
- Read the script files that have a custom encoding with WindHex32 (Supports custom table files as a HEX Editor)
- Extract, translate and reinsert the games script using abcde's "Atlas" and "Cartographer"
- Rex, which kindly provided us with his files, was able to implement 1 Byte Characters and a working VWF in the PS1 version

All of the files and most of the documentation can be found here on the GL1 repository:
https://bitbucket.org/Risae/growlanser-1-english-translation/src/master/

If anybody is interested in how to patch the PS1 GL1 image, i made a quick guide here:
https://bitbucket.org/Risae/growlanser-1-english-translation/src/master/GL1%20PS1%20build/How%20to.txt

If anybody would like to help translate or hack Growlanser 1 come visit us at our Discord server:
https://discord.gg/59Nw2U2

Here are some notes on what we could figure out about Growlanser 1:

Both the PS1 and PSP version only support 2 byte characters and no ASCII support at all.
Compared to Growlanser 6 that means that you only have ugly full width characters, which makes it looks like this:

https://cdn.discordapp.com/attachments/761551400098070534/762591160660131870/1.PNG

Rex, who worked on a PS1 Growlanser 1 translation, managed to implement 1 byte characters and a working VWF.
This is what it looks like ingame:

https://cdn.discordapp.com/attachments/761551400098070534/768322996649197638/4.PNG

In the PS1 and PSP ELF there are textblocks which contains text like spell, weapon and character names.
In the PSP ELF, the pointer table is right below the text and it counts 2 bytes as 1.
It's almost the same in the PS1 version, but this time the pointer table is on top of the text block.

Space restrictions in the script files do not seem to be an issue, each script seems to have enough space for an english translation.
Most of the control codes have been figured out, a table file can be found here:

https://bitbucket.org/Risae/growlanser-1-english-translation/src/master/GL1/01-abcde%20scripts/UTF-8%20GL1%20Table.tbl

Rex's PS1 version also reduced most of the control codes from 2 Bytes to 1 Byte, for example FCFF=[NLINE] to FC=[NLINE].
A custom table file for Rex's version can be found here:

https://bitbucket.org/Risae/growlanser-1-english-translation/src/master/GL1/97-Rex's%20files/Rex%20UTF-8%20GL1%20Table.tbl

Rex's VWF sadly doesn't support text speed, it will display text instantly.
But here's hoping in the future that can be fixed somehow.

Friday, October 23, 2020

Game Patching, now actually user friendly-er Vol. 3

Dear Readers,
 
the last few days i took some time to try myself on automating some of the more tedious tasks of patching the game files.
And, with the combines power of Batch files and trial n error we are now able to one-click-patch patch all files in a matter of minutes!
I'm sure this is not a difficult task for other people, but since i'm pretty new to this here's how i accomplished it:




I put all of the programs (armips, quickbms, abcde and strawberry portable) and files that are needed to create translated .DAT files onto our repository.
One of the more difficult things was to create a PATH variable that automaticly takes the folder path above the script file.
But thanks to Stackoverflow and other websites there seems to be an easy way to accomplish that:

for %%i in ("%~dp0..") do set "GITHUBPATH=%%~fi"

Same goes for the automatic PATH for Strawberry Portable.

SET "PATH=%PATH%;%GITHUBPATH%\GL6 build\03-Strawberry Perl Portable\perl\site\bin"
SET "PATH=%PATH%;%GITHUBPATH%\GL6 build\03-Strawberry Perl Portable\perl\bin"
SET "PATH=%PATH%;%GITHUBPATH%\GL6 build\03-Strawberry Perl Portable\c\bin"


Having solved those issues, creating the batch was not that difficult.
The batch file pretty much just grabs the translated files, puts them into a folder together and does all the stuff that i explained in a few blog posts earlier.
For anybody who's interested, heres the batch file:

https://bitbucket.org/Risae/growlanser-6-english-translation/src/master/GL6%20build/build.bat

I commented on everything to make it more clear on what the batch file is currently doing.

For anybody interested: If you download the repository you can build your own translated .DAT and ELF now.
The repository includes everything you need in order for the script to work.
I apologize for the big size of the repository though, the game manuals for GL1, 5 and 6 kinda take up a lot of space.