Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
6dd3822
big progress, removing redundant cpp files
gynt Sep 24, 2026
cab1107
[OPENSHC]: repair simple-functions-set-1 sources after UI refactor
gynt Sep 24, 2026
86b09af
reimplement: SHC_3BB0A8C1_0x00471A80 100.00% Reimplemented
gynt Sep 24, 2026
d5094da
reimplement: SHC_3BB0A8C1_0x0046BD20 100.00% Reimplemented
gynt Sep 24, 2026
27c0a91
reimplement: SHC_3BB0A8C1_0x0046B2F0 100.00% Reimplemented
gynt Sep 24, 2026
07c571a
reimplement: SHC_3BB0A8C1_0x004719E0 100.00% Reimplemented
gynt Sep 24, 2026
652b062
reimplement: SHC_3BB0A8C1_0x00459140 100.00% Reimplemented
gynt Sep 24, 2026
32c1406
reimplement: SHC_3BB0A8C1_0x00459BB0 100.00% Reimplemented
gynt Sep 24, 2026
51226be
reimplement: SHC_3BB0A8C1_0x00459BE0 100.00% Reimplemented
gynt Sep 24, 2026
0f1760b
reimplement: SHC_3BB0A8C1_0x00458700 100.00% Reimplemented
gynt Sep 24, 2026
4090f37
reimplement: SHC_3BB0A8C1_0x004588D0 100.00% Reimplemented
gynt Sep 24, 2026
595208f
reimplement: SHC_3BB0A8C1_0x004591B0 100.00% Reimplemented
gynt Sep 24, 2026
52f533a
reimplement: SHC_3BB0A8C1_0x00459170 100.00% Reimplemented
gynt Sep 24, 2026
a230505
reimplement: SHC_3BB0A8C1_0x004588F0 100.00% Reimplemented
gynt Sep 24, 2026
0e11bb1
reimplement: SHC_3BB0A8C1_0x004596D0 100.00% Reimplemented
gynt Sep 24, 2026
394619e
reimplement: SHC_3BB0A8C1_0x004563B0 100.00% Reimplemented
gynt Sep 24, 2026
bba7d95
reimplement: SHC_3BB0A8C1_0x0045AF00 100.00% Reimplemented
gynt Sep 24, 2026
910fd62
reimplement: SHC_3BB0A8C1_0x004586F0 100.00% Reimplemented
gynt Sep 24, 2026
b640bc4
reimplement: SHC_3BB0A8C1_0x0045B460 100.00% Reimplemented
gynt Sep 24, 2026
a082a68
reimplement: SHC_3BB0A8C1_0x0044AA70 100.00% Reimplemented
gynt Sep 24, 2026
cfa58bf
reimplement: SHC_3BB0A8C1_0x004188C0 100.00% Reimplemented
gynt Sep 24, 2026
5fe5208
reimplement: SHC_3BB0A8C1_0x004039F0 100.00% Reimplemented
gynt Sep 24, 2026
075c58c
reimplement: SHC_3BB0A8C1_0x00401B60 100.00% Reimplemented
gynt Sep 24, 2026
539b982
reimplement: SHC_3BB0A8C1_0x00401540 100.00% Reimplemented
gynt Sep 24, 2026
bb85ba2
reimplement: SHC_3BB0A8C1_0x00401400 100.00% Reimplemented
gynt Sep 24, 2026
a7379e0
reimplement: SHC_3BB0A8C1_0x00401AE0 100.00% Reimplemented
gynt Sep 24, 2026
fbb8d9d
reimplement: SHC_3BB0A8C1_0x00401430 100.00% Reimplemented
gynt Sep 24, 2026
b8e8a65
reimplement: SHC_3BB0A8C1_0x004F2A10 100.00% Reimplemented
gynt Sep 24, 2026
f1e65d3
reimplement: SHC_3BB0A8C1_0x004F2FE0 100.00% Reimplemented
gynt Sep 24, 2026
358642b
reimplement: SHC_3BB0A8C1_0x004F3D30 100.00% Reimplemented
gynt Sep 24, 2026
9f88e00
reimplement: SHC_3BB0A8C1_0x004B77E0 100.00% Reimplemented
gynt Sep 24, 2026
6c8cfc5
reimplement: SHC_3BB0A8C1_0x004B7890 100.00% Reimplemented
gynt Sep 24, 2026
63f39ab
reimplement: SHC_3BB0A8C1_0x004BB9F0 100.00% Reimplemented
gynt Sep 24, 2026
813a6dd
reimplement: SHC_3BB0A8C1_0x004BBA20 100.00% Reimplemented
gynt Sep 24, 2026
f9c1801
reimplement: SHC_3BB0A8C1_0x004092C0 100.00% Reimplemented
gynt Sep 24, 2026
89dfdfd
reimplement: SHC_3BB0A8C1_0x004A94E0 100.00% Reimplemented
gynt Sep 24, 2026
42b707f
reimplement: SHC_3BB0A8C1_0x004A4B80 100.00% Reimplemented
gynt Sep 24, 2026
11bbae6
reimplement: SHC_3BB0A8C1_0x004A5F60 100.00% Reimplemented
gynt Sep 24, 2026
44272d9
reimplement: SHC_3BB0A8C1_0x005002D0 100.00% Reimplemented
gynt Sep 24, 2026
5563ae1
reimplement: SHC_3BB0A8C1_0x00500210 100.00% Reimplemented
gynt Sep 24, 2026
7371cbd
reimplement: SHC_3BB0A8C1_0x00512920 100.00% Reimplemented
gynt Sep 24, 2026
6a92ddf
reimplement: SHC_3BB0A8C1_0x005000A0 100.00% Reimplemented
gynt Sep 24, 2026
094c80d
reimplement: SHC_3BB0A8C1_0x00500680 100.00% Reimplemented
gynt Sep 24, 2026
6d47a62
reimplement: SHC_3BB0A8C1_0x005007D0 100.00% Reimplemented
gynt Sep 24, 2026
c65ed29
reimplement: SHC_3BB0A8C1_0x00500750 100.00% Reimplemented
gynt Sep 24, 2026
b5c04db
reimplement: SHC_3BB0A8C1_0x00500720 100.00% Reimplemented
gynt Sep 24, 2026
cdc203e
reimplement: SHC_3BB0A8C1_0x00501180 100.00% Reimplemented
gynt Sep 24, 2026
898ceea
reimplement: SHC_3BB0A8C1_0x004F70B0 100.00% Reimplemented
gynt Sep 24, 2026
0bb78e2
reimplement: SHC_3BB0A8C1_0x00504EE0 38.46% LTCG ecx reuse after call
gynt Sep 24, 2026
cbce8d9
reimplement: SHC_3BB0A8C1_0x00500640 46.15% LTCG ecx reuse after call
gynt Sep 24, 2026
b003c7c
reimplement: SHC_3BB0A8C1_0x004F28F0 100.00% Reimplemented
gynt Sep 24, 2026
1469aa6
reimplement: SHC_3BB0A8C1_0x00530D50 100.00% Reimplemented
gynt Sep 24, 2026
e032bc9
reimplement: SHC_3BB0A8C1_0x00522BC0 100.00% Reimplemented
gynt Sep 24, 2026
bfb71bd
reimplement: SHC_3BB0A8C1_0x00523730 100.00% Reimplemented
gynt Sep 24, 2026
b1696ba
reimplement: SHC_3BB0A8C1_0x00522110 100.00% Reimplemented
gynt Sep 24, 2026
50e4f87
reimplement: SHC_3BB0A8C1_0x00521EB0 76.47% pop esi scheduling
gynt Sep 24, 2026
4d38542
reimplement: SHC_3BB0A8C1_0x00522160 100.00% Reimplemented
gynt Sep 24, 2026
777b120
reimplement: SHC_3BB0A8C1_0x00525B70 100.00% Reimplemented
gynt Sep 24, 2026
ddb9933
reimplement: SHC_3BB0A8C1_0x00522BF0 100.00% Reimplemented
gynt Sep 24, 2026
b0f1273
reimplement: SHC_3BB0A8C1_0x00521210 100.00% Reimplemented
gynt Sep 24, 2026
2dfcdcc
reimplement: SHC_3BB0A8C1_0x005224E0 100.00% Reimplemented
gynt Sep 24, 2026
cf681e0
reimplement: SHC_3BB0A8C1_0x00523370 100.00% Reimplemented
gynt Sep 24, 2026
3a4dba2
reimplement: SHC_3BB0A8C1_0x00526370 100.00% Reimplemented
gynt Sep 24, 2026
981102e
reimplement: SHC_3BB0A8C1_0x0051AC80 100.00% Reimplemented
gynt Sep 24, 2026
56b0dd9
reimplement: SHC_3BB0A8C1_0x0051B680 100.00% Reimplemented
gynt Sep 24, 2026
3e8fd3e
reimplement: SHC_3BB0A8C1_0x00519960 100.00% Reimplemented
gynt Sep 24, 2026
303351d
reimplement: SHC_3BB0A8C1_0x00533C70 100.00% Reimplemented
gynt Sep 24, 2026
db76c93
reimplement: SHC_3BB0A8C1_0x00530FD0 78.26% Range check compiled bran…
gynt Sep 24, 2026
3eeea10
reimplement: SHC_3BB0A8C1_0x00532F60 100.00% Reimplemented
gynt Sep 24, 2026
1c68e1b
reimplement: SHC_3BB0A8C1_0x00535DF0 100.00% Reimplemented
gynt Sep 24, 2026
304373d
reimplement: SHC_3BB0A8C1_0x005339F0 100.00% Reimplemented
gynt Sep 24, 2026
ab8028a
reimplement: SHC_3BB0A8C1_0x00530080 100.00% Reimplemented
gynt Sep 24, 2026
7284be5
reimplement: SHC_3BB0A8C1_0x00536CC0 100.00% Reimplemented
gynt Sep 24, 2026
51c5698
reimplement: SHC_3BB0A8C1_0x00533F90 100.00% Reimplemented
gynt Sep 24, 2026
7bcf29f
reimplement: SHC_3BB0A8C1_0x0052FBF0 100.00% Reimplemented
gynt Sep 24, 2026
288e641
reimplement: SHC_3BB0A8C1_0x0052FBB0 100.00% Reimplemented
gynt Sep 24, 2026
933e849
reimplement: SHC_3BB0A8C1_0x00534460 100.00% Reimplemented
gynt Sep 24, 2026
a4ea4b3
reimplement: SHC_3BB0A8C1_0x0053CAC0 100.00% Reimplemented
gynt Sep 24, 2026
a00c81f
reimplement: SHC_3BB0A8C1_0x0041A390 100.00% Reimplemented
gynt Sep 24, 2026
ffd1bd9
reimplement: SHC_3BB0A8C1_0x0041A2B0 100.00% Reimplemented
gynt Sep 24, 2026
5cde769
reimplement: SHC_3BB0A8C1_0x0041A060 100.00% Reimplemented
gynt Sep 24, 2026
7bcd802
reimplement: SHC_3BB0A8C1_0x0044AAA0 100.00% Reimplemented
gynt Sep 24, 2026
505a8c9
reimplement: SHC_3BB0A8C1_0x0041A0D0 100.00% Reimplemented
gynt Sep 24, 2026
b5dd95f
reimplement: SHC_3BB0A8C1_0x0041A3C0 100.00% Reimplemented
gynt Sep 24, 2026
cbd86c1
reimplement: SHC_3BB0A8C1_0x0041A5F0 100.00% Reimplemented
gynt Sep 24, 2026
3bc8717
reimplement: SHC_3BB0A8C1_0x0041A620 100.00% Reimplemented
gynt Sep 24, 2026
4c2cb9f
reimplement: SHC_3BB0A8C1_0x0041A0A0 100.00% Reimplemented
gynt Sep 24, 2026
88f6d4f
reimplement: SHC_3BB0A8C1_0x0041A5C0 100.00% Reimplemented
gynt Sep 24, 2026
3e6a421
reimplement: SHC_3BB0A8C1_0x005011C0 100.00% Reimplemented
gynt Sep 24, 2026
505b1fc
reimplement: SHC_3BB0A8C1_0x00501730 100.00% Reimplemented
gynt Sep 24, 2026
8112da9
reimplement: SHC_3BB0A8C1_0x00523E00 100.00% Reimplemented
gynt Sep 24, 2026
91e1591
reimplement: SHC_3BB0A8C1_0x00523EB0 100.00% Reimplemented
gynt Sep 24, 2026
a249f2a
reimplement: SHC_3BB0A8C1_0x0053B340 53.33% Loop unrolled x3, orig not
gynt Sep 24, 2026
05386fb
reimplement: SHC_3BB0A8C1_0x0053B310 90.00% Global store scheduling
gynt Sep 24, 2026
b87bd7d
reimplement: SHC_3BB0A8C1_0x0053B530 92.31% Global store scheduling
gynt Sep 24, 2026
90bce40
reimplement: SHC_3BB0A8C1_0x0053B570 90.00% Global store scheduling
gynt Sep 24, 2026
661a13b
reimplement: SHC_3BB0A8C1_0x0053B5E0 90.00% Global store scheduling
gynt Sep 24, 2026
da320cd
reimplement: SHC_3BB0A8C1_0x0041A710 100.00% Reimplemented
gynt Sep 24, 2026
38cf78b
reimplement: SHC_3BB0A8C1_0x004F3900 100.00% Reimplemented
gynt Sep 24, 2026
389ff52
reimplement: SHC_3BB0A8C1_0x0041A3F0 100.00% Reimplemented
gynt Sep 24, 2026
47f5699
reimplement: SHC_3BB0A8C1_0x00500C80 100.00% Reimplemented
gynt Sep 24, 2026
8db98a1
reimplement: SHC_3BB0A8C1_0x00500D30 100.00% Reimplemented
gynt Sep 24, 2026
80acd6d
reimplement: SHC_3BB0A8C1_0x0052B9F0 100.00% Reimplemented
gynt Sep 24, 2026
18c4d8a
reimplement: SHC_3BB0A8C1_0x004092E0 100.00% Reimplemented
gynt Sep 24, 2026
22579cb
reimplement: SHC_3BB0A8C1_0x00401000 100.00% Reimplemented
gynt Sep 24, 2026
c470645
reimplement: SHC_3BB0A8C1_0x00467F60 100.00% Reimplemented
gynt Sep 24, 2026
dcf4955
reimplement: SHC_3BB0A8C1_0x004285C0 100.00% Reimplemented
gynt Sep 24, 2026
c2a4806
reimplement: SHC_3BB0A8C1_0x004800B0 100.00% Reimplemented
gynt Sep 24, 2026
adc542a
reimplement: SHC_3BB0A8C1_0x0047E7E0 100.00% Reimplemented
gynt Sep 24, 2026
eebdae7
reimplement: SHC_3BB0A8C1_0x0047EEB0 100.00% Reimplemented
gynt Sep 24, 2026
562df81
reimplement: SHC_3BB0A8C1_0x0047E800 100.00% Reimplemented
gynt Sep 24, 2026
cc61beb
reimplement: SHC_3BB0A8C1_0x00490340 100.00% Reimplemented
gynt Sep 24, 2026
6c0ecd6
reimplement: SHC_3BB0A8C1_0x0042AC60 100.00% Reimplemented
gynt Sep 24, 2026
a53da91
reimplement: SHC_3BB0A8C1_0x004AF680 100.00% Reimplemented
gynt Sep 24, 2026
3af9005
reimplement: SHC_3BB0A8C1_0x004DA8A0 100.00% Reimplemented
gynt Sep 24, 2026
aeefc7d
reimplement: SHC_3BB0A8C1_0x004DA7E0 100.00% Reimplemented
gynt Sep 24, 2026
d9dc328
reimplement: SHC_3BB0A8C1_0x004DA810 100.00% Reimplemented
gynt Sep 24, 2026
c796afe
reimplement: SHC_3BB0A8C1_0x004DA840 100.00% Reimplemented
gynt Sep 24, 2026
87cad06
reimplement: SHC_3BB0A8C1_0x004DA870 100.00% Reimplemented
gynt Sep 24, 2026
1886f3a
reimplement: SHC_3BB0A8C1_0x004DABF0 100.00% Reimplemented
gynt Sep 24, 2026
4745c9a
reimplement: SHC_3BB0A8C1_0x004AF630 100.00% Reimplemented
gynt Sep 24, 2026
ec82404
reimplement: SHC_3BB0A8C1_0x0044B7D0 100.00% Reimplemented
gynt Sep 24, 2026
27c2d3b
reimplement: SHC_3BB0A8C1_0x00427210 100.00% Reimplemented
gynt Sep 24, 2026
81a0547
reimplement: SHC_3BB0A8C1_0x004AF650 100.00% Reimplemented
gynt Sep 24, 2026
c2b871f
reimplement: SHC_3BB0A8C1_0x004650C0 100.00% Reimplemented
gynt Sep 24, 2026
6367fa7
reimplement: SHC_3BB0A8C1_0x00465080 100.00% Reimplemented
gynt Sep 24, 2026
8f84bb7
reimplement: SHC_3BB0A8C1_0x004650A0 100.00% Reimplemented
gynt Sep 24, 2026
f6a78a8
reimplement: SHC_3BB0A8C1_0x004650F0 100.00% Reimplemented
gynt Sep 24, 2026
863c21d
reimplement: SHC_3BB0A8C1_0x004AF6E0 100.00% Reimplemented
gynt Sep 24, 2026
d0d6a6f
reimplement: SHC_3BB0A8C1_0x005010C0 100.00% Reimplemented
gynt Sep 24, 2026
8a3481f
reimplement: SHC_3BB0A8C1_0x005010E0 100.00% Reimplemented
gynt Sep 24, 2026
d78d81a
reimplement: SHC_3BB0A8C1_0x004F6470 100.00% Reimplemented
gynt Sep 24, 2026
6dd5eb4
reimplement: SHC_3BB0A8C1_0x004F4C60 100.00% Reimplemented
gynt Sep 24, 2026
9efaa09
reimplement: SHC_3BB0A8C1_0x004F4C30 100.00% Reimplemented
gynt Sep 24, 2026
fc4f6bf
reimplement: SHC_3BB0A8C1_0x004A9EB0 100.00% Reimplemented
gynt Sep 24, 2026
770718f
reimplement: SHC_3BB0A8C1_0x004A9E80 100.00% Reimplemented
gynt Sep 24, 2026
0059af5
reimplement: SHC_3BB0A8C1_0x004B6640 100.00% Reimplemented
gynt Sep 24, 2026
db1e118
reimplement: SHC_3BB0A8C1_0x004B6680 100.00% Reimplemented
gynt Sep 24, 2026
bedf8d0
reimplement: SHC_3BB0A8C1_0x004B7F60 100.00% Reimplemented
gynt Sep 24, 2026
b0a49d0
reimplement: SHC_3BB0A8C1_0x004B20B0 67.57% Register alloc/tail merge…
gynt Sep 24, 2026
8f79e56
reimplement: SHC_3BB0A8C1_0x004AF6B0 100.00% Reimplemented
gynt Sep 24, 2026
e873804
reimplement: SHC_3BB0A8C1_0x004D9270 100.00% Reimplemented
gynt Sep 24, 2026
30fbab7
reimplement: SHC_3BB0A8C1_0x00495800 100.00% Reimplemented
gynt Sep 24, 2026
3a56aa9
reimplement: SHC_3BB0A8C1_0x004D9D90 100.00% Reimplemented
gynt Sep 24, 2026
4caa23c
reimplement: SHC_3BB0A8C1_0x00433200 100.00% Reimplemented
gynt Sep 24, 2026
7ae8cbf
reimplement: SHC_3BB0A8C1_0x00434230 100.00% Reimplemented
gynt Sep 24, 2026
95b386c
reimplement: SHC_3BB0A8C1_0x00466920 100.00% Reimplemented
gynt Sep 24, 2026
7ec817c
reimplement: SHC_3BB0A8C1_0x00439390 100.00% Reimplemented
gynt Sep 24, 2026
5cec49b
reimplement: SHC_3BB0A8C1_0x0043FC80 100.00% Reimplemented
gynt Sep 24, 2026
800b202
reimplement: SHC_3BB0A8C1_0x00465920 100.00% Reimplemented
gynt Sep 24, 2026
a5076c3
reimplement: SHC_3BB0A8C1_0x0043A880 100.00% Reimplemented
gynt Sep 24, 2026
e8df029
reimplement: SHC_3BB0A8C1_0x0043F2C0 100.00% Reimplemented
gynt Sep 24, 2026
3faedd1
reimplement: SHC_3BB0A8C1_0x0047FFA0 100.00% Reimplemented
gynt Sep 24, 2026
46c3c75
reimplement: SHC_3BB0A8C1_0x0048F850 100.00% Reimplemented
gynt Sep 24, 2026
946dbce
reimplement: SHC_3BB0A8C1_0x0047D0E0 100.00% Reimplemented
gynt Sep 24, 2026
f940f01
reimplement: SHC_3BB0A8C1_0x004D9D60 100.00% Reimplemented
gynt Sep 24, 2026
d5fa35a
reimplement: SHC_3BB0A8C1_0x004BB650 100.00% Reimplemented
gynt Sep 24, 2026
a10c50f
reimplement: SHC_3BB0A8C1_0x004BB540 100.00% Reimplemented
gynt Sep 24, 2026
ba3109f
reimplement: SHC_3BB0A8C1_0x0047D3F0 100.00% Reimplemented
gynt Sep 24, 2026
69818b3
reimplement: SHC_3BB0A8C1_0x004F6A60 100.00% Reimplemented
gynt Sep 24, 2026
c50a3ad
reimplement: SHC_3BB0A8C1_0x00433230 100.00% Reimplemented
gynt Sep 24, 2026
85b73d1
reimplement: SHC_3BB0A8C1_0x004B6500 100.00% Reimplemented
gynt Sep 24, 2026
c350593
reimplement: SHC_3BB0A8C1_0x0042AC40 100.00% Reimplemented
gynt Sep 24, 2026
79dcd64
reimplement: SHC_3BB0A8C1_0x004941F0 100.00% Reimplemented
gynt Sep 24, 2026
d703396
reimplement: SHC_3BB0A8C1_0x00492C60 100.00% Reimplemented
gynt Sep 24, 2026
046c36b
reimplement: SHC_3BB0A8C1_0x00494920 100.00% Reimplemented
gynt Sep 24, 2026
094052f
reimplement: SHC_3BB0A8C1_0x0042C060 100.00% Reimplemented
gynt Sep 24, 2026
d203f6a
reimplement: SHC_3BB0A8C1_0x004B1090 100.00% Reimplemented
gynt Sep 24, 2026
9c92e68
reimplement: SHC_3BB0A8C1_0x004AB540 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
b6c4d1d
reimplement: SHC_3BB0A8C1_0x004ABCB0 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
02d03b3
reimplement: SHC_3BB0A8C1_0x004ABCE0 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
2b3b722
reimplement: SHC_3BB0A8C1_0x00491BF0 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
e636120
reimplement: SHC_3BB0A8C1_0x00491E80 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
089e29b
reimplement: SHC_3BB0A8C1_0x00492A60 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
b7705c5
reimplement: SHC_3BB0A8C1_0x004937B0 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
cc56728
reimplement: SHC_3BB0A8C1_0x00491810 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
0c5644e
reimplement: SHC_3BB0A8C1_0x004ABE50 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
cee0a9b
reimplement: SHC_3BB0A8C1_0x004ABE80 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
91d00d4
reimplement: SHC_3BB0A8C1_0x00492660 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
ae17288
reimplement: SHC_3BB0A8C1_0x004AB4E0 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
9fb6aa4
reimplement: SHC_3BB0A8C1_0x004AB4B0 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
a8c004a
reimplement: SHC_3BB0A8C1_0x004AC250 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
e695a58
reimplement: SHC_3BB0A8C1_0x004AB510 54.55% Callee header lacks heigh…
gynt Sep 24, 2026
909a11f
reimplement: SHC_3BB0A8C1_0x004D6EF0 100.00% Reimplemented
gynt Sep 24, 2026
8d3de29
reimplement: SHC_3BB0A8C1_0x004BEC10 100.00% Reimplemented
gynt Sep 24, 2026
a72e9df
reimplement: SHC_3BB0A8C1_0x004B8050 100.00% Reimplemented
gynt Sep 24, 2026
9f8c4bc
reimplement: SHC_3BB0A8C1_0x00424770 100.00% Reimplemented
gynt Sep 24, 2026
1605efb
reimplement: SHC_3BB0A8C1_0x004DCC70 100.00% Reimplemented
gynt Sep 24, 2026
588b0b5
reimplement: SHC_3BB0A8C1_0x004403D0 100.00% Reimplemented
gynt Sep 24, 2026
785b4d7
reimplement: SHC_3BB0A8C1_0x0045D0B0 100.00% Reimplemented
gynt Sep 24, 2026
75a2f0a
reimplement: SHC_3BB0A8C1_0x00468C50 100.00% Reimplemented
gynt Sep 24, 2026
b33c13c
reimplement: SHC_3BB0A8C1_0x004548D0 100.00% Reimplemented
gynt Sep 24, 2026
a1e9f0d
reimplement: SHC_3BB0A8C1_0x004549C0 40.00% Register allocation differs
gynt Sep 24, 2026
33ae394
reimplement: SHC_3BB0A8C1_0x0044CCC0 100.00% Reimplemented
gynt Sep 24, 2026
fe4fefc
reimplement: SHC_3BB0A8C1_0x00454990 100.00% Reimplemented
gynt Sep 24, 2026
ce85193
reimplement: SHC_3BB0A8C1_0x00455270 100.00% Reimplemented
gynt Sep 24, 2026
2638700
reimplement: SHC_3BB0A8C1_0x0046CED0 100.00% Reimplemented
gynt Sep 24, 2026
5653256
reimplement: SHC_3BB0A8C1_0x0046CEF0 100.00% Reimplemented
gynt Sep 24, 2026
e5708d1
reimplement: SHC_3BB0A8C1_0x004B7F60 100.00% Reimplemented
gynt Sep 24, 2026
85ca0d5
[OPENSHC]: style pass for SetTutorialBuildingActionState
gynt Sep 24, 2026
dd67b54
reimplement: SHC_3BB0A8C1_0x004AB540 100.00% Reimplemented
gynt Sep 25, 2026
beed884
reimplement: SHC_3BB0A8C1_0x004ABCB0 100.00% Reimplemented
gynt Sep 25, 2026
243f4bc
reimplement: SHC_3BB0A8C1_0x004ABCE0 100.00% Reimplemented
gynt Sep 25, 2026
d10a82b
reimplement: SHC_3BB0A8C1_0x00491BF0 100.00% Reimplemented
gynt Sep 25, 2026
b3d5d2b
reimplement: SHC_3BB0A8C1_0x00491E80 100.00% Reimplemented
gynt Sep 25, 2026
7ca7c92
reimplement: SHC_3BB0A8C1_0x00492A60 100.00% Reimplemented
gynt Sep 25, 2026
aaf95c9
reimplement: SHC_3BB0A8C1_0x004937B0 100.00% Reimplemented
gynt Sep 25, 2026
04df9b1
reimplement: SHC_3BB0A8C1_0x00491810 100.00% Reimplemented
gynt Sep 25, 2026
2bfb2dc
reimplement: SHC_3BB0A8C1_0x004ABE50 100.00% Reimplemented
gynt Sep 25, 2026
58eef0e
reimplement: SHC_3BB0A8C1_0x004ABE80 100.00% Reimplemented
gynt Sep 25, 2026
7994808
reimplement: SHC_3BB0A8C1_0x00492660 100.00% Reimplemented
gynt Sep 25, 2026
9d34ab3
reimplement: SHC_3BB0A8C1_0x004AB4E0 100.00% Reimplemented
gynt Sep 25, 2026
7e28183
reimplement: SHC_3BB0A8C1_0x004AB4B0 100.00% Reimplemented
gynt Sep 25, 2026
c285db9
reimplement: SHC_3BB0A8C1_0x004AC250 100.00% Reimplemented
gynt Sep 25, 2026
8979158
reimplement: SHC_3BB0A8C1_0x004AB510 100.00% Reimplemented
gynt Sep 25, 2026
6b47e6d
reimplement: SHC_3BB0A8C1_0x004B5300 100.00% Reimplemented
gynt Sep 25, 2026
9eee91f
compiler flags
gynt Sep 25, 2026
6afc5de
compiler flags
gynt Sep 25, 2026
497f63e
clang-formatting
Sep 28, 2026
2002252
remove untracked cpp files from status file
Sep 28, 2026
dc4c598
remove untracked cpp files from status file
Sep 28, 2026
a02ad88
reset status file
Sep 28, 2026
9819676
sync with main
Sep 28, 2026
329b629
reset status file to proper progress
Sep 28, 2026
0147370
reimplement: SHC_3BB0A8C1_0x0053B340 81.82% Store sched + jne vs jl
gynt Sep 29, 2026
7980149
status: record measured progress for this branch's 45 partial functions
gynt Sep 29, 2026
f462cf7
cleanup style
gynt Sep 29, 2026
b6ea1db
reimplement: SHC_3BB0A8C1_0x00530FD0 100%
gynt Sep 30, 2026
b9b14bd
reimplement: SHC_3BB0A8C1_0x00522520 100%
gynt Sep 30, 2026
53e6244
reimplement: SHC_3BB0A8C1_0x0045B7F0 100% /GL
gynt Sep 30, 2026
4ed3b80
string literal usage
gynt Sep 30, 2026
96008db
reimplement: SHC_3BB0A8C1_0x004B20B0 82.43% shared arm fold direction
gynt Sep 30, 2026
7571a63
reimplement: SHC_3BB0A8C1_0x0053B5E0 100%
gynt Sep 30, 2026
73a8ff0
reimplement: SHC_3BB0A8C1_0x0053B340 90.91%
gynt Sep 30, 2026
fc77a52
reimplement: SHC_3BB0A8C1_0x0053B570 100%
gynt Sep 30, 2026
20b76b5
reimplement: SHC_3BB0A8C1_0x0053B310 100%
gynt Sep 30, 2026
6b660b1
reimplement: SHC_3BB0A8C1_0x0053B530 100%
gynt Sep 30, 2026
b473e2c
reimplement: SHC_3BB0A8C1_0x0053B530 100%
gynt Sep 30, 2026
cea1e40
reimplement: SHC_3BB0A8C1_0x00504EE0 100%
gynt Sep 30, 2026
10e891a
reimplement: SHC_3BB0A8C1_0x004549C0 100.0%
gynt Sep 30, 2026
fd9bec6
reimplement: SHC_3BB0A8C1_0x004039B0 100.0%
gynt Sep 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions cmake/compiler-flags-gl.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,11 @@ src/OpenSHC/IO/ResourceManager/swapMapDataWithNextMap.cpp
src/OpenSHC/UI/Rendering/WindowAndDirectDraw/takeScreenshot.cpp
src/OpenSHC/IO/ResourceManager/readFirstPartOfCurrentResourceIntoMemory.cpp
src/OpenSHC/IO/ResourceManager/readNextPartOfCurrentResourceIntoMemory.cpp
src/OpenSHC/Map/TileMapState/updateMoatCountdownTimers.cpp
src/OpenSHC/Map/TileMapState/recountTotalOwnedMoats.cpp
src/OpenSHC/Game/GameStateStructures/getSalesPrice.cpp
src/OpenSHC/Map/TileMapState/updateBuildingPlacementRotationPreview.cpp
src/OpenSHC/Map/Units/TribesState/playUnitSelectSpeech.cpp
src/OpenSHC/Audio/SFX/SFXState/playUnitSpeech.cpp
src/OpenSHC/Game/GameStateStructures/getSellResourceAmount.cpp
src/OpenSHC/Map/TileMapState/determineBuildingPlacementRotation.cpp
21 changes: 21 additions & 0 deletions src/OpenSHC/Game/GameCore/exitToScenarioDescriptionMenu.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "OpenSHC/Game/GameCore.func.hpp"
#include "OpenSHC/UI/Enums/MenuViewType.hpp"

