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

UID: 12451
精华: 6
发帖: 19097
威望: 173 星
金钱: 2014 浮游币
贡献值: 10167 点
好评度: 54867 点
人气: 4322 点
在线时间: 19712(时)
注册时间: 2004-10-02
最后登录: 2024-11-26
楼主  发表于: 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重新编辑 ]
jounge
级别: 模拟小生
UID: 321357
精华: 0
发帖: 30
威望: 0 星
金钱: 20 浮游币
贡献值: 60 点
好评度: 82 点
人气: 0 点
在线时间: 115(时)
注册时间: 2018-06-08
最后登录: 2024-11-24
沙发  发表于: 2023-11-27 20:24

问一下大大,如果我现在做了一块板子,我怎样直接刷入最新的固件