NokiDoki

SMS save format

Dec 24th, 2019
422
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. Offset Size
  2. 0000 0040 Directory entry
  3. 0000 0006 Game ID
  4. 0006 0001 Unused (0xFF)
  5. 0007 0001 Bit 0: Banner format (0 = RGB5A3, 1 = CI8)
  6. Bit 1: Banner present?
  7. Bit 2: Icon animation (0 = forward, 1 = ping-pong)
  8. 0008 0020 File name
  9. 0028 0004 Last modified (seconds since 01/01/2000 0:00:00)
  10. 002C 0004 Graphics offset in file
  11. 0030 0002 Icon GFX format (2 bits per icon)
  12. 00 = no icon
  13. 01 = CI8 with a shared palette after the last frame
  14. 10 = RGB5A3
  15. 11 = CI8 with a unique palette after the frame
  16. 0032 0002 Animation speed (2 bits per icon; x4 frames; 00 = no icon)
  17. 0034 0001 File permissions (2 = public, 3 = no copy, 4 = no move)
  18. 0035 0001 Copy counter
  19. 0036 0002 First block
  20. 0038 0002 Blocks used
  21. 003A 0002 Unused (0xFFFF)
  22. 003C 0004 Comments offset in file
  23.  
  24. 0040 2000 Block 1
  25. 0044 0020 Game name
  26. 0064 0020 File info
  27.  
  28. 0084 0C00 Banner
  29. 0C84 0200 Banner palette
  30. 0E84 0400 Icon 1
  31. 1284 0400 Icon 2
  32. 1684 0200 Icon palette
  33.  
  34. 1884 0004 Should be 0x00000002, otherwise reset options
  35. 1888 0001 Section 7 (rumble, surround, subtitles)
  36. 1889 0004 Section 8 (language)
  37.  
  38. 203C 0004 Block 1 checksum
  39.  
  40. 2040 2000 Block 2
  41. 2040 0004 Write counter
  42. 2044 0004 0x00000004
  43. 2048 0008 Last save time (ticks)
  44. 2050 0008 Zeroes
  45. 2058 0004 Save count (if 0, file is considered empty)
  46. 205C 0002 Shine count
  47. 205E 0042 Zeroes
  48. 20A0 0200 Section 1 (only takes 0x77 bytes, rest is zeroes)
  49. 22A0 0200 Section 2 (only takes 0x54 bytes, rest is zeroes)
  50.  
  51. 403C 0004 Block 2 checksum
  52.  
  53. Blocks 3-7 follow the same pattern as block 2. Each save file uses two blocks to avoid losing data: saving overwrites the oldest block (based on write counter), loading reads the most recent block.
  54. File A: blocks 2-3
  55. File B: blocks 4-5
  56. File C: blocks 6-7
Advertisement
Add Comment
Please, Sign In to add comment