Difference between revisions of "Summer of Code/GSoC Ideas 2022"

Jump to navigation Jump to search
→‎Infrastructure Tasks: added System for checking the game files integrity
(Adding "In-app downloads of demos, freeware games, and addons")
(→‎Infrastructure Tasks: added System for checking the game files integrity)
Line 161: Line 161:


We need to have it tested on desktops and at least Android, but preferably also Windows and iOS.
We need to have it tested on desktops and at least Android, but preferably also Windows and iOS.
=== System for checking the game files integrity ===
Technical contacts: [[User:Sev|sev]]
Difficulty: Medium
ScummVM requires game data files to operate. Very often, especially when copying from the old media, the files could be damaged. Thus, we need a system that could let the end-users compute all the checksums and compare them with the reference.
The solution will consist of two parts: server and additional functionality within ScummVM. In order to avoid any potential problems with the copyrighted material, only checksums could be passed to the server.
The ScummVM part:
Calculates checksums of all files of a given game/title and submits them to the server. After receiving the response from the server, the end-user is presented with the results of the check: if all files are correct or list of files with different checksums.
Optionally, the users could have the possibility to give their consent to submit their checksums as the new game variant.
The server part:
It should keep checksums of all files of all known games in a DB.
It can receive a list of files to check against from ScummVM, perform a match with the DB and provide the result back in machine-readable form.
Additionally, it must support command-line utility for mass-populating the DB, performed by the developers.
Additionally, it must have a web interface that will let the authenticated users (developers) browse through the existing checksums.
Optionally, it could have a way to see and approve the submitted entries.

Navigation menu