帕特港战车购买
奥多镇下方帕特港的战车商人可以还价购车(对应 4 号战车,实机确认)。结论来自 FC 日版 ROM 静态反汇编。
- 最低可能成交价 40000G,低于 40000G 必定失败。
- 40000G 不是必成:原版成功率只有 4/256 = 1/64 ≈ 1.56%。
- 100000G 及以上必定成交。
- 失败不扣钱、不累计失败次数,也不会改变下一次的档位或概率——没有保底,可以无限重试。
- 成交判定读取随游戏帧推进的伪随机字节,所以确认出价的按键时序会影响结果;反复读同一个即时存档并用完全相同的帧时序操作,可能一直得到同一个结果。
价格档位与成交概率
Section titled “价格档位与成交概率”判定例程(bank 0x18:$AD8F)从高到低找到不超过出价的档位,把该档截止值与伪随机字节比较,成交概率 =(截止值 + 1)/ 256:
| 出价 | 截止值 | 成交概率 |
|---|---|---|
| < 40000G | 无 | 0% |
| 40000–41999G | 0x03 | 4/256 ≈ 1.56% |
| 42000–43999G | 0x05 | 6/256 ≈ 2.34% |
| 44000–49999G | 0x08 | 9/256 ≈ 3.52% |
| 50000–54999G | 0x0A | 11/256 ≈ 4.30% |
| 55000–59999G | 0x0D | 14/256 ≈ 5.47% |
| 60000–79999G | 0x1A | 27/256 ≈ 10.55% |
| 80000–99999G | 0x4D | 78/256 ≈ 30.47% |
| ≥ 100000G | 0xFF | 100% |
档位金额是 40000 / 42000 / 44000 / 50000 / 55000 / 60000 / 80000 / 100000;截止值表位于 $AD87 = 03 05 08 0A 0D 1A 4D FF。出价 41999G 和 40000G 概率完全相同,所以还价只在这 8 个整档之间有意义。
为什么按键时序会影响结果
Section titled “为什么按键时序会影响结果”成交比较使用的伪随机状态随游戏帧计数推进更新,确认出价发生在哪一帧决定了判定读到的随机值。这不意味着失败会「积累运气」——档位表和截止值永远不变,只是每次确认经过的帧数不同,通常会抽到不同的随机值。实用建议就一句:出 40000G 反复谈,或者攒够 10 万一次买断。
修改方案(可选)
Section titled “修改方案(可选)”想跳过 1/64 的概率,只需把最低档截止值 0x03 改成 0xFF(40000–41999G 档变 100%,其余档位与扣款逻辑不动):
- IPS 补丁:ROM 文件偏移
0x30D97:03→FF。 - Mesen 金手指:
AD87:FF:03(NES Custom 格式,带原值比较以避开 MMC3 同地址的其他 bank;购买前开、成交后关,不改 ROM 和存档)。
两种方式效果相同,使用时直接出价 40000G 即可。