主题 : 【注意】关于世嘉土星用SS_SAVE.BIN同步文件的详细说明
YZB
级别: 超级版主

UID: 12451
精华: 6
发帖: 19097
威望: 173 星
金钱: 2010 浮游币
贡献值: 10148 点
好评度: 54867 点
人气: 4322 点
在线时间: 19694(时)
注册时间: 2004-10-02
最后登录: 2024-11-23
楼主  发表于: 2023-10-05 16:09

【注意】关于世嘉土星用SS_SAVE.BIN同步文件的详细说明

此同步文件将会在后续的SAROO卡带更新固件中使用,其作用是同步主机内部的游戏存档到SD卡内的SS_SAVE.BIN文件中,并且在将来发布的2p手柄串口用sdloader中的引导游戏程序也同样会支持该文件,另外SONIC3D大大制作的土星卡带也支持这个文件。
(注意,这个同步文件不是记忆卡文件,记忆卡文件的详细说明将会另外开贴说明)



以下是该文件的详细说明。

文件根据dos8+3命名规则命名为SS_SAVE.BIN,文件总大小为257MB。

世嘉土星的内部存储虽然只有32KB,但是因为地址仅为单数有效,为了兼容yabause 以及SSF存档, 故内部存储偶数地址用ff填充,所以内部存储为64KB。

(mednafen,存档因为去掉了偶数部分的ff填充地址,所以为32kb,如果想通用在此模拟器上,把64KB用来填充FF的偶数地址去掉,只留32KB就可以使用了)

所有游戏以此(64KB)为单位,根据游戏编号打包存储在SS_SAVE.BIN文件中,每个游戏按游戏出厂的编号占用一个单位(64kb)


SS_SAVE.BIN文件头64KB字节为游戏编号信息文件头,每个游戏占用16个字节,预留了4096个游戏编号的储存空间,我想这足够应付官方 非官方以及修改版游戏了吧

此16字节的定义如下:

前8个字节为游戏编号, 如果程序匹配到和当前光驱内的游戏编号一致,那么就判定为同一个游戏


接下来的4个字节为游戏发售年份     此4字节仅是为了对齐以及方便查看,并无其他作用 最后4字节为此游戏编号存档的具体位置      注意这个地址的值是高位在前的








说完了此文件的基本结构,再来说一下同步的流程以及逻辑

每次开机进入游戏前,同步程序会去和主机存储同步,会有以下2种结果

1      如果在主机内部存储未找到标有SAROO字样的存档文件,那么先将主机内部的存储写入到SS_SAVE.BIN文件的0x100000位置,如果玩家对原来主机内部的存档有需求,可以在这个位置上找到并妆Ρπ处理。 (注意,每次游戏前都未找到的话,SS_SAVE.BIN文件的0x100000位置都将会覆盖当前数据)


接下来从SS_SAVE.BIN文件头部匹配当前光驱内是否有相同id编号的游戏

-----------如果没有,则根据当前光驱内的游戏编号,生成一个占用1格存储空间并命名为SAROO的存档文件并写入到主机内部存储, 注意这个文件至关重要,不要修改,不要删除


------------如果有,  则从SS_SAVE.BIN文件内部把该游戏存档(64KB)复制到主机内部存储





2      如果在主机内部存储找到标有SAROO字样的存档文件,根据SAROO存档的信息将该存档文件(64KB)写入到SS_SAVE.BIN文件中。


接下来从SS_SAVE.BIN文件头部匹配当前光驱内是否有相同id编号的游戏


-----------如果没有,则根据当前光驱内的游戏编号,生成一个占用1格存储空间并命名为SAROO的存档文件并写入到主机内部存储, 注意这个文件至关重要,不要修改,不要删除


------------如果有,  则从SS_SAVE.BIN文件内部把该游戏存档(64KB)复制到主机内部存储








PS:注意,SS_SAVE.BIN文件只是做同步用,最新的游戏存档一直在主机的内部存储。如果玩家想把最后一次游戏存档同步到SD卡内SS_SAVE.BIN文件中的话,快速的方法就是再次运行任意游戏一次(直到游戏画面出现即可),这样最新的存档就同步到SD卡内SS_SAVE.BIN文件中了


根据以上信息,玩家可妆Ρπ把各个游戏编号的存档用16进制编辑器提取出来,覆盖模拟器中同文件大小的存档文件即可使用


特别要注意的是不要随意更改或者删除SAROO存档的信息


有问题可以跟帖
[ 此帖被YZB在2023-10-07 17:51重新编辑 ]
级别: 模拟之星
UID: 49661
精华: 0
发帖: 297
威望: 0 星
金钱: 3074 浮游币
贡献值: 2 点
好评度: 845 点
人气: 0 点
在线时间: 628(时)
注册时间: 2005-07-29
最后登录: 2024-11-23
沙发  发表于: 2023-11-05 21:12

不知道我理解得对不对,当运行一个SAROO游戏时,主机内存同时只能有一个游戏的存档;如果换游戏,保存上一个游戏的进度,并且主机内存也里会同步更新成新游戏进度
级别: 模拟之星
UID: 49661
精华: 0
发帖: 297
威望: 0 星
金钱: 3074 浮游币
贡献值: 2 点
好评度: 845 点
人气: 0 点
在线时间: 628(时)
注册时间: 2005-07-29
最后登录: 2024-11-23
板凳  发表于: 2023-11-11 00:19

Re:回 6楼(zengzidane) 的帖子

引用
引用第7楼YZB于2023-11-07 10:28发表的 回 6楼(zengzidane) 的帖子 :
是的,不过最后tpu没有用这套方案,他重新写了一套.


有点像是把内置记忆卡作为内存使用了....不知道TPU的想法,姑且大胆猜想一下:把SAROO内部一部分空间虚拟成硬件记忆卡,欺骗系统去识别并使用这个“假记忆卡”,和之前的比,这就是个“虚拟内存”。“假记忆卡”的好处,是可以和SDloader进行互动...
级别: 模拟之星
UID: 49661
精华: 0
发帖: 297
威望: 0 星
金钱: 3074 浮游币
贡献值: 2 点
好评度: 845 点
人气: 0 点
在线时间: 628(时)
注册时间: 2005-07-29
最后登录: 2024-11-23
地板  发表于: 2023-11-11 15:34

Re:回 8楼(zengzidane) 的帖子

引用
引用第9楼YZB于2023-11-11 14:29发表的 回 8楼(zengzidane) 的帖子 :
目前saroo卡只是支持了内置存储,记忆卡功能还未开放

saroo内存空间足够,使用32kb或者64kb空间来做存档文件索引完全轻轻松松

以前市面上那种多合一的功能卡都是使用同样方法,只是那些卡是存到flash芯片上,我们是直接存到tf卡上


好的,期待!