これは、LAN上の蒸気オンライン機能をエミュレートする蒸気エミュレータです。 LinuxとWindowsの両方で動作します。それの使用方法に関するreadmeについては、リリースreadmeを参照してください
Steam API .DLLまたは.SOを私のものに置き換えます(完全な手順については、リリースREADMEを参照してください)。その後、The Steamをゴミ箱に入れてLAN On Lanのシングルプレイヤーでゲームをプレイできます(ゲームにはDRMがなく、オンラインにSteamを使用していると仮定します)。
あなたがゲームの開発者であり、Steam APIに多すぎてゲームのバージョンをリリースしたいというミスを犯した場合、ゲームを書き直したくない場合、これはあなたのためです。ライセンスされたLGPLV3+であるため、公開する必要があるソースコードのみは、このエミュレータのソースコードです(および変更する場合のみ)。
Steam_api(64).dll(Libsteam_api.so on linuxのlibsteam_api.so)を私のものから置き換えます。 Linuxの場合、元のAPIが32ビットの場合、32ビットビルドを使用し、64ビットの場合は64ビットビルドを使用していることを確認してください。
ゲームがまだない場合は、ゲームのAPPIDをそのすぐそばに含むSteam_Appid.txtファイルを配置します。
ゲームに2016年5月よりも古いオリジナルのSteam_Api(64).dllまたはlibsteam_api.soがある場合(Windows:Properties-> Digital Signatures-> Timestamp)、ゲームが機能していない場合はEmular Libraryの横にSteam_Interfaces.txtを追加する必要があります。このレポのスクリプトフォルダーに生成するLinuxスクリプトがあります。
詳細については、リリースREADMEを参照してください
GitLab Pages WebサイトのLinuxとWindowsの最新のGitビルドと、このリポジトリのリリースセクションに安定したリリースをダウンロードできます。
このコードをオープンソースにした理由の1つは、貢献したいからです。コードが実験的なものに関連していない限り、LinuxとWindowsの両方で動作する必要があります。正確な動作をすることは、ゲームを機能させるよりも重要です。動作が不正確になると、1つのゲームが修正される可能性がありますが、他のゲームを壊します。
#GOLDBERG:matrix.org
依存関係:protobuf-lite
パッケージマネージャーを使用して、ProtoBuf-Lite(DEVパッケージ)とProtoc(またはProtoBuf-Compilerまたはそれがディストリビューションで呼ばれているもの)をインストールします。
次に、 make
また、リリースビルドを構築します(コンピューターがたわごとではなく、まともな速度でビルドしたい場合は、 -j8のようなものを追加することを忘れないでください)。
デバッグビルドを構築するには: make debug
私のmakefileは吸うので、あなたはする必要があるかもしれません:リリースビルドまたは反対を構築した後にデバッグビルドを構築したい場合はmake clean 。
私のリリースビルドでは、 build_steamos.shスクリプトを使用してSteamosにビルドします。それが機能するには、x86バージョンのprotobufのインストールが必要です: ../protobuf/prefix_x86/ prefix_x86/およびx64バージョンがインストールされています: ../protobuf/prefix/ /
最初にすべきことは、WindowsにGitをインストールすることです。 Windows用のgit
次に、Visual Studioビルドツール:Microsoft Build Tools(C ++ビルドツールをインストールしてください。インストーラーでC++ build toolsを選択し、インストールを押してください。)
コンピューターのどこかに新しいフォルダーを作成します。
そのフォルダーに移動してから、右クリックしてgitコマンドプロンプトを開きます。 (フォルダーを右クリック - > git bashはこちら)
コマンドを実行します:
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
これにより、すべての依存関係を構築およびインストールし、リポジトリをクローンする必要があります。 Bootstrap-VCPKG.BATやVCPKGのインストールなどのコマンドには、時間がかかる場合があります。
次に、デバッグ実験バージョンを作成するには、 build_win_debug_experimental.batを作成します
リリースバージョンをビルドするには、実行build_win_release.batを実行します
何らかの理由でProtoBufディレクトリを別の何かに設定したい場合は、編集できます: build_set_protobuf_directories.bat
Goldberg_emulatorフォルダーに移動してから、右クリックしてgitコマンドプロンプトを開きます。 (フォルダーを右クリック - > git bashはこちら)
コマンドを実行します:
git pull
次のターゲットは、このプロジェクトのCmake構成に含まれています。
すべてのターゲットはすべてのプラットフォーム/ビルドバリアントに含まれていますが、注意すべき点がいくつかあります。
このプロジェクトのCmake構成には、インストールサポートも含まれています。プロジェクトをインストールすると、クリーンな出力ファイル(RAWビルドファイルよりも)セットが作成され、プロジェクトディレクトリから適切なREADMES、ツール、その他のサポートファイルをコピーします。このインストールは、次のように構成されています。
+ 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
CMAKE_INSTALL_PREFIX定義がCMAKE生成に設定されていない場合(またはカスタムインストールディレクトリを設定する別の方法が使用されます)、デフォルトのOS固有のインストールディレクトリが使用されます。これらは次のとおりです。
c:/Program Files/${PROJECT_NAME}/usr/local詳細については、このREADMEの「インストールディレクトリの変更」セクションをご覧ください。
+ some-top-level-folder
|- vcpkg
|- goldberg_emulator
bootstrap-vcpkg.batを実行してインストールできますvcpkg install protobuf --triplet x64-windows-static && vcpkg install protobuf --triplet x86-windows-staticを実行して(VCPKGを介して)インストールすることができます。このレポは、次のターゲットプラットフォームの構成を含むcmakesettings.jsonファイルが含まれています。
これらの構成は、Visual StudioでGoldberg_Emulatorフォルダーを開くときに自動的にロードする必要があります。これらの構成の使用方法の詳細(および一般的にVisual StudioでのCmakeプロジェクト)については、https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?visual-studio = vs-2019を参照してください。
WindowsおよびWSL構成用のVisual Studioビルドは、次のフォルダーに出力されます: ${projectDir}out${workspaceHash}build<configuration name>
Visual Studioから直接インストールすることもできます。 Windows構成用のVisual Studioインストールは、次のフォルダーに出力されます: ${projectDir}outinstall<configuration name>
これらの構成を使用している間、注意すべき点がいくつかあります。
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"
Visual Studio 2019のビルドツールを使用している場合、VCVARS64.BATへのパスはわずかに異なります。
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"
Visual Studio 2019のビルドツールを使用している場合、VCVARS86.BATへのパスはわずかに異なります。
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
ジェネレーターを設定するには、 -G "<Generator Name>"を追加します
cmake .. -G "Ninja" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake"
ビルドタイプを設定するには、 -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"
実験的なビルドを設定するには、 -DEMU_EXPERIMENTAL_BUILD:BOOL=ONを追加します
cmake .. -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DEMU_EXPERIMENTAL_BUILD:BOOL=ON
忍者で生成されたCmake構成を構築するには:
cd "<build folder>"
ninja
カスタムインストールの方向を使用するには、 -DCMAKE_INSTALL_PREFIX:STRING="<Custom Installation Directory>"を追加するには
cmake .. -DCMAKE_INSTALL_PREFIX:STRING="./install/" -DVCPKG_TARGET_TRIPLET:STRING="x64-windows-static" -DCMAKE_TOOLCHAIN_FILE:STRING="..vcpkgscriptsbuildsystemsvcpkg.cmake" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo"
生成ステップ中にインストールディレクトリをプリセットしたくない場合は、ビルドツールまたはOS固有の上書きを使用することもできます。これの例は次のとおりです。
nmake install prefix="<Custom Installation Directory>"make DESTDIR="<Custom Installation Directory>" install ゲームごとの設定ですべてを設定するときの他の蒸気エミュレーターがINIを持っている方法は馬鹿げていると思います。ゲームごとの設定で設定する唯一のことは、AppID、DLC、MOD、インターフェイスバージョンなどのようなゲームに固有のものです...
あなたの名前のような残りは、LANでプレイするためにゲームをコピーしたいときに人々にコピーするすべてのゲームのすべての人のすべてのクソ名前をINIに設定する必要がないので、あなたの名前のような残りをグローバルな場所に設定する必要があります。
私のEMUは、ゲームにインストールしてからゲームを人々にコピーできるように作られており、何も変更する必要はありません。
私は複数のファイルを持っているという事実は愚かであるかもしれませんが、実際にはそうではないことに同意します。ファイルシステムはデータベースです。そのため、1つの構成ファイルを作成して、多くのことをできるのに、なぜそれを複製する必要があるのですか。コーディングを賢明に管理する方がはるかに簡単です。
通常のWindowsバージョンとLinuxバージョンの間に機能に違いはありません。 Windowsには、Windowsでのみ理にかなっている機能を備えた実験的なビルドがあります。
あなたがそれが何であるかを知りたい場合はこれを読んでください:実験的readme
ワインやHLEコンソールエミュレータと同じくらい違法です。これは、Steamゲームから蒸気依存性を削除することです。
DRMを壊しません。ゲームにカスタムスチームAPI DLLを使用できない保護がある場合は、エミュレータを使用する前にクラックする必要があります。蒸気は、APIがDRMであるのと同じくらいDRMです。 Steamには、SteamStubと呼ばれる実際のDRMがあり、簡単にひび割れますが、これはあなたのためにそれを割ることはありません。
いいえ、他のゲームが使用していないゲームコーディネーターのようなAPIを使用するため、これらのゲームを機能させることは気にしません。また、バルブはそれらを変更し続けます。
しかし、他の誰かが彼らを働かせるために彼らの時間を無駄にしていれば、私は彼らの仕事を喜んで融合させます。