Advertisement
Guest User

Stim.asm

a guest
Sep 24th, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.73 KB | None | 0 0
  1. header
  2. lorom
  3.  
  4. ;------------------;
  5. ; Defines ;
  6. ;------------------;
  7.  
  8. !FreeSpace = $278000
  9. !FreeRAMz = $010B ; Used for level number. Make sure it's the same one as the one in levelASM, if you use levelASM.
  10. !FreeRAM = $7EC287 ; 4 RAM addresses! ($7EC287-$7EC28A)
  11.  
  12. ;------------------;
  13. ; Hijax ;
  14. ;------------------;
  15.  
  16. org $008DAC
  17. JML AutoStim
  18.  
  19. org $00A5E8
  20. JML LevelStim
  21.  
  22. ORG $05D8B9
  23. JSR Levelnummain
  24.  
  25. ORG $05DC46
  26. Levelnummain: LDA $0E ;Load level number
  27. STA !FreeRAMz ;Store it in free stack RAM
  28. ASL A ;Multiply A by 2, probably to recover old code?
  29. RTS ;Return from subroutine
  30.  
  31. ;------------------;
  32. ; Custom Routine ;
  33. ;------------------;
  34.  
  35. org !FreeSpace
  36.  
  37. !CodeSize = End-AutoStim
  38.  
  39. db "STAR"
  40. dw !CodeSize-$01
  41. dw !CodeSize-$01^$FFFF
  42.  
  43. AutoStim:
  44. PHB ; Wrapper.
  45. PHK ;
  46. PLB ;
  47. REP #$30 ; AXY = 16-bit.
  48. LDA $010B ; \ Level number : 8 in Y.
  49. PHA ; | Level number - AND #$0007 in X.
  50. LSR A ; |
  51. LSR A ; |
  52. LSR A ; |
  53. TAY ; |
  54. PLA ; |
  55. AND #$0007 ; |
  56. TAX ; /
  57. SEP #$20 ; A = 8-bit.
  58. LDA.w LevelTable,y ; \ Check if Layer 3 image is supposed to be uploaded.
  59. AND.w ANDTable,x ; |
  60. SEP #$10 ; XY = 8-bit.
  61. BEQ Return ; / If not, return.
  62. LDA !FreeRAM+3 ; \ If run once, return.
  63. BNE Return ; /
  64. LDA #$01 ; \
  65. STA !FreeRAM+3 ; /
  66. REP #$20 ; A = 16-bit.
  67. LDA !FreeRAM ; \ Get address to upload in pointer.
  68. STA $00 ; |
  69. SEP #$20 ; |
  70. LDA !FreeRAM+2 ; |
  71. STA $02 ; /
  72. PHK ; \ Jump to stripe image upload routine.
  73. PER Return-1 ; |
  74. PEA $84CE ; |
  75. JML $00871E ; /
  76.  
  77. Return:
  78. STZ $2115 ; Original hijack.
  79. LDA #$42
  80. PLB
  81. JML $008DB1
  82.  
  83. ANDTable:
  84. db $80,$40,$20,$10,$08,$04,$02,$01 ; Don't change.
  85.  
  86. LevelTable:
  87. db %01000000,%00000000 ; Levels 0-F
  88. db %00000000,%00000000 ; Levels 10-1F
  89. db %00000000,%00000000 ; Levels 20-2F
  90. db %00000000,%00000000 ; Levels 30-3F
  91. db %00000000,%00000000 ; Levels 40-4F
  92. db %00000000,%00000000 ; Levels 50-5F
  93. db %00000000,%00000000 ; Levels 60-6F
  94. db %00000000,%00000000 ; Levels 70-7F
  95. db %00000000,%00000000 ; Levels 80-8F
  96. db %00000000,%00000000 ; Levels 90-9F
  97. db %00000000,%00000000 ; Levels A0-AF
  98. db %00000000,%00000000 ; Levels B0-BF
  99. db %00000000,%00000000 ; Levels C0-CF
  100. db %00000000,%00000000 ; Levels D0-DF
  101. db %00000000,%00000000 ; Levels E0-EF
  102. db %00000000,%00000000 ; Levels F0-FF
  103. db %00001110,%00000000 ; Levels 100-10F
  104. db %00000000,%00000000 ; Levels 110-11F
  105. db %00000000,%00000000 ; Levels 120-12F
  106. db %00000000,%00000000 ; Levels 130-13F
  107. db %00000000,%00000000 ; Levels 140-14F
  108. db %00000000,%00000000 ; Levels 150-15F
  109. db %00000000,%00000000 ; Levels 160-16F
  110. db %00000000,%00000000 ; Levels 170-17F
  111. db %00000000,%00000000 ; Levels 180-18F
  112. db %00000000,%00000000 ; Levels 190-19F
  113. db %00000000,%00000000 ; Levels 1A0-1AF
  114. db %00000000,%00000000 ; Levels 1B0-1BF
  115. db %00000000,%00000000 ; Levels 1C0-1CF
  116. db %00000000,%00000000 ; Levels 1D0-1DF
  117. db %00000000,%00000000 ; Levels 1E0-1EF
  118. db %00000000,%00000000 ; Levels 1F0-1FF
  119. ; This table determines which levels should upload a stripe image, and which levels should not.
  120. ; 0 = don't upload stripe image, 1 = do upload stripe image.
  121.  
  122. LevelStim:
  123. LDX $0701 ; Original hijack.
  124. STX $0903
  125. LDA $010B
  126. ASL A
  127. CLC
  128. ADC $010B
  129. TAX
  130. LDA.l LayerPointerTable,x
  131. STA !FreeRAM
  132. SEP #$20
  133. LDA.l LayerPointerTable+2,x
  134. STA !FreeRAM+2
  135. LDA #$00
  136. STA !FreeRAM+3
  137. REP #$20
  138. JML $00A5EE
  139.  
  140. LayerPointerTable:
  141. dl LayerImg1, Clouds, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 0-F
  142. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 10-1F
  143. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 20-2F
  144. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 30-3F
  145. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 40-4F
  146. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 50-5F
  147. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 60-6F
  148. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 70-7F
  149. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 80-8F
  150. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 90-9F
  151. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels A0-AF
  152. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels B0-BF
  153. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels C0-CF
  154. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels D0-DF
  155. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels E0-EF
  156. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels F0-FF
  157. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 100-10F
  158. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 110-11F
  159. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 120-12F
  160. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 130-13F
  161. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 140-14F
  162. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 150-15F
  163. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 160-16F
  164. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 170-17F
  165. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 180-18F
  166. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 190-19F
  167. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1A0-1AF
  168. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1B0-1BF
  169. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1C0-1CF
  170. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1D0-1DF
  171. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1E0-1EF
  172. dl LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1, LayerImg1 ; Levels 1F0-1FF
  173. ; Per-level pointer to stripe image tables.
  174.  
  175. Clouds:
  176. incbin smwl3clouds.stim
  177.  
  178. LayerImg1:
  179. incbin stim.stim
  180.  
  181. End:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement