.hack//Fragment Patcher is a homebrew application for the PS2 and the emulator PCSX2 that will allow the user to play the game in english without the need to download a modified copy of the game. With this anyone with a copy of the original game can pop it into their ps2 (or PC through the emulator), run the homebrew and play.
The patch is in development and currently has the following features:
- DNAS Bypass and able to connect to Alkalime’s Lobby Server
- Basic ground work for translations (Currently only Chaos gate is translated)
- EXP Loss on death for Mulitplayer has been disabled.
- Item loss from not saving before quitting has been disabled.
I made the code open source so anyone can read through it. I am still rather new to PS2 homebrew development so if the code doesn’t look that great, that’s because it’s probably not.
The code can be found on my github here.
Once I have a majority of the translations in place, I will make a binary release here.
Programs and files needed:
Any Hex editor. In this example I am using HxD though.
HACK_00.ELF (This is found on your .hack.//Fragment disk.) (This is also the online ELF for the game, the single player version is HACK_01.ELF
Socom 2 Imposter Maker by Dark Killer ( I used this to convert text to hexadecimal. It’s not needed but it makes it quicker.)
When translating this game from Japanese to English you tend to run into space constraints when dealing with how many letters you can cram in a memory location. The problem came up where a translation wasn’t correct and since there just wasn’t room to actually have the correct text it instead was made to be something else. As a quick example the Twinblade spell “Tiger Claws” is currently just “Claws”.
A way to fix this issue
In the game .hack//fragment strings are loaded in by pointers.
For this example I am going to show how we can extend a string past the limit it currently has.
Currently I have a level 15 Blademaster that knows the spell Vak Slash and I want to call it something else, something longer.
So we open up PS2Dis and take the HACK_00.ELF and drag it over to PS2Dis. Press Control G and type the following “Vak Slash”, you should see something like this:
Continue reading “Ps2Dis: Extending and relocating a string”