Skip to content

Commit bf728de

Browse files
committed
[Shadow Gens] Always Use Movie Shadow Skin: fix missing assets and RH1 softlock
1 parent ab57480 commit bf728de

File tree

1 file changed

+35
-20
lines changed

1 file changed

+35
-20
lines changed
Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,55 @@
1-
Patch "Always Use Movie Shadow Skin (experimental)" in "Gameplay" by "Hyper & angryzor" does
1+
Patch "Always Use Movie Shadow Skin (experimental)" in "Gameplay" by "Hyper" does
22
/*
33
Always uses the Movie Shadow skin across the game.
44

55
Notes;
66
- This requires the Sonic the Hedgehog 3 Movie Pack DLC.
77

88
Known issues;
9-
- Stage-specific animations and cutscenes outside of the Tokyo mission will not be animated properly.
9+
- All animations and cutscenes that are not used by the Tokyo mission will not be animated properly.
10+
- Swing poles are unusable.
1011
*/
12+
//
13+
#lib "Memory"
14+
//
1115
{
12-
WriteAsmHook
13-
(
14-
$@"
15-
mov al, 2
16-
ret
17-
",
16+
long[] addrs =
17+
{
18+
/* v1.10.0.0: 0x1406836D9 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x44\x0F\xB6\xE0\x3C\x02", "x????xxxxxx"),
19+
/* v1.10.0.0: 0x14011785D */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x88\x85\x40\x01\x00\x00", "x????xxxxxx"),
20+
/* v1.10.0.0: 0x1400FF474 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x0F\xBE\xD0\x33\xC9", "x????xxxxx"),
21+
/* v1.10.0.0: 0x140180D11 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x3C\x02\x0F\x85\xBC\x01\x00\x00", "x????xxxxxxxx"),
22+
/* v1.10.0.0: 0x140180EE0 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x3C\x02\x0F\x85\xFC\x05\x00\x00", "x????xxxxxxxx"),
23+
/* v1.10.0.0: 0x14A93E2F3 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x31\xDB\x3C\x02\x0F\x85\x80\x00\x00\x00", "x????xxxxxxxxxx"),
24+
/* v1.10.0.0: 0x1407EB9AB */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x84\xC0\x41\x0F\x95\xC7", "x????xxxxxx"),
25+
/* v1.10.0.0: 0x14B5ACCE4 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x66\x89\x0D\xCC\xCC\xCC\xCC\x3C\x01", "x????xxx????xx"),
26+
/* v1.10.0.0: 0x14060DC48 */ ScanSignature("\xE8\xCC\xCC\xCC\xCC\x88\x45\x67\xC6\x45\x77\x01", "x????xxxxxxx")
27+
};
1828

19-
/* v1.10.0.0: 0x146AF7E00 */
29+
foreach (var addr in addrs)
30+
WriteProtected<byte>(addr, Assemble("mov al, 2; nop; nop; nop"));
31+
32+
// Force load Movie Shadow resources.
33+
WriteNop
34+
(
35+
/* v1.10.0.0: 0x1401806D0 */
2036
ScanSignature
2137
(
22-
"\x40\x53\x48\x83\xEC\x20\x48\x89\xCB\xE8\xCC\xCC\xCC\xCC\x48\x89\xC2\x48\x89\xD9\xE8\xCC\xCC\xCC\xCC\x48\x85\xC0\x74\x15",
23-
"xxxxxxxxxx????xxxxxxx????xxxxx"
38+
"\x0F\x84\x13\x0E\x00\x00\x49\x8B\xCE",
39+
"xxxxxxxxx"
2440
),
2541

26-
HookBehavior.Replace
42+
6
2743
);
28-
29-
WriteProtected<byte>
44+
45+
// Disable Movie Shadow grind rail code.
46+
Memory.WriteForceJump
3047
(
31-
/* v1.10.0.0: 0x14060E211 */
48+
/* v1.10.0.0: 0x1406F10CA */
3249
ScanSignature
3350
(
34-
"\x75\x55\x45\x33\xC0",
35-
"xxxxx"
36-
),
37-
38-
0xEB
51+
"\x0F\x84\x38\x01\x00\x00\x48\x8D\x54\x24\x30",
52+
"xxxxxxxxxxx"
53+
)
3954
);
4055
}

0 commit comments

Comments
 (0)