作者Append (鸦片)
看板Rockman
标题Re: [闲聊] 洛克人X1鬼故事:你已成为正版的受害者
时间Tue Aug 6 12:56:39 2024
1F:推 rockmanx52: 其实就算BSNES後来也有妥协过把部分触发机制拿掉 现 08/05 11:46
2F:→ rockmanx52: 在的模拟器记得都比实机不容易触发了 08/05 11:46
3F:→ Append: 妥协过? 08/05 17:01
4F:→ Append: 我对这个说法有点困惑,能解释得更详细一些吗? 08/05 17:18
5F:→ Append: "妥协"指的是什麽 / 把哪部分触发机制拿掉 / 现在的哪些 08/05 17:19
6F:→ Append: 模拟器 / 比实机更不容易触发哪一些机制 08/05 17:19
7F:推 rockmanx52: BSNES曾经在changelog上说过类似「提升洛克人X1.0的 08/06 09:34
8F:→ rockmanx52: 可玩性」 但没有明确说有拿掉哪些触发机制 08/06 09:35
一时之间不知道去哪边找详细的changelog,
花了一小时左右爬了一下github的tag comment,
在v011找到
- Added basic ROM mirroring support.
Fixes copy protection issues in MMX, etc.
是这个吗?
9F:→ rockmanx52: 总之现在所有模拟器都比实机不容易触发是这圈子的共 08/06 09:37
10F:→ rockmanx52: 识 要用模拟器去验证什麽动作会触发是浪费时间 要研 08/06 09:37
11F:→ rockmanx52: 究请乖乖用实机 08/06 09:38
12F:→ rockmanx52: BSNES的「妥协」是因为作者的目标是做出一款使用体验 08/06 09:40
13F:→ rockmanx52: 「与实机完全相同」的模拟器 所以减少X 1.0触发bug机 08/06 09:40
14F:→ rockmanx52: 制的修改就是放弃了前面的坚持 08/06 09:40
我觉得是相反的。
我认为在这点上作者并没有放弃这个坚持,
因为这样比较符合实机的记忆体映射。
同时我并不认为用模拟器去验证如何触发是浪费时间。
Rockman X (1.0) 在日版卡带上面有个跳线+二极体的修正。
这个部分对照过电路後,效果会是「阻止 Bank $00-2F mirror到 $30-3F」。
这个部分我们有找到两组不同的人分别对此的讨论,
两组作法我们都有利用电路模拟工具验证过,我想应该是正确的。
bsnes 对此的应对方式,是 「记录下这个电路板上的内容」※注1
- 这个电路板上有12Mbit的ROM
mapping是 $00-2F:8000-FFFF
mirror到 $80-AF:8000-FFFF, $40-6F:0000-FFFF, $C0-EF:0000-FFFF
- 这个电路板上没有 SRAM。
毕竟这不能从 ROM 猜出来,而是实际上打开卡带才能看到有这个跳线,
也才能从他的电路与超任的 LoROM 规则去推算出这个 mapping 。
所以我认为 bsnes 在做的与其说是模拟一个 ROM 的执行,
而是模拟一个卡带的运作,包含其中的电路板上面的晶片,与这个外加跳线。
因此我认为这是符合实机情况的模拟方式;
相对的,放弃实作出这个跳线取消的 mapping ,会比较偏离实机运作的情况。
除此之外,bsnes 让我们能够自行定义卡带的内容,
因此我们透过 bsnes 达成以下的测试:
(1) 手动加上 $30-3F 的 mapping
这相当於取消了这个跳线修正的效果,会让爆炸计数器生效。
(2) 手动加上 SRAM
这会同时让 爆炸计数器/落下计数器/受伤计数器 三个机制同时生效,
这符合许多磁碟机玩家的记忆;
但确实有一些磁碟机能够躲过这个判定,
我无法判断里面是不是有刻意阻止SRAM读写?
理论上这有可能判断,因为ROM Header里面其实有纪录SRAM大小。
(3) 手动取消 $00-3F 到 $40-7F 的 mapping
这会让开场的demo中的X没有铠甲,以及全装甲密码进入关卡中被拔光装备。
这个机制之前有在 ZSNES 1.2 中看过。
如上,我觉得使用 bsnes 让我能够比较有系统地重现了上面的这些机制,
而且也因为(1)我们才能相信把跳线修正取消掉就会让爆炸计数器生效,
因此决定下去剪掉二极体,在实机上让原本修正过的卡带产生了爆炸计数器的效果。
所以我认为使用模拟器进行验证并没有在浪费时间。
不过我对於「现在所有模拟器都比实机不容易触发」这点很有兴趣,
虽然实机做了跳线修正後不太会触发这问题,而且把二极体剪掉之後能够重现,
但我想这边指的应该不是在说实机会不会触发,而是单指模拟器可以不会触发?
但我所知道的模拟器不太多,
目前我只知道 bsnes 主动避免这个触发,
snes9x 1.56-1.61 会触发这个问题,1.40-1.55不会,1.62後不会。
zsnes 一如既往地都会,snesgt会,
我满想知道还有哪些模拟器不容易触发?
※注1
bsnes 有纪录 Rockman X 1.0(J) 的 ROM 会对应到 SHVC-2A0N-01#A 的电路板。
那个 #A 描述的就是那个跳线修正;
但其实我们有看到同样是 1.0 的版本,却使用了不同的电路板。
XGOD 手上的 1.0 使用的电路版是 SHVC-2A0N-11,
我手上的 1.0 使用的电路板是 SHVC-2A0N-01。
两个卡带都能够让冰车击倒boss的时候不会破碎,因此我们相信这是1.0。
1.1在这个场合应该会立刻碎掉。
实际上两个电路板都有跳线,
同样都是一个电阻+一个二极体+切断原本的一个BA5输入,
主要是在74LS00的连接方式上有所差异,
因此可以从外观上看到跳线连接的方式不一样,
但内容都是1.0。
所以我满有兴趣的 - 为什麽同一个 ROM 会用到不同的电路板?
除此之外也有点好奇 bsnes 当初知不知道有 RMX 1.0 也有对应到 SHVC-2A0N-11。
虽然我们也从他接线的方式判断出,这应该会有一样的效果,所以其实并不影响。
--
███◣ ◢██◣ ◢██◣ █ ◢█ ◣ ◢ ◢██◣ ◣ █
█ ██ █ ██ █ ██ █◢█◤ █◣◢█ █ ██ █◣ █
█ ██ █ ██ █ ██◤ ████ █ ██ ██◣█ @ ptt.cc
███◤ █ ██ █ ██◣ █◥◤█ ████ ████
█◥█◣ █ ██ █ ██ █◥█◣ █ █ █ ██ █◥██ 鸦片(Append)
█ ◥█ ◥██◤ ◥██◤ █ ◥█ █ █ █ ██ █ ◥█twitch.tv/append
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.47.181 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Rockman/M.1722920203.A.4FD.html
15F:推 ainamk: 有没有可能代工的工厂不知道有物理防盗 觉得电路板没差? 08/06 20:16
16F:→ ainamk: 所以才会社内测试都没事 到拿到实际上市的卡匣才有问题 08/06 20:17
17F:→ Append: 如果开发过程已经玩了很多次,制品版打一关没问题, 08/06 23:17
18F:→ Append: 打随意组合的密码进去打个一关没问题 08/06 23:17
19F:→ Append: 说不定真的会没有第一时间发现... 08/06 23:17
20F:→ Append: 但选择要用SHVC-2A0N的同时就同时决定了74LS00 08/06 23:32
21F:→ Append: 所以这应该是CAPCOM这边的选择 毕竟选哪张版子是很早的 08/06 23:33
22F:推 ainamk: 但是你今天看到两种不同电路板 我们姑且不管是谁选的 08/06 23:46
23F:→ ainamk: 我会觉得是指定电路板的人根本不知道上游搞了硬体防拷 08/06 23:47
24F:→ Append: 我觉得这个指定不是代工的,但是我同意有可能跟写的人不同 08/07 00:12
25F:→ Append: 然後这两种不同的电路板都会出同一个问题,因为开发用的 08/07 00:13
26F:→ Append: 又是另一种电路板.... 08/07 00:13
27F:→ ainamk: 呃不是 会猜下游不知道有硬体防拷就是跟开发用的不同啊 08/07 01:43
28F:→ ainamk: 如果今天你开出来只有一种那八成是C社指定错误 08/07 01:43
29F:→ ainamk: 开到两种表示下游根本不知道不同电路板会出问题 08/07 01:44
30F:→ Append: 但这两种的差异很小,有一样的问题,跟开发版都差很多 08/07 01:47
31F:→ Append: 我目前是猜想他可能是不同时间生产的... 08/07 01:50
32F:→ Append: 而且之前看了一些人拍的电路板和壳,我觉得这可能跟壳背後 08/07 01:50
33F:→ Append: 标签右下角的数字有关,但我需要更多样本来检查这点 08/07 01:51
※ 编辑: Append (59.127.47.181 台湾), 08/07/2024 23:29:41