Friday, December 31, 2021

Growlanser 5 & 6 Toolkit and happy new year!

Dear Citizens of Monopolis,

during the translation of Growlanser 6 i tried to gather as much information about the game as possible. Whether it be a simple manual or a game guide, as long as it can help our translators better understanding the World of Growlanser 5/6 then it will be useful.
Since Growlanser 5 was already translated to english, it is also important that we (the GL6 translators) keep consistency with various words that are used in both Growlanser 5 and 6. One example of this would be the character names from Growlanser 5 (since 6 is a direct sequel).
So, a few months ago i started to create "combined" Growlanser 5 Japanese + English script files.
Using those files we are able to quickly search for a japanese word and find its english original english translation.
But this was a lot of manual labor, and i'm not finished at all with the scripts. I definitely need to automate this process and, thanks to my new position at Monopolis Corp., i learned a little bit of Python programming.
So, using my newfound Python skills i started to work on a "Growlanser 5 / 6 Toolkit" and already made a little bit of progress:

https://github.com/Risae/Growlanser-5-6-Toolkit

I'm a complete novice when it comes to programming in general, so i doubt that my code is anything but good looking or efficient.
But i pretty much want to create a tool that is able to do all those things that i can do manually, with little to no manual input, and for anybody to use in the future. The program currently only works in windows (...at least i think it does...) and it includes the following 3rd party applications in order to work "out of the box":

- abcde
- Strawberry Perl Portable (for abcde)
- Python 3.10.1 embed
- quickBMS

Currently the Toolkit is able to

- Automatically convert "raw" Growlanser 5 and 6 Script files (.SCEN/.SCEC/.SDMY/.STXT) into actual script files that can be used by abcde's Atlas (including dumping options)
- Dump the Bytecode of Growlanser 6 Script files

Here are some of the things that i will try to implement in the future:

- Combine 2 dumped scripts into one script (combined GL5 JPN + ENG Script)
- Dump/Reinsertion of a games "GLX_XXXX.DAT" file
- Somehow transfer the character names and other text box information of the Bytecode directly into script file
- Hopefully be able to create a GUI in which you can work on script files, just like the Fate Extra CCC guys have it
- And other stuff that i will maybe find useful

Aside from that lots of stuff has been accomplished this year, with the most notable thing being the creation of a simple buildbot (+ the xDelta patch) and being able to subtitle Growlanser 5 and 6 ingame movies.
There is still a lot of work to do like fixing the VWF Code, translating & editing various scripts and images and adding subs to the movies. But, as far as i can tell, we made good progress.

A big Thank You to everybody that made the Growlanser 6 Translation possible - especially Mako, Ethanol and Haruka!

Enjoy the beginning of the new year, and hopefully one day we will see a remake of Growlanser!

Saturday, October 23, 2021

Buildbot now automatically creates xDelta patches

Dear citizens of Monopolis,

Over last few days i have been searching for ways to automate the Xpert2 ISO dumping and rebuilding process.
This was the only thing i couldn't automate using a CLI, since Xpert2 only supports a GUI.
I asked around a few Discord servers and it doesn't seem like there currently exists a tool that lets you use a command line to dump and rebuild a PS2 ISO.
So, yesterday i found this neat little tool:

https://github.com/npocmaka/batch.scripts/blob/master/hybrids/.net/c/mouse.bat

With this i was able to add mouse movement & clicks to my batch file (which does all of the compiling and stuff).
After a bit of testing everything seems to work flawlessly - After the files are compiled (using quickBMS and abcde) Xpert2 is automatically started and the script interacts with the GUI.
The Buildbot xDelta patch can be found here:

https://bitbucket.org/Risae/growlanser-6-english-translation/downloads/

And here's the updated Buildbot script for anybody interested:

https://pastebin.com/raw/YGbBsbzq

Wednesday, October 20, 2021

xDelta (work-in-progress) Patch now available

Dear citizens of Monopolis,

recently i was researching again on ways to more easily provide translation patches, instead of translated game files like we do right now.
I came across a Github project called "xdelta3-gui-2.0" by Moodkiller:

https://github.com/Moodkiller/xdelta3-gui-2.0

Using this neat little tool i was able to create a working xDelta patch, which supported the rebuild ISO from Xpert2.
The xDelta patch is (currently) only about 1.7 MB in size and that is pretty awesome.
And, it supports patching on Linux and Mac out of the box!
You can find a very recent xDelta patch in the downloads section of our repository:

https://bitbucket.org/Risae/growlanser-6-english-translation/downloads/

I sadly didn't find an easy to automate the dumping and rebuilding process of the ISO yet.
I will periodically update the xDelta patch with the latest repository files.
If anyone has experience with automating/testing GUI Software/Apps then kindly visit us on our Discord Server.

Steps on how to patch your Growlanser 6 ISO:

1. Download the xDelta Patch from our repository
2. Unzip/Unrar the downloaded file "Growlanser_6_English_xDelta_Patch_XX.XX.20XX.rar" in a new folder
3. Put your Growlanser 6 ISO into the same folder
4. Rename your Growlanser 6 ISO to the following (so the patching script is able to find the ISO): Growlanser 6 Precarious World.iso
5. Run (on Windows) "3.Apply Patch-Windows.bat"
6. There is a new ISO called "Growlanser VI Precarious World English Patched.ISO" which you can use to play the game in english.

Should you play the translated ISO and find any text issues or bugs then kindly let us know in our Discord server!

Wednesday, June 9, 2021

Discord server for the Growlanser series

Dear Citizens of Monopolis,

Orihara Saki created a Discord server to talk about everything related to Growlanser, you can join it through this link:

https://discord.gg/baTYefb8cf

(it also has cute Growlanser stickers!)

Monday, May 31, 2021

Growlanser 1 translation is not being actively worked on

Dear readers,

i wanted to update you on the current status of the Growlanser 1 translation.
As you know we (GL6 translation team) gathered quite a lot of information on how to start a GL1 translation.
But, we sadly do not have the manpower and time to managed GL6 and 1 at the same time.
On the Growlanser 1 bitbucket repository you can find quite a bit of info on how the game works and what tools you could use to start a translation:

https://bitbucket.org/Risae/growlanser-1-english-translation/src/master/

The GL6 translation team is, still, focused solely on Growlanser 6.
For anybody that is interested in starting a GL1 translation:

Please don't keep your work to yourself.
It happens so often that people make progress and then stop midway, but without ever letting anybody know.
People really shouldn't need to start at 0 everytime a project stops and begins anew.
Sharing is caring.

Friday, April 30, 2021

New make-shift Buildbot and a little Translation Update

Dear Citizen of Monopolis,

it's been quite a while since i last posted an update, but behind the scenes progress is still happening at a steady pace.
The last few days i have been trying various ways to completely automate the building/compiling process that we use to upload translated game files to our repository.
At first i tried to use Bitbuckets integrated CI/CD features called "Pipelines". But because of the fact that most of the programs i'm using are for Windows (armips for example, too lazy to make it work under Linux) i decided to make things even more complicated for myself and grabbed one of those 12 months free "Cloud On-Demang VMs" - proudly sponsored by our Chinese Overlords.
It only has 1 vCPU / 1 GB vRAM and its running the god awful Server 2019 Core, but i somehow managed to actually create a simple Buildbot that is able to compile and upload the latest game files, packages into a zip, onto our repository:

https://bitbucket.org/Risae/growlanser-6-english-translation/downloads/

The script is fairly simple and pretty much does the following:

1. pull the up-to-date files from the repository using GitHub Desktop's "git.exe"
2. execute the build.bat which resides in the repositories "GL6 Build" folder
3. delete the old "BuildBot-Growlanser_6_English.7z" from the reposity using Bitbuckets API
4. zip up all the compiled files
5. upload the zip file to the repositories using Bitbuckets API
6. delete the zip file from the local machine

All of this takes about 10 minutes overall and runs every hour. I could change it to once every 30 minutes, but there is not enough going on in our repository to do that.
So far i gotta say its been working like a charm. And since its running Server 2019 Core its actually not that process hungry:



For anybody interested, heres the script that does all of the magic:

:::: Get the latest repository files
cd /d C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\
C:\Users\Administrator\AppData\Local\GitHubDesktop\app-2.7.2\resources\app\git\cmd\git.exe pull

:::: Start the build.bat script
call "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\build.bat"

:::: delete old zip file
del "C:\BuildBot-Growlanser_6_English.7z"

:::: Zip up the Files
"C:\Program Files\7-Zip\7z.exe" a -t7z "C:\BuildBot-Growlanser_6_English".7z "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\GL6_FACE.DAT" "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\GL6_FILE.DAT" "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\GL6_SCEN.DAT" "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\SLPM_667.16"

:::: Delete compiled files
del "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\GL6_FACE.DAT"
del "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\GL6_FILE.DAT"
del "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\GL6_SCEN.DAT"
del "C:\Users\Administrator\Documents\GitHub\growlanser-6-english-translation\GL6 build\SLPM_667.16"

:::: delete last release from bitbucket
curl -X DELETE "https://USERNAME:PASSWORD@api.bitbucket.org/2.0/repositories/Risae/growlanser-6-english-translation/downloads/BuildBot-Growlanser_6_English.7z"

:::: change directory to C:
cd /d C:\

:::: Upload compiled files to Bitbucket Downloads
curl -X POST "https://USERNAME:PASSWORD@api.bitbucket.org/2.0/repositories/Risae/growlanser-6-english-translation/downloads" --form files=@"C:\BuildBot-Growlanser_6_English.7z"



Aside from the Buildbot, Haruka has been doing a tremendous amount of work on the actual translation.
If you've been following our commits on the repository, then you should have noticed that Haruka is almost done with the translation of the SCEN.DAT files.
Most of them received the status "[COMPLETED]" and only a few remain untranslated.
If you find issues ingame or notice things that have been translated incorrectly, then don't hesitate to let us know about it. You can always reach us in our Discord channel.

It will still take quite a while until we fully finish our fan translation of Growlanser 6, but heres hoping that this project will help new and old people get interested in Growlanser.