Advertisement
Tyler_Elric

Super SNES

Sep 2nd, 2012
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. #define CURRENTLEVEL 0x8001
  2. #define TOTALSCORE 0x8003
  3. #define HAS_POKEMON FR_POKEMON
  4. #define PLAYER_PKMN 0x4000
  5. #define HIGH_SCORE 0x4001
  6. #define TIMES_PLAYED 0x4002
  7.  
  8. #define BULBASAUR_MAX 10
  9. #define CHARMANDER_MAX 20
  10. #define SQUIRTLE_MAX 30
  11. #define CHIKORITA_MAX 40
  12. #define CYNDAQUIL_MAX 50
  13. #define TOTODILE_MAX 60
  14. #define TREECKO_MAX 70
  15. #define TORCHIC_MAX 80
  16.  
  17. #define NUMLEVELS 10
  18.  
  19. #define TOTALSCORE_B 0x03
  20. #define VARBANK_A_1 0x0203F4D8
  21. #define TOTALSCORE_A 0x80
  22. #define VARBANK_A_2 0x0203F4D9
  23. #define LASTRESULT_B 0x0D
  24. #define VARBANK_B_1 0x0203F4DA
  25. #define LASTRESULT_A 0x80
  26. #define VARBANK_B_2 0x0203F4DB
  27.  
  28. '@main <-> 0x740001 (0x7A bytes)
  29. '-> :loop-top <-> 0x74002A
  30. '-> :end <-> 0x74003F
  31. '-> :true-end <-> 0x740079
  32. '@set_hs_to_zero <-> 0x74007B (0x6 bytes)
  33. '@new_highscore <-> 0x740081 (0x20 bytes)
  34. '@set_starter_var <-> 0x81BC49 (0xAE bytes)
  35. '-> :check-char <-> 0x81BC5E
  36. '-> :check-squi <-> 0x81BC73
  37. '-> :check-chik <-> 0x81BC88
  38. '-> :check-cynd <-> 0x81BC9D
  39. '-> :check-toto <-> 0x81BCB2
  40. '-> :check-tree <-> 0x81BCC7
  41. '-> :check-torch <-> 0x81BCDC
  42. '-> :set_mudkip <-> 0x81BCF1
  43. '-> :ssend <-> 0x81BCF6
  44. '@play_level <-> 0x81BCF7 (0x34 bytes)
  45. '@playing_level <-> 0x81BD36 (0x26 bytes)
  46. '@finished <-> 0x81BD5C (0x20 bytes)
  47. '@want_play <-> 0x81BD7C (0x26 bytes)
  48.  
  49.  
  50. #dyn 0x740000
  51. #org @main
  52. lock
  53. msgbox @want_play
  54. callstd MSG_YESNO
  55. compare LASTRESULT NO
  56. if == jump :true-end
  57. compare TIMES_PLAYED 1
  58. if < call @set_hs_to_zero
  59. setvar CURRENTLEVEL 1
  60. setvar TOTALSCORE 0
  61. :loop-top
  62. call @play_level
  63. compare CURRENTLEVEL NUMLEVELS
  64. if == jump :end
  65. jump :loop-top
  66. :end
  67. addvar TIMES_PLAYED 1
  68. storevar 0 TOTALSCORE
  69. msgbox @finished
  70. callstd MSG_NORMAL
  71. checkflag HAS_POKEMON
  72. if 0x1 call @set_starter_var
  73. comparevars2 TOTALSCORE HIGH_SCORE
  74. if <= jump :true-end
  75. storevar 0 HIGH_SCORE
  76. storevar 1 TOTALSCORE
  77. msgbox @new_highscore
  78. callstd MSG_NORMAL
  79. copyvar HIGH_SCORE TOTALSCORE
  80. :true-end
  81. release
  82. end
  83.  
  84. #org @set_hs_to_zero
  85. setvar HIGH_SCORE 0
  86. return
  87.  
  88. #org @new_highscore
  89. = My high-score of \v\h02\n is now \v\h03!
  90.  
  91. #org @set_starter_var
  92. compare TOTALSCORE BULBASAUR_MAX
  93. if > jump :check-char
  94. setvar PLAYER_PKMN BULBASAUR
  95. jump :ssend
  96. '-----------------------
  97. :check-char
  98. compare TOTALSCORE CHARMANDER_MAX
  99. if > jump :check-squi
  100. setvar PLAYER_PKMN CHARMANDER
  101. jump :ssend
  102. '-----------------------
  103. :check-squi
  104. compare TOTALSCORE SQUIRTLE_MAX
  105. if > jump :check-chik
  106. setvar PLAYER_PKMN SQUIRTLE
  107. jump :ssend
  108. '-----------------------
  109. :check-chik
  110. compare TOTALSCORE CHIKORITA_MAX
  111. if > jump :check-cynd
  112. setvar PLAYER_PKMN CHIKORITA
  113. jump :ssend
  114. '-----------------------
  115. :check-cynd
  116. compare TOTALSCORE CYNDAQUIL_MAX
  117. if > jump :check-toto
  118. setvar PLAYER_PKMN CYNDAQUIL
  119. jump :ssend
  120. '-----------------------
  121. :check-toto
  122. compare TOTALSCORE TOTODILE_MAX
  123. if > jump :check-tree
  124. setvar PLAYER_PKMN TOTODILE
  125. jump :ssend
  126. '-----------------------
  127. :check-tree
  128. compare TOTALSCORE TREECKO_MAX
  129. if > jump :check-torch
  130. setvar PLAYER_PKMN TREECKO
  131. jump :ssend
  132. '-----------------------
  133. :check-torch
  134. compare TOTALSCORE TORCHIC_MAX
  135. if > jump :set_mudkip
  136. setvar PLAYER_PKMN TORCHIC
  137. jump :ssend
  138. '-----------------------
  139. :set_mudkip
  140. setvar PLAYER_PKMN MUDKIP
  141. :ssend
  142. return
  143.  
  144. #org @play_level
  145. random 0xA
  146. writebytetooffset TOTALSCORE_B VARBANK_A_1
  147. writebytetooffset TOTALSCORE_A VARBANK_A_2
  148. writebytetooffset LASTRESULT_B VARBANK_B_1
  149. writebytetooffset LASTRESULT_A VARBANK_B_2
  150. special 0x3e
  151. storevar 0 CURRENTLEVEL
  152. storevar 1 LASTRESULT
  153. msgbox @playing_level
  154. callstd MSG_NORMAL
  155. addvar CURRENTLEVEL 1
  156. return
  157.  
  158. #org @playing_level
  159. = I'm playing level \v\h02!\nMy score is \v\h03.
  160.  
  161. #org @finished
  162. = Awesome, my final score was \v\h02!
  163.  
  164. #org @want_play
  165. = Hey, it's my SNES, do I want to play?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement