Gid*_*eon 7

好的,老问题,但这只是在Google中出现,我可以完全回答这个问题.

这里的困惑在于RAM,ROM和SNES的总地址空间之间的区别.虽然SNES确实只有128K的RAM,但这只是易失性存储器,并没有考虑ROM空间.工作RAM映射到存储体7E和7F,每个64K.VRAM是另一个32K的易失性存储器,但它在标准地址空间内无法访问,需要通过特殊寄存器写入.

最常见的ROM映射(在社区内称为LoROM和HiROM)映射每个存储区的上半部分中的32K存储区或完整的64K存储区."LoROM"映射32K库(00:8000-00:FFFF,01:8000-01:FFFF,...,3F:8000-3F:FFFF,镜像为80:8000-BF:FFFF),而HiROM映射64K库(C0:0000-C0:FFFF,C1:0000:C1-FFFF,...... FF:0000-FF:FFFF).如前所述,工作RAM映射到64K库7E和7F.我并不熟悉SRAM的工作原理,但是它映射到70:0000 iirc并且在7X区域的几个额外的库中进行镜像.

编辑:作为进一步说明,ROM当然是只读的.它是您存储程序数据(读取:游戏,其指令和资产)的地方.任何需要修改的内容(需要解压缩的压缩数据,关卡数据,敌人,玩家统计数据,各种背景上显示的平铺图等)都会被传输到RAM(7E/7F)进行处理.ROM是打印在墨盒芯片上的,而每次系统打开时,RAM都会被垃圾数据填满; 在游戏的初始化步骤中使用简单的循环来清零RAM是相当标准的做法.

希望这能说明问题!


tem*_*def 5

SNES的地址空间远大于实际地址数的事实不是问题.在64位机器上,指针大到足以处理1.844674407×10 19字节,大约100亿GB.我从未见过有这么多内存的计算机,但这不是问题.有些地址只是不引用内存中的任何地址.

希望这可以帮助!