Thanks for the awesome project,
Its very nice.
It seem does not supports the Chinese version,
which named YuanShen from mihoyo offcial website.
/Genshin Impact Game$ bash ../GI-on-Linux/120/patch.sh
Wrong file version or patch is already applied
LINK REMOVED BY KROCK (after download)
↑↑↑ I will delete it after 48 hours.
come to my house to blow the air conditioner tonight
Does it work if you remove the hash check? It could be some error messages different or something. Make sure to use an account you don't mind getting banned though.
thanks for the memtion,
i dont mind getting banned :D
i have tried remove the hash check,
but still not working.
$ bash ../GI-on-Linux/120/patch.sh
Wrong file version or patch is already applied
--- Patching UnityPlayer
xdelta3: target window checksum mismatch: XD3_INVALID_INPUT
xdelta3: normally this indicates that the source file is incorrect
xdelta3: please verify the source file with sha1sum or equivalent
==> Patch applied! Enjoy the game.
xdelta3 report errors here.
Are you unable to use the international version? It has Chinese as a language option and server select has an Asia server (I'm not sure if the Asia server is the same as the china server though).
Download link: https://ys-api-os.mihoyo.com/event/download_porter/link/ys_global/genshinimpactpc/default
Direct link if that doesn't work: https://genshinimpact.mihoyo.com/client_app/launcher/20201223_d3fcf5785e92e37a/GenshinImpact_install_20201211165103.exe
thank you for the fast reply,
the asian server is for all of asia without china,
due to chinese law and payment.
i can play chinese version in cloud gamming service,
but have a little bit of frame loss
and thanks for your suggestion,
maybe transform to international server is another choice.
Are you sure this is the 1.2.0 binary? Its timestamp is 09 Dec, rather than the official release date of 23 Dec.
Progress (editing gradually)
We can try to use the globally accepted values, maybe they work on all servers.
EDIT99: need some more time.
@dfc643 With some luck this patch here should work. https://www.privfile.com/download.php?fid=5fe488e5343c3-NDk4NQ==
Please report back whether this results in the error code 31-4302.
@Krock Thanks for your soooo quickly reply!
i am make sure thats 1.2.0 (in downloader title shows)
i will try this patch and reply soon :D
@Krock yeh the new patch it works!
but its really reports error 31-4302
REM ============ AVOID CHANGES HERE ============
REM Emulate the games behaviour
copy mhyprot2.sys "%TEMP%\"
REM Disable crash reporting
IF EXIST YuanShen_Data\upload_crash.exe (
move "YuanShen_Data\upload_crash.exe" "YuanShen_Data\upload_crash.exe.bak"
REM ============= Launch the game =============
REM Add custom launch params here
the china standard time is 10:11 pm now,
if i have no reply, i will test and reply after 8 hours.
So to get your version running you'd need to check whether UserAssembly.dll is the same (as in addresses), run the game on a Windows machine, and dump the correct values from memory. If you know how assembly/pointers/Cheat Engine works we could give that a try, otherwise try to use the international version somehow, or play it in the cloud.
i donot know how to dump from memory.
here is chinese version dl link:
if you dont mind,
i repost this issue to bbs.deepin.org linux forum
to get someone helps?
if you need a account to do the test,
i can provide one.
How many people are interested in this? How bad is the cloud service?
Patching the international version already takes a few hours of work and a good amount of nerves. Thus I am not keen setting up another (Chinese) game variant on my machine. However, only if...
.. then I might set up the patch files for you.
Otherwise decompile your UserAssembly version, read out the hash values on a working Windows machine and complete the patch I sent earlier.
Or tweak your cloud service for better gameplay, if that is possible.
That's all I can offer. Sorry for being so direct, but I cannot find a better way to express myself.
thank you do a lot things of the project
there so many linux user want play in china,
the cloud service is expensive (2 rmb/hrs) and slowly...
that i am a linux server maintenance staff,
isnt know more things of reverse engineering.
but i think repost the issue to chinese linux forum,
there will have someone can helps to finish the patch of chinese version.
i think that is the best way if you not mind.
@dfc643 Feel free to ask for volunteers on the deepin forums. My conditions will remain the same as stated above.
Please keep in mind that each public mention of this repository increases the chances for miHoYo to find it.
EDIT: Interesting domains. I did not capture those in Wireshark, hence I don't know whether they need blocking.
@Krock Happy New Year,
Thats looooooong time no see due to my works.
I tried ask for somebody at deepin forum,
and using wrong character instead the game name.
the two domains is report from my router traffic list.
How do you find addresses for patching? I managed to find first function, but can't figure out location for second one.
@vero I re-uploaded the skeleton patch to the repository just now. <-- contains all basic functions you need.
EDIT: Instructions removed from this post. Please write me an email
If you're successful, the game will crash before showing the 7 element symbols after login. If you got that far, try to apply the anti_logincrash patch or migrate that to the CN version as well.
EDIT3 (I think?): If you found all addresses you can use byte matching to find the functions in the next release -- given they did not add any additional hurdles.
Chinese version 1.4.0 is already available for pre-download:
Maybe it's worth looking at in preparation for global 1.4.0?
(Feel free to delete/edit this message if you think it's dangerous in some way. I think it's not, but your word is last here, @Krock.)
@Alex72 Thank you for the input. Whereas this would allow some preparation, it would only cause more effort to partially decompile the international version afterwards. Not worth the hassle IMO.
Actually with a bit of magic you can get a global version:
i have replaced all the modified files,it doesn't work.
but i find you can replace 20527480.blk change to chinese version.
so I uploaded the file to the mega
The Chinese server uses slightly different binary files which need another patch file in order to join the game.
Simply copying files from the international version won't let you enter the CN game server. Would you mind elaborating what's special about this *.blk file?
20527480.blk contains channel config (dispatch server URL) as well as logging servers URLs and some other stuff.
Technically it may be possible to swap it between CN and global versions to make it connect to the server it's not supposed to, but I can't confirm nor deny this. Probably you'll need to patch asset_index too, because it contains hash of all assets used in the game.
Furthermore it would require to modify the client name to match the international version, or the sent login data would be highly suspicious. It it were that simple, an /etc/hosts rule might work too once UnityPlayer.dll is patched.
It could be that the international server domains are blocked in China, unless proven otherwise, it might be only wasted effort.