#include "OpenSHC/Globals/DAT_GameCore.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::UI::Enums::MenuViewType;

// FUNCTION: STRONGHOLDCRUSADER 0x00471A80
void GameCore::exitToScenarioDescriptionMenu()
{
MACRO_CALL_MEMBER(OpenSHC::Game::GameCore_Func::removeLadyAndJester, this)();
DAT_GameCore::instance.field22_0x64 = 0;
MACRO_CALL_MEMBER(OpenSHC::Game::GameCore_Func::switchToMenuView, DAT_GameCore::ptr)(
OpenSHC::UI::Enums::MVT_SCENARIO_DESCRIPTION, 0);
}

}
}
31 changes: 31 additions & 0 deletions src/OpenSHC/Game/GameCore/isGameHaltingMenuOpen.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#include "OpenSHC/Game/GameCore.func.hpp"
#include "OpenSHC/Game/GameMode.hpp"
#include "OpenSHC/UI/Enums/MenuModalType.hpp"
#include "OpenSHC/WindowsHelper/Enums/BOOLEnum.hpp"

#include "OpenSHC/Globals/DAT_GameSynchronyState.hpp"
#include "OpenSHC/Globals/DAT_MenuModalComposition1.hpp"
#include "OpenSHC/Globals/DAT_MenuTextInputState.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::Game::GameMode;
using OpenSHC::UI::Enums::MenuModalType;
using OpenSHC::WindowsHelper::Enums::BOOLEnum;

