- Joined
- Aug 21, 2018
Interesting, this one has the exact same number of bytes but is apparently unencrypted, unlike the other one.Thanks again for looking into this. Try this one.
Still haven't loaded it in the disassembler, but may be promising.
Interesting, this one has the exact same number of bytes but is apparently unencrypted, unlike the other one.Thanks again for looking into this. Try this one.
I have some patches for you to try, whenever is fine.Thanks again for looking into this. Try this one.
You're a lifesaver! I'm reporting back after doing some testing, and I'm happy to say that all three .exe files work. Fullscreen is my preference since the black bars in the widescreen version do not extend beyond 16:9, which looks strange in ultra-wide. I honestly don't mind the subtitle location, since it was the black bars that were the most distracting for me. Also, somehow I managed to get the title screen and transition screens to extend to ultra-wide in Shenmue 1, but not in Shenmue 2, so I can still see the sides of the screen that it overlies during transitions, but I don't believe this has anything to do with your .exe patch.I have some patches for you to try, whenever is fine.
Instead of overloading the dojo's storage, I'll link 3 patches for you to test and give feedback on, these will be:
Patches for testing (MS version): https://mega.nz/folder/u1xjmAyT#Pi5f2xwZqYEec-PyLIl76Q
- Shenmue2 MS camera icon patch: removes the blue camera icon overlay from the top-right during cut-scenes and QTE sequences.
- Shenmue2 MS fullscreen patch: makes cut-scenes full screen, similar to how they are in Shenmue1 (when also patched). Because Shenmue2 has a distinct ratio for cut-scenes, the subtitles won't have their position corrected. For the Steam version I wrote some assembly code to bring the subtitles' position to the bottom, but with the MS version I can't achieve the same result based on static analysis alone, so keep that in mind when you see the subs hanging.
- Shenmue2 MS widescreen patch: removes the side bars during cut-scenes. This is different from what you get in Shenmue1 (which goes from a 4:3 ratio and expands into full screen), here you get a cinematic letter-boxing effect, as your average movie, but still an improvement over the original aspect ratio (matter of opinion).
I feel pretty confident that these will work, but testing is needed to validate that. Also, as I mentioned, the subtitle positioning for this version does not include a custom correction because it's hard for me to write assembly code (in general, but more so when...) relying on static analysis.
In any case, these are the main patches that people often seek. If they are validated as working, I'll update the patch to support this MS version, even though I'm still unclear on the game's versioning from MS, I've been calling it v1.00 (not sure if there is a changelog anywhere).
Glad it works. I updated the patch and link in the original post, here. You can patch your MS version yourself now if you want.You're a lifesaver! I'm reporting back after doing some testing, and I'm happy to say that all three .exe files work. Fullscreen is my preference since the black bars in the widescreen version do not extend beyond 16:9, which looks strange in ultra-wide. I honestly don't mind the subtitle location, since it was the black bars that were the most distracting for me. Also, somehow I managed to get the title screen and transition screens to extend to ultra-wide in Shenmue 1, but not in Shenmue 2, so I can still see the sides of the screen that it overlies during transitions, but I don't believe this has anything to do with your .exe patch.
P.S. I don't know what version it is either, but I'm assuming it's equivalent to the latest Steam patch of 1.07 since the release date in the Xbox/MS Games app shows a release date of 2019-06-09. Also, I bypassed the encryption you referred to by using a highly sophisticated method of making a copy of the original .exe file and then renaming it. I noticed it had permission restrictions when I tried to install ReShade, so I wasn't surprised when you had difficulties.
Apologies, but sarcasm doesn't always come across online - I literally just made a copy of the encrypted .exe file and then renamed the copy of the original .exe file to Shenmue.exe and Shenmue2.exe. I stumbled upon this while I was troubleshooting with your patch and tried to patch the .exe in a different folder. Somehow this removed any of the permission restrictions on the original .exe file, but still kept the necessary code to boot up the game. This means that your patch will likely not work on the encrypted .exe file for others and they'll need to do the same thing. I think the real lesson here is to never buy games through the MS store...Glad it works. I updated the patch and link in the original post, here. You can patch your MS version yourself now if you want.
About it not extending all the way in for title and transition screens (in ultra-wide), I doubt it is related to my patch, but I have no clue why it works with S1 and not S2.
I was going to suggest for you to share how you got the unencrypted executable so that anyone else in the same situation could replicate it, but if the method is complex, I guess it's not for everyone.
Thanks for the testing btw.![]()
It flew over my head completely, both the sarcasm and the hyperbole ("highly sophisticated method") lolApologies, but sarcasm doesn't always come across online - I literally just made a copy of the encrypted .exe file and then renamed the copy of the original .exe file to Shenmue.exe and Shenmue2.exe. I stumbled upon this while I was troubleshooting with your patch and tried to patch the .exe in a different folder. Somehow this removed any of the permission restrictions on the original .exe file, but still kept the necessary code to boot up the game. This means that your patch will likely not work on the encrypted .exe file for others and they'll need to do the same thing. I think the real lesson here is to never buy games through the MS store...
Thank you for that.I feel silly explaining this because of how rudimentary it was, but here goes:
1. Drag the original .exe file from the sm1 or sm2 folder in the game directory to a different folder or your desktop (copying it directly will produce an error message saying you need adminstrative privileges).
2. Make a copy of the original .exe file and place it back in the game directory within the sm1 or sm2 folder.
3. Rename the .exe file copy to the original .exe filename (either Shenmue.exe or Shenmue2.exe).
4. Play the game as usual using the normal game launcher.
I haven't actually tested it since I used the .exe files you uploaded for me, but I imagine you could use your patch on the .exe file copy either in the temporary folder or the game directory, but it likely will not work on the original .exe file.
Yeah, I feel like I've done this technique before with a restricted/encrypted file in the past. As for step #3, I suppose if you copy it directly to original game directory you wouldn't need to rename it, but if you copied it to the same location as the original .exe file like me and ended up with Shenmue(1).exe, then you would obviously need to rename it before using it to launch the game. And if you keep the original .exe file as a backup, you'd rename that to something else if you store in the game directory.Thank you for that.
There is nothing silly about it, because it's nevertheless confusing. A copy/paste operation should technically work the same as a drag and drop (although it could be executed as a move operation under some circumstances), but it is not clear here. And there is still the question about step #3, why do you have to rename the exe file? Was it not named Shenmue.exe or Shenmue2.exe originally?
Thanks for the explanation.
It's working fine, you're probably using the wrong link. Which link from which post did you get that?Hello! Ive come to report that the patcher is missing from the mega link.
Did you try the current one though?Leave with me and I'll sort a new link.
Did you try the current one though?
This is not the same issue reported by @Robotcircus.Hey, just a heads up, it doesn't seem to be working for me:
![]()
This is not the same issue reported by @Robotcircus.
Although your ISP may be blocking the link shortner domain that I'm using for analytics, but I'm not trying to hold anyone hostage, even though your ISP seems to be, so just double-check it for me now; if it still fails then use the mirror link underneath in the original post should appear like this: mirror link
No worries, thanks for the warning and feedback.Can confirm, the issue was on my sideBoth links are working fine.
Sorry for the false report, but thanks for looking into it! Your work is invaluable to the community!
@echo off
:: Coded by ner0
:: Release URL: https://www.shenmuedojo.com/forum/index.php?threads/shenmue-i-re-release-16-9-cutscenes-fix.358/page-5#post-10013
:: Based on Esppiral's initial work: https://www.shenmuedojo.com/forum/index.php?threads/shenmue-i-re-release-16-9-cutscenes-fix.358/
:: Script
set version=2.1.8
:: - Added support for MicrosoftStore v1.00(?), but no subtitle positioning correction in fullscreen cut-scenes
TITLE Shenmue I ^& II - Widescreen Patcher (v%version%)
SETLOCAL EnableDelayedExpansion
echo.
echo ========================================================================================
echo __ _ _____ ___ _____ _____
echo / _\ ^| ^|__ ___ _ __ _ __ ___ _ _ ___ \_ \ ( _ ) \_ \ \_ \
echo \ \ ^| '_ \ / _ \^| '_ \ ^| '_ ` _ \ ^| ^| ^| ^| / _ \ / /\/ / _ \/\ / /\/ / /\/
echo _\ \ ^| ^| ^| ^|^| __/^| ^| ^| ^|^| ^| ^| ^| ^| ^|^| ^|_^| ^|^| __/ /\/ /_ ^| (_^> ^< /\/ /_ /\/ /_
echo \__/ ^|_^| ^|_^| \___^|^|_^| ^|_^|^|_^| ^|_^| ^|_^| \__,_^| \___^| \____/ \___/\/ \____/ \____/
echo.
echo -^> W I D E S C R E E N P A T C H E R ^<-
echo ========================================================================================
echo v%version%
echo. & echo.
:: Setting the path for 'gsar' tool
set "toolboxPath=%~dp0toolbox"
:: Checking if 'gsar' tool is present
if not exist "%toolboxPath%\gsar.exe" echo ERROR: 'gsar.exe' was not found in "%toolboxPath%"^^! & echo. & pause & goto :EOF
:: Checking if input file argument was passed (Drag & Drop) or if the script was executed without arguments
if "%~1"=="" echo ERROR: This script cannot be run directly^^! & echo Drag ^& Drop over this script either the file 'Shenmue.exe' or 'Shenmue2.exe' to be patched. & echo. & pause & goto :EOF
:: Setting variables: input file name and path, file path only, shortened file path only, file name only
set "inputFile=%~1"
set "filePath=%~d1%~p1%"
set "sfilePath=%~sd1%~sp1%"
set "fileName=%~nx1"
:: *** Setting hexadecimal patterns and patching bytes ***
:: Shenmue I - Widescreen (cut-scenes)
:: ===================================================================================================================================
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.00)
set origiPattern1_sm1_100=:x89:x0D:xBD:x42:xBB:x00
set patchPattern1_sm1_100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.00)
set origiPattern2_sm1_100=:x89:x0D:x9B:x1D:xBB:x00
set patchPattern2_sm1_100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.00)
set origiPattern3_sm1_100=:x89:x1D:x58:x1D:xBB:x00
set patchPattern3_sm1_100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.00)
set origiPattern4_sm1_100=:x89:x1D:xFE:x1C:xBB:x00
set patchPattern4_sm1_100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.01)
set origiPattern1_sm1_101=:x89:x0D:x31:xC5:xBB:x00
set patchPattern1_sm1_101=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.01)
set origiPattern2_sm1_101=:x89:x0D:xBF:x9F:xBB:x00
set patchPattern2_sm1_101=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.01)
set origiPattern3_sm1_101=:x89:x1D:x45:x9F:xBB:x00
set patchPattern3_sm1_101=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.01)
set origiPattern4_sm1_101=:x89:x1D:xEB:x9E:xBB:x00
set patchPattern4_sm1_101=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.02)
set origiPattern1_sm1_102=:x89:x15:x2C:xD5:xBB:x00
set patchPattern1_sm1_102=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.02)
set origiPattern2_sm1_102=:x89:x15:x9A:xAF:xBB:x00
set patchPattern2_sm1_102=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.02)
set origiPattern3_sm1_102=:x89:x1D:x09:xAF:xBB:x00
set patchPattern3_sm1_102=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.02)
set origiPattern4_sm1_102=:x89:x1D:x93:xAE:xBB:x00
set patchPattern4_sm1_102=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.03)
set origiPattern1_sm1_103=:x89:x15:xCC:xD1:xBB:x00
set patchPattern1_sm1_103=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.03)
set origiPattern2_sm1_103=:x89:x15:x3A:xAC:xBB:x00
set patchPattern2_sm1_103=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.03)
set origiPattern3_sm1_103=:x89:x1D:xA9:xAB:xBB:x00
set patchPattern3_sm1_103=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.03)
set origiPattern4_sm1_103=:x89:x1D:x33:xAB:xBB:x00
set patchPattern4_sm1_103=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.04)
set origiPattern1_sm1_104=:x89:x15:xBC:x71:xBB:x00
set patchPattern1_sm1_104=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.04)
set origiPattern2_sm1_104=:x89:x15:x1A:x4C:xBB:x00
set patchPattern2_sm1_104=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.04)
set origiPattern3_sm1_104=:x89:x1D:x89:x4B:xBB:x00
set patchPattern3_sm1_104=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.04)
set origiPattern4_sm1_104=:x89:x1D:x13:x4B:xBB:x00
set patchPattern4_sm1_104=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.05)
set origiPattern1_sm1_105=:x89:x15:xFC:x7C:xBB:x00
set patchPattern1_sm1_105=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.05)
set origiPattern2_sm1_105=:x89:x15:x4A:x56:xBB:x00
set patchPattern2_sm1_105=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.05)
set origiPattern3_sm1_105=:x89:x1D:xB9:x55:xBB:x00
set patchPattern3_sm1_105=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.05)
set origiPattern4_sm1_105=:x89:x1D:x43:x55:xBB:x00
set patchPattern4_sm1_105=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (v1.06/v1.07)
set origiPattern1_sm1_106-107=:x89:x15:x1C:xBB:xBB:x00
set patchPattern1_sm1_106-107=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (v1.06/v1.07)
set origiPattern2_sm1_106-107=:x89:x15:x6A:x94:xBB:x00
set patchPattern2_sm1_106-107=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (v1.06/v1.07)
set origiPattern3_sm1_106-107=:x89:x1D:xD9:x93:xBB:x00
set patchPattern3_sm1_106-107=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (v1.06/v1.07)
set origiPattern4_sm1_106-107=:x89:x1D:x63:x93:xBB:x00
set patchPattern4_sm1_106-107=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern1 - Widescreen (cut-scenes) (MS v1.00)
set origiPattern1_sm1_ms100=:x89:x15:x10:x8A:x41:x05
set patchPattern1_sm1_ms100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern2 - Widescreen (cut-scenes) (MS v1.00)
set origiPattern2_sm1_ms100=:x89:x15:x8F:x61:x41:x05
set patchPattern2_sm1_ms100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern3 - Widescreen (cut-scenes) (MS v1.00)
set origiPattern3_sm1_ms100=:x89:x3D:x6C:x5F:x41:x05
set patchPattern3_sm1_ms100=:x90:x90:x90:x90:x90:x90
:: Shenmue I, Pattern4 - Widescreen (cut-scenes) (MS v1.00)
set origiPattern4_sm1_ms100=:x89:x3D:x1A:x5E:x41:x05
set patchPattern4_sm1_ms100=:x90:x90:x90:x90:x90:x90
:: ===================================================================================================================================
:: Shenmue II - Widescreen (cut-scenes)
:: ===================================================================================================================================
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.00)
set origiPattern1_sm2_100=:xC7:x05:xF4:x1E:x6B:x00:x00:x00:x00:x00
set patchPattern1_sm2_100=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.00)
set origiPattern2_sm2_100=:x89:x0D:x2A:x1E:x6B:x00
set patchPattern2_sm2_100=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.01)
set origiPattern1_sm2_101=:xC7:x05:x2C:x24:x6B:x00:x00:x00:x00:x00
set patchPattern1_sm2_101=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.01)
set origiPattern2_sm2_101=:x89:x0D:x62:x23:x6B:x00
set patchPattern2_sm2_101=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.02)
set origiPattern1_sm2_102=:xC7:x05:x6C:x2E:x6B:x00:x00:x00:x00:x00
set patchPattern1_sm2_102=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.02)
set origiPattern2_sm2_102=:x89:x0D:xA2:x2D:x6B:x00
set patchPattern2_sm2_102=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.03)
set origiPattern1_sm2_103=:xC7:x05:x8C:x28:x6B:x00:x00:x00:x00:x00
set patchPattern1_sm2_103=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.03)
set origiPattern2_sm2_103=:x89:x0D:xC2:x27:x6B:x00
set patchPattern2_sm2_103=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.04)
set origiPattern1_sm2_104=:xC7:x05:x4C:x35:x6B:x00:x00:x00:x00:x00
set patchPattern1_sm2_104=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.04)
set origiPattern2_sm2_104=:x89:x0D:x82:x34:x6B:x00
set patchPattern2_sm2_104=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.05)
set origiPattern1_sm2_105=:xC7:x05:xCC:x7D:x6C:x00:x00:x00:x00:x00
set patchPattern1_sm2_105=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.05)
set origiPattern2_sm2_105=:x89:x0D:x02:x7D:x6C:x00
set patchPattern2_sm2_105=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.06)
set origiPattern1_sm2_106=:xC7:x05:x6C:x99:x6C:x00:x00:x00:x00:x00
set patchPattern1_sm2_106=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.06)
set origiPattern2_sm2_106=:x89:x0D:xA2:x98:x6C:x00
set patchPattern2_sm2_106=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (v1.07)
set origiPattern1_sm2_107=:xC7:x05:xDC:x99:x6C:x00:x00:x00:x00:x00
set patchPattern1_sm2_107=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (v1.07)
set origiPattern2_sm2_107=:x89:x0D:x12:x99:x6C:x00
set patchPattern2_sm2_107=:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern1 - Widescreen (cut-scenes) (MS v1.00)
set origiPattern1_sm2_ms100=:xC7:x05:xDC:x25:x74:x00:x00:x00:x00:x00
set patchPattern1_sm2_ms100=:x90:x90:x90:x90:x90:x90:x90:x90:x90:x90
:: Shenmue II, Pattern2 - Widescreen (cut-scenes) (MS v1.00)
set origiPattern2_sm2_ms100=:x89:x0D:x12:x25:x74:x00
set patchPattern2_sm2_ms100=:x90:x90:x90:x90:x90:x90
:: ===================================================================================================================================
:: Shenmue II - Full Vertical Image (cut-scenes)
:: ===================================================================================================================================
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.00) - EXPERIMENTAL
set origiPattern1_fvi_sm2_100=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:x72:xA5:x31:x00
set patchPattern1_fvi_sm2_100=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:x72:xA5:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.00) - EXPERIMENTAL
set origiPattern2_fvi_sm2_100=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x26:xA5:x31:x00
set patchPattern2_fvi_sm2_100=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x26:xA5:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.01) - EXPERIMENTAL
set origiPattern1_fvi_sm2_101=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:x62:xA5:x31:x00
set patchPattern1_fvi_sm2_101=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:x62:xA5:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.01) - EXPERIMENTAL
set origiPattern2_fvi_sm2_101=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x16:xA5:x31:x00
set patchPattern2_fvi_sm2_101=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x16:xA5:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.02) - EXPERIMENTAL
set origiPattern1_fvi_sm2_102=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:x02:xB0:x31:x00
set patchPattern1_fvi_sm2_102=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:x02:xB0:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.02) - EXPERIMENTAL
set origiPattern2_fvi_sm2_102=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:xB6:xAF:x31:x00
set patchPattern2_fvi_sm2_102=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:xB6:xAF:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.03) - EXPERIMENTAL
set origiPattern1_fvi_sm2_103=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:x52:xAA:x31:x00
set patchPattern1_fvi_sm2_103=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:x52:xAA:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.03) - EXPERIMENTAL
set origiPattern2_fvi_sm2_103=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x06:xAA:x31:x00
set patchPattern2_fvi_sm2_103=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x06:xAA:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.04) - EXPERIMENTAL
set origiPattern1_fvi_sm2_104=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:xF2:xB6:x31:x00
set patchPattern1_fvi_sm2_104=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:xF2:xB6:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.04) - EXPERIMENTAL
set origiPattern2_fvi_sm2_104=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:xA6:xB6:x31:x00
set patchPattern2_fvi_sm2_104=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:xA6:xB6:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.05) - EXPERIMENTAL
set origiPattern1_fvi_sm2_105=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:xB2:xBE:x31:x00
set patchPattern1_fvi_sm2_105=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:xB2:xBE:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.05) - EXPERIMENTAL
set origiPattern2_fvi_sm2_105=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x66:xBE:x31:x00
set patchPattern2_fvi_sm2_105=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x66:xBE:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.06) - EXPERIMENTAL
set origiPattern1_fvi_sm2_106=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:xE2:xCD:x31:x00
set patchPattern1_fvi_sm2_106=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:xE2:xCD:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.06) - EXPERIMENTAL
set origiPattern2_fvi_sm2_106=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x96:xCD:x31:x00
set patchPattern2_fvi_sm2_106=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x96:xCD:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (v1.07) - EXPERIMENTAL
set origiPattern1_fvi_sm2_107=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:x42:xCE:x31:x00
set patchPattern1_fvi_sm2_107=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:x42:xCE:x31:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (v1.07) - EXPERIMENTAL
set origiPattern2_fvi_sm2_107=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:xF6:xCD:x31:x00
set patchPattern2_fvi_sm2_107=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:xF6:xCD:x31:x00
:: Shenmue II, Pattern1 - Full Vertical Image (cut-scenes) (MS v1.00) - EXPERIMENTAL
set origiPattern1_fvi_sm2_ms100=:x4C:x8D:x4C:x24:x30:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x05:xD2:xE4:x36:x00
set patchPattern1_fvi_sm2_ms100=:x4C:x8D:x4C:x24:x30:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x05:xD2:xE4:x36:x00
:: Shenmue II, Pattern2 - Full Vertical Image (cut-scenes) (MS v1.00) - EXPERIMENTAL
set origiPattern2_fvi_sm2_ms100=:xC7:x44:x24:x20:x20:x00:x00:x00:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x86:xE4:x36:x00
set patchPattern2_fvi_sm2_ms100=:x90:x90:x90:x90:x90:x90:x90:x90:x4C:x8D:x4C:x24:x30:x4C:x8D:x05:x86:xE4:x36:x00
:: ===================================================================================================================================
:: Shenmue II - Vertical Subtitle Positioning (cut-scenes)
:: ===================================================================================================================================
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.00) - EXPERIMENTAL
set origiPattern1_vsp_sm2_100=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_100=:x8B:x07:xE9:x7E:xFF:x23:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.00) - EXPERIMENTAL
set origiPattern2_vsp_sm2_100=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_100=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xFE:xCE:x04:x00:x48:x8B:x7C:x24:x60:xE9:x6D:x00:xDC:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.00) - EXPERIMENTAL
set origiPattern3_vsp_sm2_100=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_100=:x41:x5E:x5F:xC3:x66:x81:xFE:x94:x01:x0F:x85:xF7:x30:xFB:xFF:xB8:x00:x80:x63:x44:xE9:xED:x30:xFB:xFF:xCC
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.01) - EXPERIMENTAL
set origiPattern1_vsp_sm2_101=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_101=:x8B:x07:xE9:x9E:x07:x24:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.01) - EXPERIMENTAL
set origiPattern2_vsp_sm2_101=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_101=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xEE:xCE:x04:x00:x48:x8B:x7C:x24:x60:xE9:x4D:xF8:xDB:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.01) - EXPERIMENTAL
set origiPattern3_vsp_sm2_101=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_101=:x41:x5E:x5F:xC3:x66:x81:xFE:x97:x01:x0F:x85:x07:x31:xFB:xFF:xB8:x00:x80:x63:x44:xE9:xFD:x30:xFB:xFF:xCC
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.02) - EXPERIMENTAL
set origiPattern1_vsp_sm2_102=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_102=:x8B:x07:xE9:x3E:x0B:x24:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.02) - EXPERIMENTAL
set origiPattern2_vsp_sm2_102=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_102=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xDE:xCF:x04:x00:x48:x8B:x7C:x24:x60:xE9:xAD:xF4:xDB:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.02) - EXPERIMENTAL
set origiPattern3_vsp_sm2_102=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_102=:x41:x5E:x5F:xC3:x66:x81:xFE:x97:x01:x0F:x85:x17:x30:xFB:xFF:xB8:x00:x80:x63:x44:xE9:x0D:x30:xFB:xFF:xCC
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.03) - EXPERIMENTAL
set origiPattern1_vsp_sm2_103=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_103=:x8B:x07:xE9:x4E:x0D:x24:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.03) - EXPERIMENTAL
set origiPattern2_vsp_sm2_103=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_103=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xCE:xCF:x04:x00:x48:x8B:x7C:x24:x60:xE9:x9D:xF2:xDB:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.03) - EXPERIMENTAL
set origiPattern3_vsp_sm2_103=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_103=:x41:x5E:x5F:xC3:x66:x81:xFE:x97:x01:x0F:x85:x27:x30:xFB:xFF:xB8:x00:x80:x63:x44:xE9:x1D:x30:xFB:xFF:xCC
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.04) - EXPERIMENTAL
set origiPattern1_vsp_sm2_104=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_104=:x8B:x07:xE9:x7E:x0C:x24:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.04) - EXPERIMENTAL
set origiPattern2_vsp_sm2_104=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_104=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xCE:xCF:x04:x00:x48:x8B:x7C:x24:x60:xE9:x6D:xF3:xDB:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.04) - EXPERIMENTAL
set origiPattern3_vsp_sm2_104=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_104=:x41:x5E:x5F:xC3:x66:x81:xFE:x98:x01:x0F:x85:x27:x30:xFB:xFF:xB8:x00:x80:x63:x44:xE9:x1D:x30:xFB:xFF:xCC
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.05) - EXPERIMENTAL
set origiPattern1_vsp_sm2_105=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_105=:x8B:x07:xE9:xDE:x19:x24:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.05) - EXPERIMENTAL
set origiPattern2_vsp_sm2_105=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_105=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xFE:xCE:x04:x00:x48:x8B:x7C:x24:x60:xE9:x0D:xE6:xDB:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.05) - EXPERIMENTAL
set origiPattern3_vsp_sm2_105=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_105=:x41:x5E:x5F:xC3:x66:x81:xFE:x93:x01:x0F:x85:xF7:x30:xFB:xFF:xB8:x00:x80:x63:x44:xE9:xED:x30:xFB:xFF:xCC
:: Shenmue II, Pattern1 - Vertical Subtitle Positioning (cut-scenes) (v1.06/v1.07) - EXPERIMENTAL
set origiPattern1_vsp_sm2_106-107=:x8B:x07:x48:x8B:x7C:x24:x60
set patchPattern1_vsp_sm2_106-107=:x8B:x07:xE9:x6E:x2F:x24:x00
:: Shenmue II, Pattern2 - Vertical Subtitle Positioning (cut-scenes) (v1.06/v1.07) - EXPERIMENTAL
set origiPattern2_vsp_sm2_106-107=:xE9:x1F:x00:x00:x00:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern2_vsp_sm2_106-107=:xE9:x1F:x00:x00:x00:x3D:x00:x00:x43:x44:x0F:x84:xCE:xCF:x04:x00:x48:x8B:x7C:x24:x60:xE9:x7D:xD0:xDB:xFF
:: Shenmue II, Pattern3 - Vertical Subtitle Positioning (cut-scenes) (v1.06/v1.07) - EXPERIMENTAL
set origiPattern3_vsp_sm2_106-107=:x41:x5E:x5F:xC3:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC:xCC
set patchPattern3_vsp_sm2_106-107=:x41:x5E:x5F:xC3:x66:x81:xFE:x94:x01:x0F:x85:x27:x30:xFB:xFF:xB8:x00:x80:x63:x44:xE9:x1D:x30:xFB:xFF:xCC
:: ===================================================================================================================================
:: Shenmue II - Remove snapshot camera icon from top-right corner
:: ===================================================================================================================================
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (v1.01) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_101=:x8B:x48:x08:xE9:x44:x73:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_101=:x8B:x88:xFF:x00:x00:x00:xE9:x41:x73:xFD:xFF:xCC
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (v1.02) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_102=:x8B:x48:x08:xE9:x64:x71:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_102=:x8B:x88:xFF:x00:x00:x00:xE9:x61:x71:xFD:xFF:xCC
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (v1.03) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_103=:x8B:x48:x08:xE9:x44:x71:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_103=:x8B:x88:xFF:x00:x00:x00:xE9:x41:x71:xFD:xFF:xCC
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (v1.04) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_104=:x8B:x48:x08:xE9:x64:x71:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_104=:x8B:x88:xFF:x00:x00:x00:xE9:x61:x71:xFD:xFF:xCC
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (v1.05) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_105=:x8B:x48:x08:xE9:xA4:x6B:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_105=:x8B:x88:xFF:x00:x00:x00:xE9:xA1:x6B:xFD:xFF:xCC
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (v1.06/v1.07) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_106-107=:x8B:x48:x08:xE9:x94:x44:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_106-107=:x8B:x88:xFF:x00:x00:x00:xE9:x91:x44:xFD:xFF:xCC
:: Shenmue II, Pattern1 - Remove snapshot camera icon from top-right corner (MS v1.00) - EXPERIMENTAL
set origiPattern1_nosnapcamico_sm2_ms100=:x8B:x48:x08:xE9:xC4:x68:xFD:xFF:xCC:xCC:xCC:xCC
set patchPattern1_nosnapcamico_sm2_ms100=:x8B:x88:xFF:x00:x00:x00:xE9:xC1:x68:xFD:xFF:xCC
:: ===================================================================================================================================
:: Check if the user has permissions over the output folder/file, try to elevate permissions if not
:checkPermissions
set "writable="
copy /Y nul "%filePath%\.chk" > nul 2>&1 && set writable=1
if not defined writable goto :getElevationNow
set "writable="
ren "%filePath%\%fileName%" "%fileName%.chk" > nul 2>&1 && set writable=1
:getElevationNow
if defined writable (
if exist "%filePath%\.chk" del "%filePath%\.chk"
if exist "%filePath%\%fileName%.chk" ren "%filePath%\%fileName%.chk" "%fileName%"
) else (
>nul 2>&1 "%SystemRoot%\System32\cacls.exe" "%SystemRoot%\System32\config\system"
if not %ErrorLevel%==0 (
echo. & echo STATUS: Requesting administrative privileges...
goto :UACPrompt
) else (
goto :gotAdmin
)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\elevate.vbs"
REM echo UAC.ShellExecute "%~s0", "%~s1", "", "runas", 1 >> "%temp%\elevate.vbs"
echo UAC.ShellExecute "%~s0", "%sfilePath%%fileName%", "", "runas", 1 >> "%temp%\elevate.vbs"
"%SystemRoot%\System32\wscript.exe" "%temp%\elevate.vbs"
exit /b
:gotAdmin
if exist "%temp%\elevate.vbs" del "%temp%\elevate.vbs" > nul
pushd "%cd%"
cd /D "%~dp0"
)
:: Check the input binary file for matching patterns
echo. & echo STATUS: Checking binary...
:patch_sm1_100
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_100% -r%patchPattern1_sm1_100% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_101
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_100% -r%patchPattern2_sm1_100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_100% -r%patchPattern3_sm1_100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_100% -r%patchPattern4_sm1_100% "%filePath%\%fileName%.patching" > nul
set "game=sm1_100" & echo. & echo STATUS: Detected Shenmue I v1.00 & goto :continuePatching
:patch_sm1_101
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_101% -r%patchPattern1_sm1_101% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_102
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_101% -r%patchPattern2_sm1_101% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_101% -r%patchPattern3_sm1_101% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_101% -r%patchPattern4_sm1_101% "%filePath%\%fileName%.patching" > nul
set "game=sm1_101" & echo. & echo STATUS: Detected Shenmue I v1.01 & goto :continuePatching
:patch_sm1_102
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_102% -r%patchPattern1_sm1_102% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_103
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_102% -r%patchPattern2_sm1_102% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_102% -r%patchPattern3_sm1_102% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_102% -r%patchPattern4_sm1_102% "%filePath%\%fileName%.patching" > nul
set "game=sm1_102" & echo. & echo STATUS: Detected Shenmue I v1.02 & goto :continuePatching
:patch_sm1_103
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_103% -r%patchPattern1_sm1_103% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_104
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_103% -r%patchPattern2_sm1_103% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_103% -r%patchPattern3_sm1_103% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_103% -r%patchPattern4_sm1_103% "%filePath%\%fileName%.patching" > nul
set "game=sm1_103" & echo. & echo STATUS: Detected Shenmue I v1.03 & goto :continuePatching
:patch_sm1_104
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_104% -r%patchPattern1_sm1_104% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_105
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_104% -r%patchPattern2_sm1_104% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_104% -r%patchPattern3_sm1_104% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_104% -r%patchPattern4_sm1_104% "%filePath%\%fileName%.patching" > nul
set "game=sm1_104" & echo. & echo STATUS: Detected Shenmue I v1.04 & goto :continuePatching
:patch_sm1_105
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_105% -r%patchPattern1_sm1_105% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_106-107
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_105% -r%patchPattern2_sm1_105% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_105% -r%patchPattern3_sm1_105% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_105% -r%patchPattern4_sm1_105% "%filePath%\%fileName%.patching" > nul
set "game=sm1_105" & echo. & echo STATUS: Detected Shenmue I v1.05 & goto :continuePatching
:patch_sm1_106-107
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_106-107% -r%patchPattern1_sm1_106-107% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm1_ms100
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_106-107% -r%patchPattern2_sm1_106-107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_106-107% -r%patchPattern3_sm1_106-107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_106-107% -r%patchPattern4_sm1_106-107% "%filePath%\%fileName%.patching" > nul
set "game=sm1_106-107" & echo. & echo STATUS: Detected Shenmue I v1.06/v1.07 & goto :continuePatching
:patch_sm1_ms100
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm1_ms100% -r%patchPattern1_sm1_ms100% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_100
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm1_ms100% -r%patchPattern2_sm1_ms100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_sm1_ms100% -r%patchPattern3_sm1_ms100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern4_sm1_ms100% -r%patchPattern4_sm1_ms100% "%filePath%\%fileName%.patching" > nul
set "game=sm1_ms100" & echo. & echo STATUS: Detected Shenmue I MS v1.00 & goto :continuePatching
:patch_sm2_100
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_100% -r%patchPattern1_sm2_100% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_101
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_100% -r%patchPattern2_sm2_100% "%filePath%\%fileName%.patching" > nul
set "game=sm2_100" & echo. & echo STATUS: Detected Shenmue II v1.00 & goto :continuePatching
:patch_sm2_101
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_101% -r%patchPattern1_sm2_101% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_102
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_101% -r%patchPattern2_sm2_101% "%filePath%\%fileName%.patching" > nul
set "game=sm2_101" & echo. & echo STATUS: Detected Shenmue II v1.01 & goto :continuePatching
:patch_sm2_102
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_102% -r%patchPattern1_sm2_102% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_103
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_102% -r%patchPattern2_sm2_102% "%filePath%\%fileName%.patching" > nul
set "game=sm2_102" & echo. & echo STATUS: Detected Shenmue II v1.02 & goto :continuePatching
:patch_sm2_103
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_103% -r%patchPattern1_sm2_103% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_104
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_103% -r%patchPattern2_sm2_103% "%filePath%\%fileName%.patching" > nul
set "game=sm2_103" & echo. & echo STATUS: Detected Shenmue II v1.03 & goto :continuePatching
:patch_sm2_104
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_104% -r%patchPattern1_sm2_104% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_105
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_104% -r%patchPattern2_sm2_104% "%filePath%\%fileName%.patching" > nul
set "game=sm2_104" & echo. & echo STATUS: Detected Shenmue II v1.04 & goto :continuePatching
:patch_sm2_105
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_105% -r%patchPattern1_sm2_105% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_106
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_105% -r%patchPattern2_sm2_105% "%filePath%\%fileName%.patching" > nul
set "game=sm2_105" & echo. & echo STATUS: Detected Shenmue II v1.05 & goto :continuePatching
:patch_sm2_106
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_106% -r%patchPattern1_sm2_106% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_107
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_106% -r%patchPattern2_sm2_106% "%filePath%\%fileName%.patching" > nul
set "game=sm2_106" & echo. & echo STATUS: Detected Shenmue II v1.06 & goto :continuePatching
:patch_sm2_107
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_107% -r%patchPattern1_sm2_107% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patch_sm2_ms100
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_107% -r%patchPattern2_sm2_107% "%filePath%\%fileName%.patching" > nul
set "game=sm2_107" & echo. & echo STATUS: Detected Shenmue II v1.07 & goto :continuePatching
:patch_sm2_ms100
"%toolboxPath%\gsar.exe" -f -s%origiPattern1_sm2_ms100% -r%patchPattern1_sm2_ms100% "%inputFile%" "%filePath%\%fileName%.patching" > nul
if not exist "%filePath%\%fileName%.patching" goto :patchFailed
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_sm2_ms100% -r%patchPattern2_sm2_ms100% "%filePath%\%fileName%.patching" > nul
set "game=sm2_ms100" & echo. & echo STATUS: Detected Shenmue II MS v1.00 & goto :continuePatching
:: Continue to patch the binary using the patterns for the identified version
:continuePatching
echo. & echo STATUS: Patching binary... & echo.
:: Shenmue II - Remove cut-scenes top/bottom borders (experimental)
if /i "%game:sm2=%" neq "%game%" (
set /p fvi_sm2_choice= EXPERIMENTAL: Do you want to remove top/bottom black borders from cut-scenes? [y/N]:
if /i not "!fvi_sm2_choice!"=="y" echo. & goto :nosnapcamico
if !game!==sm2_100 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_100% -r%patchPattern1_fvi_sm2_100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_100% -r%patchPattern2_fvi_sm2_100% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_101 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_101% -r%patchPattern1_fvi_sm2_101% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_101% -r%patchPattern2_fvi_sm2_101% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_102 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_102% -r%patchPattern1_fvi_sm2_102% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_102% -r%patchPattern2_fvi_sm2_102% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_103 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_103% -r%patchPattern1_fvi_sm2_103% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_103% -r%patchPattern2_fvi_sm2_103% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_104 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_104% -r%patchPattern1_fvi_sm2_104% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_104% -r%patchPattern2_fvi_sm2_104% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_105 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_105% -r%patchPattern1_fvi_sm2_105% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_105% -r%patchPattern2_fvi_sm2_105% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_106 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_106% -r%patchPattern1_fvi_sm2_106% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_106% -r%patchPattern2_fvi_sm2_106% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_107 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_107% -r%patchPattern1_fvi_sm2_107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_107% -r%patchPattern2_fvi_sm2_107% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_ms100 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_fvi_sm2_ms100% -r%patchPattern1_fvi_sm2_ms100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_fvi_sm2_ms100% -r%patchPattern2_fvi_sm2_ms100% "%filePath%\%fileName%.patching" > nul
)
)
:: Shenmue II - Fix subtitle positioning in fullscreen cut-scenes (experimental)
if /i "!fvi_sm2_choice!"=="y" (
REM echo. & set /p vsp_sm2_choice= EXPERIMENTAL: Do you want to adjust the subtitle position for fullscreen cut-scenes? [y/N]:
REM if /i not "!vsp_sm2_choice!"=="y" echo. & goto :finalTouches
if !game!==sm2_100 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_100% -r%patchPattern1_vsp_sm2_100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_100% -r%patchPattern2_vsp_sm2_100% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_100% -r%patchPattern3_vsp_sm2_100% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_101 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_101% -r%patchPattern1_vsp_sm2_101% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_101% -r%patchPattern2_vsp_sm2_101% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_101% -r%patchPattern3_vsp_sm2_101% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_102 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_102% -r%patchPattern1_vsp_sm2_102% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_102% -r%patchPattern2_vsp_sm2_102% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_102% -r%patchPattern3_vsp_sm2_102% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_103 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_103% -r%patchPattern1_vsp_sm2_103% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_103% -r%patchPattern2_vsp_sm2_103% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_103% -r%patchPattern3_vsp_sm2_103% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_104 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_104% -r%patchPattern1_vsp_sm2_104% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_104% -r%patchPattern2_vsp_sm2_104% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_104% -r%patchPattern3_vsp_sm2_104% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_105 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_105% -r%patchPattern1_vsp_sm2_105% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_105% -r%patchPattern2_vsp_sm2_105% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_105% -r%patchPattern3_vsp_sm2_105% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_106 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_106-107% -r%patchPattern1_vsp_sm2_106-107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_106-107% -r%patchPattern2_vsp_sm2_106-107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_106-107% -r%patchPattern3_vsp_sm2_106-107% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_107 (
"%toolboxPath%\gsar.exe" -o -s%origiPattern1_vsp_sm2_106-107% -r%patchPattern1_vsp_sm2_106-107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern2_vsp_sm2_106-107% -r%patchPattern2_vsp_sm2_106-107% "%filePath%\%fileName%.patching" > nul
"%toolboxPath%\gsar.exe" -o -s%origiPattern3_vsp_sm2_106-107% -r%patchPattern3_vsp_sm2_106-107% "%filePath%\%fileName%.patching" > nul
)
if !game!==sm2_ms100 (
goto :nosnapcamico
)
echo.
echo NOTE: The subtitle positioning fix will only work properly if the Resolution Scale is exactly 100%%.
echo.
)
:: Shenmue II - Remove the snapshot camera icon from the top-right corner during cut-scenes and action sequences (experimental)
:nosnapcamico
if !game!==sm2_100 goto :finalTouches
if /i "%game:sm2=%" neq "%game%" (
set /p nosnapcamico_sm2_choice= EXPERIMENTAL: Do you want to remove the camera icon from the top-right during cut-scenes? [y/N]:
if /i not "!nosnapcamico_sm2_choice!"=="y" echo. & goto :finalTouches
if !game!==sm2_101 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_101% -r%patchPattern1_nosnapcamico_sm2_101% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_102 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_102% -r%patchPattern1_nosnapcamico_sm2_102% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_103 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_103% -r%patchPattern1_nosnapcamico_sm2_103% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_104 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_104% -r%patchPattern1_nosnapcamico_sm2_104% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_105 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_105% -r%patchPattern1_nosnapcamico_sm2_105% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_106 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_106-107% -r%patchPattern1_nosnapcamico_sm2_106-107% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_107 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_106-107% -r%patchPattern1_nosnapcamico_sm2_106-107% "%filePath%\%fileName%.patching" > nul
if !game!==sm2_ms100 "%toolboxPath%\gsar.exe" -o -s%origiPattern1_nosnapcamico_sm2_ms100% -r%patchPattern1_nosnapcamico_sm2_ms100% "%filePath%\%fileName%.patching" > nul
echo.
)
:finalTouches
if exist "%filePath%\%fileName%.bak" (
echo WARNING: The destination already contains a backup file with the same name: "%fileName%.bak" & echo.
set /p overwriteChoice= Do you want to overwrite this backup file? [y/N]:
echo.
if /i not "!overwriteChoice!"=="y" goto :patchFailed
)
move /Y "%inputFile%" "%filePath%\%fileName%.bak" > nul
move /Y "%filePath%\%fileName%.patching" "%inputFile%" > nul
echo SUCCESS: Patched "%fileName%" successfully^^!
echo. & pause
goto :EOF
:: Patching has failed due to one of these reasons: hex patterns not matched, denied overwrite existing backup file, failed to write the patch bytes to the target file
:patchFailed
if exist "%filePath%\%fileName%.patching" del "%filePath%\%fileName%.patching" > nul
echo. & echo ERROR: Patch was aborted^^!
echo. & echo Patching has failed due to one of these reasons: unknown file version, or denied overwrite
echo over existing backup file, or failed to write the patch bytes to the target file.
echo. & pause
ENDLOCAL
4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0106009293A0470000000000000000E0000F030B010238002C000000500000001A00008012000000100000004000000000400000100000000200000400000001001500040000000000000000B0000000040000A2DC000003000000000020000010000000001000001000000000000010000000000000000000000000900000BC04000000A00000B805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E74657874000000542A000000100000002C000000040000000000000000000000000000600000602E6461746100000000030000004000000004000000300000000000000000000000000000400000C02E7264617461000030130000005000000014000000340000000000000000000000000000400000402E6273730000000090190000007000000000000000000000000000000000000000000000800000C02E69646174610000BC040000009000000006000000480000000000000000000000000000400000C02E72737263000000B805000000A0000000060000004E0000000000000000000000000000400000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005589E583EC18895DF88B450831DB8975FC8B0031F68B003D910000C077433D8D0000C0725BBE01000000C704240800000031D289542404E8BC28000083F801747A85C0740EC7042408000000FFD0BBFFFFFFFF89D88B75FC8B5DF889EC5DC204003D940000C074C2774A3D930000C074B489D88B75FC8B5DF889EC5DC20400903D050000C0745B3D1D0000C075C5C704240400000031F689742404E85828000083F801746A85C074AAC7042404000000FFD0EB9A3D960000C0EBD1C7042408000000B80100000089442404E82828000085F60F8476FFFFFFE8A3240000E96CFFFFFFC704240B00000031C089442404E80428000083F801743085C00F8452FFFFFFC704240B000000FFD0E93FFFFFFFC7042404000000B901000000894C2404E8D4270000E925FFFFFFC704240B000000B80100000089442404E8BA270000E90BFFFFFF8DB6000000008DBC27000000005589E55383EC24C7042400104000E8AD28000083EC04E815230000E810240000C745F8000000008D45F889442410A1B0424000C70424047040008944240C8D45F489442408B80070400089442404E86D270000A16071400085C07464A3C04240008B154491400085D20F85A100000083FAE0741FA16071400089442404A1449140008B4030890424E82B2700008B154491400083FAC07428A16071400089442404A1449140008B4050890424E807270000EB0D90909090909090909090909090E8EB2600008B15C04240008910E82E22000083E4F0E806220000E8C12600008B0089442408A10070400089442404A104704000890424E8AD13000089C3E896260000891C24E8AE2700008DB60000000089442404A1449140008B4010890424E8942600008B1544914000E940FFFFFF905589E583EC08C7042401000000FF1538914000E8B8FEFFFF908DB426000000005589E583EC08C7042402000000FF1538914000E898FEFFFF908DB42600000000558B0D6491400089E55DFFE18D742600558B0D5091400089E55DFFE1909090905589E55DE957230000909090909090905383EC0831DB833D004040000074349083EC08FF35F4714000FF349D00404000E89B2600005A59FF35F4714000436A0AE8832600008B049D0040400083C41085C075CD83C4085BC383EC0CA14491400083C040506A066A0168C6574000E8C62500008D4C242483C40C518B1544914000FF74241883C24052E82B26000058A1449140005A83C040506A0AE829260000C7042401000000E8052600009083EC0C8B0D2070400085C9740483C40CC383EC086A016A02E84F25000083C410803D1570400000750A83EC0C6A01E8D1250000A11870400085C074ED803D107040000075E483EC0C50E8AE25000083C410EBD6905783EC148B7C241C31C0FCB9FFFFFFFFF2AEF7D151E88625000083C41085C089C7741083EC08FF74241850E86825000083C41083C40889F85FC366905557565383EC1831F6BDFFFFFFFF8B7C242CFC89F089E9F2AEF7D151E84325000083C41085C089C3741083EC08FF74242850E82525000083C410FC89E989DF89F0F2AEF7D18D5419FF39DA74178D76008A42FF3C5C740D3C3A74093C2F74054A39DA75ECC6020083C40C89D85B5E5F5DC38D76005557565383EC3C803D40714000008B4424508B5C2454C60530704000007510C605407140000166C70550714000FFFF85C0741183EC08506830704000E8A724000083C41085DB741183EC08536830704000E88A24000083C410FCB9FFFFFFFF31C0BF30704000F2AEF7D18DB12F70400031DB31EDEB0966906643C60600786366A1507140004066A35071400098525068CD57400056E83E240000BF30704000FC89E8B9FFFFFFFFF2AE5F588D54240852F7D1496830704000C781307040002E746D70C6813470400000E80224000083C41085C074A3B83070400083C43C5B5E5F5DC331C0EBF46690575653807C2418008B5C24108B7C2414756231F6EB2B6690A1549140008B080FB7045183E02085C0753B83EC08FF35F47140000FBE1352E8F42300004383C410466639FE7355A12C9140008338010FBE1374C583EC086A2052E8E223000083C41085C074C583EC08FF35F47140006A2EEBC5669031F66639FE732090510FB60B5168D2574000FF35F4714000E8972300004383C410466639FE72E18B1DF4714000895C2414C74424100A0000005B5E5FE97B2300008D76005557565383EC0C8B7424248B6C242089F3C644240B0066908A450084C074313C3A743D8806454689F229DA81FA000100007EE583EC08680001000068D8574000E8C3FCFFFF83C4108A450084C075D09083C40C89F56629DD5B5E5F0FB7C55DC3807D013A0F84940000004531C0FCB9FFFFFFFF89EFF2AEF7D14983F9027675668B7D0066897C24088A4D02884C240A83EC0C0FBE54241452E88B22000083C50383C4103C787463576A0A8D44240C89742408508D4C241451E8632200008B54241083C41088028D7C240B463B7C24040F8452FFFFFF83EC088D7C24105768245840006690E81FFCFFFF83C410E936FFFFFF8D760083EC0C6854584000EBE6C6063A83C50246E91DFFFFFFC644240830506A108D4C240C518D54241452E8FF21000089F783C41088078D44240B463B4424040F84F0FEFFFF83EC088D442410405068C8584000EB9D905557565383EC0C8B74242031ED83FE018B7C2424C70500724000000000000F8E2E0400005368FC5840005756E8C712000083C41083F8FF743C83F87C770AFF2485B05A40008D760083EC080FB60D1072400051681C594000E863FBFFFF83C4105368FC5840005756E88B12000083C41083F8FF75C431C0803DE2714000007512803DE4714000007509803DE1714000007402B001A2E071400083C40C5B5E5F89E85DC3C605E2714000FFC605E471400001803DE2714000FF0F8411030000C605E471400000C605E2714000018B152072400085D20F85B5020000803DE471400001B8400000007402B05066A3F8714000E92FFFFFFF83EC088D04AD0800000050FF3500724000E8C52000008B15207240008914A883C41045A300724000C704A800000000E937FFFFFFA12072400085C00F8445020000803864750680780100741183EC08506850594000E871FAFFFF83C410C605157040000166C7051E7040000100C605A04140000A66C7051C7040000200C605A04040000DC605A14040000AE99FFEFFFFC605E171400001E993FEFFFF8B2D0040400031DB85ED0F858E01000083EC0C6A00E86D200000C6051070400001E96DFEFFFFC6051170400001E961FEFFFF83EC080FB60D10724000516894594000E8E8F9FFFFE980FEFFFF8B354040400031DB85F674B883EC08FF35F4714000FF349D40404000E83A2000005F5DFF35F4714000436A0AE8222000008B3C9D4040400083C41085FF75CDEB8383EC080FB61D107240005368C8594000E88DF9FFFFE925FEFFFF8B152072400085D20F849501000083EC0868A0414000FF3520724000E85FFCFFFF83C41066A31E704000E9F9FDFFFFA12072400085C00F858401000066C7051C7040000000C6051570400001E99BFDFFFFC6051370400001E98FFDFFFFC605E271400000C605E471400000C605E171400000E975FDFFFFC6051470400001E969FDFFFFC605E371400000E95DFDFFFFC6051270400001E951FDFFFFA12072400085C00F8487000000803875750680780100741183EC0850680C5A4000E8C7F8FFFF83C410C605157040000166C7051E7040000200C605A04140000DC605A14140000A66C7051C7040000100C605A04040000AE9F5FCFFFF83EC08FF35F4714000FF349D00404000E8F41E0000585AFF35F4714000436A0AE8DC1E00008B0C9D0040400083C41085C975CDE93AFEFFFFB8F8504000C70520724000F8504000E965FFFFFFB8F8504000C70520724000F8504000E9A7FDFFFF506A008D5C24105352E83B1E000083C4108B542408803A0089C30F85880000008D43F03DF0010000776781FBFFFF00007E5366C705F8714000FFFFE955FCFFFFC605E271400000E9F1FCFFFF83EC080FB60510724000506894594000E8D0F7FFFF83C410E94EFEFFFF83EC0868A040400050E8B2FAFFFF83C41066A31C704000E969FEFFFF66891DF8714000E904FCFFFF83EC08680002000068505A4000E88EF7FFFF83C410EB8283EC08FF3520724000688C5A4000E876F7FFFF83C410E95DFFFFFF8B354040400031DB85F60F843FFDFFFF83EC08FF35F4714000FF349D40404000E8C11D0000585AFF35F4714000436A0AE8A91D00008B3C9D4040400083C41085FF75CDE907FDFFFF66905383EC14A1449140008D5040FF7010C705E8714000A45C40008915F4714000E8081D000083C41085C00F85DD00000083EC086800800000A144914000FF7010E8B01C0000585A68008000008B1D44914000FF7330E89B1C00008B0D44914000890DEC71400083C41083C120803D1570400000890DF0714000754683EC0C68E0714000E8E511000083C41085C07E2D83EC0C83F801BAF85040007405BAAA5C40005250FF35E871400068AD5C4000FF35F4714000E8D41C000083C42083C4085BC30FB7151C704000505268A040400068E0714000E8C012000083C41083F8FF89C3743F83F8017ED483EC0CFF35F0714000E82F1C0000C70424C45C400053FF35E871400068C65C4000EBA3669083EC0C68E45C4000E80BF6FFFF83C410E90EFFFFFF83EC0C68185D4000E8F6F5FFFF83C41083C4085BC366905383EC408D4424088B5C24485053E8011C000083C41085C0753E0FB754240681E200F0000081FA00800000B801000000741F81FA0040000074155153683C5D4000FF35F4714000E8081C000083C41031C083C4385BC36690505368645D4000FF35F4714000E8EA1B000083C41083C43831C05BC3565383EC34A1007240008B1085D2746689D389E683EC085683C00453A300724000891DE8714000E8741B000083C41085C075490FB74424062500F000003D00800000BA01000000741E3D0040000074155053683C5D4000FF35F4714000E87E1B000083C41031D285D2751DA1007240008B1885DB759E83C4345B5EC3505368645D4000EBD28D760083EC08688A5D4000FF35E8714000E8651B000083C41085C089C2A3EC714000751F50FF35E871400068645D4000FF35F4714000E8201B000083C410EBA68D760068004000006A006A00A14491400083C02052A3F4714000E88C1A000083C41085C0755883EC0C68E0714000E8C80F000089C358FF35EC714000E8621A000083C41085DB0F8E5AFFFFFF83EC0C83FB01B8F85040007405B8AA5C40005053FF35E871400068AD5C4000FF35F4714000E8A51A000083C420E928FFFFFFFF35F47140006A336A0168905D4000E8011A000083C410EB8F5383EC68A14491400083C020A3F4714000C705E871400000000000A1007240008B1085D20F84E201000031DB8D5004EB1A8D76008B08890DE871400089CB89D183C204837AFC0089C8742585DB74E5A11870400085C075E68B4AFC890D1870400089D183C204837AFC0089C875DD6690890D0072400083EC088D5424085253E8C019000083C41085C00F859C0100000FB74424062500F000003D00800000BA01000000741E3D0040000074155053683C5D4000FF35F4714000E8C619000083C41031D285D20F846902000083EC08688A5D4000FF35E8714000E8C619000083C41085C0A3EC7140000F849C01000083EC088D5C243853FF3518704000E84319000083C41085C0750D803D12704000000F84C401000083EC0868C45D4000FF3518704000E87C19000083C41085C0A3F07140000F843701000068004000006A006A00FF35EC714000E8C818000083C41085C00F85FC00000068004000006A006A00FF35F0714000E8A918000083C41085C00F85C1000000500FB7051C7040005068A040400068E0714000E8020F000089C358FF35EC714000E87018000059FF35F0714000E86418000083C41083FBFFC70520704000010000000F843601000085DB0F84DF00000083EC0C83FB01B8C45C40007F05B8F85040005053FF35E871400068C65C4000FF35F4714000E89418000083C420C7051870400000000000C705207040000000000083C4685BC383EC088D542408528B1DE871400053E82418000083C41085C00F8464FEFFFF505368645D4000E97CFEFFFFFF35F47140006A346A0168C85D4000E8B117000083C410E923FFFFFFFF35F47140006A336A0168905D4000E89517000083C410E9E8FEFFFF83EC08FF351870400068005E4000E89AF1FFFF83C410E9AEFEFFFF83EC08FF35E871400068285E4000E87FF1FFFF83C410E949FEFFFF83EC0CFF3518704000E8B917000083C41085C00F8435FFFFFF83EC08FF351870400068505E4000E84BF1FFFF83C410E91AFFFFFF83EC08FF3518704000687C5E4000E830F1FFFF83C410E921FEFFFF52FF351870400068CC5E4000FF35F4714000E87917000058FF3518704000E85517000083C41085C0741683EC08FF351870400068505E4000E8EBF0FFFF83C41083EC0C6A01E83617000066905557565383EC3CA14491400083C020A3F4714000A1007240008B1085D2746B89D78D760083EC088D5424085283C00457A300724000893DE8714000E8C416000083C41085C0754D0FB74424062500F000003D00800000BA01000000741E3D0040000074155057683C5D4000FF35F4714000E8CE16000083C41031D285D27521A1007240008B3885FF759A83C43C5B5E5F5DC36690505768645D4000EBCE8D760083EC08688A5D4000FF35E8714000E8B116000083C41085C0A3EC714000751D50FF35E871400068645D4000FF35F4714000E86E16000083C410EBA4908B35E871400031EDFC89E8B9FFFFFFFF89F7F2AE83EC0CF7D151E82916000083C41085C089C3740D83EC085650E80E16000083C410FCB9FFFFFFFF89DF89E8F2AEF7D18D5419FF39DA7415908A42FF3C5C740D3C3A74093C2F74054A39DA75EC83EC08C6020068FC5E400053891D18704000E8E1F0FFFF83C41085C0A3187040000F848F01000083EC0868C45D4000FF3518704000E8EE15000083C41085C0A3F07140000F845101000068004000006A006A00FF35EC714000E83A15000083C41085C00F851601000068004000006A006A00FF35F0714000E81B15000083C41085C00F85DB0000000FB71D1C704000505368A040400068E0714000E8740B000089C358FF35EC714000E8E21400005DFF35F0714000E8D614000083C41083FBFFC70520704000010000000F843501000085DB752883EC0CFF3518704000E80E15000083C41085C00F85DE000000C7052070400000000000E947FEFFFF83EC0CFF35E8714000E8E614000083C41085C00F852401000083EC08FF35E8714000FF3518704000E85F14000083C41085C00F85B200000083EC0C83FB01B8C45C40007F05B8F85040005053FF35E871400068C65C4000FF35F4714000E8AA14000083C420EB8AFF35F47140006A346A0168C85D4000E80914000083C410E909FFFFFFFF35F47140006A336A0168905D4000E8ED13000083C410E9CEFEFFFF83EC08FF351870400068005E4000E8F2EDFFFF83C410E994FEFFFF83EC0C68045F4000E8DDEDFFFF83C410E95CFEFFFF83EC08FF351870400068505E4000E8C2EDFFFF83C410E907FFFFFF51FF35E8714000FF351870400068345F4000E8A3EDFFFF83C410E92FFFFFFF57FF351870400068CC5E4000FF35F4714000E8EC1300005BFF3518704000E8C813000083C41085C0751883EC0C6A01E8BF13000056FF35E871400068605F4000EBCA83EC08FF351870400068505E4000E846EDFFFF83C410EBD0905589E557565383EC0C83E4F0B810000000E8A2120000E81D0E0000A14491400083EC0883C020C605E371400001A3F4714000688C1340006A02E8C212000083C410400F842F03000083EC08FF750CFF7508E82AF1FFFF83C41066833D1E7040000089C30F84A3020000803D11704000000F85DA00000085DB747683FB027419803D12704000007410803D13704000000F84F70200008D7600500FBE0D14704000510FB73D1E7040005768A0414000E8150B000083C410803D10704000007451803D13704000007509803D1270400000741083EC0C68AC5F4000E862ECFFFF83C410E836F5FFFF8D65F45B5E31C05FC9C3803D1070400000758683EC0C68F45F4000E83AECFFFF83C410E971FFFFFF6690803D15704000000F8507020000803D13704000007509803D1270400000741083EC0C6820604000E804ECFFFF83C410E884F6FFFF8D65F45B5E31C05FC9C3669083EC08FF35F47140006A0AE850120000FF35F47140006A196A016865604000E8AC110000BBA041400083C420668B3D1E70400031F6EB2B908B0D549140008B010FB7045083E02085C0753C83EC08FF35F47140000FBE1352E8031200004383C410466639FE732D8B0D2C9140008339010FBE1374C383EC086A2052E8F011000083C41085C074C483EC08FF35F47140006A2EEBC483EC08FF35F47140006A0AE8BC11000083C40C0FB71D1E70400053687F604000FF35F4714000E899110000BEA041400083C410668B3D1E70400031DB6639FB73228D7600500FB6065068D2574000FF35F4714000E86B1100004683C410436639FB72E183EC08FF35F47140006A0AE859110000595BFF35F47140006A0AE84A11000083C410803D15704000000F8470FEFFFF66833D1C704000000F841D010000FF35F47140006A196A016899604000E888100000BBA040400083C410668B3D1C70400031F6EB2B908B0D549140008B010FB7045083E02085C0754083EC08FF35F47140000FBE1352E8DF1000004383C410466639FE0F83E30000008B0D2C9140008339010FBE1374BF83EC086A2052E8C810000083C41085C074C083EC08FF35F47140006A2EEBC083EC0C68B4604000E827EAFFFF83C410E948FDFFFF8D760083FB020F840B010000803D1370400000751D83EC0C68E0604000E8FDE9FFFF83C410803D13704000000F8493FDFFFF803D15704000000F8486FDFFFF803D12704000000F85E2000000E8F2F8FFFFE96FFDFFFF83EC0C6824614000E8BCE9FFFF83C410E9BCFCFFFF83EC0C684C614000E8A7E9FFFF83C410E9F7FCFFFFFF35F47140006A486A016890614000E86B0F000083C4108D65F45B5E31C05FC9C383EC08FF35F47140006A0AE8DE0F000083C40C0FB7351C70400056687F604000FF35F4714000E8BB0F0000BEA040400083C410668B3D1C70400031DB6639FB732090520FB6065068D2574000FF35F4714000E88F0F00004683C410436639FB72E183EC08FF35F47140006A0AE87D0F000083C410EB80803D13704000000F850EFFFFFFE8DAF4FFFFE997FCFFFF83EC0C68DC614000E8E4E8FFFF83C410E800F8FFFFE97DFCFFFF9090909090909090909090909090905557565383EC0C8B35A4424000803E00757E8B0DA04240003B4C2420BAFFFFFFFF7D4D8B5424248B048A8D70018935A442400080382D744483EC08C705A4424000306240008B1C8A8D51016A7C8915A0424000FF742434891D20724000E8F60E000083C41083F80119C083E0888D507C83C40C5B5E5F89D05DC366908A400184C0BA0200000074E83C2D0F84B800000083EC080FBE3E578D6E01FF742434892DA4424000893D10724000E8A90E000083C41085C0BA0100000074B58078013A7423C7052072400000000000807E01007506FF05A042400089FA83C40C5B5E5F89D05DC390807E01007422892D207240008B15A04240008D420189FAC705A442400030624000A3A0424000EBCD8078023A74498B15A0424000423B5424207D0F8B4C24248B2C91892D20724000EBC88915A0424000BA03000000C7052072400000000000E928FFFFFF8D7101BAFFFFFFFF8935A0424000E915FFFFFFC7052072400000000000EB899090909090909090905557565383EC1C8B4C24348B54243C8B4424408B6C2430894C24188954241489442410807D03008B5C24380F8538010000807D01007428807D0200B8406240007505B843624000508B74241C01DE566844624000FF7514E8640D000083C4108A450284C08844240775268A550484D28854240675228B7D14897C2434C74424300A00000083C41C5B5E5F5DE9380D00008A4D04884C24068B3D307740008B4C2414668B751801D989F289FBC1EB1F66D1EA01DF0FB7C229C1D1FF8D1C393B5C24140F82860000000FB7C68D3C183B7C241076128B7C241089FE29C63B7424140F877A010000807C2406000F8592000000807C240700745FEB268B0D549140008B010FB7045083E02085C0753783EC08FF75140FB61352E8AD0C00004383C41039FB74338B352C914000833E010FB61374C883EC086A2052E89C0C000083C41085C074C983EC08FF75146A2EEBC98B5C2414E971FFFFFF8A5D0484DB0F8414FFFFFF83C41C5B5E5F5DC351FF7508684C624000FF7514E8460C000083C410E9AFFEFFFF83EC08FF75146A0AE8390C000089D92B4C2424034C2428894C241883C41039FB0F84BE000000895C240C52FF74240C6851624000FF7514E8020C0000BE0F00000083C410EB19500FB60350685B624000FF7514E8E60B00004383C4104E781B39FB75E3FF75146A036A016861624000E8420B000083C4104E79E58B5C240CBE0F000000EB2A908B0D549140008B010FB7045083E02085C0753A83EC08FF75140FB61352E89E0B00004383C4104E784339FB74F98B0D2C9140008339010FB61374C583EC086A2052E88A0B000083C41085C074C683EC08FF75146A2EEBC689F3E97FFEFFFF8A4D02884C2407E97EFEFFFF6690834424081083EC08FF75146A0AE8420B000083C41039FB0F8517FFFFFF8A450288442407E953FEFFFF8D76005557565383EC0CC704240100000031DBB800100000C744240800000000C744240400000000812C24407840008B542420FF720C506A018D834078400050E81E0B000083C41085C00F84D20000008B2D307740008DBC18407840008D953F7840000FB60A03148D3072400039FA72F281FA3FF8400072688DB20180FFFF8D5DFF8D8A0080FFFF8D76004B0FB6118A83307640004938824077400074ED85DB78058D5601EBBC39FE733689F029E8FF4424088B542420030424803A0074E383EC0C57684078400050FF74241C52E890FCFFFF83C4208B2D307740008D5601EB828D5DFF565329DF576840784000E8680A0000B80010000029D80144241483C4108B542420FF720C506A018D834078400050E84C0A000083C41085C00F852EFFFFFF8B44240883C40C5B5E5F5DC3905557565383EC1C0FB754243831DBB800100000C744241400000000C744241000000000895424088B4C2430FF710C506A018D834078400050E8F709000083C41085C00F84750100008DAC18407840008B1D3077400089DEC744241840784000895C240C81C63F7840008D76000FB63E0334BD3072400039EE72F281FE3FF840000F82EB0000008B5C240C8DBE0180FFFF4B8D8E0080FFFF904B0FB6118A83307640004938824077400074ED85DB8D770179BA39EF0F83B700000089FA2B54240C81EA3F78400089D12B4C241889CB81C3407840008D77017893FF4424148B442430803800754B8B7C2430FF7710536A01FF742424E87308000083C41039D875628B5C2430FF7310FF74240C6A01FF742440E85608000083C4103B4424087543A130774000897424188944240CE93BFFFFFF83EC0C55684078400052FF74242850E8EFFAFFFF83C4208B7C2430FF7710536A01FF742424E81108000083C41039D8749EBAFFFFFFFF83C41C5B5E5F89D05DC389E82B4424183B44240C89C37D6C575329DD556840784000E89E080000B80010000029D80144242083C4108B4C2430FF710C506A018D834078400050E88208000083C41085C00F858BFEFFFF8B742430FF7610536A016840784000E89B07000083C41039D8BAFFFFFFFF758A8B54241483C41C5B5E5F89D05DC38B742430FF76102B44241040506A01FF742424E8690700008B1D307740004B83C410E96DFFFFFF66905653508A4424188B4C241484C08B74241088442403890D30774000746331DBEB21A1549140008B000FB7044883E00185C088D17538888B30764000438B0D3077400039CB7D50A12C9140008A14338338010FBECA74CB83EC086A0151E89707000083C4108A143385C088D174C883EC0C0FBECA51E81F07000088C183C410EBB55051566830764000E88B07000083C4108B0D3077400031C0890C8530724000888040774000403DFF0000007EEB8D41FF31DB83F8007E1889C689C20FB6833076400043891485307240004A39DE7FEC0FB6912F764000807C240300C7049530724000FF7F00000F84DB0000008D71FF31DB83FE00EB1F8B35549140008B060FB7045083E00285C075328B0D30774000438D41FF39D87E4B8B0D2C9140008339010FB6933076400074CD83EC086A0252E8C406000083C41085C074CE83EC0C0FB68B3076400051E8C50600008B0D3077400089CA29DA4A83C41089148530724000EBAD8B1D2C914000833B010FB6912F76400075578B0D549140008B310FB7045683E00285C07423A13077400083EC0C0FB6902F76400052E874060000C7048530724000FF7F000083C410BB4100000083EC0C53E8E00500008883407740004383C41083FB5A7EE8585B5EC383EC086A0252E82206000083C410EBA890909090905589E583EC08A1D04240008338007417FF108B15D04240008D42048B5204A3D042400085D275E9C9C38DB426000000005589E55383EC04A1403A400083F8FF742985C089C3741389F68DBC2700000000FF149D403A40004B75F6C70424A0334000E8BADEFFFF595B5DC331C0833D443A400000EB0A408B1C85443A400085DB75F4EBBE8DB6000000008DBC270000000055A17071400089E585C074045DC366905DB801000000A370714000EB8390909055B93063400089E5EB148DB6000000008B51048B0183C10801820000400081F93063400072EA5DC390909090909090905589E5539C9C5889C33500002000509D9C589D31D8A9000020000F84C000000031C00FA285C00F84B4000000B8010000000FA2F6C6010F85A700000089D025008000006685C07407830D8071400002F7C2000080007407830D8071400004F7C2000000017407830D8071400008F7C2000000027407830D807140001081E2000000047407830D8071400020F6C1017407830D8071400040F6C520740A810D8071400080000000B8000000800FA23D00000080762CB8010000800FA2A18071400089C181C90001000081E200000040741F0D00030000A3807140008DB6000000005B5DC3830D8071400001E94DFFFFFF5B890D807140005DC390909090909090905589E5DBE35DC390909090909090909055A15089400089E55D8B4804FFE189F655BA4200000089E5530FB7C083EC64895424088D55A831DB89542404890424FF1518914000BA1F000000B90100000083EC0C85C07507EB3D01C94A780E807C2AA84175F409CB01C94A79F2833B54750789D88B5DFCC9C3C7042494624000BAF7000000B8C46240008954240889442404E8D3030000C70424F8624000BBF1000000B9C4624000895C2408894C2404E8B50300008DB6000000008DBC27000000005589E557565381ECBC0000008B3D5089400085FF74088D65F45B5E5F5DC3C7459841414141A1706240008D7D98C7459C41414141C745A0414141418945B8A174624000C745A441414141C745A8414141418945BCA178624000C745AC41414141C745B0414141418945C0A17C624000C745B4414141418945C4A1806240008945C8A1846240008945CCA1886240008945D0A18C6240008945D40FB70590624000668945D8893C24FF15149140000FB7C083EC0485C00F8571010000C7042454000000E87902000085C089C30F848F01000089042431C9BE54000000894C240489742408E8D8020000C74304F8394000B901000000C7430890354000A1A0714000C703540000008B15A4714000C7432800000000894314A1E04240008953188B15E442400089431CA1B0714000C7432CFFFFFFFF895320894330A1E84240008B15EC424000894334A1C07140008953388B15C471400089433CA1D0714000C74344FFFFFFFF8953408943488B15F4424000A1F0424000895350BA1F00000089434C89D821C883F80119C0242001C9044188842A48FFFFFF4A79E7A170624000898568FFFFFFA17462400089856CFFFFFFA178624000898570FFFFFFA17C624000898574FFFFFFA180624000898578FFFFFFA18462400089857CFFFFFFA188624000894580A18C6240008945840FB70590624000668945888D8548FFFFFF890424FF150C9140000FB7F083EC0485F6754231D285D2751E891C24E893010000893C24FF151491400083EC040FB7C0E82FFDFFFF89C3891D508940008D4304A3408940008D4308A3608940008D65F45B5E5F5DC389F0E808FDFFFF39D889F275B1EBB1E85301000090909090909090909090905189E183C1083D00100000721081E9001000008309002D00100000EBE929C183090089E089CC8B088B4004FFE0909090FF25389140009090FF25409140009090FF25309140009090FF25AC9140009090FF25349140009090FF25589140009090FF25289140009090FF258C9140009090FF25A49140009090FF256C9140009090FF25A89140009090FF25709140009090FF25489140009090FF259C9140009090FF25C09140009090FF25C49140009090FF255C9140009090FF25B09140009090FF25B49140009090FF25BC9140009090FF25909140009090FF25A09140009090FF25689140009090FF25CC9140009090FF25789140009090FF257C9140009090FF25809140009090FF254C9140009090FF25749140009090FF25B89140009090FF25C89140009090FF25949140009090FF25849140009090FF253C9140009090FF25889140009090FF25609140009090FF25989140009090FF25109140009090FF251C9140009090FF25189140009090FF25149140009090FF250C91400090905589E55DE9A7D8FFFF90909090909090FFFFFFFF303A400000000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005040004850400090504000D4504000F8504000FC5040003C5140007C514000BC514000F8504000EC5140003052400078524000000000000000000000000000B4524000F8504000005340002C5340003953400054534000A4534000E0534000145440004C5440007C544000C8544000145540004855400088554000D45540001C56400060564000AC564000F8504000E05640002C5740007C57400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000306240000000000000000000FFFFFFFF00000000000000000000000000400000000000000000000000000000503A400000000000000000000000000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000546869732070726F6772616D206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F72206D6F6469667900000000697420756E64657220746865207465726D73206F662074686520474E552047656E6572616C205075626C6963204C6963656E7365206173207075626C697368656420627900000000746865204672656520536F66747761726520466F756E646174696F6E3B206569746865722076657273696F6E2032206F6620746865204C6963656E73652C206F7200000028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0000000000546869732070726F6772616D20697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F6600004D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E202053656520746865000000474E552047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E00000000596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E552047656E6572616C205075626C6963204C6963656E73650000007769746820746869732070726F6772616D3B206966206E6F742C20777269746520746F20746865204672656520536F66747761726520466F756E646174696F6E2C20496E632E2C003531204672616E6B6C696E205374726565742C20466966746820466C6F6F722C20426F73746F6E2C204D412030323131302D31333031205553412E00677361722C2076657220312E3231202D2D20436F707972696768742028432920313939322D3230303820546F726D6F6420546A616265726720262048616E73205065746572205665726E650055736167653A2067736172205B6F7074696F6E735D205B696E66696C652873295D205B6F757466696C655D004F7074696F6E73206172653A002D733C737472696E673E2053656172636820737472696E672000002D725B737472696E675D205265706C61636520737472696E672E2055736520272D722720746F2064656C657465207468652073656172636820737472696E672066726F6D207468652066696C650000002D6920202020202020202049676E6F7265206361736520646966666572656E6365207768656E20636F6D706172696E6720737472696E6773000000002D422020202020202020206A75737420646973706C6179207365617263682026207265706C6163652042756666657273000000002D66202020202020202020466F726365206F7665727772697465206F6620616E206578697374696E67206F75747075742066696C650000002D6F2020202020202020204F766572777269746520746865206578697374696E6720696E7075742066696C65000000002D635B6E5D20202020202073686F77207465787475616C20436F6E74657874206F66206D617463682C20276E27206973206E756D626572206F6620627974657320696E20636F6E74657874002D785B6E5D20202020202073686F7720636F6E746578742061732061206865582064756D702C20276E27206973206E756D626572206F6620627974657320696E20636F6E74657874000000002D62202020202020202020646973706C61792042797465206F666673657473206F66206D61746368657320696E2066696C6500002D6C2020202020202020206F6E6C79204C6973742066696C657370656320616E64206E756D626572206F66206D617463686573202864656661756C74290000002D68202020202020202020737570707265737320646973706C6179206F662066696C6573706563207768656E20646973706C6179696E6720636F6E74657874206F72206F66667365747300002D64752020202020202020636F6E76657274206120444F532041534349492066696C6520746F20554E495820287374726970732063617272696167652072657475726E29000000002D75642020202020202020636F6E76657274206120554E49582041534349492066696C6520746F20444F532028616464732063617272696167652072657475726E2900002D462020202020202020202746696C74657227206D6F64652C20696E7075742066726F6D20737464696E20616E64206576656E7475616C206F757470757420746F207374646F7574000000002D47202020202020202020646973706C61792074686520474E552047656E6572616C205075626C6963204C6963656E63650000004374726C2063686172616374657273206D617920626520656E7465726564206279207573696E67206120273A2720696E2074686520737472696E6720666F6C6C6F776564206279207468650041534349492076616C7565206F6620746865206368617261637465722E205468652076616C756520697320656E7465726564207573696E6720273A2720666F6C6C6F7765642062792074687265650000646563696D616C20646967697473206F7220273A782720666F6C6C6F7765642062792074776F20686578206E756D626572732E20546F20656E74657220273A272075736520273A3A2700677361723A20002530347800253032782000636F6D6D616E64206572726F722C206C656E677468206F6620736561726368206F72207265706C61636520627566666572206D757374206E6F74206578636565642025642063686172730000636F6D6D616E64206572726F722C206E6F7420612076616C696420646563696D616C206E756D626572203A2025730A00636F6D6D616E64206572726F722C20612073696E676C6520636F6C6F6E206D75737420626520666F6C6C6F77656420627920746872656520646563696D616C20646967697473206F7220616E2027782720666F6C6C6F77656420627920322068657861646563696D616C206E756D626572730A00636F6D6D616E64206572726F722C206E6F7420612076616C69642068657861646563696D616C206E756D626572203A2025730A007C733A3A723A3A6942666F633A3A783A3A626C68643A3A753A3A464700000000696E7465726E616C206572726F722C206F7074696F6E2027256327206E6F742068616E646C656420696E20737769746368000000636F6D6D616E64206572726F722C20756E6B6E6F776E206F7074696F6E2027752573272E20547970652027677361722720627920697473656C6620666F722068656C7000636F6D6D616E64206572726F722C207468652027256327206F7074696F6E20726571756972657320616E20617267756D656E7400636F6D6D616E64206572726F722C20756E6B6E6F776E206F7074696F6E20272563272E20547970652027677361722720627920697473656C6620666F722068656C700000636F6D6D616E64206572726F722C20756E6B6E6F776E206F7074696F6E2027642573272E20547970652027677361722720627920697473656C6620666F722068656C7000636F6D6D616E64206572726F722C20636F6E746578742073697A65206D75737420626520696E207468652072616E676520313620746F202564000000636F6D6D616E64206572726F722C20696E76616C6964206E756D626572203A2025730000C017400096194000551940003B194000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C01740002F194000C0174000C0174000C01740002319400009194000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000C0174000FD184000291840004B1A4000C01740003F1A4000C0174000331A4000271A4000C0174000C01740000D1A4000C0174000C0174000011A4000C0174000C0174000DF194000B0194000C0174000A1184000C0174000C01740001B184000C0174000C0174000C01740006D184000737464696E0065730025733A20256C64206D61746368257320666F756E640A00730025733A20256C64206F6363757272656E63652573206368616E6765640A006572726F722C20696E7075742066726F6D20747479206973206E6F7420737570706F7274656420756E646572204D53444F5300006572726F7220696E2077726974696E672066696C6520746F207374646F75740A00000000677361723A207761726E696E672C206E6F74206120726567756C61722066696C6520272573270A00677361723A20756E61626C6520746F206F70656E20696E7075742066696C6520272573270A007262000000007761726E696E672C20756E61626C6520746F2073657420757020627566666572696E6720666F7220696E7075742066696C650A00776200007761726E696E672C20756E61626C6520746F2073657420757020627566666572696E6720666F72206F75747075742066696C650A000000006572726F722C20756E61626C6520746F206F70656E206F75747075742066696C65202725732720006572726F722C20756E61626C6520746F206F70656E20696E7075742066696C6520272573270000006572726F722C20756E61626C6520746F2072656D6F7665206F75747075742066696C652027257327000000006572726F722C206F75747075742066696C65202725732720616C7265616479206578697374732E205573652074686520276627206F7074696F6E20746F20666F726365206F7665727772697465000000677361723A206572726F7220696E2077726974696E672066696C652027257327202D20636C65616E696E672075700A006773725F000000006572726F722C20756E61626C6520746F2063726561746520612074656D706F726172792066696C65206E616D650000006572726F722C20756E61626C6520746F2072656E616D652066696C65202725732720746F2027257327000000677361723A206572726F722C20756E61626C6520746F2072656D6F766520696E7075742066696C652027257327206265666F72652072656E616D652028726561642D6F6E6C79203F29000000636F6D6D616E64206572726F722C2074686520276F27206F7220276627206F7074696F6E206973206D65616E696E676C65737320696E202766696C74657227206D6F646500000000636F6D6D616E64206572726F722C206E6F20696E7075742066696C65206E616D652073706563696669656400636F6D6D616E64206572726F722C2074686520276F27206F7220276627206F7074696F6E206973206D65616E696E676C65737320696E202773656172636827206D6F64650053656172636820627566666572202028415343494929203A20004C656E677468203D2025336420202028486578292020203A20005265706C616365206275666665722028415343494929203A200000636F6D6D616E64206572726F722C206E6F2073656172636820737472696E6720737065636966696564000000636F6D6D616E64206572726F722C206D756C7469706C65207365617263682026207265706C6163652072657175697265732074686520276F27206F7074696F6E00000000696E7465726E616C206572726F722C20756E61626C6520746F2073657420534947494E5400000000636F6D6D616E64206572726F722C2074776F2066696C65206E616D65732061726520726571756972656420746F207573652074686520276627206F7074696F6E000000004E6F74653A205265706C6163652062756666657220697320656D7074792C2073656172636820737472696E672077696C6C2062652072656D6F7665642066726F6D2066696C65210A00000000636F6D6D616E64206572726F722C2074686520276627206F7074696F6E206973206D65616E696E676C65737320696E206D756C7469706C652073656172636820616E64207265706C616365000000000000000000000000000000000000000000000000003A2000003078256C7825730025733A200030782530386C783A20002530327820002020200000000000000000000000002D4C49424743435733322D45482D332D534A4C4A2D475448522D4D494E475733320000007733325F7368617265647074722D3E73697A65203D3D2073697A656F66285733325F45485F53484152454429000000002E2E2F2E2E2F6763632D332E342E352F6763632F636F6E6669672F693338362F7733322D7368617265642D7074722E630000000047657441746F6D4E616D6541202861746F6D2C20732C2073697A656F662873292920213D203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000409000000000000000000000F89300000C9100005C9000000000000000000000B094000028910000000000000000000000000000000000000000000000000000D4910000E0910000EE910000FA9100000A9200000000000000000000289200003892000048920000589200006692000078920000829200008C920000949200009E920000AA920000B4920000BE920000CA920000D6920000DE920000E8920000F0920000FA920000049300000C930000169300001E930000269300002E93000036930000409300004A930000549300005E93000068930000729300007C93000086930000909300009A930000A4930000AE930000B8930000C2930000CC930000D69300000000000000000000D4910000E0910000EE910000FA9100000A9200000000000000000000289200003892000048920000589200006692000078920000829200008C920000949200009E920000AA920000B4920000BE920000CA920000D6920000DE920000E8920000F0920000FA920000049300000C930000169300001E930000269300002E93000036930000409300004A930000549300005E93000068930000729300007C93000086930000909300009A930000A4930000AE930000B8930000C2930000CC930000D693000000000000010041646441746F6D4100009C004578697450726F6365737300B00046696E6441746F6D4100DD0047657441746F6D4E616D65410000E302536574556E68616E646C6564457863657074696F6E46696C7465720027005F5F6765746D61696E617267730030005F5F6D625F6375725F6D617800003C005F5F705F5F656E7669726F6E00003E005F5F705F5F666D6F6465000050005F5F7365745F6170705F7479706500006F005F6173736572740079005F63657869740000E9005F696F620000EA005F69736174747900EB005F6973637479706500005E015F6F6E657869740067015F7063747970650084015F7365746D6F6465000095015F737461746936340000150261626F7274001C0261746578697400002A026578697400002D0266636C6F73650000300266666C75736800003802666F70656E003902667072696E7466003A026670757463003B026670757473003E026672656164003F026672656500004702667772697465000072026D616C6C6F63000078026D656D63707900007A026D656D736574000088027265616C6C6F6300890272656D6F766500008A0272656E616D6500008F02736574766275660090027369676E616C00009302737072696E74660097027374726361740000980273747263687200009B027374726370790000A902737472746F6C0000B402746F6C6F77657200B502746F757070657200BA0276667072696E74660000000000900000009000000090000000900000009000004B45524E454C33322E646C6C000000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000001490000014900000149000006D73766372742E646C6C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009193A04700000000000001001000000018000080000000009193A04700000000000001000100000030000080000000009193A0470000000000000100090400004800000058A00000600500000000000000000000600534000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE0000010015000100B371870B15000100B371870B3F000000000000000400000001000000000000000000000000000000BE040000000053007400720069006E006700460069006C00650049006E0066006F0000009A040000000030003400300039003000340045003400000076002B00010043006F006D00700061006E0079004E0061006D0065000000000047006E007500570069006E003300320020003C0068007400740070003A002F002F0067006E007500770069006E00330032002E0073006F00750072006300650066006F007200670065002E006E00650074003E000000000056019F0001004C006900630065006E00730065000000000054006800690073002000700072006F006700720061006D0020006900730020006600720065006500200073006F006600740077006100720065003B00200079006F0075002000630061006E002000720065006400690073007400720069006200750074006500200069007400200061006E0064002F006F00720020006D006F006400690066007900200069007400200075006E00640065007200200074006800650020007400650072006D00730020006F0066002000740068006500200047004E0055002000470065006E006500720061006C0020005000750062006C006900630020004C006900630065006E00730065003B00200073006500650020007700770077002E0067006E0075002E006F00720067002F0063006F00700079006C006500660074002F00670070006C002E00680074006D006C002E002000000000007A0029000100460069006C0065004400650073006300720069007000740069006F006E000000000047007300610072003A002000670065006E006500720061006C002000730065006100720063006800200061006E00640020007200650070006C0061006300650020007500740069006C0069007400790000000000400010000100460069006C006500560065007200730069006F006E000000000031002E00320031002E0032003900350031002E003200390031003000370000002A000500010049006E007400650072006E0061006C004E0061006D006500000067007300610072000000000078002A0001004C006500670061006C0043006F0070007900720069006700680074000000A90020003200300030003800200054006F0072006D006F006400200054006A006100620065007200670020003C0074006A006100620065007200670040006F006E006C0069006E0065002E006E006F003E0000005800180001004C006500670061006C00540072006100640065006D00610072006B0073000000000047006E007500570069006E0033003200AE002C0020004700730061007200AE002C0020006700730061007200AE0000003A00090001004F0072006900670069006E0061006C00460069006C0065006E0061006D006500000067007300610072002E00650078006500000000002A0005000100500072006F0064007500630074004E0061006D00650000000000470073006100720000000000440010000100500072006F006400750063007400560065007200730069006F006E00000031002E00320031002E0032003900350031002E003200390031003000370000004E001F0001005700570057000000000068007400740070003A002F002F0068006F006D0065002E006F006E006C0069006E0065002E006E006F002F007E0074006A006100620065007200670000000000440000000000560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000904E404000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00007FF7E4A18D3E | jmp 0x7FF7E4C599C1 ->|--|
00007FF7E4A18D43 | mov dword ptr ss:[rbp+0x4C],eax <-|--|-------|
| | |
00007FF7E4C599C1 | cmp eax,0x44430000 <-|--| |
00007FF7E4C599C6 | je 0x7FF7E4CA699A ->|----| |
00007FF7E4C599CC | mov rdi,qword ptr ss:[rsp+0x60] <-|----|--| |
00007FF7E4C599D1 | jmp 0x7FF7E4A18D43 ->|----|--|--|
| | |
00007FF7E4CA699A | cmp si,0x198 <-|----| |
00007FF7E4CA699F | jne 0x7FF7E4C599CC ->|-------|
00007FF7E4CA69A5 | mov eax,0x44638000 | |
00007FF7E4CA69AA | jmp 0x7FF7E4C599CC ->|-------|
What's Gamepass and what's the platform?Hello, I'm new here and replaying Shenmue 2 on the Gamepass.
Is there any way of getting the 16:9 cutscenes to work on it?