-
Notifications
You must be signed in to change notification settings - Fork 5
/
hacks_MGS_PeaceWalker_ULUS10509.ini.db
49 lines (49 loc) · 3.01 KB
/
hacks_MGS_PeaceWalker_ULUS10509.ini.db
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
44
45
46
47
48
49
_S ULUS10509
_G Metal Gear Solid: Peace Walker [USA]
//
_C0 All missions are available for multiplayer with 8 players max
//
// [YES] The romhack successfully makes changes only when the game is at the right state (without this factor, the romhack will crash the game often)
// [YES] The romhack successfully makes singleplayer missions multiplayer
// [YES] The romhack successfully modifies max players value
// BUT:
// [NO] If more players join than the game originally allows, things break (however, when the right number of people join, nothing breaks, so at least the romhack doesn't break multiplayer)
// However, previously singleplayer missions were reported to allow 2 players!
// Which confirms the functionality of the base romhack! It means something else (asset/some 'knowledge') is missing for extra players.
// Reference: recon\MGS-PW-Multiplayer\2players.png
// Reference: https://discord.com/channels/163360378200260619/163360378200260619/1275373422515458083
// CURRENT BELIEF: The romhack works, but more of MGS:PW game needs to be modded.
//
//
// [*] Note: in the game code, 'max players' is set to 8 by default, so it seems to be a safe value
// high values (e.g., 0x7F) cause the game to softlock.
//
// [*] Note: Even higher values than 8, such as 9 (or higher, if more of the game is modified) are possible,
// but the game defaults to 8 players in its code, and let's get 8 players working first!
// (in the spirit of Agile - small incremental changes)
//
// Usage:
// 1. Enable romhack at any time
// 2. Ensure game itself is ready: data is installed, the savefile progression grants multiplayer
// 3. Load game
// 4. L -> Mission Selector -> X
// 5. Select any mission (singleplayer or multiplayer)
// 6. Skip dialogue (Start) -> Host
// 7. Select any channel
// 8. Start that multiplayer mission session, observe max player value of 8
// Patch begin:
// 1. First, we check if the game is in "Mission Selector" mode
_L 0xE00C003C 0x007C5310 // 08FC5310:9204003C (possible but never executed max multiplayer modifier), 1/2
_L 0xE00B9204 0x007C5312 // 08FC5310:9204003C (possible but never executed max multiplayer modifier), 2/2
_L 0xE00A0000 0x007C5314 // 08FC5314:92060000 (a0 will always be max multiplayer here), 1/2
_L 0xE0099206 0x007C5316 // 08FC5314:92060000 (a0 will always be max multiplayer here), 2/2
_L 0xE008003C 0x007C53FC // 08FC53FC:9204003C (a0 real modifier), 1/2
_L 0xE0079204 0x007C53FE // 08FC53FC:9204003C (a0 real modifier), 2/2
_L 0xE006B63A 0x007C5400 // 08FC5400:0E40B63A (characteristic jal), 1/2
_L 0xE0050E40 0x007C5402 // 08FC5400:0E40B63A (characteristic jal), 2/2
// 2. then we check current Mission Selector "mission" pointer and modify maxplayers if needed
_L 0xD15B1C92 0x003007FF // check, current mode struct head (LE)
_L 0x615B1C90 0x00000801 // set 2 bytes: to 0x08 (max players), 0x01 (0x01 for multiplayer, 0x03 for singleplayer).
_L 0x00010001 0x00000018 // max players affecting single-player missions only (+0x18,0x19)
_L 0x615B1C90 0x00000008 // set byte to 0x08.
_L 0x00000001 0x0000003C // max players (+0x3C)