设为首页收藏本站

 找回密码
 立即注册
搜索
查看: 527|回复: 4

[原创FC/FDS-HACK] [FC][忍者神龟3代标题选关程序]

[复制链接]

签到天数: 39 天

[LV.5]常住居民I

发表于 2017-4-1 18:08:07 | 显示全部楼层 |阅读模式
;[FC][忍者神龟3代标题选关程序]/ ^5 A3 J0 b2 P/ G& g7 r  @; n1 Z6 {5 M
;作者:FlameCyclone 2017.4.1+ c8 L) f9 d" ^+ v! B1 ~: L' M

# {0 ~; M: Q  _# s# q- S. \" l; \  b8 B9 i: W3 J  \6 X& M
;配置数据
; i; A% |1 b! }: A+ Q+ FKEY_ADDR = $F8    ;按键地址
$ p5 O0 B$ f" x/ {7 m+ QSTAGE_TEMP = $6010    ;关卡临时地址8 _, {% S8 O3 Q, \
STAGE_MAX = $0E    ;最大关卡数
: z, J' d0 }& G% pTITLE_A = $20    ;标题条件A- n% x7 O5 [5 i( a- A4 `
TITLE_A_ON = $02    ;标题条件A有效状态判定
1 _( h% ]9 [& R( j% O8 vTITLE_B = $21    ;标题条件B
) }9 B/ ]# [: ]; `TITLE_B_ON = $03    ;标题条件B有效状态判定
5 U: ~! ]4 u; v/ W4 u5 Z  k8 K5 E: ZPPU_END = $FF    ;PPU结束符$ O, ~+ W- j& k1 G; l
TIME_LAY = $4A    ;标题显示延时地址
: h4 h8 V2 r, H* k* XBUTTON_DEC = $42    ;关卡减少按键
1 o9 m( Z$ l. @) c& _BUTTON_INC = $81    ;关卡增加按键
2 f- d0 r+ g7 ^/ k- I/ q1 uNUMBER_A = $06    ;数字A距离STAGE偏移量
4 F/ z& \" I" c, C7 ?( [NUMBER_B = $08    ;数字B距离STAGE偏移量
5 Y& B) x& }  u* G' W) ?1 u5 r0 m5 [& s- `PPU_ADDR_H = $23    ;STAGE写入地址高位
% @( i, `$ E! hPPU_ADDR_L = $8C    ;STAGE写入地址低位5 d8 P. b$ @0 y
CHAR_S = $A2    ;字符'S'* c! r( X8 e3 L
CHAR_T = $A3    ;字符'T'2 s; z% i/ e) U3 [0 o( j
CHAR_A = $90    ;字符'A'
% G# J8 T0 a6 I4 x% |CHAR_G = $96    ;字符'G') _/ @- B& L1 a$ O; Z9 r' `
CHAR_E = $94    ;字符'E'  T) j2 t, r% v( _) P1 s/ y; O. l* }
CHAR_SPA = $00    ;字符空格
) M8 i7 k; T" B: j. z, [CHAR_LIN = $AE    ;字符'-'
+ s; n( ]2 c1 k1 v0 @+ ECHAR_O = $9E    ;字符'o'
, D: i4 }2 r, p9 N. pNUM_1 = $81    ;数字'1'
" d; J3 U8 W  U" TNUM_2 = $82    ;数字'2'
3 x% B% t9 S; n% G; |* cNUM_3 = $83    ;数字'3'
. i- J" ?. G8 O. MNUM_4 = $84    ;数字'4'
) w, B' c( K. d7 w( ?, Q" S* HNUM_5 = $85    ;数字'5': s  t( Z$ w( I: ?, y
NUM_6 = $86    ;数字'6'
+ a( D$ L& e# l" E7 V& D; GNUM_7 = $87    ;数字'7'
+ v  D; N& w2 a3 [NUM_8 = $88    ;数字'8'
8 T% F" e1 X* A& l# [( SNUM_9 = $89    ;数字'9'6 E9 p" w4 C  z$ V8 r% o
NUM_0 = $80    ;数字'0'. E/ g0 c, ]' ?) Q1 \: A9 t9 \" K6 ?

# z* q, E4 @4 f2 n5 i; { .ORG $F82A
' R% e: g4 d2 N! m( H JSR $E7000 D. F! \' i) }- i0 t
! T1 p/ J9 ~" I: h3 ~

* y7 x0 A- F+ \1 w/ l8 b0 \% j .ORG $E7008 r4 H# R% a* Q/ P
  : k0 {# A8 D/ K0 K. x, F1 P9 q
STY $4014    ;补上覆盖的精灵写入指令3 r0 Y5 S2 v! }* d/ t: T
PROTECT_DATA:    ;数据保护
, R7 j, e- Y/ K PHA    ;数据保护开始
" V1 S$ d  z) W) g, x6 f% `. _ TXA
3 D, N5 F% M2 [! V0 M PHA3 J1 ?$ i: n/ ?9 r) I! g" B- s. }
TYA7 e# `" |3 r8 P, O6 u& C
PHA    ;数据保护结束
- R+ b) i, q( G4 o+ ^ LDA TITLE_A8 w7 b# u4 g; j) M8 O+ @7 J
CMP #TITLE_A_ON    ;比较是否为标题画面6 D- S) e" |# U" J2 p% \1 f% {; t
BNE RET4 a. J3 n  k' p
LDA TITLE_B
; Q  y- H# ~3 v# w# _# @, i CMP #TITLE_B_ON    ;比较是否为标题画面
  z+ ]5 R- e, d2 F  u BEQ PPU_STAGE4 z  m" v/ y1 k' {
RET:    ;恢复数据0 d/ \  G: |6 v# J5 R
PLA    ;恢复数据开始9 V7 R% l# {7 L, G- w% S
TAY
+ L( q8 _. y. ` PLA" V& O$ L, {* a' }- m6 l
TAX5 W. s7 ~4 ?& o9 w  q
PLA    ;恢复数据结束
/ c6 `( {& J  D8 H8 G; n, ^ RTS    ;返回
8 G: x. N1 x. }" G5 MPPU_STAGE:    ;字符STAGE写入程序
$ F6 x2 Q9 Y( K5 j LDA #PPU_ADDR_H   p/ c, q; I1 H& k( O# R) c
STA $2006    ;设置PPU字符写入高位地址3 {$ l) G; h/ j1 ]% y: w
LDA #PPU_ADDR_L
+ H* D. q$ Z: F. N$ P+ {( u- @ STA $2006    ;设置PPU字符写入低位地址# r+ W8 ~  {; k3 Y, U0 p0 u* f& _
LDX #$00
5 S( C' Z; s: U* d: ~PPU_STAGE_WROTE:    ;写入STAGE字模0 [% |: r; _% z
LDA STAGE_DATA,X# d+ `5 e4 w" p0 l6 k3 B
CMP #PPU_END    ;判断是否写入结束
" z0 ^% G6 X: ? BEQ STAGE_CMP( O6 z: f/ f+ g
STA $2007+ i2 E1 G' {; h0 O1 l+ X
INX
0 |" Z9 m- Q% n9 q7 p7 y BCC PPU_STAGE_WROTE
0 e& }: C1 k& z* X4 {& ]" X7 `/ zSTAGE_CMP:    ;选关操作8 _! Y0 q# {6 @# X* r( R" I. s
LDA STAGE_TEMP
4 |; ?0 H* v5 [% f, P; h4 a  B CMP #$FF    ;关卡数据初始化条件判断- k4 R" S/ p8 _6 m3 F" r5 Y* N9 u
BNE KEY_B
- t; g) j8 [0 o5 S+ ^ LDA #$00
. a# p/ j0 t$ v) `: ^9 M) [ STA STAGE_TEMP    ;关卡数据初始化* v5 _# h1 Z+ _: O
KEY_B:    ;关卡减少% [: R7 _: M# g. K" W1 H
LDA KEY_ADDR
% W! l0 r' F* y4 T. e AND #BUTTON_DEC    ;按键B或左减关
; b- |1 u8 X" V8 u0 m4 ] BEQ KEY_A
2 Z& j. \( i5 \$ X LDA #$FF) H9 }# E# {' l
STA TIME_LAY    ;重设标题延时$ K+ C3 u, L" d
LDA STAGE_TEMP
  R" ~8 A* [5 J" Y CMP #$00    ;关卡比较
4 Z2 a) _8 I5 `2 ?7 [# E BEQ KEY_A
6 p( C3 i: S; M- l) c1 ~0 S& L DEC STAGE_TEMP   ;减关% J; d" {/ a2 c" O- Y. p
JSR MUSIC    ;按键音效, y  I" i) O, O4 @, ^9 q/ }. D4 v# }5 e
KEY_A:    ;关卡增加
: _, W3 b# R7 [$ r) y% K: I LDA KEY_ADDR$ k' f' w5 h% b! a
AND #BUTTON_INC    ;按键A或右加关
0 ~0 y6 n6 h5 ]# j& z! A* ~. w BEQ PPU_NUM_WRITE
5 t( W1 H% `" Q  {1 ~- a/ P7 ~ LDA #$FF+ F; c! i+ n- y# M- M
STA TIME_LAY    ;重设标题延时
# g% B! ^2 w4 u6 D LDA STAGE_TEMP- \% e* b) T% }. ]
CMP #STAGE_MAX    ;关卡比较6 F$ v% L0 M2 ~5 u! ?' W- j( F
BEQ PPU_NUM_WRITE3 b' n8 w, U8 @. _: }* O7 c* {0 g- a
INC STAGE_TEMP    ;加关1 q0 S5 C' m1 Y+ P# A8 u
JSR MUSIC    ;按键音效
4 G+ u" a: e4 ]( n' TPPU_NUM_WRITE:    ;关卡数字写入地址
2 {7 w1 X+ m( z3 y  a5 x, a LDA #PPU_ADDR_H/ ?: H2 `  M, J& V/ e
STA $2006    ;设置PPU数字写入高位地址
# y  e, {: i2 B# A8 {; c: D& T LDA #PPU_ADDR_L" u' J6 N  a( g$ g2 E
CLC
% [* g3 n1 T8 U* k- q ADC #NUMBER_A. J( n  l: A" \
STA $2006    ;设置PPU字符写入低位地址0 ^' u2 V' u2 I  w
LDA STAGE_TEMP$ n* Z2 f5 p4 F* w- y) e5 l
TAX
" v2 C% N  Q0 @4 N, O5 B LDA STAGE_D1,X    ;写入数字/ }/ U: P' V6 P* q  h: _1 G
STA $2007& l( d! E  @9 B$ O$ m
LDA #PPU_ADDR_H# e3 z$ F2 V; \1 V
STA $2006    ;设置PPU数字写入高位地址) d2 R& b5 I" d' o5 i8 x
LDA #PPU_ADDR_L& `7 X* V! ^& F" x9 y+ J
CLC
! W; z! H% L( K5 F  ^ ADC #NUMBER_B
/ M3 ], J: {, c9 m1 B STA $2006    ;设置PPU字符写入低位地址3 A9 E5 P# K: @0 p) f6 u! \
LDA STAGE_TEMP; H2 C/ _1 w) i
TAX
  t+ I+ ?  f$ b+ {. u$ j& p. }$ c LDA STAGE_D2,X    ;写入数字
$ j% o" X1 E5 J# N' Z STA $2007- \+ r0 O0 `6 T$ F
STAHE_WRITE:  `  A# i) n. ~
LDA STAGE_TEMP
# R! W; ^* g9 e+ ~+ j! l STA $2D   ;初始关卡写入0 G% q) v0 a" b" G) r6 P
PPU_RTS:    ;恢复数据
+ Z, g2 R; f7 `* x( t. e+ A0 x PLA1 h- r) H' o, K' j1 C( p
TAY2 t3 \+ \+ l- [
PLA
, J' D9 D6 \9 a& ]2 N TAX  y1 [" v' k2 c' |
PLA
- d5 M. n$ v$ x- v; z RTS  {) Q9 W% u) s; R
/ e/ i7 t3 x# y& w- f
STAGE_DATA:    ;关卡文字S,T,A,G,E,X,-,X字模数据
/ B$ H1 ~- F$ r .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END  ]( x+ i& W& s4 P, Y
) q$ w* i7 U6 W' |$ o9 l+ D5 s+ k
STAGE_D1:   ;关卡数字
0 l9 g0 L1 _% }+ |) G .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_83 H) O: S5 S3 ^# c- S0 G7 a. a
" r# t" h( h- O3 }
STAGE_D2:   ;场景数字2 g$ B8 \, I/ B! r% j+ z
.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_31 I8 d- J: ~8 U4 y' c& K5 Y- X

9 g4 S' i' N/ ^7 J8 T
- H- Q+ l7 t5 n+ G+ T3 I4 nMUSIC:    ;按键音效& d# l5 v2 j0 x" S* w' m
LDA #$3B    ;音乐号
3 j% U# d  C6 e- ?, `" J% w9 h  Q JSR $919E    ;系统音乐调用' M3 D  p: d4 R2 \" X
RTS
[发帖际遇]: 一个袋子砸在了 yandagui 头上,yandagui 赚了 4 个 柠檬. 幸运榜 / 衰神榜

签到天数: 434 天

[LV.9]以坛为家II

发表于 2017-4-1 21:01:26 | 显示全部楼层
对于一个小白来说。。。这都写的什么啊。。
回复

使用道具 举报

签到天数: 2060 天

[LV.Master]伴坛终老

发表于 2017-4-2 00:17:11 | 显示全部楼层
完全看不懂哦、、、、、、
回复

使用道具 举报

签到天数: 1418 天

[LV.10]以坛为家III

发表于 2017-4-2 07:46:47 | 显示全部楼层
天书{:4_112:}
[发帖际遇]: 文子萝卜 在网吧通宵,花了 7 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 2563 天

[LV.Master]伴坛终老

发表于 2017-4-2 10:04:52 | 显示全部楼层
应该是代码吧,一般人看不懂
[发帖际遇]: cheap9003扶老大爷过马路,警察叔叔奖励cheap9003 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-8-26 18:17

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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