After a few hours ive found out the paramaters for korean client
/0/0/0/2/1024/768
Here they are in index's
0=Servers 0=Normal 1=Outside World Test 2 / developer+gm
1=Username
2=Password
3=WindowMode 1=FullScreen,2=Window
4=Resolution X
5=Resolution Y
The launchers for aeria and mayn also work with korean files and look like korean launcher when I put them in there cept without the advertisment. The launchers for all games are coded in python and can be decompiled with a tool I think but I have yet to install the tool and compile it etc. Launcher reads GLS which is packed data and needs to be parsed. theres a class called GLS Parser in the python scripts which does it so if we look at that we can write a tool to let us modify launcher images etc.
The games working ish atm have to fix a few bugs ive caused by patching the game several times from patch 1 up to patch 649
Patchs made
Code:
GameGuard Bypass
0040577A /EB 0F JMP SHORT 0040578B
0040577C |. |68 F0175500 PUSH 005517F0 ; ASCII "TwelveSky2"
00405781 |. |E8 EA291200 CALL 00528170
00405786 |. |83C4 04 ADD ESP,4
00405789 |. |EB 02 JMP SHORT 0040578D
GameGuard Bypass
00405795 /EB 23 JMP SHORT 004057BA
00405797 |. |68 00100000 PUSH 1000 ; /Style = MB_OK|MB_SYSTEMMODAL
0040579C |. |68 F0175500 PUSH 005517F0 ; |Title = "TwelveSky2"
004057A1 |. |68 D8185500 PUSH 005518D8 ; |Text = "[Error::CNPGameLib()]"
004057A6 |. |56 PUSH ESI ; |hOwner
004057A7 |. |FF15 28135500 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
004057AD |. |5F POP EDI
004057AE |. |33C0 XOR EAX,EAX
GameGuard Bypass
004057CB /EB 24 JMP SHORT 004057F1
004057CD |. |56 PUSH ESI
004057CE |. |8D4424 6C LEA EAX,DWORD PTR SS:[ESP+6C]
004057D2 |. |68 C0185500 PUSH 005518C0 ; ASCII "[GameGuard Error::%lu]"
004057D7 |. |50 PUSH EAX
004057D8 |. |E8 221A1300 CALL 005371FF
004057DD |. |83C4 0C ADD ESP,0C
004057E0 |. |68 00100000 PUSH 1000
004057E5 |. |68 F0175500 PUSH 005517F0 ; ASCII "TwelveSky2"
004057EA |. |8D4C24 70 LEA ECX,DWORD PTR SS:[ESP+70]
Multi Client
00405800 /EB 3D JMP SHORT 0040583F
00405802 |. |68 00100000 PUSH 1000
00405807 |. |68 F0175500 PUSH 005517F0 ; ASCII "TwelveSky2"
0040580C |. |68 A8185500 PUSH 005518A8 ; ASCII "[Error::FindWindow()]"
00405811 |> |6A 00 PUSH 0 ; |hOwner = NULL
00405813 |. |FF15 28135500 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
Nop to remove intro video?
00405C20 > \56 PUSH ESI
00405C21 . 57 PUSH EDI
00405C22 . 68 20185500 PUSH 00551820 ; ASCII "INTRO.AVI"
00405C27 . E8 D4231200 CALL 00528000
Skip invalid badword error who cares if swearfilters broken
00404FDE /EB 22 JMP SHORT 00405002
00404FE0 |. |68 00100000 PUSH 1000 ; /Style = MB_OK|MB_SYSTEMMODAL
00404FE5 |. |68 F0175500 PUSH 005517F0 ; |Title = "TwelveSky2"
00404FEA |. |68 24175500 PUSH 00551724 ; |Text = "[Error::mBADWORD.Init()]"
00404FEF |. |53 PUSH EBX ; |hOwner
00404FF0 |. |FF15 28135500 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00404FF6 |. |5E POP ESI
Skip invalid item stuff should load it anyway.. if theres errors its our own fault who cares
0040512E /EB 22 JMP SHORT 00405152
00405130 |. |68 00100000 PUSH 1000 ; /Style = MB_OK|MB_SYSTEMMODAL
00405135 |. |68 F0175500 PUSH 005517F0 ; |Title = "TwelveSky2"
0040513A |. |68 68165500 PUSH 00551668 ; |Text = "[Error::mITEM.Init()]"
0040513F |. |53 PUSH EBX ; |hOwner
00405140 |. |FF15 28135500 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00405146 |. |5E POP ESI
Now to fix my game files so that the items are loaded correctly and hopefully it wont crash then I will have working TS2 Korean client fully updated.
The ITEMInit crash is because there is invalid memory access. ALT1 have hard coded the Item File uncompressed file size. When they should be doing it Dynamically from the file. +4 from the already read CompressedFileSize gets you the uncompressed file size... Will have to write a slight detour for this.
Code:
0042478C |. 8B5424 1C MOV EDX,DWORD PTR SS:[ESP+1C]
00424790 B9 44534900 MOV ECX,00495344 ; Moving Fixed Size
00424795 |. 8D75 04 LEA ESI,DWORD PTR SS:[EBP+4] ; Should be a Dynamic size loaded from file *Uncompressed fileSize
00424798 |. 8BFB MOV EDI,EBX
0042479A |. F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] ; Causing invalid memory exception atm
MOV ECX,00495344 is the line at fault ive changed it though to have my current file uncompressed size.
Change it to this
MOV ECX,DWORD PTR SS:[ESP+14]
And it will work every time we modify itemsinfo file so long as the data is still the right data we need

Meaning we can translate game to english or w/e
I Present To You the Korean Client Working.
Now its possible to make it work on pserver, translate to english etc.
Total time taken is like 7-12 hours downloading, 1 hour coding my own patcher or less i donno, 6 hours or so in ollydbg working out WTH is going on and also comparing different exe versions from patchs.
Wonder if theres a way to bring back login screen like in aeria.. hmmm
THE BIG QUESTION!
Can someone who is korean gift me an account on the korean TS2 so I can compare it to aeria and mayn.
Thanks