Dies ist ein Dampfemulator, der Dampf -Online -Funktionen auf einem LAN emuliert. Es funktioniert sowohl unter Linux als auch unter Windows. Für eine Readme, wie man es verwendet, siehe: The Release Readme
Sie ersetzen die Steam -API .Dll oder .So mit meinen (für vollständige Schritte sehen Sie sich die Release -Readme an) und dann können Sie Steam in den Müll einfügen und Ihre Spiele entweder in Einzelspieler auf LAN ohne Dampf spielen (vorausgesetzt, die Spiele haben keine DRM und verwenden Steam für Online).
Wenn Sie ein Spielentwickler sind und den Fehler gemacht haben, zu sehr von der Steam -API abhängig zu sein und die Version Ihres Spiels ohne es veröffentlichen und Ihr Spiel nicht neu schreiben möchten, ist dies für Sie. Es handelt sich um lgplv3+ lizenziert, daher ist der einzige Quellcode, den Sie veröffentlichen, der Quellcode dieses Emulators (und nur, wenn Sie Änderungen daran vornehmen).
Ersetzen Sie die Steam_api (64) .dll (libSteam_api.so unter Linux) aus dem Spiel mit meiner. Stellen Sie für Linux sicher, dass Sie einen 32 -Bit -Build verwenden, wenn die ursprüngliche API 32 -Bit ist und wenn es sich um 64 -Bit handelt, verwenden Sie einen 64 -Bit -Build.
Setzen Sie eine Steam_appid.txt -Datei ein, die die Anhäufung des Spiels direkt daneben enthält, wenn es noch eine gibt.
Wenn Ihr Spiel über einen originalen Steam_api (64) .dll oder libSteam_API.Sos älter als Mai 2016 (unter Windows: Eigenschaften-> Digitale Signaturen-> Zeitstempel), müssen Sie möglicherweise eine Steam_interfaces hinzufügen. Es gibt ein Linux -Skript, um es im Scripts -Ordner dieses Repo zu generieren.
Weitere Informationen finden Sie unter: The Release Readme
Sie können die neuesten Git -Builds für Linux und Windows auf der Website GitLab Pages und die stabilen Veröffentlichungen im Abschnitt Release dieses Repo herunterladen.
Einer der Gründe, warum ich diesen Code Open Source gemacht habe, ist, dass ich Beiträge möchte. Es sei denn, Ihr Code bezieht sich auf das experimentelle Material, das er benötigt, um sowohl unter Linux als auch unter Windows zu arbeiten. Genaueres Verhalten ist wichtiger als Spiele zum Laufen zu bringen. Ein ungenaues Verhalten könnte ein Spiel beheben, aber es wird andere brechen.
#Goldberg: matrix.org
Abhängigkeiten: Protobuf-Lite
Installieren Sie Protobuf-Lite (das Dev-Paket) und Protoc (oder Protobuf-Compiler oder was auch immer es in Ihrer Distribution genannt wird) mit Ihrem Paketmanager.
Dann tun Sie: make
Und es wird den Release -Build aufbauen (vergessen Sie nicht, so etwas wie -j8 hinzuzufügen, wenn Ihr Computer kein Stück Scheiße ist und Sie möchten, dass er mit einer anständigen Geschwindigkeit aufbaut).
Um den Debug -Build zu bauen: make debug
Mein Makefile ist scheiße, so dass Sie dies möglicherweise tun müssen: make clean , wenn Sie den Debug -Build nach dem Bau des Release -Builds oder dem Gegenteil bauen möchten.
Für meinen Release -Build baue ich es mit dem Skript build_steamos.sh auf Steamos auf. Damit die ../protobuf/prefix_x86/ ../protobuf/prefix/
Das erste, was Sie tun sollten, ist, Git für Windows zu installieren. Git für Windows
Installieren Sie dann Visual Studio Build -Tools: Microsoft Build -Tools (Stellen Sie sicher, dass Sie die C ++ - Build -Tools installieren. Wählen Sie einfach C++ build tools im Installationsprogramm und drücken Sie die Installation.)
Erstellen Sie irgendwo auf Ihrem Computer einen neuen Ordner.
Gehen Sie in diesen Ordner und klicken Sie mit der rechten Maustaste auf die Git-Eingabeaufforderung. (Klicken Sie hier mit der rechten Maustaste in Ordner-> Git Bash)
Führen Sie die Befehle aus:
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
Dies sollte alle Abhängigkeiten erstellen und installieren und das Repo klonen. Einige Befehle wie die Installation von Bootstrap-VCPKG.Bat und VCPKG können eine Weile dauern.
Dann build_win_debug_experimental.bat
So erstellen Sie den Release -Version aus: build_win_release.bat
Wenn Sie aus irgendeinem Grund die Protobuf -Verzeichnisse auf etwas anderes festlegen möchten, können Sie bearbeiten: build_set_protobuf_directories.bat
Gehen Sie in den Ordner goldberg_emulator und klicken Sie mit der rechten Maustaste und öffnen Sie die Git-Eingabeaufforderung. (Klicken Sie hier mit der rechten Maustaste in Ordner-> Git Bash)
Führen Sie den Befehl aus:
git pull
Die folgenden Ziele sind mit der CMake -Konfiguration für dieses Projekt enthalten:
Während alle Ziele für alle Plattformen/Build -Varianten enthalten sind, sind einige Punkte zu beachten:
Die CMAKE -Konfiguration für dieses Projekt enthält auch die Installationsunterstützung. Die Installation des Projekts führt zu einem saubereren Satz von Ausgabedateien (als den RAW -Build -Dateien) und kopiert die entsprechenden ReadMes, Tools und anderen Support -Dateien aus dem Projektverzeichnis. Diese Installation ist wie folgt strukturiert:
+ 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
Beachten Sie, dass, wenn kein CMAKE_INSTALL_PREFIX -Define für die CMake -Generierung festgelegt wird (oder eine andere Methode zur Einstellung eines benutzerdefinierten Installationsverzeichnisses). Die Standard -OS -spezifischen Installationsverzeichnisse werden verwendet.
c:/Program Files/${PROJECT_NAME}/usr/localWeitere Informationen finden Sie im Abschnitt "Änderung des Installationsverzeichnisses" dieses ReadME.
+ some-top-level-folder
|- vcpkg
|- goldberg_emulator
bootstrap-vcpkg.bat aus dem Installationsordner installiert werdenvcpkg install protobuf --triplet x64-windows-static && vcpkg install protobuf --triplet x86-windows-staticDieses Repo enthält eine cmakesettings.json -Datei, die die Konfigurationen für die folgenden Zielplattformen und Build -Varianten enthält:
Diese Konfigurationen sollten beim Öffnen des Ordners goldberg_emulator in visual Studio automatisch geladen werden. Weitere Informationen zur Verwendung dieser Konfigurationen (und CMake-Projekte in Visual Studio im Allgemeinen) finden Sie unter: https://docs
Visual Studio Builds für Windows und WSL -Konfigurationen von werden in den folgenden Ordner ausgegeben: ${projectDir}out${workspaceHash}build<configuration name>
Sie können sich auch direkt von Visual Studio installieren. Visual Studio -Installationen für Windows -Konfigurationen von werden in den folgenden Ordner ausgegeben: ${projectDir}outinstall<configuration name>
Während der Verwendung dieser Konfigurationen sind einige Punkte zu beachten:
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"
Beachten Sie, dass der Pfad zum VCVARS64.Bat leicht unterschiedlich ist, wenn Sie die Build -Tools für Visual Studio 2019 verwenden:
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"
Beachten Sie, dass der Weg zum vcvars86.bat leicht unterschiedlich ist, wenn Sie die Build -Tools für Visual Studio 2019 verwenden:
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 Paketmanager Ihrer Distribose erhalten werden (z.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
Um den Generator festzulegen, append -G "<Generator Name>" zB.
cmake .. -G "Ninja" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake"
Um den Build -Typ festzulegen, 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"
Um den experimentellen Build festzulegen, 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
So erstellen Sie eine mit Ninja generierte CMake -Konfiguration:
cd "<build folder>"
ninja
Um eine benutzerdefinierte Installationsrichtung zu verwenden, append -DCMAKE_INSTALL_PREFIX:STRING="<Custom Installation Directory>" zB zB zB z.
cmake .. -DCMAKE_INSTALL_PREFIX:STRING="./install/" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo"
Wenn Sie das Installationsverzeichnis während des Erzeugungsschritts nicht voreinstellen möchten, können Sie auch ein Build -Tool oder ein OS -spezifischer Überschreib verwenden. Einige Beispiele hierfür sind:
nmake install prefix="<Custom Installation Directory>"make DESTDIR="<Custom Installation Directory>" install Ich denke, die Art und Weise, wie andere Dampfemulatoren ein INI haben, wenn Sie alles auf eine Spieleinstellung einstellen, ist dumm. Die einzigen Dinge, die auf einer Spieleinstellung eingestellt werden sollten, sind die Dinge, die für dieses Spiel spezifisch sind, wie das Appid, DLC, Mods, Schnittstellenversionen usw.
Der Rest wie Ihr Name sollte an einem globalen Ort festgelegt werden, weil ich nicht gerne jeden verdammten Namen von allen in einem INI für jedes Spiel festlegen muss, das ich an die Leute kopiere, wenn ich ihnen Spiele kopieren möchte, um auf meinem LAN zu spielen.
Meine Emu wird so hergestellt, dass Sie es einfach in einem Spiel installieren und dann das Spiel an die Leute kopieren können und sie müssen nichts ändern.
Ich bin damit einverstanden, dass die Tatsache, dass ich mehrere Dateien habe, dumm sein könnte, aber es ist eigentlich nicht. Ihr Dateisystem ist eine Datenbank. Warum müssen Sie diese also replizieren, indem Sie eine Konfigurationsdatei erstellen, wenn Sie nur viele haben können. Es ist viel einfacher, die Codierung weise zu verwalten.
Es gibt keinen Unterschied in der Funktionalität zwischen der normalen Windows -Version und der Linux -Version. Windows verfügt über einen experimentellen Build, der Funktionen enthält, die nur unter Windows sinnvoll sind.
Lesen Sie dies, wenn Sie wissen möchten, was es ist: das experimentelle Readme
Es ist so illegal wie Wein oder einen HLE -Konsolenemulator. All dies macht die Dampfabhängigkeit von Ihren Steam -Spielen.
Es bricht keine DRM. Wenn das Spiel einen Schutz hat, bei dem Sie nicht eine benutzerdefinierte Steam -API -DLL verwenden können, muss es geknackt werden, bevor Sie meinen Emulator verwenden. Dampf ist so viel DRM, wie jede API ein DRM ist. Steam hat tatsächliche DRM namens SteamStub, das leicht geknackt werden kann, dies wird jedoch nicht für Sie geknackt.
Nein, es ist mir egal, dass diese Spiele funktionieren, weil sie APIs wie den Spielkoordinator verwenden, den kein anderes Spiel verwendet. Auch Ventil wechselt sie immer wieder.
Wenn jedoch jemand anderes seine Zeit verschwendet, um sie zum Laufen zu bringen, und ich seine Arbeit gerne zusammenführen werde.