Dashman

SRW MX Portable hacking notes

Sep 23rd, 2014
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. SRW MX Portable hacking notes
  2.  
  3. Files with text (so far):
  4.  
  5. BATTLE2.BIN, MAP_ADD.BIN, STATIC2_ADD.BIN, BOOT.BIN
  6.  
  7. -----------------------------
  8.  
  9. BATTLE2.BIN:
  10.  
  11. * First battle quote found at 00075ce4 (Baron Ashura's lines?).
  12. * The 296 bytes right before those could look like a pointer table at first, but the numbers don't add up. It's probably the voice IDs of each line.
  13. * The block seems to start at 00075800.
  14. * If there's anything resembling a pointer table in this, I'm not seeing it.
  15. * The character name isn't written anywhere (it's probably inside BOOT.BIN).
  16. * Bytes 24 - 25 have the start of the list of (possible) voice IDs (little-endian).
  17. * Bytes 26 - 27 have the start of the battle quotes inside the block(little-endian).
  18. * With the previous two values, it's easy to determine the number of battle quotes in the file (each "voice ID" is 4 bytes long).
  19.  
  20. * The first block seems to end at 00076800, setting its size to 4096 bytes.
  21. * These blocks seem to be 2048-byte alligned, judging from the massive padding.
  22.  
  23. * Last block of battle quotes seem to start at 0031a008 and end at some point before 0031c000.
  24.  
  25.  
  26.  
  27. -----------------------------
  28.  
  29. MAP_ADD.BIN:
  30.  
  31. * There's a section with names at 02aa8000. Seems to be location names.
  32.  
  33. * Magic word is "MPTI" (ASCII, no quotations).
  34. * Next 4 bytes seem to indicate the number of entries (630 or 0x0276 in little-endian).
  35.  
  36. * Each of the location names is inside a 52 byte block that ends with 0xc0 ('À' in ASCII), usually preceded by 0x11.
  37. * The first location of the list only takes 34 bytes, though.
  38. * The second location has empty data.
  39. * First 18 bytes of each 52-byte block contain unknown data instead of text (probably other parameters of the terrain).
  40. * Some of these names are separated in several lines using the @ character in ASCII.
  41.  
  42. * There's a ton of empty entries.
  43. * Ends at 02ab5800 (where a bunch of UNTD blocks start)
  44.  
  45. ----------
  46.  
  47. * Text blocks start at 02bce000, right after the UNTD blocks end.
  48. * I haven't found any pointer table for these blocks, maybe it's inside a different file. Or it might not matter at all, in which case, congratulations.
  49.  
  50. * Magic word for the block: "SRWL" (ASCII, no quotations).
  51. * 4 bytes after that: ?
  52. * 4 bytes after: number of dialogues.
  53. * 4 bytes after: offset of pointer table for dialogues.
  54. * Next 8 bytes: FF FF FF FF FF FF FF FF.
  55. * Values are little-endian.
  56.  
  57. * Table seems to be 16-byte alligned.
  58. * Each pointer in the table is 4 bytes long.
  59. * Text blocks seem to be 2048-bytes alligned (there's always a lot of unused space at the end).
  60.  
  61. * The end of a dialogue is signaled by a 00 byte.
  62. * Carriage returns are signaled with an @ character in ASCII.
  63. * The original character and mech names seem to use special codes starting with a # character in ASCII:
  64. - #男姓名 is the male character's name.
  65. - #女姓名 is the female character's name.
  66. - #男愛称 is the male character's nickname.
  67. - #女愛称 is the female character's nickname.
  68. - #機体名 is the original mech's name.
  69.  
  70. (Of course, there could be more codes, if something else is named)
  71.  
  72. * The last text block seems to end at 03315000 (The start of a PADT block).
  73.  
  74. -----------
  75.  
  76. * The PADT block seems to contain test data. However, there are some seishin and ability names spliced around the block. Might be worth taking a look.
  77. * Ends at 033457f0 (start of SDAT blocks).
  78.  
  79.  
  80.  
  81. -----------------------------
  82.  
  83. STATIC2_ADD.BIN:
  84.  
  85. * Skills, weapons, unit, song and character names and other stuff like Character / Robot Library entries can be found here.
  86. * There's multiple sections, each containing a type of strings.
  87. * Strings are separated by 00 bytes.
  88. * There's a pointer table right before each section. First 4 bytes is the number of entries in the table. Each pointer is 4 bytes long.
  89. * For example, a pointer table starts at 001c08cc. The text it points to is right after it, at offset 001c5b70.
  90. * It's essentially the same as add02dat.bin in GC.
  91.  
  92.  
  93. -----------------------------
  94.  
  95. BOOT.BIN:
  96.  
  97. (This has a TON of stuff in several places and will require a bit of ASM hacking to expand)
Add Comment
Please, Sign In to add comment