Advertisement
LilPinkus

Plaid World notes

Oct 4th, 2017
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.59 KB | None | 0 0
  1. Flute X/Y coordinate mapped to underworld:
  2. ------------------------------------------
  3. 1: 13 = trock pokies 1 (dm)
  4. 2: 26 = above hookshot (pot shop) | transition down, then up, then down again to fix screen
  5. 3: 31 = hera beetle room (kakariko) |
  6. 4: 54 = sociable firebar (link's house)
  7. 5: 57 = skull bk (below eastern overworld)
  8. 6: 70 = some sewer room (desert)
  9. 7: 73 = desert big chest (swamp)
  10. 8: 77 = hera entrance (hylia)
  11.  
  12. Memory address span for each row in Plaid (BG2):
  13. ------------------------------------------------
  14. - $0x = $7F:2000-$7F:3000 (normal tilemap - you will be in-bounds if in sync)
  15. - $1x and onwards you add $1000 for each row.
  16. - For $Ex and $Fx it's wrapped around to $7E:0000 and $7E:1000.
  17.  
  18. Related memory addresses from the disassembly (not including $Ex and $Fx row cus that's basically the main RAM and is used for everything):
  19.  
  20. #######
  21. # $0x #
  22. #######
  23.  
  24. $7F2000[0x1000] - (Dungeon)
  25.  
  26. BG2 tile attribute table - (after the level/room has loaded), tile information for the room/map.
  27. In particular tells the game how to handle each 8x8 tile.
  28. For example, a chest will have the value 0x58 (or something similar) in 4 different locations, interlaced of course.
  29.  
  30. #######
  31. # $1x #
  32. #######
  33.  
  34. $7F3000[0x1000] - Tile Attribute table for BG1. Same as $7F2000 but for a different background.
  35.  
  36. #######
  37. # $2x #
  38. #######
  39.  
  40. $7F4000[0x800] - Decompression buffer for.... sprite stats and perhaps other
  41. crap too.
  42.  
  43. #######
  44. # $3x #
  45. #######
  46.  
  47. $7F5000[0x800] - free ram
  48.  
  49. $7F5800[0x0C] - (HappinessPondRupees)
  50.  
  51. Y speed of rupee.
  52.  
  53. $7F580A[0x0C] - (HappinessPondRupees)
  54.  
  55. X speed of rupee.
  56.  
  57. $7F5818[0x0C] - (HappinessPondRupees)
  58.  
  59. Z speed of rupee.
  60.  
  61. $7F5824[0x0C] - (HappinessPondRupees)
  62.  
  63. Low byte of rupee's Y coordinate.
  64.  
  65. $7F5830[0x0C] - (HappinessPondRupees)
  66.  
  67. High byte of rupee's Y coordinate.
  68.  
  69. $7F583C[0x0C] - (HappinessPondRupees)
  70.  
  71. Low byte of rupee's X coordinate.
  72.  
  73. $7F5848[0x0C] - (HappinessPondRupees)
  74.  
  75. High byte of rupee's X coordinate.
  76.  
  77. $7F5860[0x0C] - (HappinessPondRupees)
  78.  
  79. Countdown autotimer.
  80.  
  81. $7F586C[0x0C] - (HappinessPondRupees)
  82.  
  83. Indicates whether this rupee is active or not.
  84.  
  85. $7F586E[0x02] - (HappinessPondRupees)
  86.  
  87. Mysteriously unallocated... there's a gap
  88.  
  89. $7F587A[0x0C] - (HappinessPondRupees)
  90.  
  91. Animation index for splash state of the rupee.
  92.  
  93. $7F5886[0x0C] - (HappinessPondRupees)
  94.  
  95. Subpixel portion of rupee's Y coordinate.
  96.  
  97. $7F5892[0x0C] - (HappinessPondRupees)
  98.  
  99. Subpixel portion of rupee's X coordinate.
  100.  
  101. $7F589E[0x0C] - (HappinessPondRupees)
  102.  
  103. Subpixel portion of rupee's Z coordinate.
  104.  
  105. $7F58AA[0x0C] - (HappinessPondRupees)
  106.  
  107. 0 - In item state.
  108. 1 - In splash state.
  109. 2 - Scheduled for deactivation.
  110.  
  111. $7F5817[0x08] - (BreakTowerSeal)
  112.  
  113. Low byte of Y coordinate of the crystals. Note that this has 8 entries,
  114. though only 7 crystals are in the game both plot-wise and in general.
  115.  
  116. $7F581F[0x08] - (BreakTowerSeal)
  117.  
  118. High byte of Y coordinate of the crystals. Note that this has 8 entries,
  119. though only 7 crystals are in the game both plot-wise and in general.
  120.  
  121. $7F5827[0x08] - (BreakTowerSeal)
  122.  
  123. Low byte of X coordinate of the crystals. Note that this has 8 entries,
  124. though only 7 crystals are in the game both plot-wise and in general.
  125.  
  126. $7F582F[0x08] - (BreakTowerSeal)
  127.  
  128. High byte of X coordinate of the crystals. Note that this has 8 entries,
  129. though only 7 crystals are in the game both plot-wise and in general.
  130.  
  131. $7F5837[0x18] - (BreakTowerSeal)
  132.  
  133. Animation index for the sparkles that are generated near the swirling
  134. crystals.
  135.  
  136. $7F584F[0x18] - (BreakTowerSeal)
  137.  
  138. Low byte of Y coordinate for the sparkles that are generated near the
  139. swirling crystals.
  140.  
  141. $7F5867[0x18] - (BreakTowerSeal)
  142.  
  143. High byte of Y coordinate for the sparkles that are generated near the
  144. swirling crystals.
  145.  
  146. $7F587F[0x18] - (BreakTowerSeal)
  147.  
  148. Low byte of X coordinate for the sparkles that are generated near the
  149. swirling crystals.
  150.  
  151. $7F5897[0x18] - (BreakTowerSeal)
  152.  
  153. High byte of X coordinate for the sparkles that are generated near the
  154. swirling crystals.
  155.  
  156. $7F58AF[0x18] - (BreakTowerSeal)
  157.  
  158. Countdown timer for the sparkles generated near the swirling crystals.
  159. It's exact purpose is to provide the delay between changes of chr
  160. and property states for the crystals (See $7F5837)
  161.  
  162. $7F5934[0x01] - (BombosSpell)
  163.  
  164. Overall state indicator for the Bombos Spell.
  165. Only takes on values 0 through 2, but needs more research to find out what
  166. they mean.
  167.  
  168. 0 - Spawning of flame columns as they expand out.
  169. 1 - Wrap up flame column animation then transition to the blast phase.
  170. 2 - Blast phase
  171.  
  172. $7F5935[0x10] - (BombosSpell)
  173.  
  174. Animation index of Bombos blasts (explosions). Ranges from 0 to 8.
  175. 8 indicates an inactive state waiting to be reset.
  176.  
  177. $7F5B00[0xA0]
  178.  
  179. Array of sound settings for overworld areas. Each entry (byte) has the
  180. following format:
  181.  
  182. aaaammmm
  183.  
  184. aaaa - ambient sound effect number to play in that area ($012D).
  185. mmmm - song number to play in that area ($012C).
  186.  
  187. This array is preloaded with differing values depending on which stage of
  188. the game you're in. The stages are determined by $7EF3C5.
  189. (See $3C5 in Zelda_3_SRM.log)
  190.  
  191. $7F5BA0[0x60] - free ram
  192.  
  193. #######
  194. # $4x #
  195. #######
  196.  
  197. $7F6000[0x1000] - enemy damage related
  198.  
  199. #######
  200. # $5x #
  201. #######
  202.  
  203. $7F7000[0x1C0] - Used to generate the hdma table that the intro and outro spotlight effect uses
  204.  
  205. $7F71C0[0x4A7] - text / dialogue pointers (all of them!). Each one is a 3 byte long pointer.
  206.  
  207. $7F7667[0x6719] - free ram
  208.  
  209. #############
  210. # $6x - $Ax #
  211. #############
  212.  
  213. $7F7667[0x6719] - free ram
  214.  
  215. #######
  216. # $Bx #
  217. #######
  218.  
  219. $7F7667[0x6719] - free ram
  220.  
  221. $7FDD80[0x200]
  222.  
  223. Serves as a temporary buffer for storing a copy of the current palette buffer.
  224. Sometimes the contents of $7EC500 gets stored here, and other times it's $7EC300
  225. being preserved. The general idea here is that the game hopes to eventually
  226. (optionally) restore the palette to this set of colors later.
  227.  
  228. $7FDE00[0x180?] - ???
  229.  
  230. $7FDF80[0x0280] - (indoors) I think this is used to describe which rooms have had their sprites loaded (while in a dungeon)
  231. $7FDF80[0x1000] - (outdoors) Memory region that indicates where sprites are in the currently loaded overworld map (which map16 tile they're on)
  232.  
  233. #######
  234. # $Cx #
  235. #######
  236.  
  237. $7FDF80[0x1000] - (outdoors) Memory region that indicates where sprites are in the currently loaded overworld map (which map16 tile they're on)
  238.  
  239. $7FE200 - ???
  240.  
  241. $7FEF80[0x200]
  242.  
  243. death status for the overworld sprites?
  244.  
  245. #######
  246. # $Cx #
  247. #######
  248.  
  249. $7FEF80[0x200] - death status for the overworld sprites?
  250.  
  251. $7FF180[0x680] - free ram? Can't be 100% certain yet.
  252.  
  253. $7FF800[0x1E] - (Garnish)
  254.  
  255. Mostly superficial graphical entities (hence, "Garnish"). The only one that
  256. is known to damage the player are the Ganon Bat Flames.
  257.  
  258. $7FF81E[0x1E] - (Garnish)
  259.  
  260. Low byte of Y coordinate.
  261.  
  262. $7FF83C[0x1E] - (Garnish)
  263.  
  264. Low byte of X coordinate.
  265.  
  266. $7FF85A[0x1E] - (Garnish)
  267.  
  268. High byte of Y coordinate.
  269.  
  270. $7FF878[0x1E] - (Garnish)
  271.  
  272. High byte of X coordinate.
  273.  
  274. $7FF896[0x1E] - (Garnish)
  275.  
  276. Y velocity of object.
  277.  
  278. $7FF8B4[0x1E] - (Garnish)
  279.  
  280. X velocity of object.
  281.  
  282. $7FF8D2[0x1E] - special animation unknown 3
  283. $7FF8F0[0x1E] - special animation unknown 4
  284.  
  285. $7FF90E[0x1E] - (Garnish)
  286.  
  287. Countdown timer. Most Garnish objects just self terminate once this
  288. counts down.
  289.  
  290. $7FF92C[0x1E] - (Garnish)
  291.  
  292. The index of the object's parent sprite object, if applicable.
  293.  
  294. Some garnish objects use this as the floor designator, but they are far
  295. in the minority. Most use $7FF968 instead.
  296.  
  297. $7FF94A[0x1E] - special animation unknown 5
  298.  
  299. $7FF968[0x1E] - (Garnish)
  300.  
  301. Floor selector for garnish objects. Analogous to the the kinds of config
  302. data that Ancilla ( $0C7C, X ) and Sprite ( $0F20, X ) have.
  303.  
  304. 0 - BG2
  305. 1 - BG1
  306.  
  307. $7FF986[0x1E] - special animation unknown 7
  308. $7FF9A4[0x1E] - special animation unknown 8
  309.  
  310. $7FF9C2[0x10] - (Sprite, Garnish?)
  311.  
  312. Sprite tile interaction value. Acquires its value from $0FA5.
  313.  
  314. $7FF9D2[0x2C] - Free ram?
  315.  
  316. $7FF9FE[0x1E] - (Garnish)
  317.  
  318. special animation unknown B
  319.  
  320. $7FFA1C[0x10] - Array that seems to handle the objects you hold above your head?
  321. $7FFA2C[0x10] -
  322. $7FFA3C[0x10] - Indicates stunned and frozen sprite?
  323. $7FFA4C[0x10] -
  324. $7FFA5C[0x10] -
  325. $7FFA6C[0x10] -
  326. $7FFA7C[0x10] -
  327. $7FFA8C[0x10] -
  328. $7FFA9C[0x10] -
  329. $7FFAAC[0x10] -
  330. $7FFABC[0x10] -
  331.  
  332. ????
  333.  
  334. $7FFACC[0x10] -
  335. $7FFADC[0x10] -
  336. $7FFAEC[0x10] - free ram?
  337. $7FFAFC[0x10] - free ram?
  338. $7FFB0C[0x10] - free ram?
  339. $7FFB1C[0x10] - used, but unknown
  340. $7FFBDC[0x10] - used, but unknown
  341.  
  342. ; most of these seem to be referenced for Helmasaur King's tail (maybe other bosses too)
  343.  
  344. $7FFC00[??] - unknown
  345. $7FFC80[??] - unknown
  346.  
  347. $7FFC9C[0x10?] - used, but unknown
  348.  
  349. $7FFD00[??] - unknown
  350.  
  351. $7FFD5C[0x01] - apparently Ganon related
  352. $7FFD68[0x01] - apparently Ganon related
  353.  
  354. $7FFC00[0x0080] - unknown
  355.  
  356. $7FFC80[0x0080] - unknown
  357.  
  358. $7FFD00[0x0080] - unknown
  359.  
  360. $7FFD80[0x0080] - unknown
  361.  
  362. $7FFE00[0x0080] - (Statue Sentry)
  363.  
  364. X coordinate high byte for laser sprites.
  365.  
  366. $7FFE80[0x0080] - (Statue Sentry)
  367.  
  368. Y coordinate low byte for laser sprites.
  369.  
  370. $7FFF00[0x0080] - (Statue Sentry)
  371.  
  372. Y coordinate high byte for laser sprites.
  373.  
  374. $7FFE00[0x0100] - (Lanmolas)
  375.  
  376. Display of rock sprites, I think
  377.  
  378. $7FFF00[0x0100] - (Lanmolas)
  379.  
  380. Lanmolas use it for display of its rock sprites, I think.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement