【发布时间】:2019-08-08 06:26:55
【问题描述】:
我正在尝试破解一款名为“Katz und maus”的老式准将游戏。我已经实现了无限的生命,重写了分数,我已经实现了水平跳跃的一半。我认为精灵碰撞将是完成关卡跳跃的关键。
问题是我在代码中找不到任何可能导致精灵/字符冲突的部分。
我试图用动作回放模拟器找到它:没有结果。
在 MC 监视器中,我搜索了 D01E 和 D01F,但所有匹配都是由操作码引起的:
H 0000 FFFF 1E D0
H 0000 FFFF 1F D0
我也试过寻找LDA $D01E和LDA $D01F,但没有结果:
H 0000 FFFF AD 1E D0
H 0000 FFFF AD 1F D0
我还能检查什么?谢谢!
【问题讨论】:
-
嗯,我想知道这是不是这里的主题,或者在Retrocomputing上更好。
-
如果碰撞导致变量发生变化,例如健康、生命、积分,请尝试搜索这些变量之一,然后搜索引用这些变量之一的代码。如果计算此类变量的地址,这可能是个问题。
-
@NickWestgate: 或者reverseengineering.stackexchange.com,但是对于在 6502 等旧处理器上破解旧游戏来说,逆向计算可能是更好的选择。
-
@NickWestgate 这里是主题,因为它是关于编程的。这个问题是否在另一个网站上是主题无关紧要。这里没有规定要求问题与足够现代的技术有关,逆向工程问题也不是题外话
-
您是在模拟器中运行它吗?如果是,请尝试从 VIC2 冲突寄存器中读取数据(例如,Vice 控制台中的
break load $d01e $d01f)
标签: assembly sprite reverse-engineering 6502