Hacking Grand Knights History English Patch Alpha (looking for help)

justfuit

Active Member
OP
Newcomer
Joined
Dec 10, 2013
Messages
42
Trophies
0
XP
154
Country
United States
About the Patch:
This patch is a complete English patch for Grand Knights History. There are patches floating around by Gyoru and by kenma9123, but they were partial patches.

There is an online portion for this game, but it is not being officially supported. As such, things related to the online War mode have not been completed.

EDIT:
The final version is gkhpatchv1.16


Screenshots:
8y99bs.jpg

f384u8.jpg

b8qp2q.jpg

2wrku4y.jpg

xmidz7.jpg

2mpaan5.jpg

2qar4go.jpg

nqa0wg.jpg


Patch Download:
Download the patch here

You'll need custom firmware, xdelta, and UMDGen. Read the README in the zipped patch file for instructions.

This is version 1.16, the final version. This version fixes typos found in version 1.15 and also incorporates some wording changes. Many thanks to all those who have made suggestions since 1.15.

Notes:
- Keep in mind that it's a still Japanese game, so "O" is confirm and "X" is cancel
- The online portion of the game, while translated, has not been tested at all, nor is it a goal to complete this portion of the game.

Last Words:
Big thanks to:
Gyoru, for starting the patch and suggesting that a complete patch could be done
kenma9123, for helping me get starting by sharing his extractor tool
codestation, for open-sourcing his PRX patch code, from which I was able to study and learn from
My translator and tester, both of which who wish to remain anonymous (shy people...)
Al_Sleeper, for doing some heavy testing and being very responsive
Lyan53, for his work on the French translation attempt helped me understand how this game works

Support Vanillaware! The art in their games is amazing and deserves to be recognized.
 

parallelepipeds

New Member
Newbie
Joined
Jun 10, 2009
Messages
3
Trophies
1
XP
1,104
Country
United States
First of all, you're very kind and generous -- to share all of your hard work with us. Thank you for this. I've been dying to play this game completely translated...and you're making my dream come true.

Second, while I can't help with the translation, I want to wish the team the best with all of their work! Looking forward to this!
 
D

Deleted User

Guest
I'm getting stuck at the black "now loading" screen after inserting my name.
PSP 6.60 PRO-C (fix3)

Edit: After restarting the game it didn't got stuck there.
But after finishing the tutorial it got stuck again on a white screen while the music still playing.

3rd try. I tried 3 kingdoms by now, different names, it always crash early in the game.

