SHOW:
|
|
- or go back to the newest paste.
1 | - | MM JP VC save file manipulation - Documentation |
1 | + | MM US VC save file manipulation - Documentation |
2 | -------------------------------------------------- | |
3 | ||
4 | - | The save data is stored in the EEP_NZSJ file. |
4 | + | The save data is stored in the EEP_NZSE file. |
5 | - | The game ID is 000100014e41524a - the folder in sd:\savegames\ must be |
5 | + | The game ID is 000100014e415245 - the folder in sd:\savegames\ must be |
6 | named like that for SaveGame Manager GX to be able to install it. | |
7 | - | All 3 save slots are twice in that file, probably as a backup copy. |
7 | + | Both 2 save slots are twice in that file, probably as a backup copy. |
8 | - | Each save slot is 0x4000 bytes long (=16 kilobytes). |
8 | + | Each save slot is 0x2000 bytes long (=8 kilobytes). |
9 | If you want to edit a save slot, you have to edit both the "real" one and the "copy". | |
10 | -------------------------------------------------- | |
11 | ||
12 | - | Addresses of save slots (0x4000 bytes each): |
12 | + | Addresses of save slots (0x2000 bytes each): |
13 | - | Slot #1: 0x00000 to 0x03FFF |
13 | + | Slot #1: 0x00000 to 0x01FFF |
14 | - | Slot #2: 0x04000 to 0x07FFF |
14 | + | Slot #1 copy: 0x02000 to 0x03FFF |
15 | - | Slot #3: 0x08000 to 0x0BFFF |
15 | + | Slot #2: 0x04000 to 0x05FFF |
16 | - | Slot #1 copy: 0x10000 to 0x13FFF |
16 | + | Slot #2 copy: 0x06000 to 0x07FFF |
17 | - | Slot #2 copy: 0x14000 to 0x17FFF |
17 | + | |
18 | - | Slot #3 copy: 0x18000 to 0x1BFFF |
18 | + | |
19 | Slot offset + 0x0002C to 0x00033 | |
20 | ||
21 | Addresses of Lottery, Spiderhouse, Bomber code, checksum (0x32 bytes total): | |
22 | Slot offset + 0x00FEC to 0x0100B | |
23 | ||
24 | - | Slot offset + 0x01370 to 0x0138F |
24 | + | |
25 | 0x18000 to 0x18005 | |
26 | (unsure on this one, didn't take a closer look) | |
27 | - | 0x0C000 to 0x0C005 |
27 | + | |
28 | ||
29 | Filename details: | |
30 | The filename is 8 bytes. Each byte is 1 character of the file name. | |
31 | The characters are stored in the same order as ingame, so 0x0002C is the first character. | |
32 | HEX codes for characters are: | |
33 | 0 - 9: 00 to 09 | |
34 | A - Z: 0A to 23 | |
35 | a - z: 24 to 3D | |
36 | - | A - Z: AB to C4 |
36 | + | Space: 3E |
37 | - | a - z: C5 to DE |
37 | + | Dot: 40 |
38 | - | Space: DF |
38 | + | Hyphen: 3F |
39 | - | Dot: EA |
39 | + | |
40 | - | Hyphen: E4 |
40 | + | |
41 | Lottery, Spiderhouse, Bomber code, checksum details: | |
42 | ||
43 | The Lottery code is 9 bytes. Each byte is 1 digit of a Lottery number. | |
44 | The Lottery digits are stored in the same order as ingame, so 0x00FEC is the first digit on the first day. | |
45 | ||
46 | - | The Lottery digits are stored in the same order as ingame, so 0x01370 is the first digit on the first day. |
46 | + | |
47 | The Spiderhouse colors are stored in the same order as ingame, so 0x00FF5 is the first color to hit. | |
48 | ||
49 | - | The Spiderhouse colors are stored in the same order as ingame, so 0x01379 is the first color to hit. |
49 | + | |
50 | The Bomber code digits are stored in the same order as ingame, so 0x00FFB is the first digit of the code. | |
51 | ||
52 | - | The Bomber code digits are stored in the same order as ingame, so 0x0137F is the first digit of the code. |
52 | + | |
53 | The checksum is the sum of all bytes prior to the checksum in the save slot. | |
54 | --> This means it's the sum of all bytes from 0x00000 to 0x01009. | |
55 | --> For a completely new, untouched slot it is 685B + filename + codes (lottery, spider, bomber). | |
56 | - | --> This means it's the sum of all bytes from 0x00000 to 0x0138D. |
56 | + | |
57 | - | --> For a completely new, untouched slot it is 77D0 + filename + codes (lottery, spider, bomber). |
57 | + | |
58 | Example (save slot #1, fresh file): | |
59 | _____________________________________________________________ | |
60 | | ... | | |
61 | | 0x00020: 04 00 00 00 5A 45 4C 44 41 33 00 00 15 2C 31 2E | | |
62 | | 0x00030: 3E 3E 3E 3E 00 30 00 30 00 30 00 00 00 00 00 00 | | |
63 | - | | 0x00020: 04 00 00 00 5A 45 4C 44 41 33 00 00 B6 CD D2 CF | |
63 | + | |
64 | - | | 0x00030: DF DF DF DF 00 30 00 30 00 30 00 00 00 00 00 00 | |
64 | + | | 0x00FE0: 00 00 00 00 00 00 00 00 00 00 00 00 01 02 03 01 | |
65 | | 0x00FF0: 02 03 01 02 03 00 01 02 03 02 03 05 04 03 02 01 | | |
66 | - | | 0x01370: 01 02 03 01 02 03 01 02 03 00 01 02 03 02 03 05 | |
66 | + | | 0x01000: 00 35 FA 74 01 01 FA FB 8A AC 6A 1F 00 00 00 00 | |
67 | - | | 0x01380: 04 03 02 01 00 35 FA 74 01 01 FA FB 8A AC 7E 9C | |
67 | + | |
68 | ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ | |
69 | The filename here is "Link ". (Hex: 15 2C 31 2E 3E 3E 3E 3E) | |
70 | - | The filename here is "Link ". (Hex: B6 CD D2 CF DF DF DF DF) |
70 | + | |
71 | The Lottery codes are "123, 123, 123". (Hex: 01 02 03 01 02 03 01 02 03) | |
72 | The Spiderhouse code is "R B Y G Y G". (Hex: 00 01 02 03 02 03) | |
73 | The Bomber code is "5 4 3 2 1". (Hex: 05 04 03 02 01) | |
74 | [The following part is static, don't change that: 00 35 FA 74 01 01 FA FB 8A AC] | |
75 | The checksum is "6A 1F" (685B + filename + the three codes). | |
76 | - | The checksum is "7E 9C" (77D0 + filename + the three codes). |
76 | + | |
77 | That means you can switch around the Bomber code without modyfying the checksum! | |
78 | The checksum can be easily calculated using the Windows calculator in scientific mode. | |
79 | ||
80 | Don't forget that everything you change in save slot #1 also has to be changed in the COPY! |