SNES 本身——而不是卡带——如何对待 LoROM 和 HiROM 卡带?

How does the SNES itself -- not the cartridge -- treat LoROM vs. HiROM cartridges?

我想详细了解LoROM和HiROM卡带的区别

在理论上,我很清楚任何墨盒都可以做任何它想做的地址映射魔术,例如银行业务扩展物理地址 space。为此,SNES 本身无需了解此类映射(除非它使用缓存,据我所知它不使用缓存)。唯一的限制是墨盒不能影响任何已经连接在 SNES 内部的总线外围设备的映射,除非有特殊的机制允许这样做,例如墨盒能够抑制 chip-select 一个 SNES-internal芯片。同样,我不知道有任何这样的机制。

我在这里找到了 LoROM 和 HiROM 内存映射:https://en.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_map#LoROM

比较那些,我看到的唯一区别是卡带提供的地址,它不需要 SNES 本身知道使用的是 LoROM 还是 HiROM 映射。特别是,LoROM 与 HiROM 的区别似乎不会导致任何地址块在 "in the SNES" 与 "in the cartridge" 之间切换。

到目前为止,我预计 LoROM 和 HiROM 是卡带设计中使用的概念,对 SNES 本身是透明的。

但是,上面链接的同一篇文章后来描述了 "internal" SNES header(注意:不是 SMC header,他们建议将其视为不真实的信息)。据我了解,SMC header 是ROM reader 设备提供的外部信息,而内部SNES header 实际上存储在ROM 中。他们确实提到内部 SNES header 可能会根据地址映射出现在内存映射中的不同位置,这是显而易见的。他们建议 "find" header 通过探测(出于模拟目的),但我不清楚真正的 SNES 进行了多大程度的探测。

内部 header 包含一个区分 LoROM 和 HiROM 的字段。该页面似乎 emulation-oriented 并且在仿真与真实硬件方面有点模糊,但关键是 LoROM 与 HiROM 的区别存储在实际墨盒上的实际 ROM 芯片中,可由任天堂。

鉴于LoROM和HiROM似乎可以单独在卡带中区分,对SNES透明,header中的这个标志对SNES有什么影响?

这可能会有所帮助: The SNES Cartridge, Briefly Explained

一切尽在车夫

那好吧,也许 this 会解决问题。

SNES 本身根本不使用“内部”SNES header(当然,中断向量除外)。它纯粹是为了提供信息。从技术上讲,header 中的信息不需要可靠,但在我亲自调查的少数情况下,它似乎是准确的。

所以是的,映射全部由墨盒完成。