开源掌机吧 关注:57,137贴子:849,214
  • 14回复贴,共1
求助

求助 周哥的开源掌机 其GBA模拟器存档类型怎样改成128k

只看楼主收藏回复

发现其本机带的机战og2不能存档。
查到可能是存档类型的问题。
有知道怎样调的吗?
非安卓系统的,如rg arc,rg353ps 等3566 CPU的机型。


IP属地:广东来自Android客户端1楼2024-01-14 00:47回复
    和机器没有关系吧,这个多数 ROM 是改版的造成的,这个是模拟器自动识别的吧


    IP属地:上海来自iPhone客户端4楼2024-01-14 17:13
    回复
      可以试一下,网上找一个初始存档,试试能不能用!


      IP属地:上海来自iPhone客户端5楼2024-01-14 17:14
      回复
        搜索ds save tools可以修改存档类型


        IP属地:黑龙江来自Android客户端6楼2024-01-15 02:14
        收起回复
          谢谢大家回复,
          试过换核心,gbsp mgba,都不行。
          找其他游戏128k的存档,改名后替换,也不行。
          找原版的日语机战og2,能正常存档,然后把存档copy一份,改名替换。在电脑端的visualboyadvance模拟器能正常使用。但是上传到格斗机开源掌机,还是不行。
          后来就直接用机器的即时存档。按F键,然后选择保存。读档的时候,记住存档的位置数字。一般是0或者1。如果不选数字会读档失败。


          IP属地:广东来自Android客户端7楼2024-01-16 13:37
          回复


            IP属地:广东8楼2024-01-16 14:52
            回复
              与GB/GBC的ROM不一样,GBA的ROM头中没有标识记忆存档的类型和大小,但老任采用了另一种方法来标识。
              就是在GBA的ROM文件中,不固定的地点写有存档类型标识符(如FLASH_V126),上图就是我整理的全部存档标识符。
              对于卡带而言,老任的主机是不需要这些标识符的,存档操作由软件完产。但模拟器一般都得知道每个ROM到底采用那种类型的存档和存档大小,以便作对应处理。
              一般而言,模拟器可以根据ROM的GameID做数据库dadabase,对应每个ROM的存档类型和大小,VBA就是这么处理的。另外就是通过查找ROM中的存档类型标识符来判断,如GBA的补丁工具GTA0.7
              用ROM中的记忆类型关键字来判别记忆类型,在ROM工具offline list中有这些记忆关键字。
              如0252 - Sonic Advance .gba 就是FLASH_V126 ,64KB
              1262 - Crash Nitro Kart.gba就是EEPROM_V122,0.5KB
              VBA处理记忆时是不理会这些关键字的,即使我们将1262的EEPROM_V122强行改为FLASH_V126 或错误的文字,VBA还是按eeprom 0.5KB来记忆,这说明VBA是基于GameID数据库的。
              只是当我们用GBA的补丁工具GTA0.7将ROM打SRAM补丁时,这些ROM中的记忆关键字才会被补丁工具用到。有趣的是,我们将0252的GameID改到1262中,GTA0.7还是按关键字来打SRAM补丁,这也就说明记忆关键字是确定记忆类型的条件之一,但不唯一,如NES转成GBA的ROM是64KB的SRAM记忆,而ROM中没有任何记忆关键字(GTA0.7识别为NONE)。
              如果我们采用No-Intro的GBA ROM,用GameID来对应记忆也是可以的,但有很多改版的,自制的ROM的GameID就不规范,甚至是套用别的ROM的GameID,这样一来判断记忆类型就会出错。
              我建议还是搜索ROM中的关键字来确定存档类型。 GTA0.7工具在火线软件中有,名字为gbata.exe,火线当配置成自动打SRAM补丁时就是它来处理的。
              我以前帮D商组合卡ROM时,也要用到GTA来处理记忆,对应关系如下:
              FLASH类型(1Mb/512Kb) -> SRAM 512KbSRAM类型 (256Kb)
              EEPROM类型(0.5KB/8KB) -> SRAM 128Kb (因为使用的decoder最小SRAM bank 是128Kb)
              offlinelist是通过数据库来查找存档类型的,以ROM的GameID来建数据库,当然在作者录制数据时可能会有错误。
              国外大神做的GTA,它是用过查找ROM的存档关键字来确定存档类型的。
              比喻:
              Get Ride AMDriver 重装骑士-闪光英雄的诞生(汉化版)(dump & hack by maxzhou88).gba
              的存档是Flash的,GTA显示存档关键字是FLASH512_V131,你可以用UE编辑工具去查找ROM中的关键字FLASH512_V131,然后改成FLASH512_V888,哈哈,再用GTA打开,立马显示的就是FLASH512_V888
              我至今还不明白,为什么老任不象GBC那样将存档信息放在GBA的ROM头中,老任只是将它放在ROM的非固定位置,只能查找定位。早年还没有GTA工具时,我都是查找关键字来确定存档类型的。
              如果我们把
              Get Ride AMDriver 重装骑士-闪光英雄的诞生(汉化版)(dump & hack by maxzhou88).gba
              的存档关键字FLASH512_V131改成SRAM_V113,呵呵,GTA就不让打SRAM补丁了。


              IP属地:广东9楼2024-01-16 14:52
              回复
                =====================

                周哥,对于早期D卡和早期烧录卡的存档问题我很感兴趣。我打算搜集全相关的资料后写个gba烧录卡的图鉴贴。
                1 之前你在gba吧的发言提到过,早期的D卡甚至有很高端的解码芯片。可以不用对rom打SRAM补丁就能直接支持eeprom和flash的存档。
                我注意到很多烧录卡也能做到这一点,比如EZ系列,虽然存档的硬件只有sram芯片,但是EZ卡能做到原版rom的存档是多大,ez卡生成的存档就是多大,比如eeprom格式的游戏,存档大小就是8KB,而不是统一的64KB。ez烧录卡在烧录时软件就会自动识别rom,自动识别原生存档所需大小。
                掌机王当年的评测上说,这就是所谓的硬件存档功能,是cpld芯片的功能。周哥你对这点同意吗?
                2 之前周哥在拆解SC烧录卡的时候提到了fpga的decoder,这个东西的功能是不是也和cpld类似,两者是同一个东西吗?还是说有什么区别

                @RSLC :
                EZ4烧录卡的电脑工具(前端工具)会给ROM打SRAM记忆补丁,至于它在SD卡中的大小,是软件设置的,因为转换工具会根据我上面说的档类型标识符知道它是什么大小的,在SD中生成sav文件时,就从SRAM中读出相应的大小,这并非是什么硬件存档功能(就是不要软件预先处理的)。
                早期的硬件存档功能其实是用解码加SRAM来仿真Flash和eeprom的操作,因为那个时候老外的补丁工具还没有出来。
                如果说EZ4能有128KB的sav文件,那一定是CPLD上做了对SRAM的切bank扩容,这个就非得硬件支持了。
                FPGA和CPLD是类似的东西,都是可编程阵列逻辑,只是FPGA的功能更强。比如K1主控的设计原型,除了内部的RAM外,其它都是用FPGA实现的,当验证成功后才做真正的芯片(real chip)。
                有时间我也想系统的写写卡带和解码的原理,硬件补丁如何实现等。
                --------------------------


                IP属地:广东10楼2024-01-16 14:52
                回复
                  我在其他帖子找到 周哥早年的关于存档的解释,看看之后有没那个高手能根据这些信息,把 改版rom的存档问题解决(指在开源掌机上面,因为电脑和手机模拟器已经可以通过修改存档类似来解决这个问题。)。


                  IP属地:广东11楼2024-01-16 14:54
                  回复
                    Flash、EEPROM、SRAM的区别与理解
                    Flash 和 EEPROM 能断电存储,Flash保存数据大,EEPROM保存数据小。
                    SRAM 断电不保存数据,但是存数据很快。某些GBA卡带电池,断电后没有记录,就是这个原因。


                    IP属地:广东12楼2024-01-16 14:59
                    回复
                      https://tieba.baidu.com/p/8534048926
                      关于PSP用GBA模拟器玩扩容rom无法存档的解决方法
                      参考资料


                      IP属地:广东13楼2024-01-16 15:02
                      回复
                        我也遇到这个问题了,35xx本机带的机战og1不能正常存档读档,只能用即时存档,怎么解决?35xx老版,大蒜1.4.9


                        IP属地:湖北来自Android客户端14楼2024-05-14 23:13
                        回复
                          换个rom试试


                          IP属地:上海15楼2024-05-15 08:44
                          回复
                            我也是 我的SD高达G世纪A 通关存档导入周哥机器也读不了档


                            IP属地:贵州16楼2024-07-07 00:58
                            回复