Emulator 板


LINE

作者 dewen (茅十八) 看板 OldGame 标题 [心得]自制任天堂红白机金手指密码的方法 时间 Sun Jan 29 05:00:16 2006 ─────────────────────────────────────── Game Genie 是一种红白机的金手指, ( OldGame RPG 版主有一块 ) 网路上有不少美版游戏的金手指密码, 但是日版游戏无法使用, 因此必须透过模拟器 + 日版游戏 Rom, 自制可以让日版卡匣使用的金手指码. 参考资料 http://www.angelfire.com/games2/codehut/DebuggerGGcodes.txt 工具 1. 具有 debug 功能的红白机模拟器 FCEUXD SP version 1.06 http://www.the-interweb.com/bdump/fceuxdsp/fceuxdsp-1_06.rar 2. 金手指 Game Genie 的 ROM ( Galoob 公司已允许自由传播 ), 可用来测自制的金手指码是否正确. http://nesdev.parodius.com/genie.zip 3. 日版游戏的 rom ( 自己想办法 ) 这里以美版游戏 Zanac 银河号以及 Zelda 2 美版为例. 建议以同样版本的 rom, 实际操作一次就会了解. 步骤 1. 将模拟器解压到次目录下, 例如 c:\fceuxd\ 2. 将金手指的 rom 解压到 c:\fceuxd\ 下, 同时由 genie.nes 更名为 gg.rom, 这样模拟器才会认得. 3. 将游戏 rom 档 zanac(U).nes 拷贝到 c:\fceuxd\ 下 4. 执行模拟器 fceuxdsp.exe 5. 选单 File --> Open --> 选 zanac(U).nes 载入游戏 接下来我们要开始利用模拟器提供的 cheat 功能, 找出存放 "只数" 的记忆体位址. 首先进入游戏, 开始出现敌人时, 按暂停, 然後选单 Tools --> Cheats 这时会出现一个视窗, 点选中间上方的 "Reset", 将资料重设. 右边的空白视窗会列出符合条件的记忆体资料. 因为此时还没设定条件, 所以会列出很多. 接着关闭 cheat 视窗回到游戏, 让银河号自爆, 减少一只, 再按暂停, 同样选 Tools --> Cheats 因为只数减少了一只, 所以在设定条件的 "Less Than" 右边空格打勾, 再右边 by 的空格填入 1 ( 表示减少的单位为一只 ), 然後按下 "Less Than" 的按钮, 这时右边记忆体视窗会筛检出符合条件的记忆体位址, 剩下 19 Possibilities ( 19 个位址符合条件 ), 可以观察这几个位址的变化都是由 03 --> 02 或是 02 --> 01. 重复同样步骤, 回到游戏再爆掉一只, 再回到 Cheats 同样按 Less Than by 1, 这时会被筛减到只有一行记忆体位址符合条件, 那就是 $0032 : 02 | 01 $0032 表示这是记忆体内存放只数的位址, 02 | 01 代表该记忆体内存放的资料数值, 由 02 变成 01, 也就是银河号的只数变化, 把这个记忆体位址 $0032 抄下来. 这时候如果你把 0032 填入右边的 Address 空格, 03 填入 Value 空格, 再按 Add, 其实就可以在模拟器下直接启用 Cheat, 它会把 $0032 的存放数值锁定为 03, 也就是银河号的只数一直保持在 03 不变, 但是为了能让实体红白机以及 Game Genie 硬体能够运作, 我们必须把这个记忆体位址与数值转换为 8 个英文字母 的金手指码. 这必须用到模拟器的 Debug 除错功能. 选 Tools --> Debug 会出现一个 6502 Debugger 的视窗, 接下来我们要设定 "中断点" Break Point, 选右边偏上方的 "Add", 会出现一个小视窗, 在 Address 的空格填入刚刚找到的位址 0032 然後把下方的 Write 打勾, 然後按 OK, 这麽做的意义是 : 当程式对记忆体 $0032 做 Write 写入的动作时, 游戏就会 中断 ,进入 debug 除错模式. 在 6502 Debugger 视窗下, 可以见到右边上方 BreakPoints 处, 有新增一行 $0032:EC-W ,这就是我们设的中断点. 接着按 Run 让游戏继续执行, 当银河号爆机的一瞬间, 只数由 03 变成 02, 程式会对 $0032 存放只数的位址做 Write 写入的动作 ( 把变少的只数资料 02 写入 $0032, 取代原本的 03 ), 因此符合我们中断点的条件, 程式会中断而出现 6502 Debugger 视窗, 左边是一堆组合语言, 看不懂没关系, 主要是第一行 $8F8F:C6 32 DEC $0032 = #$03 机械码 组合语言 这行的意义就是把 $0032 位址里的数值 减 1, C6 = DEC = Decrease 减 1, 32 = $32 = 0032 位址, 我们要让 C6 = DEC 这行减少的指令失效, 这样就变成只数无限了. 要把 C6 改成什麽数值才行呢 ? 何况有时候这个递减指令码不一定是 C6, 不懂组合语言的话怎麽修改 ? 还好, 根据前人的经验, 无效指令的改法有规则可循, 对照表如下 : ========================================================== 如果是 85, 改成 A5 如果是 8D, 改成 AD 如果是 9D, 改成 BD 如果是 C6, 改成 A5 <-------- 参考这行 如果是 CE, 改成 AD 如果是 D6, 改成 B5 如果是 DE, 改成 BD ========================================================== 所以对照之下, 只要把 C6 改成 A5, 这行递减只数的指令就废了. 也就是将 $8F8F:C6 32 --> DEC $0032 改成 $8F8F:A5 32 --> 指令作废 也就是说, 将记忆体 $8F8F 里面的数值, 由 C6 换成 A5 即可, 这就是 Game Genie 硬体在做的事情. 当卡匣的 ROM 传到红白机记忆体时, 金手指会把这段程式码拦截掉改成无效指令. 最後我们要做的事, 就是把上面的资料转成 金手指码, 选 Tools --> Game Genie Decoder/Encoder 左边的 Address 输入 8F8F Compare 输入 C6 <--- 原始数值 Value 输入 A5 <--- 修改数值 这时右边的 Game Genie Code 就会出现 SXEENYVG 这 8 个 英文字母 就是我们要的金手指密码了, 把它抄下来. 要验证密码正确与否, 在模拟器选单下 Config --> Game Genie 打勾 ( 确定 Game Genie rom 档 gg.rom 有在同一目录下 ), 然後载入游戏, 这时会出现金手指的输入画面, 将 SXEENYVG 输入, 成功的话就表示正确. Zelda 2 的做法也类似, 只是林克的血量并不是以 1 为单位递减, 所以在血量减少 Cheats 的筛检, 只点选 Less Than, 而不要填入 by 多少递减单位, 这样慢慢筛检, 最後可以找到存放血量的记忆体位址是 $0774, 将其设定为 Debug 中断点, 找到的第一行机械码是 $E337:8D 74 07 8D 是递减的指令, 74 07 就是位址 0774 我们要修改 8D 让这行指令作废, 查上面的对照表, 8D 改成 AD 即可, 因此在 Tools --> Game Genie Decoder/Encoder 处, Address 填入 E337 Compare 填入 8D Value 填入 AD 就会得到 SZUTYUSE 这组血量不减的金手指码. 最後补几个连结 : NesDev. 有很多红白机的硬体资料 http://nesdev.parodius.com/ 红白机金手指码格式 http://nesdev.parodius.com/nesgg.txt 红白机, 官方 Game Genie Code ( 美版游戏为主 ) http://www.gamegenie.com/cheats/gamegenie/nes/index.shtml The Code Hut. GB, SNES, NES, MD 的金手指码 http://www.angelfire.com/games2/codehut/ 红白机模拟器 http://rancer4.computed.net/xroms/nese.html 红白机金手指购买处 Lik-Sang 网站 ( 目前好像缺货中) http://www.lik-sang.com/info.php?category=182&products_id=2939&& 要搭配这个 60-72 pin 转接卡 http://www.lik-sang.com/info.php?category=125&products_id=171 -- ※ Origin: 巴哈姆特<bbs.gamer.com.tw> ◆ From: 220-135-28-136.HINET-IP.hinet.n --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.119.141
1F:推 conpo:长知识、专业好文推!需要的人可以参考一下 03/18 11:52
2F:推 AmosYang: 这篇文章 1.值得推荐 03/18 15:16
3F:推 garygod:先推 03/19 00:45
4F:推 aoirx:力生记得被任天堂告倒了,应该买不到了。 03/21 11:35







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS 或 站内搜寻

TOP