跳转到内容

帕特港战车购买

奥多镇下方帕特港的战车商人可以还价购车(对应 4 号战车,实机确认)。结论来自 FC 日版 ROM 静态反汇编。

  • 最低可能成交价 40000G,低于 40000G 必定失败。
  • 40000G 不是必成:原版成功率只有 4/256 = 1/64 ≈ 1.56%
  • 100000G 及以上必定成交。
  • 失败不扣钱、不累计失败次数,也不会改变下一次的档位或概率——没有保底,可以无限重试。
  • 成交判定读取随游戏帧推进的伪随机字节,所以确认出价的按键时序会影响结果;反复读同一个即时存档并用完全相同的帧时序操作,可能一直得到同一个结果。

判定例程(bank 0x18:$AD8F)从高到低找到不超过出价的档位,把该档截止值与伪随机字节比较,成交概率 =(截止值 + 1)/ 256:

出价截止值成交概率
< 40000G0%
40000–41999G0x034/256 ≈ 1.56%
42000–43999G0x056/256 ≈ 2.34%
44000–49999G0x089/256 ≈ 3.52%
50000–54999G0x0A11/256 ≈ 4.30%
55000–59999G0x0D14/256 ≈ 5.47%
60000–79999G0x1A27/256 ≈ 10.55%
80000–99999G0x4D78/256 ≈ 30.47%
≥ 100000G0xFF100%

档位金额是 40000 / 42000 / 44000 / 50000 / 55000 / 60000 / 80000 / 100000;截止值表位于 $AD87 = 03 05 08 0A 0D 1A 4D FF。出价 41999G 和 40000G 概率完全相同,所以还价只在这 8 个整档之间有意义。

成交比较使用的伪随机状态随游戏帧计数推进更新,确认出价发生在哪一帧决定了判定读到的随机值。这不意味着失败会「积累运气」——档位表和截止值永远不变,只是每次确认经过的帧数不同,通常会抽到不同的随机值。实用建议就一句:出 40000G 反复谈,或者攒够 10 万一次买断。

想跳过 1/64 的概率,只需把最低档截止值 0x03 改成 0xFF(40000–41999G 档变 100%,其余档位与扣款逻辑不动):

  • IPS 补丁:ROM 文件偏移 0x30D9703FF
  • Mesen 金手指AD87:FF:03(NES Custom 格式,带原值比较以避开 MMC3 同地址的其他 bank;购买前开、成交后关,不改 ROM 和存档)。

两种方式效果相同,使用时直接出价 40000G 即可。