-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmakediffs.py
43 lines (35 loc) · 1.57 KB
/
makediffs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# I have modified the game .exe by directly changing assembly instructions in OllyDbg
# this script just turned those modifications into a small portable patch file and it isn't used anywhere during
# the execution of reternal.py
import bsdiff4
print("REternal Daughter patching utility")
print("==================================")
print()
print("Making upscale patch...")
# patch 1: this hooks the execution and updates resolution in memory
bsdiff4.file_diff("Eternal Daughter.exe", "fixres1.exe", "patch1")
print("Done!")
print()
print("Making pseudo hi-res patch...")
# patch 2: this changes the resolution only when the window is drawn;
# as a result, the game isn't upscaled but you also don't get artifacts on smaller levels
bsdiff4.file_diff("Eternal Daughter.exe", "fixres2.exe", "patch2")
print("Done!")
print()
print("Making screen borders patch...")
# patch 3: like patch 2 but adds screen borders; unfortunately, they blink in a really annoying way;
# requires compiled bmploader.dll and a 640x480 file 'img.bmp' that contains borders (white = transparent)
bsdiff4.file_diff("Eternal Daughter.exe", "fixres3.exe", "patch3")
print("Done!")
print()
print("Making windowed patch...")
# patch 4: this makes the game run in a window
bsdiff4.file_diff("Eternal Daughter.exe", "windowed.exe", "patch4")
print("Done!")
print()
print("Making Cncs232.dll patch...")
# this should upgrade to the newest version of Cncs232.dll and fix some midi problems
bsdiff4.file_diff("cncs232-old.dll", "cncs232-new.dll", "cncs-patch")
print("Done!")
print()
print("Patchmaking completed!")