网上搜索资料,好像主要有以下几种
NOSAVE 无存档
EEPROM 存档形式
SRAM 存档形式
FLASH 存档形式
按我的理解:
1、NOSAVE不用说了,没存档功能
2、EEPROM 相当于是把存档和游戏ROM放在一起?利用游戏ROM芯片中未使用的空间来放存档,每次存档相当于是一次烧录,所以也就是D商描述的芯片存档有卡顿。
3、SRAM,电池版,就是用电池给SRAM提供电力,只要电池有电就不掉档,现在还有FRAM铁电,就不需要电池了,可以长期储存
4、FLASH,使用单独的FLASH芯片来存档,断电不丢档,不需要电池
一些D商的魔改ROM本质上是SRAM+EEPROM吗?
然后再细分,EEPROM还要V122 V124等等,SRAM也有V112 V113这些是什么?是容量不一样吗,还是格式不一样。
那现在比如我要烧录单卡,对以上几种存档方式的原版卡带ROM,都是统一打SRAM补丁就行了吗?还有个免电池补丁是干啥的,相当于是D商魔改补丁吗?
请大佬科普下
=========================================
GBA贴吧 卧看微尘 大佬给出系统性回复,搬运过来,需要了解的也可以看一下。
以下是官方gba卡带的原生存档类型:
1、无存档;
2、sram存档,32KByte(256Kbit)。对应卡带存档硬件芯片分为sram芯片(需要电池供电维持关机状态下芯片内的存档数据)、fram芯片(无需电池即可维持芯片内的存档数据)。
3、eeprom存档,从存档大小可分为eeprom 512Byte(4Kbit)、eeprom 8KByte(64Kbit)两种,无需电池供电维持存档。对应卡带存档硬件芯片为对应的两种不同大小的eeprom芯片。
4、flash存档,从存档大小可分为flash 64KByte(512Kbit)、flash 128KByte(1Mbit)两种,无需电池供电维持存档。对应卡带存档硬件芯片为对应的两种不同大小的flash芯片(容量大小相同的flash芯片,具体型号可能使用不同厂商出品的芯片)。
在阅读后续内容前,请记住以下这句贯穿全文的中心思想“讨论存档相关问题,必须从软件和硬件两方面考虑”
3类不同的存档硬件芯片(sram/fram、eeprom、flash),有各自不同的读取写入的函数,用于访问对应的存档硬件芯片,不能通用。存档读写函数(软件层面),和存档硬件芯片(硬件层面),就像是钥匙和门的关系一般,必须互相匹配上才能正常访问。每一个官方gba游戏在确定好使用哪种存档硬件芯片(门)后,都会在游戏rom内置入对应的存档读写函数(钥匙),以达到软硬件的匹配。
早期部分d卡为了使钥匙和门匹配,走的是仿照正卡的路子,即原生用的是什么存档硬件,d卡就用什么存档硬件,软件层面rom内的钥匙不去改动,反过来给钥匙找对应的门。对于d卡商来说,要制作一张d卡,就必须给不同游戏分别准备对应的sram、eeprom、flash硬件芯片。
而中后期出现的sram补丁的作用,就是在软件层面,把不同游戏rom内的钥匙(存档读写函数),统一换成sram钥匙。对于d卡商来说,在制作d卡时,硬件层面就只需要准备一种门(sram硬件芯片)就行了,而无需再准备eeprom、flash硬件芯片,卡带主板也只需要准备一种规格即可,成本上得到了极大优化。自从这个补丁出来后,d卡界就变成了以sram补丁rom(软件)+sram存档芯片(硬件)的d卡为主流的局面。
然而在硬件层面,sram存档芯片的d卡是需要电池维持存档的,没电就会掉档,而电池本身也需要成本。于是便出现了魔改rom,也即免电池补丁。它的原理是在sram芯片的d卡上,在游戏需要保存数据时,软件层面数据正常保存到sram硬件芯片后,再多走一步将sram硬件芯片内的存档复制拷贝到rom所在的flash硬件芯片上,这样关机后即便sram硬件芯片内的数据丢失了,也还有一份备份在rom所在的flash硬件芯片内。而在游戏开机的时候,便会先将rom所在的flash硬件芯片内的存档搬回到sram硬件存档芯片内,以供游戏按原程序读取sram芯片内的存档。
可以看到,免电池补丁的作用,是为了将存档存入rom芯片,也就是硬件层面还需要对rom的flash芯片进行读写,除了sram芯片这扇门,还多了个flash芯片的门需要访问。免电池补丁的工作原理就是需要在软件层面,给rom再加上一把读取flash硬件芯片这扇门的钥匙。
对于d卡商来说,就又可以再省掉主板上电池的成本了。但缺陷也是很明显的,拖慢卡顿。如果说sram芯片对应的钥匙和门,开门只要1s,那么flash芯片对应的钥匙和门,开门可能就需要10s。对于那些需要频繁存档的游戏,进行sram存档可能没什么感觉,但加上免电池补丁需要对flash芯片进行读写,那么就可能会导致频繁卡顿的局面。
至于sram补丁rom(软件)+fram铁电存档芯片(硬件)的免电池芯片记忆组合,对于d卡商来说觉得会增加成本,懒得去用这种对玩家来说更优的方式。所以基本只有玩家自己更换铁电,或者部分店家提供价格更高的fram硬件芯片的卡卖。
对于sram和flash芯片来说,gba能直接读取存档的空间最大只有64KByte(512Kbit)。对于常规打了sram补丁的rom来说,一张64KByte(512Kbit)的sram硬件芯片,就可以通吃除了flash 128KByte(1Mbit)外的所有gba游戏(具体官方gba游戏现有的存档大小见前文最开始的存档类型介绍)。
而对于flash 128KByte(1Mbit)的游戏,官方则是在硬件层面上加了料,以提供所谓切bank的功能来访问完整的存档大小,同样的这个切bank功能也是需要软件层面的函数来告诉硬件什么时候切bank,切哪个bank。
对于常规的sram存档d卡来说,它既在硬件层面不存在切bank的硬件,也在软件层面不存在切bank的指令,对于flash 128KByte(1Mbit)游戏来说最多只能保存64KByte(512Kbit)的大小,这也导致了早年宝可梦sram存档d卡提示存档损坏只能读取备份存档,以及通关后掉档的问题。
为了解决这个问题,新的sram存档d卡上也加入了提供切bank功能的硬件,以及rom内的sram补丁也加入了对应的切bank指令。就跟老外参考魔改rom,做出了免电池补丁一样,老外参考切bank的sram存档d卡,做出了sram1m补丁,以供原生flash1m的存档使用。当然sram补丁、sram1m补丁始终是软件层面的,它们始终需要搭配对应的硬件(sram/fram芯片、切bank硬件)才能正常使用。
总结来说,diy烧录卡的硬件和软件搭配如下:
1、拥有512Kbit sram/fram硬件存档芯片的烧录卡,可以运行:所有sram游戏、以及大部分打了sram补丁的flash 512Kbit、eeprom 4Kbit/64Kbit 游戏。
2、拥有1Mbit sram/fram硬件存档芯片+切bank硬件的烧录卡,可以运行:上述1提及的游戏,及打了sram1M补丁的 flash 1Mbit游戏。
注:sram硬件芯片情况下需要带电池,或对rom打免电池补丁。fram硬件芯片无需电池,也没必要给rom打免电池补丁
即便是使用免电池补丁或魔改rom,由于硬件层面rom所在的flash芯片种类较多,若软件层面免电池补丁或魔改rom内不存在匹配的钥匙(对应flash芯片的读写函数),那么同样是无法正常运行保存的。
上一篇:
原来电瓶车是要牌照的啊,我骑了十年都没办……下一篇:
看看一个月内能有多少能玩的游戏(8月26至9月30)