Advertisement
NovaYoshi

Nova the Squirrel 2 level format

Jun 1st, 2019
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. .---------------------------------------
  2. | Level header
  3. '---------------------------------------
  4.  
  5. 0 1 2 3
  6. DMMMMMMM XXXXXXXX VvLI.... ...YYYYY
  7. D = If 1, player starts facing left
  8. M = Background music
  9. X = Starting X position (or Y position, for vertical levels)
  10. v = Enable vertical scrolling (or horizontal scrolling, for vertical levels)
  11. V = Vertical level
  12. L = Layer 2 level
  13. I = Layer 2 interaction
  14. Y = Starting Y position (or X position, for vertical levels)
  15. Room for more flags
  16.  
  17. 4 5
  18. gggrrrrr .bbbbbgg
  19. RGB Level background color
  20.  
  21. 6 7
  22. BBBBBBBB ........
  23. B = Background ID (or 255 for no background)
  24. Room for more flags
  25.  
  26. 8 9 10 11
  27. llllllll LLLLLLLL ssssssss SSSSSSSS
  28. l = Low byte of level data pointer
  29. L = High byte of level data pointer
  30. s = Low byte of sprite list pointer
  31. S = High byte of sprite list pointer
  32.  
  33. 12 13
  34. abcdefgh ijklmno.
  35. Insert vertical scroll barriers between screens:
  36. Bits: a b c d e f g h i j k l m n o
  37. Screens: 0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F
  38.  
  39. 14 15 16 17 18 19 20 21
  40. Eight 8-bit sprite graphic slot values
  41.  
  42. 22+
  43. gggggggg GGGGGGGG
  44. gG = 16-bit graphical asset list, could be a palette, tiles, or whatever
  45.  
  46. ??
  47. 11111111 11111111
  48. End of graphic asset list
  49.  
  50. .---------------------------------------
  51. | Background settings
  52. '---------------------------------------
  53. 0 1
  54. TWvvvhhh ........
  55. T = If 1, background is two screens tall
  56. W = If 1, background is two screens wide
  57. v = Vertical speed of background (index into same, but also controls )
  58. h = Horizontal speed of background (index into 1:1, 1:2, 1:4, 1:8, 1:16, 1:32 or 1:64)
  59. Room for some more flags
  60.  
  61. After this is a compressed tilemap. Tileset is listed in the per-level tileset.
  62.  
  63. .---------------------------------------
  64. | Level data
  65. '---------------------------------------
  66. Level data:
  67. TTTTTTTY YYYYXXXX [SSSSSSSS]
  68. T - Object type (0-111)
  69. Y - Y position absolute (0-31)
  70. X - X position relative (0-15)
  71. S - Settings byte, if needed
  72. (may be more than one byte)
  73.  
  74. .---------------------------------------
  75. | Level data (commands)
  76. '---------------------------------------
  77. Level commands
  78. 1111TTTT [SSSSSSSS]
  79. T - 0 level is over, stop processing
  80. 1 set X to S
  81. 2 write 1 column byte at current column
  82. 3 write 2 column bytes starting at this column
  83. 4 write 3 column bytes starting at this column
  84. 5 current X -= 16
  85. 6 current X += 16
  86. 7 special command (S selects which one, and additional parameters are taken)
  87. 8-F: Reserved
  88.  
  89. Special commands:
  90. (Numbers not assigned)
  91. Switch to filling in the alternate level
  92. Layer 3 effects
  93. Per-level assembly routine
  94.  
  95. .---------------------------------------
  96. | Sprite/actor data
  97. '---------------------------------------
  98. XXXXXXXX D..YYYYY tttttttt abcdTTTT
  99. tT - Sprite number (T is higher bits)
  100. D - direction (1 is left)
  101. abcd - misc sprite information
  102. X - X position (0-255) (or Y position for vertical levels)
  103. Y - Y position (0-31) (or X position for vertical levels)
  104. List ends in $ff (so you can't put anything on the rightmost column)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement