Skip to content

Mark Fallout 4 VR as supported #401

@nephatrine

Description

@nephatrine

I don't expect you guys to go out any buy headsets or the game to work on this yourselves, but I tried to implement Fallout 4 VR support myself in a clone of utumno-wip by copying the bash/game/fallout4 directory to bash/game/fallout4vr and making the necessary changes to the __init__.py in there. These are the things I changed in there:

displayName = u'Fallout 4 Vr'
fsName = u'Fallout4VR'
altName = u'VRye Flash'

exe = u'Fallout4VR.exe'

regInstallKeys = (u'Bethesda Softworks\\Fallout 4 VR', u'Installed Path')

vanilla_string_bsas = {
    u'fallout4.esm': [u'Fallout4 - Interface.ba2'],
    u'fallout4_vr.esm': [u'Fallout4_VR - Main.ba2'],
}

iniFiles = [
    u'Fallout4.ini',
    u'Fallout4Prefs.ini',
    u'Fallout4Custom.ini',
    u'Fallout4VrCustom.ini',
    ]

masterFiles = [
    u'Fallout4.esm',
    u'Fallout4_VR.esm',
    ]

I changed the file lists in constants.py as well since there are different vanilla files in the VR install. I'm not going to paste those here because I can't really see how I'd have screwed that up.

I also added another AsteriskGame override in bash/games.py:

class Fallout4VR(AsteriskGame):

    must_be_active_if_present = (bolt.GPath(u'Fallout4_VR.esm'),)
    _ccc_filename = u''

    @property
    def remove_from_plugins_txt(self):
        return {bolt.GPath(u'Fallout4.esm')} | set(
            self.must_be_active_if_present)

and the check to use it in the same file:

    elif name == u'Fallout4VR':
        return Fallout4VR(mod_infos, plugins_txt_path)

This is sufficient for Fallout 4 Vr to show up as an option to select when starting up Wrye Bash, but upon selecting it I get this cryptic (maybe just cryptic because I'm not familiar with Python) error:

bush.py  156 __setGame:  Using Fallout4VR game: C:\Games\Steam\steamapps\common\Fallout 4 VR
mods_metadata.py   39 <module>: Failed to import the loot_api module: (No module named loot_api)
fail bash\bosh.py
Error! Unable to start Wrye Bash.

Please ensure Wrye Bash is correctly installed.

Traceback (most recent call last):
  File "bash\bash.py", line 351, in _main
    import bosh # this imports balt (DUH) which imports wx
  File "Wrye Bash Launcher.pyw", line 76, in load_module
    exec compile(code, initfile, 'exec') in mod.__dict__
  File "bash\bosh\__init__.py", line 1188, in <module>
    class BSAInfo(FileInfo, _bsa_type):
ImportError: caused by TypeError('Error when calling the metaclass bases\n    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases',)

I can still select other games like Skyrim Special Edition and Wrye Bash seems to work just fine with them so I guess the problem is specifically with the fallout4vr folder and I have no idea where I goofed up. I've looked all over the BSAInfo class and don't see anything remotely relevant to anything I did.

Sub-issues:

Metadata

Metadata

Labels

A-new-gameArea: New Game Implementation (new subpackage in the game package)C-enhancementCategory: Enhancement, a request to add or enhance a featureG-fallout4vrGame: Fallout 4 VRM-relnotesMisc: Issue should be listed in the version history for its milestone

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions