EMU618社区

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

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

[复制链接]

签到天数: 1803 天

[LV.Master]伴坛终老

发表于 2013-10-24 19:20:46 | 显示全部楼层 |阅读模式
原帖丢失了,重发一份。
  N4 b1 G' y/ U. W
9 d5 \# g! E# J0 S修改内容:
% z& t! R  L* X* O1.P ROM由128KB扩容到256KB
' A8 ~5 Y5 o# o- {  b' Q2.按START+B武器数量为99# g/ r) |3 r. g, I. [
3.按START+A补血* P. m: x$ U) W( I
4 @- A, ]1 M& P
这个HACK ROM本来以前答应某人做个例子给参考一下,因工作忙以及以前用的切BANK方法不完善的关系所以没放出来% i. u! H& A) k8 R4 _

, ?  N4 u9 I7 K; Y) p从原单位滚蛋后就有时间来弄一下
6 `0 s$ k) L) I) B' r0 i4 O4 N4 ~: y$ x, ~8 R' w
关于如何扩容:在文件头后面或驻留体前面添加一大量0xFF或0x00,有可能或在程式中间添加,在哪里视游戏而定吧,有何规律我也不清楚
) A% p7 q  h5 O% M4 p/ m8 Y5 Y  ]) G' b6 _( ?2 g( M) Q
关于如何切BANK:请看相关mapper资料吧% b" F/ H) v: ]- o
1 r* _5 L3 z5 x' ]2 E
说说我双截龙3 MPPPER 04如何切BANK:
  1. ' x3 ?% R$ U6 M3 l
  2. $xxxx& O: u# [+ S  m7 y
  3. LDA #$07; u6 V% [2 b% y: U
  4. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF, G8 T- y' V. K/ Q
  5. LDA #$0E3 \" }% r  `$ L3 `- N
  6. STA $8001 ;把0x0E写入8001端口,把ROM的$1C010-$1E00F地址内容写入内存地址$A000-$BFFF9 u) k2 `7 u6 M; ?+ B' w; H
  7. JMP $A000 ;跳转到$A000执行. W  S9 u1 T* k6 H# K/ b% V

  8. 7 O2 D7 p; g( c% K" g4 o& s
  9. $A000:! W6 }" V! v; ~( L: r
  10. .  c" G1 t- t% F; _( K, U1 N( x# ]- ?
  11. .
    + |. c# U- Q9 X1 K$ j* {% n
  12. .0 s& X$ A3 q5 p5 w  `8 S
  13. .; |' z7 \/ x3 K2 F. n
  14. JMP $xxxx ;执行完自写的程式后跳回去
    ' [  U! C- f, x3 W0 Z6 I
  15. - U8 g( l: X1 I& {4 L
  16. $xxxx:
    9 v" y6 N0 ]9 w# j" g
  17. LDA #$07
    0 r) I; b( B. x7 C9 V7 ^
  18. STA $8000 ;把0x07写入8000端口,选择要切BANK内存地址$A000-$BFFF
    7 \' |/ o9 m7 o
  19. LDA #$0D
    - n- C7 C/ C8 z( m
  20. STA $8001 ;把0x0D写入8001端口,把ROM的$1A010-$1C00F地址内容写回内存地址$A000-$BFFF
    - q6 ^- q3 M2 o4 w* }! p4 y. P

  21. ) L# ]$ L8 W* @7 \9 ]7 t- |0 X
  22. 切BANK前建议做压栈操作保护寄存器数据,当切换完BANK后出栈还原寄存器数据,这只是建议
    ; G2 [- @; [( ?& l$ q

  23. ! G* G- _3 T; P& ~% V( N0 R
复制代码
关于什么时候切BANK:用NMI中断来切BANK吧(在NMI中断程式中插入切换BANK程式)
1 M- O( W2 w! W) j/ q$ B$ E( r7 D( A6 M/ p* s! f
附:ROM 16KB BANK编号
* ]2 j* y+ V8 o. G. I2 l2 M
; C  e' E! I' H8 r3 R! I' _ROMf地址      BANK编号
: `/ v7 B: s$ l2 j+ A$ E2 m' a+ ]; [00010-0200F  00 z1 |% E1 [  ^; i, q1 Q9 r
02010-0400F  10 j8 e( z. @& ^& h2 O/ m7 K
04010-0600F  2
  d- J3 g" q/ G) }- F06010-0800F  3
  i  x! n3 s7 z" X08010-0A00F  4
, a6 \; M' i0 O0A010-0C00F  5
2 x9 Q- a% q- k# i  P0C010-0E00F  6. g8 |6 `3 y  r
0E010-1000F  7
& P; R- T1 q: z  h  y10010-1200F  8+ [) Z4 e! e! p
12010-1400F  9
$ y0 F6 [; Y& e* T! a14010-1600F  A
" |3 X0 T* Q. _* {; o" f16010-1800F  B
: j8 w" k0 @. Z1 v! i18010-1A00F  C
) ^; B( K5 A' ~. e1 \3 [1A010-1C00F  D' h, w& \, M; X, E
1C010-1E00F  E1 a- N7 D3 D& |. D& m8 F
1E010-2000F  F* A( t& O3 D' `+ s
.
, `% _. C$ \" @+ W* q: d.
! a! ~5 e8 O5 @2 V5 |- \.
% G9 ^7 }( a( T/ X$ a9 Q5 C  ?+ D/ I4 B: }) b, `
解释一下我为什么把P ROM 128KB扩容到256KB,不扩容到144KB?# T- F% f+ X) {7 L' i- w9 V
5 L) W& d5 [' {. N, o# r
因为扩到144KB的话有的模拟器是不认,无法运行' ~/ V, T4 p) ]9 Z

9 C) p4 j8 S# U9 ]+ |  [7 |为了全FC模拟器能兼容,所以只好扩容到256KB1 D! y$ ?9 d. @& L$ e
% T1 l- Q+ E! |7 ]
补充:扩容后记得修改ROM文件头P ROM 16KB数目(地址:0x4),不然有可能引致载入ROM失败或死机9 T, R8 }# r9 @* Z

6 G: T3 K8 C9 i

本帖子中包含更多资源

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

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

签到天数: 434 天

[LV.9]以坛为家II

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

签到天数: 2776 天

[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-12-19 12:37 , Processed in 1.071289 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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