EMU618社区

 找回密码
 立即注册
搜索
查看: 1216|回复: 7

[原创FC/FDS-HACK] [重发]双截龙3日版扩容+按键HACK

[复制链接]

签到天数: 1560 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
; ?' B. G4 g& C! U. L
' k. A! r3 W- {% X( C! w! s修改内容:
$ H, I. B9 H+ ~' v) I" u6 N; F1.P ROM由128KB扩容到256KB
% V) x7 {1 u( a7 z5 G) b2.按START+B武器数量为99) m/ @" e- b8 `: n
3.按START+A补血2 j4 R+ L: ], S; ?  H

, j3 j1 w- M5 P# R* r3 ]: w这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来
; A! ~; ^- N' p* ]# I2 M8 d1 L$ @) v4 ~  A) t
从原单位滚蛋后就有时间来弄一下8 l3 w+ I; |, q3 V) a3 _( \/ p

$ {- v; F7 ?2 b  q2 G7 q9 g& U* B关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
/ X5 C: }( [  y* D: \% A1 Q: A! l' B. x2 e0 B2 x
关于如何切BANK:请看相关mapper资料吧) S/ v( M. V8 |7 w- ]

( y: i* l! y% M( }0 q- V, G说说我双截龙3 MPPPER 04如何切BANK:
  1. + ^; z; i/ ^, L2 L4 i4 z
  2. $xxxx
    6 o, q  V7 d) O# S+ ]
  3. LDA #$07
    ' z3 s$ _$ B- I/ ^. H( x
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF2 w. Q7 s6 c( f5 A
  5. LDA #$0E
    # r( i# z3 W' O1 Y5 f! D
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF
    1 f" }+ E  B! v7 p
  7. JMP $A000 ;跳转到$A000执行
    $ ~3 ~3 Y: j' E. x7 s$ I

  8. # \- Z  m5 i3 w0 l! G! j' v
  9. $A000:7 H4 C/ ?  r) M+ i& V
  10. .
    * `0 Y8 ]) }* R4 D2 I: n
  11. .8 k6 k* u, D8 g
  12. .
    - [& |% A8 _7 A- E# ?
  13. .
    7 @; P3 E2 u: i6 ^2 i. N
  14. JMP $xxxx ;执行完自写的程式后跳回去6 M6 q2 s* y3 ^# ^" ]

  15. - I1 z* N; G; `& Z
  16. $xxxx:0 w% d& T1 D7 a& Y. N
  17. LDA #$07# n& H# z, o. E5 T# I9 b) k
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF# D, A* S& C7 {. g
  19. LDA #$0D% L) S7 M& g& V, Z" o9 b
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    $ x+ ?! f6 `4 o. D  h1 S

  21. # }0 O( i1 x# M* u" v
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    + {* N& t+ v( p  q! n. D  i

  23. ) W- P8 R2 M. y' O; _+ o7 Y. O
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
+ O  j* J( M* y7 _2 {; S* d* {* z4 {, m6 e
附:ROM 16KB BANK编号
  z. W; L* `! X2 }( ~/ ^' |. Q( T& a' a9 z, ?. [
ROMf地址      BANK编号
5 e  s; I$ F( w% }, W" W00010-0200F  0
+ A5 R6 U  E, ?2 v02010-0400F  1+ F' D' V0 `1 Z
04010-0600F  26 w( F) p7 }+ [! T( y
06010-0800F  32 a$ x9 ~' t% P5 i
08010-0A00F  40 U- ]. D+ m( F- q
0A010-0C00F  5
9 j  s8 G  |. p8 F- o3 m- w0C010-0E00F  67 l8 p7 l3 U% U/ z/ V
0E010-1000F  7
: T& g& j" X% R3 i: l- I10010-1200F  8
5 k) ?% z. D5 \1 Y1 x! F8 W5 _; I/ j& t  t12010-1400F  9( z, D% D9 X) z& v& L% T
14010-1600F  A& P, s  I/ F+ T3 q8 z* H' h
16010-1800F  B
5 ]. D! d, @( Y9 t18010-1A00F  C2 {0 n' r, S  e
1A010-1C00F  D" m& M, X; s; \' `' Q. \
1C010-1E00F  E' h9 D5 G- D7 |. _( R
1E010-2000F  F6 x' i2 v/ q7 P8 `3 y! O2 Q2 Z7 F
.
0 |- `% c( K! Y6 e.
% ~+ n: t# k, K6 }- I2 v% p) p: {% G.
7 c0 A! G3 k7 ?& o
1 M6 B5 [$ N3 L+ K解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?
( q" U. e) P. o& N: K! L% L
5 j/ u& g. g& M因为扩到144KB的话有的模拟器是不认,无法运行/ t% o# i: |3 v2 Y7 M4 k) [

" `, K9 A4 e! n6 j1 r  S0 p% e为了全FC模拟器能兼容,所以只好扩容到256KB* Z' b, r( P. r! y
  y# F( `4 g/ }9 I) D- F! |/ j
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
' U( X- w" p, r" `
9 m* T: G+ Z' i) R/ M

本帖子中包含更多资源

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

x
[发帖际遇]: 疾风之狼 在网吧通宵,花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 434 天

[LV.9]以坛为家II

发表于 2013-10-24 19:23:39 | 显示全部楼层
{:4_98:}沙发支持,顺便下载!
[发帖际遇]: 283167657 打扫环境卫生,被奖励 2 个 柠檬. 幸运榜 / 衰神榜

签到天数: 2536 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:29:43 | 显示全部楼层
这个。。。只能膜拜了。
[发帖际遇]: 天迹云间踩坏了花花草草,被罚款4 个 柠檬. 幸运榜 / 衰神榜

签到天数: 594 天

[LV.9]以坛为家II

发表于 2013-10-24 19:36:57 | 显示全部楼层
支持了 如果能把圣火徽章外传日版扩容就可以中文汉化了吧 这是大功一件哦 先谢谢了

签到天数: 881 天

[LV.10]以坛为家III

发表于 2013-10-24 23:17:03 | 显示全部楼层
圣火徽章外传……唉,外星汉化那个玩起来看得蛋好疼

签到天数: 1418 天

[LV.10]以坛为家III

发表于 2013-10-24 23:32:44 | 显示全部楼层
话说这个我一直都没搞懂{:4_106:}

签到天数: 215 天

[LV.7]常住居民III

发表于 2013-10-28 00:20:58 | 显示全部楼层
感谢up分享

签到天数: 1296 天

[LV.10]以坛为家III

发表于 2013-10-28 16:31:04 | 显示全部楼层
谢谢楼主的分享,支持一下!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-20 15:49 , Processed in 1.093750 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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