EMU618社区

 找回密码
 立即注册
搜索
查看: 2233|回复: 55

[原创FC/FDS-HACK] [FC][忍者神龟3][END选关]

  [复制链接]

签到天数: 39 天

[LV.5]常住居民I

发表于 2017-3-31 14:40:49 | 显示全部楼层 |阅读模式
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
$ t& u/ N7 S. a; m$ D5 R# h4 q# q) Z
[FC][忍者神龟3][END选关]/ l. V+ ?4 [  |

% {5 d/ ]- i3 ~  z" }时间:2017.3.30
# n' S6 `- D5 \$ a" N; h; x! w作者:FlameCyclone% ^+ [! X5 q& y* I/ N5 B- Z6 d2 G0 o
内容:
( y1 H7 [5 r" f; [/ F    1.关卡选择:   标题时,左或B减,右或A加;
. K' p  R$ L6 v# S    2.全屏击杀:   暂停后,按A键切换;
3 p& o; W" j4 o5 N, H    3.一击必杀:   暂停后,按B键切换;
  1. .ORG $FEA0
    * W& \. Y- l0 L0 p0 {
  2. ora_data:& ^- o+ n; ]- N
  3. .BYTE $08,$04,$02,$01,$80,$40,$20,$10
    ; O# p+ j/ N7 ~& P; P) {, c" C5 [
  4. and_data:
    6 x* F' x5 [' l  v
  5. .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF* L3 n- ]9 P# y1 g, |# |0 z

  6. 0 c% f0 ]1 z6 m9 m4 L1 X* k
  7. button = $F8
    3 P! N8 B0 F: y* g$ z% I) R
  8. flag = $6000
    & p8 z1 U$ H3 [1 ~$ J
  9. pause = $0045
    / s9 G( M, U  {0 K, L$ s2 w6 m& D' s' x
  10. 1 N0 f1 R) y( Q3 M
  11. - b8 U$ M! B: y$ {; x  Y: H1 @
  12. .ORG $F90D
    7 V  ]* Y) S2 d# P& E/ Z
  13. JSR $FEC09 j2 p  b) t8 x/ D5 H) L
  14. 0 T% p$ C! h3 G, A; R4 _1 G  ]- B
  15. .ORG $FEC0! |) Z( p4 ^# b
  16. STA $54,X# B- y# k4 A: \  Q, V3 [) g
  17. STY $FA,X
    5 Y( Q$ q4 B5 C9 h4 z
  18. PHA
    / q2 M5 V+ e; g6 V: n" H# y  w) p8 @
  19. TXA7 M* H# n1 i2 s4 h  L
  20. PHA
    $ A- g8 x, W5 _9 x
  21. TYA6 F) K/ @5 n/ E
  22. PHA
    . j- S: R. E2 N0 K
  23. JSR KEY_OPERATE
    ; @; `* n* a2 I/ {& J! G
  24. JSR INV
    / D- F# u! r5 _' A4 x
  25. JSR LIFE3 U; w; ]8 H4 T# c8 u/ L. Q/ `
  26. JSR BLOOD
    0 g! x  B& N* E' @/ b& L. z
  27. PLA
    2 I: F% d  x( e- S" F$ M
  28. TAY
    2 b/ p- c9 i5 q# ]) f
  29. PLA
    ) b% ^5 {' O, j! m: w  @( e
  30. TAX9 m: V4 Z# b- c6 @: }$ M+ E1 d
  31. PLA0 C$ X$ y0 |3 k5 a- U
  32. RTS  _/ r/ l( ^7 n7 H" x
  33. KEY_OPERATE:) ?9 p1 g8 `9 a4 ~
  34. data_protect:
    , n0 }4 z' G* |" `. ]
  35. PHA
    " ^2 c) Q* Q8 R# L: Q/ _
  36. TXA& u( i3 D2 G; D; ]* l' z5 t0 H3 J
  37. PHA
      o" B1 i% k+ h5 @
  38. TYA
    ) ^" ^/ I7 E7 o5 M! W6 \
  39. PHA
    ; B7 ?2 }+ M. K' ^! p

  40. ; ~0 F  @' Y! M
  41. FLAG_CMP:$ I4 ]7 G0 T/ z& J
  42. LDA $600F
    # d6 ?9 `( f2 B6 b% \1 o* g
  43. CMP #$7F    ;标志数据初始化条件判断
    # Y. J# X: P; q3 `* |5 c0 B
  44. BEQ pause_cmp
    9 F5 n& q% r9 U
  45. LDA #$80# h2 t! v' r2 `1 b- s
  46. STA $A001    ;6000-7FFF写入启用# M0 S  i3 i: b9 \
  47. LDA #$00
      t, K- U6 a0 t# t4 K) r' V% H4 ~2 y
  48. STA $6000    ;数据初始化+ M4 p' f0 P+ f& F8 B  K
  49. STA $6001    ;数据初始化2 x8 j8 M- p8 B6 {% {3 w1 T
  50. LDA #$7F
    % w6 d7 k9 J; ?( ]
  51. STA $600F) E, ?  I8 ]  o7 }% Z% _2 k; Y
  52. pause_cmp:0 }- o& k2 M9 `) j" A
  53. LDA pause/ w/ K4 j- c' t' K( ^6 M8 h
  54. CMP #$01
    4 S: h& M8 p$ w
  55. BEQ button_press
    / g- A1 O/ P7 F) q
  56. PLA  i! O4 V+ C* ]) f4 K
  57. TAY8 M- ?% o! h0 W
  58. PLA) O/ d0 i. {7 ^
  59. TAX
    9 h* w3 ~1 Z$ G4 Y' h  ?
  60. PLA/ T4 S' q1 g' H5 t$ ~# C
  61. RTS
    2 \& o/ _! S% g" h. o

  62. 1 ~$ y0 r% V/ |# H: `2 ?  f
  63. button_press:8 D; Y1 r$ p7 Y+ G: K
  64. ini_Y:
    / h! l. f" y/ T5 G( m' u2 b9 p* a
  65. LDY #$00( G" p" W/ R& j& R9 s! O
  66. button_cmp:
    6 F5 Y' U' [" K/ ]- ~
  67. LDA button,X2 |* s. _% R$ U8 M
  68. CMP ora_data,Y8 b2 S9 A9 p, Q& k7 J
  69. BNE count_Y_cmp
    " [2 E4 r& r! F: a' B
  70. flag_cmp:
    3 f% x- z2 Q0 S" L
  71. LDA flag,X' N$ Z, B7 S0 M& K* I: |
  72. AND ora_data,Y0 t1 L4 k' J0 A$ K
  73. BNE flag_and
    5 A5 Y& H2 {. i; H8 d4 p2 h1 [8 ~
  74. flag_ora:
    ! ~' X8 D7 O! F( d4 k% [
  75. LDA flag,X
    : f# i- N( R. G1 x% W) ^/ m
  76. ORA ora_data,Y2 V9 @0 C6 l3 d
  77. STA flag,X' I! c8 H7 T# Z  T# ?) Y
  78. BNE count_Y_cmp3 D; |2 h$ }0 s1 s& G! R, R
  79. flag_and:8 C% g" L/ P. \
  80. LDA flag,X" `1 O$ R, _. o- O; O% V
  81. AND and_data,Y3 g4 E5 ]0 o1 \
  82. STA flag,X
    & e+ A' H. z4 b  z8 N
  83. count_Y_cmp:
    3 O# x8 ^/ K6 L# B
  84. INY8 {- p  y( _; d! \: i
  85. CPY #$08! a8 v# j6 L# u" v& L
  86. BCC button_cmp7 l) w, J- w9 X( o

  87. 3 D# R1 G2 K' f2 K; Y/ p
  88. data_extract:
    " Y8 ?4 R0 \0 E
  89. PLA0 V3 r. w  K2 }( J9 y/ j
  90. TAY7 e! F% ?$ c4 w/ u# n$ |9 Z
  91. PLA
    5 \6 W, \; }6 \+ o6 N  j
  92. TAX
    ' y: p* V, s3 _2 q2 n  L
  93. PLA+ m. h' D& ?! p8 ^* T# q
  94. 1 c- W4 C; |3 c- e& i2 I# b
  95. return:
    . j! o! Q8 ^2 q: Y
  96. RTS7 O8 E# F8 i; m" |* R# J6 n8 b
  97. 2 Q/ O' v6 o, u* w* B# n+ E

  98. , t: z' [" a/ w' A: z! s; g
  99. INV:    ;无敌
    / d: M$ y+ l* X4 X/ s
  100. LDA $6000,X
    , X  i$ s' {% p8 ^- O
  101. AND #$08
      f9 Q" M- g* z* ]: s8 V+ }5 \
  102. BEQ INV_RTS% T0 i5 f9 D0 ~' e
  103. LDA #$05
    $ ^6 m& p$ V" }; {4 T1 ~" N5 I
  104. STA $04FF,X# f) y3 S. g" K' o, O3 t  q1 \
  105. INV_RTS:% Y$ Q+ B6 f, v& {% X, H, b
  106. RTS
    / k% ~4 L* D) l% {8 g3 s4 c
  107. / e/ f# x+ V. Y" m
  108. ; [: `' X5 P1 C5 A) }
  109. LIFE:    ;生命3 l" r& {8 D/ u0 g' x: X
  110. LDA $6000,X
    2 W1 a- Q3 k8 ^0 v/ p
  111. AND #$046 D: e5 d& |0 C4 @/ ]+ P
  112. BEQ LIFE_RTS
    + H! N  n0 D3 r  F1 V
  113. LDA #$09; N$ S! I# z) }  V# k2 s
  114. STA $6A,X
    * A+ d2 `+ V$ Y
  115. LIFE_RTS:- `6 v% J, W0 u" y! Y( j
  116. RTS
    : B) D9 s5 [7 }, q" n
  117. 3 i5 o$ l  |3 F) I

  118. + o, _" l4 C  \& \0 O  ]1 n
  119. BLOOD:    ;血量
    ( S1 T  v  y: B5 ^5 G
  120. LDA $6000,X
    & B# O8 J0 |* [2 D
  121. AND #$01: W& ?$ |, Q: n8 X6 w& k3 R- R
  122. BEQ BLOOD_RTS
    6 Q% E8 V( e; n- h5 b
  123. LDA #$7F
    ( \( u$ _9 {. x$ e
  124. STA $04F1,X
    : m  w' a$ Y# R* o
  125. BLOOD_RTS:
    & s0 q+ H; I0 w+ A7 S
  126. RTS
    # D! q# X# }5 d! `  R  n( |- h
  127. 3 v" e- Z4 c. p- C5 M1 L, v2 y
  128. / D: u# b5 A/ v- a8 O2 O

  129. ' Y" g( T2 B3 K: Y! J( W* E7 D' \
  130. " x) ~* \- k" x3 t6 n1 N
  131. .ORG $D29F0 l0 \5 D2 i" {6 U
  132. JSR $FF80
    3 l2 R8 i* Z/ |: \* y% y
  133. $ i) W) T. C" I6 B
  134. .ORG $FF804 |/ q/ q* C# w& u0 m& `
  135. KILLBOSS_BY_ONE    ;BOSS一击必杀
    1 t& s8 {# E( Q! ?
  136. STA $0628
    / A4 |& h3 p8 D% N/ H
  137. PHA
    $ N( t9 ~/ C  h2 D5 {  X+ o& H
  138. LDA $6000
    3 ]9 J9 j+ s! `; y0 V
  139. AND #$40
    / ^' G1 |. w7 A: D; ?
  140. BEQ ADDRFF8E, L2 ]7 q: }& y: C( J% f, L0 i, R- D
  141. PLA
    6 g2 \/ K3 F: n2 ^1 {
  142. CLC   ;敌方死亡状态判定
    9 n: P, r: X) g+ P' }
  143. RTS" B) p# u4 ^* t  Z$ n& n4 ?
  144. ADDRFF8E:4 {: t8 o6 |! w* d7 ^& z0 q
  145. PLA
      J( v% ]* g+ y$ v! g6 ?
  146. RTS+ m' H' H  {) I* A/ M9 N8 ~

  147. 1 s' S1 e, x+ b6 k% [
  148. 8 D3 y6 o- Q, C
  149. .ORG $D151
    6 m3 [7 B8 S4 |$ q7 |( T
  150. JMP $FFA0+ I6 [, i) x' B7 k9 d  }
  151. % O2 X. V- \3 X, C4 g6 V
  152. .ORG $FFA0
    . L% R6 u- M& x$ |! Y( u% i
  153. KILL_BY_ONE:    ;杂兵一击必杀
    % V% ~. I( Z( }
  154. STA $0621,X
    0 H4 d" S5 Z4 M" o1 u; R8 u# P
  155. LDA $6000
    ( S. q8 Y4 p0 ?! N$ V
  156. AND #$40$ G+ q: K# n. r: e  ?
  157. BEQ ADDRFFAD9 Q( p' E3 Y, M( N1 D1 y$ C
  158. JMP $D19A   ;敌方死亡程序跳转
    " a- T8 ?, f6 |1 M
  159. ADDRFFAD:
    ) O  O! Z, j1 W2 i$ i, Q0 F
  160. JMP $D154
    " ^& N% A+ ]! X2 e& U6 E% V

  161. - y' R: @/ I- b' X

  162. 5 h1 ]; _. C( S
  163. .ORG $A7F6: A+ O1 f9 `: Q( h9 D
  164. JSR $FFB02 t1 \" b2 _( k2 u& c' G0 R* t- T
  165. - }+ r+ p# D/ w1 l( _( X
  166. .ORG $FFB0    ;全屏攻击
    . T) j0 e; d+ C+ ?1 e
  167. PHA- C1 @% t. [, [* d  ^7 l  a
  168. LDA $60009 F2 b9 c* [0 J- q
  169. AND #$80
    3 d) v% d  y' T/ \1 ^& c
  170. BNE ADDRFFBD
    7 i: [" ?  }0 S% h* V' D  S5 y. H
  171. PLA
    ! j& L3 n% P$ p% B
  172. LDA $0015
    8 x! t6 x* b* C" }8 W& H
  173. SEC
    0 m: V7 m" Y: b1 J6 R
  174. RTS7 C0 v  O: r1 i$ P( _2 u4 c
  175. ADDRFFBD:) x! w  D& m- n1 W, o4 j
  176. PLA
    ) ~6 L! G9 M& U) K/ J: F0 O. c
  177. JMP $A8265 u3 [# U7 `9 `+ ~* |" v# n  ~
  178. 2 k* r4 A' z9 y: p* O% D
  179. 8 R6 F6 S/ e9 A* j. i% x0 E. Y" A3 M

  180. + G+ h( `! q; z$ F
  181. .ORG $AA6A2 X7 i/ e7 }( y
  182. JMP $FFD0
    % G0 j& a; o# \% ?8 S

  183. ; C5 Z8 t4 d4 [/ D1 N
  184. .ORG $FFD0    ;敌兵动作忽略, M0 C: S. E3 R- e* s
  185. PHA
    * J' Y- L" b% o' K
  186. LDA $60008 s; r: D! P/ O  r
  187. AND #$80
    $ @* P9 o2 D8 D4 v
  188. BEQ ADDRFFDC
    $ N0 Z' f1 Q2 W' Y! ~
  189. PLA# W$ N$ ?2 T5 `$ M
  190. JMP $AA72
    7 M+ h( y. G. R( ~6 b# I
  191. ADDRFFDC:$ J1 j3 v: ]+ C* Z8 h
  192. PLA
    6 ^! v2 t+ Z: c; D: f2 x
  193. LDA $0629,X
    8 h3 O& e# m0 n
  194. JMP $AA6D
    . z9 m2 T2 R5 M
  195. * ]9 r  \9 Z% ~7 d. k3 U
  196. ;[FC][忍者神龟3代标题选关程序]
    ' Q1 G) T; _% ?# G0 b$ K" l
  197. ;作者:FlameCyclone 2017.4.1
    6 |! m" `: \& B: S; T  C

  198. 1 O( Q9 H; o- U5 H0 X- n
  199. ' }2 o+ v9 X8 S& ]3 y4 h9 ^& j
  200. ;配置数据8 l9 b, R1 p( s: ^
  201. KEY_ADDR = $F8    ;按键地址' n( G2 L! K* P$ g+ m, J# u
  202. STAGE_TEMP = $6010    ;关卡临时地址
    ( m, e# h% w' f6 D
  203. STAGE_MAX = $0E    ;最大关卡数
    & w( M3 q# U% \5 r
  204. TITLE_A = $20    ;标题条件A
    * K$ S0 v. N* C, c8 B& B, \% Z. `* \
  205. TITLE_A_ON = $02    ;标题条件A有效状态判定
    ! V+ Q+ R0 _: I- k/ l
  206. TITLE_B = $21    ;标题条件B0 U( X+ P$ m6 j& V( g
  207. TITLE_B_ON = $03    ;标题条件B有效状态判定
    , |, }5 u) H6 p# ?8 c# Z- V
  208. PPU_END = $FF    ;PPU结束符
    & z! E- P6 t$ q" u, _
  209. TIME_LAY = $4A    ;标题显示延时地址
    : ?' V3 W& r. n/ J$ _8 `
  210. BUTTON_DEC = $42    ;关卡减少按键- L& @4 a1 c/ P! w
  211. BUTTON_INC = $81    ;关卡增加按键6 t( a9 ^, X& A$ F2 _) U- \& E# C
  212. NUMBER_A = $06    ;数字A距离STAGE偏移量0 J' c& Q4 K$ l+ L* h* h
  213. NUMBER_B = $08    ;数字B距离STAGE偏移量. o. u( F9 W7 d3 h5 U0 b2 G# V
  214. PPU_ADDR_H = $23    ;STAGE写入地址高位
    : c7 C! s3 R- ?6 Q0 D2 O$ N
  215. PPU_ADDR_L = $8C    ;STAGE写入地址低位" V* q' _8 X; @( U* O; h! {8 h
  216. CHAR_S = $A2    ;字符'S'
    + T6 ^- n. ~# M9 ^# ^
  217. CHAR_T = $A3    ;字符'T') b" L) X9 h. z, D
  218. CHAR_A = $90    ;字符'A'
    : N3 I) ]* j7 j/ N7 \7 ^
  219. CHAR_G = $96    ;字符'G'
    0 C& \. J# H7 U! S8 ~: y: v* _
  220. CHAR_E = $94    ;字符'E'# ~3 X/ N$ X4 K& B8 l( [1 E! ^
  221. CHAR_SPA = $00    ;字符空格2 j& ~" x0 `+ N' p* [) Q
  222. CHAR_LIN = $AE    ;字符'-'- \3 m: u, E8 v' y& C1 a& p+ t
  223. CHAR_O = $9E    ;字符'o'- r" L( k" o; R4 N/ W, p
  224. NUM_1 = $81    ;数字'1'0 v; H, m  E7 b# W
  225. NUM_2 = $82    ;数字'2'
    0 t9 r/ w' Q0 w) m& o
  226. NUM_3 = $83    ;数字'3'1 B# A' X: i% y7 u6 M) m- K/ s+ |
  227. NUM_4 = $84    ;数字'4'4 ]- a2 I* j" v- C
  228. NUM_5 = $85    ;数字'5', j7 I4 f. X6 m
  229. NUM_6 = $86    ;数字'6'2 }5 G0 r+ `( {& O
  230. NUM_7 = $87    ;数字'7'; ~& h& {( r- }: A
  231. NUM_8 = $88    ;数字'8'
    % W: L# [% L+ u2 S! ]
  232. NUM_9 = $89    ;数字'9'
    ' O0 q# k+ S8 }; a  p( y  y- r6 Y
  233. NUM_0 = $80    ;数字'0'
    + ?3 |  T/ Y  a2 g
  234. " r1 S4 I, J1 j' U4 U4 `& K& _
  235. .ORG $F82A
    1 S6 D2 Z7 u& J5 v8 s- h# R1 j/ l0 w
  236. JSR $E700' C0 {$ Y; }+ i
  237. 3 {- F4 n* d0 x/ i* X

  238. - D7 K, G! Z0 ^# f8 W4 Z
  239. .ORG $E700
    ; C0 |9 m  W9 `% l! t
  240.   + o; Y+ ]/ s( M2 K# U3 a
  241. STY $4014    ;补上覆盖的精灵写入指令
    ) [: d; l7 u( F; i* T+ g
  242. PROTECT_DATA:    ;数据保护
    2 V/ |9 K& y3 p6 h1 J4 c  C
  243. PHA    ;数据保护开始9 E6 ]% |, g+ B
  244. TXA
    & A0 r5 @6 i3 D$ }* V
  245. PHA
      d; X% a. k& T( S
  246. TYA
    : f4 D3 h9 [6 o% j* f
  247. PHA    ;数据保护结束3 n; W+ r% O- @
  248. LDA TITLE_A
    + C3 W! K# B8 u( p$ a+ W
  249. CMP #TITLE_A_ON    ;比较是否为标题画面8 ]; S9 _( U  s% J" H
  250. BNE RET$ I* b8 b' Y0 k. W8 z+ {/ B" D
  251. LDA TITLE_B8 X2 [; V, W9 C* }
  252. CMP #TITLE_B_ON    ;比较是否为标题画面
    2 L6 W" M7 O: ], q6 u% o% q# c% H/ U6 w
  253. BEQ PPU_STAGE
    6 M7 Y9 Q9 k! g; @$ X
  254. RET:    ;恢复数据6 D& w* Q+ z; X1 `! b% M4 s+ J
  255. PLA    ;恢复数据开始
    4 M4 X' p# ]# t6 ~
  256. TAY+ r' g' L8 {9 K0 |+ @3 o
  257. PLA, d, x  D) @4 N- R' {; S5 ^( @
  258. TAX
    / N# @7 q7 f' C$ q. n$ b7 E$ N8 e6 _7 F; t
  259. PLA    ;恢复数据结束3 @6 }( l( v/ h+ S$ E2 X
  260. RTS    ;返回
    ; ?/ [$ U$ P5 z+ t/ m7 h3 N
  261. PPU_STAGE:    ;字符STAGE写入程序1 U$ O2 x: z2 q1 F7 s2 M, L
  262. LDA #PPU_ADDR_H
    + [) k# v  O$ a- u( `+ j5 B
  263. STA $2006    ;设置PPU字符写入高位地址. s& P2 \: l% F( ~3 k/ ^  {% c
  264. LDA #PPU_ADDR_L
    ) n" R! r+ r  T6 N
  265. STA $2006    ;设置PPU字符写入低位地址
    # X4 W8 ?; D1 M, l: S/ E% U2 a
  266. LDX #$00$ S! E1 L( d# R$ B& p
  267. PPU_STAGE_WROTE:    ;写入STAGE字模
    0 A. l2 T& A3 z/ [
  268. LDA STAGE_DATA,X
    ; g% N$ N  ~; R- `: U
  269. CMP #PPU_END    ;判断是否写入结束
    6 _2 e, }6 X* q- Q
  270. BEQ STAGE_CMP/ L9 u. C+ t  ]: j! `6 X# G
  271. STA $2007
    6 ]: X# z4 R/ J. n/ ]$ q3 q. y3 _
  272. INX2 s1 U0 a& w* S0 e% i
  273. BCC PPU_STAGE_WROTE3 q6 \4 W& _5 S6 ]% f$ C
  274. STAGE_CMP:    ;选关操作
    2 J# @9 z! F* E1 I0 Q# u! X/ h( z$ k+ j
  275. LDA STAGE_TEMP
    4 P# i4 T; t8 h- C
  276. CMP #$FF    ;关卡数据初始化条件判断  v: N% i1 [. h6 F+ v7 X; l$ L* a
  277. BNE KEY_B
    ; |& ?) X! E  v0 U) h& Q0 i
  278. LDA #$00
    & J9 X# y2 U5 v
  279. STA STAGE_TEMP    ;关卡数据初始化: ?5 d5 {% Q$ }5 g$ q* C
  280. KEY_B:    ;关卡减少. s  A& @2 R7 M" c- A3 f
  281. LDA KEY_ADDR4 j# ?# Y" ], ?+ r+ ~+ c0 V
  282. AND #BUTTON_DEC    ;按键B或左减关' p& Z4 T8 o6 B' j% _
  283. BEQ KEY_A
    2 e- I, D4 ~& F3 p
  284. LDA #$FF
    6 J- ?. y5 D9 k9 z  \
  285. STA TIME_LAY    ;重设标题延时8 u  s2 a" G2 l: O0 d
  286. LDA STAGE_TEMP) W! |% A5 z5 A& l" B8 o
  287. CMP #$00    ;关卡比较/ j# b& Y6 V; T/ c0 u3 h+ m& F
  288. BEQ KEY_A
    7 \5 _* |: \2 ?, \( w" i
  289. DEC STAGE_TEMP   ;减关
    $ H: d2 R1 u0 y$ ~
  290. JSR MUSIC    ;按键音效
      s7 Z% |$ p1 F
  291. KEY_A:    ;关卡增加, Y' f6 J! z) R$ Q- E  I1 y" ^9 \
  292. LDA KEY_ADDR
    + H; D3 G6 k6 u5 G! q+ {3 ?
  293. AND #BUTTON_INC    ;按键A或右加关
    8 g5 A# E. `: G' y( z
  294. BEQ PPU_NUM_WRITE
    3 L9 V1 A( U, o. N, l+ X- E1 f
  295. LDA #$FF7 C' j3 B' d1 E% g
  296. STA TIME_LAY    ;重设标题延时
    1 {4 ]! b3 V- a
  297. LDA STAGE_TEMP8 i3 h; ^8 |  c0 f: f! f
  298. CMP #STAGE_MAX    ;关卡比较
    * K$ w1 e( e; z+ Z& F1 L. B5 z$ ]
  299. BEQ PPU_NUM_WRITE. g  d. D- F, g. H8 p$ I8 h
  300. INC STAGE_TEMP    ;加关" j8 {$ s4 C) @) l
  301. JSR MUSIC    ;按键音效" n) u" K, w* o' B7 P
  302. PPU_NUM_WRITE:    ;关卡数字写入地址
    ; A2 ?2 J* K" i1 Q& y! s
  303. LDA #PPU_ADDR_H5 ?& y* }, |3 T1 ^
  304. STA $2006    ;设置PPU数字写入高位地址& S$ G. b. Z' C* g
  305. LDA #PPU_ADDR_L
    ) R& {% N' |. j, }0 A5 c( \
  306. CLC
    0 p6 r: l" }* m/ O/ H8 i/ k$ j6 z
  307. ADC #NUMBER_A2 w6 e5 {. \8 m  K9 K9 B  w9 m1 y
  308. STA $2006    ;设置PPU字符写入低位地址! l  w# v1 e0 W) k3 Z
  309. LDA STAGE_TEMP& ^: [- F% T, P$ l! [
  310. TAX. D" C7 U& F- R. g. B
  311. LDA STAGE_D1,X    ;写入数字
    ( I) }' f$ c5 i: h
  312. STA $2007
    9 ]6 U9 X5 o# ?# o1 h; ^8 f
  313. LDA #PPU_ADDR_H! j+ Y# z" W. f/ |
  314. STA $2006    ;设置PPU数字写入高位地址, }/ q  B# \5 E4 a# f; j9 u
  315. LDA #PPU_ADDR_L8 @2 d' [- R5 N+ L
  316. CLC
    6 F7 u9 u$ |+ [/ `0 F5 p0 @8 \. c
  317. ADC #NUMBER_B! n, ]" C2 x9 i& u
  318. STA $2006    ;设置PPU字符写入低位地址3 O! z: B6 o. d2 q  |
  319. LDA STAGE_TEMP' l  H4 S& ^' j( U3 ~
  320. TAX
    7 B. @4 P6 |/ y/ B) ]% n
  321. LDA STAGE_D2,X    ;写入数字
    $ d; e$ N3 e7 H
  322. STA $2007$ l2 A4 l" z0 O# f2 o# Q  O
  323. STAHE_WRITE:
    5 x. z5 J; `( k- l
  324. LDA STAGE_TEMP
    ) {9 Y* A1 o! I6 I- z
  325. STA $2D   ;初始关卡写入& E! @+ o! h7 O- ^) C
  326. PPU_RTS:    ;恢复数据5 I; I; e4 C, K$ H
  327. PLA0 ]9 {: R+ N: O& L# L
  328. TAY
    % K0 J- ?' y( z1 z9 A
  329. PLA+ G6 m9 {) ]/ v3 y
  330. TAX
    ! ^2 x: @9 o' E4 H9 t
  331. PLA8 Y4 }( B4 u9 p' a% F6 S
  332. RTS; A3 C9 |; \# b/ g( i% J

  333. 0 ~9 c+ g" c7 b3 Z
  334. STAGE_DATA:    ;关卡文字S,T,A,G,E,X,-,X字模数据( @5 e  e# m6 _& O( u0 T. ?
  335. .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
    ' e; P3 i1 C/ D9 A* [
  336. 3 N' B: ^1 Q5 [5 q  R  D9 E. O
  337. STAGE_D1:   ;关卡数字
    3 {4 L8 L, f0 `8 w
  338. .BYTE NUM_1,NUM_2,NUM_2,NUM_3,NUM_4,NUM_4,NUM_5,NUM_5,NUM_6,NUM_6,NUM_7,NUM_7,NUM_8,NUM_8,NUM_8# N+ M' e3 P+ q& I' ?! I+ a
  339. ' Y! G, r. _6 G7 q
  340. STAGE_D2:   ;场景数字
      C/ O1 W4 D. L& j
  341. .BYTE NUM_1,NUM_1,NUM_2,NUM_1,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_3
    ) a% s2 d" r" P

  342. + d# W3 w: [1 u# G! D
  343. ( W, L4 K* i$ M( o' d5 d
  344. MUSIC:    ;按键音效
    ' }( r/ w+ B; V* S) x. h' ^
  345. LDA #$3B    ;音乐号3 o" a: [5 B" P
  346. JSR $919E    ;系统音乐调用& }! s8 ~9 }+ B6 I/ W% B$ P) m. a
  347. RTS
复制代码
4.无敌锁定:   暂停后,按上键切换;# T2 f" Z  t! V- r
    5.生命加满:   暂停后,按下键切换;" [, r% f7 Z  s8 z2 Q; P7 o5 C
    6.血量锁满:   暂停后,按右键切换;$ n3 U' y8 N" x5 N2 T+ E. Z7 f4 ]
/ N  F+ |) e1 B8 [( b
' P7 [8 X! a1 Z8 X& h& ~
+ V& L. n) R$ B" |6 e) M

$ O% r  S) b% l/ w7 p9 Y) w- c- o; ^+ t. g/ J
FlameCyclone.ys168.com
9 ^* y. x& ]$ @; _& {( t. M8 Zwww.nesbbs.com4 m4 R5 U1 X1 _! P1 x
游客,如果您要查看本帖隐藏内容请回复
9 j/ U$ r( P" Z7 h  a& M+ f

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

签到天数: 186 天

[LV.7]常住居民III

发表于 2017-3-31 15:19:48 | 显示全部楼层
感谢修改,辛苦了
[发帖际遇]: dabayu 发帖时在路边捡到 3 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 48 天

[LV.5]常住居民I

发表于 2017-3-31 15:57:22 | 显示全部楼层
这也是个好游戏啊。谢谢修改。

签到天数: 2366 天

[LV.Master]伴坛终老

发表于 2017-3-31 17:15:48 | 显示全部楼层
感谢分享新游戏

签到天数: 1418 天

[LV.10]以坛为家III

发表于 2017-3-31 18:08:30 | 显示全部楼层
这个有意思,比30人版的还要简便

签到天数: 2342 天

[LV.Master]伴坛终老

发表于 2017-3-31 18:24:11 | 显示全部楼层
2和3改的很强悍

签到天数: 71 天

[LV.6]常住居民II

发表于 2017-3-31 19:13:18 | 显示全部楼层
{:4_103:}哇塞,真心不错,楼主辛苦了,终于圆了我的梦,多谢多谢!
[发帖际遇]: 街机爱好者为灾区捐款 2 个 柠檬. 幸运榜 / 衰神榜

签到天数: 1233 天

[LV.10]以坛为家III

发表于 2017-3-31 21:04:59 | 显示全部楼层
这个修改超爽啊..太感激了
[发帖际遇]: 多乐事为灾区捐款 3 个 柠檬. 幸运榜 / 衰神榜

该用户从未签到

发表于 2017-3-31 21:30:31 来自手机 | 显示全部楼层
这个修改的好阿弱弱的问下不是说隐退了吗

签到天数: 1749 天

[LV.Master]伴坛终老

发表于 2017-3-31 21:34:31 | 显示全部楼层
楼主改的太棒了,谢谢分享
[发帖际遇]: pp12 捡了钱没交公 柠檬 降了 1 个 . 幸运榜 / 衰神榜

签到天数: 2891 天

[LV.Master]伴坛终老

发表于 2017-3-31 22:08:30 | 显示全部楼层
感谢楼主分享!
[发帖际遇]: afti辛苦发帖,赚了 2 个 柠檬. 幸运榜 / 衰神榜

签到天数: 2013 天

[LV.Master]伴坛终老

发表于 2017-3-31 22:32:18 | 显示全部楼层
感谢楼主分享
[发帖际遇]: 一个袋子砸在了 datone 头上,datone 赚了 5 个 柠檬. 幸运榜 / 衰神榜

签到天数: 1766 天

[LV.Master]伴坛终老

发表于 2017-4-1 02:16:39 | 显示全部楼层
简单很多了,感谢修改
[发帖际遇]: 找不到服务器 打扫环境卫生,被奖励 4 个 柠檬. 幸运榜 / 衰神榜

签到天数: 135 天

[LV.7]常住居民III

发表于 2017-4-1 11:35:44 | 显示全部楼层
老规矩,先回后下!!!!!!!
! Z. m; u, v& a: x8 |

签到天数: 179 天

[LV.7]常住居民III

发表于 2017-4-1 14:07:04 | 显示全部楼层
以前在实体机上老被BOSS虐 现在好了 搞死BOSS 哈哈哈
[发帖际遇]: 九月鹰飞 在网吧通宵,花了 2 个 柠檬. 幸运榜 / 衰神榜

签到天数: 1482 天

[LV.10]以坛为家III

发表于 2017-4-1 15:51:06 | 显示全部楼层
好东西收藏了

签到天数: 39 天

[LV.5]常住居民I

 楼主| 发表于 2017-4-2 20:42:12 | 显示全部楼层
来看看貌似没人下载

签到天数: 39 天

[LV.5]常住居民I

 楼主| 发表于 2017-4-4 11:44:04 | 显示全部楼层
已经适配nestopia模拟器

签到天数: 93 天

[LV.6]常住居民II

发表于 2017-4-7 01:13:04 | 显示全部楼层
感谢游戏

签到天数: 57 天

[LV.5]常住居民I

发表于 2017-4-20 10:51:15 | 显示全部楼层
研究研究
[发帖际遇]: 一个袋子砸在了 曹的爽 头上,曹的爽 赚了 3 个 柠檬. 幸运榜 / 衰神榜
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2024-11-17 10:54 , Processed in 1.112305 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表