// FUNCTION: STRONGHOLDCRUSADER 0x0046BD20
BOOLEnum GameCore::isGameHaltingMenuOpen()
{
if (DAT_GameSynchronyState::instance.currentGameMode != OpenSHC::Game::GM_SOLITARY
&& DAT_GameSynchronyState::instance.currentGameMode != OpenSHC::Game::GM_SKIRMISH_SINGLE_PLAYER) {
return FALSE;
}
if (DAT_MenuTextInputState::instance.currentModalDialog != OpenSHC::UI::Enums::MMT_NO_MENU) {
return TRUE;
}
return DAT_MenuModalComposition1::instance.activeModalDialogID == OpenSHC::UI::Enums::MMT_IN_GAME_HELP_TEXT;
}

}
}
21 changes: 21 additions & 0 deletions src/OpenSHC/Game/GameCore/setTabToSwitchTo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "OpenSHC/Game/GameCore.func.hpp"
#include "OpenSHC/UI/Enums/MenuViewType.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::UI::Enums::MenuViewType;

// FUNCTION: STRONGHOLDCRUSADER 0x0046B300
void GameCore::setTabToSwitchTo()
{
if (this->currentMenuViewType == OpenSHC::UI::Enums::MVT_BUILD_MENU) {
this->secondaryActiveMenuTabToSwitchTo = this->buildmenuMenuTabToSwitchTo;
}
if (this->currentMenuViewType == OpenSHC::UI::Enums::MVT_MAP_EDITOR_LANDSCAPING) {
this->secondaryActiveMenuTabToSwitchTo.tabType = this->landscapingmenuMenuTabToSwitchTo;
}
}

}
}
13 changes: 13 additions & 0 deletions src/OpenSHC/Game/GameCore/setViewOnExitUnk.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "OpenSHC/Game/GameCore.func.hpp"
#include "OpenSHC/UI/Enums/MenuViewType.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::UI::Enums::MenuViewType;

// FUNCTION: STRONGHOLDCRUSADER 0x0046B2F0
void GameCore::setViewOnExitUnk() { this->currentMenuViewType = (MenuViewType)2; }

}
}
20 changes: 20 additions & 0 deletions src/OpenSHC/Game/GameCore/swapBuildMenuTab.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include "OpenSHC/Game/GameCore.func.hpp"
#include "OpenSHC/UI/Enums/BuildingsAndStatusMenuTabType.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::UI::Enums::BuildingsAndStatusMenuTabType;

// FUNCTION: STRONGHOLDCRUSADER 0x0046B320
void GameCore::swapBuildMenuTab()
{
if (this->buildmenuMenuTabToSwitchTo.tabType == OpenSHC::UI::Enums::BASMTT_SIEGETENT_SHIELD) {
this->buildmenuMenuTabToSwitchTo.tabType = OpenSHC::UI::Enums::BASMTT_SIEGETENT_BATTERINGRAM;
return;
}
this->buildmenuMenuTabToSwitchTo = this->secondaryActiveMenuTabToSwitchTo;
}

}
}
21 changes: 21 additions & 0 deletions src/OpenSHC/Game/GameCore/switchToScenarioDescriptionMenuView.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "OpenSHC/Game/GameCore.func.hpp"
#include "OpenSHC/UI/Enums/MenuViewType.hpp"

#include "OpenSHC/Globals/DAT_GameCore.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::UI::Enums::MenuViewType;

// FUNCTION: STRONGHOLDCRUSADER 0x004719E0
void GameCore::switchToScenarioDescriptionMenuView()
{
MACRO_CALL_MEMBER(OpenSHC::Game::GameCore_Func::removeJesterAndLadyUnitsInCertainMissions, this)();
MACRO_CALL_MEMBER(OpenSHC::Game::GameCore_Func::switchToMenuView, DAT_GameCore::ptr)(
OpenSHC::UI::Enums::MVT_SCENARIO_DESCRIPTION, 0);
DAT_GameCore::instance.field22_0x64 = 0;
}

}
}
14 changes: 14 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/activateTraderState.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x004586D0
void GameStateStructures::activateTraderState()
{
this->mapAndTime.traderRelated2 = 2;
this->mapAndTime.traderRelatedCounter1 = 0;
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x00459140
int GameStateStructures::calculateTaxBribeExpenseForPlayer(int playerIndex, int taxStep, int currentPopulation)
{
int bribeExpense = ((5 - taxStep) * currentPopulation) / 2;
if (this->playerDataArray[playerIndex].currentResources[OpenSHC::Game::Resources::RT_GOLD] <= 0) {
bribeExpense = 0;
}
return bribeExpense;
}

}
}
20 changes: 20 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/clearTribeHotKey.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include "../GameStateStructures.func.hpp"

#include "OpenSHC/Game/State/UnitSelectionHotKeyEntry.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::Game::State::UnitSelectionHotKeyEntry;

// FUNCTION: STRONGHOLDCRUSADER 0x00459BB0
void GameStateStructures::clearTribeHotKey(int hotkeyID)
{
for (int i = 0; i < 2500; ++i) {
this->hotkeyTribes[hotkeyID].units[i].id = -1;
this->hotkeyTribes[hotkeyID].units[i].uid = -1;
}
}

}
}
28 changes: 28 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/destroyPlayerCompletely.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#include "../GameStateStructures.func.hpp"

#include "OpenSHC/Map/Buildings/BuildingsState.func.hpp"
#include "OpenSHC/Map/Entities/EntityState.func.hpp"
#include "OpenSHC/Map/TileMapState.func.hpp"
#include "OpenSHC/Map/Units/UnitsState.func.hpp"

#include "OpenSHC/Globals/DAT_BuildingsState.hpp"
#include "OpenSHC/Globals/DAT_EntityState.hpp"
#include "OpenSHC/Globals/DAT_TileMapState.hpp"
#include "OpenSHC/Globals/DAT_UnitsState.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x00457B40
void GameStateStructures::destroyPlayerCompletely(int playerID)
{
MACRO_CALL_MEMBER(OpenSHC::Map::Units::UnitsState_Func::killUnits, DAT_UnitsState::ptr)(playerID);
MACRO_CALL_MEMBER(OpenSHC::Map::Buildings::BuildingsState_Func::destroyBuildings, DAT_BuildingsState::ptr)(
playerID);
MACRO_CALL_MEMBER(OpenSHC::Map::TileMapState_Func::destroyWallsOfPlayer, DAT_TileMapState::ptr)(playerID);
MACRO_CALL_MEMBER(OpenSHC::Map::Entities::EntityState_Func::destroyEntitiesPart2, DAT_EntityState::ptr)(
playerID);
}

}
}
22 changes: 22 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/fillWith0xFF.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include "../GameStateStructures.func.hpp"

