Advertisement
rubixcuber

SMB2 Level Data

Nov 2nd, 2020
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. GetLevelPointers x1F764
  2.  
  3. x010010 to 0x010024 - Level starting areas
  4.  
  5. 0x010025 to 0x0100F6 (0001a4) = Level Pointers (low byte)
  6. 0x0100F7 to 0x0101C8 (0001a4) = Level Pointers (high byte)
  7.  
  8. x12510-x12524 Level Enemy High Bank Pointers (high byte)
  9. x12525-x12539 Level Enemy High Bank Pointers (low byte)
  10.  
  11. x1253A-x1254E Level Enemy Low Bank Pointers (high byte)
  12. x1254F-x12563 Level Enemy Low Bank Pointers (low byte)
  13.  
  14. 0x01FE10 to 0x01FE16 (000006) = Sprite set for Worlds 1-7 (known valid values: 0C, 0D, 0E, 0F)
  15. 0x01FE17 to 0x01FE1D (000006) = Landscape set for Worlds 1-7 (known valid values: 0A, 10, 12, 14, 16)
  16.  
  17. x12564-x12707 Area Enemy Pointers
  18. Grouped by level, high bytes followed by low bytes
  19.  
  20.  
  21. 0XC454-0xC613
  22. Ground Styles
  23. Per world
  24. 4 Bytes per style- Empty, Ground, Top, Cave/Gap
  25. 8 Horizontal Styles
  26. 8 Vertical Styles
  27.  
  28. 0x0101C9 to 0x012433 (00226b) = Level Data
  29.  
  30. Level Header 4 Bytes, 32 Bits
  31. Byte 1
  32. 80 - Horizontal if True
  33. 40 - ?
  34. 38 - Palette
  35. 04 - ?
  36. 03 - Enemy Palette
  37. Byte 2
  38. E0 - ?
  39. 1F - Ground
  40.  
  41. Byte 3
  42. F0 - Level Length (-1)
  43. 0F - Object Type
  44.  
  45. 1
  46. Bricks->Wood
  47. X Blocks->Sand
  48. Brick Column->Black
  49. 2
  50. Bricks->X Blocks
  51. X Blocks->X Blocks
  52. Brick Column->Bombable
  53. 3
  54. Bricks->X Blocks
  55. X Blocks->X Blocks
  56. Brick Column->Bricks
  57.  
  58.  
  59.  
  60. 4 Ladder->Chain
  61. 8 Ladder->Dark Ladder?
  62. Byte 4
  63. 38 - Ground Tileset
  64.  
  65. 03 - Music
  66.  
  67. Objects 2 Bytes Each
  68. Byte 1 = YX Y is an offset from last object Y, all objects sorted by Y
  69. (XY on horizontal levels?)
  70. Byte 2 = Object #
  71.  
  72.  
  73. If Byte 1 = FS Then Special Object
  74. F0 = Ground Setting
  75. 1 Byte
  76. XXXGGGGG - Switch to Ground G at X
  77. F1 = Ground Setting
  78. 1 Byte
  79. XXXGGGGG - Switch to Ground G at X+8
  80. F2 = Skip one screen of objects
  81. F3 = Skip two screens of objects
  82. F4 = Goes back to start of level, next Z layer
  83. F5 = Pointer - Used by objects with optional exits (vines, ladders, jars)
  84. 2 Bytes
  85. F6 = Change Ground Type
  86. 1 Byte
  87. ????TTTT - Switch whole level ground type to T?
  88.  
  89. Pointers 2 Bytes? Follow Doors / Jars
  90. Byte 1 = LL Level
  91. Byte 2 = AS A=Area S=Screen
  92. Loads 'level' L + A and drops player at screen S, will use door if at mirrored position
  93.  
  94. FF
  95.  
  96.  
  97.  
  98.  
  99. GetEnemyPointers x1F78D
  100. Enemies
  101. Stored by Screen
  102. 1 Byte - total byte length for screen (1 + 2 * Num Enemies)
  103. 2 Bytes per enemy
  104. NN - Enemy Number
  105. XY - X,Y position relative to screen
  106.  
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement