EMU618社区

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

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

[复制链接]

签到天数: 1717 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
; @" ^: E% T  n6 u
# N4 q* Y" m* g! z修改内容:1 S' |% u6 Y8 T1 |7 U/ L
1.P ROM由128KB扩容到256KB
; a& Q; f8 s) V" t2 h) j2.按START+B武器数量为99
- B2 P5 q" U7 q3.按START+A补血; i" e; o9 a# A7 b/ A% v4 R
7 c9 L$ O/ m$ U4 I
这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来: s6 }, u2 Z$ [) D3 U- v0 C5 l
9 e) [3 e) W" c" W+ [9 Z, a
从原单位滚蛋后就有时间来弄一下
) o2 Y3 |7 D9 [* U$ h9 ]& Y# @# w( n5 B2 ^0 a+ _2 r* g
关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
1 E& b: y7 z( H% m8 q8 O
6 F7 c2 b, P$ S6 S4 @; ~关于如何切BANK:请看相关mapper资料吧
8 Y' G  Q0 O2 K$ I% V% R/ j5 ^8 F$ I1 O9 |* V! t3 [
说说我双截龙3 MPPPER 04如何切BANK:
  1. : t9 q, I  J6 J/ o, y$ b( D7 m
  2. $xxxx# X' A) [8 z2 R8 U% B
  3. LDA #$072 X3 K+ i5 u6 Z& I, r+ }5 n
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    : S+ ?9 @: {) _) E3 g8 m  T4 Q  |2 V2 P
  5. LDA #$0E# e0 k/ ~. x" U& y% n( C8 T
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF$ ?3 q* h7 ~, ^- V* T
  7. JMP $A000 ;跳转到$A000执行5 o9 t5 z- ^. T0 {3 Z

  8. ) W5 Y% n" f; ^  b8 ^
  9. $A000:! [$ o  {8 Z8 b- d  K
  10. .; y) L: R" ], Q- y1 n$ C
  11. .
    + x6 J7 A( H; h% K$ l
  12. .
    & j# Y! X* j1 ^
  13. .
    , K. B  T; o3 a3 Z  z' @
  14. JMP $xxxx ;执行完自写的程式后跳回去
    ' g: T$ H3 h, K4 u4 G! s6 K
  15. ) |- R6 |. C7 `8 P, v
  16. $xxxx:
    4 E0 z, b3 r2 `3 u
  17. LDA #$07
    $ m$ U) ~" T. `% ]
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
      m; T5 m, }9 F4 g
  19. LDA #$0D
    7 W! g, D/ X* c$ B8 M/ v2 E
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF7 g7 }4 C, y+ {! z" U
  21. 5 m0 q/ P2 e2 }, w. C
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    5 }$ x4 b. I1 U
  23. 1 w# y, l! Q1 K4 o- `$ X
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
3 z  U% f4 n0 h9 H$ v2 D- i  m1 N7 n
附:ROM 16KB BANK编号- b1 k6 \& k# H

- d0 U# b5 s2 B, s* l8 EROMf地址      BANK编号# U8 Q  [( z9 ~, G+ b- f2 u- }
00010-0200F  0* h2 J" [$ k( B; {& K7 T
02010-0400F  1& H* f. e+ B, o
04010-0600F  2
( d8 \3 k3 P4 ?9 r$ `4 g6 n  o* Q06010-0800F  3  J3 O7 ]5 E  H# d! q
08010-0A00F  4
( Q+ y# I$ e( A" O  i' ~2 B' ^0A010-0C00F  5
! ]8 I. A6 t9 I0 f# T' P' N0C010-0E00F  6
' [7 m' U; l# G7 ^6 {4 j8 W0E010-1000F  7
: b% G6 ]- x( e10010-1200F  8% ~1 N6 Q6 N9 K: D0 g# @/ Z/ V
12010-1400F  9
( ]1 w$ ?" [2 w8 R+ |: v14010-1600F  A
$ l+ w9 a" W& e" g) G  @. q16010-1800F  B
$ T# k2 Q: H& [3 B18010-1A00F  C& L, M+ k/ a+ g
1A010-1C00F  D) `* V. H1 U/ J
1C010-1E00F  E
8 e2 I1 k& l# V- Z1E010-2000F  F
. I" I' D; Q$ T.$ F3 b2 _' W0 C9 V+ w# A
.
& k) y: L# ^2 D$ t0 T.0 _1 O0 S# ]0 N) U- o
7 s5 q2 W0 U2 K+ d1 {: n
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?2 j; ?6 b5 z8 W" A( a- l+ g* ^
) C. c7 M% V' s5 u0 N$ y; ^$ R1 j
因为扩到144KB的话有的模拟器是不认,无法运行
5 s# J; u  a% `4 a2 R+ C, f# l, {
! F# C$ E+ m/ W- v3 v为了全FC模拟器能兼容,所以只好扩容到256KB
6 H" @* F3 |9 ?' A' x: E2 N7 ]% ]0 x& f, F# {# s: [# E
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机
2 U  S# V+ ~+ g) |1 k1 ?$ L3 v& Z8 F  |, F6 f1 h9 Q

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2689 天

[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-9-24 12:27 , Processed in 1.078125 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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