#include "OpenSHC/Game/GameStateStructures.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::Game::GameStateStructures;

// FUNCTION: STRONGHOLDCRUSADER 0x00459BE0
void GameStateStructures::fillWith0xFF()
{
for (int hotkeyID = 0; hotkeyID < 10; ++hotkeyID) {
for (int i = 0; i < 2500; ++i) {
this->hotkeyTribes[hotkeyID].units[i].id = -1;
this->hotkeyTribes[hotkeyID].units[i].uid = -1;
}
}
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include "../GameStateStructures.func.hpp"

#include "OpenSHC/Game/Player/PlayerData.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::Game::Player::PlayerData;

// FUNCTION: STRONGHOLDCRUSADER 0x00458700
int GameStateStructures::findNextPlayerWithMarketplace(int playerID)
{
for (int nextPlayerID = playerID + 1; nextPlayerID < 9; ++nextPlayerID) {
if (this->playerDataArray[nextPlayerID].marketplace.id > 0) {
return nextPlayerID;
}
}
return 0;
}

}
}
13 changes: 13 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/getBatchBuyPrice.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x00458890
int GameStateStructures::getBatchBuyPrice(undefined4 playerID, int resourceType)
{
return this->mapAndTime.buyAndSalesPriceArray[resourceType].buyPrice;
}

}
}
13 changes: 13 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/getBuyPriceForOneUnit.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x004588D0
int GameStateStructures::getBuyPriceForOneUnit(int resourceType)
{
return this->mapAndTime.buyAndSalesPriceArray[resourceType].buyPrice / 5;
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x004591B0
int GameStateStructures::getNumberToDisplayBribeIncome(int playerIndex, int taxStep, int currentPopulation)
{
int bribeIncome = 0;
if (taxStep < 3) {
bribeIncome = MACRO_CALL_MEMBER(OpenSHC::Game::GameStateStructures_Func::calculateTaxBribeExpenseForPlayer,
this)(playerIndex, taxStep, currentPopulation)
* 4;
}
return bribeIncome / 10;
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x00459170
int GameStateStructures::getNumberToDisplayPlayerTaxIncome(int playerIndex, int taxStep, int currentPopulation)
{
int taxIncome = 0;
if (taxStep > 3) {
taxIncome = MACRO_CALL_MEMBER(OpenSHC::Game::GameStateStructures_Func::calculateTaxIncomeForPlayer, this)(
playerIndex, taxStep, currentPopulation)
* 4;
}
return taxIncome / 10;
}

}
}
17 changes: 17 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/getSalePriceOfGood.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include "../GameStateStructures.func.hpp"

#include "OpenSHC/Game/Resources/ResourceType.hpp"

namespace OpenSHC {
namespace Game {

using OpenSHC::Game::Resources::ResourceType;

// FUNCTION: STRONGHOLDCRUSADER 0x004588F0
int GameStateStructures::getSalePriceOfGood(ResourceType resourceType)
{
return this->mapAndTime.buyAndSalesPriceArray[resourceType].salesPrice / 5;
}

}
}
15 changes: 15 additions & 0 deletions src/OpenSHC/Game/GameStateStructures/getSalesPrice.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#include "../GameStateStructures.func.hpp"

namespace OpenSHC {
namespace Game {

// FUNCTION: STRONGHOLDCRUSADER 0x0045B7F0
int GameStateStructures::getSalesPrice(int playerID, int resourceType)
{
return (this->mapAndTime.buyAndSalesPriceArray[resourceType].salesPrice / 5)
* MACRO_CALL_MEMBER(OpenSHC::Game::GameStateStructures_Func::getSellResourceAmount, this)(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shared file.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this signature (the carry over EDX beyond a call, could also happen to ECX) means /GL.

0x45b7fb : -mov edx, ecx
0x45b7fd : -call <OFFSET1>
0x45b802 : -mov edx, dword ptr [edx + esi*8 + 0x51f20]

yes /GL leads to 100%

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I always need to look them up again, but EAX, EDX and ECX are scratch registers. If they are used after a function call in msvc-x86 without being reassigned first, it means:

  • For EDX and ECX that the compiler knew the function body.
  • For EAX that the function may have returned something... or maybe it knew the function body? Have no example for this.

Of course the compiler may also do other stuff when the body is known, but these are very clear signs.

playerID, resourceType);
}

}
}
Loading
Loading