I tried disabling the plugin, it solved crashing problem. I'm 99% sure it's the cause of the crashing.
But without it most of the translation is unreadable (doesn't fit the screen).

I'll wait for an update of the plugin, can't play the game with the alpha one.
 

Kelebek

Well-Known Member
Member
Joined
May 25, 2012
Messages
165
Trophies
0
XP
156
Country
No idea how to fix it or *exactly* where the code is yet, but I see that the ascii is converted into SJIS, and that's why it's monospaced, so that's what needs to be avoided.
 

justfuit

Active Member
OP
Newcomer
Joined
Dec 10, 2013
Messages
42
Trophies
0
XP
154
Country
United States
I'm getting stuck at the black "now loading" screen after inserting my name.
PSP 6.60 PRO-C (fix3)

Edit: After restarting the game it didn't got stuck there.
But after finishing the tutorial it got stuck again on a white screen while the music still playing.

3rd try. I tried 3 kingdoms by now, different names, it always crash early in the game.

I tried disabling the plugin, it solved crashing problem. I'm 99% sure it's the cause of the crashing.
But without it most of the translation is unreadable (doesn't fit the screen).

I'll wait for an update of the plugin, can't play the game with the alpha one.
Thanks for trying it out NicoBlogs. It certainly does sound like a problem with the patch, although I'm not sure what it could be. A majority of the patch gruntwork should be done shortly after the main game thread loads. Things are patched in memory, then the patch sleeps until it hooks some internal PSP functions.

What model PSP are you using? I have PSP-1000 with 6.60 PRO-C2, but I downgraded it to PRO-C fix 3 to test and was able to go through the first quest without any freezing. Can you try this patch instead? When the game freezes, connect the PSP over USB to a PC and there should be a file on the PSP root called 'gkhpatch.log'. I might be able to see what's going on based on those messages.

No idea how to fix it or *exactly* where the code is yet, but I see that the ascii is converted into SJIS, and that's why it's monospaced, so that's what needs to be avoided.
Thanks for the input. You are correct - there is a conversion from ASCII to Shift-JIS, but I think it only applies to the main story text, and not the menus. The patch should defeat the conversion, which allows the nicer display. That's why if you don't use the PRX patch, the text runs off the screen.
 

Kelebek

Well-Known Member
Member
Joined
May 25, 2012
Messages
165
Trophies
0
XP
156
Country
Ah really? Mmk, didn't know you already got around that part. I just started debugging the first SJIS I saw. :P

The menus should be doing the same though, because it looks monospace from the screenshots.
 

justfuit

Active Member
OP
Newcomer
Joined
Dec 10, 2013
Messages
42
Trophies
0
XP
154
Country
United States
Ah really? Mmk, didn't know you already got around that part. I just started debugging the first SJIS I saw. :P

The menus should be doing the same though, because it looks monospace from the screenshots.
After you mentioned it, I took another look at the screenshots and you may be right. It's possible there another conversion in another place that I missed. I'll look into it. Thanks!
 

Kelebek

Well-Known Member
Member
Joined
May 25, 2012
Messages
165
Trophies
0
XP
156
Country
Or maybe not, looking again at the "i"s, they definitely have less space than other characters. Maybe just a case of odd/bad spacing. Hmm. Maybe editable in the font itself, have you looked into that?
 

justfuit

Active Member
OP
Newcomer
Joined
Dec 10, 2013
Messages
42
Trophies
0
XP
154
Country
United States
As I said, all of this has been fixed by the French.
http://romhack.org/viewtopic.php?f=47&t=3759

Try to contact Lyan, see if he's kind enough to explain it to you ^^
I looked through that when you posted it in the other thread. Thanks for that. I think what Lyan found is something I have already fixed. I can't read French, but based on the gibberish translation that Google spit out for that post, I believe Lyan found the ASCII to Shift-JIS conversion that occurs in the main text, which I do fix with the patch, and not the one that occurs in the menus, which is what I'm looking for.

For the most part, the game is playable (provided the patch works), but I'm looking to do the finishing touches. If I can't figure out a way to get it the way I want, the patch I have released can still be used.
 
D

Deleted User

Guest
Hi again, my PSP is a 3004
I tried again with the debug patch.
This is what happens, it's not actually a freeze/crash, looks like the game still runs but i can't do anything cos i'm on a loading screen or in a white screen, while the music is still going, i could even trigger the screenshot menu with start:

pic_0012.jpg

pic_0014.jpg


This is the log content:
module_start_handler: Grand Knights History found, loaded at 08804000
module_start_handler: GAMEID: ULJS00394
module_start_handler: GAMEID matched: ULJS00394
thread_start: patching utility funcs
thread_start: patching half-to-full width character conversion
patch_character_conversion: --> patch_character_conversion()
patch_character_conversion: Waiting for stub to be resolved...
patch_character_conversion: Patching...
patch_character_conversion: Patch: 0x088CA200: 0x2405FF82 -> 0x00000000
patch_character_conversion: Patch: 0x088CA204: 0x82020000 -> 0x26100001
patch_character_conversion: Patch: 0x088CA208: 0x02402021 -> 0x82020000
patch_character_conversion: Patch: 0x088CA20C: 0x2442001F -> 0x02402021
patch_character_conversion: Patch: 0x088CA240: 0x2405FF82 -> 0x00000000
patch_character_conversion: Patch: 0x088CA244: 0x82020000 -> 0x26100001
patch_character_conversion: Patch: 0x088CA248: 0x02402021 -> 0x82020000
patch_character_conversion: Patch: 0x088CA24C: 0x2442001F -> 0x02402021
patch_character_conversion: Patch: 0x088CA280: 0x2405FF82 -> 0x00000000
patch_character_conversion: Patch: 0x088CA284: 0x82020000 -> 0x26100001
patch_character_conversion: Patch: 0x088CA288: 0x02402021 -> 0x82020000
patch_character_conversion: Patch: 0x088CA28C: 0x24420020 -> 0x02402021
patch_character_conversion: <-- patch_character_conversion()
thread_start: patching symbol table
patch_symbol_table: --> patch_symbol_table()
patch_symbol_table: Waiting for stub to be resolved...
patch_symbol_table: Patching...
patch_symbol_table: Patch: 0x08AC5E80: 0x00004081 -> 0x00000020
patch_symbol_table: Patch: 0x08AC5E88: 0x00004981 -> 0x00000021
patch_symbol_table: Patch: 0x08AC5E90: 0x00006881 -> 0x00000022
patch_symbol_table: Patch: 0x08AC5E98: 0x00009481 -> 0x00000023
patch_symbol_table: Patch: 0x08AC5EA0: 0x00009081 -> 0x00000024
patch_symbol_table: Patch: 0x08AC5EA8: 0x00009381 -> 0x00000025
patch_symbol_table: Patch: 0x08AC5EB0: 0x00009581 -> 0x00000026
patch_symbol_table: Patch: 0x08AC5EB8: 0x00008F81 -> 0x00000027
patch_symbol_table: Patch: 0x08AC5EC0: 0x00006981 -> 0x00000028
patch_symbol_table: Patch: 0x08AC5EC8: 0x00006A81 -> 0x00000029
patch_symbol_table: Patch: 0x08AC5ED0: 0x00009681 -> 0x0000002A
patch_symbol_table: Patch: 0x08AC5ED8: 0x00007B81 -> 0x0000002B
patch_symbol_table: Patch: 0x08AC5EE0: 0x00004381 -> 0x0000002C
patch_symbol_table: Patch: 0x08AC5EE8: 0x00007C81 -> 0x0000002D
patch_symbol_table: Patch: 0x08AC5EF0: 0x00004481 -> 0x0000002E
patch_symbol_table: Patch: 0x08AC5EF8: 0x00005E81 -> 0x0000002F
patch_symbol_table: Patch: 0x08AC5F00: 0x00004781 -> 0x0000003B
patch_symbol_table: Patch: 0x08AC5F08: 0x00004681 -> 0x0000003A
patch_symbol_table: Patch: 0x08AC5F10: 0x00008381 -> 0x0000003C
patch_symbol_table: Patch: 0x08AC5F18: 0x00008181 -> 0x0000003D
patch_symbol_table: Patch: 0x08AC5F20: 0x00008481 -> 0x0000003E
patch_symbol_table: Patch: 0x08AC5F28: 0x00004881 -> 0x0000003F
patch_symbol_table: Patch: 0x08AC5F30: 0x00009781 -> 0x00000040
patch_symbol_table: Patch: 0x08AC5F38: 0x00006D81 -> 0x0000005B
patch_symbol_table: Patch: 0x08AC5F40: 0x00006E81 -> 0x0000005D
patch_symbol_table: Patch: 0x08AC5F48: 0x00004F81 -> 0x0000005E
patch_symbol_table: Patch: 0x08AC5F50: 0x00005181 -> 0x0000005F
patch_symbol_table: Patch: 0x08AC5F58: 0x00004D81 -> 0x00000060
patch_symbol_table: Patch: 0x08AC5F60: 0x00006F81 -> 0x0000007B
patch_symbol_table: Patch: 0x08AC5F68: 0x00006281 -> 0x0000007C
patch_symbol_table: Patch: 0x08AC5F70: 0x00007081 -> 0x0000007D
patch_symbol_table: Patch: 0x08AC5F78: 0x00006081 -> 0x0000007E
patch_symbol_table: <-- patch_symbol_table()
thread_start: patching in Status quote fixes
fix_quotes: --> fix_quotes()
fix_quotes: Patching...
fix_quotes: Waiting for stub to be resolved...
fix_quotes: Patch: 0x089EDD74: 0x1420001B -> 0x1000001B
fix_quotes: Waiting for stub to be resolved...
fix_quotes: Patch: 0x089EEA58: 0x2407001C -> 0x24070018
fix_quotes: Waiting for stub to be resolved...
fix_quotes: Patch: 0x089EDFC8: 0x2407000C -> 0x2407000A
fix_quotes: Waiting for stub to be resolved...
fix_quotes: Patch: 0x089EE000: 0x2407000C -> 0x2407000A
fix_quotes: Checking for expected code for smart new line insertion...
fix_quotes: Checking chunk 1...
fix_quotes: Checking chunk 2...
fix_quotes: Checking chunk 3...
fix_quotes: Checking chunk 4...
fix_quotes: Patching in smart new line insertion code...
fix_quotes: Patching chunk 1...
fix_quotes: Patch: 0x089EDD50: 0x2403000D -> 0x24030020
fix_quotes: Patch: 0x089EDD54: 0x5083002F -> 0x14830004
fix_quotes: Patch: 0x089EDD58: 0x26730001 -> 0x02603021
fix_quotes: Patch: 0x089EDD5C: 0x2403000A -> 0x24C60001
fix_quotes: Patch: 0x089EDD60: 0x1083002B -> 0x0E27B771
fix_quotes: Patching chunk 2...
fix_quotes: Patch: 0x089EDDBC: 0x24050001 -> 0x10400004
fix_quotes: Patch: 0x089EDDC0: 0x14C00008 -> 0x24C60001
fix_quotes: Patch: 0x089EDDC4: 0x00000000 -> 0x80C20000
fix_quotes: Patch: 0x089EDDC8: 0x14A00006 -> 0x5443FFFC
fix_quotes: Patch: 0x089EDDCC: 0x00000000 -> 0x00000000
fix_quotes: Patch: 0x089EDDD0: 0x3C0508AD -> 0x24C6FFFF
fix_quotes: Patch: 0x089EDDD4: 0x02802021 -> 0x00D31823
fix_quotes: Patch: 0x089EDDD8: 0x24A581C0 -> 0x02433021
fix_quotes: Patch: 0x089EDDDC: 0x0E226E0C -> 0x00D13023
fix_quotes: Patch: 0x089EDDE0: 0x00009021 -> 0x0A27B75F
fix_quotes: Patch: 0x089EDDE4: 0x52000007 -> 0x00000000
fix_quotes: Patching chunk 3...
fix_quotes: Patch: 0x089EDD7C: 0x82640000 -> 0x5CC00001
fix_quotes: Patch: 0x089EDD80: 0x24020081 -> 0x2404000A
fix_quotes: Patch: 0x089EDD84: 0x14820006 -> 0x03E00008
fix_quotes: Patch: 0x089EDD88: 0x00003021 -> 0x00000000
fix_quotes: Patching chunk 4...
fix_quotes: Patch: 0x089EDDE8: 0x82650000 -> 0x2405000A
fix_quotes: Patch: 0x089EDDEC: 0x82650000 -> 0x50850003
fix_quotes: Patch: 0x089EDDF0: 0x0E22771C -> 0x00802821
fix_quotes: Patch: 0x089EDDF4: 0x02802021 -> 0x52000003
fix_quotes: Patch: 0x089EDDF8: 0x26730001 -> 0x82650000
fix_quotes: Patch: 0x089EDDFC: 0x26520001 -> 0x24120000
fix_quotes: Patch: 0x089EDE00: 0x82650000 -> 0x00000000
fix_quotes: <-- fix_quotes()
thread_start: patching Jewel Status description fix
patch_jewel_status: --> patch_jewel_status()
patch_jewel_status: Waiting for stub to be resolved...
patch_jewel_status: Patching...
patch_jewel_status: Patch: 0x089BCA1C: 0x24020002 -> 0x24020001
patch_jewel_status: <-- patch_jewel_status
 

qaz015393

Well-Known Member
Member
Joined
Jan 28, 2009
Messages
826
Trophies
1
XP
851
Country
United States
Big thanks for the patch. Been wanting to play this in English :) Great job on the work you've done for the patch.
 

justfuit

Active Member
OP
Newcomer
Joined
Dec 10, 2013
Messages
42
Trophies
0
XP
154
Country
United States
Or maybe not, looking again at the "i"s, they definitely have less space than other characters. Maybe just a case of odd/bad spacing. Hmm. Maybe editable in the font itself, have you looked into that?
I messed with the font before, just to see what the limitations were. At one point, I tried replacing some characters with the font used in Odin Sphere, but that didn't turn out too well. All the tiles for different encodings of the English letters look identical, but the spacing in the tile is different. I think there's a routine in the game that resizes the tiles as it sees fit. Here's what the font file (on a navy background, original is transparent) for English characters looks like:
2mmftqf.jpg


NicoBlogs, thanks for going through that and posting the log. Unfortunately, it looks like the patch is doing what it's supposed to. It could be way I'm building the plug-in, as I'm not too experienced with that. My final suggestion would be to try PRO-C2, or maybe wait. I might have a PRX-less patch working.

Can you make a plugin-less version of the patch? PPSSPP doesn't support plugins (nor it will).
The plug-in writes in some ASM code to makes things look nicer in most places. I feel the biggest role of the patch is to defeat the ASCII to SJIS conversion that happens in the main text. Without this defeat, none of the text would fit in the window. You can get around it by shortening things, but then you're severely limited in getting the message from the translation through. StorMyu was kind enough to explain something to me that make me think I might be able to get a plugin-less patch to work, which might be worth the effort.
 

GamerzHell9137

Well-Known Member
Member
Joined
Nov 1, 2011
Messages
4,038
Trophies
2
Age
29
XP
3,755
Country
Bosnia and Herzegovina
The plug-in writes in some ASM code to makes things look nicer in most places. I feel the biggest role of the patch is to defeat the ASCII to SJIS conversion that happens in the main text. Without this defeat, none of the text would fit in the window. You can get around it by shortening things, but then you're severely limited in getting the message from the translation through. StorMyu was kind enough to explain something to me that make me think I might be able to get a plugin-less patch to work, which might be worth the effort.

Cool, good luck with it, gonna wait until then.
 

justfuit

Active Member
OP
Newcomer
Joined
Dec 10, 2013
Messages
42
Trophies
0
XP
154
Country
United States
Original post download link has been updated with a new patch. With this patch, the plugin is only needed if playing on the PSP. All the plugin will do is hook the PSP utility functions and change the region to English. Needless to say, emulators don't need (nor support) this plugin, so those who want to use an emulator can ignore the prx.

Still looking for people who will help proof-read. I reviewed all the text files before putting the translations in, but sometimes it's difficult to get the right message across without context. Problems described in the original post are still there, but I'll be working on them, albeit slowly.
 
D

Deleted User

Guest
Ok i've tested the new patch.
In both pro-C fix3 and Pro-C2 it does the same thing, after you kill the enemies on the initial tutorial the screen goes white the music still runs but you can't do anything other than close the game.
The problem moved to the ISO itself not the plugin.

A pic showing my model and CFW:
ccem4GE.jpg


The infamous white screen of death:
BbBoHdQ.jpg


I really wish somebody else test this patch maybe on a 3000 model if possible. I can't believe i'm the only one with this problem.
 

gartlan

Well-Known Member
Newcomer
Joined
Nov 5, 2002
Messages
47
Trophies
2
XP
871
Country
I have tested both patches on a PSP 2000 running 6.60 Pro C2 and I have exactly the same issue, it hangs displaying a white screen with the music still running, after completing the first tutorial. Not only that, after exiting the game and returning to the game, it won't load the save game, hanging while displaying a loading message. With the first patch I deleted the save game...and didn't have the problem. If you decline the tutorial I was able to complete the first battle and continue, but I didn't play for long.

Great to see this game translated, but a hang so early in the game doesn't make you confident. I'll test the second patch with a friend's PSP 1000, but I imagine it will do the same.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: Gn +1