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
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