dreamer / boxtron

Steam Play compatibility tool to run DOS games using native Linux DOSBox
https://luxtorpeda.gitlab.io/
GNU General Public License v2.0
405 stars 5 forks source link

boxtron's displayed proton version according to steam config files. #41

Closed arrowgent closed 3 years ago

arrowgent commented 3 years ago

i noticed boxtron is identified by steam as being Proton 4.2

if we look at the file

/home/$USER/.steam/steam/SteamApps/compatdata/2300/version

its identified as

4.2-2

but if we look at

/home/$USER/.steam/steam/logs/compat_log.txt

it is properly identified as

Mapping AppID 2300 to tool boxtron with priority 250

by comparison, proton-GE is recognized correctly for example:

5.9-GE-5

is this just a limitation of steam or is boxtron compatibilitytools.d somehow marking this information?

is it possible to set this information to be unique for boxtron?

i dont fully understand how steam stores which proton version is selected, so i might just be looking at useless information as a whole.

dreamer commented 3 years ago

This is something new, I'll look into it - thank you for the report. Internal Boxtron name is boxtron or boxtron_dev (depending on the version installed).

Boxtron never tries to pretend to be Proton - perhaps compatibilitytool.vdf file format changed lately?

@arrowgent Do you use stable Steam or Beta?

arrowgent commented 3 years ago

i use steam beta.

i only recently noticed this because i was writing a script to display ALL proton selections for ALL steamplay games.

/home/$USER/.steam/steam/compatibilitytools.d/boxtron-installer/

does not have a compatibilitytool.vdf file

arrowgent commented 3 years ago

comparing proton-ge it does have compatibilitytool.vdf

boxtron only seems to have this https://github.com/dreamer/boxtron/blob/master/compatibilitytool.template

let me try copying proton-ge's file, editing it, and seeing if it modifies the version creating a similar compatibilitytool.vdf doesnt seem to change anything

i also restarted steam to make sure it attempted to update any changes i make

so boxtron does not tell steam to update this file reporting the version i believe your version https://github.com/dreamer/boxtron/blob/master/version.py could be reported as "boxtron-0.5.4" or 0.5.4

obviously its only a minor nuance, since it doesnt effect how boxtron works in steam

arrowgent commented 3 years ago

looking at how proton handles it, in proton.py

this is where it creates this version file

class CompatData:
    def __init__(self, compatdata):
        self.base_dir = compatdata + "/"
        self.prefix_dir = self.path("pfx/")
        self.version_file = self.path("version")
        self.tracked_files_file = self.path("tracked_files")
        self.prefix_lock = FileLock(self.path("pfx.lock"), timeout=-1)

and then checks and updates the reported version

        os.remove(self.tracked_files_file)
        os.remove(self.version_file)

    def upgrade_pfx(self, old_ver):
        if old_ver == CURRENT_PREFIX_VERSION:
            return

        log("Upgrading prefix from " + str(old_ver) + " to " + CURRENT_PREFIX_VERSION + " (" + self.base_dir + ")")

since boxtron is not proton, it doesnt require this python code for compatibility compliance

dreamer commented 3 years ago

comparing proton-ge it does have compatibilitytool.vdf

boxtron only seems to have this https://github.com/dreamer/boxtron/blob/master/compatibilitytool.template

As name suggests, this is only a template. compatibilitytool.vdf file is being generated when you do make install or make dev-install. It's also pre-generated in a tarball and installation packages.

arrowgent commented 3 years ago

hmm interesting, i dont think i did make install probally just make then copied the files into the folder manually https://github.com/dreamer/boxtron#installation-using-tarball-for-a-single-user which does not create the file boxtron.vdf (aka compatiblitytool.template)

comparing proton-ge it does have compatibilitytool.vdf boxtron only seems to have this https://github.com/dreamer/boxtron/blob/master/compatibilitytool.template

As name suggests, this is only a template. compatibilitytool.vdf file is being generated when you do make install or make dev-install. It's also pre-generated in a tarball and installation packages.

arrowgent commented 3 years ago

since this file is created by proton specifically and doesnt effect boxtron at all, ill close this to avoid any unrelated open issues

also since boxtron is avoiding wine/proton emulation the PFX situation also becomes irrelevant because it shouldnt modify the compatdata folders at all (because linux dosbox)