CNC3爱好者 发表于 2022-8-24 13:11:59

MSFS2020数据包的校验工具

本帖最后由 CNC3爱好者 于 2022-8-25 17:50 编辑

微软模拟飞行2020要安装的数据包太多了 但是我在游戏内没有发现有某种机制来校验这些数据包的完整性的机制(如果有,那也是用户不可见的状态)

本人在经历了电脑的硬件故障之后,意识到,可能某些数据会因为蓝屏啊、文件系统错误啊、内存错误云云的问题损坏。

而MSFS这数据包体积巨大,全部重新下载太费劲了。于是萌生了对所有数据包做校验的想法:只有错误的数据包才需要重下。

但经验告诉我,以前用到的MD5、SHA1、SHA256之类的哈希算法对于MSFS这将近200GB的数据来说是太慢了。

于是决定采用xxHash这个高速的非密码学哈希:毕竟只是对付偶发的错误,而不是恶意的攻击。

所以,我就搞了这么个小玩意:MSFS2020数据包的校验工具

这个工具可以自动检测你的MSFS数据包的位置,然后计算这些文件的xxHash校验和(只计算Official目录的)。
之后,用户就可以把自己的校验和与别的玩家的校验和进行比较,从而确定哪些文件不一样。
进而判断,这个文件是用户自己有意修改的(比如某些特别的插件)还是文件损坏了。

我自己是微软商店版的游戏,但理论上也支持Steam版本的游戏。

这个工具我放在GitHub上开源:https://github.com/KaneGreen/msfs2020checksum
下载也在GitHub Releases里提供。
GitHub上的介绍用英文写的,看不懂的用网页翻译吧。。。。。。
希望你的MSFS数据包是放在了SSD上。我自己的测试,198GB的数据大约在12分钟左右可以校验完毕。

我在Google网盘也提供了我的校验和 并且会定期更新:
https://drive.google.com/drive/folders/1B-Atd0f-8EcHm15nOb4zigrgkUDx_uIS?usp=sharing
这里面包含了Premium Deluxe版里的所有内容+官方市场里面所有免费插件机模的哈希校验值
(但不包含这5个需要配合付费包的包:EMERALD OBJECT LIBRARY、LANDMARKS OF GERMANY LIBRARY ONLY、LANDMARKS PANAMA NORTHERN AERIAL、UK2000 COMMON LIBRARY、VESSELS: CORE LIBRARY)

关于怎么对比,请看这里
https://github.com/KaneGreen/msfs2020checksum/blob/master/compare_doc/README.md

也欢迎大家积极反馈意见!

khala81 发表于 2022-8-25 11:18:05

试试这个校验工具,感谢分享

Harrisson 发表于 2022-8-25 12:20:17

嗯,看是需要一个好的固态硬盘

2739502 发表于 2022-8-25 15:58:26

感觉很厉害的样子,。。。。。。。。。。。。。。。。。

一个美丽的传说 发表于 2022-9-11 19:53:05

支持楼主                           

一个美丽的传说 发表于 2022-9-11 19:53:26

但                  不伤硬盘吗?

阿郎 发表于 2022-9-12 00:22:14

用什么工具都要全部读一遍文件,看硬盘速度吧。

musiksun 发表于 2022-9-12 05:58:19

感谢楼主的工作给大家带来了便利。

qjg 发表于 2022-9-13 09:46:28

游戏自带文件完整性检测

CNC3爱好者 发表于 2022-9-14 17:18:06

qjg 发表于 2022-9-13 09:46
游戏自带文件完整性检测

能否详细讲讲您观察到的?



我目前使用SU9,没有参与SU10测试,不了解新版是否有相关功能。
我先讲讲我目前观察到的情况:
1. 我没有观察到任何“用户可以直接接触到的”完整性检查
2. 游戏在下载包时,解压那一步会校验一次完整性,如果错误会重新下载。
3. 我只观测到了缺少包的时候,会在游戏启动时提示下载;但是如果修改了包的内容,我没有见到任何提示。
4. 我在开发过程中,发现由于MSFS 2020的数据文件同时包含大文件和许多零碎的小文件,即文件体积差异很大。因此,即使是在固态硬盘上(PCI-E 3.0),读取过程中,读取速度一般在100MB/s~300MB/s左右,短时间的最高速度就500MB/s左右。 因此,我认为游戏加载的那几分钟时间不可能完成对所有数据包的校验。

CNC3爱好者 发表于 2022-9-14 17:22:02

一个美丽的传说 发表于 2022-9-11 19:53
但                  不伤硬盘吗?



但这是读取啊

读取比写入伤得轻啊

而且大部分人更不用不到固态硬盘的寿命的末尾

zkp718 发表于 2022-9-14 22:02:14

感觉很厉害         

mapleleaf 发表于 2022-9-14 23:13:52

感谢分享!      

qjg 发表于 2022-9-14 23:17:05

CNC3爱好者 发表于 2022-9-14 17:18
能否详细讲讲您观察到的?




为什么修改了包的内容?大多数人不会修改。

阿法机长 发表于 2022-9-15 00:05:57

不错的啊数据包

CNC3爱好者 发表于 2022-9-16 21:35:30

qjg 发表于 2022-9-14 23:17
为什么修改了包的内容?大多数人不会修改。

安装某些第三方插件 可能要求修改官方包的某些配置 所以可能要修改官方包的文件

但这不是我做这个工具的目的
我的目的在帖子开头就讲得很清楚了 不再赘述

qwertyyy 发表于 2022-9-16 22:19:08

GENX-112 发表于 2022-9-17 14:50:42

其实对国内某些机场好很多               
页: [1]
查看完整版本: MSFS2020数据包的校验工具