jmfarmer - 2018/1/8 11:19:29
題材來自銀河大人的 SFC 教學錄影帶
◆ 第四次機器人大戰 自動附加幸運
找到 獎勵金 7E0EDC 600=258 有幸運加倍 1200=4B0
使用幸運,查詢累積器A,何時由600,變成1200,就是關鍵
◇ 7E0EDC Write 中斷後RUN
$83/E0C7 8D DC 0E STA $0EDC [$83:0EDC] A:0258 X:002C Y:0008
$83/E0C7 8D DC 0E STA $0EDC [$83:0EDC] A:04B0 X:002C Y:0008
◇ 7E0EDC Write 中斷後Step Out 終點相同
$83/D92A AC A6 0E LDY $0EA6 [$83:0EA6] A:0258 X:002C Y:0008
$83/D92A AC A6 0E LDY $0EA6 [$83:0EA6] A:04B0 X:002C Y:0008
◇ Disassembly: 83D922 83D92A 搜尋JSL JSR jump的目標
$83/D922 D0 06 BNE $06 [$D92A] A:0258 X:002C Y:0008
$83/D924 8C DE 0E STY $0EDE [$83:0EDE] A:0258 X:002C Y:0008
$83/D927 20 10 E0 JSR $E010 [$83:E010] A:0258 X:002C Y:0008
$83/D92A AC A6 0E LDY $0EA6 [$83:0EA6] A:0258 X:002C Y:0008
◇ 83E010 Exe stepInto 一一尋找 A=258的前一行,便是ROM的敵機金錢位置
$83/E06A B7 00 LDA [$00],y[$CB:B17F] A:0014 X:002C Y:0010
A:0258 ....
ROM CBB17F 內容=0258 08,25 600銀元
◇ CBB17F Read ,中斷後,Step into
$83/E06A B7 00 LDA [$00],y[$CB:B17F] A:0014 X:002C Y:0010
$83/E06C 85 26 STA $26 [$00:0026] A:0258 X:002C Y:0010
將CBB17F 寫入 $26 ,繼續追查... 其中省略
$83/E08D F0 0B BEQ $0B [$E09A] A:2000 X:002C Y:0008
$83/E08F 06 28 ASL $28 [$00:0028] A:2000 X:002C Y:0008
$83/E091 06 26 ASL $26 [$00:0026] A:2000 X:002C Y:0008
將$26左移 放大兩倍 BEQ 零則前往E09A
只要關閉BEQ 檢查,則都會放大兩倍
修改ROM 83E08D 為 F0 00 改為 BEQ #0 等於進入下一行
jmfarmer - 2018/1/8 11:24:49
自己改機器人大戰三
卻發現,困難重重,
中斷後 RUN ,A始終在600,不會變成1200
只好土法煉鋼
戰鬥畫面結束,返回主畫面,時便會寫入金錢
趁此時,使用Step into 觀察A何時由600變成1200,
此段便是關鍵
jmfarmer - 2018/1/8 11:28:55
請銀河大人,分享M68000 編譯器,指令轉機械馬 的程式
感謝
還有Mame plus 含debug 模擬器 何處下載,也請告知
银河漫步 - 2018/1/8 14:21:12
[attach]3343[/attach]
你要的编译器,作者axdx
不过其实如果是写大量代码easy68k比这个好用
mame 0.126之后所有版本都可以debug
在设置里开启debug菜单就可以了
jmfarmer - 2018/1/8 20:11:39
感謝分享
jmfarmer - 2018/1/8 20:33:58
lehuynhminh - 2018/1/12 11:38:16