コード例 #1
0
    def play(self):
        game_exe = self.game_exe
        arguments = self.game_config.get('args', '')
        using_dxvk = self.runner_config.get('dxvk')

        if using_dxvk:
            if not is_vulkan_supported():
                if not display_vulkan_error(True):
                    return {'error': 'VULKAN_NOT_FOUND'}

        if not system.path_exists(game_exe):
            return {'error': 'FILE_NOT_FOUND', 'file': game_exe}

        launch_info = {
            'env': self.get_env(os_env=False)
        }

        if 'WINEESYNC' in launch_info['env'].get('WINEESYNC') == "1":
            limit_set = is_esync_limit_set()
            wine_ver = is_version_esync(self.get_executable())

            if not limit_set and not wine_ver:
                esync_display_version_warning(True)
                esync_display_limit_warning()
                return {'error': 'ESYNC_LIMIT_NOT_SET'}
            if not is_esync_limit_set():
                esync_display_limit_warning()
                return {'error': 'ESYNC_LIMIT_NOT_SET'}
            if not wine_ver:
                if not esync_display_version_warning(True):
                    return {'error': 'NON_ESYNC_WINE_VERSION'}

        command = [self.get_executable()]

        game_exe, args, _working_dir = get_real_executable(game_exe, self.working_dir)
        command.append(game_exe)
        if args:
            command = command + args

        if arguments:
            for arg in shlex.split(arguments):
                command.append(arg)
        launch_info['command'] = command
        return launch_info
コード例 #2
0
        def esync_limit_callback(config):
            limits_set = is_esync_limit_set()
            wine_path = self.get_path_for_version(config['version'])
            wine_ver = is_version_esync(wine_path)

            if not limits_set and not wine_ver:
                esync_display_version_warning(False)
                esync_display_limit_warning()
                return False

            if not limits_set:
                esync_display_limit_warning()
                return False

            if not wine_ver:
                if not esync_display_version_warning(False):
                    return False

            return True