Skip to content

Latest commit

 

History

History
47 lines (40 loc) · 2.84 KB

File metadata and controls

47 lines (40 loc) · 2.84 KB

Upstream provenance

Emulator source

  • Vendored repo: Detanup01/gbe_fork — the actively maintained successor of the original Goldberg emulator (Mr_Goldberg/goldberg_emulator).
  • Branch: dev
  • Pinned commit: e4035e085a028a195c2e3f13e3207e0dfdadce57 (2026-08-22, "Merge pull request #584")
  • License: LGPL-3.0-or-later (kept in goldberg_emulator/LICENSE, third-party licenses in goldberg_emulator/CREDITS.md).

macOS patches (kept minimal + __MACOS__/__APPLE__-guarded so they rebase cleanly)

  1. dll/dll/common_includes.h — Darwin include branch (net/if.h etc.), MSG_NOSIGNAL fallback, debug-thread-id via pthread_mach_thread_np.
  2. dll/base.cpp — _NSGetExecutablePath() for the exe path, dladdr() lib path enabled on Darwin, getcwd(NULL,0) and realpath() replacing glibc-only helpers.
  3. dll/network.cpp — interface-broadcast discovery enabled on Darwin (SIOCGIFCONF/SIOCGIFBRDADDR), SO_NOSIGPIPE on all sockets (Darwin has no MSG_NOSIGNAL).
  4. helpers/common_helpers.cpp — get_utc_time() POSIX path on Darwin (no gmtime_s).
  5. crash_printer/linux.cpp — ucontext.h include guarded out on Darwin (macOS gates it behind _XOPEN_SOURCE; the handler only passes an opaque void*).

Run git -C goldberg_emulator diff (or see patches/0001-macos-port.patch) for the exact series against the pinned commit.

Dependency tarballs (exact sources gbe_fork itself builds with)

Fetched by build_mac/build.sh from the third-party/deps/common branch of the same repository, pinned commit 92a4a130262083c4e887155cbe6bcab99baf36ea:

Dep Version / source
protobuf v34.1
abseil 20250512.1 (the exact pin of protobuf v34.1 — must be built separately with CMAKE_CXX_STANDARD=17, see note below)
curl 8.20.0 (mbedTLS backend)
mbedtls 3.6.6
opus 1.6.1
portaudio b0fe9de7ec86ebe5a26086f1d662ab74d7ebfae4
libssq 3.0.1 (source server query, used by matchmaking servers)
zlib 1.3.2

All are built static (arm64) and linked into the dylib so the final libsteam_api.dylib has no third-party dynamic-library dependencies.

abseil ABI note: abseil rewrites absl/base/options.h at install time based on the C++ standard configured in CMake. If CMAKE_CXX_STANDARD is not explicitly set to 17 when abseil is built, the installed headers advertise a different absl::string_view ABI than the compiled libraries use, and everything linked against protobuf later fails with cryptic symbol(s) not found errors. The superbuild therefore builds abseil 20250512.1 explicitly (with C++17 pinned) and points protobuf at it via find_package(absl CONFIG) instead of letting protobuf fetch its own copy.