EMU618社区

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

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

[复制链接]

签到天数: 2074 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
4 B& F% @8 |: P$ J2 L& J! t1 Q  h& x! O, a9 S1 a
修改内容:
+ G& A3 L8 J/ F1.P ROM由128KB扩容到256KB
- a7 X3 X) T$ l( N6 x2.按START+B武器数量为992 F7 W$ l- J. w9 l$ {$ R3 Y
3.按START+A补血* O4 S/ P5 Y* Y3 \

2 U! I. P) ?4 |8 F这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来- ~5 o9 T* v! K: F: J7 O
: d# d4 e/ s8 J+ b$ U1 @' n" k
从原单位滚蛋后就有时间来弄一下2 v: S+ S# e: e* W% p7 q

. p; ^* f: E" T9 P- M' V" M4 g关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚2 C8 \# `- x- u4 v  P0 q

# p1 c, w4 v/ x! F关于如何切BANK:请看相关mapper资料吧8 k6 w5 ]; a4 O

0 g" Q  J$ G* v0 X+ K! E说说我双截龙3 MPPPER 04如何切BANK:

  1. / I1 u7 @% ^8 z& {: w% Y
  2. $xxxx
    $ R' }0 [" w" v7 M
  3. LDA #$07
    ; `5 ^( y% o; N( _8 w0 o1 C
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF1 P- B0 S( H  R3 K0 w) o
  5. LDA #$0E  X5 Z# S' v  }% @8 A( l! Y9 w
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF9 w1 O* A8 ^$ ?  r
  7. JMP $A000 ;跳转到$A000执行7 C) B4 U: _! V0 b1 k# I9 |) R

  8. * `. h- h, Y- k8 V
  9. $A000:* `; Q* c- r1 d  E1 U: x
  10. .
    0 q2 C3 B3 Z( K& s! J6 y% [
  11. .
    ) N+ Y4 o7 f! Q6 A
  12. .8 M* F! y" w: _( Y
  13. .
    + ^& K* j- q/ j6 B
  14. JMP $xxxx ;执行完自写的程式后跳回去
    ' A3 R1 a# I% g4 @$ E
  15. 1 S* a1 I/ w1 K3 V( S" v  [0 P
  16. $xxxx:( b2 |3 Z5 j- W7 S* M8 x  s
  17. LDA #$07
    + L( D: e: a- A" o' F# |
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
      C" [) }0 N, Q
  19. LDA #$0D
    # E5 E0 s$ p2 H
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    * i! I4 L2 D6 j! m
  21. * M5 `# _3 K5 {3 O! D* w
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    0 O* u# H8 i1 \! n) `2 K& B+ y

  23. 7 I6 Z% Y6 T" x+ v
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
1 V# K; k. v: }  W$ l. _. A1 e$ c. S1 {* T6 d: x- m7 A
附:ROM 16KB BANK编号
" x8 Q0 S+ w  o( p
- U% D4 D3 y# h6 rROMf地址      BANK编号3 `0 {4 r* N( g7 \% I6 C) \* T
00010-0200F  0
: A/ i* a8 u/ j; p+ u02010-0400F  1* \; f: M5 @7 F4 B9 n4 F
04010-0600F  2
. q6 O, m1 g* W06010-0800F  3% s8 c; \1 y& C+ o" f) [8 s5 e
08010-0A00F  4
, B) ]7 a9 j0 j. I, z4 ^0A010-0C00F  58 [& j: O5 |* C2 P# ^
0C010-0E00F  65 b3 }. P6 Q# y4 O% f
0E010-1000F  7
1 W' n) D& d1 H1 Z0 t6 ^1 c# V10010-1200F  8" n7 v! c$ y+ j" A% P- P% k$ i: @
12010-1400F  9( M+ n# s  p5 J& i; H
14010-1600F  A) u( s4 d* L( T- k) _$ N# ^
16010-1800F  B
5 W: y  F/ z9 _- \* g2 S7 v# C6 u18010-1A00F  C
+ P2 I1 l9 J! e  W8 M  V' U5 l1A010-1C00F  D6 M  p% N: v/ g3 a' h; |4 Q
1C010-1E00F  E4 m% {3 [& s/ b
1E010-2000F  F, B9 ?: u- g  O. p! S3 W
.; E. P' g8 M* j! b
.
8 z1 y5 Z6 ^8 }* m  g3 e& {.  a1 A# Z% Z6 f9 v7 k
3 ]# Q, g. p- g+ ^0 t
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?
3 B6 ?* L# Y& F, U. @8 h/ i
; I& w2 c, o+ }因为扩到144KB的话有的模拟器是不认,无法运行
. ^) X' R! C" w& [
/ W1 R2 K' [8 u, O/ x为了全FC模拟器能兼容,所以只好扩容到256KB( q& Q, @- L1 Y3 I, u* ~
8 z) T" O, t2 T( H4 d
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机& h, U. e% z1 V/ P

! {/ \+ l0 L+ g

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 3044 天

[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:}

签到天数: 216 天

[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, 2025-9-18 06:52 , Processed in 1.082031 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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