Advertisement
eN-t

MM US VC save file manipulation - Documentation

Dec 15th, 2014
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MM US VC save file manipulation - Documentation
  2. --------------------------------------------------
  3.  
  4. The save data is stored in the EEP_NZSE file.
  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. Both 2 save slots are twice in that file, probably as a backup copy.
  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 (0x2000 bytes each):
  13. Slot #1: 0x00000 to 0x01FFF
  14. Slot #1 copy: 0x02000 to 0x03FFF
  15. Slot #2: 0x04000 to 0x05FFF
  16. Slot #2 copy: 0x06000 to 0x07FFF
  17.  
  18. Address of filename (0x8 bytes):
  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. Address of settings (targetting, audio, ...):
  25. 0x18000 to 0x18005
  26. (unsure on this one, didn't take a closer look)
  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. Space: 3E
  37. Dot: 40
  38. Hyphen: 3F
  39. --------------------------------------------------
  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 Spiderhouse code is 6 bytes. Each byte is 1 color of the code. The colors are 0123 = RBYG.
  47. The Spiderhouse colors are stored in the same order as ingame, so 0x00FF5 is the first color to hit.
  48.  
  49. The Bomber code is 5 bytes. Each byte is 1 digit of the Bomber code.
  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 checksum is 2 bytes. It is an unsigned short.
  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. --------------------------------------------------
  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. | ... |
  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. | 0x01000: 00 35 FA 74 01 01 FA FB 8A AC 6A 1F 00 00 00 00 |
  67. | ... |
  68. ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
  69. The filename here is "Link ". (Hex: 15 2C 31 2E 3E 3E 3E 3E)
  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.  
  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!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement