设为首页收藏本站

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

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

[复制链接]

签到天数: 39 天

[LV.5]常住居民I

发表于 2017-4-1 18:08:07 | 显示全部楼层 |阅读模式
;[FC][忍者神龟3代标题选关程序]& b9 p8 h$ X. [1 ?; I
;作者:FlameCyclone 2017.4.1
& b* x5 m' B* w0 U
. l( V! m  e& O! J. A" ~1 \" Y/ F( l
;配置数据
9 t  x: P: o* e4 AKEY_ADDR = $F8    ;按键地址& v& f- K7 E: u! {! F
STAGE_TEMP = $6010    ;关卡临时地址
. D& V+ S& N- N, l' o: HSTAGE_MAX = $0E    ;最大关卡数
  A( J/ U3 T$ c1 ~TITLE_A = $20    ;标题条件A' `5 i6 B) |3 v% u0 W
TITLE_A_ON = $02    ;标题条件A有效状态判定! x3 }3 L* E2 X/ X- p- i
TITLE_B = $21    ;标题条件B
( F$ ^( m  e" e! g- STITLE_B_ON = $03    ;标题条件B有效状态判定
0 P, W9 |* V3 `" s/ j4 u  h* TPPU_END = $FF    ;PPU结束符
7 a8 r" q- V2 g- aTIME_LAY = $4A    ;标题显示延时地址" b6 d- A- T% o5 u
BUTTON_DEC = $42    ;关卡减少按键/ {# ^& L" E6 z8 ^. A; ]3 _0 T5 I& k* a
BUTTON_INC = $81    ;关卡增加按键( a4 O1 y  f% k& c4 U7 m& A5 ?
NUMBER_A = $06    ;数字A距离STAGE偏移量
& @4 |( x" ?* G- `  ^NUMBER_B = $08    ;数字B距离STAGE偏移量
6 F: Z- i5 s+ C) Q( Y7 F; F1 W! Q/ zPPU_ADDR_H = $23    ;STAGE写入地址高位3 d* ~- O) g. |7 r9 e+ c7 Y6 |
PPU_ADDR_L = $8C    ;STAGE写入地址低位
7 T4 L$ Q# s4 |, r! xCHAR_S = $A2    ;字符'S'
2 g5 [3 h2 d& q+ `: V8 MCHAR_T = $A3    ;字符'T'
1 g" g: @- f2 l/ HCHAR_A = $90    ;字符'A'# B: w8 X- q5 A- h8 e
CHAR_G = $96    ;字符'G'# E" p3 R" }  r/ e
CHAR_E = $94    ;字符'E'
  F5 E" j7 p  T6 Z/ KCHAR_SPA = $00    ;字符空格  Y  j3 K5 J  u# t" c% D5 B
CHAR_LIN = $AE    ;字符'-', i$ P: _4 z' w4 ~6 ^( ]) x3 F# U
CHAR_O = $9E    ;字符'o'
/ Z$ e! L* ^0 f6 K  C3 \NUM_1 = $81    ;数字'1'
5 X& J: Q# D5 Y. Z! q7 WNUM_2 = $82    ;数字'2'
5 s- c  [+ d: e+ L2 vNUM_3 = $83    ;数字'3'! e) F/ P1 d3 `; ]2 x% k
NUM_4 = $84    ;数字'4'
0 g1 ?. {5 c: z) ]% B8 tNUM_5 = $85    ;数字'5'
5 f2 d% o8 c7 T0 DNUM_6 = $86    ;数字'6'* [7 L! r0 I' g4 a5 w- F6 L3 k: O
NUM_7 = $87    ;数字'7'0 V2 r3 I4 [2 p) O1 M$ G! j
NUM_8 = $88    ;数字'8'
- V/ ~, G9 u# s5 r5 f& ^: Z1 T& mNUM_9 = $89    ;数字'9'3 y& Q- b$ d+ G* E8 P/ Y  U3 q
NUM_0 = $80    ;数字'0'( d, A1 e7 m5 f4 q8 B; T6 u8 T

; g9 U3 J9 u8 @0 X8 C .ORG $F82A# A) I7 ^" i  ]. C  G* c
JSR $E700  p8 K6 F8 p4 r" ?2 i, }( C& z- G$ W
  p& ?& @% ^  E& g+ X
$ r3 q- I3 U8 x; @( q0 W+ V. i; P8 h
.ORG $E700
1 P' B8 }2 Z. x; e# U  
5 V2 R+ c3 I/ y STY $4014    ;补上覆盖的精灵写入指令
7 v' `% @' o- N' z& zPROTECT_DATA:    ;数据保护
5 w/ z5 e2 ^( M PHA    ;数据保护开始3 ]5 a+ M7 g  |9 i
TXA; n( {# D7 B. m3 K% V/ b
PHA
: P) @  m, L" t' H# L# k4 H TYA
- o9 m& F) b! t. ^) V3 R PHA    ;数据保护结束
. v. k# H3 @4 h" z1 ^4 n LDA TITLE_A: o0 c7 T1 M4 J4 N1 E- X
CMP #TITLE_A_ON    ;比较是否为标题画面- {8 j/ Y, m# O& Z
BNE RET
- @. v1 C3 u1 x+ S  g LDA TITLE_B6 ]$ D; P6 y+ j  ?% E
CMP #TITLE_B_ON    ;比较是否为标题画面$ }5 m: n6 h9 ^; r0 ?
BEQ PPU_STAGE
% f- I2 o  l& mRET:    ;恢复数据
; u. n  D  z! P: w! Q PLA    ;恢复数据开始
* ?/ a; p9 R; k  \2 {/ q+ `& l TAY$ p/ M& z& @" s3 j/ [
PLA
& G/ c& L& B% w0 z4 }0 U1 \* r TAX
% X- `9 ^6 b% J( G/ N- q PLA    ;恢复数据结束! {- x1 b5 J' G3 @1 B
RTS    ;返回
, m+ ?# a/ T1 F' c: w' T* E4 ?PPU_STAGE:    ;字符STAGE写入程序
' ?- ^" k& ]$ K) G3 U1 t3 W! M LDA #PPU_ADDR_H
6 E! A1 r, Q% u6 C, | STA $2006    ;设置PPU字符写入高位地址; b" U9 V9 m) Z9 J& \
LDA #PPU_ADDR_L
0 d8 z6 Y( A4 E4 { STA $2006    ;设置PPU字符写入低位地址
* n9 Z  g7 J+ o7 z' ` LDX #$00
- h5 p8 u8 t. D, e  bPPU_STAGE_WROTE:    ;写入STAGE字模
6 m  N- ?. s  S+ s9 H# D8 { LDA STAGE_DATA,X
1 Y6 M- [% X2 u' u* W  `/ I CMP #PPU_END    ;判断是否写入结束
- a# u- J5 [( x0 v6 b. w: H$ Y9 i BEQ STAGE_CMP% N; m1 D- B* i0 k- p  i8 q
STA $2007: f5 G( ?+ B5 u; d6 B" O4 {; ^4 q
INX3 H) \' E1 T* Z2 m2 d
BCC PPU_STAGE_WROTE1 K# h" I4 W+ l3 c; y
STAGE_CMP:    ;选关操作
! H$ I% L7 Y: t  x LDA STAGE_TEMP7 e. b1 S: j; U) h! f9 h( T$ E
CMP #$FF    ;关卡数据初始化条件判断
% n: C; l# `4 w BNE KEY_B+ x/ @; x3 M7 v3 k8 k" n
LDA #$00
( U0 }6 y5 Z/ [1 b1 a6 e$ j STA STAGE_TEMP    ;关卡数据初始化
* k0 L" K# N( i* X( O% c8 j6 P  R9 IKEY_B:    ;关卡减少
; u/ x  a; m1 i; ]* e. ] LDA KEY_ADDR: ]. j0 H# C- |
AND #BUTTON_DEC    ;按键B或左减关1 {6 V$ H& u/ x3 m9 ?6 a
BEQ KEY_A
1 w# E/ _& d( `6 |" e! P7 e LDA #$FF
' Z) o8 Q5 ~6 g2 G9 b* u+ |9 U STA TIME_LAY    ;重设标题延时9 P( j$ v! \/ s0 z- k2 i" I
LDA STAGE_TEMP
1 |. U8 z0 Y. n- {8 ^4 x% Y; G CMP #$00    ;关卡比较  |& u$ n9 l( M& n' y* c
BEQ KEY_A
5 [" r% d) x* F! M% R+ S- y DEC STAGE_TEMP   ;减关+ _/ ]7 M: v& V+ H5 H' G: _
JSR MUSIC    ;按键音效6 ]% S; q0 X  y" v
KEY_A:    ;关卡增加
0 d6 P# x# k) o" i0 B' a* b LDA KEY_ADDR
+ Y) \) _: {2 s' j AND #BUTTON_INC    ;按键A或右加关' h2 q* G* n( C- [
BEQ PPU_NUM_WRITE) I7 R# k: g. H  J4 |) l
LDA #$FF
2 W# I' o5 ^' J1 L. H STA TIME_LAY    ;重设标题延时
" G( y2 o# E8 S2 ] LDA STAGE_TEMP
: U0 l  p- q1 l' J# Z0 | CMP #STAGE_MAX    ;关卡比较/ F4 t1 {# [2 t
BEQ PPU_NUM_WRITE+ `* z2 J$ ]" k: k9 q0 f
INC STAGE_TEMP    ;加关
7 o( a6 X! [- M  U1 P4 [6 I; A2 m JSR MUSIC    ;按键音效
8 K6 W: \, ]" _6 J$ G: ]; ^PPU_NUM_WRITE:    ;关卡数字写入地址
, a6 g. i2 }! ~, f, k LDA #PPU_ADDR_H; \3 ]/ R8 Z* Q2 |; ~# M
STA $2006    ;设置PPU数字写入高位地址
7 j( N  n/ F  |2 s$ G. A; l LDA #PPU_ADDR_L
" G/ m( V+ Z% @% s. [# H CLC
, e8 A  l: d. U  @; P ADC #NUMBER_A
4 @  q4 t' a* g' L8 t+ v5 z STA $2006    ;设置PPU字符写入低位地址
2 [* K  a# Q4 T( L, D& P& ~0 Q LDA STAGE_TEMP- w9 R: s- R' Z8 u- ]- E& G( \
TAX
# S; x9 S, @$ Z9 l! T6 A7 C# z LDA STAGE_D1,X    ;写入数字5 Z. d/ v+ V% C) t* x
STA $2007' d8 o" o! P/ J; C: h9 i
LDA #PPU_ADDR_H
5 ~6 _$ I7 ]' ^! d" f STA $2006    ;设置PPU数字写入高位地址
+ r) k7 p' r# [ LDA #PPU_ADDR_L$ k/ ~& t* H$ b/ c" Q1 r3 x0 [
CLC% z- X' l$ c& o7 L! O
ADC #NUMBER_B
# v7 X4 N$ _9 @1 `) K8 |! D STA $2006    ;设置PPU字符写入低位地址( l- Z8 o$ \, l! |: A- v% r- d
LDA STAGE_TEMP/ i: M! j$ N" f+ [. U
TAX
+ ]7 l, B. `8 y& y8 i LDA STAGE_D2,X    ;写入数字. g; G) X$ w; t+ \8 k0 ~
STA $2007
" @. P2 c; ?" j$ I* {2 wSTAHE_WRITE:7 s, B8 k  b$ f" H0 C" d
LDA STAGE_TEMP1 J; W/ X, Y2 J& p
STA $2D   ;初始关卡写入; s" `# N+ I0 C- T
PPU_RTS:    ;恢复数据6 J3 T" @0 I% @) e8 Y
PLA
* t3 \. A, F6 `* e  x  b5 e4 p TAY- q3 y* m1 Y9 c8 z1 S8 m* x2 y
PLA
4 k5 J1 ~  c$ G8 I TAX& O. X8 M$ \6 r: `
PLA5 Z' T0 F$ g( w) u" I
RTS( N8 n$ h7 p$ Y

. H3 R1 C( J2 \: B' iSTAGE_DATA:    ;关卡文字S,T,A,G,E,X,-,X字模数据
6 d: {. H  t2 j* U .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END- `& u5 A% b9 e2 \4 F% t3 F

1 _3 L# D" W- N) D) V( _0 sSTAGE_D1:   ;关卡数字
5 Q. W1 `- g3 H% U .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
1 I) C; A% l. @- P& r% q: a& X5 ^* h4 B! b; h# {
STAGE_D2:   ;场景数字
* A6 S. M6 Z" a% `3 g* s6 d .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
4 v4 S. v1 u! }# n' r $ x$ _; c8 k- h1 J) ]
/ e9 z; u& z% D- u& \) S& l5 {
MUSIC:    ;按键音效9 B" P$ C+ c2 x- C( E3 ~/ a
LDA #$3B    ;音乐号  l  \. q) X( n
JSR $919E    ;系统音乐调用+ O3 {, T0 Z# D0 |
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 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 2449 天

[LV.Master]伴坛终老

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-6 21:37

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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