Este es un emulador de vapor que emula las características de Steam Online en una LAN. Funciona tanto en Linux como en Windows. Para un readme sobre cómo usarlo, vea: la versión readme
Reemplaza la API de Steam .dll o .lo con el mío (para obtener pasos completos, consulte el Release ReadMe) y luego puede poner a Steam en la basura y jugar sus juegos en un solo jugador en LAN sin Steam (suponiendo que los juegos no tienen DRM y use Steam para Online).
Si eres un desarrollador de juegos y cometiste el error de depender demasiado de la API de Steam y quieres liberar la versión de tu juego sin él y no quieres reescribir tu juego, esto es para ti. Es LGPLV3+ con licencia, por lo que el único código fuente que necesita publicar es el código fuente de este emulador (y solo si le hace modificarlo).
Reemplace el Steam_api (64) .dll (libsteam_api.so en Linux) del juego con el mío. Para Linux, asegúrese de que si la API original es de 32 bits, usa una compilación de 32 bits y si tiene 64 bits, usa una compilación de 64 bits.
Pon un archivo Steam_Appid.txt que contenga la aplicación del juego justo a su lado si aún no hay uno.
Si su juego tiene un Steam_api original (64) .dll o libsteam_api.s más antiguo que mayo de 2016 (en Windows: Propiedades-> Firmas digitales-> Timestamp), es posible que tenga que agregar un Steam_interfaces.txt junto a mi biblioteca de emuladores si el juego no funciona. Hay un script de Linux para generarlo en la carpeta de scripts de este repositorio.
Para obtener más información, consulte: la versión Readme
Puede descargar las últimas compilaciones Git para Linux y Windows en el sitio web de GitLab Pages y las versiones estables en la sección de lanzamiento de este repositorio.
Una de las razones por las que hice este código abierto de código es porque quiero contribuciones. A menos que su código esté relacionado con las cosas experimentales, debe funcionar tanto en Linux como en Windows. Tener un comportamiento preciso es más importante que hacer que los juegos funcionen. Tener un comportamiento inexacto podría arreglar un juego, pero romperá otros.
#Goldberg: matrix.org
Dependencias: ProtoBuf-Lite
Instale ProtoBuf-Lite (el paquete Dev) y la protocción (o ProtoBuf-Compiler o como se llame en su distribución) utilizando su administrador de paquetes.
Entonces haz: make
Y construirá la construcción de lanzamiento (no olvide agregar algo como -j8 si su computadora no es un pedazo de mierda y desea que se construya a una velocidad decente).
Para construir la construcción de depuración: make debug
Mi makfile apesta, por lo que es posible que deba hacerlo: make clean si desea construir la construcción de depuración después de construir la construcción de lanzamiento o lo contrario.
Para mi versión de lanzamiento, lo construyo en Steamos usando el script build_steamos.sh . Para que funcione, necesita una versión x86 de ProtoBuf instalada en: ../protobuf/prefix_x86/ y una versión x64 instalada en: ../protobuf/prefix/
Lo primero que debe hacer es instalar Git para Windows. Git para Windows
Luego instale Visual Studio Build Herramientas: Herramientas de compilación de Microsoft (asegúrese de instalar las herramientas de compilación C ++. Simplemente seleccione C++ build tools en el instalador y presione Instalar).
Cree una nueva carpeta en algún lugar de su computadora.
Vaya en esa carpeta y luego haga clic con el botón derecho en el símbolo del sistema GIT. (Haga clic derecho en la carpeta-> Git Bash aquí)
Ejecute los comandos:
git clone https://github.com/Microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.bat
./vcpkg install protobuf --triplet x86-windows-static
./vcpkg install protobuf --triplet x64-windows-static
cd ..
git clone https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
cd goldberg_emulator
Esto debería construir e instalar todas las dependencias y clonar el repositorio. Algunos comandos como la instalación Bootstrap-VCPKG.BAT y VCPKG podrían llevar un tiempo.
Luego para construir la versión experimental de depuración se ejecuta: build_win_debug_experimental.bat
Para construir la versión de lanzamiento Ejecutar: build_win_release.bat
Si por alguna razón desea establecer los directorios ProtoBuf en algo diferente, puede editar: build_set_protobuf_directories.bat
Vaya a la carpeta Goldberg_emulator y luego haga clic con el botón derecho del símbolo del sistema GIT. (Haga clic derecho en la carpeta-> Git Bash aquí)
Ejecute el comando:
git pull
Se incluyen los siguientes objetivos con la configuración de CMake para este proyecto:
Si bien todos los objetivos están incluidos para todas las plataformas/variantes de compilación, hay un par de puntos a tener en cuenta:
La configuración de CMake para este proyecto también incluye soporte de instalación. La instalación del proyecto dará como resultado un conjunto más limpio de archivos de salida (que los archivos de compilación sin procesar) y copiará los readmes, herramientas y otros archivos de soporte apropiados del directorio de proyectos. Esta instalación está estructurada como siguió:
+ install-folder
|- (lib)steam_api(64).[dll|so]
|- (lib)steamclient(64).[dll|so]
|- (lib)steamnetworkingsockets(64).[dll|so]
|- Readme_release.txt
|- Readme_debug.txt // Only for debug build's
|- Readme_experimental.txt // Only for experimental build's
|- steam_appid.EDIT_AND_RENAME.txt
|- steam_interfaces.EXAMPLE.txt
|+ lobby_connect
|- lobby_connect(64)(.exe)
|- Readme_lobby_connect.txt
|+ tools
|- generate_interfaces(64)(.exe)
|- find_interfaces.ps1
|- find_interfaces.sh
|- Readme_generate_interfaces.txt
|+ steam_settings.EXAMPLE
|- ... // steam_settings example files
Tenga en cuenta que si no se establece CMAKE_INSTALL_PREFIX Define para la generación de CMake (u otro método para configurar un directorio de instalación personalizado) se utilizará los directorios de instalación específicos predeterminados del sistema operativo, estos son:
c:/Program Files/${PROJECT_NAME}/usr/localConsulte la sección 'Cambiar el directorio de instalación' de este ReadMe para obtener más información.
+ some-top-level-folder
|- vcpkg
|- goldberg_emulator
bootstrap-vcpkg.bat en la carpeta de instalaciónvcpkg install protobuf --triplet x64-windows-static && vcpkg install protobuf --triplet x86-windows-staticEste repositorio incluye un archivo cmakesettings.json que contiene las configuraciones para las siguientes plataformas de destino y variantes de compilación:
Estas configuraciones deben cargarse automáticamente al abrir la carpeta Goldberg_emulator en Visual Studio. Para obtener más información sobre cómo usar estas configuraciones (y el proyecto CMake en Visual Studio en general), consulte: https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019
Las compilaciones de Visual Studio para las configuraciones de Windows y WSL se emitirán a la siguiente carpeta: ${projectDir}out${workspaceHash}build<configuration name>
También puede optar por instalar directamente desde Visual Studio. Las instalaciones de Visual Studio para las configuraciones de Windows se emitirán a la siguiente carpeta: ${projectDir}outinstall<configuration name>
Mientras se usa estas configuraciones, hay un par de puntos a tener en cuenta:
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars64.bat"
cd "<build folder>"
cmake "<goldberg_emulator src folder>" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="<vcpkg installation folder>scriptsbuildsystemsvcpkg.cmake"
Tenga en cuenta que si está utilizando las herramientas de compilación para Visual Studio 2019, la ruta al VCVARS64.Bat es ligeramente diferente:
call "<Path to Build Tools for Visual Studio 2019 Installation Folder>2019BuildToolsVCAuxiliaryBuildvcvars64.bat"
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars64.bat"
cd "<build folder>"
nmake
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars64.bat"
cd "<build folder>"
nmake install
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars86.bat"
cd "<build folder>"
cmake "<goldberg_emulator src folder>" -DVCPKG_TARGET_TRIPLET:STRING="x86-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="<vcpkg installation folder>scriptsbuildsystemsvcpkg.cmake"
Tenga en cuenta que si está utilizando las herramientas de compilación para Visual Studio 2019, la ruta al VCVARS86.BAT es ligeramente diferente:
call "<Path to Build Tools for Visual Studio 2019 Installation Folder>2019BuildToolsVCAuxiliaryBuildvcvars86.bat"
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars86.bat"
cd "<build folder>"
nmake
call "<Path to Microsoft Visual Studio Installation Folder>2019VCAuxiliaryBuildvcvars86.bat"
cd "<build folder>"
nmake install
sudo apt install build-essential )sudo apt install cmake )sudo apt install libprotobuf-dev protobuf-compiler ) cd "<build folder>"
cmake "<goldberg_emulator src folder>"
cd "<build folder>"
make
cd "<build folder>"
make install
Para establecer el generador, append -G "<Generator Name>" por ejemplo
cmake .. -G "Ninja" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake"
Para establecer el tipo de compilación, append -DCMAKE_BUILD_TYPE:STRING="<Build Type>" eg
cmake .. -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo"
Para establecer la compilación experimental, append -DEMU_EXPERIMENTAL_BUILD:BOOL=ON EG
cmake .. -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DEMU_EXPERIMENTAL_BUILD:BOOL=ON
Para construir una configuración CMake generada con Ninja:
cd "<build folder>"
ninja
Para usar una dirección de instalación personalizada, append -DCMAKE_INSTALL_PREFIX:STRING="<Custom Installation Directory>" EG
cmake .. -DCMAKE_INSTALL_PREFIX:STRING="./install/" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo"
Si no desea preestablecer el directorio de instalación durante el paso de generación, también puede usar una herramienta de compilación o una sobrescritura específica del sistema operativo, algunos ejemplos de esto son:
nmake install prefix="<Custom Installation Directory>"make DESTDIR="<Custom Installation Directory>" install Creo que la forma en que otros emuladores de Steam tienen un INI cuando configuras todo en una configuración por juego es tonta. Las únicas cosas que deben establecerse en una configuración por juego son las cosas específicas de ese juego como el AppID, DLC, MODS, Versiones de interfaz, etc.
El resto, como tu nombre, debería estar establecido en un lugar global porque no me gusta tener que configurar cada nombre de todos en un INI para cada juego que copio a las personas cuando quiero copiarlos para jugar en mi LAN.
Mi EMU se hace de una manera que puedes instalarlo en un juego y luego copiar el juego a las personas y no tienen que cambiar nada.
Estoy de acuerdo en que el hecho de que tengo múltiples archivos puede ser tonto, pero en realidad no lo es. Su sistema de archivos es una base de datos, entonces, ¿por qué tendría que replicarlo haciendo un archivo de configuración cuando puede tener muchos? Es mucho más fácil administrar en cuanto a codificación.
No hay diferencia en la funcionalidad entre la versión normal de Windows y la versión de Linux. Windows tiene una construcción experimental que tiene características que solo tienen sentido en Windows.
Lea esto si quiere saber qué es: el readme experimental
Es tan ilegal como el vino o cualquier emulador de consola HLE. Todo esto es eliminar la dependencia de Steam de sus juegos de Steam.
No rompe ningún DRM. Si el juego tiene una protección que no le permite usar una API de Steam STEAM personalizada, debe ser agrietado antes de usar mi emulador. Steam es un DRM tanto como cualquier API es un DRM. El vapor tiene DRM real llamado Steamstub, que se puede romper fácilmente, pero esto no lo romperá para usted.
No, no me importa hacer que estos juegos funcionen porque usan API como el coordinador del juego que ningún otro juego usa. También Valve sigue cambiándolos.
Sin embargo, si alguien más pierde su tiempo para que trabajen y felizmente fusionaré su trabajo.