Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
7efd3ee
SDK 1.63
universal963 Dec 1, 2025
390c3ab
Merge pull request #391 from universal963/patch-sdk163
Detanup01 Dec 4, 2025
e072a14
Closes #394
Detanup01 Dec 15, 2025
63f803d
revert p2p manager changes
Jan 9, 2026
d3ef427
disable_achievement_progress=1
GogoVang Jan 15, 2026
3dcbaf8
Merge pull request #409 from GogoVang/dev
Detanup01 Jan 15, 2026
41cd9b8
Merge pull request #408 from otavepto/patch/rp2p
Detanup01 Jan 18, 2026
a52b15b
update 3rdparty and win premake buildscript
Detanup01 Jan 27, 2026
4baaddc
Fix error in lobbyconnect
Detanup01 Jan 27, 2026
2444ed4
Fix workflows, readme and buildscript
Detanup01 Jan 27, 2026
54203d2
update to latest 3rd party
Detanup01 Jan 27, 2026
3e8687d
fix lobbyconnect compile
Detanup01 Jan 27, 2026
2ed1857
update workflow, deps, readme, buildscript
Detanup01 Jan 27, 2026
51ae84f
update windows runners
Detanup01 Jan 27, 2026
7d85075
Merge pull request #420 from Detanup01/lobby-connect-stuff
Detanup01 Jan 28, 2026
c60ac33
Restore `account_avatar_default`
universal963 Feb 9, 2026
4cf325e
Merge pull request #431 from universal963/patch-defaultavatar
Detanup01 Feb 9, 2026
b3b738f
Add purchased_keys.txt support for proof of purchase keys
Feb 16, 2026
331f44a
Add support for purchased keys in README and create example file
Feb 16, 2026
8b1e1c3
windows runs-on to vs26
Detanup01 Feb 16, 2026
82e0d35
Merge pull request #432 from Rustbeard86/feature/purchased-keys
Detanup01 Feb 16, 2026
dfdd3b2
Fix premakes
Detanup01 Feb 16, 2026
6660ebb
fix build all win
Detanup01 Feb 16, 2026
1db0de9
handle numeric achievement progress
Feb 17, 2026
1be262a
Merge pull request #435 from otavepto/patch/num-trigger-val-type
Detanup01 Feb 19, 2026
7da0970
Add more tools in README.md
universal963 Feb 19, 2026
cfa81d7
Merge pull request #437 from universal963/patch-toolsinfoupdate
Detanup01 Feb 19, 2026
315b1b1
Fire Steam2 deny callback for denied Steam2 auth requests
NicknineTheEagle Feb 20, 2026
94b91ce
Merge pull request #438 from NicknineTheEagle/nn/auth
Detanup01 Feb 20, 2026
031abb5
Broadcast to 10 ports for peer discovery
NicknineTheEagle Feb 21, 2026
8174c6f
Fixed send_broadcasts not always sending to the correct port
NicknineTheEagle Feb 21, 2026
e213951
Use GetAdaptersAddresses to collect broadcast addresses on Windows
NicknineTheEagle Feb 21, 2026
8e7e4f2
Merge pull request #439 from NicknineTheEagle/nn/net
Detanup01 Feb 23, 2026
4592ed6
Organize old SDK functions
NicknineTheEagle Feb 23, 2026
39450db
Merge pull request #440 from NicknineTheEagle/nn/doc
Detanup01 Feb 24, 2026
4c5e36f
Fix pending request getting deleted while still in use
NicknineTheEagle Feb 24, 2026
6c847e0
Fully implement Steam_GameServer::BGetUserAchievementStatus
NicknineTheEagle Feb 24, 2026
f001ce6
Merge pull request #442 from NicknineTheEagle/nn/stats
Detanup01 Feb 25, 2026
ae49acc
Fix pending request cleanup in Steam_GameServerStats
NicknineTheEagle Feb 26, 2026
f631f47
Add "definition" field to items.json parser
NicknineTheEagle Feb 26, 2026
0aa2554
Add legal note where it was missing
NicknineTheEagle Feb 26, 2026
67e47ae
Implement ISteamUserItems and ISteamGameServerItems
NicknineTheEagle Feb 26, 2026
57a74a3
Merge pull request #445 from NicknineTheEagle/nn/items
Detanup01 Feb 28, 2026
a00bd0b
Remove unnecessary includes
NicknineTheEagle Feb 28, 2026
bd72a4d
Use STEAMGAMESERVER_QUERY_PORT_SHARED constant
NicknineTheEagle Feb 28, 2026
5fba4c0
Improve logging
NicknineTheEagle Feb 28, 2026
1b3589c
Use game_dir field for server details
NicknineTheEagle Feb 28, 2026
f911f7a
Add missing run_every_runcb registration
NicknineTheEagle Mar 1, 2026
e5455cd
Update server app id handling
NicknineTheEagle Feb 28, 2026
ee2baed
Rewrite SteamGameServer_Init to be more accurate
NicknineTheEagle Mar 3, 2026
cf7e7d8
Merge pull request #446 from NicknineTheEagle/nn/server
Detanup01 Mar 4, 2026
250ead8
make cloud save userdata off by default
Detanup01 Mar 4, 2026
a52e511
Fix callbacks for pre-1.02x SDKs
NicknineTheEagle Mar 4, 2026
71c5f69
Add checks for whether steam client is initialized
NicknineTheEagle Mar 7, 2026
abd03f5
Move callback code
NicknineTheEagle Mar 7, 2026
de2eedb
Fix logging
NicknineTheEagle Mar 7, 2026
716b0b7
Handle bLanMode parameter in Steam_GameServer::BSetServerType
NicknineTheEagle Mar 7, 2026
e0a4dd8
Give env vars higher priority when determining appid
NicknineTheEagle Mar 7, 2026
a0bcae7
fix SetConnectionPollGroup removing connection from wrong poll group
PaLaS0 Mar 7, 2026
7bb2d11
Merge pull request #447 from NicknineTheEagle/nn/callbacks
Detanup01 Mar 8, 2026
95d96de
Merge pull request #448 from PaLaS0/patch-1
Detanup01 Mar 8, 2026
d0bb072
Fixes GetConnectionInfo001 not return valid data
Detanup01 Mar 8, 2026
a10ebbc
Implementation of Steam_AppTicket::GetAppOwnershipTicketData
NotAndreh Mar 9, 2026
b7b14b3
Merge pull request #452 from NotAndreh/appownershipticket
Detanup01 Mar 10, 2026
96a8829
Merge pull request #451 from NicknineTheEagle/nn/misc
Detanup01 Mar 10, 2026
fd62410
Merge pull request #450 from Detanup01/socket-connInfo-fix
Detanup01 Mar 10, 2026
11e1165
Initial work on Game Coordinator
NicknineTheEagle Mar 10, 2026
1ccedc0
bump to SDK 164
Detanup01 Mar 13, 2026
a1215be
set ISteamApps to ISteamApps008 in steam old
Detanup01 Mar 13, 2026
4118e53
Update default_items.json example
NicknineTheEagle Mar 14, 2026
2ba3f33
Restore exception handling in items.json parser
NicknineTheEagle Mar 14, 2026
b3edaba
Merge pull request #459 from NicknineTheEagle/nn/items
Detanup01 Mar 14, 2026
9beca41
Merge pull request #458 from Detanup01/sdk-164
Detanup01 Mar 14, 2026
587efc0
Add check before trying with steam_settings folder
Detanup01 Mar 14, 2026
4f3501b
Fix array not exists yet
Detanup01 Mar 14, 2026
bd882d1
Remove if check for env var
Detanup01 Mar 15, 2026
f0d441e
Merge pull request #460 from Detanup01/parse_steam_app_id_fix
Detanup01 Mar 15, 2026
e5df46e
Merge pull request #456 from NicknineTheEagle/nn/gc
Detanup01 Mar 15, 2026
195baa5
Trying to add an override for controller type (SteamInput)
xan105 Mar 15, 2026
6a58b58
oops
xan105 Mar 15, 2026
9178a45
Reuse existing settings->controller_settings
xan105 Mar 16, 2026
1dd99c7
Add SteamInput enable switch
xan105 Mar 16, 2026
c96a88b
Small changes
xan105 Mar 16, 2026
dbd09e4
Restore action_handles check for backward compatibility
xan105 Mar 18, 2026
5ca52f3
Implement proper delay for SteamGameServer login
NicknineTheEagle Mar 16, 2026
8bdf3e5
Send player info with game server info
NicknineTheEagle Mar 16, 2026
949c02a
Raise auth ticket process time
NicknineTheEagle Mar 21, 2026
10bca9d
allow specifying overlay toggle keys via ini
Mar 22, 2026
d819b57
add missing strings to known interfaces
Mar 22, 2026
a8f9a43
reduce code duplication in `Steam_Apps::GetBetaInfo()`
Mar 22, 2026
b049e3c
dummy implementation for `Steam_UGC::MarkDownloadedItemAsUnused`, `St…
Mar 22, 2026
db068e4
thanks c++
Mar 22, 2026
dd24848
Always trigger logoff on server shutdown
NicknineTheEagle Mar 23, 2026
564c403
use `std::copy_n` instead of manual loop
Mar 23, 2026
8794d31
use a map for the keys instead of if-statements
Mar 23, 2026
ca8aa9e
allow specifying max parallel build jobs
Mar 23, 2026
32cbb2f
fix build parallelism on windows
Mar 23, 2026
f731d2e
recognize custom msbuild paths via `where` command line tool
Mar 23, 2026
8f02661
refactor syntax
Mar 23, 2026
d614485
Fix SteamIDs generated for bots
NicknineTheEagle Mar 24, 2026
d4cfe9b
Merge pull request #462 from xan105/dev
Detanup01 Mar 24, 2026
05182dc
Merge pull request #463 from NicknineTheEagle/nn/gs
Detanup01 Mar 24, 2026
d1d06b1
Merge pull request #467 from otavepto/patch/dummy-mods-sdk164
Detanup01 Mar 24, 2026
51a148f
Merge pull request #468 from otavepto/patch/overlay-keys
Detanup01 Mar 24, 2026
279ce6f
increase parallel jobs count for ci scripts and fix windows variant
Mar 25, 2026
e66f603
Merge pull request #470 from NicknineTheEagle/nn/gs2
Detanup01 Mar 26, 2026
3fb33ce
Merge pull request #469 from otavepto/patch/build-script-parallel
Detanup01 Mar 26, 2026
9aa1aef
update all workflows
Detanup01 Mar 26, 2026
1ce2b43
setup-msbuild update
Detanup01 Mar 26, 2026
d60120f
Add missing integer cast
NicknineTheEagle Mar 26, 2026
f3ce117
Further work on Game Coordinator
NicknineTheEagle Mar 26, 2026
cb41cde
Merge pull request #474 from Detanup01/workflows-update
Detanup01 Mar 27, 2026
cae0b81
Merge pull request #475 from NicknineTheEagle/nn/gc-protobuf
Detanup01 Mar 28, 2026
95449c5
Add mutex locks to Steam_User functions
NicknineTheEagle Mar 30, 2026
6386c75
Update old interface function signatures
NicknineTheEagle Mar 30, 2026
d581f00
Merge pull request #479 from NicknineTheEagle/nn/signatures
Detanup01 Apr 3, 2026
206ceb9
Fix Steam_User::GetLogonState
NicknineTheEagle Apr 3, 2026
6a2dc89
Use a var in Steam_User to distinguish client and server instances
NicknineTheEagle Apr 3, 2026
271b702
Fix Steam_GameServer::GSSendSteam3UserConnect
NicknineTheEagle Apr 3, 2026
c0cd8f8
Add SteamApps to supported strings in interface list generator
NicknineTheEagle Apr 3, 2026
3f6efe6
Refactoring
NicknineTheEagle Apr 3, 2026
e4b2ecc
Implement old version of SteamGameServer_Init
NicknineTheEagle Apr 3, 2026
346cca8
Don't run callback system if the user is not active
NicknineTheEagle Apr 3, 2026
87bb497
Merge pull request #481 from NicknineTheEagle/nn/gs
Detanup01 Apr 8, 2026
ed6a3fd
Merge mod_dir and game_dir fields in game server info
NicknineTheEagle Apr 16, 2026
88d11a8
Store version name and protocol version in game server info
NicknineTheEagle Apr 16, 2026
768f9e0
Fix some fields in Source query handler
NicknineTheEagle Apr 16, 2026
dca5578
Fail if `SteamAPI_ManualDispatch_FreeLastCallback()` is not called be…
universal963 Apr 18, 2026
92b55d1
Bind the flag on pipes
universal963 Apr 19, 2026
5c3d741
Merge pull request #488 from NicknineTheEagle/nn/gs
Detanup01 Apr 19, 2026
7e7b1a9
Merge pull request #491 from universal963/patch-manualcbfix
Detanup01 Apr 19, 2026
a9f8336
Fix interface generator to properly handle SteamClient in newer dlls
NicknineTheEagle Apr 19, 2026
ecf0b42
Fix indentation
NicknineTheEagle Apr 19, 2026
e0e0d76
Update CreateSteamPipe to return the first free number as pipe handle
NicknineTheEagle Apr 19, 2026
9fee497
Merge pull request #493 from NicknineTheEagle/nn/gs
Detanup01 Apr 22, 2026
595fc27
Fix SteamNetworkingSockets lane handling and SendMessages for Enshrou…
Apr 22, 2026
830ee9a
Merge pull request #495 from Rustbeard86/fix/networking-sockets-lane-…
Detanup01 Apr 23, 2026
24c07cb
fix(gamepad): stop polling HID devices every callback
onthebed Apr 28, 2026
4b5e43b
merge from dev
Detanup01 May 4, 2026
1748fe7
update everything to latest
Detanup01 May 4, 2026
ea306fa
revert this once all built
Detanup01 May 4, 2026
bd2845a
update all worklow to newest ubuntu + win25-vs26
Detanup01 May 4, 2026
dd3d853
update workflows and deps
Detanup01 May 4, 2026
c29ea82
fix premake script
Detanup01 May 4, 2026
6e5956f
fix deps linux
Detanup01 May 4, 2026
b411630
fix gmake
Detanup01 May 4, 2026
b3c72e0
update
Detanup01 May 4, 2026
a20038f
Fix double init/double shutdown in Steam_Client
NicknineTheEagle May 5, 2026
9bc1db5
linux update
Detanup01 May 5, 2026
2dfc49b
fix linux 32 -> 86
Detanup01 May 5, 2026
b5e4390
More accurate HSteamUser behavior for SteamClient004
NicknineTheEagle May 5, 2026
8548cb0
Fix ICMCallback and ICMCallback C wrapper
NicknineTheEagle May 5, 2026
415e982
Merge pull request #507 from NicknineTheEagle/nn/fixes
Detanup01 May 12, 2026
0482c57
Merge pull request #501 from onthebed/clawoss/fix/500-hid-enumeration…
Detanup01 May 12, 2026
c8bcf4c
update submodules
Detanup01 May 15, 2026
5d76e04
still not fucking merged to vs26!!!!
Detanup01 May 15, 2026
ea1fe61
Merge pull request #419 from Detanup01/vs-26-and-clang
Detanup01 May 15, 2026
3b12ef5
fix appid detection
Detanup01 May 16, 2026
a3182e0
Merge pull request #511 from Detanup01/parse_steam_app_id-fix
Detanup01 May 16, 2026
3f2fcb0
add support for vs22
Detanup01 May 18, 2026
2e8bb25
fix vs22 build bugs and artifacts
Detanup01 May 18, 2026
42961a8
swap places
Detanup01 May 18, 2026
a8a803e
fix release
Detanup01 May 18, 2026
13a88fb
update python action
Detanup01 May 18, 2026
a279a02
Merge pull request #515 from Detanup01/vs22-support
Detanup01 May 18, 2026
f947ddd
Update release.yml
Detanup01 May 19, 2026
6bd8e82
Fix rename working dir
Detanup01 May 19, 2026
8fab84d
Add independent font size support for FPS, achievement title and desc…
dasafe May 18, 2026
f38c6c9
Update create_fonts() to support independent font sizes for FPS, achi…
dasafe May 18, 2026
1b5f26a
Update render_stats() to properly use FPS font with PushFont/PopFont
dasafe May 18, 2026
ae312ca
Add independent font size settings for overlay (FPS, achievement titl…
dasafe May 18, 2026
33a56f7
Restore overlay font sizing and achievement notification text
dasafe May 18, 2026
23f1f40
Add font override options for achievement title and description
dasafe May 19, 2026
1330d54
Add parser for Font_Override_Achievement_Title and Font_Override_Achi…
dasafe May 19, 2026
011181f
Fix achievement title/description to use their specific font override…
dasafe May 19, 2026
31cca37
Add parsing for Font_Achievement_Title_Bold setting
dasafe May 19, 2026
659a1f0
Add missing font override settings to overlay example config
dasafe May 19, 2026
a4e69e5
ManualDispatchFix
LuKeSt0rm May 23, 2026
b00d51e
Merge pull request #520 from dasafe/pr1-font-only
Detanup01 May 23, 2026
a8f7fa4
Add rate-limiting queue for achievement notifications
dasafe May 19, 2026
d9bc554
Delay achievement sound to play when notification is shown
dasafe May 20, 2026
c73ace9
Add sound for progress notifications
dasafe May 20, 2026
5ff2143
Fix: parse Achievement_Notification_Delay in load_overlay_appearance
dasafe May 19, 2026
995099e
Add debug output for achievement delay debugging
dasafe May 19, 2026
c223a83
Remove redundant Achievement_Notification_Delay parse in parse_overla…
dasafe May 23, 2026
36cbdec
Merge pull request #519 from LuKeSt0rm/ManualDispatchCallbackFix
Detanup01 May 23, 2026
4cf3a19
Merge pull request #522 from dasafe/pr2-notification-queue
Detanup01 May 26, 2026
ee618de
Split achievement window into sorted unlocked/locked sections
dasafe May 26, 2026
4df98d3
Fix 2 bugs in achievement list display
dasafe May 22, 2026
bf02043
Fix localtime_s -> localtime_r for Linux cross-compilation
dasafe May 24, 2026
0d3b7de
Add Show button for hidden achievement descriptions
dasafe May 26, 2026
933f6c6
Add persistent notification history panel to overlay
dasafe May 26, 2026
9a50c35
Merge pull request #524 from dasafe/notification-history
Detanup01 May 27, 2026
9300ea6
Merge pull request #525 from dasafe/achievement-list
Detanup01 May 27, 2026
eca581c
remove imgui
Detanup01 May 28, 2026
909e286
Merge pull request #529 from Detanup01/lib-update
Detanup01 May 29, 2026
2c4787b
Update steam_overlay.cpp
Piezometric Jun 8, 2026
43405eb
Update steam_overlay_translations.h
Piezometric Jun 8, 2026
7a8bc87
Update steam_overlay.cpp
Piezometric Jun 8, 2026
935d7c5
Update steam_overlay_translations.h
Piezometric Jun 8, 2026
cd3157b
Update steam_overlay.cpp
Piezometric Jun 8, 2026
995b333
Update steam_overlay.cpp
Piezometric Jun 8, 2026
62c11ee
Update steam_overlay_translations.h
Piezometric Jun 8, 2026
8d84f44
Change button to small button for achievements
Piezometric Jun 8, 2026
83a92fc
Change button styles for achievements display
Piezometric Jun 8, 2026
284bc36
Update Turkish translation for achievements
Piezometric Jun 9, 2026
02a866c
Merge pull request #541 from Piezometric/dev
Detanup01 Jun 10, 2026
8a6aa90
Update Simplified Chinese translations
universal963 Jun 11, 2026
2693f50
Merge pull request #543 from universal963/patch-scupdate
Detanup01 Jun 11, 2026
5738f1a
Merge upstream Detanup01/gbe_fork dev (catch up ~209 commits)
gabrielgad Jun 12, 2026
b15855c
fix(networking): deliver P2P messages to all connections sharing a St…
gabrielgad Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions .github/workflows/emu-build-all-win-vs22.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: "Build emu (Windows)"

on:
workflow_call:
# needed since it allows this to become a reusable workflow
workflow_dispatch:
# allows manual trigger

permissions:
contents: "write"

env:
PREMAKE_ACTION: "vs2022"
DEPS_CACHE_KEY: "emu-deps-win"
DEPS_CACHE_DIR: "build/deps/win"

THIRD_PARTY_BASE_DIR: "third-party"

# https://docs.github.com/en/actions/reference/runners/github-hosted-runners#standard-github-hosted-runners-for-public-repositories
MAX_PARALLEL_JOBS: 4

jobs:
deps:
name: "Restore or build deps"
if: ${{ !cancelled() }}
uses: "./.github/workflows/emu-deps-win-vs22.yml"

builds-matrix-win:
name: "build"
needs: ["deps"]
runs-on: "windows-2022"
if: ${{ !cancelled() }}
continue-on-error: true

strategy:
fail-fast: false
matrix:
prj: [
# regular api
"api_regular",
# (experimental) api + client
"api_experimental",
"steamclient_experimental_stub",
# client (experimental) + loader + extra dll + gameoverlaylib
"steamclient_experimental",
"steamclient_experimental_loader",
"steamclient_experimental_extra",
"lib_game_overlay_renderer",
# steam old lib
"lib_steam_old",
# tools
"tool_lobby_connect",
"tool_generate_interfaces",
]
arch: ["x64", "Win32"]
cfg: ["debug", "release"]

exclude:
- prj: lib_steam_old
arch: x64

steps:
# clone branch
- name: "Checkout branch"
uses: actions/checkout@v6

# ensure we have msbuild
- name: "Add MSBuild to PATH"
uses: microsoft/setup-msbuild@v3

# on Windows Git will auto change line ending to CRLF, not preferable
- name: "Ensure LF line ending"
shell: "cmd"
working-directory: "${{ github.workspace }}"
run: |
git config --local core.autocrlf false
git config --system core.autocrlf false
git config --global core.autocrlf false

# deps
- name: "Restore deps"
id: "emu-deps-cache-step"
uses: actions/cache@v5
with:
key: "${{ env.DEPS_CACHE_KEY }}-${{ env.PREMAKE_ACTION }}"
path: "${{ env.DEPS_CACHE_DIR }}/${{ env.PREMAKE_ACTION }}"

# extra helpers/tools, these are not built inside the deps build dir
- name: "Clone third-party build helpers (common/win)"
uses: actions/checkout@v6
with:
ref: "third-party/common/win"
path: "${{env.THIRD_PARTY_BASE_DIR}}/common/win"

- name: "Clone third-party deps (build/win)"
uses: actions/checkout@v6
with:
ref: "third-party/build/win"
path: "${{env.THIRD_PARTY_BASE_DIR}}/build/win"

# generate project files
- name: "Generate project files"
shell: "cmd"
working-directory: "${{ github.workspace }}"
run: |
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --genproto --emubuild=${{ github.sha }} --dosstub --winrsrc --winsign --os=windows vs2022

# build target
- name: "Build target"
shell: "cmd"
working-directory: "${{ github.workspace }}/build/project/vs2022/win"
run: |
msbuild /nologo /target:${{ matrix.prj }} /m:1 -p:CL_MPCount=${{ env.MAX_PARALLEL_JOBS }} /v:n /p:Configuration=${{ matrix.cfg }},Platform=${{ matrix.arch }} gbe.sln

# upload artifact/package to github Actions
- name: "Upload target package"
uses: actions/upload-artifact@v7
with:
name: "emu-win-vs22-${{ matrix.prj }}-${{ matrix.cfg }}-${{ matrix.arch }}-${{ github.sha }}"
path: "build/win"
if-no-files-found: "error"
compression-level: 9
retention-days: 1
78 changes: 78 additions & 0 deletions .github/workflows/emu-deps-win-vs22.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: "Emu third-party dependencies (Windows vs22)"

on:
workflow_call:
# needed since it allows this to become a reusable workflow
workflow_dispatch:
# allows manual trigger

permissions:
contents: "write"

env:
PREMAKE_ACTION: "vs2022"
DEPS_CACHE_KEY: "emu-deps-win"
DEPS_CACHE_DIR: "build/deps/win"

PACKAGE_BASE_DIR: "build/package/win"
THIRD_PARTY_BASE_DIR: "third-party"

# https://docs.github.com/en/actions/reference/runners/github-hosted-runners#standard-github-hosted-runners-for-public-repositories
MAX_PARALLEL_JOBS: 4

jobs:
deps-build:
runs-on: "windows-2022"
if: ${{ !cancelled() }}

steps:
# on Windows Git will auto change line ending to CRLF, not preferable
- name: "Ensure LF line ending"
shell: "cmd"
working-directory: ${{ github.workspace }}
run: |
git config --local core.autocrlf false
git config --system core.autocrlf false
git config --global core.autocrlf false

- name: "Lookup cache for deps"
id: "emu-deps-cache-step"
uses: actions/cache@v5
with:
key: "${{ env.DEPS_CACHE_KEY }}-${{ env.PREMAKE_ACTION }}"
path: "${{ env.DEPS_CACHE_DIR }}/${{ env.PREMAKE_ACTION }}"
lookup-only: true # don't restore cache if found

# we need branch because it has build scripts
- name: "Checkout branch"
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
uses: actions/checkout@v6

- name: "Clone third-party deps (common/win)"
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
uses: actions/checkout@v6
with:
ref: "third-party/common/win"
path: "${{env.THIRD_PARTY_BASE_DIR}}/common/win"

- name: "Clone third-party deps (deps/win)"
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
uses: actions/checkout@v6
with:
ref: "third-party/deps/win"
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/win"

- name: "Clone third-party deps (deps/common)"
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
uses: actions/checkout@v6
with:
ref: "third-party/deps/common"
path: "${{env.THIRD_PARTY_BASE_DIR}}/deps/common"

- name: "Build deps"
if: steps.emu-deps-cache-step.outputs.cache-hit != 'true'
shell: "cmd"
working-directory: "${{ github.workspace }}"
run: |
set "CMAKE_GENERATOR=Visual Studio 17 2022"
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5-deps.lua --64-build --32-build --all-ext --all-build --j=${{ env.MAX_PARALLEL_JOBS }} --verbose --clean --os=windows vs2022
5 changes: 5 additions & 0 deletions .github/workflows/emu-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ jobs:
if: ${{ !cancelled() }}
uses: "./.github/workflows/emu-build-all-win.yml"

emu-win-all-vs22:
name: "win vs22"
if: ${{ !cancelled() }}
uses: "./.github/workflows/emu-build-all-win-vs22.yml"

emu-linux-all:
name: "linux"
if: ${{ !cancelled() }}
Expand Down
68 changes: 68 additions & 0 deletions .github/workflows/migrate_gse-build-win-vs22.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: "Build migrate_gse script (Windows)"

on:
workflow_call:
# needed since it allows this to become a reusable workflow
workflow_dispatch:
# allows manual trigger

permissions:
contents: "write"

env:
ARTIFACT_NAME: "migrate_gse-win-vs22-${{ github.sha }}"
SCRIPT_BASE_DIR: "tools/migrate_gse"
PACKAGE_BASE_DIR: "tools/migrate_gse/bin/win"

THIRD_PARTY_BASE_DIR: "third-party"

jobs:
build:
runs-on: "windows-2022"

steps:
- name: "Set up Python 3.12"
uses: actions/setup-python@v6
with:
python-version: "3.12"

# on Windows Git will auto change line ending to CRLF, not preferable
- name: "Ensure LF line ending"
shell: "cmd"
working-directory: "${{ github.workspace }}"
run: |
git config --local core.autocrlf false
git config --system core.autocrlf false
git config --global core.autocrlf false

- name: "Checkout branch"
uses: actions/checkout@v6

# extra helpers/tools, these are not built inside the deps build dir
- name: "Clone third-party deps (build/win)"
uses: actions/checkout@v6
with:
ref: "third-party/build/win"
path: "${{env.THIRD_PARTY_BASE_DIR}}/build/win"

# env
- name: "Install env"
shell: cmd
working-directory: "${{ env.SCRIPT_BASE_DIR }}"
run: recreate_venv_win.bat

# build
- name: "Rebuild"
shell: cmd
working-directory: "${{ env.SCRIPT_BASE_DIR }}"
run: rebuild_win.bat

# upload artifact
- name: "Upload build package"
uses: actions/upload-artifact@v7
with:
name: "${{ env.ARTIFACT_NAME }}"
path: "${{ env.PACKAGE_BASE_DIR }}/"
if-no-files-found: "error"
compression-level: 9
retention-days: 1
6 changes: 6 additions & 0 deletions .github/workflows/migrate_gse-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ jobs:
if: ${{ !cancelled() }}
uses: "./.github/workflows/migrate_gse-build-win.yml"

script-win-vs22:
name: "Migrate GSE win vs22"
if: ${{ !cancelled() }}
uses: "./.github/workflows/migrate_gse-build-win-vs22.yml"


script-linux:
name: "Migrate GSE linux"
if: ${{ !cancelled() }}
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
[submodule "third-party/common/win"]
path = third-party/common/win
url = ./
branch = third-party/common/win
branch = third-party/common/win

[submodule "third-party/common/linux"]
path = third-party/common/linux
url = ./
branch = third-party/common/linux
branch = third-party/common/linux

[submodule "third-party/deps/win"]
path = third-party/deps/win
Expand All @@ -31,4 +31,4 @@
[submodule "third-party/deps/common"]
path = third-party/deps/common
url = ./
branch = third-party/deps/common
branch = third-party/deps/common
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ You can find helper guides, scripts, and tools here:

**(These guides, scripts, and tools are maintained by their authors.)**

* **[GBE Fork Tools](https://github.com/Detanup01/gbe_fork_tools)**
* **[gbe_fork_tools](https://github.com/Detanup01/gbe_fork_tools)**
* **[gen.emu.sharp](https://github.com/otavepto/gen.emu.sharp)**
* **[gse_fork_tools](https://github.com/alex47exe/gse_fork_tools)**
* **[Semuexec](https://gitlab.com/detiam/Semuexec)**
* **[Steam Emu Utility](https://github.com/turusudiro/SteamEmuUtility)**
* **[How to use Goldberg Emulator](https://rentry.co/goldberg_emulator)**
Expand Down Expand Up @@ -142,8 +144,8 @@ The only times you'll need to rebuild them is either when their separete build f
Open CMD in the repo folder, then run the following
* To build using `Visual Studio`
```batch
set "CMAKE_GENERATOR=Visual Studio 17 2022"
third-party\common\win\premake\premake5.exe --file=premake5-deps.lua --64-build --32-build --all-ext --all-build --verbose --os=windows vs2022
set "CMAKE_GENERATOR=Visual Studio 18 2026"
third-party\common\win\premake\premake5.exe --file=premake5-deps.lua --64-build --32-build --all-ext --all-build --verbose --os=windows vs2026
```
* To build using `MSYS2` **this is currently experimental and will not work due to ABI differences**
<details>
Expand Down Expand Up @@ -194,14 +196,14 @@ This will:
Open CMD in the repo folder, then run the following
* For `Visual Studio 2022`
```batch
third-party\common\win\premake\premake5.exe --file=premake5.lua --genproto --os=windows vs2022
third-party\common\win\premake\premake5.exe --file=premake5.lua --genproto --os=windows vs2026
```
You can then go to the folder `build\project\vs2022\win` and open the produced `.sln` file in Visual Studio.
Or, if you prefer to do it from command line, open the `Developer Command Prompt for VS 2022` inside the above folder, then:
You can then go to the folder `build\project\vs2026\win` and open the produced `.sln` file in Visual Studio.
Or, if you prefer to do it from command line, open the `Developer Command Prompt for VS 2026` inside the above folder, then:
```batch
msbuild /nologo /v:n /p:Configuration=release,Platform=Win32 gbe.sln
msbuild /nologo /v:n /p:Configuration=release,Platform=Win32 gbe.slnx

msbuild /nologo /v:n /p:Configuration=release,Platform=x64 gbe.sln
msbuild /nologo /v:n /p:Configuration=release,Platform=x64 gbe.slnx
```

* For `MSYS2` **this is currently experimental and will not work due to ABI differences**
Expand Down Expand Up @@ -310,7 +312,7 @@ Open CMD in the repos's directory, then run this script
```batch
package_win.bat <build_folder>
```
`build_folder` is any folder inside `build\win`, for example: `vs2022\release`
`build_folder` is any folder inside `build\win`, for example: `vs2026\release`
The above example will create a `.7z` archive inside `build\package\win\`

### On Linux:
Expand Down
Loading
Loading