def generate(self, system, rom, playersControllers, gameResolution): if not path.isdir(batoceraFiles.BIOS + "/cemu"): os.mkdir(batoceraFiles.BIOS + "/cemu") if not path.isdir(batoceraFiles.CONF + "/cemu"): os.mkdir(batoceraFiles.CONF + "/cemu") for folder in ["shaderCache", "controllerProfiles", "gameProfiles", "graphicPacks"]: if not path.isdir(batoceraFiles.CONF + "/cemu/" + folder): os.mkdir(batoceraFiles.CONF + "/cemu/" + folder) if not path.isdir(batoceraFiles.SAVES + "/cemu"): os.mkdir(batoceraFiles.SAVES + "/cemu") CemuGenerator.CemuConfig(batoceraFiles.CONF + "/cemu/settings.xml", system) # copy the file from where cemu reads it copyfile(batoceraFiles.CONF + "/cemu/settings.xml", "/usr/cemu/settings.xml") cemuControllers.generateControllerConfig(system, playersControllers, rom) commandArray = ["/usr/wine/lutris/bin/wine64", "/usr/cemu/Cemu.exe", "-g", "z:" + rom, "-m", "z:" + batoceraFiles.SAVES + "/cemu", "-f"] return Command.Command( array=commandArray, env={ "WINEPREFIX": batoceraFiles.SAVES + "/cemu", "vblank_mode": "0", "mesa_glthread": "true", "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers), "WINEDLLOVERRIDES": "mscoree=;mshtml=;dbghelp.dll=n,b", "__GL_THREADED_OPTIMIZATIONS": "1" })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["SDLPoP"] # create sdlpop config directory if not os.path.exists(batoceraFiles.sdlpopConfigDir): os.makedirs(batoceraFiles.sdlpopConfigDir) if not os.path.exists(batoceraFiles.sdlpopSrcCfg): shutil.copyfile('/usr/share/sdlpop/cfg/SDLPoP.cfg', batoceraFiles.sdlpopSrcCfg) if not os.path.exists(batoceraFiles.sdlpopSrcIni): shutil.copyfile('/usr/share/sdlpop/cfg/SDLPoP.ini', batoceraFiles.sdlpopSrcIni) # symbolic link cfg files if not os.path.exists(batoceraFiles.sdlpopDestCfg): os.symlink(batoceraFiles.sdlpopSrcCfg, batoceraFiles.sdlpopDestCfg) if not os.path.exists(batoceraFiles.sdlpopDestIni): os.symlink(batoceraFiles.sdlpopSrcIni, batoceraFiles.sdlpopDestIni) # symbolic link screenshot folder too if not os.path.exists('/userdata/screenshots/sdlpop'): os.makedirs('/userdata/screenshots/sdlpop') os.symlink('/userdata/screenshots/sdlpop', '/usr/share/sdlpop/screenshots', target_is_directory = True) # pad number nplayer = 1 for playercontroller, pad in sorted(playersControllers.items()): if nplayer == 1: commandArray.append("joynum={}".format(pad.index)) nplayer += 1 return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): # Find rom path if os.path.isdir(rom): # rom is a directory: must contains a <game name>.scummvm file romPath = rom romFile = glob.glob(romPath + "/*.scummvm")[0] romName = os.path.splitext(os.path.basename(romFile))[0] else: # rom is a file: split in directory and file name romPath = os.path.dirname(rom) # Get rom name without extension romName = os.path.splitext(os.path.basename(rom))[0] # pad number nplayer = 1 id = 0 for playercontroller, pad in sorted(playersControllers.items()): if nplayer == 1: id=pad.index nplayer += 1 commandArray = [batoceraFiles.batoceraBins[system.config['emulator']], "-f", "--joystick={}".format(id), "--screenshotspath="+batoceraFiles.screenshotsDir, "--extrapath=/usr/share/scummvm", "--savepath="+batoceraFiles.scummvmSaves, "--path=""{}""".format(romPath)] commandArray.append("""{}""".format(romName)) return Command.Command(array=commandArray,env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["doomretro"] if (rom.__contains__(".uwad")): f = open(rom) content = f.readlines() for line in content: if 'IWAD=/' in line: commandArray.append("-iwad") commandArray.append( line.replace("IWAD=", "").replace("\n", "")) elif 'PWAD=/' in line: commandArray.append("-file") commandArray.append( line.replace("PWAD=", "").replace("\n", "")) else: commandArray.append("-iwad") commandArray.append(rom) return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = [ "quakespasm", "-basedir", "/userdata/roms/tyrquake", "-sndspeed", "44100" ] if (rom.lower().__contains__("hipnotic")): commandArray = [ "quakespasm", "-basedir", "/userdata/roms/tyrquake", "-sndspeed", "44100", "-hipnotic" ] if (rom.lower().__contains__("rogue")): commandArray = [ "quakespasm", "-basedir", "/userdata/roms/tyrquake", "-sndspeed", "44100", "-rogue" ] if (rom.lower().__contains__("dopa")): commandArray = [ "quakespasm", "-basedir", "/userdata/roms/tyrquake", "-sndspeed", "44100", "-game", "dopa" ] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): settings = ConfigParser.ConfigParser() # To prevent ConfigParser from converting to lower case settings.optionxform = str settings_path = rom + "/data/mugen.cfg" if os.path.exists(settings_path): MugenGenerator.cleanMugenCfg(settings_path) settings.read(settings_path) if not settings.has_section("Video"): settings.add_section("Video") settings.set("Video", "FullScreen", "1") settings.set("Video", "Width", gameResolution["width"]) settings.set("Video", "Height", gameResolution["height"]) if not settings.has_section("Config"): settings.add_section("Config") settings.set("Config", "GameWidth", gameResolution["width"]) settings.set("Config", "GameHeight", gameResolution["height"]) settings.set("Config", "Language", "en") # Save config if not os.path.exists(os.path.dirname(settings_path)): os.makedirs(os.path.dirname(settings_path)) with open(settings_path, 'w') as configfile: settings.write(configfile) commandArray = ["batocera-wine", "mugen", "play", rom] return Command.Command(array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["OpenLara"] return Command.Command( array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["RigelEngine", "/userdata/roms/nukem2"] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["blues", "--datapath=/userdata/roms/blues"] return Command.Command( array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): isAVX2 = checkAvx2() pcsx2ConfigDir = "/userdata/system/configs/PCSX2" # Config files configureReg(pcsx2ConfigDir) configureUI(pcsx2ConfigDir, batoceraFiles.BIOS, system.config, gameResolution) configureVM(pcsx2ConfigDir, system) configureGFX(pcsx2ConfigDir, system) configureGFXdx(pcsx2ConfigDir, system) configureAudio(pcsx2ConfigDir) if isAVX2: commandArray = ["/usr/PCSX_AVX2/bin/PCSX2", rom] else: commandArray = ["/usr/PCSX/bin/PCSX2", rom] # Fullscreen commandArray.append("--fullscreen") # No GUI commandArray.append("--nogui") # Fullboot if system.isOptSet('fullboot') and system.config['fullboot'] == '0': eslog.debug("Fast Boot and skip BIOS") else: commandArray.append("--fullboot") # Arch arch = "x86" with open('/usr/share/batocera/batocera.arch', 'r') as content_file: arch = content_file.read() env = {} if isAVX2: env["LD_LIBRARY_PATH"] = "/usr/PCSX_AVX2/lib" else: env["LD_LIBRARY_PATH"] = "/usr/PCSX/lib" env["XDG_CONFIG_HOME"] = batoceraFiles.CONF env["SDL_GAMECONTROLLERCONFIG"] = controllersConfig.generateSdlGameControllerConfig( playersControllers) env["SDL_PADSORDERCONFIG"] = controllersConfig.generateSdlGameControllerPadsOrderConfig( playersControllers) if arch == "x86": env["LD_LIBRARY_PATH"] = "/lib32" env["LIBGL_DRIVERS_PATH"] = "/lib32/dri" # hum pw 0.2 and 0.3 are hardcoded, not nice env["SPA_PLUGIN_DIR"] = "/usr/lib/spa-0.2:/lib32/spa-0.2" env["PIPEWIRE_MODULE_DIR"] = "/usr/lib/pipewire-0.3:/lib32/pipewire-0.3" return Command.Command(array=commandArray, env=env)
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["simcoupe", "autoboot", "-disk1", rom] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): gamedir = rom.replace('openjazz.game', '') commandArray = ["OpenJazz", gamedir] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["rednukem", "-j", os.path.dirname(os.path.abspath(rom)), "-g", rom] os.chdir(os.path.dirname(os.path.abspath(rom))) return Command.Command( array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["hatari", "--fullscreen"] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["opentyrian", "-t" "/usr/share/opentyrian/data/", "-j"] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["abuse", "-datadir", "/usr/share/abuse"] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): os.chdir("/usr/share/hcl") commandArray = ["hcl"] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["ioquake3", "+set", "cl_renderer", "vulkan"] os.chdir(os.path.dirname(os.path.abspath(rom))) return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = [ "ionfury", "-game_dir", "/userdata/roms/ionfury", "-g", rom ] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): isAVX2 = checkAvx2() sseLib = checkSseLib(isAVX2) # Config files configureReg(batoceraFiles.pcsx2ConfigDir) configureUI(batoceraFiles.pcsx2ConfigDir, batoceraFiles.BIOS, system.config, gameResolution) configureVM(batoceraFiles.pcsx2ConfigDir, system) configureGFX(batoceraFiles.pcsx2ConfigDir, system) configureAudio(batoceraFiles.pcsx2ConfigDir) if isAVX2: commandArray = [batoceraFiles.batoceraBins['pcsx2_avx2'], rom] else: commandArray = [batoceraFiles.batoceraBins['pcsx2'], rom] # Fullscreen commandArray.append("--fullscreen") # No GUI commandArray.append("--nogui") # Fullboot if system.isOptSet('fullboot') and system.config['fullboot'] == '0': print("Fast Boot and skip BIOS") else: commandArray.append("--fullboot") # Plugins real_pluginsDir = batoceraFiles.pcsx2PluginsDir if isAVX2: real_pluginsDir = batoceraFiles.pcsx2Avx2PluginsDir commandArray.append("--gs=" + real_pluginsDir + "/" + sseLib) # Arch arch = "x86" with open('/usr/share/batocera/batocera.arch', 'r') as content_file: arch = content_file.read() env = {} env["XDG_CONFIG_HOME"] = batoceraFiles.CONF env["SDL_GAMECONTROLLERCONFIG"] = controllersConfig.generateSdlGameControllerConfig( playersControllers) env["SDL_PADSORDERCONFIG"] = controllersConfig.generateSdlGameControllerPadsOrderConfig( playersControllers) if arch == "x86": env["LD_LIBRARY_PATH"] = "/lib32" env["LIBGL_DRIVERS_PATH"] = "/lib32/dri" return Command.Command(array=commandArray, env=env)
def generate(self, system, rom, playersControllers, gameResolution): commandArray = [ "solarus-run", "-fullscreen=yes", "-cursor-visible=no", "-lua-console=no", rom ] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): commandArray = ["devilutionx", "--data-dir", "/userdata/roms/devilutionx", "--config-dir", "/userdata/system/configs/devilutionx", "--save-dir", "/userdata/saves/devilutionx"] if not rom.endswith('hellfire.mpq'): commandArray.append('--diablo') if system.isOptSet('showFPS') and system.getOptBoolean('showFPS') == True: commandArray.append("-f") return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): if not os.path.exists(BIN_PATH): eslog.error( "Lexaloffle official pico-8 binary not found at {}".format( BIN_PATH)) return -1 if not os.access(BIN_PATH, os.X_OK): eslog.error("File {} is not set as executable".format(BIN_PATH)) return -1 # the command to run commandArray = [BIN_PATH] commandArray.extend(["-desktop", "/userdata/screenshots"]) # screenshots commandArray.extend(["-windowed", "0"]) # full screen # Display FPS if system.config['showFPS'] == 'true': commandArray.extend(["-show_fps", "1"]) else: commandArray.extend(["-show_fps", "0"]) basename = os.path.basename(rom) rombase, romext = os.path.splitext(basename) # .m3u support for multi-cart pico-8 if (romext.lower() == ".m3u"): with open(rom, "r") as fpin: lines = fpin.readlines() fullpath = os.path.dirname( os.path.abspath(rom)) + '/' + lines[0].strip() localpath, localrom = os.path.split(fullpath) commandArray.extend(["-root_path", localpath]) rom = fullpath else: commandArray.extend(["-root_path", "/userdata/roms/pico8" ]) # store carts from splore if (rombase.lower() == "splore" or rombase.lower() == "console"): commandArray.extend(["-splore"]) else: commandArray.extend(["-run", rom]) controllersdir = os.path.dirname(CONTROLLERS) if not os.path.exists(controllersdir): os.makedirs(controllersdir) controllersconfig = controllersConfig.generateSdlGameControllerConfig( playersControllers) with open(CONTROLLERS, "w") as file: file.write(controllersconfig) return Command.Command(array=commandArray, env={})
def generate(self, system, rom, playersControllers, gameResolution): commandArray = [ "dhewm3", "+set", "fs_basepath", "/userdata/roms/doom3", "+set", "r_mode", "3" ] return Command.Command( array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): os.chdir("/userdata/roms/hode") commandArray = [ "hode", "--datapath=/userdata/roms/hode", "--savepath=/userdata/saves/hode" ] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): configdir = "/userdata/system/configs/redream" if not os.path.exists(configdir): os.makedirs(configdir) copyfile("/usr/bin/redream", configdir + "/redream") os.chmod(configdir + "/redream", 0o0775) commandArray = [configdir + "/redream", rom] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): gamemod = "baseq2" if (rom.__contains__("rogue")): gamemod = "rogue" if (rom.__contains__("xatrix")): gamemod = "xatrix" commandArray = ["quake2", "-datadir", "/userdata/roms/yquake2", "+set", "r_vsync", "1", "+set", "vk_sampleshading", "0", "+set", "vk_polyblend", "0", "+set", "vk_dynamic", "0", "+set", "vk_postprocess", "0", "+set", "game" , gamemod] return Command.Command( array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig(playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): if system.name == "windows_installers": commandArray = ["batocera-wine", "install", rom] return Command.Command(array=commandArray) elif system.name == "windows": commandArray = ["batocera-wine", "play", rom] return Command.Command( array=commandArray, env={ "SDL_GAMECONTROLLERCONFIG": controllersConfig.generateSdlGameControllerConfig( playersControllers), }) raise Exception("invalid system " + system.name)
def generate(self, system, rom, playersControllers, gameResolution): game = os.path.splitext(os.path.basename(rom))[0] arch_suffix = _get_arch_suffix() server_lib = _get_server_lib_basename_from_liblist_gam(game) # Useful options for debugging: # -log # Log to /userdata/roms/xash3d_fwgs/engine.log # -dev 2 # Verbose logging # -ref gles2 # Select a specific renderer (gl, gl4es, gles1, gles2, soft) commandArray = ['/usr/lib/xash3d/xash3d', '-fullscreen', '-dev'] # By default, xash3d will use `dlls/hl.so` in the valve directory (via the `liblist.gam` config file). # However, that `so` is incompatible with xash3d (it's the x86-glibc version from Valve). # We instead point to the hlsdk-xash3d `so`. commandArray.append('-clientlib') commandArray.append(_find_client_lib(server_lib, arch_suffix)) commandArray.append('-dll') commandArray.append(_find_server_lib(server_lib, arch_suffix)) commandArray.append('-game') commandArray.append(game) commandArray.append('+showfps') commandArray.append('1' if system.getOptBoolean('showFPS') == True else '0') # https://github.com/FWGS/xash3d-fwgs/issues/307 commandArray.append('+sv_validate_changelevel') commandArray.append('0') self._maybeInitConfig(game) self._maybeInitSaveDir(game) return Command.Command( array=commandArray, env={ 'XASH3D_BASEDIR': _ROMS_DIR, 'XASH3D_EXTRAS_PAK1': _ROMS_DIR + '/extras.pak', 'LD_LIBRARY_PATH': '/usr/lib/xash3d', 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })
def generate(self, system, rom, playersControllers, gameResolution): addon = "-addon0" if (rom.__contains__("WT")): addon = "-addon1" if (rom.__contains__("TD")): addon = "-addon2" commandArray = ["voidsw", addon, "-j/userdata/roms/voidsw"] return Command.Command( array=commandArray, env={ 'SDL_GAMECONTROLLERCONFIG': controllersConfig.generateSdlGameControllerConfig( playersControllers) })